CN110109785B - 内存容量获取方法、装置、计算机设备及可读存储介质 - Google Patents
内存容量获取方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN110109785B CN110109785B CN201910305939.1A CN201910305939A CN110109785B CN 110109785 B CN110109785 B CN 110109785B CN 201910305939 A CN201910305939 A CN 201910305939A CN 110109785 B CN110109785 B CN 110109785B
- Authority
- CN
- China
- Prior art keywords
- address bit
- data
- memory
- predicted
- last
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了内存容量获取方法、装置、计算机设备及可读存储介质,属于内存容量检测领域。本发明通过将两个不同的数据分别写入内存的首地址位和预测末地址位,根据邻近的两个预测末地址位中的数据与首地址位中数据相同是否相同确认内存的末地址位(即:首地址位的数据是否被改写),从而实现了快速准确识别内存容量的目的。
Description
技术领域
本发明涉及内存容量检测领域,尤其涉及一种内存容量获取方法、装置、计算机设备及可读存储介质。
背景技术
内存颗粒作为电子系统当中最核心的部件之一,一直以来都是电子系统研究和应用最广泛的对象;当前的智能电子产品,如手机、PC、机顶盒、电视机等,内存的特性成为了衡量硬件配置高低的一个重要核心点,也是决定智能电子产品相关能力的一个大的技术特点,被设计生产者乃至消费者重点关注。
系统运行时需根据内存空间容量计算当前运行的最大有效内存空间,以便于控制后续所有相关的程序或者数据在有效的存储空间当中存储运行。如果系统不知道当前内存的有效空间大小,就会出现内存管理混乱的情况。如:若相关程序被分配到了错误的内存空间中,将会改写原本正常的数据,发生程序互相踩踏甚至是死机等问题,无法保证系统程序安全稳定地运行。由此可见,获取内存范围大小对系统的运行至关重要。
目前对于内存容量的获取,通常使用一个SOC(系统级芯片)IO口,通过预设的不同内存容量的配置组合,对应到给芯片IO送对应不同的电平值,通过ADC(模拟电压信号转0和1的数字信号给芯片端识别)采样对比,形成一个特定的内存容量的“ID”号,让系统能够比较快速地获取与之对应的内存容量。虽然这种方法可以做到对特定有限使用的类型的内存容量快速识别,但是需要额外增加相关的硬件电路,增加了额外的器件成本、PCB空间以及SOC、ADC及接口的开销,且可扩展的种类和方式受限于外围硬件电路,兼容性并不好。
发明内容
为了解决获取内存容量需要外围硬件配合的问题,现提供一种旨在无需外围硬件配合可高效准确的对内容容量进行检测识别的内存容量获取方法、装置、计算机设备及可读存储介质。
本发明提供了一种内存容量获取方法,包括下述步骤:
将两个不同的数据分别写入内存的首地址位和预测末地址位;
调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位。
优选的,所述将两个不同的数据分别写入内存的首地址位和预测末地址位的步骤,包括:
将第一数据写入所述内存的首地址位;
将与所述第一数据不同的第二数据写入所述内存的所述预测末地址位,所述预测末地址位为2的N次方,N为正整数。
优选的,所述调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位的步骤,包括:
A1.识别所述首地址位与所述预测末地址位中的数据是否相同,若是,执行步骤A2;若否,执行步骤A3;
A2.令N=N-1,将不同于所述首地址位中的数据写入所述预测末地址位,执行步骤S4;
A3.令N=N+a,a为大于等于1的整数,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤A1;
A4.识别所述首地址位与所述预测末地址位中的数据是否相同,若否,则确认当前所述预测末地址位为末地址位;若是,返回执行步骤A2。
优选的,所述根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位的步骤,包括:
B1.识别所述首地址位与所述预测末地址位中的数据是否相同,若是,执行步骤B2;若否,执行步骤B3;
B2.令N=N-b,b为大于1的整数,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤B1;
B3.令N=N+1,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤B4;
B4.识别所述首地址位与所述预测末地址位中的数据是否相同,若是,则确认当前所述预测末地址位为末地址位;若否,返回执行步骤B3。
本发明还提供了一种内存容量获取装置,包括:
输入单元,用于将两个不同的数据分别写入内存的首地址位和预测末地址位;
识别单元,用于调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位。
优选的,所述输入单元用于将第一数据写入所述内存的首地址位;
所述输入单元还用于将与所述第一数据不同的第二数据写入所述内存的所述预测末地址位,所述预测末地址位为2的N次方,N为正整数。
本发明还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述方法的步骤。
上述技术方案的有益效果:
本技术方案中,通过将两个不同的数据分别写入内存的首地址位和预测末地址位,根据邻近的两个预测末地址位中的数据与首地址位中数据相同是否相同确认内存的末地址位(即:首地址位的数据是否被改写),从而实现了快速准确识别内存容量的目的。
附图说明
图1为本发明所述的内存容量获取方法的一种实施例的方法流程图;
图2为本发明所述的内存容量获取装置的一种实施例的模块图;
图3为本发明所述的计算机设备一实施例的硬件架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于一个特定的颗粒,更大的容量意味着相同条件下需要更多的地址线做相应的存储空间选择和扩展,地址线数目直接限定了最高支持访问内存容量的上限。内存的空间的访问也是在有效地址范围内一一对应的。
内存的有效地址范围与内存容量大小计算方法如下:
每颗内存颗粒当中内容的存储都是以以下类似二维矩阵列表的形式存储的:
需要说明的是:R表示行,C表示列。
例如,若要确定上表中目标Y的位置,需先找到这个地址对应属于第2行,然后再找到第6列,就可以确定目标Y的位置(上表为4行×8列矩阵用地址线来表示即需要共有22×23=25种)。而每个颗粒当中实际这种页会有多个,被称之为Bank。
以一个内存颗粒容量大小为2Gb的颗粒为例:该颗粒的配置为:有8个Bank(即:每个颗粒拥有的“页”数),每个Bank都有A0-A13共14条行地址线;A0-A9共10条列地址线;颗粒输出共有16根数据线;该颗粒的容量的计算过程如下:
每张矩阵表地址种类为:
214(14行)×210(10列)=224;
一颗颗粒当中有8个这样的相同的矩阵表,所以一共的地址种类为:
224×23=227;
而每个地址,对应一次会输出16个bit数(16根数据线),所以这颗内存颗粒总的可存储的数据容量为:
227×24=231=2Gb;
假定以下所有的DDR颗粒的有效列地址数均为A0-A9(为一固定值),Bank数目均为8个,默认的一个SOC系统为32bit位宽(即一个地址对应会输出32个bit数据)。当系统上电启动后,DDR部分初始化以及相关的稳定工作所必须的参数设定和校准工作完成后,即可以进入正常的识别流程。
假设某一颗SOC总共有3种DDR容量的实际搭配应用,组合如下:
(1)匹配2颗16bit位宽,单颗颗粒容量为1Gb(两颗总容量为2Gb);根据对应DDR容量计算方法,两颗总容量为2Gb=231;223(行列组成的单“页”大小)×23(共有8张页)×25(每个地址对应输出32个bit数据)=231;
所以:对应需要的扩展地址范围需要23根地址线,10根列地址线:A0/A1/A2/A3/A4/A5/A6/A7/A8/A9;得到实际有效行地址线数目为13根:A0/A1/A2/A3/A4/A5/A6/A7/A8/A9/A10/A11/A12。
(2)匹配2颗16bit位宽,单颗颗粒容量为2Gb(两颗总容量为4Gb);根据对应DDR容量计算方法,两颗总容量为4Gb=232;224(行列组成的单“页”大小)×23(共有8张页)×25(每个地址对应输出32个bit数据)=232;
对应需要的扩展地址范围需要24根地址线,10根列地址线:A0/A1/A2/A3/A4/A5/A6/A7/A8/A9;得到实际有效行地址线数目为14根:A0/A1/A2/A3/A4/A5/A6/A7/A8/A9/A10/A11/A12/A13。
(3)匹配2颗16bit位宽,单颗颗粒容量为4Gb(两颗总容量为8Gb);根据对应DDR容量计算方法,两颗总容量为8Gb=233;225(行列组成的单“页”大小)×23(共有8张页)×25(每个地址对应输出32个bit数据)=233;对应需要的扩展地址范围需要25根地址线。10根列地址线:A0/A1/A2/A3/A4/A5/A6/A7/A8/A9;得到实际有效行地址线数目为15根:A0/A1/A2/A3/A4/A5/A6/A7/A8/A9/A10/A11/A12/A13/A14。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
如图1所示,本发明提供了一种内存容量获取方法,包括下述步骤:
S1.将两个不同的数据分别写入内存的首地址位和预测末地址位;
S2.调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位。
在本实施例中,通过将两个不同的数据分别写入内存的首地址位和预测末地址位,根据邻近的两个预测末地址位中的数据与首地址位中数据相同是否相同确认内存的末地址位(即:首地址位的数据是否被改写),从而实现了快速准确识别内存容量的目的。
在优选的实施例中,所述步骤S1将两个不同的数据分别写入内存的首地址位和预测末地址位的步骤,包括:
S11.将第一数据写入所述内存的首地址位;
S12.将与所述第一数据不同的第二数据写入所述内存的所述预测末地址位,所述预测末地址位为2的N次方,N为正整数。
在本步骤中,为了判定首地址位的数据是否被改写,需分别在首地址位和预测末地址位分别写入不同的数据,若写入后读取首地址位和预测末地址位表示首地址位的数据被改写,当前预测末地址位不是真实的末地址位,且内存真实末地址位小于该预测末地址位。若首地址位的数据未被改写表示当前内存真实末地址位可能是真实地址位。
在优选的实施例中,所述步骤S2调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位的步骤,包括:
A1.识别所述首地址位与所述预测末地址位中的数据是否相同,若是,执行步骤A2;若否,执行步骤A3;
A2.令N=N-1,将不同于所述首地址位中的数据写入所述预测末地址位,执行步骤S4;
A3.令N=N+a,a为大于等于1的整数,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤A1;
A4.识别所述首地址位与所述预测末地址位中的数据是否相同,若否,则确认当前所述预测末地址位为末地址位;若是,返回执行步骤A2。
在本实施例中,当首地址位与所述预测末地址位中的数据相同时,表示当前预测末地址位不是真实的末地址位,且内存真实末地址位小于该预测末地址位,需以每次降低预测末地址位1次方的方式,确定真实的末地址。
在优选的实施例中,所述步骤S2所述根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位的步骤,包括:
B1.识别所述首地址位与所述预测末地址位中的数据是否相同,若是,执行步骤B2;若否,执行步骤B3;
B2.令N=N-b,b为大于1的整数,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤B1;
B3.令N=N+1,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤B4;
B4.识别所述首地址位与所述预测末地址位中的数据是否相同,若是,则确认当前所述预测末地址位为末地址位;若否,返回执行步骤B3。
在本实施例中,当首地址位与所述预测末地址位中的数据不相同时,表示当前内存真实末地址位可能是真实地址位,需以每次增加预测末地址位1次方的方式,确定真实的末地址。
作为举例而非限定(如下实例旨在阐述检测原理的实现过程,为了更简单明了地进行原理说明,假定被举例不同容量的颗粒,列地址均为10位,而行地址会随着不同容量大小对应增加和减少,可能会与实际的配置情况有一些出入,但不影响这一原理的应用和实际效果。实际更多不同类型的内存配置,可以基于这个基本原理,再多增加判定条件灵活变通即可),以默认按照2Gb的配置范围对内存容量进行识别的过程如下:
(一)首先先向内存的0地址(即:首地址)发送一个特定的数据0xaaaaaaaa(十六进制)(先发送行物理0地址位:000000000000000(二进制,按照最大的8Gb所需要用到的A0-A14共计15根行地址线全送0。假设实际如果只是2Gb,只用到其中A0-A12的13根地址线,高位A13和A14没有接到颗粒上,也没有任何影响而被忽略),再发送列物理0地址:0000000000(二进制,10根列地址线全送0),然后往选通的0行0列地址当中写入了0xaaaaaaaa数据(此数据在接下来的检测中会被用来作为比对之用);
(二)然后开始高位检测机制:向内存先发送行物理地址位10000000000000(二进制,A0-A13共计14根行地址线(14根行地址线为4Gb的有效行数配置)),再发送列物理0地址0000000000(二进制,10根列地址线全送0),往对应选通的10000000000000(二进制)行0000000000(二进制)列地址发送一个0x55555555数据(十六进制数)。即行列地址对应的存储单元当中被写入了0x555555555;
读取(一)中对应0地址存储单元当中的值,若依旧为0xaaaaaaaa而未被改写,则说明(二)操作当中,A13行地址线确实是一根有效的地址线。所以当前的配置DDR颗粒容量至少是4Gb;
而若此时实际配置的为2Gb颗粒的话,由于对应的有效行地址线只有13根,A12-A0,A13实际无效为悬空NC状态,当进行(二)当中的操作时,A13对应的“1”会直接被忽略掉,实际颗粒接收到的有效行地址A12-A0为0000000000000(二进制),即(二)当中的操作,实际颗粒端进行的是往0000000000000行0000000000列地址当中写入数据0x555555555。0地址存储单元当中预先写好的0xaaaaaaaa,被改写成0x55555555,所以再回头去读0地址存储单元当中的值时,将会得到被改写成为0x55555555后的值,而不再是最初写入的0xaaaaaaaa;
若确定当前A13行地址线有效,说明当前的配置DDR颗粒容量至少是4Gb,下一步继续用类似的方式判断更高位行地址线A14是否有效,确认当前的内存容量配置是否可能是8Gb的情况:
由于以上操作判断目前的颗粒容量至少为4Gb,前面对应的0地址当中的0xaaaaaaaa依旧依然存在,未被改写。
(三)再向内存先发送行物理地址位100000000000000(二进制,A0-A14共计15根行地址线)),然后再发送列物理0地址0000000000(二进制,10根列地址线全送0)发送一个0x55555555数据(十六进制数)。即100000000000000行0000000000列地址对应的存储单元当中被写入了0x555555555;
(四)读取对应0地址存储单元当中的值,若依旧为0xaaaaaaaa,则说明(三)操作当中,15根行地址线全部都能对应到相应的内存单元,A14是一根有效地址线。所以当前的配置DDR颗粒容量是8Gb;
而若此时实际配置的为4Gb颗粒的话,由于对应的有效行地址线只有14根,A13-A0,A14实际无效为悬空NC状态,当进行(三)当中的操作时,A14对应的“1”会直接被忽略掉,实际颗粒接收到的有效行地址A13-A0为00000000000000(二进制);即(三)的操作实际颗粒端进行的是往00000000000000行0000000000列地址当中写入数据0x555555555。这样就会把0地址存储单元当中预先写好的0xaaaaaaaa,改写成0x55555555,所以再回头去读0地址存储单元当中的值时,将会得到被改写成为0x55555555后的值,而不再是最初写入的0xaaaaaaaa;到此,针对同一平台,这三种不用的DDR内存容量的搭配情况可以快速判断出具体是哪一种大小配置。
本发明可以不用依赖任何外部硬件识别电路,降低了额外器件成本以及PCB空间的开销。同时也能够高效地对内存容量大小进行快速准确地检测识别,且识别和检测的容量大小的类型数目无限制,兼容性、通用性和灵活性强。
本发明能够准确快速地识别平台系统内存空间大小,节省硬件资源成本,同时兼容性可扩展性强。本发明可针对不同的DDR类型如DDR3/LPDDR3/DDR4/LPDDR4以及每种DDR的不同的连接扩展方式都可以采用本发明获取内存容量。
如图2所示,本发明还提供了一种内存容量获取装置1,包括:输入单元11和识别单元12,其中:
输入单元11,用于将两个不同的数据分别写入内存的首地址位和预测末地址位;
识别单元12,用于调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据相同是否相同确认所述内存的末地址位。
在本实施例中,通过将两个不同的数据分别写入内存的首地址位和预测末地址位,根据邻近的两个预测末地址位中的数据与首地址位中数据相同是否相同确认内存的末地址位(即:首地址位的数据是否被改写),从而实现了快速准确识别内存容量的目的。
在优选的实施例中,所述输入单元11用于将第一数据写入所述内存的首地址位;
所述输入单元11还用于将与所述第一数据不同的第二数据写入所述内存的所述预测末地址位,所述预测末地址位为2的N次方,N为正整数。
在本步骤中,为了判定首地址位的数据是否被改写,需分别在首地址位和预测末地址位分别写入不同的数据,若写入后读取首地址位和预测末地址位表示首地址位的数据被改写,当前预测末地址位不是真实的末地址位,且内存真实末地址位小于该预测末地址位。若首地址位的数据未被改写表示当前内存真实末地址位可能是真实地址位。
为实现上述目的,本发明还提供一种计算机设备2,该计算机设备2包括多个计算机设备2,内存容量获取装置1的组成部分可分散于不同的计算机设备2中,计算机设备2可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备2至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器23、网络接口22以及内存容量获取装置1(参考图3)。需要指出的是,图3仅示出了具有组件-的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如内存容量获取方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器23在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器23通常用于控制计算机设备2的总体操作例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器23用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的内存容量获取装置1等。
所述网络接口22可包括无线网络接口或有线网络接口,该网络接口22通常用于在所述计算机设备2与其他计算机设备2之间建立通信连接。例如,所述网络接口22用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图3仅示出了具有部件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述内存容量获取装置1还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器23)所执行,以完成本发明。
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器23执行时实现相应功能。本实施例的计算机可读存储介质用于存储内存容量获取装置1,被处理器23执行时实现内存容量获取方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种内存容量获取方法,其特征在于,包括下述步骤:
将两个不同的数据分别写入内存的首地址位和预测末地址位;
调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据是否相同确认所述内存的末地址位;
所述将两个不同的数据分别写入内存的首地址位和预测末地址位的步骤,包括:
将第一数据写入所述内存的首地址位;
将与所述第一数据不同的第二数据写入所述内存的所述预测末地址位,所述预测末地址位为2的N次方,N为正整数;
所述调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据是否相同确认所述内存的末地址位的步骤,包括:
A1. 识别所述首地址位与所述预测末地址位中的数据是否相同,若是,执行步骤A2;若否,执行步骤A3;
A2. 令N=N-1,将不同于所述首地址位中的数据写入所述预测末地址位,执行步骤S4;
A3. 令N=N+a,a为大于等于1的整数,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤A1;
A4. 识别所述首地址位与所述预测末地址位中的数据是否相同,若否,则确认当前所述预测末地址位为末地址位;若是,返回执行步骤A2。
2.根据权利要求1所述的内存容量获取方法,其特征在于,所述根据邻近的两个预测末地址位中的数据与所述首地址位中数据是否相同确认所述内存的末地址位的步骤,包括:
B1. 识别所述首地址位与所述预测末地址位中的数据是否相同,若是,执行步骤B2;若否,执行步骤B3;
B2. 令N=N-b,b为大于1的整数,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤B1;
B3. 令N=N+1,将不同于所述首地址位中的数据写入所述预测末地址位,返回执行步骤B4;
B4. 识别所述首地址位与所述预测末地址位中的数据是否相同,若是,则确认当前所述预测末地址位为末地址位;若否,返回执行步骤B3。
3.一种内存容量获取装置,其特征在于,采用如权利要求1或2所述的内存容量获取方法,包括:
输入单元,用于将两个不同的数据分别写入内存的首地址位和预测末地址位;
识别单元,用于调整所述预测末地址位并写入数据,根据邻近的两个预测末地址位中的数据与所述首地址位中数据是否相同确认所述内存的末地址位。
4.根据权利要求3所述的内存容量获取装置,其特征在于,所述输入单元用于将第一数据写入所述内存的首地址位;
所述输入单元还用于将与所述第一数据不同的第二数据写入所述内存的所述预测末地址位,所述预测末地址位为2的N次方,N为正整数。
5.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1或2所述方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1或2所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305939.1A CN110109785B (zh) | 2019-04-16 | 2019-04-16 | 内存容量获取方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305939.1A CN110109785B (zh) | 2019-04-16 | 2019-04-16 | 内存容量获取方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109785A CN110109785A (zh) | 2019-08-09 |
CN110109785B true CN110109785B (zh) | 2023-03-31 |
Family
ID=67485569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910305939.1A Active CN110109785B (zh) | 2019-04-16 | 2019-04-16 | 内存容量获取方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109785B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111273852A (zh) * | 2018-12-04 | 2020-06-12 | 智微科技股份有限公司 | 存储器区块大小判定方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620618A (zh) * | 2009-07-24 | 2010-01-06 | 中兴通讯股份有限公司 | 内存存储数据的维护方法与装置 |
CN102968380A (zh) * | 2012-11-02 | 2013-03-13 | 深圳市同洲电子股份有限公司 | 内存文件系统中内存分区的管理方法和装置 |
CN105989104A (zh) * | 2015-02-13 | 2016-10-05 | 华为技术有限公司 | 一种确定大数据流中的特殊数据项的方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100764052B1 (ko) * | 2006-08-03 | 2007-10-08 | 삼성전자주식회사 | 유동적 어드레스 바운더리를 갖는 플래시 메모리 장치 및그것의 프로그램 방법 |
CN101241492B (zh) * | 2007-02-06 | 2011-05-11 | 中兴通讯股份有限公司 | 具有容量动态控制功能的内存数据存储装置及其实现方法 |
US8106680B1 (en) * | 2008-07-11 | 2012-01-31 | Altera Corporation | Programmable logic device with a self-power down mechanism |
CN101477837B (zh) * | 2009-01-21 | 2011-10-19 | 炬力集成电路设计有限公司 | 一种存储器容量检测方法和装置 |
CN102306503B (zh) * | 2010-07-30 | 2014-03-12 | 深圳市江波龙电子有限公司 | 一种假容量存储器的检测方法及系统 |
CN102216912B (zh) * | 2011-05-28 | 2014-04-30 | 华为终端有限公司 | 内存容量的配置方法和装置 |
CN103365782A (zh) * | 2012-03-30 | 2013-10-23 | 上海申通地铁集团有限公司 | 内存管理方法 |
CN103116536B (zh) * | 2013-02-25 | 2016-02-24 | 杭州华澜微电子股份有限公司 | 存储装置的容量检测方法 |
CN105095095B (zh) * | 2014-05-12 | 2018-04-06 | 上海大学 | 一种计算机系统及数据读写方法 |
-
2019
- 2019-04-16 CN CN201910305939.1A patent/CN110109785B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620618A (zh) * | 2009-07-24 | 2010-01-06 | 中兴通讯股份有限公司 | 内存存储数据的维护方法与装置 |
CN102968380A (zh) * | 2012-11-02 | 2013-03-13 | 深圳市同洲电子股份有限公司 | 内存文件系统中内存分区的管理方法和装置 |
CN105989104A (zh) * | 2015-02-13 | 2016-10-05 | 华为技术有限公司 | 一种确定大数据流中的特殊数据项的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110109785A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190121730A1 (en) | Unaligned data coalescing | |
US20220398200A1 (en) | Memory protocol with programmable buffer and cache size | |
US10866736B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
US20190317892A1 (en) | Memory system, data processing system, and operating method of memory system | |
JP7229326B2 (ja) | メモリアドレス指定方法と関連するコントローラ、メモリデバイス、及びホスト | |
KR102507140B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN109901890B (zh) | 一种控制器加载多核固件的方法、装置、计算机设备及存储介质 | |
US11704260B2 (en) | Memory controller | |
CN110941395A (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
CN110109785B (zh) | 内存容量获取方法、装置、计算机设备及可读存储介质 | |
US20200117454A1 (en) | Vector registers implemented in memory | |
US20190278704A1 (en) | Memory system, operating method thereof and electronic apparatus | |
US10824557B2 (en) | Memory system performing variable read reclaim operation | |
US11720276B2 (en) | Memory system and controller for managing write status | |
US9864548B2 (en) | Memory module, electronic device and method | |
US11403035B2 (en) | Memory module including a controller and interfaces for communicating with a host and another memory module | |
US20160239227A1 (en) | Data Storage Device and Data Retrieval Method | |
US20240028260A1 (en) | Memory module interfaces | |
US11256565B2 (en) | Transaction metadata | |
US20220197792A1 (en) | Random seed generating circuit of memory system | |
US20200201566A1 (en) | Module processing resource | |
CN114968840A (zh) | 一种内存使用量控制方法及系统 | |
CN115705298A (zh) | 一种存储设备 | |
CN114519021A (zh) | 多接口存储装置及其控制方法 |
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 |