JP2000207204A - プロセッサ装置および集積回路 - Google Patents

プロセッサ装置および集積回路

Info

Publication number
JP2000207204A
JP2000207204A JP11004398A JP439899A JP2000207204A JP 2000207204 A JP2000207204 A JP 2000207204A JP 11004398 A JP11004398 A JP 11004398A JP 439899 A JP439899 A JP 439899A JP 2000207204 A JP2000207204 A JP 2000207204A
Authority
JP
Japan
Prior art keywords
prefetch
program
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.)
Granted
Application number
JP11004398A
Other languages
English (en)
Other versions
JP3867427B2 (ja
Inventor
Tomohiko Kadowaki
智彦 門脇
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP00439899A priority Critical patent/JP3867427B2/ja
Priority to US09/479,570 priority patent/US6654873B2/en
Publication of JP2000207204A publication Critical patent/JP2000207204A/ja
Application granted granted Critical
Publication of JP3867427B2 publication Critical patent/JP3867427B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/3017Runtime instruction translation, e.g. macros
    • 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

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)【要約】 【課題】処理モジュール切り換え時のオーバーヘッドを
少なくし、所望の処理を効率よく高速に行うプロセッサ
装置を提供する。 【解決手段】プロセッサ装置10においては、一連のイ
ンストラクションがメインプログラム用プリフェッチャ
13でプリフェッチされ、プリデコーダ14でプリデコ
ードされ、マルチプレクサ18を介してデコーダ12お
よび実行ユニット11に供給され所望の処理が行われ
る。プリデコーダ14でマクロコマンドを実行するイン
ストラクションを検出した場合には、そのマクロコマン
ドのインストラクションをマクロプログラム用のプリフ
ェッチャ15-iにプリフェッチし、プリデコーダ16-i
でプリデコードしておく。これにより、マクロコマンド
への処理の分岐が発生した時には、マルチプレクサ18
を切り換えるのみで、直ちにマクロコマンドのインスト
ラクションを実行ユニット11に供給できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムに従っ
て所望の演算処理を行うプロセッサ装置であって、特
に、たとえばマクロコマンドプログラムなどの下層のプ
ログラムモジュールへの処理の分岐時および復帰時のオ
ーバーヘッドを無くし、高速に効率よく所望の処理を行
うことができるプロセッサ装置、および、そのようなプ
ロセッサ装置を内蔵するたとえば特定用途向けICのよ
うな集積回路に関する。
【0002】
【従来の技術】プログラムに従って所望の処理を行うい
わゆるマイクロプロセッサユニット(MPU)(以後、
単にプロセッサと言う場合もある。)においては、近
年、種々の高速アーキテクチャの開発や動作周波数の高
速化などが行われており、処理速度の高速化が著しい。
また、半導体技術の進展により、プロセッサを含む所望
の回路を1つの半導体集積回路(IC)上に構成するこ
とが比較的容易に行えるようになっており、所望の処理
を、プロセッサを含みその処理に特化され最適化された
専用回路により高速に効率よく行えるようにしたいわゆ
る特定用途向けIC(ASIC)の開発、利用が盛んに
行われている。
【0003】しかし、そのようなプロセッサにおいて
は、プロセッサにプログラムやデータを供給するバスや
周辺回路の処理速度がプロセッサの処理速度に対して追
いつかない状態、いわゆるバスネックやメモリネックの
状態となり、プロセッサの処理能力を十分に使用できな
い状態が発生している。そのために、多段のプリフェッ
チキューやインストラクションキャッシュなどを設け
て、たとえば実行対象のプログラムを先読みするなどし
て、実行効率の改善を図っている。
【0004】
【発明が解決しようとする課題】しかしながら、そのよ
うなプロセッサにおいても、たとえば分岐命令が発生し
た時には、プリフェッチされたプログラムを用いること
ができず新たに分岐先のプログラムをフェッチする必要
が生じ、プロセッサの処理が待機させられる処理効率が
下がるという問題がある。特に、近年では、実際の実行
プログラムレベルは関数として構成するなどした関数や
サブルーチン、マクロコマンドなどを多用した階層化構
造のプログラムが多いが、そのようなプログラムを実行
する場合には、メインプログラムと下層の処理モジュー
ル、あるいは処理モジュールとさらに下層の処理モジュ
ールとの間で処理の制御の移動を行う必要があるため、
その際にオーバーヘッドが生じ、処理効率を向上させる
上での障害となっている。
【0005】したがって、本発明の目的は、分岐条件が
発生した時や処理モジュールの切り換えなどが発生した
際のオーバーヘッドを少なくし、より効率よく所望の処
理が行えるプロセッサ装置を提供することにある。ま
た、本発明の他の目的は、そのようなプロセッサ装置を
内蔵し、所望の処理を効率よく高速に行うことができる
集積回路を提供することにある。
【0006】
【課題を解決するための手段】前記課題を解決するため
に、本発明のプロセッサ装置は、一連のインストラクシ
ョンを順次プリフェッチする複数のプリフェッチ手段
と、前記複数のプリフェッチ手段に対応して設けられ、
前記プリフェッチしたインストラクションより、少なく
とも処理順序が連続でなくなるインストラクションを検
出する複数のプリデコーダと、前記プリデコーダにおい
て前記処理順序が連続でなくなるインストラクションを
検出した場合に、当該プリデコーダに対応した前記プリ
フェッチ手段とは異なる他のプリフェッチ手段に、当該
一連のインストラクションとは連続でない新たな一連の
インストラクションをプリフェッチさせるプリフェッチ
制御手段と、前記複数のプリデコーダより、実行対象の
インストラクションを有するプリデコーダを選択し、当
該インストラクションを順次読み出す選択手段と、前記
読み出されたインストラクションに従った所定の処理を
実行するプロセッサ手段とを有する。
【0007】このような構成のプロセッサ装置において
は、実行プログラムの一連のインストラクションがプリ
フェッチ手段のいずれかで順次プリフェッチされ、対応
するプリデコーダでプリデコードされ、選択手段を介し
てプロセッサ手段に供給され、所望の処理が行われる。
この際、プリデコーダで少なくとも処理順序が連続でな
くなるインストラクションを検出した場合には、そのイ
ンストラクションに基づく新たな一連のインストラクシ
ョンを、他のプリフェッチ手段に順次プリフェッチさ
せ、またプリデコーダにおいてプリデコードしておく。
そのインストラクションの実行により分岐が発生した時
には、選択手段によりプリデコーダを切り換えるのみ
で、直ちに新たな一連のインストラクションがプロセッ
サ手段に供給されるようになる。
【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、マクロコマンドアドレステーブル2
0、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より、メインプログラムの
各ステップのインストラクションデータを順次読み出
し、メインプログラムインスラクションプリデコーダ1
4に出力する。
【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は、メイン
プログラムの実行に係わり、メインプログラムメモリ3
0より読み出すプログラムを制御するプログラムカウン
タである。
【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の中のその”マクロコマンド”に対応する所定の
マクロプログラムインストラクションプリフェッチャ1
-iを制御する。
【0022】また、この時に、シーケンスコントローラ
22は、これまで実行実体であったメインプログラムあ
るいはマクロプログラムに対するメインプログラムイン
ストラクションプリフェッチャ13およびメインプログ
ラムインスラクションプリデコーダ14、あるいは、マ
クロプログラムインストラクションプリフェッチャ15
-jおよびマクロプログラムインスラクションプリデコー
ダ16-jにおけるプリフェッチおよびプリデコードの処
理をそれまでの内容を保存したままで停止させる。
【0023】そして、新たに処理を開始した”マクロコ
マンド”が終了した際には、これらのプリフェッチおよ
びプリデコードの処理を停止させた状態から直ちに再開
させる。また、シーケンスコントローラ22は、このよ
うなプリフェッチおよびプリデコードを行う構成部の切
り換えに伴って、有効になったプリデコード結果が適切
にインストラクションデコーダ12に入力されるよう
に、マルチプレクサ18を適宜切り換える。
【0024】また、シーケンスコントローラ22は、メ
インプログラムおよび各マクロコマンドの実行の際に
は、メインプログラムカウンタ19またはマクロコマン
ドプログラムカウンタ21-iより入力されるプログラム
カウント値に基づいて、順次メインプログラムメモリ3
0およびマクロプログラムメモリ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および実行ユニット1
1に出力するプログラムコードを切り換えるのみでよ
い。そのため、これまで生じていたようなデータの退避
時のオーバーヘッドを無くすことができ、そのような分
岐や呼び出しを直ちに行うことができ、仮に分岐命令が
多用されても実行速度を損なうことなく、全体として処
理速度、処理効率を大幅に向上させることができる。
【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 (12)

    【特許請求の範囲】
  1. 【請求項1】一連のインストラクションを順次プリフェ
    ッチする複数のプリフェッチ手段と、 前記複数のプリフェッチ手段に対応して設けられ、前記
    プリフェッチしたインストラクションより、少なくとも
    処理順序が連続でなくなるインストラクションを検出す
    る複数のプリデコーダと、 前記プリデコーダにおいて前記処理順序が連続でなくな
    るインストラクションを検出した場合に、当該プリデコ
    ーダに対応した前記プリフェッチ手段とは異なる他のプ
    リフェッチ手段に、当該一連のインストラクションとは
    連続でない新たな一連のインストラクションをプリフェ
    ッチさせるプリフェッチ制御手段と、 前記複数のプリデコーダより、実行対象のインストラク
    ションを有するプリデコーダを順次選択し、当該インス
    トラクションを順次読み出す選択手段と、 前記読み出されたインストラクションに従った所定の処
    理を実行するプロセッサ手段とを有するプロセッサ装
    置。
  2. 【請求項2】前記プリフェッチ手段は、プログラムモジ
    ュールを適宜呼び出しながら所望の処理を実行するメイ
    ンプログラムを構成するインストラクションを順次プリ
    フェッチする第1のプリフェッチ手段と、各々所定の処
    理を行う複数の前記プログラムモジュールを構成するイ
    ンストラクションを順次プリフェッチする複数の第2の
    プリフェッチ手段とを有し、 前記プリフェッチ制御手段は、前記プリデコーダにおい
    て前記プログラムモジュールを呼び出すインストラクシ
    ョンを検出した場合に、前記他のプリフェッチ手段に、
    当該呼び出された新たなプログラムモジュールをプリフ
    ェッチさせる請求項1に記載のプロセッサ装置。
  3. 【請求項3】前記メインプログラムが記憶された第1の
    メモリ手段と、 前記複数のプログラムモジュールが記憶された第2のメ
    モリ手段とをさらに有し、 前記第1のプリフェッチ手段は、前記第1のメモリ手段
    より前記メインプログラムを構成する前記インストラク
    ションを順次プリフェッチし、 前記第2のプリフェッチ手段は、前記第2のメモリ手段
    より前記プログラムモジュールを構成する前記インスト
    ラクションを順次プリフェッチする請求項2に記載のプ
    ロセッサ装置。
  4. 【請求項4】前記複数の第2のプリフェッチ手段は、前
    記第2のメモリ手段に記憶されている前記複数のプログ
    ラムモジュールに各々対応付けられており、 前記プリフェッチ制御手段は、新たに呼び出す前記プロ
    グラムモジュールに対応付けられている前記第2のプリ
    フェッチ手段に、当該プログラムモジュールをプリフェ
    ッチさせる請求項3に記載のプロセッサ装置。
  5. 【請求項5】前記複数のプリフェッチ手段に対応付けら
    れた、複数のプログラムカウンタをさらに有する請求項
    4に記載のプロセッサ装置。
  6. 【請求項6】前記複数のプログラムモジュール各々の前
    記第2のメモリ手段におけるアドレス情報を有するテー
    ブルをさらに有し、 前記複数のプログラムカウンタの各々は、前記対応する
    プログラムモジュールのプリフェッチの際に、前記テー
    ブルを参照して初期値を決定する請求項5に記載のプロ
    セッサ装置。
  7. 【請求項7】前記第1のメモリ手段は、任意の書換え可
    能なメモリ手段であり、 前記第2のメモリ手段は、ROM(リ−ド・オンリ・メ
    モリ)により構成される請求項6に記載のプロセッサ装
    置。
  8. 【請求項8】プログラムモジュールを適宜呼び出しなが
    ら所望の処理を実行するメインプログラムを構成する一
    連のインストラクションを順次プリフェッチする第1の
    プリフェッチ手段と、 各々所定の処理を行う複数の前記プログラムモジュール
    を構成する一連のインストラクションを順次プリフェッ
    チする複数の第2のプリフェッチ手段と、 前記第1プリフェッチ手段および前記複数の第2のプリ
    フェッチ手段に各々対応して設けられ、前記プリフェッ
    チしたインストラクションより、少なくとも前記プログ
    ラムモジュールを呼び出すインストラクションを検出す
    る複数のプリデコーダと、 前記プリデコーダにおいて前記プログラムモジュールを
    呼び出すインストラクションを検出した場合に、当該プ
    リデコーダに対応した前記プリフェッチ手段とは異なる
    他のプリフェッチ手段に、当該呼び出された新たなプロ
    グラムモジュールをプリフェッチさせるプリフェッチ制
    御手段と、 前記複数のプリデコーダより、実行対象のインストラク
    ションを有するプリデコーダを選択し、当該インストラ
    クションを順次読み出す選択手段と、 前記読み出されたインストラクションに従った所定の処
    理を実行するプロセッサ手段とを有する集積回路。
  9. 【請求項9】前記複数のプログラムモジュールが記憶さ
    れたプログラムモジュール記憶手段をさらに有し、 前記第2のプリフェッチ手段は、前記プログラムモジュ
    ール記憶手段より前記プログラムモジュールを構成する
    前記インストラクションを順次プリフェッチする請求項
    8に記載の集積回路。
  10. 【請求項10】前記プログラムモジュール記憶手段は、
    ROM(リ−ド・オンリ・メモリ)として構成される請
    求項9に記載の集積回路。
  11. 【請求項11】前記メインプログラムが記憶されるメイ
    ンプログラム記憶手段をさらに有し、 前記第1のプリフェッチ手段は、前記メインプログラム
    記憶手段より前記メインプログラムを構成する前記イン
    ストラクションを順次プリフェッチする請求項10に記
    載の集積回路。
  12. 【請求項12】前記メインプログラム記憶手段は、フラ
    ッシュROMにより構成される請求項11に記載の集積
    回路。
JP00439899A 1999-01-11 1999-01-11 プロセッサ装置および集積回路 Expired - Fee Related JP3867427B2 (ja)

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 true JP2000207204A (ja) 2000-07-28
JP3867427B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521748A (ja) * 2007-03-14 2010-06-24 クゥアルコム・インコーポレイテッド 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001058065A2 (de) * 2000-02-04 2001-08-09 Siemens Aktiengesellschaft Parallele signalaufteilung und signalverarbeitung in multiplexvorrichtungen hoher ordnungszahl
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
US7353363B2 (en) * 2006-03-03 2008-04-01 Microsystems, Inc. Patchable and/or programmable decode using predecode selection
US7509481B2 (en) * 2006-03-03 2009-03-24 Sun Microsystems, Inc. Patchable and/or programmable pre-decode
US7962725B2 (en) * 2006-05-04 2011-06-14 Qualcomm Incorporated Pre-decoding variable length instructions
KR101504115B1 (ko) * 2007-03-12 2015-03-19 삼성전자 주식회사 매크로 명령 동작 장치와 매크로 명령 입력 장치 및 방법
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521748A (ja) * 2007-03-14 2010-06-24 クゥアルコム・インコーポレイテッド 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア

Also Published As

Publication number Publication date
US6654873B2 (en) 2003-11-25
US20030182535A1 (en) 2003-09-25
JP3867427B2 (ja) 2007-01-10

Similar Documents

Publication Publication Date Title
EP2519874B1 (en) Branching processing method and system
EP2137611B1 (en) System, method and software to preload instructions from an instruction set other than one currently executing
US5257359A (en) Instruction cache buffer with program-flow control
US20040088488A1 (en) Multi-threaded embedded processor using deterministic instruction memory to guarantee execution of pre-selected threads during blocking events
JP3867427B2 (ja) プロセッサ装置および集積回路
JPH10232829A (ja) マイクロプロセッサをベースとするシステムにおける、先取りハンドリングのための回路、システムおよび方法
JPH05233271A (ja) データプロセッサ
US4223381A (en) Lookahead memory address control system
JP2773471B2 (ja) 情報処理装置
US20060095746A1 (en) Branch predictor, processor and branch prediction method
JPH0830454A (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
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JP2000357090A (ja) マイクロコンピュータおよびキャッシュ制御方法
CN111124494B (zh) 一种cpu中加速无条件跳转的方法及电路
JPH0342723A (ja) データ処理装置
JP2817524B2 (ja) 命令キャッシュ制御方式
JP3325309B2 (ja) サブルーチンリターン命令処理装置
JP2001117819A (ja) 命令メモリ回路及び情報処理システム
JP4151497B2 (ja) パイプライン処理装置
JPH0855033A (ja) 情報処理装置
JPH07239782A (ja) 演算処理装置
JPH11306019A (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