CN102388359A - 信号保序方法和装置 - Google Patents

信号保序方法和装置 Download PDF

Info

Publication number
CN102388359A
CN102388359A CN2011800019163A CN201180001916A CN102388359A CN 102388359 A CN102388359 A CN 102388359A CN 2011800019163 A CN2011800019163 A CN 2011800019163A CN 201180001916 A CN201180001916 A CN 201180001916A CN 102388359 A CN102388359 A CN 102388359A
Authority
CN
China
Prior art keywords
data
request signal
fifo
storer
fifo storer
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.)
Granted
Application number
CN2011800019163A
Other languages
English (en)
Other versions
CN102388359B (zh
Inventor
范纯磊
陈卓
屈仁杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102388359A publication Critical patent/CN102388359A/zh
Application granted granted Critical
Publication of CN102388359B publication Critical patent/CN102388359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例涉及信号保序方法和装置。当第一FIFO存储器写入来自对应的第一上游设备的请求信号的数据时,在相同时钟周期,向第二上游设备对应的第二FIFO存储器写入无效数据,从第一FIFO存储器读取请求信号的数据并从第二FIFO存储器读取无效数据,丢弃无效数据,向下游设备输送请求信号的数据。采用本发明实施例的信号保序方法和装置,在实现信号保序的同时减小了存在保序要求的各个设备之间的耦合程度。

Description

信号保序方法和装置
技术领域
本发明实施例涉及通信技术,尤其涉及信号保序方法和装置。
背景技术
在通信和网络芯片中,对于存在不同时钟域的多模块间的多组信号的通信过程,为了保证数据读写的正确性,需要保证读写请求发生的先后关系与时间顺序保持一致,因此需要进行保序处理。
例如,在一个复杂的应用场景下:第一时钟周期,A设备请求对地址0进行读操作;第二时钟周期,B设备请求对地址0进行写操作;第三时钟周期,C设备请求对地址0进行读操作;第四时钟周期,D设备请求对地址0进行读操作;第五时钟周期,E设备请求对地址0进行写操作;第六时钟周期,F设备请求对地址0进行读操作......为了保证数据读写的正确性,控制器需要完全按照上述顺序对存储器进行读写操作,否则会发生乱序,导致系统错误。
目前,现有的信号保序方法通常采用写确认的方式进行保序。对于一个地址,只有返回该地址的写入确认信号之后,控制器才允许进行针对此地址的读取操作。采用这种信号保序方法,写确认导致的延迟使得后续请求源的缓存加深,从而加重了存在保序要求的各个模块或设备之间的耦合程度,并且,写确认导致的延迟会使得后续请求断断续续,从而导致系统性能不平稳,难以满足高质量的需求。
发明内容
本发明实施例提供一种信号保序方法,用以解决现有技术中的缺陷,在实现信号保序的同时减小存在保序要求的设备之间的耦合程度。
本发明实施例还提供一种信号保序装置,用以解决现有技术中的缺陷,在实现信号保序的同时减小存在保序要求的设备之间的耦合程度。
本发明实施例还提供一种信号保序方法,用以解决现有技术中的缺陷,在实现信号保序的同时减小存在保序要求的设备之间的耦合程度。
本发明实施例还提供一种信号保序装置,用以解决现有技术中的缺陷,在实现信号保序的同时减小存在保序要求的设备之间的耦合程度。
本发明实施例提供一种信号保序方法,包括:
当至少一个第一先入先出FIFO存储器写入来自对应的至少一个第一上游设备的请求信号的数据时,在写入所述请求信号的数据的相同时钟周期,向至少一个第二上游设备对应的至少一个第二FIFO存储器写入无效数据;
从所述至少一个第一FIFO存储器读取所述请求信号的数据并从所述至少一个第二FIFO存储器读取所述无效数据,丢弃所述无效数据,向下游设备输送所述请求信号的数据。
本发明实施例还提供一种信号保序方法,包括:
当接收到来自至少一个上游设备的请求信号的数据时,为所述请求信号的数据附加用于指示当前时钟周期的标记,向每个所述上游设备对应的先入先出FIFO存储器写入一个带有所述标记的所述请求信号的数据;
从所述FIFO存储器中读取带有所述用于指示当前时钟周期的标记的请求信号的数据,并输送给下游设备。
本发明实施例还提供一种信号保序装置,包括:
控制模块,用于控制至少一个第一先入先出FIFO存储器写入来自对应的至少一个第一上游设备的请求信号的数据,并且控制至少一个第二FIFO存储器在写入所述请求信号的数据的相同时钟周期写入无效数据;
所述至少一个第一FIFO存储器,每个第一FIFO存储器对应一个第一上游设备,用于在控制模块的控制下写入对应的第一上游设备的请求信号的数据;
所述至少一个第二FIFO存储器,每个第二FIFO存储器对应一个第二上游设备,用于在控制模块的控制下写入无效数据,所述第二上游设备与所述至少一个第一上游设备存在保序要求;
调度模块,用于从所述至少一个第一FIFO存储器读取所述请求信号的数据并从所述至少一个第二FIFO存储器读取所述无效数据,丢弃所述无效数据,向下游设备输送所述请求信号的数据。
本发明实施例还提供一种信号保序装置,包括:
标记模块,用于当接收到来自至少一个上游设备的请求信号的数据时,为所述请求信号的数据附加用于指示当前时钟周期的标记,控制至少一个先入先出FIFO存储器写入对应的带有所述标记的所述请求信号的数据;
所述至少一个FIFO存储器,每个FIFO存储器对应一个上游设备,用于写入对应上游设备的带有所述用于指示当前时钟周期的标记的所述请求信号的数据;
调度模块,用于从所述FIFO存储器中读取带有所述用于指示当前时钟周期的标记的请求信号的数据,并输送给下游设备。
由上述技术方案可知,本发明实施例通过向未接收到请求信号的FIFO存储器中填充无效数据或为接收的请求信号进行标记实现保序,从而各个上游设备发出的请求信号不必根据其它上游设备发出的请求信号的处理状态进行接收,因此在实现信号保序的同时减小了存在保序要求的各个设备之间的耦合程度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的信号保序方法的流程图;
图2为本发明实施例二的信号保序装置的结构示意图;
图3为本发明实施例三的信号保序装置的结构示意图;
图4为本发明实施例四的信号保序方法的流程图;
图5为本发明实施例五的信号保序装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下述本发明实施例一至本发明实施例五中,在向普通存储器发送读或写请求信号之前,先采用多个先入先出(First Input First Output,简称FIFO)存储器,对多个读或写请求信号进行保序处理。
图1为本发明实施例一的信号保序方法的流程图。如图1所示,该方法包括以下过程。
步骤101:当至少一个第一FIFO存储器写入来自对应的至少一个第一上游设备的请求信号的数据时,在写入请求信号的数据的相同时钟周期,向至少一个第二上游设备对应的至少一个第二FIFO存储器写入无效数据。
在本步骤中,根据是否发出请求信号,将全部上游设备区分为两类,即:第一上游设备和第二上游设备。其中,发出请求信号的上游设备为第一上游设备,其余未发出请求信号的且与第一上游设备存在保序要求的上游设备为第二上游设备。每一个上游设备对应一个FIFO存储器,其中,第一上游设备对应的FIFO存储器为第一FIFO存储器,第二上游设备对应的FIFO存储器为第二FIFO存储器。在实际应用中,第一FIFO存储器与第二FIFO存储器可以采用相同的FIFO存储器器件。
步骤102:从至少一个第一FIFO存储器读取请求信号的数据并从至少一个第二FIFO存储器读取无效数据,丢弃无效数据,向下游设备输送请求信号的数据。
在本步骤中,在上述相同的时钟周期,读取全部FIFO存储器中的数据。其中,从第一FIFO存储器中读取的是请求信号的数据,从第二FIFO存储器中读取的是无效数据。上述下游设备具体可以为普通存储器。
采用上述步骤101与步骤102相结合,在同一时钟周期内,相互之间具有保序要求的全部FIFO存储器中均有数据填充,其中,接收到的请求信号的数据填入对应的FIFO存储器,采用无效数据填充其它没有收到请求信号的FIFO存储器,然后,从全部FIFO存储器中读取出各自的数据。读取后全部FIFO存储器为空。接下来,在下一个时钟周期,又采用同样的方法,将接收到的请求信号的数据填入对应的FIFO存储器,采用无效数据填充其它没有收到请求信号的FIFO存储器,然后从全部FIFO存储器中读取出各自的数据。按照时钟周期的顺序,在每个时钟周期内采用此方法依次执行,从而保证了每次向下游设备发送的请求信号均为同一时钟周期内的请求信号,相邻时钟周期之间的请求信号不会互相混淆,因此通过占用未收到请求信号的FIFO存储器的空间位置,保证了请求信号的时间顺序。
在本发明实施例一中,通过向未接收到请求信号的FIFO存储器中填充无效数据进行保序,各个上游设备发出的请求信号之间相互独立,其中一个上游设备发出的请求信号不必根据其它上游设备发出的请求信号的处理状态进行接收,因此减小了各个设备之间的耦合程度。
图2为本发明实施例二的信号保序装置的结构示意图。如图2所示,该装置包括:一个控制模块21、至少一个第一FIFO存储器22、至少一个第二FIFO存储器23和一个调度模块24。
其中,控制模块21用于控制至少一个第一FIFO存储器22写入来自对应的至少一个第一上游设备的请求信号的数据,并且控制至少一个第二FIFO存储器23在写入请求信号的数据的相同时钟周期写入无效数据。
每个第一FIFO存储器22对应一个第一上游设备,用于在控制模块21的控制下写入对应的第一上游设备的请求信号的数据。
每个第二FIFO存储器23对应一个第二上游设备,用于在控制模块21的控制下写入无效数据。其中,第二上游设备是与上述第一上游设备存在保序要求的上游设备。
调度模块24用于从至少一个第一FIFO存储器22读取请求信号的数据并从至少一个第二FIFO存储器23读取无效数据,丢弃无效数据,向下游设备输送请求信号的数据。
采用控制模块21控制FIFO存储器(包括第一FIFO存储器22和第二FIFO存储器23)的写入操作,在同一时钟周期内,使得相互之间具有保序要求的全部FIFO存储器中均有数据填充,其中,接收到的请求信号的数据填入对应的FIFO存储器,采用无效数据填充其它没有收到请求信号的FIFO存储器,然后,调度模块24从全部FIFO存储器中读取出各自的数据。读取后全部FIFO存储器为空。在下一个时钟周期,控制模块21和调度模块24仍执行上述同样的功能,控制模块21将接收到的请求信号的数据填入对应的FIFO存储器,采用无效数据填充其它没有收到请求信号的FIFO存储器,然后调度模块24从全部FIFO存储器中读取出各自的数据。按照时钟周期的顺序,在每个时钟周期内控制模块和调度模块执行上述功能,从而保证了调度模块24每次向下游设备发送的请求信号均为同一时钟周期内的请求信号,相邻时钟周期之间的请求信号不会互相混淆,因此通过占用未收到请求信号的FIFO存储器的空间位置,保证了请求信号的时间顺序。
在本发明实施例二中,通过向未接收到请求信号的FIFO存储中填充无效信号进行保序,各个上游设备发出的请求信号之间相互独立,其中一个上游设备发出的请求信号不必根据其它上游设备发出的请求信号的处理状态进行接收,因此减小了各个设备之间的耦合程度。
图3为本发明实施例三的信号保序装置的结构示意图。本发明实施例三是对上述本发明实施例二的信号保序装置的结构进行细化的实施例,具体地,对本发明实施例二中的控制模块进行细化。如图3所示,本发明实施例三的信号保序装置包括:一个或门31、至少一个选择器32、至少一个FIFO存储器33和一个调度模块34。其中,本发明实施例三中的上述至少一个选择器32和一个或门31组成本发明实施例二中的控制模块21。
参见图3,该信号保序装置的具体结构如下。每个选择器32对应一个上游设备和一个FIFO存储器33。每个选择器32具有两个输入端口、一个控制端口和一个输出端口。其中,第一输入端口用于输入上游设备的请求信号的数据;第二输入端口用于输入无效数据。控制端口用于输入上游设备发送的请求信号对应的有效信号或无效信号,当该选择器32对应的上游设备输出请求信号时,选择器32的控制端口输入的是有效信号,当该选择器32对应的上游设备未输出请求信号时,选择器32的控制端口输入的是无效信号。当选择器32的控制端口输入有效信号时,选择器32选择让第一输入端口的数据通过该选择器32,选择器32的输出端口将上游设备的请求信号的数据输入到对应的FIFO存储器33;当选择器32的控制端口输入无效信号时,选择器32选择让第二输入端口的数据通过该选择器32,选择器32的输出端口将无效数据输入到对应的FIFO存储器33。上述或门31具有多个输入端口和一个输出端口。其中,每一个输入端口对应一个上游设备,用于输入该上游设备发送的请求信号对应的有效信号或无效信号,当该输入端口对应的上游设备输出请求信号时,该输入端口输入的是有效信号,当该输入端口对应的上游设备未输出请求信号时,该输入端口输入的是无效信号。或门31对上述输入端口输入的信号进行或运算后,将或运算的结果作为写控制信号通过输出端口输出,或门31的输出端口连接到上述每一个FIFO存储器33,向每一个FIFO存储器33的控制端口输出该写控制信号。每个FIFO存储器33包括一个输入端口、一个输出端口和一个控制端口。其中,每个FIFO存储器33的输入端口连接到对应的选择器32的输出端口,用于接收该选择器32输出的数据。控制端口连接或门31的输出端口,用于接收或门31输出的写控制信号,当写控制信号有效时,该FIFO存储器33进行写操作,将输入端输入的数据写入该FIFO存储器33,当写控制信号无效时,该FIFO存储器33不进行写操作。每个FIFO存储器33的输出端口分别连接到调度模块34的一个输入端口,根据调度模块34的调度,将FIFO存储器33内存储的数据输出给调度模块34。调度模块34对输入的数据进行处理,丢弃其中的无效数据。调度模块34具有至少一个输出端口,每个输出端口将调度模块34处理后的数据输出到下游设备。一种较佳的实施方式是,该下游设备为普通存储器。
具体地,在具有保序要求的全部上游设备中,发出请求信号的上游设备为第一上游设备,其余未发出请求信号的上游设备为第二上游设备。在图3所示的全部选择器32中,第一上游设备对应的选择器32为第一选择器,第二上游设备对应的选择器32为第二选择器。在图3所示的全部FIFO存储器33中,第一上游设备对应的FIFO存储器33为第一FIFO存储器,第二上游设备对应的FIFO存储器33为第二FIFO存储器。则在图3所示的信号保序装置中,其控制模块具体包括:至少一个第一选择器、至少一个第二选择器和或门。其中,每个第一选择器对应一个第一FIFO存储器和一个第一上游设备,用于根据对应的第一上游设备的有效信号的触发,为对应的第一FIFO存储器选择请求信号的数据。每个第二选择器对应一个第二FIFO存储器,用于根据第二上游设备对应的无效信号的触发,为对应的第二FIFO存储器选择无效数据。或门用于根据至少一个第一上游设备对应的有效信号和至少一个第二上游设备对应的无效信号的触发,向至少一个第一FIFO存储器和至少一个第二FIFO存储器发送写有效控制信号。
采用图3所示的信号保序装置,上述本发明实施例一的步骤101的一种较佳的实施方式如下。当至少一个第一上游设备发出至少一个请求信号时,每个第一上游设备对应一个有效信号,每个有效信号触发对应的第一选择器为对应的第一FIFO存储器选择该第一上游设备的请求信号的数据。同时,由于第二上游设备未发出请求信号,因此每个第二上游设备对应一个无效信号,每个无效信号触发对应的第二选择器为对应的第二FIFO存储器选择无效数据。同时,上述有效信号和上述无效信号输入或门31,经过或门31进行或运算之后,只要其中包括至少一个有效信号,则或运算结果即为写控制信号有效,因此,或门31向上述至少一个第一FIFO存储器和上述至少一个第二FIFO存储器发送写有效控制信号,从而向第一FIFO存储器写入第一选择器选择的第一上游设备的请求信号的数据,向第二FIFO存储器写入第二选择器选择的无效数据。
采用或门31和选择器32组成的控制模块控制FIFO存储器33的写入操作,在同一时钟周期内,使得相互之间具有保序要求的全部FIFO存储器33中均有数据填充,其中,采用无效数据填充了没有收到请求信号的FIFO存储器33,调度模块34从全部FIFO存储器33中读取出各自的数据。从而保证了调度模块34每次向下游设备发送的请求信号均为同一时钟周期内的请求信号,相邻时钟周期之间的请求信号不会互相混淆,因此通过占用未收到请求信号的FIFO存储器33的空间位置,保证了请求信号的时间顺序。
在本发明实施例三中,通过向未接收到请求信号的FIFO存储器中填充无效数据进行保序,各个上游设备发出的请求信号之间相互独立,其中一个上游设备发出的请求信号不必根据其它上游设备发出的请求信号的处理状态进行接收,因此减小了各个设备之间的耦合程度。
在上述本发明实施例一至本发明实施例三中,上述无效数据具体可以采用全0数据或全1数据,即,将对应的第二FIFO存储器中的全部比特位均写入0,或将其全部比特位均写入1。在其它的具体实施例中,还可以根据实际情况,采用其它的预设数据作为上述无效数据,只要预先通过配置调度模块对该无效数据进行约定即可。
在上述技术方案的基础上,在本发明实例一的步骤102中,向下游设备输送请求信号的数据具体可以按照预设的优先级策略向下游设备输送请求信号的数据。在本发明实施例二或本发明实施例三中,具体可以分别在上述调度模块24或调度模块34中预设优先级策略,调度模块24或调度模块34在向下游设备输送请求信号的数据时,具体可以按照预设的优先级策略向下游设备输送请求信号的数据。例如,上述请求信号可以为写请求信号或读请求信号,预设的优先级策略可以为:读优先策略、写优先策略、FIFO顺序策略或轮叫调度策略。采用读优先策略时,在同一时钟周期,优先发送读请求信号的数据,待同一时钟周期读请求信号的数据发送完毕后,再发送写请求信号的数据。采用写优先策略时,在同一时钟周期,优先发送写请求信号的数据,待同一时钟周期写请求信号的数据发送完毕后,再发送读请求信号的数据。采用FIFO顺序策略时,不针对读写操作区分优先级,而是根据FIFO的排列顺序发送FIFO中的请求信号的数据。采用轮叫(RoundRobin,简称RR)调度策略,按照预设的轮叫顺序发送FIFO中的请求信号的数据。轮叫调度策略又称循环调度策略,轮叫顺序又称循环顺序在其它的具体实施例中,还可以根据实际情况,采用其它的优先级策略,只需在调度模块中进行预设即可。从而根据不同的优先级策略,在向下游设备传输一个时钟周期的请求信号时,对同一时钟周期的多个请求信号进行优先级排序。
图4为本发明实施例四的信号保序方法的流程图。如图4所示,该方法包括如下过程。
步骤401:当接收到来自至少一个上游设备的请求信号的数据时,为该请求信号的数据附加用于指示当前时钟周期的标记,向上述每个上游设备对应的FIFO存储器写入一个带有所述标记的所述请求信号的数据。
步骤402:从上述FIFO存储器中读取带有所述用于指示当前时钟周期的标记的请求信号的数据,并输送给下游设备。
在本步骤中,上述下游设备具体可以为普通存储器。具体地,从FIFO存储器中读取数据时,每次读取一种标记的全部请求信号,并且各次读取操作所采用的标记各不相同,各次读取操作采用的标记是按照时钟周期的顺序排列的。
上述步骤401结合步骤402,在向FIFO存储器中写入请求信号的数据时,根据当前时钟周期对请求信号的数据进行标记,在不同的时钟周期采用不同的标记,在从FIFO存储器中读取数据时,按照时钟周期的顺序确定一系列读取操作所采用的标记的数据,每次读取一种标记的全部请求信号。例如,在第一时钟周期,有一个上游设备发出请求信号,则向该上游设备对应的FIFO存储器中写入带有第一时钟周期标记的请求信号的数据,在第二时钟周期,另外两个上游设备发出请求信号,则向这两个上游设备对应的FIFO存储器中分别写入带有第二时钟周期标记的各自对应的请求信号的数据,在读取时,先读取带有第一时钟周期标记的请求信号的数据,发送给下游设备,然后再读取带有第二时钟周期标记的请求信号的数据,发送给下游设备。从而通过采用当前时钟周期对接收的请求信号进行标记,保证了请求信号的时间顺序。
在本发明实施例四中,通过加入标记进行保序,各个上游设备发出的请求信号之间相互独立,其中一个上游设备发出的请求信号不必根据其它上游设备发出的请求信号的处理状态进行接收,因此减小了各个设备之间的耦合程度。
图5为本发明实施例五的信号保序装置的结构示意图。如图5所示,该信号保序装置包括:一个标记模块51、至少一个FIFO存储器52和一个调度模块53。
其中,标记模块51用于当接收到来自至少一个上游设备的请求信号的数据时,为该请求信号的数据附加用于指示当前时钟周期的标记,控制至少一个FIFO存储器52写入带有上述标记的对应的请求信号的数据。
每个FIFO存储器52对应一个上游设备,用于写入对应上游设备的带有上述标记的请求信号的数据。
调度模块53,用于从上述FIFO存储器52中读取带有上述标记的请求信号的数据,并输送给下游设备。具体地,调度模块53从FIFO存储器52中读取数据时,每次读取一种标记的全部请求信号,并且调度模块53的各次读取操作所采用的标记各不相同,调度模块53的各次读取操作采用的标记是按照时钟周期的顺序排列的。
具体地,具体地,标记模块51内运行一个循环计数的计数器,当接收到请求信号时,标记模块51将当前计数器的值与该请求信号的数据一起写入FIFO存储器52,则在该FIFO存储器52的出口即可获取携带标记的请求信号数据。调度模块53根据上述标记的值即可判断出对应的请求信号的顺序。
在向FIFO存储器52中写入请求信号的数据时,标记模块51根据当前时钟周期对请求信号的数据进行标记,在不同的时钟周期采用不同的标记,在调度模块53从FIFO存储器中读取数据时,按照时钟周期的顺序确定一系列读取操作所采用的标记的数据,每次读取一种标记的全部请求信号。例如,在第一时钟周期,有一个上游设备发出请求信号,则标记模块51为向该上游设备对应的FIFO存储器52中写入的请求信号的数据附加上第一时钟周期标记,在第二时钟周期,另外两个上游设备发出请求信号,则标记模块51为向这两个上游设备对应的FIFO存储器52中分别写入的请求信号的数据附加上第二时钟周期标记。调度模块53在读取FIFO存储器52时,先读取带有第一时钟周期标记的请求信号的数据,发送给下游设备,然后再读取带有第二时钟周期标记的请求信号的数据,发送给下游设备。从而通过采用当前时钟周期对接收的请求信号进行标记,保证了请求信号的时间顺序。
在本发明实施例五中,各个上游设备发出的请求信号之间相互独立,其中一个上游设备发出的请求信号不必根据其它上游设备发出的请求信号的处理状态进行接收,因此减小了各个设备之间的耦合程度。
在上述本发明实施例一至本发明实施例五中,当上述实施例中的信号保序方法或装置应用于同一时钟域的情况下时,上述方法或装置中的FIFO存储器的输入端和输出端对应同一个时钟域,因此该FIFO存储器可以为同步FIFO存储器,也可以为异步先入先出(Asynchronous First Input FirstOutput,简称AFIFO)存储器;当上述实施例中的信号保序方法或装置应用于跨时钟域的情况下时,上述方法或装置中的FIFO存储器的输入端和输出端对应不同的时钟域,因此该FIFO存储器为AFIFO存储器。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘、寄存器阵列、寄存器堆等各种可以存储程序代码的介质,其中,RAM包括SRAM和DRAM。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (14)

1.一种信号保序方法,其特征在于,包括:
当至少一个第一先入先出FIFO存储器写入来自对应的至少一个第一上游设备的请求信号的数据时,在写入所述请求信号的数据的相同时钟周期,向至少一个第二上游设备对应的至少一个第二FIFO存储器写入无效数据;
从所述至少一个第一FIFO存储器读取所述请求信号的数据并从所述至少一个第二FIFO存储器读取所述无效数据,丢弃所述无效数据,向下游设备输送所述请求信号的数据。
2.根据权利要求1所述的方法,其特征在于,所述当至少一个第一FIFO存储器写入来自对应的至少一个第一上游设备的请求信号的数据时,在写入所述请求信号的数据的相同时钟周期,向至少一个第二上游设备对应的至少一个第二FIFO存储器写入无效数据包括:
所述至少一个第一上游设备发出至少一个请求信号;
每个所述第一上游设备的有效信号触发一个所述第一FIFO存储器对应的选择器为对应的所述第一FIFO存储器选择一个所述请求信号的数据;
每个所述第二上游设备的无效信号触发一个所述第二FIFO存储器对应的选择器为对应的所述第二FIFO存储器选择所述无效数据;
所述至少一个第一上游设备的有效信号和所述至少一个第二上游设备的无效信号触发或门向所述至少一个第一FIFO存储器和所述至少一个第二FIFO存储器发送写有效控制信号。
3.根据权利要求1或2所述的方法,其特征在于,
所述无效数据为全0数据或全1数据。
4.根据权利要求1或2所述的方法,其特征在于,所述向下游设备输送所述请求信号的数据包括:
按照预设的优先级策略向下游设备输送所述请求信号的数据。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,
所述第一先入先出FIFO存储器为第一异步先入先出AFIFO存储器;
所述第二FIFO存储器为第二AFIFO存储器。
6.一种信号保序方法,其特征在于,包括:
当接收到来自至少一个上游设备的请求信号的数据时,为所述请求信号的数据附加用于指示当前时钟周期的标记,向每个所述上游设备对应的先入先出FIFO存储器写入一个带有所述标记的所述请求信号的数据;
从所述FIFO存储器中读取带有所述用于指示当前时钟周期的标记的请求信号的数据,并输送给下游设备。
7.根据权利要求6所述的方法,其特征在于,
所述先入先出FIFO存储器为异步先入先出AFIFO存储器。
8.一种信号保序装置,其特征在于,包括:
控制模块,用于控制至少一个第一先入先出FIFO存储器写入来自对应的至少一个第一上游设备的请求信号的数据,并且控制至少一个第二FIFO存储器在写入所述请求信号的数据的相同时钟周期写入无效数据;
所述至少一个第一FIFO存储器,每个第一FIFO存储器对应一个第一上游设备,用于在控制模块的控制下写入对应的第一上游设备的请求信号的数据;
所述至少一个第二FIFO存储器,每个第二FIFO存储器对应一个第二上游设备,用于在控制模块的控制下写入无效数据;
调度模块,用于从所述至少一个第一FIFO存储器读取所述请求信号的数据并从所述至少一个第二FIFO存储器读取所述无效数据,丢弃所述无效数据,向下游设备输送所述请求信号的数据。
9.根据权利要求8所述的装置,其特征在于,所述控制模块包括:
至少一个第一选择器,每个第一选择器对应一个所述第一FIFO存储器和一个所述第一上游设备,用于根据对应的所述第一上游设备的有效信号的触发,为对应的所述第一FIFO存储器选择所述请求信号的数据;
至少一个第二选择器,每个第二选择器对应一个所述第二FIFO存储器,用于根据所述第二上游设备对应的无效信号的触发,为对应的所述第二FIFO存储器选择所述无效数据;
或门,用于根据所述至少一个第一上游设备对应的有效信号和所述至少一个第二上游设备对应的无效信号的触发,向所述至少一个第一FIFO存储器和所述至少一个第二FIFO存储器发送写有效控制信号。
10.根据权利要求8或9所述的装置,其特征在于,
所述无效数据为全0数据或全1数据。
11.根据权利要求8或9所述的装置,其特征在于,
所述调度模块具体用于按照预设的优先级策略向下游设备输送所述请求信号的数据。
12.根据权利要求8至11中任意一项所述的装置,其特征在于,
所述第一先入先出FIFO存储器为第一异步先入先出AFIFO存储器;
所述第二FIFO存储器为第二AFIFO存储器。
13.一种信号保序装置,其特征在于,包括:
标记模块,用于当接收到来自至少一个上游设备的请求信号的数据时,为所述请求信号的数据附加用于指示当前时钟周期的标记,控制至少一个先入先出FIFO存储器写入对应的带有所述标记的所述请求信号的数据;
所述至少一个FIFO存储器,每个FIFO存储器对应一个上游设备,用于写入对应上游设备的带有所述用于指示当前时钟周期的标记的所述请求信号的数据;
调度模块,用于从所述FIFO存储器中读取带有所述用于指示当前时钟周期的标记的请求信号的数据,并输送给下游设备。
14.根据权利要求13所述的装置,其特征在于,
所述先入先出FIFO存储器为异步先入先出AFIFO存储器。
CN201180001916.3A 2011-09-15 2011-09-15 信号保序方法和装置 Active CN102388359B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/079681 WO2012149742A1 (zh) 2011-09-15 2011-09-15 信号保序方法和装置

Publications (2)

Publication Number Publication Date
CN102388359A true CN102388359A (zh) 2012-03-21
CN102388359B CN102388359B (zh) 2014-01-01

Family

ID=45826487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180001916.3A Active CN102388359B (zh) 2011-09-15 2011-09-15 信号保序方法和装置

Country Status (3)

Country Link
US (1) US9122411B2 (zh)
CN (1) CN102388359B (zh)
WO (1) WO2012149742A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704020A (zh) * 2019-09-29 2020-01-17 浪潮(北京)电子信息产业有限公司 一种跨时钟域数据包的完整性判断方法、系统及相关装置
WO2021259230A1 (zh) * 2020-06-22 2021-12-30 深圳鲲云信息科技有限公司 模块间通信方法及系统
CN116049032A (zh) * 2023-03-30 2023-05-02 摩尔线程智能科技(北京)有限责任公司 基于光线追踪的数据调度方法、装置及设备、存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104620224A (zh) * 2012-09-13 2015-05-13 汤姆逊许可公司 从先进先出传送机构的随机存取消息检索的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423818A (zh) * 1999-11-12 2003-06-11 高通股份有限公司 使用单一端口随机存取存储器的同时寻址
US20050138281A1 (en) * 2003-12-18 2005-06-23 Garney John I. Request processing order in a cache
US20070260614A1 (en) * 2006-05-02 2007-11-08 Sun Microsystems, Inc. Lock-free implementation of an ordered single-writer multiple-readers data structure
CN101291208A (zh) * 2007-04-17 2008-10-22 佳能株式会社 通信网络中数据内容的传送和接收方法和相应设备
CN102117193A (zh) * 2010-01-04 2011-07-06 杭州华三通信技术有限公司 一种实现预读式fifo的方法和预读式fifo
US20110196999A1 (en) * 2002-02-06 2011-08-11 Juniper Networks, Inc. Systems and methods for order preserving data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246684B1 (en) * 1997-12-24 2001-06-12 Nortel Networks Limited Method and apparatus for re-ordering data packets in a network environment
US6581111B1 (en) * 2000-06-02 2003-06-17 Advanced Micro Devices, Inc. Out-of-order probing in an in-order system
US7068603B2 (en) * 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6611469B2 (en) * 2001-12-11 2003-08-26 Texas Instruments Incorporated Asynchronous FIFO memory having built-in self test logic

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423818A (zh) * 1999-11-12 2003-06-11 高通股份有限公司 使用单一端口随机存取存储器的同时寻址
US20110196999A1 (en) * 2002-02-06 2011-08-11 Juniper Networks, Inc. Systems and methods for order preserving data
US20050138281A1 (en) * 2003-12-18 2005-06-23 Garney John I. Request processing order in a cache
US20070260614A1 (en) * 2006-05-02 2007-11-08 Sun Microsystems, Inc. Lock-free implementation of an ordered single-writer multiple-readers data structure
CN101291208A (zh) * 2007-04-17 2008-10-22 佳能株式会社 通信网络中数据内容的传送和接收方法和相应设备
CN102117193A (zh) * 2010-01-04 2011-07-06 杭州华三通信技术有限公司 一种实现预读式fifo的方法和预读式fifo

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704020A (zh) * 2019-09-29 2020-01-17 浪潮(北京)电子信息产业有限公司 一种跨时钟域数据包的完整性判断方法、系统及相关装置
WO2021259230A1 (zh) * 2020-06-22 2021-12-30 深圳鲲云信息科技有限公司 模块间通信方法及系统
CN116049032A (zh) * 2023-03-30 2023-05-02 摩尔线程智能科技(北京)有限责任公司 基于光线追踪的数据调度方法、装置及设备、存储介质

Also Published As

Publication number Publication date
WO2012149742A1 (zh) 2012-11-08
US9122411B2 (en) 2015-09-01
US20140115201A1 (en) 2014-04-24
CN102388359B (zh) 2014-01-01

Similar Documents

Publication Publication Date Title
US7548842B2 (en) Scalable system for simulation and emulation of electronic circuits using asymmetrical evaluation and canvassing instruction processors
US7433977B2 (en) DMAC to handle transfers of unknown lengths
US8260981B2 (en) Direct access memory controller with multiple sources, corresponding method and computer program
CN102437929A (zh) 队列管理中的数据出队方法及装置
CN102388359B (zh) 信号保序方法和装置
US9569384B2 (en) Conditional links for direct memory access controllers
CN105656807A (zh) 一种网络芯片多通道数据传输方法及传输装置
CN116547644A (zh) 检测可编程原子事务中的无限循环
US8880811B2 (en) Data processing device and data processing arrangement for accelerating buffer synchronization
US20240086200A1 (en) Self-scheduling threads in a programmable atomic unit
JP2004362567A (ja) 共用記憶装置の調停
CN104111817B (zh) 算术处理装置
CN109446130A (zh) 一种i/o设备状态信息的获取方法及系统
CN104125169B (zh) 链表处理装置、链表处理方法及相关网络交换机
US10637780B2 (en) Multiple datastreams processing by fragment-based timeslicing
US9531641B2 (en) Virtual output queue linked list management scheme for switch fabric
CN101855623B (zh) 具有可间接存取的存储器的控制器
CN104052686A (zh) 用于对互连访问进行仲裁的系统和方法
Afsin et al. C 3: configurable can fd controller: architecture, design and hardware implementation
US9544229B2 (en) Packet processing apparatus and packet processing method
US9380006B2 (en) Packet processing method, and packet transmission apparatus
CN111124987B (zh) 一种基于pcie的数据传输控制系统和方法
CN107590088A (zh) 一种dma读操作的处理方法、系统及相关装置
TWI488040B (zh) 緩衝記憶體管理方法與相關緩衝記憶體控制器
CN101383773B (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