JPH11327900A - 演算処理方法およびマイクロプロセッサ装置 - Google Patents

演算処理方法およびマイクロプロセッサ装置

Info

Publication number
JPH11327900A
JPH11327900A JP32417498A JP32417498A JPH11327900A JP H11327900 A JPH11327900 A JP H11327900A JP 32417498 A JP32417498 A JP 32417498A JP 32417498 A JP32417498 A JP 32417498A JP H11327900 A JPH11327900 A JP H11327900A
Authority
JP
Japan
Prior art keywords
instruction
word
data
phase
cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP32417498A
Other languages
English (en)
Inventor
Tetsuo Miyoshi
徹男 三好
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 JP32417498A priority Critical patent/JPH11327900A/ja
Publication of JPH11327900A publication Critical patent/JPH11327900A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】従来のインストラクションフェッチ方法では、
2ワード命令を実行しようとした時にインターロックが
かかり効率よく処理ができない。 【解決手段】マイクロプロセッサ装置10においては、
2ワード命令を取り込んだ時は、命令の命令語部(コー
ド部)をフェーズΦ1の期間に読み出し、付加語部を次
のサイクルのフェーズΦ2の期間に読み出す。フェーズ
Φ1の期間にプリフェッチキュー110から読み出され
た命令語は、IDステージのフェーズΦ1の終わりにイ
ンストラクションレジスタ(IR)170に取り込ま
れ、IDステージのフェーズΦ2の期間にインストラク
ションデコーダ190においてデコードされる。フェー
ズΦ2の期間にプリフェッチキュー110から読み出さ
れた命令の付加語は、フェーズΦ2の終わりに付加語レ
ジスタ180に取り込まれ、次のALUステージのフェ
ーズΦ1のフェーズから使われる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、効率よく順次パイ
プライン処理を行うことにより高速に所望の処理を行う
ことができる演算処理方法およびマイクロプロセッサ装
置に関する。
【0002】
【従来の技術】従来のパイプライン方式のマイクロプロ
セッサ装置における、プリフェッチキューからの命令の
読み出し方法について図8〜図10を参照して説明す
る。図8は、その従来のマイクロプロセッサ装置900
の命令フェッチに関する構成部を示すブロック図であ
る。また、図9はそのマイクロプロセッサ装置900に
おいて、1ワード命令および2ワード命令を取り込んだ
時の動作を説明するための図であり、図10は、その時
のリードポインタ920の動作を説明するための図であ
る。なお、ここでは、16ビットのCPUを有し、命令
セットとして1ワード命令と2ワード命令があるマイク
ロプロセッサ装置を想定する。
【0003】これまでのプリフェッチキュー910から
の命令読み出しは、図9に示すように、各サイクルの前
半期間であるフェーズΦ1に命令をプリフェッチキュー
910から読み出して、出力制御ゲート950および内
部データバス(IDB)960を介して、インストラク
ションレジスタ(IR)970にデータをIDステージ
のΦ1の終わりに取り込む。そして、IDステージのサ
イクルの後半期間であるフェーズΦ2において、インス
トラクションデコーダ990で命令のデコードが行われ
る。なお、このフェーズΦ2の期間は、出力制御ゲート
950の働きにより、内部データバス(IDB)960
にはデータガ保持される。
【0004】
【発明が解決しようとする課題】ところで、前述したよ
うな従来のインストラクションの読み込み方式では、2
ワード命令を実行しようとした時に、命令の開始にイン
ターロックがかかり、命令を1サイクルずつ順次行うこ
とができなくなるという問題がある。
【0005】具体的には、図9に示すように、命令2+
命令2(付加語2)、および、命令3+命令3(付加語
3)というような、命令として2ワード命令を読み出す
場合、命令2の付加語2をRFステージのフェーズΦ1
の期間に読み込んでおり、命令3のIDステージに1サ
イクルのインターロックがかかり、命令3の命令読み出
しは1サイクル遅れたフェーズ(サイクル4)で行われ
ていた。同様に、命令3の付加語3はRFステージのフ
ェーズΦ1に読み込まれるため、命令4の命令読みだし
は1サイクル遅れのサイクル6で行われていた。なお、
この時、このプリフェッチキューのリードポインタ92
0は、図10に示すように単純に+1ずつインクリメン
トされる。
【0006】したがって本発明の目的は、2ワード命令
が実行されても、次の命令の読み出し、すなわちその命
令の開始にインターロックがかかるのを防ぎ、効率よく
順次パイプライン処理が行え、その結果高速に所望の処
理が行える演算処理方法を提供することにある。また本
発明の他の目的は、2ワード命令が実行されても、次の
命令の読み出し、すなわちその命令の開始にインターロ
ックがかかるのを防ぎ、効率よく順次パイプライン処理
が行え、その結果高速に所望の処理が行えるマイクロプ
ロセッサ装置を提供することにある。
【0007】
【課題を解決するための手段】したがって、本発明の演
算処理方法は、順次入力される演算処理の種類を示す第
1のデータと必要に応じて前記第1のデータに対して付
加される第2のデータより構成される命令に基づいて、
各々所定のサイクル期間内に行われる複数のステージの
処理を順次行うことにより所望の演算処理を行う演算処
理方法であって、前記各サイクルの第1のフェーズにお
いて、前記順次入力される命令の前記第1のデータを獲
得し、前記獲得した第1のデータにより示される前記命
令が前記第2のデータを有する命令だった場合には、当
該第2のデータを、当該サイクルの次のサイクルの前記
第1のフェーズ以降の期間に獲得し、前記獲得した第1
のデータおよび第2のデータにより構成される命令を実
行する。
【0008】好適には、前記命令は、複数の前記命令を
記憶可能なバッファ手段に順次入力され、前記第1のデ
ータおよび前記第2のデータは、前記バッファ手段より
当該第1のデータおよび第2のデータを読み出して前記
獲得される。請求項1に記載の演算処理方法。
【0009】特定的には、前記第1のデータおよび前記
第2のデータは、1ワードとして示される前記獲得の単
位である所定のビット長のデータであり、前記各サイク
ル期間は、第1のフェーズおよび第2のフェーズの2つ
の期間を有し、前記獲得した第1のデータにより示され
る前記命令が前記第2のデータを有する命令だった場合
には、当該第2のデータを、次の命令の前記第1のデー
タが獲得される当該サイクルの次のサイクルの前記第1
のフェーズの期間に続く前記第2のフェーズの期間に獲
得する。
【0010】また特定的には、前記第1のデータは、1
ワードとして示される前記獲得の単位である所定のビッ
ト長のデータであり、前記第2のデータは、1つあるい
は複数の前記ワードのデータであり、前記各サイクル期
間は、第1のフェーズおよび第2のフェーズの2つの期
間を有し、前記獲得した第1のデータにより示される前
記命令が1ワードの前記第2のデータを有する命令だっ
た場合には、当該第2のデータを、次の命令の前記第1
のデータが獲得される当該サイクルの次のサイクルの前
記第1のフェーズの期間に続く前記第2のフェーズの期
間に獲得し、前記獲得した第1のデータにより示される
前記命令が2ワードの前記第2のデータを有する命令だ
った場合には、当該サイクルの次のサイクルの前記第1
のフェーズにおける次の命令の第1のデータの獲得を中
止し、当該2ワードの第2のデータを、前記次のサイク
ルの前記第1のフェーズおよび前記第2のフェーズの期
間に獲得し、前記2ワードの前記第2のデータを獲得し
たサイクルの次のサイクルの第1のフェーズより、前記
順次入力される命令の前記第1のデータの獲得を再開す
る。
【0011】また、本発明のマイクロプロセッサ装置
は、1の命令に対する処理を、各々所定のサイクル期間
内に行われる複数のステージの処理を順次行うことによ
り行うマイクロプロセッサ装置であって、順次入力され
る、演算処理の種類を示す命令語と必要に応じて前記命
令語に対して付加される付加語より構成される命令を記
憶するプリフェッチキューと、前記プリフェッチキュー
内の前記命令語の位置を示す命令語リードポインタと、
前記プリフェッチキュー内の前記付加語の位置を示す付
加語リードポインタと、前記プリフェッチキューより読
み出された前記命令語を記憶するインストラクションレ
ジスタと、前記プリフェッチキューより読み出された前
記付加語を記憶する付加語レジスタと、前記インストラ
クションレジスタに記憶された前記命令語をデコード
し、当該命令語の示す演算処理を行うための信号を生成
するインストラクションデコーダと、前記生成された信
号および前記前記記憶されている付加語に基づいて、当
該命令に基づく所望の処理を実行する演算処理手段と、
前記各サイクルの第1のフェーズにおいて、前記命令語
リードポインタにより示される前記命令語を前記インス
トラクションレジスタに記憶させ、当該命令語により示
される前記命令が前記付加語を有する命令だった場合に
は、当該付加語を、当該サイクルの次のサイクルの前記
第1のフェーズ以降の期間に、前記付加語リードポイン
タにより示される当該付加語を前記付加語レジスタに記
憶させる制御部とを有する。
【0012】好適には、前記各サイクル期間は、第1の
フェーズおよび第2のフェーズの2つの期間を有し、前
記インストラクションデコーダは、前記各サイクル期間
の第1のフェーズにおいて前記インストラクションレジ
スタに記憶された前記命令語を、当該サイクルの第2の
フェーズにおいてデコードし、前記制御部は、前記イン
ストラクションデコーダにおけるデコード結果に基づい
て、前記命令語により示される命令における前記付加語
の有無を検出する。
【0013】また好適には、前記制御部は、前記命令語
により示される命令が1ワードの前記付加語を有する命
令だった場合には、当該付加語を、次の命令の前記命令
語が獲得される当該サイクルの次のサイクルの前記第1
のフェーズの期間に続く前記第2のフェーズの期間に、
前記プリフェッチキューから前記付加語レジスタへ転送
する。
【0014】さらに好適には、前記制御部は、前記命令
語により示される命令が2ワードの前記付加語を有する
命令だった場合には、当該サイクルの次のサイクルの第
1のフェーズにおける次の命令の命令語の前記プリフェ
ッチキューからインストラクションレジスタへの転送を
中止し、当該2ワードの付加語を、前記次のサイクルの
前記第1のフェーズおよび前記第2のフェーズの期間
に、前記プリフェッチキューから前記付加語レジスタへ
転送する。
【0015】
【発明の実施の形態】本発明の一実施の形態について図
1〜図7を参照して説明する。本実施の形態において
は、マイクロプロセッサ装置の本発明に係わる命令フェ
ッチ&デコードステージ(ID)の実行に係わる構成部
について、その構成および動作を説明することにより、
本発明を説明する。
【0016】まず、本実施の形態のマイクロプロセッサ
装置で行うパイプライン処理について、図1および図2
を参照して説明する。まず、本実施の形態のマイクロプ
ロセッサ装置は、16ビットのCPUを有し、命令セッ
トとしては、命令1ワード(W)(2バイト(B))命
令、2W命令、3W命令があるものとする。そして、こ
のマイクロプロセッサ装置は、1つの命令の実行過程
を、図1に示すような,命令(インスラクション)フェ
ッチ&デコードステージ(ID)、レジスタフェッチス
テージ(RF)、演算実行ステージ(ALU)、メモリ
ーステージ(MEM)、ライトバックステージ(WB)
の5つのパイプラインステージに分割し、それらをオー
バラップ処理する。すなわち、複数の命令について、そ
の開始を1ステージ分ずつずらして、順次並行に行う。
【0017】これらの各ステージは、図2に示されるよ
うな基準信号(クロック)により規定される各サイクル
ごとに進行される。1つのサイクルは、その前半部分で
あるフェーズΦ1と、後半部分であるフェーズΦ2とに
分割される。この各フェーズの期間は、たとえば、サイ
クルを示す基準クロックのデューティ比などにより任意
に決定すればよく、本実施の形態においては50%とす
る。すなわち、フェーズΦ1とフェーズΦ2は、各々1
サイクルの1/2期間ずつの前半部分および後半部分と
する。また、各フェーズに対しては、そのフェーズの期
間において所定の信号レベル(本実施の形態においては
Hレベル)になるようなクロック(CLK1,CLK
2)が発生されており、後述する、マイクロプロセッサ
装置の各部の動作は、これらのクロック信号が参照され
て適宜所望のタイミングで実行される。
【0018】次に、本実施の形態のマイクロプロセッサ
装置の、本発明に係わる命令フェッチ&デコードステー
ジ(ID)の実行に係わる構成部について説明する。図
3は、その構成部を説明するための図である。マイクロ
プロセッサ装置100は、命令フェッチ&デコードステ
ージ(ID)の実行に係わる構成部として、プリフェッ
チキュー110、命令語リードポインタ120、付加語
リードポインタ130、切り換え器140、出力制御ゲ
ート150、内部データバス(IDB)160、インス
トラクションレジスタ(IR)170、付加語レジスタ
180、インストラクションデコーダ190およびフェ
ッチ制御部200を有する。
【0019】プリフェッチキュー110は、マイクロプ
ロセッサ装置100の図示せぬ演算処理部(CPU)に
て行う命令をメモリなどから予め読み出し記憶してお
く、数ワード分の容量のFIFO形式の記憶部である。
【0020】命令語リードポインタ120は、プリフェ
ッチキュー110の命令語が記憶されている記憶ワード
を指し示すポインタであって、フェッチ制御部200か
らの制御信号に基づいて、適宜1または2その指示値が
カウントアップされる。
【0021】付加語リードポインタ130は、プリフェ
ッチキュー110の付加語が記憶されている記憶ワード
を指し示すポインタであって、フェッチ制御部200か
らの制御信号に基づいて、適宜1または2その指示値が
カウントアップされる。
【0022】切り換え器140は、命令語リードポイン
タ120から出力される指示値および付加語リードポイ
ンタ130から出力される指示値のいずれか一方を、フ
ェッチ制御部200より入力される制御信号に基づいて
選択して、プリフェッチキュー110に印加する。
【0023】出力制御ゲート150は、プリフェッチキ
ュー110より読み出された命令語または付加語の、内
部データバス(IDB)160への出力を制御するため
のゲートである。プリフェッチキュー110に対して
は、各フェーズごとに印加されるポインタが制御され
る。したがって、出力制御ゲート150は、そのポイン
タに基づいて各フェーズごとにプリフェッチキュー11
0より出力される命令語または付加語のデータが、適切
に内部データバス(IDB)160に載るように、適宜
そのデータをラッチして内部データバス(IDB)16
0に出力する。
【0024】内部データバス(IDB)160は、マイ
クロプロセッサ装置内のデータバスであって、プリフェ
ッチキュー110の出力制御ゲート150、付加語レジ
スタ180、インストラクションレジスタ(IR)17
0などが接続されている。
【0025】インストラクションレジスタ(IR)17
0は、プリフェッチキュー110から出力される命令語
を、インストラクションデコーダ190に入力するため
に一時的に記憶するレジスタであり、フェッチ制御部2
00からの制御信号に基づいて適宜内部データバス(I
DB)160上のデータを記憶する。
【0026】付加語レジスタ180は、プリフェッチキ
ュー110から出力される付加語を、図示せぬ演算処理
部に入力するために一時的に記憶するレジスタであり、
フェッチ制御部200からの制御信号に基づいて適宜内
部データバス(IDB)160上のデータを記憶する。
【0027】インストラクションデコーダ190は、イ
ンストラクションレジスタ(IR)170を介して入力
される命令語をデコードし、その命令を実行するため
の、図示せぬ演算処理部に対する制御信号を生成する。
【0028】フェッチ制御部200は、マイクロプロセ
ッサ装置100の命令フェッチおよびデコードが適切に
行えるように、図示したような各部を制御する制御部で
ある。フェッチ制御部200は、まず、フェッチした命
令語の構成に基づいて、命令語リードポインタ120の
ポイント指示値のカウントアップの状態を、(1)に示
すように制御する。なお、命令語の構成は、フェーズΦ
1でフェッチした命令語をフェーズΦ2にインストラク
ションデコーダ190でデコードすることにより検出さ
れるものである。また、これに基づく命令語リードポイ
ンタ120の実施のカウントアップは、命令語をフェッ
チした次のサイクルのフェーズΦ1の最初で行う。
【0029】
【数1】 IRP(next) = IRP(before) + 1 :1ワード命令をフェッチした場合 IRP(next) = IRP(before) + 2 :2ワード命令をフェッチした場合、または、 3ワード命令をフェッチした場合 …(1)
【0030】(1)において、IRP(next)は、
次の命令語のリードポイント、IRP(before)
は、直前の命令語のリードポイントを示す。また、
(1)とは別に、3ワード命令をフェッチした場合に
は、その命令をフェッチした2サイクル後のサイクルの
フェーズΦ1の最初で命令語リードポインタ120のカ
ウウト値を1カウントアップするように、フェッチ制御
部200は命令語リードポインタ120を制御する。
【0031】また、フェッチ制御部200は、命令語リ
ードポインタ120の指示するアドレスに基づいて命令
語がフェッチされた場合に、命令語リードポインタ12
0のポイント命令語リードポインタ120のポイント指
示値と付加語リードポインタ130のポイント指示値と
の関係に基づいて、その命令語がフェッチされたサイク
ルの次のサイクルのフェーズΦ1の開始タイミングにお
ける付加語リードポインタ130のポイント指示値のカ
ウントアップの状態を、(2)に示すように制御する。
【0032】
【数2】 FRP(next) = FRP(before) + 1 :IRP == FRPの場合 FRP(next) = FRP(before) + 2 :IRP != FRPの場合 …(2)
【0033】なお、(2)において、FRP(nex
t)は、次の付加語のリードポイント、FRP(bef
ore)は、直前の付加語のリードポイントを示す。ま
た、(2)とは別に、3ワード命令がフェッチされた場
合には、その命令をフェッチした2サイクル後のサイク
ルのフェーズΦ1の最初で付加語リードポインタ130
のカウウト値を1カウントアップするように、フェッチ
制御部200は付加語リードポインタ130を制御す
る。
【0034】また、フェッチ制御部200は、各フェー
ズΦ1では命令語リードポインタ120の出力が、各フ
ェーズΦ2では付加語リードポインタ130の出力が、
各々プリフェッチキュー110に入力されるように、切
り換え器140を制御する。
【0035】さらに、フェッチ制御部200は、インス
トラクションレジスタ(IR)170および付加語レジ
スタ180における、内部データバス(IDB)160
からのデータの取り込みを制御する。インストラクショ
ンレジスタ(IR)170に対しては、フェッチ制御部
200は、インターロックがかかった時以外の全てのサ
イクルにおいて、そのフェーズΦ1において内部データ
バス(IDB)160上のデータを取り込むように制御
を行う。また、付加語レジスタ180に対しては、2ワ
ード命令が検出された次のサイクルのフェーズΦ2、お
よび、3ワード命令が検出された次のサイクルのフェー
ズΦ1とフェーズΦ2の両方、において、各々内部デー
タバス(IDB)160上のデータを取り込むように制
御を行う。
【0036】次に、これらマイクロプロセッサ装置10
0の命令フェッチ&デコードステージ(ID)の実行に
係わる構成部の動作について説明する。まず、1ワード
命令および2ワード命令を取り込んだ時のマイクロプロ
セッサ装置100の動作について図4および図5を参照
して説明する。1ワード命令および2ワード命令を取り
込んだ時は、マイクロプロセッサ装置10においては、
命令の命令語部(コード部)をフェーズΦ1の期間に読
み出し、命令の付加語部をフェーズΦ2の期間に読み出
すようにする。フェーズΦ1の期間にプリフェッチキュ
ー110から読み出された命令語は、従来と同様にID
ステージのフェーズΦ1の終わりにインストラクション
レジスタ(IR)170に取り込まれ、IDステージの
フェーズΦ2の期間にインストラクションデコーダ19
0においてデコードされる。また、フェーズΦ2の期間
にプリフェッチキュー110から読み出された命令の付
加語は、フェーズΦ2の終わりに付加語レジスタ180
に取り込まれ、次のALUステージのフェーズΦ1のフ
ェーズから使われることになる。
【0037】具体的に、図4を参照して説明する。図4
に示すように、1ワード命令の命令1、2ワード命令の
命令2,命令3、1ワード命令の命令4,命令5が、プ
リフェッチキュー110に順次入力されたとすると、従
来は、図10に示すように、3サイクル目の命令3のI
Dステージ、および、5サイクル目の命令4のIDステ
ージにおいて、インターロックをかけていた。しかし、
マイクロプロセッサ装置100においては、3サイクル
目のフェーズΦ1で命令3の命令語の読み出しが行わ
れ、同じサイクルのフェーズΦ2で命令語2に付加され
ている付加語2の読み出しが行われる。
【0038】同様に、4サイクル目のフェーズΦ1で、
命令4の命令語の読み出しが行われ、同サイクルのフェ
ーズΦ2で命令3の付加語3の読み出しが行われる。な
お、これらのサイクルにおいては、内部データバス(I
DB)160には、サイクルの前半(フェーズΦ1の期
間)に命令語、サイクルの後半(フェーズΦ2の期間)
に付加語が載ることになる。したがって、本実施の形態
の方式ではインターロックをかける必要はなく、従来と
同様の5命令をフェッチし終えるのに合計5サイクルで
済む。
【0039】マイクロプロセッサ装置100がこのよう
な動作をする時の、命令語リ ドポインタ120および
付加語リードポインタ130の動作について、図5を参
照して説明する。まず、サイクル1のフェーズΦ1で、
1ワード命令の命令1が取り込まれ、フェーズ2でデコ
ードされる。その結果、命令1には付加語がないことが
判明する。そこで、この場合、命令語リードポインタ1
20および付加語リードポインタ130ともに1ずつイ
ンクリメントされる。この場合、両ポインタの指し示す
位置は同じなので、内部データバス(IDB)160に
は、1サイクルにわたって同一のデータが載ることにな
る。
【0040】サイクル2の命令2の命令語をフェーズΦ
1で取り込んでフェーズΦ2でデコードすることで、命
令2には付加語としてもう1Wあることがわかる。そこ
で、この場合、命令語リードポインタ120を2インク
リメントして、4番目の命令3の位置に進める。一方、
付加語リードポインタ130の方は1インクリメントし
て3番目の命令2の付加語2の位置に進める。その結
果、サイクル3では、図4に示すように、内部データバ
ス(IDB)160上に、フェーズΦ1で命令3の命令
語が出力され、フェーズΦ2で命令2の付加語2が出力
される。
【0041】次に、サイクル3のIDステージのフェー
ズΦ2で命令3の命令語のデコードを行うことで、命令
3には付加語としてもう1Wあることが分かる。そのた
め、サイクル4では、命令語リードポインタ120を2
インクリメントして6番目の命令4の位置に進める。一
方、付加語リードポインタ130は、先の3番目の位置
から2インクリメントした5番目の命令3の付加語3の
位置に進める。
【0042】次に、サイクル4のフェーズΦ2のフェー
ズで 命令4のインストラクションデコードを行うこと
で、命令4は1Wの命令であることがわかる。従って、
サイクル5では、命令語リードポインタを通常通り1イ
ンクリメントして7番目の命令5の位置に進める。一
方、付加語リードポインタは、先の5番目の位置から2
インクリメントした7番目の命令5の位置に進める。
【0043】次に、3ワード命令を含む一連の命令を取
り込んだ場合のマイクロプロセッサ装置100の動作に
ついて、図6および図7を参照して説明する。3ワード
命令の場合は、命令語リードポインタ120を次の命令
の命令語の位置に移動するには、ポインタを3インクリ
メントする必要があり、さらに、付加語の取り込みがR
Fステージ以外のたとえばALUステージで行われるよ
うになるため、これらのステージ間での付加語のリソー
ス競合などが起きるようになる。したがって、この場合
は次の命令の実行前に1回のインターロックをかけ、1
サイクルを費やして付加語を読み込むようにする。
【0044】たとえば、図6に示すように、サイクル2
のIDステージの命令デコードで、命令2はさらに2ワ
ードの付加語を持っていることがわかる。この場合、命
令3のIDステージに1回のインターロックをかけ、命
令の取り込みを1サイクル遅らせる。サイクル3ではフ
ェーズΦ1で付加語21を取り込み、同じサイクルのフ
ェーズΦ2で付加語22を取り込む。これらのデータ
は、付加語としてCPUに取り込まれる。この場合、フ
ェーズΦ1で命令語ではない付加語を取り込むようにし
ている。そのため、この期間では命令のデコードは行わ
れず、前述したように、命令3のIDステージは1サイ
クル遅れる。
【0045】マイクロプロセッサ装置100がこのよう
な動作をする時の、命令語リードポインタ120および
付加語リードポインタ130の動作について、図7を参
照して説明する。まず、サイクル1のフェーズΦ1で命
令1が取り込まれ、フェーズΦ2で取り込まれた命令が
デコードされる。その結果、命令1は付加語がない1ワ
ード命令であることが判明するので、命令語リードポイ
ンタ120は1インクリメントされる。またこの時、命
令語リードポインタ120の指示値と付加語リードポイ
ンタ130の指示値は等しいので、付加語リードポイン
タ130も1インクリメントされる。
【0046】次に、サイクル2のフェーズΦ1で命令2
を取り込みフェーズΦ2でデコードすると、この命令2
が2つの付加語を有する3ワード命令であることが判明
する。その結果、命令語リードポインタ120は2イン
クリメントされる。また、サイクル2において命令語リ
ードポインタ120の指示値と付加語リードポインタ1
30の指示値は等しいので、付加語リードポインタ13
0の指示値は1インクリメントされる。
【0047】そして、命令2が3ワード命令であるため
に、次のサイクル3はインターロックがかけられ、命令
語のフェッチは行われず、フェーズΦ1およびフェーズ
Φ2とも付加語が取り込まれる。すなわち、サイクル3
のフェーズΦ1においては命令語リードポインタ120
から出力されるアドレスが、フェーズΦ2においては付
加語リードポインタ130から出力されるアドレスが各
々選択されてプリフェッチキュー110に印加され、プ
リフェッチキュー110より出力された2つの付加語が
各々付加語レジスタ180に転送される。
【0048】このような3ワード命令の場合には、図7
に示すように、命令語リードポインタ120が指示して
いる付加語リードポインタ130が指示しているアドレ
スよりも大きなアドレスの方が先にアクセスされ、付加
語の取り込む順番が従来とは逆になる。しかしこれは、
図7に示すように、3ワード命令の場合には、予め記憶
する付加語の順番を変えておくことにより、従来と同じ
順番で付加語を取り込むことができるものであり、問題
とはならない。
【0049】サイクル3からサイクル4に移る時には、
サイクル2が3ワード命令をフェッチしたサイクルであ
ったために、命令語リードポインタ120および付加語
リードポインタ130はともに1インクリメントされ
る。その結果、サイクル4においては、命令語リードポ
インタ120と付加語リードポインタ130はともに、
命令3の格納位置である同一のアドレスを示す状態とな
る。
【0050】サイクル4は、通常のサイクルなので、フ
ェーズΦ1で命令3が取り込まれフェーズΦ2でデコー
ドされる。その結果、命令3が2ワード命令であること
が判明し、サイクル5に移る時に命令語リードポインタ
120は2インクリメントされる。また、サイクル4に
おいては、命令語リードポインタ120と付加語リード
ポインタ130の指示値が同じなので、付加語リードポ
インタ130は1インクリメントされる。そして、サイ
クル5において、フェーズΦ1で命令4が取り込まれる
とともに、フェーズΦ2では命令3の付加語3が読み出
され、付加語レジスタ180に転送される。さらに、命
令4は1ワード命令なので、命令語リードポインタ12
0は1インクリメントされ、サイクル5においては命令
語リードポインタ120と付加語リードポインタ130
の指示値が異なるので、付加語リードポインタ130は
2インクリメントされる。その結果、サイクル6におい
ては、命令語リードポインタ120および付加語リード
ポインタ130はともに、命令5の格納位置である同一
のアドレスを示す状態となる。
【0051】このように、従来、プリフェッチキュー1
10からの命令読み出しの際、付加語をともなう命令で
は、付加語を読み出すために、次の命令の読み出しにイ
ンターロックをかける必要があったが、本発明では、付
加語が1つの2ワード命令では付加語および次の命令を
1サイクルの間に同時に取り込むことによりインターロ
ックをなくし、また付加語が2つ以上ある命令において
もインターロックを極力少なくするようにして、効率よ
く命令を読み出すことができる。
【0052】なお、本発明のマイクロプロセッサ装置
は、本実施例に限られるものではなく、種々の改変が可
能である。たとえば、バスに対する制御などは、任意の
方法でよい。たとえば、1ワード命令を読み込む場合な
どであって、命令語リードポインタ120と付加語リー
ドポインタ130の指し示す位置が同じなら、フェーズ
Φ2の期間にはバスをドライブしないように制御しても
よい。また、命令語リードポインタ120および付加語
リードポインタ130のカウントアップの条件なども、
本実施の形態の条件式に限られるものではなく、任意に
決定してよい。
【0053】また、本実施の形態のマイクロプロセッサ
装置100は、1ワード命令〜3ワード命令を有するも
のとしたが、それ以上の付加語を有する命令セットを有
するマイクロプロセッサ装置に対しても、同様の方法に
より適用できることができる。そして、この場合におい
ても、従来の方法により単純にインターロックをしてし
まう方法に比べて、インターロックの割合を減らすこと
ができる。また、2ワード命令までしか有しないような
マイクロプロセッサ装置に対しても適用可能である。そ
の場合には、本実施の形態の説明の中の、3ワード命令
に係わる部分を単純に削除すればよく、より簡単な構成
のマイクロプロセッサ装置が実現できる。
【0054】
【発明の効果】以上説明したように、本発明によれば、
プリフェッチキューから付加語をともなう命令を読み出
す際に、付加語および次の命令と同じサイクルで実質的
に同時に読み込むことができ、次の命令の開始にインタ
ーロックをかける必要をなくすことができる。その結
果、たとえば2ワード命令が実行されても、効率よく順
次パイプライン処理が行え、高速に所望の処理が行える
演算処理方法およびマイクロプロセッサ装置を提供する
ことができる。
【図面の簡単な説明】
【図1】図1は、本発明の一実施の形態のマイクロプロ
セッサ装置で行うパイプライン処理を説明するための図
である。
【図2】図2は、本発明の一実施の形態のマイクロプロ
セッサ装置の基準サイクル信号およびサイクル内のフェ
ーズを説明するための図である。
【図3】図3は、本発明の一実施の形態のマイクロプロ
セッサ装置の命令フェッチに関する構成部を示すブロッ
ク図である。
【図4】図4は、図3に示したマイクロプロセッサ装置
において、1ワード命令および2ワード命令を取り込ん
だ時の動作を説明するための図である。
【図5】図5は、図3に示したマイクロプロセッサ装置
において、1ワード命令および2ワード命令を取り込ん
だ時の命令語リードポインタおよび付加語リードポイン
タの動作を説明するための図である。
【図6】図6は、図3に示したマイクロプロセッサ装置
において、3ワード命令を取り込んだ時の動作を説明す
るための図である。
【図7】図7は、図3に示したマイクロプロセッサ装置
において、3ワード命令を取り込んだ時の命令語リード
ポインタおよび付加語リードポインタの動作を説明する
ための図である。
【図8】図8は、従来のマイクロプロセッサ装置100
の命令フェッチに関する構成部を示すブロック図であ
る。
【図9】図9は、図8に示したマイクロプロセッサ装置
において、1ワード命令および2ワード命令を取り込ん
だ時の動作を説明するための図である。
【図10】図10は、図8に示したマイクロプロセッサ
装置において、1ワード命令および2ワード命令を取り
込んだ時のリードポインタの動作を説明するための図で
ある。
【符号の説明】
100…マイクロプロセッサ装置、110…プリフェッ
チキュー、120…命令語リードポインタ、130…付
加語リードポインタ、140…切り換え器、150…出
力制御ゲート、160…内部データバス(IDB)、1
70…インストラクションレジスタ(IR)、180…
付加語レジスタ、190…インストラクションデコー
ダ、200…フェッチ制御部、900…従来のマイクロ
プロセッサ装置、910…プリフェッチキュー、920
…リードポインタ、950…出力制御ゲート、960…
内部データバス(IDB)、970…インストラクショ
ンレジスタ(IR)、990…インストラクションデコ
ーダ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】順次入力される演算処理の種類を示す第1
    のデータと必要に応じて前記第1のデータに対して付加
    される第2のデータより構成される命令に基づいて、各
    々所定のサイクル期間内に行われる複数のステージの処
    理を順次行うことにより所望の演算処理を行う演算処理
    方法であって、 前記各サイクルの第1のフェーズにおいて、前記順次入
    力される命令の前記第1のデータを獲得し、 前記獲得した第1のデータにより示される前記命令が前
    記第2のデータを有する命令だった場合には、当該第2
    のデータを、当該サイクルの次のサイクルの前記第1の
    フェーズ以降の期間に獲得し、 前記獲得した第1のデータおよび第2のデータにより構
    成される命令を、実行する演算処理方法。
  2. 【請求項2】前記命令は、複数の前記命令を記憶可能な
    バッファ手段に順次入力され、 前記第1のデータおよび前記第2のデータは、前記バッ
    ファ手段より当該第1のデータおよび第2のデータを読
    み出して前記獲得される請求項1に記載の演算処理方
    法。
  3. 【請求項3】前記第1のデータおよび前記第2のデータ
    は、1ワードとして示される前記獲得の単位である所定
    のビット長のデータであり、 前記各サイクル期間は、第1のフェーズおよび第2のフ
    ェーズの2つの期間を有し、 前記獲得した第1のデータにより示される前記命令が前
    記第2のデータを有する命令だった場合には、当該第2
    のデータを、次の命令の前記第1のデータが獲得される
    当該サイクルの次のサイクルの前記第1のフェーズの期
    間に続く前記第2のフェーズの期間に獲得する請求項2
    に記載の演算処理方法。
  4. 【請求項4】前記第1のデータは、1ワードとして示さ
    れる前記獲得の単位である所定のビット長のデータであ
    り、 前記第2のデータは、1つあるいは複数の前記ワードの
    データであり、 前記各サイクル期間は、第1のフェーズおよび第2のフ
    ェーズの2つの期間を有し、 前記獲得した第1のデータにより示される前記命令が1
    ワードの前記第2のデータを有する命令だった場合に
    は、当該第2のデータを、次の命令の前記第1のデータ
    が獲得される当該サイクルの次のサイクルの前記第1の
    フェーズの期間に続く前記第2のフェーズの期間に獲得
    し、 前記獲得した第1のデータにより示される前記命令が2
    ワードの前記第2のデータを有する命令だった場合に
    は、当該サイクルの次のサイクルの前記第1のフェーズ
    における次の命令の第1のデータの獲得を中止し、当該
    2ワードの第2のデータを、前記次のサイクルの前記第
    1のフェーズおよび前記第2のフェーズの期間に獲得
    し、 前記2ワードの前記第2のデータを獲得したサイクルの
    次のサイクルの第1のフェーズより、前記順次入力され
    る命令の前記第1のデータの獲得を再開する請求項2に
    記載の演算処理方法。
  5. 【請求項5】1の命令に対する処理を、各々所定のサイ
    クル期間内に行われる複数のステージの処理を順次行う
    ことにより行うマイクロプロセッサ装置であって、 順次入力される、演算処理の種類を示す命令語と必要に
    応じて前記命令語に対して付加される付加語より構成さ
    れる命令を記憶するプリフェッチキューと、 前記プリフェッチキュー内の前記命令語の位置を示す命
    令語リードポインタと、 前記プリフェッチキュー内の前記付加語の位置を示す付
    加語リードポインタと、 前記プリフェッチキューより読み出された前記命令語を
    記憶するインストラクションレジスタと、 前記プリフェッチキューより読み出された前記付加語を
    記憶する付加語レジスタと、 前記インストラクションレジスタに記憶された前記命令
    語をデコードし、当該命令語の示す演算処理を行うため
    の信号を生成するインストラクションデコーダと、 前記生成された信号および前記前記記憶されている付加
    語に基づいて、当該命令に基づく所望の処理を実行する
    演算処理手段と、 前記各サイクルの第1のフェーズにおいて、前記命令語
    リードポインタにより示される前記命令語を前記インス
    トラクションレジスタに記憶させ、当該命令語により示
    される前記命令が前記付加語を有する命令だった場合に
    は、当該付加語を、当該サイクルの次のサイクルの前記
    第1のフェーズ以降の期間に、前記付加語リードポイン
    タにより示される当該付加語を前記付加語レジスタに記
    憶させる制御部とを有するマイクロプロセッサ装置。
  6. 【請求項6】前記各サイクル期間は、第1のフェーズお
    よび第2のフェーズの2つの期間を有し、 前記インストラクションデコーダは、前記各サイクル期
    間の第1のフェーズにおいて前記インストラクションレ
    ジスタに記憶された前記命令語を、当該サイクルの第2
    のフェーズにおいてデコードし、 前記制御部は、前記インストラクションデコーダにおけ
    るデコード結果に基づいて、前記命令語により示される
    命令における前記付加語の有無を検出する請求項5に記
    載のマイクロプロセッサ装置。
  7. 【請求項7】前記制御部は、 前記命令語により示される命令が1ワードの前記付加語
    を有する命令だった場合には、当該付加語を、次の命令
    の前記命令語が獲得される当該サイクルの次のサイクル
    の前記第1のフェーズの期間に続く前記第2のフェーズ
    の期間に、前記プリフェッチキューから前記付加語レジ
    スタへ転送する、 請求項6に記載のマイクロプロセッサ装置。
  8. 【請求項8】前記制御部は、 前記命令語により示される命令が2ワードの前記付加語
    を有する命令だった場合には、当該サイクルの次のサイ
    クルの第1のフェーズにおける次の命令の命令語の前記
    プリフェッチキューから前記インストラクションレジス
    タへの転送を中止し、当該2ワードの付加語を、前記次
    のサイクルの前記第1のフェーズおよび前記第2のフェ
    ーズの期間に、前記プリフェッチキューから前記付加語
    レジスタへ転送する請求項7に記載のマイクロプロセッ
    サ装置。
JP32417498A 1998-03-20 1998-11-13 演算処理方法およびマイクロプロセッサ装置 Pending JPH11327900A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32417498A JPH11327900A (ja) 1998-03-20 1998-11-13 演算処理方法およびマイクロプロセッサ装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10-72039 1998-03-20
JP7203998 1998-03-20
JP32417498A JPH11327900A (ja) 1998-03-20 1998-11-13 演算処理方法およびマイクロプロセッサ装置

Publications (1)

Publication Number Publication Date
JPH11327900A true JPH11327900A (ja) 1999-11-30

Family

ID=26413168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32417498A Pending JPH11327900A (ja) 1998-03-20 1998-11-13 演算処理方法およびマイクロプロセッサ装置

Country Status (1)

Country Link
JP (1) JPH11327900A (ja)

Similar Documents

Publication Publication Date Title
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
EP0438961A2 (en) Hardware data string operation controller
JP3242508B2 (ja) マイクロコンピュータ
JPH05158687A (ja) プログラム制御方法及びプログラム制御装置
JPH03233630A (ja) 情報処理装置
EP0279953A2 (en) Computer system having mixed macrocode and microcode instruction execution
JP2002229779A (ja) 情報処理装置
JPH11327900A (ja) 演算処理方法およびマイクロプロセッサ装置
KR920002573B1 (ko) 데이타 처리기
JPH0512751B2 (ja)
KR100396189B1 (ko) 디지털신호 처리장치 및 그 제어방법
JP2861560B2 (ja) データ処理装置
KR100197783B1 (ko) 파이프라인 처리기능을 갖는 데이타프로세서
JPS6134188B2 (ja)
JP2668987B2 (ja) データ処理装置
JPH0651984A (ja) マイクロプロセッサ
JP2000066893A (ja) 演算処理装置
JP3211791B2 (ja) ループ処理方式
JPS6116112B2 (ja)
JP2825315B2 (ja) 情報処理装置
JP2673041B2 (ja) 命令実行制御方式
JPH04275603A (ja) プログラマブル・コントローラ
JPS63163634A (ja) 命令フエツチ方式
WO2020175074A1 (ja) 中央演算処理装置
JPH0317135B2 (ja)