JPS5811652B2 - 演算ユニツト - Google Patents

演算ユニツト

Info

Publication number
JPS5811652B2
JPS5811652B2 JP51067876A JP6787676A JPS5811652B2 JP S5811652 B2 JPS5811652 B2 JP S5811652B2 JP 51067876 A JP51067876 A JP 51067876A JP 6787676 A JP6787676 A JP 6787676A JP S5811652 B2 JPS5811652 B2 JP S5811652B2
Authority
JP
Japan
Prior art keywords
binary
circuit
decimal
field
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.)
Expired
Application number
JP51067876A
Other languages
English (en)
Other versions
JPS52143A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS52143A publication Critical patent/JPS52143A/ja
Publication of JPS5811652B2 publication Critical patent/JPS5811652B2/ja
Expired 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/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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/494Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/492Indexing scheme relating to groups G06F7/492 - G06F7/496
    • G06F2207/4924Digit-parallel adding or subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 本発明は、デジタル・コンピュータで使用される演算ユ
ニットに関し、更に具体的には2進数及び2進化10進
数を加減算するデジタル・データ・プロセッサに関する
多くのデジタル・コンピュータ及びデジタル・データ処
理機は、10進演算及び古典的な2進演算の両者を行う
ことができる。
多くの適用例では、(特にビジネス及び商業計算におい
て)10進演算を使用する明確な利益がある。
しかし現在市場に出されているデータ・プロセッサにお
いて、10進演算の効率は、2進演算と比較して非常に
悪い。
本発明の目的は、データ・プロセッサに高速度で10進
演算を遂行せしめる演算ユニットを提供することである
本発明の演算ユニットは、等しい幅のオペランドを使用
した場合、対応する2進演算動作の速度に匹敵する速度
を有する。
本発明の1つの特徴に従って、10進動作を遂行する速
度は、予めゾーン形式のデータをパック形式へ変換する
ことなく、直接にゾーン形式の10進データ上で動作し
得る演算ユニットを設けることによって改善される。
この事を十分に評価するためには、データ・プロセッサ
との間でデータの授受を行う現在の多くの入出力装置が
、周知のEBCDICコードに従ってコード化された8
ビツト2進コード文字形式でデータを授受するように構
成されていることを認識すべきである。
各各のそのような8ビツト文字は、1つの英字、1つの
逆字、又はドル符号、セミコロンの如き記号を表わす。
数字の場合、高順位の4ビツトはゾーン・フィールドと
呼ばれ、低順位の4ビツトはデジット・フィールドと呼
ばれる。
もしデジット・フィールドの4ビツトが8−4−2−1
の2進化10進形式における10進数を表わすならば、
ゾーン・フィールドにおける4ビツトのコードは111
1である。
各数字について、この8ビツトゾーン・デジット構成を
有する数字データは、ゾーン形式にあると云われる。
以上の説明から分るように、演算を遂行するためには、
4ビツトのデジット・フィールドのみが関係する。
入力装置からの数字データは、通常ゾーン10進形式で
データ・プロセッサへ来るので、ゾーン10進数(ゾー
ン形式にある2進化10進数)を演算ユニットへ与え、
そのようなゾーン10進数について所望の加減算を行い
、ゾーン10進数で答を出し、この答について特別の処
理をそれ以上行うことなく出力装置へ送ることが望まし
い。
残念ながら、現在のデータ・プロセッサはこのようなこ
とを行なうことはできない。
演算ユニットにゾーン・フィールド・ビットが存在する
ことは、演算に混乱を生じさせる。
多くのデータ・プロセッサにおいて、演算を遂行する前
にゾーン10進データがパック10進形式へ変換される
ことが行われる。
この事は、ゾーン・フィールド・ビットを取り去って、
デジット・フィールド・ビットのみを使用することによ
って達成される。
所望の演算動作を遂行した後、結果のデータはそれが出
力装置へ送られる前にゾーン形式へ戻されねばならない
この変換はアンパックと呼ばれる。
パック及びアンパックの手順は時間を消費する。
本発明はこのような必要性を無用ならしめるものである
本発明は、ゾーン10進形式の数字データを有効な入力
として受取り、所望の10進動作を行い、その結果をゾ
ーン10進形式で出力する。
過去において、ゾーン10進データと共に動作し得る演
算ユニットが提案されたことがあった。
この提案の例は、′米国特許第3752394号に見出
される。
この特許は、演算動作が1バイト(又は8ビツト)借用
(borrow)型ルック・アヘッド減算器によって遂
行される演算ユニットを説明する。
ゾーン10進数を処理する場合、借用ルック・アヘッド
回路は内部的に変更され、ゾーン・フィールド・ビット
のための借用ルック・アヘッド回路が迂回され、最高順
位デジット・フィーリド・ビットのための借用信号が、
全体としての文字又はバイトのための借用信号として使
用される。
多デジット・ゾーン10進数を加減算する時、連続的な
高順位デジット位置に対する個々のゾーン・デジットが
連続する機械サイクルで加減算され、1つの機械に対す
る文字借用アウト(borrow−out )が保存さ
れ、次の機械サイクルに対する文字借用イン(borr
ow−in)として使用される。
このような場合、ゾーン・フィールド借用ルック・アヘ
ッド借用ルック・アヘッド段階の迂回は、ゾーン・フィ
ールドが計算を混乱させるのを禁止する。
しかし、この事は速度上の犠牲をともなって行われる。
特に、ゾーン・フィールド段階の迂回を可能ならしめる
回路は、1つの文字(即ち、バイト)について2段階の
遅延を生じる。
これに比較して、本発明に従って構成された演算ユニッ
トは、この種の遅延を無用ならしめ、よって多バイト又
は多デジットのゾーン10進数を処理するのに適したも
のと云える。
更に、本発明は、2つの多デジット・ゾーン10進数の
全てのデジットをして1つの同一機械サイクルで加減算
ならしめる。
勿論、数字のビット幅は演算ユニットのデータ・フロー
幅を越えないことを条件とする。
本発明の他の特徴に従えば、10進動作の速度は、プロ
グラム命令が「加算」を命令したにも拘らず「減算」を
遂行する時点(又はその逆)を知るのに必要なハードウ
ェアを組込まれた演算ユニットを設けることによって改
良される。
処理される10進数は、正の場合もあるし、負の場合も
ある。
その結果、2つの10進数を加えることは、演算ユニッ
トへ2つの入力遂又はオペランドを与え、単純にその演
算ユニットに「加算」を命令するわけにはいかない。
10進数は真の大きさの形態(trne magni
tude form)で与えられ、その符号位置はオペ
ランドが正であるか負であるかを指定する。
従って、もし加算動作が望まれ、1つのオペランドが正
であり、他のオペランドが負であれば、真の大きさの形
態で正しい結果を計算するために、演算ユニットは減算
動作を遂行すべきである。
逆に、異った符号のオペランドについて減算動作が望ま
れるならば、正しい出力を得るためには、演算ユニット
は加算動作を遂行すべきである。
現在の汎用目的データ処理機械の大多遂は、マイクロプ
ログラム式(マイクロコード式)である。
このような機械では、10進オペランドの符号解釈は実
際の演算ユニット動作に先立ってマイクロコード・ブラ
ンチによってなされ、演算ユニットに入る前に、符号は
マスク・オフされる。
同様に、望まれる結果の符号は、演算ユニットの動作の
後にマイクロコードによって再挿入される。
演算ユニット・ハードウェアは、マイクロプログラム命
令に対して従属的に動作し、符号コードが前もって除去
された後に有効な10進デジツト・コードのみを与えら
れる。
このように、10進符号処理機能の各々をマイクロコー
ドで遂行するので、10進動作の効率は2進動作と比較
して非常に悪くなる。
本発明の顕著な特徴は、演算ユニットそれ自体に正しい
演算動作を自動的に遂行せしめるハードウェア機構を設
けたことであり、かくて従来使用された時間のかかるマ
イクロコード・ステップは不必要となる。
第1図の演算ユニットの説明 第1図は、本発明に従って構成されるデジタル演算ユニ
ットのための構成例を示す。
第1図は、ゾーン10進形式又はパンク10進形式にあ
る多デジット2進化10進数について、演算動作を遂行
する演算ユニット10を示す。
更に、演算ユニット10は、2進演算動作及びその他の
通常のデータ処理動作を遂行するためにも用いられる。
演算ユニット10は、マイクロプログラム式又は非マイ
クロプログラム式であるかを問わず、大型汎用目的デジ
タル・データ処理機械の演算及び論理ユニット(ALU
)部分において特に有用である。
1つの例であるが、第1図の機能データ・フロー・ユニ
ット及びデータ・フロー・バスは、4バイト(32ビツ
ト)のデータ・フロー幅を有用するものと仮定される。
しかし、ここで説明される基本的手法は、これにより大
きい又は小さい幅のデータ・フローについても適用可能
である。
データ・フローの幅が大きくなれば、本発明を使用して
実現される効率の改善はそれだけ大きくなろう。
演算ユニット10の入側及び8個入力データ・バス11
,12へ与えられる数(オペランド)は、ゾーン10進
、パンク10進形式、通常の2進形式のいずれにあって
もよい。
10進形式の性質は4バイト(32ビツト)の幅を有す
るオペランドについて第2図に示される。
ゾーン10進形式13は、一連のM個の2進ビツトがN
ビットのゾーン・フィールドとNビットのデジット・フ
ィールドとに交互に分割されている。
本実施例において、M−32、N=4である。
ゾーン・フィールドは14a、14b、14c、14d
で示され、デジット・フィールドは15a、15b、1
5c。
15dで示される。
デジットの有意性(signi−ficaoce)は右
から左へ増大し、最も有意の(高順位の)デジットは左
にあり、最も有意性の少ない(低順位の)デジットは右
にある。
ゾーン・フィールド14dは、最少有意デジット・フィ
ールド15dに隣接して極性指示の符号フィールドとし
て使用され、その4ビツトのコードは多デジット数が正
であるか負であるかを示す。
ゾーン10進データの各バイトは8個の2進ビツトより
成り、4個の高順位ビットはゾーン・フィールドであり
、4個の低順位ビットはデジット・フィールドである。
かくて、例えはバイト0はゾーン・フィールド14aと
デジット・フィールド15aとより成る。
ゾーン10データの各々の8ビツト・バイトはEBCD
ICコードの1つの文字に対応する。
このEBCDICコードは、データ処理機械との間でデ
ータの授受を行う現在の入出カニニットの大多数によっ
て使用されているものである。
数字データの場合、各々の4ビツト・デジット・フィー
ルドは1つの10進デジツトを表わし、そのビットは既
知の「8−4−2−I 」 2進化10進コードに従っ
てコード化される。
このコードを以下の表1に示す。
数字データについては、EBCDICのゾーン・コード
は1111である。
即ち、ゾーン・フィールドの4個のビットの各々は1の
2進値を有する。
10進オペランドにおいて、符号フィールド14dにつ
いて許される符号コードは表2に示される。
これらのゾーン、デジット、符号コードを使用して、4
デジツトの正の10進数+1975は、ゾーン10進形
式では次の如き32個の2進デジツトで表現される。
ここで、1111は+符号として使用される。
1111000111111001111101111
1110101 種々の目的のため、ここでは16進数(ベースは16)
表現を使用することが適宜である。
10進数と16進数の関係、及び16進デジツトについ
ての4ビツト2進コードは表3に示される。
この16進表現を使用すれば、ゾーン10進形式の10
進数+1975は次の如く表わされる。
PIF9F7F5 ここで16進(、hex )デジットFは、1111の
ゾーン・フィールド・コードを示すために使用される。
この16進表現は、実際の2進表現よりも使用するのに
容易であり、かつ視覚的であるので、本明細書中で度々
使用することにする。
表1及び3を見れば明らかな如く、デジット0−9につ
いての2進コードは10進及び16進のいずれにおいて
も同一である。
表3から分るように、16進では4ビツトについて生じ
る1及び0の全ての可能な組合せを使用する。
かくて、4ビツト構成は、実際には16進構成である。
このため、本明細書中、4ビツト・フィールドは16進
(hexadecimal又はhex)フィールドと呼
ぶことがある。
特に、一般的な表示のため第2図の8個の4ビツト・フ
ィールド位置は、heXフィールド0−7として指定さ
れる。
hexフィールド0は、最高順位フィールドであり、h
exフィールド7は最低頭位フィールドである。
2進化10進数に対するパンク10進形式は、第2図の
16で示される。
一連の32個の2進デジツト(又はビット)は、8個の
4ビツト・フィールドに分割される。
この場合、各々の4ビツト・フィールドは最低順位フィ
ールドを除いてデジット・フィールドである。
即ち、hex7フイールドは、数が正か負かを示すため
に使用される極性表示の符号フィールドである。
各デジット・フィールドは、表1に示される2進化10
進コードを使用する。
符号フィールドは、表2に示される2進コードを使用す
る。
パック2進化10進形式の10進数+1975は、次の
ようになる。
00000001 10010111 01011100 ここで、符号コード1100は正の符号を示すために使
用される。
hex表現を使用すると、これは次のようになる。
1975C 2進表現における4個の最初の七狛は、hex表現にお
ける1つの最初のゼロに対応する。
これらは、ビットの全体の数をバイトの統一的な数に対
応させるために使用される。
現在の大多数のデータ・プロセッサは、バイト単位で動
作し、部分的バイトは許されないからである。
典型的なデータ・プロセッサにおいて、数字データは入
力装置からゾーン10進形式で受取られる。
そのようなデータは、演算動作を遂行される前に、パン
ク10進形式に変換される。
この事は。ゾーン・フィールドを除去し、符号フィール
ドの相対的位置を変え、次いで第2図に示される如く隣
接した相互位置に結果のデジット・フィールドと符号フ
ィールドとを並べることにより達成される。
所望の演算動作が遂行された後、結果の数は出力装置へ
転送する適当な形式にするため、ゾーン10進形式へ変
換される。
第1図の演算ユニット10の特徴は、データをパック形
式へ最初に変換することなく、直接にゾーン形式の10
進データ上で動作することである。
もし所望ならば、演算ユニット10はパック形式の10
進データ、純粋の2進データのいずれの上でも動作し得
る。
本発明に従って構成された演算ユニットは、演算動作の
結果を表す出力Mビット2進ビット・シーケンスを発生
するために、2個のMビット2進ビット・シーケンスを
算術的に結合する2進演算回路を含む。
第1図の実施例では、この2進演算回路は、2つの入力
ビット・シーケンスの合計を表す出力32ビツト2進ビ
ツト・シーケンスを発生するため、2つの32ビツト2
進ビツト・シーケンスを同時に加算するキャリールック
・アヘッド型並列2進加算器20を含む。
2進加算器20は、2つの純2進数を加算するのに適し
た直接式形式% ド構成を有する。
それは、ゾーン10進数を処理する特別の回路を備えて
いない。
それは、2つの入力側へ与えられた2進ビツト・シーケ
ンスを処理するに当って、あたかもそれらが2つの純2
進数であるかの如く処理し、結果の出力ビット・シーケ
ンスは、純2進ベースで2つの入力ビット・シーケンス
の合計を表わす。
更に演算ユニット10は、第1の多デジット2進数(オ
ペランド)を受取り、それを2進加算器20の第1入力
へ与える第1入力回路を含む。
この第1入力回路は、A入力データ・バス11(これは
、32個の入力データ・ビットは適合した32本の導線
を有する。
)、32段Aレジスタ21.32本導線データ・バス2
2.32段A入力修正回路23.32本導線データ・バ
ス24(これは、32ビツト・データ・ビット・シーケ
ンスを2進加算器20の左側又はA個入力へ送る。
)を有する。A入力修正回路23は、4つの可能な動作
モード又は動作条件を有する。
もし演算ユニット10が、純2進数を処理しているので
あれば、A入力修正回路23は、その2進数を修正なし
に加算器20の左側入力に送るだけである。
もし演算ユニット10が、ゾーン2進化10進数を処理
しているのであれば、修正回路23はその数を修正する
ように働き、ゾーン及び符号フィールドの非ゼロ・ビッ
トをしてゼロの2進値をとらしめる。
この事は、ゾーン及び符号フィールド中の各ビットにゼ
ロの2進値を強制的にとらせることによって達成される
デジット・フィールド位置のビットは、;修正されない
次いで、結果のビット・シーケンスは加算器20の左側
入力へ与えられる。
パック10進数の場合、修正回路23はその符号フィー
ルド部分のみを修正する。
具体的には、修正回路23は符号フィールド位置の4ビ
ツトに、強制的にゼ狛の2進値をとらせる。
第4の動作モードは、加算器20の出力に現われる結果
の数を再補数化(recompl emen t )す
ることが望まれる場合に使用される再補数化モードであ
る。
この場合、A入力修正回路23が動作)されて、全ての
32ビツト出力がゼロ値を有するようにされる。
かくて、再補数化動作をする場合、加算器20の左側入
力へ与えられる数値はゼロである。
A入力修正回路23によって与えられる特定の動作モー
ドは、導線(制御線)26−28,30によって与えら
れた外部制御信号によって撰択される。
制御線29上の転送信号は、Aレジスタ21のオペラン
ドをA入力修正回路23及び加算器20へ通す。
更に演算ユニット10は、第2の多デジット2進化数を
受取り、それを2進加算器20の第2(右側)入力へ与
える第2入力回路を含む)この第2入力回路は、32本
導線B入カデデー・バス12.32段Bレジスタ31.
64本導線データ・バス32(Bレジスタ31の32段
の各々から来る真数及び補数の線)、32段補数B入力
修正回路33.32本導線データ・バス34(これは、
B個入力デークを2進加算器20の右側又は8個入力へ
送る。
)を含む。補数B入力修正回路33は、4つの基本的機
能を遂行する。
それらは、(1)10進数のためのゾーン乃至符号フィ
ールド修正又は先廻り条件すけ機能、(2)2進及ぎ1
0進数を減算するための補数仕機能、(3)10進数を
加算するための「+6」機能、(4)2進数を加算す。
るための1真数」機能である。
ゾーン乃至符号フィールド先廻り条件ずけ機能は、2進
化10進数の場合に使用され、ゾーン及び符号フィール
ドのゼロビットに1の2進値をとらしめ、次いで結果の
1111(ゾーン及び符号。
フィールド)を加算器20の右側入力へ与える。
ゾーン10進数の場合、この事は、ゾーン及び符号フィ
ールドの各ビットに1の2進値をとらしめることによっ
て達成される。
パンク10進数の場合、この事は、符号フィールドの各
ビットに1の。
2進値をとらしめることによって達成される。
補数化機能は、演算ユニット10をして減算動作をとら
しめるために使用される。
減算は、A個入力オペランドを8個入力オペランドの補
数へ加えることによって遂行される。
2進数については、。ユニット33がBレジスタ31の
オペランドの補数を加算器20の右側入力へ与える。
10進オペランドについても同様であるが、そのデジッ
ト・フィールド部分のみについてなされる。
ゾーン及び符号フィールドは、前述した1を強制する先
廻り条件ずけ動作に従う。
「+6」機能は、10進数を加算する時に使用される。
かくて、ゾーン又はパック10進数を加算する時、B入
力修正回路33は、デジット・フィールドの各々におけ
る数値が6だけ増加されるように動作する。
これは、2進加算器20の中でデジット・キャリーを適
当に発生させるためになされ、10進(ベースは10)
と16進(ベースは16)との数値系の相異により必要
となる。
換言すれば、4ビツト・デジット・フィールドは、加算
器20の見地からすれば、16進系であり、入来する1
0進数は10進系である。
所与のデジット位置において、加数されつつある10進
デジツト値の1つへ6を加算することによって、そのデ
ジット位置に対する4ビツト加算器部分は、2つの10
進デジツト値の合計が、10の10進値に等しいか又は
それを越える時デジット・フィールド・キャリー・アウ
トを発生する。
勿論この事は、2つの10進デジツトを加算する時に望
まれる結果である。
10進数を減算する時には、6を加える必要はない。
何故ならば、補数化動作は、正しいデジット・キャリー
・アウトを発生するに当って、2つの数値系の相異を自
動的に考慮に入れるからである。
具体的には、ユニット33の補数動作は、各科の4ビツ
ト・デジット・フィールドの15の補数をとる。
10進デジツトについては、この事は9の補数をとり6
を加えることに等しい。
「真数」機能は、2進数を加算する時に使用される。
この場合、ユニット33はBレジスタ31のオペランド
が真の(修正されない)形式で加算器20の右側入力へ
与えられるようにする。
かくて、2進数を加算する時、ユニット33は8個入力
オペランドを修正なしに加算器20の右側入力へ与える
2進数を減算する時、ユニット33は8個入力オペラン
ドの補数を加算器20へ与える。
・/−ン10進数を加算する時、ユニット33は6を各
デジット・フィールドへ加え、同時時にゾーン及び符号
フィールドの各ビットに1の2進値をとらしめる。
ゾーン10進数を減算する時、ユニット33はデジット
・フィールドを補数化し、同時にゾーン及び符号フィー
ルドの各ビットに1の2進値をとらしめる。
パック10進数を加算する時、ユニット33は6を各デ
ジット・フィールドへ加え、同時に符号フィールドの各
ビットに1の2進値をとらしめる。
パック10進数を減算する時、ユニット33は各デジッ
ト・フィールドを補数化し、同時に符号フィールドの各
ビットに1の2進値をとらしめる。
ユニット33で遂行される特定の動作は、部分的には制
御線26−28によって与えられる外部制御信号によっ
て決定される。
制御線36上の転送信号は、Bレジスフ31に含まれる
オペランドについて、修正ユニット33の選択された動
作を開始する。
前記の説明から、ゾーン10進数について演算動作をす
る場合、ゾーン及び符号フィールド・ビットは、数が加
算器20へ与えられる前に先廻り条件ずけをされること
が分る。
具体的には、A個入力オペランドのゾーン及び符号フィ
ールド・ビットは、全て2進のゼロ値へ設定され、8個
入力オペランドのゾーン及び符号フィールド・ビットは
全て2進の1値へ設定される。
この先廻り条件ずけは、加算器20内で加算を遂行する
間にデジット・キャリーがゾーン及び符号フィールドを
正しく伝播することを可能ならしめる。
この結果、加算器20によって発生された出力ビット・
シーケンスのデジット・フィールドは、もしゾーン及び
符号フィールドが最初存在していなかった場合に有する
のと同一の値を有する。
パック10進数については、符号フィールドの先廻り条
件ずけが与えられ、加算器20で加算が遂行される間、
符号フィールドを通って外部キャリー・イン信号の正し
い伝播が行われる。
更に演算ユニット10は、それによって正しい演算動作
が遂行されるようにするため、10進数を処理する時、
ユニット33の真・補数・プラス6回路を自動的に制御
するために使用される符号処理回路を含む。
この符号処理回路は、符号処理器40を含む。
符号処理器40は、処理されつつある2つの10進数の
符号フィールド、及び制御線41によって外部選択信号
に応答し、出力線42の上に加減算制御信号を発生する
この信号は、補数化動作を選択的に能動化するためにユ
ニット33へ与えられる。
制御線41上の外部選択信号は、以後「動作要求」信号
と呼ばれる。
この信号は、加算が要求される時に正を示す値を与え、
減算が要求される時、負を示す値を与える。
本実症例において、正又は加算指示の値は、制御線41
上の2進Oレベルによって表わされ、負又は減算指示の
値は、制御線41上の2進ルベルによって表わされる。
A個入力オペランドのための10進符号フィールドは、
8本導線データ・バス44によって、符号処理器40へ
利用可能とされる。
データ・バス44は、A−レジスフ21からhex 6
フイ一ルド位置の4ビツトと、hex7フイールド位置
の4ビツトを受取る。
8個入力オペランドのための10進符号フィールドは、
8本導線データ・バス45によって符号処理器40へ利
用可能とされる。
データ・バス45は、Bレジスフ31からhex 6フ
イ一ルド位置の4ビツトと、heX7フイールド位置の
4ビツトとを受取る。
第2図に示される如く、ゾーン10進符号フィールドは
hex6フイールド位置にあり、パンク10進符号フィ
ールドはhex7フイールド位置にある。
所望の加減算制御信号を出力線42上に発生するために
、符号処理器40によって遂行される論理は表4に要約
される。
左方の「動作要求1欄にある「+」及び「−」の符号は
、制御線41上の外部選択信号用である。
加算を要求する「+」符号は、制御線41上の2進Oレ
ベルの発生を示し、減算を要求する「−」符号は制御線
41上の2進ルベルの発生を示す。
右方の「実行される動作」の欄は、加減算制御信号出力
線42上に発生される結果信号の状態を示す。
右方欄の十符号は加算を示し、本実施例では出力線42
上の2進Oレベルの発生を示す。
右方欄の一符号は減算を示し、出力線42上の2進ルベ
ルの発生を示す。
表3で示されるように、符号処理器40はユニット33
の補数回路を操作して、3つの入力極性因子偶数個が負
である時、又は負がない時、演算ユニット10にA及び
B入力オペランドの加数を行わせ、3つの入力極性因子
の奇数個が負である時、ユニット10にA及びB入力オ
ペランドの減算を行わせる。
更に、符号処理器40は、第2出力線46上に符号制御
信号を発生するための符号制御回路を含む。
この符号制御信号は、10進数を処理している時に、演
算ユニット10によって発生された最終出力の数の符号
フィールドを適当な極性に設定するために使用される。
更に演算ユニット10は、2進加算器20の出力へ接続
された出力修生回路(出力訂正回路)50を含む。
この回路は、2進加算器20によって発生された32ビ
ツト出力2進ビツト・シーケンスを受取り、ゾーン10
進数を処理している時には、ゾーン及び符号フィールド
位置が正しいゾーン及び符号コード値を有するように出
力2進ビツト・シーケンスを発生する。
本実症例において各ゾーン・フィールド位置のビットに
1の2進値を強制することによって達成される。
同時に、符号フィールド位置のビットは、符号コードを
示す極性をとるように強制される。
この強制は、制復線46上の符号制御信号の助けをかり
て達成される。
パック10進数又はオペランドを処理する時、出力訂正
器50はパンク10進符号フィールド位置のビットに適
当な符号コード値をとらしめる。
この強制動作は、制御線46上の符号制御信号に依存す
る。
ゾーン又はパック10進数と共に動作する時、この符号
制御信号は、Aレジスフ21のA入力オペランドの符号
フィールドによって示されるのと同一の極性を示すため
出力数の符号フィールドを設定する。
このため、適当な出力符号コードの1つが使用される。
2進加算器20によって発生された32ビツト出力2進
ビツト・シーケンスは、32本導線データ・バス51に
よって出力訂正器50へ与えられる。
出力訂正器50によって発生された32ビツト出力2進
ビツト・シーケンスは、32本導線データ・バス52を
介して32段出力レジスタ(Zレジスタ)53へ与えら
れる。
全体としての演算ユニット10のための出力データは、
32本導糾データ・バス54上に現われる。
データ・バス54は出力レジスタ(Zレジスタ)53の
出力側へ接続される。
ゾーン10進及びパンク10進オペランドを処理する場
合、出力訂正器50は、補数B入力修正回路33で生じ
る+6動作を相殺するため、デジット・フィールドの成
るものの数値から6だけ減することによってそれを訂正
することが必要になる場合もある。
そのような「−61の訂正は、2進加算器20で発生さ
れたhexフィールド・キヤ・リー・アウト信号の状態
を検査することによって、その必要性が決定される。
これらhexフィールド・キャリー・アウト信号は、キ
ャリー・アウト状態線C0−C7によって出力訂正器5
0へ利用可能とされる。
Coはhexフィールド0に対するキャリー・アウト状
態線であり、C1はhexフィールド1に対するキャリ
ー・アウト状態線であり、C2はhexフィールド2に
対するキャリー・アウト状態線であり、以下同様である
もし、hexフィールド・キャリー・アウトが、加算器
20における加算プロセスの間に生じるならば、対応す
る出力デジット・フィールドについて訂正は必要でない
もし加算プロセスの間にhexフィールド・キャリー・
アウトが生じなければ、対応する出力デジット・フィー
ルドからそのデジット値を6だけ減じることによって訂
正することが必要である。
本実殉例において、この6の減算は10 (hexのA
)だけデジット値を増加することによって達成される。
正しい結果が得られる理由は、10が6に対して16の
補数に当るからである。
かくて、4ビツト・フィールドの場合、10を加えるこ
とは6を減することと同じである。
この「+10」の動作は、出力訂正器50の内部で行わ
れ、それによって生じたキャリー・アウトは、次に高い
hexフィールド位置へ伝播されない。
換言すれば、各々の4ビツトhexフイールドは、別個
の存在として処理される。
32ビツト10進ビツト・シーケンスが、出力訂正器5
0へ与えられ、デジット・フィールドがhex 5にあ
るものと仮定する。
もしhex 5のキャリー・アウトが05状態線に現わ
れれば、hex5のデジット・フィールドはそのままで
よく修正されない。
もしC5状態線にキャリー・アウト信号が現われなけれ
ば、hex5のデジット・フィールドは、その値を6だ
け減少することによって、又はその値を10だけ増加す
ることによって訂正される(正確には、「A」の16進
数による。
)。ゾーン10進シーケンスの他のデジット・フィール
ドは同様に処理される。
そのような処理は、デジット・フィールドごとに遂行さ
れる。
換言すれば、特定のデジット・フィールドに対する処理
は他のデジット・フィールドに対する処理と独立してい
る。
ゾーン10進ビツト・シーケンスの場合、ゾーン及び符
号フィールド位置に対するキャリー・アウト線Co、C
2,C4,C6は、本実症例において無視される。
前述した如く、ゾーン及び符号フィールドは正しいゾー
ン及び符号コード値をとるように強制される。
パンク10進出力の場合、C7キャリー・アウトは無視
され、hex7フイールド・ビットは正しいパンク10
進符号コード値をとるように強制される。
純2進数の場合、出力訂正器50は、その数を修正しな
いように設定される。
その場合、出力訂正器50は、加算器20の出力に現わ
れる2進数をとるのみであり、それを出力レジスタ53
へ通過させる。
1つの例外を除いて、出力レジスタ53へ与えられる結
果の多デジット2進化10進数は、真の大きさの形式で
ある。
例外が生じるのは、演算ユニット10によって遂行され
つつある演算動作が減算であって、かつBレジスフ31
における8個入力オペランドの数値が、Aレジスフ21
におけるA個入力オペランドの数値よりも「大きさ」に
おいて大きい場合である。
この場合、出力レジスタ53へ与えられる結果の数は、
補数形式にあるこの数は、再補数化動作を行うことによ
り、真の形式へ変換され得る。
演算ユニット10は、再補数化動作を行う回路を含む。
具体的には、出力レジスタ53の結果の数は、ユニット
10のB側を通し、かつその数をゼ用こ等しいA個入力
値から減することによって再補数化され得る。
再補数化動作において、実行される演算動作は再補数化
されるべきレジスタ53の数の符号の如何によらず、常
に減算である更にその再補数化動作によって生じた出力
数の正しい符号は、元の出力数の符号の反対である。
換言すれば、補数形式の出力数はそれを補数化するため
にユニット10を使用し、かつ符号フィールドの値を反
転することによって真の形式へ変換される。
出力レジスタ53の多デジット2進化10進数を再補数
化するために、ユニット10は、32本導線データ・バ
ス61.32個データ・フロー・ゲー)62(1個が、
各データ・バス導線に対応する。
)、32本導線データ・バス63(出力レジスタ53の
数をB個入力レジスタ31へ戻すためのもの)を含む。
この転送(戻し)は、データ・フロー・ゲート62が、
制御線64上の外部転送制御信号XFERZBによって
導通状態にされた時に生じる。
再補数化されるべき数は、Bレジスフ31から修正器3
3を介して2進加算器20の右側入力へ与えられる。
ユニット33は、他の10進数と同じようにして、再補
数化されるべき10進数を処理するが、そのような数が
再補数動作を行っている時、常にユニット33によって
補数化される場合を除く。
同時に、修正器23は加算器20の左側入力へオールO
の2進シーケンスを与えるように動作される。
加算器20は、補数化された数をゼロへ加え、結果の出
力数を訂正器50へ与える。
訂正器50は、他の10進数について前述した如くにし
て、再補数化された10進数を処理するが、再補数化さ
れる数の符号フィールドは例外である。
この場合、符号処理器40は、訂正器50へ再補数化さ
れる数の符号フィールドを設定するのに適当な符号制御
信号を与え、再補数化動作の開始時に、再補数化される
数がBレジスフ31へ戻された時にそれが有した符号と
反対の符号を示すようにする。
レジスタ53へ与えられる再補数化数は、真の大きさの
形式にある所望の数である。
再補数化動作の必要性は、補数検知回路65によって決
定される。
検知回路65は、レジスタ53へ与えられる出力数が、
補数形式にあるかどうかを決定する。
この決定は、10進減算動作を遂行する時に、COキャ
リー・アウトが存在するかしないかを注意することによ
ってなされる。
COキャリー・アウトは、全体としての2進加算器20
のための最終的キャリー・アウトを表わし、線66を介
して補数検知器65へ与えられる。
10進減算動作を遂行する時、もしCOキャリー・アウ
トが存在すれば(CO=1)、レジスタ53へ与えられ
る数字データは、真の大きさの形式にあり、再補数化は
必要でない。
10進減算動作を遂行する時、もしCOキャリー・アウ
トが存在しなければ(CO=0)、出力レジスタ53へ
与えられる数は、補数形式にあり、再補数化動作が必要
である。
補数検知器による決定の結果は、補数検知器出力線67
上に現われる2進出力信号CDによって示される。
前述した如く、レジスタ21.31.53、修正器及び
訂正器23,33,50.2進加算器20等の各種の機
能的データ・フロー・ユニットは、4バイト(32ビツ
ト)のデータ・フロー幅を有するものと仮定した。
この仮定は、例示的なものである。
本発明の装置は、より広いデータ・フローの幅について
も動作する。
但しデータ・フロー幅は1バイト又は文字の倍数である
べきだ。
何故ならば、現在のデータ・プロセッサが部分的バイト
を処理するように構成されていないため、部分的バイト
の処理には動作の困難性がともなうからである。
加減算される10進オペランドは、ユニット10の基本
的データ・フロー幅より大きい場合がある。
この事は、本実症例の如く4バイト(32ビツト)の場
合にも、又8バイト(64ビツト)のような場合にも生
じる。
ハードウェアの幅より広いオペランドの場合、演算動作
を完了するためにユニット10を1回以上通過させる必
要がある例えは、もしオペランドがユニット10のハー
ドウェアの幅(4バイト)の2倍(8バイト)であれは
、2個の入力オペランドの下半分がユニット10におい
て最初のパスで加減算され、上半分が第2のパスで加減
算される。
第2のパスにおいてユニット10では若干の異った処理
がされる。
その1つは、オペランドの下半分について第1のパスで
加算器20から伝播したキャリー・アウト(CO)が記
憶され、オペランドの高順位についてなされる第2のパ
スで加算器20へのキャリーイン(Cin)として使用
されることである。
本実施例において、この事は、状態ラッチ70線71、
転送切換回路72によってなされる。
回路72の出力は、加算器20のキャリー・イン線73
へ接続される。
第1のパスで、回路72はキャリー・イン線73を加減
算制御信号線42へ接続し、ユニット10が減算動作を
遂行しつつある時、+1のキャリー・インを可能ならし
める。
これは、オペランドの1つが補数化される時、通常の+
1キヤリー・インである。
第2のパスでは、スイッチ72がランチ70からの線7
1へ線73を接続する。
この事は、第1パスに対するCOキャリー・アウトを第
2パスに対するキャリー・インとして使用せしめる。
もし第3パスが必要であれば、同一の接続により、第2
パスに対するC。
キャリー・アウトが第3パスに対するキャリー・インと
して使用される。
ランチ70は、前のパス□からのキャリー・アウトを記
憶して、それが次のパスで利用可能となるように記憶機
構の手段となる。
回路72内の切換動作は、制御線28上の第1パス状態
信号によって制御される。
ハードウェアの幅よりも大きい10進オペランドを処理
する時に考慮しなければならない第2点は、符号フィー
ルドが各オペランドの最低バイトにのみあることで、従
ってユニット10の第1パスにおいてのみ利用可能とな
ることである。
その結果、符号処理器40によって発生された加減算1
制御信号によって開始される演算動作は、ユニット10
を通して後続するパスで使用するため記憶されねばなら
ない。
これは、処理器40内におかれた回路によって達成され
るが、詳しくは後述することにする。
更に、ハードウェアの幅より太きG110進オペランド
を後続するパスで処理する時、A入力修正器23、B入
力修正器33、訂正器50によって遂行される動作に多
少の変更を必要とする。
この変更は、後続するパスでは、符号フィールドが存在
しないため必要である。
かくて、これらユニットの動作は、後続するパスの間に
調整され、第1パスの符号フィールドによって使用され
るハードウェア位置が変更されて、後続するパスでゾー
ン・フィールド又はデジット・フィールド形式の動作が
なされる。
本発明の装置は、10進動作を遂行する速度をかなり増
大させる。
特に、10進動作の出力結果が、真の形式である時(補
数形式ではなく)、10進演算の速度は同等幅のオペラ
ンドについて2進演算を行う速度と対比できる。
もし10進動作が補数形式の出力を生じるならば、それ
は再補数化される必要があり、従って補数結果が有効で
あり許容できる出力であるような2進動作よりも1動作
だけ遅くなる。
更に、全体的な入力−処理−出力のスループット速度を
考えると、10進動作の速度は多くの場合、2進動作の
対応するスループット速度よりもかなり大きくなる。
この理由は、2進動作として入来する数字データが演算
動作を行う前にパック形式へ変換され次いで純2進形式
へ変換されねばならないこと、又結果が出力装置へ送ら
れる前にパンク10進形式へ変換され、次いでゾーン1
0進形式へ変換されねばならないためである。
第3図の制御ユニット 第3図には、第1の演算ユニット10へ与えられる各種
の外部状態信号、選択信号、制御信号を発生する制御ユ
ニットの1部80が示される。
制御ユニット部分80は、制御線26,27,28゜4
1.30,25,35,55,29,36゜64上の信
号状態を個別的に制御する11個の2進スイッチ81−
91を含む。
図面の制御線上のラベルは、そこに2進のルベルが存在
する時に、その量、状態、又は所望の動作を示す。
故に、制御線26は「ゾーン」とラベルを付され、そこ
に2進のルベルがある時、ゾーン形式状態であることを
示す。
従って、第3図のスイッチ81−91の例示的状態は、
2つのゾーン(スイッチ81=ゾーン)10進(スイッ
チ82=10進)オペランドの低順位4バイト(スイッ
チ83=第1パス)について、加算動作(スイッチ84
=加算)を要求するスイッチ位置を表わす。
動作それ自体は、「A転送」及び「B転送」信号(スイ
ッチ89,90)が2進1(オン)位置へ設定される時
に開始される。
現在のデータ・プロセッサでは、勿論スイッチ81−9
1は、高速2進回路の形式をとり、この。
回路は、所与の時点で遂行されるべき特定の動作によっ
て、2進ルベル又は2進0レベルを個々に与える。
マイクロプログラム式データ・プロセッサでは、スイッ
チ81−91は制御レジスフ内の個の段(stage)
を示し、このレジスタは、データ・プロセッサの制御貯
蔵部分からのマイクロ命令又は制御ワードを受取る。
非マイクロプログラム式データ・プロセッサでは、スイ
ッチ81−91は、データ・プロセッサの制御部分にお
ける2進制御回路の出力段を表わす。
第4図及び第5図の入力修正器 第4図は、第1図のA入力修正器23のための入力構成
を示す。
この第4図は、Aレジスタ21におけるA個入力オペラ
ンドの8個のhexフィールドの1つを個々に処理する
8個の4ビツト・ゲート・ユニット100−107を含
む。
Aレジスフ21から受取られる8個の4ビツトhexフ
イールドは、AO−A7で示され、加算器20の左側入
力へ送られる8個の4ピツ) hexフィールドは、J
O−J7で示される。
8本の4導線データ・バス22a−22hは、第1図の
32導線データ・バス22を構成する。
同様に、8本の4導線データ・バス24a−24hは、
第1図の32導線データ・バス24を構成する。
第5図には、ゲート・ユニット106(4段ゲート・ユ
ニットの典型的なもの)に対する内部構成の代表的形式
を示す。
このようなゲート・ユニット106は、4個のAND回
路又はANDゲート108−111を含む。
これらのゲートは、A6 hexフィールドを構成する
4本のビット線(導体)GO−G3の1つを受取る。
累ったビットに対するAND回路出力導体は、HO−H
3として示され、これらビットは加算器20へ送られる
J6hexフィールドを形成する。
これらANDゲート108−111の動作は、1対の制
御線112゜113によって制御される。
ここで制御線113が2進ルベルにあるものと仮定する
と、GO−03上のデータ・ビットは、転送制御線11
2を2進ルベルへ設定することによって、修正なしにH
O−H3線へ転送される。
出力ビット線HO−H3上に4個のゼロを強制するため
には、他の制御線113が使用される。
この事は、この「ゼロ強制」制御線113上の信号レベ
ルを2進Oレベルに設定することによって達成される。
これは、ANDゲート108−111を無能化し、それ
らの出力がゼロレベルに維持されるように強制する。
他の偶数番号のゲート・ユニット(ゲート・ユニット1
00,102,104)の各々は、第5図のゲート・ユ
ニット106と同様の構成を有する。
奇数番号のゲート・ユニット101,103゜105は
、ゼロ強制制御線113が省略されることを除いて同じ
構成を有する。
右端のゲート・ユニット107は、ゲート・ユニット1
06と同じ構成を有するが、ゼロ強制制御線114であ
り、ゼロ強制制御線113とは異ったところからその信
号を受取る点が異っている。
第4図に示される如く、「転送」制御線112は、線2
9,30上の「A転送」及び「再補数化」制御信号によ
って制御される。
ゼロ強制制御線113は、線26,27上の「ゾーン」
及び「10進」状態信号によって制御される。
第2ゼロ強制制御線114は、線26,27,28上の
「ゾーン」、「10進」、「第1パス」状態信号によっ
て制御される。
純2進数(10進=0)を処理する時、線113゜11
4は2進ルベルにとどまり、線29上のA転送信号は、
AO−A7データ・ビットの修正なしに加算器20の左
側入力へ転送せしめる。
この事は、線30上の再補数化信号がゼロであることを
仮定する。
この場合、AND回路115は、A転送信号がルベルに
ある時、線112を2進ルベルへ7駆動する。
再補数化動作の間、線30上の再補数化信号は、ルベル
へ設定される。
これは、N0Tl路116によってOレベルへ反転され
る。
この事は、AND回路1.15を無能化し、よってゲー
ト・ユニット100−107の全てを無能化する。
この事は、データ・ビット出力線JO−J7の全てをし
て2進Oレベルにとどまらせる。
この0レベルは、再補数化動作を行っている時には、所
望の結果である。
ゾーン10進数字データを処理している時、「10進」
状態信号及び「ゾーン」状態信号は、2進ルベルにある
この事は、AND回路117の出力に2進1を発生する
回路117は、N0Tl路118の反転動作により、制
御線113を0レベルへ強制する。
この事は、偶数番号ゲート・ユニット100,102,
104,106を無能化する。
これらゲート・ユニットは、ゾーン10進オペランドの
ゾーン及び符号フィールド部分を処理する。
この事は、hex O、hex 2 、 hex 4゜
hex 6フイ一ルド部分の出力ビツト線の各々を2進
θレベルにとどまるように強制する。
かくて、データ転送がA転送信号をルベルへ設定するこ
とによって開始される時、hex 1.hex 3゜h
ex 5 、 hex 7フイールドに対するデータ・
ビット(これらは、ゾーン10進デジツト・フィールド
である。
)のみが、修正されないで加算器20の左側入力へ送ら
れる。
このデータ転送の間に、ゾーン10進のゾーン及び符号
フィールド(hexフィールド0,2,4,6)に対す
るデータ・ビットが、2進0レベルにとどまるように強
制される。
この事は、ゾーン10進オペランドの場合に、八−個入
力オペランドの所望の先廻り条件ずけに相当する。
4バイト・オペランドより大きいものに対する第1パス
と後続パスとの区別はなされない。
何故ならば、第1パス符号フィールド位置は、後続パス
の間、ゾーン・フィールド位置となるからである。
パック形式の10進オペランドを処理している時、ゾー
ン10進ゼ尤強制制御線113は、2進ルベルにとどま
る。
何故ならば、線26上のゾーン状態信号は、0レベルに
ありANDゲート117を無能化するからである。
パック10進数の場合、ゼロ強制はhex7ゲート・ユ
ニット107のみを制御する線114によってなされる
この制御線114は、線26,27,28上の状態信号
が「パック」、「10進」、「第1パス」を示す時のみ
、0レベルへ設定される。
これら3つの信号の他の組合せの場合、線114は2進
ルベルに維持される。
この論理は、NOT回路119、AND回路120、N
OT回路121によって達成される。
故に、パンク10進オペランドを処理する時、全てのデ
ータ・ビットは加算器20の左側入力へ変更なしに与え
られるが、例外として第1パスの間にパンク10進符号
フィールド・ビットを構成するhex 7フイールド・
ビットは第1パスの間にゼロへ強制される。
このhex 7のゼロ強制は、ハードウェア幅より大き
いオペランドについての後続パスではなされない。
何故ならば、このようなオペランドの最低順位hexフ
ィールドのみが、符号フィールドだからである。
第6図及び第7図の補数B入力修正器 第6図は、第1図の補数B入力修正器33の代表的内部
構成を示す。
第6図は、Bレジスタ31における8個入力オペランド
の8個のhexフィールドを個々に処理する8個の4段
論理ユニット130−137を含む。
Bレジスフ31から受取られる8個の4ビツトhexフ
イールドは、BO−B7で示され、加算器20の右側入
力へ送られる8個の4ビツトhexフイールドは、KO
−に7で示される。
補数B入力修正器33のために、Bレジスフ31のデー
タ・ビットをその真及び補数形式で使用することが望ま
れる。
故に、レジスタ31の各ビット位置について、2本の出
力導線がユニット33へ接続され、1つの導線はデータ
・ビットの真の形式を搬送し、他の導線はデータ・ビッ
トの補数(即ち、論理反転の)形式を搬送する。
かくて、第1図のデータ・バス32を構成する8本のデ
ータ・バス32a−32hの各々は、8本の導線を含み
その中の4本は、真の信号用であり、他の4本は補数信
号用である。
第1図のデータ・バス34を構成し、かつ加算器20の
右側入力へ行く8本のデータ・バス34a−34hの各
々は、4本の導線を含む。
4段論理ユニットの典型的なもの(hex 6論理ユニ
ツト136)の代表的内部構成が、第7図に示される。
そのようなhex 6論理ユニツト136は、4個の段
140−143を含みこの段は、その出力線上にビット
信号MO−M3を発生する。
これらの信号は、加算器20の右側入力へ与えられるに
6hexフイールドを構成する。
第1(高順位)ビット位置段140は、5個の2人力A
ND回路(ANDゲ゛−ト144−148)を含みこれ
らの出力は、OR回路149の異った入力へ接続されて
いる。
第2ビット位置段141は、4個の複数入力AND回路
(ANDゲート150−153)を含み、これらはその
出力線をOR回路154の違った入力へ接続される。
第3ビット位置段142は、3個の2人力AND回路(
ANDゲート155−157)を含み、これらの出力は
OR回路158の入力へ接続される。
第4(最低順位)ビット位置段143は、3個の2人力
AND回路(ANDゲート159−161)を含み、そ
れらの出力はOR回路162の入力へ接続される。
段140−143中のANDゲートは、4本の制御線1
64−167の1つによって制御される3これらの線1
64−167の名称によって知られる如く、論理ユニッ
ト136は次の4つの機能の1つを選択的に与える。
(a)真(又は無修正の)データ転送 (b) 補数データ転送 (c)r+6J(デジット値)データ転送(d)r4個
の1」強制 最初の3本の制御線164−166の1つのみが、所与
の時点で2進ルベルへ設定されることができ、その詩仙
の2進0レベルにある。
第4制御線167は、無効型の動作を与え、それが2進
ルベルに設定されると、他の線164−166の動作を
無効にし、4本のMO−M3出力線上に4つの「1」を
強制する。
「真」の制御線164が2進ルベルに設定される時、A
NDゲート144,150,155゜15−9は能動条
件におかれ、ANDゲートの残りは無能条件におかれる
11強制」線167がOレベルにあると仮定すると、こ
の事は、Bレジスフ31からの真の形式ビットNo−N
3を修正なしにMO−M3出力ビット線の1つへ通過さ
せる。
MO−M3ビット線は、加算器20へ接続される。
かくて、このモードではMO−M3ビット信号は、Bレ
ジスフ31におけるhex 6フイールドの真の表現を
有する。
「補数」制御線165が2進ルベルに設定される時、A
NDゲート145,151.156 。
160は能動条件におかれ、ANDゲートの残りは無能
化される。
線167がOレベルにあると仮定すると、この事は、B
レジスタ31からの補数形式ビットNo−N3をMO−
M3出力ビット線へ通過させる。
従って、このモードでは、加算器20の右側入力へ与え
られたに6hexフイールド(ビットMO−M3)は、
Bレジスフ31におけるhex 6フイールドの補数形
式を表わす。
「+6」制御線166が2進ルベルに設定される時、A
NDゲート146−148,152−153.157,
161は能動条件におかれ、ANDゲートの残りは無能
化される。
線167が0レベルにあるものと仮定すると、これらの
能動ANDゲート146−148,152−153゜1
57.161は、136hexフイールドのコードによ
って表わされたデジット値を「6」だけ増加1させる。
但し、そのデジット値が0−9の範囲にあることを条件
とする。
2進化10進デジツト値を「6」だけ増加させる論理は
、次のようである。
ここで「+」符号は論理ORを示し、「・」はANDを
示す。
「−」は補数(反転)を示す。Al’JD回路146−
148は、第1段140の)OR回路149と一緒にな
って、代用で示された論理を遂行する。
第2段141のAND回路152゜153、OFt回路
154は、式・(2)で示された論理を遂行する。
第3段142のAND回路157、OR回路158は、
式(3)で示された論理を遂行する。
この場合、M2出力は、Bレジスタ31におけるN2ビ
ットの1の補数である。
第4段143のAND回路161、OR回路162は、
式(4)で示された論理を遂行する。
この場合、M3出力ビットはBレジスタ31のN3ビッ
トと同じであり、AND回路161は、単に制御ゲート
として機能する。
前述した如く、この論理回路は、B6ビツトの2進コー
ドが0−9範囲の数値を示す時、「+6」機能を遂行す
る。
この事は許容できることである、何故ならば、「+6」
機能は、10進デジツトのみで使用され、このデジット
は0−9の値のみを有するからである。
「1強制」制御線167が2進ルベルに設定される時、
4本のMO−M3出力ビット線の各々は、2進ルベルに
強制される。
この理由は、線167上の2進ルベルが、4個のOR回
路149゜154.158,162各々へ与えられるか
らである。
AND回路の1つが、同時にOR回路へゼロを与えてい
ても、結果に変りはない。
線167によって与えられる2進1は、OR回路への他
の入力の状態如何によらず、OR回路出力線を2進ルベ
ルに維持する。
第6図に戻って、偶数番号論理ユニット130゜132
.134等は、第7図のユニット136と全く同一の構
成を有する。
奇数番号ユニツN31゜133.135は同じく第7図
の構成と同じであるが、「1強制」制御線167が省略
される点が異る。
これらの論理ユニットは、ゾーン又は符号フィールドを
処理する必要はなく、「1強制」機能は必要でない。
最低順位hex論理ユニット137は、第7図のものと
同一構成であるが、「1強制」制御線が異った信号源へ
接続されており、従ってその線は168と番号を付され
ている。
第6図に示される如く、制御線164−168はAND
回路170−174の出力側へ接続される。
これら線164−168上の信号レベル状態は、外部制
御線26,27,28,36,42上の信号状態によっ
て決定される。
これらの外部制御線は、成る場合にはNOT回路175
−178の1つを介して、AND回路170−174の
1つへ接続される。
Bレジスタ31から加算器20の右側入力へのデータ転
送は、B転送制御線36を2進ルベルへ設定することに
より開始される。
この制御線36は、AND回路170−174の各々へ
接続される。
かくて、線36が2進ルベルへ設定される時、線164
−168が転送開始の2進ルベルへ設定される。
演算ユニット10をして2進加算を遂行させるため、1
0進制御線27が2進0レベルへ設定される。
この事は、AND回路172−174を無能化する。
同時に、符号処理器40からの加減算制御線信号(線4
2)は、「加算」を示す0レベルにある。
この事は、複数線AND回路171を無能化する。
故に、「真」の制御線164へ接続されたAND回路1
70は、B転送信号によって能動化されるべき唯一のも
のである。
このB転送信号がルベルになると、Bレジスフ31の全
ての32ビツトは、修正されないで(真の形式)加算器
20の右側入力へ転送される。
2進減算を行う時、AND回路172−174が、10
進制御線27上の0レベルによって無能化される。
しかし、線42上の加減算制御線は、減算を示す2進ル
ベルにある。
この事は、真の制御ゲート170を無能化しくNOT回
路178)、補数制御ゲート171を能動条件にする。
故に、B転送信号がルベルになると、加算器20の右側
入力へ与えられた32個のデータ・ビットは、Bレジス
タ31の32個のデータ・ビットの1の補数を表わす。
ゾーン10進加算又はゾーン10進減算を遂行する時、
制御線26,27上のゾーン及び10進信号が2進ルベ
ルにある。
この事は、ゾーン10進「1強制」制御ゲート173を
能動条件にし、NOT回路175を介して、パンク10
進「1強制」制御ゲート174を無能化する。
故にB転送信号がルベルになると、「1強制」制御線1
67はルベルとなり、偶数番号hex論理ユニット13
0,132,134,136からの出力線は、2進ルベ
ルへ強制される。
この事は、ゾーン及び符号フィールドの各ビットに2進
1をとるよう強制する。
同時に、「補数」制御線165又は「+6」制御線16
6は、行われる動作が減算か加算かによって、2進ルベ
ルニサレル。
「真」制御線170は、NOT回路177によって無能
化される。
もし動作がゾーン10進減算であれば、線42がルベル
にされ、「補数」制御ゲート171が能動化され(XF
ERB=1)、補数制御線165がルベルにされる。
この事は、奇数番号hex論理ユニット131、133
、135,137を能動化する。
これらユニットは、デジット・フィールド・データ・ビ
ットを補数形式で加算器20の右側入力へ与えるため、
デジット・フィールドを処理する。
もしゾーン10進動作が加算であれば、減算制御線42
が2進0レベルにある。
この事は、「補数」制御ゲート171を無能化し、「+
6」制御ゲート172を能動条件にする。
(NOT回路176)この事は、「+6」制御線166
を2進ルベルにするため、「B転送」信号を能動化する
この事は、heXフィールドが奇数番号論理ユニット1
31,133,135,137を通る時これらhexフ
ィールドの各々のデジット値へ6の値を加える。
前述した如く、これは10及び16の番号システムの相
違によるもので、2つの入力オペランドA及びBが加算
器20内で加算される時、デジット・キャリーの正しい
発生を可能にする。
パンク10進オペランドを処理する時、制御線26上の
ゾーン状態信号は2進Oレベルに設定される。
この事は、ゾーン10進「1強制」制御ゲート173を
無能化し、パンク10進「1強制」制御ゲート174を
能動条件にする。
但し、線28上の第1パス状態信号が、2進ルベルを示
す第1パスにあることを条件とする。
換言すればパンク10進データについては、「1強制」
制御線168は、「1強制」制御線167の代りに使用
される。
第6図から分るように、このパック10進「1強制」制
御線168は、最低順位hex論理ユニット137への
み接続される。
もし線28上の信号が、第1パス状態を示すならば線1
68は、パンク10進符号フィールドの各ビットに2進
1値をとるように強制する。
ハードウェアの幅よりも大きいパック10進オペランド
について後続するパスでは、「1強制」制御線168は
0レベルに維持される。
後続するパスにおいて、ユニット33へ与えられるデー
タ・フィールドには、符号フィールドが存在しないため
である。
故に、線168は形式が「パック」、「10進」であり
、状態が「第1パス」である時にのみ、heX7論理ユ
ニツl−137から1111を強制する。
パンク10進オペランドを処理する時、最初の7個のh
ex論理ユニツ) 130136については、1の強制
は存在しない。
最低順位hex論理ユニット137、及び所与のオペラ
ンドについて第1パスの間でのみ、1の強制が存在する
パンク10進加算動作については、「+6」制御ゲート
172は、「+6」制御線166を2進ルベルにするた
め、同様に付勢される。
この事は、最初の7個のhex論理ユニット130−1
36の各々において、デジット値に6を加える。
更にそれは、ハードウェア幅より大きいオペランドにつ
いて、後続パスの間に第8のhex論理ユニット137
の値に6を加える。
パンク10進減算を行う場合、「+6」制御ゲート17
2は無能化され、「補数」制御ゲート171は能動条件
におかれる。
この事は、B転送信号によって線165を2進ルベルに
おき、最初の7 hex論理ユニット130−136が
、補数データ・ビットを加算器20の右側入力へ通過さ
せるようにする。
更にそれは、第8番号のhex論理ユニット137て、
後続するパスの間に補数データ・ビットを加算器20へ
通過させるようにする。
第8図及び第9図の符号処理器 第8図は、第1図の符号処理器40における内部構成の
代表例を示す。
説明の便宜上、第8図の実施例は、2つの大きな動作部
分から成ると考えられる。
第1部分は、A及びBレジスフ21゜31におけるA個
入力及び8個入力オペランドの符号フィールド、及び線
41上の外部選択信号(動作要求)に応答して、出力線
42上に加減算制御信号を発生する回路を含む。
加減算制御信号は、補数B入力修正ユニット33の内部
で「+6」補数動作を制御するために使用される。
第2の動作部分は、A側及び8個入力オペランドの少な
くとも1つの符号フィールドに応答して、出力線46上
に符号制御信号を発生する符号制御回路を含む。
上記符号制御信号は、結果の出力オペランド用に正しい
符号コードを表現するために、出力訂正器50の符号フ
ィールド・ビットを設定するのに使用される。
先ず、出力線42上に加減算制御信号を発生する回路を
考えると、表2に掲げられる如く、各種の10進符号フ
ィールド・コードが存在する。
表2には、4つの「+」コードと、2つの「−」コード
がある。
これら6つの符号コードは、全て入力10進オペランド
に対して有効な符号コードである。
第8図の加減算制御信号回路は、A及びBレジスタ21
,31における2つの入力オペランドの符号を表す第1
及び第2極性表示信号を線182.183上に発生する
ための第1及び第2符号コード検知回路180,181
を含む。
Aレジスタ21におけるA個入力オペランドのための符
号コード検知器180は、線44a−44dを介してA
レジスフ21におけるA6(hex6)ビット位置へ接
続される第1マイナス符号検知器184を含む。
更に検知器180は、線44e−44hを介してAレジ
スタ21におけるA7(hex7)ビット位置へ接続さ
れる第2マイナス符号検知器185を含む。
これら線44a−44hの8本は、第1図の8本データ
・バス44を構成する。
検知器184,185の各々の出力は、OR回路186
の入力へ接続される。
回路186は、Aオペランド符号コード検知器180に
含まれている。
第2符号コード検知器181は、Bレジスタ31に存在
する8個入力オペランド用であり、線45a−45dを
介してBレジスタ31におけるB6(hex6)ビット
位置へ接続される第1マイナス符号検知器187を含む
更に、検知器181は、線45e−45hを介してBレ
ジスフにおけるB7(hex7)ビット位置へ接続され
る第2マイナス符号検知器188を含む。
これらの線45a−45hの8本は、全て第1図の8本
データ・バス45を構成する。
検知器187,188の出力は、OR回路189の入力
へ接続される。
このOR回路もBオペランド符号コード検知器181に
含まれる。
マイナス符号検知器184の内部構成の代表例は、第9
図に示される。
検知器184 ?& r 1011jマイナス符号コー
ドを検知するためのANDゲート190及びNOT回路
191を有する第1論理回路を含む。
そのような「1011j符号コードが生じる時(G1=
0)、AND回路190は、出力線192上に2進ルベ
ルを発生する。
但しゾーン状態信号制御線26が、2進ルベルにある時
に限る。
更に、検知器184はl’−1101jマイナス符号コ
ードを検知するためのAND回路193及びNOT回路
194を有する論理回路を含む。
その「110I」コードが発生する時(G2=0)、A
ND回路193が、出力線195上に2進ルベルを発生
する。
但し、ゾーン状態信号制御線26が、2進ルベルにある
時に限る。
2つのAND回路出力線192,195は第8図のOR
回路186の2つの入力へ接続される。
第8図の他の検知器185,187,188の各々は、
第9図と同じ構成を有する。
もしゾーン10進オペランドが処理されていれば、線2
6上のゾーン状態信号は2進ルベルにある。
この事は、2つの入力オペランドA、Bの各々における
hex 6フイールド・ビットを検査するため、検知器
184,187を能動化する。
同時に、このゾーン状態信号は、線197上に2進0レ
ベルを発生するためにNOT回路196へ与えられる。
この事は、hex7フイールド位置のパンク10進符号
フィールドのためにマイナス符号検知器185,188
を無能化する。
もしパック10進数が処理されているのであれば、線2
6上のゾーン状態信号は2進0レベルにあり、状態は逆
転したものになる。
換言すれば、検知器184゜187は無能化され、検知
器185,188は能動化される。
OR回路出力線182上には、Aレジスフ21における
A個入力オペランドの符号フィールド・コードによって
示される極性を表わす2通信号が現われる。
同時にOR回路出力線183上には、Bレジスタ31に
おける8個入力オペランドの符号フィールド・コードに
よって示される極性を表わす2通信号が現われる。
双方の場合、2進ルベルはマイナス符号を表わし、2進
Oレベルはプラス符号を表わす。
同時に線41上の動作要求選択信号は、加算又は減算が
オペレータ又はプログラムによって要求されつつあるこ
とを示す。
線41上の2進ルベルは、マイナス(減算)動作の要求
を表わし、2進0レベルはプラス(加算)動作の要求を
表わす。
前述した如く、演算ユニット10によって実際に行われ
る演算動作は、必ずしも要求される動作でなくてもよい
例えば、もし加算動作が要求され、オペランドAが正で
あり、オペランドBが負であれば、ユニット10は、正
しい結果を真の大きさの形式で得るためには、実際には
減算動作を遂行せねばならない。
逆に、もし減算動作が要求され、2つの入力オペランド
が異った符号であれば、ユニット10は正しい出力を得
るために加算動作を遂行すべきである。
どのような演算動作が実際に遂行されるべきかを決定す
るための論理は前記の表4に掲げられている。
表4に掲げられた論理を実行するため、符号処理回路4
0は、OR回路出力線182,183上の第1及び第2
極性表示番号、及び制御線41上の極性表示選択信号に
応答する論理回路を含み、これら3つの信号の偶数個が
負である時、又は負の信号が無い時、加算信号が発生さ
れ上記3つの信号の奇数個が負である時、減算信号が発
生される。
この機能のために必要な論理回路は、線41゜182.
183上の3つの極性表示信号を排他的にOR結合する
1対の排他的OR回路200゜201を含み、出力線2
02上には、実行されるべき演算動作を制御する(決定
する)加減算信号が発生される。
線202上の信号は、2通信号である。
この信号は、実行されるべき動作がマイナス(減算)で
ある時、2進ルベルをとり、実行されるべき動作がプラ
ス(加算)である時、2進0レベルをとる。
排他的OR回路200は、いずれかの入力が2進ルベル
にある時(双方の場合を除く)、ルベル出力を発生する
故に、もしその入力の奇数個がルベルであれば、その出
力はルベルにある。
同様に、第2排他的OR回路201は、もしいずれかの
入力がルベルにある時(双方の場合を除く)、ルベル出
力を発生する。
この事は、入力の奇数個が2進ルベルにあることを示す
故に、排他的OR回路200,201についての全体的
論理は、線202上の最終出力は、3つの入力信号の奇
数個がマイナス表示のルベルにある時に2進ルベルにあ
ることである。
線202上の加減算制御信号は、論理信号切換え機構2
03を介して、符号処理量出力線42へ与えられる。
但し、線26,27,28,30上のゾーン、10進、
第1パス、再補数状態信号が適当な状態値を有する時に
限る。
この場合を仮定すると、出力線42上の加減算制御信号
は「真・補数・+6」動作を制御するため(ユニット1
0によって遂行される演算動作を制御するため)、補数
B入力修正器33へ与えられる。
線42上のこの制御信号に対する減算状態は、ユニット
33をして8個入力オペランドをして補数化せしめる。
この制御信号に対する加算状態は、補数化動作を無能化
し、ユニット33によって「真」又は「+6」の機能を
遂行させるようにする。
後者の機能は、オペランドが2進であるか、10進であ
るかに依存する。
信号切換え又は信号選択機構203は、AND回路20
4,205,206を含む。
これら回路の出力は、OR回路207の入力へ接続され
、OR回路207の出力は、加減算制御信号線42へ接
続される。
AND回路204−206を選択する信号は、外部制御
線27,28J:の10進及び第1バス状態信号によっ
て制御される。
これらの状態信号は、NOT回路210、AND回路2
11、AND回路212へ与えられ、第1パス信号は、
NOT回路213を介してAND回路212の第2入力
へ与えられる。
これらの回路210−213は、線214,215,2
16上の信号レベルの状態を制御するデコーダを形成し
、これら3つの線の1つのみが、所与の時点で2進ルベ
ルにあるようにする。
もし10進状態が、FW注であれば、制御線27がOレ
ベルにあって線214はルベルにされる。
この事は、NND回路204を能動化し、線41上の外
部選択信号が加減算制御線42へ通過するようにする。
この場合、他のAND回路205,206は、無能化さ
れる。
この事は、10進オペランドが処理されていない時、演
算動作の外部制御を可能にする。
10進状態が「10進」であり、第1パス状態が「第1
パス」である時、線215は2進ルベルにおかれる。
この事は、AND回路205を能動化し、AND回路2
04,206を無能化する。
この事は、排他的01(回路200,201によって発
生され、かつ線202上に現われる加減算制御信号が、
制御線42上に与えられるようにする。
この事は、ゾーン又はパック10進数を処理している場
合、通常起ることである。
但し、オペランドはハードウェアの幅(本実施例では、
4バイト。
)より大きくないものとする。
ハードウェアの幅より大きい10進オペランドの第1パ
スについてはAND回路205が能動化される。
ハードウェアの幅より大きい10進オペランドシとつい
では一オペランドの異なった部分が異なったパスで演算
ユニット10を通される。
符号フィールドは、第1パスの間でのみ存在する。
故に、実行されるべき動作(加算又は減算)は、後続パ
スの間で使用されるよう記憶されねばならない。
この記憶は、2進ラッチ回路217によってなされる。
回路217は、第1パスの間に動作して線202上の加
減算信号の状態を貯蔵し、その信号状態を後続するバス
の間に出力線218上で利用可能にする。
線218上のラッチ信号は、信号選択AND回路206
へ与えられる。
回路206は、10進オペランドを後続バスで通す時に
能動化される。
この事は、貯蔵された第1バス加減算信号を後続パスの
間に出力線42上で利用可能にする。
信号切換え回路203は、他の機能をも遂行する。
それは、演算ユニット10が再補数化動作を遂行すべき
である時、出力線42をして減算を示す2進ルベルへ強
制せしめる。
この事は、線30上の再補数化制御信号を直接にOR回
路207へ与えることによって達成される。
故に、再補数化動作(2進ルベルにある制御線30)を
遂行しつつある時、実行される演算動作は常に減算であ
る。
更に、符号処理回路40は、入力10進オペランドの1
つの符号フィールドに応答する符号制御回路を含み、最
終出力数における符号フィールド位置のビットが正しい
符号コード値を有するように、出力訂正器50によって
発生される。
この符号制御回路は、Aオペランド符号コード検知器1
80の出力と、Bオペランド符号コード検知器183の
出力との間を選択する論理信号切換え(信号選択)機構
220を含む。
機構220は、A’ND回路221.222を含み、こ
れら回路の出力はOR回路223の入力へ接続される。
OR回路223の出力は、制御線46へ接続され、この
線46は出力訂正器50へ出力符号制御信号を与える。
A及びBオペランド符号間の切換えは、制御線30上の
再補数化信号によって達成される。
この信号は、AND回路222へ直接に与えられ、かつ
NOT回路224を介してAND回路221へ与えられ
る。
再補数化動作の間、線30上の再補数化信号は2進ルベ
ルにある。
この事は、Mの回路222を能動化し、AND回路22
1を無能化する。
再補数化が遂行されない時、再補数化信号は0レベルに
あり、状況は逆になる。
このOレベルは、AND回路221を能動化し、AND
回路222を無能化する。
AND回路221は、Aオペランド符号コード検知器1
80から出力信号を受取る。
この出力信号は、Aレジスタ21におけるA個入力オペ
ランドの符号を示す。
AND回路222は、NOT回路225を介して、Bオ
ペランド符号コード検知器183から出力信号の論理反
転表現を受取る。
この出力信号は、Bレジスタ31における8個入力オペ
ランドについて符号を示す。
故に、通常の動作において(再補数化なし)、出力線4
6上の符号制御信号は、Aレジスフ21におけるA個入
力オペランドの符号を示す。
この事は、出力訂正器50によって発生された結果数の
符号フィールドに、Aレジスタ21におけるA個入力オ
ペランドの極性値と同じ極性値を与える。
逆に、再補数化動作が遂行されている時、出力線46上
の信号レベルは、再補数化されつつある数の符号フィー
ルドによって示される極性値と反対の極性値を示すよう
に設定される。
再補数化されつつある数は、再補数化動作の間、Bレジ
スタ31におかれている。
この事は、再補数化される数の極性値を逆転する。
第10図−第13図の出力訂正器 第10図は、第1図の出力訂正器50に対する内部構成
の代表例を示す。
訂正器50は、2進加算器20の出力に現われる32ビ
ツト2進ビツト・シーケンスにおける8つのhexフィ
ールドを処理する8個の4段論理ユニット300−30
7を含む。
加算器20から受取られる8つの4ビツトhexフイー
ルドは、RO−R7と呼び、出力(Z)レジスタ53へ
送られる8つの4ビツトhexフイールドは、ZO−Z
7と呼ぶことにする。
8つの4本データ・バス51a−51hは、第1図の3
2本データ・バス51を構成する。
同様に、8つの4本データ・バス52a−52hは第1
図の32本データ・バス52を構成する。
CO−C7の名称を持つ入力線は、加算器20からのh
exフィールド・キャリー・アウト状態線である。
COは、heメフィールドOのためのキャリー・アウト
状態線であり、C1は、hexフィールド1のためのキ
ャリー・アウト状態線であり、以下同様である。
hex 4論理ユニツト304の内部構成の代表例は、
第11図に示される。
hex 6論理ユニツト306の内部構成の代表例は
、第12図に示される。
hex 7論理ユニツト307の内部構成の代表例は、
第13図に示される。
第10図に示される如く、制御線28,46上の第1パ
ス及び符号制御信号は、2つの低順位論理ユニット30
6゜307のみに与えられる。
最初にhex4出力訂正器論理ユニット304に注目し
て、第11図を参照するとhex 4論理ユニツト3
04は、4個の段31(1−313を含むことが分る。
これらの段は、その出力線上にビット信号QO−Q3を
発生し、これらの信号は、Zレジスタ53へ与えられる
Z 4 hexフィールドを構成する。
高順位ビット位置段310は、AND回1i1314,
315を含み、これら回路の出力はOR回路316の入
力へ接続される。
第2ビット位置段311は、AND回路317,318
゜319を含み、それら回路の出力は、OR回路320
の入力へ接続される。
第3ビット位置段312は、A−ND回路321.32
2を含み、それら回路の出力は、OR回路323の入力
へ接続される。
第4ビット位置段313は、OR回路324によって形
成される。
段31C1−313における各種のAND回路は3本の
制御線325−327の1つによって制御される。
線325−327に付された名称によって分るように論
理ユニット304は、次の3つの機能の1つを与える。
(a)真の(又は無修正の)データ転送 (b)r+AJ(デジット値+10)データ転送(C)
r4つの1」強制 「真」制御線325が、2進ルベルに設定される時、A
ND回路314,317,321は能動条件におかれ、
AND回路の残りは無能条件におかれる。
「強制」線327が2進Oレベルにあると、この事は、
加算器20の出力ピッ)PC)−PCを修正なしにQO
−Q3出力ビット線へ通過させる。
QO−Q3線は、Zレジスタ53へ接続されている。
「+A」制御線326が2進ルベルに設定される時、A
ND回路315,318,319゜322は能動条件に
おかれ、AND回路の残りは無能条件におかれる。
能動化されたAND回路315.318,319,32
2はR4hexフィールドのコードによって表わされた
デジットを10(16進法のA)だけ増加するように動
作する。
但し、デジット値が6−Fの範囲内(16進法)にある
ことを条件とする。
補数B入力修正器33では「+6」動作が生じるから、
この事は、出力訂正器50に対して関連ある数の範囲で
ある。
2進化10進デジツト値を10だけ増加させるのに必要
な論理は、次のようである。
「+」符号は論理OR機能を示し、「・」符号は論理A
ND機能を示す。
第1の段310のAND回路315及びOR回路316
は、式(5)によって示される論理を遂行する。
第2段311におけるAND回路318゜319、及び
OR回路320は、式(6)によって示される論理を遂
行する。
第3段312におけるAND回路322及びOR回路3
23は、式(力によって示される論理を遂行する。
この場合、出力Q2は単に入力P2の1の補数である。
第4段313におけるOR回路324は、式(8)によ
って示される論理を遂行する。
この場合、出力ビットQ3は、入力ビットP3と同じで
ある。
前に指摘した如く、デジット値へ10を加えることは、
そのデジット値から6を減じることと同じである。
その理由は、4ビット方式は16進方式であり、10は
6に対して16の補数だからである。
「1強制」制御線327が、2進ルベルに設定される時
、4本のQO−Q3出力ビット線の各科は、2進ルベル
へ強制される。
その理由は、制御線327上の2進ルベルが、4個のO
R回路316,320,323,324へ直接に与えら
れるからである。
この4個の1の強制は、他の2本の制御線325,32
6の状態の如何によらず起る。
制御線327上の2進ルベルは、OR回路316,32
0,323,324の他の入力へ与えられるO値を無効
にする。
制御線325−327上の信号レベルは、線26.27
上のゾーン及び10進状態信号及び加算器20における
hex 4フイールドに対するC4状態線上の04キ
ヤリー・アウト信号によって決定される。
所望の制御論理を遂行する回路は、AND回路328−
330、OR回路331、NOT回路332.333を
含む。
もし2進数が演算ユニット10によって処理されている
のであれば、線27上の10進状態信号は2進Oレベル
にある。
この事は、NND回路328−330を無能化する。
それは、NOT回路332の出力を2進ルベルにおき、
この2進ルベルは、OR回路331によって「真」制御
線325へ転送される。
この事は、入力ビット線PO−P3上のデータを修正な
しにQo−Q3出カビット線へ転送せしめる。
2進数を処理している時、他のhex論理ユニット30
0−303゜305−307の各々においても同様の事
が起る。
故に、出力訂正器50は、演算ユニット10が2進オペ
ランドを処理している時、32個のデータ・ビットを修
正なしに転送する。
ユニット10がゾーン10進数を処理している時、線2
6上のゾーン状態信号、及び線27上の10進状態信号
は2進ルベルにある。
それによって、AND回路328は、「強制」制御線3
27上に「1」を強制する2進ルベル出力を発生する。
これによって、Qo−Q3出力ビット線の各科は、2進
ルベルへ強制される。
これは、ゾーン10進データを処理している時の所望の
結果である。
何故ならば、この場合のhex 4フイールドはゾー
ン・フィールドだからである。
故に、所望のゾーン・コード値が、ゾーン・フィールド
のために設定される。
演算ユニット10が、ペック10進数を処理している時
、「強制」制御線327は2進Oレベルにとどまり、「
真」制御線325又は「十A」制御線326のいずれか
は、C4キャリー・アウト信号の状態に依存して、2進
ルベルにおかれる。
もしキャリー・アウトが、hex4フィールドによって
発生されれば(C4=1)、hex 4又はR4デジ
ット値は正しく、修正は必要でない。
この場合、AND回路330への2つの入力は、2進ル
ベルにあり、「真」制御線325は、2進1しづベルに
おかれる。
この事は、PO−P3ビットを修正なしにQO−Q3出
力線へ通す。
もしキャリー・アウトが、hex4フィールドによって
発生されなければ(C4’=1)、hex 4デジツ
ト値は6だけ誤っている。
この場合、AND回路329への2つの入力は、2進ル
ベルにあり、この事は、「十A」制御線326を2進ル
ベルへ設定する。
この事は、10を加えることによって、heX4デジッ
ト値を訂正する。
前述した如く、10を加えることは6を減じることと同
じである。
第10図に戻って、高順位偶数hex論理ユニット30
0,302の各々は、hex論理ユニット304に対す
る第11図に示されるものと同一の内部構成を有するが
、例外として、加算器20のキャリー・アウトCO及び
C2の1つが、C4キャリー・アウトの代りに使用され
る。
奇数番号hex論理ユニット301.303,305も
同様の内部構成を有するが、例外として、「1強制」機
能が除去され、適当な加算器20のキャリー・アウトが
使用される。
換言すれば、これらの奇数番号論理ユニット301.3
03,305については、ゾーン状態制御線26、AN
D回路328、「1強制」制御線327は省略される。
その理由は、hex 1 、hex 3、hex 5フ
イールドは、10進数を処理している時には常にデジッ
ト・フィールドだからである。
故に、ユニット301 。303.305のために「真
」の機能と「+A」機能との間の選択は、ゾーン10進
数及びパック10進数について生じる。
このような場合、その選択は、考慮されている特定のh
exフィールドのためのキャリー・アウト信号の状態に
よって決定される。
2つの低順位hex論理ユニツ)306,307につい
ての状態は、幾分複雑なものになる。
何故ならば、符号フィールドの存在又は不存在を考慮に
入れねばならないことと、もし存在する場合に、符号フ
ィールドの極性を考慮しなければならないからである。
この点に関して、表2に掲げられた6つの10進符号コ
ードの選択された1つのみが、演算ユニット10によっ
て発生された出力数のために有効であることに注意すべ
きである。
この有効なコードは、優先出力符号コードと呼ばれる。
パック及びゾーン10進データについては、優先「負」
符号コードはrlloIJ(16進法コードのD)であ
る。
ゾーン10進数については、優先「正」符号コードはl
−1111J(16進法コードのF)である。
パック10進数についでは、優先「正」符号コードは「
1100j(16進法のC)である。
hex 6及びhex 7論理ユニット306.307
は、これらの優先符号コードのめを出力するように構成
される。
次に、heX6論理ユニット306に必要なものを考え
る。
2進及びパック10進数については、前にhex 4論
理ユニツト304について説明したのと同じように動作
することが必要である。
ゾーン10進数については、2つの可能性がある。
hex 6フイールドは、10進符号フィールドである
か、又はゾーン・フィールドである。
それは、オペランドの所与の対について第1パス動作を
行っている時、符号フィールドであり、オペランドのそ
の対について後続パス動作を行っている時、ゾーン・フ
ィールドである。
hex 6論理回路306について、ゾーン及び10進
符号フィールドを考える。
これらは次のようである。
1111=ゾーン・コード 1111−正符号コード 1101=負符号コード 正符号コードは、ゾーン・コードと同じである。
負符号コードは、第3ビット位置を除いてゾーン・コー
ドと同じである。
故に、hex6論理ユニット306は、hex 4論
理ユニツト304と同じ副成を有してよいが、例外とし
て、第1パス動作でゾーン10進数を処理していて、符
号が負である時、第3ビット位置を七狛へ強制する機構
が含まれねばならない。
第12図を参照すると、そこにはhex 6論理ユニ
ツト306の内部構成の代表例が示される。
それは、hex 4論理ユニツト304について第11
図に示される構成と実質的に同じであるが、例外は、第
3ビット位置を処理する第3段412である。
比較のため、第11図について説明した素子と同じ素子
には同一番号を付する。
第12図に示される如く、修正された第3段412は、
AND回路421,422、及びOR回路423を含む
これらの目的は、第11図のAND回路321.322
、及びOR回路323のそれと同じである。
相異点として、変更された第3段412は、第4AND
回路440を含むことである。
AND回路440は、第1パスのゾーン10進「負」符
号が生じた時、ゼロ強制機能を与える。
この追加されたAND回路440は、線46上の符号制
御信号、及び線28上の第1パス状態信号によって制御
される。
これらの信号は、へND回路441へ与えられる。
回路441の出力は、NOT回路442へ接続される。
NOT回路442は、線443を介して、ゼロ制御AN
D回路440の第1人力へ接続される。
AND回路440への第2人力は、制御線327上の「
1強制」信号である。
AND回路441及びNOT回路442によつ;て遂行
される論理は、状態が第1パスであり、符号がマイナス
の時に限って線443を2進Oレベルへ設定するもので
ある。
線443に0レベルが生じると、AND回路440が無
能化され、よってT2出力ビット線がゼロへ強制される
他の第11パスと符号の組合せでは、線443は2進ル
ベルになる。
この事は、AND回路440を能動条件におき、線32
7上の「1強制」信号は、T2ビット出力線を2進ルベ
ルへ強制する。
ゾーン10進数を処理する時、AND回路421,42
2−を無能化するため、NOT回路444が含まれる。
回路444は、AND回路440がOレベルを強制しよ
うとしている時、T2ビット出力線上に誤ったルベルが
現われるのを禁止するために必要である。
; 前述した相違点を除けば、第12図の論理ユニット
306の動作lマ、第11図の論理ユニット304の動
作と同じである。
第13図を参照すると、hex 7論理ユニツト307
の内部構成の代表例が示される。
第11図2との比較を容易にするため、第11図の素子
と同じ素子は、同じ番号を付される。
hex 7論理ユニツト307に必要な動作は、1つの
重要な例外を除いて、他の奇数番号のhey論理ユニツ
)301゜303.305に必要な動作と同じである。
数の1形式がパック10進数であり、状態が第1パスで
ある時、hex 7ユニツト307は出力データ・ビッ
トVO−V3を強制して、正しいパンク10進符号コー
ドを取らせる。
他の場合、即ち2進数後続パスでのゾーン10進数又は
パック10進数部2分については、hex7ユニツト3
07は他の奇数番号hex 301 > 303.30
5と同じように動作する。
必要なパック10進数出力符号コードは、次の通りであ
る。
1100=「正」符号コード 1101−「負」符号コード 2つのコードの相異は、第4(最低順位)ビット位置で
ある。
故に、パンク10進符号コードを祠るためには、2つの
高順位ビット位置(■0及びVl)の出力を強制して2
進1の値を取らしめ、第3ビット位置(■2)の出力を
強制して2進Oの値を取らしめ、線46−Lの符号制御
信号の値に従って、第4ビット位置(■3)の出力を設
定することで十分である。
この事は、第13図の回托でなされる。
第13図に示される如く、2つの高順位ビット位置に対
する論理段310,311は第11図のものと同一であ
る。
2つの低順位ビット位置に対する論理段512,513
は多少の変更を有する更に、「強制」制御線550を駆
動する論理回路。
も少し異っている。
他の2つの制御線325゜326を、駆動する論理回路
は同じである。
次に、パンク10進符号コードを強制することが望まれ
る時に起る事項を考慮する。
この場合、へND回路551へ与えられる10進及び第
1パス信号は、2進ルベルにある。
形式はパック形式であるから、線26上のゾーン信号は
2進Oレベルにある。
これは、AND回路551の第3人力に2進ルベルを与
えるため、NOT回路552によって反転される。
これらの入力条件の下で、AND回路551は「強制」
制御線550を2進ルベルへ駆動する。
この事は、■0及び■1出カビット線を2進ルベルへ強
制する。
「強制」制御線550上のルベルは、NOT回路553
によって反転され、第3段512におけるAND回路5
21.522の各々へOレベル入力が与えられる。
この事は、AND回路521.522を無能化し、■2
出力ビット線を2進Oレベルへ強制する。
第4段513に関しては、線550上のルベルが第LA
ND回路554を能動条件におき、NOT回路553の
出力のOレベルは、第2AND回路555を無能化する
AND回路554の第1のものは、線46上の符号制御
信号を受取る。
故に、■3出力ビット線は、線46上の符号制御信号と
同じ2進レベルを取るようにされる。
もしその符号制御信号が、負を示すルベルにあれは■3
出力線は、ルベルへ1駆動されこの事は、「負」符号レ
ベルに対する所望のレベルである。
逆に、もし符号制御信号がOレベルにあれば■3出力線
も0レベルとなる。
このようにして、heX7論理ユニット307は、パッ
ク10進数に対する第1パスの間に、l’−11001
又は「1101」の符号コードを強制する。
次に他の条件の存在を考える。
即ち、2進数が処理されている場合、ゾーン10進数が
処理されている場合、又はパンク10進後続パス動作の
場合である。
これらの場合、NND回路551への入力の少なくとも
1つは、0レベルにある。
この事は、「強制」制御線550をOレベルにする。
この事は、最初の2つの段310,311から強制動作
を除去し、それらの段をして前述した如くに動作させる
線550上のOレベルは、NOT回路553によって反
転され、ルベル入力が第3段512におけるAND回路
521,522へ与えられる。
この事は、第3段512をして、他の奇数番号hex論
理ユニットにおける第3段と同じように動作させる。
具体的には、AND回路521は「真」制御線325に
よって付勢され、U2ビット値の真の表現を通過させ、
AND回路522は「+A」制御線326によって付勢
されて、U2ビット値の補数表現を通過させる。
第4段513に関しては、線550上のOレベルは、A
ND回路554を無能化し、NOT回路553の出力に
おけるルベルは、第2AND回路555を能動化する。
この事は、第4段513を能動化して、U3ビット値を
修正なしで通過させる。
第14図の補数検知器 第14図を参照すると、そこには第1図の補数検知器6
5の内部構成の代表例を示す。
前述した如く、補数検知器65は、出力訂正器50から
の出力数が、真の大きさの形式ではなく補数形式にある
時、1つの表示を与えるように使用される。
この補数形式表示は、補数形式出力を「真の形式」出力
へ変換止るために、再補数化動作を開始するためのベー
スとして使用され得る。
前述した如く、出力が補数形式にあることのハードウェ
ア表示は、10進減算動作を遂行している時、COキャ
リー・アウト状態線にキャリー無しの条件(CO=0)
が生じることである。
第14図の補数検知器は、線27上の10進状態信号及
び線42上の加減算制御信号を受取るAND回路600
を含む。
COキャリー・アウト状態線66上のキャリー・アウト
信号は、NOT回路601を介して、AND回路600
へ与えられる。
故に、10進減算動作が遂行され、COキャリー・アウ
トが存在しない時(CO=O)、AND回路600は2
進ルベル出力を発生する3AND回路600の出力は、
出力数がZレジスフ53へ負荷されるのと同時に、2進
ラッチ回路602へ負荷される。
もしAND回路600の出力が、2進ルベルにあればそ
の値はラッチ回路602へ負荷され、補数検知器出力状
態線67上には、2進ルベルを示す補数形式が発生され
る。
自動的再補数化が望まれる場合、状態線67上のCD状
態信号がデータ・プロセッサの制御部分へ与えられる。
そのような制御部分は、適当な時には再補数化動作を開
始するように働く。
ラッチ回路602の出力におけるルベル信号を示す補数
形式は、可視状態表示を与えるため、ランプ駆動回路6
03をして表示ランプ604を点燈せしめる。
演算ユニット10が、高速データ・プロセッサ中で使用
され、かつ自動補数化が行われる場合、ランプ駆動器6
03とランプ604は省略される。
何故ならば、動作の速度は可視表示を非実際的にするか
らである。
第1図の演算ユニットの動作 第1図の演算ユニット10の重要な特徴は、多デジット
・ゾーン10進オペランドを先ずパック形式に変換する
ことなく、演算動作を遂行する能力である。
更に、そのような演算動作は、純2進数を処理するのに
適し、かつゾーン10進数を適合させるための特別な手
段を有しない並列2進加算器20によって遂行される。
この事が望ましい理由は、それが2進オペランド、ゾー
ン10進オペランド、パンク10進オペランドに対して
、1つの同じ2進加算器を使用することが可能だからで
ある。
換言すれば、ゾーン10進能力は、通常型のデータ・プ
ロセッサ動作を犠牲にすることなく付加される。
ゾーン10進オペランドを通常の2進加算器20で処理
する能力は、A及びB入力修正器23゜33、及び出力
訂正器50の使用によって達成される。
A及びB入力修正器23,33は、ゾーン10進オペラ
ンドを処理している時、オペランドのゾーン及び符号フ
ィールドを予め条件すけて、加算器20内の演算動作に
混乱が生じないようにする。
加算器20における演算動作の完了の後、出力訂正器5
0は、結果数のゾーン及び符号フィールドを正しい条件
へ戻すために使用される。
10進数以外のものを処理する時、入力修正器23.3
3、及び出力訂正器50における10進及び符号フィー
ルドの先廻り条件ずけ及び事後の条件すけ機能は無能化
される。
この事は、そのような処理が通常の方法でなされるよう
にする。
欠に、ゾーン10進数を処理している場合のユニット1
0の典型的動作が説明される。
具体的には、次の例が2つのゾーン10進数の加算を説
明するために使用される。
16進法表示(前記の表3を参照)が、ここで使用され
、かつ以下の説明を通して使用される。
何故ならば、それが2進化10進デジツトに生じること
を説明する最良の方法だからである。
更に、それは数字に対する「1111」ゾーン・コード
を1つの16−焦デジットFによって表現することを可
能ならしめる。
故に、上記の例におけるFは、2つの入力オペランド、
及び期待される結果におけるゾーン・フィールドを表わ
す。
実際には、各科の数における右端のFは符号フィールド
であり符号コードは「正」を表示する「1111」であ
る(前記の表2を参照)。
故に、上記の例における全ての遂は、正の数である。
次の例が、ゾーン10進減算動作の例として使用される
この例における2つの入力オペランドは、加算の例の場
合と同じである。
A及びB入力修正器23.33によって与えられる入力
修正(又は入力特注化)の目的は、入来するゾーン10
進データを変更することによって、2つの入力オペラン
ドが加算器20の中で相互に加算される時、キャリーが
適当なゾーン及びデジット境界に正しく伝播するように
することである。
この入力特性化には、2つの局面がある。
1つの局面は、入力オペランドにおけるゾーン(及び符
号)フィールドに関連し、他の局面は入力オペランドに
おけるデジット・フィールドに関連する。
先ずデジット・フィールドを考えると、10進演算にお
いては数のベースは10であり、従って相互に加算され
る2つのデジットは、9より大きい全ての結果について
、次に高いデジットへキャリーを発生することに注意す
べきである。
しかし2進化10進デジツトは、4ビツト2進コード・
デジットである。
そのような4ビット方式は、16進方式(ベースは16
)を構成する。
換言すれば、4ビツト2進コード・デジットは、実際に
は16進デジツトである。
故に、2つのそのようなデジットが相互に加算される時
、それらは15(16進のF)より大きい全ての結果に
ついて、次に高いデジットへキャリーを発生する。
従って、これらの数のベース差は6であるから(16−
10=6)、B入力修正器33を通る各々の2進化10
進デジツト・フィールドは、6だけ増加され、2進加算
が加算器20内で起る時、デジット・フィールドからの
キャリー・アウトは正しいものになる。
表5は、「+6」特注化機能を経た後の全ての有効な入
力10進デジツト及び関連した16進表現を示す。
上記特性化機能は、加算動作を遂行している時、B入力
修正器33によって与えられる1A側入力オペランドに
おけるデジット・フィールドは、それがA入力修正器2
3を通る時に修正される。
もしデジット・キャリーが、加算器20内の間に発生さ
れると、次の高順位の結果デジットが「1」だけ増加さ
れねばならない。
しかし、ゾーン10進形式における次の高順位フィール
ドは、ゾーン・フィールドである。
従って、低順位10進デジツト結果フイールドからゾー
ン・フィールドへ来るキャリーは、ゾーン・フィールド
を通って伝播され、それが忠実に次の高順位10進デジ
ツト・フィールドへ入力されねばならない。
これは、全てのA個入力ゾーン・フィールド・ビットを
2進O値へ強制し、全ての8個入力ゾーン・ビットを2
進1値へ強制することによって達成される。
加算器20内で加算を遂行する時、ゾーン・フィールド
へ来るキャリーは、以下に示すようにゾーン・フィール
ドを伝播される。
EBCDICコードについては、入来する8個入力オペ
ランドのゾーン・フィールドは、既に「1111」のゾ
ーン・コードを有することに注目されたい。
故に、もし所望ならば、8個入力オペランドのゾーン・
フィールドは修正されないで、B入力修正器33を通さ
れてよい。
勿論、符号フィールド・ビットは、B入力修正器33に
よって「1111」へ必ず設定されるようにすることが
必要である。
これまでの実施例において使用される手順は、B入力オ
ペランドが修正器33を通る時(前述した如く、この事
は、ゾーン・フィールド・ビットについては必要でない
)全てのゾーン・フィールド及び符号フィールド・ビッ
トを2進ルベルへ強制することである。
前述した例のゾーン10進加算に対する2つの入力オペ
ランドは、表6に示されるようにA及びB入力修正器2
3,33によって特性化される。
B側入力におけるデジット・フィールドの各々に対する
デジット値は、「6」だけ増加されることに注意された
い。
表6の右側に示される犠牲化後の2進ビツト・シーケン
スは、加算器20の左右の入力へ与えられる2つの値で
ある。
本実症例のデータ・フローの幅は4バイトであるから、
上記の3バイトのビット・シーケンスは、加算器20に
対する入力の低順位部分のみを表わすことに注意された
い。
加算器20への左側入力に対する高順位2バイトは、1
6進表示を使用すれば「0000」となる。
右側入力については、「F6F6」である。
2つの最初のOデジット・フィールドに対する「+6」
動作の効果に注意されたい。
説明を簡単にするため、高順位2バイトについては、以
後の説明を省略する。
ゾーン10進減算動作において、ゾーン及びデジット・
フィールドのA個入力特注化は、前述した加算動作の場
合と同じである。
更に、B側オペランドに対するゾーン及び符号フィール
ドの入力特注化も同じである。
しかし、B側オペランドにおけるデジット・フィールド
の入力特注化は、幾分違っている。
2進加算器20は、1つの加算器であるから減算動作は
、データが加算器20へ与えられる前に、B側デジット
・フィールドに含まれるデータを補数化することによっ
て遂行される。
デジット値を1+6」だけ増加することは、ベース10
ではなく、ベース16でデジット・フィールドを補数化
することによって達成される。
この事は、デジット・フィールドの2進ビツトを反転し
く1の補数)、加算器20の最低順位段へ「1」のキャ
リー・インを強制する(これは、Cinキャリー・イン
線73によって達成される。
)ことによってなされる。
この事は、2進の2の補数、又は4ビツト・デジット・
ベースで16の補数を発生する。
その事は、10の補数をとり、6を加えることに等しい
故に、「+6」動作は、補数化動作に伴うものである。
表7は、ゾーン10進減算動作について、補数B入力修
正器33によって与えられるB側デジット・フィールド
特注化を終った後の有効な入力10進デジツト、対応し
た16進表現及び2進表現を示す。
ゾーン10進減算動作においては、前記の減算例に対す
る入力オペランドは、表8に示す如く、A及びB入力修
正器23.33によって特性化される。
この減算特性化を表6に示される加算特性化と比較して
みると、B側オペランドに対するデジット・フィールド
に差が生じていることが分る。
表8の右に示される特性化された2進ビツト・シーケン
スは、減算動作のために加算器20の2つの込力側へ与
えられる数値である。
加算例において、特性化されたA及びBオペランドのた
めに、加算器20内で生じる2進加算は表9に示される
減算例において、加算器20内で起る2進加算は、表1
0に示される。
これらの加算及び減算において、加算器20内で生じる
hexフィールド・キャリー・アウトC4゜C5,C6
,C7に注目すべきである。
何故ならば、これらのhexフィールド・キャリーは適
用されるべき出力訂正の型式を決定するからである。
表9及び表10において、2バイト・オペランドは右端
を揃えられ、従って4バイト加算器20内の2つの低順
位バイトに対する段によって処理される。
更に、高順位の2つのバイトは、2バイトオペランドに
よって必要とされないが、hexフイ−ルド・キャリー
・アウトCO,C1,C2゜C3を考慮に入れることが
必要である。
hexフィールド・キャリー・アウトは、加算器20の
出力に現われるデータを有効なゾーン10進形式に変換
するため、出力訂正器50で必要な訂正動作を決定する
デジット・フィールドに対する訂正が先ず考慮される。
デジット・フィールドに関しては、8個入力デジット・
フィールドの値が6だけ増加されて、ベース16に対し
て適当なデジット・フィールド・キャリーが発生された
ので、加算器出力デジット・フィールド訂正は、デジッ
ト・フィールド・キャリ・が、加算器20内の加算の間
に生じた(C=1)デジット・フィールドについては必
要でない。
しかし、もしデジット・キャリーが、デジット境界で発
生しなかったならば(C=0)、対応する出力デジット
・フィールドの値は、8個入力デジット・フィールドに
対する6の増加を補償するため、6だけ減せられねばな
らない。
本例の場合、この事は、hexl及びhex3の高順位
デジット・フィールド、及びhex 5及びhex
7の低順位デジット・フィールドに適用される。
表11図は、対応するデジット・フィールド・キャリー
・アウトを発生しない加算器20出力デジツト・フィー
ルドについて、デジット・フィールド出力訂正を示す。
ゾーン・フィールドに対する出力訂正の必要性は、キャ
リーに依存するが、hexフィールド・キャリー・アウ
トの反対の値に対してなされる。
具体的には、もしゾーン・フィールド・キャリー・アウ
トが発生されると、加算器出力ゾーン・フィールドは、
オール1であり出力訂正は必要でない。
しかし、もしゾーン・フィールド・キャリー・アウトが
発生されれば、加算器出力ゾーン・フィールドはオール
0であり、これはオール1を強制して、有効なゾーン・
フィールド・コードを発生する必要がある。
表12は、4ビツトhexフイールドに対するキャリー
・アウトの値に基いて、ゾーン及びデジット・フィール
ドのためにとられる訂正動作を要約する。
前述した如く、本実施例はもし必要であれば、デジット
・フィールド位置を訂正するに当って6だけ減するので
はなく、10(16進のA)だけデジット・フィールド
値を増加することによって行う。
故に、訂正は6を減じるのではなく、6の補数を加える
ことによってなされる。
特定のデジット値を10だけ増加することによって訂正
動作を遂行する時、デジット・キャリーの伝播は生じな
い。
換言すれば、そのようなデジット・キャリーは無視され
る。
加算例において、表12に掲げた訂正動作を加算器20
出力データへ適用すると、その結果は表13のようにな
る。
減算例において、同じ訂正動作を加算器出力データへ適
用すると、その結果は表14のようになる。
期待される結果と表13及び表14の出力結果とを比較
してみると、訂正された出力データは、実際に正しい答
を表わしていることが分る。
そして、これらの答は正しいゾーン10進形式になって
いる。
第10図−第13図に示された出力訂正器50の実施例
において、出力訂正器は、これまで説明したものと幾分
違った方法で、ゾーン・フィールド訂正動作を行う。
具体的には、ゾーン・フィールドは、単に各々のゾーン
・フィールド・ビットを2進ルベルへ強制することによ
って訂正される。
この場合、加算器20からのゾーン・フィールド・キャ
リー・アウトは無視される。
これら2つの方法のいずれもゾーン・フィールドを訂正
するために有効であり、正しい結果を与える。
以下の説明では、ゾーン・フィールド・キャリー・アウ
トを使用する方法を採用することにする。
他の補数演算における如く、演算ユニット10は、ゾー
ン10進出力を補数形式で発生することができる。
この事は、減算動作において、B個入力オペランドの数
値が、A個入力オペランドの数値より大きい時に起る。
表15は、前述の減算例を繰返した結果を示すが、A及
びBオペランドの値は逆になっている。
期待される結果は、負の49である。
第3デジシト位置の「D」は負の符号を示す。
しかし、ユニット10によって発生され、Zレジスタ5
3へ与えられる出力は、−49の10に対する補数、即
ち+51である。
Zレジスフ53へ与えられる出力数が、補数形式にある
ことのハードウェア表示は、C0hexフイールド・キ
ャリー・アウトについて2進0が生じることである。
勿論、このキャリー・アウトは、全体としての加算器2
0に対するキャリー・アウトである。
故に、10進減算動作において、もしCOキャリー・ア
ウトが存在すれば(CO=1)、Zレジスフ53へ与え
られる数は、真の大きさの形式にあり、演算動作は完全
である。
しかし、もしCOキャリー・アウトが存在しなければ(
CO−0)、Zレジスフ53へ与えられる数は、補数形
式にある。
この場合、補数形式の数は、オール0のA個入力からそ
の数を減算し、結果の再補数化された数の符号を再補数
化前の元の出力数の符号の反対にすることによって変換
され得る。
表15で使用された例の再補数化動作は、表16に示さ
れる。
再補数動作において、ゼロのCO値が期待される。
それ以上の再補数化動作は、その結果として遂行される
べきではない。
これまでの加減算の例において、A及びBオペランドの
符号は正であった。
勿論、符号が常にそ□うであるとは限らない。
成る場合には、入力オペランドが負の符号を有する。
この場合、演算ユニット10によって実際に実行される
演算動作は、線41上の外部選択信号によって要求され
る演算動作と同じではない。
例えば、もし加算動作が要求されたにも拘らず、入力オ
ペランドの1つが正であり、他のオペランドが負であれ
ば符号処理器40は演算ユニット10に減算動作を遂行
せしめる。
この事は、正しい出力の答を真の大きさの形式で与える
逆に、減算動作が要求されたにも拘らず、入力オペラン
ドが異った符号であれば、符号処理器40は、ユニット
10に加算動作を遂行させて正しい真の形式の出力を得
るようにする。
符号処理機能の典型的な例が、表17から表20までに
示される。
第17表及び第18表は、ゾーン10進数に対するもの
であり、表19及び表20は、パック10進数に対する
ものである。
ゾーン10進数では、最後から2番目のhex記号は符
号コードを示す。
パック10進数では、右端のhex記号は符号コードを
示す。
これらのコードは、表2に掲げられた10進符号コード
のリストに従う。
結果の出力数の符号は、常にAレジスタ21へ与えられ
たA個入力オペランドの符号の極性と同じである。
しかし、A個入力符号コードは、常に優先出力符号コー
ドへ変換される。
出力符号コードによって示される極性は、常にA個入力
符号コードによって示される極性と同じである。
前述した如く、演算ユニット10は、結果を補数形式で
発生することができる。
もし演算動作が減算であり、8個入力オペランドの数値
がA個入力オペランドの数値よりも大きさにおいて犬で
あれば、Zレジスタ53へ与えられる結果の出力数は、
補数形式にありかつ再補数化動作が必要である。
再補数化動作は、Zレジスタ53の結果数をユニット1
0のB側へ通し、それをゼロに等しいA個入力値から減
算することによって達成される。
再補数化動作において、演算動作は再補数化されつつあ
る数の符号に拘らず、常に減算である。
結果の再補数化数に対する正しい符号は、それが出力訂
正器50の出力に現われる時、再補数化のためにBレジ
スタ31へ戻された数の符号に対して、極性において反
対である。
表21は、ゾーン10進数の典型的な対(pair)に
対する再補数化動作を示し、表22は、パック10進数
の典型的な対に対する再補数化動作を示す。
最終結果の符号は、各場合において、補数結果の符号に
対して、極性において反対であることに注意されたい。
演算ユニット10は、10進演算の効率をかなり改善す
る。
もし10進演算動作の出力結果が、補数形式ではなく真
の形式であれば、演算ユニット10による10進演算の
速度は、対等の幅のオペランドに対する2進演算と変ら
ない。
もし10進動作が補数形式の結果を発生するならば、そ
れは再補数化されねばならず、従って補数結果が有効で
あって許容できる出力である2進演算よりも「1」動作
だけ遅くなる。
これまでの例の説明において、2つのオペランドを算術
的に結合する2進演算回路は、キャリールック・アヘッ
ド並列2進加算器20として表わされた。
しかし、加算器20で表わされる演算回路は、並列2進
減算器の形式をとってもよい。
世えば、4バイト借用型ルツク・アヘッド並列2進減算
器が、4バイト・キャリー型ルック・アヘッド2進加算
器20の代りに使用され得る。
もし減算器が、加算器の代りに使用されれば、加算及び
減算の制御機能は反転される。
具体的には、8個入力オペランドは加算動作を遂行する
ために補数化され、減算動作を遂行する時には補数化さ
れない。
更に、hexフィールド・キャリー・アウト信号は、借
用アウト信号に代られる。
換言すれば、減算器はキャリー・イン及びキャリー・ア
ウト信号ではなく、借用イン及び借用アウト信号に関係
している。
これまでのハードウェアの説明では、主として「正」論
理を使用した回路結合について説明した。
しかし、本願実施例は、「負」論理又は「正」論理と「
負」論理の結合を使用した回路結合に関連して説明する
こともできる。
更に、本願実施例の論理回路及び切換回路等の構成は、
AND、OR。
NOT回路等により実施するものとした。
これは、理解を容易ならしめるためであって、その全部
又は一部をNAND回路又はNOR回路等の他の論理回
路を使用して、実施できることに注意すべきである。
【図面の簡単な説明】
第1図は本発明に従って構成された演算ユニットのブロ
ック図、第2図は第1図の演算ユニットによって処理さ
れ得るゾーン10進及びパック10進データ形式を示す
図、第3図は第1図の演算ユニットへ与えられる各種の
外部制御信号を発生する制御ユニットの一部を示す図、
第4図は第1図のA入力修正器の構成を示す論理回路図
、第5図は第、4図のA入力修正器における「hex6
Jゲートの構成を示す論理回路図、第6図は第1図の補
数B入力修正器の構成を示す論理回路図、第7図は第6
図の「hex6」論理ユニットの構成を示す論理回路図
、第8図は第1図の符号処理ユニットの構成を示す論理
回路図、第9図は第8図の符号処理ユニットで使用され
るマイナス符号検知器の構成を示す論理回路図、第10
図は第1図の出力訂正器の構成を示す論理回路図、第1
1図は第10図の「hex4J論理ユニットの構成を示
す論理回路図、第12図は第10図の「hex6」論理
ユニットの構成を示す論理回路図、第13図は第10図
の1−hex71論理ユニットの構成を示す論理回路図
、第14図は第1図の補数検知器の構成を示す論理回路
図である。 20・・・・・・2進加算器、21・・・・・・Aレジ
スタ、23・・・・・・A入力修正器、31・・・・・
・Bレジスタ、33・・・・・・補数B入力修正器、5
0・・・・・・出力訂正器、53・・・・・・Zレジス
タ。

Claims (1)

  1. 【特許請求の範囲】 1 ゾーン形式で表わされた2つの2進符号化数につい
    て算術演算を遂行する演算ユニットにしてそれぞれが複
    数ビットから成る2つの2進ビツト・シーケンスを算術
    的に結合してその算術結果を表わす1つの2進ビツト・
    シーケンスを発生する2進演算回路と、 ゾーン形式で表わされた第1の2進符号化数を受取り、
    該2進符号化数の各ゾーン・フィールドにある非ゼロ・
    ビットをそれぞれ2進値0に変更するとともに、変更後
    の該2進符号化数を前記2進演算回路の第1入力側へ供
    給する第1の修正回路と、 ゾーン形式で表わされた第2の2進符号化数を受取り、
    該2進符号化数の各ゾーン・フィールドにあるゼロ・ビ
    ットをそれぞれ2進値1に変更するとともに、変更後の
    該2進符号化数を前記2進演算回路の第2入力側へ供給
    する第2の修正回路と、 前記2進演算回路の出力側へ結合され、各ゾーン・フィ
    ールドのビットが正しいゾーン・コード値を有する2進
    ビツト・シーケンスを発生する第3の修正回路とを備え
    て成る、演算ユニット。
JP51067876A 1975-06-17 1976-06-11 演算ユニツト Expired JPS5811652B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/587,797 US4001570A (en) 1975-06-17 1975-06-17 Arithmetic unit for a digital data processor

Publications (2)

Publication Number Publication Date
JPS52143A JPS52143A (en) 1977-01-05
JPS5811652B2 true JPS5811652B2 (ja) 1983-03-04

Family

ID=24351237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51067876A Expired JPS5811652B2 (ja) 1975-06-17 1976-06-11 演算ユニツト

Country Status (5)

Country Link
US (1) US4001570A (ja)
JP (1) JPS5811652B2 (ja)
DE (1) DE2626432C2 (ja)
FR (1) FR2315122A1 (ja)
GB (1) GB1512476A (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4125867A (en) * 1976-10-27 1978-11-14 Texas Instruments Incorporated Electronic calculator or microprocessor having a hexadecimal/binary coded decimal arithmetic unit
JPS553064A (en) * 1978-06-22 1980-01-10 Fujitsu Ltd Binary/decimal adder device
CA1145054A (en) * 1979-01-02 1983-04-19 Honeywell Information Systems Inc. Data processing system with means to align operands
US4245328A (en) * 1979-01-03 1981-01-13 Honeywell Information Systems Inc. Binary coded decimal correction apparatus for use in an arithmetic unit of a data processing unit
DE3040931C1 (de) * 1980-10-30 1982-04-29 Siemens AG, 1000 Berlin und 8000 München Verfahren und Anordnung zur Verknuepfung von Operanden variabler Laenge in Datenverarbeitungsanlagen
JPS5827241A (ja) * 1981-08-12 1983-02-17 Hitachi Ltd 十進演算装置
DE3202757A1 (de) * 1982-01-28 1983-08-04 Jurij Egorovič Moskva Čičerin Mikrocomputer-prozessor
JPS58219641A (ja) * 1982-06-14 1983-12-21 Mitsubishi Electric Corp マイクロコンピユ−タの演算装置
US4799181A (en) * 1986-09-30 1989-01-17 Honeywell Bull Inc. BCD arithmetic using binary arithmetic and logical operations
US4866656A (en) * 1986-12-05 1989-09-12 American Telephone And Telegraph Company, At&T Bell Laboratories High-speed binary and decimal arithmetic logic unit
US4805131A (en) * 1987-07-09 1989-02-14 Digital Equipment Corporation BCD adder circuit
GB2293469A (en) * 1994-09-22 1996-03-27 Secr Defence Error detection in arithmetic circuit.
US5752001A (en) * 1995-06-01 1998-05-12 Intel Corporation Method and apparatus employing Viterbi scoring using SIMD instructions for data recognition
US5758336A (en) * 1996-05-30 1998-05-26 Matridigm Corp. Date format and date conversion procedure using a packed binary format
US5978809A (en) * 1997-01-27 1999-11-02 Bemer; Robert W. Method of solving millennium problems of some application programs
US6449610B1 (en) 1999-03-26 2002-09-10 International Business Machines Corporation Memory media and method of processing date data using pseudo zoned decimal format
US7299254B2 (en) 2003-11-24 2007-11-20 International Business Machines Corporation Binary coded decimal addition
US8612500B2 (en) * 2007-01-18 2013-12-17 International Business Machines Corporation Method and decimal arithmetic logic unit structure to generate a magnitude result of a mathematic
US9335993B2 (en) 2011-12-29 2016-05-10 International Business Machines Corporation Convert from zoned format to decimal floating point format
US9329861B2 (en) 2011-12-29 2016-05-03 International Business Machines Corporation Convert to zoned format from decimal floating point format
JP2013242700A (ja) * 2012-05-21 2013-12-05 Internatl Business Mach Corp <Ibm> コード最適化方法、プログラム及びシステム
CN117743242A (zh) * 2023-11-22 2024-03-22 中金金融认证中心有限公司 一种低速cpu核间偶数末位电平补偿系统和补偿方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3508037A (en) * 1967-01-30 1970-04-21 Sperry Rand Corp Decimal add/subtract circuitry
DE1915493C3 (de) * 1969-03-26 1975-09-04 Siemens Ag, 1000 Berlin Und 8000 Muenchen Schaltung für Multiplikation nach dem Prinzip der fortgesetzten, stellenversetzten Addition
US3752394A (en) * 1972-07-31 1973-08-14 Ibm Modular arithmetic and logic unit

Also Published As

Publication number Publication date
GB1512476A (en) 1978-06-01
DE2626432C2 (de) 1985-01-17
JPS52143A (en) 1977-01-05
FR2315122A1 (fr) 1977-01-14
DE2626432A1 (de) 1977-01-13
US4001570A (en) 1977-01-04
FR2315122B1 (ja) 1979-09-21

Similar Documents

Publication Publication Date Title
JPS5811652B2 (ja) 演算ユニツト
US5497341A (en) Sign-extension of immediate constants in an ALU using an adder in an integer logic unit
KR100319352B1 (ko) 3입력산술논리유닛및데이타처리시스템
US3993891A (en) High speed parallel digital adder employing conditional and look-ahead approaches
KR100348951B1 (ko) 조건부레지스터쌍으로부터의메모리저장
US5734880A (en) Hardware branching employing loop control registers loaded according to status of sections of an arithmetic logic unit divided into a plurality of sections
US5644522A (en) Method, apparatus and system for multiply rounding using redundant coded multiply result
US5299319A (en) High performance interlock collapsing SCISM ALU apparatus
JPH0850575A (ja) プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良
JPH087083A (ja) 算術及び論理混合組合せを形成する3入力算術論理装置
JPH07287567A (ja) 複数の独立区分と各区分からの結果を記憶するレジスタとを有する算術論理装置
US5426600A (en) Double precision division circuit and method for digital signal processor
JPH0542011B2 (ja)
JP2683488B2 (ja) 3−1論理演算装置
JPH086544A (ja) 直交データ変換用回転レジスタ
JPH0823811B2 (ja) 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構
JPS5829539B2 (ja) 算術演算装置
US6499046B1 (en) Saturation detection apparatus and method therefor
EP0643352A1 (en) Self-checking complementary adder unit
US6202078B1 (en) Arithmetic circuit using a booth algorithm
JPH10187416A (ja) 浮動小数点演算装置
US4914579A (en) Apparatus for branch prediction for computer instructions
US7003540B2 (en) Floating point multiplier for delimited operands
US6519620B1 (en) Saturation select apparatus and method therefor
US5926407A (en) Combined add/shift structure