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:

 

最新文章

  1. TcpClient 有好多坑
  2. 了解 JS 原型
  3. 关于python,一些整理
  4. PowerPoint
  5. Spring MVC 原理介绍(执行流程)
  6. 强大的游戏开发工具Unity3D推出2D开发工具,unity将混合3D与2D开发
  7. 整理js继承
  8. Python 文档 涉及词汇
  9. [Codeforces]850E - Random Elections
  10. 新更新,又是一年了。这次记录下关于android版的WeiboDemo的问题
  11. Web API中的模型验证
  12. Java EE 之Hibernate异常总结【1】org.hibernate.LazyInitializationException: could not initialize proxy - no Session
  13. Java/JSP获得客户端网卡MAC地址的三种方法解析
  14. C/C++之extern "C"的用法解析
  15. zabbix项目实践
  16. java中正则表达式,编译报错:Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
  17. Java的简单书写格式
  18. 用phpUnit入门TDD
  19. Axure多人协作
  20. csharp:SQLite and Access using C# code read data

热门文章

  1. ZOJ 1610 Count the Color(线段树区间更新)
  2. stark组件之过滤操作【模仿Django的admin】
  3. 运行SVO
  4. Excel中的常用功能
  5. [z]dbms_stats.lock_table_stats对于没有统计信息的表分区同样有效
  6. Linux 任务管理 && 常用指令
  7. c# usercontrol 用户自定义控件无法显示在工具箱的解决办法
  8. 5.Mysql常用函数
  9. list集合与HashMap的使用
  10. redis 数据类型为set命令整理以及示例