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

マイクロプロセッサ

Info

Publication number
JPH1115660A
JPH1115660A JP16435997A JP16435997A JPH1115660A JP H1115660 A JPH1115660 A JP H1115660A JP 16435997 A JP16435997 A JP 16435997A JP 16435997 A JP16435997 A JP 16435997A JP H1115660 A JPH1115660 A JP H1115660A
Authority
JP
Japan
Prior art keywords
instruction
register
interrupt
instructions
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.)
Pending
Application number
JP16435997A
Other languages
English (en)
Inventor
Masaru Goto
後藤  勝
Hiroaki Miyaji
宏明 宮地
Yukihiro Sakamoto
幸弘 阪本
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP16435997A priority Critical patent/JPH1115660A/ja
Publication of JPH1115660A publication Critical patent/JPH1115660A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 ディジタル信号処理能力が向上されたRIS
Cプロセッサを提供する。 【解決手段】 32ビットのRISCプロセッサで、命
令セットは16ビットの固定長とする。このRISCプ
ロセッサにディジタル信号処理用のコプロセッサを設け
る。ディジタル信号処理用のコプロセッサでは、積和演
算をパイプライン処理により行なう。これにより、本体
のRISCプロセッサとは独立して、バックグラウンド
でディジタル信号処理を行なうことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、RISC(Redu
ced Instruction Set Computer)型のマイクロプロセッ
サに関する。
【0002】
【従来の技術】RISCプロセッサは、演算を最小限に
抑える命令セットから構成されており、パイプライン処
理により、全ての命令が略同じ短い時間で実行されるよ
うに設定されている。通常、32ビットのRISCプロ
セッサでは、命令セットは、32ビットの固定長とされ
ている。RISCプロセッサでは、このように命令セッ
トが固定長とされ、単純化されている。そして、レジス
タ間演算によって、殆どの命令が1クロックで実現で
き、パイプライン処理が容易とされている。
【0003】従来のRISCプロセッサでは、命令セッ
トが32ビットの固定長とされている。ところが、32
ビットの固定長の命令セットでは、コード効率が良くな
い。改良を加えて可変長の命令にしたRISCプロセッ
サでは、デコード部の負担が大きくなり、また、分岐後
のパイプライン充填に時間がかかリ、またこれを改善す
るのに、分岐キャッシュが必要になり、回路規模が大き
くなるという問題がある。そこで、本願出願人は、先
に、命令セットを16ビットの固定長として、コード効
率を向上するようにしたRISCプロセッサを提案して
いる。
【0004】
【発明が解決しようとする課題】このようなRISCプ
ロセッサをオーディオ機器の制御に使用した場合には、
優れたディジタル信号処理能力が要求される。ところ
が、このようなRISCプロセッサのみでは、汎用のD
SP(Digital Signal Processor)並のディジタル信号
処理能力を発揮させることは困難である。
【0005】したがって、この発明の目的は、ディジタ
ル信号処理能力が向上されたマイクロプロセッサを提供
することにある。
【0006】
【課題を解決するための手段】この発明は、命令デコー
ダと、算術演算論理ユニットと、レジスタ群と、高速乗
除算ユニットと、割り込みコントローラとを有し、命令
デコーダは、パイプライン制御により命令セットをデコ
ードする縮小命令セットコンピュータの構成とされたマ
イクロプロセッサにおいて、ディジタル信号処理を行な
うためのコプロセッサを設けるようにしたことを特徴と
するマイクロプロセッサである。
【0007】RISCプロセッサにディジタル信号処理
を行なうDSPコプロセッサが設けられており、汎用の
DSP並の優れたディジタル信号処理を行なうことがで
きる。また、DSPコプロセッサであるため、本体のR
ISCプロセッサとは独立して、バックグラウンドでデ
ィジタル信号処理を行なうことができる。
【0008】
【発明の実施の形態】この発明の実施の形態について、
以下の順序で説明する. 1.プロセッサの概要 2.プロセッサの構成 3.5段パイプライン 4.レジスタ 5.アドレス空間 6.割り込み処理 7.シングルステップ 8.命令セット 9.DSPコプロセッサ 1.プロセッサの概要 この発明が適用されたマイクロプロセッサは、RISC
(Reduced Instruction Set Computer)の構成とされ
た、32ビットのプロセッサである。
【0009】RISCでは、命令セットが演算を行なう
最小限のものに抑えられており、全ての命令が略同じ時
間で実行される。このマイクロプロセッサでは、命令セ
ットは16ビットの固定長とされており、コード効率重
視のオリジナルな直交型の命令セットが用意されてい
る。直交型の命令セットでは、各命令は非常に基本的な
タスクを実行し、他の命令とはタスクが重複しない。命
令セットには、例えば、即値命令、レジスタ転送命令、
算術命令、比較命令、論理命令、シフト命令、交換/拡
張命令、NOP命令、ビット処理命令、乗除算命令、メ
モリ転送命令、コプロセッサ転送命令、分岐命令とが含
まれる。
【0010】また、RISCプロセッサでは、演算命令
がソースオペランドを読み込んだり、演算結果を書き込
むのに、メモリではなく、レジスタが用いられる。レジ
スタ間演算により殆どの命令が1クロックサイクルで実
行できるようになるため、パイプラインが容易となる。
汎用レジスタとしては、32本分用意されている。
【0011】このマイクロプロセッサでは、5段パイプ
ライン処理が採用されている。ALUとしては、1サイ
クルのバレルシフタが備えれている。また、(16×1
6)の乗算を1サイクルで実行し、(16(32)×1
6(32))の除算を(10(18)サイクル)で実行
する高速乗除算器が備えられている。
【0012】更に、このマイクロプロセッサは、RIS
Cテクノロジーを受け継ぎつつ、CISC(Complex In
struction Set Computer)や、DSP(Digital Signal
Processor)テクノロジー等を取り入れることにより、
コード効率、ビット処理、乗除算、割り込み等の点が大
幅に改善されている。
【0013】割り込み処理については、 1)ベクタ命令テーブルの採用 2)割り込みスタックポインタの採用 3)除算命令の結果を専用レジスタに入れて割り込み処
理を受付ることにより、高速割り込み、多重割り込みが
可能とされている。
【0014】ベクタ命令テーブルの採用により、割り込
みを受け付けると、5段のパイプラインが守られ、ベク
タ命令テーブルに直接フェッチされる。分岐命令は、ベ
クタ命令テーブルに直接書き込まれる。これにより、高
速割り込みが可能になる。割り込みスタックポインタが
採用され、割り込み専用スタックポインタとリターン命
令が用意されている。これにより、割り込みの多重化が
実現される。割り込みで自動退避は、PC(プログラム
カウンタ)のみである。リターン命令では、スタックポ
インタ上のPCのみ内部のPCに書き戻す操作を実行す
る。長い除算命令の結果は、専用レジスタに入れて割り
込みを受け付けるようにしている。他の命令は、1命令
1クロックで実現されている。但し、ディレイスロット
期間は、割り込みが禁止される。
【0015】また、このマイクロプロセッサでは、強力
なデバッグサポート機能が設けられている。このデバッ
グサポート機能により、外部回路無しで、簡単にターゲ
ットデバッカーが実現される。デバッグサポート機能と
しては、 1)5段パイプラインでのシングルステップ実現機能の
搭載 2)2つのブレーク命令を用意 3)アドレスブレークを3チャンネル搭載 4)データブレークを2チャンネル搭載 5)ICE(インサーキットエミュレータ)ブレーク端
子を配設 が上げられる。
【0016】今まで、CISCでのみ行なわれていたシ
ングルステップ機能をRISCでも使用することによ
り、プログラムのステップ実行が簡単にできる。但し、
ディレイスロットは、実行して次の命令でブレークが発
生する。ベクタアドレスの異なる2つのブレーク命令を
用意することにより、RAMエリアに対してブレーク命
令を書き込んで、無制限個にブレークポインタを実現可
能である。また、5段のパイプラインで実行しているマ
イクロプロセッサのアドレスブレークポインタを3チャ
ンネル搭載し、上述の2つのブレーク命令の使用できな
いROMエリアに対してブレークが可能である。更に、
5段パイプラインで実行しているマイクロプロセッサの
データブレークポインタを2チャンネル搭載することに
より、内蔵RAMのブレークが容易に実現可能である。
ICEブレーク端子を備えることで、外部からICEへ
の制御遷移が可能である。更に、マイクロプロセッサ1
には、ユーザ定義のコプロセッサが接続可能である。
【0017】2.プロセッサの構成 図1は、この発明が適用されたマイクロプロセッサ1の
構成を示すものである。図1において、マイクロプロセ
ッサ1からは、データバス2、インストラクションバス
3、コプロセッサバス4が導出される。また、マイクロ
プロセッサ1からは、リセット、クロック、外部割り込
み(7:0)、NMI(Non-Maskable割り込み)、PM
I(Power Management割り込み)等の端子群5が導出さ
れる。
【0018】マイクロプロセッサ1によりシステムを構
成する場合には、図2に示すように、マイクロプロセッ
サ1は、データバス2、インストラクションバス3を介
して、メモリコントローラ21に接続される。また、マ
イクロプロセッサ1は、コプロセッサバス4を介して、
コプロセッサ22に接続される。後に説明するように、
コプロセッサ22としては、DSPコプロセッサを取り
付けることができる。
【0019】図1において、マイクロプロセッサ1は、
命令デコーダ6と、専用コントロールレジスタ群7と、
割り込みコントローラ8と、汎用レジスタ群9と、バイ
パスロジック10と、ALU(Arithmetic and Logic U
nit )11と、乗除算演算部12と、アドレス計算部1
3とからなる。
【0020】命令デコーダ6は、パイプライン制御を行
なっている。パイプライン制御では、命令処理のタスク
を、フェッチ、ALU演算、メモリアクセス、ライトバ
ックというような単純なステージに分解し、命令が1つ
のステージから次のステージに移ると、空いたステージ
に次の命令が入るような処理が行なわれる。このような
ステージ単位で命令を処理することで、1つの命令の完
了を待たずに、次の命令の処理が行なえる。このマイク
ロプロセッサでは、5段のパイプラインが用いられてい
る。
【0021】専用コントロールレジスタ群7としては、
32ビットのレジスタが10本用意されている。専用コ
ントロールレジスタ群7は、ステータス、割り込み制
御、ICEサポート機能等に用いられる。
【0022】割り込みコントローラ8は、割り込み処理
を行なうためのものである。割り込みは、ベクタ命令テ
ーブルと、割り込みスタックポインタが採用され、最小
1サイクル、最大3サイクルでの割り込み応答機能を実
現している。割り込みベクタ命令テーブルは、割り込み
を受け付けると、5段パイプラインを守って、ベクタ命
令テーブルに直接フェッチするものである。ベクタ命令
テーブルには、分岐命令が書き込まれる。
【0023】汎用レジスタ群9としては、32ビットの
レジスタが32本(R0〜R31)用意されている。そ
の中で、レジスタR1はアキュムレータ(ACC)、レ
ジスタR30はスタックポインタ(SP)、レジスタR
31は割り込みスタックポインタ(ISP)である。I
SPは、割り込み処理、例外処理、割り込みリターン処
理等のスタックポインタとして使用される。ACC、S
P、ISPを含む汎用レジスタR0〜R31の初期値は
不定である。
【0024】バイパスロジック10は、5段のパイプラ
インを動かすためのロジックである。ALU11は、1
サイクルのバレルシフタを備えている。乗除算ユニット
12は、16×16ビットの1サイクルの高速乗算演算
器と、16(32)×16(32)ビットの10(1
8)サイクルの高速除算演算器とを備えている。このよ
うに、除算は独立ユニットで構成されており、演算待ち
結果のサイクルでも他の命令を実行できる。アドレス計
算部13は、プログラムカウンタ(PC)、インクリメ
ント、データアライナを含む。
【0025】3.5段パイプライン マイクロプロセッサユニット1は、5段のパイプライン
処理が行なわれる。インストラクション、データ、コプ
ロセッサは、独立したバス構造となっており、入出力も
独立に行なっている。各バスは、外部キャッシュ(バッ
ファ)及びコプロセッサレジスタで結合されている。
【0026】パイプライン処理では、命令処理のタスク
が、フェッチ、ALU演算、メモリアクセス、ライトバ
ックというようなステージに分解される。ディレイスロ
ットには、ブランチ系、ロード系、リターン系の3種類
がある。例えば、ブランチ命令では、その前のブランチ
命令をデコードしてブランチ命令と解析する前に、次の
命令のアドレスが出てしまう。これがブランチディレイ
スロットである。また、ロード命令では、次のロード命
令でロードしたレジスタの値を使用するとすると、次の
ロード命令のALUサイクルでは、まだ外部バス上にロ
ードデータがある。ロード命令では、直前の命令でロー
ドしたレジスタのアクセスはできない。これがロードデ
ィレクスロットである。更に、リターン命令では、スタ
ックからプログラムカウンタ(PC)の値を取ってき
て、アドレスを戻すのに、パイプライン動作のために間
に合わない。これがリターンスロットである。
【0027】ブランチ系の命令に対するディレイスロッ
トの数は1スロットであり、ロード系の命令に対するデ
ィレイスロットの数は1スロットであり、リターン系の
命令に対するディレイスロットの数は3スロットであ
る。
【0028】4.レジスタ 4−1.汎用レジスタ 図3は、汎用レジスタの構成を示すものである。汎用レ
ジスタとしては、図3に示すように、R0〜R31の3
2本が用意されている。命令体系は、直交性を考慮して
構成されているので、特殊な命令以外は、演算のレジス
タとして使用できる。ACC(R1)はアキュムレータ
で、即値/ビット処理系のオペランドとして使用され
る。例外としては、SP(R30)はスタックポインタ
で、コール系、リターン系のスタックポインタとして使
用される。ISP(R31)は割り込みスタックポイン
タで、割り込み処理、例外処理、割り込みリターン処理
のスタックポインタとして使用される。汎用レジスタ、
ACC、SP、ISPの初期値は不定である。
【0029】4−2.コプロセッサレジスタ 図4は、コプロセッサレジスタの構成を示すものであ
る。図4に示すように、コプロセッサレジスタは、Co
p0レジスタとして、G0〜G31、C0〜C31、C
op1レジスタとして、G0〜G31、C0〜C31、
の合計128個に拡張できる。コプロセッサレジスタ
と、汎用レジスタとの間の転送をするための命令が定義
されている。
【0030】Cop0レジスタG0〜G31には、シス
テムコントロールコプロセッサレジスタが合計10個内
蔵されている。その他の使用していないレジスタは、将
来の拡張用である。システムコントロールプロセッサレ
ジスタの概要は、以下の通りである。
【0031】Cop0 G0 :SR(Status Registe
r )フラグを保持する Cop0 G1 :MCR(Machine Control Registe
r)マシン制御 Cop0 G2 :IBR(Interrupt Base Register
)割り込みベクタベースアドレス設定 Cop0 G3 :ICR(Interrupt Control Regist
er)割り込み制御 Cop0 G4 :IMR0(Interrupt Mode Registe
r 0 )外部割り込みモード制御0 Cop0 G5 :IMR1(Interrupt Mode Registe
r 1 )外部割り込みモード制御1 Cop0 G6 :JBR(Jump Base Register)特殊
ジャンプベースアドレス設定 Cop0 G10:IBP0(Instruction Break Poin
t 0 )インストラクションブレークアドレス設定 Cop0 G11:IBP1(Instruction Break Poin
t 1 )インストラクションブレークアドレス設定 Cop0 G12:IBP2(Instruction Break Poin
t 2 )インストラクションブレークアドレス設定 また、データアクセスにより割り込みは、0CHと1C
Hの2チャンネルが用意されている。データアクセスに
よる割り込みには、以下のコプロセッサレジスタが用い
られる。
【0032】Cop1 G4:DABRO(Data Addre
ss Break Register 0 )割り込みを実行させたいデータ
アドレスを記述 Cop1 G5:WDBR0(Write Data Break Regis
ter 0 )割り込みを実行させたいデータの値を記述 Cop1 G6:WDMR0(Write Data Mask Regist
er 0)マスク制御を行なう Cop1 G7:DBCR0(Data Break Control Reg
ister 0 )データアクセスモードを設定 Cop1 G8:DBRR0(Data Break Run Registe
r 0データブレークラン Cop1 G9:FMWR(Flash Memory Write Regis
ter )フラッシュメモリ書込みセレクト Cop1 G10:DABR1(Data Address Break R
egister 1)割り込みを実行させたいデータアドレスを
記述 Cop1 G11:DAMR1(Data Address Masc Re
gister1)マスク制御を行なう Cop1 G12:WDBR1(Write Data Break Reg
ister 1)割り込みを実行したいアドレスを記述 Cop1 G13:WDMR1(Write Data Mask Regi
ster1)マスク制御を行なう Cop1 G14:DBCR1(Data Break Control R
egister 1)データアクセスモードを設定 Cop1 G15:DBRR1(Data Break Run Regis
ter 1データブレークラン 5.アドレス空間 図5は、マイクロプロセッサ1のアドレス空間を示すも
のである。マイクロプロセッサ1のアドレス空間は、イ
ンストラクション、データ、夫々独立に、4GByte
使用することができる。外部コプロセッサとのやり取り
には、64ワードの外部レジスタを使用することができ
る。
【0033】外部リセットを受け付けると、FFFFFE60H
に分岐され、その命令が実行される。ベクタアドレス
は、2ワード(4ワード)おきに設定される。最初の1
ワードにブランチ命令が設定される。後の1ワードは、
ディレイスロットである。ベクタアドレスは、割り込み
ベースレジスタ(IBR)(Cop0 G2)をベース
にしているので、256バイトの境界で任意の位置に配
置できる。インストラクション/データは、同一空間に
マッピングされる。通常のロード命令で、ROM空間等
から値を得ることが可能である。
【0034】6.割り込み処理 割り込み処理は、図6に示すように、優先順位が設定さ
れている。SSTEP(Single Step )が最優先で、P
MI(Power management)割り込み、NMI(Non-mask
able)割り込み)、…の順に、優先順位が割り振られて
いる。外部割り込みは、Exint0からExint7
までの8本がサポートされている。各割り込みには、ベ
クタアドレスオフセットが決められており、このベクタ
アドレスオフセットから、ベクタアドレスが以下のよう
に求められる。
【0035】Vecter Address= {IBR[31:8],Vecter Add
ress Offset } IBR[31:8] は、割り込みベクタテーブルのベースを設定
する割り込みベースレジスタ(IBR(Cop G
2))で、SYSCALL/BREAK/DEBREA
K命令を実行すると、そのベクタアドレスに分岐し、分
岐命令はベクタ命令テーブルに直接書き込まれる。この
ように、割り込みを受け付けると、5段のパイプライン
が守られ、そのベクタアドレスのベクタ命令テーブルに
直接フェッチされる。これにより、最低1サイクルの高
速割り込みが可能である。
【0036】ICR(Cop0 G3)のAIEフラグ
は、全て、割り込みでディスイネーブルされる。割り込
み受付期間は、割り込み禁止期間を除いて、毎サイクル
で実行される。割り込み禁止期間は、全ての割り込みに
ついては、リターンディレイスロット、分岐ディレイス
ロットである。また、PMI割り込み期間中は、リター
ンディレイスロットまで全ての割り込みが禁止される。
NMI割り込み期間中は、リターンディレイスロットま
では、PMI割り込みしか受け付けない。PMI、NM
Iは変化点検出、その他の割り込みは、レベル検出で割
り込みが実行される。割り込み時には、図7に示すよう
に、退避アドレスが設定される。
【0037】データアクセスによる割り込みのしかた
は、以下の通りである. 1)リード時にデータアドレス比較のみで割り込みを実
行させたい場合 DABR0(Cop1 G4)に割り込みを実行させた
いデータアドレスを記述する。DBCR0(Cop1
G7)のMRDを「1」、MWRを「0」にする。リー
ドの仕方(SB,SHW,SW)をDBCR0のBE
〔3:0〕により選択する。DBRR0(Cop1 G
8)のRUNを「1」(RUN)に設定する。
【0038】2)ライト時にデータアドレスの比較のみ
で割り込みを実行させたい場合 DABR0に割り込みを実行させたいデータアドレスを
記述する。DBCR0のMWRを「1」、MRDを
「0」に設定する。ライトの仕方(LBU、LB、LH
WU、LHW、LW)をDBCR0のBE〔3:0〕に
より選択する。データ比較条件を無視するために、WD
MR0の全てのビットを「0」にマスクする。DBRR
0のRUNを「1」(RUN)に設定する。
【0039】3)ライト時にデータ比較により割り込み
を実行させたい場合 DABR0に割り込みを実行させたいデータアドレスを
記述する。DBCR0のMWEを「1」、MRDを
「0」に設定する。ライトの仕方(LBU、LB、LH
WU、LHW、LW)をDBCR0のBE〔3:0〕に
より選択する。WDR0に割り込みを実行させたいデー
タの値を記述する。あるビットをマスクする必要があれ
ば、対応するWDMR0のビットを「0」にマスクす
る。DBRR0のRUNを「1」(RUN)に設定す
る。
【0040】4)リード/ライト時にデータアドレスの
比較のみで割り込みを実行させたい場合 DABR0に割り込みを実行させたいデータアドレスを
記述する。DBCR0のMRDを「1」、MWRを
「1」に設定する。リード/ライトの仕方(SB/LB
U/LB、SHW/LHWU/LHW、SW/LW)を
DBCR0のBE〔3:0〕により選択する。データ比
較条件を無視するために、WDMR0の全てのビットを
「0」にマスクする。DBRR0のRUNを「1」(R
UN)に設定する。
【0041】5)リード時のデータアドレス比較とライ
ト時のデータ比較により割り込みを実行させたい場合 DABR0に割り込みを実行させたいデータアドレスを
記述する。DBCR0のMWRを「1」、MRDを
「1」に設定する。リード/ライトの仕方(SB/LB
U/LB、SHW/LHWU/LHW、SW/LW)を
DBCR0のBE〔3:0〕により選択する。あるビッ
トをマスクする必要があれば、対応するWDMR0のビ
ットを「0」にマスクする。DBRR0のRUNを
「1」(RUN)に設定する。0CH/1CH共に割り
込みが起こると、同じベクタアドレスに飛ぶ。どちらの
チャンンネルであるかは、DBRR0のRUNを見れば
判断できる。
【0042】7.シングルステップ このマイクロプロセッサ1には、1命令づつ例外処理を
発生させるシングルステップ機能がついている。MCR
(Cop0 G1)のDBSSE(Debug Break Single
Step Enable Bit)をセットして、DBREAK命令を
実行すると、シングルステップ例外処理ルーチンに入
る。この時点で、全ての割り込みは禁止される。
【0043】シングルステップの例外処理ルーチンでの
プログラム手順は、以下の通りである. 1)割り込みスタックポインタ(ISP(R31))に
シングルステップを実行させたいメイプログラムの先頭
番地をセットする. 2)MCR〔10〕のSSEフラグをセットする. 3)RETI命令を実行すると、次の3スロットを実行
した後、シングルステップを実行させたいメインプログ
ラムのアドレスに分岐する. 4)メインプログラムの1命令を実行すると、自動的に
再びシングルステップ冷眼処理ルーチンに戻ってくる。
そのとき、MCR〔10〕のSSEフラグはクリアされ
る. 5)再度、シングルステップ例外処理ルーチンで、MC
R〔10〕のSSEフラグをセットして、RETIを実
行すると、メイプログラムの次のシングルステッフを実
行させたい命令アドレスへ分岐する。
【0044】シングルステップ例外処理ルーチンを行け
るまで、以上のような処理が繰り返される。シングルス
テッフ処理ルーチンを抜けるためには、シングルステッ
プ例外処理ルーチンの中で、SSEフラグをディスイネ
ーブルにし、実行させたいプログラムカウンタに書き換
えて、RETI命令をを実行する。
【0045】8.命令セット このマイクロプロセッサ1では、コード効率重視のオリ
ジナルな直交型の命令セットが用意されている。コード
体系は、命令セットは16ビットの固定長とされてお
り、OPコードは6ビットである。レジスタ間命令で
は、オペランドに5ビットが割り当てられる。汎用レジ
スタの数は32であるから、5ビットのオペランドで効
率良くコードが定義できる。なお、OPコードは、図2
0〜図23に示すようにマッピングされている。
【0046】命令としては、即値命令、レジスタ転送命
令、算術命令、比較命令、論理命令、シフト命令、交換
/拡張命令、NOP命令、ビット処理命令、乗除算命
令、メモリ転送命令、コプロセッサ転送命令、分岐命令
からなる。
【0047】1)即値命令 LPI:即値の値をバイトポジションの位置に従って、
アキュムレータにロードする。また、指定されていない
アキュムレータのバイトの内容は保存される. LI:即値の値をバイトワードセレクトに従って、アキ
ュムレータにロードする. LSI,LSIU:即値を指定した汎用レジスタにロー
ドする. SLIL,SLIH:即値の値をバイトポジションの位
置に従ってアキュームレータにロードする。また、指定
されていないアキュームレータの内容は保存される。
【0048】2)レジスタ転送命令 MOV:汎用レジスタ間の転送命令である。
【0049】3)算術命令 ADDSI,ADDSIU:即値加算命令である. ADD,ADDC:レジスタ間加算命令である. ADDU:レジスタ間無符号加算命令である. SUB,SUBB:レジスタ間減算命令である. SUBU:レジスタ間無符号減算命令である。
【0050】4)比較命令 COMPI,COMPIU:即値比較命令である. COMP:レジスタ間比較命令である。SUB命令と同
じ動作を行なうが、結果をDEST1に戻さない. COMPU:レジスタ間の無符号比較命令である。SU
BU命令と同じ動作を行なうが、結果をDEST1に戻
さない。
【0051】5)論理命令 AND,OR,XOR,NOR:論理演算命令である。
【0052】6)シフト命令 SLLV,SRLV,SRAV:間接シフト命令であ
る。SLLVはレジスタ間接論理左シフト命令、SRL
Vはレジスタ間接論理右シフト命令、SRAVはレジス
タ間接算術右シフト命令である. SLL,SRL,SRA:即値シフト命令である。SL
Lは即値論理左シフト命令、SRAは即値論理右シフト
命令、SRAは即値算術右シフト命令である. RR:キャリーを含めた右シフトを即値の回数だけ実行
する命令である。シフトアウトしたビット(実行前のL
SB)は、キャリーへ格納され、また、MSBにはキャ
リーの値が格納される. RL:キャリーを含めた左シフトを即値の回数だけ実行
する命令である。シフトアウトしたビット(実行前のM
SB)は、キャリーへ格納され、また、MSBにはキャ
リーの値が格納される。
【0053】7)交換/拡張命令 XCB:SRC〔15:8〕とSRC1〔7:0〕との
交換命令である. EXU:下位のバイトのゼロ拡張命令である. EXS:下位のバイトのサイン拡張命令である. XCHW:SRC〔OPS:16〕とSRC1〔15:
0〕との交換命令である. EXHZ:下位のハーフワードのゼロ拡張命令である. EXHS:下位のハーフワードのサイン拡張命令であ
る。
【0054】8)NOP命令 NOP:何も実行しない。
【0055】9)ビット処理命令、 BS,BT,BTR,BTS,BTC:ビット処理命令
である。
【0056】10)乗除算命令 MULTUD;SRC1〔15:0〕とSRC2〔1
5:0〕との無符号乗算命令である. DIVU:SRC1とSRC2との無符号除算命令であ
る. MULT:SRC1〔15:0〕とSRC2〔15:
0〕との乗算命令である. DIV:SRC1とSRC2との除算命令である. MTHI:汎用レジスタからHIレジスタへの転送命令
である. MTLO:汎用レジスタからLOレジスタへの転送命令
である. MFHI:HIレジスタから汎用レジスタへの転送命令
である. MFHO:LOレジスタから汎用レジスタへの転送命令
である。
【0057】11)メモリ転送命令 SW,SHW,SB:インデックスが示すアドレスのメ
モリ空間へのストア命令である. LW,LHW,LB:インデックスが示すアドレスのメ
モリ空間からのロード命令である. LHWU,LBU:インデックスが示すアドレスのメモ
リ空間からのロード命令である。 12)コプロセッサ転送命令 CTC1:アキュムレータからコプレッサコントロール
レジスタ1への転送命令である. CFC1:コプレッサコントロールレジスタ1からアキ
ュムレータへの転送命令である. MTC0:汎用レジスタからコプレッサ汎用レジスタ0
への転送命令である. MTC1:汎用レジスタからコプレッサ汎用レジスタ1
への転送命令である. MFC0:コプレッサ汎用レジスタ0から汎用レジスタ
への転送命令である. MFC1:コプレッサ汎用レジスタ1から汎用レジスタ
への転送命令である. SWC0,SWC1:コプロセッサ汎用レジスタからイ
ンデックスが示すアドレスのメモリ空間へのストア命令
である. LWC0,LWC1:インデックスが示すアドレスのメ
モリ空間からコプロセッサ汎用レジスタへのロード命令
である。
【0058】13)分岐命令 <1>プログラムカウンタ相対 RJ,RJAL:プログラムカウンタ相対分岐命令であ
る。RJALはプリディクリメントしたスタックポイン
タの示すアドレスにプログラムカウンタを格納した後、
分岐する。リターン命令によってRJALの次の命令に
戻る. RBEQ/RBZ,RBNE/RBNZ:条件付PC相
対分岐命令である. RBLE,RBGE:条件付プログラムカウンタ相対分
岐命令である. RBLT,RBGT:条件付プログラムカウンタ相対分
岐命令である. RBLTAL,RBGEAL:条件付プログラムカウン
タ相対分岐命令である. RBBE,RBAE:条件付プログラムカウンタ相対分
岐命令である. RBBL,RBAB:条件付プログラムカウンタ相対分
岐命令である. RBBLAT,RBAEL:条件付プログラムカウンタ
相対分岐命令である。
【0059】<2>レジスタ間接 JR,JLR:レジスタ間接分岐命令である. JER/JZR,JNER/JNZR:条件付レジスタ
間接分岐命令である. JLER,JGER:条件付レジスタ間接分岐命令であ
る. JLTR,JGTR:条件付レジスタ間接分岐命令であ
る. JLTALR,JGEALR:条件付レジスタ間接分岐
命令である. JER/JZR,JNER/JNZR:条件付レジスタ
間接分岐命令である. JBER,JAER/JNCR:条件付レジスタ間接分
岐命令である. JBR/JCR,JAR:条件付レジスタ間接分岐命令
である. JBALR,JAEALR:条件付レジスタ間接分岐命
令である。
【0060】<3>プログラムカウンタセグメント J,JAL:プログラムカウンタ分岐命令である. BEQ/BZ,BNE/BNZ:条件付プログラムカン
ウタセグメント分岐命令である. BLE,BGE:条件付プログラムカウンタセグメント
分岐命令である. BLT,BGT:条件付セグメント分岐命令である. BLTAL,BGEAL:条件付プログラムカウンタセ
グメント分岐命令である. BEQ/BZ,BNE/BNZ:条件付プログラムカウ
ンタセグメント分岐命令である. BBE,BAE:条件付プログラムカウンタセグメント
分岐命令である. BBL:BAB:条件付プログラムカウンタセグメント
分岐命令である. BBLAL,BAEAL:条件付プログラムカウンタセ
グメント分岐命令である。
【0061】<4>システムコール及びリターン系命令 RETD:ジャンプアンドリンク時に使用する。スタッ
クポインタの示すアドレスメモリの値をプログラムカウ
ンタに格納した後、スタックポインタをポストインクリ
メントし、RET命令によって分岐命令の次の命令に戻
る. SYSCALL,BREAK,DBREAK:ソフトウ
ェア割り込み(例外処理)を行なうための命令である。
プリディクリメントしたISP(InstructionStack Poi
nter )の示すアドレスにプログラムカウンタを格納し
た後、ICRの4重割り込み許可フラグを左シフトし
て、RETI命令によって次の命令に戻る. RETI:SYSCALL/BREAK/DBREAK
命令の例外処理から戻るときに使用する。ISPの示す
アドレスのメモリの値をプログラムカウンタに格納した
後、ISPをポストクリメントし、ICRの4重割り込
み許可フラグを右にシフトする。RETI命令によって
SYSCALL/BREAK/DBREAK命令の次の
命令に戻る. JIBIO:{JBR〔31:11〕,セグメントアド
レス〔9:0〕,0}への分岐命令である。
【0062】9.DSPコプロセッサ ディジタル信号処理能力の向上を図るために、コプロセ
ッサ22としてDSPコプロセッサを設けることができ
る。DSPコプロセッサは、RISCプロセッサのコア
とは独立して設けられており、DSPコプロセッサで積
和演算を行なっている間でも、RISCプロセッサのコ
アでは、別の処理を実行することが可能である。
【0063】DSPコプロセッサとして設ける場合、図
4に示したコプロセッサレジスタのうち、Cop1レジ
スタのG24〜G31が用いられる。
【0064】Cop1レジスタのG24は、図8に示す
ように、ビット0がrun/doneを示しており、0
のときには演算終了、1のときにはハートウェア起動を
示している。
【0065】Cop1レジスタのG25は制御レジスタ
である。図9に示すように、0〜14ビットはループ回
数(loopn)であり、0〜32767のループ回数
が設定される。15ビット及び16ビットは、00に固
定される。17ビットは、デスティネーションモードイ
ネーブル(den)であり、0のときには通常動作、1
のときには演算中間結果がCop1レジスタG29で指
定したアドレスにより順次ストアされる。18ビットか
ら23ビットはシフト量(sftn)であり、0〜63
ビットのビットシフトが設定される。24ビット及び2
5ビットはシフトモード(sftm)であり、00のと
きにはスルー、01のときは論理左シフト、10のとき
には論理右シフト、11のときには算術右シフトであ
る。26ビット及び27ビットは算術タイプ(cal)
であり、01のときにはバイト(8ビット)演算モー
ド、10のときにはハーフワード(16ビット)演算モ
ード、11のときにはワード(32ビット)演算モード
である。なお、00はリザーブされている。28ビット
は符号フラグ(sign)で、0のときには符号無し演
算、1のときには符号付き演算である。29ビットはク
リッピングモード(clip)であり、0のときにはク
リッピング処理無しであり、1のときにはクリッピング
処理が行なわれる。30ビットはオーバーフローフラグ
(ovf)であり、0のときにはオーバーフロー無しで
あり、1のときにはオーバーフローありである。なお、
Cop1レジスタのG24のセット時にリセットされ
る。31ビットはソフトウェアエミュレーションモード
(sem)で、0のときにはハードウェア演算であり、
1のときにはソフトウェア演算である。
【0066】Cop1レジスタのG26はリミッタ値の
設定レジスタである。図10に示すように、0〜14ビ
ットは、ソースBのリミッタであり、Cop1レジスタ
のG28で設定されたソース繰り返し回数のリミッタ値
が設定される。1〜32768回の繰り返しが可能であ
る。15ビットはリミッタソースBのイネーブルフラグ
(enb)であり、0のときには通常動作、1のときに
はリミッタBによる繰り返し操作が行なわれる。16〜
30ビットは、ソースAのリミッタであり、Cop1レ
ジスタのG27で設定されたメース繰り返し回数のリミ
ッタ値が設定される。1〜32768回の繰り返しが可
能である。31ビットはリミッタソースAのイネーブル
フラグ(ena)であり、0のときには通常動作、1の
ときにはリミッタAによる繰り返し操作が行なわれる。
【0067】図11及び図12に示すように、Cop1
レジスタのG27及びG28はソースA及びソースBの
開始アドレスの設定レジスタである。Cop1レジスタ
のG25の演算モード(8/16/32ビット)に従っ
て、内部のテンポラリレジスタが開始アドレスより自動
的にループ回数分1/2/4デクリメントしながら順次
データがロードされる。
【0068】図13に示すように、Cop1レジスタの
G29は、デスティネーションの開始アドレスの設定レ
ジスタである。Cop1レジスタのG25のの演算モー
ドに従って、内部のテンポラリレジスタが開始アドレス
より自動的にループ回数分1/2/4デクリメントしな
がら順次演算結果の中間結果がストアされる。
【0069】図14及び図15に示すように、Cop1
レジスタのG30及びG31は、演算の初期値(上位側
及び下位側)が設定される。また、演算終了後には結果
がストアされる。
【0070】図16は、このDSPコプロセッサの一例
である。図16において、乗算器51には、Xメモリ5
2及びYメモリ53から、乗数及び被乗数が与えられ
る。乗算器51は、17ビット×17ビットの乗算を実
行して、34ビットの結果を出力する。乗算器51の出
力がシフタ54に供給される。シフタ54の出力が加算
器55の一方の入力端に供給される。加算器55の他方
の入力端にはレジスタ52の出力が供給される。加算器
55の出力がクリッパ56に供給される。クリッパ56
の出力がレジスタ57に供給される。レジスタ57の出
力がZメモリ58に供給されると共に、加算器55に供
給される。
【0071】乗算器51は、Cop1レジスタG25
(26ビット及び27ビットのcal)によって、バイ
ト(8ビット)演算モード又はハーフワード(16ビッ
ト)演算モードが選択された場合には、自動的に上位ビ
ットが符号拡張されて乗算が実行される。入力データ
は、Cop1レジスタG27及びG28で設定されたア
ドレスよりロードされる。また、Cop1レジスタG2
6を設定することで、入力データを繰り返すこともでき
る。
【0072】シフタ54は、Cop1レジスタG25
(18ビット〜23ビットのsftn)によって、左右
夫々に最大63ビットのシフトが行なえる。シフト操作
として、論理左シフト、論理右シフト、及び算術右シフ
トが用意されており、Cop1レジスタG25(24ビ
ット及び25ビットのsftm)により設定される。
【0073】クリッパ56は、加算器の結果に対してク
リッピング処理が行なえる。オーバフローが発生した場
合、Cop1レジスタG25(29ビットのclip)
によりクリッピング処理が行なわれる。正のオーバーフ
ローが発生した場合、正の最大値にクリッピングされ、
負のオーバフローが発生した場合、負の最大値に設定さ
れる。
【0074】このDSPコプロセッサでは、図17に示
すように、積和演算が5段のパイプラインを用いて高速
に実行される。このときの例について説明する。例え
ば、 7+1×3+2×4+1×5+2×6 の演算を行なうものとする。この場合、図18に示すよ
うに、例えば、アドレス400FFを1とし、アドレス
400FDを2とし、アドレス500FFを3とし、ア
ドレス500FDを4とし、アドレス500FBを5と
し、アドレス500F9を6とする。そして、Cop1
レジスタG25を(08040003h)とし、Cop
1レジスタG26を(80010000h)とし、Co
p1レジスタG27のソースAの開始アドレスを(40
0FFh)とし、Cop1レジスタG28のソースBの
開始アドレスを(500FFh)とし、Cop1レジス
タG29のデスティネーション開始アドレスを(503
FFh)とする。そして、Cop1レジスタG30及び
G31の初期値を7とし、Cop1レジスタG24をセ
ットする。これにより、図19に示すような、5段のパ
イプライ処理が行なわれていく。
【0075】
【発明の効果】この発明によれば、RISCプロセッサ
にディジタル信号処理を行なうDSPコプロセッサが設
けられており、汎用のDSP並の優れたディジタル信号
処理を行なうことができる。また、DSPコプロセッサ
であるため、本体のRISCプロセッサとは独立して、
バックグラウンドでディジタル信号処理を行なうことが
できる。
【図面の簡単な説明】
【図1】この発明が適用されマイクロプロセッサの内部
構成を示すブロック図である。
【図2】この発明が適用されマイクロプロセッサの外部
インターフェースの説明に用いるブロック図である。
【図3】この発明が適用されマイクロプロセッサにおけ
る汎用レジスタの説明に用いるブロック図である。
【図4】この発明が適用されマイクロプロセッサにおけ
るコプロセッサレジスタの説明に用いるブロック図であ
る。
【図5】この発明が適用されマイクロプロセッサにおけ
るメモリ空間の説明に用いる略線図である。
【図6】この発明が適用されマイクロプロセッサにおけ
る割り込み説明に用いる略線図である。
【図7】この発明が適用されマイクロプロセッサにおけ
る割り込み説明に用いる略線図である。
【図8】この発明が適用されマイクロプロセッサにおけ
るDSPコプロセッサレジスタの説明に用いる略線図で
ある。
【図9】この発明が適用されマイクロプロセッサにおけ
るDSPコプロセッサレジスタの説明に用いる略線図で
ある。
【図10】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサレジスタの説明に用いる略線図
である。
【図11】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサレジスタの説明に用いる略線図
である。
【図12】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサレジスタの説明に用いる略線図
である。
【図13】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサレジスタの説明に用いる略線図
である。
【図14】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサレジスタの説明に用いる略線図
である。
【図15】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサレジスタの説明に用いる略線図
である。
【図16】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサの説明に用いるブロック図であ
る。
【図17】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサの説明に用いる略線図である。
【図18】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサの説明に用いる略線図である。
【図19】この発明が適用されマイクロプロセッサにお
けるDSPコプロセッサの説明に用いる略線図である。
【符号の説明】
1・・・マイクロプロセッサ,6・・・命令デコーダ,
8・・・割り込みコントローラ,9・・・汎用レジスタ
群,11・・・ALU,12・・・乗除算演算部,22
・・・コプロセッサ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令デコーダと、算術演算論理ユニット
    と、レジスタ群と、高速乗除算ユニットと、割り込みコ
    ントローラとを有し、 上記命令デコーダは、パイプライン制御により命令セッ
    トをデコードする縮小命令セットコンピュータの構成と
    されたマイクロプロセッサにおいて、 ディジタル信号処理を行なうためのコプロセッサを設け
    るようにしたことを特徴とするマイクロプロセッサ。
  2. 【請求項2】 上記コプロセッサは、ディジタル信号処
    理のための積和演算をパイプライン制御により行なうよ
    うにした請求項1記載のマイクロプロセッサ。
JP16435997A 1997-06-20 1997-06-20 マイクロプロセッサ Pending JPH1115660A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16435997A JPH1115660A (ja) 1997-06-20 1997-06-20 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16435997A JPH1115660A (ja) 1997-06-20 1997-06-20 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH1115660A true JPH1115660A (ja) 1999-01-22

Family

ID=15791658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16435997A Pending JPH1115660A (ja) 1997-06-20 1997-06-20 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH1115660A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050039068A (ko) * 2003-10-23 2005-04-29 한국전자통신연구원 알아이에스시와 디에스피의 듀얼 프로세서를 갖는 비디오신호처리시스템
KR100599539B1 (ko) 2004-12-30 2006-07-13 전자부품연구원 태스크 엔진 기반의 재구성가능 디지털 신호 프로세서
JP2007183943A (ja) * 2005-12-29 2007-07-19 Intel Corp 異質なリソースによる命令セットアーキテクチャベースシーケンサ間通信

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050039068A (ko) * 2003-10-23 2005-04-29 한국전자통신연구원 알아이에스시와 디에스피의 듀얼 프로세서를 갖는 비디오신호처리시스템
KR100599539B1 (ko) 2004-12-30 2006-07-13 전자부품연구원 태스크 엔진 기반의 재구성가능 디지털 신호 프로세서
JP2007183943A (ja) * 2005-12-29 2007-07-19 Intel Corp 異質なリソースによる命令セットアーキテクチャベースシーケンサ間通信
JP2011146077A (ja) * 2005-12-29 2011-07-28 Intel Corp 異質なリソースによる命令セットアーキテクチャベースシーケンサ間通信
JP2014059920A (ja) * 2005-12-29 2014-04-03 Intel Corp 異質なリソースによる命令セットアーキテクチャベースシーケンサ間通信
US9459874B2 (en) 2005-12-29 2016-10-04 Intel Corporation Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
US9588771B2 (en) 2005-12-29 2017-03-07 Intel Corporation Instruction set architecture-based inter-sequencer communications with a heterogeneous resource

Similar Documents

Publication Publication Date Title
JP3983857B2 (ja) ベクトルレジスタの複数バンクを用いた単一命令複数データ処理
KR100268635B1 (ko) 마이크로 컴퓨터 및 제산 회로
US5001662A (en) Method and apparatus for multi-gauge computation
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
KR101005718B1 (ko) 포화와 함께 또는 포화 없이 다중 오퍼랜드들의 누산을 위한 프로세서 감소 유닛
US6067614A (en) Integrated RISC processor and GPS receiver
JPH10134036A (ja) マルチメディア信号プロセッサの単一命令多重データ処理
EP1761860A2 (en) Processor having compound instruction and operation formats
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
JPH0766324B2 (ja) データ処理装置
US10303399B2 (en) Data processing apparatus and method for controlling vector memory accesses
JP3789583B2 (ja) データ処理装置
JP2004005603A (ja) 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置
JP2004038327A (ja) データ処理装置
US6223275B1 (en) Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
US6925548B2 (en) Data processor assigning the same operation code to multiple operations
EP1360582A2 (en) Apparatus and method for effecting changes in program control flow
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
EP1190305B1 (en) Method and apparatus for jump delay slot control in a pipelined processor
JPH1115660A (ja) マイクロプロセッサ
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
US6275925B1 (en) Program execution method and program execution device
JPH09330218A (ja) マイクロプロセッサ
JPH1173314A (ja) マイクロプロセッサ
JPH09330235A (ja) マイクロプロセッサ