CN103577347A - 用于操作存储器设备的方法和用于存储器操作的系统 - Google Patents
用于操作存储器设备的方法和用于存储器操作的系统 Download PDFInfo
- Publication number
- CN103577347A CN103577347A CN201310334200.6A CN201310334200A CN103577347A CN 103577347 A CN103577347 A CN 103577347A CN 201310334200 A CN201310334200 A CN 201310334200A CN 103577347 A CN103577347 A CN 103577347A
- Authority
- CN
- China
- Prior art keywords
- treatment element
- memory
- instruction
- storer
- 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.)
- Granted
Links
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
根据本发明的一个实施例,一种用于操作包括存储器和处理元件的存储器设备的方法,所述方法包括:在处理元件中,接收来自请求者的命令;在处理元件中,基于命令加载程序,所述程序包括从存储器中的第一存储器位置加载的加载指令;以及通过处理元件,执行程序,所述执行包括在处理元件中从存储器中的第二存储器位置加载数据。所述方法还包括:通过处理元件,基于加载指令生成第二存储器位置的虚拟地址;以及通过处理元件,将虚拟地址翻译成真实地址。
Description
技术领域
本发明通常涉及计算机存储器,更具体地,涉及有源缓冲存储器系统。
背景技术
当计算机通电并操作时,计算机系统通常要求相当多数量的高速存储器(如随机存取存储器(RAM))来保持信息,如数据和程序。随着计算机系统已经在性能和复杂性方面增加,存储器设备密度已经持续增长。
由于从增加的密度导致的更长的信号路径,从主处理器到密集存储器设备上的各位置的通信可能要求额外的功率。此外,高密度存储器设备内的增加的功耗可能导致温度管理问题。此外,由于处理器和存储器之间的距离,与数据操作相关的数据存取时间和延迟增加,而主处理器和存储器之间的有效带宽减少。更长的信号路径也可能允许在主处理器和存储器之间的数据传输期间的崩溃或数据错误的更多机会。相应地,由于系统组件之间的距离,增加的存储器设备的密度可能导致不期望的功耗和减少的性能。
发明内容
根据本发明的一个实施例,一种用于操作包括存储器和处理元件的存储器设备的方法,所述方法包括:在处理元件中,接收来自请求者的命令;在处理元件中,基于命令加载程序,所述程序包括从存储器中的第一存储器位置加载的加载指令;以及通过处理元件,执行程序,所述执行包括在处理元件中从存储器中的第二存储器位置加载数据。所述方法还包括:通过处理元件,基于加载指令生成第二存储器位置的虚拟地址;以及通过处理元件,将虚拟地址翻译成真实地址。
根据本发明的另一个实施例,一种用于存储器操作的系统包括存储器和处理元件,所述系统配置为执行包括以下步骤的方法:在处理元件中,接收来自请求者的命令;以及在处理元件中,基于命令加载程序,所述程序包括从存储器中的位置加载的指令序列。所述方法还包括:在处理元件中,基于命令加载配置信息,所述配置信息包括与存储器中的虚拟地址和真实地址有关的信息;以及通过处理元件,执行加载到处理元件中的指令序列。
另外的特征和优点通过本发明的技术实现。本发明的其它实施例和方面在此详细描述,并且被认为是要求保护的本发明的一部分。为了更好的理解具有优点和特征的本发明,参考以下描述和附图。
附图说明
被当做发明的主题内容在说明书的结论处具体指出,并且在权利要求中明确要求保护。本发明的前述和其它特征和优点从结合附图进行的以下详细描述中变得明显,附图中:
图1图示根据实施例的用于有源缓冲存储器的系统的方块图;
图2图示根据实施例的用于操作具有有源缓冲存储器的存储器系统的方法的流程图;
图3图示根据实施例的具有有源缓冲存储器的存储器系统的方块图;以及
图4图示根据实施例的具有有源缓冲存储器的存储器系统的示意图。
具体实施方式
实施例贯注于操作有源缓冲(active buffered)存储器设备。有源缓冲设备可以是任何适合的存储器设备,包括连接到逻辑部分的多个存储器元件(例如芯片)和处理元件。在实施例中,有源缓冲存储器设备包括形成三维(“3D”)存储器设备的多层存储器,其中各列芯片形成与处理元件和逻辑通信的库(vault)。存储器设备可以包括配置为与芯片通信的多个处理元件和其它处理元件。在一些实施例中,有源缓冲存储器设备可以包括可以被多个处理元件并发地存取的各分区(partition),其中各分区可以是任何适合的存储器段,包括但不限于库。在实施例中,处理元件通过互连网络访问分区中的已选择地址。此外,互连网络提供存储器设备上的处理元件之间以及处理元件和主处理器之间的通信。在实施例中,每个分区(例如,库)可以具有相关的存储器控制器或逻辑单元,其也耦合到互连网络。
实施例包括能够使用存储器设备内的多个位置(例如,存储在特殊地址处的数据)作为操作数执行一组复杂的操作的有源缓冲存储器设备。此外,提供处理,从而对存储器设备内的这些操作数自动执行指令和操作。具体地,指令和操作存储在存储器设备自身内,并且不从主存储器分派,其中存储在存储器设备中的指令提供给处理元件,用于由处理器设备中的处理元件处理。在一个实施例中,处理元件是可编程引擎,包括指令缓冲器、指令单元(包括分支能力和指令解码)、矢量、标量和屏蔽寄存器文件的混合、用于存储器和寄存器文件之间的数据移动的多个加载/存储单元、以及用于各种数据类型的算术和逻辑处理的多个执行单元。在存储器设备中还包括有用于转换或翻译虚拟地址到物理地址的地址翻译能力、用于存储器和处理元件之间的顺序数据移动的统一加载/存储队列、以及用于与主处理器通信的处理器通信单元。
在实施例中,有源缓冲存储器设备配置为在从外部请求者(如主处理器或其它存储器设备)接收命令之后,将配置信息或指令从有源缓冲存储器设备的一部分加载到处理元件中。此外,处理元件可以在执行加载的指令的同时执行它计算的虚拟到真实地址翻译。在示例中,当执行加载指令时,有源缓冲存储器设备从存储器位置存取操作数,并且将该操作数放入处理元件中的寄存器中。通过加载指令生成存储器位置的虚拟地址,并且通过处理元件将其翻译成真实地址。类似地,当执行存储指令时,有源缓冲存储器设备将具有内容(例如操作数)的存储器位置写入处理元件中的寄存器中。通过存储指令生成存储器位置的虚拟地址,并且通过处理元件将其翻译成真实地址。
存储器设备中的处理元件的实施例还具有通过互连网络在存储器设备的任何部分中读取或写入操作数的能力。具体地,处理元件可以使用互连网络存取存储器设备中的其它分区(例如,库)。在实施例中,处理元件经由互连网络汇聚(pool)和耦合到库,其中处理元件不是物理地位于库层堆(stack)中。在实施例中,互连网络是耦合设备(如纵横开关),配置为将任何处理元件连接到任何存储器库,假设处理元件和存储器库耦耦合到互连。在实施例中,互连网络可以耦合多个有源缓冲存储器设备,其中互连网络提供分开设备的处理元件和存储器分区之间的通信。
在一个实施例中,在存储器控制器作为层堆的一部分的情况下包括处理元件。此外,处理元件可以对读取的操作数执行复杂的算术和逻辑操作,并且将最终结果写回到存储器中的位置。有源缓冲存储器设备可以返回单个结果值或信号给主处理器,指示期望的复杂操作的结果在存储器设备中已准备好,因此在存储器设备上执行高带宽,并且使用存储器设备和主处理器之间的较低带宽通信。
在实施例中,期望在有源缓冲存储器设备内具有处理能力,以便减少在存储器被驻留在分开的芯片内的处理器存取时将预期的存储器延迟和能量消耗。替代通过较低带宽通信路径将数据从存储器传输到分开的处理芯片,对数据执行通常是非常简单的的计算,然后将处理后的数据传送回到存储器,系统的主处理器将配置有源缓冲存储器设备内的有源处理元件,然后指示它们执行数据处理任务。这可以通过从主处理器向设备发送一个或多个命令来实现。在该情况下,在从存储器芯片到处理器芯片行进的距离和必须穿过存储器分级的缓存的级数两者中,主处理器和存储器之间的数据移动大大减少。
在实施例中,有源缓冲存储器设备包括存储器立方体内的无状态(stateless)处理元件。处理元件对于处理器中的程序显得是长延迟功能单元。处理元件自身是可编程引擎,包括指令缓冲器、指令单元(包括分支能力和指令解码)、矢量、标量和屏蔽寄存器文件的混合、用于存储器和寄存器文件之间的数据移动的多个加载/存储单元、以及用于各种数据类型的算术和逻辑处理的多个执行单元。还包括有用于转换程序虚拟地址到真实地址的地址翻译能力、用于存储器和处理元件之间的顺序数据移动的统一加载/存储队列、以及用于与主处理器通信的处理器通信单元。
图1图示根据实施例的用于存储和检索存储器中的数据的系统的方块图。图1所示的系统100包括计算机处理器102、具有存储器设备的存储器106、以及用于从计算机处理器102接收数据以存储在存储器106中的存储器控制器104和处理元件108。
在一个实施例中,存储器106和存储器控制器104耦合到计算机处理器102,并且处理来自计算机处理器102的写入请求。在一个示例中,写入请求包含要写到存储器106的数据和(各)指令的存储器位置,其中指令形成要写入的数据的虚拟地址。存储器控制器104在存储器106内的真实地址处存储数据。在另一示例中,计算机处理器102在存储或检索数据时将虚拟地址映射到存储器106中的真实地址。在该示例中,写入请求包含要写入存储器106的数据和识别将写入数据的存储器106中的位置的真实地址。
在实施例中,来自计算机处理器106的命令指定指令序列,其包括设置动作、执行动作和完成通知动作。设置动作可以包括下面在图2中描述的配置动作。设置动作还可以包括从存储器106加载代码(如指令序列)到处理元件108中。执行动作包括代码的执行,该代码包括加载、存储、算术指令、逻辑指令、分支指令、同步指令、通信指令和其它指令。分支指令是控制执行的流程或顺序的指令,其中分支指令可以使得操作跳转到选择的指令前面或后面。
示例性同步指令同步多个处理元件的操作。在分开的处理元件上执行这样的操作导致存储器在这些处理元件的每个中,在执行指令序列中的下一指令之前更新指定的处理元件完成。示例性通信指令是完成请求者启动的命令时将哪个信号返回请求者(主处理器、另一存储器设备等)的指令。还要求从处理元件返回请求者的是完成命令的操作所需的另外信息,例如,从虚拟地址到原始配置操作没有提供的真实地址的特定映射的请求。
在实施例的另外模式中,处理元件108耦合到计算机处理器102,并且从计算机处理器102接收命令。该命令对应于存储器中存储的指令,用于执行对要写入存储器106的数据的写入请求。在实施例中,(各)指令执行和形成对应于存储器106中的写入位置的虚拟地址。存储器控制器104和/或处理元件108在存储器106内的真实地址处存储数据。在实施例中,处理元件108在存储或检索数据时将虚拟地址映射到存储器106中的真实地址。如下面进一步详细描述的,计算机处理器102提供命令给存储器106,其中处理元件108接收命令并且从存储器提取对应指令。系统100是可用于在其中执行描述的处理的配置的一个示例。尽管系统100已经描述为只具有单个存储器106、存储器控制器104、处理元件108和计算机处理器102,将理解的是其它实施例也可以在具有两个或更多存储器106、存储器控制器104、处理元件108或计算机处理器102的其它系统中操作。在实施例中,存储器106、存储器控制器104、处理元件108和计算机处理器102不是位于相同计算机中。例如,存储器106、处理元件108和存储器控制器104可以位于一个物理位置(例如,在存储器模块上),而计算机处理器102位于另一物理位置(例如,计算机处理器102经由网络存取存储器控制器104)。此外,这里描述的处理的各部分可以跨越存储器106、存储器控制器104、处理元件108和计算机处理器102的一个或多个。
图2是用于有源缓冲存储器的示例性方法和系统的流程图200。各方块可以通过有源缓冲存储器设备执行。例如,各方块可以通过有源缓冲存储器设备中的处理元件执行,其中处理元件存取存储器的各部分(例如,与处理元件共享层堆的存储器库),并且对从存储器存取的数据执行操作。该方法在方块202开始,其中有源缓冲存储器设备中的处理元件在方块204中等待命令。该命令可以通过请求者发送到存储器设备以执行一个或多个动作,其中请求者可以是主处理器、网络接口、I/O设备或另外的存储器设备,其与处理元件通信。在实施例中,命令导致包括一个或多个指令的程序从存储器内加载,其中,指令可以包括加载、存储、算术/逻辑操作或其它指令。在方块204中,接收命令,并且在方块206中确定命令类型,其中命令类型可以是配置命令或执行命令。在方块208中,如果处理元件接收配置命令,则它通过处理元件执行。配置命令可以是这样的命令,其将配置信息从存储器设备内的存储器中直接加载到处理元件中。通过提供存储器设备中的配置信息,处理元件能够在接收命令之后快速地被适当配置,然后可以跟随执行命令。在实施例中,配置信息可以包括用于在虚拟地址和存储器中的真实地址之间翻译的信息。此外,配置信息可以包括用于保持处理元件和请求者(例如主处理器)之间的存储器映射和翻译的一致(通过确保精度和连贯性)的信息。在示例中,用于保持一致的信息包括用于确保处理元件中的虚拟到真实地址映射匹配通过主处理器存取的用于命令和控制操作的虚拟到真实地址映射信息(例如,主处理器中的表格)的信息,因此在通过请求者存取存储器内的数据时提供改进的精度。在方块208中处理了配置命令之后,处理元件在方块204中等待命令。
返回方块206,如果命令类型是执行命令,则处理元件基于方块210中的命令从存储器设备内的存储器提取指令。该指令可以加载到处理元件中的指令缓冲器中。在实施例中,提取基于命令的指令序列。在实施例中,命令指定指令,其中命令包括指令或操作的一部分以及要从存储器设备内检索的(各)指令的指针。在另一实施例中,命令包括放在指令缓冲器中的全部(各)指令的指针。通过加载和执行来自存储器设备内的(各)指令,减少了传输指令到主处理器所需的带宽,由于低带宽命令的传输,减少了命令执行的延迟。在方块212中,确定要执行的指令的类型,其中指令可以是复合指令或存储器存取指令。如果指令是存储器存取指令,则地址翻译在方块214中在处理元件内发生。对于加载指令,其中从存储器位置存取和加载数据,处理元件生成用于存储器位置的虚拟地址,并且将虚拟地址翻译成真实地址以定位数据。对于存储指令,其中将数据写入存储器位置,处理元件生成用于存储器位置的虚拟地址,并且在写入数据之前通过处理元件将虚拟地址翻译成真实地址。在方块216中,处理元件确定在地址翻译期间是否存在错误,如处理元件和主处理器中的各翻译表之间的不一致。在方块218中,如果存在错误,则处理元件从请求者(如主处理器)请求地址翻译表项目,以定位正确的地址。在方块220中,处理元件等待对项目请求的响应。在方块222中,利用来自请求的项目的正确信息更新处理元件中的地址翻译表,从而更正错误数据。在方块224中,如果不存在地址翻译错误或如果指令类型是复合(方块212中),则执行指令。相应地,通过处理元件而不是主处理器执行存储器存取或复杂指令,因此通过存取、翻译和对全部靠近存储器的数据执行操作减少操作的延迟。复杂指令可以包括对从存储器设备存取的数据执行的算术和/或逻辑操作。在方块226中,处理元件确定在方块204中接收的命令是否完成。如果命令完成,则在方块228中通知请求者。如果命令没有完成,则在方块230中更新程序计数器,以指示命令中的下一指令被提取。在实施例中,序列中的指令按照程序计数器索引的顺序执行。
在实施例中,在多个处理元件中接收多个命令,并且基于多个命令加载多个指令,其中每个处理元件配置为加载在其它存储器分区被存取的同时并发地存取存储器分区(例如,库)的指令。因此,各命令可以通过各处理元件并发地执行,以减少延迟和来自计算机系统主处理器的卸载任务。尽管一个示例描绘了如何能够响应于来自主处理器的请求执行复合操作,但是如果请求来自有源缓冲存储器预期连接的任何其它请求者(包括网络、I/O设备)或甚至其它存储器设备(包括其它有源缓冲存储器设备),也能够实现相同的操作。
图3是实现有源缓冲存储器的计算机系统300的实施例的示意图。在一个实施例中,计算机系统300包括有源缓冲存储器设备302、有源缓冲存储器设备303和有源缓冲存储器设备304。有源缓冲存储器设备302包括存储器库306、存储器控制器308和处理元件310。在实施例中,处理元件310、存储器库306和存储器控制器308经由互连网络312耦合和通信。具体地,处理元件310经由互连网络312与存储器库306、存储器控制器308和其它存储器设备(如有源缓冲存储器设备303和304)通信。互连网络312通过处理器链接320和322也耦合到主处理器324。互连网络312快速和高带宽路径用于设备的各部分(如处理元件、存储器控制器和存储器)之间的通信,以为有源缓冲存储器提供改进的性能和减少的延迟。
有源缓冲存储器设备303包括存储器库326、存储器控制器328和处理元件330。在实施例中,处理元件330、存储器库326和存储器328全部位于互连网络312的相同侧,如在单个层堆内。通过将处理元件330定位在与存储器库326相同的层堆内,当存取存储器库326中的位置时减少了延迟,因此进一步改进性能。在一个实施例中,有源缓冲存储器304包括经由互连网络312耦合到处理元件310和处理元件318的存储器库314和存储器控制器316。如所述的,处理元件318对于存储器316和存储器库314位于互连网络312的另一侧。在实施例中,有源缓冲存储器设备302、303和304包括多层堆叠的可寻址存储器元件。此外,层堆的存储器可以划分为多个存储器库306、326和314,或者共享共同存储器控制器和/或存储器元件的存储器设备的三维分块区域,并且能够相互独立地在它们的存储器领域内服务存储器存取请求。
在实施例中,处理元件、存储器库和存储器控制器可以取决于应用以适当的方式安排。例如,一个或多个处理元件(如处理元件318)可以定位在互连网络312的一侧,并且可以操作为可用于存取耦合到互连网络312的存储器系统中的任何存储器的处理元件的池。池化(pooled)的处理元件不限于存取特定的存储器库,因此,在从主处理器324接收命令时一个或多个元件可以利用。相应地,处理元件318可以配置为存取每个存储器库306、326和314。在另一实施例中,放置一个或多个处理元件(如处理元件330)作为包括存储器库326和存储器控制器328的层堆的一部分。在这样的配置中,处理元件330配置为存取耦合到互连网络312的存储器库326,包括存储器库306和314。在一个实施例中,一个或多个处理元件(如处理元件310)对于存储器库306和存储器控制器308定位在互连网络312的相对侧。在该配置中,处理元件310配置为存取耦合到互连网络312的任何存储器,包括存储器库326和314。
在实施例中,计算机系统可以包括多个有源缓冲存储器设备,如有源缓冲存储器设备302、303和304。此外,每个有源缓冲存储器设备可以包括多个层堆,每个层堆包括存储器库、存储器控制器和相关的处理元件。在一个示例中,处理元件的数量可以大于存储器库的数量。在另一实施例中,存储器设备可以包括比存储器库少的处理元件。在实施例中,处理元件被池化,并且可用于存取系统中的任何存储器。例如,存储器设备可以包括16个存储器库和存储器控制器,但是只有8个处理元件。该8个处理元件被池化,并且用作用于存取耦合到互连网络的任何存储器库的资源。在另一实施例中,存储器设备可以是无源的,其中设备通过耦合到互连网络的外部请求者(如主处理器)控制。
图4是实现有源缓冲存储器的示例性计算机系统400的图。计算机系统400包括多芯片模块、硅载体或电路板402、主处理器404、有源缓冲存储器设备406和有源缓冲存储器设备408。有源缓冲存储器设备406、有源缓冲存储器设备408和主处理器404设置在电路板402上。如所述的,有源缓冲存储器设备406和408的各部分被分解以示出计算机系统400安排的细节。有源缓冲存储器设备406和408分别经由信号路径424和444与主处理器404通信。如所述的,有源缓冲存储器设备406按照层安排,其中基层411包括多个存储器控制器410和处理元件412。例如,有源缓冲存储器设备406包括放置在底层411的顶部的存储器的层409,其中层409每个具有多个存储器元件。如所述的,基层411也包括互连网络446,以允许设备中的存储器、存储器控制器和处理元件之间的高带宽通信。
在实施例中,有源缓冲存储器设备406包括多个存储器库414,其中每个存储器库414包括来自每个层409的存储器元件,存储器库414相邻存储器控制器410和处理元件412定位。具体地,示例性有源缓冲存储器设备406包括16个存储器元件的层,其中元件层形成层堆,包括层堆416,其中层堆416包括设置在存储器控制器418和处理元件420上面的存储器库422。高带宽通信路径426提供处理元件420和存储器库422内的存储器位置之间的高带宽、直接和基本减少长度(例如,与路径424、444相比)的通信路径,因此减少存储器存取的延迟和功耗。例如,处理元件420可以从主处理器404接收命令,基于命令从有源缓冲存储器设备406加载指令,并且作为加载的指令的一部分,存取在存储器库414中的位置处的数据,并且在处理元件420中对数据执行复合操作。此外,跟随命令的执行,处理元件420也可以将数据(如结果)存储在存储器库414中,并且将值或信号发送到主处理器404。在实施例中,处理元件将来自处理元件中的寄存器的数据(例如,操作数)存储或写入存储器库414中。处理元件420还配置为作为读取或存储操作的一部分将地址从虚拟翻译到真实以及从真实到虚拟。因此,处理元件420在本地提供指令加载、地址翻译、复合操作和其它任务给存储器,以减少延迟,节省功率,以及释放主处理器404以执行其它任务。
类似地,有源缓冲存储器设备408包括设置在基层431上的多个存储器控制器428和处理元件430。在实施例中,有源缓冲存储器设备408包括放置在基层431的顶部的存储器设备的层429,其中层429每个具有多个存储器设备。基层431还包括互连网络446,以允许设备中的存储器和处理元件之间的高带宽通信。在实施例中,有源缓冲存储器设备406和有源缓冲存储器设备408的互连网络446耦合,并且允许分开设备上的处理元件和存储器之间的通信。
在实施例中,有源缓冲存储器设备408包括多个存储器库432,其中每个存储器库432包括来自每层429的存储器元件,存储器库432相邻存储器控制器428和处理元件430定位。示例性有源缓冲存储器设备408包括16个层堆,包括层堆434,其中层堆434包括设置在存储器控制器440和处理元件438上面的存储器库436。高带宽通信路径442提供处理元件430和存储器库436内的存储器位置之间的通信。
在此使用的术语仅仅用于描述特定实施例的目的,并且意图不在于限制本发明。如在此使用的,单数形式“一”、“一个”以及“该”意图在于也包括复数形式,除非上下文清楚地另外指示。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整体、步骤、操作、元件、和/或组件的存在,但是不是排除一个或多个其它特征、整体、步骤、操作、元件、组件和/或其组合的存在或增加。
权利要求中的所有部件或步骤加功能元件的对应结构、材料、动作和等效体意图包括用于与具体要求保护的其它要求保护的元件一起执行功能的任何结构、材料或动作。本发明的描述已经呈现用于图示和描述的目的,但是意图不在于是穷尽的或限制于公开形式的发明。许多修改和变化对于本领域普通技术人员将是明显的,而不偏离本发明的范围和精神。实施例被选择和按顺序描述以最佳地说明本发明的原理和实际应用,并且允许本领域普通技术人员理解本发明,对于具有各种修改的各种实施例适于预期的特定使用。
在此描绘的流程图仅仅是一个示例。对于在此描述的该图或步骤(或操作)可以存在许多变化,而不偏离本发明的精神。例如,各步骤可以以不同顺序执行,或者各步骤可以增加、删除或修改。所有这些变化被认为是要求保护的发明的一部分。
尽管已经描述了本发明的优选实施例,但是将理解的是,本领域技术人员在现在和在将来可以进行各种改进和增强,它们落入所附权利要求的范围内。这些权利要求应当被解释为保持对首先描述的本发明的适当保护。
Claims (28)
1.一种用于操作包括存储器和处理元件的存储器设备的方法,所述方法包括:
在处理元件中,接收来自请求者的命令;
在处理元件中,基于命令加载程序,所述程序包括从存储器中的第一存储器位置加载的加载指令;
通过处理元件,执行程序,所述执行包括在处理元件中从存储器中的第二存储器位置加载数据;
通过处理元件,基于加载指令生成第二存储器位置的虚拟地址;以及
通过处理元件,将虚拟地址翻译成真实地址。
2.根据权利要求1所述的方法,其中,在处理元件中,基于命令加载程序包括:加载指令序列,所述指令序列包括加载指令和另外指令,所述另外指令包括使用来自处理元件的数据并将结果放入处理元件的算术操作或逻辑操作。
3.根据权利要求1所述的方法,包括从处理元件向请求者发送跟随命令的执行的值或信号。
4.根据权利要求1所述的方法,包括基于命令加载配置,所述配置从存储器内加载。
5.根据权利要求4所述的方法,其中,所述配置包括用于在虚拟和真实地址之间翻译的地址信息、以及用于保持处理元件和请求者之间的存储器的一致的信息。
6.根据权利要求1所述的方法,其中,所述请求者包括主处理器、网络接口、I/O设备或另外的存储器设备,其配置为与所述存储器设备通信。
7.根据权利要求1所述的方法,其中,所述存储器包括存储器分区,其中在处理元件中,接收来自请求者的命令包括:在多个处理元件中,接收多个命令;以及,其中在处理元件中,基于命令加载指令包括:基于多个命令加载多个指令,其中每个处理元件配置为加载在其它存储器分区被存取的同时并发地存取存储器分区的指令。
8.根据权利要求7所述的方法,其中,所述存储器分区包括存储器控制器,每个存储器分区包括存储器控制器和存储器,并且其中各存储器控制器和多个处理元件通过互连网络通信。
9.根据权利要求1所述的方法,所述存储器设备还包括互连网络,并且其中所述存储器包括存储器分区,其中在处理元件中,接收来自请求者的命令包括:在多个处理元件中,接收多个命令;以及,其中在处理元件中,基于命令加载指令包括:基于多个命令加载多个指令,其中每个处理元件配置为加载在其它存储器分区被存取的同时并发地存取存储器分区的指令,其中存储器分区和多个处理元件通过互连网络通信。
10.根据权利要求1所述的方法,其中,在处理元件中,基于命令加载指令包括:加载指令序列,所述指令序列包括指令和以下的至少一个:分支指令、同步指令和通信指令。
11.一种用于操作包括存储器和处理元件的存储器设备的方法,所述方法包括:
在处理元件中,接收来自请求者的命令;
在处理元件中,基于命令加载程序,所述程序包括从存储器中的第一存储器位置加载的存储指令;
通过处理元件,执行程序,所述执行包括在处理元件中将数据存储到存储器中的存储器位置;
通过处理元件,基于存储指令生成第二存储器位置的虚拟地址;以及
通过处理元件,将虚拟地址翻译成真实地址。
12.根据权利要求11所述的方法,其中,在处理元件中,基于命令加载程序包括:加载指令序列,所述指令序列包括存储指令和另外指令,所述另外指令包括使用来自处理元件的数据并将结果放入处理元件的算术操作或逻辑操作。
13.根据权利要求11所述的方法,包括从处理元件向请求者发送跟随命令的执行的值或信号。
14.根据权利要求11所述的方法,包括基于命令加载配置,所述配置从存储器内加载。
15.根据权利要求14所述的方法,其中,所述配置包括用于在虚拟和真实地址之间翻译的地址信息、以及用于保持处理元件和请求者之间的存储器的一致的信息。
16.根据权利要求11所述的方法,其中,所述请求者包括主处理器、网络接口、I/O设备或另外的存储器设备,其配置为与所述存储器设备通信。
17.根据权利要求11所述的方法,其中,所述存储器包括存储器分区,其中在处理元件中,接收来自请求者的命令包括:在多个处理元件中,接收多个命令;以及,其中在处理元件中,基于命令加载指令包括:基于多个命令加载多个指令,其中每个处理元件配置为加载在其它存储器分区被存取的同时并发地存取存储器分区的指令。
18.根据权利要求17所述的方法,其中,所述存储器分区包括存储器控制器,每个存储器分区包括存储器控制器和存储器,并且其中各存储器控制器和多个处理元件通过互连网络通信。
19.根据权利要求11所述的方法,所述存储器设备还包括互连网络,并且其中所述存储器包括存储器分区,其中在处理元件中,接收来自请求者的命令包括:在多个处理元件中,接收多个命令;以及,其中在处理元件中,基于命令加载指令包括:基于多个命令加载多个指令,其中每个处理元件配置为加载在其它存储器分区被存取的同时并发地存取存储器分区的指令,其中存储器分区和多个处理元件通过互连网络通信。
20.根据权利要求11所述的方法,其中,在处理元件中,基于命令加载指令包括:加载指令序列,所述指令序列包括指令和以下的至少一个:分支指令、同步指令和通信指令。
21.一种用于存储器操作的系统,所述系统包括:
存储器和处理元件,所述系统配置为执行包括以下步骤的方法:
在处理元件中,接收来自请求者的命令;
在处理元件中,基于命令加载程序,所述程序包括从存储器中的位置加载的指令序列;
在处理元件中,基于命令加载配置信息,所述配置信息包括与存储器中的虚拟地址和真实地址有关的信息;以及
通过处理元件,执行加载到处理元件中的指令序列。
22.根据权利要求21所述的系统,其中,在处理元件中,加载包括指令序列的程序包括:加载存储指令和加载指令中的一个。
23.根据权利要求21所述的系统,其中,在处理元件中,加载包括指令序列的程序包括:加载存储指令和加载指令中的一个,并且加载以下的至少一个:算术操作、逻辑操作、分支指令、同步指令和通信指令。
24.根据权利要求21所述的系统,包括从处理元件向请求者发送跟随命令的执行的值或信号。
25.根据权利要求21所述的系统,其中,所述配置信息包括用于在虚拟和真实地址之间翻译的地址信息、以及用于保持处理元件和请求者之间的存储器的一致的信息。
26.根据权利要求21所述的系统,其中,所述请求者包括主处理器、网络接口、I/O设备或另外的存储器设备,其配置为与所述存储器设备通信。
27.根据权利要求21所述的系统,其中,所述存储器包括存储器分区,其中在处理元件中,接收来自请求者的命令包括:在多个处理元件中,接收多个命令;以及,其中在处理元件中,基于命令加载指令包括:基于多个命令加载多个指令,其中每个处理元件配置为加载在其它存储器分区被存取的同时并发地存取存储器分区的指令。
28.根据权利要求27所述的系统,其中,所述存储器分区包括存储器控制器,每个存储器分区包括存储器控制器和存储器,并且其中各存储器控制器和多个处理元件通过互连网络通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/566,019 | 2012-08-03 | ||
US13/566,019 US9003160B2 (en) | 2012-08-03 | 2012-08-03 | Active buffered memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577347A true CN103577347A (zh) | 2014-02-12 |
CN103577347B CN103577347B (zh) | 2016-12-28 |
Family
ID=50026688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310334200.6A Active CN103577347B (zh) | 2012-08-03 | 2013-08-02 | 用于操作存储器设备的方法和用于存储器操作的系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9003160B2 (zh) |
CN (1) | CN103577347B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636759A (zh) * | 2015-03-20 | 2018-01-26 | 波利伍德有限责任公司 | 存储控制器中的存储仿真 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9203671B2 (en) * | 2012-10-10 | 2015-12-01 | Altera Corporation | 3D memory based address generator for computationally efficient architectures |
US9658940B2 (en) | 2015-03-19 | 2017-05-23 | International Business Machines Corporation | Method to efficiently implement synchronization using software managed address translation |
US10128302B2 (en) | 2016-01-28 | 2018-11-13 | Ams Sensors Uk Limited | IR detector array device |
US20230205705A1 (en) * | 2021-12-23 | 2023-06-29 | Advanced Micro Devices, Inc. | Approach for providing indirect addressing in memory modules |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143509A1 (en) * | 2004-12-20 | 2006-06-29 | Sony Computer Entertainment Inc. | Methods and apparatus for disabling error countermeasures in a processing system |
US20120117333A1 (en) * | 2006-11-13 | 2012-05-10 | Haitham Akkary | Critical section detection and prediction mechanism for hardware lock elision |
CN102609240A (zh) * | 2011-01-20 | 2012-07-25 | 瑞昱半导体股份有限公司 | 处理器电路及读取数据的方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3287703A (en) | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer |
US5437043A (en) | 1991-11-20 | 1995-07-25 | Hitachi, Ltd. | Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers |
US5568380A (en) | 1993-08-30 | 1996-10-22 | International Business Machines Corporation | Shadow register file for instruction rollback |
GB2284493B (en) | 1993-12-01 | 1998-04-01 | Intel Corp | Exception handling in a processor that performs speculative out-of-order instruction execution |
US5784706A (en) | 1993-12-13 | 1998-07-21 | Cray Research, Inc. | Virtual to logical to physical address translation for distributed memory massively parallel processing systems |
US5832290A (en) | 1994-06-13 | 1998-11-03 | Hewlett-Packard Co. | Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems |
DE69734399D1 (de) | 1996-01-24 | 2006-03-02 | Sun Microsystems Inc | Verfahren und vorrichtung zur stapel-cachespeicherung |
US5903769A (en) | 1997-03-31 | 1999-05-11 | Sun Microsystems, Inc. | Conditional vector processing |
US6247118B1 (en) | 1998-06-05 | 2001-06-12 | Mcdonnell Douglas Corporation | Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry |
US6253287B1 (en) | 1998-09-09 | 2001-06-26 | Advanced Micro Devices, Inc. | Using three-dimensional storage to make variable-length instructions appear uniform in two dimensions |
US6665790B1 (en) | 2000-02-29 | 2003-12-16 | International Business Machines Corporation | Vector register file with arbitrary vector addressing |
US6857061B1 (en) | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
US6839828B2 (en) | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
US6889307B1 (en) | 2001-11-16 | 2005-05-03 | Matrix Semiconductor, Inc. | Integrated circuit incorporating dual organization memory array |
US7243262B2 (en) | 2003-08-29 | 2007-07-10 | Intel Corporation | Incremental checkpointing in a multi-threaded architecture |
US7308607B2 (en) | 2003-08-29 | 2007-12-11 | Intel Corporation | Periodic checkpointing in a redundantly multi-threaded architecture |
US7386703B2 (en) | 2003-11-18 | 2008-06-10 | International Business Machines Corporation | Two dimensional addressing of a matrix-vector register array |
US7277988B2 (en) | 2004-10-29 | 2007-10-02 | International Business Machines Corporation | System, method and storage medium for providing data caching and data compression in a memory subsystem |
US8255745B2 (en) | 2005-08-29 | 2012-08-28 | The Invention Science Fund I, Llc | Hardware-error tolerant computing |
US8375247B2 (en) | 2005-08-29 | 2013-02-12 | The Invention Science Fund I, Llc | Handling processor computational errors |
US8090996B2 (en) | 2006-03-31 | 2012-01-03 | Intel Corporation | Detecting soft errors via selective re-execution |
US7636813B2 (en) | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7594055B2 (en) | 2006-05-24 | 2009-09-22 | International Business Machines Corporation | Systems and methods for providing distributed technology independent memory controllers |
US7584336B2 (en) | 2006-06-08 | 2009-09-01 | International Business Machines Corporation | Systems and methods for providing data modification operations in memory subsystems |
US7615857B1 (en) | 2007-02-14 | 2009-11-10 | Hewlett-Packard Development Company, L.P. | Modular three-dimensional chip multiprocessor |
US7783860B2 (en) | 2007-07-31 | 2010-08-24 | International Business Machines Corporation | Load misaligned vector with permute and mask insert |
US20090106526A1 (en) | 2007-10-22 | 2009-04-23 | David Arnold Luick | Scalar Float Register Overlay on Vector Register File for Efficient Register Allocation and Scalar Float and Vector Register Sharing |
US7877582B2 (en) | 2008-01-31 | 2011-01-25 | International Business Machines Corporation | Multi-addressable register file |
US7978721B2 (en) | 2008-07-02 | 2011-07-12 | Micron Technology Inc. | Multi-serial interface stacked-die memory architecture |
US8656082B2 (en) | 2008-08-05 | 2014-02-18 | Micron Technology, Inc. | Flexible and expandable memory architectures |
US8489919B2 (en) | 2008-11-26 | 2013-07-16 | Arizona Board Of Regents | Circuits and methods for processors with multiple redundancy techniques for mitigating radiation errors |
US8392761B2 (en) | 2010-03-31 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Memory checkpointing using a co-located processor and service processor |
-
2012
- 2012-08-03 US US13/566,019 patent/US9003160B2/en active Active
-
2013
- 2013-08-02 CN CN201310334200.6A patent/CN103577347B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143509A1 (en) * | 2004-12-20 | 2006-06-29 | Sony Computer Entertainment Inc. | Methods and apparatus for disabling error countermeasures in a processing system |
US20120117333A1 (en) * | 2006-11-13 | 2012-05-10 | Haitham Akkary | Critical section detection and prediction mechanism for hardware lock elision |
CN102609240A (zh) * | 2011-01-20 | 2012-07-25 | 瑞昱半导体股份有限公司 | 处理器电路及读取数据的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636759A (zh) * | 2015-03-20 | 2018-01-26 | 波利伍德有限责任公司 | 存储控制器中的存储仿真 |
Also Published As
Publication number | Publication date |
---|---|
US20140040592A1 (en) | 2014-02-06 |
US9003160B2 (en) | 2015-04-07 |
CN103577347B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9698790B2 (en) | Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces | |
CN107273042B (zh) | 重复删除dram系统算法架构的存储器模块及方法 | |
CN108459974A (zh) | 集成闪存的高带宽存储器设备 | |
CN110582745B (zh) | 存储器装置及可促进张量存储器存取的方法 | |
CN108572933A (zh) | 用于直接存储器存取的数据缓冲器指针找取 | |
US11287978B2 (en) | Data storage devices, having scale-out devices to map and control groups on non-volatile memory devices | |
US20140040532A1 (en) | Stacked memory device with helper processor | |
US9268704B2 (en) | Low latency data exchange | |
US20150106574A1 (en) | Performing Processing Operations for Memory Circuits using a Hierarchical Arrangement of Processing Circuits | |
CN103810111A (zh) | 有源存储器件中的地址生成的方法及其处理元件 | |
CN103577347A (zh) | 用于操作存储器设备的方法和用于存储器操作的系统 | |
US9390038B2 (en) | Local bypass for in memory computing | |
CN105393227A (zh) | 存储器控制的数据移动及时序 | |
KR20190070915A (ko) | 분산된 gpu들을 위해 데이터 로컬리티를 개선하기 위한 매커니즘 | |
US8566532B2 (en) | Management of multipurpose command queues in a multilevel cache hierarchy | |
US8930596B2 (en) | Concurrent array-based queue | |
CN105408875A (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US20210286551A1 (en) | Data access ordering for writing-to or reading-from memory devices | |
US9064030B2 (en) | Tree traversal in a memory device | |
US8914779B2 (en) | Data placement for execution of an executable | |
US9104465B2 (en) | Main processor support of tasks performed in memory | |
GB2483884A (en) | Parallel processing system using dual port memories to communicate between each processor and the public memory bus | |
CN113490915A (zh) | 扩展存储器操作 | |
US20170031633A1 (en) | Method of operating object-oriented data storage device and method of operating system including the same | |
KR101457802B1 (ko) | 병렬화 기법을 활용하는 플래시 메모리 칩 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |