Basic Router Architecture
from the book principles and practices of interconnection networks
the chapter router architecture

These blocks of the router can be partitioned broadly into two groups based on functionality: the datapath and control plane.
The datapath of the router handles the storage and movement of a packet’s payload and consists of a set of input buffers, a switch, and a set of output buffers.
The remaining blocks implement the control plane of the router and are responsible for coordinating the movement of packets through the resources of the datapath.

The 21364’s crossbar is implemented as a mux for each output port, as shown.
To meet its aggressive timing requirements, the switch allocator is divided into two distinct units: a local arbiter and a global arbiter.
The local arbiters in each input unit choose a packet among all waiting packets that are ready.
A packet is considered ready when its output port is available and its downstream router has a free packet buffer.
Local arbitration takes one pipeline cycle (SA1) and, during the following cycle, the header information for each packet selected by a local arbiter is read and transported to the correct output (RE).
This header information is enough to begin the global arbitration cycle (SA2).
Since the local arbitration decisions are not coordinated, its quite possible that multiple packets have been selected for a single output.
The global arbiters resolve this conflict by choosing one packet for each output.
background:
While the augmenting path method always finds the maximum matching, it is difficult to parallelize or pipeline and is too slow for applications in which latency is important.
Therefore, the heuristic allocators based on a basic separable alloctor are proposed.
Most heuristic allocators are based on a basic separable allocator.
In a separable allocator, we perform allocation as two sets of arbitration: one across the inputs and one across the outputs.
In an input first separable allocator, an arbitration is first performed to select a single request at each input port.
Then, the outputs of these input arbiters are input to a set of output arbiters to select a single request for each output port.
The result is a legal matching, since there is at most one grant asserted for each input and for each output.
consequence:
It is possible for an input request to win the input arbitration, locking out the only request for a different output, and then lose the output arbitration.
This leaves an input and an output, which could have been trivially connected, both idle.

A 4 × 3 input-first separable allocator. A separable allocator performs allocation using two ranks of arbiters.
With an input-first allocator, the first rank picks one request from each input.
The second rank picks one of these selected input requests for each output.
An input-first separable allocator takes a request matrix and performs arbitration across the rows first and then down the columns.

Assume each arbiter selects the first asserted input.
Thus, the intermediate request matrix X after the input arbiters is

Note that X has eliminated input conflicts and thus has at most one non-zero entry in each row.
The output arbiters then eliminate output conflicts, giving a final grant matrix G with at most one non-zero in each column as well:

Basic Router Architecture的更多相关文章
- Basic Printing Architecture
https://blogs.technet.microsoft.com/askperf/2007/06/19/basic-printing-architecture/ Printer sharing, ...
- Struts 2 Tutorial Basic MVC Architecture
Model View Controller or MVC as it is popularly called, is a software design pattern for developing ...
- Chromium Graphics: Compositor Thread Architecture
Compositor Thread Architecture <jamesr, enne, vangelis, nduca> @chromium.org Goals The main re ...
- Nginx Tutorial #1: Basic Concepts(转)
add by zhj: 文章写的很好,适合初学者 原文:https://www.netguru.com/codestories/nginx-tutorial-basics-concepts Intro ...
- The Brain as a Universal Learning Machine
The Brain as a Universal Learning Machine This article presents an emerging architectural hypothesis ...
- Command and Query Responsibility Segregation (CQRS) Pattern 命令和查询职责分离(CQRS)模式
Segregate operations that read data from operations that update data by using separate interfaces. T ...
- RNN 入门教程 Part 4 – 实现 RNN-LSTM 和 GRU 模型
转载 - Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano ...
- Detecting diabetic retinopathy in eye images
Detecting diabetic retinopathy in eye images The past almost four months I have been competing in a ...
- 6.00.1x Introduction to computation
6.00 Introduction to Computer Science and Programming • Goal: –Become skillful at ...
随机推荐
- 牛客练习赛17 C 操作数(组合数+逆元)
给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. 执行a = s: 现在 ...
- [LeetCode_98]Validate Binary Search Tree
题目链接 https://leetcode.com/problems/validate-binary-search-tree/ 题意 判断给定树是否是BST 思路 根据定义判断.递归. 代码 clas ...
- Kylin 与 Spark SQL相比,有哪些差异和优势
SparkSQL本质上是基于DAG模型的MPP.而Kylin核心是Cube(多维立方体).关于MPP和Cube预处理的差异,重复如下: > MPP [1] 的基本思路是增加机器来并行计算,从而提 ...
- Httpclient 表单,json,multipart/form-data 提交 ---总结常用的方法
最近在项目中,一直在使用HttpClient 中的方法,这里我进行一些方法的汇总,也是结合了一些大牛写的代码,以备不时之需 官话:HttpClient 是Apache Jakarta Common 下 ...
- JNI开发篇——报错:Flag android.useDeprecatedNdk is no longer supported and will be removed in the next……
大概意思就是说: android.useDeprecatedNdk不再支持了 让使用CMake or ndk-build 然后还有链接 解决方法: 1.先通过SDKManager下载:CMake和LL ...
- centos 命令学习
关机&重启 shutdown -h 10 #计算机将于10分钟后关闭,且会显示在登录用户的当前屏幕中 shutdown -h now #计算机会立刻关机 shut ...
- iconfont项目成员添加不进去的问题
经别的网友提醒,发现是我用的chrome浏览器的问题,这顿折腾....解决方案:换一个浏览器试试.
- Oracle存储过程in、out、in out 模式参数
Oracle存储过程in.out.in out 模式参数 标签: oracle存储inout参数 2016-11-14 11:59 3272人阅读 评论(0) 收藏 举报 分类: oracle(7) ...
- Liunx Pwd
Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...
- 计算器类(C++&JAVA——表达式转换、运算、模板公式)
运行: (a+b)*c 后缀表达式:ab+c* 赋值: Enter the a : 10 Enter the b : 3 Enter the c : 5 结果为:65 代码是我从的逻辑判断系统改过来的 ...