一种数据读取方法及设备的制作方法

文档序号:6505729阅读:143来源:国知局
一种数据读取方法及设备的制作方法
【专利摘要】本发明实施例公开了一种数据读取方法及设备,涉及计算机领域,降低了大量数据连续读取过程中的操作复杂度和功耗。具体方案为:MC将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中;MC向存储器发送第一命令,以便存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC;其中,需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,第一命令用于激活存储器中的直接存储器存取DMA逻辑;MC接收存储器发送的需要读取的数据。本发明用于数据读取的过程中。
【专利说明】一种数据读取方法及设备

【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种数据读取方法及设备。

【背景技术】
[0002]众所周知,计算机系统一般由处理器、内存、输入设备、输出设备和总线五部分组成,其中内存是用来保存处理器运行所需的数据和指令,动态随机存取存储器(DynamicRandom Access Memory, DRAM)是目前计算机系统的内存的主流实现。
[0003]对DRAM中数据的读取一般都是通过行加列的方式实现的,具体的,当内存控制器(Memory Controller, MC)接收到中央处理器(Center Processing Unit, CPU)发送的数据访问指令时,首先对数据访问指令进行解析得到需要访问的数据在DRAM中的行地址和列地址,然后向DRAM发出行地址,以使得DRAM将该行地址对应行的数据存储在行缓冲区(row buffer)中,最后再将列地址发送至DRAM,这样DRAM根据接收到的列地址便可以从row buffer中选中需要读取的数据块,并通过DRAM和MC之间的数据线发送至MC的缓存中,再由MC将需要读取的数据块发送至CPU。由此可以看出,传统的数据读取方法能够在功能上满足访问需求,但在如读取大文件或者播放视频文件等场景下,CPU需要从DRAM中获取到连续的大量的数据,传统的方法是CPU向MC发送多个数据访问指令,以便MC不断的向DRAM发送多个列地址,这样以保证能够读取大量连续的数据,但是这样的操作复杂并且功耗闻。
[0004]对于这种需要连续读取大量数据的场景,现有技术提供一种解决方案,在第三代双倍数据率同步动态随机存取存储器(Double-Data-Rate Three Synchronous DynamicRandom Access Memory,DDR3SDRAM)的规范中,提出一种突发读(burst read)的操作,具体的是通过burst read命令,MC只需要向DRAM发出一个行地址和一个列地址,DRAM就可以将从该列地址开始的连续的N (NO)个数据块读出发送至MC。
[0005]现有技术中至少存在如下问题:众所周知,DRAM中一行数据的大小一般为4KB-64KB,而在DDR3SDRAM的规范中,从MC的角度来看是以最大8倍的数据位宽进行数据的读取,也就是说一次性最大读取数据的大小为512bit,粒度是比传统的64bit或128bit大,但是仍然远小于DRAM中一行数据的大小,若要读出整个row buffer中缓存的DRAM的一行数据,仍需要多次发出burst read命令,也就是说还是会出现操作复杂且功耗高等问题。因此,在需要连续读取大量数据的场景中,如何在降低操作复杂度,且降低功耗高已成为本领域技术人员研究的重要课题。


【发明内容】

[0006]本发明的实施例提供一种数据读取方法及设备,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]本发明的第一方面,提供一种数据读取方法,包括:
[0009]内存控制器MC将需要读取的数据在存储器中的行地址发送至所述存储器,以便所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中;
[0010]所述MC向所述存储器发送第一命令,以便所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑;
[0011]所述MC接收所述存储器发送的所述需要读取的数据。
[0012]结合第一方面,在一种可能的实现方式中,在所述内存控制器MC将需要读取的数据的行地址发送至存储器之前,还包括:
[0013]所述MC接收中央处理器CPU发送的数据访问指令;其中,所述数据访问指令中包括所述需要读取的数据在所述存储器中的所述行地址;
[0014]所述MC解析所述数据访问指令得到所述行地址。
[0015]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述数据访问指令中包括指示标识,所述指示标识用于指示所述需要读取的数据为所述行地址对应行的所有数据;
[0016]所述MC解析所述数据访问指令得到所述行地址,包括:
[0017]所述MC解析所述数据访问指令得到所述行地址和所述指示标识;
[0018]所述MC向所述存储器发送第一命令,包括:
[0019]所述MC根据所述指示标识向所述存储器发送所述第一命令。
[0020]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法还包括:
[0021]当所述缓冲区中存储的所述与所述行地址对应行的数据不需要写回所述存储器中与所述行地址对应的行中时,所述MC向所述存储器发送第二命令,以便所述存储器关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
[0022]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述MC接收所述存储器发送的所述需要读取的数据之后,还包括:
[0023]当所述存储器中与所述行地址对应行需进行数据清零时,所述MC向所述存储器发送第三命令,以便所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零,并将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
[0024]本发明的第二方面,提供一种数据读取方法,包括:
[0025]存储器接收内存控制器MC发送的行地址;其中,所述行地址为需要读取的数据在所述存储器中的行地址;
[0026]所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中;
[0027]所述存储器接收所述MC发送的第一命令;其中,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑;
[0028]所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据。
[0029]结合第二方面,在一种可能的实现方式中,还包括:
[0030]所述存储器接收所述MC发送的第二命令;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中;
[0031]所述存储器关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压。
[0032]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,在所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC之后,还包括:
[0033]所述存储器接收所述MC发送的第三命令;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零;
[0034]所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零;
[0035]所述存储器将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中。
[0036]本发明的第三方面,提供一种内存控制器,包括:
[0037]第一发送单元,用于将需要读取的数据在存储器中的行地址发送至所述存储器,以便所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中;
[0038]第二发送单元,用于向所述存储器发送第一命令,以便所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述内存控制器MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑;
[0039]第一接收单元,用于接收所述存储器发送的所述需要读取的数据。
[0040]结合第三方面,在一种可能的实现方式中,还包括:
[0041]第二接收单元,用于在所述第一发送单元将需要读取的数据的行地址发送至存储器之前,接收中央处理器CPU发送的数据访问指令;其中,所述数据访问指令中包括所述需要读取的数据在所述存储器中的所述行地址;
[0042]解析单元,用于解析所述第二接收单元得到的所述数据访问指令得到所述行地址。
[0043]结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述数据访问指令中包括指示标识,所述指示标识用于指示所述需要读取的数据为所述行地址对应行的所有数据;
[0044]所述解析单元,具体用于解析所述第二接收单元得到的所述数据访问指令得到所述行地址和所述指示标识;
[0045]所述第二发送单元,具体用于根据所述解析单元得到的所述指示标识向所述存储器发送所述第一命令。
[0046]结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,还包括:
[0047]第四发送单元,用于当所述缓冲区中存储的所述与所述行地址对应行的数据不需要写回所述存储器中与所述行地址对应的行中时,向所述存储器发送第二命令,以便所述存储器关闭与所述行地址对应的行,并将所述存储器中为位线(bitline)设置为预设电压;
[0048]其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
[0049]结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,还包括:
[0050]第五发送单元,用于在所述第一接收单元接收所述存储器发送的所述需要读取的数据之后,当所述存储器中与所述行地址对应行需进行数据清零时,向所述存储器发送第三命令,以便所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零,并将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
[0051]本发明的第四方面。提供一种存储器,包括:
[0052]第一接收单元,用于接收内存控制器MC发送的行地址;其中,所述行地址为需要读取的数据在所述存储器中的行地址;
[0053]存储单元,用于将所述存储器中与所述第一接收单元得到的所述行地址对应行的数据存储在所述存储器的缓冲区中;
[0054]第二接收单元,用于接收所述MC发送的第一命令;其中,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑;
[0055]发送单元,用于根据所述第二接收单元得到的所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据。
[0056]结合第四方面,在一种可能的实现方式中,还包括:
[0057]第三接收单元,用于接收所述MC发送的第二命令;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中;
[0058]处理单元,用于关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压。
[0059]结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,还包括:
[0060]第四接收单元,用于在所述发送单元根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC之后,接收所述MC发送的第三命令;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零;
[0061]清零单元,用于根据所述第四接收单元得到的所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零;
[0062]写回单元,用于将所述清零单元清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中。
[0063]本发明实施例提供的数据读取方法及设备,MC将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中,然后MC向存储器发送第一命令,以使得存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC,此时MC便可以接收存储器发送的需要读取的数据,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,DRAM通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。

【专利附图】

【附图说明】
[0064]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0065]图1为本发明一实施例提供的一种数据读取方法流程图;
[0066]图2为本发明另一实施例提供的一种数据读取方法流程图;
[0067]图3为本发明另一实施例提供的另一种数据读取方法流程图;
[0068]图4为本发明提供的数据读取操作的一种简化状态机示意图;
[0069]图5为本发明另一实施例提供的一种内存控制器组成示意图;
[0070]图6为本发明另一实施例提供的另一种内存控制器组成示意图;
[0071]图7为本发明另一实施例提供的一种存储器组成示意图;
[0072]图8为本发明另一实施例提供的另一种存储器组成示意图;
[0073]图9为本发明另一实施例提供的又一种内存控制器组成示意图;
[0074]图10为本发明另一实施例提供的又一种存储器组成示意图。

【具体实施方式】
[0075]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0076]本发明一实施例提供一种数据读取方法,如图1所示,该方法可以包括:
[0077]10UMC将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中。
[0078]其中,MC可以将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中存储的与该行地址对应行的数据存储在存储器的缓冲区中。
[0079]可选的,在MC可以将需要读取的数据在存储器中的行地址发送至存储器之前,MC可以接收CPU发送的数据访问指令,其中,该数据访问指令为CPU需要从存储器中读取数据时发送的,且该数据访问指令中包括需要读取的数据在存储器中的行地址,当MC接收到数据访问指令之后,便可以对接收到的数据访问指令进行解析,得到CPU需要读取的数据在存储器中的行地址。
[0080]进一步可选的,数据访问指令中还可以包括指示标识,该指示标识用于指示需要读取的数据为行地址对应行的所有数据,那么MC可以解析数据访问指令得到行地址和指示标识。
[0081]102、MC向存储器发送第一命令,以便存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC。其中,需要读取的数据为缓冲区中存储的与行地址对应行的所有数据。
[0082]其中,在读取大文件或者播放视频文件的应用场景中,需要从存储器中读取大量连续的数据,此时需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,那么MC便可以向存储器发送第一命令,以便存储器可以根据第一命令遍历所有的列地址,将缓冲区中存储的与行地址对应行的所有数据通过存储器和MC之间的数据线发送至MC的缓存中,这样在如读取大文件或者播放视频文件等需要连续读取大量数据的场景中,通过MC向存储器发送的单条命令,实现了连续大量数据的读取。其中该第一命令用于激活存储器中的直接存储器存取(Direct Memory Access, DMA)逻辑。
[0083]可选的,当数据访问指令包括指示标识,且MC解析数据访问指令得到该指示标识时,那么MC便可以根据该指示标识向存储器发送第一命令,具体的可以是在数据访问指令中用一个bit指示CPU需要读取大量连续的数据,那么此时MC才会向存储器发送第一命令,以便存储器可以将缓冲区中存储的与行地址对应行的所有数据读取出来。可以理解的是,若数据访问指令中未包含指示标识,或者包含了需要读取数据的列地址,那么可以按照现有技术直接向存储器发送列地址,以便存储器将与列地址对应的数据读取出来。
[0084]103、MC接收存储器发送的需要读取的数据。
[0085]其中,在MC向存储器发送第一命令,存储器根据第一命令遍历所有列地址将缓冲区中存储的与行地址对应行的数据发送至MC之后,MC便可以接收存储器发送的需要读取的数据,并将接收到的数据存储在MC的缓存中,以便将需要读取的数据发送至CPU,进而使得CPU获得需要读取的数据。
[0086]需要说明的是,本发明实施例中的存储器可以是DRAM,本发明实施例在此对存储器不做具体限制。
[0087]本发明实施例提供的数据读取方法,MC将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中,然后MC向存储器发送第一命令,以使得存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC,此时MC便可以接收存储器发送的需要读取的数据,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,DRAM通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0088]本发明另一实施例提供一种数据读取方法,如图2所示,该方法可以包括:
[0089]201、存储器接收MC发送的行地址。其中,该行地址为需要读取的数据在存储器中的行地址。
[0090]其中,当CPU需要进行数据的读取时,可以向MC发送数据读取指令,MC对接收到的数据读取指令进行解析,得到CPU需要读取的数据在存储器中的行地址,然后将解析得到的行地址发送至存储器,此时存储器便可以接收MC发送的行地址。
[0091]202、存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中。
[0092]其中,当MC接收到MC发送的行地址之后,便可以根据接收到的行地址,将存储器中与该行地址对应行的数据存储在存储器的缓冲区中。
[0093]203、存储器接收MC发送的第一命令。
[0094]其中,在读取大文件或者播放视频文件的应用场景中,需要从存储器中读取大量连续的数据,MC可以向存储器发送第一命令,然后存储器便可以接收MC发送的第一命令。其中该第一命令用于激活存储器中的DMA逻辑。
[0095]204、存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC。其中,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据
[0096]其中,当存储器接收到MC发送的第一命令之后,便可以激活存储器中的DMA逻辑,此时DMA逻辑便可以按照时序发出从O开始累加的列地址,这样存储器便可以遍历所有的列地址将缓冲区中存储的与行地址对应行的所有数据顺序的读出,得到需要读取的数据,并通过存储器与MC之间的数据线将需要读取的数据发送至MC的缓存中,以便MC将接收到的需要读取的数据发送至CPU,进而使得CPU获得需要读取的数据。
[0097]需要说明的是,本发明实施例中的存储器可以是DRAM,本发明实施例在此对存储器不做具体限制。
[0098]本发明实施例提供的数据读取方法,存储器根据接收到的MC发送的行地址,将存储器中与该行地址对应行的数据存储在存储器的缓冲区中,然后根据接收到的MC发送的第一命令,将存储器中的DMA逻辑激活,使得存储器可以遍历所有列地址将需要读取的数据发送至MC,以便MC将接收到的需要读取的数据发送至CPU,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,存储器通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0099]本发明另一实施例提供一种数据读取方法,如图3所示,该方法可以包括:
[0100]众所周知,在如读取大文件或者播放视频文件等连续读取大量数据的应用场景中,会先把数据从硬盘读取到内存中,然后以便CPU可以连续的读取大量的数据,但是现有技术中读取连续大量数据的方案有操作复杂,功耗大等缺陷,本发明实施例提供的数据读取的方法,通过添加新的命令,使得在连续读取大量数据的应用场景中,可以有效的降低大量数据连续读取过程中的操作复杂度和功耗,具体的实施过程可以参考以下步骤。
[0101]301、MC接收CPU发送的数据访问指令。
[0102]其中,当CPU需要进行数据的读取时,可以向MC发送数据访问指令,此时MC便可以接收CPU发送的数据访问指令。其中,该数据访问指令中可以包括需要读取的数据在存储器中的行地址,还可以包括指示标识,该指示标识用于指示需要读取的数据为行地址对应行的所有数据。
[0103]302,MC解析数据访问指令得到行地址和指示标识。
[0104]其中,当MC接收到CPU发送的数据访问指令之后,便可以对接收到的数据访问指令进行解析,得到数据访问指令中包含的行地址,以及数据访问指令中包含的指示标识。
[0105]303、MC将行地址发送至存储器。
[0106]其中,当MC解析数据访问指令得到行地址之后,可以向存储器发送该行地址,该行地址可以通过ACTIVE命令发送至存储器。
[0107]304、存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中。
[0108]其中,当存储器接收到MC发送的行地址之后,便可以将存储器中与行地址对应行的数据存储在存储器的缓冲区中。
[0109]305、MC根据指示标识向存储器发送第一命令。
[0110]其中,由步骤301可知,MC解析得到的指示标识是用于指示需要读取的数据为行地址对应行的所有数据,那么在本发明实施例中,MC不向存储器发送READ命令(其中该READ命令中包含需要访问的数据的列地址),而是向存储器发送本发明实施例添加的新命令,即MC向存储器发送第一命令,该第一命令用于激活存储器中的DMA逻辑。
[0111]需要说明的是,本发明实施例中新添加的第一命令可以复用现有技术中已有的控制命令使用的引脚来表示,例如,复用发送READ命令时使用的引脚;当然若存在已有的控制信号未使用的引脚,也可以不使用已有控制命令使用的引脚,而是采用未使用的引脚或未使用的引脚的组合来表示,例如DDR3的Read命令会首先使用A0-A15选中行,然后使用A0-A9,A11选中列,本发明实施例中可以采用发送列地址时未用到的A12-A15进行编码,比如采用A12-A15引脚为0001,来激活读取整行的DMA逻辑,以达到读取整行的目的,也就说当A12-A15引脚为0001时,表示MC向存储器发送了 RAS_READ命令。
[0112]306、存储器根据第一命令遍历所有列地址将需要读取的数据数据发送至MC。其中,需要读取的数据为缓冲区中存储的与行地址对应行的所有数据
[0113]其中,在本发明实施例中,当需要读取的数据为缓冲区中的存储的与行地址对应行的所有数据时,为了可以实现单条命令读取缓冲区中的存储的与行地址对应行的所有数据,本发明实施例在存储器中增加一个简单的DMA逻辑,该DMA逻辑在接收到MC发送的第一命令之后,可以按照时序控制发出从O开始累加的列地址,这样当存储器接收到MC发送的第一命令之后,存储器中的DMA逻辑被激活,此时存储器便可以遍历所有列地址,进而按照时序顺序的读取缓冲区中存储的与行地址对应行的所有数据,并将读取出来的数据通过与MC之间的数据线发送至MC的缓存中。例如,缓冲区的大小为4KB,并且缓冲区中存储的与行地址对应行的数据的大小也是4KB,存储器与MC之间的数据位宽为64bit,也就是8字节,根据存储器与MC之间的数据位宽和缓冲区的大小,可以得到列地址为9位,那么此时在存储器中添加的DMA逻辑需要其可以按照时序输出9位的列地址信号(0-511),以便存储器可以顺序的读取缓冲区中存储的与行地址对应行的所有数据,并将读取的所有数据发送至MC的缓存中。其中,为了保证存储器可以按照时序准确的读取出缓冲区的存储的数据,DMA逻辑需要能够严格按照存储器的读取时序产生列地址。
[0114]可选的,当MC接收到存储器发送的需要读取的数据时,可以执行以下步骤307:
[0115]307、MC将需要读取的数据发送至CPU。
[0116]其中,当MC接收到存储器发送的与行地址对应行的数据之后,便可以将接收到的与行地址对应行的数据发送至CPU,以便CPU获得需要读取的数据。
[0117]可选的,众所周知,在每次读取数据的过程中,还需要将缓冲区中存储的上一次访问的数据写回到存储器中的存储单元对应的行中,并将缓冲区的bitline设置为预设电压,但是在很多应用场景中,会出现读完之后就无用的数据,那么写回过程就变得没有意义,而且还会带来相应的功耗。例如,在内存资源紧张时,对换(Swap)技术就可以将当前不用的内存数据交换到磁盘以达到回收内存,在此时读出的数据就没必要再回写了。因此本发明实施例中步骤308-步骤309通过新添加的命令实现了读取后不需的数据不再进行写回,并为下一次数据的读取做好准备工作。
[0118]308、当缓冲区中存储的与行地址对应行的数据不需要写回存储器中与行地址对应的行中时,MC向存储器发送第二命令。
[0119]其中,当缓冲区中存储的与行地址对应行的数据不需要写回存储器中与行地址对应的行中时,MC可以向存储器发送第二命令。例如,第二命令为PRECHARGE_WITHOUT_RESTORE命令,且参考步骤305的描述,可以当A12-A15引脚为0010时,表示发出PRECHARGE_WITHOUT_RESTORE命令。其中,该第二命令用于指示存储器不需要将缓冲区中存储的与行地址对应行的数据写回到存储器中与行地址对应行中。
[0120]309、存储器关闭与行地址对应的行,并将存储器中的位线(bitline)设置为预设电压。
[0121]其中,当存储器接收到MC发送的第二命令之后,存储器不执行将缓冲区中存储的与行地址对应行的数据写回到存储器中与行地址对应行中的操作,而是直接关闭与行地址对应的行,并且将存储器中的bitline设置为预设电压,此时存储器就会进入空闲状态,等再次接收到MC发送的行地址时,再进入激活状态,进行下一次数据的读取操作。也就是说添加了新的用于指示存储器不需要将缓冲区中存储的与行地址对应行的数据写回到存储器中与行地址对应行中的命令之后,存储器进行读操作的简化状态机如图4所示,其中图4中的BA为BankActive的缩写,为存储区块激活,是组成存储器的存储颗粒的一个区块,PRE为precharge的缩写,指的是预先充电。需要说明的是,图4中所示的简化状态机中需要读取的数据为某行中的某列的数据,因此存储区域块激活之后根据列地址读取需要的数据。
[0122]需要说明的是,本发明实施例中步骤308-步骤309可以在步骤307后执行,可以在进行下一次的数据读取之前再执行,本发明实施例在此对步骤308-步骤309的具体执行时间不做限制。
[0123]可选的,在如操作系统的内核分配“零页(数据全为O的页)”给内核线程使用等应用场景中,操作系统和应用程序开发者为了程序数据安全,常有将分配的大块内存进行清零的操作,现有技术通过正常的写操作不停的向内存写零来实现,这样的操作效率很低。本发明实施例中步骤310-步骤311通过新添加的第三命令实现了存储器的整行清零,提高了清零操作的效率。
[0124]310、当存储器中与行地址对应行需进行数据清零时,MC向存储器发送第三命令。
[0125]其中,当存储器中与行地址对应行需进行数据清零时,MC向存储器发送第三命令,例如,第三命令为BUF_RESET命令,且参考表1,可以当A12-A15引脚为0011时,表示发出BUF_RESET命令,其中,该第三命令用于指示存储器将与行地址对应行的数据清零。
[0126]311、存储器根据第三命令将缓冲区中存储的与行地址对应行的数据全部清零,并将清零后的与行地址对应行的数据写回到存储器中与行地址对应的行中。
[0127]其中,当存储器接收到MC发送的第三命令时,可以选通缓冲区的自身清零逻辑或者选通为缓冲区添加清零逻辑,将缓冲区中存储的与行地址对应行的数据一次性全部清零,然后将清零后的与行地址对应行的数据写回到存储器中与行地址对应的行中。
[0128]本发明实施例提供的数据读取方法,MC将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中,然后MC向存储器发送第一命令,以使得存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC,此时MC便可以接收存储器发送的需要读取的数据,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,DRAM通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0129]并且,对于读取后不再使用的数据,存储器不再进行写回操作,进一步降低了功耗,且存储器通过将缓冲区高效清零,实现了对存储器中大块连续内存的清零,提高了清零操作的效率且减小了 CPU和MC的控制负担。
[0130]本发明另一实施例提供一种内存控制器,如图5所示,包括:第一发送单元41、第二发送单元42、第一接收单元43。
[0131]第一发送单元41,用于将需要读取的数据在存储器中的行地址发送至所述存储器,以便所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中。
[0132]第二发送单元42,用于向所述存储器发送第一命令,以便所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述内存控制器MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑。
[0133]第一接收单元43,用于接收所述存储器发送的所述需要读取的数据。
[0134]进一步的,所述内存控制器还可以包括:第二接收单元44、解析单元45。
[0135]第二接收单元44,用于在所述第一发送单元41将需要读取的数据的行地址发送至存储器之前,接收中央处理器CPU发送的数据访问指令;其中,所述数据访问指令中包括所述需要读取的数据在所述存储器中的所述行地址。
[0136]解析单元45,用于解析所述第二接收单元44得到的所述数据访问指令得到所述行地址。
[0137]进一步的,所述数据访问指令中包括指示标识,所述指示标识用于指示所述需要读取的数据为所述行地址对应行的所有数据。
[0138]所述解析单元45,具体用于解析所述第二接收单元44得到的所述数据访问指令得到所述行地址和所述指示标识;
[0139]所述第二发送单元42,具体用于根据所述解析单元45得到的所述指示标识向所述存储器发送所述第一命令。
[0140]进一步的,如图6所示,所述内存控制器还可以包括:第四发送单元46。
[0141]第四发送单元46,用于当所述缓冲区中存储的所述与所述行地址对应行的数据不需要写回所述存储器中与所述行地址对应的行中时,向所述存储器发送第二命令,以便所述存储器关闭与所述行地址对应的行,并将所述存储器中为位线(bitline)设置为预设电压。
[0142]其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
[0143]进一步的,所述内存控制器还可以包括:第五发送单元47。
[0144]第五发送单元47,用于在所述第一接收单元43接收所述存储器发送的所述需要读取的数据之后,当所述存储器中与所述行地址对应行需进行数据清零时,向所述存储器发送第三命令,以便所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零,并将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
[0145]本发明实施例提供的内存控制器,将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中,然后MC向存储器发送第一命令,以使得存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC,此时MC便可以接收存储器发送的需要读取的数据,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,DRAM通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0146]并且,对于读取后不再使用的数据,存储器不再进行写回操作,进一步降低了功耗,且存储器通过将缓冲区高效清零,实现了对存储器中大块连续内存的清零,提高了清零操作的效率且减小了 CPU和MC的控制负担。
[0147]本发明另一实施例提供一种存储器,如图7所示,包括:第一接收单元51、存储单元52、第二接收单元53、发送单元54。
[0148]第一接收单元51,用于接收内存控制器MC发送的行地址;其中,所述行地址为需要读取的数据在所述存储器中的行地址。
[0149]存储单元52,用于将所述存储器中与所述第一接收单元51得到的所述行地址对应行的数据存储在所述存储器的缓冲区中。
[0150]第二接收单元53,用于接收所述MC发送的第一命令;其中,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑。
[0151]发送单元54,用于根据所述第二接收单元53得到的所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据。
[0152]进一步的,如图8所示,所述存储器还可以包括:第三接收单元55、处理单元56。
[0153]第三接收单元55,用于接收所述MC发送的第二命令;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
[0154]处理单元56,用于关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压。
[0155]进一步的,所述存储器还可以包括:第四接收单元57、清零单元58、写回单元59。
[0156]第四接收单元57,用于在所述发送单元54根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC之后,接收所述MC发送的第三命令;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
[0157]清零单元58,用于根据所述第四接收单元57得到的所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零。
[0158]写回单元59,用于将所述清零单元58清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中。
[0159]本发明实施例提供的存储器,根据接收到的MC发送的行地址,将存储器中与该行地址对应行的数据存储在存储器的缓冲区中,然后根据接收到的MC发送的第一命令,将存储器中的DMA逻辑激活,使得存储器可以遍历所有列地址将需要读取的数据发送至MC,以便MC将接收到的需要读取的数据发送至CPU,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,存储器通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0160]并且,对于读取后不再使用的数据,存储器不再进行写回操作,进一步降低了功耗,且存储器通过将缓冲区高效清零,实现了对存储器中大块连续内存的清零,提高了清零操作的效率且减小了 CPU和MC的控制负担。
[0161]本发明另一实施例提供一种内存控制器,如图9所示,包括:发送器61、接收器62。
[0162]发送器61,用于将需要读取的数据在存储器中的行地址发送至所述存储器,以便所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中;
[0163]所述发送器61,还用于向所述存储器发送第一命令,以便所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述内存控制器MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑。
[0164]所述接收器62,用于接收所述存储器发送的所述需要读取的数据。
[0165]进一步的,所述接收器62,还用于在所述发送器61将需要读取的数据的行地址发送至存储器之前,接收中央处理器CPU发送的数据访问指令;其中,所述数据访问指令中包括所述需要读取的数据在所述存储器中的所述行地址。
[0166]所述内存控制器还可以包括:处理器63。
[0167]所述处理器63,用于解析所示接收器62得到的所述数据访问指令得到所述行地址。
[0168]进一步的,所述数据访问指令中包括指示标识,所述指示标识用于指示所述需要读取的数据为所述行地址对应行的所有数据。
[0169]所述处理器63,具体用于解析所述接收器62得到的所述数据访问指令得到所述行地址和所述指示标识。
[0170]所述发送器61,具体用于根据所述处理器63得到的所述指示标识向所述存储器发送所述第一命令。
[0171]进一步的,所述发送器61,还用于当所述缓冲区中存储的所述与所述行地址对应行的数据不需要写回所述存储器中与所述行地址对应的行中时,向所述存储器发送第二命令,以便所述存储器关闭与所述行地址对应的行,并将所述存储器中为位线(bitline)设置为预设电压。
[0172]其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
[0173]进一步的,所述发送器61,还用于在所述接收器62接收所述存储器发送的所述需要读取的数据之后,当所述存储器中与所述行地址对应行需进行数据清零时,向所述存储器发送第三命令,以便所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零,并将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
[0174]本发明实施例提供的内存控制器,将需要读取的数据在存储器中的行地址发送至存储器,以便存储器将存储器中与行地址对应行的数据存储在存储器的缓冲区中,然后MC向存储器发送第一命令,以使得存储器根据第一命令遍历所有列地址将需要读取的数据发送至MC,此时MC便可以接收存储器发送的需要读取的数据,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,DRAM通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0175]并且,对于读取后不再使用的数据,存储器不再进行写回操作,进一步降低了功耗,且存储器通过将缓冲区高效清零,实现了对存储器中大块连续内存的清零,提高了清零操作的效率且减小了 CPU和MC的控制负担。
[0176]本发明另一实施例提供一种存储器,如图10所示,包括:总线接口 71、处理器72,其中,所述总线接口 71用于与外部设备进行通信。
[0177]总线接口 71,用于接收内存控制器MC发送的行地址;其中,所述行地址为需要读取的数据在所述存储器中的行地址。
[0178]处理器72,用于将所述存储器中与所述总线接口 71得到的所述行地址对应行的数据存储在所述存储器的缓冲区中。
[0179]所述总线接口 71,还用于接收所述MC发送的第一命令;其中,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑。
[0180]所述总线接口 71,用于根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据。
[0181]进一步的,所述总线接口 71,还用于接收所述MC发送的第二命令;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
[0182]所述处理器72,还用于关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压。
[0183]进一步的,所述总线接口 71,还用于在所述根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC之后,接收所述MC发送的第三命令;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
[0184]所述处理器72,还用于根据所述总线接口 71得到的所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零;并将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中。
[0185]本发明实施例提供的存储器,根据接收到的MC发送的行地址,将存储器中与该行地址对应行的数据存储在存储器的缓冲区中,然后根据接收到的MC发送的第一命令,将存储器中的DMA逻辑激活,使得存储器可以遍历所有列地址将需要读取的数据发送至MC,以便MC将接收到的需要读取的数据发送至CPU,该需要读取的数据为缓冲区中存储的与行地址对应行的所有数据,存储器通过接收到的第一命令激活存储器中的DMA逻辑,以确保可以遍历所有列地址将缓冲区中存储的与行地址对应行的所有数据发送至MC,这样通过单条命令便可以读取缓冲区中的所有数据,降低了大量数据连续读取过程中的操作复杂度和功耗。
[0186]并且,对于读取后不再使用的数据,存储器不再进行写回操作,进一步降低了功耗,且存储器通过将缓冲区高效清零,实现了对存储器中大块连续内存的清零,提高了清零操作的效率且减小了 CPU和MC的控制负担。
[0187]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0188]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种数据读取方法,其特征在于,包括: 内存控制器MC将需要读取的数据在存储器中的行地址发送至所述存储器,以便所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中; 所述MC向所述存储器发送第一命令,以便所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑; 所述MC接收所述存储器发送的所述需要读取的数据。
2.根据权利要求1所述的数据读取方法,其特征在于,在所述内存控制器MC将需要读取的数据的行地址发送至存储器之前,还包括: 所述MC接收中央处理器CPU发送的数据访问指令;其中,所述数据访问指令中包括所述需要读取的数据在所述存储器中的所述行地址; 所述MC解析所述数据访问指令得到所述行地址。
3.根据权利要求2所述的数据读取方法,其特征在于,所述数据访问指令中包括指示标识,所述指示标识用于指示所述需要读取的数据为所述行地址对应行的所有数据; 所述MC解析所述数据访问指令得到所述行地址,包括: 所述MC解析所述数据访问指令得到所述行地址和所述指示标识; 所述MC向所述存储器发送第一命令,包括: 所述MC根据所述指示标识向所述存储器发送所述第一命令。
4.根据权利要求1-3中任一项所述的数据读取方法,其特征在于,所述方法还包括: 当所述缓冲区中存储的所述与所述行地址对应行的数据不需要写回所述存储器中与所述行地址对应的行中时,所述MC向所述存储器发送第二命令,以便所述存储器关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
5.根据权利要求1-3中任一项所述的数据读取方法,其特征在于,在所述MC接收所述存储器发送的所述需要读取的数据之后,还包括: 当所述存储器中与所述行地址对应行需进行数据清零时,所述MC向所述存储器发送第三命令,以便所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零,并将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
6.一种数据读取方法,其特征在于,包括: 存储器接收内存控制器MC发送的行地址;其中,所述行地址为需要读取的数据在所述存储器中的行地址; 所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中; 所述存储器接收所述MC发送的第一命令;其中,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑; 所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC ;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据。
7.根据权利要求6所述的数据读取方法,其特征在于,还包括: 所述存储器接收所述MC发送的第二命令;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中; 所述存储器关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压。
8.根据权利要求6所述的数据读取方法,其特征在于,在所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC之后,还包括: 所述存储器接收所述MC发送的第三命令;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零; 所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零; 所述存储器将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中。
9.一种内存控制器,其特征在于,包括: 第一发送单元,用于将需要读取的数据在存储器中的行地址发送至所述存储器,以便所述存储器将所述存储器中与所述行地址对应行的数据存储在所述存储器的缓冲区中; 第二发送单元,用于向所述存储器发送第一命令,以便所述存储器根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述内存控制器MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑; 第一接收单元,用于接收所述存储器发送的所述需要读取的数据。
10.根据权利要求9所述的内存控制器,其特征在于,还包括: 第二接收单元,用于在所述第一发送单元将需要读取的数据的行地址发送至存储器之前,接收中央处理器CPU发送的数据访问指令;其中,所述数据访问指令中包括所述需要读取的数据在所述存储器中的所述行地址; 解析单元,用于解析所述第二接收单元得到的所述数据访问指令得到所述行地址。
11.根据权利要求10所述的内存控制器,其特征在于,所述数据访问指令中包括指示标识,所述指示标识用于指示所述需要读取的数据为所述行地址对应行的所有数据; 所述解析单元,具体用于解析所述第二接收单元得到的所述数据访问指令得到所述行地址和所述指示标识; 所述第二发送单元,具体用于根据所述解析单元得到的所述指示标识向所述存储器发送所述第一命令。
12.根据权利要求9-11中任一项所述的内存控制器,其特征在于,还包括: 第四发送单元,用于当所述缓冲区中存储的所述与所述行地址对应行的数据不需要写回所述存储器中与所述行地址对应的行中时,向所述存储器发送第二命令,以便所述存储器关闭与所述行地址对应的行,并将所述存储器中为位线(bitline)设置为预设电压; 其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中。
13.根据权利要求9-11中任一项所述的内存控制器,其特征在于,还包括: 第五发送单元,用于在所述第一接收单元接收所述存储器发送的所述需要读取的数据之后,当所述存储器中与所述行地址对应行需进行数据清零时,向所述存储器发送第三命令,以便所述存储器根据所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零,并将清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零。
14.一种存储器,其特征在于,包括: 第一接收单元,用于接收内存控制器MC发送的行地址;其中,所述行地址为需要读取的数据在所述存储器中的行地址; 存储单元,用于将所述存储器中与所述第一接收单元得到的所述行地址对应行的数据存储在所述存储器的缓冲区中; 第二接收单元,用于接收所述MC发送的第一命令;其中,所述第一命令用于激活所述存储器中的直接存储器存取DMA逻辑; 发送单元,用于根据所述第二接收单元得到的所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC;其中,所述需要读取的数据为所述缓冲区中存储的与所述行地址对应行的所有数据。
15.根据权利要求14所述的存储器,其特征在于,还包括: 第三接收单元,用于接收所述MC发送的第二命令;其中,所述第二命令用于指示所述存储器不需要将所述缓冲区中存储的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应行中; 处理单元,用于关闭与所述行地址对应的行,并将所述存储器中的位线(bitline)设置为预设电压。
16.根据权利要求14所述的存储器,其特征在于,还包括: 第四接收单元,用于在所述发送单元根据所述第一命令遍历所有列地址将所述需要读取的数据发送至所述MC之后,接收所述MC发送的第三命令;其中,所述第三命令用于指示所述存储器将所述与所述行地址对应行的数据清零; 清零单元,用于根据所述第四接收单元得到的所述第三命令将所述缓冲区中存储的所述与所述行地址对应行的数据全部清零; 写回单元,用于将所述清零单元清零后的所述与所述行地址对应行的数据写回到所述存储器中与所述行地址对应的行中。
【文档编号】G06F13/16GK104281545SQ201310291218
【公开日】2015年1月14日 申请日期:2013年7月11日 优先权日:2013年7月11日
【发明者】张立新, 张义, 张科, 江涛 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1