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的更多相关文章

  1. Basic Printing Architecture

    https://blogs.technet.microsoft.com/askperf/2007/06/19/basic-printing-architecture/ Printer sharing, ...

  2. Struts 2 Tutorial Basic MVC Architecture

    Model View Controller or MVC as it is popularly called, is a software design pattern for developing ...

  3. Chromium Graphics: Compositor Thread Architecture

    Compositor Thread Architecture <jamesr, enne, vangelis, nduca> @chromium.org Goals The main re ...

  4. Nginx Tutorial #1: Basic Concepts(转)

    add by zhj: 文章写的很好,适合初学者 原文:https://www.netguru.com/codestories/nginx-tutorial-basics-concepts Intro ...

  5. The Brain as a Universal Learning Machine

    The Brain as a Universal Learning Machine This article presents an emerging architectural hypothesis ...

  6. Command and Query Responsibility Segregation (CQRS) Pattern 命令和查询职责分离(CQRS)模式

    Segregate operations that read data from operations that update data by using separate interfaces. T ...

  7. RNN 入门教程 Part 4 – 实现 RNN-LSTM 和 GRU 模型

    转载 - Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano ...

  8. Detecting diabetic retinopathy in eye images

    Detecting diabetic retinopathy in eye images The past almost four months I have been competing in a  ...

  9. 6.00.1x Introduction to computation

    6.00 Introduction to Computer Science                  and  Programming • Goal: –Become skillful at ...

随机推荐

  1. 100-days:nine

    Title: Boeing(波音飞机) crash isolates FAA as(伴随,随着) China leads push against Max(出事机型,即737 Max) crash n ...

  2. 21 pythone【入门指南】:string

    string是很基础的数据结构,来看看string有哪些常用的操作. #!/bin/python #!---encoding: UTF- s = 'abcdefg' #concat s1 = s + ...

  3. 【jquery】checkbox

    jquery操作checkbox 模拟选中: $('#aaa').prop('checked', true); 模拟取消选中: $('#aaa').prop('checked', false); 其它 ...

  4. 【mysql】字段支持JSON类型

    mysql从5.7开始已经支持JSON类型的字段. 支持的操作:添加,修改,置空,子key添加,子key重置,子key删除,通过子key查找等. 但是这里和普通字段的修改和查找不同,涉及到一些JSON ...

  5. TCP/IP中的四元组、五元组、七元组

    四元组:源IP地址.目的IP地址.源端口.目的端口 五元组:源IP地址.目的IP地址.源端口.目的端口.传输层协议 七元组:源IP地址.目的IP地址.源端口.目的端口.传输层协议,服务类型以及接口索引

  6. 【校招面试 之 C/C++】第33题 C++ 11新特性(四)之STL容器

    C++ 11新增array.forward_list(单链表).unordered_set.unordered_map集中容器.

  7. 将tomcat做成windows服务

    @参考文章 大致步骤: 1,配置环境变量(选读) 2,安装 3,卸载(选读) 配置环境变量: 这块不是必须的.我不喜欢给tomcat配置环境变量,默认即可.如需要配置可看参考文章,也可参考我之前的文章 ...

  8. js关于去重的写法

    break和continue的区别和作用 break和continue都是用来控制循环结构的,主要是停止循环. 1.break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才 ...

  9. Linux执行命令时遇到的些问题

    1.执行lsb_release -a,提示 未安装lsb_release导致的,执行一下yum install redhat-lsb -y,问题解决 2.配置tomcat站点后重启tomcat,提示找 ...

  10. PAT 1061 判断题(15)(代码)

    1061 判断题(15 分) 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数 ...