JPH04104350A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH04104350A
JPH04104350A JP2222203A JP22220390A JPH04104350A JP H04104350 A JPH04104350 A JP H04104350A JP 2222203 A JP2222203 A JP 2222203A JP 22220390 A JP22220390 A JP 22220390A JP H04104350 A JPH04104350 A JP H04104350A
Authority
JP
Japan
Prior art keywords
instruction
data
bits
microprocessor
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2222203A
Other languages
English (en)
Inventor
Kenji Miyazaki
健司 宮崎
Atsuo Hotta
堀田 厚生
Hisao Sasaki
久郎 佐々木
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 JP2222203A priority Critical patent/JPH04104350A/ja
Priority to EP19910112971 priority patent/EP0472025A3/en
Priority to KR1019910014476A priority patent/KR920004971A/ko
Publication of JPH04104350A publication Critical patent/JPH04104350A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプロセッサさらにはRISC(R6d
uCed  Jnstruct]、on  Set  
Computer)型マイクロプロセッサにおけるアー
キテクチャに関し、例えば機器に組み込まれてこれを制
御するマイクロプロセッサに適用して有効な技術に関す
るものである。
〔従来の技術〕
マイクロプロセッサの機能を高めて、命令セラ1−、ア
ドレッシングモード、データタイプをできるだけ豊富に
することにより、システム全体としての高性能化と共に
、コンパイラやO8などのシステムプログラムを書き易
くしようとする努力がなされてきたが、その結果、マイ
クロプロセッサは複雑化して開発期間が長くなるばかり
でなく、制御回路における処理時間が長くなるため、全
体的にマイクロプロセッサの性能低下が懸念されてきた
。このため、命令セラ1〜を簡単化することによって以
上の問題点を解決しようとするR:[SCの考え方が提
案されている。この背景には、各種命令の実行頻度を測
定してみると、はとんどがL○AD、5TOREといっ
た簡単な命令であって、これら簡単な命令を高速化する
ことが重要であるという認識がある。
従来のRISC型マイクロプロセッサの命令フォーマッ
トは、例えばシー・ワイ・7・シー600 ファミリー
 ユーザーズガイド(サイプレスセミコンダクタ社 1
988年版)第2−18頁から第2−29頁(CY7C
600Fami ly  Users  Guide 
 [CypressSemiconductorコ 1
988   PP2−18〜PP2−29)に記載され
ているように、32ビツトなど固定長命令フォーマット
を特徴としている。この文献における命令フォーマット
において、オペレージ巨ンコードは最大128種類指定
可能であるが、この内の34%に相当する44種類のオ
ペレーションコートが未定義となっている。
本来RISCプロセッサは命令数を少なくすることによ
り命令の実行を高速化しようとするアーキテクチャであ
るため、命令セットの中に未定義オペレーションコード
が多くなるという点はRISCプロセッサ全般に言える
事柄である。
〔発明が解決しようとする課題〕
しかしながら、未定義オペレーションコードが多いとい
うことは、各オペレーションコードのビット列中に実質
的に無駄なビット配列が多く存在しているということを
意味し、オブジェクトプログラムのコード効率を悪化さ
せ、すなわち、メモリの利用効率を低下させることにな
る。従来この点についての配慮は一切なされていなかっ
た。
船釣にRISCプロセッサのコード効率はCl5C(C
omplex  In5tructionSet  C
omputer)型のプロセッサの7割以下と言われて
いる。このため、プログラムメモリ上において実質的に
無駄に費やされる領域が相対的に大きくなり、ボード上
の限られた記憶容量のメモリやプロセッサにオンチップ
されたプログラムメモリを用いる応用分野などにおいて
、システム構成時にメモリの有効利用が妨げられ、メモ
リの記憶容量が不足したり、回路規模を大きくせざるを
得ないという問題点のあることを本発明者らは見い出し
た。
本発明の目的は、プログラムを格納するためのメモリの
利用効率を高くすることができるマイクロプロセッサを
提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細
書の記述並びに添付図面から明らかになるであろう。
〔課題を解決するための手段〕
本願において開示される発明のうち代表的なものの概要
を簡単に説明すれば下記の通りである。
すなわち、命令制御部で解読されて処理される命令の語
長が一定にされているマイクロプロセッサにおいて、当
該命令の語長を、実行部で取り扱い可能な単位データの
最大ビット数すなわちデータの最大語長よりも短くする
ものである。
換言すれば、命令制御部は、解読すべき命令のビット数
が一定であって、且つ、前記実行部において取り扱い可
能な単位データの最大ビット数よりも少ないビット数の
命令を解読する手段を含むことになる。
また、プログラムメモリやデータメモリとの関係におい
ては、前記命令制御部に供給する命令のビット数を前記
実行部との間でやりとりするデータのビット数よりも少
ないビット数とするバスインタフェース部を設けること
ができる。
このとき、命令制御部によるデータや命令のアクセス制
御を複雑化しないようにするには、前記バスインタフェ
ース部は、データの入出力と命令の入力とに兼用される
インタフェース経路を保有すればよい。
このインタフェース経路は、前記実行部において取り扱
い可能な単位データの最大ビット数のデータを並列的に
伝達可能なビット数を有するものであることがデータの
転送効率もしくはデータや命令のアクセス動作効率上望
ましい。
このようにインタフェース経路のビット数すなわち幅が
命令語長よりも幅広であるとき、そのインタフェース経
路のビット幅全体を使って命令を取り込むことができる
ようにするには、前記命令制御部には、命令の解読手段
に与えるための命令を蓄えていく命令プリフェッチキュ
ーを設け、前記バスインタフェース部には、前記インタ
フェース経路を介して供給される情報に含まれる1個の
命令と別の命令の一部とを、その配列状態に応じて整列
させて前記プリフェッチキューに分配する手段を設けて
おくとよい。
データや命令を格納する領域に対するアドレス配置の融
通性保証するには、前記命令制御部は、データと命令を
同一7トレス空間内で管理するようにすればよい。
前記インタフェース経路に接続されたデータメモリやプ
ログラムメモリはマイクロプロセッサとは別チップで構
成してもよいが、高速アクセスを企図する場合にはそれ
らメモリをマイクロプロセッサにオンチップ化するとよ
い。
〔作 用〕
上記した手段よれば、RI SCのようにオペレーショ
ンコードの種類を少なくすることによって命令の実行速
度を高速化しようとするアーキテクチャにおいて、デー
タ語長に比べて命令語長を短くすることは、双方の語長
が等しくされる場合に比へて、オペレーションコードを
構成するビット列において実質的に無駄なビット配列を
減少させるように作用し、このことが、プログラムを格
納するためのメモリの利用効率を高くする。
〔実施例〕
第1図には本発明の一実施例に係るマイクロプロセッサ
が示される。
同図に示されるマイクロプロセッサ1は、RISC型の
アーキテクチャを有し、例えば実行頻度の高いLOAD
、5TOREといった比較的実行時間の短い命令によっ
て命令数の少ない命令セットをもって全体的な命令の実
行速度を高速化しようとするものである。複雑な処理を
要する命令に対しては命令セラ1−に含まれる比較的簡
単な複数の命令を組み合わせてその複雑な命令に相当す
る処理を行う。斯る実行頻度の低い命令の実行時間は長
くなるが、比較的実行時間の短い簡単な命令の実行頻度
が全体に占める割合が高いため、マイクロプロセッサ全
体としての命令実行動作は高速化される。
このマイクロプロセッサ1は、実行部2と、命令を解読
して前記実行部2を制御する命令制御部3と、前記実行
部2と命令制御部3に接続されると共に外部とインタフ
ェースされるバスインタフェース部4とを含み、それら
はシリコンのような1個の半導体基板に形成されている
前記命令制御部3が解読して処理すべき命令のビット数
すなわち命令語長は一般的なRISC型マイクロプロセ
ッサと同様に一定にされている。
第1図において、命令制御部3が解読して処理する前記
命令の語長は、実行部2で演算可能な単位データの最大
ビット数すなわちデータの最大語長よりも短くされ、例
えばデータの最大語長が32ビツトであるとき、命令語
長は24ピッi−とされる。このとき、命令は24ビツ
トの内部バス5を介してバスインタフェース部4から命
令制御部3に与えられ、また、実行部2とバスインタフ
ェース部4は32ビア +”の内部バス6を介してデー
タをやりとりする。ここで、実行部2で演算可能な単位
データの最大語長は、実行部に含まれる演算器やレジス
タの入力可能な最大ビット数、若しくは実行部2におけ
る内部バスのピッ1〜数によって決定される。
第1図において、外部とインタフェースされるデータの
入出力と命令の入力とを双方に共通の外部データバス7
を介して行うとき、当該外部データバス7のビット数は
32ピッl−又は64ピツI〜など適宜のビット数を採
用することができる。例えば外部データバス7のビット
数が64ビットであるとき、バスインタフェース部4は
、64ビット単位で外部から入力する情報がデータであ
るときはその情報を上位、下位夫々32ビット単位で切
り分けて実行部2に与え、また、64ビット単位で外部
から入力する情報が命令であるときはその情報を24ビ
ツトの命令単位で切り分けると共に端数のビットを切り
出して、命令制御部3にプリフエッチさせ、これらの処
理に必要な論理を含むことになる。
第2図には第1図のマイクロプロセッサ1の具体的な一
例が示される。
第2図において、10はレジスタファイル、11は演算
器、12はアドレス出力レジスタ、13はデータ入力レ
ジスタ、14はデータ出力レジスタ、15は命令プリフ
ェッチキュー、16は命令デコーダ、17はデータバス
インタフェース部、18はアドレスバスインタフェース
部である。
データバスインタフェース部17は、データの入出力及
び命令の入力に兼用されるインタフニス経路としての3
2ビツトのデータ入出力経路20とこれに接続する図示
しないデータ入出力バッファを介して第1図に示される
ような外部データバス7に接続される。この例に従えば
外部データバス7は32ビツトとされる。バスインタフ
ェース部4と実行部2との間でデータをやりとりする3
2ビツトの前記内部バス6は第2図においてリードバス
6Rとライトバス6Wとして図示され、夫々32ビツト
のバス幅を有する。データ入出力経路20を介してデー
タバスインタフェース部17に取り込まれる命令は24
ビツト幅の前記内部バス5を通して命令プリフェッチキ
ュー]5に与えられて蓄積され、そこから順次読み出さ
れる命令を命令デコーダ16が解読して各種制御信号を
生成する。プリフェッチすべき命令のアドレスは特に制
限されないがレジスタファイル10中に割り当てられた
プログラムカウンタが保持する。尚、命令の実行シーケ
ンスや割り込み制御さらには内部での演算結果を制御に
反映したりするためのその他の制御論理は第2図には図
示されていない。
レジスタファイル10は、アキュムレータ、アドレスカ
ウンタ、そして汎用レジスタなどとして利用される。前
記演算器11は、特に制限されないが、データ演算を行
うための算術論理演算器やアドレス演算などを行うため
の算術演算器などを含む。演算されたアドレスはアドレ
ス出力レジスタ12などを介して外部に出力される。実
行部2の内部には夫々32ビツトの内部バス21,22
゜23が配置され、それらを介して内部ブロック間での
データのやりとりが行われるようになっている。
第3図にはデータバスインタフェース部17における3
2ピツ(・の入力に対するビット振り分は論理の一例が
示される。
データバスインタフェース部17において32ビットの
前記入出力経路20にはデータセレク25とデータラン
チ回路26の入力が接続される。
前記データセレクタ25は外部から与えられる32ビツ
トのデータが実行部2で演算処理すべきデータである場
合に命令デコーダ16の出力制御信号に基づいてそれを
選択してデータ入力レジスタ13に与えたり、命令プリ
フェッチキュー15にブリフェッチされている命令のイ
ミデイエイl−値などを命令デコーダ16の出力制御信
号に基づいてデータ入力レジスタ13に与えたりする。
さらに、このデータセレクタ25は32ビツトの入力デ
ータに対して上位16ビツトと下位16ビツトを入れ換
えてデータ入力レジスタ13に供給可能にしたり、命令
プリフェッチキュー15から供給されるイミディエイト
値などを上位16ビツ1へ又は下位16ビツトに供給可
能にする論理を有し、その論理に対する制御は命令デコ
ーダ16の出力制御信号によって行われる。
前記データラッチ回路26は32ビットのデータを並列
的に保持し、その出力をアライナ27に供給する。アラ
イナ27はデータ入出力経路20を介して供給される3
2ビツトのデータに含まれる1個の命令(24ビット)
と次に続く命令の一部(8ビツト)とを、その配列状態
に応じて整列させて前記命令プリフェッチキュー15に
分配する。この実施例に従えば前記プリフェッチキュー
15は夫々32ビツトの記憶段を3段有するFIFO(
ファースト・イン・ファースト・アウト)レジスタによ
って構成され、前記アライナ27に対する整列制御や命
令プリフェッチキュー15に対するリード・ライト制御
は、命令デコーダ16の出力制御信号を受ける制御論理
28が司る。
制御論理28はデータ入出力経路20を介してデータバ
スインタフェース部17に取り込まれる情報が命令であ
るか否かを、命令デコーダ16が出力する命令ブリフェ
ッチサイクルを示す為の制御信号に基づいて判定し、命
令ブリフェッチサイクルである場合には、アライナ27
を活性化し、このアライナ27によるデータの整列処理
を制御すると共に、これに同期して命令ブリフェッチキ
ュ−15のリート・ライト動作を制御する。例えば、第
4図に示される命令データIDATA](32ビツト)
が取り込まれると、アライナ27は最初に下位側24ビ
ツトの命令lN5TIを切り出して出力し、これを受け
る命令ブリフェッキュ−15はその命令lN5TIを記
憶段15Aに記憶する。その後、アライナ27は前記命
令データIDATA1の上位側8ビツトに含まれている
命令lN5T2の一部を切り出して出力し、これを受け
る命令ブリフェッキュー15はその命令■N5T2の一
部を記憶段15Bに記憶する。次に、命令データよりA
TA2 (32ビツト)が取り込まれると、アライナ2
7は最初に下位側16ビツトに含まれている命令lN5
T2の残り16ビツトを切り出して出力し、これを受け
る命令ブリフエツキュ−15はその命令lN5TIを記
憶段15Bに記憶する。そしてアライナ27はその命令
データIDATA2の上位側16ビツトに含まれている
次の命令lN5T3の一部(16ビツ1〜)を切り出し
て出力し、これを受ける命令ブリフェッキュ−15はそ
の命令lN5T3の一部を記憶段15Cに記憶する。第
4図に示されるように32ビツトの命令データから命令
を順次切り出していく態様には規則性があるため、制御
論理28はその規則に従って切り出し制御を行う。この
ように32ビツトの命令データに含まれる命令は順次整
列されて命令プリフェッチキューにプリフェッチされる
。プリフェッチされた命令の語長は24ビットであり、
命令デコーダ16はその命令を解読する。
第5図にはこの実施例のマイクロプロセッサ1が実行す
る命令のフォーマットが示される。
この命令はそれが実行すべき機能の種類などを記述する
為のオペレーションコード指定領域3゜と、オペレーシ
ョンコードによって指定される機能を実行するためのオ
ペランドそれ自体若しくはオペランドのロケーションを
指定する情報などの指定領域31を有し、その命令語長
は前述の通り24ビツトに固定されている。例えば、指
定領域31に保持されたロケーション情報等(以下に述
べるアドレシングモードに関する情報も含む)により指
示されたオペランドが上記データとしてデータセレクタ
25を介して上記データ入力レジスタ13に与えられる
。このとき1命令により処理される単位データの最大語
長は、実行部に含まれる演算器やレジスタの入力可能な
最大ビット数、若しくは実行部内の内部バスのビット数
によって決定され、本実施例では32ビツトである。尚
、本実施例のマイクロプロセッサにより処理されるデー
タの語長は、必ずしも最大語長である必要はなく、例え
ば16ビツトであってもよい。この場合、例えば16ビ
ツトから32ビツトへの拡張を行なえばよい。
オペレーションコード指定領域3oにはLOAD、5T
OREというようなオペレーションコードのほかに、ア
ドレシングモード、そして状態フラグや演算で発生され
るキャリーなどに対する分岐条件を示す情報も含めるこ
とができる。
前記その他の指定領域31には、必要に応じて、レジス
タ指定、イミディエイ1〜値指定、ディスブレースメン
lへなどを含めることができ、当該領域31にどのよう
な情報を含んでいるかは例えばオペレーションコード指
定領域30の情報によって特定される。レジスタ指定を
行う情報としては実行部2に含まれるレジスタ番号が記
述され、イミディエイト値としてはデータやアドレスな
どの数値が直接指定され、ディスブレースメン1−とし
てはJUMP命令やCALL命令における分岐先アドレ
ス演算などに利用される情報が含まれる。
ここで、命令に含まれるオペレーションコードのビット
数は固定であっても非固定であってもよいが、本実施例
ではオペレーションニード指定領域30のビット数は8
ピツ1へに統一されている。
このとき、本実施例の命令デコーダ16は命令プリフェ
ッチキュー15から出力される命令の全部ビットを取り
込むが、取り込んだ命令の内前記指定領域31の情報を
デコードするか否かは当該指定領域31にデコードの可
否を指示するピッ1〜が含まれていてそのデコード結果
に基づいて決定される。例えば、その領域31にイミデ
ィエイト値が含まれているような場合にはデコードされ
ず、当該イミディエイト値は実行部2に供給される。
データ語長よりも命令語長が短い本実施例のマイクロプ
ロセッサ1において、直接オペランドとしても利用され
るイミディエイト値として、データ語長に等しいビット
数を要することがある。本実施例ではこれに対処するた
め、2命令でデータ語長に等しいイミディエイト値を取
得することができるようになっている。例えば、24ビ
ツトの命令語長に対してオペレーションコード指定領域
30を8ビツトとする命令フォーマットにおいて、16
ビツトのイミディエイ1〜値をデータ入力レジスタ13
の上位16ビソト又は下位16ビツ1−の何れに配置す
るかを指示するセラ1〜・ハイ命令及びヤツ1〜・ロウ
命令を用意しておき、斯る命令を連続的に実行すること
によって32ビツトのイミディエイト値を所要のレジス
タに設定可能にする。
すなわち、その命令の解読結果に応じて当該命令のイミ
ディエイト値をデータ入力レジスタ13の上位か下位の
何れに格納するかを制御し、データが格納されない側の
16ビツ1〜には論理0のビットを設定する。次の命令
サイクルでは最初にデータ入力レジスタ13に格納され
た32ビツトのデータが演算器11に転送されると共に
、前記とは上位・下位反対側にイミディエイト値と論理
0のビットがデータ入力レジスタ13に書き込まれて同
様に演算器11に出力され、演算器11で双方の32ビ
ツトデータが合成されて、所要のレジスタに転送される
第6図にはプログラムメモリ35とデータメモリ36を
同一アドレス空間に配置して夫々に別々の71−レスを
割り当てたアドレスマツプ図が示される。本実施例のマ
イクロプロセッサ1が管理するアドレス空間には第6図
のようにデータメモリ36とプログラムメモリ35が同
一空間に配置されている。これに対して第7図にはプロ
グラムメモリ37とデータメモの38を別々のアドレス
空間に配置したアドレスマツプ図が示される。第7図の
ようなアドレスマツプを有する場合、命令はそれ専用の
経路39を通して命令制御部40に与えられ、データは
それ専用の経路41を介して実行部42に与えられる。
したがって、第7図のようなアドレスマツプを有するマ
イクロプロセッサにおいてはプログラムメモリとデータ
メモリの配置を入れ換えたりすることは事実上不可能で
ある。
このようなアドレスマツプは例えばディジタル・シグナ
ル・プロセッサが持ち、命令フェッチとデータ転送をパ
イプライン的に並列化して行うような、動作の高速化を
最優先した専用プロセッサとしてのアーキテクチャを採
用するようなものに適用される。これに比べて本実施例
のような第6図のメモリマツプによってプログラムメモ
リ35とデータメモリ36を管理するアーキテクチャは
、データや命令を格納する領域に対するアドレス配置の
融通性が保証され、制御対象機器の特性や機能などに応
じた動作プログラムによって制御を行うような汎用的な
マイクロプロセッサに適している。
第8図には実行部2が処理すべきデータを保有するデー
タメモリ44と命令制御部3で解読すべき命令を保有す
るプログラムメモリ45を同一半導体基板に含めたシン
グルチップマイクロコンピュータのようなマイクロプロ
セッサが示される。
この例において、データメモリ44のデータ入出力端子
とプログラムメモリ45のデータ出力端子は前記転送経
路20に相当する経路を共有し、且つ、夫々のアドレス
信号入力端子には共通のアドレスバスを介してアドレス
信号が供給される。このデータメモリ44及びプログラ
ムメモリ45のアドレスマツプは第6図に対応される。
第9図には命令専用バスインタフェース部46とデータ
専用バスインタフェース部47を有する例が示される。
命令専用バスインタフェース部46は一方においてプロ
グラムメモリのデータ出力端子に結合され、データ専用
バスインタフェース部47には一方においてデータメモ
リなどが接続される。双方へのアドレス供給は、共通の
アドレスバスを以て行うことができる。このような専用
構造にすると、第2図や第3図で説明した共通のインタ
フェース経路20を用いる場合に必要なアライナ27や
そのための制御論理28は不要とされる。但し、半導体
集積回路化されたマイクロプロセッサの外部端子の数が
増大する。
上記実施例によれば以下の作用効果がある。
(1)RISCのようにオペレーションコートの種類を
少なくすることによって命令の実行速度を高速化しよう
とするアーキテクチャを持つマイクロプロセッサ1にお
いて、命令制御部で解読されて処理される命令の語長が
一定にされると共に、当該命令の語長を、実行部で取り
扱い可能な単位データの最大ビット数すなわちデータの
最大語長よりも短くすることにより、命令語長とデータ
語長の双方が等しくされる場合に比べて、オペレーショ
ンコードを構成するビット列において実質的に無駄なビ
ット配列を減少させることができ、これにより、プログ
ラムを格納するためのメモリの利用効率を高くすること
ができる。
(2)上記作用効果により、RISC型マイクロプロセ
ッサを含むシステムにおいて、プログラムメモリ上で実
質的に無駄に費やされる領域が相対的に少なくなるから
、ボード上の限られた記憶容量のメモリやプロセッサに
オンチップされたプログラムメモリを用いる応用分野な
どでは、システム構成時にプログラムメモリの記憶容量
が不足したり、メモリの回路規模を大きくせざるを得な
いというような問題点の発生を回避することができる。
(3)データ語長に比べて命令語長を短くする為の手段
として、プログラムメモリやデータメモリとの関係にお
いて、前記命令制御部3に供給する命令のビット数を前
記実行部2との間でやりとりするデータのビット数より
も少ないビット数とするバスインタフェース部4を設け
ることにより、外部若しくはデータメモリやプログラム
メモリとの間で入出力されるビット数はデータ語長及び
命令語長に制限されずに任意に決定可能にすることがで
きる。
(4)前記バスインタフェース部4に、データの入出力
と命令の入力とに兼用されるインタフェース経路20を
設けることにより、命令制御部3によるデータや命令の
アクセス制御を複雑化しないようにすることができる。
(5)前記インタフェース経路2oに、前記実行部2に
おいて取り扱い可能な単位データの最大ビット数のデー
タを並列的に伝達可能なビット数を確保することにより
、データの転送効率もしくはデータや命令のアクセス効
率を低下させない。
(6)前記命令制御部3に、命令デコーダ16に与える
ための命令を蓄えていく命令プリフェッチキュー15を
設け、前記バスインタフェース部4には、前記インタフ
ェース経路20を介して供給される情報に含まれる1個
の命令と別の命令の一部とを、その配列状態に応じて整
列させて前記プリフェッチキュー15に分配するための
アライナ27や制御論理28を設けておくことにより、
前記インタフェース経路2oのビット数が命令語長より
も幅広であるときに、そのインタフェース経路20のビ
ット幅全体を使って能率的に命令を取り込むことができ
るようになる。
(7)前記命令制御部3がデータと命令を同一アドレス
空間内で管理することにより、データや命令を格納する
領域に対するアドレス配置の融通性を保証することがで
きる。
(8)前記インタフェース経路20に接続されたデータ
メモリやプログラムメモリをマイクロプロセッサにオン
チップ化することにより、それらメモリに対する高速ア
クセスを可能にする。
以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明はそれに限定されるもので
はなく、その要旨を逸脱しない範囲において種々変更す
ることができる。
例えば上記実施例では命令語長を24ビット、データの
最大語長を32ピッI−として説明したが、本発明はそ
れに限定されるものではなく、マイクロプロセッサに必
要される処理能力や制御対象システムなどに応じて適宜
変更可能である。
また、上記実施例では命令に含まれるオペレーションコ
ード指定領域の情報以外も必要に応じてデコーダで解読
するようにしたが、当該領域の情報だけをデコードする
ようにしてもよい。また、バスインタフェース部は外部
とインタフェースされる回路に限定されず、プログラム
メモリやデータメモリを内蔵する1チツプ化されたマイ
クロプロセッサにおいてはそれらメモリが共通接続され
た内部バスにインタフェースされる回路であってもよい
〔発明の効果〕
本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば下記の通りである。
すなわち、RISCのように命令語長が一定にされたア
ーキテクチャを持つマイクロプロセッサにおいて、命令
の語長を、実行部で取り扱い可能な単位データの最大語
長よりも短くすることにより、命令語長とデータ語長の
双方が等しくされる場合に比べて、オペレーションコー
ドを構成するビット列に対して実質的に無駄なビット配
列を減少させることができ、これにより、プログラムを
格納するためのメモリの利用効率を高くすることができ
るという効果がある。
(2)上記効果により、特にボート上の限られた記憶容
量のメモリやプロセッサにオンチップされたプログラム
メモリを用いる応用分野などでは、システム構成時にプ
ログラムメモリの記憶容量が不足したり、メモリの回路
規模を大きくせざるを得ないというような事態の発生を
防止することができる。
(3)データ語長に比べて命令語長を短くする為の手段
として、プログラムメモリやデータメモリとの関係にお
いて、前記命令制御部に供給する命令のビット数を前記
実行部との間でやりとりするデータのビット数よりも少
ないビット数とするバスインタフェース部を設けること
により、外部若しくはデータメモリやプログラムメモリ
との間で入出力されるビット数を、データ語長及び命令
語長に制限されずに任意に決定可能にすることができる
という効果がある。
(4)データの入出力と命令の入力とに兼用されるイン
タフェース経路をハスインタフェース部に設けることに
より、命令制御部によるデータや命令のアクセス制御を
複雑化しないようにすることができる。
(5)前記インタフェース経路に、実行部において取り
扱い可能な単位データの最大ビット数のデータを並列的
に伝達可能なビット数を確保することにより、データの
転送効率もしくはデータや命令のアクセス効率を低下さ
せないようにすることができる。
(6)前記命令制御部に、命令の解読手段に与えるため
の命令を蓄えていく命令プリフェッチキューを設け、前
記バスインタフェース部には、前記インタフェース経路
を介して供給される情報に含まれる1個の命令と別の命
令の一部とを、その配列状態に応じて整列させて前記プ
リフェッチキューに分配する手段を設けておくことによ
り、前記インタフェース経路のピッ1〜数すなわち幅が
命令語長よりも幅広であるときに、そのインタフェース
経路のビット幅全体を使って命令を取り込むことができ
るようになる。
(7)前記命令制御部がデータと命令を同一アドレス空
間内で管理することにより、データや命令を格納する領
域に対するアドレス配置の融通性を保証することができ
る。
(8)前記インタフェース経路に接続されたデータメモ
リやプログラムメモリをマイクロプロセッサにオンチッ
プ化することにより、それらメモリに対する高速アクセ
スを可能にする。
【図面の簡単な説明】
第1図は本発明の一実施例に係るマイクロプロセッサの
ブロック図、 第2図は第1図のマイクロプロセッサをさらに詳しく示
す一例ブロック図、 第3図第2図のデータバスインタフェース部における3
2ビツト入力に対するビット振り分は論理の一例を示す
論理回路図、 第4図はビット振り分は論理を適用して命令を切り出す
操作の一例説明図、 第5図は命令の一例フオーマット図、 第6図はプログラムメモリとデータメモリを同一アドレ
ス空間に配置して夫々に部別のアドレスを割り当てたア
ドレスマツプ図、 第7図はプログラムメモリとデータメモを別々のアドレ
ス空間に配置したアドレスマツプ図、第8図はデータメ
モリとプログラムメモリを内蔵するマイクロプロセッサ
の一例ブロック図、第9図はデータバスインタフェース
部とプログラムバスインタフェース部を夫々専用化した
マイクロプロセッサの一例ブロック図である。 1・・マイクロプロセッサ、2・実行部、3 命令制御
部、4 バスインタフェース部、5,6・・内部バス、
7・・・外部データバス、10・・レジスタファイル、
11 ・演算器、12 アドレス出力レジスタ、13・
データ入力レジスタ、14・・・データ出力レジスタ、
15・・命令プリフェッチキュー16・・・命令デコー
ダ、17・データバスインタフェース部、18・・・ア
ドレスバスインタフェース部、20・・・データ入出力
経路、25・・・データセレクタ、26 ・データラッ
チ回路、27・・アライナ、28・・制御論理、3o 
オペレーションコート指定領域、31・その他の指定領
域。

Claims (1)

  1. 【特許請求の範囲】 1、実行部と、 ビット数が一定にされた命令を解読して前記実行部を制
    御する命令制御部と、 前記実行部と命令制御部に接続されると共に、前記命令
    制御部に供給する命令のビット数を、前記実行部との間
    でやりとりするデータのビット数よりも少ないビット数
    とするバスインタフェース部と、 を含んで成るものであることを特徴とするマイクロプロ
    セッサ。 2、前記バスインタフェース部は、データの入出力と命
    令の入力とに兼用されるインタフェース経路を含んで成
    るものであることを特徴とする請求項1記載のマイクロ
    プロセッサ。 3、前記インタフェース経路は、前記実行部において取
    り扱い可能な単位データの最大ビット数のデータを並列
    的に伝達可能なビット数を有するものであることを特徴
    とする請求項2記載のマイクロプロセッサ。 4、前記命令制御部は、命令の解読手段に与えるための
    命令を蓄えていく命令プリフェッチキューを含み、 前記バスインタフェース部は、前記インタフェース経路
    を介して供給される情報に含まれる1個の命令と別の命
    令の一部とを、その配列状態に応じて整列させて前記命
    令プリフェッチキューに分配する手段を含んで、 成るものであることを特徴とする請求項3記載のマイク
    ロプロセッサ。 5、前記インタフェース経路に接続されたデータメモリ
    とプログラムメモリとを含んで半導体集積回路化されて
    成るものであることを特徴とする請求項2乃至4の何れ
    か1項記載のマイクロプロセッサ。 6、前記命令制御部は、データと命令を同一アドレス空
    間内で管理するようにされて成るものであることを特徴
    とする請求項2乃至5の何れか1項記載のマイクロプロ
    セッサ。 7、実行部と、命令を解読して前記実行部を制御する命
    令制御部とを含み、 前記命令制御部は、解読すべき命令のビット数が一定で
    あって、且つ、前記実行部において取り扱い可能な単位
    データの最大ビットへ数よりも少ないビット数の命令を
    解読する手段を含んで、 成るものであることを特徴とするマイクロプロセッサ。 8、前記命令の解読手段に与えるための命令を蓄えてい
    く命令プリフェッチキューと、 命令のビット数よりも多いビット数で並列的に与えられ
    る情報に含まれている1個の命令と別の命令の一部とを
    、その配列状態に応じて整列させて前記命令プリフェッ
    チキューに分配する手段と、 を設けて成るものであることを特徴とする請求項7記載
    のマイクロプロセッサ。
JP2222203A 1990-08-23 1990-08-23 マイクロプロセッサ Pending JPH04104350A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2222203A JPH04104350A (ja) 1990-08-23 1990-08-23 マイクロプロセッサ
EP19910112971 EP0472025A3 (en) 1990-08-23 1991-08-01 A microprocessor
KR1019910014476A KR920004971A (ko) 1990-08-23 1991-08-22 마이크로프로세서 및 데이타단위처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2222203A JPH04104350A (ja) 1990-08-23 1990-08-23 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH04104350A true JPH04104350A (ja) 1992-04-06

Family

ID=16778753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2222203A Pending JPH04104350A (ja) 1990-08-23 1990-08-23 マイクロプロセッサ

Country Status (3)

Country Link
EP (1) EP0472025A3 (ja)
JP (1) JPH04104350A (ja)
KR (1) KR920004971A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100436015B1 (ko) * 1995-05-31 2004-09-16 마츠시타 덴끼 산교 가부시키가이샤 프로그램의코드크기의축소화를지원하는마이크로프로세서

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3105197B2 (ja) 1991-06-24 2000-10-30 株式会社日立製作所 除算回路及び除算方法
JP2984463B2 (ja) 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
EP0953898A3 (en) 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
KR100607987B1 (ko) * 2004-06-24 2006-08-02 삼성전자주식회사 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법
KR101747093B1 (ko) 2015-08-27 2017-06-14 주식회사 포스코 주조장치 및 주조방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100436015B1 (ko) * 1995-05-31 2004-09-16 마츠시타 덴끼 산교 가부시키가이샤 프로그램의코드크기의축소화를지원하는마이크로프로세서

Also Published As

Publication number Publication date
EP0472025A2 (en) 1992-02-26
EP0472025A3 (en) 1993-08-11
KR920004971A (ko) 1992-03-28

Similar Documents

Publication Publication Date Title
KR19980018072A (ko) 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리
JPH10124391A (ja) マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
JPH09212358A (ja) データ処理装置及びマイクロプロセッサ
JP2001195250A (ja) 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置
JPH0916471A (ja) プロセッサ
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JP2581236B2 (ja) データ処理装置
US6687808B2 (en) Data processor using indirect register addressing
JP3781519B2 (ja) プロセッサの命令制御機構
KR100272622B1 (ko) 데이타 처리장치
JP2009032257A (ja) 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JP4073721B2 (ja) データ処理装置
KR100267089B1 (ko) 스칼라/벡터연산이조합된단일명령복수데이터처리
JPH03233630A (ja) 情報処理装置
JP2000284973A (ja) 二重割込みベクトル・マッピング装置とその操作方法
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JPH04104350A (ja) マイクロプロセッサ
JP4502532B2 (ja) データ処理装置
US20210089305A1 (en) Instruction executing method and apparatus
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
EP0385136A2 (en) Microprocessor cooperating with a coprocessor
EP0992897B1 (en) Stack pointer management
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
US6988121B1 (en) Efficient implementation of multiprecision arithmetic