JPH02183831A - プログラム・ループ実行装置 - Google Patents
プログラム・ループ実行装置Info
- Publication number
- JPH02183831A JPH02183831A JP1277332A JP27733289A JPH02183831A JP H02183831 A JPH02183831 A JP H02183831A JP 1277332 A JP1277332 A JP 1277332A JP 27733289 A JP27733289 A JP 27733289A JP H02183831 A JPH02183831 A JP H02183831A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- loop
- cache
- data
- register
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は一般に高速、汎用データ処理システム。
特にループ動作を効率的に実行するハードウェアの実現
に関する。
に関する。
B、従来技術とその課題
ループは反復して実行される命令のブロックから成り、
ソフトウェア又はマイクロコードでよく用いる。ループ
はアレイ操作、記憶装置初期設定。
ソフトウェア又はマイクロコードでよく用いる。ループ
はアレイ操作、記憶装置初期設定。
除算及び平方根演算、並びに可変長記憶装置動作に用い
ることがある。ソフトウェアは佇通はレジスタ又はメモ
リの中に反復カウントを維持することによりループを生
成する。コード・ループの各反復中に、ソフトウェアは
カウントを減らし、そしてもし当該カウントが非Oのま
まであるなら、”先頭″(ループの最初の命令)に分岐
する。
ることがある。ソフトウェアは佇通はレジスタ又はメモ
リの中に反復カウントを維持することによりループを生
成する。コード・ループの各反復中に、ソフトウェアは
カウントを減らし、そしてもし当該カウントが非Oのま
まであるなら、”先頭″(ループの最初の命令)に分岐
する。
あいにく1分岐命令を用いるループが示す性能は大抵は
不十分である0分岐目標は低速の記憶装置から取出され
るに相違ないから、前記命令の実行は大抵の算術命令よ
りも多くの時間を必要とする0反復カウントを減分した
後のループ構成に必要な条件付き分岐は、目標取出しが
生じた後でなければ分岐の成功を知ることができないか
ら、更に多くのサイクルを要することがよくある0分岐
性能を改善する方法は一般に多くのハードウェア、例え
ば、より幅が広い命令バス、分岐経歴テーブル、及び目
標及びセグメントに分けられた命令をどちらも保持する
特別の命令バッファを必要とする。
不十分である0分岐目標は低速の記憶装置から取出され
るに相違ないから、前記命令の実行は大抵の算術命令よ
りも多くの時間を必要とする0反復カウントを減分した
後のループ構成に必要な条件付き分岐は、目標取出しが
生じた後でなければ分岐の成功を知ることができないか
ら、更に多くのサイクルを要することがよくある0分岐
性能を改善する方法は一般に多くのハードウェア、例え
ば、より幅が広い命令バス、分岐経歴テーブル、及び目
標及びセグメントに分けられた命令をどちらも保持する
特別の命令バッファを必要とする。
減分/比較/分岐の典型的なループ構成はループの初め
から終りまでループ維持のためにだけパス毎に1又はそ
れ以上の命令の実行を必要とする。
から終りまでループ維持のためにだけパス毎に1又はそ
れ以上の命令の実行を必要とする。
この構成はコード空間を占有するだけでなく各々のルー
プ反復に余分な時間が加わる。
プ反復に余分な時間が加わる。
これらの欠点を克服する試みが米国特許第409792
0号(以下、発明Aと呼ぶ)に開示されている。その実
施例の1つでは、ループ制御(即ち1分岐)命令はルー
プの各命令に付加された特別のビットに置き換えられる
。当該特別のビットの存在は、対応する命令がループ内
に置かれていることを表わす0発明Aの欠点はループ状
況を表わす追加の1ビツト・フィールドが命令毎に必要
であることを含む、最後のループ命令が少なくとも部分
的に復号されるまではループの終りを判定することもで
きない。
0号(以下、発明Aと呼ぶ)に開示されている。その実
施例の1つでは、ループ制御(即ち1分岐)命令はルー
プの各命令に付加された特別のビットに置き換えられる
。当該特別のビットの存在は、対応する命令がループ内
に置かれていることを表わす0発明Aの欠点はループ状
況を表わす追加の1ビツト・フィールドが命令毎に必要
であることを含む、最後のループ命令が少なくとも部分
的に復号されるまではループの終りを判定することもで
きない。
前記発明の改良が米国特許第4462074号(以下5
発明Bと呼ぶ)に開示されている。この発明は最後のル
ープ命令のアドレスを記憶する特別のレジスタの使用を
開示している。これは特別のビット・フィールドなしに
又は最後の命令を復号せずに最後のループ命令を識別し
うろことを意味するが、この動作は特別のレジスタに記
憶された最後のループ命令のアドレスとプログラム・カ
ウンタとの複雑な比較を必要とする。
発明Bと呼ぶ)に開示されている。この発明は最後のル
ープ命令のアドレスを記憶する特別のレジスタの使用を
開示している。これは特別のビット・フィールドなしに
又は最後の命令を復号せずに最後のループ命令を識別し
うろことを意味するが、この動作は特別のレジスタに記
憶された最後のループ命令のアドレスとプログラム・カ
ウンタとの複雑な比較を必要とする。
米国特許第4463422号(以下1発明Cと呼ぶ)は
5分岐を実行する算術命令も再定義し。
5分岐を実行する算術命令も再定義し。
発明Bの代案として開示されている0発明Cは新しい命
令を実現する方法は説明しないが、付随する長所及び欠
点に関しては発明Aに類似していることが想像される。
令を実現する方法は説明しないが、付随する長所及び欠
点に関しては発明Aに類似していることが想像される。
米国特許第4652997号、米国特許第456606
3号5米国特許第4179737号及び米国特許筒44
29361号はどれもネストされたループのハードウェ
アについて追加の実施例を開示しており、その各々の欠
点は発明A及び発明Bの欠点の組合せである。
3号5米国特許第4179737号及び米国特許筒44
29361号はどれもネストされたループのハードウェ
アについて追加の実施例を開示しており、その各々の欠
点は発明A及び発明Bの欠点の組合せである。
C1課題を解決するための手段
本発明は、従来技術で見つかった欠点の発生を防止しつ
つ、ソフトウェア・ループの特別のコード空間及び実行
時間オーバヘッドを避けるように設計された特別のコン
ピュータ・ハードウェア及び命令を用いる。良好な実施
例は減分、比較及び分岐/ループ機能をハードウェアに
組込み、ループ内の命令数を減らし、それによってルー
プ実行を高速化する。ハードウェアは分岐後のループの
最初の命令の待ち時間を排除することにより更にループ
実行を高速化する。ハードウェアは各命令が実行される
時のループ内での位置を知っているから、任意の特定の
アーキテクチャ内で所望されるパイプライン動作の程度
によりループの最初の命令はループ内のどの位置からも
事前取出しすることができる。
つ、ソフトウェア・ループの特別のコード空間及び実行
時間オーバヘッドを避けるように設計された特別のコン
ピュータ・ハードウェア及び命令を用いる。良好な実施
例は減分、比較及び分岐/ループ機能をハードウェアに
組込み、ループ内の命令数を減らし、それによってルー
プ実行を高速化する。ハードウェアは分岐後のループの
最初の命令の待ち時間を排除することにより更にループ
実行を高速化する。ハードウェアは各命令が実行される
時のループ内での位置を知っているから、任意の特定の
アーキテクチャ内で所望されるパイプライン動作の程度
によりループの最初の命令はループ内のどの位置からも
事前取出しすることができる。
特別の命令(即ち、5ETLOOP)はループ動作を初
期設定するように実行される。この命令はループ内の命
令数を指定する長さフィールドを有する。
期設定するように実行される。この命令はループ内の命
令数を指定する長さフィールドを有する。
この数はカウンタにロードされ、カウンタはループの各
命令の実行と同期して減分され、それによりループ内の
位置の瞬間表示を維持する。ループが反復されるとき、
長さの値が再びカウンタにロードされる。このカウンタ
は所望により分岐命令の事前取出しを可能にする。
命令の実行と同期して減分され、それによりループ内の
位置の瞬間表示を維持する。ループが反復されるとき、
長さの値が再びカウンタにロードされる。このカウンタ
は所望により分岐命令の事前取出しを可能にする。
5ETLOOP命令中の2番目のフィールドはループが
実行されることになっている回数を含むにの数はループ
の実行毎に減分される2番1」のカウンタにロードされ
る。この2番目のカウンタのイ直は各々の反復の終りで
どの命令(即ち、ループの最初の命令か又はループ外の
命令)を要求するかを決定するのに用いられる。
実行されることになっている回数を含むにの数はループ
の実行毎に減分される2番1」のカウンタにロードされ
る。この2番目のカウンタのイ直は各々の反復の終りで
どの命令(即ち、ループの最初の命令か又はループ外の
命令)を要求するかを決定するのに用いられる。
ループの最初の命令のアドレスを記憶するのにレジスタ
が用いられる。これは各々の前の反復中に次のループの
反復を開始する命令を取出しうろことを保証する。ブツ
シュ・ポツプ・スタックはこのレジスタをバックアップ
するのに用い、2つのカウンタの各々はループのネステ
ィングを可能にするのに用いることができる。
が用いられる。これは各々の前の反復中に次のループの
反復を開始する命令を取出しうろことを保証する。ブツ
シュ・ポツプ・スタックはこのレジスタをバックアップ
するのに用い、2つのカウンタの各々はループのネステ
ィングを可能にするのに用いることができる。
D、実施例
本発明はシングル・プロセッサ又は多重プロセッサを持
つIBMシステム370アーキテクチャを有する最新の
コンピュータ・システムで実施されることが望ましい、
前記システムが本明細書に記述される。
つIBMシステム370アーキテクチャを有する最新の
コンピュータ・システムで実施されることが望ましい、
前記システムが本明細書に記述される。
第2図には、本発明を用いるユニ・プロセッサ・コンピ
ュータ・システムが示されている。第2図で、ユニ・プ
ロセッサ・システムは記憶制御装置(SCL)12に接
続されたL3メモリ10を含む、1つの端で、記憶制御
装置12は、統合アダプタ及び単一カード・チャネル1
6に接続される統合I10サブシステム制御部14に接
続される。他の端では、記憶制御装置12は、命令キャ
ッシュ及びデータ、キャッシュ−ひとまとめにして’L
l”キャッシュと呼ばれる−を含むI10キャッシュ(
Ll)18に接続される。I10キャッシュ18は命令
袋W (Iユニット)・実行装置(Eユニット)・制御
記憶装置(C/S) 20及びベクトル・プロセッサ(
VP)22に接続される。
ュータ・システムが示されている。第2図で、ユニ・プ
ロセッサ・システムは記憶制御装置(SCL)12に接
続されたL3メモリ10を含む、1つの端で、記憶制御
装置12は、統合アダプタ及び単一カード・チャネル1
6に接続される統合I10サブシステム制御部14に接
続される。他の端では、記憶制御装置12は、命令キャ
ッシュ及びデータ、キャッシュ−ひとまとめにして’L
l”キャッシュと呼ばれる−を含むI10キャッシュ(
Ll)18に接続される。I10キャッシュ18は命令
袋W (Iユニット)・実行装置(Eユニット)・制御
記憶装置(C/S) 20及びベクトル・プロセッサ(
VP)22に接続される。
ベクトル・プロセッサ22は米国特許出願第53084
2号(1983年9月9日出願)に記述されている。第
2図のユニ・プロセッサは多重システム・チャネル通信
装置24も含む。
2号(1983年9月9日出願)に記述されている。第
2図のユニ・プロセッサは多重システム・チャネル通信
装置24も含む。
L3メモリ 10は2枚の”知能”メモリ・カードを含
む、これらのカードはある特定の特徴:誤り検査及び訂
正、拡張誤り検査及び訂正(ECC)、リフレッシュ・
アドレス・レジスタ及びカウンタ。
む、これらのカードはある特定の特徴:誤り検査及び訂
正、拡張誤り検査及び訂正(ECC)、リフレッシュ・
アドレス・レジスタ及びカウンタ。
並びにビット予備能力を有することにより ”知能的”
である、 L3メモリ10に対するインタフェースは8
ビット幅である。メモリ・サイズは8,16.32及び
64メガバイトである。 L3メモリは記憶制御袋″1
1(SCL) 12に接続される。
である、 L3メモリ10に対するインタフェースは8
ビット幅である。メモリ・サイズは8,16.32及び
64メガバイトである。 L3メモリは記憶制御袋″1
1(SCL) 12に接続される。
記憶制御装置12は、L3メモリ10. I10サブシ
ステム制御部14及びI10キャッシュ18に対するア
クセスを調停する3つのバス・アービタを含む、記憶制
御袋fi12は更にl10(Ll)キャッシュ18を探
索する能力を有するディレクトリを含む、もしデータが
L1キャッシュ18に置かれているが該データが陳腐化
していれば、記憶制御装置12はL1キャッシュ18に
ある陳腐化したデータを無効にし、それにより I10
サブシステム制御部14がL3メモリ10にあるデータ
を更新できるようにする。その後、命令/実行袋M20
は更新されたデータをL3メそり10から入手しなけれ
ばならない、記憶制御装置12は更に。
ステム制御部14及びI10キャッシュ18に対するア
クセスを調停する3つのバス・アービタを含む、記憶制
御袋fi12は更にl10(Ll)キャッシュ18を探
索する能力を有するディレクトリを含む、もしデータが
L1キャッシュ18に置かれているが該データが陳腐化
していれば、記憶制御装置12はL1キャッシュ18に
ある陳腐化したデータを無効にし、それにより I10
サブシステム制御部14がL3メモリ10にあるデータ
を更新できるようにする。その後、命令/実行袋M20
は更新されたデータをL3メそり10から入手しなけれ
ばならない、記憶制御装置12は更に。
I10サブシステム制御部14からL3メモリ10に入
力されるデータを緩衝記憶し且つ命令/実行装置20か
らL3メモリlOに入力されるデータを緩衝記憶するた
めの複数のバッファを含む、命令/実行装置20に関連
したバッファは256バイト・ライン・バッファであり
、順次動作のような一定の命令タイプのエントリを一回
に8バイト作ることを可能にする。このライン・バッフ
ァは、それが−杯のときは、 L3メモリへのデータの
ブロック転送を生じさせる。その結果、メモリ動作は個
々の記憶動作の数からライン転送のずっと少ない数に減
らされる。
力されるデータを緩衝記憶し且つ命令/実行装置20か
らL3メモリlOに入力されるデータを緩衝記憶するた
めの複数のバッファを含む、命令/実行装置20に関連
したバッファは256バイト・ライン・バッファであり
、順次動作のような一定の命令タイプのエントリを一回
に8バイト作ることを可能にする。このライン・バッフ
ァは、それが−杯のときは、 L3メモリへのデータの
ブロック転送を生じさせる。その結果、メモリ動作は個
々の記憶動作の数からライン転送のずっと少ない数に減
らされる。
Llキャッシュ18を構成する命令キャッシュ及びデー
タ・キャッシュは各々が16 Kbのキャッシュである
。記憶制御装置I2に対するインタフェースは8バイト
幅である。従って、記憶制御装置12からのインベージ
動作は8データ転送サイクルを要する。データ・キャッ
シュは”ストアスルー“・キャッシュである。これは命
令/実行装置20からのデータがL3メモリに記憶され
ることを意味し、もし対応する陳腐化されたデータがL
lキャッシュ18に存在しなければ、該データはL1キ
ャッシュに持込まれて記憶されることはない、この動作
を援助するため、Llデータ・キャッシュと共に“スト
ア・バッファ″が存在し、最大8ストア動作までの緩衝
記憶が可能である。
タ・キャッシュは各々が16 Kbのキャッシュである
。記憶制御装置I2に対するインタフェースは8バイト
幅である。従って、記憶制御装置12からのインベージ
動作は8データ転送サイクルを要する。データ・キャッ
シュは”ストアスルー“・キャッシュである。これは命
令/実行装置20からのデータがL3メモリに記憶され
ることを意味し、もし対応する陳腐化されたデータがL
lキャッシュ18に存在しなければ、該データはL1キ
ャッシュに持込まれて記憶されることはない、この動作
を援助するため、Llデータ・キャッシュと共に“スト
ア・バッファ″が存在し、最大8ストア動作までの緩衝
記憶が可能である。
ベクトル・プロセッサ22はデータ・キャッシュに接続
される。ベクトル・プロセッサ22は記憶制御装置12
への命令/実行装置20のデータフローを共有するが、
ベクトル・プロセッサ22は、それが動作している間は
、命令/実行袋!20がデータ取出しのために記憶制御
袋312にアクセスすることを許可しない。
される。ベクトル・プロセッサ22は記憶制御装置12
への命令/実行装置20のデータフローを共有するが、
ベクトル・プロセッサ22は、それが動作している間は
、命令/実行袋!20がデータ取出しのために記憶制御
袋312にアクセスすることを許可しない。
統合I10サブシステム14は8バイト・バスを介して
記憶制御装置12に接続される。サブシステム14は3
つの64バイト・バッファを含む。
記憶制御装置12に接続される。サブシステム14は3
つの64バイト・バッファを含む。
これらのバッファは統合I10サブシステム14から来
るデータを記憶制御装置12に同期させるために用いら
れる。即ち、命令/実行装置20及び110サブシステ
ム 14は異なるクロックで動作し。
るデータを記憶制御装置12に同期させるために用いら
れる。即ち、命令/実行装置20及び110サブシステ
ム 14は異なるクロックで動作し。
2つのクロックの同期は3つの64バイト・バッファ構
造により達成される。
造により達成される。
多重システム・チャネル通信装置24は、システムに対
し外部的にパッケージされた4ボート・チャネル間アダ
プタである。
し外部的にパッケージされた4ボート・チャネル間アダ
プタである。
第3図には2本発明を用いるトライアゾイック(多重プ
ロセッサ)システムを示す、第3図で。
ロセッサ)システムを示す、第3図で。
一対のL3メモリ IOA/IOBはバス切替装置(B
SU)26に接続され、BSUはl、2キヤツシユ 2
6Aを含む。
SU)26に接続され、BSUはl、2キヤツシユ 2
6Aを含む。
1115026は統合 I10サブシステム 14、共
用チャネル・プロセッサ28及び3つのプロセッサ(第
1のプロセッサは命令/データ・キャッシュ 18A及
び命令/実行装置/制御記憶装置20Aを含み、第2の
プロセッサは命令/データ・キャッシュ 18B及び命
令/実行装置/制御記憶装置 20Bを含み、第3のプ
ロセッサは命令/データ・キャッシュ 18c及び命令
/実行装置/制御記憶装置20Cを含む)に接続される
。命令/データ・キャッシュ 18A、18B及び18
Cの各々は“L1″キャッシュと呼ばれる。 BSU2
BにあるキャッシュはL2キャッシュ26Aと呼ばれ、
メイン・メモリ IOA/IOBはL3メモリと呼ばれ
る。
用チャネル・プロセッサ28及び3つのプロセッサ(第
1のプロセッサは命令/データ・キャッシュ 18A及
び命令/実行装置/制御記憶装置20Aを含み、第2の
プロセッサは命令/データ・キャッシュ 18B及び命
令/実行装置/制御記憶装置 20Bを含み、第3のプ
ロセッサは命令/データ・キャッシュ 18c及び命令
/実行装置/制御記憶装置20Cを含む)に接続される
。命令/データ・キャッシュ 18A、18B及び18
Cの各々は“L1″キャッシュと呼ばれる。 BSU2
BにあるキャッシュはL2キャッシュ26Aと呼ばれ、
メイン・メモリ IOA/IOBはL3メモリと呼ばれ
る。
BSU 26は3つのプロセッサ18A/20A、 1
8B/20B及び18C/20C,2つのL3メモリ・
ボート 10A/lOB、2つの共用チャネル・プロセ
ッサ28、並びに統合I10サブシステム14を接続す
る。 1lsU26には、3つのプロセッサの各々から
13メモリへの要求、又はI10サブシステム14ある
いは共用チャネル・プロセッサからの要求のような、処
理すべき要求に対する優先順位を決定する回路、インタ
フェースを作動させる回路、及びL2キャッシュ 26
Aをアクセスする回路が含まれる。 [,2キヤツシユ
26Aは”ストアイン”キャッシュである。
8B/20B及び18C/20C,2つのL3メモリ・
ボート 10A/lOB、2つの共用チャネル・プロセ
ッサ28、並びに統合I10サブシステム14を接続す
る。 1lsU26には、3つのプロセッサの各々から
13メモリへの要求、又はI10サブシステム14ある
いは共用チャネル・プロセッサからの要求のような、処
理すべき要求に対する優先順位を決定する回路、インタ
フェースを作動させる回路、及びL2キャッシュ 26
Aをアクセスする回路が含まれる。 [,2キヤツシユ
26Aは”ストアイン”キャッシュである。
これは、データを変更するため、[,2キヤツシユをア
クセスする動作はL2キャッシュに常駐するデータも変
更しなければならないことを意味する(このルールの唯
一の例外は、もし01作がI10サブシステム14から
始まるなら、且つもしデータがL3メモリ IOA/I
OBにだけ常駐し、 L2キャッシュ 26Aには常駐
していないなら、データはL3メモリにおいてだけ変更
され、 L2キャッシュでは行なわれない)、システ
ムは命令/実行装置20A、 20B及び20Cにそれ
ぞれ関連したベクトル・プロセッサ22A、 22B及
び22Cも含む。
クセスする動作はL2キャッシュに常駐するデータも変
更しなければならないことを意味する(このルールの唯
一の例外は、もし01作がI10サブシステム14から
始まるなら、且つもしデータがL3メモリ IOA/I
OBにだけ常駐し、 L2キャッシュ 26Aには常駐
していないなら、データはL3メモリにおいてだけ変更
され、 L2キャッシュでは行なわれない)、システ
ムは命令/実行装置20A、 20B及び20Cにそれ
ぞれ関連したベクトル・プロセッサ22A、 22B及
び22Cも含む。
B5L126及びL3メモリ IOA/IOBの間のイ
ンタフェースは第2図における単一8バイト・ボートの
代わりに2つの16バイト・ライン/ボートを含む、し
かしながら、第2図のメモリ 10は第3図のメモリ・
カード IOA/10Bと全く同じである。第3図の2
つみメモリ・カードIOA/10Bは並列にアクセスさ
れる。
ンタフェースは第2図における単一8バイト・ボートの
代わりに2つの16バイト・ライン/ボートを含む、し
かしながら、第2図のメモリ 10は第3図のメモリ・
カード IOA/10Bと全く同じである。第3図の2
つみメモリ・カードIOA/10Bは並列にアクセスさ
れる。
共用チャネル・プロセッサ28は2つのボート−各々の
ボートは8バイトのインタフェースである−を介して
B5126に接続される。共用チャネル・プロセッサ2
8はBSU26から独立した周波数で動作され、 ll
5U内のクロックは、第2図の記憶制御装置12と統合
I10サブシステム 14の間のクロック同期と同様の
方法で、共用チャネル・プロセッサ28にあるクロック
と同期される。
ボートは8バイトのインタフェースである−を介して
B5126に接続される。共用チャネル・プロセッサ2
8はBSU26から独立した周波数で動作され、 ll
5U内のクロックは、第2図の記憶制御装置12と統合
I10サブシステム 14の間のクロック同期と同様の
方法で、共用チャネル・プロセッサ28にあるクロック
と同期される。
第2図のユニ・プロセッサ・コンピュータ・システムの
動作の機能は第2図に関連して以ドに説明する。f通、
命令は命令キャッシュ(Llキャッシュ)18にあり、
実行されるのを待つ、命令/実行袋vi20はL1キャ
ッシュ内に配列されたディレクトリを探索し、そこに典
型的な命令が記憶されているかどうかを判定する。もし
Llキャッシュ 18に命令が記憶されていなければ、
命令/実行装置20は記憶制御装置12に対する記憶要
求を生成する。命令のアドレス、又は命令を含むキャッ
シュ・ラインが記憶制御装置12に供給される。記憶制
御装置12はL3メモリ lOに接続されたバスに対す
るアクセスを調停する。結局、命令/実行袋vi20か
らの要求はL3メモリ10に渡される。該要求はL3メ
モリ中のラインが命令/実行装置20に取出される予定
であることを表わすコマンドを含む、 L3メモリは
要求をラッチしてそれを復号し、メモリ・カードにおけ
る位置を選択する。このカードには命令が記憶され、数
サイクルの遅延の後、命令はL3メモリから8バイト・
インクリメントで記憶制御装置12に引渡される。そし
て命令は記憶制御装置12から命令キャッシュ(Llキ
ャッシュ)18に転送され、そこに−時的に記憶される
。命令は命令キャッシュ18から命令/実行袋gi 2
0内の命令バッファに再転送される。
動作の機能は第2図に関連して以ドに説明する。f通、
命令は命令キャッシュ(Llキャッシュ)18にあり、
実行されるのを待つ、命令/実行袋vi20はL1キャ
ッシュ内に配列されたディレクトリを探索し、そこに典
型的な命令が記憶されているかどうかを判定する。もし
Llキャッシュ 18に命令が記憶されていなければ、
命令/実行装置20は記憶制御装置12に対する記憶要
求を生成する。命令のアドレス、又は命令を含むキャッ
シュ・ラインが記憶制御装置12に供給される。記憶制
御装置12はL3メモリ lOに接続されたバスに対す
るアクセスを調停する。結局、命令/実行袋vi20か
らの要求はL3メモリ10に渡される。該要求はL3メ
モリ中のラインが命令/実行装置20に取出される予定
であることを表わすコマンドを含む、 L3メモリは
要求をラッチしてそれを復号し、メモリ・カードにおけ
る位置を選択する。このカードには命令が記憶され、数
サイクルの遅延の後、命令はL3メモリから8バイト・
インクリメントで記憶制御装置12に引渡される。そし
て命令は記憶制御装置12から命令キャッシュ(Llキ
ャッシュ)18に転送され、そこに−時的に記憶される
。命令は命令キャッシュ18から命令/実行袋gi 2
0内の命令バッファに再転送される。
命令は命令装置20内の復号器を介して復号される。メ
モリ 10に常駐するオペランドが、命令を実行するた
めにしばしば必要になる。命令/実行装置20はデータ
・キャッシュ18でディレクトリを探索し、もしオペラ
ンドがデータ・キャッシュ 18のディレクトリで見つ
からないなら、もう1つの記憶アクセスが命令/実行装
置20によって発せられ、前述の命令キャッシュ・ミス
の場合と全く同じように13メモリ lOをアクセスす
る。オペランドはデータ・キャッシュに記憶され。
モリ 10に常駐するオペランドが、命令を実行するた
めにしばしば必要になる。命令/実行装置20はデータ
・キャッシュ18でディレクトリを探索し、もしオペラ
ンドがデータ・キャッシュ 18のディレクトリで見つ
からないなら、もう1つの記憶アクセスが命令/実行装
置20によって発せられ、前述の命令キャッシュ・ミス
の場合と全く同じように13メモリ lOをアクセスす
る。オペランドはデータ・キャッシュに記憶され。
命令/実行装置20はデータ・キャッシュ 18でオペ
ランドを探索する。もし命令がマイクロコードの使用を
必要とするなら、命令/実行袋M 20は命令/実行装
置20のカードに常駐するマイクロコードを利用する。
ランドを探索する。もし命令がマイクロコードの使用を
必要とするなら、命令/実行袋M 20は命令/実行装
置20のカードに常駐するマイクロコードを利用する。
もし入力/出力 (Ilo)動作の実行が必要なら、命
令/実行装置20は命令キャッシュ 18にある I1
0命令を復号する。情報はL3メモリ IOの補助部分
−命令/実行から分離された部分−に記憶される。その
時点で、命令/実行装置20は前記情報がL3メモリに
記憶されていることを統合I10サブシステム 14に
知らせ、サブシステム14のプロセッサはL3メモリ1
0をアクセスして情報を取出す。
令/実行装置20は命令キャッシュ 18にある I1
0命令を復号する。情報はL3メモリ IOの補助部分
−命令/実行から分離された部分−に記憶される。その
時点で、命令/実行装置20は前記情報がL3メモリに
記憶されていることを統合I10サブシステム 14に
知らせ、サブシステム14のプロセッサはL3メモリ1
0をアクセスして情報を取出す。
第3図の多重プロセッサ・コンピュータ・システムの動
作の機能は第3図に関連して以下に説明する。第3図で
、特定の命令/実行装置、20^、20B又は20Cの
1つが命令を必要とし、それ自身の1、lキャッシュ
18^、18[1又は18Cの1つで所望の命令を探索
するものと仮定する。更に、所望の命令がLlキャッシ
ュにないものと仮定する。そして特定の命令/実行装置
はL2キャッシュ26Aを探索するためにBSU2Bに
対するアクセスを要求する。
作の機能は第3図に関連して以下に説明する。第3図で
、特定の命令/実行装置、20^、20B又は20Cの
1つが命令を必要とし、それ自身の1、lキャッシュ
18^、18[1又は18Cの1つで所望の命令を探索
するものと仮定する。更に、所望の命令がLlキャッシ
ュにないものと仮定する。そして特定の命令/実行装置
はL2キャッシュ26Aを探索するためにBSU2Bに
対するアクセスを要求する。
BSU26はアービタを含む、アービタは命令/実行装
置20A、20B、20Cの各々からの要求及び共用チ
ャネル・プロセッサ28からの要求並びに統合I10サ
ブシステム14からの要求を受取り、これらの装置の1
つに対する一時のアクセスを許可する。特定の命令/実
行装置(20^〜20Cの1つ)がム2キャッシュ 2
8Aを探索するためflsU2Bに対するアクセスを許
可されると、該特定の命令/実行装置は所望の命令につ
いてBSU 26内に配列されたし2キヤツシユ 26
Aのディレクトリを探索する。
置20A、20B、20Cの各々からの要求及び共用チ
ャネル・プロセッサ28からの要求並びに統合I10サ
ブシステム14からの要求を受取り、これらの装置の1
つに対する一時のアクセスを許可する。特定の命令/実
行装置(20^〜20Cの1つ)がム2キャッシュ 2
8Aを探索するためflsU2Bに対するアクセスを許
可されると、該特定の命令/実行装置は所望の命令につ
いてBSU 26内に配列されたし2キヤツシユ 26
Aのディレクトリを探索する。
L2キャッシュで所望の命令が見つかるものと仮定する
。その場合、所望の命令は特定の命令/実行装置に返送
される。もし所望の命令がL2キャッシュ内で見つから
ないなら、そのディレクトリによる指示に従って、
L3メモリ IOA又はIOBの1つに対し所望の命令
が要求される。もし所望の命令がL3メモリで見つかれ
ば、それは直ちに。
。その場合、所望の命令は特定の命令/実行装置に返送
される。もし所望の命令がL2キャッシュ内で見つから
ないなら、そのディレクトリによる指示に従って、
L3メモリ IOA又はIOBの1つに対し所望の命令
が要求される。もし所望の命令がL3メモリで見つかれ
ば、それは直ちに。
−回に16バイト、BSU26に転送され、 BSIJ
Z8内のL2キャッシュ 26Aに記憶されると同時に
、特定の命令/実行装置(20A〜20Cの1つ)にバ
イパスされる。 BSU2Bが有する追加の機能は多重
プロセッサ・システムにおける記憶の一貫性のルールに
関連する0例えば、特定の命令/実行装置20C(さも
なければ”プロセッサ” 20Cと呼ばれる)がデータ
を変更すると、当該データは該複合体におけろ全ての他
の命令/実行装置、即ち“プロセッサ”、20^、20
Bに明らかにされなければならない、もしプロセッサ2
0Cが現にそのLlキャッシュ 18Cに記憶されたデ
ータを変更すれば、その特定のデータの探索はBSu2
BのL2キャッシュ・ディレクトリ 26Aで行なわれ
る。もし見つかれば、該特定のデータはLlキャッシュ
18Gでの変更を反映するように変更される。更に、
他のプロセッサ20^及び20Bは、前記他のプロセッ
サがそれらのL1キャッシュ 18A及び18Bに存在
している対応するデータを変更することを可能にするた
めに。
Z8内のL2キャッシュ 26Aに記憶されると同時に
、特定の命令/実行装置(20A〜20Cの1つ)にバ
イパスされる。 BSU2Bが有する追加の機能は多重
プロセッサ・システムにおける記憶の一貫性のルールに
関連する0例えば、特定の命令/実行装置20C(さも
なければ”プロセッサ” 20Cと呼ばれる)がデータ
を変更すると、当該データは該複合体におけろ全ての他
の命令/実行装置、即ち“プロセッサ”、20^、20
Bに明らかにされなければならない、もしプロセッサ2
0Cが現にそのLlキャッシュ 18Cに記憶されたデ
ータを変更すれば、その特定のデータの探索はBSu2
BのL2キャッシュ・ディレクトリ 26Aで行なわれ
る。もし見つかれば、該特定のデータはLlキャッシュ
18Gでの変更を反映するように変更される。更に、
他のプロセッサ20^及び20Bは、前記他のプロセッ
サがそれらのL1キャッシュ 18A及び18Bに存在
している対応するデータを変更することを可能にするた
めに。
L2キャッシュ26Aにいま存在している変更された正
しいデータを見ることが許される。従って、問題のプロ
セッサ20Cは他のプロセッサ20A及び20Bがそれ
らの対応するデータを変更する機会を得るまでは特定の
データを再アクセスすることはできない。
しいデータを見ることが許される。従って、問題のプロ
セッサ20Cは他のプロセッサ20A及び20Bがそれ
らの対応するデータを変更する機会を得るまでは特定の
データを再アクセスすることはできない。
第4図には、各々の命令/実行装置(第2図の20又は
第3図の20A〜20Cの1つ)及びその対応するL1
キャッシュ(第2図の18又は第3図の18A〜18C
の1つ)の詳細な構成を示す、第2図及び第3図で、命
令/実行装置20.20A、 20B及び20Cは”■
ユニットEユニットC/S (92に11)”と表示さ
れたブロックに配列されている。このブロックは”プロ
セッサ”、”命令処理装置”又は、前述のように、′命
令/実行装置”と呼ばれることがある。下記の説明では
f@略化のために、ブロック 20.20A〜20Cの
各々は”プロセッサ”と呼ばれる。更に、” I10キ
ャッシュ(Ll)”は ”Llキャッシュ と呼ばれる
。第4図はプロセッサ (20,20A、20B又は2
0C)及びL1キャッシュ(+8.18A。
第3図の20A〜20Cの1つ)及びその対応するL1
キャッシュ(第2図の18又は第3図の18A〜18C
の1つ)の詳細な構成を示す、第2図及び第3図で、命
令/実行装置20.20A、 20B及び20Cは”■
ユニットEユニットC/S (92に11)”と表示さ
れたブロックに配列されている。このブロックは”プロ
セッサ”、”命令処理装置”又は、前述のように、′命
令/実行装置”と呼ばれることがある。下記の説明では
f@略化のために、ブロック 20.20A〜20Cの
各々は”プロセッサ”と呼ばれる。更に、” I10キ
ャッシュ(Ll)”は ”Llキャッシュ と呼ばれる
。第4図はプロセッサ (20,20A、20B又は2
0C)及びL1キャッシュ(+8.18A。
18B又は18C)の詳細な構造を示す。
第4図で、プロセッサ(20,20A〜20Cの1つ)
は下記のエレメントを含む、制御記憶サブシステム20
−1は84にバイトの高速固定制御記憶2O−IA、ペ
ージング可能領域(8にバイト、2にワード。
は下記のエレメントを含む、制御記憶サブシステム20
−1は84にバイトの高速固定制御記憶2O−IA、ペ
ージング可能領域(8にバイト、2にワード。
4ウエイ・アソシアティブ・ページング可能領域)20
−IB、ページング可能制御記憶20− I Bのディ
レクトリ(C5DIR) 2O−1c、制御記憶アドレ
ス・レジスタ (C5AR) 20−10.及び8工レ
メント分岐及びリンク([lAL STに)機能2O−
IEを含む、計算機状態制御部20−2はプロセッサの
大域制御部20−2^、制御記憶起点アドレス・バスを
介してC5AHに接続された叶分岐テーブル2O−2B
−マイクロコード化さ才した命令の最初のアドレスを生
成するのに用いられる−を含む、アドレス生成装置20
−3は3つのチップを含む、第1のチップは命令キャッ
シュDLへT及びディレクトリ2O−3A、第2のチッ
プはデータ・キャッシュDLAT及びディレクトリ2O
−3B、第3のチップはアドレス生成チップ2O−3C
で、アドレス・バスを介してLlキャッシュ18.18
A〜18cに接続される。命令DLAT及びディレクト
リ 2O−3Aは、要求された命令が!、1キヤツシユ
の命令キャッシュ部分18−IAにあることを表わす4
本の”ヒツト”ラインを介して、 Llキャッシュの命
令キャッシュ部分に接続される。同様に、要求されたデ
ータがL1キャッシュのデータ・キャッシュ 18−2
Bにあることを表わす4本の”ヒツト”ラインがデータ
DLAT及びディレクトリ2O−3Bに接続する。アド
レス生成装″1120−3は(GPRコピー2O−3D
内に)アドレスを生成するために用いる16個の汎用レ
ジスタのコピー、並びに命令/実行のマイクロコードに
アドレスを供給するために用いる3個の記憶アドレス・
レジスタ(SAR)20−3Eを含む、固定小数点ユニ
ット20−4はデータ・バス(Dバス)を介してデータ
・キャッシュ18−2に接続され1局所記憶スタック(
局所記憶) 2O−4A (前述の16個の汎用レジ
スタ及〜びマイクロコード専用の幾つかの作業レジスタ
を含む)、条件レジスタ2O−4B(幾つかの算術及び
シフト演算の結果並びに370条件コードの結果を含む
)、4バイトの演算論理機構(ALU)20−4C18
バイトの回転組合せ装置 20−40.及び分岐ビット
選択ハードウェア2O−4E(分岐動作の方向を決定す
る種々のレジスタ − 汎用レジスタ、作業レジスタ及
び条件レジスター からのビットの選択を可能にする)
を含む。
−IB、ページング可能制御記憶20− I Bのディ
レクトリ(C5DIR) 2O−1c、制御記憶アドレ
ス・レジスタ (C5AR) 20−10.及び8工レ
メント分岐及びリンク([lAL STに)機能2O−
IEを含む、計算機状態制御部20−2はプロセッサの
大域制御部20−2^、制御記憶起点アドレス・バスを
介してC5AHに接続された叶分岐テーブル2O−2B
−マイクロコード化さ才した命令の最初のアドレスを生
成するのに用いられる−を含む、アドレス生成装置20
−3は3つのチップを含む、第1のチップは命令キャッ
シュDLへT及びディレクトリ2O−3A、第2のチッ
プはデータ・キャッシュDLAT及びディレクトリ2O
−3B、第3のチップはアドレス生成チップ2O−3C
で、アドレス・バスを介してLlキャッシュ18.18
A〜18cに接続される。命令DLAT及びディレクト
リ 2O−3Aは、要求された命令が!、1キヤツシユ
の命令キャッシュ部分18−IAにあることを表わす4
本の”ヒツト”ラインを介して、 Llキャッシュの命
令キャッシュ部分に接続される。同様に、要求されたデ
ータがL1キャッシュのデータ・キャッシュ 18−2
Bにあることを表わす4本の”ヒツト”ラインがデータ
DLAT及びディレクトリ2O−3Bに接続する。アド
レス生成装″1120−3は(GPRコピー2O−3D
内に)アドレスを生成するために用いる16個の汎用レ
ジスタのコピー、並びに命令/実行のマイクロコードに
アドレスを供給するために用いる3個の記憶アドレス・
レジスタ(SAR)20−3Eを含む、固定小数点ユニ
ット20−4はデータ・バス(Dバス)を介してデータ
・キャッシュ18−2に接続され1局所記憶スタック(
局所記憶) 2O−4A (前述の16個の汎用レジ
スタ及〜びマイクロコード専用の幾つかの作業レジスタ
を含む)、条件レジスタ2O−4B(幾つかの算術及び
シフト演算の結果並びに370条件コードの結果を含む
)、4バイトの演算論理機構(ALU)20−4C18
バイトの回転組合せ装置 20−40.及び分岐ビット
選択ハードウェア2O−4E(分岐動作の方向を決定す
る種々のレジスタ − 汎用レジスタ、作業レジスタ及
び条件レジスター からのビットの選択を可能にする)
を含む。
浮動小数点プロセッサ20−5は浮動小数点レジスタ(
FPR)及び4個のマイクロコート作業レジスタ2O−
5E、コマンド(CHD)復号及び制御機能2O−5A
。
FPR)及び4個のマイクロコート作業レジスタ2O−
5E、コマンド(CHD)復号及び制御機能2O−5A
。
17動小数点加算機構2O−5B、固定小数点及び浮動
小数点乗算アレイ2O−5C,平方根及び除算機構2O
−5Dを含む、浮動小数点プロセッサ20−5は米国特
許出直1第102985号(1987年9月30E1出
府1)に開示されている。 ALtl 2O−4Cは係
属中の米国特許出願第066580号(1987年6月
260出願)に開示されている加算機構を含む、外部チ
ップ20−6はタイマ及び割込み構造、その他を含む。
小数点乗算アレイ2O−5C,平方根及び除算機構2O
−5Dを含む、浮動小数点プロセッサ20−5は米国特
許出直1第102985号(1987年9月30E1出
府1)に開示されている。 ALtl 2O−4Cは係
属中の米国特許出願第066580号(1987年6月
260出願)に開示されている加算機構を含む、外部チ
ップ20−6はタイマ及び割込み構造、その他を含む。
該割込みはI10サブシステム14から与えられる。
プロセッサ間通信機能(IPC) 20−7は通信バス
を介して記憶サブシステムに接続され、それによってプ
ロセッサは互いにメツセージを渡すとともに時刻機構の
アクセスを可能にする。
を介して記憶サブシステムに接続され、それによってプ
ロセッサは互いにメツセージを渡すとともに時刻機構の
アクセスを可能にする。
第4図で、Llキャッシュ(18,18^、18B又は
18cの1つ)は下記のエレメントを含む、命令キャッ
シュ18−1は16にバイト/4ウエイ・キャッシュl
8−IA、その出力に15バイト命令バッファ18−I
B、及び記憶装置からの人力に8バイト・インページ・
レジスタ 18−ICから成る。命令キャッシュ18−
1に接続された記憶バスは8バイト幅で、インページ・
レジスタ 18−ICに接続されている。インページ・
レジスタ 18−1cは制御記憶サブシステム20−1
に接続され、ページング可能制御記憶ミスの場合に。
18cの1つ)は下記のエレメントを含む、命令キャッ
シュ18−1は16にバイト/4ウエイ・キャッシュl
8−IA、その出力に15バイト命令バッファ18−I
B、及び記憶装置からの人力に8バイト・インページ・
レジスタ 18−ICから成る。命令キャッシュ18−
1に接続された記憶バスは8バイト幅で、インページ・
レジスタ 18−ICに接続されている。インページ・
レジスタ 18−1cは制御記憶サブシステム20−1
に接続され、ページング可能制御記憶ミスの場合に。
データを該サブシステムに供給する。データ・キャッシ
ュ18−2はインページ・バッファ18−2A(これも
記憶バスに接続される)、データ・キャッシュ18−2
B (1[3にバイト、4ウエイ・キャッシュ)、キャ
ッシュ・データフロー18−2C(一連の人/出力レジ
スタを含み、8バイト・データ・バス(Dバス)を介し
てプロセッサに接続され、8バイトのベクトル・バスを
介してベクトル・プロセッサ(22^〜22C)に接続
される)、及び8エレメント記憶バッファ+8−20か
ら成る。
ュ18−2はインページ・バッファ18−2A(これも
記憶バスに接続される)、データ・キャッシュ18−2
B (1[3にバイト、4ウエイ・キャッシュ)、キャ
ッシュ・データフロー18−2C(一連の人/出力レジ
スタを含み、8バイト・データ・バス(Dバス)を介し
てプロセッサに接続され、8バイトのベクトル・バスを
介してベクトル・プロセッサ(22^〜22C)に接続
される)、及び8エレメント記憶バッファ+8−20か
ら成る。
第4図に示すプロセッサ及び【、lキャッシュの機能的
な動作は第4図に関連して下記に説明する。
な動作は第4図に関連して下記に説明する。
実行される命令は命令キャッシュ18−IAにあると仮
定する。命令は命令キャッシュ 18−IAから取出さ
れ、命令バッファ 18〜lBに記憶される(命令バッ
ファは常に一杯になるようにあらゆる試みがなされる)
、命令は命令バッファ 18−IBから取出され、アド
レス生成チップ20−3.固定小数点ユニット20−4
.及び計算機状態制御部20−2の命令レジスタに記憶
され、その時点で、命令の復号が始まる。
定する。命令は命令キャッシュ 18−IAから取出さ
れ、命令バッファ 18〜lBに記憶される(命令バッ
ファは常に一杯になるようにあらゆる試みがなされる)
、命令は命令バッファ 18−IBから取出され、アド
レス生成チップ20−3.固定小数点ユニット20−4
.及び計算機状態制御部20−2の命令レジスタに記憶
され、その時点で、命令の復号が始まる。
もしオペランドが必要なら、オペランドはアドレス生成
装置20−3のGPRコピー20−30から取出される
(通常、もしオペランドがRX命令の基底及び指標レジ
スタに必要なら、 GPRコピーがアクセスされる)0
次のサイクルで、アドレス生成プロセスが始まる。基底
レジスタ及び指標レジスタの内容が命令からの変位フィ
ールドに加えられ。
装置20−3のGPRコピー20−30から取出される
(通常、もしオペランドがRX命令の基底及び指標レジ
スタに必要なら、 GPRコピーがアクセスされる)0
次のサイクルで、アドレス生成プロセスが始まる。基底
レジスタ及び指標レジスタの内容が命令からの変位フィ
ールドに加えられ。
有効アドレスが生成されてデータ・キャッシュ18−2
及び(又は)命令キャッシュ 18−1に送られる。
及び(又は)命令キャッシュ 18−1に送られる。
この例では、オペランドが要求される。その結果。
有効アドレスはデータ・キャッシュ 18−2に送られ
る。アドレスはデータ D L A 1’及びディレク
トリ・チップ20−38にも送られる(この例では9オ
ペランドが要求されているから)、キャッシュ及びディ
レクトリのアクセスは第3のサイクルで始まる。 D
LAT 2O−3Bはアドレスが有効アドレスから絶対
アドレスに変換可能かどうかを判定する。
る。アドレスはデータ D L A 1’及びディレク
トリ・チップ20−38にも送られる(この例では9オ
ペランドが要求されているから)、キャッシュ及びディ
レクトリのアクセスは第3のサイクルで始まる。 D
LAT 2O−3Bはアドレスが有効アドレスから絶対
アドレスに変換可能かどうかを判定する。
この変換は市に実行されていると仮定すると。
その変換結果が記録される。変換されたアドレスはキャ
ッシュ・ディレクトリ 20−38の出力と比較される
。データは前にデータ・キャッシュ 18−28に取込
まれていると仮定すると、ディレクトリの出力とDLA
Tの出力が比較される。もし両者が等しければ、4本の
”ヒツト“ラインの1つがデータ DLAT及びディレ
クトリ 2O−3Bから生成される。
ッシュ・ディレクトリ 20−38の出力と比較される
。データは前にデータ・キャッシュ 18−28に取込
まれていると仮定すると、ディレクトリの出力とDLA
Tの出力が比較される。もし両者が等しければ、4本の
”ヒツト“ラインの1つがデータ DLAT及びディレ
クトリ 2O−3Bから生成される。
該ヒツト・ラインはデータ・キャッシュ 18−2Bに
接続され;命令はアドレスとしてOP分岐テーブル2O
−2Bに供給される。OP分岐テーブルは命令を実行す
るために必要なマイクロコード・ルーチンの開始アドレ
スを供給する。これらの命令、並びに他の命令は、実行
するのに2サイクル以上を必要とする。よって、OP分
岐テーブルが探索されている間、命令の復号は延期され
る。マイクロコードの場合、マイクロ命令を復号ハード
ウェアに供給するのにIバスが利用される。命令キャッ
シュ18−IAは臆断され、制御記憶2O−IAが作動
され、マイクロ命令がIバスを介して渡される。
接続され;命令はアドレスとしてOP分岐テーブル2O
−2Bに供給される。OP分岐テーブルは命令を実行す
るために必要なマイクロコード・ルーチンの開始アドレ
スを供給する。これらの命令、並びに他の命令は、実行
するのに2サイクル以上を必要とする。よって、OP分
岐テーブルが探索されている間、命令の復号は延期され
る。マイクロコードの場合、マイクロ命令を復号ハード
ウェアに供給するのにIバスが利用される。命令キャッ
シュ18−IAは臆断され、制御記憶2O−IAが作動
され、マイクロ命令がIバスを介して渡される。
浮動小数点命令の場合、実行する正しい動作を指示し識
別するためにコマンドがアドレス生成サイクル中に浮動
小数点ユニット20−5に送られる点を除き、復号は前
述のように進められる6例えば、11X浮動小数点命令
では、前述のように、オペランドはデータ・キャッシュ
1g−28から取出され、取出されたオペランドは固定
小数点ユニット20−4に代って浮動小数点ユニット2
0−5に転送される。浮動小数点命令の実行が開始され
る。それが終了すると、その実行の結果が固定小数点ユ
ニット20−4に返送される。該”結果”は条件コード
、及びオーバフローのような、任意の割込み条件である
。
別するためにコマンドがアドレス生成サイクル中に浮動
小数点ユニット20−5に送られる点を除き、復号は前
述のように進められる6例えば、11X浮動小数点命令
では、前述のように、オペランドはデータ・キャッシュ
1g−28から取出され、取出されたオペランドは固定
小数点ユニット20−4に代って浮動小数点ユニット2
0−5に転送される。浮動小数点命令の実行が開始され
る。それが終了すると、その実行の結果が固定小数点ユ
ニット20−4に返送される。該”結果”は条件コード
、及びオーバフローのような、任意の割込み条件である
。
下記は第4図の機能的な動作の再説明であるが。
ここでは第4図の前記機能的な動作のパイプライン方式
の性質を強調して説明する。
の性質を強調して説明する。
パイプライン動作の第1の段階は命令復号と呼ばれ、命
令が復号される。メモリに1つのオペランドがあるRX
命令の場合には、基底レジスタ及び指標レジスタの内容
がGPIIコピー2O−3Dから取得されなければなら
ない、変位フィールドが基底レジスタ及び指標レジスタ
に加えられる0次のサイクルの初めに、基底、指標及び
変位フィールドの加算が終了し、有効アドレスを生ずる
。有効アドレスはDLAT及びディレクトリ・チップ2
O−3A/2O−3Bに送られる。有効アドレスの上位
部分は変換されなければならないが、下位部分は変換さ
れず、キャッシュ 18−1^/18−2Bに送られる
。第3のサイクルで、取得したビットを用いて、キャッ
シュはアクセス動作を開始する。絶対アドレスを1!)
るため仮想アドレスを用いて、DLA丁ディレクトリが
探索される。この絶対アドレスはキャッシュ・ディレク
トリに保持された絶対アドレスと比較される。もし両者
が一致すれば、″ヒント”ラインが生成され、キャッシ
ュ・チップ18− IA/ 18−28に送られる。同
時に、キャッシュ・チップが全ての4つのアソシアティ
ビティ・クラスをアクセスし。
令が復号される。メモリに1つのオペランドがあるRX
命令の場合には、基底レジスタ及び指標レジスタの内容
がGPIIコピー2O−3Dから取得されなければなら
ない、変位フィールドが基底レジスタ及び指標レジスタ
に加えられる0次のサイクルの初めに、基底、指標及び
変位フィールドの加算が終了し、有効アドレスを生ずる
。有効アドレスはDLAT及びディレクトリ・チップ2
O−3A/2O−3Bに送られる。有効アドレスの上位
部分は変換されなければならないが、下位部分は変換さ
れず、キャッシュ 18−1^/18−2Bに送られる
。第3のサイクルで、取得したビットを用いて、キャッ
シュはアクセス動作を開始する。絶対アドレスを1!)
るため仮想アドレスを用いて、DLA丁ディレクトリが
探索される。この絶対アドレスはキャッシュ・ディレク
トリに保持された絶対アドレスと比較される。もし両者
が一致すれば、″ヒント”ラインが生成され、キャッシ
ュ・チップ18− IA/ 18−28に送られる。同
時に、キャッシュ・チップが全ての4つのアソシアティ
ビティ・クラスをアクセスし。
それに応じて出力をラッチする。
第4のサイクルで、4つの”スロット”即ちアソシアテ
ィビティ・クラスの1つが選択され、データは位置合わ
せされ5データ・バスを介して固定又は浮動小数点ユニ
ット20−4.20−5に送られる。
ィビティ・クラスの1つが選択され、データは位置合わ
せされ5データ・バスを介して固定又は浮動小数点ユニ
ット20−4.20−5に送られる。
その結果、第4のサイクルの終りで、1つのオペランド
がALU 2O−4C人力部にラッチされる。その間に
、プロセッサでは他の命令が実行中である。
がALU 2O−4C人力部にラッチされる。その間に
、プロセッサでは他の命令が実行中である。
他のオペランドを得るためGPIIコピー20−:ID
及びJl・)所記憶2O−4Aがアクセスされる。この
時点で、両オペランドがA1.lI 2O−4Cの人力
部にラッチされる。計算を実行し、条件レジスタをセッ
トし、最後に結果をG P Rコピー2O−3D内の汎
用レジスタに1膝込むのに1サイクルを要する。結果は
1例えば、アドレス計算に必要とすることがあれば、ア
ドレス生成チップ2O−3Cに人力されるであろう、一
定の命令を実行している間は、キャッシュ18−IA/
+8−2Bのアクセスは必要としない、よって、命令復
号が終了すると、(キャッシュのアクセスに関して)そ
れ以上遅延せずに結果が実行装置に直接波される。よっ
て、命令が復号されアドレス生成チップ20−3に渡さ
れると直ちに、もう1つの命令が復号される。
及びJl・)所記憶2O−4Aがアクセスされる。この
時点で、両オペランドがA1.lI 2O−4Cの人力
部にラッチされる。計算を実行し、条件レジスタをセッ
トし、最後に結果をG P Rコピー2O−3D内の汎
用レジスタに1膝込むのに1サイクルを要する。結果は
1例えば、アドレス計算に必要とすることがあれば、ア
ドレス生成チップ2O−3Cに人力されるであろう、一
定の命令を実行している間は、キャッシュ18−IA/
+8−2Bのアクセスは必要としない、よって、命令復
号が終了すると、(キャッシュのアクセスに関して)そ
れ以上遅延せずに結果が実行装置に直接波される。よっ
て、命令が復号されアドレス生成チップ20−3に渡さ
れると直ちに、もう1つの命令が復号される。
s oopバー
以上で良好なハードウェア・システムについて包括的に
説明したので、 5ETLOOP命令の専用のハードウ
ェアについて以下に説明する。従来技術のソフトウェア
・ループの通常の実行はテーブル1のサンプル・リスト
で見ることができる。サンプル・コードは IBM 3
70アセンブラ3語に示されている。最初の2つの命令
は初期条件をロードする。
説明したので、 5ETLOOP命令の専用のハードウ
ェアについて以下に説明する。従来技術のソフトウェア
・ループの通常の実行はテーブル1のサンプル・リスト
で見ることができる。サンプル・コードは IBM 3
70アセンブラ3語に示されている。最初の2つの命令
は初期条件をロードする。
次の2つの命令は反復される動作である。最後の命令は
ループの各々の反復とともに実行される。
ループの各々の反復とともに実行される。
その結果、ループを初期設定するのに2つの命令を必要
とし、ループ内で3つの命令が実行される。
とし、ループ内で3つの命令が実行される。
テ−一−−ブ−フレ−−−−土
POO12R521:2つの数 (NIIMl、 NU
MB)をN乗するコーI−人力 : lleg〜はへき
数Nを含む: RegNu+siは第1の数を含む:
RegNum2は第2の数を含む 出力 : Re5ultl (lag)は第1の数のN
乗を含む: 1lcsult2 (Reg)は第2の数
のN乗を含むI’OWl:、11S21: LA Rc
sulLl、l ;初期設定するLA Rcsu
lL2.I TOP : MRl1esulLl、RcgNul;次
に高いへき乗結果BCT RegN、 ’rOP ;
カウントを減分シ、モジ非Oなら先頭に分岐する 木注:分岐型のループでは3つの命令がN回実行される テーブル2は同じループを5ETLO叶命令を用いて実
行するリストを示す、初期設定は同じ最初の2つの命令
を必要とするが、そのうえ第3の命令(即ち、新しい5
ETI、oop命令)も必要とする。しかしながら、ル
ープは実行には2つの命令しか必要とせず、本実施例で
はループの各々の反復で少なくとも2分の1が節約され
る。実際には以下に説明するように良好なパイプライン
構造の場合の節約の方が大きい。
MB)をN乗するコーI−人力 : lleg〜はへき
数Nを含む: RegNu+siは第1の数を含む:
RegNum2は第2の数を含む 出力 : Re5ultl (lag)は第1の数のN
乗を含む: 1lcsult2 (Reg)は第2の数
のN乗を含むI’OWl:、11S21: LA Rc
sulLl、l ;初期設定するLA Rcsu
lL2.I TOP : MRl1esulLl、RcgNul;次
に高いへき乗結果BCT RegN、 ’rOP ;
カウントを減分シ、モジ非Oなら先頭に分岐する 木注:分岐型のループでは3つの命令がN回実行される テーブル2は同じループを5ETLO叶命令を用いて実
行するリストを示す、初期設定は同じ最初の2つの命令
を必要とするが、そのうえ第3の命令(即ち、新しい5
ETI、oop命令)も必要とする。しかしながら、ル
ープは実行には2つの命令しか必要とせず、本実施例で
はループの各々の反復で少なくとも2分の1が節約され
る。実際には以下に説明するように良好なパイプライン
構造の場合の節約の方が大きい。
たニブ基−1
POVER522:2ツ(7)数 (NUMl、N1M
2)をN乗するコード人力 : RegNはべき数Nを
含む : RegNu膳1は第1の数を含む : RcgNum2は第2の数を含む 出力 : l1esultl (Reg)は第1の数の
N乗を含む: ItesuJt2 (Reg)は第2の
数のN乗を含むPOWF、1S22: [、^Re5u
ltl、1 ;初期設定するl、A Re s
u l t 2 + 1SETLOOP RegN、D
EC,ll0T :反復カウント・レジスタとしてRe
gNを減分する SRRe5ultl、RegNuml ;次に高いべき
乗の結果 110T : 811 11esult2.
RcgNum ;本性: 5ETLOOPループで
は2つの命令がN回実行される 5ETLOOP命令は、ループを実行する反復数をカウ
ントするカウンタとして動作するループ制御ハードウェ
アREG Nを初期設定する。ループの最下部で分岐を
制御するため各々の反復とともにカウントが減分される
。 BOTはループ内の命令数(即ち、2)である、こ
の数はコンパイラ又は他のシステム・ソフトウェアによ
ってフィールドに入力される。入力された数は特別のレ
ジスタにロードされ、ループ命令が実行される毎に減分
される。
2)をN乗するコード人力 : RegNはべき数Nを
含む : RegNu膳1は第1の数を含む : RcgNum2は第2の数を含む 出力 : l1esultl (Reg)は第1の数の
N乗を含む: ItesuJt2 (Reg)は第2の
数のN乗を含むPOWF、1S22: [、^Re5u
ltl、1 ;初期設定するl、A Re s
u l t 2 + 1SETLOOP RegN、D
EC,ll0T :反復カウント・レジスタとしてRe
gNを減分する SRRe5ultl、RegNuml ;次に高いべき
乗の結果 110T : 811 11esult2.
RcgNum ;本性: 5ETLOOPループで
は2つの命令がN回実行される 5ETLOOP命令は、ループを実行する反復数をカウ
ントするカウンタとして動作するループ制御ハードウェ
アREG Nを初期設定する。ループの最下部で分岐を
制御するため各々の反復とともにカウントが減分される
。 BOTはループ内の命令数(即ち、2)である、こ
の数はコンパイラ又は他のシステム・ソフトウェアによ
ってフィールドに入力される。入力された数は特別のレ
ジスタにロードされ、ループ命令が実行される毎に減分
される。
このレジスタは、新たな反復のためループの先頭に分岐
する度に、口OTにより再ロードされる。このように、
ループ内の瞬間位置が常に識別される。
する度に、口OTにより再ロードされる。このように、
ループ内の瞬間位置が常に識別される。
このように、純粋にソフトウェアの観点から、ループ開
始の前に実行される新しい初期設定命令(即ち、5ET
LOOP命令)の使用により、ループ内の分岐命令が削
除され節約される。ハードウェアを調べると更に大きな
利点があることがわかる。
始の前に実行される新しい初期設定命令(即ち、5ET
LOOP命令)の使用により、ループ内の分岐命令が削
除され節約される。ハードウェアを調べると更に大きな
利点があることがわかる。
S訂しOOP命令に関連したハードウェアの概要を第1
図に示す、 5ETLOOP命令が復号される度に。
図に示す、 5ETLOOP命令が復号される度に。
(5ETLOOP命令に続く次のアドレスに増分された
後に)命令アドレス・レジスタの内容が先頭レジスタ5
0にロートされる。このアドレスの記憶は。
後に)命令アドレス・レジスタの内容が先頭レジスタ5
0にロートされる。このアドレスの記憶は。
分岐条件がもう1つの反復を必要とする度にループの先
頭命令に復帰することをを容易にする1図示のように、
ゲート64は先頭レジスタ50の内容を命令アドレス・
レジスタに戻すことを可能にする。
頭命令に復帰することをを容易にする1図示のように、
ゲート64は先頭レジスタ50の内容を命令アドレス・
レジスタに戻すことを可能にする。
5ETLOOP命令の復号により、ループ中の命令数を
指定するフィールドの内容(前記の、変数BOTソフト
ウェア記述参照)もカウント・レジスタ5G及び長さレ
ジスタ60にロードされる。ループ命令が実行される度
にカウント・レジスタ56がデクレメンタ58により減
分される。所望のパイプライン動作の程度に応じてカウ
ント・レジスタ56を減分してOll又はより大きい数
にすることは分岐の判断が必要であることを表わす、も
しもう1つの反復が必要なら、カウント・レジスタ56
には長さレジスタ60の内容が再ロードされ、命令アド
レス・レジスタには先頭レジスタ50の内容が再ロード
される。
指定するフィールドの内容(前記の、変数BOTソフト
ウェア記述参照)もカウント・レジスタ5G及び長さレ
ジスタ60にロードされる。ループ命令が実行される度
にカウント・レジスタ56がデクレメンタ58により減
分される。所望のパイプライン動作の程度に応じてカウ
ント・レジスタ56を減分してOll又はより大きい数
にすることは分岐の判断が必要であることを表わす、も
しもう1つの反復が必要なら、カウント・レジスタ56
には長さレジスタ60の内容が再ロードされ、命令アド
レス・レジスタには先頭レジスタ50の内容が再ロード
される。
5ETLOOP命令の復号により、実行されるループの
反復数は反復カラン1〜・レジスタ52にロードされる
(フィールド変数REGNについての前記ソフj〜ウェ
ア記述参照)、デクレメンタ 58によってカウント・
レジスタ56がその最小値に減分される度に、反復カウ
ント・レジスタ52はデクレメンタ54によって減分さ
れる0反復カウント・レジスタ52を減分してOにする
ことは、ループはそれ以上は反復されないことを意味し
、ループに続く命令が実行される。
反復数は反復カラン1〜・レジスタ52にロードされる
(フィールド変数REGNについての前記ソフj〜ウェ
ア記述参照)、デクレメンタ 58によってカウント・
レジスタ56がその最小値に減分される度に、反復カウ
ント・レジスタ52はデクレメンタ54によって減分さ
れる0反復カウント・レジスタ52を減分してOにする
ことは、ループはそれ以上は反復されないことを意味し
、ループに続く命令が実行される。
ループ・モード制御62も5ETLOOP命令によって
初期設定される1反復カウント・レジスタ52及びカウ
ント・レジスタ56は、本明細書の良好の実施例のよう
な高度のパイプライン構造で予め多くの命令が所望され
るとき、協力して分岐の方向を予測することができる。
初期設定される1反復カウント・レジスタ52及びカウ
ント・レジスタ56は、本明細書の良好の実施例のよう
な高度のパイプライン構造で予め多くの命令が所望され
るとき、協力して分岐の方向を予測することができる。
更に、従来技術で周知のように、先頭レジスタ501反
復カウント・レジスタ52、カウント・レジスタ56及
び長さレジスタ6oはそれぞれ容易にブツシュ・ポツプ
・スタックと置き換えることができ、有効な00ループ
のネスティングを可能にする。
復カウント・レジスタ52、カウント・レジスタ56及
び長さレジスタ6oはそれぞれ容易にブツシュ・ポツプ
・スタックと置き換えることができ、有効な00ループ
のネスティングを可能にする。
E3発明の効果
本発明によれば、プログラム・ループ内の命令数が減る
ので、ループ実行を高速化かることができる。
ので、ループ実行を高速化かることができる。
第1図は本発明に指向された特定のハードウェアのブロ
ック図である。 第2図は本発明を用いるシングル・プロセッサ・コンピ
ュータ・システムのブロック図である。 第3図は本発明を用いる多重プロセッサ・コンピュータ
・システムのブロック図である。 第4図は命令/実行装置の詳細なブロック図である。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 (外1名) 第2因 レジスタ入力−ノ曹へ @1因
ック図である。 第2図は本発明を用いるシングル・プロセッサ・コンピ
ュータ・システムのブロック図である。 第3図は本発明を用いる多重プロセッサ・コンピュータ
・システムのブロック図である。 第4図は命令/実行装置の詳細なブロック図である。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 (外1名) 第2因 レジスタ入力−ノ曹へ @1因
Claims (1)
- 【特許請求の範囲】 複数の命令を多数回にわたり反復するプログラム・ルー
プを初期設定する手段、 前記複数の命令の残数のカウントを瞬時に維持するため
前記初期設定手段に結合された手段、及び 前記反復の数をカウントするため前記初期設定手段及び
前記瞬時に維持する手段に結合された手段 を含むプログラム・ループ実行装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US28714088A | 1988-12-21 | 1988-12-21 | |
| US287140 | 1988-12-21 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02183831A true JPH02183831A (ja) | 1990-07-18 |
Family
ID=23101627
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1277332A Pending JPH02183831A (ja) | 1988-12-21 | 1989-10-26 | プログラム・ループ実行装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5898866A (ja) |
| EP (1) | EP0374419A3 (ja) |
| JP (1) | JPH02183831A (ja) |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04293124A (ja) * | 1991-03-20 | 1992-10-16 | Hitachi Ltd | データ処理プロセッサ |
| FR2693572B1 (fr) * | 1992-07-13 | 1994-09-30 | Texas Instruments France | Système de traitement de données comportant un dispositif amélioré de traitement des boucles de programme. |
| WO1994002894A2 (en) * | 1992-07-13 | 1994-02-03 | Texas Instruments France | Data-processing system with a device for handling program loops |
| US6088791A (en) * | 1998-04-30 | 2000-07-11 | International Business Machines Corporation | Computer processor system for implementing the ESA/390 STOSM and STNSM instructions without serialization or artificially extending processor execution time |
| US6401196B1 (en) | 1998-06-19 | 2002-06-04 | Motorola, Inc. | Data processor system having branch control and method thereof |
| DE69839910D1 (de) * | 1998-10-06 | 2008-10-02 | Texas Instruments Inc | Verfahren und Vorrichtung zur iterativen Befehlsausführung |
| US6990570B2 (en) | 1998-10-06 | 2006-01-24 | Texas Instruments Incorporated | Processor with a computer repeat instruction |
| US6282633B1 (en) | 1998-11-13 | 2001-08-28 | Tensilica, Inc. | High data density RISC processor |
| JP3842474B2 (ja) * | 1999-02-02 | 2006-11-08 | 株式会社ルネサステクノロジ | データ処理装置 |
| WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
| HK1046049A1 (zh) | 1999-09-01 | 2002-12-20 | Intel Corporation | 用於多线程处理器的分支指令 |
| US20010021973A1 (en) * | 2000-03-10 | 2001-09-13 | Matsushita Electric Industrial Co., Ltd. | Processor |
| US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
| US7065636B2 (en) * | 2000-12-20 | 2006-06-20 | Intel Corporation | Hardware loops and pipeline system using advanced generation of loop parameters |
| DE10204345A1 (de) * | 2002-02-01 | 2003-08-14 | Systemonic Ag | Verfahren zur Befehlsbearbeitung |
| US7437724B2 (en) | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
| US7020769B2 (en) * | 2003-09-30 | 2006-03-28 | Starcore, Llc | Method and system for processing a loop of instructions |
| WO2006044476A2 (en) | 2004-10-12 | 2006-04-27 | Robert Vernon Vanman | Method of and system for mobile surveillance and event recording |
| US8982944B2 (en) * | 2005-10-12 | 2015-03-17 | Enforcement Video, Llc | Method and system for categorized event recording of images in multiple resolution levels |
| US8443351B2 (en) * | 2006-02-23 | 2013-05-14 | Microsoft Corporation | Parallel loops in a workflow |
| US7937574B2 (en) * | 2007-07-17 | 2011-05-03 | Advanced Micro Devices, Inc. | Precise counter hardware for microcode loops |
| US8599368B1 (en) | 2008-01-29 | 2013-12-03 | Enforcement Video, Llc | Laser-based speed determination device for use in a moving vehicle |
| JP2009110209A (ja) * | 2007-10-29 | 2009-05-21 | Panasonic Corp | 演算処理装置、プロセッサ、プログラム変換装置およびプログラム |
| CA2714362A1 (en) | 2008-01-29 | 2009-08-06 | Enforcement Video, Llc | Omnidirectional camera for use in police car event recording |
| WO2009102480A2 (en) | 2008-02-15 | 2009-08-20 | Enforcement Video, Llc | System and method for multi-resolution storage of images |
| DE102009046362A1 (de) * | 2009-11-03 | 2011-05-05 | Tesa Se | Haftklebestoff aus einem vernetzbaren Polyolefin und einem Klebharz |
| US8736680B1 (en) | 2010-05-18 | 2014-05-27 | Enforcement Video, Llc | Method and system for split-screen video display |
| US9639371B2 (en) | 2013-01-29 | 2017-05-02 | Advanced Micro Devices, Inc. | Solution to divergent branches in a SIMD core using hardware pointers |
| US9830164B2 (en) | 2013-01-29 | 2017-11-28 | Advanced Micro Devices, Inc. | Hardware and software solutions to divergent branches in a parallel pipeline |
| US20170052782A1 (en) * | 2015-08-21 | 2017-02-23 | Apple Inc. | Delayed zero-overhead loop instruction |
| US10341605B1 (en) | 2016-04-07 | 2019-07-02 | WatchGuard, Inc. | Systems and methods for multiple-resolution storage of media streams |
| CN110134441B (zh) * | 2019-05-23 | 2020-11-10 | 苏州浪潮智能科技有限公司 | Risc-v分支预测方法、装置、电子设备及存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61127035A (ja) * | 1984-11-26 | 1986-06-14 | Hitachi Ltd | パイプライン制御プロセッサ |
| JPS63200234A (ja) * | 1987-02-17 | 1988-08-18 | Toshiba Corp | デ−タ処理装置 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4097920A (en) * | 1976-12-13 | 1978-06-27 | Rca Corporation | Hardware control for repeating program loops in electronic computers |
| US4179737A (en) * | 1977-12-23 | 1979-12-18 | Burroughs Corporation | Means and methods for providing greater speed and flexibility of microinstruction sequencing |
| IT1149809B (it) * | 1980-06-12 | 1986-12-10 | Honeywell Inf Systems | Sequenziatore per unita' di controllo microprogrammata |
| US4462074A (en) * | 1981-11-19 | 1984-07-24 | Codex Corporation | Do loop circuit |
| JPS58117050A (ja) * | 1981-12-30 | 1983-07-12 | Fujitsu Ltd | デ−タシヨリソウチ |
| US4463422A (en) * | 1982-07-12 | 1984-07-31 | Csp, Inc. | Method of processing an iterative program loop |
| US4566063A (en) * | 1983-10-17 | 1986-01-21 | Motorola, Inc. | Data processor which can repeat the execution of instruction loops with minimal instruction fetches |
| FR2557712B1 (fr) * | 1983-12-30 | 1988-12-09 | Trt Telecom Radio Electr | Processeur pour traiter des donnees en fonction d'instructions provenant d'une memoire-programme |
| US4621219A (en) * | 1984-07-17 | 1986-11-04 | Varian Associates, Inc. | Electron beam scrambler |
| US4703481A (en) * | 1985-08-16 | 1987-10-27 | Hewlett-Packard Company | Method and apparatus for fault recovery within a computing system |
| US4652997A (en) * | 1985-11-27 | 1987-03-24 | Motorola, Inc. | Method and apparatus for minimizing overhead when executing nested do loops |
-
1989
- 1989-10-21 EP EP19890119562 patent/EP0374419A3/en not_active Ceased
- 1989-10-26 JP JP1277332A patent/JPH02183831A/ja active Pending
-
1994
- 1994-01-13 US US08/180,648 patent/US5898866A/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61127035A (ja) * | 1984-11-26 | 1986-06-14 | Hitachi Ltd | パイプライン制御プロセッサ |
| JPS63200234A (ja) * | 1987-02-17 | 1988-08-18 | Toshiba Corp | デ−タ処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0374419A3 (en) | 1991-04-10 |
| US5898866A (en) | 1999-04-27 |
| EP0374419A2 (en) | 1990-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02183831A (ja) | プログラム・ループ実行装置 | |
| US5202972A (en) | Store buffer apparatus in a multiprocessor system | |
| US5291586A (en) | Hardware implementation of complex data transfer instructions | |
| US4701844A (en) | Dual cache for independent prefetch and execution units | |
| US5123095A (en) | Integrated scalar and vector processors with vector addressing by the scalar processor | |
| US4794521A (en) | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors | |
| US5758176A (en) | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system | |
| JP3195378B2 (ja) | 高性能プロセッサ用の分岐予測 | |
| JP2962876B2 (ja) | 内部プロセッサレジスターコマンドのi/o空間アドレスへの変換 | |
| US5249286A (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
| US4620275A (en) | Computer system | |
| US6351804B1 (en) | Control bit vector storage for a microprocessor | |
| US5845323A (en) | Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time | |
| JPH0675747A (ja) | 浮動小数点装置を有する高性能多重プロセッサ | |
| WO1996012227A1 (en) | An address queue capable of tracking memory dependencies | |
| JPS63150731A (ja) | コンピュータシステムおよびその実行方法 | |
| US5596735A (en) | Circuit and method for addressing segment descriptor tables | |
| KR100618248B1 (ko) | 실행 엔진으로부터 다중 데이터 소스까지 다중 로드 및 기억 요구를 지원하는 장치 및 방법 | |
| US5313613A (en) | Execution of storage-immediate and storage-storage instructions within cache buffer storage | |
| EP0459233A2 (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
| JPH0776920B2 (ja) | 命令処理装置 | |
| US20030196072A1 (en) | Digital signal processor architecture for high computation speed | |
| US6115730A (en) | Reloadable floating point unit | |
| EP1055998B1 (en) | Reducing the number of issued instructions in a microprocessor | |
| Margulis | i860 microprocessor internal architecture |