CN104468156A - 一种利用时隙仲裁节省资源开销的方法和设备 - Google Patents
一种利用时隙仲裁节省资源开销的方法和设备 Download PDFInfo
- Publication number
- CN104468156A CN104468156A CN201310420988.2A CN201310420988A CN104468156A CN 104468156 A CN104468156 A CN 104468156A CN 201310420988 A CN201310420988 A CN 201310420988A CN 104468156 A CN104468156 A CN 104468156A
- Authority
- CN
- China
- Prior art keywords
- data
- ram
- receiver module
- buffer
- address space
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/17744—Structural details of routing resources for input/output signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Transfer Systems (AREA)
- Time-Division Multiplex Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种利用时隙仲裁节省资源开销的方法和设备,该方法应用于可编程逻辑阵列FPGA逻辑芯片,所述FPGA逻辑芯片包括N个处理功能完全相同的接收模块和一个调度模块SCH,N个接收模块通过各自的IF接口接收数据,并将其写入先进先出DATAQ缓存中;N个接收模块通过各自的SELECT子功能模块从DATAQ缓存每时隙读取B比特数据,并写入SCH的数据存储器BUFFER,所述BUFFER由M块RAM拼接实现,所述M块RAM顺序编号,且每块RAM划分地址空间,每块RAM的地址空间顺序编号,所述时隙由SCH的TIMERSLOT分配,周期为N;SCH通过MAC子模块从BUFFER中读取数据,对其进行处理,发送出去;所述MAC子模块每次同时读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同。
Description
技术领域
本发明涉及网络通信传输技术,特别是一种利用时隙仲裁节省资源开销的方法和设备。
背景技术
在通信技术应用中,经常涉及到需要对多个接口或者模块进行功能处理,而这些功能处理模块方法相同。
比如:某个芯片外接32个E1口,这些E1口功能处理相同;又比如某个芯片外挂16个吉比特以太网口(GE,gigabit ethernet),这些GE口的处理功能也相同。
最初在实现上,分别用多个相同处理功能模块实现;随着芯片功能优化实现,需要考虑把这些功能相同的接口模块用一个高带宽的功能模块实现,而不是做成多个功能模块,以便节省硬件资源开销。
以16个GE口的接收侧功能为例,先用16个接口(interface,简记为IF)实现接收数据,同时把接口8bit的数据用寄存器打拍成256bit的数据存入先进先出数据队列DATAQ中。也即每接收256/8=32个时钟周期的数据,向DATAQ中写一次,每次写256bit的数据,每个时钟的接收数据为8bit。
然后,用一个公平轮询端口(RR,Round Robin)轮询模块依次读出16个DATAQ中的数据,并存入BUFFER中,功能图如图1所示,在16个端口的数据汇总到一个BUFFER中后,再实现GE MAC功能,包含循环冗余校验CRC运算,报文长度检测,帧信息提取等等。
通过RR轮询调度的方式,原本需要多个MAC一起来实现,现在只需要一个高处理性能的MAC了,大大节省了芯片资源开销。
RR轮询模块需要从16个接收接口中读取数据,处理相当复杂,硬件时序也很难跑上去,资源也由于总线位宽宽消耗也较大。
由于接收模块的随机存储器RAM位宽宽,需要多个RAM来拼接实现256位宽的RAM,而各个MAC接收数据的FIFO不起缓存吸收的作用,导致多消耗很多RAM资源。
发明内容
有鉴于此,本发明提出了一种利用时隙仲裁节省资源开销的方法及设备,利用时隙划分的方法,解决多个模块数据总线共享,从而不需要复杂的端口轮询电路。并且利用RAM双端口的特点,调用多块RAM,各个接收模块对BUFFER的单块RAM单次写入位宽较小的数据,MAC子模块同时对BUFFER中的多个RAM读出,实现了较小位宽到较大位宽的位宽变换,大大节省了逻辑查找表资源开销。
本发明提出的技术方案为:
一种利用时隙仲裁节省资源开销的方法,该方法应用于可编程逻辑阵列FPGA逻辑芯片,所述FPGA逻辑芯片包括N个处理功能完全相同的接收模块和一个调度模块SCH,所述N个接收模块顺序编号,所述接收模块包括IF接口、先进先出FIFO缓存队列DATAQ、SELECT子功能模块,所述调度模块包括时序产生器TIMERSLOT、数据存储器BUFER、MAC子模块,该方法包括以下步骤:
所述N个接收模块通过各自的IF接口接收数据,并将其写入先进先出DATAQ缓存中,所述先进先出DATAQ缓存由单块静态随机存储器RAM实现,所述RAM位宽为B比特;
所述N个接收模块通过各自的SELECT子功能模块从DATAQ缓存每时隙读取B比特数据,并写入调度模块SCH的数据存储器BUFFER,所述BUFFER由M块RAM拼接实现,所述M块RAM顺序编号,且每块RAM划分地址空间,每块RAM的地址空间顺序编号,所述时隙由SCH的TIMERSLOT分配,周期为N;
所述调度模块通过MAC子模块从BUFFER中读取数据,对其进行处理,发送出去;所述MAC子模块每次同时读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同。
上述方案中,所述N个接收模块通过各自的SELECT子功能模块将数据从DATAQ缓存读出,并写入SCH的BUFFER中时,该方法进一步包括:
每个时隙内每个接收模块分别写操作BUFFER的一块RAM,以第一个接收模块写操作的RAM编号为准,后续接收模块写操作的RAM编号依次加1,RAM编号达到最大值后从第一块RAM编号开始依次加1;
每个时隙内每个接收模块分别写操作RAM的一个地址空间,以第一个接收模块写操作的地址空间编号为准,后续接收模块写操作的RAM的地址空间编号依次加1。
上述方案中,所述SCH通过MAC子模块从BUFFER中读取数据,如果读出的数据不是第一个接收模块存储到BUFFER中的数据,该方法进一步包括:
将读取的初始数据的低S字节作为真实数据的高S字节,初始数据的高L字节作为真实数据的低L字节,所述L为读取出的数据对应的接收模块的编号,且S+L=M。
一种FPGA芯片,所述FPGA逻辑芯片包括N个处理功能完全相同的接收模块和一个调度模块SCH,所述N个接收模块顺序编号,所述接收模块包括IF接口、先进先出FIFO缓存队列DATAQ、SELECT子功能模块,所述调度模块包括时序产生器TIMERSLOT、数据存储器BUFER、MAC子模块,该设备包括:
IF接口,用于接收数据并将其写入先进先出DATAQ缓存中;
DATAQ缓存,用于存储数据,所述先进先出DATAQ缓存由单块静态随机存储器RAM实现,所述RAM位宽为B比特;
时序产生器,用于分配时隙,周期为N;
SELECT子功能模块,用于从DATAQ缓存每时隙读取B比特数据,并写入调度模块SCH的数据存储器BUFFER;
MAC子模块,用于从BUFFER中读取数据,对其进行处理,发送出去;所述MAC子模块每次同时读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同;
数据存储器BUFFER,用于存储数据,所述数据存储器BUFFER由M块RAM拼接实现,所述M块RAM顺序编号,且每块RAM划分地址空间,每块RAM的地址空间顺序编号。
上述方案中,所述N个接收模块通过各自的SELECT子功能模块将数据从DATAQ缓存读出,并写入SCH的BUFFER中时,所述SELECT子功能模块进一步用于:
每个时隙内每个接收模块分别写操作BUFFER的一块RAM,以第一个接收模块写操作的RAM编号为准,后续接收模块写操作的RAM编号依次加1,RAM编号达到最大值后从第一块RAM编号开始依次加1;
每个时隙内每个接收模块分别写操作RAM的一个地址空间,以第一个接收模块写操作的地址空间编号为准,后续接收模块写操作的RAM的地址空间编号依次加1。
上述方案中,所述SCH通过MAC子模块从BUFFER中读取数据,如果读出的数据不是第一个接收模块存储到BUFFER中的数据,MAC子模块进一步用于:
将读取的初始数据的低S字节作为真实数据的高S字节,初始数据的高L字节作为真实数据的低L字节,所述L为读取出的数据对应的接收模块的编号,且S+L=M。
综上所述,本发明公开的技术方案能够利用时隙划分解决多个模块数据总线共享,而不使用复杂的端口轮询电路,且利用RAM双端口的特点,调用多块RAM,各个接收模块对BUFFER的单块RAM单次写入位宽较小的数据,MAC子模块同时对BUFFER中的多个RAM读出,实现较小位宽到较大位宽的位宽变换,大大节省了逻辑查找表资源开销。
附图说明
图1为采用端口轮询方法的功能框图。
图2为采用时隙分配方法的功能框图。
图3为数据存储示意图。
图4为时隙操作示意图。
图5为方法实施例一的流程图。
图6为方法实施例一的数据存储示意图。
图7为本发明方案的设备结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明的技术方案是:N个接收模块通过各自的IF接口接收数据,并将其写入先进先出DATAQ缓存中,所述先进先出DATAQ缓存由单块静态随机存储器RAM实现,所述RAM位宽为B比特;
所述N个接收模块通过各自的SELECT子功能模块从DATAQ缓存每时隙读取B比特数据,并写入调度模块SCH的数据存储器BUFFER,所述BUFFER由M块RAM拼接实现,所述M块RAM顺序编号,且每块RAM划分地址空间,每块RAM的地址空间顺序编号,所述时隙由SCH的TIMERSLOT分配,周期为N;
所述调度模块通过MAC子模块从BUFFER中读取数据,对其进行处理,发送出去;所述MAC子模块每次同时读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同。
本发明FPGA逻辑芯片包括N个处理功能完全相同的接收模块和一个调度模块SCH,所述N个接收模块从0开始顺序编号,所述接收模块包括IF接口、先进先出FIFO缓存队列DATAQ、SELECT子功能模块,所述调度模块包括时序产生器TIMERSLOT、数据存储器BUFER、MAC子模块。
调度模块BUFFER采用M块RAM拼接实现,每块RAM位宽为B比特,所述M块RAM从0开始顺序编号,每块RAM划分成若干地址空间,每块RAM划分的地址空间丛0开始顺序编号。RAM具有双端口的特点,既可以对RAM进行写操作,也可以对其进行读操作。本发明采用时隙分配的设计,调度模块SCH的时序产生器TIMERSLOT分配时隙,周期为N(与接收模块的个数相同)。每个时隙内每个接收模块对BUFFER的单块RAM进行写操作,每次每个接收模块写入一块RAM的一个地址空间,每次写入B比特,每个接收模块执行写操作的BUFFER中的RAM编号互不相同。每个时隙内每个接收模块写操作的RAM编号,以编号为0的接收模块写操作的RAM编号为准,后续接收模块写操作的RAM编号依次加1,RAM编号达到M-1后从0开始依次加1;
每个时隙内每个接收模块写操作的RAM的地址空间编号,以编号为0的接收模块写操作的地址空间编号为准,后续接收模块写操作的地址空间编号依次加1。
从BUFFER中读数据时,MAC子模块每次同时读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同。即MAC子模块每次同时对M块RAM执行读操作,每次读M×B比特数据。这样就实现了较小位宽到较大位宽的位宽变换,大大节省了逻辑查找表资源开销。以图2的功能框图中16个GE接收模块为例,BUFFER由32块位宽8bit的RAM拼接而成,具体操作如下:
对于第0个GE接收模块GE_RX0:
在第0时隙,对于第0个GE接收模块GE_RX0可以写第0和第16块RAM的第0地址空间;
在第1时隙,对于第0个GE接收模块GE_RX0可以写第1和第17块RAM的第0地址空间;
......
在第15时隙,对于第0个GE接收模块GE_RX0可以写第15和第31块RAM的第0地址空间;
对于第1个GE接收模块GE_RX1:
在第0时隙,对于第1个GE接收模块GE_RX1可以写第1和第17块RAM第1地址空间;
在第1时隙,对于第1个GE接收模块GE_RX1可以写第2和第18块RAM第1地址空间;
......
在第15时隙,对于第1个GE接收模块GE_RX1可以写第0和第16块RAM第1地址空间;
......
对于第15个GE接收模块GE_RX15:
在第0时隙,对于第15个GE接收模块GE_RX15可以写第15和第31块RAM第15地址空间;
在第1时隙,对于第15个GE接收模块GE_RX15可以写第16和第0块RAM第15地址空间;
......
在第15时隙,对于第15个GE接收模块GE_RX15可以写第14和第30块RAM第15地址空间。
存储空间示意图如图3所示,操作时隙示意图如图4所示。
MAC子模块从BUFFER中读取数据时,每次读取32×8比特,如图3中粗线框所示,每次读取32块RAM,每块RAM读取一个地址空间,且读取数据的32块RAM的地址空间编号相同。如果读出的数据不是编号为0的接收模块存储到BUFFER中的数据,则需要对读出的数据进行移位处理:将读取的初始数据的低S字节作为真实数据的高S字节,初始数据的高L字节作为真实数据的低L字节,所述L为读取出的数据对应的接收模块的编号,且S+L=M,这里,第0块RAM存储的是高位数据,第31块RAM存储的是低位数据。例如,MAC子模块读取编号为15的接收模块GE_RX15存储在BUFFER中的数据,则L=15,又M=32,所以S=17,于是将读出的初始数据的低17字节数据作为真实数据的高17字节数据,将读取的初始数据的高15字节数据作为真实数据的低15字节数据,即REAL_RDATA[255:0]={INI_RDATA[135:0],INI_RDATA[255:136]},这里数据从高到低有效。
方法实施例一
本实施例以16个GE口的接收侧功能为例对高带宽的复用功能模块的实现方法进行说明。
假设本实施例的功能框图如图2所示,GE0~GE15代表外部接口,GE_RX0~GE_RX15为16个功能相同的接收模块,SCH为调度模块。每个接收模块由IF接口、DATAQ缓存和SELECT子模块组成,调度模块SCH由TIMERSLOT子模块、BUFFER存储单元和MAC子模块组成。其中,DATAQ缓存由单块RAM实现,位宽为8bit,BUFFER由32块位宽为8bit的RAM拼接实现,总位宽为256bit;接收模块与调度模块均工作在125MHz,图中外部接口与IF接口之间、IF接口与DATAQ缓存之间的125MHz为同一个时钟源,调度模块的各个子模块之间的125MHz是另外一个时钟源,两个时钟域之间的数据传递需要用异步FIFO实现。
图5为本实施例的流程图,16个外部接口负责将接收到的数据发送给各自对应的接收模块;IF接口负责将来自外部接口的数据存储到DATAQ缓存中,SCH模块实现从16个GE接收模块按照时隙分配的方式调度出数据到BUFFER中,再通过GE MAC处理功能模块实现以太帧数据解析、信息提取、统计以及CRC校验等功能。外部接口将数据发送给接收模块的IF接口,IF接口将数据按照先进先出原则存储在DATAQ缓存中,SELECT子模块根据分配到的时隙操作SCH模块中的32块RAM,各个接收模块分别将各自DATAQ中的数据按照先进先出原则写入BUFFER中。
图6为本实施例的数据存储示意图,每块RAM的不同地址空间以0、1、2…顺序编号,如图6所示。本实施例以第0、1两个接收模块GE_RX0与GE_RX1、各自报文长度为65字节为例对本发明方案进行说明,为了方便理解,报文字节定义从0开始,也即报文的首字节定义为第0字节,后面字节依次累加。16个时隙按照时钟节拍,周期性运行。包括以下步骤:
步骤501:IF接口把数据写入DATAQ缓存中。
本步骤中,第0接收模块GE_RX0与第1接收模块GE_RX1各自通过IF接口分别接收65字节的数据,并将其写入先进先出DATAQ缓存中,每个接收模块每次存入8bit数据,65字节共占据DATAQ缓存65个地址空间,所述先进先出DATAQ缓存由单块静态随机存储器RAM实现,所述RAM位宽为8比特。
步骤502:TIMERSLOT模块进行循环计数,周期为16,把16个周期当作16个时隙,依次分配给16个接收模块的SELECT子功能模块。
本步骤中,调度模块SCH的时序产生器TIMERSLOT分配时隙,周期为16,使得16个接收模块根据分配的时隙将数据写入数据存储BUFFER相应编号的RAM中。
步骤503:SELECT子功能模块,根据分配到的时隙操作SCH模块中的32块(定义系列为0~31)RAM,操作如下:
第0时隙:第0接收模块GE_RX0操作第0块RAM的第0地址空间,写数据报文的第0个字节(0-0)字节;第1接收模块GE_RX1操作第1块RAM的第1地址空间,写数据报文的第0个字节(1-0)字节;
第1时隙:第0接收模块GE_RX0操作第1块RAM的第0地址空间,写数据报文的第1个字节(0-1)字节;第1接收模块GE_RX1操作第2块RAM的第1地址空间,写数据报文的第1个字节(1-1)字节;
第2时隙:第0接收模块GE_RX0操作第2块RAM的第0地址空间,写数据报文的第2个字节(0-2)字节;第1接收模块GE_RX1道操作第3块RAM的第1地址空间,写数据报文的第2个字节(1-2)字节;
……
第14时隙:第0接收模块GE_RX0操作第14块RAM的第0地址空间,写数据报文的第14个字节(0-14)字节;第1接收模块GE_RX1操作第15块RAM的第1地址空间,写数据报文的第14个字节(1-14)字节;
第15时隙:第0接收模块GE_RX0操作第15块RAM的第0地址空间,写数据报文的第15个字节(0-15)字节;第1接收模块GE_RX1操作第16块RAM的第1地址空间,写数据报文的第15个字节(1-15)字节。
至此,TIMERSLOT模块已分配给接收模块一个周期的时隙,进入下一个周期,从第0时隙开始:
第0时隙:第0接收模块GE_RX0操作第16块RAM的第0地址空间,写数据报文的第16个字节(0-16)字节;第1接收模块GE_RX1操作第17块RAM的第1地址空间,写数据报文的第16个字节(1-16)字节;
……
第14时隙:第0接收模块GE_RX0操作第30块RAM的第0地址空间,写数据报文的第30个字节(0-30)字节;第1接收模块GE_RX1操作第31块RAM的第1地址空间,写数据报文的第30个字节(1-30)字节;
第15时隙:第0接收模块GE_RX0操作第31块RAM的第0地址空间,写数据报文的第31个字节(0-31)字节;第1接收模块GE_RX1操作第0块RAM的第1地址空间,写数据报文的第31个字节(1-31)字节。
至此,TIMERSLOT模块已分配给接收模块两个周期的时隙,进入第三个周期,从第0时隙开始:
第0时隙:第0接收模块GE_RX0操作第0块RAM的第16地址空间,写数据报文的第32个字节(0-32)字节;第1接收模块GE_RX1操作第1块RAM的第17地址空间,写数据报文的第32个字节(1-32)字节;
……
第14时隙:第0接收模块GE_RX0操作第14块RAM的第16地址空间,写数据报文的第46个字节(0-46)字节;第1接收模块GE_RX1操作第15块RAM的第17地址空间,写数据报文的第46个字节(1-46)字节;
第15时隙:第0接收模块GE_RX0操作第15块RAM的第16地址空间,写数据报文的第47个字节(0-47)字节;第1接收模块GE_RX1操作第16块RAM的第17地址空间,写数据报文的第47个字节(1-47)字节。
至此,TIMERSLOT模块已分配给接收模块三个周期的时隙,进入第四个周期,从第0时隙开始:
第0时隙:第0接收模块GE_RX0操作第16块RAM的第16地址空间,写数据报文的第48个字节(0-48)字节;第1接收模块GE_RX1操作第17块RAM的第17地址空间,写数据报文的第48个字节(1-48)字节;
……
第14时隙:第0接收模块GE_RX0操作第30块RAM的第16地址空间,写数据报文的第62个字节(0-62)字节;第1接收模块GE_RX1操作第31块RAM的第17地址空间,写数据报文的第62个字节(1-62)字节;
第15时隙:第0接收模块GE_RX0操作第31块RAM的第16地址空间,写数据报文的第63个字节(0-63)字节;第1接收模块GE_RX1操作第0块RAM的第17地址空间,写数据报文的第63个字节(1-63)字节。
至此,TIMERSLOT模块已分配给接收模块四个周期的时隙,进入第五个周期,从第0时隙开始:
第0时隙:第0接收模块GE_RX0操作第0块RAM的第32地址空间,写数据报文的第64个字节(0-64)字节;第1接收模块GE_RX1操作第1块RAM的第33地址空间,写数据报文的第64个字节(1-64)字节。
至此,第0接收模块GE_RX0的65字节数据以及第1接收模块GE_RX1的65字节数据全部存储到调度模块SCH的BUFFER中,存储空间示意图如图6所示,图中32块RAM的第0地址空间全部、32块RAM的第16地址空间全部、第0块RAM的第32地址空间用来存储第0接收模块GE_RX0的65字节,图中32块RAM的第1地址空间全部、32块RAM的第17地址空间全部、第0块RAM的第33地址空间用来存储第1接收模块GE_RX1的65字节。
步骤504:MAC子模块读取BUFFER中的数据,实现以太帧数据解析,信息提起,统计以及CRC校验等功能。
本步骤中,MAC子模块每次读取32块RAM的一个地址空间的数据,即每次读取32×8bit=256bit数据。
第一次读取数据时,将32块RAM的第0地址空间的数据读出,把读出的初始数据INI_RDATA[255:0]当成真实的数据REAL_RDATA[255:0]直接处理即可;
第二次读取数据时,将32块RAM的第1地址空间的数据读出,由图4可以看出,第1地址空间的数据存储顺序并非第1接收模块GE_RX1存入BUFFER中的数据顺序,需要把初始数据进行移位处理,需要把低30字节作为真实数据的高30字节,高1字节作为真实数据的低1字节处理,也即:REAL_RDATA[255:0]={INI_RDATA[247:0],INI_RDATA[255:248]},这里数据从高到低有效;同样,读取第17地址空间的数据时需要做相同的移位处理。
本实施例仅以第0接收模块GE_RX0和第1接收模块GE_RX1的数据处理为例,如果第15接收模块GE_RX15的65字节存储到BUFFER中,MAC子模块读取时也需要移位处理,需要把低17字节作为真实数据的高17字节,高15字节作为真实数据的低15字节处理,也即:REAL_RDATA[255:0]={INI_RDATA[135:0],INI_RDATA[255:136]},这里数据从高到低有效。
针对上述方法,本发明还公开一种FPGA芯片设备。本发明公开的设备如图6所示,包括:
IF接口701,用于接收数据并将其写入DATAQ缓存中。
DATAQ缓存702,用于存储数据,由单块静态随机存储器RAM实现,所述RAM位宽为B比特。
SELECT子功能模块703,用于根据分配到的时隙操作SCH模块中的数据存储器BUFFER,每个时隙内每个接收模块对BUFFER的单块RAM进行写操作,每次写入单块RAM的一个地址空间,每个接收模块执行写操作的RAM对象互不相同,每个接收模块的数据写入不同RAM的同一地址空间,每个时隙内写入的RAM编号,以首接收模块写入的RAM编号为准,后续接收模块写入的RAM编号依次加1,RAM编号达到M后从1开始依次加1;每个时隙内每个接收模块写入数据的RAM的地址空间编号,以首接收模块写入的地址空间编号为准,后续接收模块写入的地址空间编号依次加1。
时序产生器704,用于分配时隙,周期为N。
BUFFER存储器705,用于存储数据,由M块静态随机存储器RAM拼接实现,所述M块静态随机存储器RAM顺序编号,每块RAM的地址空间顺序编号。
MAC子模块706,用于从数据存储器BUFFER中读取数据,对其进行处理,发送出去;所述MAC子模块每次读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同;还用于将读取的初始数据的低S字节作为真实数据的高S字节,初始数据的高L字节作为真实数据的低L字节,所述L为读取出的数据对应的接收模块的编号,且S+L=M。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种利用时隙仲裁节省资源开销的方法,其特征在于,该方法应用于可编程逻辑阵列FPGA逻辑芯片,所述FPGA逻辑芯片包括N个处理功能完全相同的接收模块和一个调度模块SCH,所述N个接收模块顺序编号,所述接收模块包括IF接口、先进先出FIFO缓存队列DATAQ、SELECT子功能模块,所述调度模块包括时序产生器TIMERSLOT、数据存储器BUFER、MAC子模块,该方法包括以下步骤:
所述N个接收模块通过各自的IF接口接收数据,并将其写入先进先出DATAQ缓存中,所述先进先出DATAQ缓存由单块静态随机存储器RAM实现,所述RAM位宽为B比特;
所述N个接收模块通过各自的SELECT子功能模块从DATAQ缓存每时隙读取B比特数据,并写入调度模块SCH的数据存储器BUFFER,所述BUFFER由M块RAM拼接实现,所述M块RAM顺序编号,且每块RAM划分地址空间,每块RAM的地址空间顺序编号,所述时隙由SCH的TIMERSLOT分配,周期为N;
所述调度模块通过MAC子模块从BUFFER中读取数据,对其进行处理,发送出去;所述MAC子模块每次同时读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同。
2.根据权利要求1所述的方法,其特征在于,所述N个接收模块通过各自的SELECT子功能模块将数据从DATAQ缓存读出,并写入SCH的BUFFER中时,该方法进一步包括:
每个时隙内每个接收模块分别写操作BUFFER的一块RAM,以第一个接收模块写操作的RAM编号为准,后续接收模块写操作的RAM编号依次加1,RAM编号达到最大值后从第一块RAM编号开始依次加1;
每个时隙内每个接收模块分别写操作RAM的一个地址空间,以第一个接收模块写操作的地址空间编号为准,后续接收模块写操作的RAM的地址空间编号依次加1。
3.根据权利要求1所述的方法,其特征在于,所述SCH通过MAC子模块从BUFFER中读取数据,如果读出的数据不是第一个接收模块存储到BUFFER中的数据,该方法进一步包括:
将读取的初始数据的低S字节作为真实数据的高S字节,初始数据的高L字节作为真实数据的低L字节,所述L为读取出的数据对应的接收模块的编号,且S+L=M。
4.一种FPGA芯片,所述FPGA逻辑芯片包括N个处理功能完全相同的接收模块和一个调度模块SCH,所述N个接收模块顺序编号,所述接收模块包括IF接口、先进先出FIFO缓存队列DATAQ、SELECT子功能模块,所述调度模块包括时序产生器TIMERSLOT、数据存储器BUFER、MAC子模块,该设备包括:
IF接口,用于接收数据并将其写入先进先出DATAQ缓存中;
DATAQ缓存,用于存储数据,所述先进先出DATAQ缓存由单块静态随机存储器RAM实现,所述RAM位宽为B比特;
时序产生器,用于分配时隙,周期为N;
SELECT子功能模块,用于从DATAQ缓存每时隙读取B比特数据,并写入调度模块SCH的数据存储器BUFFER;
MAC子模块,用于从BUFFER中读取数据,对其进行处理,发送出去;所述MAC子模块每次同时读取M块RAM,每块RAM读取一个地址空间,且读取数据的M块RAM的地址空间编号相同;
数据存储器BUFFER,用于存储数据,所述数据存储器BUFFER由M块RAM拼接实现,所述M块RAM顺序编号,且每块RAM划分地址空间,每块RAM的地址空间顺序编号。
5.根据权利要求4所述的设备,其特征在于,所述N个接收模块通过各自的SELECT子功能模块将数据从DATAQ缓存读出,并写入SCH的BUFFER中时,所述SELECT子功能模块进一步用于:
每个时隙内每个接收模块分别写操作BUFFER的一块RAM,以第一个接收模块写操作的RAM编号为准,后续接收模块写操作的RAM编号依次加1,RAM编号达到最大值后从第一块RAM编号开始依次加1;
每个时隙内每个接收模块分别写操作RAM的一个地址空间,以第一个接收模块写操作的地址空间编号为准,后续接收模块写操作的RAM的地址空间编号依次加1。
6.根据权利要求4所述的设备,其特征在于,所述SCH通过MAC子模块从BUFFER中读取数据,如果读出的数据不是第一个接收模块存储到BUFFER中的数据,MAC子模块进一步用于:
将读取的初始数据的低S字节作为真实数据的高S字节,初始数据的高L字节作为真实数据的低L字节,所述L为读取出的数据对应的接收模块的编号,且S+L=M。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310420988.2A CN104468156B (zh) | 2013-09-16 | 2013-09-16 | 一种利用时隙仲裁节省资源开销的方法和设备 |
US14/484,394 US20150081963A1 (en) | 2013-09-16 | 2014-09-12 | Allocating a Timeslot |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310420988.2A CN104468156B (zh) | 2013-09-16 | 2013-09-16 | 一种利用时隙仲裁节省资源开销的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468156A true CN104468156A (zh) | 2015-03-25 |
CN104468156B CN104468156B (zh) | 2018-02-09 |
Family
ID=52669077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310420988.2A Active CN104468156B (zh) | 2013-09-16 | 2013-09-16 | 一种利用时隙仲裁节省资源开销的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150081963A1 (zh) |
CN (1) | CN104468156B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542799A (zh) * | 2018-11-05 | 2019-03-29 | 西安智多晶微电子有限公司 | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 |
CN112532499A (zh) * | 2020-11-13 | 2021-03-19 | 哲库科技(北京)有限公司 | 一种仲裁方法、装置、设备、存储介质、程序产品及芯片 |
CN112787955A (zh) * | 2020-12-31 | 2021-05-11 | 盛科网络(苏州)有限公司 | Mac层数据报文的处理方法、设备和存储介质 |
CN113055403A (zh) * | 2021-04-02 | 2021-06-29 | 电信科学技术第五研究所有限公司 | 一种线速保序方法 |
CN115373628A (zh) * | 2022-10-27 | 2022-11-22 | 北京象帝先计算技术有限公司 | 先进先出存储器、系统、装置、设备及数据读取方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140945A1 (en) * | 2006-10-27 | 2008-06-12 | Stec, Inc. | Distributed addressing in solid-state storage |
CN102301599A (zh) * | 2009-01-31 | 2011-12-28 | 吉林克斯公司 | 使用可编程装置的存储器控制的方法及设备 |
US8099564B1 (en) * | 2007-08-10 | 2012-01-17 | Xilinx, Inc. | Programmable memory controller |
CN102571577A (zh) * | 2011-12-29 | 2012-07-11 | 北京中创信测科技股份有限公司 | 一种利用fpga实现sbi接口时隙按配置分流的方法和装置 |
US20120250445A1 (en) * | 2011-03-29 | 2012-10-04 | Renesas Electronics Corporation | Semiconductor apparatus |
-
2013
- 2013-09-16 CN CN201310420988.2A patent/CN104468156B/zh active Active
-
2014
- 2014-09-12 US US14/484,394 patent/US20150081963A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140945A1 (en) * | 2006-10-27 | 2008-06-12 | Stec, Inc. | Distributed addressing in solid-state storage |
US8099564B1 (en) * | 2007-08-10 | 2012-01-17 | Xilinx, Inc. | Programmable memory controller |
CN102301599A (zh) * | 2009-01-31 | 2011-12-28 | 吉林克斯公司 | 使用可编程装置的存储器控制的方法及设备 |
US20120250445A1 (en) * | 2011-03-29 | 2012-10-04 | Renesas Electronics Corporation | Semiconductor apparatus |
CN102571577A (zh) * | 2011-12-29 | 2012-07-11 | 北京中创信测科技股份有限公司 | 一种利用fpga实现sbi接口时隙按配置分流的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542799A (zh) * | 2018-11-05 | 2019-03-29 | 西安智多晶微电子有限公司 | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 |
CN109542799B (zh) * | 2018-11-05 | 2023-03-28 | 西安智多晶微电子有限公司 | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 |
CN112532499A (zh) * | 2020-11-13 | 2021-03-19 | 哲库科技(北京)有限公司 | 一种仲裁方法、装置、设备、存储介质、程序产品及芯片 |
CN112787955A (zh) * | 2020-12-31 | 2021-05-11 | 盛科网络(苏州)有限公司 | Mac层数据报文的处理方法、设备和存储介质 |
CN112787955B (zh) * | 2020-12-31 | 2022-08-26 | 苏州盛科通信股份有限公司 | Mac层数据报文的处理方法、设备和存储介质 |
CN113055403A (zh) * | 2021-04-02 | 2021-06-29 | 电信科学技术第五研究所有限公司 | 一种线速保序方法 |
CN113055403B (zh) * | 2021-04-02 | 2022-06-17 | 电信科学技术第五研究所有限公司 | 一种线速保序方法 |
CN115373628A (zh) * | 2022-10-27 | 2022-11-22 | 北京象帝先计算技术有限公司 | 先进先出存储器、系统、装置、设备及数据读取方法 |
CN115373628B (zh) * | 2022-10-27 | 2023-02-03 | 北京象帝先计算技术有限公司 | 先进先出存储器、系统、装置、设备及数据读取方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150081963A1 (en) | 2015-03-19 |
CN104468156B (zh) | 2018-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5251206A (en) | Hybrid switching system for a communication node | |
CN104468156A (zh) | 一种利用时隙仲裁节省资源开销的方法和设备 | |
US6393021B1 (en) | Integrated multiport switch having shared data receive FIFO structure | |
US5239544A (en) | Converter for interconnecting an asynchronous telecommunication network and a synchronous network | |
CN102932696B (zh) | 一种星载高速数据复接器系统及实现方法 | |
CN110134365B (zh) | 一种多通道并行读出fifo的方法及装置 | |
WO2001069849A2 (en) | Method and apparatus for shared buffer packet switching | |
EP2908251A1 (en) | Method and device for processing data | |
CN103581055A (zh) | 报文的保序方法、流量调度芯片及分布式存储系统 | |
CN108337582B (zh) | 基于现场可编程门阵列的时分复用交换系统 | |
CN111884952B (zh) | 一种基于fpga的多通道计算加速设备 | |
US20070089030A1 (en) | Configurable bandwidth allocation for data channels accessing a memory interface | |
CN103117962B (zh) | 一种星载共享存储交换装置 | |
CN102118304B (zh) | 一种信元交换方法和装置 | |
EP2560301A1 (en) | Crossing capacity processing method for optical transport network (otn) equipment and otn equipment | |
CN201754277U (zh) | 一种基于pci-e的数据交换处理装置 | |
CN101656586B (zh) | 提高同步数字体系虚级联延时补偿缓存效率的方法及装置 | |
CN113986792B (zh) | 一种数据位宽转换方法及通信设备 | |
US7730276B1 (en) | Striping of data into memory of a network data switch to prevent read and write collisions | |
CN105930286B (zh) | 一种使用在otn分组交换接口芯片内部的分时存储电路结构 | |
CN111930650A (zh) | 一种网络流量转发方法及设备 | |
US6834052B1 (en) | Band management circuit | |
CN110225211B (zh) | 多通道脉冲编码调制语音交换系统及方法 | |
CN102799537A (zh) | 一种航天器aos系统双口ram缓冲区管理方法 | |
CN103731225A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |