CN103399832B - 总线间的乱序返回数据的归序方法 - Google Patents
总线间的乱序返回数据的归序方法 Download PDFInfo
- Publication number
- CN103399832B CN103399832B CN201310366862.1A CN201310366862A CN103399832B CN 103399832 B CN103399832 B CN 103399832B CN 201310366862 A CN201310366862 A CN 201310366862A CN 103399832 B CN103399832 B CN 103399832B
- Authority
- CN
- China
- Prior art keywords
- signal
- request
- identity tokens
- bus
- return
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种总线间的乱序返回数据的归序方法,方法步骤为:1)Master方主机部件通过Master总线向Slave方多个功能部件发送请求,根据发送的时间顺序依次为每个请求设置一个自增的标识令牌信号,并伴随请求的地址一起一一发送给对应的Slave方功能部件;2)Slave方各个响应的功能部件通过Slave总线接收请求信号的地址,分离出标识令牌信号并与返回的响应数据一起发送回Master方总线;3)Master方通过Master总线接收返回的数据并进行暂存,对标识令牌信号进行判断并根据标识令牌信号的顺序依次发送返回响应数据给主机部件。本发明具有实现方法简单、效率高、可移植性强、功耗低的优点。
Description
技术领域
本发明涉及总线的逻辑设计领域,尤其涉及一种总线间乱序返回数据的归序方法。
背景技术
目前,在两条总线之间进行数据传输时,通常由一方按照顺序发起多个请求信息访问另一方多个不同的部件,而多个不同部件对于请求的响应处理速度是不相同的,因此通常是以乱序的方式返回相应的响应数据,即各个部件返回的数据信息并不是按照访问请求的顺序返回,使得发起请求方的总线返回的数据信息和访问请求的顺序不一致,从而导致返回的数据错误。
针对以上问题,在片上多条总线的逻辑设计中主要采用基于指令调度的计分牌法及tomasulo算法两种方法,然而这两种算法主要应用在设计体系架构方面,其设计实现难度较大、实现过程复杂,同时不利于节省芯片面积及功耗的降低。
发明内容
本发明要解决的技术问题在于:针对现有技术中存在的技术问题,本发明提供一种实现方法简单、效率高、可移植性强、功耗低的总线间的乱序返回数据的归序方法。
为解决上述技术问题,本发明提出的技术方案为:
一种总线间的乱序返回数据的归序方法,步骤为:
(1)Master方发送请求:Master方主机部件通过Master总线向Slave方的多个功能部件发送请求访问,根据发送的时间顺序依次为每个请求访问设置一个自增的标识令牌信号,并标记该标识令牌信号为有效状态,将标识令牌信号伴随请求访问信号的地址一起一一对应发送给Slave方的功能部件;
(2)Slave方响应请求:Slave方通过Slave总线接收请求信号的地址,分离出标识令牌信号;各个功能部件返回响应数据,并与对应的分离出来的标识令牌信号一起发送回Master方总线;(3)Master方接收返回响应:Master方通过Master总线接收返回的响应数据及标识令牌信号并进行暂存,然后根据标识令牌信号的顺序依次发送返回响应数据给主机部件。
作为本发明的进一步改进,所述步骤(1)中标志令牌信号的设置与发送的详细步骤为:(1.1)第一个请求访问的地址发出时,设置标识令牌信号flag[1],并标记为1,1表示有效状态,伴随第一个请求访问的地址一起发出;
(1.2)第二个请求访问的地址发出时,设置标识令牌信号flag[2],并标识为1,伴随第二个请求访问的地址发出;
(1.3)以此类推,作为最后一个请求访问的地址的第n个请求访问的地址发出时,设置标识令牌信号为flag[n],并标识为1,伴随第n个请求访问的地址一起发出,直至完成所有的请求访问地址发送。
作为本发明的进一步改进,所述步骤(3)中根据标识令牌信号的顺序依次发送响应数据给主机部件的详细步骤为:
(3.1)判断最先发送请求访问对应的标识令牌信号的状态,一旦判断标识令牌信号为有效状态时,发送对应的响应数据给主机部件,同时设置标识令牌信号为无效状态;
(3.2)判断下一个发送请求访问对应的标识令牌信号的状态,一旦判断标识令牌信号为有效状态时,发送对应的响应数据给主机部件,同时设置标识令牌信号为无效状态;
(3.3)判断是否发送完所有返回响应数据,若是,响应结束;若否返回执行步骤(3.2)。
作为本发明的进一步改进,所述步骤(3)是通过设置有限状态机实现,所述有限状态机的状态之间的转移是顺序进行的。
与现有技术相比,本发明的优点在于:
(1)本发明在发送的请求访问中伴随发送一个标识令牌信号,携带“令牌”来传送信息,根据标识令牌信号的顺序依次响应返回的响应数据,避免以乱序形式返回的数据进行错误响应,大大简化了逻辑设计的难度、方法实现简单、可移植性强且功耗低。
(2)本发明将返回的响应数据先存入队列缓冲部件中,通过标识令牌信号的判断,即再排序,来确定发送的返回响应信号,提高了返回响应信号的发送效率同时降低响应的错误率。
附图说明
图1是本发明总线间的乱序返回数据的归序方法流程示意图。
图2是本实施例中Master方发送请求的实现流程示意图。
图3是本实施例中Slave方响应请求的实现流程示意图。
图4是本实施例中Master方接收返回响应的实现流程示意图。
图5是本实施例中通过设置有限状态机实现Master方接收返回响应的流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图1所示,本发明总线间的乱序返回数据的归序方法,其步骤为:
(1)Master方发送请求:Master方主机部件通过Master总线向Slave方的多个功能部件发送请求访问,根据发送的时间顺序依次为每个请求访问设置一个自增的标识令牌信号,并标记该标识令牌信号为有效状态,并伴随请求访问信号的地址一起一一对应发送给Slave方的功能部件;
(2)Slave方响应请求:Slave方通过Slave总线接收请求信号的地址,分离出标识令牌信号;各个功能部件返回响应数据,并与对应的分离出来的标识令牌信号一起发送回Master方总线;(3)Master方接收返回响应:Master方通过Master总线接收返回的响应数据及标识令牌信号并进行暂存,然后根据标识令牌信号的顺序依次发送返回响应数据给主机部件。
Master方发送请求时,主机部件向从机区域发送多个请求信号,主机部件通过Master方总线发送请求信号对应的请求地址,每个请求信号设置一个自增的标识令牌信号flag[n],标识令牌信号的序号按顺序进行递增。标识令牌信号flag[n]与请求访问信号一一对应,伴随请求访问的地址一起一一对应发送。
如图2所示,本实施例中Master方发送请求的实现流程,当最先发送请求信号的第一个地址Address1发出的时候,设置标识令牌信号为flag[1],同时标记flag[1]为1,其中1表示有效状态,并且伴随第一个地址一起发出,即第一个请求信号包括请求1的请求地址Address1与标识令牌信号flag[1]=1;当随后发送请求信号的第二个地址发出时,设置标识令牌信号为flag[2],同时flag[2]标记为1,并且伴随第二个地址一起发出,即第二个请求信号包括请求2的请求地址Address2与标识令牌信号flag[2]=1;以此类推,第4个地址发出时,设置标识令牌信号为flag[4],同时标记flag[4]为1,并且伴随第四个地址一起发出,即第4个请求信号包括请求n的请求地址Address4与标识令牌信号flag[4]=1。
Slave方响应请求时,在从机区域中被访问的各个部件接收到Master方的请求地址Address后,首先从请求地址中分离出该地址所携带的标识令牌信号,即flag[n]信号,并且和返回的响应数据信息一起形成拼接信号发送回Master方。
如图3所示,本实施例中Slave方响应请求的实现流程,从机部件1接收来自Master方的请求地址Address1与标识令牌信号flag[1]=1,分离出标识令牌信号flag[1]=1后与从机部件1返回的响应信号retdata1一起发送回Master方,即Slave方对应Master方第一个请求信号返回的响应信号是由分离出的标识令牌信号flag[1]与返回的响应信号retdata1组成的拼接信号;从机部件2、从机部件3、从机部件4按照与从机部件1相同的方法进行标识令牌信号的分离与发送。
Master方接收返回响应时,Slave方发出的由标识令牌信号flag[n]与返回的响应信号retdata组成的拼接信号在Master方的FIFO队列缓冲部件中进行暂存。由于各个被访问的部件的处理速度不同,所以拼接信号进入到FIFO队列缓冲部件中的时间并不是按原序到达的,按照发送请求访问的顺利依次选中标识令牌信号flag[n]对应的返回响应数据并发送给对应的Master方主机部件。标识令牌信号的判断及返回响应数据的选择的详细步骤为:
(1)判断最先发送请求访问对应的标识令牌信号的状态,一旦判断标识令牌信号为有效状态时,发送对应的响应数据给主机部件,同时设置标识令牌信号为无效状态;
(2)判断下一个发送请求访问对应的标识令牌信号的状态,一旦判断标识令牌信号为有效状态时,发送对应的响应数据给主机部件,同时设置标识令牌信号为无效状态;
(3)判断是否发送完所有返回响应数据,若是,响应结束;若否返回执行步骤(2)。
如图4所示,本实施例中Master方接收返回响应的实现流程,请求访问地址到达FIFO队列缓冲部件的顺序依次为Address2、Address1、Address3及Address4,首先判断标识令牌信号flag[1]是否进入队列缓冲部件,一旦判断到flag[1]=1时,即flag[1]到达队列缓冲部件中,选中对应的返回响应数据retdata1,并发送至返回响应数据retdata1对应的主机部件,flag[1]设置由1变为0,其中0表示无效状态;然后判断标识令牌信号flag[2]是否到达队列缓冲部件中,一旦判断到flag[2]=1时选中对应的返回响应数据retdata2,并发送返回响应数据retdata2对应的主机部件,flag[2]设置为0;依此类推发送返回响应数据retdata3和返回响应数据retdata4,4个返回响应数据发送完成后,完成响应过程。
如图5所示,本实施例中通过设置有限状态机实现Master方接收返回响应,依据发送的请求访问的个数设置相应个数的状态,其中状态之间转移是顺序进行的,即为有记忆的无跳跃转移状态机。每个状态下对应两个状态,分别为“flag[n]=1”和“flag[n]=0”状态,对应“标识令牌信号有效”和“标识令牌信号无效”,当处于状态flag[n]=0时,该状态驻留,处于状态flag[n]=1时,发送对应的返回响应数据给主机部件并将状态由flag[n]=1变为flag[n]=0,转入下一个状态进行判断。
本实施例中,为4个请求信号设置4个状态HET_1、HET_2、HET_3和HET_4,HET_1状态之前设置一个闲置状态IDLE,首先判断标识令牌信号flag[1],flag[1]=0时,即第一个请求信号的返回响应数据还没有到达,驻留在闲置状态IDLE,一旦判断到flag[1]=1,转入状态HET_1,将与flag[1]=1相对应的响应数据发送到Master方的主机部件,并且把FIFO中的flag[1]的值由1变为0;下一状态判断flag[2],如果flag[2]=1,就把和flag[2]=1所对应的响应数据送到Master方的主机部件中去,并且把flag[2]的值由1变为0;同理依次把所有的对应的相应数据发送到Master方的主机部件中。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种总线间的乱序返回数据的归序方法,其特征在于,步骤为:
(1)Master方发送请求:Master方主机部件通过Master总线向Slave方的多个功能部件发送请求访问,根据发送的时间顺序依次为每个请求访问设置一个自增的标识令牌信号,并标记该标识令牌信号为有效状态,将标识令牌信号伴随请求访问信号的地址一起一一对应发送给Slave方的功能部件;
(2)Slave方响应请求:Slave方通过Slave总线接收请求信号的地址,分离出标识令牌信号;各个功能部件返回响应数据,并与对应的分离出来的标识令牌信号一起发送回Master方总线;
(3)Master方接收返回响应:Master方通过Master总线接收返回的响应数据及标识令牌信号并进行暂存,然后根据标识令牌信号的顺序依次发送返回响应数据给主机部件;Master方接收返回响应时,Slave方发出的由标识令牌信号flag[n]与返回的响应信号retdata组成的拼接信号在Master方的FIFO队列缓冲部件中进行暂存;所述拼接信号进入到FIFO队列缓冲部件中的时间并不是按原序到达的,而是按照发送请求访问的顺利依次选中标识令牌信号flag[n]对应的返回响应数据并发送给对应的Master方主机部件。
2.根据权利要求1中所述的总线间的乱序返回数据的归序方法,其特征在于,所述步骤(1)中标志令牌信号的设置与发送的详细步骤为:
(1.1)第一个请求访问的地址发出时,设置标识令牌信号flag[1],并标记为1,1表示有效状态,伴随第一个请求访问的地址一起发出;
(1.2)第二个请求访问的地址发出,设置标识令牌信号flag[2],并标识为1,伴随第二个请求访问的地址发出;
(1.3)以此类推,第n个请求访问的地址发出,设置标识令牌信号为flag[n],并标识为1,伴随第n个请求访问的地址一起发出,直至完成所有的请求访问地址发送。
3.根据权利要求1中所述的总线间的乱序返回数据的归序方法,其特征在于,所述步骤(3)中根据标识令牌信号的顺序依次发送响应数据给主机部件的详细步骤为:
(3.1)判断最先发送请求访问对应的标识令牌信号的状态,一旦判断标识令牌信号为有效状态时,发送对应的响应数据给主机部件,同时设置标识令牌信号为无效状态;
(3.2)判断下一个发送请求访问对应的标识令牌信号的状态,一旦判断标识令牌信号为有效状态时,发送对应的响应数据给主机部件,同时设置标识令牌信号为无效状态;
(3.3)判断是否发送完所有返回响应数据,若是,响应结束;若否返回执行步骤(3.2)。
4.根据权利要求3中所述的总线间的乱序返回数据的归序方法,其特征在于,所述步骤(3)通过设置有限状态机实现,所述有限状态机的状态之间的转移是顺序进行的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310366862.1A CN103399832B (zh) | 2013-08-21 | 2013-08-21 | 总线间的乱序返回数据的归序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310366862.1A CN103399832B (zh) | 2013-08-21 | 2013-08-21 | 总线间的乱序返回数据的归序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103399832A CN103399832A (zh) | 2013-11-20 |
CN103399832B true CN103399832B (zh) | 2016-09-14 |
Family
ID=49563464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310366862.1A Active CN103399832B (zh) | 2013-08-21 | 2013-08-21 | 总线间的乱序返回数据的归序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103399832B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649301B (zh) * | 2015-10-28 | 2020-09-11 | 北京国双科技有限公司 | 数据查询的方法、装置及*** |
CN106530676B (zh) * | 2016-08-08 | 2019-05-14 | 叶国华 | 一种面向新能源城市公交车的数据融合方法及v2x*** |
CN106506725B (zh) * | 2016-11-25 | 2019-05-31 | 阳光电源股份有限公司 | 主从式多机通信***、主机、从机以及从机id分配方法 |
CN112395011B (zh) | 2020-11-24 | 2022-11-29 | 海宁奕斯伟集成电路设计有限公司 | 命令响应信息的返回方法、返回控制装置和电子设备 |
CN113032307A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种集成器件访问请求处理方法及相关组件 |
CN113904762B (zh) * | 2021-09-28 | 2023-09-26 | 中孚信息股份有限公司 | 一种带环形缓冲区的全双工485总线通信***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308477A (zh) * | 2008-06-13 | 2008-11-19 | 华为技术有限公司 | ***总线的防死锁方法、装置及片上*** |
CN101447931A (zh) * | 2008-12-26 | 2009-06-03 | 华为技术有限公司 | 一种排他操作的实现方法和装置 |
CN103092798A (zh) * | 2012-12-28 | 2013-05-08 | 华为技术有限公司 | 片上***及总线下的访问设备的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820140B2 (en) * | 2002-07-24 | 2004-11-16 | Intel Corporation | Method, system, and program for returning data to read requests received over a bus |
CN100524119C (zh) * | 2007-08-24 | 2009-08-05 | 上海正航电子科技有限公司 | 一种可编程逻辑控制器与扩展模块的接口 |
CN101950279B (zh) * | 2010-09-30 | 2012-09-19 | 华为技术有限公司 | 均衡数据信息流量的方法、总线***和译码器 |
-
2013
- 2013-08-21 CN CN201310366862.1A patent/CN103399832B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308477A (zh) * | 2008-06-13 | 2008-11-19 | 华为技术有限公司 | ***总线的防死锁方法、装置及片上*** |
CN101447931A (zh) * | 2008-12-26 | 2009-06-03 | 华为技术有限公司 | 一种排他操作的实现方法和装置 |
CN103092798A (zh) * | 2012-12-28 | 2013-05-08 | 华为技术有限公司 | 片上***及总线下的访问设备的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103399832A (zh) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103399832B (zh) | 总线间的乱序返回数据的归序方法 | |
CN100504827C (zh) | 在次序混乱的dma命令队列中建立命令次序 | |
CN105005546B (zh) | 一种内置交点队列的异步axi总线结构 | |
CN103198043B (zh) | 一种改进的AHB to APB总线桥及其控制方法 | |
CN102012872B (zh) | 一种用于嵌入式***的二级缓存控制方法及装置 | |
CN103198856B (zh) | 一种ddr控制器及请求调度方法 | |
CN104781756B (zh) | 管理处理器的功率状态 | |
US10225168B2 (en) | Interface apparatus and memory bus system | |
EP2717533A1 (en) | Method, network card and hard disk card for accessing to shut-down hard disk | |
CN100585578C (zh) | ***总线的防死锁方法、装置 | |
CN103593306A (zh) | 一种协议处理器Cache控制单元的设计方法 | |
CN103631534B (zh) | 数据存储***以及其管理方法 | |
CN109308283A (zh) | 一种SoC片上***及其外设总线切换方法 | |
CN107743137A (zh) | 一种文件上传方法及装置 | |
CN109426623A (zh) | 一种读取数据的方法及装置 | |
CN103577469B (zh) | 数据库连接复用方法和装置 | |
CN104866528A (zh) | 多平台数据采集方法及*** | |
CN101656658B (zh) | 一种提高队列管理中出队效率的方法和装置 | |
CN106648851A (zh) | 一种多控存储中io管理的方法和装置 | |
CN109062834A (zh) | 基于dma的spi通讯方法、电子设备、存储介质、装置 | |
CN104915302B (zh) | 数据传输处理方法和数据传输器 | |
CN113220107A (zh) | PCIe链路的功耗管理方法以及终端设备和存储介质 | |
CN106547707B (zh) | 阵列处理器中簇内存储并行访问局部优先交换电路 | |
CN206317552U (zh) | 再生芯片 | |
CN102591817B (zh) | 一种多总线桥控制器及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |