JPH0743646B2 - 条件コ−ド発生装置 - Google Patents

条件コ−ド発生装置

Info

Publication number
JPH0743646B2
JPH0743646B2 JP59125442A JP12544284A JPH0743646B2 JP H0743646 B2 JPH0743646 B2 JP H0743646B2 JP 59125442 A JP59125442 A JP 59125442A JP 12544284 A JP12544284 A JP 12544284A JP H0743646 B2 JPH0743646 B2 JP H0743646B2
Authority
JP
Japan
Prior art keywords
instruction
bit
register
carry
condition
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 - Lifetime
Application number
JP59125442A
Other languages
English (en)
Other versions
JPS6014337A (ja
Inventor
マ−ク・アラン・オ−スランダ−
シ−・タング・ハオ
ジヨン・コツク
ピ−タ−・ウイリ−・マ−クスタイン
ジヨ−ジ・ラデイン
Original Assignee
インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン
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 インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン filed Critical インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン
Publication of JPS6014337A publication Critical patent/JPS6014337A/ja
Publication of JPH0743646B2 publication Critical patent/JPH0743646B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06COMPUTING OR CALCULATING; 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/30094Condition code generation, e.g. Carry, Zero flag

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、通常の計算機アーキテクチヤにおける命令セ
ツトよりずつと小規模の命令セツト(以下、基本命令セ
ツトという)しか持たない計算機システムに適した条件
コード発生装置に係る。
〔従来技術〕
最近のVLSI技術の発達により、マイクロプロセツサの設
計に関しては、相反する2つのアプローチが可能になつ
てきた。第1のアプローチは、VLSIを十二分に利用し
て、これまではソフトウエアで実現されていた機能をハ
ードウエアで実現させるものである。当然の結果とし
て、マイクロプロセツサの物理的な構成は複雑になる。
これに対して第2のアプローチは、これまでより多くの
機能をソフトウエアで実現させることによつて、簡単で
且つ高速のマイクロプロセツサを構成しようとするもの
である。後者のアプローチの代表的な例が下記の文献に
記載されている。
(1)George Radin “The 801 Minicomputer" ACM SIG
PLAN NOTICES、第17巻、第4号、1982年4月、39〜47頁 (2)Patterson、Sequin “RISC 1:a Reduced Instruc
tion Set VLSI Computer" IEEE Computer、1982年9
月、8〜20頁 第1のアプローチは、ソフトウエアの開発費用およびそ
の実行速度を考えた場合、年ごとに安くなつているVLSI
開路を用いてシステムを構成した方が全体として価格性
能比を上げることができる、という考えに基いている。
従つて、第1のアプローチをとるシステム設計者は、VL
SI回路の潜在能力に合わせてアーキテクチヤをより複雑
にしている。これは、最近の計算機とその前の計算機、
例えばVAX−11とPDP−11、IBMシステム/38とIBMシステ
ム/3、インテルAPX−432と8086、などを比較してみれば
明らかである。ただしアーキテクチヤが複雑になると、
それだけシステム設計に要する時間が長くなり、設計ミ
スの可能性も増える。この型のシステムは大規模命令セ
ツト計算機システム、略してCISCシステムと呼ばれてい
る。
これに対して、前記の文献に記載されているような第2
のアプローチに従つて構成されたシステムは小規模命令
セツト計算機(RISC)システムあるいは基本命令セツト
計算機システム(以下、PRISMシステムという)と呼ば
れる。PRISMシステムの中心はCPUである。システム設計
の大部分は、ユーザに対してCPUの基本能力を使用可能
にする、ということに向けられている。全体的な構成は
従来のCPUとは幾分異なつている。
以下前記の文献に記載されているCPUの設計原理および
従来のCPUとの違いについて、本発明に関係する範囲内
で少し詳しく説明する。
小型ないし中型の汎用計算機システムにおける通常のCP
Uは、アーキテクチヤを“解釈”する配線マイクロプロ
セツサで構成されている。このようなCPUでは、1つのC
PU命令を実行するために、制御記憶装置にある幾つかの
マイクロ命令が実行される。1つの平均的なCPU命令を
実行するのに必要なマイクロ命令(マシンサイクル)の
数は、使用されているマイクロプロセツサの能力(従つ
て価格)、CPUアーキテクチヤの複雑さ、および実行中
のアプリケーシヨン(即ち命令ミツクス)によつて左右
される。例えば、IBMシステム/370モデル168は1つのシ
ステム/370命令当り3〜6サイクルを要し、モデル148
は10〜15サイクルを要し、システム/360モデル30は30サ
イクル以上になる。
CPUの設計によつては、ルツクアヘツド、並列処理およ
び分岐の記録といつた技術を用いることにより、1命令
当りのマシンサイクル数を1に近づけることができる。
アプリケーシヨンによる相違については、例えば一般に
科学技術計算は浮動小数点命令を使用するが、事務計算
は10進演算を使用する。ところが、アプリケーシヨンコ
ードの代りに走行システム全体を追跡してみると、最も
頻繁に使用される命令に顕著な類似性があることがわか
る。これらの命令はロード、記憶、分岐、比較、整数演
算、論理桁送りといつた比較的簡単な命令であり、基礎
となるマイクロプロセツサの命令セツトにもこれらと同
じ機能を持つた命令がある。従つて、マイクロプロセツ
サのアーキテクチヤがCPUのアーキテクチヤと正確には
一致しない場合であつても、そのような機能についてま
でCPUアーキテクチヤをマイクロプロセツサで“解釈”
することは無駄であると考えられた。
従つて、PRISMシステムのために設計された基本命令セ
ツトはハードウエアで直接実行することができる。即
ち、各々の基本命令は1マシンサイクルしか必要としな
い。複雑な機能は、通常のCPUの場合と同じく、マイク
ロコードで実現される。ただし、PRISMシステムにおけ
るマイクロコードは正にコードであつて、関連する機能
は基本命令セツト上で走行するソフトウエアサブルーチ
ンによつて実現される。
高速の制御記憶装置に記憶されていることから生じるマ
イクロコードの利点は、キヤツシユをデータ用と命令用
とに分けた記憶階層では、事実上消滅する。命令キヤツ
シユは“ページ可能”制御記憶装置として働く。通常の
CPUでは、すべてのアプリケーシヨンにわたつてどの機
能が最も頻繁に使用されるかは、設計者が前もつて決め
る。従つて、例えば倍精度の浮動小数点除算命令は常に
高速の制御記憶装置にあるが、第1レベル割込みハンド
ラは主記憶装置にある。命令キヤツシユを用いた場合
は、最近の使用状況によつて、どの機能がより速く使用
できるかが決まる。
このアプローチによれば特定のジヨブを実行するのに要
するサイクル数は、最悪の場合であつても、複雑な命令
がマイクロプログラムされている通常の小型ないし中型
CPUにおけるサイクル数以下である。更に、基本命令の
定義づけをうまく行えば、必要なサイクル数がより少な
くなることがわかつた。
大部分の命令ミツクスによれば、データの書込みまたは
読取りに関する命令が全体の20〜40%を占め、分岐命令
が15〜30%を占めている。更に、多くのアプリケーシヨ
ンにおいては、記憶装置使用可能領域のかなりの部分が
I/Oのためにさかれている。記憶装置アクセスのためにC
PUが多くのサイクルにわたつて待ち状態へ強制される
と、その間の処理時間が無駄になる。
従つて、PRISMシステムの第2の目的は、記憶装置アク
セスに起因するCPUの遊休時間をできるだけ短くするよ
うに記憶階層およびシステムアーキテクチヤを構築する
ことであつた。まず、CPUのマシンサイクルに匹敵する
アクセス時間を持つたキヤツシユが必要なことは明らか
である。次に、記憶命令が出されても直ちに主記憶装置
への記憶を行わなくてもよいということから、ストアイ
ン方式のキヤツシユが採用された。かりに1つのワード
を記憶するのに10サイクルを要し且つ命令全体の10%が
記憶命令であるとすると、記憶命令およびそれに続く命
令を並行して実行できない限り、CPUの遊休時間は全体
の約半分に達する。
しかし、サイクルごとに新しい命令を必要とし、且つ2
サイクルおきにデータをアクセスするCPU構成において
は、サイクルごとにワードを供給する通常のキヤツシユ
を用いると、性能が低下する。従つて、キヤツシユはデ
ータを含む部分と、命令を含む部分とに分けられた。こ
のようにしてキヤツシユへの使用可能領域は実質的に倍
にされ、外部記憶装置からの命令およびデータの非同期
的取出しが可能になつた。
通常のアーキテクチヤでは、データの記憶は命令を変更
することによつて行われるため、2つのキヤツシユが適
切に同期していることをハードウエアが保証しなければ
ならない。これは、コスト高になり、また性能の低下に
もつながる。命令先取り機構でさえ、記憶有効アドレス
と命令アドレスレジスタの内容を比較しなければならな
いので、複雑になる。
ところが指標レジスタが計算機に導入されるようになつ
て、命令を変更する頻度が大幅に減少され、今日に至る
まで事実上命令が変更されることはなくなつた。従つて
PRISMアーキテクチヤは、上述のようなハードウエア同
報通信を必要としない。その代りに分割キヤツシユの存
在がソフトウエアに対して明示され、必要なときにキヤ
ツシユを同期させるための命令がソフトウエアに与えら
れた。同期が必要なのは、例えばプログラム取出しのよ
うな特別の機能の場合だけである。
同様に、キヤツシユの存在がソフトウエア側からはわか
らない通常のシステムにおいては、I/Oオペレーシヨン
もキヤツシユを介して行う必要がある。その間CPUは待
機していなければならず、またI/Oオペレーシヨンが終
了した後のキヤツシユの内容は、実行中のプロセスの実
効ページセツトではなくなるので、キヤツシユを強制的
に一時モードへ戻さなければならない。高価なシステム
においてすら、デイレクトリを重複して設けると性能低
下を招く。
現在のシステムでは、I/Oオペレーシヨンを開始する責
任は、サブシステム・バツフアとユーザ領域との間で固
定ブロツク転送を行うシステムアクセス方式(IMS、VSA
M、VTAM、ページングなど)に移つてきている。これ
は、アクセス方式がバツフアの位置および範囲だけでな
く、I/O転送が処理される時も知つていることを意味す
る。従つて、このソフトウエアはキヤツシユを適切に同
期させることができ、チヤネル(PRISMシステムにおけ
る直接メモリアダプタ)は外部記憶装置との間で直接転
送を行うことができる。この結果、記憶装置の使用可能
領域の半分がI/Oのために使用中であつても、CPUの性能
が低下することはない。
これまでの説明で云えることは、実現させるのに費用が
かかるか、または低速のシステム機能があり、且つソフ
トウエアが頻繁に生じる性能低下要因を認識できる(あ
るいは機能全体を走行時間からコンパイル時間へ移すこ
とができる)場合には、その機能はハードウエアからソ
フトウエアへ移され、それによつてコスト低減および性
能改善が達成される、ということである。
〔発明が解決しようとする問題点〕
PRISMシステムは、なるべく簡単なハードウエアを用い
て各々の基本命令を単一マシンサイクルで実行しようと
するところに特徴があるが、乗算や除算のような複雑な
演算は特定の基本命令を何度も繰返し実行することによ
つて達成される。その場合、各基本命令の実行条件を示
す条件コードの発生が問題になる。10進演算を例にとる
と、10進数の各桁はBCDと呼ばれる4ビツトの2進化10
進数で表わされているので、桁上げの有無を4ビツトご
とに調べる必要がある。いずれにしても、基本命令を単
一マシンサイクルで実行するという要求があるため、そ
の実行条件を示す条件コードの発生に時間がかかつては
ならない。
従つて本発明の目的は、4ビツトごとの桁上げの有無を
示す複数の桁上げ条件ビツトを含む条件コードをハード
ウエアにより発生する条件コード発生装置を提供するこ
とにある。
〔問題点を解決するための手段〕
本発明の条件コード発生装置は、PRISMシステムのALUで
ビツト0、4、8、‥‥、N(Nは4の倍数)からの桁
上げがあつたときに、それをハードウエアで表示できる
ようにするため、そのような桁上げの有無を示す複数の
桁上げビツトを含む条件レジスタを備えている。これら
の桁上げビツトはALUからの対応する桁上げ信号により
1または0にセツトされる。かくて、基本命令による高
速の10進演算が可能になる。
〔実施例〕
(A)PRISMシステムアーキテクチヤの概要 前述のように、PRISMシステムの中心はCPUであるが、PR
ISMシステムはCPUの他に、主記憶装置、キヤツシユ機
構、母線ユニツトおよびシステムI/Oを含んでいる(第
1図参照)。キヤツシユ機構はデータ部と命令部に分か
れている。
CPUアーキテクチヤは従来のものに比べて非常に簡単で
ある。本PRISMシステムの特徴として、各々の命令はハ
ードウエアにより単一マシンサイクルで実行される。こ
のような命令を基本命令という。基本命令は記憶装置ア
クセス(普通は並行処理される)を除くと、マシンサイ
クルを1つしか必要としない。ここで“基本”という語
は、簡単さというよりもむしろ時間、即ち単一マシンサ
イクルに関係している。基本命令自体は単一マシンサイ
クル内で実行可能であるが、それに伴う実際の機能は複
雑なことがある。
“単一マシンサイクル”という語も幾つかの定義が可能
である。例えば、単一マシンサイクルは“継続的に繰返
される基本システムクロツクの期間であつて、その間に
基本システムオペレーシヨンが遂行されるもの”であ
る。もう少し別の云い方をすれば、単一マシンサイクル
は“基本クロツク期間に含まれるすべてのクロツクパル
スをシステムが1回完全に使用するのに必要な時間”で
ある。従つて、単一マシンサイクル内でCPUのすべての
データフロー機構を1回使用することができる。
PRISMシステムのアーキテクチヤおよびその命令セツト
は下記の3つを達成するものである。
(1)命令当り1サイクルの高速CPUをコンパイルに適
した命令セツトを用いて定義する。
(2)記憶階層、I/O、割振りおよびソフトウエアの活
動がCPUでの命令実行と並行して行われる。これにより
待ち時間が短くなる。
(3)すべてのプログラムをうまくコンパイルできるコ
ードを生成する最適化コンパイラを開発する。
単一マシンサイクルで実行可能であるということに加え
て、命令に関する重要なテーマにその規則性がある。こ
れはハードウエアによる実施を容易にしていた。例え
ば、すべてのオペランドは自分の大きさに合つた境界を
持つていなければならない(半ワードの場合は半ワード
境界、ワードの場合はワード境界)。命令はすべてフル
ワードであり、従つてその境界もフルワード境界であ
る。
レジスタ名フイールドはシステム/370の4ビツトに対
し、1ビツト増えて5ビツトである。これによりレジス
タを32個まで装備できる。従つて、PRISMシステムを用
いて、例えばシステム/370のように16個の汎用レジスタ
を備えた他のアーキテクチヤをエミユレートすることが
できる。システム/370の命令セツトにおける基本命令サ
ブセツトを用いて複雑な命令をエミユレートする場合
は、レジスタ名フイールドの長さ(4ビツト)がネツク
になる。
更に、命令の長さが4バイトあるので、各命令の目的レ
ジスタを明示指定することができ、従つて入力オペラン
ドを壊す必要はない。これは一般に“3アドレス”形式
と呼ばれている。
PRISMシステムは真の32ビツトアーキテクチヤであり、1
6ビツトアーキテクチヤに拡張レジスタを加えたもので
はない。アドレスは32ビツト長であり、算術演算には32
ビツトの2の補数が使用され、論理命令および桁送り命
令は32ビツトのワードを取扱う。桁送りは31ビツトまで
可能である。
PRISMシステムのCPUの主構成要素は、ALU、汎用レジス
タフアイル(32ビツトのレジスタを32個含む)、および
本発明による32ビツトの条件レジスタを含む条件論理で
ある。条件レジスタはオペレーシヨンに関する種々の条
件を示すもので、検査および分岐を可能にする。条件レ
ジスタの各ビツトの意味は下記の表1のとおりである。
条件レジスタの各ビツトは命令によつて変更されない限
り、前の値を保つ。
ビツト0(SO)は合計あふれビツトで、次のあふれビツ
トが命令によつてセツトされるときは常に“1"にセツト
される。除算ステツプにおける特別の標識としてあふれ
を使用する場合は、合計あふれは変更されない。
ビツト1(OV)はあふれビツトで、命令実行中にあふれ
が生じたときにセツトされる。あふれビツトは、加算お
よび減算においてビツト0からの桁上げとビツト1から
の桁上げとが異なつていると“1"にセツトされ、さもな
ければ“0"にセツトされる。これは除算ステツプのため
の専用標識としても使用される。ただし比較命令によつ
て変更されることはない。
ビツト2〜6は実行された命令の計算結果(大小関係)
を示す。そのうちビツト2(LT)、ビツト3(GT)およ
びビツト4(EQ)は、2つのオペランドを2の補数形式
の符号付き整数と考えてセツトされ、ビツト5(LL)お
よびビツト6(LG)は、2つのオペランドを32ビツトの
無符号整数と考えてセツトされる。ビツト2〜6は比較
および論理命令によつてもセツトされる。
ビツト7〜15はいずれも桁上げビツトである。そのうち
ビツト7(CA)は、加算および減算においてビツト0か
らの桁上げがあると“1"にセツトされ、さもなければ
“0"にセツトされる。これは除算および乗算命令のため
の専用標識としても使用されるが、比較命令によつて変
更されることはない。これに対して、ビツト8〜14はAL
Uにおける各ニブルの桁上げを示す。例えばビツト8(C
4)はビツト4からの桁上げがあると“1"にセツトさ
れ、さもなければ“0"にセツトされる。ビツト9〜14も
同様である。これらの桁上げは10進演算で使用される。
ビツト15(CD)は任意の4ビツトニブルにおいて桁上げ
が生じると“1"にセツトされ、さもなければ“0"にセツ
トされる。これを利用すれば、10進のデイジツトの有効
性を検証することができる。
ビツト16(PZ)は常時ゼロビツトであつて、“1"にセツ
トされることはない。これは常時ゼロビツトを参照する
分岐命令による無条件分岐を可能にする。
ビツト17〜25は予約ビツトである。これらは本実施例で
は使用されないが将来の使用に備えて設けられている。
ビツト26〜29(EC0〜EC3)は外部条件ビツトであり、外
部条件が有効なときにCPUへの対応する外部条件入力の
値にセツトされる。
ビツト30(BB)は母線使用中ビツトであり、母線ユニツ
トが使用中のためにそこで母線オペレーシヨンに関する
命令を実行できないときに“1"にセツトされ、さもなけ
れば“0"にセツトされる。
ビツト31(HO)は半ワードあふれビツトであり、下位の
16ビツトのあふれ状態を示す。これは、加算および減算
においてビツト15および16の桁上げが異なつていると
“1"にセツトされ、さもなければ“0"にセツトされる。
このビツトは比較命令によつて変更されることはない。
前述のように、命令はすべて4バイト長である。PRISM
システムでは、D形式、UL形式、M形式およびX形式の
命令が使用される。これらの命令形式を下記の表2に示
す。
命令中の各フイールドの意味は次の通りである。
OPCD(0〜5):命令のOPコード。
RT(6〜10):命令の実行結果を受取る目的レジスタの
名前。
RS(6〜10):命令実行のためのソースレジスタの名
前。
RA(11〜15):第1オペランドレジスタ、または回転命
令の場合は目的レジスタとして使用されるレジスタの名
前。
RB(16〜20):第2オペランドレジスタの名前。
BI(6〜10):レジスタビツトまたはトラツプマスクを
指定する即値フイールド。
SH:(16〜20):シフト量を指定する即値フイールド。
D(16〜31):16ビツトの符号付き整数を2の補数形式
で指定する即値フイールド。拡張のため32ビツトの長さ
を持つた別のフイールドと組合せて使用することができ
る。
M(21〜31):“0"によつて囲まれた“1"のサブストリ
ングまたは“1"によつて囲まれた“0"のサブストリング
から成る32ビツトのマスクを指定する即値フイールド。
ビツト21が“0"であれば前者のサブストリングが指定さ
れ、“1"であれば後者のサブストリングが指定される。
ビツト22〜26はサブストリングの左端ビツトへのインデ
ツクス、ビツト27〜31はサブストリングの右端ビツトへ
のインデツクスである。“10000011111"のマスクフイー
ルドはすべて“0"のマスクを発生し、“00000011111"の
マスクフイールドはすべて“1"のマスクを発生する。
EO(21〜31):拡張OPコード。
(B)条件レジスタアーキテクチヤ 前記の文献(1)にも記載されているように、PRISMシ
ステムの各基本命令は単一マシンサイクルで実行され
る。基本命令の実行はかなりハードウエア的である。こ
れに対して、浮動小数点演算、固定小数点乗算、10進演
算、記憶装置から記憶装置への移動などのように複雑な
高機能命令は、マイクロコードよりもむしろソフトウエ
ア手順(マクロ)で実行される。これの長所は次のとお
りである。
まず、CPUは“マイクロコード”境界で割込み可能であ
り、複雑な命令を持つたアーキテクチヤは割込みを命令
境界に制限するか、または(システム/370の長移動命令
のように)特定の割込み点を定義する。命令の実行途中
での割込みを許さないのであれば、何らかの観測できる
状態が保管される前に実行を首尾よく終らせるための策
が必要である。例えば、システム/370の文字移動命令の
場合は、移動開始後にページ不在割込みが生じるのを避
けるため、移動を開始する前にすべてのページが事前検
査される(多重処理システムの場合は更にロツクされ
る)。割込み点が定義されている命令は再始動可能でな
ければならない。
第2に、最適化コンパイラはプログラムされた複雑な機
能の構成要素を分離すること、例えば幾つかの部分をル
ープから外して他へ移すことができる。
第3に、複雑な命令の一部をコンパイル時に実行できる
ことが多い。乗算命令を例にとると、オペランドの1つ
が定数でコンパイル時に既知であつた場合、コンパイラ
は一般の乗算マイクロコードサブルーチンよりも効率の
よい“桁送り/加算”シーケンスを生成できることがあ
る。
単一マシンサイクルで完了できない複雑な機能の組込み
を助けるため、本実施例では幾つかの新規な条件コード
ビツト(表1参照)および部分算術命令が定義されてい
る。
次に、ハードウエアの助けを借りて、単一マシンサイク
ルでは完了できない複雑な機能を実現する算術命令の例
を幾つか参考のため説明する。
(1)10進6加算(ADS RT、RB)、X形式 すべての10進デイジツト(4ビツト)が6であるワード
がレジスタRBの内容に加算される。結果はレジスタRTに
ロードされる。
条件コード: LT、EQ、GT、LG、OV、CA、CD、C4〜C28およびSOが1ま
たは0にセツトされ、LLが0にセツトされる。
(2)10進マスク付減算(SFDM RT、RB)、X形式 10進桁上げのあつたすべての10進デイジツトが0であ
り、且つ桁上げのなかつたすべての10進デイジツトが6
であるワードが第1オペランドとして使用され、レジス
タRBの内容から減算される。結果はレジスタRTにロード
される。
条件コード: いずれも変更されない。
(1)のADS命令および(2)のSFDM命令は10進数の加
減算を2進演算により達成するもので、次に10進加算の
例を説明する。
レジスタRAおよびRBが符号なしの8桁の10進数(整数)
を含んでいるものとすると、次のルーチンにより、それ
らの和がレジスタRCに得られる。
ADS RC、RA A RC、RB、RC SFDM RC、RC 最初の命令は、8桁すべてが6であるオペランドをRAに
ある10進数に加算し、その結果をRCに置く。これによ
り、10進数の0〜9が各々6〜15に変換される。2番目
の命令は、RBの内容をRCにある変換された10進数に加算
し、その結果をRCに置く。加算前のRCの内容は、RAにあ
つた元の10進数の各桁に6を加えたものであるから、加
算の結果、桁上げの生じない10進位置があれば、その位
置の値は正しい加算結果値よりも6だけ大きい。桁上げ
の生じた10進位置は正しい加算結果値を含む。この桁上
げは実際には16進数のFから10への桁上げであるが、最
初各桁に6が加算されているから、これは10進数の9か
ら10への桁上げと等価である。かくて、正しい10進加算
結果を得るためには、桁上げの生じなかつた10進位置の
値から6を減算する必要がある。最後の命令(SFDM)は
この減算を行うものである。条件レジスタのビツトCA
(2番目の加算命令Aによりセツトされる)は、加算結
果を1つのレジスタに収容できるか否かを示す。
10進数の加算および減算の実例を次の表4および表5に
示す。いずれの場合も、10進数の27がレジスタ4にロー
ドされ、10進数の34がレジスタ5にロードされ、X‘66
666666'がレジスタ6にロードされている。結果はレジ
スタ3に得られる。
これまで説明してきた拡張条件レジスタアーキテクチヤ
は、PRISMシステムにおけるプログラミングの次のよう
な部分に偉力を発揮する。
(1)算術演算結果が符号つきか符号なしかの解釈。
(2)多倍精度の算術演算ルーチンの作成。
(3)基本乗算ステツプ命令および基本除算ステツプ命
令による全乗算および除算操作の遂行。
(4)10進算術演算 (5)長いルーチンにわたる算術あふれの追跡。
(6)最適化コンパイラによる共通比較結果の利用。
次に上記の(1)〜(6)について詳述する。
まず(1)については、例えば、2つの数値の加算は符
号の有無に関係なく同じ回路で行われ、最終結果の解釈
だけが符号の有無によつて異なる。符号つきの解釈の場
合は、条件レジスタのあふれ、より小さい、またはより
大きいを示すビツトが最終結果を特徴づけ、符号なしの
解釈の場合は、桁上げ、論理的により小さい、または論
理的により大きいを示すビツトが最終結果を特徴づけ
る。従つて、符号つきおよび符号なしの算術演算を同じ
OPコードで指定できる。
(2)については、多倍精度の算術演算ルーチンにも条
件レジスタの桁上げビツトを利用することができる。PR
ISMシステムの拡張加算命令および拡張減算命令は、条
件レジスタの桁上げビツト(CA)を参照して、下位の結
果から上位の結果への桁上げ伝播を実現している。
(3)については、PRISMシステムの乗算および除算は
多数の基本命令からなるルーチンによつて実行される。
乗算の場合条件レジスタの桁上げビツトは、最後に実行
された乗算ステツプ命令で使用された部分乗数の符号を
表わす。各乗算ステツプ命令はこの桁上げビツトの状態
から、前の左端ビツトが符号として解釈されたか否かを
判断し、それに応じた加算を行う。同様にして、多倍精
度の乗数を用いることにより、多倍精度乗算ルーチンを
作成することができる。MQのすべてのビツトが乗数ビツ
トとして使用された後、MQから部分積が取出され、次の
32個の乗数ビツトが挿入される。条件レジスタの桁上げ
ビツトは、それ以上符号を考慮することなく乗算を続行
できるようにセツトされる。
除算ルーチンの場合は、最初の除算ステツプ命令が実行
された後の条件レジスタのあふれビツト(OV)により、
商を1つのレジスタに収容しきれるか否かが示される。
また、最後の除算ステツプ命令が実行された後に、条件
レジスタの桁上げビツトの状態に応じて適切な剰余が決
定される。
(4)については、加算命令または減算命令が実行され
る度に、10進数の各桁ごとに桁上げの有無が条件レジス
タによつて表示される。10進演算の場合は1桁が4ビツ
トであるから、ビツト0、4、8、12、16、20、24およ
び28からの桁上げの有無が表示される。この情報は2通
りに使用できる。まず短精度の算術演算の場合、もしフ
イールド長が4の倍数であれば、条件レジスタにあるこ
れらの桁上げビツトは、結果を4ビツトのサブフイール
ドに収容しきれなくなつたことを示す。第2図に、こち
らの方が重要であるが、10進数算術命令に関連して使用
すれば、8桁の加算(および減算)を3つ(または2
つ)の基本命令だけで遂行できる。
(5)については、条件レシスタの合計あふれビツト
(SO)が使用される。ある特定のルーチン内で算術あふ
れが生じたか否かを検査したいとき、普通はあふれを起
す可能性のある各命令の後にあふれを検査するための命
令を挿入しておく必要があるが、合計あふれビツトを使
用すれば、そのような必要なしにルーチンを書くことが
できる。この結果、コードが著しく簡単になり、あふれ
の見落としもなくなる。但し、算術あふれを検査したい
ルーチンに入る前に条件レジスタの合計あふれビツトを
リセツトするため、条件レジスタの内容を特定の汎用レ
ジスタXにコピーする命令、レジスタXと最上位ビツト
(合計あふれビツト)を0にする命令、およびレジスタ
Xの内容を条件レジスタに戻す命令をそのルーチンの前
に挿入し、且つ合計あふれビツトの状態を分岐条件とす
る条件分岐命令をそのルーチンの後に挿入しておく必要
がある。それでも、命令ごとにあふれを検査する従来の
システムに比べればかなり簡単になつている。
最後の(6)については、条件レジスタの内容を容易に
保管できるので、最適化が可能になる。例えば、次のよ
うなコードを考えてみる。
IF A<B THEN ‥‥; ELSE IF A=B THEN ‥‥; ELSE ‥‥; これらのステートメントはA<B、A=BはA>Bのと
きに各々何をするかを記述したものであるが、AとBの
比較は1回でよい。最初のIFステートメントは条件レジ
スタのLT(より小さい)ビツトを検査し、2番目のIFス
テーメントは、これら2つの分岐命令の間に挿入されて
いる別の命令が条件レジスタを変更していない限り、そ
のEQ(等しい)ビツトを検査する。2番目のIFステーメ
ントのために、AとBを再度比較すること、および2つ
のオペランドAおよびBを保持しておくことは不要であ
る。コンパイラは、2番目のIFステートメントの前に条
件レジスタが変更されたか否かを判断できるので、もし
変更されているのであれば、その変更に先立つて条件レ
ジスタの内容が特定の汎用レジスタにコピーされる。そ
の場合、2番目のIFステートメントはこの汎用レジスタ
にコピーされたEQビツトを検査することになる。
これまで説明してきた拡張条件レジスタアーキテクチヤ
の利点は、条件レジスタの内容の保管(コピー)および
復元を各々1つの命令で行えるという事実に基いてい
る。従つて、条件レジスタを利用するマクロオペレーシ
ヨン(例えば乗算)の途中で割込みが生じるとしても、
それによつてマクロオペレーシヨンのコード化が制限さ
れることはない。割込みの間条件レジスタの内容を保管
しておけばすむからである。
(C)ハードウエア 本発明を実施し得る代表的なPRISMシステムの構成を第
1図に示す。システムの内部母線10には、CPU12、複数
の母線ユニツト14、16(浮動小数点ユニツトなど)、命
令キヤツシユ機構18、データキヤツシユ機構20、および
システム母線ユニツト22が接続されている。キヤツシユ
機構18、20はいずれもキヤツシユ、デイレクトリおよび
変換索引緩衝機構(TLB)を含んでいる。システム母線
ユニツト22は主としてI/Oオペレーシヨンを制御するも
ので、主記憶装置24にも接続されている。主記憶装置24
と命令キヤツシユ機構18およびデータキヤツシユ機構20
との間では命令およびデータが別々にやりとりされる。
CPU12は命令母線26を介して命令キヤツシユ機構18から
命令を取出す。
第2A図および第2B図はCPU12の内部構成を示したもであ
る。主要構成要素の1つである汎用レジスタフアイル30
は32個の汎用レジスタを含んでいる。汎用レジスタフア
イル30の2つの入力RAおよびRTならびに3つの出力RARB
およびRSはいずれも命令によつて指定されるオペランド
である。汎用レジスタフアイル30のアドレス指定は、命
令レジスタ32にロードされた命令の各種レジスタフイー
ルドによつてなされる。命令レジスタ32のボツクス内お
よびその下側に示されている記号の意味については表2
のところを参照されたい。
命令は命令アドレスレジスタ(IAR)34により命令キヤ
ツシユ機構18から取出される。IAR34は極く普通のもの
で、プログラムの開始時に初期設定され、プログラムの
進行につれて順次に増分されたり、分岐アドレスをロー
ドされたりする。表2に示したように、命令は32ビツト
(4バイト)であるから、IAR34の増分単位は4であ
る。ボツクス36は次命令アドレスを含む。
汎用レジスタフアイル30、命令レジスタ32およびIAR34
の選択された内容はマルチプレクサ38および40を通つて
ALU42へ供給される。マルチプレクサ38は命令アドレス
または指定されたレジスタRAの内容を通し、マルチプレ
クサ40は即値オペランドDまたは指定されたレジスタRB
の内容を通す。ALUに42の演算結果は出力バツフアレジ
スタ44にロードされたり、IAR34、条件レジスタを含む
条件論理50、またはデータキヤツシユ機構20へアドレス
を送るためのアドレスゲート54へ直接供給されたりす
る。
ALU42の演算結果を汎用レジスタフアイル30に書戻す場
合は、命令がレジスタRAおよびRTのいずれを指定してい
るかに応じて、出力バツフアレジスタ44の内容がマルチ
プレクサ46または48を通つて汎用レジスタフアイル30へ
転送される。
条件論理50については次の第3図のところで説明する。
分岐/トラツプ検査論理52は、命令のBIフイールド、条
件レジスタおよび指定されたレジスタRAの内容に応じ
て、分岐またはトラツプを行うべきか否かを検査する。
前述のように、変更前の条件レジスタの内容が特定の汎
用レジスタに保管されているときに、その中の特定のビ
ツト(例えばEQビツト)の値に応じて分岐するか否かを
決めるような場合にこの分岐/トラツプ検査論理52が使
用される。その場合、条件レジスタの内容を保管してい
る汎用レジスタは分岐命令中のRAフイールドにより指定
され、分岐条件となるビツトは5ビツトのBIフイールド
により指定される。
内部レジスタR2および拡張用レジスタMQを含むマスク回
転論理56は基本的には、指定されたレジスタの内容を指
定された量(最高31ビツト)だけ回転(循環桁送り)す
るものである。回転された内容はマスクの制御のもと
に、他のレジスタの内容または全ゼロ等の特別のワード
と組合されたり、MQレジスタに保持されている前の回転
結果と組合されたりする。これは通常の桁送りだけでな
く、例えば10進数のパツクおよびアンパツク、浮動小数
点演算の場合の事前桁送りおよび正規化などを行うとき
に使用される。マスク回転論理56の出力はマルチプレク
サ46(R2)または48(MQ)を通つて汎用レジスタフアイ
ル30へ転送されるか、あるいは出力ゲート55を通つてデ
ータキヤツシユ機構20へ転送される。
MQレジスタはマスク回転操作で使用される他に、乗算お
よび除算の如き算術演算において32ビツトよりも長いデ
ータが生成されたときにあふれ分を記憶するのにも使用
される。
データキヤツシユ機構20から取出されたデータは、入力
ゲート58およびマルチプレクサ48を通つて汎用レジスタ
フアイル30へ転送される。
第3図はALU42と条件論理50の関係を部分的に示したも
ので、殆んどの条件ビツトはALU42の出力によつて直接
セツトされる。条件ビツトCA、C4、C8、C12、C16、C2
0、C24およびC28は、ALU内部で発生される4ビツトごと
のニブル桁上げ信号を外部へ取出すことによつて1また
は0にセツトされる。これらは演算結果のビツト0、
4、8、12、16、20、24および28からの桁上げの有無を
表わす。条件ビツトCDはこれらの桁上げビツトすべての
論理和(OR)をとることによつてセツトされる。
条件ビツトSO(合計あふれ)およびOV(あふれ)は、除
算ステツプのときを除き、同じ入力によつて同時にセツ
トされる。除算ステツプのときはSOは変更されない。
〔発明の効果〕
基本命令の実行完了後の状態をハードウエアで直ちに表
示できるので、複数の基本命令によつて遂行される複雑
なオペレーシヨンが高速化される。
【図面の簡単な説明】
第1図は本発明を実施し得るPRISMシステムの構成例を
示すブロツク図。 第2図は第2A図および第2B図のつながりを示すブロツク
図。 第2A図および第2B図はCPU12の内部構成を示すブロツク
図。 第3図はALU42と条件論理50の関係を示すブロツク図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジヨン・コツク アメリカ合衆国ニユ−ヨ−ク州ベツドフオ −ド・パウンド・リツジ・ロ−ド87番地 (72)発明者 ピ−タ−・ウイリ−・マ−クスタイン アメリカ合衆国ニユ−ヨ−ク州ヨ−クタウ ン・ハイツ・リツジ・ストリ−ト2127番地 (72)発明者 ジヨ−ジ・ラデイン アメリカ合衆国ニユ−ヨ−ク州ピアモン ト・フランクリン26番地 (56)参考文献 特開 昭57−29149(JP,A) 特開 昭58−60355(JP,A) 特開 昭54−55336(JP,A) 特開 昭56−108150(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】単一マシンサイクルで実行できる基本命令
    の命令セットを有し、前記基本命令を記憶する記憶手段
    と、該記憶手段から基本命令を取り出すためのアドレス
    手段と、該アドレス手段によって取り出された基本命令
    を実行するためのALUと、該ALUで使用されるオペランド
    を記憶する汎用レジスタファイルとを備えたRISCシステ
    ムにおける条件コード発生装置であって、 前記ALUでのビット0、4、8、・・・、N(Nは4の
    倍数)からの桁上げの有無を表す複数の第1桁上げビッ
    トと、該複数の第1桁上げビットのうちのいずれかが桁
    上げを表しているとセットされる第2桁上げビットと、
    命令実行中にあふれが生じた時にセットされるあふれビ
    ットと、実行された比較命令の結果を示すビットと、を
    少なくとも含む条件レジスタを有し、 前記第1桁上げビット、前記第2桁上げビット、前記あ
    ふれビット、前記比較命令の結果を示すビットは、前記
    ALUからの対応する信号で一のマシンサイクルの間に選
    択的に前記条件レジスタにセットされ、前記一のマシン
    サイクルと異なるマシンサイクルで参照され、前記一の
    マシンサイクルと異なる前記マシンサイクル以後のマシ
    ンサイクルで実行される後続の前記基本命令の分岐の有
    無を少なくとも決定するために利用されること、及び、
    任意のマシンサイクルで前記条件レジスタの内容を変更
    するときは、前記条件レジスタの内容を前記汎用レジス
    タファイルに記憶した後に行うこと、 を特徴とする条件コード発生装置。
JP59125442A 1983-06-30 1984-06-20 条件コ−ド発生装置 Expired - Lifetime JPH0743646B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US509744 1983-06-30
US06/509,744 US4589087A (en) 1983-06-30 1983-06-30 Condition register architecture for a primitive instruction set machine

Publications (2)

Publication Number Publication Date
JPS6014337A JPS6014337A (ja) 1985-01-24
JPH0743646B2 true JPH0743646B2 (ja) 1995-05-15

Family

ID=24027918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59125442A Expired - Lifetime JPH0743646B2 (ja) 1983-06-30 1984-06-20 条件コ−ド発生装置

Country Status (4)

Country Link
US (1) US4589087A (ja)
EP (1) EP0130377B1 (ja)
JP (1) JPH0743646B2 (ja)
DE (1) DE3485929T2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62257526A (ja) * 1986-04-30 1987-11-10 Mitsubishi Electric Corp 算術論理演算装置
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5142636A (en) * 1987-01-29 1992-08-25 Mitsubishi Denki Kabushiki Kaisha Memory bank address calculation with reduced instruction execution cycles
US5083263A (en) * 1988-07-28 1992-01-21 Sun Microsystems, Inc. BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer
US5001662A (en) * 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
AU7305491A (en) * 1990-01-29 1991-08-21 Teraplex, Inc. Architecture for minimal instruction set computing system
DE69130588T2 (de) * 1990-05-29 1999-05-27 National Semiconductor Corp., Santa Clara, Calif. Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür
US5269017A (en) * 1991-08-29 1993-12-07 International Business Machines Corporation Type 1, 2 and 3 retry and checkpointing
US5293613A (en) * 1991-08-29 1994-03-08 International Business Machines Corporation Recovery control register
US5245563A (en) * 1991-09-20 1993-09-14 Kendall Square Research Corporation Fast control for round unit
JP3590075B2 (ja) * 1992-01-20 2004-11-17 株式会社東芝 仮想記憶方式のデータ処理装置及び方法
US5590348A (en) * 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5440702A (en) * 1992-10-16 1995-08-08 Delco Electronics Corporation Data processing system with condition code architecture for executing single instruction range checking and limiting operations
US5452456A (en) * 1992-12-18 1995-09-19 Apple Computer, Inc. Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5481743A (en) * 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
US5815695A (en) * 1993-10-28 1998-09-29 Apple Computer, Inc. Method and apparatus for using condition codes to nullify instructions based on results of previously-executed instructions on a computer processor
US6058473A (en) * 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US5689695A (en) * 1993-11-30 1997-11-18 Texas Instruments Incorporated Conditional processor operation based upon result of two consecutive prior processor operations
JP3105738B2 (ja) * 1994-06-10 2000-11-06 日本電気株式会社 情報処理装置
US5845118A (en) * 1995-12-14 1998-12-01 International Business Machines Corporation Method for generating shared library executable code with lazy global offset table address calculation
US5794025A (en) * 1996-05-09 1998-08-11 Maker Communications, Inc. Method and device for performing modulo-based arithmetic operations in an asynchronous transfer mode cell processing system
US5748630A (en) * 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with load multiple instruction and memory write-back
US6128303A (en) 1996-05-09 2000-10-03 Maker Communications, Inc. Asynchronous transfer mode cell processing system with scoreboard scheduling
US5748631A (en) * 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US6016539A (en) * 1997-11-03 2000-01-18 Teragen Corporation Datapath control logic for processors having instruction set architectures implemented with hierarchically organized primitive operations
US7353163B2 (en) * 1999-04-27 2008-04-01 Transitive Limited Exception handling method and apparatus for use in program code conversion
US6868421B1 (en) * 1999-11-27 2005-03-15 Ching-Fang Lin Method of converting geospatial database into compressive database for multiple dimensional data storage
US20020083311A1 (en) * 2000-12-27 2002-06-27 Paver Nigel C. Method and computer program for single instruction multiple data management
US7861071B2 (en) * 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US6986025B2 (en) * 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
US8364734B2 (en) * 2005-09-15 2013-01-29 International Business Machines Corporation Converting from decimal floating point into scaled binary coded decimal
JP5226328B2 (ja) * 2007-03-27 2013-07-03 パナソニック株式会社 コード変換装置
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8051118B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8668342B2 (en) 2011-11-30 2014-03-11 Izi Medical Products Material thickness control over retro-reflective marker
US9110657B2 (en) 2013-01-21 2015-08-18 Tom Yap Flowchart compiler for a compound complex instruction set computer (CCISC) processor architecture
US9405534B2 (en) 2013-01-21 2016-08-02 Tom Yap Compound complex instruction set computer (CCISC) processor architecture
US11663004B2 (en) 2021-02-26 2023-05-30 International Business Machines Corporation Vector convert hexadecimal floating point to scaled decimal instruction
US11360769B1 (en) * 2021-02-26 2022-06-14 International Business Machines Corporation Decimal scale and convert and split to hexadecimal floating point instruction

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3958112A (en) * 1975-05-09 1976-05-18 Honeywell Information Systems, Inc. Current mode binary/bcd arithmetic array
NL7712367A (nl) * 1977-11-10 1979-05-14 Philips Nv Digitaal optelrekenorgaan.
JPS54117646A (en) * 1978-03-06 1979-09-12 Toshiba Corp Computer
US4384341A (en) * 1980-12-24 1983-05-17 Honeywell Information Systems Inc. Data processor having carry apparatus supporting a decimal divide operation
US4484300A (en) * 1980-12-24 1984-11-20 Honeywell Information Systems Inc. Data processor having units carry and tens carry apparatus supporting a decimal multiply operation
EP0055124B1 (en) * 1980-12-24 1990-01-31 Bull HN Information Systems Inc. Digital multipliers

Also Published As

Publication number Publication date
EP0130377A2 (en) 1985-01-09
DE3485929T2 (de) 1993-04-01
US4589087A (en) 1986-05-13
JPS6014337A (ja) 1985-01-24
DE3485929D1 (de) 1992-10-29
EP0130377B1 (en) 1992-09-23
EP0130377A3 (en) 1987-10-21

Similar Documents

Publication Publication Date Title
JPH0743646B2 (ja) 条件コ−ド発生装置
US4569016A (en) Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
Lee Precision architecture
US4135242A (en) Method and processor having bit-addressable scratch pad memory
US4363091A (en) Extended address, single and multiple bit microprocessor
US4589065A (en) Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
US4713750A (en) Microprocessor with compact mapped programmable logic array
GB2077965A (en) Data processing unit with pipelined operands
Cook et al. System design of a dynamic microprocessor
Cocke et al. The evolution of RISC technology at IBM
Lee et al. The Hwacha vector-fetch architecture manual, version 3.8. 1
JPS6014338A (ja) 計算機システムにおける分岐機構
EP0954791A4 (en) EIGHT BIT MICRO CONTROLLER WITH RISC ARCHITECTURE
Hyde The art of assembly language
Morse et al. The Intel 8086 Microprocessor: a 16-bit Evolution of the 8080
Blanchet et al. Computer architecture
Groves et al. RISC system/6000 processor architecture
Triebel The 8088 And 8086 Microprocessors: Programming, Interfacing, Software, Hardware And Applications, 4/E
US5754460A (en) Method for performing signed division
Paap et al. PowerPC: a performance architecture
Nojiri et al. Microprogrammable processor for object-oriented architecture
Rafiquzzaman Microprocessor theory and applications with 68000/68020 and Pentium
Nelson Computer Architecture
Blazek Preliminary design of a parallel SIC architecture