CN102394732A - 一种多微包并行处理结构 - Google Patents
一种多微包并行处理结构 Download PDFInfo
- Publication number
- CN102394732A CN102394732A CN2011102621281A CN201110262128A CN102394732A CN 102394732 A CN102394732 A CN 102394732A CN 2011102621281 A CN2011102621281 A CN 2011102621281A CN 201110262128 A CN201110262128 A CN 201110262128A CN 102394732 A CN102394732 A CN 102394732A
- Authority
- CN
- China
- Prior art keywords
- module
- fifo
- little
- flit
- little bag
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种多微包并行处理结构,目的是解决单微包处理结构下物理层和链路层的带宽不匹配,降低了结点控制器芯片对各处理器间通信的处理速度的问题。本发明由接口转换模块、接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块组成。接口转换模块工作在物理层时钟域下,其它模块工作在链路层时钟域下。接口转换模块由异步接收FIFO和异步发送FIFO组成,接收模块和发送模块中的数据通路为针对多微包的多路并行数据通路,能并行处理多个微包。本发明可实现物理层/链路层的带宽匹配,有效提高结点控制器芯片对各处理器间通信的处理速度。
Description
技术领域
本发明涉及结点控制芯片中处理器接口访问部件中微包(flit)处理结构。
背景技术
在计算机结构中,结点控制芯片(Node Controller,NC)即北桥芯片是仅次于处理器的核心芯片。
结点控制芯片设计技术与处理器架构和接口技术的演进同步发展,以匹配处理器的能力和需求。处理器接口技术由前端总线FSB(Front Side Bus)逐步过渡到高速直连接口技术,如AMD的HT(HyperTransport)接口和Intel的QPI(Quick Path Interconnect)接口。随着处理器直连接口技术的发展,多处理器直连架构已成为构建服务器或大型机的主流结构。记多处理器直连的规模为m(m为大于1的自然数),则m处理器直连架构下,每个处理器芯片内集成m-1套直连接口。每个直连接口对应一套接收报文缓冲队列,将存放于接收报文缓冲队列中的报文发送给对应的处理器。当系统规模大于m时,通过结点控制芯片对系统规模进行扩展。称m个处理器直连构成一个计算结点。一个计算结点内的处理器通过结点控制芯片与其它计算结点中的处理器相连。
结点控制芯片与处理器直连,结点控制芯片中的处理器接口访问控制部件SI(Socket Interface)负责处理器和结点控制芯片间的可靠数据传输,并基于信用机制进行流量控制和错误检/纠错。SI中包含接收模块和发送模块,发送模块负责向处理器发送报文,接收模块接收来自处理器的报文。因此,报文传输分为发送方和接收方,接收方和发送方隶属不同的端口:当SI向处理器发送报文时,发送方为SI,接收方为处理器;当SI接收来自处理器的报文时,发送方为处理器,接收方为SI。发送方和接收方都维持一定的信用,由接收方提供可用信用给发送方。微包是端口间信息传输的最小单位,一个数据包可能由多个微包组成。在发送数据包时,发送方首先需要获得足够多的信用来发送整个包,当接收方正确接收微包并从接收缓冲区中取出微包时,返回给发送方一个信用。发送方在发送每个微包的同时,将该微包拷贝到重传缓冲区中。每个微包带有8位的CRC码,用于在接收方判断数据是否在传输过程中出错。接收方收到每个微包的时候都要重新计算CRC来检查收到的数据是否正确,如果正确,接收方在下一个给发送方的微包中附带发送一个响应(ack),发送方收到肯定响应后把重传缓冲区中相应的微包清除掉;如果CRC指示有错,接收方通过链路层发送重传请求给本端口的发送部件,由本端口的发送部件将重传请求发送至发送方,发送方收到重传请求后会重新发送重传缓冲区中相应的微包,直到该微包被正确地传送到接收方为止。
目前的结点控制芯片中SI是单微包处理结构,即SI每个周期处理一个微包。单微包处理结构由接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO(First In FirstOut,先进先出队列)、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块组成。其中,接收模块、接收缓冲区、报文分发模块和第一协议层报文FIFO构成接收数据通路;第二协议层报文FIFO、报文拼装模块、发送缓冲区、重传缓冲区和发送模块构成发送数据通路。链路状态机对微包中的信用和响应信息进行交互,在数据接收出错时,链路状态机控制微包数据的重传。
接收模块与处理器、接收缓冲区和链路状态机相连。接收模块从第一处理器接收微包,提取微包中的响应和信用信息,并重新计算微包的CRC来检查收到的数据是否正确。如果CRC指示微包数据正确接收,则接收模块将微包写入接收缓冲区,并向链路状态机提交微包正确接收响应信息和信用信息;如果CRC指示微包接收出错,接收模块向链路状态机提交重传请求及信用信息,并记录因校验错误需要重传微包的序列号。
接收缓冲区与接收模块和报文分发模块相连。接收缓冲区的深度与体系结构相关,一般128足够用,宽度为单微包的数据位宽。接收缓冲区从接收模块接收微包,对微包进行缓存,并在报文分发模块发出读请求时将微包发送给报文分发模块。
报文分发模块与接收缓冲区和第一协议层报文FIFO相连。第一协议层报文FIFO与报文分发模块和协议层报文转发模块相连。第一协议层报文FIFO根据消息类的不同划分为若干个FIFO,n种消息类对应n个FIFO:FIFO1、FIFO2、...、FIFOn,不同消息类的微包存放在不同的FIFO中。报文分发模块从接收缓冲区中取出一个微包,根据微包的消息类将微包写入第一协议层报文FIFOi(1≤i≤n)中。
第一协议层报文FIFOi从报文分发模块接收一个微包,提交给协议层报文转发模块。
链路状态机与接收模块和发送模块相连。
链路状态机由三个状态组成,“00”状态是正常状态,表示链路层传输正常;“01”状态是本地重传状态,表示本地SI内部接收模块向发送模块产生的重传;“10”状态是远程重传状态,表示处理器产生的重传。上电复位时,链路状态机处于状态“00”,在微包数据正确接收时,链路状态机从接收模块收到微包正确接收响应信息和信用信息,将响应和信用信息提交给SI的发送模块,状态维持在“00”;如果微包接收出错,链路状态机从接收模块收到重传请求及信用信息,生成链路重传请求,并向SI部件的发送模块提交重传请求,发送模块在下一个发出的微包里携带该重传请求,请求处理器重新发送出错微包,链路状态机转向状态“01”;如果接收模块接收到处理器发出的重传请求,则链路状态机向SI部件的发送模块提交重传请求,然后发送模块将报文从重传缓冲区中读出,发送至处理器,链路状态机转向状态“10”。当链路状态机处于“01”状态时,表示SI内部接收模块接收报文出错,请求处理器对出错报文进行重传,当发送模块将本地重传请求发送至处理器时,链路状态机转向状态“00”。当链路状态机处于“10”状态时,表示SI的接收模块收到的微包为远程重传请求,处理器接收微包出错,要求SI对出错报文进行重传,SI的发送模块根据远程重传请求从重传缓冲区中读取相应微包,重新发送给处理器,链路状态机转向状态“00”。
第二协议层报文FIFO与报文拼装模块和协议层报文转发模块相连。第二协议层报文FIFO与第一协议层报文FIFO的结构完全一样。第二协议层报文FIFOi(1≤i≤n)从协议层报文转发模块接收一个微包,并提交给报文拼装模块。
报文拼装模块与第二协议层报文FIFO和发送缓冲区相连。报文拼装模块从第二协议层报文FIFOi(1≤i≤n)中取出待传输的协议层命令和数据,将待传输的协议层命令和数据组装成微包,将组装后的微包提交给发送缓冲区。
发送缓冲区与报文拼装模块和发送模块相连。发送缓冲区的深度和宽度均与接收缓冲区相同。发送缓冲区从报文拼装模块接收拼装好的微包,对微包进行缓存,接收到发送模块的读请求后将微包发送给发送模块。
发送模块与链路状态机、发送缓冲区、重传缓冲区和处理器相连。发送模块从发送缓冲区读取微包数据,从链路状态机获取信用信息和响应信息,将信用信息和响应信息搭载(piggyback)到微包中。当信用足够发送整个微包时(即信用值大于微包数),发送模块将搭载后的微包数据发送给处理器,同时将该微包拷贝至重传缓冲区。
重传缓冲区与发送模块相连。重传缓冲区的宽度为单微包的数据位宽加上缓冲区的索引位宽(缓冲区索引用于对重传缓冲区中的每一条记录进行索引),深度与接收缓冲区和发送缓冲区相同。重传缓冲区从发送模块接收发送微包的备份,对已发送微包进行缓存。处理器收到微包后进行CRC校验,判断数据是否在传输过程中出错。如果正确,处理器在下一个给SI的微包中附带发送一个肯定响应。SI在收到肯定响应回答后把重传缓冲区中相应的微包清除掉。如果CRC指示有错,处理器发送一个远程重传请求给SI,SI的接收模块将此重传请求通过链路状态机提交给发送模块,发送模块重新发送重传缓冲中相应的微包,直到该微包被处理器正确接收为止。
单微包处理结构中,SI每个周期处理一个微包,微包的发送和接收处理流程中只处理一个微包,数据通路为一路数据通路。因此,数据通路逻辑设计简单、易于实现。但缺点也很明显,记物理层的工作频率为FPhy(Hz),链路层的工作频率为FLink(Hz),每个微包的位宽为W(b),则物理层的带宽为W*FPhy(bps),在单微包处理结构中,SI每个周期处理一个微包,链路层的带宽为W*FLink(bps),为了匹配处理器的能力和需求,实现带宽匹配,则要求Flink=FPhy,即处理器接口链路层必须实现物理层工作频率下的数据提取、装配和纠错。但随着工艺的提高,元器件可以提供越来越高的传输频率,处理器物理层的工作频率逐步提高,若要求链路层达到物理层的工作频率,对微处理器接口控制部件的逻辑功能设计以及接口电路设计都提出了很高的要求。例如,根据对ASIC芯片厂家工艺库和RAM IP(Intellectural Property,知识产权核)库的评估,在90nm工艺下,寄存器等标准单元可以工作在1GHz左右,但是RAM等IP最高工作频率为500MHz,而且随着RAM容量的增大,工作频率呈下降趋势,因此,单微包处理结构难以实现物理层和链路层的带宽匹配,造成数据传输延迟的增加,降低各直连端口间的数据传输速率,进而降低了结点控制器芯片对各处理器间通信的处理速度。
发明内容
本发明要解决的技术问题是:针对结点控制器芯片中单微包处理结构下的报文传输难以实现物理层和链路层的带宽匹配、影响各直连端口间的数据传输速率、进而降低结点控制器芯片对各处理器间通信的处理速度这一问题,提出一种多微包并行处理结构,各直连端口间的数据传输速率可以不受链路层约束,有效提高结点控制器芯片对各处理器间通信的处理速度。
本发明的技术方案为:
本发明多微包并行处理结构由接口转换模块、接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块组成。接口转换模块工作在物理层时钟域下,接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块工作在链路层时钟域下。
与单微包处理结构相比,多微包并行处理结构的不同之处在于:1.相对单微包处理结构增加了接口转换模块,在连接关系上,单微包处理结构中接收模块和发送模块直接与处理器相连,从处理器收发微包,而在多微包处理结构中,在处理器与接收模块和发送模块之间增加了接口转换模块,其它各模块之间的连接关系没有发生变化;2.接收模块和发送模块中的数据通路由针对单微包的一路数据通路拓展为针对多微包的多路并行数据通路,多微包并行处理结构并行处理多个微包。记FPhy为物理层的工作频率,FLink为链路层的工作频率,表示上取整,则多微包处理结构只需并行处理N个微包(记为N微包并行处理结构),即可在不提高链路层工作频率的同时实现物理层和链路层的带宽匹配。
接口转换模块与第一处理器、接收模块和发送模块相连。接口转换模块由异步接收FIFO和异步发送FIFO组成。异步接收FIFO和异步发送FIFO均是常用的异步FIFO,异步FIFO是结点控制芯片中普遍使用的一种跨时钟域的FIFO,异步FIFO的读写端口分开,数据在一个时钟域写入,在另一个时钟域读出。使用异步FIFO可以安全地将数据从一个时钟域传送到另一个时钟域,本发明通过异步接收FIFO将N个单微包数据从物理层时钟域传送到链路层时钟域,并以一个多微包的形式读出;异步发送FIFO将一个多微包数据从链路层时钟域传送到物理层时钟域,并以N个单微包的形式读出。
异步接收FIFO与第一处理器和接收模块相连,每个物理层时钟周期第一处理器向异步接收FIFO写入一个微包,则N个物理层时钟周期内处理器向异步接收FIFO写入N个微包。统一调整N个微包按照小头方式排列,即N个微包数据的顺序为{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},其中Flit[0]是最先接收的,即Flit[0]是从第一处理器接收的第一拍微包数据,Flit[N-1]是从第一处理器接收的第N拍微包数据。异步接收FIFO每一个链路层时钟周期内向接收模块输出一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]}。
异步发送FIFO与第二处理器和发送模块相连。每一个链路层时钟周期内发送模块向异步发送FIFO写入一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},第二处理器按照Flit[0]、Flit[1]、...、Flit[N-1]的顺序每个物理层时钟周期内从异步发送FIFO读取一个微包,进而在N个物理层时钟周期内读取一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]}。
接收模块与异步接收FIFO、接收缓冲区和链路状态机相连,接收模块由并行CRC校验模块、并行信用计算模块、并行响应计算模块、传输仲裁模块组成。并行CRC校验模块、并行信用计算模块和并行响应计算模块均与异步接收FIFO和传输仲裁模块相连。并行CRC校验模块由N个单微包处理结构中的CRC校验模块组成,每个CRC校验模块结构与单微包处理结构中的CRC校验模块相同,N个CRC校验模块同时对多微包中的N个单微包进行并行校验,N个CRC校验模块均分别与异步接收FIFO和传输仲裁模块连接。并行信用计算模块由N个单微包处理结构中的信用计算模块组成,每个信用计算模块结构与单微包处理结构中的信用计算模块相同,N个信用计算模块同时对多微包中的N个单微包进行并行信用计算,N个信用计算模块均分别与异步接收FIFO和传输仲裁模块连接。并行响应计算模块由N个单微包处理结构中的响应计算模块组成,每个响应计算模块结构与单微包处理结构中的响应计算模块相同,N个响应计算模块同时对多微包中的N个单微包进行并行响应计算,N个响应计算模块均分别与异步接收FIFO和传输仲裁模块连接。这样,通过并行CRC校验模块、并行信用计算模块和并行响应计算模块同时对多微包中的N个单微包进行并行处理。每个链路层时钟周期内,并行CRC校验模块、并行信用计算模块和并行响应计算模块从异步接收FIFO接收一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},并行CRC校验模块对多微包中N个单微包进行CRC校验,并将N个校验信息提交给传输仲裁模块;并行信用计算模块并行计算N个单微包的信用信息,然后将N个信用信息提供给传输仲裁模块;并行响应计算模块并行计算N个微包的响应信息,并将N个响应信息提供给传输仲裁模块;传输仲裁模块与并行CRC校验模块、并行信用计算模块、并行响应计算模块、链路状态机和接收缓冲区相连,传输仲裁模块从并行CRC校验模块、并行信用计算模块和并行响应计算模块接收多微包的CRC校验信息、信用信息和响应信息,对多微包的传输进行仲裁:如果多微包是提交给协议层报文转发模块的数据报文且CRC校验正确,则将多微包存入接收缓冲区,并将多微包的信用信息和响应信息提交给链路状态机;如果CRC校验信息显示多微包出错,则将多微包的信用信息、响应信息和本地重传请求提交给链路状态机;如果多微包是来自处理器的远程重传请求,则将远程重传请求提交给链路状态机。
接收缓冲区与接收模块和报文分发模块相连,其结构与背景技术单微包处理结构中的相同,接收缓冲区的深度为128,多微包处理结构中的接收缓冲区宽度增大为N个单微包的数据位宽。接收缓冲区从接收模块接收多微包,对多微包进行缓存,并在报文分发模块发出读请求时将多微包发送给报文分发模块。
报文分发模块与接收缓冲区和第一协议层报文FIFO相连,其结构与单微包处理结构中的相同。报文分发模块从接收缓冲区中取出多微包,多微包中的N个单微包对应t(t≤N,且t≤n)种消息类,报文分发模块根据多微包中的N个单微包消息类的不同将N个单微包分别写入第一协议层报文FIFO中的t个FIFO中,这t个第一协议层报文FIFO中存放的微包数不尽相同。
第一协议层报文FIFO与报文分发模块、协议层报文转发模块相连,其结构与单微包处理结构中的相同。第一协议层报文FIFO中的t个FIFO从报文分发模块接收到N个单微包,每个FIFO分别将存放于其中的单微包提交给协议层报文转发模块。第一协议层报文FIFO的宽度为单微包位宽,每个第一协议层报文FIFO的深度均与接收缓冲区的深度相同,因此,可以保障第一协议层报文FIFO的容量足以容纳所有到达第一协议层报文FIFO的微包。
链路状态机与接收模块和发送模块相连,其结构与单微包处理结构中的相同,只是处理对象由单微包变成多微包。链路状态机由三个状态组成,“00”状态是正常状态,表示链路层传输正常;“01”状态是本地重传状态,表示本地SI内部接收模块向发送模块产生的重传;“10”状态是远程重传状态,表示处理器产生的重传;上电复位时,链路状态机处于状态“00”,在多微包数据正确接收时,链路状态机从接收模块收到多微包正确接收响应信息和信用信息,将响应信息和信用信息提交给SI的发送模块,状态维持在“00”;如果多微包接收出错,链路状态机转入本地重传状态,链路状态机从接收模块收到本地重传请求及信用信息,生成本地重传请求,并向SI的发送模块提交本地重传请求,发送模块在下一个发出的微包里携带该本地重传请求,请求处理器重新发送出错微包,链路状态机转向状态“01”;如果接收模块接收到处理器发出的重传请求,则链路状态机进入远程重传状态,接收模块向SI的发送模块提交远程重传请求,发送模块从重传缓冲区中读出出错微包发送至处理器,链路状态机转向状态“10”;当链路状态机处于“01”状态时,表示SI内部接收模块接收微包出错,请求处理器对出错微包进行重传,当发送模块将本地重传请求发送至第二处理器时,链路状态机转向状态“00”;当链路状态机处于“10”状态时,表示SI的接收模块收到的微包为远程重传请求,处理器接收微包出错,要求SI对出错微包进行重传,SI的发送模块根据远程重传请求从重传缓冲区中读取相应微包,重新发送给处理器,链路状态机转向状态“00”。
第二协议层报文FIFO与报文拼装模块、协议层报文转发模块相连,其结构与第一协议层报文FIFO相同。第二协议层报文FIFO从协议层报文转发模块接收N个单微包,协议层报文转发模块根据消息类的不同将N个单微包分别写入第二协议层报文FIFO中的t个FIFO中,这t个FIFO中存放的微包数不尽相同;然后第二协议层报文FIFO将N个单微包提交给报文拼装模块。
报文拼装模块与第二协议层报文FIFO和发送缓冲区相连,其结构与单微包处理结构中的相同。报文拼装模块从第二协议层报文FIFO中取出待传输的协议层命令和数据,并根据单微包到达第二协议层报文FIFO的时间顺序将N个单微包组装成一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},将组装后的微包提交给发送缓冲区。
发送缓冲区与报文拼装模块和发送模块相连,其结构与单微包处理结构中的相同,发送缓冲区的深度和宽度均与接收缓冲区相同。发送缓冲区从报文拼装模块接收拼装好的微包,对微包进行缓存,接收到发送模块的读请求后将微包发送给发送模块。
重传缓冲区与发送模块相连,其结构与单微包处理结构中的相同,唯一的不同在于多微包处理结构中的重传缓冲区宽度增大为N个单微包的数据位宽加上缓冲区的索引位宽(缓冲区索引用于对重传缓冲区中的每一条记录进行索引)。重传缓冲区从发送模块接收发送微包的备份,对已发送微包进行缓存,并在微包传输出错时由发送模块从重传缓冲区中读出出错微包进行重传。
发送模块与异步发送FIFO、发送缓冲区、重传缓冲区和链路状态机相连。发送模块由信用和响应搭载模块、传输仲裁模块组成。信用和响应搭载模块与链路状态机、发送缓冲区和传输仲裁模块相连。信用和响应搭载模块从链路状态机获取信用和响应信息,从发送缓冲区读取一组多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},信用和响应搭载模块将信用和响应信息搭载在多微包上,形成携带信用和响应信息的多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},并将此多微包提供给传输仲裁模块。传输仲裁模块与信用和响应搭载模块、链路状态机、重传缓冲区和异步发送FIFO相连。传输仲裁模块根据收到的消息报文对微包的传输进行仲裁。如果传输仲裁模块收到来自链路状态机的本地重传请求,传输仲裁模块在下一个要发出的多微包里携带该重传请求,请求处理器重新发送出错微包;如果传输仲裁模块收到来自链路状态机的远程重传响应,则向重传缓冲区发出读使能信号,从重传缓冲区中读取需要重传的多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]};如果传输仲裁模块收到的是来自信用和响应搭载模块的一组多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},则将此多微包写入异步发送FIFO,同时向重传缓冲区发出写使能信号,将此多微包备份至重传缓冲区。
与现有技术相比,采用本发明可达到以下技术效果:
●通过增加接口转换部件,实现NC跨时钟域的转换,使得微包数据在一个时钟域写入,在另一个时钟域读出,读写端口分开。异步FIFO可以安全的将数据从一个时钟域传送到另一个时钟域。每个链路层时钟周期结点控制芯片处理N个微包,此时带宽为N*W*FLink(bps),则只要FLink=FPhy/N,即链路层的工作频率达到物理层工作频率的1/N就可实现带宽匹配。随着工艺的不断提高,只需提高结点控制芯片每个链路层时钟周期内处理的微包数N,即可实现物理层/链路层的带宽匹配,而对微处理器接口控制部件的逻辑功能设计以及接口电路设计没有影响,各直连端口间的数据传输速率可以不受链路层约束,有效提高结点控制器芯片对各处理器间通信的处理速度。
●发送模块和接收模块通过将数据处理通路由只处理单微包的一路数据通路增加至处理多微包的多路并行数据通路,提高了固定时间内链路层可以处理的数据位宽,有效提高了链路层工作带宽。
附图说明
图1是背景技术结点控制芯片NC与处理器CPU直连通信示意图。
图2是背景技术单微包处理结构逻辑结构图。
图3是图2中单微包处理结构的链路状态机示意图。
图4是本发明多微包并行处理结构逻辑结构图。
图5是图4中接收模块逻辑结构图。
图6是图4中发送模块逻辑结构图。
图7是本发明多微包并行处理结构采取的多微包格式示意图。
具体实施方式
图1是背景技术结点控制芯片NC与处理器CPU直连通信示意图。
结点控制芯片与处理器直连,结点控制芯片中的处理器接口访问控制部件SI负责处理器和结点控制芯片间的可靠数据传输,并基于信用机制进行流量控制和错误检/纠错。SI中包含接收模块和发送模块,发送模块负责向处理器发送报文,接收模块接收来自处理器的报文。因此,报文传输分为发送方和接收方,接收方和发送方隶属不同的端口:当SI向处理器发送报文时,发送方为SI,接收方为处理器;当SI接收来自处理器的报文时,发送方为处理器,接收方为SI。发送方和接收方都维持一定的信用,由接收方提供可用信用给发送方。微包是端口间信息传输的最小单位,一个数据包可能由多个微包组成。在发送数据包时,发送方首先需要获得足够多的信用用来发送整个包,当接收方正确接收微包并从接收报文缓冲区中取出微包时,返回给发送方一个信用。发送方在发送每个微包的同时,将该微包拷贝到重传缓冲区中。每个微包带有8位的CRC码,用于在接收方判断数据是否在传输过程中出错。接收方收到每个微包的时候都要重新计算CRC来检查收到的数据是否正确,如果正确,接收方在下一个给发送方的微包中附带发送一个响应,发送方收到肯定响应后把重传缓冲区中相应的微包清除掉;如果CRC指示有错,接收方发送一个链路层的重传请求给本端口的发送部件,由本端口的发送部件将重传请求发送至发送方,发送方收到重传请求后会重新发送重传缓冲中相应的微包,直到该微包被正确地传送到接收方为止。
图2是背景技术单微包处理结构逻辑结构图。
单微包处理结构由接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块组成。其中,接收模块、接收缓冲区、报文分发模块和第一协议层报文FIFO构成接收数据通路;第二协议层报文FIFO、报文拼装模块、发送缓冲区、重传缓冲区和发送模块构成发送数据通路。链路状态机对微包中的信用和响应信息进行交互,在数据接收出错时,链路状态机控制微包数据的重传。
接收模块与处理器、接收缓冲区和链路状态机相连。接收模块从处理器接收微包,提取微包中的响应和信用信息,并重新计算微包的CRC来检查收到的数据是否正确。如果CRC指示微包数据正确接收,则接收模块将微包写入接收缓冲区,并向链路状态机提交微包正确接收响应信息和信用信息;如果CRC指示微包接收出错,接收模块向链路状态机提交重传请求及信用信息,并记录因校验错误需要重传微包的序列号。
接收缓冲区与接收模块和报文分发模块相连。接收缓冲区的深度与体系结构相关,一般128足够用,宽度为单微包的数据位宽。接收缓冲区从接收模块接收微包,对微包进行缓存,并在报文分发模块发出读请求时将微包发送给报文分发模块。
报文分发模块与接收缓冲区和第一协议层报文FIFO相连。第一协议层报文FIFO与报文分发模块和协议层报文转发模块相连。第一协议层报文FIFO根据消息类的不同划分为若干个FIFO,n种消息类对应n个FIFO:FIFO1、FIFO2、...、FIFOn,不同消息类的微包存放在不同的FIFO中。报文分发模块从接收缓冲区中取出一个微包,根据微包的消息类将微包写入第一协议层报文FIFOi(1≤i≤n)中。
第一协议层报文FIFOi从报文分发模块接收一个微包,提交给协议层报文转发模块。
链路状态机与接收模块和发送模块相连。在微包数据正确接收时,链路状态机从接收模块收到微包正确接收响应信息和信用信息,将响应和信用信息提交给SI的发送模块;如果微包接收出错,链路状态机转入本地重传状态,链路状态机从接收模块收到重传请求及信用信息,生成链路重传请求,并向SI的发送模块提交重传请求,发送模块在下一个发出的微包里携带该重传请求,请求处理器重新发送出错微包。如果接收模块接收到处理器发出的重传请求,则链路状态机进入远程重传状态,接收模块向SI的发送模块提交重传请求,发送模块将微包从重传缓冲区中读出发送至处理器。
第二协议层报文FIFO与报文拼装模块和协议层报文转发模块相连。第二协议层报文FIFO与第一协议层报文FIFO的结构完全一样。第二协议层报文FIFOi(1≤i≤n)从协议层报文转发模块接收一个微包,并提交给报文拼装模块。
报文拼装模块与第二协议层报文FIFO和发送缓冲区相连。报文拼装模块从第二协议层报文FIFOi(1≤i≤n)中取出待传输的协议层命令和数据,将待传输的协议层命令和数据组装成微包,将组装后的微包提交给发送缓冲区。
发送缓冲区与报文拼装模块和发送模块相连。发送缓冲区的深度和宽度均与接收缓冲区相同。发送缓冲区从报文拼装模块接收拼装好的微包,对微包进行缓存,接收到发送模块的读请求后将微包发送给发送模块。
发送模块与链路状态机、发送缓冲区、重传缓冲区和处理器相连。发送模块从发送缓冲区读取微包数据,从链路状态机获取信用信息和响应信息,将信用信息和响应信息搭载到微包中。当信用足够发送整个微包时(即信用值大于微包数),发送模块将搭载后的微包数据发送给处理器,同时将该微包拷贝至重传缓冲区。
重传缓冲区与发送模块相连。重传缓冲区的宽度为单微包的数据位宽加上缓冲区的索引位宽(缓冲区索引用于对重传缓冲区中的每一条记录进行索引),深度与接收缓冲区和发送缓冲区相同。重传缓冲区从发送模块接收发送微包的备份,对已发送微包进行缓存。处理器收到微包后进行CRC校验,判断数据是否在传输过程中出错。如果正确,处理器在下一个给SI的微包中附带发送一个肯定响应。SI在收到肯定响应回答后把重传缓冲区中相应的微包清除掉。如果CRC指示有错,处理器发送一个远程重传请求给SI,SI的接收模块将此重传请求通过链路状态机提交给发送模块,发送模块重新发送重传缓冲中相应的微包,直到该微包被处理器正确接收为止。
图3是图2中单微包处理结构的链路状态机示意图。
链路状态机由三个状态组成,“00”状态是正常状态,表示链路层传输正常;“01”状态是本地重传状态,表示本地SI内部接收模块向发送模块产生的重传;“10”状态是远程重传状态,表示处理器产生的重传。上电复位时,链路状态机处于状态“00”,在微包数据正确接收时,链路状态机从接收模块收到微包正确接收响应信息和信用信息,将响应和信用信息提交给SI的发送模块,状态维持在“00”;如果微包接收出错,链路状态机从接收模块收到重传请求及信用信息,生成链路重传请求,并向SI部件的发送模块提交重传请求,发送模块在下一个发出的微包里携带该重传请求,请求处理器重新发送出错微包,链路状态机转向状态“01”;如果接收模块接收到处理器发出的重传请求,则链路状态机向SI部件的发送模块提交重传请求,然后发送模块将报文从重传缓冲区中读出,发送至处理器,链路状态机转向状态“10”。当链路状态机处于“01”状态时,表示SI内部接收模块接收报文出错,请求处理器对出错报文进行重传,当发送模块将本地重传请求发送至处理器时,链路状态机转向状态“00”。当链路状态机处于“10”状态时,表示SI的接收模块收到的微包为远程重传请求,处理器接收微包出错,要求SI对出错报文进行重传,SI的发送模块根据远程重传请求从重传缓冲区中读取相应微包,重新发送给处理器,链路状态机转向状态“00”。
图4是本发明多微包并行处理结构逻辑结构图。
多微包并行处理结构由接口转换模块、接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块组成。接口转换模块工作在物理层时钟域下,接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块工作在链路层时钟域下。
接口转换模块与第一处理器、接收模块和发送模块相连。接口转换模块由异步接收FIFO和异步发送FIFO组成。异步接收FIFO和异步发送FIFO均是常用的异步FIFO,异步FIFO是结点控制芯片中普遍使用的一种跨时钟域的FIFO,异步FIFO的读写端口分开,数据在一个时钟域写入,在另一个时钟域读出,。使用异步FIFO可以安全地将数据从一个时钟域传送到另一个时钟域,本发明通过异步接收FIFO将N个单微包数据从物理层时钟域传送到链路层时钟域,并以一个多微包的形式读出;异步发送FIFO将一个多微包数据从链路层时钟域传送到物理层时钟域,并以N个单微包的形式读出。
异步接收FIFO与第一处理器和接收模块相连,每个物理层时钟周期第一处理器向异步接收FIFO写入一个微包,则N个物理层时钟周期内处理器向异步接收FIFO写入N个微包。统一调整N个微包的顺序按照小头方式排列,即N个微包数据的顺序为{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},其中Flit[0]是最先接收的,即Flit[0]是从处理器接收的第一拍微包数据,Flit[N-1]是从处理器接收的第N拍微包数据。异步接收FIFO每一个链路层时钟周期内向接收模块输出一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]}。
异步发送FIFO与第二处理器和发送模块相连。每一个链路层时钟周期内发送模块向异步发送FIFO写入一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},第二处理器按照Flit[0]、Flit[1]、...、Flit[N-1]的顺序每个物理层时钟周期内从异步发送FIFO读取一个微包,进而在N个物理层时钟周期内读取一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]}。
结合图5,接收模块与异步接收FIFO、接收缓冲区和链路状态机相连,接收模块由并行CRC校验模块、并行信用计算模块、并行响应计算模块、传输仲裁模块组成。并行CRC校验模块、并行信用计算模块和并行响应计算模块均与异步接收FIFO和传输仲裁模块相连。并行CRC校验模块由N个单微包处理结构中的CRC校验模块组成,N个CRC校验模块同时对多微包中的N个单微包进行并行校验,N个CRC校验模块均与异步接收FIFO和传输仲裁模块相连。并行信用计算模块由N个单微包处理结构中的信用计算模块组成,N个信用计算模块同时对多微包中的N个单微包进行并行信用计算,N个信用计算模块均与异步接收FIFO和传输仲裁模块相连。并行响应计算模块由N个单微包处理结构中的响应计算模块组成,N个响应计算模块同时对多微包中的N个单微包进行并行响应计算,N个响应计算模块均与异步接收FIFO和传输仲裁模块相连。每个链路层时钟周期内,并行CRC校验模块、并行信用计算模块和并行响应计算模块从异步接收FIFO接收一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},并行CRC校验模块对多微包中N个单微包进行CRC校验,并将N个校验信息提交给传输仲裁模块;并行信用计算模块并行计算N个单微包的信用信息,然后将N个信用信息提供给传输仲裁模块;并行响应计算模块并行计算N个微包的响应信息,并将N个响应信息提供给传输仲裁模块;传输仲裁模块与并行CRC校验模块、并行信用计算模块、并行响应计算模块、链路状态机和接收缓冲区相连,传输仲裁模块从并行CRC校验模块、并行信用计算模块和并行响应计算模块接收多微包的CRC校验信息、信用信息和响应信息,对多微包的传输进行仲裁:如果多微包是提交给协议层报文转发模块的数据报文且CRC校验正确,则将多微包存入接收缓冲区,并将多微包的信用信息和响应信息提交给链路状态机;如果CRC校验信息显示多微包出错,则将多微包的信用信息、响应信息和本地重传请求提交给链路状态机;如果多微包是来自处理器的远程重传请求,则将远程重传请求提交给链路状态机。
接收缓冲区与接收模块和报文分发模块相连,其结构与背景技术单微包处理结构中的相同,唯一的不同在于多微包处理结构中的接收缓冲区宽度增大为N个单微包的数据位宽。接收缓冲区从接收模块接收多微包,对多微包进行缓存,并在报文分发模块发出读请求时将多微包发送给报文分发模块。
报文分发模块与接收缓冲区和第一协议层报文FIFO相连,其结构与单微包处理结构中的相同。报文分发模块从接收缓冲区中取出多微包,多微包中的N个单微包对应t(t≤N,且t≤n)种消息类,报文分发模块根据多微包中的N个单微包消息类的不同将N个单微包分别写入t个第一协议层报文FIFO中;
第一协议层报文FIFO与报文分发模块、协议层报文转发模块相连,其结构与单微包处理结构中的相同。第一协议层报文FIFO中的t个FIFO从报文分发模块接收到N个单微包,每个FIFO分别将存放于其中的单微包提交给协议层报文转发模块。第一协议层报文FIFO的宽度为单微包位宽,每个第一协议层报文FIFO的深度均与接收缓冲区的深度相同,因此,可以保障第一协议层报文FIFO的容量足以容纳所有到达第一协议层报文FIFO的微包。
链路状态机与接收模块和发送模块相连,其结构与单微包处理结构中的相同,只是处理对象由单微包变成多微包。
第二协议层报文FIFO与报文拼装模块、协议层报文转发模块相连,其结构与第一协议层报文FIFO相同。第二协议层报文FIFO从协议层报文转发模块接收N个单微包,协议层报文转发模块根据消息类的不同将N个单微包分别写入第二协议层报文FIFO中的t个FIFO中,这t个FIFO中存放的微包数不尽相同;然后第二协议层报文FIFO将N个单微包提交给报文拼装模块。
报文拼装模块与第二协议层报文FIFO和发送缓冲区相连,其结构与单微包处理结构中的相同。报文拼装模块从第二协议层报文FIFO中取出待传输的协议层命令和数据,并根据单微包到达第二协议层报文FIFO的时间顺序将N个单微包组装成一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},将组装后的微包提交给发送缓冲区。
发送缓冲区与报文拼装模块和发送模块相连,其结构与单微包处理结构中的相同,发送缓冲区的深度和宽度均与接收缓冲区相同;发送缓冲区从报文拼装模块接收拼装好的微包,对微包进行缓存,接收到发送模块的读请求后将微包发送给发送模块。
重传缓冲区与发送模块相连,其结构与单微包处理结构中的相同,唯一的不同在于多微包处理结构中的重传缓冲区宽度增大为N个单微包的数据位宽加上缓冲区的索引位宽。重传缓冲区从发送模块接收发送微包的备份,对已发送微包进行缓存,并在微包传输出错时由发送模块从重传缓冲区中读出出错微包进行重传。
结合图6,发送模块与异步发送FIFO、发送缓冲区、重传缓冲区和链路状态机相连。发送模块由信用和响应搭载模块、传输仲裁模块组成。信用和响应搭载模块与链路状态机、发送缓冲区和传输仲裁模块相连。信用和响应搭载模块从链路状态机获取信用和响应信息,从发送缓冲区读取一组多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},信用和响应搭载模块将信用和响应信息搭载在多微包上,形成携带信用和响应信息的多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},并将此多微包提供给传输仲裁模块。传输仲裁模块与信用和响应搭载模块、链路状态机、重传缓冲区和异步发送FIFO相连。传输仲裁模块根据收到的消息报文对微包的传输进行仲裁。如果传输仲裁模块收到来自链路状态机的本地重传请求,传输仲裁模块在下一组要发出的多微包里携带该重传请求,请求处理器重新发送出错微包;如果传输仲裁模块收到来自链路状态机的远程重传响应,则向重传缓冲区发出读使能信号,从重传缓冲区中读取需要重传的微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]};如果传输仲裁模块收到的是来自信用和响应搭载模块的一组多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},则将此多微包写入异步发送FIFO,同时向重传缓冲区发出写使能信号,将此多微包备份至重传缓冲区。传输仲裁模块将多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]}写入异步发送FIFO。
图7是本发明多微包并行处理结构采取的多微包格式示意图。
N个物理层时钟周期内处理器与SI传输N个微包。统一调整N个微包的传输顺序按照小头方式排列,即N个微包数据的顺序为{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},其中Flit[0]是最先传输的,即Flit[0]是处理器与SI间传输的第一拍微包数据,Flit[N-1]是处理器与SI间传输的第N拍微包数据。
Claims (3)
1.一种多微包并行处理结构,包括接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块,接收缓冲区与接收模块和报文分发模块相连,报文分发模块与接收缓冲区和第一协议层报文FIFO相连,第一协议层报文FIFO与报文分发模块、协议层报文转发模块相连,链路状态机与接收模块和发送模块相连,第二协议层报文FIFO与报文拼装模块、协议层报文转发模块相连,第二协议层报文FIFO与第一协议层报文FIFO的结构完全一样,报文拼装模块与第二协议层报文FIFO和发送缓冲区相连,发送缓冲区与报文拼装模块和发送模块相连,重传缓冲区与发送模块相连;其特征在于多微包并行处理结构还包括接口转换模块,接口转换模块工作在物理层时钟域下,接收模块、接收缓冲区、报文分发模块、第一协议层报文FIFO、第二协议层报文FIFO、链路状态机、报文拼装模块、发送缓冲区、重传缓冲区和发送模块工作在链路层时钟域下;
接口转换模块与第一处理器、接收模块和发送模块相连,接口转换模块由异步接收FIFO和异步发送FIFO组成;异步接收FIFO和异步发送FIFO均是常用的异步FIFO,异步接收FIFO将N个单微包数据从物理层时钟域传送到链路层时钟域,并以一个多微包的形式读出;异步发送FIFO将一个多微包数据从链路层时钟域传送到物理层时钟域,并以N个单微包的形式读出,FPhy为物理层的工作频率,FLink为链路层的工作频率,表示上取整;
异步接收FIFO与第一处理器和接收模块相连,每个物理层时钟周期第一处理器向异步接收FIFO写入一个微包,N个物理层时钟周期内第一处理器向异步接收FIFO写入N个微包;异步接收FI FO每一个链路层时钟周期内向接收模块输出一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]};
异步发送FIFO与第二处理器和发送模块相连,每一个链路层时钟周期内发送模块向异步发送FIFO写入一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},第二处理器按照Flit[0]、Flit[1]、...、Flit[N-1]的顺序每个物理层时钟周期内从异步发送FIFO读取一个微包,进而在N个物理层时钟周期内读取一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]};
接收模块与异步接收FIFO、接收缓冲区和链路状态机相连,接收模块由并行CRC校验模块、并行信用计算模块、并行响应计算模块、传输仲裁模块组成;并行CRC校验模块、并行信用计算模块和并行响应计算模块均与异步接收FIFO和传输仲裁模块相连;并行CRC校验模块由N个CRC校验模块组成,N个CRC校验模块同时对多微包中的N个单微包进行并行校验,N个CRC校验模块均分别与异步接收FIFO和传输仲裁模块连接;并行信用计算模块由N个信用计算模块组成,N个信用计算模块同时对多微包中的N个单微包进行并行信用计算,N个信用计算模块均分别与异步接收FIFO和传输仲裁模块连接;并行响应计算模块由N个响应计算模块组成,N个响应计算模块同时对多微包中的N个单微包进行并行响应计算,N个响应计算模块均分别与异步接收FIFO和传输仲裁模块连接;每个链路层时钟周期内,并行CRC校验模块、并行信用计算模块和并行响应计算模块从异步接收FIFO接收一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},并行CRC校验模块对多微包中N个单微包进行CRC校验,并将N个校验信息提交给传输仲裁模块;并行信用计算模块并行计算N个单微包的信用信息,然后将N个信用信息提供给传输仲裁模块;并行响应计算模块并行计算N个微包的响应信息,并将N个响应信息提供给传输仲裁模块;传输仲裁模块与并行CRC校验模块、并行信用计算模块、并行响应计算模块、链路状态机和接收缓冲区相连,传输仲裁模块从并行CRC校验模块、并行信用计算模块和并行响应计算模块接收多微包的CRC校验信息、信用信息和响应信息,对多微包的传输进行仲裁:如果多微包是提交给协议层报文转发模块的数据报文且CRC校验正确,则将多微包存入接收缓冲区,并将多微包的信用信息和响应信息提交给链路状态机;如果CRC校验信息显示多微包出错,则将多微包的信用信息、响应信息和本地重传请求提交给链路状态机;如果多微包是来自处理器的远程重传请求,则将远程重传请求提交给链路状态机;
接收缓冲区从接收模块接收多微包,对多微包进行缓存,并在报文分发模块发出读请求时将多微包发送给报文分发模块;
报文分发模块从接收缓冲区中取出多微包,多微包中的N个单微包对应t种消息类,报文分发模块根据多微包中的N个单微包消息类的不同将N个单微包分别写入第一协议层报文FIFO中的t个FIFO中;t≤N,且t≤n,n为消息类总数;
第一协议层报文FIFO与报文分发模块、协议层报文转发模块相连,第一协议层报文FIFO根据消息类的不同划分为若干个FIFO,n种消息类对应n个FIFO:FIFO1、FIFO2、...、FIFOn,不同消息类的微包存放在不同的FIFO中;n个第一协议层报文FIFO中的t个FIFO从报文分发模块接收到N个单微包,每个FIFO分别将存放于其中的单微包提交给协议层报文转发模块;
链路状态机由三个状态组成,“00”状态是正常状态,表示链路层传输正常;“01”状态是本地重传状态,表示本地SI内部接收模块向发送模块产生的重传;“10”状态是远程重传状态,表示处理器产生的重传;上电复位时,链路状态机处于状态“00”,在多微包数据正确接收时,链路状态机从接收模块收到多微包正确接收响应信息和信用信息,将响应信息和信用信息提交给SI的发送模块,状态维持在“00”;如果多微包接收出错,链路状态机转入本地重传状态,链路状态机从接收模块收到本地重传请求及信用信息,生成本地重传请求,并向SI的发送模块提交本地重传请求,发送模块在下一个发出的微包里携带该本地重传请求,请求处理器重新发送出错微包,链路状态机转向状态“01”;如果接收模块接收到处理器发出的重传请求,则链路状态机进入远程重传状态,接收模块向SI的发送模块提交远程重传请求,发送模块从重传缓冲区中读出出错微包发送至处理器,链路状态机转向状态“10”;当链路状态机处于“01”状态时,表示SI内部接收模块接收微包出错,请求处理器对出错微包进行重传,当发送模块将本地重传请求发送至第二处理器时,链路状态机转向状态“00”;当链路状态机处于“10”状态时,表示SI的接收模块收到的微包为远程重传请求,处理器接收微包出错,要求SI对出错微包进行重传,SI的发送模块根据远程重传请求从重传缓冲区中读取相应微包,重新发送给处理器,链路状态机转向状态“00”;
第二协议层报文FIFO与报文拼装模块、协议层报文转发模块相连,其结构与第一协议层报文FIFO相同,第二协议层报文FIFO从协议层报文转发模块接收N个单微包,协议层报文转发模块根据消息类的不同将N个单微包分别写入第二协议层报文FIFO中的t个FIFO中,第二协议层报文FIFO将N个单微包提交给报文拼装模块;
报文拼装模块从第二协议层报文FIFO中取出待传输的协议层命令和数据;报文拼装模块根据单微包到达第二协议层报文FIFO的时间顺序将N个单微包组装成一个多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},将组装后的微包提交给发送缓冲区;
发送缓冲区从报文拼装模块接收拼装好的微包,对微包进行缓存,接收到发送模块的读请求后将微包发送给发送模块;
重传缓冲区与发送模块相连,重传缓冲区从发送模块接收发送微包的备份,对已发送微包进行缓存,并在微包传输出错时由发送模块从重传缓冲区中读出出错微包进行重传;
发送模块与异步发送FIFO、发送缓冲区、重传缓冲区和链路状态机相连,发送模块由信用和响应搭载模块、传输仲裁模块组成;信用和响应搭载模块与链路状态机、发送缓冲区和传输仲裁模块相连,信用和响应搭载模块从链路状态机获取信用和响应信息,从发送缓冲区读取一组多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},信用和响应搭载模块将信用和响应信息搭载在多微包上,形成携带信用和响应信息的多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},并将此多微包提供给传输仲裁模块;传输仲裁模块与信用和响应搭载模块、链路状态机、重传缓冲区和异步发送FIFO相连,传输仲裁模块根据收到的消息报文对微包的传输进行仲裁;如果传输仲裁模块收到来自链路状态机的本地重传请求,传输仲裁模块在下一组要发出的多微包里携带该重传请求,请求处理器重新发送出错微包;如果传输仲裁模块收到来自链路状态机的远程重传响应,则向重传缓冲区发出读使能信号,从重传缓冲区中读取需要重传的微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]};如果传输仲裁模块收到的是来自信用和响应搭载模块的一组多微包{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},则将此多微包写入异步发送FIFO,同时向重传缓冲区发出写使能信号,将此多微包备份至重传缓冲区。
2.如权利要求1所述的一种多微包并行处理结构,其特征在于N个物理层时钟周期内第一处理器向异步接收FIFO写入的N个微包按照小头方式排列,即N个微包数据的顺序为{Flit[N-1],Flit[N-2],...,Flit[1],Flit[0]},其中Flit[0]是最先接收的,即Flit[0]是从第一处理器接收的第一拍微包数据,Flit[N-1]是从第一处理器接收的第N拍微包数据。
3.如权利要求1所述的一种多微包并行处理结构,其特征在于接收缓冲区的深度为128,宽度为N个单微包的数据位宽;第一协议层报文FIFO中每个FIFO的宽度为单微包位宽,深度均与接收缓冲区的深度相同;发送缓冲区的深度和宽度均与接收缓冲区相同;重传缓冲区宽度为N个单微包的数据位宽加上缓冲区的索引位宽,深度与接收缓冲区的深度相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110262128 CN102394732B (zh) | 2011-09-06 | 2011-09-06 | 一种多微包并行处理结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110262128 CN102394732B (zh) | 2011-09-06 | 2011-09-06 | 一种多微包并行处理结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102394732A true CN102394732A (zh) | 2012-03-28 |
CN102394732B CN102394732B (zh) | 2013-09-18 |
Family
ID=45861943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110262128 Expired - Fee Related CN102394732B (zh) | 2011-09-06 | 2011-09-06 | 一种多微包并行处理结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102394732B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981804A (zh) * | 2012-10-29 | 2013-03-20 | 中国人民解放军国防科学技术大学 | 基于压缩变换的面向多微包并行处理结构的重传方法 |
CN103678235A (zh) * | 2013-12-09 | 2014-03-26 | 无锡市同威科技有限公司 | 基于并行流水线网络数据处理装置及方法 |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
WO2017156795A1 (zh) * | 2016-03-12 | 2017-09-21 | 武汉芯泰科技有限公司 | 一种可编程可重构的帧处理器 |
CN110019158A (zh) * | 2017-11-13 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种监控数据质量的方法和装置 |
CN112350897A (zh) * | 2020-11-06 | 2021-02-09 | 中国人民解放军国防科技大学 | 基于动态连接端到端可靠传输协议的网络测试装置 |
CN112732611A (zh) * | 2021-01-18 | 2021-04-30 | 上海国微思尔芯技术股份有限公司 | 一种基于axi的芯片互联系统 |
CN114157401A (zh) * | 2021-12-03 | 2022-03-08 | 中国人民解放军国防科技大学 | 一种支持长短两种报文格式的重传缓冲装置 |
CN117834755A (zh) * | 2024-03-04 | 2024-04-05 | 中国人民解放军国防科技大学 | 面向芯粒互连接口的协议层与适配器层间接口电路及芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020049901A1 (en) * | 2000-09-21 | 2002-04-25 | Avici Systems, Inc. | System and method for implementing source based and egress based virtual networks in an interconnection network |
CN101069174A (zh) * | 2004-12-01 | 2007-11-07 | 皇家飞利浦电子股份有限公司 | 用于同步数据通信量的数据处理系统和方法 |
CN101764794A (zh) * | 2008-12-23 | 2010-06-30 | 中国科学院空间科学与应用研究中心 | 一种可编程的ieee1394总线监测系统及监测方法 |
CN102065073A (zh) * | 2009-11-16 | 2011-05-18 | 英特尔公司 | 向协议层直接提供数据消息 |
US20110149735A1 (en) * | 2009-12-18 | 2011-06-23 | Stmicroelectronics S.R.L. | On-chip interconnect method, system and corresponding computer program product |
-
2011
- 2011-09-06 CN CN 201110262128 patent/CN102394732B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020049901A1 (en) * | 2000-09-21 | 2002-04-25 | Avici Systems, Inc. | System and method for implementing source based and egress based virtual networks in an interconnection network |
CN101069174A (zh) * | 2004-12-01 | 2007-11-07 | 皇家飞利浦电子股份有限公司 | 用于同步数据通信量的数据处理系统和方法 |
CN101764794A (zh) * | 2008-12-23 | 2010-06-30 | 中国科学院空间科学与应用研究中心 | 一种可编程的ieee1394总线监测系统及监测方法 |
CN102065073A (zh) * | 2009-11-16 | 2011-05-18 | 英特尔公司 | 向协议层直接提供数据消息 |
US20110149735A1 (en) * | 2009-12-18 | 2011-06-23 | Stmicroelectronics S.R.L. | On-chip interconnect method, system and corresponding computer program product |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101951072B1 (ko) | 2012-10-12 | 2019-04-22 | 지티이 코포레이션 | 코어 간 통신 장치 및 방법 |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
WO2014056420A1 (zh) * | 2012-10-12 | 2014-04-17 | 中兴通讯股份有限公司 | 核间通信装置及方法 |
KR20150067332A (ko) * | 2012-10-12 | 2015-06-17 | 지티이 코포레이션 | 코어 간 통신 장치 및 방법 |
US9639409B2 (en) | 2012-10-12 | 2017-05-02 | Zte Corporation | Device and method for communicating between cores |
CN102981804B (zh) * | 2012-10-29 | 2014-06-04 | 中国人民解放军国防科学技术大学 | 基于压缩变换的面向多微包并行处理结构的重传方法 |
CN102981804A (zh) * | 2012-10-29 | 2013-03-20 | 中国人民解放军国防科学技术大学 | 基于压缩变换的面向多微包并行处理结构的重传方法 |
CN103678235A (zh) * | 2013-12-09 | 2014-03-26 | 无锡市同威科技有限公司 | 基于并行流水线网络数据处理装置及方法 |
CN103678235B (zh) * | 2013-12-09 | 2016-06-08 | 无锡市同威科技有限公司 | 基于并行流水线网络数据处理装置及方法 |
WO2017156795A1 (zh) * | 2016-03-12 | 2017-09-21 | 武汉芯泰科技有限公司 | 一种可编程可重构的帧处理器 |
US10785057B2 (en) | 2016-03-12 | 2020-09-22 | Wuhan Syntek Ltd. | Programmable and reconfigurable frame processor |
CN110019158A (zh) * | 2017-11-13 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种监控数据质量的方法和装置 |
CN112350897A (zh) * | 2020-11-06 | 2021-02-09 | 中国人民解放军国防科技大学 | 基于动态连接端到端可靠传输协议的网络测试装置 |
CN112350897B (zh) * | 2020-11-06 | 2022-08-12 | 中国人民解放军国防科技大学 | 基于动态连接端到端可靠传输协议的网络测试装置 |
CN112732611A (zh) * | 2021-01-18 | 2021-04-30 | 上海国微思尔芯技术股份有限公司 | 一种基于axi的芯片互联系统 |
CN114157401A (zh) * | 2021-12-03 | 2022-03-08 | 中国人民解放军国防科技大学 | 一种支持长短两种报文格式的重传缓冲装置 |
CN114157401B (zh) * | 2021-12-03 | 2024-01-23 | 中国人民解放军国防科技大学 | 一种支持长短两种报文格式的重传缓冲装置 |
CN117834755A (zh) * | 2024-03-04 | 2024-04-05 | 中国人民解放军国防科技大学 | 面向芯粒互连接口的协议层与适配器层间接口电路及芯片 |
CN117834755B (zh) * | 2024-03-04 | 2024-05-10 | 中国人民解放军国防科技大学 | 面向芯粒互连接口的协议层与适配器层间接口电路及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN102394732B (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102394732B (zh) | 一种多微包并行处理结构 | |
Plana et al. | A GALS infrastructure for a massively parallel multiprocessor | |
Galles | Spider: A high-speed network interconnect | |
CN100470496C (zh) | 用可变映射进行的通道测试 | |
CN100511192C (zh) | 用于具有位通道故障在线恢复的存储信道的方法、装置和系统 | |
CN103473196B (zh) | 一种1553b总线与星内设备总线间的遥测遥控数据传输装置 | |
CN102868604B (zh) | 一种应用于片上网络的二维Mesh双缓冲容错路由单元 | |
US7106742B1 (en) | Method and system for link fabric error detection and message flow control | |
CN102073606A (zh) | 数据通路和存储器设备之间的数据累积 | |
CN100583819C (zh) | 用于分组交换控制的集成电路和方法 | |
CN103618673A (zh) | 一种保障服务质量的片上网络路由方法 | |
JP5331898B2 (ja) | 並列計算用の通信方法、情報処理装置およびプログラム | |
US20110219280A1 (en) | Collective network for computer structures | |
CN103248467A (zh) | 基于片内连接管理的rdma通信方法 | |
US7031258B1 (en) | Digital data system with link level message flow control | |
US20110010522A1 (en) | Multiprocessor communication protocol bridge between scalar and vector compute nodes | |
CN105357147A (zh) | 一种高速高可靠的片上网络适配单元 | |
Plana et al. | SpiNNlink: FPGA-based interconnect for the million-core SpiNNaker system | |
US11637682B2 (en) | Extended sync network | |
CN104598430B (zh) | 一种cpu互联扩展系统的网络接口互联设计与控制系统 | |
CN117331881A (zh) | 一种适用于宇航chiplet互联协议的数据传输系统 | |
CN105262659A (zh) | 基于fpga芯片的hdlc协议控制器 | |
CN205092880U (zh) | 基于fpga芯片的hdlc协议控制器 | |
CN104484307B (zh) | 一种基于节点控制器fpga原型验证中的降频方法 | |
US11115147B2 (en) | Multichip fault management |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130918 Termination date: 20160906 |
|
CF01 | Termination of patent right due to non-payment of annual fee |