JP2738683B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JP2738683B2
JP2738683B2 JP62128250A JP12825087A JP2738683B2 JP 2738683 B2 JP2738683 B2 JP 2738683B2 JP 62128250 A JP62128250 A JP 62128250A JP 12825087 A JP12825087 A JP 12825087A JP 2738683 B2 JP2738683 B2 JP 2738683B2
Authority
JP
Japan
Prior art keywords
instruction
data
bus
output
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62128250A
Other languages
Japanese (ja)
Other versions
JPS63293665A (en
Inventor
直幹 三ツ石
清 松原
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62128250A priority Critical patent/JP2738683B2/en
Publication of JPS63293665A publication Critical patent/JPS63293665A/en
Application granted granted Critical
Publication of JP2738683B2 publication Critical patent/JP2738683B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理技術、さらには命令実行サイク
ルの短縮技術に関し、例えば、命令を順次プリフェッチ
して処理する形式を有するマイクロプロセッサに適用し
て有効な技術に関するものである。 〔従来技術〕 マイクロプロセッサのようなデータ処理装置において
は、命令を先取りして処理する所謂パイプライン処理に
よってデータ処理速度の向上を図ることができる。本発
明者らは、このような命令先取り制御を採用したマイク
ロプロセッサとして、例えば第9図に示されるようなマ
イクロプロセッサについて検討した。 第9図においてDI/OBUFは、夫々外部データバスEDBUS
に結合されたデータ入力バッファDIBUF及びデータ出力
バッファDOBUFから成るデータ入出力バッファ、IIBUFは
前記外部データバスEDBUSに結合された命令入力バッフ
ァ、CONTは前記命令入力バッファIIBUFから供給される
命令を解読するインストラクションデコーダ及びそのデ
コード結果に基づいて各部をに制御信号を供給する制御
部を含むデコーダ・制御部、ALUは算術論理演算器、REG
は各種レジスタによって構成されるレジスタアレイ、AO
BUFは外部アドレスバスEABUSにアドレス信号を供給する
アドレス出力バッファ、IDBUSは前記入出力バッファ回
路DI/OBUF,算術論理演算器ALU,レジスタアレイREGに結
合された内部データバス、IABUSは前記入出力バッファ
回路DI/OBUF,算術論理演算器ALU,レジスタREG,アドレス
出力バッファAOBUFに結合された内部アドレスバスであ
る。尚、第9図においては、クロック信号線や制御信号
線は省略されている。 前記内部データバスIDBUS、外部データバスEDBUS、内
部アドレスバスIABUS、及び外部アドレスバスEABUSは、
特に制限されないが、夫々16ビット幅とされ、16ビット
のアドレス出力、8ビット又は16ビットのデータ転送が
可能になっている。 前記命令入力バッファIIBUFは、特に制限されない
が、所謂マスタ・スレーブ型のフリップフロップによっ
て構成され、外部データバスEDBUS上の内容を選択的に
マスタフリップフロップに取り込み、また、マスタフリ
ップフロップの内容は選択的にスレーブフリップフロッ
プに転送可能とされている。 前記デコーダ・制御部CONTは、特に制限されないが、
PLA(プログラマブル・ロジック・アレイ)、又はマイ
クロ制御記憶としてのマイクロROM(リード・オンリ・
メモリ)などで構成され、前記命令入力バッファIIBUF
のスレーブフリップフロップの内容を非選択的に取り込
んで、それを解読し、その解読結果に基づいて、前記各
部の動作を制御する。 前記算術論理演算器ALUは、内部データバスIDBUS及び
内部アドレスバスIABUSの内容を取り込んで演算処理を
行って、その結果を内部データバスIDBUSに出力する。 前記レジスタアレイREGは、特に制限されないが、内
部アドレスバスIABUS及び内部データバスIDBUSのビット
幅に対応して、16ビットを単位とするフリップフロップ
が、例えば8本設けられて構成され、データやアドレス
の一時記憶領域として利用される。このレジスタREGに
は、プログラムカウンタPC、プリフェッチカウンタPF
C、コンディションコードレジスタCCR、スタックポイン
タSPなどが含まれている。レジスタアレイREGは、内部
データバスIDBUSとの間に夫々独立に図示しない入出力
ゲートが設けられ、また、内部アドレスバスIABUSとの
間に夫々独立に図示しない出力ゲートが設けられてい
て、これらの図示しないゲートの動作によって、レジス
タ相互間、所定のレジスタとデータ入出力バッファDI/O
BUF、算術論理演算器ALU、アドレス出力バッファAOBUF
との間で、データやアドレス情報の転送を行うことがで
きるようになっている。 前記データ出力バッファは、前記したようにデータ入
力バッファDIBUF及びデータ出力バッファDOBUFによって
構成され、夫々独立に、外部データバスEDBUS、内部デ
ータバスIDBUS、内部アドレスバスIABUSに接続されてい
る。前記アドレス出力バッファAOBUFは、内部アドレス
バスIABUSの内容を選択的に取り込んで、その内容を外
部アドレスバスEABUSに出力する。 第9図に示されるマイクロプロセッサMPUは、特に制
限されないが、公知の半導体集積回路製造技術を利用し
て、図示しないメモリ或いはその他の周辺回路と共に単
結晶シリコンのような1つの半導体基板に形成されてい
て、シングルチップマイクロコンピュータを構成する。 このシングルチップマイクロコンピュータを構成する
マイクロプロセッサMPUは、プログラムを格納した図示
しないメモリから命令を読み出し、外部データバスEDBU
Sを介してその命令を前記命令入力バッファIIBUFのマス
タフリップフロップに取り込む。この命令をスレーブフ
リップフロップに転送して、デコーダ・制御部CONTで解
読すると共にそれに応じた制御信号を各部に供給して当
該命令の実行を行う。 このとき、命令の取り込み(F)、命令の解読
(D)、命令の実行(E)の3つの段階は、夫々マイク
ロプロセッサMPU内の別々の機能ブロックを用いて行わ
れるため、これらを並列的に行う、命令の先取り制御が
採用されている。即ち、第10図に示されるように、命令
iの解読(D)に並行して、命令jの取り込み(F)を
行い、また、命令iの実行(E)に並行して、命令jの
解読(D)及び命令kの取り込み(F)を行う。これに
よって、マイクロプロセッサMPUの実効的処理速度の向
上を図ることができる。 ここで、マイクロプロセッサMPUの命令の多くには、
その命令で使用するオペランドのような変数のアドレス
を示す情報が含まれている。例えばそのような命令のフ
ォーマットを第11図に示す。 第11図において、R1及びR2はレジスタ番号、Immはイ
ミディエイトデータ、absは絶対アドレスであり、これ
らが変数それ自体或いはそのアドレスを指定する。また
OPは命令コードであり、加算、論理積、分岐などの動作
内容を指定する。尚、命令フォーマットには、第11図に
示すフォーマットを変形又は拡張したフォーマットも存
在するが、それらについての詳細な説明は省略する。 前記R1及びR2の内容はデコーダ・制御部CONTで解読さ
れ、その結果に応じて所定のレジスが選択される。レジ
スタ直接モードにおいては、指定されたレジスタの内容
が変数とされる。レジスタ間接モードにおいては、指定
されたレジスタの内容をアドレスとしてメモリをアクセ
スして得られる内容が変数とされる。Immはその内容が
そのまま、或いは符号拡張や零拡張した内容が、変数と
される。absは、その内容自体、或いは符号拡張や零拡
張した内容がアドレスとされ、それによってメモリをア
クセスして得られる内容が変数とされる。 したがって、イミディエイトモードにおいては、命令
フォーマット中に含まれる内容を算術論理演算器ALUに
取り込むことが必要とされる。即ち、命令入力バッファ
IIBUFから算術論理演算器ALUにデータ転送する経路が必
要とされる。絶対アドレスモードにおいては、命令フォ
ーマットに含まれる内容を命令入力バッファIIBUFから
アドレス出力バッファAOBUFへデータ転送する経路が必
要とされる。これら2つの経路は、第9図には図示され
ていないが、命令入力バッファIIBUFから内部アドレス
バスIABUSに至る専用経路を設けておくことで共用する
ことが可能である。 〔発明が解決しようとする問題点〕 しかしながら、前記した命令入力バッファIIBUFから
内部アドレスバスIABUSに至る専用経路を設けること
は、命令入力バッファIIBUFと内部アドレスバスIABUSと
の物理的配置関係から回路構成が複雑になり、さらには
そのようなデータ転送制御の煩雑さになどよって命令実
行時間が延びる虞のあることが、本発明者らによってみ
いだされた。 そこで、本発明者らは、命令コードを、命令入力バッ
ファIIBUFに取り込むと共に、データ入力バッファDIBUF
にも取り込むようにする構成を検討した結果、既存のデ
ータ入力バッファDIBUFを利用することで回路構成及び
制御方式の簡素化を図ることができるが、次のような問
題点のあることを明らかにした。 即ち、斯る方式においては、例えば第10図の命令iの
実行中に命令jの内容を命令入力バッファIIBUFのマス
タフリップフロップ及びデータ入力バッファDIBUFに保
持しなければならないが、命令iの実行(E)によって
メモリのリードを行って当該メモリ上のデータを取り込
む場合にはデータ入力バッファDIBUFを使用しなければ
ならず、それによって、データ入力バッファDIBUF上の
命令jの内容が破壊されてしまう。このようにして生ず
る命令の破壊を防止するためにはデータ入力バッファを
2組み設け、一方を命令の入力専用とすることで対処可
能であるが、そのようにした場合には、回路規模の増大
さらには制御方式の複雑化を招いてしまう。 本発明の目的は、回路構成や制御方式を複雑化するこ
となく、命令の先取り制御などの命令実行処理を効率的
に実現することができるデータ処理装置を提供すること
にある。 本発明の前記ならびにそのほかの目的と新規な特徴
は、本明細書の記述及び添付図面から明らかになるであ
ろう。 〔問題点を解決するための手段〕 本願において開示される発明のうち代表的なものの概
要を簡単に説明すれば下記の通りである。 すなわち、マイクロプロセッサにおいて、外部バスに
結合される入力バッファ又は出力バッファと内部バスと
に結合された、ストレジ手段を設けたものである。 〔作 用〕 前記した手段によれば、入力バッファ側のストレジ手
段に、先取りした命令の一部又は全部が保持されること
により、命令実行に際して必要なオペランドなどによっ
て、先取りされた命令が破壊されることを阻止する。 また、出力バッファ側のストレジ手段に、実行中の命
令の次の命令のアドレスを格納することにより、次命令
がサブルーチンコール命令であるような場合に、当該ス
トレジ手段に保持されているアドレスをスタック領域に
退避させて、サブルーチンコール命令などの高速実行を
図る。 〔実施例〕 第1図は本発明の第1実施例の要部を示すブロック図
である。本実施例は、前記第9図に基づいて説明したよ
うなマイクロプロセッサMPUに適用されたものであり、
以下の説明において、第9図に示す機能ブロックと同一
機能を有する機能ブロックには同一符号を付してその詳
細な説明を省略する。 第1図に示される構成は、第9図に示されるマイクロ
プロセッサMPUにおけるデータ入力バッファDIBUFに係る
ものであり、同図においてISは、入力ストレジである。
この入力ストレジISは、データ入力バッファが保持する
情報特に命令を取り込んで、それを選択的に内部アドレ
スバスIABUSや内部データバスIDBUSに出力可能なレジス
のような回路によって構成されている。 命令先取り制御において所定の命令が前記マイクロプ
ロセッサMPUにおいて命令入力バッファIIBUFに取り込ま
れるとき、当該命令はデータ入力バッファDIBUFにも格
納される。前記ストレジISは、データ入力バッファDIBU
Fに命令が保持された後に、当該命令の転送を受ける。
このようにして入力ストレジISに保持されている内容が
必要とされるときには、その必要に応じて所定のデータ
が内部アドレスバスIABUS又は内部データバスIDBUSに出
力される。一方パラメータもしくは変数のようなデータ
などは、データ入力バッファDIBUFに取り込まれた後に
直接、内部アドレスバスIABUS又は内部データバスIDBUS
に出力される。したがって、命令先取り制御に基づいて
順次命令が命令入力バッファIIBUF及びデータ入力バッ
ファDIBUFに取り込まれるとき、現在の命令実行に際し
て必要なデータがデータ入力バッファDIBUFに取り込ま
れても、次の命令実行に必要な命令はそのまま入力スト
レジに保持されることにより、そのようなデータによっ
て後から必要になる命令が破壊されることを阻止する。 第2図には、例えばレジスタ間接モードによって、メ
モリ上の変数のようなデータを前記レジスタアレイREG
の所定のレジスタに転送する命令のマイクロフローが示
される。すなわち、ソースレジスタ(RS)の内容をアド
レスとする図示しないメモリ上のデータをディスティネ
ーションレジスタ(RD)に格納するためのマイクロフロ
ーである。 第2図に示されるマイクロフローは、前命令と、転送
命令とから成る。前命令は、それ固有の動作に並行し
て、プログラムカウンタ(又はプリフェッチカウンタ)
PCの内容に基づいて、図示しないメモリから所定の命令
を読み出すと共に、算術論理演算器ALUを使用してプロ
グラムカウンタに所定値、例えば「2」を加算する。
「2」を加算するのは、メモリのアドレスはバイト単位
で割り当てられるのに対して命令のリードは、16ビット
即ち2バイト単位で行われるためである。前命令では、
最後に外部データバスEDBUS上の内容、即ち2ステップ
後の命令を、前記命令入力バッファIIBUF及びデータ入
力バッファDIBUFに取り込んで(ステップS0)当該命令
の実行を終了する。 転送命令は、その最初のステップS1では動作を行わず
(ノン・オペレーション)、それに続くステップS2で、
指定されたソースレジスタ(RS)の内容をアドレス出力
バッファAOBUFにセットして、それに基づいて図示しな
いメモリのリード動作を実行する(ステップS3)。次い
で、メモリから読み出された外部データバスEDBUS上の
データをデータ入力バッファDIBUFに取り込むと共に、
プログラムカウンタPCの内容をアドレス出力バッファAO
BUFにセットして、それを算術論理演算器ALUに転送して
「2」を加算する(ステップS4)。その加算結果はプロ
グラムカウンタPCに格納される。データ入力バッファDI
BUFの内容、即ち前記メモリから読み出した内容は算術
論理演算器ALUに転送されると共に、当該データの検査
が行われ、更に、次の命令を図示しないメモリから読み
出す(ステップS5)。前記検査結果に基づき、コンディ
ションフラグをセット又はリセットすると共に、前記変
数としてのデータが、指定されたディスティネーション
レジスタ(RD)に格納される。更に、外部データバスED
BUSに読み出されている次の命令が命令入力バッファIIB
UF及びデータ入力バッファDIBUFに取り込まれて(ステ
ップS6)、当該転送命令を終了する。 前記コンディションフラグは、特に制限されないが、
零及び負数などを検出してセット又はリセットされるも
のである。第2図においては、命令入力バッファIIBUF
或いはデコーダ・制御部CONTに関する動作の記述は省略
されている。 また、前記外部バスEDBUS,EABUSの単位サイクルは、
特に制限されないが、マイクロプロセッサの内部動作の
単位ステートの2倍とされている。このため、メモリを
リードした次のステートで外部データバスEDBUS上に有
効値が現れることになる。 以上により、転送命令の次命令の内容が入力ストレジ
ISに保持されるから、当該次命令の内容がデータのリー
ドによって破壊されない。但し、ステップS2でデータ入
力バッファDIBUFから入力ストレジISへの転送を行うた
め、入力ストレジISの保持内容は命令実行開始直後のス
テップS1で使用することが必要とされる。 第3図は第1図における1ビット分の具体的な論理図
である。 第3図において、データ入力バッファDIBUFは、直列
接続されたスタティック型のマスタフリップフロップDI
BUFMとスタティック型のスレーブフリップフロップDIBU
FSによって構成されている。マスタフリップフロップDI
BUFMの入力端子には前記外部データバスEDBUSが接続さ
れ、また、スレーブフリップフロップDIBUFSの出力端子
には前記フリップフロップによって構成されるような入
力ストレジISが接続されている。また、スレーブフリッ
プフロップDIBUFSの出力端子及び入力ストレジISの出力
端子は、トライステート型出力ゲートTOG1乃至TOG4を介
して、内部データバスIDBUSと内部アドレスバスIABUSに
結合されている。 第4図には第3図の回路構成の動作を説明するための
タイムチャートが示されている。 第4図に置いてφ乃至φはクロック信号でありク
ロック信号φの立上りから同信号の次の立上りまでが
外部バスの単位サイクルに相当し、クロック信号φ
立上りからクロック信号φの立上りまで、及びクロッ
ク信号φの立上りからクロック信号φの立上りまで
が内部動作の単位ステートとされる。 バスサイクルに同期して外部データバスEDBUSの内容
は、非選択的にデータ入力バッファのマスタフリップフ
ロップDIBUSMに取り込まれ、更に非選択的にスレーブフ
リップフロップDIBUFSに転送される。スレーブフリップ
フロップDIBUFSから入力ストレジISへの転送は、選択的
即ち制御信号φsiによって、命令に関してのみ実行され
る。 第5図には第3図に示される構成の変形例が示され
る。 第5図において、内部データバスIDBUS及び内部アド
レスバスIABUSはダイナミック型とされ、また、スレー
ブフリップフロップDIBUFもダイナミック型に構成され
ている。これにより、回路を構成するトランジスタ数が
減少され、例えば、本実施例に従えば、16ビットで概ね
126個のトランジスタが減少される。特に第5図の場合
には、スレーブフリップフロップDIBUFSが2重に構成さ
れ、内部データバスIDBUSと内部アドレスバスIABUSとに
夫々専用化されている。 第6図は本発明の第2実施例の要部を示すブロック図
である。本実施例は、前記第9図に基づいて説明したよ
うなマイクロプロセッサMPUに適用されるものであり、
以下の説明において、第9図に示す機能ブロックと同一
機能を有する機能ブロックには同一符号を付してその詳
細な説明を省略する。 第6図に示される構成は、第9図に示されるマイクロ
プロセッサMPUにおけるデータ出力バッファDOBUFに係る
ものであり、同図においてOSは、出力ストレジである。
この出力ストレジOSは、前記内部データバスIDBUS、内
部アドレスバスIABUS、データ出力バッファDOBUFと、選
択的に接続可能な構成とされ、データ出力バッファDOBU
Fの保持内容とは異なる内容を保持したり、また、内部
データバスIDBUSや内部アドレスバスIABUSの内容をデー
タ出力バッファDOBUFに概ね遅延無く取り込み可能とさ
れている。 前記第2図に基づいて説明したマイクロフローに基づ
いて命令の先取り制御を行った場合、命令のプリフェッ
チは当該命令固有の動作と同期して行われ、現在実行中
の命令とその命令がプリフェッチする命令の夫々のアド
レスは一義的に対応しているため、プログラムカウンタ
PC及びプリフェッチカウンタPFCは1つのカウンタ例え
ばプログラムカウンタPCで兼用することができる。この
場合には、第2図のようにプログラムカウンタPCにはプ
リフェッチアドレスを格納しておくことが有効である。
即ち、プログラムカウンタPCに実行中の命令をアドレス
を格納した場合には、プリフェッチを行う毎に「4」を
加算した値をアドレス出力バッファAOBUFに格納し、且
つ、「2」を加算した値をプログラムカウンタPCに再度
格納する必要があり、それによって制御が複雑になっ
て、命令実行に必要な時間も長くなる。 プログラムカウンタPCにプリフェッチアドレスを格納
する場合には、以下の問題点が有ることを本発明者は見
出している。即ち、サブルーチンコール命令実行時に
は、リターン時に命令のフェッチをやり直すためにリタ
ーン先のアドレスをスタック領域に退避しなければなら
ないが、サブルーチンコール命令実行時には、プログラ
ムカウンタPCは、サブルーチンコール命令のアドレスに
「4」を加算した値を格納しているため、その退避に先
立って「2」を減算する必要が有り、それによって、そ
のような制御が複雑化すると共に、命令実行時間も延長
されてしまう。前記「2」の減算をサブルーチンコール
命令ではなく、リターン命令中で行っても同様である。 斯る点については、第6図のデータ出力バッファDOBU
F及び出力ストレジOSを用いて、第2図のマイクロフロ
ーを僅かに修正することによって対処する。 即ち、第2図のステップS4において、プログラムカウ
ンタPCの内容をアドレス出力バッファAOBUFにセット
し、所定値を加算するために算術論理演算器ALUに転送
すると同時に、出力ストレジOSにもセットしておく。こ
れによって、次命令の実行開始時には、プログラムカウ
ンタPCには次命令のアドレスに「4」を加算した値が格
納され、出力ストレジOSには次命令のアドレスに「2」
を加算した値が格納されることになる。次命令がサブル
ーチンコール命令である場合には、出力ストレジOSの内
容をデータ出力バッファDOBUFに転送して、それをスタ
ック領域に書き込むことによって、リターン先のアドレ
スが退避される。したがって、リターン先アドレスの退
避制御方式が簡素化されて、サブルーチンコール命令の
実行を高速化することができる。このとき、プログラム
カウンタPCを出力ストレジOSに転送する制御は、プログ
ラムカウンタPCをアドレス出力バッファAOBUF又は算術
論理演算器ALUに転送する制御と兼用することにより、
更にその制御方式を簡素化することが可能である。 第7図はにレジスタ直接モードによるサブルーチンコ
ール命令のマイクロフローの一例を示す。このマイクロ
フローは、命令コードに含まれる番号R1に対応するレジ
スタの内容を先頭アドレスとするサブルーチンへ分岐す
る内容である。このマイクロフローにおいては、先ず、
スタックポインタSPを算術論理演算器ALUに転送し、そ
れに所定値、例えば「2」を減算する(ステップS1)。
その結果をアドレス出力バッファAOBUFにセットすると
共に、スタックポインタSPに格納する。出力ストレジOS
中に保持されている次命令のアドレスをデータ出力バッ
ファDOBUFに転送し(ステップS2)、その内容を図示し
ないメモリに書き込む(ステップS3)。次いで、命令コ
ードによって指定されたレジスタ(R1)の内容をアドレ
ス出力バッファAOBUFにセットすると共に、算術論理演
算器ALUに転送して、それに「2」を加算する(ステッ
プS4)。その加算結果は算術論理演算器ALUに転送され
ると共に、図示しないメモリからサブルーチンの先頭命
令を外部データバスEDBUSに読み出し(ステップS5)、
その外部データバスEDBUS上の命令を命令入力バッファI
IBUF及びデータ入力バッファDIBUFに取り込む。プログ
ラムカウンタPCの内容をアドレス出力バッファAOBUFに
セットすると共に、算術論理演算器ALUに転送し、それ
に「2」を加算し、更に、プログラムカウンタPCの内容
を前記出力ストレジOSにセットする(ステップS6)。次
いで、サブルーチンの2番目の命令をメモリから読み出
す(ステップS7)。データ入力バッファDIBUFの内容を
入力ストレジISに転送すると共に、最後に、外部データ
バスEDBUS上に読み出された命令を命令入力バッファIIB
UF及びデータ入力バッファDIBUFに取り込んで(ステッ
プS8)、命令の実行を終了する。尚、スタックポインタ
SPは、特に制限されないが、スタック領域の最上位を示
すものとする。 第8図は第6図における1ビット分の具体的な論理構
成図である。 第8図において、データ出力バッファDOBUFは、直列
接続されたスタティック型のマスタフリップフロップDO
BUFMと、ダイナミック型のスレーブフリップフロップDO
BUFSとによって構成されている。スレーブフリップフロ
ップDOBUFSの出力端子には前記外部データバスEDBUSが
接続され、また、マスタフリップフロップDOBUFMの入力
端子にはフリップフロップによって構成されるような出
力ストレジOSが接続されている。出力ストレジOSの入力
端子は、トライステイト型入力ゲートTIG1及びTIG2を介
して内部データバスIDBUSや内部アドレスバスIABUSに接
続されている。出力ストレジOSとマスタフリップフロッ
プDOBUFMとを選択的に接続分離する制御信号φSOはメモ
リライト信号と共用することができる。なお、通常のオ
ペランドをメモリに書き込む場合には、オペランドを出
力ストレジOSへ転送する際に、同時にデータ出力バッフ
ァDOBUFに転送摺ることができる構成となっている。 前記実施例によれば以下の作用効果を得るものであ
る。 (1)命令先取り制御に基づいて順次命令が命令入力バ
ッファIIBUF及びデータ入力バッファDIBUFに取り込まれ
るとき、現在の命令実行に際して必要とされるデータが
データ入力バッファDIBUFに取り込まれても、次の命令
の実行に必要な命令はそのまま入力ストレジISに保持さ
れることにより、そのようなデータによって後から必要
になる命令が破壊されることを防止することができる。 (2)上記効果は、ラッチ回路のような入力ストレジIS
をデータ入力バッファDIBUF側に設け、データ入力バッ
ファDIBUFに取り込まれた内容の内から命令だけを入力
ストレジISに転送する制御だけを基本的に行えば得るこ
とができるから、回路構成や制御方式を複雑化すること
なく、命令先取り制御を効率的に実現することができ
る。 (3)出力ストレジOSには実行中の命令の次の命令のア
ドレスが保持されることにより、次命令がサブルーチン
コール命令であるような場合には、出力ストレジOSの内
部をデータ出力バッファDOBUFに転送して、それをスタ
ック領域に書き込むことによって、リターン先のアドレ
スが退避される。したがって、リターン先アドレスの退
避制御方式が簡素化されて、サブルーチンコール命令の
実行を高速化することができる。 以上本発明者によってなされた発明を実施例に基づい
て具体的に説明したが、本発明は前記実施例に限定され
ず、その要旨を逸脱しない範囲において種々変更するこ
とができる。 例えば、内部バス及び外部バスの構成、更には、命令
デコーダ、命令制御方式、及び命令フォーマットなどは
前記実施例の説明に限定されず、如何なる形式でも採用
することができる。また、本発明は命令の先取り制御に
限定されず、マイクロプロセッサの外部から情報を取り
込む順序と、その情報をマイクロプロセッサの内部で使
用する順序とが異なるような制御形式を採用するものに
適用することができる。また、マイクロプロセッサ外部
へ出力する内容を、マイクロプロセッサの内部でそれ以
前に使用するような制御形式を採用するものに適用する
ことができる。 以上の説明では主として本発明者によってなされた発
明をその背景となって利用分野である命令先取り形式を
有するマイクロプロセッサに適用した場合について説明
したが、命令先取り形式以外の制御形態を有するような
種々のデータ処理装置に適用することができる。 〔発明の効果〕 本願において開示された発明のうち代表的なものによ
って得られるものの効果を簡単に説明すれば下記の通り
である。 すなわち、入力バッファ側のストレジ手段に、先取り
した命令の一部又は全部が保持されることにより、命令
実行に際して必要なオペランドなどによって、先取りさ
れた命令が破壊されることを阻止することができると共
に、出力バッファ側のストレジ手段に、実行中の命令の
次の命令のアドレスを格納することにより、次命令がサ
ブルーチンコール命令であるような場合に、当該ストレ
ジ手段に保持されているアドレスをスタック領域に退避
させて、サブルーチンコール命令の高速実行を図ること
ができ、それによって、回路構成や制御方式を複雑化す
ることなく、命令の先取り制御の効率化を達成すること
ができる。
DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to a data processing technique and an instruction execution cycle.
For example, instruction pre-fetching sequentially
Applied to microprocessors that have
And effective technology. [Prior Art] In a data processing device such as a microprocessor
Is a so-called pipeline process in which instructions are prefetched and processed.
Therefore, the data processing speed can be improved. Departure
The authors stated that microphones employing such command prefetch control
As a microprocessor, for example, a microprocessor as shown in FIG.
Microprocessor was studied. In FIG. 9, DI / OBUFs are external data buses EDBUS, respectively.
Input buffer DIBUF and data output coupled to
Data input / output buffer consisting of buffer DOBUF, IIBUF
Command input buffer coupled to the external data bus EDBUS
And CONT are supplied from the instruction input buffer IIBUF
Instruction decoder for decoding instructions and its decoder
Control to supply control signals to each part based on code results
ALU is an arithmetic and logic unit, REG
Is a register array composed of various registers, AO
BUF supplies address signal to external address bus EABUS
Address output buffer, IDBUS
Path DI / OBUF, arithmetic logic unit ALU, register array REG
The combined internal data bus and IABUS
Circuit DI / OBUF, arithmetic logic unit ALU, register REG, address
Internal address bus coupled to output buffer AOBUF
You. In FIG. 9, the clock signal line and the control signal
Lines are omitted. The internal data bus IDBUS, external data bus EDBUS, internal
The external address bus EABUS and the external address bus IABUS
Although not particularly limited, each has a width of 16 bits, and 16 bits
Address output, 8-bit or 16-bit data transfer
It is possible. The instruction input buffer IIBUF is not particularly limited.
However, the so-called master-slave flip-flops
And selectively select the contents on the external data bus EDBUS.
Captured in the master flip-flop,
Select flip-flop contents as slave flip-flops
Can be transferred to The decoder / control unit CONT is not particularly limited,
PLA (Programmable Logic Array) or My
Micro ROM as read-only control memory (read only
Memory) etc., and the instruction input buffer IIBUF
Non-selectively fetch the contents of slave flip-flops
Then, based on the result of the decryption,
Control the operation of the unit. The arithmetic and logic unit ALU includes an internal data bus IDBUS and
Incorporates the contents of the internal address bus IABUS and performs arithmetic processing
And outputs the result to the internal data bus IDBUS. Although the register array REG is not particularly limited,
Of the internal address bus IABUS and internal data bus IDBUS
16-bit flip-flops corresponding to width
Are provided, for example, eight, and data and addresses are provided.
Is used as a temporary storage area. In this register REG
Is the program counter PC, prefetch counter PF
C, condition code register CCR, stack point
And SP are included. Register array REG is internal
Input / output (not shown) between the data bus and IDBUS
A gate is provided, and the internal address bus IABUS
Output gates (not shown) are provided between
The operation of these gates (not shown)
Data, input / output buffer DI / O
BUF, arithmetic logic unit ALU, address output buffer AOBUF
Data and address information can be transferred between
I am able to do it. The data output buffer is used for data input as described above.
By input buffer DIBUF and data output buffer DOBUF
External data bus EDBUS and internal data bus
Data bus IDBUS and internal address bus IABUS.
You. The address output buffer AOBUF has an internal address
Selectively capture the contents of bus IABUS and remove the contents
Output to the local address bus EABUS. The microprocessor MPU shown in FIG.
Although not limited, using a known semiconductor integrated circuit manufacturing technology
Together with a memory or other peripheral circuits (not shown).
Formed on one semiconductor substrate such as crystalline silicon
To form a single-chip microcomputer. Construct this single-chip microcomputer
Microprocessor MPU is a diagram that stores programs
Read the instruction from the memory that does not
The instruction is transferred to the instruction input buffer IIBUF
In the flip-flop. This instruction is
Transfer to lip-flop and solve in decoder / control unit CONT
Read it and supply the corresponding control signal to each part to
Execute the instruction. At this time, instruction fetching (F), instruction decoding
The three stages of (D) and instruction execution (E) are performed by
Using separate functional blocks in the microprocessor MPU
Therefore, the prefetch control of instructions that performs these in parallel
Has been adopted. That is, as shown in FIG.
In parallel with decryption of i (D), fetching of instruction j (F)
In parallel with the execution (E) of the instruction i,
Decryption (D) and fetch of instruction k (F) are performed. to this
Therefore, the effective processing speed of the microprocessor MPU is improved.
You can aim up. Here, many instructions of the microprocessor MPU include:
Address of a variable, such as an operand, used in the instruction
Is included. For example, the
The format is shown in FIG. In FIG. 11, R1 and R2 are register numbers, and Imm is
Media data, abs is an absolute address,
They specify the variables themselves or their addresses. Also
OP is an instruction code that performs operations such as addition, logical product, and branch
Specify the content. The instruction format is shown in Fig. 11.
There is also a format that is modified or expanded from the format shown.
However, a detailed description thereof will be omitted. The contents of R1 and R2 are decoded by the decoder / control unit CONT.
Then, a predetermined resist is selected according to the result. cash register
In direct star mode, the contents of the specified register
Is a variable. Specified in register indirect mode
Accesses memory using the contents of the
The contents obtained from the process are used as variables. Imm
The contents as they are or with sign extension or zero extension are
Is done. abs is the content itself or sign extension or zero extension
The content that is added is used as an address, thereby
The content obtained by accessing is a variable. Therefore, in the immediate mode, the instruction
The contents included in the format are transferred to the arithmetic and logic unit ALU
It needs to be captured. That is, the instruction input buffer
A path to transfer data from IIBUF to the arithmetic logic unit ALU is required.
Is required. In absolute address mode, instruction
From the instruction input buffer IIBUF
A route to transfer data to the address output buffer AOBUF is required.
Is required. These two paths are illustrated in FIG.
Not from the instruction input buffer IIBUF to the internal address
Shared by providing a dedicated route to the bus IABUS
It is possible. [Problems to be Solved by the Invention] However, from the above-described instruction input buffer IIBUF
Provision of a dedicated route to the internal address bus IABUS
Is connected to the instruction input buffer IIBUF and the internal address bus IABUS.
The circuit configuration becomes complicated due to the physical arrangement of
Instruction execution may be affected by such complicated data transfer control.
It has been observed by the present inventors that the line time may be extended.
I was sent out. Therefore, the present inventors have set the instruction code into an instruction input buffer.
Data input buffer DIBUF
As a result of studying a configuration that incorporates
The circuit configuration and the
The control method can be simplified, but the following questions
Clarified that there is a title. That is, in such a system, for example, the instruction i of FIG.
During execution, the contents of instruction j are
Data buffer DIBUF and data input buffer DIBUF.
Must be held, but by execution of instruction i (E)
Read the memory and take in the data on the memory
Use the data input buffer DIBUF
Not thereby, on the data input buffer DIBUF
The contents of the instruction j are destroyed. Born like this
Data input buffer to prevent
Can be dealt with by providing two sets, one of which is dedicated to instruction input
However, if this is done, the circuit scale will increase.
Further, the control method becomes complicated. An object of the present invention is to complicate a circuit configuration and a control method.
Efficient instruction execution processing such as instruction prefetch control
To provide a data processing device that can be realized
It is in. The above and other objects and novel features of the present invention
Will become apparent from the description of the present specification and the accompanying drawings.
Would. [Means for Solving the Problems] Summary of typical inventions disclosed in the present application
The summary is as follows. That is, in the microprocessor, the external bus
Input or output buffer and internal bus to be combined
And storage means coupled to the storage means. [Operation] According to the above-described means, the storage device on the input buffer side is used.
Some or all of the prefetched instructions are retained in the column
Depending on the operands required for instruction execution.
To prevent destroyed preempted instructions. In addition, the storage unit on the output buffer side
By storing the address of the instruction following the instruction,
Is a subroutine call instruction,
The address held in the storage means is stored in the stack area.
Back up for high-speed execution of subroutine call instructions, etc.
Aim. FIG. 1 is a block diagram showing a main part of a first embodiment of the present invention.
It is. This embodiment has been described with reference to FIG.
Is applied to such a microprocessor MPU,
In the following description, it is the same as the functional block shown in FIG.
Functional blocks having functions are assigned the same reference numerals and detailed
Detailed description is omitted. The configuration shown in FIG. 1 is equivalent to the microstructure shown in FIG.
According to the data input buffer DIBUF in the processor MPU
In the figure, IS is an input storage.
This input storage IS is held by the data input buffer
Captures information, especially instructions, and selectively addresses
Registers that can be output to bus IABUS and internal data bus IDBUS
It is constituted by such a circuit. In command prefetch control, a predetermined command is
Loaded into the instruction input buffer IIBUF in the processor MPU
Instruction, the instruction is also stored in the data input buffer DIBUF.
Will be delivered. The storage IS includes a data input buffer DIBU.
After the instruction is held in F, the instruction is transferred.
In this way, the contents held in the input storage IS
When required, the required data
Appears on the internal address bus IABUS or internal data bus IDBUS.
Is forced. On the other hand, data such as parameters or variables
Etc. are taken after the data input buffer DIBUF
Directly, internal address bus IABUS or internal data bus IDBUS
Is output to Therefore, based on instruction prefetch control
A sequential instruction is executed when the instruction input buffer IIBUF and the data input buffer
When loaded into DIBUF, the current instruction
Necessary data is taken into the data input buffer DIBUF
Even if the instruction required for executing the next instruction is
At the cash register, such data
To prevent later needed instructions from being destroyed. FIG. 2 shows, for example, the register indirect mode.
Data such as variables on the memory is stored in the register array REG.
The micro flow of the instruction to transfer to the specified register is shown.
Is done. That is, the contents of the source register (RS) are added.
Data on the memory (not shown)
Microfloor for storing in the application register (RD)
It is. The micro-flow shown in FIG.
Instructions. The previous instruction runs in parallel with its own operation.
And the program counter (or prefetch counter)
Based on the contents of the PC, given instructions from memory (not shown)
And read it out using the arithmetic and logic unit ALU.
A predetermined value, for example, “2” is added to the gram counter.
"2" is added because the memory address is in byte units
Instruction read is 16 bits
That is, it is performed in units of 2 bytes. In the previous instruction,
Finally, the contents on the external data bus EDBUS, ie, 2 steps
The subsequent instruction is transferred to the instruction input buffer IIBUF and the data input buffer.
Input to the input buffer DIBUF (step S0)
Terminates execution of. The transfer instruction does not operate in the first step S1
(Non-operation), followed by step S2,
Address output of the contents of the specified source register (RS)
Set buffer AOBUF, and do not show
A memory read operation is performed (step S3). Next
On the external data bus EDBUS read from the memory
While taking data into the data input buffer DIBUF,
Address output buffer AO for program counter PC
Set it to BUF and transfer it to the arithmetic and logic unit ALU
"2" is added (step S4). The result of the addition is professional
It is stored in the gram counter PC. Data input buffer DI
The contents of BUF, that is, the contents read from the memory, are arithmetic
The data is transferred to the ALU and the data is inspected.
Is executed, and the next instruction is read from a memory (not shown).
Issue (step S5). Based on the inspection results,
Set or reset the option flag and
The data as a number is the specified destination
Stored in register (RD). Furthermore, external data bus ED
The next instruction read to BUS is the instruction input buffer IIB
It is captured by the UF and the data input buffer DIBUF (step
Step S6), the transfer instruction ends. Although the condition flag is not particularly limited,
Set or reset by detecting zero and negative numbers
It is. In FIG. 2, the instruction input buffer IIBUF
Or description of operation related to decoder / control unit CONT is omitted.
Have been. The unit cycle of the external buses EDBUS and EABUS is
Although not particularly limited, the internal operation of the microprocessor
It is twice the unit state. For this reason, memory
Exists on the external data bus EDBUS in the state following the read
Effective value will appear. As described above, the content of the instruction following the transfer instruction is
The contents of the next instruction are stored in the data
Not destroyed by However, the data input in step S2
Transfer from the input buffer DIBUF to the input storage IS.
Therefore, the contents of the input storage IS are
Needed to be used in Step S1. FIG. 3 is a specific logical diagram of one bit in FIG.
It is. In FIG. 3, the data input buffer DIBUF is connected in series.
Connected static master flip-flop DI
BUFM and static slave flip-flop DIBU
It is composed of FS. Master flip-flop DI
The external data bus EDBUS is connected to the input terminal of BUFM.
Output terminal of slave flip-flop DIBUFS
Input such as that constituted by the flip-flop
Force storage IS is connected. Also, slave flip
Output of flip-flop DIBUFS and input storage IS
Terminals are connected via tri-state output gates TOG1 to TOG4
To the internal data bus IDBUS and the internal address bus IABUS
Are combined. FIG. 4 shows the operation of the circuit configuration of FIG.
The time chart is shown. In Fig. 4 1 Or φ 4 Is the clock signal and
Lock signal φ 1 From the rising edge of the signal to the next rising edge of the same signal
The clock signal φ corresponds to the unit cycle of the external bus. 1 of
Clock signal φ from rising 3 Until the rise of
Signal φ 3 Clock signal φ from the rising edge of 1 Until the rise
Is a unit state of the internal operation. The contents of the external data bus EDBUS in synchronization with the bus cycle
Is the master flip-flop of the data input buffer
Is taken into the DIBUSM, and non-selectively
Transferred to lip-flop DIBUFS. Slave flip
Transfer from flop DIBUFS to input storage IS is optional.
That is, only the instruction is executed by the control signal φsi.
You. FIG. 5 shows a modification of the configuration shown in FIG.
You. In FIG. 5, the internal data bus IDBUS and the internal address
The lesbus IABUS is a dynamic type.
The flip-flop DIBUF is also configured as a dynamic type.
ing. This reduces the number of transistors that make up the circuit
For example, according to this embodiment, 16 bits generally
126 transistors are reduced. Especially in the case of Fig. 5
Has a double configuration of DIBUFS slave flip-flops.
To the internal data bus IDBUS and the internal address bus IABUS.
Each is dedicated. FIG. 6 is a block diagram showing a main part of a second embodiment of the present invention.
It is. This embodiment has been described with reference to FIG.
Is applied to such a microprocessor MPU,
In the following description, it is the same as the functional block shown in FIG.
Functional blocks having functions are assigned the same reference numerals and detailed
Detailed description is omitted. The configuration shown in FIG. 6 is equivalent to the microstructure shown in FIG.
Pertains to data output buffer DOBUF in processor MPU
In the figure, OS is an output storage.
This output storage OS is connected to the internal data bus IDBUS.
Address bus IABUS, data output buffer DOBUF,
Data output buffer DOBU
The content that is different from the content of F
The contents of the data bus IDBUS and the internal address bus IABUS are
Data can be captured in the output buffer DOBUF almost without delay.
Have been. Based on the micro flow described with reference to FIG.
Prefetch control of the
Switch is performed in synchronization with the operation specific to the instruction, and is currently being executed.
Of each instruction and the instruction that the instruction prefetches
Because the response is unique, the program counter
PC and prefetch counter PFC are one counter
For example, a program counter PC can also be used. this
In this case, as shown in FIG.
It is effective to store the refetch address.
In other words, the address of the instruction being executed is
Is stored, every time prefetch is performed, "4" is
The added value is stored in the address output buffer AOBUF, and
The value obtained by adding “2” is stored in the program counter PC again.
Must be stored, which complicates control.
As a result, the time required for executing the instruction becomes longer. Store prefetch address in program counter PC
In this case, the inventor has found that the following problems exist.
Is out. That is, when the subroutine call instruction is executed
Returns to re-fetch the instruction on return.
Must be saved to the stack area.
However, when a subroutine call instruction is executed,
The counter PC is assigned to the address of the subroutine call instruction.
Because the value to which "4" has been added is stored, save it first.
It is necessary to stand and subtract “2”, which
Control becomes complicated and instruction execution time is extended
Will be done. Subroutine call for subtraction of "2"
The same is true if the instruction is performed not in the instruction but in the return instruction. In this regard, the data output buffer DOBU shown in FIG.
F and the output storage OS,
This is addressed by making minor modifications. That is, in step S4 of FIG.
Set the contents of the interface PC to the address output buffer AOBUF
And transfers it to the arithmetic and logic unit ALU to add the specified value
At the same time, set it to the output storage OS. This
As a result, at the start of execution of the next instruction, the program
The value obtained by adding "4" to the address of the next instruction is stored in the
"2" is stored in the address of the next instruction in the output storage OS.
Is stored. Next instruction is subroutine
If the instruction is a call routine,
Data to the data output buffer DOBUF,
By writing to the memory area, the return destination
Is evacuated. Therefore, the return destination address
The evacuation control method has been simplified,
Execution can be sped up. At this time, the program
Control to transfer the counter PC to the output storage OS
RAM counter PC as address output buffer AOBUF or arithmetic
By also using the control to transfer to the logical operation unit ALU,
Further, the control method can be simplified. FIG. 7 shows the subroutine code in the register direct mode.
5 shows an example of a microflow of a rule instruction. This micro
The flow corresponds to the register corresponding to the number R1 included in the instruction code.
Branches to a subroutine whose contents are the start address
Content. In this micro flow, first,
The stack pointer SP is transferred to the arithmetic and logic unit ALU, and the
A predetermined value, for example, “2” is subtracted therefrom (step S1).
When the result is set in the address output buffer AOBUF
Both are stored in the stack pointer SP. Output storage OS
The address of the next instruction held in the
To the buffer DOBUF (step S2) and show the contents
Write to the missing memory (step S3). Next,
The contents of the register (R1) specified by the
Output buffer AOBUF as well as arithmetic logic
Transfer to the ALU and add “2” to it (step
S4). The result of the addition is transferred to the arithmetic and logic unit ALU.
At the same time, the top
Command to the external data bus EDBUS (step S5),
The instruction on the external data bus EDBUS is
Take in IBUF and data input buffer DIBUF. Blog
RAM counter PC contents to address output buffer AOBUF
At the same time, transfer it to the arithmetic logic unit ALU,
Is added to "2" and the contents of the program counter PC
Is set in the output storage OS (step S6). Next
Read the second instruction of the subroutine from memory
(Step S7). Read the contents of the data input buffer DIBUF
Transfer to input storage IS, and finally, external data
The instruction read on the bus EDBUS is used for the instruction input buffer IIB.
UF and data input buffer DIBUF (step
Step S8), the execution of the instruction ends. Note that the stack pointer
SP is not particularly limited, but indicates the top of the stack area.
Shall be FIG. 8 shows a specific logical structure for one bit in FIG.
FIG. In FIG. 8, the data output buffer DOBUF is connected in series.
Connected static master flip-flop DO
BUFM and dynamic slave flip-flop DO
It is composed of BUFS. Slave flip flow
The external data bus EDBUS is connected to the output terminal of the
Connected and also the input of the master flip-flop DOBUFM
The terminal has an output like a flip-flop.
Force storage OS is connected. Output storage OS input
Terminals are connected via tri-state input gates TIG1 and TIG2.
Connected to the internal data bus IDBUS and internal address bus IABUS
Has been continued. Output storage OS and master flip-flop
Control signal φ to selectively connect and disconnect SO Is a note
Can be shared with the rewrite signal. Note that the normal
When writing a peland to memory, output the operand.
When data is transferred to the storage OS, the data output buffer is
It is configured to be able to transfer to DOBUF. According to the above embodiment, the following effects can be obtained.
You. (1) Instructions are sequentially input based on instruction prefetch control.
Buffer IIBUF and data input buffer DIBUF
The data needed to execute the current instruction
Even if the data is input to the data input buffer DIBUF, the next instruction
Instructions required for execution are held in the input storage IS as they are.
Required later by such data
Can be prevented from being destroyed. (2) The above effect is obtained by input storage IS such as a latch circuit.
Is provided on the data input buffer DIBUF side.
Input only instructions from the contents taken in DIBUF
It can be obtained by basically controlling only the transfer to the storage IS.
Can complicate the circuit configuration and control method.
Command prefetch control can be realized efficiently
You. (3) The output storage OS stores the address of the instruction following the instruction being executed.
When the next instruction is in the subroutine
If it is a call instruction, the output storage OS
Part to the data output buffer DOBUF and start it.
By writing to the memory area, the return destination
Is evacuated. Therefore, the return destination address
The evacuation control method has been simplified,
Execution can be sped up. The invention made by the inventor above is based on the embodiment.
However, the present invention is limited to the above-described embodiment.
Various changes without departing from the gist of the
Can be. For example, internal bus and external bus configurations,
Decoder, instruction control method, instruction format, etc.
The present invention is not limited to the description of the above-described embodiment, and may employ any format.
can do. Also, the present invention is applicable to instruction prefetch control.
Without limitation, information is taken from outside the microprocessor.
Order and the information used inside the microprocessor.
Use a control format that uses a different order
Can be applied. Also, external to the microprocessor
The contents to be output to the
Apply to those that adopt the control format used earlier
be able to. In the above description, the invention mainly made by the inventor has been described.
As a background, the use of instruction prefetch
Explanation about application to microprocessor with
However, there is a control form other than the instruction prefetching form.
It can be applied to various data processing devices. [Effects of the Invention] According to the representative inventions disclosed in the present application,
The effect of what can be obtained is briefly described as follows
It is. That is, the storage means on the input buffer side
By holding some or all of the issued instructions,
Depending on the operands required for execution,
Can prevent the broken instructions from being destroyed.
Then, the storage means on the output buffer side
By storing the address of the next instruction, the next instruction is supported.
If it is a routine call instruction,
Saves the address stored in the stack unit to the stack area
To execute subroutine call instructions at high speed
And thereby complicate the circuit configuration and control method.
Achieve more efficient instruction prefetch control without
Can be.

【図面の簡単な説明】 第1図は本発明の第1実施例の要部を示すブロック図、 第2図は第1実施例に適用した転送命令のマイクロフロ
ーチャート、 第3図は第1図の構成における1ビット分の具体的な論
理構成図、 第4図は第3図に示す構成の動作説明のためのタイムチ
ャート、 第5図は第3図に示す論理構成の変形例を示す説明図、 第6図は本発明の第2実施例の要部を示すブロック図、 第7図は第2実施例を適用したサブルーチンコール命令
のマイクロフローチャート、 第8図は第6図の構成における1ビット分の具体的な論
理構成図、 第9図は本発明が適用されるマイクロプロセッサの基本
構成ブロック図、 第10図は第9図に示すマイクロプロセッサにおける命令
先取り制御による動作説明のためのタイムチャート、 第11図は第9図に示されるマイクロプロセッサの主要命
令フォーマットの一例を示す説明図である。 MPU……マイクロプロセッサ、DI/OBUF……データ入出力
バッファ、DIBUF……データ入力バッファ、DOBUF……デ
ータ出力バッファ、IIBUF……命令入力バッファ、CONT
……デコーダ・制御部、REG……レジスタアレイ、AOBUF
……アドレス出力バッファ、ALU……算術論理演算器、I
DBUS……内部データバス、EDBUS……外部データバス、I
ABUS……内部アドレスバス、EABUS……外部アドレスバ
ス、PC……プログラムカウンタ、SP……スタックポイン
タ、IS……入力ストレジ、DIBUFS……スレーブフリップ
フロップ、DIBUFM……マスタフリップフロップ、OS……
出力ストレジ、DOBUFS……スレーブフリップフロップ、
DOBUFM……マスタフリップフロップ。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing a main part of a first embodiment of the present invention, FIG. 2 is a micro flowchart of a transfer instruction applied to the first embodiment, FIG. 3 is FIG. 4 is a specific logical configuration diagram for one bit in the configuration of FIG. 4, FIG. 4 is a time chart for explaining the operation of the configuration shown in FIG. 3, and FIG. 5 is a description showing a modification of the logical configuration shown in FIG. FIG. 6, FIG. 6 is a block diagram showing a main part of a second embodiment of the present invention, FIG. 7 is a micro-flowchart of a subroutine call instruction to which the second embodiment is applied, and FIG. FIG. 9 is a block diagram showing the basic configuration of a microprocessor to which the present invention is applied, and FIG. 10 is a time chart for explaining the operation by the instruction prefetch control in the microprocessor shown in FIG. Chart, Fig. 11 Is an explanatory diagram showing an example of a major instruction formats of the microprocessor shown in FIG. MPU: Microprocessor, DI / OBUF: Data input / output buffer, DIBUF: Data input buffer, DOBUF: Data output buffer, IIBUF: Instruction input buffer, CONT
…… Decoder / control unit, REG …… Register array, AOBUF
…… Address output buffer, ALU …… Arithmetic logic unit, I
DBUS: Internal data bus, EDBUS: External data bus, I
ABUS ... internal address bus, EABUS ... external address bus, PC ... program counter, SP ... stack pointer, IS ... input storage, DIBUFS ... slave flip-flop, DIBUFM ... master flip-flop, OS ...
Output storage, DOBUFS ... Slave flip-flop,
DOBUFM …… Master flip-flop.

Claims (1)

(57)【特許請求の範囲】 1.少なくともレジスタと算術論理演算器とデータ入力
バッファとが接続される内部バスと、外部データバスに
接続される出力バッファと、外部データバスに接続され
る命令入力バッファと、上記命令入力バッファに接続さ
れるデコード制御部とを具備するデータ処理装置であっ
て、 上記データ入力バッファは、上記内部バスに選択的に出
力可能なレジスタで構成される入力ストレージと、外部
データバスとに接続され、外部データバスからの入力信
号をスタティックに保持する回路を有し、 上記データ出力バッファは、上記内部バスに選択的に接
続可能なレジスタで構成される出力ストレージに接続さ
れ、上記出力ストレージからの出力信号をスタティック
に保持する回路を有することを特徴とするデータ処理装
置。 2.上記入力ストレージは、先取りした命令の一部又は
全部を格納するものであることを特徴とする特許請求の
範囲第1項に記載のデータ処理装置。 3.前記出力ストレージは、実行中の命令の次の命令の
アドレスを格納するものであることを特徴とする特許請
求の範囲第1項に記載のデータ処理装置。
(57) [Claims] An internal bus connected to at least a register, an arithmetic logic unit, and a data input buffer; an output buffer connected to an external data bus; an instruction input buffer connected to an external data bus; A data control device comprising: a data input buffer configured to selectively output data to the internal bus; and an external data bus connected to an external data bus. A circuit that statically holds an input signal from the bus, wherein the data output buffer is connected to an output storage configured by a register that can be selectively connected to the internal bus, and outputs an output signal from the output storage. A data processing device having a circuit for statically holding data. 2. 2. The data processing apparatus according to claim 1, wherein said input storage stores part or all of prefetched instructions. 3. 2. The data processing apparatus according to claim 1, wherein the output storage stores an address of an instruction next to an instruction being executed.
JP62128250A 1987-05-27 1987-05-27 Data processing device Expired - Lifetime JP2738683B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62128250A JP2738683B2 (en) 1987-05-27 1987-05-27 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62128250A JP2738683B2 (en) 1987-05-27 1987-05-27 Data processing device

Publications (2)

Publication Number Publication Date
JPS63293665A JPS63293665A (en) 1988-11-30
JP2738683B2 true JP2738683B2 (en) 1998-04-08

Family

ID=14980208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62128250A Expired - Lifetime JP2738683B2 (en) 1987-05-27 1987-05-27 Data processing device

Country Status (1)

Country Link
JP (1) JP2738683B2 (en)

Also Published As

Publication number Publication date
JPS63293665A (en) 1988-11-30

Similar Documents

Publication Publication Date Title
TWI541658B (en) Data processing apparatus and semiconductor integrated circuit device
US7793075B2 (en) Active memory command engine and method
JP2773471B2 (en) Information processing device
US6542989B2 (en) Single instruction having op code and stack control field
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JP2617974B2 (en) Data processing device
JP2690406B2 (en) Processor and data processing system
JPH08212075A (en) Information processor
JP2738683B2 (en) Data processing device
US6564312B1 (en) Data processor comprising an arithmetic logic unit
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
JPH06124207A (en) Sub-routine branching instruction execution method
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
JP2861560B2 (en) Data processing device
JPH0544049B2 (en)
JPS61161509A (en) System and device for operating high speed sequence
JPH0524537B2 (en)
JP2020140290A (en) Central processing unit
JPH11119995A (en) Device and method for processing data
JPH04329436A (en) Central processing unit
JP2636074B2 (en) Microprocessor
FR2520528A1 (en) MICROCOMPUTER PROCESSOR
JPH06301539A (en) Microprocessor unit
JPH1173315A (en) Variable length instruction processor
JPH04107632A (en) Information processor

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080116

Year of fee payment: 10