CN114911723A - 存储器控制器和存储器控制方法 - Google Patents
存储器控制器和存储器控制方法 Download PDFInfo
- Publication number
- CN114911723A CN114911723A CN202210117438.2A CN202210117438A CN114911723A CN 114911723 A CN114911723 A CN 114911723A CN 202210117438 A CN202210117438 A CN 202210117438A CN 114911723 A CN114911723 A CN 114911723A
- Authority
- CN
- China
- Prior art keywords
- memory
- command
- commands
- type
- order
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了存储器控制器和存储器控制方法。所述存储器控制器包括:第一缓冲器,被配置为从主机接收存储器请求并且在其中存储接收的存储器请求;命令生成器,被配置为:生成与存储器请求对应的第一命令,并且设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理(PIM)存储器;第二缓冲器,被配置为在其中存储包括第一命令的多个命令;以及命令调度器,被配置为基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
Description
本申请要求于2021年2月8日在韩国知识产权局提交的第10-2021-0017653号韩国专利申请以及于2021年5月6日在韩国知识产权局提交的第10-2021-0058628号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
以下描述涉及存储器控制器和存储器控制方法。
背景技术
在诸如冯诺依曼(von Neumann)架构的模型中,数据存储在存储器中。存储器可与处理器分开,并且数据可在两者之间移动。在这样的架构中,由于数据的频繁移动,会不可避免地发生延迟。当处理器的速度增大时,存储器可被改进。然而,除了提高传送速度之外,存储器的改进可以是提高在较小空间中存储较大量数据的性能。用于等待直到将数据从存储器提取到处理器的等待时间的增加可将处理器的速度限制到瓶颈点处的传送速度。在典型的计算机架构中,可发生由于等待时间而限制吞吐量的冯诺依曼瓶颈。
发明内容
提供本发明内容以简要的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求保护的主题的关键特征或必要特征,也不意在用于帮助确定要求保护的主题的范围。
在一个总体方面,一种存储器控制器包括:第一缓冲器,被配置为从主机接收存储器请求并且在其中存储接收的存储器请求;命令生成器,被配置为:生成与存储器请求对应的第一命令,并且设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理(PIM)存储器;第二缓冲器,被配置为在其中存储包括第一命令的多个命令;以及命令调度器,被配置为基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
为了确定是否改变第一命令的顺序,命令调度器可被配置为响应于第一命令的类型指示PIM存储器而维持第一命令的顺序。
为了确定是否改变第一命令的顺序,命令调度器可被配置为响应于第一命令的类型指示通用存储器而改变第一命令的顺序。
存储器请求可包括指示所述地址的字段,所述字段可包括区域分离位,区域分离位将通用存储器的地址和PIM存储器的地址区分开,并且为了设置第一命令的类型,命令生成器可被配置为基于区域分离位来设置第一命令的类型。
在另一总体方面,一种存储器控制器包括:第一缓冲器,被配置为从主机接收存储器请求并且在其中存储接收的存储器请求;请求仲裁器,被配置为:设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理(PIM)存储器,并且基于第一命令的类型确定是否改变将要传送到命令生成器的存储器请求的顺序;命令生成器,其中,命令生成器可被配置为基于存储器请求的顺序生成与存储器请求对应的第一命令和第一命令的类型;第二缓冲器,被配置为在其中存储包括第一命令的多个命令;以及命令调度器,被配置为基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
为了确定是否改变存储器请求的顺序,请求仲裁器可被配置为响应于第一命令的类型指示PIM存储器而维持存储器请求的顺序。
为了确定是否改变存储器请求的顺序,请求仲裁器可被配置为响应于第一命令的类型指示通用存储器而改变存储器请求的顺序。
为了确定是否改变第一命令的顺序,命令调度器可被配置为响应于第一命令的类型指示PIM存储器而维持第一命令的顺序。
为了确定是否改变第一命令的顺序,命令调度器可被配置为响应于第一命令的类型指示通用存储器而改变第一命令的顺序。
存储器请求困扰包括指示所述地址的字段,所述字段可包括区域分离位,区域分离位将通用存储器的地址和PIM存储器的地址区分开,并且为了设置第一命令的类型,请求仲裁器可被配置为基于区域分离位来设置第一命令的类型。
在另一总体方面,一种存储器控制方法包括:由第一缓冲器,从主机接收存储器请求并且在其中存储接收的存储器请求;由命令生成器,生成与存储器请求对应的第一命令,并且设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理(PIM)存储器;由第二缓冲器,在其中存储包括第一命令的多个命令;以及由命令调度器,基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
确定是否改变第一命令的顺序的步骤可包括:响应于第一命令的类型指示PIM存储器,通过命令调度器维持第一命令的顺序。
确定是否改变第一命令的顺序的步骤可包括:响应于第一命令的类型指示通用存储器,通过命令调度器改变第一命令的顺序。
在另一总体方面,一种存储器控制方法包括:由第一缓冲器,从主机接收存储器请求并且在其中存储接收的存储器请求;由请求仲裁器,设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理(PIM)存储器,并且基于第一命令的类型确定是否改变将要传送到命令生成器的存储器请求的顺序;由命令生成器,基于存储器请求的顺序生成与存储器请求对应的第一命令和第一命令的类型;由第二缓冲器,在其中存储包括第一命令的多个命令;以及由命令调度器,基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
确定是否改变存储器请求的顺序的步骤可包括:响应于第一命令的类型指示PIM存储器,维持存储器请求的顺序。
确定是否改变存储器请求的顺序的步骤可包括:响应于第一命令的类型指示通用存储器,改变存储器请求的顺序。
确定是否改变第一命令的顺序的步骤可包括:响应于第一命令的类型指示PIM存储器,维持第一命令的顺序。
确定是否改变第一命令的顺序的步骤可包括:响应于第一命令的类型指示通用存储器,改变第一命令的顺序。
存储器请求可包括指示所述地址的字段,所述字段可包括区域分离位,区域分离位将通用存储器的地址和PIM存储器的地址区分开,并且设置第一命令的类型的步骤可包括基于区域分离位来设置第一命令的类型。
在另一总体方面,一种存储器控制器包括:命令生成器,被配置为基于存储的存储器请求中的地址的区域分离位来设置命令的类型,所述类型指示所述地址是否对应于存储器内处理(PIM)存储器;命令调度器,被配置为基于由命令生成器设置的命令的类型来确定是否改变存储在缓冲器中的命令的顺序。
区域分离位可对应于值范围,并且为了设置命令的类型,命令生成器可被配置为:响应于所述地址的字段的值大于所述值范围,设置指示所述地址对应于PIM存储器的命令的类型;以及响应于所述字段的值在所述值范围内,设置指示所述地址对应于通用存储器的命令的类型。
为了确定是否改变命令的顺序,命令调度器可被配置为:响应于命令的类型指示PIM存储器而维持命令的顺序并改变存储在缓冲器中的一个或多个其他命令的顺序。
存储器控制器可被配置为基于命令的顺序来访问存储器。
根据下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1示出存储器控制器的配置的示例。
图2示出其中存储由存储器控制器使用的存储器请求中包括的地址的字段的示例。
图3示出将要存储在第二缓冲器中的命令的示例。
图4示出存储器控制方法的示例。
图5示出存储器控制器的配置的示例。
图6示出存储器控制方法的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的参考标号表示相同的元件。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
提供以下详细描述以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作顺序仅是示例,并不限于在此阐述的操作顺序,而是除了必须以特定顺序发生的操作之外,可如在理解本申请的公开之后将是清楚地那样被改变。此外,为了更清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。
在此描述的特征可以以不同的形式实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
在此使用的术语仅出于描述特定示例的目的,而不用于限制公开。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任何组合。如在此使用的,术语“包括”、“包含”和“具有”表明存在所述的特征、数量、操作、元件、组件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、元件、组件和/或它们的组合。
贯穿说明书,当组件被描述为“连接到”或“结合到”另一组件时,它可直接“连接到”或“结合到”另一组件,或者可存在介于它们之间的一个或多个其他组件。相反,当元件被描述为“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。同样地,类似的表达(例如,“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”)也应当以相同的方式被解释。如在此使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任何组合。
尽管在此可使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
在此针对示例或实施例(例如,关于示例或实施例可包括或实现什么)的术语“可”的使用表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
此外,在示例实施例的描述中,当认为在理解本申请的公开之后由此已知的结构或功能的详细描述将导致示例实施例的模糊解释时,将省略这样的描述。在下文中,将参照附图详细描述示例,并且附图中的相同的参考标号始终表示相同的元件。
图1示出存储器控制器的配置的示例。
参照图1,存储器控制器120可包括第一缓冲器121、命令生成器123、命令调度器124和第二缓冲器125。命令生成器123和命令调度器124可被集成到单个装置中,该单个装置在此也可被称为命令控制器。命令控制器可执行命令生成器123和命令调度器124的操作。
在这样的处理中,存储在队列中的命令的顺序可被改变。例如,为了更有效的存储器访问,通用存储器控制器可将存储在队列中的命令“读取”、“读取”和“写入”的顺序改变为命令“写入”、“读取”和“读取”的顺序。
存储器内处理(processing in memory,PIM)存储器可用于在单芯片存储器中执行操作以防止在典型计算机架构中发生的冯诺依曼瓶颈。PIM存储器不仅可存储数据,而且可执行通过内部处理器在其中执行的操作。因此,当队列中的命令的顺序被改变时,典型的PIM存储器的效率可降低。在典型的PIM存储器中执行的操作可适合于(或可高效地处理)存储在队列中的命令的原始顺序,但不适合于命令的重新排列的顺序。此外,将针对在典型的PIM存储器中执行的操作而重新排列的命令的顺序改变为原始顺序的附加操作可使用附加资源并导致性能降低。
在一个示例中,存储器控制器120可维持或确定针对PIM存储器区域的存储器命令的顺序。为此,命令生成器123可对包括在从主机110传送的存储器请求中的地址进行验证。例如,命令生成器123可基于包括在存储器请求中的区域分离位(area separating bit)来识别包括在存储器请求中的地址是对应于通用存储器区域(或通用存储器)还是PIM存储器区域(或PIM存储器)。当存储器请求被确定为对应于PIM存储器区域时,命令生成器123可通过设置指示针对PIM存储器区域的请求的类型来生成命令。命令生成器123可将生成的命令传送到第二缓冲器125的队列,并且命令调度器124可维持针对PIM存储器区域的命令的顺序以用于对存储器130的访问。
主机110可将存储器请求传送到存储器控制器120的第一缓冲器121。第一缓冲器121可从主机110接收存储器请求并存储存储器请求。存储器请求可包括将要由存储器控制器120执行的命令的信息。存储器请求可包括命令的类型和命令的地址。此外,对于写入,存储器请求还可包括将要写入命令的地址中的内容。
主机110可包括各种类型的处理器。例如,主机110可包括图形处理器(GPU)或中央处理器(CPU)。主机110可包括被配置为不通过处理器而将请求直接传送到存储器区域的输入和输出装置。例如,主机110可包括被配置为通过直接存储器存取(DMA)而非处理器将请求传送到存储器控制器120的输入和输出装置。然而,示例不限于前述示例,并且主机110可包括可将存储器请求传送到存储器控制器120的任何类型或所有类型的装置。
第一缓冲器121可将从主机110接收的一个或多个存储器请求存储在队列中。队列可以是设置在队列的结构中的等待线。第一缓冲器121可将存储在队列中的存储器请求传送到命令生成器123。第一缓冲器121可按序列顺序将存储在队列中的存储器请求传送到命令生成器123。
命令生成器123可接收存储器请求,并且设置命令的类型和执行顺序并将它们传送到第二缓冲器125。从第一缓冲器121传送的存储器请求可以以存储器请求存储在队列中的顺序被传送到命令生成器123。
命令生成器123可生成与存储器请求对应的第一命令并且设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于PIM存储器。在此可使用第一命令来指定存储在队列中的一个或多个命令之中的一个命令。
命令生成器123可基于存储器请求的地址而将与存储器请求对应的命令将要执行的地址区分为通用存储器(即,非PIM存储器)和PIM存储器。命令生成器123可验证包括在存储器请求中的地址字段中的区域分离位,并且验证存储器请求是对应于通用存储器还是PIM存储器。也就是说,命令生成器123可基于区域分离位来设置第一命令的类型。
区域分离位可表示通过0和1区分存储器区域和PIM存储器区域的位。也就是说,区域分离位可对应于值范围。例如,在4位地址的情况下,当区域分离位是第一位时,0000至0111的值范围可指示通用存储器区域,而1000至1111的值范围可指示PIM存储器区域。也就是说,响应于存储器请求中包括的地址的字段的值不在值范围内(例如,不在0000至0111的值范围内),命令生成器123可设置指示地址对应于PIM存储器的命令的类型;响应于存储器请求中包括的地址的字段的值在值范围内(例如,在0000至0111的值范围内),命令生成器123可设置指示地址对应于通用存储器的命令的类型。然而,示例不限于此,区域分离位可以是地址字段中的任意位置的位。
命令生成器123可将与通用存储器对应的命令设置为无序类型,并且将与PIM存储器对应的命令设置为有序类型。无序类型在此也可被称为通用存储器区域类型,有序类型在此也可被称为PIM存储器区域类型。被设置为无序类型的命令可具有通过命令调度器124改变的执行顺序,并且被设置为有序类型的命令可具有维持的执行顺序。
命令生成器123可生成与存储器请求对应的命令。命令生成器123可基于包括在存储器请求中的信息来生成命令。命令生成器123可基于包括在存储器请求中的命令类型和命令地址或内容而生成命令。命令可包括例如“激活”、“预充电”、“刷新”、“读取”和“写入”中的任何一个,但是示例不限于此。命令生成器123可将生成的命令传送到第二缓冲器125。命令生成器123可以按序列顺序将生成的命令传送到第二缓冲器125。
第二缓冲器125可存储包括第一命令的多个命令。第二缓冲器125可将从命令生成器123传送的命令存储在队列中。队列可以是设置在队列的结构中的等待线。
命令调度器124可对存储在第二缓冲器125中的命令的执行顺序执行调度。命令调度器124可基于命令的类型对命令的执行顺序执行调度。命令调度器124可基于第一命令的类型来确定是否改变存储在第二缓冲器125中的第一命令的顺序(例如,是否改变执行顺序内的第一命令的位置)。命令调度器124可改变被设置为无序类型的命令的执行顺序。例如,当第一命令的类型指示通用存储器时,命令调度器124可改变第一命令的顺序。命令调度器124可维持被设置为有序类型的命令的执行顺序。例如,当第一命令的类型指示PIM存储器时,命令调度器124可维持第一命令的顺序。
存储器130可具有多个通道。存储器130可以按通道单元被划分为区域,并且每个通道单元可被独立地操作。每个通道可对应于存储器控制器。参照图1,一个通道可对应于存储器控制器,并且另一通道可对应于另一存储器控制器。当从多个主机(诸如,处理器和DMA控制器)发生存储器请求时,存储器请求可基于地址由每个存储器通道进行划分。前述操作可由与每个存储器请求对应的通道的存储器控制器并行执行。
如所示出的,在一个示例中,一个或多个实施例的存储器控制器120可修改通用存储器控制器的操作方法,从而可防止可在PIM操作中发生的性能和稳定性的降低。例如,存储器控制器120可通过将命令将要执行的地址区分为通用存储器和PIM存储器来设置命令的类型,并且基于类型来确定是否对队列中的命令执行调度。
当对PIM存储器区域的访问被请求时,存储器控制器120可生成命令并将命令存储在队列中,并且以命令存储在队列中的顺序访问存储器130。相反,当对通用存储器区域的访问被请求时,存储器控制器120可生成命令并将命令存储在队列中,对队列中的命令执行调度,从而以调度的顺序访问存储器130。因此,一个或多个实施例的存储器控制器120可在维持对通用存储器的存储器访问的效率的同时,提高PIM存储器的操作的效率。
尽管上面参照图1描述了控制存储器130的存储器控制器120,但是示例不限于此。除了存储器130之外,存储器控制器120还可适用于存储数据的各种存储装置。例如,控制缓存或写入缓冲器的控制器可以以与上面参照图1描述的类似方式进行操作。
图2示出其中存储由存储器控制器使用的存储器请求中包括的地址的字段的示例。
在一个示例中,从主机110传送的存储器请求可包括地址字段。地址字段可包括多个位,并且多个位中的一个位可被定义为区域分离位。区域分离位可以是通过0和1区分PIM存储器区域和通用存储器区域的位。
例如,参照图2,64位系统可使用64位地址系统,因此地址字段可包括64位。在64位之中,可将一个位设置为区域分离位201。
在一个示例中,区域分离位201可用作将命令类型区分为有序类型和无序类型的标志。在该示例中,区域分离位201可指示地址的类型,但是可以不指示地址值。
在另一示例中,区域分离位201可指示命令类型和地址值(例如,值范围)两者。例如,当区域分离位201是第一位时,二进制地址值000...0至011...1可指示通用存储器区域,并且二进制地址值100...0至111...1可指示PIM存储器区域。
图3示出将要存储在第二缓冲器中的命令的示例。
在一个示例中,在存储在存储器控制器120的第二缓冲器125中的命令之中,PIM存储器区域类型的命令可具有不被命令调度器124改变的顺序。命令调度器124可改变存储在队列中的命令之中的通用存储器区域类型的命令的顺序,以用于对存储器130的有效访问。
参照图3,命令301、303、305、307和309可存储在第二缓冲器125中。例如,第二缓冲器125可包括命令301、303、305、307和309,并且命令301、303、305、307和309的各自的类型可全部为“写入”。
当第二缓冲器125的数据结构是先进先出(FIFO)队列时,命令的顺序可被定义为从右到左。例如,从命令309开始到命令301的顺序(例如,命令309→命令307→命令305→命令303→命令301的顺序)可为队列中的命令的原始顺序。
命令301和命令307可以是类型被设置为通用存储器区域类型的命令。命令301和命令307被指示为WRITE,以能够区别于PIM存储器区域类型的命令。
命令303、命令305和命令309可以是类型被设置为PIM存储器区域类型的命令。命令303、命令305和命令309被指示为WRITE',以能够区别于通用存储器区域类型的命令。
命令调度器124可重新排列用于通用存储器区域的命令的顺序,以更有效地访问存储器130。例如,尽管命令307和命令301可以以从命令307开始到命令301的顺序存储在队列中,但是可通过由命令调度器124执行的调度将命令307和命令301被执行的执行顺序改变为从命令301开始到命令307的顺序。在图3的示例中,命令301的顺序可为第四且命令307的顺序可为第五,并且随后命令301可被指示为“WRITE 4”且命令307可被指示为“WRITE5”。
PIM存储器区域类型的命令的顺序可以不被命令调度器124改变。例如,命令309、命令305和命令303的执行顺序可维持为如在队列中那样的原始顺序。命令调度器124可以不改变命令309、命令305和命令303的顺序以进行有效的存储器访问。在图3的示例中,命令309的顺序可为第一,命令305的顺序可为第二,命令303可为第三,并且随后命令309可被指示为“WRITE'1”,命令305可被指示为“WRITE'2”,命令303可被指示为“WRITE'3”。
通过上述的操作,一个或多个实施例的存储器控制器120可减少典型的存储器控制器的不利延迟,所述不利延迟可由为了强制遵循由命令调度器针对PIM存储器中的操作重新排列的命令的顺序而被添加到应用程序的操作所引起。因此,一个或多个实施例的存储器控制器120可(例如,通过区分针对PIM存储器的命令的顺序与针对通用存储器的命令的顺序,并且维持针对PIM存储器的命令的顺序)改进性能和稳定性。
图4示出存储器控制方法的示例。
在一个示例中,存储器控制器可包括第一缓冲器、命令生成器、命令调度器和第二缓冲器。
在操作401中,第一缓冲器可从主机接收存储器请求并存储接收的存储器请求。
在操作403中,命令生成器可生成与存储器请求对应的第一命令。
在操作405中,命令生成器可设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于PIM存储器。
在操作407中,第二缓冲器可存储包括第一命令的多个命令。
在操作409中,命令调度器可基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。当第一命令的类型指示PIM存储器时,命令调度器可维持第一命令的顺序。当第一命令的类型指示通用存储器时,命令调度器可改变第一命令的顺序。
图5示出存储器控制器的配置的示例。
在一个示例中,存储器控制器520可包括第一缓冲器521、请求仲裁器522、命令生成器523、命令调度器524和第二缓冲器525。
存储器控制器520可从主机510接收存储器请求并将接收的存储器请求存储在队列中。通用存储器控制器可通过改变存储在队列中的存储器请求的顺序来将存储器请求传送到命令生成器以进行有效的存储器访问。在这个处理中,存储在队列中的存储器请求的顺序可被改变。例如,通用存储器控制器可通过将存储器请求的顺序改变为从“写入”请求开始的顺序来传送存储在队列中的存储器请求(例如,“读取”请求、“读取”请求和“写入”请求),使得顺序是“写入”请求、“读取”请求和“读取”请求。
PIM存储器不仅可存储数据,而且可执行通过内部处理器执行的操作。因此,当队列中的存储器请求的顺序被改变时,待生成的命令的顺序也可被改变,因此典型的PIM存储器的效率可降低。在典型的PIM存储器中执行的操作可适合于存储在队列中的存储器请求的原始顺序,但不适合于存储器请求的重新排列的顺序。
一个或多个实施例的存储器控制器520可将队列中的针对PIM存储器区域的命令的顺序设置为不改变。主机510可将存储器请求传送到存储器控制器520,存储器请求可按序列顺序存储在第一缓冲器521中。
请求仲裁器522可验证存储在第一缓冲器521中的存储器请求的地址并确定该地址是对应于通用存储器区域还是PIM存储器区域。请求仲裁器522可基于包括在存储器请求中的地址的区域分离位来确定地址是对应于通用存储器区域还是PIM存储器区域。请求仲裁器522可设置存储器区域的类型。
当存储器区域的类型对应于PIM存储器区域时,请求仲裁器522可在维持队列中的存储器请求的顺序的同时将存储器请求传送到命令生成器523。可选地,当存储器区域的类型对应于通用存储器区域时,请求仲裁器522可以以使得能够有效访问存储器530的顺序将存储器请求传送到命令生成器523。
命令生成器523可验证从请求仲裁器522传送的存储器请求的类型。命令生成器523可生成命令并将生成的命令传送到第二缓冲器525的队列。当存储器请求被确定为对应于PIM存储器区域时,命令调度器524可维持针对PIM存储器区域的命令的顺序以访问存储器530。
为此,主机510可将存储器请求传送到存储器控制器520的第一缓冲器521。第一缓冲器521可从主机510接收存储器请求并存储接收的存储器请求。存储器请求可包括将要由存储器控制器520执行的命令的信息。存储器请求可包括命令的类型和地址。在写入请求的情况下,存储器请求还可包括将要包括在命令的地址中的内容。
第一缓冲器521可将从主机510接收的一个或多个存储器请求存储在队列中。队列可以是设置在队列的结构中的等待线。
请求仲裁器522可基于存储器请求的地址将与存储器请求对应的命令将要执行的地址区分为通用存储器和PIM存储器。请求仲裁器522可验证包括在存储器请求中的地址字段的区域分离位,并且确定存储器请求是对应于通用存储器还是PIM存储器。
区域分离位可表示通过0和1区分通用存储器区域和PIM存储器区域的位。例如,在4位地址的情况下,当区域分离位是第一位时,0000至01111可指示通用存储器区域,而1000至1111可指示PIM存储器区域。然而,示例不限于此,并且区域分离位可以是地址字段中的任意位置的位。
请求仲裁器522可将与通用存储器对应的命令设置为无序类型,并且将与PIM存储器对应的命令设置为有序类型。无序类型在此也可被称为通用存储器区域类型,有序类型在此也可被称为PIM存储器区域类型。被设置为无序类型的存储器请求将要传送的顺序可由请求仲裁器522改变,并且由存储器请求生成的命令将要执行的(执行)顺序可由命令调度器524改变。被设置为有序类型的存储器请求将要传送的顺序可被维持,并且由存储器请求生成的命令将要执行的(执行)顺序也可被维持。
请求仲裁器522可将存储在队列中的一个或多个存储器请求传送到命令生成器523。例如,请求仲裁器522可基于存储器请求的类型将存储器请求传送到命令生成器523。请求仲裁器522可改变被设置为无序类型的存储器请求的顺序,并且以改变的顺序将存储器请求传送到命令生成器523。请求仲裁器522可维持被设置为有序类型的存储器请求的顺序,并且以维持的顺序将存储器请求传送到命令生成器523。
命令生成器523可生成与存储器请求对应的命令。例如,命令生成器523可基于包括在存储器请求中的信息来生成命令。命令生成器523可基于包括在存储器请求中的命令类型和命令地址或内容而生成命令。命令可包括例如“激活”、“预充电”、“刷新”、“读取”和“写入”中的任何一个,但是命令的示例不限于此。命令生成器523可将生成的命令传送到第二缓冲器525。命令生成器523可按序列顺序将生成的命令传送到第二缓冲器525。
第二缓冲器525可在其中存储包括第一命令的多个命令。第二缓冲器525可将从命令生成器523接收的一个或多个命令存储在队列中。例如,队列可以是设置在队列的结构中的等待线。
命令调度器524可对存储在第二缓冲器525中的命令的执行顺序执行调度。例如,命令调度器524可基于命令的类型对命令的执行顺序执行调度。命令调度器524可基于第一命令的类型来确定是否改变存储在第二缓冲器525中的第一命令的顺序。命令调度器524可改变被设置为无序类型的命令的执行顺序。当第一命令的类型指示通用存储器时,命令调度器524可改变第一命令的顺序。命令调度器524可维持被设置为有序类型的命令的执行顺序。当第一命令的类型指示PIM存储器时,命令调度器524可维持第一命令的顺序。
存储器530可具有多个通道。存储器530可以按通道单元划分为区域,并且每个通道单元可被独立地操作。每个通道可对应于存储器控制器。参照图5,一个通道可对应于存储器控制器,并且另一通道可对应于另一存储器控制器。当从多个主机(诸如,处理器和DMA控制器)发生存储器请求时,存储器请求可基于地址由存储器通道划分。前述操作可由与每个存储器请求对应的通道的存储器控制器并行执行。
如所示出的,在一个示例中,一个或多个实施例的存储器控制器520可修改通用存储器控制器的操作方法,从而可防止可在PIM操作中发生的性能和稳定性的降低。例如,存储器控制器520可通过将存储器请求的地址区分为通用存储器和PIM存储器来设置存储器请求的类型。然后,存储器控制器520可基于类型来确定是否对存储器请求将要传送的顺序执行调度以及是否对队列中的命令执行调度。因此,一个或多个实施例的存储器控制器520可因此在维持对通用存储器的存储器访问的效率的同时提高针对PIM存储器的操作的效率。
图6示出存储器控制方法的示例。
在一个示例中,存储器控制器可包括第一缓冲器、请求仲裁器、命令生成器、命令调度器和第二缓冲器。
在操作601中,第一缓冲器可从主机接收存储器请求并存储接收的存储器请求。
在操作603中,请求仲裁器可设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于PIM存储器。存储器请求可包括指示地址的字段,该字段可包括将通用存储器的地址与PIM存储器的地址区分开的区域分离位。请求仲裁器可基于区域分离位来设置第一命令的类型。
在操作605中,请求仲裁器可基于第一命令的类型来确定是否改变将要传送到命令生成器的存储器请求的顺序。当第一命令的类型指示PIM存储器时,请求仲裁器可维持存储器请求的顺序。当第一命令的类型指示通用存储器时,请求仲裁器可改变存储器请求的顺序。
在操作607中,命令生成器可基于存储器请求的顺序生成与存储器请求对应的第一命令和第一命令的类型。
在操作609中,第二缓冲器可存储包括第一命令的多个命令。
在操作611中,命令调度器可基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。当第一命令的类型指示PIM存储器时,命令调度器可维持第一命令的顺序。当第一命令的类型指示通用存储器时,命令调度器可改变第一命令的顺序。
在此针对图1至图6描述的存储器控制器、第一缓冲器、命令生成器、命令调度器、第二缓冲器、主机、存储器、请求仲裁器、存储器控制器120、第一缓冲器121、命令生成器123、命令调度器124、第二缓冲器125、主机110、存储器130、存储器控制器520、第一缓冲器521、请求仲裁器522、命令生成器523、命令调度器524、第二缓冲器525、主机510、存储器530以及其他设备、装置、单元、模块和组件由硬件组件实现或表示硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本申请中描述的操作的硬件组件中的一个或多个硬件组件。处理器或计算机可由一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于在本申请中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件、或多种类型的处理元件、或两者。例如,单个硬件组件、或者两个或更多个硬件组件可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可由一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可由一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理、多指令多数据(MIMD)多处理、控制器和算术逻辑单元(ALU)、DSP、微型计算机、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑单元(PLU)、中央处理器(CPU)、图形处理器(GPU)、神经处理器(NPU)、或能够以限定的方式响应并执行指令的任何其他装置。
图1至图6中示出的执行在本申请中描述的操作的方法由计算硬件(例如,由一个或多个处理器或计算机)执行,计算硬件被实现为如上所述执行指令或软件以执行在本申请中描述的由所述方法执行的操作。例如,单个操作、或者两个或更多个操作可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可由一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可由一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作、或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机作为机器或专用计算机进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及说明书中的相应描述使用任何编程语言来编写指令或软件,附图中示出的框图和流程图以及说明书中的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、磁性RAM(MRAM)、自旋转移矩(STT)-MRAM、静态随机存取存储器(SRAM)、晶闸管RAM(T-RAM)、零电容器RAM(Z-RAM)、双晶体管RAM(TTRAM)、导电桥接式RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻式RAM(RRAM)、纳米管RRAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子存储器装置)、绝缘体电阻变化存储器、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储装置、硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、卡式存储器(诸如,多媒体卡或微型卡(例如,安全数字(SD)或极限数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令或软件以及任何相关联的数据、数据文件和数据结构以分布式方式被一个或多个处理器或计算机存储、访问和执行。
虽然本公开包括特定示例,但是在理解本申请的公开之后将清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例应仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可适用于其他示例中的相似特征或方面。如果描述的技术以不同的顺序执行,和/或如果描述的系统、架构、设备或电路中的组件以不同的方式被组合、和/或由其他组件或其等同物替代或补充,则可实现合适的结果。
Claims (23)
1.一种存储器控制器,包括:
第一缓冲器,被配置为从主机接收存储器请求并且在其中存储接收的存储器请求;
命令生成器,被配置为:生成与存储器请求对应的第一命令,并且设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理PIM存储器;
第二缓冲器,被配置为在其中存储包括第一命令的多个命令;以及
命令调度器,被配置为基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
2.根据权利要求1所述的存储器控制器,其中,为了确定是否改变第一命令的顺序,命令调度器被配置为响应于第一命令的类型指示包括在存储器请求中的地址对应于PIM存储器而维持第一命令的顺序。
3.根据权利要求1所述的存储器控制器,其中,为了确定是否改变第一命令的顺序,命令调度器被配置为响应于第一命令的类型指示包括在存储器请求中的地址对应于通用存储器而改变第一命令的顺序。
4.根据权利要求1至3中的任一项所述的存储器控制器,其中,
存储器请求包括指示所述地址的字段,
所述字段包括区域分离位,区域分离位将通用存储器的地址和PIM存储器的地址区分开,并且
为了设置第一命令的类型,命令生成器被配置为基于区域分离位来设置第一命令的类型。
5.一种存储器控制器,包括:
第一缓冲器,被配置为从主机接收存储器请求并且在其中存储接收的存储器请求;
请求仲裁器,被配置为:设置第一命令的类型,并且基于第一命令的类型确定是否改变将要传送到命令生成器的存储器请求的顺序,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理PIM存储器;
命令生成器,其中,命令生成器被配置为基于存储器请求的顺序生成与存储器请求对应的第一命令和第一命令的类型;
第二缓冲器,被配置为在其中存储包括第一命令的多个命令;以及
命令调度器,被配置为基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
6.根据权利要求5所述的存储器控制器,其中,为了确定是否改变存储器请求的顺序,请求仲裁器被配置为响应于第一命令的类型指示包括在存储器请求中的地址对应于PIM存储器而维持存储器请求的顺序。
7.根据权利要求5所述的存储器控制器,其中,为了确定是否改变存储器请求的顺序,请求仲裁器被配置为响应于第一命令的类型指示包括在存储器请求中的地址对应于通用存储器而改变存储器请求的顺序。
8.根据权利要求5所述的存储器控制器,其中,为了确定是否改变第一命令的顺序,命令调度器被配置为响应于第一命令的类型指示包括在存储器请求中的地址对应于PIM存储器而维持第一命令的顺序。
9.根据权利要求5所述的存储器控制器,其中,为了确定是否改变第一命令的顺序,命令调度器被配置为响应于第一命令的类型指示包括在存储器请求中的地址对应于通用存储器而改变第一命令的顺序。
10.根据权利要求5至9中的任一项所述的存储器控制器,其中,
存储器请求包括指示所述地址的字段,
所述字段包括区域分离位,区域分离位将通用存储器的地址和PIM存储器的地址区分开,并且
为了设置第一命令的类型,请求仲裁器被配置为基于区域分离位来设置第一命令的类型。
11.一种存储器控制方法,包括:
由第一缓冲器,从主机接收存储器请求并且在其中存储接收的存储器请求;
由命令生成器,生成与存储器请求对应的第一命令,并且设置第一命令的类型,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理PIM存储器;
由第二缓冲器,在其中存储包括第一命令的多个命令;以及
由命令调度器,基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
12.根据权利要求11所述的存储器控制方法,其中,确定是否改变第一命令的顺序的步骤包括:
响应于第一命令的类型指示包括在存储器请求中的地址对应于PIM存储器,通过命令调度器维持第一命令的顺序。
13.根据权利要求11所述的存储器控制方法,其中,确定是否改变第一命令的顺序的步骤包括:
响应于第一命令的类型指示包括在存储器请求中的地址对应于通用存储器,通过命令调度器改变第一命令的顺序。
14.一种存储器控制方法,包括:
由第一缓冲器,从主机接收存储器请求并且在其中存储接收的存储器请求;
由请求仲裁器,设置第一命令的类型,并且基于第一命令的类型确定是否改变将要传送到命令生成器的存储器请求的顺序,第一命令的类型指示包括在存储器请求中的地址是否对应于存储器内处理PIM存储器;
由命令生成器,基于存储器请求的顺序生成与存储器请求对应的第一命令和第一命令的类型;
由第二缓冲器,在其中存储包括第一命令的多个命令;以及
由命令调度器,基于第一命令的类型来确定是否改变存储在第二缓冲器中的第一命令的顺序。
15.根据权利要求14所述的存储器控制方法,其中,确定是否改变存储器请求的顺序的步骤包括:
响应于第一命令的类型指示包括在存储器请求中的地址对应于PIM存储器,维持存储器请求的顺序。
16.根据权利要求14所述的存储器控制方法,其中,确定是否改变存储器请求的顺序的步骤包括:
响应于第一命令的类型指示包括在存储器请求中的地址对应于通用存储器,改变存储器请求的顺序。
17.根据权利要求14所述的存储器控制方法,其中,确定是否改变第一命令的顺序的步骤包括:
响应于第一命令的类型指示包括在存储器请求中的地址对应于PIM存储器,维持第一命令的顺序。
18.根据权利要求14所述的存储器控制方法,其中,确定是否改变第一命令的顺序的步骤包括:
响应于第一命令的类型指示包括在存储器请求中的地址对应于通用存储器,改变第一命令的顺序。
19.根据权利要求14至18中的任一项所述的存储器控制方法,其中,
存储器请求包括指示所述地址的字段,
所述字段包括区域分离位,区域分离位将通用存储器的地址和PIM存储器的地址区分开,并且
设置第一命令的类型的步骤包括基于区域分离位来设置第一命令的类型。
20.一种存储器控制器,包括:
命令生成器,被配置为基于存储的存储器请求中的地址的区域分离位来设置命令的类型,所述类型指示所述地址是否对应于存储器内处理PIM存储器;
命令调度器,被配置为基于由命令生成器设置的命令的类型来确定是否改变存储在缓冲器中的命令的顺序。
21.根据权利要求20所述的存储器控制器,其中,
区域分离位对应于值范围,并且
为了设置命令的类型,命令生成器被配置为:
响应于所述地址的字段的值不在所述值范围内,设置指示所述地址对应于PIM存储器的命令的类型;以及
响应于所述字段的值在所述值范围内,设置指示所述地址对应于通用存储器的命令的类型。
22.根据权利要求20所述的存储器控制器,其中,为了确定是否改变命令的顺序,命令调度器被配置为:响应于命令的类型指示所述地址对应于PIM存储器而维持命令的顺序并改变存储在缓冲器中的一个或多个其他命令的顺序。
23.根据权利要求20至22中的任一项所述的存储器控制器,其中,存储器控制器被配置为基于命令的顺序来访问存储器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0017653 | 2021-02-08 | ||
KR20210017653 | 2021-02-08 | ||
KR10-2021-0058628 | 2021-05-06 | ||
KR1020210058628A KR20220114448A (ko) | 2021-02-08 | 2021-05-06 | 메모리 컨트롤러 및 메모리 제어 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114911723A true CN114911723A (zh) | 2022-08-16 |
Family
ID=78819342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210117438.2A Pending CN114911723A (zh) | 2021-02-08 | 2022-02-08 | 存储器控制器和存储器控制方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11907575B2 (zh) |
EP (1) | EP4040300A1 (zh) |
CN (1) | CN114911723A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023091307A (ja) * | 2021-12-20 | 2023-06-30 | キオクシア株式会社 | 半導体装置および制御方法 |
US20240103745A1 (en) * | 2022-09-28 | 2024-03-28 | Advanced Micro Devices, Inc. | Scheduling Processing-in-Memory Requests and Memory Requests |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521960B2 (en) * | 2010-06-23 | 2013-08-27 | International Business Machines Corporation | Mitigating busy time in a high performance cache |
US10140104B2 (en) * | 2015-04-14 | 2018-11-27 | Micron Technology, Inc. | Target architecture determination |
US9892058B2 (en) * | 2015-12-16 | 2018-02-13 | Advanced Micro Devices, Inc. | Centrally managed unified shared virtual address space |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10453502B2 (en) * | 2016-04-04 | 2019-10-22 | Micron Technology, Inc. | Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions |
KR102534633B1 (ko) * | 2016-04-14 | 2023-05-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10437482B2 (en) * | 2017-07-25 | 2019-10-08 | Samsung Electronics Co., Ltd. | Coordinated near-far memory controller for process-in-HBM |
KR20190110360A (ko) | 2018-03-20 | 2019-09-30 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 시스템 및 그 동작 방법 |
KR102665410B1 (ko) | 2018-07-30 | 2024-05-13 | 삼성전자주식회사 | 메모리 장치의 내부 프로세싱 동작 방법 |
KR20200113991A (ko) | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 컨트롤러 및 메모리 시스템 |
KR102707631B1 (ko) * | 2019-05-10 | 2024-09-13 | 에스케이하이닉스 주식회사 | 연산 회로를 포함하는 메모리 장치, 이를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR20220127601A (ko) * | 2021-03-11 | 2022-09-20 | 삼성전자주식회사 | 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 |
-
2021
- 2021-09-23 US US17/483,083 patent/US11907575B2/en active Active
- 2021-11-29 EP EP21211011.8A patent/EP4040300A1/en active Pending
-
2022
- 2022-02-08 CN CN202210117438.2A patent/CN114911723A/zh active Pending
-
2023
- 2023-08-29 US US18/457,505 patent/US20240004588A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220253248A1 (en) | 2022-08-11 |
US20240004588A1 (en) | 2024-01-04 |
EP4040300A1 (en) | 2022-08-10 |
US11907575B2 (en) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114911723A (zh) | 存储器控制器和存储器控制方法 | |
EP2911065B1 (en) | Distributed procedure execution and file systems on a memory interface | |
US11409440B2 (en) | Systems, methods and apparatus for memory access and scheduling | |
US11710524B2 (en) | Apparatuses and methods for organizing data in a memory device | |
KR20240123437A (ko) | 메모리 디바이스에서 비트를 순서화하기 위한 장치 및 방법 | |
KR20220070034A (ko) | 로드 명령을 위한 타임 투 리브 | |
KR20220116566A (ko) | 확장 메모리 통신 | |
KR101349899B1 (ko) | 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 | |
KR20220050177A (ko) | 3단의 계층적 메모리 시스템 | |
US10664396B2 (en) | Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes | |
CN116048770A (zh) | 用于进程调度的方法和设备 | |
US11886737B2 (en) | Devices and systems for in-memory processing determined | |
CN115933965A (zh) | 存储器存取控制 | |
CN114153755A (zh) | 存储器内处理器、存储器访问设备以及存储器访问方法 | |
KR20230026423A (ko) | 확장 메모리 뉴로모픽 컴포넌트 | |
US11893278B2 (en) | Memory controller and memory control method for generating commands based on a memory request | |
KR20210134048A (ko) | 확장 메모리 연산 | |
TW201721408A (zh) | 由裝置端推核心入佇列的裝置 | |
KR102722832B1 (ko) | 저장 디바이스 동작 오케스트레이션 | |
US11768614B2 (en) | Storage device operation orchestration | |
US20240333305A1 (en) | Initiator identifier compression | |
CN115729449A (zh) | 命令检索及发出策略 | |
KR20240157127A (ko) | 저장 디바이스 동작 오케스트레이션 | |
CN117632778A (zh) | 电子装置和操作电子装置的方法 | |
WO2021034599A1 (en) | Hierarchical memory systems |
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 |