CN104484307B - 一种基于节点控制器fpga原型验证中的降频方法 - Google Patents
一种基于节点控制器fpga原型验证中的降频方法 Download PDFInfo
- Publication number
- CN104484307B CN104484307B CN201410684435.2A CN201410684435A CN104484307B CN 104484307 B CN104484307 B CN 104484307B CN 201410684435 A CN201410684435 A CN 201410684435A CN 104484307 B CN104484307 B CN 104484307B
- Authority
- CN
- China
- Prior art keywords
- message
- fpga
- frequency reducing
- prototype verification
- reducing method
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012795 verification Methods 0.000 title claims abstract description 30
- 230000008569 process Effects 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于节点控制器FPGA原型验证中的降频方法,涉及FPGA原型验证领域,该降频方法利用FIFO将输入的数据缓存起来,同时通过流控来控制对端系统发送的数据报文数量,其具体过程包括:在初始化过程中进行过滤的步骤,进行异步FIFO的步骤,基于重传buffer进行流控的步骤;能够有效降低传输速率,解决了FPGA在原型验证中固有频率不高的问题,实现FPGA可以以较低的速率与处理器系统等高速设备进行通信。
Description
技术领域
本发明涉及FPGA原型验证领域,尤其是涉及到处理器系统互连节点控制器通讯方面的领域,具体地说是一种基于节点控制器FPGA原型验证中的降频方法。
背景技术
Cache一致的分布式共享内存多处理器系统是当前一种重要的系统结构。目前处理器直接挂接内存,本身支持Cache一致性协议,因此在构建多处理器系统时,通常将这些处理器直连,由它们本身的协议维护处理器之间的一致性,并形成一个单一Cache一致性域。但是,由于协议规格、链路端口等限制,这样组成的单一域多处理器系统规模通常有限。为实现大规模的CC-NUMA多处理器系统,需借助节点控制器NC(Node Controller)扩大一致性域空间。
在FPGA原型验证节点控制器NC中,处理器系统传输速率要求比较高,而作为原型的FPGA往往不能够实现这个要求。在这种情况下,为了实现通信和验证要求,可以使用数据链路层的流控技术来实现降频操作。
发明内容
本方明针对现有技术存在的不足之处,提供一种基于节点控制器FPGA原型验证中的降频方法。
本发明所述基于节点控制器FPGA原型验证中的降频方法,其解决所述技术问题采用的技术方案是:该基于FPGA原型验证的数据链路降频方法,在多节点控制器系统中,利用FIFO将输入的数据缓存起来,同时通过流控来控制对端系统发送的数据报文数量,能够有效降低传输速率,从而实现FPGA可以以较低的速率与处理器系统等高速设备进行通信。该降频方法的具体过程包括:步骤一、在初始化过程中进行过滤的步骤,步骤二、进行异步FIFO的步骤,步骤三、基于重传buffer进行流控的步骤。
其中,所述在初始化过程中进行过滤,是指初始化过程中的握手信号,会相互发送一连串相同的报文,报文串进入FPGA之前变为并行的数据,将相同重复的报文进行滤掉。
所述进行异步FIFO,是指在并行进来的报文进入FIFO的存储器之前,对其进行一次压缩,使得并行进来的报文连续密集存放。
所述基于重传buffer进行流控,具体内容包括,发送端在非初始化过程中每传送一个有效报文时,同时存入重传buffer中,以备CRC出错时进行重传;接收端 每收到八个有效报文,ack将回传一次到发送端 ,发送端 每收到一个ack,重传buffer的尾地址增加8,从而使重传buffer的总数量减少8。
本发明所述基于节点控制器FPGA原型验证中的降频方法和现有技术相比具有的有益效果是:该降频方法采用FPGA硬件技术,完成通信中物理层和数据链路层的数据传输;在多节点控制器系统中利用该降频方法,很好的满足了数据链路层的各种操作,并能很好的用FPGA进行实现和验证,解决了FPGA在原型验证中固有频率不高的问题,实现了FPGA以较低的速率与处理器系统等高速设备进行通信。
附图说明
附图1为数据报文输入整理图;
附图2为数据的分配机制示意图;
附图3为每个小RAM的选择图;
附图4为重传buffer的原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参考附图,对本发明所述基于节点控制器FPGA原型验证中的降频方法进一步详细说明。
本发明所述基于节点控制器FPGA原型验证中的降频方法,该降频方法是基于FPGA原型验证的数据链路降频方法,在多节点控制器系统中,采用FPGA硬件技术,利用FIFO将输入的数据缓存起来,同时又通过流控来控制对端系统发送的数据报文数量,能够有效降低传输速率,从而实现FPGA可以以较低的速率与处理器系统等高速设备进行通信。其中,所述FIFO是First Input First Output的缩写,先入先出队列,是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
实施例1:
本实施例所述基于节点控制器FPGA原型验证中的降频方法,具体实现包括:步骤一、在初始化过程中进行过滤的步骤,步骤二、进行异步FIFO的步骤,步骤三、基于重传buffer进行流控的步骤。
本实施例中,所述在初始化过程中进行过滤,是指初始化过程中的握手信号,会相互发送一连串相同的报文,报文串进入FPGA之前变为并行的数据,将相同重复的报文进行滤掉。
所述进行异步FIFO,是指在并行进来的报文进入FIFO的存储器之前,对其进行一次压缩,使得并行进来的报文连续密集存放。所述FIFO的主要作用是用于缓存,由于并行过来的报文中含有大量随机的空报文,为了节省FIFO的存储空间,必须进行连续密集存放,因此,在进入FIFO的存储器之前,必须进行一次压缩。
所述基于重传buffer进行流控,具体内容包括,发送端在非初始化过程中每传送一个有效报文时,同时存入重传buffer中,以备CRC出错时进行重传;接收端 每收到八个有效报文,ack将回传一次到发送端 ,发送端 每收到一个ack,重传buffer的尾地址增加8,从而使重传buffer的总数量减少8。
实施例2:
本实施例所述基于节点控制器FPGA原型验证中的降频方法,在实施例1的基础上,步骤一所述在初始化过程中进行过滤,包括将一连串相同的报文替换为一个有效报文后缀一串空报文,即将重复性报文只保留一个,其后全部替换为空报文。
在初始化过程中进行过滤,可以用一个4 bit的矢量来进行标示,第一个标示为1,其他通过异或的办法全部标示为0,0在异步FIFO中将被认为为空flit标志。
实施3:
本实施例所述基于节点控制器FPGA原型验证中的降频方法,在实施例1的基础上,步骤二中,在并行进来的报文进入FIFO的存储器之前,对其进行一次压缩,进行压缩时采用数字电路中的分配器和选择器技术结合的办法进行实现。
理论上所述FIFO不会满,进行异步FIFO设计时只考虑其为空时的情况,非空标志作为该FIFO的读标志。所述异步FIFO设计,是基于FPGA内部动态存储器,对有效报文和空报文进行分类存储,并行输入四个报文宽度,称为四个flits,当异步FIFO中剩余报文小于四个flits时,读地址的增量必须为1,其他则递增为4。所述异步FIFO设计,也可以并行输入4个数据包单元,每个数据包单元称为一个flit;此异步FIFO要求读取频率可以小于写频率。
附图1为数据报文输入整理图,如附图1所示,RAM的总大小为256个flit, 分为四个深度为64的小RAM,附图1中p2、p3分别表示两类有效报文格式,他们将分别按序存放在两块小RAM中。在附图1中,p2报文占用地址为6,p3占用的地址为7。
为实现数据报文滤除的功能,需要对表示后的数据先按地址进行一次分配,然后按写使能信号进行选择。在附图1中,4个小RAM分别记作R1,R2,R3,R4。每个RAM的低2位地址作为小RAM的使能选择,以用于完成对4个小RAM进行读写。
以附图1为例,p2报文应该写入6地址,通过低2位地址(此处6的低2位为2’b10)确定出应该写往R3小RAM,用高地址(此处为6’b000001)作为该小RAM的写地址。同样,对于p3报文,写入的小RAM位置为R4.写入地址为6’b000001.
附图2为数据的分配机制示意图,具体表示数据的数字物理分配机制,如附图2所示,每个flit(图2中为p2)必须物理连接到四个小RAM,根据地址译码,只有一个写使能有效,p2报文到R2连接为有效实际连接。
附图3为每个小RAM的选择图,如附图3所示,R3的数据输入物理上连接并行四路数据,R3根据数据写使能信号,进行选择哪一路有效数据输入。只有在附图2和附图3中的路径同时有效的情况下,数据写入才真正有效。
FIFO的写地址的增量为每次写入的非空报文的数量,读地址的增量应该FIFO的输出端口的实际有效报文数量。因为FIFO的存储为密集型,故而在不是即将空的情况下,FIFO的读地址增量为4,在即将为空的情况下,增量为实际报文个数。但是在实际实施过程中,异步信号空标志产生比较复杂,因此在即将为空的情况下,读地址地增量降低为1。为了减少亚稳态的产生,异步FIFO的读写地址需要采用格雷码来实现。
实施例4:
本实施例所述基于节点控制器FPGA原型验证中的降频方法,在实施例1的基础上,步骤三所述基于重传buffer进行流控,具体包括重传接收端维护和发送端维护两部分,附图4为重传buffer的原理图,如附图4所示,重传接收端维护:
Eseq表示接收端下一个有效flit的期望序列号,无错误时,收到有效报文,Eseq每次增加1,有错误时,Eseq停止增长,并发送带有Eseq消息的request报文给对方,直到对方反馈acknowledge报文,重传flit。初始化握手交换报文时,接收端初始化Eseq为0,发送端发送重传 buffer大小给接收端。
NumAck是接收端正确接收到flit的计数值,每接收到1个非控制类型的flit时增加1;当NumAck>=8时,可以给发送端返回一个Ack信号,说明已经正确接收到8个flit,同时NumAck计数器减8。初始化时NumAck数值为0,至少数值可记录255。
所述发送端维护是指,发送端维护一个滑动窗口,其中:
WrPtr表示重传buffer的写地址;重传buffer中有每一个传输flit的备份。当有新flit需要发送时记录到重传Buffer中,WrPtr增加1(以buffer大小为模),当收到特殊的flit时停止增加。若发送端收到Requeset报文,立即停止增加,直至所有在重传buffer中的flit都被重传且RdPtr与WrPtr相等。
其中,RdPtr是一个重传序列中已经发送出去的报文位置指针,收到重传报文时,这个指针被Request报文中的Eseq号所替换。
TailPtr指针指向重传序列中最远有效条目,Tail与WrPtr之间的差为当前重传Buffer中的占据条目。Link Retry(连接重试)使用应答方式,接收端发送ACK应答给发送端,应答的Ack bit包含在反方向的报文中。当返回一个Ack应答信号时,说明8个flit正确接收,TailPtr向前移动8,移除重传buffer中已经正确接收的flit。重传协议需求重传buffer数量要大于ack数量。
NumFreeBuf表示重传buffer中的空项数量,当存储一个传输flit时,数值减一,当接收到Ack时数值加8;初始化和reset时,数值为重传buffer大小,最大值为255。
通过实施例1和实施例2,对本发明所述基于节点控制器FPGA原型验证中的降频方法有了详细的了解,可知,该降频方法是基于FPGA原型验证的数据链路降频方法,基于CRC的重传结构,通过回传ack释放重传buffer,基于握手的初始化方式,通过虚信道进行流控,发送端的数据速率大于或者等于接收端。
数据链路层在传送过程中,首先要完成初始化,在初始化过程中,会发送初始化握手报文,并会反复发送多个相同的报文,并在没有报文发送时会发送空报文。在初始化时,数据报文进入缓存FIFO之前,必须过滤掉多余重复的报文,同时必须过滤掉所有空的和无用的报文。
当发送端和接收端速率不匹配时,需要在接收输入端增加一个异步的缓存FIFO。在数据传送过程中,空报文会随机的混在有效数据之中,在缓存FIFO中,必须对有效报文进行压缩,即FIFO输入为数据稀疏型,输出为数据密集型。必须用多个小存储器组合成一个大存储器,才能进行数据报文的压缩。因此每次读出报文个数大于或者等于1,如果不做处理,读地址和写地址无法进行比较,无法判断FIFO空标志信号。因此,在设计时,在异步FIFO即将为空时,强迫读地址只能递增1。
在数据链路层传输过程中,有重传的操作,在每个链路层发送端都有一个重传buffer,当接收端成功接收一个有效报文,将会发送给对方一个ack作为对重传buffer的释放。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (7)
1.一种基于节点控制器FPGA原型验证中的降频方法,基于FPGA原型验证的数据链路降频方法,其特征在于,在多节点控制器系统中,利用FIFO将输入的数据缓存起来,同时通过流控来控制对端系统发送的数据报文数量,实现FPGA以较低的速率与处理器系统高速设备进行通信;
该降频方法的具体过程包括:在初始化过程中进行过滤的步骤,进行异步FIFO的步骤,以及基于重传buffer进行流控的步骤;
所述基于重传buffer进行流控,包括发送端在非初始化过程中每传送一个有效报文时,同时存入重传buffer中;接收端每收到八个有效报文,ack将回传一次到发送端,发送端每收到一个ack,重传buffer的尾地址增加8。
2.根据权利要求1所述一种基于节点控制器FPGA原型验证中的降频方法,其特征在于,所述在初始化过程中进行过滤,是指初始化过程中的握手信号,会相互发送一连串相同的报文,报文串进入FPGA之前变为并行的数据,将相同重复的报文进行滤掉。
3.根据权利要求1所述一种基于节点控制器FPGA原型验证中的降频方法,其特征在于,所述进行异步FIFO,是指在并行进来的报文进入FIFO的存储器之前,对其进行一次压缩,使得并行进来的报文连续密集存放。
4.根据权利要求2或3所述一种基于节点控制器FPGA原型验证中的降频方法,其特征在于,所述在初始化过程中进行过滤,包括将一连串相同的报文替换为一个有效报文后缀一串空报文,即将重复性报文只保留一个,其后全部替换为空报文。
5.根据权利要求4所述一种基于节点控制器FPGA原型验证中的降频方法,其特征在于,在初始化过程中进行过滤,用一个4bit的矢量来进行标示,第一个标示为1,其他通过异或的办法全部标示为0,0在异步FIFO中将被认为为空flit标志。
6.根据权利要求3所述一种基于节点控制器FPGA原型验证中的降频方法,其特征在于,在并行进来的报文进入FIFO的存储器之前,对其进行一次压缩,进行压缩时采用数字电路中的分配器和选择器技术结合的办法。
7.根据权利要求6所述一种基于节点控制器FPGA原型验证中的降频方法,其特征在于,所述进行异步FIFO,是基于FPGA内部动态存储器,对有效报文和空报文进行分类存储,并行输入四个报文宽度,称为四个flits,当异步FIFO中剩余报文小于四个flits时,读地址的增量必须为1,其他则递增为4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410684435.2A CN104484307B (zh) | 2014-11-25 | 2014-11-25 | 一种基于节点控制器fpga原型验证中的降频方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410684435.2A CN104484307B (zh) | 2014-11-25 | 2014-11-25 | 一种基于节点控制器fpga原型验证中的降频方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104484307A CN104484307A (zh) | 2015-04-01 |
CN104484307B true CN104484307B (zh) | 2017-09-22 |
Family
ID=52758850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410684435.2A Active CN104484307B (zh) | 2014-11-25 | 2014-11-25 | 一种基于节点控制器fpga原型验证中的降频方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484307B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591844B (zh) * | 2016-03-08 | 2019-03-08 | 烽火通信科技股份有限公司 | 基于ptn芯片降频实现oam自动化验证的方法 |
CN109634256B (zh) * | 2018-11-28 | 2020-08-04 | 北京时代民芯科技有限公司 | 一种通用can控制器芯片的板级验证系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122259A (zh) * | 2011-03-03 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种高端容错计算机原型验证系统及验证方法 |
CN103514134A (zh) * | 2013-10-22 | 2014-01-15 | 浪潮电子信息产业股份有限公司 | 一种芯片原型验证报文随机传输方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8839179B2 (en) * | 2010-02-12 | 2014-09-16 | Synopsys Taiwan Co., LTD. | Prototype and emulation system for multiple custom prototype boards |
US8719762B2 (en) * | 2010-02-12 | 2014-05-06 | Synopsys Taiwan Co., LTD. | Method and apparatus for turning custom prototype boards into co-simulation, co-emulation systems |
-
2014
- 2014-11-25 CN CN201410684435.2A patent/CN104484307B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122259A (zh) * | 2011-03-03 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种高端容错计算机原型验证系统及验证方法 |
CN103514134A (zh) * | 2013-10-22 | 2014-01-15 | 浪潮电子信息产业股份有限公司 | 一种芯片原型验证报文随机传输方法 |
Non-Patent Citations (2)
Title |
---|
RapidIO高速互连接口PCS层的设计与验证;黄宇浩;《中国优秀硕士论文全文数据库 信息科技辑》;20110515;第42页第4节,图4.1 * |
异步FIFO在FPGA与DSP通信中的运用;胡波 等;《电子科技》;20110331;第24卷(第3期);第53页摘要 * |
Also Published As
Publication number | Publication date |
---|---|
CN104484307A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5301186A (en) | High speed transmission line interface | |
US8174977B2 (en) | End-to-end flow control in a network | |
CN106257434B (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
US9432288B2 (en) | System on chip link layer protocol | |
CN103905300B (zh) | 一种数据报文发送方法、设备及系统 | |
CN109936510A (zh) | 多路径rdma传输 | |
CN104731733B (zh) | 用于跨数据处理系统的接口的频率确定的系统和方法 | |
CN106502932B (zh) | 基于分层结构的片间互联接口及其写操作和读操作的方法 | |
CN111030747B (zh) | 一种基于FPGA的SpaceFibre节点IP核 | |
CN102473115A (zh) | 用于高效数据处理的装置和方法 | |
CN103297186A (zh) | 数据传送设备、数据传送系统和数据传送方法 | |
CN104484295A (zh) | 并行计算机系统中基于接收方滑动窗口的数据传输方法 | |
CN102394732B (zh) | 一种多微包并行处理结构 | |
CN102473117A (zh) | 用于存储器管理和高效数据处理的装置和方法 | |
CN104506280B (zh) | 一种基于时分多址接入空间动态网络的可靠数据传输方法 | |
CN109347598A (zh) | 校验码处理方法、电子设备及存储接介质 | |
CN102185833A (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN104731757B (zh) | 用于基于已删除命令确定命令速率的系统和方法 | |
CN103368703B (zh) | 数据包重传方法、数据包接收方法及装置 | |
CN105786734B (zh) | 数据传输的方法、扩展装置、外围设备及系统 | |
CN104484307B (zh) | 一种基于节点控制器fpga原型验证中的降频方法 | |
CN103685578A (zh) | 主从设备的数据传输方法 | |
CN112350897B (zh) | 基于动态连接端到端可靠传输协议的网络测试装置 | |
CN101304296B (zh) | 网络装置及其传输方法 | |
CN106372013B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |