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

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

Info

Publication number
JPS63303452A
JPS63303452A JP63060154A JP6015488A JPS63303452A JP S63303452 A JPS63303452 A JP S63303452A JP 63060154 A JP63060154 A JP 63060154A JP 6015488 A JP6015488 A JP 6015488A JP S63303452 A JPS63303452 A JP S63303452A
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.)
Granted
Application number
JP63060154A
Other languages
English (en)
Other versions
JP2659984B2 (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)
  • Memory System (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) この発明はデータ処理装置に関し、特にオンチップメモ
リのアクセスに関連したシングルチップマイクロコンピ
ュータのアーキテクチャに関する。
(従来の技術) マイクロプロセッサ装置は、ゲーリー・ブーン(Gar
y W、Boone)に与えられテキサス・インスッル
メント社に譲渡された米国特許第3.757.306号
に示されているように、M OS / L S I技術
で製造される単−半3体集積回路、つまり、“チップ”
内に通常台まれるデジタルプロセッサ用の中央処理装置
、つまり、CPUである。ブーンの上記特許は、並列A
LU、データ及びアドレス用レジスタ、命令レジスタ及
び制御デコーダを含むシングルチップ8ビフトCPUを
示しており、これらの構成要素は全てノイマン(von
 Neumann)型アーキテクチャを用い、データ、
アドレス及び命令用の双方向性並列バスを使って相互接
続されている。
ゲーリー・プーン及びマイケル・コツコラン(Mick
ael J、  Cochran)に付与されテキサス
・インスツルメント社に譲渡された米国特許第4.07
4.351号は、プログラム記憶用のオンチ・ノブRO
Mとデータ記憶用のオンチップRAMを備え、バーバー
ド(Harvard)型アーキテクチャに構成された、
4ビット並列ALUとその制御回路を含むシングルチッ
プ“マイクロコンピュータ”型装置を示している。通常
マイクロプロセッサという用語はプログラム及びデータ
記憶用の外部メモリを用いた装置を指す一方、マイクロ
コンピュータという用語はプログラム及びデータ記憶用
のオンチップROMとRAMを備えた装置を指す。
本発明の説明では、“マイクロプロセッサ”という用語
は両方の装置を含めて用い、“マイクロプロセッサ”と
いう用語は主にオンチップROMを持たないマイクロコ
ンピュータを指すのに用いる。
しかし、両用語は当該分野でしばしば入れ換え可能に使
われているので、本明細書における一方または他方の使
用はこの発明の特徴を制限するものと考慮されるべきで
ない。
最近のマイクロコンピュータは主に2つの種類、つまり
汎用マイクロプロセッサと専用マイクロコンピュータ/
マイクロプロセッサに分けられる。
モトローラ社製M68020等の汎用マイクロプロセッ
サは、広範囲のタスクのどれでも実行するようにユーザ
によってプログラム可能に設計されているため、パーソ
ナルコンピュータ等の中央処理装置としてよく使われて
いる。このような汎用マイクロプロセッサは、広範囲の
演算及び論理機能で優れた性能を有するが、勿論そうし
た機能の特定の一つ用には特別に設計または適応されて
いない。これに対し専用マイクロコンピュータは、ユー
ザがそのマイクロコンピュータを使うとしている特有の
所定演算及び論理機能のための性能改良を与えるように
設計されている。設計者はマイクロコンピュータの主機
能を知ることで、その専用マイクワコンピュータによる
特定機能の性能が、ユーザによって作成されるプログラ
ムと関係なく汎用マイクロプロセッサによる同一機能の
性能を大巾に越えるように、マイクロコンピュータを構
成できる。
専用マイクロコンピュータにより大巾な向上率で実施可
能なかかる機能の一つは、デジタル信号処理、特にデジ
タルフィルタの実行と高速フーリエ変換を行うのに必要
な演算である。こうした演算は大部分整数乗算、多ビア
)のシフト及び乗算−加算等の反復動作から成るので、
専用マイクロコンピュータはこれらの反復機能に特に適
するように構成できる。かかる専用マイクロコンピュー
タは、テキサス・インスツルメント社に譲渡された米国
特許第4,577.282号に記載されている。
上記演算用のマイクロコンピュータの特定設計は、汎用
マイクロプロセッサと比べて充分な性能向上をもたらし
、専用マイクロコンピュータを音声及び画像処理等の実
時間用途における使用を可能とする。
デジタル信号処理の用途は、それらの演算集中性のため
、メモリアクセス動作においてもかなり集中性となる。
従って、デジタル信号処理機能を実施するマイクロコン
ピュータの全体的性能は、単位時間毎に実行される特定
演算の回数だけでなく、マイクロコンピュータがシステ
ムメモリに対して≠−夕を検索及び記憶可能な速度によ
っても決まる。前記米国特許第4,577.282号に
記載されているもの等従来の専用マイクロコンピュータ
は、データメモリへのアクセスがプログラムメモリへの
アクセスと独立に、且つ、同時に行えるように、バーバ
ード型アーキテクチャの改造型を用いている。このよう
なアーキテクチャは勿論、さらに性能向上をもたらして
きた。
(発明が解決しようとする課題) しかし、ノイマン型アーキテクチャに代るバーバード型
アーキテクチャの使用も幾つかの制限をもたらし、その
一部はデジタル信号処理の用途におけるマイクロコンピ
ュータの性能に悪影響を及ぼすことがある。例えば、デ
ータ及びプログラムメモリは異なるバスによってアクセ
スされるので、物理的に別々のロケーションでないとし
ても、一般に別々のアドレススペース内に存在されなけ
ればならない。従って、バーバード型アーキテクチャで
は、第1の専用メモリがデータメモリ用に、また第2の
専用メモリがプログラムメモリ用に設けられなければな
らない。これは、利用していないデータメモリをプログ
ラム記憶用に使うこと及びその逆を妨げ、マイクロコン
ピュータの融通性を制限する。
さらに、入/出力装置のメモリマツプ式制御を使うのも
有用である。このような制御では、マイクロコンピュー
タとその入/出力装置によって共有された予約メモリロ
ケーションを使用する。要するに、マイクロコンピュー
タ及び入/出力装置は、共有ロケーションへデータを書
込み、また、そこからデータを読取ることによって相互
に交信する。バーバード型及びノイマン型どちらのアー
キテクチャでも、入/出力目的のために一定のメモリロ
ケーションを予約することは、マイクロコンピュータの
融通性をいっそう制限する。また、アーキテクチャがメ
モリマツプ式入/出力の使用を一定のロケーションに制
限していると、追加の入力または出力装置に必要なメモ
リマツブトロケーションがマイクロコンピュータ用の既
存ソフトウェアで使われていることがあるため、マイク
ロコンピュータはその追加装置を含めるように容易に再
設計できず、既存のソフトウェアベースが再設計のマイ
クロコンピュータと両立しなくなってしまう。
従ってこの発明の目的は、ユーザによってフレキシブル
にデータ及びプログラムストレージへと区分可能な単一
のメモリアドレススペースを有するマイクロコンピュー
タを提供することにある。
この発明の別の目的は、単一のメモリアドレススペース
内に、データ及びプログラムストレージと共にメモリマ
ツブト入/出力コントローラも含み得るようなマイクロ
コンピュータを提供することにある。
この発明の別の目的は、データ、プログラム及びメモリ
マツブト入/出力メモリの仕様と関わりなく、前記アド
レススペース内の2つのメモリロケーションへ同時にア
クセスできるようなマイクロコンビ二一夕を提供するこ
とにある。
この発明の別の目的は、単一のメモリアドレススペース
内にROMとRAM両方を有するようなマイクロコンピ
ュータを提供することにある。
本発明の上記以外の目的及び利点は、図面と共に以下の
説明を参照することによって当業者には明らかとなろう
(課題を解決するための手段) 本発明は、単一のメモリアドレススペース内にマツプ割
り当てされた複数のメモリ要素を有するマイクロコンピ
ュータに通用し得る。データバス、プログラムバス及び
直接メモリアクセス(D M A )バス等の特定目的
で好ましくは使われるように指定し得る複数のメモリバ
スが設けられる。2つのバスが共に同一メモリ要素ヘア
ドレスしようとしない限り、複数のバスが1より多いメ
モリ要素への同時アクセスを可能とする。メモリアドレ
ススペースは、制御可能なポートを介して複数のメモリ
バスがそれに接続された外部メモリへもアドレス可能と
なるように、充分大きくし得る。2つの異なるバスが同
一メモリ要素(オンチップまたは外部)内のメモリロケ
ーションへアドレスを試みたときでも、所定の優先順位
に従って一つのバスにアクセスが許可されるように、ア
ドレスデコード論理及び優先順位論理を含むメモリ優先
順位コントローラも付設し得る。
(実施例) 第1図を参照すると、マイクロコンピュータ10のアー
キテクチャが示され、該マイクロコンピュータはデジタ
ル信号処理用に特に編成され、本発明を具備している。
マイクロコンピュータ10の主な機能ブロックは、中央
処理装置(CPU)12、コントローラ14、及び直接
メモリアクセス(DMA)コントローラ22によって構
成れる。
発明のこの実施例によるマイクロコンピュータに装備さ
れたメモリは、ランダムアクセスメモリ(RAM)16
.18及び読取専用メモリ (ROM)20を含む。こ
の実施例において、RAM16と18は210つまりI
Kのワードを有し、ROM20は212つまり4にのワ
ードを有する。各種のバス信号をマイクロコンピュータ
10の外部端子で多重化し、且つかかる外部端子を介し
てデータを送受信する外部装置との通信用の専用信号を
与えるインタフェースボート24.26を経て外部との
接続がなされる。インタフェースポート26に周辺バス
28が接続され、周辺バス28は後述するように各種の
機能ブロックに接続される。
マイクロコンピュータ10内でのデータ交信は、データ
バス30を介して実施可能である。データバス30は、
メモリ16.18.20、インタフェースポート24.
26及びCPU12間でのデータ信号の交信に割り当て
られた一組のデータライン30dを含む。発明のこの実
施例では、データバス30が各組30d内に32本のデ
ータラインを有する:従ってメモリ16.18.20、
インタフェースポート24.26及びCPU12間で交
信されるデータ信号は32ビット語と見なされる。デー
タバス30は更に第1組のアドレスライン30aと第2
組のアドレスライン30bを含み、両アドレスラインは
メモリ16.18及び20内のメモリロケーションに対
応したアドレス信号の交信に使われる。発明のこの実施
例において、データバス30は各Ml 30 a及び3
0b毎に24本のアドレスラインを有する。アドレスラ
イン30aと30bも、CPU12、インタフェースポ
ート24.26及びメモリ16.18.20間に接続さ
れている。第1図から明らかなように、メモリ16.1
8.20は各々2つのボート32a、32dを有する。
各々のボート32aはデータバス30のアドレスライン
30aと30bに接続され、そこに与えられるアドレス
信号を受信し、対応したメモリロケーションへのアクセ
スをボート32dを介してデータバス30のデータライ
ン30dに与える。
マイクロコンピュータ10は、プログラムバス34を介
しても交信を行う。データバス30と同様、プログラム
バス34はメモリ16.18及び20の各ボート32d
に接続された一組のデータライン34dを含む。プログ
ラムバス34のデータライン34dは、インタフェース
ポート24.26とコントローラ14にも接続されてい
る。プログラムバス34は更に、メモリ16.18.2
0の各ボート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にそれぞれ搬送するラ
インSEL、いSEL+s、5ELffi。、5ELF
、及び5ELziを示す。コントローラ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のボート32dに
接続された一組のデータライン38dを有する。DMA
バス38は更に、メモリ16.18及び20のボート3
2aに接続された一組のアドレスライン38aを有する
。DMAコントローラ22は、周辺バス28に更に周辺
バス28を介してインタフェースボート26にも接続さ
れている。DMAコントローラ22が直接メモリアクセ
ス動作を行い、この動作によってマイクロコンピュータ
10のメモリスペース内に記憶されたデータブロックが
メモリの一領域(出所)から別の領域(宛先)へ移動可
能である。メモリの出所領域はメモリ16.18.20
、またはマイクロコンピュータ10の外部にあってイン
タフェースポート24で処理される端子に接続されたメ
モリ装置内に存在し、データブロックの宛先はかかるど
のメモリ (但し勿論ROM20を除く)内にも存在し
得る。第1図に示したマイクロコンピュータ10の構造
及び以下の説明から、このようなりMA動作はCPU1
2の介入を必要とせず、マイクロコンピュータ10内の
DMAコントローラ22によってなされることが明らか
であろう。
−組のアドレスライン30a、30b、34aまたは3
8aの対応したメモリ16.18または20への接続を
選択できるように、ボー)32aは主にマルチプレクサ
である。同じく、各々のボート32dはデータバス30
のデータライン30dに接続され、アドレスされたメモ
リロケーションによって記憶された(または記憶される
べき)データの交信を行う。メモリ16.18及び20
は各々そのボート32aに接続されたアドレスデコーダ
33を含み、これがアドレスライン30a、30b、3
4aまたは38aの選択された1つに与えられるメモリ
アドレス信号を当該分野で周知な方法でデコードする。
アドレスデコード33からの出力に基づき、選択アドレ
ス信号によって指定されたメモリロケーションへのアク
セスが許可される。RAM16.18とROM20は全
て、選択メモリロケーションが付設のアドレスデコーダ
33の出力に基づき検知及び/又は書込まれるように、
当該分野で周知なように構成されている。またかかるメ
モリの分野で周知なように、ボート32dは選択されて
ないときそこに接続されたバス30.34及び38のデ
ータラインの高インピーダンス出力を与えて、バス30
.34及び38上におけるデータの衝突を防ぐ。
データバス30、プログラムバス34及びDMAバス3
8内の各組のアドレスラインは、この発明の好ましい実
施例において24本の導体からなる。従って、データバ
ス30、プログラムバス34及びDMAバス38内の各
組のアドレスラインを介してアドレス可能なメモリロケ
ーションの最大数は、32ビツトの224ワード(16
メガワード)である。しかし、メモリ16.18及び2
0内のワード総数は6になので、マイクロコンピュータ
10のアドレス可能なメモリスペースの多くはマイクロ
コンピュータ10外のメモリ装置内に存在する。このよ
うな外部メモリも勿論オンチップメモリ16.18及び
20と同様のアドレスデコード能力を持ち、バス30,
34及び38のアドレスライン上に発生したアドレス信
号に対して同じように応答する0本発明によれば、バス
30.34及び38の任意の一組のアドレスラインに与
えられるあるアドレス信号がメモリ16、18及び20
のうち一つ内のメモリロケーションへアドレスするよう
に、単一のメモリアドレススペースがマイクロコンピュ
ータ10に設けられる。
従って、例えばアドレスライン30aがポート32aで
選ばれたとすれば、アドレスライン30a上のあるアド
レス信号はメモリ16.18及び20の何れか一つもし
くは外部データ、プログラムまたは入/出力メモリ内の
メモリロケーションと対応している。尚マイクロコンピ
ュータは、外部のデータ及びプログラムメモリが周辺ポ
ート24を介してアクセスされ、外部入/出力メモリが
周辺ボート26を介してアクセスされるのが好ましいよ
うに編成されている。
周辺バス28は、インタフェースポート26と各種の周
辺機能との間に接続されている。従って周辺バスは、コ
ントローラ14による周辺ボート26の制御に応じて、
バス30.34及び38の任意の一つと選択的に接続可
能である。このように、周辺バス28はマイクロコンピ
ュータ10の残部にとってオフチップバスのように見え
る。これは、周辺装置によって通常与えられる機能をマ
イクロコンピュータ10内に組み入れ可能とし、かかる
周辺装置との交信はオフチップ装置とはり同じ方法でマ
イクロコンピュータ10の残部によって行われる。−例
として第1図のマイクロコンピュータ10は、周辺バス
28に接続されたタイマ40、直列ポート42及びフォ
ーマット交換器44を有し、また前述したようにDMA
コントローラ22も周辺バス28に接続されている。前
記の他のバスと同様、周辺バス28はデータライン28
dとアドレスライン28aを含む。しかし、メモリ16
.18.20とバス30,34.38に接続されたマイ
クロコンピュータ10の残部との間での交信と異なり、
周辺バス28のアドレスライン28aはそれに接続され
た上記周辺機器40.42.44の何れか一つを選択し
、周辺バス28のデータライン28dに対してデータを
送受するのに使われる。さらに後述するように、DMA
コントローラ22内の制御レジスタも周辺バス28を介
してアクセスされる。
次に第2図を参照して、CPU12の構造と動作を詳し
く説明する。CPU12は、専用乗算器46、論理演算
装置(ALU)48、データレジスタ503〜50h(
まとめてデータレジスタ50と称する)、補助演算論理
装置(A RA U)52aと52b1補助データレジ
スタ54a〜54h(まとめて補助レジスタ54と称す
る)、データバスコントローラ56、及び一連の制御レ
ジスタ(インディックスレジスタロ8aと68b1ブロ
ツクレジスタ70及び状態レジスタ70を含むがこれに
制限されない)を含み、以下これらについて詳述する。
乗算器46への入力の一方は、マルチプレクサ64aを
介してCPtJバス60aまたはレジスタバス62aの
何れかからデータを受け取るように動作可能で、乗算器
46への人力の他方はマルチプレクサ64bを介してC
PUバス60bまたはレジスタバス62bの何れかから
データを受け取るように動作可能である。同じ<ALU
48は2つの人力に対して演算を行い、その一方の入力
はマルチプレクサ64cを介してCPUバス60aまた
はレジスタバス62aの何れかからデータを受け取るよ
うに動作可能で、他方の入力はマルチプレクサ64dを
介してCPUバス60bまたはレジスタバス62bの何
れかからデータを受け取るように動作可能である。マル
チプレクサ64a〜64dは、CPU12によって実行
されるべき命令コードに基づきコントローラ14によっ
て制御される。
乗算器46は当該分野で周知な浮動小数点乗算器で、実
際には(マツティッサ(仮数)乗算用の)ハードウェア
乗算器と(指数加算用の)演算論理装置とを含む。乗算
器46は発明の好ましい実施例において、32ビツトの
結果を生じる整数乗算を実施可能なサイズ、あるいは3
2ビツトを浮動小数点オペランドのマンティッサ及び他
の8ビツトを浮動小数点オペランドの指数と見なして、
計40ビットの結果を生じる浮動小数点乗算を実施可能
なサイズとする。ALU48は、24ビツトまでの2進
数に対して整数及び浮動小数点の加算と減算を実施可能
な多くの周知な構成の任意の一つに従って構成された演
算論理装置である。後で詳述するように、乗算器46と
ALU48の並列組合せによって、CPU12は両方の
機能を同時に用いて演算を実施でき、乗算−累算命令等
の演算の迅速な計算を与えられる0乗算器46はALU
4Bの出力は各々データレジスタ50に接続され、乗算
器46とALU48各々によって実行された演算の結果
がデータレジスタ50のうち選択されたものにそれぞれ
記憶可能である。
データレジスタ50は40ビツトのレジスタで、ユーザ
のアプリケーションに応じ整数または浮動小数点フォー
マットでデータをストアするのに使われる。情報を浮動
小数点フォーマットで記憶する場合には、最上位8ビツ
トが指数と見なされ、下位32ビツトがマンティフサと
見なされる。データレジスタ50の主な機能はアキュム
レータ機能で、実質上複数のデータレジスタ50がCP
U12に複数のアキュムレータを与える。データレジス
タ50はレジスタバス62aと62bにも接続され、両
レジスタパスがデータバスコントローラ56を介してデ
ータバス30に出力を与え、また乗算器46とALU4
8への入力として再び与えられる。従って乗算−累算命
令をCPU12で容易且つ効率的に実施できる。例えば
、乗算器46の乗算結果をデータレジスタ50の一つと
してレジスタバス62aを介してALU48に入力させ
、データレジスタ50の別の一つに記憶されレジスタバ
ス62bを介してALU48に与えられた前の結果に加
えることができる。乗算器46とALU48の出力は、
同じくコントローラ14によって制御されマルチプレク
サ66の入力にも接続されている。マルチプレクサ66
の出力は補助レジスタ54に接続され、乗算器46また
はALU48の動作結果が補助レジ゛スタ54の選択さ
れた一つ、あるいはインデックスレジスタ68aと68
b1ブロツクレジスタ70及び状態レジスタ71を含む
一連の制御レジスタ内に記憶可能である。
補助レジスタ54は32ビツトのレジスタで、ARAU
52と協働して、データバス30のアドレスライン30
aと30bに加えるアドレスや、補助レジスタ54内に
記憶されて後で使われるアドレス計算用のアドレスを発
生する。補助レジスタ54は、補助レジスタバス65a
と65bをそれぞれ介して各ARAU52aと52bの
一人力に接続されている。各ARAU52aと52bは
コントローラ14に接続された入力、インデックスレジ
スタ68aと68bに接続された入力、及びブロックレ
ジスタ70に接続された入力も有し、これらの入力は全
て実行中の命令コードによって指定されたアドレスモー
ドに応じてアドレス変更信号を受け取る。ARAU52
 aと52bはデータバス30のアドレスライン30a
と30bにそれぞれら接続された出力を有し、ARAU
52aと52bはこれらのアドレスラインにメモリアド
レス信号を与える。さらにARAU52 aと52bは
、バス67aと67bにそれぞれ接続され、後述するよ
うにメモリアドレシングの過程で発生した変更の結果を
補助レジスタ54のうち選択されたものに記憶するため
の出力を有する。第1図から明らかで当該分野で周知な
ように、マイクロコンピュータ10によって実行可能な
命令コード16.18.20、並びに周辺ボート24と
26を介して外部メモリに複数の方法でアクセスする。
このようなアドレシングの例には、CPU12内の各レ
ジスタ50と54のアドレシング、メモリ16.18.
20内のロケーションのアドレシング、周知の即時及び
相対的アドレシングモードが含まれる。
間接的なメモリアドレシングは、補助レジスタ54と協
働するARAU52aと52bによって容易化される。
周知のように、マイクロコンピュータ内での間接的なア
ドレシングは、メモリロケーションのアドレスが所定の
ロケーションに含まれているメモリアドレシングモード
である。間接メモリアドレシングの一例は、“レジスタ
50aの内容で指定されたメモリロケーションをアドレ
スせよ”というマイクロコンピュータへの命令である。
間接アドレシングはレジスタ54を動的メモリアドレス
ポインタとして用いるのを可能とし、プログラムメモリ
ロケーションの内容を変える必要なく、CPU12(及
びレジスタ54の一つにおけるその記憶)によるメモリ
ロケーションの算出を可能とする。さらにARAU52
aと52bは、ARAU52 aと52bによる間接ア
ドレスの算出を変更する命令コードから発生された変位
コードを用いるように動作可能である。変位コードは、
命令コードのデコード時にコントローラ14によって発
生される8ビツトのコードで、各ARAU52 aと5
2bの入力の一方に人力される。CPU12は変位信号
の不在を1の暗示値として解釈し、これが反復演算で使
われるレジスタ54の内容を自動的にインクレメントま
たはデクレメントするのに使える。このようにARAU
52aと52bは、RAM16と18及びデータメモリ
として使われている外部RAM内のメモリロケーション
のアドレシングで主に使われる。第1図に示したごとく
、データバス30のアドレスライン30aと30b上に
ARAU52aと52bから発生されたアドレスは、勿
論ROM2Oにもアクセス可能である。つまりARAU
52aと52bは、その入力の一方に接続されたレジス
タ54の一つの内容及びコントローラ14から発生され
る変位コードに基づいて必要な整数加算または減算演算
を実施するように動作可能である。第1表は、レジスタ
54とコントローラ14と協働するARAU52 aと
52bによって部分的にサポートされる多くの種類の間
接アドレシングモードをリストアツブしている。尚、メ
モリ16.18及び20(または外部)のプログラムメ
モリポーション/ロケーションに記憶された命令コード
は、第1表にリストアツブしたものを含め所望なメモリ
アドレシングモードを指定する5ビツトのコードを有し
ている。第1表において、“add ”はアドレスされ
るべきメモリロケーションを指定し、” ARn ”は
レジスタ54の一つの内容を指定し、”disp″はコ
ントローラ14から発生される変位コードの値を指定す
る。補助レジスタ54の一つの内容の更新値は、第1表
中“ARn ’”で示しである。
間接的確/前変位 加算   add =ARn + 
disp間接的w/前変位 減算   add =AR
n −disp間接的−/前変位 加算/変更add 
=ARn + dispARn ’ =ARn + d
isp 間接的−7前変位 減算/変更add =ARn −d
ispARn ’ =ARn −disp 間接的−ノ後変位 加算/変更add =ARnARn
 ’ =ARn + disp 間接的−後変位 減算/変更add =ARnARn 
