JP3530547B2 - 結果のバイアス制御を有する最小遅延の先行1検出器 - Google Patents

結果のバイアス制御を有する最小遅延の先行1検出器

Info

Publication number
JP3530547B2
JP3530547B2 JP13870893A JP13870893A JP3530547B2 JP 3530547 B2 JP3530547 B2 JP 3530547B2 JP 13870893 A JP13870893 A JP 13870893A JP 13870893 A JP13870893 A JP 13870893A JP 3530547 B2 JP3530547 B2 JP 3530547B2
Authority
JP
Japan
Prior art keywords
bit
bits
output
multiplexer
binary word
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.)
Expired - Fee Related
Application number
JP13870893A
Other languages
English (en)
Other versions
JPH0675743A (ja
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0675743A publication Critical patent/JPH0675743A/ja
Application granted granted Critical
Publication of JP3530547B2 publication Critical patent/JP3530547B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、2進ワード中
の特定の論理値を捜し出す方法及びその回路に関し、特
に、そのような値を最小の回路遅延及びバイアス制御で
捜し出す方法及びその回路に関する。
【0002】
【従来の技術】コンピュータデータは、ワードを規定す
る一連の2進数「1」及び「0」として格納されるのが
普通であり、この場合、各2進ワードはシフトレジスタ
等の記憶装置に格納される。コンピュータ関連の演算で
は、2進数列における最初の(即ち先行する)2進数
「1」の位置を検出することが所望されることが多い。
例えば、浮動小数点の加算及び減算を行うために、また
整数を浮動小数点表現に変換するために、また浮動小数
点表現を正規化してその精度を最大化するために、先行
する「1」(以下、先行「1」と称す)の位置を検出する
ことが必要となる。
【0003】図1は、IEEE(米国電気電子学会)の倍精
度浮動小数点データ形式(ANSI/IEEE規格754−1985)を示
すものである。この形式は、インテル8087/287/387シリ
ーズ及びモトローラ68881を含むほとんど全ての浮動小
数点マイクロプロセッサに採用されており、従って、IB
Mパーソナルコンピュータを含み、これらマイクロプロ
セッサを使用するマイクロコンピュータにおいて、事実
上普遍的なものとなっている。
【0004】図1に示すデータ形式はB0〜B63の64ビ
ットから構成されている。仮数即ち小数部10は、B0
51の52ビットから成り、表現すべき数の有効数字を表
す。指数部12は、B52〜B62の11ビットから成り、仮数
10に適用される2のべき指数乗数である。べき指数は、
1024を加えることにより「バイアス」され、ビットB62
〜B52にそれぞれ対応するべき指数フィールド「011111
11111」が0の数値べき指数を表すようになっている。
従って、2進指数部12の10進相当値は−1023から+1024
までの範囲にわたり、これは、−1023と1024との間で仮
数10に2のべき指数を掛けることができることを示して
いる。更に、64ビットワード全体の最上位ビット(MSB)
B63として符号ビット14が含まれており、これは、仮数
10の符号を明示する。
【0005】Mが仮数10の値であり、Eが指数部12の値
であるとすれば、図1の64ビットワードで表される数の
値は、 ±M(BE-1024) となる。ここでBは標準基底値である。例えば、各ビッ
トが2進数字、即ち、「1」または「0」である場合に
は、基底値Bは2である。
【0006】更に精度を上げるためは、仮数10を左にシ
フトしてその仮数10の最上位ビットであるB51が「1」
になるまでべき指数12をデクリメントすることにより、
仮数10を正規化する。その結果として得られる値は、シ
フトした位置の数に等しいビットで表される精度を示
す。結果的に得られる仮数の最上位ビット B51が常に
「1」であるので、それを保持するのは冗長になる。そ
れ故、一般には、仮数10をもう1つ左の位置にシフトし
て先行「1」を棄却し、指数部12をもう一度デクリメン
トする。その結果として得られる数の精度は更に1ビッ
ト上がる。表現可能な数の範囲は、±(21)(2-1023)〜±
(21024)即ち±2.2×10-308〜±1.8×10308である。
【0007】従って、浮動小数点数の精度を最大化する
ために、先行1検出器(LOD)を使用して仮数10におけ
る先行「1」の位置を捜し出し、その位置を2進ワード
でエンコードすることが可能である。その結果として得
られるエンコード化ワードは、仮数10の最上位ビットを
1つ超えた位置、即ちビットB51の1つ左の位置に先行
「1」を位置決めしてその先行「1」を棄却することが
できるように、仮数10のシフト回数を指定する。この操
作を行うためにシフタを使用することができる。仮数を
格納するビットがエンコード化ワードの値に従ってシフ
トされ、それに応じて指数部12のビットが他の回路の助
けを借りてデクリメントされる。
【0008】先行1検出器を利用する他の例は、整数−
浮動小数点変換に関するものである。1ビットが符号ビ
ットB63で、他の63ビットが整数の値を表す64ビットB
63〜B0から成る倍精度整数の例を考察する。整数−浮
動小数点変換を実行するためには、整数の63ビットを、
図1に示す浮動小数点データ形式の52ビットの仮数10に
写像する。先行「1」が、整数形式の最上位10ビットB
62〜B53中に位置する場合には、その先行「1」がビッ
トB52にシフトされるまで整数ビットを右にシフトしな
ければならない。整数−浮動小数点変換に必要とされる
シフト数を以下の表1に示す。
【0009】
【表1】
【0010】何回シフトを行わなければならないかを決
めるこの例では、バイアス値52が使用される。従って、
先行「1」の位置が決定され、その位置の値からバイア
ス値が減算される(例えば、先行「1」の位置がB57
ある場合には57から52を減算して右へ5だけシフトした
ことになる)。表1の2列目に示す値は、変換のために
シフトしなければならない位置の数を示している。
【0011】先行1検出器(LOD)は周知のものであ
る。LODは市販されており、テキサス・インスツルメ
ンツ社の4ビットまたは8ビット優先エンコーダ、例え
ば、TI−74LS348等がある。一般に、4ビットまたは8
ビットの2進ワードで先行「1」の位置を検出するLO
Dは、それぞれ、4個または8個のゲートアレイを採用
している。1つのゲートアレイは入力として最初の最上
位ビットだけを有し、次のゲートアレイは入力として最
初の2つの最上位ビットを有し、3番目のゲートアレイ
は入力として最初の3つの最上位ビットを有し、以下同
様で、最後のゲートアレイは2進ワードの各ビットにつ
いての入力を有する。また、先行0検出器(LZD)も周
知のものであり、先行「1」の位置を決定するために使
用可能なものである。この論理を実施する8ビットLZ
D回路を図2に示す。7個のANDゲートが必要であ
り、それらのANDゲートは最大8個の入力を受容する
ことができなければならない。入力B7〜B0は、以下の
数1に示す論理方程式に従う7個のANDゲートにより
演算が行われる。
【0012】
【数1】
【0013】ここで、バーBはBの2進値の論理補数、
「&」はAND演算を表す記号、G1〜G7は個々のゲー
トの出力である。従ってG1が低レベルである場合、先
行する0が1つ存在し、先行「1」の位置がB6であ
り、またG2が低レベルである場合には、先行する0が
2つ存在し、先行「1」の位置がB5である(以下同
様)。
【0014】図2に示す8ビットLZDは上述の論理を
実行する。この構成から、LZDへの2進入力のサイズ
を大きくするには、ANDゲートはそれと同様に更に多
数の入力を受容することができなければならず、即ち、
32ビットLODには各ゲートがそれぞれ32ビットまで受
容する31個のゲートが必要になる、ということは明らか
である。このため、この構成は、多くのコンピュータ関
連演算、例えば52ビットの仮数において先行「1」を捜
し出すこと、に必要な多数の入力については実現不可能
である。しかし、大きなワードの先行「1」を捜し出す
ことが所望される場合が多いため、そのような能力を備
えた先行1検出器が設計されてきた。
【0015】例えば、32ビットLZDが、Flynn、I.著
の「Computer Arithmetic and LogicUnits」(Saunders
College Publishing, 1982, pp.120〜123(以下「Flyn
n」と称す)に記載されている。このLZDは図3に示
すものであり、図3に示すプログラム可能論理アレイ
(PLA)を使用している。しかし、PLAは、論理を実
施するために複雑な設計及び回路を備えるものである。
更に、PLAは、バイアス値制御が必要な場合に一定の
バイアス値を有する出力を生成するように変更するのは
容易でない。
【0016】このようなPLAを2つ以上組み合わせて
図3のLZDを64ビット以上に拡張することが可能であ
ることは公知のことである。このような組み合わせにつ
いてはFlynnにより開示されており、桁上げ連鎖(carry-
chain)技法と呼ばれることが多い。例えば、Flynnは、
図4に示す64ビットLZDについて述べているが、これ
は、直列に接続された図3のタイプの32ビットPLAエ
ンコーダ2個から構成されるものである。64ビット入力
の最上位32ビットが、PLA16に供給され、そのPLA
16が、それら32ビット内に先行「1」が存在するか否か
を判定する。その最上位ビット中に先行「1」が検出さ
れなかった場合、PLA16は第2のPLA18が残りの32
ビットを入力することを可能にし、先行「1」の位置を
決定することを可能にする(先行「1」が存在する場
合)。先行「1」の検出は、直列の各ビットグループに
ついて行われるので、この方法には実質的に回路遅延が
導入されてしまい、この回路遅延は、連鎖にPLAが追
加されるごとに増大する。更に、「桁上げ連鎖」構成で
既知のLODを使用して一定バイアス値を有する出力を
提供することは不可能である。
【0017】
【発明が解決しようとする課題】従って、64ビット以上
を最小限の遅延で演算することができ、しかも簡単で、
信頼性が高く、実施が容易で低コストの、多目的LOD
を提供する必要がある。本発明はこの目標を達成したも
のである。
【0018】
【課題を解決するための手段】本発明によれば、マルチ
プレクサ・ツリーに接続された出力を備えている複数の
エンコーダから成る回路が提供される。各エンコーダ
は、nビット2進ワードのWビットから成る入力を受容
し、所定の特性を有するWビットの内の1ビットの位置
を検出する。所定の特性には、例えば、検出される最初
の2進数「1」、検出される最初の2進数「0」、検出
される最後の2進数「1」、または検出される最後の2
進数「0」等がある。所定の特性を有する1ビットがW
ビット中で検出された場合には、エンコーダは、そのビ
ットの位置を示すエンコード出力を出力する。マルチプ
レクサ・ツリーは、1つ以上の連続したレベルのマルチ
プレクサから構成される。最初のレベルは、エンコーダ
の出力に接続された入力を備えており、最後のレベル
は、nビット2進ワードのnビット中の所定の特性を有
するビットの位置を示す単一出力を生成する。
【0019】好適実施例では、エンコードされた出力の
最上位ビット、及びマルチプレクサ・ツリーの連続する
各レベルからの出力は、Wビットの個々のグループ中で
所定の特性を有するビットが検出されたか否かを示すも
のとなる。所定の特性を有するビットが検出されなかっ
た場合には、回路はそのことを示す出力を提供する。
【0020】別の好適実施例では、回路の出力は、整数
−浮動小数点変換等のコンピュータ演算を実行するため
に2進ワードのnビットをシフトさせるべき位置の数を
示すものとして使用される。更に、エンコーダ及びマル
チプレクサの入力及び出力を接続する配線は、回路の出
力がバイアス値を含むように変更することができる。
【0021】更に本発明は、nビット2進ワードのnビ
ット中で所定の特性を有するビットの位置を示す方法を
提供する。本発明の方法によれば、nビットがWビット
のグループにグループ化されて、各グループのWビット
中で所定の特性を有するビットの位置を示すエンコード
出力が生成される。次いで、そのエンコード出力に基づ
いて最終出力が生成されて、2進ワードのnビット中で
所定の特性を有するビットの位置が示される。
【0022】以下に示す本発明の詳細な説明を図面と関
連して参照することにより、本発明が一層良好に理解さ
れ、またその様々な(numerous)目的及び利点が明確にな
るであろう。
【0023】
【実施例】図5は、本発明による10ビットLOD回路を
示すものである。同図の回路は、単なる例示を目的とし
て10ビットの入力を有するものを図示している。本発明
は、決してこれに限定されるものではないことが理解さ
れるべきである。むしろ、同図の回路は、任意の数の2
進入力を受容するようにも適応させることができ、本発
明はそのような回路全てを包含するものである。
【0024】エンコーダ20,22,24は、本実施例では4→
3エンコーダであり、ビットIN[9]〜IN[0]から成る10ビ
ット2進ワードの基本的なエンコードを包括的に行うも
のである。10ビットワードIN[9]〜IN[0]は、各々がWビ
ットからなる幾つかのグループへと分割される。本実施
例では、Wは4ビット/グループとなるように選択され
ており、即ち、各グループは、ビットIN[0]〜IN[3]と、
ビットIN[4]〜IN[7]と、ビットIN[8]及びIN[9]にGND[1]
及びGND[2]で示す2つの入力を加えたものである。ここ
で、前記GND[1]及びGND[2]は、エンコーダ24に4つの入
力が供給されるようにグループの補充を行うために使用
される。各4ビットグループは、入力としてエンコーダ
20,22,24に1つずつ供給される。各エンコーダ20,22,24
(W=4の場合)に関する真理値表を以下の表2に示
す。
【0025】
【表2】
【0026】上記表2の出力「XYZ」は、図5では、
エンコーダ24に関してはa1,b1,c1、エンコーダ22
に関してはd1,e1,f1、エンコーダ20に関しては
1,h1,i1として図示されている。
【0027】結果的に得られるエンコード出力の最上位
ビットは、論理「1」が入力に存在するか否かを示す。
従って、エンコード出力の最上位ビット「X」が「1」
である場合には、対応するエンコーダの入力で受信され
たWビットのグループのどこかに論理「1」が存在す
る。また、エンコード出力の最上位ビット「X」が
「0」である場合には、対応するWビットのグループに
は論理「1」は存在しない。エンコード出力の残りのビ
ット「Y」及び「Z」は、先行「1」がWビット中に存
在する場合には、その先行「1」の位置を示す。例え
ば、先行「1」が右から4番目の位置(表2の最初の項
目)にある場合には、ビット「YZ」は「11」であ
り、これは10進数4の2進相当数である。同様に、先
行「1」が右から3番目の位置(表2の2番目の項目)
にある場合には、ビット「YZ」は「10」であり、こ
れは10進数3の2進相当数である。同様に、先行
「1」が右から2番目の位置及び最初の位置(表2の3
番目及び4番目の項目)にあることが検出された場合に
は、ビット「YZ」は、それぞれ「01」及び「00」
である。
【0028】また、本発明によるLODは、マルチプレ
クサの2進ツリーも備えている。図5に示す10ビットL
ODには、連続する2つのレベルのマルチプレクサが必
要である。第1レベルはマルチプレクサ26,28から成
り、第2レベルはマルチプレクサ30から構成されてい
る。第1レベルのマルチプレクサ26,28は、3つの3ビ
ットエンコード出力a1〜i1を、2つの4ビット出力a
2〜h2に減じる。第2レベルのマルチプレクサ30は、2
つの4ビット出力a2〜h2を、単一の5ビット出力0
[4]〜0[0]に減じる。この最終出力0[5]〜0[0]は、10
ビット2進ワード中で先行「1」が検出されたか否かを
示し、また検出された場合にはその先行「1」の位置を
示す。
【0029】2進ツリーの第1レベルでは、エンコーダ
20,22からのエンコード出力(それぞれ、g1,h1
1、及びd1,e1,f1)が入力としてマルチプレクサ
26に供給され、またエンコーダ24からのエンコード出力
(a1,b1,c1)が入力としてマルチプレクサ28に供
給される。マルチプレクサ28への第2グループの入力は
接地されているので、マルチプレクサ28は、それらの入
力をWビット全てが0であったことを示すエンコード出
力であると解釈する。
【0030】位置ビット(P)もまた入力として各マルチ
プレクサに供給される。この例では、位置ビット(P)は
2進数「0」である。「0」という2進値を得る1つの
方法は、位置ビットPに対応する入力を接地することで
ある(以下、「接地された」入力は全て2進値「0」を
供給するものと仮定する)。例えば、位置ビットPは、
図5に示すように、マルチプレクサ26のGND[4]と、マル
チプレクサ28のGND[5]と、マルチプレクサ30のGND[6]と
で接地されている。従って、位置ビットPの2進値は、
これらマルチプレクサの各々について「0」となる。こ
こで、位置ビットの目的を以下に説明する。第1レベル
のマルチプレクサの各々に関する真理値表を次の表3に
示す。
【0031】
【表3】
【0032】第1レベルのマルチプレクサから結果的に
得られる出力の最上位ビットは、先行「1」が、マルチ
プレクサにエンコード出力を供給する基本エンコーダへ
の4ビット入力のいずれかで検出されたか否かを示す。
例えば、マルチプレクサ26への入力「xyz」がエンコ
ーダ22のエンコード出力d1,e1,f1であり、そのマ
ルチプレクサ26への入力「XYZ」がエンコーダ20のエ
ンコード出力g1,h1,i1である場合、マルチプレク
サ26は、「x」または「X」のいずれかが「1」であれ
ば、最上位ビット「A」が「1」である出力を生成す
る。換言すれば、エンコーダ22への入力ビットIN[7]〜I
N[4]が「0000」である場合、エンコーダ22の出力は表2
から「000」となる。また、エンコーダ20への入力ビッ
トIN[3]〜IN[0]が「1001」である場合には、エンコーダ
22の出力は表2から「111」となる。従って、マルチプ
レクサ26への入力「xyz」はエンコーダ22から「00
0」となり、マルチプレクサへの入力「XYZ」はエン
コーダ20から「111」となる。従って、表3によれば、
マルチプレクサ26からの出力の最上位ビット「A」は2
進数「1」になる。これは、「1」がビットIN[3]〜IN
[0]のグループ中に存在していたからである。
【0033】マルチプレクサ26により供給される出力の
次の最上位ビット「B」は、そのエンコード出力のどれ
が先行「1」の位置を識別するものであるかを示す。エ
ンコーダ22へのWビット入力IN[7]〜IN[4]が、エンコー
ダ20へのWビット入力IN[3]〜IN[0]に先行するので、エ
ンコーダ22からのエンコード出力が先行「1」が検出さ
れたことを示す場合には、マルチプレクサ26はエンコー
ダ20により先行「1」が検出されたか否かを考慮する必
要はない。これは、エンコーダ20により検出された
「1」は、エンコーダ22により検出された先行「1」に
必然的に続き、先行「1」にはなり得ないからである。
この結果は上に示した例に戻ることにより最も良く説明
することができる。入力ビットIN[7]〜IN[4]のうち、エ
ンコーダ22の出力「000」により示されるように「1」
として識別されたものは1つも存在しないので、先行
「1」は、もし存在すれば、入力ビットIN[7]〜IN[0]の
うちビットIN[3]〜IN[0]から見出されなければならな
い。
【0034】先行「1」が存在する場合、位置ビットP
は、マルチプレクサ26,28の出力に現れる。位置ビット
Pの値は、先行「1」がどの位置にあるかを示し、即
ち、それぞれのエンコーダの先行のWビットIN[7]〜IN
[4]の中にあるかまたは次のWビットIN[3]〜IN[0]の中
にあるかを示す。このため、先行「1」が先行のWビッ
トグループ中で検出されると、マルチプレクサから出力
される次の最上位ビット「B」の値はバーPとなり(P
が接地されている(図5参照)ので、その補数は2進数
「1」となる)、残りのビットは各々のエンコード出力
に従いグループ内の先行「1」の位置を示す。先行
「1」が先行のグループ中で検出されずに、それに続く
グループ中で検出されると、次の最上位ビット「B」の
値はPとなり、残りのビット「CD」はそのグループ中
におけるその位置を示す。再び同じ実施例に戻ると、先
行「1」が第2のグループのWビットIN[3]〜IN[0]中に
あるので、表3によりマルチプレクサ26の出力ビット
「B」は2進数「0」となる。マルチプレクサ26からの
出力の残りのビット「CD」は表3により「11」とな
る。
【0035】第2レベルのマルチプレクサ・ツリーは、
本実施例ではマルチプレクサ30から構成され、好適には
第1レベルの2つのマルチプレクサからの出力を受容す
る。例えば図5では、マルチプレクサ30は、マルチプレ
クサ26の出力(e2,f2,g2,h2)に接続された入力
と、マルチプレクサ28の出力(a2,b2,c2,d2)に
接続された入力とを備えている。その他にも、マルチプ
レクサ30は、図5のGND[6]で接地されている位置ビット
Pを受容する入力を備えている。マルチプレクサ30は、
その前のレベルのマルチプレクサ26,28と実質上同じよ
うに動作する。従って、マルチプレクサ30は次の表4に
示す真理値表を実施する。
【0036】
【表4】
【0037】本発明によるLOD回路は、そのLODに
入力される2進ワードがそのビットの数によって限定さ
れるということがなく、また、マルチプレクサ・ツリー
を構成するレベル数を用いて、使用するエンコーダ及び
マルチプレクサのサイズの釣り合いを適切に選択するこ
とにより、ゲート遅延を最小限にすることができる、と
いう点で極めて多目的であるということが理解されるべ
きである。例えば、各基本エンコーダに入力されるビッ
ト数Wは、0より大きい2の整数べき、即ち2、4、8
等でなければならない。必要なエンコーダの数Nは、L
ODに入力される2進ワードのビット数をnとすれば、
次式で表すことができる。
【0038】N=Int[n/W]+1 これに対応して、マルチプレクサ・ツリーを実施するた
めに必要なマルチプレクサの数は約N個である(場合に
よっては少いことがある)。但し、第1レベルにはN/
2個のマルチプレクサが必要になる。必要なレベル数L
は、次式の通りである。
【0039】L=Log2(X) ここで、Xは、Nに等しいかまたはNに最も近くてNよ
り小さくない2のべき乗である。例えば、N=5,6,
または7であれば、X=8である。同様に、N=8であ
れば、X=8である。従って、必要なレベル数Lは、入
力ビット数n及び各エンコーダに入力されるビット数W
によって決まる。
【0040】マルチプレクサ・ツリーの実施に使用され
るレベルが多くなるほど伝播遅延が大きくなって回路が
低速になる、ということが理解されよう。しかし、各エ
ンコーダ及びマルチプレクサの複雑さ及びコストは、そ
のサイズと共に増大し、即ちWが大きくなるにつれて増
大するから、レベル数Lを最小限にすることは必ずしも
望ましいことではない。従って、レベル数Lに釣り合わ
せてn及びWの選択を行って、時間遅延、コスト、複雑
さの点におけるLOD回路の性能を最大限にすることが
できる。
【0041】以下で説明するように、本開示のLOD回
路の配線は、マルチプレクサ・ツリーにより供給される
出力がバイアス値を含むように容易に変更することがで
きる。上述のように、LODの出力は典型的には、先行
「1」の位置に基づき2進値入力を複数位置だけシフト
させるために使用される。更に、そのシフトの目的(例
えば整数−浮動小数点変換)に応じてバイアス値を変え
ることが可能である。
【0042】図6は−3のバイアス値を供給する模範的
な10ビットLOD回路を示し、図7は+6のバイアスを
供給する模範的な10ビットLOD回路を示すものであ
る。入力及び出力を接続する配線だけが変わっているこ
とが容易に理解されよう。例えば、10ビット2進ワード
IN[9]〜IN[0]は、図5ないし図7の各々において異なる
4ビットグループに配列されている。同様に、エンコー
ダ20,22,24の出力a1〜i1は、各図において第1レベル
のマルチプレクサに供給される。−3のバイアス値を供
給する図6のLOD回路では第1レベルのマルチプレク
サ26を除くことが可能であり、従って、マルチプレクサ
30への入力「WXYZ」は、エンコーダ20の出力i1
及び、GND[10]で接地されている3つのビットにより供
給される。また、図6のマルチプレクサ30へ入力される
位置ビットPは接地されておらず、即ち、その値は、全
ての場合について2進値「0」とはならず、マルチプレ
クサ28からの出力a2であり、その値が入力ビットIN[9]
〜IN[3]によって変化するようになっていることに留意
されたい。
【0043】バイアスを提供することによる効果は以下
に示す表5から分かる。図5ないし図7のLOD回路の
それぞれへの入力である各10ビット2進ワードに関し、
その対応する出力を、2進ワードがシフトされることに
なる位置の数の10進相当値と共に、以下の表5に示す。
【0044】
【表5】
【0045】エンコーダ及びマルチプレクサは、選択さ
れたバイアス値に関わらず表2ないし表4に示した真理
値表に従って動作するので、本発明は、所望バイアス値
を有するLODを実現するための適切な配線を決定する
際の助けとなるハードウェア記述言語を用いて好適に設
計される。
【0046】例えば、以下の数2に示すコードを用いて
図5ないし図7に示すLODのいずれをも設計すること
ができる。このコードは、Cadence Design Systems, In
c.によるハードウェア設計言語である「VERILOG」を使
用して書かれたものである。なお、「VERILOG」その他
のハードウェア設計言語は周知のものである。
【0047】
【数2】
【0048】上記コードにおける記号「|」は論理OR
演算、「&」は論理AND演算、記号「〜」は「〜」に
続く2進値の補数、「^」はXOR演算を示すものであ
る。
【0049】エンコーダモジュール(エンコーダ1)、第
1レベルマルチプレクサモジュール(マルチプレクサ
1)、及び第2レベルマルチプレクサモジュール(マルチ
プレクサ2)は、n=10ビット2進ワード及びW=4ビッ
トグループの全てについて有効である。従って、如何な
るバイアス値が選択された場合であっても、真理値表及
びコードは変わらない。配線は、マルチプレクサ・ツリ
ーの出力「ABCDE」が既選択バイアス値に関して所
望出力を供給するまで変更される。例えば、0、−3、
及び+6のバイアスに関する所望出力は表5に示されて
いる。
【0050】本発明による方法は、他の回路によって実
施することができ、また、ソフトウェアで実施すること
さえ可能である。nビット2進ワードのnビットは、W
ビットグループとして配列される。10ビット2進ワード
及びW=4の実施例を用いた場合、Wビットの各グルー
プは表2に示した真理値表に従ってエンコードされる。
このようなエンコードを行うソフトウェアは、VERILOG
で書かれた上述のエンコーダモジュール(エンコーダ1)
に似ている。同様に、本発明の方法は、このエンコード
ステップを行うのにエンコーダを必要とするものではな
く、真理値表に従って動作する回路なら何でもよい。
【0051】本発明の方法によれば、エンコード出力
は、異なる2つのエンコード出力を有するグループに配
列される。偶数のエンコード出力が存在しない場合、即
ちNが奇数である場合には、グループを形成するために
別のビットが設けられ、例えば接地ビットがグループの
第2のエンコード出力として設けられる。各グループの
ビットは、表3に示した真理値表に従って演算が行われ
るか、または上述のVERILOGモジュール(マルチプレク
サ1)と同様のコードを用いて実行されて第1レベルの
出力を生成する。その第1レベルの出力は、次いで異な
る2つの第1レベル出力を有するグループに配列され
る。再び、接地ビットの追加出力をこれらグループの1
つを形成するのに使用できることが理解されるべきであ
る。この例では、マルチプレクサ30の入力に対応する1
グループしか存在しない。このグループは、次いで上記
表4の真理値表に従って出力を生成するように(または
上記VERILOGモジュールMUX2と同様のコードを使用し
て)演算が行われる。
【0052】また、本発明が、先行する「0」を検出す
るように、または最後尾の「1」または最後尾の「0」
を検出するように、容易に修正可能であることも理解さ
れるべきである。本発明を特定の実施例を参照して説明
し図解してきたが、当業者であれば、上記で説明し及び
特許請求の範囲で示した本発明の原理から逸脱すること
なく修正及び変形を行うことが可能であることが理解さ
れよう。
【0053】
【発明の効果】本発明は上述のように構成したので、最
小限の遅延で演算することができ、しかも簡単で、信頼
性が高く、実施が容易で低コストの、多目的LODを提
供することが可能となる。
【図面の簡単な説明】
【図1】浮動小数点表現に関する従来のデータ形式を示
す説明図である。
【図2】従来の8ビットLZD回路を示す回路図であ
る。
【図3】従来の32ビットLZD回路を示す回路図であ
る。
【図4】従来の64ビットLZD回路を示す回路図であ
る。
【図5】本発明の第1実施例としてのバイアスを有さな
い10ビットLOD回路を示す回路図である。
【図6】本発明の第2実施例としての−3のバイアス値
を有する10ビットLOD回路を示す回路図である。
【図7】本発明の第3実施例としての+6のバイアス値
を有する10ビットLOD回路を示す回路図である。
【符号の説明】
20,22,24 エンコーダ 26,28,30 マルチプレクサ IN[9]〜IN[0] 10ビット2進ワード
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−283624(JP,A) 特開 昭64−19430(JP,A) 特開 平2−186443(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/00

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】a)nビット2進ワードを受容すると共に複
    数のWビットグループ中のnビット2進ワードの全ビッ
    トについて同時に演算を行うための入力を備えたエンコ
    ーダ手段であって、前記Wが前記nより小さく、前記W
    ビットグループの各々におけるビットの何れか1つが選
    択された特性を有するか否かの指示を出力に提供するよ
    う演算を行うことが可能であり、その指示が肯定であっ
    た場合にその対応するWビットグループ中の前記選択さ
    れた特性を有するビットの位置の指示を提供する、エン
    コーダ手段と、 b)該エンコーダ手段からの出力を受容する入力を備え、
    その受容と同時に演算を行って、nビット2進ワードに
    おいて前記選択された特性を有するビットが最初に発生
    した位置を指示する出力を提供する、マルチプレクサ手
    段とを備え、前記エンコーダ手段が複数のエンコーダを含み、該エン
    コーダの各々が前記Wビットグループのうちの異なる1
    つからビットを受容し、 前記マルチプレクサ手段が複数の階層を有するツリーを
    規定するように構成された複数のマルチプレクサを含
    み、前記ツリーの最初の階層が前記エンコーダ手段から
    の出力を受容し、後続の階層の各々が前記ツリーの先行
    する階層からの出力を受容するように構成される、回
    路。
  2. 【請求項2】前記選択された特性が、 a) 各Wビットグループ中の最初の「1」、 b) 各Wビットグループ中の最初の「0」、 c) 各Wビットグループ中の最後の「1」、及び、 d) 各Wビットグループ中の最後の「0」のうちの1つ
    からなる、請求項1に記載の回路。
  3. 【請求項3】前記エンコーダ手段からの出力が前記Wビ
    ットグループのうちの各々1つに対応するbビットグル
    ープを含み、前記bビットグループの各々の最上位ビッ
    トは対応するWビットグループ中のいずれか1ビットが
    前記選択された特性を有しているか否かを示し、該bビ
    ット中の残りのビットは前記選択された特性を有するビ
    ットの位置を示す、請求項1に記載の回路。
  4. 【請求項4】前記エンコーダがN個存在し、前記マルチ
    プレクサがN個以下であり、前記ツリーの最後の階層が
    1つのマルチプレクサしか有しない、請求項1に記載の
    回路。
  5. 【請求項5】「Int」が整数部分を意味し、「n」を
    nビット2進ワードのビット数とし、「W」をWビット
    グループの各々におけるビット数としたときに、前記エ
    ンコーダの個数NがInt(n/W)+1の関係式で決
    まる、請求項4に記載の回路。
  6. 【請求項6】前記Nの値以上で前記Nの値に最も近い2
    の冪乗数をXとしたときに、前記ツリーにおける前記マ
    ルチプレクサの階層数がLog 2 (X)である、請求項
    4に記載の回路
  7. 【請求項7】前記マルチプレクサ手段の前記出力が、n
    ビット2進ワードを第1の形式から第2の形式へ変換す
    るために該nビット2進ワードをシフトすべき回数を指
    示するものである、請求項1に記載の回路。
  8. 【請求項8】前記第1の形式が整数形式であり、前記第
    2の形式が浮動小数点形式である、請求項7に記載の回
    路。
  9. 【請求項9】前記マルチプレクサ手段の出力がバイアス
    値を含む、請求項7に記載の回路。
  10. 【請求項10】a) nビット2進ワードを受容すると共に
    複数のWビットグループ中のnビット2進ワードの全ビ
    ットについて同時に演算を行うための入力を備えたエン
    コーダ手段であって、前記Wが前記nより小さく、前記
    Wビットグループの各々におけるビットの何れか1つが
    選択された特性を有するか否かの指示を出力に提供する
    よう演算を行うことが可能であり、その指示が肯定であ
    った場合にその対応するWビットグループ中の前記選択
    された特性を有するビットの位置の指示を提供する、エ
    ンコーダ手段と、 b) 該エンコーダ手段からの出力を受容する入力を備え、
    その受容と同時に演算を行って、nビット2進ワードに
    おいて前記選択された特性を有するビットが最初に発生
    した位置を指示する出力を提供する、マルチプレクサ手
    段とを備え、 前記マルチプレクサ手段の出力がnビット2進ワードを
    第1の形式から第2の形式へ変換するために該nビット
    2進ワードをシフトすべき回数を指示するものであって
    バイアス値を含むものである、回路。
JP13870893A 1992-06-09 1993-06-10 結果のバイアス制御を有する最小遅延の先行1検出器 Expired - Fee Related JP3530547B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/896,529 US5304994A (en) 1992-06-09 1992-06-09 Minimal delay leading one detector with result bias control
US896529 1992-06-09

Publications (2)

Publication Number Publication Date
JPH0675743A JPH0675743A (ja) 1994-03-18
JP3530547B2 true JP3530547B2 (ja) 2004-05-24

Family

ID=25406368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13870893A Expired - Fee Related JP3530547B2 (ja) 1992-06-09 1993-06-10 結果のバイアス制御を有する最小遅延の先行1検出器

Country Status (2)

Country Link
US (1) US5304994A (ja)
JP (1) JP3530547B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471410A (en) * 1994-10-14 1995-11-28 International Business Machines Corporation Method and apparatus for sticky and leading one detection
US5905663A (en) * 1997-06-02 1999-05-18 Hewlett-Packard Company Minimal circuit for detecting loss of precision in floating point numbers
US7148821B2 (en) * 2005-02-09 2006-12-12 Intel Corporation System and method for partition and pattern-match decoding of variable length codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677625A (en) * 1985-03-01 1987-06-30 Paradyne Corporation Distributed trellis encoder
US5144304A (en) * 1989-07-17 1992-09-01 Digital Equipment Corporation Data and forward error control coding techniques for digital signals
US5115240A (en) * 1989-09-26 1992-05-19 Sony Corporation Method and apparatus for encoding voice signals divided into a plurality of frequency bands
US5097261A (en) * 1989-11-22 1992-03-17 International Business Machines Corporation Data compression for recording on a record medium

Also Published As

Publication number Publication date
JPH0675743A (ja) 1994-03-18
US5304994A (en) 1994-04-19

Similar Documents

Publication Publication Date Title
JP3541066B2 (ja) コンピュータにおいて除算および平方根計算を実施するための方法および装置
EP0233635B1 (en) Variable shift-count bidirectional shift control circuit
JP2662196B2 (ja) 演算結果正規化方法及び装置
EP0472139B1 (en) A floating-point processor
Shirazi et al. RBCD: Redundant binary coded decimal adder
JPH06236252A (ja) 浮動小数点数の仮数部の先行ゼロの数を検出する先行ゼロ2段及び多段検出ユニット、浮動小数点左シフト仮数正規化ユニット及び先行ゼロの数を検出する方法
US6205461B1 (en) Floating point arithmetic logic unit leading zero count using fast approximate rounding
US6981009B2 (en) Apparatus and method for computing a logarithm of a floating-point number
US5337266A (en) Method and apparatus for fast logarithmic addition and subtraction
EP0416308A2 (en) Rectangular array signed digit multiplier
JPH0659858A (ja) 浮動小数点演算装置
JP3530547B2 (ja) 結果のバイアス制御を有する最小遅延の先行1検出器
US5251164A (en) Low-power area-efficient absolute value arithmetic unit
EP0609673B1 (en) A mantissa addition system and method for a floating point adder
US11119731B2 (en) Apparatus and method for rounding
JP3356613B2 (ja) 加算方法および加算器
US6546411B1 (en) High-speed radix 100 parallel adder
EP0332215B1 (en) Operation circuit based on floating-point representation
US20170293467A1 (en) Apparatus and method for supporting a conversion instruction
US5379244A (en) Small-sized, low power consumption multiplication processing device with a rounding recoding circuit for performing high speed iterative multiplication
US5905663A (en) Minimal circuit for detecting loss of precision in floating point numbers
WO1991000568A1 (en) Conditional-sum carry structure compiler
US5754458A (en) Trailing bit anticipator
Koç A Tutorial on p-adic Arithmetic
US5408427A (en) Detection of exponent underflow and overflow in a floating point adder

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040301

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090305

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100305

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees