This application involves buffer allocation and memory management. The methods and devices used for buffer allocation and memory management are described. The multiple buffer areas of the memory can be allocated by the memory controller, where the buffer has a variable size. The memory controller can maintain the mapping table of one corresponding page address to each access key in multiple access keys to multiple page addresses in multiple pages of memory. Each of the buffers can include one or more consecutive pages in multiple pages of the memory, respectively. Each page in multiple pages can include one or more blocks of the memory.
【技术实现步骤摘要】
缓冲区分配和存储器管理
本公开总体上涉及存储器分配,且更具体地涉及按需、高效率和高性能的大小可变的缓冲存储器分配。背景在其中使用存储器来存储数据的计算装置中,通常将存储器划分为分配给在计算装置上执行的程序的多个部分以存储用于程序的数据。当存储器的每个被分配部分不再被分配了存储器的部分的相应的程序需要时,该存储器的每个被分配的部分被解除分配以便重新使用。然而,存在与现有的缓冲区分配和管理方法相关联的若干问题。例如,存储器的每个部分的分配大小通常是预先指定的,并且有时可能大于所需的大小。根据现有方法进行的缓冲区分配的效率往往也不太理想,因为需要存储器的一部分的程序可能没有为其分配缓冲区的任何部分。在某些情况下,在访问存储器时存在长延迟和低吞吐量。附图简述参考以下附图,描述了本公开的非限制性和非穷尽的实施例,其中,除非以其它方式说明,在所有的各个附图中相似的参考数字指代相似的部分。图1是可以实现根据本公开的各种实施例的示例方案的图示。图2是可以根据本公开的实施例实现的示例场景的图示。图3是根据本公开的实施例的示例装置的简化框图。图4是根据本公开的实施例的示例过程的流程图。详细描述在以下描述中,参考了形成说明书的一部分的随附附图,并且其中以通过说明其中可实践本公开的具体示例性实施例的方式示出。对这些实施例进行足够详细的描述,以使本领域技术人员能够实践本文公开的概念,并且应当理解,可以对各种公开的实施例进行修改,并且可以利用其他实施例,而不脱离本公开的范围。因此,以下详细描述不被认为是限制性的意义。概要本公开旨在克服与现有的缓冲区分配和管理方法相关联的各种问题。 ...
【技术保护点】
一种缓冲区分配和存储器管理的方法,包括:通过存储器控制器,分配存储器的多个缓冲区且所述缓冲区具有可变大小;和通过所述存储器控制器,维持映射表,所述映射表将多个访问密钥中的每一个访问密钥关联到所述缓冲区的多个页面的多个页面地址中的相应的一个页面地址,其中,所述缓冲区中的每个缓冲区分别包括所述缓冲区的所述多个页面中的一个或更多个连续的页面,以及其中,所述多个页面中的每个页面包括用于数据储存的一个或更多个块。
【技术特征摘要】
2016.09.19 US 15/269,457;2016.11.09 US 15/347,5471.一种缓冲区分配和存储器管理的方法,包括:通过存储器控制器,分配存储器的多个缓冲区且所述缓冲区具有可变大小;和通过所述存储器控制器,维持映射表,所述映射表将多个访问密钥中的每一个访问密钥关联到所述缓冲区的多个页面的多个页面地址中的相应的一个页面地址,其中,所述缓冲区中的每个缓冲区分别包括所述缓冲区的所述多个页面中的一个或更多个连续的页面,以及其中,所述多个页面中的每个页面包括用于数据储存的一个或更多个块。2.根据权利要求1所述的方法,其中,所述存储器的所述多个缓冲区的分配包括在恒定时间内分配可变大小的所述多个缓冲区中的每个缓冲区。3.根据权利要求1所述的方法,其中,对于所述多个缓冲区中具有多个页面的每个缓冲区,所述多个页面具有在所述缓冲区内的连续页面地址。4.根据权利要求1所述的方法,其中,所述存储器的所述多个缓冲区的分配包括对所述多个缓冲区的每个缓冲区执行包括以下项的操作:向所述缓冲区分配唯一缓冲区句柄;分配被包括在所述缓冲区中的一个或更多个连续的页面中的页面以存储数据,其中所分配的页面具有所述多个页面地址中的相应的页面地址;确定所分配的页面的页号,其中所述缓冲区的所述唯一缓冲区句柄和所分配的页面的所述页号形成用于所述缓冲区的所述多个访问密钥中的相应的访问密钥;以及在所述映射表中为所述缓冲区的所分配的页面创建相应的条目,其中所述相应的条目将所分配的页面的相应的页面地址关联到所述相应的访问密钥。5.根据权利要求1所述的方法,还包括:接收补充命令,所述补充命令请求所述缓冲区的一定数量的页面;确定所请求的页面的数量是否超过所述缓冲区的可用于分配的空闲页面的量;响应于确定所请求的页面的数量不超过所述缓冲区的可用于分配的所述空闲页面的量,响应于所述补充命令选择用于分配的空闲页面,其中所选择的空闲页面具有所述多个页面地址中的相应的页面地址。6.根据权利要求5所述的方法,还包括:确定所选择的空闲页面的页号;在所述映射表中创建相应的条目;以及将空闲页面计数器减少由所述补充命令所请求的页面的数量。7.根据权利要求1所述的方法,还包括:接收写入命令以将数据写入所述多个缓冲区中的缓冲区的一个或更多个页面的一个或更多个块中;确定所述映射表是否包括对于与所述写入命令相关联的所述一个或更多个页面中的一个页面的页面地址的条目;和响应于确定所述映射表包括对于与所述写入命令相关联的所述一个或更多个页面中的一个页面的页面地址的条目,将所述数据写入所述缓冲区的所述一个或更多个页面的所述一个或更多个块中。8.根据权利要求7所述的方法,还包括:响应于确定所述映射表不包括对于与所述写入命令相关联的所述一个或更多个页面中的一个页面的页面地址的条目,执行包括以下项的操作:识别用于存储关于所述写入命令的所述数据的所述多个缓冲区中的缓冲区的唯一缓冲区句柄;分配被包括在所述缓冲区中的所述一个或更多个连续的页面的页面以存储所述数据,其中所分配的页面具有所述多个页面地址中的相应的页面地址;确定所分配的页面的页号,其中所述缓冲区的唯一缓冲区句柄和所分配的页面的页号形成关于所述缓冲区的所述多个访问密钥中的相应的访问密钥;在所述映射表中为所述缓冲区的所分配的页面创建相应的条目,其中所述相应的条目将所分配的页面的所述相应的页面地址关联到所述相应的访问密钥;和将空闲页面计数器减去用于存储关于所述补充命令的数据的页面的数量。9.根据权利要求1所述的方法,还包括:接收读取命令以从所述多个缓冲区中的缓冲区的一个或更多个页面的一个或更多个块中读取数据;和确定所述缓冲区的状态是否有效。10.根据权利要求9所述的方法,还包括:响应于确定所述缓冲区的状态有效,从所述缓冲区的所述一个或更多个页面的所述一个或更多个块中读取所述数据;和响应于确定缓冲区的状态不是有效的,挂起所述读取命令的执行。11.根据权利要求1所述的方法,还包括:接收释放页面命令以解除分配所述多个缓冲区中的缓冲区的一个或更多个页面;和确定所述缓冲区的状态是否有效。12.根据权利要求11所述的方法,还包括:响应于确定所述缓冲区的状态有效,通过执行包括以下项的操作来解除分配所述缓冲区:在所述映射表中去除与在被解除分配的缓冲区中的一个或更多个页面中的页面的页面地址有关的条目;和将空闲页面计数器增加在所述被解除分配的缓冲区中的页面的数量;和响应于确定所述缓冲区的状态不是有效的,挂起所述释放页面命令的执行。13.根据权利要求1所述的方法,其中,所述存储器包括片上存储器和片外存储器,其中,所述片上存储器与一个或更多个核共同定位在一个或更多个集成电路(IC)芯片上并且至少被所述一个或更多个核的第一核访问,并且其中,所述片外存储器位于所述一个或更多个IC芯片之外并且至少被所述一个或更多个核的第二核访问。14.根据权利要求13所述的方法,其中,在所述片上存储器中,每个页面包括单个存储器块,并且其中,在所述片外存储器中,每个页面包括多个存储器块。15.一种缓冲区分配和存储器...
【专利技术属性】
技术研发人员:迪帕克·戈埃尔,普拉迪普·辛杜,贝特朗·塞莱特,韦尔·努尔丁,保罗·金,
申请(专利权)人:芬基波尔有限责任公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。