CN109828931B - 一种dram碎片管理方法及其装置 - Google Patents
一种dram碎片管理方法及其装置 Download PDFInfo
- Publication number
- CN109828931B CN109828931B CN201910073682.1A CN201910073682A CN109828931B CN 109828931 B CN109828931 B CN 109828931B CN 201910073682 A CN201910073682 A CN 201910073682A CN 109828931 B CN109828931 B CN 109828931B
- Authority
- CN
- China
- Prior art keywords
- data packet
- address
- fragments
- list
- available
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种DRAM碎片管理方法及其装置,该方法包括对DRAM的空间进行划分,以得到若干个碎片;将碎片与静态随机存储器所存储的列表进行映射;对静态随机存储器进行初始化;提取可用碎片;当数据包的大小是否为512字节时,将数据包写入单个可用碎片内;否则将数据包写入可用碎片内;对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表;并重复上述两个步骤直至数据包获取完毕,获取外部操作信息;根据外部操作信息以及地址列表读取存储在碎片内的数据包将读取的数据包所存储的碎片所对应的单元格进行处理。本发明实现减少软件对DRAM资源管理,降低CPU开销,提高DRAM使用效率。
Description
技术领域
本发明涉及固态硬盘,更具体地说是指一种DRAM碎片管理方法及其装置。
背景技术
随着科学技术的发展,社会的进步,DRAM(动态随机存取存储器,Dynamic RandomAccess Memory)应用越来越广泛,DRAM是最为常见的系统内存,小到可穿戴设备,大到飞机等大型设备,都会用到DRAM。DRAM的存贮容量从K字节、M字节、G字节、T字节呈几何状增长,由于DRAM的价格与容量大小息息相关,所以DRAM资源合理利用对产品成本至关重要。
在SSD(固态硬盘Solid State Device)控制器中,DRAM被多个模块进行访问,用来读写各模块的数据。目前小容量的DRAM的管理主要采用点阵图映射的方式,不够灵活,效率低,不能动态复用,而大容量的管理主要通过软件控制,需要CPU干预,效率也低。
因此,有必要设计一种新的方法,实现减少了软件对DRAM资源管理,降低CPU开销,提高DRAM使用效率。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种DRAM碎片管理方法及其装置。
为实现上述目的,本发明采用以下技术方案:一种DRAM碎片管理方法,包括:
对DRAM的空间进行划分,以得到若干个碎片;
将碎片与静态随机存储器所存储的列表进行映射;
对所述静态随机存储器进行初始化;
提取可用碎片;
获取需要写入的数据包;
判断所述数据包的大小是否为512字节;
若是,则将数据包写入单个可用碎片内,并进入获取外部操作信息的步骤;
若否,则将数据包写入可用碎片内;
对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表;
判断所述数据包是否获取完毕;
若否,则返回所述将数据包写入可用碎片内;
若是,则获取外部操作信息;
根据外部操作信息以及地址列表读取存储在碎片内的数据包;
将读取的数据包所存储的碎片所对应的单元格进行处理。
其进一步技术方案为:所述将碎片与静态随机存储器所存储的列表进行映射,包括:
获取静态随机存储器所存储的列表;
获取列表的每个单元格所对应的地址标识;
利用碎片在DRAM内的地址与地址标识的关系进行碎片与列表内每个单元格的映射。
其进一步技术方案为:所述对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表,包括:
按照数据包写入的顺序获取所述数据包所写入的所有可用碎片的地址,以得到数据包对应的所有碎片地址;
根据数据包对应的所有碎片地址获取列表内对应的单元格,以得到数据包对应的所有单元格;
在所述数据包对应的所有单元格内依次填写所述数据包写入且当前单元格所映射的可用碎片的下一可用碎片的地址,以得到地址列表。
其进一步技术方案为:所述根据外部操作信息以及地址列表读取存储在碎片内的数据包中,所述外部操作信息包括数据包所写入的第一个可用碎片的地址。
其进一步技术方案为:所述根据外部操作信息以及地址列表读取存储在碎片内的数据包,包括:
获取外部操作信息内的数据包所写入的第一个可用碎片的地址,以得到首地址;
根据所述首地址读取DRAM内对应碎片内的数据;
根据所述首地址获取地址列表内所对应的单元格;
读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址;
判断所述下一可用碎片地址是否是数据包写入的最后一个可用碎片地址;
若是,则输出所述数据包;
若否,则获取所述数据包写入的下一可用碎片地址对应的单元格,并返回读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址。
本发明还提供了一种DRAM碎片管理装置,包括:
划分单元,用于对DRAM的空间进行划分,以得到若干个碎片;
映射单元,用于将碎片与静态随机存储器所存储的列表进行映射;
初始化单元,用于对所述静态随机存储器进行初始化;
碎片提取单元,用于提取可用碎片;
数据包获取单元,用于获取需要写入的数据包;
第一判断单元,用于判断所述数据包的大小是否为512字节;
第一写入单元,用于若是,则将数据包写入单个可用碎片内;
第二写入单元,用于若否,则将数据包写入可用碎片内;
链接单元,用于对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表;
第二判断单元,用于判断所述数据包是否获取完毕;若否,则返回所述将数据包写入可用碎片内;
信息获取单元,若是,则获取外部操作信息;
读取单元,用于根据外部操作信息以及地址列表读取存储在碎片内的数据包;
处理单元,用于将读取的数据包所存储的碎片所对应的单元格进行处理。
其进一步技术方案为:所述映射单元包括:
列表获取子单元,用于获取静态随机存储器所存储的列表;
标识获取子单元,用于获取列表的每个单元格所对应的地址标识;
地址映射子单元,用于利用碎片在DRAM内的地址与地址标识的关系进行碎片与列表内每个单元格的映射。
其进一步技术方案为:所述链接单元包括:
地址获取子单元,用于按照数据包写入的顺序获取所述数据包所写入的所有可用碎片的地址,以得到数据包对应的所有碎片地址;
单元格获取子单元,用于根据数据包对应的所有碎片地址获取列表内对应的单元格,以得到数据包对应的所有单元格;
单元格填写子单元,用于在所述数据包对应的所有单元格内依次填写所述数据包写入且当前单元格所映射的可用碎片的下一可用碎片的地址,以得到地址列表。
其进一步技术方案为:所述读取单元包括:
首地址获取子单元,用于获取外部操作信息内的数据包所写入的第一个可用碎片的地址,以得到首地址;
数据读取子单元,用于根据所述首地址读取DRAM内对应碎片内的数据;
首单元格获取子单元,用于根据所述首地址获取地址列表内所对应的单元格;
下一地址获取子单元,用于读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址;
地址判断子单元,用于判断所述下一可用碎片地址是否是数据包写入的最后一个可用碎片地址;
数据包输出子单元,用于若是,则输出所述数据包;
下一单元格获取子单元,用于若否,则获取所述数据包写入的下一可用碎片地址对应的单元格,并读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址。
本发明与现有技术相比的有益效果是:本发明通过对DRAM进行空间划分,得到若干个碎片,利用静态随机存储器所存储的列表内单元格与碎片在DRAM内地址的关系进行映射,且在写入数据包时,静态随机存储器对列表内数据包所存储的可用碎片对应的单元格内填写的内容进行更新以达到可用碎片所对应单元格的链接,读取数据包时利用静态随机存储器内的列表进行数据包存储的可用碎片内的数据读取,利用静态随机存储器对DRAM内的碎片所存储的数据进行动态管理,实现减少软件对DRAM资源管理,降低CPU开销,提高DRAM使用效率。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种DRAM碎片管理方法的应用场景示意图;
图2为本发明实施例提供的一种DRAM碎片管理方法的流程示意图;
图3为本发明实施例提供的一种DRAM碎片管理方法的子流程示意图;
图4为本发明实施例提供的一种DRAM碎片管理方法的子流程示意图;
图5为本发明实施例提供的一种DRAM碎片管理方法的子流程示意图;
图6为本发明实施例提供的碎片与列表映射的示意图;
图7为本发明实施例提供的可用碎片链接的示意图;
图8为本发明实施例提供的静态随机存储器初始化的示意图;
图9为本发明实施例提供的部分可用碎片形成的示意图;
图10为本发明实施例提供的一种DRAM碎片管理装置的示意性框图;
图11为本发明实施例提供的一种DRAM碎片管理装置的映射单元的示意性框图;
图12为本发明实施例提供的一种DRAM碎片管理装置的链接单元的示意性框图;
图13为本发明实施例提供的一种DRAM碎片管理装置的读取单元的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的一种DRAM碎片管理方法的应用场景示意图。图2为本发明实施例提供的一种DRAM碎片管理方法的示意性流程图。该一种DRAM碎片管理应用于带有固态硬盘的设备中,且与另一设备进行交互,带有固态硬盘的设备中设有静态随机存储器以及DRAM,将DRAM的存储空间按照512字节或者4K字节分成多个碎片,每个碎片的地址与静态随机存储器内的列表的单元格地址标识一一对应,以形成映射关系,在写或者读数据时,都可利用静态随机存储器对DRAM内的碎片进行动态管理,实现减少了软件对DRAM资源管理,降低CPU开销,提高DRAM使用效率。
图2是本发明实施例提供的一种DRAM碎片管理方法的流程示意图。如图2所示,该方法包括以下步骤S110至S230。
S110、对DRAM的空间进行划分,以得到若干个碎片。
在本实施例中,碎片是指可存储一个固定大小的数据,该数据的大小可以是512字节或4K字节,在本实施例中,一个碎片存储一个512字节的数据,若一个数据包的大小为4K字节,则需要占据四个碎片,四个碎片需要进行动态虚拟链接,以便于保证数据包在存储和读取的时候不会出现丢失的现象。
S120、将碎片与静态随机存储器所存储的列表进行映射。
在本实施例中,使用地址动态管理的方式进行映射,可实现降低CPU开销,提高DRAM的利用效率。
在一实施例中,如图3所示,上述的步骤S120可包括步骤S121~S123。
S121、获取静态随机存储器所存储的列表。
在静态随机存储器内存储一个带有地址标识的列表,如图6所示,该列表的每个单元格都有地址标识,而每个单元格内会存储接下来需要读取数据所在碎片的地址。
S122、获取列表的每个单元格所对应的地址标识;
S123、利用碎片在DRAM内的地址与地址标识的关系进行碎片与列表内每个单元格的映射。
如图6所示,碎片在DRAM内的地址与地址标识一一对应的关系进行碎片与列表每个单元格的映射,也就是单元格的地址标识指的是对应碎片在DRAM内的地址。
S130、对所述静态随机存储器进行初始化。
当所有碎片内均没有存储数据,都是可用碎片,此时将单元格链接相当于对静态随机存储器进行初始化,如图8所示,将所有空闲的可用碎片链接起来,相当于第一个单元格内所填写的地址为第二个单元格对应的地址标识,也就是前一单元格内所填写的地址为下一单元格对应的地址标识。
S140、提取可用碎片。
在本实施例中,可用碎片指的是没有存储数据的空闲的碎片。当数据从DRAM内读出出来后,会将数据所存储的DRAM内的碎片释放,以形成可用碎片。
S150、获取需要写入的数据包。
在本实施例中,该数据包是指大小为512字节的数据或者4K字节的数据。
S160、判断所述数据包的大小是否为512字节;
S170、若是,则将数据包写入单个可用碎片内,并进入步骤S210。
当需要写入的数据包为512字节的数据包时,只需要占据一个可用碎片,可直接写入单个可用碎片即可。
S180、将数据包写入可用碎片内。
若需要写入的数据包为4K字节的数据包时,相当于四个512字节的数据包,则每接收一个512字节的数据包时,先将该接收的512字节的数据包写入到可用碎片内。
S190、对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表。
在本实施例中,地址列表是指每个带有地址标识的单元格内均写有下一读取的碎片的地址。
需要写入的数据包按照碎片所能接收的数据大小分别写入到若干个可用碎片内,这些碎片只有动态链接起来了才能确保数据包的写入和读出的完整性。
在一实施例中,如图4所示,上述的步骤S190可包括步骤S191~S193。
S191、按照数据包写入的顺序获取所述数据包所写入的所有可用碎片的地址,以得到数据包对应的所有碎片地址。
在本实施例中,超过512字节的数据包会被按照512字节为一个单位拆分后存储到多个碎片内,在存储过程中,静态随机存储器会对列表内的每个单元所填写的内容进行更新。
S192、根据数据包对应的所有碎片地址获取列表内对应的单元格,以得到数据包对应的所有单元格;
S193、在所述数据包对应的所有单元格内依次填写所述数据包写入且当前单元格所映射的可用碎片的下一可用碎片的地址,以得到地址列表。
具体地,单元格内都填写下一读取的可用碎片的地址,如图7所示,以确保整个数据包能够完整的存储和读取。
S200、判断所述数据包是否获取完毕;
若否,则返回所述步骤S180。
重复上述的步骤S180~S190直至整个完整的数据包均被写入可用碎片内。
S210、若是,则获取外部操作信息;
在本实施例中,该外部操作信息包括数据包所写入的第一个可用碎片的地址。
S220、根据外部操作信息以及地址列表读取存储在碎片内的数据包。
在存储数据包后,DRAM会发送一个信息给到操作终端,该信息包括了数据包所写入的第一个可用碎片的地址,当操作终端得到该信息且进行读取数据包时,则会对固态硬盘发送带有该地址的外部操作信息,以便于进行数据包的读取。只有当接收到该外部操作信息,才会进行数据包的读取。
在一实施例中,上述的步骤S220可包括步骤S221~S227。
S221、获取外部操作信息内的数据包所写入的第一个可用碎片的地址,以得到首地址。
S222、根据所述首地址读取DRAM内对应碎片内的数据;
S223、根据所述首地址获取地址列表内所对应的单元格;
S224、读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址;
S225、判断所述下一可用碎片地址是否是数据包写入的最后一个可用碎片地址;
S226、若是,则输出所述数据包;
S227、若否,则获取所述数据包写入的下一可用碎片地址对应的单元格,并返回所述步骤S224。
数据包在存储时会针对其所在的可用碎片对应的单元格进行链接,因此只需要得知数据包所存储的第一个可用碎片的地址,便可从静态随机存储器内的地址列表找到首地址所对应的单元格,并依照单元格内所写入的地址读取该地址所对应的可用碎片内的数据,重复上述步骤,直至数据包所存储的可用碎片的数据均读取完毕。
在本实施例中,数据包所存储的最后一个可用碎片的所对应单元格内会填入一个结束标识号,比如end等标识号,以标记当前数据包的读取已结束。
S230、将读取的数据包所存储的碎片所对应的单元格进行处理。
当数据包被完整取出时,则对单元格内所填写的内容进行清除,对。在一实施例中,清除后还可以对单元格进行动态链接,具体可以分为两种情况,一是所有碎片均被释放,也就是所有碎片内均没有存储数据,都是可用碎片,此时将单元格链接相当于对静态随机存储器进行初始化,如图8所示,将所有空闲的可用碎片链接起来,相当于第一个单元格内所填写的地址为第二个单元格对应的地址标识,也就是前一单元格内所填写的地址为下一单元格对应的地址标识;另一种情况则是部分碎片被释放,也就是部分零散或聚集的碎片内没有存储数据,如图9所示,则按照当前单元格内依次填写入下一可用碎片的地址,也就是下一可用碎片对应的单元格地址标识,以得到可用碎片,且该可用碎片一定是放置在所有可用碎片的后面,也就是每次读取数据包后所得到的可用碎片会依次放置在所有可用碎片的最后位置。当数据包没有被完整取出时,则直接结束,不会进行单元格内写入的内容的清除。
上述的一种DRAM碎片管理方法,通过对DRAM进行空间划分,得到若干个碎片,利用静态随机存储器所存储的列表内单元格与碎片在DRAM内地址的关系进行映射,且在写入数据包时,静态随机存储器对列表内数据包所存储的可用碎片对应的单元格内填写的内容进行更新以达到可用碎片所对应单元格的链接,读取数据包时利用静态随机存储器内的列表进行数据包存储的可用碎片内的数据读取,利用静态随机存储器对DRAM内的碎片所存储的数据进行动态管理,实现减少软件对DRAM资源管理,降低CPU开销,提高DRAM使用效率。
图10是本发明实施例提供的一种DRAM碎片管理装置300的示意性框图。如图10所示,对应于以上一种DRAM碎片管理方法,本发明还提供一种DRAM碎片管理装置300。该一种DRAM碎片管理装置300包括用于执行上述一种DRAM碎片管理方法的单元。
具体地,请参阅图10,该DRAM碎片管理装置300包括:
划分单元301,用于对DRAM的空间进行划分,以得到若干个碎片;
映射单元302,用于将碎片与静态随机存储器所存储的列表进行映射;
初始化单元303,用于对所述静态随机存储器进行初始化;
碎片提取单元304,用于提取可用碎片;
数据包获取单元305,用于获取需要写入的数据包;
第一判断单元306,用于判断所述数据包的大小是否为512字节;
第一写入单元307,用于若是,则将数据包写入单个可用碎片内;
第二写入单元308,用于若否,则将数据包写入可用碎片内;
链接单元309,用于对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表;
第二判断单元310,用于判断所述数据包是否获取完毕;若否,则返回所述将数据包写入可用碎片内;
信息获取单元311,若是,则获取外部操作信息;
读取单元312,用于根据外部操作信息以及地址列表读取存储在碎片内的数据包;
处理单元313,用于将读取的数据包所存储的碎片所对应的单元格进行处理。
在一实施例中,如图11所示,所述映射单元302包括:
列表获取子单元3021,用于获取静态随机存储器所存储的列表;
标识获取子单元3022,用于获取列表的每个单元格所对应的地址标识;
地址映射子单元3023,用于利用碎片在DRAM内的地址与地址标识的关系进行碎片与列表内每个单元格的映射。
在一实施例中,如图12所示,所述链接单元309包括:
地址获取子单元3091,用于按照数据包写入的顺序获取所述数据包所写入的所有可用碎片的地址,以得到数据包对应的所有碎片地址;
单元格获取子单元3092,用于根据数据包对应的所有碎片地址获取列表内对应的单元格,以得到数据包对应的所有单元格;
单元格填写子单元3093,用于在所述数据包对应的所有单元格内依次填写所述数据包写入且当前单元格所映射的可用碎片的下一可用碎片的地址,以得到地址列表。
在一实施例中,如图13所示,所述读取单元312包括:
首地址获取子单元3121,用于获取外部操作信息内的数据包所写入的第一个可用碎片的地址,以得到首地址;
数据读取子单元3122,用于根据所述首地址读取DRAM内对应碎片内的数据;
首单元格获取子单元3123,用于根据所述首地址获取地址列表内所对应的单元格;
下一地址获取子单元3124,用于读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址;
地址判断子单元3125,用于判断所述下一可用碎片地址是否是数据包写入的最后一个可用碎片地址;
数据包输出子单元3126,用于若是,则输出所述数据包;
下一单元格获取子单元3127,用于若否,则获取所述数据包写入的下一可用碎片地址对应的单元格,并读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述一种DRAM碎片管理装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种DRAM碎片管理方法,其特征在于,包括:
对DRAM的空间进行划分,以得到若干个碎片;
将碎片与静态随机存储器所存储的列表进行映射;
对所述静态随机存储器进行初始化;
提取可用碎片;
获取需要写入的数据包;
判断所述数据包的大小是否为512字节;
若是,则将数据包写入单个可用碎片内,并进入获取外部操作信息的步骤;
若否,则将数据包写入可用碎片内;
对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表,其中,在静态随机存储器内存储一个带有地址标识的列表,该列表的每个单元格都有地址标识,每个单元格内会存储接下来需要读取数据所在碎片的地址;
判断所述数据包是否获取完毕;
若否,则返回所述将数据包写入可用碎片内;
若是,则获取外部操作信息;
根据外部操作信息以及地址列表读取存储在碎片内的数据包;
将读取的数据包所存储的碎片所对应的单元格进行处理。
2.根据权利要求1所述的一种DRAM碎片管理方法,其特征在于,所述将碎片与静态随机存储器所存储的列表进行映射,包括:
获取静态随机存储器所存储的列表;
获取列表的每个单元格所对应的地址标识;
利用碎片在DRAM内的地址与地址标识的关系进行碎片与列表内每个单元格的映射。
3.根据权利要求1所述的一种DRAM碎片管理方法,其特征在于,所述对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表,包括:
按照数据包写入的顺序获取所述数据包所写入的所有可用碎片的地址,以得到数据包对应的所有碎片地址;
根据数据包对应的所有碎片地址获取列表内对应的单元格,以得到数据包对应的所有单元格;
在所述数据包对应的所有单元格内依次填写所述数据包写入且当前单元格所映射的可用碎片的下一可用碎片的地址,以得到地址列表。
4.根据权利要求1所述的一种DRAM碎片管理方法,其特征在于,所述根据外部操作信息以及地址列表读取存储在碎片内的数据包中,所述外部操作信息包括数据包所写入的第一个可用碎片的地址。
5.根据权利要求1至4任一项所述的一种DRAM碎片管理方法,其特征在于,所述根据外部操作信息以及地址列表读取存储在碎片内的数据包,包括:
获取外部操作信息内的数据包所写入的第一个可用碎片的地址,以得到首地址;
根据所述首地址读取DRAM内对应碎片内的数据;
根据所述首地址获取地址列表内所对应的单元格;
读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址;
判断所述下一可用碎片地址是否是数据包写入的最后一个可用碎片地址;
若是,则输出所述数据包;
若否,则获取所述数据包写入的下一可用碎片地址对应的单元格,并返回读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址。
6.一种DRAM碎片管理装置,其特征在于,包括:
划分单元,用于对DRAM的空间进行划分,以得到若干个碎片;
映射单元,用于将碎片与静态随机存储器所存储的列表进行映射;
初始化单元,用于对所述静态随机存储器进行初始化;
碎片提取单元,用于提取可用碎片;
数据包获取单元,用于获取需要写入的数据包;
第一判断单元,用于判断所述数据包的大小是否为512字节;
第一写入单元,用于若是,则将数据包写入单个可用碎片内;
第二写入单元,用于若否,则将数据包写入可用碎片内;
链接单元,用于对数据包所写入的可用碎片所对应的列表中的单元格进行链接,以形成地址列表,其中,在静态随机存储器内存储一个带有地址标识的列表,该列表的每个单元格都有地址标识,每个单元格内会存储接下来需要读取数据所在碎片的地址;
第二判断单元,用于判断所述数据包是否获取完毕;若否,则返回所述将数据包写入可用碎片内;
信息获取单元,若是,则获取外部操作信息;
读取单元,用于根据外部操作信息以及地址列表读取存储在碎片内的数据包;
处理单元,用于将读取的数据包所存储的碎片所对应的单元格进行处理。
7.根据权利要求6所述的一种DRAM碎片管理装置,其特征在于,所述映射单元包括:
列表获取子单元,用于获取静态随机存储器所存储的列表;
标识获取子单元,用于获取列表的每个单元格所对应的地址标识;
地址映射子单元,用于利用碎片在DRAM内的地址与地址标识的关系进行碎片与列表内每个单元格的映射。
8.根据权利要求7所述的一种DRAM碎片管理装置,其特征在于,所述链接单元包括:
地址获取子单元,用于按照数据包写入的顺序获取所述数据包所写入的所有可用碎片的地址,以得到数据包对应的所有碎片地址;
单元格获取子单元,用于根据数据包对应的所有碎片地址获取列表内对应的单元格,以得到数据包对应的所有单元格;
单元格填写子单元,用于在所述数据包对应的所有单元格内依次填写所述数据包写入且当前单元格所映射的可用碎片的下一可用碎片的地址,以得到地址列表。
9.根据权利要求8所述的一种DRAM碎片管理装置,其特征在于,所述读取单元包括:
首地址获取子单元,用于获取外部操作信息内的数据包所写入的第一个可用碎片的地址,以得到首地址;
数据读取子单元,用于根据所述首地址读取DRAM内对应碎片内的数据;
首单元格获取子单元,用于根据所述首地址获取地址列表内所对应的单元格;
下一地址获取子单元,用于读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址;
地址判断子单元,用于判断所述下一可用碎片地址是否是数据包写入的最后一个可用碎片地址;
数据包输出子单元,用于若是,则输出所述数据包;
下一单元格获取子单元,用于若否,则获取所述数据包写入的下一可用碎片地址对应的单元格,并读取所述单元格内的数据,以得到所述数据包写入且当前单元格所对应的可用碎片的下一可用碎片地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910073682.1A CN109828931B (zh) | 2019-01-25 | 2019-01-25 | 一种dram碎片管理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910073682.1A CN109828931B (zh) | 2019-01-25 | 2019-01-25 | 一种dram碎片管理方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109828931A CN109828931A (zh) | 2019-05-31 |
CN109828931B true CN109828931B (zh) | 2020-12-01 |
Family
ID=66862497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910073682.1A Active CN109828931B (zh) | 2019-01-25 | 2019-01-25 | 一种dram碎片管理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828931B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116340214B (zh) * | 2023-02-28 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 缓存数据存读方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049397A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院上海微系统与信息技术研究所 | 一种基于新型存储器的固态硬盘内部缓存管理方法及系统 |
CN105005510A (zh) * | 2015-07-02 | 2015-10-28 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9335950B2 (en) * | 2013-03-15 | 2016-05-10 | Western Digital Technologies, Inc. | Multiple stream compression and formatting of data for data storage systems |
US10459636B2 (en) * | 2017-03-24 | 2019-10-29 | Sandisk Technologies Llc | System and method for managing data in non-volatile memory systems having multiple mapping layers |
JP2019008730A (ja) * | 2017-06-28 | 2019-01-17 | 東芝メモリ株式会社 | メモリシステム |
-
2019
- 2019-01-25 CN CN201910073682.1A patent/CN109828931B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049397A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院上海微系统与信息技术研究所 | 一种基于新型存储器的固态硬盘内部缓存管理方法及系统 |
CN105005510A (zh) * | 2015-07-02 | 2015-10-28 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109828931A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101533408B (zh) | 一种海量数据的处理方法及处理装置 | |
CN106776358B (zh) | Dimm ssd寻址性能技术 | |
CN104503707A (zh) | 读取数据的方法以及装置 | |
CN101983376B (zh) | 访问装置、信息记录装置、信息记录系统、文件管理方法和程序 | |
US20100199081A1 (en) | Apparatus and method for downloading contents using an interior mass storage in a portable terminal | |
CN104216835A (zh) | 一种实现内存融合的方法及装置 | |
CN111857840A (zh) | 基本输入输出系统bios启动方法及装置 | |
US7310698B2 (en) | Method and apparatus for extending memory addressing | |
CN105393228A (zh) | 读写闪存中数据的方法、装置及用户设备 | |
CN109828931B (zh) | 一种dram碎片管理方法及其装置 | |
CN109478171B (zh) | 提高openfabrics环境中的吞吐量 | |
CN109086008A (zh) | 固态硬盘的数据处理方法以及固态硬盘 | |
CN111737161B (zh) | Flash存储器的文件传输方法、终端及存储介质 | |
CN106980471B (zh) | 一种提高智能设备的硬盘写入性能的方法及装置 | |
CN112199039B (zh) | 虚拟存储管理方法及处理器 | |
US20080162856A1 (en) | Method for dynamic memory allocation on reconfigurable logic | |
CN110990207B (zh) | 基于Whitley平台的BPS内存测试方法、系统、终端及存储介质 | |
CN108958749A (zh) | 实现封装形式的bios数据刷写的方法、装置及设备 | |
CN115190102B (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
CN101976229A (zh) | 一种系统中外部设备的数据读取方法、系统及装置 | |
CN109144853B (zh) | 一种软件定义无线电SoC芯片调试系统 | |
CN109597577A (zh) | 一种处理nvme协议读写命令的方法、系统及相关装置 | |
CN107656697B (zh) | 一种在存储介质上操作数据的方法和装置 | |
CN112015672A (zh) | 一种存储系统中数据处理方法、装置、设备及存储介质 | |
US10437802B2 (en) | Single IO operation integer-value database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |