CN111625183A - 涉及加速电路系统的系统、设备和方法 - Google Patents
涉及加速电路系统的系统、设备和方法 Download PDFInfo
- Publication number
- CN111625183A CN111625183A CN202010120872.7A CN202010120872A CN111625183A CN 111625183 A CN111625183 A CN 111625183A CN 202010120872 A CN202010120872 A CN 202010120872A CN 111625183 A CN111625183 A CN 111625183A
- Authority
- CN
- China
- Prior art keywords
- format
- bit string
- memory
- logic circuitry
- bits
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
-
- 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/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49915—Mantissa overflow or underflow in handling floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3832—Less usual number representations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Human Computer Interaction (AREA)
- Nonlinear Science (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Abstract
描述了与加速电路系统有关的系统、设备和方法。所述加速电路系统可以部署在存储器装置中,并且可以包含存储器资源和/或逻辑电路系统。所述加速电路系统可以对数据执行操作以在一或多种数字格式之间转换所述数据,例如浮点和/或通用数(例如,假定数)格式。在所述数据已经转换为特定格式之后,所述加速电路系统可以对所述数据执行算术和/或逻辑操作。例如,所述存储器资源可以接收包括具有第一格式的位串的数据,所述第一格式提供第一精度水平。所述逻辑电路系统可以从所述存储器资源接收所述数据,并将所述位串转换为第二格式,所述第二格式提供不同于所述第一精度水平的第二精度水平。
Description
技术领域
本公开总体上涉及半导体存储器和方法,并且更特别地涉及加速电路系统的设备、系统和方法。
背景技术
存储器装置通常作为计算机或其它电子系统中的内部、半导体、集成电路提供。存在多种不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来保持其数据(例如,主机数据、错误数据等),并且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)和晶闸管随机存取存储器(TRAM)等。非易失性存储器可以通过在未上电时保留存储的数据来提供持久数据,并且可以包含NAND闪速存储器、NOR闪速存储器和电阻可变存储器(例如,相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)和磁阻式随机存取存储器(MRAM),例如自旋扭矩转移随机存取存储器(STT RAM))等。
存储器装置可以耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令,以供在计算机或电子系统操作时由主机使用。例如,在计算或其它电子系统的操作期间,数据、命令和/或指令可以在主机和一(或多)个存储器装置之间转移。
发明内容
本公开的一些实施例提供了一种设备,其包含:存储器资源,其被配置成接收包含具有第一格式的位串的数据,所述第一格式提供第一精度水平;和逻辑电路系统,其耦合到所述存储器资源,其中所述逻辑电路系统被配置成:响应于启动命令的接收,将所述位串转换为第二格式,所述第二格式提供不同于所述第一精度水平的第二精度水平;并且将具有所述第二格式的所述位串写入存储器资源。
本公开的一些实施例提供了一种方法,其包含:由耦合到逻辑电路系统的存储器资源接收包括具有第一格式的多个位的数据,所述第一格式支持第一精度水平的算术操作;和由所述逻辑电路系统执行转换操作以将具有所述第一格式的所述多个位转换为具有第二格式的多个位,所述第二格式支持不同于所述第一精度水平的第二精度水平的算术操作,其中所述第一格式或所述第二格式中的至少一种包含尾数、基数和指数,并且其中所述第一格式或所述第二格式中的另一种包含尾数、区制(regime)、符号和指数。
本公开的一些实施例提供了一种系统,其包含:存储器装置,其包括耦合到存储器资源的逻辑电路系统;控制器,其耦合到所述逻辑电路系统和所述存储器资源;和主机,其耦合到存储器装置,其中所述存储器装置被配置成从所述主机接收具有第一格式的多个位,所述第一格式支持第一精度水平的算术操作。所述控制器被配置成:将具有所述第一格式的所述多个位写入所述存储器资源;并且使所述逻辑电路系统执行转换操作以将具有所述第一格式的所述多个位转换为具有第二格式的多个位,所述第二格式支持不同于所述第一精度水平的第二精度水平的算术操作。
附图说明
图1是计算系统形式的功能框图,所述计算系统包含根据本公开的多个实施例的包含主机和存储器装置的设备。
图2是计算系统形式的另一功能框图,所述计算系统包含根据本公开的多个实施例的包含主机和存储器装置的设备。
图3是具有es指数位的n位帖(post)的一个实例。
图4A是3位假定数的正值的一个实例。
图4B是使用两个指数位的假定数构造的一个实例。
图5是根据本公开的多个实施例的加速电路系统形式的功能框图。
图6是表示根据本公开的多个实施例的用于算术逻辑电路系统的示范性方法的流程图。
具体实施方式
描述了与加速电路系统有关的系统、设备和方法。所述加速电路系统可以部署在存储器装置中,并且可以包含存储器资源和/或逻辑电路系统。所述加速电路系统可以对数据执行操作以在一或多种数字格式之间转换所述数据,例如浮点和/或通用数(例如,假定数)格式。在所述数据已经转换为特定格式之后,所述加速电路系统可以对所述数据执行算术和/或逻辑操作。例如,所述存储器资源可以接收包括具有第一格式的位串的数据,所述第一格式提供第一精度水平。所述逻辑电路系统可以从所述存储器资源接收所述数据,并将所述位串转换为第二格式,所述第二格式提供不同于所述第一精度水平的第二精度水平。
计算系统可以执行多种操作,所述操作可以包含各种计算,这可能需要不同的准确度。然而,计算系统具有有限量的存储器(其存储待在其上执行计算的操作数)。为了促进在有限的存储器资源所施加的约束内对由计算系统存储的操作数执行操作,在一些方法中,操作数以特定格式存储。一种这样的格式被称为“浮点”格式,或为了简单起见被称为“浮点数”(例如,IEEE 754浮点格式)。
在浮点标准下,位串(例如,可以表示数字的位串)(例如二进制数串)以三组整数或三组位表示——一组位被称为“基数”,一组位被称为“指数”,一组位被称为“尾数”(或有效数)。定义二进制数串存储的格式的多组整数或位在本文中可以被称为“数字格式”,或为了简单起见被称为“格式”。例如,定义浮点位串的上述三组整数或位(例如,基数、指数和尾数)可以被称为格式(例如,第一格式)。如以下更详细描述,假定数位串可以包含四组整数或四组位(例如,符号、区制、指数和尾数),这也可以被称为“数字格式”或“格式”(例如,第二格式)。另外,在浮点标准下,位串中可以包含两个无穷(例如,+∞和-∞)和/或两种“NaN”(非数):静默NaN和信令NaN。
浮点标准已经在计算系统中使用了多年,它定义了由多种计算系统执行的算术格式、交换格式、舍入规则、操作以及计算的异常处理。算术格式可以包含二进制和/或十进制浮点数据,其可以包含有限数、无穷和/或特殊NaN值。交换格式可以包含可以用于交换浮点数据的编码(例如,位串)。舍入规则可以包含可以在算术操作和/或转换操作期间对数字进行舍入时满足的一组属性。浮点操作可以包含算术操作和/或其它计算操作,例如三角函数。异常处理可以包含异常条件(例如,除数为零、溢出等)的指示。
浮点的另一种格式被称为“通用数”(unum)格式。unum格式有几种形式——I型unum、II型unum和III型unum(其可以被称为“假定数”和/或“有效数”)。I型unum是IEEE 754标准浮点格式的超集,其使用分数末尾处的“u位”来指示实数是否是确切的浮点数还是位于相邻浮点数的区间中。I型unum的符号、指数和分数位取自其IEEE754浮点格式的定义,但是I型unum的指数和分数字段的长度的差异可能很大(从单个位到最大用户可定义长度)。通过采用IEEE 754标准浮点格式的符号、指数和分数位,I型unum与浮点数表现类似,但是与浮点数相比,I型unum的指数和分数位中表现出的位长差异可能需要另外的管理。
II型unum通常与浮点数不兼容,这允许基于投影实数的简洁数学设计。II型unum可以包含n位,并且可以用“u-点阵”来描述,其中圆投影的象限中填充了2n-3–1个实数的有序集。II型unum的值可以反映平分圆投影的轴线,使得正值位于圆投影的右上象限中,而其负对应值位于圆投影的左上象限中。表示II型unum的圆投影的下半部分可以包含位于圆投影的上半部分中的值的倒数。对于对大多数操作来说,II型unum通常依赖于查找表。例如,在一些情况下,查询表的大小可能会限制II型unum的功效。然而,在一些情况下,与浮点数相比,II型unum可以提供改善的计算功能。
III型unum格式在本文中被称为“假定数格式”,或为了简单起见被称为“假定数”。与浮点位串相反,假定数在某些条件下可以允许比具有相同位宽的浮点数更宽的动态范围和更高的准确性(例如,精度)。这可以允许在使用假定数时以比浮点数更高的速率(例如,更快地)执行由计算系统执行的操作,这又可以例如通过以下方式改善计算系统的性能:减少执行操作中使用的时钟周期数,从而减少在执行此类操作中消耗的处理时间和/或电力。另外,在计算系统中使用假定数可以允许比浮点数更高的准确性和/或精度,与一些方法(例如,依赖于浮点格式位串的方法)相比,这可以进一步改善计算系统的运行。
本文的实施例涉及被配置成对位串执行各种操作以改善计算装置的整体运行的硬件电路系统(例如,逻辑电路系统)。例如,本文的实施例涉及被配置成执行转换操作以将位串的格式从第一格式(例如,浮点格式)转换为第二格式(例如,通用数格式、假定数格式等)的硬件电路系统。一旦将一(或多)个位串转换为第二格式,就可以操作电路系统以对转换后的位串执行操作(例如,算术操作、逻辑操作、逐位操作、向量操作等)。
在一些实施例中,可以进一步操作电路系统以将操作的结果转换回第一格式(例如,浮点格式),然后可以将其转移到计算系统的不同电路系统(例如,主机、存储器装置中的另一组件等)。通过以此方式执行操作,逻辑电路系统可以通过允许所执行的操作中的改善的准确性、执行操作中的改善的速度和/或执行算术和/或逻辑操作期间减少的位串所需的存储空间来促进计算系统的改善的性能。
在本公开的以下详细描述中,参考了构成本公开的一部分的附图,并且在附图中通过图示的方式示出了可以如何实践本公开的一或多个实施例。足够详细地描述了这些实施例,以使本领域普通技术人员能够实践本公开的实施例,并且应当理解,可以利用其它实施例,并且可以在不背离本公开的范围的前提下进行工艺、电气和结构上的改变。
如本文使用,特别是相对于附图中的附图标记的标号(例如,“X”、“Y”、“N”、“M”、“A”、“B”、“C”、“D”等)指示可以包含多个如此进行标号的特定特征。还应理解,本文使用的术语仅出于描述特定实施例的目的,而并不旨在是限制性的。如本文使用,单数形式的“一个/一种(a/an)”和“所述”可以包含单数和复数指代物,除非上下文另外明确指出。另外,“多个(a number of)”、“至少一个”和“一或多个”(例如,多个存储器组)可以是指一或多个存储器组,而“多个(plurality of)”旨在是指多于一个此种事物。此外,在整个本申请中,词语“可以(can/may)”以允许的含义(即有可能、能够)而非强制性的含义(即必须)使用。术语“包含”及其派生词是指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”是指直接或间接地物理连接或存取和移动(传输)命令和/或数据。视上下文而定,术语“位串”、“数据”和“数据值”在本文中可互换使用,并且可以具有相同的含义。
本文中的附图遵循编号惯例,其中第一位或前几位数字与附图编号相对应,其余各位数字标识附图中的元件或组件。可以通过使用类似的数字来标识不同附图之间的类似的元件或组件。例如,120可以指代图1中的元件“20”,而类似的元件可以在图2中被指代为220。一组或多个类似的元件或组件在本文中通常可以用单个元件编号来指代。例如,多个参考元件433-1、433-2、……、433-N通常可以被称为433。将理解的是,可以加入、交换和/或消除本文的各个实施例中示出的元件,以便提供本公开的多个另外的实施例。另外,在附图中提供的元件的比例和/或相对标度旨在示出本公开的某些实施例,而不应被认为是限制性的。
图1是计算系统100形式的功能框图,所述计算系统100包含根据本公开的多个实施例的包含主机102和存储器装置104的设备。如本文使用,“设备”可以是指但不限于多种结构或结构的组合中的任何一种,诸如例如电路或电路系统、一或多个管芯、一或多个模块、一或多个装置或一或多个系统。存储器装置104可以包含一或多个存储器模块(例如,单列直插存储器模块、双列直插存储器模块等)。存储器装置104可以包含易失性存储器和/或非易失性存储器。在多个实施例中,存储器装置104可以包含多芯片装置。多芯片装置可以包含多种不同的存储器类型和/或存储器模块。例如,存储器系统可以包含任何类型的模块上的非易失性或易失性存储器。另外,每个组件(例如,主机102、加速电路系统120、逻辑电路系统122、存储器资源124和/或存储器阵列130)在本文中可以单独地被称为“设备”。
存储器装置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)存储器装置等)或其组合。
如图1中所示,主机102可以耦合到存储器装置104。在多个实施例中,存储器装置104可以经由一或多个通道(例如,通道103)耦合到主机102。在图1中,存储器装置104经由通道103耦合到主机102,并且存储器装置104的加速电路系统120经由通道107耦合到存储器阵列130。主机102可以是主机系统,例如个人膝上型计算机、台式计算机、数字相机、智能电话或存储卡读取器和/或物联网支持装置以及各种其它类型的主机,并且可以包含存储器存取装置,例如处理器(或处理装置)。本领域普通技术人员将理解,“处理器”可以是指一或多个处理器,例如并行处理系统、多个协处理器等。
主机102可以包含系统母板和/或底板,并且可以包含多个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路系统)。系统100可以包含单独的集成电路,或者主机102、存储器装置104和存储器阵列130都可以在同一集成电路上。系统100可以是例如服务器系统和/或高性能计算(HPC)系统和/或其一部分。尽管图1示出的实例示出了具有冯·诺依曼架构的系统,但是本公开的实施例可以在非冯·诺依曼架构中实施,所述非冯·诺依曼架构通常可能不包含与冯·诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
在本文图2中更详细地示出的存储器装置104可以包含加速电路系统120,其可以包含逻辑电路系统122和存储器资源124。逻辑电路系统122可以以集成电路形式提供,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统、或硬件和/或电路系统的其它组合(其被配置成执行本文更详细描述的操作)。例如,逻辑电路系统122可以被配置成接收第一格式的一或多个位串(例如,多个位)(例如,浮点格式的多个位),将一(或多)个位串转换为第二格式(例如,将一(或多)个位串转换为假定数格式),和/或使用具有第二格式的一(或多)个位串来引起操作(例如,算术和/或逻辑操作)的执行。如本文使用,第二格式的一(或多)个位串(例如,假定数格式的一(或多)个位串)包含被称为“符号”的至少一个位、被称为“区制”的一组位、被称为“指数”的一组位和被称为“尾数”(或有效数)的一组位。如本文使用,一组位旨在是指位串中包含的位的子集。结合本文图3和4A-4B更详细地描述了位的符号、区制、指数和尾数集的实例。
操作可以包含转换操作以将浮点位串(例如,浮点数)转换为假定数格式的位串,并且反之亦然。一旦将浮点位串转换为假定数格式的位串,就可以将逻辑电路系统122配置成使用假定数位串来执行算术操作(例如,加法、减法、乘法、除法、融合乘加、乘法-累积、点积单位、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、快速傅立叶逆变换、S型函数、卷积、平方根、指数和/或对数操作)和/或逻辑操作(例如,AND、OR、XOR、NOT等)以及三角操作(例如,正弦、余弦、正切等)(或引起其执行)。如将理解,前述操作列表并非旨在为详尽的,前述操作列表也不旨在为限制性的,并且逻辑电路系统122可以被配置成执行其它算术和/或逻辑操作(或引起其执行)。
逻辑电路系统122可以包含算术逻辑单元(ALU)。ALU可以包含用于对整数二进制位串(例如,假定数格式的位串)执行操作(例如,算术操作、逻辑操作、逐位操作等)(例如,上述操作)的电路系统(例如,硬件、逻辑、一或多个处理装置等)。然而,实施例不限于ALU,并且在一些实施例中,除了或代替ALU,逻辑电路系统122可以包含状态机和/或指令集架构(或其组合),如结合本文图5更详细地描述。
加速电路系统120可以进一步包含存储器资源124,其可以通信地耦合到逻辑电路系统122。存储器资源124可以包含易失性存储器资源、非易失性存储器资源或易失性和非易失性存储器资源的组合。在一些实施例中,存储器资源可以是随机存取存储器(RAM),例如静态随机存取存储器(SRAM)。然而,实施例不限于此,并且存储器资源可以是高速缓存、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM)、“新兴”存储器装置(例如,3-D交叉点(3DXP)存储器装置等)或其组合。
在一些实施例中,存储器资源124可以接收包括具有第一格式的位串的数据,所述第一格式提供第一精度水平。逻辑电路系统122可以从存储器资源接收数据并且将位串转换为第二格式,所述第二格式提供不同于第一精度水平的第二精度水平。在一些实施例中,第一精度水平可以低于第二精度水平。例如,如果第一格式是浮点格式,并且第二格式是通用数或假定数格式,则在某些情况下,浮点位串可以提供比通用数或假定数位串更低的精度水平,如结合本文图3和4A-4B更详细地描述。
第一格式可以是浮点格式(例如,IEEE 754格式),并且第二格式可以是通用数格式(例如,I型unum格式、II型unum格式、III型unum格式、假定数格式、有效数格式等)。因此,第一格式可以包含尾数、基数和指数部分,并且第二格式可以包含尾数、符号、区制和指数部分。
逻辑电路系统122可以被配置成使用具有第二格式的位串来引起算术操作或逻辑操作或两者的执行。例如,逻辑电路系统122可以对第二格式的位串执行一或多个操作,以使用第二格式的位串作为算术和/或逻辑操作的操作数来产生算术操作和/或逻辑操作的结果。
在一些实施例中,逻辑电路系统122可以被配置成响应于确定完成使用位串的操作而将位串转换为第一格式。例如,一旦完成操作(例如,算术操作和/或逻辑操作),就可以以第二格式提供结果位串。为了将结果位串转移到主机102,例如,逻辑电路系统122可以将结果位串转换回第一格式,使得主机102可以处理结果位串。
在一个非限制性实例中,逻辑电路系统122和存储器资源124包含在存储器装置104中。存储器装置104耦合到主机102。存储器装置104可以从主机接收第一格式的数据,和/或将数据转换为第二格式。在将数据从第一格式转换为第二格式之后,可以执行使用具有第二格式的位串的操作。如上所述,所述操作可以是算术操作、逻辑操作、逐位操作、向量操作或其它操作。响应于确定完成使用具有第二格式的位串的操作,存储器装置104(例如,加速电路系统120)可以将表示操作的执行的结果位串转换为第一格式,并将具有第一格式的结果位串转移到主机102。在一些实施例中,存储器装置104可以在不从主机102接收介入命令的情况下执行操作,转换结果位串并转移转换后的结果位串。也就是说,在一些实施例中,响应于在无需来自主机102的另外的输入(不拖累主机102)的情况下接收第一格式的位串,加速电路系统120可以执行操作,转换结果位串并转移转换后的结果位串。
加速电路系统120可以经由一或多个通道107通信地耦合到存储器阵列130。存储器阵列130可以例如是DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND闪存阵列和/或NOR闪存阵列。阵列130可以包括存储器单元,所述存储器单元被布置成由存取线耦合的行以及由感测线耦合的列,所述存取线在本文可以被称为字线或选择线,所述感测线在本文可以被称为数据线或数字线。尽管在图1中示出了单个阵列130,但是实施例不限于此。例如,存储器装置104包括多个存储器阵列130(例如,多组DRAM单元、NAND闪存单元等)。
图1的实施例可以包含另外的电路系统,其并未示出以免模糊本公开的实施例。例如,存储器装置104可以包含地址电路系统,以锁存通过I/O电路系统在I/O连接上提供的地址信号。地址信号可以由行解码器和列解码器接收和解码,以存取存储器装置104和/或存储器阵列130。本领域技术人员将理解,地址输入连接的数量可以取决于存储器装置104和/或存储器阵列130的密度和架构。
图2是计算系统形式的另一功能框图,所述计算系统包含根据本公开的多个实施例的包含主机202和存储器装置204的设备200。存储器装置204可以包含加速电路系统220,其可以类似于图1中示出的加速电路系统120。类似地,主机202可以类似于图1中示出的主机102,存储器装置204可以类似于图1中示出的存储器装置104,并且存储器阵列230可以类似于图1中示出的存储器阵列130。每个组件(例如,主机202、加速电路系统220、逻辑电路系统222、存储器资源224和/或存储器阵列230等)在本文中可以单独地被称为“设备”。
主机202可以经由一或多个通道203、205通信地耦合到存储器装置204。通道203、205可以是接口或其它物理连接,其允许在主机202和存储器装置205之间转移数据和/或命令。例如,待由加速电路系统220执行的用于引起操作(例如,将浮点格式的一(或多)个位串转换为假定数格式的一(或多)个位串的操作以及随后对假定数格式的一(或多)个位串的算术和/或逻辑操作)的启动的命令可以经由通道203、205从主机转移。应当注意,在一些实例中,加速电路系统220可以在没有来自主机202的介入命令的情况下,响应于经由一或多个通道203、205从主机202转移的启动命令来执行操作。也就是说,一旦加速电路系统220已经从主机202接收到用于启动操作的执行的命令,操作便可以在没有来自主机202的另外的命令的情况下由加速电路系统220执行。
如图2中所示,存储器装置204可以包含寄存器存取组件206、高速接口(HSI)208、控制器210、一或多个扩展行地址(XRA)组件212、主存储器输入/输出(I/O)电路系统214、行地址选通(RAS)/列地址选通(CAS)链控制电路系统216、RAS/CAS链组件218、加速电路系统220和存储器阵列230。如图2中所示,加速电路系统220位于存储器装置204的与存储器阵列230物理上不同的区域中。也就是说,在一些实施例中,加速电路系统220位于存储器阵列230的外围位置。
寄存器存取组件206可以促进从主机202到存储器装置204以及从存储器装置204到主机202的数据转移和获取。例如,寄存器存取组件206可以存储地址(例如,存储器地址)(或促进地址查找),所述地址对应于待从存储器装置204转移到主机202或从主机202转移到存储器装置204的数据。在一些实施例中,寄存器存取组件206可以促进待由加速电路系统220操作的数据的转移和获取,和/或寄存器存取组件206可以促进已经由加速电路系统220操作的数据的转移和获取以转移到主机202。
HSI 208可以在主机202和存储器装置204之间提供接口,用于命令和/或数据遍历通道205。HSI 208可以是双倍数据速率(DDR)接口,例如DDR3、DDR4、DDR5等接口。然而,实施例不限于DDR接口,并且HSI 208可以是四倍数据速率(QDR)接口、外围组件互连(PCI)接口(例如,外围组件互连快速(PCIe))接口或用于在主机202和存储器装置204之间转移命令和/或数据的其它合适接口。
控制器210可以负责执行来自主机202的指令并存取加速电路系统220和/或存储器阵列230。控制器210可以是状态机、定序器或一些其它类型的控制器。控制器210可以(例如,经由HSI 208)从主机202接收命令,并且基于所接收的命令控制加速电路系统220和/或存储器阵列230的操作。在一些实施例中,控制器210可以从主机202接收命令以使用加速电路系统220来引起操作的执行。响应于此命令的接收,控制器210可以指示加速电路系统220开始一(或多)个操作的执行。
在一些实施例中,控制器210可以是全局处理控制器,并且可以向存储器装置204提供电力管理功能。电力管理功能可以包含对由存储器装置204和/或存储器阵列230消耗的电力的控制。例如,控制器210可以控制提供给各组存储器阵列230的电力,以控制哪几组存储器阵列230在存储器装置204的操作期间以不同时间操作。这可以包含关闭某几组存储器阵列230,同时向另外几组存储器阵列230提供电力以优化存储器装置230的电力消耗。在一些实施例中,控制存储器装置204的电力消耗的控制器210可以包含控制到存储器装置204的各个核心和/或到加速电路系统220、存储器阵列230等的电力。
一(或多)个XRA组件212旨在提供感测(例如,读取、存储、高速缓存)存储器阵列230中的存储器单元的数据值并且与存储器阵列230不同的另外的功能(例如,外围放大器)。XRA组件212可以包含锁存器和/或寄存器。例如,另外的锁存器可以包含在XRA组件212中。XRA组件212的锁存器可以位于存储器装置204的存储器阵列230的外围(例如,一或多组存储器单元的外围)。
主存储器输入/输出(I/O)电路系统214可以促进到达和来自存储器阵列230的数据和/或命令的转移。例如,主存储器I/O电路系统214可以促进从主机202和/或加速电路系统220到存储器阵列230和来自存储器阵列230的位串、数据和/或命令的转移。在一些实施例中,主存储器I/O电路系统214可以包含一或多个直接存储器存取(DMA)组件,其可以将位串(例如,被存储为数据块的假定数位串)从加速电路系统220转移到存储器阵列230,并且反之亦然。
在一些实施例中,主存储器I/O电路系统214可以促进将位串、数据和/或命令从存储器阵列230转移到加速电路系统220,使得加速电路系统220可以对位串执行操作。类似地,主存储器I/O电路系统214可以促进将已经由加速电路系统220对其执行一或多个操作的位串转移到存储器阵列230。如本文中更详细地描述,所述操作可以包含将根据浮点标准格式化的位串转换为格式化为假定数的位串(并且反之亦然)的操作、对格式化为假定数的数据执行的算术操作、对格式化为假定数的位串执行的逻辑操作等。
行地址选通(RAS)/列地址选通(CAS)链控制电路系统216和RAS/CAS链组件218可以与存储器阵列230结合使用以锁存行地址和/或列地址以启动存储器周期。在一些实施例中,RAS/CAS链控制电路系统216和/或RAS/CAS链组件218可以解析存储器阵列230的行和/或列地址,与存储器阵列230相关联的读取和写入操作将在所述地址处启动或终止。例如,在完成使用加速电路系统220的操作之后,RAS/CAS链控制电路系统216和/或RAS/CAS链组件218可以锁存和/或解析存储器阵列230中的一个具体位置,已经由加速电路系统220操作的位串待存储到所述具体位置。类似地,RAS/CAS链控制电路系统216和/或RAS/CAS链组件218可以锁存和/或解析存储器阵列230中的一个具体位置,位串待从所述具体位置转移到加速电路系统220,然后加速电路系统220对一(或多)个位串执行操作。
如上面结合图1所述并且下面结合图5更详细地描述,加速电路系统220可以被配置成接收第一格式的一或多个位串(例如,浮点格式的多个位),将一或多个位串转换为第二格式(例如,将多个位转换为假定数格式)和/或使用具有第二格式的一或多个位串来引起操作(例如,算术和/或逻辑操作)的执行。
加速电路系统220可以包含逻辑电路系统(例如,图1中示出的逻辑电路系统122)和/或一(或多)个存储器资源(例如,图1中示出的存储器资源124)。位串(例如,数据、多个位等)可以由加速电路系统220从例如主机202和/或存储器阵列230接收,并且由加速电路系统220存储在例如加速电路系统220的存储器资源中。加速电路系统(例如,加速电路系统220的逻辑电路系统)可以对一(或多)个位串执行操作(或引起操作执行)以将一(或多)个位串从浮点格式转换为假定数格式,如结合本文图5更详细地描述。
如结合图3和4A-4B更详细地描述,与以浮点格式表示的相应的位串相比,假定数可以提供改善的准确性并且可以需要更少的存储空间(例如,可以含有更少数量的位)。因此,通过使用加速电路系统220将浮点位串转换为假定数位串,与仅利用浮点位串的方法相比,可以改善存储器装置202的性能,因为可以更快地对假定数位串执行操作(例如,因为假定数格式的数据较小,因此需要较少的时间来执行操作),并且因为在存储器装置202中需要较少的存储器空间来存储假定数格式的位串,这可以释放存储器装置202中的另外的空间以用于其它位串、数据和/或待执行的其它操作。
一旦加速电路系统220已经执行将数据从浮点格式转换为假定数格式的一(或多)个操作,加速电路系统可以对结果假定数数据执行算术和/或逻辑操作(或引起其执行)。例如,如上所讨论,加速电路系统220可以被配置成执行算术操作(例如,加法、减法、乘法、除法、融合乘加、乘法-累积、点积单位、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、快速傅立叶逆变换、S型函数、卷积、平方根、指数和/或对数操作)和/或逻辑操作(例如,AND、OR、XOR、NOT等)以及三角操作(例如,正弦、余弦、正切等)(或引起其执行)。如将理解,前述操作列表并非旨在为详尽的,前述操作列表也不旨在为限制性的,并且加速电路系统220可以被配置成对假定数位串执行其它算术和/或逻辑操作(或引起其执行)。
在一些实施例中,加速电路系统220可以结合一或多种机器学习算法的执行来执行以上列出的操作。例如,加速电路系统220可以执行与一或多个神经网络有关的操作。神经网络可以允许随时间训练算法,以基于输入信号确定输出响应。例如,随着时间的经过,神经网络本质上可以学习以更好地最大化完成特定目标的概率。这在机器学习应用中可能是有利的,因为可以随时间用新数据训练神经网络,以更好地最大化完成特定目标的概率。可以随时间训练神经网络以改善特定任务和/或特定目标的操作。然而,在一些方法中,机器学习(例如,神经网络训练)可能是处理密集型的(例如,可能消耗大量的计算机处理资源)和/或可能是时间密集型的(例如,可能需要冗长的计算,这消耗待执行的多个周期)。相反,通过使用加速电路系统220执行此些操作,例如通过对已经由加速电路系统220转换为假定数格式的位串执行此些操作,可以减少执行操作中的处理资源量和/或所消耗的时间量(与使用浮点格式的位串来执行此些操作的方法相比)。
在一个非限制性实例中,存储器装置204可以从主机102接收包括具有第一格式的位串的数据,所述第一格式支持第一精度水平的算术操作。也就是说,加速电路系统120(其可以包含逻辑电路系统(例如,图1中示出的逻辑电路系统122)和存储器资源(例如,图1中示出的存储器资源124))可以从主机102接收包括具有第一格式的位串的数据,所述第一格式支持第一精度水平的算术操作。在一些实施例中,控制器210可以使逻辑电路系统执行转换操作以将位串转换为第二格式。
第一格式可以是IEEE 754格式,并且第二格式包括III型Unum格式或假定数格式,或反之亦然。例如,第一格式可以包含三组位,并且第二格式可以包含四组位,或反之亦然。
在一些实施例中,控制器210可以被配置成使逻辑电路系统在不拖累主机202(例如,不从主机202接收介入命令或与启动转换操作的执行的命令分开的命令)的情况下执行转换操作。然而,实施例不限于此,并且在一些实施例中,控制器210可以被配置成使加速电路系统220(例如,逻辑电路系统)对具有第二格式的位串执行算术操作或逻辑操作或两者。
如上文结合图1所述,存储器阵列230可以例如是DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND闪存阵列和/或NOR闪存阵列,但是实施例不限于这些特定实例。存储器阵列230可以用作图2中示出的计算系统200的主存储器。在一些实施例中,存储器阵列230可以被配置成存储由加速电路系统220操作的位串和/或存储待转移到加速电路系统220的位串。
图3是n位通用数或具有es指数位的“unum”的一个实例。在图3的实例中,n位unum是假定数位串331。如图3中所示,n位假定数331可以包含一组一(或多)个符号位(例如,符号位333)、一组区制位(例如,区制位335)、一组指数位(例如,指数位337)和一组尾数位(例如,尾数位339)。尾数位339在替代方案中可以被称为“分数部分”或“分数位”,并且可以表示小数点后的位串的一部分(例如,数字)。
符号位333对于正数可以为零(0),并且对于负数可以为一(1)。下面结合表1描述了区制位335,表1示出了(二进制)位串及其相关的数字含义k。在表1中,数字含义k由位串的行程长度确定。表1的二进制部分中的字母x指示所述位值与区制的确定无关,因为(二进制)位串是响应于连续的位翻转或在到达位串的末尾而终止的。例如,在(二进制)位串0010中,位串响应于零翻转为一并然后翻转回零而终止。因此,最后一个零与区制无关,对于区制所考虑的是前导的相同位和终止位串的第一个相反位(如果位串包含这种位)。
二进制 | 0000 | 0001 | 001X | 01XX | 10XX | 110X | 1110 | 1111 |
数字(k) | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 |
表1
在图3中,区制位335r对应于位串中的相同位,而区制位对应于终止位串的相反位。例如,对于表1中示出的数字k值-2,区制位r对应于前两个前导零,而一(或多)个区制位对应于一。如上所述,与数字k对应的最后一位(其由表1中的X表示)与区制无关,。
如果m对应于位串中的相同位的数量,则如果所述位为零,则k=-m。如果所述位为一,则k=m–1。这在表1中示出,其中例如(二进制)位串10XX具有单个一,并且k=m–1=1-1=0。类似地,(二进制)位串0001包含三个零,因此k=-m=-3。所述区制可以指示标度因子useedk,其中以下表2中示出了used的几个示范性值。
es | 0 | 1 | 2 | 3 | 4 |
used | 2 | 2<sup>2</sup>=4 | 4<sup>2</sup>=16 | 16<sup>2</sup>=256 | 256<sup>2</sup>=65536 |
表2
指数位337对应于指数e,为无符号数。与浮点数相反,本文描述的指数位337可以不具有与之相关联的偏置。因此,本文描述的指数位337可以表示因子2e的缩放。如图3中所示,取决于n位假定数331的区制位335右侧剩余多少位,最多可以有es个指数位(e1、e2、e3、……、ees)。在一些实施例中,这可以允许n位假定数331的锥形准确性,其中数值上更接近一的数字具有比非常大或非常小的数字更高的准确性。然而,由于在某些种类的操作中可以较不频繁地使用非常大或非常小的数字,因此图3中示出的n位假定数331的锥形准确性表现在多种情形下是可取的。
尾数位339(或小数位)表示可能是位于指数位337右侧的n位假定数331的一部分的任何另外的位。类似于浮点位串,尾数位339表示小数f,其可以类似于小数1.f,其中f包含一之后的小数点右侧的一或多个位。然而,与浮点位串相反,在图3中示出的n位假定数331中,“隐藏位”(例如,一)可以始终为一(例如,数字一),而浮点位串可以包含“隐藏位”为零的次正规数(例如,0.f)。
图4A是3位假定数的正值的一个实例。在图4A中,仅存在投影实数的右半部分,但是将理解的是,对应于图4A中示出的其正对应值的负投影实数可以存在于表示关于图4A中示出的曲线的y轴的变换的曲线上。
在图4A的实例中,es=2,因此可以通过向位串追加位来提高假定数431-1的准确性,如图4B中所示。例如,向假定数431-1的位串追加值为一(1)的位提高了假定数431-1的精度,如图4B中的假定数431-2所示。类似地,向图4B中的假定数431-2的位串追加值为一的位提高了假定数431-2的准确性,如图4B中示出的假定数431-3所示。以下是可以用于向图4A中示出的假定数431-1的位串追加位以获得图4B中示出的假定数431-2、431-3的内插规则的一个实例。
如果maxpos是假定数431-1、431-2、431-3的位串的最大正值,并且minpos是假定数431-1、431-2、431-3的位串的最小值,则maxpos可能等于useed,并且minpos可能等于在maxpos和±∞之间,新位值可以是maxpos*useed,并且在零和minpos之间,新位值可以是这些新位值可以对应于新区制位335。在现有值x=2m和y=2n之间(其中m和n相差多于一),新位值可以由几何平均值给出:其对应于新指数位337。如果新位值位于其旁边的现有x和y值之间,则新位值可以表示算术平均值其对应于新尾数位339。
图4B是使用两个指数位的假定数构造的一个实例。在图4B中,仅存在投影实数的右半部分,但是将理解的是,对应于图4B中示出的其正对应值的负投影实数可以存在于表示关于图4B中示出的曲线的y轴的变换的曲线上。图4B中示出的假定数431-1、431-2、431-3各自仅包含两个异常值:零(0)(当位串的所有位均为零时)和±∞(当位串为一(1)且后面所有位均为零时)。注意,图4中示出的假定数431-1、431-2、431-3的数值精确地为useedk。也就是说,图4中示出的假定数431-1、431-2、431-3的数值精确地为useed的k值(其由区制(例如,以上结合图3描述的区制位335)表示)次幂。在图4B中,假定数431-1的es=2,因此假定数431-2的es=3,因此 并且假定数431-3的es=4,因此
作为向3位假定数431-1添加位以创建图4B的4位假定数431-2的一个说明性实例,useed=256,因此对应于useed为256的位串具有其上追加的另外的区制,并且前者的useed(16)具有其上追加的终止区制位如上所述,在现有值之间,相应的位串具有其上追加的另外的指数位。例如,数值1/16、1/4、1和4将具有其上追加的指数位。也就是说,对应于数值4的最后一个一为指数位,对应于数值1的最后一个零为指数位,等等。本模式可以进一步见于假定数431-3中,所述假定数431-3是根据上面的规则从4位假定数431-2生成的5位假定数。如果向图4B中的假定数431-3添加另一位以生成6位假定数,则尾数位339将追加到1/16和16之间的数值。
以下是对假定数(例如,假定数431)进行解码以获得其数值等同物的一个非限制性实例。在一些实施例中,对应于假定数p的位串是在-2n-1到2n-1的范围内的无符号整数,k是对应于区制位335的整数,并且e是对应于指数位337的无符号整数。如果尾数位339的集合表示为{f1 f2 ... ffs},并且f是由1.f1 f2 ... ffs表示(例如,由一+小数点+尾数位339表示)的值,则p可由下面的公式1给出。
下面是结合下面的表3中示出的假定数位串0000110111011101在以下提供的对假定数位串进行解码的另外一个说明性实例。
符号 | 区制 | 指数 | 尾数 |
0 | 0001 | 101 | 11011101 |
表3
在表3中,将假定数位串0000110111011101分解成其组成型位集合(例如,符号位333、区制位335、指数位337和尾数位339)。由于表3中示出的假定数位串中的es=3(例如,因为有三个指数位),所以useed=256。因为符号位333为零,所以与在表3中示出的假定数位串相对应的数字表达的值为正。区制位335具有与值-3相对应的一串三个连续的零(如以上结合表1所述)。因此,由区制位335贡献的标度因子是256-3(例如,useedk)。指数位337表示五(5)作为无符号整数,并且因此贡献了另外的标度因子2e=25=32。最后,尾数位339(在表3中以11011101给出)表示二百二十一(221)作为无符号整数,因此上面作为f给出的尾数位339为使用这些值和公式1,与表3中给出的假定数位串相对应的数值为
图5是根据本公开的多个实施例的包含加速电路系统520的设备500形式的功能框图。加速电路系统520可以包含逻辑电路系统522和存储器资源524,其可以类似于本文图1和2中示出的逻辑电路系统122/222和存储器资源124/224。逻辑电路系统522和/或存储器资源524可以单独地被视为是“设备”。
加速电路系统520可以被配置成从主机(例如,本文图1和2中示出的主机102/202)和/或控制器(例如,本文图2中示出的控制器210)接收命令(例如,启动命令),以启动对存储器资源524中存储的数据的一或多个操作(例如,在各种格式之间转换位串的操作、算术操作、逻辑操作、逐位操作、向量操作等)的执行。一旦启动命令已经由加速电路系统520接收,则加速电路系统可以在没有来自主机和/或控制器的介入命令的情况下执行上述操作。例如,加速电路系统520可以包含足够的处理资源和/或指令,以在没有从加速电路系统520外部的电路系统接收另外的命令的情况下对存储器资源524中存储的位串执行操作。
逻辑电路系统522可以是算术逻辑单元(ALU)、状态机、定序器、控制器、指令集架构或其它类型的控制电路系统。如上所述,ALU可以包含电路系统以对整数二进制数(例如,假定数格式的位串)执行操作(例如,将位串从第一格式(例如,浮点格式)转换为第二格式(例如,通用数格式或假定数格式)的操作,和/或算术操作、逻辑操作、逐位操作等)(例如上述操作)。指令集架构(ISA)可以包含精简指令集计算(RISC)装置。在逻辑电路系统522包含RISC装置的实施例中,RISC装置可以包含可以采用指令集架构(ISA)(例如,RISC-V ISA)的处理资源,但是实施例不限于RISC-V ISA,并且可以使用其它处理装置和/或ISA。
在一些实施例中,逻辑电路系统522可以被配置成执行指令(例如,存储器资源524的INSTR 525部分中存储的指令)以执行以上操作。例如,逻辑电路系统524被提供有足够的处理资源以引起对由加速电路系统520接收的数据(例如,对位串)的此些操作的执行。
一旦由逻辑电路系统522执行了一(或多)个操作,就可以将结果位串存储在存储器资源524和/或存储器阵列(例如,本文图2中示出的存储器阵列230)中。可以对所存储的结果位串进行寻址,以使其可用于操作的执行。例如,位串可以存储在存储器资源524和/或存储器阵列中的特定物理地址处(其可以具有与之相对应的对应逻辑地址),使得可以在执行操作中存取位串。
在一些实施例中,存储器资源524可以是存储器资源(例如,随机存取存储器,例如RAM、SRAM等)。然而,实施例不限于此,并且存储器资源524可以包含各种寄存器、高速缓存、缓冲器和/或存储器阵列(例如,1T1C、2T2C、3T等DRAM阵列)。存储器资源524可以被配置成例如从主机(例如,图1和2中示出的主机102/202)和/或存储器阵列(例如,本文图1和2中示出的存储器阵列130/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处理。由逻辑电路系统522处理一(或多)个位串可以包含将一(或多)个位串从第一格式转换为第二格式,对转换后的一(或多)个位串执行算术操作和/或逻辑操作,和/或将已经操作的一(或多)个位串从第二格式转换为第一格式。
在一个非限制性神经网络训练应用中,加速电路系统520可以将浮点位串转换为es=0的8位假定数。与利用半精度16位浮点位串进行神经网络训练的一些方法相反,es=0的8位假定数位串可以比半精度16位浮点位串快二到四倍地提供相当的神经网络训练结果。
在训练神经网络中使用的常见函数是S型函数f(x)(例如,当x→-∞时渐近逼近零而当x→∞时渐近逼近1的函数)。可以在神经网络训练应用中使用的S型函数的一个实例是这可能需要多于一百个时钟周期以使用半精度16位浮点位串进行计算。然后,使用es=0的8位假定数,可以由加速电路系统520通过将表示x的假定数的第一位翻转并向右移两位来评估相同的函数——与使用半精度16位浮点位串来评估相同的函数相比,操作花费的时钟信号可以减少至少一个数量级。
在本实例中,通过操作加速电路系统520以将浮点位串转换为es=0的8位假定数位串并且随后操作加速电路系统520以对8位假定数位串执行评估示范性S型函数的操作,处理时间、资源消耗和/或存储空间可以有所减少(与不包含被配置成执行此些转换和/或随后操作的加速电路系统520的方法相比)。这种处理时间、资源消耗和/或存储空间的减少可以通过减少用于执行此些操作的时钟信号的数量(这可以减少由计算装置消耗的电力量和/或执行此些操作的时间量)以及通过释放处理和/或存储器资源以用于其它任务和功能来改善加速电路系统520在其中操作的计算装置的功能。
图6是表示根据本公开的多个实施例的用于算术逻辑电路系统的示范性方法650的流程图。在框652,方法650可以包含:由耦合到逻辑电路系统的存储器资源接收包括具有第一格式的位串的数据,所述第一格式支持第一精度水平的算术操作。存储器资源可以分别类似于图1和2中示出的存储器资源124/224,并且逻辑电路系统可以分别类似于图1和2中示出的逻辑电路系统122/222。
在框654,方法650可以包含:由逻辑电路系统执行转换操作,以将具有第一格式的数据转换为第二格式,所述第二格式支持不同于第一精度水平的第二精度水平的算术操作。在一些实施例中,第一格式或第二格式中的至少一种包含尾数、基数和指数,并且其中第一格式或第二格式中的另一种包含尾数、区制、符号和指数。例如,第一格式和第二格式中的至少一种可以是浮点格式,并且第一格式或第二格式中的另一种可以是通用数格式,例如假定数格式。如上所述,第一格式可以是浮点格式,并且第二格式可以是假定数格式。
在一些实施例中,方法650可以包含:由逻辑电路系统执行使用第二格式的数据的操作。所述操作可以是算术操作和/或逻辑操作,如上面更详细地描述。在一些实施例中,所述操作可以是用作训练神经网络的一部分的操作。例如,所述操作可以是卷积操作、S型函数操作等。
方法650可以进一步包含:将操作的结果写入存储器资源。如以上结合图2所述,在替代方案中,操作的结果可以存储在耦合到逻辑电路系统和/或存储器资源的存储器阵列(例如,本文图1和2中示出的存储器阵列130/230)中。在一些实施例中,方法650可以进一步包含:使用逻辑电路系统来执行第二转换操作,以将操作的结果转换回第一格式。方法650可以进一步包含:将转换后的操作结果转移到耦合到逻辑电路系统和存储器资源的主机(例如,本文图1和2中示出的主机102/202)。
在一些实施例中,方法650可以包含:由逻辑电路系统在没有来自主机的介入命令的情况下执行转换操作、使用具有第二格式的多个位的操作和/或随后的转换操作以将操作的结果转换回第一格式。也就是说,如结合本文图1、2和5所描述,逻辑电路系统可以足够健壮以在不拖累逻辑电路系统外部的电路系统(例如主机或其它电路系统)的情况下(例如,在不从其接收介入命令的情况下)执行转换操作、使用具有第二格式的位串的操作和/或随后的转换操作以将操作的结果转换回第一格式。
尽管本文已经示出并描述了具体实施例,但是本领域的普通技术人员将理解,被计算成实现相同结果的布置可以代替示出的具体实施例。本公开旨在覆盖本公开的一或多个实施例的改编或变型。应当理解,以上描述是以说明性方式进行的,而不是限制性的。通过回顾以上描述,以上实施例的组合以及本文中未具体描述的其它实施例对于本领域技术人员将是显而易见的。本公开的一或多个实施例的范围包含使用上述结构和工艺的其它应用。因此,本公开的一或多个实施例的范围应参考所附权利要求以及此些权利要求的等同物的全部范围来确定。
在前面的具体实施方式中,出于简化本公开的目的,在单个实施例中将一些特征分组在一起。本公开的方法不应被解释为反映以下意图:本公开的公开实施例必须使用比每项权利要求中明确记载的特征更多的特征。相反,如以下权利要求所反映,本发明主题在于单个公开实施例的非全部特征。因此,以下权利要求由此并入具体实施方式中,其中每项权利要求独立地作为单独的实施例。
Claims (21)
1.一种设备,其包括:
存储器资源(124,524),其被配置成接收包括具有第一格式的位串的数据,所述第一格式提供第一精度水平;和
逻辑电路系统(122,522),其耦合到所述存储器资源(124,524),其中所述逻辑电路系统(122,522)被配置成:
响应于启动命令的接收,将所述位串转换为第二格式,所述第二格式提供不同于所述第一精度水平的第二精度水平;并且
将具有所述第二格式的所述位串写入存储器资源(124,524)。
2.根据权利要求1所述的设备,其中所述逻辑电路系统(122,522)进一步被配置成使用具有所述第二格式的所述位串来引起操作的执行。
3.根据权利要求2所述的设备,其中所述逻辑电路系统(122,522)被配置成响应于确定完成使用所述位串的所述操作而将所述位串转换为所述第一格式。
4.根据权利要求2所述的设备,其中所述逻辑电路系统(122,522)进一步被配置成执行算术操作和逻辑操作中的至少一种作为所述操作的执行的一部分。
5.根据权利要求1所述的设备,其中所述第一格式包括浮点格式,并且所述第二格式包括通用数Unum格式。
6.根据权利要求1所述的设备,其中所述第一格式包括IEEE 754格式,并且所述第二格式包括III型Unum格式或假定数(posit)格式。
7.根据权利要求1所述的设备,其中所述第一格式或所述第二格式中的一种包含尾数、基数和指数部分,并且其中所述第一格式或所述第二格式中的另一种包含尾数(339)、符号(333)、区制(335)和指数部分(337)。
8.根据权利要求1所述的设备,其中所述逻辑电路系统(122,522)包含算术逻辑单元、现场可编程门阵列、精简指令集计算装置或其组合。
9.根据权利要求1所述的设备,其中所述存储器资源(124,524)和所述逻辑电路系统(122,522)包含在存储器装置(104,204)中,并且其中所述存储器装置(104,204)耦合到主机(102,202)并且被配置成:
从所述主机(102,202)接收所述第一格式的所述数据;
在将所述数据从所述第一格式转换为所述第二格式之后,使用具有所述第二格式的所述位串来执行操作;
响应于确定完成使用具有所述第二格式的所述位串的所述操作,将表示所述操作的执行的结果位串转换为所述第一格式;并且
将具有所述第一格式的所述结果位串转移到所述主机(102,202)。
10.根据权利要求8所述的设备,其中所述逻辑电路系统(122,522)被配置成在不从所述主机(102,202)接收介入命令的情况下接收,执行所述操作,转换所述结果位串并转移所述转换后的结果位串。
11.一种方法,其包括:
由耦合到逻辑电路系统(122,522)的存储器资源(124,524)接收包括具有第一格式的多个位的数据,所述第一格式支持第一精度水平的算术操作;和
由所述逻辑电路系统(122,522)执行转换操作以将具有所述第一格式的所述多个位转换为具有第二格式的多个位,所述第二格式支持不同于所述第一精度水平的第二精度水平的算术操作,其中所述第一格式或所述第二格式中的至少一种包含尾数、基数和指数,并且其中所述第一格式或所述第二格式中的另一种包含尾数(339)、区制(335)、符号(333)和指数(337)。
12.根据权利要求11所述的方法,其进一步包括由所述逻辑电路系统(122,522)使用具有所述第二格式的所述多个位来执行操作。
13.根据权利要求12所述的方法,其中使用具有所述第二格式的所述多个位来执行所述操作进一步包括执行卷积操作、S型函数操作或两者。
14.根据权利要求12所述的方法,其进一步包括:
将所述操作的结果写入所述存储器资源(124,524);和
由所述逻辑电路系统(122,522)执行第二转换操作以将所述操作的所述结果转换为所述第一格式。
15.根据权利要求11所述的方法,其进一步包括在不从耦合到所述存储器资源(124,524)的电路系统和所述逻辑电路系统(122,522)接收介入命令的情况下执行所述转换操作。
16.一种系统,其包括:
存储器装置(104,204),其包括耦合到存储器资源(124,524)的逻辑电路系统(122,522);
控制器(210),其耦合到所述逻辑电路系统(122,522)和所述存储器资源(124,524);和
主机(102,202),其耦合到存储器装置(104,204),其中所述存储器装置(104,204)被配置成从所述主机(102,202)接收具有第一格式的多个位,所述第一格式支持第一精度水平的算术操作,并且
其中所述控制器(210)被配置成:
将具有所述第一格式的所述多个位写入所述存储器资源(124,524);并且
使所述逻辑电路系统(122,522)执行转换操作以将具有所述第一格式的所述多个位转换为具有第二格式的多个位,所述第二格式支持不同于所述第一精度水平的第二精度水平的算术操作。
17.根据权利要求16所述的系统,其中所述控制器(210)被配置成使所述逻辑电路系统(122,522)在不拖累所述主机(102,202)的情况下执行所述转换操作。
18.根据权利要求16所述的系统,其中所述第一格式或所述第二格式中的一种包含三组位,并且其中所述第一格式或所述第二格式中的另一种包含四组位。
19.根据权利要求16所述的系统,其中所述第一格式包括IEEE 754格式,并且所述第二格式包括III型Unum格式或假定数格式。
20.根据权利要求16所述的系统,其中所述逻辑电路系统(122,522)包含算术逻辑单元、现场可编程门阵列、精简指令集计算装置或其组合。
21.根据权利要求16所述的系统,其中所述控制器进一步被配置成使所述逻辑电路系统(122,522)使用具有所述第二格式的所述多个位来执行算术操作或逻辑操作或两者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/286,992 | 2019-02-27 | ||
US16/286,992 US11137982B2 (en) | 2019-02-27 | 2019-02-27 | Acceleration circuitry |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111625183A true CN111625183A (zh) | 2020-09-04 |
Family
ID=72142943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010120872.7A Withdrawn CN111625183A (zh) | 2019-02-27 | 2020-02-26 | 涉及加速电路系统的系统、设备和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11137982B2 (zh) |
CN (1) | CN111625183A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8517508B2 (en) | 2009-07-02 | 2013-08-27 | Fujifilm Dimatix, Inc. | Positioning jetting assemblies |
US11429771B2 (en) * | 2020-01-31 | 2022-08-30 | Fotonation Limited | Hardware-implemented argmax layer |
KR20220030106A (ko) * | 2020-09-02 | 2022-03-10 | 삼성전자주식회사 | 저장 장치, 저장 장치의 동작 방법 및 이를 포함한 전자 장치 |
DE102020216072A1 (de) * | 2020-12-16 | 2022-06-23 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Bearbeiten von Bitfolgen |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025044A (zh) * | 2011-12-29 | 2014-09-03 | 国际商业机器公司 | 从区位格式转换为十进制浮点格式 |
US20180121789A1 (en) * | 2016-11-03 | 2018-05-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data processing method and apparatus |
US20180150282A1 (en) * | 2016-11-30 | 2018-05-31 | Via Alliance Semiconductor Co., Ltd. | Methods for calculating floating-point operands and apparatuses using the same |
CN108762721A (zh) * | 2017-03-24 | 2018-11-06 | 畅想科技有限公司 | 浮点到定点转换 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4758972A (en) | 1986-06-02 | 1988-07-19 | Raytheon Company | Precision rounding in a floating point arithmetic unit |
US7865541B1 (en) | 2007-01-22 | 2011-01-04 | Altera Corporation | Configuring floating point operations in a programmable logic device |
US8627050B2 (en) * | 2007-10-08 | 2014-01-07 | International Business Machines Corporation | Executing perform floating point operation instructions |
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 |
JP5710726B2 (ja) * | 2013-10-09 | 2015-04-30 | ファナック株式会社 | 機械を制御するための浮動小数点演算命令を含む制御プログラムを実行する制御装置 |
US9747073B2 (en) * | 2014-03-06 | 2017-08-29 | Oracle International Corporation | Floating point unit with support for variable length numbers |
US20160092163A1 (en) * | 2014-09-30 | 2016-03-31 | International Business Machines Corporation | Machine instructions for converting from decimal floating point format to packed decimal format |
US10833700B2 (en) * | 2019-03-13 | 2020-11-10 | Micron Technology, Inc | Bit string conversion invoking bit strings having a particular data pattern |
US10778245B1 (en) * | 2019-08-20 | 2020-09-15 | Micron Technology, Inc. | Bit string conversion |
-
2019
- 2019-02-27 US US16/286,992 patent/US11137982B2/en active Active
-
2020
- 2020-02-26 CN CN202010120872.7A patent/CN111625183A/zh not_active Withdrawn
-
2021
- 2021-10-04 US US17/493,659 patent/US11714605B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025044A (zh) * | 2011-12-29 | 2014-09-03 | 国际商业机器公司 | 从区位格式转换为十进制浮点格式 |
US20180121789A1 (en) * | 2016-11-03 | 2018-05-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data processing method and apparatus |
US20180150282A1 (en) * | 2016-11-30 | 2018-05-31 | Via Alliance Semiconductor Co., Ltd. | Methods for calculating floating-point operands and apparatuses using the same |
CN108762721A (zh) * | 2017-03-24 | 2018-11-06 | 畅想科技有限公司 | 浮点到定点转换 |
Also Published As
Publication number | Publication date |
---|---|
US20220027129A1 (en) | 2022-01-27 |
US11137982B2 (en) | 2021-10-05 |
US20200272416A1 (en) | 2020-08-27 |
US11714605B2 (en) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111724832B (zh) | 用于存储器阵列数据结构正数运算的设备、系统及方法 | |
CN111625183A (zh) | 涉及加速电路系统的系统、设备和方法 | |
CN112420092B (zh) | 位串转换 | |
US11496149B2 (en) | Bit string conversion invoking bit strings having a particular data pattern | |
CN113965205A (zh) | 位串压缩 | |
CN113805974A (zh) | 基于应用程序的数据类型选择 | |
CN113906386B (zh) | 使用计算片块的位串运算 | |
CN115668224A (zh) | 使用posit的神经形态运算 | |
CN113918117B (zh) | 动态精确度位串累加 | |
CN113961170B (zh) | 存储器中的算术操作 | |
CN113553278A (zh) | 用于posit运算的加速电路系统 | |
CN113454916B (zh) | 基于主机的位串转换 | |
CN115398392A (zh) | 算术逻辑单元 | |
CN113924622B (zh) | 存储器阵列外围中的位串累加 | |
CN113641602B (zh) | 用于posit运算的加速电路系统 | |
CN113508363B (zh) | 多用户网络中的算术和逻辑运算 | |
CN111694762A (zh) | 用于位串转换的设备和方法 | |
CN115398413A (zh) | 位串累加 | |
CN113495716A (zh) | 假定张量处理 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200904 |