JP3867427B2 - プロセッサ装置および集積回路 - Google Patents
プロセッサ装置および集積回路 Download PDFInfo
- Publication number
- JP3867427B2 JP3867427B2 JP00439899A JP439899A JP3867427B2 JP 3867427 B2 JP3867427 B2 JP 3867427B2 JP 00439899 A JP00439899 A JP 00439899A JP 439899 A JP439899 A JP 439899A JP 3867427 B2 JP3867427 B2 JP 3867427B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- prefetch
- instructions
- instruction
- sequentially
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims description 41
- 230000015654 memory Effects 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
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)
Description
【発明の属する技術分野】
本発明は、プログラムに従って所望の演算処理を行うプロセッサ装置であって、特に、たとえばマクロコマンドプログラムなどの下層のプログラムモジュールへの処理の分岐時および復帰時のオーバーヘッドを無くし、高速に効率よく所望の処理を行うことができるプロセッサ装置、および、そのようなプロセッサ装置を内蔵するたとえば特定用途向けICのような集積回路に関する。
【0002】
【従来の技術】
プログラムに従って所望の処理を行ういわゆるマイクロプロセッサユニット(MPU)(以後、単にプロセッサと言う場合もある。)においては、近年、種々の高速アーキテクチャの開発や動作周波数の高速化などが行われており、処理速度の高速化が著しい。
また、半導体技術の進展により、プロセッサを含む所望の回路を1つの半導体集積回路(IC)上に構成することが比較的容易に行えるようになっており、所望の処理を、プロセッサを含みその処理に特化され最適化された専用回路により高速に効率よく行えるようにしたいわゆる特定用途向けIC(ASIC)の開発、利用が盛んに行われている。
【0003】
しかし、そのようなプロセッサにおいては、プロセッサにプログラムやデータを供給するバスや周辺回路の処理速度がプロセッサの処理速度に対して追いつかない状態、いわゆるバスネックやメモリネックの状態となり、プロセッサの処理能力を十分に使用できない状態が発生している。
そのために、多段のプリフェッチキューやインストラクションキャッシュなどを設けて、たとえば実行対象のプログラムを先読みするなどして、実行効率の改善を図っている。
【0004】
【発明が解決しようとする課題】
しかしながら、そのようなプロセッサにおいても、たとえば分岐命令が発生した時には、プリフェッチされたプログラムを用いることができず新たに分岐先のプログラムをフェッチする必要が生じ、プロセッサの処理が待機させられる処理効率が下がるという問題がある。
特に、近年では、実際の実行プログラムレベルは関数として構成するなどした関数やサブルーチン、マクロコマンドなどを多用した階層化構造のプログラムが多いが、そのようなプログラムを実行する場合には、メインプログラムと下層の処理モジュール、あるいは処理モジュールとさらに下層の処理モジュールとの間で処理の制御の移動を行う必要があるため、その際にオーバーヘッドが生じ、処理効率を向上させる上での障害となっている。
【0005】
したがって、本発明の目的は、分岐条件が発生した時や処理モジュールの切り換えなどが発生した際のオーバーヘッドを少なくし、より効率よく所望の処理が行えるプロセッサ装置を提供することにある。
また、本発明の他の目的は、そのようなプロセッサ装置を内蔵し、所望の処理を効率よく高速に行うことができる集積回路を提供することにある。
【0006】
【課題を解決するための手段】
前記課題を解決するために、本発明のプロセッサ装置は、一連のインストラクションを順次プリフェッチする複数のプリフェッチ手段と、前記複数のプリフェッチ手段に対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも処理順序が連続でなくなるインストラクションを検出する複数のプリデコーダと、前記プリデコーダにおいて前記処理順序が連続でなくなるインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該一連のインストラクションとは連続でない新たな一連のインストラクションをプリフェッチさせるプリフェッチ制御手段と、前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを順次選択し、当該インストラクションを順次読み出す選択手段と、前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段とを有し、前記プリフェッチ手段は、プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成するインストラクションを順次プリフェッチする第1のプリフェッチ手段と、各々所定の処理を行う複数の前記プログラムモジュールを構成するインストラクションを順次プリフェッチする複数の第2のプリフェッチ手段とを有し、前記プリフェッチ制御手段は、前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、前記他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせる。
【0008】
また、本発明の集積回路は、プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成する一連のインストラクションを順次プリフェッチする第1のプリフェッチ手段と、各々所定の処理を行う複数のプログラムモジュールを構成する一連のインストラクションを順次プリフェッチする複数の第2のプリフェッチ手段と、前記第1プリフェッチ手段および前記複数の第2のプリフェッチ手段に各々対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも前記プログラムモジュールを呼び出すインストラクションを検出する複数のプリデコーダと、前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせるプリフェッチ制御手段と、前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを選択し、当該インストラクションを順次読み出す選択手段と、前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段とを有する。
【0009】
【発明の実施の形態】
本発明のプロセッサ装置の一実施の形態を図1および図2を参照して説明する。
図1は、本発明のプロセッサ装置の構成を示すブロック図である。
プロセッサ装置10は、実行ユニット11、インストラクションデコーダ12、メインプログラムインストラクションプリフェッチャ13、メインプログラムインスラクションプリデコーダ14、n個のマクロプログラムインストラクションプリフェッチャ15-1〜15-n、n個のマクロプログラムインスラクションプリデコーダ16-1〜16-n、マルチプレクサ18、メインプログラムカウンタ19、マクロコマンドアドレステーブル20、n個のマクロコマンドプログラムカウンタ21-1〜21-nおよびシーケンスコントローラ22を有する。
なお、図1には、このプロセッサ装置10に、処理対象のプログラムのメインプログラムが記憶されているメインプログラムメモリ30と、マクロブロックプログラムが順次記憶されているマクロプログラムメモリ31とが接続されている状態を示してある。
【0010】
まず、各部の構成について説明する。
実行ユニット11は、供給される処理対象のデータに対して、インストラクションデコーダ12より供給されるインストラクションに従った所望の処理を実際に行う演算処理部である。
【0011】
インストラクションデコーダ12は、後述するマルチプレクサ18により選択されて供給されるメインプログラムインスラクションプリデコーダ14またはマクロプログラムインスラクションプリデコーダ16-i(i=1〜n)でプリデコードされたインストラクションデータをさらにデコードし、実行ユニット11がそのインストラクションデータに基づいた所望の処理を行うように、実行ユニット11に対する制御コードを生成して実行ユニット11に出力する。
【0012】
メインプログラムインストラクションプリフェッチャ13は、シーケンスコントローラ22より入力されるアドレスデータおよび制御信号に基づいて、外部に設けられているメインプログラムが記憶されているメインプログラムメモリ30より、メインプログラムの各ステップのインストラクションデータを順次読み出し、メインプログラムインスラクションプリデコーダ14に出力する。
【0013】
メインプログラムインスラクションプリデコーダ14は、メインプログラムインストラクションプリフェッチャ13より入力されるインストラクションデータをプリデコードし、マルチプレクサ18を介してインストラクションデコーダ12に出力する。その際に、メインプログラムインスラクションプリデコーダ14は、”マクロコマンド”インストラクションをデコードすると、その旨の信号をシーケンスコントローラ22に出力する。
【0014】
n個のマクロプログラムインストラクションプリフェッチャ15-1〜15-nは、各々、シーケンスコントローラ22より入力されるアドレスデータおよび制御信号に基づいて、外部に設けられているマクロプログラムが記憶されているマクロプログラムメモリ31より、マクロプログラムの各ステップのインストラクションデータを順次読み出し、対応するマクロプログラムインスラクションプリデコーダ16-iに出力する。
【0015】
n個のマクロプログラムインスラクションプリデコーダ16-1〜16-nは、各々、対応するマクロプログラムインストラクションプリフェッチャ15-iより入力されるインストラクションデータをプリデコードし、マルチプレクサ18を介してインストラクションデコーダ12に出力する。その際、マクロプログラムインスラクションプリデコーダ16-iは、”マクロコマンド”インストラクションをデコードすると、その旨の信号をシーケンスコントローラ22に出力する。また、プリデコード中の”マクロコマンド”のインストラクションが終了した時にも、マクロプログラムインスラクションプリデコーダ16-iは、その旨の信号をシーケンスコントローラ22に出力する。
【0016】
マルチプレクサ18は、シーケンスコントローラ22からの制御信号に基づいてメインプログラムインスラクションプリデコーダ14およびn個のマクロプログラムインスラクションプリデコーダ16-1〜16-nのいずれかの出力信号であるプリデコードされたインストラクションデータを選択し、インストラクションデコーダ12に出力する。
【0017】
メインプログラムカウンタ19は、メインプログラムの実行に係わり、メインプログラムメモリ30より読み出すプログラムを制御するプログラムカウンタである。
【0018】
マクロコマンドアドレステーブル20は、マクロプログラムメモリ31に記憶されている各マクロコマンドプログラムの実行開始先頭アドレスが記憶されているテーブルであり、n個のマクロコマンドプログラムカウンタ21-1〜21-nにより適宜その先頭アドレスが読み出される。
【0019】
n個のマクロコマンドプログラムカウンタ21-1〜21-nは、各々、対応する階層のマクロコマンドプログラムの実行に係わり、マクロプログラムメモリ31より読み出すプログラムを制御するプログラムカウンタである。
【0020】
シーケンスコントローラ22は、実行ユニット11に適切にインストラクションコードが供給されて、所望の動作を効率よく実行できるように、プロセッサ装置10の前述したような主にインストラクションフェッチおよびデコードに係わる構成部を制御する制御部である。
【0021】
具体的には、たとえば、メインプログラムインスラクションプリデコーダ14あるいはマクロプログラムインスラクションプリデコーダ16-j(j=1〜n)より、”マクロコマンド”をデコードした旨の信号が入力された場合には、その”マクロコマンド”に対応する階層のマクロコマンドプログラムカウンタ21-i(メインプログラムからの分岐の場合i=1、マクロコマンドプログラムからの分岐の場合i=j+1)に対して、マクロコマンドアドレステーブル20よりその”マクロコマンド”の開始先頭アドレスを読み込むように制御を行う。そして、そのマクロコマンドプログラムカウンタ21-iによりカウントされるプログラムカウンタ値に基づいて、順次マクロプログラムメモリ31をアクセスしプログラムをフェッチするように、n個のマクロプログラムインストラクションプリフェッチャ15-1〜15-nの中のその”マクロコマンド”に対応する所定のマクロプログラムインストラクションプリフェッチャ15-iを制御する。
【0022】
また、この時に、シーケンスコントローラ22は、これまで実行実体であったメインプログラムあるいはマクロプログラムに対するメインプログラムインストラクションプリフェッチャ13およびメインプログラムインスラクションプリデコーダ14、あるいは、マクロプログラムインストラクションプリフェッチャ15-jおよびマクロプログラムインスラクションプリデコーダ16-jにおけるプリフェッチおよびプリデコードの処理をそれまでの内容を保存したままで停止させる。
【0023】
そして、新たに処理を開始した”マクロコマンド”が終了した際には、これらのプリフェッチおよびプリデコードの処理を停止させた状態から直ちに再開させる。
また、シーケンスコントローラ22は、このようなプリフェッチおよびプリデコードを行う構成部の切り換えに伴って、有効になったプリデコード結果が適切にインストラクションデコーダ12に入力されるように、マルチプレクサ18を適宜切り換える。
【0024】
また、シーケンスコントローラ22は、メインプログラムおよび各マクロコマンドの実行の際には、メインプログラムカウンタ19またはマクロコマンドプログラムカウンタ21-iより入力されるプログラムカウント値に基づいて、順次メインプログラムメモリ30およびマクロプログラムメモリ31に格納されているプログラムが読み出されるように、メインプログラムインストラクションプリフェッチャ13およびマクロプログラムインストラクションプリフェッチャ15-iを制御する。
【0025】
次に、プロセッサ装置10の動作について図2を参照して説明する。
なお、ここでは、マクロコマンドプログラムの階層を一階層のみにした構成を例示してプロセッサ装置10の動作を説明する。したがって、マクロコマンドプログラムの中から別のマクロコマンドプログラムを呼び出す動作についての説明は省略する。
【0026】
まず、通常に処理を開始する際には、メインプログラムカウンタ19はまず0番地にリセットされ、これに基づいてメインプログラムインストラクションプリフェッチャ13がメインプログラムメモリ30を0番地より順にアクセスし、記憶されているプログラムコードをプリフェッチする。
プリフェッチされたプログラムコードは、メインプログラムインスラクションプリデコーダ14で順次プリデコードされ、通常のインストラクションであればマルチプレクサ18を介してインストラクションデコーダ12に入力されてデコードされ、実行ユニット11で実行される。
【0027】
メインプログラムインスラクションプリデコーダ14でプリデコードしたインストラクションが”マクロコマンド”を示すものであった場合には、その旨がシーケンスコントローラ22に入力され、シーケンスコントローラ22の制御に基づいて、その”マクロコマンド”に対応するマクロプログラムの開始先頭アドレスがマクロコマンドアドレステーブル20よりマクロコマンドプログラムカウンタ21-i(本例の場合i=1)に読み込まれる。
そして、このマクロコマンドプログラムカウンタ21-iの出力に基づいて、同じく対応するマクロプログラムインストラクションプリフェッチャ15-iがマクロプログラムメモリ31に記憶されているそのマクロコマンドのプログラムコードをプリフェッチし、マクロプログラムインスラクションプリデコーダ16-iでプリデコードされる。
【0028】
そして、メインプログラムのそのマクロコマンドを呼び出す処理が実行されるタイミングで、マルチプレクサ18が切り換えられ、マクロプログラムインスラクションプリデコーダ16-iでプリデコードされたそのマクロコマンドのプログラムコードがインストラクションデコーダ12に供給される。
これにより、実行ユニット11では、メインプログラムからマクロコマンドに実行が移る。なお、この時に、状態フラグやメインプログラムカウンタ19の内容などは退避されずそのまま保存される。
【0029】
そのマクロコマンドのプログラムコードが終了すると、マクロプログラムインスラクションプリデコーダ16-iにおいてその旨が検出され、シーケンスコントローラ22の制御により、実行プログラムがマクロコマンドから元のメインプログラムに切り換えられる。すなわち、マルチプレクサ18が切り換えられてメインプログラムインスラクションプリデコーダ14の出力がインストラクションデコーダ12に出力されるようにされ、また、メインプログラムカウンタ19におけるカウントが再開されるとともにこのカウント値に基づくメインプログラムインストラクションプリフェッチャ13におけるメインプログラムのプログラムコードのプリフェッチが再開される。
【0030】
以後同様に、マクロコマンドをデコードするごとに、そのマクロコマンドのプログラムのプリフェッチおよびプリデコードを、メインプログラムインストラクションプリフェッチャ13およびメインプログラムインスラクションプリデコーダ14とは異なるマクロプログラムインストラクションプリフェッチャ15-iおよびマクロプログラムインスラクションプリデコーダ16-iで行っておき、マルチプレクサ18を切り換えることで実行ユニット11における実行対象の切り換えを行う。
【0031】
なお、図2には示さないが、マクロコマンドプログラムに従って動作中に、さらにマクロコマンドが発生した場合にも、前述したのと同様に新たな下層のマクロコマンドのプリフェッチおよびプリデコードを行い、マルチプレクサ18を切り換えることにより実行ユニット11における制御も切り換える。そして、元のプログラムへの復帰も、マルチプレクサ18を順次切り換えることにより階層的に順に復帰させる。
【0032】
このように、本実施の形態のプロセッサ装置10においては、プリフェッチャ、プリデコーダおよびプログラムカウンタを、メインプログラム用およびマクロコマンド用に別に複数設けているので、プログラム実行時に分岐や他の処理モジュールの呼び出しが行われた場合においても、プリフェッチしたプログラムコードやプログラムカウンタの値を退避する必要がなく、単にインストラクションデコーダ12および実行ユニット11に出力するプログラムコードを切り換えるのみでよい。そのため、これまで生じていたようなデータの退避時のオーバーヘッドを無くすことができ、そのような分岐や呼び出しを直ちに行うことができ、仮に分岐命令が多用されても実行速度を損なうことなく、全体として処理速度、処理効率を大幅に向上させることができる。
【0033】
なお、本発明は、本実施の形態のみに限られるものではなく、任意好適な種々の改変が可能である。
たとえば、本実施の形態のプロセッサ装置においては、メインプログラムメモリおよびマクロプログラムメモリをともに外部メモリとして有する構成であったが、これらの一部または全部をプロセッサ装置内に設けるようにしてもよい。また、各プログラムを記憶するメモリの構成も任意に決定してよい。
たとえば、メインプログラムとマクロプログラムとを、物理的に同一のメモリ上にマッピングするようにしてもよい。
【0034】
もちろん、メインプログラムメモリとマクロプログラムメモリとを、物理的に異なるメモリを用いて実現してもよい。
その場合、たとえば、図3に示すように、メインプログラムメモリは外部メモリとして設け、マクロプログラムメモリをプロセッサ装置内部にマスクROMとして持つような構成でもよい。実際のデータ処理内容は主にマクロプログラム中に記述しておき、全体の処理シーケンスの順番のみをメインプログラム内に記述しておけば、処理速度を向上させることができる上に、メインプログラムの修正が容易に行えるので好適である。
【0035】
また、図3に示したメインプログラムメモリを、図4に示すように、プロセッサ装置内にフラッシュメモリ、EEPROMを用いて収容するようにしてもよい。このようにしておけば、メインプログラムの書換えが可能である上に全体を1チップにすることができ、経済的にも有効である。
【0036】
また、図5に示すように、プロセッサ装置内のROMに格納するマクロプログラムの内容が、特定のMPUのインストラクションセットと論理的に1対1に対応付けられるような場合には、仮想のMPUエミュレータ(Virtual Machine)を構成することもできる。本発明はこのような構成で実施してもよい。
【0037】
また、本実施の形態においては、実行インストラクション中に関数やサブルーチン、マクロコマンドなど、他のプログラムモジュールを呼び出すインストラクションを発見した場合に、そのプログラムモジュールを他のプリフェッチャにプリフェッチする場合について説明したが、同一のプログラムモジュール中の通常の条件分岐などにも適用可能である。その際には、分岐先からのインストラクションを別のプリフェッチャにプリフェッチしておき、演算処理の結果の分岐条件に基づいてマルチプレクサ18を制御して、元のプログラムモジュールのインストラクションか、別途プリフェッチした分岐先からのインストラクションかを選択するようにすればよい。
【0038】
【発明の効果】
以上説明したように、本発明によれば、分岐条件が発生した時や処理モジュールの切り換えなどが発生した際のオーバーヘッドを少なくし、より効率よく所望の処理が行えるプロセッサ装置を提供することができる。
また、そのようなプロセッサ装置を内蔵し、所望の処理を効率よく高速に行うことができる集積回路を提供することができる。
【図面の簡単な説明】
【図1】図1は、本発明の一実施の形態のプロセッサ装置の構成を示すブロック図である。
【図2】図2は、図1に示したプロセッサ装置におけるプログラムの実行の状態を示す図である。
【図3】図3は、本発明のプロセッサ装置の他の構成例を示す第1の図である。
【図4】図4は、本発明のプロセッサ装置の他の構成例を示す第2の図である。
【図5】図5は、本発明のプロセッサ装置の他の構成例を示す第3の図である。
【符号の説明】
10…プロセッサ装置、11…実行ユニット、12…インストラクションデコーダ、13…メインプログラムインストラクションプリフェッチャ、14…メインプログラムインスラクションプリデコーダ、15…マクロプログラムインストラクションプリフェッチャ、16…メインプログラムインスラクションプリデコーダ、18…マルチプレクサ、19…メインプログラムカウンタ、20…マクロコマンドアドレステーブル、21…マクロコマンドプログラムカウンタ、22…シーケンスコントローラ
Claims (11)
- 一連のインストラクションを順次プリフェッチする複数のプリフェッチ手段と、
前記複数のプリフェッチ手段に対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも処理順序が連続でなくなるインストラクションを検出する複数のプリデコーダと、
前記プリデコーダにおいて前記処理順序が連続でなくなるインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該一連のインストラクションとは連続でない新たな一連のインストラクションをプリフェッチさせるプリフェッチ制御手段と、
前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを順次選択し、当該インストラクションを順次読み出す選択手段と、
前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段と
を有し、
前記プリフェッチ手段は、プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成するインストラクションを順次プリフェッチする第1のプリフェッチ手段と、各々所定の処理を行う複数の前記プログラムモジュールを構成するインストラクションを順次プリフェッチする複数の第2のプリフェッチ手段とを有し、
前記プリフェッチ制御手段は、前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、前記他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせる
プロセッサ装置。 - 前記メインプログラムが記憶された第1のメモリ手段と、
前記複数のプログラムモジュールが記憶された第2のメモリ手段と
をさらに有し、
前記第1のプリフェッチ手段は、前記第1のメモリ手段より前記メインプログラムを構成する前記インストラクションを順次プリフェッチし、
前記第2のプリフェッチ手段は、前記第2のメモリ手段より前記プログラムモジュールを構成する前記インストラクションを順次プリフェッチする
請求項1に記載のプロセッサ装置。 - 前記複数の第2のプリフェッチ手段は、前記第2のメモリ手段に記憶されている前記複数のプログラムモジュールに各々対応付けられており、
前記プリフェッチ制御手段は、新たに呼び出す前記プログラムモジュールに対応付けられている前記第2のプリフェッチ手段に、当該プログラムモジュールをプリフェッチさせる
請求項2に記載のプロセッサ装置。 - 前記複数のプリフェッチ手段に対応付けられた、複数のプログラムカウンタをさらに有する
請求項3に記載のプロセッサ装置。 - 前記複数のプログラムモジュール各々の前記第2のメモリ手段におけるアドレス情報を有するテーブル
をさらに有し、
前記複数のプログラムカウンタの各々は、前記対応するプログラムモジュールのプリフェッチの際に、前記テーブルを参照して初期値を決定する
請求項4に記載のプロセッサ装置。 - 前記第1のメモリ手段は、任意の書換え可能なメモリ手段であり、
前記第2のメモリ手段は、ROM(リ−ド・オンリ・メモリ)により構成される
請求項5に記載のプロセッサ装置。 - プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成する一連のインストラクションを順次プリフェッチする第1のプリフェッチ手段と、
各々所定の処理を行う複数の前記プログラムモジュールを構成する一連のインストラクションを順次プリフェッチする複数の第2のプリフェッチ手段と、
前記第1プリフェッチ手段および前記複数の第2のプリフェッチ手段に各々対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも前記プログラムモジュールを呼び出すインストラクションを検出する複数のプリデコーダと、
前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせるプリフェッチ制御手段と、
前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを選択し、当該インストラクションを順次読み出す選択手段と、
前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段と
を有する集積回路。 - 前記複数のプログラムモジュールが記憶されたプログラムモジュール記憶手段 をさらに有し、
前記第2のプリフェッチ手段は、前記プログラムモジュール記憶手段より前記プログラムモジュールを構成する前記インストラクションを順次プリフェッチする
請求項7に記載の集積回路。 - 前記プログラムモジュール記憶手段は、ROM(リ−ド・オンリ・メモリ)として構成される
請求項8に記載の集積回路。 - 前記メインプログラムが記憶されるメインプログラム記憶手段
をさらに有し、
前記第1のプリフェッチ手段は、前記メインプログラム記憶手段より前記メインプログラムを構成する前記インストラクションを順次プリフェッチする
請求項9に記載の集積回路。 - 前記メインプログラム記憶手段は、フラッシュROMにより構成される
請求項10に記載の集積回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00439899A JP3867427B2 (ja) | 1999-01-11 | 1999-01-11 | プロセッサ装置および集積回路 |
US09/479,570 US6654873B2 (en) | 1999-01-11 | 2000-01-07 | Processor apparatus and integrated circuit employing prefetching and predecoding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00439899A JP3867427B2 (ja) | 1999-01-11 | 1999-01-11 | プロセッサ装置および集積回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000207204A JP2000207204A (ja) | 2000-07-28 |
JP3867427B2 true JP3867427B2 (ja) | 2007-01-10 |
Family
ID=11583251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00439899A Expired - Fee Related JP3867427B2 (ja) | 1999-01-11 | 1999-01-11 | プロセッサ装置および集積回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6654873B2 (ja) |
JP (1) | JP3867427B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1419758A (zh) * | 2000-02-04 | 2003-05-21 | 西门子公司 | 高阶数的多路复用设备中的并行信号分配和信号处理 |
US7110912B1 (en) * | 2003-05-20 | 2006-09-19 | J.A. Woollam Co., Inc | Method of applying parametric oscillators to model dielectric functions |
TWI258078B (en) * | 2003-10-07 | 2006-07-11 | Via Tech Inc | Pre-fetch controller and method thereof |
US7769983B2 (en) | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US7509481B2 (en) * | 2006-03-03 | 2009-03-24 | Sun Microsystems, Inc. | Patchable and/or programmable pre-decode |
US7353363B2 (en) * | 2006-03-03 | 2008-04-01 | Microsystems, Inc. | Patchable and/or programmable decode using predecode selection |
US7962725B2 (en) * | 2006-05-04 | 2011-06-14 | Qualcomm Incorporated | Pre-decoding variable length instructions |
KR101504115B1 (ko) * | 2007-03-12 | 2015-03-19 | 삼성전자 주식회사 | 매크로 명령 동작 장치와 매크로 명령 입력 장치 및 방법 |
US7711927B2 (en) * | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
JP4271248B2 (ja) * | 2007-05-24 | 2009-06-03 | ファナック株式会社 | 先読み停止機能を有する数値制御装置 |
US20150254078A1 (en) * | 2014-03-07 | 2015-09-10 | Analog Devices, Inc. | Pre-fetch unit for microprocessors using wide, slow memory |
US10176104B2 (en) * | 2016-09-30 | 2019-01-08 | Arm Limited | Instruction predecoding |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634025A (en) * | 1993-12-09 | 1997-05-27 | International Business Machines Corporation | Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units |
US5664135A (en) * | 1994-09-28 | 1997-09-02 | Hewlett-Packard Company | Apparatus and method for reducing delays due to branches |
JPH08106387A (ja) * | 1994-10-06 | 1996-04-23 | Oki Electric Ind Co Ltd | 命令プリフェッチ回路及びキャッシュ装置 |
US5961632A (en) * | 1996-07-25 | 1999-10-05 | Texas Instruments Incorporated | Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes |
US6061786A (en) * | 1998-04-23 | 2000-05-09 | Advanced Micro Devices, Inc. | Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction |
-
1999
- 1999-01-11 JP JP00439899A patent/JP3867427B2/ja not_active Expired - Fee Related
-
2000
- 2000-01-07 US US09/479,570 patent/US6654873B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030182535A1 (en) | 2003-09-25 |
US6654873B2 (en) | 2003-11-25 |
JP2000207204A (ja) | 2000-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2137611B1 (en) | System, method and software to preload instructions from an instruction set other than one currently executing | |
KR100535852B1 (ko) | 데이타처리장치 | |
US6029228A (en) | Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions | |
KR100274268B1 (ko) | 멀티스레드 프로세서에서 스레드 스위치 대기 시간을 감소시키기 위한 방법 및 장치 | |
EP2519874B1 (en) | Branching processing method and system | |
JP5425627B2 (ja) | 明示的サブルーチンコールの分岐予測動作をエミュレートするための方法および装置 | |
JP3867427B2 (ja) | プロセッサ装置および集積回路 | |
JPH05233271A (ja) | データプロセッサ | |
JP2773471B2 (ja) | 情報処理装置 | |
US20090204791A1 (en) | Compound Instruction Group Formation and Execution | |
US6813707B1 (en) | Enhancing instruction execution using built-in macros | |
JP3732555B2 (ja) | 非逐次アクセスの実効待ち時間が短いパイプライン・キャッシュシステム | |
JP2004145454A (ja) | 情報処理装置及び情報処理方法 | |
JP4354001B1 (ja) | メモリ制御回路および集積回路 | |
JP2004192021A (ja) | マイクロプロセッサ | |
JP2005078234A (ja) | 情報処理装置 | |
US7085916B1 (en) | Efficient instruction prefetch mechanism employing selective validity of cached instructions for digital signal processor and method of operation thereof | |
US6842846B2 (en) | Instruction pre-fetch amount control with reading amount register flag set based on pre-detection of conditional branch-select instruction | |
JP2000357090A (ja) | マイクロコンピュータおよびキャッシュ制御方法 | |
JP4111645B2 (ja) | キャッシュミスした後のメモリバスアクセス制御方式 | |
JPH08212779A (ja) | メモリアレイ、キャッシュ、およびマイクロプロセッサ | |
JPH08286914A (ja) | メモリ制御装置 | |
JPH0342723A (ja) | データ処理装置 | |
JP3753368B2 (ja) | データプロセッサ及びデータ処理システム | |
JP2001117819A (ja) | 命令メモリ回路及び情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060828 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060919 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061002 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091020 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101020 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111020 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121020 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131020 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |