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 ...
随机推荐
- vue使用日期时间插件layDate
项目中需要用到日期时间插件,尝试用bootstrap.element的时间插件都各有各的报错,对于一个菜鸟来说真的是很痛苦啊.终于,最后用了layDate实现了需要的功能 最终效果: 使用步骤: 1. ...
- maven library has broken path和pom jar包导入失败
今天在打开项目的时候,在pom文件添加新的依赖文件发现很多jar都标红,显示不存在,自己查了一上午各种尝试,总结了以下的解决方法. 首先你打开File-Project Structrue-Module ...
- make ;makefile; cmake; qmake的区分
1. make 是用来执行Makefile的.2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文 ...
- linq 动态判断
以前要不是使用扩展方法 要么使用如(t==2&&判断条件)||(s==1&&判断条件) 其实可以简单的实现扩展一个whereIf即可(abp实现),如下所示 ··· / ...
- Java中重写与重载的区别
方法重载:关键字overload,方法名和方法的返回类型都相同,方法参数个数和类型不一样方法重写:也叫方法覆盖,关键字override,相对于类继承而言,重写的方法名,返回类型,参数个数,参数类型都要 ...
- hdu 1394(线段树) 最小逆序数
http://acm.hdu.edu.cn/showproblem.php?pid=1394 给出一列数组,数组里的数都是从0到n-1的,在依次把第一个数放到最后一位的过程中求最小的逆序数 线段树的应 ...
- gdal gdal2tiles.py 的使用
I’m here showing how you can use GDAL2Tiles to generate map tiles of Tom Patterson’s Natural Earth I ...
- POJ3662或洛谷1948 Telephone Lines
二分答案+单源最短路 POJ原题链接 洛谷原题链接 显然可以二分答案,检验\(mid\)可以使用最短路来解决. 将大于\(mid\)的边看成长度为\(1\)的边,说明要使用免费升级服务,否则长度为\( ...
- nodejs TLS 只加密,未授权,进一步完善
const tls = require('tls'); const fs = require('fs'); const options = { key: fs.readFileSync('my_key ...
- Java中的权限修饰符
What:访问控制权限是可以设置代码的访问范围. Where:访问权限既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类. 在同一个java文件里,公有类有且仅有一 ...