JPH07295808A - 複数のオンチップメモリバスを備えたデータ処理装置 - Google Patents
複数のオンチップメモリバスを備えたデータ処理装置Info
- Publication number
- JPH07295808A JPH07295808A JP7054664A JP5466495A JPH07295808A JP H07295808 A JPH07295808 A JP H07295808A JP 7054664 A JP7054664 A JP 7054664A JP 5466495 A JP5466495 A JP 5466495A JP H07295808 A JPH07295808 A JP H07295808A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- register
- address
- data
- microcomputer
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 398
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 28
- 125000004122 cyclic group Chemical group 0.000 abstract description 12
- 230000014759 maintenance of location Effects 0.000 abstract 1
- 230000002093 peripheral effect Effects 0.000 description 122
- 230000006870 function Effects 0.000 description 46
- 238000006073 displacement reaction Methods 0.000 description 27
- 238000007792 addition Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 23
- 238000012546 transfer Methods 0.000 description 20
- 230000008859 change Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 10
- 239000000872 buffer Substances 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- UOUBCIJIWDLRGM-UHFFFAOYSA-N 5,6-dibromo-4-nitro-2-piperidin-4-yl-1-propan-2-ylbenzimidazole Chemical compound N=1C2=C([N+]([O-])=O)C(Br)=C(Br)C=C2N(C(C)C)C=1C1CCNCC1 UOUBCIJIWDLRGM-UHFFFAOYSA-N 0.000 description 3
- 102220486715 Gap junction beta-2 protein_M34A_mutation Human genes 0.000 description 3
- 102220534365 OX-2 membrane glycoprotein_M30A_mutation Human genes 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 101710092886 Integrator complex subunit 3 Proteins 0.000 description 2
- 102100025254 Neurogenic locus notch homolog protein 4 Human genes 0.000 description 2
- 102220569751 Pyridoxal-dependent decarboxylase domain-containing protein 1_M38A_mutation Human genes 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】ユーザによってフレキシブルにデータ及びプロ
グラムストレージに区分可能な単一のメモリアドレスス
ペースを有するマイクロコンピュータを提供することに
ある。 【構成】デジタル信号処理用のアーキテクチャを有する
マイクロコンピュータである。このマイクロコンピュー
タはデータ演算を実行するための主要な演算論理ユニッ
トと、間接メモリアドレス値を計算するための一対の補
助演算論理ユニットとを有する。マイクロコンピュータ
内のメモリバスはデータ線と、2組のアドレス線とを有
する。補助演算論理ユニットの各々は、アドレス線の一
方に接続されている。補助演算論理ユニットは、以前の
メモリアドレス及びインデックス値から次のメモリアド
レスを計算することによって、そして循環アドレス内の
メモリアドレスブロックの制限に対して次のメモリアド
レスを比較することによって循環アドレス計算を実行で
きる。
グラムストレージに区分可能な単一のメモリアドレスス
ペースを有するマイクロコンピュータを提供することに
ある。 【構成】デジタル信号処理用のアーキテクチャを有する
マイクロコンピュータである。このマイクロコンピュー
タはデータ演算を実行するための主要な演算論理ユニッ
トと、間接メモリアドレス値を計算するための一対の補
助演算論理ユニットとを有する。マイクロコンピュータ
内のメモリバスはデータ線と、2組のアドレス線とを有
する。補助演算論理ユニットの各々は、アドレス線の一
方に接続されている。補助演算論理ユニットは、以前の
メモリアドレス及びインデックス値から次のメモリアド
レスを計算することによって、そして循環アドレス内の
メモリアドレスブロックの制限に対して次のメモリアド
レスを比較することによって循環アドレス計算を実行で
きる。
Description
【0001】
【産業上の利用分野】この発明はデータ処理装置に関
し、特にオンチップメモリのアクセスに関連したシング
ルチップマイクロコンピュータのアーキテクチャに関す
る。
し、特にオンチップメモリのアクセスに関連したシング
ルチップマイクロコンピュータのアーキテクチャに関す
る。
【0002】
【従来の技術】マイクロプロセッサ装置は、ゲーリー・
ブーン(Gary W. Boone)に与えられテキサス・インスッ
ルメント社に譲渡された米国特許第3,757,306 号に示さ
れているように、MOS/LSI技術で製造される単一
半導体集積回路、つまり、“チップ”内に通常含まれる
デジタルプロセッサ用の中央処理装置、つまり、CPU
である。ブーンの上記特許は、並列ALU、データ及び
アドレス用レジスタ命令レジスタ及び制御デコーダを含
むシングルチップ8ビットCPUを示しており、これら
の構成要素は、全てノイマン(von Neumann)型アーキテ
クチャを用い、データ、アドレス及び命令用の双方向性
並列バスを用いて相互接続されている。ゲーリー・ブー
ン及びマイケル・コッコラン(Mickael J. Cochran)に付
与され、テキサス・インスツルメント社に譲渡された米
国特許第4,074,351 号は、4ビット並列ALUとその制
御回路を含むシングルチップ“マイクロコンピュータ”
型装置を示しており、プログラム記憶用のオンチップR
OMとデータ記憶用のオンチップRAMを備え、ハーバ
ード(Harvard)型アーキテクチャで構成されている。通
常マイクロプロセッサという用語はプログラム及びデー
タ記憶用の外部メモリを用いた装置を指す一方、マイク
ロコンピュータという用語はプログラム及びデータ記憶
用のオンチップROMとRAMを備えた装置を指す。本
発明の説明では、“マイクロコンピュータ”という用語
は両方の装置を含めて用い、“マイクロプロセッサ”と
いう用語は主にオンチップROMを持たないマイクロコ
ンピュータを指すのに用いる。しかし、両用語は当該分
野でしばしば入れ換え可能に使われているので、本明細
書における一方または他方の使用はこの発明の特徴を制
限するものと理解すべきでない。
ブーン(Gary W. Boone)に与えられテキサス・インスッ
ルメント社に譲渡された米国特許第3,757,306 号に示さ
れているように、MOS/LSI技術で製造される単一
半導体集積回路、つまり、“チップ”内に通常含まれる
デジタルプロセッサ用の中央処理装置、つまり、CPU
である。ブーンの上記特許は、並列ALU、データ及び
アドレス用レジスタ命令レジスタ及び制御デコーダを含
むシングルチップ8ビットCPUを示しており、これら
の構成要素は、全てノイマン(von Neumann)型アーキテ
クチャを用い、データ、アドレス及び命令用の双方向性
並列バスを用いて相互接続されている。ゲーリー・ブー
ン及びマイケル・コッコラン(Mickael J. Cochran)に付
与され、テキサス・インスツルメント社に譲渡された米
国特許第4,074,351 号は、4ビット並列ALUとその制
御回路を含むシングルチップ“マイクロコンピュータ”
型装置を示しており、プログラム記憶用のオンチップR
OMとデータ記憶用のオンチップRAMを備え、ハーバ
ード(Harvard)型アーキテクチャで構成されている。通
常マイクロプロセッサという用語はプログラム及びデー
タ記憶用の外部メモリを用いた装置を指す一方、マイク
ロコンピュータという用語はプログラム及びデータ記憶
用のオンチップROMとRAMを備えた装置を指す。本
発明の説明では、“マイクロコンピュータ”という用語
は両方の装置を含めて用い、“マイクロプロセッサ”と
いう用語は主にオンチップROMを持たないマイクロコ
ンピュータを指すのに用いる。しかし、両用語は当該分
野でしばしば入れ換え可能に使われているので、本明細
書における一方または他方の使用はこの発明の特徴を制
限するものと理解すべきでない。
【0003】最近のマイクロコンピュータは主に2つの
種類、つまり汎用マイクロプロセッサと専用マイクロコ
ンピュータ/マイクロプロセッサに分けられる。モトロ
ーラ社製M68020等の汎用マイクロプロセッサは、
広範囲のタスクのどれでも実行するようにユーザによっ
てプログラム可能に設計されているため、パーソナルコ
ンピュータ等の中央処理装置としてよく使われている。
このような汎用マイクロプロセッサは、広範囲の演算及
び論理機能で優れた性能を有するが、勿論そうした機能
のうちの特定の一つのために特別に設計または適応され
ていない。これに対し専用マイクロコンピュータは、ユ
ーザがそのマイクロコンピュータを使うとしている特有
の所定演算及び論理機能のための性能改良を与えるよう
に設計されている。設計者は、マイクロコンピュータの
主機能を知ることで、その専用マイクロコンピュータに
よる特定機能の性能が、ユーザによって作成されるプロ
グラムと関係なく汎用マイクロプロセッサによる同一機
能の性能を大巾に越えるように、マイクロコンピュータ
を構成できる。専用マイクロコンピュータにより大巾な
向上率で実施可能なかかる機能の一つは、デジタル信号
処理、特にデジタルフィルタの実行と高速フーリエ変換
を行うのに必要な演算である。こうした演算は大部分整
数乗算、多ビットのシフト及び乗算−加算等の反復動作
から成るので、専用マイクロコンピュータはこれらの反
復機能に特に適するように構成できる。かかる専用マイ
クロコンピュータは、テキサス・インスツルメント社に
譲渡された米国特許第4,577,282 号に記載されている。
上記演算用のマイクロコンピュータの特定設計は、汎用
マイクロプロセッサと比べて充分な性能向上をもたら
し、専用マイクロコンピュータを音声及び画像処理等の
実時間用途における使用を可能とする。
種類、つまり汎用マイクロプロセッサと専用マイクロコ
ンピュータ/マイクロプロセッサに分けられる。モトロ
ーラ社製M68020等の汎用マイクロプロセッサは、
広範囲のタスクのどれでも実行するようにユーザによっ
てプログラム可能に設計されているため、パーソナルコ
ンピュータ等の中央処理装置としてよく使われている。
このような汎用マイクロプロセッサは、広範囲の演算及
び論理機能で優れた性能を有するが、勿論そうした機能
のうちの特定の一つのために特別に設計または適応され
ていない。これに対し専用マイクロコンピュータは、ユ
ーザがそのマイクロコンピュータを使うとしている特有
の所定演算及び論理機能のための性能改良を与えるよう
に設計されている。設計者は、マイクロコンピュータの
主機能を知ることで、その専用マイクロコンピュータに
よる特定機能の性能が、ユーザによって作成されるプロ
グラムと関係なく汎用マイクロプロセッサによる同一機
能の性能を大巾に越えるように、マイクロコンピュータ
を構成できる。専用マイクロコンピュータにより大巾な
向上率で実施可能なかかる機能の一つは、デジタル信号
処理、特にデジタルフィルタの実行と高速フーリエ変換
を行うのに必要な演算である。こうした演算は大部分整
数乗算、多ビットのシフト及び乗算−加算等の反復動作
から成るので、専用マイクロコンピュータはこれらの反
復機能に特に適するように構成できる。かかる専用マイ
クロコンピュータは、テキサス・インスツルメント社に
譲渡された米国特許第4,577,282 号に記載されている。
上記演算用のマイクロコンピュータの特定設計は、汎用
マイクロプロセッサと比べて充分な性能向上をもたら
し、専用マイクロコンピュータを音声及び画像処理等の
実時間用途における使用を可能とする。
【0004】デジタル信号処理の用途は、それらの演算
集中性のため、メモリアクセス動作においてかなり集中
性となる。従って、デジタル信号処理機能を実施するマ
イクロコンピュータの全体的性能は、単位時間毎に実行
される特定演算の回数だけでなく、マイクロコンピュー
タがシステムメモリに対してデータを検索及び記憶可能
な速度によっても決まる。前記米国特許第4,577,282 号
に記載されているもの等従来の専用マイクロコンピュー
タは、データメモリへのアクセスがプログラムメモリへ
のアクセスと独立に、且つ、同時に行えるように、ハー
バード型アーキテクチャの改造型を用いている。このよ
うなアーキテクチャは勿論、さらに性能向上をもたらし
てきた。
集中性のため、メモリアクセス動作においてかなり集中
性となる。従って、デジタル信号処理機能を実施するマ
イクロコンピュータの全体的性能は、単位時間毎に実行
される特定演算の回数だけでなく、マイクロコンピュー
タがシステムメモリに対してデータを検索及び記憶可能
な速度によっても決まる。前記米国特許第4,577,282 号
に記載されているもの等従来の専用マイクロコンピュー
タは、データメモリへのアクセスがプログラムメモリへ
のアクセスと独立に、且つ、同時に行えるように、ハー
バード型アーキテクチャの改造型を用いている。このよ
うなアーキテクチャは勿論、さらに性能向上をもたらし
てきた。
【0005】
【発明が解決しようとする課題】しかし、ノイマン型ア
ーキテクチャに代るハーバード型アーキテクチャの使用
にも幾つかの制限があり、その一部はデジタル信号処理
の用途におけるマイクロコンピュータの性能に悪影響を
及ぼすものである。例えば、データ及びプログラムメモ
リは異なるバスによってアクセスされるので、物理的に
別々のロケーションでないとしても、一般に別々のアド
レススペース内に存在されなければならない。従って、
ハーバード型アーキテクチャでは、第1の専用メモリが
データメモリ用に、また第2の専用メモリがプログラム
メモリ用に設けられなければならない。これは、利用し
ていないデータメモリをプログラム記憶用に使うこと及
びその逆を妨げ、マイクロコンピュータの融通性を制限
する。さらに、入/出力装置のメモリマップ式制御を使
うのも有用である。このような制御では、マイクロコン
ピュータとその入/出力装置によって共有された予約メ
モリロケーションを使用する。要するに、マイクロコン
ピュータ及び入/出力装置は、共有ロケーションへデー
タを書込み、また、そこからデータを読取ることによっ
て相互に交信する。ハーバード型及びノイマン型どちら
のアーキテクチャでも、入/出力目的のために一定のメ
モリロケーションを予約することは、マイクロコンピュ
ータの融通性をいっそう制限する。また、アーキテクチ
ャがメモリマップ式入/出力の使用を一定のロケーショ
ンに制限していると、追加の入力または出力装置に必要
なメモリマップドロケーション(memory-mapped locatio
n)がマイクロコンピュータ用の既存ソフトウェアで使わ
れていることがあるため、マイクロコンピュータはその
追加装置を含めるように容易に再設計できず、既存のソ
フトウェアベースが再設計のマイクロコンピュータと両
立しなくなってしまう。
ーキテクチャに代るハーバード型アーキテクチャの使用
にも幾つかの制限があり、その一部はデジタル信号処理
の用途におけるマイクロコンピュータの性能に悪影響を
及ぼすものである。例えば、データ及びプログラムメモ
リは異なるバスによってアクセスされるので、物理的に
別々のロケーションでないとしても、一般に別々のアド
レススペース内に存在されなければならない。従って、
ハーバード型アーキテクチャでは、第1の専用メモリが
データメモリ用に、また第2の専用メモリがプログラム
メモリ用に設けられなければならない。これは、利用し
ていないデータメモリをプログラム記憶用に使うこと及
びその逆を妨げ、マイクロコンピュータの融通性を制限
する。さらに、入/出力装置のメモリマップ式制御を使
うのも有用である。このような制御では、マイクロコン
ピュータとその入/出力装置によって共有された予約メ
モリロケーションを使用する。要するに、マイクロコン
ピュータ及び入/出力装置は、共有ロケーションへデー
タを書込み、また、そこからデータを読取ることによっ
て相互に交信する。ハーバード型及びノイマン型どちら
のアーキテクチャでも、入/出力目的のために一定のメ
モリロケーションを予約することは、マイクロコンピュ
ータの融通性をいっそう制限する。また、アーキテクチ
ャがメモリマップ式入/出力の使用を一定のロケーショ
ンに制限していると、追加の入力または出力装置に必要
なメモリマップドロケーション(memory-mapped locatio
n)がマイクロコンピュータ用の既存ソフトウェアで使わ
れていることがあるため、マイクロコンピュータはその
追加装置を含めるように容易に再設計できず、既存のソ
フトウェアベースが再設計のマイクロコンピュータと両
立しなくなってしまう。
【0006】従って、この発明の目的は、ユーザによっ
てフレキシブルにデータ及びプログラムストレージに区
分可能な単一のメモリアドレススペースを有するマイク
ロコンピュータを提供することにある。この発明の別の
目的は、単一のメモリアドレススペース内に、データ及
びプログラムストレージと共にメモリマップド入/出力
コントローラも含み得るようなマイクロコンピュータを
提供することにある。この発明の別の目的は、データ、
プログラム及びメモリマップド入/出力メモリの仕様と
関わりなく、前記アドレススペース内の2つのメモリロ
ケーションへ同時にアクセスできるようなマイクロコン
ピュータを提供することにある。この発明の別の目的
は、単一のメモリアドレススペース内にROMとRAM
両方を有するようなマイクロコンピュータを提供するこ
とにある。本発明の上記以外の目的及び利点は、図面と
共に以下の説明を参照することによって当業者には明ら
かとなろう。
てフレキシブルにデータ及びプログラムストレージに区
分可能な単一のメモリアドレススペースを有するマイク
ロコンピュータを提供することにある。この発明の別の
目的は、単一のメモリアドレススペース内に、データ及
びプログラムストレージと共にメモリマップド入/出力
コントローラも含み得るようなマイクロコンピュータを
提供することにある。この発明の別の目的は、データ、
プログラム及びメモリマップド入/出力メモリの仕様と
関わりなく、前記アドレススペース内の2つのメモリロ
ケーションへ同時にアクセスできるようなマイクロコン
ピュータを提供することにある。この発明の別の目的
は、単一のメモリアドレススペース内にROMとRAM
両方を有するようなマイクロコンピュータを提供するこ
とにある。本発明の上記以外の目的及び利点は、図面と
共に以下の説明を参照することによって当業者には明ら
かとなろう。
【0007】
【課題を解決するための手段】本発明は、単一のメモリ
アドレススペース内にマップ割り当てされた複数のメモ
リ要素を有するマイクロコンピュータに適用し得る。デ
ータバス、プログラムバス及び直接メモリアクセス(D
MA)バス等の特定目的で好ましくは使われるように指
定し得る複数のメモリバスが設けられる。2つのバスが
共に同一メモリ要素ヘアドレスしようとしない限り、複
数のバスが1より多いメモリ要素への同時アクセスを可
能とする。メモリアドレススペースは、制御可能なポー
トを介して複数のメモリバスがそれに接続された外部メ
モリへもアドレス可能となるように、充分大きくし得
る。2つの異なるバスが同一メモリ要素(オンチップま
たは外部)内のメモリロケーションへアドレスを試みた
ときでも、所定の優先順位に従って一つのバスにアクセ
スが許可されるように、アドレスデコード論理及び優先
順位論理を含むメモリ優先順位コントローラも付設し得
る。
アドレススペース内にマップ割り当てされた複数のメモ
リ要素を有するマイクロコンピュータに適用し得る。デ
ータバス、プログラムバス及び直接メモリアクセス(D
MA)バス等の特定目的で好ましくは使われるように指
定し得る複数のメモリバスが設けられる。2つのバスが
共に同一メモリ要素ヘアドレスしようとしない限り、複
数のバスが1より多いメモリ要素への同時アクセスを可
能とする。メモリアドレススペースは、制御可能なポー
トを介して複数のメモリバスがそれに接続された外部メ
モリへもアドレス可能となるように、充分大きくし得
る。2つの異なるバスが同一メモリ要素(オンチップま
たは外部)内のメモリロケーションへアドレスを試みた
ときでも、所定の優先順位に従って一つのバスにアクセ
スが許可されるように、アドレスデコード論理及び優先
順位論理を含むメモリ優先順位コントローラも付設し得
る。
【0008】
【実施例】図1を参照すると、マイクロコンピュータ1
0のアーキテクチャが示され、該マイクロコンピュータ
はデジタル信号処理用に特に適しており、本発明を具備
している。マイクロコンピュータ10の主な機能ブロッ
クは、中央処理装置(CPU)12、コントローラ14、及
び直接メモリアクセス(DMA)コントローラ22によ
って構成される。発明のこの実施例によるマイクロコン
ピュータに装備されたメモリは、ランダムアクセスメモ
リ(RAM)16、18、及び読取専用メモリ(RO
M)20を含む。この実施例において、RAM16と1
8は210つまり1Kのワードを有し、ROM20は212
つまり4Kのワードを有する。各種のバス信号をマイク
ロコンピュータ10の外部端子で多重化し、且つかかる
外部端子を介してデータを送受信する外部装置との通信
用の専用信号を与えるインタフェースポート24、26
を経て外部との接続がなされる。インタフェースポート
26に周辺バス28が接続され、周辺バス28は後述す
るように各種の機能ブロックに接続される。マイクロコ
ンピュータ10内でのデータ交信は、データバス30を
介して実施可能である。データバス30は、メモリ1
6、18、20、インタフェースポート24、26及び
CPU12間でのデータ信号の交信に割り当てられた一
組のデータライン30dを含む。発明のこの実施例で
は、データバス30が各組30d内に32本のデータラ
インを有する。従って、メモリ16、18、20、イン
タフェースポート24、26及びCPU12間で交信さ
れるデータ信号は32ビット語と見なされる。データバ
ス30は更に第1組のアドレスライン30aと第2組の
アドレスライン30bを含み、両アドレスラインはメモ
リ16、18及び20内のメモリロケーションに対応し
たアドレス信号の交信に使われる。
0のアーキテクチャが示され、該マイクロコンピュータ
はデジタル信号処理用に特に適しており、本発明を具備
している。マイクロコンピュータ10の主な機能ブロッ
クは、中央処理装置(CPU)12、コントローラ14、及
び直接メモリアクセス(DMA)コントローラ22によ
って構成される。発明のこの実施例によるマイクロコン
ピュータに装備されたメモリは、ランダムアクセスメモ
リ(RAM)16、18、及び読取専用メモリ(RO
M)20を含む。この実施例において、RAM16と1
8は210つまり1Kのワードを有し、ROM20は212
つまり4Kのワードを有する。各種のバス信号をマイク
ロコンピュータ10の外部端子で多重化し、且つかかる
外部端子を介してデータを送受信する外部装置との通信
用の専用信号を与えるインタフェースポート24、26
を経て外部との接続がなされる。インタフェースポート
26に周辺バス28が接続され、周辺バス28は後述す
るように各種の機能ブロックに接続される。マイクロコ
ンピュータ10内でのデータ交信は、データバス30を
介して実施可能である。データバス30は、メモリ1
6、18、20、インタフェースポート24、26及び
CPU12間でのデータ信号の交信に割り当てられた一
組のデータライン30dを含む。発明のこの実施例で
は、データバス30が各組30d内に32本のデータラ
インを有する。従って、メモリ16、18、20、イン
タフェースポート24、26及びCPU12間で交信さ
れるデータ信号は32ビット語と見なされる。データバ
ス30は更に第1組のアドレスライン30aと第2組の
アドレスライン30bを含み、両アドレスラインはメモ
リ16、18及び20内のメモリロケーションに対応し
たアドレス信号の交信に使われる。
【0009】本発明のこの実施例において、データバス
30は各組30a及び30b毎に24本のアドレスライ
ンを有する。アドレスライン30aと30bも、CPU
12、インタフェースポート24、26及びメモリ1
6、18、20間に接続されている。図1から明らかな
ように、メモリ16、18、20は各々2つのポート3
2a、32dを有する。各々のポート32aはデータバ
ス30のアドレスライン30aと30bに接続され、そ
こに与えられるアドレス信号を受信し、対応したメモリ
ロケーションへのアクセスをポート32dを介してデー
タバス30のデータライン30dに与える。マイクロコ
ンピュータ10は、プログラムバス34を介しても交信
を行う。データバス30と同様、プログラムバス34は
メモリ16、18及び20の各ポート32dに接続され
た一組のデータライン34dを含む。プログラムバス3
4のデータライン34dは、インタフェースポート2
4、26とコントローラ14にも接続されている。プロ
グラムバス34は更に、メモリ16、18、20の各ポ
ート32a、インタフェースポート24、26及びコン
トローラ14に接続された一組のアドレスライン34a
を含む。プログラムバス34には、アドレスライン34
aとデータライン34dにそれぞれ接続されたポート3
2aと32dを有する命令キャッシュ36も接続されて
いる。命令キャッシュ36は小型(64ワード)の高速
メモリで、プログラム記憶用に外部のメモリ装置が使わ
れる場合に、反復使用される命令の検索をメモリ16、
18、20からと同じ速度で行えるように、最も最近使
われた命令コードを保持するのに使用される。命令キャ
ッシュ36の詳細な構造及び動作は後で説明する。
30は各組30a及び30b毎に24本のアドレスライ
ンを有する。アドレスライン30aと30bも、CPU
12、インタフェースポート24、26及びメモリ1
6、18、20間に接続されている。図1から明らかな
ように、メモリ16、18、20は各々2つのポート3
2a、32dを有する。各々のポート32aはデータバ
ス30のアドレスライン30aと30bに接続され、そ
こに与えられるアドレス信号を受信し、対応したメモリ
ロケーションへのアクセスをポート32dを介してデー
タバス30のデータライン30dに与える。マイクロコ
ンピュータ10は、プログラムバス34を介しても交信
を行う。データバス30と同様、プログラムバス34は
メモリ16、18及び20の各ポート32dに接続され
た一組のデータライン34dを含む。プログラムバス3
4のデータライン34dは、インタフェースポート2
4、26とコントローラ14にも接続されている。プロ
グラムバス34は更に、メモリ16、18、20の各ポ
ート32a、インタフェースポート24、26及びコン
トローラ14に接続された一組のアドレスライン34a
を含む。プログラムバス34には、アドレスライン34
aとデータライン34dにそれぞれ接続されたポート3
2aと32dを有する命令キャッシュ36も接続されて
いる。命令キャッシュ36は小型(64ワード)の高速
メモリで、プログラム記憶用に外部のメモリ装置が使わ
れる場合に、反復使用される命令の検索をメモリ16、
18、20からと同じ速度で行えるように、最も最近使
われた命令コードを保持するのに使用される。命令キャ
ッシュ36の詳細な構造及び動作は後で説明する。
【0010】コントローラ14は、プログラムバス34
のデータライン34d上に受信された命令コードを、マ
イクロコンピュータ10の全ブロック内に含まれた特定
の論理回路を制御する制御信号へデコードするのに必要
な回路を含む。図1は、それらの制御信号の一部を搬送
するラインSEL16、SEL18、SEL20、SEL24及
びSEL26を示し、制御信号はメモリ16、18、20
及び周辺ポート24、26へのマイクロコンピュータ1
0のアクセスをそれぞれ制御する。コントローラ14か
ら発生されるその他の同様な信号は、見易くするため図
1には示してない。命令キャッシュ36とコントローラ
14に制御されたプログラムバス34は、メモリ16、
18及び20内に含まれた命令コードのアドレシングと
交信のために主に使われる。本発明によれば、このよう
な命令コードは、プログラムメモリに専用な特定のロケ
ーションを指定することなく、メモリ16、18、及び
20の何れかまたは外部メモリ内に存在可能である。D
MAコントローラ22は、DMAバス38を介してメモ
リ16、18、及び20に接続される。データバス30
とプログラムバス34と同じく、DMAバス38はメモ
リ16、18、及び20のポート32dに接続された一
組のデータライン38dを有する。DMAバス38は更
に、メモリ16、18及び20のポート32aに接続さ
れた一組のアドレスライン38aを有する。DMAコン
トローラ22は、周辺バス28に更に周辺バス28を介
してインタフェースポート26にも接続されている。D
MAコントローラ22が直接メモリアクセス動作を行
い、この動作によってマイクロコンピュータ10のメモ
リスペース内に記憶されたデータブロックがメモリの一
領域(出所)から別の領域(宛先)へ移動可能である。
メモリの出所領域はメモリ16、18、20、またはマ
イクロコンピュータ10の外部にあってインタフェース
ポート24で処理される端子に接続されたメモリ装置内
に存在し、データブロックの宛先はかかるどのメモリ
(但し勿論ROM20を除く)内にも存在し得る。図1
に示したマイクロコンピュータ10の構造及び以下の説
明から、このようなDMA動作はCPU12の介入を必
要とせず、マイクロコンピュータ10内のDMAコント
ローラ22によってなされることが明らかであろう。
のデータライン34d上に受信された命令コードを、マ
イクロコンピュータ10の全ブロック内に含まれた特定
の論理回路を制御する制御信号へデコードするのに必要
な回路を含む。図1は、それらの制御信号の一部を搬送
するラインSEL16、SEL18、SEL20、SEL24及
びSEL26を示し、制御信号はメモリ16、18、20
及び周辺ポート24、26へのマイクロコンピュータ1
0のアクセスをそれぞれ制御する。コントローラ14か
ら発生されるその他の同様な信号は、見易くするため図
1には示してない。命令キャッシュ36とコントローラ
14に制御されたプログラムバス34は、メモリ16、
18及び20内に含まれた命令コードのアドレシングと
交信のために主に使われる。本発明によれば、このよう
な命令コードは、プログラムメモリに専用な特定のロケ
ーションを指定することなく、メモリ16、18、及び
20の何れかまたは外部メモリ内に存在可能である。D
MAコントローラ22は、DMAバス38を介してメモ
リ16、18、及び20に接続される。データバス30
とプログラムバス34と同じく、DMAバス38はメモ
リ16、18、及び20のポート32dに接続された一
組のデータライン38dを有する。DMAバス38は更
に、メモリ16、18及び20のポート32aに接続さ
れた一組のアドレスライン38aを有する。DMAコン
トローラ22は、周辺バス28に更に周辺バス28を介
してインタフェースポート26にも接続されている。D
MAコントローラ22が直接メモリアクセス動作を行
い、この動作によってマイクロコンピュータ10のメモ
リスペース内に記憶されたデータブロックがメモリの一
領域(出所)から別の領域(宛先)へ移動可能である。
メモリの出所領域はメモリ16、18、20、またはマ
イクロコンピュータ10の外部にあってインタフェース
ポート24で処理される端子に接続されたメモリ装置内
に存在し、データブロックの宛先はかかるどのメモリ
(但し勿論ROM20を除く)内にも存在し得る。図1
に示したマイクロコンピュータ10の構造及び以下の説
明から、このようなDMA動作はCPU12の介入を必
要とせず、マイクロコンピュータ10内のDMAコント
ローラ22によってなされることが明らかであろう。
【0011】一組のアドレスライン30a、30b、3
4aまたは38aの対応したメモリ16、18または2
0への接続を選択できるように、ポート32aは主にマ
ルチプレクサである。同じく、各々のポート32dはデ
ータバス30のデータライン30dに接続され、アドレ
スされたメモリロケーションによって記憶された(また
は記憶されるべき)データの交信を行う。メモリ16、
18及び20は各々そのポート32aに接続されたアド
レスデコーダ33を含み、これがアドレスライン30
a、30b、34aまたは38aの選択された1つに与
えられるメモリアドレス信号を当該分野で周知な方法で
デコードする。アドレスデコード33からの出力に基づ
き、選択アドレス信号によって指定されたメモリロケー
ションへのアクセスが許可される。RAM16、18と
ROM20は全て、選択メモリロケーションが付設のア
ドレスデコーダ33の出力に基づき検知及び/又は書込
まれるように、当該分野で周知なように構成されてい
る。またかかるメモリの分野で周知なように、ポート3
2dは選択されてないときそこに接続されたバス30、
34及び38のデータラインの高インピーダンス出力を
与えて、バス30、34及び38上におけるデータの衝
突を防ぐ。
4aまたは38aの対応したメモリ16、18または2
0への接続を選択できるように、ポート32aは主にマ
ルチプレクサである。同じく、各々のポート32dはデ
ータバス30のデータライン30dに接続され、アドレ
スされたメモリロケーションによって記憶された(また
は記憶されるべき)データの交信を行う。メモリ16、
18及び20は各々そのポート32aに接続されたアド
レスデコーダ33を含み、これがアドレスライン30
a、30b、34aまたは38aの選択された1つに与
えられるメモリアドレス信号を当該分野で周知な方法で
デコードする。アドレスデコード33からの出力に基づ
き、選択アドレス信号によって指定されたメモリロケー
ションへのアクセスが許可される。RAM16、18と
ROM20は全て、選択メモリロケーションが付設のア
ドレスデコーダ33の出力に基づき検知及び/又は書込
まれるように、当該分野で周知なように構成されてい
る。またかかるメモリの分野で周知なように、ポート3
2dは選択されてないときそこに接続されたバス30、
34及び38のデータラインの高インピーダンス出力を
与えて、バス30、34及び38上におけるデータの衝
突を防ぐ。
【0012】データバス30、プログラムバス34及び
DMAバス38内の各組のアドレスラインは、この発明
の好ましい実施例において24本の導体からなる。従っ
て、データバス30、プログラムバス34及びDMAバ
ス38内の各組のアドレスラインを介してアドレス可能
なメモリロケーションの最大数は、32ビットの224ワ
ード(16メガワード)である。しかし、メモリ16、
18及び20内のワード総数は6Kなので、マイクロコ
ンピュータ10のアドレス可能なメモリスペースの多く
はマイクロコンピュータ10外のメモリ装置内に存在す
る。このような外部メモリも勿論オンチップメモリ1
6、18及び20と同様のアドレスデコード能力を持
ち、バス30、34及び38のアドレスライン上に発生
したアドレス信号に対して同じように応答する。本発明
によれば、バス30、34及び38の任意の一組のアド
レスラインに与えられるあるアドレス信号がメモリ1
6、18及び20のうち一つ内のメモリロケーションヘ
アドレスするように、単一のメモリアドレススペースが
マイクロコンピュータ10に設けられる。従って、例え
ばアドレスライン30aがポート32aで選ばれたとす
れば、アドレスライン30a上のあるアドレス信号はメ
モリ16、18及び20の何れか一つもしくは外部デー
タ、プログラムまたは入/出力メモリ内のメモリロケー
ションと対応している。尚マイクロコンピュータは、外
部のデータ及びプログラムメモリが周辺ポート24を介
してアクセスされ、外部入/出力メモリが周辺ポート2
6を介してアクセスされるのが好ましいように構成され
ている。
DMAバス38内の各組のアドレスラインは、この発明
の好ましい実施例において24本の導体からなる。従っ
て、データバス30、プログラムバス34及びDMAバ
ス38内の各組のアドレスラインを介してアドレス可能
なメモリロケーションの最大数は、32ビットの224ワ
ード(16メガワード)である。しかし、メモリ16、
18及び20内のワード総数は6Kなので、マイクロコ
ンピュータ10のアドレス可能なメモリスペースの多く
はマイクロコンピュータ10外のメモリ装置内に存在す
る。このような外部メモリも勿論オンチップメモリ1
6、18及び20と同様のアドレスデコード能力を持
ち、バス30、34及び38のアドレスライン上に発生
したアドレス信号に対して同じように応答する。本発明
によれば、バス30、34及び38の任意の一組のアド
レスラインに与えられるあるアドレス信号がメモリ1
6、18及び20のうち一つ内のメモリロケーションヘ
アドレスするように、単一のメモリアドレススペースが
マイクロコンピュータ10に設けられる。従って、例え
ばアドレスライン30aがポート32aで選ばれたとす
れば、アドレスライン30a上のあるアドレス信号はメ
モリ16、18及び20の何れか一つもしくは外部デー
タ、プログラムまたは入/出力メモリ内のメモリロケー
ションと対応している。尚マイクロコンピュータは、外
部のデータ及びプログラムメモリが周辺ポート24を介
してアクセスされ、外部入/出力メモリが周辺ポート2
6を介してアクセスされるのが好ましいように構成され
ている。
【0013】周辺バス28は、インタフェースポート2
6と各種の周辺機能との間に接続されている。従って周
辺バスは、コントローラ14による周辺ポート26の制
御に応じて、バス30、34及び38の任意の一つと選
択的に接続可能である。このように、周辺バス28はマ
イクロコンピュータ10の残部にとってオフチップバス
のように見える。これは、周辺装置によって通常与えら
れる機能をマイクロコンピュータ10内に組み入れ可能
とし、かかる周辺装置との交信はオフチップ装置とほゞ
同じ方法でマイクロコンピュータ10の残部によって行
われる。一例として図1のマイクロコンピュータ10
は、周辺バス28に接続されたタイマ40、直列ポート
42及びフォーマット交換器44を有し、また前述した
ようにDMAコントローラ22も周辺バス28に接続さ
れている。前記の他のバスと同様、周辺バス28はデー
タライン28dとアドレスライン28aを含む。しか
し、メモリ16、18、20とバス30、34、38に
接続されたマイクロコンピュータ10の残部との間での
交信と異なり、周辺バス28のアドレスライン28aは
それに接続された上記周辺機器40、42、44の何れ
か一つを選択し、周辺バス28のデータライン28dに
対してデータを送受するのに使われる。さらに後述する
ように、DMAコントローラ22内の制御レジスタも周
辺バス28を介してアクセスされる。
6と各種の周辺機能との間に接続されている。従って周
辺バスは、コントローラ14による周辺ポート26の制
御に応じて、バス30、34及び38の任意の一つと選
択的に接続可能である。このように、周辺バス28はマ
イクロコンピュータ10の残部にとってオフチップバス
のように見える。これは、周辺装置によって通常与えら
れる機能をマイクロコンピュータ10内に組み入れ可能
とし、かかる周辺装置との交信はオフチップ装置とほゞ
同じ方法でマイクロコンピュータ10の残部によって行
われる。一例として図1のマイクロコンピュータ10
は、周辺バス28に接続されたタイマ40、直列ポート
42及びフォーマット交換器44を有し、また前述した
ようにDMAコントローラ22も周辺バス28に接続さ
れている。前記の他のバスと同様、周辺バス28はデー
タライン28dとアドレスライン28aを含む。しか
し、メモリ16、18、20とバス30、34、38に
接続されたマイクロコンピュータ10の残部との間での
交信と異なり、周辺バス28のアドレスライン28aは
それに接続された上記周辺機器40、42、44の何れ
か一つを選択し、周辺バス28のデータライン28dに
対してデータを送受するのに使われる。さらに後述する
ように、DMAコントローラ22内の制御レジスタも周
辺バス28を介してアクセスされる。
【0014】次に図2を参照して、CPU12の構造と
動作を詳しく説明する。CPU12は、専用乗算器4
6、論理演算装置(ALU)48、データレジスタ50
a〜50h(まとめてデータレジスタ50と称する)、
補助演算論理装置(ARAU)52aと52b、補助デ
ータレジスタ54a〜54h(まとめて補助レジスタ5
4と称する)、データバスコントローラ56、及び一連
の制御レジスタ(インディックスレジスタ68aと68
b、ブロックレジスタ70及び状態レジスタ70を含む
がこれに制限されない)を含み、以下これらについて詳
述する。乗算器46への入力の一方は、マルチプレクサ
64aを介してCPUバス60aまたはレジスタバス6
2aの何れかからデータを受け取るように動作可能で、
乗算器46への入力の他方はマルチプレクサ64bを介
してCPUバス60bまたはレジスタバス62bの何れ
かからデータを受け取るように動作可能である。同じく
ALU48は2つの入力に対して演算を行い、その一方
の入力はマルチプレクサ64cを介してCPUバス60
aまたはレジスタバス62aの何れかからデータを受け
取るように動作可能で、他方の入力はマルチプレクサ6
4dを介してCPUバス60bまたはレジスタバス62
bの何れかからデータを受け取るように動作可能であ
る。マルチプレクサ64a〜64dは、CPU12によ
って実行されるべき命令コードに基づきコントローラ1
4によって制御される。
動作を詳しく説明する。CPU12は、専用乗算器4
6、論理演算装置(ALU)48、データレジスタ50
a〜50h(まとめてデータレジスタ50と称する)、
補助演算論理装置(ARAU)52aと52b、補助デ
ータレジスタ54a〜54h(まとめて補助レジスタ5
4と称する)、データバスコントローラ56、及び一連
の制御レジスタ(インディックスレジスタ68aと68
b、ブロックレジスタ70及び状態レジスタ70を含む
がこれに制限されない)を含み、以下これらについて詳
述する。乗算器46への入力の一方は、マルチプレクサ
64aを介してCPUバス60aまたはレジスタバス6
2aの何れかからデータを受け取るように動作可能で、
乗算器46への入力の他方はマルチプレクサ64bを介
してCPUバス60bまたはレジスタバス62bの何れ
かからデータを受け取るように動作可能である。同じく
ALU48は2つの入力に対して演算を行い、その一方
の入力はマルチプレクサ64cを介してCPUバス60
aまたはレジスタバス62aの何れかからデータを受け
取るように動作可能で、他方の入力はマルチプレクサ6
4dを介してCPUバス60bまたはレジスタバス62
bの何れかからデータを受け取るように動作可能であ
る。マルチプレクサ64a〜64dは、CPU12によ
って実行されるべき命令コードに基づきコントローラ1
4によって制御される。
【0015】乗算器46は当該分野で周知な浮動小数点
乗算器で、実際には(仮数乗算用の)ハードウェア乗算
器と(指数加算用の)演算論理装置とを含む。乗算器4
6は発明の好ましい実施例において、32ビットの結果
を生じる整数乗算を実施可能なサイズ、あるいは32ビ
ットを浮動小数点オペランドの仮数及び他の8ビットを
浮動小数点オペランドの指数と見なして、計40ビット
の結果を生じる浮動小数点乗算を実施可能なサイズとす
る。ALU48は、24ビットまでの2進数に対して整
数及び浮動小数点の加算と減算を実施可能な多くの周知
な構成の任意の一つに従って構成された演算論理装置で
ある。後で詳述するように、乗算器46とALU48の
並列組合せによって、CPU12は両方の機能を同時に
用いて演算を実施でき、乗算−累算命令等の演算の迅速
な計算が与えられる。乗算器46はALU48の出力は
各々データレジスタ50に接続され、乗算器46とAL
U48各々によって実行された演算の結果がデータレジ
スタ50のうち選択されたものにそれぞれ記憶可能であ
る。データレジスタ50は、40ビットのレジスタであ
って、ユーザのアプリケーションに応じ整数または浮動
小数点フォーマットでデータをストアするのに使われ
る。情報を浮動小数点フォーマットで記憶する場合に
は、最上位8ビットが指数と見なされ、下位32ビット
が仮数と見なされる。データレジスタ50の主な機能は
アキュムレータ機能で、実質上複数のデータレジスタ5
0がCPU12に複数のアキュムレータを与える。デー
タレジスタ50はレジスタバス62aと62bにも接続
され、両レジスタバスがデータバスコントローラ56を
介してデータバス30に出力を与え、また乗算器46と
ALU48への入力として再び与えられる。
乗算器で、実際には(仮数乗算用の)ハードウェア乗算
器と(指数加算用の)演算論理装置とを含む。乗算器4
6は発明の好ましい実施例において、32ビットの結果
を生じる整数乗算を実施可能なサイズ、あるいは32ビ
ットを浮動小数点オペランドの仮数及び他の8ビットを
浮動小数点オペランドの指数と見なして、計40ビット
の結果を生じる浮動小数点乗算を実施可能なサイズとす
る。ALU48は、24ビットまでの2進数に対して整
数及び浮動小数点の加算と減算を実施可能な多くの周知
な構成の任意の一つに従って構成された演算論理装置で
ある。後で詳述するように、乗算器46とALU48の
並列組合せによって、CPU12は両方の機能を同時に
用いて演算を実施でき、乗算−累算命令等の演算の迅速
な計算が与えられる。乗算器46はALU48の出力は
各々データレジスタ50に接続され、乗算器46とAL
U48各々によって実行された演算の結果がデータレジ
スタ50のうち選択されたものにそれぞれ記憶可能であ
る。データレジスタ50は、40ビットのレジスタであ
って、ユーザのアプリケーションに応じ整数または浮動
小数点フォーマットでデータをストアするのに使われ
る。情報を浮動小数点フォーマットで記憶する場合に
は、最上位8ビットが指数と見なされ、下位32ビット
が仮数と見なされる。データレジスタ50の主な機能は
アキュムレータ機能で、実質上複数のデータレジスタ5
0がCPU12に複数のアキュムレータを与える。デー
タレジスタ50はレジスタバス62aと62bにも接続
され、両レジスタバスがデータバスコントローラ56を
介してデータバス30に出力を与え、また乗算器46と
ALU48への入力として再び与えられる。
【0016】従って、乗算−累算命令をCPU12で容
易且つ効率的に実施できる。例えば、乗算器46の乗算
結果をデータレジスタ50の一つとしてレジスタバス6
2aを介してALU48に入力し、データレジスタ50
の別の一つに記憶されレジスタバス62bを介してAL
U48に与えられた前の結果に加えることができる。乗
算器46とALU48の出力は、同じくコントローラ1
4によって制御されるマルチプレクサ66の入力にも接
続されている。マルチプレクサ66の出力は補助レジス
タ54に接続され、乗算器46またはALU48の動作
結果が補助レジスタ54の選択された一つ、あるいはイ
ンディックスレジスタ68aと68b、ブロックレジス
タ70及び状態レジスタ71を含む一連の制御レジスタ
内に記憶可能である。補助レジスタ54は32ビットの
レジスタで、ARAU52と協働して、データバス30
のアドレスライン30aと30bに加えるアドレスや、
補助レジスタ54内に記憶されて後で使われるアドレス
計算用のアドレスを発生する。補助レジスタ54は、補
助レジスタバス65aと65bをそれぞれ介して各AR
AU52aと52bの一入力に接続されている。各AR
AU52aと52bはコントローラ14に接続された入
力、インディックスレジスタ68aと68bに接続され
た入力、及びブロックレジスタ70に接続された入力も
有し、これらの入力は全て実行中の命令コードによって
指定されたアドレスモードに応じてアドレス変更信号を
受け取る。ARAU52aと52bはデータバス30の
アドレスライン30aと30bにそれぞれ接続された出
力を有し、ARAU52aと52bはこれらのアドレス
ラインにメモリアドレス信号を与える。さらにARAU
52aと52bは、バス67aと67bにそれぞれ接続
され、後述するようにメモリアドレシングの過程で発生
した変更の結果を補助レジスタ54のうち選択されたも
のに記憶するための出力を有する。
易且つ効率的に実施できる。例えば、乗算器46の乗算
結果をデータレジスタ50の一つとしてレジスタバス6
2aを介してALU48に入力し、データレジスタ50
の別の一つに記憶されレジスタバス62bを介してAL
U48に与えられた前の結果に加えることができる。乗
算器46とALU48の出力は、同じくコントローラ1
4によって制御されるマルチプレクサ66の入力にも接
続されている。マルチプレクサ66の出力は補助レジス
タ54に接続され、乗算器46またはALU48の動作
結果が補助レジスタ54の選択された一つ、あるいはイ
ンディックスレジスタ68aと68b、ブロックレジス
タ70及び状態レジスタ71を含む一連の制御レジスタ
内に記憶可能である。補助レジスタ54は32ビットの
レジスタで、ARAU52と協働して、データバス30
のアドレスライン30aと30bに加えるアドレスや、
補助レジスタ54内に記憶されて後で使われるアドレス
計算用のアドレスを発生する。補助レジスタ54は、補
助レジスタバス65aと65bをそれぞれ介して各AR
AU52aと52bの一入力に接続されている。各AR
AU52aと52bはコントローラ14に接続された入
力、インディックスレジスタ68aと68bに接続され
た入力、及びブロックレジスタ70に接続された入力も
有し、これらの入力は全て実行中の命令コードによって
指定されたアドレスモードに応じてアドレス変更信号を
受け取る。ARAU52aと52bはデータバス30の
アドレスライン30aと30bにそれぞれ接続された出
力を有し、ARAU52aと52bはこれらのアドレス
ラインにメモリアドレス信号を与える。さらにARAU
52aと52bは、バス67aと67bにそれぞれ接続
され、後述するようにメモリアドレシングの過程で発生
した変更の結果を補助レジスタ54のうち選択されたも
のに記憶するための出力を有する。
【0017】図1から明らかで当該分野で周知なよう
に、マイクロコンピュータ10によって実行可能な命令
コード16、18、20、並びに周辺ポート24と26
を介して外部メモリに複数の方法でアクセスする。この
ようなアドレシングの例には、CPU12内の各レジス
タ50と54のアドレシング、メモリ16、18、20
内のロケーションのアドレシング、周知の即時及び相対
的アドレシングモードが含まれる。間接的なメモリアド
レシングは、補助レジスタ54と協働してARAU52
aと52bによって容易化される。周知のように、マイ
クロコンピュータ内での間接的なアドレシングは、メモ
リロケーションのアドレスが所定のロケーションに含ま
れているメモリアドレシングモードである。間接メモリ
アドレシングの一例は、“レジスタ50aの内容で指定
されたメモリロケーションをアドレスせよ”というマイ
クロコンピュータへの命令である。間接アドレシングは
レジスタ54を動的メモリアドレスポインタとして用い
るのを可能とし、プログラムメモリロケーションの内容
を変える必要なく、CPU12(及びレジスタ54の一
つにおけるその記憶)によるメモリロケーションの算出
を可能とする。さらにARAU52aと52bは、AR
AU52aと52bによる間接アドレスの算出を変更す
る命令コードから発生された変位コードを用いるように
動作可能である。変位コードは、命令コードのデコード
時にコントローラ14によって発生される8ビットのコ
ードで、各ARAU52aと52bの入力の一方に入力
される。CPU12は変位信号の不在を1を暗示した値
として解釈し、これが反復演算で使われるレジスタ54
の内容を自動的にインクレメントまたはデクレメントす
るのに使える。このようにARAU52aと52bは、
RAM16と18及びデータメモリとして使われている
外部RAM内のメモリロケーションのアドレシングで主
に使われる。
に、マイクロコンピュータ10によって実行可能な命令
コード16、18、20、並びに周辺ポート24と26
を介して外部メモリに複数の方法でアクセスする。この
ようなアドレシングの例には、CPU12内の各レジス
タ50と54のアドレシング、メモリ16、18、20
内のロケーションのアドレシング、周知の即時及び相対
的アドレシングモードが含まれる。間接的なメモリアド
レシングは、補助レジスタ54と協働してARAU52
aと52bによって容易化される。周知のように、マイ
クロコンピュータ内での間接的なアドレシングは、メモ
リロケーションのアドレスが所定のロケーションに含ま
れているメモリアドレシングモードである。間接メモリ
アドレシングの一例は、“レジスタ50aの内容で指定
されたメモリロケーションをアドレスせよ”というマイ
クロコンピュータへの命令である。間接アドレシングは
レジスタ54を動的メモリアドレスポインタとして用い
るのを可能とし、プログラムメモリロケーションの内容
を変える必要なく、CPU12(及びレジスタ54の一
つにおけるその記憶)によるメモリロケーションの算出
を可能とする。さらにARAU52aと52bは、AR
AU52aと52bによる間接アドレスの算出を変更す
る命令コードから発生された変位コードを用いるように
動作可能である。変位コードは、命令コードのデコード
時にコントローラ14によって発生される8ビットのコ
ードで、各ARAU52aと52bの入力の一方に入力
される。CPU12は変位信号の不在を1を暗示した値
として解釈し、これが反復演算で使われるレジスタ54
の内容を自動的にインクレメントまたはデクレメントす
るのに使える。このようにARAU52aと52bは、
RAM16と18及びデータメモリとして使われている
外部RAM内のメモリロケーションのアドレシングで主
に使われる。
【0018】図1に示したごとく、データバス30のア
ドレスライン30aと30b上にARAU52aと52
bから発生されたアドレスは、勿論ROM20にもアク
セス可能である。つまりARAU52aと52bは、そ
の入力の一方に接続されたレジスタ54の一つの内容及
びコントローラ14から発生される変位コードに基づい
て必要な整数加算または減算演算を実施するように動作
可能である。表1は、レジスタ54とコントローラ14
と協働するARAU52aと52bによって部分的にサ
ポートされる多くの種類の間接アドレシングモードをリ
ストアップしている。尚、メモリ16、18及び20
(または外部)のプログラムメモリポーション/ロケー
ションに記載された命令コードは、表1にリストアップ
したものを含んでいて、所望なメモリアドレシングモー
ドを指定する5ビットのコードを有している。表1にお
いて、“add ”はアドレスされるべきメモリロケーショ
ンを指定し、“ARn ”はレジスタ54の一つの内容を指
定し、“disp”はコントローラ14から発生される変位
コードの値を指定する。補助レジスタ54の一つの内容
の更新値は、表1中“ARn ′”で示してある。 表 1 適 用 演 算 間接的 w/ 前変位 加算 add=ARn + disp 間接的 w/ 前変位 減算 add=ARn + disp 間接的 w/ 前変位 加算/変更 add=ARn + disp ARn′=ARn + disp 間接的 w/ 前変位 減算/変更 add=ARn − disp ARn′=ARn + disp 間接的 w/ 後変位 加算/変更 add=ARn ARn′=ARn + disp 間接的 w/ 後変位 減算/変更 add=ARn ARn′=ARn + disp CPU12は、同じくマルチプレクサ66の出力に接続
され、レジスタバス62aと62bに接続され、更にコ
ントローラ14からの変位コードを受け取るARAU5
2aと52bの入力に直接接続されたインディックスレ
ジスタ68aと68bを含んでいる。勿論コントローラ
14が、インディックスレジスタ68a、インディック
スレジスタ68b、または変位コードのARAU52a
と52bの他入力に対する印加を制御する。インディッ
クスレジスタ68aと68bはALU48によってロー
ドされ、メモリ16、18及び20(並びに外部メモ
リ)のインディックス付間接アドレシングで使われるイ
ンディックス値をARAU52aと52bを介して記憶
可能である。
ドレスライン30aと30b上にARAU52aと52
bから発生されたアドレスは、勿論ROM20にもアク
セス可能である。つまりARAU52aと52bは、そ
の入力の一方に接続されたレジスタ54の一つの内容及
びコントローラ14から発生される変位コードに基づい
て必要な整数加算または減算演算を実施するように動作
可能である。表1は、レジスタ54とコントローラ14
と協働するARAU52aと52bによって部分的にサ
ポートされる多くの種類の間接アドレシングモードをリ
ストアップしている。尚、メモリ16、18及び20
(または外部)のプログラムメモリポーション/ロケー
ションに記載された命令コードは、表1にリストアップ
したものを含んでいて、所望なメモリアドレシングモー
ドを指定する5ビットのコードを有している。表1にお
いて、“add ”はアドレスされるべきメモリロケーショ
ンを指定し、“ARn ”はレジスタ54の一つの内容を指
定し、“disp”はコントローラ14から発生される変位
コードの値を指定する。補助レジスタ54の一つの内容
の更新値は、表1中“ARn ′”で示してある。 表 1 適 用 演 算 間接的 w/ 前変位 加算 add=ARn + disp 間接的 w/ 前変位 減算 add=ARn + disp 間接的 w/ 前変位 加算/変更 add=ARn + disp ARn′=ARn + disp 間接的 w/ 前変位 減算/変更 add=ARn − disp ARn′=ARn + disp 間接的 w/ 後変位 加算/変更 add=ARn ARn′=ARn + disp 間接的 w/ 後変位 減算/変更 add=ARn ARn′=ARn + disp CPU12は、同じくマルチプレクサ66の出力に接続
され、レジスタバス62aと62bに接続され、更にコ
ントローラ14からの変位コードを受け取るARAU5
2aと52bの入力に直接接続されたインディックスレ
ジスタ68aと68bを含んでいる。勿論コントローラ
14が、インディックスレジスタ68a、インディック
スレジスタ68b、または変位コードのARAU52a
と52bの他入力に対する印加を制御する。インディッ
クスレジスタ68aと68bはALU48によってロー
ドされ、メモリ16、18及び20(並びに外部メモ
リ)のインディックス付間接アドレシングで使われるイ
ンディックス値をARAU52aと52bを介して記憶
可能である。
【0019】表2は、コントローラ14によって受信及
びデコードされる対応する命令コードに応答し、ARA
U52aと52bによって実行可能なインディックス付
間接アドレシングモードを含む。表1にリストアップし
たアドレシングモードと同様、それらの各アドレシング
モードは命令コード内の特有な5ビットのコードによっ
て実施可能である。表2中の略語“IRm ”は、インデッ
クスレジスタ68aと68bの一方の内容を示す。 表 2 適 用 演 算 間接的 w/ 前インディック加算 add=ARn + IRm 間接的 w/ 前インディック減算 add=ARn − IRm 間接的 w/ 前インディック加算/変更 add=ARn + IRm ARn′=ARn + IRm 間接的 w/ 前インディック減算/変更 add=ARn − IRm ARn′=ARn − IRm 間接的 w/ 後インディック加算/変更 add=ARn ARn′=ARn + IRm 間接的 w/ 後インディック減算/変更 add=ARn ARn′=ARn − IRm 次に図3を参照すると、ARAU52aの構造が詳しく
示してある。勿論、ARAU52bも同様に構成されて
いる。図2に示したように、ARAU52aはその一方
の入力で補助レジスタバス65aを受け取り、該バス6
5aは加/減算器80の一方の入力に接続されている。
マルチプレクサ82は3つの入力信号を受信する。その
1つはコントローラ14から発生される変位コードで、
残り2つの入力信号はインディックスレジスタ68aと
68bの内容である。マルチプレクサ82は、実行され
る命令コードに応じてコントローラ14によって制御さ
れ、これら3入力の一つを選択して加/減算器80の第
2の入力に与える。
びデコードされる対応する命令コードに応答し、ARA
U52aと52bによって実行可能なインディックス付
間接アドレシングモードを含む。表1にリストアップし
たアドレシングモードと同様、それらの各アドレシング
モードは命令コード内の特有な5ビットのコードによっ
て実施可能である。表2中の略語“IRm ”は、インデッ
クスレジスタ68aと68bの一方の内容を示す。 表 2 適 用 演 算 間接的 w/ 前インディック加算 add=ARn + IRm 間接的 w/ 前インディック減算 add=ARn − IRm 間接的 w/ 前インディック加算/変更 add=ARn + IRm ARn′=ARn + IRm 間接的 w/ 前インディック減算/変更 add=ARn − IRm ARn′=ARn − IRm 間接的 w/ 後インディック加算/変更 add=ARn ARn′=ARn + IRm 間接的 w/ 後インディック減算/変更 add=ARn ARn′=ARn − IRm 次に図3を参照すると、ARAU52aの構造が詳しく
示してある。勿論、ARAU52bも同様に構成されて
いる。図2に示したように、ARAU52aはその一方
の入力で補助レジスタバス65aを受け取り、該バス6
5aは加/減算器80の一方の入力に接続されている。
マルチプレクサ82は3つの入力信号を受信する。その
1つはコントローラ14から発生される変位コードで、
残り2つの入力信号はインディックスレジスタ68aと
68bの内容である。マルチプレクサ82は、実行され
る命令コードに応じてコントローラ14によって制御さ
れ、これら3入力の一つを選択して加/減算器80の第
2の入力に与える。
【0020】加/減算器80は当該分野で周知な多段式
演算論理装置であって、全キャリ加算または減算が実施
可能である。コントローラ14はアドレスモード情報に
関する命令コードの解読に応じて、加/減算器80が加
算または減算どちらかを行うかを制御する。加/減算器
80は更に、キャリ情報を段から段へ順または逆方向に
伝達する能力も有している。このような加/減算器は係
属中の米国特許出願第935,465 号に記載されており、該
特許出願が高速フーリエ変換アルゴリズムの実施におけ
る逆方向キャリ伝達の利点を詳しく記述している。コン
トローラ14も同様に、実行される命令コードに応じて
加/減算器80内でのキャリ伝達の方向を制御する。加
/減算器80の出力は、マルチプレクサ84の一方の入
力と比較器86の一方の入力とに接続されている。マル
チプレクサ84の他入力は補助レジスタバス65aに直
接接続され、マルチプレクサ84の出力はデータバス3
0のアドレスライン30aに接続されている。マルチプ
レクサ84は現在の命令コードに応じてコントローラ1
4によって制御され、計算されたアドレスの適正値をデ
ータバス30のアドレスライン30aに加える。加/減
算器80の出力はマルチプレクサ88の第1入力にも接
続され、マルチプレクサ88の出力は、ARAU52a
からのデータを補助レジスタ54のうち選択された一つ
に導いて補助レジスタ54の内容を所望通り更新するバ
ス67aに接続されている。マルチプレクサ88の第2
入力は加/減算器90に接続されている。比較器86と
加/減算器90は後述する循環アドレシング論理を構成
し、次の議論の目的上、その動作については無視する。
演算論理装置であって、全キャリ加算または減算が実施
可能である。コントローラ14はアドレスモード情報に
関する命令コードの解読に応じて、加/減算器80が加
算または減算どちらかを行うかを制御する。加/減算器
80は更に、キャリ情報を段から段へ順または逆方向に
伝達する能力も有している。このような加/減算器は係
属中の米国特許出願第935,465 号に記載されており、該
特許出願が高速フーリエ変換アルゴリズムの実施におけ
る逆方向キャリ伝達の利点を詳しく記述している。コン
トローラ14も同様に、実行される命令コードに応じて
加/減算器80内でのキャリ伝達の方向を制御する。加
/減算器80の出力は、マルチプレクサ84の一方の入
力と比較器86の一方の入力とに接続されている。マル
チプレクサ84の他入力は補助レジスタバス65aに直
接接続され、マルチプレクサ84の出力はデータバス3
0のアドレスライン30aに接続されている。マルチプ
レクサ84は現在の命令コードに応じてコントローラ1
4によって制御され、計算されたアドレスの適正値をデ
ータバス30のアドレスライン30aに加える。加/減
算器80の出力はマルチプレクサ88の第1入力にも接
続され、マルチプレクサ88の出力は、ARAU52a
からのデータを補助レジスタ54のうち選択された一つ
に導いて補助レジスタ54の内容を所望通り更新するバ
ス67aに接続されている。マルチプレクサ88の第2
入力は加/減算器90に接続されている。比較器86と
加/減算器90は後述する循環アドレシング論理を構成
し、次の議論の目的上、その動作については無視する。
【0021】図3を参照すれば、表1及び表2に列記し
た各種の間接アドレシングモードを達成する際のARA
U52aの動作は明らかとなろう。コントローラ14は
実行される命令コードに応じてマルチプレクサ82を制
御し、インディックスレジスタ68aと68bのうち所
望の一方(表2中の“IRm") あるいはコントローラ14
から発生される変位コードを選択し、加/減算器80で
補助レジスタ54の選択された一つの内容に加える。前
述したように、加/減算器80が加算または減算どちら
を行うか、及び加/減算器80が順または逆方向どちら
のキャリ伝送を使ってその出力を計算するのかも、コン
トローラ14が制御する。所望のアドレシングモードが
後インディックスもしくは後変位の加算または減算であ
る場合には、コントローラ14はマルチプレクサ84に
よって補助レジスタバス65aを選び、データバス30
のアドレスライン30aを接続せしめる(表1及び表2
中の演算“ add=ARn”に対応)。逆に、所望の間接アド
レシングモードが前インディックスもしくは前変位間接
アドレスであれば、コントローラ14はマルチプレクサ
84によって加/減算器80の出力を選び、デーバス3
0のアドレスライン30aに加える(表1及び表2中の
演算“ add=ARn+1-IRm/disp ”に対応)。
た各種の間接アドレシングモードを達成する際のARA
U52aの動作は明らかとなろう。コントローラ14は
実行される命令コードに応じてマルチプレクサ82を制
御し、インディックスレジスタ68aと68bのうち所
望の一方(表2中の“IRm") あるいはコントローラ14
から発生される変位コードを選択し、加/減算器80で
補助レジスタ54の選択された一つの内容に加える。前
述したように、加/減算器80が加算または減算どちら
を行うか、及び加/減算器80が順または逆方向どちら
のキャリ伝送を使ってその出力を計算するのかも、コン
トローラ14が制御する。所望のアドレシングモードが
後インディックスもしくは後変位の加算または減算であ
る場合には、コントローラ14はマルチプレクサ84に
よって補助レジスタバス65aを選び、データバス30
のアドレスライン30aを接続せしめる(表1及び表2
中の演算“ add=ARn”に対応)。逆に、所望の間接アド
レシングモードが前インディックスもしくは前変位間接
アドレスであれば、コントローラ14はマルチプレクサ
84によって加/減算器80の出力を選び、デーバス3
0のアドレスライン30aに加える(表1及び表2中の
演算“ add=ARn+1-IRm/disp ”に対応)。
【0022】ARAU52aは、選択された間接アドレ
シングモードに従って補助レジスタ54の更新も決め
る。循環間接アドレシングモードが選択されたとすると
(循環アドレシングについては後述する)、補助レジス
タ54のうち選択された一つの内容が変更されるべきか
どうかをコントローラ14が選ぶ。所望の間接アドレシ
ングモードが補助レジスタ54の内容を変更しない場合
には、コントローラ14がマルチプレクサ88の出力を
使用禁止(トライステート)とし、補助レジスタ54の
選択された一つの内容は更新されない。補助レジスタ5
4の選択された一つの内容が加/減算器80での加算ま
たは減算の結果によって変更されるべき場合には、コン
トローラ14がマルチプレクサ88によって加/減算器
80の出力を選んでバス67aに加える(表1及び表2
中の演算“ARn ′=ARn+/-IRm/diap"に対応)。図2に示
したCPU12の構造から、各種機能の動作は並列に発
生可能なことが勿論明らかであろう。例えば、ARAU
52aと52bはそれらへの入力が別々にレジスタ54
とコントローラ14(更にインディックスレジスタ68
aと68b)に接続されているので、並列に動作可能で
ある。また、ARAU52aの出力はデータバス30の
アドレスライン30aとバス67aに接続される一方、
ARAU52bの出力はデータバス30のアドレスライ
ン30bとバス67bに接続されている。こうして、A
RAU52aと52bの動作は、相互に干渉することな
く同時に生じ得る。更に、レジスタバス62aと62b
の前の状態が所望通り乗算器46とALU48によって
受信されていれば、乗算器46とALU48の動作は相
互同士だけでなく、ARAU52aと52bに対しても
同時に生じ得る。このように、特に乗算−累算等の反復
演算を用いるアルゴリズムの場合、CPU12は上記の
並列動作によって大巾な性能向上を達成可能である。
シングモードに従って補助レジスタ54の更新も決め
る。循環間接アドレシングモードが選択されたとすると
(循環アドレシングについては後述する)、補助レジス
タ54のうち選択された一つの内容が変更されるべきか
どうかをコントローラ14が選ぶ。所望の間接アドレシ
ングモードが補助レジスタ54の内容を変更しない場合
には、コントローラ14がマルチプレクサ88の出力を
使用禁止(トライステート)とし、補助レジスタ54の
選択された一つの内容は更新されない。補助レジスタ5
4の選択された一つの内容が加/減算器80での加算ま
たは減算の結果によって変更されるべき場合には、コン
トローラ14がマルチプレクサ88によって加/減算器
80の出力を選んでバス67aに加える(表1及び表2
中の演算“ARn ′=ARn+/-IRm/diap"に対応)。図2に示
したCPU12の構造から、各種機能の動作は並列に発
生可能なことが勿論明らかであろう。例えば、ARAU
52aと52bはそれらへの入力が別々にレジスタ54
とコントローラ14(更にインディックスレジスタ68
aと68b)に接続されているので、並列に動作可能で
ある。また、ARAU52aの出力はデータバス30の
アドレスライン30aとバス67aに接続される一方、
ARAU52bの出力はデータバス30のアドレスライ
ン30bとバス67bに接続されている。こうして、A
RAU52aと52bの動作は、相互に干渉することな
く同時に生じ得る。更に、レジスタバス62aと62b
の前の状態が所望通り乗算器46とALU48によって
受信されていれば、乗算器46とALU48の動作は相
互同士だけでなく、ARAU52aと52bに対しても
同時に生じ得る。このように、特に乗算−累算等の反復
演算を用いるアルゴリズムの場合、CPU12は上記の
並列動作によって大巾な性能向上を達成可能である。
【0023】ブロックレジスタ70はマルチプレクサ6
6の出力に接続され、レジスタバス62aと62bに接
続されている他、ARAU52aと52bにも直接接続
されている。ブロックレジスタ70は間接アドレシング
方式に“循環的”特徴を与え、1ブロックのデータメモ
リロケーションがループ式に反復アクセス可能となるよ
うにする。当該分野では周知なように、デジタル信号処
理の用途で必要な一部の計算は、1ブロックの記憶デー
タに対する反復演算で表わすことができる。例えば、有
限パルス応答(FIR)デジタルフィルタ機能の計算
は、1ブロックのデータに対する乗算−累算演算の反復
を必要とし、乗算−累算の結果はオペランドの一つがそ
こからフェッチされたメモリロケーション内に記憶され
る。次に図4を参照して、循環アドレシングの動作をC
PU12内の各種レジスタの内容を見ながら説明する。
CPU12は、まずALU48によってブロックレジス
タ70に問合せることによって循環アドレシングを行
い、こゝではビット位置“N”と称する、最上位の記憶
された“1”のデータ状態の位置を判定する。ブロック
レジスタ70内に記憶された値は、循環的にアドレスさ
れるべきデータブロック内のメモリロケーションの数を
有する。データブロックの(その一端における)最初の
ベースアドレスは、間接アドレシングモードで使われる
補助レジスタ54の一つの内容と見なされ、これらのビ
ット位置は“0”論理状態になってブロックレジスタ7
0内の最上位“1”状態のビット位置以下の位である。
図4は“0”に等しい補助レジスタ54aの内容のN個
の下位ビットを示すことによってこの点を示しており、
Nはブロックレジスタ70内の最上位“1”のビット位
置である。
6の出力に接続され、レジスタバス62aと62bに接
続されている他、ARAU52aと52bにも直接接続
されている。ブロックレジスタ70は間接アドレシング
方式に“循環的”特徴を与え、1ブロックのデータメモ
リロケーションがループ式に反復アクセス可能となるよ
うにする。当該分野では周知なように、デジタル信号処
理の用途で必要な一部の計算は、1ブロックの記憶デー
タに対する反復演算で表わすことができる。例えば、有
限パルス応答(FIR)デジタルフィルタ機能の計算
は、1ブロックのデータに対する乗算−累算演算の反復
を必要とし、乗算−累算の結果はオペランドの一つがそ
こからフェッチされたメモリロケーション内に記憶され
る。次に図4を参照して、循環アドレシングの動作をC
PU12内の各種レジスタの内容を見ながら説明する。
CPU12は、まずALU48によってブロックレジス
タ70に問合せることによって循環アドレシングを行
い、こゝではビット位置“N”と称する、最上位の記憶
された“1”のデータ状態の位置を判定する。ブロック
レジスタ70内に記憶された値は、循環的にアドレスさ
れるべきデータブロック内のメモリロケーションの数を
有する。データブロックの(その一端における)最初の
ベースアドレスは、間接アドレシングモードで使われる
補助レジスタ54の一つの内容と見なされ、これらのビ
ット位置は“0”論理状態になってブロックレジスタ7
0内の最上位“1”状態のビット位置以下の位である。
図4は“0”に等しい補助レジスタ54aの内容のN個
の下位ビットを示すことによってこの点を示しており、
Nはブロックレジスタ70内の最上位“1”のビット位
置である。
【0024】尚、コントローラ14からの変位コードも
インディックスレジスタ68aの内容を置換することに
よって、循環アドレシング特徴で使用可能である。この
例のためには、インディックスレジスタ68aの内容が
循環アドレシング特徴の演算を記述するのに使われる。
この結果、記憶データのブロック端を(補助レジスタ5
4a内に記憶された)最初のベースアドレスと見なすこ
とができ、N以下のビット位置がブロックレジスタ70
の内容を含んでいる。この値は、データのブロック端の
メモリアドレスに1をプラスしたものである。次に図5
を参照し、循環アドレシングを用いて補助レジスタ54
aをインクレメントする動作の一例を説明する。Nより
大きい(つまりブロックレジスタ70内の最上位“1”
より高い)ビット位置に対応した補助レジスタ54aに
ビット位置の内容は常に、そこへ最初に記憶されたベー
スアドレスのNより大きいビット位置の内容と等しいま
ゝである。補助レジスタ54aのN以下のビットの内容
(以下“インディックス”と称する)が、前述のごとく
計算されたインディックスレジスタ68aの内容(以下
“ステップ”と称する)と組合わされる。前述したよう
に、補助レジスタ54aのN以下のビットは最初ゼロだ
が、循環アドレシングモードの詳細は以下一般的なケー
スについて説明する。場合に応じてARAU52aまた
は52bが、アドレシングモードによって指定されたイ
ンディックスのインディックスレジスタ68aとの組合
せを行う。この例の目的上、ARAU52aは、循環ア
ドレシングモードで使われるARAU52aと52bの
一方を称するものとする。
インディックスレジスタ68aの内容を置換することに
よって、循環アドレシング特徴で使用可能である。この
例のためには、インディックスレジスタ68aの内容が
循環アドレシング特徴の演算を記述するのに使われる。
この結果、記憶データのブロック端を(補助レジスタ5
4a内に記憶された)最初のベースアドレスと見なすこ
とができ、N以下のビット位置がブロックレジスタ70
の内容を含んでいる。この値は、データのブロック端の
メモリアドレスに1をプラスしたものである。次に図5
を参照し、循環アドレシングを用いて補助レジスタ54
aをインクレメントする動作の一例を説明する。Nより
大きい(つまりブロックレジスタ70内の最上位“1”
より高い)ビット位置に対応した補助レジスタ54aに
ビット位置の内容は常に、そこへ最初に記憶されたベー
スアドレスのNより大きいビット位置の内容と等しいま
ゝである。補助レジスタ54aのN以下のビットの内容
(以下“インディックス”と称する)が、前述のごとく
計算されたインディックスレジスタ68aの内容(以下
“ステップ”と称する)と組合わされる。前述したよう
に、補助レジスタ54aのN以下のビットは最初ゼロだ
が、循環アドレシングモードの詳細は以下一般的なケー
スについて説明する。場合に応じてARAU52aまた
は52bが、アドレシングモードによって指定されたイ
ンディックスのインディックスレジスタ68aとの組合
せを行う。この例の目的上、ARAU52aは、循環ア
ドレシングモードで使われるARAU52aと52bの
一方を称するものとする。
【0025】循環アドレシングは、図3に示したARA
U52a、52bの比較器86と、加/減算器90によ
ってなされる。比較器86は、加/減算器90に(図3
のライン87で示す)制御出力を与える。この制御出力
は、ブロックレジスタ70の内容に対して、インディッ
クス及びステップの値の間の関係に応じて、前述のごと
く選択された加/減算器80の出力ビット(“インディ
ックス”)とブロックレジスタ70の内容との比較結果
に対応している。その第1の関係で、インディックス及
びステップの組合せがゼロ以上でブロックレジスタ70
の内容以下の場合には、補助レジスタ54aの更新内容
のN以下のビットがインディックスとステップの和(あ
るいは場合によっては差)から成る。すなわち、第1の
関係の条件が満たされると、加/減算器90は加算と減
算どちらも行わず、その出力に加/減算器80の出力を
そのまゝ与える。この第1の関係の式は次のように表わ
せる。 IF O < = indexn + /-step < = block THEN indexn+1 = indexn + + /-step 上記の関係において、“ indexn ”は変更前における補
助レジスタ54aのN以下のビット位置の内容で、“ i
ndexn+1 ”は変更後におけるN以下のビット位置の内容
を表わし、“step”はインディックスレジスタ68a
(この例の場合)の内容を表わし、“block ”はブロッ
クレジスタ70の内容を表わす。
U52a、52bの比較器86と、加/減算器90によ
ってなされる。比較器86は、加/減算器90に(図3
のライン87で示す)制御出力を与える。この制御出力
は、ブロックレジスタ70の内容に対して、インディッ
クス及びステップの値の間の関係に応じて、前述のごと
く選択された加/減算器80の出力ビット(“インディ
ックス”)とブロックレジスタ70の内容との比較結果
に対応している。その第1の関係で、インディックス及
びステップの組合せがゼロ以上でブロックレジスタ70
の内容以下の場合には、補助レジスタ54aの更新内容
のN以下のビットがインディックスとステップの和(あ
るいは場合によっては差)から成る。すなわち、第1の
関係の条件が満たされると、加/減算器90は加算と減
算どちらも行わず、その出力に加/減算器80の出力を
そのまゝ与える。この第1の関係の式は次のように表わ
せる。 IF O < = indexn + /-step < = block THEN indexn+1 = indexn + + /-step 上記の関係において、“ indexn ”は変更前における補
助レジスタ54aのN以下のビット位置の内容で、“ i
ndexn+1 ”は変更後におけるN以下のビット位置の内容
を表わし、“step”はインディックスレジスタ68a
(この例の場合)の内容を表わし、“block ”はブロッ
クレジスタ70の内容を表わす。
【0026】第2の関係で、インディックスとステップ
の組合せがゼロより小さい場合には、補助レジスタ54
のN以下のビットの変更内容がインディックスとステッ
プの和(または差)に、ブロックレジスタ70の内容を
プラスしたものとなる。これは、比較器86の制御出力
で加/減算器90によってブロックレジスタ70の内容
を加/減算器80の出力へ加算することにより、ARA
U52aにおいて行われる。そして、この加算の結果が
マルチプレクサ88に与えられる。これは次の式で表わ
せる。 IF O > = indexn + /-step THEN indexn+1 = (indexn + /-step)+ block 最後に、補助レジスタ54aのN以下のビット位置の組
合せがブロックレジスタ70の内容より大きいと、ブロ
ックレジスタ70の内容がインディックスとインディッ
クスレジスタ68aの内容との和(または差)から減算
される。前記の関係と同じく、ARAU52aは、これ
を、加/減算器80の出力からブロックレジスタ70の
内容を加/減算器90に減算させる比較器86によって
行い、その結果をマルチプレクサ88に与える。この場
合の式は次のとおりである。
の組合せがゼロより小さい場合には、補助レジスタ54
のN以下のビットの変更内容がインディックスとステッ
プの和(または差)に、ブロックレジスタ70の内容を
プラスしたものとなる。これは、比較器86の制御出力
で加/減算器90によってブロックレジスタ70の内容
を加/減算器80の出力へ加算することにより、ARA
U52aにおいて行われる。そして、この加算の結果が
マルチプレクサ88に与えられる。これは次の式で表わ
せる。 IF O > = indexn + /-step THEN indexn+1 = (indexn + /-step)+ block 最後に、補助レジスタ54aのN以下のビット位置の組
合せがブロックレジスタ70の内容より大きいと、ブロ
ックレジスタ70の内容がインディックスとインディッ
クスレジスタ68aの内容との和(または差)から減算
される。前記の関係と同じく、ARAU52aは、これ
を、加/減算器80の出力からブロックレジスタ70の
内容を加/減算器90に減算させる比較器86によって
行い、その結果をマルチプレクサ88に与える。この場
合の式は次のとおりである。
【0027】IF indexn + /-step > block THEN indexn+1 = (indexn + /-step)+ block コントローラ14は、図3に示したごとくマルチプレク
サ88によって加/減算器90の出力を選びバス67a
へ与えることで循環アドレシングモードを選択する。上
記の説明から明らかなように、循環アドレシングの特徴
はメモリロケーション用のアドレスについて自動的なル
ープ折返しを与えるだけでなく、メモリアドレスの変更
が所望のデータブロック外で行われる場合にも動作可能
である。これは、データブロックのアドレシングにおけ
る追加の融通性を与える。例えば、ブロックサイズが奇
数であれば、2のインディックスでまず偶数のメモリア
ドレスを順序付けした後、奇数のメモリアドレスを順序
付けることによって、メモリブロックがアドレスされ
る。このような方法により、一部のデジタル信号処理の
アプリケーションが、より少なくてもよいプログラムと
データスペース及びより速い性能によって実施可能とな
る。間接アドレシング機能における循環アドレシング特
徴の効果は、追加のアドレシングモードを生み出すこと
にある。表3は、本発明の好ましい実施例に含まれる、
循環アドレシング特徴を備えたそれらの間接アドレシン
グをリストアップしている。表3中“circ( )”は、場
合に応じて変位コードまたはインディックスレジスタ6
8を伴なう、“ARn ”で表わされる補助レジスタ54の
選択された一つの内容に対する演算での前記循環特徴の
組合せを示し、補助レジスタ54の変更内容は“ARn
′”で表わしてある。 表 3 説 明 演 算 間接的 w/ 前変位加算及び循環変更 add=ARn ARn′=circ(ARn + disp) 間接的 w/ 後変位減算及び循環変更 add=ARn ARn′=circ(arn - disp) 間接的 w/ 後インディックス加算及び循環変更 add=ARn ARn′=circ(ARn + IRm) 間接的 w/ 後インディックス減算及び循環変更 add=ARn ARn′=circ(ARn + IRm) 再び図2を参照すれば、データバスコントローラ56が
データバス30のデータライン34dに接続され、デー
タバス30からCPU12の各種部分へのデータの流れ
を制御する。CPU12の内部に、一対のCPUバス6
0aと60b及び一対のレジスタバス62aと62bが
存在する。データバスコントローラ56は4−1マルチ
プレクサから成り、CPUバス60aと60b及びレジ
スタバス62aと62bに接続された4つの入力を有す
る。従って、任意のある時点におけるCPU12からデ
ータバス30のデータライン30dへの発信は、これら
4つの内部バスの任意の一つから生じ得る。このような
交信は勿論、データバス30d上へのデータ発信と共
に、対応したアドレス信号がアドレスライン30aまた
は30bに発生されることを要求する。ARAU52a
の出力はデータバス30のアドレスライン30aと30
bにそれぞれ接続されているので、このようなアドレス
はデータバスコントローラ56を介した所望のデータ発
信と共にCPU12から発生する可能である。
サ88によって加/減算器90の出力を選びバス67a
へ与えることで循環アドレシングモードを選択する。上
記の説明から明らかなように、循環アドレシングの特徴
はメモリロケーション用のアドレスについて自動的なル
ープ折返しを与えるだけでなく、メモリアドレスの変更
が所望のデータブロック外で行われる場合にも動作可能
である。これは、データブロックのアドレシングにおけ
る追加の融通性を与える。例えば、ブロックサイズが奇
数であれば、2のインディックスでまず偶数のメモリア
ドレスを順序付けした後、奇数のメモリアドレスを順序
付けることによって、メモリブロックがアドレスされ
る。このような方法により、一部のデジタル信号処理の
アプリケーションが、より少なくてもよいプログラムと
データスペース及びより速い性能によって実施可能とな
る。間接アドレシング機能における循環アドレシング特
徴の効果は、追加のアドレシングモードを生み出すこと
にある。表3は、本発明の好ましい実施例に含まれる、
循環アドレシング特徴を備えたそれらの間接アドレシン
グをリストアップしている。表3中“circ( )”は、場
合に応じて変位コードまたはインディックスレジスタ6
8を伴なう、“ARn ”で表わされる補助レジスタ54の
選択された一つの内容に対する演算での前記循環特徴の
組合せを示し、補助レジスタ54の変更内容は“ARn
′”で表わしてある。 表 3 説 明 演 算 間接的 w/ 前変位加算及び循環変更 add=ARn ARn′=circ(ARn + disp) 間接的 w/ 後変位減算及び循環変更 add=ARn ARn′=circ(arn - disp) 間接的 w/ 後インディックス加算及び循環変更 add=ARn ARn′=circ(ARn + IRm) 間接的 w/ 後インディックス減算及び循環変更 add=ARn ARn′=circ(ARn + IRm) 再び図2を参照すれば、データバスコントローラ56が
データバス30のデータライン34dに接続され、デー
タバス30からCPU12の各種部分へのデータの流れ
を制御する。CPU12の内部に、一対のCPUバス6
0aと60b及び一対のレジスタバス62aと62bが
存在する。データバスコントローラ56は4−1マルチ
プレクサから成り、CPUバス60aと60b及びレジ
スタバス62aと62bに接続された4つの入力を有す
る。従って、任意のある時点におけるCPU12からデ
ータバス30のデータライン30dへの発信は、これら
4つの内部バスの任意の一つから生じ得る。このような
交信は勿論、データバス30d上へのデータ発信と共
に、対応したアドレス信号がアドレスライン30aまた
は30bに発生されることを要求する。ARAU52a
の出力はデータバス30のアドレスライン30aと30
bにそれぞれ接続されているので、このようなアドレス
はデータバスコントローラ56を介した所望のデータ発
信と共にCPU12から発生する可能である。
【0028】ARAU52aと52bの並列特性が、単
一マシンサイクル内での1より多いメモリアドレスのC
PU12による計算を可能とする。従って、データバス
コントローラ56は単一マシンサイクル内で、1より多
いCPUバス60とレジスタバス62をデータバス30
のデータライン30dに接続可能である。ARAU52
aと52bの出力のデータバス30のアドレスライン3
0aと30bに対する印加の制御及びCPU12の内部
バスに対するデータライン30dの時間多重化の制御
は、実施される命令コードに基づきコントローラ14に
よってなされる。次に図6を参照して、周辺ポート24
と26の構造を詳しく説明する。周辺ポート24と26
は図1を参照して前述したように、データ30、プログ
ラムバス34及びDMAバス38に接続されている。周
辺ポート24は主にマルチプレクサ100から成り、こ
れがコントローラ14からラインSEL24上に発生され
る制御信号に応じて、外部データラインDn をデータバ
ス30のデータライン30d、プログラムバス34のデ
ータライン34dまたはDMAバス38のデータライン
38dへ選択的に接続する。尚、マルチプレクサ100
は外部データラインDn とデータライン30d、34d
または38dの間で双方的な接続を生成し、両者間でデ
ータを送受可能である。さらにマルチプレクサ102
が、どのデータラインがマルチプレクサ100によって
データラインDn へ接続されるかに応じコントローラ1
4に応答して、外部アドレスラインAn をデータバス3
0のアドレスライン30aか30b、プログラムバス3
4のアドレスライン34a、またはDMAバス38のア
ドレスライン38aへ選択的に接続する。
一マシンサイクル内での1より多いメモリアドレスのC
PU12による計算を可能とする。従って、データバス
コントローラ56は単一マシンサイクル内で、1より多
いCPUバス60とレジスタバス62をデータバス30
のデータライン30dに接続可能である。ARAU52
aと52bの出力のデータバス30のアドレスライン3
0aと30bに対する印加の制御及びCPU12の内部
バスに対するデータライン30dの時間多重化の制御
は、実施される命令コードに基づきコントローラ14に
よってなされる。次に図6を参照して、周辺ポート24
と26の構造を詳しく説明する。周辺ポート24と26
は図1を参照して前述したように、データ30、プログ
ラムバス34及びDMAバス38に接続されている。周
辺ポート24は主にマルチプレクサ100から成り、こ
れがコントローラ14からラインSEL24上に発生され
る制御信号に応じて、外部データラインDn をデータバ
ス30のデータライン30d、プログラムバス34のデ
ータライン34dまたはDMAバス38のデータライン
38dへ選択的に接続する。尚、マルチプレクサ100
は外部データラインDn とデータライン30d、34d
または38dの間で双方的な接続を生成し、両者間でデ
ータを送受可能である。さらにマルチプレクサ102
が、どのデータラインがマルチプレクサ100によって
データラインDn へ接続されるかに応じコントローラ1
4に応答して、外部アドレスラインAn をデータバス3
0のアドレスライン30aか30b、プログラムバス3
4のアドレスライン34a、またはDMAバス38のア
ドレスライン38aへ選択的に接続する。
【0029】多数の制御ラインが、(図面を見易くする
ため図示してないが、ライン上の)同じくコントローラ
14から発生される信号に応じて、周辺ポート24内の
バッファ104によって制御される。周辺ポート24か
ら出力されるこれらの制御ラインには、周辺ポート24
を通じたデータの流れ方向を指定するラインR/W-が
含まれる。例えば、外部のメモリ装置は、その入/出力
端子をラインDn へ接続し、そのアドレス端子をライン
An へ接続することによりデータメモリとして機能し得
る。マイクロコンピュータ10の周辺ポート24は、所
望のアドレスライン、例えばデータバス30のアドレス
ライン30bをラインAn に接続し、ラインR/W- を
高論理状態に駆動し、外部メモリ装置がデータバス30
のアドレスライン30b上に指定されたロケーションで
読み取られるべきことを指示することによって、そのよ
うな外部メモリのメモリ読取を行える。逆に、ラインR
/W- 上の高論理状態は、外部メモリ装置がマルチプレ
クサ100を介してラインDn に接続されたデータライ
ン30d上に存在するデータ状態で書き込まれるべきこ
とを指示する。周辺ポート24に接続された制御ライン
は、さらに、コントローラ14に応じバッファ104に
よって駆動されるラインSTRB- (ラインR/W- と
同じく“−”の表示はアクティブローを示す)を含み、
これは場合に応じ、ラインAnに接続された一組のアド
レスライン30a、30b、34aまたは38aの何れ
が有効なアドレス信号をアドレスメモリに与えているか
を指示するクロック信号である。ラインHOLD- とR
DY- は、外部装置からマイクロコンピュータ10への
入力である。アクティブローのラインHOLD- は周辺
ポート24によってそのラインDn 、An 、R/W- 及
びSTRB- へのインタフェースを高インピーダンス状
態に置き、かかるラインに接続された複数の装置がコン
ピュータ10からの干渉またそれへの干渉を生じること
なく相互間で交信可能である。
ため図示してないが、ライン上の)同じくコントローラ
14から発生される信号に応じて、周辺ポート24内の
バッファ104によって制御される。周辺ポート24か
ら出力されるこれらの制御ラインには、周辺ポート24
を通じたデータの流れ方向を指定するラインR/W-が
含まれる。例えば、外部のメモリ装置は、その入/出力
端子をラインDn へ接続し、そのアドレス端子をライン
An へ接続することによりデータメモリとして機能し得
る。マイクロコンピュータ10の周辺ポート24は、所
望のアドレスライン、例えばデータバス30のアドレス
ライン30bをラインAn に接続し、ラインR/W- を
高論理状態に駆動し、外部メモリ装置がデータバス30
のアドレスライン30b上に指定されたロケーションで
読み取られるべきことを指示することによって、そのよ
うな外部メモリのメモリ読取を行える。逆に、ラインR
/W- 上の高論理状態は、外部メモリ装置がマルチプレ
クサ100を介してラインDn に接続されたデータライ
ン30d上に存在するデータ状態で書き込まれるべきこ
とを指示する。周辺ポート24に接続された制御ライン
は、さらに、コントローラ14に応じバッファ104に
よって駆動されるラインSTRB- (ラインR/W- と
同じく“−”の表示はアクティブローを示す)を含み、
これは場合に応じ、ラインAnに接続された一組のアド
レスライン30a、30b、34aまたは38aの何れ
が有効なアドレス信号をアドレスメモリに与えているか
を指示するクロック信号である。ラインHOLD- とR
DY- は、外部装置からマイクロコンピュータ10への
入力である。アクティブローのラインHOLD- は周辺
ポート24によってそのラインDn 、An 、R/W- 及
びSTRB- へのインタフェースを高インピーダンス状
態に置き、かかるラインに接続された複数の装置がコン
ピュータ10からの干渉またそれへの干渉を生じること
なく相互間で交信可能である。
【0030】ラインHOLDA- は周辺ポート24のバ
ッファ104を介してコントローラ14によって駆動さ
れるアクノレジ信号で、その低論理状態において、マイ
クロコンピュータ10が低論理状態のHOLD- 信号を
受信していることを示し、周辺ポート24を高インピー
ダンス状態下に置く。ラインRDY- もマイクロコンピ
ュータ10への入力で、その低論理状態に駆動されたと
き、データラインDn、アドレスラインAn 、及び制御
ラインR/W- とSTRB- に接続された外部装置がマ
イクロコンピュータ10との交信サイクルを完了したこ
とを示す。コントローラ14は、低のRDY- 信号で終
了した交信サイクルに関する以外の有効状態へと周辺ポ
ート24によって上記ラインを駆動する前に、RDY-
信号を必要とする。周辺ポート26も周辺ポート24と
同様に構成されるが、周辺ポート24から独立したライ
ンSEL26によって制御され、周辺ポート24と26に
よって使われるバス30、34及び38が同時に使用さ
れない限り、両周辺ポートにおける交信が同時且つ独立
に発生可能である。周辺ポート26は主に、外部入/出
力装置との交信で使われる。従って、図6に示すよう
に、周辺ポート26は周辺ポート24内の同様の構成要
素と対応したマルチプレクサ108と110、及びバッ
ファ112を有する。同じく、周辺ポート26はデータ
バス30、プログラムバス34及びDMAバス38を、
周辺ポート24での同様に表示されたラインと同じ機能
をそれぞれ有するラインI/ODn 、I/OAn 、I/
ORDY- 、I/OSTRB- 、I/OHOLD- 、I
/OHOLDA- 及びI/OR/W- にインタフェース
する。尚、複数のバス30、34及び38が周辺ポート
24と26にそれぞれ接続されているため、周辺ポート
24と26は同時に動作可能である。
ッファ104を介してコントローラ14によって駆動さ
れるアクノレジ信号で、その低論理状態において、マイ
クロコンピュータ10が低論理状態のHOLD- 信号を
受信していることを示し、周辺ポート24を高インピー
ダンス状態下に置く。ラインRDY- もマイクロコンピ
ュータ10への入力で、その低論理状態に駆動されたと
き、データラインDn、アドレスラインAn 、及び制御
ラインR/W- とSTRB- に接続された外部装置がマ
イクロコンピュータ10との交信サイクルを完了したこ
とを示す。コントローラ14は、低のRDY- 信号で終
了した交信サイクルに関する以外の有効状態へと周辺ポ
ート24によって上記ラインを駆動する前に、RDY-
信号を必要とする。周辺ポート26も周辺ポート24と
同様に構成されるが、周辺ポート24から独立したライ
ンSEL26によって制御され、周辺ポート24と26に
よって使われるバス30、34及び38が同時に使用さ
れない限り、両周辺ポートにおける交信が同時且つ独立
に発生可能である。周辺ポート26は主に、外部入/出
力装置との交信で使われる。従って、図6に示すよう
に、周辺ポート26は周辺ポート24内の同様の構成要
素と対応したマルチプレクサ108と110、及びバッ
ファ112を有する。同じく、周辺ポート26はデータ
バス30、プログラムバス34及びDMAバス38を、
周辺ポート24での同様に表示されたラインと同じ機能
をそれぞれ有するラインI/ODn 、I/OAn 、I/
ORDY- 、I/OSTRB- 、I/OHOLD- 、I
/OHOLDA- 及びI/OR/W- にインタフェース
する。尚、複数のバス30、34及び38が周辺ポート
24と26にそれぞれ接続されているため、周辺ポート
24と26は同時に動作可能である。
【0031】次に、図7を参照して、コントローラ14
の構造と動作を詳しく説明する。コントローラ14は、
命令コードによって指定された所望の動作が正しく実行
されるように、マイクロコンピュータ10の残部の動作
を制御する目的を果たす。コントローラ14は、マイク
ロコンピュータ10の外部から与えられるクロック信号
を受信する。コントローラ14内のクロック発生器20
0が端子X1とX2に接続され、マイクロコンピュータ
10内で使われる内部クロック信号、例えばラインCL
KIN上にシステムクロックを発生する。クリスタル両
端子X1とX2間に接続されている場合には、クロック
発生器200が内部発振器によってラインCLKIN上
にシステムクロック信号を発生する。あるいは、外部発
生クロックを端子X2に加えてもよく、この場合には外
部発生クロック信号が(必要なからクロック発生器20
0内のn分割器(図示せず)を介して)ラインCLKI
N上にシステムクロック信号を発生する。クロック発生
器200は更に、ラインCLKIN上に発生されるクロ
ック信号の周期の第1及び第3クォータ(1/4)サイクル
で生じるクロック信号Q1とQ2も発生し、これらのク
ロック信号Q1とQ2は後述するようにコントローラ1
4内のメモリアクセス仲裁ロジック206によって使わ
れる。
の構造と動作を詳しく説明する。コントローラ14は、
命令コードによって指定された所望の動作が正しく実行
されるように、マイクロコンピュータ10の残部の動作
を制御する目的を果たす。コントローラ14は、マイク
ロコンピュータ10の外部から与えられるクロック信号
を受信する。コントローラ14内のクロック発生器20
0が端子X1とX2に接続され、マイクロコンピュータ
10内で使われる内部クロック信号、例えばラインCL
KIN上にシステムクロックを発生する。クリスタル両
端子X1とX2間に接続されている場合には、クロック
発生器200が内部発振器によってラインCLKIN上
にシステムクロック信号を発生する。あるいは、外部発
生クロックを端子X2に加えてもよく、この場合には外
部発生クロック信号が(必要なからクロック発生器20
0内のn分割器(図示せず)を介して)ラインCLKI
N上にシステムクロック信号を発生する。クロック発生
器200は更に、ラインCLKIN上に発生されるクロ
ック信号の周期の第1及び第3クォータ(1/4)サイクル
で生じるクロック信号Q1とQ2も発生し、これらのク
ロック信号Q1とQ2は後述するようにコントローラ1
4内のメモリアクセス仲裁ロジック206によって使わ
れる。
【0032】命令コードのフェッチ及びかかる命令コー
ドに応じたマイクロコンピュータ10の制御に関連し
て、コントローラ14はプログラムカウンタ(PC)9
2、命令レジスタ(IR)94、制御ロジック202、
及びプログラムカウンタ制御ロジック204を含む。プ
ログラムカウンタ92は24ビットのビットレジスタ
で、プログラムバス34のアドレスライン34aに接続
された出力を有する。プログラムカウンタ92の機能
は、マイクロコンピュータ10によってフェッチ、デコ
ード及び実行されるべき次の命令のメモリアドレスを記
憶することにある。命令フェッチサイクル(ラインCL
KIN上のシステムクロック信号の一周期中に生じる)
中に、プログラムカウンタ92の内容がプログラムバス
34のアドレスライン34a上に置かれ、アドレス信号
に対応したメモリロケーションを含むメモリ16、1
8、20の一つ(または外部メモリ)が、アドレスされ
た内容をプログラムバス34のデータライン34d上に
与える。このときプログラムカウンタ92内に含まれた
アドレスを有するメモリロケーションの内容が、デコー
ドされるべき次の命令の命令コードを構成する。命令レ
ジスタ94は32ビットのレジスタで、プログラムバス
34のデータライン34dに接続され、フェッチサイク
ル中プログラムカウンタ92の内容を受け取る。
ドに応じたマイクロコンピュータ10の制御に関連し
て、コントローラ14はプログラムカウンタ(PC)9
2、命令レジスタ(IR)94、制御ロジック202、
及びプログラムカウンタ制御ロジック204を含む。プ
ログラムカウンタ92は24ビットのビットレジスタ
で、プログラムバス34のアドレスライン34aに接続
された出力を有する。プログラムカウンタ92の機能
は、マイクロコンピュータ10によってフェッチ、デコ
ード及び実行されるべき次の命令のメモリアドレスを記
憶することにある。命令フェッチサイクル(ラインCL
KIN上のシステムクロック信号の一周期中に生じる)
中に、プログラムカウンタ92の内容がプログラムバス
34のアドレスライン34a上に置かれ、アドレス信号
に対応したメモリロケーションを含むメモリ16、1
8、20の一つ(または外部メモリ)が、アドレスされ
た内容をプログラムバス34のデータライン34d上に
与える。このときプログラムカウンタ92内に含まれた
アドレスを有するメモリロケーションの内容が、デコー
ドされるべき次の命令の命令コードを構成する。命令レ
ジスタ94は32ビットのレジスタで、プログラムバス
34のデータライン34dに接続され、フェッチサイク
ル中プログラムカウンタ92の内容を受け取る。
【0033】ラインCLKIN上のシステムクロック信
号のフェッチサイクルに続く次の周期で生じるデコード
サイクル中に、命令レジスタ94の内容が制御ロジック
202によってデコードされ、コントローラ14から出
る制御信号をマイクロコンピュータ10の機能回路に発
生する。これを達成するため、制御ロジック202の第
1部分は、命令コードをデコードする組合せロジックを
含む。このような組合せロジック(図7にロジック20
2aとして示す)は、プログラマブル論理アレイや読出
専用メモリ等周知のさまざまな方法で実現できる。つま
り、命令レジスタ94からの命令コードは、組合せロジ
ック202aによってデコードされ複数の出力ラインに
導かれる。これら出力ラインの一部は、プログラムカウ
ンタ制御ロジック204等制御ロジック202外部の機
能に直接接続される一方、他の出力ラインは制御ロジッ
ク202内の逐次ロジック202b内に入力される。逐
次ロジック202bはマイクロコンピュータ10の各種
機能を制御するように動作し、CPU12によるメモリ
からのデータオペランドの読出を可能にすると共に、C
PU12から該オペランドに加えられるデータ処理動作
の実行を制御する。逐次ロジック202bは勿論これら
を、そこから出ていく追加の出力ラインを介して達成す
る。つまり、組合せロジック202aまたは逐次ロジッ
ク202bいずれにせよ制御ロジック202からの出力
ラインの論理状態は、命令レジスタ94から制御ロジッ
ク202によって受信された命令コードによって決ま
る。尚、ここで参照する図面は見易くするため、コント
ローラ14とかかる機能回路間における制御ラインの接
続を示してない。
号のフェッチサイクルに続く次の周期で生じるデコード
サイクル中に、命令レジスタ94の内容が制御ロジック
202によってデコードされ、コントローラ14から出
る制御信号をマイクロコンピュータ10の機能回路に発
生する。これを達成するため、制御ロジック202の第
1部分は、命令コードをデコードする組合せロジックを
含む。このような組合せロジック(図7にロジック20
2aとして示す)は、プログラマブル論理アレイや読出
専用メモリ等周知のさまざまな方法で実現できる。つま
り、命令レジスタ94からの命令コードは、組合せロジ
ック202aによってデコードされ複数の出力ラインに
導かれる。これら出力ラインの一部は、プログラムカウ
ンタ制御ロジック204等制御ロジック202外部の機
能に直接接続される一方、他の出力ラインは制御ロジッ
ク202内の逐次ロジック202b内に入力される。逐
次ロジック202bはマイクロコンピュータ10の各種
機能を制御するように動作し、CPU12によるメモリ
からのデータオペランドの読出を可能にすると共に、C
PU12から該オペランドに加えられるデータ処理動作
の実行を制御する。逐次ロジック202bは勿論これら
を、そこから出ていく追加の出力ラインを介して達成す
る。つまり、組合せロジック202aまたは逐次ロジッ
ク202bいずれにせよ制御ロジック202からの出力
ラインの論理状態は、命令レジスタ94から制御ロジッ
ク202によって受信された命令コードによって決ま
る。尚、ここで参照する図面は見易くするため、コント
ローラ14とかかる機能回路間における制御ラインの接
続を示してない。
【0034】従って、制御ロジック202内の組合せロ
ジック202aが命令レジスタ94に記憶された命令コ
ードをデコードしている間に、コントローラ14がメモ
リから次の命令をフェッチ可能であることが明らかであ
ろう。さらに当該分野で周知のごとく、逐次ロジック2
02bは前にフェッチされた命令の実行を制御すると同
時に、ある命令に関するオペランドの読出を制御するよ
うに動作可能である。従って制御ロジック202は、4
つの異なる命令コードの各部分が同時に実行可能な方法
でマイクロコンピュータ10を制御できる。このような
命令コードの“パイプライン”は、あるシーケンスの命
令を実行するのに必要な時間を明らかに減少する。図8
は、パイプラインがいかに満たされるか、従ってパイプ
ラインがいかに一般の命令に対して動作するかを示して
いる。ラインCLKIN上のシステムクロック信号の第
1サイクルでは命令nが、例えばメモリ16、18、2
0の一つからコントローラ14によってフェッチされ
る。しかし、このフェッチサイクル中、プログラムカウ
ンタ制御ロジック204はプログラムカウンタ92の内
容をインクレメントし、命令n+1のための命令コード
のメモリロケーションをそこに入れている。ラインHL
KIN上のシステムクロック信号の第2サイクルでは、
命令nのための命令コードが制御ロジック202によっ
てデコードされる。同時にこの第2サイクル中、プログ
ラムカウンタ92の内容がプログラムバス34のアドレ
スライン34aに与えられ、命令n+1のための命令コ
ードがプログラムメモリからフェッチされて命令レジス
タ94にロードされる。
ジック202aが命令レジスタ94に記憶された命令コ
ードをデコードしている間に、コントローラ14がメモ
リから次の命令をフェッチ可能であることが明らかであ
ろう。さらに当該分野で周知のごとく、逐次ロジック2
02bは前にフェッチされた命令の実行を制御すると同
時に、ある命令に関するオペランドの読出を制御するよ
うに動作可能である。従って制御ロジック202は、4
つの異なる命令コードの各部分が同時に実行可能な方法
でマイクロコンピュータ10を制御できる。このような
命令コードの“パイプライン”は、あるシーケンスの命
令を実行するのに必要な時間を明らかに減少する。図8
は、パイプラインがいかに満たされるか、従ってパイプ
ラインがいかに一般の命令に対して動作するかを示して
いる。ラインCLKIN上のシステムクロック信号の第
1サイクルでは命令nが、例えばメモリ16、18、2
0の一つからコントローラ14によってフェッチされ
る。しかし、このフェッチサイクル中、プログラムカウ
ンタ制御ロジック204はプログラムカウンタ92の内
容をインクレメントし、命令n+1のための命令コード
のメモリロケーションをそこに入れている。ラインHL
KIN上のシステムクロック信号の第2サイクルでは、
命令nのための命令コードが制御ロジック202によっ
てデコードされる。同時にこの第2サイクル中、プログ
ラムカウンタ92の内容がプログラムバス34のアドレ
スライン34aに与えられ、命令n+1のための命令コ
ードがプログラムメモリからフェッチされて命令レジス
タ94にロードされる。
【0035】図8に示した第3のシステムクロックサイ
クルでは、逐次ロジック202bが命令nに必要なデー
タオペランドを、データバス30を介してメモリ(例え
ばRAM16)から読み取る。さらに、命令n+1のた
めの命令コードがフェッチされているので、図8の第3
サイクルでは図示のように、命令n+1が制御ロジック
202の組合せロジック202aでデコードされてい
る。また、命令n用の読取サイクルと同時に、命令n+
2のための命令コードがフェッチされる。但し、命令n
用の読取サイクルとバスまたはメモリ衝突を生じている
ものとする。前述したように、一般にデータオペランド
はデータバス30を介しCPU12によって読み取られ
る一方、命令コードはプログラムバス34を介して読み
取られ、両方が異なるメモリ16、18、20内にある
か、または一方が外部メモリ内にあるとすれば、バス衝
突は生じない。システムクロックの第4サイクルでは、
命令nが制御ロジック202内の逐次ロジック202b
の制御下で実行され、命令n+1用の読取動作が逐次ロ
ジック202bによって行われ、命令n+2のための命
令コードがデコードされ、命令n+3のための命令コー
ドがフェッチされる。従って、マイクロコンピュータ1
0のパイプラインが満たされ、命令シーケンスの性能が
最適となる。但し、一部の命令組合せでは、バス衝突及
びメモリアクセス衝突によって、動作の一つの待ちサイ
クルが生じる。
クルでは、逐次ロジック202bが命令nに必要なデー
タオペランドを、データバス30を介してメモリ(例え
ばRAM16)から読み取る。さらに、命令n+1のた
めの命令コードがフェッチされているので、図8の第3
サイクルでは図示のように、命令n+1が制御ロジック
202の組合せロジック202aでデコードされてい
る。また、命令n用の読取サイクルと同時に、命令n+
2のための命令コードがフェッチされる。但し、命令n
用の読取サイクルとバスまたはメモリ衝突を生じている
ものとする。前述したように、一般にデータオペランド
はデータバス30を介しCPU12によって読み取られ
る一方、命令コードはプログラムバス34を介して読み
取られ、両方が異なるメモリ16、18、20内にある
か、または一方が外部メモリ内にあるとすれば、バス衝
突は生じない。システムクロックの第4サイクルでは、
命令nが制御ロジック202内の逐次ロジック202b
の制御下で実行され、命令n+1用の読取動作が逐次ロ
ジック202bによって行われ、命令n+2のための命
令コードがデコードされ、命令n+3のための命令コー
ドがフェッチされる。従って、マイクロコンピュータ1
0のパイプラインが満たされ、命令シーケンスの性能が
最適となる。但し、一部の命令組合せでは、バス衝突及
びメモリアクセス衝突によって、動作の一つの待ちサイ
クルが生じる。
【0036】データバス30のデータライン30dはコ
ントローラ14に導かれ、プログラムカウンタ92がC
PU12によってまたはメモリからロードされることを
要求する分岐命令等、インクレメント方式以外でプログ
ラムの流れを制御する。例えば、無条件分岐の場合、命
令コード、メモリからの読取、またはCPU12内のレ
ジスタからの読取に含まれるオペランドの値は、実行す
べき次の命令コードを含むメモリロケーションのアドレ
スを含み得る。そして、プログラムカウンタ制御ロジッ
ク204がデータライン30d上に与えられた値を受け
取ってプログラムカウンタ92にロードし、プログラム
制御が所望のロケーションに対してなされるようにす
る。図7に示すように、プログラムカウンタ制御ロジッ
ク204は、プログラムカウンタ92の内容を受け取る
加算器203を含む。制御ロジック202(好ましくは
その組合せロジック202a)が加算器203を制御
し、次にサイクルのためのプログラムカウンタ92の内
容発生がさまざまな方法で行えるようにする。前述のご
とく、加算器203はプログラムカウンタ92の前の内
容をインクレメントし、明細シーケンスのステップを進
めるだけである。しかし、プログラムカウンタ制御ロジ
ック204は、更に、データバス30のデータライン3
0dから値を受取可能なレジスタ205を含んでいる。
従って、プログラムカウンタ制御ロジック204は、さ
まざまな方法でプログラムカウンタ92の内容を計算で
きる。例えば、(プログラムカウタン92に対する)相
対アドレスへの分岐は、データバス30のデータライン
30d上に与えられた値をレジスタ205へロードする
ことによって得られ、この値がプログラムカウンタ92
の前の内容に加えられて、プログラムカウンタ92用の
新たな値を発生する。また、データバス30のデータラ
イン30dからの所望メモリアドレスをレジスタ205
にロードし、制御ロジック202により加算器203で
レジスタ205の内容と“ゼロ加算”を行いそれをプロ
グラムカウンタに与えることによって、絶対分岐を行う
こともできる。
ントローラ14に導かれ、プログラムカウンタ92がC
PU12によってまたはメモリからロードされることを
要求する分岐命令等、インクレメント方式以外でプログ
ラムの流れを制御する。例えば、無条件分岐の場合、命
令コード、メモリからの読取、またはCPU12内のレ
ジスタからの読取に含まれるオペランドの値は、実行す
べき次の命令コードを含むメモリロケーションのアドレ
スを含み得る。そして、プログラムカウンタ制御ロジッ
ク204がデータライン30d上に与えられた値を受け
取ってプログラムカウンタ92にロードし、プログラム
制御が所望のロケーションに対してなされるようにす
る。図7に示すように、プログラムカウンタ制御ロジッ
ク204は、プログラムカウンタ92の内容を受け取る
加算器203を含む。制御ロジック202(好ましくは
その組合せロジック202a)が加算器203を制御
し、次にサイクルのためのプログラムカウンタ92の内
容発生がさまざまな方法で行えるようにする。前述のご
とく、加算器203はプログラムカウンタ92の前の内
容をインクレメントし、明細シーケンスのステップを進
めるだけである。しかし、プログラムカウンタ制御ロジ
ック204は、更に、データバス30のデータライン3
0dから値を受取可能なレジスタ205を含んでいる。
従って、プログラムカウンタ制御ロジック204は、さ
まざまな方法でプログラムカウンタ92の内容を計算で
きる。例えば、(プログラムカウタン92に対する)相
対アドレスへの分岐は、データバス30のデータライン
30d上に与えられた値をレジスタ205へロードする
ことによって得られ、この値がプログラムカウンタ92
の前の内容に加えられて、プログラムカウンタ92用の
新たな値を発生する。また、データバス30のデータラ
イン30dからの所望メモリアドレスをレジスタ205
にロードし、制御ロジック202により加算器203で
レジスタ205の内容と“ゼロ加算”を行いそれをプロ
グラムカウンタに与えることによって、絶対分岐を行う
こともできる。
【0037】尚、分岐命令がその実際の発生より3命令
前にフェッチされるように、マイクロコンピュータ10
は“遅延”分岐命令を発することができる。遅延分岐命
令が実行されると、分岐の宛先メモリアドレスが間接分
岐としてレジスタ205にロードされる。しかし、制御
ロジック202は、遅延分岐命令の実行に続く次の3命
令の間、プログラムカウンタ92の内容をインクリメン
トし続ける。第3番目の命令にくると、加算器203が
レジスタ205の内容をプログラムカウンタ92に与
え、パイプライン方式の利点を維持しながら分岐を行
う。勿論、宛先ロケーションはそれまでと同様加算器2
03によってインクレメントされ続けるので、分岐後も
パイプラインは満たされている。コントローラ14は更
に割込ロジック250を含み、これはマイクロコンピュ
ータ10の複数の外部端子、コントローラ14、及びマ
イクロコンピュータ10内の各種機能に接続されてい
る。割込ロジック250は、RESET端子及び端子I
NT0〜INT3を経てマイクロコンピュータ10に与
えられる割込信号を受信すると共に、直列ポート42や
DMAコントローラ22等各種の機能からマイクロコン
ピュータの内部で発生される割込信号を受信する目的を
果たす。このような割込信号の一例は図7中、DMAコ
ントローラ22からの割込信号であるライン312によ
って示してある。CPU12内には制御レジスタとし
て、メモリマップ式のアドレス可能レジスタである割込
許可レジスタ252が含まれ、その内容が各々の割込信
号が許可または禁止されるかを指定する。
前にフェッチされるように、マイクロコンピュータ10
は“遅延”分岐命令を発することができる。遅延分岐命
令が実行されると、分岐の宛先メモリアドレスが間接分
岐としてレジスタ205にロードされる。しかし、制御
ロジック202は、遅延分岐命令の実行に続く次の3命
令の間、プログラムカウンタ92の内容をインクリメン
トし続ける。第3番目の命令にくると、加算器203が
レジスタ205の内容をプログラムカウンタ92に与
え、パイプライン方式の利点を維持しながら分岐を行
う。勿論、宛先ロケーションはそれまでと同様加算器2
03によってインクレメントされ続けるので、分岐後も
パイプラインは満たされている。コントローラ14は更
に割込ロジック250を含み、これはマイクロコンピュ
ータ10の複数の外部端子、コントローラ14、及びマ
イクロコンピュータ10内の各種機能に接続されてい
る。割込ロジック250は、RESET端子及び端子I
NT0〜INT3を経てマイクロコンピュータ10に与
えられる割込信号を受信すると共に、直列ポート42や
DMAコントローラ22等各種の機能からマイクロコン
ピュータの内部で発生される割込信号を受信する目的を
果たす。このような割込信号の一例は図7中、DMAコ
ントローラ22からの割込信号であるライン312によ
って示してある。CPU12内には制御レジスタとし
て、メモリマップ式のアドレス可能レジスタである割込
許可レジスタ252が含まれ、その内容が各々の割込信
号が許可または禁止されるかを指定する。
【0038】端子INT0〜INT3あるいはマイクロ
コンピュータ10内部からの割込許可信号に応じ、入/
出力メモリロケーションへのアクセスが現在行われてい
ないことをコントローラ14が指示すれば、割込ロジッ
ク250が特定の割込信号に対応したメモリアドレス
(割込ベクトル)をプログラムカウンタ92にロード
し、プログラムの実行が割込ベクトルのロケーションか
ら先へと継続する。割込ベクトルと呼ばれる割込処理ル
ーチンに一般に含まれた命令コードに応答して、割込ロ
ジック250が割込アクノレジ信号を外部割込の場合に
はラインINTAに、またDMAコントローラ22用の
内部割込信号の場合に、例えばライン314上に発生す
る。かかる動作の関連分野で周知のように、コントロー
ラ14はプログラムカウンタ92の前の内容を(一般
に、“スタック”と呼ばれる)所定のメモリロケーショ
ンに記憶し、割込の処理後、次にフェッチすべき命令コ
ードのロケーションが再ロードされる。図1及び図2か
ら、バス30、34、38のうち2つが同一メモリ1
6、18または20へ同時にアクセスするか、あるいは
(周辺ポート24または26を介して)外部メモリへ同
時にアクセスしない限り、マイクロコンピュータ10内
部の複数のバスがメモリ16、18及び20へ同時にア
クセス可能なことが明らかであろう。この場合には、コ
ントローラ14によってバス仲裁を行う必要がなく、メ
モリアクセスは独立に生じ得る。
コンピュータ10内部からの割込許可信号に応じ、入/
出力メモリロケーションへのアクセスが現在行われてい
ないことをコントローラ14が指示すれば、割込ロジッ
ク250が特定の割込信号に対応したメモリアドレス
(割込ベクトル)をプログラムカウンタ92にロード
し、プログラムの実行が割込ベクトルのロケーションか
ら先へと継続する。割込ベクトルと呼ばれる割込処理ル
ーチンに一般に含まれた命令コードに応答して、割込ロ
ジック250が割込アクノレジ信号を外部割込の場合に
はラインINTAに、またDMAコントローラ22用の
内部割込信号の場合に、例えばライン314上に発生す
る。かかる動作の関連分野で周知のように、コントロー
ラ14はプログラムカウンタ92の前の内容を(一般
に、“スタック”と呼ばれる)所定のメモリロケーショ
ンに記憶し、割込の処理後、次にフェッチすべき命令コ
ードのロケーションが再ロードされる。図1及び図2か
ら、バス30、34、38のうち2つが同一メモリ1
6、18または20へ同時にアクセスするか、あるいは
(周辺ポート24または26を介して)外部メモリへ同
時にアクセスしない限り、マイクロコンピュータ10内
部の複数のバスがメモリ16、18及び20へ同時にア
クセス可能なことが明らかであろう。この場合には、コ
ントローラ14によってバス仲裁を行う必要がなく、メ
モリアクセスは独立に生じ得る。
【0039】しかし、実行される命令コードに応じ、同
時アクセスが要求されることもある。従って、メモリア
クセスに関連したバス衝突を防ぐため、コントローラ1
4は更にメモリ仲裁ロジック206を含んでいる。メモ
リ仲裁ロジック206はクロック発生器200からクロ
ック信号Q1とQ2を受信し、またバス30、34及び
38の各アドレスライン上のアドレス信号も受信する。
メモリ仲裁ロジック206はメモリ16、18及び20
の各々にそれぞれ至るラインSEL16、SEL 18、SE
L20に出力信号を与え、更に周辺ポート24と26にそ
れぞれ至るラインSEL24とSEL26上にも信号を発生
する。メモリ仲裁ロジック206の目的は、メモリ1
6、18及び20並びに外部及び入/出力メモリへのア
クセスを所定の優先順位に従って制御することにある。
以下に示す例の目的上、優先順位はデータバス30のア
ドレスライン30aと30bが最高優先順位を持ち、そ
の後にプログラムバス34のアドレスライン34aが続
き、DMAバス38のアドレスライン38aが最下の優
先順位を持つものとする。この優先順位はマイクロコン
ピュータ10、特にCPU12の構造によって選ばれ
る。乗算器46とALU48の並列接続は、マイクロコ
ンピュータ10をデジタル信号処理の用途に応用した場
合に、命令フェッチのためデータ交信が待たなければな
らなくなると、その逆よりも著しく性能が影響される可
能性が強いことを意味する。DMA動作を最下の優先順
位としたのは、DAM動作が他の動作より遅くなること
で及ぼされるほとんどのアプリケーションプログラムに
対する性能全体の影響が最小となるからである。但し、
本発明の他の応用では、優先順位を変えた方がより良好
に動作することもある。例えば、グラフィック用途の場
合、ビデオ表示のリフレッシュ機能を与えるのに使われ
るのであれば、DMAは最高レベルに順位付けするのが
最良である。従って、ここでの説明による順位付けは例
示にすぎない。
時アクセスが要求されることもある。従って、メモリア
クセスに関連したバス衝突を防ぐため、コントローラ1
4は更にメモリ仲裁ロジック206を含んでいる。メモ
リ仲裁ロジック206はクロック発生器200からクロ
ック信号Q1とQ2を受信し、またバス30、34及び
38の各アドレスライン上のアドレス信号も受信する。
メモリ仲裁ロジック206はメモリ16、18及び20
の各々にそれぞれ至るラインSEL16、SEL 18、SE
L20に出力信号を与え、更に周辺ポート24と26にそ
れぞれ至るラインSEL24とSEL26上にも信号を発生
する。メモリ仲裁ロジック206の目的は、メモリ1
6、18及び20並びに外部及び入/出力メモリへのア
クセスを所定の優先順位に従って制御することにある。
以下に示す例の目的上、優先順位はデータバス30のア
ドレスライン30aと30bが最高優先順位を持ち、そ
の後にプログラムバス34のアドレスライン34aが続
き、DMAバス38のアドレスライン38aが最下の優
先順位を持つものとする。この優先順位はマイクロコン
ピュータ10、特にCPU12の構造によって選ばれ
る。乗算器46とALU48の並列接続は、マイクロコ
ンピュータ10をデジタル信号処理の用途に応用した場
合に、命令フェッチのためデータ交信が待たなければな
らなくなると、その逆よりも著しく性能が影響される可
能性が強いことを意味する。DMA動作を最下の優先順
位としたのは、DAM動作が他の動作より遅くなること
で及ぼされるほとんどのアプリケーションプログラムに
対する性能全体の影響が最小となるからである。但し、
本発明の他の応用では、優先順位を変えた方がより良好
に動作することもある。例えば、グラフィック用途の場
合、ビデオ表示のリフレッシュ機能を与えるのに使われ
るのであれば、DMAは最高レベルに順位付けするのが
最良である。従って、ここでの説明による順位付けは例
示にすぎない。
【0040】次に図9を参照すると、コントローラ14
内のメモリ仲裁ロジック206による一つのメモリポー
ト32aの制御が例示している。図1に関連して前述し
たように、各メモリポート32aはそれぞれ一組のデー
タバス30のアドレスライン30aと30b、プログラ
ムバス34のアドレスライン34a、及びDMAバス3
8のアドレスライン38aからアドレス信号を受信する
ように接続されている。図9に示したようにメモリポー
ト32aは、その入力で上記アドレス信号を受信し、コ
ントローラ14からの信号に応じて各組のアドレスライ
ンのうち選択された一つを付設メモリ16、18または
20のデコーダ33に接続することで、主にマルチプレ
クサの機能を果たす。図9は、コントローラ14内のメ
モリ仲裁ロジック206のうち、一対のポート32aと
32bを制御する部分の論理概略図で、図9に示したポ
ート32aと32dはRAM16に付設されている。前
述したようにマイクロコンピュータ10では、マイクロ
コンピュータ10内の全てのメモリ16、18及び20
に対し、マイクロコンピュータ10の外部で周辺ポート
24及び26を介してアクセス可能なメモリのアドレス
を含め、単一のメモリアドレススペースが使われてい
る。マイクロコンピュータ10のメモリアドレススペー
スは16Mword (バス30、34及び38の各組のアド
レスラインで24ビットが転送されるため224ワード)
であることを想起されたい。この単一メモリスペースを
用いた場合について、表4は本発明の好ましい実施例に
よるマイクロコンピュータ10のメモリマップを示す。 表 4 アドレス範囲(16進法) ロケーション/機能 000000〜00003F 割込処理 000040〜000FFF ROM20 001000〜7FFFFF 外部メモリ 800000〜800FFF I/O&その他のメモリマップ式 レジスタ 801000〜8013FF RAM16 801400〜8017FF RAM18 801800〜FFFFFF 外部メモリ 前述したように、I/O及びメモリマップ式レジスタを
参照するメモリアドレススペースは周辺ポート26(後
述するように周辺バス28を介してアドレス可能なレジ
スタ、更にDMAコントローラ22、タイマ40、直列
ポート34及びフォーマット変換器24内のレジスタを
含む)と関連する一方、外部メモリへのアクセスは一般
に周辺ポート24を介して処理される。
内のメモリ仲裁ロジック206による一つのメモリポー
ト32aの制御が例示している。図1に関連して前述し
たように、各メモリポート32aはそれぞれ一組のデー
タバス30のアドレスライン30aと30b、プログラ
ムバス34のアドレスライン34a、及びDMAバス3
8のアドレスライン38aからアドレス信号を受信する
ように接続されている。図9に示したようにメモリポー
ト32aは、その入力で上記アドレス信号を受信し、コ
ントローラ14からの信号に応じて各組のアドレスライ
ンのうち選択された一つを付設メモリ16、18または
20のデコーダ33に接続することで、主にマルチプレ
クサの機能を果たす。図9は、コントローラ14内のメ
モリ仲裁ロジック206のうち、一対のポート32aと
32bを制御する部分の論理概略図で、図9に示したポ
ート32aと32dはRAM16に付設されている。前
述したようにマイクロコンピュータ10では、マイクロ
コンピュータ10内の全てのメモリ16、18及び20
に対し、マイクロコンピュータ10の外部で周辺ポート
24及び26を介してアクセス可能なメモリのアドレス
を含め、単一のメモリアドレススペースが使われてい
る。マイクロコンピュータ10のメモリアドレススペー
スは16Mword (バス30、34及び38の各組のアド
レスラインで24ビットが転送されるため224ワード)
であることを想起されたい。この単一メモリスペースを
用いた場合について、表4は本発明の好ましい実施例に
よるマイクロコンピュータ10のメモリマップを示す。 表 4 アドレス範囲(16進法) ロケーション/機能 000000〜00003F 割込処理 000040〜000FFF ROM20 001000〜7FFFFF 外部メモリ 800000〜800FFF I/O&その他のメモリマップ式 レジスタ 801000〜8013FF RAM16 801400〜8017FF RAM18 801800〜FFFFFF 外部メモリ 前述したように、I/O及びメモリマップ式レジスタを
参照するメモリアドレススペースは周辺ポート26(後
述するように周辺バス28を介してアドレス可能なレジ
スタ、更にDMAコントローラ22、タイマ40、直列
ポート34及びフォーマット変換器24内のレジスタを
含む)と関連する一方、外部メモリへのアクセスは一般
に周辺ポート24を介して処理される。
【0041】メモリ仲裁ロジック206内にはデコーダ
120a〜120dが存在し、これらのデコーダが各組
のアドレスライン30a、30b、34a及び38aの
うち対応した一つについて、対応アドレスライン上の指
定されたアドレス値が制御されるべきメモリ16、18
及び20のある一つの範囲内の値を有するかどうかを判
定するのに充分な数のアドレスラインをデコードする。
例示の目的上、図9に示した一つのポート32aはRA
M16に対応し、従って、図9のポート32aは各組の
アドレスライン30a、30b、34aまたは38aの
一つの上の801000h と8013FFh の間にある
アドレス値と応答すべきものとする。尚、勿論当業者で
あれば、アドレスラインの下位10桁の“考慮に入れな
い(don't care) 値をうまく利用するように、デコーダ
120a〜120dを設計可能であろう。各デコーダ1
20の出力は図9の例において、そこに接続されたアド
レスラインが範囲801000h 〜8013FFh 内に
あるとき論理“1”である。デコーダ120a〜120
dからの出力ラインはそれぞれM30A、M30B、M
34A及びM38Aで、アドレスとRAM16に対応し
たメモリアドレススペースとの間の一致の存否を表わ
す。前述したように、コントローラ14のクロック発生
器200が、ポート32aの制御で使われる2つのクロ
ック信号Q1とQ2を発生する。また、前記のごとく、
マイクロコンピュータ10用のシステムクロックはライ
ンCLKIN上のクロック信号と対応している。クロッ
ク信号Q1とQ2は各々、ラインCLKIN上のシステ
ムクロックの位相と対応している。クロック信号Q1は
システムクロックの第1クォータ(1/4)サイクルの間
“1”で、クロック信号Q2はシステムクロックの第3
クォータ(1/4)サイクルの間“1”である。
120a〜120dが存在し、これらのデコーダが各組
のアドレスライン30a、30b、34a及び38aの
うち対応した一つについて、対応アドレスライン上の指
定されたアドレス値が制御されるべきメモリ16、18
及び20のある一つの範囲内の値を有するかどうかを判
定するのに充分な数のアドレスラインをデコードする。
例示の目的上、図9に示した一つのポート32aはRA
M16に対応し、従って、図9のポート32aは各組の
アドレスライン30a、30b、34aまたは38aの
一つの上の801000h と8013FFh の間にある
アドレス値と応答すべきものとする。尚、勿論当業者で
あれば、アドレスラインの下位10桁の“考慮に入れな
い(don't care) 値をうまく利用するように、デコーダ
120a〜120dを設計可能であろう。各デコーダ1
20の出力は図9の例において、そこに接続されたアド
レスラインが範囲801000h 〜8013FFh 内に
あるとき論理“1”である。デコーダ120a〜120
dからの出力ラインはそれぞれM30A、M30B、M
34A及びM38Aで、アドレスとRAM16に対応し
たメモリアドレススペースとの間の一致の存否を表わ
す。前述したように、コントローラ14のクロック発生
器200が、ポート32aの制御で使われる2つのクロ
ック信号Q1とQ2を発生する。また、前記のごとく、
マイクロコンピュータ10用のシステムクロックはライ
ンCLKIN上のクロック信号と対応している。クロッ
ク信号Q1とQ2は各々、ラインCLKIN上のシステ
ムクロックの位相と対応している。クロック信号Q1は
システムクロックの第1クォータ(1/4)サイクルの間
“1”で、クロック信号Q2はシステムクロックの第3
クォータ(1/4)サイクルの間“1”である。
【0042】図9に示したメモリ仲裁ロジッル206
は、各組のアドレスライン30aと30b上のアドレス
信号を相互に時間多重化するためにこれら2つのクロッ
ク信号Q1とQ2を用いる。図9に示した信号M30A
はANDゲート122aの第1入力に接続される一方、
クロック信号Q1がANDゲート122aの第2入力に
接続されている。従って、ANDゲート122aの出力
は、システムクロックの第1クォータサイクル中にデー
タバス30のアドレスライン30a上に与えられるアド
レスが(図示の例においては)RAM16のメモリスペ
ース内にあるときのみ“1”となる。ANDゲート12
2aの出力はポート32aに接続され、SEL30Aで
表わしてある。ポート32aは、“1”の論理状態のラ
インSEL30Aに応答して、データバス30のアドレ
スライン30aを選びRAM16のデコーダ33に与え
る。これに対しラインSEL30Bは、デコーダ120
bの出力とクロック信号Q2の論理ANDを出力するA
NDゲート122bの出力に接続されている。従って、
ポート32aは、システムクロックの第3クォータサイ
クル中にアドレスライン30b上の値が801000h
と8013FFh の間にあるときのみ、アドレスライン
30bを選んだRAM16のデコーダ33に与える。
は、各組のアドレスライン30aと30b上のアドレス
信号を相互に時間多重化するためにこれら2つのクロッ
ク信号Q1とQ2を用いる。図9に示した信号M30A
はANDゲート122aの第1入力に接続される一方、
クロック信号Q1がANDゲート122aの第2入力に
接続されている。従って、ANDゲート122aの出力
は、システムクロックの第1クォータサイクル中にデー
タバス30のアドレスライン30a上に与えられるアド
レスが(図示の例においては)RAM16のメモリスペ
ース内にあるときのみ“1”となる。ANDゲート12
2aの出力はポート32aに接続され、SEL30Aで
表わしてある。ポート32aは、“1”の論理状態のラ
インSEL30Aに応答して、データバス30のアドレ
スライン30aを選びRAM16のデコーダ33に与え
る。これに対しラインSEL30Bは、デコーダ120
bの出力とクロック信号Q2の論理ANDを出力するA
NDゲート122bの出力に接続されている。従って、
ポート32aは、システムクロックの第3クォータサイ
クル中にアドレスライン30b上の値が801000h
と8013FFh の間にあるときのみ、アドレスライン
30bを選んだRAM16のデコーダ33に与える。
【0043】このため上記の説明及び図9から、特に図
9に示したようにコントローラ14で実施される一サイ
クル内に2つのアドレスを時間多重化しているので、デ
ータバス30の各組のアドレスライン30aと30bが
あるサイクル中に同一のメモリ16、18、20(また
は外部メモリ)に関する衝突を決して生じないことが明
らかであろう。また、バス34と38上のアドレス値は
コントローラ14によってラインSEL30AとSEL
30B上における論理状態“1”の発生と見なされない
から、各組のアドレスライン30aと30b上のアドレ
スはプログラムバス34及びDMAバス38のアドレス
ラインに対して最高の優先順位にあることも明らかであ
ろう。このようなプログラムバス34のアドレスライン
30a及びDMAバス38のアドレスライン38aに対
する優先順位の制御は、コントローラ14によって行わ
れる。プログラムバス34のアドレスライン34aをそ
の入力で受け取るデコーダ120cは、前記デコーダ1
20aと120bと同じく、アドレス値が801000
h と8013FFh の間にあるとラインM34A上に論
理状態“1”を発生する。ラインM34AはANDゲー
ト124aと124b各々の一入力に接続され、該各A
NDゲートはその3入力の論理ANDに対応した信号を
出力に発生する。ANDゲート124aの第2入力はク
ロック信号Q1に接続され、ANDゲート124aの第
3反転入力はラインM30Aに接続されている。
9に示したようにコントローラ14で実施される一サイ
クル内に2つのアドレスを時間多重化しているので、デ
ータバス30の各組のアドレスライン30aと30bが
あるサイクル中に同一のメモリ16、18、20(また
は外部メモリ)に関する衝突を決して生じないことが明
らかであろう。また、バス34と38上のアドレス値は
コントローラ14によってラインSEL30AとSEL
30B上における論理状態“1”の発生と見なされない
から、各組のアドレスライン30aと30b上のアドレ
スはプログラムバス34及びDMAバス38のアドレス
ラインに対して最高の優先順位にあることも明らかであ
ろう。このようなプログラムバス34のアドレスライン
30a及びDMAバス38のアドレスライン38aに対
する優先順位の制御は、コントローラ14によって行わ
れる。プログラムバス34のアドレスライン34aをそ
の入力で受け取るデコーダ120cは、前記デコーダ1
20aと120bと同じく、アドレス値が801000
h と8013FFh の間にあるとラインM34A上に論
理状態“1”を発生する。ラインM34AはANDゲー
ト124aと124b各々の一入力に接続され、該各A
NDゲートはその3入力の論理ANDに対応した信号を
出力に発生する。ANDゲート124aの第2入力はク
ロック信号Q1に接続され、ANDゲート124aの第
3反転入力はラインM30Aに接続されている。
【0044】従って、ANDゲート124aの出力は、
データバス30のアドレスライン30aのアドレス値が
RAM16のメモリロケーションと対応しない場合及び
その場合にのみ、システムクロックの第1クォータサイ
クルの間(この例では)RAM16内のメモリロケーシ
ョンに応じたアドレスライン34a上のアドレス値に対
応する論理状態“1”となる。この論理状態“1”はO
Rゲート126を介してラインSEL34からポート3
2aに加えられ、プログラムバス34のアドレスライン
34aが選ばれてRAM16に加えられるべきことを指
示する。ラインM30Bが低く(つまりアドレスライン
30b上のアドレスがRAM16用のメモリアドレス外
のメモリロケーションに対応する)の間、アドレスライ
ン30aのポート32aによるRAM16への印加がA
NDゲート124bによって同様に可能となる。DMA
バス38のアドレスライン38aのポート32aによる
選択は、ラインSEL38上の論理状態“1”によって
可能となる。ラインSEL34上の論理状態“1”と同
じく、ラインSEL38上の論理状態“1”はデコーダ
120d(ライン38aのアドレス値がRAM16のア
ドレススペース内にあるときに論理状態“1”となるラ
インM38Aをその出力に有する)、ANDゲート12
8aと128b、及びORゲート130を介して発生さ
れる。但し、ANDゲート128aと128bは各々、
デコーダ120cの出力からのラインM34Aに接続さ
れた第4の反転入力を有する。つまり、ラインSEL3
8上に論理状態“1”を発生するためには、データバス
のアドレスライン30a(または現在のクォータサイク
ルに応じて30b)上のアドレス値とアドレスライン3
0a上のアドレス値が共に(この例ではRAM16のメ
モリロケーションと対応しなければならないので、DM
Aバス38のアドレスライン38aの選択はプログラム
バス34のアドレスライン34aよりさらに低い優先順
位にある。
データバス30のアドレスライン30aのアドレス値が
RAM16のメモリロケーションと対応しない場合及び
その場合にのみ、システムクロックの第1クォータサイ
クルの間(この例では)RAM16内のメモリロケーシ
ョンに応じたアドレスライン34a上のアドレス値に対
応する論理状態“1”となる。この論理状態“1”はO
Rゲート126を介してラインSEL34からポート3
2aに加えられ、プログラムバス34のアドレスライン
34aが選ばれてRAM16に加えられるべきことを指
示する。ラインM30Bが低く(つまりアドレスライン
30b上のアドレスがRAM16用のメモリアドレス外
のメモリロケーションに対応する)の間、アドレスライ
ン30aのポート32aによるRAM16への印加がA
NDゲート124bによって同様に可能となる。DMA
バス38のアドレスライン38aのポート32aによる
選択は、ラインSEL38上の論理状態“1”によって
可能となる。ラインSEL34上の論理状態“1”と同
じく、ラインSEL38上の論理状態“1”はデコーダ
120d(ライン38aのアドレス値がRAM16のア
ドレススペース内にあるときに論理状態“1”となるラ
インM38Aをその出力に有する)、ANDゲート12
8aと128b、及びORゲート130を介して発生さ
れる。但し、ANDゲート128aと128bは各々、
デコーダ120cの出力からのラインM34Aに接続さ
れた第4の反転入力を有する。つまり、ラインSEL3
8上に論理状態“1”を発生するためには、データバス
のアドレスライン30a(または現在のクォータサイク
ルに応じて30b)上のアドレス値とアドレスライン3
0a上のアドレス値が共に(この例ではRAM16のメ
モリロケーションと対応しなければならないので、DM
Aバス38のアドレスライン38aの選択はプログラム
バス34のアドレスライン34aよりさらに低い優先順
位にある。
【0045】図9に示すように、ポート32dも同じく
ラインSEL16(つまりラインSEL30A、SEL3
0B、SEL34及びSEL38)によって動作可能
で、データバス30、34または38の正しいデータラ
インを選んで対応したメモリ(この例ではRAM16)
に接続させる。データライン30dはデータバス30の
アドレスライン30aとアドレスライン30bの両方に
よってアクセスされるので、データバス30のデータラ
イン30dを選択するためにSEL30AとSEL30
BのORがとられる。また、アドレスライン30a、3
0b、34a、38aの何れも対応するメモリのアドレ
ススペース内にない場合には、ポート32aと32dが
各々トライステート(tri-state) とされる。これによっ
て、対応するメモリが選択されないときデータライン3
0d、34dまたは38dと干渉するのを防ぐ。図1及
び図7に示したように、コントローラ14内のメモリ仲
裁ロジック206はSEL18とSEL20を介してそれぞ
れメモリ18と20のポート32aと32bに選択出力
を発生する。更にメモリ仲裁ロジック206は、図9に
関連して前述したのと同様な方法で、ラインSEL24と
SEL26を介して周辺ポート24と26にそれぞれ選択
出力を与える。周辺ポート24と26内では、図6のマ
ルチプレクサ100、102、106及び108が上記
アドレスライン30a、30b、34a及び38a上の
アドレス値に応じ、同じ優先順位方式に基づいて動作可
能とされる。
ラインSEL16(つまりラインSEL30A、SEL3
0B、SEL34及びSEL38)によって動作可能
で、データバス30、34または38の正しいデータラ
インを選んで対応したメモリ(この例ではRAM16)
に接続させる。データライン30dはデータバス30の
アドレスライン30aとアドレスライン30bの両方に
よってアクセスされるので、データバス30のデータラ
イン30dを選択するためにSEL30AとSEL30
BのORがとられる。また、アドレスライン30a、3
0b、34a、38aの何れも対応するメモリのアドレ
ススペース内にない場合には、ポート32aと32dが
各々トライステート(tri-state) とされる。これによっ
て、対応するメモリが選択されないときデータライン3
0d、34dまたは38dと干渉するのを防ぐ。図1及
び図7に示したように、コントローラ14内のメモリ仲
裁ロジック206はSEL18とSEL20を介してそれぞ
れメモリ18と20のポート32aと32bに選択出力
を発生する。更にメモリ仲裁ロジック206は、図9に
関連して前述したのと同様な方法で、ラインSEL24と
SEL26を介して周辺ポート24と26にそれぞれ選択
出力を与える。周辺ポート24と26内では、図6のマ
ルチプレクサ100、102、106及び108が上記
アドレスライン30a、30b、34a及び38a上の
アドレス値に応じ、同じ優先順位方式に基づいて動作可
能とされる。
【0046】各種メモリ装置用の読取及び書込動作の制
御は、図7に示したコントローラ14の論理ロジック2
02内の逐次ロジック202bからの制御出力の一部に
よって達成される。この機能はコントローラ14で実行
されるその他の制御機能と同じく、コントローラ14に
よって受信及びデコードされる命令コードに応じて生じ
る。次に図10を参照すれば、本発明の並列及び二重ア
クセス特徴を例示するために、一連のメモリアクセスの
タイミングと優先順位付けで示してある。図10の最上
ラインは、ラインCLKIN上のシステムクロック信号
の動作を示し、各サイクルは以下の説明と相関を容易に
するために番号付けしてある。クロック信号Q1とQ2
は前述のごとく発生され、クロック信号Q1はシステム
クロック周期の第1クォータサイクル中アクティブとな
り、クロック信号Q2はシステムクロック周期の第3ク
ォータサイクル中アクティブとなる。分り易くするた
め、図10に示した例は全て各種メモリに対する読取ア
クセスである。尚、RAM16と18及び外部メモリへ
の書込アクセスは、図10に示した読取アクセスと同じ
方法で優先順位付け及び許可され、メモリが対応したデ
ータラインの値で書込に応答する点だけが異なる。
御は、図7に示したコントローラ14の論理ロジック2
02内の逐次ロジック202bからの制御出力の一部に
よって達成される。この機能はコントローラ14で実行
されるその他の制御機能と同じく、コントローラ14に
よって受信及びデコードされる命令コードに応じて生じ
る。次に図10を参照すれば、本発明の並列及び二重ア
クセス特徴を例示するために、一連のメモリアクセスの
タイミングと優先順位付けで示してある。図10の最上
ラインは、ラインCLKIN上のシステムクロック信号
の動作を示し、各サイクルは以下の説明と相関を容易に
するために番号付けしてある。クロック信号Q1とQ2
は前述のごとく発生され、クロック信号Q1はシステム
クロック周期の第1クォータサイクル中アクティブとな
り、クロック信号Q2はシステムクロック周期の第3ク
ォータサイクル中アクティブとなる。分り易くするた
め、図10に示した例は全て各種メモリに対する読取ア
クセスである。尚、RAM16と18及び外部メモリへ
の書込アクセスは、図10に示した読取アクセスと同じ
方法で優先順位付け及び許可され、メモリが対応したデ
ータラインの値で書込に応答する点だけが異なる。
【0047】図10に示したシステムクロックCLKI
Nの第1サイクルでは、アドレスライン30aがRAM
16内のメモリロケーションに対応したアドレス値i1
を伝送しており、同じくアドレスライン30bがROM
20内のメモリロケーションに対応したアドレス値j1
を伝送している。システムクロックCLKINの第1ク
ォータサイクルでアクティブなクロック信号Q1に応じ
て、ROM16がデータバス30のデータライン30d
上にメモリロケーションi1 の内容を与える。更にシス
テムクロックCLKINの第3クォータサイクルでアク
ティブなクロック信号Q2に応じて、ROM20がデー
タバス30のデータライン30d上にメモリロケーショ
ンj1 の内容を与える。勿論、アドレスライン30aと
30bは異なるメモリを参照しているので、両者間で衝
突は生じない。また、図10に示したシステムクロック
CLKINの第1サイクルの間に、プログラムバス34
のアドレスライン34aも、ROM20内のメモリロケ
ーションに対応したアドレス値k1 を伝送している。デ
ータバス30のアドレスライン30bの方がプログラム
バス34のアドレスライン34aより高い優先順位を持
つので、アドレスライン30bがROM20にアクセス
許可されるため、ROM20はアドレスライン34aに
応答しない。従って、他のメモリはアドレス値k 1 によ
ってアクセスされていず、RAM16がアドレスライン
30aと30bによってアクセスされているから、プロ
グラムバス34のデータライン34dは高インピーダン
ス状態に留まる。
Nの第1サイクルでは、アドレスライン30aがRAM
16内のメモリロケーションに対応したアドレス値i1
を伝送しており、同じくアドレスライン30bがROM
20内のメモリロケーションに対応したアドレス値j1
を伝送している。システムクロックCLKINの第1ク
ォータサイクルでアクティブなクロック信号Q1に応じ
て、ROM16がデータバス30のデータライン30d
上にメモリロケーションi1 の内容を与える。更にシス
テムクロックCLKINの第3クォータサイクルでアク
ティブなクロック信号Q2に応じて、ROM20がデー
タバス30のデータライン30d上にメモリロケーショ
ンj1 の内容を与える。勿論、アドレスライン30aと
30bは異なるメモリを参照しているので、両者間で衝
突は生じない。また、図10に示したシステムクロック
CLKINの第1サイクルの間に、プログラムバス34
のアドレスライン34aも、ROM20内のメモリロケ
ーションに対応したアドレス値k1 を伝送している。デ
ータバス30のアドレスライン30bの方がプログラム
バス34のアドレスライン34aより高い優先順位を持
つので、アドレスライン30bがROM20にアクセス
許可されるため、ROM20はアドレスライン34aに
応答しない。従って、他のメモリはアドレス値k 1 によ
ってアクセスされていず、RAM16がアドレスライン
30aと30bによってアクセスされているから、プロ
グラムバス34のデータライン34dは高インピーダン
ス状態に留まる。
【0048】同じく第1サイクルの間には、DMAバス
38のアドレスライン38aがRAM16内のメモリロ
ケーションに対応したアドレス値l1 を伝送している。
しかし、アドレスライン38aはデータバス30のアド
レスライン30aより優先順位が低いので、DMAバス
38のデータライン38dも高インピーダンス状態に留
まる。バス30、34及び38のうち2つから単一メモ
リ装置へのアクセス試みで衝突が生じているため、コン
トローラ14は制御ロジック202を介して低優先順位
バスの所望なメモリアドレスを与え続けており、従って
そのメモリへのアクセスが許可されるや否や、プログラ
ムの実行がアクセスを否定されていたバス34、38の
一方について同じ時点から再び始まる。図10に示した
第2サイクルでは、アドレスライン30aと30bがR
AM18にそれぞれアドレス値i2 とj2 を与える。従
って、第1サイクルと同様、データライン30dにはク
ロック信号Q1とQ2に応じてメモリロケーションi2
とj2 の内容が与えられる。異なる組のアドレスライン
30aと30bが図9に関連して説明したごとく、シス
テムクロック周期内の異なる時点でRAM16を与えら
れるようにコントローラ14の動作によって制御されて
いるため、共にRAM16を参照しているアドレスライ
ン30aと30b間での衝突は生じない。プログラムバ
ス34のアドレスライン34aは、ROM20内のメモ
リロケーションに対応したアドレス値k1 を伝送し続け
ている。アドレスライン30aと30bはRAM16に
アクセスしているので、プログラムバス34はROM2
0へのアクセスが許可され、クロック信号Q1に応じて
ROM20内のメモリロケーションk1 の内容がプログ
ラムバス34のデータライン34d上に与えられる。
38のアドレスライン38aがRAM16内のメモリロ
ケーションに対応したアドレス値l1 を伝送している。
しかし、アドレスライン38aはデータバス30のアド
レスライン30aより優先順位が低いので、DMAバス
38のデータライン38dも高インピーダンス状態に留
まる。バス30、34及び38のうち2つから単一メモ
リ装置へのアクセス試みで衝突が生じているため、コン
トローラ14は制御ロジック202を介して低優先順位
バスの所望なメモリアドレスを与え続けており、従って
そのメモリへのアクセスが許可されるや否や、プログラ
ムの実行がアクセスを否定されていたバス34、38の
一方について同じ時点から再び始まる。図10に示した
第2サイクルでは、アドレスライン30aと30bがR
AM18にそれぞれアドレス値i2 とj2 を与える。従
って、第1サイクルと同様、データライン30dにはク
ロック信号Q1とQ2に応じてメモリロケーションi2
とj2 の内容が与えられる。異なる組のアドレスライン
30aと30bが図9に関連して説明したごとく、シス
テムクロック周期内の異なる時点でRAM16を与えら
れるようにコントローラ14の動作によって制御されて
いるため、共にRAM16を参照しているアドレスライ
ン30aと30b間での衝突は生じない。プログラムバ
ス34のアドレスライン34aは、ROM20内のメモ
リロケーションに対応したアドレス値k1 を伝送し続け
ている。アドレスライン30aと30bはRAM16に
アクセスしているので、プログラムバス34はROM2
0へのアクセスが許可され、クロック信号Q1に応じて
ROM20内のメモリロケーションk1 の内容がプログ
ラムバス34のデータライン34d上に与えられる。
【0049】また、図10に示した第2サイクルの間、
DMAバス38のアドレスライン38aは、RAM16
内のメモリロケーションに対応したアドレス値l1 を伝
送し続けている。データバス30とプログラムバス34
はどちらもRAM16へアクセス許可されていないの
で、RAM16はクロック信号Q1に応じメモリロケー
ションl2 の内容をDMAバス38のデータライン38
d上に与える。従って、本発明に従って構成されたマイ
クロコンピュータ10は、3種の異なるメモリロケーシ
ョンへの3つの並列アクセスを周時に発生なことが明ら
かであろう。データバス30の各組のアドレスライン3
0aと30bにおけるサイクル内多重化を考慮に入れれ
ば、1つのシステムクロックサイクル内での4つのメモ
リアクセスも実施可能となる。図10に示したシステム
クロックCLKINの第3サイクルは、データバス30
のアドレスライン30aがDMAバス38のアドレスラ
イン38aに対して優先性を持つ効果を示している。ク
ロック信号Q1がアクティブのとき、アドレスライン3
0aとアドレスライン38aは共にRAM18のアドレ
ススペース内のアドレス値(それぞれ値i3 とi2 )を
伝送している。従って、データバス30の方がDMAバ
ス38より優先してRAM18にアクセス許可される。
つまり、データバスのデータライン30dにメモリロケ
ーションi3 の内容が与えられる一方、DMAバス38
のデータライン38dは高いインピーダンス状態とな
る。しかし、クロック信号Q2がアクティブになると、
データバス30のアドレスライン30aはクロック信号
Q1に応じてのみアクセス許可されるので、DMAバス
30のアドレスライン30aがRAM18にアクセス許
可される。アドレスライン30bはRAM16内のメモ
リロケーションに対応したアドレス値j3 を伝送してい
るから、アドレスライン38aがRAMにアクセスし、
データライン38dにはクロック信号Q2に応じてRA
M18のメモリロケーションl2 の内容が与えられる。
DMAバス38のアドレスライン38aは、RAM16
内のメモリロケーションに対応したアドレス値l1 を伝
送し続けている。データバス30とプログラムバス34
はどちらもRAM16へアクセス許可されていないの
で、RAM16はクロック信号Q1に応じメモリロケー
ションl2 の内容をDMAバス38のデータライン38
d上に与える。従って、本発明に従って構成されたマイ
クロコンピュータ10は、3種の異なるメモリロケーシ
ョンへの3つの並列アクセスを周時に発生なことが明ら
かであろう。データバス30の各組のアドレスライン3
0aと30bにおけるサイクル内多重化を考慮に入れれ
ば、1つのシステムクロックサイクル内での4つのメモ
リアクセスも実施可能となる。図10に示したシステム
クロックCLKINの第3サイクルは、データバス30
のアドレスライン30aがDMAバス38のアドレスラ
イン38aに対して優先性を持つ効果を示している。ク
ロック信号Q1がアクティブのとき、アドレスライン3
0aとアドレスライン38aは共にRAM18のアドレ
ススペース内のアドレス値(それぞれ値i3 とi2 )を
伝送している。従って、データバス30の方がDMAバ
ス38より優先してRAM18にアクセス許可される。
つまり、データバスのデータライン30dにメモリロケ
ーションi3 の内容が与えられる一方、DMAバス38
のデータライン38dは高いインピーダンス状態とな
る。しかし、クロック信号Q2がアクティブになると、
データバス30のアドレスライン30aはクロック信号
Q1に応じてのみアクセス許可されるので、DMAバス
30のアドレスライン30aがRAM18にアクセス許
可される。アドレスライン30bはRAM16内のメモ
リロケーションに対応したアドレス値j3 を伝送してい
るから、アドレスライン38aがRAMにアクセスし、
データライン38dにはクロック信号Q2に応じてRA
M18のメモリロケーションl2 の内容が与えられる。
【0050】図10に示した第4サイクルでは、アドレ
スライン34aがRAM18内のメモリロケーションに
対応したアドレス値k3 を伝送し、同じくアドレスライ
ン38aもRAM18内のメモリロケーションに対応し
たアドレス値l3 を伝送している。前述したように、プ
ログラムバス34の方がDMAバス38に優先して許可
される。従って、クロック信号Q1に応じRAM18内
のメモリロケーションk3 の内容がプログラムバス34
のデータライン34dに与えられる一方、DMAバス3
8のデータライン38dは高インピーダンス状態とな
る。図10に示した第5サイクルは、外部メモリがそこ
のメモリロケーションに対応したアドレス値k5 を伝送
しているアドレスライン34aによってアクセス可能な
ことを例示している。プログラムバスによる外部メモリ
のアクセスのため、DMAバス38とデータバス30は
同時にアクティブとなる。前述したように、外部メモリ
へのアクセスは周辺ポート24を介して生じ、また後述
するように、DMA動作の間周辺ポート26の動作は禁
止される。更に、アドレス及びデータ情報の出所と前記
バス30、34及び38によって捜されるデータの宛先
は、図9及び図10に関連した上記の説明では指定され
てないことに留意されたい。しかし、前述したように、
命令コードのデコード及び実行におけるコントローラ1
4の主な機能の一つは、どの2つの機能ブロック(例え
ば、周辺ポート24とCPU12)が同一バス(例え
ば、データバス30)の制御を試みないように、マイク
ロコンピュータ10の各種機能ブロックを制御すること
にある。メモリ16、18及び20(または外部メモ
リ)と反対側のバス端におけるこのようなバス制御及び
仲裁は、当該分野で周知な方法でコントローラ14によ
って行われ、現在入手可能な多くの汎用及び専用マイク
ロプロセッサとマイクロコンピュータで実施し得る。
スライン34aがRAM18内のメモリロケーションに
対応したアドレス値k3 を伝送し、同じくアドレスライ
ン38aもRAM18内のメモリロケーションに対応し
たアドレス値l3 を伝送している。前述したように、プ
ログラムバス34の方がDMAバス38に優先して許可
される。従って、クロック信号Q1に応じRAM18内
のメモリロケーションk3 の内容がプログラムバス34
のデータライン34dに与えられる一方、DMAバス3
8のデータライン38dは高インピーダンス状態とな
る。図10に示した第5サイクルは、外部メモリがそこ
のメモリロケーションに対応したアドレス値k5 を伝送
しているアドレスライン34aによってアクセス可能な
ことを例示している。プログラムバスによる外部メモリ
のアクセスのため、DMAバス38とデータバス30は
同時にアクティブとなる。前述したように、外部メモリ
へのアクセスは周辺ポート24を介して生じ、また後述
するように、DMA動作の間周辺ポート26の動作は禁
止される。更に、アドレス及びデータ情報の出所と前記
バス30、34及び38によって捜されるデータの宛先
は、図9及び図10に関連した上記の説明では指定され
てないことに留意されたい。しかし、前述したように、
命令コードのデコード及び実行におけるコントローラ1
4の主な機能の一つは、どの2つの機能ブロック(例え
ば、周辺ポート24とCPU12)が同一バス(例え
ば、データバス30)の制御を試みないように、マイク
ロコンピュータ10の各種機能ブロックを制御すること
にある。メモリ16、18及び20(または外部メモ
リ)と反対側のバス端におけるこのようなバス制御及び
仲裁は、当該分野で周知な方法でコントローラ14によ
って行われ、現在入手可能な多くの汎用及び専用マイク
ロプロセッサとマイクロコンピュータで実施し得る。
【0051】従って、上記の説明から、マイクロコンピ
ュータ10の単一アドレススペース内で各種のメモリ利
用の組合せが可能なことが明らかであろう。この点は、
3つのバス30、34及び38の各々による各種メモリ
エンティティ(つまりRAM16、RAM18、ROM
20及び外部メモリ)の各々へのアクセス可能性によっ
て可能となる。従って、コントローラ14がプログラム
バス34を介して命令コードにアドレスしそれを受け取
る一方、このようなアドレスは、データバス30を用い
CPU12によってアクセス可能なデータメモリを含
め、RAM16内に存在し得る。従って、この構成は、
単一のメモリ(例えばRAM16)をプログラム及びデ
ータ両メモリとして用いることでノイマン型構成のマイ
クロコンピュータ10への応用を可能とし、この動作を
行うのにRAM16内を区分する必要がない。しかし、
マイクロコンピュータ10は、例えばROM20内にプ
ログラムメモリを記憶し、RAM16内にデータメモリ
を記憶することによってハーバード型構成でも使える。
そして、CPU12がテータオペランドをRAM16に
アクセスするのと同時にコントローラ14が命令コード
をROM20にアクセスし、メモリを区分する見返りと
してハーバード型マシンの性能向上を達成できる。さら
に、マイクロコンピュータ10は2重のアクセス特徴を
備えているから、RAM16等単一のメモリを使うこと
により、ノイマン型とハーバード型両方の構成で幾つか
の利点を達成可能である。つまり、2重のアクセス特徴
は、データバス30で時間多重化特徴を使えるため、同
一のメモリに対しても1つのシステムクロックサイクル
内で2回のアクセスを可能とする。これが同一の物理メ
モリスペースをデータ及びプログラム両メモリのために
使用可能としつつ、2つの別々なメモリという性能上の
利点を達成可能としている。また、マイクロコンピュー
タ10は2つの形態に構成可能な他、一部のタスクをノ
イマン方式で実行し、他の一部のタスクをハーバード方
式で実行するように動的に再構成可能なことも明らかで
あろう。従って、本発明に従って構成されたマイクロコ
ンピュータ10は、所望の用途に基づいてユーザがマイ
クロコンピュータ10を最適化するのを可能とする。
ュータ10の単一アドレススペース内で各種のメモリ利
用の組合せが可能なことが明らかであろう。この点は、
3つのバス30、34及び38の各々による各種メモリ
エンティティ(つまりRAM16、RAM18、ROM
20及び外部メモリ)の各々へのアクセス可能性によっ
て可能となる。従って、コントローラ14がプログラム
バス34を介して命令コードにアドレスしそれを受け取
る一方、このようなアドレスは、データバス30を用い
CPU12によってアクセス可能なデータメモリを含
め、RAM16内に存在し得る。従って、この構成は、
単一のメモリ(例えばRAM16)をプログラム及びデ
ータ両メモリとして用いることでノイマン型構成のマイ
クロコンピュータ10への応用を可能とし、この動作を
行うのにRAM16内を区分する必要がない。しかし、
マイクロコンピュータ10は、例えばROM20内にプ
ログラムメモリを記憶し、RAM16内にデータメモリ
を記憶することによってハーバード型構成でも使える。
そして、CPU12がテータオペランドをRAM16に
アクセスするのと同時にコントローラ14が命令コード
をROM20にアクセスし、メモリを区分する見返りと
してハーバード型マシンの性能向上を達成できる。さら
に、マイクロコンピュータ10は2重のアクセス特徴を
備えているから、RAM16等単一のメモリを使うこと
により、ノイマン型とハーバード型両方の構成で幾つか
の利点を達成可能である。つまり、2重のアクセス特徴
は、データバス30で時間多重化特徴を使えるため、同
一のメモリに対しても1つのシステムクロックサイクル
内で2回のアクセスを可能とする。これが同一の物理メ
モリスペースをデータ及びプログラム両メモリのために
使用可能としつつ、2つの別々なメモリという性能上の
利点を達成可能としている。また、マイクロコンピュー
タ10は2つの形態に構成可能な他、一部のタスクをノ
イマン方式で実行し、他の一部のタスクをハーバード方
式で実行するように動的に再構成可能なことも明らかで
あろう。従って、本発明に従って構成されたマイクロコ
ンピュータ10は、所望の用途に基づいてユーザがマイ
クロコンピュータ10を最適化するのを可能とする。
【0052】次に図11〜図14を参照して、命令の実
行におけるCPU12の動作を詳しく説明する。ここで
説明する例示の命令は並列の乗算と加算で、このような
命令はデジタル信号処理の用途で反復して使われ、マイ
クロコンピュータ10がその実行のために専用に設計さ
れる命令の一例である。また、並列の乗算及び加算命令
は、本発明に従って構成されたマイクロコンピュータ1
0の好ましい実施例におけるCPU12の主要特徴を例
示するものでもある。ここで説明する例の目的上、命令
コードはROM20内に存在し、データオペランドはR
AM16内に存在すると仮定するが、勿論マイクロコン
ピュータ10は前述のごとく、命令コードとデータオペ
ランドが共に同一のメモリブロック内に存在するように
したり、あるいはその他任意の構成とし得る。ここで説
明する命令の乗算は、間接的後変位加算及び変更アドレ
シングモード(表1参照)を用い補助レジスタ54aに
よってアドレスされたメモリロケーションの内容を、間
接的後変位減算及び変更アドレシングモードを用い補助
レジスタ54hによってアドレスされたメモリロケーシ
ョンの内容と乗算し、その結果をデータレジスタ50a
内に記憶するもので、使用した変位は1つの値である。
この乗算が、データレジスタ50aの内容とデータレジ
スタ50eの内容との加算及びその和のデータレジスタ
50e内への記憶と並列に行われる。
行におけるCPU12の動作を詳しく説明する。ここで
説明する例示の命令は並列の乗算と加算で、このような
命令はデジタル信号処理の用途で反復して使われ、マイ
クロコンピュータ10がその実行のために専用に設計さ
れる命令の一例である。また、並列の乗算及び加算命令
は、本発明に従って構成されたマイクロコンピュータ1
0の好ましい実施例におけるCPU12の主要特徴を例
示するものでもある。ここで説明する例の目的上、命令
コードはROM20内に存在し、データオペランドはR
AM16内に存在すると仮定するが、勿論マイクロコン
ピュータ10は前述のごとく、命令コードとデータオペ
ランドが共に同一のメモリブロック内に存在するように
したり、あるいはその他任意の構成とし得る。ここで説
明する命令の乗算は、間接的後変位加算及び変更アドレ
シングモード(表1参照)を用い補助レジスタ54aに
よってアドレスされたメモリロケーションの内容を、間
接的後変位減算及び変更アドレシングモードを用い補助
レジスタ54hによってアドレスされたメモリロケーシ
ョンの内容と乗算し、その結果をデータレジスタ50a
内に記憶するもので、使用した変位は1つの値である。
この乗算が、データレジスタ50aの内容とデータレジ
スタ50eの内容との加算及びその和のデータレジスタ
50e内への記憶と並列に行われる。
【0053】図11は、上記並列の乗算及び加算演算用
命令コードのフェッチサイクル時における、CPU1
2、コントローラ14、ROM20とRAM16、及び
相互接続バス30と34の動作を示している。図11の
太線矢印が、図示の動作中にアクティブな信号が移動す
る経路を示す。図11に示すように、コントローラ14
内のプログラムカウンタ92の内容がプログラムバス3
4のアドレスライン34a上に与えられる。ROM20
にアクセスするデータバス30との間に衝突は生じない
ものとして、プログラムカウンタ92の内容に対応した
ROM20内のメモリロケーションの内容がプログラム
バス34のデータライン34dに与えられ、命令レジス
タ94内に記憶される。図12は、並列の乗算及び加算
のデコードサイクル時におけるマイクロコンピュータ1
0の動作を示す。このサイクル中、コントローラ14は
乗算のオペランド用メモリアドレスの発生を可能とす
る。従って、補助レジスタ54aの内容が補助レジスタ
バス65aに与えられる一方、補助レジスタ54hの内
容が補助レジスタバス65bに与えられる。またコント
ローラ14はこの時点で、変位としての“1”をARA
U52aと52b両方に与える。
命令コードのフェッチサイクル時における、CPU1
2、コントローラ14、ROM20とRAM16、及び
相互接続バス30と34の動作を示している。図11の
太線矢印が、図示の動作中にアクティブな信号が移動す
る経路を示す。図11に示すように、コントローラ14
内のプログラムカウンタ92の内容がプログラムバス3
4のアドレスライン34a上に与えられる。ROM20
にアクセスするデータバス30との間に衝突は生じない
ものとして、プログラムカウンタ92の内容に対応した
ROM20内のメモリロケーションの内容がプログラム
バス34のデータライン34dに与えられ、命令レジス
タ94内に記憶される。図12は、並列の乗算及び加算
のデコードサイクル時におけるマイクロコンピュータ1
0の動作を示す。このサイクル中、コントローラ14は
乗算のオペランド用メモリアドレスの発生を可能とす
る。従って、補助レジスタ54aの内容が補助レジスタ
バス65aに与えられる一方、補助レジスタ54hの内
容が補助レジスタバス65bに与えられる。またコント
ローラ14はこの時点で、変位としての“1”をARA
U52aと52b両方に与える。
【0054】図13を参照すれば、ARAU52aと5
2bによる演算の結果及び読取サイクルの実施が示して
ある。ARAU52aが補助レジスタ54aの内容に変
位を加算し、その和をデータバス30のアドレスライン
30aに与えると共に、インクレメント値をバス67a
を介して補助レジスタ54aに記憶し直す。同じく、A
RAU52bが補助レジスタ54hの内容から変位を減
算し、その差をデータバス30のアドレスライン30b
に与える共に、デクレメント値をバス67bを介して補
助レジスタ54hに記憶し直す。前述したように、デー
タバス30はメモリのアクセスに関してマイクロコンピ
ュータ10内で最高の優先順位を有する。このサイクル
中、ARAU52aと52bから発生されたメモリアド
レスは、システムクロック周期の第1及び第3クォータ
サイクルの間にRAM16に与えられる。従って、対応
したメモリロケーションの各内容は、図9及び図10に
関連して前述したように時間多重化された形でデータラ
イン30d上に現われる。読取サイクルの終りに、RA
M16から読み取られた被乗数がデータバスコントロー
ラ56によってラッチされ保持される。次に図14を参
照すると、データバスコントローラ56が、読取サイク
ル中にデータバス30のライン30d上に受け取られ且
つARAU52aと52bから発生されたアドレスに対
応するラッチ値を、CPUバス60aとCPUバス60
bにそれぞれ接続する。この結果実行サイクル中、CP
Uバス60aはARAU52aから発生されたメモリロ
ケーションの内容を乗算器46に与え、またCPUバス
60bはARAU52bから発生されたメモリロケーシ
ョンの内容を乗算器46に与える。従ってこのとき、デ
コードサイクル中にデコードされた命令コードに応じ、
マルチプレクサ64aと64bはコントローラ14によ
って動作可能とされている。
2bによる演算の結果及び読取サイクルの実施が示して
ある。ARAU52aが補助レジスタ54aの内容に変
位を加算し、その和をデータバス30のアドレスライン
30aに与えると共に、インクレメント値をバス67a
を介して補助レジスタ54aに記憶し直す。同じく、A
RAU52bが補助レジスタ54hの内容から変位を減
算し、その差をデータバス30のアドレスライン30b
に与える共に、デクレメント値をバス67bを介して補
助レジスタ54hに記憶し直す。前述したように、デー
タバス30はメモリのアクセスに関してマイクロコンピ
ュータ10内で最高の優先順位を有する。このサイクル
中、ARAU52aと52bから発生されたメモリアド
レスは、システムクロック周期の第1及び第3クォータ
サイクルの間にRAM16に与えられる。従って、対応
したメモリロケーションの各内容は、図9及び図10に
関連して前述したように時間多重化された形でデータラ
イン30d上に現われる。読取サイクルの終りに、RA
M16から読み取られた被乗数がデータバスコントロー
ラ56によってラッチされ保持される。次に図14を参
照すると、データバスコントローラ56が、読取サイク
ル中にデータバス30のライン30d上に受け取られ且
つARAU52aと52bから発生されたアドレスに対
応するラッチ値を、CPUバス60aとCPUバス60
bにそれぞれ接続する。この結果実行サイクル中、CP
Uバス60aはARAU52aから発生されたメモリロ
ケーションの内容を乗算器46に与え、またCPUバス
60bはARAU52bから発生されたメモリロケーシ
ョンの内容を乗算器46に与える。従ってこのとき、デ
コードサイクル中にデコードされた命令コードに応じ、
マルチプレクサ64aと64bはコントローラ14によ
って動作可能とされている。
【0055】図14は、ここで説明する並列の乗算及び
加算演算用の実行サイクルを示している。データレジス
タ50aと50eの内容がそれぞれレジスタバス62a
と62bを介してALU48に与えられる。つまり、レ
ジスタバス62aと62bがコントローラ14によっ
て、それぞれマルチプレクサ64cと64dを介しAL
U48の入力に接続される。実行サイクル中これらの入
力を受け取ると、ALU48は2つの値の加算を行い、
その和をデータレジスタ50e内に記憶する。また命令
の実行サイクル中、乗算器46はCPUバス60aと6
0bから与えられた両値を乗算し、その結果をデータレ
ジスタ50a内に記憶する。こうして、並列乗算−加算
命令は、実行サイクルの終りで完了する。かかる並列乗
算−加算命令はそれ自体が、デジタル信号処理の用途で
必要な反復的乗算及び加算の演算で有用な“パイプライ
ン化”方式となっている。この命令では、データレジス
タ50aが中間アキュムレータとして機能し、データレ
ジスタ50eが最終結果用のアキュムレータとして機能
する。この点は、乗算と並列に加算が生じていることか
ら明らかであろう。つまり、次の乗算がまだ生じていな
いため、ALU48の加算で使われるデータレジスタ5
0a内の値は、前の乗算の結果である。次の並列乗算−
加算命令の実行サイクル中(あるいは勿論標準的な加算
命令中)、乗算器46による乗算の結果がデータレジス
タ50a内に記憶され、データレジスタ50e内の累算
結果に加算される。従って、n回反復される並列乗算−
加算命令のマイクロコンピュータ10による実行は、乗
算積の累算が乗算と並列に生じない場合と比べ、システ
ムクロック周期のサイクル数がほぼn個少なくてよい。
従ってCPU12の構造は、時にコントローラ14に関
連して前述した命令のパイプライン化特徴と組合せて使
われる場合に、デジタル信号処理の性能を大巾に向上可
能とする。
加算演算用の実行サイクルを示している。データレジス
タ50aと50eの内容がそれぞれレジスタバス62a
と62bを介してALU48に与えられる。つまり、レ
ジスタバス62aと62bがコントローラ14によっ
て、それぞれマルチプレクサ64cと64dを介しAL
U48の入力に接続される。実行サイクル中これらの入
力を受け取ると、ALU48は2つの値の加算を行い、
その和をデータレジスタ50e内に記憶する。また命令
の実行サイクル中、乗算器46はCPUバス60aと6
0bから与えられた両値を乗算し、その結果をデータレ
ジスタ50a内に記憶する。こうして、並列乗算−加算
命令は、実行サイクルの終りで完了する。かかる並列乗
算−加算命令はそれ自体が、デジタル信号処理の用途で
必要な反復的乗算及び加算の演算で有用な“パイプライ
ン化”方式となっている。この命令では、データレジス
タ50aが中間アキュムレータとして機能し、データレ
ジスタ50eが最終結果用のアキュムレータとして機能
する。この点は、乗算と並列に加算が生じていることか
ら明らかであろう。つまり、次の乗算がまだ生じていな
いため、ALU48の加算で使われるデータレジスタ5
0a内の値は、前の乗算の結果である。次の並列乗算−
加算命令の実行サイクル中(あるいは勿論標準的な加算
命令中)、乗算器46による乗算の結果がデータレジス
タ50a内に記憶され、データレジスタ50e内の累算
結果に加算される。従って、n回反復される並列乗算−
加算命令のマイクロコンピュータ10による実行は、乗
算積の累算が乗算と並列に生じない場合と比べ、システ
ムクロック周期のサイクル数がほぼn個少なくてよい。
従ってCPU12の構造は、時にコントローラ14に関
連して前述した命令のパイプライン化特徴と組合せて使
われる場合に、デジタル信号処理の性能を大巾に向上可
能とする。
【0056】前述したように、例えば周辺ポート24に
接続された外部メモリ装置は、マイクロコンピュータ1
0によって実行されるプログラム用の命令コードを記憶
するのに使える。しかし、外部メモリのアクセス時間は
メモリ16、18及び20のアクセス時間よりかなり遅
くなることがあるので、コントローラ14はプログラム
カウンタ92の内容をプログラムバス34のアドレスラ
イン34a上に与えた後、命令コードが外部メモリから
プログラムバス34のデータライン34d上に与えられ
命令レジスタ94によって受け取られるまで、1システ
ムクロック周期の間フルに待たなければならない。実行
されるある命令について、実行すべき次の命令コードが
前の命令のアドレスに近いアドレスを持つプログラムメ
モリ内のメモリロケーションにしばしば位置することは
よく知られている。このような次の命令コードのプログ
ラムメモリ内における近接は、計算の反復的性質のため
特にデジタル信号処理の用途でよく生じる。この点は、
図15を参照して以下説明する命令キャッシュ36等の
命令キャッシュを用いることで有利に利用できる。図1
に関連して前述したように、命令キャッシュ36はプロ
グラムバス34のアドレスライン34aとデータライン
34dに接続されている。図15に示すように命令キャ
ッシュ36は、2つの32ワードセグメント140aと
140bに分けて構成された64ワードのメモリ140
を含む。命令キャッシュ36は更にセグメントスタート
レジスタ144aと144bを含み、これらのレジスタ
は各々セグメント140aと140bにそれぞれ記憶さ
れた命令コード用アドレスの所定数の最上位ビットを記
憶する。発明の好ましい実施例において、アドレス信号
は24ビット巾で、各セグメント140aと140bは
32(25 )ビットを含んでいるため、セグメントスタ
ートレジスタ144aと144bによって記憶されるビ
ット数は19である。各々のセグメント140aと14
0b内に記憶された各32ワードにフラグビット142
が付設され、フラグがセットされているときは対応した
ワード内に命令コードが存在することを示し、セットさ
れていないときは対応したワード内に命令コードが存在
しないことを示す。
接続された外部メモリ装置は、マイクロコンピュータ1
0によって実行されるプログラム用の命令コードを記憶
するのに使える。しかし、外部メモリのアクセス時間は
メモリ16、18及び20のアクセス時間よりかなり遅
くなることがあるので、コントローラ14はプログラム
カウンタ92の内容をプログラムバス34のアドレスラ
イン34a上に与えた後、命令コードが外部メモリから
プログラムバス34のデータライン34d上に与えられ
命令レジスタ94によって受け取られるまで、1システ
ムクロック周期の間フルに待たなければならない。実行
されるある命令について、実行すべき次の命令コードが
前の命令のアドレスに近いアドレスを持つプログラムメ
モリ内のメモリロケーションにしばしば位置することは
よく知られている。このような次の命令コードのプログ
ラムメモリ内における近接は、計算の反復的性質のため
特にデジタル信号処理の用途でよく生じる。この点は、
図15を参照して以下説明する命令キャッシュ36等の
命令キャッシュを用いることで有利に利用できる。図1
に関連して前述したように、命令キャッシュ36はプロ
グラムバス34のアドレスライン34aとデータライン
34dに接続されている。図15に示すように命令キャ
ッシュ36は、2つの32ワードセグメント140aと
140bに分けて構成された64ワードのメモリ140
を含む。命令キャッシュ36は更にセグメントスタート
レジスタ144aと144bを含み、これらのレジスタ
は各々セグメント140aと140bにそれぞれ記憶さ
れた命令コード用アドレスの所定数の最上位ビットを記
憶する。発明の好ましい実施例において、アドレス信号
は24ビット巾で、各セグメント140aと140bは
32(25 )ビットを含んでいるため、セグメントスタ
ートレジスタ144aと144bによって記憶されるビ
ット数は19である。各々のセグメント140aと14
0b内に記憶された各32ワードにフラグビット142
が付設され、フラグがセットされているときは対応した
ワード内に命令コードが存在することを示し、セットさ
れていないときは対応したワード内に命令コードが存在
しないことを示す。
【0057】MSB比較器146がアドレスライン34
aに接続され、アドレスライン34a上の最上位19ビ
ットをセグメントレジスタ144a及び144bの内容
と比較する。LSBデコーダ148もアドレスライン3
4aに接続され、後述するようにアドレスライン34a
の最下位5ビットをデコードする。入/出力バッファ1
50がデータライン34dと両セグメント140a、1
40b間に接続され、命令キャッシュ36からプログラ
ムバス34への出力を制御する。命令キャッシュ36は
更に古い使用順(LRU)スタック152を含み、これ
はセグメントレジスタ144aと144bをそれらが最
も最近使われた順位に応じて指す。フェッチサイクルの
動作時、フェッチすべき命令コードのメモリアドレスが
RAM16、18またはROM20内でなく外部メモリ
内に存在する場合には、MSB比較器146がプログラ
ムバス34のアドレスライン34a上のアドレス信号の
最上位19ビットを受け取り、それらをセグメントレジ
スタ144a及び144bの内容と比較する。合致が認
められると、LSBデコーダ148がアドレスライン3
4a上のアドレス信号の最下位5ビットをデコードし、
アドレスライン34a上の全アドレス信号のセグメント
140a、または140b何れか内における32ワード
の一方に対応したフラグビット142の一方を選択す
る。
aに接続され、アドレスライン34a上の最上位19ビ
ットをセグメントレジスタ144a及び144bの内容
と比較する。LSBデコーダ148もアドレスライン3
4aに接続され、後述するようにアドレスライン34a
の最下位5ビットをデコードする。入/出力バッファ1
50がデータライン34dと両セグメント140a、1
40b間に接続され、命令キャッシュ36からプログラ
ムバス34への出力を制御する。命令キャッシュ36は
更に古い使用順(LRU)スタック152を含み、これ
はセグメントレジスタ144aと144bをそれらが最
も最近使われた順位に応じて指す。フェッチサイクルの
動作時、フェッチすべき命令コードのメモリアドレスが
RAM16、18またはROM20内でなく外部メモリ
内に存在する場合には、MSB比較器146がプログラ
ムバス34のアドレスライン34a上のアドレス信号の
最上位19ビットを受け取り、それらをセグメントレジ
スタ144a及び144bの内容と比較する。合致が認
められると、LSBデコーダ148がアドレスライン3
4a上のアドレス信号の最下位5ビットをデコードし、
アドレスライン34a上の全アドレス信号のセグメント
140a、または140b何れか内における32ワード
の一方に対応したフラグビット142の一方を選択す
る。
【0058】対応したフラグビット142がセットされ
ていれば、入/出力バッファ150が合致したセグメン
ト140aまたは140b内の対応したワードの内容を
プログラムバス34のデータライン34d上に与え、命
令キャッシュ36内に記憶された命令コードのアクセス
が完了する。さらに、合致したセグメントレジスタ14
4aまたは144bがLRUスタック152のトップに
よって指され、合致しなかったセグメントレジスタ14
4aまたは144bがLRUスタック152のボトム(b
ottom)によって指される。LRUスタック152のボト
ムによって指されているセグメントが両セグメント14
0aと140bのうち古い時点で使用された方で、後述
するキャッシュ“ミス”の場合に交換されたセグメント
となる。用途によっては、セグメント140a及び14
0b内のワードの一部が命令コードでロードされていな
いことがある。そのため、プログラムバス34のアドレ
スライン34a上の最上位19ビットがセグメントレジ
スタ144a及び144bの一方の内容と一致するが、
セグメントの合致した一方140aまたは140b内の
最下位5ビットに対応したワードが命令コードを含まな
い可能性が生じる。この場合には、対応したワード用の
フラグビット142がセットされていない(すなわち論
理状態“0”を有する)。これは勿論キャッシュ“ミ
ス”で、対応したアドレスの命令コードが外部メモリ内
のアドレスされたメモリロケーションから読み取られな
ければならない。つまり、入/出力バッファ150が命
令コードをプログラムバス34のデータライン34dか
ら合致したセグメント140aまたは140b内の対応
したワード内にロードし、対応したフラグビット142
が論理状態“1”にセットされる。しかし、上位ビット
がセグメントレジスタ144a及び144bの一方と合
致していたから、セグメントレジスタのうち合致する一
方144aまたは144bがLRUスタック152のト
ップによって指され、セグメントレジスタの他方144
aまたは144bがLRUスタック152のボトムによ
って指される。
ていれば、入/出力バッファ150が合致したセグメン
ト140aまたは140b内の対応したワードの内容を
プログラムバス34のデータライン34d上に与え、命
令キャッシュ36内に記憶された命令コードのアクセス
が完了する。さらに、合致したセグメントレジスタ14
4aまたは144bがLRUスタック152のトップに
よって指され、合致しなかったセグメントレジスタ14
4aまたは144bがLRUスタック152のボトム(b
ottom)によって指される。LRUスタック152のボト
ムによって指されているセグメントが両セグメント14
0aと140bのうち古い時点で使用された方で、後述
するキャッシュ“ミス”の場合に交換されたセグメント
となる。用途によっては、セグメント140a及び14
0b内のワードの一部が命令コードでロードされていな
いことがある。そのため、プログラムバス34のアドレ
スライン34a上の最上位19ビットがセグメントレジ
スタ144a及び144bの一方の内容と一致するが、
セグメントの合致した一方140aまたは140b内の
最下位5ビットに対応したワードが命令コードを含まな
い可能性が生じる。この場合には、対応したワード用の
フラグビット142がセットされていない(すなわち論
理状態“0”を有する)。これは勿論キャッシュ“ミ
ス”で、対応したアドレスの命令コードが外部メモリ内
のアドレスされたメモリロケーションから読み取られな
ければならない。つまり、入/出力バッファ150が命
令コードをプログラムバス34のデータライン34dか
ら合致したセグメント140aまたは140b内の対応
したワード内にロードし、対応したフラグビット142
が論理状態“1”にセットされる。しかし、上位ビット
がセグメントレジスタ144a及び144bの一方と合
致していたから、セグメントレジスタのうち合致する一
方144aまたは144bがLRUスタック152のト
ップによって指され、セグメントレジスタの他方144
aまたは144bがLRUスタック152のボトムによ
って指される。
【0059】プログラムバス34のアドレスライン34
a上の最上位19ビットがセグメントレジスタ144a
または144bの何れの内容とも合致しない場合にも、
キャッシュ“ミス”が生じる。この場合には、LRUス
タック152のボトムによって指されているセグメント
140aと140bのうち古い時点で使われた方に対応
したセグメントの一方140aまたは140b内の全ワ
ードについて、フラグビット142がリセットされる。
次いで、アドレスライン34a上の最上位19ビットが
セグメント140aと140bのうち古い時点で使われ
た方のセグメントレジスタ144aまたは144b内に
記憶され、データライン34d上の外部メモリから受信
された命令コードがアドレスライン34aの最下位5ビ
ットに対応した“新たな”セグメント内の32ビットの
対応する一方内にロードされ、そのフラグビット142
が状態“1”にセットされる。新たにロードされた命令
コードを含むセグメントレジスタの一方140aまたは
140bがLRUスタック152のトップによって指さ
れ、他方のセグメントレジスタ140aまたは140b
がLRUスタック152のボトムによって指されてい
る。図2に示したように、状態レジスタ71がCPU1
2内に含まれている。前記したのと別の方法で命令キャ
ッシュの動作を制御する3つのビットが状態レジスタ7
1内に含まれている。第1ビットはキャッシュクリアビ
ットで、これがセットされると全てのフラグビット14
2をリセットし、命令キャッシュ36の内容をクリアす
る。状態レジスタ71内の第2の制御ビットはキャッシ
ュエネーブルビットで、これがセットされると命令キャ
ッシュ36の動作を可能とする。逆にセットされない
と、アドレスライン34aのアドレス値と関わりなく全
てアクセスされないように命令キャッシュ36が動作不
能とされる。キャッシュエネーブルビットがセットされ
てない期間中、セグメントレジスタ144aと144b
の内容、フラグビット142、及びセグメント140a
と140b内のワードそのものは変更不可能である。状
態レジスタ71内の第3ビットは、キャッシュフリーズ
ビット(cache freeze bit)である。キャッシュフリーズ
ビットがセットされていると、キャッシュ“ヒット(hi
t) ”の場合に命令キャッシュ36からのフェッチだけ
が許される。しかしキャッシュ“ミス(miss)”の場合に
は、フラグビット142、セグメントレジスタ144a
と144b、またはLRUスタック152の変更は一切
行われず、命令キャッシュ36に影響を及ぼさずに外部
メモリからの命令コードのフェッチが行われるだけであ
る。
a上の最上位19ビットがセグメントレジスタ144a
または144bの何れの内容とも合致しない場合にも、
キャッシュ“ミス”が生じる。この場合には、LRUス
タック152のボトムによって指されているセグメント
140aと140bのうち古い時点で使われた方に対応
したセグメントの一方140aまたは140b内の全ワ
ードについて、フラグビット142がリセットされる。
次いで、アドレスライン34a上の最上位19ビットが
セグメント140aと140bのうち古い時点で使われ
た方のセグメントレジスタ144aまたは144b内に
記憶され、データライン34d上の外部メモリから受信
された命令コードがアドレスライン34aの最下位5ビ
ットに対応した“新たな”セグメント内の32ビットの
対応する一方内にロードされ、そのフラグビット142
が状態“1”にセットされる。新たにロードされた命令
コードを含むセグメントレジスタの一方140aまたは
140bがLRUスタック152のトップによって指さ
れ、他方のセグメントレジスタ140aまたは140b
がLRUスタック152のボトムによって指されてい
る。図2に示したように、状態レジスタ71がCPU1
2内に含まれている。前記したのと別の方法で命令キャ
ッシュの動作を制御する3つのビットが状態レジスタ7
1内に含まれている。第1ビットはキャッシュクリアビ
ットで、これがセットされると全てのフラグビット14
2をリセットし、命令キャッシュ36の内容をクリアす
る。状態レジスタ71内の第2の制御ビットはキャッシ
ュエネーブルビットで、これがセットされると命令キャ
ッシュ36の動作を可能とする。逆にセットされない
と、アドレスライン34aのアドレス値と関わりなく全
てアクセスされないように命令キャッシュ36が動作不
能とされる。キャッシュエネーブルビットがセットされ
てない期間中、セグメントレジスタ144aと144b
の内容、フラグビット142、及びセグメント140a
と140b内のワードそのものは変更不可能である。状
態レジスタ71内の第3ビットは、キャッシュフリーズ
ビット(cache freeze bit)である。キャッシュフリーズ
ビットがセットされていると、キャッシュ“ヒット(hi
t) ”の場合に命令キャッシュ36からのフェッチだけ
が許される。しかしキャッシュ“ミス(miss)”の場合に
は、フラグビット142、セグメントレジスタ144a
と144b、またはLRUスタック152の変更は一切
行われず、命令キャッシュ36に影響を及ぼさずに外部
メモリからの命令コードのフェッチが行われるだけであ
る。
【0060】次に図16を参照して、DMAコントロー
ラ22の構造と動作を説明する。周知なように、直接メ
モリアクセス動作は中央処理装置(例えばCPU12)
の干渉なく、記憶データのブロックを一つのメモリ領域
を別のメモリ領域へ移動するのに有用である。ここに説
明するマイクロコンピュータ10では、外部メモリとオ
ンチップメモリ16、18間でデータのブロックを移動
するのにも直接メモリアクセスが有用である。図1及び
図16に示すように、DMAコントローラ22はDMA
バス38と周辺バス28に接続され、データをDMAバ
ス38上にデータを伝送すると共に、周辺バス28から
制御及び出所/宛先アドレス情報を受け取る。尚、周辺
バス28は前述したデータバス30、プログラムバス3
4、及びDMAバス38と同じように、アドレス情報と
データをそれぞれ伝送するアドレスライン28aとデー
タライン28dを含む。図1に戻って参照すれば、周辺
バス28のアドレスライン28aとデータライン28d
は周辺ポート26の出力でそれぞれラインI/0AnとI
/0Dnに直接接続され、従ってそれらに対応することが
明らかであろう。従って、周辺バス28にアドレスを与
えたりそれとデータを交信するためには、所望のアドレ
スが周辺ポート26によって処理されるアドレスに対応
したマイクロコンピュータ10のメモリアドレススペー
ス内の値と対応しなければならない。このため、以下に
説明するDMAコントローラ内のメモリマップドレジス
タは、前記の表4に示したメモリアドレススペース80
000h〜800FFFh内にある。
ラ22の構造と動作を説明する。周知なように、直接メ
モリアクセス動作は中央処理装置(例えばCPU12)
の干渉なく、記憶データのブロックを一つのメモリ領域
を別のメモリ領域へ移動するのに有用である。ここに説
明するマイクロコンピュータ10では、外部メモリとオ
ンチップメモリ16、18間でデータのブロックを移動
するのにも直接メモリアクセスが有用である。図1及び
図16に示すように、DMAコントローラ22はDMA
バス38と周辺バス28に接続され、データをDMAバ
ス38上にデータを伝送すると共に、周辺バス28から
制御及び出所/宛先アドレス情報を受け取る。尚、周辺
バス28は前述したデータバス30、プログラムバス3
4、及びDMAバス38と同じように、アドレス情報と
データをそれぞれ伝送するアドレスライン28aとデー
タライン28dを含む。図1に戻って参照すれば、周辺
バス28のアドレスライン28aとデータライン28d
は周辺ポート26の出力でそれぞれラインI/0AnとI
/0Dnに直接接続され、従ってそれらに対応することが
明らかであろう。従って、周辺バス28にアドレスを与
えたりそれとデータを交信するためには、所望のアドレ
スが周辺ポート26によって処理されるアドレスに対応
したマイクロコンピュータ10のメモリアドレススペー
ス内の値と対応しなければならない。このため、以下に
説明するDMAコントローラ内のメモリマップドレジス
タは、前記の表4に示したメモリアドレススペース80
000h〜800FFFh内にある。
【0061】DMAコントローラ22は制御レジスタ3
00、転送カウンタレジスタ302、宛先アドレスレジ
スタ304及び出所アドレスレジスタ306を含み、こ
れらは各々周辺バス28のアドレスライン28aとデー
タライン28dに接続され、マイクロコンピュータ10
のメモリアドレススペースの特有なアドレスロケーショ
ンにマップ配分されている。DMAコントローラ22は
更に、DMAバス38のデータライン38dに接続され
たデータレジスタ308を含み、DMAバスのアドレス
ライン38aは宛先アドレスレジスタ304と出所アド
レスレジスタ306に接続されている。制御ロジック3
10が制御レジスタ300に接続され、制御レジスタ3
00内のビットの内容がDMAコントローラ22の制御
を行う。制御ロジック310はラインDECRを経て転
送カウンタレジスタ302に信号を発生し、ラインZE
ROを経て転送カウンタレジスタ302から信号を受信
する。また制御ロジック310はラインLOADとIN
C/DECRを経て宛先アドレスレジスタ304と出所
アドレスレジスタ306にそれぞれ信号を与え、更にラ
インWRITEとSTOREを経てデータレジスタ30
8に信号を与える。所望のメモリ読取/書込動作を行う
には、制御ロジック310がコントローラ14に導かれ
る読取/書込信号を発生し、コントローラ14によるメ
モリアクセス制御に関連して前述したように、コントロ
ーラ14が必要な制御信号をメモリ16、18及び20
と周辺ポート24及び26に発生可能である。
00、転送カウンタレジスタ302、宛先アドレスレジ
スタ304及び出所アドレスレジスタ306を含み、こ
れらは各々周辺バス28のアドレスライン28aとデー
タライン28dに接続され、マイクロコンピュータ10
のメモリアドレススペースの特有なアドレスロケーショ
ンにマップ配分されている。DMAコントローラ22は
更に、DMAバス38のデータライン38dに接続され
たデータレジスタ308を含み、DMAバスのアドレス
ライン38aは宛先アドレスレジスタ304と出所アド
レスレジスタ306に接続されている。制御ロジック3
10が制御レジスタ300に接続され、制御レジスタ3
00内のビットの内容がDMAコントローラ22の制御
を行う。制御ロジック310はラインDECRを経て転
送カウンタレジスタ302に信号を発生し、ラインZE
ROを経て転送カウンタレジスタ302から信号を受信
する。また制御ロジック310はラインLOADとIN
C/DECRを経て宛先アドレスレジスタ304と出所
アドレスレジスタ306にそれぞれ信号を与え、更にラ
インWRITEとSTOREを経てデータレジスタ30
8に信号を与える。所望のメモリ読取/書込動作を行う
には、制御ロジック310がコントローラ14に導かれ
る読取/書込信号を発生し、コントローラ14によるメ
モリアクセス制御に関連して前述したように、コントロ
ーラ14が必要な制御信号をメモリ16、18及び20
と周辺ポート24及び26に発生可能である。
【0062】制御レジスタ300は11ビットのアドレ
ス可能レジスタで、DMAレジスタ22を構成するため
に書き込まれる。これらの各ビットは、以下動作の説明
と共に詳述する。転送カウンタレジスタ302は24ビ
ットのアドレス可能レジスタで、これには周辺バス28
から、DMA動作で転送されるべき数のメモリロケーシ
ョンがロードされる。転送カウンタレジスタ302はラ
インDECR上のパルスによってデクレメントされ、そ
の内容がゼロに等しいときラインZEROを経て制御ロ
ジック310に信号を送る。出所アドレスレジスタ30
6と宛先アドレスレジスタ304は24ビットのアドレ
ス可能レジスタで、そこから及びそこへデータを転送す
べきメモリアドレスをそれぞれ記憶する。出所アドレス
レジスタ306と宛先アドレスレジスタ304の内容は
初め、周辺バス28のデータライン28dの最下位24
ビットからロードされる。次いで制御レジスタ300の
内容に応じ、出所アドレスレジスタ306と宛先アドレ
スレジスタ304は、制御ロジック310からのライン
INC/DECRを経たパルスに応答してインクレメン
トまたはデクレメントされる。データレジスタ308
は、DMAバス38のデータライン38aからのデータ
をバッファする一時レジスタである。つまり、データラ
イン38d上の値がラインWRITE上の信号に応じて
データレジスタ308内にロードされ、またデータレジ
スタ308の内容がラインSTORE上の信号に応じて
データライン38dに与えられる。
ス可能レジスタで、DMAレジスタ22を構成するため
に書き込まれる。これらの各ビットは、以下動作の説明
と共に詳述する。転送カウンタレジスタ302は24ビ
ットのアドレス可能レジスタで、これには周辺バス28
から、DMA動作で転送されるべき数のメモリロケーシ
ョンがロードされる。転送カウンタレジスタ302はラ
インDECR上のパルスによってデクレメントされ、そ
の内容がゼロに等しいときラインZEROを経て制御ロ
ジック310に信号を送る。出所アドレスレジスタ30
6と宛先アドレスレジスタ304は24ビットのアドレ
ス可能レジスタで、そこから及びそこへデータを転送す
べきメモリアドレスをそれぞれ記憶する。出所アドレス
レジスタ306と宛先アドレスレジスタ304の内容は
初め、周辺バス28のデータライン28dの最下位24
ビットからロードされる。次いで制御レジスタ300の
内容に応じ、出所アドレスレジスタ306と宛先アドレ
スレジスタ304は、制御ロジック310からのライン
INC/DECRを経たパルスに応答してインクレメン
トまたはデクレメントされる。データレジスタ308
は、DMAバス38のデータライン38aからのデータ
をバッファする一時レジスタである。つまり、データラ
イン38d上の値がラインWRITE上の信号に応じて
データレジスタ308内にロードされ、またデータレジ
スタ308の内容がラインSTORE上の信号に応じて
データライン38dに与えられる。
【0063】DMAコントローラ22の動作がマイクロ
コンピュータ10の残部の動作と一貫して制御されるよ
うに、制御ロジック310は更にコントローラ14に接
続されている。以下に明らかとなるように、DMAは割
込周期され、外部源からのデータの受信または送信をC
PU12、DMAコントローラ22、及び外部源間での
衝突を伴わずに行うことができる。制御レジスタ300
のSTARTビット300aは、論理状態“1”または
“0”を有するかに応じて、DMAコントローラ22の
動作をそれぞれ動作可能または不能とする。制御レジス
タ300のTCビット300bはレディロジック310
を制御し、TCビット300bが状態“1”にセットさ
れていると、転送カウンタレジスタ302がゼロに達し
たときDMA転送が終了する。同期ビット300cと3
00dが、転送データの出所または宛先とのDMAコン
トローラ22の周期化を構成可能とする。制御レジスタ
300内のビット300e〜300hの内容が、出所及
び宛先アドレスレジスタ304と306がインクレメン
トされるか、デクレメントされるか、あるいは各転送読
取後に変更されないかどうかを決める。TCINTビッ
ト300iは状態“1”に設定されると、転送カウンタ
レジスタ302の内容がゼロに達したとき内部割込を生
成する。制御ロジック310はコントローラ14に接続
されてライン312上に割込信号を発生すると共に、ラ
イン314を経た割込ロジック250からの割込アクノ
レジ信号に応答する。DMAコントローラ22の制御下
で行われるDMA動作は、外部から制御できるように、
コントローラ14と組合せて割込駆動されうる。コント
ローラ14に関連して前述したように、内部発生割込は
コントローラ14内の割込ロジック250によって受信
され処理される。制御ロジック310は更にライン31
3を経て割込要求信号をコントローラ14に発生し、ま
たライン315を経て割込要求信号をそこから受信す
る。ライン313上の割込要求信号は、DMAコントロ
ーラが外部装置から発生されたDMA関連の割込を待っ
ていることを示し、ライン315上の割込アクティブ信
号は、そのような割込がコントローラ14によって受信
されており、それが処理されるべきことを示している。
同期化は、制御ロジック310がDMA転送サイクル内
の所定時点で割込要求信号を発生し、先に進む前に割込
アクティブ信号を待つことによって制御される。同期化
時点の選択は、制御レジスタ300のビット300cと
300dをロードすることでなされる。DMAコントロ
ーラ22によって実施可能な同期モードを表5に列記す
る。 表5 ビット300c/d 割込同期 00 割込同期なし 01 出所同期;割込でDMA読取; 使用可能なとき書込 10 宛先同期;使用可能なときDMA 読取;割込で書込 11 出所及び宛先同期;割込でDMA 読取;次の割込で書込 動作時には、転送カウンタレジスタ302、宛先アドレ
スレジスタ304、及び出所レジスタ306にまず所望
の所期状態がロードされる。これらのレジスタ302、
304及び306は各々、マイクロコンピュータ10に
よって実行される通常のメモリ書込命令を用い、周辺バ
ス28のアドレスライン28aによってアドレス可能で
ある。各レジスタ302、304及び306に対し図1
6において暗黙状態であるのは、アドレスされたときそ
れらレジスタ302、304及び306のロードを制御
するデコードロジックである。制御レジスタ300もそ
のメモリロケーションにアドレスし、DMAコントロー
ラ22を所望通り構成することによってロードされる。
制御ロジック310はSTARTビット300aが状態
“1”にセットされるのに応じて、DMAコントローラ
22の動作を可能とする。
コンピュータ10の残部の動作と一貫して制御されるよ
うに、制御ロジック310は更にコントローラ14に接
続されている。以下に明らかとなるように、DMAは割
込周期され、外部源からのデータの受信または送信をC
PU12、DMAコントローラ22、及び外部源間での
衝突を伴わずに行うことができる。制御レジスタ300
のSTARTビット300aは、論理状態“1”または
“0”を有するかに応じて、DMAコントローラ22の
動作をそれぞれ動作可能または不能とする。制御レジス
タ300のTCビット300bはレディロジック310
を制御し、TCビット300bが状態“1”にセットさ
れていると、転送カウンタレジスタ302がゼロに達し
たときDMA転送が終了する。同期ビット300cと3
00dが、転送データの出所または宛先とのDMAコン
トローラ22の周期化を構成可能とする。制御レジスタ
300内のビット300e〜300hの内容が、出所及
び宛先アドレスレジスタ304と306がインクレメン
トされるか、デクレメントされるか、あるいは各転送読
取後に変更されないかどうかを決める。TCINTビッ
ト300iは状態“1”に設定されると、転送カウンタ
レジスタ302の内容がゼロに達したとき内部割込を生
成する。制御ロジック310はコントローラ14に接続
されてライン312上に割込信号を発生すると共に、ラ
イン314を経た割込ロジック250からの割込アクノ
レジ信号に応答する。DMAコントローラ22の制御下
で行われるDMA動作は、外部から制御できるように、
コントローラ14と組合せて割込駆動されうる。コント
ローラ14に関連して前述したように、内部発生割込は
コントローラ14内の割込ロジック250によって受信
され処理される。制御ロジック310は更にライン31
3を経て割込要求信号をコントローラ14に発生し、ま
たライン315を経て割込要求信号をそこから受信す
る。ライン313上の割込要求信号は、DMAコントロ
ーラが外部装置から発生されたDMA関連の割込を待っ
ていることを示し、ライン315上の割込アクティブ信
号は、そのような割込がコントローラ14によって受信
されており、それが処理されるべきことを示している。
同期化は、制御ロジック310がDMA転送サイクル内
の所定時点で割込要求信号を発生し、先に進む前に割込
アクティブ信号を待つことによって制御される。同期化
時点の選択は、制御レジスタ300のビット300cと
300dをロードすることでなされる。DMAコントロ
ーラ22によって実施可能な同期モードを表5に列記す
る。 表5 ビット300c/d 割込同期 00 割込同期なし 01 出所同期;割込でDMA読取; 使用可能なとき書込 10 宛先同期;使用可能なときDMA 読取;割込で書込 11 出所及び宛先同期;割込でDMA 読取;次の割込で書込 動作時には、転送カウンタレジスタ302、宛先アドレ
スレジスタ304、及び出所レジスタ306にまず所望
の所期状態がロードされる。これらのレジスタ302、
304及び306は各々、マイクロコンピュータ10に
よって実行される通常のメモリ書込命令を用い、周辺バ
ス28のアドレスライン28aによってアドレス可能で
ある。各レジスタ302、304及び306に対し図1
6において暗黙状態であるのは、アドレスされたときそ
れらレジスタ302、304及び306のロードを制御
するデコードロジックである。制御レジスタ300もそ
のメモリロケーションにアドレスし、DMAコントロー
ラ22を所望通り構成することによってロードされる。
制御ロジック310はSTARTビット300aが状態
“1”にセットされるのに応じて、DMAコントローラ
22の動作を可能とする。
【0064】一例として、宛先アドレスレジスタ304
と出所アドレスレジスタ306が各転送中に共にインク
レメントされるように、必要なデータが制御レジスタ3
00にロードされるものとする。またこの例では、選択
した同期モードは宛先同期とする。この例によれば、制
御ロジック310がまずそこから割込ロジック250へ
の内部割込信号の送信を不能とする。次に、制御ロジッ
ク310がラインLOADを経て出所アドレスレジスタ
306にパルスを発生、出所アドレスレジスタ306の
内容がDMAバス38のアドレスライン38a上に置か
れる。図9及び図10に関連して前述したメモリアドレ
シングと同様に、(周辺ポート24を介した外部メモリ
内もしくはメモリ16、18または20内の)アドレス
されたメモリロケーションが読み取られる。制御ロジッ
ク310がデータレジスタ308に接続されたSTOR
Eラインにパルスを発し、DMAバス38のデータライ
ン38d上の値をデータレジスタ308にロードする。
読取動作後、出所アドレスレジスタ306の内容がライ
ンINC/DECRを介し制御ロジック310によって
インクレメントされる。制御レジスタ300で宛先同期
モードが選択されているため、ここで制御ロジック31
0がライン313上に割込要求信号を発生し、割込ロジ
ック250に割込をかける。DMA用の割込許可をコン
トローラ14が受信するのに応じて、制御ロジック31
0がDMA書込動作を開始し、割込許可のイベントはラ
イン315上の割込アクティブ信号によってDMAコン
トローラ22に転送される。従って、制御ロジック31
0が宛先アドレスレジスタ304にLOAD信号を与え
るのに応じ、宛先アドレスレジスタ304の内容がDM
Aバス38のアドレスライン38a上に与えられる。制
御ロジック310もデータレジスタ308に接続された
WRITEラインにパルスを発し、データレジスタ30
8の内容がDMAバス38のデータライン38d上に与
えられる。アドレスされたメモリロケーションは、コン
トローラ14がデータレジスタ308の内容をアドレス
されたロケーションへ書き込むのに必要な書込制御信号
を与えるだけで、前述したようにアクセスされる。
と出所アドレスレジスタ306が各転送中に共にインク
レメントされるように、必要なデータが制御レジスタ3
00にロードされるものとする。またこの例では、選択
した同期モードは宛先同期とする。この例によれば、制
御ロジック310がまずそこから割込ロジック250へ
の内部割込信号の送信を不能とする。次に、制御ロジッ
ク310がラインLOADを経て出所アドレスレジスタ
306にパルスを発生、出所アドレスレジスタ306の
内容がDMAバス38のアドレスライン38a上に置か
れる。図9及び図10に関連して前述したメモリアドレ
シングと同様に、(周辺ポート24を介した外部メモリ
内もしくはメモリ16、18または20内の)アドレス
されたメモリロケーションが読み取られる。制御ロジッ
ク310がデータレジスタ308に接続されたSTOR
Eラインにパルスを発し、DMAバス38のデータライ
ン38d上の値をデータレジスタ308にロードする。
読取動作後、出所アドレスレジスタ306の内容がライ
ンINC/DECRを介し制御ロジック310によって
インクレメントされる。制御レジスタ300で宛先同期
モードが選択されているため、ここで制御ロジック31
0がライン313上に割込要求信号を発生し、割込ロジ
ック250に割込をかける。DMA用の割込許可をコン
トローラ14が受信するのに応じて、制御ロジック31
0がDMA書込動作を開始し、割込許可のイベントはラ
イン315上の割込アクティブ信号によってDMAコン
トローラ22に転送される。従って、制御ロジック31
0が宛先アドレスレジスタ304にLOAD信号を与え
るのに応じ、宛先アドレスレジスタ304の内容がDM
Aバス38のアドレスライン38a上に与えられる。制
御ロジック310もデータレジスタ308に接続された
WRITEラインにパルスを発し、データレジスタ30
8の内容がDMAバス38のデータライン38d上に与
えられる。アドレスされたメモリロケーションは、コン
トローラ14がデータレジスタ308の内容をアドレス
されたロケーションへ書き込むのに必要な書込制御信号
を与えるだけで、前述したようにアクセスされる。
【0065】書込の完了後、宛先アドレスレジスタ30
4の内容がラインINC/DECRを介し制御ロジック
310によってインクレメントされ、転送カウンタレジ
スタ302の内容がラインDECRを介し制御ロジック
310によってデクレメントされる。転送カウンタレジ
スタ302の内容がゼロに達すると、制御ロジック31
0がラインZEROを経て信号を受信し、制御レジスタ
300のTCINTビット300iの状態に応じてライ
ン312上に割込を発生し(あるいは発生せず)、DM
A動作の完了をコントローラ14に通知する。勿論、転
送カウンタレジスタ302がゼロに達してもまたは割込
によってDMA動作が終了していなければ、制御レジス
タ300のSTARTビット300aが状態“1”にあ
るかどうかを制御ロジック310が判定し、状態“1”
にあれば、出所アドレスレジスタ306を介したDMA
読取によって次のDMA転送を開始する。上記の説明か
ら明らかなように、DMAコントローラは、最初の出所
アドレスから始まるメモリブロック内の一連のメモリロ
ケーションの内容を、宛先アドレスから始まるメモリブ
ロック内の一連のメモリロケーションへ転送するように
動作可能である。上述したこの動作はCPU12の介入
を必要とせず、またDMAバス38がDMA目的用の別
個のアドレス及びデータ路を与えるので、かかるDMA
動作はマイクロコンピュータ10の平常動作におけるプ
ログラム及びデータアクセスと同時に生じ得る。つまり
DMA動作は、マイクロコンピュータ10の動作に対し
て実質上透明に発生可能で、その性能を大巾に高める。
4の内容がラインINC/DECRを介し制御ロジック
310によってインクレメントされ、転送カウンタレジ
スタ302の内容がラインDECRを介し制御ロジック
310によってデクレメントされる。転送カウンタレジ
スタ302の内容がゼロに達すると、制御ロジック31
0がラインZEROを経て信号を受信し、制御レジスタ
300のTCINTビット300iの状態に応じてライ
ン312上に割込を発生し(あるいは発生せず)、DM
A動作の完了をコントローラ14に通知する。勿論、転
送カウンタレジスタ302がゼロに達してもまたは割込
によってDMA動作が終了していなければ、制御レジス
タ300のSTARTビット300aが状態“1”にあ
るかどうかを制御ロジック310が判定し、状態“1”
にあれば、出所アドレスレジスタ306を介したDMA
読取によって次のDMA転送を開始する。上記の説明か
ら明らかなように、DMAコントローラは、最初の出所
アドレスから始まるメモリブロック内の一連のメモリロ
ケーションの内容を、宛先アドレスから始まるメモリブ
ロック内の一連のメモリロケーションへ転送するように
動作可能である。上述したこの動作はCPU12の介入
を必要とせず、またDMAバス38がDMA目的用の別
個のアドレス及びデータ路を与えるので、かかるDMA
動作はマイクロコンピュータ10の平常動作におけるプ
ログラム及びデータアクセスと同時に生じ得る。つまり
DMA動作は、マイクロコンピュータ10の動作に対し
て実質上透明に発生可能で、その性能を大巾に高める。
【0066】次に図17を参照して、周辺バス28の動
作及び各種周辺機能との交信について説明する。一例と
して、タイマ40、直列ポート42及びフオーマット変
換器44がここで説明しているマイクロコンピュータ1
0に接続された周辺機能である。これら3種の機能はそ
れらの構造に応じて一定の交信及び/又はデータ処理機
能を与えるが、各々の周辺機能は同じ方法で周辺バス2
8ひいてはマイクロコンピュータ10の残部と交信す
る。周辺機器40、42及び44は各々以下説明するよ
うに、周辺バス28によってアドレス可能なメモリマッ
プドレジスタを用い、マイクロコンピュータ10によっ
て構成及び動作される。尚、DMAコントローラ22内
に含まれるメモリマップ式レジスタの場合と同じく、以
下説明する周辺機能内に含まれるメモリマップドレジス
タは、表4に関連して前述した入/出力アドレススペー
ス800000h〜800FFFh内に存在することを
想起されたい。タイマ40は、外部制御またはマイクロ
コンピュータ10の内部制御について所定の時間周期を
測定する機能を果たす。タイマ40は周辺バス28のア
ドレスライン28aに接続されたタイマロジック300
を含み、タイマロジック400は周辺バス28のライン
28a上のアドレス信号を評価すると共に、その結果に
応じてタイマ40内の各種メモリマップドレジスタへの
アクセスを可能とするように動作可能である。タイマ4
0内の各レジスタ(後述する)は、マイクロコンピュー
タ10の単一アドレススペース内のアドレス信号によっ
てアドレス可能である。タイマ40内のメモリマップド
レジスタは制御レジスタ402を有し、これには当該分
野で周知のごとく、動作可能/禁止ビットや、タイマ4
0がマイクロコンピュータ10のシステムクロックによ
って制御され外部出力を与えるのかあるいは外部クロッ
クパルスによって制御され内部信号を与えるのか等、タ
イマ40の動作を制御するのに必要な幾つかの制御情報
が含まれている。
作及び各種周辺機能との交信について説明する。一例と
して、タイマ40、直列ポート42及びフオーマット変
換器44がここで説明しているマイクロコンピュータ1
0に接続された周辺機能である。これら3種の機能はそ
れらの構造に応じて一定の交信及び/又はデータ処理機
能を与えるが、各々の周辺機能は同じ方法で周辺バス2
8ひいてはマイクロコンピュータ10の残部と交信す
る。周辺機器40、42及び44は各々以下説明するよ
うに、周辺バス28によってアドレス可能なメモリマッ
プドレジスタを用い、マイクロコンピュータ10によっ
て構成及び動作される。尚、DMAコントローラ22内
に含まれるメモリマップ式レジスタの場合と同じく、以
下説明する周辺機能内に含まれるメモリマップドレジス
タは、表4に関連して前述した入/出力アドレススペー
ス800000h〜800FFFh内に存在することを
想起されたい。タイマ40は、外部制御またはマイクロ
コンピュータ10の内部制御について所定の時間周期を
測定する機能を果たす。タイマ40は周辺バス28のア
ドレスライン28aに接続されたタイマロジック300
を含み、タイマロジック400は周辺バス28のライン
28a上のアドレス信号を評価すると共に、その結果に
応じてタイマ40内の各種メモリマップドレジスタへの
アクセスを可能とするように動作可能である。タイマ4
0内の各レジスタ(後述する)は、マイクロコンピュー
タ10の単一アドレススペース内のアドレス信号によっ
てアドレス可能である。タイマ40内のメモリマップド
レジスタは制御レジスタ402を有し、これには当該分
野で周知のごとく、動作可能/禁止ビットや、タイマ4
0がマイクロコンピュータ10のシステムクロックによ
って制御され外部出力を与えるのかあるいは外部クロッ
クパルスによって制御され内部信号を与えるのか等、タ
イマ40の動作を制御するのに必要な幾つかの制御情報
が含まれている。
【0067】タイマ40は更にアドレス可能な周期レジ
スタ404を有し、これにはデータライン28dからタ
イマ40によって測定すべき時間を指定する値がロード
される。カウンタレジスタ406もタイマ40内に含ま
れており、これはシステムクロックまたは外部からライ
ンTCLKを経て受信されるクロックパルスの各パルス
によってインクレメントされる。動作時には、タイマロ
ジック400が周期レジスタ404の内容と等しくなっ
たカウンタレジスタ406の内容に応答し、この時点で
タイマロジック400が制御レジスタ402の選択に従
って内部割込信号をコントローラ14に発生する。制御
レジスタ402が外部出力を選択していれば、カウンタ
レジスタ406の内容が周期レジスタ404の内容と等
しくなったときタイマロジック400がラインTCLK
上にパルスを発生する。直列ポート42は当該分野で周
知のようにデータを直列に送受信するが、そこに含まれ
たメモリマップドレジスタを介してマイクロコンピュー
タ10によって制御される。ポートロジック420が直
列ポート42内に含まれてその動作を制御し、周辺バス
28のアドレスライン28a上に与えられるアドレス信
号に応じてポートロジック内に含まれたメモリマップド
レジスタへのアクセスを可能とする。直列ポート42等
の直列ポートの構造及び動作の一例は、1986年11
月6日に出願されたテキサス・インスツルメント社に譲
渡された係属中の米国特許出願通し番号第927,883
号に示されている。直列ポート42はタイマ40と同様
制御レジスタ422を有し、これがCPU12と直列ポ
ート42間における送信レディ及び受信レディ両信号の
交信等周知な幾つかの目的に合わせて直列ポートの構成
を可能とする。尚、かかるレディ信号はポートロジック
420に対し、CPU12が周辺バス28を介して情報
のワードを直列ポート42へ送信する準備が整っている
こと、あるいは周辺バス28を介して情報のワードを直
列ポート42から受信する準備が整っていることをそれ
ぞれ知らせる。
スタ404を有し、これにはデータライン28dからタ
イマ40によって測定すべき時間を指定する値がロード
される。カウンタレジスタ406もタイマ40内に含ま
れており、これはシステムクロックまたは外部からライ
ンTCLKを経て受信されるクロックパルスの各パルス
によってインクレメントされる。動作時には、タイマロ
ジック400が周期レジスタ404の内容と等しくなっ
たカウンタレジスタ406の内容に応答し、この時点で
タイマロジック400が制御レジスタ402の選択に従
って内部割込信号をコントローラ14に発生する。制御
レジスタ402が外部出力を選択していれば、カウンタ
レジスタ406の内容が周期レジスタ404の内容と等
しくなったときタイマロジック400がラインTCLK
上にパルスを発生する。直列ポート42は当該分野で周
知のようにデータを直列に送受信するが、そこに含まれ
たメモリマップドレジスタを介してマイクロコンピュー
タ10によって制御される。ポートロジック420が直
列ポート42内に含まれてその動作を制御し、周辺バス
28のアドレスライン28a上に与えられるアドレス信
号に応じてポートロジック内に含まれたメモリマップド
レジスタへのアクセスを可能とする。直列ポート42等
の直列ポートの構造及び動作の一例は、1986年11
月6日に出願されたテキサス・インスツルメント社に譲
渡された係属中の米国特許出願通し番号第927,883
号に示されている。直列ポート42はタイマ40と同様
制御レジスタ422を有し、これがCPU12と直列ポ
ート42間における送信レディ及び受信レディ両信号の
交信等周知な幾つかの目的に合わせて直列ポートの構成
を可能とする。尚、かかるレディ信号はポートロジック
420に対し、CPU12が周辺バス28を介して情報
のワードを直列ポート42へ送信する準備が整っている
こと、あるいは周辺バス28を介して情報のワードを直
列ポート42から受信する準備が整っていることをそれ
ぞれ知らせる。
【0068】制御レジスタ422は更に、直列ポート4
2に接続された外部装置と制御信号と交信するのにも使
える。勿論制御レジスタ422は、必要なビット数及び
レジスタ間でアドレスの独立性が所望かどうかに応じ、
複数のアドレス可能レジスタによって実現することもで
きる。直列ポート42は更に送信レジスタ424と受信
レジスタ426を有し、これらは周辺バス28を介して
アドレス可能で、それぞれデータを送信または受信せし
める。動作時には、マイクロコンピュータ10の残部が
制御レジスタ422にアドレスし、データの直列ポート
42による送信準備が整っていることを指示する。次い
でCPU12が、送信レジスタ424のアドレスを周辺
バス28のアドレスライン28d上に与え、送信レジス
タ424にロードされているデータを周辺バス28のデ
ータライン28d上に送信せしめる。その後ポートロジ
ック420が当該分野で周知なように、ラインFXS上
のフレーミング信号等をそこに与えられる外部制御信号
と連動して、送信レジスタ424の内容の直列送信ライ
ンDX上への直列出力を制御する。逆に、ポートロジッ
ク420はラインDRから受信レジスタ426へのロー
ドも制御し、受信レジスタ426が満たされたとき内部
割込信号を割込ロジック250に発生する。そしてCP
U12が、受信レジスタ426に対応したアドレスを周
辺バス28のアドレスライン28aへ与えることによっ
て、周辺バス28のデータライン28dを介し受信レジ
スタ426の内容を読取可能となる。
2に接続された外部装置と制御信号と交信するのにも使
える。勿論制御レジスタ422は、必要なビット数及び
レジスタ間でアドレスの独立性が所望かどうかに応じ、
複数のアドレス可能レジスタによって実現することもで
きる。直列ポート42は更に送信レジスタ424と受信
レジスタ426を有し、これらは周辺バス28を介して
アドレス可能で、それぞれデータを送信または受信せし
める。動作時には、マイクロコンピュータ10の残部が
制御レジスタ422にアドレスし、データの直列ポート
42による送信準備が整っていることを指示する。次い
でCPU12が、送信レジスタ424のアドレスを周辺
バス28のアドレスライン28d上に与え、送信レジス
タ424にロードされているデータを周辺バス28のデ
ータライン28d上に送信せしめる。その後ポートロジ
ック420が当該分野で周知なように、ラインFXS上
のフレーミング信号等をそこに与えられる外部制御信号
と連動して、送信レジスタ424の内容の直列送信ライ
ンDX上への直列出力を制御する。逆に、ポートロジッ
ク420はラインDRから受信レジスタ426へのロー
ドも制御し、受信レジスタ426が満たされたとき内部
割込信号を割込ロジック250に発生する。そしてCP
U12が、受信レジスタ426に対応したアドレスを周
辺バス28のアドレスライン28aへ与えることによっ
て、周辺バス28のデータライン28dを介し受信レジ
スタ426の内容を読取可能となる。
【0069】フォーマット変換器44が、一つのデータ
フォーマットから別のデータフォーマットへのデータ変
換機能を果たす。周知のA法則及びu法則変換によるデ
ータの符号化及び解読は、前出の係属中の米国特許出願
第927,883号に説明してある。フォーマット変換器
44はフォーマットロジック440を含み、これが周辺
バス28のアドレスライン28a上のアドレス信号に従
ってそこに含まれたメモリマップドレジスタへのアクセ
スを制御すると共に、データに対する符号化及び解読機
能を行う。フォーマット変換器44は更にメモリマップ
ド制御レジスタ442を含み、動作可能/禁止制御ビッ
ト及びCPU12からフォーマット変換器44へという
所望な変換型の選択の交信を行う。またフォーマット変
換器44はデータを符号化するための2つのメモリマッ
プドレジスタ、つまりエンコード入力レジスタ444と
エンコード出力レジスタ446を含む。CPU12アド
レスライン28aでエンコード入力レジスタ444にア
ドレスし、符号化すべきデータをデータライン28d上
に書き込みエンコード入力レジスタ444へロードする
ことによって、符号化すべき入力データを与える。符号
化の発生後、CPU12はアドレスライン28aを介し
てエンコード出力レジスタ446にアドレスし、周辺バ
ス28のデータライン28dを経て符号化データを読み
取ることによって、符号化データを受信できる。一方、
解読データの交信は、同じく周辺バス28によってアド
レス可能なデコード入力レジスタ448とデコード出力
レジスタ449を介し同様の方法で行われる。
フォーマットから別のデータフォーマットへのデータ変
換機能を果たす。周知のA法則及びu法則変換によるデ
ータの符号化及び解読は、前出の係属中の米国特許出願
第927,883号に説明してある。フォーマット変換器
44はフォーマットロジック440を含み、これが周辺
バス28のアドレスライン28a上のアドレス信号に従
ってそこに含まれたメモリマップドレジスタへのアクセ
スを制御すると共に、データに対する符号化及び解読機
能を行う。フォーマット変換器44は更にメモリマップ
ド制御レジスタ442を含み、動作可能/禁止制御ビッ
ト及びCPU12からフォーマット変換器44へという
所望な変換型の選択の交信を行う。またフォーマット変
換器44はデータを符号化するための2つのメモリマッ
プドレジスタ、つまりエンコード入力レジスタ444と
エンコード出力レジスタ446を含む。CPU12アド
レスライン28aでエンコード入力レジスタ444にア
ドレスし、符号化すべきデータをデータライン28d上
に書き込みエンコード入力レジスタ444へロードする
ことによって、符号化すべき入力データを与える。符号
化の発生後、CPU12はアドレスライン28aを介し
てエンコード出力レジスタ446にアドレスし、周辺バ
ス28のデータライン28dを経て符号化データを読み
取ることによって、符号化データを受信できる。一方、
解読データの交信は、同じく周辺バス28によってアド
レス可能なデコード入力レジスタ448とデコード出力
レジスタ449を介し同様の方法で行われる。
【0070】周辺バス28に沿った周辺機器の編成に対
する幾つかの変更は、当業者にとって勿論自明であろ
う。前述した周辺バス28のライン28a上に存在する
アドレス信号の解読は各々の周辺機器で、そこに含まれ
たロジックつまりタイマロジック400、ポートロジッ
ク420及びフォーマットロジック440によってなさ
れる。この解読方式の代りに、周辺バス28のアドレス
ライン28aに接続されたプリデコーダを設け、そこに
与えられるアドレス信号を解読して、周辺バス28に沿
って接続された個々の周辺機器へ選択情報を伝送するよ
うにしてもよい。例えば、アドレスライン28a上のア
ドレスが直列ポート42に向けられたものであれば、プ
リデコーダが直列ポート42を動作可能とし、その他の
周辺機器を動作禁止とする。そして、ポートロジック4
20が周辺バス28のアドレスライン28a上に存在す
るアドレス信号の下位ビットを解読し、そこで所望のメ
モリマップドレジスタを選択する。また、周辺バス28
への他のアクセスが試みられていなければ、CPU12
またはマイクロコンピュータ10の残部を介入させず
に、周辺バス28に沿った各種の周辺機器は相互間で交
信するように容易に設計可能である。このような交信の
一例は、直列ポート42から外部装置への送信前におけ
る符号化のため、直列ポート42からフォーマット変換
器44になされるデータの伝送である。当業者であれ
ば、データライン28dを介し周辺機器間でデータを交
信できるように、アドレスライン28aを介して一つの
周辺機器を別の周辺機器内のレジスタへアドレス可能と
するアドレス駆動論理を、それら周辺機器内のロジック
に付与可能であろう。
する幾つかの変更は、当業者にとって勿論自明であろ
う。前述した周辺バス28のライン28a上に存在する
アドレス信号の解読は各々の周辺機器で、そこに含まれ
たロジックつまりタイマロジック400、ポートロジッ
ク420及びフォーマットロジック440によってなさ
れる。この解読方式の代りに、周辺バス28のアドレス
ライン28aに接続されたプリデコーダを設け、そこに
与えられるアドレス信号を解読して、周辺バス28に沿
って接続された個々の周辺機器へ選択情報を伝送するよ
うにしてもよい。例えば、アドレスライン28a上のア
ドレスが直列ポート42に向けられたものであれば、プ
リデコーダが直列ポート42を動作可能とし、その他の
周辺機器を動作禁止とする。そして、ポートロジック4
20が周辺バス28のアドレスライン28a上に存在す
るアドレス信号の下位ビットを解読し、そこで所望のメ
モリマップドレジスタを選択する。また、周辺バス28
への他のアクセスが試みられていなければ、CPU12
またはマイクロコンピュータ10の残部を介入させず
に、周辺バス28に沿った各種の周辺機器は相互間で交
信するように容易に設計可能である。このような交信の
一例は、直列ポート42から外部装置への送信前におけ
る符号化のため、直列ポート42からフォーマット変換
器44になされるデータの伝送である。当業者であれ
ば、データライン28dを介し周辺機器間でデータを交
信できるように、アドレスライン28aを介して一つの
周辺機器を別の周辺機器内のレジスタへアドレス可能と
するアドレス駆動論理を、それら周辺機器内のロジック
に付与可能であろう。
【0071】前述した周辺機能の相互接続のために周辺
バス28を使用することは、周辺バス28に沿った追加
の周辺機能の単なる減算または加算によって、マイクロ
コンピュータ10を異なる態様に適応させる点で著しい
融通性を更に与える。事実、周辺バス28は周辺ポート
26の出力でラインI/0AnとI/0Dnに対応しそ
れに直接接続されることで、マイクロコンピュータ10
の外部端子へ直接接続されているため、外部の周辺機能
用に開発されたソフトウェアを、チップ上に備えられ周
辺バス28に接続された同じ機能を持つマイクロコンピ
ュータ10で、ほとんどあるいは全く改造を必要とせず
に使用し得る。こうして、新たな周辺機能及び特徴の開
発及びデバグが、上述したアーキテクチャによって大巾
に容易化される。以上本発明をその好ましい実施を参照
して詳しく説明したが、この説明は例示にすぎず、制限
の意味で解釈されるべきでないことが理解されるべきで
ある。また、発明の実施例の詳細における数多くの変形
及び発明の追加の実施例は自明で、当業者であれば前記
の説明を参照して成し得ることも理解されるべきであ
る。そのような変形及び追加の実施例は、特許請求の範
囲に記載した発明の精神及び真の範囲内に包含されるも
のである。
バス28を使用することは、周辺バス28に沿った追加
の周辺機能の単なる減算または加算によって、マイクロ
コンピュータ10を異なる態様に適応させる点で著しい
融通性を更に与える。事実、周辺バス28は周辺ポート
26の出力でラインI/0AnとI/0Dnに対応しそ
れに直接接続されることで、マイクロコンピュータ10
の外部端子へ直接接続されているため、外部の周辺機能
用に開発されたソフトウェアを、チップ上に備えられ周
辺バス28に接続された同じ機能を持つマイクロコンピ
ュータ10で、ほとんどあるいは全く改造を必要とせず
に使用し得る。こうして、新たな周辺機能及び特徴の開
発及びデバグが、上述したアーキテクチャによって大巾
に容易化される。以上本発明をその好ましい実施を参照
して詳しく説明したが、この説明は例示にすぎず、制限
の意味で解釈されるべきでないことが理解されるべきで
ある。また、発明の実施例の詳細における数多くの変形
及び発明の追加の実施例は自明で、当業者であれば前記
の説明を参照して成し得ることも理解されるべきであ
る。そのような変形及び追加の実施例は、特許請求の範
囲に記載した発明の精神及び真の範囲内に包含されるも
のである。
【0072】以上の記載に関連して、以下の各項を開示
する。 1. アドレス指定の柔軟性を高めたマイクロコンピュー
タであって、所定の命令コードに応答してデータについ
て演算を行う第1論理演算ユニットと、データを記憶す
るためのアドレス指定可能な位置を有するメモリと、前
記第1論理演算ユニットおよび前記メモリに接続してあ
り、それらの間でデータの通信を行わせるメモリバス
と、前記メモリの所定のブロックにおけるアドレス指定
可能位置の数を示すデータワードを記憶するブロックサ
イズレジスタと、メモリアドレスを示すデータワードを
記憶するメモリアドレスレジスタと、前記ブロックサイ
ズレジスタ、前記メモリアドレスレジスタおよび前記メ
モリに接続してあり、前記メモリアドレスレジスタの内
容および所定のインデックス値から新しいメモリアドレ
スを計算し、この新しいメモリアドレスと前記ブロック
サイズレジスタの内容を比較し、前記新しいメモリアド
レスと前記ブロックサイズレジスタの内容との比較に応
答して所定の要領で前記新しいメモリアドレスを修正す
る第1補助論理演算ユニットとを包含することを特徴と
するマイクロコンピュータ。 2. 前記1記載のマイクロコンピュータにおいて、前記
所定のインデックス値が命令コードの一部によって決定
されることを特徴とするマイクロコンピュータ。 3. 前記2記載のマイクロコンピュータにおいて、さら
に、前記第1補助論理演算ユニットに接続してあり、前
記所定のインデックス値を記憶するインデックスレジス
タを包含することを特徴とするマイクロコンピュータ。 4. 前記3記載のマイクロコンピュータにおいて、前記
所定のインデックス値が命令コードの一部によって決定
され、前記命令コードが前記第1論理演算ユニットをコ
ントロールする部分を含み、これが前記新しいメモリア
ドレスを計算するに際して前記命令コードあるいは前記
インデックスレジスタの内容からの所定のインデックス
値を使用することを特徴とするマイクロコンピュータ。 5. 前記1記載のマイクロコンピュータにおいて、前記
第1補助論理演算ユニットが、前記メモリアドレスレジ
スタに接続した第1入力部を有し、前記所定のインデッ
クス値を受信する第2入力部を有する第1の加算器/減
算器と、この第1加算器/減算器の出力部に接続した第
1入力部を有し、前記ブロックサイズレジスタに接続し
た第2入力部を有するコンパレータと、前記第1加算器
/減算器の出力部に接続した第1入力部を有し、前記ブ
ロックサイズレジスタに接続した第2入力部を有し、前
記コンパレータの出力部に接続した制御入力部を有する
第2の加算器/減算器とを包含し、前記第2加算器/減
算器の出力部が前記所定のメモリブロック内のメモリア
ドレスに対応する前記第1加算器/減算器の出力に応答
して前記第1加算器/減算器の出力を与え、前記第2加
算器/減算器の出力部が前記所定のメモリブロックの外
のメモリアドレスに対応する前記第1加算器/減算器の
出力に応答して前記所定メモリブロック内のメモリアド
レスを与えるようになっていることを特徴とするマイク
ロコンピュータ。 6. 前記5記載のマイクロコンピュータにおいて、前記
第1補助論理演算ユニットが命令コードに応答し、この
命令コードの一部が前記第1補助論理演算ユニットによ
って前記所定のインデックス値が前記メモリアドレスレ
ジスタの内容に加算されるべきか、あるいは、そこから
減算されるべきかを選択し、前記所定のインデックス値
が前記メモリアドレスレジスタの内容に加算されるべき
であるときには、前記第1加算器/減算器が加算器とし
て作動し、前記第2加算器/減算器の出力部が前記所定
のメモリブロックの外のメモリアドレスを表す前記第1
加算器/減算器の出力に応答して前記第1加算器/減算
器の出力と前記ブロックサイズレジスタの内容の差を与
え、前記所定インデックス値を前記メモリアドレスレジ
スタの内容から減算すべきであるときには、前記第1加
算器/減算器が減算器として作動し、前記第2加算器/
減算器の出力が前記所定のメモリブロックの外のメモリ
アドレスを表す前記第1加算器/減算器の出力に応答し
て前記第1加算器/減算器の出力と前記ブロックサイズ
レジスタの内容の合計を与えるようになっていることを
特徴とするマイクロコンピュータ。 7. 前記5記載のマイクロコンピュータにおいて、前記
第1補助論理演算ユニットが、さらに、マルチプレクサ
を包含し、このマルチプレクサが、前記第1加算器/減
算器の出力部に接続した第1入力部と、前記第2加算器
/減算器の出力部に接続した第2入力部と、前記メモリ
アドレスレジスタに接続した出力部とを有し、命令コー
ドの一部に応答して前記メモリアドレスレジスタの第1
入力部または第2入力部のいずれかに値を記憶するよう
になっていることを特徴とするマイクロコンピュータ。 8. 前記1記載のマイクロコンピュータにおいて、さら
に、前記メモリと前記第1補助論理演算ユニットの間に
接続してあり、それらの間でメモリアドレスの通信を行
わせる第1メモリアドレスバスを包含することを特徴と
するマイクロコンピュータ。 9. 前記8記載のマイクロコンピュータにおいて、さら
に、第2メモリアドレスレジスタと、前記ブロックサイ
ズレジスタ、前記第2メモリアドレスレジスタおよび前
記メモリに前記第2メモリアドレスレジスタを経て接続
しており、前記第2メモリアドレスレジスタの内容およ
び所定のインデックス値から新しいメモリアドレスを計
算し、前記新しいメモリアドレスおよび前記ブロックサ
イズレジスタの内容とを比較し、前記新しいメモリアド
レスと前記ブロックサイズレジスタの内容との前記比較
に応答して所定の要領で前記新しいメモリアドレスを修
正する第2の補助論理演算ユニットとを包含することを
特徴とするマイクロコンピュータ。 10. 前記1記載のマイクロコンピュータにおいて、前記
メモリがフーリエ変換プロセスに従った演算のためのデ
ィジタル情報を記憶し、保持することを特徴とするマイ
クロコンピュータ。 11. デジタル信号処理に有効な性能を発揮するように設
計されたアーキテクチャを有するマイクロコンピュータ
を開示する。このマイクロコンピュータはデータ演算を
実行するための主要な演算論理ユニットと、間接メモリ
アドレス値を計算するための一対の補助演算論理ユニッ
トとを有する。マイクロコンピュータ内のメモリバスは
データ線と、2組のアドレス線とを有する。補助演算論
理ユニットの各々は、アドレス線の一方に接続されてい
る。補助演算論理ユニットは、以前のメモリアドレス及
びインデックス値から次のメモリアドレスを計算するこ
とによって、そして循環アドレス内のメモリアドレスブ
ロックの制限に対して次のメモリアドレスを比較するこ
とによって循環アドレス計算を実行できる。計算された
メモリアドレスブロックの制限外である場合、補助演算
論理ユニットの加算器/減算器は、計算されたメモリア
ドレスに、又ははメモリアドレスからブロックの大きさ
を加算するか又は減算する。その結果は、ブロックのの
他の端部のアドレスである。その計算の結果は、修正さ
れてもされなくても、メモリアドレスレジスタに記憶さ
れる。補助演算論理ユニットは、互いに並列動作が可能
であり、主要な演算論理ユニットと並列になっている。
2つのメモリアドレスは、時間多重分割の方法でオンチ
ップメモリに与えられ、その結果2つのメモリアクセス
は単一のマシーンサイクルで実行される。
する。 1. アドレス指定の柔軟性を高めたマイクロコンピュー
タであって、所定の命令コードに応答してデータについ
て演算を行う第1論理演算ユニットと、データを記憶す
るためのアドレス指定可能な位置を有するメモリと、前
記第1論理演算ユニットおよび前記メモリに接続してあ
り、それらの間でデータの通信を行わせるメモリバス
と、前記メモリの所定のブロックにおけるアドレス指定
可能位置の数を示すデータワードを記憶するブロックサ
イズレジスタと、メモリアドレスを示すデータワードを
記憶するメモリアドレスレジスタと、前記ブロックサイ
ズレジスタ、前記メモリアドレスレジスタおよび前記メ
モリに接続してあり、前記メモリアドレスレジスタの内
容および所定のインデックス値から新しいメモリアドレ
スを計算し、この新しいメモリアドレスと前記ブロック
サイズレジスタの内容を比較し、前記新しいメモリアド
レスと前記ブロックサイズレジスタの内容との比較に応
答して所定の要領で前記新しいメモリアドレスを修正す
る第1補助論理演算ユニットとを包含することを特徴と
するマイクロコンピュータ。 2. 前記1記載のマイクロコンピュータにおいて、前記
所定のインデックス値が命令コードの一部によって決定
されることを特徴とするマイクロコンピュータ。 3. 前記2記載のマイクロコンピュータにおいて、さら
に、前記第1補助論理演算ユニットに接続してあり、前
記所定のインデックス値を記憶するインデックスレジス
タを包含することを特徴とするマイクロコンピュータ。 4. 前記3記載のマイクロコンピュータにおいて、前記
所定のインデックス値が命令コードの一部によって決定
され、前記命令コードが前記第1論理演算ユニットをコ
ントロールする部分を含み、これが前記新しいメモリア
ドレスを計算するに際して前記命令コードあるいは前記
インデックスレジスタの内容からの所定のインデックス
値を使用することを特徴とするマイクロコンピュータ。 5. 前記1記載のマイクロコンピュータにおいて、前記
第1補助論理演算ユニットが、前記メモリアドレスレジ
スタに接続した第1入力部を有し、前記所定のインデッ
クス値を受信する第2入力部を有する第1の加算器/減
算器と、この第1加算器/減算器の出力部に接続した第
1入力部を有し、前記ブロックサイズレジスタに接続し
た第2入力部を有するコンパレータと、前記第1加算器
/減算器の出力部に接続した第1入力部を有し、前記ブ
ロックサイズレジスタに接続した第2入力部を有し、前
記コンパレータの出力部に接続した制御入力部を有する
第2の加算器/減算器とを包含し、前記第2加算器/減
算器の出力部が前記所定のメモリブロック内のメモリア
ドレスに対応する前記第1加算器/減算器の出力に応答
して前記第1加算器/減算器の出力を与え、前記第2加
算器/減算器の出力部が前記所定のメモリブロックの外
のメモリアドレスに対応する前記第1加算器/減算器の
出力に応答して前記所定メモリブロック内のメモリアド
レスを与えるようになっていることを特徴とするマイク
ロコンピュータ。 6. 前記5記載のマイクロコンピュータにおいて、前記
第1補助論理演算ユニットが命令コードに応答し、この
命令コードの一部が前記第1補助論理演算ユニットによ
って前記所定のインデックス値が前記メモリアドレスレ
ジスタの内容に加算されるべきか、あるいは、そこから
減算されるべきかを選択し、前記所定のインデックス値
が前記メモリアドレスレジスタの内容に加算されるべき
であるときには、前記第1加算器/減算器が加算器とし
て作動し、前記第2加算器/減算器の出力部が前記所定
のメモリブロックの外のメモリアドレスを表す前記第1
加算器/減算器の出力に応答して前記第1加算器/減算
器の出力と前記ブロックサイズレジスタの内容の差を与
え、前記所定インデックス値を前記メモリアドレスレジ
スタの内容から減算すべきであるときには、前記第1加
算器/減算器が減算器として作動し、前記第2加算器/
減算器の出力が前記所定のメモリブロックの外のメモリ
アドレスを表す前記第1加算器/減算器の出力に応答し
て前記第1加算器/減算器の出力と前記ブロックサイズ
レジスタの内容の合計を与えるようになっていることを
特徴とするマイクロコンピュータ。 7. 前記5記載のマイクロコンピュータにおいて、前記
第1補助論理演算ユニットが、さらに、マルチプレクサ
を包含し、このマルチプレクサが、前記第1加算器/減
算器の出力部に接続した第1入力部と、前記第2加算器
/減算器の出力部に接続した第2入力部と、前記メモリ
アドレスレジスタに接続した出力部とを有し、命令コー
ドの一部に応答して前記メモリアドレスレジスタの第1
入力部または第2入力部のいずれかに値を記憶するよう
になっていることを特徴とするマイクロコンピュータ。 8. 前記1記載のマイクロコンピュータにおいて、さら
に、前記メモリと前記第1補助論理演算ユニットの間に
接続してあり、それらの間でメモリアドレスの通信を行
わせる第1メモリアドレスバスを包含することを特徴と
するマイクロコンピュータ。 9. 前記8記載のマイクロコンピュータにおいて、さら
に、第2メモリアドレスレジスタと、前記ブロックサイ
ズレジスタ、前記第2メモリアドレスレジスタおよび前
記メモリに前記第2メモリアドレスレジスタを経て接続
しており、前記第2メモリアドレスレジスタの内容およ
び所定のインデックス値から新しいメモリアドレスを計
算し、前記新しいメモリアドレスおよび前記ブロックサ
イズレジスタの内容とを比較し、前記新しいメモリアド
レスと前記ブロックサイズレジスタの内容との前記比較
に応答して所定の要領で前記新しいメモリアドレスを修
正する第2の補助論理演算ユニットとを包含することを
特徴とするマイクロコンピュータ。 10. 前記1記載のマイクロコンピュータにおいて、前記
メモリがフーリエ変換プロセスに従った演算のためのデ
ィジタル情報を記憶し、保持することを特徴とするマイ
クロコンピュータ。 11. デジタル信号処理に有効な性能を発揮するように設
計されたアーキテクチャを有するマイクロコンピュータ
を開示する。このマイクロコンピュータはデータ演算を
実行するための主要な演算論理ユニットと、間接メモリ
アドレス値を計算するための一対の補助演算論理ユニッ
トとを有する。マイクロコンピュータ内のメモリバスは
データ線と、2組のアドレス線とを有する。補助演算論
理ユニットの各々は、アドレス線の一方に接続されてい
る。補助演算論理ユニットは、以前のメモリアドレス及
びインデックス値から次のメモリアドレスを計算するこ
とによって、そして循環アドレス内のメモリアドレスブ
ロックの制限に対して次のメモリアドレスを比較するこ
とによって循環アドレス計算を実行できる。計算された
メモリアドレスブロックの制限外である場合、補助演算
論理ユニットの加算器/減算器は、計算されたメモリア
ドレスに、又ははメモリアドレスからブロックの大きさ
を加算するか又は減算する。その結果は、ブロックのの
他の端部のアドレスである。その計算の結果は、修正さ
れてもされなくても、メモリアドレスレジスタに記憶さ
れる。補助演算論理ユニットは、互いに並列動作が可能
であり、主要な演算論理ユニットと並列になっている。
2つのメモリアドレスは、時間多重分割の方法でオンチ
ップメモリに与えられ、その結果2つのメモリアクセス
は単一のマシーンサイクルで実行される。
【図1】本発明に従って構成されたマイクロコンピュー
タのブロック電気線図である。
タのブロック電気線図である。
【図2】図1のマイクロコンピュータの中央処理装置の
ブロック電気線図である。
ブロック電気線図である。
【図3】図2の中央処理装置内に具備された補助演算論
理装置のブロック電気線図である。
理装置のブロック電気線図である。
【図4】図1のマイクロコンピュータによって実施可能
な循環アドレッシングモードで有用な幾つかの計算のフ
ロー図である。
な循環アドレッシングモードで有用な幾つかの計算のフ
ロー図である。
【図5】図1のマイクロコンピュータによって実施可能
な循環アドレッシングモードで有用な幾つかの計算のフ
ロー図である。
な循環アドレッシングモードで有用な幾つかの計算のフ
ロー図である。
【図6】図1のマイクロコンピュータの周辺ポートのブ
ロック電気線図である。
ロック電気線図である。
【図7】図1のマイクロコンピュータのコントローラの
ブロック電気線図である。
ブロック電気線図である。
【図8】図7のコントローラによって実施される命令コ
ードのパイプライン化を例示するタイミング図である。
ードのパイプライン化を例示するタイミング図である。
【図9】図1のマイクロコンピュータ内における各種メ
モリエンティティへのアクセスの仲裁において有用な、
図7のコントローラ内のロジックの概略電気線図であ
る。
モリエンティティへのアクセスの仲裁において有用な、
図7のコントローラ内のロジックの概略電気線図であ
る。
【図10】図1のマイクロコンピュータ内で実施される
メモリアクセスのタイミング図で、図9のロジックの動
作を例示する図である。
メモリアクセスのタイミング図で、図9のロジックの動
作を例示する図である。
【図11】図1のマイクロコンピュータ各部のブロック
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
【図12】図1のマイクロコンピュータ各部のブロック
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
【図13】図1のマイクロコンピュータ各部のブロック
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
【図14】図1のマイクロコンピュータ各部のブロック
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
電気線図で、例示命令の実行の異なる時点でのスナップ
ショットをそれぞれ示す図である。
【図15】図1のマイクロコンピュータの命令キャッシ
ュのブロック電気線図である。
ュのブロック電気線図である。
【図16】図1のマイクロコンピュータのDMAコント
ローラのブロック電気線図である。
ローラのブロック電気線図である。
【図17】図1のマイクロコンピュータの周辺モジュー
ル及び周辺バスのブロック電気線図である。
ル及び周辺バスのブロック電気線図である。
10 データ処理装置(マイクロコンピュータ) 12 中央処理装置(CPU) 14 コントローラ 16、18、20 第1/2メモリ(16、18;RA
M、20;ROM) 22 直接アクセスメモリ(DMA)コントローラ 24、26 周辺ポート 28 周辺バス 30 第1メモリ(データ)バス 30a、30b アドレスライン 30d データライン 34 第2メモリ(プログラム)バス 38 第3メモリ(DMA)バス 40、42、44 オンチップ周辺機器 46 乗算機 48 演算論理装置(ALU) 50 データレジスタ 50a、50b 補助演算論理装置(ARAU) 206 メモリ制御(仲裁)ロジック
M、20;ROM) 22 直接アクセスメモリ(DMA)コントローラ 24、26 周辺ポート 28 周辺バス 30 第1メモリ(データ)バス 30a、30b アドレスライン 30d データライン 34 第2メモリ(プログラム)バス 38 第3メモリ(DMA)バス 40、42、44 オンチップ周辺機器 46 乗算機 48 演算論理装置(ALU) 50 データレジスタ 50a、50b 補助演算論理装置(ARAU) 206 メモリ制御(仲裁)ロジック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイムズ エフ ポッツ アメリカ合衆国 テキサス州 77063 ヒ ューストン ウェスターランド 427− 2502 (72)発明者 ジェラルド ジー リーチ アメリカ合衆国 テキサス州 77083 ヒ ューストン リーンドラ 6710 (72)発明者 エル レイ シマー ジュニア アメリカ合衆国 テキサス州 77469 リ ッチモンド メイプル デイル 1906
Claims (10)
- 【請求項1】 アドレス指定の柔軟性を高めたマイクロ
コンピュータであって、 所定の命令コードに応答してデータについて演算を行う
第1論理演算ユニットと、 データを記憶するためのアドレス指定可能な位置を有す
るメモリと、 前記第1論理演算ユニットおよび前記メモリに接続して
あり、それらの間でデータの通信を行わせるメモリバス
と、 前記メモリの所定のブロックにおけるアドレス指定可能
位置の数を示すデータワードを記憶するブロックサイズ
レジスタと、 メモリアドレスを示すデータワードを記憶するメモリア
ドレスレジスタと、 前記ブロックサイズレジスタ、前記メモリアドレスレジ
スタおよび前記メモリに接続してあり、前記メモリアド
レスレジスタの内容および所定のインデックス値から新
しいメモリアドレスを計算し、この新しいメモリアドレ
スと前記ブロックサイズレジスタの内容を比較し、前記
新しいメモリアドレスと前記ブロックサイズレジスタの
内容との比較に応答して所定の要領で前記新しいメモリ
アドレスを修正する第1補助論理演算ユニットとを包含
することを特徴とするマイクロコンピュータ。 - 【請求項2】 請求項1記載のマイクロコンピュータに
おいて、前記所定のインデックス値が命令コードの一部
によって決定されることを特徴とするマイクロコンピュ
ータ。 - 【請求項3】 請求項2記載のマイクロコンピュータに
おいて、さらに、前記第1補助論理演算ユニットに接続
してあり、前記所定のインデックス値を記憶するインデ
ックスレジスタを包含することを特徴とするマイクロコ
ンピュータ。 - 【請求項4】 請求項3記載のマイクロコンピュータに
おいて、前記所定のインデックス値が命令コードの一部
によって決定され、 前記命令コードが前記第1論理演算ユニットをコントロ
ールする部分を含み、これが前記新しいメモリアドレス
を計算するに際して前記命令コードあるいは前記インデ
ックスレジスタの内容からの所定のインデックス値を使
用することを特徴とするマイクロコンピュータ。 - 【請求項5】 請求項1記載のマイクロコンピュータに
おいて、 前記第1補助論理演算ユニットが、 前記メモリアドレスレジスタに接続した第1入力部を有
し、前記所定のインデックス値を受信する第2入力部を
有する第1の加算器/減算器と、 この第1加算器/減算器の出力部に接続した第1入力部
を有し、前記ブロックサイズレジスタに接続した第2入
力部を有するコンパレータと、 前記第1加算器/減算器の出力部に接続した第1入力部
を有し、前記ブロックサイズレジスタに接続した第2入
力部を有し、前記コンパレータの出力部に接続した制御
入力部を有する第2の加算器/減算器とを包含し、前記
第2加算器/減算器の出力部が前記所定のメモリブロッ
ク内のメモリアドレスに対応する前記第1加算器/減算
器の出力に応答して前記第1加算器/減算器の出力を与
え、前記第2加算器/減算器の出力部が前記所定のメモ
リブロックの外のメモリアドレスに対応する前記第1加
算器/減算器の出力に応答して前記所定メモリブロック
内のメモリアドレスを与えるようになっていることを特
徴とするマイクロコンピュータ。 - 【請求項6】 請求項5記載のマイクロコンピュータに
おいて、前記第1補助論理演算ユニットが命令コードに
応答し、この命令コードの一部が前記第1補助論理演算
ユニットによって前記所定のインデックス値が前記メモ
リアドレスレジスタの内容に加算されるべきか、あるい
は、そこから減算されるべきかを選択し、 前記所定のインデックス値が前記メモリアドレスレジス
タの内容に加算されるべきであるときには、前記第1加
算器/減算器が加算器として作動し、前記第2加算器/
減算器の出力部が前記所定のメモリブロックの外のメモ
リアドレスを表す前記第1加算器/減算器の出力に応答
して前記第1加算器/減算器の出力と前記ブロックサイ
ズレジスタの内容の差を与え、 前記所定インデックス値を前記メモリアドレスレジスタ
の内容から減算すべきであるときには、前記第1加算器
/減算器が減算器として作動し、前記第2加算器/減算
器の出力が前記所定のメモリブロックの外のメモリアド
レスを表す前記第1加算器/減算器の出力に応答して前
記第1加算器/減算器の出力と前記ブロックサイズレジ
スタの内容の合計を与えるようになっていることを特徴
とするマイクロコンピュータ。 - 【請求項7】 請求項5記載のマイクロコンピュータに
おいて、前記第1補助論理演算ユニットが、さらに、マ
ルチプレクサを包含し、このマルチプレクサが、前記第
1加算器/減算器の出力部に接続した第1入力部と、前
記第2加算器/減算器の出力部に接続した第2入力部
と、前記メモリアドレスレジスタに接続した出力部とを
有し、命令コードの一部に応答して前記メモリアドレス
レジスタの第1入力部または第2入力部のいずれかに値
を記憶するようになっていることを特徴とするマイクロ
コンピュータ。 - 【請求項8】 請求項1記載のマイクロコンピュータに
おいて、さらに、前記メモリと前記第1補助論理演算ユ
ニットの間に接続してあり、それらの間でメモリアドレ
スの通信を行わせる第1メモリアドレスバスを包含する
ことを特徴とするマイクロコンピュータ。 - 【請求項9】 請求項8記載のマイクロコンピュータに
おいて、 さらに、第2メモリアドレスレジスタと、 前記ブロックサイズレジスタ、前記第2メモリアドレス
レジスタおよび前記メモリに前記第2メモリアドレスレ
ジスタを経て接続しており、前記第2メモリアドレスレ
ジスタの内容および所定のインデックス値から新しいメ
モリアドレスを計算し、前記新しいメモリアドレスおよ
び前記ブロックサイズレジスタの内容とを比較し、前記
新しいメモリアドレスと前記ブロックサイズレジスタの
内容との前記比較に応答して所定の要領で前記新しいメ
モリアドレスを修正する第2の補助論理演算ユニットと
を包含することを特徴とするマイクロコンピュータ。 - 【請求項10】 請求項1記載のマイクロコンピュータ
において、前記メモリがフーリエ変換プロセスに従った
演算のためのディジタル情報を記憶し、保持することを
特徴とするマイクロコンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US025417 | 1987-03-13 | ||
US07/025,417 US4912636A (en) | 1987-03-13 | 1987-03-13 | Data processing device with multiple on chip memory buses |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63060154A Division JP2659984B2 (ja) | 1987-03-13 | 1988-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07295808A true JPH07295808A (ja) | 1995-11-10 |
Family
ID=21825927
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63060154A Expired - Lifetime JP2659984B2 (ja) | 1987-03-13 | 1988-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
JP05466395A Expired - Fee Related JP3234734B2 (ja) | 1987-03-13 | 1995-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
JP7054664A Pending JPH07295808A (ja) | 1987-03-13 | 1995-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
JP7054662A Pending JPH07302251A (ja) | 1987-03-13 | 1995-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
JP05466595A Expired - Fee Related JP3206704B2 (ja) | 1987-03-13 | 1995-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63060154A Expired - Lifetime JP2659984B2 (ja) | 1987-03-13 | 1988-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
JP05466395A Expired - Fee Related JP3234734B2 (ja) | 1987-03-13 | 1995-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7054662A Pending JPH07302251A (ja) | 1987-03-13 | 1995-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
JP05466595A Expired - Fee Related JP3206704B2 (ja) | 1987-03-13 | 1995-03-14 | 複数のオンチップメモリバスを備えたデータ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US4912636A (ja) |
JP (5) | JP2659984B2 (ja) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175841A (en) * | 1987-03-13 | 1992-12-29 | Texas Instruments Incorporated | Data processing device with multiple on-chip memory buses |
US5032986A (en) * | 1987-07-28 | 1991-07-16 | Texas Instruments Incorporated | Data processing device with parallel circular addressing hardware |
JPH01300361A (ja) * | 1988-05-28 | 1989-12-04 | Nec Eng Ltd | マイクロプロセッサシステム |
JP2628194B2 (ja) * | 1988-07-28 | 1997-07-09 | 株式会社日立製作所 | データ処理装置 |
US5276845A (en) * | 1988-08-25 | 1994-01-04 | Yamaha Corporation | Apparatus with multiple buses for permitting concurrent access to a first memory by a processor while a DMA transfer is occurring between a second memory and a communications buffer |
US5187795A (en) * | 1989-01-27 | 1993-02-16 | Hughes Aircraft Company | Pipelined signal processor having a plurality of bidirectional configurable parallel ports that are configurable as individual ports or as coupled pair of ports |
US5475631A (en) * | 1989-03-09 | 1995-12-12 | Micron Technology, Inc. | Multiport RAM based multiprocessor |
US5218677A (en) * | 1989-05-30 | 1993-06-08 | International Business Machines Corporation | Computer system high speed link method and means |
JPH0711793B2 (ja) * | 1989-07-13 | 1995-02-08 | 株式会社東芝 | マイクロプロセッサ |
KR930008050B1 (ko) * | 1990-02-16 | 1993-08-25 | 가부시끼가이샤 히다찌세이사꾸쇼 | 원칩 마이크로프로세서 및 그 버스시스템 |
JP2774862B2 (ja) * | 1990-07-16 | 1998-07-09 | 株式会社日立製作所 | Dma制御装置および情報処理装置 |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
US5826101A (en) * | 1990-09-28 | 1998-10-20 | Texas Instruments Incorporated | Data processing device having split-mode DMA channel |
US5809309A (en) * | 1990-09-28 | 1998-09-15 | Texas Instruments Incorporated | Processing devices with look-ahead instruction systems and methods |
US5305446A (en) | 1990-09-28 | 1994-04-19 | Texas Instruments Incorporated | Processing devices with improved addressing capabilities, systems and methods |
JPH04255989A (ja) * | 1991-02-07 | 1992-09-10 | Mitsubishi Electric Corp | 半導体記憶装置および内部電圧発生方法 |
US5367648A (en) * | 1991-02-20 | 1994-11-22 | International Business Machines Corporation | General purpose memory access scheme using register-indirect mode |
KR960001273B1 (ko) * | 1991-04-30 | 1996-01-25 | 가부시키가이샤 도시바 | 단일칩 마이크로컴퓨터 |
US5634135A (en) * | 1991-12-13 | 1997-05-27 | Texas Instruments Incorporated | Microprocessor with priority determination and priority based instruction selection |
US5621806A (en) * | 1992-02-14 | 1997-04-15 | Texas Instruments Incorporated | Apparatus and methods for determining the relative displacement of an object |
EP0597601A1 (en) * | 1992-11-13 | 1994-05-18 | National Semiconductor Corporation | Reflexively sizing memory bus interface |
GB2283596B (en) * | 1993-11-01 | 1998-07-01 | Ericsson Ge Mobile Communicat | Multiprocessor data memory sharing |
JP3619532B2 (ja) * | 1993-11-08 | 2005-02-09 | 株式会社ルネサステクノロジ | 半導体集積回路装置 |
KR100357338B1 (ko) * | 1994-08-02 | 2003-02-11 | 가부시끼가이샤 히다치 세이사꾸쇼 | 데이타처리시스템 |
JPH08314794A (ja) * | 1995-02-28 | 1996-11-29 | Matsushita Electric Ind Co Ltd | 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム |
US5838934A (en) * | 1995-06-07 | 1998-11-17 | Texas Instruments Incorporated | Host port interface |
JP3655403B2 (ja) | 1995-10-09 | 2005-06-02 | 株式会社ルネサステクノロジ | データ処理装置 |
US5884023A (en) * | 1995-12-14 | 1999-03-16 | Texas Instruments Incorporated | Method for testing an integrated circuit with user definable trace function |
US5761696A (en) * | 1996-04-02 | 1998-06-02 | International Business Machines Corporation | Parallel database serving mechanism for a single-level-store computer system |
JP3934710B2 (ja) * | 1996-09-13 | 2007-06-20 | 株式会社ルネサステクノロジ | マイクロプロセッサ |
JP3765337B2 (ja) * | 1996-10-25 | 2006-04-12 | 株式会社東芝 | Macのバンクレジスタ回路 |
US6058474A (en) * | 1997-01-24 | 2000-05-02 | Texas Instruments Incorporated | Method and apparatus for DMA boot loading a microprocessor without an internal ROM |
JPH11184804A (ja) | 1997-12-22 | 1999-07-09 | Nec Corp | 情報処理装置及び情報処理方法 |
US6038630A (en) * | 1998-03-24 | 2000-03-14 | International Business Machines Corporation | Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses |
US6240492B1 (en) | 1998-05-22 | 2001-05-29 | International Business Machines Corporation | Memory interface for functional unit of integrated system allowing access to dedicated memory and shared memory, and speculative generation of lookahead fetch requests |
IL128007A (en) * | 1999-01-11 | 2003-02-12 | Milsys Ltd | Enhancements on compact logic devices and also for accelerating and securing computations in modular arithmetic especially for use in public key cryptographic co-processors designed for elliptic curve and rsa type computations |
WO2001067271A1 (fr) * | 2000-03-10 | 2001-09-13 | Hitachi, Ltd. | Dispositif de traitement d'informations |
JP2006023808A (ja) * | 2004-07-06 | 2006-01-26 | Sony Corp | データ転送装置及びデータ転送方法 |
JP2006285602A (ja) * | 2005-03-31 | 2006-10-19 | Nec Corp | メモリシステム、情報処理機器、データ転送方法、プログラム、記録媒体 |
US7971036B2 (en) * | 2006-04-26 | 2011-06-28 | Altera Corp. | Methods and apparatus for attaching application specific functions within an array processor |
JP2022143741A (ja) | 2021-03-18 | 2022-10-03 | キオクシア株式会社 | 半導体集積回路及びその動作方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51109745A (ja) * | 1975-02-26 | 1976-09-28 | Siemens Ag | |
JPS52135629A (en) * | 1976-05-08 | 1977-11-12 | Toshiba Corp | Address computing unit |
JPS60173643A (ja) * | 1984-02-20 | 1985-09-07 | Oki Electric Ind Co Ltd | アドレス発生装置 |
JPS60206317A (ja) * | 1984-03-13 | 1985-10-17 | テ アール テ テレコミュニカシオン ラジオエレクトリック エ テレホニク | データ処理装置 |
JPS61131137A (ja) * | 1984-11-30 | 1986-06-18 | Toshiba Corp | 複数アドレスの連続生成方式 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3757306A (en) * | 1971-08-31 | 1973-09-04 | Texas Instruments Inc | Computing systems cpu |
US3810114A (en) * | 1971-12-29 | 1974-05-07 | Tokyo Shibaura Electric Co | Data processing system |
US4074351A (en) * | 1974-12-02 | 1978-02-14 | Texas Instruments Incorporated | Variable function programmed calculator |
US4096567A (en) * | 1976-08-13 | 1978-06-20 | Millard William H | Information storage facility with multiple level processors |
JPS54127653A (en) * | 1978-03-28 | 1979-10-03 | Toshiba Corp | Data processor |
US4514808A (en) * | 1978-04-28 | 1985-04-30 | Tokyo Shibaura Denki Kabushiki Kaisha | Data transfer system for a data processing system provided with direct memory access units |
JPS6057605B2 (ja) * | 1978-09-07 | 1985-12-16 | 松下電器産業株式会社 | マイクロコンピュ−タ回路 |
US4558412A (en) * | 1978-12-26 | 1985-12-10 | Honeywell Information Systems Inc. | Direct memory access revolving priority apparatus |
US4263649A (en) * | 1979-01-05 | 1981-04-21 | Mohawk Data Sciences Corp. | Computer system with two busses |
US4310879A (en) * | 1979-03-08 | 1982-01-12 | Pandeya Arun K | Parallel processor having central processor memory extension |
US4348720A (en) * | 1979-08-31 | 1982-09-07 | Bell Telephone Laboratories, Incorporated | Microcomputer arranged for direct memory access |
US4527237A (en) * | 1979-10-11 | 1985-07-02 | Nanodata Computer Corporation | Data processing system |
JPS5739439A (en) * | 1980-08-18 | 1982-03-04 | Nec Corp | Input-output controller |
US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
JPS57203154A (en) * | 1981-06-10 | 1982-12-13 | Matsushita Electric Ind Co Ltd | Microcomputer |
DE3276916D1 (en) * | 1981-09-18 | 1987-09-10 | Rovsing As Christian | Multiprocessor computer system |
US4486826A (en) * | 1981-10-01 | 1984-12-04 | Stratus Computer, Inc. | Computer peripheral control apparatus |
US4577282A (en) * | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
JPS58187783A (ja) * | 1982-04-27 | 1983-11-02 | 辰本 韶弘 | 穀物乾燥機に於ける熱風制御方法 |
JPS5938861A (ja) * | 1982-08-27 | 1984-03-02 | Toshiba Corp | メモリアクセス方式 |
US4627026A (en) * | 1982-10-21 | 1986-12-02 | I.R.C.A.M. (Institut De Recherche Et De Coordination Accoustique/Misique | Digital real-time signal processor |
US4719568A (en) * | 1982-12-30 | 1988-01-12 | International Business Machines Corporation | Hierarchical memory system including separate cache memories for storing data and instructions |
JPS60201463A (ja) * | 1984-03-27 | 1985-10-11 | Oki Electric Ind Co Ltd | Dmaデ−タ転送方式 |
US4542256A (en) * | 1984-04-27 | 1985-09-17 | University Of Delaware | Graded affinity photovoltaic cell |
US4620275A (en) * | 1984-06-20 | 1986-10-28 | Wallach Steven J | Computer system |
US4648029A (en) * | 1984-08-27 | 1987-03-03 | International Business Machines Corporation | Multiplexed interrupt/DMA request arbitration apparatus and method |
JPS61138354A (ja) * | 1984-12-10 | 1986-06-25 | Matsushita Electric Ind Co Ltd | デユアル・バス型高速デ−タ処理回路 |
JPS61271555A (ja) * | 1985-05-27 | 1986-12-01 | Fujitsu Ltd | ダイレクトメモリアクセス転送方式 |
US4716523A (en) * | 1985-06-14 | 1987-12-29 | International Business Machines Corporation | Multiple port integrated DMA and interrupt controller and arbitrator |
US4791590A (en) * | 1985-11-19 | 1988-12-13 | Cornell Research Foundation, Inc. | High performance signal processor |
-
1987
- 1987-03-13 US US07/025,417 patent/US4912636A/en not_active Expired - Lifetime
-
1988
- 1988-03-14 JP JP63060154A patent/JP2659984B2/ja not_active Expired - Lifetime
-
1995
- 1995-03-14 JP JP05466395A patent/JP3234734B2/ja not_active Expired - Fee Related
- 1995-03-14 JP JP7054664A patent/JPH07295808A/ja active Pending
- 1995-03-14 JP JP7054662A patent/JPH07302251A/ja active Pending
- 1995-03-14 JP JP05466595A patent/JP3206704B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51109745A (ja) * | 1975-02-26 | 1976-09-28 | Siemens Ag | |
JPS52135629A (en) * | 1976-05-08 | 1977-11-12 | Toshiba Corp | Address computing unit |
JPS60173643A (ja) * | 1984-02-20 | 1985-09-07 | Oki Electric Ind Co Ltd | アドレス発生装置 |
JPS60206317A (ja) * | 1984-03-13 | 1985-10-17 | テ アール テ テレコミュニカシオン ラジオエレクトリック エ テレホニク | データ処理装置 |
JPS61131137A (ja) * | 1984-11-30 | 1986-06-18 | Toshiba Corp | 複数アドレスの連続生成方式 |
Also Published As
Publication number | Publication date |
---|---|
JP3206704B2 (ja) | 2001-09-10 |
JPH07302251A (ja) | 1995-11-14 |
JPH07302252A (ja) | 1995-11-14 |
JPS63303452A (ja) | 1988-12-12 |
JPH07302253A (ja) | 1995-11-14 |
US4912636A (en) | 1990-03-27 |
JP2659984B2 (ja) | 1997-09-30 |
JP3234734B2 (ja) | 2001-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3234734B2 (ja) | 複数のオンチップメモリバスを備えたデータ処理装置 | |
US5099417A (en) | Data processing device with improved direct memory access | |
US5179689A (en) | Dataprocessing device with instruction cache | |
US4908748A (en) | Data processing device with parallel circular addressing hardware | |
US5032986A (en) | Data processing device with parallel circular addressing hardware | |
US4989113A (en) | Data processing device having direct memory access with improved transfer control | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US5175841A (en) | Data processing device with multiple on-chip memory buses | |
US5440749A (en) | High performance, low cost microprocessor architecture | |
US4394736A (en) | Data processing system utilizing a unique two-level microcoding technique for forming microinstructions | |
EP0198216B1 (en) | Three phased pipelined signal processor | |
US4545016A (en) | Memory management system | |
US3983541A (en) | Polymorphic programmable units employing plural levels of phased sub-instruction sets | |
US4378589A (en) | Undirectional looped bus microcomputer architecture | |
JPS5831014B2 (ja) | 命令先取り装置 | |
US5983328A (en) | Data processing device with time-multiplexed memory bus | |
JPS638490B2 (ja) | ||
JPH08166902A (ja) | プログラム可能なメモリアクセスインタフェースタイプを備えた集積回路マイクロプロセッサおよび関連する方法 | |
US5710914A (en) | Digital signal processing method and system implementing pipelined read and write operations | |
US5907864A (en) | Data processing device with time-multiplexed memory bus | |
EP0035334A2 (en) | Data processing system with two level microprogramming | |
US6012138A (en) | Dynamically variable length CPU pipeline for efficiently executing two instruction sets | |
EP0010196B1 (en) | Control circuit and process for digital storage devices | |
US4649470A (en) | Data processing system | |
US4974157A (en) | Data processing system |