CN113961170B - 存储器中的算术操作 - Google Patents
存储器中的算术操作 Download PDFInfo
- Publication number
- CN113961170B CN113961170B CN202110818472.8A CN202110818472A CN113961170B CN 113961170 B CN113961170 B CN 113961170B CN 202110818472 A CN202110818472 A CN 202110818472A CN 113961170 B CN113961170 B CN 113961170B
- Authority
- CN
- China
- Prior art keywords
- bit
- row
- result
- memory array
- value
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
Abstract
描述与存储器中的算术操作相关的系统、设备和方法。可使用位串并在存储器阵列内执行所述算术操作,无需将所述位串传送到所述存储器阵列外部的电路系统。举例来说,可包含感测放大器和计算组件的感测电路系统可耦合到存储器阵列。控制器可耦合到所述感测电路系统并且可被配置成致使一或多个位串从所述存储器阵列传送到所述感测电路系统。除了所述算术操作之外,所述感测电路系统还可使用所述一或多个位串执行逻辑操作。
Description
技术领域
本公开大体上涉及半导体存储器和方法,并且更具体地说,涉及用于存储器中的算术操作的设备、系统和方法。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部、半导体、集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维持其数据(例如主机数据、错误数据等等),并包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)和闸流体随机存取存储器(TRAM)等等。非易失性存储器可通过在未被供电时保存所存储数据来提供永久数据,且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)和磁阻随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等等。
存储器装置可耦接到主机(例如,主机计算装置)以存储数据、命令和/或指令以在计算机或电子系统操作时供主机使用。举例来说,数据、命令和/或指令可在计算或其它电子系统的操作期间在主机与存储器装置之间传送。
发明内容
本公开的一个实施例提供一种用于存储器中的算术操作的方法,其包括:将第一位串写入到存储器阵列的与第一存取线耦合的第一存储器单元群组和与第二存取线耦合的第二存储器单元群组,以使用第一位串和第二位串作为操作数在所述存储器阵列内执行算术操作;将对应于与所述第二位串相关联的数值的初始值存储于计数器内,其中根据通用数格式或位置格式格式化所述第一位串和所述第二位串;和对于数个加法操作中的每一个,通过以下操作执行所述数个加法操作直到所述计数器达到特定值为止:使用存储于所述第一存储器单元群组中的所述第一位串作为第一操作数;或使用存储于所述第二存储器单元群组中的位串或存储于所述存储器阵列的耦合到第三存取线的第三存储器单元群组中的位串作为用于所述数个加法操作中的每一个的第二操作数;和在所述数个加法操作中的每一个之后,将所述数个加法操作中的前一加法操作的结果写入到所述第二存储器单元群组或所述第三存储器单元群组,所述第二存储器单元群组或所述第三存储器单元群组的对应位串不用作所述第二操作数;其中当所述计数器达到所述特定值时,存储于所述第二存储器单元群组或所述第三存储器单元群组中的所述数个加法操作的结果对应于所述算术操作的结果。
本公开的另一实施例提供一种用于存储器中的算术操作的设备,其包括:感测电路系统,其包括耦合到存储器阵列的感测放大器和计算组件,其中具有与其相关联的第一数值的第一位串和具有与其相关联的第二数值的第二位串存储于所述存储器阵列的相应第一行和第二行中;计数器,其以通信方式耦合到所述感测电路系统和所述存储器阵列;和控制电路系统,其耦合到所述计数器、所述感测电路系统和所述存储器阵列,其中所述控制电路系统被配置成:将初始值存储于所述计数器内;和致使所述感测电路系统至少部分地基于所述计数器所存储的所述值而使用所述第一位串、所述第二位串或第三位串或其任何组合执行算术操作的数次重复,其中对于所述数次重复中的每一个,所述感测电路系统被配置成:通过将所述第二数值和第三数值中的较大数值与所述第一数值相加来执行加法操作,其中所述第三位串具有与其相关联的所述第三数值并且存储于所述存储器阵列的第三行中;和将所述加法操作的结果存储于所述存储器阵列的所述第二行或所述第三行中,所述第二行或所述第三行的对应位串不用作前一加法操作的操作数;其中:由于以所述第一数值、所述第二数值或所述第三数值或其任何组合的操作数执行了所述数次重复而执行乘法操作;且存储于所述第二行或所述第三行上的所述数次重复的结果对应于所述乘法操作的结果。
本公开的又一实施例提供一种用于存储器中的算术操作的方法,其包括:将相应位串中的每一个转换成数个各自对应于由所述相应位串指示的数值中的相应数值的分子或分母的位串以使用所述数值的操作数执行乘法操作;将所述数个位串中对应于所述操作数的所述分子中的一个的第一位串写入到存储器阵列的第一行和第二行;响应于写入所述第一位串而更新计数器的值;和通过以下操作来执行数个第一加法操作直到所述计数器的所述值达到特定值为止:使用存储于所述第一行中的所述第一位串作为第一操作数;使用存储于所述第二行中的位串或存储于所述存储器阵列的第三行中的位串中的具有较大对应数值的那个位串作为第二操作数;和在所述数个第一加法操作中的每一个之后,将所述数个第一加法操作中的相应第一加法操作的结果替代地写入于所述存储器阵列的所述第二行或所述第三行中;其中所述乘法操作的第一部分的结果存储于所述第二行或所述第三行中具有较大对应数值的那个行中。
本公开的再一实施例提供一种用于存储器中的算术操作的系统,其包括:逻辑电路系统,其耦合到存储器阵列;计数器,其耦合到所述逻辑电路系统和所述存储器阵列;和控制电路系统,其耦合到所述计数器、所述逻辑电路系统和所述存储器阵列,其中作为调用根据通用数或位置格式格式化的多个位串执行乘法操作的部分,所述控制电路系统被配置成进行以下操作:将所述计数器初始化为具有第一计数器值;将第一位串和第二位串分别写入到所述存储器阵列的第一行和所述存储器阵列的第二行;响应于写入所述第一位串和所述第二位串,使所述第一计数器值递减到第二计数器值;致使使用所述第一位串和所述第二位串作为操作数执行第一加法操作,其中作为所述第一加法操作的所述执行的部分,所述控制电路系统将进行以下操作:响应于所述第一加法操作完成而使所述计数器递减;和将所述第一加法操作的结果写入到所述存储器阵列的第三行;致使使用所述第一位串和存储于所述存储器阵列的所述第三行中的所述第一加法操作的所述结果作为操作数执行第二加法操作,其中作为执行所述第二加法操作的部分,所述控制电路系统将进行以下操作:响应于所述第二加法操作完成而使所述计数器递减;和将所述第二加法操作的结果写入到所述存储器阵列的所述第二行;确定所述计数器已递减到指示所述乘法操作完成的值;响应于确定存储于所述存储器阵列的所述第二行中的所述加法操作的所述结果与存储于所述第三行中的所述加法操作的所述结果相比具有与其对应的较大数值,将存储于所述第二行中的所述加法操作的所述结果写入到所述存储器阵列外部的电路系统;和响应于确定存储于所述存储器阵列的所述第三行中的所述加法操作的所述结果与存储于所述第二行中的所述加法操作的所述结果相比具有与其对应的较大数值,将存储于所述第三行中的所述加法操作的所述结果写入到所述存储器阵列外部的所述电路系统,其中在将存储于所述第二行中的所述加法操作的所述结果或存储于所述第三行中的所述加法操作的所述结果写入到所述阵列外部的所述电路系统之前,所述逻辑电路系统被配置成执行将存储于所述第二行中的所述加法操作的所述结果或存储于所述第三行中的所述加法操作的所述结果从所述通用数或位置格式转换成IEEE 754浮点格式或定点二进制格式的操作。
附图说明
图1A是根据本公开的数个实施例的呈包含主机和存储器装置的设备形式的功能框图。
图1B是根据本公开的数个实施例的呈包含存储器装置的电子系统形式的设备的框图。
图2A是根据本公开的数个实施例的呈包含含有主机和存储器装置的设备的计算系统形式的功能框图。
图2B是根据本公开的数个实施例的呈包含主机、存储器装置、专用集成电路和现场可编程门阵列的计算系统形式的另一功能框图。
图3是具有es指数位的n位位置(posit)的实例。
图4A是3位位置的正值的实例。
图4B是使用两个指数位的位置构造的实例。
图5是根据本公开的数个实施例的表示实例算术操作的流程图。
图6是说明根据本公开的数个实施例的包含感测电路系统的存储器阵列的一部分的示意图。
图7是根据本公开的数个实施例的表示用于存储器中的算术操作的实例方法的流程图。
图8是根据本公开的数个实施例的表示用于存储器中的算术操作的实例方法的流程图。
具体实施方式
描述与存储器中的算术操作相关的系统、设备和方法。可使用位串并在存储器阵列内执行算术操作,无需将位串传送到存储器阵列外部的电路系统。举例来说,可包含感测放大器和计算组件的感测电路系统可耦合到存储器阵列。控制器可耦合到感测电路系统并且可被配置成致使一或多个位串从存储器阵列传送到感测电路系统。除了算术操作之外,感测电路系统还可使用一或多个位串执行逻辑操作。
在先前方法中,数据(例如,算术操作的操作数)可从阵列和感测电路系统(例如,经由包括输入/输出(I/O)线的总线)传送到可供例如处理器、微处理器和/或计算引擎的处理资源使用的数个寄存器,可包含ALU电路系统和/或其它被配置成执行适当的操作(例如,算术操作和/或逻辑操作)的功能单元电路系统。经由总线将数据从存储器传送到寄存器/从寄存器传送到存储器可涉及增加电路系统的复杂性和/或大小、显著电力消耗,以及/或需求执行操作的大量时间。因此,涉及数据传送出芯片(例如,阵列)和/或需要大量时间要求的操作的执行对于处理和/或时间密集型操作(例如,神经网络操作)来说可能不为所要的。
相比之下,与先前方法相比,本公开的数个实施例可提供在执行数个算术操作(例如,乘法操作)时涉及的计算数目和时间减小。可减小计算和时间的原因是正在用于操作的数据无需传送出芯片(例如,无需经由例如数据总线、地址总线、控制总线等总线传送数据)且/或可并行(例如,同步)执行数个算术操作。
在本公开的以下详细描述中,参考形成本公开的部分的附图,且图中通过图解方式展示可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使得所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例,且可在不脱离本公开的范围的情况下进行工艺、电气和结构改变。
如本文所使用,如“N”、“M”、“X”和“Y”等特定地关于图式中的附图标号的指定符指示可包含数个如此指定的特定特征。还应理解本文所使用的术语仅出于描述具体实施例的目的,并且并不打算作为限制。如本文中所使用,除非上下文另外明确规定,否则单数形式“一”和“所述”可包含单数个指示物和复数个指示物两者。另外,“多个”、“至少一个”和“一或多个”(例如,多个存储器库)可指一或多个存储器库,而“多个”意在指代超过一个此类事物。
此外,贯穿本申请案以许可的意义(即,有可能、能够),而非以强制性的意义(即,必须)使用单词“可能”和“可”。术语“包含”和其派生词指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意指物理上直接或间接连接或存取及移动(传输)命令和/或数据。视上下文而定,术语“位串”、“数据”和“数据值”在本文中可互换地使用且可具有相同含义。另外,视上下文而定,术语“位集”、“位子集”和“部分”(在位串的位的一部分的情形下)在本文中可互换使用且可具有相同含义。
本文中的图式遵循编号定则,其中第一的一或多个数字对应于图式编号,且剩余的数字标识图式中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,120可表示图1中的元件“20”,且相似元件可在图2中表示为220。通常在本文中可用单个元件符号指代多个类似元件或组件或元件或组件群组。举例来说,多个参考元件431-1、431-2、……、431-3可总称为431。如将了解,可添加、交换和/或去除本文中的各种实施例中示出的元件,从而提供本公开的数个额外实施例。另外,图式中提供的元件的比例和/或相对尺度意图说明本公开的某些实施例,且不应被视作限制性意义。
图1A是根据本公开的数个实施例的呈包含含有主机102和存储器装置104的设备的计算系统100形式的功能框图。如本文所使用,“设备”可指但不限于多种结构或结构的组合中的任何一种,例如,电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。存储器装置104可包含一或多个存储器模块(例如,单列直插式存储器模块、双列直插式存储器模块等)。存储器装置104可包含易失性存储器和/或非易失性存储器。在数个实施例中,存储器装置104可以包含多芯片装置。多芯片装置可包含数个不同的存储器类型和/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。如图1所示,设备100可包含控制电路系统120(其可包含逻辑电路系统122和存储器资源124)、存储器阵列130和感测电路系统150(例如,感测(SENSE)150)。另外,组件(例如,主机102、控制电路系统120、逻辑电路系统122、存储器资源124、存储器阵列130和/或感测电路系统150)中的每一个可在本文中单独地被称作“设备”。控制电路系统120可在本文中被称为“处理装置”或“处理单元”。
存储器装置104可以提供用于计算系统100的主存储器或可在整个计算系统100中用作额外存储器或存储装置。存储器装置104可包含一或多个存储器阵列130(例如,存储器单元阵列),所述存储器阵列可包含易失性和/或非易失性存储器单元。举例来说,存储器阵列130可以是具有NAND架构的快闪阵列。实施例不限于特定类型的存储器装置。举例来说,存储器装置104可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM和快闪存储器等等。
在存储器装置104包含非易失性存储器的实施例中,存储器装置104可包含快闪存储器装置,如NAND或NOR快闪存储器装置。然而,实施例不限于此,且存储器装置104可包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM)、例如电阻可变(例如,3-D交叉点(3D XP)存储器装置)的“新兴”存储器装置、包含自选存储器(SSM)单元阵列的存储器装置等,或其组合。电阻可变存储器装置可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来进行位存储。另外,相比于多个基于快闪的存储器,电阻可变非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。相比于基于快闪的存储器和电阻可变存储器,自选存储器单元可包含具有充当存储器单元的开关和存储元件两者的单个硫族化物材料的存储器单元。
如图1中所说明,主机102可耦合到存储器装置104。在数个实施例中,存储器装置104可经由一或多个信道(例如,信道103)耦合到主机102。在图1中,存储器装置104经由信道103耦合到主机102且存储器装置104的加速电路系统120经由信道107耦合到存储器阵列130。主机102可为主机系统,例如个人手提式计算机、台式计算机、数码相机、智能电话、存储卡读卡器和/或具物联网(IoT)功能的装置,以及各种其它类型的主机。
主机102可包含系统主板和/或背板且可包含存储器存取装置,例如处理器(或处理装置)。所属领域的一般技术人员将理解,“处理器”可以是一或多个处理器,如平行处理系统、多个协处理器等。系统100可包含单独的集成电路或主机102、存储器装置104两者,且存储器阵列130可在同一集成电路上。举例来说,系统100可以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。虽然图1中示出的实例说明具有冯·诺依曼(Von Neumann)架构的系统,但本公开的实施例可实施于非冯·诺依曼架构中,所述非冯·诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
本文中在图2中更详细地示出的存储器装置104可包含控制电路系统120,其可包含逻辑电路系统122和存储器资源124。逻辑电路系统122可在本文中以集成电路的形式提供,所述集成电路例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、精简指令集计算装置(RISC)、高级RISC机器、芯片上系统,或其它被配置成执行更详细地描述的操作的硬件和/或电路系统的组合。在一些实施例中,逻辑电路系统122可包含一或多个处理器(例如,处理装置、处理单元等)。
控制电路系统120可包含存储器资源124,其可以通信方式耦合到逻辑电路系统122。存储器资源124可包含易失性存储器资源、非易失性存储器资源,或易失性与非易失性存储器资源的组合。在一些实施例中,存储器资源可以是随机存取存储器(RAM),例如静态随机存取存储器(SRAM)。然而,实施例不限于此,且存储器资源可为高速缓冲存储器、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM、例如电阻可变存储器资源、相变存储器装置等“新兴”存储器装置、包含自选存储器单元阵列的存储器装置等,或其组合。
存储器资源124可包含状态机132,其被配置成控制例如逻辑电路系统122和/或感测电路系统150等各种组件当中的数据(例如,位串)移动。举例来说,状态机132可被配置成将存储于感测电路系统150(例如,的寄存器)中的位串写入(例如,移动)到存储器资源124(例如,并且写入到逻辑电路系统122),使得逻辑电路系统122可使用写入到存储器资源124的位串进一步执行操作。状态机132可进一步被配置成将从逻辑电路系统122接收的结果的位串(例如,操作结果)写入(例如,复制)到感测电路系统150(例如,并且写入到存储器阵列130)。如本文所描述,可(例如,通过逻辑电路系统122)使用存储于存储器资源124中的位串执行的操作可包含将位串格式转换成不同格式的转换操作。
位串可根据例如“浮点”格式(例如,IEEE 754浮点格式)和/或“通用数”(unum)格式等各种格式存储在存储器资源124、存储器阵列130和/或逻辑电路系统122内。根据浮点标准,就三个整数集或位集(一位集称作“基数”,一位集称作“指数”,且一位集称作“尾数”(或有效数字))而言表示位串(例如,可表示数目的位串),例如二进制数串。整数集或位集定义其中存储二进制数串的格式,为简单起见,可在本文中称为“数值格式”或“格式”。例如,定义浮点位串的上述位的三个整数集(例如,基数、指数和尾数)可称为格式(例如,第一格式)。如下文更详细地描述,位置位串可包含四个整数集或位集(例如,符号、体系、指数和尾数),其也可称为“数值格式”或“格式”(例如,第二格式)。另外,根据浮点标准,两种无限值(例如,+∞和-∞)和/或两个种类的“非数字值(not-a-number;NaN)”(安静NaN和发信NaN)可包含于比特串中。
浮点的替代格式称作“通用数字”(unum)格式。存在可称为“位置”和/或“有效”的若干形式的unum格式-I型unum、II型unum和III型unum。I型unum是在尾数的结尾处使用“ubit”指示实数是否是准确浮点数或是否介于相邻浮点数之间的区间中的IEEE754标准浮点格式的超集。I型unum中的符号、指数和尾数位从IEEE 754浮点格式获取其定义,然而,I型unum的指数和尾数字段的长度可从单个位显著地改变到最大用户可定义长度。,通过从IEEE 754标准浮点格式获取符号、指数和尾数位,I型unum可类似于浮点数表现,然而,在I型unum的指数和分数位中呈现的可变位长度相较于浮点数可需要额外管理。
II型unum大体上与浮点数不相容,然而,II型unum可允许基于投影实数的清洁数学设计。II型unum可包含n位且可在“u格”方面加以描述,其中圆形投射的象限填充有2n-3-1个实数的有序集。II型unum的值可围绕将圆形投影等分的轴线反射,使得正值位于圆形投影的右上象限中,而其负对应值位于圆形投影的左上象限中。表示II型unum的圆形投影的下半部可包含位于圆形投影的上半部中的值的倒数。II型unum对大多数操作来说大体上依赖于查询表。因此,在一些情况下,查询表的大小可限制II型unum的效果。然而,与在一些条件下的浮点数相比,II型unum可提供改进的计算功能。
III型unum格式在本文中称为“posit格式”或为简单起见称为“位置”。如本文中所使用,存储于unum(例如,III型unum)或位置格式中的位串可包含若干位子集或“位子集”。举例来说,通用数字或位置位串可包含称作“符号”或“符号部分”的位子集、称作“底数”或“底数部分”的位子集、称作“指数”或“指数部分”的位子集和称作“尾数”或“尾数部分”(或有效数字)的位子集。如本文中所使用,位子集意图指代包含于位串中的位子集。本文中结合图3和4A-4B更详细地描述位的符号、底数、指数和尾数集的实例。
可使用各种格式的位串执行本文所描述的操作(例如,算术操作)。举例来说,如果期望第一格式(例如,浮点格式或定点二进制格式),那么可以第一格式执行操作,而如果与第一格式相比更期望第二格式(例如,位置格式或unum格式),那么还可以第二格式执行操作。为以所要格式选择性地执行操作,计算系统100可包含被配置成转换位串格式的电路系统,例如位于逻辑电路系统122内的转换电路系统112。
举例来说,逻辑电路系统122可致使存储于存储器资源124中的位串传送到逻辑电路系统122并且对传送的位串执行转换操作以在各种格式(例如第一格式和第二格式)之间转换位串。举例来说,逻辑电路系统122可使用转换电路系统122使位置或通用数格式的位串转换成浮点格式(例如,IEEE 754浮点格式)或定点二进制格式的位串,不过实施例不限于此。
如本文中所使用,存储于unum(例如,III型unum)或位置格式中的位串可包含若干位子集或“位子集”。举例来说,通用数字或位置位串可包含称作“符号”或“符号部分”的位子集、称作“底数”或“底数部分”的位子集、称作“指数”或“指数部分”的位子集和称作“尾数”或“尾数部分”(或有效数字)的位子集。如本文中所使用,位子集意图指代包含于位串中的位子集。本文中结合图3和4A-4B更详细地描述位的符号、底数、指数和尾数集的实例。
逻辑电路系统122可进一步被配置成对传送的位串执行各种其它操作。举例来说,操作可包含使用位置位串的例如加法、减法、乘法、除法、融合乘法加法、乘累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、反快速傅立叶变换、S型(sigmoid)函数、卷积、平方根、指数和/或对数操作的算术操作,和/或例如AND、OR、XOR、NOT等递归逻辑操作,以及例如正弦、余弦、切线等三角操作。如将了解,前述的操作列表并不意欲是穷尽性的,前述的操作列表也不意欲是限制性的,且加速电路系统122可被配置成执行(或使执行)其它算术和/或逻辑操作。举例来说,逻辑电路系统122包含除法电路系统110,其被配置成使用存储于存储器资源124中的位串执行除法操作。除法操作可与各种其它操作一起执行。举例来说,为了执行呈分数(例如,包含分子和分母)形式的那些操作数的乘法操作,可使用分子执行第一乘法操作并且可使用分母执行第二乘法操作。一旦获得第一和第二乘法操作的结果,便可使用逻辑电路系统110对结果进行除法操作(例如,第一乘法操作的结果除以第二乘法操作的结果),这可提供分数操作数的乘法的结果。
在对位串执行操作(例如,转换操作和/或除法操作)之后,逻辑电路系统122可将所得位串传送到存储器资源124。举例来说,以第一格式(例如,unum或位置格式)存储于存储器阵列130内的位串可在逻辑电路系统122(例如,使用除法电路系统110)转换成第二格式(例如,浮点格式或定点二进制格式),且经转换位串可根据第二格式传送到存储器资源124并且存储于存储器资源124中。存储器资源124可进一步使用状态机132将经转换位串传送到感测电路系统150,使得感测电路系统150可被配置成致使使用具有第二格式(例如,浮点格式或定点二进制格式)的位串执行算术操作或逻辑操作。然而,实施例不限于此。举例来说,可在主机102处转换位串的格式。在此实例中,逻辑电路系统122可将从存储器资源124和/或存储器阵列130接收的位串传送到在其中可转换位串的主机102并且从主机102接收返回的经转换位串(例如,使得经转换位串可进一步传送到存储器资源124和/或存储器阵列130)。
存储器装置104可另外包含以通信方式耦合到逻辑电路系统122的计数器114。逻辑电路系统122可与各种操作一起对计数器114执行计数器更新操作,包含将计数器114的值(例如,计数器值)初始化、递减和/或递增。举例来说,逻辑电路系统122可初始化计数器的值(例如,计数器值)并且通过使计数器值递减/递增(例如,通过将经更新计数器值与初始计数器值进行比较)保持跟踪已执行的算术操作的次数。虽然计数器114说明为位于控制电路系统120内,但实施例不限于此。举例来说,计数器114也可位于存储器阵列130、感测电路系统150和/或主机102内。
如图1所示,感测电路系统150耦合到存储器阵列130和控制电路系统120。感测电路系统150可包含一或多个感测放大器和一或多个计算组件,在本文中结合图6对其更详细地描述。感测电路系统150可提供用于存储器阵列130的额外存储空间并且可感测(例如,读取、存储高速缓存)存储器装置104中存在的数据值。在一些实施例中,感测电路系统150可位于存储器装置104的外围区域中。举例来说,感测电路系统150可位于存储器装置104的物理上不同于存储器阵列130的区域中。如本文中所描述,感测电路系统150可包含可被配置成存储数据值的感测放大器、锁存器、触发器等。在一些实施例中,感测电路系统150可以寄存器串联寄存器(例如,寄存器134)的形式提供并且可包含与存储器阵列130的行或列相同数量的存储方位(例如,感测放大器、锁存器等)。举例来说,如果存储器阵列130含有约16K行或列,那么感测电路系统150可包含约16K存储方位。因此,在一些实施例中,感测电路系统150可为被配置成保存多达16K数据值的寄存器,不过实施例不限于此,如本文中结合图1B、2A和6更详细描述。在一些实施例中,从存储器资源124接收的位串和/或在对存储在存储器阵列130内的位串执行操作期间获得的中间结果可最初存储于寄存器134中。
图1的实施例可包含为避免模糊本公开的实施例而未说明的额外电路。举例来说,存储器装置104可包含锁存通过I/O电路系统在I/O连接上提供的地址信号的地址电路系统。地址信号可由行解码器和列解码器接收和解码以存取存储器装置104和/或存储器阵列130。所属领域的技术人员应了解,地址输入连接的数目可取决于存储器装置104和/或存储器阵列130的密度和架构。
图1B是根据本公开的数个实施例的呈包含存储器装置120的电子系统100形式的设备的框图。如本文中所使用,存储器装置120、存储器控制器140、信道控制器143、存储器阵列130、感测电路系统150可各自还被单独地视为“设备”。
在此实例中系统100包含耦合(例如,连接)到包含存储器阵列130的存储器装置120的主机102。主机102可为主机系统,例如个人手提式计算机、台式计算机、平板计算机、数码相机、智能电话、物联网(IoT)功能的装置或存储卡读卡器,以及各种其它类型的主机。主机102可包含系统母板和/或底板,且可包含数个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路系统)。系统100可包含单独的集成电路,或主机102与存储器装置120两者可在同一集成电路上。举例来说,系统100可以是服务器系统和高性能计算(HPC)系统和/或其一部分。虽然图1中示出的实例说明具有冯·诺依曼(Von Neumann)架构的系统,但本公开的实施例可实施于非冯·诺依曼架构中,所述非冯·诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
为了清晰起见,已简化系统100的描述以聚焦于与本公开特定相关性的特征。举例来说,在各种实施例中,存储器阵列130可以是例如DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND闪存阵列和NOR闪存阵列。存储器阵列130可包括以通过存取线(其可在本文中被称作字线或选择线)耦合的行和由感测线(其在本文中被称作数据线或数字线)耦合的列配置的存储器单元。虽然在图1中展示单个存储器阵列130,但实施例不限于此。举例来说,存储器装置120可包含数个存储器阵列130(例如DRAM单元、NAND快闪单元等的数个组)。
存储器装置120包含锁存在地址/控制总线154(例如,从主机102的地址/控制总线)上提供的地址信号的地址电路系统142。地址信号由地址电路系统142接收并且由行解码电路系统146和列解码电路系统152解码以存取存储器阵列130。虽然地址/控制总线154示出为单个总线,但总线154可包括单独地址和控制总线。根据本文所描述的实施例,列解码电路系统152可包括结合反转存储于存储器中的数据将共享I/O线选择性地耦合到感测组件的子集的逻辑(例如,多路复用器电路系统)。共享I/O(SIO)线与用以将数据从阵列130移动到DQ衬垫的先前数据路径相比可提供增加的数据路径大小(例如,宽度),以及其它益处。举例来说,在数个实施例中,SIO线可充当对应于阵列130的本地I/O线和全局I/O线两者,这可促进在子阵列(例如,耦合到单独感测电路系统条带的存储器阵列的部分)之间移动数据。
可使用感测电路系统150的数个感测组件(例如,感测放大器)通过数字线上的感测电压和/或电流改变从存储器阵列130感测(读取)数据。感测放大器可读取和锁存来自存储器阵列130的数据页(例如,行)。如在本文中进一步描述,感测电路系统150的感测组件可包括相应感测放大器和耦合到其上的对应计算组件,其可用以例如感测、存储(例如,高速缓存和/或缓冲)和移动数据。I/O电路系统144可用于在数据总线156(例如,DQ连接)上与主机102的双向数据通信。写入电路系统148可用于将数据写入到存储器阵列130。
可充当定序器的存储器控制器140可解码地址/控制总线154从主机102提供的控制信号(例如,命令)。这些信号可包含芯片启用信号、写入启用信号,以及可用以控制对存储器阵列130执行的操作的地址锁存器信号,所述操作包含数据感测、数据存储、数据移动、数据写入和数据擦除操作以及其它操作。存储器控制器140可负责执行来自主机102的指令和/或存取存储器阵列130。存储器控制器140可为状态机、定序器,或某一其它类型的控制器并且可实施于硬件、软件、固件和/或其组合中。在图1中所示的实例中,系统100包含总线157,其可例如将状态和异常信息从存储器控制器140提供到信道控制器143。
在下文在(例如,在图6中)进一步描述感测电路系统150的实例。举例来说,在数个实施例中,感测电路系统150可包含数个感测放大器和对应计算组件,可充当累加器并且可用以对从控制电路系统120接收的通用数或位置位串执行算术和/或逻辑操作。感测电路系统150可用以根据本文所描述的实施例反转存储于存储器中(例如,阵列130中)的数据。
在数个实施例中,感测电路系统150还可用以使用存储于存储器阵列130中的数据作为输入执行逻辑操作(例如,逻辑功能,例如AND、OR、NOT、NOR、NAND、XOR等)并且参与将用于写入和存储操作的数据移动回到存储器阵列130中的不同方位而无需经由感测线地址存取传送数据(例如,无需激发列解码信号)。因而,各种计算功能可使用感测电路系统150且在感测电路系统150内执行,而非由感测电路系统150外部的处理资源(例如,由与主机102和/或例如ALU电路系统等位于存储器装置120上,例如位于控制器140或其它地方上的其它处理电路系统相关联的处理器)执行(或与之相关联)。
在各种先前方法中,举例来说,将通过感测电路从存储器读取与操作数相关联的数据,并通过I/O线(例如通过本地I/O线和全局I/O线)将所述数据提供给外部ALU电路系统。外部ALU电路系统可包含数个寄存器且将使用操作数来进行计算功能,且结果将经由I/O线传送回阵列。相比之下,在本公开的数个实施例中,感测电路系统150被配置成对存储于存储器阵列130中的数据执行逻辑操作并且将结果存储回到存储器阵列130而无需启用耦合到感测电路系统150的本地I/O线和全局I/O线。感测电路系统150可与阵列中的存储器单元以间距形成。
由此,在数个实施例中,不需要存储器阵列130和感测电路系统150外部的电路系统来反转存储于存储器阵列130中的数据和/或执行计算功能,原因是感测电路系统150可执行适当的操作以便在不使用外部处理资源下执行此类数据反转和/或计算功能。因此,感测电路系统150可用以至少在某一程度上补足或替换此外部处理资源(或至少补足或替换此外部处理资源的带宽消耗)。
图2A是根据本公开的数个实施例的呈包含含有主机202和存储器装置204的设备200的计算系统形式的功能框图。存储器装置204可包含控制电路系统220,其可类似于图1A和1B中所说明的控制电路系统120。类似地,主机202可类似于图1A和1B中所说明的主机102,且存储器装置204可类似于图1A和1B中所说明的存储器装置104。组件(例如,主机202、控制电路系统220、感测电路系统250和/或存储器阵列230等)中的每一个可单独地在本文中被称作“设备”。
主机202可经由一或多个信道203、205以通信方式耦合到存储器装置204。信道203、205可以是接口或允许数据和/或命令在主机202与存储器装置205之间转移的其它物理连接。举例来说,可经由信道203、205从主机传送致使起始将使用控制电路系统220执行的操作(例如,将一或多个位串从第一格式转换成第二格式(或反过来)的操作、致使位串加载到感测电路系统250中以执行算术和/或逻辑操作的操作)的命令。应注意,在一些实施例中,控制电路系统220可在不存在来自主机202的居间命令的情况下,响应于经由信道203、205中的一或多个从主机202传送的起始命令而执行操作。也就是说,在不存在来自主机202的额外命令的情况下,一旦控制电路系统220已从主机202接收到起始操作的执行的命令,控制电路系统220便可执行操作。
如图2A中所示,存储器装置204可包含寄存器存取组件242、高速接口(HSI)208、控制器240、感测电路系统250、主存储器输入/输出(I/O)电路系统244、行地址选通(RAS)/列地址选通(CAS)链控制电路系统216、RAS/CAS链组件218、控制电路系统220和存储器阵列230。如图2中所示出,感测电路系统250和/或控制电路系统220位于存储器装置204的物理上不同于存储器阵列230的区域中。也就是说,在一些实施例中,感测电路系统250和/或控制电路系统220位于存储器阵列230的外围方位中。
寄存器存取组件242可有助于从主机202提取数据并传送到存储器装置204以及从存储器装置204提取数据并传送到主机202。举例来说,寄存器存取组件242可存储对应于将从存储器装置204传送到主机202或从主机202传送到存储器装置204的数据的地址(或有助于查找地址),例如存储器地址。在一些实施例中,寄存器存取组件242可促进传送和提取将被控制电路系统220操作的数据且/或寄存器存取组件242可促进传送和提取已被控制电路系统220操作的数据,或响应于控制电路系统220采取的动作,将数据传送到主机202。
HSI 208可提供主机202和存储器装置204之间用于穿越信道205的命令和/或数据的接口。HSI 208可为双倍数据速率(DDR)接口,例如DDR3、DDR4、DDR5等接口。然而,实施例不限于DDR接口,且HSI 208可以是四倍数据速率(QDR)接口、外围组件互连(PCI)接口(例如,外围组件互连高速(PCIe))接口,或用于在主机202与存储器装置204之间传送命令和/或数据的其它合适的接口。
控制器240可负责执行来自主机202的指令且存取控制电路系统220和/或存储器阵列230。控制器240可以是状态机、排序器或某一其它类型的控制器。控制器240可从主机202接收命令(例如,经由HSI 208),且基于接收到的命令,控制控制电路系统220和/或存储器阵列230的操作。在一些实施例中,控制器240可以从主机202接收命令以致使使用控制电路系统220执行操作。响应于接收到此类命令,控制器240可指示控制电路系统220开始执行操作。
在一些实施例中,控制器240可为全局处理控制器并且可为存储器装置204提供电力管理功能。电力管理功能可包含控制存储器装置204和/或存储器阵列230消耗的电力。举例来说,控制器240可控制提供给存储器阵列230的各个库的电力以控制存储器阵列230的哪些库在存储器装置204操作期间的不同时间是操作性的。这可包含关闭存储器阵列230的某些库,同时向存储器阵列230的其它库提供电力以优化存储器装置230的电力消耗。在一些实施例中,控制器240控制存储器装置204的电力消耗可包含控制通到存储器装置204的各个核心和/或通到控制电路系统220、存储器阵列230等的电力。
如上文所提及,感测电路系统250可提供用于存储器阵列230的额外存储空间并且可感测(例如,读取、存储、高速缓存)存储器装置204中存在的数据值。感测电路系统250可包含感测放大器、锁存器、触发器等,其可被配置成使用位串执行操作(例如,算术和/或逻辑操作)。举例来说,感测电路系统250可包含寄存器234(例如,其可包含多个寄存器),其可暂时存储来自存储器阵列230和/或图1中所说明的存储器资源124的位串和/或中间结果。
如图2A中所示,感测电路系统250处于存储器装置204的物理上不同于存储器阵列230的方位中。在一些实施例中,感测电路系统250可以寄存器或串联寄存器的形式提供并且可包含与存储器阵列230的行或列相同数量的感测放大器和/或计算组件。举例来说,如果存储器阵列230含有约16K行或列,那么感测电路系统250可包含约16K存储方位。因此,在一些实施例中,感测组件250可为被配置成保存多达16K数据值的寄存器。
然而,实施例不限于其中感测电路系统250包含约16K方位以在其中存储数据值的情境。举例来说,感测组件250可被配置成存储约2K数据值、约4K数据值、约8K数据值等。另外,虽然单一方框示出为说明图2A中的感测组件250,但在一些实施例中,可存在感测组件250的不止单一“行”。举例来说,可存在感测组件250的两个、四个或八个以及其它数量的“行”,其可各自被配置成存储约2K数据值、约4K数据值、约8K数据值、约16K数据值等。
如结合图6更详细描述,感测电路系统250可被配置成促进在存储于存储器阵列230中的位串(例如,呈通用数格式或位置格式的位串)之间执行算术和/或逻辑操作。举例来说,一旦位串已通过控制电路系统220转换成第二格式(例如,通用数格式或位置格式)并且存储于存储器阵列230中,感测电路系统250便可使用经转换位串执行操作以使用经转换位串执行算术和/或逻辑操作。
主存储器输入/输出(I/O)电路系统244可促使数据和/或命令传送进出存储器阵列230。举例来说,主存储器I/O电路系统244可促使来自主机202和/或控制电路系统220的位串、数据和/或命令传送进出存储器阵列230。在一些实施例中,主存储器I/O电路系统214可包含一或多个直接存储器存取(DMA)组件,其可将来自控制电路系统220的位串(例如,存储为数据块的位置位串)传送到存储器阵列230,且反过来也如此。
在一些实施例中,主存储器I/O电路系统244可促进位串、数据和/或命令从存储器阵列230传送到控制电路系统220,使得控制电路系统220可对位串执行操作。类似地,主存储器I/O电路系统244可促进已被控制电路系统220执行一或多个操作的位串传送到存储器阵列230。如本文中更详细描述,操作可包含使用位串(例如,通用数位串、位置位串、浮点位串和/或定点二进制位串)的各种算术操作,例如乘法操作。
如上文所描述,可存储和/或从存储器阵列230检索位置位串(例如,数据)。在一些实施例中,主存储器I/O电路系统244可促使位置位串存储到存储器阵列230和/或从存储器阵列230检索位串。举例来说,可使得主存储器I/O电路系统244能够将位置位串传送到存储器阵列230进行存储,且/或主存储器I/O电路系统244可促使响应于例如来自控制器210和/或控制电路系统220的命令而从存储器阵列230检索位置位串(例如,表示在一或多个位置位串操作数之间执行的操作的位置位串)。
行地址选通(RAS)/列地址选通(CAS)链控制电路系统216和RAS/CAS链组件218可与存储器阵列230结合用于锁存行地址和/或列地址以此起始存储器循环。在一些实施例中,RAS/CAS链控制电路系统216和/或RAS/CAS链组件218可解算存储器阵列230的行和/或列地址,在这些行和/或列地址处,与存储器阵列230相关联的读取和写入操作将起始或终止。举例来说,在使用控制电路系统220完成操作后,RAS/CAS链控制电路系统216和/或RAS/CAS链组件218可锁存和/或解算外围感测放大器211和/或存储器阵列230中的特定方位,已被控制电路系统220执行操作的位串将存储到所述特定方位。类似地,RAS/CAS链控制电路系统216和/或RAS/CAS链组件218可锁存和/或解算外围感测放大器211和/或存储器阵列230中的特定方位,将在控制电路系统220使用位串执行操作(例如,递归操作)之前或之后,位串将从所述特定方位传送到控制电路系统220。
控制电路系统220可包含逻辑电路系统(例如,图1中所说明的逻辑电路系统122)和/或存储器资源(例如,图1中所说明的存储器资源124)。位串(例如,数据、多个位等)可通过控制电路系统220从例如主机202、存储器阵列230和/或外部存储器装置接收并且通过控制电路系统220存储于例如控制电路系统220的存储器资源中。
在一些实施例中,一旦位串已通过控制电路系统220转换成浮点格式或定点二进制格式并且存储于存储器阵列230中,存储器阵列230便可结合感测电路系统250对通用数或位置位串执行(或致使执行)算术和/或逻辑操作。举例来说,如下文结合图6进一步描述的感测电路系统250可被配置成执行(或致使执行)例如加法、减法、乘法、除法、融合乘法加法、乘累加操作、点积操作、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、反快速傅立叶变换、S型(sigmoid)函数操作、卷积操作、平方根操作、指数操作和/或对数操作的算术操作,和/或例如AND、OR、XOR、NOT等逻辑操作,以及例如正弦、余弦、切线等三角操作。如将了解,操作的前述列表并不意图是穷尽性的,操作的前述列表也不意图是限制性的,且控制电路系统220可被配置成使用通用数或位置位串执行(或致使执行)其它算术和/或逻辑操作。。
在一些实施例中,感测电路系统250可结合一或多个机器学习算法的执行来执行上文列出的操作。举例来说,感测电路系统250可执行与一或多个神经网络相关的操作。神经网络可允许历经时间来训练算法以基于输入信号确定输出响应。举例来说,随时间推移,神经网络可基本上习得更好地最大化完成特定目的的机会。这在机器学习应用中可能是有利的,因为神经网路可历经时间利用新数据加以训练以实现更好地最大化完成特定目的的机率。神经网路可历经时间加以训练以改进特定任务和/或特定目标的操作。虽然机器学习(例如,神经网络训练)可为处理密集型(例如,可消耗大量计算机处理资源)和/或可为时间密集型(例如,可要求执行消耗多个循环的超长计算),但本文中所描述的实施例可在选择格式(例如,unum格式或位置格式,和/或浮点格式或定点二进制格式)执行算术和/或逻辑操作方面提供灵活性,并且减小执行操作时的处理时间(例如,通过在芯片中执行多个操作和/或无需将操作数数据传送出),这可提供与神经网络相关联的操作的改进执行。
在一些实施例中,控制器210可被配置成致使控制电路系统220和/或感测电路系统250使用位串执行操作并且不会妨碍主机202(例如,无需从主机202接收中介命令或与起始操作执行的命令隔开的命令和/或无需将操作结果传送到主机202),不过实施例不限于此。
如上文结合图1所描述,举例来说,尽管实施例不限于这些特定实例,但存储器阵列230可以是DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪阵列和/或NOR快闪阵列。存储器阵列230可用作图2A和2B中示出的计算系统200的主存储器。在一些实施例中,存储器阵列230可被配置成使用存储于其中的位串执行算术和/或逻辑操作,存储算术和/或逻辑操作的结果,和/或在使用位串执行转换操作之前存储将传送到控制电路系统220的位串。
在一些实施例中,可在不妨碍主机202的情况下产生位串(例如,位置位串)和/或将其存储在存储器阵列230中。举例来说,可在不从主机202接收多个命令的情况下产生位串和/或将其存储在存储器阵列230中。换句话说,在一些实施例中,主机202可将单个命令发送到存储器装置以请求使用一或多个位串执行操作。响应于接收到请求执行操作的命令,存储器装置204(例如,控制器210、控制电路系统220或存储器装置204的其它组件)可在不存在来自主机202的额外命令的情况下执行操作和/或检索所存储的操作结果。这可减少跨信道203/205的流量,以此可增加与主机202和/或存储器装置204相关联的计算装置的性能。
在非限制性实例中,感测电路系统250可包含感测放大器(例如,图6中所说明的感测放大器649)和计算组件(例如,图6中所说明的计算组件665)并且可耦合到存储器阵列230。在此实例中,具有与其相关联的第一数值的第一位串和具有与其相关联的第二数值的第二位串可存储于存储器阵列的相应第一行和第二行中。计数器(例如,图1A中所说明的计数器114)可以通信方式耦合到感测电路系统250和存储器阵列,且控制电路系统220可耦合到计数器、感测电路系统250和存储器阵列230。在此实例中,控制电路系统220可被配置成将初始值存储于计数器内(例如,初始化)并且致使感测电路系统250至少部分地基于计数器所存储的值使用第一位串、第二位串或第三位串或其任何组合执行算术操作的数次重复。在一些实施例中,控制电路系统220被配置成将第二位串写入到感测电路系统250的寄存器并且响应于将第二位串写入到第三行而使计数器的值(例如,初始值)递减,使得举例来说,可基于经递减计数器值执行下文描述的数次重复。
对于数次重复中的每一个,感测电路系统250被配置成通过将所述第二数值和第三数值中的一个较大数值与第一数值相加来执行加法操作并且将所述加法操作的结果存储于存储器阵列的第二行或第三行中,所述第二行或第三行的对应位串不用作前一加法操作的操作数。第三位串可具有与其相关联的第三数值并且存储于存储器阵列的第三行中。
由于以第一数值、第二数值或第三数值或其任何组合的操作数执行了数次重复而执行乘法操作。存储于第二行或第三行上的数次重复的结果对应于乘法操作的结果。在一些实施例中,乘法操作的结果存储于第二行或第三行中,在其中存储数次重复中的最后一次重复的结果。
在一些实施例中,可根据乘法操作的状态和/或针对乘法操作执行的数次重复来更新计数器。举例来说,控制电路系统220可被配置成针对数次重复中的每一个使计数器递减并且致使感测电路系统250执行数次重复直到计数器的值达到值1,以使得在计数器中指定的次数对应于第二数值减去1。
在一些实施例中,控制电路系统220可被配置成存储(例如,正在存储器阵列内执行数次重复时)指示乘法操作的结果是具有位置值还是负数值的符号位。举例来说,响应于从存储器阵列230接收到位串,控制电路系统220可被配置成确定使用位串作为操作数的操作的结果是具有位置值还是负数值。在所述确定后,即刻可将位串传送回到存储器阵列230,且控制电路系统220可被配置成正在存储器阵列230内执行操作时存储所得符号位(例如,使得控制电路系统220可将所得符号位与操作结果相关联)。
在一些实施例中,控制电路系统220另外包含逻辑电路系统(例如,图1A中所说明的逻辑电路系统122),且控制电路系统220被配置成在第一位串写入到第一行和第二行之前,从存储器阵列检索呈第一格式的第一位串和第二位串并且致使逻辑电路系统执行将第一位串和第二位串从第一格式转换成第二格式的操作。控制电路系统220被进一步配置成将具有经转换的第二格式的第一位串和第二位串传送到感测电路系统,使得在第一位串和第二位串呈第二格式时执行数次重复。举例来说,第一格式包含IEEE 754格式、定点二进制格式或十进制格式,且第二格式包含通用数格式或位置格式。随后(例如,在数次重复之后),控制电路系统220可被配置成从感测电路系统检索具有第二格式的乘法操作结果并且致使逻辑电路系统执行将乘法结果从第二格式转换成第一格式的操作。在结果转换后,控制电路系统220即刻可被配置成致使感测电路系统将乘法操作结果存储于存储器阵列中,使得乘法结果以第一格式进行存储。
在另一非限制性实例中,逻辑电路系统(例如,图1A中所说明的逻辑电路系统122)可耦合到存储器阵列230,计数器耦合到逻辑电路系统和存储器阵列230,且控制电路系统220耦合到计数器、逻辑电路系统和存储器阵列230。作为调用根据通用数或位置格式格式化的多个位串执行乘法操作的部分,控制电路系统220可被配置成将计数器初始化为具有第一计数器值并且将第一位串和第二位串分别写入到存储器阵列230的第一行和存储器阵列230的第二行。
响应于写入第一位串和第二位串,控制电路系统220可被进一步配置成将第一计数器值递减到第二计数器值并且致使使用第一位串和第二位串作为操作数执行第一加法操作。在此实例中,作为执行第一加法操作的部分,控制电路系统可被配置成响应于第一加法操作完成而使计数器递减并且将第一加法操作的结果写入到存储器阵列230的第三行。随后,控制电路系统220可被配置成致使使用第一位串和存储于存储器阵列230的第三行中的第一加法操作的结果作为操作数执行第二加法操作。在此实例中,作为执行第一加法操作的部分,控制电路系统可被配置成响应于第二加法操作完成而使计数器递减并且将第二加法操作的结果写入到存储器阵列230的第二行。控制电路系统220可被进一步配置成确定计数器已递减到指示乘法操作完成的值。
响应于确定存储于存储器阵列230的第二行中的加法操作的结果与存储于第三行中的加法操作的结果相比具有与其对应的较大数值,存储于第二行中的加法操作的结果可写入到存储器阵列230外部的电路系统。替代地,响应于确定存储于存储器阵列230的第三行中的加法操作的结果与存储于第二行中的加法操作的结果相比具有与其对应的较大数值,存储于第三行中的加法操作的结果可写入到存储器阵列230外部的电路系统。
在将存储于第二行中的加法操作的结果或存储于第三行中的加法操作的结果写入到阵列外部的电路系统之前,逻辑电路系统被配置成执行将存储于第二行中的加法操作的结果或存储于第三行中的加法操作的结果从通用数或位置格式转换成IEEE 754浮点格式或定点二进制格式的操作。
在一些实施例中,控制电路系统220可被配置成在具有相同位长度的多个位串当中执行乘法操作。控制电路系统220被配置成确定多个位串中的一或多个中的至少两个对于指数位子集具有相同位长度,并且响应于所述确定使用所述多个位串中的一或多个中的至少两个执行乘法操作。
图2B是根据本公开的数个实施例的呈包含主机202、存储器装置204、专用集成电路223和现场可编程门阵列221的计算系统200形式的另一功能框图。组件(例如,主机202、存储器装置204、FPGA 221、ASIC 223等)中的每一个可在本文中单独地被称为“设备”。
如图2B所示,主机202可经由信道203耦合到存储器装置204,所述信道203可类似于图2A中所说明的信道203。现场可编程门阵列(FPGA)221可经由信道217耦合到主机202,且专用集成电路(ASIC)223可经由信道219耦合到主机202。在一些实施例中,信道217和/或信道219可以包含外围串行互连高速(PCIe)接口,然而,实施例不限于此,且信道217和/或信道219可以包含其它类型的接口、总线、通信信道等以促进主机202与FPGA 221和/或ASIC223之间的数据传送。
如上文所描述,位于存储器装置204上的电路系统(例如,图2A中所说明的控制电路系统220和/或存储器阵列230,以及图2A和6中说明的感测组件250/650)可使用以通用数格式或位置格式格式化的位串执行操作(例如,在各种格式之间转换位串的操作、使用位串的算术操作和/或逻辑操作等)。然而,实施例不限于此,且在一些实施例中,操作可由FPGA221和/或ASIC 223执行。如上文所描述,可由FPGA 221和/或ASIC 223执行的算术和/或逻辑操作的非限制性实例可包含使用位置位串的例如加法、减法、乘法、除法、融合乘法加法、乘累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、反快速傅立叶变换、S型函数、卷积、平方根、指数和/或对数操作的算术操作,和/或例如AND、OR、XOR、NOT等逻辑操作,以及例如正弦、余弦、切线等三角操作。
FPGA 221可以包含状态机227和/或寄存器229。状态机227可以包含经配置以对输入执行操作并产生输出的一或多个处理装置。举例来说,FPGA 221可被配置成从主机202或存储器装置204接收位置位串并且使用通用数格式或位置格式位串执行一或多个操作。FPGA 221的寄存器229可被配置成在状态机227使用所接收的位串执行操作之前缓冲和/或存储从主机202接收到的位置位串。另外,FPGA221的寄存器229可被配置成在将结果传送到ASIC 233外部的电路系统(例如主机202或存储器装置204等)之前缓冲和/或存储由FPGA221重复执行的递归操作的中间结果。
ASIC 223可以包含逻辑215和/或高速缓存器217。逻辑215可包含被配置成对输入执行操作并且产生输出的电路系统。在一些实施例中,ASIC 223被配置成从主机202和/或存储器装置204接收通用数格式或位置格式位串并且使用位置位串操作数执行一或多个操作。ASIC 223的高速缓存器217可被配置成在逻辑215对接收到的位串执行操作之前缓冲和/或存储从主机202接收到的位串。另外,ASIC 223的高速缓存器217可被配置成在将结果传送到ASIC 233外部的电路系统(例如主机202或存储器装置204等)之前缓冲和/或存储使用位串重复递归操作的中间结果。
虽然FPGA 227示为包含状态机227和寄存器229,但在一些实施例中,除了状态机227和/或寄存器229之外或代替状态机227和/或寄存器229,FPGA 221还可包含例如逻辑215的逻辑和/或例如高速缓存217的高速缓存器。类似地,在一些实施例中,ASIC 223可除了逻辑215和/或高速缓存器217之外或代替逻辑215和/或高速缓存器217还包含如状态机227的状态机和/或如寄存器229的寄存器。
图3为具有es指数位的n位通用数字或“unum”的实例。在图3的实例中,n位unum是位置位串331。如图3中所展示,n位位置331可包含符号位集(例如,第一位子集或符号位子集333)、底数位集(例如,第二位子集或底数位子集335)、指数位集(例如,第三位子集或指数位子集337)和尾数位集(例如,第四位子集或尾数位子集339)。尾数位339可在替代方案中称为“分数部分”或“分数位”,且可表示小数点后的位串的一部分(例如,数字)。
符号位333可以是用于位置的零(0)和用于负数的一(1)。下文结合表1描述状态位335,表1示出(二进制)位串和其相关数字含义k。在表1中,通过位串的延行长度来确定数字含义k。表1的二进制部分中的字母x指示位值与底数的确定不相关,因为(二进制)位串响应于连续位翻转或当到达位串的结尾时而终止。例如,在(二进制)位串0010中,位串响应于零翻转到一且随后回到零而终止。因此,最后的零与底数不相关且对于底数考虑的全部是前导相同位和终止位串的第一相对位(如果位串包含此类位)。
二进制 | 0000 | 0001 | 001X | 01XX | 10XX | 110X | 1110 | 1111 |
数字(k) | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 |
表1
在图3中,底数位335r对应于位串中的相同位,而底数位335对应于终止位串的相反位。举例来说,对于表1中展示的数字k值-2,底数位r对应于前两个前导零,而底数位对应于一。如上所述,对应于由表1中的X表示的数字k的最终位与底数不相关。
如果m对应于位串中相同位的数目,则如果位为零,那么k=-m。如果位为一,那么k=m-1。这在表1中进行了说明,其中例如(二进制)位串10XX具有单个一且k=m-1=1-1=0。类似地,(二进制)位串0001包含三个零,因此k=-m=-3。底数可指示缩放因数useedk,其中以下表2中展示used的若干实例值。
es | 0 | 1 | 2 | 3 | 4 |
used | 2 | 2<sup>2</sup>=4 | 4<sup>2</sup>=16 | 16<sup>2</sup>=256 | 256<sup>2</sup>=65536 |
表2
指数位337对应于作为无符号数的指数e。与浮点数相比,本文中所描述的指数位337可不具有与其相关联的偏置。因此,本文中所描述的指数位337可表示以因数2e进行按比例缩放。如图3中所示,可存在多达es个指数位(e1、e2、e3……ees),这取决于多少个位保持在n位位置331的底数位335的右边。在一些实施例中,这可允许n位位置331的逐渐变小准确度,其中在量值上更接近一的数字具有比极大或极小数字更高的准确度。然而,由于在某些类型的操作中可以较不频繁地使用极大或极小数,因此图3中所展示的n位位置331的逐渐变小的准确度表现在广泛范围的情形下可以是合乎需要的。
尾数位339(或分数位)表示可以是位于指数位337右边的n位位置331的部分的任何额外位。类似于浮点位串,尾数位339表示可类似于分数1.f的分数f,其中f包含一后的小数点右边的一或多个位。然而,与浮点位串相比,在图3中所展示的n位位置331中,“隐藏位”(例如,一)可始终是一(例如,整体),而浮点位串可包含具有“隐藏位”零(例如,0.f)的次正规数。
如本文所描述,更改符号333位子集、底数335位子集、指数337位子集或尾数339位子集中的一或多个的数值或位量可改变n位位置331的精确度。例如,改变n位位置331中的总位数可以更改n位位置位串331的分辨率。也就是说,通过例如增加与位置位串的组成位子集中的一或多个相关联的数值和/或位量以提高位置位串分辨率,可以将8位位置转换为16位位置。相反,通过减少与位置位串的组成位子集中的一或多个相关联的数值和/或位量,可以将位置位串的分辨率例如从64位分辨率减小到32位分辨率。
在一些实施例中,更改与底数335位子集、指数337位子集和/或尾数339位子集中的一或多个相关联的数值和/或位量以改变n位位置331的精确度可导致底数335位子集、指数337位子集和/或尾数339位子集中的另一个中的至少一个的改变。例如,当更改n位位置331的精确度以提高n位位置位串331的分辨率时(例如,当执行“向上转换”操作以增大n位位置位串331的位宽时),可以更改与状态335位子集、指数337位子集和/或尾数339位子集中的一或多个相关联的数值和/或位量。
在非限制性实例中,其中n位位置位串331的分辨率增大(例如,n位位置位串331的精确度改变以增大n位位置位串331的位宽度)但与指数337位子集相关联的数值或位量并不改变,与尾数339位子集相关联的数值或位量可增大。在至少一个实施例中,当指数338位子集仍不变时增大尾数339位子集的数值和/或位量可包含将一或多个零位添加到尾数339位子集。
在另一非限制性实例中,其中n位位置位串331的分辨率通过更改与指数337位子集相关联的数值和/或位量而增大(例如,n位位置位串331的精确度改变以增大n位位置位串331的位宽度),与底数335位子集和/或尾数339位子集相关联的数值和/或位量可增大或减小。举例来说,如果与指数337位子集相关联的数值和/或位量增大或减小,那么与底数335位子集和/或尾数339位子集相关联的数值和/或位量可产生对应变化。在至少一个实施例中,增大或减小与底数335位子集和/或尾数339位子集相关联的数值和/或位量可包含将一或多个零位添加到底数335位子集和/或尾数339位子集和/或截断与底数335位子集和/或尾数339位子集相关联的数值或位量。
在另一实例中,其中n位位置位串331的分辨率增大(例如,n位位置位串331的精确度改变以增大n位位置位串331的位宽度),与指数335位子集相关联的数值和/或位量可增大且与底数333位子集相关联的数值和/或位量可减小。相反地,在一些实施例中,与指数335位子集相关联的数值和/或位量可减小且与底数333位子集相关联的数值和/或位量可增大。
在非限制性实例中,其中n位位置位串331的分辨率减小(例如,n位位置位串331的精确度改变以减小n位位置位串331的位宽度)但与指数337位子集相关联的数值或位量并不改变,与尾数339位子集相关联的数值或位量可减小。在至少一个实施例中,当指数338位子集仍不变时减小尾数339位子集的数值和/或位量可包含截断与尾数339位子集相关联的数值和/或位量。
在另一非限制性实例中,其中n位位置位串331的分辨率通过更改与指数337位子集相关联的数值和/或位量而减小(例如,n位位置位串331的精确度改变以减小n位位置位串331的位宽度),与底数335位子集和/或尾数339位子集相关联的数值和/或位量可增大或减小。举例来说,如果与指数337位子集相关联的数值和/或位量增大或减小,那么与底数335位子集和/或尾数339位子集相关联的数值和/或位量可产生对应变化。在至少一个实施例中,增大或减小与底数335位子集和/或尾数339位子集相关联的数值和/或位量可包含将一或多个零位添加到底数335位子集和/或尾数339位子集和/或截断与底数335位子集和/或尾数339位子集相关联的数值或位量。
在一些实施例中,改变指数位子集中的数值和/或位量可更改n位位置331的动态范围。举例来说,具有含数值零的指数位子集的32位位置位串(例如,具有es=0的32位位置位串或(32,0)位置位串)可具有大致18个十进位的动态范围。然而,具有含有数值3的指数位子集的32位位置位串(例如,具有es=3的32位位置位串,或(32,3)位置位串)可以具有大致145个十进位的动态范围。
图4A是3位位置的正值的实例。在图4A中,仅投影实数的右半部分,然而,应了解,对应于图4A中所展示的其正对应值的负投影实数可存在于曲线上,所述曲线表示围绕图4A中所展示的曲线的y轴的变换。
在图4A的实例中,es=2,因此位置431-1的精确度可通过将位附加到位串而增大,如图4B中所展示。例如,将具有值一(1)的位附加到位置431-1的位串会增加如由图4B中的位置431-2所展示的位置431-1的准确度。类似地,将具有值一的位附加到图4B中的位置431-2的位串会增加如由图4B中所展示的位置431-3所展示的位置431-2的准确度。以下是可用于将位附加到图4A中所展示的位置431-1的位串以获得图4B中所说明的位置431-2、431-3的内插规则的实例。
如果maxpos是位置431-1、431-2、431-3的位串的最大正值且minpos是位置431-1、431-2、431-3的位串的最小值,那么maxpos可等于useed且minpos可等于在maxpos与±∞之间,新位值可为maxpos*useed,且在零与minpos之间,新位值可为这些新位值可对应于新底数位335。在现有值x=2m和y=2n之间,其中m和n相差大于一,新位值可由如下几何平均值给定:其对应于新指数位337。如果新位值在紧挨着其的现有x和y值之间的中间位置,那么新位值可表示算术平均值其对应于新尾数位339。
图4B是使用两个指数位的位置构造的实例。在图4B中,仅投影实数的右半部分,然而,应了解,对应于图4B中所展示的其正对应值的负投影实数可存在于曲线上,所述曲线表示围绕图4B中所展示的曲线的y轴的变换。图4B所示的位置431-1、431-2、431-3各自仅包含两个异常值:当位串的所有位均为零时的零(0),以及当位串为所有零后的一(1)时的±∞。应注意,图4中展示的位置431-1、431-2、431-3的数值是精确的useedk。也就是说,对于由底数(例如,上文结合图3所描述的底数位335)表示的k值的幂,图4中展示的位置431-1、431-2、431-3的数值精确地为useed。在图4B中,位置431-1具有es=2,因此位置431-2具有es=3,因此且位置431-3具有es=4,因此
作为将位添加到3位位置431-1以产生图4B的4位位置431-2的说明性实例,useed=256,因此对应于useed 256的位串具有附加到其上的额外底数位且之前为16的useed具有附加到其上的终止底数位如上文所描述,在现有值之间,对应位串具有附加到其上的额外指数位。举例来说,数值1/16、1/4、1和4将具有附加到其上的指数位。也就是说,对应于数值4的最末一是指数位,对应于数值1的最末零是指数位等。这种模式可进一步见于位置431-3中,其为根据以上规则从4位位置431-2产生的5位位置。如果另一位添加到图4B中的位置431-3以产生6位位置,则尾数位339将附加到1/16与16之间的数值。
以下是对位置(例如,位置431)进行解码以获得其数字等效值的非限制性实例。在一些实施例中,对应于位置p的位串是介于从-2n-1到2n-1的范围内的无符号整数,k是对应于底数位335的整数且e是对应于指数位337的无符号整数。如果尾数位集339表示为{f1f2...ffs}且f是由1.f1f2...ffs(例如,由一后面是小数点再后面是尾数位339)表示的值,那么可通过以下方程式2给出p。
下文结合下表3中展示的位置位串0000110111011101提供对位置位串进行解码的另一说明性实例。
符号 | 底数 | 指数 | 尾数 |
0 | 0001 | 101 | 11011101 |
表3
在表3中,位置位串0000110111011101被分解到其构成的位集(例如,符号位333、底数位335、指数位337和尾数位339)中。由于表3中展示的位置位串中的es=3(例如,因为存在三个指数位),因此useed=256。因为符号位333为零,所以对应于表3中展示的位置位串的数字表述的值是正的。底数位335具有对应于值-3的三个连续零的延行(如上文结合表1所描述)。因此,由底数位335贡献的缩放因数是256-3(例如,useedk)。指数位337表示作为无符号整数的五(5)且因此提供2e=25=32的附加缩放因数。最后,在表3中作为11011101给出的尾数位339表示作为无符号整数的两百二十一(221),因此以上作为f给出的尾数位339是使用这些值和方程式2,对应于表3中给出的位置位串的数值是
图5是根据本公开的数个实施例的表示实例算术操作的流程图559。虽然实施例不限于此,但结合图5描述的算术操作可为乘法操作。
在框561处,可将第一位串写入(例如,复制)到至少两个寄存器(例如,图1中所说明的寄存器134)且可将第二位串写入到感测电路系统(例如,图1中所说明的感测电路系统150)的至少一个寄存器(例如,图1中所说明的寄存器134)。第一位串和第二位串可用作算术操作的操作数。举例来说,分别由第一位串和第二位串表示的第一数值和第二数值可为算术操作的操作数。在示范性情境中,第一位串可表示数值5且第二位串可表示数值4。因此,表示数值5的第一位串可写入到感测电路系统的两个寄存器(例如,第一和第二寄存器)且表示数值4的第二位串可写入到不同寄存器(例如,第三寄存器)。
在框563处,可将计数器的值(例如,图1中所说明的计数器114)初始化为寄存器中第二位串先前写入到的寄存器(例如,第三寄存器)的值。在上文所描述的示范性情境中,举例来说,计数器值初始化为数值4。
在框565处,可将存储于第一寄存器中的位串(例如,第一位串)写入到存储器阵列(例如,图1中所说明的存储器阵列130)的一个行(例如,R1)且可将存储于第二寄存器中的位串(例如,第一位串)写入到存储器阵列的不同行(例如,R2)。在上文所描述的示范性情境中,举例来说,表示数值5的位串可写入到存储器阵列的行(例如,R1和R2)。
在框567处,使用由存储于R1和R2中的位串表示的对应数值执行加法操作,并且将加法操作的结果存储于例如不同于R1和R2的行(例如,R3)中。在上文所描述的示范性情境中,举例来说,通过对应于10的操作数5(例如,R1)和5(例如,R2)的加法操作的结果存储于R3中且使计数器值(例如,先前为4)递减1并且变成3。
通过框569、571、573和575,存储于R2或R3中的(例如,位串的)对应数值反复添加到存储于R1中的对应数值。举例来说,在框569处,如果R3具有大于R2的数值的对应数值,那么存储于R3中的对应数值与存储于R1中的数值相加,如在框571处所说明。举例来说,如果R2具有大于R3的数值的对应数值,那么存储于R2中的对应数值与存储于R1中的数值相加,如在框573处所说明。在框571处,一旦执行使用数值R1和R2的加法操作,便使计数器的值递减(例如,递减1)并且将加法操作的结果存储于R3中。在框573处,一旦执行使用数值R1和R3的加法操作,便使计数器的值递减(例如,递减1)并且将加法操作的结果存储于R2中。在框575处,做出关于计数器的值是否达到特定值(例如1)的确定。如果确定值达到特定值,那么流程图559转到577。如果确定值尚未达到特定值,那么流程图559继续回到569,其中使用数值R1和R2或R3执行另一加法操作。
在上文所描述的示范性情境中,举例来说,在其中计数器值初始化为4且R1和R2存储相同数值5的情况下,使用R1和R2的数值执行第一加法操作(例如,作为执行框567的部分),且结果为10并存储于R3中。由于R3具有大于存储于R2中的数值(例如,5)的数值(例如,10),因此使用R1的数值(例如,5)和R3的数值执行第二加法操作并且将存储于R2中是结果(例如,15)(例如,作为执行框573的部分)。作为执行框573的结果,使计数器值(例如,先前为3)递减1并且变成2。由于计数器值尚未达到1,因此执行另一加法操作(例如,第三加法操作)。对于第三加法操作,R1的数值(例如,5)和R2的数值(例如,15)用作操作数,原因是R2具有大于R3的数值(例如,10)的数值(例如,15)。作为执行框571的结果,使计数器值(例如,先前为2)递减1并且变成1。由于计数器值已达到1,不需要再执行加法操作。
在框577处,算术操作被视为以对应于算术操作的结果的存储于R2或R3中的数值中的一个完成。可以各种方式指示算术操作的结果是存储于R2中还是存储于R3中。举例来说,(例如,存储于R2和R3中的位串当中)无论哪个尚未位串用作最后一个加法操作中的操作数中的一个(例如,在作为执行框569、571、573和575的部分执行的数个加法操作当中)都可对应于算术操作的结果。替代地,(例如,存储于R2和R3中的位串当中)无论哪个位串存储最后一个加法操作的结果(例如,如框571或框573中所说明)都可对应于算术操作的结果。替代地,因为存储最后一个加法操作的结果的行必然具有大于其它行的数值的数值,所以无论哪个行(例如,存储于R2和R3中的位串当中)具有较大数值都可对应于算术操作的结果。
在上文所描述的示范性情境中,举例来说,(例如,在三个加法操作之后)由存储于R3中的位串表示的数值(例如,20)可对应于算术操作(例如乘法操作)的结果。换句话说,R3的数值(例如,20)可对应于使用操作数5和4执行的乘法操作的结果。
在一些实施例中,在执行结合图5描述的算术操作时可使用各种格式的位串。举例来说,被执行数个加法操作(例如,如通过框569、571、573和/或575所描述)的位串可具有unum格式或位置格式,一浮点格式或定点二进制格式。在位串格式化为例如位置格式的情况下,控制电路系统(例如,图1和2中说明的控制电路系统120/220)可确定位串是否具有相同位串形状。如果位串不具有相同位串形状,那么控制电路系统可对位串执行一或多个操作以确保在(例如,图1和2中所说明的存储器阵列130/230内)对位串执行数个加法操作之前,位串具有相同位串形状。在一些实施例中,确保位串具有相同位串形状可包含确保位串针对特定位子集(例如,指数位子集)具有相同位长度和/或确保位串具有相同的总位长度。
图6是说明根据本公开的数个实施例的包含感测电路系统的存储器阵列645的一部分的示意图。感测组件650表示可对应于图1B和2A中展示的感测电路系统150/250的数个感测组件中的一个。
在图6中所展示的实例中,存储器阵列645是一晶体管一电容器(1T1C)存储器单元的DRAM阵列,其中晶体管充当存取装置且电容器充当存储元件;但可使用其它配置实施例(例如,每存储器单元具有两个晶体管和两个电容器的2T2C)。在此实例中,第一存储器单元包括晶体管651-1和电容器647-1,且第二存储器单元包括晶体管651-2和电容器647-2等。在数个实施例中,所述存储器单元可为破坏性读取存储器单元(例如,读取存储于单元中的数据会破坏数据,以使得在读取之后刷新最初存储于单元中的数据)。
存储器阵列645的单元可以通过存取线687-X(行X)、687-Y(行Y)等耦合的行和通过互补感测线对(例如,图6中标记为DIGIT(n)的数字线653-1和标记为DIGIT(n)_的653-2)耦合的列配置。虽然在图6中仅展示一对互补数字线,但本公开的实施例不限于此,且存储器单元的阵列可包含存储器单元和数字线的额外列(例如4,096、8,192、16,384等)。
存储器单元可耦合到不同数字线和字线。举例来说,在此实例中,晶体管651-1的第一源极/漏极区耦合到数字线653-1,晶体管651-1的第二源极/漏极区耦合到电容器647-1,且晶体管651-1的栅极耦合到字线687-Y。晶体管651-2的第一源极/漏极区耦合到数字线653-2,晶体管651-2的第二源极/漏极区耦合到电容器647-2,且晶体管651-2的栅极耦合到字线687-X。如图6中所示的单元板可耦合到电容器647-1和647-2中的每一个。单元板可以是可在各种存储器阵列配置中被施加参考电压(例如,接地)的共同节点。
根据本公开的数个实施例,存储器阵列645的数字线653-1和653-2耦合到感测组件650。在此实例中,感测组件650包括对应于存储器单元的相应列(例如耦合到相应一对互补数字线)的感测放大器649和计算组件665。感测放大器649耦合到所述一对互补数字线653-1和653-2。计算组件665经由通过门655-1和655-2耦合到感测放大器649。通过门655-1和655-2的栅极可耦合到逻辑操作选择逻辑613。
选择逻辑613可包含用于控制通过门的通过门逻辑和用于控制交换栅极的交换栅极逻辑,所述通过门耦合在感测放大器649与计算组件665之间未换位的所述对互补数字线,所述交换栅极耦合在感测放大器649与计算组件665之间换位的所述对互补数字线。选择逻辑613可耦合到所述对互补数字线653-1和653-2,且被配置成对存储在阵列645中的数据执行逻辑操作。举例来说,选择逻辑613可配置成基于所执行的选定逻辑操作而控制通过门655-1和655-2的连续性(例如接通/断开)。
可操作感测放大器649以确定存储在选定存储器单元中的数据值(例如,逻辑状态)。感测放大器649可包括交叉耦合的锁存器615(例如,一对晶体管(例如n沟道晶体管685-1和685-2)的栅极与另一对晶体管(例如p沟道晶体管641-1和641-2)的栅极交叉耦合),所述交叉耦合的锁存器可在本文中称为主锁存器。然而,实施例不限于此实例。
在操作中,当正感测(例如读取)存储器单元时,数字线653-1或653-2中的一个上的电压将略微大于数字线653-1或653-2中的另一个上的电压。ACT信号和RNL*信号可被驱动为低以启用(例如,激发)感测放大器649。具有较低电压的数字线653-1或653-2将使晶体管641-1或641-2中的一个接通到比晶体管641-1或641-2中的另一个更大的程度,由此将具有较高电压的数字线649-1或649-2驱动为高到比将另一数字线649-1或649-2驱动为高更大的程度。
类似地,具有较高电压的数字线649-1或649-2将使晶体管685-1或685-2中的一个接通到比晶体管685-1或685-2中的另一个更大的程度,由此将具有较低电压的数字线649-1或649-2驱动为高到比将另一数字线649-1或649-2驱动为高更大的程度。因此,在短延迟之后,具有略微较大电压的数字线649-1或649-2被驱动成穿过源晶体管的电源电压VCC的电压,且另一数字线649-1或649-2被驱动成穿过吸收晶体管的参考电压(例如,接地)的电压。因此,交叉耦合的晶体管685-1和685-2以及晶体管641-1和641-2充当感测放大器对,其放大数字线649-1和649-2上的差分电压并用以锁存从选定存储器单元感测到的数据值。
实施例不限于图6中所说明的感测组件配置。作为实例,感测放大器649可以是电流模式感测放大器和/或单端感测放大器(例如,耦合到一个数字线的感测放大器)。而且,本公开的实施例不限于折叠式数字线架构,例如图6中所展示的折叠式数字线架构。
感测组件650可以是选择性地耦合到共享I/O线的多个感测组件中的一个。因此,感测组件650可与求逆存储在根据本公开的数个实施例的存储器中的数据相关联地使用。
在此实例中,感测放大器649包含平衡电路系统681,其可被配置成平衡数字线649-1和649-2。平衡电路系统681包括耦合在数字线649-1与649-2之间的晶体管658。平衡电路系统681还包括各自具有耦合到平衡电压(例如VDD/2)的第一源极/漏极区的晶体管677-1和677-2,其中VDD是与阵列相关联的电源电压。晶体管677-1的第二源极/漏极区耦合到数字线649-1,且晶体管677-2的第二源极/漏极区耦合到数字线649-2。晶体管658、677-1和677-2的栅极可耦合在一起,且耦合到平衡(EQ)控制信号线679。因而,激活EQ会启用晶体管658、677-1和677-2,这有效地将数字线649-1与649-2短接在一起且短接到平衡电压(例如,VDD/2)。虽然图6示出感测放大器649包括平衡电路系统681,但实施例不受如此限制,且平衡电路系统681可与感测放大器649分开实施、实施于与图6中所示的配置不同的配置中或完全不实施。
如图6中所示,计算组件665还可包括可在本文中称为次锁存器691的锁存器。次锁存器691可以类似于上文关于主锁存器689所描述的方式配置且操作,不同之处在于包含于次锁存器中的所述对交叉耦合的p沟道晶体管(例如PMOS晶体管)可使其各别源极耦合到电源电压636-2(例如VDD),且次锁存器的所述对交叉耦合的n沟道晶体管(例如NMOS晶体管)可使其各别源极选择性地耦合到参考电压636-1(例如接地),使得持续启用次锁存器。计算组件665的配置不限于图6中所展示的配置,且各种其它实施例是可行的。
图7是根据本公开的数个实施例的表示用于存储器中的算术操作的实例方法760的流程图。方法760可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在框764处,方法760可包含将第一位串写入到存储器阵列的耦合到第一存取线的第一存储器单元群组和耦合到第二存取线的第二存储器单元群组以在存储器阵列(例如,图1A-1B和2A中说明的存储器阵列130/230)内执行算术操作。在一些实施例中,算术操作可包含乘法操作。在框766处,方法760可包含将对应于与第二位串相关联的数值的初始值存储于计数器(例如,图1中所说明的计数器134)内。
在框768处,方法760可包含执行数个加法操作直到计数器达到特定值为止。举例来说,可执行数个加法操作直到计数器达到特定值1。在一些实施例中,方法760另外包含响应于数个加法操作中的每一个完成而更新(例如,递减)与计数器相关联的值。执行数个加法操作可针对数个加法操作中的每一个包含如框770、772和774中所描述的各种步骤。
在框770处,方法760可包含使用存储于第一存储器单元群组中的第一位串作为用于数个加法操作中的每一个的第一操作数。在框772处,方法760可包含对于数个加法操作中的每一个,替代地使用存储于第二存储器单元群组中的位串或存储于存储器阵列的耦合到第三存取线的第三存储器单元群组中的位串作为用于数个加法操作中的每一个的第二操作数。
在框774处,方法760可包含对于数个加法操作中的每一个,在数个加法操作中的每一个之后,将数个加法操作中的前一加法操作的结果写入到第二存储器单元群组或第三存储器单元群组,所述第二存储器单元群组或第三存储器单元群组的对应位串不用作第二操作数。当计数器达到特定值时,存储于第二存储器单元群组或第三存储器单元群组中的数个加法操作的结果对应于算术操作的结果。在一些实施例中,算术操作的结果可存储在存储器阵列内。
在一些实施例中,结果可写入到第二存储器单元群组或第三存储器单元群组,所述第二存储器单元群组或第三存储器单元群组的对应位串不用作数个加法操作中的相应加法操作的第二操作数。举例来说,一旦存储于第二存储器单元群组中的位串用作数个加法操作中的特定加法操作中的第二操作数(例如,与作为第一操作数的第一位串一起),便可将特定加法操作的结果写入到第三存储器单元群组。
在一些实施例中,第一位串或第二位串或这两者可包含指示相应位串是负值还是正值的位。在此实例中,方法760可另外包含响应于第一和第二位串的符号位各自具有相同位值,使指示正值的所得符号位与乘法操作的结果相关联。相比之下,方法760包含响应于第一和第二位串的符号位各自具有不同位值,使指示负值的所得符号位与乘法操作的结果相关联。在正在执行数个加法操作时,控制电路系统(例如,图1和2中说明的控制电路系统120/220)可被配置成存储所得符号位,使得控制电路系统随后可将符号位与数个加法操作的结果相关联。然而,实施例不限于此。举例来说,在正在执行数个加法操作时,可使所得符号位存储于存储器阵列(例如,存储器阵列的特定行和/或列)内。
如本文所描述,可以各种位串格式执行算术操作。举例来说,为以IEEE 754浮点格式或定点二进制格式执行算术操作,可对根据通用数格式或位置格式格式化的位串(例如,存储在存储器阵列内)执行转换操作以将所述格式转换成IEEE 754浮点格式或定点二进制格式。在所述转换之后且一旦经转换位串存储回到存储器阵列,可以IEEE 754浮点格式或定点二进制格式执行算术操作。
在执行算术操作之后,可根据各种格式存储算术操作的结果。举例来说,如果期望存储和/或提供通用数格式或位置格式的结果,那么根据IEEE 754浮点格式或定点二进制格式格式化的结果可转换回(例如,在图1中所说明的逻辑电路系统122和/或主机102处)到通用数格式或位置格式。
图8是根据本公开的数个实施例的表示用于存储器中的算术操作的实例方法880的流程图。方法880可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在框884处,方法880可包含将相应位串中的每一个转换成数个各自对应于由所述相应位串指示的数值中的相应数值的分子或分母的位串以使用所述数值的操作数执行乘法操作。在一些实施例中,相应位串中的一或多个可包含指示相应位串中的一或多个呈分数形式的分数位。在框886处,方法880可包含将数个位串中对应于操作数的分子中的一个的第一位串写入到存储器阵列的第一行和第二行。
在框888处,方法880可包含响应于写入第一位串而更新计数器(例如,图1中所说明的计数器134)的值。如本文所描述,计数器的值可更新为对应于分子中的一个的位串数值。在框890处,方法880可包含执行数个第一加法操作直到计数器的值达到特定值为止。如本文所描述,可执行数个第一加法操作直到计数器的值达到值1。根据框890执行数个第一加法操作包含如框892、894和896中所描述的各种步骤。
在框892处,方法880可包含使用存储于第一行中的第一位串作为第一操作数。在框894处,方法880可包含使用存储于第二行中的位串或存储于存储器阵列的第三行中的位串(无论所述位串中的哪个位串具有较大对应数值)作为第二操作数。
在框896处,方法880可包含在数个第一加法操作中的每一个之后,将数个第一加法操作中的相应第一加法操作的结果替代地写入于存储器阵列的第二行或第三行中。在一些实施例中,数个第一加法操作中的相应第一加法操作的结果可写入到存储器阵列的第二行或第三行,而无论所述第二行或第三行中的哪个行具有较小对应数值。乘法操作的第一部分的结果存储于第二行或第三行中,而无论所述第二行或第三行中的哪个行具有较大对应数值。
为使用各种分数形式的操作数执行例如乘法操作,可分别对分子和分母执行至少两个乘法操作。虽然结合图8描述的那些步骤针对于分子的乘法操作,但可再次对表示分母的位串执行类似步骤。举例来说,方法880可包含(例如,类似于结合框886描述的步骤)将数个位串中指示操作数的分母中的一个的第三位串写入到存储器阵列的第四行和第五行。方法880可另外包含(例如,类似于结合框888描述的步骤)响应于写入第三位串而更新计数器的值。
方法880可另外包含(例如,类似于结合框890描述的步骤)执行数个第二加法操作直到计数器达到数值1。方法880可另外包含(例如,类似于结合框892描述的步骤)使用第三行中的第三位串作为数个第二加法操作的一个操作数。方法880可另外包含(例如,类似于结合框894描述的步骤)使用存储于第五行中的位串或存储于存储器阵列行第六行中的位串作为数个第二加法操作的另一操作数,而无论所述位串中的哪个位串具有较大对应数值。方法880可另外包含(例如,类似于结合框896描述的步骤)在数个第二加法操作中的每一个之后,将数个第二加法操作中的相应第二加法操作的结果替代地写入于存储器阵列的第五行或第六行中。在数个第二加法操作之后,乘法操作的第二部分的结果存储于第五行或第六行中,而所述第五行或第六行中的哪个行具有较大对应数值。
响应于获得乘法操作的第一部分和第二部分的结果,可使用逻辑电路系统(例如,图1中所说明的逻辑电路系统122)通过将第一部分的结果除以第二部分的结果来执行除法操作。除法操作的结果可对应于乘法操作的结果。
虽然已在本文中示出并描述了具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代所示出的具体实施例。本公开意图覆盖本公开的一或多个实施例的修改或变化。应理解,以说明方式而非限制方式进行了以上描述。在查阅以上描述后,以上实施例和本文未具体描述的其它实施例的组合对于所属领域的技术人员来说将显而易见。本公开的一或多个实施例的范围包含其中使用以上结构和过程的其它应用。因此,应参考所附权利要求书连同此类权利要求所赋予的等效物的全范围确定本公开的一或多个实施例的范围。
在前述具体实施方式中,出于简化本公开的目的而将一些特征一起分组在单个实施例中。本公开的此方法不应被理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。实际上,如所附权利要求书所反映,本发明标的物在于单个所公开的实施例的不到全部的特征。因此,所附权利要求书特此并入于具体实施方式中,其中每项权利要求就其自身而言作为单独实施例。
Claims (24)
1.一种方法,其包括:
将第一位串写入到存储器阵列的与第一存取线耦合的第一存储器单元群组和与第二存取线耦合的第二存储器单元群组,以使用所述第一位串和第二位串作为操作数在所述存储器阵列内执行算术操作;
将对应于与所述第二位串相关联的数值的初始值存储于计数器内,其中根据通用数格式或位置格式格式化所述第一位串和所述第二位串;和
对于数个加法操作中的每一个,通过以下操作执行所述数个加法操作直到所述计数器达到特定值为止:
使用存储于所述第一存储器单元群组中的所述第一位串作为第一操作数;或
使用存储于所述第二存储器单元群组中的位串或存储于所述存储器阵列的耦合到第三存取线的第三存储器单元群组中的位串作为用于所述数个加法操作中的每一个的第二操作数;和
在所述数个加法操作中的每一个之后,将所述数个加法操作中的前一加法操作的结果写入到所述第二存储器单元群组或所述第三存储器单元群组,所述第二存储器单元群组或所述第三存储器单元群组的对应位串不用作所述第二操作数;
其中当所述计数器达到所述特定值时,存储于所述第二存储器单元群组或所述第三存储器单元群组中的所述数个加法操作的结果对应于所述算术操作的结果。
2.根据权利要求1所述的方法,其中所述算术操作包括乘法操作。
3.根据权利要求1所述的方法,其另外包括:
响应于所述数个加法操作中的每一个完成而更新与所述计数器相关联的值。
4.根据权利要求1所述的方法,其另外包括:
执行所述数个加法操作直到所述计数器达到所述特定值1为止。
5.根据权利要求1所述的方法,其另外包括:
将所述结果写入所述第二存储器单元群组或所述第三存储器单元群组中,所述第二存储器单元群组或所述第三存储器单元群组的对应位串不用作所述数个加法操作中的相应一个的所述第二操作数。
6.根据权利要求2所述的方法,其中所述第一位串或所述第二位串或这两者包括指示相应位串是负值还是正值的位,且其中所述方法另外包括:
响应于所述第一位串和所述第二位串的符号位各自具有相同位值,使指示正值的所得符号位与所述乘法操作的所述结果相关联;和
响应于所述第一位串和所述第二位串的所述符号位各自具有不同位值,使指示负值的所得符号位与所述乘法操作的所述结果相关联。
7.根据权利要求1所述的方法,其另外包括在将所述第一位串写入到所述存储器阵列的所述第一存储器单元群组和所述第二存储器单元群组之前:
执行将所述第一位串或所述第二位串或这两者转换成IEEE 754浮点格式或定点二进制格式的操作,以使得在所述第一位串、所述第二位串或这两者呈所述IEEE 754浮点格式或所述定点二进制格式时执行所述数个加法操作。
8.根据权利要求7所述的方法,其另外包括在执行所述数个加法操作之后:
执行将所述算术操作的呈所述IEEE 754浮点格式或所述定点二进制格式的所述结果转换成所述通用数格式或所述位置格式的操作;和
将所述算术操作的具有经转换格式的所述结果写入于所述存储器阵列内。
9.根据权利要求1所述的方法,其另外包括:
将所述算术操作的所述结果存储在所述存储器阵列中。
10.一种设备,其包括:
感测电路系统,其包括耦合到存储器阵列的感测放大器和计算组件,其中具有与其相关联的第一数值的第一位串和具有与其相关联的第二数值的第二位串存储于所述存储器阵列的相应第一行和第二行中;
计数器,其以通信方式耦合到所述感测电路系统和所述存储器阵列;和
控制电路系统,其耦合到所述计数器、所述感测电路系统和所述存储器阵列,其中所述控制电路系统被配置成:
将初始值存储于所述计数器内;和
致使所述感测电路系统至少部分地基于所述计数器所存储的所述值而使用所述第一位串、所述第二位串或第三位串或其任何组合执行算术操作的数次重复,其中对于所述数次重复中的每一个,所述感测电路系统被配置成:
通过将所述第二数值和第三数值中的较大数值与所述第一数值相加来执行加法操作,其中所述第三位串具有与其相关联的所述第三数值并且存储于所述存储器阵列的第三行中;和
将所述加法操作的结果存储于所述存储器阵列的所述第二行或所述第三行中,所述第二行或所述第三行的对应位串不用作前一加法操作的操作数;
其中:
由于以所述第一数值、所述第二数值或所述第三数值或其任何组合的操作数执行了所述数次重复而执行乘法操作;且
存储于所述第二行或所述第三行上的所述数次重复的结果对应于所述乘法操作的结果。
11.根据权利要求10所述的设备,其中所述乘法操作的所述结果存储于所述第二行或所述第三行中,在所述第二行或所述第三行中存储所述数次重复中的最后一次重复的结果。
12.根据权利要求10所述的设备,所述控制电路系统被配置成:
针对所述数次重复中的每一个使所述计数器递减;和
致使所述感测电路系统执行所述数次重复直到所述计数器的值达到值1为止,以使得在所述计数器中指定的重复次数对应于所述第二数值减去1。
13.根据权利要求10所述的设备,其中所述控制电路系统另外包括逻辑电路系统,且所述控制电路系统被配置成在所述第一位串写入到所述第一行和所述第二行之前:
从所述存储器阵列检索呈第一格式的所述第一位串和所述第二位串;
致使所述逻辑电路系统执行将所述第一位串和所述第二位串从所述第一格式转换成第二格式的操作;和
将具有经转换第二格式的所述第一位串和所述第二位串传送到所述感测电路系统,使得在所述第一位串和所述第二位串呈所述第二格式时执行所述数次重复;
其中所述第一格式包括IEEE 754格式、定点二进制格式或十进制格式且所述第二格式包括通用数格式和位置格式。
14.根据权利要求13所述的设备,其中所述控制电路系统被配置成:
从所述感测电路系统检索所述乘法操作的具有所述第二格式的所述结果;
致使所述逻辑电路系统执行将所述乘法的所述结果从所述第二格式转换成所述第一格式的操作;和
致使所述感测电路系统将所述乘法操作的所述结果存储于所述存储器阵列中,以使得所述乘法的所述结果以所述第一格式存储。
15.根据权利要求10所述的设备,其中所述控制电路系统被配置成在执行所述数次重复时,存储指示所述乘法运算的所述结果是正数值还是负数值的符号位。
16.一种方法,其包括:
将相应位串中的每一个转换成数个各自对应于由所述相应位串指示的数值中的相应数值的分子或分母的位串以使用所述数值的操作数执行乘法操作;
将所述数个位串中对应于所述操作数的所述分子中的一个的第一位串写入到存储器阵列的第一行和第二行;
响应于写入所述第一位串而更新计数器的值;和
通过以下操作来执行数个第一加法操作直到所述计数器的所述值达到特定值为止:
使用存储于所述第一行中的所述第一位串作为第一操作数;
使用存储于所述第二行中的位串或存储于所述存储器阵列的第三行中的位串中的具有较大对应数值的那个位串作为第二操作数;和
在所述数个第一加法操作中的每一个之后,将所述数个第一加法操作中的相应第一加法操作的结果替代地写入于所述存储器阵列的所述第二行或所述第三行中;
其中所述乘法操作的第一部分的结果存储于所述第二行或所述第三行中具有较大对应数值的那个行中。
17.根据权利要求16所述的方法,其另外包括使所述计数器的所述值递减,其中所述特定值是1。
18.根据权利要求16所述的方法,其另外包括将所述数个第一加法操作中的所述相应第一加法操作的所述结果写入于所述存储器阵列的所述第二行或所述第三行中具有较小对应数值的那个行中。
19.根据权利要求16所述的方法,其中所述相应位串中的一或多个包括指示所述相应位串中的所述一或多个呈分数形式的分数。
20.根据权利要求16所述的方法,其另外包括:
将所述数个位串中指示所述操作数的所述分母中的一个的第三位串写入到所述存储器阵列的第四行和第五行;
响应于写入所述第三位串而更新所述计数器的值;和
通过以下操作来执行数个第二加法操作直到所述计数器达到数值1为止:
使用所述第三行中的所述第三位串作为所述数个第二加法操作的一个操作数;
使用存储于第五行中的位串或存储于所述存储器阵列的第六行中的位串中具有较大对应数值的那个位串作为所述数个第二加法操作的另一操作数;和
在所述数个第二加法操作中的每一个之后,将所述数个第二加法操作中的相应第二加法操作的结果替代地写入于所述存储器阵列的所述第五行或所述第六行中;
其中所述乘法操作的第二部分的结果存储于所述第五行或所述第六行中具有较大对应数值的那个行中。
21.根据权利要求20所述的方法,其另外包括:
使用逻辑电路系统通过将所述第一部分的所述结果除以所述第二部分的所述结果来执行除法操作,其中所述除法操作的结果对应于所述乘法操作的结果。
22.一种系统,其包括:
逻辑电路系统,其耦合到存储器阵列;
计数器,其耦合到所述逻辑电路系统和所述存储器阵列;和
控制电路系统,其耦合到所述计数器、所述逻辑电路系统和所述存储器阵列,其中作为调用根据通用数或位置格式格式化的多个位串执行乘法操作的部分,所述控制电路系统被配置成进行以下操作:
将所述计数器初始化为具有第一计数器值;
将第一位串和第二位串分别写入到所述存储器阵列的第一行和所述存储器阵列的第二行;
响应于写入所述第一位串和所述第二位串,使所述第一计数器值递减到第二计数器值;
致使使用所述第一位串和所述第二位串作为操作数执行第一加法操作,其中作为所述第一加法操作的所述执行的部分,所述控制电路系统将进行以下操作:
响应于所述第一加法操作完成而使所述计数器递减;和
将所述第一加法操作的结果写入到所述存储器阵列的第三行;
致使使用所述第一位串和存储于所述存储器阵列的所述第三行中的所述第一加法操作的所述结果作为操作数执行第二加法操作,其中作为执行所述第二加法操作的部分,所述控制电路系统将进行以下操作:
响应于所述第二加法操作完成而使所述计数器递减;和
将所述第二加法操作的结果写入到所述存储器阵列的所述第二行;
确定所述计数器已递减到指示所述乘法操作完成的值;
响应于确定存储于所述存储器阵列的所述第二行中的所述加法操作的所述结果与存储于所述第三行中的所述加法操作的所述结果相比具有与其对应的较大数值,将存储于所述第二行中的所述加法操作的所述结果写入到所述存储器阵列外部的电路系统;和
响应于确定存储于所述存储器阵列的所述第三行中的所述加法操作的所述结果与存储于所述第二行中的所述加法操作的所述结果相比具有与其对应的较大数值,将存储于所述第三行中的所述加法操作的所述结果写入到所述存储器阵列外部的所述电路系统,
其中在将存储于所述第二行中的所述加法操作的所述结果或存储于所述第三行中的所述加法操作的所述结果写入到所述阵列外部的所述电路系统之前,所述逻辑电路系统被配置成执行将存储于所述第二行中的所述加法操作的所述结果或存储于所述第三行中的所述加法操作的所述结果从所述通用数或位置格式转换成IEEE 754浮点格式或定点二进制格式的操作。
23.根据权利要求22所述的系统,其中所述控制电路系统被配置成在具有相同位长度的多个位串当中执行所述乘法操作。
24.根据权利要求22所述的系统,其中所述控制电路系统被配置成:
确定所述多个位串中的所述一或多个中的至少两个具有相同位长度的指数位子集;和
响应于所述确定,使用所述多个位串中的所述一或多个中的至少两个执行所述乘法操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/934,482 | 2020-07-21 | ||
US16/934,482 US11227641B1 (en) | 2020-07-21 | 2020-07-21 | Arithmetic operations in memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961170A CN113961170A (zh) | 2022-01-21 |
CN113961170B true CN113961170B (zh) | 2022-11-11 |
Family
ID=79293758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110818472.8A Active CN113961170B (zh) | 2020-07-21 | 2021-07-20 | 存储器中的算术操作 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11227641B1 (zh) |
CN (1) | CN113961170B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11720619B2 (en) * | 2020-11-16 | 2023-08-08 | Arm Limited | Filtering based on a range specifier |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101790718A (zh) * | 2007-08-10 | 2010-07-28 | 爱特梅尔公司 | 用于大数乘法的方法及系统 |
CN102105860A (zh) * | 2008-07-21 | 2011-06-22 | 西门子公司 | 用于实施特征2乘法的方法和处理器设备 |
WO2015015905A1 (ja) * | 2013-07-29 | 2015-02-05 | 学校法人明星学苑 | 論理演算装置 |
CN106354654A (zh) * | 2015-07-15 | 2017-01-25 | 爱思开海力士有限公司 | 存储器件、包括其的存储系统及存储器件的操作方法 |
Family Cites Families (364)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4380046A (en) | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
JPS6032911B2 (ja) | 1979-07-26 | 1985-07-31 | 株式会社東芝 | 半導体記憶装置 |
US4435792A (en) | 1982-06-30 | 1984-03-06 | Sun Microsystems, Inc. | Raster memory manipulation apparatus |
US4727474A (en) | 1983-02-18 | 1988-02-23 | Loral Corporation | Staging memory for massively parallel processor |
EP0214718A3 (en) | 1985-07-22 | 1990-04-04 | Alliant Computer Systems Corporation | Digital computer |
US4758972A (en) | 1986-06-02 | 1988-07-19 | Raytheon Company | Precision rounding in a floating point arithmetic unit |
US5201039A (en) | 1987-09-30 | 1993-04-06 | Mitsubishi Denki Kabushiki Kaisha | Multiple address-space data processor with addressable register and context switching |
US4843264A (en) | 1987-11-25 | 1989-06-27 | Visic, Inc. | Dynamic sense amplifier for CMOS static RAM |
US5276643A (en) | 1988-08-11 | 1994-01-04 | Siemens Aktiengesellschaft | Integrated semiconductor circuit |
JPH0713858B2 (ja) | 1988-08-30 | 1995-02-15 | 三菱電機株式会社 | 半導体記憶装置 |
US5023838A (en) | 1988-12-02 | 1991-06-11 | Ncr Corporation | Random access memory device with integral logic capability |
US4958378A (en) | 1989-04-26 | 1990-09-18 | Sun Microsystems, Inc. | Method and apparatus for detecting changes in raster data |
US5253308A (en) | 1989-06-21 | 1993-10-12 | Amber Engineering, Inc. | Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing |
EP0446721B1 (en) | 1990-03-16 | 2000-12-20 | Texas Instruments Incorporated | Distributed processing memory |
US5034636A (en) | 1990-06-04 | 1991-07-23 | Motorola, Inc. | Sense amplifier with an integral logic function |
US5210850A (en) | 1990-06-15 | 1993-05-11 | Compaq Computer Corporation | Memory address space determination using programmable limit registers with single-ended comparators |
JP3361825B2 (ja) | 1990-08-22 | 2003-01-07 | テキサス インスツルメンツ インコーポレイテツド | メモリ・アレイ・アーキテクチャ |
JPH06103599B2 (ja) | 1990-11-16 | 1994-12-14 | 三菱電機株式会社 | 半導体集積回路装置 |
US5325519A (en) | 1991-10-18 | 1994-06-28 | Texas Microsystems, Inc. | Fault tolerant computer with archival rollback capabilities |
FR2685973B1 (fr) | 1992-01-03 | 1994-02-25 | France Telecom | Point memoire pour memoire associative. |
KR950005095Y1 (ko) | 1992-03-18 | 1995-06-22 | 문정환 | 양방향성 그로벌 비트 라인을 갖는 dram |
JPH06215160A (ja) | 1992-08-25 | 1994-08-05 | Texas Instr Inc <Ti> | データ処理方法および装置 |
KR950004854B1 (ko) | 1992-10-08 | 1995-05-15 | 삼성전자 주식회사 | 반도체 메모리 장치 |
US5440482A (en) | 1993-03-25 | 1995-08-08 | Taligent, Inc. | Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order |
US5485373A (en) | 1993-03-25 | 1996-01-16 | Taligent, Inc. | Language-sensitive text searching system with modified Boyer-Moore process |
US5754478A (en) | 1993-04-20 | 1998-05-19 | Micron Technology, Inc. | Fast, low power, write scheme for memory circuits using pulsed off isolation device |
US5369622A (en) | 1993-04-20 | 1994-11-29 | Micron Semiconductor, Inc. | Memory with isolated digit lines |
JP2663838B2 (ja) | 1993-07-27 | 1997-10-15 | 日本電気株式会社 | 半導体集積回路装置 |
JP3252306B2 (ja) | 1993-08-10 | 2002-02-04 | 株式会社日立製作所 | 半導体不揮発性記憶装置 |
JP3904244B2 (ja) | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
JP3251421B2 (ja) | 1994-04-11 | 2002-01-28 | 株式会社日立製作所 | 半導体集積回路 |
US5655113A (en) | 1994-07-05 | 1997-08-05 | Monolithic System Technology, Inc. | Resynchronization circuit for a memory system and method of operating same |
JPH0831168A (ja) | 1994-07-13 | 1996-02-02 | Hitachi Ltd | 半導体記憶装置 |
US5481500A (en) | 1994-07-22 | 1996-01-02 | International Business Machines Corporation | Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories |
US5615404A (en) | 1994-10-31 | 1997-03-25 | Intel Corporation | System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals |
US5638128A (en) | 1994-11-08 | 1997-06-10 | General Instrument Corporation Of Delaware | Pixel interpolation filters for video decompression processor |
US5724366A (en) | 1995-05-16 | 1998-03-03 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device |
KR0146530B1 (ko) | 1995-05-25 | 1998-09-15 | 김광호 | 단속제어회로를 구비한 반도체 메모리 장치와 제어방법 |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
JP2812262B2 (ja) | 1995-08-31 | 1998-10-22 | 日本電気株式会社 | 連想記憶装置 |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
JP2817836B2 (ja) | 1995-11-30 | 1998-10-30 | 日本電気株式会社 | 半導体メモリ装置 |
JP3356612B2 (ja) | 1996-02-29 | 2002-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 高速な輪郭スムージング方法及び装置 |
US6092186A (en) | 1996-05-07 | 2000-07-18 | Lucent Technologies Inc. | Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device |
US5915084A (en) | 1996-09-30 | 1999-06-22 | Advanced Micro Devices, Inc. | Scannable sense amplifier circuit |
US5991209A (en) | 1997-04-11 | 1999-11-23 | Raytheon Company | Split sense amplifier and staging buffer for wide memory architecture |
JP3592887B2 (ja) | 1997-04-30 | 2004-11-24 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6510098B1 (en) | 1997-05-28 | 2003-01-21 | Cirrus Logic, Inc. | Method and apparatus for transferring data in a dual port memory |
JPH1115773A (ja) | 1997-06-24 | 1999-01-22 | Matsushita Electron Corp | 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法 |
US5935263A (en) | 1997-07-01 | 1999-08-10 | Micron Technology, Inc. | Method and apparatus for memory array compressed data testing |
US6195734B1 (en) | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
US6181698B1 (en) | 1997-07-09 | 2001-01-30 | Yoichi Hariguchi | Network routing table using content addressable memory |
US6025221A (en) | 1997-08-22 | 2000-02-15 | Micron Technology, Inc. | Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks |
US5991785A (en) | 1997-11-13 | 1999-11-23 | Lucent Technologies Inc. | Determining an extremum value and its index in an array using a dual-accumulation processor |
US5867429A (en) | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6163862A (en) | 1997-12-01 | 2000-12-19 | International Business Machines Corporation | On-chip test circuit for evaluating an on-chip signal using an external test signal |
JP3488612B2 (ja) | 1997-12-11 | 2004-01-19 | 株式会社東芝 | センス増幅回路 |
US5986942A (en) | 1998-01-20 | 1999-11-16 | Nec Corporation | Semiconductor memory device |
JPH11260057A (ja) | 1998-03-13 | 1999-09-24 | Nec Corp | 半導体記憶装置 |
JPH11265995A (ja) | 1998-03-17 | 1999-09-28 | Mitsubishi Electric Corp | 半導体記憶装置 |
JPH11306751A (ja) | 1998-04-22 | 1999-11-05 | Toshiba Corp | 半導体記憶装置 |
US6005799A (en) | 1998-08-06 | 1999-12-21 | Silicon Aquarius | Methods and circuits for single-memory dynamic cell multivalue data storage |
US6141286A (en) | 1998-08-21 | 2000-10-31 | Micron Technology, Inc. | Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines |
US7409694B2 (en) | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
JP2000173269A (ja) | 1998-12-08 | 2000-06-23 | Mitsubishi Electric Corp | 半導体記憶装置 |
KR100381968B1 (ko) | 1998-12-30 | 2004-03-24 | 주식회사 하이닉스반도체 | 고속동작용디램 |
US6389507B1 (en) | 1999-01-15 | 2002-05-14 | Gigabus, Inc. | Memory device search system and method |
US5999435A (en) | 1999-01-15 | 1999-12-07 | Fast-Chip, Inc. | Content addressable memory device |
US6134164A (en) | 1999-04-22 | 2000-10-17 | International Business Machines Corp. | Sensing circuit for a memory cell array |
US6741104B2 (en) | 1999-05-26 | 2004-05-25 | Micron Technology, Inc. | DRAM sense amplifier for low voltages |
US6157578A (en) | 1999-07-15 | 2000-12-05 | Stmicroelectronics, Inc. | Method and apparatus for accessing a memory device |
US6208544B1 (en) | 1999-09-09 | 2001-03-27 | Harris Corporation | Content addressable memory cell providing simultaneous read and compare capability |
US6578058B1 (en) | 1999-10-06 | 2003-06-10 | Agilent Technologies, Inc. | System and method for comparing values from target systems |
US7124221B1 (en) | 1999-10-19 | 2006-10-17 | Rambus Inc. | Low latency multi-level communication interface |
US6418498B1 (en) | 1999-12-30 | 2002-07-09 | Intel Corporation | Integrated system management memory for system management interrupt handler independent of BIOS and operating system |
JP4627103B2 (ja) | 2000-01-18 | 2011-02-09 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びその制御方法 |
US6687175B1 (en) | 2000-02-04 | 2004-02-03 | Renesas Technology Corporation | Semiconductor device |
WO2001065359A2 (en) | 2000-02-29 | 2001-09-07 | Peter Petrov | Method and apparatus for building a memory image |
JP3983969B2 (ja) | 2000-03-08 | 2007-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7028170B2 (en) | 2000-03-08 | 2006-04-11 | Sun Microsystems, Inc. | Processing architecture having a compare capability |
US6678678B2 (en) | 2000-03-09 | 2004-01-13 | Braodcom Corporation | Method and apparatus for high speed table search |
JP3822412B2 (ja) | 2000-03-28 | 2006-09-20 | 株式会社東芝 | 半導体記憶装置 |
US6965648B1 (en) | 2000-05-04 | 2005-11-15 | Sun Microsystems, Inc. | Source synchronous link integrity validation |
KR100869870B1 (ko) | 2000-07-07 | 2008-11-24 | 모사이드 테크놀로지스, 인코포레이티드 | 메모리 소자에서의 읽기 명령 수행 방법 및 dram액세스 방법 |
US6466499B1 (en) | 2000-07-11 | 2002-10-15 | Micron Technology, Inc. | DRAM sense amplifier having pre-charged transistor body nodes |
AU2001285161A1 (en) | 2000-08-21 | 2002-03-04 | United States Postal Services | Delivery point validation system |
US6301164B1 (en) | 2000-08-25 | 2001-10-09 | Micron Technology, Inc. | Antifuse method to repair columns in a prefetched output memory architecture |
US6704828B1 (en) | 2000-08-31 | 2004-03-09 | Micron Technology, Inc. | System and method for implementing data pre-fetch having reduced data lines and/or higher data rates |
US6948056B1 (en) | 2000-09-28 | 2005-09-20 | Intel Corporation | Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages |
US6304477B1 (en) | 2001-01-31 | 2001-10-16 | Motorola, Inc. | Content addressable magnetic random access memory |
US6563754B1 (en) | 2001-02-08 | 2003-05-13 | Integrated Device Technology, Inc. | DRAM circuit with separate refresh memory |
US6650158B2 (en) | 2001-02-21 | 2003-11-18 | Ramtron International Corporation | Ferroelectric non-volatile logic elements |
US7546438B2 (en) | 2001-07-19 | 2009-06-09 | Chung Shine C | Algorithm mapping, specialized instructions and architecture features for smart memory computing |
US6807614B2 (en) | 2001-07-19 | 2004-10-19 | Shine C. Chung | Method and apparatus for using smart memories in computing |
ITRM20010531A1 (it) | 2001-08-31 | 2003-02-28 | Micron Technology Inc | Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash. |
US7260672B2 (en) | 2001-09-07 | 2007-08-21 | Intel Corporation | Using data stored in a destructive-read memory |
US7062689B2 (en) | 2001-12-20 | 2006-06-13 | Arm Limited | Method and apparatus for memory self testing |
US20040073773A1 (en) | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US6707729B2 (en) | 2002-02-15 | 2004-03-16 | Micron Technology, Inc. | Physically alternating sense amplifier activation |
WO2003088033A1 (en) | 2002-04-09 | 2003-10-23 | University Of Rochester | Multiplier-based processor-in-memory architectures for image and graphics processing |
JP2003331598A (ja) | 2002-05-13 | 2003-11-21 | Mitsubishi Electric Corp | 半導体記憶装置 |
US7406494B2 (en) | 2002-05-14 | 2008-07-29 | Texas Instruments Incorporated | Method of generating a cycle-efficient bit-reverse index array for a wireless communication system |
JP2003346484A (ja) | 2002-05-23 | 2003-12-05 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US6789099B2 (en) | 2002-06-10 | 2004-09-07 | International Business Machines Corporation | Sense-amp based adder with source follower evaluation tree |
US7054178B1 (en) | 2002-09-06 | 2006-05-30 | Etron Technology, Inc. | Datapath architecture for high area efficiency |
US6987693B2 (en) | 2002-09-24 | 2006-01-17 | Sandisk Corporation | Non-volatile memory and method with reduced neighboring field errors |
US7079407B1 (en) | 2002-10-18 | 2006-07-18 | Netlogic Microsystems, Inc. | Content addressable memory (CAM) device including match line sensing |
US6765834B2 (en) | 2002-11-19 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | System and method for sensing memory cells of an array of memory cells |
US6731542B1 (en) | 2002-12-05 | 2004-05-04 | Advanced Micro Devices, Inc. | Circuit for accurate memory read operations |
KR100546307B1 (ko) | 2002-12-05 | 2006-01-26 | 삼성전자주식회사 | 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃 |
US6888372B1 (en) | 2002-12-20 | 2005-05-03 | Altera Corporation | Programmable logic device with soft multiplier |
WO2004059651A2 (en) | 2002-12-27 | 2004-07-15 | Solid State System Co., Ltd. | Nonvolatile memory unit with specific cache |
US7346903B2 (en) | 2003-02-04 | 2008-03-18 | Sun Microsystems, Inc. | Compiling and linking modules of a cycle-based logic design |
US6768679B1 (en) | 2003-02-10 | 2004-07-27 | Advanced Micro Devices, Inc. | Selection circuit for accurate memory read operations |
US6819612B1 (en) | 2003-03-13 | 2004-11-16 | Advanced Micro Devices, Inc. | Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage |
US6865122B2 (en) | 2003-04-11 | 2005-03-08 | Intel Corporation | Reclaiming blocks in a block-alterable memory |
US7574466B2 (en) | 2003-04-23 | 2009-08-11 | Micron Technology, Inc. | Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements |
US7447720B2 (en) | 2003-04-23 | 2008-11-04 | Micron Technology, Inc. | Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements |
US7454451B2 (en) | 2003-04-23 | 2008-11-18 | Micron Technology, Inc. | Method for finding local extrema of a set of values for a parallel processing element |
US9015390B2 (en) | 2003-04-25 | 2015-04-21 | Micron Technology, Inc. | Active memory data compression system and method |
DE10319271A1 (de) | 2003-04-29 | 2004-11-25 | Infineon Technologies Ag | Speicher-Schaltungsanordnung und Verfahren zur Herstellung |
JP3898152B2 (ja) | 2003-05-27 | 2007-03-28 | ローム株式会社 | 演算機能付き記憶装置および演算記憶方法 |
ATE366985T1 (de) | 2003-09-04 | 2007-08-15 | Koninkl Philips Electronics Nv | Integrierte schaltung und verfahren zum cache- umabbilden |
US6956770B2 (en) | 2003-09-17 | 2005-10-18 | Sandisk Corporation | Non-volatile memory and method with bit line compensation dependent on neighboring operating modes |
US7177183B2 (en) | 2003-09-30 | 2007-02-13 | Sandisk 3D Llc | Multiple twin cell non-volatile memory array and logic block structure and method therefor |
US7913125B2 (en) | 2003-11-04 | 2011-03-22 | Lsi Corporation | BISR mode to test the redundant elements and regular functional memory to avoid test escapes |
US6950771B1 (en) | 2003-12-09 | 2005-09-27 | Xilinx, Inc. | Correlation of electrical test data with physical defect data |
US7401281B2 (en) | 2004-01-29 | 2008-07-15 | International Business Machines Corporation | Remote BIST high speed test and redundancy calculation |
US7631236B2 (en) | 2004-01-29 | 2009-12-08 | International Business Machines Corporation | Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method |
JP4819316B2 (ja) | 2004-02-23 | 2011-11-24 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US7088606B2 (en) | 2004-03-10 | 2006-08-08 | Altera Corporation | Dynamic RAM storage techniques |
US7020017B2 (en) | 2004-04-06 | 2006-03-28 | Sandisk Corporation | Variable programming of non-volatile memory |
US7120063B1 (en) | 2004-05-07 | 2006-10-10 | Spansion Llc | Flash memory cell and methods for programming and erasing |
US8522205B2 (en) | 2004-05-18 | 2013-08-27 | Oracle International Corporation | Packaging multiple groups of read-only files of an application's components into multiple shared libraries |
JP2006127460A (ja) | 2004-06-09 | 2006-05-18 | Renesas Technology Corp | 半導体装置、半導体信号処理装置、およびクロスバースイッチ |
US7061817B2 (en) | 2004-06-30 | 2006-06-13 | Micron Technology, Inc. | Data path having grounded precharge operation and test compression capability |
US7116602B2 (en) | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
US7434024B2 (en) | 2004-08-30 | 2008-10-07 | Ati Technologies, Inc. | SIMD processor with register addressing, buffer stall and methods |
US7685365B2 (en) | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual memory |
US20060069849A1 (en) | 2004-09-30 | 2006-03-30 | Rudelic John C | Methods and apparatus to update information in a memory |
US20060149804A1 (en) | 2004-11-30 | 2006-07-06 | International Business Machines Corporation | Multiply-sum dot product instruction with mask and splat |
US7230851B2 (en) | 2004-12-23 | 2007-06-12 | Sandisk Corporation | Reducing floating gate to floating gate coupling effect |
KR100673901B1 (ko) | 2005-01-28 | 2007-01-25 | 주식회사 하이닉스반도체 | 저전압용 반도체 메모리 장치 |
US7543119B2 (en) | 2005-02-10 | 2009-06-02 | Richard Edward Hessel | Vector processor |
US7624313B2 (en) | 2005-03-28 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | TCAM BIST with redundancy |
US7196928B2 (en) | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
US7187585B2 (en) | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
US7193898B2 (en) | 2005-06-20 | 2007-03-20 | Sandisk Corporation | Compensation currents in non-volatile memory read operations |
KR100720644B1 (ko) | 2005-11-17 | 2007-05-21 | 삼성전자주식회사 | 메모리 장치 및 메모리 그 동작 방법 |
JP4804479B2 (ja) | 2005-12-13 | 2011-11-02 | スパンション エルエルシー | 半導体装置およびその制御方法 |
JP5129450B2 (ja) | 2006-01-16 | 2013-01-30 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
US8077533B2 (en) | 2006-01-23 | 2011-12-13 | Freescale Semiconductor, Inc. | Memory and method for sensing data in a memory using complementary sensing scheme |
JP4989900B2 (ja) | 2006-01-31 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 並列演算処理装置 |
US7400532B2 (en) | 2006-02-16 | 2008-07-15 | Micron Technology, Inc. | Programming method to reduce gate coupling interference for non-volatile memory |
KR100755370B1 (ko) | 2006-04-17 | 2007-09-04 | 삼성전자주식회사 | 반도체 메모리 장치 |
TW200828333A (en) | 2006-04-28 | 2008-07-01 | Samsung Electronics Co Ltd | Sense amplifier circuit and sense amplifier-based flip-flop having the same |
US7752417B2 (en) | 2006-06-05 | 2010-07-06 | Oracle America, Inc. | Dynamic selection of memory virtualization techniques |
US7372715B2 (en) | 2006-06-14 | 2008-05-13 | Micron Technology, Inc. | Architecture and method for NAND flash memory |
US8069377B2 (en) | 2006-06-26 | 2011-11-29 | Micron Technology, Inc. | Integrated circuit having memory array including ECC and column redundancy and method of operating the same |
US7724559B2 (en) | 2006-07-14 | 2010-05-25 | International Business Machines Corporation | Self-referenced match-line sense amplifier for content addressable memories |
US7885119B2 (en) | 2006-07-20 | 2011-02-08 | Sandisk Corporation | Compensating for coupling during programming |
US7443729B2 (en) | 2006-07-20 | 2008-10-28 | Sandisk Corporation | System that compensates for coupling based on sensing a neighbor using coupling |
US7692466B2 (en) | 2006-08-18 | 2010-04-06 | Ati Technologies Ulc | Sense amplifier based flip-flop |
US7805587B1 (en) | 2006-11-01 | 2010-09-28 | Nvidia Corporation | Memory addressing controlled by PTE fields |
US8151082B2 (en) | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US7471536B2 (en) | 2006-12-08 | 2008-12-30 | Texas Instruments Incorporated | Match mismatch emulation scheme for an addressed location in a CAM |
US7460387B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | eDRAM hierarchical differential sense amp |
US7743303B2 (en) | 2007-01-22 | 2010-06-22 | Micron Technology, Inc. | Defective memory block remapping method and system, and memory device and processor-based system using same |
US7865541B1 (en) | 2007-01-22 | 2011-01-04 | Altera Corporation | Configuring floating point operations in a programmable logic device |
US7937535B2 (en) | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
US7804718B2 (en) | 2007-03-07 | 2010-09-28 | Mosaid Technologies Incorporated | Partial block erase architecture for flash memory |
US7492640B2 (en) | 2007-06-07 | 2009-02-17 | Sandisk Corporation | Sensing with bit-line lockout control in non-volatile memory |
JP2009009665A (ja) | 2007-06-29 | 2009-01-15 | Elpida Memory Inc | 半導体記憶装置 |
US7996749B2 (en) | 2007-07-03 | 2011-08-09 | Altera Corporation | Signal loss detector for high-speed serial interface of a programmable logic device |
US7489543B1 (en) | 2007-07-25 | 2009-02-10 | Micron Technology, Inc. | Programming multilevel cell memory arrays |
US7694195B2 (en) | 2007-08-14 | 2010-04-06 | Dell Products L.P. | System and method for using a memory mapping function to map memory defects |
US7869273B2 (en) | 2007-09-04 | 2011-01-11 | Sandisk Corporation | Reducing the impact of interference during programming |
US7787319B2 (en) | 2007-09-06 | 2010-08-31 | Innovative Silicon Isi Sa | Sense amplifier circuitry for integrated circuit having memory cell array, and method of operating same |
US8042082B2 (en) | 2007-09-12 | 2011-10-18 | Neal Solomon | Three dimensional memory in a system on a chip |
US7965564B2 (en) | 2007-09-18 | 2011-06-21 | Zikbit Ltd. | Processor arrays made of standard memory cells |
US7663928B2 (en) | 2007-10-09 | 2010-02-16 | Ememory Technology Inc. | Sense amplifier circuit having current mirror architecture |
WO2009052525A1 (en) | 2007-10-19 | 2009-04-23 | Virident Systems, Inc. | Managing memory systems containing components with asymmetric characteristics |
US7924628B2 (en) | 2007-11-14 | 2011-04-12 | Spansion Israel Ltd | Operation of a non-volatile memory array |
US7979667B2 (en) | 2007-12-10 | 2011-07-12 | Spansion Llc | Memory array search engine |
US7755960B2 (en) | 2007-12-17 | 2010-07-13 | Stmicroelectronics Sa | Memory including a performance test circuit |
US8495438B2 (en) | 2007-12-28 | 2013-07-23 | Texas Instruments Incorporated | Technique for memory imprint reliability improvement |
US7808854B2 (en) | 2008-02-19 | 2010-10-05 | Kabushiki Kaisha Toshiba | Systems and methods for data transfers between memory cells |
JP5194302B2 (ja) | 2008-02-20 | 2013-05-08 | ルネサスエレクトロニクス株式会社 | 半導体信号処理装置 |
US8332580B2 (en) | 2008-04-02 | 2012-12-11 | Zikbit Ltd. | System, method and apparatus for memory with embedded associative section for computations |
US20090254694A1 (en) | 2008-04-02 | 2009-10-08 | Zikbit Ltd. | Memory device with integrated parallel processing |
US7957206B2 (en) | 2008-04-04 | 2011-06-07 | Micron Technology, Inc. | Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same |
US8339824B2 (en) | 2008-07-02 | 2012-12-25 | Cooke Laurence H | Nearest neighbor serial content addressable memory |
US8214417B2 (en) | 2008-08-14 | 2012-07-03 | Oracle America, Inc. | Subnormal number handling in floating point adder without detection of subnormal numbers before exponent subtraction |
US8417921B2 (en) | 2008-08-15 | 2013-04-09 | Apple Inc. | Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector |
US8555037B2 (en) | 2008-08-15 | 2013-10-08 | Apple Inc. | Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture |
US8259509B2 (en) | 2008-08-18 | 2012-09-04 | Elpida Memory, Inc. | Semiconductor memory device and method with auxiliary I/O line assist circuit and functionality |
ITRM20080543A1 (it) | 2008-10-09 | 2010-04-10 | Micron Technology Inc | Architettura e metodo per la programmazione di memorie. |
KR101596283B1 (ko) | 2008-12-19 | 2016-02-23 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
KR101622922B1 (ko) | 2009-03-06 | 2016-05-20 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
US8484276B2 (en) | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
KR20100134235A (ko) | 2009-06-15 | 2010-12-23 | 삼성전자주식회사 | 반도체 메모리 장치 |
US7898864B2 (en) | 2009-06-24 | 2011-03-01 | Sandisk Corporation | Read operation for memory with compensation for coupling based on write-erase cycles |
US8412987B2 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Non-volatile memory to store memory remap information |
US8412985B1 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Hardwired remapped memory |
US9076527B2 (en) | 2009-07-16 | 2015-07-07 | Mikamonu Group Ltd. | Charge sharing in a TCAM array |
US8238173B2 (en) | 2009-07-16 | 2012-08-07 | Zikbit Ltd | Using storage cells to perform computation |
JP4951041B2 (ja) | 2009-08-06 | 2012-06-13 | 株式会社東芝 | 半導体記憶装置 |
US8059438B2 (en) | 2009-08-28 | 2011-11-15 | International Business Machines Corporation | Content addressable memory array programmed to perform logic operations |
US8077532B2 (en) | 2009-09-02 | 2011-12-13 | Micron Technology, Inc. | Small unit internal verify read in a memory device |
US8482975B2 (en) | 2009-09-14 | 2013-07-09 | Micron Technology, Inc. | Memory kink checking |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US9477636B2 (en) | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US20120246380A1 (en) | 2009-10-21 | 2012-09-27 | Avidan Akerib | Neighborhood operations for parallel processing |
US8650232B2 (en) | 2009-10-26 | 2014-02-11 | Via Technologies, Inc. | System and method for determination of a horizontal minimum of digital values |
KR101634340B1 (ko) | 2009-11-03 | 2016-06-28 | 삼성전자주식회사 | 반도체 메모리 장치의 프로그램 방법 |
US8583896B2 (en) | 2009-11-13 | 2013-11-12 | Nec Laboratories America, Inc. | Massively parallel processing core with plural chains of processing elements and respective smart memory storing select data received from each chain |
KR20110054773A (ko) | 2009-11-18 | 2011-05-25 | 삼성전자주식회사 | 비트라인 디스털번스를 개선하는 반도체 메모리 장치 |
US8089815B2 (en) | 2009-11-24 | 2012-01-03 | Sandisk Technologies Inc. | Programming memory with bit line floating to reduce channel-to-floating gate coupling |
US8605015B2 (en) | 2009-12-23 | 2013-12-10 | Syndiant, Inc. | Spatial light modulator with masking-comparators |
JP2011146102A (ja) | 2010-01-15 | 2011-07-28 | Elpida Memory Inc | 半導体装置及びデータ処理システム |
CN102141905B (zh) | 2010-01-29 | 2015-02-25 | 上海芯豪微电子有限公司 | 一种处理器体系结构 |
US8164942B2 (en) | 2010-02-01 | 2012-04-24 | International Business Machines Corporation | High performance eDRAM sense amplifier |
US8533245B1 (en) | 2010-03-03 | 2013-09-10 | Altera Corporation | Multipliers with a reduced number of memory blocks |
EP2564306A4 (en) | 2010-04-27 | 2017-04-26 | Cornell University | System and methods for mapping and searching objects in multidimensional space |
KR101119371B1 (ko) | 2010-04-29 | 2012-03-06 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 이의 동작 방법 |
US8559232B2 (en) | 2010-05-03 | 2013-10-15 | Aplus Flash Technology, Inc. | DRAM-like NVM memory array and sense amplifier design for high temperature and high endurance operation |
US8351278B2 (en) | 2010-06-23 | 2013-01-08 | International Business Machines Corporation | Jam latch for latching memory array output data |
KR101143471B1 (ko) | 2010-07-02 | 2012-05-11 | 에스케이하이닉스 주식회사 | 센스앰프 및 이를 포함하는 반도체 장치 |
US20120017039A1 (en) | 2010-07-16 | 2012-01-19 | Plx Technology, Inc. | Caching using virtual memory |
US8462532B1 (en) | 2010-08-31 | 2013-06-11 | Netlogic Microsystems, Inc. | Fast quaternary content addressable memory cell |
US8347154B2 (en) | 2010-09-21 | 2013-01-01 | International Business Machines Corporation | Use of hashing function to distinguish random and repeat errors in a memory system |
US8904115B2 (en) | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8332367B2 (en) | 2010-10-20 | 2012-12-11 | International Business Machines Corporation | Parallel data redundancy removal |
KR101148352B1 (ko) | 2010-11-02 | 2012-05-21 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그의 동작 방법 |
JP5528987B2 (ja) | 2010-11-11 | 2014-06-25 | ピーエスフォー ルクスコ エスエイアールエル | 半導体装置 |
US8553482B2 (en) | 2010-11-29 | 2013-10-08 | Apple Inc. | Sense amplifier and sense amplifier latch having common control |
WO2012104674A1 (en) | 2011-01-31 | 2012-08-09 | Freescale Semiconductor, Inc. | Integrated circuit device and method for determining an index of an extreme value within an array of values |
KR20120088973A (ko) | 2011-02-01 | 2012-08-09 | 삼성전자주식회사 | 로컬 센스앰프 회로 및 이를 포함하는 반도체 메모리 장치 |
JP2012174016A (ja) | 2011-02-22 | 2012-09-10 | Renesas Electronics Corp | データ処理装置およびそのデータ処理方法 |
JP5259765B2 (ja) | 2011-03-29 | 2013-08-07 | 株式会社東芝 | 不揮発性半導体メモリ |
US8725730B2 (en) | 2011-05-23 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Responding to a query in a data processing system |
US8706958B2 (en) | 2011-09-01 | 2014-04-22 | Thomas Hein | Data mask encoding in data bit inversion scheme |
CN103907157B (zh) | 2011-10-28 | 2017-10-17 | 慧与发展有限责任合伙企业 | 进行行移位的可移位存储器 |
US8891297B2 (en) | 2011-11-01 | 2014-11-18 | Micron Technology, Inc. | Memory cell sensing |
KR101321481B1 (ko) | 2011-11-04 | 2013-10-28 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 위한 테스트 회로 |
US9830158B2 (en) | 2011-11-04 | 2017-11-28 | Nvidia Corporation | Speculative execution and rollback |
KR20130052971A (ko) | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
GB2511957B (en) | 2011-11-22 | 2015-02-11 | Mips Tech Inc | Processor with kernel mode access to user space virtual addresses |
CN105955704B (zh) | 2011-11-30 | 2018-12-04 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
CN104011657B (zh) | 2011-12-22 | 2016-10-12 | 英特尔公司 | 用于向量计算和累计的装置和方法 |
KR20130072869A (ko) | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | 프리차지 회로 및 비휘발성 메모리 장치 |
US20130286705A1 (en) | 2012-04-26 | 2013-10-31 | David B. Grover | Low power content addressable memory hitline precharge and sensing circuit |
US8938603B2 (en) | 2012-05-31 | 2015-01-20 | Samsung Electronics Co., Ltd. | Cache system optimized for cache miss detection |
US20130332707A1 (en) | 2012-06-07 | 2013-12-12 | Intel Corporation | Speed up big-number multiplication using single instruction multiple data (simd) architectures |
KR102062301B1 (ko) | 2013-01-03 | 2020-01-03 | 삼성전자주식회사 | 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법 |
US20140215185A1 (en) | 2013-01-29 | 2014-07-31 | Atmel Norway | Fetching instructions of a loop routine |
US9158667B2 (en) | 2013-03-04 | 2015-10-13 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9171153B2 (en) | 2013-05-17 | 2015-10-27 | Hewlett-Packard Development Company, L.P. | Bloom filter with memory element |
US8964496B2 (en) | 2013-07-26 | 2015-02-24 | Micron Technology, Inc. | Apparatuses and methods for performing compare operations using sensing circuitry |
US8971124B1 (en) | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9153305B2 (en) | 2013-08-30 | 2015-10-06 | Micron Technology, Inc. | Independently addressable memory array address spaces |
US9019785B2 (en) | 2013-09-19 | 2015-04-28 | Micron Technology, Inc. | Data shifting via a number of isolation devices |
US9449675B2 (en) | 2013-10-31 | 2016-09-20 | Micron Technology, Inc. | Apparatuses and methods for identifying an extremum value stored in an array of memory cells |
US9430191B2 (en) | 2013-11-08 | 2016-08-30 | Micron Technology, Inc. | Division operations for memory |
US20150270015A1 (en) | 2014-03-19 | 2015-09-24 | Micron Technology, Inc. | Memory mapping |
US9934856B2 (en) | 2014-03-31 | 2018-04-03 | Micron Technology, Inc. | Apparatuses and methods for comparing data patterns in memory |
US10838865B2 (en) | 2014-05-08 | 2020-11-17 | Micron Technology, Inc. | Stacked memory device system interconnect directory-based cache coherence methodology |
WO2015171905A1 (en) | 2014-05-08 | 2015-11-12 | Micron Technology, Inc. | In-memory lightweight coherency |
US9711206B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9830999B2 (en) | 2014-06-05 | 2017-11-28 | Micron Technology, Inc. | Comparison operations in memory |
US9711207B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9455020B2 (en) | 2014-06-05 | 2016-09-27 | Micron Technology, Inc. | Apparatuses and methods for performing an exclusive or operation using sensing circuitry |
US9496023B2 (en) | 2014-06-05 | 2016-11-15 | Micron Technology, Inc. | Comparison operations on logical representations of values in memory |
US9449674B2 (en) | 2014-06-05 | 2016-09-20 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US10074407B2 (en) | 2014-06-05 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for performing invert operations using sensing circuitry |
US9704540B2 (en) | 2014-06-05 | 2017-07-11 | Micron Technology, Inc. | Apparatuses and methods for parity determination using sensing circuitry |
US9786335B2 (en) | 2014-06-05 | 2017-10-10 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9910787B2 (en) | 2014-06-05 | 2018-03-06 | Micron Technology, Inc. | Virtual address table |
US9779019B2 (en) | 2014-06-05 | 2017-10-03 | Micron Technology, Inc. | Data storage layout |
US9904515B2 (en) | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US10068652B2 (en) | 2014-09-03 | 2018-09-04 | Micron Technology, Inc. | Apparatuses and methods for determining population count |
US9898252B2 (en) | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication operations in memory |
US9740607B2 (en) | 2014-09-03 | 2017-08-22 | Micron Technology, Inc. | Swap operations in memory |
US9847110B2 (en) | 2014-09-03 | 2017-12-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector |
US9589602B2 (en) | 2014-09-03 | 2017-03-07 | Micron Technology, Inc. | Comparison operations in memory |
US9747961B2 (en) | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US9836218B2 (en) | 2014-10-03 | 2017-12-05 | Micron Technology, Inc. | Computing reduction and prefix sum operations in memory |
US9940026B2 (en) | 2014-10-03 | 2018-04-10 | Micron Technology, Inc. | Multidimensional contiguous memory allocation |
US10163467B2 (en) | 2014-10-16 | 2018-12-25 | Micron Technology, Inc. | Multiple endianness compatibility |
US10147480B2 (en) | 2014-10-24 | 2018-12-04 | Micron Technology, Inc. | Sort operation in memory |
US9779784B2 (en) | 2014-10-29 | 2017-10-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US10073635B2 (en) | 2014-12-01 | 2018-09-11 | Micron Technology, Inc. | Multiple endianness compatibility |
US9747960B2 (en) | 2014-12-01 | 2017-08-29 | Micron Technology, Inc. | Apparatuses and methods for converting a mask to an index |
US10032493B2 (en) | 2015-01-07 | 2018-07-24 | Micron Technology, Inc. | Longest element length determination in memory |
US10061590B2 (en) | 2015-01-07 | 2018-08-28 | Micron Technology, Inc. | Generating and executing a control flow |
US9583163B2 (en) | 2015-02-03 | 2017-02-28 | Micron Technology, Inc. | Loop structure for operations in memory |
CN107408404B (zh) | 2015-02-06 | 2021-02-12 | 美光科技公司 | 用于存储器装置的设备及方法以作为程序指令的存储 |
WO2016126472A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for scatter and gather |
EP3254286B1 (en) | 2015-02-06 | 2019-09-11 | Micron Technology, INC. | Apparatuses and methods for parallel writing to multiple memory device locations |
WO2016144724A1 (en) | 2015-03-10 | 2016-09-15 | Micron Technology, Inc. | Apparatuses and methods for shift decisions |
US9741399B2 (en) | 2015-03-11 | 2017-08-22 | Micron Technology, Inc. | Data shift by elements of a vector in memory |
US9898253B2 (en) | 2015-03-11 | 2018-02-20 | Micron Technology, Inc. | Division operations on variable length elements in memory |
US10365851B2 (en) | 2015-03-12 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10146537B2 (en) | 2015-03-13 | 2018-12-04 | Micron Technology, Inc. | Vector population count determination in memory |
US10049054B2 (en) | 2015-04-01 | 2018-08-14 | Micron Technology, Inc. | Virtual register file |
US10140104B2 (en) | 2015-04-14 | 2018-11-27 | Micron Technology, Inc. | Target architecture determination |
US9959923B2 (en) | 2015-04-16 | 2018-05-01 | Micron Technology, Inc. | Apparatuses and methods to reverse data stored in memory |
US10073786B2 (en) | 2015-05-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for compute enabled cache |
US9704541B2 (en) | 2015-06-12 | 2017-07-11 | Micron Technology, Inc. | Simulating access lines |
US9921777B2 (en) | 2015-06-22 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for data transfer from sensing circuitry to a controller |
US9996479B2 (en) | 2015-08-17 | 2018-06-12 | Micron Technology, Inc. | Encryption of executables in computational memory |
US9905276B2 (en) | 2015-12-21 | 2018-02-27 | Micron Technology, Inc. | Control of sensing components in association with performing operations |
US9952925B2 (en) | 2016-01-06 | 2018-04-24 | Micron Technology, Inc. | Error code calculation on sensing circuitry |
US10048888B2 (en) | 2016-02-10 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for partitioned parallel data movement |
US9892767B2 (en) | 2016-02-12 | 2018-02-13 | Micron Technology, Inc. | Data gathering in memory |
US9971541B2 (en) | 2016-02-17 | 2018-05-15 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US9899070B2 (en) | 2016-02-19 | 2018-02-20 | Micron Technology, Inc. | Modified decode for corner turn |
US10956439B2 (en) | 2016-02-19 | 2021-03-23 | Micron Technology, Inc. | Data transfer with a bit vector operation device |
US9697876B1 (en) | 2016-03-01 | 2017-07-04 | Micron Technology, Inc. | Vertical bit vector shift in memory |
US10262721B2 (en) | 2016-03-10 | 2019-04-16 | Micron Technology, Inc. | Apparatuses and methods for cache invalidate |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10379772B2 (en) | 2016-03-16 | 2019-08-13 | Micron Technology, Inc. | Apparatuses and methods for operations using compressed and decompressed data |
US9910637B2 (en) | 2016-03-17 | 2018-03-06 | Micron Technology, Inc. | Signed division in memory |
US10388393B2 (en) | 2016-03-22 | 2019-08-20 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10120740B2 (en) | 2016-03-22 | 2018-11-06 | Micron Technology, Inc. | Apparatus and methods for debugging on a memory device |
US10474581B2 (en) | 2016-03-25 | 2019-11-12 | Micron Technology, Inc. | Apparatuses and methods for cache operations |
US10977033B2 (en) | 2016-03-25 | 2021-04-13 | Micron Technology, Inc. | Mask patterns generated in memory from seed vectors |
US10430244B2 (en) | 2016-03-28 | 2019-10-01 | Micron Technology, Inc. | Apparatuses and methods to determine timing of operations |
US10074416B2 (en) | 2016-03-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10453502B2 (en) | 2016-04-04 | 2019-10-22 | Micron Technology, Inc. | Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions |
US10607665B2 (en) | 2016-04-07 | 2020-03-31 | Micron Technology, Inc. | Span mask generation |
US9818459B2 (en) | 2016-04-19 | 2017-11-14 | Micron Technology, Inc. | Invert operations using sensing circuitry |
US10153008B2 (en) | 2016-04-20 | 2018-12-11 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US9659605B1 (en) | 2016-04-20 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US10042608B2 (en) | 2016-05-11 | 2018-08-07 | Micron Technology, Inc. | Signed division in memory |
US9659610B1 (en) | 2016-05-18 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for shifting data |
US10049707B2 (en) | 2016-06-03 | 2018-08-14 | Micron Technology, Inc. | Shifting data |
US10387046B2 (en) | 2016-06-22 | 2019-08-20 | Micron Technology, Inc. | Bank to bank data transfer |
US10037785B2 (en) | 2016-07-08 | 2018-07-31 | Micron Technology, Inc. | Scan chain operation in sensing circuitry |
US10388360B2 (en) | 2016-07-19 | 2019-08-20 | Micron Technology, Inc. | Utilization of data stored in an edge section of an array |
US10733089B2 (en) | 2016-07-20 | 2020-08-04 | Micron Technology, Inc. | Apparatuses and methods for write address tracking |
US10387299B2 (en) | 2016-07-20 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for transferring data |
US9972367B2 (en) | 2016-07-21 | 2018-05-15 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10303632B2 (en) | 2016-07-26 | 2019-05-28 | Micron Technology, Inc. | Accessing status information |
JP6625942B2 (ja) | 2016-07-29 | 2019-12-25 | 株式会社東芝 | 半導体記憶装置 |
US9990181B2 (en) | 2016-08-03 | 2018-06-05 | Micron Technology, Inc. | Apparatuses and methods for random number generation |
US11029951B2 (en) | 2016-08-15 | 2021-06-08 | Micron Technology, Inc. | Smallest or largest value element determination |
US10606587B2 (en) | 2016-08-24 | 2020-03-31 | Micron Technology, Inc. | Apparatus and methods related to microcode instructions indicating instruction types |
US10466928B2 (en) | 2016-09-15 | 2019-11-05 | Micron Technology, Inc. | Updating a register in memory |
US10387058B2 (en) | 2016-09-29 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods to change data category values |
US10014034B2 (en) | 2016-10-06 | 2018-07-03 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10529409B2 (en) | 2016-10-13 | 2020-01-07 | Micron Technology, Inc. | Apparatuses and methods to perform logical operations using sensing circuitry |
US10373666B2 (en) | 2016-11-08 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods for compute components formed over an array of memory cells |
US10423353B2 (en) | 2016-11-11 | 2019-09-24 | Micron Technology, Inc. | Apparatuses and methods for memory alignment |
US9761300B1 (en) | 2016-11-22 | 2017-09-12 | Micron Technology, Inc. | Data shift apparatuses and methods |
US10402340B2 (en) | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10403352B2 (en) | 2017-02-22 | 2019-09-03 | Micron Technology, Inc. | Apparatuses and methods for compute in data path |
US10268389B2 (en) | 2017-02-22 | 2019-04-23 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US9997212B1 (en) | 2017-04-24 | 2018-06-12 | Micron Technology, Inc. | Accessing data in memory |
US10068664B1 (en) | 2017-05-19 | 2018-09-04 | Micron Technology, Inc. | Column repair in memory |
US10942890B2 (en) * | 2019-06-04 | 2021-03-09 | Micron Technology, Inc. | Bit string accumulation in memory array periphery |
US11360768B2 (en) * | 2019-08-14 | 2022-06-14 | Micron Technolgy, Inc. | Bit string operations in memory |
US11188329B1 (en) * | 2020-06-24 | 2021-11-30 | Micron Technology, Inc. | Dynamic precision bit string accumulation |
US10903849B1 (en) * | 2020-07-20 | 2021-01-26 | Micron Technology, Inc. | Bit string compression |
-
2020
- 2020-07-21 US US16/934,482 patent/US11227641B1/en active Active
-
2021
- 2021-07-20 CN CN202110818472.8A patent/CN113961170B/zh active Active
- 2021-12-14 US US17/550,708 patent/US11727964B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101790718A (zh) * | 2007-08-10 | 2010-07-28 | 爱特梅尔公司 | 用于大数乘法的方法及系统 |
CN102105860A (zh) * | 2008-07-21 | 2011-06-22 | 西门子公司 | 用于实施特征2乘法的方法和处理器设备 |
WO2015015905A1 (ja) * | 2013-07-29 | 2015-02-05 | 学校法人明星学苑 | 論理演算装置 |
CN106354654A (zh) * | 2015-07-15 | 2017-01-25 | 爱思开海力士有限公司 | 存储器件、包括其的存储系统及存储器件的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11227641B1 (en) | 2022-01-18 |
CN113961170A (zh) | 2022-01-21 |
US20220108731A1 (en) | 2022-04-07 |
US20220028437A1 (en) | 2022-01-27 |
US11727964B2 (en) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114008583B (zh) | 存储器中的位串运算 | |
CN111724832B (zh) | 用于存储器阵列数据结构正数运算的设备、系统及方法 | |
CN112420092B (zh) | 位串转换 | |
US11714605B2 (en) | Acceleration circuitry | |
CN111696610A (zh) | 用于位串转换的设备和方法 | |
CN113965205A (zh) | 位串压缩 | |
CN113961170B (zh) | 存储器中的算术操作 | |
CN113805974A (zh) | 基于应用程序的数据类型选择 | |
CN115668224A (zh) | 使用posit的神经形态运算 | |
CN113918117B (zh) | 动态精确度位串累加 | |
CN115398392A (zh) | 算术逻辑单元 | |
CN113454916B (zh) | 基于主机的位串转换 | |
CN113924622B (zh) | 存储器阵列外围中的位串累加 | |
CN113641602B (zh) | 用于posit运算的加速电路系统 | |
CN111694762A (zh) | 用于位串转换的设备和方法 | |
CN113553278A (zh) | 用于posit运算的加速电路系统 | |
US11275562B2 (en) | Bit string accumulation | |
CN113805841A (zh) | 多个寄存器中的位串累加 | |
CN113641602A (zh) | 用于posit运算的加速电路系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |