CN1059413A - 执行算术,逻辑与有关运算的方法及数值算术单元 - Google Patents

执行算术,逻辑与有关运算的方法及数值算术单元 Download PDF

Info

Publication number
CN1059413A
CN1059413A CN91105272A CN91105272A CN1059413A CN 1059413 A CN1059413 A CN 1059413A CN 91105272 A CN91105272 A CN 91105272A CN 91105272 A CN91105272 A CN 91105272A CN 1059413 A CN1059413 A CN 1059413A
Authority
CN
China
Prior art keywords
value
word
input
floating point
output
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.)
Pending
Application number
CN91105272A
Other languages
English (en)
Inventor
卡尔斯特·拉斯·冈纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Carlstedt Elektronik AB
Original Assignee
Carlstedt Elektronik AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Carlstedt Elektronik AB filed Critical Carlstedt Elektronik AB
Publication of CN1059413A publication Critical patent/CN1059413A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/311Functional or applicative languages; Rewrite languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Nonlinear Science (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Static Random-Access Memory (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Saccharide Compounds (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Advance Control (AREA)
  • Vehicle Body Suspensions (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
  • Steering Control In Accordance With Driving Conditions (AREA)
  • Paper (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Monitoring And Testing Of Nuclear Reactors (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Semiconductor Memories (AREA)

Abstract

本发明涉及执行数值元素的算术、逻辑及相关运 算的一种方法及设备。
a)提供包括要处理的数值以及指令信息的一张 输入表。
b)使用该指令信息直接控制与执行输入表上的 数值元素的一个运算。
c)各数值元素提供具有预定比特长度的一个 字。字的最大的数量等于输入表中所能提供的元素 的最大数量。
d)以改写输入表中的元素来执行一次计算。
e)作为一张输出表提交结果。

Description

本发明涉及一种对数值元素执行算术,逻辑与有关运算的方法以及在一台处理器中的一个数值算术单元(ALU)。
一台计算机中的算术逻辑单元是在其中对信息元素进行算术,逻辑,与有关运算的部件。这些操作是根据提交给该ALU的算术指令规定的。在多数传统的ALU与累加器与/或缓冲寄存器或其他种类的寄存器合作用来暂存数值。
本发明的主要目的是提供一种能以一种简易的方法化简数值表达式的方法或ALU。
本发明的另一目的是提供一种在其运算中不需要与一个暂时存储器合作便能进行工作的ALU。
本发明的又一目的是提供一种使用为其运算而提交给它的信息中的算术指令的ALU。
本发明的又另一目的是提供一种能够处理具有可控制地可变划分数值部分与幂指数部分的作为运算数的浮点数值的ALU。
本发明的又另一目的是提供一种能够处理具有浮点数值作为运算数及一个给现划分数值部分与同指数部分的信息的码段的总线上的比特(bit)信息的ALU。
本发明的又国一目的是提供一种能够处理为其在总线上的运算数给出的算术指令的ALU,这些指令是在可变码长的码段中提供的。
本发明的又一个目的是提供一种具有作为浮点数解释与作为整数解释之间进行改变的ALU。码的密度也是所需要的。
为了至少实现上述主要目的,本发明一般性地构思了一种在数值元素上执行算术,逻辑与有关运算的方法,它包括下述步骤:
a)提供一张包括要处理的数值元素与指令信息的输入表,
b)使用指令信息直接控制与执行输入表上的数值元素的一个运算,
c)每一数值元素提供一个具有予定比特长度的字,最大字数等于输入表所能够提供的最大元素数,
d)处理设备以改写输入表中的元素执行一个计算,
e)从处理设备提交结果输出表。
输入表与输出表中的元素的最大数目最好是四个。这样,便可用一个指令字表示来提供一个表元素,用两个数值表示中的各个来提供两个表元素,而用一个中间计算结果来提供另一个表元素,该中间计算结果是在重复循环改写输入元素若干次所作的计算中得到的。
该表最好包含一个函数应用,其中其元素之一是一个指令码而其余的则为该指令的变元。一条指令码到输入表中来执行的直到达到一个最后的结果,在每一次改写时,如果对实际计算适合,在表的改写中可包括一个改变了的指令码字,后面跟着适当的值字。
在实际处理以前,将数值字以一种编码的形式提供是适当的。最好,表示数值字的字是用一种将该数值设定为一种稠密表示的编码来提供,即一个值的每一个编码表示只对应于一个解释后的值。可以为表示一个整数值的二进制字规定一种第一编码。可以为表示一个浮点值的二进制字规定一种第二编码。这些编码最好是这样的,经过编码浮点值后的表示是以与整型值表示相同的次序提供的。在这一方法中,两种表示中任何一种都无须是二进制数字形式的。这样,便可提供一种硬件按照给定的规则只须隐含地在变形后的位模式上进行计算即可,即无须了解所作出的解释。
一种简易地实现具有可变幂指数宽度的浮点值表示方法是使该二进制编码的浮点值表示包含一个代码段,一个幂指数段,及一个数值段,代码段中有一个关于幂指数段与数值段之间的分界位置的指示,使得幂指数段与数值段能具有可变的长度。该稠客表示中可规定包含一个虚拟的“1”,即在表示中并不实际地提供一个“1”,它位于该字中浮点值表示的数值部分的段的前面。
下面是一张在本说明书中使用的词及它们的保留含义的表:闭包(closure)定义一个过程的一个分层结构的实体。所有闭包都有唯一地定义该闭包的一个根。一台归约机器的归约工作是在闭包上进行的。机器的整体状态是由归约变换的。
目标(goal)要执行(即归约)的一个闭包。
半字节(group)半字节由四个二进制位组成。每一个字由若干半字节组成。
片(slice)一个或若干个字。一片包含诸如两个字的最低位组成的二个比特(bit)。
对准(align)保证要使用的比特在一个字中是正确地定位的。
冗余(redundancy)为了检测错误的目的而附加的数据或比特。
规范码(normalizcd  code)一种用下述方法表示的浮点值,对于正值,其数值部分的最高位为一个虚拟的“1”,而对于负值,则为一个虚拟的“0”。
二进制表示(binary  represenfation)在任何数字系统或编码中表示一个数的“0”与/或“1”的一个组合。
二进制数字形式(binary  digit  form)基数为2的数字系统。
H码(H-code)根据本发明的ALU中所使用的一种特定码,用于表示数字。也称作H值。
整型H值用于表示整型值的一种特定的码。
浮点H值用于表示浮点值的一种特定的码。
稠密表示每一个二进制组合(位模式)对应于一个唯一的数值。
为了对本发明的更全面了解以及为了其进一步的目的与优点,现在对结合附图所作的下述说明进行参照,其中:
图1A为根据本发明的ALU的一个示意图;
图1B为图1A中所示的ALU的时钟信号及某些基本控制信号的示图;
图2为根据本发明的ALU的一个实施例的示意性框图;
图3为算术表示中的比特段划分的示意表示;
图4A为整数的代码的图形表示;
图4B为浮点值的代码的图形表示;
图4C为用于说明提供在一条7比特总线上的一个算术表示的建立的一个示意表示;
图5A-5B示出根据图4提供的一张数据表;
图6为根据本发明的ALU的一个实施例的电路图;
图7A至C示出在不同定时序列中根据本发明的数值ALU的一个输入/输出缓冲器的一个实施例;
图8示出图6中所示的电路中所包含的一个运算数单元的输出组合连同为提供不同的输出组合而用于控制包含在该运算数单元中的一个元件的助记码的一个示例图;
图9作为一个例子示出图6中所示的电路中所包含的一个精度译码器在输入总线之一上的一个字的输出;
图10示出了作为例子的一个二进制数值部分比特组合的不同解释的一个例子;
图11与12示出支持两个浮点数相加的一个例子的说明的示图;
图13为图6中所示的电路中所包含的一个精度译码器的实施例的电路图;
图14A示出了图4中所示的电路中的整字加法器的一个实施例的框图;
图14B示出了图14A中的加法器的一个精度片的框图;
图14C图14B中的精度片的一个比特片的框图;
图15示出了图6中所示电路中的一个加1器中一个精度片的一个实施例,以及
图16示出了图6中所示的电路中的运算数电路中的选择器所包含的一个基本选择器比特片的一个实施例的电路图。
图1A
图1A中示意性地示出的数值算术逻辑单元ALU包括一个控制驱动单元1a与在特定的输入/输出V0,V1,V2,及V3上执行算术运算的一个算术单元阵列2a,各输入/输出是具有多条(M条)传输线的传输一个M比特的值的一条总线,M例如为32。该ALU最好是一台中央处理单元(CPU)的一部分并且是由一个控制单元CU从外部控制的。该ALU与该外部控制单元CU以下术信号进行通信:一个时钟信号输入CALU,一个占用输出ABUSY,一个控制输入ACNTL,一个状态输出ASTATE,以及一个译码后的指令输出A1NS
总线输入/输出V0,V1,V2,V3可以连接到结构算术单元(未示出,以后称作核心处理器)中的特定寄存器上,称作目标寄存器或CT寄存器,在其中处理归约类指令。然而,总线输入/输出信号也能由与一台计算设备(最好是归约类型的)协作的其它类型的配置来提供,除了归约类型的计算设备以外其它类型的计算设备也是十分可能的。同样,虽然在图1A中所示选择了4条输入/输出总线V0,V1,V2,V3,但总线的数目可任意选择。然而,随着输入/输出总线V0,V1,V2,V3的数目的增加,ALU的复杂性可观地增加。
输入/输出总线V0,V1,V2,V3传输一张字表。一个字是一个数值或一条指令。并不是每次都使用所有总线的。未使用的一条总线上的一个字可以被忽视。输入与/或输出表具有一个最大长度,即包含一个最大数目的字数,例如4,即每条输入/输出总线一个表元素。一个数值是一个字,它是在若干条线上传输的。同样,在一条总线上的一条指令也是一个字。输入/输出V0,V1,V2,V3上的输入表是用于控制与执行一次计算的,即该表包含一条有关所规定的计算的种类以及要计算的值的特性的信息,并且控制驱动器1a在控制阵列2a中的不同部件时导出这一信息。一个计算是以改写输入表中的内容的一个经特或半字节的方式提供的,即对一个字中分另具有相同位置的比特或对一个字中以“片方式”提供的由比特组成的半字节,并作为一张输出表提供结果。应注意的是,在输出上提交最终的输出表以前,有可能通过内部电路进行若干次值的重复循环。在重复循环中在输出上出现一张瞬时输出表但它只是作为一张瞬时输入表插入的。
该表可以包括一个函数应用连同要处理的值或者其它类型的表,诸如只包括至少一个整型值或浮点值的一张表。当它包括一个函数应用时,在输入/输出V0上提供的第一表元素包含该指令码,即要求进行的处理类型的信息,而其它表元素则为该指令的变元,这一点将在下面更详细地说明。
一条指令是以在一步或若干步中改写该指令而执行的,使之最终得到其结果。在ALU内部使用了微指令与状态信号。这些是ALU内部的独立的控制驱动器1a用来控制阵列2a的。当一次改写直接引导出结果时,该值便被放入输出表中。当所进行的是逐步改写时,在改写该表时保持同一指令码,或者改写成一个新的或稍加改变的指令码,而在大多数情况下在该指令码的后面跟随着一个或多个值。需要指出的是,在若干周期中进行改写操作的最佳方式是在整个操作中保持指令码原封不动,因为在这种情况下,控制单元将较为简单。然而,在一个多周戎操作开始时具有一种指令码而在其余周期中稍为改变这一指令码之类的情况也是方便的。
返回至图1A,时钟信号CALU是用于向算术逻辑单元ALU提供时钟脉冲的,而ALU在准备就绪接受时钟脉冲时在输出ABUSY上给定一个就绪信号。
总线输入/输出V0,V1,V2,V3是连接到一个目标寄存器中的主寄存器单元上的,该输入/输出具有指令或数值内容。数值内容最好以编码的格式提供给ALU,这种格式取决于该数值内容表示一个浮点值或一个整数而有所不同。每一个目标寄存器单元包含和数值的每一个输入/输出同样多的比特(即,在所示的全子中为32),但还有若干比特,例如6,用于设置标记位。这些标记位并未包含在认为是本发明的最佳方式的实施例中在总线输入/输出上所提供的信息中。反之,标记位信息是馈给外部控制单元CL的,而单元CU本身又控制ALU控制单元1a。
然而,将标记位包括在输入/输出上所提供的信息中使得该标记位信息直接馈送给控制驱动单元或ALU控制也属于本发明的范围之内。当该ALU是用作一个与传统型式的处理器协作的单元时,这也是驱动根据本发明的ALU的最佳方式。
控制输入ACNTL是用于控制ALU的数值运算的。这一运算可使用若干时钟周期。
在每次运算以后,一个输出ASTATE返回到控制单元CU。在输出AINS上的指令码是总线V0所连接的目标核心单元中的指令码的压缩。
图1B
参见图1B,控制单元CU为处理器提供的基本时钟为C1-0,例如具有10ns(毫微秒)的周期。一个ALU运算是在一个或多个这样的时钟周期中执行的。连接到ALU的核心处理器可能以比ALU的周期长(例如两倍)的周期来控制,即如果C10的周期为10ns则以具有20ns周期的时仲信号C2然而,相反地,它也可能以一个较短的周期来进行控制。用于具有较短周期有设备(即所示实施例中的ALU,或者在另一情况中的核心处理器)的基本控制信号CALU因此而在每条指令结束时延长,使之能与具有较长周期的时钟信号C20同步。只要ALU需要更多的C10型时钟周期来执行一条指令,它便返回一个高电平信号ABUSY。上述延长是在信号ABUSY变为低电平后提供的,这在图1B中看得很清楚。
图2中所示的本发明的实施例包括一个ALU控制电路10,作为一个对其输入上的信号进行变换与组合使之适用于电路提供输出表元素的中央部件。ALU控制电路10包含一种布尔门阵列。图2对应于图1A的右侧部分。
每一条输入/输出总线V0,V1,V2,V3都是具有诸如32根线的多线总线,它们是连接到一个输入缓冲器电路11的输入上的。缓冲器电路11是由其时钟输入上的时钟信号定时来将其输入信号传输到内部输入总线V0,V1,V2,V3的。一个输出缓冲器16由在其时钟输入上的一个反相时钟信号定时来将在输出总线V000T,V100T,V200T,V300T上的信息传输到输入/输出总线V0,V1,V2,V3的。虽然在图2中所示的缓冲器配置11与16是包括两个独立的肝冲器的,但缓冲器配置11与16最好是一个组合的输入/输出缓冲器电路。
若干计算电路12A至12N(N为电路的数目)连到内部输入总线V0,V1,V2,V3中的至少两条上,每一计算电路对它们所连接的内部输入总线V0,V1,V2,V3上的信息进行单独的一种简单计算,例如在不同群集中的加法或减法。计算电路12A至12N是十分省时的,因为在根据本发明的ALU作为其一部分的应用中,它们可以是这样选定的,使得每一个可能要求进行的简单计算可以随时立即提供。然后,ALU控制电路10只经从这些用于特定类型运算的计算电路中选择适当的一个或多个直接取其输出用于进一步的处理目的即可。每一个计算电路的尺寸都是小的并且不是特别消耗电能的。从而,即使在某一时刻只使用它们中的一个的输出,也不在乎若干电路进行并行计算。,计算电路的输出馈送到运算数单元OP1与OP2,这将在下面说明。
同样,来自单元12A至12N的信号在某些情况下也可用于控制。每一个计算电路12A至12N有一第二输出,在其上提供的一个进位信号用指示溢出。这一第二输出馈送给ALU控制电路10的一个单独的输入。单元12A至12N是受ALU控制电路10以及ALU中给出在其输入上所表示的字的类型信息的其它电路控制的,即例如是否该字表示一个数,如果是一个数,则该数是一个整数还是一个浮点数,并且,如果它是一个浮点值,则给出有关这一数的性质的信息,下面将进一步说明。
若干监视电路13A至13M(M为电路的数目)各自连接到输入总线V0i,V1i,V2i,V3i中至少单独的一个上。这些监视电路能够,例如,监视总线的信息的意义,或者比较总线的信息。某些监视电路可以被提供与电路12A至12N相同的控制信息,如仅为电路13A示出的那样。监视电路13A至13M的输出馈送给ALU控制电路10的输入。
三至四个性质供给电路14A至14D连接到至少总线V1i,V2i与V3i并且从一部分总线供给的关于总线上其他信息的性质的信息中取得信息。连接到总线V3i的性质供给电路14D在乘法情况中取得至少在总线V3i上的最低二进制位。这一点下面将进一步说明。一个性质供给电路14A可同时连接到总线V0i,挡在一条外部控制总线EXT至ALU控制驱动电路上的一个信息指示在总线V0i上的信息表示一个数时,它得到某些预定的信息。
例如,如果在一条总线上的信息是一个浮点值,连接到该总线的性质供给电路给出有关该值的符号,幂指数的符号以及某些数值比特(例如最高位)的信息。应当指出的是,当提供了一个性质供给电路14D时,从V3i供给而馈送到ALU控制电路10的一个电路输入的性质类型没有必要和来自V0i与V2i的一样,它可以例如,较为简单。同样的推论也适用于用于总线V0i的性质供给电路14A。
ALU控制电路10向外部控制单元CU提供一个输出A-STATE(见图1A),主要是来自单元12A至12N与13A至13M的输入。
为了向ALU控制驱动电路10提供了一个指令电路15来监视总线V0i上的全部信息。
如图2所示,总线V0i上的信息可以直接馈送给连接到输出缓冲器16上的一条输出总线V000T,如上所述,最好是以一个结合在一起的反相地由时钟信号定时的输入/输出缓冲器11,16的总线连接方式。使这一总线具有指令表元素并保持这一指令表元素不变是方便的。来自ALU的其它输出总线V100T,V200T,V300T也连接到缓冲器16,并且所有输出总线上的信息是同时由时钟脉冲输出到输入/输出总线V0,V1,V2,V3上的上的。ALU控制电路10向ALU中的其它电路提供控制信号C1,C2,C3,C5
然而,它可依赖于一个多周期运算中的实际周期作出某些改变并将改变后的指令表元素馈送给总线V000T(未示出)。
具有基本上相同类型的两个运算数单元OP1与OP2分别提供输出V100T与V200T。如图2所示的实施例中那样具有两个运算数单元虽非必要但却是实用的。从只有一个到若干个不同数目的运算数单元可用于根据本发明有不同应用中,然而,为了进行一次加法或一次减法只需要一个运算数单元,因为这种运算是在电路12A至12N之一上进行并且是在该运算数单元的输入之一上提供并且可以在ALU控制电路10控制的运算数单元的输出上提供的。为了同时进行若干不同种类的加法与减法运算,可使用若干运算数单元。需要指出的是,每一运算数单元有一条输出总线VOUTi,其中i表示一个任意的数,因此,输入/输出,输入与输出总线的数目取决于ALU中运算数单元的数目。
具有另一类型的一个运算数单元OP3可提供来用于乘法或除法运算方面并将其输出馈送到输出总线V300T上。乘法与除法运算是在若干循环步骤中执行的。运算数单元OP3的输出是V300T。应当指出的是,同样可以有不是一个而是不同数目的运算数单元OP3
关于浮点算术如上所述并将在下面进一步讨论的,至少在一些步骤中,至少在本发明的一个实施例中,幂指数的长度是可以选择的。所以,为每一运算数单元OP1与OP2分别提供了一个精度译码器PD1与PD2。精度译码器向其所隶属的运算数单元提供有关幂指数部分的长度的控制信号。忱可以从二进制字中的一个特定的代码段中得到,如下面将进一步说明的。如上所述,它也可向ALU电路的其它部分提供控制信号。
有关一个值是一个整数或一个浮点值的传送给ALU的信息最好由外部控制单元CU(见图1A)在ALU控制电路10的一个控制输入EXT上提供,但也可从总线V0i至V3i上得到。
从上面可以清楚地看到,令输入总线具有不同的但意义明确的算术运算任务是方便的。所以,或者直接从馈入装置(例如较好的是上述目标寄存器)向输入总线提供具有所述定义的任务的信息,或者ALU本身将输入总线上的信息改变成适用于一个内部周期,然后使用总线V0i上有关其它总线上的信息的信息。总线V0i可一数据段,该段具有关于在输入/输出总线V0,V1,V2,V3上提供的表上的信息的类型的信息。然而,这一信息也可由外部控制单元CU提供。
从上面可知,根据本发明的ALU没有内部存储器。这便导致一个多周期运算的每一个周期的结果只受紧接着的前一个周期的结果的输出的影响,这便是适用于进行处理的输入。
如上所述,根据本发明的ALU所期望的一个目的是在一个浮点表示系统中的幂指数与数值部分之间有一条可变的界限。这样,在第一方面,对于小的数,其数值部分中可能有许多比特,这提供了具有高精度的优点。在另一方面,极大的数可以得到处理。
为了简要地给出对根据本发明的ALU的理解,在这里给出了关于两个整数的乘法的一个例子。进一步将给出关于在计算浮点值时的ALU的运算的例子。
整数乘法例如可以用下述方法提供。在第一周期中,要相乘的两个数被提供,一个在输入总线V2上另一个在总线V3上。总线V0上有信息“0”。第一类型的运算数单元之一,例如OP1,被控制来将V2上的信息直接传送到其输出上。另一个运算数单元OP2被控制来将V2上的信息向左移位一步并将位移后的结果提交在其输出上。在下一个周期中,首先提到的运算数单元OP1被控制来将该信息从其连接的输入之一传送给电路12A至12N之一作出对总线V1i与V2i上的数字的一次加法运算。另一个运算数单元OP2则衩控制来取得V2i上的信息并将它向左移位一步与将它提交在其输出上。
在此后的各周期中,第一个所述运算单元OP1,如果在总线V3i上的信息的最后二进制位为“1”则被控制来传送对总线V1与V2上的信息进行加法运算的电路的输出,否则取总线V1i上的信息。这一给ALU控制电路10的信息是提供在电路14P的输出上的。在运算数单元OP3时输入上提供的总线V3i上的上的数字信息被控制来将其向右移位一步,使得最低二进制位被取走。
至少运算数电路OP1与OP2可具有向ALU控制电路10提供一个指示内部移件已导致一个进位的返回信号(未示出在图2中)的能力。每一周期是在两步中执行,其中第一步是在时钟信号的前半周期中进行而另一步则是在第二半周期中进行的。
图3
如图3中示意地所示,在具有一个数值的一条总线上的各比特模式是因此最好以在比特串的最高位几个比特的一个短的比特段提供的,在这一比特段中具有该值的符号的信息,幂指数的符号的信息,以及一个关于该数值的幂指数与数值部分之间的分界位置(见图3中右方箭头)的代码。需要指出的是,该比特段的代码部分的长度也是可变的,而代码段与幂指数段之间的分界位置的所在也是由该代码段确定的,如图3中左方箭头所示。
下面将讨论三种表示十进制数的方法:
Ⅰ二进制数字格式:基数为2的数值系统。
Ⅱ整型H值:用于表示整数的一种二进制码。
Ⅲ浮点H值:用于表示浮点值的一种二进制码。
根据本发明的ALU另一个所期望的目的是以与同一个数的整数解释相同的次序来提供该数有浮点值。从而具有同一比特模式的浮点值与整数值是完全不同的。
然而,这一目的可以这样来达到,即如果该表示是作为一个浮点值来解释则有一个用于该比特串的第一解释公式,而如果该表示是作为一个整数值来解释则有一个用于该比特串的第二解释公式。从而,两种表示都不必要是二进制位格式的,至少两者之一,最好两者都是以编码格式的。比特模式变换是自动进行的,而机器中的硬件只是隐含地依照给定的规则在变换后的比特模式上进行计算,即无需了解这种解释是如何进行的。
根据本发明的一个较佳实施例,为浮点值提供一种稠密表示作出了努力,即不应当有两种比特模式可以解释为同一个数。名词“稠密表示”表示每一个十进制数对应于一个唯一的二进制组合。
图4A,整数表示
图4A示出了根据本发明的整型值的代码的图形表示,称作整型H值。二进制表示是沿水平轴给出的,而H值则沿垂直轴。最高位比特表示该值的符号,它是正的还是负的。从图4A中可知,当二进制表示为全“0”时,H值为最大的负值,而在其二进制表示的中点具有零值,即,当最高位比特从“0”变到“1”,而当二进制表示为全“1”时为其最大正值。从而,H码中的一个二进制组合的值以与其二进制位格式相同的方式增加。当一个二进制位格式的一个字的二进制组合为“1”时,它也具有其最大值。整型码是一条直线。
图4B,浮点值表示
图4B示出根据本发明的浮点值的代码的一个图形表示,称为浮点H值。二进制表示是沿水平轴给出的,而H值则是沿垂直轴的,这里该轴是画在通过浮点H值改变符号的点上。在这一表示中最高位比特同样表示该值的符号。浮点值表示必须满足通用的要求。对于一定的精度,该值的量级必须是任意变化的。从而极小与极大的值应都能表示。浮点H值的标度是对数的。对数H值可在每一个因子2和直线近似来简化。结果是一种典型的浮点码。如图4B所示,用于表示在-1与+1之间的H值的二进制表示是在二进制表示段的中央给出的并且包含该段的一半。
在整个值域内,一个值的相对精度是恒定的。对数值具有一定的精度与值域。如果量级应为任意大,则必须有可能调整对数的值域。
对数值可再一次或者甚至更多次地作用于对数函数。从而,有可能表示极大的数。然而,在大量级上精度降低,但在低量级上精度得以保持甚至稍为提高。
由于两种表示的两种比特模式以同一方式出现,一个整数大小比较器同样可用于浮点值表示。这意味着可以免去一个特殊的浮点值比较器。这进而意味着,在仅仅一个周期中进行比较运算的整数大小比较器可用于浮点值,这是一个大优点。传统类型的浮点值比较器必须用许多周期来进行运算。
在传统的算术逻辑单元中若干种比特模式可能解释为同一个数,并且要进行一次规范化来选择这些比特模式中的一个。根据本发明,不需要进行规范化,至少在实际计算中是这样。规范化可在一次计算操作的前后进行。由于在浮点值之间具有稠密表示相似性,一次浮点值计算,例如比较,可以在仅仅一个周期中确定。具有稠密表示的一个优点是可获得最大数目的浮点值,即在一个系列的值中没有受排斥的与不可用的值。
为什么在传统的应用中若干个比特模式可能解释为同一个数的原因是为了产生一个值是将该值的幂数部分与数值部分相乘而得出的。例如值1.0可以是211/2,即其幂指数比特模式01与数值部分比特模式100,或者22×1/4,即具有幂数比特模式10与数值部分比特模式010,幂指数比特模式与数值部分比特模式互相跟随。
根据本发明的一个实施例,稠密表示是在正值的数值部分的比特模式前面隐含地(即不实际存在)提供一个“1”,而在负值隐含地提供一个“0”。传统上,数质部分是规定为一个-1与+1之间的一个值。根据本发明,取决于其符号,二进制编码的数值部分是规定为在值域(1.0至2.0)或(-2.0至-1)中的一个值。
整数模式是明确地确定的,而浮点表示必须与整数解释具有相同的连接顺序,这是一种非常困难的限制。
图4C,5A与5B,浮点值表示的进一步信息
对这一问题的一个有利解法示意性地示出出在图4C中。图5A与5B示出了根据图4C所示的原理提供一张字的数据表。图5A与5B中最右边列表示对应于最左边一列中的二进制组合的十进制浮点值。图4C示出了浮点码的一个示意性图形阐述,在垂分界线LIN的左侧示出二进制表示,而在其右侧则示出浮点H值。直线LIN示出为指向较高值的一根轴。对于二进制表示与H值表示两者都是适应的。从线LIN两侧向外延伸示出了表示与H值。最靠近线LIN是图4B中的图中的轴的展示。H值轴在右而二进制表示轴在左。
在轴的表示的外侧第一个段中,右边是sh左边是s,表示最高位比特。对于负值为“0”,对于正值为“1”。
在这外侧的第二段,分别为seh与se表示次最高比特。这是幂指数的符号位。“0”表示负号,“1”表示正号。
第三段至少一个比特具有比次最高位低的位次,如果该二进制段是低的则只有一个比特,如在所示的只有七个比特的情况中,而如果该二进制段是高的则含有多于一个比特,如在下面将要说明的具有32比特的情况中。
在图4C,5A与5B所示的例子中,示出了用于七比特字的编码,而不是在实际中更常用的32比特字。紧靠在图4C中的中线左侧的二进制表示将被解释为具有H值-1024至+768。需要指出的是,H值-1与+1是分别放在值0与极端值-1024与768的中点上的。第一二进制位分别是s与sh,对于表示与H值还是一个负值。
第二个二进制位是幂指数的符号,即绝对值是大于1还是小于1。从而,H值幂指数符号位在-1024与-1之间是正的,在-1与+1之间是负的,然后在+1与+768之间又是正的。从图4C中左侧可明显地看出二进制表示的幂指数符号位在二进制序列的第一个四分之一中是负的,在第二个四分之一中是正的,在第三个中是负的,而在第四个中是正的。seh位可表示为,如果s=1则seh=se,否则seh=1-se。
因此,在二进制表示中表示字符符号的最高位比特变化最慢,表示幂指数符号的次最高位比特具有次最低变化,即字符符号位变化速度的两倍。下一位置上的比特是代码比特C其变化速度是幂指数比特的两倍。在图4C与5A,5B的例子中这一代码只包含一个经特。在其它例子中该代码段可包含多个比特。该代码控制幂指数的长度并且是考虑进前面的符号比特来对待的。
要实现的浮点H值,即浮点记数法以一种更特别的方法提供代码段ch。从图4C中的eh部分可见,eh部分是直接给出幂指数H值的,值eh从一个大的正值下降到0,那里H值是-1,从那里再到一个大的负值,这时H值为0,从那里再到值0,这时H值为+1,再从那里到一个大的正值,这时H值为768。ehabs部分示出了幂指数的绝对H值并且是以两条曲线表示的,它们互相并排在一起,每一条曲线的两端都在一个大的正值上而其中点则置于0上。H值的代码段ch是设计成反映值ehabs的,所以示出为具有以虚线表示的相同的形状,并且示出了如果该代码段只包含一个比特时它将具有的以连续的线表示的形状。因而,当代码ch只包含一比特时,若se=1则ch=c,否则ch=1-c。
到目前为止,对图5A与5B中所提供的表的百列是容易观察的,因为各比特段s,sh,se,seh,c,与ch都只包含一个比特,因而图4中与图5A与5B中的表示之间的对照是显而易见的,图5A与5B中的第一列是一个顺序的从0000000至1111111的表面其在十进制记的数系统中的直接对应物则提供在第二列中。箭头列的右侧示出了表示的变换后的数字以及H值。为了便于与图4C中的展示进行对照,在该表中为表示代码段的每一次转换提供了连续的水平线。在ch右侧的列中包含表示的幂指数值e的十进制表示,这后面是H值的幂指数值eh的十进制表示。后面两列分别示出值e与eh的二进制表示。再后面的两列分别示出表示的数值部分m的十进制与二进制表示。在这后面示出的是H值的数值部分mh的十进制表示。需要指出的是,在图5A中,值sh为“0”,数值部分在-1与-2之间变化,而在图5B中,值sh为“1”,数值部分在+1与+2之间变化,最右边的列中示出了由最左边的列中的二进制组合经过变换后提供的十进制H值。
从图5B的上部可看到,具有“1”作为其最高位比特而随后各位均为“0”的表示表示特殊的浮点值“0”。
从图4C中的二进制数序列可知,在中线在左侧,七个二进制位中的四个最低位比特是留给幂指数与数值部分共用的,因为三个最高位比特是保留给符号比特与代码比特的。从数字到e与m可见,在幂指数符号se为负(即“0”)及代码值c为“1”的最上面部分中,值e包括3个比特,从而值m为一个比特(该列中前面两个“0”可以省略),而数值部分可包含3比特。这是在图4C中以在这一部分中具有少数梯级一个e表示来示出的。在下一部分中,值e只包含一个比特而数值部分3个比特,等等。
如表示部分中所示,在c=0与se=0这一部分中幂指数e有许多梯级,而在c=1与se=1的部分中则只有少数梯级。在e部分左侧的e+bias(e+偏置)部分中,在整个部分的每一个四分之一中在一条线上提供的e值是以连续的线示出的而以在e+bias中以倒转一个部分中每隔一个四分之一来以虚线示出如何构成ehabs值。(eh表示带有幂指数符号的e的值。)
因而,代码比特(一个或多个)是取决于前面的符号件的,因此,可以说事实上代码是包含符号位的,因此是只能有非常有限的长度,即它比取决于只在代码段中所提供的幂指数的长与短。
数值部分的长度取决于幂指数的值,当幂指数长时,数值部分便短,反之亦然。所以,在图4C中并未示出数值部分,而是在图5A与5B中的表的m,m列中清晰可见,其中第一个m示出十进制记数的值而第二个m示出其数字的对应物。如果s=1,则mh=1.0+m,否则mh=-2+m,如上所述。
为了直观,上面的例子是对一个七比特字长描述的。如已提到过的,可以选择相当长的字长,例如32比特。这样,具有可变的代码长度是现实的。同样现实的是,为了使电路系统较为简单,将从幂批数与数值部分的一个分界点上的过渡为比特的半字节的步长,例如4个比特为一个半字节。这样做的优点是不需要像以一个比特一个经特过渡那样多的代码。在下面将说明这样一种精度译码器的一个例子。
图6
图6中示出了图2中的电路的一个详细实施例。输入/输出总线V0,V1,V2,与V3是连接到一个输入/输出缓冲器20上的,该缓冲器20在它的时钟控制输入上所提供的外部时钟信号CLOCK的每一个反相定时周期中分别将输入上的信息传输给内部总线V0i,V1i,V2i,与V3i,并在每时钟周期中将内部输出总线V000T,V100T,V200T,V300T上的输出传输给输入/输出总线V0,V1,V2,V3
图7A,7B与7C
电路20的一个实施例及其定时示出在图7A,7B与7C中。输入/输出缓冲器20本身又包含输入缓冲器,每条输入/输出总线V0,V1,V2,V3一个,以及相同数目的输出缓冲器。为了不出现竞态问题,时钟信号不得重叠。这是以稍为世掉它们的前沿来安排的。
在图7A中所示的时钟信号CLOCK的第一相位中(在左方以一个括号标记的反相的),从一个外部源来的输入通过被控制到一个传输状态的输入缓冲器提供给ALU中的内部的数据通路。该数据通过转换成在输出总线上提供的下一状态的ALU中的内部数据通路传播。输出缓冲器是设置为阻塞状态的。
如图7B所示,在时钟信号CLOCK的时钟周期的相位1中,(在图7B左方以括号标记的)电路20中的输入缓冲器被控制到一个阻塞状态,且ALU中的内部电路作为一个稳定的多路复用器工作来控制这些信号将它们提供在输入/输出总线V0,V1,V2,V3上。电路20中的输出缓冲器是设置在传输状态中的。
图7C中示出了在相位0时的一条多周期指令的状态。在前面的相位1中ALU馈送给输入/输出总线V0,V1,V2,V3的内容在相位0中由于电容效应保持在它们上面,并从而得以通过输入缓冲传输到输入总线V0i,V1i,V2i,V3i,这时输入缓冲器是被控制到传输状态而输出缓冲器则被控制到阻塞状态,并且从那里通过转换成下一状态的ALU中的内部数据通路进行传播。
根据一个较佳应用,只用输入表来控制及执行一次计算,它是以改写输入表中的内容并将结果馈送给输出来进行的。该表可包括一个存储的函数应用或另一类型的表。在一个函数应用中的第一个元素是一条指令码,其余元素为该指令的变元。这一较佳应用取决于提供了依赖于输入数据的一个功能硬件。然而,有关提交在总线V0i,V1i,V2i,V3i上的信息的类型的信息最好是在来自控制电路CU的一个输入EXT上给定的。
控制单元CU最好有关于输入总线V0i,V1i,V2i,V3i上的字是不是表示指令和/或数字的信息,以及这些数字是浮点值还是整数的信息,并通过叫线EXT将这一信息交给ALU控制电路27。
然而,事实上可能正在进行有用的应用而其中的功能性表现并不需要,那时给予ALU控制驱动电路的外部信息,例如来自控制电路CU而在输入EXT上的,便可用于提供对一个计算的控制与操作。
一条指令是以在一步中改写指令到最终结果来执行的,或者为了最终达到结果而在若干步中改写表的值。
当进行逐步改写时,同一指令码可能用于每一小中或者该表可能改写成一条新的指令码,该表后面是跟随着值的。
图6
图6中示出的实施例中设置有下述处理单元来执行不同的指令;
连接到总线V0i与V1i的一个第一比较器21,用于比较这两条总线上的所有信息,即V0i>V1i,V0i=V1i,并在其连接到一个ALU控制驱动器27的输出cmp01上提供比较结果,即一个两比特的值。连接到总线V0i与V1i上的一个第二比较器22,用于比较这两条总线上的整个信息,即V0i>V1i,V0i=V1i,并在其连接到ALU控制驱动器27的输出cmp12上提供比较结果。连接到总线V2i与V3i上的一个第三比较器221,用于比较这两条总线上的整个信息,即V0i>V1i,V0i=V1i,并在其连接到ALU控制驱动器27的输出cmp23上提供比较结果。连接到总线V1i与V2i上的一个第四幂指数比较器222,(每一条总线都是32比特的)比较在这两条总线上的字的最高位部分,即se,c,e等部分,即除外数值部分与符号的所有其它信息。该比较器注意到se,c,e的上面描述的编码。所以来自一个清度译码器PD的信号B1sb1是馈送给比较器222的一个独立的输入的。
一个第五比较器223对来自精度译码器的信号Besb1与Besb2进行比较。结果信号指示Besb1与Besb2是否相等。
ALU控制电路27将来自这些比较器的比较结果馈送到其连接到控制单元CU(见图1A)的输出ASTATE上。这一结果也可用于控制下面要说明的某些单元,因而如果适当,在输出总线V100T,V200T,与V300T上提供有预先选定的字。
一个无意义译码器23连接到线V1i上并且检测到V1\-i上的字表示一个整数),并且,如果在总线V1i上的字表示一个浮点值,则分别检测是否在幂指数部分中的比特及数值部分中的比特是否是全“0”或“1”。关于这一点的信息是从指示输入V1i的最低比特半字节的一个信号B1sb1得出的。这一信号提供在输入总线上的字是表示整数还是表示浮点值的信息,及在浮点值的情况中提供幂指数与数值部分的分界的信息。这些检测的结果是提供在连接到ALU控制电路27的一个输入的车出insigi上的。
一个无意义译码器24连接到总线V2i上并检测是否在V2i上的比特为全“0”或“1”(如果在总线V2i上的字表示一个整数),以及,如果在总线V2i上的字表示一个浮点值,则分另检测在幂指数部分中的比特及在数值部分中的比特是否是全“0”或“1”。关于这一点的信息是从揭示输入V2i的最代位比特组并提供与信号B1sb1相同类型的信息的一个信号B1sb2中得出的。这些检测的结果提供在连接到ALU控制电路27的一个输入上的输出insig2上。
一个无意义译码器25连接到线V3i上并且检测是否在V3i上的比特为全“0”或“1”,(如果在总线V3i上上的字表示一个整数),以及如果在总线V3i上的字表示一个浮点值,则分别检测在幂指数部分中的比特及在数值的比特是否为全“0”或“1”。关于这的信息是从信号B1sb1中得出的。这些检测的结果是提供在连接到ALU控制电路27的一个输入的输出insig3上的。
每一个无意义译码器也是由来自ALU控制电路27的一个控制C5控制的,信号C5将在下面进行说明。
设置无意义译码器的目的是为了探测在参加要进行的计算的输入中的一个上的信息是否是无意义的。这一信息也在总线As\-TATE上提供给控制单元CU。一个来自无意义单元的至少一个输入(例如指示全零)的最终状态可被AKU控制电路27用来进行某些类型的运算,这些运算中包括若干次迭代。
一个指令译码器26连接到总线V0i上。当ALU要执行一个算术运算时,总线V0i上带有指令。如果V0i上带有指令或数据值,则V0i的译码结果通过输出ins传输到ALU控制驱动器27.单元23至27也分别由电路PD1,PD2与27中所生成的其它信号B1sb1,B1sb2与C5所控制的,这将在下面说明。
加法器与减法器
连接到总线V1i与V2i上的一个第一加法器28执行加法V1i+V2i并将结果馈送给一个独立输出a1。结果的一个可能出现的进位信号将馈送给连接到ALU控制驱动器27的一个输出gra1上。一个连接到总线V1i与V2i上上的减法器29执行减法V1i-V2i并将结果馈送给一个独立的输出a2。结果的一个可能出现的进位(错位)信号将馈送到连接到ALU控制驱动器的一个输出gra2上。连接到V1i与V2i上的一个第二加法器30执行加法V1i与V2i并将结果馈送给一个独立输出a3。结果的一个可能出现的进位信号将馈送到连接到ALU控制驱动器27的一个输出gra3上。
值部分OPm具有一个输出n1而幂指数部分具有一个输出n2。输出n1与n2是连接到一个输出总线选择器的输主上的,该选择器也称作比特组独立单位选择器M1。一个在控制信号C211控制下提供可随意选择的四个“0”或四个“1”的精度组的0/1发生器40也连接到选择器M1的一个附加输入上。
幂指数部分OPe有该运算数单元的输入中的四个作为输入,即V2i、与来自精度译码器PD2
Figure 911052720_IMG2
的Bbias2、B\-coincr2、Bcoder2,以及还有一个来自电数值部分OPm的一个输入n8。输入V2i连接到一个加1器INC的输入、一个减1器DEC的输入及一个字选择器M2的五个输入之一。部件INC与DEC的输出n6与n6分别连接到字选择器M2的两个输入上。Bcoincr2、Bcoder2连接到字选择器M2的其它两个输入。
运算数单元r2中的部件INC及DEC各有一个进位输出gri2与grd2连接到ALU控制驱动电路27。(运算数单元r1同样有一个加1部件进位输出gri1与一个减1部件进位输出grd1连接到ALU控制驱动电路27)。进位输出是在时钟周期的前一半中较早提供的。选择器是在时钟周期的前一半中较晚受到控制的,然后这一选择器信号被提供去关心是否在某些加1或减1电路中有进位这样的事实。
到达第一选择器的正常最大传播延时大于半个周期。从而,这一配置不会引起额外的延时。然而,典型的传播延时一般是小于半个周期的。所有信号在过渡到后半周期时受到判断。在选择器中没有不必要的过渡。
每一个加法器也受来自ALU控制电路27的一个控制信号C5(下面要更详细地说明)以及信号B1sb1控制。这一信号提供有关在输入总线上的字表示的是整数还是浮点值的信息,并且在浮点值的情况中用幂指数与数值部分之间的分界对准在总线V1i与V2i上的值。这一信息是重要的,因为离散值,即整数,是作为一个实体来计算的,但对于连续值,即浮点值,数值部分与幂指数部分是分别计算的。
一个第一符号与幂指数符号电路35分离出在总线V1i上的字的符号,幂指数符号,数值部分的最高位比特,以及数值部分的两个最低位比特,并将其输出sign,馈送到ALU控制驱动电路27的一个输入上,一个第二符号与幂指数符号电路36分离出总线V2i上的字的符号,幂指数符号,数值部分的最高位比特以及数值部分的两个最低位比特部分并将其输出sign2馈送到ALU控制驱动电路27的一个输入上。同样,一个第三符号与幂指数符号电路37可连接到总线V3i上并将其输出sign3馈送给ALU控制驱动电路27的一个输入。需要指出的是,当符号,幂指数符号与数值部分是作为在总线V1i与V2i上的提供的字的一部分提供时,电路35与36是绝对需要的。在输入总线上是浮点值字的情况中,它们是被ALU控制电路所利用的。在根据本发明的ALU的某些应用中,电路37是可以省略的。在根据本发明的ALU的某些应用中也可为总线V0\-i设置一个符号与幂指数符号电路(未示出)。
ALU控制驱动器27以处理其输入信号在输出总线C1,C2,C3,C4,C5上提供数字输出信号。ALU控制驱动器27最好是布尔门阵列。输出信号所提供的控制的例子将在下面进一步说明。
运算数单元
两个运算数单元r1与r2,各用于总线V1i与V2i上一个运算数,包含一个元素所独具的所有算术性质。每一个运算数单元有若干信息输入。其中三个是分别连接到三个单元28、29与30的三个独立输出a1、a2、与a3上的,其中两个是分别连接到输入总线V1i与V2i的,以及其中三个是分别连接到下面将进一步说明的一个独立的精度译码器PD1或PD2的某些输同上的。原则上,每个个信息输入是一条包含与各输入总线V0i,V1i,V2i,V3i相同数目的导线的总线。
运算数单元r1的输出是输出总线V100T而运算数单元r2的输出是输出总线V20T
ALU控制单元27的一个第一输出C1是一个控制运算数单元r1中的内部元件的合成控制信号。对单元r1的其它控制信号是由精度译码器PD1提供的。ALU控制单元27的一个第二输出C2是一个控制运算数单元r2中的内部元件的合成控制信号。对单元r2的其它控制信号是由精度译码器PD2提供的。一个第三输出C3是一个提供给第三运算数单元r3的合成信号,一个第四输出C4是提供来控制一个多项式供应电路31的(下面将进一步说明),一个第五输出C5是提供来控制精度译码器PD1与PD2友及无意义电路23至25、加法器28、29与减法器29、及符号与幂指数符号电路35至37。
各运算数单元r1或r2基本上具有相同的配置,所以只对其中一个r2进行详细说明。在单元r1与r2中的对应元件使用同一参照标志。运算数单元分成两个组,幂数部分OP与数值部分OPm。数运算数单元中的字选择器M2的输出n4直接连接到具有四个输入的一个字选择器M3的一个第一输入上并且通过一个反相器INV连接到它的一个第二输入上。输出n2是幂指数部分OPe的输出。输入Bbias2连接到字选择器M3的一个第三输入。
数值部分OPm有五个输入,即V2i、V1i、a1、a2与a3。所有这些输入分别连接到一个具有五个输入及一个输出n8的字选择器的各输入上。输出n8连接到幂指数部分OPe中的字选择器M3的第四输入上。输出n8同时直接连接到一个字选择器M5的三个输入中的一个上。通过一个负移位器SH1连接到该字选择器M5的一个第二输入,(负移位器SH1将其输入上的二进制信息而较低位方向移位四步,即将该二进制信息除以16),并通过一个正移位器SK2连接到一个第三输入上,正移位器SH2将其输入上的二进制信息向较高位方向移位四步,即将其输入上的二进制信息乘以16。
字选择器M5的输出n7直接连接到一个字选择器M6的六个输入中的第一个上;通过一个负移位器SH3(将其输入上的二进制信息向较低位方向移位一步)连接到一个第二输入;通过一个第二负移位器SH4(将其输入上的二进制信息向较低方向移位一步)连接到一个第三输入;通过一个正移位器SH5(将其输入上的二进制信息向较高位方向移位一小)连接到一个第四输入;并通过一个第二正移位器SH6(将其输入上的二进制信息向较高件方向移位一步)连接到一个第五输入。一个内部常数字发生器41在其控制输入C210的控制下生成一个常数字Cword2并以其输出连接到字选择器M6的一个独立输入上。常数字发生器41能够提供一组预先确定的零或一的组合,例如全“0”或全“1”或一个指示某一特定信息的字,该发生器是由向它发出的一个控制信号C210控制的。发生器只能存储有限数量的字组合,供控制信号C10在它们中间选择。字选择器M6的车出便是数值部分OPm的输出n1。
数值部分OPm实现下述功能。n8上的基本数值部分的值被字选择器M4选下,结果在V2i、V1i、a1、a2、或a-3中之一。它可以用它本身的值或者向左移位(正移位)1、2、3、4、5、6比特或者向右移位(负移位)1、2、3、4、5、6比特或者可以用常数字发生器41所提供的字Cword2代替。
幂指数部分OPe实现下述功能。它的输出可以是n8上的未称位的数值部分的值、V2i+1、反相V2i+1、V2i-1、反相V2i-1、Bco-incr2、反相Bco-incr2、Bco-decr2、反相Bco-decr2、或Bbias2之一。
在运算数单元r2中,字选择器M2至M6是独立地由ALU控制驱动电路27的输出C2上的控制字C2控制的。从而,字选择器M2是由控制字C2的部分C23控制的,字选择器M3由控制字C2的部分C22,字选择器M4由控制字的部分C26,字选择器M5帽控制字的部分C25,以及字选择器M6由控制字的部分C24。同样,连接到选择器M4的输出n8的移位器SH1与SH2是由部分信号C28控制的,移位器SH3至SH6由部分信号C27,加1器INC与减1器DEC由部分信号C29,提供输出Cword2的常数字发生器41由部分信号C210,以及0/1发生器40由部分信号C21\-1。
比特半字节独立单位选择器M1由一个包含控制字的部分C21、来自一个精度译码器PD2的一个输出码信号Bcde2、一个输出最低位比特信号B1sbadj2、以及一个输出幂指数信号Bexpadj2的组合多比特信号控制,最后提到的两个信号是在处理电路42A与42B中分别从来自精度译码器PD2的输出B1sb2与Bexp2中导出的。这些信号将在下面说明与示出。处理电路42A与42B由来自ALU控制驱动电路27的输出C2的一部分的信号C25控制。精度译码器PD2具有作为一个输入的总线V2i上的信息的exp符号与代码部分,连同来自ALU控制驱动器电路27的一个指示在总线V2i上的字表示一个整数还是一个浮点值的二进制控制信号C53。控制信号C53是来自ALU控制电路27的输出C5的一部分。
运算数单元r1的精度译码器PD1以一种等价的方式工作。来自精度译码器PD1的信号B1sb2与Bexp1是在分别提供输出B1sbadj1与Bexpadj1的处理电路43A与43B中处理的。处理电路42A、42B与43A、43B通常提供与来自它所隶属于的译码器的输入相同的输出。然而,在某些时候,当从加1器INC或减1器DEC提供了一个进位时,输出信号将被移件,如下面将要进一步说明。这一移位将由分别来自ALU控制电路27的输出C2或C1的部分信号C25或C15分别控制。
如果字V2i表示一个整数,则精度译码器PD2(或PD1)提供完全无意义的输出,例如这是以输出到处理电路42A、42B(或43A、43B)的输邮为全零来表示,如果字V2i(或V1i)表示一个浮点值,则提供下面作为Bexp2、B1sb2与Bexp1说明的类型的输出(或者B1sb1、Bexp1与Bcde2)。
图8
比特半字节独立单位选择器M1受控去分别选择提供在输出n1与n2并来自发生器40的部分信息。图3中所示的类型的一个字,即表示一个浮点值,示出在图8的上部,但这是用一种分开的矩形格式来表示比特组是如何形成的。参照标志s、se、c、e、m、msb与1sb分别表示符号、幂指数符号、代码、幂指数、数值部分、最高位比特与最低位比特。选择器M1的输入信息的分开的拼合组合的例子示出在矩形形式的字的下方。控制的类型像数据领域中所常用的那样用助记码表示,而这种助记码的例子则示出在图8中的左侧。
每一个助记码是自然地以包含诸如5或6比特的一个比特模式表示。比特模式最好是提供在到选择器M1的控制总线C21上(以及在到M1的控制总线C11上)。如果适当,处理电路42A与42B对来自精度译码器的信号B1sb2与Bexp2进行移位从而选择器M1的控制输入分别提供信号B1sbadj1与Bexpadj2。因此,选择器M1是受提供在其输入上的若干信号控制的,但只对通过一个布尔门阵列的输入组合控制信号中的一定比特组合作出反应,每一种组合提供一种来自输入n1、n2并从I/O电路40输出的组合输邮的一个特定的组合,如在图8中明显地看到的。
运算数单元r1与r2之间的差别
如上所述,运算数单元r1的配置基本上与运算数单元r2相同。下面是两个运算数单元r1与r2之间有差别:输入V1与V2的位置互换。常数Cword1与常数Cword2无关。电路r1是由ALU控制驱动电路的分成独立的控制字部分Cl2至Cl11的控制输出C1控制的(而不是由控制输出C2),并且是由具有V1isecli,即V1i的幂指数符号与代码部分,作为一个输入的精度译码器PD1控制的(而不是具有Vlisecli,即V1i的幂指数符号与代码部分,作为一个输入的精度译码器PD2)。
精度译码器PD1向运算数单元r1提供输出信号Bco-decr1、Bco-incr1、Bbia\-s1、Bexp1、B1sb1、Bmsb1、与Bcde1、并向ALU控制驱动电路27提供一个指示是否代码表示幂指数的最大长度的信号Bcomax1,及一个指示是否代码表示幂指数的一个最小长度的信号Bcomin1。精度译码器PD2向运算数单元r2提供输出信号Bco-decr1、Bco-incr1、Bbias1、Bexp1、B1sb1、Bms\-b1、与Bcde1,并向ALU控制驱动电路27提供一个指示代码是否表示幂指数的最大长度的信号Bcomax\-1与一个指示代码是否表示幂数的最小长度的信号Bcomin1。为了在输出上与在正常的移件中使新的精度得到反映,分别来自精度译码器PD1或PD2的输出B1sb、Bexp必须与数值部分同样地移位,这是分别在信号C25或C15的一部分的控制下由电路42A与42B或43A与43B控制进行的,如上所述。
每一个精度译码器在其输入上被馈送一个信号C53,分别指示在总线V1i或V2i上的字表示一个整数还是一个浮点值。信号C53是来自ALU控制驱动电路27控制电路23至30的输出C5的信号的一部分。
来自精度译码器的输出信号将在下面进一步详细说明。
乘法与除法,运算数单元r3
第三运算数单元r3,被乘数/商功能单元,是具有与单元r1与r2不同的类型的并且是在大多数情况下为乘法与除法运算提供的。制字C4的控制下被控成切断状态。从而,电路26′的输出V000T通常具有与总线V0i相同的信息。
数值ALU的自检
可以设置一个所谓的多项式发生器31。该我项式发生器生成用于ALU自检目的测试码。发生器31使用包括总线V0i,V1i,V2i,V3i上的所有信息的整个闭包作为目变量并向到总线V000T′、V100T′、V200T′、V300T′、的目标寄存器提供数值。
当进行一次自检时,ALU控制单元27以信号C4控制缓冲器电路26′,以及以信号C11控制运算数单元r1中的选择器M1;以信号C21控制运算数单元r2中的选择器M1,从信号C3 -1控制运算数单元r3中的选择器M12以断开在总线(分别为V000T、V100T、V200T、V300T、)上的输出,并接通多项式发生器输出(它们通常是断开的)。以这一方法,是多项式发生器输出V000T′、V100T′、V200T′、V300T′而不是来自单元26′、r1、r2与r3的总线V000T、V100T、V200T、V300T上的输出接通提供给输入/输出总线V0、V1、V2与V3的信息。
三态驱动器39
来自内部电路26′、r1、r2与r3的输出总线以及多项式电路31的输出总线V000T′、V100T′、V200T′、V300T′连接到一个输出三态驱动器39的不同输入上。三态驱动器39具有与图7A至7C中所示的缓冲器几乎相同的配置并且是由ALU控制驱动电路的输出C4控制或者将来自内部电路的内部缓冲器接通,即传导的,而将多项式电路31的输出总线的内部缓冲器切断,即阻塞,这是正常状态,或者在俭测周期情况中的其它方式。
图9与精度译码器PD1与PD2
图9示出了在一条输入总线V1i或V2i上一个表示浮点值的字的例子中来自一个精度译码器的输出信号的一个实施例。用于浮点值的精度译码器的输出将结合这一例子说明。
下面要进一步说明的精度译码器的变元是浮点值说明的幂指数符号与代码部分,并提供了指示该字表示一个浮点值的控制信号。它是1+4比特宽的。
代码比特段中不同的代码对应于不同的精度(数值部分长度及幂指数长度0。幂指数的最低半字节1sb(见图8)是随精度变化的。这一半字节就是图9中的示例性字中具有比特模式0100的那个半字节。二进制信号B1sb中每一精度半字节有一个比特,即8个比特,并且除了最低精度半字节以外对所有半字节都为“0”。
一个代码及其反码格式表示相同的精度,其中对应的幂指数符号是互补的,如下面以表格形式示出的。
1sb的半字节  代码,包括前导的幂指数符号
0(包括字的1sb)  不用  不用
1  1  1111  +0  0000
2  1  1110  +0  0001
3  1  1101  +0  0010
4  1  1100  +0  0011
5  1  10-  +0  01-
6  1  0-  +0  1
7(包括字的msb)  i  不用  不用
上表中所示代码把幂指数的符号作为一个元素。当这一元素为真时,所有其它比特以它们原样使用,但当它为伪时,则它们被反相。
如上所述,精度译码器提供布尔值序列,即若干输出字,它们是馈送到ALU中不同单元的,诸如运算数单元,ALU控制驱动电路等。对于表示浮点值的一个字,信号B1sb可能只为半字节1至6中的一个提供一个真比特而其余的比特都是伪比特。对半字节0与7提供的总是伪比特。
八个布尔值的一个序列(每一精度半字节一个)以一个真比特指示属于代码/幂指数部分的精度半字节,如图9中Bexp一边所示。
在所示的例子中由于变化的代码长度,最高位幂指数比特有三个可能的位置。
如图9所示,这里Bmsb是三个布尔值指示那一个位置有一个真比特(其它为伪比特)。因此,在所示的例子中Bmsb为001指示代码长度是最大的,例如1sb1至4的半字节(见上面的表)。010指示半字节5而100指示半字节6。
在图9的例子中,Bcde是对应于两个最高位精度半字节中所有比特的8个布尔值。Bcde从最低位代码比特到幂指数符号为真(“1””。
单元r3在乘与除功能中执行必要的移件与置位。它是由提供在ALU控制单元27的输出C3上的一个控制字控制的。
被乘数/商单元r3有若干输入,在其中的第一个上提供总线V2i上的信息,第二个上提供总线V3i上的信息,及在第三个上提供来自常数字发生器44的一个输出,该输出是在来自电路27的输出C3的一个部分信号C33的控制下从存储在发一器中的若干比特模式中提供一个选中的比特模式。
单元r3是用于在复杂的数值计算中计算一个变元。其输出连接到总线V300T
输入V2i被馈送到一个字选择器M11的一个第一输入上。输入V3i是直接馈送到该字选择器M11的一个第二输入上,通过一个由信号部分C35控制控制的正一比特移位器SH11馈送到一个第三输入,通过一个第一负一比特移位器SH12到一个第四输入,以及通过一个第二负一比特移位器SH13到一个第五输入,最后提到的两个比特移位器是由信号C33、Bmsb1、N1sb1控制的。发生器44的输出是连接到字选择器M11的一个第六输入上的。要提供给一个第二字选择器M12的一个输入的字选择器M11的输出是由来自ALU控制单元27的控制字C3的一个控制字部分C32选定的。
M12是将选择器11贩输出提供给输出总线V3oUT的一个总线连接,但它能在一个控制字部分C31的控制下被控成切断状态,如下面将说明的。
一个缓冲器电路26′连接到总线V0i上。电路26′是将V0i提供到其输出的一个总线连接,但它能在来自ALU控制电路27的一个控
这里Bbias是一个用于调整浮点值表示的32比特字。除了最低位幂指数比特以外,所有比特均为伪(“0”)。
精度译码器也分别提供加1与减1后的码Bcoincr与Bcodecr,它们是在精度变动后用在某些运算中的。对于信号Bcoincr与Bcodecr只示出了延伸在字中的只指数符号与代码部分上的前面几个比特。然而,字是最好32比特长的。其余的比特最好全为“0”。
两个布尔值Bcomax与Bcomin指示代码是否表示一个最大或最小的幂指数长度。在图9中所示的例子中,在半字节4中提供了最低位指数比特。从而布尔值Bcomax与Bcomin均为“0”。如果在半字节1中提供了最低位指数比特,则Bcomin为“1”,而如果半字节6中提供了最低位幂指数经特,则Bcomax为“1”。
图9中示例的信号是在浮点值的情况中所提供的信号。对于一个整数,信号B1sb、Bexp、及Bcde全都为伪,即只有“0”。需要指出的是,当然有可能用另外的比特组合的集来指示一个整数;其条件是这些信号的一个十分特别的比特组合表示一个整数。
精度译码器的一个实施例将结合图13进行说明。
浮点值加法的例子
上面结合图2的说明给出了一个整数乘法运算的例子。为了展示根据本发明的ALU的功能,这里给出了两个浮点值的一个加法运算的例子。
如上所述,连续编码方案没有冗余,即没有为检测目的增加数据。所以,诸如对齐与精度调整这样的正常操作不可能以直接的方法进行。为了解决这一问题,在V0i上的信息中包括了一种状态。它们定义了在总线V1i或V2i上的运算数,下面称作a运算数与b运算数,是怎样编码的。这三种状态是:
Na或b运算数中没有一个具有一个改变的代码,它们都是规范化的。
Aa运算数具有改变了的代码,它不是规范化的。
Bb运算数具有改变了的代码,它不是规范化的。
数值部分的解释,图10
图10示出了对数值部分的一个比特序列1010的一个规范化码与一个改变的码的解释的例子。为规范化码提供了一个虚拟的1,该码给出结果1.625,而对于改变的码则不提供虚拟的比特,该码给同结果0.625。
图11与12,对准
连续加法,即两个浮点值的加法,的第一步是对准在输入总线上的运算数(如果指数不相等)。如果值a与b要相加,而a=1.5 231与b=-1.125 233,值a的幂指数较值b的为小,所以在实际相加运算前必须先对准,如图11与12所示,示出了示例值a的一个第一与一个第二对准周期。
示出的全子是选择为使用三种情况来对准两个运算数的。值a的幂指数增加1而其数值部分则除以29向较低位一步)。为了使a具有与b相同的幂指数(33),这一操作要进行两次。
这一例子是这样选择的,使得三种情况用于对准两个变元:
1.在一个对准周期中的初始值是以一个二进制组合表示的,其中的幂指数值是代码c的最高可能值并且幂指数符号是负的。注意不论幂指数的符号是正还是负,一个数的精度不变的。在步进幂指数时,精度必定会增加。幂指数部分增加1,然后将数值部分左移适当数目的步数。
2.在一个对准周期中的初始值的幂指数是这一周期中的代码c的最高可能值,并且幂指数符号是正的。在步进幂指数时,精度必定会降低。幂指数部分增加1,然后将数值部分右移适当数目的步数。
3.对准周期中的初始值的幂指数值不是最高的可能值。幂指数被步进而数值分则被除以2。
在本例中的值a的第一对准周期中,即从图11中上方的比特表示改变到其下方的比特表示,精度码是向右增加一个比特,由于当幂指数增加时它是最大值这一事实,即包含全“1”,一个进位被传播到精度码中,使之也加1。此后该代码被解释为增大了并加和节一个比特(见上表中半字节5中的代码)。这实际上意味着幂指数长度在其左方减少了一个比特而在其右方增加了一个精度半字节(4比特)。幂指数值也增加了1。数值部分先右移四步(精度降低)然后右移一步(除以2)。当数值部分半字节向较低位移位一步时,虚拟的“1”移进数值部分中,因而在第一对准周期以后在其最高位精度半字节中具有数字组合1100。
对准的硬件执行
这一操作是在ALU中的一个周期中在运算数单元r1中完成的(如果值a是在总线V1i上提供的)。幂指数值是原始值a的表示中的最高可能值。幂指数值符号为正,这意味着所有的幂指数比特都是1。当该幂指数被加1器INC增加1时,所有的比特都变成0而加1器INC向ALU控制驱动电路27馈送一个进位gri1,AKU控制驱动电路27改变二进制输出部分信号C15使之控制处理单元43A与43B将来自精度译码器PD1的信号向左移位。进位信号gri1同时被传送到代码部分中,如上所述。
在进行一次减1的情况中,同样的讨论也适用于减1器DEC,但如果提供了一个进位(借位grdj,j为1或2,则部分信号Cj5分别控制处理单元43A与43B或42A与42B进行一个向左移位(2)。需要指出的是,加1器与减1器是在时钟信号的第一个半周期的第一部分中提供它们的输出,从而在这一半周期中能够较早地向处理单元提供控制信号。对所有运算数单元的选择器的控制是在时钟周期的第一个半周期中的后一部分中提供的。在时钟周期的后一部分中精度译码器的输出是不变的。当内部输入总线V0i,V1i,V2i与V3i一有稳定的值便立即将它们稳定化。如上所述,在时钟周期的前一半中,在总线连接20中的输入缓冲器分别让来自外部总线V0i,V1i,V2i与V3i的数据通过,而输出缓冲器则将来自运算数单元的输出数据与外部总线隔离。在时钟周期的第二个半周期中,输入缓冲器保持内部输入总线V0i,V1i,V2i与V3i上的值,而新的输出数据则被传送到外部总线。这意味着精度译码器只在下一个时钟周期中受新的输出数据的影响。
数值部分是被运算数单元r1中的左移一个精度半字节单元SH2左移一个精度半字节的9即除以16)。最低位幂指数精度半字节是由精度译码器PD1提供的一个比特矢量信号B1sb1指示的。这一半字节的右移是由处理单元43A与43B执行的。为了由移位一步单元SH5将数值部分从一个新的位置上再移位一步(除以2),单元43A与43B将B1sb1矢量向右调整。调整后的矢量信号B1sbadj1用于从数值部分OPm与幂指数部分OPe中选择输出。为了补充完整幂指数部分,将来自电路40的一个4个“0”组成和半字节插入r1作为幂指数部分中的新的最低位精度半字节(见图8cef-m/cef-m)。
比特值“1”,在一个规范化代码中的虚拟比特,被移位进入新的最高位数值位置中,这相当于一个规范化正数值部分的除法((1.0+m)/2)。新的数值部分不是规范化的。因此值a得到的是一个改变代码(在幂指数与数值区域之间有一个“0”作为虚拟比特)。
在第二对准周期中,示出在图12中,没有必要改变精度,即在幂指数中的比特数不需要9改变。只是将幂指数部分增加1,而代码c保持不变。因为幂指数在这一对准周期的原始值的精度状态中并不是最高可能值,所以没有进位信号被提供来改变该代码。
数值部分右移一步(SH5)。由于现在的移位是从一个改变的代码提供的,在幂指数与数值部分之间不存在虚拟的“1”,所以移主一个虚拟的“0”而在最高位精度半字节中的数字组合将是0110。从而,经过对准以后,值a具有一个改变的代码并以0.375×233表示。
为了得到一个规范化的数值部分,连续加法的第二步是规范化变元而不是加法的结果。a+b的结果是0.375×233-1.125×233=0.750×233,这不是一个规范化的结果。因此,在加法以后将随着进行一个变元规范化,它给出规范化的和-1.5×232(=2(-0.750×233/2))。
浮点值的乘法是类似于绘画科2的描述在上面说明的整数乘法执行的。然而,为了减少时间延迟,使用的是二个比特而不只是一个比特。
在乘法循环中,用于数值部分的等式是sma smb=smv2ismv3i,其中sm表示由符号、一个虚拟比特与数值部分比特组成的真实的带符号的数值部分的值。
V1i字在循环中没有幂指数符号、精度代码或幂指数值。反之,其数值部分比运算的实际精度长。数值部分的前导比特是这样编码的使得整个字V1i是一个等于部分数值部分的一个离散值。符号比特具有积的正确的值。
字V3i是被乘数。它是不改变的。
字V3i具有其原来的幂指数符号、精度、及幂指数值。然而,数值部分被附加在符号比特上构成一个比该字的数值部分长一个比特的精度。在这一情况中的数值部分是编码为一个不带符号比特的离散的值。符号比特可从字V1i的符号中导出。
在乘法循环中字V1i是右移的。字V3i也是每次右移两个比特的(SH13)。当V3i中所有的经特都用尽后,循环便结束了。然后规范化其结果。
我们深信从上面给出的ALU运算的示例描述中,本领域的技术人员可以容易地推导出其它类型的运算可以如何地由ALU处理。
图13,精度译码器
精度译码器的原理性结构示出在图13中。需要指出的是,可以对所示的结构进行修改,例如为了加快运算速度。这些只是构造性特性,对于本领域的技术人员是明显的,所以将不在这里说明。这意味着实际的电路可以具有与图13所示的配置十分有同的其它配置,但它将具有与该图中所明白表示的同样的原理性功能。
输入信号Vji的幂指数符号与代码部分,其中j是1或2两者之一,被馈送到一个重编码电路50,在精度译码器的这一原理型实施例中,电路50在其输出上提供示出在上面的表中的包括前导的幂指数符号的代码的变型之一,例如左边的一个,诸如此类的变型被提供在其输入上。另一方面,两种变型可以提供在重编码电路50的输出上,但永远具有相同的次序,例如,上表中分配给它的线中的左边的变型以及在分配给它的线上的右边的下一个。输出被馈送到一个比特序列比较器电路51,它监视在其输入上的比特组合并提供指示代码的长度的数字信号Bmsb,见图8,即在所选定的例子中是一比特还是二比特还是三比特长。它同样提供信号Bcde
六个比特序列比较器电路52至57同样连接到重编码电路50的输出上,每一个适用于对其特定的编码作出反应在输出上提供一个“1”,如果在来自重编码电路50的输出线上的比特模式是与它适配于作出反应的模式相同则提供一个输出“1”,即一个真信号,其它电路则正在提供输出“0”,即一个伪信号。信号B1sb中的第一与最后一个经特永远是“0”。所以,两条线58与59直接连接到一条具有比特“0”的线上。
线58、电路52至57的输出以及线59是提供总线B1sb的,对每一精度半字节它有一个比特,对每一精度半字节,总线Bbias有中个比特。每一个半字节包括三个比特“0”以及对于该特定半字节的信号B1sb的比特。从而各半字节的线中的三条是连接到“0”的而第四条则连接到输出B1sb的的适当的线上。输出Bco-min是连接到电路52的输出上的而输出Bco-max则连接到电路57的输出上。
输出Bexp的比特模式从最低位向上直到输出B1s\-b中有一个“1”的位置为止全部为“0”,而从这一位置开始则所有比特都是“1”。在线59上的最低位比特将永远是一个“0”,但从次低位比特起有可能是一个比特“1”。所以,一个或门60有一个连接到电路57的输出上的一个输入而其余输入则连接到电路56的输出上。电路57珠输出连接到信号Bexp的次低位置线上。或门60的输出连接到输出Bexp的更次低位置的线上。因此,如果电路57的输出碰上是一个“1”,则这将同样在从或门60提供一个输出比特“1”。只在电路567与56两者的输出均为“0”时,或门60的输出才将是“0”。或门60的输出连接到另一或门61的一个第一输入,而或门61的另一个输入是连接到电路55的输出上的。或门61的输出连接到输出Bexp的第三最低位置的线上并连接到一个或门62的一个第一输入上,或门62的另一个输入连接到电路54的输出,等等。或门的灾种级联耦合在所有与输出B1sb给出“1”的位置具有相同位次或较高位次的位置上提供“1”。
字Bcodecr的符号、幂指数符号与代码部分具有第一条线连接到提供一个“1”的一个单元,其第二条线连接到连接在B1sb的第六条上的一个反相器161的输入是连接到B1sb的第五与直接连接到B1sb的第二与第三条线上。字Bcodecr的符号、幂指数符号、与代码部分的这些线是连接到为了在其输出上提供一个32比特的字而向输入的字上加“0”的一个比特补充电路66的输入上的。
字Bcoinci的符号、幂指数符号与代码部分具有其第一与第二条线连接到提供一个“1”的单元上,其第三条线连接连接到连接在B1sb的第七条线上的一个反相器163上,其第四条线连接到一个或门164该或门的输入连接到B1sb的第三与条四条线上,以及其第五条线直接连接一个或门165,该或门的输入是连接到B1sb的第三与第五条线上的。字Bcoincr的符号、幂指数符号及代码部分的这些线是连接到为了在其输出上提供一个32比特的字而向输入的字上加“0”的一个经特补充电路67的输入上的。
图14A至14C,加法器
图14A至14C示出了一个加法器的一个实施例,例如图6中电路28至30中的一个。加法器有两个变元a与b。变元a提供在总线V1i上而变元b在总线V2i上上。这些变元是编码为一个浮点值或者一个整数的。来自图6中的电路27与总线B1sb1与B1sb2的输出C5的信号C51,对整数为“0”而对浮点值为“1”,指示这一事实,C5对于整数为全“0”而对于浮点值则有一比特为“1”。如图14A所示,该加法器是一个以8个级联耦合部件G1、G1、…、Gi、…、G7构成的二进制加法器,即一个部件用于一个精度半字节。
从上面对加法运算的说明可到,在a与b是浮点值的情况中在它们相加以前将变元a与b对准是重要的。这意味着B1sb1与Blsb必须相等。B1sb1是作为控制加法器的信号B1sb馈入的。当B1sb被连接到加法器、加1器、减1器等时,它是在向数值部分的方向上位移一步的,因为这样它才能影响在最高位数值部分半字节上的进位传播(阻塞它)。所以,在这些情况中,信号B1sb中的最低位比特是不用的。
变元a与b,各包含32比特,是分成8个半字节的,每佧一个半字节包含4比特。a与b各4比特半字节是作为每一5中件Gi的一个独立输入提供的,i为0与7之间的一个整数。总线B-1sb的条条线是连接到除Go以外的部件Gi的一个独立单位的。连接到部件C7的一条线Cm指示加法器将进行一次加法还是减法。对于加法Cm为“0”而对于减法则为“1”。各部件提供一个馈送给下一个部件的进位信号Cou+i,并接受来自上一个部件的进位信号Cini,这将在下面更详细地说明。
变元a与b的加法是独立地在各部件G0至G7中进行的,必要时以G7至G0的次序向下一个部件提供进位信号。对于一个浮点值设置了一条数值部分向外进位总线Cm,必要时向其提供一个数值部分进位。这一总线连同具有符号比特的线Cs及具有幂指数符号比特的Cse构成到图6中的电路27的输入grs2或grs3)。电路27将这一信息在总线ASTATE上提供给控制单元CU。
信号C51指示变元a与b是整数还是浮点值,信号C52指示变元a的代码是正常的还是改变了的,而信号C53指示变元b的代码是正常的还是改变了的。这些信号是馈送到部件GO的,它对应于包含最高位比特片(符号片0)的最高位精度半字节。这是特别依赖于运算数a与b的格式的(它们是否都是整数或浮点值)。
设置了一个三态门70将总线Cm设置成一个规定的值,例如当运算数为整数时设置成全“0”,这是因为这时在总线上不会激活数值部分的进位。三态驱动器70是由信号C53控制的。
图14B中示出了部件G1的一种配置的一个实施例。它是被“切”成四个加法器片AS1至AS4的。它还包括一个该部件的进位发生器,它测定对下一部件的进位Couti。考虑中的部件的Gi的各比特半字节ai与bi分别将比特aik与bik中的单独的一个连接到各独立加法器片ASK上,k是1与4之间的一个整数。每一个加法器片提供和输出的一个比特sumk。
如将在说明图14C时更详细地说明的,进位发生器被提供下述比特:一个发生比特Gen,指示该部件的和是大于或等于16的;一个传播比特Pr,指示该部部件的和是大于或等于15的;来自上一个部件的进位比特Cini;来自加法器片AS4的一个进位来的比特Cini4;以及比特Blsbi+1°比特Blsbi+1°是通过一个反相器75馈送到一个三态门的一个反相输入上,并且直接馈到三态门76的控制输入的。比特Cin-i4是连接到三态门76的一个第二反相输入上的。这样,当比特B1sb-i+1这“0”时,三态门76的被控制来传输比特B1sb-i+1。然而,当比特B1sb-i+1为“1”时,三态门76则衩控制来传输比特Cin-i4,如果它是“1”时指示数值部分有一个向外进位。
只需要为变元的幂指数部分后面的精度半字节提供一个数值部分向外进位,也只有这一个半字节具有比特B1sb-i+1为“1”。
部件与部件之间的进位传播对于幂指数部分后面的精度半字节是被阻塞的。因此,比特B1sb-i+1是连接到一个与门77的一个反相输入上的,该与门77在其另一反相输入上有反相的信号Gen,从而,只当为B1sb-i+1“0”时,才传输信号Gen。比特B1sb-i+1还连接到一个与门78的一个反相输入,该与门78在其一个第二么相输入上具有反相的信号Pr及在其一个第三反相囹入上有比特Cin i,从而,只在B1sb-i+1为“0”及Cin i为“0”时才传输信号Pr。一个或门77将其输入连接到与门77与78的输出上,并当两个与门中的一个具有输出“1”时提供一个输出“1”。
图14C示出了各加法器片ASK的一个实施例。输入ak与bk馈送到一个异或门80的各输入上,如果这两个输入互相不同则提供一个“1”,否则一个“0”。异或门80的输出馈送到一个第二异或门81的一个第一输入而比特Cin ik到其另一个输入,只当其输入不同时,异或门81的输出才是一个“1”,并提供处理来自上一个加法器片的进位比特的输出sumk,或者当该加法器片是该部件中的第一个时,处理来自上一部件的进位比特。
比特ak与bk被馈送到具有一个反相输入的一个或门82的输入上,其办出本身又连接到三个与门83,84,85中每一个的一个第一反相输入上。反向的比特Cin  ik被馈送到与门83的一个第二反相输入上,与门83当ak与bk中任何一个为“1”时传输比特Cin  ik来自上一个加法器片的反相比特Pin  ik被馈送到与门84的一个第二反相输入上,与门84当比特ak与bk中任何一个为“1”是提供与Pin  ik一样的Poof  ik。反相的比特Cin  ik被馈送到与门85的一个第二反相输入上,该与门85当比特ak与bk中任何一个为“1”时传输比特Cin  ik。对于在各精度部件中的各个第一加法器片AS1,比特Pin  ik与比特Cin  ik分别为“1”与“0”,如图14B中所见。
为了实现行波传送进位,比特Pr与Gen是需要的,即使加法器更快。由于在进位链的输入上含有离散值这一事实,所有的精度半字节是并行计算的,即对于所有精度半字节是同时的。来自加法的最后进位Cs与没有行滤传送进位的32个门延迟相比,它只有4+8个门的延迟。
比特aik与bik还馈送到具有一个反相输出的与门88的输入上,该与门88的反相输出本身又连接到两个或门86,87的各个的一个第一输入上。与门83的输出连接提供输出Cout ik的或门86的一个第二输入。与门85的输出连接到提供输出Cout ik的或门87的一个第二输入。
为了提供非常快的进位链,如果一个比特片反相行波传送发生的极性并且传播比特是反相的,有可能在它们中只有一个延迟。在这一情况中,每隔一个精度半字节有反相的输入(未示出)。
从图14A的左方可见,最高位精度部件GO与其他部件是稍有不同的。它不使用一个输入变元B1sb-0。在该半字节中它被设定为“0”。反之,它有数值部分进位输入Cin m。它是用于生成给符号比特的进位输入的。输出有一个指示从幂指数的向外进位的附加的比特。除了B1sb-0是设定为“0”,即伪,以外,正常的向外进位是同正常的半字节中一样产生的。
一比特信号C51、C52、C53可能有下述比特模式(C51、C52、C53)=(伪、伪、伪)表示整数;(C51、C52、C53)=(伪、伪、真)表示a与b两者都具有规范化代码;(C51、C52、C53)=(真、伪、伪)表示a为改变后的,b为规范化的代码;(C51、C52、C53)=(真、真、真)表示a为规范化,b为改变后的代码。
图15
加1器的配置十分相似于加法器的配置。图15示出了一个加1器中的一个精度部件的实施例。加1器只有一个输入a′(未示出)。加1比特片AS1′至AS4′与加法器比特片的差别在于它们没有从一个传送到另一个的发生器比特Gen。来自片AS4′的反相输出Pr与来自上一个部件的反相位Cin被馈送到带有两个反相输入的一个与门90的两个反相输入上。给线上的第一倍件G7的Cin中的进位是一个“1”指示要进行一次加1。与门90的输出及经特Blsbi+i被馈送给高下一部件提供输出进位Cout的一个或门92的各输入上。加1器的进位输出是以与加法器相同的方式提供的。行滤传送进位链Cin/Cout指示和是否大于或等于2。行波传送进位链Pe′指示和是否大于或等于1。
和加法器一样,加1器有一条受信号B1sbi+i控制的数值部分向外进位总线Cm。控制比特C1g或C2g指示表示是一个整数还是一个浮点值。控制比特C1g或C2g控制一个三态门,该三态门当数值部分向外进位总线不在使用时将其设置为一个规定的值(未示出)。
一个减1器具有与加1器相同的配置,但减1器有一个到它的减1器片的反相输入a′in,这些减1器片相当于加1器片AS1′至AS4′。
运算数单元中的选择器一般由一行传输门构成。选择器总有一个定义的输出。它具有一张控制字与值输入的表作为变元。除了一个其余的全部断开。每个个输入的控制为一个补码信号。整个选择器是由这种元素的一张表控制的。在不同状态中它们被控制从一个予定的端口中取得输入。图16中示出了一个基本选择器比特片的一个实施例。选择器的各输入端口Sina、Sinb、sinc与Sind的比特中一个分别连接到一个可控开关Sa、Sb、Sc、与Sd。一对控制线Sca、Scb、scc与Scd分别提供各开关。向它所隶属于的开关提供一次输入传输的控制对上具有信息“1,0”,其余的具有信息“1,0”。
需要提出的是,ALU中的大多数电路是根据与加法器相关的上述原理构造的,因为,我们深信本领域内的技术人员能够应用这些原埋容易地构造其余的电路。因此,详细地说明每一个单一的电路被认为是没有必要的。
图6中所示的ALU驱动电路27是具有相当复杂的种配置的一个布尔门阵列。无法展示它的一个实施,因为这是向一台计算机提供了关于与信息信号相关的控制信号的配置的所有算法以后由计算机计算出其配置的。布尔门阵列是作为芯片掩膜图形直接由计算机提供的,该计算机适知于对根据本发明的整个ALU进行芯片掩膜图形的配置。因此,这一电路是不可能详细展示的。在整数乘法与浮点值加法的幂指数对准的情况中,对ALU驱动电路27的输入及其输出之间的系统的一张表在附录中给出。
附录1示出在浮点值加法中用于对准指数的输入与输出之间的系统。
附录是分成不同的“控制情形”的。每一种控制情形对应于一个输出,即一条微指令。
在标题“微指令线”下列出的ALU驱动电路27的输出是在总线C1-C5上的信号电平。总线C1、C2与C3被分成连接到ALU各点上的更小的总线C11、C12、C13等。不同的输入集合可能导致相同的输出。导致箱同输出的可能输入信号列出为条件1、条件2等等。因此,在标题“控制情形1”下作为“状态、感测线-条件4”列出的输入导致下面在标题“微指令线”下的输出。作为条件1、2与3列出在上面的输入导致与条件4相同的输出。
每一个条件是以某些状态线上的一个确定的信号电平(0/1)的组合定义的。而其它状态则可具有不确定的值(χ=无关)。
除了co-limit1与co-limit2以外,列出在附录中的所有输入信号也都标示在图6中。在图6中,信号co-limit1是分成其两个分量Bco-max1与Bco-min1的
信号co-limit2也是分成它两量Bco-max2与Bco-min2的。
输出ASTATE只是所有对电路27的输入的一个复制。输出ASTATE是连接到控制CV的。
附录2示出在执行整数乘法时ALU驱动电路27的输入与输出之间的关系。
虽然本发明已经参照特定的实施例进行了说明,但对本领域的技术人员而言,应当理解,在不脱离本发明的真实精神与范围的情况下可以作出各种改变并且可以使用等价部件来代替其部件。些外,可以不脱离本发明的主要技术而作出修改1。
一个可作为指令运算数/mu′-puotient(积,商)或多项式由目标寄存(未示出)或某些ALU内部单无提供。有关总线上的其余比特串的表示类型的信息可由指令总线上的信息给出或者在代码段中给出。

Claims (45)

1、一种对数值元素执行算术的、逻辑的与相关运算的方法,其特征在于包括下述步骤:
a)提供一张包含处理的所述数值元素及指令信息的输入表,
b)使用所述指令处处,对所述输入表上的所述数值元素直接控制与执行一个运算,
c)每一数值元素提供一个具有一个预定的比特(bit)长度的字,字的最大数目等于所述输入表中的元素的最大可提供的数目,
d)以改写所述输入表中的元素中的元素来执行一个计算,
e)作为一张输出表提交结果。
2、根据权利要求1的一种方法,其特征在于所述输入表是分成特定的表元素的,所述表元素中至少一个是一个指令字的一个表示,并且其余的所述表元素是数值字表示。
3、根据权利要求1或2的一种方法,其特征在于全部表元素是数值字表示。
4、根据前面的权利要求中任何一条的一种方法,其特征在于所述表包含一个函数应用,其中,其元素之一是一个指令码而其余的为所述指令的变元,并且一条指令是以改写与重新循环来自所述结果输入表的所述指令码到所述输入表直到达到一个最终结果来执行的。
5、根据权利要求4的一种方法,其特征在于在每次改写时,如果适合于该实际计算,所述是改写为包含一个修改后的指令码字并在后面跟随着值字的。
6、根据权利要求4的一种方法,其特征在于在直接到结果的一个改写时,其值是放置在没有任何指令码的输出表上的。
7、根据前面的权利要求中任何一条的一种方法,其特征在于所述输入表与输出表中的元素的最大数目是4。
8、根据权利要求2至7中任何一条的一种方法,其特征在于在实际处理以前所述数值字是以一种编码格式提供的。
9、根据权利要求2至8中任何一条的一种方法,其特征在于表示数值字的所述字是以达到所述数值的一种稠密表示的一种编码提供的,即一个值的每一编码的表示只对应于一个数值。
10、根据权利要求2至9中任何一条的一种方法,其特征在于为表示一个整数值的一个二进制字提供一种第一编码。
11、根据权利要求2至10中任何一条的一种方法,其特征在于为表示一个浮点值的一个二进制字提供一种第二编码。
12、根据权利要求2至11中任何一条的一种方法,其特征在于为表示一个整数值的一个二进制字提供一种第一编码并为表示一个浮点值的一个二进制字提供一种第二编码,并且所述编码是这样的使得编码以后浮点值表示的数值与整数值表示的数值以相同的次序增加。
13、根据权利要求2至12中任何一条的一种方法,其特征在于一个二进制编码的浮点值表示包含一个代码段、一个幂指数段及一个数值部分段,所述代码段具有一个所述幂指数段与所述数值部分段之间的分界位置的指示,使得幂批数与数值部分段具有可变长度。
14、根据权利要求9至13中任何一条的一种方法,其特征在于所述稠密表示是以在用于该浮点值表示的数值部分的该字的一个段的前面包含一个虚拟的“1”,即并不在该表示中物理地提供的一个“1”,来提供的。
15、根据权利要求9至14中任何一条的一种方法,其特征在于所述值是以下述方式编码的:
a)该值的表示包含一个比特串,其中每一个比特是“0”或“1”中之一并且是从数值零开始的二进制编码的,
b)在所述表示中的所有可能值只有一个值对应于一个浮点值,
c)具有较另一浮点值为高的一个表示的一个浮点值具有较所述另一值为高的一个值,
d)一个浮点值的所述表示包含一个整个所述浮点值的符号比特,一个所述浮点值的幂指数的符号比特,一个说明所述幂指数的长度的代码,所述幂指数,该幂指数具有一个可变的长度,以及一个具有可变长度的数值部分,所述表示的组合长度是一个常数。
16、根据权利要求15的一种方法,其特征在于具有一个“1”作为其最高位比特随后为“0”的所述表示表示一个特殊的浮点值“0”。
17、根据权利要求16的一种方法,其特征在于不表示该特殊浮点值“0”的所有表示具有一个对应于2e+biasmantissa(数值部分)的值,其中,e对于高于或等于1.0的正浮点值,及对于低于-1.0的负浮点值的所述表示中为所述幂指数的值,并且其中用于在1.0与-1.0之间的浮点值的幂指数是反相的,以及其中,对于不表示该特殊浮点值“0”的表示,对于具有负符号的表示,即表示一个负数,所述数值部分在-1与-2之间变化,以及对于个有正符号的表示,即表示一个正数,在+1与+2之间变化。
18、根据以上权利要求中任何一条的一种方法,其特征在于一条指令是以对在最终计算值中作为中间阶段使用的所述值的若干可能组合的一种并行计算来执行的,如有必要,选择所述计算出的中间阶段进行进一步处理以提供一个最终结果。
19、根据权利要求9至18中任何一条的一种方法,其特征在于在对一个第一浮点值A与一个第二浮点值B作加法/减法时提供下述运算:如果所述值A的幂指数比所述值B的幂指数小,则将所述值A对准所述值B,如果所述值B的幂指数比所述值A的幂指数小,则将所述值B对准所述值A,将互相对准的所述值进行加/减,规范化所述加法/减法的结果。
20、根据权利要求19的一种方法,其特征在于在加法/减法上的所述运算是在各加法/减法运算阶段中并行计算的,并且该运算是从适用于实际加法/减法运算阶段的所述并行计算运算中选择的。
21、根据权利要求15至20中任何一条的一种方法,其特征在于为一个第一浮点值A瑟一个第二浮点值B的加法/减法提供了下述运算:如果所述值A的幂指数较所述值B的幂指数小,将所述值A对准所述值B并增/减其数值部分的一个精度,如果所述值B的幂指数较所述值A的幂指数小,则将所述值B对准所述值A并增/减其数值部分的一个精度,加/减互相对准的所述值,规范化所述加法/减法的结果。
22、根据权利要求21的一种方法,其特征在于在加/减时所述运算是在各加/减运算阶段并行计算的,并且该运算是从适合于实际加/减运算阶段的所述并行计算的运算中选择的。
23、根据权利要求9至22保任何一条的一种方法,其特征在于两个浮点值B与C的乘法是以将乘法改写为0.0+BC=V来进行的,其中V是一个常数值,它是在具有中间值A+B1C1=V的若干阶段中被改写的,其中A是上一个值V,以及所述值G1的幂指数是用加法/减法进行调整使得所述值B1的幂指数最终变成“0”,最终值中的幂指数将是值C1的最终幂指数。
24、一种对数值元素执行算术的、逻辑的与有关运算的数值算术单元,包括:
a)包含一组总线的一个输入,各总线工作于接受一张表中的一个表元素,所述表包含关于所述表中的字的指令信息,
b)连接所述总线组的一个处理设备以根据所述指令改写所述字使用所述指令信息在所述表中的所述字上执行一个运算,以及
c)在一个包括与所述输入总线组相同数目与配置的一组总线珠一个输出上提交改写的结果。
25、根据权利要求24的一种数值算术单元,其特征在于所述表中至少一个表元素是保留来包含一个指令信息的一个表示并提供在所述输入总线组的特定的一条上,以及要计算的数值表示是在所述输入总线组的其它条上提供的,并且所述处理设备是适合于以改写所述输入表中的数值薄涞执行一个计算的。
26、根据权利要求24或25的一种数值算术单元,其特征在于设置了若干电路(21、22、221、23、24、25、28、29、30、35、36、37),各适合于对所述输入总线上的所述数值表示执行一个特定的运算,来提交所述并行运算的它们的结果,以及提供以所述指令信息的控制驱动装置(27)从所有执行后的结果中选择为执行要执行的实际指令所需要的数量的执行结果。
27、根据权利要求26的一种数值算术单元,其特征在于所述表包含一个函数应用,其中,它的元素之一是一个指令码而其余的为所述指令的变元,所述处理设备以改写并将所述指令码从所述输出到所述输入重复循环下到达到最终结果来执行一条指令,以及在每次改写时,如果适用于实际计算,所述处理设备适用于改写所述表使之包含一个经修改的指令码字,如果适当,后面跟随有值字。
28、根据权利要求26或27的一种数值算术单元,其特征在于数值字的所述表示是在实际处理前以一种编码格式提供给所述单元的,并且所述控制驱动装置(27)是被提供以有关所述表示的实际编码类型的信息的。
29、根据权利要求28的一种数值算术单元,其特征在于所述处理设备适用于使用将所述数值编码为一种稠密表示的编码,即一个值的每一个编码表示只对应于一个解释值。
30、根据权利要求28或29的一种数值算术单元,其特征在于所述处理设备适合于使用表示一个整数表示和一个二进制字的一种第一类型编码。
31、根据权利要求29至30中任何一条的一种数值算术单元,其特征在于所述处理设备适合于使用表示一个浮点表示的一个二进制字的一种第二类型的编码。
32、根据权利要求29至31中任何一条的一种数值算术单元,其特征在于所述处理设备适用于使用表示一个整数表示的一个二进制字的一种第一编码以及表示一个浮点表示的一个二进制字的一种第二编码,以及所述编码是这样的使得编码以后,浮点表示是与整数表示以相同的次序提供的。
33、根据权利要求31或32的一种数值算术单元,其特征在于一个二进制编码的浮点值表示包含一个符号、幂指数符号及代码段、一个幂指数段及一个数值部分段,所述幂指数符号及代码段具有所述幂指数段与所述数值部分段之间的分界位置的一个指示,使得幂指数及数值部分段具有可变长度。
34、根据权利要求32或33的一种数值算术单元,其特征在于表示数值字的所述字是以将所述数值提供在一种稠密表示中的一种编码提供的,即一个值的每一个编码表示只对应于一个解释值。
35、根据权利要求34的一种数值算术单元,其特征在于所述稠密表示是以在浮点值的数值部分的字的一个段的前面包含一个虚拟的“1”,即并不在表示中物理地提供的一个“1”,提供的。
36、根据权利要求33或34的一种数值算术单元,其特征在于数值的所述表示是分成比特半字节的,称为精度半字节,各半字节具有予定数目的比特,当所述表示表示一个浮点值时,设置在两个精度半字节之间的所述表示的一个幂指数部分及一个数值部分之间的一个划分。
37、根据权利要求26至36中任何一条的一种数值算术单元,其特征在于设置了至少一个具有输入的运算数单元(r1、r2、r3),向运算数单元的输入提供所述数值字中的至少两个以及从所述运算执行电路中具有适于进一步执珩到该单元的一个结果输出的这些电路(35,36,37)中得出的数值,所述运算数单元由所述控制驱动装置控制进一步处理在所述运算数单元输入上的数据来改写所述数值字。
38、根据权利要求26到36中任何一条的一种数值算术单元其特征在于所述运算执行电路的输出是馈送到所述控制驱动装置(27)的输入上供所术控制驱动装置将这些输出与所述指令信息一起处理以构成用于控制至少一个运算数单元的数字控制信号。
39、根据权利要求37或38的一种数值算术单元,其特征在于所述控制驱动装置(27)在所述单元内部从所述输入到所述输出的一个数据传送中提供至少一个第一运算相位时段与一个输出相位时段,以及将来自在所述第一运算相位时段中胺控制的所述运算数电路中的元件的可能出现的进位信号馈到所述控制驱动装置(27),其控制输出在所述输出相位时段之前被所述可能出现的进位信号所改变,在所述输出相位进段中所述运算数电路中的内部单元是被控制的,所述运算数电路是能够对来自所述元件的输出进行访问的。
40、根据权利要求26至39中任何一条的一种数值算术单元,其特征在于所述控制驱动装置(27)是一个布泉门阵列。
41、根据权利要求26至36中任何一条的一种数值算术单元,其特征在于所述输入表与输同表的最大长度是在每条总线上提供一个的四个元素。
42、根据权利要求26至41中任何一条的一种数值算术单元,其特征在于数值的所述表示是分成称为精度半字节的半字节的,各有予定数目的比特,当所述表示表示一个浮点值时设置在两个精度半字节之间的所述表示的一个幂指数部分与一个数值部分之间的一个划分;以及至少一个精度译码器,该精度译码器适于在其输入上具有所述表示中提供所述幂指数/数值部分划分信息的至少一部分,并向对浮点值进行运算的元件提供起因于所述划分的控制输出。
43、根据权利要求42的一种数值算术单元,其特征在于精度译码器的数目为两个。
44、根据权利要求42或43的一种数值算术单元,其特征在于对于具有32比特的一个表示所述精度半字节的数目是8个。
45、根据权利要求33或44中任何一条的一种数值算术单元,其特征在于所述浮点值的所述表示的信息是在具有可变码长的一个代码段中给出的。
CN91105272A 1990-08-02 1991-08-02 执行算术,逻辑与有关运算的方法及数值算术单元 Pending CN1059413A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE9002558-6 1990-08-02
SE9002558A SE9002558D0 (sv) 1990-08-02 1990-08-02 Processor

Publications (1)

Publication Number Publication Date
CN1059413A true CN1059413A (zh) 1992-03-11

Family

ID=20380081

Family Applications (6)

Application Number Title Priority Date Filing Date
CN91105272A Pending CN1059413A (zh) 1990-08-02 1991-08-02 执行算术,逻辑与有关运算的方法及数值算术单元
CN91108655A Expired - Fee Related CN1027198C (zh) 1990-08-02 1991-08-02 计算装置
CN91105274A Pending CN1059225A (zh) 1990-08-02 1991-08-02 用于结构运算的运算单元
CN91105268A Expired - Fee Related CN1030018C (zh) 1990-08-02 1991-08-02 存储器中的位存储单元
CN91105946A Pending CN1062426A (zh) 1990-08-02 1991-08-02 归约处理器
CN91108565A Expired - Fee Related CN1030019C (zh) 1990-08-02 1991-08-02 相联存储器

Family Applications After (5)

Application Number Title Priority Date Filing Date
CN91108655A Expired - Fee Related CN1027198C (zh) 1990-08-02 1991-08-02 计算装置
CN91105274A Pending CN1059225A (zh) 1990-08-02 1991-08-02 用于结构运算的运算单元
CN91105268A Expired - Fee Related CN1030018C (zh) 1990-08-02 1991-08-02 存储器中的位存储单元
CN91105946A Pending CN1062426A (zh) 1990-08-02 1991-08-02 归约处理器
CN91108565A Expired - Fee Related CN1030019C (zh) 1990-08-02 1991-08-02 相联存储器

Country Status (23)

Country Link
US (6) US5379387A (zh)
EP (6) EP0541685B1 (zh)
JP (6) JPH05508725A (zh)
KR (1) KR930701818A (zh)
CN (6) CN1059413A (zh)
AT (5) ATE118640T1 (zh)
AU (6) AU8333191A (zh)
BG (3) BG97381A (zh)
CA (6) CA2087023A1 (zh)
DE (5) DE69101640T2 (zh)
ES (3) ES2056655T3 (zh)
FI (3) FI930434A (zh)
HU (3) HUT63710A (zh)
IL (6) IL99053A0 (zh)
LT (6) LTIP382A (zh)
NO (3) NO930301L (zh)
NZ (3) NZ239242A (zh)
RO (1) RO109487B1 (zh)
SE (1) SE9002558D0 (zh)
SK (2) SK391392A3 (zh)
TW (5) TW215960B (zh)
WO (6) WO1992002874A1 (zh)
ZA (6) ZA916121B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639768B (zh) * 2008-07-29 2012-07-04 索尼株式会社 用于算术处理的装置、方法和程序
CN110515658A (zh) * 2014-07-30 2019-11-29 莫维迪厄斯有限公司 用于管理可变长度指令的方法和设备

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993024888A1 (en) * 1992-05-22 1993-12-09 Massachusetts Institute Of Technology Response resolver for associative memories and parallel processors
JP3376604B2 (ja) * 1992-07-20 2003-02-10 カシオ計算機株式会社 情報管理装置
IT1270230B (it) 1994-06-16 1997-04-29 Enichem Sintesi Composizione catalitica e processo per l'alchilazione di composti aromatici
US5619711A (en) * 1994-06-29 1997-04-08 Motorola, Inc. Method and data processing system for arbitrary precision on numbers
GB2293468B (en) * 1994-09-21 1999-09-29 Sony Uk Ltd Data processing systems
JP3037089B2 (ja) * 1994-12-14 2000-04-24 川崎製鉄株式会社 連想メモリ
FR2736737B1 (fr) * 1995-07-12 1997-08-14 Alcatel Nv Dispositif de gestion de relations entre des objets
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6103579A (en) * 1996-01-31 2000-08-15 Micron Technology, Inc. Method of isolating a SRAM cell
US6750107B1 (en) * 1996-01-31 2004-06-15 Micron Technology, Inc. Method and apparatus for isolating a SRAM cell
US5964825A (en) * 1996-02-09 1999-10-12 Texas Instruments Incorporated Manipulation of boolean values and conditional operation in a microprocessor
US5706224A (en) * 1996-10-10 1998-01-06 Quality Semiconductor, Inc. Content addressable memory and random access memory partition circuit
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
ATE243390T1 (de) 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US6374346B1 (en) 1997-01-24 2002-04-16 Texas Instruments Incorporated Processor with conditional execution of every instruction
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (de) 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE19704742A1 (de) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
DE59802537D1 (de) * 1997-04-15 2002-01-31 Gmd Gmbh Frei programmierbares, universelles parallel-rechnersystem zur durchführung von allgemeinen berechnungen
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US5943492A (en) * 1997-12-05 1999-08-24 Digital Equipment Corporation Apparatus and method for generating external interface signals in a microprocessor
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6236585B1 (en) * 1998-05-13 2001-05-22 Texas Instruments Incorporated Dynamic, data-precharged, variable-entry-length, content addressable memory circuit architecture with multiple transistor threshold voltage extensions
WO2002013000A2 (de) 2000-06-13 2002-02-14 Pact Informationstechnologie Gmbh Pipeline ct-protokolle und -kommunikation
DE10081643D2 (de) * 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
US6097651A (en) * 1999-06-30 2000-08-01 Quicklogic Corporation Precharge circuitry in RAM circuit
SE516171C2 (sv) * 1999-07-21 2001-11-26 Ericsson Telefon Ab L M Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde
US6799243B1 (en) 2000-06-14 2004-09-28 Netlogic Microsystems, Inc. Method and apparatus for detecting a match in an intra-row configurable cam system
US6813680B1 (en) 2000-06-14 2004-11-02 Netlogic Microsystems, Inc. Method and apparatus for loading comparand data into a content addressable memory system
US6751701B1 (en) 2000-06-14 2004-06-15 Netlogic Microsystems, Inc. Method and apparatus for detecting a multiple match in an intra-row configurable CAM system
US6542391B2 (en) * 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6801981B1 (en) 2000-06-14 2004-10-05 Netlogic Microsystems, Inc. Intra-row configurability of content addressable memory
EP1107107A1 (en) * 1999-12-10 2001-06-13 Koninklijke Philips Electronics N.V. Parallel data processing and shuffling
AU774704B2 (en) * 2000-01-13 2004-07-08 Yutaka Yasukura Electronic information inquiring method
US6560670B1 (en) 2000-06-14 2003-05-06 Netlogic Microsystems, Inc. Inter-row configurability of content addressable memory
US6246601B1 (en) * 2000-06-14 2001-06-12 Netlogic Microsystems, Inc. Method and apparatus for using an inter-row configurable content addressable memory
US6963882B1 (en) * 2000-10-02 2005-11-08 International Business Machines Corporation Method and apparatus for processing a list structure
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
KR100413384B1 (ko) * 2000-10-24 2004-01-03 주식회사 삼양제넥스 옥피로부터 수용성 식이섬유의 제조 방법
GB2370380B (en) * 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US6990555B2 (en) * 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US6925457B2 (en) * 2001-07-27 2005-08-02 Metatomix, Inc. Methods and apparatus for querying a relational data store using schema-less queries
US7302440B2 (en) * 2001-07-27 2007-11-27 Metatomix, Inc. Methods and apparatus for statistical data analysis and reduction for an enterprise application
US7890517B2 (en) * 2001-05-15 2011-02-15 Metatomix, Inc. Appliance for enterprise information integration and enterprise resource interoperability platform and methods
US7058637B2 (en) * 2001-05-15 2006-06-06 Metatomix, Inc. Methods and apparatus for enterprise application integration
US6856992B2 (en) * 2001-05-15 2005-02-15 Metatomix, Inc. Methods and apparatus for real-time business visibility using persistent schema-less data storage
US8572059B2 (en) * 2001-05-15 2013-10-29 Colin P. Britton Surveillance, monitoring and real-time events platform
US20030208499A1 (en) * 2002-05-03 2003-11-06 David Bigwood Methods and apparatus for visualizing relationships among triples of resource description framework (RDF) data sets
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
EP1483682A2 (de) 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
WO2004034625A2 (en) * 2002-10-07 2004-04-22 Metatomix, Inc. Methods and apparatus for identifying related nodes in a directed graph having named arcs
US7017017B2 (en) * 2002-11-08 2006-03-21 Intel Corporation Memory controllers with interleaved mirrored memory modes
US7130229B2 (en) 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
DE102004013180A1 (de) * 2004-03-17 2005-10-06 Giesecke & Devrient Gmbh Speicherbereinigung (Garbage Collection) für Smart Cards
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US8335704B2 (en) * 2005-01-28 2012-12-18 Pegasystems Inc. Methods and apparatus for work management and routing
US7570503B1 (en) 2005-05-20 2009-08-04 Netlogic Microsystems, Inc. Ternary content addressable memory (TCAM) cells with low signal line numbers
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20090132232A1 (en) * 2006-03-30 2009-05-21 Pegasystems Inc. Methods and apparatus for implementing multilingual software applications
US7827451B2 (en) * 2006-05-24 2010-11-02 International Business Machines Corporation Method, system and program product for establishing decimal floating point operands for facilitating testing of decimal floating point instructions
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US7697444B2 (en) * 2007-09-07 2010-04-13 Fujitsu Limited Testing a circuit using a shared bandwidth test bus
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US10481878B2 (en) * 2008-10-09 2019-11-19 Objectstore, Inc. User interface apparatus and methods
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
US8666720B2 (en) * 2009-08-04 2014-03-04 Henry Chung-herng Chang Software extensions to a high level description language simulator to provide infrastructure for analog, mixed-signal, RF modeling and verification
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
JP2013242700A (ja) * 2012-05-21 2013-12-05 Internatl Business Mach Corp <Ibm> コード最適化方法、プログラム及びシステム
US11150721B2 (en) * 2012-11-07 2021-10-19 Nvidia Corporation Providing hints to an execution unit to prepare for predicted subsequent arithmetic operations
US9519804B2 (en) * 2013-02-05 2016-12-13 Hackproof Technologies, Inc. Domain-specific hardwired symbolic machine that validates and maps a symbol
US10303881B2 (en) 2013-02-05 2019-05-28 Hackproof Technologies Inc. Soft-wired radio (SWR) web machine
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
WO2017066427A1 (en) 2015-10-13 2017-04-20 Hackproof Technologies, Inc. Soft-wired radio (swr) web machine
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
KR102092263B1 (ko) * 2016-07-17 2020-03-24 쥐에스아이 테크놀로지 인코포레이티드 일정한 처리 시간 내에 k개의 극값을 찾는 방법
KR102467698B1 (ko) * 2016-07-26 2022-11-16 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 시스템 및 그 동작 방법
US10956572B2 (en) 2016-08-22 2021-03-23 Hackproof Technologies Inc. Domain-specific hardwired web browser machine
GB2562520A (en) * 2017-05-17 2018-11-21 John Hamlin Derrick Digital processing connectivity
US10514914B2 (en) * 2017-08-29 2019-12-24 Gsi Technology Inc. Method for min-max computation in associative memory
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
CN110690991B (zh) * 2019-09-10 2021-03-19 无锡江南计算技术研究所 一种基于逻辑树的无阻塞网络归约计算装置、方法
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL272844A (zh) * 1960-12-22
US3253265A (en) * 1961-12-29 1966-05-24 Ibm Associative memory ordered retrieval
DE1921577B2 (de) * 1969-04-28 1972-04-06 Nixdorf Computer Ag, 4790 Paderborn Trommelartige vorrichtung zn buchungs- und schreibautomaten mit greifeinrichtung zum erfassen und einziehen von kontokarten o dgl
SE374973B (zh) * 1970-02-17 1975-03-24 Western Electric Co
US3610967A (en) * 1970-02-27 1971-10-05 Ibm Integrated memory cell circuit
US3634833A (en) * 1970-03-12 1972-01-11 Texas Instruments Inc Associative memory circuit
US4503511A (en) * 1971-08-31 1985-03-05 Texas Instruments Incorporated Computing system with multifunctional arithmetic logic unit in single integrated circuit
US3878513A (en) * 1972-02-08 1975-04-15 Burroughs Corp Data processing method and apparatus using occupancy indications to reserve storage space for a stack
US3953866A (en) * 1974-05-10 1976-04-27 Signetics Corporation Cross coupled semiconductor memory cell
DE2460150C2 (de) * 1974-12-19 1984-07-12 Ibm Deutschland Gmbh, 7000 Stuttgart Monolitisch integrierbare Speicheranordnung
GB1540299A (en) * 1975-02-15 1979-02-07 Mathematik Datenverarbeitung G Computer employing reduction language
FR2337398A1 (fr) * 1975-12-30 1977-07-29 Ibm France Dispositif d'ecriture rapide pour cellules de memoire
DE3105503A1 (de) * 1981-02-14 1982-09-02 Brown, Boveri & Cie Ag, 6800 Mannheim Assoziativer zugriffsspeicher
EP0069525B1 (en) * 1981-06-30 1986-04-16 Fujitsu Limited Data processing system
US4502118A (en) * 1981-07-07 1985-02-26 Burroughs Corporation Concurrent network of reduction processors for executing programs stored as treelike graphs employing variable-free applicative language codes
US4447875A (en) * 1981-07-07 1984-05-08 Burroughs Corporation Reduction processor for executing programs stored as treelike graphs employing variable-free applicative language codes
JPS58147889A (ja) * 1982-02-26 1983-09-02 Mitsubishi Electric Corp 半導体装置
US4709327A (en) * 1983-05-31 1987-11-24 Hillis W Daniel Parallel processor/memory circuit
DE3335423A1 (de) * 1983-09-29 1985-04-04 Siemens AG, 1000 Berlin und 8000 München Schaltung zur spannungsvervielfachung
US4644464A (en) * 1984-06-05 1987-02-17 Burroughs Corporation Graph manager for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4615003A (en) * 1984-06-05 1986-09-30 Burroughs Corporation Condition concentrator and control store for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4654780A (en) * 1984-06-05 1987-03-31 Burroughs Corporation Parallel register transfer mechanism for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4785393A (en) * 1984-07-09 1988-11-15 Advanced Micro Devices, Inc. 32-Bit extended function arithmetic-logic unit on a single chip
US4734848A (en) * 1984-07-17 1988-03-29 Hitachi, Ltd. Combination reduction processing method and apparatus
JPS61107596A (ja) * 1984-10-31 1986-05-26 Nec Corp 連想記憶装置
US4598361A (en) * 1985-01-11 1986-07-01 Burroughs Corporation Allocator for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4616315A (en) * 1985-01-11 1986-10-07 Burroughs Corporation System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US5173872A (en) * 1985-06-13 1992-12-22 Intel Corporation Content addressable memory for microprocessor system
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4777622A (en) * 1985-11-26 1988-10-11 Max-Planck-Gesellschaft Zur Foerderung Der Wissenschaften E.V. Associative data storage system
JPS62134890A (ja) * 1985-12-05 1987-06-17 Matsushita Electric Ind Co Ltd 半導体記憶装置
EP0227348A3 (en) * 1985-12-11 1991-09-25 Advanced Micro Devices, Inc. Content addressable memory circuit and method
JPH0810553B2 (ja) * 1986-06-13 1996-01-31 松下電器産業株式会社 記憶回路
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US4922413A (en) * 1987-03-24 1990-05-01 Center For Innovative Technology Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data
GB8718056D0 (en) * 1987-07-30 1987-09-03 Int Computers Ltd Data processing system
JPH01223697A (ja) * 1988-03-01 1989-09-06 Mitsubishi Electric Corp 内容番地付け記憶装置
US4890260A (en) * 1988-05-11 1989-12-26 Advanced Micro Devices Content addressable memory array with maskable and resettable bits
US4928260A (en) * 1988-05-11 1990-05-22 Advanced Micro Devices, Inc. Content addressable memory array with priority encoder
US5099450A (en) * 1988-09-22 1992-03-24 Syracuse University Computer for reducing lambda calculus expressions employing variable containing applicative language code
JPH02187993A (ja) * 1989-01-13 1990-07-24 Mitsubishi Electric Corp 連想メモリ装置
GB8901924D0 (en) * 1989-01-28 1989-03-15 Int Computers Ltd Data processing system
KR910009445B1 (ko) * 1989-02-02 1991-11-16 정호선 신경회로망을 이용한 연상메모리(Associative memory)
US5072422A (en) * 1989-05-15 1991-12-10 E-Systems, Inc. Content-addressed memory system with word cells having select and match bits
US5175843A (en) * 1989-10-30 1992-12-29 General Electric Company Computer-aided design method for restructuring computational networks to minimize shimming delays
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639768B (zh) * 2008-07-29 2012-07-04 索尼株式会社 用于算术处理的装置、方法和程序
CN110515658A (zh) * 2014-07-30 2019-11-29 莫维迪厄斯有限公司 用于管理可变长度指令的方法和设备

Also Published As

Publication number Publication date
SK402592A3 (en) 1993-09-09
DE69101242T2 (de) 1994-06-01
AU8331691A (en) 1992-03-02
CN1061865A (zh) 1992-06-10
TW199213B (zh) 1993-02-01
NO930301L (no) 1993-03-23
US5379387A (en) 1995-01-03
JPH05508722A (ja) 1993-12-02
BG97381A (bg) 1993-12-24
IL99056A (en) 1994-11-11
EP0541685B1 (en) 1995-02-15
DE69101640D1 (de) 1994-05-11
IL99052A0 (en) 1992-07-15
JPH05508730A (ja) 1993-12-02
ATE105952T1 (de) 1994-06-15
AU654149B2 (en) 1994-10-27
CA2088577A1 (en) 1992-02-03
SE9002558D0 (sv) 1990-08-02
BG97385A (bg) 1993-12-24
IL99055A (en) 1994-12-29
HU9300263D0 (en) 1993-05-28
JPH05508952A (ja) 1993-12-09
US5555434A (en) 1996-09-10
FI930434A (fi) 1993-04-02
DE69101242D1 (de) 1994-03-31
EP0541684B1 (en) 1994-04-06
FI930435A0 (fi) 1993-02-01
CA2087023A1 (en) 1992-02-03
NO930301D0 (no) 1993-01-28
NO930303L (no) 1993-03-23
ES2050545T3 (es) 1994-05-16
DE69102065T2 (de) 1994-09-01
FI930435A (fi) 1993-04-02
FI930433A0 (fi) 1993-02-01
CA2086592A1 (en) 1992-02-03
CN1030018C (zh) 1995-10-11
EP0541682B1 (en) 1994-12-28
HUT63505A (en) 1993-08-30
AU8325091A (en) 1992-03-02
HU9204177D0 (en) 1993-03-29
US5241491A (en) 1993-08-31
EP0541684A1 (en) 1993-05-19
ATE116455T1 (de) 1995-01-15
DE69102065D1 (de) 1994-06-23
WO1992002875A1 (en) 1992-02-20
NZ239242A (en) 1994-12-22
AU654295B2 (en) 1994-11-03
ES2056655T3 (es) 1994-10-01
LTIP384A (en) 1994-11-25
NZ239240A (en) 1995-03-28
AU8331291A (en) 1992-03-02
ATE101933T1 (de) 1994-03-15
EP0541683A1 (en) 1993-05-19
CA2087022A1 (en) 1992-02-03
FI930433A (fi) 1993-02-01
DE69107460T2 (de) 1995-10-05
TW215959B (zh) 1993-11-11
AU8333191A (en) 1992-03-02
FI930434A0 (fi) 1993-02-01
ZA916116B (en) 1992-05-27
HUT63710A (en) 1993-09-28
US5239502A (en) 1993-08-24
CA2086591A1 (en) 1992-02-03
AU8332991A (en) 1992-03-02
LTIP380A (en) 1994-12-27
WO1992002876A1 (en) 1992-02-20
WO1992002932A1 (en) 1992-02-20
CN1030019C (zh) 1995-10-11
TW215483B (zh) 1993-11-01
EP0541685A1 (en) 1993-05-19
HU9300175D0 (en) 1993-04-28
LTIP381A (en) 1994-12-27
NO930302D0 (no) 1993-01-28
BG97386A (bg) 1993-12-24
LTIP382A (en) 1994-11-25
DE69107460D1 (de) 1995-03-23
CA2086539A1 (en) 1992-02-03
US5437049A (en) 1995-07-25
EP0541678A1 (en) 1993-05-19
EP0541682A1 (en) 1993-05-19
CN1062426A (zh) 1992-07-01
NO930302L (no) 1993-03-31
NO930303D0 (no) 1993-01-28
ES2051129T3 (es) 1994-06-01
ZA916123B (en) 1992-04-29
ATE104084T1 (de) 1994-04-15
DE69106369D1 (de) 1995-02-09
CN1059225A (zh) 1992-03-04
LTIP379A (en) 1994-11-25
SK391392A3 (en) 1994-06-08
ZA916121B (en) 1992-05-27
CN1027198C (zh) 1994-12-28
JPH05508725A (ja) 1993-12-02
AU8390291A (en) 1992-03-02
EP0548094A1 (en) 1993-06-30
IL99053A0 (en) 1992-07-15
US5325501A (en) 1994-06-28
TW215960B (zh) 1993-11-11
EP0541678B1 (en) 1994-05-18
IL99051A0 (en) 1992-07-15
KR930701818A (ko) 1993-06-12
JPH05508723A (ja) 1993-12-02
ZA916119B (en) 1992-05-27
IL99055A0 (en) 1992-07-15
IL99054A0 (en) 1992-07-15
DE69101640T2 (de) 1994-07-21
CN1058667A (zh) 1992-02-12
IL99056A0 (en) 1992-07-15
JPH05508729A (ja) 1993-12-02
IL99052A (en) 1994-12-29
ZA916118B (en) 1992-05-27
ATE118640T1 (de) 1995-03-15
TW199926B (zh) 1993-02-11
CN1059799A (zh) 1992-03-25
ZA916120B (en) 1993-01-27
EP0541683B1 (en) 1994-02-23
RO109487B1 (ro) 1995-02-28
NZ239239A (en) 1994-08-26
WO1992002877A1 (en) 1992-02-20
WO1992002874A1 (en) 1992-02-20
WO1992002933A1 (en) 1992-02-20
LTIP385A (en) 1994-11-25

Similar Documents

Publication Publication Date Title
CN1059413A (zh) 执行算术,逻辑与有关运算的方法及数值算术单元
CN1264089C (zh) 编译设备和编译方法
CN1205538C (zh) 用于多精度整数算术运算的装置
CN1174587C (zh) 最长匹配地址查询的方法和装置
CN1149496C (zh) 自适应视频信号运算处理装置
CN1702613A (zh) 蒙哥马利模乘法器
CN86107558A (zh) 具有带式随机存取存储器和地址发生器装置的单指令多数据单元阵列处理机
CN86108178A (zh) 使用动态可重构向量位片的单指令多数据单元阵列处理机
CN1179312C (zh) 显示方法
CN1139777A (zh) 处理器及其运算方法以及数据处理器
CN1684058A (zh) 处理器
CN1086521C (zh) 减小时钟信号和数据信号间失真的集成电路、系统和方法
CN1102260C (zh) 求乘数和被乘数之积的方法、系统、装置和乘法器
CN1303502A (zh) 循环寄存器文件
CN1319210A (zh) 可配置的硬件块的配置方法
CN1886744A (zh) 在可扩展的处理器架构中增加高级指令所用的方法和装置
CN1605059A (zh) 蒙哥马利乘法器中的流水线内核
CN1014188B (zh) 二~十进制加法器电路
CN1957384A (zh) 电子元件和数据处理方法
CN1468396A (zh) 并行计数器和用于执行乘法的逻辑电路
CN1272910C (zh) 半导体集成电路
CN1188947C (zh) 逻辑电路及先行进位电路
CN1930547A (zh) 用于元素的指数或标量乘法的方法
CN1901428A (zh) 用于同步数字系列/同步光纤网系统的带内前向纠错解码器
CN1752923A (zh) 混q进制、进位行数字工程方法的计算机技术方案

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication