存储装置、电子设备及存储装置管理方法与流程

文档序号:12363574阅读:277来源:国知局
存储装置、电子设备及存储装置管理方法与流程

本发明涉及存储器技术领域,特别是涉及存储装置、电子设备及存储装置管理方法。



背景技术:

在USB或PCIE等的数据传输总线中,一个完整的数据包由两个部分组成,一部分是数据包的包头,包含数据包的地址,传输序号等控制信息;另一部分就是数据负载;该USB3.0数据包包含12个字节的数据包头,和一个长度可变的数据负载(0到1024字节+4字节CRC32)

对于所述数据包的存储,可分为两部分存储器存储,其中第一部分用于存储数据包头部分,第二部分用于存储对应的数据负载部分;目前的数据写入方式为:当系统复位,各个存储器的读写地址复位到0,这样当存储一个完整的数据包时,数据包头存放在该第一部分的存储器0中,数据包负载部分存储在该第二部分的存储器0中,当一个完整的数据负载存储完成时,两部分的写地址分别加一,都指向下一个存储器,即当下一次存储时,下一个数据包的数据包头部分将存在第一部分的存储器1中,数据负载部分存储在第二部分的存储器1中,依次类推,数据存储一一对应。

此种方法的缺点是需要额外的控制逻辑,由于数据包负载的长度是不定的,每一个数据包长度都可能不一样,那么在存储数据包负载部分的时候,需要明确知道该数据包的长度,才能知道什么时候完成数据负载部分的写入动作,从而确保在正确时间将存储器写地址加一,指向下一个存储器,否则就容易出现错误。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供存储装置、电子设备及存储装置管理方法,用于解决现有技术中需要额外控制逻辑判断数据包负载长度的问题。

为实现上述目的及其他相关目的,本发明提供一种存储装置,包括:至少一第一级存储单元,包括:按地址顺序排列的多个第一存储器;各第一存储器依地址顺序进行循环读或写;至少一第二级存储单元,包括:按地址顺序排列且数量相同于第一存储器的第二存储器;各第二存储器依地址顺序进行循环读或写;其中,各所述第一存储器与第二存储器间有一一对应的地址关联关系,相关联的第一存储器和第二存储器分别用于存储一数据包的数据包头部分及数据负载部分;在所述第一级存储单元及第二级存储单元进行初始化的情况下,所述第一级存储单元内指向指定地址的第一存储器,而第二级存储单元内指向与该指定地址的第一存储器地址关联的第二存储器的前一个第二存储器;第一存储单元中的一第一存储器完成数据包头读或写动作后指向下一个第一存储器的地址,第二存储单元随所述数据包头读或写动作的完成而指向下一个第二存储器的地址进行对应数据负载部分的读或写动作。

于本发明的一实施例中,所述指定地址为第一级存储单元中第一个第一存储器的地址,与其地址关联的第二存储器为第二级存储单元中的第一个第二存储器。

于本发明的一实施例中,所述第一级存储单元中的第一存储器数量、及所述第一级存储单元中的第二存储器数量均为4个。

于本发明的一实施例中,所述第一级存储单元及第二级存储单元按先入先出的方式工作。

为实现上述目的及其他相关目的,本发明提供一种电子设备,包括:所述的存储装置。

于本发明的一实施例中,所述电子设备按USB3.X、或PCI协议来传输数据,X包括:0或1;其中,所述存储装置用于缓存所述传输的数据。

为实现上述目的及其他相关目的,本发明提供一种存储装置管理方法,应用于一存储装置,所述存储装置包括:至少一第一级存储单元和第二级存储单元;其中,所述第一级存储单元包括:按地址顺序排列的多个第一存储器;所述第二级存储单元,包括:按地址顺序排列且数量相同于第一存储器的第二存储器;所述方法包括:初始化所述第一级存储单元及第二级存储单元,令所述第一级存储单元内指向指定地址的第一存储器,而第二级存储单元内指向与该指定地址的第一存储器地址关联的第二存储器的前一个第二存储器;在第一存储单元中的一第一存储器进行数据包头读或写动作的完成,令第二存储单元随之指向下一个第二存储器的地址以进行对应数据负载部分的读或写动作;其中,所述第一级存储单元中的各第一存储器、以及第二级存储单元中的各第二存储器是依地址顺序进行循环读或写的。

于本发明的一实施例中,所述指定地址为第一级存储单元中第一个第一存储器的地址,与其地址关联的第二存储器为第二级存储单元中的第一个第二存储器。

于本发明的一实施例中,所述第一级存储单元中的第一存储器数量、及所述第一级存储单元中的第二存储器数量均为4个。

于本发明的一实施例中,所述第一级存储单元及第二级存储单元按先入先出的方式工作。

如上所述,本发明的存储装置、电子设备及存储装置管理方法,存储装置包括:至少一第一级存储单元和第二存储单元,第一级存储单元包括用于存储数据包的包头部分的多个第一存储器,第二存储单元包括用于存储数据包的数据负载部分的多个第二存储器,所述第一存储单元及第二存储单元是依地址顺序进行循环读写的,通过在初始化时设计将第二存储单元中所指向的地址为关联于第一存储单元中指定地址的第一存储器的第二存储器的前一个,并利用判断数据包头是否读或写完毕来令所述第二存储单元所指向地址向前移动一个而恰好将一个数据包的两部分分别存储于地址关联的一对第一存储器和第二存储器中,由于数据包头的长度是固定的,则不必如现有技术般需额外逻辑控制来判断数据包长度的问题,且保证了同一数据包中两部分数据对应地写或读。

附图说明

图1显示为本发明于一实施例中的存储装置的结构示意图。

图2a至2c显示为本发明于一实施例中的存储装置的数据包写入的过程示意图。

元件标号说明

100 存储装置

101 第一存储单元

102 第二存储单元

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明的技术方案,应用于存储器数的技术领域,例如,通过电子设备的存储器(例如ROM或RAM)或者控制芯片(例如MCU、SoC、MCU等)内的寄存器来进行对需传输数据的读写或缓存。

如图1所示,本发明提供一种存储装置100,包括:至少一第一级存储单元101及至少一第二级存储单元102。

所述第一级存储单元101包括:按地址顺序排列的多个第一存储器;各第一存储器依地址顺序进行循环读或写,所述第一级存储单元101中第一存储器的数量可为例如4个,即第一存储器0~第一存储器3,当按照第一存储器0至第一存储器3的顺序读/写完之后,即指向第一存储器0继续读/写,各所述第一存储器用于存储数据包的包头部分,所述第一级存储单元101的数量可按照实际需求加以变化。

所述第二级存储单元102的数量可与所述第一存储单元一一对应,亦可不对应,每个所述第二级存储单元102包括:按地址顺序排列且数量相同于第一存储器的第二存储器;各第二存储器依地址顺序进行循环读或写。于一实施例中,若第一存储器有4个,则第二存储器亦有对应数量的4个,可表示为第二存储器0~第二存储器3。

于本发明的一实施例中,各所述第一存储器与第二存储器间有一一对应的地址关联关系,也就是说,一个第一存储器关联于一个第二存储器,相关联的第一存储器和第二存储器分别用于存储一数据包的数据包头部分及数据负载部分。

在每次初始化所述存储装置100时,对所述第一级存储单元101及第二级存储单元102进行初始化,令所述第一级存储单元101内指向指定地址的第一存储器,而第二级存储单元102内指向与该指定地址的第一存储器地址关联的第二存储器的前一个第二存储器。于一实施例中,在初始化(或称复位)的情况下,所述指定地址例如为第一级存储单元101中第的第一个第一存储器,对应的,第二存储单元内指向其最后一个第二存储器,并且,第一存储单元中的一第一存储器完成数据包头读或写动作后指向下一个第一存储器的地址,第二存储单元随所述数据包头读或写动作的完成而指向下一个第二存储器的地址进行对应数据负载部分的读或写动作,也就是说,复位后若开始写数据包,则可利用第一个第一存储器和第一个第二存储器完成该数据包的数据包头部分和数据负载部分的存储,之后以此类推,直至所有的数据包的两个部分关联存储于各个第一存储器及第二存储器中。

举例来说,如图2a所示,第一级存储单元101包括:第一存储器0、第一存储器1、第一存储器2及第一存储器3;第二级存储单元102包括:第二存储器0、第二存储器1、第二存储器2及第二存储器3;且进行初始化的情况下,第一存储单元中指向第一存储器0的地址,第二存储单元中指向第二存储器3的地址。

如图2b所示,当数据包1写入时,该数据包1的数据包头部分先写入第一存储器0,当写入完成时(由于包头部分长度固定,可通过固定的控制逻辑对数据写入或读出第一存储器的数据来判断包头部分写或读动作的完成),从指向第一存储器0的地址移动至指向第一存储器1,并且,第二级存储单元102中从指向第二存储器3的地址前进一步而指向第二存储器0来写入数据包1的数据负载部分,进而如图2c所示,实现数据包1在地址关联的第一存储器0和第二存储器0中的存储;可以此类推之后数据包的写入,例如写入数据包头到第一存储器3之后回到指向第一存储器0,对应的,从指向第二存储器2的地址移动至指向第二存储器3。

图2a~图2c实施例中展示的是数据包写入的过程,同理,可以此类推数据包读出的过程,例如先从第一存储器0读取数据包1的数据包头部分,读取完毕后,移动指向第一存储器1的地址;第二级存储单元102从指向第二存储器3移动至第二存储器0的地址,读取第二存储器0中的数据包1的数据负载部分,完成数据包1的读取。

并且,写动作和读动作所使用的第一存储器和第二存储器的地址可以是不同的,例如写地址和读地址亦可,均可采用上述的控制逻辑完成数据包的写或读。

同时,从上述内容可知,所述第一级存储单元101中的各存储器及第二级存储单元102中的各存储器按先入先出(FIFO)的方式工作,作为先入先出缓存使用。

对应的,本发明提供一种具有所述的存储装置100电子设备,该电子设备可具有所述电子设备遵循USB3.X(例如USB3.0、3.1等,亦可根据相关技术的发展进步加以扩展)、或PCI协议的接口,优选的,其可利用所述存储装置100来缓存需传输的数据。

有关上述实施例中存储器读/写控制逻辑,其实质是对于存储器的地址管理,具体的,该控制逻辑优选通过硬件电路实现(当然,在其它实施例中亦可通过软件程序控制实现),对应其原理,本发明能提供一种存储装置100管理方法,应用于上述的存储装置100,所述方法包括:初始化所述第一级存储单元101及第二级存储单元102,令所述第一级存储单元101内指向指定地址的第一存储器,而第二级存储单元102内指向与该指定地址的第一存储器地址关联的第二存储器的前一个第二存储器;在第一存储单元中的一第一存储器进行数据包头读或写动作的完成,令第二存储单元随之指向下一个第二存储器的地址以进行对应数据负载部分的读或写动作;其中,所述第一级存储单元101中的各第一存储器、以及第二级存储单元102中的各第二存储器是依地址顺序进行循环读或写的。

于本发明的一实施例中,所述指定地址为第一级存储单元101中第一个第一存储器的地址,与其地址关联的第二存储器为第二级存储单元102中的第一个第二存储器。

于本发明的一实施例中,所述第一级存储单元101中的第一存储器数量、及所述第一级存储单元101中的第二存储器数量均为4个。

于本发明的一实施例中,所述第一级存储单元101及第二级存储单元102按先入先出的方式工作。

综上所述,本发明的存储装置、电子设备及存储装置管理方法,存储装置包括:至少一第一级存储单元和第二存储单元,第一级存储单元包括用于存储数据包的包头部分的多个第一存储器,第二存储单元包括用于存储数据包的数据负载部分的多个第二存储器,所述第一存储单元及第二存储单元是依地址顺序进行循环读写的,通过在初始化时设计将第二存储单元中所指向的地址为关联于第一存储单元中指定地址的第一存储器的第二存储器的前一个,并利用判断数据包头是否读或写完毕来令所述第二存储单元所指向地址向前移动一个而恰好将一个数据包的两部分分别存储于地址关联的一对第一存储器和第二存储器中,由于数据包头的长度是固定的,则不必如现有技术般需额外逻辑控制来判断数据包长度的问题,且保证了同一数据包中两部分数据对应地写或读。

本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1