CN114153755A - 存储器内处理器、存储器访问设备以及存储器访问方法 - Google Patents
存储器内处理器、存储器访问设备以及存储器访问方法 Download PDFInfo
- Publication number
- CN114153755A CN114153755A CN202110295385.9A CN202110295385A CN114153755A CN 114153755 A CN114153755 A CN 114153755A CN 202110295385 A CN202110295385 A CN 202110295385A CN 114153755 A CN114153755 A CN 114153755A
- Authority
- CN
- China
- Prior art keywords
- memory
- physical address
- processor
- offset information
- target physical
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了存储器内处理器、存储器访问设备以及存储器访问方法。所述存储器内处理器包括:存储器;寄存器,被配置为存储偏移信息;和内部处理器,被配置为:从存储器控制器接收存储器的参考物理地址和指令,基于偏移信息来确定存储器的偏移物理地址,基于参考物理地址和偏移物理地址来确定存储器的目标物理地址,和通过访问目标物理地址来执行指令。
Description
本申请要求于2020年9月8日在韩国知识产权局提交的第10-2020-0114582号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及存储器内处理器以及具有存储器访问的方法和设备。
背景技术
在冯诺依曼架构中,数据可被存储在存储器中。存储器可与处理器分开,并且数据可在它们之间移动。在该结构中,由于频繁的数据移动而出现不可避免的延迟。尽管存储器可随着处理器的速度的增加而被改进,但是改进可不在于传输速率,而在于在较小空间中存储更多数据的能力。当将数据从存储器获取到处理器所需的等待时间增加时,处理器的速度可能限于瓶颈处的传输速率。因此,在计算机架构中可能出现吞吐量由于等待时间而受到限制的冯诺依曼瓶颈。
发明内容
提供本发明内容来以简化的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确认要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种存储器内处理包括:存储器;寄存器,被配置为存储偏移信息;和内部处理器,被配置为:从存储器控制器接收存储器的参考物理地址和指令,基于偏移信息来确定存储器的偏移物理地址,基于参考物理地址和偏移物理地址来确定存储器的目标物理地址,和通过访问目标物理地址来执行指令。
存储器内处理可包括:高速缓存,被配置为存储偏移信息和目标物理地址。
内部处理器可被配置为:基于偏移信息搜索高速缓存;和响应于通过搜索在高速缓存中找到与偏移信息对应的目标物理地址,通过访问目标物理地址来执行指令。
为了确定目标物理地址,内部处理器可被配置为:响应于通过搜索在高速缓存中未找到与偏移信息对应的目标物理地址,基于参考物理地址和偏移物理地址来确定目标物理地址。
为了执行指令,内部处理器可被配置为:基于存储在目标物理地址处的存储器中的信息来执行存储器内处理(PIM)操作。
参考物理地址可对应于存储器中的绝对位置,并且偏移物理地址可对应于指示到存储器中的参考物理地址的距离的相对位置。
一种存储器访问设备可包括:存储器内处理;存储器控制器;外部处理器,被配置为:将偏移信息发送给存储器内处理;和存储器管理器(MMU),被配置为:将参考物理地址发送给存储器控制器。
在另一总体方面,一种存储器访问设备包括:存储器内处理,包括内部处理器、存储器和寄存器;存储器控制器;外部处理器;和存储器管理器(MMU),其中,外部处理器被配置为:将偏移信息发送给存储器内处理,将指令发送给存储器控制器,并且将参考虚拟地址发送给MMU,其中,MMU被配置为:将参考虚拟地址转换为存储器的参考物理地址,并且将参考物理地址发送给存储器控制器,其中,寄存器被配置为存储发送的偏移信息,并且其中,内部处理器被配置为:从存储器控制器接收指令和参考物理地址,基于偏移信息来确定存储器的偏移物理地址,基于参考物理地址和偏移物理地址来确定存储器的目标物理地址,和通过访问目标物理地址来执行指令。
存储器内处理可包括:高速缓存,被配置为存储偏移信息和目标物理地址。
内部处理器可被配置为:基于偏移信息搜索高速缓存;和响应于通过搜索在高速缓存中找到与偏移信息的对应目标物理地址,通过访问目标物理地址来执行指令。
在另一总体方面,一种存储器内处理的存储器访问方法包括:通过内部处理器从存储器控制器接收存储器的参考物理地址和指令;通过内部处理器基于存储在寄存器中的偏移信息来确定存储器的偏移物理地址;通过内部处理器基于参考物理地址和偏移物理地址来确定存储器的目标物理地址;和通过内部处理器通过访问目标物理地址来执行指令。
所述方法可包括:将偏移信息和目标物理地址存储在包括在所述存储器内处理中的高速缓存中。
所述方法可包括:通过内部处理器基于偏移信息搜索高速缓存;和响应于通过搜索在高速缓存中找到与偏移信息对应的目标物理地址,通过内部处理器通过访问目标物理地址来执行指令。
一种非暂时性计算机可读存储介质可存储指令,指令在被外部处理器执行时,配置外部处理器执行所述方法。
在另一总体方面,一种处理设备的存储器访问方法包括:通过外部处理器将偏移信息发送给存储器内处理,将指令发送给存储器控制器,并且将参考虚拟地址发送给存储器管理器(MMU);通过MMU将参考虚拟地址转换为存储器的参考物理地址,并且通过MMU将参考物理地址发送给存储器控制器;通过寄存器存储偏移信息;通过内部处理器从存储器控制器接收指令和参考物理地址;通过内部处理器基于偏移信息来确定存储器的偏移物理地址;通过内部处理器基于参考物理地址和偏移物理地址来确定存储器的目标物理地址;和通过内部处理器通过访问目标物理地址来执行指令。
所述方法可包括:将偏移信息和目标物理地址存储在包括在存储器内处理中的高速缓存中。
所述方法可包括:通过内部处理器基于偏移信息搜索高速缓存;和响应于通过搜索在高速缓存中找到与偏移信息对应的目标物理地址,通过内部处理器通过访问目标物理地址来执行指令。
从下面的具体实施方式、附图以及权利要求,其它特征和方面将是清楚的。
附图说明
图1示出存储器内处理器(processor-in-memory)的整体配置的示例。
图2示出通过存储器内处理器执行的存储器访问方法的示例。
图3示出存储器访问设备的整体配置的示例。
图4示出通过存储器访问设备执行的存储器访问方法的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的次序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,在理解本申请的公开之后,可省略本领域已知的特征的描述。
在下文中,将参照附图详细描述示例。然而,可对示例进行各种改变和修改。这里,示例不被解释为限于公开。这些示例应被理解为包括公开的理念和技术范围内的所有改变、等同物和替换。
在此使用的术语仅出于描述特定示例的目的,并不限制本公开。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。如在此使用的,术语“包括”、“包含”和“具有”说明存在叙述的特征、整体、步骤、操作、元件、组件、数量和/或它们的组合,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件、数量和/或它们的组合。在此针对示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解和在理解本公开之后的含义相同的含义。还将理解,除非在此清楚地如此定义,否则术语(诸如通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本公开中的含义一致的含义,并且将不以理想化或过于形式化的含义进行解释。
当参照附图描述示例时,相同的参考标号表示相同的构成元件,并且与相同的构成元件相关的重复描述将被省略。在示例的描述中,当认为公知的相关结构或功能的详细描述将导致本公开的模糊解释时,将省略这样的详细描述。
尽管在此使用“第一”或“第二”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不应被这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
贯穿说明书,当诸如层、区域或基底的元件被描述为“在”另一元件“上”、“连接到”或“结合到”另一元件时,所述元件可直接“在”所述另一元件“上”、“连接到”或“结合到”所述另一元件,或者可存在介于它们之间的一个或多个其它元件。相反,当元件被描述为“直接在”另一元件“上”、“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其它元件。同样地,例如“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”的表述也可如前面的描述的那样来解释。
可使用相同的名称来描述包括在以上描述的示例中的元件和具有共同功能的元件。除非另有说明,否则对示例的描述可适用于下面的示例,因此,为了简明起见,重复的描述将被省略。
图1示出存储器内处理器的整体配置的示例。
存储器内处理器(processor-in-memory)100可通过快速计算存储器110的目标物理地址来快速访问存储器110。由此,存储器内处理器100可快速执行存储在存储器110的预定地址中的PIM(processor in memory,存储器内处理器)操作,因此可解决典型的冯诺伊曼架构的冯诺伊曼瓶颈。
存储器内处理器100可被实现为半导体芯片。存储器内处理器100可设置在另一半导体内部。例如,存储器内处理器100可安装在半导体芯片内部(诸如,图形处理器(GPU)或移动处理器)。然而,示例不限于此。存储器内处理器100可应用于使用存储器的所有装置。
为了访问存储器,存储器的物理地址可被确定并访问。因此,可计算存储器的物理地址以访问存储器。当参考物理地址和偏移物理地址已知时,地址信息可被计算。这里,参考物理地址可以是或表示存储器中的绝对位置,偏移物理地址可以是或表示指示到参考物理地址的距离的相对位置。偏移物理地址可基于偏移信息而被计算,偏移信息可以是用于计算偏移物理地址的基本信息。偏移信息可包括诸如存储器的排(rank)、通道、存储体、行和/或列的信息。
当典型的存储器内处理器使用外部指令(例如,软件指令)来访问存储器内处理器的存储器时,多个偏移信息可被发送给外部处理器,并且计算可基于发送的信息而被执行。当对存储器内处理器的存储器的访问数量增加时,开销可能在偏移地址的计算中同样增加。
同时,存储器管理器(MMU)可以是被配置为将虚拟地址转换为物理地址的装置。当MMU通常用于访问存储器内处理器的存储器,由于MMU的将虚拟地址转换为物理地址的特性,可能难以从偏移信息计算物理地址。
相反,一个或多个实施例的存储器内处理器100可通过内部处理器120来计算存储器110的物理地址(例如,目标物理地址)。当一个或多个实施例的存储器内处理器100使用存储在存储器内处理器100中的寄存器130中的偏移信息计算物理地址时,开销可减少。
存储器内处理器100可生成用于PIM操作的存储器110的读取指令或写入指令。针对PIM操作,首先,可计算存储器110的目标物理地址,以确定将被访问的存储器110的地址。
存储器内处理器100可通过存储器内处理器100的内部处理器120来计算将被访问的存储器110的目标物理地址。内部处理器120可被制造为被配置为执行目标物理地址的计算。一个或多个实施例的存储器内处理器100可使用被制造并被配置为执行目标物理地址的计算的存储器内处理器100的内部处理器120来计算目标物理地址,而不是如典型的存储器内处理器那样使用单独的或外部的指令(例如,软件指令)来计算目标物理地址。由此,一个或多个实施例的存储器内处理器100可提高PIM操作的速度,并且同时加速目标物理地址的计算。
为了实现前述的速度提高和计算加速,存储器内处理器100包括存储器110、内部处理器120和寄存器130。用于PIM操作的简单数据或运算符和操作数信息可被存储在存储器110的每个地址。
寄存器130可存储偏移信息,该偏移信息可以是用于计算存储器110的目标物理地址的信息。寄存器130可响应于请求信号将偏移信息发送给内部处理器120。这里,发送的偏移信息可以是存储器110的排、通道、存储体、行和/或列。偏移信息可表示为变量。
内部处理器120可从存储器控制器接收存储器110的指令(例如,读取指令或写入指令)和参考物理地址。内部处理器120可从寄存器130接收偏移信息。当偏移信息被接收时,内部处理器120可基于偏移信息来计算存储器110的偏移物理地址。
内部处理器120可使用偏移物理地址和参考物理地址来计算将被访问的目标物理地址。当目标物理地址被计算时,存储器内处理器100可在用于PIM操作的位置处访问存储器110。
此后,内部处理器120可通过访问目标物理地址来执行(或实行)指令。存储器内处理器100可通过在目标物理地址处访问存储器110来执行读取指令或写入指令。可根据存储在被执行指令的目标物理地址处的内容来执行PIM操作。
在另一示例中,存储器内处理器100还可包括高速缓存140。存储器内处理器100可将计算的目标物理地址存储在高速缓存140中。高速缓存140可存储偏移信息和目标物理地址。
响应于来自主机150的用于访问存储器110的请求,存储器内处理器100可首先搜索高速缓存140。内部处理器120可基于偏移信息搜索高速缓存140。当通过搜索在高速缓存140中找到与偏移信息对应的目标物理地址时,内部处理器120可通过访问目标物理地址来执行指令。
当找到与用于访问的请求对应的目标物理地址时,存储器内处理器100可访问找到的目标物理地址,从而更高效地处理用于访问存储器110的请求。当通过搜索未找到与用于访问的请求对应的目标物理地址时,存储器内处理器100可通过内部处理器120来计算目标物理地址并访问计算的目标物理地址。例如,响应于通过搜索在高速缓存140中未找到与偏移信息对应的目标物理地址,内部处理器120可基于参考物理地址和偏移物理地址来确定目标物理地址。
因此,当应用高速缓存140时,即使不直接计算重复访问的地址或与其邻近的地址,也可通过高速缓存140直接访问存储器110。因此,可进一步提高执行速度。
图2示出通过存储器内处理器(例如,存储器内处理器100)执行的存储器访问方法的示例。
在操作201中,内部处理器可从存储器控制器接收存储器的参考物理地址和指令。参考物理地址可以是或表示用于参照以计算将被访问的目标物理地址的物理地址。指令可包括诸如读取或写入存储在存储器中的信息的命令。
在操作203中,内部处理器可基于偏移信息计算存储器的偏移物理地址。偏移信息可从外部主机被传送到寄存器并被存储在寄存器中。响应于用于访问存储器的请求,内部处理器可从寄存器接收偏移信息。内部处理器可基于偏移信息计算偏移物理地址。
在操作205中,内部处理器可基于参考物理地址和偏移物理地址计算存储器的目标物理地址。偏移物理地址可以是指示从参考物理地址到目标物理地址的距离的相对地址。内部处理器可基于作为绝对地址的参考物理地址以及作为相对地址的偏移物理地址来计算目标物理地址。
在操作207中,内部处理器可通过访问目标物理地址来执行指令。例如,内部处理器可通过访问目标物理地址来执行诸如(例如,指令的)读取或写入的命令。简单数据或运算符和操作数信息可被包括在目标物理地址中。在后一种情况下,可根据包括的信息来执行PIM操作。
在另一示例中,内部处理器可将偏移信息和目标物理地址存储在包括在存储器内处理器中的高速缓存中。响应于用于访问存储器的请求,内部处理器可首先基于偏移信息搜索高速缓存。当在高速缓存中找到与偏移信息对应的目标物理地址时,内部处理器可通过访问目标物理地址来执行指令。
图3示出存储器访问设备的整体配置的示例。
存储器访问设备300(例如,处理设备)可包括存储器内处理器100,并且存储器110的物理地址可通过存储器内处理器100中的内部处理器120被计算。当存储器访问设备300使用存储在存储器内处理器100中的寄存器130中的偏移信息来计算物理地址时,可减少开销。
存储器访问设备300可生成用于PIM操作的存储器110的读取指令或写入指令。针对PIM操作,首先,可计算存储器110的目标物理地址,以确定将被访问的存储器110的地址。
存储器访问设备300可通过存储器内处理器100的内部处理器120来计算将被访问的存储器110的目标物理地址。内部处理器120可被制造为被配置为执行目标物理地址的计算。一个或多个实施例的存储器内处理器100可使用被制造并被配置为执行目标物理地址的计算的存储器内处理器100的内部处理器120来计算目标物理地址,而不是如典型的存储器内处理器那样使用单独的或外部的指令(例如,软件指令)来计算目标物理地址。由此,一个或多个实施例的存储器访问设备300可提高PIM操作的速度,并且同时加速目标物理地址的计算。
为了实现前述的速度提高和计算加速,存储器访问设备300可包括存储器内处理器100、存储器控制器310、外部处理器320以及MMU 330。存储器内处理器100可包括存储器110、内部处理器120和寄存器130。存储器访问设备300可包括所有类型的装置,所有类型的装置包括存储器内处理器100、存储器控制器310、外部处理器320以及MMU 330。例如,存储器访问设备300可包括移动终端、计算机和/或服务器。
用于PIM操作的简单数据或运算符和操作数信息可被存储在存储器110的每个地址。寄存器130可存储偏移信息,该偏移信息可以是用于计算存储器110的目标物理地址的信息。寄存器130可响应于请求信号将偏移信息发送给内部处理器120。
外部处理器320可根据存储器访问设备300的目的执行各种操作。外部处理器320可将偏移信息传送到寄存器130。外部处理器320可将参考虚拟地址发送给MMU 330。外部处理器320可将指令(例如,读取指令或写入指令)发送给存储器控制器310。MMU 330可将参考虚拟地址转换为参考物理地址,并且(例如,通过存储器控制器310)将参考物理地址发送给内部处理器120。
内部处理器120可从存储器控制器310接收存储器110的参考物理地址和指令。内部处理器120可从寄存器130接收偏移信息。当偏移信息被接收时,内部处理器120可基于偏移信息来计算存储器110的偏移物理地址。
内部处理器120可使用偏移物理地址和参考物理地址来计算将被访问的目标物理地址。当目标物理地址被计算时,存储器内处理器100可在用于PIM操作的位置处访问存储器110。
此后,内部处理器120可通过访问目标物理地址来执行(或实行)指令。存储器内处理器100可通过目标物理地址处访问存储器110来执行读取指令或写入指令。可根据存储在执行指令的目标物理地址处的内容来执行PIM操作。
在另一示例中,存储器访问设备300还可包括高速缓存140。存储器访问设备300可将计算的目标物理地址存储在高速缓存140中。高速缓存140可存储偏移信息和目标物理地址。
响应于来自主机的用于访问存储器110的请求,存储器访问设备300可首先搜索高速缓存140。内部处理器120可基于偏移信息搜索高速缓存140。当在高速缓存140中找到与偏移信息对应的目标物理地址时,内部处理器120可通过访问目标物理地址来执行指令。
当找到与用于访问的请求对应的目标物理地址时,存储器访问设备300可访问找到的目标物理地址,从而更高效地处理用于访问存储器的请求。当未找到与用于访问的请求对应的目标物理地址时,存储器访问设备300可通过内部处理器120来计算目标物理地址并访问计算的目标物理地址。
因此,当应用高速缓存140时,即使不直接计算重复访问的地址或与其邻近的地址,也可通过高速缓存140直接访问存储器110。因此,可进一步提高执行速度。
图4示出通过存储器访问设备(例如,存储器访问设备300)执行的存储器访问方法的示例。
在操作401中,存储器访问设备的外部处理器可将偏移信息发送给存储器内处理器(例如,发送给寄存器),将指令发送给存储器控制器,并且将参考虚拟地址发送给MMU。
在操作403中,存储器访问设备的MMU可将参考虚拟地址转换为存储器的参考物理地址,并且将参考物理地址发送给存储器控制器。
在操作405中,存储器访问设备的寄存器可存储偏移信息。寄存器可响应于访问请求信号而将偏移信息发送给内部处理器。
在操作407中,内部处理器从存储器控制器可接收存储器的参考物理地址和指令。参考物理地址可以是或表示用于参照以计算将被访问的目标物理地址的物理地址。指令可包括诸如读取或写入存储在存储器中的信息的命令。
在操作409中,内部处理器可基于偏移信息计算存储器的偏移物理地址。偏移信息可从外部主机被传送到寄存器并被存储在寄存器中。响应于用于访问存储器的请求(例如,访问请求信号),内部处理器可从寄存器接收偏移信息。内部处理器可基于偏移信息计算偏移物理地址。
在操作411中,内部处理器可基于参考物理地址和偏移物理地址来计算存储器的目标物理地址。偏移物理地址可以是指示从参考物理地址到目标物理地址的距离的相对地址。内部处理器可基于作为绝对地址的参考物理地址以及作为相对地址的偏移物理地址来计算目标物理地址。
在操作413中,内部处理器可通过访问目标物理地址来执行指令。例如,内部处理器可通过访问目标物理地址来执行诸如(例如,指令的)读取或写入的命令。简单数据或运算符和操作数信息可被包括在目标物理地址。在后一种情况下,可根据包括的信息来执行PIM操作。
在另一示例中,内部处理器可将偏移信息和目标物理地址存储在包括在存储器内处理器中的高速缓存中。响应于用于访问存储器的请求,内部处理器可首先基于偏移信息搜索高速缓存。当在高速缓存中找到与偏移信息对应的目标物理地址时,内部处理器可通过访问目标物理地址来执行指令。
在此关于图1至图4描述的存储器内处理器、存储器、内部处理器、寄存器、高速缓存、主机、存储器访问设备、存储器控制器、外部处理器、MMU、存储器内处理器100、存储器110、内部处理器120、寄存器130、高速缓存140、主机150、存储器控制器310、外部处理器320、MMU 330以及其它设备、装置、单元、模块和组件通过硬件组件来实现或体现。可用于执行在本申请中描述的操作的硬件组件的示例适当地包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器和被配置为执行在本申请中描述的操作的任何其它电子组件。在其它示例中,执行在本申请中描述的操作的硬件组件中的一个或多个通过计算硬件(例如,通过一个或多个处理器或计算机)来实现。可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其它装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可在本申请中描述的示例的描述中被使用,但是在其它示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其它硬件组件可通过一个或多个其它处理器,或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或任何多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图4中示出的执行在本申请中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被如上所述地实现为执行指令或软件,以执行在本申请中描述的由所述方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其它操作可通过一个或多个其它处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及在此使用的相应描述,使用任何编程语言编写指令或软件,附图中示出的框图和流程图以及在此使用的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(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-RLTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、卡式存储器(诸如,多媒体卡或者微型卡(例如,安全数字(SD)或者极速数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及任何其它装置,任何其它装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器和计算机可执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式的方式被存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及它们的等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例将被认为仅是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其它示例中的类似特征或方面。如果描述的技术以不同的次序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其它组件或它们的等同物替换或补充,则可实现合适的结果。
Claims (17)
1.一种存储器内处理器,包括:
存储器;
寄存器,被配置为存储偏移信息;和
内部处理器,被配置为:
从存储器控制器接收存储器的参考物理地址和指令,
基于偏移信息来确定存储器的偏移物理地址,
基于参考物理地址和偏移物理地址来确定存储器的目标物理地址,和
通过访问目标物理地址来执行指令。
2.根据权利要求1所述的存储器内处理器,还包括:
高速缓存,被配置为存储偏移信息和目标物理地址。
3.根据权利要求2所述的存储器内处理器,其中,内部处理器还被配置为:
基于偏移信息搜索高速缓存;和
响应于通过搜索在高速缓存中找到与偏移信息对应的目标物理地址,通过访问目标物理地址来执行指令。
4.根据权利要求3所述的存储器内处理器,其中,为了确定目标物理地址,内部处理器还被配置为:
响应于通过搜索在高速缓存中未找到与偏移信息对应的目标物理地址,基于参考物理地址和偏移物理地址来确定目标物理地址。
5.根据权利要求1至权利要求4中的任一项所述的存储器内处理器,其中,为了执行指令,内部处理器还被配置为:基于存储在存储器的目标物理地址处的信息来执行存储器内处理器操作。
6.根据权利要求1至权利要求4中的任一项所述的存储器内处理器,其中,参考物理地址对应于存储器中的绝对位置,并且偏移物理地址对应于指示到存储器中的参考物理地址的距离的相对位置。
7.一种存储器访问设备,包括:
根据权利要求1所述的存储器内处理器;
根据权利要求1所述的存储器控制器;
外部处理器,被配置为:将根据权利要求1所述的偏移信息发送给根据权利要求1所述的存储器内处理器;和
存储器管理器,被配置为:将根据权利要求1所述的参考物理地址发送给根据权利要求1所述的存储器控制器。
8.一种存储器访问设备,包括:
存储器内处理器,包括内部处理器、存储器和寄存器;
存储器控制器;
外部处理器;和
存储器管理器,
其中,外部处理器被配置为:将偏移信息发送给存储器内处理器,将指令发送给存储器控制器,并且将参考虚拟地址发送给存储器管理器,
其中,存储器管理器被配置为:将参考虚拟地址转换为存储器的参考物理地址,并且将参考物理地址发送给存储器控制器,
其中,寄存器被配置为存储发送的偏移信息,并且
其中,内部处理器被配置为:
从存储器控制器接收指令和参考物理地址,
基于偏移信息来确定存储器的偏移物理地址,
基于参考物理地址和偏移物理地址来确定存储器的目标物理地址,和
通过访问目标物理地址来执行指令。
9.根据权利要求8所述的存储器访问设备,其中,存储器内处理器还包括:高速缓存,被配置为存储偏移信息和目标物理地址。
10.根据权利要求9所述的存储器访问设备,其中,内部处理器还被配置为:
基于偏移信息搜索高速缓存;和
响应于通过搜索在高速缓存中找到与偏移信息的对应目标物理地址,通过访问目标物理地址来执行指令。
11.一种存储器内处理器的存储器访问方法,所述存储器访问方法包括:
通过内部处理器从存储器控制器接收存储器的参考物理地址和指令;
通过内部处理器基于存储在寄存器中的偏移信息来确定存储器的偏移物理地址;
通过内部处理器基于参考物理地址和偏移物理地址来确定存储器的目标物理地址;和
通过内部处理器通过访问目标物理地址来执行指令。
12.根据权利要求11所述的存储器访问方法,还包括:
将偏移信息和目标物理地址存储在包括在所述存储器内处理器中的高速缓存中。
13.根据权利要求12所述的存储器访问方法,还包括:
通过内部处理器基于偏移信息搜索高速缓存;和
响应于通过搜索在高速缓存中找到与偏移信息对应的目标物理地址,通过内部处理器通过访问目标物理地址来执行指令。
14.一种处理设备的存储器访问方法,所述存储器访问方法包括:
通过外部处理器将偏移信息发送给存储器内处理器,将指令发送给存储器控制器,并且将参考虚拟地址发送给存储器管理器;
通过存储器管理器将参考虚拟地址转换为存储器的参考物理地址,并且通过存储器管理器将参考物理地址发送给存储器控制器;
通过寄存器存储偏移信息;
通过内部处理器从存储器控制器接收指令和参考物理地址;
通过内部处理器基于偏移信息来确定存储器的偏移物理地址;
通过内部处理器基于参考物理地址和偏移物理地址来确定存储器的目标物理地址;和
通过内部处理器通过访问目标物理地址来执行指令。
15.根据权利要求14所述的存储器访问方法,还包括:
将偏移信息和目标物理地址存储在包括在存储器内处理器中的高速缓存中。
16.根据权利要求15所述的存储器访问方法,还包括:
通过内部处理器基于偏移信息搜索高速缓存;和
响应于通过搜索在高速缓存中找到与偏移信息对应的目标物理地址,通过内部处理器通过访问目标物理地址来执行指令。
17.一种存储指令的非暂时性计算机可读存储介质,指令在被处理器执行时,配置处理器执行根据权利要求11至权利要求16中的任一项所述的存储器访问方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200114582A KR20220032808A (ko) | 2020-09-08 | 2020-09-08 | 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치 |
KR10-2020-0114582 | 2020-09-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114153755A true CN114153755A (zh) | 2022-03-08 |
Family
ID=80460899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110295385.9A Pending CN114153755A (zh) | 2020-09-08 | 2021-03-19 | 存储器内处理器、存储器访问设备以及存储器访问方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11442851B2 (zh) |
KR (1) | KR20220032808A (zh) |
CN (1) | CN114153755A (zh) |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020060419A (ko) | 2001-01-11 | 2002-07-18 | 최웅림 | 메모리 접근 방법 |
US7545382B1 (en) | 2006-03-29 | 2009-06-09 | Nvidia Corporation | Apparatus, system, and method for using page table entries in a graphics system to provide storage format information for address translation |
JP5032172B2 (ja) | 2007-03-28 | 2012-09-26 | 株式会社東芝 | 統合メモリ管理装置及び方法並びにデータ処理システム |
US9239799B2 (en) | 2008-06-26 | 2016-01-19 | Qualcomm Incorporated | Memory management unit directed access to system interfaces |
KR20120129695A (ko) * | 2011-05-20 | 2012-11-28 | 삼성전자주식회사 | 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법 |
US9268681B2 (en) * | 2012-08-30 | 2016-02-23 | Apple Inc. | Heterogeneous data paths for systems having tiered memories |
US9478315B2 (en) * | 2014-06-03 | 2016-10-25 | Sandisk Technologies Llc | Bit error rate mapping in a memory system |
GB2539429B (en) | 2015-06-16 | 2017-09-06 | Advanced Risc Mach Ltd | Address translation |
KR101805028B1 (ko) | 2016-06-28 | 2017-12-06 | 고려대학교 산학협력단 | 물리 영역과 가상 영역을 근거로 결함 리페어를 적용하는 메모리 장치 및 그의 제어 방법 |
WO2018119773A1 (zh) * | 2016-12-28 | 2018-07-05 | 华为技术有限公司 | 非易失内存访问方法、装置和系统 |
US10169261B1 (en) | 2017-08-29 | 2019-01-01 | International Business Machines Corporation | Address layout over physical memory |
KR102540964B1 (ko) | 2018-02-12 | 2023-06-07 | 삼성전자주식회사 | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 |
KR102665410B1 (ko) | 2018-07-30 | 2024-05-13 | 삼성전자주식회사 | 메모리 장치의 내부 프로세싱 동작 방법 |
-
2020
- 2020-09-08 KR KR1020200114582A patent/KR20220032808A/ko unknown
-
2021
- 2021-03-15 US US17/201,539 patent/US11442851B2/en active Active
- 2021-03-19 CN CN202110295385.9A patent/CN114153755A/zh active Pending
-
2022
- 2022-08-05 US US17/882,088 patent/US11921626B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11921626B2 (en) | 2024-03-05 |
US11442851B2 (en) | 2022-09-13 |
US20220382676A1 (en) | 2022-12-01 |
US20220075713A1 (en) | 2022-03-10 |
KR20220032808A (ko) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540093B2 (en) | Multidimensional contiguous memory allocation | |
US20210216471A1 (en) | Virtual register file | |
US11494078B2 (en) | Translation lookaside buffer in memory | |
US20180004454A1 (en) | Implementing scattered atomic i/o writes | |
US20180018095A1 (en) | Method of operating storage device and method of operating data processing system including the device | |
CN111919201A (zh) | 混合式存储器系统 | |
US20220236995A1 (en) | Apparatuses and methods for ordering bits in a memory device | |
CN113448511B (zh) | 通过链接阵列依序预提取 | |
CN114153755A (zh) | 存储器内处理器、存储器访问设备以及存储器访问方法 | |
US11544201B2 (en) | Memory tracing in an emulated computing system | |
CN116048770A (zh) | 用于进程调度的方法和设备 | |
US11379371B2 (en) | Method and system with improved memory input and output speed | |
CN115933965A (zh) | 存储器存取控制 | |
US10579519B2 (en) | Interleaved access of memory | |
CN114911723A (zh) | 存储器控制器和存储器控制方法 | |
US20230409240A1 (en) | Systems and methods for managing a storage system | |
US20240193105A1 (en) | Computational storage device and method of operating the same | |
US20220035571A1 (en) | Speculation in memory | |
CN115129626A (zh) | 存储系统及其操作方法 | |
CN118132470A (zh) | 电子装置、存储器装置和存储器装置的操作方法 |
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 |