CN101788956B - 多通道数据存储方法、装置和多通道数据接收系统 - Google Patents
多通道数据存储方法、装置和多通道数据接收系统 Download PDFInfo
- Publication number
- CN101788956B CN101788956B CN2009102540431A CN200910254043A CN101788956B CN 101788956 B CN101788956 B CN 101788956B CN 2009102540431 A CN2009102540431 A CN 2009102540431A CN 200910254043 A CN200910254043 A CN 200910254043A CN 101788956 B CN101788956 B CN 101788956B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- cpu
- cache
- feature
- 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
Images
Abstract
本发明实施例提供一种多通道数据存储方法、装置和多通道数据接收系统,该多通道数据存储方法包括:将各通道处理后的数据存入二级缓存与各通道对应的存储片中,该存储片包括头信息和有效数据;将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,一级缓存以存储片为单位存储头信息和有效数据;在一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便中央处理单元根据头信息将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存。本发明实施例实现了将多个通道的数据一次性存储到中央处理单元的内存中,提高了中央处理单元接口带宽的传输效率,降低了对中央处理单元接口的要求。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种多通道数据存储方法、装置和多通道数据接收系统。
背景技术
现有技术中,为将数字接收系统各通道接收到的数据传送到中央处理单元(Central Processing Unit;以下简称:CPU),通常采用数据缓存描述符(Buffer Descriptor;以下简称:BD)和数据缓存(Buffer)相结合的结构。
图1为现有技术多通道数据接收方式的示意图,图1中各模块的功能如下:
多通道复用数据处理模块,用于对各通道数据进行采样和处理;将处理好的数据存放到各个通道的数据缓存中。当接收的数据字节数达到某一设定值时,多通道复用数据处理模块更新当前使用的BD,将BD的指针指向当前通道下一BD的位置。
数据缓存,用于存放各通道处理好的数据。
BD,用于表示对应通道数据缓存的信息。
CPU可以包括:直接存储器访问(Direct Memory Access;以下简称:DMA)控制器和内存;CPU控制DMA控制器,通过CPU接口,将各通道的数据缓存的数据搬移至CPU的内存。
图2(a)为现有技术BD与Buffer的指向关系示意图,如图2(a)所示,每个通道由多个BD组成一个BD环,每个通道都分配一定大小的Buffer,位置是固定的。图2(b)为现有技术通道内各BD与接收Buffer的对应关系示意图,如图2(b)所示,每个BD与相对应的Buffer关系不是固定的,通常BD包括以下三个部分:
(1)状态和控制:表示当前BD所指Buffer中的数据帧信息以及当前BD是否有效,由帧信息位和有效位构成。当多通道复用数据处理模块更新当前使用的BD时,更新帧信息位,同时将该BD的有效位设置为1;在CPU将该BD所对应Buffer的数据搬移结束之后,将该BD的有效位设置为0,表示该BD处于空闲状态,可以被多通道复用数据处理模块使用。
(2)有效数据长度:表示当前BD所指Buffer当中的数据字节数。
(3)Buffer地址:表示当前BD所指Buffer当中数据的起始地址。
多通道复用数据处理模块接收到数据之后,会按照通道的方式,将接收到的数据存放到对应通道的Buffer中,当接收的数据字节数达到某一设定值时,多通道复用数据处理模块更新当前BD指针所指向的BD,将BD的指针指向当前通道下一BD的位置。
CPU会定时查询所有通道的BD,当发现有效的BD时,会将该有效的BD所对应Buffer中的数据搬移至CPU的内存当中。
结合图1、图2(a)和图2(b),现有技术中,CPU读取Buffer中的数据的流程如下:
步骤1,CPU通过CPU接口轮询各通道BD环的有效位,当发现有效的BD时,说明有数据需要搬移。
步骤2,CPU读取有效的BD所对应Buffer的起始地址和数据长度。
步骤3,CPU根据读取的起始地址和数据长度,生成DMA控制器的起始地址和数据长度。
步骤4,CPU启动DMA控制器,将有效的BD所对应Buffer中的数据搬移到CPU的内存中。
步骤5,CPU设置BD的空闲状态:将BD的有效位设置为0,表示该BD又可以被多通道复用数据处理模块使用。
步骤6,重复执行步骤2~步骤5,完成对当前通道所有有效的BD的处理。
步骤7,重复步骤1~步骤6,完成所有通道的查询。
综上所述,现有技术中,BD存放通道信息,Buffer存放有效数据。在读取接收的数据时,CPU需要查询BD,读取BD,获取Buffer起始地址和有效长度,再进行有效数据读取。CPU读取完有效数据之后,还需要将当前BD设置为空闲状态,整个读取过程,需要对每个通道的BD进行三次操作。由于查询BD需要占用CPU接口的有效带宽,因此随着通道数的增加,对BD的操作次数也必将增加,从而降低了CPU接口带宽的有效利用率,增加了CPU接口的带宽要求,同时也增加了CPU的负担。
此外,如果通道内有效BD长时间不查询,会造成多通道复用数据处理模块没有空闲的BD使用,从而造成数据丢失,因此BD从有效到CPU将该BD设置为空闲状态的时间间隔要尽量小。但是通道数的增加,会增大该时间间隔,从而导致数据丢失,降低数据接收系统的稳定性。
发明内容
本发明实施例提供一种多通道数据存储方法、装置和多通道数据接收系统,以提高中央处理单元接口带宽的传输效率,降低对中央处理单元接口的要求,减轻中央处理单元的负担,提高数据接收系统的稳定性。
本发明实施例提供一种多通道数据存储方法,包括:
将各通道处理后的数据存入二级缓存与所述各通道对应的存储片中,所述存储片包括头信息和有效数据;
将所述二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,所述一级缓存以存储片为单位存储所述头信息和有效数据;
在所述一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便所述中央处理单元根据所述头信息将所述一级缓存中存满数据的存储片中的有效数据存储至所述中央处理单元的内存。
本发明实施例还提供一种多通道数据存储装置,包括:
第一存储模块,用于将各通道处理后的数据存入二级缓存与所述各通道对应的存储片中,所述存储片包括头信息和有效数据;
第二存储模块,用于将所述二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,所述一级缓存以存储片为单位存储所述头信息和有效数据;
通知发送模块,用于在所述一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便所述中央处理单元根据所述头信息将所述一级缓存中存满数据的存储片中的有效数据存储至所述中央处理单元的内存。
本发明实施例还提供一种多通道数据接收系统,包括:上述多通道数据存储装置、中央处理单元和多通道复用数据处理模块,
所述多通道复用数据处理模块,用于对各通道接收的数据进行采样和处理,并将各通道处理后的数据发送至所述多通道数据存储装置;
所述多通道数据存储装置,用于将各通道处理后的数据存入二级缓存与所述各通道对应的存储片中,所述存储片包括头信息和有效数据;并将所述二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,所述一级缓存以存储片为单位存储所述头信息和有效数据;在所述一级缓存中存满数据的存储片的个数达到预设值之后,向所述中央处理单元发送通知;
所述中央处理单元,用于在接收到所述多通道数据存储装置发送的通知之后,根据所述头信息将所述一级缓存中存满数据的存储片中的有效数据存储至所述中央处理单元的内存。
本发明实施例采用两级缓存存储多通道数据,先将各通道处理后的数据存入二级缓存与各通道对应的存储片中,然后将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,一级缓存以存储片为单位存储上述头信息和有效数据;在一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便该中央处理单元根据头信息将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存。本发明实施例实现了将多个通道的数据一次性读取到中央处理单元的内存中,简化了整个数据存储的流程,提高了中央处理单元接口带宽的传输效率,降低了对中央处理单元接口的要求,减轻了数据传输对中央处理单元带来的负担,并且提高了数据接收系统的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术多通道数据接收方式的示意图;
图2(a)为现有技术BD与Buffer的指向关系示意图;
图2(b)为现有技术通道内各BD与接收Buffer的对应关系示意图;
图3为本发明多通道数据存储方法一个实施例的流程图;
图4为本发明多通道数据存储方法另一个实施例的流程图;
图5为本发明存储片的数据存放格式一个实施例的示意图;
图6为本发明二级缓存的数据存放格式一个实施例的示意图;
图7为本发明多通道数据存储装置一个实施例的结构示意图;
图8为本发明多通道数据接收系统一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3为本发明多通道数据存储方法一个实施例的流程图,如图3所示,该实施例可以包括:
步骤301,将各通道处理后的数据存入二级缓存与各通道对应的存储片中,该存储片包括头信息和有效数据。其中,该头信息包括存储片对应的通道号、该存储片中的有效数据长度和该存储片中的有效数据在当前接收帧的位置。该存储片中的有效数据在当前接收帧的位置包括:该存储片中的有效数据是当前接收帧的帧头或帧尾。
本实施例中,二级缓存按照通道方式存储各通道处理后的数据,每个通道对应至少两个存储片;接收到各通道处理后的数据之后,多通道数据存储装置将该处理后的数据存入二级缓存与各通道对应的存储片中,并设置该存储片的头信息。
步骤302,将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,一级缓存以存储片为单位存储上述头信息和有效数据。
本实施例中,二级缓存中存储片的大小与一级缓存中存储片的大小相同。在二级缓存中,一个通道处理后的数据存满该通道对应的一个或多个存储片之后,多通道数据存储装置将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存。
具体实现时,多通道数据存储装置可以在一个通道处理后的数据每存满该通道对应的一个存储片之后,将二级缓存中存满数据的这一个存储片中的头信息和有效数据存入一级缓存,从而在多通道数据存储装置将二级缓存中存满数据的这一个存储片中的头信息和有效数据存入一级缓存的过程中,二级缓存中该通道对应的其他存储片可以继续存储该通道处理后的数据;当二级缓存中每个通道对应三个或三个以上存储片时,多通道数据存储装置也可以在一个通道处理后的数据存满至少两个存储片之后,再将二级缓存中存满数据的至少两个存储片中的头信息和有效数据存入一级缓存,只要保证在多通道数据存储装置将二级缓存中存满数据的至少两个存储片中的头信息和有效数据存入一级缓存的过程中,每个通道仍有一个存储片可以继续存储该通道处理后的数据即可,本发明实施例对此不作限定;例如:当二级缓存中每个通道对应三个存储片时,多通道数据存储装置可以在一个通道处理后的数据存满该通道对应的一个或两个存储片之后,将该存满数据的一个或两个存储片中的头信息和有效数据存入一级缓存。
本实施例中,一级缓存以存储片为单位存储上述头信息和有效数据,一级缓存的作用是汇聚各通道的存储片,可以按照二级缓存中各存储片存满数据的先后顺序,将二级缓存中存满数据的存储片中的头信息和有效数据,依次存储至一级缓存中的存储片0~存储片n,n为正整数。例如:假设二级缓存中第三个存满数据的存储片为第0通道的存储片0,则可以在一级缓存的存储片2中存储原二级缓存第0通道的存储片0的头信息和有效数据;假设二级缓存中第五个存满数据的存储片为第0通道的存储片1,则可以在一级缓存的存储片4中存储原二级缓存第0通道的存储片1的头信息和有效数据。
步骤303,在一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便中央处理单元根据上述头信息将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存。
具体地,在一级缓存中存满数据的存储片的个数达到预设值之后,多通道数据存储装置向中央处理单元发送通知,通知中央处理单元将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存。具体地,多通道数据存储装置向中央处理单元发送通知可以为:多通道数据存储装置向中央处理单元发送中断信号。当然本发明实施例并不局限于此,多通道数据存储装置还可以通过其他方式通知中央处理单元,本发明实施例对具体的通知方式不作限定。
中央处理单元根据上述头信息将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存具体可以为:
中央处理单元启动DMA控制器,根据存满数据的存储片对应的通道号,将存满数据的存储片中的有效数据存储至中央处理单元的内存中与上述通道号对应的内存空间。另外,在将存储片中的有效数据存储至中央处理单元的内存中与上述通道号对应的内存空间时,中央处理单元可以根据存储片中的有效数据在当前接收帧的位置顺序存储上述存储片中的有效数据,即先存帧头,最后存帧尾。
可选地,中央处理单元可以将上述存满数据的存储片的头信息一并存入该中央处理单元的内存;或者,中央处理单元也可以只根据存满数据的存储片的头信息确定存满数据的存储片中有效数据的内存空间,而不存储头信息;本发明实施例对此不作限定。
上述实施例实现了将多个通道的数据一次性存储到中央处理单元的内存中,简化了整个数据存储的流程,提高了中央处理单元接口带宽的传输效率,降低了对中央处理单元接口的要求,减轻了数据传输对中央处理单元带来的负担,并且提高了数据接收系统的稳定性。
图4为本发明多通道数据存储方法另一个实施例的流程图,如图4所示,该实施例可以包括:
步骤401,对各通道接收的数据进行采样和处理。
步骤402,将各通道处理后的数据存入二级缓存与各通道对应的存储片中。
图5为本发明存储片的数据存放格式一个实施例的示意图,如图5所示,该存储片包括头信息(Head)和有效数据(Data)。其中,该头信息包括存储片对应的通道号、该存储片中的有效数据长度和该存储片中的有效数据在当前接收帧的位置。该存储片中的有效数据在当前接收帧的位置包括:该存储片中的有效数据是当前接收帧的帧头或帧尾。
图5所示的存储片包括n个字节,其中头信息占用2个字节,分别为第0字节和第1字节;有效数据占用n-2个字节,分别为第2字节~第n-1字节。图5示出了本发明存储片的数据存放格式的一个实例,但本发明实施例并不仅限于此,本发明实施例中,头信息占用的字节数是根据数据接收系统中的通道数,以及存储片的大小确定的,本发明实施例对头信息占用的字节数不作限定。
本实施例中,二级缓存按照通道方式存储各通道处理后的数据,每个通道对应至少两个存储片;接收到各通道处理后的数据之后,多通道数据存储装置将该处理后的数据存入二级缓存与各通道对应的存储片中,并设置该存储片的头信息。
图6为本发明二级缓存的数据存放格式一个实施例的示意图,图6所示的二级缓存包括m个通道的存储片,每个存储片的大小为n个字节,每个通道对应两个存储片,分别为存储片0和存储片1。
步骤403,将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存。其中,一级缓存以存储片为单位存储上述头信息和有效数据。
本实施例中,二级缓存中存储片的大小与一级缓存中存储片的大小相同。在二级缓存中,一个通道处理后的数据存满该通道对应的一个或多个存储片之后,多通道数据存储装置将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存。
具体实现时,多通道数据存储装置可以在一个通道处理后的数据每存满该通道对应的一个存储片之后,将二级缓存中存满数据的这一个存储片中的头信息和有效数据存入一级缓存,从而在多通道数据存储装置将二级缓存中存满数据的这一个存储片中的头信息和有效数据存入一级缓存的过程中,二级缓存中该通道对应的其他存储片可以继续存储该通道处理后的数据;当二级缓存中每个通道对应三个或三个以上存储片时,多通道数据存储装置也可以在一个通道处理后的数据存满至少两个存储片之后,再将二级缓存中存满数据的至少两个存储片中的头信息和有效数据存入一级缓存,只要保证在多通道数据存储装置将二级缓存中存满数据的至少两个存储片中的头信息和有效数据存入一级缓存的过程中,每个通道仍有一个存储片可以继续存储该通道处理后的数据即可,本发明实施例对此不作限定;例如:当二级缓存中每个通道对应三个存储片时,多通道数据存储装置可以在一个通道处理后的数据存满该通道对应的一个或两个存储片之后,将该存满数据的一个或两个存储片中的头信息和有效数据存入一级缓存。
本实施例中,一级缓存的数据存放格式可以如表1所示,表1所示的一级缓存的大小为1K字节,每个存储片的大小为32字节,该一级缓存中共32个存储片。当一级缓存中存储片的大小为32字节时,二级缓存中存储片的大小也为32字节。
表1
字节偏移地址 | 存储片编号 | 描述 | 字节数 |
0x00-0x1F | 0 | 第0个存储片 | 32 |
0x20-0x3F | 1 | 第1个存储片 | 32 |
0x40-0x5F | 2 | 第2个存储片 | 32 |
... | ... | ... | ... |
0x3C0-0x3DF | 30 | 第30个存储片 | 32 |
0x03E0-0x3FF | 31 | 第31个存储片 | 32 |
本实施例中,一级缓存以存储片为单位存储上述头信息和有效数据,一级缓存的作用是汇聚各通道的存储片,可以按照二级缓存中各存储片存满数据的先后顺序,将二级缓存中存满数据的存储片中的头信息和有效数据,依次存储至一级缓存中的存储片0~存储片n,n为正整数,本实施例中,n为31。例如:假设二级缓存中第三个存满数据的存储片为第0通道的存储片0,则可以在一级缓存的存储片2中存储原二级缓存第0通道的存储片0的头信息和有效数据;假设二级缓存中第五个存满数据的存储片为第0通道的存储片1,则可以在一级缓存的存储片4中存储原二级缓存第0通道的存储片1的头信息和有效数据。
步骤404,在一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便中央处理单元根据上述头信息将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存。
本实施例中,一级缓存所起到的作用是汇聚各通道对应的存储片中的有效数据,统一传输。当一级缓存中存满数据的存储片的个数达到预设值之后,多通道数据存储装置向中央处理单元发送通知,中央处理单元响应通知,启动DMA控制器,将一级缓存中存满数据的存储片中的有效数据一次性存储至该中央处理单元的内存,与现有技术中,中央处理单元需要查询每个通道的BD,然后再单独对每个通道的数据进行传输的方式相比,本发明实施例提供的方法大大提高了中央处理单元接口的传输效率。
具体地,该中央处理单元可以根据存满数据的存储片对应的通道号,将存满数据的存储片中的有效数据存储至中央处理单元的内存中与该通道号对应的内存空间。另外,在将存储片中的数据存储至中央处理单元的内存中与该通道号对应的内存空间时,中央处理单元可以根据存储片中的有效数据在当前接收帧的位置顺序存储上述存储片中的数据,即先存帧头,最后存帧尾。
可选地,中央处理单元可以将上述存满数据的存储片的头信息一并存入该中央处理单元的内存;或者,中央处理单元也可以只根据存满数据的存储片的头信息确定存满数据的存储片中有效数据的内存空间,而不存储头信息;本发明实施例对此不作限定。
其中,多通道数据存储装置向中央处理单元发送的通知可以为中断信号,当然本发明实施例并不局限于此,多通道数据存储装置还可以通过其他方式通知中央处理单元,本发明实施例对具体的通知方式不作限定。
上述实施例实现了将多个通道的数据一次性存储到中央处理单元的内存中,与现有技术中,中央处理单元需要对每个通道的BD进行多次操作,而且只能对每个通道进行传输的方式相比,本发明实施例提供的方法简化了整个数据存储的流程,提高了中央处理单元接口带宽的传输效率,降低了对中央处理单元接口的要求,减轻了数据传输对中央处理单元带来的负担。并且本发明实施例中没有BD,所以不存在没有空闲的BD,而导致数据接收出错的问题,与现有技术相比,本发明实施例提供的方法提高了数据接收系统的稳定性。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图7为本发明多通道数据存储装置一个实施例的结构示意图,本实施例中的多通道数据存储装置可以实现本发明图1所示实施例的流程,如图7所示,该多通道数据存储装置可以包括:第一存储模块71、第二存储模块72和通知发送模块73。
其中,第一存储模块71,用于将各通道处理后的数据存入二级缓存与各通道对应的存储片中,该存储片包括头信息和有效数据;其中,该头信息包括存储片对应的通道号、该存储片中的有效数据长度和该存储片中的有效数据在当前接收帧的位置。该存储片中的有效数据在当前接收帧的位置包括:该存储片中的有效数据是当前接收帧的帧头或帧尾。本实施例中,各通道接收的数据先要由多通道复用数据处理模块进行采样和处理,然后,再由第一存储模块71将各通道处理后的数据存入二级缓存与各通道对应的存储片中。
第二存储模块72,用于将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,该一级缓存以存储片为单位存储上述头信息和有效数据;本实施例中,二级缓存中存储片的大小与一级缓存中存储片的大小相同。在二级缓存中,每个通道对应至少两个存储片,一个通道处理后的数据存满该通道对应的一个或多个存储片之后,第二存储模块72将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存;具体实现时,第二存储模块72可以在一个通道处理后的数据每存满该通道对应的一个存储片之后,将二级缓存中存满数据的这一个存储片中的头信息和有效数据存入一级缓存,从而在第二存储模块72将二级缓存中存满数据的这一个存储片中的头信息和有效数据存入一级缓存的过程中,第一存储模块71可以继续将该通道处理后的数据存储至二级缓存中该通道对应的其他存储片;当二级缓存中每个通道对应三个或三个以上存储片时,第二存储模块72也可以在一个通道处理后的数据存满至少两个存储片之后,再将二级缓存中存满数据的至少两个存储片中的头信息和有效数据存入一级缓存,只要保证在第二存储模块72将二级缓存中存满数据的至少两个存储片中的头信息和有效数据存入一级缓存的过程中,每个通道仍有一个存储片可以继续存储该通道处理后的数据即可,本发明实施例对此不作限定;例如:当二级缓存中每个通道对应三个存储片时,第二存储模块72可以在一个通道处理后的数据存满该通道对应的一个或两个存储片之后,将该存满数据的一个或两个存储片中的头信息和有效数据存入一级缓存。
本实施例中,一级缓存以存储片为单位存储上述头信息和有效数据,一级缓存的作用是汇聚各通道的存储片,可以按照二级缓存中各存储片存满数据的先后顺序,将二级缓存中存满数据的存储片中的头信息和有效数据,依次存储至一级缓存中的存储片0~存储片n,n为正整数。例如:假设二级缓存中第三个存满数据的存储片为第0通道的存储片0,则可以在一级缓存的存储片2中存储原二级缓存第0通道的存储片0的头信息和有效数据;假设二级缓存中第五个存满数据的存储片为第0通道的存储片1,则可以在一级缓存的存储片4中存储原二级缓存第0通道的存储片1的头信息和有效数据。
通知发送模块73,用于在一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便该中央处理单元根据头信息将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存。具体地,在一级缓存中存满数据的存储片的个数达到预设值之后,通知发送模块73向中央处理单元发送通知,通知中央处理单元将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元的内存。具体地,通知发送模块73向中央处理单元发送通知可以为:通知发送模块73向中央处理单元发送中断信号。当然本发明实施例并不局限于此,通知发送模块73还可以通过其他方式通知中央处理单元,本发明实施例对具体的通知方式不作限定。
本实施例提供的多通道数据存储装置可以通过可编程逻辑器件和/或存储器实现;举例来说,可以采用以下几种方式实现:
(1)复杂可编程逻辑器件(Complex Programmable Logic Device;以下简称:CPLD)+静态随机存储器(Static Random Access Memory;以下简称:SRAM)方式;其中,CPLD可以实现第一存储模块71、第二存储模块72和通知发送模块73的逻辑处理功能,SRAM可以作为一级缓存和二级缓存。
(2)现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)方式;可以利用FPGA本身自带的多个随机存储器(Random AccessMemory;以下简称:RAM)作为一级缓存和二级缓存,利用FPGA中的可配置逻辑模块(Configurable Logic Block;以下简称:CLB)来实现第一存储模块71、第二存储模块72和通知发送模块73的逻辑处理功能。
(3)专用集成电路(Application Specific Integrated Circuit;以下简称:ASIC)方式;采用ASIC与采用FPGA的实现方式相似,在此不再赘述。
以上只是通过可编程逻辑器件和/或存储器实现本实施例提供的多通道数据存储装置的三种示例,本发明实施例并不仅限于此,还可通过其他可编程逻辑器件和/或存储器实现本实施例提供的多通道数据存储装置,本发明实施例对多通道数据存储装置的具体实现方式不作限定。
上述实施例提供的多通道数据存储装置实现了将多个通道的数据一次性存储到中央处理单元的内存中,与现有技术中,中央处理单元需要对每个通道的BD进行多次操作,而且只能对每个通道进行传输的方式相比,本发明实施例提供的多通道数据存储装置简化了整个数据存储的流程,提高了中央处理单元接口带宽的传输效率,降低了对中央处理单元接口的要求,减轻了数据传输对中央处理单元带来的负担。并且本发明实施例中没有BD,所以不存在没有空闲的BD,而导致数据接收出错的问题,与现有技术相比,本发明实施例提供的多通道数据存储装置提高了数据接收系统的稳定性。
图8为本发明多通道数据接收系统一个实施例的结构示意图,如图8所示,该多通道数据接收系统可以包括:多通道数据存储装置81、中央处理单元82和多通道复用数据处理模块83。
其中,多通道复用数据处理模块83,用于对各通道接收的数据进行采样和处理,并将各通道处理后的数据发送至多通道数据存储装置81。具体地,多通道复用数据处理模块83可以采用现有的多通道复用数据处理模块实现。
多通道数据存储装置81,用于将各通道处理后的数据存入二级缓存与各通道对应的存储片中,上述存储片包括头信息和有效数据;并将二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,该一级缓存以存储片为单位存储上述头信息和有效数据,在一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元82发送通知;具体地,该多通道数据存储装置81可以通过本发明图7所示的多通道数据存储装置实现。
中央处理单元82,用于接收到多通道数据存储装置81发送的通知之后,根据上述头信息将一级缓存中存满数据的存储片中的有效数据存储至中央处理单元82的内存;具体地,中央处理单元82可以启动DMA控制器,根据存满数据的存储片对应的通道号,将存满数据的存储片中的有效数据存储至中央处理单元82的内存中与该通道号对应的内存空间。
本发明实施例提供的多通道数据接收系统可用于涉及多通道数据接收的任何产品,例如:可以用在交换机或路由器等网络设备中。
上述实施例提供的多通道数据接收系统实现了将多个通道的数据一次性读取到中央处理单元的内存中,简化了整个数据存储的流程,提高了中央处理单元接口带宽的传输效率,降低了对中央处理单元接口的要求,减轻了数据传输对中央处理单元带来的负担,并且提高了数据接收系统的稳定性。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种多通道数据存储方法,其特征在于,包括:
将各通道处理后的数据存入二级缓存与所述各通道对应的存储片中,所述存储片包括头信息和有效数据;
将所述二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,所述一级缓存以存储片为单位存储所述头信息和有效数据;
在所述一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便所述中央处理单元根据所述头信息将所述一级缓存中存满数据的存储片中的有效数据存储至所述中央处理单元的内存。
2.根据权利要求1所述的方法,其特征在于,所述头信息包括所述存储片对应的通道号、所述存储片中的有效数据长度和所述存储片中的有效数据在当前接收帧的位置,
所述中央处理单元根据所述头信息将所述一级缓存中存满数据的存储片中的有效数据存储至所述中央处理单元的内存包括:
所述中央处理单元启动直接存储器访问控制器,根据所述存满数据的存储片对应的通道号,将所述存满数据的存储片中的有效数据存储至所述中央处理单元的内存中与所述通道号对应的内存空间。
3.根据权利要求1所述的方法,其特征在于,所述向中央处理单元发送通知包括:
向中央处理单元发送中断信号。
4.根据权利要求1所述的方法,其特征在于,所述二级缓存中存储片的大小与所述一级缓存中存储片的大小相同。
5.根据权利要求1所述的方法,其特征在于,每个通道对应所述二级缓存中的至少两个存储片。
6.一种多通道数据存储装置,其特征在于,包括:
第一存储模块,用于将各通道处理后的数据存入二级缓存与所述各通道对应的存储片中,所述存储片包括头信息和有效数据;
第二存储模块,用于将所述二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,所述一级缓存以存储片为单位存储所述头信息和有效数据;
通知发送模块,用于在所述一级缓存中存满数据的存储片的个数达到预设值之后,向中央处理单元发送通知,以便所述中央处理单元根据所述头信息将所述一级缓存中存满数据的存储片中的有效数据存储至所述中央处理单元的内存。
7.根据权利要求6所述的装置,其特征在于,所述通知发送模块具体用于向所述中央处理单元发送中断信号。
8.根据权利要求6或7所述的装置,其特征在于,所述多通道数据存储装置通过可编程逻辑器件和/或存储器实现。
9.一种多通道数据接收系统,其特征在于,包括:根据权利要求6-8任意一项所述的多通道数据存储装置、中央处理单元和多通道复用数据处理模块,
所述多通道复用数据处理模块,用于对各通道接收的数据进行采样和处理,并将各通道处理后的数据发送至所述多通道数据存储装置;
所述多通道数据存储装置,用于将各通道处理后的数据存入二级缓存与所述各通道对应的存储片中,所述存储片包括头信息和有效数据;并将所述二级缓存中存满数据的存储片中的头信息和有效数据存入一级缓存,所述一级缓存以存储片为单位存储所述头信息和有效数据;在所述一级缓存中存满数据的存储片的个数达到预设值之后,向所述中央处理单元发送通知;
所述中央处理单元,用于在接收到所述多通道数据存储装置发送的通知之后,根据所述头信息将所述一级缓存中存满数据的存储片中的有效数据存储至所述中央处理单元的内存。
10.根据权利要求9所述的系统,其特征在于,所述中央处理单元具体用于启动直接存储器访问控制器,根据所述存满数据的存储片对应的通道号,将所述存满数据的存储片中的有效数据存储至所述中央处理单元的内存中与所述通道号对应的内存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102540431A CN101788956B (zh) | 2009-12-15 | 2009-12-15 | 多通道数据存储方法、装置和多通道数据接收系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102540431A CN101788956B (zh) | 2009-12-15 | 2009-12-15 | 多通道数据存储方法、装置和多通道数据接收系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101788956A CN101788956A (zh) | 2010-07-28 |
CN101788956B true CN101788956B (zh) | 2012-02-22 |
Family
ID=42532176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102540431A Active CN101788956B (zh) | 2009-12-15 | 2009-12-15 | 多通道数据存储方法、装置和多通道数据接收系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101788956B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375790B (zh) * | 2010-08-12 | 2014-03-12 | 杭州华三通信技术有限公司 | 共享总线传输系统及方法 |
CN102929799B (zh) * | 2012-10-17 | 2016-04-13 | 北京西塔网络科技股份有限公司 | 数据采集存储方法及系统 |
CN103064807B (zh) * | 2012-12-17 | 2015-08-19 | 福建星网锐捷网络有限公司 | 多通道直接存储器存取控制器 |
CN103246622B (zh) * | 2013-04-10 | 2015-12-02 | 华为技术有限公司 | 一种扩展内存的方法、内存节点、主节点及系统 |
CN104239252A (zh) * | 2013-06-21 | 2014-12-24 | 华为技术有限公司 | 数据存储系统的数据传输方法、装置及系统 |
CN103761060B (zh) * | 2014-01-27 | 2017-02-15 | 华为技术有限公司 | 一种数据处理方法及服务器 |
CN105446911B (zh) * | 2014-05-29 | 2018-05-25 | 展讯通信(上海)有限公司 | 终端设备的内存访问控制方法与装置 |
CN112969002B (zh) * | 2021-02-04 | 2023-07-14 | 浙江大华技术股份有限公司 | 基于PCIe协议的图像传输方法和装置、存储介质 |
-
2009
- 2009-12-15 CN CN2009102540431A patent/CN101788956B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101788956A (zh) | 2010-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101788956B (zh) | 多通道数据存储方法、装置和多通道数据接收系统 | |
CN102377682B (zh) | 基于定长单元存储变长分组的队列管理方法及设备 | |
CN110083461B (zh) | 一种基于fpga的多任务处理系统及方法 | |
CN101032085B (zh) | 数据交织装置 | |
CN105468547A (zh) | 一种基于axi总线的便捷可配置帧数据存取控制系统 | |
CN101639811B (zh) | 数据写入的方法、控制器和多控制器系统 | |
CN110069443B (zh) | 一种基于fpga控制的ufs存储阵列系统及数据传输方法 | |
CN101882126A (zh) | 多个HT总线到单个PCIe总线的桥接装置及其方法 | |
CN101729423B (zh) | 通用公共无线接口cpri端口间数据传输的方法及装置 | |
CN105528299A (zh) | 读取命令排程方法以及使用该方法的装置 | |
CN103150273A (zh) | 位级内存控制器及控制方法 | |
CN100397374C (zh) | 存储器带宽控制装置 | |
US8209470B2 (en) | CPU data bus PLD/FPGA interface using dual port RAM structure built in PLD | |
CN102650932A (zh) | 数据的访问方法、设备和系统 | |
CN110413536B (zh) | 一种多数据格式高速并行NandFlash存储装置 | |
CN102118304B (zh) | 一种信元交换方法和装置 | |
CN101604300B (zh) | 存储系统 | |
CN1987824A (zh) | 存储器控制电路及存储器控制方法 | |
CN101488119B (zh) | 地址译码方法、装置及单板 | |
TWI631565B (zh) | 快閃記憶體之廢料收集方法以及使用該方法的裝置 | |
US8359446B2 (en) | Method for processing data using triple buffering | |
CN203950033U (zh) | 高速记录雷达回波数据的设备 | |
CN106855789B (zh) | 快闪存储器的废料收集方法以及使用该方法的装置 | |
CN103176927B (zh) | 在两总线间进行序列位址位元转换的装置 | |
CN101763313B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |