JPS6297032A - プレシフタを備えたコンピユ−タ - Google Patents

プレシフタを備えたコンピユ−タ

Info

Publication number
JPS6297032A
JPS6297032A JP25278386A JP25278386A JPS6297032A JP S6297032 A JPS6297032 A JP S6297032A JP 25278386 A JP25278386 A JP 25278386A JP 25278386 A JP25278386 A JP 25278386A JP S6297032 A JPS6297032 A JP S6297032A
Authority
JP
Japan
Prior art keywords
register
instruction
data
preshifter
shift
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
JP25278386A
Other languages
English (en)
Inventor
Jiei Mahon Maikeru
マイケル・ジェイ・マホン
Baumu Aren
アレン・バウム
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.)
Hewlett Packard Japan Inc
Original Assignee
Yokogawa Hewlett Packard Ltd
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 Yokogawa Hewlett Packard Ltd filed Critical Yokogawa Hewlett Packard Ltd
Publication of JPS6297032A publication Critical patent/JPS6297032A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プレシフタを備えたコンピュータに係り、特
に算術論理演算袋!(ALtJ)の1つの入力に接続さ
れたプレシフタを備え、ユニットインデキシング(un
it indexing)や、シフト−加算の基本演算
を1つの命令サイクルで実行することができるコンピュ
ータに関する。
〔従来技術及びその問題点〕
従来一般的に、算術演算命令はシフト命令とは別の命令
サイクルで実行されていた。即ち、シフト命令も算術演
算命令もそれぞれ一つの命令サイクルで実行されていた
。シフト及び算術演算の両方を一つの命令サイクルで実
行することができないために、ユニット・インデキシン
グ、あるいはシフト及び加算乗算の基本演算を行う命令
を一つの命令サイクルで実行することができなかった。
従来例では、ユニット・インデキシングを行うよりむし
ろ、コンピュータ命令が、アドレス可能なメモリの最小
のユニットを1キヤラクタあるいは1バイトにすること
によって、キャラクタを扱うのに一番能率的に働くよう
になっていた。しかし、メモリ参照の大多数は、1バイ
トの倍数(例えば、2・4・8倍)の長さをもったユニ
ットに対してなされる。このような構成では、レジスタ
の内容が、各要素が複数のバイトからなるような配列へ
のインデックスとして用いられるときに、問題が生じる
場合がある。各インデックスは、バイト単位で表現され
ているので、配列の要素の番号に要素当たりのバイト数
を掛けなければならなかった。
典型的な従来例では、乗算演算は命令セントに含まれて
いる。そのようなコンピュータ・アーキテクチャ−では
、特殊なハードウェアを用いたり、マイクロコード制御
や多様なデータ・バスを用いて乗算を実行していた。
〔目 的〕
本発明は、上記した従来技術の問題点を解決するために
なされたものであって、その目的とするところは、ユニ
ット・インデキシングを行うことによる配列の要素など
へのアクセスの高速化を図り、シフト−加算命令を用い
た乗算等の高速化を図ることである。
〔概 要〕
本発明の実施例によるコンピュータは、ALUの入力の
1つに接続されたプレシフタを備えている。コンピュー
タ命令の中に符号化されたデータフィールドは、プレシ
フト動作が実行されるべきか否か、および実行されるべ
きプレシフトの量を示している。
インデックス修飾されたロード命令又はストア命令を実
行する命令は、インデックスレジスタがアクセスされた
データの各ユニットに含まれたバイトの数で乗算するべ
きか否かを示す。
この乗算は、ALUによってアドレスの計算を行う前に
、インデックスレジスタの内容をプレシフトすることに
よって実行される。
乗算は、シフト、加算、減算、シフト−加算命令を用い
ることにより達成される。乗算が必要な場合には、サブ
ルーチンが2つの演算数のうち小さい方を選択してその
演算数を、例えば3ビットのセグメントに分割する。各
3ビットの区分は、0.1.或いはそれ以上のシフト、
加算、減算、又はシフト−加算命令を実行することによ
って、より大きい方の演算数と掛は合わせることができ
る。各3ビットの区分に使用されるシフト命令、加算命
令、減算命令、及びシフト−加算命令を決定するために
、表にアクセスしてよい。
〔実施例〕
以下、本発明を図面に示す実施例に基づいて説明する。
第1図において、命令110は、オペレーションコード
・フィールド111 と、シフト量・フィールド113
と、プレシフタ・イネーブル・フィールド112 とを
備えている。プレシフタ・イネーブル・フィールド11
2は、デコーダ104に対して、プレシフタ103をイ
ネーブルにするか否かを示す。
オペレーションコード・フィールド111及びシフト量
・フィールド113の中に符号化された情報は、デコー
ダ104に対してプレシフタ103が動作する場合実行
すべきシフト量を示す。プレシフタ103は、複数のレ
ジスタ101からALU102に対して転送されるデー
タをインターセプトする。複数のレジスタ101からの
データは、シフタ105を介する経路をも有する。、(
第4図においては、最上位3ビットのパターンを分類す
るために一連のチェックを行うものを示しているが、そ
のかわりに、8つのコードセグメントの1つへ計算によ
る分岐をしてもよい。) 例えば、複数のレジスタ群101の中の、一つの汎用レ
ジスタ1011は、配列の中へのインデックス・アドレ
スとして用いることができる。もし、命令110がイン
デックス修飾されたロード、またはストア命令を含んで
いる場合、オペレーションコード・フィールド111 
は、ロードまたはストアが実行されるべきものであるこ
とを示す。ブレシフタ・イネーブル・フィールド112
は、汎用レジスタ1011からのデータに対してシフト
が実行されるべきことを示す。シフト量・フィールド1
13は、汎用レジスタ1011からのデータに対して実
行されるべきシフトの量を示す。例えば、命令110が
インデックス修飾されたバイトのロードである場合、シ
フト量フィールド113は「0」となる。命令110が
、16ビットの半語長のロードである場合、シフト量フ
ィールド113には「1」が入る。もし、命令110が
、インデックス修飾された32ビットのロードである場
合、シフト量フィールド113には「2」が入る。もし
、命令110が64ビット倍語長のロードである場合、
シフト量・フィールド113には「3」が入る。シフト
は、データがレジスタ1011を離れた後起こるので、
レジスタ1011に残ったデータは変化しない。汎用レ
ジスタ1011から出てシフトされたデータは、汎用レ
ジスタ1012の内容に加えられる。
第3図は、ユニットインデキシングを使用するプログラ
ムのフローチャートである。配列2に書かれた最初の1
00個の内容が、配列1にロードされる。バイト毎のア
ドレスしかできないコンピュータシステムにおいては、
もし、配列1と配列2とが32ビットワードからなる場
合には、コンピュータが、配列1又は配列2のロケーシ
ョンに対するアクセスがなされる毎にインデックスに4
を掛けて使用することが必要である。本発明では、2ビ
ットのシフトを行うユニット・インデキシング命令によ
り、配列l及び配列2の各ロケーションへの速やかなア
クセスができるようになる。
プレシフタ103は、ソフトウェアにより高速乗算を行
うためのシフト−加算命令を供給するためにもALUに
接続されて使用される。たとえば、第4図は、30ビッ
トの整数Ml及び30ビットの整数M2の掛は算を実行
するための、シフト、加算、及びシフト−加算命令を使
ったプログラムのフローチャートである。ステップ40
2においてプログラムは、カウンタC及び結果Rを初期
化する。結果Rは、少なくとも、60ビットの整数であ
る。ステップ403から409で、整数M1の最上位3
桁が、チェックされる。その値は、0から7までの整数
となる。もし、整数M1の最上位3桁が全て0では無い
場合、結果Rはステップ414乃至420の1つによっ
て変更される。
たとえば、整数M1の最上位3桁の値が1であった場合
、整数M2の値がその時のRの値に加算され、その結果
はRにストアされる。整数M1の最上位3桁の値が2で
あった場合、整数M2の値は1ビットシフトされ、その
時のRの値に加算され、その結果がRにストアされる。
もし、整数M1の最上位3桁の値が3であった場合、整
数M2の値はその時のRの値に加算され、整数M2の値
が1ビットシフトされ、その時のRの値に加算され、そ
の結果がRにストアされる。もし、整数M1の最上位3
桁の値が4であった場合、整数M2の値は2ビットシフ
トされ、その時の只の値に加算され、その結果がRにス
トアされる。もし、整数Mlの最上位3桁の値が5であ
った場合、整数M2の値は2ビットシフトされ、その時
のRの値に加算され、整数M2の値がその時のRの値に
加算され、その結果がRにストアされる。もし、整数M
1の最上位3桁の値が6であった場合整数M2の値は2
ビットシフトされ、その時の只の値に加算され、整数M
2の値は1ビットシフトされ、その時のRの値に加算さ
れ、その結果がRにストアされる。もし、整数M1の最
上位3桁の値が7であった場合、整数M2の値は2ビッ
トシフトされ、その時のRの値に加算され、整数M2の
値が1ビットシフトされ、その時のRの値に加算され、
整数M2の値がその時のRの値に加算され、その結果が
Rにストアされる。
ステップ411で、カウンタCは、プログラムが10回
まわったかどうかを監視する。10回まわった場合、プ
ログラムは終了する。そうでないときには、ステップ4
12で、カウンタCは増加し、Mlは3桁分左にシフト
して、最上位3桁が消える。そして、結果は3桁分左に
シフトして、最上位3桁がセーブされる。更に、プログ
ラムは、図示のようにループして戻る。
〔効 果〕
本発明は、上記のように構成され、作用するものである
から、ユニット・インデキシングを行うことによって配
列の要素などへのアクセスを高速化することができ、シ
フト−加算命令を用いて乗算を高速に実行することがで
きるという効果が得られる。
【図面の簡単な説明】
図面は本発明の実施例に係り、第1図は算術論理演算装
置による処理の前にプレシフタによる可変シフトを行う
コンピュータシステムのブロック図、第2図は第1図実
施例の代替実施例を示すブロック図、第3図は本発明に
よるユニット・インデキシングのフローチャートを示す
図、第4図はシフト−加算命令による乗算の実行を行う
フローチャートを示す図である。 101:レジスタ群、  1011 :第1のレジスタ
、1012 :第2のレジスタ、 102:算術論理演算装置(A L U)、103ニブ
レジフタ、  104:デコーダ、105ニジフタ、 
   108ニジフタ、110:命令、 111  :オペレーションコード・フィールド、11
2ニブレジフタ・イネーブル・フィールド、113:シ
フト量・フィールド。

Claims (1)

  1. 【特許請求の範囲】 1 第1のレジスタ及び第2のレジスタを含む複数のレ
    ジスタ群と、前記第1のレジスタにストアされたデータ
    と前記第2のレジスタにストアされたデータとの算術演
    算を実行する算術論理演算装置と、命令のデコードを行
    うデコーダと、前記算術論理演算装置と前記デコーダと
    前記複数のレジスタ群とに接続され前記第1のレジスタ
    にストアされたデータを受けて該データを前記命令によ
    って指定された量だけシフトさせ該シフトされたデータ
    を前記算術論理演算装置に供給するためのプレシフタと
    を備えたことを特徴とするプレシフタを備えたコンピュ
    ータ。 2 前記命令の1ビットは、前記プレシフタの付勢状態
    又は非付勢状態を指定するものであることを特徴とする
    特許請求の範囲第1項に記載のプレシフタを備えたコン
    ピュータ。 3 前記プレシフタは、データシフタに含まれ、該デー
    タシフタは、前記第1のレジスタにストアされたデータ
    を受けることができ、前記第1のレジスタにストアされ
    たデータは2つのデータパスに振り向けることができ、
    該第1のデータパスはプレシフタを介して前記算術論理
    演算装置に接続されており、該第2のデータパスはプレ
    シフタと前記データシフタの他の部分とを介して複数の
    レジスタ群に接続されていることを特徴とする特許請求
    の範囲第1項に記載のプレシフタを備えたコンピュータ
    。 4 前記命令は、ユニット・インデキシング命令である
    ことを特徴とする特許請求の範囲第1項に記載のプレシ
    フタを備えたコンピュータ。 5 前記命令は、シフト−加算命令であることを特徴と
    する特許請求の範囲第1項に記載のプレシフタを備えた
    コンピュータ。
JP25278386A 1985-10-23 1986-10-23 プレシフタを備えたコンピユ−タ Pending JPS6297032A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US79058185A 1985-10-23 1985-10-23
US790581 1985-10-23

Publications (1)

Publication Number Publication Date
JPS6297032A true JPS6297032A (ja) 1987-05-06

Family

ID=25151140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25278386A Pending JPS6297032A (ja) 1985-10-23 1986-10-23 プレシフタを備えたコンピユ−タ

Country Status (1)

Country Link
JP (1) JPS6297032A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02287618A (ja) * 1989-04-28 1990-11-27 Nec Corp データ処理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50147249A (ja) * 1974-05-15 1975-11-26
JPS57212549A (en) * 1981-06-25 1982-12-27 Fujitsu Ltd Information processing device
JPS59114637A (ja) * 1982-12-22 1984-07-02 Hitachi Ltd デ−タ処理装置
JPS59225454A (ja) * 1983-06-07 1984-12-18 Fujitsu Ltd オペランドフエツチ制御方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50147249A (ja) * 1974-05-15 1975-11-26
JPS57212549A (en) * 1981-06-25 1982-12-27 Fujitsu Ltd Information processing device
JPS59114637A (ja) * 1982-12-22 1984-07-02 Hitachi Ltd デ−タ処理装置
JPS59225454A (ja) * 1983-06-07 1984-12-18 Fujitsu Ltd オペランドフエツチ制御方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02287618A (ja) * 1989-04-28 1990-11-27 Nec Corp データ処理装置

Similar Documents

Publication Publication Date Title
US5001662A (en) Method and apparatus for multi-gauge computation
US5859789A (en) Arithmetic unit
US8074058B2 (en) Providing extended precision in SIMD vector arithmetic operations
JP3578502B2 (ja) 単一プロセッサにおいて並列データ処理を実行する方法
EP0755015B1 (en) Combining data values
US7716269B2 (en) Method and system for performing parallel integer multiply accumulate operations on packed data
US6128614A (en) Method of sorting numbers to obtain maxima/minima values with ordering
GB2355084A (en) Conditional instruction execution
EP0171190A2 (en) Extended-function arithmetic-logic unit
US4713750A (en) Microprocessor with compact mapped programmable logic array
US4755962A (en) Microprocessor having multiplication circuitry implementing a modified Booth algorithm
US5440702A (en) Data processing system with condition code architecture for executing single instruction range checking and limiting operations
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
JP2002149400A (ja) 複数レジスタ指定が可能なsimd演算方式
US5854939A (en) Eight-bit microcontroller having a risc architecture
JPH07168697A (ja) 倍精度除算回路および方法
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
GB2352308A (en) Conditional instruction execution
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
KR19980041758A (ko) 축소 데이타 경로 폭을 갖는 2-비트 부스 곱셈기
US5386534A (en) Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value
JPH034936B2 (ja)
US6223275B1 (en) Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
US4947364A (en) Method in a computing system for performing a multiplication