CN102460420A - 存储器装置的内部处理器中的条件式操作 - Google Patents
存储器装置的内部处理器中的条件式操作 Download PDFInfo
- Publication number
- CN102460420A CN102460420A CN2010800310934A CN201080031093A CN102460420A CN 102460420 A CN102460420 A CN 102460420A CN 2010800310934 A CN2010800310934 A CN 2010800310934A CN 201080031093 A CN201080031093 A CN 201080031093A CN 102460420 A CN102460420 A CN 102460420A
- Authority
- CN
- China
- Prior art keywords
- instruction
- alu
- condition
- computing
- conditional
- 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
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000000873 masking effect Effects 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 14
- 238000005516 engineering process Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 230000004087 circulation Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000003139 buffering 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
- 238000005538 encapsulation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 235000019506 cigar Nutrition 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002000 scavenging effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本发明技术提供存储器装置(34)的一种内部处理器(38),举例来说,所述内部处理器(38)经配置以选择性地并行地执行指令。一个此种内部处理器(38)包含多个算术逻辑单元ALU(50),每一ALU(50)连接到条件式掩蔽逻辑(60),且每一ALU(50)经配置以处理条件式指令。所述存储器装置(34)的定序器(40)可接收条件指令。一旦接收到所述条件指令,所述定序器(40)便可启用所述ALU(50)的所述条件式掩蔽逻辑(60)。所述定序器(40)可触发信号到所述条件式掩蔽逻辑(60),以使得所述掩蔽逻辑(60)在已满足所述条件指令的条件的情况下掩蔽某些指令,且在尚未满足所述条件的情况下掩蔽其它指令。在一个实施例中,所述内部处理器(38)中的每一ALU(50)可选择性地并行地实施指令。
Description
技术领域
本发明的实施例一般来说涉及存储器系统,且更明确地说涉及具有内部处理器的存储器系统。
背景技术
本章节打算向读者介绍此项技术的各个方面,这些方面可涉及下文所描述及/或所主张的本发明的各个方面。据信,此论述将有助于向读者提供背景信息以促进对本发明的各个方面的更好理解。因此,应理解,应将此些陈述判读为就上述情形而论而不是判读为对现有技术的认可。
电子系统通常包含一个或一个以上处理器,所述一个或一个以上处理器可检索并执行指令且输出所执行指令的结果(例如)以将所述结果存储到适合的位置。处理器一般包含算术逻辑单元(ALU)电路,所述算术逻辑单元(ALU)电路能够对一个或一个以上操作数执行指令,例如算术及逻辑运算。举例来说,ALU电路可使操作数彼此相加、相减、相乘或相除,或者可使一个或一个以上操作数经历逻辑运算,例如AND、OR、XOR及NOT逻辑函数。各种算术及逻辑运算可具有不同程度的复杂性。举例来说,一些运算可通过在一个循环中经由ALU电路输入操作数来实施,而其它运算可利用多个时钟循环。
在将一指令集引导到ALU以供执行中可涉及电子系统中的若干个组件。在一些装置中,所述指令及任何对应数据(例如,将对其执行所述指令的操作数)可由电子系统中的控制器或某一其它适合的处理器产生。由于执行一指令集所需要的时钟循环的时间或数目可取决于运算类型而变化,因此可在由ALU执行指令及/或数据之前将所述指令及/或数据写入到存储器装置(例如,存储器阵列)。可在ALU开始对所述数据执行所述指令之前检索并定序及/或缓冲所述指令及数据。
为了改进处理性能,写入、读取、定序、缓冲及执行指令及/或数据的步骤可对不同指令或一指令的不同部分大致同时地发生。此并行处理可称为“管线化”。还可在其中直接在存储器装置上实施处理器(例如,一个或一个以上ALU)的存储器中处理器(PIM)装置中改进装置性能,从而节约处理中的电力。还可并行地实施处理从而进一步改进处理性能。在并行数据处理中,可控制运算的执行以使得可选择性地实施某些运算。
发明内容
附图说明
在以下详细说明中且参考图式描述某些实施例,在所述图式中:
图1描绘根据本发明技术的实施例的基于处理器的系统的框图;
图2描绘根据本发明技术的实施例的具有与外部存储器控制器介接的嵌入式算术逻辑单元的存储器系统的框图;
图3描绘根据本发明技术的一个或一个以上实施例的计算缓冲器及包括嵌入于存储器装置上的ALU的计算引擎的框图;
图4A及图4B描绘根据本发明技术的一个或一个以上实施例的具有8位ALU的计算引擎;
图5图解说明根据本发明技术的一个或一个以上实施例的用于条件式掩蔽的逻辑;
图6描绘图解说明根据本发明技术的一个或一个以上实施例的使用线内指令格式的条件式执行的过程的流程图;及
图7描绘图解说明根据本发明技术的一个或一个以上实施例的使用基于计数器的格式的条件式执行的过程的流程图。
具体实施方式
算术逻辑单元(ALU)电路一般用以在多个级中处理指令。处理指令可包含执行指令并存储所执行指令的结果。更具体来说,指令及将对其执行所述指令的数据可由控制器发送到ALU,且可首先存储于存储器装置中以在ALU电路可用于执行所述指令时检索。一旦已执行所述指令,ALU便可将运算的结果写入到存储器组件或任何其它适合的输出。
在本发明技术的一个或一个以上实施例中,一个或一个以上处理器(例如,ALU)可与存储器装置封装在一起。举例来说,所述存储器装置可为存储器中处理器(PIM),且可包含若干嵌入式ALU及一存储器阵列,所述存储器阵列可存储待由所述ALU执行的指令及数据以及来自已完成指令的结果。在其它实施例中,所述ALU及所述存储器阵列可位于同一封装中的唯一裸片上。举例来说,所述ALU与所述存储器阵列可布置于多芯片封装(MCP)中且可通过一个或一个以上穿硅通孔(TSV)电连接。嵌入于存储器装置上或与存储器装置中的存储器组件封装在一起的处理器可称为“内部处理器”,这是因为其在存储器装置内部。如本文中所使用,“计算引擎”可为内部处理器的实例,且可嵌入于根据本发明技术的存储器装置上或封装于所述存储器装置中。
虽然在存储器装置外部的处理器可需要外部输入/输出(I/O)来将信息(例如,指令及/或数据)传送到所述存储器装置的存储器阵列及从所述存储器阵列传送信息(例如,指令及/或数据),但计算引擎可通过允许在无外部I/O的情况下在所述存储器阵列与所述计算引擎之间传送信息来节约电力消耗。所述存储器装置还可包含用以组织指令的组件(例如,定序器)及用以在所述计算引擎实施运算之前保持数据的存储器组件(例如,缓冲器)。
如所论述,所述计算引擎可实施各种数学及逻辑运算,且还可称为存储器装置的内部处理器。所述计算引擎可具有若干个基本建构块,所述若干个基本建构块可以是各自为一个字节宽的ALU。可以一方式配置所述计算引擎的所述ALU以改进处理性能。本发明技术的一个实施例涉及一种具有经配置而用于并行数据处理的嵌入式计算引擎的存储器装置。所述计算引擎中的并行数据处理可使得所述计算引擎的一个ALU能够对一个操作数进行运算。虽然每一ALU可花一个以上循环来完成对一操作数的指令,但所述计算引擎中的所述ALU中的每一者可处理不同操作数,从而允许所述计算引擎并行地处理多个操作数。因此,根据本发明并行处理技术,具有嵌入式计算引擎的存储器装置可在同一存储器装置内处理较大量的数据。
并行ALU可并行地对不同操作数进行运算,且在一些系统中,并行ALU可对不同操作数实施相同运算。然而,在一个实施例中,条件式指令可使得存储器装置能够基于是否已满足条件来选择性地对操作数实施运算。举例来说,本发明技术中的一者或一者以上提供在每操作数基础上选择性地实施运算的系统及方法,且可改进计算引擎的效率以及所处理数据的质量或已完成指令的结果。
现转到各图,图1描绘一般由参考编号10表示的基于处理器的系统。如下文所解释,系统10可包含根据本发明技术的实施例制造的各种电子装置。系统10可为例如计算机、寻呼机、蜂窝式电话、个人记事本、控制电路等多种类型中的任一者。在典型的基于处理器的系统中,一个或一个以上处理器12(例如,微处理器)控制对系统10中的系统功能及请求的处理。如下文所解释,系统10的处理器12及其它子组件可包含根据本发明技术的一个或一个以上实施例制造的存储器装置。
系统10通常包含电源14。举例来说,如果系统10为便携式系统,则电源14可有利地包含燃料电池、电力采集装置(power scavenging device)、永久电池、可替换电池及/或可再充电电池。举例来说,电源14还可包含AC适配器,因此系统10可插入到墙式插座中。举例来说,电源14还可包含DC适配器以使得系统10可插入到车载点烟器中。
取决于系统10实施的功能,各种其它装置可耦合到处理器12。举例来说,输入装置16可耦合到处理器12。举例来说,输入装置16可包含按钮、开关、键盘、光笔、鼠标、数字化器以及手写笔及/或语音辨识系统。显示器18也可耦合到处理器12。输入装置16及/或显示器18可各自或两者形成用户接口。举例来说,显示器18可包含LCD、SED显示器、CRT显示器、DLP显示器、等离子显示器、OLED显示器、LED及/或音频显示器。此外,RF子系统/基带处理器20也可耦合到处理器12。RF子系统/基带处理器20可包含耦合到RF接收器及RF发射器的天线(未展示)。一个或一个以上通信端口22也可耦合到处理器12。举例来说,通信端口22可适于耦合到例如调制解调器、打印机、计算机等一个或一个以上外围装置24或者例如局域网、远程局域网、内联网或因特网的网络。
处理器12一般通过处理存储于存储器中的软件程序来控制系统10。举例来说,所述软件程序可包含操作系统、数据库软件、绘图软件、字处理软件以及/或者视频、图片或声音编辑软件。存储器可操作地耦合到处理器12以存储并促进指令的执行以实施各种程序。举例来说,处理器12可耦合到系统存储器26,系统存储器26可包含动态随机存取存储器(DRAM)及/或同步动态随机存取存储器(SDRAM)。系统存储器26可包含易失性存储器、非易失性存储器或其组合。系统存储器26通常较大以使其可动态地存储所载入的应用程序及数据。
处理器12还可耦合到非易失性存储器28,此并不暗示系统存储器26必需为易失性的。非易失性存储器28可包含待结合系统存储器26使用的只读存储器(ROM)(例如,EPROM、电阻式只读存储器(RROM))及/或快闪存储器。ROM的大小通常经选择以恰好足够大以存储任何必需的操作系统、应用程序及固定数据。另外,举例来说,非易失性存储器28可包含高容量存储器,例如磁带或磁盘驱动器存储器,例如包含电阻式存储器或其它类型的非易失性固态存储器的混合式驱动器。
本发明技术的一些实施例涉及处理器12与系统存储器26的组件之间的通信。举例来说,处理器12可包含通用处理器、中央处理单元、处理器核心、ASIC、存储器控制器及/或ALU,其(举例来说)能够发送及接收来自系统存储器26中的存储器装置的内部处理器的信号。处理器12与系统存储器26的组件之间的通信中所涉及的系统10的组件可一般称为“存储器系统”30,如在图2的框图中所图解说明。在一些实施例中,存储器系统30可包含存储器装置34,存储器装置34可为系统10的系统存储器26的一部分(如图1中)且可具有内部处理器。存储器系统30还可包含外部处理器32,外部处理器32可处于具有更一般目的的处理器的芯片上系统(SOC)中以共同形成处理器控制系统10的处理器12(如图1中)。外部处理器32(其还可为外部存储器控制器)可与存储器装置34的某些组件通信及/或控制存储器装置34的某些组件。
存储器系统30可包含具有不限于外部处理器32与存储器装置34之间的通信的功能的组件。举例来说,外部处理器32可控制除存储器装置34以外的装置。然而,外部处理器32(如关于存储器系统30所解释)可指代外部处理器32的与存储器装置34的某些组件通信及/或控制存储器装置34的某些组件的一个功能。同样地,并非系统存储器26的所有部分均可为存储器系统30的一部分。根据本发明技术,“存储器装置”34可指代系统存储器26的在与外部处理器32的通信中涉及的组件。
外部处理器32与存储器装置34可由标准存储器接口44(例如,DDR、DDR2、DDR3、LPDDR或LPDDR2)可操作地耦合,此可允许外部处理器32与存储器装置34之间的数据传送,且可允许外部处理器32将命令发送(例如,传送)到存储器装置34。举例来说,在一个或一个以上实施例中,标准存储器接口44的类型可包含DDR、DDR2、DDR3、LPDDR或LPDDR2。此外,在一些实施例中,额外接口可经配置以允许在存储器装置34与外部处理器32之间传送数据以及命令(例如,请求、准予、指令等)。举例来说,外部处理器32与存储器装置34还可由控制接口46可操作地耦合,此可允许在外部处理器32与存储器装置34之间传送命令,包含将命令从存储器装置34传送到外部处理器32。
存储器装置34可包含计算引擎38及存储器阵列36。存储器阵列36可指代任何适合形式的存储,且可包含(举例来说)DRAM阵列或SDRAM阵列。存储器控制器32可存取存储器阵列36,且可能够写入待由计算引擎38执行的数据或指令。计算引擎38可包含一个或一个以上算术逻辑单元(ALU)。
计算引擎38可嵌入于存储器装置34上且能够存取存储器阵列36,包含从存储器阵列36检索信息并将信息存储于存储器阵列36中。在计算引擎38与存储器阵列36之间检索并存储信息的过程可涉及定序器40及计算引擎缓冲器块42。定序器40可定序由控制器32发送到存储器阵列36的指令并将从存储器阵列36检索的数据存储于存储器组件(例如,计算引擎缓冲器块42)中。一旦计算引擎38已执行所述指令,便可在将结果写入到存储器阵列36之前将其存储于计算引擎缓冲器块42中。此外,由于在计算引擎中一些指令可需要一个以上时钟循环,因此还可将中间结果存储于存储器装置34中的存储器组件中。举例来说,可将中间结果存储于(例如)计算引擎缓冲器块42、其它缓冲器或耦合到计算引擎38的寄存器等存储器组件中。在一些实施例中,计算引擎缓冲器块42可包含一个以上缓冲器层。举例来说,缓冲器块42可包含计算缓冲器(其可存储操作数)及指令缓冲器(其可存储指令)。缓冲器块42还可包含额外缓冲器(例如,数据缓冲器或简单缓冲器),其可提供较密集存储且可存储所执行指令的中间结果或最终结果。如本文中所使用,“缓冲器42”可指代计算引擎缓冲器块42中的任一层(例如,计算缓冲器、指令缓冲器、数据缓冲器等)。
在典型的存储器系统30中,外部处理器32可将数据及指令存储于存储器装置34上的存储器阵列36中。定序器40可存取存储器阵列36以检索所述指令且可将所述数据从存储器阵列36拷贝到缓冲器42。图3的框图图解说明具有多个ALU 50且可连接到缓冲器42的计算引擎38。在一个实施例中,缓冲器42可经配置以使得可将数据写入到缓冲器42中的存储元件并从所述存储元件读取所述数据以允许节省计算引擎38的计算循环的数目。此外,计算引擎38可经配置以使得每一ALU 50可一次对一个操作数进行运算。如将参考图6进一步论述,计算引擎38中的每一ALU 50可对一操作数进行运算且可并行地对多个操作数进行运算以增加计算引擎38的效率。
ALU 50可对任一大小的操作数进行运算,且取决于操作数的大小,可经由ALU 50经由一个或一个以上循环实施运算。ALU 50可包含多个1位(1b)ALU 52,所述1位(1b)ALU 52可为较大ALU 50的组件。如本文中所使用,包括一个或一个以上1bALU 52的较大ALU 50可称为“ALU块50”。在图4A及图4B的图示中图解说明计算引擎38的一部分,图4A及图4B描绘包含八个1b ALU 52的ALU块50的一个实施例。对8b ALU块50的图解说明已在图4A与图4B之间分开,且所标的字母(标记为N到V)对应于如何将每一半接合以形成8b ALU块50。虽然本发明使用8b ALU块50作为本发明技术的实例,但还可使用不同大小的ALU块50。根据本发明技术的ALU块50可由建构块(例如,加法器、1b ALU等)构成,此可使得ALU块50能够对任一大小的操作数实施逻辑或数学运算。
ALU块50可对可由输入多路复用器54输入的操作数进行运算。在一些实施例中,定序器40(图2)可从输入多路复用器64的五个不同输入选择待写入到每一1b ALU 52的数据,所述五个不同输入包含常数寄存器(标示为“const[0-7]”)、和寄存器(“SUM[0-7]”)、移位寄存器(“shiftReg[0-7]”)、阵列A(“A[0-7]”)及阵列B(“B[0-7]”)。阵列A及阵列B可从存储器阵列36的不同部分输入。在一些实施例中,所述存储器阵列可包含库A及库B,所述库可彼此连接、配置于计算引擎缓冲器块42周围或以其它方式配置于存储器装置34上。
对于一些运算来说,操作数可循环穿过一个或一个以上1b ALU 52一遍以上,且穿过1b ALU 52的一个循环的输出(其可为中间结果)可作为ALU块50中的另一1b ALU52的输入而进位输入。可取决于待对其进行运算的操作数的大小、运算类型及ALU块50的大小而在一个或一个以上循环中完成运算。对于多循环运算来说,可从一个循环穿过一个1b ALU 52将常数寄存器输入到另一1b ALU 52中,例如来自另一1b ALU 52的求和运算。此外,运算的中间结果还可经由和寄存器及移位寄存器输入而输入到输入多路复用器54。举例来说,在一个实施例中,中间结果可从1b ALU 52输出并存储于和寄存器或移位寄存器58中直到其被输入回到输入多路复用器54中。每一1b ALU 52的移位寄存器输入可从ALU块50中的另一1b ALU 52的进位输出输出进位输入。进位输入到每一移位寄存器输入中的中间结果可通过连接到每一1b ALU 52的移位单元56而从一个1b ALU 52移位到另一1b ALU 52。通过将每一循环的结果移位到ALU块50中的邻近1b ALU 52,一个ALU块50可经由一个或一个以上循环对一个操作数进行运算。
由于每一ALU块50可经配置以对一个操作数进行运算,因此计算缓冲器的ALU块50可通过各自对不同操作数实施相同运算来并行地处理操作数。在一个实施例中,可通过基于是否已满足条件而使得每一ALU能够实施运算来进一步改进处理性能。举例来说,ALU可能够接收条件指令并基于是否已满足所述条件指令的条件而实施某些条件式操作,例如执行指令流中的某些条件式指令。在一些实施例中,可期望计算引擎38在已满足条件的情况下对某些操作数实施运算,或者在尚未满足所述条件的情况下对不同操作数实施不同运算。虽然无论是否已满足所述条件,均可通过实施运算来实现最终结果,但一些运算可不相关且可占据缓冲器或存储器空间且减慢计算引擎38的处理。
基于条件实现选择性地实施运算的方法可改进处理性能以及最终结果或中间结果的质量。举例来说,计算引擎38可具有256个ALU块50。计算引擎38可接收待在将取决于操作数A是否大于操作数B而实施运算的情况下执行的指令,例如“如果(A>B),则B+5;否则B-5”。如果所述操作数为一个字节宽,则所述256个ALU块50中的每一者可比较是否A>B。由于所述256个ALU块50中的每一者可具有不同操作数A及操作数B,因此所述ALU块50中的每一者可实施B+5或B-5以跨越256次运算产生不同结果。因此,每一ALU块50可基于此指令而实施运算。
在一个实施例中,计算引擎38可通过启用掩蔽逻辑以使得触发一输入可掩蔽条件式操作(例如,“则”运算或“否则”运算)来选择性地控制待实施哪些运算。举例来说,如果已满足条件,则可掩蔽否则运算且可实施则运算。如果尚未满足条件,则可掩蔽则运算且可实施否则运算。参考回到图4A及图4B的计算引擎38的部分,每一ALU块50可连接到条件式掩蔽逻辑60。可在图5中更详细地看见条件式掩蔽逻辑60的一个实施例。条件式掩蔽逻辑60可称为条件式掩蔽单元或电路,其基于是否满足条件而掩蔽指令流中的某些运算。条件式掩蔽逻辑60的掩蔽可由定序器40(图2)控制,定序器40可启用条件式掩蔽逻辑60并触发输入66。举例来说,当启用条件式掩蔽逻辑60时,逻辑60的输出62可基于已如何触发输入66而掩蔽则运算或否则运算。
可以各种方式实施条件式掩蔽逻辑60。一种选择性地实施运算的方法可为线内过程100,如图6的流程图中所描绘。线内过程100可涉及具有位字段的指令,所述位字段指示所述指令是条件指令还是条件式指令(即,所述指令的执行基于已满足或尚未满足条件)。对线内过程100的解释可参考图2的存储器系统30中的组件以及图5的条件式掩蔽逻辑60。此外,所述解释还可参考如下文所提供的线内过程100中所使用的线内指令流的实例:
1.lessThan,2,3,1,0,0
2.add,2,4,0,1,0
3.and,3,4,0,1,0
4.multiply,SUM,2,0,1,0
5.sub,2,4,0,0,1
6.and,3,4,0,0,1
7.multiply,SUM,4,0,0,1
8.or,SUM,4,0,0,1
9.and,1,5,0,0,0
线内过程100可在定序器40接收到指令(框104)时开始(框102)。在上文实例中,每一指令可包含运算、操作数A的地址、操作数B的地址及对其是条件指令还是条件式指令的指示。所提供的指令流是可如何配置条件指令流或条件式指令流的一个实例。在其它实施例中,每一指令的配置可不相同。举例来说,并非为条件式的指令可仪具有界定操作数A地址及操作数B地址的位字段以及则及否则限定词,且可不具有条件式限定词。
在所提供的实例性流中,指令1可为条件指令,因为其包含指示其为条件指令的指示-例如,在此情形下,位字段(例如,条件字段)为“1”,且所述运算可确定缓冲器42的行2(操作数A)是否小于缓冲器42的行3(操作数B)。此外,在所提供的实例中,指令4可包含将在ALU块50的和寄存器中找到的数据(操作数A)乘以缓冲器42的行2(操作数B)的运算。如先前所论述,所述和寄存器可保持ALU块50中的前一循环的中间结果。通常,乘法可为多循环运算,且可使用来自ALU块50的和寄存器的中间结果。由于指令4并非条件指令,因此条件字段可为“0”。然而,指令4包含指示其为条件式指令的指示-在此情形下,则字段设定为“1”(而否则字段设定为“0”)。
指令可由在存储器装置34外部的处理器(例如,外部控制器32)发送到存储器装置34。一旦定序器40接收到条件指令,所述定序器便可通过将启用信号64设定为“1”来启用条件式掩蔽逻辑(框106)。定序器40还可将输入66设定为“0”。可基于是否已满足指令的条件而触发输入66,且可实施则运算或否则运算。接着,定序器40可确定是否已满足条件式命令中的条件(框108)。举例来说,如果已满足某一条件,则定序器40可使输入66保持为“0”,且ALU块50可响应于输入66的“0”状态而实施某些运算。如果尚未满足某一条件,则所述定序器还可将输入66触发为“1”,且ALU块50可响应于输入66的“1”状态而实施其它运算。
再次参考线内指令流的实例,如果定序器40确定计算缓冲器42的行2小于计算缓冲器42的行3,则定序器40可(例如)通过使输入66保持为低来将条件式掩蔽逻辑60的输出62驱动为高(框110)。由于逻辑60的输出62被驱动为高,因此ALU块50可实施则指令(框112),所述则指令为上文线2到线4中的指令。举例来说,ALU块50可将计算缓冲器42的行2(操作数A)与行4(操作数B)相加。
如果定序器40确定计算缓冲器42的行2大于行3,则可不满足第一指令的条件,且定序器40可将输入66触发为高(框114)。由于已触发输入66,因此ALU块50可实施否则陈述(框116),其在此实例中为线5到线8中的指令。举例来说,ALU块50可从计算缓冲器42的行2(操作数A)中减去行4(操作数B)。
一旦ALU块50已执行所有的则指令或所有的否则指令(取决于是否已满足条件),定序器便可清除掩蔽(框118)。如在所述实例中所见,定序器40可通过产生清除指令(例如,线9上所示的清除指令)来执行此,其中将可能以其它方式用以指示此指令是条件指令还是条件式指令的位字段全部设定为“0”。操作数地址的指令字段及位字段可为任意的。清除掩蔽可使得定序器40能够在接收到另一条件指令时再次针对所有ALU块50开始过程100。线内指令过程100可在已存储来自已完成指令的结果(框120)之后结束(框122)。举例来说,可将结果存储于计算缓冲器42中,或者可直接存储于存储器装置34的存储器阵列36中。
线内过程100的一个优点是可在一线内指令流中发送无限数目个条件式指令。所述指令可仅受每一条件的相关指令的数目的限制。本发明技术的实施例还包含其它条件式指令格式。举例来说,在另一实施例中,指令流可包含具有若干位字段的指令,所述若干位字段用以指示条件指令之后的指令中哪些指令是待在满足条件的情况下执行的条件式指令及哪些指令是待在不满足条件的情况下执行的条件式指令。在图7中的计数器过程150的流程图中图解说明此实施例的实例。对计数器过程150的解释可参考图2的存储器系统30中的组件以及图5的条件式掩蔽逻辑60。此外,所述解释还可参考以下指令流:
1.lessThan,1,3,2,1,2
2.add,0,0,0,1,2
3.sub,0,0,0,3,1
4.and,0,0,0,7,1
5.add,0,0,0,2,4
6.sub,0,0,0,1,7
7.and,0,0,0,4,2
此流中的指令可包含运算、对所述指令是否为条件指令的指示、对条件式指令的计数、操作数A的地址及操作数B的地址。如先前所论述,所提供的指令流为可如何配置指令流的一个实例。在其它实施例中,每一指令的配置可不相同。举例来说,仅条件指令(线1)可具有将指令界定为条件且界定所述指令流中的则运算及否则运算的位字段。其它命令可仅包含操作数A及操作数B的地址。
在所提供的实例中,指令1可为条件式指令,这是因为条件字段为“1”,且条件为缓冲器42的行1(操作数A)是否小于缓冲器42的行2(操作数B)。对则指令的计数可设定为3,且ALU块50可将所述三个指令执行为则指令(例如,如果满足条件则实施下三个指令)。对否则指令的计数可设定为2,且ALU块50可将条件指令之后的第四个及第五个指令实施为否则指令(例如,如果尚未满足条件则实施第四个及第五个操作)。
计数器过程150可在定序器40接收到条件指令(框154)时开始(框152)。所述条件指令可从在存储器装置34外部的处理器(例如,外部控制器32)发出。响应于接收到所述条件指令,定序器40可通过将条件式掩蔽逻辑启用信号64设定为“1”来启用条件式掩蔽逻辑(框156)。定序器40还可将输入66设定为“0”。可基于是否已满足所述条件指令中的条件而触发输入66,且可执行某些条件式指令。
定序器40可辨识所述流中的指令具有指示命令流中的则指令的数目以及否则指令的数目的位字段。为执行正确的指令,定序器40可追踪寄存器中的则指令以及否则指令的数目(框158)。举例来说,在一个实施例中,定序器40可设定条件式寄存器68来追踪所述流中的条件式指令,且设定则/否则寄存器70来追踪所述流中的则指令或否则指令的数目。定序器40还可在条件式掩蔽逻辑60中接通计数器72(框160)以计数存储于寄存器68及70中的数目。
接着,定序器40可确定是否已满足所述条件(框162)。参考上文先前所示的实例性指令流的实例,定序器40可确定行1(操作数A)小于行2(操作数B)。接着,定序器40可(例如)通过使输入66保持为低来致使条件式掩蔽逻辑60的输出为高(框164)。接着,ALU块50可执行所述流中的则指令(框166),而掩蔽否则指令。由于指示则指令计数的位字段为3,因此ALU块50可执行条件指令之后的前三个指令。举例来说,ALU块50可将计算缓冲器42的行1(操作数A)与计算缓冲器42的行2(操作数B)相加。如果定序器40确定行1不小于行2,则定序器40可将输入66触发为高(框168),且条件式掩蔽逻辑60可掩蔽则指令以使得ALU块50跳过则指令(条件指令之后的前三个指令,这是因为对“则”字段的计数被设定为三)以实施所述三个则指令之后的两个否则指令(框170)。举例来说,ALU块50可使计算缓冲器42的行2(操作数A)与计算缓冲器42的行4(操作数B)相加。
一旦ALU块50已实施所有的则运算或所有的否则运算(取决于是否已满足所述条件),定序器40便可清除对计算缓冲器42的所有ALU块50的掩蔽(框172)。如在所述实例中所见,指令7可以与关于先前实例所论述的清除指令的方式相同的方式清除掩蔽。计数器过程150可在已将来自已完成运算的结果存储于(例如)缓冲器42或存储器阵列36中(框174)之后结束(框176)。
虽然可易于对本发明做出各种修改及替代形式,但已在图式中以实例方式展示了特定实施例且在本文中详细描述了所述特定实施例。然而,应理解,本发明并不打算限于所揭示的特定形式。而是,本发明将涵盖属于如以上所附权利要求书所界定的本发明的精神及范围内的所有修改、等效物及替代形式。
Claims (28)
1.一种存储器装置,其包括:
定序器,其经配置以接收条件式指令;及
内部处理器,其经配置以仅在已满足条件时执行所述条件式指令。
2.根据权利要求1所述的存储器装置,其中所述定序器经配置以从在所述存储器装置外部的处理器接收所述条件式指令。
3.根据权利要求1所述的存储器装置,其中所述条件式指令包括则指令或否则指令中的一者。
4.根据权利要求3所述的存储器装置,其中所述内部处理器包括计算引擎,所述计算引擎包括多个算术逻辑单元ALU块,其中每一ALU块能够基于是否已满足所述条件而实施一个或一个以上则运算或者一个或一个以上否则运算。
5.根据权利要求4所述的存储器装置,其中每一ALU块能够在已满足所述条件时实施所述一个或一个以上则运算且跳过所述一个或一个以上否则运算。
6.根据权利要求4所述的存储器装置,其中每一ALU块能够在尚未满足所述条件时实施所述一个或一个以上否则运算且跳过所述一个或一个以上则运算。
7.根据权利要求1所述的存储器装置,其中每一ALU块耦合到经配置以基于是否已满足所述条件而掩蔽某些指令的条件式掩蔽逻辑。
8.根据权利要求7所述的存储器装置,其中所述定序器经配置以在接收到条件指令时启用所述条件式掩蔽逻辑。
9.根据权利要求7所述的存储器装置,其中所述定序器经配置以基于是否已满足所述条件而触发信号到所述条件式掩蔽逻辑。
10.根据权利要求4所述的存储器装置,其中每一ALU块耦合到经配置以基于是否已满足所述条件而掩蔽所述一个或一个以上则运算或者所述一个或一个以上否则运算的条件式掩蔽逻辑。
11.一种操作存储器装置的方法,其包括:
接收条件指令;
启用条件式掩蔽逻辑;
基于是否已满足所述条件指令的条件而将信号输入到所述条件式掩蔽逻辑;及
响应于输入到所述条件式掩蔽逻辑的所述信号而选择性地执行指令。
12.根据权利要求11所述的方法,其中从在所述存储器装置外部的处理器接收所述条件指令。
13.根据权利要求11所述的方法,其中将所述条件式掩蔽逻辑耦合到所述存储器装置的计算引擎中的算术逻辑单元ALU块。
14.根据权利要求11所述的方法,其进一步包括确定是否已满足所述条件,所述确定包括:
识别所述条件指令中的条件;
识别所述条件指令中的第一操作数及第二操作数;及
将所述第一操作数与所述第二操作数进行比较。
15.根据权利要求11所述的方法,其中输入所述信号包括响应于所述对是否已满足所述条件的确定而触发所述信号。
16.根据权利要求11所述的方法,其中选择性地执行指令包括在已满足所述条件时实施对应于则运算的操作且不实施对应于否则运算的操作。
17.根据权利要求11所述的方法,其中选择性地执行指令包括在尚未满足所述条件时实施对应于否则运算的操作且不实施对应于则运算的操作。
18.根据权利要求11所述的方法,其中所述条件指令为所接收指令流中的一者,其中所述流中的所述指令中的每一者包括多个位字段,其中所述多个位字段:
指示运算;
指示所述指令是条件指令还是条件式指令;及
识别用于所述运算的操作数。
19.根据权利要求18所述的方法,其中选择性地执行指令包括:
在满足所述条件时执行所述指令中的某些指令;及
在不满足所述条件时执行所述指令中的其它指令。
20.根据权利要求11所述的方法,其中所述条件指令为所接收指令流中的一者,其中所述流中的所述指令中的每一者包括多个位字段,其中所述多个位字段:
识别运算;及
识别用于所述运算的操作数。
21.根据权利要求20所述的方法,其中所述条件指令包含界定所述流中的第一条件式指令的数目及第二条件式指令的数目的多个位字段。
22.根据权利要求21所述的方法,其中所述存储器装置包括一个或一个以上ALU块,且其中每一ALU块包括用以计数第一条件式指令的所述数目且接着计数第二条件式指令的数目的计数器。
23.一种内部处理器,其包括:
多个算术逻辑单元ALU块,其中每一ALU块经配置以与所述多个ALU块中的其它ALU块并行地处理条件式操作;及
条件式掩蔽逻辑,其耦合到所述多个ALU块中的每一者,其中所述条件式掩蔽逻辑经配置以允许相应ALU在满足条件的情况下实施某些运算,或者在不满足所述条件的情况下实施其它运算。
24.根据权利要求23所述的内部处理器,其中所述内部处理器嵌入于包括存储器组件的存储器装置上或与所述存储器装置封装在一起。
25.根据权利要求24所述的内部处理器,其中所述内部处理器经配置以由所述存储器装置的定序器来控制。
26.根据权利要求23所述的内部处理器,其中所述多个ALU块中的每一ALU块包括1位单元,且其中一个1位单元的输出可为所述ALU块中的另一1位单元的输入。
27.根据权利要求23所述的内部处理器,其中耦合到所述内部处理器的定序器经配置以触发信号到所述条件式掩蔽逻辑。
28.根据权利要求27所述的内部处理器,其中沿第一方向触发的所述信号允许所述相应ALU实施所述某些运算,且其中沿第二方向触发的所述信号允许所述相应ALU实施所述其它运算。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/478,527 US9535876B2 (en) | 2009-06-04 | 2009-06-04 | Conditional operation in an internal processor of a memory device |
US12/478,527 | 2009-06-04 | ||
PCT/US2010/035454 WO2010141223A2 (en) | 2009-06-04 | 2010-05-19 | Conditional operation in an internal processor of a memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102460420A true CN102460420A (zh) | 2012-05-16 |
CN102460420B CN102460420B (zh) | 2015-07-15 |
Family
ID=42735465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080031093.4A Active CN102460420B (zh) | 2009-06-04 | 2010-05-19 | 存储器装置的内部处理器中的条件式操作 |
Country Status (6)
Country | Link |
---|---|
US (3) | US9535876B2 (zh) |
EP (1) | EP2438529B1 (zh) |
KR (1) | KR101705926B1 (zh) |
CN (1) | CN102460420B (zh) |
TW (1) | TWI453758B (zh) |
WO (1) | WO2010141223A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106856100A (zh) * | 2015-12-09 | 2017-06-16 | 爱思开海力士有限公司 | 半导体器件以及包括其的半导体系统 |
CN110537173A (zh) * | 2017-04-21 | 2019-12-03 | 美光科技公司 | 用以切换可配置逻辑单元的设备及方法 |
CN112379930A (zh) * | 2015-01-07 | 2021-02-19 | 美光科技公司 | 产生并执行控制流 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8380916B2 (en) | 2009-06-04 | 2013-02-19 | Micron Technology, Inc. | Control of page access in memory |
US8234460B2 (en) | 2009-06-04 | 2012-07-31 | Micron Technology, Inc. | Communication between internal and external processors |
US8521958B2 (en) | 2009-06-04 | 2013-08-27 | Micron Technology, Inc. | Internal processor buffer |
US9535876B2 (en) * | 2009-06-04 | 2017-01-03 | Micron Technology, Inc. | Conditional operation in an internal processor of a memory device |
US8719516B2 (en) * | 2009-10-21 | 2014-05-06 | Micron Technology, Inc. | Memory having internal processors and methods of controlling memory access |
US9477636B2 (en) * | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US20170365237A1 (en) * | 2010-06-17 | 2017-12-21 | Thincl, Inc. | Processing a Plurality of Threads of a Single Instruction Multiple Data Group |
US8856482B2 (en) * | 2011-03-11 | 2014-10-07 | Micron Technology, Inc. | Systems, devices, memory controllers, and methods for memory initialization |
WO2013101560A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Programmable predication logic in command streamer instruction execution |
GB2530261B (en) * | 2014-09-16 | 2016-08-03 | Ibm | Memory and processor hierarchy to improve power efficiency |
KR102548591B1 (ko) | 2016-05-30 | 2023-06-29 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
GB2553102B (en) * | 2016-08-19 | 2020-05-20 | Advanced Risc Mach Ltd | A memory unit and method of operation of a memory unit to handle operation requests |
US11157213B2 (en) | 2018-10-12 | 2021-10-26 | Micron Technology, Inc. | Parallel memory access and computation in memory devices |
US20200117449A1 (en) * | 2018-10-12 | 2020-04-16 | Micron Technology, Inc. | Accelerated Access to Computations Results Generated from Data Stored in Memory Devices |
US10461076B1 (en) | 2018-10-24 | 2019-10-29 | Micron Technology, Inc. | 3D stacked integrated circuits having functional blocks configured to accelerate artificial neural network (ANN) computation |
DE102020105628A1 (de) | 2019-03-11 | 2020-09-17 | Samsung Electronics Co., Ltd. | Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung |
US11487699B2 (en) * | 2019-06-04 | 2022-11-01 | Micron Technology, Inc. | Processing of universal number bit strings accumulated in memory array periphery |
CN110990060B (zh) * | 2019-12-06 | 2022-03-22 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
KR20210093521A (ko) | 2020-01-20 | 2021-07-28 | 삼성전자주식회사 | 고대역폭 메모리 및 이를 포함하는 시스템 |
KR20210154277A (ko) | 2020-06-11 | 2021-12-21 | 삼성전자주식회사 | 메모리 모듈 및 그의 동작 방법 |
US12067465B2 (en) * | 2020-12-17 | 2024-08-20 | SiMa Technologies, Inc. | Instruction streaming for a machine learning accelerator |
US20230130969A1 (en) * | 2021-10-27 | 2023-04-27 | Advanced Micro Devices, Inc. | Providing Data from Portions of a Memory to Processors in Memory (PIMs) in an Electronic Device |
US20240103860A1 (en) * | 2022-09-26 | 2024-03-28 | Advanced Micro Devices, Inc. | Predicates for Processing-in-Memory |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5528550A (en) * | 1993-05-28 | 1996-06-18 | Texas Instruments Incorporated | Apparatus, systems and methods for implementing memory embedded search arithmetic logic unit |
US6970988B1 (en) * | 2001-07-19 | 2005-11-29 | Chung Shine C | Algorithm mapping, specialized instructions and architecture features for smart memory computing |
CN101379481A (zh) * | 2006-08-23 | 2009-03-04 | 日本电气株式会社 | 处理元件、混合模式并行处理器系统、处理元件方法、混合模式并行处理器方法、处理元件程序、以及混合模式并行处理器程序 |
CN101395578A (zh) * | 2006-02-03 | 2009-03-25 | 拉塞尔·H·菲什三世 | 线程优化的多处理器架构 |
US20090119437A1 (en) * | 2005-06-23 | 2009-05-07 | Hilscher Gesellschaft Für Syatemautomation Mbh | Method for Data Communication of Bus Users in an Open Automation System |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991874A (en) * | 1996-06-06 | 1999-11-23 | Intel Corporation | Conditional move using a compare instruction generating a condition field |
TW530262B (en) * | 1999-02-08 | 2003-05-01 | Matsushita Electric Ind Co Ltd | Control method for procedure execution |
GB2419006B (en) * | 2002-04-22 | 2006-06-07 | Micron Technology Inc | Providing a register file memory with local addressing in a SIMD parallel processor |
US9535876B2 (en) * | 2009-06-04 | 2017-01-03 | Micron Technology, Inc. | Conditional operation in an internal processor of a memory device |
US8521958B2 (en) | 2009-06-04 | 2013-08-27 | Micron Technology, Inc. | Internal processor buffer |
US8380916B2 (en) | 2009-06-04 | 2013-02-19 | Micron Technology, Inc. | Control of page access in memory |
US8234460B2 (en) | 2009-06-04 | 2012-07-31 | Micron Technology, Inc. | Communication between internal and external processors |
US9684632B2 (en) | 2009-06-04 | 2017-06-20 | Micron Technology, Inc. | Parallel processing and internal processors |
US9606807B2 (en) | 2009-06-04 | 2017-03-28 | Micron Technology, Inc. | Direct communication with a processor internal to a memory device |
US9477636B2 (en) | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US8719516B2 (en) | 2009-10-21 | 2014-05-06 | Micron Technology, Inc. | Memory having internal processors and methods of controlling memory access |
-
2009
- 2009-06-04 US US12/478,527 patent/US9535876B2/en active Active
-
2010
- 2010-05-19 EP EP10726362.6A patent/EP2438529B1/en active Active
- 2010-05-19 WO PCT/US2010/035454 patent/WO2010141223A2/en active Application Filing
- 2010-05-19 CN CN201080031093.4A patent/CN102460420B/zh active Active
- 2010-05-19 KR KR1020127000150A patent/KR101705926B1/ko active IP Right Grant
- 2010-06-04 TW TW099118246A patent/TWI453758B/zh active
-
2016
- 2016-12-30 US US15/395,602 patent/US10394753B2/en active Active
-
2019
- 2019-08-20 US US16/545,907 patent/US10970247B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5528550A (en) * | 1993-05-28 | 1996-06-18 | Texas Instruments Incorporated | Apparatus, systems and methods for implementing memory embedded search arithmetic logic unit |
US6970988B1 (en) * | 2001-07-19 | 2005-11-29 | Chung Shine C | Algorithm mapping, specialized instructions and architecture features for smart memory computing |
US20090119437A1 (en) * | 2005-06-23 | 2009-05-07 | Hilscher Gesellschaft Für Syatemautomation Mbh | Method for Data Communication of Bus Users in an Open Automation System |
CN101395578A (zh) * | 2006-02-03 | 2009-03-25 | 拉塞尔·H·菲什三世 | 线程优化的多处理器架构 |
CN101379481A (zh) * | 2006-08-23 | 2009-03-04 | 日本电气株式会社 | 处理元件、混合模式并行处理器系统、处理元件方法、混合模式并行处理器方法、处理元件程序、以及混合模式并行处理器程序 |
Non-Patent Citations (1)
Title |
---|
JAY B.BROCKMAN等: "《Proceedings of the 13th international conference on supercomputing》", 21 December 1999, article "Microservers: A new memory semantics for massively parallel computing", pages: 454-463 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379930A (zh) * | 2015-01-07 | 2021-02-19 | 美光科技公司 | 产生并执行控制流 |
CN106856100A (zh) * | 2015-12-09 | 2017-06-16 | 爱思开海力士有限公司 | 半导体器件以及包括其的半导体系统 |
CN106856100B (zh) * | 2015-12-09 | 2020-11-20 | 爱思开海力士有限公司 | 半导体器件以及包括其的半导体系统 |
CN110537173A (zh) * | 2017-04-21 | 2019-12-03 | 美光科技公司 | 用以切换可配置逻辑单元的设备及方法 |
CN110537173B (zh) * | 2017-04-21 | 2024-03-15 | 美光科技公司 | 用以切换可配置逻辑单元的设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
US10970247B2 (en) | 2021-04-06 |
US20100313000A1 (en) | 2010-12-09 |
CN102460420B (zh) | 2015-07-15 |
WO2010141223A2 (en) | 2010-12-09 |
US9535876B2 (en) | 2017-01-03 |
WO2010141223A3 (en) | 2011-01-20 |
TW201106372A (en) | 2011-02-16 |
EP2438529A2 (en) | 2012-04-11 |
TWI453758B (zh) | 2014-09-21 |
KR20120035177A (ko) | 2012-04-13 |
US20170168817A1 (en) | 2017-06-15 |
KR101705926B1 (ko) | 2017-02-10 |
EP2438529B1 (en) | 2016-12-28 |
US20190370221A1 (en) | 2019-12-05 |
US10394753B2 (en) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102460420A (zh) | 存储器装置的内部处理器中的条件式操作 | |
US11640316B2 (en) | Compiling and scheduling transactions in neural network processor | |
US11989640B2 (en) | Scalable neural network processing engine | |
US11740932B2 (en) | Systems and methods for task switching in neural network processor | |
US9606807B2 (en) | Direct communication with a processor internal to a memory device | |
JP2023153160A (ja) | ニューラルネットワークプロセッサにおいてタスクを割り当てるためのシステム及び方法 | |
CN102667752A (zh) | 具有内部处理器的存储器及存储器中的数据通信方法 | |
CN102460406A (zh) | 内部处理器与外部处理器之间的通信 | |
CN102067087A (zh) | 环路控制系统及方法 | |
US11783174B2 (en) | Splitting of input data for processing in neural network processor | |
CN106575220B (zh) | 多个经集群极长指令字处理核心 | |
US20170046164A1 (en) | High performance recovery from misspeculation of load latency | |
US20160321079A1 (en) | System and method to clear and rebuild dependencies | |
US11513799B2 (en) | Chained buffers in neural network processor | |
KR20170052432A (ko) | 제로값을 피연산자로 갖는 연산자에 대한 연산을 스킵하는 연산 방법 및 연산 장치 | |
US8843730B2 (en) | Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination | |
US20220237438A1 (en) | Task context switch for neural processor circuit | |
US20220237439A1 (en) | Branching operation for neural processor circuit | |
US20180046463A1 (en) | System and method for load and store queue allocations at address generation time | |
WO2018057115A1 (en) | Data storage at contiguous memory addresses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |