JP2003029966A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2003029966A
JP2003029966A JP2001216258A JP2001216258A JP2003029966A JP 2003029966 A JP2003029966 A JP 2003029966A JP 2001216258 A JP2001216258 A JP 2001216258A JP 2001216258 A JP2001216258 A JP 2001216258A JP 2003029966 A JP2003029966 A JP 2003029966A
Authority
JP
Japan
Prior art keywords
instruction
unit
read
program
data
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.)
Withdrawn
Application number
JP2001216258A
Other languages
English (en)
Inventor
Naomiki Mitsuishi
直幹 三ッ石
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 JP2001216258A priority Critical patent/JP2003029966A/ja
Publication of JP2003029966A publication Critical patent/JP2003029966A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 データ処理装置の処理性能の向上を図る。 【解決手段】 プログラム格納用メモリから読み出され
た複数の命令を保持可能なレジスタ(IR)と、このレ
ジスタの出力を解読可能なデコーダ(OPCODE)
と、デコーダのデコード結果に基づいてプログラムの単
位リードサイクルをデータ処理装置の複数ステートで実
行し、上記単位リードサイクル内で上記複数の命令を実
行するための実行部(711)とを設け、フラッシュメ
モリなどのプログラム格納用メモリが論理回路の動作速
度に比べて遅い場合でも、データ処理装置の処理性能が
上記プログラム格納用メモリの能力に律則されないよう
にして、データ処理装置の処理性能を向上を図る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理技術に
関し、特に、半導体集積回路装置によって構成されるマ
イクロコンピュータに適用して有効な技術に関するもの
である。
【0002】
【従来の技術】半導体集積回路装置の製造技術の高度化
に伴って、半導体単結晶からなるシングルチップに、中
央演算処理装置(Central Processin
g Unit;以下、単に「CPU」と称する)、プロ
グラムを格納するROM(Read Only Mem
ory)、書き替え可能に各種データを格納するRAM
(Random Access Memory)等を含
む構成素子を集積して製造した、マイクロコンピュータ
が広範囲に普及してきており、種々の目的のデータ処理
装置として使用されている。
【0003】そのようなマイクロコンピュータに搭載さ
れるROMには、記憶内容が固定化されたマスクROM
の他に、フラッシュメモリのような電気的に書込み/消
去可能な不揮発性記憶装置(PROM)を用いたものが
ある。また、システムに実装後にPROMへのライトを
可能にした、いわゆるオンボード書込みが可能なものも
知られている。そのようなPROMを用いることによっ
て、開発期間の短縮を図り、仕様変更や少量多品種生産
に柔軟に対応することができる。
【0004】尚、マイクロコンピュータについて記載さ
れた文献の例としては、昭和60年12月25日に株式
会社オーム社から発行された「マイクロコンピュータハ
ンドブック(第157頁〜)」がある。
【0005】
【発明が解決しようとする課題】マイクロコンピュータ
応用機器への搭載されるマイクロコンピュータにおいて
は、リアルタイム性が必要である。すなわち、所定のイ
ベントを検出して、それに対する所要の応答を、所要の
時間内に行う必要がある。イベントの検出には割り込み
が用いられる。割り込みの発生は、多くの場合、プログ
ラム実行状態を特定することができない。
【0006】いわゆるキャッシュメモリを用いることに
よって、低速のプログラム格納用メモリを使用しなが
ら、処理を高速化する技術がある。しかしながら、キャ
ッシュメモリは、ヒット/ミスヒットによって処理速度
が変化するため、上記割り込みの発生によっては、処理
速度が変動してしまい、リアルタイム性の評価が困難で
ある。また、キャッシュメモリは、消費電力の増加や、
物理的規模の増加による製造費用の増加を招きやすい。
【0007】キャッシュメモリを用いる場合には、CP
Uは、キャッシュメモリから逐次命令を取込んで動作す
るから、キャッシュミスの場合は、当該アドレスの命令
がリードされるまで待機状態になる。キャッシュ自体
は、継続して、キャッシュフィルを行うが、これはCP
Uの命令実行と直接関係なく行われる。
【0008】特にPROMに着目した場合、このPRO
Mは、フローティングゲートを有するなど、その構造
が、そのほかの論理回路に比較して複雑であり、製造プ
ロセスも複雑になる。また、高速化が図り難い。少なく
とも、その他の論理回路やRAMなどに比較して、単純
化と高速化の両立が困難である。製造プロセスが複雑に
なることは、製造費用の増加を招来する。
【0009】マイクロコンピュータにおいて、プログラ
ムを格納するメモリがCPUやRAMにおける論理回路
の動作速度に比べて動作速度が遅い場合、マイクロコン
ピュータの性能が上記プログラムメモリの性能に律則さ
れてしまい、CPUの能力を十分に発揮することができ
ない。また、マイクロコンピュータはその応用によって
は、消費電力が低いことが重視される場合がある。携帯
機器はその一例である。さらに、マイクロコンピュータ
は、その応用によっては半導体集積回路で成るマイクロ
コンピュータの実現可能な論理回路の動作速度(例えば
50MHz)に比較して、低い動作周波数(例えば5M
Hz)で動作させたい場合がある。
【0010】本発明の目的は、データ処理装置の処理性
能を向上させるための技術を提供することにある。
【0011】本発明の別の目的は、低消費電力化を図る
ことにある。
【0012】本発明の更に別の目的は、データ処理装置
における論理的規模の増加を抑止するための技術を提供
することにある。
【0013】本発明の上記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0014】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0015】すなわち、プログラム(命令)の単位アク
セスサイクル内で、複数の命令実行を可能にする。プロ
グラムの単位リードサイクルにおいては、実効的に、ア
ドレスの出力とこれに対応する命令の格納とを行う。プ
ログラムのリードは、プログラム格納用メモリ、例えば
フラッシュメモリなどの電気的に書込み/消去可能な不
揮発性記憶装置(ROM)からの命令読み出しとされ
る。ROMのリードが相対的に遅い場合でも、それに制
限されずに、CPUの処理性能を維持できる。
【0016】第1の手段では、プログラム格納用メモリ
の単位アクセスを、CPUの複数ステートで実行するよ
うにし、上記複数ステートで、別の命令を実行可能にす
る。第1命令は、算術論理演算器(ALU)による当該
演算動作を行い、プログラム格納用メモリのアクセスの
完了を待たずに、次の命令の実行を開始させ、第2命令
は、算術論理演算器による当該演算動作を行い、プログ
ラム格納用メモリのアクセスの完了を待つようにすると
よい。プログラム格納用メモリの単位アクセスサイクル
のステート数以下の複数の命令を実行することができ
る。
【0017】1つの命令は、次の命令リードのアドレス
を出力し、リードを発行し、命令の格納は行なわず、別
の命令は、アドレスの出力とリードの発行を行なわず、
命令の格納を行う。換言すれば、1つの命令は、命令実
行中であっても、当該リードのウェイトを参照せず、動
作可能とする。別の命令は、ウェイトを参照して、適宜
待機状態となるようにする。
【0018】別の構成では、1つの命令は、次の命令リ
ードのアドレス出力、リードの発行を行い、前の命令の
リードの格納を行うようにし、別の命令は、その実行期
間に、アドレス出力、リードの発行も行なわず、命令の
格納も行なわないようにする。
【0019】第2の手段では、プログラム格納用メモリ
の単位アクセスを、CPUの単位ステートで実行するよ
うにし、第1命令、第2命令を同時に解読(デコード)
し、それぞれ、当該演算を第1算術論理演算器、第2算
術論理演算器で実行させるようにする。このとき、第1
命令と第2命令のデータに依存関係がある場合には、第
1算術論理演算器の出力を第2算術論理演算器に取り込
むようにすると良い。
【0020】命令実行に必要なステート数を短縮でき
る。例えば、同時に解読又は実行する命令の数を2個と
すると、必要なステート数を1/2とし、所要の処理性
能を実現する動作周波数も1/2にできる。消費電力の
大きな部分は、クロック信号によっているため、動作周
波数を1/2とることによって、消費電力の低減を図る
ことができる。
【0021】第1算術論理演算器と第2算術論理演算器
とを直列に接続することによって、資源の競合(汎用レ
ジスタのライトとリードの競合など)が発生しても矛盾
を生じない。また、命令の並びかたが任意にできるの
で、命令デコード回路も簡単にでき、論理的規模を縮小
でき、さらに、プログラム作成効率或いはコンパイラな
どの開発装置の開発効率を損なうことがない。
【0022】別の観点では、命令リードのアドレス又は
コマンドを発行後、プログラム格納用メモリなどにこの
ラッチ回路を設けてラッチし、続いて、データ用のアド
レス又はコマンドを発行し、上記命令リードの完了以前
に、上記データ用のデータ入出力を行い、その後に、上
記命令リードの命令格納を行うようにする。並列動作を
行なわない場合も、プログラムリードサイクルが遅いこ
とによる処理性能の低下を抑止できる。
【0023】このとき、上記実行部には、上記プログラ
ムの単位リードサイクルにおいて上記プログラム格納用
メモリへの読み出しアドレスを出力し、上記プログラム
の単位リードサイクルにおいて上記プログラム格納用メ
モリから読み出された命令を上記レジスタへ格納するた
めのバッファブロックを含めることができる。
【0024】また、プログラムとデータとを並列に伝達
可能とするため、上記プログラム格納用メモリからプロ
グラムのリードを可能とする第1バスと、データのリー
ド又はライトを可能とする第2バスとを別個に設けるこ
とができる。
【0025】上記複数の命令のうちの何れが実行されて
いるかの判別を可能とするため、実行中の命令を示す情
報を保持可能な保持手段を設けることができる。この保
持手段は例えば上記情報を保持可能なレジスタとされ
る。
【0026】
【発明の実施の形態】図8には、本発明にかかるデータ
処理装置の一例であるマイクロコンピュータの全体的な
構成が示される。
【0027】プログラムに従って所定の演算を実行する
CPU(中央処理装置)71、プログラム格納用メモリ
の一例とされるROM(リード・オンリ・メモリ)7
2、ランダムアクセス可能なRAM(ランダム・アクセ
ス・メモリ)73、バス制御のためのバスコントローラ
(BSC)75、入出力回路(I/O)74と、それら
間でデータのやり取りを可能とするためのプログラム用
バス(IAB,IDB)及びデータ用バス(DAB,D
DB)を含む。
【0028】CPU71とROM72はプログラム用バ
ス(IAB,IDB)で結合され、CPU71とRAM
72とはデータ用バス(DAB,DDB)で結合され
る。プログラム用バスとデータ用バスは、バスコントロ
ーラ75でインタフェースされて、I/Oバス及び外部
バスに接続されている。
【0029】入出力回路74は、例えば、タイマや、シ
リアルコミュニケーションインタフェース、入出力ポー
トなどを含む。入出力回路74は、CPU71に対する
割り込み要求信号を発生する。この割り込み要求信号は
CPU71に伝達される。
【0030】図1には上記CPU71の構成例が示され
る。
【0031】CPU71は、特に制限されないが、演算
処理を行うための実行部711と、その演算処理の実行
制御のための実行制御部710とを含む。
【0032】説明を簡単にするために、本CPU71の
命令は16ビットの固定長とし、この命令をリードする
データバスは32ビットとする。このようなCPU71
は、例えば、プログラム用のバス(IAB、IDB)
と、データ用のバス(DAB、DDB)を分離した、い
わゆるハーバードバス構造とされる。
【0033】CPU71は、制御部710と実行部71
1とを含んで成る。
【0034】実行部711は、汎用レジスタR0〜R3
1、プログラムカウンタPC、コンディションコードレ
ジスタCCR、算術論理演算器ALU、バッファブロッ
クBBを含む。これらは、リードバスA,B、ライトバ
スWによって相互に接続されている。算術論理演算器A
LUは演算結果の状態をコンディションコードレジスタ
CCRに出力する。バッファブロックBBには、アドレ
スバッファやデータバッファが含まれ、プログラム用の
アドレスバスIAB、データ用のアドレスバスDAB、
データ用のデータバスDDBに結合されることによっ
て、プログラム用のアドレス信号やデータ用のアドレス
信号及びデータのバッファリングを行う。プログラム用
のデータバスIDBは制御部710に結合される。ここ
で、バッファブロックBBは、特に制限されないが、プ
ログラムの単位リードサイクルにおいてROM72への
読み出しアドレスを出力し、上記プログラムの単位リー
ドサイクルにおいて上記プログラム格納用メモリから読
み出された命令を上記レジスタへ格納させる。
【0035】制御部710は、データバスIDBの内容
を取り込む32ビットの命令レジスタIRと、この命令
レジスタIRの内容を取り込むため、16ビットの命令
デコーダOPCODEを有する。命令レジスタIRの内
容は、上位又は下位16ビットの単位で命令デコーダO
PCODEに入力される。上位又は下位のいずれを実行
しているかを示すためのフラグを保持するレジスタHL
が設けられる。命令デコーダOPCODEにおいて命令
が解読され、実行部711への制御信号、バスの制御信
号などが生成される。
【0036】図2には、図1に示されるCPU71にお
ける主要部の動作タイミングが示される。
【0037】リセットなどの例外処理や、直前の命令な
どによるプログラムリードによって、2個の命令コード
が命令レジスタIRに格納される。まず、第1命令(上
位)が命令デコーダOPCODEに転送されて解読さ
れ、実行部711で実行される。この命令の実行は、例
えば、指定された汎用レジスタをリードし、それを算術
論理演算器ALUに入力し、指定された演算を実行し、
その結果を指定された汎用レジスタR0〜R31に格納
することで実現される。上記レジスタHLのフラグ状態
が第1の状態(例えばハイレベル)であるため、プログ
ラム用バスの状態は参照されない。
【0038】この実行が完了すると、命令レジスタIR
の下位から第2命令が命令デコーダOPCODEに転送
され、解読されて実行される。上記レジスタHLのフラ
グ状態が第2の状態(例えばロウレベル)であるため、
プログラム用バスの状態を参照し、ウェイトが要求され
ていれば、待機状態となり、ウェイトが終了すると、プ
ログラムリードによって命令レジスタIRに格納された
命令コードを命令デコーダOPCODEに転送して、次
の命令の実行を開始する。
【0039】このように、2個の命令コードが命令デコ
ーダOPCODEに伝達されて解読され、それが実行部
711で実行されることにより、プログラムリード(R
OMリード)1回に対して、2つの命令を実行すること
ができるので、マイクロコンピュータの処理性能の向上
を図ることができる。
【0040】図3には、上記CPU1における主要部の
別の動作タイミングが示される。
【0041】ROMリードは3ステートとされる。第2
命令についてはレジスタHLが第2状態であり、ウェイ
トを参照して、1ステート延長される。
【0042】尚、命令の解読、汎用レジスタのリード、
算術論理演算器ALUの演算、汎用レジスタのライトな
どは、公知の技術によって、適宜パイプライン化されて
順次実行する。パイプラインの構成は、ROMリードの
時間と、論理回路の動作速度などによって、適宜選択す
ることができる。バスアクセスも、同様にパイプライン
化することもできる。
【0043】また、第1、第2命令がRAMなどのデー
タリード/ライトを行う場合には、データ用のバスを用
いて、プログラムリードとは独立に実行することができ
る。図4には、この場合の動作タイミングが示される。
【0044】ROMリード1回の間に、RAMのデータ
リード/ライトを2回行うことができる。データ用バス
を有効に利用することができる。RAMの高速性を有効
に利用することができる。
【0045】ハーバードバス構造をとらない場合には、
第1命令でデータリード/ライトが必要な場合、ウェイ
ト(Wait)を参照して、プログラムリードの完了を
待ち、データのリード/ライトを行うようにすればよ
い。この場合、第2命令でデータリード/ライトが必要
であっても、直ちに実行することができる。
【0046】第1命令でデータリード/ライトが必要な
く、第2命令でデータリード/ライトが必要な場合、ウ
ェイトを参照して、プログラムリードの完了を待ち、デ
ータのリード/ライトを行うようにすればよい。第1命
令でデータリード/ライトが必要な場合に比較して、待
機状態になる時間を短くできる。プログラム作成時に、
データリード/ライトを行う命令は、下位側に配置され
るように、命令をならべるとよい。コンパイラなどでこ
れを自動化すれば更に好適である。
【0047】更に、固定長命令でない場合には、第1命
令を解読した時点で、当該命令の命令長は判定できるの
で、例えば32ビット長の命令であれば、プログラムリ
ードのウェイトを参照し、プログラムリード完了後に、
次の命令を実行するようにすればよい。
【0048】図5には、上記CPU71の別の構成例が
示される。
【0049】実行部711は、汎用レジスタR0〜R3
1、プログラムカウンタPC、コンディションコードレ
ジスタCCR、二つの算術論理演算器ALU1,ALU
2を含む。これらは、リードバスA1/A2/B1/B
2、ライトバスW1/W2によって相互に接続されてい
る。また、算術論理演算器ALU2には、リードバスA
2/B2の他に算術論理演算器ALU1での演算結果が
専用線を介して伝達される。
【0050】制御部710は、データバスの内容を入力
する32ビットの命令レジスタIRと、命令レジスタI
Rの内容を入力するそれぞれ16ビットの第1命令デコ
ーダOPCODE1とOPCODE2を有する。命令デ
コーダOPCODE1とOPCODE2はそれぞれ互い
に独立に動作する。第1命令デコーダOPCODE1
は、算術論理演算器ALU1とリードバスA1/B1、
ライトバスW1の制御信号を生成する。第2命令デコー
ダOPCODE2は、算術論理演算器ALU2とリード
バスA2/B2、ライトバスW2の制御信号を生成す
る。
【0051】命令デコーダOPCODE1とOPCOD
E2の命令がそれぞれ独立の場合には、上記命令デコー
ダはそれぞれ互いに独立に動作する。例えば、第1命令
デコーダOPCODE1の第1命令が、汎用レジスタR
0とR1の加算を行い、その結果を汎用レジスタR1に
格納するものであり、第2命令デコーダOPCODE2
の第2命令が、汎用レジスタR2とR3の加算を行い、
その結果を汎用レジスタR3に格納するものである場合
には、上記命令デコーダはそれぞれ互いに独立に動作す
る。
【0052】第2命令デコーダOPCODE2の第2命
令が、第1命令デコーダOPCODE1の第1命令の結
果を利用するような場合には、レジスタ競合検出回路
で、制御信号CONF1/2を発生する。これは、それ
ぞれ、各汎用レジスタのリードバスA2/B2への出力
制御信号とライトバスW1からの入力制御信号が競合し
ていることを検出するものである。制御信号CONF1
/2によって、算術論理演算器ALU2の入力として、
それぞれリードバスA2/B2の代わりに、算術論理演
算器ALU1の入力が行われる。
【0053】算術論理演算器ALU1から算術論理演算
器ALU2への動作が同一ステートで連続して実行され
るため、この遅延時間が大きくなるが、ROMリードの
時間が十分大きいか、論理回路が十分高速である場合に
は支障はない。
【0054】ライトバスW1/W2から汎用レジスタへ
の入力が競合した場合には、第2命令に対応するライト
バスW2からの入力を優先すればよい。それにはキャリ
フラグといったコンディションコードについても同様で
あり、コンディションコードレジスタCCRにおいて、
算術論理演算器ALU1からの入力より算術論理演算器
ALU2からの入力が優先される。
【0055】図6には、図5に示されるCPU71にお
ける主要部の作タイミングが示される。
【0056】リセットなどの例外処理や、直前の命令な
どによる、プログラムリードによって、2個の命令コー
ドが命令レジスタIRに格納される。まず、第1/第2
命令がそれぞれ命令デコーダOPCODE1又はOPC
ODE2に転送され、それらが並列に解読されて上記の
ように実行される。データの競合などが発生していれ
ば、算術論理演算器ALU1から算術論理演算器ALU
2への入力が行われる。プログラム用バスの状態が参照
され、ウェイトが要求されていれば、待機状態となり、
ウェイトが終了すると、プログラムリードによって命令
レジスタIRに格納された命令コードを命令デコーダO
PCODE1又はOPCODE2に転送する。それによ
り次の命令の実行が開始される。
【0057】2個の命令コードが命令デコーダOPCO
DE1,OPCODE2デコードされ、それに基づいて
算術論理演算器ALU1,ALU2で演算処理が行われ
るため、上記と同様に、プログラムリード(ROMリー
ド)1回に対して、2命令を実行することができる。
【0058】また、上記同様に、適宜パイプライン化す
ることもできる。第1、第2命令がRAMなどのデータ
リード又はライトを行う場合には、第1命令の実行を優
先して行うようにする。そのほか、第1命令と第2命令
の実行ステート数が異なる場合には、早く完了した方の
命令デコーダOPCODEや算術論理演算器ALUが待
機状態にされる。
【0059】更に、固定長命令でない場合には、第1命
令を解読した時点で、当該命令の命令長は判定できるの
で、例えば32ビット長の命令であれば、第1命令デコ
ーダOPCODE1と算術論理演算器ALU1を使用し
て演算をえばよい。
【0060】本例によれば、少ないクロック信号(低い
動作周波数)で、多くの命令実行を可能にして、処理性
能を向上することができる。また、同時に複数の命令を
実行しても、プログラムの順序(命令の並び)に従っ
て、競合を回避できる。
【0061】例えばスーパースカラなどの場合、並列実
行される命令相互の依存関係を調べ、競合しないことを
確認してからそれら複数の命令を並列実行することにな
る。それに対して本例では、上記のように、第1、第2
命令がRAMなどのデータリード又はライトを行う場合
には、第1命令の実行を優先して行うようにしたり、第
1命令と第2命令の実行ステート数が異なる場合には、
早く完了した方の命令デコーダOPCODEや算術論理
演算器ALUを待機状態にしたりするなど、何れにして
も命令の並びに従って、同時実行にかかる命令の競合を
回避することができる。このため、本例では、スーパー
スカラなどのように並列実行される命令相互の依存関係
を調べてから実行するような複雑な制御論理が不要とさ
れるので、制御論理の縮小化を図ることができる。
【0062】図7には、図5に示されるCPU71にお
ける主要部の別の動作タイミングが示される。
【0063】データのリード又はライトは、CPU71
の2倍の動作周波数で動作可能にし、第1命令と第2命
令が、いずれもRAMへのデータリード/ライトを行う
場合に、これを順序的に行うようにする。
【0064】CPU71は単位ステート内で、両方の命
令についてのデータリード又はライトを行うことができ
るので、データ用のバスを2組み設ける必要ががなく、
そのため、論理的及び物理的規模の増加を抑止できる。
【0065】図9には、上記CPU71の別の構成例が
示される。
【0066】図9に示されるCPU71が、図1に示さ
れるのと大きく相違するのは、CPU71の命令用/デ
ータ用バスが共通のバス(AB、DB)とされている点
である。
【0067】図10には、図9に示されるCPU71に
おける主要部の動作タイミングが示される。
【0068】クロック信号のハイ/ロウの2相を使用し
て動作するものとする。実際には、2相ノーオーバーラ
ップの2つのクロック信号を用いるとよい。クロック信
号のハイの期間をφ1、ロウの期間をφ2と称する。
【0069】T0のφ2でアドレスが出力される。図示
はされないが、同時にリードコマンドも発行される。こ
のアドレス又はコマンドはROMに、T1のφ1でラッ
チされる。ROM72はT1のφ1から読み出し動作を
行い、T3のφ1からデータ出力を可能とする。
【0070】リードした命令は、T3のφ2で命令レジ
スタIRにラッチされる。次の命令リードのアドレス
が、T3のφ2で出力される。これも、T4のφ1でR
OMにラッチされる。本タイミングでは、第1命令によ
ってRAMのデータアクセスが行われるものとする。T
4のφ2でデータアクセスのアドレスを出力し、T5で
データのリード又はライトを行う。このRAM73のア
クセス終了後、T6で命令リードのデータが得られる。
このようにROM72にアドレ又はコマンドがラッチさ
れているから1つのバスであってもROM72とRAM
73のアクセスを並列に実行することができる。このた
め、ROM72からの命令リードのレイテンシを利用し
て、データアクセスを行うようにすれば、データアクセ
スの時間を見かけ上、0とすることができる。
【0071】このように命令の並列実行を行なわない場
合にも、ROM72のリード時間が遅いことによる、処
理性能の低下を抑止できる。
【0072】データのアドレスが外部などウェイトが必
要な場合は、データバスDBを、セレクタ方式とし、R
OMはT4のφ1からデータを出力するが、CPUが選
択しないように構成するとよい。データのアクセス完了
後、ROMからリードした命令を格納するようにすれば
よい。命令実行シーケンスを変更する必要がない。
【0073】図11にはマイクロコンピュータの別の構
成例が示される。
【0074】図11に示されるマイクロコンピュータ
が、図8に示されるマイクロコンピュータと相違するの
は、プログラム用又はデータ用のバスが共通化され、1
系統のバス(AB,DB)によって結合されている点で
ある。プログラムやデータのやり取りは、上記1系統の
バス(AB,DB)によって行われる。このように1系
統のバスが共通化されている場合においても上記の例と
同様の作用効果が得られる。
【0075】上記の例によれば、以下の作用効果を得る
ことができる。
【0076】(1)デコーダOPCODEのデコード結
果に基づいてプログラムの単位リードサイクルをマイク
ロコンピュータの複数ステートで実行し、単位リードサ
イクル内で複数の命令を実行することにより、フラッシ
ュメモリなどのプログラム格納用メモリ72が論理回路
の動作に比較して遅い場合でも、データ処理装置の処理
性能が上記プログラム格納用メモリの能力に律則されな
いので、データ処理装置の処理性能を向上できる。
【0077】(2)演算処理のための第1算術論理演算
器ALU1と、その第1算術論理演算器ALU1の演算
結果を取り込んで演算処理可能な第2算術論理演算器A
LU2とを含んで実行部が構成されることにより、プロ
グラム格納用メモリの一例とされるROM72の単位ア
クセスを、CPU71の単位ステートで実行するように
し、第1命令、第2命令を同時に解読(デコード)し、
それぞれ、当該演算を第1算術論理演算器ALU1、第
2算術論理演算器ALU2で実行させるようにする。こ
のとき、第1命令と第2命令のデータに依存関係がある
場合には、第1算術論理演算器ALU1の出力を第2算
術論理演算器ALU2に取り込むようにすることで、命
令実行に必要なステート数を短縮できる。例えば、同時
に解読又は実行する命令の数を2個とした場合、必要な
ステート数を1/2とし、所要の処理性能を実現する動
作周波数も1/2にできる。消費電力はクロック信号の
周波数に依存するため、動作周波数を1/2とることに
よって、消費電力の低減を図ることができる。
【0078】(3)第1算術論理演算器ALU1と第2
算術論理演算器ALU2とを直列に接続することによっ
て、資源の競合(汎用レジスタのライトとリードの競合
など)が発生しても矛盾を生じない。また、命令の並び
かたが任意にできるので、命令デコード回路も簡単にで
き、それによって論理的規模を縮小できる。
【0079】以上本発明者等によってなされた発明を実
施例に限定されるものではなく、その要旨を逸脱しない
範囲において種々変更可能である。
【0080】例えば、CPUの命令セットやレジスタ構
成などは変更可能である。並列実行する数も任意に選択
できる。命令の基本単位は、16ビットの他、8ビット
や、32ビットであってもよいし、更には複数の処理を
並列的に実行するマイクロプロセッサアーキテクチャに
採用される例えば64〜256ビットというように通常
の方式に比べて非常に長い情報語長の命令フォーマット
とした方式であるVLIW(Very Long Instruction Wo
rd)型であってもよい。
【0081】内部バス幅や内部バス構成なども変更可能
である。少なくとも、プログラムをリードするバスのバ
ス幅は複数の処理を実行可能に広ければよい。
【0082】プログラムメモリは、ROM72のほか、
外部メモリであってもよい。外部メモリは別の半導体集
積回路であるため、単位アクセス時間が大きくなってし
まうので、本発明が有効である。
【0083】同期型の外部メモリでバースト動作を行
い、バス幅を広げずにすませるようにしてもよい。例え
ば、8ビットバス幅で、4バイトのバースト動作を、本
例のプログラムリードの単位アクセスと考えればよい。
【0084】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるマイク
ロコンピュータに適用した場合について説明したが、そ
れに限定されるものではなく、その他のデータ処理装置
にも適用可能である。
【0085】本発明は少なくとも、メモリからプログラ
ムを読み出して実行することを条件に適用することがで
きる。
【0086】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0087】すなわち、デコーダのデコード結果に基づ
いてプログラムの単位リードサイクルをデータ処理装置
の複数ステートで実行し、単位リードサイクル内で複数
の命令を実行することにより、フラッシュメモリなどの
プログラム格納用メモリが論理回路の動作速度に比べて
遅い場合でも、データ処理装置の処理性能が上記プログ
ラム格納用メモリの能力に律則されないので、データ処
理装置の処理性能を向上できる。
【0088】また、演算処理のための第1算術論理演算
器と、その第1算術論理演算器の演算結果を取り込んで
演算処理可能な第2算術論理演算器とを含んで実行部が
構成されることにより、プログラム格納用メモリの単位
アクセスを、CPUの単位ステートで実行するように
し、第1命令、第2命令を同時に解読(デコード)し、
それぞれ、当該演算を第1算術論理演算器、第2算術論
理演算器で実行させるようにする。このとき、第1命令
と第2命令のデータに依存関係がある場合には、第1算
術論理演算器の出力を第2算術論理演算器に取り込むよ
うにすることで、命令実行に必要なステート数を短縮で
きる。例えば、同時に解読又は実行する命令の数を2個
とすると、必要なステート数を1/2とし、所要の処理
性能を実現する動作周波数も1/2にできる。消費電力
は、クロック信号の周波数に依存するため、動作周波数
を1/2とることによって、消費電力の低減を図ること
ができる。
【0089】第1算術論理演算器と第2算術論理演算器
とが結合されることによって、資源の競合が発生しても
矛盾を生じない。また、命令の並びかたが任意にできる
ので、命令デコード回路も簡単にでき、論理的規模を縮
小できる。
【図面の簡単な説明】
【図1】本発明にかかるデータ処理装置の一例であるマ
イクロコンピュータに含まれるCPUの構成例ブロック
図である。
【図2】上記CPUにおける主要部の動作タイミング図
である。
【図3】上記CPUにおける主要部の別の動作タイミン
グ図である。
【図4】上記CPUにおける主要部の別の動作タイミン
グ図である。
【図5】上記CPUの別の構成例ブロック図である。
【図6】図5に示されるCPUにおける主要部の別の動
作タイミング図である。
【図7】図5に示されるCPUにおける主要部の別の動
作タイミング図である。
【図8】本発明にかかるデータ処理装置の一例であるマ
イクロコンピュータの構成例ブロック図である。
【図9】上記マイクロコンピュータに含まれるCPUの
別の構成例ブロック図である。
【図10】上記CPUにおける主要部の別の動作タイミ
ング図である。
【図11】上記マイクロコンピュータの別の構成例ブロ
ック図である。
【符号の説明】
71 CPU 72 ROM 73 RAM 74 I/O 75 BSC 710 制御部 711 実行部 IR 命令レジスタ OPCODE 命令デコーダ OPCODE1 第1命令デコーダ OPCODE2 第2命令デコーダ HL レジスタ ALU 算術論理演算器 ALU1 第1算術論理演算器 ALU2 第2算術論理演算器 CCR コンディションコードレジスタ PC プログラムカウンタ R0〜R31 汎用レジスタ BB バッファブロック

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 プログラム格納用メモリから読み出され
    た複数の命令を保持可能なレジスタと、上記レジスタの
    出力を解読可能なデコーダと、上記デコーダのデコード
    結果に基づいてプログラムの単位リードサイクルをデー
    タ処理装置の複数ステートで実行し、上記単位リードサ
    イクル内で上記複数の命令を実行するための実行部と、
    を含むことを特徴とするデータ処理装置。
  2. 【請求項2】 プログラム格納用メモリから読み出され
    た複数の命令を保持可能なレジスタと、上記レジスタの
    出力を解読可能なデコーダと、上記デコーダのデコード
    結果に基づいてプログラムの単位リードサイクルをデー
    タ処理装置の単位ステートで実行するための実行部とを
    備え、 上記実行部は、演算処理のための第1算術論理演算器
    と、その第1算術論理演算器の演算結果を取り込んで演
    算処理可能な第2算術論理演算器とを含んで成ることを
    特徴とするデータ処理装置。
  3. 【請求項3】 上記プログラムの単位リードサイクルに
    おいて上記プログラム格納用メモリへの読み出しアドレ
    スを出力し、上記プログラムの単位リードサイクルにお
    いて上記プログラム格納用メモリから読み出された命令
    を上記レジスタへ格納するためのバッファブロックを含
    んで成る請求項1又は2記載のデータ処理装置。
  4. 【請求項4】 上記プログラム格納用メモリからプログ
    ラムのリードを可能とする第1バスと、データのリード
    又はライトを可能とする第2バスとを含む請求項1乃至
    3の何れか1項記載のデータ処理装置。
  5. 【請求項5】 上記複数の命令のうちの何れが実行され
    ているかを示す情報を保持可能な保持手段を含んで成る
    請求項1乃至4の何れか1項記載のデータ処理装置。
JP2001216258A 2001-07-17 2001-07-17 データ処理装置 Withdrawn JP2003029966A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001216258A JP2003029966A (ja) 2001-07-17 2001-07-17 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001216258A JP2003029966A (ja) 2001-07-17 2001-07-17 データ処理装置

Publications (1)

Publication Number Publication Date
JP2003029966A true JP2003029966A (ja) 2003-01-31

Family

ID=19050760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001216258A Withdrawn JP2003029966A (ja) 2001-07-17 2001-07-17 データ処理装置

Country Status (1)

Country Link
JP (1) JP2003029966A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009259398A (ja) * 2004-11-18 2009-11-05 Mentor Graphics Corp プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置
JP2012150589A (ja) * 2011-01-18 2012-08-09 Toshiba Corp 演算装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009259398A (ja) * 2004-11-18 2009-11-05 Mentor Graphics Corp プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置
JP2012150589A (ja) * 2011-01-18 2012-08-09 Toshiba Corp 演算装置

Similar Documents

Publication Publication Date Title
JP5047542B2 (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
JP4883824B2 (ja) デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
JPH03282904A (ja) プログラマブルコントローラ
KR20160011144A (ko) 스레드 일시중지 프로세서들, 방법들, 시스템들 및 명령어들
US7941650B2 (en) Microprocessor based on event-processing instruction set and event-processing method using the same
JPH10187642A (ja) マイクロプロセッサ及びマルチプロセッサシステム
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
US20070073953A1 (en) Performing an N-bit write access to an MxN-bit-only peripheral
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
JP5322567B2 (ja) データ処理システム及び半導体集積回路
JP3900499B2 (ja) 再構成可能な、命令レベルのハードウェアによる高速化のためにマイクロプロセッサとともにfpgaテクノロジを使用する方法および装置
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
JP2010003151A (ja) データ処理装置
JP2003029966A (ja) データ処理装置
JPS63197232A (ja) マイクロプロセツサ
JP2000105759A (ja) 集積回路及び集積回路用のデータを記録した記録媒体
US20080222336A1 (en) Data processing system
JP5012562B2 (ja) マイクロコンピュータ
JPH06324861A (ja) Cpu制御システム及び制御方法
JP3630904B2 (ja) 演算実行方法および演算実行装置
JP4702004B2 (ja) マイクロコンピュータ
JPH07302255A (ja) 半導体集積回路装置およびそのエミュレーション用プロセッサならびにエミュレータ
JP2002278753A (ja) データ処理システム
JPH08234982A (ja) 並列処理装置
JP2007328627A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081007