使用复合存储器命令的存储器操作的制作方法

专利2023-04-10  14


使用复合存储器命令的存储器操作


背景技术:

1.为了执行存储器内操作,处理器将需要发送大量细粒度存储器命令。存储器内操作的吞吐量将取决于可用于将此类细粒度命令发送到存储器的带宽。除了限制该命令带宽的任何核内瓶颈之外,该带宽还将受到在相关联的核上并行运行的其他共调度计算的带宽利用的影响。
附图说明
2.图1是根据一些实施方案的用于使用复合存储器命令的存储器操作的示例性处理器的框图。
3.图2是根据一些实施方案的用于使用复合存储器命令的存储器操作的示例性方法的流程图。
4.图3是根据一些实施方案的用于使用复合存储器命令的存储器操作的示例性方法的流程图。
5.图4是根据一些实施方案的用于使用复合存储器命令的存储器操作的示例性方法的流程图。
6.图5是根据一些实施方案的用于使用复合存储器命令的存储器操作的示例性方法的流程图。
7.图6是根据一些实施方案的用于使用复合存储器命令的存储器操作的示例性方法的流程图。
8.图7是根据一些实施方案的用于使用复合存储器命令的存储器操作的示例性方法的流程图。
具体实施方式
9.在一些实施方案中,一种使用复合存储器命令的存储器操作的方法包括:由存储器模块接收指示要应用于存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于复合存储器命令生成多个存储器命令以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及执行多个存储器命令。
10.在一些实施方案中,复合存储器命令将起始存储器地址和列数指示为连续内存的多个部分。在一些实施方案中,复合存储器命令指示连续内存的多个部分的起始地址和结束地址。在一些实施方案中,生成多个存储器命令包括:确定一个或多个所需行激活命令;以及生成一个或多个所需行激活命令。在一些实施方案中,确定一个或多个所需行激活命令包括:维持有限状态机;以及基于有限状态机、起始地址和结束地址来确定一个或多个所需行激活命令。在一些实施方案中,该方法还包括由存储器控制器确定与复合存储器命令相关联的延迟。在一些实施方案中,该方法还包括基于延迟由存储器控制器对一个或多个其他命令的发出进行优先级排序。在一些实施方案中,该方法还包括响应于延迟超过阈值而基于复合存储器命令由存储器控制器生成多个其他复合存储器命令。
11.在一些实施方案中,一种用于使用复合存储器命令的存储器操作的装置包括:处理器;以及通信地耦接到处理器的存储器控制器;以及通信地耦接到存储器控制器的存储器模块,该存储器模块执行包括以下的步骤:接收指示要应用于存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于复合存储器命令生成多个存储器命令以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及执行多个存储器命令。
12.在一些实施方案中,复合存储器命令将起始存储器地址和列数指示为连续内存的多个部分。在一些实施方案中,复合存储器命令指示连续内存的多个部分的起始地址和结束地址。在一些实施方案中,生成多个存储器命令包括:确定一个或多个所需行激活命令;以及生成一个或多个所需行激活命令。在一些实施方案中,确定一个或多个所需行激活命令包括:维持有限状态机;以及基于有限状态机、起始地址和结束地址来确定一个或多个所需行激活命令。在一些实施方案中,存储器控制器确定与复合存储器命令相关联的延迟。在一些实施方案中,存储器控制器基于延迟对一个或多个其他命令的发出进行优先级排序。在一些实施方案中,存储器控制器响应于延迟超过阈值而基于复合存储器命令生成多个其他复合存储器命令。
13.一种用于使用复合存储器命令的存储器操作的存储器控制器,该存储器控制器执行包括以下的步骤:接收指示要应用于存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于复合存储器命令生成多个存储器命令以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及执行多个存储器命令。
14.在一些实施方案中,复合存储器命令将起始存储器地址和列数指示为连续内存的多个部分。在一些实施方案中,复合存储器命令指示连续内存的多个部分的起始地址和结束地址。在一些实施方案中,生成多个存储器命令包括:确定一个或多个所需行激活命令;以及生成一个或多个所需行激活命令。
15.图1是非限制性示例性系统100的框图。示例性系统100可在包括移动设备、个人计算机、服务器、外围硬件部件、游戏设备、机顶盒等的各种计算设备中实现。系统100包括处理器102。处理器102通过向存储器控制器106发出命令来发出指令或命令以存取存储器模块104。存储器控制器106是管理去往和来自存储器模块104的数据流的电路。例如,存储器控制器106管理从存储器模块104读取和/或写入存储器模块的指令。存储器控制器106还刷新存储器模块104。在一些实施方案中,存储器控制器106是处理器102的集成部件。在其他实施方案中,存储器控制器106是与处理器102分离的部件。
16.存储器模块104是用于存储数据的存储器(例如,易失性或非易失性)。在示例性实施方案中,存储器模块104是易失性存储器模块。存储器模块104可包括例如动态随机存取存储器(dram)。每个存储器模块104包括一个或多个存储体108。每个存储体108包括多个行110,每个行110包括多个列112。为了存取来自特定行110的数据,行110被“激活”并存储在存储体108的行缓冲器中。来自行缓冲器中的行110的列112随后能够被读取或写入。因此,存取来自特定行110的数据要求在假设特定行110不是行缓冲器中的打开行110的情况下关闭“打开”行110,并且特定行110打开并存储在行缓冲器中以供存取。
17.诸如批量复制、批量“调零”或存储器中处理命令的操作通常要求处理器102向存储器控制器106发出多个细粒度命令以便向存储器模块104发出。使用此方法,处理器102与
存储器控制器106之间的带宽被这些多个细粒度命令消耗并且影响可用于在处理器102上运行的其他计算的带宽。
18.相反,存储器模块106被配置为经由存储器控制器106从处理器102接收复合存储器命令。复合存储器命令是使得一个或多个操作被应用于(例如,存储器模块104中的)连续内存的区域的单个命令。在一些实施方案中,操作是要应用于存储器模块104的特定列112的操作。由复合存储器命令导致的要应用的操作的一些示例包括列112读取操作、列112写入操作或列112移动到近存储器寄存器。例如,用于批量调零的复合存储器命令将导致列112写操作应用于连续内存区域中的每一列112。又如,用于添加两个阵列(例如,存储器中的两个连续阵列)的存储器中处理命令被表示为多个复合存储器命令(例如,用于读取每个阵列的数据的多个部分的复合存储器命令,用于添加两个阵列的多个部分的复合存储器命令,以及用于在存储器的另一个连续区域中写入结果和的复合存储器命令)。在一些实施方案中,响应于确定一个或多个操作将被应用于连续内存区域,由编译器生成复合存储器命令。在其他实施方案中,响应于程序代码中明确声明的复合存储器命令,由编译器生成复合存储器命令。
19.响应于接收到复合存储器命令,存储器模块104生成多个存储器命令以将一个或多个操作应用于连续内存的多个部分中的每个部分。例如,响应于接收到用于对存储器的邻接区域进行批量调零的复合存储器命令,存储器模块104生成多个列112写入命令,这些写入命令在被执行时致使零值被写入到存储器的邻接区域中的每个列112。使用此示例,存储器模块104生成必要的行打开命令(如果有的话)和到存储器的邻接区域的多个写入命令。因此,由单个复合存储器命令生成多个存储器命令(例如,动态随机存取存储器命令)。本领域的技术人员将会知道,在另选的实施方案中,存储器控制器106响应于从存储器客户端(例如,处理器102)接收到复合存储器命令而生成多个存储器命令。存储器控制器106随后将所生成的存储器命令提供给存储器模块104以供执行。
20.在一些实施方案中,复合存储器命令指示连续内存的区域的起始地址以及复合存储器命令中指示的操作将被应用到的多个列。在其他实施方案中,复合存储器命令指示连续内存区域的起始地址和结束地址。在一些实施方案中,连续内存的多个部分在同一行110内是连续的。换句话讲,一个或多个操作被应用于存储器的位于存储器模块104中的同一行110内的部分。响应于此类复合存储器命令,存储器模块104生成作为存储器命令的命令以实现用于连续内存区域中的每一列的所指示操作。在一些实施方案中,存储器模块104确定是否需要生成行激活命令(例如,用于将行110存储在行缓冲器中)作为多个存储器命令中的一个命令。是否需要行激活命令基于特定行110当前是否被激活,或者行110是否将响应于另一个存储器命令而被激活。
21.在其他实施方案中,连续内存的多个部分在多个行110上是连续的。由于连续内存的部分在多个行110上是连续的,因此需要至少一个行激活命令。因此,在一些实施方案中,存储器模块104维持有限状态机。基于实现复合存储器命令和有限状态机所需的一个或多个存储器命令,存储器模块104随后确定所需的一个或多个行激活命令。
22.由于复合存储器命令导致占用存储体108特定时长的多个存储器命令,在一些实施方案中,存储器控制器106实现公平逻辑以确保不通过其他命令来占用存储体108。因此,在一些实施方案中,存储器控制器106被配置为计算与复合存储器命令相关联的延迟。在复
合存储器命令的连续内存区域在同一行110上是连续的情况下,延迟被估计为例如用于向列112发出存储器命令的预定义延迟定时乘以与特定复合存储器命令相关联的列112的数目。在一些实施方案中,预定义延迟定时被设定为存储器模块的配置设置、固件设置或以其他方式定义。在一些实施方案中,存储器控制器106还使用延迟来确定性地调度存储器命令(例如,存储器控制器106知道在向同一内存区域发出另一个命令之前基于延迟等待多个循环)。
23.在连续内存区域在多个行110上是连续的情况下,通过以下方式计算延迟:基于连续内存区域的起始地址和结束地址(例如,在复合存储器命令中指示的或基于复合存储器命令中的起始地址和复合存储器命令中指示的受影响列的数目而确定的),确定哪些存储体108与连续内存区域相关联,确定与复合存储器命令相关联的行110的数目,以及确定在每个存储体108中存取的第一行110是否已打开,因此不需要行激活命令。然后使用这些值和一个或多个存储器定时值来计算延迟。
24.在一些实施方案中,基于延迟,存储器控制器106在复合存储器命令之前优先发出其他命令(例如,存储器命令)。例如,在一些实施方案中,延迟或加权延迟被用作阈值。在向存储器模块104发出复合存储器命令之前,具有低于阈值的延迟的其他命令被优先处理并被发出到存储器模块104。
25.在延迟超过阈值的其他实施方案中,存储器控制器106基于复合存储器命令生成多个其他复合存储器命令。在一些实施方案中,将与连续内存区域相关联的复合存储器命令生成为对应于连续内存区域的子部分的多个复合存储器命令。例如,与在多个行110上连续的内存区域相关联的复合存储器命令可生成为复合存储器命令,每个复合存储器命令对应于连续内存区域中的一个行110。又如,与在同一行110中的多个列112上连续的内存区域相关联的复合存储器命令可生成为多个复合存储器命令,每个复合存储器命令与列112的一个子部分相关联。在一些实施方案中,重新计算所生成的复合存储器命令的延迟。基于重新计算的延迟对其他指令进行优先级排序和/或相应地生成其他复合存储器命令。在一些实施方案中,存储器控制器106基于其他规则或标准将复合存储器命令分解成多个复合存储器命令。例如,在一些实施方案中,存储器控制器106将多行复合存储器命令分解成与延迟无关的多个单行复合存储器命令。又如,在一些实施方案中,存储器控制器106基于由单个复合存储器命令引起的操作的阈值数目将复合存储器命令分解成与延迟无关的多个复合存储器命令。
26.为了进一步解释,图2提出了示出用于使用复合存储器命令的存储器操作的示例性方法的流程图,该方法包括(例如,由存储器模块104从存储器控制器106)接收202指示要应用于存储器模块104中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令(cmem)204。在一些实施方案中,操作是要应用于存储器模块104的特定列112的操作。由复合存储器命令204导致的要应用的操作的示例包括列112读取操作、列112写入操作或列112移动到近存储器寄存器。例如,用于批量调零的复合存储器命令204将导致列112写操作应用于连续内存区域中的每一列112。
27.在一些实施方案中,复合存储器命令204指示连续内存区域的起始地址以及复合存储器命令中指示的操作将被应用到的多个列。在其他实施方案中,复合存储器命令204指示连续内存的多个部分的起始地址和结束地址。在一些实施方案中,连续内存的多个部分
在同一行110内是连续的。在其他实施方案中,连续内存的多个部分在多个行110上是连续的。
28.图2的方法还包括基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分。生成206多个存储器命令210包括为连续内存中的每个列112生成一个存储器命令210。存储器命令210指示复合存储器命令204中的操作。在一些实施方案中,生成206多个存储器命令210还包括生成激活受存储器命令210影响的行110所需的一个或多个行激活命令。
29.图2的方法还包括(例如,由存储器模块104)执行208多个存储器命令210。因此,仅单个复合存储器命令204需要在处理器102与存储器控制器106之间的总线或连接以及存储器控制器106与存储器模块之间的总线或连接上传递,以致使存储器模块104执行多个存储器命令210。
30.为了进一步解释,图3提出了示出用于使用复合存储器命令的存储器操作的示例性方法的流程图,该方法包括(例如,由存储器模块104从存储器控制器106)接收202指示要应用于存储器模块104中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令(cmem)204;基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及(例如,由存储器模块104)执行208多个存储器命令210。
31.图3的方法与图2的不同之处在于,基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分包括确定302一个或多个所需行激活命令。在一些实施方案中,在连续内存在同一行110上是连续的情况下,确定302一个或多个所需行激活命令包括确定行110是否被激活(例如,打开、存储在行缓冲器中)。在一些实施方案中,在连续内存在多个行110上是连续的情况下,确定302一个或多个行激活命令包括确定连续内存的每个存储体108中的第一被存取行110是否打开。在其他实施方案中,在连续内存在多个行110上是连续的情况下,基于有限状态机来确定302一个或多个行激活命令。
32.基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分包括生成304一个或多个所需行激活命令。因此,所执行208的存储器命令210包括一个或多个所需行激活命令。
33.为了进一步解释,图4提出了示出用于使用复合存储器命令的存储器操作的示例性方法的流程图,该方法包括(例如,由存储器模块104从存储器控制器106)接收202指示要应用于存储器模块104内的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令(cmem)204;基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分包括:确定302一个或多个所需行激活命令;以及生成304一个或多个所需行激活命令;以及(例如,由存储器模块104)执行208多个存储器命令210。
34.图4的方法与图3的不同之处在于,确定302一个或多个所需行激活命令包括维持402有限状态机。有限状态机可指示激活的一个或多个行110(例如,存储在相应存储体108的行缓冲器中的一个或多个行110)是待执行的存储器命令210。可通过生成多个存储器命令并且然后更新有限状态机来维持(例如,更新)有限状态机,以确定需要激活哪些行110以
及应以什么顺序激活行110来执行特定存储器命令。
35.确定302一个或多个所需行激活命令还包括基于有限状态机来确定404一个或多个行激活命令。例如,响应于有限状态机中指示需要激活特定行110的转换而生成行激活命令。
36.为了进一步解释,图5提出了示出用于使用复合存储器命令的存储器操作的示例性方法的流程图,该方法包括(例如,由存储器模块104从存储器控制器106)接收202指示要应用于存储器模块内的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令(cmem)204;基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及(例如,由存储器模块104)执行208多个存储器命令210。
37.图5的方法与图2的不同之处在于,图5的方法包括(例如,通过存储器控制器106)确定502与复合存储器命令204相关联的延迟。在复合存储器命令204的连续内存区域在存储器模块104的同一行110上是连续的情况下,延迟被估计为用于向列112发出存储器命令的预定义延迟定时乘以与特定复合存储器命令204相关联的列112的数目。在一些实施方案中,预定义延迟定时被设定为存储器模块104的配置设置、固件设置或以其他方式定义。
38.在连续内存区域在存储器模块104的多个行110上是连续的情况下,通过以下方式计算延迟:基于复合存储器命令204中指示的起始地址和结束地址,确定哪些存储体108与连续内存区域相关联,确定与复合存储器命令204相关联的行110的数目,以及确定在每个存储体108中存取的第一行110是否已打开,因此不需要行激活命令。然后使用这些值和一个或多个存储器定时值来计算延迟。
39.为了进一步解释,图6提出了示出用于使用复合存储器命令的存储器操作的示例性方法的流程图,该方法包括(例如,通过存储器控制器)确定502与复合存储器命令204相关联的延迟;(例如,由存储器模块104从存储器控制器106)接收202指示要应用于存储器模块104的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令(cmem)204;基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及(例如,由存储器模块104)执行208多个存储器命令210。
40.图6的方法与图5的不同之处在于,图6的方法包括基于延迟对一个或多个其他命令的发出进行优先级排序602。例如,在一些实施方案中,延迟或加权延迟被用作阈值。在复合存储器命令204之前,具有低于阈值的延迟的其他命令被优先处理并被发出到存储器模块104。
41.为了进一步解释,图7提出了示出用于使用复合存储器命令的存储器操作的示例性方法的流程图,该方法包括(例如,通过存储器控制器)确定502与复合存储器命令204相关联的延迟;(例如,由存储器模块104从存储器控制器106)接收202指示要应用于存储器模块104的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令(cmem)204;基于复合存储器命令204(例如,由存储器模块104)生成206多个存储器命令210以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及(例如,由存储器模块104)执行208多个存储器命令210。
42.图7的方法与图5的不同之处在于,图6的方法包括响应于延迟超过阈值而基于复
合存储器命令204(例如,由存储器控制器106)生成206多个其他复合存储器命令。在一些实施方案中,将与连续内存区域相关联的复合存储器命令204生成为对应于连续内存区域的子部分的多个复合存储器命令。例如,与在多个行110上连续的内存区域相关联的复合存储器命令204可生成为复合存储器命令,每个复合存储器命令对应于连续内存区域中的一个行110。又如,与在同一行110中的多个列112上连续的内存区域相关联的复合存储器命令204可生成为多个复合存储器命令,每个复合存储器命令与列112的子部分相关联。在一些实施方案中,重新计算所生成的复合存储器命令的延迟。基于重新计算的延迟对其他指令进行优先级排序和/或相应地生成其他复合存储器命令。所生成的复合存储器命令随后被提供给存储器模块104。
43.鉴于以上阐述的解释,读者将认识到使用复合存储器命令的存储器操作的有益效果包括:
44.·
通过将单个存储器命令复合成复合存储器命令来改进处理器、存储器控制器和存储器模块之间的带宽使用,从而改进计算系统的性能。
45.本公开的优点和特征可通过以下陈述进一步描述:
46.1.一种使用复合存储器命令的存储器操作的方法,该方法包括:由存储器模块接收指示要应用于存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于复合存储器命令生成多个存储器命令以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及执行多个存储器命令。
47.2.根据陈述1所述的方法,其中复合存储器命令将起始存储器地址和列数指示为连续内存的多个部分。
48.3.根据陈述1至2中任一项所述的方法,其中复合存储器命令指示连续内存的多个部分的起始地址和结束地址。
49.4.根据陈述1至3中任一项所述的方法,其中生成多个存储器命令包括:确定一个或多个所需行激活命令;以及生成一个或多个所需行激活命令。
50.5.根据陈述1至4中任一项所述的方法,其中确定一个或多个所需行激活命令包括:维持有限状态机;以及基于有限状态机、起始地址和结束地址来确定一个或多个所需行激活命令。
51.6.根据陈述1至5中任一项所述的方法,还包括由存储器控制器确定与复合存储器命令相关联的延迟。
52.7.根据陈述1至6中任一项所述的方法,还包括基于延迟由存储器控制器对向存储器模块发出一个或多个其他命令进行优先级排序。
53.8.根据陈述1至7中任一项所述的方法,还包括响应于延迟超过阈值而基于复合存储器命令由存储器控制器生成多个其他复合存储器命令。
54.9.一种用于使用复合存储器命令的存储器操作的装置,该装置包括:处理器;通信地耦接到处理器的存储器控制器;以及通信地耦接到存储器控制器的存储器模块,该存储器模块被配置为执行包括以下的步骤:接收指示要应用于存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于复合存储器命令生成多个存储器命令以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及执行多个存储器命令。
55.10.根据陈述9所述的装置,其中复合存储器命令将起始存储器地址和列数指示为连续内存的多个部分。
56.11.根据陈述9至10中任一项所述的装置,其中复合存储器命令指示连续内存的多个部分的起始地址和结束地址。
57.12.根据陈述9至11中任一项所述的装置,其中生成多个存储器命令包括:确定一个或多个所需行激活命令;以及生成一个或多个所需行激活命令。
58.13.根据陈述9至12中任一项所述的装置,其中确定一个或多个所需行激活命令包括:维持有限状态机;以及基于有限状态机、起始地址和结束地址来确定一个或多个所需行激活命令。
59.14.根据陈述9至13中任一项所述的装置,其中存储器控制器被配置为确定与复合存储器命令相关联的延迟。
60.15.根据陈述9至14中任一项所述的装置,其中存储器控制器被配置为基于延迟对向存储器模块发出一个或多个其他命令进行优先级排序。
61.16.根据陈述9至15中任一项所述的装置,其中存储器控制器被配置为响应于延迟超过阈值而基于复合存储器命令生成多个其他复合存储器命令。
62.17.一种用于使用复合存储器命令的存储器操作的存储器模块,该存储器模块被配置为执行包括以下的步骤:接收指示要应用于存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于复合存储器命令生成多个存储器命令以将一个或多个操作应用于连续内存的多个部分中的每个部分;以及执行多个存储器命令。
63.18.根据陈述17所述的存储器控制器,其中复合存储器命令将起始存储器地址和列数指示为连续内存的多个部分。
64.19.根据陈述17至18中任一项所述的存储器控制器,其中复合存储器命令指示连续内存的多个部分的起始地址和结束地址。
65.20.根据陈述17至19中任一项所述的存储器控制器,其中生成多个存储器命令包括:确定一个或多个所需行激活命令;以及生成一个或多个所需行激活命令。
66.21.一种使用复合存储器命令的存储器操作的方法,该方法包括:由存储器控制器从处理器接收指示要应用于存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;将复合存储器命令传输到存储器模块。
67.22.根据陈述21所述的方法,还包括由存储器控制器确定与复合存储器命令相关联的延迟。
68.23.根据陈述21至22中任一项所述的方法,还包括基于延迟由存储器控制器对向存储器模块发出一个或多个其他命令进行优先级排序。
69.24.根据陈述21至23中任一项所述的方法,还包括响应于延迟超过阈值而基于复合存储器命令由存储器控制器生成多个其他复合存储器命令。
70.本公开的示例性实施方案主要在用于使用复合存储器命令的存储器操作的全功能计算机系统的上下文中描述。然而,熟悉本领域的读者将认识到,本公开还可体现在设置在计算机可读存储介质上的用以与任何合适的数据处理系统一起使用的计算机程序产品中。此类计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁介质、光介
质或其他合适的介质。此类介质的示例包括硬盘驱动器或软盘中的磁盘、光盘驱动器的光盘、磁带以及本领域的技术人员可想到的其他介质。本领域的技术人员将立即认识到,具有适当编程装置的任何计算机系统将能够执行如在计算机程序产品中体现的本公开的方法的步骤。本领域的技术人员还将认识到,尽管本说明书中描述的一些示例性实施方案针对在计算机硬件上安装和执行的软件,然而,被实现为固件或硬件的另选实施方案也在本公开的范围内。
71.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本公开的各方面的计算机可读程序指令的计算机可读存储介质(或媒介)。
72.计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是(例如但不限于)电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述项的任何合适组合。计算机可读存储介质的更具体示例的不完全列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码的设备(诸如其上记录有指令的槽中的穿孔卡片或凸起结构)以及前述项的任何合适组合。如本文所用的计算机可读存储介质不能被理解为瞬时信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。
73.本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
74.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集体系结构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任何组合编写的源代码或目标代码,编程语言包括诸如smalltalk、c++等面向对象的编程语言,以及诸如“c”编程语言或类似编程语言的常规过程编程语言。计算机可读程序指令可整个地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包、部分地在用户计算机上执行并且部分地在远程计算机上执行或者整个地在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者可连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施方案中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可执行计算机可读程序指令,具体通过利用计算机可读程序指令的状态信息来个性化处理电子电路,以便执行本公开的各方面。
75.本公开的各方面在此参考根据本公开的实施方案的方法、装置(系统)和计算机程序产品的流程图图示和/或框图进行描述。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可由计算机可读程序指令来实现。
76.这些计算机可读程序指令可提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以得到机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令形成用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的构件。这些计算机可读程序指令还可存储在可指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用的计算机可读存储介质中,使得其中存储有指令的计算机可读存储介质包括包含实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令的制品。
77.计算机可读程序指令还可被加载到计算机、其他可编程数据处理装置或其他设备上,导致在计算机、其他可编程装置或其他设备上执行一系列操作步骤以得到计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
78.图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能具体实施的体系结构、功能和操作。就这一点而言,流程图或框图中的每个框可表示指令的包括用于实现指定逻辑功能的一个或多个可执行指令的模块、段或部分。在一些另选的具体实施中,框中指出的功能可不按照图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可基本上同时执行,或者这些框有时可以相反顺序执行。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可由执行指定功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
79.从前面的描述将理解,可在本公开的各种实施方案中进行修改和改变。本说明书中的描述仅用于说明目的,而不应以限制性意义进行解释。本公开的范围仅由所附权利要求书的语言限定。

技术特征:
1.一种使用复合存储器命令的存储器操作的方法,所述方法包括:由存储器模块接收指示要应用于所述存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于所述复合存储器命令生成多个存储器命令以将所述一个或多个操作应用于连续内存的所述多个部分中的每个部分;以及执行所述多个存储器命令。2.根据权利要求1所述的方法,其中所述复合存储器命令将起始存储器地址和列数指示为连续内存的所述多个部分。3.根据权利要求1所述的方法,其中所述复合存储器命令指示连续内存的所述多个部分的起始地址和结束地址。4.根据权利要求1所述的方法,其中生成所述多个存储器命令包括:确定一个或多个所需行激活命令;以及生成所述一个或多个所需行激活命令。5.根据权利要求4所述的方法,其中确定所述一个或多个所需行激活命令包括:维持有限状态机;以及基于所述有限状态机、所述起始地址和所述结束地址来确定所述一个或多个所需行激活命令。6.根据权利要求1所述的方法,还包括由存储器控制器确定与所述复合存储器命令相关联的延迟。7.根据权利要求6所述的方法,还包括基于所述延迟由所述存储器控制器对向所述存储器模块发出一个或多个其他命令进行优先级排序。8.根据权利要求6所述的方法,还包括响应于所述延迟超过阈值而基于所述复合存储器命令由所述存储器控制器生成多个其他复合存储器命令。9.一种用于使用复合存储器命令的存储器操作的装置,所述装置包括:处理器;通信地耦接到所述处理器的存储器控制器;以及通信地耦接到所述存储器控制器的存储器模块,所述存储器模块被配置为执行包括以下的步骤:接收指示要应用于所述存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于所述复合存储器命令生成多个存储器命令以将所述一个或多个操作应用于连续内存的所述多个部分中的每个部分;以及执行所述多个存储器命令。10.根据权利要求9所述的装置,其中所述复合存储器命令将起始存储器地址和列数指示为连续内存的所述多个部分。11.根据权利要求9所述的装置,其中所述复合存储器命令指示连续内存的所述多个部分的起始地址和结束地址。12.根据权利要求9所述的装置,其中生成所述多个存储器命令包括:确定一个或多个所需行激活命令;以及
生成所述一个或多个所需行激活命令。13.根据权利要求12所述的装置,其中确定所述一个或多个所需行激活命令包括:维持有限状态机;以及基于所述有限状态机、所述起始地址和所述结束地址来确定所述一个或多个所需行激活命令。14.根据权利要求9所述的装置,其中所述存储器控制器被配置为确定与所述复合存储器命令相关联的延迟。15.根据权利要求14所述的装置,其中所述存储器控制器被配置为基于所述延迟对向所述存储器模块发出一个或多个其他命令进行优先级排序。16.根据权利要求14所述的装置,其中所述存储器控制器被配置为响应于所述延迟超过阈值而基于所述复合存储器命令生成多个其他复合存储器命令。17.一种用于使用复合存储器命令的存储器操作的存储器模块,所述存储器模块被配置为执行包括以下的步骤:接收指示要应用于所述存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于所述复合存储器命令生成多个存储器命令以将所述一个或多个操作应用于连续内存的所述多个部分中的每个部分;以及执行所述多个存储器命令。18.根据权利要求17所述的存储器控制器,其中所述复合存储器命令将起始存储器地址和列数指示为连续内存的所述多个部分。19.根据权利要求17所述的存储器控制器,其中所述复合存储器命令指示连续内存的所述多个部分的起始地址和结束地址。20.根据权利要求17所述的存储器控制器,其中生成所述多个存储器命令包括:确定一个或多个所需行激活命令;以及生成所述一个或多个所需行激活命令。21.一种使用复合存储器命令的存储器操作的方法,所述方法包括:由存储器控制器从处理器接收指示要应用于所述存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;将所述复合存储器命令传输到所述存储器模块。22.根据权利要求1所述的方法,还包括由所述存储器控制器确定与所述复合存储器命令相关联的延迟。23.根据权利要求6所述的方法,还包括基于所述延迟由所述存储器控制器对向所述存储器模块发出一个或多个其他命令进行优先级排序。24.根据权利要求6所述的方法,还包括响应于所述延迟超过阈值而基于所述复合存储器命令由所述存储器控制器生成多个其他复合存储器命令。

技术总结
本发明公开了使用复合存储器命令的存储器操作,该存储器操作包括:由存储器模块接收指示要应用于该存储器模块中的连续内存的多个部分中的每个部分的一个或多个操作的复合存储器命令;基于该复合存储器命令生成多个存储器命令以将该一个或多个操作应用于连续内存的该多个部分中的每个部分;以及执行该多个存储器命令。存储器命令。存储器命令。


技术研发人员:阿尼尔班
受保护的技术使用者:超威半导体公司
技术研发日:2021.04.14
技术公布日:2022/12/1
转载请注明原文地址: https://bbs.8miu.com/read-340942.html

最新回复(0)