JP2002268876A - パイプライン処理方法、及び情報処理装置 - Google Patents

パイプライン処理方法、及び情報処理装置

Info

Publication number
JP2002268876A
JP2002268876A JP2001072143A JP2001072143A JP2002268876A JP 2002268876 A JP2002268876 A JP 2002268876A JP 2001072143 A JP2001072143 A JP 2001072143A JP 2001072143 A JP2001072143 A JP 2001072143A JP 2002268876 A JP2002268876 A JP 2002268876A
Authority
JP
Japan
Prior art keywords
state
processing
stage
instruction
dma transfer
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
JP2001072143A
Other languages
English (en)
Inventor
Takayuki Matsuda
高幸 松田
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2001072143A priority Critical patent/JP2002268876A/ja
Publication of JP2002268876A publication Critical patent/JP2002268876A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 1回のフェッチステージで複数の命令を同時
に読み込むようにした複数語フェッチ式のパイプライン
処理を行う情報処理装置において、DMA転送によるパ
イプライン処理の中断があっても、フェッチステージで
はメモリから命令を正常に読み込むために必要なアクセ
スタイムを十分に確保できるようにする。 【解決手段】 IFステージの処理の開始時に、DMA
転送要求信号DRSがアクティブレベル(論理0)の場
合には(t5 )、IFステージの処理の開始を一時中止
して、DMA転送制御装置7によるDMA転送を先に行
ってから(t5 〜t7 )、IFステージの処理を行い
(t7 〜t9 )、また、IFステージの処理を行ってい
る最中に、DMA転送要求信号DRSがアクティブレベ
ルになった場合には(t4 )、既に行っているIFステ
ージの処理が終了してから(t5 )、DMA転送処理を
行う(t5 〜t7 )。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1回のフェッチス
テージでメモリから2つの命令を同時に読み込むように
した2語フェッチ式のパイプライン処理方法、及びその
方法を採用した情報処理装置に関する。
【0002】
【従来の技術】従来より、メモリから命令を読み込んで
実行するための処理機能を、複数種類のステージに分
け、並列して異なるステージの動作を行うことにより、
複数の命令処理サイクルを部分的に重複したタイミング
で実行するパイプライン処理方法を採用した情報処理装
置が知られている。
【0003】そして更に、この種の情報処理装置とし
て、処理速度をより高速化するために、メモリから2つ
の命令を1度に読み込むようにした2語フェッチ式のパ
イプライン処理を行うものが提案されている(例えば、
本出願人による特願平10−301776号)。
【0004】ここで、こうした2語フェッチ式のパイプ
ライン処理を行う情報処理装置の基本的な動作につい
て、5段パイプライン処理を行う図11に示したCPU
(マイクロプロセッサ)100を例に挙げて説明する。
まず、図11に示すように、この従来例のCPU100
は、データバス1とアドレスバス2を介して、プログラ
ムを格納したROM等からなる命令格納用のメモリ3に
接続されると共に、データバス4とアドレスバス5を介
して、RAM等からなるデータ格納用メモリ6に接続さ
れる。また、メモリ3には、CPU100が1回のアク
セスで2つの命令を同時に読み込むことができるように
するため、その1アドレス当りに、偶数アドレスの命令
とそれに続く奇数アドレスの命令とが1組にされて格納
されている。よって、CPU100は、メモリ3から
「命令0」と「命令1」,「命令2」と「命令3」,
「命令4」と「命令5」、といった具合に、偶数アドレ
スの命令とそれに続く奇数アドレスの命令とを一緒に読
み込むこととなる。
【0005】次に、このCPU100では、処理機能
を、メモリ3から命令レジスタ内へ2つの命令を同時に
読み込むIF(フェッチ)ステージと、IFステージで
命令レジスタ内に読み込まれた2つの命令を1つずつ解
読するDEC(デコード)ステージと、DECステージ
で解読された命令の内容に応じて、IFステージで読み
込むべき命令のアドレスやメモリ6へアクセスする際の
アドレス等を演算するEXE(実行)ステージと、DE
Cステージで解読された命令の内容に応じて、EXEス
テージでの演算結果をアドレスとしてメモリ6へのアク
セス(即ち、データの読み込み或いは書き込み)を行う
MA(メモリアクセス)ステージと、DECステージで
解読された命令の内容に応じて、演算データ或いはメモ
リ6からのデータを内部レジスタに書き込むWB(ライ
トバツク)ステージとの、5つのステージに分割してい
る。
【0006】そして、このCPU100は、IFステー
ジの動作を、動作用の基本クロック(所謂システムクロ
ック)が2回発生する毎に行うと共に、他のステージの
動作を、基本クロックが1回発生する毎に行い、図12
の如き並列関係にてパイプライン処理を実施する。
【0007】即ち、図12に示すように、n番目の命令
処理サイクルC100では、まずIFステージにて、メ
モリ3から命令レジスタ内へ2つの命令を同時に読み込
み、次にDECステージにて、上記読み込んだ2命令の
うちの最初の命令(つまり、偶数アドレスの命令)を解
読し、続くEXEステージにて、上記解読した命令の内
容に応じた演算を行う。そして、上記解読した命令がメ
モリ6へアクセスする命令ならば、続くMAステージに
て、メモリ6へのアクセス(データの読み込み或いは書
き込み:リード/ライト)が行われ、最後にWBステー
ジにて、演算データ或いはメモリ6からのデータが内部
レジスタに格納される。
【0008】また、n+1番目の命令処理サイクルC1
01では、IFステージの動作が行われず、その命令処
理サイクルC101のDECステージの動作は、命令処
理サイクルC100のEXEステージと並列に行われ
る。そして、この命令処理サイクルC101では、DE
Cステージにて、命令処理サイクルC100のIFステ
ージで読み込んだ2命令のうちの2番目の命令(つま
り、奇数アドレスの命令)を解読し、続くEXEステー
ジ以降の各ステージの動作は、命令処理サイクルC10
0の場合と同様に行われていく。
【0009】そして、図12では、n番目からn+5番
目までの6つの命令処理サイクルC100〜C105し
か図示されていないが、前述した2つの命令処理サイク
ルC100,C101と同様の動作が繰り返されること
となる。具体的には、n番目の命令処理サイクルC10
0のDECステージとn+1番目の命令処理サイクルC
101のDECステージとの期間に亘って、n+2番目
の命令処理サイクルC102のIFステージの動作が行
われ、その命令処理サイクルC102のEXEステージ
のときに、IFステージを持たないn+3番目の命令処
理サイクルC103のDECステージの動作が行われ
る。そして更に、n+2番目の命令処理サイクルC10
2のDECステージとn+3番目の命令処理サイクルC
103のDECステージとの期間に亘って、n+4番目
の命令処理サイクルC104のIFステージの動作が行
われ、その命令処理サイクルC104のEXEステージ
のときに、IFステージを持たないn+5番目の命令処
理サイクルC105のDECステージの動作が行われ
る、といった具合に、複数の命令処理サイクルにおける
異なるステージの動作が並列に行われる。
【0010】
【発明が解決しようとする課題】ところで、このような
2語フェッチ式のパイプライン処理を行う従来のCPU
100では、IFステージのときに、命令系バス1,2
に接続されたDMA制御装置(図示せず)によるDMA
転送の処理要求があった場合、IFステージが分断され
てしまい、命令を正常に取り込むことができないという
問題があった。
【0011】例えば、図12において、命令処理サイク
ルC102のDECステージ処理中、つまり、命令処理
サイクルC104のIFステージの処理前半部に、DM
A転送の処理要求があると、CPU100は、命令処理
サイクルC102のDECステージを処理した後、処理
を一旦中断することになる。
【0012】その後、DMA転送が終了し、その処理要
求が取り下げられると、CPU100は、先に中断した
次のステージ、つまり、命令処理サイクルC102のE
XEステージから処理を再開する。ここでCPUは、複
数の命令処理サイクルにおける異なるステージの処理を
並列に行っているため、命令処理サイクルC104のI
Fステージの後半部を実行することになる。
【0013】このように、DMA転送によりIFステー
ジが分断されると、命令格納用メモリから命令を読み出
すために必要なアクセスタイムを十分に確保できず、C
PUは命令を正しく取り込むことができなくなってしま
うのである。そこで、本発明は、上記問題点を解決する
ために、1回のフェッチステージで複数の命令を同時に
読み込むようにした複数語フェッチ式のパイプライン処
理を行う情報処理装置において、DMA転送によるパイ
プライン処理の中断があっても、フェッチステージでは
メモリから命令を正常に読み込むために必要なアクセス
タイムを十分に確保できるようにすることを目的とす
る。
【0014】
【課題を解決するための手段】上記目的を達成するため
の発明である請求項1記載の複数語フェッチ式のパイプ
ライン処理方法では、フェッチステージ(IF)の処理
の開始タイミングで、メモリ(3)と同一のバス(1,
2)を使用するDMA転送要求(DRS=0)が存在す
る場合には(t5 )、フェッチステージ(IF)の処理
の開始を一時中止して、DMA転送を先に実行してから
(t5 〜t7 )、フェッチステージ(IF)の処理を実
行し(t7 〜t9 )、また、フェッチステージ(IF)
の処理の実行中に、同様のDMA転送要求が発生した場
合には(t3 〜t4 )、既に行っているフェッチステー
ジの処理が終了してから(t5 )、DMA転送を実行す
る(t5 〜t7 )。
【0015】尚、()内の符号は、図1〜図10におけ
る符号のうちで本発明の主要な部分に対応するものを示
している。従って、本発明のパイプライン処理方法を実
施すれば、DMA転送の実行によるパイプライン処理の
中断によって、フェッチステージが分断されてしまうこ
とを確実に防止でき、メモリから命令を正常に読み込む
ために必要なアクセスタイムを常に十分に確保すること
ができる。
【0016】次に、請求項2記載の情報処理装置(1
0,10a)は、上述した従来装置と同様に、演算機能
を複数種類のステージに分け、異なるステージの処理を
基本クロックのタイミングで並列に且つ同期して行うこ
とにより、複数の命令処理サイクルを部分的に重複した
タイミングで実行すると共に、メモリ(3)から命令を
読み込むフェッチステージ(IF)では基本クロック
(CK1)のn(nは2以上の整数)周期分、他のステ
ージ(DEC,EXE,MA,WB)では基本クロック
(CK1)の1周期分の処理時間を必要とし、且つ1回
のフェッチステージ(IF)で前記メモリ(3)から複
数の命令を同時に読み込むようにした複数語フェッチ式
のパイプライン処理を実施して、上記メモリ(3)に格
納されたプログラムを実行する。
【0017】そして特に、本発明の情報処理装置(1
0,10a)では、上記メモリ(3)と同一のバス
(1,2)を使用するDMA転送要求が発生(DRS=
0)すると、DMA受付制御手段(24)が、フェッチ
ステージ(IF)の境界となる基本クロック(CK1)
のタイミングで(t5 )、その要求を受け付けてDMA
転送を許可し、その後、DMA転送要求が消滅(DRS
=1)すると、基本クロック(CK1)のタイミングで
前記許可を取り下げる(t7 )。また、DMA受付制御
手段(24)によりDMA転送が許可されている転送許
可期間の間(t5 〜t7 )、中断制御手段(25,25
a)が、前記パイプライン処理を中断させるように構成
されている。
【0018】つまり、本発明の情報処理装置は、請求項
1記載のパイプライン処理方法を具体的に実現するもの
であり、フェッチステージの処理の実行中にDMA転送
の処理要求が発生したとしても、DMA転送の処理はフ
ェッチステージが終了するまで待たされるため、フェッ
チステージが分断されてしまうことがない。
【0019】従って、本発明の情報処理装置によれば、
請求項1記載の発明と同様に、メモリから命令を正常に
読み込むために必要なアクセスタイムを常に十分に確保
することができる。なお、DMA受付制御手段は、例え
ば、請求項3記載のように、基本クロックのタイミング
毎に状態遷移するn+1個の状態S0 〜Sn を有し、状
態S0 〜Sn-2 では状態Si (i=0〜n−2)から状
態Si+1 (IF0状態からIF1状態)に遷移し、状態
Sn-1 (IF1状態)ではDMA転送要求が発生してい
なければ(DSR=1)状態S0 (IF0状態)に、D
MA転送要求が発生していれば(DSR=0)状態Sn
(DMA状態)に遷移し、状態Sn (DMA状態)では
DMA転送要求が存続していれば(DSR=0)状態S
n (DMA状態)に、DMA転送要求が消滅していれば
(DSR=1)状態S0 (IF0状態)に遷移すると共
に、状態Sn (DMA状態)である間はDMA転送を許
可するように構成することができる。この場合、パイプ
ライン処理では、DMA受付制御手段(24)の状態
が、状態S0 (IF0状態)へ他の状態から遷移した時
にフェッチステージ(IF)を開始し、状態Sn-1 (I
F1状態)から他の状態へ遷移した時に実行中のフェッ
チステージ(IF)を終了するようにすればよい。
【0020】また、中断制御手段(25)は、例えば、
請求項4記載のように、パイプライン処理の実行に使用
される基本クロック(CK1)に同期した制御クロック
(CK2)の供給を、転送許可期間の間停止することに
より(t5 〜t7 )、パイプライン処理のハードウェア
を停止させることでパイプライン処理の中断を実現して
もよい。
【0021】また、請求項5記載のように、パイプライ
ン処理に使用されるデータを格納し、基本クロックのタ
イミング毎に格納内容が更新される各種レジスタに、外
部から供給される新たに格納すべきデータと、現在格納
されているデータとのいずれかを、自身の入力として選
択する選択回路が設けられている場合には、中断制御手
段(25a)は、転送許可期間の間、前記選択回路(4
4b)を現在格納されているデータを選択する側に設定
し(t5 〜t7 )、パイプライン処理のハードウェアが
動作していても、各種レジスタ(44a)の内容を、転
送許可期間が終了するまで、転送許可期間に入る前の状
態のまま保持することでパイプライン処理の中断を実現
してもよい。
【0022】
【発明の実施の形態】以下に本発明の実施形態を図面と
共に説明する。 [第1実施形態]本発明が適用された第1実施形態の情
報処理装置としてのCPU10は、1回のIFステージ
で2つの命令を同時に読み込む2語フェッチ式の5段パ
イプライン処理(図6参照)を行ってプログラムを実行
するものであり、しかも、個別に制御可能な2系統のバ
スを有するように構成されたものである。
【0023】図1に示すように、CPU10は、データ
バス1及びアドレスバス2(以下総称して「命令系バ
ス」ともいう)には、実行対象のプログラムを構成する
命令とプログラムの実行時に参照されるデータとを記憶
したROM等からなる命令格納用のメモリ3が接続さ
れ、また、データバス4及びアドレスバス5(以下総称
して「データ系バス」ともいう)には、RAM等からな
るデータ格納用のメモリ6が接続されている。また、命
令系バス1,2には、同じ命令系バス1,2に接続され
た図示しない周辺回路(メモリやI/O装置等)間での
DMA転送を行うDMA転送制御装置7が接続されてい
る。
【0024】そして、CPU10には、リセット信号線
12を介して初期化用のリセット信号RS、及びクロッ
ク信号線13を介して動作用の基本クロックとしてのシ
ステムクロックCK1が与えられ、また、DMA転送制
御装置7からはDMA転送要求信号線14を介してDM
A転送要求信号DRSが入力され、DMA転送制御装置
7に対してはDMA転送許可信号線15を介してDMA
転送の許可信号DASが出力されるように構成されてい
る。
【0025】尚、メモリ3への1回のアクセスでCPU
10が2つの命令を同時に読み込むことができるように
するため、メモリ3には、その1アドレス当りに、偶数
アドレスの命令とそれに続く奇数アドレスの命令とが1
組にされて格納されている(図11参照)と共に、メモ
リ3のデータ線及びデータバス1のバス幅が、命令語長
(1命令のビット長)の2倍にされている。
【0026】次に、CPU10は、図2に示すように、
パイプライン処理のための制御を行うデコーダ16と、
データやアドレス等の演算を行うデータパス18とから
構成されている。そして、デコーダ16は、IFステー
ジにてメモリ3からデータバス1を介して命令を読み込
む命令レジスタ20と、DECステージにて命令を解読
する命令解読部22と、フェッチ処理の流れを管理する
フェッチコントローラ24と、制御クロックCK2を生
成するクロック制御部25とを備えている。
【0027】一方、データパス18は、MAステージに
てメモリ6からデータバス4を介してデータを読み込ん
だり、メモリ6に書き込むべきデータをデータバス4へ
出力するロードストアユニット30と、EXEステージ
にて命令に応じた演算を行う実行ユニット32と、複数
のレジスタ(内部レジスタ)を内蔵したレジスタファイ
ルユニット34と、メモリ3からIFステージで読み込
むべき命令のアドレスを格納及びカウントするプログラ
ムカウンタ36と、MAステージにてアドレスバス5へ
アドレスを出力するアドレスユニット38とを備えてい
る。
【0028】ここで、デコーダ16内の命令レジスタ2
0は、システムクロックCK1に同期し、且つ、フェッ
チコントローラ24から出力される状態信号JS(後述
する)に従ってメモリ3からデータバス1を介して2つ
の命令(詳しくは、命令のデータ)を同時に読み込み格
納する。
【0029】そして、命令解読部22は、クロック制御
部25から出力される制御クロックCK2に同期して動
作し、制御クロックCK2の1周期毎に、命令レジスタ
20内の命令を、偶数アドレスの命令,奇数アドレスの
命令の順に命令バス29を介して1つずつ取り込むと共
に、取り込んだ命令を解読して、その解読した命令の内
容に応じて、データパス18内のロードストアユニット
30,実行ユニット32,レジスタファイルユニット3
4,及びプログラムカウンタ36を制御するための制御
信号を制御バス28へ出力する。
【0030】次に、フェッチコントローラ24は、リセ
ット信号RSによって初期化され、システムクロックC
K1に同期し、且つ、DMA転送制御装置7からのDM
A転送要求信号DRSに応じて、自己の状態を遷移さ
せ、その状態に基づいてDMA転送許可信号DASを出
力すると共に、自己の現在の状態を示す状態信号JSを
出力する。尚、状態信号JSは、複数の状態を示すこと
ができるように複数ビットのデータ信号となっている。
また、フェッチコントローラ24の動作については、図
3を用い後で詳しく説明する。
【0031】そして、クロック制御部25は、システム
クロックCK1とフェッチコントローラ24からの状態
信号JSとから、制御クロックCK2を生成して出力す
る。一方、データパス18内のロードストアユニット3
0は、システムクロックCK1に同期し、且つ、制御バ
ス28を介して命令解読部22から供給される制御信号
に従って、レジスタファイルユニット34からの出力デ
ータ(即ち、レジスタ値)Rmをデータバス4へ出力し
たり、或いは、データバス4から入力したデータをデー
タパス18内のWB(ライトバック)バス40へ出力す
る。
【0032】そして、実行ユニット32は、制御クロッ
クCK2に同期し、且つ、制御バス28からの制御信号
に従って、レジスタファイルユニット34からの2つの
出力データRm,Rnに対し演算を行い、その演算結果
をWBバス40へ出力する。尚、実行ユニット32は、
命令解読部22で解読された命令の内容に応じた演算を
行う。例えば、命令解読部22で解読された命令がメモ
リ6へのアクセス命令であれば、実行ユニット32はア
クセスすべき(即ち、データの読み書きを行うべき)メ
モリ6のアドレスを演算することとなり、また、命令解
読部22で解読された命令が論理積や論理和等を行う命
令であれば、実行ユニット32はその命令に応じた論理
演算を行うこととなる。また、例えば、命令解読部22
で解読された命令が分岐命令であれば、実行ユニット3
2は命令の分岐先のアドレスを演算することとなる。
【0033】また、レジスタファイルユニット34は、
制御クロックCK2に同期し、且つ、制御バス28から
の制御信号に従って、WBバス40のデータを内部のレ
ジスタに格納したり、或いは、その格納したデータを上
記出力データRm,Rnとして実行ユニット32やロー
ドストアユニット30へ出力する。
【0034】そして、プログラムカウンタ36は、制御
クロックCK2に同期し、且つ、制御バス28からの制
御信号に従って、WBバス40のデータを格納したりカ
ウントアップして、そのデータをデータパス18内のプ
ログラムバス42を介してアドレスバス2へ出力する。
尚、プログラムバス42へは、プログラムカウンタ36
内のデータの各ビットのうち、最下位ビット以外のビッ
トが出力されるようになっている。このため、プログラ
ムバス42のデータであって、メモリ3から命令を読み
込むためのアドレスは、制御クロックCK2の2周期毎
に更新されることとなる。
【0035】また、アドレスユニット38は、システム
クロックCK1に同期して、且つ、制御バス28からの
制御信号に従って、WBバス40のデータをラッチし、
そのラッチしたデータをアドレスバス5へアドレスとし
て出力する。次に、デコーダ16のフェッチコントロー
ラ24は、システムクロックCK1の1周期毎に、自己
の状態を図3の如く遷移させる。
【0036】まず、フェッチコントローラ24は、リセ
ット信号RSがアクティブレベル(論理1)の時にRE
SET状態を維持するが、リセット信号RSが非アクテ
ィブレベル(論理0)になると、システムクロックCK
1に同期した状態遷移を開始して、DMA転送要求信号
DRSに拘わらず、最初にIF0状態へ遷移する。
【0037】IF0状態では、DMA転送要求信号DR
Sに拘わらず次のシステムクロックCK1のタイミング
でIF1状態へ遷移する。また、IF1状態では、DM
A転送要求信号DRSが非アクティブレベル(論理1)
であれば、次のシステムクロックCK1のタイミングで
IF0状態へ遷移し、一方、DMA転送要求信号DRS
がアクティブレベル(論理0)であれば、次のシステム
クロックCK1のタイミングでDMA状態へ遷移すると
共に、DMA転送制御装置7に対してDMA転送要求を
受け付けたことを伝えるため、DMA転送許可信号線1
5を介して出力するDMA転送許可信号DASをアクテ
ィブレベル(論理0)に設定する。
【0038】一方、DMA状態では、DMA転送要求信
号DRSが非アクティブレベル(論理1)であれば、次
のシステムクロックCK1のタイミングでIF0状態へ
遷移すると共に、DMA転送許可信号DASを非アクテ
ィブレベル(論理0)に戻し、一方、DMA転送要求信
号DRSがアクティブレベル(論理1)であれば、DM
A状態を維持する。
【0039】そして、フェッチコントローラ24は、自
己の現在の状態に応じて、クロック制御部25,命令レ
ジスタ20,ロードストアユニット30,プログラムカ
ウンタ36,及びアドレスユニット38へ出力する状態
信号JSのデータ値を変化させる。例えば、フェッチコ
ントローラ24は、IF0状態の時にはそのIF0状態
に対応したデータ値の状態信号JSを出力し、IF1状
態の時にはそのIF1状態に対応したデータ値の状態信
号JSを出力する。よって、状態信号JSのデータ値
は、システムクロックCK1の1周期毎に変化すること
となる(図5参照)。
【0040】次に、クロック制御部25は、図4に示す
ように、状態信号JSのデータ値がDMA状態に対応し
た値である場合(つまり、フェッチコントローラ24が
DMA状態である場合)に、アクティブレベル(論理
1)の信号を出力するデコーダ回路26と、そのデコー
ダ回路26の出力信号とシステムクロックCK1との論
理和信号を、制御クロックCK2として出力するオア回
路27とから構成されている。
【0041】よって、クロック制御部25から出力さ
れ、命令解読部22,実行ユニット32,レジスタファ
イルユニット34,及びプログラムカウンタ36の各々
に供給される制御クロックCK2は、図5に示すよう
に、フェッチコントローラ24がDMA状態でない場合
には、システムクロックCK1と同じになるが、フェッ
チコントローラ24がDMA状態になっている期間は、
ハイレベルのままとなる。
【0042】このため、フェッチコントローラ24がD
MA状態になった場合には、そのDMA状態とそれに続
くIF0状態である期間においては、命令解読部22,
実行ユニット32,レジスタファイルユニット34,及
びプログラムカウンタ36の各々に、制御クロックCK
2が1発しか供給されないこととなる。
【0043】次に、フェッチコントローラ24からの状
態信号JSによって制御されるクロック制御部25以外
の各部の動作について説明する。まず、命令レジスタ2
0は、状態信号JSのデータ値がIF1状態に対応した
値である場合(即ち、フェッチコントローラ24がIF
1状態である場合)にだけ、データバス4上のデータを
システムクロックCK1に同期して格納する。
【0044】また、ロードストアユニット30は、状態
信号JSのデータ値がIF0状態とIF1状態との何れ
かに対応した値である場合(即ち、フェッチコントロー
ラ24がIF0状態かIF1状態である場合)にだけ、
データバス4に対するデータの入出力を行い、それ以外
の場合には、出力がハイインピーダンスとなる。
【0045】また、プログラムカウンタ36は、状態信
号JSのデータ値がIF0状態とIF1状態との何れか
に対応した値である場合(即ち、フェッチコントローラ
24がIF0状態かIF1状態である場合)にだけ、ア
ドレスバス2に対するデータの出力を行い、それ以外の
場合には、出力がハイインピーダンスとなる。
【0046】そして、アドレスユニット38は、状態信
号JSのデータ値がIF0状態とIF1状態との何れか
に対応した値である場合(即ち、フェッチコントローラ
24がIF0状態かIF1状態である場合)にだけ、W
Bバス40のデータをアドレスバス5へ出力し、それ以
外の場合には、出力がハイインピーダンスとなる。
【0047】なお、フェッチコントローラ24の状態
は、システムクロックCK1に同期して遷移し、しか
も、IF0状態の時には、DMA転送制御装置7からの
DMA転送要求信号DRSに拘わらず必ずIF1状態に
遷移するため、IFステージが開始された時には、常に
システムクロックCK1の2周期分の期間がIFステー
ジのために確保されることになる。
【0048】次に、CPU10の動作について、フェッ
チコントローラ24の状態遷移と併せて図6を用い説明
する。尚、図6において、t1 〜t12で示す各時刻は、
システムクロックCK1の立ち上がりタイミングであ
り、その各時刻t1 〜t12の間隔は、システムクロック
CK1の1周期分である。
【0049】まず、リセット信号RSがアクティブレベ
ル(論理1)から非アクティブレベル(論理0)になる
と、CPU10が動作を開始し、図6に示すように、フ
ェッチコントローラ24は、最初の時刻t1 でIF0状
態になる。そして、この時、最初の命令処理サイクルC
10のIFステージの処理が始まる。つまり、プログラ
ムカウンタ36からアドレスバス2へ、メモリ3から命
令を読み込むためのアドレスが出力される。
【0050】そして、フェッチコントローラ24は、次
の時刻t2 でIF1状態になる。すると、フェッチコン
トローラ24がIF1状態となっている時刻t2 から次
の時刻t3 までの間に、命令レジスタ20がデータバス
1上のデータ(即ち、メモリ3からデータバス1へ同時
に出力される2つの命令で、この場合は、命令処理サイ
クルC10及びC11の命令)を格納するため、時刻t
3 で命令処理サイクルC10のIFステージの処理が終
了する。
【0051】この時、DMA転送要求信号DRSが非ア
クティブレベル(論理1)であるため、フェッチコント
ローラ24は時刻t3 でIF0状態になり、この時刻t
3 から次の時刻t4 までの期間で、命令解読部22によ
り命令処理サイクルC10のDECステージの処理が行
われる。つまり、命令解読部22が、命令処理サイクル
C10のIFステージで命令レジスタ20に格納された
2つの命令のうちの最初の命令(偶数アドレスの命令)
を解読する。
【0052】また、プログラムカウンタ36からアドレ
スバス2へ出力されるデータが時刻t3 で更新されるた
め、この時刻t3 で、命令処理サイクルC12のIFス
テージの処理が始まる。ここで時刻t3 から次の時刻t
4 までの間に、DMA転送要求信号DRSが非アクティ
ブ(論理1)からアクティブレベル(論理0)になった
とする。このとき、フェッチコントローラ24は、DM
A転送要求信号DRSに拘わらず、時刻t4 でIF1状
態になる。
【0053】また、時刻t4 から次の時刻t5 までの期
間で、実行ユニット32とレジスタファイルユニット3
4とにより、命令処理サイクルC10のEXEステージ
の処理が行われる。つまり、実行ユニット32が、命令
処理サイクルC10のDECステージで命令解読部22
により解読された命令に応じた演算を行う。
【0054】そして更に、上記命令処理サイクルC10
のEXEステージの処理と並行して、命令解読部22に
より命令処理サイクルC11のDECステージの処理が
行われる。つまり、命令解読部22が、命令処理サイク
ルC10のIFステージで命令レジスタ20に格納され
た2つの命令のうちの2番目の命令(奇数アドレスの命
令)を解読する。
【0055】また、フェッチコントローラ24がIF1
状態となっている時刻t4 から時刻t5 までの間に、命
令レジスタ20がデータバス4上のデータを格納するた
め、時刻t5 で命令処理サイクルC12のIFステージ
の処理が終了する。この時、DMA転送要求信号DRS
がアクティブレベル(論理0)であるため、フェッチコ
ントローラ24は時刻t5 でDMA状態になると共に、
DMA転送許可信号DASをアクティブレベル(論理
1)に設定する。
【0056】また、フェッチコントローラ24がDMA
状態となっている期間(ここでは時刻t5 から時刻t7
までの間)、クロック制御部25から出力される制御ク
ロックCK2はハイレベルのままとなり、その結果、次
のIFステージ(ここでは、命令処理サイクルC14の
IFステージ)の動作が休止され、命令レジスタ20な
いには、命令処理サイクルC12で読み込んだ2つの命
令が保存されたままとなる。また、制御クロックCK2
によって動作する命令解読部22,実行ユニット32,
レジスタファイルユニット34,及びプログラムカウン
タ36も、動作が休止される。
【0057】次に、時刻t6 から次の時刻t7 までの間
に、DMA転送要求信号DRSがアクティブレベル(論
理0)から非アクティブレベル(論理1)になったとす
ると、フェッチコントローラ24は時刻t7 でIF0状
態になり、この時刻t7 から次の時刻t8 までの期間で
は、アドレスユニット38及びロードストアユニット3
0による命令処理サイクルC10のMAステージの処理
と、実行ユニット32及びレジスタファイルユニット3
4とによる命令処理サイクルC11のEXEステージの
処理と、命令解読部22による命令処理サイクルC12
のDECステージの処理とが並行して行われることとな
る。
【0058】更に、これらの処理と並行して、プログラ
ムカウンタ36によるアドレスバス2へのデータ出力が
再開されるため、命令処理サイクルC14のIFステー
ジの処理も開始されることとなる。その後、DMA転送
要求信号DRSがアクティブレベル(論理0)にならな
ければ、フェッチコントローラ24の状態は、システム
クロックCK1に同期してIF0状態とIF1状態とを
繰り返し、同様の処理が繰り返し実行されることにな
る。
【0059】尚、図6において、MAステージ(「M
A」)及びWBステージ(「WB」)は、DECステー
ジで解読された命令の内容によっては処理されないが、
通常の処理位置を示すために記している。また、WBス
テージ(「WB」)は、DECステージで解読された命
令がメモリアクセス命令であり、且つデータ読み込み命
令であって、MAステージでロードストアユニット30
内に読み込んだデータをレジスタファイルユニット34
内のレジスタに書き込む場合、或いは、EXEステージ
での演算結果を、そのWBステージのタイミングでレジ
スタファイルユニット34内のレジスタに書き込む必要
がある場合に行われる。
【0060】以上詳述したように、本実施形態のCPU
10では、IFステージの処理の開始時に、DMA転送
要求信号DRSがアクティブレベルの場合には(t5
)、IFステージの処理の開始を一時中止して、DM
A転送制御装置7によるDMA転送を先に行ってから
(t5 〜t7 )、IFステージの処理を行い(t7 〜t
9 )、また、IFステージの処理を行っている最中に、
DMA転送要求信号DRSがアクティブレベルになった
場合には(t4 )、既に行っているIFステージの処理
が終了してから(t5 )、DMA転送処理を行うように
している(t5 〜t7)。
【0061】よって、本実施形態のCPU10によれ
ば、IFステージの処理中に、DMA転送の処理要求
(DRS=0)が発生しても、IFステージが分断され
てしまうことがなく、メモリ3へのアクセスに必要な時
間を常に十分に確保できるため、パイプライン処理の動
作を正常に行わせることができる。
【0062】また、本実施形態のCPU10では、命令
解読部22,実行ユニット32,レジスタファイルユニ
ット34,及びプログラムカウンタ36への制御クロッ
クCK2の周期を、DMA転送制御装置7がDMA転送
を行っている期間分だけ引き伸ばすようにしている。
【0063】よって、DMA転送の処理期間をパイプラ
イン処理の流中に追加挿入するようにしているにも拘ら
ず、命令解読部22によるDECステージの処理と、実
行ユニット32及びレジスタファイルユニット34によ
るEXEステージの処理とが余分に行われてしまうこと
と、プログラムカウンタ36でカウントされる命令のア
ドレスが余分に進んでしまうこととを確実に防止でき、
延いては、パイプライン処理の流れが異常になってしま
うことを確実に防ぐことができる。 [第2実施形態]次に第2実施形態の情報処理装置とし
てのCPU10aについて説明する。
【0064】図7は、本実施形態のCPU10aの内部
構成を表すブロック図である。本実施形態のCPU10
aは、構成の一部が異なっているだけであるため、この
構成の相異部分を中心にして説明する。本実施形態のC
PU10aにおいて、命令解読部22,実行ユニット3
2,レジスタファイルユニット34,及びプログラムカ
ウンタ36は、制御クロックCK2の代わりに、システ
ムクロックCK1とクロックイネーブル信号CK1Eと
が入力されている。
【0065】クロックイネーブル信号CK1Eを生成す
るクロック制御部25aは、図8に示すように、フェッ
チコントローラ24からの状態信号JSのデータ値がD
MA状態に対応した値である場合(つまり、フェッチコ
ントローラ24がDMA状態である場合)に、アクティ
ブレベル(論理1)の信号を出力するデコーダ回路26
aからなる。つまり、クロックイネーブル信号CK1E
は、図10に示すように、フェッチコントローラ24が
DMA状態になっている期間だけアクティブレベル(論
理1)となる。
【0066】そして、本実施形態において、クロックイ
ネーブル信号CK1Eが入力される命令解読部22,実
行ユニット32,レジスタファイルユニット34,及び
プログラムカウンタ36の内部に設けられた各レジスタ
部44は、図9に示すように、システムクロックCK1
に同期してデータを取り込み、値を保持するレジスタ回
路44aと、クロックイネーブル信号CK1Eが非アク
ティブレベル(論理0)である場合は、外部からの入力
データを選択し、クロックイネーブル信号CK1Eがア
クティブレベル(論理1)である場合には、レジスタ4
4aの出力データを選択して、レジスタ回路44aの入
力として供給するセレクタ回路44bとにより構成され
ている。
【0067】つまり、命令解読部22,実行ユニット3
2,レジスタファイルユニット34,及びプログラムカ
ウンタ36において、各レジスタ部44では、フェッチ
コントローラ24がDMA状態である期間中に、外部か
らの入力データによるレジスタ回路44aの格納値の更
新は1回も行われないため、レジスタ回路44aには、
DMA状態に入る直前の値が保持され続ける。これによ
り、第1実施形態のCPU10において、制御クロック
CK2の周期を、DMA転送の処理を実行している期間
分だけ引き伸ばしたことと同様の効果が得られることに
なる。
【0068】以上詳述したように、本実施形態のCPU
10aでは、IFステージの処理の開始時に、DMA転
送要求信号DRSがアクティブレベルの場合には(t5
)、IFステージの処理の開始を一時中止して、DM
A転送制御装置7によるDMA転送を先に行ってから
(t5 〜t7 )、IFステージの処理を行い(t7 〜t
9)、また、IFステージの処理を行っている最中に、
DMA転送要求信号DRSがアクティブレベルになった
場合には(t4 )、既に行っているIFステージの処理
が終了してから(t5 )、DMA転送処理を行うように
している(t5 〜t7 )。
【0069】よって、本実施形態のCPU10aによれ
ば、IFステージの処理中に、DMA転送要求信号DR
Sがアクティブレベルになっても、IFステージが分断
されてしまうことがなく、メモリ3へのアクセスに必要
な時間を常に十分に確保できるため、パイプライン処理
の動作を正常に行わせることができる。
【0070】また、本実施形態のCPU10aでは、命
令解読部22,実行ユニット32,レジスタファイルユ
ニット34,及びプログラムカウンタ36の各レジスタ
部44を構成するレジスタ回路44aの格納値が、DM
A転送制御装置7がDMA転送を行っている間、実質的
に更新されることのないようにしている。
【0071】よって、本実施形態のCPU10aでは、
DMA転送の処理期間をパイプライン処理の流れ中に追
加挿入するようにしているにも拘らず、命令解読部22
によるDECステージの処理と、実行ユニット32及び
レジスタファイルユニット34によるEXEステージの
処理とが余分に行われてしまうことと、プログラムカウ
ンタ36でカウントされる命令のアドレスが余分に進ん
でしまうこととを確実に防止でき、延いては、パイプラ
イン処理の流れが異常になってしまうことを確実に防ぐ
ことができる。
【0072】以上、本発明の二つの実施形態について説
明したが、本発明は、上記実施形態に限定されるもので
はなく、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態では、命令格納用のメモリ3とデ
ータ格納用のメモリ6とが別々のメモリであると共に、
メモリ3を接続する命令系バス1,2と、メモリ6を接
続するデータ系バス4,5とが分離されたいわゆるバー
バードアーキテクチャを採用したCPU10,10aに
本発明を適用しているが、1系統のバスしか存在せず、
この1系統のバスに両メモリ3,6が接続されるCPU
に本発明を適用した場合でも、全く同様である。
【0073】また、上記実施形態のCPU10は、1回
のIFステージで2つの命令を同時に読み込むものであ
ったが、本発明は、1回のIFステージで2つ以外の複
数(例えば4つや6つ等)の命令を同時に読み込むよう
にした、あらゆる複数語フェッチ式のパイプライン処理
を行う情報処理装置について、前述した実施形態と同様
の手法で適用することができる。
【図面の簡単な説明】
【図1】 第1及び第2実施形態のCPUとメモリや周
辺回路との接続状態を表す構成図である。
【図2】 第1実施形態のCPUの内部構成を表すブロ
ック図である。
【図3】 フェッチコントローラの状態遷移を表す状態
遷移図である。
【図4】 第1実施形態におけるクロック制御部の構成
を表すブロック図である。
【図5】 第1実施形態におけるクロック制御部の動作
を説明するタイムチャートである。
【図6】 パイプライン処理の流れ全体を表すタイムチ
ャートである。
【図7】 第2実施形態のCPUの内部構成を表すブロ
ック図である。
【図8】 第2実施形態におけるクロック制御部の構成
を表すブロック図である。
【図9】 クロックイネーブル信号が供給される各部の
内部に設けられたレジスタ部の構成を表すブロック図で
ある。
【図10】 第2実施形態におけるクロック制御部の動
作を説明するタイムチャートである。
【図11】 従来のCPUとメモリとの接続状態を表す
構成図である。
【図12】 1回のフェッチステージで2つの命令を同
時に読み込む2語フェッチ式のパイプライン処理の基本
的な流れを表すタイムチャートである。
【符号の説明】
1,4…データバス 2,5…アドレスバス
3,6…メモリ 7…DMA転送制御装置 12…リセット信号線
13…クロック信号線 14…DMA転送要求信号線 15…DMA転送許可信
号線 16…デコーダ 18…データパス 20…命令レジスタ 22…命
令解読部 24…フェッチコントローラ 25,25a…クロッ
ク制御部 26,26a…デコーダ回路 27…オア回路 2
8…制御バス 29…命令バス 30…ロードストアユニット 3
2…実行ユニット 34…レジスタファイルユニット 36…プログラム
カウンタ 38…アドレスユニット 40…WBバス 42…
プログラムバス 44a…レジスタ回路 44b…セレクタ回路 C
K1…システムクロック CK1E…クロックイネーブル信号 CK2…制御ク
ロック DAS…DMA転送許可信号 DRS…DMA転送要
求信号 JS…状態信号 RS…リセット信号

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 演算機能を複数種類のステージに分け、
    並列して異なるステージの処理を行うことにより、複数
    の命令処理サイクルを部分的に重複したタイミングで実
    行すると共に、メモリから命令を読み込むフェッチステ
    ージの実行時間が、他のステージの実行時間よりも長
    く、且つ1回のフェッチステージで、前記メモリから複
    数の命令を同時に読み出すように構成された複数語フェ
    ッチ式のパイプライン処理方法において、 フェッチステージの処理の開始タイミングで、前記メモ
    リと同一のバスを使用するDMA転送要求が存在する場
    合には、前記フェッチステージの処理の開始を一時中止
    して、DMA転送を先に実行してから、前記フェッチス
    テージの処理を実行し、 フェッチステージの処理の実行中に、前記DMA転送要
    求が発生した場合には、既に行っている前記フェッチス
    テージの処理が終了してから、DMA転送を実行するこ
    とを特徴とするパイプライン処理方法。
  2. 【請求項2】 演算機能を複数種類のステージに分け、
    異なるステージの処理を基本クロックのタイミングで並
    列に且つ同期して行うことにより、複数の命令処理サイ
    クルを部分的に重複したタイミングで実行すると共に、
    メモリから命令を読み込むフェッチステージでは基本ク
    ロックのn(nは2以上の整数)周期分、他のステージ
    では基本クロックの1周期分の処理時間を必要とし、且
    つ1回のフェッチステージで前記メモリから複数の命令
    を同時に読み込むようにした複数語フェッチ式のパイプ
    ライン処理を行う情報処理装置において、 前記メモリと同一のバスを使用するDMA転送要求が発
    生すると、前記フェッチステージの境界となる前記基本
    クロックのタイミングで該DMA転送要求を受け付けて
    DMA転送を許可すると共に、前記DMA転送要求が消
    滅すると、前記基本クロックのタイミングで前記許可を
    取り下げるDMA受付制御手段と、 該DMA受付制御手段によりDMA転送が許可されてい
    る転送許可期間の間、前記パイプライン処理を中断させ
    る中断制御手段と、 を設けたことを特徴とする情報処理装置。
  3. 【請求項3】 前記DMA受付制御手段は、前記基本ク
    ロックのタイミング毎に状態遷移するn+1個の状態S
    0 〜Sn を有し、状態S0 〜Sn-2 では状態Si (i=
    0〜n−2)から状態Si+1 に遷移し、状態Sn-1 では
    DMA転送要求が発生していなければ状態S0 に、DM
    A転送要求が発生していれば状態Sn に遷移し、状態S
    n ではDMA転送要求が存続していれば状態Sn に、D
    MA転送要求が消滅していれば状態S0 に遷移すると共
    に、状態Sn である間だけDMA転送を許可し、 前記パイプライン処理では、前記DMA受付制御手段の
    状態が、状態S0 へ他の状態から遷移した時にフェッチ
    ステージを開始し、状態Sn-1 から他の状態へ遷移した
    時に該フェッチステージを終了することを特徴とする請
    求項2記載の情報処理装置。
  4. 【請求項4】 前記中断制御手段は、前記パイプライン
    処理の実行に使用される前記基本クロックに同期した制
    御クロックの供給を、前記転送許可期間の間停止するこ
    とを特徴とする請求項2又は請求項3記載の情報処理装
    置。
  5. 【請求項5】 前記パイプライン処理に使用されるデー
    タを格納し、前記基本クロックのタイミング毎に格納内
    容が更新される各種レジスタに、外部から供給される新
    たに格納すべきデータと、現在格納されているデータと
    のいずれかを、自身の入力として選択する選択回路を設
    け、 前記中断制御手段は、前記転送許可期間の間、前記選択
    回路を現在格納されているデータを選択する側に設定す
    ることを特徴とする請求項2又は請求項3記載の情報処
    理装置。
JP2001072143A 2001-03-14 2001-03-14 パイプライン処理方法、及び情報処理装置 Pending JP2002268876A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001072143A JP2002268876A (ja) 2001-03-14 2001-03-14 パイプライン処理方法、及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001072143A JP2002268876A (ja) 2001-03-14 2001-03-14 パイプライン処理方法、及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2002268876A true JP2002268876A (ja) 2002-09-20

Family

ID=18929761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001072143A Pending JP2002268876A (ja) 2001-03-14 2001-03-14 パイプライン処理方法、及び情報処理装置

Country Status (1)

Country Link
JP (1) JP2002268876A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080289A1 (ja) * 2011-11-28 2013-06-06 富士通株式会社 信号処理装置及び信号処理方法
KR101319287B1 (ko) 2013-03-08 2013-10-17 주식회사 에이디칩스 파이프라인 구조를 갖는 프로세서
JPWO2013080289A1 (ja) * 2011-11-28 2015-04-27 富士通株式会社 信号処理装置及び信号処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080289A1 (ja) * 2011-11-28 2013-06-06 富士通株式会社 信号処理装置及び信号処理方法
JPWO2013080289A1 (ja) * 2011-11-28 2015-04-27 富士通株式会社 信号処理装置及び信号処理方法
US9110859B2 (en) 2011-11-28 2015-08-18 Fujitsu Limited Signal processing device and signal processing method
KR101319287B1 (ko) 2013-03-08 2013-10-17 주식회사 에이디칩스 파이프라인 구조를 갖는 프로세서

Similar Documents

Publication Publication Date Title
JP2003196084A (ja) リードモディファイライトユニットを有するシステム
JPH1083303A (ja) コプロセッサを使用するための電子回路及び方法
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
JP2002268876A (ja) パイプライン処理方法、及び情報処理装置
JP4112813B2 (ja) バスシステム及びそのコマンドの伝達方法
US7222219B2 (en) Memory control method and memory control apparatus for pipeline processing
JP3446603B2 (ja) 情報処理装置及びパイプライン処理方法
JP3043341B2 (ja) マイクロコンピュータシステム
US20040103267A1 (en) Data processor having cache memory
JP3451932B2 (ja) 情報処理装置及びパイプライン処理方法
JP2883465B2 (ja) 電子計算機
JPH06131180A (ja) 命令処理方式および命令処理装置
JP2721611B2 (ja) プログラマブルコントローラ
JP3954159B2 (ja) 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法
JP2721610B2 (ja) プログラマブルコントローラ
JP4151497B2 (ja) パイプライン処理装置
JP2000029508A (ja) プログラマブルコントローラ
JP3366235B2 (ja) データ読み出し制御装置
JP2005242457A (ja) プログラマブルコントローラ
JPH11296370A (ja) 情報処理装置及びパイプライン処理方法
JPS62209650A (ja) メモリアクセスシステム
JPH10301776A (ja) 情報処理装置及びパイプライン処理方法
JPH08171492A (ja) 情報処理装置
JPS63263537A (ja) 情報処理装置
JP2005157575A (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091020