JPH08202550A - パイプライン処理機能を有するデータ処理装置 - Google Patents
パイプライン処理機能を有するデータ処理装置Info
- Publication number
- JPH08202550A JPH08202550A JP7010112A JP1011295A JPH08202550A JP H08202550 A JPH08202550 A JP H08202550A JP 7010112 A JP7010112 A JP 7010112A JP 1011295 A JP1011295 A JP 1011295A JP H08202550 A JPH08202550 A JP H08202550A
- Authority
- JP
- Japan
- Prior art keywords
- instruction word
- register
- data
- processing
- external access
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
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)
Abstract
み出す処理が2サイクル以上にわたった場合において
も、パイプライン処理が滞ることのないパイプライン処
理機能を有するデータ処理装置の提供を目的とする。 【構成】 外部アクセスタイプの命令語の処理により外
部から読み込まれたデータを記憶するリードバッファレ
ジスタ13と、外部アクセスタイプの命令語の処理結果の
データが格納されるべきレジスタファイル4中のレジス
タを指定するデータを記憶するラッチ16と、外部アクセ
スタイプの命令語の処理により外部から読み込まれたデ
ータをリードバッファレジスタ13に一旦記憶させ、次に
外部アクセスタイプの命令語が処理される際の書き込み
ステージにおいて、ラッチ16が記憶しているレジスタ情
報により指定されるレジスタにリードバッファレジスタ
13が記憶しているデータを格納させる制御手段とを備え
る。
Description
テージに分解して実行するパイプライン処理機能を有す
るデータ処理装置に関する。
速度を向上させるために、所謂パイプライン処理機能を
備えている場合が多い。図8はそのような従来のパイプ
ライン処理機能を有するデータ処理装置のデータパスの
構成例を示すブロック図、図9及び図10は命令語の処理
を5段(ステージ)のパイプラインで実行する場合のパ
イプラインの構成及び各ステージによる処理の流れを示
す模式図である。なお、図9及び図10においては、上下
方向にパイプラインの各ステージが示されており、左右
方向に参照符号T0, T1, T2, T3, T4でサイクルが示され
ている。
の各ステージの構成は以下の如くである。第1ステージ
はフェッチステージであり、命令語が命令語キャッシュ
からフェッチされる。第2ステージはデコードステージ
であり、フェッチされた命令語がデコードされる。第3
ステージは実行ステージであり、命令語で指定された演
算が演算論理回路によって実行される。第4ステージは
メモリ参照ステージであり、前ステージである実行ステ
ージでの演算結果として得られたアドレスに従ってメモ
リ参照、即ち外部メモリに対するアクセスが行なわれ
る。第5ステージは書き込みステージであり、実行ステ
ージで得られた演算結果、あるいはメモリ参照ステージ
での外部メモリのアクセスにより読み出されたデータが
レジスタに書き込まれる。
の第1のデータバスを示しており、以下Xバスという。
参照符号2はデータパス中の第2のデータバスを示して
おり、以下Yバスという。参照符号3はデータパス中の
第3のデータバスを示しており、以下Zバスという。
り、複数のレジスタにて構成されている。このレジスタ
ファイル4はXバス1及びYバス2への出力経路と、Z
バス3からの入力経路とを有する。なお、デコードステ
ージでは命令語中のソースレジスタを指定するフィール
ドの値に対応するレジスタの内容がレジスタファイル4
から読み出されてXバス1, Yバス2の双方または一方
へ出力される。また、デコードステージでは、デスティ
ネーションレジスタを指定するフィールドの値に対応す
るレジスタに対してZバス3からデータが書き込みステ
ージで書き込まれる。
おり、Yバス2への出力経路を有する。デコードステー
ジで命令語のオフセットデータを指定するフィールドof
f が有効であった場合は、オフセットレジスタ5の内容
がYバス2へ実行ステージで出力される。
おり、Xバス1及びYバス2からの入力経路を有する。
論理演算回路6は実行ステージで、Xバス1のデータと
Yバス2のデータとを入力し、命令語で指定された算術
演算または論理演算を両データに対して実行する。
符号8はアドレスレジスタをそれぞれ示しており、いず
れも論理演算回路6の出力と接続されている。実行ステ
ージで論理演算回路6により得られた結果が演算結果で
ある場合はテンポラリレジスタ7がその演算結果を一時
的に保持し、それを書き込みステージでZバス3へ出力
する。テンポラリレジスタ7はファーストインファース
トアウト(FIFO)型の2段のレジスタであり、実行ステー
ジで得られた演算結果を次の書き込みステージでZバス
3へ出力することが出来る。実行ステージで論理演算回
路6により得られた結果が外部メモリ9に対するアドレ
スである場合はアドレスレジスタ8がそれを保持する。
しており、アドレスレジスタ8及びZバス3からの入力
経路と、Xバス1, Yバス2及びZバス3への出力経路
とを有する。また、バスインタフェイス回路10は外部メ
モリ9とはアドレスバス11,データバス12及び図示され
ていない制御信号線で接続されている。従って、バスイ
ンタフェイス回路10はアドレスレジスタ8からアドレス
が与えられると、それをアドレスバス11を介して外部メ
モリ9に与えることにより、外部メモリ9をアクセスし
てアドレスに対応するデータをデータバス12を介して読
み出す。
ートを参照して、従来のデータ処理装置においてパイプ
ラインにより命令が処理される手順を具体的に説明す
る。ここでは、命令語の一例としてたとえば(ADD Rx, R
y, Rz)がパイプラインで処理される手順について説明す
る。なお、この命令語(ADD Rx, Ry, Rz)は、Rxで指定さ
れるソースレジスタの内容とRyで指定されるソースレジ
スタの内容とを加算(ADD) してRzで指定されるデスティ
ネーションレジスタに書き込む命令語であり、メモリ参
照、即ち外部メモリに対するアクセスは行なわない。
で、命令語(ADD Rx, Ry, Rz)が命令語キャッシュからフ
ェッチされる。サイクルT1においてはデコードステージ
で、命令語(ADD Rx, Ry, Rz)が図示しないデコーダによ
りデコードされる。この際、命令語のRx, Ryでそれぞれ
指定されるソースレジスタの内容も同時にレジスタファ
イル4から読み出される(Rxリード, Ryリード)。
イクルT1においてレジスタファイル4から読み出された
ソースレジスタの内容がXバス1,Yバス2へそれぞれ
出力される(Rx→Xバス, Ry→Yバス) 。両者は論理演
算回路6により加算(ADD) され、加算結果はテンポラリ
レジスタ7に保持される(Xバス+Yバス→T)。サイ
クルT3においては、この命令語がメモリ参照ステージで
メモリ参照を行なわないため何らの処理も行なわれず、
サイクルT2での加算結果がそのままテンポラリレジスタ
7に保持される(T→T’)。
で、サイクルT3においてテンポラリレジスタ7に保持さ
れていた加算結果がZバス3経由でレジスタファイル4
中のRzで指定されるデスティネーションレジスタに書き
込まれる(T’→Zバス→Rz)。以上により、命令語(A
DD Rx, Ry, Rz)の処理が終了する。
照を行なわないタイプであるが、メモリ参照が行なわれ
るタイプの例として命令語(RD Rx, off, Rz)のパイプラ
インによる処理手順を図10の模式図を参照して説明す
る。
で指定されるソースレジスタの内容とoff で指定される
オフセットデータとを加算し、その結果をアドレスとし
てメモリからデータを読み出すメモリ参照、即ち外部メ
モリに対するアクセスを行い、そのデータをRzで指定さ
れるデスティネーションレジスタに書き込む命令語であ
る。
で、命令語(RD Rx, off, Rz)が命令語キャッシュからフ
ェッチされる。サイクルT1においてはデコードステージ
で、命令語(RD Rx, off, Rz)が図示されていないデコー
ダによりデコードされる。この際、命令語のRxで指定さ
れるソースレジスタの内容もレジスタファイル4から読
み出される (Rxリード) 。
イクルT1において読み出されたソースレジスタの内容が
Xバス1へ出力され (Rx→Xバス) 、 offで指定される
オフセットデータがオフセットレジスタ5からYバス2
へ出力される(off→Yバス)。両者は論理演算回路6に
より加算され、加算結果はアドレスレジスタ8に保持さ
れる (Xバス+Yバス→AD) 。
で、サイクルT2において得られた加算結果をアドレスと
して、バスインタフェイス回路10が外部メモリ9からデ
ータを読み出す(M[AD]→BIU)。サイクルT4においては
書き込みステージで、サイクルT3において外部メモリ9
から読み出されたデータがZバス3を経由してレジスタ
ファイル4中のRzで指定されるレジスタに書き込まれる
(BIU→Zバス→Rz) 。以上により、命令語(RD Rx, off,
Rz)の処理が終了する。
なわないタイプの命令語、たとえば前述の命令語(ADD R
x, Ry, Rz)と、メモリ参照(外部アクセス)を行なうタ
イプの命令語、たとえば前述の命令語(RD Rx, off, Rz)
とのいずれのタイプの命令語でもパイプライン処理は基
本的には同様の手順で実行される。
術によるパイプライン処理機能を有するデータ処理装置
では、メモリ参照を行なわないタイプの命令語の処理と
外部アクセスによりメモリからデータを読み出す (メモ
リ参照を行なう) タイプの命令語の処理とは基本的には
いずれも同様の手順でパイプライン処理される。従っ
て、双方のタイプの命令語が混在する場合には、メモリ
からデータを読み出す、あるいは書き込むためのメモリ
参照ステージでの処理が1サイクルで完了する必要があ
る。しかし、一般的に外部メモリは動作速度がデータ処
理装置本体に比して低速であるため、そのような要求を
満たすために通常はデータキャッシュが使用される。し
かし、データキャッシュは比較的コストが高いため、た
とえばデータ処理装置が所謂組み込み用途、即ち種々の
家電製品等のコントローラとして使用されるような場合
にはコスト面の制約から採用され難いのが実情である。
このため、従来はパイプライン処理を行なわないか、あ
るいはメモリ参照ステージでの処理が1サイクルで完了
するようにデータ処理速度を低くする手法、換言すれば
1サイクルの時間を長くするというような手法が採用さ
れていた。
ものであり、メモリアクセス、即ちメモリからデータを
読み出す処理が2サイクル以上にわたった場合において
も、パイプライン処理が滞ることのないパイプライン処
理機能を有するデータ処理装置の提供を目的とする。
る命令により書き換えられるレジスタを使用する場合に
は、後続する命令のパイプライン処理を一旦停止して所
謂レジスタコンフリクトを回避し得るパイプライン処理
機能を有するデータ処理装置の提供をも目的とする。
ン処理機能を有するデータ処理装置は、複数のレジスタ
を含むレジスタファイルと、命令語の処理をその処理結
果をレジスタファイル中のいずれかのレジスタに格納す
る書き込みステージを含む複数のステージに分解して実
行するパイプライン処理機能とを備え、外部アクセスに
より外部からデータを読み込んで書き込みステージにお
いてレジスタファイル中のいずれかのレジスタに格納す
る外部アクセスタイプの命令語を含む複数のタイプの命
令語をパイプライン処理機能により処理するデータ処理
装置であって、前記外部アクセスタイプの命令語の処理
により外部から読み込まれたデータを記憶するデータ記
憶手段と、外部アクセスタイプの命令語の処理結果のデ
ータが格納されるべきレジスタを指定するレジスタ情報
を記憶するレジスタ情報記憶手段と、外部アクセスタイ
プの命令語の処理により外部から読み込まれたデータを
データ記憶手段に一旦記憶させ、次に外部アクセスタイ
プの命令語が処理される際の書き込みステージにおい
て、レジスタ情報記憶手段が記憶しているレジスタ情報
により指定されるレジスタにデータ記憶手段が記憶して
いるデータを格納させる制御手段とを備えたことを特徴
とする。
するデータ処理装置は、複数のレジスタを含むレジスタ
ファイルと、命令語の処理をその処理結果をレジスタフ
ァイル中のいずれかのレジスタに格納する書き込みステ
ージを含む複数のステージに分解して実行するパイプラ
イン処理機能とを備え、外部アクセスにより外部からデ
ータを読み込んで書き込みステージにおいてレジスタフ
ァイル中のいずれかのレジスタに格納する外部アクセス
タイプの命令語を含む複数のタイプの命令語をパイプラ
イン処理機能により処理するデータ処理装置であって、
前記外部アクセスタイプの命令語の処理により外部から
読み込まれたデータを記憶するデータ記憶手段と、外部
アクセスタイプの命令語の処理結果のデータが格納され
るべきレジスタを指定するレジスタ情報を記憶するレジ
スタ情報記憶手段と、レジスタ情報記憶手段が記憶して
いる情報と、外部アクセスタイプの命令語に後続する命
令語が使用するレジスタを指定する情報とを比較する比
較手段を有し、外部アクセスタイプの命令語の処理によ
り外部から読み込まれたデータをデータ記憶手段に一旦
記憶させ、次に外部アクセスタイプの命令語が処理され
る際の書き込みステージにおいて、レジスタ情報記憶手
段が記憶しているレジスタ情報により指定されるレジス
タにデータ記憶手段が記憶しているデータを格納させ、
外部アクセスタイプの命令語による外部アクセスが終了
する以前に比較手段が一致を検出した場合は、外部アク
セスタイプの命令語に後続する命令語の実行を外部アク
セスタイプの命令語の外部アクセスが終了するまで停止
させる制御手段とを備えたことを特徴とする。
ータ処理装置では、外部アクセスタイプの命令語の処理
により外部から読み込まれたデータがデータ記憶手段に
一旦記憶され、次に外部アクセスタイプの命令語が処理
される際の書き込みステージにおいて、レジスタ情報記
憶手段が記憶しているレジスタ情報により指定されるレ
ジスタにデータ記憶手段が記憶しているデータが格納さ
れる。これにより、外部アクセスタイプの命令語による
外部アクセスに要する時間には拘わらずパイプライン処
理が滞ることなく実行される。
有するデータ処理装置では更に、外部アクセスタイプの
命令語による外部アクセスが終了する以前に比較手段が
一致を検出した場合は、外部アクセスタイプの命令語に
後続する命令語の実行を外部アクセスタイプの命令語の
外部アクセスが終了するまで停止される。これにより、
後続する命令のパイプライン処理が一旦停止されて所謂
レジスタコンフリクトが回避される。
いて詳述する。なお、最初に本発明のパイプライン処理
機能を有するデータ処理装置により処理される命令語に
ついて説明し、その後に本発明のパイプライン処理機能
を有するデータ処理装置の構成について説明する。
ータ処理装置により処理される命令語は32ビット長であ
り、実行すべき演算の種類またはメモリの読み出し等の
動作を指定するためのフィールド, レジスタを指定する
ためのフィールド, またはオフセットデータを指定する
ためのフィールド等で構成されている。フォーマットと
しては数種類があり、個々の命令語に応じていずれのフ
ォーマットが使用されるかは固定されている。また、あ
る種類のフォーマットには特定のフィールド、たとえば
レジスタRyを指定するフィールドが存在しない場合もあ
る。以下に本発明のデータ処理装置により処理される命
令語の一例を、図3の模式図に命令語のフォーマットの
一例を示す。
の命令語であり、Rxで指定されるソースレジスタの内容
とRyで指定されるソースレジスタの内容とを加算し、そ
の加算結果をRzで指定されるデスティネーションレジス
タに書き込む処理を指定する。命令語(RD Rx off Rz)は
データ転送のための命令語であり、Rxで指定されるソー
スレジスタの内容にoff を値とするオフセットデータを
加算した結果をアドレスとして外部メモリからデータを
読み出し、そのデータをRzで指定されるデスティネーシ
ョンレジスタに書き込む処理を指定する。命令語(OR R
x, Ry, Rz) は論理和演算のための命令語であり、Rxで
指定されるソースレジスタの内容とRyで指定されるソー
スレジスタの内容とを論理和演算し、その結果をRzで指
定されるデスティネーションレジスタに書き込む処理を
指定する。命令語(SUB Rx, Ry, Rz)は算術減算のための
命令語であり、Rxで指定されるソースレジスタの内容か
らRyで指定されるソースレジスタの内容を減算し、その
結果をRzで指定されるデスティネーションレジスタに書
き込む処理を指定する。命令語(AND Rx, Ry, Rz)は論理
積演算のための命令語であり、Rxで指定されるソースレ
ジスタの内容とRyで指定されるソースレジスタの内容と
を論理積演算し、その結果をRzで指定されるデスティネ
ーションレジスタに書き込む処理を指定する。
によるデコードを容易にするため、指定する対象が同一
であるフィールドは異なるフォーマットであっても同一
のビット位置に位置するように定められている。たとえ
ば、図3に参照符号100 にて示されている命令語のフォ
ーマットはビット0乃至4がRzのフィールド, ビット5
乃至9がRxのフィールド, ビット10乃至14がRyのフィー
ルド, ビット15乃至31が演算(ADD) を指定するフィール
ドになっている。
る命令語のフォーマットはビット0乃至4がRzのフィー
ルド, ビット5乃至9がRxのフィールド, ビット10乃至
25がoff のフィールド, ビット26乃至31が演算(RD)を指
定するフィールドになっている。
のフィールドにより演算OR, SUB, ANDを指定することも
可能である。従って、上述の命令語を例にすると、各命
令語のRzのフィールドはいずれのフォーマットにおいて
も同一のビット位置、ビット0乃至4にあり、同様に各
命令語のRxのフィールドもビット5乃至9にある。ま
た、命令語(ADD Rx, Ry, Rz), 命令語(OR Rx, Ry, Rz),
命令語(SUB Rx, Ry, Rz)及び命令語(AND Rx, Ry, Rz)の
Ryのフィールドもビット10乃至14にある。
いて説明する。本発明のデータ処理装置では基本的には
命令語の処理を4段(ステージ)のパイプラインで行な
う。パイプラインの各ステージの構成は以下の如くであ
る。第1ステージはフェッチステージであり、命令語が
命令語キャッシュからフェッチされる。第2ステージは
デコードステージであり、フェッチされた命令語がデコ
ードされる。第3ステージは実行ステージであり、命令
語で指定された演算が演算論理回路によって実行され
る。第4ステージは書き込みステージであり、実行ステ
ージで得られた演算結果がレジスタに書き込まれる。
の要部の構成例を示すブロック図である。図2におい
て、”○”にて示されている部分はそれぞれに接続され
ている破線にて示されている信号線から与えられる信号
が論理”1”である場合に信号を伝達するゲートを示し
ている。信号φは本発明のデータ処理装置の同期クロッ
ク信号を示しており、信号#φはその反転信号である。
信号φ・#RDは、メモリからデータを読み出す命令語以
外の命令語の実行ステージでの処理の前半において論
理”1”になる制御信号を示しており、命令語がデコー
ドされた時点で信号φ・#RDが出力されるべきであるか
否かが判明する。信号φ・RDは実行ステージにおいてメ
モリからデータを読み出す命令語が処理される際に、サ
イクルの前半で論理”1”になる制御信号を示してお
り、命令語がデコードされた時点で信号φ・RDが出力さ
れるべきであるか否かが判明する。
り、図示されていない命令キャッシュと接続されてお
り、パイプラインのデコードステージに対応して命令語
の各ビットを保持する。
ゲート150 を介して命令語レジスタ14のビット0乃至4
が格納される部分、具体的には各命令語のRzのフィール
ドが格納される部分と接続されている。なお、ゲート15
0 は信号#φにより制御される。具体的には、ゲート15
0 は、命令語レジスタ14のビット0乃至4の信号を信号
#φが論理”1”である場合に第1のラッチ15へ伝達す
る。
ゲート160 を介して第1のラッチ15の出力と接続されて
いる。なお、ゲート160 は信号φ・RDにより制御され
る。具体的には、ゲート160 は、第1のラッチ15が出力
している信号を信号φ・RDが論理”1”である場合に第
2のラッチ16へ伝達する。
ゲート170 を介して第2のラッチ16の出力と接続されて
いる。なお、ゲート170 は信号#φにより制御される。
具体的には、ゲート170 は、第2のラッチ16が出力して
いる信号RBを信号#φが論理”1”である場合に第3の
ラッチ17へ伝達する。
ゲート180 を介して第1のラッチ15の出力と、ゲート18
1 を介して第3のラッチ17の出力とそれぞれ接続されて
いる。なお、ゲート180 は信号φ・#RDにより、ゲート
181 は信号φ・RDによりそれぞれ制御される。具体的に
は、ゲート180 は、第1のラッチ15が出力している信号
を信号φ・#RDが論理”1”である場合に第4のラッチ
18へ伝達する。また、ゲート181 は、第3のラッチ17が
出力している信号を信号φ・RDが論理”1”である場合
に第4のラッチ18へ伝達する。
ト5乃至9に対応する部分、即ち各命令語のRxのフィー
ルドが格納される部分の出力を信号RXとし、同じくビッ
ト10乃至14に対応する部分、即ち命令語(RD Rx off Rz)
以外の各命令語のRyのフィールドが格納される部分の出
力を信号RYとし、同じくビット0乃至4に対応する部
分、即ち各命令語のRzのフィールドが格納される部分の
出力を信号RZとする。更に、第4のラッチ18の出力を信
号RZ' とし、第2のラッチ16の出力を信号RBとする。
しても機能する比較回路を示しており、信号RX, 信号R
Y, 信号RZ, 信号RZ' の各信号を信号RBと比較し、比較
結果を表す信号RBtoX, RBtoY, ZtoRB, RZeqRB をそれぞ
れ出力する。なお、信号RBtoXは信号RXと信号RBとが一
致した場合に論理”1”になり、信号RBtoY は信号RYと
信号RBとが一致した場合に論理”1”になり、信号ZtoR
B は信号RZ' と信号RBとが一致した場合に論理”1”に
なる。また、信号RZeqRBは信号RZと信号RBとが一致した
場合に論理”1”になる。
スの構成例を示すブロック図である。参照符号1はデー
タパス中の第1のデータバスを示しており、以下Xバス
という。参照符号2はデータパス中の第2のデータバス
を示しており、以下Yバスという。参照符号3はデータ
パス中の第3のデータバスを示しており、以下Zバスと
いう。
り、複数のレジスタにて構成されている。このレジスタ
ファイル4はXバス1及びYバス2への出力経路と、Z
バス3からの入力経路とを有する。なお、デコードステ
ージでは、信号RXで指定されるレジスタの内容と信号RY
で指定されるレジスタの内容とがレジスタファイル4か
ら読み出される。そして、デコードステージで命令語の
Rxのフィールドが有効であり且つ信号RBtoX が論理”
0”であった場合は、信号RXで指定されるレジスタの内
容がXバス1へ実行ステージで出力される。また、デコ
ードステージで命令語のRyのフィールドが有効であり且
つ信号RBtoY が論理”0”であった場合は、信号RYで指
定されるレジスタの内容がYバス2へ実行ステージで出
力される。更に、デコードステージで命令語のRZのフィ
ールドが有効であり且つ実行ステージで信号ZtoRB が論
理”0”であった場合は、信号RZ' で指定されるレジス
タに対してZバス3からデータが書き込みステージで書
き込まれる。
おり、Yバス2への出力経路を有する。デコードステー
ジで命令語のオフセットデータを指定するフィールドof
f が有効であった場合は、オフセットレジスタ5の内容
がYバス2へ実行ステージで出力される。
おり、Xバス1及びYバス2からの入力経路を有する。
論理演算回路6は実行ステージで、Xバス1のデータと
Yバス2のデータとを入力し、命令語で指定された算術
演算または論理演算を両データに対して実行する。
符号8はアドレスレジスタをそれぞれ示しており、いず
れも論理演算回路6の出力と接続されている。実行ステ
ージで論理演算回路6により得られた結果が演算結果で
ある場合はテンポラリレジスタ7がその演算結果を一時
的に保持し、それを書き込みステージでZバス3へ出力
する。実行ステージで論理演算回路6により得られた結
果が外部メモリ9に対するアドレスである場合はアドレ
スレジスタ8がそれを保持する。
しており、アドレスレジスタ8からの入力経路と、後述
するリードバッファレジスタ13への出力経路とを有す
る。また、バスインタフェイス回路10は外部メモリ9と
はアドレスバス11, データバス12及び図示されていない
制御信号線で接続されている。従って、バスインタフェ
イス回路10はアドレスレジスタ8からアドレスが与えら
れると、それをアドレスバス11を介して外部メモリ9に
与えることにより、外部メモリ9をアクセスしてアドレ
スに対応するデータをデータバス12を介して読み出す。
スタであり、バスインタフェイス回路10及びZバス3か
らの入力経路と、Xバス1, Yバス2及びZバス3への
出力経路とを有する。リードバッファレジスタ13は、デ
コードステージで命令語のRxのフィールドが有効であり
且つ信号RBtoX が論理”1”であった場合は、自身の内
容をXバス1へ実行ステージで出力する。また、リード
バッファレジスタ13は、デコードステージで命令語のRy
のフィールドが有効であり且つ信号RBtoY が論理”1”
であった場合は、実行ステージで自身の内容をYバス2
へ出力する。更に、デコードステージで命令語のRzのフ
ィールドが有効であり且つ実行ステージで信号ZtoRB が
論理”1”であった場合は、書き込みステージでZバス
3のデータがリードバッファレジスタ13に書き込まれ
る。また更に、デコードステージで命令語のRzのフィー
ルドが有効であり且つ実行ステージで処理された命令語
が外部メモリ9からデータを読み出す命令であった場合
は、書き込みステージでZバス3へリードバッファレジ
スタ13の内容が出力される。
するデータ処理装置の動作について、まず基本的な処理
手順を示すために一つの命令語を処理する場合につい
て、次にメモリからデータが読み出される際の処理手順
を示すために、データの外部メモリ9からの読み出しを
行なう命令語を含む複数の命令語の連続的な処理につい
てそれぞれ説明する。
てそのパイプライン処理の流れを示すタイミングチャー
トである。ここでは、命令語の一例としてたとえば前述
の算術加算の命令語(ADD Rx, Ry, Rz)がパイプラインで
処理される手順について説明する。なお、この命令語(A
DD Rx, Ry, Rz)は、Rxで指定されるソースレジスタの内
容とRyで指定されるソースレジスタの内容とを加算(AD
D) してRzで指定されるデスティネーションレジスタに
書き込む命令語であり、メモリ参照は行なわない。
Rx, Ry, Rz)の処理手順においては、信号RX, RY, RZ,
RZ' はいずれも信号RBとは一致しない。また、図4にお
いて、T0, T1, T2, T3は同期クロックの各サイクルを示
している。また、「フェッチ」, 「デコード」, 「実
行」, 「書き込み」の各欄はそれぞれフェッチステー
ジ, デコードステージ, 実行ステージ, 書き込みステー
ジでの処理内容を示し、信号の欄のφ, φ・#RD, RX,
RY, RZ, RZ', RB はそれぞれ、本発明のデータ処理装置
の同期クロック信号, 信号φ・#RD, 信号RX, 信号RY,
信号RZ, 信号RZ',信号RBの内容を示す。
ェッチステージでの処理が行なわれる。具体的には、命
令語(ADD Rx, Ry, Rz)が命令語キャッシュからフェッチ
される。
コードステージでの処理が行なわれる。具体的には、命
令語(ADD Rx, Ry, Rz)が命令語レジスタ14へ送られて保
持され、図示されていないデコーダによりデコードされ
る。これにより、命令語(ADDRx, Ry, Rz)を実行するた
めに必要な制御信号を実行ステージで出力する用意が行
なわれる。この際、命令語レジスタ14のRxのフィールド
にはRx0 が、RyのフィールドにはRy0 が、Rzのフィール
ドにはRz0 がそれぞれ保持されているとすると、信号R
X, 信号RY, 信号RZとしてそれぞれRx0, Ry0, Rz0 が出
力される。従って、サイクルT1中に、命令語レジスタ14
中のRx0 で指定されるレジスタの内容とRy0 で指定され
るレジスタの内容とがレジスタファイル4からそれぞれ
読み出される (Rxリード, Ryリード) 。
のサイクルT1の後半の開始時に信号#φが論理”1”に
立ち上がるので、ゲート150 から出力されて第1のラッ
チ15に保持される。
行ステージでの処理が行なわれる。具体的には、命令語
(ADD Rx, Ry, Rz)を実行するための制御信号が図1に示
されているデータパスの各部分へ出力される。これによ
り、レジスタファイル4からXバス1へはRx0 で指定さ
れるレジスタの内容が、Yバス2へはRy0 で指定される
レジスタの内容がそれぞれ出力される(Rx0→Xバス, R
y0→Yバス) 。そして、Xバス1へ出力されているデー
タとYバス2へ出力されているデータとが論理演算回路
6により加算され、その結果はテンポラリレジスタ7に
保持される (Xバス+Yバス→T) 。
に保持されたRz0 は、このサイクルT2の開始時に信号φ
・#RDが論理”1”に立ち上がるので、ゲート180 から
出力されて第4のラッチ18にラッチされる。従って、こ
のサイクルT2においては、第4のラッチ18から信号RZ'
としてRz0 が出力される。
き込みステージでの処理が行なわれる。具体的には、テ
ンポラリレジスタ7の内容がZバス3へ出力され、この
データが、信号RZ' としはRz0 が出力されているので、
Rz0 で指定されるレジスタファイル4中のレジスタに書
き込まれる (T→Zバス→Rz0)。
ータ処理装置では、一つの命令語の処理は以上のような
手順で行なわれる。
メモリ参照を行なう命令語を含む複数の命令語を連続的
に処理する場合のパイプライン処理の流れを示すタイミ
ングチャートである。ここでは、連続的に処理される複
数の命令語の一例としてたとえば前述の命令語(RD Rx o
ff Rz)を第1の命令語とし、メモリ参照を行なわない命
令語(ADD Rx, Ry, Rz)と同タイプ、即ちRx, Ry, Rzの各
フィールドを有し、論理積演算(ADD) を行なう命令語(A
ND Rx, Ry, Rz)を第2の命令語とし、両者がパイプライ
ンで処理される手順について説明する。更に、第2の命
令語(AND Rx, Ry, Rz)に引き続いていずれもメモリ参照
を行なわない第3の命令語(OR Rx, Ry,Rz) 及び第4の
命令語(SUB Rx, Ry, Rz)が処理されるのもとする。
Rxを指定するフィールドの内容としてRx0 が、Rzを指定
するフィールドの内容としてRz0 がそれぞれ保持されて
いるとし、以降は第1の命令語(RD Rx0, off, Rz0)と記
す。第2の命令語(AND Rx, Ry, Rz)では、Rxを指定する
フィールドの内容としてRx1 が、Ryを指定するフィール
ドの内容としてRy1 が、Rzを指定するフィールドの内容
としてRz1 がそれぞれ保持されているものとし、以降は
第2の命令語(AND Rx1, Ry1, Rz1) と記す。
は、Rxを指定するフィールドの内容としてRx2 が、Ryを
指定するフィールドの内容としてRy2 が、Rzを指定する
フィールドの内容としてRz2 がそれぞれ保持されている
とし、以降は第3の命令語(ORRx2, Ry2, Rz2)と記す。
第4の命令語(SUB Rx, Ry, Rz)では、Rxを指定するフィ
ールドの内容としてRx3 が、Ryを指定するフィールドの
内容としてRy3 が、Rzを指定するフィールドの内容とし
てRz3 がそれぞれ保持されているとし、第4の命令語(S
UB Rx3, Ry3, Rz3) と記す。
は、Rx0 で指定されるソースレジスタの内容とoff で指
定されるオフセットデータとを加算し、その結果をアド
レスとしてメモリから読み出したデータをRz0 で指定さ
れるデスティネーションレジスタに書き込む命令語であ
る。また、第2の命令語(AND Rx1, Ry1, Rz1) は、Rx1
で指定されるソースレジスタの内容とRy1 で指定される
ソースレジスタの内容とを論理積演算し、その結果をRz
1 で指定されるデスティネーションレジスタに書き込む
命令語である。
は、Rx2 で指定されるソースレジスタの内容とRy2 で指
定されるソースレジスタの内容とを論理和演算し、その
結果をRz2 で指定されるデスティネーションレジスタに
書き込む命令語である。また、第4の命令語(SUB Rx3,
Ry3, Rz3) は、Rx3 で指定されるソースレジスタの内容
からRy3 で指定されるソースレジスタの内容を算術減算
し、その結果をRz3 で指定されるデスティネーションレ
ジスタに書き込む命令語である。
ックの各サイクルを示している。また、「フェッチ」,
「デコード」, 「実行」, 「書き込み」の各欄はそれぞ
れフェッチステージ, デコードステージ, 実行ステー
ジ, 書き込みステージでの処理内容を示し、「メモリ参
照」はパイプライン処理と並列に動作するバスインタフ
ェイス回路10により実行されるメモリアクセスを示す。
また、信号の欄のφ, φ・RD, φ・#RD, BSY, RX, RY,
RZ, RZ', RBはそれぞれ、本発明のデータ処理装置の同
期クロック信号, 信号φ・RD, 信号BSY,信号φ・#RD,
信号RX, 信号RY,信号RZ, 信号RZ',信号RBの内容を示
す。
部メモリ9からデータを読み出す命令語が処理される際
に、サイクルの後半で論理”1”になり、メモリ参照の
最後のサイクルの後半で論理”0”に戻る信号である。
Rx0, off, Rz0)に対するフェッチステージでの処理が行
なわれる。具体的には、第1の命令語(RD Rx0, off, Rz
0)が命令語キャッシュからフェッチされる。なお、第1
の命令語(RD Rx0, off, Rz0)の処理に先立ってメモリか
らデータを読み出す命令語(RD Rx', off', Rz') が処理
されたものとする。従って、この時点での信号RBは前回
処理されたメモリからデータを読み出す命令語(RD Rx',
off', Rz') のRz' である。
Rx0, off, Rz0)に対するデコードステージでの処理が行
なわれる。具体的には、サイクルT0においてフェッチさ
れた第1の命令語(RD Rx0, off, Rz0)が命令語レジスタ
14に送られて保持され、図示されていないデコーダによ
りデコードされる。これにより、第1の命令語(RD Rx0,
off, Rz0)を実行するために必要な制御信号を実行ステ
ージで出力する用意が行なわれる。この際、命令語レジ
スタ14のRxのフィールドにはRx0 が、Rzのフィールドに
はRz0 がそれぞれ保持されるので、信号RXとしてRx0
が、信号RZとしてRz0 がそれぞれ出力される。従って、
このサイクル中に、命令語レジスタ14中のRx0 で指定さ
れるレジスタの内容がレジスタファイル4から読み出さ
れる (Rx0リード) 。
0)ではRyのフィールドが無効であるため信号RYも不定
(?) となり、Rx0 で指定されるレジスタと同時に読み出
される他方のレジスタは不定になる。しかし、これは使
用されないため、問題にはならない。また、比較回路20
は信号RXと信号RBとを比較しており、両者が一致した場
合には信号RBtoX が論理”1”になる。しかし、この場
合は信号RBはクロックT0から引き続いて、前回処理され
た命令語(RD Rx', off', Rz') のRz' であるため一致し
ない。従って、信号RBtoX は論理”0”になる。
のサイクルT1の後半の開始時に信号#φが論理”1”に
立ち上がるので、ゲート150 から出力されて第1のラッ
チ15に保持される。
のデコードステージでの処理と同時に、サイクルT1にお
いてはフェッチステージで次の第2の命令語(AND Rx1,
Ry1,Rz1) が命令語キャッシュメモリからフェッチされ
る。
Rx0, off, Rz0)に対する実行ステージでの処理が行なわ
れる。具体的には、第1の命令語(RD Rx0, off, Rz0)を
実行するための制御信号が図1に示されているデータパ
スの各部分へ出力される。これにより、Xバス1へは信
号RBtoX の値(”1”または”0”)に応じてリードバ
ッファレジスタ13の値またはレジスタファイル4中のRx
0 で指定されるレジスタの内容のいずれかが出力され、
Yバス2へはオフセットレジスタ5の内容が出力され
る。但し、この場合は信号RBtoX は論理”0”であるた
め、Xバス1へはレジスタファイル4中のRx0 で指定さ
れるレジスタの内容が出力され、Yバス2へはオフセッ
トレジスタ5の内容が出力される (Rx0 →Xバス,off→
Yバス) 。そして、論理演算回路6はXバス1へ出力さ
れているデータとYバス2へ出力されているデータとの
加算を行い、その結果はアドレスレジスタ8に保持され
る (Xバス+Yバス→AD) 。
令語(RD Rx0, off, Rz0)がメモリ参照を行なう命令語で
あるため、その前半では信号φ・RDが論理”1”にな
る。このため、第2のラッチ16には第1のラッチ15に保
持されていたRz0 がゲート160から書き込まれ、第4の
ラッチ18には第3のラッチ17に保持されていたRz' がゲ
ート181 から書き込まれる。従って、信号RBとしてRz0
が、信号RZ' としてRz'がそれぞれ出力される。
語(AND Rx1, Ry1, Rz1) に対するデコードステージでの
処理も行なわれる。具体的には、サイクルT1でフェッチ
されー第2の命令語(AND Rx1, Ry1, Rz1) が命令語レジ
スタ14に送られて保持され、図示されていないデコーダ
によりデコードされる。これにより、第2の命令語(AND
Rx1, Ry1, Rz1) を実行するために必要な制御信号を実
行ステージで出力する用意が行なわれる。この際、命令
語レジスタ14のRxのフィールドにはRx1 が、Ryのフィー
ルドにはRy1 が、RzのフィールドにはRz1 がそれぞれ保
持されるので、信号RX, 信号RY, 信号RZとしてそれぞれ
Rx1, Ry1, Rz1 が出力される。従って、このサイクル中
に、命令語レジスタ14中のRx1 で指定されるレジスタの
内容とRy1 で指定されるレジスタの内容とがレジスタフ
ァイル4からそれぞれ読み出される(Rx1リード, Ry1 リ
ード) 。
及び信号RZの各信号と信号RBとをそれぞれ比較してお
り、信号RXと信号RBとが一致した場合には信号RBtoX が
論理”1”になり、信号RYと信号RBとが一致した場合に
は信号RBtoY が論理”1”になり、信号RZと信号RBとが
一致した場合には信号RZeqRBが論理”1”になる。但
し、この場合には信号RBはRz0 であるので、いずれも論
理”1”になることはない。
Rx0, off, Rz0)に対する書き込みステージでの処理が行
なわれる。ここで、サイクルT2において実行ステージで
処理された命令語がメモリからデータを読み出す第1の
命令語(RD Rx0, off, Rz0)であるため、第1の命令語(R
D Rx0, off, Rz0)に先立って処理された命令語(RD Rx',
off', Rz') により外部メモリ9から読み出されてリー
ドバッファレジスタ13に格納されているデータがZバス
3へ出力され、且つサイクルT2において信号RZ' として
Rz' が出力されたのでZバス3へ出力されたリードバッ
ファレジスタ13の内容がレジスタファイル4中のRz' で
指定されるレジスタに書き込まれる (RB→Zバス→R
z')。
レスレジスタ8に保持されているアドレスでメモリ参照
を開始する。具体的には、サイクルT2において第1の命
令語(RD Rx0, off, Rz0)のRx0 とoff とから求められた
アドレスでバスインタフェイス回路10が外部メモリ9を
アクセスし、対応するデータをリードバッファレジスタ
13に保持させる(BIU→RB) 。
(AND Rx1, Ry1, Rz1) に対する実行ステージでの処理も
行なわれる。具体的には、第2の命令語(AND Rx1, Ry1,
Rz1) を実行するための制御信号が図1に示されている
データパスの各部分へ出力される。これにより、レジス
タファイル4からXバス1へはRx1 で指定されるレジス
タの内容が、Yバス2へはRy1 で指定されるレジスタの
内容がそれぞれ出力される(Rx1→Xバス, Ry1→Yバ
ス) 。そして、Xバス1へ出力されているデータとYバ
ス2へ出力されているデータとの論理積演算(AND) が論
理演算回路6により行なわれ、その結果はテンポラリレ
ジスタ7に保持される (Xバス∧Yバス→T) 。この
際、第2の命令語(AND Rx1, Ry1, Rz1) のRzのフィール
ドの内容Rz1が第1のラッチ15を介して第4のラッチ18
に送られており、第4のラッチ18から信号RZ' としてRz
1 が出力される。
で第2の命令語(AND Rx1, Ry1, Rz1) に対する書き込み
ステージでの処理が行なわれる。具体的には、テンポラ
リレジスタ7の内容がZバス3へ出力され、信号RZ' が
Rz1 であるため、実行ステージにおいてZバス3へ出力
されているデータがレジスタファイル4中のRz1 で指定
されるレジスタに書き込まれる (T→Zバス→Rz1)。
1の命令語(RD Rx0, off, Rz0)のバスインタフェイス回
路10による外部メモリ9に対するメモリ参照(BIU→RB)
も継続されているが、サイクルT4において完了する。な
お、この第1の命令語(RD Rx0, off, Rz0)のメモリ参照
により外部メモリ9から読み出されたデータはリードバ
ッファレジスタ13に格納される。
2, Ry2, Rz2) あるいは更に第4の命令語(SUB Rx3, Ry
3, Rz3) が引き続いて処理される場合にも、第2の命令
語(AND Rx1, Ry1, Rz1) と同様の手順で各ステージによ
り順次処理される。そしてたとえば、上述の第1の命令
語(RD Rx0, off, Rz0)により外部メモリ9から読み出さ
れてリードバッファレジスタ13に格納されているデータ
は、図5において第1の命令語(RD Rx0, off, Rz0)をそ
れに先立って処理された命令語(RD Rx', off',Rz') と
見做せば、次にメモリ参照を行なう、即ちメモリからデ
ータを読出す命令語が処理された場合にその第4サイク
ル(T3)においてRz0 で指定されるレジスタファイル4中
のレジスタに格納される。
は、第1の命令語(RD Rx, off, Rz)はメモリ参照を行な
う命令語であるため、サイクルT2の後半からサイクルT3
を経てサイクルT4の前半までにおいては、信号BSY は論
理”1”になる。このため、サイクルT2の後半及びサイ
クルT3の期間において信号RBtoX が論理”1”になった
場合、または信号RBtoY が論理”1”になった場合に
は、第1の命令語(RD Rx, off, Rz)による外部メモリ9
からデータを読み出すためのアクセスが完了する以前
に、そのデータがが書き込まれるレジスタ (Rzで指定さ
れるレジスタ) の内容を第2の命令語(AND Rx, Ry, Rz)
が読み出そうとしていることを意味し、所謂レジスタコ
ンフリクトが発生する。また、信号RZeqRBが論理”1”
になった場合には、外部メモリ9からのデータが書き込
まれるレジスタに他の演算結果を書き込もうとすること
になり、この場合にもレジスタコンフリクトが発生す
る。しかしこのような状態は第2の命令語の処理をデコ
ードステージで中断することにより阻止される。
れているように、第1の命令語(RDRx, off, Rz)として
(RD Rx0, off, Ri) が、第2の命令語(AND Rx, Ry, Rz)
として(AND Ri, Ry1, Rz1)が連続して処理される場合
について考える。なお、第2の命令語(AND Ri, Ry1, Rz
1)は第1の命令語(RD Rx0, off, Ri) により外部メモリ
9から読み出されたデータがRiで指定されるレジスタに
格納された後に、そのRiで指定されるレジスタの内容を
読み出して使用する命令語である。
1)のデコード結果に従って、サイクルT2において信号RX
がRiになるため、信号RBtoX が論理”1”になる。この
ため、第2の命令語(AND Ri, Ry1, Rz1)のデコードステ
ージでの処理はサイクルT4まで遅延され、実行ステージ
での処理はサイクルT5で行なわれる。また、サイクルT4
以降はレジスタファイル4のRiで指定されるレジスタの
代わりにリードバッファレジスタ13が使用される。
においては第1の命令語(RD Rx0, off, Ri) により外部
メモリ9から読み出されたデータはリードバッファレジ
スタ13に格納されている(BIU→RB) 。第2の命令語(AND
Ri, Ry1, Rz1)の処理は以下のようになる。サイクルT4
においてリードバッファレジスタ13の内容とレジスタフ
ァイル4中のRy1 で指定されるレジスタの内容とが読み
出される (RBリード,Ry1リード) 。サイクルT5において
両者はそれぞれXバス1及びYバス2へ読み出され(RB
→Xバス,Ry1→Yバス) 、論理積演算されてテンポラリ
レジスタ7に格納される (Xバス∧Yバス→T) 。その
結果はサイクルT6においてレジスタファイル4中のRz1
で指定されるレジスタに格納される (T→Zバス→Rz
1)。
に示されているように、第1の命令語(RD Rx, off, Rz)
として(RD Rx0, off, Ri) が、第2の命令語(AND Rx, R
y, Rz)として(AND Rx1, Ry1, Ri)が連続して処理される
場合について考える。なお、第2の命令語(AND Rx1 Ry
1, Ri) は第1の命令語(RD Rx0, off, Ri) により外部
メモリ9から読み出されたデータが格納されるレジス
タ、即ちRiで指定されるレジスタに、自身の演算結果を
格納する命令語である。
i)のデコード結果に従って、サイクルT2において信号RZ
がRiになるため、信号RZeqRBが論理”1”になる。この
ため、第2の命令語(AND Rx1, Ry1, Ri)のデコードステ
ージでの処理はサイクルT4まで遅延され、実行ステージ
での処理はサイクルT5で行なわれる。また、サイクルT4
以降はレジスタファイル4のRiで指定されるレジスタの
代わりにリードバッファレジスタ13が使用される。
においては第1の命令語(RD Rx0, off, Ri) により外部
メモリ9から読み出されたデータはリードバッファレジ
スタ13に格納されている(BIU→RB) 。第2の命令語(AND
Rx1, Ry1, Ri)の処理は以下のようになる。サイクルT4
においてレジスタファイル4中のRx1, Ry1でそれぞれ指
定されるレジスタの内容が共に読み出される(Rx1リー
ド,Ry1リード) 。サイクルT5において両者はそれぞれX
バス1及びYバス2へ読み出され(Rx1→Xバス,Ry1→Y
バス) 、論理積演算されてテンポラリレジスタ7に格納
される (Xバス∧Yバス→T) 。その結果はサイクルT6
においてリードバッファレジスタ13に格納される (T→
Zバス→RB) 。
機能を有するデータ処理装置では、メモリへのアクセス
が2サイクルにわたる場合にも、メモリのデータを読み
出す命令語によるレジスタファイルへのデータの書き込
みが、次のメモリのデータを読み出す命令語の処理に際
して他の命令語がレジスタファイルにデータを書き込む
タイミングと同様のタイミングで実行されるので、パイ
プライン処理の流れを乱す虞がなくなる。
が2サイクルに渡る場合について説明したが、メモリへ
のアクセスが3サイクルあるいはそれ以上にわたる場合
にも本発明を適用することが可能であることは言うまで
もない。
スタを一つ備えた構成について説明したが、二個あるい
はそれ以上備えた構成にも本発明を適用することが可能
であることは言うまでもない。
イン処理機能を有するデータ処理装置によれば、メモリ
へのアクセスが2サイクルにわたる場合にも、パイプラ
イン処理が滞ることが無くなるので、データキャッシュ
等のような比較的高価なハードウェアを使用する必要な
しに、即ち比較的低コストで高速動作可能なデータ処理
装置の提供が可能になる。
より読み出したデータで書き換えられるレジスタを後続
する命令語の処理に際して参照する可能性がある場合に
は、先行する命令によるメモリアクセスが終了するまで
後続の命令語による処理が停止されるので、そのような
場合の所謂レジスタコンフリクトが回避される。
例を示すブロック図である。
構成例を示すブロック図である。
令語のフォーマットの一例を示す模式図である。
を処理する場合についてそのパイプライン処理の流れを
示すタイミングチャートである。
ータを読み出す、即ちメモリ参照を行なう命令語を含む
複数の命令語を連続的に処理する場合のパイプライン処
理の流れを示すタイミングチャートである。
合の処理を本発明のデータ処理装置により処理する場合
のパイプライン処理の流れを示すタイミングチャートで
ある。
合の処理を本発明のデータ処理装置により処理する場合
のパイプライン処理の流れを示すタイミングチャートで
ある。
処理装置のデータパスの構成例を示すブロック図であ
る。
インで実行する場合の従来のデータ処理装置のパイプラ
インの構成及び各ステージによる処理の流れを示す模式
図である。
ラインで実行する場合の従来のデータ処理装置のパイプ
ラインの構成及び各ステージによる処理の流れを示す模
式図である。
ッファレジスタ、15,16, 17, 18 レジスタ、20 比較
回路。
Claims (2)
- 【請求項1】 複数のレジスタを含むレジスタファイル
と、命令語の処理をその処理結果を前記レジスタファイ
ル中のいずれかのレジスタに格納する書き込みステージ
を含む複数のステージに分解して実行するパイプライン
処理機能とを備え、外部アクセスにより外部からデータ
を読み込んで前記書き込みステージにおいて前記レジス
タファイル中のいずれかのレジスタに格納する外部アク
セスタイプの命令語を含む複数のタイプの命令語を前記
パイプライン処理機能により処理するパイプライン処理
機能を有するデータ処理装置において、 前記外部アクセスタイプの命令語の処理により外部から
読み込まれたデータを記憶するデータ記憶手段と、 前記外部アクセスタイプの命令語の処理結果のデータが
格納されるべきレジスタを指定するレジスタ情報を記憶
するレジスタ情報記憶手段と、 前記外部アクセスタイプの命令語の処理により外部から
読み込まれたデータを前記データ記憶手段に一旦記憶さ
せ、 次に前記外部アクセスタイプの命令語が処理される際の
前記書き込みステージにおいて、前記レジスタ情報記憶
手段が記憶しているレジスタ情報により指定されるレジ
スタに前記データ記憶手段が記憶しているデータを格納
させる制御手段とを備えたことを特徴とするパイプライ
ン処理機能を有するデータ処理装置。 - 【請求項2】 複数のレジスタを含むレジスタファイル
と、命令語の処理をその処理結果を前記レジスタファイ
ル中のいずれかのレジスタに格納する書き込みステージ
を含む複数のステージに分解して実行するパイプライン
処理機能とを備え、外部アクセスにより外部からデータ
を読み込んで前記書き込みステージにおいて前記レジス
タファイル中のいずれかのレジスタに格納する外部アク
セスタイプの命令語を含む複数のタイプの命令語を前記
パイプライン処理機能により処理するパイプライン処理
機能を有するデータ処理装置において、 前記外部アクセスタイプの命令語の処理により外部から
読み込まれたデータを記憶するデータ記憶手段と、 前記外部アクセスタイプの命令語の処理結果のデータが
格納されるべきレジスタを指定するレジスタ情報を記憶
するレジスタ情報記憶手段と、 前記レジスタ情報記憶手段が記憶している情報と、前記
外部アクセスタイプの命令語に後続する命令語が使用す
るレジスタを指定する情報とを比較する比較手段を有
し、 前記外部アクセスタイプの命令語の処理により外部から
読み込まれたデータを前記データ記憶手段に一旦記憶さ
せ、 次に前記外部アクセスタイプの命令語が処理される際の
前記書き込みステージにおいて、前記レジスタ情報記憶
手段が記憶しているレジスタ情報により指定されるレジ
スタに前記データ記憶手段が記憶しているデータを格納
させ、 前記外部アクセスタイプの命令語による外部アクセスが
終了する以前に前記比較手段が一致を検出した場合は、
前記外部アクセスタイプの命令語に後続する命令語の実
行を前記外部アクセスタイプの命令語の外部アクセスが
終了するまで停止させる制御手段とを備えたことを特徴
とするパイプライン処理機能を有するデータ処理装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01011295A JP3569811B2 (ja) | 1995-01-25 | 1995-01-25 | パイプライン処理機能を有するデータ処理装置 |
| US08/588,168 US5734855A (en) | 1995-01-25 | 1996-01-18 | Processor with pipeline processing function having read buffer register and latch for storing register information where the result of external access type instruction is stored |
| KR1019960001482A KR100197783B1 (ko) | 1995-01-25 | 1996-01-24 | 파이프라인 처리기능을 갖는 데이타프로세서 |
| TW085100926A TW286384B (ja) | 1995-01-25 | 1996-01-24 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01011295A JP3569811B2 (ja) | 1995-01-25 | 1995-01-25 | パイプライン処理機能を有するデータ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08202550A true JPH08202550A (ja) | 1996-08-09 |
| JP3569811B2 JP3569811B2 (ja) | 2004-09-29 |
Family
ID=11741238
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP01011295A Expired - Fee Related JP3569811B2 (ja) | 1995-01-25 | 1995-01-25 | パイプライン処理機能を有するデータ処理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5734855A (ja) |
| JP (1) | JP3569811B2 (ja) |
| KR (1) | KR100197783B1 (ja) |
| TW (1) | TW286384B (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3201716B2 (ja) * | 1996-02-22 | 2001-08-27 | シャープ株式会社 | コンピュータ装置 |
| US6298431B1 (en) * | 1997-12-31 | 2001-10-02 | Intel Corporation | Banked shadowed register file |
| US7373463B2 (en) * | 2003-02-13 | 2008-05-13 | Stmicroelectronics S.A. | Antifraud method and circuit for an integrated circuit register containing data obtained from secret quantities |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1443777A (en) * | 1973-07-19 | 1976-07-28 | Int Computers Ltd | Data processing apparatus |
| US4635194A (en) * | 1983-05-02 | 1987-01-06 | International Business Machines Corporation | Instruction buffer bypass apparatus |
| GB8401807D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Pipelined data processing apparatus |
| US5148536A (en) * | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
| JP2745669B2 (ja) * | 1989-04-27 | 1998-04-28 | ブラザー工業株式会社 | プリンタ |
| US5276822A (en) * | 1989-11-15 | 1994-01-04 | Matsushita Electric Industrial Co., Ltd. | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction |
| JP3035828B2 (ja) * | 1989-12-28 | 2000-04-24 | 甲府日本電気株式会社 | 情報処理装置 |
| EP0554489B1 (en) * | 1992-02-06 | 1999-12-01 | International Business Machines Corporation | Multi-port static random access memory with fast write-thru scheme |
| JP3145545B2 (ja) * | 1993-10-18 | 2001-03-12 | 松下電器産業株式会社 | メモリアクセス装置 |
| US5515521A (en) * | 1994-02-08 | 1996-05-07 | Meridian Semiconductor, Inc. | Circuit and method for reducing delays associated with contention interference between code fetches and operand accesses of a microprocessor |
-
1995
- 1995-01-25 JP JP01011295A patent/JP3569811B2/ja not_active Expired - Fee Related
-
1996
- 1996-01-18 US US08/588,168 patent/US5734855A/en not_active Expired - Fee Related
- 1996-01-24 KR KR1019960001482A patent/KR100197783B1/ko not_active Expired - Fee Related
- 1996-01-24 TW TW085100926A patent/TW286384B/zh active
Also Published As
| Publication number | Publication date |
|---|---|
| JP3569811B2 (ja) | 2004-09-29 |
| KR100197783B1 (ko) | 1999-06-15 |
| US5734855A (en) | 1998-03-31 |
| TW286384B (ja) | 1996-09-21 |
| KR960029969A (ko) | 1996-08-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4967338A (en) | Loosely coupled pipeline processor | |
| JP2620511B2 (ja) | データ・プロセッサ | |
| JPH05342084A (ja) | データ記憶装置及びデータ記憶方法 | |
| JPS63307535A (ja) | パイプライン制御回路 | |
| JP3569811B2 (ja) | パイプライン処理機能を有するデータ処理装置 | |
| JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
| US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
| JP3954159B2 (ja) | 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法 | |
| JP2668987B2 (ja) | データ処理装置 | |
| JP2869414B1 (ja) | データ処理装置 | |
| JP2511063B2 (ja) | パイプライン制御方式 | |
| JPH06161778A (ja) | マルチフロー命令制御方法及び命令処理装置 | |
| JP2721610B2 (ja) | プログラマブルコントローラ | |
| JP2806690B2 (ja) | マイクロプロセッサ | |
| JPH0228828A (ja) | 最大値最小値検出回路 | |
| JP2002268876A (ja) | パイプライン処理方法、及び情報処理装置 | |
| JPS63163634A (ja) | 命令フエツチ方式 | |
| JPS6047618B2 (ja) | 情報処理装置 | |
| JP2622026B2 (ja) | 中央処理装置におけるレジスタ書込制御方式 | |
| JPH02112054A (ja) | データ処理装置 | |
| JPH0256028A (ja) | マイクロコンピュータシステム | |
| JPS6027966A (ja) | データ処理装置 | |
| JPH0419575B2 (ja) | ||
| JPH03164945A (ja) | データ処理装置 | |
| JPH02206836A (ja) | データ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040309 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040514 |
|
| 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: 20040608 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040608 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
| LAPS | Cancellation because of no payment of annual fees |