’ =ARn −disp CPU12は、同じ(マルチプレクサ66の出力に接続
され、レジスタバス62aと62bに接続され、更にコ
ントローラ14からの変位コードを受け取るARAU5
2aと52bの入力に直接接続されたインデックスレジ
スタ68aと68bを含んでいる。勿論コントローラ1
4が、インデックスレジスタ68a1インデツクスレジ
スタ68b1または変位コードのARAU52aと52
bの他入力に対する印加を制御する。インデックスレジ
スタ68aと68bはALU48によってロードされ、
メモリ16.18及び20 (並びに外部メモリ)のイ
ンデックス付間接アドレシングで使われるインデックス
値をARAU52 aと52bを介して記憶可能である
。第2表は、コントローラ14によって受信及びデコー
ドされる対応する命令コードに応答し、ARAU52 
aと52bによって実行可能なインデックス付間接アド
レシングモードを含む。第1表にリストアツブしたアド
レシングモードと同様、それらの各アドレシングモード
は命令コード内の特有な5ビツトのコードによって実施
可能である。第2表中の略語″IRm ″は、インデッ
クスレジスタ68aと68bの一方の内容を示す。
に ベ ベ    に    べ    べへ へ へ
     へ     へ     へき  き  さ
      き      i      きiト τ
ト τト     τト     iト     τト
へ  八  へ     八     八     へ
巨 巨 巨   巨   巨   巨 次に第2a図を参照すると、ARAU52aの構造が詳
しく示しである;勿論ARAU52 bも同様に構成さ
れている。第2図に示したように、ARAU52 aは
その一方の入力で補助レジスタバス65aを受け取り、
該バス65aは加/減算器80の一方の入力に接続され
ている。マルチプレクサ82は3つの入力信号を受信す
る;その1つはコントローラ14から発生される変位コ
ードで、残り2つの入力信号はインデックスレジスタ6
8aと68bの内容である。マルチプレクサ82は実行
される命令コードに応じてコントローラ14によって制
御され、これら3人力の一つの加/減算器80の他入力
に対する印加を選択する。
加/減算器80の当該分野で周知な多段式演算論理装置
で、全キャリ加算または減算を実施可能である。コント
ローラ14はアドレスモード情報に関する命令コードの
解読に応じて、加/減算器80が加算または減算どちら
かを行うかを制御する。加/減算器80は更に、キャリ
情報を段から段へ順または逆方向に伝達する能力も有し
ている。
このような加/減算器は係属中の米国特許出願第935
.465号に記載されており、該特許出願が高速フーリ
エ変換アルゴリズムの実施における逆方向キャリ伝達の
利点を詳しく記述している。コントローラ14も同様に
、実行される命令コードに応じて加/減算器80内での
キャリ伝達の方向を制御する。
加/減算器80の出力は、マルチプレクサ84の一方の
入力と比較器86の一方の入力とに接続されている。マ
ルチプレクサ84の他入力は補助レジスタバス65aに
直接接続され、マルチプレクサ84の出力はデータバス
30のアドレスライン30aに接続されている。マルチ
プレクサ84は現在の命令コードに応じてコントローラ
14によって制御され、計算されたアドレスの適正値を
データバス30のアドレスライン30aに加える。
加/fIi算器80の出力はマルチプレクサ88の第1
人力にも接続され、マルチプレクサ88の出力は、AR
AU52aからのデータを補助レジスタ54のうち選択
された一つに導いて補助レジスタ54の内容を所望通り
更新するバス67aに接続されている。マルチプレクサ
88の第2人力は加/減算器90に接続されている。比
較器86と加/減算器90は後述する循環アドレシング
論理を構成し、次の議論の目的上、その動作については
無視する。
第2a図を参照すれば、第1及び2表に列記した各種の
間接アドレシングモードを達成する際のARAU52 
aの動作は明らかとなろう。コントローラ14は実行さ
れる命令コードに応じてマルチプレクサ82を制御し、
インデックスレジスタ68aと68bのうち所望の一方
(第2表中の“IRm ”)あるいはコントローラ14
から発生される変位コードを選択し、加/減算器80で
補助レジスタ54の選択された一つの内容に加える。
前述したように、加/減算器80が加算または減算どち
らを行うか、及び加/減算器80が順または逆方向どち
らのキャリ伝送を使ってその出力を計算するのかも、コ
ントローラ14が制御する。
所望のアドレシングモードが後インデックスもしくは後
変位の加算または減算である場合には、コントローラ1
4はマルチプレクサ84によって補助レジスタバス65
aを選び、データバス30のアドレスライン30aを接
続せしめる(第1及び2表中の演算“add=ARn 
”に対応)。逆に、所望の間接アドレシングモードが前
インデックスもしくは前変位間接アドレスであれば、コ
ントローラ14はマルチプレクサ84によって加/減算
器80の出力を選び、データバス30のアドレスライン
30aに加える(第1及び2表中の演算” add=A
Rn+1−IRm/disp ”に対応)。
ARAU52 aは、選択された間接アドレシングモー
ドに従って補助レジスタ54の更新も決める。循環間接
アドレシングモードが選択されたとすると(循環アドレ
シングについては後述する)、補助レジスタ54のうち
選択された一つの内容が変更されるべきかどうかをコン
トローラ14が選ぶ。所望の間接アドレシングモードが
補助レジスタ54の内容を変更しない場合には、コント
ローラ14がマルチプレクサ88の出力を使用禁止(ト
ライステート)とし、補助レジスタ54の選択された一
つの内容は更新されない。補助レジスタ54の選択され
た一つの内容が加/減算器80での加算または減算の結
果によって変更されるべき場合には、コントローラ14
がマルチプレクサ88によって加/減算器80の出力を
選んでバス67aに加える(第1及び2表中の演算“A
Rn ’=ARn+/−IRm/disp ″に対応)
第2図に示したCPUI 2の構造から、各種機能の動
作は並列に発生可能なことが勿論明らかであろう。例え
ば、ARAU52 aと52bはそれらへの入力が別々
にレジスタ54とコントローラ14 (更にインデック
スレジスタ68aと68b)に接続されているので、並
列に動作可能である。
また、ARAU52 aの出力はデータバス30のアド
レスライン30aとバス67aに接続される一方、AR
AU52 bの出力はデータバス30のアドレスライン
30bとバス67bに接続されている。こうして、AR
AU52 aと52bの動作は、相互に干渉することな
く同時に生じ得る。更に、レジスタバス62aと62b
の前の状態が所望通り乗算器46とALU48によって
受信されていれば、乗算器46とALU48の動作は相
互同士だけでなく、ARAU52 aと52bに対して
も同時に生じ得る。このように、特に乗算−累算等の反
復演算を用いるアルゴリズムの場合、CPU12は上記
の並列動作によって大巾な性能向上を達成可能である。
ブロックレジスタ70はマルチプレクサ66の出力に接
続され、レジスタバス62aと62bに接続されている
他、ARAU52 aと52bにも直接接続されている
。ブロックレジスタ70は間接アドレシング方式に“循
環的”特徴を与え、1ブロツクのデータメモリロケーシ
ョンがループ式に反復アクセス可能となるようにする。
当該分野では周知なように、デジタル信号処理の用途で
必要な一部の計算は、1ブロツクの記憶データに対する
反復演算で表わすことができる。例えば、有限パルス応
答(F I R)デジタルフィルタ機能の計算は、■ブ
ロックのデータに対する乗算−累算演算の反復を必要と
し、乗算−累算の結果はオペランドの一つがそこからフ
ェッチされたメモリロケーション内に記憶される。
次に第2b図を参照して、循環アドレシングの動作をC
PU12内の各種レジスタの内容を見ながら説明する。
CPU12は、まずALU48によってブロックレジス
タ70に間合せ、こ\ではビット位置“N”と称する、
記憶された“1”データ状態の最上位位置を判定するこ
とによって循環アドレシングを行う。ブロックレジスタ
70内に記憶された値は、循環的にアドレスされるべき
データブロック内のメモリロケーションの数を有する。
データブロックの(その一端における)最初のベースア
ドレスは、間接アドレシングモードで使われる補助レジ
スタ54の一つの内容と見なされ、これらのビット位置
は“O”論理状態になってブロックレジスタ70内の最
上位″1”状態のビット位置以下の位である。第2b図
は0”に等しい補助レジスタ54aの内容のN個の下位
ビットを示すことによってこの点を示しており、Nはブ
ロックレジスタ70内の最上位“1”のビット位置であ
る。尚、コントローラ14からの変位コードもインデッ
クスレジスタ68aの内容を置換することによって、循
環アドレシング特徴で使用可能である。この例のために
は、インデックスレジスタ68aの内容が循環アドレシ
ング特徴の演算を記述するのに使われる。この結果、記
憶データのブロック端を(補助レジスタ54a内に記憶
された)最初のベースアドレスと見なすことができ、N
以下のビット位置がブロックレジスタ70の内容を含ん
でいる。この値は、データのブロック端のメモリアドレ
スに1をプラスしたものである。
次に第2c図を参照し、循環アドレシングを用いて補助
レジスタ54aをインクレメントする動作の一例を説明
する。Nより大きい(つまりブロックレジスタ70内の
最上位“l”より高い)ビット位置に対応した補助レジ
スタ54aにビット位置の内容は常に、そこへ最初に記
憶されたベースアドレスのNより大きいビット位置の内
容と等しいま\である。補助レジスタ54aのN以下の
ビットの内容(以下“インデックス”と称する)が、前
述のごと(計算されたインデックスレジスタ68aの内
容(以下“ステップ”と称する)と組合わされる。前述
したように、補助レジスタ54aのN以下のビットは最
初ゼロだが、循環アドレシングモードの詳細は以下一般
的なケースについて説明する。場合に応じてARAU5
2 aまたは52bが、アドレシングモードによって指
定されたインデックスのインデックスレジスタ68aと
の組合せを行う。この例の目的上、ARAU52aは循
環アドレシングモードで使われるARAU52aと52
bの一方を称するものとする。
循環アドレシングは、第2a図に示したARAU52 
aと52bの比較器86と加/減算器90によってなさ
れる。比較器86が加/減算器90に、ブロックレジス
タ70の内容と前述のごとく選択された加/減算器80
の出力ビット(“インデックス”)との比較結果に対応
した制御出力(第2a図のライン87で示す)を、イン
デックス及びステップの値開及びブロックレジスタ70
の内容との関係に応じて与える。その第1の関係で、イ
ンデックス及びステップの組合せがゼロ以上でブロック
レジスタ70の内容以下の場合には、補助レジスタ54
aの更新内容のN以下のビットがインデックスとステッ
プの和(あるいは場合によっては差)から成る。すなわ
ち、第1の関係の条件が満たされると、加/減算器90
は加算と減算どちらも行わず、その出力に加/減算器8
0の出力をそのまま与える。この第1の関係の式は次の
ように表わせる: IF  O<  =  1ndex、  +  /−5
tep  <  =  blockTHEN 1nde
xn*+= 1ndexn+ /−5tep上記の関係
において、”  1ndexn ”は変更前における補
助レジスタ54aのN以下のビット位置の内容で、” 
 1ndex□I ′は変更後におけるN以下のビット
位置の内容を表わし、“s tep”はインデックスレ
ジスタ68a (この例の場合)の内容を表わし、” 
block  ”はブロックレジスタ70の内容を表わ
す。
第2の関係で、インデックスとステップの組合せがゼロ
より小さい場合には、補助レジスタ54のN以下のビッ
トの変更内容がインデックスとステップの和(または差
)に、ブロックレジスタ70の内容をプラスしたものと
なる。これは、比較器860制御出力で加/減算器90
によってブロックレジスタ70の内容を加/減算器80
の出力へ加算することにより、ARAU52 aにおい
て行われる。そして、この加算の結果がマルチプレクサ
88に与えられる。これを式の形で表わせば: IF O> 1ndex* + /−5tepTIIE
N  1ndex+1++=(index 11 + 
 /−5tep)+  block最後に、補助レジス
タ54aのN以下のビット位置の組合せがブロックレジ
スタ70の内容より大きいと、ブロックレジスタ70の
内容がインデックスとインデックスレジスタ68aの内
容との和(または差)から減算される。前記の関係と同
じく、ARAU52 aはこの点を比較器86を加/減
算器90によって、加/減算器80の内容からブロック
レジスタ70の内容を減算し、その結果をマルチプレク
サ88に与えることによって行う。この場合の式は次の
とおり: IF  1ndex T%+ /−5tep > bl
ockTHEN 1ndexr+++=(index*
 + /−5tepL blockコントローラ14は
、第2a図に示したごとくマルチプレクサ88によって
加/減算器90の出力を選びバス67aへ与えることで
循環アドレシングモードを選択する。
上記の説明から明らかなように、循環アドレシングの特
徴はメモリロケーション用のアドレスについて自動的な
ループ折返しを与えるだけでなく、メモリアドレスの変
更が所望のデータブロック外で行われる場合にも動作可
能である。これは、データブロックのアドレシングにお
ける追加の融通性を与える。例えば、ブロックサイズが
奇数であれば、2のインデックスでまず偶数のメモリア
ドレスを順序付けした後、奇数のメモリアドレスを順序
付けることによって、メモリブロックがアドレスされる
。このような方法により、一部のデジタル信号処理のア
プリケーションが、より少なくてもよいプログラムとデ
ータスペース及びより速い性能によって実施可能となる
間接アドレシング機能における循環アドレシング特徴の
効果は、追加のアドレシングモードを生み出すことにあ
る。第3表は、本発明の好ましい実施例に含まれる、循
環アドレシング特徴を備えたそれらの間接アドレシング
モードをリストアツブしている。第3表中“circ(
)”は、場合に応じて変位コードまたはインデックスレ
ジスタ68を伴なう、“ARn “で表わされる補助レ
ジスタ54の選択された一つの内容に対する演算での前
記循環特徴の組合せを示し、補助レジスタ54の変更内
容は“ARn ””で表わしである。
且   駆 破   曹   営   貴 ま   ま   5   寞 b   b    べ    に 略   曙   へ   へ 貴   貴   き    ) 昼    寛     1ト     5ト(′:A 
   −′:A    八    へ1巨 巨 巨 巨 再び第2図を参照すれば、データバスコントローラ56
がデータバス30のデータライン34dに接続され、デ
ータバス30からCPU12の各種部分へのデータの流
れを制御する。CPUI 2の内部に、一対のCPUバ
ス60aと60b及び一対のレジスタバス62aと62
bが存在する。
データバスコントローラ56は4−1マルチプレクサか
ら成り、CPUバス60aと60b及びレジスタバス6
2aと62bに接続された4つの入力を有する。従って
、任意のある時点におけるCPU12からデータバス3
0のデータライン30dへの発信は、これら4つの内部
バスの任意の一つから生じ得る。このような交信は勿論
、データバス30d上へのデータ発信と共に、対応した
アドレス信号がアドレスライン30aまたは30bに発
生されることを要求する。ARAU52aの出力はデー
タバス30のアドレスライン30aと30bにそれぞれ
接続されているので、このようなアドレスはデータバス
コントローラ56を介した所望のデータ発信と共にCP
U12から発生可能である。
ARAU52aと52bの並列特性が、単一マシンサイ
クル内での1より多いメモリアドレスのCPU12によ
る計算を可能とする。従って、データバスコントローラ
56は単一マシンサイクル内で、1より多いCPUバス
60とレジスタバス62をデータバス30のデータライ
ン30dに接続可能である。ARAtJ52aと52b
の出力のデータバス30のアドレスライン30aと30
bに対する印加の制ill及びCPU12の内部バスに
対するデータライン30dの時間多重化の制御は、実施
される命令コードに基づきコントローラ14によってな
される。
次に第3図を参照して、周辺ボート24と26の構造を
詳しく説明する。周辺ポート24と26は第1図を参照
して前述したように、データ30、プログラムバス34
及びDMAバス38に接続されている。周辺ポート24
は主にマルチプレクサ100から成り、これがコントロ
ーラ14からライン5ELz4上に発生される制御信号
に応じて、外部データラインD1をデータバス30のデ
ータライン30d1プログラムバス34のデータライン
34dまたはDMAバス38のデータライン38dへ選
択的に接続する。尚、マルチプレクサ100は外部デー
タラインD、とデータライン30d、34dまたは38
dの間で双方的な接続を生成し、両者間でデータを送受
可能である。さらにマルチプレクサ102が、どのデー
タラインがマルチプレクサ100によってデータライン
D、へ接続されるかに応じコントローラ14に応答して
、外部アドレスラインA、、をデータバス30のアドレ
スライン30aか30b1プログラムバス34のアドレ
スライン34a1またはDMAバス38のアドレスライ
ン38aへ選択的に接続する。
多数の制御ラインが、(図面を見易くするため図示して
ないライン上の)同じくコントローラ14から発生され
る信号に応じて、周辺ボート24内のバッファ104に
よって制御される。周辺ポート24から出力されるこれ
らの制御ラインには、周辺ポート24を通じたデータの
流れ方向を指定するラインR/W−が含まれる。例えば
、外部のメモリ装置は、その人/出力端子をラインD、
1へ接続し、そのアドレス端子をラインAfiへ接続す
ることによりデータメモリとして機能し得る。マイクロ
コンピュータ10の周辺ポート24は、所望のアドレス
ライン、例えばデータバス30のアドレスライン30b
をラインAfiに接続し、−ラインR/W−を高論理状
態に駆動し、外部メモリ装置がデータバス30のアドレ
スライン30b上に指定されたロケーションで読み取ら
れるべきことを指示することによって、そのような外部
メモリのメモリ読取を行える。逆に、ラインR/W−上
の高論理状態は、外部のメモリ装置がマルチプレクサ1
0Gを介してラインD7に接続されたデータライン30
d上に存在するデータ状態で書き込まれるべきことを指
示する。
周辺ポート24に接続された制御ラインはさらに、コン
トローラ14に応じバッファ104によって駆動される
ライン5TRB−(ラインR/W−と同じく“−”の表
示はアクティブローを示す)を含み、これは場合に応じ
、ラインA、、に接続された一組のアドレスライン30
a、30b、34aまたは38aの何れが有効なアドレ
ス信号をアドレスメモリに与えているかを指示するクロ
ック信号である。ラインHOLD−とRDY−は、外部
装置からマイクロコンピュータlOへの入力である。ア
クティブローのラインHOLD−は周辺ポート24によ
ってそのラインD、 、A、 、R/1 &び5TRB
−へのインタフェースを高インピーダンス状態に置き、
かかるラインに接続された複数の装置がコンピュータ1
0からの干渉またそれへの干渉を生じることなく相互間
で交信可能である。ラインHOLDA−は周辺ポート2
4のバッファ104を介しコントローラ14によって駆
動されるアドレス信号で、その低論理状態において、マ
イクロコンピュータ10が低論理状態のHOLD−信号
を受信していることを示し、周辺ポート24を高インピ
ーダンス状態下に置く。
ラインRDY−もマイクロコンピュータ10への入力で
、その低論理状態に駆動されたとき、データラインDR
、アドレスラインA。、及び制御ラインR/W−と5T
RB−に接続された外部装置がマイクロコンピュータ1
0との交信サイクルを完了したことを示す。コントロー
ラ14は、低のRDY−信号で終了した交信サイクルに
関する以外の有効状態へと周辺ポート24によって上記
ラインを駆動する前に、RDY−信号を必要とする。
周辺ポート26も周辺ポート24と同様に構成されるが
、周辺ポート24から独立したライン5ELzi、によ
って制御され、周辺ポート24と26によって使われる
バス30.34及び38が同時に使用されない限り、両
周辺ポートにおける交信が同時且つ独立に発生可能であ
る。周辺ポート26は主に、外部入/出力装置との交信
で使われる。従って第3図に示すように、周辺ポート2
6は周辺ポート24内の同様の構成要素と対応したマル
チプレクサ108と110、及びバンファ112を有す
る。同じく、周辺ポート26はデータバス30、プログ
ラムバス34及びDMAバス38を、周辺ポート24で
の同様に表示されたラインと同じ機能をそれぞれ有する
ラインl10D、l、l10A、1、l10RDY−1
I10STRB−、l10HOLD−1I10HOLD
A−及びl10R/W−にインタフェースする。尚、複
数のバス30.34及び38が周辺ポート24と26に
それぞれ接続されているため、周辺ポート24と26は
同時に動作可能である。
次に第4図を参照して、コントローラ14の構造と動作
を詳しく説明する。コントローラ14は、命令コードに
よって指定された所望の動作が正しく実行されるように
、マイクロコンピュータ10の残部の動作を制御する目
的を果たす。
コントローラ14は、マイクロコンピュータ10の外部
から与えられるクロック信号を受信する。コントローラ
14内のクロック発生器200が端子X1とX2に接続
され、マイクロコンピュータ10内で使われる内部クロ
ック信号、例えばラインCLKIN上にシステムクロ7
りを発生する。クリスタルが両端子X1とX2間に接続
されている場合には、クロック発生器200が内部発振
器によってラインCLK I N上にシステムクロック
信号を発生する。あるいは、外部発生クロ。
りを端子X2に加えてもよく、この場合には外部発生ク
ロック信号が(必要ならクロック発生器200内のn分
割器−不図示−を介して)ラインCLKIN上にシステ
ムクロック信号を発生する。
クロック発生器200は更に、ラインCLKIN上に発
生されるクロック信号の周期の第1及び第3クオータ(
%)サイクルで生じるクロック信号Q1とQ2も発生し
、これらのクロック信号Q1とQ2は後述するようにコ
ントローラ14内のメモリアクセス仲裁ロジック206
によって使われる。
命令コードのフェッチ及びかかる命令コードに応じたマ
イクロコンピュータ10の制御に関連して、コントロー
ラ14はプログラムカウンタ(PC)92、命令レジス
タ(IR)94、制御ロジック202、及びプログラム
カウンタ制御ロジック204を含む。プログラムカウン
タ92は24ビツトのピットレジスタで、プログラムバ
ス34のアドレスライン34aに接続された出力を有す
る。
プログラムカウンタ92の機能は、マイクロコンピュー
タ10によってフェッチ、デコード及び実行されるべき
次の命令のメモリアドレスを記憶することにある。命令
フェッチサイクル(ラインCLKIN上のシステムクロ
ック信号の一周期中に生じる)中に、プログラムカウン
タ92の内容がプログラムバス34のアドレスライン3
4a上に置かれ、アドレス信号に対応したメモリロケー
ションを含むメモリ16.18.20の一つ(または外
部メモ1月が、アドレスされた内容をプログラムバス3
4のデータライン34d上に与える。
このときプログラムカウンタ92内に含まれたアドレス
を有するメモリロケーションの内容が、デコードされる
べき次の命令の命令コードを構成する。命令レジスタ9
4は32ビツトのレジスタで、プログラムバス34のデ
ータライン34dに接続され、フェッチサイクル中プロ
グラムカウンタ92の内容を受け取る。
ラインCLKIN上のシステムクロック信号のフェッチ
サイクルに続く次の周期で生じるデコードサイクル中に
、命令レジスタ94の内容が制御ロジック202によっ
てデコードされ、コントローラ14から出る制御信号を
マイクロコンピュータ10の機能回路に発生する。これ
を達成するため、制御ロジック202の第1部分は、命
令コードをデコードする組合せロジックを含む。このよ
うな組合せロジック(第4図にロジック202aとして
示す)は、プログラマブル論理アレイや読出専用メモリ
等周知のさまざまな方法で実現できる。つまり、命令レ
ジスタ94からの命令コードは、組合せロジック202
aによってデコードされ複数の出力ラインに導かれる。
これら出力ラインの一部は、プログラムカウンタ制御ロ
ジック204等制御ロジック202外部の機能に直接接
続される一方、他の出力ラインは制御ロジック202内
の逐次ロジック202b内に入力される。
逐次ロジック202bはマイクロコンピュータ10の各
種機能を制御するように動作し、cpu12によるメモ
リからのデータオペランドの続出を可能にすると共に、
CPU12から該オペランドに加えられるデータ処理動
作の実行を制御する。
逐次ロジック202bは勿論これらを、そこから出てい
く追加の出力ラインを介して達成する。つまり、組合せ
ロジック202aまたは逐次ロジック202bいずれに
せよ制御ロジック202からの出力ラインの論理状態は
、命令レジスタ94から制御ロジック202によって受
信された命令コードによって決まる。尚、こ\で参照す
る図面は見易くするため、コントローラ14とかかる機
能回路間における制御ラインの接続を示してない。
従って、制御ロジック202内の組合せロジック202
aが命令レジスタ94に記憶された命令コードをデコー
ドしている間に、コントローラ14がメモリから次の命
令をフェッチ可能であることが明らかであろう。さらに
当該分野で周知のごとく、逐次ロジック202bは前に
フェッチされた命令の実行を制御すると同時に、ある命
令に関するオペランドの続出を制御するように動作可能
である。従って制御ロジック202は、4つの異なる命
令コードの各部分が同時に実行可能な方法でマイクロコ
ンピュータ10を制御できる。このような命令コードの
“パイプライン”は、あるシーケンスの命令を実行する
のに必要な時間を明らかに減少する。
第4a図は、パイプラインがいかに満たされるか、従っ
てパイプラインがいかに一般の命令に対して動作するか
を示している。ラインCLKIN上のシステムクロック
信号の第1サイクルでは命令nが例えばメモリ16.1
8.20の一つからコントローラ14によってフェッチ
される。しかしこのフェッチサイクル中、プログラムカ
ウンタ制御ロジック204はプログラムカウンタ92の
内容をインクレメントし、命令n+1のための命令コー
ドのメモリロケーションをそこに入れている。ラインH
LKIN上のシステムクロック信号の第2サイクルでは
、命令nのための命令コードが制御ロジック202によ
ってデコードされる。
同時にこの第2サイクル中、プログラムカウンタ92の
内容がプログラムバス34のアドレスライン34aに与
えられ、命令n+lのための命令コードがプログラムメ
モリからフェッチされて命令レジスタ94にロードされ
る。
第4a図に示した第3のシステムクロックサイクルでは
、逐次ロジック202bが命令nに必要なデータオペラ
ンドを、データバス30を介してメモリ(例えばRAM
16)から読み取る。さらに、命令rl+1のための命
令コードがフェッチされているので、第4a図の第3サ
イクルでは図示のように、命令n+1が制御ロジック2
02の組合せロジック202aでデコードされている。
また命令n用の読取サイクルと同時に、命令n+2のた
めの命令コードがフェッチされる。但し、命令n用の読
取サイクルとバスまたはメモリ衝突を生じていものとす
る。前述したように、−iにデータオペランドはデータ
バス30を介しCPU12によって読み取られる一方、
命令コードはプログラムバス34を介して読み取られ、
両方が異なるメモリ16.18.20内にあるか、また
は一方が外部メモリ内にあるとすれば、バス衝突は生じ
ない。
システムクロックの第4サイクルでは、命令nが制御ロ
ジック202内の逐次ロジック202bの制御下で実行
され、命令n+1用の読取動作が逐次ロジック202b
によって行われ、命令n+2のための命令コードがデコ
ードされ、命令n+3のための命令コードがフェッチさ
れる。従って、マイクロコンピュータ10のパイプライ
ンが満たされ、命令シーケンスの性能が最適となる。但
し、一部の命令組合せでは、バス衝突及びメモリアクセ
ス衝突によって、動作の一つの待ちサイクルが生じる。
データバス30のデータライン30dはコントローラ1
4に導かれ、プログラムカウンタ92がCPUI 2に
よってまたはメモリからロードされることを要求する分
岐命令等、インクレメント方式以外でプログラムの流れ
を制御する。例えば、無条件分岐の場合、命令コード、
メモリからの読取、またはCPU12内のレジスタから
の読取に含まれるオペランドの値は、実行すべき次の命
令コードを含むメモリロケーションのアドレスを含み得
る。そして、プログラムカウンタ制御ロジック204が
データライン30d上に与えられた値を受け取ってプロ
グラムカウンタ92にロードし、プログラム制御が所望
のロケーションに対してなされるようにする。
第4図に示すように、プログラムカウンタ制御ロジック
204は、プロルブラムカウンタ92の内容を受け取る
加算器203を含む。制御ロジック202(好ましくは
その組合せロジック202 a)が加算器203を制御
し、次にサイクルのためのプログラムカウンタ92の内
容発生がさまざまな方法で行えるようにする。前述のご
とく、加算器203はプログラムカウンタ92の前の内
容をインクレメントし、明細シーケンスのステップを進
めるだけである。しかし、プログラムカウンタ制御ロジ
ック204は更に、データバス30のデータライン30
dから値を受取可能なレジスタ205を含んでいる。従
ってプログラムカウンタ制御ロジック204は、さまざ
まな方法でプログラムカウンタ92の内容を計算できる
。例えば、(プログラムカウンタ92に対する)相対ア
ドレスへの分岐は、データバス30のデータライン30
d上に与えられた値をレジスタ205ヘロードすること
によって得られ、この値がプログラムカウンタ92の前
の内容に加えられて、プログラムカウンタ92用の新た
な値を発生する。また、データバス30のデータライン
30dからの所望メモリアドレスをレジスタ205にロ
ードし、制御ロジック202により加算器203でレジ
スタ205の内容と“ゼロ加算”を行いそれをプログラ
ムカウンタに与えることによって、絶対分岐を行うこと
もできる。
尚、分岐命令がその実際の発生より3命令前にフェッチ
されるように、マイクロコンピュータIOは“遅延”分
岐命令を発することができる。
遅延分岐命令が実行されると、分岐の宛先メモリアドレ
スが間接分岐としてレジスタ205にロードされる。し
かし制御ロジック202は、遅延分岐命令の実行に続く
次の3命令の間、プログラムカウンタ92の内容をイン
クレメントし続ける。
第3番目の命令にくると、加算器203がレジスタ20
5の内容をプログラムカウンタ92に与え、パイプライ
ン方式の利点を維持しながら分岐を行う。勿論、宛先ロ
ケーションはそれまでと同様加算器203によってイン
クレメントされ続けるので、分岐後もパイプラインは満
たされている。
コントローラ14は更に割込ロジック250を含み、こ
れはマイクロコンピュータ10の複数の外部端子、コン
トローラ14、及びマイクロコンピュータ10内の各種
機能に接続されている。割込ロジック250は、RES
ET端子及び端子INTO〜INT3を経てマイクロコ
ンピュータ10に与えられる割込信号を受信すると共に
、直列ポート42やDMAコントローラ22等各種の機
能からマイクロコンピュータの内部で発生される割込信
号を受信する目的を果たす。このような割込信号の一例
は第4図中、D M Aコントローラ22からの割込信
号であるライン312によって示しである。CPU12
内には制御レジスタとして、メモリマツプ式のアドレス
可能レジスタである割込許可レジスタ252が含まれ、
その内容が各々の割込信号が許可または禁止されるかを
指定する。端子INTO−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及び2
0へ同時アクセス可能なことが明らかであろう。この場
合には、コントローラ14によってバス仲裁を行う必要
がなく、メモリアクセスは独立に生じ得る。
しかし、実行される命令コードに応じ、同時アクセスが
要求されることもある。従って、メモリアクセスに関連
したバス衝突を防ぐため、コントローラ14は更にメモ
リ仲裁ロジック206を含んでいる。メモリ仲裁ロジッ
ク206はクロック発生器200からクロック信号Q1
とQ2を受信し、またバス30.34及び38の各アド
レスライン上のアドレス信号も受信する。メモリ仲裁ロ
ジック206はメモリ16.18及び20の各々にそれ
ぞれ至るラインSEL、いsEt、+s、5EL2゜に
出力信号を与え、更に周辺ポート24と26にそれぞれ
至るラインsEt、zaと5ELza上にも信号を発生
する。メモリ仲裁ロジック206の目的は、メモリ16
.18及び20並びに外部及び入/出力メモリへのアク
セスを所定の優先順位に従って制御することにある。
以下に示す例の目的上、優先順位はデータバス30のア
ドレスライン30aと30bが最高優先順位を持ち、そ
の後にプログラムバス34のアドレスライン34aが続
き、DMAバス38のアドレスライン38aが最下の優
先順位を持つものとする。この優先順位はマイクロコン
ピュータ10、特にCPUI 2の構造によって選ばれ
る。乗算器46とALU48の並列接続は、マイクロコ
ンピュータ10をデジタル信号処理の用途に応用した場
合に、命令フェッチのためデータ交信が待たなければな
らなくなると、その逆よりも著しく性能が影響される可
能性が強いことを意味する。DMA動作を最下の優先順
位としたのは、DMA動作が他の動作より遅くなること
で及ぼされるほとんどのアプリケーションプログラムに
対する性能全体の影響が最小となるからである。但し、
本発明の他の応用では、優先順位を変えた方がより良好
に動作することもある0例えば、グラフィック用途の場
合、ビデオ表示のリフレッシュ機能を与えるのに使われ
るのであれば、DMAは最高レベルに順位付けするのが
最良である。従って、ここでの説明による順位付けは例
示にすぎない。
次に第5図を参照すると、コントローラ14内のメモリ
仲裁ロジック206による一つのメモリポート32aの
制御が例示しである。第1図に関連して前述したように
、各メモリポート32aはそれぞれ一組のデータバス3
0のアドレスライン30aと30 b、’プログラムバ
ス34のアドレスライン34a、及びDMAバス38の
アドレスライン38aからアドレス信号を受信するよう
に接続されている。第5図に示したようにメモリポート
32aは、その入力で上記アドレス信号を受信し・コン
トローラ14からの信号に応じて各組のアドレスライン
のうち選択された一つを付設メモリ16.18または2
0のデコーダ33に接続することで、主にマルチプレク
サの機能を果たす。
第5図は、コントローラ14内のメモリ仲裁ロジック2
06のうち、一対のポート32aと32dを制御する部
分の論理概略図で、第5図に示したポート32aと32
dはRAM16に付設されている。前述したようにマイ
クロコンピュータ10では、マイクロコンピュータ10
内の全てのメモリ16.18及び20に対し、マイクロ
コンピュータ10の外部で周辺ポート24及び26を介
してアクセス可能なメモリのアドレスを含め、単一のメ
モリアドレススペースが使われている。
マイクロコンピュータ10のメモリアドレススペースは
16Mword  (バス30.34及び38の各組の
アドレスラインで24ビツトが転送されるため224ワ
ード)であることを想起されたい。この単一メモリスペ
ースを用いた場合について、第4表は本発明の好ましい
実施例によるマイクロコン  −ピユータ10のメモリ
マツプを示す。
oooooo〜00003F       割込処理0
00040〜0OOFFF       ROM200
01000〜7FFFFF       外部メモリ5
ooooo〜800FPF     Ilo &その他
のメモリマツプ式レジスタ 801000〜8013FF       RAM 1
6801400〜8017FF       RAM 
18801800−FFFFFF       外部メ
モリ前述したように、Ilo及びメモリマツプ式レジス
タを参照するメモリアドレススペースは周辺ポート26
 (後述するように周辺バス28を介してアドレス可能
なレジスタ、更にD M Aコントローラ22、タイマ
40、直列ポート34及びフォーマット変換器24内の
レジスタを含む)と関連する一方、外部メモリへのアク
セスは一般に周辺ポート24を介して処理される。
メモリ仲裁ロジック206内にはデコーダ1−20 a
〜120dが存在し、これらのデコーダが各組のアドレ
スライン30a、30b、34a及び38aのうち対応
した一つについて、対応アドレスライン上の指定さたア
ドレス値が制御されるべきメモリ16.18及び20の
ある一つの範囲内の値を有するかどうかを判定するのに
充分な数のアドレスラインをデコードする。例示の目的
上、第5図に示した一つのポート32aはRAM16に
対応し、従って第5図のポート32aは各組のアドレス
ライン30a、30b、34aまたは38aの一つ上の
801000.と8013FF、の間にあるアドレス値
と応答すべきものとする。尚、勿論当業者であれば、ア
ドレスラインの下位10桁の“考慮に入れない(don
’t care)値をうまく利用するように、デコーダ
120a〜120dを設計可能であろう。各デコーダ1
20の出力は第5図の例において、そこに接続されたア
ドレスラインが範囲801000.〜8013FF、内
にあるとき論理“1”である。デコーダ120a〜12
0dからの出力ラインはそれぞれM30A、M30B、
M34A及びM38Aで、アドレスとRAM16に対応
したメモリアドレススペースとの間の一致の存否を表わ
す。
前述したように、コントローラ14のクロック発生器2
00が、ポート32aの制御で使われる2つのクロック
信号Q1とQ2を発生する。また前記のごとく、マイク
ロコンピュータ10用のシステムクロックはラインCL
KIN上のクロック信号と対応している。クロック信号
QlとQ2は各々、ラインCLKIN上のシステムクロ
ックの位相と対応している。クロック信号Q1はシステ
ムクロ7りの第1クオータ(%)サイクルの間“1”で
、クロック信号Q2はシステムクロックの第3クオータ
(%)サイクルの間“1”である。
第5図に示したメモリ仲裁ロジック206は、各組のア
ドレスライン30aと30b上のアドレス信号を相互に
時間多重化するためにこれら2つのクロック信号Q1と
Q2を用いる。第5図に示した信号M30AはANDゲ
ート122aの第1人力に接続される一方、クロック信
号Q1がANDゲー)122aの第2人力に接続されて
いる。従ってANDゲート122aの出力は、システム
クロックの第1クオータサイクル中にデータバス30の
アドレスライン30a上に与えられるアドレスが(図示
の例においては)RAM16のメモリスペース内にある
ときのみ1”となる。ANDゲート122aの出力はポ
ート32aに接続され、5EL30Aで表わしである。
ポート32aは、“1”の論理状態のライン5EL30
Aに応答して、データバス30のアドレスライン30a
を選びRAM16のデコーダ33に与える。これに対し
ライン5EL30Bは、デコーダ120bの出力とクロ
ック信号Q2の論理ANDを出力するANDゲート12
2bの出力に接続されている。
従ってボート32aは、システムクロ7りの第3クオー
タサイクル中にアドレスライン30b上の値が8010
00hと8013FFkの間にあるときのみ、アドレス
ライン30bを選んRAM16のデコーダ33に与える
。このため上記の説明及び第5図から、特に第5図に示
したようにコントローラ14で実施されるーサイクル内
に2つのアドレスを時間多重化しているので、データバ
ス30の各組のアドレスライン30aと30bがあるサ
イクル中に同一のメモリ16.18.20 (または外
部メモリ)に差し向けられる衝突を決して生じないこと
が明らかであろう。また、バス34と38上のアドレス
値はコントローラ14によってライン5EL3OAと5
EL30B上における論理状態“1”の発生と見なされ
ないから、各組のアドレスライン30aと30b上のア
ドレスはプログラムバス34及びDMAバス38のアド
レスラインに対して最高の優先順位にあることも明らか
であろう。
このようなプログラムバス34のアドレスライン30a
及びDMAバス38のアドレスライン38aに対する優
先順位の制御は、コントローラ14によって行われる。
プログラムバス34のアドレスライン34aをその入力
で受け取るデコーダ120cは、前記デコーダ120a
と120bと同じく、アドレス値が801000hと8
013FFhO間にあるとラインM34A上に論理状態
“1”を発生する。ラインM34AはANDゲート12
4aと124b各々の一人力に接続され、該各ANDゲ
ートはその3人力の論理ANDに対応した信号を出力に
発生する。ANDゲート124aの第2人力はクロック
信号Q1に接続され、ANDゲート124aの第3反転
入力はラインM30Aに接続されている。従って、AN
Dゲート124aの出力は、データバス30のアドレス
ライン30aのアドレス値がRAM16のメモリロケー
ションと対応しない場合及びその場合にのみ、システム
クロックの第1クオータサイクルの間(この例では)R
AM16内のメモリロケーションに応じたアドレスライ
ン34a上のアドレス値に対応する論理状態“1”とな
る。この論理状態“l”はORゲート126を介してラ
イン5EL34からボート32aに加えられ、プログラ
ムバス34のアドレスライン34aが選ばれてRAM1
6に加えられるべきことを指示する。ラインM30Bが
低く (つまりアドレスライン30b上のアドレスがR
AM16用のメモリアドレス外のメモリロケーションに
対応する)の間、アドレスライン30aのポート32a
によるRAM16への印加がANDゲート124bによ
って同様に可能となる。
DMAバス38のアドレスライン38aのボート32a
による選択は、ライン5EL38上の論理状態“1”に
よって可能となる。ライン5EL34上の論理状態“1
”と同じく、ライン5EL38上の論理状態“1″はデ
コーダ120d (ライン38aのアドレス値がRAM
16のアドレススペース内にあるときに論理状態′1”
となるラインM38Aをその出力に有する) 、AND
ゲート128aと128b、及びORゲート130を介
して発生される。但し、ANDゲート128aと128
bは各々、デコーダ120cの出力からのラインM34
Aに接続された第4の反転入力を有する。つまり、ライ
ン5EL38上に論理状態“1”を発生するためには、
データバスのアドレスライン30a (または現在のク
ォータサイクルに応じて301))上のアドレス値とア
ドレスライン30a上のアドレス値が共に(この例では
RAM16のメモリロケーションと対応しなければなら
ないので、DMAバス38のアドレスライン38aの選
択はプログラムバス34のアドレスライン34aよりさ
らに低い優先順位にある。
第5図に示すように、ポート32dも同じくライン5E
L16(つまりライン5EL30A、5EL30B、5
EL34及び5EL38)によって動作可能で、データ
バス30.34または38の正しいデータラインを選ん
で対応したメモリ (この例ではRAM16)に接続さ
せる。データライン30dはデータバス30のアドレス
ライン30aとアドレスライン30bの両方によってア
クセスされるので、データバス30のデータライン30
dを選択するために5EL30Aと5EL30HのOR
がとられる。また、アドレスライン30a、30b、3
4a、38aの何れも対応するメモリのアドレススペー
ス内にない場合には、ポート32aと32dが各々トリ
ステートとされる。これによって、対応するメモリが選
択されないときデータライン30d、34dまたは38
dと干渉するのを防ぐ。
第1及び4図に示したように、コントローラ14内のメ
モリ仲裁ロジック206はSEL、sとS E L z
。を介してそれぞれメモリ18と20のポート32aと
32bに選択出力を発生する。更にメモリ仲裁ロジック
206は、第5図に関連して前述したのと同様な方法で
、ライン5EL2Jと5ELzhを介して周辺ポート2
4と26にそれぞれ選択出力を与える。周辺ポート24
と26内では、第3図のマルチプレクサ100.102
.106及び108が上記アドレスライン30a、30
b、34a及び38a上のアドレス値に応じ、同じ優先
順位方式に基づいて動作可能とされる。
各種メモリ装置用の読取及び書込動作の制御は、第4図
に示したコントローラ14の論理ロジック202内の逐
次ロジック202bからの制御出力の一部によって達成
される。この機能はコントローラ14で実行されるその
他の制御機能と同じく、コントローラ14によって受信
及びデコードされる命令コードに応じて生じる。
次に第5a図を参照すれば、本発明の並列及び二重アク
セス特徴を例示するために、一連のメモリアクセスのタ
イミングと優先順位付けが示しである。第5a図の最上
ラインは、ラインCLKIN上のシステムクロック信号
の動作を示し、各サイクルは以下の説明に相関してそれ
ぞれ番号付けある。
クロック信号Q1とQ2は前述のごとく発生され、クロ
ック信号Q1はシステムクロック周期の第1クオータサ
イクル中アクテイブとなり、クロック信号Q2はシステ
ムクロック周期の第3クオータサイクル中アクテイブと
なる。分り易くするため、第5a図に示した例は全て各
種メモリに対する読取アクセスである。尚、RAM16
と18及び外部メモリへの書込アクセスは、第5a図に
示した読取アクセスと同じ方法で優先順位付は及び許可
され、メモリが対応したデータラインの値で書込に応答
する点だけが異なる。
第5a図に示したシステムクロックCLK I Nの第
1サイクルでは、アドレスライン30aがRAM16内
のメモリロケーションに対応したアドレス値iIを伝送
しており、同じくアドレスライン30bがROM20内
のメモリロケーションに対応したアドレス値j1を伝送
している。システムクロックCLKINの第1クオータ
サイクルでアクティブなりロック信号Q1に応じて、R
OM16がデータバス30のデータライン30d上にメ
モリロケーション11の内容を与える。更にシステムク
ロックCLKINの第3クオータサイクルでアクティブ
なりロック信号Q2に応じて、ROM20がデータバス
30のデータライン30d上にメモリロケーションj1
の内容を与える。勿論、アドレスライン30aと30b
は異なるメモリを参照しているので、両者間で衝突は生
じない。
また第5a図に示したシステムクロフクCLKINの第
1サイクルの間に、プログラムバス34のアドレスライ
ン34aも、ROM20内のメモリロケーションに対応
したアドレス値に1を伝送している。データバス30の
アドレスライン30bの方がプログラムバス34のアド
レスライン34aより高い優先順位を持つので、アドレ
スライン30bがROM20に7’クセス許可されRO
M20はアドレスライン34aに応答しない。従って、
他のメモリはアドレス値に、によってアクセスされてい
す、RAM16がアドレスライン30aと30bによっ
てアクセスされているから、プログラムバス34のデー
タライン34dは高インピーダンス状態に留まる。同じ
く第1サイクルの間には、DMAバス38のアドレスラ
イン38aがRAM16内のメモリロケーションに対応
したアドレス値11を伝送している。しかしアドレスラ
イン38aはデータバス30のアドレスライン30aよ
り優先順位が低いので、DMAバス38のデータライン
38dも高インピーダンス状態に留まる。バス30.3
4及び38のうち2つから単一メモリ装置へのアクセス
試みで衝突が生じているため、コントローラ14は制御
ロジック202を介して低優先順位バスの所望なメモリ
アドレスを与え続けており、従ってそのメモリへのアク
セスが許可されるや否や、プログラムの実行がアクセス
を否定されていたバス34.38の一方について同じ時
点から再び始まる。
第5a図に示した第2サイクルでは、アドレスライン3
0aと30bがRAM18にそれぞれアドレス値12と
j2を与える。従って第1サイクルと同様、データライ
ン30dにはクロック信号Q1とQ2に応じてメモリロ
ケーション12とj2の内容が与えられる。異なる組の
アドレスライン30aと30bが第5図に関連して説明
したごとく、システムクロック周期内の異なる時点でR
AM16を与えられるようにコントローラ14の動作に
よって制御されているため、共にRAM16を参照して
いるアドレスライン30aと30b間での衝突は生じな
い。プログラムバス34のアドレスライン34aは、R
OM20内のメモリロケーションに対応したアドレス値
に、を伝送し続けている。アドレスライン30aと30
bはRAM16にアクセスしているので、プログラムバ
ス34はROM20へのアクセスが許可され、クロック
信号Q1に応じてROM20内のメモリロケーションに
1の内容がプログラムバス34のチータライン34d上
に与えられる。また第5a図に示した第2サイクルの間
、DMAバス38のアドレスライン38aは、RAM1
6内のメモリロケーションに対応したアドレス値1.を
伝送し続けている。データバス30とプログラムバス3
4どちらもRAM16ヘアクセス許可されていないので
、RAM16はクロック信号Q1に応じメモリロケーシ
ョン2□の内容をDMAバス38のデータライン38d
上に与える。従って、本発明に従って構成されたマイク
ロコンピュータ10は、3種の異なるメモリロケーショ
ンへの3つの並列アクセスを同時に発生なことが明らか
であろう。データバス30の各組のアドレスライン30
aと30bにおけるサイクル内多重化を考慮に入れれば
、1つのシステムクロックサイクル内での4つのメモリ
アクセスも実施可能となる。
第5a図に示したシステムクロックCLKINの第3サ
イクルは、データバス30のアドレスライン30aがD
MAバス38のアドレスライン38aに対して優先性を
持つ効果を示している。
クロック信号Qlがアクティブのとき、アドレスライン
30aとアドレスライン38aは共にRAM18のアド
レススペース内のアドレス値(それぞれ値i3とtz)
を伝送している。従って、データバス30の方がDMA
バス38より優先してRAM18にアクセス許可される
;っまりデータバスのデータライン30dにメモリロケ
ーションi、の内容が与えられる一方、DMAバス38
のデータライン38dは高いインピーダンス状態となる
。しかし、クロック信号Q2がアクティブになると、デ
ータバス30のアドレスライン30aはクロック信号Q
1に応じてのみアクセス許可されるので、DMAバス3
0のアドレスライン30aがRAM18にアクセス許可
される。アドレスライン30bはRAM16内のメモリ
ロケーションに対応したアドレス値j、を伝送している
から、アドレスライン38aがRAMにアクセスし、デ
ータライン38dにはクロック信号Q2に応じてRAM
18のメモリロケーション12の内容が与えられる。
第5a図に示した第4サイクルでは、アドレスライン3
4aがRAM18内のメモリロケーションに対応したア
ドレス値に、を伝送し、同じくアドレスライン38aも
RAM18内のメモリロケーションに対応したアドレス
値13を伝送している。前述したように、プログラムバ
ス34の方がDMAバス38に優先して許可される。従
って、クロック信号Q1に応じRAM18内のメモリロ
ケーションに3の内容がプログラムバス34のデータラ
イン34dに与えられる一方、DMAバス38のデータ
ライン38dは高インピーダンス状態となる。第5a図
に示した第5サイクルは、外部メモリがそこのメモリロ
ケーションに対応したアドレス値に、を伝送しているア
ドレスライン34aによってアクセス可能なことを例示
している。プログラムバスによる外部メモリのアクセス
のため、DMAバス38とデータバス30は同時にアク
ティブとなる。前述したように、外部メモリへのアクセ
スは周辺ポート24を介して生じ、また後述するように
、DMA動作の間周辺ポート26の動作は禁止される。
更に、アドレス及びデータ情報の出所と前記バス30.
34及び38によって捜されるデータの宛先は、第5及
び5重図に関連した上記の説明では指定されてないこと
に留意されたい。しかし前述したように、命令コードの
デコード及び実行におけるコントローラ14の主な機能
の一つは、どの2つの機能ブロック(例えば周辺ポート
24とCPU12)が同一バス(例えばデータバス30
)の制御を試みないように、マイクロコンピュータ10
の各種機能ブロックを制御することにある。
メモリ16.18及び20(または外部メモリ)と反対
側のバス端におけるこのようなバス制御及び仲裁は、当
該分野で周知な方法でコントローラ14によって行われ
、現在入手可能な多くの汎用及び専用マイクロプロセッ
サとマイクロコンピュータで実施し得る。
従って上記の説明から、マイクロコンピュータ10の単
一アドレススペース内で各種のメモリ利用の組合せが可
能なことが明らかであろう。この点は、3つのバス30
.34及び38の各々による各種メモリエンティティ 
(つまりRAM16、RAM18、ROM20及び外部
メモリ)の各々へのアクセス可能性によって可能となる
。従って、コントローラ14がプログラムバス34を介
し・て命令コードにアドレスしそれを受け取る一方、こ
のようなアドレスは、データバス30を用いCPU12
によってアクセス可能なデータメモリを含め、RAM1
6内に存在し得る。従ってこの編成は、単一のメモリ(
例えばRAM16)をプログラム及びデータ両メモリと
して用いることでノイマン型構成のマイクロコンピュー
タ10への応用を可能とし、この動作を行うのにRAM
16内を区分する必要がない。しかしマイクロコンピュ
ータ10は、例えばROM20内にプログラムメモリを
記憶し、RAM16内にデータメモリを記憶することに
よってバーバード型構成でも使える。そしてCPU12
がデータオペランドをRAM16にアクセスするのと同
時にコントローラ14が命令コードをROM20にアク
セスし、メモリを区分する見返りとしてバーバード型マ
シンの性能向上を達成できる。さらに、マイクロコンピ
ュータ10は2重のアクセス特徴を備えているから、R
AM16等単−のメモリを使うことにより、ノイマン型
とバーバード型両方の構成で幾つかの利点を達成可能で
ある。つまり、2重のアクセス特徴は、データバス30
で時間多重化特徴を使えるため、同一のメモリに対して
も1つのシステムクロックサイクル内で2回のアクセス
を可能とする。
これが同一の物理メモリスペースをデータ及びプログラ
ム両メモリのために使用可能としつつ、2つの別々なメ
モリという性能上の利点を達成可能としている。また、
マイクロコンピュータ10は2つの構成に編成可能な他
、一部のタスクをノイマン方式で実行し、他の一部のタ
スクをバーバード方式で実行するように動的に再編成可
能なことも明らかであろう。従って、本発明に従って構
成されたマイクロコンピュータ10は、所望の用途に基
づいてユーザがマイクロコンピュータ10を最適化する
のを可能とする。
次に第6a〜6d図を参照して、命令の実行におけるC
PU12の動作を詳しく説明する。ここで説明する例示
の命令は並列の乗算と加算で、このような命令はデジタ
ル信号処理の用途で反復して使われ、マイクロコンピュ
ータ10がその実行のために専用に設計される命令の一
例である。また、並列の乗算及び加算命令は、本発明に
従って構成されたマイクロコンピュータ10の好ましい
実施例におけるCPU12の主要特徴を例示するもので
もある。ここで説明する例の目的上、命令コードはRO
M20内に存在し、データオペランドはRAM16内に
存在すると仮定するが、勿論マイクロコンピュータ10
は前述のごとく、命令コードとデータオペランドが共に
同一のメモリブロック内に存在するようにしたり、ある
いはその他任意の構成とし得る。ここで説明する命令の
乗算は、間接的後変位加算及び変更アドレシングモード
(第1表参照)を用い補助レジスタ54aによってアド
レスされたメモリロケーションの内容を、間接的後変位
減算及び変更アドレシングモードを用い補助レジスタ5
4hによってアドレスされたメモリロケーションの内容
と乗算し、その結果をデータレジスタ50a内に記憶す
るもので、使用した変位は1つの値である。この乗算が
、データレジスタ50aの内容とデータレジスタ50e
の内容との加算及びそめ和のデータレジスタ50e内へ
の記憶と並列に行われる。
第6a図は、上記並列の乗算及び加算演算用命令コード
のフェッチサイクル時における、CPU12、コントロ
ーラ14、ROM20とRAM16、及び相互接続バス
30と34の動作を示している。第6a図中の太線矢印
が、図示の動作中にアクティブな信号が移動する経路を
示す。第6a図に示すように、コントローラ14内のプ
ログラムカウンタ92の内容がプログラムバス34のア
ドレスライン34a上に与えられる。ROM20にアク
セスするデータバス30との間に衝突は生じないものと
して、プログラムカウンタ92の内容に対応したROM
20内のメモリロケーションの内容がプログラムバス3
4のデータライン34dに与えられ、命令レジスタ94
内に記憶される。
第6b図は、並列の乗算及び加算のデコードサイクル時
におけるマイクロコンピュータ10の動作を示す。この
サイクル中、コントローラ14は乗算のオペランド用メ
モリアドレスの発生を可能とする。従って、補助レジス
タ54aの内容が補助レジスタバス65aに与えられる
一方、補助レジスタ54hの内容が補助レジスタバス6
5bに与えられる。またコントローラ14はこの時点で
、変位としての11″をARAU52aと52b両方に
与える。
第6c図を参照すれば、ARAU52aと52bによる
演算の結果及び読取サイクルの実施が示しである。AR
AU52aが補助レジスタ54aの内容に変位を加算し
、その和をデータバス30のアドレスライン30aに与
えると共に、インクレメント値をバス67aを介して補
助レジスタ54aに記憶し直す。同じく、ARAU52
bが補助レジスタ54hの内容から変位を減算し、その
差をデータバス30のアドレスライン30bに与えると
共に、デクレメント値をバス67bを介して補助レジス
タ54hに記憶し直す。
前述したように、データバス30はメモリのアクセスに
関してマイクロコンピュータ10内で最高の優先順位を
有する。このサイクル中、ARAU52aと52bから
発生されたメモリアドレスは、システムクロック周期の
第1及び第3クオータサイクルの間にRAM16に与え
られる。従って、対応したメモリロケーションの各内容
は、第5及び5a図に関連して前述したように時間多重
化された形でデータライン30d上に現われる。
読取サイクルの終りに、RAM16から読み取られた被
乗数がデータバスコントローラ56によってラッチされ
保持される。次に第6d図を参照すると、データバスコ
ントローラ56が、読取サイクル中にデータバス30の
ライン30d上に受け取られ且つARA’U32aと5
2bから発生されたアドレスに対応するラッチ値を、C
PUバス60aとCPUバス60bにそれぞれ接続する
この結果実行サイクル中、CPUバス60aはARAU
52aから発生されたメモリロケーションの内容を乗算
器46に与え、またCPUバス60bはARAU52 
bから発生されたメモリロケーションの内容を乗算器4
6に与える。従ってこのとき、デコードサイクル中にデ
コードされた命令コードに応じ、マルチプレクサ64a
と64bはコントローラ14によって動作可能とされて
いる。
第6d図は、ここで説明する並列の乗算及び加算演算用
の実行サイクルを示している。データレジスタ50aと
50eの内容がそれぞれレジスタバス62aと62bを
介してALU48に与えられる;つまりレジスタバス6
2aと62bがコントローラ14によって、それぞれマ
ルチプレクサ64cと64dを介しALU48の入力に
接続される。実行サイクル中これらの入力を受け取ると
、ALU48は2つの値の加算を行い、その和をデータ
レジスタ50e内に記憶する。また命令の実行サイクル
中、乗算器46はCPUバス60aと6Qbから与えら
れた両値を乗算し、その結果をデータレジスタ50a内
に記憶する。こうして、並列乗算−加算命令は、実行サ
イクルの終りで完了する。
かかる並列乗算−加算命令はそれ自体が、デジタル信号
処理の用途で必要な反復的乗算及び加算の演算で有用な
“パイプライン化”方式となっている。この命令では、
データレジスタ50aが中間アキュムレータとして機能
し、データレジスタ50eが最終結実用のアキュムレー
タとして機能する。この点は、乗算と並列に加算が生じ
ていることから明らかであろう;つまり次の乗算がまだ
生じていないため、ALU48の加算で使われるデータ
レジスタ50a内の値は、前の乗算の結果である。次の
並列乗算−加算命令の実行サイクル中(あるいは勿論標
準的な加算命令中)、乗算器46による乗算の結果がデ
ータレジスタ50a内に記憶され、データレジスタ50
e内の累算結果に加算される。従って、n回反復される
並列乗算−加算命令のマイクロコンピュータ10によル
実行は、乗算積の累算が乗算と並列に生じない場合と比
べ、システムクロック周期のサイクル数がほぼn個少な
くてよい。従ってCPU12の構造は、時にコントロー
ラ14に関連して前述した命令のパイプライン化特徴と
組合せて使われる場合に、デジタル信号処理の性能を大
巾に向上可能とする。
前述したように、例えば周辺ポート24に接続された外
部メモリ装置は、マイクロコンピュータ10によって実
行されるプログラム用の命令コードを記憶するのに使え
る。しかし、外部メモリのアクセス時間はメモリ16.
18及び2oのアクセス時間よりかなり遅くなることが
あるので、コントローラ14はプログラムカウンタ92
の内容をプログラムバス34のアドレスライン34a上
に与えた後、命令コードが外部メモリからプログラムバ
ス34のデータライン34d上に与えられ命令レジスタ
94によって受け取られるまで、1システムクロ7り周
期の閲フルに待たなければならない。実行されるある命
令について、実行すべき次の命令コードが前の命令のア
ドレスに近いアドレスを持つプログラムメモリ内のメモ
リロケーションにしばしば位置することはよく知られて
いる。このような次の命令コードのプログラムメモリ内
における近接は、計算の反復的性質のため特にデジタル
信号処理の用途でよく生じる。この点は、第7図を参照
し、て以下説明する命令キャッシュ36等の命令キャッ
シュを用いることで有利に利用できる。
第1図に関連して前述したように、命令キャッシュ36
はプログラムバス34のアドレスライン34aとデータ
ライン34dに接続されている。
第7図に示すように命令キャッシュ36は、2つの32
ワードセグメント140aと140bに分けて編成され
た64ワードのメモリ140を含む。
命令キャッシュ36は更にセグメントスタートレジスタ
144aと144bを含み、これらのレジスタは各々セ
グメント140aと140bにそれぞれ記憶された命令
コード用アドレスの所定数の最上位ビア)を記憶する。
発明の好ましい実施例において、アドレス信号は24ビ
ツト巾で、各セグメント140aと140bは32(2
’)ビットを含んでいるため、セグメントスタートレジ
スタ144aと144bによって記憶されるビット数は
19である。各々のセグメント140aと140b内に
記憶された各32ワードにフラグビット142が付設さ
れ、フラグがセットされているときは対応したワード内
に命令コードが存在することを示し、セットされていな
いときは対応したワード内に命令コードが存在しないこ
とを示す。
MSB比較器146がアドレスライン34aに接続され
、アドレスライン34a上の最上位19ビツトをセグメ
ントレジスタ144a及び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ワードの一方に対応したフラグビット14
2の一方を選択する。
対応したフラグビット142がセットされていれば、入
/出力バッファ150が合致したセグメント140aま
たは140b内の対応したワードの内容をプログラムバ
ス34のデータライン34d上に与え、命令キャッシュ
36内に記憶された命令コードのアクセスが完了する。
さらに、合致したセグメントレジスタ144aまたは1
44bがLRUスタック152のトップによって指され
、合致しなかったセグメントレジスタ144aまた・ 
は144bがLRUスタック152のボトムによって指
される。LRUスタック152のボトムによって指され
ているセグメントが両セグメント140aと140bの
うち古い時点で使用された方で、後述するキャッシュ“
ミス”の場合に交換されセグメントとなる。
用途によっては、セグメント140a及び140b内の
ワードの一部が命令コードでロードされていないことが
ある。そのため、プログラムバス34のアドレスライン
34a上の最上位19ビツトがセグメントレジスタ14
4a及び144bの一方の内容と一致するが、セグメン
トの合致した一方140aまたは140b内の最下位5
ビツトに対応したワードが命令コードを含まない可能性
が生じる。この場合には、対応したワード用のフラグビ
ット142がセットされていない(すなわち論理状態“
0”を有する)。これは勿論キャッシュ“ミス”で、対
応したアドレスの命令コードが外部メモリ内のアドレス
されたメモリロケーションから読み取られなければなら
ない;つまり人、/出力バッファ150が命令コードを
プログラムバス34のデータライン34dから合致した
セグメント140aまたは140b内の対応したワード
内にロードし、対応したフラグビット142が論理状態
“1”にセットされる。しかし、上位ビットがセグメン
トレジスタ144a及び144bの一方と合致していた
から、セグメントレジスタのうち合致する一方144a
または144bがLRUスタック152のトップによっ
て指され、セグメントレジスタの他方144aまたは1
44bがLRUスタック152のボトムによって指され
る。
プログラムバス34のアドレスライン34a上の最上位
19ビツトがセグメントレジスタ144aまたは144
bの何れの内容とも合致しない場合にも、キャッシュ“
ミス”が生じる。この場合には、LRUスタック152
のボトムによって指されているセグメント140aと1
40bのうち古い時点で使われた方に対応したセグメン
トの一方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の動作を可能とし;逆にセットされないと、ア
ドレスライン34aのアドレス値と関わりなく全くアク
セスされないように命令キャッシュ36が動作不能とさ
れる。キャッシュエネーブルビットがセントされてない
期間中、セグメントレジスタ144aと144bの内容
、フラグビット142、及びセグメント140aと14
0b内のワードそのものは変更不可能である。
状態レジスタ71内の第3ビツトは、キャッシュフリー
ズビットである。キャッシュフリーズビットがセットさ
れていると、キャッシュ“ヒツト”の場合に命令キャッ
シュ36からのフェッチだけが許される。しかしキャッ
シュ“ミス”の場合には、フラグビット142、セグメ
ントレジスタ144aと144b、またはLRUスタッ
ク152の変更は一切行われず、命令キャッシュ36に
影響を及ぼさずに外部メモリからの命令コードのフェッ
チが行われるだけである。
次に第8図を参照して、DMAコントローラ22の構造
と動作を説明する。周知なように、直接メモリアクセス
動作は中央処理装置(例えばCPUI 2)の干渉なく
、記憶データのブロックを一つのメモリ領域を別のメモ
リ領域へ移動するのに有用である。ここに説明するマイ
クロコンピュータ10では、外部メモリとオンナンプメ
モリ16.18間でデータのブロックを移動するのにも
直接メモリアクセスが有用である。第1及び8図に示す
ように、DMAコントローラ22はDMAバス38と周
辺バス28に接続され、データをDMAバス38上にデ
ータを伝送すると共に、周辺バス28から制御及び出所
/宛先アドレス情報を受け取る。
尚、周辺バス28は前述したデータバス30、プログラ
ムバス34、及びDMAバス38と同じように、アドレ
ス情報とデータをそれぞれ伝送するアドレスライン28
aとデータライン28dを含む。第1図に戻って参照す
れば、周辺バス28のアドレスライン28aとデータラ
イン28dは周辺ボート26の出力でそれぞれラインI
10 AnとIlo Dnに直接接続され、従ってそれ
らに対応することが明らかであろう。従って、周辺バス
28にアドレスを与えたりそれとデータを交信するため
には、所望のアドレスが周辺ボート26によって処理さ
れるアドレスに対応したマイクロコンピュータ10のメ
モリアドレススペース内の値と対応しなければならない
。このため、以下に説明するDMAコントローラ内のメ
モリマツブトレジスタは、前記の第4表に示したメモリ
アドレススペース5ooooh〜800FFFh内にあ
る。
DMAコントローラ22は制御レジスタ300、転送カ
ウンタレジスタ302、宛先アドレスレジスタ304及
び出所アドレスレジスタ306を含み、これらは各々周
辺バス28のアドレスライン28aとデータライン28
dに接続され、マイクロコンピュータ10のメモリアド
レススペースの特有なアドレスロケーションにマツプ配
分されている。DMAコントローラ22は更に、DMA
バス38のデータライン38dに接続されたデータレジ
スタ308を含み、DMAバスのアドレスライン38a
は宛先アドレスレジスタ304と出所アドレスレジスタ
306に接続されている。制御ロジック310が制御レ
ジスタ300に接続され、制御レジスタ300内のビッ
トの内容がDMAコントローラ22の制御を行う。制御
ロジック310はラインDECRを経て転送カウンタレ
ジスタ302に信号を発生し、ラインZEROを経て転
送カウンタレジスタ302から信号を受信する。また制
御ロジック310はラインLOADと−INC/DEC
Rを経て宛先アドレスレジスタ304と出所アドレスレ
ジスタ306にそれぞれ信号を与え、更にラインWRI
TEと5TOPEを経てデータレジスタ308に信号を
与える。所望のメモリ読取/書込動作を行うには、制御
ロジック310がコントローラ14に導かれる読取/書
込信号を発生し、コントローラ14によるメモリアクセ
ス制御に関連して前述したように、コントローラ14が
必要な制御信号をメモリ16.18及び20と周辺ポー
ト24及び26に発生可能である。
制御レジスタ300は11ビツトのアドレス可能レジス
タで、DMAレジスタ22を構成するために書き込まれ
る。これらの各ビットは、以下動作の説明と共に詳述す
る。転送カウンタレジスタ302は24ビツトのアドレ
ス可能レジスタで、これには周辺バス28から、DMA
動作で転送されるべき数のメモリロケーションがロード
される。
転送カウンタレジスタ302はラインDECR上のパル
スによってデクレメントされ、その内容がゼロに等しい
ときラインZEROを経て制御ロジック310に信号を
送る。出所アドレスレジスタ306と宛先アドレスレジ
スタ304は24ビツトのアドレス可能レジスタで、そ
こから及びそこへデータを転送すべきメモリアドレスを
それぞれ記憶する。出所アドレスレジスタ306と宛先
アドレスレジスタ304の内容は初め、周辺バス28の
データライン28dの最下位24ビツトからロードされ
る。次いで制御レジスタ300の内容に応じ、出所アド
レスレジスタ306と宛先アドレスレジスタ304は、
制御ロジック310からのラインINC/DECRを経
たパルスに応答してインクレメントまたはデクレメント
される。
データレジスタ308は、DMAバス38のデータライ
ン38aからのデータをバッファする一時レジスタであ
る;つまりデータライン38d上の値がラインWRIT
E上の信号に応じてデータレジスタ308内にロードさ
れ、またデータレジスタ308の内容がライン5TOR
E上の信号に応じてデータライン38dに与えられる。
DMAコントローラ22の動作がマイクロコンピュータ
IOの残部の動作と一貫して制御されるように、制御ロ
ジック310は更にコントローラ14に接続されている
。以下明らかとなるように、DMAは割込周期され、外
部源からのデータの受−信または送信をCPU12、D
MAコントローラ22、及び外部源間での衝突を伴わず
に行うことができる。制御レジスタ300の5TART
ビツト300aは、論理状態“1”または“0”を有す
るかに応じて、DMAコントローラ22の動作をそれぞ
れ動作可能または不能とする。制御レジスタ300のT
Cビット300bはレディロジック310を制御し、T
Cビット300bが状態“1”にセットされていると、
転送カウンタレジスタ302がゼロに達したときDMA
転送が終了する。同期ビット300cと300dが、転
送データの出所または宛先とのDMAコントローラ22
の同期化を構成可能とする。制御レジスタ300内のビ
ット300e〜300hの内容が、出所及び宛先アドレ
スレジスタ304と306がインクレメントされるか、
デクレメントされるか、あるいは各転送読取後に変更さ
れないかどうかを決める。TCINTビット3001は
状態“l”に設定されると、転カウンタレジスタ302
の内容がゼロに達したとき内部割込を生成する。制御ロ
ジック310はコントローラ14に接続されてライン3
12上に割込信号を発生すると共に、ライン314を経
た割込ロジック250からの割込アクルジ信号に応答す
る。
DMAコントローラ22の制御下で行われるD M A
動作は、外部から制御できるように、コントローラ14
と組合せて割込駆動可能である。コントローラ14に関
連して前述したように、内部発生割込はコントローラ1
4内の割込ロジック250によって受信され処理される
。制御ロジック310は更にライン313を経て割込要
求信号をコントローラ14に発生し、またライン315
を経て割込要求信号をそこから受信する。ライン313
上の割込要求信号は、D M Aコントローラが外部装
置から発生されたDMA関連の割込を待っていることを
示し、ライン315上の割込アクティブ信号は、そのよ
うな割込がコントローラ14によって受信されておりそ
れが処理されるべきことを示している。同期化は、制御
ロジック310がDMA転送サイクル内の所定時点で割
込要求信号を発生し、先へ進む前に割込アクティブ信号
を待つことによって制御される。同期化時点の選択は、
制御レジスタ300のビット300Cと300dをロー
ドすることでなされる。D M Aコントローラ22に
よって実施可能な同期モードを第5表に列記する。
男ユ」L−表 00    割込同期なし 01    出所同期;割込でDMA読取;使用可能な
とき書込 10    宛先同期;使用可能なときDMA読取;割
込で書込 11    出所及び宛先同期;割込でDMA読取;次
の割込で書込 動作時には、転送カウンタレジスタ302、宛先アドレ
スレジスタ304、及び出所レジスタ306にまず所望
の初期状態がロードされる。これらのレジスタ302.
304及び306は各々、マイクロコンピュータ10に
よって実行される通常のメモリ書込命令を用い、周辺バ
ス28のアドレスライン28aによってアドレス可能で
ある。
各レジスタ302.304及び306における第8図の
暗黙状態では、アドレスされたときそれらレジスタ30
2.304及び306のロードを制御する論理をデコー
ドする。制御レジスタ300もそのメモリロケ−シラン
にアドレスし、DMAコントローラ22を所望通り構成
することによってロードされる。制御ロジック310は
5TARTビフト300aが状B″1”にセットされる
のに応じて、DMAコントローラ22の動作を可能とす
る。
一例として、宛先アドレスレジスタ304と出所アドレ
スレジスタ306が各転送中に共にインクレメントされ
るように、必要なデータが制御レジスタ300にロード
されるものとする。またこの例では、選択した同期モー
ドは宛先同期とする。
この例によれば、制御ロジック310がまずそこから割
込ロジック250への内部割込信号の送信を不能とする
。次に、制御ロジック310がラインLOADを経て出
所アドレスレジスタ306にパルスを発生、出所アドレ
スレジスタ306の内容がDMAバス38のアドレスラ
イン38a上に置かれる。第5及び5a図に関連して前
述したメモリアドレシングと同様に、(周辺ボート24
を介した外部メモリ内もしくはメモリ16.18または
20内の)アドレスされたメモリロケーションが読み取
られる。制御ロジック310がデータレジスタ308に
接続された5TOREラインにパルスを発し、DMAバ
ス38のデータライン38d上の値をデータレジスタ3
08にロードする。読取動作後、出所アドレスレジスタ
306の内容がラインINC/DECRを介し制御ロジ
ック310によってインクレメントされる。
制御レジスタ300で宛先同期モードが選択されている
ため、ここで制御ロジック310がライン313上に割
込要求信号を発生し、割込ロジック250に割込をかけ
る。DMA用の割込許可をコントローラ14が受信する
のに応じて、制御ロジック310がDMA書込動作を開
始し、割込許可のイベントはライン315上の割込アク
ティブ信号によってDMAコントローラ22に転送され
る。従って、制御llロジック310が宛先アドレスレ
ジスタ304にLOAD信号を与えるのに応じ、宛先ア
ドレスレジスタ304の内容がDMAバス38のアドレ
スライン38a上に与えられる。制御ロジック310も
データレジスタ308に接続されたWRITEラインに
パルスを発し、データレジスタ308の内容がDMAバ
ス38のデータライン38d上に与えられる。アドレス
されたメモリロケーションは、コントローラ14がデー
タレジスタ308の内容をアドレスされたロケーション
へ書き込むのに必要な書込制御信号を与えるだけで、前
述したようにアクセスされる。
書込の完了後、宛先アドレスレジスタ304の内容がラ
インINC/DECRを介し制御ロジック310によっ
てインクレメントされ、転送カウンタレジスタ302の
内容がラインDECRを介し制御ロジック310によら
てデクレメントされる。転送カウンタレジスタ302の
内容がゼロに達すると、制御ロジック310がラインZ
EROを経て信号を受信し、制御レジスタ300のTC
INTビット30’Oiの状態に応じてライン312上
に割込を発生しくあるいは発生せず)、DMA動作の完
了をコントローラ14に通知する。
勿論、転送カウンタレジスタ302がゼロに達してもま
たは割込によってDMA動作が終了していなければ、制
御レジスタ300の5TARTビツト300aが状態“
1”にあるかどうかを制御ロジック310が判定し、状
B“1”にあれば、出所アドレスレジスタ306を介し
たDMA読取によって次のDMA転送を開始する。
上記の説明から明らかなように、DMAコントローラは
、最初の出所アドレスから始まるメモリブロック内の一
連のメモリロケーションの内容を、宛先アドレスから始
まるメモリブロック内の一連のメモリロケーションへ転
送するように動作可能である。上述したこの動作はCP
U12の介入を必要とせず、またDMAバス38がDM
A目的用の別個のアドレス及びデータ路を与えるので、
かかるDMA動作はマイクロコンピュータ10の平常動
作におけるプログラム及びデータアクセスと同時に生じ
得る。つまりDMA動作は、マイクロコンピュータ10
の動作に対して実質上透明に発生可能で、その性能を大
巾に高める。
次に第9図を参照して、周辺バス28の動作及び各種周
辺機能との交信について説明する。−例として、タイマ
40、直列ポート42及びフォーマント変換器44がこ
こで説明しているマイクロコンピュータlOに接続され
た周辺機能である。
これら3種の機能はそれらの構造に応じて一定の交信及
び/又はデータ処理機能を与えるが、各々の周辺機能は
同じ方法で周辺バス28ひいてはマイクロコンピュータ
10の残部と交信する。周辺機器40.42及び44は
各々以下説明するように、周辺バス28によってアドレ
ス可能なメモリマツブトレジスタを用い、マイクロコン
ピュータ10によって構成及び動作される。尚、DMA
コントローラ22内に含まれるメモリマツプ式レジスタ
の場合と同じく、以下説明する周辺機能内に含まれるメ
モリマツブトレジスタは、第4表に関連して前述した入
/出力アドレススペース800000h〜800FFF
h内に存在することを想起されたい。
タイマ40は、外部制御またはマイクロコンビュータl
Oの内部制御について所定の時間周期を測定する機能を
果たす。タイマ40は周辺バス28のアドレスライン2
8aに接続されたタイマロジック400を含み、タイマ
ロジック400は周辺バス28のライン28a上のアド
レス信号を評価すると共に、その結果に応じてタイマ4
0内の各種メモリマツブトレジスタへのアクセスを可能
とするように動作可能である。タイマ40内の各レジス
タ(後述する)は、マイクロコンピュータ10の単一ア
ドレススペース内のアドレス信号によってアドレス可能
である。タイマ40内のメモリマフブトレジスタは制御
レジスタ402を有し、これには当該分野で周知のごと
く、動作可能/禁止ビットや、タイマ40がマイクロコ
ンピュータ10のシステムクロックによって制御され外
部出力を与えるのかあるいは外部クロックパルスによっ
て制御され内部信号を与えるのか等、タイマ40の動作
を制御するのに必要な幾つかの制御情報が含まれている
。タイマ40は更にアドレス可能な周期レジスタ404
を有し、これにはデータライン28dからタイマ40に
よって測定すべき時間を指定する値がロードされる。カ
ウンタレジスタ406もタイマ40内に含まれており、
これはシステムクロックまたは外部からラインTCLK
を経て受信されるクロックパルスの各パルスによってイ
ンクレメントされる。動作時には、タイマロジック40
0が周期レジスタ404の内容と等しくなったカウンタ
レジスタ406の内容に応答し、この時点でタイマロジ
ック400が制御レジスタ402の選択に従って内部割
込信号をコントローラ14に発生し;制御レジスタ40
2が外部出力を選択していれば、カウンタレジスタ40
6の内容が周期レジスタ404の内容と等しくなったと
きタイマロジック400がラインTCLK上にパルスを
発生する。
直列ポート42は当該分野で周知のようにデータを直列
に送受信するが、そこに含まれたメモリマツブトレジス
タを介してマイクロコンピュータ10によって制御され
る。ポートロジック420が直列ポート42内に含まれ
てその動作を制御し、周辺バス28のアドレスライン2
8a上に与エラれるアドレス信号に応じてポートロジッ
ク内に含まれたメモリマツブトレジスタへのアクセスを
可能とする。直列ポート42等の直列ポートの構造及び
動作の一例は、1986年11月6日に出願されたテキ
サス・インクレメント社に譲渡された係属中の米国特許
出願通し番号第927,883号に示されている。直列
ポート42はタイマ40と同様制御レジスタ422を有
し、これがCPU12と直列ポート42間における送信
レディ及び受信レディ両信号の交信等周知な幾つかの目
的に合わせて直列ポートの構成を可能とする。尚、かか
るレディ信号はポートロジック420に対し、CPU1
2が周辺バス28を介して情報のワードを直列ポート4
2へ送信する準備が整っていること、あるいは周辺バス
28を介して情報のワードを直列ポート42から受信す
る準備が整っていることをそれぞれ知らせる。制御レジ
スタ422は更に、直列ポート42に接続された外部装
置と制御信号と交信するのにも使える。勿論制御レジス
タ422は、必要なビット数及びレジスタ間でアドレス
の独立性が所望かどうかに応じ、複数のアドレス可能レ
ジスタによって実現することもできる。直列ポート42
は更に送信レジスタ424と受信レジスタ426を有し
、これらは周辺バス28を介してアドレス可能で、それ
ぞれデータを送信または受信せしめる。動作時には、マ
イクロコンピュータ10の残部が制御レジスタ422に
アドレスし、データの直列ポート42による送信準備が
整っていることを指示する。次いでCPU12が、送信
レジスタ424のアドレスを周辺ハス28のアドレスラ
イン28d上に与え、送信レジスタ424にロードされ
ているデータを周辺バス28のデータライン28d上に
送信せしめる。
その後ポートロジック420が当該分野で周知なように
、ラインFXS上のフレーミング信号等をそこに与えら
れる外部制御信号と連動して、送信レジスタ424の内
容の直列送信ラインDX上への直列出力を制御する。逆
に、ポートロジック420はラインDRから受信レジス
タ426へのロードも制御し、受信レジスタ426が満
たされたとき内部割込信号を割込ロジック250に発生
する。そしてCPU12が、受信レジスタ426に対応
したアドレスを周辺バス28のアドレスライン28aへ
与えることによって、周辺バス28のデータライン28
dを介し受信レジスタ426の内容を読取可能となる。
フォーマット変換器44が、一つのデータフォーマット
から別のデータフォーマントへのデータ変換機能を果た
す。周知のA法則及びU法則変換によるデータの符号化
及び解読は、前出の係属中の米国特許出願第927,8
83号に説明しである。
フォーマット変換器44はフォーマットロジック440
を含み、これが周辺バス28のアドレスライン2Ba上
のアドレス信号に従ってそこに含まれたメモリマツブト
レジスタへのアクセスを制御すると共に、データに対す
る符号化及び解読機能を行う。フォーマント変換器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への他のアクセスが試みられていな
ければ、CPUI 2またはマイクロコンピュータ10
の残部を介入させずに、周辺バス28に沿った各種の周
辺機器は相互間で交信するように容易に設計可能である
。このような交信の一例は、直列ポート42から外部装
置への送信前における符号化のため、直列ポート42か
らフォーマット変換器44になされるデータの伝送であ
る。当業者であれば、データライン28dを介し周辺機
器間でデータを交信できるように、アドレスライン28
aを介して一つの周辺機器を別の周辺機器内のレジスタ
ヘアドレス可能とするアドレス駆動論理を、それら周辺
機器内のロジックに付与可能であろう。
前述した周辺機能の相互接続のために周辺バス28を使
用することは、周辺バス28に沿った追加の周辺機能の
単なる減算または加算によって、マイクロコンピュータ
10を異なる態様に適応させる点で著しい融通性を更に
与える。事実、周辺バス28は周辺ボート26の出力で
ラインl10Anとl10Dnに対応しそれに直接接続
されることで、マイクロコンピュータ10の外部端子へ
直接接続されているため、外部のの周辺機能用に開発さ
れたソフトウェアを、チップ上に備えられ周辺バス28
に接続された同じ機能を持つマイクロコンピュータ10
で、はとんどあるいは全く改造を必要とせずに使用し得
る。こうして、新たな周辺機能及び特徴の開発及びデハ
グが、上述したアーキテクチャによって大巾に容易化さ
れる。
以上本発明をその好ましい実施を参照して詳しく説明し
たが、この説明は例示にすぎず、制限の意味で解釈され
るべきでないことが理解されるべきである。また、発明
の実施例の詳細における数多くの変形及び発明の追加の
実施例は自明で、当業者であれば前記の説明を参照して
成し得ることも理解されるべきである。そのような変形
及び追加の実施例は、特許請求の範囲に記載した発明の
精神及び真の範囲内に包含されるものである。
以上の記載に関連して、以下の各項を開示する。
1、 アドレス及びデータ信号を交信するための第1メ
モリバス: アドレス及びデータ信号を交信するための第2メモリバ
ス: 前記第1メモリバスと前記第2メモリバスに接続され、
第1組のアドレス内の値を有するアドレス信号によって
アドレス可能な複数のメモリロケーションを備える第1
メモリ: 前記第1メモリバスと前記第2メモリバスに接続され、
第2組のアドレス内の値を有するアドレス信号によって
アドレス可能な複数のメモリロケーションを備える第2
メモリで、前記第2組のアドレスが前記第1Hのアドレ
ス内のどのアドレスとも重複しない: 前記第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組のアドレス内の
値を有するアドレス信号だけを与え、前記第3mのアド
レスが前記第1mのアドレスまたは前記第2組のアドレ
スと重複しない第5項のデータ処理装置。
7、前記メモリ制御ロジックが前記周辺ポートにも接続
され; 更に、前記第1メモリバスによって与えられるアドレス
信号と前記第2メモリバスによって与えられるアドレス
信号が共に前記第3組の値内にあるとき、前記メモリ制
御ロジックが前記周辺ポートを前記メモリバスの一方か
ら分断し、前記分断されるメモリバスの一方が所定の優
先順位に従って決められる第6項のデータ処理装置。
8、前記第1メモリと前記第1及び第2メモリバスに接
続され、前記第1メモリバスによって与えられるアドレ
ス信号と前記第2メモリバスによって与えられるアドレ
ス信号が共に前記第1組の値内にあるとき、前記第1メ
モリを前記第2メモリバスから分断するためのメモリ制
御ロジックを更に備えた第1項のデータ処理装置。
9、前記メモリ制御ロジックが前記第2メモリにも接続
され; 更に、前記第1メモリバスによって与えられるアドレス
信号と前記第2メモリハスによって与えられるアドレス
信号が共に前記第2mの値内にあるとき、前記メモリ制
御ロジックが前記第2メモリを前記第2メモリバスから
分断する第8項のデータ処理装置。
10、前記第1メモリがランダムアクセスメモリである
第1項のデータ処理装置。
11、前記第1メモリが読取専用メモリである第1項の
データ処理装置。
12、前記第2メモリがランダムアクセスメモリである
第11項のデータ処理装置。
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メモリ
内のメモリロケーションとの間でデータを交信する第1
3項のデータ処理装置。
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)も含む。、tン−J−tプ(7
)RAM (16,18)とROM(20)は2mのア
ドレスライン(30A。
30B)に時開多重的な方法で応答し、データラインを
介したメモリアクセスをシステムクロックサイクル毎に
2回与える。第2のメモリバス(34)もオンチップの
RAM(16,18)とROM (20)及び周辺ボー
ト(24,26)に接続され、前記第1のメモリバス(
30)を介したメモリエレメントの一つへのアクセスが
第2のメモリバス(34)を介した前記メモリエレメン
トの別の一つへのアクセスと同時に且つ独立に発生可能
である。オンチップメモリと外部メモリは全て単一のメ
モリアドレススペース内にマツプ割り当てされ、2つの
メモリバスを介したプログラム及びデータ両方の同時フ
ェッチ、あるいは同一サイクル中における第1の時間多
重化バス(30)を用いたプログラム及びデータ両方の
フェッチを可能とする。メモリマツブト入/出力機能が
オンチップの周辺機器(40,42及び44)によって
実施され、これら周辺機器はマイクロコンピュータの周
辺ボートの一つ(26)に接続されている。周辺バス(
28)が、マイクロコンピュータの構成において多大の
融通性を可能とする。
【図面の簡単な説明】
第1図は本発明に従って構成されたマイクロコンピュー
タのブロック電気線図;第2図は第1図のマイクロコン
ピュータの中央処理装置のブロック電気線図;第2a図
は第2図の中央処理装置内に具備された補助演算論理装
置のプッロク電気線図;第2b図及び20図は第1図の
マイクロコンピュータによって実施可能な循環アドレッ
シングモードで有用な幾つかの計算のフロー図;第3図
は第1図のマイクロコンピュータの周辺ポートのブロッ
ク電気線図;第4図は第1図のマイクロコンピ二一タの
コントローラのブロック電気線図8第4a図は第4図の
コントローラによって実施される命令コードのパイプラ
イン化を例示するタイミング図;第5図は第1図のマイ
クロコンピュータ内における各種メモリエンティティへ
のアクセスの仲裁において有用な、第4図のコントロー
ラ内のロジックの概略電気線図;第5a図は第1図のマ
イクロコンピュータ内で実施されるメモリアクセスのタ
イミング図で、第5図のロジックの動作を例示する図;
第6aから6d図は第1図のマイクロコンピュータ各部
のブロック電気線図で、例示命令の実行の異なる時点で
のスナップショットをそれぞれ示す図;第7図は第1図
のマイクロコンピュータの命令キャッシュのブロック電
気線図;第8図は第1図のマイクロコンピュータのDM
Aコントローラのブロック電気線図:及び第9図は第1
図のマイクロコンピュータの周辺モジュール及び周辺バ
スのブロック電気線図である。 10・・・データ処理装置(マイクロコンピュータ)、
12・・・中央処理装置(CP U)、14・・・コン
トローラ、16.18.20・・・第1/2メモリ (
16,18;RAM、20;ROM)、22・・・直接
アクセスメモリ(DMA)コントローラ、24.26・
・・周辺ポート、28・・・周辺バス、30・・・第1
メモリ(データ)バス、30a、30b・・・アドレス
ライン、30d・・・データライン、34・・・第2メ
モリ(プログラム)バス、38・・・第3メモリ(DM
A)バス、40.42.44・・・オンチップ周辺機器
、46・・・乗算機、48・・・演算論理装置(ALU
) 、50・・・データレジスタ、50a、50b・・
・補助演算論理装置(ARAU) 、206・・・メモ
リ制御(仲裁)ロジック。

Claims (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
US25417 1979-03-30
US07/025,417 US4912636A (en) 1987-03-13 1987-03-13 Data processing device with multiple on chip memory buses

Related Child Applications (4)

Application Number Title Priority Date Filing Date
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 複数のオンチップメモリバスを備えたデータ処理装置
JP7054664A Division JPH07295808A (ja) 1987-03-13 1995-03-14 複数のオンチップメモリバスを備えたデータ処理装置

Publications (2)

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

Family Applications After (4)

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

* 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制御装置および情報処理装置
US5305446A (en) * 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
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
US5390304A (en) * 1990-09-28 1995-02-14 Texas Instruments, Incorporated Method and apparatus for processing block instructions in a data processor
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5537651A (en) * 1978-09-07 1980-03-15 Matsushita Electric Ind Co Ltd Microcomputer circuit
JPS57203154A (en) * 1981-06-10 1982-12-13 Matsushita Electric Ind Co Ltd Microcomputer

Family Cites Families (33)

* 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
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
WO1983001135A1 (en) * 1981-09-18 1983-03-31 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
JPS60500187A (ja) * 1982-12-30 1985-02-07 インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン データ処理システム
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5537651A (en) * 1978-09-07 1980-03-15 Matsushita Electric Ind Co Ltd Microcomputer circuit
JPS57203154A (en) * 1981-06-10 1982-12-13 Matsushita Electric Ind Co Ltd Microcomputer

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS63303452A (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
US5175841A (en) Data processing device with multiple on-chip memory buses
US4928223A (en) Floating point microprocessor with directable two level microinstructions
US3646522A (en) General purpose optimized microprogrammed miniprocessor
EP0198216B1 (en) Three phased pipelined signal processor
EP1047989B1 (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
US3983539A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
US4367524A (en) Microinstruction execution unit for use in a microprocessor
EP0111407A2 (en) Microprogrammed control unit for handling the intermixed occurences of microprogram branches and interrupts
US3983541A (en) Polymorphic programmable units employing plural levels of phased sub-instruction sets
JPH05502125A (ja) 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法
US3943494A (en) Distributed execution processor
JPS6058490B2 (ja) 命令ブランチ機構
JPS5831014B2 (ja) 命令先取り装置
US5983328A (en) Data processing device with time-multiplexed memory bus
JPS638490B2 (ja)
US5907864A (en) Data processing device with time-multiplexed memory bus
CA2002895C (en) Arithmetic unit
JPH10222367A (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法

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