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 ...
随机推荐
- Disruptor框架EventProcessor和Workpool的使用
场景使用: 在HelloWorld的实例中,我们创建Disruptor实例,然后调用getRingBuffer方法去获取RingBuffer,其实在很多时候,我们可以直接使用RingBuffer,以及 ...
- 微信小程序开发——setData的使用技巧
前言: 之前使用 setData,一直都是作为给变量赋值,感觉比起vue给data中的变量的赋值还是有点麻烦的. 最近项目不太紧张,为了提高小程序的开发效率及提升小程序开发的能力,又重新的通读了下小程 ...
- Java-排序算法-插入排序
一.插入排序的原理 将一个记录插入到一个已经排好序的有序表中,从而得到一个新的,记录数增1的新的有序表.从第一个元素开始,先将第一个元素看做一个排好序的子序列,然后从第二个元素开始起,对第二个元素进行 ...
- [Java学习]反射机制(待续226)
反射机制相关的类.反射机制的作用 获取Class类型对象的三种方式
- 13-算法训练 P0505
算法训练 P0505 时间限制:1.0s 内存限制:256.0MB 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积.阶乘的增长速度非常快,例如,13!就已经比较大了,已 ...
- jquery ajax 中实现给变量赋值
我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去, ...
- mysql 存储过程 与 循环
mysql 操作同样有循环语句操作,三种标准循环模式:while, loop,repeat, 外加一种非标准循环:goto [在c或c#中貌似出现过类型循环但是一般不建议用!] 一般格式为:delim ...
- oracle 使用exp命令 sys用户登录 导出表存为dmp文件
在cmd下面,使用exp命令,格式为 exp \"sys/123456@dbname as sysdba\" file=d:\dmp\test.dmp tables=sys.tes ...
- IDEA 的 Edit 设置
1.设置鼠标悬浮提示 General -- Show quick documentation on mouse move 2.自动导包 3.设置显示行号和方法的间隔符 4.忽略大小写 4.设置取消单 ...
- 可以搜索局域网内的所有IP地址的软件
几乎都用现有的工具,直接扫描,这里我已python为例,搜索一下局域网内所有活动IP,基本原理就是ping,对返回的结果进行分析,从而判断对应ip是否活动,代码很简单,实验环境win10+python ...