CN105743803B - 一种共享缓存的数据处理装置 - Google Patents
一种共享缓存的数据处理装置 Download PDFInfo
- Publication number
- CN105743803B CN105743803B CN201610043846.2A CN201610043846A CN105743803B CN 105743803 B CN105743803 B CN 105743803B CN 201610043846 A CN201610043846 A CN 201610043846A CN 105743803 B CN105743803 B CN 105743803B
- Authority
- CN
- China
- Prior art keywords
- input
- data
- output
- bus node
- buffer storage
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/13—Flow control; Congestion control in a LAN segment, e.g. ring or bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种共享缓存的数据处理装置,包括:输入环形总线的第一输入总线节点的输入端与第一输入端口连接,输出端与第一数据缓存连接,输入环形总线的第二输入总线节点的输入端与第二输入端口连接,输出端与第二数据缓存连接;输出环形总线的第一输出总线节点的输入端与第一数据缓存的输出端连接,输出端与第一数据缓存的输入端连接,输出环形总线的第二输出总线节点的输入端与第二数据缓存的输出端连接,输出端与第二数据缓存的输入端连接;队列管理器与数据缓存、所述信元描述符重排器的连接。采用本发明实施例,具体可实现数据缓存的数据连线的共享,提高数据缓存的资源利用率的优点。
Description
技术领域
本发明涉及通信数据领域,尤其涉及一种共享缓存的数据处理装置。
背景技术
随着下一代网络(英文:Next Generation Network,NGN)的发展,通信设备的性能越来越高,通信设备对数据存储、数据交换等核心技术的要求也越来越高。通常,通信设备在接收到用户数据后,都先将数据存储在数据缓存中,数据转发时,先从数据缓存读出数据后再交换到目标输出端口完成数据交换。
现有的通信设备进行数据交换时,输入数据先通过写入交叉总线写入第一级数据缓存,数据输出时将数据从数据缓存读出,通过输出交叉总线将数据交换到目的端口等待输出。现有的通信设备通过输出交叉总线将输出数据交换至目的端口,从数据缓存的不同模块中读出的不同数据交换到同一个目的端口等待输出时,数据的输出顺序会混乱,需要单独设置一个输出重排器,用于对不同数据缓存模块中读出的不同数据的输出顺序进行重新排序。现有的通信设备需要同时具备数据缓存和数据读出重排缓存,当数据量比较大时,数据读出重排缓存需要的容量也将变大,硬件设计复杂度高。此外,写入交叉总线和输出交叉总线都是交叉状的星形总线,输入端口和第一级数据缓存之间以及第一级数据缓存和输出端口之间都是全交叉连接,交叉点集中在多个第一级数据缓存和输入端口或者输出端口的中间,资源分布不均,容易出现造成局部地方布线拥塞等问题,硬件设计难度大。数据缓存的输入端口及其对应的输出端口之间的数据总线是单独属于这个输入端口和输出端口的,不同的输入端口无法共享相同的数据总线,数据交换的数据线路单一,处理效率低,输入端口和输出端口的连线消耗资源大。
发明内容
本申请提供一种共享缓存的数据处理装置,可实现数据缓存的数据连线的共享,提高数据缓存的资源利用率。
本申请提供了一种共享缓存的数据处理装置,包括:第一输入端口、第二输入端口、输入仲裁器、输入环形总线、第一数据缓存、第二数据缓存、输出环形总线、第一输出端口、第二输出端口、队列管理器和信元描述符重排器;
输入环形总线包括第一输入总线节点和第二输入总线节点,第一输入总线节点和第二输入总线节点间布设有环形回路,第一输入总线节点的输入端与第一输入端口连接,第一输入总线节点的输出端与第一数据缓存连接,第二输入总线节点的输入端与第二输入端口连接,第二输入总线节点的输出端与第二数据缓存连接,第一输入总线节点和第二输入总线节点的输入端还与输入仲裁器相连;输入环形总线,用于将第一输入端口和第二输入端口的输入数据传到目标输入总线节点;
输出环形总线包括第一输出总线节点和第二输出总线节点,第二输出总线节点和第二输出总线节点间布设有环形回路,第一输出总线节点的输入端与第一数据缓存的输出端连接,第一输出总线节点的输出端与第一数据缓存的输入端连接,第二输出总线节点的输入端与第二数据缓存的输出端连接,第二输出总线节点的输出端与第二数据缓存的输入端连接;输出环形总线,用于将第一数据缓存和所述第二数据缓存输出的交换数据发送至目的输出端口对应的目标输出总线节点,以通过目标输出总线节点将所述交换数据写入目的输出端口对应的数据缓存;
队列管理器的输入端与第一数据缓存的输出端以及第二数据缓存的输出端相连,队列管理器的输出端与信元描述符重排器的输入端连接,信元描述符重排器的输入端还与第一数据缓存的输出端以及和第二数据缓存的输出端连接;队列管理器,用于在第一输入总线节点将输入数据写入第一数据缓存或者第二输入总线节点将输入数据写入第二数据缓存之后,根据预存的路由查找表确定输入数据输出的目的输出端口,目的输出端口为第一输出端口或者第二输出端口;
输入仲裁器,用于根据写入第一数据缓存和第二数据缓存的数据状态,确定第一输入端口和所述第二输入端口的输入数据写入的目标数据缓存,触发输入环形总线将输入数据传到目标数据缓存对应的目标输入总线节点,以通过目标输入总线节点写入对应的数据缓存,所述目标输入总线节点为第一输入总线节点或者第二输入总线节点;
信元描述符重排器,用于根据队列管理器发送数据交换请求的顺序为交换到同一个目的输出端口的交换数据的交换信元描述符进行排序,并按照排序结果将交换信元描述符发送给队列管理器。
本申请提供的数据处理装置采用输入环形总线和输出环形总线来传送第一输入端口和第二输入端口输入的数据,还可通过输入仲裁器来确定输入数据写入的数据缓存,进而可通过相应的输入总线节点将输入数据写入数据缓存中,通过环形总线实现连接线路的共享,提高连接线路的利用率。此外,本发明实施例还使用第一数据缓存和第二数据缓存来存储输入数据和交换数据,并通过信元描述符重排器来实现交换数据的输出顺序的排序,无需单独设置一个重排器来存储交换数据以及交换数据的输出排序,节省数据存储资源,降低硬件设计的难度。
结合本申请,在第一种可能的实现方式中,第一数据缓存包括:第一写控制器、第一读控制器和第一存储器;
第一写控制器的一个输出端与队列管理器相连,第一写控制器的另一个输出端与信元描述符重排器相连,第一写控制器的一个输入端与第一输入总线节点相连,第一写控制器的另一个输入端与第一输出总线节点相连,第一写控制器的另一个输出端与第一存储器相连;第一写控制器,用于将第一输入总线节点输入的输入数据或者第一输出总线节点发送的交换数据写入第一存储器,生成输入数据的信元描述符发送给队列管理器,或者交换数据的交换信元描述符发送给信元描述符重排器;
第一读控制器的一个输入端与队列管理器相连,第一读控制器的另一个输入端与信元描述符重排器相连,第一读控制器的另一个输入端与第一存储器相连,第一读控制器的一个输出端与输出环形总线相连,第一读控制器的另一个输出端与第一输出端口相连;第一读控制器,用于接收队列管理器发送的交换数据读请求,将交换数据从第一存储器中读出并发送给输出环形总线以交换到目的输出端口对应的输出总线节点,或者接收队列管理器发送的数据输出请求,将输出数据从第一存储器中读出并发送给第一输出端口。
本申请提供的第一数据缓存通过第一写控制器来实现数据写入第一存储器的控制,通过第一读控制器来实现第一存储器中的数据的输出控制,通过第一存储器来存储数据,可提高第一数据缓存的数据处理效率,节省数据存储资源。
在第一种可能的实现方式中,所述第二数据缓存包括:第二写控制器、第二读控制器和第二存储器;
第二写控制器的一个输出端与队列管理器相连,第二写控制器的另一个输出端与信元描述符重排器相连,第二写控制器的一个输入端与第二输入总线节点相连,第二写控制器的另一个输入端与第二输出总线节点相连,第二写控制器的另一输出端与第二存储器相连;第二写控制器,用于将第二输入总线节点输入的输入数据或者第二输出总线节点发送的交换数据写入第二存储器,生成输入数据的信元描述符发送给队列管理器,或者交换数据的交换信元描述符发送给信元描述符重排器;
第二读控制器的一个输入端与队列管理器相连,第二读控制器的另一个输入端与信元描述符重排器相连,第二读控制器的另一个输入端与第二存储器相连,第二读控制器的一个输出端与输出环形总线相连,第二读控制器的另一个输出端与第二输出端口相连;第二读控制器,用于接收队列管理器发送的交换数据读请求,将交换数据从第二存储器中读出并发送给输出环形总线以交换到目的输出端口对应的输出总线节点,或者接收队列管理器发送的数据输出请求将输出数据从第二存储器中读出并发送给第二输出端口。
本申请提供的第二数据缓存通过第二写控制器来实现数据写入第二存储器的控制,通过第二读控制器来实现第二存储器中的数据的输出控制,通过第二存储器来存储数据,可提高第二数据缓存的数据处理效率,节省数据存储资源。
结合第一种可能的实现方式,在第三种可能的实现方式中,第一存储器包括:第一存储模块和第二存储模块;
第一写控制器,还用于按照指定写入规则将第一输入总线节点输入的输入数据或者第一输出总线节点发送的交换数据写入第一存储模块或者第二存储模块;其中,信元描述符用于指示输入数据对应的输入端口,交换信元描述符用于指示交换数据的输入端口和目的输出端口。
本申请提供的第一存储器包括第一存储模块和第二存储模块,提高了第一存储器的容量,还可根据指定写入规则将数据写入第一存储器中的第一存储模块和第二存储模块,可保证各个存储模块的数据均衡。
结合第二种可能的实现方式,在第四种可能的实现方式中,第二存储器包括:第三存储模块和第四存储模块;
第二写控制器,还用于按照指定写入规则将第二输入总线节点输入的输入数据或者第二输出总线节点发送的交换数据写入第三存储模块或者第四存储模块;其中,信元描述符用于指示输入数据对应的输入端口,交换信元描述符用于指示交换数据的输入端口和目的输出端口。
本申请提供的第二存储器包括第三存储模块和第四存储模块,提高了第二存储器的容量,还可根据指定写入规则将数据写入第二存储器中的第三存储模块和第四存储模块,可保证各个存储模块的数据均衡。
结合第三种可能的实现方式或第四种可能的实现方式,在第五种可能的实现方式中,队列管理器,还用于将输入数据的信元描述符写入输入队列,并将输入数据的信元描述符和目的输出端口发送给存储所述输入数据的数据缓存;
队列管理器,还用于将信元描述符重排器排序后的交换数据的交换信元描述符写入队列管理器中目的输出端口对应的输出队列;
队列管理器,还用于根据信元描述符重排器排序后的交换数据的交换信元描述符的顺序向目的输出端口对应的数据缓存的读控制器发送数据输出请求,以触发目的输出端口对应的读控制器从第一存储模块或者第二存储模块中读取数据并发送给目的输出端口。
本申请通过队列管理器中的队列来存储信元描述符和交换信元描述符,通过队列管理器的队列输出来触发数据的交换或者输出,结合信元描述符重排器来实现交换数据的输出顺序的排序,无需单独设置一个重排器来存储交换数据以及交换数据的输出排序,节省数据存储资源,降低硬件设计的难度。
结合本申请,在第六种可能的实现方式中,第一输入总线节点包括至少一个存储单元,每个存储单元分别与第一输入端口和第一数据缓存连接;
所述存储单元,用于存储第一输入端口输入的数据或者第二输入总线节点通过输入环形总线传送过来的数据。
本申请提供的第一输入总线节点包括一个或者多个存储单元,用来存储第一输入端口输入的数据或者第二输入总线节点传送过来的数据,可提高第一输入总线节点的数据处理能力,增强输入环形总线节点的数据传输的可行性。
结合本申请,在第七种可能的实现方式中,第二输入总线节点包括至少一个存储单元,每个所述存储单元分别与第二输入端口和所述第二数据缓存连接;
所述存储单元,用于存储第二输入端口输入的数据或者第一输入总线节点通过输入环形总线传送过来的数据。
本申请提供的第二输入总线节点包括一个或者多个存储单元,用来存储第二输入端口输入的数据或者第一输入总线节点传送过来的数据,可提高第二输入总线节点的数据处理能力,增强输入环形总线节点的数据传输的可行性。
结合本申请,在第八种可能的实现方式中,第一输出总线节点包括至少一个存储单元,每个存储单元分别与第一数据缓存和第一输出端口连接;
所述存储单元,用于存储第一数据缓存输入的数据或者第二输出总线节点通过输出环形总线传送过来的数据。
本申请提供的第一输出总线节点包括一个或者多个存储单元,用来存储第一数据缓存输入的数据或者第二输出总线节点传送过来的数据,可提高第一输出总线节点的数据处理能力,增强输出环形总线节点的数据传输的可行性。
结合本申请,在第九种可能的实现方式中,第二输出总线节点包括至少一个存储单元,每个存储单元分别与第二数据缓存和第二输出端口连接;
所述存储单元,用于存储第二数据缓存输入的数据或者第一输出总线节点通过输出环形总线传送过来的数据。
本申请提供的第二输出总线节点包括一个或者多个存储单元,用来存储第二数据缓存输入的数据或者第一输出总线节点传送过来的数据,可提高第二输出总线节点的数据处理能力,增强输出环形总线节点的数据传输的可行性。
结合第一种可能的实现方式或者第二种可能的实现方式,在第十种可能的实现方式中,第一读控制器还用于在将输出数据读出并发送给第一输出端口之后,将数据输出之后第一存储器中空出的存储空间(记为Free_address)反馈给第一写控制器,以供第一写控制器更好地为后续输入数据分配存储空间;
第二读控制器还用于在将输出数据读出并发送给第二输出端口之后,将数据输出之后第二存储器中空出的存储空间(记为Free_address)反馈给第二写控制器,以供第二写控制器更好地为后续输入数据分配存储空间。
本申请提供的数据缓存通过读控制器来向写控制器反馈存储器的数据存储空间,以供写控制器更好地为后续输入数据分配存储空间,增强了数据处理装置的数据处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有的一种共享缓存的数据处理设备的结构示意图;
图2是本发明实施例提供的共享缓存的数据处理装置的一结构示意图;
图3a是本发明实施例提供的共享缓存的数据处理装置的另一结构示意图的一示意图;
图3b是本发明实施例提供的共享缓存的数据处理装置的另一结构示意图的另一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实现中,为了更好地描述本发明实施例提供的共享缓存的数据处理装置的结构特点,下面将结合图1,图1是现有的一种共享缓存的数据处理设备的结构示意图,对现有的一种共享缓存的数据处理设备的结构及其数据处理方式进行描述。
参见图1,现有的一种共享缓存的数据处理设备(以下简称数据处理设备)包括:输入节点(英文:Input),包括Input0、Input1、Input2,…Input N等;写入交叉总线(英文:input cross-bar,IXBAR);数据缓存(英文:Data Buffer,下面简称Buffer),包括Buffer0、Buffer1、Buffer,…Buffer N等;输出交叉总线(英文:output cross-bar,OXBAR);输出节点(英文:Output),包括Output 0、Output 1、Output 2,…Output N等;写入仲裁者(英文:Write Arbiter);读出仲裁者(英文:Read Arbiter);队列管理器(英文:Queue Manager,QM);重排器(英文:Reorder)等。
其中,上述写入交叉总线的输入端与输入节点相连,写入交叉总线的输出端与数据缓存相连;上述数据缓存的输入端与所述写入交叉总线相连,数据缓存的输出端与输出交叉总线相连;上述输出交叉总线的输入端与数据缓存相连,输出交叉总线的输出端与重排器的输入端相连,重排器的输出端与输出节点相连。其中,上述输入节点通过写入交叉总线和输出交叉总线与数据缓存和输出节点建立一对多的连接线路,即任一输入节点可建立到多个数据缓存和多个输出节点的连接。例如,Input0可分别与Buffer0、Buffer1、Buffer2、…Buffer N建立1对N的连接,Buffer0可分别与Output 0、Output 1、Output 2、…Output N建立1对N的连接,进而可实现Input0到Output 0、Output 1、Output 2、…OutputN的1对N的连接。进一步的,在图1所描述的数据处理设备中,Input0到Buffer0、Buffer1、Buffer2、…Buffer N,再到Output 0、Output 1、Output 2、…Output N的每一条连接线路都是Input0独享的,其他各个Input到Buffer0、Buffer1、Buffer2、…Buffer N,再到Output0、Output 1、Output 2、…Output N的每一条连接线路都是各个Input独享的,每个Input到Output的连接线路都是独占的,不允许其他Input使用,线路连接消耗资源大,而且每条连接线路只能给一个Input使用,利用率低。
在图1所示的数据处理设备中,写入交叉总线和输出交叉总线都是交叉状的星形总线,输入节点和数据缓存(即Buffer)之间以及数据缓存和输出节点之间都是全交叉连接,交叉点集中在多个数据缓存和输入端口或者输出端口的中间,资源分布不均,容易出现造成局部地方布线拥塞等问题,硬件设计难度大。
在图1所示的数据处理设备中,写入仲裁者包含1个输入端口和两个输出端口,其中,输入端口与输入节点相连,一个输出端口与写入交叉总线相连,另一个输出端口与QM相连。读出仲裁者的输出端口与输出交叉总线相连,输入端口与QM相连。输入数据通过输入节点(假设为Input0)写入时,首先向写入仲裁者发送写入请求(假设为Wr_req0),写入仲裁者根据各个数据缓存中的数据存储状态为输入数据分配数据缓存(设为目的数据缓存,例如Buffer0),并将为输入数据分配的数据缓存的编号等标识信息(例如Buffer0,其编号可记为0)发送给写入交叉总线,输入数据通过写入交叉总线写入数据缓存。写入仲裁者指示写入交叉总线将输入数据写入数据缓存之后,可生成输入数据的信元描述符(英文:celldescription,CD),上述信元描述符用以表示输入数据的输入节点和输入数据的输出节点的编号等标识信息的对应关系,例如,输入数据从Input0输入,从Output0输出,可表示为0to 0,即可生成输入数据的CD为0to 0。写入仲裁者生成输入数据的CD之后,可将上述CD写入QM,并QM可将输入数据的CD写入目的队列中排队,等待输出,其中,上述目的队列为输入数据的输出节点对应的队列。当目的队列需要输出数据时,QM可向读出仲裁者发送数据输出请求,读出仲裁者指示输出交叉总线从上述目的数据缓存中读取数据并交换到目的输出节点。当不同的Buffer读出的数据交换到同一个输出节点时,数据的输出顺序会出现混乱,需要对交换后的数据的输出顺序进行重新排序,再从输出节点输出。
图1所示的数据处理设备单独设置一个输出重排器,输出交叉总线完成数据交换之后,将数据输出至重排器,重排器根据QM中每个队列触发的数据输出请求的顺序为交换到同一个输出节点的数据进行重新排序。数据重新排序完成之后,输出节点则可从重排器的缓存中读取数据。当交换数据的数据量比较大时,重排器的缓存需要的容量也将变大,硬件设计复杂度高。
为了解决上述每个Input到Output的连接线路都是独占的,不允许其他Input使用,线路连接消耗资源大,连接线路利用率低,以及星状总线带来的资源分布不均,容易出现造成局部地方布线拥塞,硬件设计难度大等问题,本发明实施例中所描述的数据处理装置采用输入环形总线和输出环形总线来替代写入交叉总线和输出交叉总线,可通过环形总线实现连接线路的共享,提高连接线路的利用率。此外,本发明实施例还使用第一数据缓存和第二数据缓存来存储输入数据和交换数据,并通过信元描述符重排器来实现交换数据的输出顺序的排序,无需单独设置一个重排器来存储交换后的数据以及确定交换后的数据的输出排序,节省数据存储资源,降低硬件设计的难度。
下面将结合图2至图3b对本发明实施例提供的共享缓存的数据处理装置进行描述。
参见图2,图2是本发明实施例提供的共享缓存的数据处理装置的一结构示意图。本发明实施例中所描述的数据处理装置,包括:
第一输入端口100、第二输入端口101、输入仲裁器200、输入环形总线300、第一数据缓存400、第二数据缓存401、输出环形总线500、第一输出端口600、第二输出端口601、队列管理器700和信元描述符重排器800。
其中,输入环形总线300包括第一输入总线节点301和第二输入总线节点302。所述第一输入总线节点301和第二输入总线节点302间布设有环形回路。第一输入总线节点301和第二输入总线节点302分别与第一输入端口100和第二输入端口101相连,其中,第一输入总线节点301的输入端与第一输入端口100连接,第一输入总线节点301的输出端与第一数据缓存400连接;第二输入总线节点302的输入端与第二输入端口101连接,第二输入总线节点302的输出端与第二数据缓存401连接。第一输入总线节点301和第二输入总线节点302的输入端还与输入仲裁器200相连。
输入环形总线300,用于将第一输入端口100和第二输入端口101的输入数据传到目标输入总线节点(比如,第一输入总线节点301,或者第二输入总线节点302)。
输入仲裁器200,用于根据写入第一数据缓存400和第二数据缓存401的数据状态,确定第一输入端口100和第二输入端口101的输入数据写入的目标数据缓存,触发所述输入环形总线300将所述输入数据传到所述目标数据缓存对应的目标输入总线节点,以通过目标输入总线节点写入对应的数据缓存,上述目标输入总线节点为第一输入总线节点301或者第二输入总线节点302。
具体实现中,上述输入仲裁器200也可以为负载均衡仲裁器(英文:Load BalanceArbiter,LBA)。LBA的作用是控制从输入端口(例如第一输入端口100或者第二输入端口101)进来的数据通过输入环形总线均匀地写入到多个数据缓存中。当输入数据从第一输入端口100(或者第二输入端口101)输入时,LBA可首先根据输入环形总线300中的第一输入总线节点301或者第二输入总线节点302中包含的一个或者多个存储单元(图2中未示出)的数据存储状态,选择一个空闲的存储单元作为输入数据的存储单元,进而可触发输入环形总线300将输入数据存入至相应的存储单元中。进一步的,LBA可选择一个除了本次输入的数据之外的其他输入数据写入的数据缓存都不相同的数据缓存作为本次输入数据的目的数据缓存。假设上述除了本次输入的数据之外其他输入数据写入的数据缓存都不相同的数据缓存有多个,LBA则可采用轮询(英文:Round Robin,RR)写入规则或者缓存占用量最小优先的方法进行选择一个数据缓存作为目的数据缓存,以保证所有的数据缓存的使用量在统计上均衡。
当LBA确定了本次输入数据的目的数据缓存之后,如果其目的数据缓存就是第一输入总线节点301所对应的数据缓存,则可触发输入环形总线300通过第一输入总线节点301将本次输入的数据从其存储单元中读出并写入到相应的数据缓存(即第一数据缓存400)中。如果其目的数据缓存不是第一输入总线节点301所对应的数据缓存(例如第二数据缓存401),则可触发输入环形总线300在下一个时刻按照环形总线的数据传输方向将上述输入数据传到第二数据缓存401对应的第二输入总线节点302包含的存储单元(图2中未示出)存储,以通过第二输入总线节点302将输入数据从其存储单元中读出并写入到第二数据缓存401。
输出环形总线500包括第一输出总线节点501和第二输出总线节点502。第一输出总线节点501和第二输出总线节点502间布设有环形回路。第一输出总线节点501和第二输出总线节点502分别与第一输出端口600和第二输出端口601相连。其中,第一输出总线节点501的输入端与第一数据缓存400的输出端连接,第一输出总线节点501的输出端与第一数据缓存400的输入端连接,第二输出总线节点502的输入端与第二数据缓存401的输出端连接,第二输出总线节点502的输出端与第二数据缓存401的输入端连接。
输出环形总线500,用于将第一数据缓存400和第二数据缓存401输出的交换数据发送至所述目的输出端口对应的目标输出总线节点,以通过所述目标输出总线节点将所述交换数据写入所述目的输出端口对应的数据缓存。
具体实现中,若存储在第一数据缓存400的输入数据需要从第二输出端口601输出,可将上述输入数据从第一数据缓存400中读出并输送至第一输出总线节点501,再通过输出环形总线500将交换数据(即从第一数据缓存400中读出等待交换的输入数据)由第一输出总线节点501传送至第二输出总线节点502,通过第二输出总线节点502交换至第二数据缓存401,进而通过第二数据缓存401输出至第二输出端口601。同理,若存储在第二数据缓存401的输入数据需要从第一输出端口600输出,可将上述输入数据由第二数据缓存401中读出并输送至第二输出总线节点502,再通过输出环形总线500将交换数据由第二输出总线节点502传送至第一输出总线节点501,通过第一输出总线节点501交换至第一数据缓存400,进而通过第一数据缓存400输出至第一输出端口600。
队列管理器700的输入端与第一数据缓存400的输出端以及第二数据缓存401的输出端相连,队列管理器700的输出端与信元描述符重排器800的输入端相连,信元描述符重排器800的输入端还与第一数据缓存400的输出端以及第二数据缓存401的输出端连接。队列管理器700,用于在第一输入总线节点301将输入数据写入第一数据缓存400或者第二输入总线节点302将输入数据写入第二数据缓存401之后,根据预存的路由查找表确定输入数据输出的目的输出端口。上述目的输出端口为第一输出端口100或者第二输出端口101。
队列管理器700,还用于将所述输入数据的信元描述符写入输入队列,并将所述输入数据的信元描述符和目的输出端口发送给存储所述输入数据的数据缓存。
上述目的输出端口为输入数据的输出端口。队列管理器700可将输入数据的信元描述符和目的输出端口发送给存储所述输入数据的数据缓存,以触发所述数据缓存将输入数据提取出来并发送给输出环形总线500,通过输出环形总线500将输入数据交换至上述目的输出端口对应的数据缓存中,以从上述目的输出端口对应的数据缓存中提取出来并发送给目的输出端口。
信元描述符重排器800,用于根据队列管理器700发送数据交换请求的顺序为交换到同一个目的输出端口的交换数据的交换信元描述符进行排序,并按照排序结果将所述交换信元描述符发送给队列管理器700。
队列管理器700,还用于将所述信元描述符重排器排序后的所述交换数据的所述交换信元描述符写入所述队列管理器中所述目的输出端口对应的输出队列;
队列管理器700,还用于根据所述信元描述符重排器排序后的所述交换数据的交换信元描述符的顺序向所述目的输出端口对应的数据缓存发送数据输出请求,以触发所述目的输出端口对应的数据缓存中读取数据并发送给目的输出端口。
进一步的,具体实现中,输入数据写入数据缓存后,数据缓存会生成上述输入数据的CD,数据缓存可将上述输入数据的CD写入队列管理器700,队列管理器700可将上述输入数据的CD写入其内置的CD队列(图中未示出)中。CD队列输出时可触发数据交换的请求,队列管理器700可向数据缓存(第一数据缓存或者第二数据缓存)发送数据交换请求。队列管理器700与数据缓存通过信元描述符重排器800连接,信元描述符重排器800可获取队列管理器700向数据缓存发送数据交换请求的顺序。具体的,队列管理器700可根据其预存的路由查找表查看数据的目的输出端口,其中,上述路由查找表中存储着每一份输入数据的输出目的地与其对应的输出端口。其中,上述输入数据的输出目的地携带在输入数据的数据包中。具体的,数据缓存可通过对输入数据的数据包进行解析,获取输入数据的输出目的地,进而可将输入数据的输出目的地发送给队列管理器700,队列管理器700可根据上述输入数据的输出目的地查询上述路由查找表,确定上述输入数据对应的目的输出端口。例如,当输入数据1写入第一数据缓存400时,第一数据缓存400可对输入数据1的数据包进行解析,确定输入数据1的输出目的地并发送给队列管理器700,队列管理器700可查询上述路由查找表确定上述输入数据1对应的目的输出端口,假设为第二输出端口601。队列管理器700确定了上述输入数据1的目的输出端口之后,可向第一数据缓存400发送数据交换的请求(也称交换输出请求,记为Swp Read Req),第一数据缓存400读出数据1之后,可将数据1发送给输出环形总线500的第一输出总线节点501,通过输出环形总线500将输出数据有第一输出总线节点501传送至第二输出端口601对应的第二输出总线节点502。第二输出总线节点502可将数据1交换至第二数据缓存401,进而可将数据1从第二数据缓存401读出并发送至第二输出端口601。
需要说明的是,假设上述输入数据1的目的输出端口为第一输出端口600,队列管理器700确定了上述输入数据1的目的输出端口之后,可向第一数据缓存400发送数据交换的请求,第一数据缓存400读出输入数据1之后可直接发送给第一输出端口600,无需通过输出环形总线500进行数据交换。
进一步的,输入数据1从第一数据缓存400中被读出后,又被发送至输出环形总线500。输入数据1在输出环形总线500中被交换到第二输出总线节点502,通过第二输出总线节点502传送至第二数据缓存401之后,第二数据缓存401将输入数据1写入第二数据缓存401中,此时,可将输入数据1称为交换数据。第二数据缓存401写入交换数据之后,还可生成交换数据的交换信元描述符,即为Swp CD,并发送给信元描述符重排器800。当交换到同一个目的输出端口的交换数据较多时,交换数据的输出顺序会出现混乱,信元描述符重排器800可根据队列管理器700发送数据交换请求的顺序为交换到同一个目的输出端口(假设为第二输出端口601)的交换数据的Swp CD添加序列号,进而可根据上述序列号为交换到同一个目的输出端口的交换数据的Swp CD进行排序,并按照排序结果将交换数据的Swp CD发送给队列管理器700。队列管理器700可将交换数据的Swp CD写到队列管理器700中的相应队列中等待输出。队列管理器700可在上述交换数据的Swp CD对应的队列触发数据输出时,向上述目的输出端口对应的数据缓存(即第二数据缓存401)发送数据输出请求(可记为output read req)。第二数据缓存401可读出数据并发送至第二输出端口601,通过第二输出端口601发送至数据的输出目的地。
在本发明实施例中,数据处理装置采用输入环形总线和输出环形总线来传送第一输入端口和第二输入端口输入的数据,还可通过输入仲裁器来确定输入数据写入的数据缓存,进而可通过相应的输入总线节点将输入数据写入数据缓存中,通过环形总线实现连接线路的共享,提高连接线路的利用率。此外,本发明实施例还使用第一数据缓存和第二数据缓存来存储输入数据和交换数据,并通过信元描述符重排器来实现交换数据的输出顺序的排序,无需单独设置一个重排器来存储交换数据以及交换数据的输出排序,节省数据存储资源,降低硬件设计的难度。
图3a,是本发明实施例提供的共享缓存的数据处理装置的另一结构示意图的一示意图。图3b,是本发明实施例提供的共享缓存的数据处理装置的另一结构示意图的另一示意图。图3a和3b所示的两个图构成一个完整的共享缓存的数据处理装置的结构示意图。参见图3a和3b,本发明实施例中所描述的数据处理装置包括:一个输入多重环形总线(也称写多重环形总线,英文:Write Multi-level Ring Bus),一个数据缓存组(英文:Data BufferGroup),一个输出多重环形总线(也称读多重环形总线,英文:Read Multi-level RingBus),一个信元描述符重排器(英文:CD Reorder),一个队列管理器(英文:Queue Manage)。
其中,上述输入多重环形总线可为上述实施例中所描述的输入环形总线300。上述输入多重环形总线由输入总线节点与输入总线节点之间的连线组成,包括输入总线节点1至输入总线节点4,每个输入总线节点可包含4个存储单元,包括存储单元1至存储单元4。具体的,每个输入总线节点中的存储单元1连接起来构成环形总线1,每个输入总线节点的存储单元2连接起来构成环形总线2,每个输入总线节点的存储单元3连接起来构成环形总线3,每个输入总线节点的存储单元4连接起来构成环形总线4。具体实现中,输入总线节点的数目与输入端口的数目相对应,即有多少个输入端口则设置多少个输入总线节点。其中,每个输入总线节点中包括的存储单元与输入总线节点对应的输入端口的输入口相对应。本发明实施例以每个输入端口有4个输入口(图3a中未示出)为例进行说明,故此每个输入总线节点可包括4个存储单元。上述存储单元,用于存储本输入总线节点对应的输入端口输入的数据或者其他输入总线节点通过环形总线传送过来的数据。
此外,上述输出多重环形总线可为上述实施例中所描述的输出环形总线500。上述输出多重环形总线的设计原理与上述输入多重环形总线的设计原理相同,在此不再赘述。
上述图3a中所描述的数据缓存组由4个相同结构的数据缓存组成,包括数据缓存1至数据缓存4,其中,每个数据缓存与其他模块的连接关系相同,故此,下面将以第一数据缓存400和第二数据缓存401为例进行描述。具体实现中,上述数据缓存的数目不限于4个,具体数目可与输入端口的数目以及输入总线节点的数目相对应,在此不做限制。
如图3a所示,上述第一数据缓存400包括:第一写控制器4001(英文:writecontroller)、第一读控制器4002(英文:read controller)和第一存储器4003(英文:memory);
第一写控制器4001的一个输出端与队列管理器700相连,另一个输出端与信元描述符重排器800相连,第一写控制器4001的一个输入端与第一输入总线节点301相连,第一写控制器4001的另一个输入端与第一输出总线节点501相连,第一写控制器4001的另一个输出端与第一存储器4003相连。
第一写控制器4001,用于将所述第一输入总线节点输入的输入数据或者所述第一输出总线节点发送的交换数据写入所述第一存储器,生成所述输入数据的信元描述符发送给所述队列管理器,或者所述交换数据的交换信元描述符发送给所述队列管理器。
具体实现中,当输入数据通过第一输入总线节点301输入时,第一写控制器4001可将输入数据写入第一存储器4003,还可生成输入数据的CD发送给队列管理器700,以通过队列管理器700写入相应的交换队列。当交换数据通过第一输出总线节点501输入时,第一写控制器4001可将交换数据写入第一存储器4003,还可生成交换数据的Swp CD发送给信元描述符重排器800,以通过信元描述符重排器800进行排序并写入队列管理器700的输出队列。
第一读控制器4002的一个输入端与队列管理器700相连,第一读控制器4002的另一个输入端与信元描述符重排器800相连,第一读控制器4002的另一个输入端与第一存储器4003相连,第一读控制器4002的一个输出端与输出环形总线500相连,另一个输出端与第一输出端口600相连。
第一读控制器4002,用于接收所述队列管理器发送的交换数据读请求,将交换数据从所述第一存储器中读出并发送给所述输出环形总线以交换到目的输出端口对应的输出总线节点,或者接收所述队列管理器发送的数据输出请求,将输出数据从所述第一存储器中读出并发送给所述第一输出端口。
具体实现中,第一读控制器4002接收队列管理器700发送的交换数据读请求(即swp read req,或称数据交换请求)将数据交换到目的输出端口对应的数据缓存中等待输出时,将等待交换到目的输出端口的数据(称交换数据)从第一存储器4003中读出并发送给输出环形总线500的第一输出总线节点501,以通过第一输出总线节点501将数据交换到目的输出端口对应的输出总线节点,例如第二输出总线节点502。第一读控制器4002还可接收队列管理器700发送的数据输出请求(即output read req),将输出数据从第一存储器4003中读出并发送给第一输出端口601。
进一步的,第一读控制器4002还可在将输出数据读出并发送给第一输出端口601之后,将数据输出之后第一存储器4003中空出的存储空间(记为Free_address)反馈给第一写控制器4001,以供第一写控制器4001更好地为后续输入数据分配存储空间。
图3a所示的第二数据缓存401包括:第二写控制器4011、第二读控制器4012和第二存储器4013;
第二写控制器4011的一个输出端与队列管理器700相连,第二写控制器4011的另一个输出端与信元描述符重排器800相连,第二写控制器4011的一个输入端与第二输入总线节点302相连,第二写控制器4011的另一个输入端与第二输出总线节点502相连,第二写控制器4011的另一个输出端与第二存储器4013相连。
第二写控制器4011,用于将所述第二输入总线节点输入的输入数据或者所述第二输出总线节点发送的交换数据写入所述第二存储器,生成所述输入数据的信元描述符发送给所述队列管理器,或者所述交换数据的交换信元描述符发送给所述信元描述符重排器。
第二读控制器4012的一个输入端与队列管理器700相连,第二读控制器4012的另一个输入端与信元描述符重排器800相连,第二读控制器4012的另一个输入端与第二存储器4013相连,第二读控制器4012的一个输出端与输出环形总线500相连,另一个输出端与第二输出端口601相连。
第二读控制器4012,用于接收所述队列管理器发送的交换数据读请求,将交换数据从所述第二存储器中读出并发送给所述输出环形总线以交换到目的输出端口对应的输出总线节点,或者接收所述队列管理器发送的数据输出请求将输出数据从所述第二存储器中读出并发送给所述第二输出端口。
具体实现中,上述第二写控制器4011和第二读控制器4012的具体实现方式分别与第一写控制器4001和第一读控制器4002的实现方式相似,具体可参见上述实现方式,在此不再赘述。
具体实现中,上述图3a所示的第一存储器4003包括:第一存储模块(memory0)40031和第二存储模块(memory1)40032;
第一写控制器4001,还用于按照指定写入规则将所述第一输入总线节点输入的输入数据或者所述第一输出总线节点发送的交换数据写入所述第一存储模块或者所述第二存储模块;
其中,所述信元描述符用于指示所述输入数据对应的输入端口,所述交换信元描述符用于指示所述交换数据的输入端口和目的输出端口。
具体实现中,上述第一写入控制器4001可采用负载均衡的方法将第一输入总线节点301输入的输入数据或者第一输出总线节点501发送的交换数据写入第一存储模块40031或者第二存储模块40032,进而可生成上述输出数据的信元描述符(记为CD)或者交换数据的信元描述符(记为Swp CD),上述信元描述符用于指示上述输入数据的输入端口等信息,例如,输入数据1通过第一输入端口100输入时,上述输入数据1的CD可记为IN0或0,输入数据1通过第一输入端口100输入时,上述输入数据1的CD可记为IN1或者1,具体可根据实际应用场景确定,在此不做限制。其中,上述指定写入规则可包括RR写入规则,或者最小负载优先规则等,以保证各个存储模块的数据均衡。
具体实现中,上述图3a所示第二存储器4013包括:第三存储模块40131和第四存储模块40132;
第二写控制器4012,还用于按照指定写入规则将所述第二输入总线节点输入的输入数据或者所述第二输出总线节点发送的交换数据写入所述第三存储模块或者所述第四存储模块,并生成所述输入数据或者所述交换数据的信元描述符;
其中,所述信元描述符用于指示所述输入数据对应的输入端口,所述交换信元描述符用于指示所述交换数据的输入端口和目的输出端口。
具体实现中,上述第二存储器4013的结构与上述第一存储器4003相似,第二写控制器4012的实现方式与第一写入控制器4002的实现方式相似,在此不再赘述。
图3a所示的数据处理设备还包括4个输入端口,分别为Input Port0、InputPort1、Input Port2和Input Port3。其中,上述第一输入端口100可为上述Input Port0、Input Port1、Input Port2和Input Port3中的任一个(假设为Input Port0),上述第二输入端口101也可为Input Port1、Input Port2和Input Port3中的任一个。
在本发明实施例中,数据处理装置采用输入环形总线和输出环形总线来传送输入端口输入的数据或者交换数据,还可通过输入仲裁器来确定输入数据写入的数据缓存,进而可通过相应的输入总线节点对应的存储单元来存储输入数据,进而可将输入数据从相应的存储单元中读出并写入数据缓存中,通过环形总线实现连接线路的共享,提高连接线路的利用率。此外,本发明实施例还使用数据缓存来存储输入数据和交换数据,通过数据缓存中的读控制器和写控制器来实现输入数据和交换数据的写入和读出,并通过信元描述符重排器来实现交换数据的输出顺序的排序,无需单独设置一个重排器来存储交换数据以及交换数据的输出排序,节省数据存储资源,降低硬件设计的难度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种共享缓存的数据处理装置,其特征在于,包括:
第一输入端口、第二输入端口、输入仲裁器、输入环形总线、第一数据缓存、第二数据缓存、输出环形总线、第一输出端口、第二输出端口、队列管理器和信元描述符重排器;
所述输入环形总线包括第一输入总线节点和第二输入总线节点,所述第一输入总线节点和所述第二输入总线节点间布设有环形回路,所述第一输入总线节点的输入端与所述第一输入端口连接,所述第一输入总线节点的输出端与所述第一数据缓存连接,所述第二输入总线节点的输入端与所述第二输入端口连接,所述第二输入总线节点的输出端与所述第二数据缓存连接,所述第一输入总线节点和第二输入总线节点的输入端还与所述输入仲裁器相连;
所述输出环形总线包括第一输出总线节点和第二输出总线节点,所述第二输出总线节点和所述第二输出总线节点间布设有环形回路,所述第一输出总线节点的输入端与所述第一数据缓存的输出端连接,所述第一输出总线节点的输出端与所述第一数据缓存的输入端连接,所述第二输出总线节点的输入端与所述第二数据缓存的输出端连接,所述第二输出总线节点的输出端与所述第二数据缓存的输入端连接;
所述队列管理器的输入端与所述第一数据缓存的输出端以及所述第二数据缓存的输出端相连,所述队列管理器的输出端与所述信元描述符重排器的输入端连接,所述信元描述符重排器的输入端还与所述第一数据缓存的输出端以及和所述第二数据缓存的输出端连接;
所述输入仲裁器,用于根据写入所述第一数据缓存和所述第二数据缓存的数据状态,确定所述第一输入端口和所述第二输入端口的输入数据写入的目标数据缓存,触发所述输入环形总线将所述输入数据传到所述目标数据缓存对应的目标输入总线节点,以通过目标输入总线节点写入对应的数据缓存,所述目标输入总线节点为所述第一输入总线节点或者所述第二输入总线节点;
所述输入环形总线,用于将所述第一输入端口和所述第二输入端口的输入数据传到目标输入总线节点;
所述队列管理器,用于在所述第一输入总线节点将所述输入数据写入第一数据缓存或者所述第二输入总线节点将输入数据写入第二数据缓存之后,根据预存的路由查找表确定所述输入数据输出的目的输出端口,所述目的输出端口为所述第一输出端口或者所述第二输出端口;
所述信元描述符重排器,用于根据所述队列管理器发送数据交换请求的顺序为交换到同一个目的输出端口的交换数据的交换信元描述符进行排序,并按照排序结果将所述交换信元描述符发送给所述队列管理器;
所述输出环形总线,用于将所述第一数据缓存和所述第二数据缓存输出的交换数据发送至所述目的输出端口对应的目标输出总线节点,以通过所述目标输出总线节点将所述交换数据写入所述目的输出端口对应的数据缓存。
2.如权利要求1所述的数据处理装置,其特征在于,所述第一数据缓存包括:第一写控制器、第一读控制器和第一存储器;
所述第一写控制器的一个输出端与所述队列管理器相连,所述第一写控制器的另一个输出端与所述信元描述符重排器相连,所述第一写控制器的一个输入端与所述第一输入总线节点相连,所述第一写控制器的另一个输入端与所述第一输出总线节点相连,所述第一写控制器的另一个输出端与所述第一存储器相连;
所述第一读控制器的一个输入端与所述队列管理器相连,所述第一读控制器的另一个输入端与所述信元描述符重排器相连,所述第一读控制器的另一个输入端与所述第一存储器相连,所述第一读控制器的一个输出端与所述输出环形总线相连,所述第一读控制器的另一个输出端与所述第一输出端口相连;
所述第一写控制器,用于将所述第一输入总线节点输入的输入数据或者所述第一输出总线节点发送的交换数据写入所述第一存储器,生成所述输入数据的信元描述符发送给所述队列管理器,或者所述交换数据的交换信元描述符发送给所述信元描述符重排器;
所述第一读控制器,用于接收所述队列管理器发送的交换数据读请求,将交换数据从所述第一存储器中读出并发送给所述输出环形总线以交换到目的输出端口对应的输出总线节点,或者接收所述队列管理器发送的数据输出请求,将输出数据从所述第一存储器中读出并发送给所述第一输出端口。
3.如权利要求1所述的数据处理装置,其特征在于,所述第二数据缓存包括:第二写控制器、第二读控制器和第二存储器;
所述第二写控制器的一个输出端与所述队列管理器相连,第二写控制器的另一个输出端与所述信元描述符重排器相连,所述第二写控制器的一个输入端与所述第二输入总线节点相连,所述第二写控制器的另一个输入端与所述第二输出总线节点相连,所述第二写控制器的另一输出端与所述第二存储器相连;
所述第二读控制器的一个输入端与所述队列管理器相连,所述第二读控制器的另一个输入端与所述信元描述符重排器相连,所述第二读控制器的另一个输入端与所述第二存储器相连,所述第二读控制器的一个输出端与所述输出环形总线相连,所述第二读控制器的另一个输出端与所述第二输出端口相连;
所述第二写控制器,用于将所述第二输入总线节点输入的输入数据或者所述第二输出总线节点发送的交换数据写入所述第二存储器,生成所述输入数据的信元描述符发送给所述队列管理器,或者所述交换数据的交换信元描述符发送给所述信元描述符重排器;
所述第二读控制器,用于接收所述队列管理器发送的交换数据读请求,将交换数据从所述第二存储器中读出并发送给所述输出环形总线以交换到目的输出端口对应的输出总线节点,或者接收所述队列管理器发送的数据输出请求将输出数据从所述第二存储器中读出并发送给所述第二输出端口。
4.如权利要求2所述的数据处理装置,其特征在于,所述第一存储器包括:第一存储模块和第二存储模块;
所述第一写控制器,还用于按照指定写入规则将所述第一输入总线节点输入的输入数据或者所述第一输出总线节点发送的交换数据写入所述第一存储模块或者所述第二存储模块;
其中,所述信元描述符用于指示所述输入数据对应的输入端口,所述交换信元描述符用于指示所述交换数据的输入端口和目的输出端口。
5.如权利要求3所述的数据处理装置,其特征在于,所述第二存储器包括:第三存储模块和第四存储模块;
所述第二写控制器,还用于按照指定写入规则将所述第二输入总线节点输入的输入数据或者所述第二输出总线节点发送的交换数据写入所述第三存储模块或者所述第四存储模块;
其中,所述信元描述符用于指示所述输入数据对应的输入端口,所述交换信元描述符用于指示所述交换数据的输入端口和目的输出端口。
6.如权利要求4或5所述的数据处理装置,其特征在于,所述队列管理器,还用于将所述输入数据的信元描述符写入输入队列,并将所述输入数据的信元描述符和目的输出端口发送给存储所述输入数据的数据缓存;
所述队列管理器,还用于将所述信元描述符重排器排序后的所述交换数据的所述交换信元描述符写入所述队列管理器中所述目的输出端口对应的输出队列;
所述队列管理器,还用于根据所述信元描述符重排器排序后的所述交换数据的交换信元描述符的顺序向所述目的输出端口对应的数据缓存的读控制器发送数据输出请求,以触发所述目的输出端口对应的读控制器从所述目的输出端口对应的数据缓存的存储器中读取数据并发送给目的输出端口。
7.如权利要求1所述的数据处理装置,其特征在于,所述第一输入总线节点包括至少一个存储单元,每个所述存储单元分别与所述第一输入端口和所述第一数据缓存连接;
所述存储单元,用于存储所述第一输入端口输入的数据或者所述第二输入总线节点通过所述输入环形总线传送过来的数据。
8.如权利要求1所述的数据处理装置,其特征在于,所述第二输入总线节点包括至少一个存储单元,每个所述存储单元分别与所述第二输入端口和所述第二数据缓存连接;
所述存储单元,用于存储所述第二输入端口输入的数据或者所述第一输入总线节点通过所述输入环形总线传送过来的数据。
9.如权利要求1所述的数据处理装置,其特征在于,所述第一输出总线节点包括至少一个存储单元,每个所述存储单元分别与所述第一数据缓存和所述第一输出端口连接;
所述存储单元,用于存储所述第一数据缓存输入的数据或者所述第二输出总线节点通过输出环形总线传送过来的数据。
10.如权利要求1所述的数据处理装置,其特征在于,所述第二输出总线节点包括至少一个存储单元,每个所述存储单元分别与所述第二数据缓存和所述第二输出端口连接;
所述存储单元,用于存储所述第二数据缓存输入的数据或者所述第一输出总线节点通过输出环形总线传送过来的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610043846.2A CN105743803B (zh) | 2016-01-21 | 2016-01-21 | 一种共享缓存的数据处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610043846.2A CN105743803B (zh) | 2016-01-21 | 2016-01-21 | 一种共享缓存的数据处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105743803A CN105743803A (zh) | 2016-07-06 |
CN105743803B true CN105743803B (zh) | 2019-01-25 |
Family
ID=56247528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610043846.2A Active CN105743803B (zh) | 2016-01-21 | 2016-01-21 | 一种共享缓存的数据处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105743803B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1263312A (zh) * | 1999-02-10 | 2000-08-16 | 国际商业机器公司 | 具有共享干预支持的非均匀存储器访问数据处理系统 |
CN1447257A (zh) * | 2002-04-09 | 2003-10-08 | 威盛电子股份有限公司 | 分布式共享内存系统数据维护方法 |
CN101089829A (zh) * | 2007-08-01 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种共享缓存系统及实现方法 |
CN103259544A (zh) * | 2013-04-19 | 2013-08-21 | 荣成市鼎通电子信息科技有限公司 | 共享存储机制的dtmb中准循环ldpc串行编码器 |
CN104252392A (zh) * | 2013-06-28 | 2014-12-31 | 华为技术有限公司 | 一种访问数据缓存的方法和处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060291436A1 (en) * | 2005-06-23 | 2006-12-28 | Intel Corporation | Block acknowledgement in aggregated frame sequences |
-
2016
- 2016-01-21 CN CN201610043846.2A patent/CN105743803B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1263312A (zh) * | 1999-02-10 | 2000-08-16 | 国际商业机器公司 | 具有共享干预支持的非均匀存储器访问数据处理系统 |
CN1447257A (zh) * | 2002-04-09 | 2003-10-08 | 威盛电子股份有限公司 | 分布式共享内存系统数据维护方法 |
CN101089829A (zh) * | 2007-08-01 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种共享缓存系统及实现方法 |
CN103259544A (zh) * | 2013-04-19 | 2013-08-21 | 荣成市鼎通电子信息科技有限公司 | 共享存储机制的dtmb中准循环ldpc串行编码器 |
CN104252392A (zh) * | 2013-06-28 | 2014-12-31 | 华为技术有限公司 | 一种访问数据缓存的方法和处理器 |
Non-Patent Citations (2)
Title |
---|
Improving Router Effienciency in Network on Chip Triplet-Based Hierarchical Interconnection Network with Shared Buffer Design;Shahnawz Talpur, Shahnawaz Farhan Khahro,Amir Mahmood Soomro;《2014 5th International Conference on Intelligent Systems》;20141231;第519-522页 |
基于多核分布式环境下的任务调度关键技术研究;耿晓中;《中国博士学位论文全文数据库 信息科技辑》;20130815(第8期);第I137-3页 |
Also Published As
Publication number | Publication date |
---|---|
CN105743803A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640362B2 (en) | Procedures for improving efficiency of an interconnect fabric on a system on chip | |
CN105005546B (zh) | 一种内置交点队列的异步axi总线结构 | |
JP6093867B2 (ja) | インターコネクトにおける不均一なチャネル容量 | |
CN101873253B (zh) | 带缓冲的纵横式交换机系统 | |
CN104247341B (zh) | 分布式交换机及其多播树层次结构的动态优化方法 | |
CN103955436B (zh) | 一种数据处理装置和终端 | |
CN104794100A (zh) | 基于片上网络的异构多核处理系统 | |
JPS62500902A (ja) | パケット・スイッチド・マルチポ−ト・メモリn×mスイッチ・ノ−ド及び処理方法 | |
JPH09502818A (ja) | マルチポート共有メモリインタフェースおよび関連の方法 | |
WO2022094771A1 (zh) | 网络芯片和网络设备 | |
CN100420241C (zh) | 实现信息交换的系统及方法和调度算法 | |
Wang et al. | SprintNet: A high performance server-centric network architecture for data centers | |
Ebrahimi et al. | A high-performance network interface architecture for NoCs using reorder buffer sharing | |
US20140177648A1 (en) | Tagging and synchronization for fairness in noc interconnects | |
CN114584510B (zh) | 利用固定匹配交换机的路由 | |
CN101222422A (zh) | 一种公平可扩展网络调度方法 | |
CN102906729A (zh) | 用于路由数据的交换装置、使用此装置的计算机互连网络与路由方法 | |
CN106375249A (zh) | 交换芯片数据架构、其控制方法及控制系统 | |
CN101459598B (zh) | 实现分组交换的方法及其系统 | |
CN108833307A (zh) | 数据交换装置 | |
CN105743803B (zh) | 一种共享缓存的数据处理装置 | |
US8972623B2 (en) | Efficient complex network traffic management in a non-uniform memory system | |
US8670454B2 (en) | Dynamic assignment of data to switch-ingress buffers | |
Kim | High-radix interconnection networks | |
CN109739800A (zh) | 节点控制器的调度系统及fpga板卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |