JPH0922379A - マイクロコンピュータ - Google Patents
マイクロコンピュータInfo
- Publication number
- JPH0922379A JPH0922379A JP7347441A JP34744195A JPH0922379A JP H0922379 A JPH0922379 A JP H0922379A JP 7347441 A JP7347441 A JP 7347441A JP 34744195 A JP34744195 A JP 34744195A JP H0922379 A JPH0922379 A JP H0922379A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- processing unit
- register
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 210
- 238000012545 processing Methods 0.000 claims abstract description 134
- 238000012546 transfer Methods 0.000 claims abstract description 33
- 239000000872 buffer Substances 0.000 claims description 73
- 238000006243 chemical reaction Methods 0.000 claims description 27
- 239000004065 semiconductor Substances 0.000 claims description 13
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 9
- 235000019800 disodium phosphate Nutrition 0.000 description 265
- 230000000630 rising effect Effects 0.000 description 90
- 238000004364 calculation method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 11
- 239000013256 coordination polymer Substances 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 8
- 101100255988 Mus musculus S1pr2 gene Proteins 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- GHOKWGTUZJEAQD-ZETCQYMHSA-N (D)-(+)-Pantothenic acid Chemical compound OCC(C)(C)[C@@H](O)C(=O)NCCC(O)=O GHOKWGTUZJEAQD-ZETCQYMHSA-N 0.000 description 5
- 230000001343 mnemonic effect Effects 0.000 description 4
- 102100024265 Beta-ureidopropionase Human genes 0.000 description 3
- 101000761934 Homo sapiens Beta-ureidopropionase Proteins 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 1
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- 101000619552 Homo sapiens Prion-like protein doppel Proteins 0.000 description 1
- 102100022209 Prion-like protein doppel Human genes 0.000 description 1
- 241001648319 Toronia toru Species 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 101150082848 nst-1 gene Proteins 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7857—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using interleaved memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
Abstract
SIに搭載したマイクロコンピュータにおけるディジタ
ル信号処理を高速化する。 【解決手段】 内蔵メモリは第1のメモリ5,7と第2
のメモリ4,6に2面化され、第3のバスXAB,XD
Bと第2のバスYAB,YDBによって夫々並列的にア
クセス可能にされている。これにより、CPUコア2は
内蔵メモリから2個のデータを同時にDSPエンジン3
に転送可能にされる。また、第3のバスXAB,XDB
と第2のバスYAB,YDBは、外部インタフェースさ
れる第1のバスIAB,IDBとも個別化され、CPU
コア2は第2のメモリ4,6と第1のメモリ5,7のア
クセスに並行して外部メモリアクセスも可能にされる。
Description
シングユニットとディジタル信号処理ユニットとを有す
る半導体集積回路化された論理LSIに係り、高速演算
処理を要するマイクロコンピュータに適用して有効な技
術に関する。
プに搭載したマイクロコンピュータについて記載された
ものの例としては特願平4−296778号又は米国特
許出願第145157号がある。これによればマイクロ
コンピュータのようなロジックLSIチップは、セント
ラルプロセッシングユニット、バス、メモリ、乗算器を
供え、特にメモリからデータを読み出す間に、該読出し
データに関する乗算命令のコマンドをセントラルプロセ
ッシングユニットから乗算器へ転送するコマンド信号線
を有する。その結果、セントラルプロセッシングユニッ
トがメモリからデータを読み出す間に、読み出しデータ
に関する乗算命令のコマンドをセントラルプロセッシン
グユニットから乗算器へ転送するので、メモリと乗算器
との間で直接データを転送することが可能になる。
ルプロセッシングユニットと共にディジタル信号処理ユ
ニットを一つのLSIに搭載してディジタル信号処理を
高速化することについて検討した。このとき、前記従来
技術はメモリから乗算器へ直接データを転送可能にして
いる点において乗算処理の高速化を実現しているが、セ
ントラルプロセッシングユニットによる命令実行のパイ
プライン処理を想定したとき、セントラルプロセッシン
グユニットが実行すべき命令のフェッチサイクルと乗算
処理のためのメモリアクセスサイクルとが競合するよう
な事態に対しては考慮されていなかった。また、加算や
乗算のための複数のオペランドを並列的にメモリから読
み出して演算処理の高速化を図る点についても考慮され
ていない。更にその場合には、セントラルプロセッシン
グユニットによる外部アクセスとの関係も考慮しなけれ
ば、マイクロコンピュータの使い勝手が悪くなることが
見出された。また、セントラルプロセッシングユニット
と共にディジタル信号処理ユニットを一つのLSIに搭
載する場合、CPU命令とDSP命令とのコード割り当
てやDSP命令のフォーマットを工夫することも、命令
デコード回路などの論理規模の増大を極力抑える上にお
いては必要であることが見出された。
グユニットと共にディジタル信号処理ユニットを一つの
LSIに搭載してディジタル信号処理を高速化すること
にある。本発明の別の目的は、セントラルプロセッシン
グユニットと共にディジタル信号処理ユニットを一つの
LSIに搭載したとき、その物理的な規模の増大を極力
抑えることである。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
トラルプロセッシングユニット(2)と、該セントラル
プロセッシングユニットから選択的にアドレスが伝達さ
れる第1乃至第3のアドレスバス(IAB,YAB,X
AB)と、前記第1のアドレスバス(IAB)及び第2
のアドレスバス(YAB)に接続され、セントラルプロ
セッシングユニットからのアドレスによってアクセスさ
れる第1のメモリ(5,7)と、前記第1のアドレスバ
ス(IAB)及び第3のアドレスバス(XAB)に接続
され、セントラルプロセッシングユニットからのアドレ
スによってアクセスされる第2のメモリ(4,6)と、
前記第1及び第2のメモリと前記セントラルプロセッシ
ングユニットとに接続されてデータが伝達される第1の
データバス(IDB)と、前記第1のメモリに接続され
てデータが伝達される第2のデータバス(YDB)と、
前記第2のメモリに接続されてデータが伝達される第3
のデータバス(XDB)と、前記第1のアドレスバスと
第1のデータバスに接続された外部インタフェース回路
(12)と、第1乃至第3のデータバスに接続されセン
トラルプロセッシングユニットに同期動作されるディジ
タル信号処理ユニット(3)と、前記ディジタル信号処
理ユニットの動作を制御するDSP制御信号(20)を
セントラルプロセッシングユニットからディジタル信号
処理ユニットに伝達する制御信号線とを1チップに含ん
で半導体集積回路化されて成る。
ィジタル信号処理プロセッサ(3)による積和演算を考
慮して第1のメモリ(5,7)と第2のメモリ(4,
6)に2面化され、セントラルプロセッシングユニット
(2)が第1のメモリと第2のメモリを第3のバス(X
AB,XDB)と第2のバス(YAB,YDB)によっ
てそれぞれ並列的にアクセス可能にされている。これに
より、内蔵メモリから2個のデータを同時にディジタル
信号処理ユニットに転送可能にされる。さらに、第3の
バス(XAB,XDB)と第2のバス(YAB,YD
B)は、外部にインタフェースされる第1のバス(IA
B,IDB)とも個別化されているので、セントラルプ
ロセッシングユニットは第2のメモリ(4,6)と第1
のメモリ(5,7)のアクセスに並行して外部メモリア
クセスも可能にされる。このように、それぞれセントラ
ルプロセッシングユニット(2)に接続された第1乃至
第3の3種類のアドレスバス(IAB,XAB,YA
B)及びデータバス(IDB,XDB,YDB)がある
ために、当該3種類の内部バスを使用して同一クロック
サイクルで異なるメモリアクセス動作を実行することが
可能である。したがって、プログラムやデータが外部メ
モリに存在する場合にも容易に対応して演算処理の高速
化を実現できる。
せるには、前記第1のメモリと第2のメモリの夫々をR
AMとROMから構成するとよい。
おける積和演算などの繰返し演算のためのアドレス生成
の高速化のためには、セントラルプロセッシングユニッ
トはモジュロアドレス出力部(200)を備えるとよ
い。このとき、モジュロアドレス出力部で生成されたア
ドレスは前記第2又は第3のアドレスバスに選択的に出
力可能にすることが望ましい。
1乃至第3のデータバス(IDB,YDB,XDB)と
個別的にインタフェースされる第1乃至第3のデータバ
ッファ手段(MDBI,MDBY,MDBX)と、夫々
のデータバッファ手段に内部バスを介して接続可能にさ
れた複数のレジスタ手段(305〜308)と、前記内
部バスに接続された乗算器(304)及び算術論理演算
器(302)と、前記DSP制御信号をデコードして前
記データバッファ手段、乗算器、算術論理演算器、及び
レジスタ手段の動作を制御するデコーダ(34)とを含
んで構成することができる。
イクロコンピュータは、セントラルプロセッシングユニ
ット(2)と、前記セントラルプロセッシングユニット
によってアクセス制御されるメモリ(4〜7)と、前記
メモリ及び前記セントラルプロセッシングユニットとの
間でデータが伝達されセントラルプロセッシングユニッ
トに同期動作されるディジタル信号処理ユニット(3)
とを1チップに含んで半導体集積回路化される。このマ
イクロコンピュータによって実行可能な命令セットは、
セントラルプロセッシングユニット(2)が実行すべき
CPU命令と、データフェッチのためのアドレス演算等
の一部の処理をセントラルプロセッシングユニットに負
担させてディジタル信号処理ユニット(3)が実行すべ
きDSP命令とを含む。前記セントラルプロセッシング
ユニットは、前記データバスを介して16ビット固定長
のCPU命令と、16ビット又は32ビット長のDSP
命令とをフェッチする命令レジスタ(25)と、前記命
令レジスタにフェッチされた命令の一部の複数ビットに
基づいて、CPU命令とDSP命令とを識別し、識別結
果に応じて、前記ディジタル信号処理ユニットの動作制
御のためのDSP制御信号(20)とセントラルプロセ
ッシングユニットの動作制御のためのCPU制御信号と
を生成するデコーダ(24)とを含んで構成することが
できる。
4ビットが”0000”〜”1110”とされる範囲に
割り当てられている。DSP命令は、命令コードの最上
位4ビットが”1111”とされる範囲に割り当てられ
ている。さらに命令コードの最上位6ビットが”111
100”及び”111101”の範囲にに割り当てられ
た命令は、DSP命令でも16ビット長の命令コードと
される。命令コードの最上位6ビットが”11111
0”の命令は、32ビット長の命令コードとされる。命
令コードの最上位6ビットが”111111”の範囲に
は命令を割り当てておらず、その範囲を未使用領域とす
る。このように、最大32ビットの命令に対するコード
割り当てに上記のような規則を設けることにより、各命
令コードの一部例えば最上位側6ビットをデコードすれ
ば、当該命令がCPU命令であるか、16ビット長のD
SP命令であるか、32ビット長のDSP命令であるか
を、小さな論理規模のデコーダで判定することができ、
常に32ビット全部を一度にデコードすることを要しな
い。
ビットをデコードして前記CPUデコード信号(24
3)及びDSPデコード信号(244)を生成する第1
のデコード回路(240)と、第1のデコード回路にて
32ビット長のDSP命令を識別したときには命令レジ
スタの下位16ビットをコード化した信号を、それ以外
の命令を識別したときには出力が無効であることを意味
するコードを出力するコード変換回路(242)とを含
み、前記DSPデコード信号及びコード変換回路の出力
をDSP制御信号(20)とする。
したとき、マイクロコンピュータは、セントラルプロセ
ッシングユニット(2)と、前記セントラルプロセッシ
ングユニットに同期動作されるディジタル信号処理ユニ
ット(3)と、前記セントラルプロセッシングユニット
及び前記ディジタル信号処理ユニットが共通接続された
内部バス(IDB)とを含んで半導体集積回路化され、
前記セントラルプロセッシングユニットは、ディジタル
信号処理ユニットとの間でのデータ転送を当該セントラ
ルプロセッシングユニットに対して規定する第1のコー
ド領域(図18に例示される16ビットDSP命令のビ
ット9〜ビット0)を有する第1フォーマットの命令
と、前記第1のコード領域と同一フォーマットの第2の
コード領域(図20、図21に例示される32ビットの
DSP命令のAフィールド)を有すると共に、当該第2
のコード領域で規定された転送データを用いた演算処理
をディジタル信号処理ユニットに対して規定する第3の
コード領域(図20、図21に例示される32ビットの
DSP命令のBフィールド)を有する第2フォーマット
の命令とを実行するための実行制御手段を備えて成る。
2フォーマットの夫々の命令を実行するとき、第1のコ
ード領域と第2のコード領域に対して共通のデコード論
理を持つデコード手段を採用でき、マイクロコンピュー
タの論理規模の縮小に寄与する。
ーマットの命令は、それが第1フォーマットか第2フォ
ーマットかを示すための第4コード領域(例えば16ビ
ットDSP命令におけるビット15〜ビット10、32
ビットDSP命令におけるビット32〜ビット26)を
有する。
トの命令と第2フォーマットの命令に共通に用いられる
命令レジスタ(25)と、前記命令レジスタにフェッチ
された命令に含まれる前記第1のコード領域と第4のコ
ード領域又は第2のコード領域と第4のコード領域をデ
コードするデコード手段(240)と、そのデコード結
果に従ってアドレス演算を行い、前記データ転送制御を
行う実行手段とを含んで構成することができる。
域と第4のコード領域又は第2のコード領域と第4のコ
ード領域の保持に共用される上位領域(UIR)と、前
記第3のコード領域の保持に利用される下位領域(LI
R)とを有し、前記デコード手段は、前記第4のコード
領域のデコード結果に基づいて、前記命令レジスタが第
2フォーマットの命令を保持したことを示す制御信号
(248)を出力し、その制御信号に基づいて、前記下
位領域から第3のコード領域のコードデータを前記ディ
ジタル信号処理ユニットに向けて供給する手段(24
2,242A,242B)を含むことができる。
マイクロコンピュータ1の全体的なブロック図が示され
る。同図に示されるマイクロコンピュータは半導体集積
回路製造技術によって単結晶シリコンのような1個の半
導体基板に形成されている。マイクロコンピュータ1
は、セントラルプロセッシングユニットとしてのCPU
コア(CPU Core)2、ディジタル信号処理ユニットとし
てのDSPエンジン(DSP Engine)3、X-ROM4、
Y-ROM5、X-RAM6、Y-RAM7、割り込みコ
ントローラ(Interrupt Controller)8、バスステート
コントローラ(Bus State Conttroller)9、内蔵周辺
回路(Peripheral Circuit)10、11、外部メモリイ
ンターフェース(External Memory Interface)12、
クロックパルスジェネレータ(CPG)13より構成さ
れている。前記X-ROM4,Y-ROM5は命令若しく
は定数データ等を格納するための読み出し専用又は電気
的に書き換え可能なリード・オンリ・メモリであり、X
-RAM6,Y-RAM7はデータの一時格納若しくはC
PUコア2とDSPエンジン3の作業領域などとして利
用されるランダム・アクセス・メモリである。前記X-
ROM4とX-RAM6を内部命令/データ用のXメモ
リ(Internal Instrucution/Data X Mem.)と総称し、
Y-ROM5とY-RAM7を内部命令/データ用のYメ
モリ(Internal Instrucution/Data Y Mem.)と総称す
る。
バス構成として、外部メモリインタフェース12に結合
される内部アドレスバスIAB及び内部データバスID
B、外部メモリインタフェース12に結合されない内部
アドレスバスXAB及び内部データバスXDB、外部メ
モリインタフェース12に結合されない内部アドレスバ
スYAB及び内部データバスYDB、そして内蔵周辺回
路10,11のための周辺アドレスバスPAB及び周辺
データバスPDBを備える。尚、コントロールバスにつ
いては図示を省略してあるが、アドレスバス及びデータ
バスの対に対応してそれぞれ設けられている。
ェース12を通してチップ外部に接続可能なデータバス
IDBが接続され、割り込みコントローラ8からの割り
込み信号80が与えられる。CPUコア2はDSPエン
ジン3を制御するための制御信号20をDSPエンジン
3に供給する。さらにCPUコア2は、外部メモリイン
ターフェース12を通してチップ外部に接続可能なアド
レスバスIABと外部メモリインターフェース12には
接続されていないアドレスバスXAB,YABにアドレ
ス信号を出力する。CPUコア2は、クロックパルスジ
ェネレータ(CPG)13から出力されるノンオーバー
ラップ2相のクロック信号Clock1,Clock2
を動作基準クロック信号として動作される。CPUコア
2についてはその詳細を後述するが、図1のCPUコア
2には、レジスタファイル21、算術論理演算器(AL
U)22、アドレス加算器(Add-ALU)23、デコーダ
24、命令レジスタ(IR)25が代表的に図示されて
いる。レジスタファイル21はアドレスレジスタやデー
タレジスタとして任意に利用され、また、プログラムカ
ウンタ、そしてコントロールレジスタなどを含む。デコ
ーダ24は命令レジスタ25にフェッチされた命令をデ
コードして内部制御信号(図1には図示を省略)及び制
御信号20を生成する。命令レジスタ(IR)25は、
それぞれ16ビットの上位側領域(UIR)と下位側領
域(LIR)から成る。詳細については後述するが、下
位側領域(LIR)の値は選択的に上位側領域(UI
R)にシフト可能にされている。尚、割込み等の例外発
生時の命令実行手順を制御したり、例外発生に対する内
部状態の退避復帰をハードウェア的に制御したりするた
めのシーケンス制御回路は図示を省略してある。
B,XDB,YDBに接続され、クロック信号Cloc
k1,Clock2を動作基準クロック信号として動作
される。DSPエンジン3についてはその詳細を後述す
るが、図1のDSPエンジン3には、データレジスタフ
ァイル31、算術論理演算器及びシフタ(ALU/Shifte
r)32、乗算器(MAC)33、及びデコーダ34が
代表的に図示されている。データレジスタファイル31
は積和演算等に利用される。デコーダ34はCPUコア
2から与えられる制御信号20をデコードして、DSP
エンジン3の内部制御信号(図1には図示を省略)を生
成する。
スIAB,XABとデータバスIDB,XDBに接続さ
れている。Y-ROM5及びY-RAM7はアドレスバス
IAB,YABとデータバスIDB,YDBに接続され
ている。内蔵メモリは、DSPエンジン3による積和演
算を考慮してXメモリ4,6とYメモリ5,7に2面化
され、内部バスXAB,XDBとYAB,YDBによっ
てそれぞれ並列的にアクセス可能にされている。さら
に、内部バスXAB,XDBとYAB,YDBは外部に
インタフェースされるバスIAB,IDBとも個別化さ
れているので、Xメモリ4,6とYメモリ5,7のアク
セスに並行して外部メモリアクセスも可能にされる。X
メモリ4,6及びYメモリ5,7はDSPエンジン3に
よる積和演算のためのデータ一時記憶領域、定数データ
の記憶領域などとして利用される。尚、X−RAM,Y
−RAMはCPUコア2のデータ一時記憶領域若しくは
ワーク領域としても利用可能であることは言うまでもな
い。
回路10,11などからの割り込み要求信号(Interrup
ts)81を入力し、各種割込み要求に対する優先順位付
けや割込み要求に対するマスキングのための情報に従っ
て割込み要求を調停して受け付け、受け付けた割込み要
求に応ずる割り込みベクタ(Interrupt Vector)82を
アドレスバスIABに出力し、さらに割り込み信号80
をCPUコア2に出力する。
スIAB,PABとデータバスIDB,PDBに接続さ
れ、アドレスバスPAB及びデータバスPDBに接続さ
れている内蔵周辺回路10,11とCPUコア2とのイ
ンタフェース制御を行う。
レスバスIABとデータバスIDBに接続され、マイク
ロコンピュータ1のチップ外部の図示を省略したアドレ
スバスとデータバスに接続され、外部とのインタフェー
ス制御を行う。
マップの一例が示される。本実施例のマイクロコンピュ
ータ1は32ビットで規定されるアドレス空間を管理す
る。前記アドレスバスIABはビット幅が32ビットと
される。そのアドレス空間の中には、例外処理ベクタ領
域、X-ROM空間(X−ROM4に割り当てられたア
ドレス空間)、X-RAM空間(X−RAM7に割り当
てられたアドレス空間)、Y-ROM空間(Y−ROM
5に割り当てられたアドレス空間)、Y-RAM空間
(Y−RAM7に割り当てられたアドレス空間)、内蔵
周辺回路割付け空間(内蔵周辺回路10,11が割り当
てられたアドレス空間)などが存在する。図2の例はX
-ROM4は24KB、X-RAM6は4KB、Y-RO
M5は24KB、Y-RAM7は4KBが割り当てられ
ている。
00000〜H'000003FFの空間の256B領
域には例外処理ベクタ領域が割り付けられている。H'
00000400〜H'01FFFFFFにはユーザに
よって使用可能な通常空間が割り付けられている。通常
空間はマイクロコンピュータ1の外部に接続可能なメモ
リ領域とされる。H'02000000〜H'02005
FFFには、X-ROM空間が割り付けられている。H'
02006000〜H'02006FFFには、X-RA
M空間が割り付けられている。H'02007000〜
H'02007FFFはX-RAM_Mirror空間となって
おり、ここをアクセスすると実際にはH'020060
00〜H'02006FFFのX-RAM空間をアクセス
することになる。H'02008000〜H'0200F
FFFは、X-RAM,RAM_Mirror空間となってお
り、ここをアクセスすると実際にはH'0200000
0〜H'02007FFFのX-ROM空間およびX-R
AM空間をアクセスすることになる。H'020100
00〜H'02015FFFには、Y-ROM空間が割り
付けられている。H'02016000〜H'02016
FFFには、Y-RAM空間が割り付けられている。H'
02017000〜H'02017FFFはY-RAM_
Mirror空間となっており、ここをアクセスすると実際
にはH'02016000〜H'02016FFFのY-
RAM空間をアクセスすることになる。H'02018
000〜H'0201FFFFは、Y-ROM,RAM_
Mirror空間となっており、ここをアクセスすると実際
にはH'02010000〜H'02017FFFのY-
ROM空間およびY-RAM空間をアクセスすることに
なる。H'02020000〜H'07FFFFFFFに
は、通常空間が割り付けられている。H'080000
00〜H'1FFFFFFFFには、予約領域が割り付
けられている。この予約領域は、ユーザチップ(実チッ
プ)の場合にはアクセス不可能になっており、エバチッ
プ(エミュレーションなどに利用される評価用チップ)
の場合にはASE空間(エミュレーション用の制御空
間)領域として割り当てられる。H'20000000
〜H'27FFFFFFFには、通常空間が割り付けら
れている。H'28000000〜H'FFFFFDFF
には、予約領域が割り付けられている。H'FFFFF
E00〜H'FFFFFFFFには 内蔵周辺回路のレ
ジスタアドレス値を割り付ける内蔵周辺回路割り付け領
域が割り付けられている。
示したCPUコア2のブロック図が示される。図3にお
いて破線で囲った部分がモジュロアドレス出力部200
である。モジュロアドレス出力部200は、モジュロア
ドレスレジスタ(例えばA0X)より出力した値をバッ
ファ(例えばMABX)を通してアドレスバス(例えば
XAB)に出力すると同時に、モジュロアドレスレジス
タ(A0X)より出力した値を加算手段(例えばAL
U)で加算して再びモジュロアドレスレジスタ(A0
X)に格納するアドレス更新出力動作などを行う回路ブ
ロックであり、積和演算のような繰返し演算のためのデ
ータアクセスアドレスを順次更新して生成する。ランダ
ムロジック回路(Random Logic Circuit)201と記載
された回路ブロックは、図1のデコーダ24や前記シー
ケンス制御回路、そしてコントロールレジスタやステー
タスレジスタなどを含む回路ブロックである。
1,A2,B2,DWはそれぞれCPUコア2内部の代
表的に示されたバスである。CPUコア2とデータバス
IDBとのインタフェースは前記命令レジスタ(IR)
25及びデータバッファ(Data Buffer)203にて行
われる。命令レジスタ(IR)25にフェッチされた命
令はランダムロジック回路(Random Logic Circuit)2
01に含まれる前記デコーダ24等に供給される。CP
Uコア2とアドレスバスIABとのインタフェースはプ
ログラムカウンタ(PC)204及びアドレスバッファ
(Address Buffer)205で行われる。CPUコア2と
アドレスバスXABとのインタフェースはメモリアドレ
スバッファ(MABX)206で行われ、CPUコア2
とアドレスバスYABとのインタフェースはメモリアド
レスバッファ(MABY)207で行われる。アドレス
バッファ205へのアドレス情報の入力経路は、バスC
1,A1,A2の中から選択可能にされ、メモリアドレ
スバッファ206,207へのアドレス情報の入力経路
は、バスC1,C2,A1,A2の中から選択可能にさ
れる。算術演算器(AU)208はプログラムカウンタ
204の値のインクリメントに利用される。209は汎
用レジスタ(Reg.)、210はアドレスのインデックス
修飾に利用されるインデックスレジスタ(Ix)、21
1は同じくインデックス修飾に利用されるインデックス
レジスタ(Iy)、212はアドレス演算専用の加算器
(PAU)、213は算術論理演算器(ALU)であ
る。
はアドレスバスYABのどちらのアドレスに対しモジュ
ロ演算を行うかを指定し、論理値”1”によってアドレ
スバスXABを、論理値”0”によってアドレスバスY
ABを指定する。制御ビットDMはモジュロ演算を行う
か否かを指示し、論理値”1”によってモジュロ演算を
行うことを指示し、論理値”0”によってモジュロ演算
を行わないことを指示する。モジュロスタートアドレス
レジスタ(MS)214はモジュロ演算開始アドレスを
格納し、モジュロエンドアドレスレジスタ(ME)21
5はモジュロ演算終了アドレスを格納する。
x)216は現在のモジュロアドレスを格納するカレン
トアドレスレジスタ、217はモジュロエンドアドレス
レジスタ(ME)215の値とモジュロアドレスレジス
タ(A0x,A1x)216の値とを比較するコンパレ
ータ(CMP)、218はコンパレータ217の出力と
制御ビットMXY,DMの3入力に対して論理積を採る
アンドゲート、219はバスC1の値とモジュロスター
トアドレスレジスタ(MS)214の値とを選択するセ
レクタであり、それらはアドレスバスXABに関するモ
ジュロ演算に利用される。セレクタ219はアンドゲー
ト218の論理値”1”出力によってレジスタ(MS)
214の値を選択し、選択した値をモジュロアドレスレ
ジスタ(A0x,A1x)216に与える。モジュロア
ドレスレジスタ216はA0x又はA1xの何れかが選
択されて利用される。
y)226は現在のモジュロアドレスを格納するカレン
トアドレスレジスタ、227はモジュロエンドアドレス
レジスタ(ME)215の値とモジュロアドレスレジス
タ(A0y,A1y)216の値とを比較するコンパレ
ータ(CMP)、228はコンパレータ227の出力と
制御ビットMXYの反転ビットと制御ビットDMとの3
入力に対して論理積を採るアンドゲート、229はバス
C2の値とモジュロスタートアドレスレジスタ(MS)
214の値とを選択するセレクタであり、それらはアド
レスバスYABに関するモジュロ演算に利用される。セ
レクタ229はアンドゲート228の論理値”1”出力
によってレジスタ(MS)214の値を選択し、選択し
た値をモジュロアドレスレジスタ(A0y,A1y)2
26に与える。モジュロアドレスレジスタ226はA0
y又はA1yの何れかが選択されて利用される。
れたOP Codeは命令レジスタ25から供給される命令コ
ードを意味し、CONSTは定数値を意味する。
算動作として、例えば、モジュロアドレスレジスタ(A
0x)216を用いて、アドレスバスXABへ供給すべ
きアドレス情報をモジュロ演算にて生成する動作を説明
する。
ロスタートアドレスレジスタ(MS)214に、モジュ
ロ演算終了アドレスがモジュロエンドアドレスレジスタ
(ME)215にそれぞれ書き込まれる。モジュロアド
レスレジスタ(A0x)にはモジュロ演算を開始するア
ドレス値が書き込まれる。次にアドレスバスXABのア
ドレスに対しモジュロ演算を行うので、XAB、YAB
のどちらのアドレスに対しモジュロ演算を行うかを決定
する制御ビットMXYに対し論理値”1”が書き込まれ
る(アドレスバスYABに対しモジュロ演算を行う場合
は、制御ビットMXYに論理値”0”が書き込まれ
る)。最後にモジュロ演算を行うか否かを判定する制御
ビットDMに論理値”1”が書き込まれる。
@Ax, Dxとされる。この命令記述において、Axは
モジュロアドレスレジスタ(A0x)216又はモジュ
ロアドレスレジスタ(A1x)216とされ、DxはD
SPエンジン3内のレジスタに対応する。図3にはDx
は図示されていない。上記モジュロ演算命令が実行され
ると、モジュロアドレスレジスタ(A0x)216より
値が読み出され、メモリアドレスバッファ(MABX)
206及び算術論理演算器(ALU)213に入力され
る。メモリアドレスバッファ(MABX)206に入力
された値はそのままアドレスバスXABに出力されて、
XROM4またはXRAM6のアドレスを指定する。一
方、算術論理演算器(ALU)213に入力されたモジ
ュロアドレスレジスタ(A0x)216の値は、インデ
ックスレジスタ(Ix)210の値又は定数(Const)
が加算される。インデックスレジスタ(Ix)210と
の加算を行なう場合は、命令MOVS.W @(Ax, I
x), Dx等を実行したときであり、定数加算される場
合は命令MOVS.W @Ax, Dx等を実行したときで
ある。その加算結果は算術論理演算器(ALU)213
より出力される。算術論理演算器(ALU)213より
出力された値は、セレクタ219に入る。このセレクタ
219のもう一方の入力は、モジュロスタートアドレス
レジスタ(MS)214に格納されているモジュロ演算
開始アドレスである。
(ALU)213の出力になるか、モジュロスタートア
ドレスレジスタ(MS)214の値になるかは、次のよ
うにして決定される。モジュロアドレスレジスタ(A0
x)216の値とモジュロエンドアドレスレジスタ(M
E)215の値は、コンパレータ(CMP)217で常
に比較されており、一致すればコンパレータ(CMP)
217より論理値”1”が出力され、不一致ならば論理
値”0”が出力される。コンパレータ(CMP)217
より出力された値は、制御ビットDM,MXYと共にア
ンドゲート218で論理積が採られ(この例の場合、D
M、MXY共に論理値”1”なので、コンパレータ21
7の値がそのままアンドゲート218から出力され
る。)、セレクタ219に入力される。セレクタ219
は、アンドゲート218より入力される値が論理値”
1”の場合にモジュロスタートアドレスレジスタ(M
S)214の値を選択し、論理値”0”の場合には算術
論理演算器(ALU)213からの出力値を選択する。
理値”0”の間は、算術論理演算器(ALU)213か
らの出力値を選択し続けるため、アドレスバスXABに
出力される値は、順次更新されていく。モジュロエンド
アドレスレジスタ(ME)215の値とモジュロアドレ
スレジスタ(A0x)216の値とが一致すると、アン
ドゲート218からセレクタ219に入力される値が論
理値”1”になり、モジュロスタートアドレスレジスタ
(MS)214の値を選択する。それによって、モジュ
ロアドレスレジスタ(A0x)216はモジュロスター
トアドレスレジスタ(MS)214の値によって初期化
される。
ドレスレジスタ(A0x)216を利用したときの動作
を説明をしたが、モジュロ演算命令MOVS.W @A
x, DxにおけるAxをモジュロアドレスレジスタ(A
1x)216に指定することも可能である。また制御ビ
ットMXYに論理値”0”を指定すれば、アドレスバス
YABに対してモジュロ演算が可能になる。この場合、
モジュロ演算命令MOVS.W @Ax, DxにおけるA
xを、モジュロアドレスレジスタ(A0y)226又は
(A1y)226を指定するための値Ayに変更しなけ
ればならない。また制御ビットDMに0を指定すれば、
モジュロ演算の実行を禁止することもできる。
図が示される。ランダムロジック回路(Random Logic C
ircuit)301と記載された回路ブロックは、図1のデ
コーダ34や制御回路、そしてコントロールレジスタや
ステータスレジスタなどを含む回路ブロックである。そ
の他にDSPエンジン3は、算術論理演算器(ALU)
302、シフタ(SFT)303、乗算器(MAC)3
04、レジスタ(Reg.)305、レジスタ(A0,A
1)306、レジスタ(Y0,Y1)307、レジスタ
(X0,X1)308、メモリデータバッファ(MDB
I)309、メモリデータバッファ(MDBX)31
0、メモリデータバッファ(MDBY)311を備え
る。メモリデータバッファ(MDBY)311はデータ
バスYDBとバスD2を接続する。メモリデータバッフ
ァ(MDBX)310はデータバスXDBとバスD1を
接続する。メモリデータバッファ(MDBI)309は
データバスIDBとバスC1,D1,A1,B1に接続
している。乗算器(MAC)304はバスA1及びB1
よりデータを入力し、それに対する乗算結果をバスC1
及びD1に出力する。シフタ(SFT)303はバスA
2よりデータを入力し、シフト演算結果をバスC2に出
力する。算術論理演算器(ALU)302はバスA2及
びB2よりデータを入力し、演算結果をバスC2に出力
する。
ットに含まれる命令のフォーマット及び命令コードの一
例が示される。マイクロコンピュータ1は、CPU命令
とDSP命令の2種類の命令をサポートしている。CP
U命令の全てとDSP命令の一部は、16ビット長の命
令コードであり、残りのDSP命令は32ビット長の命
令コードになっている。CPU命令とは、DSPエンジ
ン3を動作させることなく専らCPUコア2によって実
行される命令である。DSP命令とは、アドレス演算若
しくはオペランドアクセスなどの一部の処理をCPUコ
ア2に負担させてDSPエンジン3が実行する命令であ
る。
ットが”0000”〜”1110”までの空間に命令が
割り当てられている。DSP命令は、命令コードの最上
位側の4ビットが”1111”に全て割り当てられてい
る。さらに命令コードの最上位側の6ビットが”111
100”及び”111101”に割り当てられた命令
は、DSP命令でも16ビット長の命令コードになって
いる。命令コードの最上位側の6ビットが”11111
0”の命令は、32ビット長の命令コードになってい
る。命令コードの最上位側の6ビットが”11111
1”の空間には命令を割り当てておらず、未使用領域
(未定義命令領域)となっている。将来この領域を利用
して命令コードを更に拡張することができる。この命令
フォーマットより明らかなように、各命令コードの最上
位側の6ビットをデコードすれば、当該命令がCPU命
令であるか、16ビット長のDSP命令であるか、32
ビット長のDSP命令であるか、未定義命令であるかの
判定を、小さな論理規模のデコーダで行うことができ
る。図5のCPU命令フォーマットにおいて、nnnn
はディスティネーションオペランドの指定領域、sss
sはソースオペランドの指定領域、ddddはディスプ
レースメントの指定領域、iiiiiiiiはイミディ
エイト値の指定領域である。尚、ADD命令などの場合
は、nnnnもソースオペランドの指定領域とされ、演
算結果はnnnnに格納される。また、図3に基づいて
説明した前記モジュロ演算命令は、図5の命令MOV
S.W @R2,A0に対応されるが、図5における命令
記述はオペランド指定の記述形態が図3で説明した内容
と相違されている。これは単なる形式の相違であり、実
質は同じである。
SPエンジン3のデコーダ34との接続構成例が示され
る。マイクロコンピュータ1による命令フェッチは32
ビット単位で命令レジスタ(IR)25に行われる。デ
コーダ24は第1のデコード回路240、第2のデコー
ド回路241、及びコード変換回路242を備える。第
1のデコード回路240は命令レジスタ(IR)25の
上位側16ビットの領域(UIR)の値をデコードし
て、当該命令がCPU命令か、16ビットのDSP命令
か、32ビットのDSP命令かに応じて、CPUデコー
ド信号243、DSPデコード信号244、コード変換
制御信号245、及びシフト制御信号246を生成す
る。第2のデコード回路241はCPUデコード信号2
43をデコードして、CPUコア2内部の演算器やレジ
スタ選択などを行う各種内部制御信号(CPU制御信
号)247を生成する。コード変換回路242は、コー
ド変換制御信号245にて活性化されると、命令レジス
タ(IR)25の下位側16ビットの領域(LIR)が
保持する情報のビット数を圧縮し若しくはそのまま出力
し、コード変換制御信号245にて非活性化されると、
その出力の無効を意味する情報(ノンオペレーションコ
ード)を出力する。コード変換回路242は、信号24
5が非活性状態のとき下位側16ビットの領域(LI
R)の値に代えてノンオペレーションコードを出力する
という意味では、セレクタによって実現することも可能
である。DSPデコード信号244とコード変換回路2
42の出力は、前記DSP制御信号20としてDSPエ
ンジン3のデコーダ34に供給される。前記第1のデコ
ード回路240は、命令レジスタ(IR)25の上位側
16ビットの領域(UIR)に格納された最上位側の6
ビットをデコードすることにより、当該命令コードがC
PU命令か、16ビットのDSP命令か、32ビットの
DSP命令かを判定することができる。
る場合、コード変換制御信号245は非活性状態とさ
れ、それによってコード変換回路242は出力の無効を
意味するノンオペレーションコードを出力する。また、
デコードされた命令が16ビット命令である場合にはシ
フト制御信号246が活性化され、それを受ける命令レ
ジスタ(IR)25はその下位側16ビットの領域(L
IR)の値を上位側16ビットの領域(LIR)にシフ
トさせ、シフトされた命令を次に実行すべき命令の全部
若しくは一部として利用する。例えば命令レジスタIR
の上位側16ビット領域UIRに16ビットCPU命令
が格納され、下位側ビット領域LIRに32ビットDS
P命令の上位16ビットの命令コードが格納された場合
について説明する。まず、上位側16ビット領域UIR
に格納された16ビットCPU命令が第1デコード回路
240にてデコードされ、その結果に従ってCPUコア
2はその命令を実行し、下位側16ビット領域LIRに
格納された32ビットDSP命令の上位16ビットの命
令コードデータは、上位側16ビット領域UIRに転送
される。このときランダムロジック回路201は、算術
演算器AU208に対し、プログラムカウンタPCに格
納されるべきアドレスのアドレス演算を実行させる。プ
ログラムカウンタPCは、算術演算器AU208によっ
て演算されたアドレス演算結果に従うアドレスを格納す
る。プログラムカウンタPCに格納されたアドレスに従
って、上記32ビットDSP命令の下位16ビットの命
令コードデータが、それを格納する命令メモリから命令
レジスタIRの下位側16ビット領域LIRに転送され
る。これにより、32ビットDSP命令が命令レジスタ
IRに格納される。そして、この命令レジスタIRに格
納された32ビットDSP命令は、デコーダ24を介し
てDSPエンジン3のデコーダ34に供給される。ま
た、他の方法として、図示していないが、複数の命令プ
リフェッチバッファがCPUコア2内に設けられてい
る。複数の命令プリフェッチバッファは、現在実行され
ている命令から数サイクル先に実行されるべき命令をプ
リフェッチする。このようなプリフェッチバッファが設
けられている場合において、上述のように32ビットD
SP命令の上位16ビットの命令コードデータが下位側
領域LIRから上位側16ビット領域UIRに転送され
るとき、ランダムロジック回路201は、上記32ビッ
トDSP命令の下位16ビットの命令コードデータがプ
リフェッチされている命令プリフェッチバッファを選択
する。その選択された命令プリフェッチバッファから3
2ビットDSP命令の下位16ビットの命令コードデー
タが読み出され、命令レジスタIRの下位側16ビット
領域LIRに格納される。
命令である場合、DSPデコード信号244はノンオペ
レーションを意味するコードとされる。デコードされた
命令が16ビットのDSP命令である場合には、CPU
制御信号247はCPUデコード信号243に基づいて
第2のデコード回路241が生成し、DSPエンジン3
内部の制御信号は実質的にDSPデコード信号244を
デコーダ34が解読して生成する。デコードされた命令
が32ビットのDSP命令である場合、CPU制御信号
247はCPUデコード信号243に基づいて第2のデ
コード回路241が生成し、DSPエンジン3内部の制
御信号はDSPデコード信号244とコード変換回路2
42の出力をデコーダ34が解読して生成する。
命令コード長が、16ビットのものと32ビットのもの
があり、上述のように16ビット長命令と32ビット長
命令では処理が異なるので、それぞれの場合を分けてそ
の動作を詳述する。
明する。第1のデコード回路240は命令レジスタ(I
R)25にフェッチされた32ビットの命令コードの
内、上位16ビットをデコードする。第1のデコード回
路240では、命令コードの最上位6ビットのコード
が”111110”、”11111”以外のときは16
ビット長命令であることがわかるので、このときはCP
Uデコード信号243とDSPデコード信号244の出
力と共に、命令レジスタ(IR)25の下位16ビット
領域LIRの命令コードデータを上位16ビット領域U
IRにシフトさせるシフト制御信号246を活性化す
る。活性化されたシフト制御信号246を受けた命令レ
ジスタ(IR)25は、下位16ビット領域LIRに格
納されている命令コードを上位16ビット領域UIRに
シフトする。シフトされた命令コードは、その次に第1
のデコード回路240でデコードされることになる。デ
コーダ24より出力されるCPUデコード信号243
は、第2デコード回路241に出力され、DSPデコー
ド信号244は、DSPエンジン3に供給される。ま
た、第1のデコード回路240は16ビット長命令であ
ることがわかると、コード変換制御信号245を非活性
とし、これによってコード変換回路242は、下位16
ビットの命令コードが無効であることを示すコードをD
SP制御信号20の一部として生成する。DSPエンジ
ン3側では第1のデコード回路240より出力されたD
SPデコード信号244とコード変換回路242より出
力されたコード信号とをDSP制御信号20として入力
すると、デコーダ34が当該DSP制御信号20のデコ
ードを行なう。16ビットのDSP命令の場合、コード
変換回路242より出力されたDSP制御信号は無効を
表わす信号になっているので、デコーダ34はDSPデ
コード信号244に着目して、DSPエンジン3内にあ
る乗算器(MAC)304、算術論理演算器(ALU)
302、及びシフタ(SFT)303等の制御信号を出
力する。DSPエンジン3はそれら制御信号に従って演
算処理を行なう。
する。CPUコア2内部にある第1のデコード回路24
0では、命令レジスタ(IR)25に32ビットの命令
コードを格納する。そして上位16ビットを第1のデコ
ード回路240でデコードし、デコード信号243,2
44を出力する。第1のデコード回路240では、命令
コードの最上位6ビットのコードが”111110”の
ときは32ビット長命令であることがわかるので、コー
ド変換制御信号245を活性化し、これによってコード
変換回路242は、命令レジスタ(IR)25の下位1
6ビットの命令コードをコード変換する。コード変換さ
れた情報はDSPデコード信号244と共にDSPエン
ジン3にDSP制御信号20として供給される。デコー
ダ34はDSP制御信号20をデコードしてDSPエン
ジン3内部の制御信号を生成する。尚、デコーダ24,
34は例えばランダムロジック回路で実現することがで
きる。
示される。図6の実施例では、命令レジスタ25の下位
領域LIRの命令データが上位領域UIRにシフトされ
るものとして説明した。図17の実施例は、前記命令レ
ジスタ25と内部データバスIDBとの間に、命令プリ
フェッチキューを構成する直列2段の命令プリフェッチ
バッファ250,251を供え、命令プリフェッチバッ
ファ250,251の保持データをセレクタ252で選
択して命令レジスタ25に与えるよいうになっている。
命令プリフェッチバッファ250,251及び命令レジ
スタ25の夫々は、32ビット単位でデータを保持し、
その保持動作は、制御信号φ1〜φ3(CLK1に同
期)によって制御される。特に図示されないが、命令プ
リフェッチバッファ250,251及び命令レジスタ2
5の夫々は、マスタ・スレーブの構成を有し、マスタ段
は対応される制御信号の立ち上がりに同期して入力のラ
ッチ動作を行い、スレーブ段は対応される制御信号の立
ち下がりに同期して入力のラッチ動作を行う。これによ
って、直列2段の命令プリフェッチバッファ250,2
51には、プリフェッチされた前後の命令データが格納
される。
に従って、ポートPaに供給される32ビットの命令デ
ータ又はポートPb供給される32ビットの命令データ
を選択して命令レジスタ25に与える。前記ポートPa
には、命令プリフェッチバッファ250の上位16ビッ
ト領域UPB1を下位側とし、命令プリフェッチバッフ
ァ251の下位16ビット領域LPB2を上位側とする
32ビットの命令データが供給される。ポートPbには
命令プリフェッチバッファ251に格納されている32
ビットの命令データがそのまま供給される。
51が32ビットのDSP命令を保持しているとき、セ
レクタ252は、ポートPbの出力を選択することによ
って当該32ビットのDSP命令を命令レジスタ25に
セットすることができる。命令プリフェッチバッファ2
51が16ビットのDSP命令又は16ビットのCPU
命令を上位領域UPB2に保持しているとき、セレクタ
252は、ポートPbの出力を選択することによって当
該16ビットの命令を命令レジスタ25の上位領域UI
Rにセットすることができる。命令プリフェッチバッフ
ァ251が16ビットのDSP命令又は16ビットのC
PU命令を下位領域LPB2に保持しているときは、セ
レクタ252が、ポートPaの出力を選択することによ
って当該16ビットの命令を命令レジスタ25の上位領
域UIRにセットすることができる。命令プリフェッチ
バッファ251が32ビットDSP命令の上位側16ビ
ット命令コードを下位領域LPB2に保持し、命令プリ
フェッチバッファ250がその上位領域UPB1に当該
32ビットDSP命令の下位側16ビット命令コードを
保持しているときは、セレクタ252が、ポートPaの
出力を選択することによって当該32ビットDSP命令
を命令レジスタ25にセットすることができる。
ェッチバッファのラッチ制御信号φ1,φ2、命令レジ
スタ25のラッチ制御信号φ3、及び前記選択制御信号
φ4を生成する制御ロジックである。この制御ロジック
253は、16ビット命令か32ビット命令かを示す制
御信号248と命令プリフェッチバッファ250,25
1の各領域に実行されないまま残っている命令コードの
状態に従って、前記制御信号φ1〜φ4を生成する。こ
の制御ロジック253は命令フェッチのための制御論理
の一部を構成する。尚、前記制御信号248は、第1の
デコード回路240が命令レジスタ25の上位領域UI
Rから供給される命令コードデータの上位側6ビットを
デコードして生成されるものであり、その詳細について
は後述する。
5への命令コードデータのセットは以下のようにされ
る。外部からの命令フェッチは、CPUコア2の命令フ
ェッチタイミング(例えば後述する複数段のパイプライ
ンステージにおける命令フェッチステージIF)におい
て、命令プリフェッチバッファ250に32ビットの命
令コードデータを新たに格納する余地がある場合に行わ
れる。そのタイミングで命令フェッチが行われるとき
は、命令プリフェッチバッファ251にはまだ実行され
ていない命令が残っている。命令プリフェッチバッファ
251の領域UPB2,LPB2に格納されている命令
コードの双方がまだ実行されていない第1の状態の場合
には、命令プリフェッチバッファ251の32ビットの
出力がポートPbを介してセレクタ252で選択されて
命令レジスタ25にセットされる。一方、命令プリフェ
ッチバッファ251の下位領域LPB2に格納されてい
る命令コードだけがまだ実行されていない第2の状態の
場合には、命令プリフェッチバッファ250にプリフェ
ッチした上位領域UPB1と命令プリフェッチバッファ
251の下位領域LPB2の命令コードデータがポート
Paを介して命令レジスタ25にセットされる。
5の上位領域UIRにセットされた命令コードデータを
デコード回路240がデコードした結果、それが32ビ
ット命令を構成するものである場合には、そのとき、命
令プリフェッチバッファ250にプリフェッチされた3
2ビットの命令コードデータがそのまま命令プリフェッ
チバッファ251に転送される。一方、デコード結果に
よって16ビット命令であることが検出されたときは、
命令プリフェッチバッファ250から次段のバッファ2
51へのデータシフトは行われない。
命令レジスタ25へのデータセットの後、命令プリフェ
ッチバッファ250にプリフェッチされている32ビッ
トの命令コードデータは、そのまま命令プリフェッチバ
ッファ251にシフトされてセットされる。このシフト
セット後、命令プリフェッチバッファ250に未だ実行
されていない命令コードデータが存在しないならば、命
令プリフェッチバッファ250には、次の命令フェッチ
タイミングで命令コードデータがプリフェッチされる。
ミングの後には、まだ処理されていない命令コードデー
タが命令レジスタ25にセットされる。このとき、実行
されるべき命令が、16ビットCPU命令、16ビット
DSP命令又は32ビットDSP命令の何れであって
も、その上位側16ビットは必ず第1のデコード回路2
40に供給されることになる。
図17ではセレクタ242Aとコード変換ロジック24
2Bによって構成される。また、第1のデコード回路2
40は、図6の説明ではそれがデコードした命令コード
が16ビット命令であるか否かによってそのレベルが制
御される制御信号245,246を生成したが、図17
の例では、それがデコードした命令コードが16ビット
命令であるのか32ビット命令(本実施例において32
ビット命令はDSP命令である)であるのかを識別する
ための制御信号248を出力する。セレクタ242A
は、制御信号248が16ビット命令を意味するとき
は、ノーオペレーションコードNOPを選択してコード
変換ロジック242Bに供給し、制御信号248が32
ビットDSP命令であることを意味するときは、命令レ
ジスタ25の下位領域LIRの命令コードをコード変換
ロジック242Bに供給する。コード変換ロジック24
2Bは、特に制限されないが、命令レジスタ25の下位
領域LIRの命令コードデータの一部例えばレジスタ選
択のためのコード情報をDSPエンジン3のデコーダ3
4に適する形態に修正して出力する。
路240は命令レジスタ25の上位領域UIRが保持す
る16ビットの命令コードデータを解読し、これによっ
て得られたCPUデコード信号243を第2のデコード
回路243に与え、また、DSPデコード信号244を
デコーダ34に与える。CPUデコード信号243は、
CPU命令及びDSP命令の何れにおいても有意とさ
れ、第2のデコード回路241に供給される。第2のデ
コード回路241は、CPUデコード信号243をデコ
ードして、CPUコア2が行うべきアドレス演算やデー
タ演算のための制御情報、及び内部メモリX−ROM
4,Y−ROM5,X−RAM,Y−RAMそして外部
メモリをアクセスしたりするためのアドレスバスやデー
タバスの選択制御情報等を出力する。前述の通り、DS
P命令に対しても、それに必要なアドレス演算やデータ
パスの選択はCPUコア2が行う。
通り、第1のデコード回路240に供給される命令コー
ドがDSP命令のためのコードデータである場合に有意
とされるデコード信号である。有意DSPデコード信号
244は、例えば、CPUコア2で行われるアドレス演
算に従ってアクセスされるメモリとの間でデータの受け
渡しを行うDSPエンジン3内のレジスタ等の指定情報
を含んでいる。第1のデコード回路240に供給される
命令コードがCPU命令である場合には、DSPデコー
ド信号244は無効を意味するコードにされる。
ットに含まれる前記DSP命令のコードを更に詳述す
る。図18及び図19は夫々16ビットのDSP命令の
命令コードが示され、図20及び図21には32ビット
のDSP命令の命令コードが示される。前述のように、
DSP命令は、命令コードの最上位側の4ビットが”1
111”に割り当てられ、命令コードの最上位側の6ビ
ットが”111100”及び”111101”は16ビ
ットのDSP命令、命令コードの最上位側の6ビット
が”111110”の命令は32ビットのDSP命令と
される。
r)に示される16ビットDSP命令の命令フォーマッ
トはXメモリ(X−ROM4,X−RAM6)とDSP
エンジン3の内蔵レジスタとの間におけるデータ転送命
令であり、第2欄(Y Side of Data Transfer)に示さ
れる命令フォーマットはYメモリ(Y−ROM5,Y−
RAM7)とDSPエンジン3の内蔵レジスタとの間に
おけるデータ転送命令である。上記命令フォーマットに
おいて、Ax,AyはCPUコア2に含まれるレジスタ
アレイ209(図3参照)に含まれるレジスタを指定
し、Ax=”0”はレジスタR4を指定し、Ax=”
1”はレジスタR5を指定し、Ay=”0”はレジスタ
R6を指定し、Ay=”1”はレジスタR7を指定す
る。Dx,Dy,DaはDSPエンジンに含まれるレジ
スタを指定し、Dx=”0”はレジスタX0、Dx=”
1”はレジスタX1、Dy=”0”はレジスタY0、D
y=”1”はレジスタY1、Da=”0”はレジスタA
0、Da=”1”はレジスタA1を夫々指定する。I
x,Iyはイミディエイト値を意味する。
命令フォーマットは、マイクロコンピュータ1の外部に
接続された図示しないメモリとDSPエンジン3の内蔵
レジスタとの間におけるデータ転送命令である。Asは
CPUコア2に内蔵されたレジスタアレイ209(図3
参照)に含まれるレジスタを指定し、DsはDSPエン
ジンに内蔵されるレジスタX1,X0,Y1,Y0,A
1,A0やレジスタアレイ305(図4参照)に含まれ
るレジスタを指定する。
32ビットDSP命令であることを示すコード”111
110”の領域(ビット31〜ビット26)、Aフィー
ルド(ビット25〜ビット16)及びBフィールド(ビ
ット15〜ビット0)に大別される。図20はAフィー
ルドに着目した場合の当該フィールドのコードとそれに
対応されるにニーモニックを示し、図21はBフィール
ドに着目した場合の当該フィールドのコードとそれに対
応されるにニーモニックを示す。
は、図18に示される16ビットDSP命令のビット9
〜ビット0のコードと同一であり、第20図の第1欄
(X Sideof Data Transfer)に示されるAフィールドの
コードはXメモリ(X−ROM4,X−RAM6)とD
SPエンジン3の内蔵レジスタとの間におけるデータ転
送を規定し、第2欄(Y Side of Data Transfer)に示
されるAフィールドのコードはYメモリ(Y−ROM
5,Y−RAM7)とDSPエンジン3の内蔵レジスタ
との間におけるデータ転送を規定する。当該Aフィール
ドに含まれるビットAx,Ay,Dx,Dy,Daが指
定する内容は図18と全く同じである。
は、DSPエンジン3の内部で行われる算術演算、論理
演算、シフト演算、レジスタ間のロード/ストアなどの
処理を規定する。例えば、DSPエンジン3の内部で行
われる乗算(PMULS)、減算(PSUB)、加算
(PADD)、丸め(PRND)、シフト(PSH
L)、論理積(PAND)、排他的論理和(XOR)、
論理和(OR)、インクリメント(PINC)、ディク
リメント(PDEC)、クリア(CLR)等の演算や、
DSPエンジン3の内部で行われるロード(PLDS)
及びストア(PSTS)等を規定する。図21の第3欄
(3 Operand Operation with Condition)は、条件付き
のコードであり、その条件(if cc)としては、DC
(データコンプリート)ビット(データの処理完了を示
すビット)の論理値又は無視を選択することができる。
ルドのコードとAフィールドのコードとが任意に組み合
わされて記述される。即ち、32ビットのDSP命令
は、マイクロコンピュータ1の内部又は外部から演算対
象とされるオペランドをフェッチし、それをDSPエン
ジン3の内部で演算する処理を規定する。上述の説明か
ら明らかなように、オペランドフェッチのためのアドレ
ス演算やデータパスの選択はCPU2によって行われ
る。32ビットDSP命令においてオペランドフェッチ
を規定するAフィールドのコードは16ビットのDSP
命令と同じである。16ビットDSP命令は、DSPエ
ンジン3内部のレジスタに対する初期設定などに利用さ
れる。
かなように、32ビットDSP命令のAフィールドのコ
ードデータは命令レジスタ25における上位領域UIR
にセットされる。また、Aフィールドと同一のフォーマ
ットを有する16ビットDSP命令も上位領域UIRに
セットされる。したがって、その何れにおいても、CP
Uコア2は、必要なアドレス演算及びデータフェッチ
(若しくはオペランドフェッチ)に必要なデータパスの
選択を同様に行えばよい。換言すれば、32ビットDS
P命令を実行するためのデータフェッチ(若しくはオペ
ランドフェッチ)と16ビットDSP命令を実行するた
めのデータフェッチ(若しくはオペランドフェッチ)と
に必要とされるデコード回路240、241が共通化さ
れ、この点においても、マイクロコンピュータ1の論理
規模の縮小に寄与する。32ビットDSP命令のAフィ
ールドが指定するDSPエンジン3の内部レジスタの指
定情報や16ビットDSP命令が指定するDSPエンジ
ン3の内部レジスタの指定情報は、前記DSPデコード
信号244としてDSPエンジン3に与えられる。DS
Pデコード信号244を有意とするか否かは、前記第1
のデコード回路240が上位領域UIRの最上位側の4
ビットをデコードして決定する。
おける演算制御の内容を図7乃至図16の命令実行タイ
ミングチャートを参照しながら説明する。本実施例のマ
イクロコンピュータ1は、IF,ID,EX,MA,W
B/DSPステージの5段パイプライン動作を行なって
いる。IFは命令フェッチステージ、IDは命令デコー
ドステージ、EXは演算実行ステージ、MAはメモリア
クセスステージ、WB/DSPはメモリから取得したデ
ータをCPUコア2のレジスタに取り込むステージまた
はDSPエンジン3がDSP命令を実行するステージで
ある。各図においてInstruction/Data Accessは内部バ
スIAB,IDBを介するメモリアクセスを意味し、ア
クセス対象は内蔵メモリ4〜7の他にマイクロコンピュ
ータ1の外部メモリも可能にされる。X,Y Mem. Access
は内部バスXAB,XDBやYAB,YDBを介するメ
モリアクセスを意味し、アクセス対象は内蔵メモリ4〜
7に限られる。Isnt.Fetchは命令レジスタ(IR)25
への命令フェッチタイミング、Fetch.Regは命令レジス
タ(IR)25、Source Data Outはソースデータ出
力、Destination Inはディスティネーションデータの入
力タイミング、Destination Registerはディスティネー
ションレジスタ、をそれぞれ意味する。PointerReg.は
ポインターレジスタ、Address Calc.はアドレス演算、D
ata Fetchはデータフェッチ、DSP Control signal Deco
rd Timingはデコーダ34によるDSP制御信号20の
デコードタイミングを意味する。
の実行タイムチャートを示す。ここではALU演算命令
として、ADD Rm, Rn を一例とする。
lock2の立ち上がりのタイミングに同期して、実行
すべき命令(ADD Rm, Rn )が格納されている
アドレスがアドレスバスIABに出力される。Instruct
ion/Data Mem. Accessでは、IFステージでメモリア
クセス動作が行われる。具体的にはクロック信号Clo
ck1の立ち上がりからクロック信号Clock2の立
ち上りの期間でアドレスバスIABで指定されたアドレ
スのデコードが行われ、IFステージのクロック信号C
lock2の立ち上がりから次のクロック信号Cloc
k1の立ち上がりの期間で命令アクセスが行われる。そ
のためIFステージのクロック信号Clock2の立ち
上がりからデータバスIDBに命令が出力される。デー
タバスIDBに出力された命令は、IDステージのクロ
ック信号Clock1の立ち上がりのタイミングに同期
して命令レジスタ(IR)25に取り込まれる。IDス
テージでは命令レジスタ(IR)25に取り込まれたデ
ータのデコードが行なわれる。EXステージのクロック
信号Clock1の立ち上がりのタイミングに同期し
て、ソースデータが格納されているレジスタがアクセス
され、CPUコア2の内部バスA1,B1にレジスタの
値が出力される。命令ADD Rm, Rnでは、Rmと
Rnに指定したレジスタがソースレジスタとされる。R
mとRnはCPUコア2の内部の任意のレジスタ(図3
では、レジスタ209内の任意のレジスタ、A0x,A
1x,Ix,A0y,A1y,Iy、RmおよびRnと
して指定可能)を指定できる。CPUコア2の内部バス
A1,B1に出力されたデータは算術論理演算器(AL
U)213で加算演算が行われ、その結果はCPUコア
2の内部バスC1に出力される。CPUコア2の内部バ
スC1に出力された演算結果は、EXステージのクロッ
ク信号Clock2の立ち上がりのタイミングに同期し
てディステネーションレジスタ(ディステネーションレ
ジスタは、ADDRm, Rn 命令でRnに指定したレ
ジスタとされる)に格納される。このように、CPUコ
ア2の内部のALU演算命令では、IF,ID,EXの
3段のパイプラインステージで命令実行動作が完了す
る。
読み込み動作のタイムチャートを示す。メモリからCP
Uコア2へのデータ読み込み動作命令の一例として、M
OV.L @Rm, Rnを例にとって動作説明をする。
命令フェッチ(IF)、命令デコード(ID)までの動
作は図7と同じなのでその部分の詳細な説明は省略す
る。
の立ち上がりのタイミングに同期して、アドレスポイン
タとなるレジスタのデータはCPUコア2の内部バスA
1に出力される。この例では、アドレスポインタとなる
レジスタは、Rmで指定したレジスタになる。Rmに指
定できるレジスタは、CPUコア2に含まれる任意のレ
ジスタ(図3では、Reg.に含まれる任意のレジス
タ、A0x,A1x,Ix,A0y,A1y,IyがR
mとして指定可能)である。CPUコア2の内部バスA
1に出力されたデータは、アドレスバッファ205に格
納され、EXステージのクロック信号Clock2の立
ち上がりのタイミングに同期してアドレスバスIABに
出力される。一方CPUコア2の内部バスA1に出力さ
れたデータは算術論理演算器(ALU)213で演算が
行なわれる。この場合、算術論理演算器(ALU)21
3は0加算演算を行なう。その結果はCPUコア2の内
部バスC1に出力される。CPUコア2の内部バスC1
に出力された演算結果は、EXステージのクロック信号
Clock2の立ち上がりのタイミングに同期してポイ
ンタレジスタ(この場合、Rmで指定されレジスタ)に
格納される。Instruction/Data Mem. Accessでは、MA
ステージのクロック信号Clock1の立ち上がりから
クロック信号Clock2の立ち上りの期間で、EXス
テージのクロック信号Clock2の立ち上がりのタイ
ミングに同期して、アドレスバスIABに出力したアド
レスのデコードが行なわれ、MAステージのクロック信
号Clock2の立ち上がりから次のクロック信号Cl
ock1の立ち上がりの期間でデータアクセスを行な
う。そのためMAステージのクロック信号Clock2
の立ち上がりからデータバスIDBにデータが出力され
る。データバスIDBに出力されたデータは、WB/D
SPステージのクロック信号Clock1の立ち上がり
のタイミングに同期してCPUコア2に取り込まれ、C
PUコア2の内部バスDWにデータが出力される。WB
/DSPステージのクロック信号Clock2の立ち上
がりのタイミングに同期してCPUコア2の内部バスD
W上のデータがディステネーションレジスタに格納され
て、動作を終了する。この例では、ディステネーション
レジスタはRnに指定したレジスタになる。Rnに指定
できるレジスタは、CPUコア2に含まれる任意のレジ
スタ(図3では、Reg.内の任意のレジスタ、A0
x,A1x,Ix,A0y,A1y,IyがRnとして
指定可能)である。以上のようにメモリからCPUコア
2へのデータ読み込み動作命令では、IF,ID,E
X,MA,WB/DSPの5段のパイプラインステージ
で命令実行動作が完了する。
書込み動作命令のタイムチャートを示す。CPUコア2
からメモリへのデータ書込み動作命令の一例として、M
OV.L Rm, @Rnを例にとって動作を説明する。
命令フェッチ(IF)、命令デコード(ID)の動作は
図8と同じなので、その部分の詳細な説明は省略する。
の立ち上がりのタイミングに同期して、アドレスポイン
タとなるレジスタのデータがCPUコア2の内部バスA
1に出力される。この例では、アドレスポインタとなる
レジスタは、Rnで指定したレジスタになる。Rnに指
定できるレジスタは、CPUコア2に含まれる任意のレ
ジスタ(図3では、Reg.内の任意のレジスタ,A0
x,A1x,Ix,A0y,A1y,IyがRnとして
指定可能)である。CPUコア2の内部バスA1に出力
されたデータは、アドレスバッファ205に格納され、
EXステージのクロック信号Clock2の立ち上がり
のタイミングに同期してアドレスバスIABに出力され
る。一方CPUコア2の内部バスA1に出力されたデー
タは算術論理演算器(ALU)213で演算が行われ
る。この場合、算術論理演算器(ALU)213は0加
算演算を行なう。その演算結果はCPUコア2の内部バ
スC1に出力される。CPUコア2の内部バスC1に出
力された演算結果は、EXステージのクロック信号Cl
ock2の立ち上がりのタイミングに同期してポインタ
レジスタ(この場合、Rnで指定したレジスタ)に格納
される。命令 MOV.L Rm, @Rnの場合、EXス
テージでアドレス演算を行なうと同時に、メモリへ書き
込むべきデータをデータバスIDBに出力する準備が行
われる。EXステージのクロック信号Clock1の立
ち上がりのタイミングに同期して、メモリへ書き込むべ
きデータが格納されているレジスタよりCPUコア2の
内部バスDRへ値が出力される。この例の場合、メモリ
へ書き込むべきデータが格納されているレジスタは、R
mで指定したレジスタになる。Rmに指定できるレジス
タは、CPUコア2に含まれる任意のレジスタ(図3で
は、Reg.内の任意のレジスタ,A0x,A1x,I
x,A0y,A1y,IyがRmとして指定可能)であ
る。CPUコア2の内部バスDRへ出力された値は、M
Aステージのクロック信号Clock2の立ち上がりの
タイミングに同期してデータバスIDBに出力される。
Instruction/Data Mem. Accessでは、MAステージのク
ロック信号Clock1の立ち上がりからクロック信号
Clock2の立ち上りの期間で、EXステージのクロ
ック信号Clock2の立ち上がりのタイミングに同期
してアドレスバスIABに出力されたアドレスのデコー
ドが行なわれ、MAステージのクロック信号Clock
2の立ち上がりのタイミングに同期してデータバスID
Bに出力されたデータが書込まれて、動作を終了する。
メモリからCPUコア2へのデータ書込み動作命令で
は、CPUコア2としてはデータバスIDBにデータを
出力した時点で動作が終了するので、IF,ID,E
X,MAの4段のパイプラインステージで動作が完了す
る。
ムチャートを示す。DSP命令の一例として、PADD
C Sx, Sy, Dz NOPX NOPY を例に
とって動作説明を行う。この命令は、DSPエンジン3
内のレジスタに格納されているデータの加算を行ない、
DSPエンジン3とX-ROM4やX-RAM6、及びY
-ROM5やY-RAM7との間でのデータ転送は行なわ
ないという命令である。
の部分の詳細な説明は省略する。IDステージでは、ク
ロック信号Clock1からクロック信号Clock2
の期間でCPUコア2で取り込んだ命令コードのデコー
ドが行なわれ、IDステージのクロック信号Clock
2のタイミングで命令コードをデコードした結果がDS
P制御信号20としてDSPエンジン3に出力される。
DSPエンジン3では、CPUコア2よりDSP制御信
号20を入力すると、MAステージまでの期間で入力し
たDSP制御信号20をデコードする。WB/DSPス
テージのクロック信号Clock1の立ち上がりのタイ
ミングに同期して、ソースデータが格納されているレジ
スタがアクセスされ、DSPエンジン3の内部バスA
2,B2にレジスタの値が出力される。この例では、ソ
ースデータが格納されているレジスタは、SxおよびS
yで指定したレジスタになる。SxおよびSyに指定で
きるレジスタは、DSPエンジン3内部の任意のレジス
タ(図4では、Reg.内の任意のレジスタがSxおよ
びSyとして指定可能)である。DSPエンジン3の内
部バスA2,B2に出力されたデータは算術論理演算器
(ALU)302で演算が行なわれ、その結果はDSP
エンジン3の内部バスC2に出力される。DSPエンジ
ン3の内部バスC2に出力された演算結果は、WB/D
SPステージのクロック信号Clock2の立ち上がり
のタイミングに同期してディステネーションレジスタに
格納される。この例では、ディステネーションレジスタ
は、Dzで指定されたレジスタになる。Dzに指定でき
るレジスタは、DSPエンジン3内部の任意のレジスタ
(図4では、Reg.内の任意のレジスタ)である。以
上のようなDSP命令では、IF,ID,EX,MA,
WB/DSPの5段のパイプラインステージで動作が完
了する。
ンジン3へのデータ読み込み動作命令のタイムチャート
を示す。X,Yメモリ4〜7からDSPエンジン3への
データ読み込み動作命令の一例として、MOVX.W
@Ax, Dx MOVY.W @Ay, Dy を例に
とってその動作を説明する。この命令は、AxおよびA
yで指定したアドレスに格納されているデータをDxお
よびDyで指定したレジスタに転送するという命令であ
る。命令フェッチ、命令デコードの動作は図10と同じ
なのでその部分の詳細な説明は省略する。
へのデータ読み込み動作命令を実行する場合、アクセス
するメモリのアドレスはCPUコア2が生成する。その
ためEXステージにおけるクロック信号Clock1の
立ち上がりのタイミングに同期して、アクセスすべきア
ドレスが格納されているレジスタがアクセスされ、CP
Uコア2の内部バスA1〜A2にレジスタの値が出力さ
れる。この例では、アクセスすべきアドレスが格納され
ているレジスタは、Ax,Ayで指定したレジスタにな
る。Axに指定できるレジスタはCPUコア2に含まれ
るレジスタA0x,A1xであり、Ayに指定できるレ
ジスタはCPUコア2に含まれるレジスタA0y,A1
yである。CPUコア2の内部バスA1〜A2に出力さ
れたデータは、メモリアドレスバッファ(MABX,M
ABY)に格納され、EXステージのクロック信号Cl
ock2の立ち上がりのタイミングに同期してアドレス
バスXAB,YABに出力される。一方CPUコア2の
内部バスA1〜A2に出力されたデータはALU21
3,PAU212でアドレス演算が行なわれる。この場
合、ALU213およびPAU212は0加算演算を行
なう。その演算結果はCPUコア2の内部バスC1及び
C2に出力される。CPUコア2の内部バスC1及びC
2に出力された演算結果は、EXステージのクロック信
号Clock2の立ち上がりのタイミングに同期してポ
インタレジスタ(この場合、AxおよびAyで指定した
レジスタ)に格納される。X,Yメモリ4〜7では、M
Aステージのクロック信号Clock1の立ち上がりか
らクロック信号Clock2の立ち上りの期間で、EX
ステージクロック信号Clock2の立ち上がりのタイ
ミングでアドレスバスXAB,YABに出力されたアド
レスのデコードが行なわれ、MAステージのクロック信
号Clock2の立ち上がりから次のクロック信号Cl
ock1の立ち上がりの期間でデータアクセスが行なわ
れる。そのためMAステージのクロック信号Clock
2の立ち上がりからデータバスXDB,YDBにデータ
が出力される。データバスXDB,YDBに出力された
データは、WB/DSPステージのクロック信号Clo
ck1の立ち上がりのタイミングに同期してDSPエン
ジン3に取り込まれ、DSPエンジン3の内部バスD
1,D2にデータが供給される。WB/DSPステージ
のクロック信号Clock2の立ち上がりのタイミング
に同期してDSPエンジン3の内部バスD1,D2上の
データがディステネーションレジスタに格納されて、動
作を終了する。この例では、ディステネーションレジス
タはDxおよびDyに指定したレジスタになる。Dxに
指定できるレジスタは、DSPエンジン3に含まれるレ
ジスタX0,X1であり、Dyに指定できるレジスタ
は、DSPエンジン3に含まれるレジスタY0,Y1で
ある。以上のようにメモリからDSPエンジン3へのデ
ータ読み込み動作命令では、IF,ID,EX,MA,
WB/DSPの5段のパイプラインステージで動作が完
了する。斯る並列的なデータ読込み動作は、相互に独立
したバスXAB,XDBとYAB,YDBとを介してC
PUコア2がX,Yメモリ4〜7をアクセスできるよう
になっているからである。
リ6,7へのデータ書込み動作のタイムチャートを示
す。DSPエンジン3からX,Yメモリ6,7へのデー
タ書込み動作命令の一例として、MOVX.W Da,
@Ax MOVY.W Da, @Ay を例にとっ
てその動作を説明をする。この命令は、Daで指定した
レジスタに格納されているデータをAxおよびAyで指
定したレジスタに格納されているアドレスに転送すると
いう命令である。
1と同じなのでその部分の詳細な説明は省略する。DS
Pエンジン3からX,Yメモリ6,7へのデータ書込み
動作命令を実行する場合、アクセスされるべきメモリア
ドレスはCPUコア2が生成する。そのためEXステー
ジにおけるクロック信号Clock1の立ち上がりのタ
イミングに同期して、アクセスすべきアドレスが格納さ
れているレジスタがアクセスされ、CPUコア2の内部
バスA1〜A2にレジスタの値が出力される。この例で
は、アクセスすべきアドレスが格納されているレジスタ
は、Ax,Ayで指定したレジスタになる。Axに指定
できるレジスタはCPUコア2に含まれるレジスタA0
x,A1xであり、Ayに指定できるレジスタはCPU
コア2に含まれるレジスタA0y,A1yである。CP
Uコア2の内部バスA1,A2に出力されたデータは、
メモリアドレスバッファ(MABX,MABY)に格納
され、EXステージのクロック信号Clock2の立ち
上がりのタイミングに同期してアドレスバスXAB,Y
ABに出力される。
の立ち上がりのタイミングに同期して、転送されるべき
データが格納されているDSPエンジン3の内部レジス
タがアクセスされ、DSPエンジン3の内部バスD1,
D2に当該レジスタの値が出力され、それらがメモリデ
ータバッファ(MDBX,MDBY)に格納される。こ
の例の場合、転送されるべきデータが格納されているD
SPエンジン3の内部レジスタはDaで指定されたレジ
スタになる。Daで指定できるレジスタは、DSPエン
ジン3に含まれるレジスタA0及びA1である。MAス
テージのクロック信号Clock2の立ち上がりのタイ
ミングに同期して、メモリデータバッファ(MDBX,
MDBY)に格納されたデータはデータバスXDB,Y
DBに出力される。X,Yメモリ6,7では、MAステ
ージのクロック信号Clock1の立ち上がりからクロ
ック信号Clock2の立ち上りの期間で、EXステー
ジクロック信号Clock2の立ち上がりのタイミング
でアドレスバスXAB,YABに出力されたアドレスの
デコードが行なわれ、MAステージのクロック信号Cl
ock2の立ち上がりから次のクロック信号Clock
1の立ち上がりの期間でデータアクセスが行なわれる。
そのため、データバスXDB,YDBに出力されたデー
タはMAステージのクロック信号Clock2の立ち上
がりから書込まれる。以上のようにDSPエンジン3か
らX,Yメモリ6,7へのデータ書込み動作命令では、
IF,ID,EX,MAの4段のパイプラインステージ
で動作が完了する。斯る並列的なデータ書込み動作は、
相互に独立したバスXAB,XDBとTAB,YDBと
を介してCPUコア2がX,Yメモリ4,6をアクセス
できるようになっているからである。
データ読み込み動作のタイムチャートを示す。メモリか
らDSPエンジン3へのデータ読み込み動作命令の一例
として、MOVS.L @As, Ds を例にとってそ
の動作を説明をする。この命令は、Asで指定したアド
レスに格納されているデータをDsで指定したレジスタ
に転送するという命令である。
4〜7からDSPエンジン3へのデータ読み込み動作と
同じである。図11と図13の違いは、図11では対象
となるメモリがX,Yメモリ4〜7なのでXバス,Yバ
スを使用するのに対し、図13では対象となるメモリは
マイクロコンピュータ1がサポートする空間に接続され
ているメモリなので、バスIAB,IDBを使用すると
いうことである。EXステージクロック信号Clock
1の立ち上がりのタイミングに同期して、アクセスすべ
きアドレスを保有しているレジスタがアクセスされ、C
PUコア2の内部バスA1にレジスタの値が出力され
る。この例では、アクセスすべきアドレスが格納されて
いるレジスタは、Asで指定したレジスタになる。As
で指定可能なレジスタはCPUコア2に含まれるRe
g.内の任意のレジスタである。CPUコア2の内部バ
スA1に出力されたデータは、アドレスバッファ205
に格納され、EXステージのクロック信号Clock2
の立ち上がりのタイミングに同期してアドレスバスIA
Bに出力される。一方CPUコア2の内部バスA1に出
力されたデータは算術論理演算器(ALU)213でア
ドレス演算が行なわれる。この場合、算術論理演算器
(ALU)213は0加算演算を行なう。その演算結果
はCPUコア2の内部バスC1に出力される。CPUコ
ア2の内部バスC1に出力された演算結果は、EXステ
ージのクロック信号Clock2の立ち上がりのタイミ
ングに同期してポインタレジスタ(この場合、Asで指
定したレジスタ)に格納される。アクセス対象となるメ
モリでは、MAステージのクロック信号Clock1の
立ち上がりからクロック信号Clock2の立ち上りの
期間で、EXステージクロック信号Clock2の立ち
上がりのタイミングでアドレスバスIABに出力された
アドレスのデコードが行なわれ、MAステージのクロッ
ク信号Clock2の立ち上がりから次のクロック信号
Clock1の立ち上がりの期間でデータアクセスが行
なわれる。そのためMAステージのクロック信号Clo
ck2の立ち上がりからデータバスIDBにデータが出
力される。データバスIDBに出力されたデータは、W
B/DSPステージのクロック信号Clock1の立ち
上がりのタイミングに同期してDSPエンジン3に取り
込まれ、当該データがDSPエンジン3の内部バスD1
に供給される。WB/DSPステージのクロック信号C
lock2の立ち上がりのタイミングに同期してDSP
エンジン3の内部バスD1上のデータがディステネーシ
ョンレジスタに格納されて、動作を終了する。この例で
は、ディステネーションレジスタはDsに指定したレジ
スタになる。Dsに指定できるレジスタは、DSPエン
ジン3内の任意のレジスタである。以上のようにメモリ
からDSPエンジン3へのデータ読み込み動作命令で
は、IF,ID,EX,MA,WB/DSPの5段のパ
イプラインステージで動作が完了する。
データ書込み動作のタイムチャートを示す。DSPエン
ジン3からメモリへのデータ書込み動作命令の一例とし
て、MOVS.L Ds, @Asを例にとってその
動作を説明する。この命令は、Dsで指定したレジスタ
に格納されているデータをAsで指定したアドレスに転
送するという命令である。
3からX,Yメモリへのデータ書込み動作と同じであ
る。図12と図14の違いは、図12では対象となるメ
モリがX,YメモリであるのでバスXAB,XDB、バ
スYAB,YDBを使用するのに対し、図14では対象
となるメモリがマイクロコンピュータ1がサポートする
空間に接続されているメモリなので、バスIAB,ID
Bを使用するということである。
立ち上がりのタイミングに同期して、転送先のアドレス
を保有しているレジスタがアクセスされ、CPUコア2
の内部バスA1にレジスタの値が出力される。この例で
は、アクセスすべきアドレスが格納されているレジスタ
は、Asで指定したレジスタになる。Asで指定可能な
レジスタはCPUコア2に含まれるレジスタReg.内
の任意のレジスタである。CPUコア2の内部バスA1
に出力されたデータは、アドレスバッファ205に格納
され、EXステージのクロック信号Clock2の立ち
上がりのタイミングに同期してアドレスバスIABに出
力される。一方CPUコア2の内部バスA1に出力され
たデータは算術論理演算器(ALU)213でアドレス
演算が行なわれる。この場合、算術論理演算器(AL
U)213は0加算演算を行なう。その演算結果はCP
Uコア2の内部バスC1に出力される。CPUコア2の
バスC1に出力された演算結果は、EXステージのクロ
ック信号Clock2の立ち上がりのタイミングに同期
してポインタレジスタ(この場合、Asで指定したレジ
スタ)に格納される。
の立ち上がりのタイミングに同期して、転送すべきデー
タを格納しているDSPエンジン3内部のレジスタの値
がDSPエンジン3の内部バスD1に出力され、メモリ
データバッファ(MDBI)に格納される。MAステー
ジのクロック信号Clock2の立ち上がりのタイミン
グに同期して、メモリデータバッファ(MDBI)に格
納されたデータがデータバスIDBに出力される。この
例では、転送すべきデータを格納しているDSPエンジ
ン3内部のレジスタはDsに指定したレジスタになる。
Dsに指定できるレジスタは、DSPエンジン3内の任
意のレジスタである。アクセス対象となるメモリでは、
MAステージのクロック信号Clock1の立ち上がり
からクロック信号Clock2の立ち上りの期間で、E
Xステージクロック信号Clock2の立ち上がりのタ
イミングでアドレスバスIABに出力したアドレスのデ
コードが行なわれ、MAステージのクロック信号Clo
ck2の立ち上がりから次のクロック信号Clock1
の立ち上がりの期間でデータアクセスが行なわれる。そ
のためMAステージのクロック信号Clock2の立ち
上がりタイミングで、DSPエンジン3より出力された
データがメモリに書込まれる。以上のようにDSPエン
ジン3から外部メモリへのデータ書込み動作命令では、
IF,ID,EX,MAの4段のパイプラインステージ
で動作が完了する。
DD Sx, Sy, Du PMUL Se, Sf, D
g MOVX.W @Ax, Dx MOVY.W @
Ay, Dy を例にとり、図15を用いてその動作説明
をする。この命令は、DSPエンジン3内のレジスタに
格納されているデータの加算、乗算を行ない、X-RO
M4やX-RAM6及びY-ROM5やY-RAM7から
DSPエンジン3へのデータ転送を行なうという命令で
あり、図10と図11の動作を合わせた動作である。命
令フェッチ、命令デコードの動作は図10と同じなので
その部分の詳細な説明は省略する。
ータ読み込み動作命令を実行する場合、アクセスすべき
メモリのアドレスはCPUコア2が生成する。そのため
EXステージにおけるクロック信号Clock1の立ち
上がりのタイミングに同期して、アクセスすべきアドレ
スを保有するレジスタがアクセスされ、CPUコア2の
内部バスA1,A2にレジスタの値が出力される。この
例では、アクセスすべきアドレスが格納されているレジ
スタは、Ax,Ayで指定したレジスタになる。Axに
指定できるレジスタはCPUコア2に含まれるレジスタ
A0x,A1xであり,Ayに指定できるレジスタはC
PUコア2に含まれるレジスタA0y,A1yである。
CPUコア2の内部バスA1,A2に出力されたデータ
は、メモリアドレスバッファ(MABX,MABY)に
格納され、EXステージのクロック信号Clock2の
立ち上がりのタイミングに同期してアドレスバスXA
B,YABに出力される。一方CPU内部バスA1,A
2に出力されたデータはALU213,PAU212で
アドレス演算が行なわれ(この場合、ALU213およ
びPAU212は0加算演算を行なう)、その結果はC
PUコア2の内部バスC1及びC2に出力される。CP
Uコア2の内部バスC1及びC2に出力された演算結果
は、EXステージのクロック信号Clock2の立ち上
がりのタイミングに同期してポインタレジスタ(この場
合、AxおよびAyで指定したレジスタ)に格納され
る。X,Yメモリでは、MAステージのクロック信号C
lock1の立ち上がりからクロック信号Clock2
の立ち上りの期間で、EXステージのクロック信号Cl
ock2の立ち上がりのタイミングでアドレスバスXA
B,YABに出力されたアドレスのデコードが行なわ
れ、MAステージのクロック信号Clock2の立ち上
がりから次のクロック信号Clock1の立ち上がりの
期間でデータアクセスが行なわれる。そのためMAステ
ージのクロック信号Clock2の立ち上がりからデー
タバスXDB,YDBにデータが出力される。データバ
スXDB,YDBに出力されたデータは、WB/DSP
ステージのクロック信号Clock1の立ち上がりのタ
イミングに同期してDSPエンジン3に取り込まれ、D
SPエンジン3の内部バスD1,D2にデータが出力さ
れる。WB/DSPステージのクロック信号Clock
2の立ち上がりのタイミングに同期してDSPエンジン
3の内部バスD1,D2上のデータがディステネーショ
ンレジスタ(Distination Reg.)に格納されて、動作を
終了する。この例では、ディステネーションレジスタは
DxおよびDyに指定したレジスタになる。Dxに指定
できるレジスタは、DSPエンジン3内のX0,X1、
Dyに指定できるレジスタは、DSPエンジン3内のY
0,Y1である。
作も同時に行なわれる。WB/DSPステージのクロッ
ク信号Clock1の立ち上がりのタイミングに同期し
て、ソースデータが格納されているレジスタがアクセス
され、DSPエンジン3の内部バスA1,A2、B1,
B2にレジスタの値が出力される。この例では、ソース
データが格納されているレジスタは、ADD(加算)動
作の場合はSxおよびSyで指定したレジスタになり、
MUL(乗算)動作の場合はSeおよびSfで指定したレ
ジスタになる。Sx,Sy,Se及びSfに指定できるレ
ジスタは、DSPエンジン3内部の任意のレジスタであ
る。DSPエンジン3の内部バスA1,B1に出力され
たデータはMAC304で乗算演算が行なわれ、その結
果はDSPエンジン3内部バスC1に出力される。DS
Pエンジン3の内部バスA2,B2に出力されたデータ
はALU302で加算演算が行なわれ、その結果はDS
Pエンジン3内部バスC2に出力される。DSPエンジ
ン3の内部バスC1およびC2に出力された演算結果
は、WB/DSPステージのクロック信号Clock2
の立ち上がりのタイミングに同期してディステネーショ
ンレジスタに格納される。この例のディステネーション
レジスタは、ADD動作の場合はDu,MUL動作の場
合はDgで指定したレジスタになる。DuおよびDgに指
定できるレジスタは、DSPエンジン3内部の任意のレ
ジスタである。
スタに格納されているデータの加算、乗算を行ない、X
-ROM4やX-RAM6及びY-ROM5やY-RAM7
からDSPエンジン3へのデータ転送を行なう命令で
は、IF,ID,EX,MA,WB/DSPの5段のパ
イプラインステージで動作が完了する。
A1, X0, A1 MOVX.W @R4, X1 MO
VY.W @R6, Y0 Inst2: ADD R8, R9 Inst3: ADD R10, R11 Inst4: ADD R12, R13 の4つの連続する命令を例にとり、図16を用いてその
動作説明をする。この4つの命令は、アドレスバスIA
B,XAB、及びYABを同時に使用することで、同一
クロックサイクルに異なる動作を実現する例である。I
nst1からInst4までの命令動作は、図7及び図
15と同じなのでその部分の詳細な説明は省略する。
st1の命令フェッチが行われる。Inst1のIDス
テージ時に、Inst2ではIFステージになるため、
命令フェッチが行われる。
モリへのアクセスを行うためのアドレス演算を行ってい
るときに、Inst2ではIDステージのため命令デコ
ードを行い、Inst3ではIFステージのため命令フ
ェッチを行う。
ージで演算されたアドレスがアドレスバスXAB、およ
びYABに出力され(実際にアドレスを出力するタイミ
ングは、EXステージのクロック信号Clock2の立
ち上がりのタイミングからである)、データバスXDB
及びYDBよりデータが取り込まれる。このときIns
t2ではEXステージのためR8とR9のADD演算を
行って動作が完了され、Inst3はIDステージのた
め命令デコードを行う。そしてInst4はIFステー
ジのため、Inst4が格納されているアドレスをアド
レスバスIABへ出力する。実際にアドレスバスIAB
へ出力するタイミングは、Inst4のIFステージの
半サイクル前のクロック信号Clock2の立ち上がり
のタイミングからである。このタイミングは、Inst
1においてアドレスバスXAB,YABにアドレスを出
力するタイミング(EXステージの後半及びMAステー
ジの前半)と同じタイミングである。すなわちアドレス
バスXAB及びYABはデータ転送のために使用され、
アドレスバスIABでは命令フェッチのために使用され
る。マイクロコンピュータ1では、それぞれCPUコア
2に接続された内部アドレスバスIAB,XAB,YA
Bと内部データバスIDB,XDB,YDBがあるため
に、当該3種類の内部バスを使用して同一クロックサイ
クルで異なるメモリアクセス動作を実行することが可能
である。
ジにおいてDSP演算を行って動作を完了し、Inst
2はすでに動作完了、Inst3はEXステージのため
R10とR11のADD演算を行って動作完了し、In
st4ではIDステージのため命令デコードを行う。
ージのみが行われ、R12とR13のADD演算を行い
動作を完了する。
内蔵メモリは、DSPエンジン3による積和演算を考慮
してYメモリ5,7とXメモリ4,6に2面化され、C
PUコア2がYメモリ5,7とXメモリ4,6を内部バ
スXAB,XDBと内部バスYAB,YDBによってそ
れぞれ並列的にアクセス可能にされている。これによ
り、内蔵メモリ4〜7から2個のデータを同時にDSP
エンジン3に転送可能にされる。さらに、内部バスXA
B,XDBと内部バスバスYAB,YDBは、外部にイ
ンタフェースされる内部バスIAB,IDBとも個別化
されているので、CPUコア2はXメモリ4,6とYメ
モリ5,7のアクセスに並行して外部メモリアクセスも
可能にされる。このように、それぞれCPUコア2に接
続された3種類のアドレスバスIAB,XAB,YAB
及びデータバスIDB,XDB,YDBがあるために、
当該3種類の内部バスを使用して同一クロックサイクル
で異なるメモリアクセス動作を実行することが可能であ
る。したがって、プログラムやデータが外部メモリに存
在する場合にも容易に対応して演算処理の高速化を実現
できる。
々をRAMとROMから構成することにより、マイクロ
コンピュータの使い勝手を更に向上させることができ
る。
6とYメモリ5,7に2面化され、2面化された各メモ
リはROMとRAMを供え、RAMをデータメモリ、R
OMをプログラムメモリとすることにより、データメモ
リとプログラムメモリの分離も可能になり、DSPエン
ジン3に2個のデータを並列的に転送し、また、命令フ
ェッチ、データ転送、及び演算を並列パイプライン処理
にて能率的に行うことができる。
00を備えることにより、CPUコア2における積和演
算などの繰返し演算のためのアドレス生成を高速化する
ことができる。
が”0000”〜”1110”までの空間に命令が割り
当てられている。DSP命令は、命令コードの最上位4
ビットが”1111”に全て割り当てられている。さら
に命令コードの最上位6ビットが”111100”及
び”111101”の空間に割り当てられた命令は、D
SP命令でも16ビット長の命令コードになっている。
命令コードの最上位6ビットが”111110”の命令
は、32ビット長の命令コードになっている。命令コー
ドの最上位6ビットが”111111”の空間には命令
を割り当てておらず、未使用領域となっている。このよ
うに、最大32ビットの命令に対するコード割り当てに
上記のような規則を設けることにより、命令コードの最
上位側6ビットをデコードすれば、当該命令がCPU命
令であるか、16ビット長のDSP命令であるか、32
ビット長のDSP命令であるかを、小さな論理規模のデ
コーダで判定することができ、常に32ビット全部を一
度にデコードすることを要しない。
ェッチタイミングの後には、まだ処理されていない命令
コードデータが命令レジスタ25にセットされ、このと
き、実行されるべき命令が、16ビットCPU命令、1
6ビットDSP命令又は32ビットDSP命令の何れで
あっても、その上位側16ビットを必ず第1のデコード
回路240に供給することができる。
ードは命令レジスタ25における上位領域UIRにセッ
トされ、Aフィールドと同一のフォーマットを有する1
6ビットDSP命令も上位領域UIRにセットされる。
したがって、その何れにおいても、CPUコア2は、必
要なアドレス演算及びデータフェッチに必要なデータパ
スの選択を同様に行うことができる。すなわち、32ビ
ットDSP命令を実行するためのデータフェッチと16
ビットDSP命令を実行するためのデータフェッチとの
ためにデコード回路240、241を共通化でき、この
点においても、マイクロコンピュータ1の論理規模を縮
小することができる。
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えばC
PU命令、16ビットDSP命令、32ビットDSP命
令の識別は命令の最上位6ビットを利用することに限定
されず、命令コードの数に応じて増減できる。また、命
令レジスタに対する下位16ビットを上位へシフトさせ
る機能は別の機能に置き換え可能である。また、CPU
コアやDSPエンジンに含まれるレジスタ本数や演算器
の種類は上記実施例に限定されず適宜変更可能である。
また、メモリの数を2個に限定せずに増加させることが
可能である。そしてメモリの数に合わせてメモリに接続
されるアドレスバス、データバスの本数を増加させるこ
とは可能である。例えば、X,Yメモリの他に新たにZ
メモリを設ける。それに合わせてCPUとZメモリの間
にアドレスバスZAB,DSPエンジンとZメモリの間
にデータバスZDBを接続する。このような構成にすれ
ば、積和演算時にX,YメモリからデータをDSPエン
ジンに取り込むだけでなく、現在実行中の命令以前に演
算終了しているデータをZバスを介してZメモリ回路に
同時に書き込むことが可能となる。1つの命令で演算デ
ータの取り込み、メモリへの書き込みが可能となるので
マイクロコンピュータ全体のスループットがさらに向上
する。本発明は、移動体通信機器における情報の圧縮伸
張処理やフィルタリング処理、サーボ制御、プリンタに
おける画像処理等に適用される機器組み込み制御用マイ
クロコンピュータとしての利用に最適である。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
処理プロセッサによる積和演算を考慮して第1のメモリ
と第2のメモリに2面化され、第3のバスと第2のバス
によってそれぞれ並列的にアクセス可能にされているか
ら、セントラルプロセッシングユニットは内蔵メモリか
ら2個のデータを同時にディジタル信号処理ユニットに
転送することができる。
にインタフェースされる第1のバスとも個別化されてい
るので、セントラルプロセッシングユニットは第2のメ
モリと第1のメモリのアクセスに並行して外部メモリア
クセスすることができる。
シングユニットに接続された第1乃至第3の3種類のア
ドレスバス及びデータバスがあるために、当該3種類の
内部バスを使用して同一クロックサイクルで異なるメモ
リアクセス動作を実行することができるので、プログラ
ムやデータが外部メモリに存在する場合にも容易に対応
して演算処理の高速化を実現できる。
のメモリに2面化され、2面化された各メモリはROM
とRAMを供え、RAMをデータメモリ、ROMをプロ
グラムメモリとすることにより、データメモリとプログ
ラムメモリの分離も可能になり、ディジタル信号処理ユ
ニットに2個のデータを並列的に転送し、また、命令フ
ェッチ、データ転送、及び演算を並列パイプライン処理
にて能率的に行うことができる。
ニットと共にディジタル信号処理ユニットを一つのLS
Iに搭載したときにディジタル信号処理の高速化を実現
できる。
に対し、命令コードの一部をデコードすることによって
当該命令がCPU命令であるか、16ビット長のDSP
命令であるか、32ビット長のDSP命令であるかを識
別可能に命令コードを割り当てることにより、小さな論
理規模のデコーダで命令の種別を判定することができ、
常に32ビット全部を一度にデコードすることを要しな
い。したがって、セントラルプロセッシングユニットと
共にディジタル信号処理ユニットを一つのLSIに搭載
したとき、その物理的な規模の増大を極力抑えることが
できる。
ィジタル信号処理ユニットとの間でのデータ転送を当該
セントラルプロセッシングユニットに対して規定する第
1のコード領域(図18に例示される16ビットDSP
命令のビット9〜ビット0)を有する第1フォーマット
の命令と、前記第1のコード領域と同一フォーマットの
第2のコード領域(図20、図21に例示される32ビ
ットのDSP命令のAフィールド)を有すると共に、当
該第2のコード領域で規定された転送データを用いた演
算処理をディジタル信号処理ユニットに対して規定する
第3のコード領域(図20、図21に例示される32ビ
ットのDSP命令のBフィールド)を有する第2フォー
マットの命令とを採用することにより、第1及び第2フ
ォーマットの夫々の命令を実行する手段は、第1のコー
ド領域と第2のコード領域に対して共通のデコード論理
を持つデコード手段を採用でき、この点においても、マ
イクロコンピュータの論理規模を縮小することができ
る。
の全体ブロック図である。
ある。
コアのブロック図である。
命令コードに関する一例説明図である。
ーダとの接続構成を示すブロック図である。
ムチャートである。
実行タイムチャートである。
実行タイムチャートである。
ートである。
読込む命令の実行タイムチャートである。
書込む命令の実行タイムチャートである。
命令の実行タイムチャートである。
命令の実行タイムチャートである。
ある。
例タイムチャートである。
図である。
エンジン3の内蔵レジスタとの間におけるデータ転送を
規定する16ビットDSP命令のコードを示す命令フォ
ーマット図である。
エンジン3の内蔵レジスタとの間におけるデータ転送を
規定する16ビットDSP命令のコードを示す命令フォ
ーマット図である。
した場合における当該フィールドのコードとそれに対応
されるにニーモニックなどを示す命令フォーマット図で
ある。
した場合における当該フィールドのコードとそれに対応
されるにニーモニックなどを示す命令フォーマット図で
ある。
Claims (10)
- 【請求項1】 セントラルプロセッシングユニットと、 前記セントラルプロセッシングユニットから選択的にア
ドレスが伝達される第1乃至第3のアドレスバスと、 前記第1のアドレスバス及び第2のアドレスバスに接続
され、セントラルプロセッシングユニットからのアドレ
スによってアクセスされる第1のメモリと、 前記第1のアドレスバス及び第3のアドレスバスに接続
され、セントラルプロセッシングユニットからのアドレ
スによってアクセスされる第2のメモリと、 前記第1及び第2のメモリと前記セントラルプロセッシ
ングユニットとに接続されてデータが伝達される第1の
データバスと、 前記第1のメモリに接続されてデータが伝達される第2
のデータバスと、 前記第2のメモリに接続されてデータが伝達される第3
のデータバスと、 前記第1のアドレスバスと第1のデータバスに接続され
た外部インタフェース回路と、 前記第1乃至第3のデータバスに接続されセントラルプ
ロセッシングユニットに同期動作されるディジタル信号
処理ユニットと、 前記ディジタル信号処理ユニットの動作を制御するDS
P制御信号をセントラルプロセッシングユニットからデ
ィジタル信号処理ユニットに伝達する制御信号線と、を
1チップに含んで半導体集積回路化されて成るものであ
ることを特徴とするマイクロコンピュータ。 - 【請求項2】 前記第1のメモリと第2のメモリは夫々
RAMとROMから成るものであることを特徴とする請
求項1記載のマイクロコンピュータ。 - 【請求項3】 前記セントラルプロセッシングユニット
は、アドレスレジスタの値を前記第2又は第3のアドレ
スバスに出力すると共に当該アドレスレジスタの値を更
新する動作を繰り返して、開始アドレスから終了アドレ
スに至るまでのアドレス生成を行うモジュロアドレス出
力部を更に備えて成るものであることを特徴とする請求
項2記載のマイクロコンピュータ。 - 【請求項4】 前記ディジタル信号処理プロセッサは、
前記第1乃至第3のデータバスと個別的にインタフェー
スされる第1乃至第3のデータバッファ手段と、夫々の
データバッファ手段に内部バスを介して接続可能にされ
た複数のレジスタ手段と、前記内部バスに接続された乗
算器及び算術論理演算器と、前記DSP制御信号をデコ
ードして前記データバッファ手段、乗算器、算術論理演
算器、及びレジスタ手段の動作を制御するデコーダと、
を含んで成るものであることを特徴とする請求項1乃至
3の何れか1項記載のマイクロコンピュータ。 - 【請求項5】 セントラルプロセッシングユニットと、
前記セントラルプロセッシングユニットによってアクセ
ス制御されるメモリと、前記メモリ及びセントラルプロ
セッシングユニットとの間でデータが伝達されセントラ
ルプロセッシングユニットに同期動作されるディジタル
信号処理ユニットとを、1チップに含んで半導体集積回
路化されたマイクロコンピュータであって、 前記セントラルプロセッシングユニットは、前記データ
バスを介してセントラルプロセッシングユニットのため
の16ビット固定長のCPU命令と、ディジタル信号処
理ユニットのための16ビット又は32ビット長のDS
P命令とをフェッチする命令レジスタと、前記命令レジ
スタにフェッチされた命令の一部の複数ビットに基づい
て、CPU命令とDSP命令とを識別し、識別結果に応
じて、前記ディジタル信号処理ユニットの動作制御のた
めのDSP制御信号とセントラルプロセッシングユニッ
トの動作制御のためのCPU制御信号とを生成するデコ
ーダと、を含んで成るものであることを特徴とするマイ
クロコンピュータ。 - 【請求項6】 前記デコーダは、命令レジスタの上位1
6ビットをデコードして前記CPUデコード信号及びD
SPデコード信号を生成する第1のデコード回路と、第
1のデコード回路にて32ビット長のDSP命令を識別
したときには命令レジスタの下位16ビットをコード化
した信号を、それ以外の命令を識別したときには出力が
無効であることを意味するコードを出力するコード変換
回路とを含み、前記DSPデコード信号及びコード変換
回路の出力をDSP制御信号とするものであることを特
徴とする請求項5記載のマイクロコンピュータ。 - 【請求項7】 セントラルプロセッシングユニットと、
前記セントラルプロセッシングユニットに同期動作され
るディジタル信号処理ユニットと、前記セントラルプロ
セッシングユニット及び前記ディジタル信号処理ユニッ
トが共通接続された内部バスとを含んで半導体集積回路
化されて成るマイクロコンピュータであって、 前記セントラルプロセッシングユニットは、ディジタル
信号処理ユニットとの間でのデータ転送を当該セントラ
ルプロセッシングユニットに対して規定する第1のコー
ド領域を有する第1フォーマットの命令と、前記第1の
コード領域と同一フォーマットの第2のコード領域を有
すると共に、当該第2のコード領域で規定された転送デ
ータを用いた演算処理をディジタル信号処理ユニットに
対して規定する第3のコード領域を有する第2フォーマ
ットの命令とを実行するための実行制御手段を備えて成
るものであることを特徴とするマイクロコンピュータ。 - 【請求項8】 前記第1フォーマットの命令及び第2フ
ォーマットの命令は、それが第1フォーマットか第2フ
ォーマットかを示すための第4コード領域を有するもの
であることを特徴とする請求項7記載のマイクロコンピ
ュータ。 - 【請求項9】 前記実行制御手段は、前記第1フォーマ
ットの命令と第2フォーマットの命令に共通に用いられ
る命令レジスタと、 前記命令レジスタにフェッチされた命令に含まれる前記
第1のコード領域と第4のコード領域又は第2のコード
領域と第4のコード領域をデコードするデコード手段
と、 そのデコード結果に従ってアドレス演算を行い、前記デ
ータ転送制御を行う実行手段と、を含んで成るものであ
ることを特徴とする請求項8記載のマイクロコンピュー
タ。 - 【請求項10】 前記命令レジスタは、前記第1のコー
ド領域と第4のコード領域又は第2のコード領域と第4
のコード領域の保持に共用される上位領域と、前記第3
のコード領域の保持に利用される下位領域とを有し、前
記デコード手段は、前記第4領域のデコード結果に基づ
いて、前記命令レジスタが第2フォーマットの命令を保
持したことを示す制御信号を出力し、その制御信号に基
づいて、前記下位領域から第3のコード領域のコードデ
ータを前記ディジタル信号処理ユニットに向けて供給す
る手段を含んで成るものであることを特徴とする請求項
9記載のマイクロコンピュータ。
Priority Applications (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW084113247A TW424192B (en) | 1995-05-02 | 1995-12-12 | Microcomputer |
TW085114414A TW432326B (en) | 1995-05-02 | 1995-12-12 | Microcomputer |
JP34744195A JP3727395B2 (ja) | 1995-05-02 | 1995-12-14 | マイクロコンピュータ |
US08/630,320 US5867726A (en) | 1995-05-02 | 1996-04-10 | Microcomputer |
DE69625256T DE69625256T2 (de) | 1995-05-02 | 1996-04-22 | Mikrorechner |
EP96302800A EP0741358B1 (en) | 1995-05-02 | 1996-04-22 | Microcomputer |
DE69614442T DE69614442T2 (de) | 1995-05-02 | 1996-04-22 | Mikrorechner |
EP00109692A EP1028382B1 (en) | 1995-05-02 | 1996-04-22 | Microcomputer |
KR1019960014100A KR100439367B1 (ko) | 1995-05-02 | 1996-05-01 | 마이크로컴퓨터 |
US09/229,147 US6434690B1 (en) | 1995-05-02 | 1999-01-11 | Microprocessor having a DSP and a CPU and a decoder discriminating between DSP-type instructions and CUP-type instructions |
US09/291,910 US6405302B1 (en) | 1995-05-02 | 1999-04-14 | Microcomputer |
US10/201,402 US7069423B2 (en) | 1995-05-02 | 2002-07-22 | Microcomputer |
KR1020040017948A KR100440841B1 (ko) | 1995-05-02 | 2004-03-17 | 마이크로컴퓨터 |
US11/354,622 US7363466B2 (en) | 1995-05-02 | 2006-02-14 | Microcomputer |
US12/075,131 US7558944B2 (en) | 1995-05-02 | 2008-03-07 | Microcomputer |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13290695 | 1995-05-02 | ||
JP7-132906 | 1995-05-02 | ||
JP34744195A JP3727395B2 (ja) | 1995-05-02 | 1995-12-14 | マイクロコンピュータ |
US09/229,147 US6434690B1 (en) | 1995-05-02 | 1999-01-11 | Microprocessor having a DSP and a CPU and a decoder discriminating between DSP-type instructions and CUP-type instructions |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002259483A Division JP3765782B2 (ja) | 1995-05-02 | 2002-09-05 | マイクロコンピュータ |
JP2005222618A Division JP3733137B2 (ja) | 1995-05-02 | 2005-08-01 | マイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0922379A true JPH0922379A (ja) | 1997-01-21 |
JP3727395B2 JP3727395B2 (ja) | 2005-12-14 |
Family
ID=27316604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34744195A Expired - Lifetime JP3727395B2 (ja) | 1995-05-02 | 1995-12-14 | マイクロコンピュータ |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP3727395B2 (ja) |
DE (1) | DE69614442T2 (ja) |
TW (2) | TW424192B (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990017021A (ko) * | 1997-08-21 | 1999-03-15 | 윤종용 | 마이크로 제어기와 디지탈 신호 처리기 통합 장치를구비한시스템 및 하드웨어 두 루프 실행 방법 |
JP2002544587A (ja) * | 1999-05-12 | 2002-12-24 | アナログ デバイセス インコーポレーテッド | デジタル信号プロセッサ計算コア |
US6643713B2 (en) | 1995-10-09 | 2003-11-04 | Hitachi, Ltd. | Apparatus has a microprocessor including DSP and a CPU integrated with each other as a single bus master |
US6697106B1 (en) | 1999-03-26 | 2004-02-24 | Fuji Photo Film Co., Ltd. | Apparatus for processing image signals representative of a still picture and moving pictures picked up |
US7333609B2 (en) | 2001-04-03 | 2008-02-19 | Mitsubishi Denki Kabushiki Kaisha | Encrypting apparatus |
KR100881196B1 (ko) * | 2007-05-29 | 2009-02-05 | 삼성전자주식회사 | 선택 가능한 두개의 비트 구조를 갖는 메모리 장치 및 이를구비하는 시스템 |
US8402260B2 (en) | 2008-06-20 | 2013-03-19 | Renesas Electronics Corporation | Data processing apparatus having address conversion circuit |
-
1995
- 1995-12-12 TW TW084113247A patent/TW424192B/zh not_active IP Right Cessation
- 1995-12-12 TW TW085114414A patent/TW432326B/zh not_active IP Right Cessation
- 1995-12-14 JP JP34744195A patent/JP3727395B2/ja not_active Expired - Lifetime
-
1996
- 1996-04-22 DE DE69614442T patent/DE69614442T2/de not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6643713B2 (en) | 1995-10-09 | 2003-11-04 | Hitachi, Ltd. | Apparatus has a microprocessor including DSP and a CPU integrated with each other as a single bus master |
US6993597B2 (en) | 1995-10-09 | 2006-01-31 | Renesas Technology Corp. | Terminal apparatus |
US8090398B2 (en) | 1995-10-09 | 2012-01-03 | Renesas Electronics Corporation | Terminal apparatus |
KR19990017021A (ko) * | 1997-08-21 | 1999-03-15 | 윤종용 | 마이크로 제어기와 디지탈 신호 처리기 통합 장치를구비한시스템 및 하드웨어 두 루프 실행 방법 |
US6697106B1 (en) | 1999-03-26 | 2004-02-24 | Fuji Photo Film Co., Ltd. | Apparatus for processing image signals representative of a still picture and moving pictures picked up |
JP2002544587A (ja) * | 1999-05-12 | 2002-12-24 | アナログ デバイセス インコーポレーテッド | デジタル信号プロセッサ計算コア |
US7333609B2 (en) | 2001-04-03 | 2008-02-19 | Mitsubishi Denki Kabushiki Kaisha | Encrypting apparatus |
KR100881196B1 (ko) * | 2007-05-29 | 2009-02-05 | 삼성전자주식회사 | 선택 가능한 두개의 비트 구조를 갖는 메모리 장치 및 이를구비하는 시스템 |
US8402260B2 (en) | 2008-06-20 | 2013-03-19 | Renesas Electronics Corporation | Data processing apparatus having address conversion circuit |
Also Published As
Publication number | Publication date |
---|---|
TW432326B (en) | 2001-05-01 |
TW424192B (en) | 2001-03-01 |
JP3727395B2 (ja) | 2005-12-14 |
DE69614442D1 (de) | 2001-09-20 |
DE69614442T2 (de) | 2002-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100440841B1 (ko) | 마이크로컴퓨터 | |
KR100266337B1 (ko) | 정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기 | |
KR20000076310A (ko) | 리스크 구조를 갖는 8 비트 마이크로콘트롤러 | |
KR100465388B1 (ko) | Risc 구조의 8비트 마이크로 제어기 | |
JP2001134436A (ja) | 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法 | |
EP1143333B1 (en) | Microprocessor for supporting reduction of program codes in size | |
JPH10222368A (ja) | データ処理装置 | |
US6948049B2 (en) | Data processing system and control method | |
JPH0922379A (ja) | マイクロコンピュータ | |
JP4073721B2 (ja) | データ処理装置 | |
JP3841820B2 (ja) | マイクロコンピュータ | |
US20030009652A1 (en) | Data processing system and control method | |
JP2000207210A (ja) | マイクロプロセッサ | |
JP2003131873A (ja) | マイクロコンピュータ | |
JP3733137B2 (ja) | マイクロコンピュータ | |
JP3760093B2 (ja) | マイクロコンピュータ | |
JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
JP4382076B2 (ja) | データ処理装置 | |
Papamichalis | Introduction to the TMS320 Family of Digital Signal Processors | |
Andreas et al. | ENSONIQ SIGNAL PROCESSOR 2 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050531 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050801 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050823 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050831 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050927 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050928 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081007 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091007 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091007 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101007 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101007 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20161007 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20161007 Year of fee payment: 11 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20161007 Year of fee payment: 11 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |