JP2002516425A - デジタルプロセッサ用制御装置 - Google Patents

デジタルプロセッサ用制御装置

Info

Publication number
JP2002516425A
JP2002516425A JP2000550011A JP2000550011A JP2002516425A JP 2002516425 A JP2002516425 A JP 2002516425A JP 2000550011 A JP2000550011 A JP 2000550011A JP 2000550011 A JP2000550011 A JP 2000550011A JP 2002516425 A JP2002516425 A JP 2002516425A
Authority
JP
Japan
Prior art keywords
instruction
instructions
memory
control
address
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.)
Withdrawn
Application number
JP2000550011A
Other languages
English (en)
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 JP2002516425A publication Critical patent/JP2002516425A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Power Sources (AREA)

Abstract

(57)【要約】 デジタルプロセッサ用制御装置は、ランダムアクセスメモリ、例えば、動作時にかなりの電力を消費する命令メモリを含む。反復命令、つまりループが実行されているときに電力消費を削減するために、ループ命令が、ループを定義する特殊命令なしに、ランダムアクセスメモリよりむしろシフトレジスタの中に記憶され、ランダムアクセスメモリよりむしろシフトレジスタからアクセスされる。メモリ制御は、プログラム命令の実行を監視し、そこからいつループが入力されたのかを判断し、その結果、それが、システムレジスタがその中に記憶されているループ命令を作成できるようにし、命令メモリが、ループが終了するまで命令を作成することを抑止する状態追跡機械を含む。前記プロセスは、ループが新しいループであるのか、ループ内のループであるのか、あるいは複数のループであるのかに関係なく、ループごとに自動的に起動される。本発明の制御装置は、ループに先行する、またはループに続くのどちらかである特殊命令が、ループの開始点または終了点、ループ内の命令の数、またはループが実行される回数を指定することを必要としないが、むしろそれはループを実行する実行可能なマイクロコード命令から自動的にループの存在を突き止める。

Description

【発明の詳細な説明】
【0001】 本発明は、デジタルプロセッサ用制御装置に関し、特に一定の運転条件下での
プロセッサの電力消費を削減するための制御装置に関する。
【0002】 デジタルプロセッサは、消費者、産業、娯楽、電気通信、計算、およびその他
の電子装置での多岐に渡る用途で使用されている。デジタルプロセッサは、通常
、制御機構または制御装置、ランダムアクセスメモリ(RAM)などのメモリ、
および実行装置を備える。プロセッサによって実行される命令は、メモリに記憶
され、制御装置の制御の元で読み出されてから、作用されるか、あるいは実行装
置内で実行される。プロセッサが、通常、算術および/または論理演算を必要と
する多岐に渡る用途向けである場合、それはマイクロプロセッサと呼ばれてよく
、それがデジタルフィルタ内でのような特定のデジタル信号を処理するなどの特
殊な用途向けである場合、それはデジタル信号プロセッサと呼ばれる。ここに使
用されるように、「デジタルプロセッサ」という用語は、デジタルマイクロプロ
セッサ、デジタル信号プロセッサのどちらか、あるいは両方を指すことが意図さ
れている。
【0003】 技術が進歩するのに伴い、より小型化進む装置の中にさらに多くの機能を含む
要求が存在する。これは、構成要素のサイズを削減する技術によって、および集
積回路マイクロプロセッサなどの単一構成要素の中に複数の構成要素を搭載する
技術によって可能になる。より小さなサイズにより多くの機能を入れることに対
する要求に対処するために、さらに多くの機能が、より多くの数の計算要素を処
理するために必要なさらに大きなチップサイズだけではなく、運転速度の増加と
いう点で、それ自体が改善されているマイクロプロセッサによって実行されてい
る。その結果、単一のチップで、あるいは少ない数の集積回路チップによって実
行されている機能が多くなればなるほど、それらの集積回路チップでの電力消費
が深刻な問題となってきた。過剰な温度上昇を生じさせる熱は、よくても信頼性
の低下、最悪の場合にはデバイスの故障を引き起こすため、この問題の一部は、
集積回路チップからの熱の除去に関係する。この問題は、電力消費の増加が、代
わりにより大型で、よりかさばり、より重い電池が必要とされること、または単
一電池充電の元での運転時間が激しく減少することのどちらかを意味する、さら
に大きな電池の排出を生じさせるという点で、電池から動作する可搬移動装置で
重複する。これらの結果の両方とも、このような装置のユーザにとっては満足が
行かない。
【0004】 したがって、デジタルプロセッサによって消費される電力が削減されることが
望ましい。デジタルプロセッサは、一般的には、その上の論理回路構成が安定し
た状態にあるときには事実上電力を消費しない補完(complementar
y)金属酸化物半導体(CMOS)集積回路などの金属酸化物半導体(MOS)
集積回路で製造されている。データが処理されているとき、または命令が実行さ
れているとき、回路構成は状態を変更し、かなりの電力が消費されるのはこれら
の遷移中である。電力はおもに遷移中に消費されるため、より高速な運転速度が
利用されると、遷移はより頻繁で、合計時間のより大きなパーセンテージの両方
隣、そのため総電力消費が運転頻度と直接的な関係で増大するという結果になる
。デジタルプロセッサの最も電力を消費する部分の1つは、マイクロコード命令
およびデータが記憶されているRAMである。このRAMでの最高の電力消費は
、情報がメモリの中に読み取られるとき、またはメモリから読み出されるときに
発生する。
【0005】 しかしながら、一定の条件下では、プロセッサは、キーストロークの入力、別
のソースからのデータの到達、中断信号、フレームパルス、チャネルパルス、ま
たは不確かである周波数およびタイミングのなんらかの他のイベントなどのイベ
ントの発生を待機しているだけである。その状態では、デジタルプロセッサは、
有用な処理またはデータ処理が達成されていないときには、通常の速度で動作を
し続け、完全電力を消費する。デジタルプロセッサ電力は、これらの待機の時間
中に命令メモリ(RAM)のアクセスが最小限に抑えられるか、排除される場合
、大幅に削減されるだろう。
【0006】 これを行う最も一般的な技法の1つが、例えば回路への電力をオフに切り替え
たり、クロックを停止することによって、デジタルプロセッサ全体の動作を停止
すること、または動作が必要とされていないときにその回路構成の一部を停止す
ることである。しかし、これは、動作を再開するために、中断信号またはリセッ
ト信号のどちらかを必要とし、それは動作の復元を達成するために必要な処理オ
ーバヘッド、および/またはその復元を達成するための特殊命令に対するニーズ
のために望ましくない。
【0007】 Kiuchiらに発行されている「制御情報を記憶するためのスタックを有す
るループバッファおよび反復制御回路付きシステム(System With
Loop Buffer and Repeat Control Circu
it Having Stack for Storing Control
Inormation)」と題されている、米国特許第5,579,493号は
、命令モジュール、つまり、反復ベースでその命令モジュールをフェッチするた
めに命令メモリ(RAM)にアクセスする代わりに、繰り返し実行されなければ
ならない命令のセットを記憶するための命令バッファを含む低電力データプロセ
ッサを記載する。しかしながら、Kiuchiらは、特殊命令が繰り返し実行さ
れなければならない各命令モジュールに続くことを必要とする。この特殊命令は
、システムが、繰り返し実行される命令モジュールのヘッド(開始)アドレスに
分岐しなければならない所定の回数を指定する。Kiuchiらの特殊命令は命
令モジュールに続くため、モジュールはその最初の繰り返しでRAMから読み出
されてから、それが命令バッファの中に書き込まれるその第2実行で再び命令メ
モリから読み出される。それ以降の繰り返し時に、それは命令バッファから読み
出される。その結果、命令メモリにアクセスすることの回避による電力の削減は
、それぞれの特定命令モジュールの第3繰り返しまで実現することはできない。
【0008】 Okadoらに発行されている「データプロセッサでのループ制御(Loop
Control In A Data Processor)」と題されてい
る欧州特許出願EP第0511484A2号は、読取り専用メモリ(ROM)か
ら読み出され、反復命令に続く特殊命令を繰り返し実行させる特殊反復命令を復
号化するための命令デコーダを含むデータプロセッサである。反復制御装置は、
マイクロROMから直列でこれらの命令を読み取り、それ以降の繰り返される実
行のためにそれらを命令レジスタの中に入れる。Okadoらは、繰り返し実行
される命令の各グループに先行する特殊反復命令を必要とする。Okadoらの
特殊反復命令は、繰り返し実行されるステップまたは命令の数、およびそれ以降
の命令が繰り返される所定回数を指定する。
【0009】 KiuchiらとOkadoらの両方とも、繰り返し実行される命令を定義す
る特殊命令を必要とする。その結果、プログラマまたはオペレータが特殊命令を
忘れたり、データをその中に不適切に入力すると、データプロセッサは適切に動
作せず、および/または意図されている電力節約は実現されないだろう。これは
、プログラム変化を加えるときに、プログラマが実行可能命令を変更しなければ
ならないだけではなく、適切な動作および付随する電力消費の削減が実現される
場合に、特殊反復命令も変更しなければならないことを要求することにより、さ
らに複雑になる。
【0010】 したがって、そのメモリの電力消費を削減することによるデジタルプロセッサ
の電力消費の削減のための装置が使用可能であり、それが繰り返し実行されるル
ープを定義する特殊命令からよりむしろ、プログラムコードの実行命令から直接
動作することが望ましい。さらに、この装置が、オーバヘッド処理がなくても、
および特殊プログラミング命令がなくてもネスト化されているループだけではな
く、コード内の複数のループを処理することができることが望ましい。
【0011】 本発明に従ったデジタルプロセッサ制御は、このような命令が、複数回実行さ
れる命令の少なくとも1つのシーケンスを含むことがある場合に、実行される命
令を記憶するように適応しているメモリを備える。メモリは、第1制御信号に従
って記憶されている命令の内の命令を作り出す。レジスタは、メモリにより作り
出される命令のシーケンスを記憶するためのメモリに結合され、レジスタに記憶
されている命令のシーケンスの内のシーケンスを作成するために第2制御信号に
応答する。制御装置は、複数回実行される命令のシーケンスの繰り返しを起動す
るメモリおよびレジスタによって作り出される命令の内の命令を検出する。状態
機械は制御装置に応答し、複数回実行される命令が検出されないときには第1制
御信号を生成し、複数回実行される命令が検出されるときには第2制御信号を生
成する。
【0012】 デジタル制御装置は、イネーブル時に命令を作成するためのアドレス指定可能
なメモリ、およびアドレス指定可能なメモリによって作り出される命令を記憶し
、イネーブル時に記憶されている命令を作り出すためのシフトレジスタを具備す
る。制御装置は、アドレス指定可能なメモリおよびシフトレジスタによって作成
される実行可能命令を復号化し、復号化された命令は、ジャンプバック命令、お
よびジャンプ前進命令を含む。命令アドレスおよびターゲットアドレスは、各ジ
ャンプバック命令およびジャンプ前進命令と関連する。メモリ制御は、シフトレ
ジスタがイネーブルされるマッピング状態、およびアドレス指定可能メモリがイ
ネーブルされる非マッピング状態を有する。メモリ制御は、ジャンプバック命令
が復号化されるときにマッピング状態を取り、ジャンプ前進命令が復号化される
ときに非マッピング状態を取るために応答する。
【0013】 デジタルプロセッサで電力消費を削減するための方法は、 繰り返し実行される実行可能命令の短いシーケンスを含む、実行される実行可
能命令のシーケンスをメモリから作成するステップと、 繰り返し実行される実行可能命令のさらに短いシーケンスをレジスタに記憶す
るステップと、 ジャンプバック命令である実行可能命令のシーケンスの1つを復号化するステ
ップと、 ジャンプバック命令の復号化に応答して、メモリが、実行可能命令のシーケン
スで追加命令を作り出すのを抑止するステップと、 レジスタからジャンプバック命令の復号化に応答して作成し、その中に記憶さ
れている実行可能命令のさらに短いシーケンスの内のシーケンスを実行するステ
ップと、を含む。
【0014】 図面では、1ビットを有しているデジタル信号用の経路は、通常、単一線の矢
印として示され、複数のビットを並列で含むデジタル信号用の経路は、通常幅の
広い矢印で示されるが、直列情報、直列ビット、およびワードは、単一線矢印ま
たは幅の広い矢印のどちらかで示されている経路上で伝送されてよい。以下の命
令および省略形が、ここに説明で使用されている。
【0015】 「JMP−」は、現在の命令から、実行される命令のシーケンスの中の前の命
令に向かって後方に「ジャンプする」ための命令、つまりアドレス番号がさらに
低い命令を意味する。
【0016】 「JMP+」は、現在の命令から、実行される命令のシーケンスの中でもっと
後である命令に向かって前方に「ジャンプする」ための命令、つまりアドレス番
号がさらに高い命令を意味する。
【0017】 「ADDR」は、実行される命令のアドレスを意味する。
【0018】 「JMP_ADDR」は、命令シーケンスが次に移動する先のアドレスを指定
するジャンプ命令(JMP+またはJMP−)中のアドレスを意味する。これは
、「ターゲットアドレス」と呼ばれることがある。
【0019】 MEM_ADDRは、その中に記憶されている情報が、メモリがイネーブルさ
れるときにその中から読み出されるか、フェッチされなければならないメモリ内
のレジスタのアドレスを指定するメモリアクセス信号を意味する。
【0020】 MEM_ENは、存在するときに、メモリにアクセスできるようにし、そのレ
ジスタ内に記憶されているデータを出力時に作り出したり、メモリアドレス信号
に従ってフェッチできるようにするシフトイネーブル信号を意味する。
【0021】 SH_ENは、存在するときに、メモリがデータの入力時に存在する情報をそ
のレジスタ内に記憶(シフト)することができるようにするシフトイネーブル信
号を意味する。
【0022】 CE1は、存在するときに、シフトレジスタが、シフトレジスタアドレス信号
に一致するアドレスを有しているそのシフトレジスタのある特定のステージに記
憶されているデータを、その出力時に作り出す(またはフェッチする)ことがで
きるようにするチップイネーブル信号を意味する。
【0023】 SRB_ADDRは、シフトレジスタがイネーブルされると、情報がシフトレ
ジスタの出力時にその中から作成される(またはフェッチされる)シフトレジス
タのステージを指定するシフトレジスタアドレス信号を意味する。
【0024】 CN_ENは、カウンタが、その入力時に受信される信号を数えることができ
るようにするカウンタイネーブル信号を意味する。
【0025】 CN_RSTは、特にそれ以外に指示がない限り、カウンタに記憶されている
カウントが所定の数、通常はゼロになるようにするカウンタリセット信号を意味
する。
【0026】 LD_ENは、レジスタが、そのデータ入力時に存在する情報を受け入れ、記
憶するか、あるいはロードできるようにするロードイネーブル信号を意味する。
【0027】 COMPは、コンパレータを意味する。図面では、コンパレータは、コンパレ
ータの関数が等式として書き出されると、コンパレータの最も上側の入力に存在
するデータが、等式の右側に表示される最も下側の入力に存在するデータから区
切られている等式の左側に現れることを示す「より大」(>)記号または「以上
」(≧)記号、あるいは「未満」(<)または「以下」(≦)を有し、それら2
つの量は、コンパレータを示すボックスの中に含まれている記号によって区切ら
れている。
【0028】 図1では、デジタルプロセッサ用の制御装置10が、実行可能命令がその中に
記憶されているランダムアクセスメモリ(RAM)12を含み、その命令は、命
令レジスタ(IR)14の中にフェッチされ、このような命令の実行を制御する
ために制御16によって復号化されてよい。制御16によって復号化される命令
は、実行のために実行装置または算術論理装置ALU17にデータバスを介して
送信される。制御16によって復号化されている命令は、さらに、RAM12を
制御するために記憶域管理機構(MMU)20に送信される。このようにしてこ
れまで説明されてきたように、プロセッサ10は、命令が繰り返し実行される場
合にも、プロセッサが単にイベントまたはデータ入力を待機しているだけの場合
にも実行されるすべての命令をRAM12から検索する。データは、入力/出力
(I/O)バス30を介してプロセッサ10へ、またはプロセッサから通信され
、入出力(I/O)装置32およびデータバス31を介してプロセッサ10内で
通信される。
【0029】 一般的に、プログラムと呼ばれているデジタルプロセッサによって実行される
命令のシーケンスは、ランダムアクセスメモリ12内に記憶されているマイクロ
コード命令のシリーズである。プロセッサの動作の前に、命令は、I/O装置3
2を通ってI/Oバス30を介して制御装置に渡され、記憶域管理機構20を通
って、それらが、従来のように実行のために呼び出されるまで記憶されるランダ
ムアクセスメモリ12の中に向けられる。添付図面でクラッターを回避し、本発
明に関して明快さを保つために、プログラムおよびマイクロコードをRAM12
の中にロードする上で唯一利用されている制御信号および信号経路は示されてい
ない。
【0030】 図2は、「タイトループ」として、または「待機ループ」として多様に知られ
ている処理のフロー図である。ブロック102、Receive Input
Data(入力データ受信)によって表されている状態では、プロセッサは、情
報または信号のある特定の部分が到着するのを待機している。それは、定期的に
、それが最後に受信したデータを、ブロック104によって表されているマスク
またはテンプレートに比較し、ブロック106、一致?に示されている決定を実
行する。受信された入力データがマスクのデータに一致しない場合、ループは「
ノー」経路108に沿って進み、サイクルを繰り返す。サイクルは、受信された
入力データがマスクのデータに一致するまで繰り返され続け、その場合、比較関
数106は真の結果を生じさせ、フローは「イエス」経路110に沿って進み、
さらなる処理を進める。この種のループは、ある特定の回数実行されることが意
図されたり、ある特定の時間期間実行されることが意図されることがあるが、ル
ープが、入力装置からのキーストローク、外部信号、中断信号、フレームパルス
、チャネルパルス、またはプロセッサの別の部分からまたはプロセッサがその一
部である装置から到着するデータの特定の部分の受信などのある特定のイベント
を待機することも一般的である。図2および前記説明から分かるように、ループ
は、受信済みの入力データと、そのプロセッサが実行している命令のシーケンス
の初期の命令102に、プロセッサを「ジャンプ」させるマスクの入力データの
一致の欠如によって特徴付けられている。したがって、この「ジャンプ」は処理
ループ、つまり繰り返し実行される命令のシーケンスを示している。
【0031】 図1のデジタルプロセッサは、その中にRAM12からフェッチされている命
令も入力されるか、後述される条件下で記憶されるシフトレジスタバンク(SR
B)24も含む。SRB24は、RAM12から検索されるワードの長さと同じ
となるように選択されているワード長を有し、「深さ(depth)」、つまり
ループ内にあることが期待されているステップの数に関して選択されるその記憶
容量でのワード数を有する。任意の特定のループ内にいくつステップがあるかに
関して人は必ずしも確信を持つことができないが、通常の技法を持つ経験豊富な
設計者は、命令ワードの数の範囲が遭遇されることを理解し、SRB24という
深さを相応じて選択するだろう。典型的なプロセッサでは、多くの場合、5個と
10個の命令ワードの間の深さ(つまり、シフトレジスタステージ)が適切であ
るが、おそらく15〜20ワードというさらに大きい深さが等しく便利であって
よい。SRB24のさらに大きい深さが、最大ループ中の命令の数に関する確実
性がより低い可能性がある汎用プロセッサまたはマイクロプロセッサ用制御装置
で利用されてよく、さらに浅い深さが、ループ中の命令数がさらに高い確実性を
もって知られている可能性のあるデジタル信号プロセッサなどの特殊目的プロセ
ッサで使用されてよいことが理解される。
【0032】 シフトレジスタバンク(SRB)24は、記憶域管理機構(MMU)20から
の信号によって制御される。特に、シフトイネーブル信号SH_ENにより、S
RB24は、RAM12からのデータワード入力を受信し、それらのデータワー
ドをそのレジスタバンクの中にシフトできるようにする。SRB24の中にシフ
トされた各データワードは、その第1ステージレジスタまたは入力ステージレジ
スタの中にシフトされてから、それ以降のデータワードが第1ステージにシフト
されてから、それ以降の、つまり「さらに深い」ステージレジスタ等に、それら
が最後の、つまりN番目のステージレジスタに到達するまでシフトされるときに
その第2ステージレジスタの中にシフトされる。各追加データワードがシフトレ
ジスタバンク24の中にシフトされるにつれて、そのN番目のステージに記憶さ
れているデータは外側にシフトし、失われる。Enable Signal C
E1(イネーブル信号CE1)は、SRB24が、その出力として、MMU20
から提供されているアドレスSRB_ADDRから読み出されるシフトレジスタ
に対応するシフトレジスタ24のステージに記憶されているそのデータワードを
作成できるようにする。
【0033】 MMU20は、さらに、RAM12が、その出力時に、やはりMMU20によ
って提供されているメモリアドレス信号MEM_ADDRによって指定されてい
るアドレスに一致するアドレスを有するそのメモリレジスタに記憶されているそ
れらの命令(データワード)を作成できるようにする、メモリイネーブル信号M
EM_ENを提供する。記憶域管理機構20は、とりわけ、制御16が、一定の
ジャンプコマンド、特に、「JMP+」コマンド、「JMP−」コマンド、およ
び前記ジャンプコマンドがプロセッサを宛てた先のターゲットアドレスJMP_
ADDRを復号化したという表示に応答する状態追跡機械(STM)210を含
む。
【0034】 図1のプロセッサの動作中、RAM12は、メモリイネーブル信号MEM_E
Nによってイネーブルされ、MMU20は、メモリアドレス信号MEM_ADD
Rのシーケンス、RAM12に、命令レジスタ14に従って、メモリアドレスの
そのシーケンスに対応する命令のシーケンスをフェッチさせる、典型的には、昇
順の一連の数を生成する。MMU20は、シフトレジスタバンク24が、RAM
12の出力時に作成される命令をそのレジスタの中にシフトできるようにするシ
フトイネーブル信号SH_ENも生成する。各サイクルで、命令データの別のワ
ードはRAM12によって作成され、シフトレジスタ内の最も最近のワードとし
てSRB24の第1ステージの中に入力(シフト)され、その中に過去に格納さ
れたワードは、第2レジスタの中にシフトされ、第2レジスタ内のワードは第3
レジスタの中に、それからプロセスが続行するに従って次のレジスタの中にシフ
トされる。したがって、SRB24は、Nが、プロセッサによって実行される最
後のN個の命令に一致するデータワードを含むだろうステージの番号のSRBの
深さであるN個のワードを含むだろう。この動作は続行し、デジタルプロセッサ
10は、ループ条件が制御16によって復号化されるまで、RAM12によって
作成される命令を実行する。
【0035】 図1のデジタルプロセッサが、RAM12から命令を命令レジスタ14および
シフトレジスタバンク24の中に読み込む、またはフェッチするこの状態は、こ
こに「非マッピングモード」または「非マッピング」状態と呼ばれ、実行される
命令が、RAM12からではなく、シフトレジスタSRB24からフェッチされ
ている状態(後述される)が、ここに「マッピング」モードまたは「マッピング
」状態と呼ばれる。
【0036】 前述されたように、ループは、命令のシーケンスの中で過去の位置を有する命
令へのジャンプを示すジャンプコマンドJMPを要求して実行されている命令か
ら示されている。JMPコマンドの制御16による復号化が、次に命令がフェッ
チされる前にMMU20にその出力信号を変更させる、つまりマッピング状態に
入る。具体的には、イネーブル信号SH_ENとMEM_ENは、両方ともその
イネーブルされていない状態に変更され、それによって命令のSRB24の中へ
のシフト、および命令のRAM12からの読出しを停止し、これによってRAM
12をアドレス指定し、読み出すために必要な電力は消費されないだろう。それ
と一貫して、MMU20は、SRB24のレジスタに記憶されている命令を、M
MU20によって生成されているSRB読出しアドレスSRB_ADDRに従っ
て、その出力時に作成できるようにする。SRB24に記憶されている最も最近
の命令が、その第1ステージレジスタ内にあり、第2の最も最近の命令は、その
第2ステージレジスタ内に記憶され、第3の最も最近の命令は、その第3ステー
ジに記憶され、N番目の最も最近の命令は、そのN番目のステージの中に記憶さ
れている。SRB_ADDRは、シフトレジスタのステージの番号に対応する番
号である。例えば、JMP−命令に指定されているJMP_ADDRがループと
して実行されている命令のシーケンス内にある、つまりJMP命令のアドレスの
5アドレス前にある場合、MMU20は、その命令アドレスを実行された最後の
命令のアドレスから差し引き、後でSRB_ADDRを生成し、シフトレジスタ
バンク24の5番目のステージからループ内の第1命令をフェッチするために利
用されるだろう5という差異を作り出すだろう。その命令が命令バッファIR1
4にフェッチされ、制御16によって復号化され、実行された後、SRB24に
記憶されている第4の最も最近の命令である繰り返し実行されるループ内の次の
命令が、MMU20が、その第1レジスタが読み出されるまで、SRB24の第
4ステージを読み出すために4というSRB_ADDRを生成し、続けてMMU
20が、SRB24の第3レジスタを読み出すために3というSRB_ADDR
を生成する等となった結果、フェッチされるだろう。しかしながら、第1レジス
タ内の命令は、命令レジスタIR14にフェッチされると、再び、制御16によ
って復号化され、MMU20に入力され、その結果MMU20がマッピング状態
に残り、ジャンプアドレスJMP_ADDRに一致するアドレスで始まるSRB
_ADDRアドレスのシーケンスを、それがまた最高のアドレス、つまりJMP
−命令のアドレスに達するまで生成することにより再びSRB24から過去の命
令をフェッチするシーケンスを開始する、JMP_ADDRアドレスを有する命
令の実行を要求するJMP命令である。
【0037】 前記説明から理解できるように、本発明に従ったデジタルプロセッサ用制御装
置は、マイクロコードプログラムの実行命令から、それらが実行されるときに、
ループの存在を自動的に検出し、適切な命令を、それらが、プロセッサがこのよ
うなループの中にいる間に、その中から実行されるシフトレジスタバンクなどの
レジスタの中にマッピングするだろう。その結果、本発明の完全な優位点は、プ
ログラマまたは設計者の側での特別なプログラミング、コマンドまたは認識なし
に、実際には、プログラマまたは設計者がプロセッサの電力節約特徴を認識して
いるかどうかさえ関係なく使用できる。
【0038】 ここに使用されるように、「実行命令」とは、ループ中のステップ数、ループ
が実行されなければならない回数、またはループの開始および/または終了命令
のアドレスなどの、実行されるループの特徴を制御装置に従って指定する「特殊
命令」とは対照的に、その実行においてデジタルプロセッサによって、または算
術装置によって実行される動作を指定する命令のことを意味する。
【0039】 ここでは、記憶域管理機構20の動作が、図3の図に関して説明されるだろう
。記憶域管理機構20では、プログラムカウンタ(PC)202が、プログラム
ステップに一致する数の増加するシーケンスを作成する。この数のシーケンスは
、命令がRAM12の中で記憶されるため、メモリアドレス信号MEM_ADD
RとしてRAM12に伝送されるアドレスにも一致する。ジャンプ命令(JMP
−またはJMP+)が制御16によって復号化される場合、そこに指定されてい
るジャンプアドレスJMP_ADDRが、そのときに存在していたプログラムア
ドレスに代わるためにプログラムカウンタ202にロードされ、プログラムカウ
ンタ202は、それから、その置き換えられたジャンプアドレスJMP_ADD
Rから数え上げ、そこからの命令アドレスの増加シーケンスを生成する。状態追
跡機械(STM)210は、このようなコマンドにより指定されているジャンプ
アドレスJMP_ADDRだけではなく、制御16から、ジャンプ命令(JMP
−またはJMP+)の検出を示す信号も受信する。さらに、状態追跡機械210
は、プログラムカウンタ202によって生成されているような現在の命令アドレ
スも受信する。
【0040】 状態追跡機械210は、記憶域管理機構20の他の部分の、およびデジタル制
御装置10のシフトレジスタバンク24の動作を制御する信号を生成する。特に
、STM210は、カウンタ222がカウントできるようにするカウンタイネー
ブル信号CN_EN、カウンタ222をゼロにリセットするカウンタリセット信
号CN_RST、高アドレスレジスタ220が、イネーブル時に現在の命令アド
レスADDRの値を記憶(ロード)できるようにする信号LD_EN、およびシ
フトレジスタバンク24をイネーブルすることに加え、論理回路234と236
によって利用され、チップイネーブル信号CE1およびメモリイネーブル信号M
EM_ENを生成し、シフトレジスタバンク24とランダムアクセスメモリ12
をそれぞれ制御するシフトイネーブル信号SH_ENを生成する。
【0041】 状態追跡機械210の動作は、図3に関して図4に示されている状態図に関し
てもっともよく理解できる。リセット状態、つまり初期化状態302では、シフ
トイネーブル信号SH_ENが、RAM12からの命令は、それらが命令レジス
タ14の中にフェッチされると、シフトレジスタバンク24の中にフェッチされ
るようにイネーブルされ、カウンタリセットCN_RSTはアクティブであり、
カウンタイネーブルCN_ENは、カウンタ222がゼロにリセットされ、カウ
ントしないようにディスエーブルされ、ロードイネーブルLD_ENは、高アド
レスレジスタ220に現在実行中の、つまりシステムが非マッピング状態304
の中に移動するにつれて、プログラムカウンタ202によって作成される命令の
アドレスADDRをロードされる。非マッピング状態では、制御16によるジャ
ンプバックJMP−命令の復号化が、ループが実行中であり、制御16によって
検出されたことを示す。説明の目的のため、まず、非マッピング状態の他の条件
を考える。先へジャンプJMP+命令が制御16によって復号化される場合、そ
れは、ループの表示ではなく、追跡調査機械210は、リセット条件またはリセ
ット状態302で確立されるように、シフトイネーブル信号SH_EN、カウン
タリセット信号CN_RST、カウンタイネーブルCN_EN、およびロードイ
ネーブルLD_EN信号の同じ条件で非マッピング状態304に留まるためにト
ラック306に続く。任意のそれ以外の命令が、「他に」によって示されるよう
に、制御16によって復号化される場合、トラック308は、プログラムを非マ
ッピング状態304に保つが、カウンタリセットCN_RSTはディスエーブル
され、カウンタイネーブルCN_ENがイネーブルされた状態であり、その結果
、カウンタ222はシフトレジスタバンク24の中にそれ以降記憶されている命
令の数をカウントする。デジタルプロセッサがループを実行していない通常の実
行状態であるこの状態においては、実行される命令は、RAM12から命令レジ
スタ14とSRB24にフェッチされ、プログラムカウンタ202によって生成
されている現在の命令のアドレスは、記憶域管理機構20の高アドレスレジスタ
に記憶されている。ここまで説明されたように、シフトイネーブル信号SH_E
Nは、シフトレジスタバンク24をイネーブルするためのイネーブル状態にある
ため、イネーブルCE1がディスエーブルされなければならないように、(AN
Dゲート234に対する入力で円で示されているように)反転する入力を通して
ANDゲート234に適用される。シフトイネーブル信号SH_ENをORゲー
ト236に適用ることにより、メモリイネーブル信号MEM_ENが、実行され
る命令がその中からフェッチできるRAM12をイネーブルするように、その出
力で真の条件を作成しなければならない。
【0042】 図4に戻ると、ジャンプバックJMP−命令が制御装置16によって復号化さ
れると、状態追跡機械210が、非マッピング状態304からマッピング状態3
20へのトラック310に沿って移動する。非マッピング状態304からマッピ
ング状態320へのこの変化により、シフトイネーブルSH_EN信号、カウン
タリセットCS_RST信号、およびロードイネーブルLD_EN信号で、その
それぞれのディスエーブルされた状態への変化が生じる。これらの信号のすべて
がディスエーブルされている状態にある場合、シフトレジスタバンク24は、R
AM12からフェッチされた最後のN個までの命令(この場合、Nは、シフトレ
ジスタバンク24のステージ数である)を保持し、カウンタ222は、シフトレ
ジスタバンク24に記憶されている(Nまでの)有効命令数に一致する、そのと
きそこに記憶されている数を保持し、高アドレスレジスタ220は、実行された
最後の命令のアドレス、つまりジャンプバックJMP−命令のアドレスを記憶し
、ターゲットアドレスJMP_ADDRは、JMP_ADDR_STとして状態
追跡機械のレジスタ212に記憶される。
【0043】 マッピング状態320では、シフトイネーブルSH_ENがディスエーブルさ
れている状態で、ANDゲート234とORゲート236がそれに対する他の入
力に応答することができる。ジャンプバック命令JMP−によって指定されてい
るジャンプターゲットアドレスJMP_ADDRがシフトレジスタバンク24に
記憶されている命令の範囲内にあるとき、動作は、以下のように進行する。高ア
ドレスレジスタ220に記憶されている高アドレスが、カウンタ222に記憶さ
れている数がそこから差し引かれる減算装置224に適用される。したがって、
減算器224の出力は、そのシーケンスで最低のアドレスを有するSRB24に
最も最近に記憶された有効命令のシーケンスの1つのアドレスである。つまり、
それが、シフトレジスタバンク24に最も深く記憶されている有効命令である。
シフトレジスタバンク224内に記憶されている命令の最低有効アドレスが現在
のアドレスより少ない場合には、RAM12およびSRB24をマッピング状態
320でイネーブルすることが許容できる。この決定は、最低有効アドレスを有
しているシフトレジスタバンク24内の命令のアドレスがプログラムカウンタ2
02によって作成されている現在のアドレスより少ない場合に、真の出力を作成
するコンパレータ230によって下される。コンパレータ232は、高アドレス
レジスタ220に記憶されている高アドレスを、プログラムカウンタ202によ
って生成されている現在の命令アドレスと比較し、レジスタ220に記憶されて
いる高アドレスが現在のアドレスより大きい場合には、コンパレータ232の出
力は、制御装置がおそらくループ内にあること、および必要とされている命令が
、シフトレジスタバンク24に記憶されている命令の範囲内にある場合には、マ
ッピングが進行してよいことを示す真である。コンパレータ230と232の出
力が真である状態で、およびシフトイネーブル信号SH_ENが真ではない(デ
ィスエーブル)である状態で、ANDゲート234は、マッピング状態の真の出
力を作成し、チップイネーブル信号CE1を生成し、シフトレジスタバンク24
がその出力時に、シフトレジスタアドレス信号SRB_ADDRに従ってそこに
記憶されている命令を作成できるようにする。シフトレジスタアドレス信号SR
B_ADDRは、高アドレスレジスタ220に記憶されている高アドレスからプ
ログラムカウンタ202によって作り出されている現在の命令のアドレスを差し
引く減算器240によって生成される。チップイネーブル信号CE1がイネーブ
ルされるため、ANDゲート234は、真の信号を、RAM12のイネーブルで
はないメモリイネーブル信号MEM_ENを作成するORゲート236の(円で
示されているような)反転入力に適用する。その結果、命令は状態追跡機械21
0および制御装置10がマッピング状態320に留まる限り、シフトレジスタバ
ンク24からフェッチされる。
【0044】 ジャンプターゲットアドレスJMP_ADDRが、SRB24に記憶されてい
る有効命令の範囲外である場合、命令がシフトレジスタバンク24からフェッチ
されるマッピング動作をイネーブルすることは許容できないことに注意すること
が重要である。JMP_ADDRがSRB24の範囲外にあるとき、コンパレー
タ230の出力は真ではなく、ANDゲート234は、シフトレジスタバンク2
4へのチップイネーブルCE1をディスエーブル状態に保持し、ORゲート23
6は、アドレス指定されている命令がメモリ12からフェッチされるように、メ
モリイネーブル信号MEM_ENをイネーブル状態に保持するだろう。プログラ
ムカウンタ202によって要求されている命令にシフトレジスタバンク24に記
憶されている命令の範囲内のアドレスがある任意の時点で、コンパレータ230
と232は、前述されたように真の出力を作成し、その結果、シフトレジスタバ
ンク24が、指定されているシフトレジスタアドレス信号SRB_ADDRも従
ってその中に記憶されている命令をフェッチするためにイネーブルされるだろう
【0045】 このようにして、シフトレジスタバンク24は、シフトレジスタバンク24内
の命令がプログラムカウンタ202によって要求されるたびに、実行される命令
のソースとなり、これによりランダムアクセスメモリ12は、フェッチすること
ができるシフトレジスタバンク24に記憶されている有効命令がある場合はいつ
でもアクセスされず、したがって電力消費は、ループの任意の条件下で最小限に
抑えられる傾向がある。このすべては、特殊命令に対するニーズなしに、および
プログラマに要求されている、またはプログラマによって講じられている処置な
しに、実行命令に応答して実行される。
【0046】 再び図4に戻ると、システム10および状態追跡機械210は、一定の命令復
号化条件が満たされない限り、マッピング状態320に留まる。これらの条件が
満たされない場合、状態追跡機械210は、マッピング状態320に状態追跡機
械210を保持する「他に」状態324を決定し、シフトイネーブル信号SH_
EN、カウンタリセット信号CN_RST,カウンタイネーブル信号CN_EN
、ロードイネーブル信号LD_ENのすべてがディスエーブル状態にある。この
状態は、経路310に沿って、非マッピング状態304からマッピング状態32
0へジャンプした結果、得る状態に一致する。
【0047】 状態追跡機械210に、マッピング状態320から出させる状態とは、現在の
命令ループがもはやアクティブではない状態である。これらは、ジャンプ前方J
MP+命令が、制御16によって復号化され、プロセッサがループ内にない、ま
たはループからジャンプして出たかのどちらかを示す制御16によって復号化さ
れる状態を含む。さらに、状態追跡機械210は、異なるループが制御16によ
って検出される場合、経路322に沿って非マッピング状態304へ、マッピン
グ状態320を出る。これは、別の(さらに最近の)ジャンプバックJMP−命
令が制御16によって復号化され、さらに最近のジャンプバックJMP−命令の
アドレスADDRが、過去のジャンプバックJMP−命令のために高アドレスレ
ジスタ220に記憶されているアドレスHIGH_REG_ADDRと異なり、
より最近のジャンプバックJMP−命令によって指定されているジャンプターゲ
ットアドレスが、過去のループ命令のジャンプ命令のジャンプターゲットアドレ
スJUM_ADDRと異なるときに発生する。この目的のため、状態追跡機械2
10は、マッピングされているジャンプバックJMP−命令ループに指定されて
いる命令アドレスADDRおよびジャンプターゲットアドレスJMP_ADDR
がその中に記憶され、記憶されているアドレスおよび記憶されているジャンプア
ドレスがそれぞれADDR_STとJMP_ADDR_STによって示されてい
る内部レジスタ212を含む。制御16によって復号かされている次の(第1の
後の)ジャンプバックJMP−命令が、過去に検出されたジャンプバックJMP
−命令ADDR_STと同じジャンプ命令を持たず、過去に検出されたジャンプ
バックJMP−命令のそのJMP_ADDR_STと同じジャンプターゲットア
ドレスJMP_ADDRを持たない場合には、状態追跡機械210はマッピング
状態320から、経路322に沿って非マッピング状態304に移動し、制御装
置10は、メモリ12からのロード命令を命令レジスタ14の中に、およびシフ
トレジスタバンク24の中に振り向ける。次の検出済みジャンプバック命令JM
P−が過去のJMP−命令のADDR_STと同じ命令アドレスを有する場合に
はシフトレジスタバンク24に記憶されている命令は、次の検出されたループだ
けではなく、過去の検出済みループに関しても有効な命令であるため、制御装置
10は、状態追跡機械210のマッピング状態320で続行してよい。同様に、
過去の検出済みジャンプバックJMP−命令のジャンプターゲットアドレスJM
P_ADDR_STが現在検出されているジャンプバックJMP−命令のジャン
プアドレスJMP_ADDRと同じ場合には、シフトレジスタバンク24の中で
最も深い命令は、次に検出されたループに関して有効な命令となるらしく、シス
テムはマッピング状態320で続行できる。また、ADDR_STおよびHIG
H_REG_ADDRの値が同じであることにも注意する。
【0048】 前記決定条件は、非マッピング状態304に関して、以下に示されるような等
式の形式で表されてよい。
【0049】 JMP−の場合には、マッピング状態320に移動し、 それ以外の場合、非マッピング状態304に留まる、 およびマッピング状態320に関しては以下の通りである。
【0050】 もし(JMP+)または (JMP−およびADDR≠HIGH_REG_ADDRおよびJMP_ADD
R≠JMP_ADDR_ST)の場合、 非マッピング状態304に移動し、 それ以外の場合、マッピング状態320に留まる。
【0051】 代わりに、マッピング状態320から非マッピング状態304に変化するとき
を決定するために、その他の基準が状態追跡機械210によって利用されてよい
。例えば、状態機械210は、ジャンプ前方JMP+命令の、または異なる命令
アドレスADDRを有するジャンプバックJMP−命令の検出時にマッピング状
態320を出ることができるだろう。言いかえると、現在のジャンプバックJM
P−命令が過去に検出されたジャンプバックJMP−命令と同じアドレスADD
Rを有する場合には、それは同じ命令でなければならず、プロセッサ10はマッ
ピング状態320に留まる必要がある。
【0052】 等式の形式では、決定条件は、マッピング状態320の場合、以下の通りであ
る。
【0053】 (JMP+)または (JMP−およびADDR≠HIGh_REG_ADDR)の場合には、 非マッピング状態304に移動し、 それ以外の場合にはマッピング状態320に留まる。
【0054】 大部分の例でなくても、多くの例では、この決定条件は、より少ない命令を有
するループが、さらに多くの命令を有するループ内で入れ子にされる、複数ルー
プでのより効率的な処理を提供する可能性がある。
【0055】 別の代替基準とは、現在のジャンプバックJMP−命令が、過去に検出された
ジャンプバックJMP−命令のものと同じ命令アドレスADDRまたは同じター
ゲットアドレスJMP_ADDRのどちらかを持つ場合に、マッピング状態30
2に留まることだる。等式の形式では、決定条件は、マッピング状態320の場
合、以下の通りである。
【0056】 (JMP+)または (JMP−および(ADDR≠HIGH_REG_ADDR またはJMP_ADDR≠JMP_ADDR_ST))の場合には、 非マッピング状態304に移動し、 それ以外の場合、マッピング状態320に留まる。
【0057】 多くの例では、現在のジャンプバックJMP−命令で終了するループに対する命
令、つまりジャンプバックJMP−命令のアドレスADDRとターゲットアドレ
スJMP_ADDRの間のアドレスを有するもののすべてではない場合も、多く
がすでにシフトレジスタバンク24の中に記憶されているため、この決定条件は
、同じターゲットアドレスが指定されているループのより効率的な処理を提供す
る可能性がある。
【0058】 したがって、本発明に記載されるデジタルプロセッサ制御は、実行される命令
を記憶するように適応されているメモリを備え、そこでは命令は、複数回実行さ
れる命令の少なくとも1つのシーケンスを含んでよい。メモリ12は、第1制御
信号MEM_EN、MEM_ADDRに応答し、第1制御信号MEM_EN、M
EM_ADDRに従って記憶されている命令の内の命令を作成する。レジスタ2
4は、メモリ12により作成される命令のシーケンスを記憶するためにメモリ1
2に結合され、レジスタ24は、第2制御信号CE1、SRB_ADDRに応答
し、その中に記憶されている命令のシーケンスの内の命令を作成する。制御装置
16は、複数回実行される命令のシーケンスの繰り返しを起動する実行可能命令
である、メモリ12およびレジスタ24によって作成される命令の内の命令を検
出または復号化する。状態機械210は、複数回実行される命令が制御16によ
って検出されないときに第1制御信号MEM_EN、MEM_ADDR、SH_
ENを生成するために、および複数回実行される命令が検出されるときに第2制
御信号、CE1、SRB_ADDRを生成するために制御装置16に応答する。
【0059】 デジタル制御装置10は、イネーブル時に命令MEM_EN、MEM_ADD
Rを作成するためのアドレス指定可能メモリ12、およびアドレス指定可能メモ
リ12により作成される命令SH_ENを記憶し、イネーブル時に記憶されてい
る命令CE1、SR_ADDRを作成するためのシフトレジスタ24を備える。
制御装置16は、アドレス指定可能メモリ12およびシフトレジスタ24によっ
て作成された実行可能命令を復号化し、そこでは復号化された命令JMP−、J
MP+、JMP_ADDRが、ジャンプバックJMP−命令およびジャンプ前方
JMP+命令を含む。命令アドレスADDRおよびターゲットアドレスJMP_
ADDRは、各ジャンプバックJMP−およびジャンプ前方JMP+命令に対応
している。メモリ制御20は、シフトレジスタ24がイネーブルされているSH
_ENマッピング状態320、およびアドレス指定可能メモリ12がイネーブル
されているMEM_EN非マッピング状態304を有する。メモリ制御20は、
ジャンプバックJMP−命令が復号化されるとき16、マッピング状態320を
取り、ジャンプ前方JMP+命令が復号化されるとき16、非マッピング状態3
04を取るために制御装置16に応答する。
【0060】 デジタルプロセッサ10での電力消費を削減するための方法は、 メモリ12から、繰り返し実行される実行可能命令102,104,106の
さらに短いシーケンスを含む、実行される実行可能命令のシーケンスを作成する
ステップと、 繰り返し実行される実行可能命令102,104,106のさらに短い命令を
レジスタに記憶するSH_ENステップと、 ジャンプバックJMP−命令である実行可能命令のシーケンスの1つを復号化
する16ステップと、 ジャンプバックJMP−命令の復号化16に応答して、メモリ12が実行可能
命令のシーケンス内でさらに命令を作成するMEM_EN、MEM_ADDRの
を抑止するMEM_EN,310ステップと、 レジスタ24からジャンプバックJMP−命令の復号化16に応答して作成し
CE1、SRB_ADDR、その中に記憶されている実行可能命令102、10
4、106のさらに短いシーケンスの内のシーケンスを実行するステップと、を
含む。
【0061】 本発明は、前記例示的な実施形態という点で説明されてきたが、以下のクレー
ムによって定められている本発明の範囲および精神内で変形は当業者に明らかと
なるだろう。例えば、レジスタ24は、これにより制御10が非マッピング状態
にあるときに、そのレジスタ24の中にデータ命令を記憶するという動作がわず
かに複雑になるだろうが、シフトレジスタのバンクの代わりにランダムアクセス
メモリをもって実現できるだろう。ランダムアクセスメモリ12が、イネーブル
信号MEM_ENによって、あるいはそこに適用されているクロック信号を停止
することによって、その中に記憶されているデータをその出力で作成することか
ら抑止できる同期ランダムアクセスメモリである場合があるだろう。メモリ12
は、イネーブル信号MEM_ENによってまたはそこに適用されているメモリア
ドレスMEM_ADDRを変更されていない状態で保つことによってその中に記
憶されているデータをその出力で作成しないようにされるだろう非同期ランダム
アクセスメモリである場合があるだろう。メモリイネーブル信号MEM_ENは
、実際には、その後者の機能をメモリ12内で実行し、そこではその入力の1つ
としてメモリイネーブル信号MEM_ENを有するANDゲートが、メモリアド
レスMEM_ADDRのランダムアクセスメモリへの適用を制御する、および/
または命令およびその他のデータがそれを通してこのようなメモリから読み出さ
れる出力検知増幅器を妨げるだろう。この段落の前記例のそれぞれでは、技術に
たけた人が、メモリ出力競合を回避するためのメモリ出力回路を構成する方法を
知っている。
【0062】 例えば、前記説明が、それらのそれぞれの出力が、3値状態型、つまりアクテ
ィブかつイネーブル時に高レベルまたは低レベルの出力信号を提供するが、イネ
ーブルされていないときには開放回路として出現する出力であるランダムアクセ
スメモリ12およびシフトレジスタバンク24用であることが注記される。
【0063】 本発明を含む制御装置が、複数のネスティングされているループ用だけでなく
単一ループ用の命令を自動的に処理することに注意する。例えば、入れ子にされ
ているループのケースでは、RAM12からフェッチされている命令の実行は、
内側ループのジャンプバックJMP−命令が、状態追跡機械210が制御装置1
0をマッピング状態320にするときに実行されるまで続行し、その内側ループ
は、ループ条件106が満たされる110のようなときまでシフトレジスタバン
ク24からフェッチされている命令を実行することによって繰り返し実行される
だろう。それ以降、命令の実行は、マッピング状態302で進み、命令は、SR
B24に記憶されている命令アドレスの範囲外の命令アドレスの増加に従ってメ
モリ12からフェッチされる。第2つまり外側ループのジャンプバックJMP−
命令が検出されると、状態追跡機械210は、内側ループと外側ループのための
JMP−命令の命令アドレスADDRとジャンプターゲットアドレスJMP_A
DDRの両方が同じである限り、マッピングモード320内に制御装置10を保
つ。シフトレジスタバンク24の深さNが、内側ループまたは外側ループの一部
である命令を含むほど十分となるならばで、つまり、それらが、図3に関して前
述されたように、コンパレータ230,232、およびゲーティング論理234
,236によって監視されるSRB24内に記憶されている命令の範囲内にある
ならば、実行される命令はシフトレジスタ24からフェッチされる。外側ループ
用の命令アドレスADDRとジャンプターゲットアドレスJMP_ADDRの両
方が、内側ループの対応するアドレスと異なる場合、制御装置10は非マッピン
グ状態304に逆転し、その結果外側ループおよび内側ループのための命令がS
RB24の中にロードされる。
【0064】 連続して実行される複数のループがあると、命令の実行は、第1ループのジャ
ンプバックJMP−命令まで下がり、その時点で状態追跡機械210は、そのル
ープの条件が満たされるまで、制御10をマッピング状態320に入れる。それ
以降、命令の実行は、実行される第2ループのジャンプバックJMP−命令、つ
まり第1ループの後に続くものが制御16によって復号化されるまで、命令アド
レスの増加に伴って進行する。この時点で、状態追跡機械210は、ADDR、
ADDR_ST、JMP_ADDR、およびJMP_ADDR_STの値に応答
し、制御10をマッピング状態320のままに保つか、第2ループからの命令が
、すべて前述されたように、SRB24の中にシフトされるまで、それを非マッ
ピング状態304にするかのどちらかである。
【図面の簡単な説明】
【図1】 本発明に従った実施形態を含むデジタルプロセッサ用制御装置の概略ブロック
図である。
【図2】 ループの論理フロー図である。
【図3】 図1の実施形態とともに役立つメモリ制御の実施形態の概略ブロック図である
【図4】 図3の実施形態の一部の動作を示す状態図である。
【符号の説明】
30 I/Oバス 16 制御 102 入力データ受信 104 データをマスクと比較する 106 一致? 220 高アドレスレジスタ 230 コンパレータ 232 コンパレータ 302 リセット
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AL,AM,AT,AU,AZ,BA,BB ,BG,BR,BY,CA,CH,CN,CU,CZ, DE,DK,EE,ES,FI,GB,GE,GH,G M,HR,HU,ID,IL,IS,JP,KE,KG ,KP,KR,KZ,LC,LK,LR,LS,LT, LU,LV,MD,MG,MK,MN,MW,MX,N O,NZ,PL,PT,RO,RU,SD,SE,SG ,SI,SK,SL,TJ,TM,TR,TT,UA, UG,UZ,VN,YU,ZW 【要約の続き】 ないが、むしろそれはループを実行する実行可能なマイ クロコード命令から自動的にループの存在を突き止め る。

Claims (50)

    【特許請求の範囲】
  1. 【請求項1】 実行される命令を記憶するように適応されているメモリであ
    って、そこではこのような命令が複数回実行される命令の少なくとも1つのシー
    ケンスを含み、前記メモリが第1制御信号に応答し、前記第1制御信号に従って
    記憶されている命令の内の1つを作成するメモリと、 レジスタであって、前記レジスタが前記メモリによって作成された命令のシー
    ケンスを記憶するために前記メモリに結合され、その中に記憶されている命令の
    シーケンスの内の命令を作成するために第制御信号に応答する前記レジスタと、 複数回実行される命令のシーケンスの繰り返しを起動する実行可能命令である
    前記メモリと前記レジスタによって作成されている命令の内の命令を検出するた
    めの制御装置と、 複数回実行される命令が検出されないときに、前記第1制御信号を生成し、複
    数回実行される命令が検出されるときに、前記第2制御信号を生成するために、
    前記制御装置に応答する状態機械と、を備えるデジタルプロセッサ制御。
  2. 【請求項2】 命令が所定の順序で実行され、前記制御装置によって検出さ
    れた繰り返しを起動する実行可能命令が、それ自体より前である前記所定順序中
    の任意の位置を有する命令にジャンプするための第1命令である、請求項1に記
    載の制御。
  3. 【請求項3】 前記状態機械が、前記所定の順序で前の位置を有する命令に
    ジャンプするために、命令に応答して前記第2制御信号を生成する、請求項2に
    記載の制御。
  4. 【請求項4】 前記所定順序が昇順数シーケンスであり、前記所定の順序で
    前の位置が低い方の数で表される、請求項2に記載の制御。
  5. 【請求項5】 前記制御装置が、さらに、前記所定順序で後の方の位置を有
    する命令にジャンプするための命令である、前記メモリおよび前記レジスタによ
    って作成されている命令の内の命令を検出する、請求項2に記載の制御。
  6. 【請求項6】 前記状態機械が、前記制御装置によって検出された命令に応
    答して前記大1制御信号を生成し、前記所定順序の後の方の位置を有する命令に
    ジャンプする、請求項5に記載の制御。
  7. 【請求項7】 前記状態機械が、前記第2命令のジャンプ先の前の位置が、
    第1命令のジャンプ先の前の位置とは異なるときに、前記所定順序の前の位置を
    有する命令にジャンプするための第2命令の前記制御装置による検出に応答して
    、前記第1制御信号を生成する、請求項2に記載の制御。
  8. 【請求項8】 前記状態機械が、前記所定順序の前記第2命令の位置が、前
    記所定順序の第1命令の位置と異なるときに、前記所定順序の前の位置を有する
    命令にジャンプするための第2命令の前記制御装置による検出に応答して前記第
    1制御信号を生成する、請求項2に記載の制御。
  9. 【請求項9】 前記レジスタが、前記第2制御信号が生成されないときに、
    前記メモリから命令を記憶するためにイネーブルされているシフトレジスタを含
    む、請求項1に記載の制御。
  10. 【請求項10】 前記シフトレジスタが、前記第2制御信号に応答してその
    出力でその中に記憶されているシフト済みの命令を作成する、請求項9に記載の
    制御。
  11. 【請求項11】 前記レジスタがシフトレジスタを含み、前記状態機械が、
    複数回実行される命令が検出されないときに前記シフトレジスタがその中に命令
    を記憶できるようにするためのシフトレジスタイネーブル信号を生成し、前記第
    1制御信号が前記シフトレジスタイネーブル信号に応答する、請求項1に記載の
    制御。
  12. 【請求項12】 前記レジスタがシフトレジスタを含み、前記状態機械が、
    複数回実行される命令が検出されないときに、前記シフトレジスタがその中に命
    令を記憶できるようにするためのシフトレジスタイネーブル信号を生成し、前記
    第2制御信号が前記シフトレジスタイネーブル信号に応答する、請求項1に記載
    の制御。
  13. 【請求項13】 アドレスを有するロケーションで実行される命令を記憶す
    るように適応されているアドレス指定可能メモリで、そこではこのような命令が
    、複数回実行される命令の少なくとも1つのシーケンスを含み、前記アドレス指
    定メモリがメモリアドレスを含むメモリ制御信号に応答し、前記メモリ制御信号
    に従って記憶されている命令の内の命令を作成するアドレス指定可能メモリと、 レジスタであって、前記レジスタが前記アドレス指定可能メモリに結合され、
    前記アドレス指定可能メモリによって作成されている命令のシーケンスを記憶し
    、レジスタアドレスを含むレジスタ制御信号に応答し、その出力でその中に記憶
    されている命令のシーケンスの内の命令を作成するレジスタと、 デジタルプロセッサを制御するために、前記アドレス指定可能メモリおよび前
    記レジスタによって作成されている実行可能命令を復号化するための制御装置と
    、 複数回実行される命令が前記制御装置によって復号化されないときに前記メモ
    リ制御信号を生成し、複数回実行される命令が前記制御装置によって復号化され
    るときに、前記レジスタ制御信号を生成するために、複数回実行される命令のシ
    ーケンスの反復を起動する前記制御装置からの復号化済みの実行可能命令に応答
    する状態機械を含むメモリ制御と、を備える、デジタルプロセッサ用の制御。
  14. 【請求項14】 命令が所定順序で実行され、前記制御装置によって復号化
    される繰り返しを起動する実行可能命令が、そのときに復号化された実行可能命
    令のメモリアドレスに先行する前記所定順序内の位置を有するメモリアドレスに
    ジャンプするための命令である、請求項13に記載の制御。
  15. 【請求項15】 前記状態機械が、そのときに復号化された実行可能命令に
    先行する前記所定順序内の位置を有するメモリアドレスにジャンプするための命
    令に応答して、レジスタ制御信号を生成する、請求項14に記載の制御。
  16. 【請求項16】 レジスタアドレスは、ジャンプされる先のメモリアドレス
    から生成される、請求項15に記載の制御。
  17. 【請求項17】 前記所定順序が、メモリアドレスの昇順数シーケンスを含
    み、前記所定順序内の前の位置が低い方の値のメモリアドレスにより表される、
    請求項14に記載の制御。
  18. 【請求項18】 前記制御装置が、さらに、前記所定順序内のそのときに復
    号化された実行可能命令のメモリアドレスに続くメモリアドレスにジャンプする
    ための命令である、前記アドレス指定可能メモリおよび前記レジスタによって作
    成されている実行可能命令の内の命令を復号化する、請求項14に記載の制御装
    置。
  19. 【請求項19】 前記状態機械が、前記所定順序でそのときに復号化された
    命令のメモリアドレスに続くメモリアドレスにジャンプするための前記制御装置
    によって復号化されている実行可能命令に応答して前記メモリ制御信号を作成す
    る、請求項18に記載の制御。
  20. 【請求項20】 前記メモリ制御信号に含まれているメモリアドレスが、ジ
    ャンプされる先のメモリアドレスである、請求項19に記載の制御。
  21. 【請求項21】 前記状態機械が、前記所定順序内の前の位置を有するメモ
    リアドレスにジャンプするための前記追加命令のジャンプ先のメモリアドレスが
    、前記所定順序内の前の位置を有するメモリアドレスにジャンプするための以前
    に復号化されている実行可能命令に従ったジャンプ先のメモリアドレスと異なる
    メモリアドレスであるときに、前記所定順序内の前の位置を有するメモリアドレ
    スにジャンプするための追加命令の前記制御装置による検出に応答して前記メモ
    リ制御信号を生成する、請求項14に記載の制御。
  22. 【請求項22】 前記状態機械が、前記所定順序内の前の位置を有するメモ
    リアドレスにジャンプする先の前記追加命令のメモリアドレスが、前記所定順序
    内の前の位置を有するメモリアドレスにジャンプするための以前検出された命令
    のメモリアドレスと異なるときに、前記所定順序内の前の位置を有するメモリア
    ドレスにジャンプするための追加命令の前記制御装置による検出に応答して、前
    記メモリ制御信号を生成する、請求項14に記載の制御。
  23. 【請求項23】 前記シフトレジスタが、前記レジスタ制御信号が生成され
    ないときに、前記アドレス指定可能メモリから命令を記憶するためにイネーブル
    されるシフトレジスタを含む、請求項13に記載の制御。
  24. 【請求項24】 前記シフトレジスタが、前記レジスタ制御信号に応答して
    その出力でその中に記憶されているシフト済みの命令を作成する、請求項23に
    記載の制御。
  25. 【請求項25】 前記シフトレジスタが、N個の命令を記憶するためのNス
    テージを含み、この場合、Nが5と15の間の整数である、請求項23に記載の
    制御。
  26. 【請求項26】 その中に実行される命令を記憶するように適応されている
    対応するアドレスを有する複数のアドレス指定可能記憶ロケーションを有するラ
    ンダムアクセスメモリであって、そこではこのような命令が、複数回実行される
    命令の少なくとも1つのシーケンスを含んでよく、前記ランダムアクセスメモリ
    が、メモリイネーブル信号およびメモリアドレス信号に応答し、前記メモリアド
    レス信号によって表されているアドレスに対応している位置に記憶されている記
    憶済み命令の内の命令を選択的に作成する、ランダムアクセスメモリと、 シフトレジスタであって、そこでは前記シフトレジスタが、前記ランダムアク
    セスメモリ似よって作成されている命令のシーケンスを、シフトイネーブル信号
    によってイネーブルされうときに記憶するために前記ランダムアクセスメモリに
    結合されており、前記シフトレジスタが、レジスタイネーブル信号およびシフト
    レジスタアドレス信号に応答し、その出力で、その中に記憶されている命令のシ
    ーケンスの内の命令を作成するシフトレジスタと、 前記ランダムアクセスメモリおよび前記レジスタによって作成されている命令
    を記憶するように適応されている命令レジスタと、 複数回実行される命令のシーケンスの繰り返しを起動する実行可能命令である
    、命令レジスタに記憶されている命令の内の命令を復号化するための制御装置と
    、 前記メモリアドレス信号を生成するためのプログラムカウンタと、 複数回実行される命令が前記制御装置によって復号化されないときに、前記シ
    フトレジスタをイネーブルするための前記シフトイネーブル信号を生成し、複数
    回実行される命令が復号化されるときに制御信号を生成するための前記制御装置
    に応答する状態追跡機械と、 前記レジスタアドレス信号を生成するために前記メモリアドレス信号と前記制
    御信号に応答するシフトレジスタ制御であって、前記シフトレジスタ制御が、前
    記メモリイネーブル信号および前記レジスタイネーブル信号を生成するために、
    前記シフトイネーブル信号に、および前記メモリアドレス信号に応答するゲーテ
    ィング論理を含む、シフトレジスタ制御と、を備える、デジタル信号プロセッサ
    制御。
  27. 【請求項27】 複数回実行される命令のシーケンスの繰り返しを起動する
    前記制御装置によって復号化される実行可能命令が、そのときに復号化された実
    行可能命令のメモリアドレスより低い値を有するメモリアドレスにジャンプする
    ためのジャンプバック命令である、請求項26に記載の信号プロセッサ制御。
  28. 【請求項28】 前記シフトレジスタが、その中にN個の命令を記憶するた
    めにNステージを含み、この場合Nが、少なくとも、そのときに復号化された実
    行可能命令とジャンプバック先のメモリアドレスの間の差異程度に大きい値を有
    する整数である、請求項27に記載の信号プロセッサ制御。
  29. 【請求項29】 Nが5と15の間である、請求項28に記載の信号プロセ
    ッサ制御。
  30. 【請求項30】 前記状態追跡機械が、前記制御信号を生成するための前記
    ジャンプバック命令の復号化に応答する、請求項27に記載の信号プロセッサ制
    御。
  31. 【請求項31】 さらに、ジャンプバック命令のメモリアドレスを記憶する
    ための前記制御信号に応答するアドレスレジスタを備える、請求項30に記載の
    信号プロセッサ制御。
  32. 【請求項32】 前記状態追跡機械が、前記信号イネーブル信号を生成する
    ため、および第1ジャンプバック命令および第2ジャンプバック命令のそれぞれ
    のメモリアドレスが異なるときに前記制御信号を生成しないための、異なる時間
    で復号化されている第1ジャンプバック命令と第2ジャンプバック命令のそれぞ
    れのメモリアドレスに応答する、請求項27に記載の信号プオセッサ制御。
  33. 【請求項33】 前記状態追跡機械が、前記シフトイネーブル信号を生成す
    るため、および第1ジャンプバック命令と第2ジャンプバック命令のジャンプ先
    のそれぞれのメモリアドレスが異なる場合には前記制御信号を生成しないための
    、異なる時間で復号化されている第1ジャンプバック命令および第2ジャンプバ
    ック命令のジャンプ先のそれぞれのメモリアドレスに応答する、請求項27に記
    載の信号プロセッサ制御。
  34. 【請求項34】 前記シフトレジスタ制御が、前記制御装置によって復号化
    される実行可能命令のメモリアドレスを記憶するために、前記制御信号に応答す
    るアドレスレジスタを含む、請求項26に記載の信号プロセッサ制御。
  35. 【請求項35】 前記シフトレジスタ制御が、前記レジスタイネーブル信号
    を生成するために実行されている命令のメモリアドレスに、前記アドレスレジス
    タに記憶されているメモリアドレスを比較するためのコンパレータを含む、請求
    項34に記載の信号プロセッサ制御。
  36. 【請求項36】 前記シフトレジスタ制御が、前記シフトレジスタアドレス
    信号を生成するために、実行中の命令のメモリアドレスを、前記アドレスレジス
    タに記憶されているメモリアドレスから差し引くための減算器を含む、請求項3
    4に記載の信号プロセッサ制御。
  37. 【請求項37】 前記シフトレジスタ制御が、 前記シフトレジスタに記憶されている命令の数をカウントするためのカウンタ
    と、 前記レジスタイネーブル信号を生成するために、前記カウンタに、および実行
    中の命令のメモリアドレスに応答するコンパレータと、を含む、請求項34に記
    載の信号プロセッサ制御。
  38. 【請求項38】 前記制御装置が、そのときに復号化された実行可能命令の
    メモリアドレスより高い値を有するメモリアドレスにジャンプするためのジャン
    プ前方命令である実行可能命令の内の命令を復号化する、請求項26に記載の信
    号プロセッサ制御。
  39. 【請求項39】 前記状態追跡機械が、前記シフトイネーブル信号を生成す
    るため、および前記制御信号を生成しないための前記ジャンプ前方命令の復号化
    に応答する、請求項38に記載の信号プロセッサ制御。
  40. 【請求項40】 前記制御装置が、それぞれが命令アドレスとそれに対応し
    ているターゲットアドレスを有するジャンプバック命令およびジャンプ前方命令
    を含む実行可能命令を復号化し、 前記状態追跡機械が、前記制御装置がジャンプバック命令を復号化するときに
    前記制御信号を生成し、前記制御装置が(a)ジャンプ前方命令、および(b)
    前記に復号化されたジャンプバック命令のそれらとは異なる命令アドレスおよび
    異なるターゲットアドレスを有するジャンプバック命令の内の1つを復号化する
    ときに、前記シフトイネーブル信号を生成する、請求項26に記載の信号プロセ
    ッサ制御。
  41. 【請求項41】 イネーブル時に命令を作成するためのアドレス指定可能メ
    モリと、 前記アドレス指定可能メモリによって作成される命令を記憶するため、および
    イネーブル時に記憶された命令を作成するためのシフトレジスタと、 前記アドレス指定可能メモリおよび前記シフトレジスタによって作成される実
    行可能命令を復号化するための制御装置であって、そこでは復号化された命令が
    ジャンプバック命令およびジャンプ前方命令を含み、命令アドレスおよびターゲ
    ットアドレスが、各ジャンプバック命令およびジャンプ前方命令に対応する制御
    装置と、 前記シフトレジスタがイネーブルされるマッピング状態、および前記アドレス
    指定可能メモリがイネーブルされる非マッピング状態を有するメモリ制御であっ
    て、そこではジャンプバック命令が復号化されるときに前記マッピング状態を取
    るように、およびジャンプ前方命令が復号化されるときに前記非マッピング状態
    を取るように前記メモリ制御が前記制御装置に応答するメモリ制御と、を備える
    デジタル制御装置。
  42. 【請求項42】 前記メモリ制御が、異なるターゲットアドレスを有する2
    つの連続するジャンプバック命令が復号化されるときに、前記非マッピング状態
    を取る、請求項41に記載のデジタル制御装置。
  43. 【請求項43】 前記メモリ制御が、異なる命令アドレスを有する2つの連
    続するジャンプバック命令が復号化されるときに、前記非マッピング状態を取る
    、請求項41に記載のデジタル制御装置。
  44. 【請求項44】 前記メモリ制御が、異なる命令アドレスを有し、異なるタ
    ーゲットアドレスを有する2つの連続するジャンプバック命令が復号化されると
    きに、前記非マッピング状態を取る、請求項41に記載のデジタル制御装置。
  45. 【請求項45】 ジャンプバック命令が復号化されていない限り、非マッピ
    ング状態にあるときに、前記メモリ制御が非マッピング状態に残る、請求項41
    に記載のデジタル制御装置。
  46. 【請求項46】 (a)ジャンプ前方命令および(b)過去に復号化された
    ジャンプバック命令と異なる命令アドレスおよび異なるターゲットアドレスを有
    するジャンプバック命令の内の1つが、復号化されない限り、前記メモリ制御が
    、マッピング状態にいるときにマッピング状態のままとなる、請求項41に記載
    のデジタル制御装置。
  47. 【請求項47】 繰り返し実行される実行可能命令のさらに短いシーケンス
    を含む、実行される実行可能命令のシーケンスをメモリから作成するステップと
    、 繰り返し実行される実行可能命令のさらに短いシーケンスをレジスタに記憶す
    るステップと、 ジャンプバック命令である実行可能命令のシーケンス内の命令を復号化するス
    テップと、 ジャンプバック命令の復号化に応答して、実行可能命令のシーケンスの中でメ
    モリが追加命令を作成することを抑止するステップと、 ジャンプバック命令の復号化に応答して、前記レジスタから、その中に記憶さ
    れている実行可能命令のさらに短いシーケンスの内の命令を作成、実行するステ
    ップと、を含む、デジタルプロセッサで電力消費を削減するための方法。
  48. 【請求項48】 さらに、ジャンプ前方命令である実行命令のシーケンスの
    内の命令を復号化するステップと、 ジャンプ前方命令を復号化することに応答して、その中に記憶されている命令
    の前記レジスタから作成することを抑止するステップと、 ジャンプ前方命令を復号化することに応答して、その中に記憶されている命令
    のシーケンスの前記メモリからの作成を可能にするステップと、を含む、請求項
    47に記載の方法。
  49. 【請求項49】 レジスタに記憶するステップが、前記レジスタ内にN個の
    実行可能命令のシーケンスを記憶することを含み、この場合、Nは、繰り返し実
    行される実行可能命令の前記さらに短いシーケンス内の実行命令数以上の値の整
    数である、請求項47に記載の方法。
  50. 【請求項50】 N個の実行可能命令のシーケンスを記憶するステップが、
    N個の最も最近に実行された実行可能命令を記憶することを含む、請求項49に
    記載の方法。
JP2000550011A 1998-05-21 1999-05-21 デジタルプロセッサ用制御装置 Withdrawn JP2002516425A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/082,654 1998-05-21
US09/082,654 US6125440A (en) 1998-05-21 1998-05-21 Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch
PCT/US1999/011280 WO1999060460A2 (en) 1998-05-21 1999-05-21 Storing instructions in low power shift register buffer for fetching loop instructions

Publications (1)

Publication Number Publication Date
JP2002516425A true JP2002516425A (ja) 2002-06-04

Family

ID=22172537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000550011A Withdrawn JP2002516425A (ja) 1998-05-21 1999-05-21 デジタルプロセッサ用制御装置

Country Status (6)

Country Link
US (1) US6125440A (ja)
EP (1) EP0996882A2 (ja)
JP (1) JP2002516425A (ja)
AU (1) AU752641B2 (ja)
CA (1) CA2297243A1 (ja)
WO (1) WO1999060460A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014013565A (ja) * 2012-06-15 2014-01-23 Apple Inc ループバッファ学習
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE50004566D1 (de) * 1999-03-17 2004-01-08 Infineon Technologies Ag Cachen kurzer programmschleifen innerhalb eines instruktions-fifos
US6963965B1 (en) * 1999-11-30 2005-11-08 Texas Instruments Incorporated Instruction-programmable processor with instruction loop cache
JP2002073330A (ja) * 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
US7102700B1 (en) * 2000-09-02 2006-09-05 Magic Lantern Llc Laser projection system
US6950929B2 (en) * 2001-05-24 2005-09-27 Samsung Electronics Co., Ltd. Loop instruction processing using loop buffer in a data processing device having a coprocessor
US6879139B2 (en) * 2003-05-02 2005-04-12 Potentia Semiconductor, Inc. Sequencing power supplies
US6850048B2 (en) * 2003-05-02 2005-02-01 Potentia Semiconductor, Inc. Power supply controller
US7458028B2 (en) * 2003-07-18 2008-11-25 Avinash Chidambaram Graphical interface for configuring a power supply controller
US7685411B2 (en) * 2005-04-11 2010-03-23 Qualcomm Incorporated Multi-mode instruction memory unit
US7337342B1 (en) * 2005-04-28 2008-02-26 Summit Microelectronics, Inc. Power supply sequencing distributed among multiple devices with linked operation
US9772851B2 (en) * 2007-10-25 2017-09-26 International Business Machines Corporation Retrieving instructions of a single branch, backwards short loop from a local loop buffer or virtual loop buffer
JP5159258B2 (ja) * 2007-11-06 2013-03-06 株式会社東芝 演算処理装置
US9471125B1 (en) * 2010-10-01 2016-10-18 Rockwell Collins, Inc. Energy efficient processing device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3337851A (en) * 1963-12-09 1967-08-22 Burroughs Corp Memory organization for reducing access time of program repetitions
US4171539A (en) * 1977-12-19 1979-10-16 The Bendix Corporation Power strobed digital computer system
US4748559A (en) * 1979-08-09 1988-05-31 Motorola, Inc. Apparatus for reducing power consumed by a static microprocessor
US4409665A (en) * 1979-12-26 1983-10-11 Texas Instruments Incorporated Turn-off-processor between keystrokes
JPS5775335A (en) * 1980-10-27 1982-05-11 Hitachi Ltd Data processor
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control
US4780843A (en) * 1983-11-07 1988-10-25 Motorola, Inc. Wait mode power reduction system and method for data processor
JPS6145354A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
US4851987A (en) * 1986-01-17 1989-07-25 International Business Machines Corporation System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
JPS63163912A (ja) * 1986-12-26 1988-07-07 Toshiba Corp マイクロコンピユ−タシステム
JPH0786847B2 (ja) * 1988-08-09 1995-09-20 松下電器産業株式会社 キャッシュメモリ
US5276824A (en) * 1990-01-08 1994-01-04 Motorola, Inc. Data processor having a multi-stage instruction pipe and selection logic responsive to an instruction decoder for selecting one stage of the instruction pipe
JP2544027B2 (ja) * 1990-05-24 1996-10-16 株式会社東芝 低消費電力型プログラマブルロジックアレイおよびそれを用いた情報処理装置
JPH04293124A (ja) * 1991-03-20 1992-10-16 Hitachi Ltd データ処理プロセッサ
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
DE69224661T2 (de) * 1991-12-17 1998-08-27 Compaq Computer Corp Vorrichtung zur verminderung des energieverbrauchs eines rechnersystems
US5416726A (en) * 1992-10-06 1995-05-16 Microsoft Corporation Method and system for placing a computer in a reduced power state
US5638083A (en) * 1993-07-07 1997-06-10 Chips And Technologies, Inc. System for allowing synchronous sleep mode operation within a computer
JPH07160585A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd 低電力データ処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014013565A (ja) * 2012-06-15 2014-01-23 Apple Inc ループバッファ学習
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold

Also Published As

Publication number Publication date
AU752641B2 (en) 2002-09-26
US6125440A (en) 2000-09-26
AU4093299A (en) 1999-12-06
WO1999060460A2 (en) 1999-11-25
WO1999060460A3 (en) 2000-02-10
CA2297243A1 (en) 1999-11-25
EP0996882A2 (en) 2000-05-03

Similar Documents

Publication Publication Date Title
JP2002516425A (ja) デジタルプロセッサ用制御装置
JP3636986B2 (ja) 半導体集積回路
CN101373427B (zh) 程序执行控制装置
US4949241A (en) Microcomputer system including a master processor and a slave processor synchronized by three control lines
JPH10177481A (ja) 改善された分岐予測機能を有するマイクロプロセッサ及びその動作方法
US5504869A (en) High speed processing system capable of executing strings of instructions in order without waiting completion of previous memory access instruction
JP2010066892A (ja) データプロセッサ及びデータ処理システム
CN100590592C (zh) 处理器及其指令发布方法
JP4439288B2 (ja) 同時多重スレッディングプロセッサ、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム格納媒体及びこれらを動作させる方法
US5724548A (en) System including processor and cache memory and method of controlling the cache memory
US7389405B2 (en) Digital signal processor architecture with optimized memory access for code discontinuity
KR101076815B1 (ko) 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템
US20030172259A1 (en) Branch prediction circuit of instruction
US7065612B2 (en) Processor having cache structure and cache management method for elevating operation speed
JPH04104350A (ja) マイクロプロセッサ
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JPH08241296A (ja) 半導体集積回路
JP2721610B2 (ja) プログラマブルコントローラ
JPH0991139A (ja) 情報処理装置
JPH06274525A (ja) ベクトルデータプリフェッチ制御装置
JPH02214938A (ja) データ処理装置
JPH05225122A (ja) Dmaにおけるバースト転送方式
JP3239042B2 (ja) マイクロコンピュータ
JP3366235B2 (ja) データ読み出し制御装置
JPH05189015A (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060801