CN105874436B - 用于自主存储器的方法及设备 - Google Patents
用于自主存储器的方法及设备 Download PDFInfo
- Publication number
- CN105874436B CN105874436B CN201480072099.4A CN201480072099A CN105874436B CN 105874436 B CN105874436 B CN 105874436B CN 201480072099 A CN201480072099 A CN 201480072099A CN 105874436 B CN105874436 B CN 105874436B
- Authority
- CN
- China
- Prior art keywords
- memory
- packet
- instruction
- execution unit
- described instruction
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000015654 memory Effects 0.000 title claims description 165
- 230000004044 response Effects 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 31
- 230000011218 segmentation Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002567 autonomic effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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
- 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]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Dram (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示了一种方法、一种设备及一种系统。所述方法的实施例包含:自主存储器装置接收指令集,所述存储器装置执行所述指令集,将所述指令集与响应于所述指令集而从所述存储器装置恢复的任何数据组合成包,及从所述存储器装置发射所述包。
Description
优先权申请
本申请案主张2013年12月2日申请的序列号为14/094,273的美国申请案的优先权的权益,所述申请案以全文引用的方式并入本文中。
技术领域
本发明涉及存储器,且尤其涉及自主存储器。
背景技术
存储器装置通常经提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)及非易失性(例如,快闪)存储器。
若干非易失性存储器装置可经组合以形成固态驱动器(SSD),所述固态驱动器可在计算机系统中仿真机械操作硬盘驱动器。固态驱动器可比机械硬驱动器(由于缺少移动的部件)提供更快存取与更大可靠性。
至少部分地由于计算机系统的增加的性能,存储器及固态驱动器制造商可始终处于增加其存储器的性能的压力下以便努力与计算机系统性能增加保持同步。一般需要使对存储器的读取及写入更高效以释放对计算机系统的任何操作负担。
发明内容
本申请的一个方面涉及一种用于数据存储的方法,所述数据存储由包括存储器和存储器处理设备的存储器装置执行,所述存储器处理设备包括至少一个执行单元、包解析器以及包产生器,且所述方法包括:使用所述包解析器在存储器处理设备处接收并解析指令集;使用所述至少一个执行单元执行所述指令集,以尝试从所述存储器装置的所述存储器中检索数据;使用所述包产生器将所述指令集与响应于由所述至少一个执行单元对所述指令集的所述执行而从所述存储器装置的所述存储器检索的任何数据组合成包;及使用所述包产生器发射所述包,其中所述包从所述存储器处理设备传递至与所述存储器装置相连接的控制器;其中所述存储器处理设备的所述至少一个执行单元、所述包解析器以及所述包产生器与所述存储器位于同一硬件组件内。
在本申请的另一方面中,一种用于数据存储的设备包括:存储器;以及存储器处理设备,其包含:包解析器,其经配置以接收包括指令及开始位置的包;指令存储器,其耦合到所述包解析器且经配置以接收所述指令,其中所述开始位置指示所述指令存储器中用于待执行程序的位置;程序计数器,其耦合到所述指令存储器及所述包解析器,所述程序计数器经配置以最初从所述包解析器接收所述开始位置且在所述开始位置处从所述指令存储器检索指令;多个执行单元,其耦合到所述指令存储器以用于执行所述指令;解析器,其耦合到所述多个执行单元,所述解析器经配置以控制数据从本地存储器的读取;寄存器,其耦合到所述解析器及所述指令存储器,且经配置以存储来自所述解析器及所述包解析器的数据;及包产生器,其耦合到所述指令存储器及所述寄存器,所述包产生器经配置以产生包以供发射,所述包包括指令集及所述数据;其中所述存储器处理设备的所述包解析器、所述指令存储器、所述程序计数器、所述多个执行单元、所述解析器、所述寄存器以及所述包产生器与所述存储器位于同一硬件组件内。
附图说明
图1图解说明自主存储器处理设备的实施例的功能性框图。
图2图解说明根据图1的实施例的包解析器的实施例的框图。
图3图解说明根据图1的实施例的程序计数器的实施例的框图。
图4图解说明根据图1的实施例的指令存储器的实施例的框图。
图5图解说明根据图1的实施例的解码逻辑的实施例的框图。
图6图解说明根据图1的实施例的寄存器堆的实施例的框图。
图7A及7B图解说明根据图1的实施例的执行单元的实施例的框图。
图8图解说明根据图1的实施例的解析器的实施例的框图。
图9图解说明根据图1的实施例的包产生器的实施例的框图。
图10图解说明用于根据图1的实施例的指令执行的格式的实施例的图式。
图11图解说明存储器系统的实施例的框图。
图12图解说明自主存储器装置中的自主存储器处理设备的操作的实施例的流程图。
具体实施方式
在以下详细说明中,参考形成其一部分的附图,且在附图中以图解方式展示特定实施例。在图式中,贯穿数个视图的相似编号基本上描述类似组件。可利用其它实施例,且可在不背离本发明的范围的情况下作出结构、逻辑及电改变。因此,不应在一限制意义上理解以下详细说明。
本发明并不限于任何一种类型的存储器。自主存储器处理设备可与任何类型的存储器装置、存储器装置的群组或存储器技术(包含半导体存储器、光学存储器或磁性存储器)相关联。举例来说,存储器可包含非易失性存储器(例如,NAND快闪、NOR快闪、相变存储器(PCM))或易失性存储器(例如,DRAM、SRAM)。
如本文中所使用,节点可包含:包解析器,其用于解析所接收包;包产生器,其用于产生待从节点发射到网络的包;及网络端口,其可将节点与任何网络介接。所述节点可另外包含用于控制节点以及存储器的操作以用于存储数据的处理元件。在其它实施例中,所述节点可包含用于额外功能的额外硬件及/或软件/固件。具有自主处理设备的自主存储器装置可被视为节点。
图1图解说明自主存储器处理设备的实施例的功能性框图。此设备可与存储器100相关联且可用于释放基于中央处理单元(CPU)的计算系统中的存储器带宽瓶颈。自主存储器处理设备可位于自主存储器装置中。
自主存储器处理设备可包含包解析器101、程序计数器107、指令存储器105、解码逻辑103、寄存器堆109、解析器115、包产生器111、一个或多个执行单元(EU)113及页缓冲器117。图1的元件及架构仅为出于图解目的,这是因为其它实施例可使用其它元件及其它架构。
图2图解说明包解析器101的框图。包解析器101可耦合到网络(例如,在存储器100外部的网络)并从所述网络接受数据包。包解析器101还可耦合到程序计数器107的输入,使得包解析器101可使程序计数器107加载有从网络接收于包中的程序计数(例如,指令存储器位置)。包解析器101还可耦合到程序计数器107的输出,使得程序计数器107可将其当前程序计数(例如,指令存储器位置)加载到包解析器101中。包解析器101可进一步耦合到指令存储器105及寄存器堆109的输入以使从网络接收于包中的数据(例如,指令)能够加载到指令存储器105及寄存器堆109中。
图3图解说明程序计数器107的框图。出于图解目的,程序计数器107经展示为32位计数器。然而,其它实施例可使用其它程序计数器大小。
程序计数器107可具有来自包解析器101及程序计数器执行单元(PCEU)114的输入,所述程序计数器执行单元可为一个或多个执行单元113的部分。程序计数器107可具有耦合到指令存储器105的输出。
程序计数器107可含有程序计数值(例如,指令存储器位置)以存取可含有程序(例如,可执行指令)的指令存储器105中的特定指令位置。可依据由包解析器101确定且从包解析器101接收的传入包中的特定数据字段,或来自程序计数器执行单元114的所计算值来设定所述程序计数值。接着,程序计数器107可将程序计数(例如,32位寄存器)的值输出到指令存储器105。
图4图解说明指令存储器105的框图。指令存储器105可包含用于存储程序(例如,可执行指令)的若干寄存器。包解析器101可耦合到指令存储器105的写入端口。可由包解析器101写入到指令存储器105,使得在由包解析器101确定的传入包内接收的指令可从所述包加载到指令存储器105中。
指令存储器105可包含两个地址端口,所述两个地址端口可各自接受用于存取指令存储器105内的特定位置的地址。一个地址可来自程序计数器107。另一地址可来自包产生器111。
在一个操作期间,指令存储器105可从由程序计数器107的地址指示的位置输出指令(例如,数据端口)。此指令可被解码且由执行单元113执行以便向执行单元113作出关于待执行的操作的指示。此指令可对执行单元113给出操作数以及到寄存器堆109中的索引,所述索引用以向寄存器堆109作出关于要将何种数据输出到执行单元113以供处理的指示。
图5图解说明解码逻辑103的框图。解码逻辑103可包含执行单元解码逻辑501、解析器解码逻辑502及多路分用功能503(例如,多路分用器)。
到多路分用功能503的输入可耦合到来自指令存储器105的输出的指令流。指令流中的一个或多个控制位可用于选择所述指令流中的特定指令的目的地(例如,EU解码逻辑501、解析器解码逻辑502)。
如果指令被发送到EU解码逻辑501,则EU解码逻辑501可处理所述指令以便将所述指令发送到执行单元113中的一者。所述指令可向执行单元113中的一者作出关于将执行何种类型的操作的指示并且对执行单元113中的一者给出将在指令的执行期间使用的操作数。所述操作数可在寄存器堆109的寄存器中加索引且向所述寄存器作出关于将输出何种数据,使得执行单元113中的一者可处理所述数据的指示。
多路分用功能503还可将指令发送到耦合到解析器115的解析器解码逻辑502。所述指令可控制解析器解码逻辑502,解析器解码逻辑502继而指示解析器将存取页缓冲器117的哪些分段以便将来自页缓冲器117的特定分段的数据读取到执行单元113中的一者中以供处理。
图6图解说明寄存器堆109的框图。寄存器堆109可包含来自包解析器101、包产生器111、执行单元113中的一者或多者的输入,及存储器读取指示。存储器读取指示可为由解析器115产生的信号,所述信号指示完成存储器操作的时间。寄存器堆109可包含到包产生器111、执行单元113及解析器115的输出。
寄存器堆109可包含存储器(例如,多个寄存器)以在正发生由执行单元113进行的处理的同时存储变量。这些变量可包含响应于一个或多个指令从存储器检索的数据。可由包解析器101写入到寄存器堆109以便在所述寄存器内设定初始条件且可由包产生器111从寄存器堆109读取。执行单元113中的每一者可通过多路复用功能从寄存器堆109接收变元。到包产生器111的输出可用于将存储于寄存器堆109的寄存器中的数据捆绑成包以供发射到网络。
图7A图解说明一般来说执行单元113(例如,执行单元(0到N)的实施例的框图而图7B图解说明特定来说程序计数器执行单元114的实施例的框图。PCEU 114可被视为执行单元113的群组的部分,但其可具有与其它执行单元113不同的架构。
不存在对可包含于特定自主存储器处理设备中的执行单元113的特定数目的要求。一个设备可具有单个执行单元113而另一设备可具有多个(例如,数百个)执行单元。
图7A图解说明执行单元113可包含四个算术逻辑单元(ALU)701到704。ALU1 703及ALU2 704的输出可输入到多路复用功能706。可通过Comp ALU 702的输出确定选择哪一ALU703、704输出,Comp ALU 702的输出可用作用于多路复用功能706的选择信号。第四ALU(ALUOut 701)可具有作为寄存器地址Rd的到寄存器堆109的输出,所述输出可对寄存器堆109指示由执行单元113执行的操作的结果将存储的地方。
下部三个ALU 702到704及多路复用功能706可执行如果-则-否则运算。多路复用功能706可提供“如果某一条件”,其中所述条件是由Comp ALU 702确定。因此,如果条件为真,则由Comp ALU 702的输出选择一个ALU(例如,ALU1 703)的输出,否则由Comp ALU 702的输出选择另一ALU(例如,ALU2 704)的输出。
举例来说,如果假定ALU1 703具有操作数输入OPERAND1(R1)及OPERAND2(R2)以及命令输入OPERATOR1,且ALU2 704具有操作数输入OPERAND3(R3)及OPERAND4(R4)以及命令输入OPERATOR2,如果-则-否则语句可类似于:
如果(条件)
则
操作数1 OPERATOR1操作数2
否则
操作数3 OPERATOR2操作数4
其中“操作数1 OPERATOR1操作数2”可由ALU1 703提供,“操作数3 OPERATOR2操作数4”可由ALU2 704提供,且“如果(条件)”可由Comp ALU 702及多路复用功能706提供。
如随后参考图10的指令的格式所描述,可由指令提供操作数及算子或所述指令可指示操作数值位于哪一寄存器。举例来说,OPERAND1(R1)可位于寄存器R1中,OPERAND(R2)可位于寄存器R2中,OPERAND(R3)可位于寄存器R3中,OPERAND(R4)可位于寄存器R4中。
ALU1 703及ALU2 704可执行相同运算或不同运算。换句话说,OPERATOR1可与OPERATOR2相同或者OPERATOR1可不同于OPERATOR2。
ALU Out 701可具有操作数输入R5及R6(例如,寄存器R5及R6)以及命令输入OPERATOR3。通过ALU Out 701对来自R5及R6的值执行命令OPERATOR3所产生的结果Rd确定执行单元113的结果所存储的地方。
Comp ALU 702可具有操作数输入R7及R8(例如,寄存器R7及R8)以及命令输入OPERATOR4。如先前所讨论,对来自R7及R8的值执行命令OPERATOR4的结果确定多路复用功能706的选择。
在以上ALU 701到704中可用作命令(例如,OPERATOR1、OPERATOR2、OPERATOR3、OPERATOR4)的典型运算可包含加法、减法、逻辑AND、逻辑OR、逻辑NOT、逻辑NOR、等于、小于或等于、小于、不等于、大于或等于或者大于。这些运算仅为出于图解目的,这是因为其它实施例可使用其它运算。
图7B图解说明程序计数器执行单元(PCEU)114的架构。此架构可类似于执行单元0到n 113,但没有了ALU Out 701。由于PCEU 114可专用于确定程序计数器107的新地址,因此由于用以存储PCEU 114运算的结果的位置将为程序计数器107而不包含ALU Out 701。
PCEU 114可包含具有操作数输入R9及R10以及命令输入OPERATOR5的Comp ALU710。ALU1 711可包含操作数输入R11及R12以及命令输入OPERATOR6。ALU2 712可包含操作数输入R13及R14以及命令输入OPERATOR7。
ALU1 711及ALU2 712的输出可输入到多路复用功能714。Comp ALU 710的输出可提供用于多路复用功能714的选择信号。因此,如在先前所描述执行单元113中,PCEU 114可提供如果-则-否则语句,其中多路复用功能714提供“如果某一条件”,其中所述条件是由Comp ALU 710确定。因此,如果条件为真,则由Comp ALU 710的输出选择一个ALU(例如,ALU1 711)的输出,否则由Comp ALU 710的输出选择另一ALU(例如,ALU2 712)的输出。可将结果加载到程序计数器107中。
如在先前所描述执行单元113中,可从来自指令存储器的指令加载待用于PCEU114中的算子及命令或者所述指令可指示哪一寄存器可含有值。
图8图解说明解析器115的框图。解析器115可包含存储器写入端口,所述存储器写入端口包含待写入的地址以及数据。存储器读取地址端口可向存储器提供将从中进行读取的地址,使得可将所读取数据读取到存储器读取数据端口中。当存储器读取操作完成时,解析器115还可输出存储器读取指示信号。解析器115可进一步包含到执行单元113的输出、来自寄存器堆109的输入及来自解析器解码逻辑502的配置输入。
解析器115可具有对存储器100的直接存取,使得其可从存储器100的页缓冲器117直接读取或写入到页缓冲器117。解析器115可存取页缓冲器117的整个长度,使得为使处理较可管理,其可将页缓冲器117细分成较小分段(例如,经规则定义的分段)。举例来说,解析器115可对页缓冲器的前100字节操作,接着对接下来的100字节操作,且继续此直到已读取/写入整个页缓冲器117为止。为实现此,可对解析器115给出来自包解析器101的地址,所述包解析器确定待从页缓冲器117读取页缓冲器117的哪一分段。
解析器115可从寄存器堆109接收配置输入,所述配置输入可为解析器115指示解析页缓冲器117的内容的方式。解析器115可产生存储器读取指示信号,所述存储器读取指示信号为执行程序指示新内容可用于寄存器堆109中。
图9图解说明包产生器111的实施例的框图。所述包产生器可包含来自指令存储器105及寄存器堆109的输入以及到指令存储器105及寄存器堆109的输出。包产生器111另外具有到网络的输出以便输出任何所产生包。
包产生器111可产生针对指令存储器105的地址及针对寄存器堆109的地址以便从这些元件105、109读取数据。包产生器111可接着使用来自寄存器堆109的读取数据(例如,来自指令存储器105的指令及上下文(例如,数据、来自存储器读取的结果、来自所执行操作的结果)),捆绑此数据并产生待经由网络发射的包。
图10图解说明根据图1的实施例的指令执行的格式的实施例。每一指令1001到1003可存储于指令存储器中以供由执行单元113执行。
指令的所图解说明实施例包含四个指令1000到1003。每一指令可与执行单元113的不同ALU相关联。因此,如果执行单元113包含不同数量的ALU,执行格式可包含不同数量的指令1000到1003。在以下讨论中参考图10及图7A的ALU两者。
第一指令1000(例如,指令D)可表示由执行单元113中的一者进行的运算的结果的目的地寄存器(例如,Rd)。如先前所讨论,ALU Out 701可产生其中存储有执行单元113的结果的目的地寄存器Rd的地址。因此,ALU Out 701可与第一指令1000相关联以用于产生寄存器Rd。
第二指令1001(例如,指令C)可表示由执行单元113表示的如果-则-否则语句的条件。在所图解说明实施例中,条件由比较值VC表示。如先前所讨论,Comp ALU 702可产生用作用于多路复用功能706的选择信号的条件。因此,Comp ALU 702可与第二指令1001相关联以用于比较VC是否为真。
第三指令1002(例如,指令T)可表示由执行单元113表示的如果-则-否则语句的“则”结果。在所图解说明实施例中,由Vt–如果为真的值表示“则”结果。如先前所讨论,ALU1703可产生“则”结果。因此,ALU1 703可与第三指令1002相关联以使“则”结果成为Vt。
第四指令1003(例如,指令F)可表示由执行单元113表示的如果-则-否则语句的“否则”结果。在所图解说明实施例中,由Vf–如果为假的值表示“否则”结果。如先前所讨论,ALU2 704可产生“否则”结果。因此,ALU2 704可与第四指令1003相关联以实现Vf的“否则”结果。
使用条件VC、“则”结果Vt、“否则”结果Vf及结果寄存器Rd,如果-则-否则语句可通过以下表示:
如果(VC==真)
则
Reg[Rd]:=Vt
否则
Reg[Rd]:=Vf
图11图解说明可并入有图1的自主存储器处理设备130的存储器系统的实施例的框图。存储器系统可包含可经由网络1120与一个或多个存储器装置(例如,SSD)1101、1102通信的控制器1100(例如,CPU)。网络1120可为有线总线或无线通信(例如,WiFi)。
存储器装置1101可包含本地存储器100(例如,RAM、DRAM、SRAM、NAND快闪、NOR快闪、相变存储器(PCM))以及图1的自主存储器处理设备130,所述本地存储器构成存储器装置1101的存储部分。自主存储器处理设备130可相对接近于存储器100而定位(例如,同一裸片、同一裸片堆叠、同一存储器模块)。举例来说,自主存储器处理设备130可包含于处于存储器100的存储体等级的电路中。每一存储体可具有不同自主存储器处理设备130,使得一个存储器芯片可具有基本上同时操作的自主存储器处理设备130的多个实例。如本文中所使用,本地存储器100可为不经由网络便能连接到自主存储器处理设备130的存储器。
图11的系统的装置中的每一者可被视为节点。每一节点可经由网络1120与其它节点通信。节点中的每一者可基本上类似或者节点中的一者或多者可具有不同架构。举例来说,第一存储器装置1101可具有除程序计数器执行单元114以外的仅单个执行单元113,而第二存储器装置1102可具有除程序计数器执行单元114以外的一个以上执行单元113。
因此,如随后所描述,控制器1100(例如,源节点)可将含有指令及源节点的当前处理状态的消息(例如,包)发送到存储器装置1101(例如,目标节点)。在另一实施例中,第一存储器装置1101可为源节点而第二存储器装置1102可为目标节点。
指令可包含对存储器装置1101的命令(例如,搜索、分类、比较)。存储器装置1101可在不受控制器干预的情况下执行由命令指示的任务。自主存储器处理设备130可发送并接收去往及来自其它节点1100、1102的消息、发送并接收去往及来自其它节点1100、1102的处理指令及状态、还原并保存程序状态、执行处理指令、读取并写入本地存储器及/或支持单个节点中的多个处理上下文。
自主存储器处理设备130架构可提供添加及移除执行单元113(例如,包括ALU)的动态、无缝灵活性,因此视需要赋予节点额外处理能力。可在以下操作实例中图解说明执行单元113在自主存储器处理设备130中的动态添加及移除。
可产生如下典型现有技术程序:
指令1(ADD寄存器1、寄存器2、寄存器3)
指令2(SUB寄存器2、寄存器3、寄存器4)
如在典型现有技术CPU系统中,这些指令中存在所暗示相依性。举例来说,指令2可不能在指令1之前(或与指令1在同一循环中)执行,这是因为在指令1有机会执行之前,寄存器2中的值将被覆写。
在自主存储器处理设备架构中,可使用较复杂执行单元(EU)架构以便较少用以执行程序所需的循环的数目。每一EU可含有各自执行相异任务的若干不同ALU(例如,四个ALU)。因此,可产生如下针对自主存储器处理设备所写入的程序(假定具有一个EU加PCEU的架构):
[PCEU指令1][EU1指令1]
[PCEU指令2][EU1指令2]
每一[EU#指令#]可如下显现,如图10中所图解说明:
[目的地指令][比较指令][如果-真指令][如果-假指令]
同样,作为自主存储器处理设备架构的部分,处理器可具有嵌入于其内的不同数目个EU。此可实现具有四个EU及一个PCEU的架构,举例来说:
[PCEU指令1][EU1指令1][EU2指令1][EU3指令1][EU4指令1]
[PCEU指令2][EU1指令2][EU2指令2][EU3指令2][EU4指令2]
由于在此循环中可不存在待执行的额外工作的事实,因此这些EU指令中的任一者可为空的。此可由于在程序的特定阶段缺少并行性。
自主存储器处理设备架构可在系统中的一组异构自主存储器处理设备引擎之间实现互动(例如一个设备(“A”)可具有一个EU加PCEU,而同一互连系统中的另一设备(“B”)可具有4个EU加PCEU)。如果假定在此情景中,设备A需要将其上下文发送到设备“B”,可将程序封装成指令的顺序流且将其运送到设备“B”。设备“B”可接着以与如下相同的方式在其硬件上调度所述程序:
[PCEU指令1][EU1指令1][空][空][空]
[PCEU指令2][EU1指令2][空][空][空]
…
此可导致并行性损失,从而在系统中造成效率低下,这是因为每一程序最终将接近最窄的自主存储器处理设备。
在不确保在指令之间不存在任何相依性的情况下,可不将指令捆绑到并行EU中。由于此种比较在典型现有技术系统中可为计算上昂贵的,因此自主存储器处理设备可使用指令“栅栏”旗标的概念。“栅栏”旗标使应用程序写入器或编译器能够标记指令流不再对所述流中的先前指令具有任何相依性的地方。此信息可使指令流能够在不需要显著处理额外开销的情况下在一组异构处理器上传送并调度。
举例来说,以下指令流:[PCEU指令][EU指令1][EU指令2][EU指令3][栅栏标记/指令][EU指令4][EU指令5][EU指令6][EU指令7][栅栏旗标/指令]可以以下方式在自主存储器处理设备“A”上进行调度(其中[F]指示“栅栏”标记):[PCEU][1][PCEU][2][F][PCEU][3][PCEU][4][PCEU][5][PCEU][6][F][PCEU][7],且可在自主存储器处理设备“B”中调度为:[PCEU][1][2][3][X][F][PCEU][4][5][6][7]。
“栅栏”指令可在其被加载到给定自主存储器处理设备(例如,“A”或“B”)的指令存储器中时由包传入逻辑处理。“栅栏”旗标的存在可存储于指令存储器中,但其在调度的上下文外部可为无意义的。然而,“栅栏”旗标经存储为指令存储器中的旗标,使得包传出逻辑可重建原始流。
作为自主存储器处理设备的操作的实例(例如,存储器搜索),可由包解析器101从网络(例如,存储器网络)接收包。包解析器101可将包解析成分段。一些分段可为上下文,这是因为其可含有表示当包离开前一节点时所述前一节点所处的状态的寄存器内容。
包可含有指令存储器105中用于待执行程序的开始位置。可将此开始点加载到程序计数器107中。包还可含有待加载到指令存储器105中的指令集及可加载到寄存器堆109中的一组初始条件。初始条件可为通过指令从前一节点发送的变量。初始条件也可为以供由当前执行的程序使用的常数。
程序计数器107中的值确定从指令存储器105读取哪一指令以供执行。程序计数器107中的下一值可为来自前一值的增量或由程序计数器执行单元114确定的所计算值。
指令可设定解析器115的配置。解析器115可通过指令的执行经配置以从页缓冲器117移除变量且最终执行存储器读取操作。
当存储器读取操作发生时,变量可实时地移出页缓冲器117内容且向执行单元113呈现为输入。可从寄存器堆读取其它潜在输入,如通过程序指令所确定,且可向执行单元113呈现所述潜在输入以供处理。如先前所描述,“栅栏”可提供并行执行数个连续指令的能力。无法并行执行的指令可被推迟且在后一循环期间执行。
执行单元113可将那些输入变元处理为多组输入变元,每一组均并行处理。因此,多个执行单元113可产生输出变量,所述输出变量可接着被传送回到寄存器堆,被传送到解析器115以最终作为用于一个或多个存储器写入操作的数据而写入到页缓冲器117,或者输出变量可进入寄存器堆中以产生某一特定动作。所述动作可为由包产生器111产生包或起始新的存储器读取或存储器写入操作。
可向包产生器111呈现待包含于包中的页缓冲器117内容(例如,搜索命令的结果)以经由网络将其发射到请求节点。所述包可包含到请求节点的指示任务(例如,搜索)已完成且结果包含于包中的消息。
作为较广泛的操作实例,网络可包含自主存储器装置组构(fabric),每一自主存储器装置均包含至少一个自主存储器处理设备。数据群组可跨存储器装置组构而存储。当期望搜索整个数据群组来寻求特定数据列表时,可将搜索程序推动到一个自主存储器装置中以搜索所述装置来寻求特定数据列表。当程序确定已搜索存储于所述特定自主存储器装置内的数据且不存在来自列表的所有数据时,可将程序捆绑成一个或多个包且将其传送到另一自主存储器装置,其中所述装置的自主存储器处理设备可继续搜索。程序的此捆绑可继续直到已搜索自主存储器装置的整个组构或已完成数据列表。在一些实施例中,也可将存在于特定自主存储器装置中的数据随程序一起捆绑成包以供传送。
在图12的流程图中图解说明此实施例。所图解说明方法可在图11的系统中由自主存储器装置1101中的自主存储器处理设备130执行。
存储器装置1101可接收经提供到自主存储器处理设备130的包1201。设备130可解析包1203以移除指令、程序计数器及数据,如先前所讨论。接着可执行指令1205以对存储于存储器100中的数据执行所要任务。接着可将所述指令及由所述指令所产生的任何数据捆绑成包1207以供在网络1209上发射。
设备可被定义为电路、集成电路裸片、存储器装置、存储器阵列或系统。
结论
自主存储器装置内的自主存储器处理设备的一个或多个实施例可执行指令的处理以释放传统基于CPU的计算系统的存储器带宽瓶颈。可在节点当中传送含有指令集(例如,程序)及/或数据的包,使得可独立于来自源节点或CPU的控制而通过指令对那些节点中的存储器中的数据进行操作。
尽管本文中已图解说明及描述特定实施例,但所属领域的技术人员将了解,任何经计算以实现相同目的的任何配置均可替代所展示的特定实施例。许多更改对所属领域的技术人员来说将是显而易见的。因此,本申请案打算涵盖任何更改或变化。
Claims (15)
1.一种用于数据存储的方法,所述数据存储由包括存储器和存储器处理设备的存储器装置执行,所述存储器处理设备包括至少一个执行单元、包解析器以及包产生器,且所述方法包括:
使用所述包解析器在存储器处理设备处接收并解析指令集;
使用所述至少一个执行单元执行所述指令集,以尝试从所述存储器装置的所述存储器中检索数据;
使用所述包产生器将所述指令集与响应于由所述至少一个执行单元对所述指令集的所述执行而从所述存储器装置的所述存储器检索的任何数据组合成包;及
使用所述包产生器发射所述包,其中所述包从所述存储器处理设备传递至与所述存储器装置相连接的控制器;
其中所述存储器处理设备的所述至少一个执行单元、所述包解析器以及所述包产生器与所述存储器位于同一硬件组件内。
2.根据权利要求1所述的方法,其中接收并解析所述指令集及发射所述包分别包括:从耦合到所述存储器装置的网络接收所述指令集及将所述包发射到所述网络。
3.根据权利要求1所述的方法,其中接收并解析所述指令集包括经由以下步骤接收并解析包括所述指令集的包:
给程序计数器加载与所述所接收指令集相关联的初始程序计数器值;
给指令存储器加载所述指令集;及
给寄存器堆加载与所述指令集相关联的一组初始条件。
4.根据权利要求3所述的方法,其中执行所述指令集包括:
在执行所述指令集的第一指令之后计算新程序计数器值;及
将所述新程序计数器值存储于所述程序计数器中。
5.根据权利要求1所述的方法,其中执行所述指令集包括:在第一执行单元中执行第一指令且在第二执行单元中执行第二指令,其中所述第一及第二指令的所述执行是基本上并行的。
6.根据权利要求1所述的方法,其中所述存储器装置为多个节点中的第一节点,且从所述存储器装置发射所述包包括将所述包发射到所述多个节点中的第二节点。
7.根据权利要求6所述的方法,且其进一步包括:
从所述多个节点中的第三节点接收初始条件;及
将所述初始条件存储于寄存器堆中。
8.根据权利要求1所述的方法,其中所述指令集包括栅栏旗标,且存储所述指令集包括:
将在所述栅栏旗标之前的一个或多个指令存储于指令存储器中,且将在所述栅栏旗标之后的一个或多个指令存储于所述指令存储器中。
9.根据权利要求8所述的方法,且其进一步包括:
在第一执行单元中执行在所述栅栏旗标之前的所述一个或多个指令;及
在第二执行单元中执行在所述栅栏旗标之后的所述一个或多个指令。
10.根据权利要求9所述的方法,其中执行在所述栅栏旗标之前的所述一个或多个指令是与执行在所述栅栏旗标之后的所述一个或多个指令基本上同时执行的。
11.根据权利要求1所述的方法,其中执行所述指令集包括:
向程序计数器执行单元提供多个操作数;
向所述程序计数器执行单元提供算子;及
响应于来自所述算子对所述多个操作数的执行的结果而产生经更新程序计数器值。
12.一种用于数据存储的设备,所述设备包括:
存储器;以及
存储器处理设备,其包含:
包解析器,其经配置以接收包括指令及开始位置的包;
指令存储器,其耦合到所述包解析器且经配置以接收所述指令,其中所述开始位置指示所述指令存储器中用于待执行程序的位置;
程序计数器,其耦合到所述指令存储器及所述包解析器,所述程序计数器经配置以最初从所述包解析器接收所述开始位置且在所述开始位置处从所述指令存储器检索指令;
多个执行单元,其耦合到所述指令存储器以用于执行所述指令;
解析器,其耦合到所述多个执行单元,所述解析器经配置以控制数据从本地存储器的读取;
寄存器,其耦合到所述解析器及所述指令存储器,且经配置以存储来自所述解析器及所述包解析器的数据;及
包产生器,其耦合到所述指令存储器及所述寄存器,所述包产生器经配置以产生包以供发射,所述包包括指令集及所述数据;
其中所述存储器处理设备的所述包解析器、所述指令存储器、所述程序计数器、所述多个执行单元、所述解析器、所述寄存器以及所述包产生器与所述存储器位于同一硬件组件内。
13.根据权利要求12所述的设备,其中所述多个执行单元中的每一者包括:
多个算术逻辑单元ALU;及
多路复用功能单元,其耦合于所述多个所述算术逻辑单元中的至少两者的输出端子之间。
14.根据权利要求12所述的设备,其中所述存储器处理设备和所述存储器包含于同一裸片、同一裸片堆叠或同一存储器模块的一者中,且其中所述存储器包含:随机存取存储器(RAM)、动态随机存取存储器(DRAM)、同步随机存取存储器(SRAM)、NAND快闪、NOR快闪或相变存储器(PCM)。
15.根据权利要求14所述的设备,其中所述存储器处理设备是位于所述设备中的多个存储器处理设备中的一者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/094,273 US10003675B2 (en) | 2013-12-02 | 2013-12-02 | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
US14/094,273 | 2013-12-02 | ||
PCT/US2014/067927 WO2015084728A1 (en) | 2013-12-02 | 2014-12-01 | Methods and systems for autonomous memory |
Publications (3)
Publication Number | Publication Date |
---|---|
CN105874436A CN105874436A (zh) | 2016-08-17 |
CN105874436A8 CN105874436A8 (zh) | 2016-09-21 |
CN105874436B true CN105874436B (zh) | 2019-03-08 |
Family
ID=53265363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480072099.4A Active CN105874436B (zh) | 2013-12-02 | 2014-12-01 | 用于自主存储器的方法及设备 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10003675B2 (zh) |
EP (1) | EP3077911B1 (zh) |
JP (2) | JP6449287B2 (zh) |
KR (1) | KR101812912B1 (zh) |
CN (1) | CN105874436B (zh) |
WO (1) | WO2015084728A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
KR102395190B1 (ko) | 2017-07-31 | 2022-05-06 | 삼성전자주식회사 | 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법 |
US11289137B2 (en) * | 2017-11-16 | 2022-03-29 | Micron Technology, Inc. | Multi-port storage-class memory interface |
US11119946B2 (en) * | 2019-05-16 | 2021-09-14 | Micron Technology, Inc. | Codeword rotation for zone grouping of media codewords |
CN110933001B (zh) * | 2019-11-18 | 2020-11-27 | 清华大学 | 一种可扩展的可重构交换机包解析器基本处理单元结构 |
JP2022010951A (ja) | 2020-06-29 | 2022-01-17 | キオクシア株式会社 | 半導体記憶装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671430A (en) * | 1993-06-30 | 1997-09-23 | Gunzinger; Anton | Parallel data processing system with communication apparatus control |
US6047334A (en) * | 1997-06-17 | 2000-04-04 | Intel Corporation | System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence |
CN102521535A (zh) * | 2011-12-05 | 2012-06-27 | 苏州希图视鼎微电子有限公司 | 通过特定指令集来进行相关运算的信息安全协处理器 |
CN102947811A (zh) * | 2010-02-01 | 2013-02-27 | 阿尔特拉公司 | 高效处理器装置和关联方法 |
Family Cites Families (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH062038B2 (ja) | 1987-11-18 | 1994-01-12 | 江口 光市郎 | イワシ肉消臭加工法 |
US5134711A (en) | 1988-05-13 | 1992-07-28 | At&T Bell Laboratories | Computer with intelligent memory system |
GB8816413D0 (en) | 1988-07-09 | 1988-08-17 | Int Computers Ltd | Data processing system |
US5105425A (en) | 1989-12-29 | 1992-04-14 | Westinghouse Electric Corp. | Adaptive or fault tolerant full wafer nonvolatile memory |
DE69132495T2 (de) | 1990-03-16 | 2001-06-13 | Texas Instruments Inc., Dallas | Verteilter Verarbeitungsspeicher |
JPH04132356A (ja) | 1990-09-21 | 1992-05-06 | Ricoh Co Ltd | 内線電話交換方式 |
GB9023096D0 (en) | 1990-10-24 | 1990-12-05 | Int Computers Ltd | Database search processor |
JPH052610A (ja) | 1991-06-25 | 1993-01-08 | Mitsubishi Electric Corp | リレーシヨナルデータベースにおける集約演算処理方式 |
JP2579419B2 (ja) | 1992-05-22 | 1997-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・メモリ・システム |
US5835755A (en) | 1994-04-04 | 1998-11-10 | At&T Global Information Solutions Company | Multi-processor computer system for operating parallel client/server database processes |
CA2145106C (en) | 1994-04-22 | 1999-08-24 | Abhaya Asthana | Intelligent memory-based input/output system |
US6101620A (en) | 1995-04-18 | 2000-08-08 | Neomagic Corp. | Testable interleaved dual-DRAM architecture for a video memory controller with split internal/external memory |
US5754948A (en) | 1995-12-29 | 1998-05-19 | University Of North Carolina At Charlotte | Millimeter-wave wireless interconnection of electronic components |
JP3289101B2 (ja) | 1996-01-25 | 2002-06-04 | 東京エレクトロン株式会社 | フラッシュ・ディスク・システムの初期化方法及び装置 |
KR100359414B1 (ko) | 1996-01-25 | 2003-01-24 | 동경 엘렉트론 디바이스 주식회사 | 데이타독출/기록방법및그를이용한메모리제어장치및시스템 |
AU9604698A (en) | 1997-10-10 | 1999-05-03 | Rambus Incorporated | Method and apparatus for two step memory write operations |
US6105130A (en) | 1997-12-23 | 2000-08-15 | Adaptec, Inc. | Method for selectively booting from a desired peripheral device |
JPH11232180A (ja) | 1998-02-10 | 1999-08-27 | Hitachi Ltd | データ処理装置 |
US6751606B1 (en) | 1998-12-23 | 2004-06-15 | Microsoft Corporation | System for enhancing a query interface |
US7610559B1 (en) | 1999-07-27 | 2009-10-27 | Samsung Electronics Co., Ltd. | Device customized home network top-level information architecture |
US20020009119A1 (en) | 2000-02-11 | 2002-01-24 | Matthew William T. | Environmental heat stress monitor |
CA2402018A1 (en) * | 2000-03-03 | 2001-09-13 | Tenor Networks, Inc. | High-speed data processing using internal processor memory space |
US20020161848A1 (en) | 2000-03-03 | 2002-10-31 | Willman Charles A. | Systems and methods for facilitating memory access in information management environments |
US20020124137A1 (en) | 2001-01-29 | 2002-09-05 | Ulrich Thomas R. | Enhancing disk array performance via variable parity based load balancing |
US6516380B2 (en) | 2001-02-05 | 2003-02-04 | International Business Machines Corporation | System and method for a log-based non-volatile write cache in a storage controller |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6586276B2 (en) | 2001-07-11 | 2003-07-01 | Intel Corporation | Method for fabricating a microelectronic device using wafer-level adhesion layer deposition |
US7356568B2 (en) | 2002-12-12 | 2008-04-08 | International Business Machines Corporation | Method, processing unit and data processing system for microprocessor communication in a multi-processor system |
US20040186832A1 (en) | 2003-01-16 | 2004-09-23 | Jardin Cary A. | System and method for controlling processing in a distributed system |
US7581080B2 (en) | 2003-04-23 | 2009-08-25 | Micron Technology, Inc. | Method for manipulating data in a group of processing elements according to locally maintained counts |
GB2406399A (en) | 2003-09-23 | 2005-03-30 | Ibm | Seaching within a computer network by entering a search term and optional URI into a web browser |
US7050351B2 (en) | 2003-12-30 | 2006-05-23 | Intel Corporation | Method and apparatus for multiple row caches per bank |
US7380039B2 (en) | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
US7487288B2 (en) | 2004-05-14 | 2009-02-03 | International Business Machines Corporation | Dynamic loading of virtual volume data in a virtual tape server |
US7490354B2 (en) | 2004-06-10 | 2009-02-10 | International Business Machines Corporation | Virus detection in a network |
US7243200B2 (en) | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US7242216B1 (en) | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
US7978682B2 (en) | 2005-05-09 | 2011-07-12 | At&T Intellectual Property I, Lp | Methods, systems, and computer-readable media for optimizing the communication of data packets in a data network |
US7634622B1 (en) * | 2005-06-14 | 2009-12-15 | Consentry Networks, Inc. | Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US20070165457A1 (en) | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
US7558859B2 (en) | 2005-10-17 | 2009-07-07 | Microsoft Corporation | Peer-to-peer auction based data distribution |
US8275949B2 (en) | 2005-12-13 | 2012-09-25 | International Business Machines Corporation | System support storage and computer system |
US20070150699A1 (en) | 2005-12-28 | 2007-06-28 | Schoinas Ioannis T | Firm partitioning in a system with a point-to-point interconnect |
US7609561B2 (en) | 2006-01-18 | 2009-10-27 | Apple Inc. | Disabling faulty flash memory dies |
JP4786354B2 (ja) * | 2006-01-27 | 2011-10-05 | 株式会社日立製作所 | iSCSI通信制御方法とそれを用いた記憶システム |
DE102006009027A1 (de) | 2006-02-27 | 2007-08-30 | Infineon Technologies Ag | Speicheranordnung |
US7756898B2 (en) | 2006-03-31 | 2010-07-13 | Isilon Systems, Inc. | Systems and methods for notifying listeners of events |
TW200743991A (en) | 2006-05-18 | 2007-12-01 | Realtek Semiconductor Corp | Data search method and apparatus thereof |
US7647454B2 (en) | 2006-06-12 | 2010-01-12 | Hewlett-Packard Development Company, L.P. | Transactional shared memory system and method of control |
US8850411B2 (en) | 2006-06-21 | 2014-09-30 | Element Cxi, Llc | Compiler system, method and software for a resilient integrated circuit architecture |
US7941579B2 (en) | 2006-06-30 | 2011-05-10 | Brother Kogyo Kabushiki Kaisha | Communication system for authenticating authority of host device for accessing storage medium set to periphery device |
US8601155B2 (en) | 2006-08-16 | 2013-12-03 | Oracle America, Inc. | Telemetry stream performance analysis and optimization |
US7952184B2 (en) | 2006-08-31 | 2011-05-31 | Micron Technology, Inc. | Distributed semiconductor device methods, apparatus, and systems |
US7788243B2 (en) | 2006-09-08 | 2010-08-31 | Sybase, Inc. | System and methods for optimizing data transfer among various resources in a distributed environment |
US7657705B2 (en) | 2006-09-27 | 2010-02-02 | Lsi Corporation | Method and apparatus of a RAID configuration module |
US7477535B2 (en) | 2006-10-05 | 2009-01-13 | Nokia Corporation | 3D chip arrangement including memory manager |
US7761485B2 (en) | 2006-10-25 | 2010-07-20 | Zeugma Systems Inc. | Distributed database |
US8285707B2 (en) | 2006-11-08 | 2012-10-09 | International Business Machines Corporation | Method of querying relational database management systems |
US8510481B2 (en) | 2007-01-03 | 2013-08-13 | Apple Inc. | Memory access without internal microprocessor intervention |
US7761687B2 (en) | 2007-06-26 | 2010-07-20 | International Business Machines Corporation | Ultrascalable petaflop parallel supercomputer |
US8037270B2 (en) | 2007-06-27 | 2011-10-11 | International Business Machines Corporation | Structure for memory chip for high capacity memory subsystem supporting replication of command data |
US8433842B2 (en) * | 2007-06-29 | 2013-04-30 | Sandisk Technologies Inc. | Method for communicating with a non-volatile memory storage device |
US8320373B2 (en) * | 2007-08-23 | 2012-11-27 | Qualcomm Incorporated | Packet-based processing system |
US7895151B2 (en) | 2008-06-23 | 2011-02-22 | Teradata Us, Inc. | Fast bulk loading and incremental loading of data into a database |
US7623365B2 (en) | 2007-08-29 | 2009-11-24 | Micron Technology, Inc. | Memory device interface methods, apparatus, and systems |
US7913033B2 (en) | 2007-10-09 | 2011-03-22 | Micron Technology, Inc. | Non-volatile memory device having assignable network identification |
US7816934B2 (en) | 2007-10-16 | 2010-10-19 | Micron Technology, Inc. | Reconfigurable connections for stacked semiconductor devices |
TWI346289B (en) * | 2007-12-19 | 2011-08-01 | Ralink Technology Corp | Peripheral complying with sdio standard and method for managing sdio command |
US8621138B2 (en) * | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8194433B2 (en) | 2008-02-20 | 2012-06-05 | Ovonyx, Inc. | Method and apparatus for accessing a bidirectional memory |
JP2009211233A (ja) | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US7979757B2 (en) | 2008-06-03 | 2011-07-12 | Micron Technology, Inc. | Method and apparatus for testing high capacity/high bandwidth memory devices |
WO2009153687A1 (en) | 2008-06-18 | 2009-12-23 | Petascan Ltd | Distributed hardware-based data querying |
US8407399B2 (en) | 2008-10-29 | 2013-03-26 | Sandisk Il Ltd. | Method and apparatus for enforcing a flash memory caching policy |
US20100161914A1 (en) | 2008-12-23 | 2010-06-24 | Eilert Sean S | Autonomous memory subsystems in computing platforms |
US8493979B2 (en) * | 2008-12-30 | 2013-07-23 | Intel Corporation | Single instruction processing of network packets |
US20100180182A1 (en) | 2009-01-09 | 2010-07-15 | Seagate Technology Llc | Data memory device and controller with interface error detection and handling logic |
US8261019B2 (en) | 2009-02-13 | 2012-09-04 | Oracle America, Inc. | Conveying critical data in a multiprocessor system |
US8549092B2 (en) | 2009-02-19 | 2013-10-01 | Micron Technology, Inc. | Memory network methods, apparatus, and systems |
TWI406130B (zh) | 2009-03-10 | 2013-08-21 | Phison Electronics Corp | 資料處理系統、控制器及其搜尋特定記憶體區的方法 |
US8427952B1 (en) * | 2009-03-24 | 2013-04-23 | Packet Plus, Inc. | Microcode engine for packet processing |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8942113B2 (en) | 2009-05-07 | 2015-01-27 | Verizon Patent And Licensing Inc. | System and method for dynamically adjusting routing metrics based on power consumption |
CN102014011A (zh) | 2009-09-04 | 2011-04-13 | 中兴通讯股份有限公司 | 环网保护方法与系统 |
US8972627B2 (en) | 2009-09-09 | 2015-03-03 | Fusion-Io, Inc. | Apparatus, system, and method for managing operations for data storage media |
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
US9015440B2 (en) | 2009-09-11 | 2015-04-21 | Micron Technology, Inc. | Autonomous memory subsystem architecture |
US8374022B2 (en) | 2009-12-21 | 2013-02-12 | Intel Corporation | Programming phase change memories using ovonic threshold switches |
US10803066B2 (en) | 2010-06-29 | 2020-10-13 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators |
KR20120004162A (ko) | 2010-07-06 | 2012-01-12 | 삼성전자주식회사 | 데이터베이스 관리 방법 및 이를 이용한 데이터베이스 서버 시스템 |
US9792307B2 (en) | 2010-07-27 | 2017-10-17 | Oracle International Corporation | Enterprise-based searching of new and updated data |
US8930618B2 (en) | 2010-08-24 | 2015-01-06 | Futurewei Technologies, Inc. | Smart memory |
US8595414B2 (en) * | 2010-09-30 | 2013-11-26 | Apple Inc. | Selectively combining commands for a system having non-volatile memory |
US10026458B2 (en) | 2010-10-21 | 2018-07-17 | Micron Technology, Inc. | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
JP5238791B2 (ja) | 2010-11-10 | 2013-07-17 | 株式会社東芝 | 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法 |
JP2012159903A (ja) | 2011-01-31 | 2012-08-23 | Fujitsu Semiconductor Ltd | データ処理システム、データ処理装置、及びデータ処理方法 |
US8478736B2 (en) | 2011-02-08 | 2013-07-02 | International Business Machines Corporation | Pattern matching accelerator |
US8756405B2 (en) * | 2011-05-09 | 2014-06-17 | Freescale Semiconductor, Inc. | Selective routing of local memory accesses and device thereof |
KR101306622B1 (ko) | 2011-06-22 | 2013-09-11 | 주식회사 에이디칩스 | 명령어 큐 제어장치 |
JP2013045378A (ja) | 2011-08-26 | 2013-03-04 | Fujitsu Ltd | ストレージ制御方法、情報処理装置およびプログラム |
US8917534B2 (en) | 2011-09-09 | 2014-12-23 | Intel Corporation | Path isolation in a memory device |
US8775685B1 (en) * | 2011-10-13 | 2014-07-08 | Xilinx, Inc. | Parallel processing of network packets |
US20130173655A1 (en) | 2012-01-04 | 2013-07-04 | International Business Machines Corporation | Selective fetching of search results |
US9245926B2 (en) | 2012-05-07 | 2016-01-26 | Micron Technology, Inc. | Apparatuses and methods including memory access in cross point memory |
US8675423B2 (en) | 2012-05-07 | 2014-03-18 | Micron Technology, Inc. | Apparatuses and methods including supply current in memory |
US8780635B2 (en) | 2012-11-09 | 2014-07-15 | Sandisk Technologies Inc. | Use of bloom filter and improved program algorithm for increased data protection in CAM NAND memory |
US9424202B2 (en) | 2012-11-19 | 2016-08-23 | Smartfocus Holdings Limited | Database search facility |
US10089043B2 (en) | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Apparatus and methods for a distributed memory system including memory nodes |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
-
2013
- 2013-12-02 US US14/094,273 patent/US10003675B2/en active Active
-
2014
- 2014-12-01 JP JP2016535174A patent/JP6449287B2/ja active Active
- 2014-12-01 CN CN201480072099.4A patent/CN105874436B/zh active Active
- 2014-12-01 WO PCT/US2014/067927 patent/WO2015084728A1/en active Application Filing
- 2014-12-01 EP EP14868099.4A patent/EP3077911B1/en active Active
- 2014-12-01 KR KR1020167017509A patent/KR101812912B1/ko active IP Right Grant
-
2018
- 2018-04-05 JP JP2018072998A patent/JP6633119B2/ja active Active
- 2018-05-25 US US15/989,920 patent/US10778815B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671430A (en) * | 1993-06-30 | 1997-09-23 | Gunzinger; Anton | Parallel data processing system with communication apparatus control |
US6047334A (en) * | 1997-06-17 | 2000-04-04 | Intel Corporation | System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence |
CN102947811A (zh) * | 2010-02-01 | 2013-02-27 | 阿尔特拉公司 | 高效处理器装置和关联方法 |
CN102521535A (zh) * | 2011-12-05 | 2012-06-27 | 苏州希图视鼎微电子有限公司 | 通过特定指令集来进行相关运算的信息安全协处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN105874436A8 (zh) | 2016-09-21 |
EP3077911B1 (en) | 2022-05-04 |
JP6633119B2 (ja) | 2020-01-22 |
JP6449287B2 (ja) | 2019-01-09 |
US10778815B2 (en) | 2020-09-15 |
KR101812912B1 (ko) | 2018-01-30 |
WO2015084728A1 (en) | 2015-06-11 |
US20150153963A1 (en) | 2015-06-04 |
US20190007529A1 (en) | 2019-01-03 |
US10003675B2 (en) | 2018-06-19 |
EP3077911A4 (en) | 2017-08-02 |
KR20160092007A (ko) | 2016-08-03 |
EP3077911A1 (en) | 2016-10-12 |
JP2017504870A (ja) | 2017-02-09 |
JP2018139118A (ja) | 2018-09-06 |
CN105874436A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105874436B (zh) | 用于自主存储器的方法及设备 | |
US11237880B1 (en) | Dataflow all-reduce for reconfigurable processor systems | |
US11392740B2 (en) | Dataflow function offload to reconfigurable processors | |
CN109977116B (zh) | 基于fpga-ddr的哈希连接算子加速方法及系统 | |
JPH06260551A (ja) | マイクロコンピュータ | |
CN106557442B (zh) | 一种芯片系统 | |
CN104007954B (zh) | 处理器和用于处理器的控制方法 | |
CN102667649A (zh) | 基于多处理器的可编程逻辑控制器及其操作方法 | |
US8069333B2 (en) | Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system | |
JP2003216486A (ja) | メモリの部分の割り当て管理方法 | |
CN102446087B (zh) | 指令预取方法与预取装置 | |
CN103942083B (zh) | 一种面向可变参函数的编译实现方法 | |
CN104615439A (zh) | 一种可重构系统的配置控制器 | |
CN104679479A (zh) | 一种基于任务编号的调度控制机制的多核密码处理器 | |
CN107615711A (zh) | 用于事件传播的系统 | |
US20220309029A1 (en) | Tensor Partitioning and Partition Access Order | |
US11366783B1 (en) | Multi-headed multi-buffer for buffering data for processing | |
JPS63303460A (ja) | 並列プロセッサ | |
KR101756820B1 (ko) | 중첩 루프를 처리하기 위한 재구성 가능 프로세서 및 방법 | |
US20150243259A1 (en) | Method and apparatus for transferring data in a computer | |
CN100461788C (zh) | 为网络处理器调度连接的方法与装置 | |
KR101191530B1 (ko) | 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법 | |
JP2001356916A (ja) | メモリブロック化コンパイラ及びプログラム実行方法 | |
KR20230023762A (ko) | 하드웨어 오토로더 | |
US20020083303A1 (en) | Program-controlled unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CI01 | Publication of corrected invention patent application |
Correction item: Applicant Correct: Micron Technology, Inc. False: MICRON TECHNOLOGY INC. Number: 33 Volume: 32 |
|
CI02 | Correction of invention patent application |
Correction item: Applicant Correct: Micron Technology, Inc. False: MICRON TECHNOLOGY INC. Number: 33 Page: The title page Volume: 32 |
|
ERR | Gazette correction | ||
GR01 | Patent grant | ||
GR01 | Patent grant |