JPH079647B2 - マイクロコンピュータ装置 - Google Patents

マイクロコンピュータ装置

Info

Publication number
JPH079647B2
JPH079647B2 JP1306363A JP30636389A JPH079647B2 JP H079647 B2 JPH079647 B2 JP H079647B2 JP 1306363 A JP1306363 A JP 1306363A JP 30636389 A JP30636389 A JP 30636389A JP H079647 B2 JPH079647 B2 JP H079647B2
Authority
JP
Japan
Prior art keywords
instruction
bus
bit
data
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1306363A
Other languages
English (en)
Other versions
JPH02186485A (ja
Inventor
アール コーデル エドワード
エム マガー サレンダー
Original Assignee
テキサス インストルメンツ インコーポレーテッド
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
Priority claimed from US06/347,859 external-priority patent/US4538239A/en
Priority claimed from US06/350,852 external-priority patent/US4577282A/en
Application filed by テキサス インストルメンツ インコーポレーテッド filed Critical テキサス インストルメンツ インコーポレーテッド
Publication of JPH02186485A publication Critical patent/JPH02186485A/ja
Publication of JPH079647B2 publication Critical patent/JPH079647B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/786Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Microcomputers (AREA)
  • Complex Calculations (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、集積形の半導体装置及びシステム、特にマイ
クロプロセッサ・システム、マイクロコンピュータ装置
及びマイクロプロセッサ装置に関し、更に詳細には、単
一チップ・マイクロコンピュータ形式の高速度の小形化
された電子的ディジタル信号処理システムの特徴に関す
る。
従来の技術 マイクロプロセッサ装置は、米国特許第3,757,306号に
示されているように、「MOS/LSI」法によって製作され
る単一の半導体集積回路または「チップ」内に通例包含
されるディジタル・プロセッサのための中央処理装置す
なわちCPUである。この米国特許には、並列型演算/論
理ユニット(以下ALUともいう)、データ及びアドレス
のためのレジスタ、命令レジスタ及び制御デコーダを含
む単一チップ形8ビットCPUが示されており、上記諸部
材は全てフオン・ノイマン(Von Neuman)構造を用いて
相互接続されており、そして、データ、アドレス及び命
令のための双方向並列バスを使用している。米国特許第
4,074,351号には単一チップ「マイクロコンピュータ」
型の装置が示されており、該装置は、プログラム記憶の
ためのオンチップROM及びデータ記憶のためのオンチッ
プRAMとともよに4ビット並列ALU及びその制御回路を有
してハーバード(Harvard)構造に構成されている。マ
イクロプロセッサなる語は、通例、プログラム及びデー
タ記憶のために外部メモリを使用する装置を指し、一
方、マイクロコンピュータなる語は、プログラム及びデ
ータ記憶のためにオンチップROM及びRAMを有する装置を
指す。しかし、これら用語はまた互換的に用いられてお
り、本発明の若干の特徴については制限的なものではな
い。
米国特許第3,757,396号及び第4,074,351号が最初に出願
された1971年以来、マイクロプロセッサ及びマイクロコ
ンピュータにおいて、これら装置の速度及び能力を増大
し、且つ、製造費を低減するために多くの改良が行なわ
れており、より小さい空間、即ちより小さいチップ大き
さ内により多くの回路及び機能を提供するようになって
きている。改良されたVLSI半導体処理及び写真食刻法に
より、より狭い線巾及びより高い解像度が可能となり、
回路密度の増大及びより高い速度が得られているが、回
路及びシステムの改良はまた、より小さいチップ大きさ
をもって増大した性能を得るという目標に寄与するもの
である。マイクロコンピュータにおけるこれら改良のう
ちのいくつかは、 米国特許第3,991,305号、第4,156,927号、第3,934,233
号、第3,921,142号、第3,900,722号、第3,932,846号、
第3,939,335号、第4,125,901号、第4,158,432号、第3,7
57,308号、及び第3,984,816号に開示されている。これ
ら米国特許に記載されている装置は、ハーバード構造で
あって4ビット型であり、計算器及び制御器への適用に
特に適する。
この技術の発展に伴うマイクロプロセッサ及びマイクロ
コンピュータ装置の更に他の例が種々の出版物に記載さ
れている。即ち、1972年9月25日のエレクトロニクス
(Electronics)誌の第31頁ないし第32頁には、オンチ
ップROM及びRAMを有する4ビット・PチャネルMOS形の
マイクロコンピュータが示されており、このマイクロコ
ンピュータは米国特許第3,991,305号に類似したもので
ある。米国特許第3,757,306号のマイクロプロセッサに
類似する最も広く用いられている8ビット・マイクロプ
ロセッサの二つの例が、1974年4月18日のエレクトロニ
クス誌の第88頁ないし第95頁に(モトローラ(Motorol
a)6800型)、及び第95頁ないし第100頁に(インテル
(Intel)8080型)記載されている。6800型のマイクロ
コンピュータが1978年2月2日のエレクトロニクス誌の
第95頁ないし第103頁に記載されている。同様に、8080
型の単一チップ・マイクロコンピュータが1976年11月25
日のエレクトロニクス誌の第99頁ないし第105頁に示さ
れている。他の単一チップ・マイクロコンピュータであ
るモステック(Mostek)3872型が1978年5月11日のエレ
クトロニクス誌の第105頁ないし第110頁に示されてお
り、また6800型の改良型が1979年9月17日のエレクトロ
ニクス誌の第122頁ないし第125頁に開示されている。
「9900ファミリ・システムズ・デザイン」(9900Family
Systems Design)なる書名の書籍に記載されているパ
ーツ番号(TMS 9900のような、ミニコンピュータ命令セ
ットを基礎とする16ビット・マイクロプロセッサが発展
してきている。上記書籍は、米国、テキサス州77001、
ヒューストン市、M/S 6404、私書箱1443のテキサス・イ
ンスルトルメンツ社(Texas Instruments Incorprate
d)から1978年に発刊されたものであり、米国議会図書
館のカタログ番号78−058005となっている。8080型から
発展した16ビット・マイクロプロセッサである8086型が
1978年2月16日のエレクトロニクス誌の第99頁ないし第
104頁に記載されており、また、68000型(6800型を基礎
としたもの)なる16ビット・マイクロプロセッサが、19
78年9月1日のエレクトロニック・デザイン(Electron
ic Design)誌の第100頁ないし第107頁に、及びIEEEコ
ンピュータ(IEEE Computer)誌、第12巻、第2号(197
9年)の第43頁ないし第52頁に記載されている。
これら従来の8ビット及び16ビットのマイクロプロセッ
サ及びマイクロコンピュータは、多重アドレス/データ
バスを有するフオン・ノイマン(Von Neumann)構造の
汎用処理処置であり、そのうちの若干は、ガタグ(Gutt
ag)、マクドナフ(McDonough)及びローズ(Laws)に
よる1980年11月24日出願の米国特許出願第209,915号、
またはヘイン(Hayn)、マクドナフ及びベレイ(Balla
y)による1981年4月13日出願の米国特許出願第253,624
号(いずれもテキサス・インストルメンツ社に譲渡され
ている)において、及びIEEEスペクトラム(IEEE Spect
rum)誌、1973年3月号の第28頁ないし第34頁にマクケ
ビット(Makevitt)及びベイリス(Bayliss)により、
または1979年12月の第11回年次マイクロプログラミング
研究会会報(Proceedings 11 th Annual Microprogramm
ing Workshop)にステインタ(Stintter)及びトレデニ
ック(Tredenick)によって記載されているように、マ
イクロコード式となっている。マイクロコーディング
は、最初1951年にウイルケス(Wilkes)が述べたもので
あり、命令語によって入れられるマイクロ命令シーケン
スを記憶するために制御ROMを用いる。プログラマは高
いレベルの機械語でプログラムを書く。従って、アセン
ブリ言語コード文の数を減らすことができ、従って、プ
ログラム作成費が低減する。
本発明の要約 これに対して、本発明の特徴は、以降に説明する実施例
に従って専用高速度マイクロコンピュータ装置に好まし
く採用できるものであり、この実施例は、速度及び性能
上のかなりの利点を得るために、いくつかの主要な点に
おいて上記従来のマイクロプロセッサ装置と異なってい
る。この本発明装置は、一般に、ハーバード構造を変形
した非マイクロコード式処置装置である。
本発明の主目的は、改良された特徴を有するマイクロコ
ンピュータ装置及びシステム、特にリアルタイム・ディ
ジタル信号処理等に好適するマイクロコンピュータ装置
及びシステムを提供することにある。本発明の他の目的
は、能力を増強した高速度マイクロコンピュータを提供
することにある。
概略説明すると、本発明の一実施例によれば、本発明の
諸特徴は、プログラム及びデータのための別々のアドレ
ス及びデータ経路とともに別々のオンチップ形プログラ
ムROM及びデータRAMを有する単一チップ形マイクロコン
ピュータ装置を用いるリアルタイム・ディジタル信号処
理のためのシステムに含まれている。外部プログラムア
ドレスバスがあるので、操作符号を外部データバスによ
って復帰させた状態で、延長モードにおいてオフチップ
・プログラム取出しを行なうことができる。バス交換モ
ジュールにより、特殊の環境における別々の内部プログ
ラム及びデータバス相互間の転送ができる。内部バスは
16ビットであり、一方、ALU及びアキュムレータは32ビ
ットである。乗算回路が、ALUに対する32ビット出力を
もって、ALUと別に単一ステートの16×16乗算機能を行
なう。ALUに対する一つの入力が符号拡張をもって0な
いし15ビット・シフタを通過する。
本発明の新規な特徴及び特性は特許請求の範囲に記載し
た如きである。しかし、本発明それ自体並びに本発明の
他の特徴及び利点は図面を参照して行なう以下の詳細な
説明から理解できる。
実施例 以下、具体的な実施例について詳細に説明する。
マイクロプロセッサ ここに説明するマイクロコンピュータ装置は、主として
信号処理のために使用されるが、その概念はいろいろな
形態のプロセッサ装置に使用することができ、それらの
プロセッサ装置は多くの様々なシステムに使用すること
ができる。すなわち、1実施例では、マイクロコンピュ
ータは第1図に一般化した形式で示したシステムに使用
されている。そのシステムは、たとえば、音声通信シス
テム、音声分析システム、小型の“個人用”または“家
庭用”コンピュータ、単一ボード汎用マイクロコンピュ
ータ、ワードプロセッサ、ディスプレイとタイプライタ
形キーボードを備えていてローカル処理能力を有するコ
ンピュータ端末装置、あるいはいろいろなタイプの多く
の応用のうちのひとつであってもよい。
このシステムは、後述する単一チップMOS/LSI中央処理
ユニット(以下CPUともいう)すなわちマイクロコンピ
ュータ10、プログラムまたはデータ記憶装置11、および
入出力装置すなわちI/O装置12を有している。
一般に、代表的なシステムのI/O装置12は、アナログ・
デジタル交換器および(または)デジタル・アナログ変
換器、モデム・キーボード、CRTディスプレイ、ディス
ク駆動装置等を有している。I/O装置12は汎用プロセッ
サに対する結合部を備えているものが多い。
すなわち、マイクロコンピュータ10は、I/O装置12を介
してインタフェースされ、より大きなシステムにおける
付加プロセッサになる。マイクロコンピュータ10、プロ
グラムデータ記憶装置11およびI/O装置12は、2個のマ
ルチビット並列のアドレス・バスRAとデータ・バスD、
および制御バス13によって相互に連絡されている。マイ
クロコンピュータ10は適当な供給電圧と水晶入力端子を
有している。たとえば、マイクロコンピュータ10は単相
+5Vの供給電圧Vddと接地Vssを用いており、マイクロコ
ンピュータ10の端子X1とX2には一定のシステム調時を制
御する水晶が接続されている。マイクロコンピュータ10
は20MHzの水晶入力をもつ非常に高速な装置であって、
ある実施例の場合、毎秒500万回の命令実行速度を備え
ている マイクロコンピュータ10は、デジタル・フィルタリン
グ、テレコミュニケーション・モデム(変調、復調)の
ための信号処理、線形予測コード(LPC)、音声信号の
データ圧縮、高速フーリエ交換、など大規模な逐次信号
処理問題に役立つことを特にねらっており、また、一般
に、検出信号発生、混合、位相トラッキング、角度測
定、フィードバック制御、刻時回復、相関、たたみ込み
あるいは合成(couvolution)等を含む集中的アナログ
システム機能のほとんどすべての計算に向いている汎用
マイクロコンピュータである。さらに、マイクロコンピ
ュータ10は、座標変換、定数係数をもつ線形微分方程式
の解、平均等など制御や信号処理のための計算要求と同
様な計算要求をもつ用途に対して使用できる。マイクロ
コンピュータ10は、後で説明するように、普通は、I/O
装置12を介して99000、8600あるいは68000などの汎用プ
ロセッサにインタフェースされ、処理システムを構成す
る。
好ましい実施例では、オンチップ・プログラムROM14お
よびデータRAM15を有するマイクロコンピュータについ
て説明するが、本発明のいくつかの概念は、図示したオ
ンチップ記憶装置の代りにすべてオフチップのプログラ
ム記憶装置および(または)データ記憶装置である単一
チップ・マイクロプロセッサに使用できる。もっとも、
オンチップ記憶装置を使用禁止にする操作モードが準備
されている。マイクロコンピュータ10は、現在一般的で
ある多重化双方向バスの代りに、2個の独立した外部プ
ログラム・アドレス・バスとデータバスをもつように図
示してあるが、ここに開示したいくつかの特徴は、バス
が多重化されていても利用することができる。バスを分
離すること、およびプログラム記憶装置とデータ記憶装
置とを分離することの利点は、処理速度である。
一般に、第1図のシステムは次のように機能する。すな
わち、マイクロコンピュータ10は、内部でROM14をアク
セスすることによって、あるいは外部にROMアドレス・
バスRA(および制御バス13のRCLK-)を通じて記憶装置1
1へアドレスを送ることによって命令語を取り出す。も
し外部であれば、記憶装置11のアドレスされたロケーシ
ョンからデータ・バスDを通して命令語を受け取る。こ
の命令は、次のマシン・サイクル(20MHzのクロックす
なわち水晶X1、X2により定義される200ナノ秒の長さを
もつ)において実行される一方、新しい命令が取り出さ
れる。命令の実行は、オペランドのためオンチップRAM1
5をアクセスすること、または結果をデータRAM15へ書き
込むこと、およびALU内での演算または論理操作が含ま
れる。
実施例について詳細に述べると、内部でROM14へ、また
は外部でRAバスに加えられた12ビットの命令アドレス
は、ROM14や記憶装置11内の212すなわち4K語のプログラ
ム命令または定数を直接アドレスする。記憶装置11から
読み取っているとき、DEN-(データ・バス使用許可バ
ー)指令が制御バス13上に表明される。また、記憶装置
11に書き込むことも可能であり、このために、WE-(書
込み許可バー)指令がマイクロコンピュータ10によって
制御バス13の1つに表明される。WE-指令が書込み機能
を許可するように、記憶装置11はそのアドレス空間のい
くつかまたはすべてに読取り/書込み記憶装置を含むこ
とができる。
I/O装置12は、ポートとしてアドレスされる。外部の装
置12に対する、このインタフェースはアドレス・バスR
A、データ・バスDおよび制御バス13を使ってなされ
る。しかし、I/O装置12は、記憶装置11のような論理ア
ドレス空間内にロケーションを占めることはない。これ
は、通常の記憶域割当形I/O装置とは対照的である。
I/Oすなわち周辺装置12を通すデータの入出力は、周辺
装置12内の8個の16ビットポートP0−P7の1つを選択す
るためバスRAからの3ビットフィールドのRApを使用す
る。各ポートはDEN−またはWE−指令によって入力また
は出力のいずれかに定義することができるから、実質
上、インが8個、アウトが8個、計16個の16ビット部が
ある。選択された16ビット・ポートはRApとDEN−(また
はWE−)によってアドレスされ、そのあと、バスDを通
して読取りまたは書込みのためアクセスされる。その操
作は2つの命令INまたはOUTの一方を使用する。すなわ
ち、制御バス13上のWE−は書込みすなわちOUTの場合に
使用され、またDEN−は読取り、すなわち、INの場合に
使用される。
制御バス13上のROMクロックRCLKは、DEN−またはWE−の
どちらかが使用中であるときを除きどのマシンサイクル
においても使用される。すなわち、記憶装置11は、各マ
シンサイクルにおいてオフチップからの予想される命令
語のアクセスのためRCLK−よって起動される。しかし、
もしDEN−またはWE−を使って周辺装置12をアクセスす
る場合には、RCLK−は生じない。
制御バス13上のリセット信号RS−は、プログラム・カウ
ンタとアドレス・バスRAをクリヤし(ゼロにリセットす
る)、データ・バスDを高インピーダンス状態にセット
し、そして記憶装置制御指令DEN−、WE−およびRCLK−
を非使用(高)状態にセットする。マイクロコンピュー
タ10内のすべてのアドレス・レジスタおよび一時データ
・レジスタは、ROM14内のリセット・ルーチンによって
クリヤされるが、内部のRAMはクリヤされない。このよ
うにして、周辺装置12(主プロセッサなど)の制御を表
明する、すなわち始動またはパワーオンの手順を開始す
ることができる。
制御バス13上の割込み信号ITN−は、マイクロコンピュ
ータ10に実行を停止させ(現在のROMアドレスを保存す
る)、そして割込みがプログラムによってマスクされな
い限り、割込みベクトルアドレスに向かわせる。
制御バス13上のME/SE−は、マイクロコンピュータ10に
対し記憶装置拡張モードかシステム・エミュレータ・モ
ードかを定義する。このピンが高電圧(+Vcc)に保た
れているとき、マイクロコンピュータはオンチップROM
とオフチップ記憶装置11からの命令を実行する。しか
し、低電圧(Vss)のときは、マイクロ・コンピュータ1
0はシステム・エミュレータ・モードであり、実行はPRO
M、EPROMまたはRAMである記憶装置11からの命令のみで
なされるから、プログラムを容易に変更することができ
る。
マイクロコンピュータ・チップ マイクロコンピュータ10の内部構成を、第2図に詳細な
ブロック・ダイヤグラムで示す。この装置は、標準形40
ピン・デュアル・インライン・パッケージ、すなわち、
チップ支持体に取り付けた単一チップ半導体集積回路で
ある。パッケージの16本のピン、すなわち、端子は16ビ
ットデータ・バスDのために使われ、12本はアドレス・
バスRAのために使われ、残りの端子は電力源Vdd,Vss、
水晶X1,X2、および制御バス13のために使われる。
プログラム記憶装置14およびデータ記憶装置15のほか
に、マイクロコンピュータ10は、第1図のシステムに対
する中央処理ユニット、すなわち、CPUを有している。
このCPUは、32ビット演算/論理ユニットALU、オペラン
ドと結果を保持するための32ビット・アキュムレータAc
c、ALUから独立している乗算器M、ALUに対し1つの入
力であるシフタS、状態すなわち標識デコーダSD、およ
び現在の命令語を受け取ってCPUおよびマイクロコンピ
ュータ10のデータ記憶装置に対し制御ビットを発生する
命令デコーダID1を含んでいる。
プログラム記憶装置14は、該装置をアクセスするために
使われた、あるいはバスRAを通して記憶装置11へ送られ
た、命令アドレスを保持するプログラム・カウンタPC、
装置14から命令語を受け取る命令レジスタIR、プログラ
ム記憶装置アドレスを保持するスタックST、および現在
の命令語を受け取ってマイクロコンピュータのプログラ
ム記憶部に対し制御ビットを発生する命令デコーダID2
に関連している。命令デコーダID1とID2は、組合せて1
個のより大きな制御ROMにすることもできるし、あるい
はより小さなPLAまたはランダム論理に分割できること
はもちろんである。
データ記憶装置15に関連しているのは、データ記憶装置
15に対する2個の補助アドレス・レジスタAR0,AR1、デ
ータ記憶装置アドレスとして使用されレジスタAR0とAR1
を選択するページ・レジスタARP、データ記憶装置アド
レスのいくつかのビットを保持するデータ・ページ・パ
ッファDPである。
CPUは、2個の内部バス、16ビット・プログラム・バス
P−BUS、および16ビットデータ・バスD−BUSの近くに
配置されている。プログラム・アクセスとデータ・アク
セスは、同時に起ることが可能であり、アドレス空間は
独立している。したがって、マイクロコンピュータは、
ハーバード構成になっているが、バス交換モジュールBI
Mは、Accからプログラム・カウンタPCをローディングす
ること、たとえば、P−BUS、BIM、およびD−BUSを通
して定数をROM14にアクセスすることを許す。
信号処理用マイクロコンピュータに対する二大要求は、
高速演算と柔軟性である。演算性能は、独立した主とな
るオンチッププログラムおよびデータ記憶装置14、15、
大きな単一アキュムレータAcc、および並列乗算器Mを
使用することによって実現される。特殊な操作、データ
移動は、データ記憶装置15内で定義され、これはたたみ
込みまたは合成(以下単にたたみ込みと称する)操作に
おける性能を高めるものである。柔軟性は、後で表Aを
参照して説明するように命令セットを定義すること、記
憶拡張を組み入れること、および単一レベルの割込みに
よって得られている。
マイクロコンピュータは、たとえば、2Kすなわち211
以下のオンチップ・プログラム記憶装置14で構成するこ
とができるが、その構成は、記憶装置11に外部プログラ
ム記憶装置を追加することにより4Kすなわち212まで記
憶拡張が可能である。加えて、独立したモードはマイク
ロコンピュータ10をシステム・エミュレーション装置と
して構成することを許容し、この“システム・エミュレ
ータ”・モードの場合には、4Kの記憶空間全部が外部に
あって、ROM14は使用されない。
中央処理ユニットCPU 演算/論理ユニットすなわちALUは、32の並列段から成
っており、各独立段はその二つの入力ビットについて演
算または論理機能を行なって、1ビット出力とけた上げ
/けた下げ信号を出す。ALUを通過するデータに関して
行なわれる特定の機能は、プログラム・バスP−BUSに
よって命令デコーダID1に加えられたIR内の現在の16ビ
ット命令語によって定義される。ALUは、二つの32ビッ
ト・データ入力ALU−a、ALU−bと、アキュムレータAs
sに対する32ビット・データ出力ALU−oをもっている。
ALU−a入力は常にアキュムレータAccからであり、ALU
−b入力は常にシフタSまたは乗算器M内の32ビット積
レジスタPのどちらかからである。ALU−b入力の送信
側は、入力選択回路ALU−sによって定義され、回路ALU
−sは現在の命令語の内容すなわちデコーダID1の出力
Cに基いてこれら2つのうちから選択する。
シフタSは、D−BUSから16ビットの入力Siを受け取っ
てゼロから15位置左へシフトした32ビットの出力S0を発
生する。左へシフトされたデータはゼロにされる、すな
わち、データが左へシフトされるとすべての右側のビッ
ト位置はゼロで満される。独特の特徴は、上位のビット
がシフト操作において符号拡張されることである。ALU
は2の補数で動作する。シフタSは、ラインSpを通して
P−BUSからの4ビット値でロードされるシフト制御装
置Scを有しており、演算命令はD−BUSからALU−b入力
へ向う経路においてシフトされるビットの数を直接定義
することができる。
この説明においては、最下位ビットすなわちLSBを右
側、最上位ビットすなわちMSBを左側とみなすことにす
るから、左シフトはMSBに向ってである。ビット0はMSB
であり、ビット15はLSBである。データは、通常、この
構成において符号付きの2の補数で取り扱われる。
乗算器Mは、けた上げ正方向送り(フィードホワード)
を使用してダイナミック/スタチック論理で、ブース算
法を実行するように構成された16×16乗算器である。乗
算器Mに対する入力の1つは、Tレジスタである。Tレ
ジスタは、ラインTiを通してD−BUSから受け取った被
乗数を一時記憶するための16ビット・レジスタである。
他の16ビット入力はラインMiを通るD−BUSからのもの
である。すなわち、この乗算器の入力は、データ記憶装
置15からでもよいし、あるいは命令語から直接導いた
(ロードされ、右そろえされ、そして符号拡張された)
15ビットの乗算即時値であってもよい。
ALUは、常にそのALU−a入力としてアキュムレータAcc
の内容を受け取って、常にその出力をAcc内に記憶させ
る、すなわち、Accは常に最終受信地であり、かつ一次
オペランドでもある。ALUは加減算を行ない、また論理
積、論理和および排他的論理和の論理操作を行なう。論
理操作の結果はAccの下半分(ビット16−31)とデータ
記憶装置15からの16ビット値の間にある。データ記憶装
置の値はシフタS(ゼロシフトで)を通過するので、MS
Bの論理操作結果に対するオペランド(ビット0〜15)
はゼロである。
アキュムレータに入る最終的な32ビットの結果は、した
がって二つの部分になる。すなわち、ビット0〜15はゼ
ロで論理積がなされた(または論理和等がなされた)Ac
cビット0〜15であり、ビット16〜31の結果はデータ記
憶装置の値で論理積等がなされたAccビット16〜31であ
る。アキュムレータAccの出力は、32ビットALU−a入力
に対するもののほかに、上位16ビット出力Acc−H(ビ
ット0〜15)と下位16ビット出力Acc−L(ビット16〜3
1)がある。この上位および下位16ビットAcc語をデータ
記憶装置15に記憶させるために、別個の命令SACH“アキ
ュムレータ上位を記憶せよ”と命令SACL“アキュムレー
タ下位を記憶せよ”が用意されている。
状態デコーダSDは、Accを更新する命令が実行されると
きは必らずAccを更新する。SDの4ビットは、OV、L、
G、Zである。アキュムレータのオーバフロー(または
アンダフロー)は、OVビットで指示され、ゼロより小さ
いAccの内容はLビットで指示され、ゼロより大きいAcc
の内容はGビットで指示され、ゼロに等しいAccの内容
はZビットで指示される。割込みがあると、OVビットは
オーバフロー・フラッグ・レジスタ内に保持されるが、
他のビットは次のアキュムレータ命令が実行される時点
までは利用することができる。
アキュムレータ・オーバフロー・モード・レジスタは、
直接プログラム制御を受けて信号処理計算における飽和
した結果を考慮した単一モード・レジスタOVM(SDに含
まれている)である。オーバフロー・モード・レジスタ
OVMがリセットされると、オーバフローの結果は、ALU−
oを通して、修正なしにALUからアキュムレータAccにロ
ードされる。オーバフロー・モード・レジスタがセット
されると、オーバフローの結果は、ALUの最大または最
小表示可能値にセットされ、アキュムレータAccにロー
ドされる。最大値か最小値かは、オーバフロー・ビット
の符号で決められる。これにより、信号処理の応用にお
いてAccの飽和した結果が容認され、アナログ信号の飽
和処理をモデル化することができる。
SD内の独立した状態ビットは、現在使用されている補助
レジスタAR0またはAR1の状態を監視して、現在使用され
ている補助レジスタ(すなわち、ループ・カウンタ部
分)の9個のLSBがすべてゼロである状態を検出する。
このビットは、補助レジスタがゼロでない場合の条件付
き分岐命令BARNZ、すなわち“補助レジスタがゼロでな
い場合分岐せよ”のために使用される。
入出力状態ビットI/O ST−は、制御バスの一部である外
部ピンであって、周辺装置12の状態を質問するため“I/
Oがゼロの場合分岐せよ”命令BIOZを与える。そのBIOZ
命令によってサンプルされたとき、I/O ST−ピン上がゼ
ロ−レベルであれば分岐させる。
バス交換モジュールBIMは、D−BUS上の16ビット値の下
位12ビットと、p−BUS上の下位12ビットとを交換す
る。この操作は、命令としてプログラマーが利用するこ
とはできない。しかし、テーブル探索命令TBLRAまたは
テーブル書込み命令TBLWなどの命令において、あるいは
Acc内の完成したアドレスをサブルーチン拡げるため使
用することができるアキュムレータ呼出し命令CALLAに
おいて、固有の操作として代りが必要である。P−BUS
上のIRからの16ビット値は、RAM内に記憶させるため、
たとえばテーブル読取りのため、BIMを通してD−BUSに
ロードすることができる。
プログラム記憶装置のアドレス指定 プログラム記憶装置14は、命令レジスタIRに対し16ビッ
ト出力を発生するため16に区分されたROMである。このR
OMは入力ライン14b上の11ビットまたは12ビット・アド
レスに基いて1つの16ビット命令語を選択するデコーダ
を使用している。実施例では、ROM14は、2K以下の語を
有するから、11ビット・アドレスを使用することができ
る。しかし、オンチップ・プログラム記憶装置は、12ビ
ット・アドレスをもつ4K語まで拡張することができる。
ROM14の回路は、後で説明するように高速記憶に特に適
している。アドレス入力14bは、実行中の命令の次の命
令のアドレスが入っている12ビットレジスタであるプロ
グラム・カウンタPCからアドレスを受け取る。すなわ
ち、ある命令に対し命令デコーダID1とID2の出力側にお
ける制御ビットCが正当である時点において、PCには
次の命令のアドレスが入っている。
ROM14からIR内に次の命令を読み取るためプログラム・
カウンタPC内のアドレスがデコーダ14aに入った後、PC
は別の命令を取り出す準備としてPCincを通して増分さ
れる。すなわち、PCはID2からの制御ビットCの制御
を受けて自己増分する。プログラム・カウンタPCからの
出力PC0は、ラインRApc、セレクタRAs(および図示して
いない出力バッファ)、および出力ラインRA0を通して
外部RAバスへ、そしてマイクロコンピュータの12本の出
力ピンへ加わる。RAバス(RA0−RA11)は、セレクタRAs
があるモードにあるときは、RApcを通してPCの出力を含
んでおり、またI/O命令INおよびOUTを実行しているとき
は、3ビットのポートアドレス入力RAiを含んでいる。P
C内のアドレスが、ROM14内の最上位アドレスより上であ
れば必らず記憶装置11に対しオフチップ・プログラム・
アドレス指定がなされる。
しかしながら、マイクロ・コンピュータは主としてオン
チップROM14で動作するように設計されているから、マ
イクロコンピュータの多くの用途に対しプログラム命令
のためオフチップ取出しは必要ないであろう。プログラ
ム・カウンタPCは、分岐または呼出し命令に対し、P−
BUSからセレクタPCsおよび入力PCiを通してロードする
ことができ、あるいは、“アキュムレータ呼出し”命令
CALLAまたはテーブル読取りおよびテーブル書込みに対
しAcc−L、D−BUS、BIM、P−BUS、PCpおよびPCiを通
してアキュムレータAccからロードすることができる。
レジスタ・スタックSTは、サブルーチンおよび割込み呼
出しにおいてPCの内容を保存するために使用される。図
示実施例の場合、スタックSTは、先入れ後出し、後入れ
先出方式レジスタとして作られた4個の12ビット・レジ
スタを有しているが、それよりも多くまたは少ない数の
レジスタを使用することも可能である。プログラム・カ
ウンタPCの現在の内容は、ラインPCSTを通してスタック
の一番上のレジスタTOSに“プッシュする”ことによっ
て保存される。連続するCALL命令は、先の内容がシフト
されると、PCの現在の内容をTOSにプッシュし続けるか
ら、4個までの入れ子サブルーチンを収容することがで
きる。サブルーチンは、スタックを“ポップする”戻り
命令RETを実行することによって終了し、ラインPCt、セ
レクタPCsおよび入力PCiを通してTOSの内容をプログラ
ム・カウンタPCへ戻し、プログラムが最終の呼出しまた
は割込みの前に達した個所から続行することができるよ
うにする。TOSがポップされると、スタックSTのそれよ
り下のレジスタ内のアドレスが1位置だけ移動する。呼
出し命令または割込みによって開始された各サブルーチ
ンは、RET命令によって終了しなければならない。
図示実施例の場合、ROM14は、1536語を有しているか
ら、4Kプログラム・アドレス空間の残部、すなわち2560
語のオフチップの記憶装置11の中にある。記憶装置拡張
制御ピンME/SE−が論理1において高いとき、マイクロ
コンピュータは0〜1535の範囲のPC内のプログラム・ア
ドレスをROM14に対するオンチップのアドレスであると
解釈し、そして1536〜4095の範囲のアドレスをオフチッ
プのアドレスであると解釈してPCの内容をRApcおよびRA
0を通してRAバスへ送り出す。各マシン状態に対しデコ
ーダID2によって作られた出力ストロープRCLK−は、外
部記憶装置11を使用許可にする(INまたはOUT命令が実
行されているときは除く)。
オフチップのプログラム記憶装置11がアクセスされる
と、記憶装置から読み取られた命令語は外部バスDに加
えられ、そこから、入出力制御装置DCおよびラインDpを
通して内部のP−BUSに加えられる。すなわち、これは1
6ビット命令であって、IRを通してのROM14の出力と同様
に、それは実行するためデコーダID1とID2にロードさ
れ、あるいは12ビットがPCpを通してプログラム・カウ
ンタPCにロードされるかそうでなければオンチップ命令
取出しとして使用される。
ME/SE−ピンがゼロであると、マイクロコンピュータは
システム・エミュレータ・モードになる。4Kプログラム
・アドレス空間全部がオフチップであるから、すべての
PCアドレスはRApcおよびRA0を通してRAバスに加えれ
る。このモードは、利用側が開発中のシステムまたはプ
ログラムである場合にはROM14のための最終的コード変
換ができ上る前に必要である。すなわち、マイクロコン
ピュータ10は、新しいプログラム(RAMまたは記憶装置1
1のEPROM内に記憶させた)を調べ手直しすることができ
るように、コートをROMに永久的にプログラムしておか
なくても動作することができ、したがって、最終的コー
ドが確立したとき、このコードをROM14にマスク・プロ
グラムして、マイクロコンピュータ10が大量に作られ
る。
いずれのモードにおいても、最初の2つのアドレス0000
と0001はリセット機能のために使われる。リセットピン
RS−が低くなると、すべてがゼロのアドレスは、後で説
明するが、プログラム・カウンタPCの中に入れられる。
さらに、第3のアドレスが割込めベクトルのために予約
される。すなわち、INT−ピンが低くなると、割込みル
ーチンを開始するためアドレス0002がプログラム・カウ
ンタPCに入れられる。
データ記憶装置のアドレス指定 図示実施例におけるデータ記憶装置15は144個の16ビッ
ト語を有しており、したがって、RAMアドレス・デコー
ダ15Bに対するアドレス入力15a上には8ビットのアドレ
スが必要である。しかし、RAM15は512語までの語をもつ
ように構成することができ、9ビットのアドレスを必要
とするから、そのアドレス指定の方法については、いく
つかの実施例では使われないアドレス・ビットのところ
で説明することとする。RAM15の各々の128語のブロック
は1ページとみなせるから、ページ内のデータ記憶装置
15の128語までの語を直接アドレスするため、入力15cを
通してP−BUS上にあるプログラム記憶装置14からの命
令語内の7ビットのアドレスフィールドが使用される。
そのページはデータ・ページ・バッファDPによって選択
される。
代りに間接的にアドレス指定する場合、図示実施例では
2個の補助レジスタAR0とAR1が使われるが、これらの16
ビット補助レジスタは8個まで使用することができ、RA
M15に対する間接アドレス源として現に使用されている
特定のレジスタを補助レジスタ・ポインタARPと定義す
る。2個のレジスタAR0とAR1の場合には、ポインタARP
は1ビットのみであるが、8個の補助レジスタをもつ実
施例の場合には、ポインタARPは3ビット・レジスタで
ある。16ビット補助レジスタAR0とAR1は、後述するよう
に、間接アドレス命令、あるいは記憶、ロードまたは修
正補助レジスタ命令SAR、LAR、MARの制御を受ける。補
助レジスタの下位部分からの9ビットアドレスは、セレ
クタ15d、ライン15e、セレクタ15f、およびライン15gを
通してアドレス入力15aに加えることができ、その経路
はID1からの制御ビットCによって定義される。補助
レジスタの1つをRAMアドレス源にする場合には、セレ
クタ15dはアドレス入力15aとしてライン15e上の値を使
用する。これに対し、P−BUSをRAMアドレス源にする場
合には、セレクタ15dは、入力15cからの7ビット・アド
レスと、データ・ページ・レジスタDPからの1ビットの
(3ビットまたは4ビットまで拡張可能)ページ・アド
レスを使用する。セレクタ15fは、命令によって定義さ
れた通りにP−BUSからロードされるポインタARPによっ
て制御される。
補助レジスタは間接アドレス指定のために使われ、その
場合には、命令はRAM15に対し完全なアドレスを有する
必要はなく、代りにこのアドレスに対し補助レジスタを
使うことを規定するだけである。そのような命令は、さ
らに選択された補助レジスタに対し増分または減分を規
定することができる。その場合には、AR0またはAR1の9
個のLSBが経路Incを通して+1または−1だけ変更され
る。したがって、補助レジスタはループ・カウンタとし
て使用できる。また補助レジスタはラインARi0を通して
D−バスによってアクセスされるから、これらのレジス
タは雑作業用レジスタとして使用できるし、またはルー
プ・カウントを開始するため最初にロードすることもで
きる。
データ記憶装置15は、D−BUSおよび入出力回路15iを使
って、ライン15gを通してアクセスされる。データ記憶
装置の構成は、マイクロコンピュータ10の重要な特徴に
よりRAM15内でデータの完全な移動が許されるようにな
っている。命令制御を受けて、あるアドレスにあるデー
タは、ALUやD−BUSを使わないで1マシン・サイクル内
で次のより上位のロケーションへ移すことが可能であ
る。したがって、たとえば、加算中、アクセスされたデ
ータを次のより上位のアドレスへ移すことが可能であ
る。
入出力機能 マイクロコンピュータ・チップ10からのデータの入出力
には、データ・バスDと、制御バス13のラインのうちの
2本を使用する。2本のラインはデータを使用許可バー
DE−と書込み許可バーWE−である。データの入出力機能
のため2つの命令INとOUTが使われる。外部データ・バ
スDは、入出力制御装置・データ・バッファDCとライン
Ddによって内部データ・バスすなわちD−BUSに連絡さ
れている。
命令OUTが実行されているときを除き、DCからデータ・
バスD−BUSに対する出力が常に高インピーダンス状態
におかれるように、DC内の出力バッファは3個から成っ
ている。すなわち、この目的のために、OUTをデコード
しないときは必らず命令デコーダID1からの制御ビット
#Cの1つが出力バッファを高インピーダンス状態にセ
ットする。IN命令が存在するときは、データ制御装置DC
が16個の入力バッファを作動させるので、外部データ・
バスDはデータ入力のためDCとラインDdを通して内部D
−BUSへ連絡される。OUT命令がデコードされると、ID1
からの制御ビット#CがDC内の出力バッファを作動させ
るので、内部D−BUSはDdとDCを通して外部データ・バ
スDへ連絡される。
また、IN命令の実行は、ID1からライン13a上にデータ使
用許可DEN−ストローブを発生させ、そして15iと15jを
通してD−BUSをRAM15に連絡するので、外部からのデー
タはオンチップ・データ記憶装置に入る。マイクロコン
ピュータを信号プロセッサとして意図的に使用するとき
は、オフチップ基準(reference)ごとにRAM15に対し数
百または数千回のアクセスが必要である。すなわち、オ
フチップから値が取り出され、次に、この新しい値とRA
M15内の他のデータを使ってたたみ込みもしくは同様な
操作が実行されるから、別のオフチップ基準が必要とな
る前に数千回の命令実行がなこれよう。この理由のた
め、構成上、オフチップデータ・アクセスよりも内部デ
ータ処理のほうが好ましい。
OUT命令の実行は、ID1からのライン13b上にオフチップ
書込み許可WE−ストローブを発生させ、RAM15から15i,1
5j,D−BUS,ラインDdおよびバッファDCを通して外部バス
Dへデータを出力する。第1図を参照すると、このデー
タは周辺装置12内のポートPO−P7の1つ(3ビットRAi
値によって選択される)に書き込むことができる。
INおよびOUTの両命令に含まれているのは、ID1からのラ
インRAi上の3ビット・ポート・アドレスである。この
アドレスは、セレクタRAsを通して外部アドレスの3個
のLSB(RA9−RA11)上に多重化される。この結果、8個
までの周辺装置をアドレスすることができる。RAバス出
力の残りの上位ビットは、これらの命令の間論理ゼロに
保持される。
命令セット 第1図および第2図のマイクロコンピュータ10は、表A
の命令セットを実行する。表Aは第1行に書込み原始コ
ードに使われる各命令のニモニック言語すなわちアセン
ブリ言語を示し、続いて第2行には、ROM14および命令
レジスタIR内に現われるコード形式である2進法の目的
コードを示す。この2進コードはID1とID2内でデコード
されて制御ビット#Cの全部を発生させ、各種のバスお
よびレジスタをアクセスし、かつALUの機能をセットす
ることによって所定の操作を実行させる。
表は、さらに、命令の実行中マイクロコンピュータによ
って用いられたサイクルすなわちマシン状態の数を示
す。分岐、呼出し、デーブル索引、および入出力を除く
すべての命令は、1状態時間中に実行されることに注意
されたい。マイクロコンピュータはマイクロコードされ
ない、すなわち、標準ALU命令は1状態時間中に実行さ
れる。表は、さらに、各命令を定義するために必要な命
令語すなわち命令コードの数を示す。ブランチすなわち
分岐と呼出しだけが2個の命令語を必要とすることに特
に注目されたい。表Aの右欄は各命令に対する操作の簡
単な説明である。
表Aの大部分の命令は、“IAAA AAAA"のように下位の8
ビット(ビット8−15)を示す。それは1つのオペラン
ドに対する直接アドレスまたはRAM15の間接アドレスで
ある。もし、“1"ビット、すなわちビット8が0であれ
ば、直接アドレス指定モードが使用されるので、命令語
の“A"欄、すなわちビット9〜15は、IRからP−BUS、
ライン15c、およびセレクタ15dを通してアドレス入力15
aに連絡される直接アドレスとして使用される。この直
接アドレス指定モードでは、補助レジスタAR0−AR1は使
われない。
“IAAA AAAA"を含む命令の場合、間接アドレス指定モー
ドは、これらの命令のI欄すなわちビット8内の1によ
って規定される。RAM15に対するライン15a上の入力アド
レスは、この場合、補助レジスタAR0またはAR1の一方か
ら得られ、ビット15がその一方を選択する。もし、ビッ
ト15が0であれば、AR0が使われ、ビット15が1であれ
ば、AR1が使われる。したがって、P−BUSを通してIRか
ら連絡されたビット15はセレクタ15fを制御する(そし
て、ARPレジスタにロードすることができる)。補助レ
ジスタの数は8個まで拡張可能であるから、これらの間
接アドレス命令のビット13〜15は、間接アドレス指定モ
ードにおいて3ビット・セレクタ15fとARPレジスタを使
って8個のうちの1個を定義するために予約される。ビ
ット10からビット12までは、間接アドレス指定における
制御ビットである。すなわち、ビット10はもし1であれ
ば、アドレスされた補助レジスタを増分させ、もし0で
あれば、変化はない。ビット11は、もし1であれば、ア
ドレスされたARを減分し、もし0であれば、変化はな
い。ビット12は、もし0であれば、現在の命令を実行し
た後ビット15をARPにロードし、もし1であれば、ARPを
そのままにしておく。
表Aのいくつかの命令に使われるシフト・コードSSSS
は、ラインSpを通してシフト制御装置Scにロードされ
た、空間の数(ゼロから15)を定義するための4ビット
欄である。D−BUSを通してRAM15から入ってくるデータ
は、ALU−b入力へ向う途中シフタSを通過するとき左
シフトされる。
本明細書に記載した構成にとって重要ではないが、表A
の命令セットを使用するアセンブリ言語形式は、直接ア
ドレス指定を表わすために“A"を、間接アドレス指定を
表わすために“β”を用いている。したがって、“ADD
S,A"は、命令語のA欄によって定義された記憶場所の内
容を加算することを意味する。“ADD Aβ”は、ARPに存
在する内容によって選択された補助レジスタAR0またはA
R1でアドレスされたデータ記憶場所の内容を使って加算
することを意味する。“ADD Sβ+”は、ARを定義し、
次にループ・カウントのためこの補助レジスタを増分す
るためARPの現在内容を使って加算することを意味する
“ADD Sβ”は1だけ減分することを除いて“ADD Sβ
+”と同じである。“ADD Sβ−,AR"は、以下の演算の
ため新しい補助レジスタを定義するためARPにビット15
の値がロードされることを除いて“ADD Sβ+”と同じ
である。
表Aの右欄に記載された説明は、直接アドレス指定を仮
定している。間接アドレス指定については、上記の解説
を用いる。
以上により、ADD命令は、左へSSSS空間シフトされたRAM
15の16ビットの内容(直接アドレス指定の場合にはロケ
ーションOAAAAAAAにおける内容、また間接アドレス指定
の場合には選ばれたARによって選択されたRAM15内のロ
ケーションにおける内容)をAccの32ビット内容に加算
し、その結果をAccに記憶させる。ADDH命令は、Accの上
位半分だけが1つのオペランドの送信側であり、かつそ
の結果の最終受信地であって、シフトが行なわれないこ
とを除いて、ADD命令と同じことを行なう。
減算命令SUBとSUBHは、アキュムレータAccからアドレス
されたRAM15のデータを減算し、その結果をAccに記憶さ
せる。しかし、その他については加算と同じである。ロ
ード命令LACは、SSSSビットによって左シフトされたIAA
A AAAAによってアドレスされた16ビット・データをAcc
にロードする。ADD、SUBおよびLAC命令だけがシフトを
規定している。
補助レジスタについては、4つの命令SAR、LAR、LARKお
よびMARがある。“補助レジスタを記憶せよ”命令SR
は、RRRによって定義されたほうの補助レジスタの内容
を記憶場所IAAA AAAAに記憶させる。“補助レジスタを
ロードせよ“命令LARは、命令SARの逆である。命令SAR
またはLARにおいて定義される補助レジスタARは、P−
バスを通して命令語のRRR欄がロードされ、ラインARio
を通してどちらの補助レジスタをD−バスに連絡すべき
かを決定するポインタRPによって定義される。LARK命令
により、RRRによって定義されたARにIRからの定数K
(ビット8〜15)がロードされる。この8ビット定数K
は右そろえされ、16ビット補助レジスタ内のMSBはゼロ
にセットされる。“補助レジスタを修正せよ”命令MAR
は、上記のようにビット10〜ビット12によって補助レジ
スタを修正する。しかし、加算や記憶装置15に対するア
クセスは実行されない。MARコードは、間接モードすな
わちI=1においてのみ効力を有し、直接モードにおい
てこの命令は効力を有せず、すなわちNO−OPとなる。
入力/出力命令は、アセンブリ言語では “IN PA,A"または“OUT PA,A"のように書かれる。ここ
で、PAはRAバスのビット9〜11上の3ビットポート・ア
ドレスPPP出力(デコーダID1から生じて、ラインRAiを
通して連絡される)である。IN命令はDEN−を使用許可
し、RCLK−を使用禁止にする。一方、OUT命令はWE−を
使用許可にし、RCLK−を使用禁止にする周辺装置12は、
RA9〜RA11をデコードし、8個の16ビット・ポートP0−P
7の1つ、すなわちバスDを通して読取りまたは書込み
のためのロケーションを選択する。以上の命令は2つの
マシン状態を使用しており、バスDのデータ入力ピンは
第2の状態ではフリーであって、ROM14の代りに記憶装
置11から次の命令の外部取出しを許す。
“アキュムレータを記憶せよ”命令SACLとSACHは、アセ
ンブリ言語では“SACL X,A"のように書かれるが、Accの
下位または上位のビットをXXX空間左シストさせ、IAAAA
AAAによって直接または間接に定義されたデータ記憶装
置15内のロケーションに記憶させる。X欄は、図示実施
例の場合、完全に実行されない。すなわち、SACH命令の
場合、X=0,X=1およびX=4のみが許される。この
シフトは、シフタSまたはALU内ではなく、アキュムレ
ータAcc回路自体内で実行される。
シフト・コードのない、演算および論理命令は、ADDH,A
DDS,SUBH,SUBC,ZALH,ZALS,EXOR,AND,ORおよびLACKであ
る。これらの命令は、すべて、アセンブリ言語で、たと
えばADDH,Aのように書かれる。ADDH命令は、RAM15内の
定義されたロケーションからの16ビット・データをAcc
の上位半分に加算し、結果をAccの上位半分に記憶させ
る。実際には、RAM15からのデータは、D−バスからALU
−b入力へ進むときシフタS内で16ビット左シフトされ
る。ADDS命令は、符号外延がシフタS内で抑制されるこ
とを意味し、Aによって定義されたRAM15からのデータ
は、符号付き2の補数の代りに16ビットの正数として取
り扱われる。SUBHおよびSUBS命令は、ALU内で減算が実
行されることを除いてADDHおよびADDS命令に相当する。
除算には、条件付き減算命令SUBCが使われる。RAM15内
の定義されたロケーションの内容は、Accの内容から減
算され、15ビット左シフトされ、ALU出力ALU−oを作
る。そのALU出力ALU−oは、もしゼロでなければ、1ビ
ットだけ左シフトされ、そして+1が加算され、その結
果がAccに記憶される。もしALU出力ALU−oがゼロでな
ければ、1ビットだけ左シフトされ、その結果がAccに
記憶される(+1は加算されない)。SUBC命令は、それ
に続く命令においてアキュムレータが使用されないとい
う仮定に立つ2サイクル命令である。もし、それに続く
命令がAccに関係していれば、そのときには、SUBC命令
の後、NO−OP命令を挿入すべきである。
“ゼロ・アキュムレータ・ロード・ハイ”命令ZALHは、
RAM15内のアドレスされたロケーションにある16ビット
語を取り出し、それをAccの上位半分(ビット0〜15)
にロードする。Accはゼロにされているから、下位ビッ
ト16〜31はゼロのままである。シフタSはD−BUSからA
LUを通ってAccに向うデータ経路内にあるから、ZALH命
令において16ビット・シフトが実行され、データは上位
半分へ移される。ZALS命令は、RAM15から語を取り出
し、それを、ゼロにされたAccの下位半分にロードす
る。符号拡張はシフタS内で抑制される。
論理命令EXOR、ANDおよびORは、たとえ取り出されたオ
ペランドが16ビットであっても32ビット形式で実行され
る。EXOR命令の場合には、Accの上位半分はゼロで排他
的論理和がさなれ、Accの下位半分をもつ取り出された
データの排他的論理和で連結され、その結果の両半分が
Accに記憶される。同じことがORおよびAND命令に当ては
まる。
ロード・アキュムレータ命令LACKは、命令語の8個のLS
Bに含まれている8ビットの定数をAccの8個のLSBにロ
ードさせ、右そろえされる。すなわち、Accの上位24ビ
ットはゼロにされる。この命令を実行するため、IRから
のP−BUS上の命令語が(もちろん、ID1とID2がロード
された後)、BIMによってD−BUSへ連絡され、したがっ
て、シフタSを通して(シフトなしで)ALU−bへ連絡
される。ALUは“ALU−bを通過させよ”、すなわち“AL
U−bにゼロを加算せよ”命令を実行し、定数をAccの中
にそのままにしておく。
データシフトすなわちデータ移動命令DSHTは、RAM15内
の定義されたロケーションの内容を定義されたものに1
加えたロケーションに移動させる。この命令は、ALUま
たはD−バスを使わずにRAM15に対し内部で実行され
る。しかしながら、この命令はページ境界を横断できな
い。
“Tをロードせよ”命令LTは、乗算を準備するために使
用される。LT命令は、TレジスタにRAM15からIAAA AAAA
によって定義された値をロードする。
“データ移動とともにTをロードせよ”命令LTDは、RAM
におけるDSHT命令に似た演算を用いる。すなわち、Tレ
ジスタにIAAA AAAAによって定義されたRAM15の内容がロ
ードされ、次に、この同じ値がロケーションIAAA AAAA
+1へシフトされ、さらにAccの内容がALU内でPレジス
タの内容に加算され、その結果がAccに記憶される。LTA
命令は、データ移動のないことを除きLTD命令と同じで
ある。すなわちTレジスタはRAM15からロードされ、P
レジスタはAccに加算され、その結果がAccに記憶され
る。
乗算命令MPYは、乗算器M内で(ALUは使わない)、Tレ
ジスタの16ビット内容にD−バスからの入力Mi上のRAM1
5からの値を掛け、その32ビットの結果をPレジスタに
入れる。“定義を掛けよ”命令MPYKは、Tレジスタの16
ビット内容にIR内の命令コードからの13ビット定数Cを
掛け、その32ビットの結果をPレジスタに入れるMPYK命
令の場合、定義はIRからP−BUS、BIM、およびD−BUS
を通してMiに連絡される。
“データ・ページをロードせよ”命令LDPKおよびLDP
は、データ・ページ・レジスタDPに、命令コード自体か
らまたはRAM15内の定義されたロケーションから8個ま
でのビットをロードする。図示実施例の場合には、DPレ
ジスタは1ビットのみであるが、より大きなRAM15をも
つ別の実施例の場合には、DPレジスタには8個までのビ
ッドが入る。ページ・アドレスは、新しい“ページをロ
ードせよ”命令が生じない限りDP内で同じままである。
“状態をロードせよ”命令LSTおよび“状態を記憶せ
よ”命令SSTは、呼出しまたは割込みにおいて、状態回
路SDの内容を保存するため、すなわち状態回路SDを再記
憶するために使用される。これらの命令は、この機能を
実行するための配線回路の代りに使用される。
使用禁止命令DINTおよび使用許可命令EINTは、割込み能
力をマスクするため、またはアンマスクするために使用
される。すなわち、これらの命令は、マイクロコンピュ
ータ10がINT−ピンに応答するかしないかを決定するラ
ッチをリセットまたはセットする。
絶対値命令ABSは、アキュムレータが絶対値のみを入れ
るように機能する。すなわち、もしアキュムレータがゼ
ロより小さければ、Accの絶対値がAccにロードされる、
しかし、Accがゼロより大きければ、変化はない。同様
に、ゼロ・アキュムレータ命令ZACは、Accをゼロにす
る。
オーバフロー・モード命令RAMVは、状態デコーダSD内の
オーバフロー・モード・ラッチOVMを1にセットし、オ
ーバフロー・モード命令SAMVは0にリセットする。OVM
がセットされると、ALUの出力は、オーバフロー時にAcc
にロードされる前に、その最大または最小値にセットさ
れる。これは、アナログ回路における増幅器飽和の効果
を模擬しており、信号処理上役に立つ。
3つのPレジスタ命令PAC、HPAC、およびSPACは、MPYま
たはMPYKの後、データを処理する場合に使用される。PA
C命令は、データを修正するいかなる操作も実行させな
いでALUに32ビット・データを通過させることによっ
て、アキュムレータにPレジスタの内容をロードする。
実際にはALU−a入力はゼロにされ、加算が実行され
る。HPAC命令はPレジスタの内容をAccの内容に加算
し、その結果をAccに入れる。同様に、SPAC命令は、Acc
からPレジスタの内容を減算し、その結果をAccに入れ
る。
サブルーチン命令には、CALL、CALLA、およびRETがあ
る。CALL命令は、2語命令であって、最初の語は命令コ
ードで、2番目の語はサブルーチン内の最初の命令の絶
対アドレスである。CALL命令がID2内でデュードされる
と、PCはアドレスである次の命令語を取り出すため増分
され、次にPCの増分した内容がスタックSTへ入れられ
る。サブルーチンは、戻し命令RETで終了し、RET命令は
TOSのアドレスをポップさせ、PC内にロードする。状態
を保持するため、CALL命令の前にSTT命令を使用しなけ
ればならないし、RET命令の後にLST命令を挿入しなけれ
ばならない。
CALLA命令は、ハーバード構成のマシンに対する独自な
ものである。すなわち、この命令は、PC+1によってア
ドレスされた次のロケーションを使用するのでなくAcc
の内容をサブルーチンのアドレスとして使用する。Acc
の下位ビットは、Acc−LおよびBIMを通してP−バス
へ、そこからPCpAを通してプログラム・カウンタPCへ転
送される。CALLA命令において増分されたPCは、CALL命
令とまったく同様にSTに入れることによって保存され
る。
デーブル索引命令TBLRおよびTBLWも、アドレス源として
Accを用いている。これらの命令は実行するのに3つの
状態が必要である。IAAA AAAAによって定義されたRAM15
のロケーションはD−バスおよびBIMを通してP−バス
へ、続いてPCpを通してPCへ転送される。そこから、こ
のアドレスはROM14へ、またはRApcを通して外部RAバス
に加えられる。
分岐命令はすべて2語が必要であって、最初の語は命令
コードであり、PC+1における2番目の語はアドレスで
ある。分岐コードの下位ビット8〜15は使用されない。
非条件付き分岐命令Bは、PC+1における語を次のアド
レスとしてPCにロードする。BARNZ命令は、ループ・カ
ウンタ、すなわちARDによって定義された補助レジスタ
の1つがゼロでないかどうかに基づく条件付きである。
BV命令は、もし状態デコーダSD内のオーバフロー・ビッ
トOVが1であれば分岐させる。BIOZ命令は、I/O ST−か
らのIOビットが状態デコーダSD内の1に対応する、“使
用中−低い”であれば、分岐させる。6つの命令BLZ、B
LEZ、BGZ、BGEZ、BNZ、およびBZ、すべて、Acc内の条件
を反映しているSD内の定義された条件によって決まる。
システム・タイミング 第3A〜C図の(a)〜(pp)に第1図のシステム及び第
2図のCPUチップのタイミングを、電圧対時間の波形ま
たはエベント対時間のチャートで示す。チップ10は2つ
の外部ピンX1及びX2を有するクロック発生器17を具備し
ており、該ピンには水晶発振器(または外部発振器)が
接続されている。この水晶発振器の基本周波数は20MHz
までであり、これを(a)にクロックφとして示す。こ
のクロックφは最小50nsの周期を有しており、(b)〜
(e)に示す4つの四分の一サイクル・クロックQ1、Q
2、Q3及びQ4を発生するのに用いられ、マイクロコンピ
ュータ・チップ10に対する基本内部タイミングを提供す
る。
一組の四分の一サイクル・クロックQ1ないしQ4は最小20
0nsの1つのマシンステートタイムを形成する。このス
テートを第3図にS0、S1、S2として示す。クロック発生
器17は、制御バス13のうちの一つの上に出力CLKOUT
((f))を発生する。CLKOUTはQ1と同じ周期を有する
が、これは50%デューティサイクルであり、Q1の中点で
始まる。この出力を、第1図のシステムの外部素子のタ
イミングまたは同期用に用いる。
内部では、マイクロコンピュータ10は、大部分の型の命
令に対して、1ステートタイム当り1命令を実行する。
従って、1秒間当り500万の命令が20MHzクロック速度で
実行される。いうまでもなく、入出力、分岐すなわちブ
ランチ、コールまたあテーブルルックアップのような若
干の命令は2つまたは3つのステートタイムを必要とす
る。加算、ロード、記憶、等のような一連の単一ステー
ト命令を考えると、(g)に示すように各Q3最中に新た
なアドレスがPCにロードされ、次いでQ4及びQ1最中にRO
M14がアドレス指定され、従って、(h)に示すよう
に、一つの命令語出力がIRから次のQ2における妥当なP
−BUS上に発生させられ、Q3まで継続する。従って、ROM
14のアクセス時間は約100nsである。メモリ11からの外
部命令取出しを用いても、同じアクセス時間が適用され
る。
(i)に示すように、命令デコーダID1及びID2はQ3最中
にP−BUSから命令語を受取り、そして、若干の高速制
御出力がQ4において可用であるが、大部分のコーダ出力
#CはQ1最中は妥当(valid)である。RAMの直接アドレ
ス指定に対しては、P−BUSのビット9ないしビット15
上のアドレスは、P−BUSが妥当となると直ちにRAMコー
ダ15b内にゲートされる。しかし、直接または間接のい
ずれにおいても、RAMアドレスは(j)に示すようにQ3
の開始により妥当である。RAM読取りに対しては、ライ
ン15jを介するD−BUSへのデータ出力はQ4上で妥当であ
り、そして、このデータはシフタSを通過し
((k))、Q1最中にALU入力として受入れられる
((i))。ALU制御出力#CはQ2において妥当であ
り、ALU出力ALU−oはQ3中に受入れられる。アキュムレ
ータAccはQ4においてALUからロードされ((m))、次
いで次のQ1において飽和させられる。
以上から解るように、例えば、第3A図の(a)〜(m)
におけるS0ステートのQ3でフェッチ(取出し)が始まっ
たADD命令は完了する。即ち、その結果はステートS2のQ
4においてAccにロードされ、次いで、ステートS3のQ1に
おいて受入可能な飽和したAccをQ2においてDバスにロ
ードすることができる。命令実行についてはかなりのオ
ーバラップがある。新たな命令のフェッチすなわち取出
しが1ステート命令に対する各ステートタイムのQ3中に
開始し、従って、1つが終了する前に更に2つの命令の
実行が開始しているということが可能となる。
書込みRAM機能は第3A図の(a)〜(m)図には示して
ない。RAM15は常にQ2中に書込みされる。しかし、RAMを
アドレス指定することは常にQ3中においてである。従っ
て、「低次のアキュムレータを記憶」SACLのような命令
を第3A図の(n)〜(o)に示してある。RAMアドレス
は命令レジスタからP−BUSを介してS1のQ3上で受取ら
れ(SALC命令の取出しはS0のQ3において開始したものと
仮定する)、そして書込みはステートS2のQ2までは生じ
ない。読出しスロット、即ちS1のQ4中に、RAMのアドレ
ス指定された行いに対してリフレッシュが生じ、次いで
この同じアドレスは書込みのためにステートS2のQ2まで
留まっている。D−BUSはこの同じQ2中にAccからロード
される。(n)を参照されたい。
アキュムレータが、オーバフローモードにおいて、即ち
1にセットされたOVMにおいて飽和機能を行なわなけれ
ばないない場合には、これは(m)のアキュムレータ・
ロード機能後に行なわれる。即ち(a)〜(m)のADD
命令に対して、Accは次のステートS3におけるQ1中に飽
和され、従って、上記アキュムレータが後続の命令によ
ってアクセスされると、該アキュムレータはQ2上でD−
BUSをロードするのに受入れ可能となる。
命令がRAM15内のデータ移動機能を用いるときは、この
移動動作は(o)に示すようにQ1に生ずる。また、増分
すなわちインクリメント・ループ・カウンタ機能が補助
レジスタAR0またはAR1に対して行なわれると、このイン
クリメント(または減分すなわちデクリメント)はQ1に
おいて実行される。Tレジスタ、補助レジスタAR0また
はAR1、ARPラッチ、DPレジスタ及びスタックSTレジスタ
は、これらの機能がカレント命令に含まれていると、各
々が、任意のステートタイムのQ2中にロードされる。
バス交換モジュールBIMは、この機能が命令によって確
定されると、Q2において開始するD−BUSからP−BUSへ
の転送を常に実行する。BIMによるP−BUSからD−BUS
への転送はQ4中に開始される。D−BUSは各サイクルのQ
3上でプリチャージされ、従って、データがいずれかの
ステートのQ3を通じてD−BUS上で桁上がりするという
ことがなく、またデータがQ3中にD−BUSへまたはこれ
からロードされることもない。
プログラムカウンタPCは各ステートタイムのQ3中にPCin
c路によってインクリメントされる。即ち、(g)ロー
ドPC機能は丁度発生させられたインクリメント値であ
る。
次に、第3B図において、ブランチ命令の実行を(p)〜
(r)に示す。ステートS0のQ3中にデコーダSD1及びSD2
内にロードされる命令がブランチであると、先行の命令
からのステータスデコーダSDビットはS1のQ1中は妥当で
あり、従ってブランチするかまはブランチしないかの判
断がこの時点でなされる。その間、いうまでもなく、他
の命令取出しが始まっており、従って、ブランチ条件が
適合すると、S1のQ2中にP−BUSへ送られた命令は次の
アドレスとして使用されるが実行されない。即ち、ID1
及びID2にロードされない。しかし、上記条件が適合し
ないと、この命令は放棄される。即ち、プリチャージま
でP−BUSに留まっている。上記条件が適合していると
すると、ブランチアドレスはS1のQ3中にIRからP−BUS
を介してPCへロードされ、そして、新たな命令がS2のQ2
においてIR及びP−BUSへ送られ((q))、次いで、
(r)のS2のQ3で始ってデコードされ及び実行される。
CALL命令は、(p)〜(r)に示すように、ブランチと
同じタイムシーケンスで実行される。ただし、SD評価は
必要でない。そして、元のPC+1はS1のQ3中にスタック
STへプッシュされる。
リターン命令RETは、(s)〜(u)に示すように、2
サイクル命令である。ステートS0のQ3中にデコーダID1
及びID2にロードされた命令がRETであると、S1のQ3にお
いてPCの「PCインクリメント及びロード」とともに開始
した命令取出しは放棄され、そしてポップスタック機能
がS1のQ3において実行され、従って、次の命令取出しは
リターンアドレスに対するものである。S1のQ4中に取出
された命令は、次いで、S2のQ3で始まってデコードされ
及び実行される。
入力(または出力)命令は、(r)〜(z)に示すよう
に、2サイクルにおいて実行される。S0のQ3においてデ
コーダID2にロードされる操作符号が、(x)に示すよ
うに、INであるものとする。S0のQ3で始まって取出され
た命令は使用されない。実行はINのデコードによって禁
止され、従って、上記命令はIRからP−BUSへロードさ
れることがない。S1のQ3におけるPCの内容は、次の命令
取出しのために、S2のQ3までセーブされる。即ち、PCは
インクリメント路によって再循環させられてPCへ戻る
が、インクリメントは行なわれない。INのデコードから
発生させられる制御出力#Cは2つのステートに対して
受入れ可能である。(g)に示すように、RAMアドレス
はS1のQ3上でP−BUSからロードされ、そしてデータ入
力はS1のQ4上でD−BUSに到達し、S2のQ2中にRAM15に書
込まれる。DEN−制御は、IN機能のためにS1のQ4からS2
のQ2を通じて能動である。OUT命令はINと同じように実
行される。ただし、RAM15がS1のQ4中に読出され、そし
てWE制御がDEN−に代って能動である。
テーブルルックアップ命令が(aa)ないし(dd)に示す
ように実行される。TBLR操作符号は、S0のQ3で始まって
デコードされ、そしてAccをS1のQ2においてD−BUSを介
してBIMへコピーせしめ、次いでPCはS1のQ3においてBIM
からP−BUSを介してこのAcc値をロードされ、従って、
Accの内容は次の命令取出しアドレスとして使用され
る。その間に、S0のQ3で始まって取出された命令の実行
は、ROM読出し制御#NRIRを妨げることにより、S1のQ2
においてIRをP−BUS(ROM14出力)にコピーすることを
禁止される。
S0のQ3からのPCのインクリメントされた内容はS1のQ3中
にSTへプッシュされ、次いでS2のQ3において後続の命令
アドレスとしてポップされる。Q4/S1ないしQ1/S2中にAc
cからのアドレスを用いてROM14(またはメモリ11)から
取出されたデータはS2のQ2中にP−BUS上へロードさ
れ、該バスにおいて該データはS2のQ4まで留まってお
り、この時にBIMは該データをPバスから受取り、次い
でこれを次のステートであるS3のQ2上でDバスへ転送す
る。RAM15に対する宛先アドレスがS1のQ3によってPバ
スからデコーダ15bにロードされ、2ステートにわたっ
て留まっている。従って、S3のQ2において生ずるRAM書
込みは、元のTBLR操作符号において確定されるRAMアド
レスを用いる。
マイクロコンピュータ装置を製作する際にある固有の諸
問題の一つは、諸部品を検査して全部の素子が機能的で
あるか否かを決定するという問題である。多くのマイク
ロコンピュータにおいては、内部ROMから読出される命
令語は外部バスに対して受入れ可能でなく、従って、RO
Mを、全ての可能な機能を実行するということ以外の方
法では検査することができず、これは長たらしくなる可
能性がある。第2図の装置によれば、第3B図の(ee)な
いし(hh)図に示すようにバス交換モジュールを用いて
ROM14を一度に1語ずつ読出すことができる。I/O ST−
ピンをVdd以上、例えば10Vに保持し、且つRSを低レベル
に保持することによってテストモード(表Aの命令セッ
トにはない)を入れ、デコーダID1及びID2に対して入力
を発生させてROM出力機能を生じさせ、諸機能において
は、(ee)に示すようにROM14は各サイクルごとにアク
セスされ、PCはインクリメントされる。P−BUSはROM出
力を受取る(ff)。しかし、操作符号はゴコーダID1、I
D2にロードされない。これに代って、(hh)に示すよう
に、BIMが、各サイクルのQ4上でPバスから操作符号を
受取り、そして次のQ2上でDバスへ転送する。
バス交換モジュール 第4A図に詳細に示すバス交換モジュールBIMは16個の同
構成のステージから成っており、図にはそのうちの1だ
けを示してある。データがBIM内に保持されるのはステ
ートタイムの約1/2よりも長いことはないので、各ステ
ージはフィードバックループなしの2つの被クロック・
インダータIa有す。入力ノードIbは、Q4上で妥当な制御
ビット#BIFPによって駆動される16個のトランジスタIc
のうちの一つを介してP−BUSのそれぞれのビットに接
続される。D−BUSは、Q2上で妥当なデコーダID1からの
制御ビット#BIFD(Dからのバス交換)によって駆動さ
れるトランジスタ1dを介して入力ノード1bに接続され
る。
出力ノードIeは、トランジスタIf及びIg、並びに、Q2及
びQ3最中に妥当な制御ビット#BITPによって駆動される
トランジスタIhを含むプッシュプル・ステージによって
P−BUSに接続される。同様に、出力ノードIeは、ドラ
イバ・トランジスタIi及びIj、並びに、Q2及びQ4上で妥
当な制御ビット#BITDによって駆動されるトランジスタ
Ikを有するプッシュプル・ステージを介してD−BUSに
接続される。トランジスタIg及びIjは第1のインバータ
Iaの出力においてノードImによって駆動され、プッシュ
プル出力を提供する。データはQ2上でDバスからノード
Ib、Im、Ieへ転送され、次いでQ4でこれらノードからP
バスへ転送される。同様に、データはQ4上でPバスから
ノードIb、Im、Ieへ転送され、次いでQ4または次のQ2上
でこれらノードからDバスへ転送される。
乗算装置 第4B図に乗算器M及びそのレジスタT及びレジスタPを
略示し、対応する詳細な回路図を第4C図及び第4D図に示
す。レジスタTの16ビット出力は、8個一組のブース
(Booth)のデコーダMbに与えられ、該デコーダは8組
の出力Mcを発生し、各組は5つの機能を含んでおり、そ
のうちの2つ、即ち(1)シフトまたはシフトなし、及
び(2)加算、減算またはゼロ、は一度に能動となる。
8個一組のバンクの17ビットスタチックキャリ・フィー
ド・フォワード加算器Ma−1ないしMa−8は、Tレジス
タがロードされるとMc入力を受取り、従って、乗算機能
の有効部分は、MPY命令が実行される前に開始させられ
る。加算器Ma−1ないしMa−8はスタチックであり、即
ち、これらを作動させるにはクロックQ1ないしQ4を必要
としない。各レベルまたはバンクはデコーダ出力Meに対
応する制御セクションを含んでおり、上記制御セクショ
ンは加算器にフィードする。レベルMa−2は半加算器を
用い、レベルMa−3ないしMa−8は全加算器を用いる。
第1のレベルMa−1は、先行のステージからの部分積が
ないので、加算器を必要としせず、従って該レベルは制
御セクションだけを有す。MPY命令がQ4上でデコードさ
れると、第2のオペランドが16ビット入力MiによってD
バスから上記スタチック加算器へ加えられる。
8つのレベルの加算器Ma−1ないしMa−8の各レベルは
和を計算し、部分積がラインMfを介して次の高いレベル
へ送られる。ただし、各レベルの2つのLSBはラインMe
を介して動的加算器Mdへ送られる。スタチック加算器ア
レイが確立すると、レベルMa−8からの17ビット出力Mg
に加えて7つの低レベル2ビットLSB出力Meがキャリ・
リップル加算器Md(31ステージ)へ与えられて最終的キ
ャリ評価が行なわれ、31ビット積を2つの補数表記法で
発生させる。この31ビットは、積レジスタP内で32ビッ
ト積を得るために符号拡張される。
ブースの2ビット・アルゴリズムにより、加算器ステー
ジの個数は、さもなければ必要である個数の約半分に減
少する。昔からある筆算法で乗算を行なう場合には、1
つのオペランドの右のまたはLSの数字に他のオペランド
を乗じて部分積を作り、次いで、次の数字に乗じて他の
部分積を作り、該他の部分積を上記第1の部分積に対し
て1桁シフトさせる。ブースのアルゴリズムは2値方式
の乗算法を与えたものであり、この乗算法においては、
各たびごとに、1ビットの代りに2ビットを処理するこ
とができる。従って、レベルMa−1はDバスの全ビット
のTレジスタ倍の2つのLSBを乗算し、部分積Ma及びMf
を作る。第2のレベルMa−2はTレジスタの次の2ビッ
トをDバスに対して乗算し、Ma−1からの部分積Mfを加
算し、そして、この演算は各レベルごとに2ビットをシ
フトするので、新たな部分積Mfを発生する。
第4C図に、8つのダコーダMbのうちの一つをレジスタT
の2ビットとともに示す。レジスタT段は、Q4において
クロックされる再循環トランジスタRc具備の2つのイン
バータIaから成る。上記T段は、LT命令中にQ2上で生ず
るID1からの#LTコマンドによってトランジスタTaを介
してロードされる。レジスタTの2つの出力及び補数は
ラインTo及びTcによって1つのブースのデコーダMbに加
えられる。上記デコーダは4つの論理回路から成ってお
り、各回路は、スタチックロードBa、Bb、BcまたはBd、
及び、ゲートに接続されたラインTo及びTc付きのトラン
ジスタBeのパターンを有す。諸期間のうちの2つは、ラ
インBfによってゲート内に固定された1または0を有
す。出力Mc−1及びMc−2は、シフトなしコマンド及び
シフト・コマンドを表わし、そして論理ステージBe及び
Bdから来る。出力Mc−4及びMc−5は、上記論理回路の
第1のもののロードBaからの真且つ補数出力であり、そ
してこれらは加算コマンド及び減算コマンドを表わす。
Beからの出力はゼロ・コマンドである。
スタチック加算器の第1のレベルMa−1は、D−BUS入
力Mi及び入力Mcだけしか含まれておらず、部分積を有し
ないという点において、高レベルのものよりも簡単であ
る。この第1のステージの2つのステージを、レベルMa
−2及びレベルMa−3の17のステージのうちの2つとと
もに第4C図に示す。制御セクションMmは全てのレベル上
で全く同じである。どの素子もクロックされない。
デコーダMb及び制御出力Mcを有する制御セクションMmは
ブースの一度に2ビット形アルゴリズムを決定し、これ
は回路を減らし且つ速度を2倍増大する。2つのビット
が順々に問い合せされるときに、必要となる演算は加
算、減算、演算なし、または唯1ビットのシフトのみで
ある。Tからの入力を一つのオペランドとして考え、及
びDバスからの入力を他のオペランドとして考える場合
に、機能は次表の通りである。
ブースの2ビット・アルゴリズムを用いる乗算の一例を
示せば次の通りである。
制御セクションMmにおいて、Dバスからの入力Miはトラ
ンジスタMm−1及び制御出力Mc−1によって制御され、
シフトはない。隣りのビットに対するMi入力はトランジ
スタMm−2及びMc−2シフト・コマンドによってゲート
インされ、上述のように「2D」の関数を提供する。ゼロ
はトランジスタMm−3及びゼロ制御出力Mc−3によって
提供され、その結果、モードMm−4がVccに接続される
(2の補数におけるゼロ)。先行のステージからのキャ
リ・インはラインMm−5上にあり、そして上記先行のス
テージからの部分積はラインMm−6上にある。加算また
は減算制御は,Mc−4及びMc−5の各加算及び減算コマ
ンドによって制御されるトランジスタMm−7によって提
供される。全加算器は、制御セクションの出力を受取る
論理ゲートMn−1、並びにゲートMn−2及び排他的NORM
n−3を含んでおり、ラインMn−4上の和及びラインMn
−5上のキャリを作る。
速度は、同じレブル上でキャリ・リップルの代りにキャ
リ・フィード・フォワードを用いることによって増大す
る。レベルMa−1は先行のステージからの部分積または
和Mm−6を有しておらず、またキャリ・インMn−5も有
しておらず、従って、加算器は必要でなく、モードMn−
8において和(差)を作ってキャリを作らない制御器だ
けがあればよい。第2のレベルMa−2は、Ma−1からキ
ャリ・フィード・フォワードを受取ることがないので、
半加算器である。
ダイナミック加算器すなわち31ステージ・リップル・ス
ルー・キャリ加算器の諸加算器ステージのうちの一つを
レジスタPの1つのステージとともに第4D図に示す。上
記加算器ステージは、トランジスタMd1によってQ1また
はQ3上でゲートされる2つの入力Meを受取る。加算器Md
の6つのLSBは、その入力がQ1上でゲートされる。即
ち、スタチックアレイ・レベルMa−1、Ma−2及びMa−
3が確立されており、そして出力Meがこの時点で妥当で
あるからである。従って、出力Mfはまだ妥当となってい
ないが、Mdにおける加算及びリップル・スルーは開始で
きる。従って、より多くの有効ビットがトランジスタMd
1においてQ3上でゲートされる。
次の低レベル有効ステージからのキャリ入力Md2が、排
他的NOR回路Md3の1つの入力に、及び、次の高レベルの
ステージに対してキャリ出力Md5を発生するキャリ出力
ゲートMd4に加えられる。論理ゲートMd6によって入力Me
及びキャリ・インから伝播期間が発生し、Md4付きの論
理ゲードMd7によってキャリ発生期間が発生する。同じ
出力Md8がラインMd9によってPレジスタ・ステージの入
力に接続され、トランジスタPaによるQ4上のID1からの
#LPR(Pレジスタにロード)によってゲートされる。
PレジスタT・ステージは、1対のインバータIa及びQ2
上でゲートされる再循環トランジスタRcから成る。出力
は、インバータPcとともに、1つの入力としてのID1か
らの#NRPR(Pレジスタの読出しなし)を有するゲート
PbによってQ1上でALU−b入力に加えられる。トランジ
スタPbはQ4上でALU−b入力をプリチャージする。
乗算器演算のタイミングを第3C図の(jj)〜(mm)に示
す。S0のQ2上で、レジスタTがロードされ、ブースのデ
コーダからの出力Mcは妥当となる。MPY命令がS1のQ3に
おいてデコーダ内で妥当であるとすると、Dバスからの
Mi入力はS1のQ4において妥当である。ダイナミック加算
器Mdの低レベルのビットはS2のQ1上でMd1を介してMeを
ロードされ、そしてキャリが31ビットの低レベルのもの
を通じてリップルを開始し、次いでこれは高レベルの出
力Mfを通じてS2のQ3において継続し、従ってレジスタP
はPaを介してS2のQ4上でロードされ、データは、後続の
サイクルのQ1上でALU−1にロードされるまで、該レジ
スタに留まっている。
以上、本発明をその実施例について説明したが、本発明
のこの実施例に限定されるものではない。以上の説明か
ら、当業者には上述の実施例についての種々の変形及び
本発明についての他の態様が可能である。かかる変形ま
たは態様は全て、特許請求の範囲に記載の如き本発明の
真の範囲内にある。
【図面の簡単な説明】
第1図は本発明にかかる『マイクロコンピュータ・シス
テムのブロック図、第2図は第1図のシステムに使用す
るMOS/LSIマイクロコンピュータ装置(CPUまたは中央処
理装置を含む)のブロック図、第3A図ないし第3C図は第
2図のマイクロコンピュータの演算における電圧または
事象対時間の関係を示すタイミングチャート、第4A図な
いし第4D図は第2図のマイクロコンピュータ装置におけ
る特定の回路の略線図である。 10……マイクロコンピュータ、11……メモリ、12……I/
O装置、13……制御バス、14……リード・オンリ・メモ
リ(ROM)、15……ランダム・アクセス・メモリ、17…
…クロック発生器。
フロントページの続き (72)発明者 サレンダー エム マガー アメリカ合衆国 テキサス州 77072 ヒ ューストン サマーフォード ドライブ 11119 (56)参考文献 特開 昭56−85157(JP,A) 特開 昭54−59851(JP,A) 特開 昭54−18646(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】半導体基板上に形成されたディジタル信号
    処理用マイクロコンピュータ装置であって、 データバスと、 1マシンサイクルを形成する複数サイクル・クロックを
    発生するクロック発生器と、 前記データバスに接続されたシフタと、 前記シフタに接続された演算論理ユニットと、 前記演算論理ユニットに接続されたアキュムレータと、 命令を実行してその命令に従って前記シフタ及び前記ア
    キュムレータにおけるビットシフトを行う制御回路手段
    であって、前記複数サイクル・クロックの内一つのサイ
    クル・クロックで前記データバスにデータをロードし、
    次のサイクル・クロックでそのデータのビットを前記シ
    フタにおいてシフトし、そのビットシフトデータをその
    シフトと同じサイクル・クロックで前記演算論理ユニッ
    トに入力する制御信号を発生する前記制御回路手段と を含むマイクロコンピュータ装置。
JP1306363A 1982-02-11 1989-11-24 マイクロコンピュータ装置 Expired - Lifetime JPH079647B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US34786082A 1982-02-11 1982-02-11
US06/347,859 US4538239A (en) 1982-02-11 1982-02-11 High-speed multiplier for microcomputer used in digital signal processing system
US347860 1982-02-11
US347859 1982-02-11
US06/350,852 US4577282A (en) 1982-02-22 1982-02-22 Microcomputer system for digital signal processing
US350852 1982-02-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP23503682A Division JPH079646B2 (ja) 1982-02-11 1982-12-28 マイクロコンピュ−タ装置

Publications (2)

Publication Number Publication Date
JPH02186485A JPH02186485A (ja) 1990-07-20
JPH079647B2 true JPH079647B2 (ja) 1995-02-01

Family

ID=27407800

Family Applications (4)

Application Number Title Priority Date Filing Date
JP23503682A Expired - Lifetime JPH079646B2 (ja) 1982-02-11 1982-12-28 マイクロコンピュ−タ装置
JP1306364A Expired - Lifetime JPH079648B2 (ja) 1982-02-11 1989-11-24 マイクロコンピュータ装置
JP1306365A Expired - Lifetime JPH079649B2 (ja) 1982-02-11 1989-11-24 マイクロコンピュータ装置
JP1306363A Expired - Lifetime JPH079647B2 (ja) 1982-02-11 1989-11-24 マイクロコンピュータ装置

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP23503682A Expired - Lifetime JPH079646B2 (ja) 1982-02-11 1982-12-28 マイクロコンピュ−タ装置
JP1306364A Expired - Lifetime JPH079648B2 (ja) 1982-02-11 1989-11-24 マイクロコンピュータ装置
JP1306365A Expired - Lifetime JPH079649B2 (ja) 1982-02-11 1989-11-24 マイクロコンピュータ装置

Country Status (3)

Country Link
EP (3) EP0377466B1 (ja)
JP (4) JPH079646B2 (ja)
DE (3) DE3280476T2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3650703T2 (de) 1985-02-12 1999-04-01 Texas Instruments Inc Mikroprozessor mit einer Blockübertragungsinstruktion
GB2174517B (en) * 1985-03-23 1990-01-10 Burr Brown Ltd Apparatus and method for utilizing an auxiliary data memory unit in a data processing system having separate program and data memory units
JPS6320676A (ja) * 1986-07-15 1988-01-28 Brother Ind Ltd ワードプロセツサ
JP3043341B2 (ja) * 1988-05-25 2000-05-22 日本電気株式会社 マイクロコンピュータシステム
KR0136594B1 (ko) * 1988-09-30 1998-10-01 미다 가쓰시게 단일칩 마이크로 컴퓨터
JPH05197526A (ja) * 1991-08-28 1993-08-06 Toshiba Corp 乗算回路
JP3231429B2 (ja) * 1992-11-06 2001-11-19 株式会社日立製作所 中央処理装置と乗算器とを有する半導体集積回路装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US253624A (en) 1882-02-14 Weed and lawn mower
US3757306A (en) * 1971-08-31 1973-09-04 Texas Instruments Inc Computing systems cpu
US3757308A (en) 1971-09-03 1973-09-04 Texas Instruments Inc Data processor
US3984816A (en) 1973-05-16 1976-10-05 Texas Instruments, Inc. Expandable function electronic calculator
US3900722A (en) 1973-09-13 1975-08-19 Texas Instruments Inc Multi-chip calculator system having cycle and subcycle timing generators
US3921142A (en) 1973-09-24 1975-11-18 Texas Instruments Inc Electronic calculator chip having test input and output
US3934233A (en) 1973-09-24 1976-01-20 Texas Instruments Incorporated Read-only-memory for electronic calculator
US3932846A (en) 1973-09-24 1976-01-13 Texas Instruments Incorporated Electronic calculator having internal means for turning off display
US3991305A (en) 1974-11-19 1976-11-09 Caudel Edward R Electronic calculator or digital processor chip with multiple code combinations of display and keyboard scan outputs
US3939335A (en) 1974-11-26 1976-02-17 Texas Instruments Incorporated Universal condition latch in an electronic digital calculator
US4074351A (en) 1974-12-02 1978-02-14 Texas Instruments Incorporated Variable function programmed calculator
JPS5197349A (en) * 1975-02-24 1976-08-26 Deeta shifutohoshiki
GB1540923A (en) * 1975-12-01 1979-02-21 Intel Corp Programmable single chip mos computer
US4179734A (en) * 1976-07-02 1979-12-18 Floating Point Systems, Inc. Floating point data processor having fast access memory means
US4156927A (en) 1976-08-11 1979-05-29 Texas Instruments Incorporated Digital processor system with direct access memory
US4125901A (en) 1976-10-27 1978-11-14 Texas Instruments Incorporated Electronic calculator or microprocessor having a multi-input arithmetic unit
US4158432A (en) 1976-12-10 1979-06-19 Texas Instruments Incorporated Control of self-test feature for appliances or electronic equipment operated by microprocessor
US4144561A (en) * 1977-07-08 1979-03-13 Xerox Corporation Chip topography for MOS integrated circuitry microprocessor chip
FR2397679B1 (fr) * 1977-07-15 1988-02-26 Mostek Corp Calculateur microprogramme fabrique sur une pastille semi-conductrice unique
JPS5685157A (en) * 1979-12-15 1981-07-11 Toshiba Corp Information processor
JPS5694589A (en) * 1979-12-27 1981-07-31 Nec Corp Memory device
US4495593A (en) * 1982-07-01 1985-01-22 Hewlett-Packard Company Multiple bit encoding technique for combinational multipliers

Also Published As

Publication number Publication date
JPH02186487A (ja) 1990-07-20
DE3280481D1 (de) 2000-04-13
EP0086307A2 (en) 1983-08-24
JPH079646B2 (ja) 1995-02-01
EP0392133B1 (en) 1997-10-08
JPH02186485A (ja) 1990-07-20
EP0377466A1 (en) 1990-07-11
JPS58163060A (ja) 1983-09-27
EP0392133A1 (en) 1990-10-17
DE3280477T2 (de) 1998-02-12
EP0086307A3 (en) 1986-11-05
JPH079648B2 (ja) 1995-02-01
DE3280476T2 (de) 1997-06-12
JPH079649B2 (ja) 1995-02-01
EP0086307B1 (en) 1997-02-26
EP0377466B1 (en) 2000-03-08
DE3280477D1 (de) 1997-11-13
JPH02186486A (ja) 1990-07-20
DE3280476D1 (de) 1997-04-03

Similar Documents

Publication Publication Date Title
US5615383A (en) Microcomputer system for digital signal processing
US4538239A (en) High-speed multiplier for microcomputer used in digital signal processing system
US4514805A (en) Interrupt operation in systems emulator mode for microcomputer
US4491910A (en) Microcomputer having data shift within memory
US4677586A (en) Microcomputer device having test mode substituting external RAM for internal RAM
US4713749A (en) Microprocessor with repeat instruction
US4713748A (en) Microprocessor with block move instruction
US4399507A (en) Instruction address stack in the data memory of an instruction-pipelined processor
US4498135A (en) Microcomputer with accumulator addressing
EP1124181B1 (en) Data processing apparatus
US4507727A (en) Microcomputer with ROM test mode of operation
US4503500A (en) Microcomputer with bus interchange module
US4608634A (en) Microcomputer with offset in store-accumulator operations
US4533992A (en) Microcomputer having shifter in ALU input
JPS638490B2 (ja)
US4586131A (en) Microcomputer having data move circuits for within-memory shift of data words
US4528625A (en) Input/output instruction execution in microcomputer
US4494187A (en) Microcomputer with high speed program memory
JPH079647B2 (ja) マイクロコンピュータ装置
EP0226991B1 (en) Data-processing device
US4506322A (en) Read/write memory cell for microcomputer
US4519031A (en) Microcomputer with accumulator saturation upon overflow
US5826111A (en) Modem employing digital signal processor
US4514801A (en) Microcomputer with table-read and table-write instructions
US4558232A (en) Level detector circuit for microcomputer devices