JPH04286026A - マイクロプロセッサ内の命令準備のための装置 - Google Patents

マイクロプロセッサ内の命令準備のための装置

Info

Publication number
JPH04286026A
JPH04286026A JP29074891A JP29074891A JPH04286026A JP H04286026 A JPH04286026 A JP H04286026A JP 29074891 A JP29074891 A JP 29074891A JP 29074891 A JP29074891 A JP 29074891A JP H04286026 A JPH04286026 A JP H04286026A
Authority
JP
Japan
Prior art keywords
instruction
address
jump
memory unit
memory
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.)
Granted
Application number
JP29074891A
Other languages
English (en)
Other versions
JP3100705B2 (ja
Inventor
Rod Fleck
ロート フレツク
Mark Poret
マーク ポレツト
Karl-Heinz Mattheis
カール‐ハインツ マタイス
Javier V Magana
ジヤビア ブセー マガナ
Christoph Meinhold
クリストフ マインホルト
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of JPH04286026A publication Critical patent/JPH04286026A/ja
Application granted granted Critical
Publication of JP3100705B2 publication Critical patent/JP3100705B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

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)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は請求項1または2の前文
によるマイクロプロセッサ内の命令準備のための装置に
関する。
【0002】
【従来の技術】マイクロプロセッサまたはマイクロコン
トローラへの要求事項は開発世代ごとに高まっており、
現在のマイクロプロセッサには、以前には大形計算機で
のみ普通であった処理ユニットが設けられている。これ
らの処理ユニットの1つは、命令を擬似的に並列に処理
することを可能にする。マイクロプロセッサまたはマイ
クロコントローラはそのためにいわゆるパイプラインア
ーキテクチュアを含んでいる。このようなパイプライン
アーキテクチュアは雑誌、Elektronik、第2
巻、1990年1月、第46頁以降に記載されている。 通常、1つの命令の処理のために多くのステップが必要
とされる。 パイプラインアーキテクチュアではこれらのステップが
可能なかぎり等しい部分ステップに分割される。各部分
ステップは独立的に、すなわち他の部分ステップと無関
係に処理され得る。1つの命令を完全に処理するために
は、命令は順次にすべての部分ステップを通過しなけれ
ばならない。通常、プロセッサは3ないし5段のパイプ
ラインを有する。以下では3段のパイプラインが説明さ
れる:
【0003】1.Fetch:命令取り出し。命令が内
部または外部メモリからプログラムカウンタ内に存在す
るアドレスに基づいて取り出される。
【0004】2.Decode:命令をデコードする。 この段階の間に、必要とされるオペランドが内部または
外部メモリから取り出される。さらに、目下処理される
べき命令がデコードされる。先行の命令を作成し終わっ
たデータは同じく処理されるべき命令に送達される。
【0005】3.Execute:命令を実行する。デ
コード段階の間に発生された信号を考慮に入れて、演算
論理ユニットまたは他の実行ユニット(たとえばシフタ
または乗算器)が所望の計算を行なう。このステップの
第2の段階の間に結果が内部または外部メモリのなかに
書込まれる。
【0006】上記の段の各々はもちろんさらに別の部分
段に分割され得る。相い続く命令の処理の際にパイプラ
インはベルトコンベア法でクロックサイクルからクロッ
クサイクルへと満たされる。パイプラインがいったん完
全に満たされていると、1つの命令の処理のために擬似
的にただ1つのクロックしか必要とされない。このこと
はもちろん相応の長いプログラムの処理の際にも当ては
まる。上記の3段のパイプラインはこうして、従来のマ
イクロプロセッサにくらべて命令を3倍速く実行するこ
とを可能にする。この能力向上はもちろん、命令が順次
に次々と続くときにのみ達成される。命令処理の間に飛
越し命令が生ずると、パイプラインを通る流れは中断さ
れる。なぜならば、すぐ次の命令として処理されるべき
命令のアドレスがデコード段階の間に初めて求められ得
るからである。飛越し命令は多くの応用でマイクロプロ
セッサまたはマイクロコントローラの実行すべき命令の
大部分を呈するので、なかんずくプログラムループの際
に、係数3だけの能力向上はプログラムランの間常に保
証されるわけではない。
【0007】この問題のこれまでの解決策はいわゆる“
遅延分岐”である。その際には飛越し命令の生起の際に
常にいわゆる“無演算”命令NOPが挿入される。固有
の飛越し先命令の遅延処理により常に正しい飛越し先命
令がロードされる。なぜならば、飛越し先アドレスを計
算するのに十分な時間が存在しているからである。欠点
は、飛越し命令の生起の際に基本的に1つのサイクルが
失われることである。“無演算”命令の代わりに、事情
によっては、プログラムラン中に生ずる他の命令も選ば
れ得る。しかし、この命令は飛越し命令に影響を有して
はならず、またこのような命令の選択を強く制限する特
定の条件を満たさなければならない。
【0008】
【発明が解決しようとする課題】従って、本発明の課題
は、多段のパイプライン処理ユニットを有するマイクロ
プロセッサ内の命令準備のための装置であって、飛越し
命令をループ内で可能なかぎりわずかな速度損失で処理
することを可能にする装置を提供することである。
【0009】この課題は請求項1または2の特徴により
解決される。
【0010】本発明の実施態様は従属請求項にあげられ
ている。
【0011】
【発明の効果】本発明の利点は、パイプラインアーキテ
クチュアを有するマイクロプロセッサまたはマイクロコ
ントローラが条件付き飛越し命令を有するプログラムル
ープの際にもパイプラインアーキテクチュアを有するこ
れまでのシステムにくらべてほとんど速度損失を被むら
ないことである。“遅延分岐”は行われない。しかしな
から、このことは、飛越しアドレスが静的である飛越し
命令に対してのみ当てはまる。すなわち、飛越し命令に
より定められる飛越し先アドレスはプログラムランの間
に変化してはならない。このような静的な飛越し命令は
、マイクロプロセッサの飛越し命令文の大部分を呈する
。このことは簡単な仕方でアドレスおよびデータおよび
相応の制御論理に対する簡単なメモリユニットにより飛
越し命令アドレスまたは飛越し先アドレスおよび飛越し
先命令を一時記憶することにより達成される。飛越し命
令のアドレス、飛越し先命令、すなわち飛越しアドレス
のもとに記憶されている命令、および飛越し先リンクア
ドレスが記憶されることは有利である。相応に速い処理
ユニット、特に演算論理ユニットでは、飛越し命令アド
レスの代わりに飛越し先アドレスも一時記憶され得る。
【0012】飛越し命令のアドレスまたは飛越し先アド
レスとメモリユニットのなかに記憶されているアドレス
との合致が生じ、またプログラム分岐のための相応のフ
ラグが先行の命令によりセットされていると、飛越し命
令および飛越し先リンクアドレスが相応のパイプライン
段に渡される。そのために十分な処理時間が1つのサイ
クルのなかに用意されている。その理由は、飛越し命令
のアドレスは直ちに、すなわち1つのサイクルの開始の
際に比較され得ること、または飛越し先アドレスが相応
に速く求められ得るからである。パイプラインの大きさ
に応じて、前に置かれているパイプライン段が飛越しの
際に正しいデータを供給されるように、追加的なメモリ
ユニットが処理すべきデータの記憶のために用意されな
ければならない。
【0013】別の利点は、各任意の命令が飛越し命令に
続き得ること、また飛越し先アドレスが任意に内部また
は外部ROMまたはRAMのなかに位置していてよいこ
とである。
【0014】
【実施例】以下、図面に示されている実施例により本発
明を一層詳細に説明する。
【0015】マイクロプロセッサまたはマイクロコント
ローラ内のパイプライン段Fetchのなかの命令準備
のために主要な構成要素が図1に示されている。プログ
ラムカウンタ1の内容は一方では演算論理ユニット7に
、また他方では増分ユニット4に供給される。増分ユニ
ット4の出力データはメモリユニット5に供給される。 このメモリユニットは飛越し先リンクアドレスを記憶す
る役割をする。マルチプレクサ6が設けられており、そ
の入力端には演算論理ユニット7の出力データと、増分
ユニット4の出力データと、飛越し命令の生起の際に1
つおいて次のリンクアドレスを記憶するためのメモリユ
ニット5の出力データとが供給される。マルチプレクサ
6の出力端は一方ではプログラムカウンタ1の入力端と
、また他方ではプログラムメモリ2と接続されている。 演算論理ユニット7の第2の入力端8には、(相対的飛
越しの際の)プログラムカウンタ‐オフセットまたはデ
コーダ段から供給される絶対的飛越し先アドレスが与え
られている。マルチプレクサ6の出力端はさらに一方で
はアドレスコンパレータ10の第1の入力端と、また他
方ではメモリユニット9を介してアドレスコンパレータ
10の第2の入力端と接続されている。アドレスコンパ
レータ10の出力端は、マルチプレクサ6から供給され
たアドレスとメモリユニット9のなかに記憶されている
アドレスとの合致を示す信号を供給する。命令メモリ2
はアドレス指定されたデータを与えるデータ出力端を有
する。この出力端はマルチプレクサ13および別のメモ
リユニット12と接続されている。このメモリユニット
12の出力端はマルチプレクサ13の第2の入力端と接
続されている。マルチプレクサ13の出力端は命令レジ
スタ3と接続されている。この命令レジスタ3の出力端
14からデコーダ段に対して必要な命令が取り出され得
る。
【0016】マルチプレクサ6、13ならびにコンパレ
ータ10および演算制御ユニットなどの制御のために必
要な信号線は、図面を見やすくするため、図1には示さ
れていない。
【0017】命令準備のために通常動作中に、プログラ
ムカウンタ1のなかに存在するアドレスが増分段4のな
かでそれぞれの命令長さだけ高められるので、増分段4
のなかに存在するアドレスは、直接にプログラムメモリ
2のなかで後に続く命令を示す。このアドレスはマルチ
プレクサ6を介して直線的に相い続く命令の際に選択さ
れ、またプログラムカウンタに記憶される。さらにこの
アドレスによりプログラムメモリ2がアドレス指定され
る。付属の命令は次いでマルチプレクサ13を介して命
令レジスタ3に伝達され、パイプラインのなかで後続の
デコーダ段に渡される。
【0018】デコーダ段のなかで静的な飛越しアドレス
を有する飛越し命令が認識されると、後のように実行が
進む:
【0019】この飛越し命令が既に先に処理されたか否
かが検査される。そのために飛越し命令のアドレスがコ
ンパレータ10によりメモリユニット9の内容と比較さ
れる。飛越し条件が満たされているならば、2つの状態
が生ずる:
【0020】a)合致していない場合には、飛越し先ア
ドレスが演算論理ユニット7により計算され、またマル
チプレクサ6に供給される。飛越し命令アドレスはメモ
リユニット9のなかに記憶される。飛越し命令に直線的
に続く命令は命令レジスタから消去され、またはいわゆ
る“無演算”命令NOPにより置換される。後続のサイ
クルで次いで新たに計算された飛越し先アドレスがマル
チプレクサ6により選択される。新たに計算されたアド
レスはプログラムカウンタのなかに記憶され、また再び
増分段のなかで高められる。この飛越し先リンクアドレ
スは次いでメモリユニット5のなかに記憶される。マル
チプレクサ6により選択されたアドレスはプログラムカ
ウンタ2に供給され、またそれによりアドレス指定され
た命令がマルチプレクサ13を介して命令レジスタ3に
供給されると共にメモリユニット12のなかに記憶され
る。
【0021】b)合致している場合には、メモリユニッ
ト12のなかに記憶されている命令がマルチプレクサ1
3を介してデコーダ段に渡される。先に命令準備段階F
etchで求められた直線的な後続命令がそれにより消
去される。命令準備段階は次いでマルチプレクサ6を介
して、メモリユニット5のなかに記憶された飛越し先リ
ンクアドレスを選択し、またそれらをプログラムカウン
タおよびプログラムメモリに公知の仕方で供給する。
【0022】すべての他の飛越し命令、すなわち動的な
飛越しアドレスを有する飛越し命令の際には、パイプラ
イン処理の進行が通常のように続く。すなわち、“無演
算”命令が挿入されなければならず、または1つのサイ
クルがパイプライン処理のなかで失われなければならな
い。
【0023】飛越し条件が満たされていないならば、通
常の順次のプログラムランが、先に通常動作での命令準
備で説明されているように行なわれる。
【0024】飛越し先リンクアドレスの準備は、飛越し
先アドレスが演算論理ユニット7の出力端から直接に増
分段4に、たとえばマルチプレクサを介して供給される
ことによっても行なわれ得よう。その場合、レジスタ5
は省略され得よう。重要なことは、コンパレータ10に
おけるアドレス合致の際にパイプラインの命令準備段階
Fetchが飛越し先リンクアドレスを準備することで
ある。
【0025】コンパレータ10に対する比較アドレス取
り出しは増分段4の後またはプログラムカウンタ1の後
でも行なわれ得よう。ここで重要なことはタイミングで
ある。比較は、後続の演算に対する十分な時間を有する
ように、飛越し命令の検出の後に可能なかぎり早く行な
われなければならない。
【0026】説明されている方法はマイクロコントロー
ラの内部進行制御により各リセット過程の後に最初の飛
越し命令の実行後に初めてレリーズされる。なぜならば
、前もってメモリユニット9の内容は定まっていないか
らである。
【0027】正確な進行は図2により、また小さいデモ
ンストレーションプログラムにより一層詳細に説明され
る。デモンストレーションプログラムは下記の内容であ
る: Blockmove:               MOV      R0
,#Bufferstart            
  MOV      R1,#Tablestart
Loop:    MOV      |R0|,|R
1  |              CPMIZ  
R0,#Bufferend            
  JMP      CCNE,Loop     
         RET
【0028】デモンストレーションプログラムはプログ
ラムループの通過の際のパイプラインアーキテクチュア
のなかの進行を明らかにする。このプログラムは、デー
タブロックを源アドレスから飛越し先アドレスへコピー
することを可能にするものである。最初の両命令MOV
は源アドレスおよび飛越し先アドレスをレジスタR0お
よびR1のなかにロードする。ループの最初の命令MO
VはR1が示すメモリセルの内容をR0が示すメモリセ
ルのなかにコピーし、続いてレジスタR1を増分する。 すぐ次の命令CPMIZはレジスタR0の内容を転送さ
れるべきブロックのエンドアドレスと比較し、レジスタ
R0を増分する。飛越し命令JMPがループの開始に戻
す。R0がブロックエンドアドレスに等しくない間は、
ループが繰り返される。最後に復帰飛越し命令RETが
続く。
【0029】図2はパイプラインのなかの進行を明らか
にする。T1ないしTN+1でプロセッサの個々の相い
続くクロックサイクルが示されている。FETCH、D
ECODE、EXECUTE、WRITEで4段パイプ
ラインの個々の段が示されている。時点T1でパイプラ
インは既に完全にロードされている。デモンストレーシ
ョンプログラムの最初の命令MOV  R0,#Buf
ferstartは既に処理されている。第2の命令M
OV  R1,#Tablestartは第4のパイプ
ライン段階WRITEのなかに位置している。第3の命
令MOV  |R0|,|R1+|は実行段階EXEC
UTEのなかに、第4の命令CPMIZ  R0,#B
ufferendはデコード段階DECODEのなかに
、また第5の命令JMP  CCNE,Loopはロー
ド段階FETCHのなかに位置している。時点T2でパ
イプラインの内容は1ステップだけずれ、従って飛越し
命令JMPはいまデコード段階DECODEのなかに位
置しており、また飛越し命令JMPに続く命令RETが
メモリから取り出される。なぜならば、この時点でコン
パレータ10はメモリユニット9の内容とマルチプレク
サ6から選択されたアドレスとの間の合致を確認しない
からである。時点T3で再びパイプラインの内容は1ス
テップだけずれる。確認されたアドレスの合致が存在し
ないことにより、いまデコード段階DECODEのなか
に位置している命令RETは消去され、またデコード段
階DECODEの間に時点T2で確認されたアドレスの
もとに存在する命令が命令レジスタ3のなかにロードさ
れる。
【0030】飛越し命令アドレスおよび付属の飛越し先
命令はいま相応のメモリユニット9、12のなかに一時
記憶される。さらに、増分された飛越し先アドレスがメ
モリユニット5のなかに記憶される。時点T5まではパ
イプラインの通常の処理が行なわれる。時点T5で再び
飛越し命令JMPがデコードされる。いまは、しかし、
マルチプレクサ6により選択されたアドレスがメモリユ
ニット9の内容と合致している。それにより後続の処理
段階T6で、飛越し先アドレスに存在する既にメモリユ
ニット12のなかに記憶されている命令が直接にデコー
ダ段に伝達される。ロード段階Fetchはメモリユニ
ット5のなかに記憶されている飛越し先アドレスのリン
クアドレスを受ける。こうしていまループ通過の残りに
対してサイクルがもはや失われない。最後にサイクルT
Nおよび後続のサイクルで復帰飛越し命令RETの処理
が行なわれる。
【0031】メモリユニット5、9、12の大きさは、
少なくともそれぞれの命令またはそれぞれのアドレスが
記憶され得るように選定されなければならない。複数の
コンパレータおよび付属のメモリユニット9がそれぞれ
並列に接続されると、飛越し命令の複数のアドレスがた
とえば入れ子にされたプログラムループにおいて一時記
憶される。同様に、その場合、それぞれ付属の飛越し先
命令または飛越し先リンクアドレスを記憶するため、複
数のメモリユニット5および12を設ける必要がある。
【0032】メモリユニット5、9、12が、記憶され
るべき命令よりも大きく選定されると、十分に早いメモ
リでは複数のリンク命令およびアドレスを処理する可能
性が存在する。
【0033】飛越し命令が既に実行されたか否かを確認
する他の可能性は、飛越し命令のアドレスを一時記憶す
るのではなく、飛越し先アドレスを一時記憶し、またそ
れらを後でプログラム中に現れる飛越し先アドレスと比
較することにある。
【0034】図3には本発明による命令準備のための装
置の、図1にくらべて変更された部分のみが示されてい
る。図1に相応して入力および出力信号は演算論理ユニ
ット7に供給される。
【0035】演算論理ユニット7の出力端は一方ではア
ドレスコンパレータ16の第1の入力端と、また他方で
はメモリユニット15を介してアドレスコンパレータ1
6の第2の入力端と接続されている。アドレスコンパレ
ータ16の出力端17は、演算論理ユニット7により計
算されたアドレスとメモリユニット15のなかに記憶さ
れているアドレスとの合致を示す信号を供給する。
【0036】通常動作中、増分段4から供給されるアド
レスはマルチプレクサ6を介してプログラムメモリ2の
アドレス入力端に供給される。相応の命令が次いで命令
レジスタ3のなかに記憶され、またパイプラインのなか
で後続のデコーダ段に供給される。その際に増分段4は
プログラムカウンタ1のカウンタ状態をそれぞれ、プロ
グラムカウンタ1のなかに存在する命令が有する命令長
さだけ高める。
【0037】飛越し命令が認識されると、演算論理ユニ
ット7が相応のアドレスを計算し、またそれらをマルチ
プレクサ6に伝達する。演算論理ユニット7の後に接続
されているアドレスコンパレータ16は計算されたアド
レスをメモリユニット15のなかに記憶されているアド
レスと比較する。メモリユニット15の内容と演算論理
ユニット7により計算されたアドレスとの合致が存在し
ないならば、演算論理ユニット7により計算されたアド
レスはマルチプレクサ6を介して命令メモリ2のアドレ
ス入力端に伝達される。さらに、計算されたアドレスは
増分段4によりそのつどの命令長さだけ増分され、メモ
リユニット5のなかに記憶される。それぞれプログラム
メモリ2のなかでアドレス指定された命令は次いでメモ
リユニット12のなかに記憶され、再び命令レジスタ3
のなかに受け入れられ、また後続のデコーダ段に伝達さ
れる。さらに、先にデコーダ段に伝達された命令が消去
され、またはNOP命令により置換される。合致が存在
するならば、先にメモリユニット12のなかに記憶され
た付属の命令がマルチプレクサ13を介して命令レジス
タ3のなかにロードされ、また続いてデコーダ段に伝達
される。さらに、合致が存在するならば、レジスタ5の
なかで増分された飛越し先アドレスがマルチプレクサ6
を介して命令メモリ2のアドレス入力端に伝達される。
【0038】飛越し先リンクアドレスの準備は図1に対
して存在する変形例によっても行なわれ得よう。
【0039】図3により示された実施例においても、図
1で説明したように、複数のコンパレータ16および付
属のメモリユニット15がそれぞれ並列に接続され得る
【0040】本発明は、パイプラインアーキテクチュア
を有するすべてのマイクロプロセッサまたはマイクロコ
ントローラに応用可能である。
【図面の簡単な説明】
【図1】マイクロプロセッサ内の命令準備のための第1
の本発明による装置のブロック回路図。
【図2】本発明による多段のパイプラインアーキテクチ
ュアのなかのプログラムループの進行を示すテーブル。
【図3】マイクロプロセッサ内の命令準備のための第2
の本発明による装置のブロック回路図の一部分。
【符号の説明】
1    アドレスレジスタ 2    メモリ 3    命令レジスタ 4    増分手段 5    メモリユニット 6    マルチプレクサ 7    演算論理ユニット 9    メモリユニット 10  アドレスコンパレータ 12  メモリユニット 13  マルチプレクサ 15  メモリユニット 16  アドレスコンパレータ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】  少なくとも“命令取出し”段階、“命
    令デコード”段階および“命令実行”段階から成ってい
    る処理を行なう多段のパイプライン処理ユニットを有す
    るマイクロプロセッサ内の命令準備のための装置であっ
    て、アドレスレジスタ(1)であって、その内容がメモ
    リ(2)のなかの処理されるべき命令を示し、またこの
    命令が命令ロード段階の間に付属の命令レジスタ(3)
    のなかにロードされるアドレスレジスタ(1)と、アド
    レスを計算するための演算論理ユニット(7)と、アド
    レスレジスタ内容を増分するための手段(4)と、計算
    または増分されたリンクアドレスを選択するためのマル
    チプレクサ(6)とを有する命令準備のための装置にお
    いて、少なくとも1つの第1の追加的なメモリユニット
    (9)が設けられており、そのなかに飛越し命令の出現
    の際および相応の飛越し条件の存在の際に付属の飛越し
    命令アドレスが一時記憶され、各第1のメモリユニット
    (9)に付属の少なくとも1つの第2のメモリユニット
    (12)が設けられており、そのなかに飛越し先アドレ
    スに付属の命令が記憶され、少なくとも1つのアドレス
    コンパレータ(10)が設けられており、このアドレス
    コンパレータが飛越し命令アドレスと第1のメモリユニ
    ット(9)の内容との合致の際および相応の飛越し条件
    の存在の際に、第2のメモリユニット(12)のなかに
    記憶されている命令を命令レジスタ(3)に伝達させる
    信号(11)を発生し、少なくとも1つの第3のメモリ
    ユニット(5)が設けられており、そのなかに飛越し先
    リンクアドレスが飛越し先アドレスの計算の後に記憶さ
    れ、またマルチプレクサ(6)に供給され、また前記信
    号(11)の発生の際にマルチプレクサ(6)が第3の
    メモリユニット(5)のなかに記憶されている飛越し先
    リンクアドレスを選択することを特徴とするマイクロプ
    ロセッサ内の命令準備のための装置。
  2. 【請求項2】  少なくとも“命令取出し”段階、“命
    令デコード”段階および“命令実行”段階から成ってい
    る処理を行なう多段のパイプライン処理ユニットを有す
    るマイクロプロセッサ内の命令準備のための装置であっ
    て、アドレスレジスタ(1)であって、その内容がメモ
    リ(2)のなかの処理されるべき命令を示し、またこの
    命令が命令ロード段階の間に付属の命令レジスタ(3)
    のなかにロードされるアドレスレジスタ(1)と、アド
    レスを計算するための演算論理ユニット(7)と、アド
    レスレジスタ内容を増分するための手段(4)と、計算
    または増分されたリンクアドレスを選択するためのマル
    チプレクサ(6)とを有する命令準備のための装置にお
    いて、少なくとも1つの第1の追加的なメモリユニット
    (15)が設けられており、そのなかに飛越し命令の出
    現の際に求められた飛越し先アドレスが一時記憶され、
    各第1のメモリユニット(15)に付属の少なくとも1
    つの第2のメモリユニット(12)が設けられており、
    そのなかに飛越し先アドレスに付属の命令が記憶され、
    少なくとも1つのアドレスコンパレータ(16)が設け
    られており、このアドレスコンパレータが求められた飛
    越し先アドレスと第1の追加的なメモリユニット(15
    )の内容との合致の際に、第2の追加的なメモリユニッ
    ト(12)のなかに記憶されている命令を命令レジスタ
    (3)に伝達させる信号(17)を発生し、少なくとも
    1つの第3の追加的なメモリユニット(5)が設けられ
    ており、第3の追加的なメモリユニット(5)が飛越し
    先リンクアドレスを飛越し先アドレスの計算の後に記憶
    し、またマルチプレクサ(6)に供給し、また前記信号
    (17)の発生の際にマルチプレクサ(6)が第3の追
    加的なメモリユニット(5)のなかに記憶されている飛
    越し先リンクアドレスを選択することを特徴とするマイ
    クロプロセッサ内の命令準備のための装置。
  3. 【請求項3】  メモリがマイクロプロセッサの内側ま
    たは外側にあり得ることを特徴とする請求項1または2
    記載のマイクロプロセッサ内の命令準備のための装置。
  4. 【請求項4】  メモリが読出しメモリまたは書込み/
    読出しメモリであることを特徴とする請求項1ないし3
    のいずれか1つに記載のマイクロプロセッサ内の命令準
    備のための装置。
JP03290748A 1990-10-12 1991-10-09 マイクロプロセッサ内の命令準備のための装置 Expired - Lifetime JP3100705B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AT90119633.7 1990-10-12
EP19900119633 EP0480095B1 (de) 1990-10-12 1990-10-12 Vorrichtung zur Befehlsbereitstellung in einem Mikroprozessor

Publications (2)

Publication Number Publication Date
JPH04286026A true JPH04286026A (ja) 1992-10-12
JP3100705B2 JP3100705B2 (ja) 2000-10-23

Family

ID=8204611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03290748A Expired - Lifetime JP3100705B2 (ja) 1990-10-12 1991-10-09 マイクロプロセッサ内の命令準備のための装置

Country Status (3)

Country Link
EP (1) EP0480095B1 (ja)
JP (1) JP3100705B2 (ja)
DE (1) DE59010857D1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0623874A1 (en) * 1993-05-03 1994-11-09 International Business Machines Corporation Method for improving the performance of processors executing instructions in a loop

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6051948A (ja) * 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
JPS60168238A (ja) * 1984-02-10 1985-08-31 Hitachi Ltd パイプラインデータ処理装置

Also Published As

Publication number Publication date
JP3100705B2 (ja) 2000-10-23
EP0480095B1 (de) 1998-12-23
DE59010857D1 (de) 1999-02-04
EP0480095A1 (de) 1992-04-15

Similar Documents

Publication Publication Date Title
EP1012705B1 (en) Data processing device
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5019967A (en) Pipeline bubble compression in a computer system
KR100571322B1 (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
EP0355069A2 (en) Variable delay branch system
EP0357188B1 (en) Pipelined processor
US5922070A (en) Pipelined data processing including program counter recycling
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
JPS6254342A (ja) ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US5301295A (en) Data processor apparatus and method with selective caching of instructions
JPH07129413A (ja) 割込み処理装置
EP0227117A2 (en) Program skip operation control system
AU599245B2 (en) A return address stack
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
US5461715A (en) Data processor capable of execution of plural instructions in parallel
US5835746A (en) Method and apparatus for fetching and issuing dual-word or multiple instructions in a data processing system
US4093983A (en) Fast and normal rate instruction fetching
JPS623342A (ja) パイプラインプロセツサ
US5454090A (en) Apparatus for furnishing instructions in a microprocessor with a multi-stage pipeline processing unit for processing instruction phase and having a memory and at least three additional memory units
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
JPH04286026A (ja) マイクロプロセッサ内の命令準備のための装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000711

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080818

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20080818

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090818

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090818

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100818

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110818

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110818

Year of fee payment: 11

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110818

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120818

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120818

Year of fee payment: 12