JP2659984B2 - 複数のオンチップメモリバスを備えたデータ処理装置 - Google Patents

複数のオンチップメモリバスを備えたデータ処理装置

Info

Publication number
JP2659984B2
JP2659984B2 JP63060154A JP6015488A JP2659984B2 JP 2659984 B2 JP2659984 B2 JP 2659984B2 JP 63060154 A JP63060154 A JP 63060154A JP 6015488 A JP6015488 A JP 6015488A JP 2659984 B2 JP2659984 B2 JP 2659984B2
Authority
JP
Japan
Prior art keywords
memory
bus
address
data
register
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.)
Expired - Lifetime
Application number
JP63060154A
Other languages
English (en)
Other versions
JPS63303452A (ja
Inventor
エス マーガー スレンダー
エフ ポッツ ジェイムズ
ジー リーチ ジェラルド
レイ シマー ジュニア エル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPS63303452A publication Critical patent/JPS63303452A/ja
Application granted granted Critical
Publication of JP2659984B2 publication Critical patent/JP2659984B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details 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)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) この発明はデータ処理装置に関し、特にオンチップメ
モリのアクセスに関連したシングルチップマイクロコン
ピュータのアーキテクチャに関する。
(従来の技術) マイクロプロセッサ装置は、ゲーリー・ブーン(Gary
W.Boone)に与えられテキサス・インスッルメント社に
譲渡された米国特許第3,757,306号に示されているよう
に、MOS/LSI技術で製造される単一半導体集積回路、つ
まり、“チップ”内に通常含まれるデジタルプロセッサ
用の中央処理装置、つまり、CPUである。ブーンの上記
特許は、並列ALU、データ及びアドレス用レジスタ、命
令レジスタ及び制御デコーダを含むシングルチップ8ビ
ットCPUを示しており、これらの構成要素は全てノイマ
ン(von Neumann)型アーキテクチャを用い、データ、
アドレス及び命令用の双方向性並列バスを使って相互接
続されている。ゲーリー・ブーン及びマイケル・コッコ
ラン(Mickael J.Cochran)に付与されテキサス・イン
スツルメント社に譲渡された米国特許第4,074,351号
は、プログラム記憶用のオンチップROMとデータ記憶用
のオンチップRAMを備え、ハーバード(Harvard)型アー
キテクチャに構成された、4ビット並列ALUとその制御
回路を含むシングルチップ“マイクロコンピュータ”型
装置を示している。通常マイクロプロセッサという用語
はプログラム及びデータ記憶用の外部メモリを用いた装
置を指す一方、マイクロコンピュータという用語はプロ
グラム及びデータ記憶用のオンチップROMとRAMを備えた
装置を指す。本発明の説明では、“マイクロプロセッ
サ”という用語は両方の装置を含めて用い、“マイクロ
プロセッサ”という用語は主にオンチップROMを持たな
いマイクロコンピュータを指すのに用いる。しかし、両
用語は当該分野でしばしば入れ換え可能に使われている
ので、本明細書における一方または他方の使用はこの発
明の特徴を制限するものと考慮されるべきでない。
最近のマイクロコンピュータは主に2つの種類、つま
り汎用マイクロプロセッサと専用マイクロコンピュータ
/マイクロプロセッサに分けられる。モトローラ社製M6
8020等の汎用マイクロプロセッサは、広範囲のタスクの
どれでも実行するようにユーザによってプログラム可能
に設計されているため、パーソナルコンピュータ等の中
央処理装置としてよく使われている。このような汎用マ
イクロプロセッサは、広範囲の演算及び論理機能で優れ
た性能を有するが、勿論そうした機能の特定の一つ用に
は特別に設計または適応されていない。これに対し専用
マイクロコンピュータは、ユーザがそのマイクロコンピ
ュータを使うとしている特有の所定演算及び論理機能の
ための性能改良を与えるように設計されている。設計者
はマイクロコンピュータの主機能を知ることで、その専
用マイクロコンピュータによる特定機能の性能が、ユー
ザによって作成されるプログラムと関係なく汎用マイク
ロプロセッサによる同一機能の性能を大巾に越えるよう
に、マイクロコンピュータを構成できる。
専用マイクロコンピュータにより大巾な向上率で実施
可能なかかる機能の一つは、デジタル信号処理、特にデ
ジタルフィルタの実行と高速フーリエ変換を行うのに必
要な演算である。こうした演算は大部分整数乗算、多ビ
ットのシフト及び乗算−加算等の反復動作から成るの
で、専用マイクロコンピュータはこれらの反復機能に特
に適するように構成できる。かかる専用マイクロコンピ
ュータは、テキサス・インスツルメント社に譲渡された
米国特許第4,577,282号に記載されている。上記演算用
のマイクロコンピュータの特定設計は、汎用マイクロプ
ロセッサと比べて充分な性能向上をもたらし、専用マイ
クロコンピュータを音声及び画像処理等の実時間用途に
おける使用を可能とする。
デジタル信号処理の用途は、それらの演算集中性のた
め、メモリアクセス動作においてもかなり集中性とな
る。従って、デジタル信号処理機能を実施するマイクロ
コンピュータの全体的性能は、単位時間毎に実行される
特定演算の回数だけでなく、マイクロコンピュータがシ
ステムメモリに対してデータを検索及び記憶可能な速度
によっても決まる。前記米国特許第4,577,282号に記載
されているもの等従来の専用マイクロコンピュータは、
データメモリへのアクセスがプログラムメモリへのアク
セスと独立に、且つ、同時に行えるように、ハーバード
型アーキテクチャの改造型を用いている。このようなア
ーキテクチャは勿論、さらに性能向上をもたらしてき
た。
(発明が解決しようとする課題) しかし、ノイマン型アーキテクチャはに代るハーバー
ド型アーキテクチャの使用も幾つかの制限をもたらし、
その一部はデジタル信号処理の用途におけるマイクロコ
ンピュータの性能に悪影響を及ぼすことがある。例え
ば、データ及びプログラムメモリは異なるバスによって
アクセスされるので、物理的に別々のロケーションでな
いとしても、一般に別々のアドレススペース内に存在さ
れなければならない。従って、ハーバード型アーキテク
チャでは、第1の専用メモリがデータメモリ用に、また
第2の専用メモリがプログラムメモリ用に設けられなけ
ればならない。これは、利用していないデータメモリを
プログラム記憶用に使うこと及びその逆を妨げ、マイク
ロコンピュータの融通性を制限する。
さらに、入/出力装置のメモリマップ式制御を使うも
のも有用である。このような制御では、マイクロコンピ
ュータとその入/出力装置によって共有された予約メモ
リロケーションを使用する。要するに、マイクロコンピ
ュータ及び入/出力装置は、共有ロケーションへデータ
を書込み、また、そこからデータを読取ることによって
相互に交信する。ハーバード型及びノイマン型どちらの
アーキテクチャでも、入/出力目的のために一定のメモ
リロケーションを予約することは、マイクロコンピュー
タの融通性をいっそう制限する。また、アーキテクチャ
がメモリマップ式入/出力の使用を一定のロケーション
に制限していると、追加の入力または出力装置に必要な
メモリマップドロケーションがマイクロコンピュータ用
の既存ソフトウェアで使われていることがあるため、マ
イクロコンピュータはその追加装置を含めるように容易
に再設計できず、既存のソフトウェアベースが再設計の
マイクロコンピュータと両立しなくなってしまう。
従ってこの発明の目的は、ユーザによってフレキシブ
ルにデータ及びプログラムストレージへと区分可能な単
一のメモリアドレスベースを有するマイクロコンピュー
タを提供することにある。
この発明の別の目的は、単一のメモリアドレススペー
ス内に、データ及びプログラムストレージと共にメモリ
マップド入/出力コントローラも含み得るようなマイク
ロコンピュータを提供することにある。
この発明の別の目的は、データ、プログラム及びメモ
リマップド入/出力メモリの仕様と関わりなく、前記ア
ドレススペース内の2つのメモリロケーションへ同時に
アクセスできるようなマイクロコンピュータを提供する
ことにある。
この発明の別の目的は、単一のメモリアドレススペー
ス内にROMとRAM両方を有するようなマイクロコンピュー
タを提供することにある。
本発明の上記以外の目的及び利点は、図面と共に以下
の説明を参照することによって当業者には明らかとなろ
う。
(課題を解決するための手段) 本発明は、単一のメモリアドレススペース内にマップ
割り当てされた複数のメモリ要素を有するマイクロコン
ピュータに適用し得る。データバス、プログラムバス及
び直接メモリアクセス(DMA)バス等の特定目的で好ま
しくは使われるように指定し得る複数のメモリバスが設
けられる。2つのバスが共に同一メモリ要素へアドレス
しようとしない限り、複数のバスが1より多いメモリ要
素への同時アクセスを可能とする。メモリアドレススペ
ースは、制御可能なポートを介して複数のメモリバスが
それに接続された外部メモリへもアドレス可能となるよ
うに、充分大きくし得る。2つの異なるバスが同一メモ
リ要素(オンチップまたは外部)内のメモリロケーショ
ンへアドレスを試みたときでも、所定の優先順位に従っ
て一つのバスにアクセスが許可されるように、アドレス
デコーダ論理及び優先順位論理を含むメモリ優先順位コ
ントローラも付設し得る。
(実施例) 第1図を参照すると、マイクロコンピュータ10のアー
キテクチャが示され、該マイクロコンピュータはデジタ
ル信号処理用に特に編成され、本発明を具備している。
マイクロコンピュータ10の主な機能ブロックは、中央処
理装置(CPU)12、コントローラ14、及び直接メモリア
クセス(DMA)コントローラ22によって構成れる。発明
のこの実施例によるマイクロコンピュータに装備された
メモリは、ランダムアクセスメモリ(RAM)16、18及び
読取専用メモリ(ROM)20を含む。この実施例におい
て、RAM16と18は210つまり1Kのワードを有し、ROM20は2
12つまり4Kのワードを有する。各種のバス信号をマイク
ロコンピュータ10の外部端子で多重化し、且つかかる外
部端子を介してデータを送受信する外部装置との通信用
の専用信号を与えるインタフェースポート24、26を経て
外部との接続がなされる。インタフェースポート26に周
辺バス28が接続され、周辺バス28は後述するように各種
の機能ブロックに接続される。
マイクロコンピュータ10内でのデータ交信は、データ
バス30を介して実施可能である。データバス30は、メモ
リ16、18、20、インタフェースポート24、26及びCPU12
間でのデータ信号の交信に割り当てられた一組のデータ
ライン30dを含む。発明のこの実施例では、データバス3
0が各組30d内に32本のデータラインを有する;従ってメ
モリ16、18、20、インタフェースポート24、26及びCPU1
2間で交信されるデータ信号は32ビット語と見なされ
る。データバス30は更に第1組のアドレスライン30aと
第2組のアドレスライン30bを含み、両アドレスライン
はメモリ16、18及び20内のメモリロケーションに対応し
たアドレス信号の交信に使われる。発明のこの実施例に
おいて、データバス30は各組30a及び30b毎に24本にアド
レスラインを有する。アドレスライン30aと30bも、CPU1
2、インタフェースポート24、26及びメモリ16、18、20
間に接続されている。第1図から明らかなように、メモ
リ16、18、20は各々2つのポート32a、32dを有する。各
々のポート32aはデータバス30のアドレスライン30aと30
bに接続され、そこに与えられるアドレス信号を受信
し、対応したメモリロケーションへのアクセスをポート
32dを介してデータバス30のデータライン30dに与える。
マイクロコンピュータ10は、プログラムバス34を介し
ても交信を行う。データバス30と同様、プログラムバス
34はメモリ16、18及び20の各ポート32dに接続された一
組のデータライン34dを含む。プログラムバス34のデー
タライン34dは、インタフェースポート24、26とコント
ローラ14にも接続されている。プログラムバス34は更
に、メモリ16、18、20の各ポート32a、インタフェース
ポート24、26及びコントローラ14に接続された一組のア
ドレスライン34aを含む。プログラムバス34には、アド
レスライン34aとデータライン34dにそれぞれ接続された
ポート32aと32dを有する命令キャッシュ36も接続されて
いる。命令キャッシュ36は小型(64ワード)の高速メモ
リで、プログラム記憶用に外部のメモリ装置が使われる
場合に、反復使用される命令の検索をメモリ16、18、20
からと同じ速度で行えるように、最も最近使われた命令
コードを保持するのに使用される。命令キャッシュ36の
詳細な構造及び動作は後で説明する。コントローラ14
は、プログラムバス34のデータライン34d上に受信され
た命令コードを、マイクロコンピュータ10の全ブロック
内に含まれた特定の論理回路を制御する制御信号へデコ
ードするのに必要な回路を含む。第1図は、マイクロコ
ンピュータ10のアクセスを制御するそれらの制御信号の
一部をメモリ16、18、20及び周辺ポート24、26にそれぞ
れ搬送するラインSEL16、SEL18、SEL20、SEL24及びSEL
26を示す。コントローラ14から発生されるその他の同様
な信号は、見易くするため第1図には示してない。命令
キャッシュ36とコントローラ14に制御されたプログラム
バス34は、メモリ16、18及び20内に含まれた命令コード
のアドレシングと交信のために主に使われる。本発明に
よれば、このような命令コードは、プログラムメモリに
専用な特定のロケーションを指定することなく、メモリ
16、18及び20の何れかまたは外部メモリ内に存在可能で
ある。
DMAコントローラ22は、DMAバス38を介してメモリ16、
18及び20に接続される。データバス30とプログラムバス
34と同じく、DMAバス38はメモリ16、18及び20のポート3
2dに接続された一組のデータライン38dを有する。DMAバ
ス38は更に、メモリ16、18及び20のポート32aに接続さ
れた一組のアドレスライン38aを有する。DMAコントロー
ラ22は、周辺バス28に更に周辺バス28を介してインタフ
ェースポート26にも接続されている。DMAコントローラ2
2が直接メモリアクセス動作を行い、この動作によって
マイクロコンピュータ10のメモリスペース内に記憶され
たデータブロックがメモリの一領域(出所)から別の領
域(宛先)へ移動可能である。メモリの出所領域はメモ
リ16、18、20、またはマイクロコンピュータ10の外部に
あってインタフェースポート24で処理される端子に接続
されたメモリ装置内に存在し、データブロックの宛先は
かかるどのメモリ(但し勿論ROM20を除く)内にも存在
し得る。第1図に示したマイクロコンピュータ10の構造
及び以下の説明から、このようなDMA動作はCPU12の介入
を必要とせず、マイクロコンピュータ10内のDMAコント
ローラ22によってなされることが明らかであろう。
一組のアドレスライン30a、30b、34aまたは38aの対応
したメモリ16、18または20への接続を選択できるよう
に、ポート32aは主にマルチプレクサである。同じく、
各々のポート32dはデータバス30のデータライン30dに接
続され、アドレスされたメモリロケーションによって記
憶された(または記憶されるべき)データの交信を行
う。メモリ16、18及び20は各々そのポート32aに接続さ
れたアドレスデコーダ33を含み、これがアドレスライン
30a、30b、34aまたは38aの選択された1つに与えられる
メモリアドレス信号を当該分野で周知な方法でデコード
する。アドレスデコード33からの出力に基づき、選択ア
ドレス信号によって指定されたメモリロケーションへの
アクセスが許可される。RAM16、18とROM20は全て、選択
メモリロケーションが付設のアドレスデコーダ33の出力
に基づき検知及び/又は書込まれるように、当該分野で
周知なように構成されている。またかかるメモリの分野
で周知なように、ポート32dは選択されてないときそこ
に接続されたバス30、34及び38のデータラインの高イン
ピーダンス出力を与えて、バス30、34及び38上における
データの衝突を防ぐ。
データバス30、プログラムバス34及びDMAバス38内の
各組のアドレスラインは、この発明の好ましい実施例に
おいて24本の導体からなる。従って、データバス30、プ
ログラムバス34及びDMAバス38内の各組のアドレスライ
ンを介してアドレス可能なメモリロケーションの最大数
は、32ビットの224ワード(16メガワード)である。し
かし、メモリ16、18及び20内のワード総数は6Kなので、
マイクロコンピュータ10のアドレス可能なメモリスペー
スの多くはマイクロコンピュータ10外のメモリ装置内に
存在する。このような外部メモリも勿論オンチップメモ
リ16、18及び20と同様のアドレスデコード能力を持ち、
バス30、34及び38のアドレスライン上に発生したアドレ
ス信号に対して同じように応答する。本発明によれば、
バス30、34及び38の任意の一組のアドレスラインに与え
られるあるアドレス信号がメモリ16、18及び20のうち一
つ内のメモリロケーションへアドレスするように、単一
のメモリアドレススペースがマイクロコンピュータ10に
設けられる。従って、例えばアドレスライン30aがポー
ト32aで選ばれたとすれば、アドレスライン30a上のある
アドレス信号はメモリ16、18及び20の何れか一つもしく
は外部データ、プログラムまたは入/出力メモリ内のメ
モリロケーションと対応している。尚マイクロコンピュ
ータは、外部のデータ及びプログラムメモリが周辺ポー
ト24を介してアクセスされ、外部入/出力メモリが周辺
ポート26を介してアクセスされるのが好ましいように編
成されている。
周辺バス28は、インタフェースポート26と各種の周辺
機能との間に接続されている。従って周辺バスは、コン
トローラ14による周辺ポート26の制御に応じて、バス3
0、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を介してアクセスされる。
次に第2図を参照して、CPU12の構造と動作を詳しく
説明する。CPU12は、専用乗算器46、論理演算装置(AL
U)48、データレジスタ50a〜50h(まとめてデータレジ
スタ50と称する)、補助演算論理装置(ARAU)52aと52
b、補助データレジスタ54a〜54h(まとめて補助レジス
タ54と称する)、データバスコントローラ56、及び一連
の制御レジスタ(インディックスレジスタ68aと68b、ブ
ロックレジスタ70及び状態レジスタ70を含むがこれに制
限されない)を含み、以下これらについて詳述する。
乗算器46への入力の一方は、マルチプレクサ64aを介
してCPUバス60aまたはレジスタバス62aの何れかからデ
ータを受け取るように動作可能で、乗算器46への入力の
他方はマルチプレクサ64bを介してCPUバス60bまたはレ
ジスタバス62bの何れかからデータを受け取るように動
作可能である。同じくALU48は2つの入力に対して演算
を行い、その一方の入力はマルチプレクサ64cを介してC
PUバス60aまたはレジスタバス62aの何れかからデータを
受け取るように動作可能で、他方の入力はマルチプレク
サ64dを介してCPUバス60bまたはレジスタバス62bの何れ
かからデータを受け取るように動作可能である。マルチ
プレクサ64a〜64dは、CPU12によって実行されるべき命
令コードに基づきコントローラ14によって制御される。
乗算器46は当該分野で周知な浮動小数点乗算器で、実
際には(マッティッサ(仮数)乗算用の)ハードウェア
乗算器と(指数加算用の)演算論理装置とを含む。乗算
器46は発明の好ましい実施例において、32ビットの結果
を生じる整数乗算を実施可能なサイズ、あるいは32ビッ
トを浮動小数点オペランドのマンティッサ及び他の8ビ
ットを浮動小数点オペランドの指数と見なして、計40ビ
ットの結果を生じる浮動小数点乗算を実施可能なサイズ
とする。ALU48は、24ビットまでの2進数に対して整数
及び浮動小数点の加算と減算を実施可能な多くの周知な
構成の任意の一つに従って構成された演算論理装置であ
る。後で詳述するように、乗算器46とALU48の並列組合
せによって、CPU12は両方の機能を同時に用いて演算を
実施でき、乗算−累算命令等の演算の迅速な計算を与え
られる。乗算器46はALU48の出力は各々データレジスタ5
0に接続され、乗算器46とALU48各々によって実行された
演算の結果がデータレジスタ50のうち選択されたものに
それぞれ記憶可能である。
データレジスタ50は40ビットのレジスタで、ユーザの
アプリケーションに応じ整数または浮動小数点フォーマ
ットでデータをストアするのに使われる。情報を浮動小
数点フォーマットで記憶する場合には、最上位8ビット
が指数と見なされ、下位32ビットがマンティッサと見な
される。データレジスタ50の主な機能はアキュムレータ
機能で、実質上複数のデータレジスタ50がCPU12に複数
のアキュムレータを与える。データレジスタ50はレジス
タバス62aと62bにも接続され、両レジスタバスがデータ
バスコントローラ56を介してデータバス30に出力を与
え、また乗算器46とALU48への入力として再び与えられ
る。従って乗算−累算命令をCPU12で容易且つ効率的に
実施できる。例えば、乗算器46の乗算結果をデータレジ
スタ50の一つとしてレジスタバス62aを介してALU48に入
力させ、データレジスタ50の別の一つに記憶されレジス
タバス62bを介してALU48に与えられた前の結果に加える
ことができる。乗算器46とALU48の出力は、同じくコン
トローラ14によって制御されマルチプレクサ66の入力に
も接続されている。マルチプレクサ66の出力は補助レジ
スタ54に接続され、乗算器46またはALU48の動作結果が
補助レジスタ54の選択された一つ、あるいはインデック
スレジスタ68aと68b、ブロックレジスタ70及び状態レジ
スタ71を含む一連の制御レジスタ内に記憶可能である。
補助レジスタ54は32ビットのレジスタで、ARAU52と協
働して、データバス30のアドレスライン30aと30bに加え
るアドレスや、補助レジスタ54内に記憶されて後で使わ
れるアドレス計算用のアドレスを発生する。補助レジス
タ54は、補助レジスタバス65aと65bをそれぞれ介して各
ARAU52aと52bの一入力に接続されている。各ARAU52aと5
2bはコントローラ14に接続された入力、インデックスレ
ジスタ68aと68bに接続された入力、及びブロックレジス
タ70に接続された入力も有し、これらの入力は全て実行
中の命令コードによって指定されたアドレスモードに応
じてアドレス変更信号を受け取る。ARAU52aと52bはデー
タバス30のアドレスライン30aと30bにそれぞれら接続さ
れた出力を有し、ARAU52aと52bはこれらのアドレスライ
ンにメモリアドレス信号を与える。さらにARAU52aと52b
は、バス67aと67bにそれぞれ接続され、後述するように
メモリアドレシングの過程で発生した変更の結果を補助
レジスタ54のうち選択されたものに記憶するための出力
を有する。第1図から明らかで当該分野で周知なよう
に、マイクロコンピュータ10によって実行可能な命令コ
ード16、18、20、並びに周辺ポート24と26を介して外部
メモリに複数の方法でアクセスする。このようなアドレ
シングの例には、CPU12内の各レジスタ50と54のアドレ
シング、メモリ16、18、20内のロケーションのアドレシ
ング、周知の即時及び相対的アドレシングモードが含ま
れる。
間接的なメモリアドレシングは、補助レジスタ54と協
働するARAU52aと52bによって容易化される。周知のよう
に、マイクロコンピュータ内での間接的なアドレシング
は、メモリロケーションのアドレスが所定のロケーショ
ンに含まれているメモリアドレシングモードである。間
接メモリアドレシングの一例は、“レジスタ50aの内容
で指定されたメモリロケーションをアドレスせよ”とい
うマイクロコンピュータへの命令である。間接アドレシ
ングはレジスタ54を動的メモリアドレスポインタとして
用いるのを可能とし、プログラムメモリロケーションの
内容を変える必要なく、CPU12(及びレジスタ54の一つ
におけるその記憶)によるメモリロケーションの算出を
可能とする。さらにARAU52aと52bは、ARAU52aと52bによ
る間接アドレスの算出を変更する命令コードから発生さ
れた変位コードを用いるように動作可能である。変位コ
ードは、命令コードのデコード時にコントローラ14によ
って発生される8ビットのコードで、各ARAU52aと52bの
入力の一方に入力される。CPU12は変位信号の不在を1
の暗示値として解釈し、これが反復演算で使われるレジ
スタ54の内容を自動的にインクレメントまたはデクレメ
ントするのに使える。このようにARAU52aと52bは、RAM1
6と18及びデータメモリとして使われている外部RAM内の
メモリロケーションのアドレシングで主に使われる。第
1図に示したごとく、データバス30のアドレスライン30
aと30b上にARAU52aと52bから発生されたアドレスは、勿
論ROM20にもアクセス可能である。つまりARAU52aと52b
は、その入力の一方に接続されたレジスタ54の一つの内
容及びコントローラ14から発生される変位コードに基づ
いて必要な整数加算または減算演算を実施するように動
作可能である。第1表は、レジスタ54とコントローラ14
と協働するARAU52aと52bによって部分的にサポートされ
る多くの種類の間接アドレシングモードをリストアップ
している。尚、メモリ16、18及び20(または外部)のプ
ログラムメモリポーション/ロケーションに記憶された
命令コードは、第1表にリストアップしたものを含め所
望なメモリアドレシングモードを指定する5ビットのコ
ードを有している。第1表において、“add"はアドレス
されるべきメモリロケーションを指定し、“ARn"はレジ
スタ54の一つの内容を指定し、“disp"はコントローラ1
4から発生される変位コードの値を指定する。補助レジ
スタ54の一つの内容の更新値は、第1表中“ARn′”で
示してある。
CPU12は、同じくマルチプレクサ66の出力に接続さ
れ、レジスタバス62aと62bに接続され、更にコントロー
ラ14からの変位コードを受け取るARAU52aと52bの入力に
直接接続されたインデックスレジスタ68aと68bを含んで
いる。勿論コントローラ14が、インデックスレジスタ68
a、インデックスレジスタ68b、または変位コードのARAU
52aと52bの他入力に対する印加を制御する。インデック
スレジスタ68aと68bはALU48によってロードされ、メモ
リ16、18及び20(並びに外部メモリ)のインデックス付
間接アドレシングで使われるインデックス値をARAU52a
と52bを介して記憶可能である。第2表は、コントロー
ラ14によって受信及びデコードされる対応する命令コー
ドに応答し、ARAU52aと52bによって実行可能なインデッ
クス付間接アドレシングモードを含む。第1表にリスト
アップしたアドレシングモードと同様、それらの各アド
レシングモードは命令コード内の特有な5ビットのコー
ドによって実施可能である。第2表中の略語“IRm"は、
インデックスレジスタ68aと68bの一方の内容を示す。
次に第2a図を参照すると、ARAU52aの構造が詳しく示
してある;勿論ARAU52bも同様に構成されている。第2
図に示したように、ARAU52aはその一方の入力で補助レ
ジスタバス65aを受け取り、該バス65aは加/減算器80の
一方の入力に接続されている。マルチプレクサ82は3つ
の入力信号を受信する;その1つはコントローラ14から
発生される変位コードで、残りの2つの入力信号はイン
デックスレジスタ68aと68bの内容である。マルチプレク
サ82は実行される命令コードに応じてコントローラ14に
よって制御され、これら3入力の一つの加/減算器80の
他入力に対する印加を選択する。
加/減算器80の当該分野で周知な多段式演算論理装置
で、全キャリ加算または減算を実施可能である。コント
ローラ14はアドレスモード情報に関する命令コードの解
読に応じて、加/減算器80が加算または減算どちらかを
行うかを制御する。加/減算器80は更に、キャリ情報を
段から段へ順または逆方向に伝達する能力も有してい
る。このような加/減算器は係属中の米国特許出願第93
5,465号に記載されており、該特許出願が高速フーリエ
変換アルゴリズムの実施における逆方向キャリ伝達の利
点を詳しく記述している。コントローラ14も同様に、実
行される命令コードに応じて加/減算器80内でのキャリ
伝達の方向を制御する。
加/減算器80の出力は、マルチプレクサ84の一方の入
力と比較器86の一方の入力とに接続されている。マルチ
プレクサ84の他入力は補助レジスタバス65aに直接接続
され、マルチプレクサ84の出力はデータバス30のアドレ
スライン30aに接続されている。マルチプレクサ84は現
在の命令コードに応じてコントローラ14によって制御さ
れ、計算されたアドレスの適正値をデータバス30のアド
レスライン30aに加える。加/減算器80の出力はマルチ
プレクサ88の第1入力にも接続され、マルチプレクサ88
の出力は、ARAU52aからのデータを補助レジスタ54のう
ち選択された一つに導いて補助レジスタ54の内容を所望
通り更新するバス67aに接続されている。マルチプレク
サ88の第2入力は加/減算器90に接続されている。比較
器86と加/減算器90は後述する循環アドレシング論理を
構成し、次の議論の目的上、その動作については無視す
る。
第2a図を参照すれば、第1及び2表に列記した各種の
間接アドレシングモードを達成する際のARAU52aの動作
は明らかとなろう。コントローラ14は実行される命令コ
ードに応じてマルチプレクサ82を制御し、インデックス
レジスタ68aと68bのうち所望の一方(第2表中の“IR
m")あるいはコントローラ14から発生される変位コード
を選択し、加/減算器80で補助レジスタ54の選択された
一つの内容に加える。前述したように、加/減算器80が
加算または減算どちらを行うか、及び加/減算器80が順
または逆方向どちらのキャリ伝送を使ってその出力を計
算するのかも、コントローラ14が制御する。所望のアド
レシングモードが後インデックスもしくは後変位の加算
または減算である場合には、コントローラ14はマルチプ
レクサ84によって補助レジスタバス65aを選び、データ
バス30のアドレスライン30aを接続せしめる(第1及び
2表中の演算“add=ARn"に対応)。逆に、所望の間接
アドレシングモードが前インデックスもしくは前変位間
接アドレスであれば、コントローラ14はマルチプレクサ
84によって加/減算器80の出力を選び、データバス30の
アドレスライン30aに加える(第1及び2表中の演算“a
dd=ARn+1−IRm/disp"に対応)。
ARAU52aは、選択された間接アドレシングモードに従
って補助レジスタ54の更新も決める。循環間接アドレシ
ングモードが選択されたとすると(循環アドレシングに
ついては後述する)、補助レジスタ54のうち選択された
一つの内容が変更されるべきかどうかをコントローラ14
が選ぶ。所望の間接アドレシングモードが補助レジスタ
54の内容を更新しない場合には、コントローラ14がマル
チプレクサ88の出力を使用禁止(トライステート)と
し、補助レジスタ54の選択された一つの内容は更新され
ない。補助レジスタ54の選択された一つの内容が加/減
算器80での加算または減算の結果によって変更されるべ
き場合には、コントローラ14がマルチプレクサ88によっ
て加/減算器80の出力を選んでバス67aに加える(第1
及び2表中の演算“ARn=ARn+/−IRm/disp"に対
応)。
第2図に示したCPU12の構造から、各種機能の動作は
並列に発生可能なことが勿論明らかであろう。例えば、
ARAU52aと52bはそれらへの入力が別々にレジスタ54とコ
ントローラ14(更にインデックスレジスタ68aと68b)に
接続されているので、並列に動作可能である。また、AR
AU52aの出力はデータバス30のアドレスライン30aとバス
67aに接続される一方、ARAU52bの出力はデータバス30の
アドレスライン30bとバス67bに接続されている。こうし
て、ARAU52aと52bの動作は、相互に干渉することなく同
時に生じ得る。更に、レジスタバス62aと62bの前の状態
が所望通り乗算器46とALU48によって受信されていれ
ば、乗算器46とALU48の動作は相互同士だけでなく、ARA
U52aと52bに対しても同時に生じ得る。このように、特
に乗算−累算等の反復演算を用いるアルゴリズムの場
合、CPU12は上記の並列動作によって大巾な性能向上を
達成可能である。
ブロックレジスタ70はマルチプレクサ66の出力に接続
され、レジスタバス62aと62bに接続されている他、ARAU
52aと52bにも直接接続されている。ブロックレジスタ70
は間接アドレシング方式に“循環的”特徴を与え、1ブ
ロックのデータメモリロケーションがループ式に反復ア
クセス可能となるようにする。当該分野では周知なよう
に、デジタル信号処理の用途で必要な一部の計算は、1
ブロックの記憶データに対する反復演算で表わすことが
できる。例えば、有限パルス応答(FIR)デジタルフィ
ルタ機能の計算は、1ブロックのデータに対する乗算−
累算演算の反復を必要とし、乗算−累算の結果はオペラ
ンドの一つがそこからフェッチされたメモリロケーショ
ン内に記憶される。
次に第2b図を参照して、循環アドレシングの動作をCP
U12内の各種レジスタの内容を見ながら説明する。CPU12
は、まずALU48によってブロックレジスタ70に問合せ、
こゝではビット位置“N"と称する、記憶された“1"デー
タ状態の最上位位置を判定することによって循環アドレ
シングを行う。ブロックレジスタ70内に記憶された値
は、循環的にアドレスされるべきデータブロック内のメ
モリロケーションの数を有する。データブロックの(そ
の一端における)最初のベースアドレスは、間接アドレ
シングモードで使われる補助レジスタ54の一つの内容と
見なされ、これらのビットビット位置は“0"論理状態に
なってブロックレジスタ70内の最上位“1"状態のビット
位置以下の位である。第2b図は0"に等しい補助レジスタ
54aの内容のN個の下位ビットを示すことによってこの
点を示しており、Nはブロックレジスタ70内の最上位
“1"のビット位置である。尚、コントローラ14からの変
位コードもインデックスレジスタ68aの内容を置換する
ことによって、循環アドレシング特徴で使用可能であ
る。この例のためには、インデックスレジスタ68aの内
容が循環アドレシング特徴の演算を記述するのに使われ
る。この結果、記憶データのブロック端を(補助レジス
タ54a内に記憶された)最初のベースアドレスと見なす
ことができ、N以下のビット位置がブロックレジスタ70
の内容を含んでいる。この値は、データのブロック端の
メモリアドレスに1をプラスしたものである。
次に第2c図を参照し、循環アドレシングを用いて補助
レジスタ54aをインクレメントする動作の一例を説明す
る。Nより大きい(つまりブロックレジスタ70内の最上
位“1"より高い)ビット位置に対応した補助レジスタ54
aにビット位置の内容は常に、そこへ最初に記憶された
ベースアドレスのNより大きいビット位置の内容と等し
いまゝである。補助レジスタ54aのN以下のビットの内
容(以下“インデックス”と称する)が、前述のごとく
計算されたインデックスレジスタ68aの内容(以下“ス
テップ”と称する)と組合わされる。前述したように、
補助レジスタ54aのN以下のビットは最初ゼロだが、循
環アドレシングモードの詳細は以下一般的なケースにつ
いて説明する。場合に応じてARAU52aまたは52bが、アド
レシングモードによって指定されたインデックスのイン
デックスレジスタ68aとの組合せを行う。この例の目的
上、ARAU52aは循環アドレシングモードで使われるARAU5
2aと52bの一方を称するものとする。
循環アドレシングは、第2a図に示したARAU52aと52bの
比較器86と加/減算器90によってなされる。比較器86が
加/減算器90に、ブロックレジスタ70の内容と前述のご
とく選択された加/減算器80の出力ビット(“インデッ
クス”)との比較結果に対応した制御出力(第2a図のラ
イン87で示す)を、インデックス及びステップの値間及
びブロックレジスタ70の内容との関係に応じて与える。
その第1の関係で、インデックス及びステップの組合せ
がゼロ以上でブロックレジスタ70の内容以下の場合に
は、補助レジスタ54aの更新内容のN以下のビットがイ
ンデックスとステップの和(あるいは場合によっては
差)から成る。すなわち、第1の関係の条件が満たされ
ると、加/減算器90は加算と減算どちらも行わず、その
出力に加/減算器80の出力をそのまま与える。この第1
の関係の式は次のように表わせる: IF 0<indexn+/−step<=block THEN indexn+1=indexn+/−step 上記の関係において、“indexn”は変更前における補助
レジスタ54aのN以下のビット位置の内容で、“index
n+1”は変更後におけるN以下のビット位置の内容を表
わし、“step"はインデックスレジスタ68a(この例の場
合)の内容を表わし、“block"はブロックレジスタ70の
内容を表わす。
第2の関係で、インデックスとステップの組合せがゼ
ロより小さい場合には、補助レジスタ54のN以下のビッ
トの変更内容がインデックスとステップの和(または
差)に、ブロックレジスタ70の内容をプラスしたものと
なる。これは、比較器86の制御出力で加/減算器90によ
ってブロックレジスタ70の内容を加/減算器80の出力へ
加算することにより、ARAU52aにおいて行われる。そし
て、この加算の結果がマルチプレクサ88に与えられる。
これを式の形で表わせば: IF 0>indexn+/−step THEN indexn+1=(indexn+/−step)+block 最後に、補助レジスタ54aのN以下のビット位置の組
合せがブロックレジスタ70の内容より大きいと、ブロッ
クレジスタ70の内容がインデックスとインデックスレジ
スタ68aの内容との和(または差)から減算される。前
記の関係と同じく、ARAU52aはこの点を比較器86を加/
減算器90によって、加/減算器80の内容からブロックレ
ジスタ70の内容を減算し、その結果をマルチプレクサ88
に与えることによって行う。この場合の式は次のとお
り: IF indexn+/−step>block THEN indexn+1=(indexn+/−step)−block コントローラ14は、第2a図に示したごとくマルチプレ
クサ88によって加/減算器90の出力を選びバス67aへ与
えることで循環アドレシングモードを選択する。
上記の説明から明らかなように、循環アドレシングの
特徴はメモリロケーション用のアドレスについて自動的
なループ折返しを与えるだけでなく、メモリアドレスの
変更が所望のデータブロック外で行われる場合にも動作
可能である。これは、データブロックのアドレシングに
おける追加の融通性を与える。例えば、ブロックサイズ
が奇数であれば、2のインデックスでまず偶数のメモリ
アドレスを順序付けした後、奇数のメモリアドレスを順
序付けることによって、メモリブロックがアドレスされ
る。このような方法により、一部のデジタル信号処理の
アプリケーションが、より少なくてもよいプログラムと
データスペース及びより速い性能によって実施可能とな
る。
間接アドレシング機能における循環アドレシング特徴
の効果は、追加のアドレシングモードを生み出すことに
ある。第3表は、本発明の好ましい実施例に含まれる、
循環アドレシング特徴を備えたそれらの間接アドレシン
グモードをリストアップしている。第3表中“circ
( )”は、場合に応じて変位コードまたはインデック
スレジスタ68を伴なう、“ARn"で表わされる補助レジス
タ54の選択された一つの内容に対する演算での前記循環
特徴の組合せを示し、補助レジスタ54の変更内容は“AR
n′”で表わしてある。
再び第2図を参照すれば、データバスコントローラ56
がデータバス30のデータライン34dに接続され、データ
バス30からCPU12の各種部分へのデータの流れを制御す
る。CPU12の内部に、一対のCPUバス60aと60b及び一対の
レジスタバス62aと62bが存在する。データバスコントロ
ーラ56は4−1マルチプレクサから成り、CPUバス60aと
60b及びレジスタバス62aと62bに接続された4つの入力
を有する。従って、任意のある時点におけるCPU12から
データバス30のデータライン30dへの発信は、これら4
つの内部バスの任意の一つから生じ得る。このような交
信は勿論、データバス30d上へのデータ発信と共に、対
応したアドレス信号がアドレスライン30aまたは30bに発
生されることを要求する。ARAU52aの出力はデータバス3
0のアドレスライン30aと30bにそれぞれ接続されている
ので、このようなアドレスはデータバスコントローラ56
を介した所望のデータ発信と共にCPU12から発生可能で
ある。
ARAU52aと52bの並列特性が、単一マシンサイクル内で
の1より多いメモリアドレスのCPU12による計算を可能
とする。従って、データバスコントローラ56は単一マシ
ンサイクル内で、1より多いCPUバス60とレジスタバス6
2をデータバス30のデータライン30dに接続可能である。
ARAU52aと52bの出力のデータバス30のアドレスライン30
aと30bに対する印加の制御及びCPU12の内部バスに対す
るデータライン30dの時間多重化の制御は、実施される
命令コードに基づきコントローラ14によってなされる。
次に第3図を参照して、周辺ポート24と26の構造を詳
しく説明する。周辺ポート24と26は第1図を参照して前
述したように、データ30、プログラムバス34及びDMAバ
ス38に接続されている。周辺ポート24は主にマルチプレ
クサ100から成り、これがコントローラ14からラインSEL
24上に発生される制御信号に応じて、外部データライン
Dnをデータバス30のデータライン30d、プログラムバス3
4のデータライン34dまたはDMAバス38のデータライン38d
へ選択的に接続する。尚、マルチプレクサ100は外部デ
ータラインDnとデータライン30d、34dまたは38dの間で
双方的な接続を生成し、両者間でデータを送受可能であ
る。さらにマルチプレクサ102が、どのデータラインが
マルチプレクサ100によってデータラインDnへ接続され
るかに応じコントローラ14に応答して、外部アドレスラ
インAnをデータバス30のアドレスライン30aか30b、プロ
グラムバス34のアドレスライン34a、またはDMAバス38の
アドレスライン38aへ選択的に接続する。
多数の制御ラインが、(図面を見易くするため図示し
てないライン上の)同じくコントローラ14から発生され
る信号に応じて、周辺ポート24内のバッファ104によっ
て制御される。周辺ポート24から出力されるこれらの制
御ラインには、周辺ポート24を通じたデータの流れ方向
を指定するラインR/W-が含まれる。例えば、外部のメモ
リ装置は、その入/出力端子をラインDnへ接続し、その
アドレス端子をラインAnへ接続することによりデータメ
モリとして機能し得る。マイクロコンピュータ10の周辺
ポート24は、所望のアドレスライン、例えばデータバス
30のアドレスライン30bをラインAnに接続し、ラインR/W
-を高論理状態に駆動し、外部メモリ装置がデータバス3
0のアドレスライン30b上に指定されたロケーションで読
み取られるべきことを指示することによって、そのよう
な外部メモリのメモリ読取を行える。逆に、ラインR/W-
上の高論理状態は、外部のメモリ装置がマルチプレクサ
100を介してラインPnに接続されたデータライン30d上に
存在するデータ状態で書き込まれるべきことを指示す
る。
周辺ポート24に接続された制御ラインはさらに、コン
トローラ14に応じバッファ104によって駆動されるライ
ンSTRB-(ラインR/W-と同じく“−”の表示はアクティ
ブローを示す)を含み、これは場合に応じ、ラインAn
接続された一組のアドレスライン30a、30b、34aまたは3
8aの何れが有効なアドレス信号をアドレスメモリに与え
ているかを指示するクロック信号である。ラインHOLD-
とRDY-は、外部装置からマイクロコンピュータ10への入
力である。アクティブローのラインHOLD-は周辺ポート2
4によってそのラインDn、An、R/W-及びSTRB-へのインタ
フェースを高インピーダンス状態に置き、かかるライン
に接続された複数の装置がコンピュータ10からの干渉ま
たそれへの干渉を生じることなく相互間で交信可能であ
る。ライン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は主
に、外部入/出力装置との交信で使われる。従って第3
図に示すように、周辺ポート26は周辺ポート24内の同様
の構成要素と対応したマルチプレクサ108と110、及びバ
ッファ112を有する。同じく、周辺ポート26はデータバ
ス30、プログラムバス34及びDMAバス38を、周辺ポート2
4での同様に表示されたラインと同じ機能をそれぞれ有
するライン I/ODn、I/OAn、I/ORDY-、 I/OSTRB-、I/OHOLD-、 I/OHOLDA-及びI/OR/W-にインタフェースする。尚、複数
のバス30、34及び38が周辺ポート24と26にそれぞれ接続
されているため、周辺ポート24と26は同時に動作可能で
ある。
次に第4図を参照して、コントローラ14の構造と動作
を詳しく説明する。コントローラ14は、命令コードによ
って指定された所望の動作が正しく実行されるように、
マイクロコンピュータ10の残部の動作を制御する目的を
果たす。
コントローラ14は、マイクロコンピュータ10の外部か
ら与えられるクロック信号を受信する。コントローラ14
内のクロック発生器200が端子X1とX2に接続され、マイ
クロコンピュータ10内で使われる内部クロック信号、例
えばラインCLKIN上にシステムクロックを発生する。ク
リスタルが両端子X1とX2間に接続されている場合には、
クロック発生器200が内部発振器によってラインCLKIN上
にシステムクロック信号を発生する。あるいは、外部発
生クロックを端子X2に加えてもよく、この場合には外部
発生クロック信号が(必要ならクロック発生器200内の
n分割器−不図示−を介して)ラインCLKIN上にシステ
ムクロック信号を発生する。クロック発生器200は更
に、ラインCLKIN上に発生されるクロック信号の周期の
第1及び第3クォータ(1/4)サイクルで生じるクロッ
ク信号Q1とQ2も発生し、これらのクロック信号Q1とQ2は
後述するようにコントローラ14内のメモリアクセス仲裁
ロジック206によって使われる。
命令コードのフェッチ及びかかる命令コードに応じた
マイクロコンピュータ10の制御に関連して、コントロー
ラ14はプログラムカウンタ(PC)92、命令レジスタ(I
R)94、制御ロジック202、及びプログラムカウンタ制御
ロジック204を含む。プログラムカウンタ92は24ビット
のビットレジスタで、プログラムバス34のアドレスライ
ン34aに接続された出力を有する。プログラムカウンタ9
2の機能は、マイクロコンピュータ10によってフェッ
チ、デコード及び実行されるべき次の命令のメモリアド
レスを記憶することにある。命令フェッチサイクル(ラ
インCLKIN上のシステムクロック信号の一周期中に生じ
る)中に、プログラムカウンタ92の内容がプログラムバ
ス34のアドレスライン34a上に置かれ、アドレス信号に
対応したメモリロケーションを含むメモリ16、18、20の
一つ(または外部メモリ)が、アドレスされた内容をプ
ログラムバス34のデータライン34d上に与える。このと
きプログラムカウンタ92内に含まれたアドレスを有する
メモリロケーションの内容が、デコードされるべき次の
命令の命令コードを構成する。命令レジスタ94は32ビッ
トのレジスタで、プログラムバス34のデータライン34d
に接続され、フェッチサイクル中プログラムカウンタ92
の内容を受け取る。
ラインCLKIN上のシステムクロック信号のフェッチサ
イクルに続く次の周期で生じるデコードサイクル中に、
命令レジスタ94の内容が制御ロジック202によってデコ
ードされ、コントローラ14から出る制御信号をマイクロ
コンピュータ10の機能回路に発生する。これを達成する
ため、制御ロジック202の第1部分は、命令コードをデ
コードする組合せロジックを含む。このような組合せロ
ジック(第4図にロジック202aとして示す)は、プログ
ラマブル論理アレイや読出専用メモリ等周知のさまざま
な方法で実現できる。つまり、命令レジスタ94からの命
令コードは、組合せロジック202aによってデコードされ
複数の出力ラインに導かれる。これら出力ラインの一部
は、プログラムカウンタ制御ロジック242等制御ロジッ
ク202外部の機能に直接接続される一方、他の出力ライ
ンは制御ロジック202内の逐次ロジック202b内に入力さ
れる。逐次ロジック202bはマイクロコンピュータ10の各
種機能を制御するように動作し、CPU12によるメモリか
らのデータオペランドの読出を可能にすると共に、CPU1
2から該オペランドに加えられるデータ処理動作の実行
を制御する。逐次ロジック202bは勿論これらを、そこか
ら出ていく追加の出力ラインを介して達成する。つま
り、組合せロジック202aまたは逐次ロジック202bいずれ
にせよ制御ロジック202からの出力ラインの論理状態
は、命令レジスタ94から制御ロジック202によって受信
された命令コードによって決まる。尚、こゝで参照する
図面は見易くするため、コントローラ14とかかる機能回
路間における制御ラインの接続を示してない。
従って、制御ロジック202内の組合せロジック202aが
命令レジスタ94に記憶された命令コードをデコードして
いる間に、コントローラ14がメモリから次の命令をフェ
ッチ可能であることが明らかであろう。さらに当該分野
で周知のごとく、逐次ロジック202bは前にフェッチされ
た命令の実行を制御すると同時に、ある命令に関するオ
ペランドの読出を制御するように動作可能である。従っ
て制御ロジック202は、4つの異なる命令コードの各部
分が同時に実行可能な方法でマイクロコンピュータ10を
制御できる。このような命令コードの“パイプライン”
は、あるシーケンスの命令を実行するのに必要な時間を
明らかに減少する。
第4a図は、パイプラインがいかに満たされるか、従っ
てパイプラインがいかに一般の命令に対して動作するか
を示している。ラインCLKIN上のシステムクロック信号
の第1サイクルでは命令nが例えばメモリ16、18、20の
一つからコントローラ14によってフェッチされる。しか
しこのフェッチサイクル中、プログラムカウンタ制御ロ
ジック204はプログラムカウンタ92の内容をインクレメ
ントし、命令n+1のための命令コードのメモリロケー
ションをそこに入れている。ラインHLKIN上のシステム
クロック信号の第2サイクルでは、命令nのための命令
コードが制御ロジック202によってデコードされる。同
時にこの第2サイクル中、プログラムカウンタ92の内容
がプログラムバス34のアドレスライン34aに与えられ、
命令n+1のための命令コードがプログラムメモリから
フェッチされて命令レジスタ94にロードされる。
第4a図に示した第3のシステムクロックサイクルで
は、逐次ロジック202bが命令nに必要なデータオペラン
ドを、データバス30を介してメモリ(例えばRAM16)か
ら読み取る。さらに、命令n+1のための命令コードが
フェッチされているので、第4a図の第3サイクルでは図
示のように、命令n+1が制御ロジック202の組合せロ
ジック202aでデコードされている。また命令n用の読取
サイクルと同時に、命令n+2のための命令コードがフ
ェッチされる。但し、命令n用の読取サイクルとバスま
たはメモリ衝突を生じていものとする。前述したよう
に、一般にデータオペランドはデータバス30を介しCPU1
2によって読み取られる一方、命令コードはプログラム
バス34を介して読み取られ、両方が異なるメモリ16、1
8、20内にあるか、または一方が外部メモリ内にあると
すれば、バス衝突は生じない。
システムクロックの第4サイクルでは、命令nが制御
ロジック202内の逐次ロジック202bの制御下で実行さ
れ、命令n+1用の読取動作が逐次ロジック202bによっ
て行われ、命令n+2のための命令コードがデコードさ
れ、命令n+3のための命令コードがフェッチされる。
従って、マイクロコンピュータ10のパイプラインが満た
され、命令シーケンスの性能が最適となる。但し、一部
の命令組合せでは、バス衝突及びメモリアクセス衝突に
よって、動作の一つの待ちサイクルが生じる。
データバス30のデータライン30dはコントローラ14に
導かれ、プログラムカウンタ92がCPU12によってまたは
メモリからロードされることを要求する分岐命令等、イ
ンクレメント方式以外でプログラムの流れを制御する。
例えば、無条件分岐の場合、命令コード、メモリからの
読取、またはCPU12内のレジスタからの読取に含まれる
オペランドの値は、実行すべき次の命令コードを含むメ
モリロケーションのアドレスを含み得る。そして、プロ
グラムカウンタ制御ロジック204がデータライン30d上に
与えられた値を受け取ってプログラムカウンタ92にロー
ドし、プログラム制御が所望のロケーションに対してな
されるようにする。
第4図に示すように、プログラムカウンタ制御ロジッ
ク204は、プログラムカウンタ92の内容を受け取る加算
器203を含む。制御ロジック202(好ましくはその組合せ
ロジック202a)が加算器203を制御し、次にサイクルの
ためのプログラムカウンタ92の内容発生がさまざまな方
法で行えるようにする。前述のごとく、加算器203はプ
ログラムカウンタ92の前の内容をインクレメントし、明
細シーケンスのステップを進めるだけである。しかし、
プログラムカウンタ制御ロジック204は更に、データバ
ス30のデータライン30dから値を受取可能なレジスタ205
を含んでいる。従ってプログラムカウンタ制御ロジック
204は、さまざまな方法でプログラムカウンタ92の内容
を計算できる。例えば、(プログラムカウンタ92に対す
る)相対アドレスへの分岐は、データバス30のデータラ
イン30d上に与えられた値をレジスタ205へロードするこ
とによって得られ、この値がプログラムカウンタ92の前
の内容に加えられて、プログラムカウンタ92用の新たな
値を発生する。また、データバス30のデータライン30d
からの所望メモリアドレスをレジスタ205にロードし、
制御ロジック202により加算器203でレジスタ205の内容
と“ゼロ加算”を行いそれをプログラムカウンタに与え
ることによって、絶対分岐を行うこともできる。
尚、分岐命令がその実際の発生より3命令前にフェッ
チされるように、マイクロコンピュータ10は“遅延”分
岐命令を発することができる。遅延分岐命令が実行され
ると、分岐の宛先メモリアドレスが間接分岐としてレジ
スタ205にロードされる。しかし制御ロジック204は、遅
延分岐命令の実行に続く次の3命令の間、プログラムカ
ウンタ92の内容をインクレメントし続ける。第3番目の
命令にくると、加算器203がレジスタ205の内容をプログ
ラムカウンタ92に与え、パイプライン方式の利点を維持
しながら分岐を行う。勿論、宛先ロケーションはそれま
でと同様加算器203によってインクレメントされ続ける
ので、分岐後もパイプラインは満たされている。
コントローラ14は更に割込ロジック250を含み、これ
はマイクロコンピュータ10の複数の外部端子、コントロ
ーラ14、及びマイクロコンピュータ10内の各種機能に接
続されている。割込ロジック250は、RESET端子及び端子
INT0〜INT3を経てマイクロコンピュータ10に与えられる
割込信号を受信すると共に、直列ポート42やDMAコント
ローラ22等各種の機能からマイクロコンピュータの内部
で発生される割込信号を受信する目的を果たす。このよ
うな割込信号の一例は第4図中、DMAコントローラ22か
らの割込信号であるライン312によって示してある。CPU
12内には制御レジスタとして、メモリマップ式のアドレ
ス可能レジスタである割込許可レジスタ252が含まれ、
その内容が各々の割込信号が許可または禁止されるかを
指定する。端子INT0〜INT3あるいはマイクロコンピュー
タ10内部からの割込許可信号に応じ、入/出力メモリロ
ケーションへのアクセスが現在行われていないことをコ
ントローラ14が指示すれば、割込ロジック250が特定の
割込信号に対応したメモリアドレス(割込ベクトル)を
プログラムカウンタ92にロードし、プログラムの実行が
割込ベクトルのロケーションから先へと継続する。割込
ベクトルと呼ばれる割込処理ルーチンに一般に含まれた
命令コードに応答して、割込ロジック250が割込アクノ
レジ信号を外部割込の場合にはラインINTAに、またDMA
コントローラ22用の内部割込信号の場合に例えばライン
314上に発生する。かかる動作の関連分野で周知のよう
に、コントローラ14はプログラムカウンタ92の前の内容
を(一般に“スタック”と呼ばれる)所定のメモリロケ
ーションに記憶し、割込の処理後、次にフェッチすべき
命令コードのロケーションが再ロードされる。
第1及び2図から、バス30、34、38のうち2つが同一
メモリ16、18または20へ同時にアクセスするか、あるい
は(周辺ポート24または26を介して)外部メモリへ同時
にアクセスしない限り、マイクロコンピュータ10内部の
複数のバスがメモリ16、18及び20へ同時アクセス可能な
ことが明らかであろう。この場合には、コントローラ14
によってバス仲裁を行う必要がなく、メモリアクセスは
独立に生じ得る。
しかし、実行される命令コードに応じ、同時アクセス
が要求されることもある。従って、メモリアクセスに関
連したバス衝突を防ぐため、コントローラ14は更にメモ
リ仲裁ロジック206を含んでいる。メモリ仲裁ロジック2
06はクロック発生器200からクロック信号Q1とQ2を受信
し、またバス30、34及び38の各アドレスライン上のアド
レス信号も受信する。メモリ仲裁ロジック206はメモリ1
6、18及び20の各々にそれぞれ至るラインSEL16、SE
L18、SEL20に出力信号を与え、更に周辺ポート24と26に
それぞれ至るラインSEL24とSEL26上にも信号を発生す
る。メモリ仲裁ロジック206の目的は、メモリ16、18及
び20並びに外部及び入/出力メモリへのアクセスを所定
の優先順位に従って制御することにある。
以下に示す例の目的上、優先順位はデータバス30のア
ドレスライン30aと30bが最高優先順位を持ち、その後に
プログラムバス34のアドレスライン34aが続き、DMAバス
38のアドレスライン38aが最下の優先順位を持つものと
する。この優先順位はマイクロコンピュータ10、特にCP
U12の構造によって選ばれる。乗算器46とALU48の並列接
続は、マイクロコンピュータ10をデジタル信号処理の用
途に応用した場合に、命令フェッチのためデータ交信が
持たなければならなくなると、その逆よりも著しく性能
が影響される可能性が強いことを意味する。DMA動作を
最下の優先順位としたのは、DMA動作が他の動作より遅
くなることで及ぼされるほとんどのアプリケーションプ
ログラムに対する性能全体の影響が最小となるからであ
る。但し、本発明の他の応用では、優先順位を変えた方
がより良好に動作することもある。例えば、グラフィッ
ク用途の場合、ビデオ表示のリフレッシュ機能を与える
のに使われるのであれば、DMAは最高レベルに順位付け
するのが最良である。従って、ここでの説明による順位
付けは例示にすぎない。
次に第5図を参照すると、コントローラ14内のメモリ
仲裁ロジック206による一つのメモリポート32aの制御が
例示してある。第1図に関連して前述したように、各メ
モリポート32aはそれぞれ一組のデータバス30のアドレ
スライン30aと30b、プログラムバス34のアドレスライン
34a、及びDMAバス38のアドレスライン38aからアドレス
信号を受信するように接続されている。第5図に示した
ようにメモリポート32aは、その入力で上記アドレス信
号を受信し、コントローラ14からの信号に応じて各組の
アドレスラインのうち選択された一つを付設メモリ16、
18または20のデコーダ33に接続することで、主にマルチ
プレクサの機能を果たす。
第5図は、コントローラ14内のメモリ仲裁ロジック20
6のうち、一対のポート32aと32dを制御する部分の論理
概略図で、第5図に示したポート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〜000FFFROM20 001000〜7FFFFF外部メモリ 800000〜800FFFI/O&その他のメモリマップ式
レジスタ 801000〜8013FFRAM16 801400〜8017FFRAM18 801800〜FFFFFF外部メモリ 前述したように、I/O及びメモリマップ式レジスタを
参照するとメモリアドレススペースは周辺ポート26(後
述するように周辺バス28を介してアドレス可能なレジス
タ、更にDMAコントローラ22、タイマ40、直列ポート34
及びフォーマット変換器24内のレジスタを含む)と関連
する一方、外部メモリへのアクセスは一般に周辺ポート
24を介して処理される。
メモリ仲裁ロジック206内にはデコーダ102a〜102dが
存在し、これらのデコーダが各組のアドレスライン30
a、30b、34a及び38aのうち対応した一つについて、対応
アドレスライン上の指定さたアドレス値が制御されるべ
きメモリ16、18及び20のある一つの範囲内の値を有する
かどうかを判定するのに充分な数のアドレスラインをデ
コードする。例示の目的上、第5図に示した一つのポー
ト32aはRAM16に対応し、従って第5図のポート32aは各
組のアドレスライン30a、30b、34aまたは38aの一つ上の
801000hと8013FFhの間にあるアドレス値と応答すべきも
のとする。尚、勿論当業者であれば、アドレスラインの
下位10桁の“考慮に入れない(don't care)値をうまく
利用するように、デコーダ120a〜120dを設計可能であろ
う。各デコーダ120の出力は第5図の例において、そこ
に接続されたアドレスラインが範囲801000h〜80133FFh
内にあるとき論理“1"である。デコーダ120a〜120dから
の出力ラインはそれぞれM30A、M30B、M34A及びM38Aで、
アドレスとRAM16に対応したメモリアドレススペースと
の間の一致の存否を表わす。
前述したように、コントローラ14のクロック発生器20
0が、ポート32aの制御で使われる2つのクロック信号Q1
とQ2を発生する。また前記のごとく、マイクロコンピュ
ータ10用のシステムクロックはラインCLKIN上のクロッ
ク信号と対応している。クロック信号Q1とQ2は各々、ラ
インCLKIN上のシステムクロックの位相と対応してい
る。クロック信号Q1はシステムクロックの第1クォータ
(1/4)サイクルの間“1"で、クロック信号Q2はシステ
ムクロックの第3クォーク(1/4)サイクルの間“1"で
ある。第5図に示したメモリ仲裁ロジック206は、各組
のアドレスライン30aと30b上のアドレス信号を相互に時
間多重化するためにこれら2つのクロック信号Q1とQ2を
用いる。第5図に示した信号M30AはANDゲート122aの第
1入力に接続される一方、クロック信号Q1がANDゲート1
22aの第2入力に接続されている。従ってANDゲート122a
の出力は、システムクロックの第1クォータサイクル中
にデータバス30のアドレスライン30a上に与えられるア
ドレスが(図示の例においては)RAM16のメモリスペー
ス内にあるときのみ“1"となる。ANDゲート122aの出力
はポート32aに接続され、SEL30Aで表わしてある。ポー
ト32aは、“1"の論理状態のラインSEL30Aに応答して、
データバス30のアドレスライン30aを選びRAM16のデコー
ダ33に与える。これに対しラインSEL30Bは、デコーダ12
0bの出力とクロック信号Q2の論理ANDを出力するANDゲー
ト122bの出力に接続されている。従ってポート32aは、
システムクロックの第3クォータサイクル中にアドレス
ライン30b上の値が801000hと8013FFhの間にあるときの
み、アドレスライン30bを選んRAM16のデコーダ33に与え
る。このため上記の説明及び第5図から、特に第5図に
示したようにコントローラ14で実施される一サイクル内
に2つのアドレスを時間多重化しているので、データバ
ス30の各組のアドレスライン30aと30bがあるサイクル中
に同一のメモリ16、18、20(または外部メモリ)に差し
向けられる衝突を決して生じないことが明らかであろ
う。また、バス34と38上のアドレス値はコントローラ14
によってラインSEL30AとSEL30B上における論理状態“1"
の発生と見なされないから、各組のアドレスライン30a
と30b上のアドレスはプログラムバス34及びDMAバス38の
アドレスラインに対して最高の優先順位にあることも明
らかであろう。
このようなプログラムバス34のアドレスライン30a及
びDMAバス38のアドレスライン38aに対する優先順位の制
御は、コントローラ14によって行われる。プログラムバ
ス34のアドレスライン34aをその入力で受け取るデコー
ダ120cは、前記デコーダ120aと120bと同じく、アドレス
値が801000hと8013FFhの間にあるとラインM34A上には論
理状態“1"を発生する。ラインM34AはANDゲート124aと1
24b各々の一入力に接続され、該各ANDゲートはその3入
力の論理ANDに対応した信号を出力に発生する。ANDゲー
ト124aの第2入力はクロック信号Q1に接続され、ANDゲ
ート124aの第3反転入力はラインM30Aに接続されてい
る。従って、ANDゲート124aの出力は、データバス30の
アドレスライン30aのアドレス値がRAM16のメモリロケー
ションと対応しない場合及びその場合にのみ、システム
クロックの第1クォータサイクルの間(この例では)RA
M16内のメモリロケーションに応じたアドレスライン34a
上のアドレス値に対応する論理状態“1"となる。この論
理状態“1"はORゲート126を介してラインSEL34からポー
ト32aに加えられ、プログラムバス34のアドレスライン3
4aが選ばれてRAM16に加えられるべきことを指示する。
ラインM30Bが低く(つまりアドレスライン30b上のアド
レスがRAM16用のメモリアドレス外のメモリロケーショ
ンに対応する)の間、アドレスライン30aのポート32aに
よるRAM16への印加がANDゲート124bによって同様に可能
となる。
DMAバス38のアドレスライン38aのポート32aによる選
択は、ラインSEL38上の論理状態“1"よって可能とな
る。ラインSEL34上の論理状態“1"と同じく、ラインSEL
38上の論理状態“1"はデコーダ120d(ライン38aのアド
レス値がRAM16のアドレススペース内にあるときに論理
状態“1"となるラインM38Aをその出力に有する)、AND
ゲート128aと128b、及びORゲート130を介して発生され
る。但し、ANDゲート128aと128bは各々、デコーダ120c
の出力からのラインM34Aに接続された第4の反転入力を
有する。つまり、ラインSEL38上に論理状態“1"を発生
するためには、データバスのアドレスライン30a(また
は現在のクォータサイクルに応じて30b)上のアドレス
値とアドレスライン30a上のアドレス値が共に(この例
ではRAM16のメモリロケーションと対応しなければなら
ないので、DMAバス38のアドレスライン38aの選択はプロ
グラムバス34のアドレスライン34aよりさらに低い優先
順位にある。
第5図に示すように、ポート32dも同じくラインSEL16
(つまりラインSEL30A、SEL30B、SEL34及びSEL38)によ
って動作可能で、データバス30、34または38の正しいデ
ータラインを選んで対応したメモリ(この例ではRAM1
6)に接続させる。データライン30dはデータバス30のア
ドレスライン30aとアドレスライン30bの両方によってア
クセスされるので、データバス30のデータライン30dを
選択するためにSEL30AとSEL30BのORがとられる。また、
アドレスライン30a、30b、34a、38aの何れも対応するメ
モリのアドレススペース内にない場合には、ポート32a
と32dが各々トリステートとされる。これによって、対
応するメモリが選択されないときデータライン30d、34d
または38dと干渉するのを防ぐ。
第1及び4図に示したように、コントローラ14内のメ
モリ仲裁ロジック206はSEL18とSEL20を介してそれぞれ
メモリ18と20のポート32aと32bに選択出力を発生する。
更にメモリ仲裁ロジック206は、第5図に関連して前述
したのと同様な方法で、ラインSEL24とSEL26を介して周
辺ポート24と26にそれぞれ選択出力を与える。周辺ポー
ト24と26内では、第3図のマルチプレクサ100、102、10
6及び108が上記アドレスライン30a、30b、34a及び38a上
のアドレス値に応じ、同じ優先順位方式に基づいて動作
可能とされる。
各種メモリ装置用の読取及び書込動作の制御は、第4
図に示したコントローラ14の論理ロジック202内の逐次
ロジック202bからの制御出力の一部によって達成され
る。この機能はコントローラ14で実行されるその他の制
御機能と同じく、コントローラ14によって受信及びデコ
ードされる命令コードに応じて生じる。
次に第5a図を参照すれば、本発明の並列及び二重アク
セス特徴を例示するために、一連のメモリアクセスのタ
イミングと優先順位付けが示してある。第5a図の最上ラ
インは、ラインCLKIN上のシステムクロック信号の動作
を示し、各サイクルは以下の説明に相関してそれぞれ番
号付けある。クロック信号Q1とQ2は前述のごとく発生さ
れ、クロック信号Q1はシステムクロック周期の第1クォ
ータサイクル中アクティブとなり、クロック信号Q2はシ
ステムクロック周期の第3クォータサイクル中アクティ
ブとなる。分り易くするため、第5a図に示した例は全て
各種メモリに対する読取アクセスである。尚、RAM16と1
8及び外部メモリへの書込アクセスは、第5a図に示した
読取アクセスと同じ方法で優先順位付け及び許可され、
メモリが対応したデータラインの値で書込に応答する点
だけが異なる。
第5a図に示したシステムクロックCLKINの第1サイク
ルでは、アドレスライン30aがRAM16内のメモリロケーシ
ョンに対応したアドレス値i1を伝送しており、同じくア
ドレスライン30bがROM20内のメモリロケーションに対応
したアドレス値j1を伝送している。システムクロックCL
KINの第1クォータサイクルでアクティブなクロック信
号Q1に応じて、ROM16がデータバス30のデータライン30d
上にメモリロケーションi1の内容を与える。更にシステ
ムクロックCLKINの第3クォータサイクルでアクティブ
なクロック信号Q2に応じて、ROM20がデータバス30のデ
ータライン30d上にメモリロケーションj1の内容を与え
る。勿論、アドレスライン30aと30bは異なるメモリを参
照しているので、両者間で衝突は生じない。
また第5a図に示したシステムクロックCLKINの第1サ
イクルの間に、プログラムバス34のアドレスライン34a
も、ROM20内のメモリロケーションに対応したアドレス
値klを伝送している。データバス30のアドレスライン30
bの方がプログラムバス34のアドレスライン34aより高い
優先順位を持つので、アドレスライン30bがROM20にアク
セス許可されROM20はアドレスライン34aに応答しない。
従って、他のメモリはアドレス値k1によってアクセスさ
れていず、RAM16がアドレスライン30aと30bによってア
クセスされているから、プログラムバス34のデータライ
ン34dは高インピーダンス状態に留まる。同じく第1サ
イクルの間には、DMAバス38のアドレスライン38aがRAM1
6内のメモリロケーションに対応したアドレス値l1を伝
送している。しかしアドレスライン38aはデータバス30
のアドレスライン30aより優先順位が低いので、DMAバス
38のデータライン38dも高インピーダンス状態に留ま
る。バス30、34及び38のうち2つから単一メモリ装置へ
のアクセス試みで衝突が生じているため、コントローラ
14は制御ロジック202を介して低優先順位バスの所望な
メモリアドレスを与え続けており、従ってそのメモリへ
のアクセスが許容されるや否や、プログラムの実行がア
クセスを否定されていたバス34、38の一方について同じ
時点から再び始まる。
第5a図に示した第2サイクルでは、アドレスライン30
aと30bがRAM18にそれぞれアドレス値i2とj2を与える。
従って第1サイクルと同様、データライン30dにはクロ
ック信号Q1とQ2に応じてメモリロケーションi2とj2の内
容が与えられる。異なる組のアドレスライン30aと30bが
第5図に関連して説明したごとく、システムクロック周
期内の異なる時点でRAM16を与えられるようにコントロ
ーラ14の動作によって制御されているため、共にRAM16
を参照しているアドレスライン30aと30b間での衝突は生
じない。プログラムバス34のアドレスライン34aは、ROM
20内のメモリロケーションに対応したアドレス値k1を伝
送し続けている。アドレスライン30aと30bはRAM16にア
クセスしているので、プログラムバス34はROM20へのア
クセスが許可され、クロック信号Q1に応じてROM20内の
メモリロケーションk1の内容がプログラムバス34のデー
タライン34d上に与えられる。また第5a図に示した第2
サイクルの間、DMAバス38のアドレスライン38aは、RAM1
6内のメモリロケーションに対応したアドレス値l1を伝
送し続けている。データバス30とプログラムバス34どち
らもRAM16へアクセス許可されていないので、RAM16はク
ロック信号Q1に応じメモリロケーションl2の内容をDMA
バス38のデータライン38d上に与える。従って、本発明
に従って構成されたマイクロコンピュータ10は、3種の
異なるメモリロケーションへの3つの並列アクセスを周
時に発生なことが明らかであろう。データバス30の各組
のアドレスライン30aと30bにおけるサイクル内多重化を
考慮に入れれば、1つのシステムクロックサイクル内で
の4つのメモリアクセスも実施可能となる。
第5a図に示したシステムクロックCLKINの第3サイク
ルは、データバス30のアドレスライン30aがDMAバス38の
アドレスライン38aに対して優先性を持つ効果を示して
いる。クロック信号Q1がアクティブのとき、アドレスラ
イン30aとアドレスライン38aは共にRAM18のアドレスス
ペース内のアドレス値(それぞれ値i3とi2)を伝送して
いる。従って、データバス30の方がDMAバス38より優先
してRAM18にアクセス許可される;つまりデータバスの
データライン30dにメモリロケーションi3の内容が与え
られる一方、DMAバス38のデータライン38dは高いインピ
ーダンス状態となる。しかし、クロック信号Q2がアクテ
ィブになると、データバス30のアドレスライン30aはク
ロック信号Q1に応じてのみアクセス許可されるので、DM
Aバス30のアドレスライン30aがRAM18にアクセス許可さ
れる。アドレスライン30bはRAM16内のメモリロケーショ
ンに対応したアドレス値j3を伝送しているから、アドレ
スライン38aがRAMにアクセスし、データライン38dには
クロック信号Q2に応じてRAM18のメモリロケーションl2
の内容が与えられる。
第5a図に示した第4サイクルでは、アドレスライン34
aがRAM18内のメモリロケーションに対応したアドレス値
k3を伝送し、同じくアドレスライン38aもRAM18内のメモ
リロケーションに対応したアドレス値l3を伝送してい
る。前述したように、プログラムバス34の方がDMAバス3
8に優先して許可される。従って、クロック信号Q1に応
じRAM18内のメモリロケーションk3の内容がプログラム
バス34のデータライン34dに与えられる一方、DMAバス38
のデータライン38dは高インピーダンス状態となる。第5
a図に示した第5サイクルは、外部メモリがそこのメモ
リロケーションに対応したアドレス値k5を伝送している
アドレスライン34aによってアクセス可能なことを例示
している。プログラムバスによる外部メモリのアクセス
のため、DMAバス38とデータバス30は同時にアクティブ
となる。前述したように、外部メモリへのアクセスは周
辺ポート24を介して生じ、また後述するように、DMA動
作の間周辺ポート26の動作は禁止される。
更に、アドレス及びデータ情報の出所と前記バス30、
34及び38によって捜されるデータの宛先は、第5及び5a
図に関連した上記の説明では指定されてないことに留意
されたい。しかし前述したように、命令コードのデコー
ド及び実行におけるコントローラ14の主な機能の一つ
は、どの2つの機能ブロック(例えば周辺ポート24とCP
U12)が同一バス(例えばデータバス30)の制御を試み
ないように、マイクロコンピュータ10の各種機能ブロッ
クを制御することにある。メモリ16、18及び20(または
外部メモリ)と反対側のバス端におけるこのようなバス
制御及び仲裁は、当該分野で周知な方法でコントローラ
14によって行われ、現在入手可能な多くの汎用及び専用
マイクロプロセッサとマイクロコンピュータで実施し得
る。
従って上記の説明から、マイクロコンピュータ10の単
一アドレススペース内で各種のメモリ利用の組合せが可
能なことが明らかであろう。この点は、3つのバス30、
34及び38の各々による各種メモリエンティティ(つまり
RAM16、RAM18、ROM20及び外部メモリ)の各々へのアク
セス可能性によって可能となる。従って、コントローラ
14がプログラムバス34を介して命令コードにアドレスし
それを受け取る一方、このようなアドレスは、データバ
ス30を用いCPU12によってアクセス可能なデータメモリ
を含め、RAM16内に存在し得る。従ってこの編成は、単
一のメモリ(例えばRAM16)をプログラム及びデータ両
メモリとして用いることでノイマン型構成のマイクロコ
ンピュータ10への応用を可能とし、この動作を行うのに
RAM16内を区分する必要がない。しかしマイクロコンピ
ュータ10は、例えばROM20内にプログラムメモリを記憶
し、RAM16内にデータメモリを記憶することによってハ
ーバード型構成でも使える。そしてCPU12がデータオペ
ランドをRAM16にアクセスするのと同時にコントローラ1
4が命令コードをROM20にアクセスし、メモリを区分する
見返りとしてハーバード型マシンの性能向上を達成でき
る。さらに、マイクロコンピュータ10は2重のアクセス
特徴を備えているから、RAM16等単一のメモリを使うこ
とにより、ノイマン型とハーバード型両方の構成で幾つ
かの利点を達成可能である。つまり、2重のアクセス特
徴は、データバス30で時間多重化特徴を使えるため、同
一のメモリに対しても1つのシステムクロックサイクル
内で2回のアクセスを可能とする。これが同一の物理メ
モリスペースをデータ及びプログラム両メモリのために
使用可能としつつ、2つの別々なメモリという性能上の
利点を達成可能としている。また、マイクロコンピュー
タ10は2つの構成に編成可能な他、一部のタスクをノイ
マン方式で実行し、他の一部のタスクをハーバード方式
で実行するように動的に再編成可能なことも明らかであ
ろう。従って、本発明に従って構成されたマイクロコン
ピュータ10は、所望の用途に基づいてユーザがマイクロ
コンピュータ10を最適化するのを可能とする。
次に第6a〜6d図を参照して、命令の実行におけるCPU1
2の動作を詳しく説明する。ここで説明する例示の命令
は並列の乗算と加算で、このような命令はデジタル信号
処理の用途で反復して使われ、マイクロコンピュータ10
がその実行のために専用に設計される命令の一例であ
る。また、並列の乗算及び加算命令は、本発明に従って
構成されたマイクロコンピュータ10の好ましい実施例に
おけるCPU12の主要特徴を例示するものでもある。ここ
で説明する例の目的上、命令コードはROM20内に存在
し、データオペランドはRAM16内に存在すると仮定する
が、勿論マイクロコンピュータ10は前述のごとく、命令
コードとデータオペランドが共に同一のメモリブロック
内に存在するようにしたり、あるいはその他任意の構成
とし得る。ここで説明する命令の乗算は、間接的後変位
加算及び変更アドレシングモード(第1表参照)を用い
補助レジスタ54aによってアドレスされたメモリロケー
ションの内容を、間接的後変位減算及び変更アドレシン
グモードを用い補助レジスタ54hによってアドレスされ
たメモリロケーションの内容と乗算し、その結果をデー
タレジスタ50a内に記憶するもので、使用した変位は1
つの値である。この乗算が、データレジスタ50aの内容
とデータレジスタ50eの内容との加算及びその和のデー
タレジスタ50e内への記憶と並列に行われる。
第6a図は、上記並列の乗算及び加算演算用命令コード
のフェッチサイクル時における、CPU12、コントローラ1
4、ROM20とRAM16、及び相互接続バス30と34の動作を示
している。第6a図中の太線矢印が、図示の動作中にアク
ティブな信号が移動する経路を示す。第6a図に示すよう
に、コントローラ14内のプログラムカウンタ92の内容が
プログラムバス34のアドレスライン34a上に与えられ
る。ROM20にアクセスするデータバス30との間に衝突は
生じないものとして、プログラムカウンタ92の内容に対
応したROM20内のメモリロケーションの内容がプログラ
ムバス34のデータライン34dに与えられ、命令レジスタ9
4内に記憶される。
第6b図は、並列の乗算及び加算のデコードサイクル時
におけるマイクロコンピュータ10の動作を示す。このサ
イクル中、コントローラ14は乗算のオペランド用メモリ
アドレスの発生を可能とする。従って、補助レジスタ54
aの内容が補助レジスタバス65aに与えられる一方、補助
レジスタ54hの内容が補助レジスタバス65bに与えられ
る。またコントローラ14はこの時点で、変位としての
“1"をARAU52aと52b両方に与える。
第6c図を参照すれば、ARAU52aと52bによる演算の結果
及び読取サイクルの実施が示してある。ARAU52aが補助
レジスタ54aの内容に変位を加算し、その和をデータバ
ス30のアドレスライン30aに与えると共に、インクレメ
ント値をバス67aを介して補助レジスタ54aに記憶し直
す。同じく、ARAU52bが補助レジスタ54hの内容から変位
を減算し、その差をデータバス30のアドレスライン30b
に与えると共に、デクノレメント値をバス67bを介して
補助レジスタ54hに記憶し直す。前述したように、デー
タバス30はメモリのアクセスに関してマイクロコンピュ
ータ10内で最高の優先順位を有する。このサイクル中、
ARAU52aと52bから発生されたメモリアドレスは、システ
ムクロック周期の第1及び第3クォータサイクルの間に
RAM16に与えられる。従って、対応したメモリロケーシ
ョンの各内容は、第5及び5a図に関連して前述したよう
に時間多重化された形でデータライン30d上に現われ
る。
読取サイクルの終りに、RAM16から読み取られた被乗
数がデータバスコントローラ56によってラッチされ保持
される。次に第6d図を参照すると、データバスコントロ
ーラ56が、読取サイクル中にデータバス30のライン30d
上に受け取られ且つARAU52aと52bから発生されたアドレ
スに対応するラッチ値を、CPUバス60aとCPUバス60bにそ
れぞれ接続する。この結果実行サイクル中、CPUバス60a
はARAU52aから発生されたメモリロケーションの内容を
乗算器46に与え、またCPUバス60bはARAU52bから発生さ
れたメモリロケーションの内容を乗算器46に与える。従
ってこのとき、デコードサイクル中にデコードされた命
令コードに応じ、マルチプレクサ64aと64bはコントロー
ラ14によって動作可能とされている。
第6d図は、ここで説明する並列の乗算及び加算演算用
の実行サイクルを示している。データレジスタ50aと50e
の内容がそれぞれレジスタバス62aと62bを介してALU48
に与えられる;つまりレジスタバス62aと62bがコントロ
ーラ14によって、それぞれマルチプレクサ64cと64dを介
しALU48の入力に接続される。実行サイクル中これらの
入力を受け取ると、ALU48は2つの値の加算を行い、そ
の和をデータレジスタ50e内に記憶する。また命令の実
行サイクル中、乗算器46はCPUバス60aと60bから与えら
れた両値を乗算し、その結果をデータレジスタ50a内に
記憶する。こうして、並列乗算−加算命令は、実行サイ
クルの終りで完了する。
かかる並列乗算−加算命令はそれ自体が、デジタル信
号処理の用途で必要な反復的乗算及び加算の演算で有用
な“パイプライン化”方式となっている。この命令で
は、データレジスタ50aが中間アキュムレータとして機
能し、データレジスタ50eが最終結果用のアキュムレー
タとして機能する。この点は、乗算と並列に加算が生じ
ていることから明らかであろう;つまり次の乗算がまだ
生じていないため、ALU48の加算で使われるデータレジ
スタ50a内の値は、前の乗算の結果である。次の並列乗
算−加算命令の実行サイクル中(あるいは勿論標準的な
加算命令中)、乗算器46による乗算の結果がデータレジ
スタ50a内に記憶され、データレジスタ50e内の累算結果
に加算される。従って、n回反復される並列乗算−加算
命令のマイクロコンピュータ10による実行は、乗算積の
累算が乗算と並列に生じない場合と比べ、システムクロ
ック周期のサイクル数がほぼn個少なくてよい。従って
CPU12の構造は、時にコントローラ14に関連して前述し
た命令のパイプライン化特徴と組合せて使われる場合
に、デジタル信号処理の性能を大巾に向上可能とする。
前述したように、例えば周辺ポート24に接続された外
部メモリ装置は、マイクロコンピュータ10によって実行
されるプログラム用の命令コードを記憶するのに使え
る。しかし、外部メモリのアクセス時間はメモリ16、18
及び20のアクセス時間よりかなり遅くなることがあるの
で、コントローラ14はプログラムカウンタ92の内容をプ
ログラムバス34のアドレスライン34a上に与えた後、命
令コードが外部メモリからプログラムバス34のデータラ
イン34d上に与えられ命令レジスタ94によって受け取ら
れるまで、1システムクロック周期の間フルに待たなけ
ればならない。実行されるある命令について、実行すべ
き次の命令コードが前の命令のアドレスに近いアドレス
を持つプログラムメモリ内のメモリロケーションにしば
しば位置することはよく知られている。このような次の
命令コードのプログラムメモリ内における近接は、計算
の反復的性質のため特にデジタル信号処理の用途でよく
生じる。この点は、第7図を参照して以下説明する命令
キャッシュ36等の命令キャッシュを用いることで有利に
利用できる。
第1図に関連して前述したように、命令キャッシュ36
はプログラムバス34のアドレスライン34aとデータライ
ン34dに接続されている。第7図に示すように命令キャ
ッシュ36は、2つの32ワードセグメント140aと140bに分
けて編成された64ワードのメモリ140を含む。命令キャ
ッシュ36は更にセグメントスタートレジスタ144aと144b
を含み、これらのレジスタは各々セグメント140aと140b
にそれぞれ記憶された命令コード用アドレスの所定数の
最上位ビットを記憶する。発明の好ましい実施例におい
て、アドレス信号は24ビット巾で、各セグメント140aと
140bは32(25)ビットを含んでいるため、セグメントス
タートレジスタ144aと144bによって記憶されるビット数
は19である。各々のセグメント140aと140b内に記憶され
た各32ワードにフラグビット142が付設され、フラグが
セットされているときは対応したワード内に命令コード
が存在することを示し、セットされていないときは対応
したワード内に命令コードが存在しないことを示す。MS
B比較器146がアドレスライン34aに接続され、アドレス
ライン34a上の最上位19ビットをセグメントレジスタ144
a及び144bの内容と比較する。LSBデコーダ148もアドレ
スライン34aに接続され、後述するようにアドレスライ
ン34aの最下位5ビットをデコードする。入/出力バッ
ファ150がデータライン34dと両セグメント140a、140b間
に接続され、命令キャッシュ36からプログラムバス34へ
の出力を制御する。命令キャッシュ36は更に古い使用順
(LRU)スタック152を含み、これはセグメントレジスタ
144aと144bをそれらが最も最近使われた順序に応じて指
す。
フェッチサイクルの動作時、フェッチすべき命令コー
ドのメモリアドレスがRAM16、18またはROM20内でなく外
部メモリ内に存在する場合には、MSB比較器146がプログ
ラムバス34のアドレスライン34a上のアドレス信号の最
上位19ビットを受け取り、それらをセグメントレジスタ
144a及び144bの内容と比較する。合致が認められると、
LSBデコーダ148がアドレスライン34a上のアドレス信号
の最下位5ビットをデコードし、アドレスライン34a上
の全アドレス信号のセグメント140a、または140b何れか
内における32ワードの一方に対応したフラグビット142
の一方を選択する。対応したフラグビット142がセット
されていれば、入/出力バッファ150が合致したセグメ
ント140aまたは140b内の対応したワードの内容をプログ
ラムバス34のデータライン34d上に与え、命令キャッシ
ュ36内に記憶された命令コードのアクセスが完了する。
さらに、合致したセグメントレジスタ144aまたは144bが
LRUスタック152のトップによって指され、合致しなかっ
たセグメントレジスタ144aまたは144bがLRUスタック152
のボトムによって指される。LRUスタック152のボトムに
よって指されているセグメントが両セグメント140aと14
0bのうち古い時点で使用された方で、後述するキャッシ
ュ“ミス”の場合に交換されセグメントとなる。
用途によっては、セグメント140a及び140b内のワード
の一部が命令コードでロードされていないことがある。
そのため、プログラムバス34のアドレスライン34a上の
最上位19ビットがセグメントレジスタ144a及び144bの一
方の内容と一致するが、セグメントの合致した一方140a
または140b内の最下位5ビットに対応したワードが命令
コードを含まない可能性が生じる。この場合には、対応
したワード用のフラグビット142がセットされていない
(すなわち論理状態“0"を有する)。これは勿論キャッ
シュ“ミス”で、対応したアドレスの命令コードが外部
メモリ内のアドレスされたメモリロケーションから読み
取られなければならない;つまり入/出力バッファ150
が命令コードをプログラムバス34のデータライン34dか
ら合致したセグメント140aまたは140b内の対応したワー
ド内にロードし、対応したフラグビット142が論理状態
“1"にセットされる。しかし、上位ビットがセグメント
レジスタ144a及び144bの一方と合致していたから、セグ
メントレジスタのうち合致する一方144aまたは144bがLR
Uスタック152のトップによって指され、セグメントレジ
スタの他方144aまたは144bがLRUスタック152のボトムに
よって指される。
プログラムバス34のアドレスライン34a上の最上位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がCPU12内に
含まれている。前記したのと別の方法で命令キャッシュ
の動作を制御する3つのビットが状態レジスタ71内に含
まれている。第1ビットはキャッシュクリアビットで、
これがセットされると全てのフラグビット142をリセッ
トし、命令キャッシュ36の内容をクリアする。状態レジ
スタ71内の第2の制御ビットはキャッシュエネーブルビ
ットで、これがセットされると命令キャッシュ36の動作
を可能とし;逆にセットされないと、アドレスライン34
aのアドレス値と関わりなく全くアクセスされないよう
に命令キャッシュ36が動作不能とされる。キャッシュエ
ネーブルビットがセットされてない期間中、セグメント
レジスタ144aと144bの内容、フラグビット142、及びセ
グメント140aと140b内のワードそのものは変更不可能で
ある。状態レジスタ71内の第3ビットは、キャッシュフ
リーズビットである。キャッシュフリーズビットがセッ
トされていると、キャッシュ“ヒット”の場合に命令キ
ャッシュ36からのフェッチだけが許される。しかしキャ
ッシュ“ミス”の場合には、フラグビット142、セグメ
ントレジスタ144aと144b、またはLRUスタック152の変更
は一切行われず、命令キャッシュ36に悪影響を及ぼさず
に外部メモリからの命令コードのフェッチが行われるだ
けである。
次に第8図を参照して、DMAコントローラ22の構造と
動作を説明する。周知なように、直接メモリアクセス動
作は中央処理装置(例えばCPU12)の干渉なく、記憶デ
ータのブロックを一つのメモリ領域を別のメモリ領域へ
移動するのに有用である。ここに説明するマイクロコン
ピュータ10では、外部メモリとオンチップメモリ16、18
間でデータのブロックを移動するのにも直接メモリアク
セスが有用である。第1及び8図に示すように、DMAコ
ントローラ22はDMAバス38と周辺バス28に接続され、デ
ータをPMAバス38上にデータを伝送すると共に、周辺バ
ス28から制御及び出所/宛先アドレス情報を受け取る。
尚、周辺バス28は前述したデータバス30、プログラム
バス34、及びDMAバス38と同じように、アドレス情報と
データをそれぞれ伝送するアドレスライン28aとデータ
ライン28dを含む。第1図に戻って参照すれば、周辺バ
ス28のアドレスライン28aとデータライン28dは周辺ポー
ト26の出力でそれぞれラインI/O AnとI/O Dnに直接接続
され、従ってそれらに対応することが明らかであろう。
従って、周辺バス28にアドレスを与えたりそれとデータ
を交信するためには、所望のアドレスが周辺ポート26に
よって処理されるアドレスに対応したマイクロコンピュ
ータ10のメモリアドレススペース内の値と対応しなけれ
ばならない。このため、以下に説明するDMAコントロー
ラ内のメモリマップドレジスタは、前記の第4表に示し
たメモリアドレススペース80000h〜800FFFh内にある。
DMAコントローラ22は制御レジスタ300、転送カウンタ
レジスタ302、宛先アドレスレジスタ304及び出所アドレ
スレジスタ306を含み、これらは各々周辺バス28のアド
レスライン28aとデータライン28dに接続され、マイクロ
コンピュータ10のメモリアドレススペースの特有なアド
レスロケーションにマップ配分されている。DMAコント
ローラ22は更に、DMAバス38のデータライン38dに接続さ
れたデータレジスタ308を含み、DMAバスのアドレスライ
ン38aは宛先アドレスレジスタ304と出所アドレスレジス
タ306に接続されている。制御ロジック310が制御レジス
タ300に接続され、制御レジスタ300内のビットの内容が
DMAコントローラ22の制御を行う。制御ロジック310はラ
インDECRを経て転送カウンタレジスタ302に信号を発生
し、ラインZEROを経て転送カウンタレジスタ302から信
号を受信する。また制御ロジック310はラインLOADとINC
/DECRを経て宛先アドレスレジスタ304と出所アドレスレ
ジスタ306にそれぞれ信号を与え、更にラインWRITEとST
OREを経てデータレジスタ308に信号を与える。所望のメ
モリ読取/書込動作を行うには、制御ロジック310がコ
ントローラ14に導かれる読取/書込信号を発生し、コン
トローラ14によるメモリアクセス制御に関連して前述し
たように、コントローラ14が必要な制御信号をメモリ1
6、18及び20と周辺ポート24及び26に発生可能である。
制御レジスタ300は11ビットのアドレス可能レジスタ
で、DMAレジスタ22を構成するために書き込まれる。こ
れらの各ビットは、以下動作の説明と共に詳述する。転
送カウンタレジスタ302は24ビットのアドレス可能レジ
スタで、これには周辺バス28から、DMA動作で転送され
るべき数のメモリロケーションがロードされる。転送カ
ウンタレジスタ302はラインDECR上のパルスによってデ
クレメントされ、その内容がゼロに等しいときラインZE
ROを経て制御ロジック310に信号を送る。出所アドレス
レジスタ306と宛先アドレスレジスタ304は24ビットのア
ドレス可能レジスタで、そこから及びそこへデータヲ転
送すべきメモリアドレスをそれぞれ記憶する。出所アド
レスレジスタ306と宛先アドレスレジスタ304の内容は初
め、周辺バス28のデータライン28dの最下位24ビットか
らロードされる。次いで制御レジスタ300の内容に応
じ、出所アドレスレジスタ306と宛先アドレスレジスタ3
04は、制御ロジック310からのラインINC/DECRを経たパ
ルスに応答してインクレメントまたはデクレメントされ
る。データレジスタ308は、DMAバス38のデータライン38
aからのデータをバッファする一時レジスタである;つ
まりデータライン38d上の値がラインWRITE上の信号に応
じてデータレジスタ308内にロードされ、またデータレ
ジスタ308の内容がラインSTORE上の信号に応じてデータ
ライン38dに与えられる。
DMAコントローラ22の動作がマイクロコンピュータ10
の残部の動作と一貫して制御されるように、制御ロジッ
ク310は更にコントローラ14に接続されている。以下明
らかとなるように、DMAは割込周期され、外部源からの
データの受信または送信をCPU12、DMAコントローラ22、
及び外部源間での衝突を伴わずに行うことができる。制
御レジスタ300のSTARTビット300aは、論理状態“1"また
は“0"を有するかに応じて、DMAコントローラ22の動作
をそれぞれ動作可能または不能とする。制御レジスタ30
0のTCビット300bはレディロジック310を制御し、TCビッ
ト300bが状態“1"にセットされていると、転送カウンタ
レジスタ302がゼロに達したときDMA転送が終了する。同
期ビット300cと300dが、転送データの出所または宛先と
のDMAコントローラ22の同期化を構成可能とする。制御
レジスタ300内のビット300e〜300hの内容が、出所及び
宛先アドレスレジスタ304と306がインクレメントされる
か、デクレメントされるか、あるいは各転送読取後に変
更されないかどうかを決める。TCINTビット300iは状態
“1"に設定されると、転カウンタレジスタ302の内容が
ゼロに達したとき内部割込を生成する。制御ロジック31
0はコントローラ14に接続されてライン312上に割込信号
を発生すると共に、ライン314を経た割込ロジック250か
らの割込アクノレジ信号に応答する。
DMAコントローラ22の制御下で行われるDMA動作は、外
部から制御できるように、コントローラ14と組合せて割
込駆動可能である。コントローラ14に関連して前述した
ように、内部発生割込はコントローラ14内の割込ロジッ
ク250によって受信され処理される。制御ロジック310は
更にライン313を経て割込要求信号をコントローラ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及び30
6は各々、マイクロコンピュータ10によって実行される
通常のメモリ書込命令を用い、周辺バス28のアドレスラ
イン28aによってアドレス可能である。各レジスタ302、
304及び306における第8図の暗黙状態では、アドレスさ
れたときそれらレジスタ302、304及び306のロードを制
御する論理をデコードする。制御レジスタ300もそのメ
モリロケーションにアドレスし、DMAコントローラ22を
所望通り構成することによってロードされる。制御ロジ
ック310はSTARTビット300aが状態“1"にセットされるの
に応じて、DMAコントローラ22の動作を可能とする。
一例として、宛先アドレスレジスタ304と出所アドレ
スレジスタ306が各転送中に共にインクレメントされる
ように、必要なデータが制御レジスタ300にロードされ
るものとする。またこの例では、選択した同期モードは
宛先同期とする。この例によれば、制御ロジック310が
まずそこから割込ロジック250への内部割込信号の送信
を不能とする。次に、制御ロジック310がラインLOADを
経て出所アドレスレジスタ306にパルスを発生、出所ア
ドレスレジスタ306の内容がDMAバス38のアドレスライン
38a上に置かれる。第5及び5a図に関連して前述したメ
モリアドレシングと同様に、(周辺ポート24を介した外
部メモリ内もしくはメモリ16、18また20内の)アドレス
されたメモリロケーションが読み取られる。制御ロジッ
ク310がデータレジスタ308に接続されたSTOREラインに
パルスを発し、DMAバス38のデータライン38d上の値をデ
ータレジスタ308にロードする。読取動作後、出所アド
レスレジスタ306の内容がラインINC/DECRを介し制御ロ
ジック310によってインクレメントされる。
制御レジスタ300で宛先同期モードが選択されている
ため、ここでは制御ロジック310がライン313上に割込要
求信号を発生し、割込ロジック250に割込をかける。DMA
用の割込許可をコントローラ14が受信するのに応じて、
制御ロジック310がDMA書込動作を開始し、割込許可のイ
ベントはライン315上の割込アクティブ信号によってDMA
コントローラ22に転送される。従って、制御ロジック31
0が宛先アドレスレジスタ304にLOAD信号を与えるのに応
じ、宛先アドレスレジスタ304の内容がDMAバス38のアド
レスライン38a上に与えられる。制御ロジック310もデー
タレジスタ308に接続されたWRITEラインにパルスを発
し、データレジスタ308の内容がDMAバス38のデータライ
ン38d上に与えられる。アドレスされたメモリロケーシ
ョンは、コントローラ14がデータレジスタ308の内容を
アドレスされたロケーションへ書き込むのに必要な書込
制御信号を与えるだけで、前述したようにアクセスされ
る。
書込の完了後、宛先アドレスレジスタ304の内容がラ
インINC/DECRを介し制御ロジック310によってインクレ
メントされ、転送カウンタレジスタ302の内容がラインD
ECRを介し制御ロジック310によってデクレメントされ
る。転送カウンタレジスタ302の内容がゼロに達する
と、制御ロジック310がラインZEROを経て信号を受信
し、制御レジスタ300のTCINTビット300iの状態に応じて
ライン312上に割込を発生し(あるいは発生せず)、DMA
動作の完了をコントローラ14に通知する。勿論、転送カ
ウンタレジスタ302がゼロに達してもまたは割込によっ
てDMA動作が終了していなければ、制御レジスタ300のST
ARTビット300aが状態“1"にあるかどうかを制御ロジッ
ク310が判定し、状態“1"にあれば、出所アドレスレジ
スタ306を介したDMA読取によって次のDMA転送を開始す
る。
上記の説明から明らかなように、DMAコントローラ
は、最初の出所アドレスから始まるメモリブロック内の
一連のメモリロケーションの内容を、宛先アドレスから
始まるメモリブロック内の一連のメモリロケーションへ
転送するように動作可能である。上述したこの動作はCP
U12の介入を必要とせず、またDMAバス38がDMA目的用の
別個のアドレス及びデータ路を与えるので、かかるDMA
動作はマイクロコンピュータ10の平常動作におけるプロ
グラム及びデータアクセスと同時に生じ得る。つまりDM
A動作は、マイクロコンピュータ10の動作に対して実質
上透明に発生可能で、その性能を大巾に高める。
次に第9図を参照して、周辺バス28の動作及び各種周
辺機能との交信について説明する。一例として、タイマ
40、直列ポート42及びフォーマット変換器44がここで説
明しているマイクロコンピュータ10に接続された周辺機
能である。これら3種の機能はそれらの構造に応じて一
定の交信及び/又はデータ処理機能を与えるが、各々の
周辺機能は同じ方法で周辺バス28ひいてはマイクロコン
ピュータ10の残部と交信する。周辺機器40、42及び44は
各々以下説明するように、周辺バス28によってアドレス
可能なメモリマップドレジスタを用い、マイクロコンピ
ュータ10によって構成及び動作される。尚、DMAコント
ローラ22内に含まれるメモリマップ式レジスタの場合と
同じく、以下説明する周辺機能内に含まれるメモリマッ
プドレジスタは、第4表に関連して前述した入/出力ア
ドレススペース800000h〜800FFFh内に存在することを想
起されたい。
タイマ40は、外部制御またはマイクロコンピュータ10
の内部制御について所定の時間周期を測定する機能を果
たす。タイマ40は周辺バス28のアドレスライン28aに接
続されたタイマロジック400を含み、タイマロジック400
は周辺バス28のライン28a上のアドレス信号を評価する
と共に、その結果に応じてタイマ40内の各種メモリマッ
プドレジスタへのアクセスを可能とするように動作可能
である。タイマ40内の各レジスタ(後述する)は、マイ
クロコンピュータ10の単一アドレススペース内のアドレ
ス信号によってアドレス可能である。タイマ40内のメモ
リマップドレジスタは制御レジスタ402を有し、これに
は当該分野で周知のごとく、動作可能/禁止ビットや、
タイマ40がマイクロコンピュータ10のシステムクロック
によって制御され外部出力を与えるのかあるいは外部ク
ロックパルスによって制御され内部信号を与えるのか
等、タイマ40の動作を制御するのに必要な幾つかの制御
情報が含まれている。タイマ40は更にアドレス可能な周
期レジスタ404を有し、これにはデータライン28dからタ
イマ40によって測定すべき時間を指定する値がロードさ
れる。カウンタレジスタ406もタイマ40内に含まれてお
り、これはシステムクロックまたは外部からラインTCLK
を経て受信されるクロックパルスの各パルスによってイ
ンクレメントされる。動作時には、タイマロジック400
が周期レジスタ404の内容と等しくなったカウンタレジ
スタ406の内容に応答し、この時点でタイマロジック400
が制御レジスタ402の選択に従って内部割込信号をコン
トローラ14に発生し;制御レジスタ402が外部出力を選
択していれば、カウンタレジスタ406の内容が周期レジ
スタ494の内容と等しくなったときタイマロジック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から受信
する準備が整っていることをそれぞれ知らせる。制御レ
ジスタ422は更に、直列ポート42に接続された外部装置
と制御信号と交信するのにも使える。勿論制御レジスタ
422は、必要なビット数及びレジスタ間でアドレスの独
立性が所望かどうかに応じ、複数のアドレス可能レジス
タによって実現することもできる。直列ポート42は更に
送信レジスタ424と受信レジスタ426を有し、これらは周
辺バス28を介してアドレス可能で、それぞれデータを送
信または受信せしめる。動作時には、マイクロコンピュ
ータ10の残部が制御レジスタ422にアドレスし、データ
の直列ポート42による送信準備が整っていることを指示
する。次いでCPU12が、送信レジスタ424のアドレスを周
辺バス28のアドレスライン28d上に与え、送信レジスタ4
24にロードされているデータを周辺バス28のデータライ
ン28d上に送信せしめる。その後ポートロジック420が当
該分野で周知なように、ラインFXS上のフレーミング信
号等をそこに与えられる外部制御信号と連動して、送信
レジスタ424の内容の直列送信ラインDX上への直列出力
を制御する。逆に、ポートロジック420はラインDRから
受信レジスタ426へのロードも制御し、受信レジスタ426
が満たされたとき内部割込信号を割込ロジック250に発
生する。そしてCPU12が、受信レジスタ426に対応したア
ドレスを周辺バス28のアドレスライン28aへ与えること
によって、周辺バス28のデータライン28dを介し受信レ
ジスタ426の内容を読取可能となる。
フォーマット変換器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を介し同様の方
法で行われる。
周辺バス28に沿った周辺機器の編成に対する幾つかの
変更は、当業者にとって勿論自明であろう。前述した周
辺バス28のライン28a上に存在するアドレス信号の解読
は各々の周辺機器で、そこに含まれたロジックつまりタ
イマロジック400、ポートロジック420及びフォーマット
ロジック440によってなされる。この解読方式の代り
に、周辺バス28のアドレスライン28aに接続されたプリ
デコーダを設け、そこに与えられるアドレス信号を解読
して、周辺バス28に沿って接続された個々の周辺機器へ
選択情報を伝送するようにしてもよい。例えば、アドレ
スライン28a上のアドレスが直列ポート42に向けられた
ものであれば、プリデコーダが直列ポート42を動作可能
とし、その他の周辺機器を動作禁止とする。そして、ポ
ートロジック420が周辺バス28のアドレスライン28a上に
存在するアドレス信号の下位ビットを解読し、そこで所
望のメモリマップドレジスタを選択する。
また、周辺バス28への他のアクセスが試みられていな
ければ、CPU12またはマイクロコンピュータ10の残部を
介入させずに、周辺バス28に沿った各種の周辺機器は相
互間で交信するように容易に設計可能である。このよう
な交信の一例は、直列ポート42から外部装置への送信前
における符号化のため、直列ポート42からフォーマット
変換器44になされるデータの伝送である。当業者であれ
ば、データライン28dを介し周辺機器間でデータを交信
できるように、アドレスライン28aを介して一つの周辺
機器を別の周辺機器内のレジスタへアドレス可能とする
アドレス駆動論理を、それら周辺機器内のロジックに付
与可能であろう。
前述した周辺機能の相互接続のために周辺バス28を使
用することは、周辺バス28に沿った追加の周辺機能の単
なる減算または加算によって、マイクロコンピュータ10
を異なる態様に適応させる点で著しい融通性を更に与え
る。事実、周辺バス28は周辺ポート26の出力でラインI/
OAnとI/ODnに対応しそれに直接接続されることで、マイ
クロコンピュータ10の外部端子へ直接接続されているた
め、外部のの周辺機能用に開発されたソフトウェアを、
チップ上に備えられた周辺バス28に接続された同じ機能
を持つマイクロコンピュータ10で、ほとんどあるいは全
く改造を必要とせずに使用し得る。こうして、新たな周
辺機能及び特徴の開発及びデバグが、上述したアーキテ
クチャによって大巾に容易化される。
以上本発明をその好ましい実施を参照して詳しく説明
したが、この説明は例示にすぎず、制限の意味で解釈さ
れるべきでないことが理解されるべきである。また、発
明の実施例の詳細における数多くの変形及び発明の追加
の実施例は自明で、当業者であれば前記の説明を参照し
て成し得ることも理解されるべきである。そのような変
形及び追加の実施例は、特許請求の範囲に記載した発明
の精神及び真の範囲内に包含されるものである。
以上の記載に関連して、以下の各項を開示する。
1.アドレス及びデータ信号を交信するための第1メモリ
バス: アドレス及びデータ信号を交信するための第2メモリ
バス: 前記第1メモリバスと前記第2メモリバスに接続さ
れ、第1組のアドレス内の値を有するアドレス信号によ
ってアドレス可能な複数のメモリロケーションを備える
第1メモリ: 前記第1メモリバスと前記第2メモリバスに接続さ
れ、第2組のアドレス内の値を有するアドレス信号によ
ってアドレス可能な複数のメモリロケーションを備える
第2メモリで、前記第2組のアドレスが前記第1組のア
ドレス内のどのアドレスとも重複しない: 前記第1メモリバスに接続され、データに対して算術
及び論理的演算を実行する演算論理装置で、前記データ
が演算論理装置によって前記第1メモリバス上に与えら
れるアドレス信号に応じて第1メモリバス上に受け取ら
れる;及び 前記第2メモリバスと前記演算論理装置に接続され、
命令コードに従って前記演算論理装置を制御するコント
ローラで、前記命令コードがコントローラによって前記
第2メモリバス上に与えられるアドレス信号に応じて第
2メモリバス上に受け取られる;を備えた処理装置。
2.前記第1メモリバスと前記第2メモリバスに接続さ
れ、前記データ処理装置の外部端子にアドレス信号を与
え且つデータ信号を前記外部端子に与えまたそこから受
け取る周辺ポート;を更に備えた第1項のデータ処理装
置。
3.前記周辺ポートが前記外部端子に第3組のアドレス内
の値を有するアドレス信号だけを与え、前記第3組のア
ドレスが前記第1組のアドレスまたは前記第2組のアド
レスと重複しない第2項のデータ処理装置。
4.前記第1メモリと前記第1及び第2メモリバスに接続
され、前記第1メモリバスによって与えられるアドレス
信号と前記第2メモリバスによって与えられるアドレス
信号が共に前記第1組の値内にあるとき、前記第1メモ
リを前記メモリバスの一方から分断するためのメモリ制
御ロジックを更に備え、前記分断されるメモリバスの一
方が所定の優先順位に従って決められる第1項のデータ
処理装置。
5.前記メモリ制御ロジックが前記第2メモリにも接続さ
れ: 更に、前記第1メモリバスによって与えられるアドレ
ス信号と前記第2メモリバスによって与えられるアドレ
ス信号が共に前記第2組の値内にあるとき、前記メモリ
制御ロジックが前記第2メモリを前記メモリバスの一方
から分断し、前記分断されるメモリバスの一方が所定の
優先順位に従って決められる4項のデータ処理装置。
6.前記第1メモリバスと前記第2メモリバスに接続さ
れ、前記データ処理装置の外部端子にアドレス信号を与
え且つデータ信号を前記外部端子に与えまたそこから受
け取る周辺ポートを更に備え; 前記周辺ポートが前記外部端子に第3組のアドレス内
の値を有するアドレス信号だけを与え、前記第3組のア
ドレスが前記第1組のアドレスまたは前記第2組のアド
レスと重複しない第5項のデータ処理装置。
7.前記メモリ制御ロジックが前記周辺ポートにも接続さ
れ; 更に、前記第1メモリバスによって与えられるアドレ
ス信号と前記第2メモリバスによって与えられるアドレ
ス信号が共に前記第3組の値内にあるとき、前記メモリ
制御ロジックが前記周辺ポートを前記メモリバスの一方
から分断し、前記分断されるメモリバスの一方が所定の
優先順位に従って決められる第6項のデータ処理装置。
8.前記第1メモリと前記第1及び第2メモリバスに接続
され、前記第1メモリバスによって与えられるアドレス
信号と前記第2メモリバスによって与えられるアドレス
信号が共に前記第1組の値内にあるとき、前記第1メモ
リを前記第2メモリバスから分断するためのメモリ制御
ロジックを更に備えた第1項のデータ処理装置。
9.前記メモリ制御ロジックが前記第2メモリにも接続さ
れ; 更に、前記第1メモリバスによって与えられるアドレ
ス信号と前記第2メモリバスによって与えられるアドレ
ス信号が共に前記第2組の値内にあるとき、前記メモリ
制御ロジックが前記第2メモリを前記第2メモリバスか
ら分断する第8項のデータ処理装置。
10.前記第1メモリがランダムアクセスメモリである第
1項のデータ処理装置。
11.前記第1メモリが読取専用メモリである第1項のデ
ータ処理装置。
12.前記第2メモリがランダムアクセスメモリである第1
1項のデータ処理装置。
13.アドレス及びデータ信号を交信するための第1メモ
リバス; アドレス及びデータ信号を交信するための第2メモリ
バス; アドレス及びデータ信号を交信するための第3メモリ
バス; 前記第1、第2及び第3メモリバスに接続され、第1
組のアドレス内の値を有するアドレス信号によってアド
レス可能な複数のメモリロケーションを備える第1メモ
リ; 前記第1、第2及び第3メモリバスに接続され、第2
組のアドレス内の値を有するアドレス信号によってアド
レス可能な複数のメモリロケーションを備える第2メモ
リで、前記第2組のアドレスが前記第1組のアドレス内
のどのアドレスとも重複しない; 前記第1メモリバスに接続され、データに対して算術
及び論理的演算を実行する演算論理装置で、前記データ
演算論理装置によって前記第1メモリバス上に与えられ
るアドレス信号に応じて第1メモリバス上に受け取られ
る; 前記第2メモリバスと前記演算論理装置に接続され、
命令コードに従って前記演算論理装置を制御するコント
ローラで、前記命令コードがコントローラによって前記
第2メモリバス上に与えられるアドレス信号に応じて第
2メモリバス上に受け取られる;及び 前記第3メモリバスに接続され、前記第3メモリバス
を介し前記第1及び第2メモリ内のメモリロケーション
間でデータを交信するための直接メモリアクセスコント
ローラで、前記第1及び第2メモリ内のメモリロケーシ
ョンが前記直接メモリアクセスコントローラによって前
記第3メモリバス上に与えられるアドレス信号に従って
アドレスされる;を備えたデータ処理装置。
14.前記第1、第2及び第3メモリバスに接続され、前
記データ処理装置の外部端子にアドレス信号を与え且つ
データ信号を前記外部端子に与えまたそこから受け取る
周辺ポートを更に備え; 前記周辺ポートが前記外部端子に第3組のアドレス内
の値を有するアドレス信号だけを与え、前記第3組のア
ドレスが前記第1組のアドレスまたは前記第2組のアド
レスと重複しない;及び 前記直接メモリアクセスコントローラが前記第3メモ
リバスを介し、前記周辺ポートと前記第1及び第2メモ
リ内のメモリロケーションとの間でデータを交信する第
13項のデータ処理装置。
15.前記第1メモリと前記第1及び第3メモリバスに接
続され、前記第1メモリバスによって与えられるアドレ
ス信号と前記第3メモリバスによって与えられるアドレ
ス信号が共に前記第1組の値内にあるとき、前記第1メ
モリを前記第2メモリバスまたは前記第3メモリバスか
ら所定の優先順位に従って分断するためのメモリ制御ロ
ジックを更に備えた第14項のデータ処理装置。
16.前記メモリ制御ロジックが前記周辺ポートにも接続
され; 更に、前記第1メモリバスによって与えられるアドレ
ス信号と前記第3メモリバスによって与えられるアドレ
ス信号が共に前記第3の値内にあるとき、前記メモリ制
御ロジックが前記周辺ポートを前記第1メモリバスまた
は前記第3メモリバスから所定の優先順位に従って分断
する第15項のデータ処理装置。
17.前記メモリ制御ロジックが前記第3メモリにも接続
され; 更に、前記第1メモリバスによって与えられるアドレ
ス信号と前記第3メモリバスによって与えられるアドレ
ス信号が共に前記第2組の値内にあるとき、前記メモリ
制御ロジックが前記第2メモリを前記第1メモリバスま
たは前記第3メモリバスから所定の優先順位に従って分
断する第16項のデータ処理装置。
18.計算集中的な用途向けに特に設計されたマイクロコ
ンピュータが開示される。マイクロコンピュータはオン
チップのRAM(16、18)ROM(20)を含み、外部及び入/
出力機能へのアクセス用の周辺ポート(24と18)を有す
る。またマイクロコンピュータは、補助演算論理装置と
並列な浮動小数点式乗算器を備えた中央処理装置(12)
を有し、複数のレジスタを多重アキュミュレータとして
使用する。中央処理装置(12)は更に相互に並列な2つ
の補助演算処理装置を含み、これらは各々メモリバス
(30)内の各組のアドレスライン(30A、30B)に接続さ
れ、従って2つの補助演算処理装置は2つの別々なメモ
リアドレスを並列に発生する。メモリバスは,RAM(16、
18)とROM(20)及び中央処理装置(12)に接続された
一組のデータライン(30D)も含む。オンチップのRAM
(16、18)とROM(20)は2組のアドレスライン(30A、
30B)に時間多重的な方法で応答し、データラインを介
したメモリアクセスをシステムクロックサイクル毎に2
回与える。第2のメモリバス(34)もオンチップのRAM
(16、18)とROM(20)及び周辺ポート(24、26)に接
続され、前記第1のメモリバス(30)を介したメモリエ
レメントの一つへのアクセスが第2のメモリバス(34)
を介した前記メモリエレメントの別の一つへのアクセス
と同時に且つ独立に発生可能である。オンチップメモリ
と外部メモリは全て単一のメモリアドレススペース内ん
いマップ割り当てされ、2つのメモリバスを介したプロ
グラム及びデータ両方の同時フェッチ、あるいは同一サ
イクル中における第1の時間多重化バス(30)を用いた
プログラム及びデータ両方のフェッチを可能とする。メ
モリマップド入/出力機能がオンチップの周辺機器(4
0、42及び44)によって実施され、これら周辺機器はマ
イクロコンピュータの周辺ポートの一つ(26)に接続さ
れている。周辺バス(28)が、マイクロコンピュータの
構成において多大の融通性を可能とする。
【図面の簡単な説明】
第1図は本発明に従って構成されたマイクロコンピュー
タのブロック電気線図;第2図は第1図のマイクロコン
ピュータの中央処理装置のブロック電気線図;第2a図は
第2図の中央処理装置内に具備された補助演算論理装置
のブッロク電気線図;第2b図及び2c図は第1図のマイク
ロコンピュータによって実施可能な循環アドレッシング
モードで有用な幾つかの計算のフロー図;第3図は第1
図のマイクロコンピュータの周辺ポートのブロック電気
線図;第4図は第1図のマイクロコンピュータのコント
ローラのブロック電気線図;第4a図は第4図のコントロ
ーラによって実施される命令コードのパイプライン化を
例示するタイミング図;第5図は第1図のマイクロコン
ピュータ内における各種メモリエンティティへのアクセ
スの仲裁において有用な、第4図のコントローラ内のロ
ジックの概略電気線図;第5a図は第1図のマイクロコン
ピュータ内で実施されるメモリアクセスのタイミング図
で、第5図のロジックの動作を例示する図;第6aから6d
図は第1図のマイクロコンピュータ各部のブロック電気
線図で、例示命令の実行の異なる時点でのスナップショ
ットをそれぞれ示す図;第7図は第1図のマイクロコン
ピュータの命令キャッシュのブロック電気線図;第8図
は第1図のマイクロコンピュータのDMAコントローラの
ブロック電気線図;及び第9図は第1図のマイクロコン
ピュータの周辺モジュール及び周辺バスのブロック電気
線図である。 10…データ処理装置(マイクロコンピュータ)、12…中
央処理装置(CPU)、14…コントローラ、16、18、20…
第1/2メモリ(16、18;RAM、20;ROM)、22…直接アクセ
スメモリ(DMA)コントローラ、24、26…周辺ポート、2
8…周辺バス、30…第1メモリ(データ)バス、30a、30
b…アドレスライン、30d…データライン、34…第2メモ
リ(プログラム)バス、38…第3メモリ(DMA)バス、4
0、42、44…オンチップ周辺機器、46…乗算機、48…演
算論理装置(ALU)、50…データレジスタ、50a、50b…
補助演算論理装置(ARAU)、206…メモリ制御(仲裁)
ロジック。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェラルド ジー リーチ アメリカ合衆国 テキサス州 77083 ヒューストン リーンドラ 6710 (72)発明者 エル レイ シマー ジュニア アメリカ合衆国 テキサス州 77469 リッチモンド メイプル デイル 1906 (56)参考文献 特開 昭57−203154(JP,A) 特開 昭55−37651(JP,A) 特開 昭60−33634(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】アドレス及びデータ信号を交信するための
    第1メモリバス; アドレス及びデータ信号を交信するための第2メモリバ
    ス; 前記第1メモリバスと前記第2メモリバスに接続され、
    第1組のアドレス内の値を有するアドレス信号によって
    アドレス可能な複数のメモリロケーションを備える第1
    メモリ; 前記第1メモリバスと前記第2メモリバスに接続され、
    第2組のアドレス内の値を有するアドレス信号によって
    アドレス可能な複数のメモリロケーションを備える第2
    メモリで、前記第2組のアドレスが前記第1組のアドレ
    ス内のどのアドレスとも重複しない; 前記第1メモリバスに接続され、データに対して算術及
    び論理的演算を実行する演算論理装置で、前記データが
    演算論理装置によって前記第1メモリバス上に与えられ
    るアドレス信号に応じて第1メモリバス上に受け取られ
    る;及び 前記第2メモリバスと前記演算論理装置に接続され、命
    令コードに従って前記演算論理装置を制御するコントロ
    ーラで、前記命令コードがコントローラによって前記第
    2メモリバス上に与えられるアドレス信号に応じて第2
    メモリバス上に受け取られる;を備えたデータ処理装
    置。
JP63060154A 1987-03-13 1988-03-14 複数のオンチップメモリバスを備えたデータ処理装置 Expired - Lifetime JP2659984B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/025,417 US4912636A (en) 1987-03-13 1987-03-13 Data processing device with multiple on chip memory buses
US25417 1987-03-13

Related Child Applications (4)

Application Number Title Priority Date Filing Date
JP7054664A Division JPH07295808A (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置
JP05466595A Division JP3206704B2 (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置
JP7054662A Division JPH07302251A (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置
JP05466395A Division JP3234734B2 (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置

Publications (2)

Publication Number Publication Date
JPS63303452A JPS63303452A (ja) 1988-12-12
JP2659984B2 true JP2659984B2 (ja) 1997-09-30

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 複数のオンチップメモリバスを備えたデータ処理装置
JP7054662A Pending JPH07302251A (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置
JP05466595A Expired - Fee Related JP3206704B2 (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置
JP7054664A Pending JPH07295808A (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置

Family Applications After (4)

Application Number Title Priority Date Filing Date
JP05466395A Expired - Fee Related JP3234734B2 (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 複数のオンチップメモリバスを備えたデータ処理装置
JP7054664A Pending JPH07295808A (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)

* Cited by examiner, † Cited by third party
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
US5305446A (en) 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
US5809309A (en) * 1990-09-28 1998-09-15 Texas Instruments Incorporated Processing devices with look-ahead instruction 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 キオクシア株式会社 半導体集積回路及びその動作方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
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
CH613540A5 (ja) * 1975-02-26 1979-09-28 Siemens Ag
JPS5834037B2 (ja) * 1976-05-08 1983-07-23 株式会社東芝 アドレス計算装置
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
US4453215A (en) * 1981-10-01 1984-06-05 Stratus Computer, Inc. Central processing apparatus for fault-tolerant computing
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
WO1984002799A1 (en) * 1982-12-30 1984-07-19 Ibm A hierarchical memory system including separate cache memories for storing data and instructions
JPS60173643A (ja) * 1984-02-20 1985-09-07 Oki Electric Ind Co Ltd アドレス発生装置
FR2561429B1 (fr) * 1984-03-13 1986-09-19 Trt Telecom Radio Electr Dispositif d'adressage pour fournir a une memoire des codes d'adresse
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
JPS61131137A (ja) * 1984-11-30 1986-06-18 Toshiba Corp 複数アドレスの連続生成方式
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

Also Published As

Publication number Publication date
JPH07302251A (ja) 1995-11-14
US4912636A (en) 1990-03-27
JPH07295808A (ja) 1995-11-10
JPH07302252A (ja) 1995-11-14
JP3206704B2 (ja) 2001-09-10
JPS63303452A (ja) 1988-12-12
JP3234734B2 (ja) 2001-12-04
JPH07302253A (ja) 1995-11-14

Similar Documents

Publication Publication Date Title
JP2659984B2 (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
US4794524A (en) Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US4794521A (en) Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US6598148B1 (en) High performance microprocessor having variable speed system clock
US5175841A (en) Data processing device with multiple on-chip memory buses
US4783736A (en) Digital computer with multisection cache
US4545016A (en) Memory management system
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
CA1325288C (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
EP0111407A2 (en) Microprogrammed control unit for handling the intermixed occurences of microprogram branches and interrupts
US5381360A (en) Modulo arithmetic addressing circuit
JPS5831014B2 (ja) 命令先取り装置
US5905881A (en) Delayed state writes for an instruction processor
US5983328A (en) Data processing device with time-multiplexed memory bus
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
US5907864A (en) Data processing device with time-multiplexed memory bus
EP0227319A2 (en) Instruction cache memory
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080606

Year of fee payment: 11