CN114008583A - 存储器中的位串运算 - Google Patents
存储器中的位串运算 Download PDFInfo
- Publication number
- CN114008583A CN114008583A CN202080046067.2A CN202080046067A CN114008583A CN 114008583 A CN114008583 A CN 114008583A CN 202080046067 A CN202080046067 A CN 202080046067A CN 114008583 A CN114008583 A CN 114008583A
- Authority
- CN
- China
- Prior art keywords
- format
- bit
- bit string
- memory
- circuitry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- 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
- G11C7/065—Differential amplifiers of latching type
-
- 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
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- 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
- G11C7/08—Control thereof
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4094—Bit-line management or control circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Nonlinear Science (AREA)
- Memory System (AREA)
- Semiconductor Memories (AREA)
Abstract
本公开描述涉及存储器中的位串运算的系统、设备及方法。所述位串运算可在存储器阵列内执行,而无需将运算的位串或中间结果传送到所述存储器阵列外部的电路系统。例如,可包含感测放大器及计算组件的感测电路系统可经耦合到存储器阵列。控制器可经耦合到所述感测电路系统且可经配置以致使根据通用数字格式或posit格式而格式化的一或多个位串从所述存储器阵列传送到所述感测电路系统。所述感测电路系统可使用所述一或多个位串执行算术运算、逻辑运算或两者。
Description
技术领域
本公开大体上涉及半导体存储器及方法,且更特定来说,涉及用于存储器中的位串运算的设备、系统及方法。
背景技术
存储器装置通常被提供作为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,其包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等。非易失性存储器可通过在不供电时保持所存储的数据提供持久性数据且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等。
存储器装置可经耦合到主机(例如主机计算装置)以存储数据、命令及/或指令以用于在计算机或电子系统操作时供主机使用。举例来说,在计算或其它电子系统的操作期间,数据、命令及/或指令可在主机与存储器装置之间传送。
附图说明
图1A是根据本公开的数个实施例的呈包含主机及存储器装置的设备的形式的功能框图。
图1B是根据本公开的数个实施例的呈包含存储器装置的电子系统的形式的设备的框图。
图2A是根据本公开的数个实施例的呈包含包括主机及存储器装置的设备的计算系统的形式的功能框图。
图2B是根据本公开的数个实施例的呈包含主机、存储器装置、专用集成电路及场可编程门阵列的计算系统的形式的另一功能框图。
图3是具有es指数位的n位柱的实例。
图4A是用于3位posit的正值的实例。
图4B是使用两个指数位的posit构造的实例。
图5是根据本公开的数个实施例的呈控制电路系统的形式的功能框图。
图6是说明根据本公开的数个实施例的包含感测电路系统的存储器阵列的部分的示意图。
图7A到7B说明根据本公开的数个实施例的与使用感测电路系统执行数个逻辑运算相关联的时序图。
图8是说明根据本公开的数个实施例的由感测电路系统实施的可选逻辑运算结果的逻辑表。
图9是表示根据本公开的数个实施例的用于存储器中的位串运算的实例方法的流程图。
具体实施方式
本公开描述涉及存储器中的位串运算的系统、设备及方法。所述位串运算可在存储器阵列中执行,而无需将所述运算的位串或中间结果传送到存储器阵列外部的电路系统。例如,可包含感测放大器及计算组件的感测电路系统可经耦合到存储器阵列。控制器可经耦合到所述感测电路系统且可经配置以致使根据通用数字格式或posit格式而格式化的一或多个位串从所述存储器阵列传送到所述感测电路系统。所述感测电路系统可使用所述一或多个位串执行算术运算、逻辑运算或两者。
计算系统可执行可包含各种计算的广泛范围的操作,这可需要不同程度的准确度。然而,计算系统具有有限量的存储器,其中存储将对其执行计算的运算数。为了促进在由有限存储器资源施加的约束内对由计算系统存储的运算数执行运算,运算数可以特定格式存储。一种此格式称为“浮点”格式,或简称为“浮点数(float)”(例如IEEE 754浮点格式)。
根据浮点标准,例如二进制数串的位串(例如可表示数字的位串)用三个整数集或位集表示-一个位集称为“基数”,一个位集称为“指数”且一个位集称为“尾数”(或有效数)。定义二进制数串存储所用的格式的整数集或位集在本文中可称为“数字格式”或简称为“格式”。举例来说,定义浮点位串的上述位的三个整数集(例如基数、指数及尾数)可称为格式(例如第一格式)。如下文更详细描述,posit位串可包含四个整数集或位集(例如符号、方案(regime)、指数及尾数),其还可称为“数字格式”或“格式”(例如第二格式)。另外,根据浮点标准,两种无限值(例如,+∞及-∞)及/或两种“NaN”(非数字)(安静NaN及信令NaN)可包含于位串中。
浮点标准已在计算系统中使用多年且定义用于由许多计算系统进行的计算的算术格式、互换格式、舍入规则、操作及异常处理。算术格式可包含二进制及/或十进制浮点数据,其可包含有限数字、无限值及/或特定NaN值。互换格式可包含可用于交换浮点数据的编码(例如位串)。舍入规则可包含在算术运算及/或转换操作期间将数字舍入时可满足的一组性质。浮点运算可包含算术运算及/或例如三角函数的其它计算运算。异常处理可包含异常条件的指示,例如除以零、上溢等。
浮点的替代格式称为“通用数字”(unum)格式。存在若干形式的unum格式:I型unum、II型unum及III型unum,其可称为“posit”及/或“有效数”。I型unum是在尾数末尾使用“ubit”来指示实数是否为确切浮点数或其是否在邻近浮点数之间的区间中的IEEE 754标准浮点格式的超集。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格式”,或简称为“posit”。与浮点位串相比,在特定条件下,posit可允许比具有相同位宽度的浮点数更高的精度(例如更广的动态范围,更高的分辨率及/或更高的准确度)。此可允许在使用posit而非用浮点数时由计算系统执行的运算以更高速率(例如更快)执行,此又可通过例如减少用于执行运算的时钟循环数来改进计算系统的性能,从而减少在执行此类运算时消耗的处理时间及/或功率。另外,在计算系统中使用posit可允许比浮点数更高的计算准确度及/或精度,此可比一些方法(例如依赖于浮点格式位串的方法)进一步改进计算系统的功能。
posit的精度及准确度可基于包含于posit中的总位数量及/或整数集或位集的数量而高度可变。另外,posit可产生广泛动态范围。在特定条件下,posit的准确度、精度及/或动态范围可大于浮点数或其它数字格式的准确度、精度及/或动态范围,如本文中更详细描述。posit的可变准确度、精度及/或动态范围可例如基于其中将使用posit的应用来操纵。另外,posit可减小或消除与浮点数及其它数字格式相关联的上溢、下溢、NaN及/或其它极端情况。此外,posit的使用可允许数值(例如数字)使用比浮点数或其它数字格式更少的位来表示。
在一些实施例中,这些特征可允许posit高度可重新配置,此可提供比依赖于浮点数或其它数字格式的方法改进的应用性能。另外,posit的这些特征可在机器学习应用中提供比浮点数或其它数字格式改进的性能。举例来说,在计算性能是至关重要的机器学习应用中,可使用posit来训练网络(例如神经网络),其准确度及/或精度与浮点数或其它数字格式相同或更大但使用比浮点或其它数字格式更少的位。另外,可使用具有比浮点数或其它数字格式更少的位(例如,更小位宽)的posit来实现机器学习上下文中的推断运算。通过使用比浮点数或其它数字格式更少的位来实现相同或增强结果,posit的使用可因此减少执行运算的时间量及/或减少应用中需要的存储器空间量,此可改进其中采用posit的计算系统的整体功能。
本文中的实施例是针对经配置以对位串执行各种运算以改进计算装置的整体功能的硬件电路系统(例如控制电路系统)。举例来说,本文中的实施例是针对经配置以执行转换操作以将位串的格式从支持算术或逻辑运算达第一精度水平的第一格式(例如浮点格式)转换成支持算术或逻辑运算达第二精度水平的第二格式(例如通用数字格式、posit格式等)的硬件电路系统。
在一些实施例中,硬件电路系统可经配置以对位串执行转换操作,使得所得位串(例如具有第二格式的位串)每一者具有相同的位串形状。如本文中使用,“位串形状”大体上是指位数及每一位子集中的位数,这些结合本文中图3、4A及4B与位串相关联地更详细描述。举例来说,具有具零个指数位的总共八个位的位串(例如<8,0>位串)具有与另一<8,0>位串相同的位形状。类似地,具有具一个符号位、五个方案位、七个尾数位及三个指数位的总共16个位的位串可具有与包含一个符号位、五个方案位、七个尾数位及三个指数位的另一位串相同的位形状。
一旦转换操作已执行,硬件电路系统就可经配置以将经转换位串传送到非永久存储器装置,例如动态随机存取存储器(DRAM)装置。可在非永久存储器装置的存储器阵列内操纵经转换位串,作为使用经转换位串作为运算数执行一或多个算术、逐位、向量及/或逻辑运算的部分。
举例来说,部署于DRAM装置中的感测电路系统可经配置以使用经转换位串作为运算数来执行一或多个算术、逐位、向量及/或逻辑运算。如在本文中更详细描述,感测电路系统可包含感测放大器及计算组件,当根据各种控制信号操作时,所述感测放大器及计算组件可对经转换位串执行此类操作。在一些实施例中,可在感测电路系统及/或存储器阵列内执行操作,而无需激活(例如,在激活之前)耦合到存储器阵列及/或感测电路系统的输入/输出电路系统。因此,在一些实施例中,感测电路系统可经配置以使用经转换位串执行操作,而无需将位串传送出存储器阵列及/或感测电路系统,直到所请求操作完成为止。
通过使用已覆盖到第二格式的位串在非永久存储器装置的存储器阵列内执行此类操作,可通过在算术及/或逻辑运算执行之前、期间或之后允许改进所执行操作的准确度及/或精度、改进执行操作的速度及/或减少位串所需的存储空间来实现计算系统的性能改进。
在一些实施例中,在存储器阵列内执行的操作的结果(例如所得位串)可被传送回到硬件电路系统,且硬件电路系统可进一步经操作以将操作的结果转换回第一格式(例如,转换回浮点格式),其又可被传送到计算系统的不同电路系统(例如主机、存储器装置等)。
在本公开的以下详细描述中,参考附图,附图形成本公开的一部分且在附图中通过说明展示可如何实践本公开的一或多个实施例。足够详细地描述这些实施例以使所属领域的一般技术人员能实践本公开的实施例,且应理解,可利用其它实施例且可在不背离本公开的范围的情况下做出过程、电及结构变化。
如本文中使用,尤其关于图式中的元件符号的例如“N”、“M”、“X”及“Y”等的标志符指示可包含如此标示的数个特定特征。还应理解,本文中使用的术语仅用于描述特定实施例,且不希望具限制性。如本文中使用,单数形式“一(a/an)”及“所述”可包含单数及复数指示物两者,除非上下文另外明确指示。另外,“数个”、“至少一个”及“一或多个”(例如数个存储体)可指一或多个存储体,而“多个”希望指多于一个此类事物。
此外,词语“能够”及“可”贯穿本申请案以准许(即,有可能、能够)而非强制意义(即,必须)使用。术语“包含”及其派生词意味着“包含(但不限于)”。根据上下文需要,术语“经耦合”及“耦合”意味着物理上直接或间接连接或用于存取及移动(传输)命令及/或数据。根据上下文需要,术语“位串”、“数据”及“数据值”在本文中可互换使用且可具有相同意义。另外,根据上下文需要,术语“位集”、“位子集”及“部分”(在位串的位的部分的上下文中)在本文中可互换使用且可具有相同意义。
本文中的图遵循编号惯例,其中首位或前几个数字对应于图号且剩余数字识别图中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,120可指图1中的元件“20”,且类似元件在图2中可被称为220。通常在本文中可用单个元件符号指一组或多个类似元件或组件。举例来说,多个参考元件433-1、433-2、…、433-N通常可称为433。应了解,本文中各个实施例中展示的元件可经添加、交换及/或消除以便提供本公开的数个额外实施例。另外,图中提供的元件的比例及/或相对尺度意在说明本公开的某些实施例,且不被视为限制意义。
图1A是根据本公开的数个实施例的呈包含设备的计算系统100的形式的功能框图,所述设备包含主机102及存储器装置104。如本文中使用,“设备”可指(但不限于)各种结构或结构组合中的任何者,例如(举例来说)电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。存储器装置104可包含一或多个存储器模块(例如单列直插式存储器模块、双列直插式存储器模块等)。存储器装置104可包含易失性存储器及/或非易失性存储器。在数个实施例中,存储器装置104可包含多芯片装置。多芯片装置可包含数个不同存储器类型及/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。如图1中展示,设备100可包含:控制电路系统120,其可包含逻辑电路系统122及存储器资源124;存储器阵列130;及感测电路系统150(例如感测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可包括一或多个处理器(例如处理装置、处理单元等)。
逻辑电路系统122可对由存储器资源124存储的位串执行操作,以在各种格式之间转换位串及/或致使经转换位串被传送到存储器阵列130。举例来说,转换操作可包含用于将浮点位串(例如浮点数)转换成呈posit格式的位串(且反之亦然)的操作。一旦浮点位串被转换成呈posit格式的位串,逻辑电路系统122就可经配置以使用posit位串来执行(或致使执行)算术运算,例如加法、减法、乘法、除法、融合乘法加法、乘积累加、点积单元、大于或小于、绝对值(例如FABS())、快速傅里叶变换、快速傅里叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或递归逻辑运算,例如AND(与)、OR(或)、XOR(异或)、NOT(非)等,以及三角函数运算,例如正弦、余弦、正切等。将了解,前述运算列表不希望是详尽的,且前述运算列表也不希望具限制性,且逻辑电路系统122可经配置以执行(或致使执行)其它算术及/或逻辑运算。
控制电路系统120可进一步包含存储器资源124,存储器资源124可通信地耦合到逻辑电路系统122。存储器资源124可包含易失性存储器资源、非易失性存储器资源或易失性与非易失性存储器资源的组合。在一些实施例中,存储器资源可为随机存取存储器(RAM),例如静态随机存取存储器(SRAM)。然而,实施例不限于此,且存储器资源可为:高速缓存、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM;“新兴”存储器装置,例如电阻可变存储器资源、相变存储器装置、包含自选择存储器单元阵列的存储器装置等;或其组合。
存储器资源124可存储一或多个位串。在由逻辑电路系统122执行转换操作之后,由存储器资源124存储的位串可根据通用数字(unum)或posit格式存储。如本文中使用,以unum(例如,III型unum)或posit格式存储的位串可包含位的若干子集或“位子集”。举例来说,通用数字或posit位串可包含称为“符号”或“符号部分”的位子集、称为“方案”或“方案部分”的位子集、称为“指数”或“指数部分”的位子集及称为“尾数”或“尾数部分”(或有效数)的位子集。如本文中使用,位子集希望指包含于位串中的位的子集。位的符号、方案、指数及尾数集的实例在本文中结合图3及4A到4B更详细描述。然而,实施例不限于此,且存储器资源可以其它格式(例如浮点格式或其它合适格式)存储位串。
在一些实施例中,存储器资源124可接收包括具有第一格式的位串(例如浮点位串)的数据,所述第一格式提供第一精度水平。逻辑电路系统122可从存储器资源接收数据且将位串转换成提供不同于第一精度水平的第二精度水平的第二格式(例如通用数字或posit格式)。在一些实施例中,所述第一精度水平可低于所述第二精度水平。举例来说,如果第一格式是浮点格式且第二格式是通用数字或posit格式,那么浮点位串可在某些条件下提供比通用数字或posit位串更低的精度水平,如在本文中结合图3及4A到4B更详细描述。
第一格式可为浮点格式(例如IEEE 754格式),且第二格式可为通用数字(unum)格式(例如I型unum格式、II型unum格式、III型unum格式、posit格式、有效格式等)。因此,第一格式可包含尾数、基数及指数部分,且第二格式可包含尾数、符号、方案及指数部分。
逻辑电路系统122可经配置以将以第二格式存储的位串传送到存储器阵列130,存储器阵列130可经配置以致使使用具有第二格式(例如unum或posit格式)的位串执行算术运算或逻辑运算或两者。在一些实施例中,算术运算及/或逻辑运算可为递归运算。如本文中使用,“递归运算”通常是指执行指定数量次数的运算,其中递归运算的前一迭代的结果被用于运算的后一迭代的运算数。举例来说,递归乘法运算可为其中两个位串运算数β及相乘且递归运算的每一迭代的结果被用作后一迭代的位串运算数的运算。换句话说,递归运算可指其中递归运算的第一迭代包含将β及相乘以得到结果λ(例如)的运算。此实例递归运算的下一迭代可包含将结果λ乘以以得到另一结果ω(例如)。
递归运算的另一说明性实例可依据计算自然数的阶乘来解释。由等式1给定的此实例可包含当给定数n的阶乘大于零时执行递归运算及如果数n等于零那么返回1:
如等式1中展示,可实施用于确定数n的阶乘的递归运算,直到n等于零为止,此时,达到解决方案且递归运算终止。举例来说,使用等式1,数n的阶乘可通过执行以下运算来递归地计算:n×(n-1)×(n-2)×…×1。
递归运算的又一实例是乘积累加运算,其中累加器a根据等式a←a+(b x c)在迭代时被修改。在乘积累加运算中,累加器a的每一先前迭代与两个运算数b及c的乘积相加。在一些方法中,乘积累加运算可用一或多个舍入执行(例如,a可在运算的一或多个迭代处被截断)。然而,相比之下,本文中的实施例可允许执行乘积累加运算,而无需舍入运算的中间迭代的结果,从而保留每一迭代的准确度直到乘积累加运算的最终结果完成为止。
本文中预期的递归运算的实例不限于这些实例。正相反,递归运算的上文实例仅是说明性的且经提供以在本公开的上下文中阐明术语“递归运算”的范围。
如图1中展示,感测电路系统150经耦合到存储器阵列130及控制电路系统120。感测电路系统150可包含一或多个感测放大器及一或多个计算组件,其在本文中结合图6更详细描述。感测电路系统150可为存储器阵列130提供额外存储空间,且可感测(例如读取、存储、高速缓存)存储器装置104中存在的数据值。在一些实施例中,感测电路系统150可经定位于存储器装置104的外围区中。在一些实施例中,感测电路系统150可经定位于存储器装置104的与存储器阵列130物理相异的区中。感测电路系统150可包含可经配置以存储数据值的感测放大器、锁存器、触发器等,如本文中描述。在一些实施例中,感测电路系统150可以一寄存器或一系列寄存器的形式提供,且可包含与存储器阵列130的行或列相同数量的存储位置(例如感测放大器、锁存器等)。举例来说,如果存储器阵列130含有大约16K的行或列,那么感测电路系统150可包含大约16K的存储位置。因此,在一些实施例中,感测电路系统150可为经配置以保持高达16K的数据值的寄存器,然而实施例不限于此,如在本文中结合图1B、2A及6更详细描述。
图1的实施例可包含未说明以便不模糊本公开的实施例的额外电路系统。举例来说,存储器装置104可包含用于锁存经由I/O连接通过I/O电路系统提供的地址信号的地址电路系统。地址信号可由行解码器及列解码器接收及解码以存取存储器装置104及/或存储器阵列130。所属领域的技术人员应了解,地址输入连接的数目可取决于存储器装置104及/或存储器阵列130的密度及架构。
图1B是根据本公开的数个实施例的呈包含存储器装置120的电子系统100的形式的设备的框图。如本文中使用,存储器装置120、存储器控制器140、通道控制器143、存储器阵列130、感测电路系统150(包含感测组件)及外围逻辑170每一者还可单独视作“设备”。
在此实例中,系统100包含耦合(例如,连接)到包含存储器阵列130的存储器装置120的主机102。主机102可为主机系统,例如个人膝上型计算机、桌上型计算机、平板计算机、数码相机、智能电话、物联网(IoT)启用装置或存储卡读取器以及各种其它类型的主机。主机102可包含系统母板及/或背板且可包含数个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路系统)。系统100可包含单独的集成电路,或主机110及存储器装置120两者都可在相同集成电路上。系统100可为例如服务器系统及高性能计算(HPC)系统及/或其一部分。尽管图1中展示的实例说明具有冯诺依曼架构的系统,但本公开的实施例可实施于非冯诺依曼架构中,其可不包含通常与冯诺依曼架构相关联的一或多个组件(例如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。
感测电路系统150的实例在下文进一步描述(例如,在图6中)。例如,在数个实施例中,感测电路系统150可包含数个感测放大器及对应计算组件,其可用作累加器且可用于对从控制电路系统120接收到的通用数字或posit位串执行算术及/或逻辑运算。根据本文中描述的实施例,感测电路系统150可用于使存储器中(例如,阵列130中)存储的数据反转。
在数个实施例中,感测电路系统150还可用于使用存储于存储器阵列130中的数据作为输入来执行逻辑运算(例如,逻辑函数,例如AND、OR、NOT、NOR、NAND、XOR等),并参与将用于写入及存储操作的数据移动回到存储器阵列130中的不同位置,而无需经由感测线地址存取传送数据(例如,无需触发列解码信号)。因而,各种计算功能可使用感测电路系统150且在其内执行,而非(或相关联地)由感测电路系统150外部的处理资源执行(例如,由与主机102相关联的处理器及定位于装置120上(例如,在存储器控制器140上或其它地方)的其它处理电路系统,例如ALU电路系统)。
在各种先前方法中,与运算数相关联的数据例如可经由感测电路系统从存储器读取,且经由I/O线(例如,经由局部I/O线及全局I/O线)被提供到外部ALU电路系统。外部ALU电路系统可包含数个寄存器且可使用运算数执行计算功能,且结果可经由I/O线被传送回到阵列。相比之下,在本公开的数个实施例中,感测电路系统150经配置以对存储于存储器阵列130中的数据执行逻辑运算并将结果存储回到存储器阵列130,而无需启用耦合到感测电路系统150的局部I/O线及全局I/O线。感测电路系统150可与阵列的存储器单元按间距形成。可包含额外数目个感测放大器的额外外围逻辑170可经耦合到感测电路系统150。根据本文中描述的数个实施例,感测电路系统150及外围逻辑170可协作以执行逻辑运算及/或使存储于存储器中的数据反转。
因而,在数个实施例中,不需要存储器阵列130及感测电路系统150外部的电路系统来使存储于存储器阵列130中的数据反转及/或执行计算功能,因为感测电路系统150可执行适当运算以便执行此数据反转及/或计算功能,而无需使用外部处理资源。因此,感测电路系统150可用于至少在某程度上补充及取代此外部处理资源(或此外部处理资源的至少带宽消耗)。
图2A是根据本公开的数个实施例的呈包含设备200的计算系统的形式的功能框图,设备200包含主机202及存储器装置204。存储器装置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之间传送的接口或其它物理连接。举例来说,用于致使启动使用控制电路系统220执行操作(例如,将一或多个位串从第一格式转换成第二格式(或反之亦然)的操作、致使位串被加载到感测电路系统250中以执行算术及/或逻辑运算的操作等)的命令可经由通道203、205从主机传送。应注意,在一些实施例中,控制电路系统220可响应于经由通道203、205中的一或多者从主机202传送的启动命令在没有来自主机202的中介命令的情况下执行操作。即,一旦控制电路系统220已从主机202接收到启动操作的执行的命令,操作就可在没有来自主机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可为用于在主机202与存储器装置204之间传送命令及/或数据的四倍数据速率(QDR)接口、外围组件互连(PCI)接口(例如外围组件互连高速(PCIe))接口或其它合适接口。
控制器240可负责执行来自主机202的指令及存取控制电路系统230及/或存储器阵列230。控制器240可为状态机、序列发生器或某一其它类型的控制器。控制器240可从主机202接收命令(经由例如HSI 208),且基于接收到的命令来控制控制电路系统220及/或存储器阵列230的操作。在一些实施例中,控制器240可从主机202接收致使使用控制电路系统220执行操作的命令。响应于接收到此命令,控制器240可指示控制电路系统220开始执行操作。
在非限制性实例中,控制器240可指示控制电路系统220执行用于从主机202及/或存储器阵列230检索一或多个位串的操作。举例来说,控制器240可从主机204接收请求在一或多个位串之间执行操作的命令及将命令发送到控制电路系统220以执行所述操作。控制电路系统220可执行操作以将位串从第一格式转换成第二格式及/或致使以第二格式存储的位串被传送到且被存储于存储器阵列230内。在一些实施例中,控制电路系统220可确定经转换位串具有相同的位串形状。如果经转换位串不具有相同的位串形状,那么控制电路系统220可对经转换位串执行一或多个操作以确保在致使经转换位串被存储于存储器阵列230中之前经转换位串具有相同的位串形状。
举例来说,控制电路系统220可基于从控制器接收到的命令而操纵与经转换位串的一或多个位子集相关联的一定数量的位,使得经转换位串具有相同的位串形状。在一些实施例中,操纵经转换位串的位子集内的所述一定数量的位可包含从一或多个经转换位串中的至少一者的特定位子集移除一或多个位,以确保经转换位串具有相同的位串形状。
在控制电路系统220确保经转换位串具有相同的位串形状之后,控制电路系统220可致使位串被传送到存储器阵列230及/或感测电路系统250。一旦位串已被存储器阵列230及/或感测电路系统250接收,感测电路系统250就可使用经转换位串执行算术及/或逻辑运算。
在一些实施例中,控制器240可为全局处理控制器,且可对存储器装置204提供电力管理功能。电力管理功能可包含控制由存储器装置204及/或存储器阵列230消耗的电力。举例来说,控制器240可控制提供到存储器阵列230的各个存储体的电力,以控制在存储器装置204的操作期间存储器阵列230的哪些存储体在不同时间操作。此可包含关闭存储器阵列230的某些存储体同时将电力提供到存储器阵列230的其它存储体以优化存储器装置230的电力消耗。在一些实施例中,控制存储器装置204的电力消耗的控制器240可包含控制到存储器装置204的各个核心及/或到控制电路系统220、存储器阵列230等的电力。
如上文提及,感测电路系统250可为存储器阵列230提供额外存储空间且可感测(例如读取、存储、高速缓存)存储器装置204中存在的数据值。感测电路系统250可包含可经配置以使用位串执行运算(例如算术及/或逻辑运算)的感测放大器、锁存器、触发器等,如本文中描述。
如在图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、7A到7B及8更详细描述,感测电路系统250可经配置以促进在存储于存储器阵列230中的位串(例如,呈通用数字格式或posit格式的位串)之间执行算术及/或逻辑运算。举例来说,一旦位串通过控制电路系统220转换成第二格式(例如通用数字格式或posit格式)且被存储于存储器阵列230中,感测电路系统250就可使用经转换位串执行图7A到7B中描述的操作以使用经转换位串执行算术及/或逻辑运算。
在一些实施例中,如果使用感测电路系统250执行的算术及/或逻辑运算是递归运算,那么外围逻辑270可经配置以存储使用位串执行的递归运算的中间结果。在一些实施例中,递归运算的中间结果可表示在递归运算的每一迭代处产生的结果。与一些方法相比,因为外围逻辑270可经配置以存储高达16K数据值,因此在递归运算的执行期间,递归运算的中间结果可不被舍入(例如截断)。
代替地,在一些实施例中,递归运算完成之后存储于外围逻辑270中的递归运算的最终结果可经舍入到所期望位宽度(例如8位、16位、32位、64位等)。此可改进递归运算的结果的准确度,因为与不利用外围逻辑270来存储递归运算的中间结果的方法相比,在递归运算的最终结果被计算出之前递归的中间结果可无需被舍入。
外围逻辑270可经配置以在递归运算的新迭代完成时盖写递归运算的先前存储的中间结果。举例来说,一旦递归运算的第一迭代完成,表示递归运算的第一迭代的结果就可经存储于外围逻辑270中。一旦表示递归运算的第二迭代的结果完成,递归运算的第二迭代的结果就可经存储于外围逻辑270中。类似地,一旦表示递归运算的第三迭代的结果完成,递归运算的第三迭代的结果就可经存储于外围逻辑270中。在一些实施例中,每一后续迭代的结果可通过盖写先前迭代的所存储结果而存储于外围逻辑270中。
取决于每一迭代的结果的位串形状(例如位宽度),表示每一迭代的结果且被存储于外围逻辑270中的后续位串可使用比先前存储的位串更多的感测放大器来存储于外围逻辑270中。举例来说,第一迭代的结果可含有第一数量的位,且第二迭代的结果可含有大于第一数量的位的第二数量的位。当第二迭代的结果被写入到外围逻辑270或由外围逻辑270存储时,其可经存储使得第一迭代的结果被盖写,然而,因为第二迭代的结果可含有比第一迭代的结果更多的位,因此在一些实施例中,除了用于存储第一迭代的结果的感测放大器之外,可使用外围逻辑270的额外感测放大器来存储第二迭代的结果。
在其中递归运算包括递归乘法运算(其中数2.51与数3.73递归相乘)的简化非限制性实例中,第一迭代的结果可为9.3623。在此实例中,第一迭代的结果包含五个位且可被存储例如于外围逻辑270中的五个感测放大器中。第二迭代的结果(例如第一结果9.3623与3.73之间进行乘法的结果)可为34.921379,其包含八个位。在一些实施例中,第二迭代的结果可通过例如盖写存储于五个感测放大器中的第一迭代的结果及将额外三个位写入到外围逻辑270中的另外三个感测放大器而存储于外围逻辑270的八个感测放大器中。递归运算的后续迭代的结果可类似地被存储于感测组件250中,使得先前迭代的结果被盖写。然而,实施例不限于此,且在一些实施例中,每一迭代的结果可经存储于感测组件250中的邻近感测放大器中,或特定来说,存储于外围逻辑270的感测放大器中。
在一些实施例中,对外围逻辑270的存取可使用寄存器映射来控制。举例来说,位串可经存储于外围逻辑270中、从外围逻辑270删除,及/或存储于外围逻辑270中的位串的位宽度可响应于与可存储于控制电路系统220中的注册表映射相关联的命令而更改。另外,存储于存储器阵列230中的位串可响应于与控制电路系统220相关联的命令而添加到存储于外围逻辑270中的位串或从存储于外围逻辑270中的位串减去(例如,与所述位串累加)。
如本文中结合图6更详细描述,控制电路系统220还可包含同在通用数字或posit格式与可存储于感测组件250、外围逻辑270及/或存储器阵列230中的格式之间转换操作(其使用通用数字或posit位串、作为递归运算的部分而执行)的结果相关联的命令。举例来说,控制电路系统220可包含一或多个寄存器,所述寄存器可包含与致使posit位串依据符号位、尾数位、指数位及k值来表示相关联的命令,其可用于扩展位串使得其以posit格式表示。
主存储器输入/输出(I/O)电路系统244可促进将数据及/或命令传送到存储器阵列230及/或从存储器阵列230传送数据及/或命令。举例来说,主存储器I/O电路系统244可促进将位串、数据及/或命令从主机202及/或控制电路系统220传送到存储器阵列230及从存储器阵列230传送位串、数据及/或命令。在一些实施例中,主存储器I/O电路系统214可包含一或多个直接存储器存取(DMA)组件,其可将位串(例如存储为数据块的posit位串)从控制电路系统220传送到存储器阵列230且反之亦然。
在一些实施例中,主存储器I/O电路系统244可促进将位串、数据及/或命令从存储器阵列230传送到控制电路系统220,使得控制电路系统220可对位串执行操作。类似地,主存储器I/O电路系统244可促进将已通过控制电路系统220对其执行一或多个操作的位串传送到存储器阵列230。如在本文中更详细描述,操作可包含使用位串(例如通用数字位串或posit位串)执行的递归运算,其中中间迭代的结果被存储于外围逻辑270中。
如上文描述,posit位串(例如数据)可被存储到存储器中阵列230及/或从存储器阵列230检索。在一些实施例中,主存储器I/O电路系统244可促进将posit位串存储到存储器阵列230及/或从存储器阵列230检索posit位串。举例来说,主存储器I/O电路系统244可经启用以将posit位串传送到将存储的存储器阵列230,及/或主存储器I/O电路系统244可促进响应于例如来自控制器210及/或控制电路系统220的命令而从存储器阵列230检索posit位串(例如,表示在一或多个posit位串运算数之间执行的操作的posit位串)。
行地址选通(RAS)/列地址选通(CAS)链控制电路系统216及RAS/CAS链组件218可连同存储器阵列230一起用于锁存行地址及/或列地址以启动存储器循环。在一些实施例中,RAS/CAS链控制电路系统216及/或RAS/CAS链组件218可解析存储器阵列230的行及/或列地址,将在所述行及/或列地址处启动或终止与存储器阵列230相关联的读取及写入操作。举例来说,在使用控制电路系统220的操作完成之后,RAS/CAS链控制电路系统216及/或RAS/CAS链组件218可锁存及/或解析已由控制电路系统220对其操作的位串将被存储到的外围感测放大器211及/或存储器阵列230的特定位置。类似地,RAS/CAS链控制电路系统216及/或RAS/CAS链组件218可锁存及/或解析在控制电路系统220对位串执行操作(例如递归运算)之前或之后位串将从其被传送到控制电路系统220的外围感测放大器211及/或存储器阵列230中的特定位置。
控制电路系统220可包含逻辑电路系统(例如图1中说明的逻辑电路系统122)及/或存储器资源(例如图1中说明的存储器资源124)。位串(例如数据、多个位等)可由控制电路系统220从例如主机202、存储器阵列230及/或外部存储器装置接收且由控制电路系统220存储例如于控制电路系统220的存储器资源中。控制电路系统(例如控制电路系统220的逻辑电路系统222)可对位串执行操作(或致使执行操作)且致使操作的中间结果存储于存储器阵列230中以用于后续处理。如上文描述,在一些实施例中,位串可以unum或posit格式而格式化。
如结合图3及4A到4B更详细描述,通用数字及posit可提供经改进的准确度,且可能需要比以浮点格式表示的对应位串更少的存储空间(例如,可含有更少数目个位)。举例来说,由浮点数表示的数值可由具有比对应浮点数的位宽度更小的位宽度的posit表示。因此,通过使用posit位串执行操作(例如算术运算、逻辑运算、逐位运算、向量运算等),相较于仅利用浮点位串的方法,存储器装置204的性能可经改进,因为可更快地对posit位串执行后续操作(例如算术及/或逻辑运算)(例如,因为呈posit格式的数据更小且因此需要更少时间来对其执行操作)。此外,相较于仅利用浮点位串的方法,存储器装置204的性能可经改进,因为在存储器装置202中需要更少存储器空间来存储呈posit格式的位串,此可释放存储器装置202中的额外空间以用于其它位串、数据及/或将执行的其它操作。
在一些实施例中,一旦位串通过控制电路系统220转换成通用数字或posit格式且被存储于存储器阵列230中,存储器阵列230就可连同感测电路系统250一起对通用数字或posit位串执行(或致使执行)算术及/或逻辑运算。举例来说,下文结合图6进一步描述的感测电路系统250可经配置以执行(或致使执行)算术运算,例如加法、减法、乘法、除法、融合乘法加法运算、乘积累加运算、点积运算、大于或小于、绝对值(例如FABS())、快速傅立叶变换、快速傅立叶逆变换、sigmoid函数运算、卷积运算、平方根运算、指数运算及/或对数运算,及/或逻辑运算,例如AND、OR、XOR、NOT等,以及三角函数运算,例如正弦、余弦、正切等。应了解,前述运算列表不希望是详尽的,且前述运算列表也不希望具限制性,且控制电路系统220可经配置以使用通用数字或posit位串执行(或致使执行)其它运算及/或逻辑运算。
在一些实施例中,感测电路系统250可结合一或多个机器学习算法的执行来执行上文列出的操作。举例来说,感测电路系统250可执行与一或多个神经网络相关的操作。神经网络可允许算法随着时间的推移而训练以基于输入信号确定输出响应。举例来说,随着时间的推移,神经网络本质上可学习更好地最大化完成特定目标的机会。此在机器学习应用中可为有利的,这是因为神经网络可随着时间的推移用新的数据来训练以实现完成特定目标的机会的更好最大化。神经网络可随时间的推移而训练以改进特定任务及/或特定目标的操作。然而,在一些方法中,机器学习(例如神经网络训练)可为处理密集型(例如,可消耗大量计算机处理资源)及/或可为时间密集型(例如,可需要执行消耗多个循环的漫长计算)。
相比之下,通过使用感测电路系统250执行此类操作,例如,通过对呈通用数字或posit格式的位串执行此类操作,执行操作时消耗的处理资源量及/或时间量可比其中使用呈浮点格式的位串执行此类操作的方法减少。此外,通过将递归运算的中间结果存储于外围逻辑270中,表示递归运算的最终结果的位串的准确度可比截断递归运算的中间结果的方法或其中递归运算的中间结果被存储于隐藏暂存区中的方法更高。
在一些实施例中,控制器210可经配置以致使控制电路系统220及/或感测电路系统250使用位串执行操作,而不会牵连主机202(例如,无需接收中介命令或与启动从主机202执行操作的命令分离的命令及/或无需将操作的结果传送到主机202)。然而,实施例不限于此,且在一些实施例中,控制器210可经配置以致使控制电路系统220(例如逻辑电路系统)及/或感测电路系统250使用位串执行递归算术及/或递归逻辑运算、将此类运算的中间结果存储于感测电路系统250中及/或舍入递归运算的最终结果(其可被存储于感测电路250中使得递归运算的最终结果具有与其相关联的特定位串形状。
在一些实施例中,递归运算的执行可包含执行算术运算、逻辑运算、逐位运算、向量运算或其组合。响应于确定递归运算完成,控制电路系统220可经配置以致使存储于外围逻辑270中的最后所得位串被舍入(例如截断),使得所述最后所得位串具有特定位宽度。举例来说,控制电路系统220可致使存储于外围逻辑270中的最后所得位串被舍入掉以具有8位、16位、32位、64位等的位宽度。在一些实施例中,控制电路系统220可经配置以致使来自最后所得位串的尾数位子集或指数位子集(本文中结合图3、4A及4B更详细描述)的至少一个位被删除以将最后所得位串截断成特定位宽度。
如上文结合图1描述,存储器阵列230可为例如DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪阵列及/或NOR快闪阵列,然而实施例不限于这些特定实例。存储器阵列230可用作图2A及2B中展示的计算系统200的主存储器。在一些实施例中,存储器阵列230可经配置以使用其中存储的位串执行算术及/或逻辑运算、存储算术及/或逻辑运算的结果及/或在使用位串执行转换操作之前存储将传送到控制电路系统220的位串。
在一些实施例中,位串(例如posit位串)可经产生及/或存储于存储器阵列230中,而不会牵连主机202。举例来说,位串可经产生及/或存储于存储器阵列230中,而无需从主机202接收多个命令。换句话说,在一些实施例中,主机202可将单个命令发送到存储器装置以请求使用一或多个位串执行操作。响应于接收到请求执行操作的命令,存储器装置204(例如控制器210、控制电路系统220或存储器装置204的其它组件)可在没有来自主机202的额外命令的情况下执行操作及/或检索操作的所存储结果。此可减少跨通道203/205的业务,这可增加计算装置与主机202及/或存储器装置204相关联的性能。
在非限制性实例中,感测电路系统250可包含感测放大器(例如图6中说明的感测放大器654)及计算组件(例如图6中说明的计算组件665)且可经耦合到存储器阵列230。控制器240可经配置以致使根据通用数字格式或posit格式而格式化的一或多个位串从存储器阵列230传送到感测电路系统250。如上文描述,一或多个位串每一者具有相同的位串形状。控制器240可进一步经配置以致使感测电路系统250使用一或多个位串执行算术运算、逻辑运算或两者。
在一些实施例中,感测电路系统250可经配置以通过以下来执行算术运算、逻辑运算或两者:通过感测阵列230的含有所述一或多个位串的第一位的存储器单元来执行算术运算、逻辑运算或两者的第一运算阶段;通过感测含有所述一或多个位串的不同位的相应数目个不同存储器单元来执行算术运算、逻辑运算或两者的数个中间运算阶段;及在感测电路系统250的计算组件中累加第一运算阶段及所述数个中间运算阶段的结果。感测电路系统250可经配置以在无需执行感测线地址存取的情况下在感测电路系统250的计算组件中累加所述第一运算阶段及所述数个中间运算阶段的结果。举例来说,感测电路系统250可经配置以在接收到与感测电路系统250相关联的感测线的存取命令及/或地址之前在感测电路系统250的计算组件中累加所述第一运算阶段及所述数个中间运算阶段的结果。
在一些实施例中,感测电路系统250可进一步经配置以将算术运算、逻辑运算或两者的结果存储于存储器阵列中,而无需启用耦合到感测电路系统250的输入/输出(I/O)线(例如I/O电路系统244)。因此,在一些实施例中,感测电路系统250可经配置以使用通用数字或posit位串执行算术及/或逻辑运算,而不会牵连主机202。
控制电路系统220可经配置以接收呈不同于通用数字格式或posit格式的格式的一或多个位串、执行操作以将一或多个位串从不同于通用数字格式或posit格式的格式转换成通用数字格式或posit格式,使得一或多个位串具有相同的位串形状,且在控制器240致使根据通用数字格式或posit格式而格式化的一或多个位串被传送到感测电路系统250之前,致使根据通用数字格式或posit格式而格式化的一或多个位串被传送到存储器阵列230。如本文中描述,控制电路系统220可包含算术逻辑单元、场可编程门阵列、精简指令集计算装置或其组合。
在一些实施例中,控制器240可经配置以确定一或多个位串中的至少两者具有相同数量的位或与其相关联的相同数据类型且致使感测电路系统250响应于所述确定而使用所述一或多个位串中的所述至少两者执行算术运算、逻辑运算或两者。
在另一非限制性实例中,主机202可经耦合到存储器装置204,存储器装置204可包含控制器240、控制电路系统220及感测电路系统250。如上文描述,控制电路系统220可包含:存储器资源(例如图1A中说明的存储器资源124),其经配置以接收包括具有提供第一精度水平的第一格式的位串的数据;及逻辑电路系统(例如图1A中说明的逻辑电路系统122),其经配置以将位串转换成提供不同于第一精度水平的第二精度水平的第二格式。控制器240可经配置以致使具有第二格式的位串被传送到感测电路系统250,且致使感测电路系统250使用具有第二格式的位串执行算术运算、逻辑运算或两者,而无需将具有所述第二格式的位串或具有第二格式的位串的结果传送到主机202。如上文描述,第一格式可包括浮点格式或IEEE 754格式,且第二格式可包括通用数字格式或posit格式。此外,如上文描述,在一些实施例中,逻辑电路系统可电路系统包含算术逻辑单元、场可编程门阵列、精简指令集计算装置或其组合。
在执行算术运算、逻辑运算或两者之后,控制电路系统220可经配置以接收算术运算、逻辑运算或两者的且具有第二格式的结果,且使用逻辑电路系统将算术运算、逻辑运算或两者的结果从第二格式转换成第一格式。如上文描述,第一格式或第二格式中的一者可包含尾数、基数及指数部分,且第一格式或第二格式中的另一者可包含尾数、符号、方案及指数部分。
在其中算术及/或逻辑运算是递归算术或逻辑运算的实施例中,控制器240可经配置以致使算术运算、逻辑运算或两者的中间精确(例如未经舍入)结果被传送到存储器装置的外围区域中的多个存储位置。在一些实施例中,存储位置可包含处于存储器阵列230的外围中的感测放大器。
如上文描述,在一些实施例中,逻辑电路系统可经配置以在没有从主机202接收到中介命令的情况下接收位串且将所述位串从第一格式转换成第二格式。此外,在一些实施例中,感测电路系统250可经配置以在没有从主机202接收到中介命令的情况下使用具有第二格式的位串执行算术运算、逻辑运算或两者。
图2B是根据本公开的数个实施例的呈计算系统200的形式的功能框图,计算系统200包含主机202、存储器装置204、专用集成电路223及场可编程门阵列221。组件(例如主机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)可使用以通用数字格式或posit格式而格式化的位串执行操作(例如,在各种格式之间转换位串的操作、使用位串的算术运算及/或逻辑运算等)。然而,实施例不限于此,且在一些实施例中,操作可由FPGA 221及/或ASIC 223执行。如上文描述,可由FPGA 221及/或ASIC 223执行的算术及/或逻辑运算的非限制性实例包含使用posit位串的算术运算,例如加法、减法、乘法、除法、融合乘法加法、乘积累加、点积单元、大于或小于、绝对值(例如FABS())、快速傅里叶变换、快速傅里叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或逻辑运算,例如AND、OR、XOR、NOT等,以及三角函数运算,例如正弦、余弦、正切等。
FPGA 221可包含状态机227及/或寄存器229。状态机227可包含一或多个处理装置,其经配置以对输入执行操作且产生输出。举例来说,FPGA 221可经配置以从主机202或存储器装置204接收posit位串,并使用通用数字格式或posit格式位串执行一或多个操作。FPGA 221的寄存器229可经配置以在状态机227使用接收到的位串执行操作之前缓冲及/或存储从主机202接收到的posit位串。另外,FPGA 221的寄存器229可经配置以在将FPGA 221执行的递归运算的迭代的中间结果传送到ASIC 233外部的电路系统(例如主机202或存储器装置204等)之前缓冲及/或存储所述结果。
ASIC 223可包含逻辑215及/或高速缓存217。逻辑215可包含经配置以对输入执行操作且产生输出的电路系统。在一些实施例中,ASIC 223经配置以从主机202及/或存储器装置204接收通用数字格式或posit格式位串,并使用posit位串运算数执行一或多个操作。ASIC 223的高速缓存217可经配置以在逻辑215对接收到的位串执行操作之前缓冲及/或存储从主机202接收到的位串。另外,ASIC 223的高速缓存217可经配置以在将使用位串的递归运算的迭代的中间结果传送到ASIC 233外部的电路系统(例如主机202或存储器装置204等)之前缓冲及/或存储所述结果。
尽管FPGA 227被展示为包含状态机227及寄存器229,但在一些实施例中,除了或代替状态机227及/或寄存器229,FPGA 221还可包含例如逻辑215的逻辑及/或例如高速缓存217的高速缓存。类似地,在一些实施例中,除了或代替逻辑215及/或高速缓存217,ASIC223还可包含例如状态机227的状态机及/或例如寄存器229的寄存器。
图3是具有es指数位的n位通用数字或“unum”的实例。在图3的实例中,n位unum是posit位串331。如图3中展示,n位posit 331可包含符号位集(例如第一位子集或符号位子集333)、方案位集(例如第二位子集或方案位子集335)、指数位集(例如第三位子集或指数位子集337)及尾数位集(例如第四位子集或尾数位子集339)。尾数位339可替代地称为“小数部分”或“小数位”,且可表示在小数点后面的位串(例如数字)的一部分。
符号位333对于正数可为零(0)且对于负数为一(1)。结合下表1描述方案位335,表1展示(二进制)位串及其相关数值意义k。在表1中,数值意义k由位串的游程长度确定。表1的二进制部分中的字母x指示位值与方案的确定无关,因为(二进制)位串响应于连续位的翻转或在到达位串的末尾时终止。举例来说,在(二进制)位串0010中,位串响应于0翻转到1及接着返回到0而终止。因此,最后的0与方案无关,且方案要考虑的是前导相同位及终止位串的第一相反位(如果位串包含此类位)。
二进制 | 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对应于前两个前导0,而方案位对应于1。如上文指出,对应于数值k的由表1中的X表示的最终位与方案无关。
如果m对应于位串中相同位的数目,如果位是0,那么k=-m。如果位是1,那么k=m–1。此在表1中说明,其中例如(二进制)位串10XX具有单个1且k=m–1=1-1=0。类似地,(二进制)位串0001包含三个0,因此k=-m=-3。方案可指示useedk的比例因子,其中used的若干实例值在下表2中展示。
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位posit 331的方案位335的右边留有多少位。在一些实施例中,此可允许n位posit 331的渐缩准确度,其中在量值上更接近1的数字具有比非常大或非常小的数字更高的准确度。然而,由于非常大或非常小的数字在特定种类的操作中不常用,因此在各种情况中可期望图3中展示的n位posit 331的渐缩准确度行为。
尾数位339(或小数位)表示任何额外位,其可为位于指数位337右边的n位posit331的部分。类似于浮点位串,尾数位339表示小数f,其可类似于小数1.f,其中f包含在1后面在小数点右边的一或多个位。然而,与浮点位串相比,在图3中展示的n位posit 331中,“隐藏位”(例如1)可始终为1(例如一),而浮点位串可包含具有“隐藏位”0的次正规数(例如0.f)。
如本文中描述,更改符号333位子集、方案335位子集、指数337位子集或尾数339位子集中的多者中的一者的位的数值或数量可改变n位posit 331的精度。举例来说,改变n位posit 331中的位的总数可更改n位posit位串331的解析度。即,8位posit可通过例如增加与posit位串的构成位子集中的一或多者相关联的位的数值及/或数量而转换成16位posit,以增加posit位串的解析度。相反,posit位串的解析度可通过减小与posit位串的构成位子集中的一或多者相关联的位的数值及/或数量而例如从64位解析度减小到32位解析度。
在一些实施例中,更改与方案335位子集、指数337位子集及/或尾数339位子集中的一或多者相关联的位的数值及/或数量以改变n位posit 331的精度可导致更改方案335位子集、指数337位子集及/或尾数339位子集中的其它者中的至少一者。举例来说,当更改n位posit 331的精度以增加n位posit位串331的解析度时(例如,当执行“向上转换”操作以增加n位posit位串331的位宽度时),与方案335位子集、指数337位子集及/或尾数339位子集中的一或多者相关联的位的数值及/或数量可被更改。
在其中n位posit位串331的解析度增加(例如n位posit位串331的精度经改变以增加n位posit位串331的位宽度)但与指数337位子集相关联的位的数值或数量不变的非限制性实例中,与尾数339位子集相关联的位的数值或数量可增加。在至少一个实施例中,当指数338位子集保持不变时增加尾数339位子集的位的数值及/或数量可包含将一或多个0位添加到尾数339位子集。
在其中通过更改与指数337位子集相关联的位的数值及/或数量来增加n位posit位串331的解析度(例如,n位posit位串331的精度经改变以增加n位posit位串331的位宽度)的另一非限制性实例中,与方案335位子集及/或尾数339位子集相关联的位的数值及/或数量可增加或减小。举例来说,如果与指数337位子集相关联的位的数值及/或数量增加或减小,那么可对与方案335位子集及/或尾数339位子集相关联的位的数值及/或数量作出对应更改。在至少一个实施例中,增加或减小与方案335位子集及/或尾数339位子集相关联的位的数值及/或数量可包含将一或多个0位添加到方案335位子集及/或尾数339位子集及/或截断与方案335位子集及/或尾数339位子集相关联的位的数值或数量。
在其中n位posit位串331的解析度增加(例如n位posit位串331的精度经改变以增加n位posit位串331的位宽度)的另一实例中,与指数335位子集相关联的位的数值或数量可增加,且与方案333位子集相关联的位的数值或数量可减小。相反,在一些实施例中,与指数335位子集相关联的位的数值及/或数量可减小,且与方案333位子集相关联的位的数值及/或数量可减小。
在其中n位posit位串331的解析度减小(例如n位posit位串331的精度经改变以减小n位posit位串331的位宽度)但与指数337位子集相关联的位的数值或数量不变的非限制性实例中,与尾数339位子集相关联的位的数值或数量可减小。在至少一个实施例中,当指数338位子集保持不变时减小尾数339位子集的位的数值及/或数量可包含截断与尾数339位子集相关联的位的数值及/或数量。
在其中通过更改与指数337位子集相关联的位的数值及/或数量来减小n位posit位串331的解析度(例如,n位posit位串331的精度经改变以减小n位posit位串331的位宽度)的另一非限制性实例中,与方案335位子集及/或尾数339位子集相关联的位的数值及/或数量可增加或减小。举例来说,如果与指数337位子集相关联的位的数值及/或数量增加或减小,那么可对与方案335位子集及/或尾数339位子集相关联的位的数值及/或数量作出对应更改。在至少一个实施例中,增加或减小与方案335位子集及/或尾数339位子集相关联的位的数值及/或数量可包含将一或多个0位添加到方案335位子集及/或尾数339位子集及/或截断与方案335位子集及/或尾数339位子集相关联的位的数值或数量。
在一些实施例中,改变指数位子集中的位的数值及/或数量可更改n位posit 331的动态范围。举例来说,具有具数值0的指数位子集的32位posit位串(例如具有es=0的32位posit位串或(32,0)posit位串)可具有大约18个十进位的动态范围。然而,具有具数值3的指数位子集的32位posit位串(例如具有es=3的32位posit位串或(32,3)posit位串)可具有大约145个十进位的动态范围。
图4A是3位posit的正值的实例。在图4A中,只有投影实数的右半部,然而,应了解,对应于图4A中展示的其正对应数的负投影实数可存在于表示围绕图4A中展示的曲线的y轴的变换的曲线上。
在图4A的实例中,es=2,因此posit 431-1的精度可通过将位附加到位串来增加,如图4B中展示。举例来说,将具有值一(1)的位附加到posit 431-1的位串增加posit 431-1的准确度,如由图4B中的posit 431-2展示。类似地,将具有值一的位附加到图4B中的posit 431-2的位串增加posit 431-2的准确度,如由图4B中展示的posit431-3展示。以下是可用于将位附加到图4A中展示的posit 431-1的位串以获得图4B中说明的posit 431-2、431-3的插值规则的实例。
如果maxpos是posit 431-1、431-2、431-3的位串的最大正值且minpos是posit431-1、431-2、431-3的位串的最小值,那么maxpos可等于useed且minpos可等于在maxpos与±∞之间,新位值可为maxpos*useed,且在0与minpos之间,新位值可为这些新位值可对应于新方案位335。在现存值x=2m与y=2n之间,其中m与n相差超过1,新位值可由几何平均数给定:其对应于新指数位337。如果新位值在现存x值与接近其的y值中间,那么新位值可表示算术平均数其对应于新尾数位339。
图4B是使用两个指数位的posit构造的实例。在图4B中,只有投影实数的右半部,然而,应了解,对应于图4B中展示的其正对应数的负投影实数可存在于表示围绕图4B中展示的曲线的y轴的变换的曲线上。图4B中展示的posit 431-1、431-2、431-3每一者仅包含两个异常值:当位串的所有位都是零时,为零(0);及当位串是一(1)后全为零时,为±∞。应注意,图4中展示的posit 431-1、431-2、431-3的数值精确为useedk。即,图4中展示的posit431-1、431-2、431-3的数值精确为useed的由方案(例如上文结合图3描述的方案位335)表示的k值的次幂。在图4B中,posit 431-1具有es=2,因此 posit 431-2具有es=3,因此且posit 431-3具有es=4,因此
作为将位添加到3位posit 431-1以产生图4B的4位posit 431-2的说明性实例,useed=256,因此对应于useed 256的位串具有附加到其的额外方案位且前者useed 16具有附加到其的终止方案位如上文描述,在现存值之间,对应位串具有附加到其的额外指数位。举例来说,数值1/16、1/4、1及4将具有附加到其的指数位。即,对应于数值4的最后1是指数位,对应于数值1的最后零是指数位等等。此模式可进一步见于posit431-3中,posit431-3是根据上文规则从4位posit 431-2产生的5位posit。如果将另一位添加到图4B中的posit 431-3以产生6位posit,那么尾数位339将附加到1/16与16之间的数值。
以下是对posit(例如posit 431)进行解码以获得其等效数值的非限制性实例。在一些实施例中,对应于posit p的位串是范围从-2n-1到2n-1的无符号整数,k是对应于方案位335的整数,且e是对应于指数位337的无符号整数。如果尾数位339集表示为{f1 f2…ffs}且f是由1.f1 f2…ffs表示的值(例如,由1后接小数点后接尾数位339表示),那么p可由下文等式2给定。
下面结合下表3中展示的posit位串0000110111011101提供对posit位串进行解码的另一说明性实例。
符号 | 方案 | 指数 | 尾数 |
0 | 0001 | 101 | 11011101 |
表3
在表3中,将posit位串0000110111011101分解为其构成位集(例如符号位333、方案位335、指数位337及尾数位339)。由于在表3中展示的posit位串中es=3(例如,因为存在三个指数位),因此useed=256。因为符号位333是零,因此对应于表3中展示的posit位串的数值表达式的值是正的。方案位335具有对应于值-3的三个连续零的游程(如上文结合表1描述)。因此,由方案位335促成的比例因子是256-3(例如useedk)。指数位337将五(5)表示为无符号整数且因此促成额外比例因子2e=25=32。最后,在表3中给定为11011101的尾数位339将二百二十一(221)表示为无符号整数,因此上文给定为f的尾数位339是使用这些值及等式2,对应于表3中给定的posit位串的数值是
图5是根据本公开的数个实施例的呈包含控制电路系统520的设备500的形式的功能框图。控制电路系统520可包含逻辑电路系统522及存储器资源524,其可类似于本文中在图1中说明的逻辑电路系统122及存储器资源124。逻辑电路系统522及/或存储器资源524可单独视作“设备”。
控制电路系统520可经配置以从主机(例如本文中在图1及2中说明的主机102/202)及/或控制器(例如本文中在图2中说明的控制器210)接收命令(例如启动命令),以启动对存储于存储器资源524中的数据执行一或多个操作(例如转换操作等)。一旦启动命令已被控制电路系统520接收,控制电路系统520就可在没有来自主机及/或控制器的中介命令的情况下执行上文描述的操作(例如转换操作及/或致使感测电路系统使用经转换位串执行算术及/或逻辑运算的操作)。举例来说,控制电路系统520可包含充足处理资源及/或指令以对存储于存储器资源524中的位串执行操作,而无需从控制电路系统520外部的电路系统接收额外命令。
逻辑电路系统522可为算术逻辑单元(ALU)、状态机、序列发生器、控制器、指令集架构、一或多个处理器(例如处理装置或处理单元)或其它类型的控制电路系统。如上文描述,ALU可包含使用整数二进制数(例如呈通用数字或posit格式的位串)执行例如上文描述的操作的操作(例如,转换操作在支持不同精度水平的各种格式之间转换位串等)的电路系统。指令集架构(ISA)可包含精简指令集计算(RISC)装置。在其中逻辑电路系统522包含RISC装置的实施例中,RISC装置可包含可采用例如RISC-V ISA的指令集架构(ISA)的处理资源或处理单元,然而,实施例不限于RISC-V ISA,且可使用其它处理装置及/或ISA。
在一些实施例中,逻辑电路系统522可经配置以执行指令(例如,存储于存储器资源524的INSTR 525部分中的指令)以执行本文中的操作。举例来说,逻辑电路系统524经提供有充足处理资源以致使执行在各种格式之间转换位串的操作及/或致使感测电路系统使用由控制电路系统520接收到的经转换位串来执行算术及/或逻辑运算。
一旦操作由逻辑电路系统522执行,所得位串就可被存储于存储器资源524及/或存储器阵列(例如本文中在图2中说明的存储器阵列230)中。所存储的所得位串可经寻址使得其可经存取来执行操作。举例来说,位串可经存储于存储器资源524及/或存储器阵列中的特定物理地址(其可具有对应于其的对应逻辑地址)处,使得在执行操作时可存取所述位串。在一些实施例中,位串可被传送到存储器阵列(例如图1A到1B及2A到2B中说明的存储器阵列130/230)及/或感测电路系统(例如图2A中说明的感测电路系统250),它们可使用位串执行后续操作(例如算术及/或逻辑运算)。
在一些实施例中,存储器资源524可为例如随机存取存储器(例如RAM、SRAM等)的存储器资源。然而,实施例不限于此,且存储器资源524可包含各种寄存器、高速缓存、缓冲器及/或存储器阵列(例如1T1C、2T2C、3T等DRAM阵列)。存储器资源524可经配置以从例如主机(例如图2A到2B中说明的主机202)及/或存储器阵列(例如本文中图2A中说明的存储器阵列230)接收位串。在一些实施例中,存储器资源538可具有约256千字节(KB)的大小,然而,实施例不限于此特定大小,且存储器资源524可具有大于或小于256KB的大小。
存储器资源524可经分区成一或多个可寻址存储器区域。如图5中展示,存储器资源524可经分区成可寻址存储器区域,使得各种类型的数据可被存储于其中。举例来说,一或多个存储器区域可存储供存储器资源524使用的指令(“INSTR”)525,一或多个存储器区域可存储位串526-1、…、526-N(例如从主机及/或存储器阵列检索的位串的数据),及/或一或多个存储器区域可用作存储器资源538的本地存储器(“LOCAL MEM.”)528部分。尽管在图5中展示20个相异存储器区域,但应了解,存储器资源524可经分区成任何数目个相异存储器区域。
如上文论述,可响应于由主机、控制器(例如本文中图2中说明的控制器210)或逻辑电路系统522产生的消息及/或命令从主机及/或存储器阵列检索位串。在一些实施例中,命令及/或消息可由逻辑电路系统522处理。一旦位串被控制电路系统520接收且被存储于存储器资源524中,那么其可由逻辑电路系统522处理。除了使用经转换(例如通用数字或posit格式化)位串作为运算数的递归运算(例如乘积累加运算)之外,由逻辑电路系统522处理位串还可包含执行用于在各种格式之间转换位串的操作。
在非限制性神经网络训练应用中,控制电路系统520可将具有es=0的16位posit转换成具有es=0的8位posit以用于神经网络训练应用中。在一些方法中,半精度16位浮点位串可用于神经网络训练,然而,与利用半精度16位浮点位串进行神经网络训练的一些方法相比,具有es=0的8位posit位串可提供相当于比半精度16位浮点位串快两到四倍的神经网络训练结果。
举例来说,如果控制电路系统520接收具有es=0的16位posit位串以用于神经网络训练应用中,那么控制电路系统520可选择性地从16位posit位串的一或多个位子集移除位,以将16位posit位串的精度改成具有es=0的8位posit位串。应了解,实施例不限于此,且控制电路系统520可改变位串的精度以产生具有es=1的8位posit位串(或某一其它值)。另外,控制电路系统520可改变16位posit位串的精度以产生32位posit位串(或某一其它值)。
在执行与上文实例有关的操作期间,控制电路系统520可经配置以致使每一迭代处的操作的结果被存储于存储器装置或存储器阵列的外围中的电路系统中。举例来说,控制电路系统520可经配置以致使每一迭代处的操作的结果被存储于例如图2A中说明的外围逻辑270的多个外围感测放大器中。这些中间结果可在神经网络训练应用的上下文中的递归运算的后续迭代中使用,以改进操作的最终结果的准确度,如本文中描述。在一些实施例中,操作可由感测电路系统(例如图2A中说明的感测电路系统250)执行,且操作的精确(例如未经舍入)中间结果可被存储于外围逻辑270中。
用于训练神经网络的常见函数是sigmoid函数f(x)(例如,随着x→-∞渐近地接近零且随着x→∞渐近地接近1的函数)。可用于神经网络训练应用中的sigmoid函数的实例是其可能需要超过一百个时钟循环来使用半精度16位浮点位串进行计算。然而,使用具有es=0的8位posit,相同函数可通过以下来评估:翻转表示x的posit的第一位及将两个位向右移位——相较于使用半精度16位浮点位串的相同函数的评估,操作可能花费少至少一个数量级的时钟信号。
通过允许在无需舍入或截断迭代结果的情况下保留sigmoid函数的评估的迭代结果,相较于其中操作的中间结果被舍入或截断的方法,可改进最终结果的准确度。举例来说,通过存储使用感测电路系统执行的递归运算的中间结果以评估例如外围感测放大器(例如图2A中说明的外围逻辑270)中的sigmoid函数,相较于其中操作的中间结果被舍入或截断的方法,可改进最终结果的准确度。
在此实例中,通过操作控制电路系统520以改变posit位串的精度以产生更期望的精度水平,相较于不包含经配置以执行此类转换及/或后续操作的控制电路系统520的方法,处理时间、资源消耗及/或存储空间可减少。处理时间、资源消耗及/或存储空间的此减少可改进计算装置的功能,其中控制电路系统520通过减少用于执行此类操作的时钟信号数(此可减少由计算装置消耗的功率量及/或执行此类操作的时间量)以及通过释放处理及/或存储器资源用于其它任务及功能而进行操作。
图6是说明根据本公开的数个实施例的包含感测电路系统的存储器阵列630的部分的示意图。感测组件650表示可对应于图1B及2A中展示的感测电路系统150/250的数个感测组件中的一者。
在图6中展示的实例中,存储器阵列630是其中一晶体管用作存取装置且一电容器用作存储元件的1T1C(一个晶体管一个电容器)存储器单元的DRAM阵列;然而可使用配置的其它实施例(例如,每存储器单元具有两个晶体管及两个电容器的2T2C)。在此实例中,第一存储器单元包括晶体管651-1及电容器652-1,且第二存储器单元包括晶体管651-2及电容器652-2等。在数个实施例中,存储器单元可为破坏性读取存储器单元(例如,读取存储于单元中的数据会损坏数据,使得最初存储于单元中的数据在读取之后被刷新)。
存储器阵列630的单元可经布置成由存取线662-X(行X)、662-Y(行Y)等耦合的行及由互补感测线对(例如在图6中标记为DIGIT(n)的数字线653-1及标记为DIGIT(n)_的653-2)耦合的列。尽管在图6中仅展示一对互补数字线,但本公开的实施例不限于此,且存储器单元阵列可包含额外列的存储器单元及数字线(例如4,096、8,192、16,384等)。
存储器单元可经耦合到不同数字线及字线。例如,在此实例中,晶体管651-1的第一源极/漏极区域经耦合到数字线653-1,晶体管651-1的第二源极/漏极区域经耦合到电容器652-1,且晶体管651-1的栅极经耦合到字线662-Y。晶体管651-2的第一源极/漏极区域经耦合到数字线653-2,晶体管651-2的第二源极/漏极区域经耦合到电容器652-2,且晶体管651-2的栅极经耦合到字线662-X。图6中所展示的单元板可经耦合到电容器652-1及652-2中的每一者。在各种存储器阵列配置中,单元板可为参考电压(例如接地)可施加到其的共同节点。
根据本公开的数个实施例,存储器阵列630的数字线653-1及653-2经耦合到感测组件650。在此实例中,感测组件650包括对应于相应列的存储器单元(例如,耦合到相应对的互补数字线)的感测放大器654及计算组件665。感测放大器654经耦合到互补数字测线对653-1及653-2。计算组件665经由传递门655-1及655-2耦合到感测放大器654。传递门655-1及655-2的栅极可经耦合到选择逻辑613。
选择逻辑613可包含:传递门逻辑,其用于控制耦合感测放大器654与计算组件665之间未经转置的互补数字线对的传递门;及交换门逻辑,其用于控制耦合感测放大器654与计算组件665之间经转置的互补数字线对的交换门。选择逻辑613可经耦合到互补数字线对653-1及653-2且经配置以对存储于阵列630中的数据执行逻辑运算。例如,选择逻辑613可经配置以基于正执行的所选择的逻辑运算而控制传递门655-1及655-2的连续性(例如接通/断开)。
感测放大器654可经操作以确定存储于所选择的存储器单元中的数据值(例如逻辑状态)。感测放大器654可包括交叉耦合锁存器615(例如,一对晶体管(例如n沟道晶体管661-1及661-2)的栅极与另一对晶体管(例如p沟道晶体管629-1及629-2)的栅极交叉耦合),其可在本文中称为初级锁存器。然而,实施例不限于此实例。
在操作中,当存储器单元被感测(例如读取)时,数字线653-1或653-2中的一者上的电压将略高于数字线653-1或653-2中的另一者上的电压。ACT信号及RNL*信号可被驱动为低以启用(例如触发)感测放大器654。具有较低电压的数字线653-1或653-2将在比晶体管629-1或629-2中的另一者更大的程度上接通晶体管629-1或629-2中的一者,从而在比另一数字线654-1或654-2被驱动为高更大的程度上将具有更高电压的数字线654-1或654-2驱动为高。
类似地,具有较高电压的数字线654-1或654-2将在比晶体管661-1或661-2中的另一者更大的程度上接通晶体管661-1或661-2中的一者,从而在比另一数字线654-1或654-2被驱动为低更大的程度上将具有更低电压的数字线654-1或654-2驱动为低。因此,在短延迟之后,具有略大电压的数字线654-1或654-2通过源极晶体管被驱动到供应电压VCC的电压,且另一数字线654-1或654-2通过吸收晶体管被驱动到参考电压(例如接地)的电压。因此,交叉耦合晶体管661-1及661-2及晶体管629-1及629-2用作感测放大器对,其放大数字线654-1及654-2上的差分电压且操作以锁存从所选择的存储器单元感测到的数据值。
实施例不限于图6中说明的感测组件配置。作为实例,感测放大器654可为电流模式感测放大器及/或单端式感测放大器(例如耦合到一个数字线的感测放大器)。而且,本公开的实施例不限于例如图6中展示的折叠式数字线架构。
感测组件650可为选择性地耦合到共享I/O线的多个感测组件中的一者。因而,根据本公开的数个实施例,感测组件650可与保留存储于存储器中的数据相关联地使用。
在此实例中,感测放大器654包含平衡电路系统659,其可经配置以平衡数字线654-1及654-2。平衡电路系统659包括耦合于数字线654-1与654-2之间的晶体管658。平衡电路系统659还包括晶体管656-1及656-2,其每一者具有耦合到平衡电压(例如VDD/2)的第一源极/漏极区域,其中VDD是与阵列相关联的供应电压。晶体管656-1的第二源极/漏极区域经耦合到数字线654-1,且晶体管656-2的第二源极/漏极区域经耦合到数字线654-2。晶体管658、656-1及656-2的栅极可耦合在一起且耦合到平衡(EQ)控制信号线657。因而,激活EQ启用晶体管658、656-1及656-2,其有效地将数字线654-1及654-2短接在一起且短接到平衡电压(例如VDD/2)。尽管图6展示包括平衡电路系统659的感测放大器654,但实施例不限于此,且平衡电路系统659可与感测放大器654分离地实施,以与图6中展示的配置不同的配置实施,或完全不实施。
如图6中展示,计算组件665还可包括锁存器,其在本文中可称为次级锁存器664。次级锁存器664可以类似于上文关于初级锁存器663描述的方式的方式配置及操作,例外之处在于:包含于次级锁存器中的一对交叉耦合p沟道晶体管(例如PMOS晶体管)可使其相应源极耦合到供应电压612-2(例如VDD),且次级锁存器的一对交叉耦合n沟道晶体管(例如NMOS晶体管)可使其相应源极选择性地耦合到参考电压612-1(例如接地),使得次级锁存器被连续启用。计算组件665的配置不限于图6中展示的配置,且各种其它实施例是可行的。
图7A到7B说明根据本公开的数个实施例的与使用感测电路系统执行数个逻辑运算相关联的时序图。图7A说明与操作感测电路系统(例如图6中的650)以执行AND逻辑运算相关联的数个控制信号。“EQ”对应于施加到感测放大器654的平衡信号,“行X”对应于施加到存取线662-X的激活信号,“行Y”对应于施加到存取线662-Y的激活信号,“Act”及“RnIF”对应于施加到感测放大器654的相应有效正及负控制信号,“负载”对应于负载控制信号(例如,施加到初级锁存器663的负载控制信号),且“AND”对应于施加到图6中展示的逻辑613的控制信号。图7A还说明展示在对于行X及行Y数据值的各种数据值组合的AND逻辑运算期间对应于感测放大器654-2的数字线D及D_上及对应于计算组件665(例如累加器)的节点S及S*上的信号(例如电压信号)的波形图(例如,图对应于相应数据值组合00、10、01、11)。在下文关于与图6中展示的电路的AND运算相关联的伪代码论述特定时序图波形。
与将存储于耦合到行662-X的单元中的第一数据值加载(例如复制)到累加器中相关联的伪代码的实例可概述如下:
将行X复制到累加器中:
取消激活EQ;
打开行X;
触发感测放大器(此后,行X数据驻留于感测放大器中);
激活负载(感测放大器数据(行X)被传送到累加器的节点S1及S2且动态驻留在其处);
取消激活负载;
关闭行X;
预充电;
在上文伪代码中,如图7A中所展示,“取消激活EQ”指示对应于感测放大器654的平衡信号(图7A中展示的EQ信号)在t1被停用(例如,使得互补数据线(例如653-1DIGIT(n)及653-2(DIGIT(n)_不再短接到VDD/2)。在平衡被停用之后,所选择的行(例如行X)被启用(例如选择、打开,例如通过激活信号以选择特定行),如由伪代码中的“打开行X”指示及在图7A中针对信号行X在t2处所展示。当施加到行X的电压信号达到对应于所选择的单元的存取晶体管的阈值电压(Vt)时,存取晶体管接通且将数据线(例如653-2(DIGIT(n)_))耦合到所选择的单元(例如,耦合到电容器651),此在数据线之间创建差分电压信号。
在行X被启用之后,在上文伪代码中,“触发感测放大器”指示感测放大器654被启用以设置初级锁存器(如已在本文中描述)且随后被停用。举例来说,如在图7A中的t3处展示,ACT正控制信号(例如图2B中展示的265)转为高且RnIF负控制信号转为低,此放大653-1(DIGIT(n))与653-2(DIGIT(n)_)之间的差分信号,从而导致数据线653-1(DIGIT(n))上的对应于逻辑1的电压(例如VDD)或对应于逻辑0的电压(例如GND)。对应于另一逻辑的电压被放置于互补数据线653-2(DIGIT(n)_)上。感测到的数据值被存储于感测放大器654的初级锁存器中。主要能量消耗发生在将数据线(例如653-1(DIGIT(n))或653-2(DIGIT(n)_))从平衡电压VDD/2充电到轨电压VDD时。
图7A中说明的四组可能感测放大器及累加器信号(例如,一组用于行X及行Y数据值的每一组合)展示数据线D及D_(例如653-1(DIGIT(n)或653-2(DIGIT(n)_)上的信号的行为。行X数据值被存储于感测放大器的初级锁存器中。应注意,图7A展示包含对应于行X的存储元件的存储器单元经耦合到互补数据线D_,而包含对应于行Y的不同存储元件的存储器单元经耦合到数据线D。然而,如图7A中可见,存储于对应于行X的存储器单元中的对应于“0”数据值的电荷致使数据线D_上的电压转为高,且存储于不同存储器单元中的对应于“1”数据值的电荷致使数据线D_上的电压转为低,此与存储于对应于耦合到数据线D的行Y的存储器单元中的数据状态与电荷之间的对应关系相反。当将数据值写入到相应存储器单元时,适当考虑将电荷存储于耦合到不同数据线的存储器单元中的这些差异。
在上文伪代码中,在触发感测放大器之后,“激活负载”指示负载控制信号转为高,如在图7A中的t4处展示,从而致使负载/传递晶体管655-1及655-2传导。以此方式,激活负载控制信号启用计算组件665的累加器中的次级锁存器。存储于感测放大器654中的感测到的数据值被传送(例如复制)到次级锁存器。如针对图7A中说明的四组可能感测放大器及累加器信号中的每一者展示,累加器的次级锁存器的输入处的行为指示次级锁存器被加载有行X数据值。如图7A中展示,累加器的次级锁存器可翻转(例如,参见针对行X=“0”且行Y=“0”及针对行X=“1”且行Y=“0”的累加器信号)或不翻转(例如,参见针对行X=“0”且行Y=“1”及针对行X=“1”且行Y=“1”的累加器信号),这取决于先前存储于动态锁存器中的数据值。
在于上文伪代码中从存储于感测放大器中(及存在于图6中的数据线653-1(DIGIT(n)或653-2(DIGIT(n)_)上)的数据值设置次级锁存器之后,“取消激活负载”指示负载控制信号转回到低,如在图7A中的t5处展示,以致使负载/传递晶体管655-1及655-2停止传导且借此隔离动态锁存器与互补数据线。然而,数据值保持动态地存储于累加器的次级锁存器中。
在将数据值存储于次级锁存器上之后,所选择的行(例如行X)被停用(例如,被取消选择、关闭,例如通过取消激活特定行的选择信号),如由“关闭行X”指示且在图7A中的t6处指示,此可通过存取晶体管断开以从对应数据线解耦所选择的单元来实现。一旦所选择的行被关闭且存储器单元与数据线隔离,数据线就可被预充电,如由上文伪代码中的“预充电”指示。数据线的预充电可通过平衡操作实现,如图7A中通过在t7处EQ信号转为高所指示。如在图7A中在t7处说明的四组可能感测放大器及累加器信号中的每一者中展示,平衡操作致使数据线D及D_上的电压每一者返回到VDD/2。例如,平衡可在存储器单元感测操作或逻辑运算之前发生(在下文描述)。
与对第一数据值(现在存储于图6中展示的感测放大器654及计算组件665的次级锁存器中)及第二数据值(存储于耦合到行Y 662-Y的存储器单元中)执行AND或OR运算相关联的后续操作阶段包含执行特定步骤,所述特定步骤取决于将执行AND还是OR。在下文概述与使驻留于累加器中的数据值(例如,存储于耦合到行X 662-X的存储器单元中的第一数据值)及第二数据值(例如,存储于耦合到行Y 662-Y的存储器单元中的数据值)进行“AND”及“OR”相关联的伪代码的实例。与使数据值进行“AND”相关联的实例伪代码可包含:
取消激活EQ;
打开行Y;
触发感测放大器(此后,行Y数据驻留于感测放大器中);
关闭行Y;
在下一操作中,逻辑运算的结果将被放置于感测放大器上,此将盖写任何有效的行。
即使当行Y被关闭时,感测放大器仍含有行Y数据值。
激活AND;
此导致感测放大器被写入到函数(例如行X AND行Y)的值
如果累加器含有“0”(即,对应于节点S*上的“0”的电压及对应于节点S上的“1”的电压),那么感测放大器数据被写入到“0”;
如果累加器含有“1”(即,对应于节点S*上的“1”的电压及对应于节点S上的“0”的电压),那么感测放大器数据保持不变(行Y数据);
此操作使累加器中的数据保持不变。
取消激活AND;
预充电;
在上文伪代码中,“取消激活EQ”指示对应于感测放大器654的平衡信号被停用(例如,使得互补数据线653-1DIGIT(n)及653-2DIGIT(n)_不再短接到VDD/2),此在图7A中在t8处说明。在平衡被停用之后,所选择的行(例如行Y)被启用,如在上文伪代码中由“打开行Y”指示且在图7A中在t9处展示。当施加到行Y的电压信号达到对应于所选择的单元的存取晶体管(例如651-2)的阈值电压(Vt)时,存取晶体管接通且将数据线(例如D_653-2))耦合到所选择的单元(例如,耦合到电容器652-2),此在数据线之间创建差分电压信号。
在上文伪代码中,在行Y被启用之后,“触发感测放大器”指示感测放大器654被启用以放大653-1(DIGIT(n))或653-2(DIGIT(n)_)之间的差分信号,从而导致数据线653-1(DIGIT(n))上的对应于逻辑1的电压(例如VDD)或对应于逻辑0的电压(例如GND)。对应于另一逻辑状态的电压在互补数据线653-2(DIGIT(n)_)上。如图7A中在t10处展示,ACT正控制信号转为高且RnIF负控制信号转为低以触发感测放大器。从存储器单元感测到的数据值被存储于感测放大器654的初级锁存器中,如先前描述。次级锁存器仍对应于来自存储器单元的数据值,因为动态锁存器不变。
在上文伪代码中,在从耦合到行Y的存储器单元感测到的第二数据值被存储于感测放大器206-2的初级锁存器中之后,“关闭行Y”指示如果不希望将AND逻辑运算的结果存储回于对应于行Y的存储器单元中,那么所选择的行(例如行Y)可被停用。然而,图6A展示行Y保持启用,使得逻辑运算的结果可被存储回于对应于行Y的存储器单元中。隔离对应于行Y的存储器单元可通过存取晶体管断开以从数据线653-1(DIGIT(n))解耦所选择的单元来实现。
在所选择的行Y被配置(例如,以隔离存储器单元或不隔离存储器单元)之后,上文伪代码中的“激活AND”指示AND控制信号转为高,如图8A中在t11处展示,从而致使传递晶体管655-1传导。以此方式,激活AND控制信号致使函数(例如行X AND行Y)的值被写入到感测放大器。
利用存储于累加器665的动态锁存器中的第一数据值(例如行X)及存储于感测放大器654中的第二数据值(例如行Y),如果计算组件665的动态锁存器含有“0”(即,节点S*上的电压对应于“0”及节点S上的电压对应于“1”),那么感测放大器数据被写入到“0”(无论先前存储于感测放大器中的数据值为何)。此是因为节点S上的对应于“1”的电压致使晶体管661-1传导,从而通过晶体管661-1、传递晶体管655-1及数据线653-1(D)将感测放大器654耦合到接地。当AND运算的任一数据值是“0”时,结果是“0”。在此,当第二数据值(在动态锁存器中)是“0”时,AND运算的结果是“0”,无论第一数据值的状态为何。因此,感测电路系统的配置致使“0”结果被写入且初始存储于感测放大器654中。此操作使累加器中的数据值保持不变(例如,来自行X)。
如果累加器的次级锁存器含有“1”(例如,来自行X),那么AND运算的结果取决于存储于感测放大器654中(例如,来自行Y)的数据值。如果存储于感测放大器654中(例如,来自行Y)的数据值也是“1”,那么AND运算的结果应为“1”,但如果存储于感测放大器654中(例如,来自行Y)的数据值是“0”,那么AND运算的结果应是“0”。感测电路系统650经配置使得如果累加器的动态锁存器含有“1”(即,节点S*上的电压对应于“1”及节点S上的电压对应于“0”),那么晶体管661-1不传导,感测放大器不耦合到接地(如上文描述),且先前存储于感测放大器654中的数据值保持不变(例如,行Y数据值,因此如果行Y数据值是“1”,那么AND运算结果是“1”,且如果行Y数据值是“0”,那么AND运算结果是“0”)。此操作使累加器中的数据值保持不变(例如,来自行X)。
在AND运算的结果初始被存储于感测放大器654中之后,上文伪代码中的“取消激活AND”指示AND控制信号转为低,如图7A中在t12处展示,从而致使传递晶体管655-1停止传导以隔离感测放大器655(及数据线653-1)与接地。如果先前未进行,那么行Y可被关闭(如图7A中在t13处展示)且感测放大器可被停用(如图7A中在t14处展示,通过ACT正控制信号转为低且RnIF负控制信号转为高)。在数据线被隔离的情况下,上文伪代码中的“预充电”可致使数据线通过平衡操作预充电,如先前描述(例如,在图7A中展示的t14处开始)。
图7A展示在替代方案中,对于涉及运算数的可能组合(例如行X/行Y数据值00、10、01及11)中的每一者的AND逻辑运算,耦合到感测放大器(例如图6中展示的654)的数据线(例如图6中展示的653-1(DIGIT(n))或653-2(DIGIT(n)_))上的电压信号的行为及计算组件(例如图6中展示的665)的次级锁存器的节点S及S*上的电压信号的行为。
尽管图7A中说明的时序图及上文描述的伪代码指示在起始将第二运算数(例如行Y数据值)加载到感测放大器中之后启用AND逻辑运算,但图6中展示的电路可通过在起始将第二运算数(例如行Y数据值)加载到感测放大器中之前启动AND逻辑运算而成功地操作。
图7B说明根据本公开的数个实施例的与使用感测电路系统执行数个逻辑运算相关联的时序图。图7B说明与在起始将第二运算数(例如行Y数据值)加载到感测放大器中之后启动OR逻辑运算相关联的时序图。图7B说明用于第一及第二运算数数据值的各种组合的感测放大器及累加器信号。在下文关于与图7A中展示的电路的AND逻辑运算相关联的伪代码论述特定时序图信号。
后续操作阶段可替代地与对第一数据值(现在存储于感测放大器654及计算组件665的次级锁存器中)及第二数据值(存储于耦合到行Y 662-Y的存储器单元中)执行OR运算相关联。先前关于图7A中展示的时间t1到t7描述的将行X数据加载到感测放大器及累加器中的操作关于图7B不再重复。与使数据值进行“OR”相关联的实例伪代码可包含:
取消激活EQ;
打开行Y;
触发感测放大器(此后,行Y数据驻留于感测放大器中);
关闭行Y;
当行Y被关闭时,感测放大器仍含有行Y数据值。
激活OR;
此导致感测放大器被写入到函数(例如行X OR行Y)的值,此可如下那样从先前存储于感测放大器中的行Y盖写数据值:
如果累加器含有“0”(即,节点S*上的电压对应于“0”及节点S上的电压对应于“1”),那么感测放大器数据保持不变(行Y数据);
如果累加器含有“1”(即,节点S*上的电压对应于“1”及节点S上的电压对应于“0”),那么感测放大器数据被写入到“1”;
此操作使累加器中的数据保持不变。
取消激活OR;
预充电;
上文伪代码中展示的“取消激活EQ”(在图7B中的t8处展示)、“打开行Y”(在图7B中的t9处展示)、“触发感测放大器”(在图7B中的t10处展示)及“关闭行Y”(在图7B中的t13处展示,且可发生于启动特定逻辑函数控制信号之前)指示与先前关于AND运算伪代码描述的相同的功能性。一旦所选择的行Y的配置被适当配置(例如,如果逻辑运算结果被存储于对应于行Y的存储器单元中那么被启用,或如果结果如果逻辑运算结果不被存储于对应于行Y的存储器单元中那么被关闭以隔离存储器单元),上文伪代码中的“激活OR”就指示OR控制信号转为高,如图7B中的t11处展示,此致使传递晶体管655-2传导。以此方式,激活OR控制信号致使函数(例如行X OR行Y)的值被写入到感测放大器。
利用存储于计算组件665的次级锁存器中的第一数据值(例如行X)及存储于感测放大器654中的第二数据值(例如行Y),如果累加器的动态锁存器含有“0”(即,节点S*上的电压对应于“0”及节点S上的电压对应于“1”),那么OR运算的结果取决于存储于感测放大器654中的数据值(例如,来自行Y)。如果存储于感测放大器654中的数据值(例如,来自行Y)是“1”,那么OR运算的结果应为“1”,但如果存储于感测放大器654中的数据值(例如,来自行Y)也是“0”,那么OR运算的结果应是“0”。感测电路系统650经配置使得如果累加器的动态锁存器含有“0”而节点S*上的电压对应于“0”,那么晶体管661-2断开且不传导(且传递晶体管655-1也断开,因为AND控制信号未被断言),因此感测放大器654不耦合到接地(任一侧),且先前存储于感测放大器654中的数据值保持不变(例如,行Y数据值,使得如果行Y数据值是“1”,那么OR运算结果是“1”,且如果行Y数据值是“0”,那么OR运算结果是“0”)。
如果累加器的动态锁存器含有“1”(即,节点S*上的电压对应于“1”及节点S上的电压对应于“0”),那么晶体管661-2不传导(传递晶体管655-2也不传导,因为OR控制信号被断言),且耦合到数据线205-2(D_)的感测放大器654输入经耦合到接地,因为节点S2上对应于“1”的电压致使晶体管661-2与传递晶体管655-2一起传导(传递晶体管655-2也传导,因为OR控制信号被断言)。以此方式,当累加器的次级锁存器含有“1”时,由于OR运算,“1”初始被存储于感测放大器654中,而不管先前存储于感测放大器中的数据值为何。此操作使累加器中的数据保持不变。图7B展示在替代方案中,对于涉及运算数的可能组合(例如行X/行Y数据值00、10、01及11)中的每一者的OR逻辑运算,耦合到感测放大器(例如图6中展示的654)的数据线(例如图6中展示的653-1(DIGIT(n))或653-2(DIGIT(n)_))上的电压信号的行为及计算组件665的次级锁存器的节点S及S*上的电压信号的行为。
在OR运算的结果初始被存储于感测放大器654中之后,上文伪代码中的“取消激活OR”指示OR控制信号转为低,如图6B中的t12处展示,从而致使传递晶体管655-2停止传导以隔离感测放大器654(及数据线D 653-2)与接地。如果先前未进行,那么行Y可被关闭(如图7B中的t13处展示)且感测放大器可通过ACT正控制信号转为低且RnIF负控制信号转为高而被停用。在数据线被隔离的情况下,上文伪代码中的“预充电”可致使数据线通过平衡操作而预充电,如先前描述及在图7B中的t14处展示。
图6中说明的感测电路系统650可按如下提供额外逻辑运算灵活性。通过在上文描述的AND及OR操作中用ANDinv控制信号的操作替换AND控制信号的操作及/或用ORinv控制信号的操作替换OR控制信号的操作,逻辑运算可从{行X AND行Y}变成{~行X AND行Y}(其中“~行X”指示行X数据值的相反值,例如NOT行X),及可从{行X OR行Y}变成{~行X OR行Y}。举例来说,在涉及经反转数据值的AND运算期间,可断言ANDinv控制信号而不是AND控制信号,且在涉及经反转数据值的OR运算期间,可断言ORInv控制信号而不是OR控制信号。激活ORinv控制信号致使晶体管656-2传导,且激活ANDinv控制信号致使晶体管656-1传导。在每一情况中,断言适当经反转控制信号可翻转感测放大器且致使初始存储于感测放大器654中的结果是使用经反转行X及真行Y数据值进行AND运算的结果或使用经反转行X及真行Y数据值进行OR运算的结果。一个数据值的真或互补版本可例如通过首先加载待反转的数据值及其次加载不被反转的数据值而在累加器中用于执行逻辑运算(例如AND、OR)。
在上文关于针对上述AND及OR运算反转数据值描述的类似方法中,图6中展示的感测电路系统可通过将未反转数据值放到累加器的动态锁存器中及使用所述数据来反转感测放大器654中的数据值而执行NOT(例如反转)运算。如先前提及,激活ORinv控制信号致使晶体管656-2传导,且激活ANDinv控制信号致使晶体管656-1传导。ORinv及/或ANDinv控制信号用于实施NOT函数,如在下文伪代码中描述:
将行X复制到累加器中;
取消激活EQ;
打开行X;
触发感测放大器(此后,行X数据驻留于感测放大器中);
激活负载(感测放大器数据(行X)被传送到累加器的节点S1及S2且动态驻留在其处);
取消激活负载;
激活ANDinv及ORinv(此将互补数据值放在数据线上);
此导致感测放大器中的数据值被反转(例如,感测放大器锁存器被翻转)
此操作使累加器中的数据保持不变
取消激活ANDinv及ORinv;
关闭行X;
预充电;
上文伪代码中展示的“取消激活EQ”、“打开行X”、“触发感测放大器”、“激活负载”及“取消激活负载”指示与上文针对AND运算及OR运算描述的用于“将行X复制到累加器中”初始运算阶段的伪代码中的相同操作相同的功能性。然而,不同于在将行X数据加载到感测放大器654中及复制到动态锁存器中之后关闭行X及预充电,可将累加器的动态锁存器中的数据值的互补版本放置于数据线上且因此将其传送到感测放大器654。此通过启用(例如,致使晶体管传导)及停用反转晶体管(例如ANDinv及ORinv)来完成。此导致感测放大器654从先前存储于感测放大器中的真数据值翻转到存储于感测放大器中的互补数据值(例如经反转数据值)。因而,累加器中的数据值的真或互补版本可基于激活或不激活ANDinv及/或Orinv而传送到感测放大器。此操作使累加器中的数据保持不变。
因为图6中展示的感测电路系统650将AND、OR及/或NOT逻辑运算的结果初始存储于感测放大器654中(例如,感测放大器节点上),因此这些逻辑运算结果可容易且快速被传递到任何启用行(逻辑运算完成之后激活的任何行),及/或传递到计算组件665的次级锁存器中。用于AND、OR及/或NOT逻辑运算的感测放大器654及排序还可通过在感测放大器654触发之前适当触发AND、OR、ANDinv及/或ORinv控制信号(及具有耦合到特定控制信号的栅极的对应晶体管的操作)而互换。
当以此方式执行逻辑运算时,感测放大器654可经预种有来自累加器的动态锁存器的数据值,以减小所利用的总电流,因为在累加器函数被复制到感测放大器654时,感测放大器654并非处于全轨电压(例如供应电压或接地/参考电压)下。使用预种感测放大器654的操作序列迫使数据线中的一者到参考电压(使互补数据线处于VDD/2下,或使互补数据线保持不变。在感测放大器654触发时,感测放大器654将相应数据线拉到全轨。使用此操作序列将盖写启用行中的数据。
图8是说明根据本公开的数个实施例的可由图6中展示的感测电路系统实施的可选逻辑运算结果的逻辑表。四个逻辑选择控制信号(例如TF、TT、FT及FF)连同存在于互补感测线上的特定数据值一起可用于选择多个逻辑运算中的一者以实施,其涉及存储于感测放大器654及计算组件665中的起始数据值。四个控制信号连同存在于互补感测线上的特定数据值一起控制传递门655-1及655-2及交换晶体管的连续性,这又影响触发之前/之后计算组件665及/或感测放大器654中的数据值。交换晶体管的可选控制连续性的能力促进实施涉及逆数据值(例如逆运算数及/或逆结果)的逻辑运算等。
图8中说明的逻辑表展示存储于计算组件665中的起始数据值(在844处的列A中展示)及存储于感测放大器654中的起始数据值(在845处的列B中展示)。图8的逻辑表中的另3个顶部列标头(NOT OPEN、OPEN TRUE及OPEN INVERT)是指传递门655-1及655-2及交换晶体管的连续性,传递门655-1及655-2及交换晶体管可相应地被控制为打开或闭合,这取决于当ISO控制信号被断言时四个逻辑选择控制信号(例如TF、TT、FT及FF)的状态以及存在于互补感测线对653-1及653-2上的特定数据值。“Not Open”列856对应于传递门655-1及655-2及交换晶体管742两者都处于非传导状态,“Open True”870对应于传递门655-1及655-2处于传导状态,且“Open Invert”871对应于交换晶体管处于传导状态。对应于传递门655-1及655-2及交换晶体管两者都处于传导状态的配置没有在图8的逻辑表中反映,因为这导致感测线被短接在一起。
经由传递门655-1及655-2及交换晶体管的连续性的选择性控制,图8的逻辑表的上部的两行的第一集合的三列中的每一者可与第一集合下的两行的第二集合的三列中的每一者组合以提供3x 3=9个不同结果组合,对应于九个不同逻辑运算,如由875处展示的各种连接路径指示。可由感测电路系统650实施的九个不同可选逻辑运算在图8中说明的逻辑表中概述。
图8中说明的逻辑表的下部的列展示包含逻辑选择控制信号状态的标头880。举例来说,第一逻辑选择控制信号的状态在行876中提供,第二逻辑选择控制信号的状态在行877中提供,第三逻辑选择控制信号的状态在行878中提供,且第四逻辑选择控制信号的状态在行879中提供。对应于结果的特定逻辑运算在行847中概述。
因而,图6中展示的感测电路系统可用于执行图8中所展示的各种逻辑运算。举例来说,根据本公开的数个实施例,感测电路系统650可经操作以执行与比较存储器中的数据模式相关联的各种逻辑运算(例如AND及OR逻辑运算)。
根据各个实施例,可在例如DRAM(例如在6F^2或4F^2存储器单元大小下是每存储器单元一个晶体管(例如1T1C)配置)的存储器中处理器(PIM)装置的存储器阵列核心中启用一般计算。本文中描述的设备及方法的潜在优势可能不以单个指令速度实现,而是以累积速度实现,所述累积速度可通过并行计算整组数据而无需将数据传送出存储器阵列(例如DRAM)或触发列解码实现。例如,可减小或消除数据传送时间。作为实例,本公开的设备可使用耦合到数据线的存储器单元(例如一列16K存储器单元)中的数据值并行(例如并发)执行AND、OR或SHIFT(移位)。
可并行执行带符号除法运算,而无需经由I/O线将数据传送出阵列。此外,先前方法包含其中数据被移出以用于逻辑运算处理(例如,使用32或64位寄存器)的感测电路,且包含比本公开的设备更少的并行执行的操作。以此方式,通过确保数据以此方式存储以并行对数据执行操作而有效地提供显著更高的处理量,同时更有效避免将数据传送出阵列。根据本公开的设备及/或方法还可使用比其中逻辑运算与存储器分离的配置更少的能量/面积。此外,本公开的设备及/或方法可提供额外能量/面积优势,因为存储器阵列中逻辑运算消除某些数据值传送。
图9是根据本公开的数个实施例的表示用于存储器中的位串运算的实例方法980的流程图。在框982,方法980可包含经由耦合到相应感测线的多个感测放大器来感测对应于根据通用数字格式或posit格而格式化的位串的数据值,所述数据值用作算术运算、逻辑运算或两者的数个输入。感测放大器可类似于本文中图6中说明的感测放大器654。数据值可对应于以不同于IEE 754格式或浮点格式的格式而格式化的位串。举例来说,数据值可对应于根据unum(例如III型unum或posit)格式)而格式化的位串。
在框984,方法980可包含将数据值传送到耦合到多个感测放大器中的相应感测放大器的计算组件的相应锁存器中。计算组件可类似于本文中图6中说明的计算组件665。
在框986,方法可包含使用计算组件确定算术运算、逻辑运算或两者的结果。在一些实施例中,方法980可包含确定算术运算、逻辑运算或两者的结果,而无需执行感测线地址存取。举例来说,计算组件可经配置以执行操作以确定算术运算、逻辑运算或两者的结果,而无需启用存取线以将数据传送到计算组件部署于其中的存储器阵列外部的电路系统或从所述电路系统传送数据。在一些实施例中,计算组件可经配置以在接收到用于与计算组件或感测放大器相关联的感测线的存取命令及/或地址之前执行操作以确定算术运算、逻辑运算或两者的结果。
方法980可进一步包含将算术运算、逻辑运算或两者的结果存储到存储器单元阵列,而无需激活耦合到多个感测放大器的输入/输出线。举例来说,方法980可包含将算术运算、逻辑运算或两者的结果存储于存储器阵列(例如图1A到1B及2A中说明的存储器阵列130/230)中,而无需将算术运算、逻辑运算或两者的结果传送到存储器阵列外部的电路系统。
在一些实施例中,在执行算术运算、逻辑运算时位串可用作第一运算数,且方法980可包含确定位串具有与在执行算术运算、逻辑运算或两者时用作第二运算数的位串相同数量的位或相同的数据类型,及使用第一运算数及第二运算数执行算术运算、逻辑运算或两者。举例来说,方法980可包含确定位串具有与在执行算术运算、逻辑运算或两者时用作第二运算数的位串相同的位串形状,如上文描述。
方法980可进一步包含将算术运算、逻辑运算或两者的结果存储于处于多个感测放大器及计算组件的外围区域中的多个存储位置中,其中算术运算、逻辑运算或两者的结果是算术运算、逻辑运算或两者的精确结果。举例来说,方法980可包含在执行递归运算的后续迭代时将使用位串执行的递归运算的精确(例如未经舍入)中间结果存储于存储器阵列的外围位置中。
尽管本文中已说明及描述特定实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可代替所展示的特定实施例。本公开希望涵盖本公开的一或多个实施例的调适或变化。应理解,以说明性方式而非限制性方式进行上文描述。所属领域的技术人员在检阅上文描述之后将明白上文实施例的组合及本文中未明确描述的其它实施例。本公开的一或多个实施例的范围包含其中使用上文结构及过程的其它应用。因此,应参考所附权利要求书以及此权利要求书所授权的等效物的全范围来确定本公开的一或多个实施例的范围。
在前述具体实施方式中,为了简化本公开,将一些特征一起组在单个实施例中。本公开的方法不应被解译为反映本公开的所公开实施例必须使用比每一权利要求中明确所述的特征更多的特征的意图。实情是,如所附权利要求书反映,发明主题在于少于所公开单个实施例的所有特征。因此,所附权利要求特此并入到具体实施方式中,其中每个权利要求独立作为单独实施例。
Claims (20)
1.一种设备,其包括:
感测电路系统,其包含耦合到存储器阵列的感测放大器及计算组件;及
控制器,其耦合到所述感测电路系统及所述存储器阵列,其中所述控制器经配置以致使:
根据通用数字格式或posit格式而格式化的一或多个位串从所述存储器阵列传送到所述感测电路系统,所述一或多个位串每一者具有相同的位串形状;及
所述感测电路系统使用所述一或多个位串执行算术运算、逻辑运算或两者。
2.根据权利要求1所述的设备,其中所述感测电路系统经配置以通过以下执行所述算术运算、所述逻辑运算或两者:
通过感测所述阵列的含有所述一或多个位串的第一位的存储器单元来执行所述算术运算、所述逻辑运算或两者的第一运算阶段;
通过感测含有所述一或多个位串的不同位的相应数目个不同存储器单元来执行所述算术运算、所述逻辑运算或两者的数个中间运算阶段;及
在所述感测电路系统的所述计算组件中累加所述第一运算阶段及所述数个中间运算阶段的结果。
3.根据权利要求2所述的设备,其中所述感测电路系统经配置以在执行感测线地址存取之前在所述感测电路系统的所述计算组件中累加所述第一运算阶段及所述数个中间运算阶段的所述结果。
4.根据权利要求1到2中任一权利要求所述的设备,其中所述感测电路系统进一步经配置以将所述算术运算、所述逻辑运算或两者的结果存储于所述存储器阵列中,而无需启用耦合到所述感测电路系统的输入/输出(I/O)线。
5.根据权利要求1到2中任一权利要求所述的设备,其进一步包括耦合到所述感测电路系统及所述控制器的控制电路系统,其中所述控制电路系统经配置以:
接收呈不同于所述通用数字格式或所述posit格式的格式的所述一或多个位串;执行操作以将所述一或多个位串从不同于所述通用数字格式或所述posit格式的所述格式转换成所述通用数字格式或所述posit格式,使得所述一或多个位串具有所述相同的位串形状;及
在所述控制器致使根据所述通用数字格式或所述posit格式而格式化的所述一或多个位串被传送到所述感测电路系统之前,致使根据所述通用数字格式或所述posit格式而格式化的所述一或多个位串被传送到所述存储器阵列。
6.根据权利要求5所述的设备,其中所述控制电路系统包含算术逻辑单元、场可编程门阵列、精简指令集计算装置或其组合。
7.根据权利要求1到2中任一权利要求所述的设备,其中所述控制器经配置以:
确定所述一或多个位串中的至少两者具有相同数量的位或与其相关联的相同数据类型;及
致使所述感测电路系统响应于所述确定而使用所述一或多个位串中的所述至少两者执行所述算术运算、所述逻辑运算或两者。
8.一种方法,其包括:
经由耦合到相应感测线的多个感测放大器来感测对应于根据通用数字格式或posit格式而格式化的位串的数据值,所述数据值用作算术运算、逻辑运算或两者的数个输入;
将所述数据值传送到耦合到所述多个感测放大器中的相应感测放大器的计算组件的相应锁存器中;及
使用所述计算组件确定所述算术运算、所述逻辑运算或两者的结果。
9.根据权利要求8所述的方法,其进一步包括在接收对应于感测线地址存取的存取命令之前确定所述算术运算、所述逻辑运算或两者的所述结果。
10.根据权利要求8所述的方法,其进一步包括在感测所述数据值之前,执行操作以从不同于所述通用数字格式或所述posit格式的格式转换根据所述通用数字格式或所述posit格式而格式化的所述位串。
11.根据权利要求8到10中任一权利要求所述的方法,其进一步包括在激活耦合到所述多个感测放大器的输入/输出线之前将所述算术运算、所述逻辑运算或两者的所述结果存储到存储器单元阵列。
12.根据权利要求8到10中任一权利要求所述的方法,其中在执行所述算术运算、所述逻辑运算或两者时所述位串被用作第一运算数,且其中所述方法进一步包括:
确定所述位串具有与在执行所述算术运算、所述逻辑运算或两者时用作第二运算数的位串相同数量的位或相同的数据类型;及
使用所述第一运算数及所述第二运算数执行所述算术运算、所述逻辑运算或两者。
13.根据权利要求8到10中任一权利要求所述的方法,其进一步包括将所述算术运算、所述逻辑运算或两者的所述结果存储于处于所述多个感测放大器及所述计算组件的外围区域中的多个存储位置中,其中所述算术运算、所述逻辑运算或两者的所述结果是所述算术运算、所述逻辑运算或两者的精确结果。
14.一种系统,其包括:
主机;及
存储器装置,其耦合到所述主机且包括控制器、控制电路系统及感测电路系统,其中所述控制电路系统包含:
存储器资源,其经配置以接收包括具有第一格式的位串的数据,所述第一格式提供第一精度水平;及
逻辑电路系统,其经配置以将所述位串转换成提供第二精度水平的第二格式,所述第二精度水平不同于所述第一精度水平,且其中所述控制器经配置以:
致使具有所述第二格式的所述位串被传送到所述感测电路系统;及
致使所述感测电路系统使用具有所述第二格式的所述位串来执行算术运算、逻辑运算或两者,而无需将具有所述第二格式的所述位串或具有所述第二格式的所述位串的结果传送到所述主机。
15.根据权利要求14所述的系统,其中所述第一格式包括浮点格式或IEEE 754格式,且所述第二格式包括通用数字格式或posit格式。
16.根据权利要求14所述的系统,其中所述控制电路系统经配置以:
接收所述算术运算、所述逻辑运算或两者且具有所述第二格式的所述结果;
使用所述逻辑电路系统将所述算术运算、所述逻辑运算或两者的所述结果从所述第二格式转换成所述第一格式。
17.根据权利要求14到17中任一权利要求所述的系统,其中所述第一格式或所述第二格式中的一者包含尾数、基数及指数部分,且其中所述第一格式或所述第二格式中的另一者包含尾数、符号、方案及指数部分。
18.根据权利要求14到17中任一权利要求所述的系统,其中所述逻辑电路系统经配置以接收所述位串、将所述位串从所述第一格式转换成所述第二格式,且其中所述感测电路系统经配置以在没有从所述主机接收到中介命令的情况下使用具有所述第二格式的所述位串执行算术运算、逻辑运算或两者。
19.根据权利要求14到17中任一权利要求所述的系统,其中所述算术运算、所述逻辑运算或两者的结果对应于递归运算的中间迭代,且其中所述控制器经配置以致使所述算术运算、所述逻辑运算或两者的所述结果被传送到所述存储器装置的外围区域中的多个存储位置。
20.根据权利要求14到17中任一权利要求所述的系统,其中所述逻辑电路系统包含算术逻辑单元、场可编程门阵列、精简指令集计算装置或其组合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/540,329 | 2019-08-14 | ||
US16/540,329 US11360768B2 (en) | 2019-08-14 | 2019-08-14 | Bit string operations in memory |
PCT/US2020/043668 WO2021030035A1 (en) | 2019-08-14 | 2020-07-27 | Bit string operations in memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114008583A true CN114008583A (zh) | 2022-02-01 |
CN114008583B CN114008583B (zh) | 2023-04-18 |
Family
ID=74568175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080046067.2A Active CN114008583B (zh) | 2019-08-14 | 2020-07-27 | 存储器中的位串运算 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11360768B2 (zh) |
KR (1) | KR20220031707A (zh) |
CN (1) | CN114008583B (zh) |
DE (1) | DE112020003855T5 (zh) |
WO (1) | WO2021030035A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11403111B2 (en) | 2020-07-17 | 2022-08-02 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic using look-up tables |
US11227641B1 (en) * | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
US11355170B1 (en) | 2020-12-16 | 2022-06-07 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic |
US11354134B1 (en) * | 2021-03-25 | 2022-06-07 | Micron Technology, Inc. | Processing-in-memory implementations of parsing strings against context-free grammars |
WO2023018646A1 (en) * | 2021-08-09 | 2023-02-16 | University Of Cincinnati | Memometer |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170309314A1 (en) * | 2016-04-20 | 2017-10-26 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
Family Cites Families (363)
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 |
DE69132495T2 (de) | 1990-03-16 | 2001-06-13 | Texas Instruments Inc | Verteilter Verarbeitungsspeicher |
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 | 삼성전자 주식회사 | 반도체 메모리 장치 |
US5485373A (en) | 1993-03-25 | 1996-01-16 | Taligent, Inc. | Language-sensitive text searching system with modified Boyer-Moore process |
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 |
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 |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
JP2812262B2 (ja) | 1995-08-31 | 1998-10-22 | 日本電気株式会社 | 連想記憶装置 |
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 |
US6507877B1 (en) * | 1999-09-03 | 2003-01-14 | Whamtech, Inc. | Asynchronous concurrent dual-stream FIFO |
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 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びその制御方法 |
WO2001057875A1 (fr) | 2000-02-04 | 2001-08-09 | Hitachi, Ltd. | Dispositif semi-conducteur |
WO2001065359A2 (en) | 2000-02-29 | 2001-09-07 | Peter Petrov | Method and apparatus for building a memory image |
US7028170B2 (en) | 2000-03-08 | 2006-04-11 | Sun Microsystems, Inc. | Processing architecture having a compare capability |
JP3983969B2 (ja) | 2000-03-08 | 2007-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
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 |
US7302582B2 (en) | 2000-08-21 | 2007-11-27 | United States Postal Service | 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 |
US6807614B2 (en) | 2001-07-19 | 2004-10-19 | Shine C. Chung | Method and apparatus for using smart memories in computing |
US7546438B2 (en) | 2001-07-19 | 2009-06-09 | Chung Shine C | Algorithm mapping, specialized instructions and architecture features for smart memory 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 |
AU2003221680A1 (en) | 2002-04-09 | 2003-10-27 | The Research Foundation Of State University Of New York | 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 | ローム株式会社 | 演算機能付き記憶装置および演算記憶方法 |
JP2007504548A (ja) | 2003-09-04 | 2007-03-01 | コニンクリユケ フィリップス エレクトロニクス エヌ.ブイ. | 集積回路およびキャッシュ・リマッピングの方法 |
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 |
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 |
US7401281B2 (en) | 2004-01-29 | 2008-07-15 | International Business Machines Corporation | Remote BIST high speed test and redundancy calculation |
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 |
US20060069849A1 (en) | 2004-09-30 | 2006-03-30 | Rudelic John C | Methods and apparatus to update information in a memory |
US7685365B2 (en) | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual 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 |
US7187585B2 (en) | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
US7196928B2 (en) | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
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 | 삼성전자주식회사 | 메모리 장치 및 메모리 그 동작 방법 |
WO2007069295A1 (ja) | 2005-12-13 | 2007-06-21 | Spansion Llc | 半導体装置およびその制御方法 |
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 |
US7443729B2 (en) | 2006-07-20 | 2008-10-28 | Sandisk Corporation | System that compensates for coupling based on sensing a neighbor using coupling |
US7885119B2 (en) | 2006-07-20 | 2011-02-08 | Sandisk Corporation | Compensating for coupling during programming |
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 |
US8156299B2 (en) | 2007-10-19 | 2012-04-10 | 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 |
US8555037B2 (en) | 2008-08-15 | 2013-10-08 | Apple Inc. | Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture |
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 |
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 |
US8238173B2 (en) | 2009-07-16 | 2012-08-07 | Zikbit Ltd | Using storage cells to perform computation |
US9076527B2 (en) | 2009-07-16 | 2015-07-07 | Mikamonu Group Ltd. | Charge sharing in a TCAM array |
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 |
WO2011048522A2 (en) | 2009-10-21 | 2011-04-28 | Zikbit Ltd. | Neighborhood operations for parallel processing |
US9477636B2 (en) | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
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 |
US9165023B2 (en) | 2011-01-31 | 2015-10-20 | 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 | データ処理装置およびそのデータ処理方法 |
JP5839474B2 (ja) | 2011-03-24 | 2016-01-06 | 株式会社半導体エネルギー研究所 | 信号処理回路 |
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 |
US9830158B2 (en) | 2011-11-04 | 2017-11-28 | Nvidia Corporation | Speculative execution and rollback |
KR101321481B1 (ko) | 2011-11-04 | 2013-10-28 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 위한 테스트 회로 |
KR20130052971A (ko) | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
WO2013078085A1 (en) | 2011-11-22 | 2013-05-30 | Mips Technologies, Inc. | Processor with kernel mode access to user space virtual addresses |
CN103959237B (zh) | 2011-11-30 | 2016-09-28 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
KR20130072869A (ko) | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | 프리차지 회로 및 비휘발성 메모리 장치 |
CN104011657B (zh) | 2011-12-22 | 2016-10-12 | 英特尔公司 | 用于向量计算和累计的装置和方法 |
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 |
CN106415522B (zh) | 2014-05-08 | 2020-07-21 | 美光科技公司 | 存储器内轻量一致性 |
JP6637906B2 (ja) | 2014-05-08 | 2020-01-29 | マイクロン テクノロジー,インク. | ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法 |
JP6580863B2 (ja) | 2014-05-22 | 2019-09-25 | 株式会社半導体エネルギー研究所 | 半導体装置、健康管理システム |
US9704540B2 (en) | 2014-06-05 | 2017-07-11 | Micron Technology, Inc. | Apparatuses and methods for parity determination 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 |
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 |
US10074407B2 (en) | 2014-06-05 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for performing invert operations using sensing circuitry |
US9779019B2 (en) | 2014-06-05 | 2017-10-03 | Micron Technology, Inc. | Data storage layout |
US9910787B2 (en) | 2014-06-05 | 2018-03-06 | Micron Technology, Inc. | Virtual address table |
US9449674B2 (en) | 2014-06-05 | 2016-09-20 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9711207B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9786335B2 (en) | 2014-06-05 | 2017-10-10 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9898252B2 (en) | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication 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 |
US9747961B2 (en) | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US9740607B2 (en) | 2014-09-03 | 2017-08-22 | Micron Technology, Inc. | Swap operations in memory |
US10068652B2 (en) | 2014-09-03 | 2018-09-04 | Micron Technology, Inc. | Apparatuses and methods for determining population count |
US9589602B2 (en) | 2014-09-03 | 2017-03-07 | Micron Technology, Inc. | Comparison operations in memory |
US9904515B2 (en) | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication 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 |
US9747960B2 (en) | 2014-12-01 | 2017-08-29 | Micron Technology, Inc. | Apparatuses and methods for converting a mask to an index |
US10073635B2 (en) | 2014-12-01 | 2018-09-11 | Micron Technology, Inc. | Multiple endianness compatibility |
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 |
WO2016126472A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for scatter and gather |
EP3254287A4 (en) | 2015-02-06 | 2018-08-08 | Micron Technology, INC. | Apparatuses and methods for memory device as a store for program instructions |
WO2016126474A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for parallel writing to multiple memory device locations |
CN107408408B (zh) | 2015-03-10 | 2021-03-05 | 美光科技公司 | 用于移位决定的装置及方法 |
US9898253B2 (en) | 2015-03-11 | 2018-02-20 | Micron Technology, Inc. | Division operations on variable length elements in memory |
US9741399B2 (en) | 2015-03-11 | 2017-08-22 | Micron Technology, Inc. | Data shift by elements of a vector in memory |
CN107430874B (zh) | 2015-03-12 | 2021-02-02 | 美光科技公司 | 用于数据移动的设备及方法 |
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 |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10262721B2 (en) | 2016-03-10 | 2019-04-16 | Micron Technology, Inc. | Apparatuses and methods for cache invalidate |
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 |
US10977033B2 (en) | 2016-03-25 | 2021-04-13 | Micron Technology, Inc. | Mask patterns generated in memory from seed vectors |
US10474581B2 (en) | 2016-03-25 | 2019-11-12 | Micron Technology, Inc. | Apparatuses and methods for cache operations |
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 |
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 |
US10387299B2 (en) | 2016-07-20 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for transferring data |
US10733089B2 (en) | 2016-07-20 | 2020-08-04 | Micron Technology, Inc. | Apparatuses and methods for write address tracking |
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 |
US10268389B2 (en) | 2017-02-22 | 2019-04-23 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10403352B2 (en) | 2017-02-22 | 2019-09-03 | Micron Technology, Inc. | Apparatuses and methods for compute in data path |
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 |
KR20190051564A (ko) | 2017-11-07 | 2019-05-15 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2019
- 2019-08-14 US US16/540,329 patent/US11360768B2/en active Active
-
2020
- 2020-07-27 DE DE112020003855.6T patent/DE112020003855T5/de active Pending
- 2020-07-27 CN CN202080046067.2A patent/CN114008583B/zh active Active
- 2020-07-27 WO PCT/US2020/043668 patent/WO2021030035A1/en active Application Filing
- 2020-07-27 KR KR1020227004706A patent/KR20220031707A/ko not_active Application Discontinuation
-
2022
- 2022-06-13 US US17/838,884 patent/US11709673B2/en active Active
- 2022-06-13 US US17/838,869 patent/US11714640B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170309314A1 (en) * | 2016-04-20 | 2017-10-26 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
Non-Patent Citations (1)
Title |
---|
MANISH KUMAR JAISWAL等: "Universal number posit arithmetic generator on FPGA", 《《2018 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION (DATE)》》 * |
Also Published As
Publication number | Publication date |
---|---|
US20220308875A1 (en) | 2022-09-29 |
KR20220031707A (ko) | 2022-03-11 |
US20210050040A1 (en) | 2021-02-18 |
US11709673B2 (en) | 2023-07-25 |
US11360768B2 (en) | 2022-06-14 |
CN114008583B (zh) | 2023-04-18 |
DE112020003855T5 (de) | 2022-07-14 |
US11714640B2 (en) | 2023-08-01 |
US20220308874A1 (en) | 2022-09-29 |
WO2021030035A1 (en) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114008583B (zh) | 存储器中的位串运算 | |
CN111724832B (zh) | 用于存储器阵列数据结构正数运算的设备、系统及方法 | |
CN111625183A (zh) | 涉及加速电路系统的系统、设备和方法 | |
CN113965205A (zh) | 位串压缩 | |
US10942889B2 (en) | Bit string accumulation in memory array periphery | |
US11727964B2 (en) | Arithmetic operations in memory | |
CN113918117B (zh) | 动态精确度位串累加 | |
US10942890B2 (en) | Bit string accumulation in memory array periphery | |
US11487699B2 (en) | Processing of universal number bit strings accumulated in memory array periphery | |
CN115398392A (zh) | 算术逻辑单元 | |
CN113924622B (zh) | 存储器阵列外围中的位串累加 | |
US11941371B2 (en) | Bit string accumulation | |
CN113454916B (zh) | 基于主机的位串转换 | |
CN113641602B (zh) | 用于posit运算的加速电路系统 | |
US11579843B2 (en) | Bit string accumulation in multiple registers | |
CN113553278A (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 |