用于管理存储器的方法和设备与流程

文档序号:14571681发布日期:2018-06-01 22:32阅读:123来源:国知局
用于管理存储器的方法和设备与流程

技术领域

本发明构思涉及一种用于管理存储器的方法和设备。



背景技术:

应用程序可包括被设计为直接为用户或在某些情况下为另一应用程序执行特定功能的任何程序。应用程序通常需要具有高性能的数据处理系统。因此,用于避免存储器延迟开销的各种存储器内数据复制方法已被使用。

在动态随机存取存储器(DRAM)中,数据复制是指将数据从DRAM的一个区域复制到DRAM的另一区域的处理。当在DRAM中复制数据并且中央处理器(CPU)介入此过程中时,DRAM的性能可能会恶化。



技术实现要素:

根据本发明构思的示例性实施例,提供了一种管理存储器的方法,所述方法包括:通过对齐存储器的多个页面来产生页面池;当接收到用于存储第一数据的请求时,使用所述页面池来分配与第一数据相应的目标页面;使用关于分配的目标页面的信息来更新页面表格。

根据本法明构思的示例性实施例,提供了一种用于管理存储器的设备,所述设备包括控制器,其中,所述控制器被配置为:通过对齐存储器的多个页面来产生页面池;当接收到用于存储第一数据的请求时,使用所述页面池来分配与第一数据相应的目标页面;使用关于分配的目标页面的信息来更新页面表格。

根据本法明构思的示例性实施例,提供了一种管理存储器的方法,所述方法包括:将存储器划分为多个页面,并通过对齐所述多个页面来产生页面池;当接收到用于存储器内复制的请求时,分配目标页面以具有与源页面的模组相同的模组;通过将与所述目标页面相应的物理地址映射到连续的逻辑地址来更新页面表格。

附图说明

从结合附图的以下详细描述将更加清楚地理解本发明构思的示例性实施例,其中,在附图中:

图1是根据本发明构思的示例性实施例的数据处理系统的框图;

图2是用于解释根据本发明构思的示例性实施例的复制数据的处理的框图;

图3是根据本发明构思的示例性实施例的管理存储器的方法的流程图;

图4是根据本发明构思的示例性实施例的存储器的框图;

图5是用于解释根据本发明构思的示例性实施例的由控制器执行的对齐页面的处理的示图;

图6是根据本发明构思的示例性实施例的页面池(page pool)的示图;

图7是用于解释根据本发明构思的示例性实施例的由控制器执行的更新页面表格的处理的示图;

图8是根据本发明构思的示例性实施例的管理存储器的方法的流程图;

图9是根据本发明构思的示例性实施例的管理存储器的方法的流程图;

图10是用于解释根据本发明构思的示例性实施例的由控制器执行的产生块池(chunk pool)的处理的示图;

图11是根据本发明构思的示例性实施例的块池的示图;

图12是根据本发明构思的示例性实施例的用于执行管理存储器的方法的应用程序接口(API)的示图;

图13A和图13B是示出根据本发明构思的示例性实施例的用于管理存储器的布置的框图。

具体实施方式

将参照附图更加充分地描述本发明构思的示例性实施例。

图1是根据本发明构思的示例性实施例的数据处理系统1的框图。

参照图1,数据处理系统1包括中央处理器(CPU)10和存储器30。此外,数据处理系统1包括图形处理单元(GPU)20。

CPU 10接收外部信息(例如,数据、命令、地址等),解释并计算计算机程序的指令,并输出计算结果。例如,CPU 10可解释并执行以机器语言提供的计算机程序的指令。CPU 10可通过在数据处理系统1内交换信息来控制数据处理系统1的整体操作。

当数据处理系统1包括GPU 20时,CPU 10通过使用路径数据产生将被发送到GPU 20的绘制调用(draw call)。此处使用的术语“路径”可表示构成将被渲染的对象的元素。换句话说,对象可包括通过连通至少一条路径而形成的闭合路径或闭合多边形。例如,路径可与一条线或一条曲线相应。

GPU 20接收绘制调用并通过使用存储于存储器30中的基元数据执行路径渲染。换句话说,GPU 20可通过使用基元数据计算帧中包括的每个像素的颜色值。此处使用的术语“帧”可表示将被显示在屏幕上的图像,并且通过对帧中包括的每个像素设置颜色来形成一幅图像。例如,一个像素可被设置为红色而另一像素可被设置为绿色。

例如,GPU 20可包括顶点着色器、光栅化器、片元着色器、像素着色器和帧缓冲器。此处使用的术语“基元”可表示渲染中使用的元素。在划分路径之后获得的结果可被称为基元,或者路径与基元可以相同。

存储器30存储用于操作CPU 10和GPU 20的信息或数据。存储器30还存储在CPU 10和GPU 20处理数据之后获得的结果。例如,存储器30可以是动态随机存取存储器(DRAM)。

存储器30中存储的数据可被复制到存储器30的另一区域。换句话说,数据可从存储器30的源区域被复制到存储器30的目标区域。例如,数据可从存储器30的第一区域被复制到存储器30的第二区域。

现在将参照图2解释将数据从存储器30的源区域复制到存储器30的目标区域的处理。

图2是用于解释根据本发明构思的示例性实施例的复制数据的处理的框图。

参照图2,数据处理系统2包括CPU 10、多个GPU(例如,第一GPU 21和第二GPU 22)和存储器30。虽然图2中示出了两个GPU,但是本发明构思的示例性实施例不限于此。例如,可在本发明构思的数据处理系统中提供多于两个GPU。

存储器30被连接到CPU 10、第一GPU 21和第二GPU 22,并存储数据。在这种情况下,存储器30可被划分为多个区域(例如,第一区域31、第二区域32和第三区域33)。第一区域31、第二区域32和第三区域33中的至少一个区域可被分配给CPU 10、第一GPU 21和第二GPU 22。例如,第一区域31可被分配给CPU 10,第二区域32可被分配给第一GPU 21,并且第三区域33可被分配给第二GPU 22。因此,用于操作CPU 10的信息或数据以及CPU 10的计算结果可被存储在第一区域31中。

当第一GPU 21根据CPU 10的计算结果进行操作时,第一区域31(例如,源区域)中存储的数据不得不被复制到第二区域32(例如,目标区域)。这是因为由于被分配给第一GPU 21的区域是第二区域32,因此第一GPU 21不可访问第一区域31中存储的数据。因此,随着CPU 10、第一GPU 21和第二GPU 22的操作,存储器30可执行将源区域中存储的数据复制到目标区域的处理。

参照图1,CPU 10可介入将数据从源区域复制到目标区域的处理。例如,CPU 10可读取源区域中存储的数据,并且随后,可将读取的数据写入目标区域。在这种情况下,由于CPU 10与存储器30之间的通道的带宽和延迟,存储器30的性能可能恶化。

根据本发明构思的示例性实施例的用于管理存储器的设备可分配目标区域,使得目标区域与源区域相同。例如,用于管理存储器的设备可分配目标区域,使得源区域与目标区域被包括在相同的通道中并且在相同的模组中。源区域和目标区域中的每个区域可以是(但不限于)存储器30的页面或块(chunk)。因此,随着用于管理存储器的设备的操作,存储器30的性能可提升。

例如,根据本发明构思的示例性实施例的用于管理存储器的设备可被包括在存储器30中,并且可作为独立设备而被包括在数据处理系统1中。此外,用于管理存储器的设备可包括控制器,并且控制器可控制用于管理存储器的设备的整体操作。为了方便,以下描述将在用于管理存储器的设备的控制器执行根据本发明构思的示例性实施例的管理存储器的方法的假设上进行。

图3是根据本发明构思的示例性实施例的管理存储器的方法的流程图。

在操作310中,控制器通过对齐构成存储器的多个页面来产生页面池。例如,控制器可通过根据模组对齐所述多个页面来产生页面池。存储器可以是(但不限于)DRAM。

存储器可包括多个模组,并且一个模组中可包括多个页面。控制器可根据模组对齐包括在存储器中的多个页面。

在操作320中,当接收到用于存储第一数据的请求时,基于页面池分配与第一数据相应的目标页面。在操作330中,基于关于分配的目标页面的信息来更新页面表格。

现在将参照图4解释存储器的结构。

图4是根据本发明构思的示例性实施例的存储器30的框图。

图4示出根据本发明构思的示例性实施例的存储器30的结构。在存储器30中,多个存储体(bank)410可彼此连接,并且在每个存储体410中可包括多个模组420。例如,当存储体410是具有128兆字节(MB)容量的模块时,在存储体410中可包括八个模组420,其中,每个模组具有16384*1024字节的容量。

一个模组420可被表达为包括多个行和多个列的矩阵。因此,向多个模组420的行写入数据/从多个模组420的行读取数据的行检测器以及向多个模组420的列写入数据/从多个模组420的列读取数据的列检测器可被连接到存储体410。

包括在存储体410中的多个模组420中的相同行或相同列指的是页面430。例如,当均具有16384*1024字节的容量的八个模组420包括在存储体410中时,页面430可具有至少一千字节(KB)的存储容量。

存储器30中的数据复制可以以页面430为单位来执行。因此,控制器可通过对齐构成存储器30的多个页面430来产生页面池。存储器30中的数据复制可以以比页面430小的块为单位来执行。因此,控制器可通过对齐构成存储器30的块来产生块池。

现在将参照图5和图6解释由控制器执行的通过对齐页面430来产生页面池的处理。

图5是用于解释根据本发明构思的示例性实施例的由控制器执行的对齐页面的处理的示图。

图5示出根据本发明构思的示例性实施例的通过多个通道511和通道512连接到CPU 10的存储器30。通道511和通道512中的每个通道是在CPU 10与存储器30之间发送/接收数据的路径。

多个模组521、522、523和524可被连接到通道511和通道512。例如,N个模组521和522可被连接到通道511,并且N个模组523和524可被连接到通道512。

当源区域是模组521并且目标区域是模组522时,需要通过通道511从模组521读取数据并且将所述数据写入模组522。因此,由于通道511介入复制数据的处理,因此存储器30的性能可能恶化。

此外,当源区域是模组521并且目标区域是模组523时,需要通过通道511和通道512以及CPU 10从模组521读取数据并且将数据写入模组523。因此,由于通道511和通道512以及CPU 10介入复制数据的处理,因此存储器30的性能可能恶化。

当源区域和目标区域都是模组521时,数据可被快速且有效地复制。例如,当源区域和目标区域是模组521中的页面时,数据可被快速且有效地复制。因此,当数据的源区域和目标区域被分配到相同模组中的页面时,可减少复制数据所消耗的功率并且还可减少复制数据所用的时间。

控制器通过根据模组521、522、523和524对齐存储器30中包括的多个页面来产生页面池。当接收到用于存储数据的请求时,控制器可分配目标页面,使得存储数据的源页面和数据将被复制到的目标页面被包括在相同的模组中。

图6是根据本发明构思的示例性实施例的页面池610的示图。

图6示出根据本发明构思的示例性实施例的页面池610。例如,页面池610可以是页面641至页面648根据模组620和模组630被对齐的表格。

例如,控制器可识别出页面641至644被包括在相同的模组620中,并且可执行分组使得页面641至644与模组620相应。类似的,控制器可执行分组使得页面645至648与模组630相应。

随着控制器产生页面池610,控制器可分配目标页面使得源页面与目标页面被包括在相同的模组620中。

返回参照图3,在操作320中,当接收到用于存储第一数据的请求时,控制器基于页面池分配与第一数据相应的目标页面。第一数据可以是(但不限于)具有与页面容量相应的大小的数据。

例如,控制器可分配目标页面使得目标页面和存储第一数据的页面(例如,源页面)被包括在相同的模组中。可选地,控制器可分配目标页面使得目标页面和源页面被包括在相同的模组和相同的通道中。

当接收到用于存储第一数据的请求时,控制器检查页面池并搜索可存储第一数据的页面。例如,控制器可在页面池中包括的页面之中搜索允许第一数据的源页面与目标页面被包括在相同的模组中的页面。可选地,控制器可在页面池中包括的页面之中搜索允许第一数据的源页面与目标页面被包括在相同的模组和相同的通道中的页面。控制器将发现的页面分配给第一数据的目标页面。

在操作330中,控制器基于关于分配的目标页面的信息更新页面表格。此处使用的术语“页面表格”可表示其中页面的逻辑地址和物理地址彼此映射的表格。例如,控制器可通过将与目标页面相应的物理地址映射到连续的逻辑地址来更新页面表格。

控制器可将数据复制区域(在下文中,称为“IDDC区域”)预分配到地址空间。此处使用的术语“地址空间”可表示限定存储器30的逻辑地址(或存储器30的页面)的空间。例如,CPU 10(或GPU 20)可通过参考地址空间中定义的逻辑地址来确定存储器30中存储数据的位置。

在地址空间中定义的逻辑地址与存储器30的物理地址(或存储器30的页面)可彼此不同。因此,CPU 10(或GPU 20)可通过参考在地址空间中定义的逻辑地址以及页面表格来确定存储器30中存储数据的位置。

现在将参照图7解释由控制器执行的更新页面表格的处理。

图7是用于解释根据本发明构思的示例性实施例的由控制器执行的更新页面表格的处理的示图。

图7示出根据本发明构思的示例性实施例的包括IDDC区域720和分配给页面730的模组的地址空间710。

页面730可以是被分配到至少一个模组的部分的组合。也就是说,构成页面730的部分可被分别分配到模组,并且模组的类型可以是各种各样的。例如,页面730的一些部分可被包括在“模组0”中,并且页面730的其他部分可被包括在“模组1”中。此外,页面730的每个部分的物理地址可被设置。

地址空间710可被划分为记录系统的设置的空间和记录用户的设置的空间。控制器可将IDDC区域720分配到记录系统的设置的空间。页面730的部分的逻辑地址可在IDDC区域720中被定义。

物理地址和逻辑地址可彼此不同。因此,控制器产生页面表格并且随着目标页面被分配而更新页面表格,其中,在页面表格中,页面730的相同部分的物理地址与逻辑地址彼此映射。

例如,控制器可以以页面为单位划分存储器,并且可将具有与源页面的模组相同的模组的空闲页面分配给目标页面。控制器可通过映射目标页面的物理地址和逻辑地址来更新页面表格。

图8是根据本发明构思的示例性实施例的管理存储器的方法的流程图。

图8的方法包括由图1至图7的控制器执行的操作。因此,参照图1至图7做出的描述可应用到图8的方法中。

在操作810中,控制器以页面为单位划分存储器。例如,控制器将存储器划分为多个页面,并且通过对齐页面来产生页面池。例如,控制器可通过根据模组对齐多个页面来产生页面池。

在操作820中,控制器将目标页面分配给具有与源页面的模组相同的模组的页面。例如,控制器可分配目标页面,使得目标页面和存储第一数据的页面(例如,源页面)被包括在相同的模组中。可选地,控制器可分配目标页面,使得目标页面与源页面被包括在相同的模组和相同的通道中。

在操作830中,控制器更新页面表格。例如,控制器可通过将与目标页面相应的物理地址映射到连续的逻辑地址来更新页面表格。

控制器对每个源页面执行操作820和操作830。例如,可对所有的源页面执行操作820和操作830。换句话说,每当接收到用于存储数据的请求时,控制器重复地执行操作820和操作830。

请求存储的数据可以是比页面小的块。因此,控制器可通过对齐构成存储器30的块来产生块池。控制器可基于块池来分配请求存储的数据的目标块。

现在将参照图9至图11解释由控制器执行的产生块池和分配目标块的处理。

图9是根据本发明构思的示例性实施例的管理存储器的方法的流程图。

图9的方法包括由图1至图8的控制器执行的操作。因此,参照图1至图8做出的描述可应用到图9的方法。

图9的操作910至操作930与图3的操作310至操作330相同。因此,将不给出操作910至操作930的详细描述。

在操作940中,控制器基于存储器中除被第一数据占用的空间以外的空间来产生块池。例如,控制器分配第一数据的目标页面,并且将除被分配给第一数据的目标页面以外的空间插入块池。

在操作950中,当接收到用于存储第二数据的请求时,控制器基于块池来分配与第二数据相应的目标块。

现在将参照图10和图11解释由控制器执行的产生块池的处理。

图10是用于解释根据本发明构思的示例性实施例的由控制器执行的产生块池的处理的示图。

图10示出被分配给页面1010的模组。构成页面1010的部分可被分别分配到模组,并且模组的类型可以是各种各样的。例如,页面1010的一些部分可被包括在“模组0”中,并且页面1010的其他部分可被包括在“模组1”中。

当接收到用于存储第一数据的请求时,控制器分配第一数据的目标页面。例如,第一数据的目标页面可被分给“模组0”。在这种情况下,作为空闲存储空间的块1020可在构成页面1010的部分1011、1012、1013和1014之中的被分配给目标页面的部分1012和1014中形成。

控制器将形成有块1020的部分1012和部分1014插入块池1030。因此,当接收到用于存储第二数据的请求时,控制器可基于块池1030分配第二数据的目标块。

图11是根据本发明构思的示例性实施例的块池1110的示图。

图11示出根据本发明构思的示例性实施例的块池1110。例如,块池1110可以是表格,其中,在该表格中,均包括块的部分1141至部分1147根据模组1120和模组1130被对齐。

例如,控制器可识别出部分1141至1143被包括在相同的模组1120中,并可执行分组使得部分1141至1143与模组1120相应。类似地,控制器可执行分组使得部分1144至1147与模组1130相应。

随着控制器产生块池1110,控制器可分配块目标使得数据的源块和目标块被包括在相同的模组1120或模组1130中。

返回参照图9,在操作950中,当接收到用于存储第二数据的请求时,控制器基于块池分配与第二数据相应的目标块。此处使用的术语“第二数据”可表示占用了比与页面相应的存储空间更小的存储空间的数据。

例如,控制器可分配目标块,使得目标块与存储第二数据的块(例如,源块)被包括在相同的模组中。可选地,控制器可分配目标块,使得目标块与源块被包括在相同的模组和相同的通道中。

此外,控制器可基于关于分配的目标块的信息来更新页面表格。例如,控制器可通过将与目标块相应的物理地址映射到连续的逻辑地址来更新页面表格。由控制器执行的更新页面表格的处理与参照图7所描述的处理相同或基本相似。

图12是根据本发明构思的示例性实施例的用于执行管理存储器的方法的应用程序接口(API)的示图。

当输入IDDCopyDstAlloc(src,size)时,控制器解译源页面/块(src)的物理地址,并且分配在与源页面/块(src)的通道和模组相同的通道和相同的模组中的页面/块作为目标页面/块。

当输入IDDCopySet(dest,src,size)时,控制器设置寄存器值,诸如位于存储器30中的数据复制模块中的源页面/块(src)的地址和目标页面/块(dest)的地址。

当输入IDDCopyStart()时,控制器命令数据复制模块将数据从源页面/块(src)复制到目标页面/块(dest)。

图13A和图13B是示出根据本发明构思的示例性实施例的用于管理存储器的设备的框图。

图13A和图13B的数据处理系统3和4包括CPU 10、GPU 20、存储器1320和1340以及用于分别管理存储器1320和1340的设备1310和1330。此外,设备1310和1330中的每一个包括图1至图12的控制器。

参照图13A,设备1310可被包括在存储器1320中。在这种情况下,据本发明构思的示例性实施例的管理存储器的方法可在不改变数据处理系统3的硬件结构的情况下被执行。

参照图13B,设备1330可作为独立设备被包括在数据处理系统4中。在这种情况下,设备1330可连接到CPU 10、GPU 20和存储器1340,并可执行根据本发明构思的示例性实施例的管理存储器的方法。

如上所述,由于存储器中存储的数据可在没有CPU的介入的情况下被复制到存储器的另一空间,因此在存储器中复制数据的处理可变得更加有效。

上述方法可以被实现为可执行程序,并且可由通过使用计算机可读记录介质运行程序的通用数字计算机执行。此外,该方法中使用的数据的结构可通过使用计算机可读记录介质上的各种单元来记录。计算机可读记录介质的示例包括存储介质,诸如磁存储介质(例如,只读存储器(ROM)、软盘或硬盘)、光学可读介质(例如,压缩盘只读存储器(CD-ROM)或数字通用盘(DVD))等。

虽然已参照本发明构思的实施例具体示出并描述了本发明构思,但是本发明构思不应被解释为限于那些实施例。例如,将理解,在不脱离由权利要求限定的本发明构思的精神和范围的情况下可做出形式和细节上的各种改变。

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