CN103714038B - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN103714038B CN103714038B CN201210379871.XA CN201210379871A CN103714038B CN 103714038 B CN103714038 B CN 103714038B CN 201210379871 A CN201210379871 A CN 201210379871A CN 103714038 B CN103714038 B CN 103714038B
- Authority
- CN
- China
- Prior art keywords
- data
- ram
- buffer memory
- shared buffer
- sections
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/281—Single cache
Abstract
本发明提供一种数据处理方法和装置,该方法包括:接收到数据总线输入的数据后,根据该数据的去向指示和数据有效位段指示,将所述数据总线输入的数据写入上行侧共享缓存中;按照固定时隙顺序轮询所述上行侧共享缓存,将所述上行侧共享缓存中的数据读出,输出到对应的各个通道中。本发明可以使其在可靠的实现数据的缓存和位宽转换的同时,能有效的节省缓存资源,降低面积及时序上的压力,提升缓存利用率。
Description
技术领域
本发明涉及数据通讯领域,尤其涉及一种数据处理方法和装置。
背景技术
在数据通讯领域的大规模数字逻辑设计中,有时为了提升逻辑电路的处理能力或是为了匹配逻辑电路两侧总线的位宽,需要对逻辑电路的数据路径进行位宽转换。考虑到逻辑电路两侧的总带宽不一定相等,或其中一侧会出现拥塞的状况,逻辑电路还需要能够对待传输的数据进行缓存。
比如图1所示的这样一种应用场景。在上行侧,数据由一侧的数据总线输入并传输去往另一侧的Y个(Y为大于等于1的整数)通道,在下行侧,数据按调度指示从Y个通道中汇聚后传输到数据总线上进行输出。在数据总线上传输的数据,每一拍均仅针对一个通道;为有效利用各通道的带宽,各通道上只传输有效的数据。数据总线的位宽为A,每个器件的总线宽度为B,A为B的N倍(N为大于等于1的整数)。考虑到数据总线的带宽与各通道总带宽不一定相等,且数据总线和各通道上均有可能出现拥塞的状况,在上行和下行传输路径上均需要设置缓存。
对此,通常可以采用如图2所示的逻辑电路来实现数据的缓存和位宽的转换,其中用FIFO(先进先出)进行数据的缓存,用一个独立的位宽转换拆分电路实现数据的位宽转换。在上行侧,通道识别分发电路根据输入数据总线上数据的去向将数据与数据的有效位段指示一起分发到与各通道一一对应的,位宽为“A+数据有效位段指示宽度”的输入FIFO中;当对应通道可以接收数据输入时,数据从输入FIFO中读出,经过位宽转换拆分电路根据数据有效位段指示将数据中的有效部分转成位宽为B的数据流,送往相应的通道。在下行侧,位宽转换拼接电路将从各通道过来的数据首先各自经位宽转换拼接电路转换为位宽为A的数据,再写入与各通道一一对应的输出FIFO中;当数据总线可以接收数据时,数据选择汇聚电路按调度顺序从各输出FIFO中先后读取数据,汇聚输出到输出数据总线上。
其中,实现数据位宽转换的位宽转换拆分电路主要由解复用器(DMUX)组成,其工作方式如图3所示:
对于每一个通道,位宽为A的数据与数据有效位段指示一起从输入FIFO中读出后,首先被存在寄存器中。位宽转换拆分电路在第一个周期将其首部的宽度为B的数据选择输出,第二个周期将与上一拍相邻的宽度为B的数据输出,直到有效数据全部被调度输出之后,位宽转换拆分电路再转向从输入FIFO中读出的下一拍数据,继续按上述方式进行位宽转换。
位宽转换拼接电路基本是位宽转换拆分电路的逆过程,主要由复用器(MUX)组成,其工作方式如图4所示:
对于每一个通道,位宽为B的数据从通道输出后,经位宽转换拼接电路按输出顺序依次拼接成宽度为A的数据,写入对应的输出FIFO中。
此种方法中,如果上行侧数据总线输入的数据或是下行侧各通道输出经位宽转换拼接电路拼接成的数据(位宽均为A)中仅有部分位段有效,该拍数据在存入FIFO时仍然要占据“A+数据有效位段指示宽度”的宽度,与该拍数据全部位段均有效时完全相同,从而导致其缓存利用率较低。
另外,考虑到该电路的具体实现:如果采用FPGA(Field Programmable GateArray,现场可编程门阵列)方式实现该电路,由于FPGA中用来实现FIFO的Block RAM(块随机存储器)位宽有限,且其长度远大于其宽度(以Xilinx的Virex-5 FPGA为例,一个36kb大小的Block RAM的最大配置位宽只能达到36bit),考虑到此种方法需要采用Y个位宽为“A+数据有效位段指示宽度”的FIFO,因而当数据总线宽度A较大时,采用FPGA方式则需要对多个Block RAM进行位宽拼接来实现每个FIFO。这样就会耗费相当多的Block RAM资源,占据很大的设计面积,尤其是在通道个数Y也较多时。即便采用ASIC来实现相关的逻辑电路,如此大位宽的FIFO也会给后端带来布局及时序延时上的压力,同样也会占据很大的设计面积。
发明内容
本发明要解决的技术问题是提供一种数据处理方法和装置,以在可靠的实现数据缓存和位宽转换的同时,节省缓存资源,提高缓存利用率。
为了解决上述技术问题,本发明提供了一种数据处理方法,包括:
接收到数据总线输入的数据后,根据该数据的去向指示和数据有效位段指示,将所述数据总线输入的数据写入上行侧共享缓存中;
按照固定时隙顺序轮询所述上行侧共享缓存,将所述上行侧共享缓存中的数据读出,输出到对应的各个通道中。
进一步地,上述方法还具有下面特点:所述上行侧共享缓存由N块指定位宽的随机存储器(RAM)组成,每块RAM被在逻辑上划分成Y个RAM段,
所述按照固定时隙顺序轮询所述上行侧共享缓存,将所述上行侧共享缓存中的数据读出包括以下方式:
当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;
当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
进一步地,上述方法还具有下面特点:所述将所述数据总线输入的数据写入上行侧共享缓存中的过程中,还包括:
按通道记录当拍数据尾部的写入位置。
为了解决上述问题,本发明还提供了一种数据处理装置,包括:
上行侧写入控制模块,用于接收到数据总线输入的数据后,根据该数据的去向指示和数据有效位段指示,将所述数据总线输入的数据写入上行侧共享缓存中;
上行侧读出控制模块,用于按照固定时隙顺序轮询将所述上行侧共享缓存中的数据读出,输出到对应的各个通道中。
进一步地,上述装置还具有下面特点:
所述上行侧共享缓存由N块指定位宽的随机存储器(RAM)组成,每块RAM被在逻辑上划分成Y个RAM段,
所述上行侧读出控制模块,按照固定时隙顺序轮询将所述上行侧共享缓存中的数据读出包括以下方式:当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
进一步地,上述装置还具有下面特点:
所述上行侧写入控制模块,将所述数据总线输入的数据写入上行侧共享缓存中的过程中还用于:按通道记录当拍数据尾部的写入位置。
为了解决上述问题,本发明还提供了一种数据处理方法,包括:
将各通道输出的数据存入下行侧共享缓存中;
根据调度顺序将数据从所述下行侧共享缓存中读出,输出到数据总线上。
进一步地,上述方法还具有下面特点:
所述下行侧共享缓存由N块指定位宽的随机存储器(RAM)组成,每块RAM被在逻辑上划分成Y个RAM段,
所述将各通道输出的数据存入下行侧共享缓存中包括:
按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段,若当前轮询到的RAM段列有空余,则将对应通道待输出的数据存入该RAM段列。
进一步地,上述方法还具有下面特点:所述按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段包括以下方式:
当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
进一步地,上述方法还具有下面特点:所述根据调度顺序将数据从所述下行侧共享缓存中读出包括:
计算每一个RAM段列总体缓存的数据量,当该RAM段列缓存的数据量大于等于当前调度指示所需的数据量时,依据调度位段长度指示将本次调度输出的数据从各RAM段中读出。
为了解决上述问题,本发明还提供了一种数据处理装置,包括:
下行侧写入控制模块,用于将各通道输出的数据存入下行侧共享缓存中;
下行侧读出控制模块,用于根据调度顺序将数据从所述下行侧共享缓存中读出,输出到数据总线上。
进一步地,上述装置还具有下面特点:
所述下行侧共享缓存由N块指定位宽的随机存储器(RAM)组成,每块RAM被在逻辑上划分成Y个RAM段,
所述下行侧写入控制模块,具体用于按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段,若当前轮询到的RAM段列有空余,则将对应通道待输出的数据存入该RAM段列。
进一步地,上述装置还具有下面特点:
所述下行侧写入控制模块,按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段包括以下方式:当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
进一步地,上述装置还具有下面特点:
所述下行侧读出控制模块,具体用于计算每一个RAM段列总体缓存的数据量,当该RAM段列缓存的数据量大于等于当前调度指示所需的数据量时,依据调度位段长度指示将本次调度输出的数据从各RAM段中读出。
综上,本发明提供一种数据处理方法和装置,使其在可靠的实现数据的缓存和位宽转换的同时,能有效的节省缓存资源,降低面积及时序上的压力,提升缓存利用率。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单的介绍。显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员而言,在不付出创造性劳动的前提下,不可以根据这些附图获得其它的附图。
图1为数据缓存位宽转换电路应用场景示意图;
图2为现有数据缓存位宽转换及缓存电路结构示意图;
图3为本发明实施例的上行侧方向的数据处理方法的流程图;
图4为本发明实施例的下行侧方向的数据处理方法的流程图;
图5为本发明实施例的一种数据处理装置的示意图;
图6为本发明实施例的上行侧传输过程示意图;
图7为本发明实施例的单通道上行侧传输过程示意图;
图8为本发明实施例的下行侧传输过程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图3为本发明实施例的上行侧方向的数据处理方法的流程图,如图3所示,本实施例的方法包括:
步骤101、上行侧方向,接收到数据总线输入的数据后,根据该数据的去向指示和数据有效位段指示,将所述数据总线输入的数据写入上行侧共享缓存中;
数据在由数据总线输入的同时,给出当拍数据的去向指示和有效位段指示。根据去向指示和数据有效位段指示将由数据总线输入的数据存入上行侧共享缓存各RAM块的各RAM段中。
步骤102、按照固定时隙顺序轮询所述上行侧共享缓存,将所述上行侧共享缓存中的数据读出,输出到对应的各个通道中。
按固定时隙顺序轮询上行侧共享缓存各RAM块各RAM段,如果轮询到的RAM段非空且对应的输出通道可以接收数据,则将当前轮询到RAM段中的数据读出,输出到对应的通道。
所述步骤101中,与数据同步的“去向指示”用于指示该拍数据所去往的通道号,而与数据同步的“有效位段指示”用于指示当拍数据中有多少部分(通常以通道位宽B,即RAM块位宽为单位衡量)是有效的。所述步骤102中,在将数据存入上行侧共享缓存的同时,写入控制模块需要按通道记录当拍数据尾部的写入位置,作为去往相同通道的下拍数据写入的依据。
图4为本发明实施例的下行侧方向的数据处理方法的流程图,如图4所示,本实施例的方法包括:
步骤103、下行侧方向,将各通道输出的数据存入下行侧共享缓存中;
当某通道有数据待输出,且对应的下行侧共享缓存RAM段有空余时,经下行侧写入控制模块控制,该通道将数据输出,并存入下行侧共享缓存各RAM块的各RAM段中。
步骤104、根据调度顺序将数据从所述下行侧共享缓存中读出,输出到数据总线上。
根据调度顺序访问下行侧共享缓存各RAM块的各RAM段,将数据汇聚输出到数据总线上。
图5为本发明实施例的一种数据处理装置的示意图,如图5所示,包括以下模块:
上行侧写入控制模块、上行侧读出控制模块、上行侧共享缓存、下行侧写入控制模块、下行侧读出控制模块及下行侧共享缓存。其中,上下行共享缓存用于实现数据的缓存功能,上下行位宽读写控制模块与上下行共享缓存共同实现数据的位宽转换。
按数据流向划分,上行侧(数据总线到各通道)包括以下几个部分:
上行侧写入控制模块,用于接收到数据总线输入的数据后,根据该数据的去向指示和数据有效位段指示,将所述数据总线输入的数据写入上行侧共享缓存中。
上行侧读出控制模块,用于按照固定时隙顺序轮询所述上行侧共享缓存,将所述上行侧共享缓存中的数据读出,输出到对应的各个通道中。
上行侧共享缓存,由N块位宽为B的RAM组成,每块RAM被划分成Y个RAM段,用于存储待输出到各通道的数据。
其中,所述上行侧读出控制模块,按照固定时隙顺序轮询将所述上行侧共享缓存中的数据读出包括以下方式:当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
其中,所述上行侧写入控制模块,将所述数据总线输入的数据写入上行侧共享缓存中的过程中还用于:按通道记录当拍数据尾部的写入位置。
按数据流向划分,下行侧(各通道到数据总线)包括以下几个部分:
下行侧写入控制模块,用于将各通道输出的数据存入下行侧共享缓存中。
下行侧读出控制模块,用于根据调度顺序将数据从所述下行侧共享缓存中读出,输出到数据总线上。
下行侧共享缓存,由N块位宽为B的RAM组成,每块RAM被在逻辑上划分成Y个RAM段,用于存储待输出到数据总线的数据。
其中,所述下行侧写入控制模块,具体用于按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段,若当前轮询到的RAM段列有空余,则将对应通道待输出的数据存入该RAM段列。
其中,所述下行侧写入控制模块,按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段包括以下方式:当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
其中,所述下行侧读出控制模块,具体用于计算每一个RAM段列总体缓存的数据量,当该RAM段列缓存的数据量大于等于当前调度指示所需的数据量时,依据调度位段长度指示将本次调度输出的数据从各RAM段中读出。
与现有技术相比,本发明实施例具有以下优点:
本发明实施例提供的方法和装置,在数据处理时仅将数据中的有效位段进行缓存及位宽转换,其缓存利用率及传输效率较高;且由于其实现采用N个位宽为B的RAM块,当数据总线位宽较大且采用FPGA实现时可以有效利用片内的RAM资源,减小设计面积。克服现有技术中存在的缓存利用率较低,具体实现时耗费缓存资源过多,面积及时序压力过大的问题和缺陷。
下面结合附图及具体实施例对本发明再做进一步详细的说明。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明采用按固定时隙顺序操作共享缓存的方式实现数据的位宽转换,采用对有效数据进行拼接存储的方式实现缓存效率的提升,以解决现有技术中存在的缓存利用率不高,及FPGA实现时占用逻辑资源及设计面积过多的问题。
本发明实施例的实现框图见图6、图7及图8所示。其中,上下行共享缓存均由N块简单双口RAM组成,每块RAM在逻辑上被划分为Y个RAM段。处于同一列的RAM段对应同一个通道,将其称之为RAM段列。共享缓存为每个逻辑RAM段划分一个地址范围,在对共享缓存的读写操作过程中,通过读写地址区分各个RAM段;每个逻辑的RAM段按固定时隙进行读写控制,当其被选中且读使能拉高时,将该RAM段首部数据输出,当其被选中且写使能拉高时,将数据写入该RAM段的尾部。
为简便起见,下面仅以N=Y=8的情况为例详细描述本发明的工作过程:
上行侧的整个写入和读出过程如图6所示。
上行侧的写入过程:
如图6所示,在上行侧,与数据总线上传输的数据同步的去向指示指明了当拍数据所去往的通道编号;与数据同步的有效位段指示指明了以RAM块位宽B为单位衡量,当拍数据中从高位开始有多少部分有效。
当每一拍数据写入完成后,上行侧写入控制模块都会为其写入的RAM段列记录本次写入结束位置(写到该RAM段列哪一个RAM段)。每次写入时,上行侧写入控制模块根据去向指示选中对应的RAM段列,然后将该RAM段列“上一次写入结束位置+1”作为本次写入的起始位置,根据数据有效位段指示判断从当前写入起始位置起,依次拉高“有效位段”个RAM块的写使能。数据总线上的有效数据也按本次的写入起始位置开始,依次送往当前选中的各个RAM段。
以本例而言,如图7所示,先后去往通道m#的第2拍和第3拍,有效位段长度分别为4B和8B。在第2拍数据写入前,通道m#对应的RAM段列m#的写入结束位置为RAM段1#。当第一拍数据写入时,该拍数据按首尾顺序被依次存到RAM段2#~RAM段5#中,写入完成后RAM段列m#的写入结束位置更新为RAM段5#;当第二拍数据写入时,该拍数据按首尾顺序被依次存到RAM段5#、RAM段6#、RAM段7#、RAM段0#、RAM段1#、RAM段2#中,写入完成后RAM段列m#的写入结束位置更新为RAM段2#。
上行侧的读出过程:
上行侧读出控制模块按时隙,以固定顺序轮询上行侧共享缓存各RAM块中的各RAM段。当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。对于同一个RAM段列而言,在前后两个时隙中依次访问上下两个相邻的RAM段。在本例中,其轮询顺序如下所示:
读时隙0:访问RAM段0,RAM组0;RAM段1,RAM组7;RAM段2,RAM组6;RAM段3,RAM组5;RAM段4,RAM组4;RAM段5,RAM组3;RAM段6,RAM组2;RAM段7,RAM组1。
读时隙1:访问RAM段0,RAM组1;RAM段1,RAM组0;RAM段2,RAM组7;RAM段3,RAM组6;RAM段4,RAM组5;RAM段5,RAM组4;RAM段6,RAM组3;RAM段7,RAM组2。
读时隙2:访问RAM段0,RAM组2;RAM段1,RAM组1;RAM段2,RAM组0;RAM段3,RAM组7;RAM段4,RAM组6;RAM段5,RAM组5;RAM段6,RAM组4;RAM段7,RAM组3。
读时隙3:访问RAM段0,RAM组3;RAM段1,RAM组2;RAM段2,RAM组1;RAM段3,RAM组0;RAM段4,RAM组7;RAM段5,RAM组6;RAM段6,RAM组5;RAM段7,RAM组4。
读时隙4:访问RAM段0,RAM组4;RAM段1,RAM组3;RAM段2,RAM组2;RAM段3,RAM组1;RAM段4,RAM组0;RAM段5,RAM组7;RAM段6,RAM组6;RAM段7,RAM组5。
读时隙5:访问RAM段0,RAM组5;RAM段1,RAM组4;RAM段2,RAM组3;RAM段3,RAM组2;RAM段4,RAM组1;RAM段5,RAM组0;RAM段6,RAM组7;RAM段7,RAM组6。
读时隙6:访问RAM段0,RAM组6;RAM段1,RAM组5;RAM段2,RAM组4;RAM段3,RAM组3;RAM段4,RAM组2;RAM段5,RAM组1;RAM段6,RAM组0;RAM段7,RAM组7。
读时隙7:访问RAM段0,RAM组7;RAM段1,RAM组6;RAM段2,RAM组5;RAM段3,RAM组4;RAM段4,RAM组3;RAM段5,RAM组2;RAM段6,RAM组1;RAM段7,RAM组0。
上行侧每个RAM段列都会记录其上一次的读出结束位置,如果当前被轮询到的RAM段位置为“该RAM段列上一次读出结束位置+1”且该RAM段非空,同时其对应的输出通道当前可以接收数据,则将该RAM段所处RAM块的读使能拉高,将本次读出的数据送往该RAM对应的通道;其余情况下,不输出数据。
下行侧的整个写入和读出过程如图8所示。
下行侧的写入过程:
下行侧写入控制模块按时隙,以固定顺序轮询下行侧共享缓存各RAM块中的各RAM段,其顺序同上行侧读时隙轮询顺序。当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
下行侧写入控制模块为每个RAM段列记录上一次的写入位置。如果当前轮询到的RAM段位置为“该RAM段列上一次写入位置+1”且该RAM有空余,同时其对应的通道有数据可以输出,则将该RAM段所处RAM块的写使能拉高,将从对应通道输入的数据送往该RAM段;其余情况下,不进行数据的写入操作。
下行侧的读出过程:
下行侧读出控制模块为每一个RAM段列计算总体缓存的数据量,当该RAM段列缓存的数据量大于等于当前调度指示所需的数据量时,下行侧读出控制模块才发起读出操作,并同时给出调度位段长度指示(按RAM块位宽为衡量单位)。
下行侧读出控制模块为每个RAM段列记录上一次的读出结束位置。当发起读操作时,下行侧读出控制模块以“该RAM段列上一次读出结束位置+1”的RAM段为起始位置,依据调度位段长度指示将本次调度输出的数据从各RAM段中读出,送往数据总线输出。
由上述实施方式描述可以看出,在实现数据位宽转换和缓存功能的同时,由于在上行侧和下行侧写入过程中采用拼接的方式对有效数据进行缓存,从而使其缓存利用率高于背景技术所述方案。另外由于在实施中采用N块宽度为B的缓存,如数据总线A远大于B,则在具体实现时,可以有效的利用片内缓存资源,减小设计面积和时序延迟,这一点在通道数Y较大时尤为明显。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种数据处理方法,包括:
接收到数据总线输入的数据后,根据该数据的去向指示和数据有效位段指示,将所述数据总线输入的数据写入上行侧共享缓存中,具体包括:每次写入时,将上一次写入结束位置+1作为本次写入的起始位置;
所述上行侧共享缓存由N块指定位宽的随机存储器RAM组成,每块RAM被在逻辑上划分成Y个RAM段;
按照固定时隙顺序轮询所述上行侧共享缓存,将所述上行侧共享缓存中的数据读出,输出到对应的各个通道中;所述按照固定时隙顺序轮询所述上行侧共享缓存,将所述上行侧共享缓存中的数据读出包括以下方式:
当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;
当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
2.如权利要求1所述的方法,其特征在于:所述将所述数据总线输入的数据写入上行侧共享缓存中的过程中,还包括:
按通道记录当拍数据尾部的写入位置。
3.一种数据处理装置,包括:
上行侧写入控制模块,用于接收到数据总线输入的数据后,根据该数据的去向指示和数据有效位段指示,将所述数据总线输入的数据写入上行侧共享缓存中,具体包括:每次写入时,将上一次写入结束位置+1作为本次写入的起始位置;所述上行侧共享缓存由N块指定位宽的随机存储器RAM组成,每块RAM被在逻辑上划分成Y个RAM段;
上行侧读出控制模块,用于按照固定时隙顺序轮询将所述上行侧共享缓存中的数据读出,输出到对应的各个通道中;按照固定时隙顺序轮询将所述上行侧共享缓存中的数据读出包括以下方式:当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段。
4.如权利要求3所述的装置,其特征在于:
所述上行侧写入控制模块,将所述数据总线输入的数据写入上行侧共享缓存中的过程中还用于:按通道记录当拍数据尾部的写入位置。
5.一种数据处理方法,包括:
将各通道输出的数据存入下行侧共享缓存中;所述下行侧共享缓存由N块指定位宽的随机存储器RAM组成,每块RAM被在逻辑上划分成Y个RAM段;
所述将各通道输出的数据存入下行侧共享缓存中包括:按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段,若当前轮询到的RAM段列有空余,则将对应通道待输出的数据存入该RAM段列;
所述按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段包括以下方式:当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段;
根据调度顺序将数据从所述下行侧共享缓存中读出,输出到数据总线上,具体包括:每次读出时,上一次读出结束位置+1作为本次读的起始位置。
6.如权利要求5所述的方法,其特征在于:所述根据调度顺序将数据从所述下行侧共享缓存中读出包括:
计算每一个RAM段列总体缓存的数据量,当该RAM段列缓存的数据量大于等于当前调度指示所需的数据量时,依据调度位段长度指示将本次调度输出的数据从各RAM段中读出。
7.一种数据处理装置,包括:
下行侧写入控制模块,用于将各通道输出的数据存入下行侧共享缓存中;所述下行侧共享缓存由N块指定位宽的随机存储器RAM组成,每块RAM被在逻辑上划分成Y个RAM段;所述下行侧写入控制模块具体用于,按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段,若当前轮询到的RAM段列有空余,则将对应通道待输出的数据存入该RAM段列;按照固定时隙顺序轮询所述下行侧共享缓存各RAM块中的各RAM段包括以下方式:当N≥Y时,每个轮询周期为N个时隙,每个时隙访问Y个RAM段;当N<Y时,每个轮询周期为Y个时隙,每个时隙访问N个RAM段;
下行侧读出控制模块,用于根据调度顺序将数据从所述下行侧共享缓存中读出,输出到数据总线上,具体包括:每次读出时,上一次读出结束位置+1作为本次读的起始位置。
8.如权利要求7所述的装置,其特征在于:
所述下行侧读出控制模块,具体用于计算每一个RAM段列总体缓存的数据量,当该RAM段列缓存的数据量大于等于当前调度指示所需的数据量时,依据调度位段长度指示将本次调度输出的数据从各RAM段中读出。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210379871.XA CN103714038B (zh) | 2012-10-09 | 2012-10-09 | 一种数据处理方法和装置 |
EP13844885.7A EP2908251B1 (en) | 2012-10-09 | 2013-09-27 | Method and device for processing data |
ES13844885T ES2749519T3 (es) | 2012-10-09 | 2013-09-27 | Método y dispositivo para procesar datos |
JP2015535968A JP6077125B2 (ja) | 2012-10-09 | 2013-09-27 | データ処理方法及び装置 |
US14/434,564 US9772946B2 (en) | 2012-10-09 | 2013-09-27 | Method and device for processing data |
KR1020157011938A KR20150067321A (ko) | 2012-10-09 | 2013-09-27 | 데이터 처리 방법 및 장치 |
PCT/CN2013/084481 WO2014056405A1 (zh) | 2012-10-09 | 2013-09-27 | 一种数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210379871.XA CN103714038B (zh) | 2012-10-09 | 2012-10-09 | 一种数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714038A CN103714038A (zh) | 2014-04-09 |
CN103714038B true CN103714038B (zh) | 2019-02-15 |
Family
ID=50407031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210379871.XA Active CN103714038B (zh) | 2012-10-09 | 2012-10-09 | 一种数据处理方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9772946B2 (zh) |
EP (1) | EP2908251B1 (zh) |
JP (1) | JP6077125B2 (zh) |
KR (1) | KR20150067321A (zh) |
CN (1) | CN103714038B (zh) |
ES (1) | ES2749519T3 (zh) |
WO (1) | WO2014056405A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105607888A (zh) * | 2014-11-25 | 2016-05-25 | 中兴通讯股份有限公司 | 数据位宽转换方法及装置 |
CN104850515B (zh) * | 2015-04-28 | 2018-03-06 | 华为技术有限公司 | 一种缓存信元数据的方法、装置和设备 |
US10205672B2 (en) * | 2015-09-11 | 2019-02-12 | Cirrus Logic, Inc. | Multi-device synchronization of devices |
CN107920258B (zh) * | 2016-10-11 | 2020-09-08 | 中国移动通信有限公司研究院 | 一种数据处理方法及装置 |
CN109388590B (zh) * | 2018-09-28 | 2021-02-26 | 中国电子科技集团公司第五十二研究所 | 提升多通道dma访问性能的动态缓存块管理方法和装置 |
CN109818603B (zh) * | 2018-12-14 | 2023-04-28 | 深圳市紫光同创电子有限公司 | 一种位宽转换电路的复用方法及位宽转换电路 |
CN110134365B (zh) * | 2019-05-21 | 2022-10-11 | 合肥工业大学 | 一种多通道并行读出fifo的方法及装置 |
WO2022110018A1 (zh) * | 2020-11-27 | 2022-06-02 | 西安诺瓦星云科技股份有限公司 | 数据传输方法、装置、通信系统、存储介质和处理器 |
CN114153763A (zh) * | 2021-11-09 | 2022-03-08 | 中国船舶重工集团公司第七一五研究所 | 一种高带宽低延时算法处理的fpga硬件实现方法 |
CN115061959B (zh) * | 2022-08-17 | 2022-10-25 | 深圳比特微电子科技有限公司 | 数据交互方法、装置、系统、电子设备和存储介质 |
WO2024040604A1 (zh) * | 2022-08-26 | 2024-02-29 | 华为技术有限公司 | 一种数据传输方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754741B2 (en) * | 2001-05-10 | 2004-06-22 | Pmc-Sierra, Inc. | Flexible FIFO system for interfacing between datapaths of variable length |
WO2009089301A1 (en) * | 2008-01-07 | 2009-07-16 | Rambus Inc. | Variable-width memory module and buffer |
CN101789845A (zh) * | 2010-02-22 | 2010-07-28 | 烽火通信科技股份有限公司 | 应用sfec的光传送网中总线位宽变换实现方法及电路 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1286029C (zh) * | 2002-08-20 | 2006-11-22 | 华为技术有限公司 | 控制芯片片内存储装置及其存储方法 |
CN1674477B (zh) * | 2004-03-26 | 2010-08-04 | 华为技术有限公司 | 一种实现时分复用电路位宽转换的装置及方法 |
US7613856B2 (en) * | 2004-10-21 | 2009-11-03 | Lsi Corporation | Arbitrating access for a plurality of data channel inputs with different characteristics |
CN101291275B (zh) * | 2008-06-02 | 2010-10-06 | 杭州华三通信技术有限公司 | Spi4.2总线桥接实现方法及spi4.2总线桥接器件 |
CN101894005A (zh) * | 2010-05-26 | 2010-11-24 | 上海大学 | 高速接口向低速接口的异步fifo传输方法 |
CN102541506B (zh) * | 2010-12-29 | 2014-02-26 | 深圳市恒扬科技有限公司 | 一种fifo数据缓存器、芯片以及设备 |
-
2012
- 2012-10-09 CN CN201210379871.XA patent/CN103714038B/zh active Active
-
2013
- 2013-09-27 US US14/434,564 patent/US9772946B2/en active Active
- 2013-09-27 WO PCT/CN2013/084481 patent/WO2014056405A1/zh active Application Filing
- 2013-09-27 EP EP13844885.7A patent/EP2908251B1/en active Active
- 2013-09-27 JP JP2015535968A patent/JP6077125B2/ja active Active
- 2013-09-27 KR KR1020157011938A patent/KR20150067321A/ko not_active Application Discontinuation
- 2013-09-27 ES ES13844885T patent/ES2749519T3/es active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754741B2 (en) * | 2001-05-10 | 2004-06-22 | Pmc-Sierra, Inc. | Flexible FIFO system for interfacing between datapaths of variable length |
WO2009089301A1 (en) * | 2008-01-07 | 2009-07-16 | Rambus Inc. | Variable-width memory module and buffer |
CN101789845A (zh) * | 2010-02-22 | 2010-07-28 | 烽火通信科技股份有限公司 | 应用sfec的光传送网中总线位宽变换实现方法及电路 |
Also Published As
Publication number | Publication date |
---|---|
US9772946B2 (en) | 2017-09-26 |
KR20150067321A (ko) | 2015-06-17 |
JP2016503526A (ja) | 2016-02-04 |
EP2908251B1 (en) | 2019-06-12 |
ES2749519T3 (es) | 2020-03-20 |
WO2014056405A1 (zh) | 2014-04-17 |
CN103714038A (zh) | 2014-04-09 |
JP6077125B2 (ja) | 2017-02-08 |
EP2908251A4 (en) | 2015-12-30 |
EP2908251A1 (en) | 2015-08-19 |
US20150301943A1 (en) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714038B (zh) | 一种数据处理方法和装置 | |
CN105224482B (zh) | 一种fpga加速卡高速存储系统 | |
CN102932696B (zh) | 一种星载高速数据复接器系统及实现方法 | |
WO2021207919A1 (zh) | 控制器、存储器件访问系统、电子设备和数据传输方法 | |
CN105468547A (zh) | 一种基于axi总线的便捷可配置帧数据存取控制系统 | |
CN110134365B (zh) | 一种多通道并行读出fifo的方法及装置 | |
CN104778025B (zh) | 基于随机访问存储器的先入先出存储器的电路结构 | |
US20210280226A1 (en) | Memory component with adjustable core-to-interface data rate ratio | |
CN105573922B (zh) | 一种实现数据格式转换的方法和装置 | |
CN103677655A (zh) | 一种二维数组数据流在存储器上的读写方法及装置 | |
CN103309981B (zh) | 一种具有高存储效率的adc数据组织系统及其方法 | |
CN116225990A (zh) | 基于fpga的多通道ddr读写仲裁装置 | |
CN105335323A (zh) | 一种数据突发的缓存装置和方法 | |
CN102082577B (zh) | 一种高速循环冗余校验crc装置及其实现方法 | |
CN105446699A (zh) | 数据帧队列管理方法 | |
CN102404183B (zh) | 仲裁方法和仲裁器 | |
CN102571535B (zh) | 一种数据延迟装置、方法及通信系统 | |
CN105007151A (zh) | 一种高低速总线通讯方法及装置 | |
CN111831209A (zh) | 数据存取装置及系统 | |
CN106814973B (zh) | 存储器的割包控制器、存储器及存储器的割包控制方法 | |
CN105930286B (zh) | 一种使用在otn分组交换接口芯片内部的分时存储电路结构 | |
CN202332303U (zh) | 一种多通道实时直读存储器结构 | |
CN101321119B (zh) | 实现数据比特交换的系统及方法 | |
CN103731225A (zh) | 一种数据传输方法和装置 | |
CN103731224A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221121 Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd. Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Patentee before: ZTE Corp. |