CN104035899A - 一种高速互联总线多消息源仲裁器的实现方法 - Google Patents
一种高速互联总线多消息源仲裁器的实现方法 Download PDFInfo
- Publication number
- CN104035899A CN104035899A CN201410107366.9A CN201410107366A CN104035899A CN 104035899 A CN104035899 A CN 104035899A CN 201410107366 A CN201410107366 A CN 201410107366A CN 104035899 A CN104035899 A CN 104035899A
- Authority
- CN
- China
- Prior art keywords
- arbitration
- message
- bus
- message source
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Bus Control (AREA)
Abstract
本发明提供一种高速互联总线多消息源仲裁器的实现方法,属于仲裁器和仲裁方法领域,本发明包括消息包缓冲池,分布式仲裁器,仲裁选通逻辑模块;通过对每个消息源实现对应的仲裁器,采用时间加权的方法判断多个有效消息来源的仲裁优先级,进行仲裁和消息传输的多通路选择,并根据仲裁结果读出消息包缓冲池中缓存的消息包。既提高数据传送的响应速度,又提高了仲裁效率。
Description
技术领域
本发提供一种高速互联总线多消息源仲裁器的实现方法,具体涉及高速互联总线的多处理器系统中对多个消息源发出的总线数据传输占用请求进行快速有效仲裁,从而提高总线传输效率的方法。
背景技术
在大部分系统中有限的资源往往带来多个设备对某一资源的竞争,当竞争的情况发生时一般都采用仲裁器来合理地分配资源。在多处理器系统中,如何合理有效调节系统中各处理器或者是子系统的运行在整个多处理器系统设计的过程中是一个很重要的问题。总线架构是用来达成系统中各个处理器或者子系统的相互通信,包括指令传送和数据传送,因此总线架构的设计对于整个系统的协同工作有着至关重要的影响。
总线仲裁方式按仲裁器在系统中的位置分布可分为中央仲裁和分布式仲裁,中央仲裁中常使用菊花链仲裁器和采用独立请求的集中仲裁器。采用菊花链方式的仲裁器设备的优先级由设备在系统中的物理位置决定,它以仲裁器设备的距离来决定设备的优先级,距离仲裁器越近,设备优先级越高。低优先级的设备的允许响应信号要通过高优先级设备才能够得到,因此当高和低优先级设备同时发出请求时,高优先级设备可以阻止低优先级设备得到响应信号。菊花链方式实现方式简单,只需要很少的逻辑就能按照一定优先次序实现仲裁,且易于扩充设备,其缺点是不能保证公正性,有可能出现低优先级的请求永远得不到仲裁批准导致请求饿死情况,且沿菊花链进行总线允许授权的方式信号慢,不利于提高多处理器系统的性能。
采用独立请求分布式仲裁器的系统,为每个潜在的总线请求者提供单独的请求和授权信号线,它们都连接到同一的仲裁逻辑模块上。计数器加权的仲裁优先级判断方式具有灵活性高的优点,确保每个发起总线请求的设备都有机会得到仲裁批准,且响应速度快,提高了总线传输效率。
发明内容
本发明实现了一种高速互联总线多消息源仲裁器的实现方法,针对多处理器系统中高速互联总线上多个消息包来源竞争总线的情况,通过分布式仲裁器和时间计数器加权的设计,较好实现各消息源模块均匀占有总线的策略,改良仲裁效率和总线使用效率。
多处理器系统中高速互联总线上共挂载N个设备,设备和设备之间通过发送消息包的形式进行通信,总线上每个潜在的使用者,即发送消息包的源设备都分配一个唯一的n位仲裁ID,用于多源仲裁选择逻辑分解仲裁竞争,其中n为大于或等于log2N的最小正整数。总线上的所有信号均采用集电极开路OC门输出,提供信号的线或功能,仲裁逻辑则由纯组合逻辑电路构成。
在每个消息源均实现一个独立的仲裁器,用于本设备发起总线申请和接收总线批准,该仲裁器同样知晓系统分配给本设备的仲裁ID,其标识为ID(n…1),同时每个消息源的仲裁器内设有一个t位时间计数器,其值为ATC(k…1)。以ATC(k…1)为高位,仲裁ID(n…1)为低位组成一个m位,其中m=k + n,的总线仲裁向量ARbVec(n):
ARbVec(m…1) = ATCkATCk-1…ATC1IDnIDn-1…ID1
若N为总线上最多可连接的设备数,时间计数器的位数t取log2N的最小正整数。
每个消息源对应的时间计数器按照如下规则计数:在系统初始化时,所有消息源上的时间计数器均清零;在每个仲裁周期,若本消息源赢得总线的所有权,则ATC的值重新清零;若本消息源的仲裁请求没有赢得批准,则ATC的值加1;若时间计数器已达到最大阈值,则停止加计数,一直等待该消息源赢得仲裁,时间计数器被重新置零。
仲裁策略基于优先权原则,即仲裁向量ARbVec较大者仲裁优先级高。当某个消息源设备有总线请求时,该设备的仲裁器将时间计数器的值ATC以及其仲裁ID组合成仲裁向量ARbVec,发送到仲裁逻辑模块,仲裁模块根据仲裁向量ARbVec判断各消息源设备的仲裁优先级。当ATC值一致时,根据仲裁ID大小确定优先级高低。因为一旦取得总线所有权,ATC将被清零,在下一个仲裁周期该消息源具有最低优先级,而仲裁ID较小的模块随着ATC的增大仲裁优先权变高,保证了仲裁的公平性,避免设备请求饿死的情况。
每个消息源设备均实现一个与仲裁器一一对应的消息包缓冲池,且各消息源之间的缓冲池无依赖关系。在申请总线仲裁信号#APP#有效时,将待发送的消息包缓存在该消息缓冲池中,根据仲裁逻辑向消息源设备返回的仲裁批准信号#ACK#,从消息包缓冲池中读取消息包,通过总线进行数据传输。
本发明的有益效果是:充分考虑高速互联总线上各消息信道之间的依赖性,采用分类缓存->申请->时间加权优先级仲裁->选通的方法。提出一种分布式仲裁器的机制,既提高数据传送的响应速度,又提高了仲裁效率。通过为每个消息源设备实现独立的缓冲池和仲裁器的方式,消除信道相关的死锁风险。时间加权的仲裁优先级判断方式,保证了仲裁的公平性。
附图说明
附图1为时间加权分布式仲裁器示意图;
附图2为仲裁选通逻辑模块示意图;
附图3为仲裁器状态机示意图。
具体实施方式
结合附图,对本发明的实施进行说明。
附图1描述了由多个带时间加权分布式仲裁器的消息源设备构成的多处理器系统。为每个消息源设备实现一个独立的带时间计数器的仲裁器。当且仅当该消息源设备对应的消息包缓冲池非空时,仲裁器向高速互联总线发起仲裁申请APP,等待仲裁逻辑模块授予该消息源设备总线占有权GNT。GNT有效,标志着该设备赢得仲裁批准,可使用总线进行消息包传输。
系统上电时,所有设备仲裁器中的时间计数器清零,并可通过由带外控制总线写设备仲裁ID寄存器的方式初始化该设备的仲裁ID。系统上电时,即系统时间为0时,各设备之间的优先级关系是固定,由设备仲裁ID的大小决定,系统在初始状态下仲裁选通模块对各设备的授权选通信号逻辑关系如下:
系统上电后,各消息源设备的仲裁器将时间计数器的值ATC以及其仲裁ID组合成仲裁向量ARbVec,发送到仲裁逻辑模块,仲裁模块根据仲裁向量ARbVec大小判断各消息源设备的仲裁优先级,仲裁向量ARbVec较大者仲裁优先级高。仲裁模块向赢得仲裁的设备发送仲裁批准ACK,该设备清零自己的时间计数器,使用总线进行消息数据传输,否则时间计数器的值加1。若时间计数器已达到最大阈值,则停止加计数,一直等待该消息源设备赢得仲裁。
附图2描述了仲裁选通逻辑模块控制各设备读取消息包缓冲池数据并进行总线数据选通过程。每个消息源设备均实现一个消息包缓冲池,用于缓存该设备上待发送的消息包数据。仲裁选通逻辑模块根据各设备仲裁器发送的仲裁向量进行总线仲裁,判断出得到总线占有权的设备,并通知对应的设备发送读使能信号Rden(n),读取缓冲池中的消息包,进行总线数据传输。根据仲裁结果Sel[N-1:0],使用多路选择器对所有设备缓冲池的输出进行多路选择,在赢得总线占有权的消息源设备和总线之间建立数据通路,进行消息数据传输。
附图3描述了各消息源设备中仲裁器的仲裁状态机,用于控制仲裁器向仲裁选通逻辑模块发起仲裁申请信号#APP#和处理收到的仲裁批准信号#ACK#。仲裁器状态机共4个子状态:
LOCAL_IDLE:当前消息源设备没有需要总线传输的消息包,仲裁器控制逻辑将仲裁申请信号#APP#置0,即设备不向仲裁逻辑模块发送仲裁申请。若消息源缓冲池非空,则将消息包从缓冲池中读出,放到仲裁器的发送端口上,由LOCAL_IDLE状态跳转到LOCAL_APP1状态;
LOCAL_APP1:在该状态下,仲裁器向仲裁逻辑模块发起仲裁申请,仲裁器控制逻辑将仲裁申请信号#APP#置1,且待发送的消息包在仲裁器发送端口上有效,等待仲裁逻辑模块返回的仲裁批准。若没有收到仲裁逻辑模块的仲裁批准信号#ACK#,且缓冲池中依旧非空,则由LOCAL_APP1跳转到LOCAL_APP2状态。若收到仲裁批准信号#ACK#,且缓冲池已空,则跳转到LOCAL_IDLE状态,否则若缓冲池不空,则停留在LOCAL_APP1状态,继续向仲裁控制逻辑模块发送仲裁申请;
LOCAL_APP2:该状态表明当前该消息源设备上至少存在2个或2个以上等待总线传输的消息包,在该状态下,仲裁器向仲裁逻辑模块发送仲裁申请信号#APP#,且锁定消息包缓冲池,不允许读取消息包。若得到仲裁批准,则跳转到LOCAL_APP21状态,否则停留在LOCAL_APP2状态;
LOCAL_APP21:该状态用于控制2个或2个以上消息包的第2笔消息包的仲裁申请,第一笔消息包已经通过上一个状态LOCAL_APP2得到仲裁批准,赢得总线占用后发送成功。在该状态下,仲裁器向仲裁逻辑模块发送仲裁申请信号#APP#,且锁定消息包缓冲池,不允许读取消息包。若收到仲裁批准信号#ACK#,则跳转到LOCAL_IDLE状态,否则停留在LOCAL_ APP21状态。
Claims (5)
1.一种高速互联总线多消息源仲裁器,用于高速互联总线的多个虚通道并发消息传输时的总线仲裁,其特征在于:包括消息包缓冲池,分布式仲裁器,仲裁选通逻辑模块;通过对每个消息源实现对应的仲裁器,采用时间加权的方法判断多个有效消息来源的仲裁优先级,进行仲裁和消息传输的多通路选择,并根据仲裁结果读出消息包缓冲池中缓存的消息包。
2.对于权利要求1所述的仲裁器,其特征在于所描述的消息包缓冲池,每个消息源设备对应一个独立的缓冲池,各缓冲池之间不存在依赖关系;当设备上有消息包传输时,将其缓存到对应消息类型的缓冲池中排队,发起仲裁申请#APP,得到仲裁批准#ACK后,从缓冲池中读出消息包通过总线进行数据传输。
3.对于权利要求1中所述的仲裁器,其特征在于所述的分布式仲裁器,每个潜在的消息源在总线上都分配了一个单独的仲裁器和对应的唯一的n位的仲裁ID,用于多源仲裁选择逻辑分解仲裁竞争,其中n为大于或等于log2N的最小正整数,N为总线上消息源的最大数目,同时每个分布式仲裁器内实现一个t位的时间计数器,将计数器的值与消息源仲裁ID组合成一个总线仲裁向量ARbVec,发送给仲裁选通逻辑。
4.对于权利要求3中所述的仲裁器,其特征在于所述的分布式仲裁器中的t位时间计数器,其值为ATC(k…1),在系统初始化时,所有消息源上的时间计数器均清零;在每个仲裁周期,若本消息源赢得总线的所有权,则ATC的值重新清零;若本消息源的仲裁请求没有赢得批准,则ATC的值加1;若时间计数器已达到最大阈值,则停止加计数,一直等待该消息源赢得仲裁,时间计数器被重新置零。
5.对于要求1中所述的仲裁器,其特征在于所述的仲裁选通逻辑模块,为总线上每个潜在用户,即消息源都分配一个唯一的n位的仲裁ID;当总线上同时有多个消息源发起申请时,每个仲裁周期只允许一个消息源赢得仲裁;根据各消息源发送的总线仲裁向量的值判断消息源的优先级,其中ARbVec值大者优先级较高;选通逻辑使用仲裁逻辑输出的仲裁结果对消息源进行数据通路选择,被选通的消息源读出对应的消息包缓冲池的数据,开始消息包传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410107366.9A CN104035899A (zh) | 2014-03-21 | 2014-03-21 | 一种高速互联总线多消息源仲裁器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410107366.9A CN104035899A (zh) | 2014-03-21 | 2014-03-21 | 一种高速互联总线多消息源仲裁器的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104035899A true CN104035899A (zh) | 2014-09-10 |
Family
ID=51466670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410107366.9A Pending CN104035899A (zh) | 2014-03-21 | 2014-03-21 | 一种高速互联总线多消息源仲裁器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104035899A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536928A (zh) * | 2014-12-23 | 2015-04-22 | 上海昭赫信息技术有限公司 | 通过多核pcie加速子卡后的数据排序方法 |
CN107918315A (zh) * | 2017-11-15 | 2018-04-17 | 浪潮金融信息技术有限公司 | 基于控制器局域网总线的atm控制系统及其控制方法 |
WO2020177249A1 (zh) * | 2019-03-04 | 2020-09-10 | 上海熠知电子科技有限公司 | 一种基于虚拟通道的运算单元共享方法和系统 |
CN112506824A (zh) * | 2020-12-17 | 2021-03-16 | 上海燧原智能科技有限公司 | 一种芯片和数据交互方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1052563A (zh) * | 1989-12-15 | 1991-06-26 | 国际商业机器公司 | 调节优先级仲裁的装置 |
CN1383074A (zh) * | 2002-04-17 | 2002-12-04 | 威盛电子股份有限公司 | 总线控制权仲裁方法与仲裁器 |
CN101510181A (zh) * | 2009-03-19 | 2009-08-19 | 北京中星微电子有限公司 | 一种总线仲裁方法和总线仲裁装置 |
-
2014
- 2014-03-21 CN CN201410107366.9A patent/CN104035899A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1052563A (zh) * | 1989-12-15 | 1991-06-26 | 国际商业机器公司 | 调节优先级仲裁的装置 |
CN1383074A (zh) * | 2002-04-17 | 2002-12-04 | 威盛电子股份有限公司 | 总线控制权仲裁方法与仲裁器 |
CN101510181A (zh) * | 2009-03-19 | 2009-08-19 | 北京中星微电子有限公司 | 一种总线仲裁方法和总线仲裁装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536928A (zh) * | 2014-12-23 | 2015-04-22 | 上海昭赫信息技术有限公司 | 通过多核pcie加速子卡后的数据排序方法 |
CN107918315A (zh) * | 2017-11-15 | 2018-04-17 | 浪潮金融信息技术有限公司 | 基于控制器局域网总线的atm控制系统及其控制方法 |
WO2020177249A1 (zh) * | 2019-03-04 | 2020-09-10 | 上海熠知电子科技有限公司 | 一种基于虚拟通道的运算单元共享方法和系统 |
CN112506824A (zh) * | 2020-12-17 | 2021-03-16 | 上海燧原智能科技有限公司 | 一种芯片和数据交互方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11500682B1 (en) | Configurable logic platform with reconfigurable processing circuitry | |
US7143219B1 (en) | Multilevel fair priority round robin arbiter | |
CN105512060B (zh) | 输入/输出电路以及数据传输控制方法 | |
CN107078959B (zh) | 用于减轻分布式非核结构中的业务量引导低效的系统和方法 | |
EP0957612B1 (en) | Method for data packet queuing | |
KR101746313B1 (ko) | 공유 메모리 패브릭을 통한 메모리 액세스 중재 | |
US8732370B2 (en) | Multilayer arbitration for access to multiple destinations | |
CN101841420B (zh) | 面向片上网络的低延迟路由器结构 | |
CN103543954B (zh) | 一种数据存储管理方法和装置 | |
Lu et al. | SAMBA-Bus: A high performance bus architecture for system-on-chips | |
US8190801B2 (en) | Interconnect logic for a data processing apparatus | |
US9372818B2 (en) | Proactive quality of service in multi-matrix system bus | |
US20110173399A1 (en) | Distributed parallel messaging for multiprocessor systems | |
US9335934B2 (en) | Shared memory controller and method of using same | |
CN104035899A (zh) | 一种高速互联总线多消息源仲裁器的实现方法 | |
CN110109847A (zh) | Apb总线多个主设备的仲裁方法、系统及存储介质 | |
US11403221B2 (en) | Memory access response merging in a memory hierarchy | |
US9135195B2 (en) | Prediction of electronic component behavior in bus-based systems | |
US20080059674A1 (en) | Apparatus and method for chained arbitration of a plurality of inputs | |
US7200699B2 (en) | Scalable, two-stage round robin arbiter with re-circulation and bounded latency | |
US20130036246A1 (en) | Microcontroller system bus scheduling for multiport slave modules | |
US11520626B2 (en) | Queueing techniques for a shared computer resource | |
US20100002716A1 (en) | Switching method | |
US10402348B2 (en) | Method and system for using feedback information for selecting a routing bus for a memory transaction | |
Noami et al. | High priority arbitration for less burst data transactions for improved average waiting time of Multi-Processor Cores |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140910 |