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 ...
随机推荐
- PAT L2-016 愿天下有情人都是失散多年的兄妹(深搜)
呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...
- sizeof 4字节对齐
#include <iostream> #include<assert.h> using namespace std; typedef struct sys{ char a; ...
- SideBar 选择城市时右侧边上的 选择bar
需要定义一个SideBar的视图类 在布局文件中引用 同时在布局中设置一个textView默认不可见 当触摸时才显示 在调用的Activity中 sideBar.setOnTouchingL ...
- 以太坊难度炸弹是什么?极大抑制矿工继续以POW方式挖矿!
以太坊的“难度炸弹”(“Difficulty Bomb”)指的是,在挖掘算法中,使用以太币在区块链上对矿工进行奖励的难度越来越大.随着游戏变得更加复杂(矿工发现以太币难挣得多),在以太坊区块链上块的生 ...
- python学习笔记Day3
set有点:1.访问速度快 2.天生解决了重复问题 tuple与set区别: 元组可重复,set不可重复创捷集合1 >>> s1.add('alex')>>> pr ...
- Charles抓取https包
Android: 1.若滑动解锁,请先设置屏幕锁: 2.然后浏览器输入Charlesproxy.com/getssl,安装证书,出现安装证书提示,随便打个名称 比如Android,选择WLAN(这里A ...
- git 分支的创建和切换
每次提交,GIT 都会将他们串成一个时间线,截止到目前,只有一个时间线,GIT里叫这个分支为主分支,叫master,HEAD指向master,master指向提交,HEAD指向当前的分支. 一开始的时 ...
- SqlServer添加触发器不让删除数据
触发器是:instead of delete 类型,注意了:instead类型的触发器相当于: DELETE命令过来后,直接走触发器中的代码,再往下,没有了…… 就是说,这个触发器会屏蔽掉你所有的DE ...
- Python-多线程之消费者模式和GIL全局锁
一.生产者和消费者模式 什么是生产者消费者模式 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题.生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯, 所以生产者生产完数据之后不 ...
- BZOJ3669 膜法森林 - LCT
Solution 非常妙的排序啊... 仔细想想好像确实能够找出最优解QUQ 先对第一关键字排序, 在$LCT$ 维护第二关键字的最大值 所在的边. 添边时如果$u, v$ 不连通 就直接加边. 如 ...