JPH05502125A - 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 - Google Patents

後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法

Info

Publication number
JPH05502125A
JPH05502125A JP2511130A JP51113090A JPH05502125A JP H05502125 A JPH05502125 A JP H05502125A JP 2511130 A JP2511130 A JP 2511130A JP 51113090 A JP51113090 A JP 51113090A JP H05502125 A JPH05502125 A JP H05502125A
Authority
JP
Japan
Prior art keywords
register
microprocessor
stack
instructions
memory
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
JP2511130A
Other languages
English (en)
Other versions
JP2966085B2 (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.)
Individual
Original Assignee
Individual
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23537828&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH05502125(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Individual filed Critical Individual
Publication of JPH05502125A publication Critical patent/JPH05502125A/ja
Application granted granted Critical
Publication of JP2966085B2 publication Critical patent/JP2966085B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/527Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
    • G06F7/5272Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel with row wise addition of partial products
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30069Instruction skipping instructions, e.g. SKIP
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06COMPUTING OR CALCULATING; 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/583Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 背景技術 1 技術分野 この発明は広義には簡単な低減命令セットコンピュータ(RISC)マイクロプ ロセッサに関する。より詳細には、かかるマイクロプロセッサで、たとえば20 ドルの価格でたとえば毎秒2.000万の命令(I[IPS )の性能レベルが 可能なものに関する。
24従来の技術 マイクロプロセッサの発明以来、その段計の改善には二つの異なる方法が用いら れてきた、第1の方法ではマイクロプロセッサ集積回路中のトランジスタをより 多くしまたより高速にし、さらにより複雑な命令セットを備ることができる。こ の方法は数百のビンアウトを有するより大きなグイおよびパッケージに向かう傾 向にある。
最近では、マイクロプロセッサ集積回路自体とその命令セットの両方においてよ り簡単に性能の改善を得ることができると考えられている。この第2の方法はR ISCマイクロプロセッサを提供するものであり、Sun 5PARCやI+t el のマイクロプロセッサにその例を見ることができる。しかし、この方法に おいても従来の実施態様では多数のビンアウトを収容するためにマイクロプロセ ッサのパッケージは大型となっている。したがって、高性能マイクロプロセッサ の簡略化が依然として要請されている。
従来の高性能マイクロプロセッサでは、そのマイクロプロセッサに対応するのに 十分な速度のメモリアクセスを行うためにマイクロプロセッサへの直接接続を行 うための高速スタティックメモリが必要とされる。低速のダイナミックランダム アクセスメモリ(DRAll )がこのようなマイクロプロセッサに用いられる のは、階層的メモリ構成においてのみであり、スタティックメモリがマイクロプ ロセッサとDRAIIの間のバッファとしてはたらく。
従来のマイクロプロセッサは、マイクロプロセッサ集積回路上に設けるかあるい は別途設けられるDIIA コノトローラを介してシステム周辺装置のための直 接メモリアクセス(ひIIA )を提供する。このようなりll^ コントロー ラはDIl^要求およびDIIA 応答のルーチン処理を提供することができる が、ある種の処理はマイクロプロセッサの主中央処理装置(CPU )によって 行わなければならない。
発明の開示 したがって、この発明の目的は従来のマイクロプロセッサに対してビン数が少な く価格の低いマイクロプロセッサを提供することである。
この発明の他の目的はマイクプロセッサの速度を犠牲にすることな(DRAII Iこ直接接続することのできる高性能マイクロプロセッサを提供することである 。
さらに、この発明の目的はDIIIA がDIIA 要求中とDII^応答中に メインCP[+の使用を必要とせず、また予測可能な応答時間で非常に高速なり MA応答を提供する高性能マイクロプロセッサを提供することである。
これらの目的およびそれに関連する目的はここに開示する新しい高性能の低コス トマイクロプロセッサを用いるによって達成することができる。この発明の一側 面は、この発明によるマイクロプロセッサシステムは中央処理装置、ダイナミッ クランダムアクセスメモ1鳳および中央処理装置をダイナミックランダムアクセ スメモリに接続するバスを有することである。中央処理装置とダイナミックラン ダムアクセスメモリの間のバス上には多重化手段がある。この多重化手段はバス 上の列アドレス、カラムアドレスおよびデータを提供するように接続され、構成 される。
この発明の別の側面は、このマイクロプロセッサシステムはバス上の中央処理装 置のための命令を取り出すための、バスに接続された手段を有することである。
この命令を取り出す手段は単一のメモリサイクル中の複数の順次命令を取り出す ように構成されている。この発明のこの側面のある変更態様においては、中央処 理装置のための命令を記憶したプログラム可能なリードオンリーメモリがバスに 接続されている。この命令取り出し手段はプログラム可能なリードオンリーメモ リからの複数命令を7センブルし、この複数の命令をダイナミックランダムアク セスメモリに記憶する手段を含む。
この発明の別の一面においては、マイクロプロセッサシステムが中央処理装置、 直接メモlげクセス処理装置およびバスによって接続されたメモリを有する。直 接メモリアクセス処理装置は中央処理装置のための命令を取り出し、またバス上 の直接メモリアクセス処理装置のための命令を取り出す手段を含む。
この発明のさらに別の側面においては、メモリを含むマイクロプロセッサシステ ムは集積回路に収容される。
このメモリはダイナミックランダムアクセスメモリであり、複数命令を取り出す 手段は複数命令を受け取るためのカラムラッチを含む。
この発明のさらに別の側面においては、マイクロプロセッサシステムはさらに命 令取り出し手段に接続された複数命令のための命令レジスタを含む。命令レジス タにはこの命令レジスタから複数命令を連続して供給するための手段が接続され ている。複数命令を供給する手段を制御して複数命令を連続して供給するための カウンタが接続されている。複数命令を復号するための手段が複数命令を供給す る手段から複数命令を連続して受け取るように接続されている。カウンタは前記 の復号手段に接続され、復号手段からの増分信号とリセット制御信号を受け取る 。復号手段はリセット制御信号をカウンタに供給し、複数命令中の5KIP命令 に応答して命令取り出し手段に制御手段を供給するように構成されている。この 発明のこの側面の一変更態様においては1.マイクロプロセッサシステムはさら に復号手段からの減分制御信号を受けるように接続されたループカウンタを有す る。復号手段はリセット制御信号をカウンタに、また複数命令中の111cRO LOOP命令に応答して減分制御信号をループカウンタに供給するように構成さ れる。この発明のこの側面のさらに別の変更態様においては、復号手段は可変幅 のオペランドを用いた命令に応答してカウンタを制御するように構成される。カ ウンタにはカウンタに応答してこの可変幅のオペランドを選択する手段が接続さ れている。
この発明のさらにまた別の側面においては、マイクロプロセッサシステムは算術 論理演算装置を含む。第1の後入れ先出しスタックがこの算術論理演算装置に接 続されている。この第1の後入れ先出しスタックはこの算術論理演算装置の第1 の入力に接続されたトップ項目を記憶する手段と、この算術論理演算装置の第2 の入力に接続された次の項目を記憶する手段を含む。この算術論理演算装置はト ップ項目を記憶する手段に接続された出力を有する。トップ項目を記憶する手段 はレジスタファイルに入力を提供するように接続される。レジスタファイルは第 2の後入れ先出しスタックであることが望ましく、トップ項目を記憶する手段と レジスタファイルは双方向接続されている。
この発明のまた別の側面においては、データ処理システムが検知回路とドライバ 回路を含むマイクロプロセッサ、メモリ、およびメモリと検知回路とドライバ回 路の間に接続された出力イネーブルラインを有する。この検知回路は出力イネー ブルラインが電圧等の所定の電気的レベルに達したとき作動可能信号を提供する ように構成される。マイクロプロセッサはドライバ回路がこの作動可能信号に応 答して出力イネーブルライン上にイネーブル信号を提供するように構成される。
この発明のさらに別の側面においては、マイクロプロセッサシステムは中央処理 装置に接続されたリングカウンタ可変速度システムクロックを有する。中央処理 装置とリングカウンタ可変速度システムクロックは単一の集積回路中に設けられ る。入出力インターフェースが結合制御信号、アドレスおよびデータの交換のた めに接続されている。リングカウンタ可変速度システムクロックから独立した第 2のクロックが入出力インターフェースに接続されている。
また、この発明のさらに別の側面においては、後入れ先出しスタックが算術論理 演算装置に接続されている。
後入れ先出しスタックはこの算術論理演算装置の第1の入力に接続されたトップ 項目を記憶する手段と、この算術論理演算装置の第2の入力に接続された次の項 目を記憶する手段を含む。この算術論理演算装置はトップ項目を記憶する手段に 接続された出力を有する。この後入れ先出しスタックはラッチとして構成された 第1の複数のスタック要素とランダムアクセスメモリとして構成された第2の複 数のスタック要素を有する。第1および第2の複数のスタック要素と中央処理装 置は単一の集積回路内に設けられている。第3の複数のスタック要素はこの単一 の集積回路の外部のランダムアクセスメモリとして構成される。この発明のこの 側面においては、第1のポインタがII!1の複数のスタック要素に、第2のポ インタが第2の複数のスタック要素に、第3のポインタが第3の複数のスタック 要素に接続されることが望ましい。中央処理装置はif!1の複数のスタック要 素から項目を取り出すように接続される。第1のスタックポインタは第2のスタ ックポインタに接続され、中央処理装置による連続の取り出し動作で第1の複数 のスタック要素が空になったとき、aJ!42の複数のスタック要素から第1の 複数の項目を取り出す。第2のスタックポインタは第3のスタックポインタに接 続され、中央処理装置による連続の取り出し動作で第2の複数のスタック要素が 空になったとき、第3の複数のスタック要素から第2の複数の項目を取り出す。
この発明のさらに別の側面においては、第1のレジスタが算術論理演算装置に第 1の入力を供給するように接続される。第1のシフタが算術論理演算装置の出力 と第1のレジスタの間に接続される。第2のレジスタが開始多項式値を受け取る ように接続される。第2のレジスタの出力は第2のシフタに接続される。第2の レジスタの最下位ビットは算術論理演算装置に接続される。第3のレジスタが多 項式のフィードバック項を算術論理演算装置に供給するように接続される。発生 すべき多項式の桁に対応する数字をカウントダウンするダウンカウンタが算術論 理演算装置に接続されている。算術論理演算装置は、ダウンカウンタが計数を終 えるまで、多項式命令に応答して、第2のレジスタの最下位ビットが°1”であ る場合、第1のレジスタの内容の排他的論理和を第3のレジスタの内容で桁上げ し、第2のレジスタの最下位ビットが“0°である場合、第1のレジスタの内容 を変えずに通過させる。発生すべき多項式の結果は前記の第1のレジスタで得ら れる。
さらにこの発明の別の側面においては、結果レジスタが算術論理演算装置に第1 の入力を供給するように接続されている。第1の左シフトシフタが算術論理演算 装置の出力と結果レジスタの間に接続されている。乗数レジスタがビット反転形 式の乗数を受け取るように接続されている。乗数レジスタの出力は第2の右シフ トシフタに接続されている。乗数レジスタの最下位ビットは算術論理演算装置に 接続されている。第3のレジスタが前記の算術論理演算装置に被乗数を供給する ように接続されている。乗数の桁数より1少ない数に対応する数をカウントダウ ンするダウンカウンタが算術論理演算装置に接続されている。算術論理演算装置 は、ダウンカウンタが計数を終えるまで、乗算命令に応答して、乗数レジスタの 最下位ビットが“1”である場合、結果レジスタの内容に第3のレジスタの内容 を加え、第1のレジスタの内容を変えずに通過させる。積は結果レジスタで得ら れる。
この発明の上述の目的と関連の目的、利点および特徴は当該技術に精通するもの には、以下のこの発明のより詳細な説明を図面を参照して検討することにより、 いっそう容易に理解されるであろう。
図面の簡単な説明 図1はこの発明によるマイクロプロセッサを内蔵する集積回路パッケージの外事 面図である。
図2はこの発明によるマイクロプロセッサのブロック図である。
図3は図1および図2のマイクロプロセッサを内蔵するデータ処理装置の一部の ブロック図である。
図4は図2に示すマイクロプロセッサの部分のより詳細なブロック図である。
図5は図2に示すマイクロプロセッサの他の部分のより詳細なブロック図である 。
図6は図3に部分的に示し、また図1−2 および図4−5のマイクロプロセッ サを内蔵するデータ処理システムの他の部分のブロック図である。
図7および図8は図3および図6に部分的に示すデータ処理システムのレイアウ ト図である。
図9は単一の集積回路上のデータ処理システムにおけるこの発明によるマイクロ プロセッサの第2の実施例のレイアウト図である。
!EIIOは図7および図8のデータ処理システムの一部のより詳細なブロック 図である。
図11はffl+2に示すシステム部分の動作を理解するのに有用なタイミング 図である。
図I2は図7および図8のデータ処理システムの別の部分のより詳細なブロック 図である。
図13は図2に示すマイクロプロセッサの一部のより詳細なブロック図である。
図14は図3および図7−8 に示すシステムの一部のより詳細なブロックおよ び概略図である。
図15は図14に示すシステム部分の動作を理解するのに有用なグラフである。
図16は図4に示すシステム部分の一部を示すより詳細なブロック図である。
図17は図2に示すマイクロプロセッサの一部のより詳細なブロック図である。
図18は図17に示すマイクロプロセッサ部分の一部のより詳細なブロック図で ある。
図19は図18に示すマイクロプロセッサ部分の一部の動作を理解するのに有用 な波形図である。
図20は図4に示すシステム部分の別の部分を示すより詳細なブロック図である 。
図21は図4に示すシステム部分の別の部分を示すより詳細なブロック図である 。
図22および図23は図4に示すシステム部分の別の部分を示すより詳細なブロ ック図である。
発明の詳細な説明 概観 この発明のマイクロプロセッサは、 高実行速度と 低システムコスト に対して最適化された32ビツトマイクロプロセツサとして実施するのが望まし い。この実施例ではマイクロプロセッサは20ドルで20111PSのものと考 えることができる。
このプロセッサの重要な特徴は次の通りである。
20111PSの実行に低コスト汎用ダイナミックllAl+ を使用、 1メモリサイクル当たり4命令取り出し、オンチップ高速ページモードメモリ管 理、外部キャッシュなしで高速実行、 インターフェースチップがほとんど不要、44ピンSOS パッケージ内に32 ビツトCP[I命令セットはほとんどの動作を8ビツト命令で指定できるように 構成されている。この考え方の利点は次の通りである。
プログラムがより小さくなる、 プログラムをより高速に実行することができる。
はとんどのコンピュータシステムでメモリバスが問題点になっている。バスは命 令の取り出しとデータの取り出しと記憶に用いられる。単一のメモリバスサイク ル中に四つの命令を取り出す能力はデータ処理に対するバスの利用可能性を大き く向上させる。
図について、特に図1について説明すると、約0.8 インチの実際の大きさの 約100 倍の大きさで示した44ビンプラスティンク無導線チツプキヤリア中 のパッケージ化された32ビツトマイクロプロセツサを示す。マイクロプロセッ サ50が44ビンパツケージとして設けられるという点は、通常的200 の入 出力(Ilo )ビンを有する代表的なマイクロプロセッサと大きく異なってい る。マイクロプロセッサ50は2.000 万命令/秒(IIIPS )の速度 とされている。DO−031のラベルが付いたアドレスおよびデータライン52 が、次に説明するマイクロプロセッサ50の動作方法の結果速度を犠牲にするこ となくアドレス用とデータ用に共用されている。
ダイナミックRA1[ 低コスト44ピンパツケージに加えて、この高性能マイクロプロセッサ50のも う一つの特殊な銅面は、列アドレスストローブ(RAS )およびカラムアドレ スストローブ(CAS ) Ilo ビン54によって示すように、ダイナミッ クランダムアクセスメモリ(DRAM )と直接動作する点である。マイクロプ ロセッサ50の他のIlo ビンには、■。。ビン56、Vssピン58、出力 イネーブルピン60.書き込みビン62、クロックビン64およびリセットビン 66がある。
あらゆる高速コンピュータは動作するには高速で高価なメモリを必要とする。最 も高速なスタティックRAI[メモリは低速のダイナミックRA夏の10倍もの コストがかがる。このマイクロプロセッサは低コストのダイナミックRAM を 高速ページモードで用いるように最適化されている。ベージモードダイナミック RA厘はコストをかけずにスタティック1iA11 の性能を提供する。例えば 、低コストの85nsecのダイナミックRAII は高速ページモードで動作 するとき25nsecでアクセスする。マイクロプロセッサチップ上の集積高速 ページモード制御はシステムのインターフェースを簡略化し、高速なシステムを 実現する。
マイクロプロセッサ50の詳細を図2に示す。マイクロプロセッサ50は、マイ クロプロセッサ50を構成する単一の集積回路中にメイン中央処理装置(CPU  ) 70と別の直接メモリアクセス(DIIA ) CPU72を含む。メイ ンCPU70はそれぞれが入力をライン82および84によって夏術論理演算装 置(AL■) 80に提供するように接続されたトップ項目レジスタ76と次項 口レジスタ78を育する第1の16深後入れ先出しスタック74を有する。AL [+80 の出力はライン86によってトップ項目レジスタ76に接続されてい る。
82のトップ項目レジスタの出力もまたライン88によって内部データバス90 に接続されている。
ループカウンタ92がライン96および98によって減分器94に接続されてい る。ループカウンタ92はライン+00 によって内部データバス90に双方向 接続されている。スタックポインタ102、復帰スタックポインタ104、モー ドレジスタ+06 および命令レジスタ108 もまたライン110.112  、+14 および116 によって内部データlくス90に接続されている。内 部データバス90はメモリコントローラ118 とゲート120 に接続されて いる。ゲート120 は復帰後入れ先出しスタック134 のXレジスタ128 、プログラムカウンタ130 およびYレジスタ132 への入力をライン+2 2 、+24 および+26 上に提供する。Xレジスタ128 、プログラム カウンタ130 およびYレジスタ+32 は内部アドレスバス136 への出 力をライン138.140 および142上に提供する。内部アドレスバスはメ モリコントローラ11.8 と増分器144への入力を提供する。増分器+44  はXレジスタ、プログラムカウンタおよびYレジスタ132 への入力をライ ン1.46 、+22.124 および126 を介して提供する。DIIA  CPU72 はライン148 上にメモリコントローラ118 への入力を提供 する。メモリコントローラ118 はアドレス/データバス150 と制御ライ ン152 によってRAII (図示せず)に接続されている。
図2はマイクロプロセッサ50が簡単なアーキテクチャを有することを示す。従 来のRISCマイクロプロセッサの設計ははるかに複雑である。たとえば、5P ARCRISCマイクロプロセッサはマイクロプロセッサ50の3倍のゲートを 有し、Intel 8960 RISCマイクロプロセッサはマイクロプロセッ サ50の20倍のゲートを有する。このマイクロプロセッサの速度はかなりの部 分この簡略性に起因する。
このアーキテクチャはこの簡略性を得るために後入れ先出しスタックとレジスタ 書き込みを用いている。
マイクロプロセッサ50は集積回路チップ上に設けられる資源を十分に活用する ように調整されたIloを内蔵する。オンチップラッチによって同じIlo 回 路を三つの異なることを処理するのに用いることができる。すなわち、速度を少 ししか、あるいは全く犠牲にせずから無アドレス指定、列アドレス指定およびデ ータを処理することができる。この三重バス多重化によって拡張すべきバッファ の数、相互接続ラインの数、Ilo ピンおよび内部バッファの数を少なくする ことができる。
オンチップDRAII制御を備えることによって、スタティックRAM を用い てえることのできる性能と等しい性能を得ることができる。その結果、メモリを ほとんどのRISCシステムに用いられるスタティックRAM のシステムコス トの1/4 で設けることができる。
マイクロプロセッサ50は1メモリサイクルあたり四つの命令を取り出すことが できる。命令は8ビツトフオーマツトであり、これは32ビツトマイクロプロセ ツサである。したがって、システム速度はメモリバス帯域幅の4倍である。この 能力によってマイクロプロセッサが次の命令を得る速度におけるフォノ・ノイマ ンの障害を突破することが可能になる。この動作モードは後入れ先出しスタック とレジスタアレーの使用によって可能となる。
後入れ先出しスタックは二つの出所と一つの行先に対する明示アドレスの従来技 術ではなく、暗示アドレスを使用することを可能とする。
はとんどの命令はマイクロプロセッサ50内で20ナノ秒で実行される。したが ってマイクロプロセッサはノくイブライン遅延を用いず50のビークMIPSで 命令を実行することができる。これはマイクロプロセッサ50中の少数のゲート とこのマイクロプロセッサのアーキテクチャの高度な並行処理の結果である。
図3はIlo ピン52からのDRAM150 のアドレス指定に対してマイク ロプロセッサ50のラインD8−DI4上でカラムアドレスと列アドレスがどの ように多重化されるかを示す。
DRAl1150 は8個あるうちの一つであるが、ここでは説明をわかりやす くするため一つのDRAM150のみを示す。図示するように、ラインDll− 018はそれぞれDRAl1150 の列アドレス入力AO−^8に接続されて いる。さらに、ラインD12−D15 はDRAl[150のデータ人力DQI −DQ4 に接続されている。出力イネーブル、書き込みおよびカラムアドレス ストローブピン54はそれぞれライン152 によってDRAM150 の出力 イネーブル、書き込みおよびカラムアドレスストローブ入力に接続されている。
列アドレスストローブピン54は列アドレスストローブ複合ロジック154 を 介してライン152 および158 によってDRA11150 の列アドレス ストローブ入力に接続されている。
Do−D7 ピン52(図1)はマイクロプロセッサ50がDli018 ピン 52に多重化された列アドレスおよびカラムアドレスを出力中である時にはアイ ドル状態である。したがって、Do−D? ピン52は右寄せされたIloがめ られるとき入出力に同時に用いることができる。したがって同時アドレス指定お よび入出力を行うことができる。
図4はマイクロプロセッサがいかにして単一のクロックサイクル中での複数命令 取り出しと前方命令取り出しを通じて、DRAllを用いてスタティックRAI [を用いる場合と等しい性能を達成できるかを示す。命令レジスタ108は32 ビット内部データバス90上の四つの8ビットバイト命令ワード1−4 を受け 取る。命令レジスタ108 の四つの命令バイト1−4 の位置はバス172  、174 、+76および17g によってマルチプレクサ170 に接続され る。マイクロプログラムカウンタ180 はライン182 によってマルチプレ クサ170 に接続される。マルチプレクサ170 はバス186 によって復 号器184 に接続される。復号器184 はライン18g上にマイクロプロセ ッサ50の他の部分に対する内部信号を提供する。
各命令バイト1−4 の位置の最上位ビット190 はライン194 によって 4人力後号器192 に接続される。復号器192 の出力はライン+96 に よってメモリコントローラ118 に接続される。プログラムカウンタ130  は内部アドレスバス136 によってメモリコントローラ118 に接続され、 命令レジスタ108 は内部データバス90によってメモリコントローラ118  に接続される。アドレス/データバス198 と制御バス200 はDRAi l150 (図3)に接続される。
動作中において、残りの命令1−4 の最上位ビット190がマイクロプロセッ サ50のクロックサイクル中に°1“であるとき、待ち行列にはメモリ参照命令 はない。ライン196 上の復号器192 の出力はメモリコントローラ118 による他のアクセスを介在させない前方命令取り出しを要求する。命令レジスタ 1011 中の現在の命令が実行されている間に、メモリコントローラ118  はプログラムカウンタ130からの四つの命令の次のセットのアドレスを得、そ の命令セットを得る。現在の命令セットの実行が完了するまでには次の命令セッ トを命令レジスタにロードする準備ができている。
DMA CPO72の詳細を図5に示す。内部データバス90はメモリコントロ ーラ118 とDIIA 命令レジスタ210 に接続されている。Di[A  命令レジスタ210 はバス2]4 によってDロブログラムカウンタ212  に、バス216 によって転送サイズカウンタ216 に、バス222 によっ て時限転送間隔カウンタ220 に接続されている。Dll^ll−ジスタ21 0はまたメイン226 によってDl[^110 およびRAII アドレスレ ジスタ224 に接続されている。DIIA Ilo およびRAII アドレ スレジスタ224 はメモリサイクル要求ライン228 とバス230 によっ てメモリコントローラ118 に接続されている。Dl[A プログラムカウン タ212 はバス232 によって内部アドレスバス136 に接続されている 。転送サイズカウンタ216 はライン236 と238 によって実行済みD IIA 命令減分器234 に接続されている。実行済みDMA 命令減分器2 34 はメモリサイクル応答ライン240 上の制御入力を受け取る。転送サイ ズカウンタ215 はその計数を終えると、ライン242上にDロブログラムカ ウンタ212への制御信号を提供する。時限転送間隔カウンタ220 はライン 246 および248 によって減分器244 に接続されている。
減分器244 はライン250 上のマイクロプロセラサンステムフロツタから の制御入力を受け取る。
DIIA CPUT2 はそれ自体を制御し、命令を取り出し実行する能力を有 する。これはメインCP[170(図2)に対して時間の特定される処理のため の双対プロセッサとして動作する。
図6はデータライン52をあるものは入力ラインとなり他のものは出力ラインと なるように再構成することによってマイクロプロセッサ50を電気的にプログラ ム可能なリードオンリーメモリ(EPROII ) 260 に接続する態様を 示す。
データライン52 DO−D7はEPROl[260の対応するデータ端子26 2 とのデータのやり取りを可能とする。データライン52 D9−018 は EPROII 260 のアドレス端子264 にアドレスを提供する。データ ライン52 Dl9−D31はマイクロプロセッサ50からの入力をメモリおよ びI10100ジック266 に提供する。RAS O/1 制御ライン268  はメモリおよびIlo 復号ロジックがライン270 上にDRAlI RA S出力を提供するか、それともライン272上にEPROII260のためのカ ラムイネーブル出力を提供するかを判定するための制御信号を提供する。マイク ロプロセッサ50のカラムアドレスストローブ端子60はライン274 上にE PROII260の対応する端子276 への出力イネーブル信号を提供する。
図7および図8はマイクロプロセッサ50、合計2メガバイトの1lsII51 4258−1o型DRAII 150.1lotorolaの50メガヘルツ水 晶発振器クロック282 、I10回路284、および27256 型EPRO II 260 を内蔵するワンカードデータ処理システム280 の前後を示す 。I10回路284 は7411CO4型高速16進インバ一タ回路286 、 ID丁39C828型10ビット反転バッファ回路2118 、IDT39C8 22型]Oビット反反転レジタ7回路90、および二つのIDT39C823型 9ビット非反転レジスタ回路292 を含む。カード280 はさらに最大IN N型直流−直流変換器回路294.34ビン2アンプ型へラダ296 、同軸雌 電源コネクタ298、および3ピンアンプ直角ヘツダ300 を加えてなる。カ ード280 はより大きなシステムに内蔵するかあるいは内部開発ツールとして 用いることのできる低コストの埋め込み可能な製品である。
マイクロプロセッサ50はダイナミックRAII と非常に密接に働くように設 計された非常に高性能(5011Hz )なRISC型32ビットCPU であ る。マイクロプロセッサ5oは単一 CPU構成で可能な理論上の性能限界に近 づくものである。最終的にはマイクロプロセッサ50もその他のいかなるプロセ ッサもバス帯域幅とバスバスの数によって制約される。クリティカルバスはCP [I とメモリの間にある。
バス帯域幅とバスバスの問題に対する解決法の一つにCPU をメモリチップ上 に直接集積してすべてのメモリにCPU への直接バスを設6する方法がある。
図9は単一の集積回路312 中に1メガビツトのDRA11311 と一体に 設けた別のマイクロプロセッサ310 を示す。この発明以前にはこの解決法は 実用的なものではなかった。それほぼとんどの高性能CPU はそれ自体でso o、 ooo から1.000.000 個のトランジスタと非常に大きなグイ サイズを要するためである。マイクロプロセッサ310 は図1−8 のマイク ロプロセッサ50と等価である。マイクロプロセッサ50と310はデュアルプ ロセッサ70および72(l+!+2)あるいは314および316(より小さ いメモリ)用に50.000個以下のトランジスタしか必要としない現在あるも のの中で最もトランジスタ効率の高い高性能CPU である。マイクロプロセッ サ50および310 の非常に高い速度は、ある程度までは能動素子の数が少な いことの結果である。基本的には珪素が少ないほど、電子はそれが目指す場所に より速く到着することができる。
したがって、マイクロプロセッサ310 はメモリチップダイ312 上での集 積に適した唯一のCPU である。基本マイクロプロセッサ50にDRAMアレ ー311 への近接を利用する簡単な変更を加えることによってもマイクロプロ セッサ50のクロック速度を50%あるいはそれ以上増大させることができる。
DRAIIIダイ312 上のマイクロプロセッサ310 のコアは自動系から 周辺制御までの幅広いアプリケーションに必要な速度と機能のほとんどを提供す る。しかし、集積CP■310/DRAIII311の考え方は多重プロセッサ による解決法によって非常に多量の計算を要する問題を解決する方法を大きく変 革する可能性を有するものである。CPU 310/DRAIII 311の組 合せはフtン・ノイマンの障害を多数のCP[I/DRAMチップ312 に分 散することによって排除する。
マイクロプロセッサ310 は多重処理を行うための特に良好な核である。なぜ なら、これはSDI ターゲツティングアレーを念頭に設計されており、プロセ ッサ間の効率的な通信に対する備えがなされているためである。
従来の多重プロセッサの実施はCPHの能力を十分に生かすことができないこと に加えて、非常に高価であった。
多重プロセッサシステムは通常多数の基板レベルあるいはボックスレベルのコン ピュータから構成される。その結果、非常に多量のハードウェアとそれに対応す る配線、電力清貿、および通信上の間層が発生するのが常である。
システムが相互接続されるまでに、インターフェースを得るためだけのためにバ ス速度の50%もが使用される。
さらに、多重プロセッサシステムのソフトウェアは数が少ない。多重プロセッサ システムは、一つのCPHに多くの仕事をさせ他はアイドル状態にするシステム ソフトウェア中の不適切な負荷分担によって簡単に故障することがある。近年、 システムソフトウェアは大きく進歩し、UNIX L4をも多重処理を支援する ように改善することができる。DUAL Systemsや[1NISOFT  といったメーカーの製品には68030型マイクロプロセツサシステム上で信頼 性のあるはたらきをするものもある。
マイクロプロセッサ310 のアーキテクチャはインターフェース上の摩擦のほ とんどを解消する。これは最大64個のCPU 3]0/RAII 311 プ ロセッサはバッファやラッチを用いず相互通信を行うことができるためである。
チップ312 はそれぞれが約40111PSの列速度を有する。これは、DR AII 311をCPU 310 の隣に配置することによってマイクロプロセ ッサ310 の命令サイクルをマイクロプロセッサ50の半分にすることができ るためである。これらのチップ312 の64チツプアレーは他の既存のいかな るコンピュータよりも強力である。このようなアレーは325 カード上に載り 、価格はファックシミリ機より低く、小型テレビと同じ電力を消費する。
価格対性能比の劇的な変化は常に既存のアプリケージシンに変化をもたらし、ま た新しいアプリケーションを生み出す。共通総称並行処理アルゴリズムは重量/ 高速フーリエ変換(FFT )/パターン認識を処理する。集積回路312 を 用いて可能な製品で興味深いものとしては、高速読み取り機、リアルタイム音声 認識、音声語翻訳、リアルタイムロボットビジョン、顔から人間を識別する製品 、および自動車や航空機の衝突回避システムなどがある。
高密度テレビ(HDTV)画像を改善する、あるいは[IDTV情報をより小さ な帯域幅に圧縮するためのリアルタイムプロセッサは非常に実現の可能性の高い ものである。
HDTVにおける負荷分担は非常に簡単である。色とフレームにしたがってタス クを分割するには6.9あるいはI2のプロセッサが必要となる。実際にはマイ クロプロセッサ310 に一体化された4メガRAII が必要となる。
マイクロプロセッサ310 は以下のような仕様である。
制御ライン 4−システム制御 外部メモリ取り出し 外部メモリ取り出し 自動増分 X 外部メモリ取り出し 自動減分 Y 外部メモリ書き込み 外部メモリ書き込み 自動増分 X 外部メモリ書き込み 自動減分 Y 外部PROI取り出し すべてのXレジスタをロード すべてのYレジスタをロード すべてのPCレジスタをロード XとYの入れ替え 命令取り出し PCに追加 Xに追加 写像レジスタ書き込み 写像レジスタ読み出し レジスタ構成 マイクロプロセッサ310 CPU316コアカラムラツチ1 (1024ビツ ト) 32 X 32M[IXスタックポインタ(16ビツト) カラムラッチ2 (1024ビツト) 32 X 3211UXスタツクポイン タ(16ビツト) プログラムカウンタ 32ビツト xOレジスタ 32ビツト(オンチップアクセスに対してのみ起動) YOレジスタ 32ビツト (オンチップアクセスに対してのみ起動) ループカウンタ 32ビツト DIIA CP[+ 314 コア DI^プログラムカウンタ 24ビツト命令レジスタ 32ビツト Ilo およびRAl[アドレスレジスタ 32ビツト転送サイズカウンタ 1 2ビツト インターバルカウンタ 12ビット 基本チップ312のメモリ拡張を提供するために、インテリジェントDRAII を生成することができる。このチップは、プログラムカウンタ、Xレジスタおよ びYレジスタの三つのオンチップアドレスレジスタを備えることによって集積回 路312 との高速動作に対して最適化される。その結果、インテリジェントD IiAM lこアクセスするためにはアドレスを必要とせず、総アクセスサイク ルはIQnse(と短くすることができる。それぞれの拡張DRAIIは三つの レジスタのコピーを保持し、そのメモリアドレスを指定するためのコードによっ て識別される。この三つのレジスタへの増分あるいは追加は実際にはメモリチッ プ上で発生する。最大64のインテリジェントDRAII li辺装置によって 、マルチプレクサやバッファの導入によって速度を犠牲にすることなく大型シス テムの作成が可能となる。
マイクロプロセッサ310 とマイクロプロセッサ5oの間にはある種の相異点 があり、これはマイクロプロセッサ310 をDRAII 311と同じダイ3 12 上に設けることに起因する。 DRAM 311を一体化すると既存のオ ンチップDffiAII 311回路の活用を可能とするようなマイクロプロセ ッサ310のアーキテクチャ上の変更が可能となる。列とカラムの設計はメモリ アーキテクチャに備わっている。DRAM 311はまず1024ビツトの列を 選択し、それをカラムラッチに記憶し、次にそれらのビットのうちの一つを読み 出しあるいは書き込みすべきデータとして選択することによってメモリアレー中 のランダムなビットにアクセスする。
データのアクセスに要する時間は列アクセスとカラムアクセスに分けられる。カ ラムラッチに記憶済みのデータの選択はランダムなビットの選択より少なくとも 6倍高速である。マイクロブ0セツサ310 は多数のカラムラッチを作成し、 それらをキャッシュおよびソフトレジスタとして用いることによってこの高速性 を活用する。新しい情報の列を選択することはその結果得られる大きなバス帯域 幅によって1024ビツトの読み出しおよび書き込みを実行することと考えるこ とができる。
1、マイクロプロセッサ50はその32ビツトの命令レジスタ108(図2およ び図4参照)を四つの8ビツト命令のためのキャッシュとして取り扱う。DRA W 311はカラムビットに対して1024ビツトラツチを保持するため、マイ クロプロセッサ310 はこのカラムラッチを128 の8ビツト命令のための キャッシュとして取り扱う。したがって、はとんど常に次の命令がすでにキャッ シュの中に存在している。キャッシュ内の長いループもまた可能であり、マイク ロプロセッサ50中の四つの命令ループより有用である。
2、マイクロプロセッサ50はパラメータスタックとリターンスタック用に二つ の16 X 32ビットディーブレンスタアレ−74および134(図2)を用 いる。マイクロプロセッサ310 は二つの別の1024ビツトカラムラツチを 作成して、二つの32 X 32ビツトアレーに等価なものを提供する。これは レジスタアレーの倍の速度でアクセスすることができる。
3、マイクロプロセッサ50はビデオシフトレジスタへの入出力に用いることの できるDMA能力を有する。マイクロプロセッサ310 はさらに別の1024 ビツトカラムラツチを、CRT表示装置を直接駆動するための長いビデオシフト レジスタとして用いる。カラー表示に対しては、三つのオンチップシフトレジス タを用いることもできる。
これらのシフトレジスタは画素を最大100 M[Iz で転送することができ る。
4、マイクロプロセッサ50は外部の32ビツトバスを介してメモリにアクセス する。マイクロプロセッサ310 のためのメモリ311 のほとんどは同じダ イ312上にある。
外部からより多くのメモリにアクセスするには8ビツトバスを用いて行う。その 結果マイクロプロセッサ50に比べてグイ、パッケージ、および電力消費が小さ くなる。
5、マイクロプロセッサ50はその動作電力の約3分の1をIlo ビンとその 関連のキャパシタンスの充電および放電に用いる。マイクロプロセッサ50に接 続されたDRAII1150(図8)はIlo ドライバ内でその電力のほとん どを消費する。マイクロプロセッサ310 システムの消費電力はマイクロプロ セッサ50の約10分の1である。これはプロセッサ310 に隣接してDRA II 311を有することによって充電および放電すべき外部キャパシタンスの ほとんどが除去されるためである。
6、多重処理とはこの解決法の速度を上げるために計算タスクを多数のプロセッ サの間で分担することを意味する。多重処理の普及は、現在の個々のプロセッサ の費用、さらにプロセッサ間の通信能力上の限度から制約されている。マイクロ プロセッサ310 は多重プロセッサの有望な候補である。これはチップ312 がメモリ付きの単一のコンピュータであり、低コストと物理的なコンパクトさが 実現されているためである。
ビデオ出力を行うためにマイクロプロセッサ310 に実施されるシフトレジス タもまたプロセッサ間!!!!信リンクとして構成することができる。IIII IOS トランスピユータは同様な戦略を意図したものであったが、速度ははる かに低(、またマイクロプロセッサ310のカラムラッチアーキテクチャに備わ っている性能上の利点を有していない。
シリアル入出力は多くの多重プロセッサ構成においては多数の隣合うプロセッサ が通信を行うため不可欠である。
一つのキューブに六つのプロセッサがある。各プロセッサは次のラインを用いて 通信する。
DATA IN CLOC[IN READY FOil DATA DATA O[1T DATA READY? CLOCK OUT 各プロセッサのオンチップDRAM 311を初期化するのに特殊なスタートア ップシーケンスが用いられる。
マイクロプロセッサ310 のカラムラッチアーキテクチャは隣合うプロセッサ が内部レジスタあるいは他のチップ312 の命令キャッシュにさえ直接情報を 送ることを可能にする。この技術は既存のプロセッサには用いられていない。こ れは緊密に結合されたDRAIIシステムにおいてのみ性能を向上させるためで ある。
7、マイクロプロセッサ5oのアーキテクチャは二種類のループ構造を提供する 。すなわち、LOOP−IP−DONKと、111CRO−LOOPである。前 者はループアドレスへの入口点の記述に8ビツトから24ビツトのオペランドを 要する。後者はループ全体を四つの命令待ち行列内で実行し、ループ入口点はこ の待ち行列中の第1の命令を意味する。この待ち行列中のループは外部命令取り 出しを行うことなく動作し、最大で長いループ構成体の二倍の速度で実行する。
マイクロプロセッサ310はこのわずかな違いの二つの構成対を保持する。マイ クロプロセッサ310 のマイクロループは、待ち行列の長さが1024ビツト あるいは128 の8ビツト命令である点を除いてマイクロプロセッサ50の動 作と同様に機能する。したがって、マイクロプロセッサ310 のマイクロルー プは四つの8ビツト命令マイクロプロセツサ5oの待ち行列では不可能なジャン プ、分岐、呼び出しおよび即時操作を含みうるちのである。
マイクロプロセッサ50のマイクロループは簡単なブロック移動と比較機能を実 行できるだけである。より大きなマイクロプロセッサ3]0 の待ち行列はデジ タル1号処理あるいは浮動小数点アルゴリズムの全体がこの待ち行列の中で高速 でループすることを可能にする。
マイクロプロセッサ50は実行の再指令を行う次の四つの命令を提供する。
ALL BRANCH BRANCH−IF−ZERO LQOP4F−MOT−DONE これらの命令は8 、I6、あるいは24ビツトの長さの可変長アドレスオペラ ンドを取る。マイクロプロセッサ50の次アドレスロジックはこの三つのオペラ ンドを現在のプログラムカウンタに加算あるいは減算することによってこれらを 同様に取り扱う。マイクロプロセッサ310 については、16および24ビツ トオペランドはマイクロプロセッサ50の16および24ビツトオペランドと同 様に機能する。
この8ビツトクラスのオペランドはこの命令待ち行列中で全体が動作するように 反転される。したがって、次のアドレス決定を速く行うことができる。これはア ドレスの32ビツトではなく10ビツトだけが関係するためである。
IOビット以降では桁上げも借りも発生しない。
8、マイクロプロセッサ310 のCPU 316 は狭いDRAMダイ312  上に載る。チップサイズを可能な限り小さくするため、マイクロプロセフす5 0のDMAプロセッサ72をより一般的なり璽^ コントローラ314 に置き 換えた。Dll^はマイクロプロセッサ310 に用いて次の機能を実行する。
CRTへのビデオ出力 多重プロセッサのシリアル通信 8ビツトパラレル入出力 DMA コントローラ314 はシリアル転送とパラレル転送の両方を同時に維 持することができる。以下のDI[Aの出所および行先がマイクロプロセッサ3 10 によって支援される。
説明 入出力 ライン 1、ビデオシフトレジスタ 出力 1から32多重プロセッサ シリアル 両方  チャンネルあたり6ライン 3.8ビツトパラレル 両方 8データ、4制御 三つの出所は別の1024ビツトバツフアと別の入出力ビンを用いる。したがっ て、この三つはすべて干渉し合うことなく同時に活動状態になりうる。
マイクロプロセッサ310 は、単一の多重プロセッサシリアルバッファあるい は各チャンネルのための別個の送受信バッファのいずれかを用いて実施すること ができ、これによって6個のプロセッサ間での同時双方向通信が可能である。
図10と図11はマイクロプロセッサ50に泪いられるPROIIDI[A の 詳細を示す。マイクロプロセッサ5oの実行は最高速のPROJI以外のいかな るものより速い。PRONはマイクロプロセッサ50のシステムにおいてプログ ラムの部分ある勢いはプログラム全体を記憶するのに用いられる。マイクロプロ セッサ50は低コストの低速PRONから高速DR^舅への実行のためのプログ ラムのローディングを可能とする電源投入時の機能を提供する。この機能を実行 するロジックはDロンモリコントローラ118 の一部である。この動作はDN A に近いが同一ではない。これは四つの8ビツトバイトをマイクロプロセッサ 5o上にアセンブルし、次にDRAll 150に書き込まなければならないた めである。
マイクロプロセッサ50は三重多重化データおよびアドレスバス350 を介し てDI2A11150と直接インターフェースする。この三重多重化データおよ びアドレスバス350 はRAS アドレス、 CAS アドレスおよびデータ を搬送する。
一方、EPROII 260 は非多重化バスによって読み出される。
したがって、マイクロプロセッサ5oはデータおよびアドレスラインの多重化を 解きEFROM データの8ビツトを読み出す特殊モードを有する。四つの8ビ ツトバイトはこのようにして読み出される。多重化データバス350は再びオン され、 DRAll 150にデータが書き込まれる。
マイクロフロセッサ5oがRESET状態を検出すると、プロセッサはメインC PU TOを停止させ、モードQ (PROIIILOAD )命令をDMA  CP[I 72命令レジスタに送る。このDIIA 命令はメモリコントローラ にEPROII 260 のデータをメモリの通常のアクセス時間の8倍で読み 出すように指令する。5011Hzのマイクロプロセッサ5oを想定すると、こ れは320nsecのアクセス時間を意味する。この命令はまた次のことを示す 。
ロードすべきEPROII 260 の選択アドレス、転送すべき32ビツトワ ードの数、 転送先のDRAll 150アドレス、−ツノ32ヒツトワードをEPROl[ 260からDRAM 1501.m転送する動作のシーケンスは次の通りである 。
1、 RASが352 でローになり、上位アドレスビットからのEPROM  260 選択情報をラッチする。
2、(通常DRAW CASアドレスと呼ばれるものからなる)。
12のアドレスビットと2バイトの選択ビットがEPRO厘260のアドレスビ ンに行くバス350 に乗せられる。これらの信号はEPROII 260 か らのデータがマイクロプロセッサ5゜に読み込まれるまでライン上に残る。第1 のバイトについては、バイト選択ビットは2値的にはooである。
3、 CASが354 でローになり、EPROII 260 のデータを外部 アドレス/データバス350の下位の8ビツト上にイネーブルする。このサイク ルのこの部分においては外部アドレス/データバス350 の下位の8ビツトは 入力として機能するが、バスの残りの部分は依然として出力として働いているこ とを認識することが重要である。
4、 マイクロプロセッサ50はこれらの八つの最下位ビットを内部的にラッチ し、それらを8ビツト左にシフトしてそれらを次の有意バイト位置にシフトする 。
5、 バイトアドレス01でステップ2.3および4が繰り返される。ラッチし 、それらを8ビツト左にシフトし6、 バイトアドレスIOでステップ2.3お よび4が繰り返される。ラッチし、それらを8ビツト左にシフトし7、 バイト アドレス11でステップ2.3および4が繰り返される。
8、 CASが356 でハイになり、EPROll 260 をデータバスか ら取り外す。
9、 CASが358でハイになり、EPROI 260 のアクセスの終了を 示す。
10゜RAS が360 でローになり、上位アドレスビットからのDRAII 選択情報をラッチする。同時に、l1AS アドレスビットがDRAll 15 0にラッチされる。DRAM +50が選択される。
11、 CAS が362 でロー1ごなり、DRARAS0 CASアドレス をラッチする。
12 マイクロプロセッサ50が前にラッチされたEPROl[260の32ビ ツトデータを外部アドレス/データバス350に乗せる。Wが364 でローに なり、この32ビツトをDRA11150 に書き込む。
13、Wが366でハイになる。CASが368 でハイになる。
この過程が次のワードに対して続けられる。
図12はマイクロプロセッサ50のメモリコントローラ118 の詳細を示す。
動作中には、バス要求はそれらがサービスされるまで存在し続ける。CP[I  70の要求には370 において、1 パラメータスタック、2:リターンスタ ック、3 データ取り出し、4 命令取り出しの順に優先順位が付けられる。そ の結果得られるCPU要求信号およびDll^要求信号はバス要求として374  でバス許可信号を提供するバス制御372 に供給される。内部アドレスバス 136 とDMA カウンタ376 はマルチプレクサ378 に入力を提供す る。列アドレスとカラムアドレスのいずれかがマルチプレクサ378からの出力 である多重化されたアドレスバス380 への出力として提供される。多重化ア ドレスバス380 と内部データバス90はそれぞれマルチプレクサ382 へ のアドレス入力とデータ入力を提供する。シフトレジスタ384 はライン39 0 および392 上にマルチプレクサ386 への列アドレスストローブ(R AS ) 1と二つの制御信号を、またマルチプレクサ388 へのカラムアド レスストローブ(CAS ) 1と二つの制御信号を供給する。シフトレジスタ 384 もまた出力イネーブル(OE)信号と書き込み(W)信号をライン39 4 および396 上に、また制御信号をマルチプレクサ382 へのライン3 98上に供給する。シフトレジスタ384 はライン400 上のREIN 信 号を受取り、メモリサイクルを発生し、アクセスが完了したときライン402上 にIEIIORY READY信号を供給する。
スタック/レジスタアーキテクチャ はとんどのマイクロプロセッサは変数の一時記憶用にオンチップレジスタを用い る。オンチップレジスタはオフチブプ輩^麗より高速にデータにアクセスする。
一時記憶にオンチップ後入れ先出しスタックを用いるマイクロプロセッサはごく わずかである。
スタックは出所レジスタと行先レジス他の選択を不要とするため、オンチップレ ジスタに比べ高速に動作するという利点を有する。(数理動作あるいは論理動作 には常に上の二つのスタック項目が出所として、まやスタックの上部が行先とし て用いられる。)このスタックの欠点はある種の動作が繁雑になることである。
特に、ある種のコンパイラアクティビティでは効率上オンチップレジスタを必要 とする。
図13に示すように、マイクロプロセッサ50はオンチップレジスタ134 と スタック74の両方を提供し、この両者の利点を有する。
利点・ 1 スタックの演算とロジックの速度は等価なレジスタだけを有する機械でえら れる速度の二倍である。はとんどのプログラマ−および最適化コンパイラはこの 機能を利用することができる。
216のレジスタをローカル変数の記憶に用いることができ、ローカル変数は計 算を行うためにスタックに転送することができる。変数のアクセス速度は厳密な スタック機械で可能な速度の二倍から四倍である。
スタック74/レジスタ134 の組合せアーキテクチャはこれまで最適化コン パイラおよび転送と数理/ロジック命令の混合をコンピュータの設計者たちが的 確に理解していなかったために用いられなかった。
適応メモリコントローラ マイクロプロセッサは小さなメモリ構成あるいは大きなメモリ構成で機能するよ うに設計しなければならな%)。
データライン、アドレスラインおよび制御ラインに加えられるメモリ負荷が増え るにつれて、信号のスイッチング速度は低下する。マイクロプロセッサ50はア ドレス/データバスを三様に多重化し、したがって位相間のタイミングが重要で ある。この問題に対する従来のアプローチは、バスの位相の間に大きな時間マー ジンを設けてシステムがそれに接続された少数あるいは多数のメモリチップとと もに機能するようにするというものである。この場合速度を50%も犠牲にしな ければならない。
図14に示すように、マイクロプロセッサ50はフィードバック技術を用いて、 プロセッサがメモリノくスのタイミングを小さな負荷に対しては速く、大きな負 荷に対しては遅(調整することを可能とする。マイクロプロセッサ50からの出 力イネーブル(OE)ライン+52 は回路基板上のすべてのメモリ150 に 接続されている。マイクロプロセッサ50への出力イネーブルライン152上の ローディングは接続されたメモリ150 の数に直接関係している。0E152 が読み出しの後どれだけ急速にハイになるかをモニターすることによって、マイ クロプロセッサ50はいつデータホールド時間が満足されたかを判定し、バス上 に次のアドレスを置く。
OEライン152 のレベルはマイクロプロセッサのメモリコントローラへのラ イン上に内部READY信号を発生するcmos入力バッファ410 によって モニターされる。図15のグラフのカーブ414 および416 は負荷の軽い メモリシステムと負荷の大きいメモリシステムに見られる立ち上がり時間の相違 を示す。OEライン152がREADY 信号を発生する所定のレベルに達した とき、ドライバ418 はOEライン+52 上に出力イネーブル信号を発生す る。
命令キャッシュ中のスキップ マイクロプロセッサ50は各メモリサイクルで四つの8ビツト命令を取り出し、 図16に示すようにそれらを32ビツト命令レジスタ108 に記憶する。ある クラスの°テストおよびスキップ1命令は四つの命令キャッシュ内で非常に高速 なジャンプ動作を非常に急トこ実行することができる。
スキップ条件・ 1ways ^CCはゼロではない 八CCは負 桁上げフラグ−論理1 桁上げフラグ−論理0 スキップ命令の位置は32ビット命令レンスタ10g中の四つのバイト位置のど れであってもよい。テストが成功である場合、スキップは命令レジスタ108  中の残りの一つ、二つあるいは三つの8ビツト命令を飛び越え、次の四つの命令 のグループのレジスタ108 へのローディングを発生させる。図示するように 、このスキップ動作はライン422 上で2ビットマイクロ命令カウン月80  をゼロにリセットし、同時に次の命令グループをレジスタ108にラッチするこ とによって実施することができる。命令レジスタ中のスキップに続くいかなる命 令も新しい命令によって重ね書きされ実行されない。
スキップの利点は最適化コンパイラおよびスマートプログラマがより長い条件つ きのジャンプ命令の代わりにそれを頻繁に用いることができるという点である。
スキップはまたループがカウントダウンするとき、あるいはスキップが次の命令 グループにジャンプするとき出るマイクロループを可能とする。その結果非常に 高速なコードが得られる。
(FDP−8やData GeneralのN0VAといった)他の機械は単一 の命令をスキップする能力を提供する。マイクロプロセッサ50は最大で三つの 命令をスキップする能力を提供する。
命令キャッシュ中のマイクロループ マイクロプロセッサ5oは命令レジスタ+011 中の−っがら三つの命令を綴 り返し実行するためのマイクロループ命令を提供する。このマイクロループ命令 は内部データバス90に接続されたループカウンタ92(図2)と連動して機能 する。マイクロループを実行するために、プログラムがループカウンタ92中の 計数値を記憶する。マイクロループは命令レジスタ108 の第1、第2、第3 あるいは最終バイト420 に入れることができる。第1の位置に入れた場合、 実行によってループカウンタ92に記憶された数にマシンサイクルを掛けたもの に等しい遅延が作成されるだけである。第2、第3あるいは最終バイト420に 入れられた場合、マイクロループ命令が実行されるとループ計数値がゼロである かどうかがテストされる。ゼロである場合、次の命令が継続して実行される。ゼ ロでない場合、ループカウンタ92が減分され、2ビツトマイクロ命令カウンタ がクリアされ、命令レジスタ中の前の命令が再度実行される。
マイクロループはブロック移動と探索動作に有用である。命令レジスタ+08  の外への完全なブロック移動を実行することによって、移動速度が二倍になる。
これはメモリサイクルが命令取り出しと共用されるのではなく、そのすべてが移 動に用いられるためである。このようなマイクロループのハードウェアによる実 施態様は、相当する機能を有する従来のソフトウェアによる実施よりはるかに高 速である。
最適CPU クロックスキーム 高速マイクロプロセッサの設計者は広い温度範囲、広い電圧揺動範囲、および半 導体加工の大きなばらつきに対しても動作する製品を作らなければならない。温 度、電圧および加工はすべてトランジスタの伝搬遅延に影響する。従来、CP[ l の設計はこの三つのパラメータが悪い場合に回路が定格クロック速度で動作 するように成される。その結果、設計は理論上の最高性能の半分の速度でクロッ クしなげればならないようなものになり、悪い条件でも適切に動作する。
マイクロプロセッサ50は図17−図19に示す技術を用いてシステムクロック とそれに要する位相を発生する。クロック回路430 は処理性能をテストする のに用いられる周知の一ノングオシレータ1である。クロックはマイクロプロセ ッサ50の他の部分と同じシリコンチップ上に製作される。
リングオンレータの周波数は温度、電圧および加工のパラメータによって決まる 。室温では周波数は+00 )lBz近辺である。摂氏70度では速度は501 1111zである。リングオシレータ430 はシステムクロックとして有用で あり、その段431 は図19に示す位相〇−位相3の出力433 を生成する 。これはその性能が同じシリコンダイ上の他のすべてのトランジスタに同じ影響 を及ぼすパラメータを反映するためである。リングオシレータ430 がら/ス テムタイミングを発生することによって、CPU 70は常に可能な最大周波数 で動作するが速くなりすぎることはない。
たとえば、あるダイの加工が不良でトランジスタ速度が低い場合、マイクロプロ セッサ5oのラッチとゲートは通常より低速で動作する。マイクロプロセッサ5 oのリングオシレータクロック430 はラッチやゲートと同じダイ上の同じト ランジスタから作られるため、これもまた低速で動作しく低い周波数で発振する )、チップのロジックの残りが適正に動作することを可能とする補償を提供する 。
非同期/同期CPU はとんどのマイクロプロセッサはすべてのシステムタイミングを一つのクロック から発生する。この場合の間履点は、システムの異なる部分がすべての動作の速 度を低下させる可能性があることである。マイクロプロセッサ50は図17に示 すようなデュアルクロックスキームを提供し、CP[+ 70はメモリコントロ ーラ118(図2)の一部をなすIlo インターフェース432 と非同期に 動作し、Ilo インターフェース432 はメモリとIlo 装置の外界と同 期して動作する。CPU 70は適応リングカウンタクロック430 を用いて 可能な最高の速度で動作する。速度は温度、電圧および加工に応じて四倍に変化 する。ビデオ表示更新やディスクドライブ読み出しおよび書き込み等の動作につ いては外界はマイクロプロセッサ50に同期していなければならない。この同期 はIlo インターフェース432 によって行われ、■10 インターフェー ス432 の速度は従来の水晶クロック434 によって制御される。インター フェース432 はマイクロプロセッサ50がらのメモリアクセス要求を処理し 、■10 データの存在を確認する。マイクロプロセッサ50は一つのメモリサ イクル中で最大で四つの命令を取り出し、別のメモリアクセスを要求する前に非 常に有用な作業を行うことができる。CPU 70の可変速度をIlo インタ ーフェース432 の固定速度から減結合することによって、それぞれが最適な 性能を達成することができる。CPU 70とインターフェース432 の再結 合はライン436 上のハンドシェーク信号によって行われ、データ/アドレス はバス90.136 を通過する。
DRAMチップに埋め込まれた非同期/同期CP■DRAM 311とCPII 314(図9)が同じダイに配置されるとき、システム性能はさらに増強される 。トランジスタの近接性はDRAj 311とCPU 314 のパラメータが 互いに密接に追従しあうことを意味する。室温では、CF’0314 が100 菖Hz で動作するだけではなく 、DIlAll 31.1はそれに対応する に十分な速度でアクセスする。Ilo インターフェース432 によって行わ れる同期はDll^とIlo ボートの読み出しおよび書き込みのためのもので ある。システムによっては(たとえば計算機のように) 170 同期を全く必 要としないものもあり、■10 クロックはリングカウンタクロツクに結合され る。
可変幅オペランド 多くのマイクロプロセッサは可変幅オペランドを提供する。マイクロプロセッサ 5oは同じ演算コードを用いて8.16、あるいは24ビツトのオペランドを処 理する。図20には32ビツト命令レジスタ108 と8ビツト命令を選択する 2ビツトマイクロ命令レジスタ180 を示す。二つのクラスのマイクロプロセ ッサ5oの命令は8ビツトより大きい場合がある。すなわち、ジャンプクラスと 即時クラスである。ジャンプあるいは即時演算コードは8ビツトであるが、オペ ランドの長さは8.16あるいは24ビツトである場合がある。これが起こりう るのは、オペラッドは命令レジスタ中で右寄せされなければならないためである 。これはオペランドの最下位ビットが常に命令レジスタの最下位ビットに位置す ることを意味する。マイクロ命令カウンタ180 は実行すべき8ビツト命令を 選択する。ジャンプあるいは即時命令が復号されると、2ビツトマイクロ命令カ ウンタの状態が必要な8.16、あるいは24ビツトのオペランドをデータバス のアドレス上に選択する。選択されなかった8ビツトバイトには復号器440  とゲート442 の動作によってゼロがロードされる。
この技術の利点は他のマイクロプロセッサ中の異なるオペランドサイズを指定す るのに必要な演算コードの数を節約できることである。
二倍長スタックキャッシュ コンピュータの性能はシステムメモリの帯域幅に直接関係している。メモリが高 速であるほどコンピュータも高速である。高速メモリは高価であり、したがって 少量の高速メモリをそれが必要とされるメモリアドレスに移動させる技術が開発 されている。多量の低速メモリが高速メモリによって恒常的に更新され、それに よって大きな高速メモリアレーの外観を呈している。この技術の一般的な実施態 様は高速メモリキャッシュとして知られている。このキャッシュはメモリアクセ スの衝撃を和らげる高速で動作するショックアブソーバと考えることができる。
ショックを吸収できる以上のメモリが必要とされるとき、これは底をつき低速メ モリがアクセスされる。
大半のメモリ動作はこのショックアブソーバ自体で処理することができる。
マイクロプロセッサ50のアーキテクチャは上部の二つのスタック位置76およ び78に直接結合されたALU 80 (図2)を育する。したがってスタック 74のアクセス時間はプロセッサの実行速度に直接影響を及ぼす。マイクロプロ セッサ50のスタックアーキテクチャは図21に示す二倍長キャッシュ技術に特 に適しており、この二倍長キャッシュ技術はオンチップラッチ450 の速度で 動作する大きなスタックメモリの外観を呈する。ラッチ450 はこのチップ上 に設けられる最高速の形態のメモリ素子であり、わずか3 n5ecでデータを 送る。しかし、ラッチ450 は多数のトランジスタを必要とする。オンチップ RAM 452 はラッチよす少ないトランジスタしか要しないが、速度は5分 の1である( 15nsecアクセス)。オフチップRA11150 は最も低 速の記憶装置である。マイクロプロセッサ50はスタックメモリの階層を三つの 相互接続されたスタック450.452 および454 として組織する。ラッ チスタック450 は最高速であり、最も頻繁に用いられる。オンチップRAI [スタック452 がその次である。オフチップRAII スタック454が最 低速である。スタック変調はスタックの有効アクセス時間を決定する。一群のス タック動作が決してスタック上の四つ以上の連続する項目をブブンユもプルもし ない場合、動作は3 n5ecのラッチスタック内ですべて行われる。四つのラ ッチ456 がすべていっばいになったとき、ラッチスタック450 の下部に あるデータはオンチップRAII スタック452の上部に書き込まれる。オン チップR1スタック452 中の16の位置458 がいっばいのとき、オンチ ップRAM スタック452 の下部にあるデータはオフチップRAIII ス タック454 の上部に書き込まれる。
いっばいのスタック450 からデータを取り出すとき、ラッチスタックポイン タ462 からのスタック空きライン460がオンチップR1スタック452  からのデータを転送する前に四回の取り出しが行われる。より低速のオンチップ RAM アクセスを行う前にラッチスタック450 が空になるのを待つことに よって、ラッチ456 の高い有効速度がプロセッサに利用可能となる。オンチ ップRA夏スタック452 とオフチップRAII スタック454 に同じ方 法が用いられる。
多項式発生命令 多項式はエラー修正、暗号化、データ圧縮、およびフラクタルの発生に有用であ る。多項式は一連のシフトおよび排他的論理和動作によって発生する。従来技術 ではこの目的のために特殊なチップが設けられる。
マイクロプロセッサ50はALU 80の動作の態様を少し変更することによっ て外部ハードウェアを用いることなく高速で多項式を発生することができるa図 21に示すように、多項式は“順序° (フィードバック環としても知られる) をCレジスフ4フ0 にロードすることによって発生する。値31 (32の繰 り返しが起こる)がダウンカウンタ472 にロードされる。レジスタ474  にゼロがロードされる。レジスタ476 には開始多項式値がロードされる。多 項式命令が実行されると、Cレジスタ4.70 がBレジスタ476 の最下位 ビットが1である場合、Aレジスタ474 で排他的論理和を取られる。あるい は、Aレジスタ474 の内容が変更されずに^LU 80を通過する。このA とBの組合せは次にシフタ478 と480 で右シフトされる(2で割られる )。この動作が指定された繰り返し数だCす自動的に繰り返され、その結果得ら れる多項式がAレジスタ474 に残る。
高速乗算 はとんどのマイクロプロセッサは+6 X 16あるいは32X32の乗算命令 を提供する。乗算は順次1ビツトあたり1ンフト/加算を要する、あるいは32 ビツトのデータに対して32サイクルを要する。マイクロプロセッサ50は少な いサイクル数を用いて小さな数による乗算を可能とする高速乗算を提供する。図 23はこの高速アルゴリズムの実施に用いるロジックを示す。乗算を行うには、 乗数のサイズ−1がダウンカウンタ472 に入れられる。4ビツトの乗数に対 しては数3がダウンカウンタ472 に記憶される。Aレジスタ474 にゼロ がロードされる。この乗数はビット反転してBレジスタ476 に書き込まれる 。たとえば、ビット反転された5 (21iIでは(1101)がBに】O】0 として書き込まれる。被乗数がCレジスタ470 に書き込まれる。高速乗算命 令を実行すると、計数が終了したときAレジスタ474 にその結果が残る。こ の高速乗算命令は多くのアブリケーノヨンにおいて一つの数をそれよりはるかに 小さい数でスケーリングするという点で重要である。32 X 32ビツトの乗 算と32×4ビツトの乗算の間の速度の差は8倍である。乗数の最下位ビットが °1゛である場合、Aレジスタ474 とCレジスタ470 の内容が加算され る。乗数の最下位ビットが°O”である場合、Aレジスタ474 の内容が変更 されずにAL[I 80を通過する。
AL[l 80の出力は繰り返しのたびにシフタ482 によって左ソフトされ る。Bレジスタ476 の内容は繰り返しのたびにシフタ480 によって右シ フトされる。
命令実行の考え方 マイクロプロセッサ50は速度が重要である領域のほとんどにおいて高速Dラッ チを用いている。低速のオンチップRAM は二次記憶装置として用いられてい る。
マイクロプロセッサ50の命令実行の考え方は次のような速度の階層を作成する ことにある。
ロジックおよびDラッチ転送 1サイクル 20nsec計算 2サイクル 4 0osec 取り出し/記憶オンチップRA11 2サイクル 40nsec現在のRAS  ページにおける 取り出し/記憶 4サイクル 80nsecRAS サイクルでの 取り出し/記憶 ]【サイクル220nsec5011Hzクロツクでは、多く の動作を20nsecで行うことができ、他のほとんどすべての動作を40ns ecで行うことができる。
速度を最大化するために、プロセッサ設計におけるある種の技術が用いられた。
それには次のものが含まれる。
アドレスに関する算術演算の排除、 1メモリサイクルあたり最大円つの命令取り出し、バイブラインを用いない命令 復号、・ 必要となる前に結果を発生すること、 3レベルのスタックキャッシングの使用バイブラインの考え方 コンビ二−タ命令は通常たとえば取り出し、復号、レジスタ読み出し、実行、お よび記憶というような順次の断片に細分化される。各断片には一つのマシンサイ クルを要する。大半の低減命令セットコンピュータ(RISC)チップにおいて 、命令は3サイクルから6サイクルを要する。
RISC命令は非常に並列的である。たとえば、5PARC(Sun Comp uterのRISCチップ)の70の異なる命令はそれぞれが5サイクルを有す る。°バイブライニング°と呼ばれる技術を用いて、連続する命令の異なる段階 を重ねることができる。
バイブライニングを理解するために5軒の家屋を建てる場合を考えてみる。それ ぞれの家屋には基礎工事、かまち組、建て入れおよび配線、屋根ぶき、および内 装工事を順次行わなければならない。それぞれの工事に一週間かかるものとする 。1軒の家屋を建てるには5週間必要である。
しかし、各部分全体を作りたい場合はどうであろうか。
それぞれの作業に従事する作業員グループは一つずつであるが、基礎工事を行う グループが1軒目を終えたときすぐに彼らに2軒目に着工させることができる、 他も同様である。5週間後には1軒目が完成しており、さらに5軒分の基礎工事 がすでに終わっている。かまち組、建て入れおよび配線、屋根ぶき、内装工事を 行う各作業員をすべて作業させていた場合、5週間目以降は毎週1軒ずつ新しい 家が完成することになる。
5PARC等のR3ICチップはこのような方法で一つの命令を一つのマシンサ イクル中に実行する。実際には、RISCチップは各マシンサイクルで五つの命 令のうちの5分の1を実行する。そしてこの五つの命令が順に行われる場合、そ れぞれのマシンサイクルで一つの命令が完了する。
バイブラインの問題点はパイプを命令でいっばいにしておけるかどうかというこ とである0分岐や呼び出しといったシーケンス外の命令が発生するたびに、パイ プを次のシーケンスで再度機たさなければならない。この結果生じるバイブライ ンを再充填するための無駄時間は、IF/THEN/F、LSEの文あるいはサ ブルーチンが多数発生する場合にはかなり大きくなる。
バイブライン法 マイクロプロセッサ50はこのようなバイブラインは持っていない。速度を上げ るためにこのマイクロプロセッサので用いている方法は、命令取り出しを前に取 り出された命令の実行に重ねて行うというものである。これによって命令(最も 一般的なもの)の半分以上が20nsecの単一のマシンサイクル中に完全に実 行される。これが可能なのは次の理由による。
1、 命令復号は2.5nsec で終了する。
2− 増分/減分された値および他の数値はそれらが必要になる前に計算され、 その実行にはラッチング信号を要するのみである。
3、 低速のメモリは4nsec でアクセスする高速Dラッチによる高速動作 から隠されている。
チップの設計がより複雑であるとき、このマイクロプロセッサには問題がある。
このチップのユーザーにとっての利点はバイブラインの停止が起こりえないこと から最終的なスルーブツトがより高速になることである。使用可能性フラグビッ トを用いたバイブラインの同期やその他の同様なバイブライン処理はこのマイク ロプロセッサには不要である。
たとえば、RISCマンンの中には状態ビットをテストする命令が前の命令によ ってセットされたフラグがテスト可能になるまで最大で4サイクル待たなければ ならないものもある。ハードウェアおよびソフトウエアデバツギングもいくぶん 簡単である。それはユーザーがバイブ中で五つの命令を同時に見る必要がないた めである。
重複する命令取り出し/実行 マイクロプロセッサ50が実行する処理手順の中で再低速のものはメモリへのア クセスである。メモリはデータが読み出されるか書き込まれるときにアクセスさ れる。
メモリはまた命令が取り出されるとき読み出される。マイクロプロセッサ50は 次の命令の取り出しを前に取り出された命令の実行の背後に隠すことができる。
マイクロプロセッサ50は命令を4バイトの命令グループとして取り出す。一つ の命令グループは一つから四つの命令を含むことができる。命令グループの実行 に要する時間量は簡単な命令の場合の4サイクルから乗算の場合の64サイクル までの範囲に及ぶ。
新しい命令グループが取り出されると、マイクロプロセッサの命令復号器がその 四つのバイトすべての最上位ビットを見る。命令の最上位ビットがメモリアクセ スが必要であるかどうかを決定する。例えば、呼び出し、取り出し、および記憶 はすべてメモリアクセスの実行を必要とする。四つのバイトすべてが非ゼロの最 上位ビットを有する場合、マイクロプロセッサは次の4ノくイト命令グループの メモリ取り出しを開始する。グループ中の最後の命令の実行が終了すると、次の 4バイトの命令グループが実行可能であり、データバス上で待機しており、命令 レジスタにラッチされるのを待つばかりとなっている。
この4バイトの命令グループの実行に四つ以上のサイクルを要し、次の順次のア クセスがカラムアドレスストローブ(CAS )サイクルであった場合、この命 令取り出しは完全に実行と重複している。
内部アーキテクチャ マイクロプロセッサ50のアーキテクチャは以下のものからなる。
パラメータスタック−Yレジスタ ^LUI リターンスタック −32ビ ッ ト − −32ビ ッ ト −16デイープ 16デイープ 数理および論理演算に サブルーチンと割込みリター使用。 ンアドレスおよび ローカル 変数に使用。
後入れ先出しスタック、、t&入れ先出しスタック。
オフチップRA蓋への オフチップRAII へのオーバーフローが可能。 オ ーバーフローが可能。
スタックのトップに関しア クセス可能。
ループカウンタ(32ビツト、2で増分可能)テストおよびループ命令のクラス で使用。
Xレジスタ(32ビツト、4で増分あるいは減分可能)RA11位置の指示に使 用。
プログラムカウンタ(32ビツト、4で増分)RAM 中の4バイト命令グルー プ。
命令レジスタ(32ビツト) 4バイトの命令グループが復号あるいは実行されている間それをホールドする。
*数理および論理演算にはオペランドとしてトップ項目およびトップの次のパラ メータスタック項目を用いる。その結果はパラメータスタック上にブブンユされ る。
本サブルーチンからのリターンアドレスがリターンスタックに載せられる。Yレ ジスタはRA11位置へのポインタとして用いられる。Yレジスタはリターンス タックのトップ項目であるため、インデックスのネスティングは簡単である。
モード−モードおよび状態ビット付きレジスタモード−ビット −“1”の場合メモリアクセスを8だけ減速する。
“0”の場合全速で実行。(低速EPROMへのアクセス用に設けられる。) −“1°の場合システムクロブクを1023で割って電力消費を低減する。“O oの場合全速で実行。(このビットがセットされている場合オンチップカウンタ は減速する。) 一外部割込み1をイネーブルする。
−外部割込み2をイネーブルする。
−外部割込み3をイネーブルする。
−外部割込み4をイネーブルする。
−外部割込み5をイネーブルする。
−外部割込み6をイネーブルする。
−外部割込み7をイネーブルする。
オンチップメモリ位置。
モード−ビット DIIA −ポインタ DM^ −カウンタ スタック−ポインタ −パラメータスタックへのポインタ。
スタック−深さ一オンチップパラメータスタックの深さ。
Rスタック−ポインターリターンスタックへのポインタ。
Rスタック−深さ一オンチップリターンスタックの深さ。
アドレス指定モード高ポイント データバスの幅は32ビツトである。メモリ取り出しおよびメモリ記憶はすべて 32ビツトである。メモリバスアドレスは30ビツトである。最下位の2ビツト はある種のアドレス指定モードにおいて4バイトのうちの1バイトの選択に用い られる。プログラムカウンタ、Xレジスタ、およびYレジスタはDラッチとして 実施され、その出力はメモリアドレスバスとバス増分器/減分器に行く。これら のレジスタのうちの一つの増分は迅速に発生可能である。これは増分された値が すでに増分/減分ロジックを介してリップルされており、ラッチにクロックする だけでよい。分岐および呼び出しは32ビツトワード境界で32ビツト命令フオ ーマツト 32ビット命令ハcALL、 BRANCH5BRANC[I−IP−ZERO lLOOP−IF−NOT−DONEである。これらの命令は有効アドレスの計 算を必要とする。多くのコンピュータにおいて、有効アドレスは現在のプログラ ムカウンタに対してオペランドを加算あるいは減算することによって計算される 。この数理演算を行うには4から7のマシンサイクルを要し、マシンの実行を確 実に停滞させてしまう。このマイクロプロセッサの方法は必要な数理演算をアセ ンブル時あるいはリンキング時に実行しまたランタイムにおいてはるかに簡単な “次のページへの増分1あるいは“前のページへの減分゛動作を行う。その結果 、このマイクロプロセッサは一つのサイクル中に実行を分岐する。
24ビツトオペランド形式: %式% 24ビットオペランドで、現在のページはプログラムカウンタの上位6ビツトに よって定義される。
16ビツトオペランド形式。
QQQQQQQQ −WWWWWW XI −YYYYYYYY −YYYYY YYY16ビツトオベランドで、現在のページはプログラムカウンタの上位14 ビツトによって定義される。
8ビツトオペラッド形式・ QQQQQQQQ −QQQQQQQQ −10WWW XX −YYYYYY YY8ビットオペランドで、現在のページはプログラムカウンタの上位22ビツ トによって定義される。
QQQQQQQQ−任意の8ビット命令vvvvwv −命令演算コード XX−アドレスビットの使用方法を選択:00 −すべての上位ビットをゼロに する(ページゼロアドレス指定) 01 −上位ビットを増分する(次のページを使用)IO=上位ビットを減分す る(前のページを使用)11 −上位ビットを変更しない(現在のページを使用 ) YYYYYYYY−アドレスオペランドフィールド。このフィールドは常に2ビ ツト左シフトされ(バイトアドレスではなくワードを発生し)、プログラムカウ ンタにロードされる。マイクロプロセッサ命令復号器はこの四つのバイト内の命 令演算コードの位置によってこのオペランドフィールドの幅を計算する。
コンパイラあるいはアセンブラは通常所望のアドレスに到達するのに必要な最短 のオペランドを用い、先行バイトが他の命令をホールドするのに用いることがで きるようにしている。有効アドレスは次のものを組み合わせることによって計算 される。
現在のプログラムカウンタ、 命令中の8.16、あるいは24ビツトアドレスオペランド、四つの可能なアド レス指定モードのうちの一つを用いる。
有効アドレス計算の例 例1゜ バイト1 バイト2 バイト3 バイト4QQQQQQQQ QQQQQQQQ  00000011 10011000バイト1および2の°QQQQQQQQ  ”は呼び出し命令の前に二つの他の命令の実行をホールドすることのできる4 バイトメモリ取り出し中のスペースを示す。バイト3は(11ビツトで示される )現在のページ内の呼び出し命令(000000)を示す。バイト4は16進歎 98がプログラムカウンタのビット2からビット10に入れられることを示す。
(呼び出しあるいは分岐は常にワード境界に向かい、したがって、二つの最下位 ビットは常にゼロにセットされる。ンこの命令の効果は現在のページのワード位 置16進数98においてサブルーチンを呼び出すことである。プログラムカウン タの上位22ビツトは現在のページを定義し、変更されない。
例2 バイト1 バイト2 バイト3 バイト4プログラムカウンタが16進数000 00156であったと匠定すると、これは2値で表すと次の通りである。
00000000 00000000 00000001 01010110  −古いプログラムカウンタ バイト1は分岐命令の演算コード(000001)を示し、また°0ビは次のペ ージの選択を表す。バイト2.3、および4はアドレスオペランドである。これ らの24ビツトは左に二つシフトされ、ワードアドレスを定義する。16進数0 156を左に二つシフトすると16進数0558になる。これは24ビツトオペ ランド命令であるため、プログラムカウンタの上位6ビツトは現在のページを定 義する。これらの6ビツトは増分されて次のページを選択する。この命令を実行 すると、プログラムカウンタに16進数04000558がロードされる。これ は2値で表すと次の通りである。
00000100 00000000 00000101 01011000− 新しいプログラムカウンタ 命令 CALL−LONG 000000XX −YYYYYYYY−YYYYYYYY−YYYYYYYY プログラムカウンタに指定された有効ワードアドレスをロードする。現在のPC 内容をリターンスタック上にブツシュする。
他の効果 桁あげあるいはモード、効果なし。オンチップリターンスタックがい っばいである場合、リターンスタックが外部メモリサイクルを強制する。
RANCH 000001XX −YYYYYYYY−YY、YYYYYY−YYYYYYY Yプログラムカウンタに指定された有効ワードアドレスをロードする。
他の効果 なし 000010XX −YYYYYYYY−YYYYYYYY−YYYYYYYY パラメータスタック上のトップ値をテストする。この値がゼロに等しいとき、プ ログラムカウンタに指定された有効ワードアドレスをロードする。トップ値がゼ ロに等しくないとき、プログラムカウンタを増分し、次の命令を取り出し実行す る。
他の効果 なし LOOP−IF−NOT−DONE oooo 11YY−(XXXX XXXX)−(XXXX XXXX)−(X XXX XXXX)ループカウンタがゼロでない場合、プログラムカウンタに指 定された有効ワードアドレスをロードする。ル−プカウンタがゼロである場合、 ループカウンタを減分し、プログラムカウンタを増分し、次の命令を取り出し実 行する。
他の効果 なし 8ビツト命令の考え方 マイクロプロセッサ50中の作業のほとんどは8ビツト命令によって行われる。
このマイクロプロセッサで8ビツト命令が可能であるのは、暗示スタックアドレ ス指定を多く用いているためである。32ビツトアーキテクチヤの多くは実行す べき動作の指定に8ビツトを用いるが、二つの出所と一つの行先を指定するには 別の24ビツトを用数理演算および論理演算に関しては、マイクロプロセッサ5 0は出所オペランドをトップスタック項目および次のスタック項目として指定す ることによって、スタック(こ固有の利点を生かしている。数理演算および論理 演算が行われ、オペランドがスタックから取り出され、結果がスタックに戻され る。この結果命令ビットおよびレジスタを非常に有効に活用することができる。
このような状況がHevlett Packard の計算機(これはスタック を用し)る)とスタックを用いないTexas Instrumentの計算機 の間に存在する。HP製品での同じ動作をするとTIの場合のキーストロークの 乙か区のキーストロークしか要しない。
8ビツト命令を利用できることで、さらに別のアーキテクチャ上の技術革新が可 能となる。すなわち、単一の32ビツトメモリサイクルでの四つの命令の取り出 しである。複数命令取り出しの利点は次の通りである。
低速メモリを用いても高い実行速度が得られる。
賓用をかけずにHarvard (別のデータバスおよび命令バス)と同様の性 能が得られる。
命令のグループを最適化する機会がある。
このミニキャッシュ内でループを行うことができる。
四つの命令グループ内部のマイクロループは探索とブロック移動に有効である。
スキップ命令 マイクロプロセッサ50は4バイト命令グループと呼ばれる32ビツトのかたま りの中の命令を取り出す。これらの四つのバイトは四つの8ビツト命令あるいは 8ビツト、16ビツトあるいは24ビツトの命令が混合したものを含む場合があ る。マイクロプロセッサ中のスキップ命令は4倍と命令グループ中の残りの命令 すべてをスキップして次の4バイト命令グループを得るメモリ取り出しを発生さ せる。条件つきスキップを3バイト分岐と組み合わせると条件つき分岐が作成さ れる。またスキップはある4命令グループ中の残りのバイトを使用することがで きない状況でも用いることができる。スキップは一つのサイクルで実行され、三 つのll0Pのグループは三つのサイクルを要する。
5LIP−ALWAYS−この4バイト命令グループ中の残りのいかなる命令も スキップする。プログラムカウンタの最上位の30ビツトを増分し、次の4バイ ト命令グループの取り出しに進む。
S[IP−IF−ZERO−パラメータスタックのトップ項目がゼロである場合 、4バイト命令グループ中の残りのいかなる命令もスキップする。プログラムカ ウンタの最上位の30ビツトを増分し、次の4バイト命令グループの取り出しに 進む。トップ項目がゼロでない場合、次の順次命令を実行する。
5KIP−IF−POSIT[E−パラメータスタックのトップ項目が°0′に 等しい最上位ビット(符号ビット)を有する場合、4バイト命令グループ中の残 りのいかなる命令もスキップする。プログラムカウンタの最上位の30ビツトを 増分し、次の4バイト命令グループの取り出しに進む。トップ項目が“0′でな い場合、次の順次命令を実行する。
Sにl−4F−No−CARRY−ソフトあるいは算術演算からの桁あげフラグ が“1”に等しくない場合、4バイト命令グループ中の残りのいかなる命令もス キップする。プロプログラムカウンタの最上位の30ビツトを増分し、次の4バ イト命令グループの取り出しに進む。桁あげが“1゛に等しい場合、次の順次の 命令を実行する。
5HIP−NEVER−次の順次の命令を実行する(lマシンサイクル遅延する )、。
S[IP−IF−NOτ−ZER(1−パラメータスタックのトップ項目が“O oに等しくない場合、4バイト命令グループ中の残りのいかなる命令もスキップ する。プログラムカウンタの最上位の30ビツトを増分し、次の4バイト命令グ ループの取り出しに進む。トップ項目が°0”に等5IIP−IF−NEGAT rVE−パラメータスタックのトップ項目の最上位ビット(符号ビット)″が“ 1′にセットされている場合、4バイト命令グループ中の残りのいかなる命令も スキップする。プログラムカウンタの最上位の30ビツトを増分し、次の4バイ ト命令グループの取り出しに進む。トップ項目の 最上位ビット(符号ビット) が“0°にセットされている場合、次の順次命令を実行する。
S[H’−IF−CARRY −ソフトあるいは算術演算の結果桁あげフラグが “1”にセットされている場合、4バイト命令グループ中の残りのいかなる命令 もスキップする。
プログラムカウンタの最上位の 30ビツトを増分し、次の4バイト命令グルー プの取り出しに進む。桁あげフラグが“0°である場合、次の順次命令を実行す る。
マイクロループ マイクロループはこのマイクロプロセッサアーキテクチャに特有の機能であり、 4バイト命令中での制御されたルーピングを可能とする。マイクロループ命令は ループカウンタが“0°であるかどうかをテストし、また別のテストを行うこと もできる。ループカウンタが“0゛でなく、またテストに合格した場合、4バイ ト命令グループの第1の命令に対して命令実行が継続され、ループカラ/りは減 分される。マイクロループ命令は通常4バイト命令グループの最終バイトである が、これは任意のバイトとすることができる。ループカウンタが“0°である、 あるいはテストに合格しない場合、次の命令に対して命令実行が継続される。マ イクロループ命令が通常4バイト命令グループの最終バイトである場合、プログ ラムカウンタの最上位の 30ビツトが増分され、次の4バイト命令グループが メモリから取り出される。“0”に等しいループカウンタ上のループが終了する と、ループカウンタは°0°にとどまる。マイクロループは移動や探索といった 短い繰り返し作業をメモリからの取り出し命令を減速することなく行うことを可 能にする。
例・ バイトl FETC[141A−X−AUTOINCREIIENTバイト2  5TORE−VIA−Y−AUTO[CREi[ENTバイト3 [ILOOP −σIITIL−DONEバイト4 QQQQQQQQ この例はブロック移動を行う。転送を開始するにはXに出所の開始アドレスがロ ードされる。Yには行先の開始アドレスがロードされる。ループカウンタには移 動すべき32ビツトワードの数がロードされる。このマイクロループはそれがゼ ロに達するまで取り出しと記憶を行いループカウンタをカウントダウンする。Q QQQQQQQはいかなる命令も続きうろことを意味する。
マイクロループ命令 [ILOOP−UNTIL−DONE−ループカウンタが“0+でない場合、4 バイト命令グループ中の第1の命令について実行を継続する。ループカウンタを 一減分する。ループカウンタが°0”である場合、次の命令の実行を継続する。
ULOOP−IF−ZERO−ループカウンタが0°でなく、パラメータスタッ クのトップ項目が°0°である場合、4バイト命令グループ中の1!1の命令に ついて実行を継続する。ループカウンタを減分する。ループカウンタが“Ooで ある場合、あるいはトップ項目が°1′である場合、次の命令の実行を継続する 。
[ILOOP−IF−POSITIVE−に−ブカウンタが”0” でなく、最 上位ビット(符号ビット)が+0+である場合、4バイト命令グループ中の第1 の命令について実行を継続する。ループカウンタを減分する。ループカウンタが 0”である場合、あるいはトップ項目が“1°でウンタを減分する。ループカウ ンタが“O”である場プログラムカウンタに記憶する。
RETURN−IF−NEGATIVE −/< ラJ−クスタックノトップ項 目プログラムカウンター通常4バイト命令グループを指示するのに用いられる3 0ビツトメモリポインタ。外部メモリはPCに対するアドレスでアクセスするこ とができる。オペランドは他のコンピュータでは°即時°あるいは“直定数′と 呼ぶこともある。メモリポインタとして用いられるときは、各動作の後PCも増 分される。
メモリロードおよび記憶命令 FETCfl−4IA−X −Xによって指示された32ビツトメモリの内容を 取り出し、それをパラメータスタック上にブツシュする。Xは変更されない。
FETCH41A−Y −Yによって指示された32ビツトメモリの内容を取り 出し、それをパラメータスタック上にブツシュする。Yは変更されない。
FETCII−VIA−X−ATITOIMCREIENT −X +ニー ヨ ッテ指示された32ビツトメモリの内容を取り出し、それをパラメータスタック 上にブツシュする。取り出しの後、Xの最上位ノコ0ビツトを増分し、次の32 ビツトワードアドレスを指示する。
FETCH−VIA−Y−A(ITOINCREIENT −Y I−ヨッテ指 示された32ビツトメモリの内容を取り出し、それをパラメータスタック上にブ ツシュする。取り出しの後、Yの最上位の30ビツトを増分し、次の32ビツト ワードアドレスを指示する。
FETCH−VIA−1−AClTQDECREIEIIT X l: ヨッテ 指示された32ビツトメモリの内容を取り出し、それをパラメータスタック上に ブツシュする。取り出しの後、Xの最上位の30ビツトを減分し、前の32ビツ トワードアドレスを指示する。
FE丁Cll4rA−Y−AUTODECREl[ENT −Yによって指示さ れた32ビツトメモリの内容を取り出し、それをパラメータスタック上にブツシ ュする。取り出しの後、Yの最上位の30ビツトを減分し、前の32ビツトワー ドアドレスを指示する。
5TORE−41A−X −パラメータスタックのトップ項目を取り出し、それ をXによって指示された記憶場所に記憶する。Xは変更されない。
5TORE−マIA−Y −パラメータスタックのトップ項目を取り出し、それ をYによって指示された記憶場所に記憶する。Yは変更されない。
5TORE4IA−X−A[ITOINCRll[ENT −/< 5 / − 9Xタックノドツブ項目を取り出し、それをXによって指示された記憶場所に記 憶する。記憶の後、Xの最上位の30ビツトを増分し、次の32ビツトワードア ドレスを指示する。
5TORE−マIA−Y−AUTOINCREIIENT −パラメータスタッ クのトップ項目を取り出し、それをYによって指示された記憶場所に記憶する。
記憶の後、Yの最上位の30ビツトを増分し、次の32ビツトワードアドレスを 指示する。
5TORE−4IA−X−A[1TODECREIIENT −ハラ) −97 ,9ツクノドツブ項目を取り出し、それをXによって指示された記憶場所に記憶 する。記憶の後、Xの最上位の30ビツトを減分し、次の32ビツトワードアド レスを指示する。
5TORE−VIA−Y−A[1TODECREIIENT −ハラメ−9xタ ックノドツブ項目を取り出し、それをYによって指示された記憶場所に記憶する 。記憶の後、Yの最上位の30ビツトを減分し、次の32ビツトワードアドレス を指示する。
FETCトVIA−PC−プログラムカウンタによって指示された32ビツトメ モリの内容を取り出し、それをパラメータスタック上にブツシュする。取り出し の後、プログラムカウンタの最上位の30ビツトを増分し、次の32ビツトワー ドアドレスを指示する。
本性:この命令が実行されるとき、PCはこの命令に続く記憶場所を指示してい る。これには32ビット即時オペランドをローディングする効果がある。これは 8ビツト命令であり、したがって4バイト命令取り出し中に他の8ビツト命令と 結合される。ひとつの4バイト命令取り出しで一つから四つまでのFETC[I −VIA−PC命令を持つことができる。 PCはFETCH−マIA−PCが 実行されるたびに増分し、したがってスタック上に即時オペランドをブツシュす ることが可能である。この四つのオペランドはこの命令に続く四つの記憶場所で 発見される。
BYTE−FETCH41A−4−X )最上位17130ビツトによって指示 された32ビツトメモリの内容を取り出す。Xの二つの最下位ビットを用いて3 2ビットメモリ取り出しからの四つのバイトのうちの一つを選択し、そのバイト を32ビツトフイールドで右寄せし、選択されたバイトを前に先行ゼロを付けて パラメータスタック上にブツシュする。
BYTESTORE4IA−X −X ノ最上位ノ30ビットによって指示され た32ビツトメモリの内容を取り出す。パラメータスタックからトップ項目を取 り出す。Xの二つの最下位ビットを用いて最下位バイトを32ビツトメモリデー タに入れ、その32ビツトのエンティティXの最上位の30ビツトによって指示 された場所に書き込む。
メモリアクセス命令の他の効果 いかなる取り出し命令もある値をパラメータスタック74上にブツシュする。オ ンチップスタックがいっばいである場合、このスタックはオフチップメモリスタ ックにオーバーフローし、その結果メモリサイクルが増える。
いかなる記憶命令もパラメータスタック74からある値を取り出す。オンチップ スタックが空である場合、オフチップメモリスタックから値を取り出すためのメ モリサイクルが生成される。
オンチップ変数の処理 高レベル言語はローカル変数の作成の可能であるものが多い。これらの変数は特 定の作業手順に用いられ放棄される。ネスティングされた作業手順の場合には、 これらの変数の層を維持しなければならない。オンチップ記憶装置はオフチップ RAII より最大で5倍高速であり、したがってローカル変数をチップ上に維 持する手段があれば動作をより高速にすることができる。マイクロプロセッサ5 0はローカル変数のオンチップ記憶、およびリターンスタックを介した複数レベ ルの変数のネスティングの両方の能力を提供する。
リターンスタック134 は16のオンチップRAM 位置として実施される。
リターンスタック134 の最も一般的な用途はサブルーチンおよび割込み呼び 出しからのリターンアドレスを記憶することである。このマイクロプロセッサは これらの16の位置をアドレス指定可能なレジスタとして用いることを可能にす る。これらの16の位置は0−15からのリターンスタック関連アドレスを示す 二つの命令によって読み出しおよび書き込みすることができる。高レベル作業手 順がネスティングされると、現在の作業手順変数が前の作業手順変数をさらにリ ターンスタック134 にブツシュする。最後に、リターンスタックはオフチッ プ!IAII に自動的にオーバーフローする。
オンチップ変数命令 READ−LOCAL−vARIABLE XXXX−リターンスタックノトツ プに対してXXXX番目の位置を読み出す(XXXXは0000−1111の2 値の数である)、この項目読み出しをパラメータスタックにブツシュする。
他の効果、パラメータスタックがいっばいである場合、このブツシュ動作はスタ ックの1項目が外部RAII に自動的に記憶されるとき一つのメモリサイクル を発生させる。この位置を選択するロジックはモジュロ16減算を行う。四つの ローカル変数がすでにリターンスタック上にブツシュされており、ある命令が5 番目の項目を読み出そうとする場合、未知のデータが返される。
W RI T E −L OCA L −V A、 RI A B L E X  X X X −IJツタ−スタックノドツブ項目を取り出し、それをリターン スタックのトップに対してXXX1番目の位置に書き込む。(XXXXはooo o−1111の2値の数である)。
他の効果 パラメータスタックが空である場合、このポツプ動作は外部RAM  からパラメータスタック項目を取り出すためのメモリサイクルを発生させる。こ の位置を選択するロジックはモジュロ16減算を行う。四つのローカル変数がす でにリターンスタック上にブツシュされており、ある命令が5番目の項目への書 き込みを行おうとする場合、リターンアドレスを破壊する、あるいは他の大きな 破壊が発生する可能性がある。
レジスタおよびフリップ70ツブ転送およびブツシュ命令 DROP−パラメータスタックからトップ項目を取り出しそれを放棄する。
5vAp−トップパラメータ位置のデータをネクストパラメータスタックのデー タと交換する。
DUP−パラメータスタックのトップ項目を複製し、それをパラメータスタック 上にブツシュする。
PUSH−LOOP−COUNTER−ループカウンタ中の値をパラメータスタ ック上にブツシュする。
POP−RSTACI−P[lS[1−TO−S丁ACに一リターンスタックか らトップ項目を取り出し、それをパラメータスタック上にブツシュする。
P[l5H−X−REG −Xレジスタ中の値をパラメータスタック上にブツシ ュする。
PUSH−5TACK−POINTER−パラメータスタックの値をパラメータ スタック上にブツシュする。
PUSB−RSTACK−POINTER−リターンスタックの値をリターンス タック上にブツシュする。
P[lS[1−MoDE−BITS−モードレジスタの値をパラメータスタック 上にブツシュする。
PUSB−INF[IT −10の専用入力ビットを読み出し、その値(右寄せ され先行ゼロが加えられる)をパラメータスタック上にブツシュする。
5ET−LOOP−CO[INTER−パラメータスタックからトップ項目を取 り出し、それをループカウンタに記憶する。
POP−3TACK−P[l5H−TO−RSTACI−パラメータスタックか らトップ項目を取り出し、それをリターンスタックにブツシュする。
5ET−X−REG −パラメータスタックからトップ項目を取り出し、それを Xレジスタに記憶する。
5ET−3TACに−POIIITER−パラメータスタックからトップ項目を 取り出し、それをスタックポインタに記憶する。
5ET−RSTACI−POINTER−パラメータスタックからトップ項目を 取り出し、それをリターンスタックポインタに記憶する。
SET−MODE−BITS−パラメータスタックからトップ値を取り出し、そ れをモードピットに記憶する。
5ET−0[ITPOT−パラメータスタックからトップ項目を取り出し、それ をlOの専用出力ビットに出力する。
他の効果:パラメータスタックあるいはリターンスタックをブツシュする、ある いは取り出す命令はスタックがオンチップメモリとオフチップメモリの間でオー バーフローするときメモリサイクルを発生させることがある。
短い改定数のローディング レジスタ転送命令の特殊なケースが8ビツト直定数をパラメータスタック上にブ ツシュするのに用いられる。
この命令はこのブツシュすべき8ビツトが4バイト命令グループの最終バイトに あることを必要とする。直定数をロードするこの命令の演算コードは命令グルー プ中の他の三つのバイトのうちのいずれにあってもよい。
例 バイト1 バイト2 バイト3 LOAD−3[1ORT−LITERAL QQQQQQQQ QQQQQQQ Qバイト4 この例ではQQQQQQQQは任意の他の8ビツト命令を示す。
バイト1が実行されるときバイト4からの2値00001111(16進数のO f)がパラメータスタック上にブツシュされる(右寄せされ先行ゼロが付けられ る)。次にバイト2とバイト3の命令が実行される。マイクロプロセッサの命令 復号器はバイト4を実行しないことを知っている。
三つの同じ8ビツトの値を次のようにブツシュすることが可能である。
バイト1 バイト2 LOAD−SlloR丁−LITERAL LOAD−3IIORT−LITE RALバイト3 バイト4 LOAD−5!l0RT−LITERAL 00001111SHORT−LI TERAL−INSTRUCT丁0NLOAD−SIIORT−LITERAL −現在の4バイト命令グループのバイト4で発見した8ビツトの値をパラメータ スタック上にブツシュする。
ロジック命令 論理演算および数理演算ではスタックを一つあるいは二つのオペランドの出所用 に、また結果の行先として用いた。スタックの構成は式の評価に特に便利な構成 になっている。トップはパラメータスタック74のトップの値を示す。ネクスト はパラメータスタック74のトップの値の次の値を示す。
AND −パラメータスタックからトップとネクストを取り出し、これらの二つ のオペランドに論理積演算を行いその結果をパラメータスタック上にブツシュす る。
OR−パラメータスタックからトップとネクストを取り出し、これらの二つのオ ペランドに論理和演算を行い、その結果をパラメータスタック上にブツシュする 。
XOR−パラメータスタックからトップとネクストを取り出し、これらの二つの オペランドに排他的論理和演算を行い、その結果をパラメータスタック上にブツ シュする。
BIT−CLEAR−パラメータスタックからトップとネクストを取り出し、ネ クストのすべてのビットをトグルし、トップに論理積演算を行い、その結果をパ ラメータスタック上にブツシュする(この命令を理解する別の方法としては、こ れをネクストにセットされたトップの中のすべてのビットをクリアするものと考 えることである)。
数理命令 数理命令はオペランドとして用いるためにパラメータスタック74のトップ項目 とトップの次の項目を取り出す。
その結果はパラメータスタックにブツシュされる。桁あげフラグがAL口結果の ゛33番目のビット′をラッチするのに用いられる。
ADD −パラメータスタックからトップ項目とトップの次の項目を取り出し、 その値を加算し、その結果をパラメータスタックにブツシュする。桁あげフラグ を変更することもできる。
ADD−WITII−CARRY−パラメータスタックからトップ項目とトップ の次の項目を取り出し、その値を加算する。桁あげフラグが“1°である場合、 その結果を増分する。
最終結果をパラメータスタックにブツシュする。桁あげフラグを変更することも できる。
ADD−X−パラメータスタックからトップ項目を取り出し、パラメータスタッ クのトップから三番目の項目を読み出す。その値を加算し、その結果をパラメー タスタックにブツシュする。桁あげフラグを変更することもできる。
iB −パラメータスタックからトップ項目とトップの次の項目を取り出す。ト ップからネクストを引き、その結果をパラメータスタックにブツシュする。桁あ げフラグを変更することもできる。
S[IB−VIT[1−CARRY−パラメータスタックからトップ項目とトッ プの次の項目を取り出す。トップからネクストを引く。桁あげフラグが“1”で ある場合、その結果を増分する。最終結果をパラメータスタックにブツシュする 。桁あげフラグを変更することもできる。
UB−X SIGNED4ULT−STEP− UNSIGNED−11[ILT−STEP−SIGNED−FAST−麗11 LT−FAST−11[ILT−3TEP− UNSIGNED−DIiSTEP− GENERATE−POLYNOIIINAL−0UND− COl[PARE−パラメータスタックからトップ項目とトップの次の項目を取 り出す。トップからネクストを引く。
その結果が“O′に等しい最上位ビットを有する(結果は正である)場合、その 結果をパラメータスタックにブツシュする。その結果が“1”に等しい最上位ビ ットを有する(結果は負である)場合、トップの古い値をパラメータスタックに ブツシュする。桁あげフラグが影響されることもある。
5HIFT/ROTATE SHIFT−LEFT−トップパラメータスタック項目を左に1ビツトシフトす る。桁あげフラグはトップの最下位ビットにシフトされる。
S!IIFT−RIG[IT −トップパラメータスタック項目を右に1゜ビッ トシフトする。トップの最下位ビットが桁あげフラグにシフトされる。ゼロがト ップの最上位ビットにシフトされる。
DOUBLE−5HIFT−LEFT −パラメータスタックのトップ項目を6 4ビツト数の最上位ワードとして、ネクストスタック項目を最下位ワードとして 扱うと、結合された64ビツトのエンティティは左に1ビツトシフトされる。桁 あげフラグはネクストの最下位ビットにソフトされる。
DO[IBLE−3HIFT−RIGHT−パラメータスタックのトップ項目を 64ビツト数の最上位ワードとして、ネクストスタック項目を最下位ワードとし て扱うと、結合された64ビツトのエンティティは右に1ビツトシフトされる。
ネクストの最下位ビットは桁あげフラグにシフトされる。
ゼロはトップの最上位ビットにシフトされる。
他の命令 FLUSH−5TACK −すべてのオンチップパラメータスタック位置をオフ チップRAII に移す(この命令は多重タスク化アブリケーノヨンに有用であ る)。この命令はオンチップスタックの深さを保持するカウンタにアクセスし、 0から16までの外部メモリサイクルを要することがある。
FLUSH−R5TACK−すべてのオンチップリターンスタック位置をオフチ ップRAMに移す(この命令は多重タスク化アプリケージJンに有用である)、 この命令はオフチップリターンスタックの深さを保持するカウンタにアクセスし 、0から16までの外部メモリサイクルを要することがある。
当該技術に精通するものにはここに図示し説明したこの発明の態様および細部に さまざまな変更を加えうろことは明らかであろう。かかる変更は添付クレームの 精神と範囲に含まれるものである。
FIG、−2 FIG、J FIG、J FIG、J !− ト 1−一 レノスタアレー 計算スタック FIG、15 FIG、16 外部メモリバス FIG、−17 32ヒツト命令レンスタ 制御信号 FIG、20 FIG、21 国際調査!11先 I内−卸・−4^−^−N−押へ芯901042451AllIM+41nlA n’K11l@#H@、KTA!フ590104245

Claims (70)

    【特許請求の範囲】
  1. 1.中央処理装置、ダイナミックランダムアクセスメモリ、前記の中央処理装置 を前記のダイナミックランダムアクセスメモリに接続するバス、および前記の中 央処理装置と前記のダイナミックランダムアクセスメモリの間の前記のバス上の 多重化手段からなり、前記の多重化手段が前記のバス上に列アドレス、カラムア ドレスおよびデータを提供するように接続構成されたマイクロプロセッサシステ ム。
  2. 2.前記の多重化手段が前記のダイナミックランダムアクセスメモリに列アドレ スを提供するための複数のラッチを含む請求の範囲第1項に記載のマイクロプロ セッサシステム。
  3. 3.中央処理装置、メモリ、前記の中央処理装置を前記のメモリに接続するバス 、および前記のバス上の前記の中央処理装置のための命令を取り出すための前記 のバスに接続された手段からなり、前記の命令を取り出す手段が単一メモリサイ クル中で複数の順次命令を取り出すように構成されたマイクロプロセッサシステ ム。
  4. 4.前記の中央処理装置が算術論理装置と前記の算術論理装置に接続された第1 の後入れ先出しスタックを含み、前記の第1の後入れ先出しスタックが前記の算 術論理装置の第1の入力に接続されたトップ項目を記憶する手段と前記の算術論 理装置の第2の入力に接続されたネクスト項目を記憶する手段を含み、前記の算 術論理装置が前記のトップ項目を配憶する手段に接続された出力を有する請求の 範囲第3項に記載のマイクロプロセッサシステム。
  5. 5.さらに第2の後入れ先出しスタックを有し、前記のトップ項目を記憶する手 段が前記の第2の後入れ先出しスタックに入力を提供するように接続された請求 の範囲第4項に記載のマイクロプロセッサシステム。
  6. 6.前記第2の後入れ先出しスタックがレジスタファイルからなり、前記のトッ プ項目を配憶する手段と前記のレジスタファイルが双方向に接続された請求の範 囲第5項に記載のマイクロプロセッサシステム。
  7. 7.さらに前記の複数命令を取り出す手段によって取り出された複数命令がメモ リアクセスを必要とするかどうかを判定するための前記の複数命令を取り出す手 段に接続された手段からなり、前記の複数命令を取り出す手段が、この複数命令 がメモリアクセスを必要としない場合に追加の複数命令を取り出す請求の範囲第 3項に記載のマイクロプロセッサシステム。
  8. 8.前記のメモリを含む前記のマイクロプロセッサシステムが集積回路に収容さ れ、前記のメモリがダイナミックランダムアクセスメモリであり、前記の複数命 令を取り出す手段が複数命令を受け取るためのカラムラッチを含む請求の範囲第 3項に記載のマイクロプロセッサシステム。
  9. 9.さらに前記の命令を取り出す手段に接続された複数命令のための命令レジス タ、前記の命令レジスタから複数命令を連続して供給するための前記の命令レジ スタに接続された手段、複数命令を連続して供給するように前記の複数命令を供 給する手段を制御するように接続されたカウンタ、複数命令を供給する手段から 複数命令を連続して受けるように接続された複数命令を復号する手段からなり、 前記のカウンタが前記の復号手段から増分信号およびリセット制御信号を受ける ように前記の復号手段に接続され、前記の復号手段が複数命令中のスキップき命 に応答して、前記のカウンタにリセット制御信号を供給し、前記の命令を取り出 す手段に制御信号を供給するように構成された請求の範囲第4項に記載のマイク ロプロセッサシステム。
  10. 10.さらに前記の復号手段から減分制御信号を受けるように接続されたループ カウンタからなり、前記の復号手段が複数命令中のマイクロループ命令に応答し て、前記のカウンタにリセット制御信号を供給し、前記のループカウンタに減分 制御信号を供給するように構成された請求の範囲第9項に記載のマイクロプロセ ッサシステム。
  11. 11.さらに前記の命令取り出し手段に接続された複数命令のための命令レジス タ、前記の命令レジスタから複数命令を連続して供給するための前記の命令レジ スタに接続された手段、複数命令を連続して供給するために前記の複数命令を供 給する手段を制御するように接続されたカウンタ、複数命令を供給する手段から 複数命令を連続して受けるように接続された複数命令を復号する手段からなり、 前記のカウンタが前記の復号手段から増分信号およびリセット制御信号を受ける ように前記の復号手段に接続され、前記の復号手段が可変幅オペランドを用いた 命令に応答して前記のカウンタを制御するように構成され、さらに前記のカウン タに応答して可変幅オペランドを選択するために前記のカウンタに接続された手 段からなる請求の範囲第3項に記載のマイクロプロセッサシステム。
  12. 12.中央処理装置、ダイナミックランダムアクセスメモリ、前記の中央処理装 置を前記のダイナミックランダムアクセスメモリに接続するバス、前記のバスに 接続された命令を含むプログラム可能なリードオンリーメモリ、前記のバス上の 前記の中央処理装置のための命令を取り出すための前記のバスに接続された手段 からなり、前記の命令を取り出す手段が前記のプログラム可能なリードオンリー メモリからの複数の命令をアセンブルし、前記のダイナミックランダムアクセス メモリに複数の命令を記憶する手段を含むマイクロプロセッサシステム。
  13. 13.中央処理装置、直接メモリアクセス処理装置、メモリ、前記の中央処理装 置と前記の直接メモリアクセス処理装置を前記のメモリに接続するバスからなり 、前記のメモリが前記の中央処理装置と前記の直接メモリアクセス処理装置のた めの命令を含み、前記の直接メモリアクセス処理装置が前記のバス上の前記の中 央処理装置のための命令を取り出し、前記のバス上の前記の直接メモリアクセス 処理装置のための命令を取り出す手段を含むマイクロプロセッサシステム。
  14. 14.算術論理装置、前記の算術論理装置に接続された第1の後入れ先出しスタ ックからなり、前記の第1の後入れ先出しスタックが前記の算術論理装置の第1 の入力に接続されたトップ項目を記憶する手段と前記の算術論理装置の第2の入 力に接続されたネクスト項目を記憶する手段を含み、前記の算術論理装置が前記 のトップ項目を記憶する手段に接続された出力を有し、レジスタファイルを含み 、前記のトップ項目を記憶する手段が前記のレジスタファイルに入力を提供する ように接続されたマイクロプロセッサシステム。
  15. 15.前記のレジスタファイルが第2の後入れ先出しスタックからなり、前記の トップ項目を記憶する手段と前記のレジスタファイルが双方向に接続された請求 の範囲第14項に記載のマイクロプロセッサシステム。
  16. 16.検知回路とドライバ回路を含むマイクロプロセッサ、メモリ、および前記 のメモリ、前記の検知回路および前記のドライバ回路の間に接続された出力イネ ーブルラインからなり、前記の検知回路が前記の出力イネーブルラインが所定の 電気的レベルに達したとき作動可能信号を提供するように構成され、前記のマイ クロプロセッサが前記のドライバ回路が作動可能信号に応答して前記の出力イネ ーブルライン上にイネーブル信号を提供するように構成されたデータ処理システ ム。
  17. 17.所定の電気的レベルが所定の電圧である請求の範囲第16項に記載のデー タ処理システム。
  18. 18.前記のメモリがダイナミックランダムアクセスメモリである請求の範囲第 17項に記載のデータ処理システム。
  19. 19.中央処理装置と前記の中央処理装置に接続されたリングカウンタ可変速度 システムクにコックからなり、前記の中央処理装置と前記のリングカウンタ可変 速度システムクロックが単一の集積回路に設けられたマイクロプロセッサシステ ム。
  20. 20.さらに前記の入出力インターフエースと結合制御信号、アドレスおよびデ ータを交換するように接続された入出力インターフェースおよび前記の入出力イ ンターフエースに接続された前記のリングカウンタ可変速度システムクロックか ら独立した第2のクロックからなる請求の範囲第19項に記載のマイクロプロセ ッサシステム。
  21. 21.前記第2のクロックが固定周波数クロックである請求の範囲第20項に記 載のマイクロプロセツサシステム。
  22. 22.中央処理装置、メモリ、前記の中央処理装置を前記のメモリに接続するバ スからなり、前記の中央処理装置は算術論理装置と前記の算術論理装置に接続さ れた後入れ先出しスタックを含み、前記の後入れ先出しスタックが前記の算術論 理装置の第1の入力に接続されたトップ項目を記憶する手段と前記の算術論理装 置の第2の入力に接続されたネクスト項目を記憶する手段を含み、前記の算術論 理装置が前記のトップ項目を記憶する手段に接続された出力を有し、前記の後入 れ先出しスタックがラッチとして構成された第1の複数のスタック要素、ランダ ムアクセスメモリとして構成された第2の複数のスタック要素を有し、前記の第 1および第2の複数のスタック要素と前記の中央処理装置が単一の集積回路内に 投けられ、さらに前記の単一の集積回路の外部のランダムアクセスメモリとして 構成された第3の複数のスタック要素からなるマイクロプロセッサシステム。
  23. 23.さらに前記の第1の複数のスタック要素に接続された第1のポインタ、前 記の第2の複数のスタック要素に接続された第2のポインタ、および前記の第3 の複数のスタック要素に接続された第3のポインタからなり、前記の中央処理装 置が前記の第1の複数のスタック要素から項目を取り出すように接続され、前記 の第1のスタックポインタが前記の第1の複数のスタック要素が前記の中央処理 装置による連続的な取り出し動作のために空になったとき前記の第2の複数のス タック要素から第1の複数の項目を取り出すように前記の第2のスタックポイン タに接続され、前記の第2のスタックポインタが前記の第2の複数のスタック要 素が前記の中央処理装置による連続的な取り出し動作のために空になったとき前 記の第3の複数のスタック要素から第2の複数の項目を取り出すように前記の第 3のスタックポインタに接続された請求の範囲第22項に記載のマイクロプロセ ッサシステム。
  24. 24.中央処理装置からなり、前記の中央処理装置は算術論理装置、前記の算術 論理装置に第1の入力を供給するように接続された第1のレジスタ、前記の算術 論理装置の出力と第1のレジスタの間に接続された第1のシフタ、開始多項式値 を受け取るように接続された第2のレジスタを含み、前記の第2のレジスタの出 力は第2のシフタに接続され、前記の第2のレジスタの最下位ビットは前記の算 術論理装置に接続され、さらに前記の算術論理装置に多項式のフィードバック項 を供給するように接続された第3のレジスタ、前記の算術論理装置に接続された 生成される多項式の桁に対応する数をカウントダウンするためのダウンカウンタ からなり、前記の算術論理装置は、前記のダウンカウンタが計数を終了するまで 、多項式命令に応答して、前記の第2のレジスタの最下位ビットが“1”である 場合前記の第1のレジスタの内容に前記の第3の内容で排他的論理和を実行し、 また前記の第2のレジスタの最下位ビットが“0”である場合前記の第1のレジ スタの内容を透過させ、発生すべき多項式は前記の第1のレジスタで得られるマ イクロプロセッサシステム。
  25. 25.中央処理装置からなり、前記の中央処理装置は算術論理装置、前記の算術 論理装置に第1の入力を供給するように接続された結果レジスタ、前記の算術論 理装置の出力と前記の結果レジスタの間に接続された第1の左シフトシフタ、ビ ット反転された形式の乗数を受け取るように接続された乗数レジスタからなり、 前記の乗数レジスタの出力は第2の右シフトシフタに接続され、前記の第2のレ ジスタの最下位ビットが前記の算術論理装置に接続され、前記の算術論理装置に 被乗数を供給するように接続された第3のレジスタ、前記の算術論理装置に接続 され、乗数の桁数より1だけ小さい数に対応する数をカウントダウンするダウン カウンタを含み、前記の算術論理装置は前記のダウンカウンタが計数を終了する まで、乗算命令に応答して、前記の乗数レジスタの最下位ビットが“1”である 場合前記の結果レジスタの内容に前記の第3の内容を加算し、また前記の乗数の 最下位ビットが“0”である場合前記の結果レジスタの内容を変更せずに透過さ せ、その積は前記の第1のレジスタで得られるマイクロプロセッサシステム。
  26. 26.中央処理装置、ダイナミックランダムアクセスメモリ、前記の中央処理装 置と前記のダイナミックランダムアクセスメモリを接続するバス、および前記の 中央処理装置と前記のダイナミックランダムアクセスメモリの間の前記のバス上 の多重化手段からなり、前記の多重化手段が前記のバスに列アドレス、カラムア ドレスおよびデータを提供するように接続構成されており、さらに前記のバス上 の前記の中央処理装置のための命令を取り出すための前記のバスに接続された手 段を含み、前記の命令取り出し手段は単一のメモリサイクル中に複数の順次命令 を取り出すように構成されたマイクロプロセッサシステム。
  27. 27.前記の中央処理装置が算術論理装置と前記の算術論理装置に接続された第 1の後入れ先出しスタックからなり、前記の第1の後入れ先出しスタックが前記 の算術論理装置の第1の入力に接続されたトップ項目を配憶する手段と前記の算 術論理装置の第2の入力に接続されたネクスト項目を記憶すろ手段を含み、前記 の算術論理装置が前記のトップ項目を配憶する手段に接続された出力を有すろ請 求の範囲第26項に記載のマイクロプロセッサシステム。
  28. 28.さらに第2の後入れ先出しスタックを含み、前記のトップ項目を記憶する 手段が前記の第2の複入れ先出しスタックに入力を提供するように接続された請 求の範囲第27項に記載のマイクロプロセッサシステム。
  29. 29.前記の第2の後入れ先出しスタックがレジスタファイルを含み、前記のト ップ項目を配憶する手段と前記のレジスタファイルが双方向に接続された範囲第 28項に記載のマイクロプロセッサシステム。
  30. 30.さらに前記の複数命令を取り出す手段によって取り出された複数命令がメ モリアクセスを必要とするかどうかを判定すろための前記の複数命令を取り出す 手段に接続された手段からなり、前記の複数命令を取り出す手段が、この複数命 令がメモリアクセスを必要としない場合に追加の複数命令を取り出す請求の範囲 第29項に記載のマイクロプロセッサシステム。
  31. 31.前記のメモリを含む前記のマイクロプロセッサシステムが集積回路に収容 され、前記のメモリがダイナミックランダムアクセスメモリであり、前記の複数 命令を取り出す手段が複数命令を受け取るためのカラムラッチを含む請求の範囲 第30項に記載のマイクロプロセッサシステム。
  32. 32.さらに前記の命令を取り出す手段に接続された複数命令のための命令レジ スタ、前記の命令レジスタから複数命令を連続して供給するための前記の命令レ ジスタに接続された手段、複数命令を連続して供給するように前記の複数命令を 供給する手段を制御するように接続されたカウンタ、複数命令を供給する手段か ら複数命令を連続して受けるように接続された複数命令を復号する手段からなり 、前記のカウンタが前記の復号手段から増分信号およびリセット制御信号を受け ろように前配の復号手段に接続され、前記の復号手段が複数命令中のスキップ命 令に応答して、前記のカウンタにリセット制御信号を供給し、前記の命令を取り 出す手段に制御信号を供給するように構成された請求の範囲第30項に記載のマ イクロプロセッサシステム。
  33. 33.さらに前記の復号手段から減分制御信号を受けるように接続されたループ カウンタからなり、前記の復号手段が複数命令中のマイクロループ命令に応答し て、前記のカウンタにリセット制御信号を供給し、前記のループカウンタに減分 制御信号を供給するように構成された請求の範囲第32項に記載のマイクロプロ セッサシステム。
  34. 34.前記の復号手段が可変幅オペランドを用いた命令に応答して前記のカウン タを制御するように構成された請求の範囲第33項に記載のマイクロプロセッサ システムであって、前記のマイクロプロセッサシステムはさらに前記のカウンタ に応答して可変幅オペランドを選択するために前記のカウンタに接続された手段 からなる。
  35. 35.前記のバスに接続された命令を含むプログラム可能なリードオンリーメモ リ、前記のバス上の前記の中央処理装置のための命令を取り出すための前記のバ スに接続された手段からなり、前記の命令を取り出す手段が前記のプログラム可 能なりードオンリーメモリからの複数の命令をアセンブルし、前記のダイナミッ クランダムアクセスメモリに複数の命令を記憶する手段を含む請求の範囲第34 項に記載のマイクロプロセッサシステム。
  36. 36.さらに直接メモリアクセス処理装置、前記の直接メモリアクセス処理装置 を前記のダイナミックアクセスメモリに接続するバスからなり、前記のダダイナ ミックランダムアクセスメモリが前記の中央処理装置と前記の直接メモリアクセ ス処理装置のための命令を含み、前記の直接メモリアクセス処理装置が前記のバ ス上の前記の中央処理装置のための命令を取り出し、前記のバス上の前記の直接 メモリアクセス処理装置のための命令を取り出す手段を含む請求の範囲第35項 に記載のマイクロプロセツサシステム。
  37. 37.前記の中央処理装置が算術論理装置、前記の算術論理装置に接続さ札た第 1の後入れ先出しスタックを含み、前記の第1の後入れ先出しスタックが前記の 算術論理装置の第1の入力に接続されたトップ項目を配憶する手段と前記の算術 論理装置の第2の入力に接続されたネクスト項目を配憶する手段を含み、前記の 算術論理装置が前記のトップ項目を記憶する手段に接続された出力を有し、レジ スタファイルを含み、前記のトップ項目を記憶する手段が前記のレジスタファイ ルに入力を提供するように接続された請求の範囲第36項に記載のマイクロプロ セッサシステム。
  38. 38.前記のレジスタファイルが第2の後入れ先出しスタックからなり、前記の トップ項目を配憶する手段と前記のレジスタファイルが双方向に接続された請求 の範囲第37項に記載のマイクロプロセッサシステム。
  39. 39.請求の範囲第38項に記載のマイクロプロセッサシステムであって、前記 のマイクロプロセッサシステムが検知回路とドライバ回路、および前記のダイナ ミツクランダムアクセスメモリ、前記の検知回路および前記のドライバ回路の間 に接続された出力イネーブルラインを含み、前記の検知回路が前記の出力イネー ブルラインが所定の電気的レベルに達したとき作動可能信号を提供するように構 成され、前記のマイクロプロセッサシステムが前記のドライバ回路が作動可能信 号に応答して前記の出力イネーブルライン上にイネーブル信号を提供するように 構成されたマイクロプロセッサシステム。
  40. 40.所定の電気的レベルが所定の電圧である請求の範囲第39項に記載のマイ クロプロセッサシステム。
  41. 41.さらに前記の中央処置装置に接続されたリングカウンタ可変速度システム クロックからなり、前記の中央処理装置と前記のリングカウンタ可変速度システ ムクロックが単一の集複回路に設けられた請求の範囲第40項に記載のマイクロ プロセッサシステム
  42. 42.さらに前記の入出力インターフェースと結合制御信号、アドレスおよびデ ータを交換するように接続された入出力インターフエースおよび前記の入出力イ ンターフェースに接続された前記のリングカウンタ可変速度システムクロックか ら独立した第2のクロックからなる請求の範囲第41項に記載のマイクロプロセ ッサシステム。
  43. 43.前記第2のクロックが固定周波数クロックである請求の範囲第42項に記 載のマイクロプロセッサシステム。
  44. 44.前記の第1の後入れ先出しスタックがラッチとして構成された第1の複数 のスタック要素、ランダムアクセスメモリとして構成された第2の複数のスタッ ク要素を有し、前記の第1および第2の複数のスタック要素と前記の中央処理装 置が単一の集積回路内に設けられ、さらに前記の単一の集積回路の外部のランダ ムアクセスメモリとして構成された第3の複数のスタック要素を有すろ請求の範 囲第43項に記載のマイクロプロセッサシステム。
  45. 45.さらに前記の第1の複数のスタック要素に接続された第1のポインタ、前 記の第2の複数のスタック要素に接続された第2のポインタ、および前記の第3 の複数のスタック要素に接続された第3のポインタからなり、前記の中央処理装 置が前記の第1の複数のスタック要素から項目を取り出すように接続され、前記 の第1のスタックポインタが前記の第1の複数のスタック要素が前記の中央処理 装置による連続的な取り出し動作のために空になったとき前記の第2の複数のス タック要素から第1の複数の項目を取り出すように前記の第2のスタックポイン タに接続され、前記の第2のスタックポインタが前記の第2の複数のスタック要 素が前記の中央処理装置による連載的な取り出し動作のために空になったとき前 記の第3の複数のスタック要素から第2の複数の項目を取り出すように前記の第 3のスタックポインタに接続された請求の範囲第44項に記載のマイクロプロセ ッサシステム。
  46. 46.さらに前記の算術論理装置に第1の入力を供給するように接続された第1 のレジスタ、前記の算術論理装置の出力と前記の第1のレジスタの間に接続され た第1のシフタ、開始多項式値を受け取るように接続された第2のレジスタを含 み、前記の第2のレジスタの出力は第2のシフタに接続され、前記の第2のレジ スタの最下位ビットは前記の算術論理装置に接続され、さらに前記の算術論理装 置に多項式のフィードバック項を供給するように接続された第3のレジスタ、前 記の算術論理装置に接続された生成される多項式の桁に対応する数をカウントダ ウンするためのダウンカウンタからなり、前記の算術論理装置は、前記のダウン カウンタが計数を終了するまで、多項式命令に応答して、前記の第2のレジスタ の最下位ビットが“1”である場合前記の第1のレジスタの内容に前記の第3の 内容で排他的論理和を実行し、また前記の第2のレジスタの最下位ビットが“0 ”である場合前記の第1のレジスタの内容を通過させ、発生すべき多項式は前記 の第1のレジスタで得られる請求範囲第45項に記載のマイクロプロセッサシス テム。
  47. 47.前記の第1のレジスタが結果レジスタであり、前前記の第1のシフタが左 シフトシフタであり、前記の第2のレジスタはビット反転された形式の乗数を受 け取るように接続された乗数レジスタであり、前記の第2のレジスタは右シフト レジスタであり、前記の第3のレジスタは前記の算術論理装置に被乗数を供給す るように接続され、前記のダウンカウンタは乗数の桁数より1だけ小さい数に対 応する数をカウントダウンするように構成され、前記の算術論理装置は前記のダ ウンカウンタが計数を終了するまで、乗算命令に応答して、前記の第2の乗数レ ジスタの最下位ビットが“1”である場合前記の結果レジスタの内容に前記の第 3のレジスタの内容を加算し、また前記の第2のレジスタ最下位ビットが“0” である場合前記の第1のレジスタの内容を変更せずに通過させ、その積は前記の 第1のレジスタで得られる請求の範囲第46項に記載のマイクロプロセッサシス テム。
  48. 48.前記のマイクロプロセッサからなる単一の集積回路中のメイン中央処理装 置と別の直接メモリアクセス中央処理装置からなり、前記のメイン中央処理装置 は算術論理装置、前記の算術論理装置に入力を提供するように接続さ札たトップ 項目レジスタとネクスト項目レジスタ付きの第1の後入れ先出しスタックを存し 、前記の算術論理装置の出力は前記のトップ項目レジスタに接続され、前記のト ップ項目レジスタはまた内部データパスに入力を提供するように接続され、前記 の内部データパスはループカウンタに双方向に接続され、前記のループカウンタ は減分器に接続され、前記の内部データバスはスタックポインタ、リターンスタ ックポインタ、モードレジスタ、および命令レジスタに双方向に接続され、前記 の内部データバスはメモリコントローラ、リターン後入れ先出しスタックのYレ ジスタ、Xレジスタおよびプログラムカウンタに接続され、前記のYレジスタ、 Xレジスタおよびプログラムカウンタは内部アドレスバスヘの出力を提供し、前 記の内部アドレスバスは前記のメモリコントローラと増分器への入力を提供し、 前記の増分器は前記の内部データバスに接続され、前記の直接メモリアクセス中 央処理装置は前記のメモリコントローラに入力を提供し、前記のメモリコントロ ーラはアドレス/データバスとランダムアクセスメモリヘの接続のための複数の 制御ラインを有するマイクロプロセッサ。
  49. 49.前記のメモリコントローラが前記の中央処理装置と前記のアドレス/デー タバスの間に多重化手段を含み、前記の多重化手段は前記のアドレス/データバ ス上に列アドレス、カラムアドレスおよびデータを提供するように接続構成され る請求の範囲第48項のマイクロプロセッサ。
  50. 50.前記のメモリコントローラが前記のアドレス/データバス上の前記の中央 処理装置のための命令を取り出す手段を含み、前記の命令を取り出す手段が単一 のメモリサイクル中に複数の順次命令を取り出すように構成された請求の範囲第 48項に記載のマイクロプロセッサ。
  51. 51.さらに前記の命令を取り出す手段によって取り出された複数命令がメモリ アクセスを必要とするかどうかを判定するための前記の命令取り出し手段に接続 された手段からなり、前記の命令取り出し手段が、この複数命令がメモリアクセ スを必要としない場合に追加の複数命令を取り出す請求の範囲第50項に記載の マイクロプロセッサ。
  52. 52.前記のマイクロプロセッサとダイナミックランダムアクセスメモリが単一 の集積回路に収容され、前記の命令取り出し手段が複数命令を受け取るためのカ ラムラッチを含む請求の範囲第50項に記載のマイクロプロセッサ。
  53. 53.請求の範囲第48項に記載のマイクロプロセッサであって、前記のマイク ロプロセッサが検知回路とドライバ回路、および前記のダイナミックランダムア クセスメモリ、前記の検知回路および前記のドライバ回路の間の接続のための出 力イネーブルラインを含み、前記の検知回路が前記の出力イネーフルラインが所 定の電気的レベルに達したとき作動可能信号を提供するように構成され、前記の マイクロプロセッサが前記のドライバ回路が作動可能信号に応答して前記の出力 イネーブルライン上にイネーブル信号を提供すろように構成されたマイクロプロ セッサ。
  54. 54.さらに前記のメイン中央処理装置に接続されたリングカウンタ可変速度シ ステムクロックを含み、前記のメイン中央処理装置と前記のリングカウンタ可変 速度システムクロック段が単一の集積回路中に設けられる請求の範囲第48項に 記載のマイクロプロセッサ。
  55. 55.前記のメモリコントローラが前記のメイン中央処理装置と結合制御信号、 アドレスおよびデータを交換するように接続された入出力インターフエースを含 み、さらに前記のマイクロプロセッサが前記の入出力インターフエースに接続さ れた前記のリングカウンタ可変速度システムクロックから独立した第2のクロッ クを含む請求の範囲第54項に記載のマイクロプロセッサ。
  56. 56.前記の第1の後入れ先出しスタックがラッチとして構成された第1の複数 のスタック要素、ランダムアクセスメモリとして構成された第2の複数のスタッ ク要素を奇し、前記の第1および第2の複数のスタック要素と前記の中央処理装 置が単一の集積回路内に設けられ、さらに前記の単一の集積回路の外部のランダ ムアクセスメモリとして構成された第3の複数のスタック要素を有する請求の範 囲第48項に記載のマイクロプロセッサ。
  57. 57.さらに前記の第1の複数のスタック要素に接続された第1のポインタ、前 記の第2の複数のスタック要素に接続された第2のポインタ、および前記の第3 の複数のスタック要素に接続された第3のポインタからなり、前記の中央処理装 置が前記の第1の複数のスタック要素から項目を取り出すように接続され、前記 の第1のスタックポインタが前記の第1の複数のスタック要素が前記の中央処理 装置による連続的な取り出し動作のために空になったとき前記の第2の複数のス タック要素から第1の複数の項目を取り出すように前記の第2のスタックポイン タに接続され、前記の第2のスタックポインタが前記の第2の複数のスタック要 素が前記の中央処理装置による連続的な取り出し動作のために空になったとき前 記の第3の複数のスタック要素から第2の複数の項目を取り出すように前記の第 3のスタックポインタに接続された請求の範囲第56項に記載のマイクロプロセ ッサ。
  58. 58.マイクロプロセッサシステムにおいて、メモリからそれぞれ第1の複数の ビットを有する命令を取り出す方法であって、第1の複数のビットの倍数を構成 する第2の複数のビットを有する命令レジスタを提供し、単一のメモリサイクル 中で複数の順次命令の第1のセットを取り出し、この複数の順次命令を命令レジ スタに記憶し、この複数の命令がメモリアクセスを必要とするかどうかを判定し 、複数の命令の第1のセットがメモリアクセスを必要としない場合複数の命令の 第1のセットの実行中に複数の命令の第2のセットを取り出す方法。
  59. 59.複数の順次命令の一部がスキップ命令に応じてスキップされる請求の範囲 第58項に記載の方法。
  60. 60.複数の順次命令の一部がマイクロループ命令に応じて所定の回数繰り返さ れる請求の範囲第58項に記載の方法。
  61. 61.さらに前記の可変幅オペランドと命令レジスタ中の可変幅オペランドを利 用して命令を記憶するステップ、命令が可変幅オペランドを利用しているかどう かを制定するステップ、および可変幅オペランドを利用した命令に応答した前記 の命令レジスタからの出力に対してオペランドの幅を選択すろステップを含む請 求の範囲第58項に記載の方法。
  62. 62.さらにリ−ドオンリ−メモリに複数の命令を記憶するステップ、この複数 の命令から選択された命令を取り出すステップ、複数の順次命令をアセンブルす るステップ、およびこの複数の順次命令を取り出す前にこの複数の順次命令をラ ンダムアクセスメモリに記憶するステップを含む請求の範囲第58項に記載の方 法。
  63. 63.出力イネーブルラインでメモリに接続されたマイクロプロセッサにおいて 、イネーブル信号をいつ前記のメモリに送ることができるかを判定する方法であ って、前記の出力イネーブルライン上で所定の電気的レベルを検知し、この所定 の電気的レベルに応じて前記の出力ライン上にイネーブル信号を提供する方法。
  64. 64.所定の電気的レベルが電圧である請求の範囲第63項に記載の方法。
  65. 65.マイクロプロセッサ集積回路において、このマイクロプロセッサをクロッ クする方法であって、それぞれが製造上の変動によって同様に変動する動作特性 を有する複数のトランジスタを有するリングカウンタシステムクロックとマイク ロプロセッサを製作し、このマイクロプロセッサをクロックすろのにこのリング カウンタシステムクロックを使用する方法。
  66. 66.さらにこのマイクロプロセッサ集積回路用の入出力インターフエースを提 供するステップ、この入出力インターフエースをリングカウンタシステムクロッ クから独立した第2のクロックでクロックするステップを含む請求の範囲第65 項に記載の方法。
  67. 67.第2のクロックが固定周波数クロックである請求の範囲第66項に記載の 方法。
  68. 68.マイクロプロセッサシステムにおいて後入れ先出しスタックを動作させる 方法であって、がラッチとして構成された第1の複数のスタック要素、ランダム アクセスメモリとして構成された第2の複数のスタック要素を提供し、第1およ び第2の複数のスタック要素をマイクロプロセッサとともに単一の集積回路内に 設け、この単一の集積回路の外部のランダムアクセスメモリとして構成された第 3の複数のスタック要素を提供し、後入れ先出しスタックに項目を記憶させ、第 2の複数のスタック要素にアクセスすることなく第1の複数のスタック要素から 第1の複数の項目を取り出し、第1の複数のスタック要素が空であるときは第2 の複数のスタック要素から第1の複数の項目を取り出し、第3の複数のスタック 要素にアクセスすることなく第2の複数のスタック要素から第2の複数の項目を 取り出し、第2の複数のスタック要素が空であるときは第3の複数のスタック要 素から第2の複数の項目を取り出す方法。
  69. 69.多項式を生成する方法であって、開始多項式値を提供し、この多項式のフ ィードバック項を右シフトし、開始多項式値の最下位ビットが“1”であるか“ 0”であるかを判定し、開始多項式値の最下位ビットが“1”である場合、多項 式のシフトされたフィードバック項に多項式のフィードバック項で排他的論理和 を実行し、開始多項式値の最小位ビットが“0”である場合、多項式のシフトさ れたフィードバック項を右シフトし、以上の動作を生成すべき多項式の桁数に等 しい総回数だけ繰り返す方法。
  70. 70.乗算を行う方法であって、乗数、被乗数および“0”を提供し、乗数の最 下位ビットが“1”であるか“0”であるかを判定し、被乗数と“0”を加算し 被乗数の最下位ビットが“1”である場合その和を左シフトし、開始多項式値の 最小位ビットが“0”である場合、“0”を記憶して部分的な結果を与え、乗数 を右シフトして右シフトされた乗数を与え、始めの動作を行った後は乗数の代わ りに右シフトされた乗数を用い、与えられた“0”の代わりに部分的な結果を用 いて以上の動作を繰り返し、この部分的な結果と被乗数の和あるいは通過した部 分的結果を左シフトし、この動作を乗数の桁数より1小さい数に等しい回数だけ 繰り返して所望の積を与える方法。
JP2511130A 1989-08-03 1990-08-02 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 Expired - Lifetime JP2966085B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/389,334 US5440749A (en) 1989-08-03 1989-08-03 High performance, low cost microprocessor architecture
US389,334 1989-08-03

Publications (2)

Publication Number Publication Date
JPH05502125A true JPH05502125A (ja) 1993-04-15
JP2966085B2 JP2966085B2 (ja) 1999-10-25

Family

ID=23537828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2511130A Expired - Lifetime JP2966085B2 (ja) 1989-08-03 1990-08-02 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法

Country Status (6)

Country Link
US (7) US5440749A (ja)
EP (2) EP0786730B1 (ja)
JP (1) JP2966085B2 (ja)
AU (1) AU6067290A (ja)
DE (1) DE69033568T2 (ja)
WO (1) WO1991002311A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157973A (en) * 1996-10-24 2000-12-05 Mitsubishi Denki Kabushiki Kaisha Microcomputer having memory and processor formed on the same chip to increase the rate of information transfer
JP2009527809A (ja) * 2006-02-16 2009-07-30 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー 入力ソースから直接の命令の実行

Families Citing this family (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04293124A (ja) * 1991-03-20 1992-10-16 Hitachi Ltd データ処理プロセッサ
US5659797A (en) * 1991-06-24 1997-08-19 U.S. Philips Corporation Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
DE69308548T2 (de) * 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
JPH06150023A (ja) * 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータ及びマイクロコンピュータシステム
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
JP3904244B2 (ja) * 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US5535417A (en) * 1993-09-27 1996-07-09 Hitachi America, Inc. On-chip DMA controller with host computer interface employing boot sequencing and address generation schemes
JPH07152721A (ja) * 1993-11-29 1995-06-16 Mitsubishi Electric Corp マイクロコンピュータ
US7167993B1 (en) 1994-06-20 2007-01-23 Thomas C Douglass Thermal and power management for computer systems
US5752011A (en) 1994-06-20 1998-05-12 Thomas; C. Douglas Method and system for controlling a processor's clock frequency in accordance with the processor's temperature
JP3693367B2 (ja) * 1994-07-28 2005-09-07 富士通株式会社 積和演算器
US6735683B2 (en) 1994-09-14 2004-05-11 Hitachi, Ltd. Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements
US5590078A (en) * 1994-10-07 1996-12-31 Mukesh Chatter Method of and apparatus for improved dynamic random access memory (DRAM) providing increased data bandwidth and addressing range for current DRAM devices and/or equivalent bandwidth and addressing range for smaller DRAM devices
US5611068A (en) * 1994-12-27 1997-03-11 Motorola, Inc. Apparatus and method for controlling pipelined data transfer scheme between stages employing shift register and associated addressing mechanism
EP0870226B1 (en) * 1995-10-06 2003-05-21 Patriot Scientific Corporation Risc microprocessor architecture
US5603047A (en) * 1995-10-06 1997-02-11 Lsi Logic Corporation Superscalar microprocessor architecture
US5815673A (en) * 1996-03-01 1998-09-29 Samsung Electronics Co., Ltd. Method and apparatus for reducing latency time on an interface by overlapping transmitted packets
JPH1091443A (ja) * 1996-05-22 1998-04-10 Seiko Epson Corp 情報処理回路、マイクロコンピュータ及び電子機器
GB9613538D0 (en) * 1996-06-27 1996-08-28 Switched Reluctance Drives Ltd Matrix interpolation
US5774694A (en) * 1996-09-25 1998-06-30 Intel Corporation Method and apparatus for emulating status flag
JPH10112199A (ja) * 1996-10-03 1998-04-28 Advantest Corp メモリ試験装置
US6697931B1 (en) * 1996-10-31 2004-02-24 Stmicroelectronics Limited System and method for communicating information to and from a single chip computer system through an external communication port with translation circuitry
FR2762424B1 (fr) * 1997-04-17 2003-01-10 Gemplus Card Int Carte a puce avec compteur, notamment compteur d'unite ou de gratifications, et procede de mise en oeuvre
WO1999009469A1 (en) * 1997-08-18 1999-02-25 Koninklijke Philips Electronics N.V. Stack oriented data processing device
US6314513B1 (en) * 1997-09-30 2001-11-06 Intel Corporation Method and apparatus for transferring data between a register stack and a memory resource
US6263401B1 (en) 1997-09-30 2001-07-17 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for transferring data between a register stack and a memory resource
US5958039A (en) * 1997-10-28 1999-09-28 Microchip Technology Incorporated Master-slave latches and post increment/decrement operations
US5938744A (en) * 1997-11-04 1999-08-17 Aiwa/Raid Technlogy, Method for managing multiple DMA queues by a single controller
US6065131A (en) * 1997-11-26 2000-05-16 International Business Machines Corporation Multi-speed DSP kernel and clock mechanism
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
US6148391A (en) * 1998-03-26 2000-11-14 Sun Microsystems, Inc. System for simultaneously accessing one or more stack elements by multiple functional units using real stack addresses
US6088787A (en) * 1998-03-30 2000-07-11 Celestica International Inc. Enhanced program counter stack for multi-tasking central processing unit
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
WO2000017770A1 (de) * 1998-09-23 2000-03-30 Infineon Technologies Ag Programmgesteuerte einheit
EP0992881A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. A processor
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
JP2001084138A (ja) * 1999-09-13 2001-03-30 Mitsubishi Electric Corp 半導体装置
USD463095S1 (en) 1999-12-30 2002-09-24 Maxworld, Inc. Bag portion with convex circular pocket
US7085914B1 (en) * 2000-01-27 2006-08-01 International Business Machines Corporation Methods for renaming stack references to processor registers
US7284064B1 (en) 2000-03-21 2007-10-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
JP2001331341A (ja) * 2000-05-19 2001-11-30 Fujitsu Ltd マイクロコンピュータ
US6816750B1 (en) * 2000-06-09 2004-11-09 Cirrus Logic, Inc. System-on-a-chip
KR100348275B1 (ko) * 2000-07-28 2002-08-09 엘지전자 주식회사 유기 el 구동 제어회로
US6868505B2 (en) * 2000-08-07 2005-03-15 Dallas Semiconductor Corporation Memory exchange
US20020069402A1 (en) * 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
GB2367653B (en) 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
GB2367654B (en) 2000-10-05 2004-10-27 Advanced Risc Mach Ltd Storing stack operands in registers
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US7275254B1 (en) 2000-11-21 2007-09-25 Intel Corporation Method and apparatus for determining and displaying the service level of a digital television broadcast signal
GB2369464B (en) 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7076771B2 (en) 2000-12-01 2006-07-11 Arm Limited Instruction interpretation within a data processing system
AU2002232642B2 (en) * 2000-12-12 2007-02-01 Lexicon Pharmaceuticals, Inc. Novel human kinases and uses thereof
US20020108064A1 (en) * 2001-02-07 2002-08-08 Patrick Nunally System and method for optimizing power/performance in network-centric microprocessor-controlled devices
GB2376098B (en) * 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
GB2376099B (en) * 2001-05-31 2005-11-16 Advanced Risc Mach Ltd Program instruction interpretation
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
GB2376097B (en) 2001-05-31 2005-04-06 Advanced Risc Mach Ltd Configuration control within data processing systems
DE10131084A1 (de) * 2001-06-27 2003-01-09 Klaus Schleisiek Vorrichtung zur Datenverarbeitung
US6625716B2 (en) 2001-06-28 2003-09-23 Intel Corporation Method apparatus, and system for efficient address and data protocol for a memory
DE10133913A1 (de) * 2001-07-12 2003-01-30 Infineon Technologies Ag Programmgesteuerte Einheit
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US8943540B2 (en) 2001-09-28 2015-01-27 Intel Corporation Method and apparatus to provide a personalized channel
US20030212878A1 (en) * 2002-05-07 2003-11-13 Chen-Hanson Ting Scaleable microprocessor architecture
US8244622B2 (en) * 2002-06-05 2012-08-14 The Nasdaq Omx Group, Inc. Order matching process and method
US7895112B2 (en) * 2002-06-05 2011-02-22 The Nasdaq Omx Group, Inc. Order book process and method
US9311673B2 (en) * 2002-06-05 2016-04-12 Nasdaq, Inc. Security transaction matching
JP3698123B2 (ja) * 2002-06-25 2005-09-21 セイコーエプソン株式会社 情報処理装置及び電子機器
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US7519990B1 (en) 2002-07-19 2009-04-14 Fortinet, Inc. Managing network traffic flow
US7131118B2 (en) * 2002-07-25 2006-10-31 Arm Limited Write-through caching a JAVA® local variable within a register of a register bank
EP1387253B1 (en) * 2002-07-31 2017-09-20 Texas Instruments Incorporated Dynamic translation and execution of instructions within a processor
US7760039B2 (en) * 2002-10-15 2010-07-20 Marvell World Trade Ltd. Crystal oscillator emulator
US20060267194A1 (en) * 2002-10-15 2006-11-30 Sehat Sutardja Integrated circuit package with air gap
US7768360B2 (en) * 2002-10-15 2010-08-03 Marvell World Trade Ltd. Crystal oscillator emulator
US7148763B2 (en) * 2002-10-15 2006-12-12 Marvell World Trade Ltd. Integrated circuit including processor and crystal oscillator emulator
US20060113639A1 (en) * 2002-10-15 2006-06-01 Sehat Sutardja Integrated circuit including silicon wafer with annealed glass paste
US7791424B2 (en) * 2002-10-15 2010-09-07 Marvell World Trade Ltd. Crystal oscillator emulator
US7042301B2 (en) * 2002-10-15 2006-05-09 Marvell International Ltd. Crystal oscillator emulator
GB2399897B (en) * 2003-03-26 2006-02-01 Advanced Risc Mach Ltd Memory recycling in computer systems
US7051306B2 (en) 2003-05-07 2006-05-23 Mosaid Technologies Corporation Managing power on integrated circuits using power islands
JP2005049970A (ja) * 2003-07-30 2005-02-24 Renesas Technology Corp 半導体集積回路
US7118352B2 (en) * 2003-09-17 2006-10-10 Oil-Rite Corporation Hydraulic metering device
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US7227383B2 (en) * 2004-02-19 2007-06-05 Mosaid Delaware, Inc. Low leakage and data retention circuitry
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7930526B2 (en) 2004-03-24 2011-04-19 Arm Limited Compare and branch mechanism
US7802080B2 (en) 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7350059B2 (en) * 2004-05-21 2008-03-25 Via Technologies, Inc. Managing stack transfers in a register-based processor
US7730335B2 (en) 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
US7788427B1 (en) 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
US20070083785A1 (en) * 2004-06-10 2007-04-12 Sehat Sutardja System with high power and low power processors and thread transfer
US20080140921A1 (en) * 2004-06-10 2008-06-12 Sehat Sutardja Externally removable non-volatile semiconductor memory module for hard disk drives
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7617359B2 (en) * 2004-06-10 2009-11-10 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US20050289329A1 (en) * 2004-06-29 2005-12-29 Dwyer Michael K Conditional instruction for a single instruction, multiple data execution engine
US7346759B1 (en) 2004-08-06 2008-03-18 Xilinx, Inc. Decoder interface
US7546441B1 (en) 2004-08-06 2009-06-09 Xilinx, Inc. Coprocessor interface controller
US7590823B1 (en) 2004-08-06 2009-09-15 Xilinx, Inc. Method and system for handling an instruction not supported in a coprocessor formed using configurable logic
US7243212B1 (en) 2004-08-06 2007-07-10 Xilinx, Inc. Processor-controller interface for non-lock step operation
US7590822B1 (en) 2004-08-06 2009-09-15 Xilinx, Inc. Tracking an instruction through a processor pipeline
US7200723B1 (en) 2004-08-06 2007-04-03 Xilinx, Inc. Access to a bank of registers of a device control register interface using a single address
GB2418272A (en) * 2004-09-17 2006-03-22 Marconi Comm Ltd Processor arrangement having a stack memeory
US20060095719A1 (en) * 2004-09-17 2006-05-04 Chuei-Liang Tsai Microcontroller having partial-twin structure
US7406592B1 (en) * 2004-09-23 2008-07-29 American Megatrends, Inc. Method, system, and apparatus for efficient evaluation of boolean expressions
CN1300676C (zh) * 2004-10-27 2007-02-14 上海大学 堆栈区域扩充方法
US7375597B2 (en) 2005-08-01 2008-05-20 Marvell World Trade Ltd. Low-noise fine-frequency tuning
US7852098B2 (en) * 2005-08-01 2010-12-14 Marvell World Trade Ltd. On-die heating circuit and control loop for rapid heating of the die
US7872542B2 (en) * 2005-08-01 2011-01-18 Marvell World Trade Ltd. Variable capacitance with delay lock loop
GB2430052A (en) * 2005-09-07 2007-03-14 Tandberg Television Asa CPU with a buffer memory directly available to an arithmetic logic unit
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US8984256B2 (en) * 2006-02-03 2015-03-17 Russell Fish Thread optimized multiprocessor architecture
AU2007212342B2 (en) * 2006-02-03 2011-05-12 Russell H. Fish Iii Thread optimized multiprocessor architecture
US7913069B2 (en) * 2006-02-16 2011-03-22 Vns Portfolio Llc Processor and method for executing a program loop within an instruction word
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
WO2007098024A2 (en) 2006-02-16 2007-08-30 Vns Portfolio Llc Allocation of resources among an array of computers
US7752422B2 (en) * 2006-02-16 2010-07-06 Vns Portfolio Llc Execution of instructions directly from input source
US7934075B2 (en) * 2006-02-16 2011-04-26 Vns Portfolio Llc Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
TW200817925A (en) * 2006-03-31 2008-04-16 Technology Properties Ltd Method and apparatus for operating a computer processor array
US7337272B2 (en) * 2006-05-01 2008-02-26 Qualcomm Incorporated Method and apparatus for caching variable length instructions
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US20080016326A1 (en) 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
WO2008045341A1 (en) * 2006-10-05 2008-04-17 Arc International Inter-processor communication method
US7917788B2 (en) * 2006-11-01 2011-03-29 Freescale Semiconductor, Inc. SOC with low power and performance modes
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
JP2008204249A (ja) * 2007-02-21 2008-09-04 Renesas Technology Corp データプロセッサ
US8103698B2 (en) 2007-02-28 2012-01-24 Jianwen Yin Methods, apparatus and media for system management of object oriented information models
US7809972B2 (en) 2007-03-30 2010-10-05 Arm Limited Data processing apparatus and method for translating a signal between a first clock domain and a second clock domain
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
US20080270751A1 (en) 2007-04-27 2008-10-30 Technology Properties Limited System and method for processing data in a pipeline of computers
US20080282062A1 (en) * 2007-05-07 2008-11-13 Montvelishsky Michael B Method and apparatus for loading data and instructions into a computer
JP4497184B2 (ja) * 2007-09-13 2010-07-07 ソニー株式会社 集積装置およびそのレイアウト方法、並びにプログラム
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8275978B1 (en) 2008-07-29 2012-09-25 Marvell International Ltd. Execution of conditional branch instruction specifying branch point operand to be stored in jump stack with branch destination for jumping to upon matching program counter value
JP5350049B2 (ja) * 2009-04-03 2013-11-27 セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー インターフェース回路
CN201421494Y (zh) * 2009-05-11 2010-03-10 中山大洋电机股份有限公司 一种微处理器时钟检测电路及直流无刷电机的单片机mcu时钟检测电路
US8472278B2 (en) 2010-04-09 2013-06-25 Qualcomm Incorporated Circuits, systems and methods for adjusting clock signals based on measured performance characteristics
US10262365B2 (en) 2012-04-16 2019-04-16 Nasdaq Technology Ab Method and a computerized exchange system for processing trade orders
US9230690B2 (en) 2012-11-07 2016-01-05 Apple Inc. Register file write ring oscillator
US9083725B2 (en) * 2013-08-12 2015-07-14 Fred Korangy System and method providing hierarchical cache for big data applications
US9983990B1 (en) * 2013-11-21 2018-05-29 Altera Corporation Configurable storage circuits with embedded processing and control circuitry
US9645936B1 (en) * 2014-03-26 2017-05-09 Marvell International Ltd. System and method for informing hardware to limit writing in a memory hierarchy
US9582473B1 (en) * 2014-05-01 2017-02-28 Cadence Design Systems, Inc. Instruction set to enable efficient implementation of fixed point fast fourier transform (FFT) algorithms
US10560475B2 (en) 2016-03-07 2020-02-11 Chengdu Haicun Ip Technology Llc Processor for enhancing network security
US10489590B2 (en) 2016-03-07 2019-11-26 Chengdu Haicun Ip Technology Llc Processor for enhancing computer security
US10714172B2 (en) 2017-09-21 2020-07-14 HangZhou HaiCun Information Technology Co., Ltd. Bi-sided pattern processor
US10620881B2 (en) * 2018-04-23 2020-04-14 Microchip Technology Incorporated Access to DRAM through a reuse of pins
US12437791B2 (en) 2023-07-11 2025-10-07 Honeywell International Inc. Magneto resistive memory for monolithic data processing

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3603934A (en) * 1968-07-15 1971-09-07 Ibm Data processing system capable of operation despite a malfunction
US3849765A (en) * 1971-11-30 1974-11-19 Matsushita Electric Industrial Co Ltd Programmable logic controller
US3878513A (en) * 1972-02-08 1975-04-15 Burroughs Corp Data processing method and apparatus using occupancy indications to reserve storage space for a stack
GB1441816A (en) * 1973-07-18 1976-07-07 Int Computers Ltd Electronic digital data processing systems
US3944985A (en) * 1973-10-19 1976-03-16 Texas Instruments Incorporated Workspace addressing system
US4050058A (en) * 1973-12-26 1977-09-20 Xerox Corporation Microprocessor with parallel operation
US3911405A (en) * 1974-03-20 1975-10-07 Sperry Rand Corp General purpose edit unit
US4042972A (en) * 1974-09-25 1977-08-16 Data General Corporation Microprogram data processing technique and apparatus
US3969706A (en) * 1974-10-08 1976-07-13 Mostek Corporation Dynamic random access memory misfet integrated circuit
US3980993A (en) * 1974-10-17 1976-09-14 Burroughs Corporation High-speed/low-speed interface for data processing systems
US4050096A (en) * 1974-10-30 1977-09-20 Motorola, Inc. Pulse expanding system for microprocessor systems with slow memory
US4003028A (en) * 1974-10-30 1977-01-11 Motorola, Inc. Interrupt circuitry for microprocessor chip
US4037090A (en) * 1974-11-19 1977-07-19 Texas Instruments Incorporated Multiphase clocking for MOS
US3967104A (en) * 1974-11-26 1976-06-29 Texas Instruments Incorporated Direct and indirect addressing in an electronic digital calculator
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US4090247A (en) * 1975-08-11 1978-05-16 Arthur D. Little, Inc. Portable data entry device
US4003033A (en) * 1975-12-22 1977-01-11 Honeywell Information Systems, Inc. Architecture for a microprogrammed device controller
US4067059A (en) * 1976-01-29 1978-01-03 Sperry Rand Corporation Shared direct memory access controller
US4112490A (en) * 1976-11-24 1978-09-05 Intel Corporation Data transfer control apparatus and method
US4079455A (en) * 1976-12-13 1978-03-14 Rca Corporation Microprocessor architecture
JPS5378742A (en) * 1976-12-23 1978-07-12 Toshiba Corp Multiplication control system
GB1561961A (en) * 1977-04-20 1980-03-05 Int Computers Ltd Data processing units
US4128873A (en) * 1977-09-20 1978-12-05 Burroughs Corporation Structure for an easily testable single chip calculator/controller
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
JPS54107643A (en) * 1978-02-13 1979-08-23 Toshiba Corp Operation control method and unit executing structured program
FR2461301A1 (fr) * 1978-04-25 1981-01-30 Cii Honeywell Bull Microprocesseur autoprogrammable
US4255785A (en) * 1978-09-25 1981-03-10 Motorola, Inc. Microprocessor having instruction fetch and execution overlap
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
CA1078430A (en) * 1979-01-17 1980-05-27 Benjamin Bronstein Pick-up truck edge protector and anchor member
US4300195A (en) * 1979-08-09 1981-11-10 Motorola, Inc. CMOS Microprocessor architecture
NL7906416A (nl) * 1979-08-27 1981-03-03 Philips Nv Rekenmachinesysteem, waarbij het programmageheugen geschikt is om doorlopen te worden waarbij niet tot een instruktie behorende gegevens apart gedetekteerd worden.
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
US4354228A (en) * 1979-12-20 1982-10-12 International Business Machines Corporation Flexible processor on a single semiconductor substrate using a plurality of arrays
US4335447A (en) * 1980-02-05 1982-06-15 Sangamo Weston, Inc. Power outage recovery method and apparatus for demand recorder with solid state memory
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4398265A (en) * 1980-09-15 1983-08-09 Motorola, Inc. Keyboard and display interface adapter architecture
US4450519A (en) * 1980-11-24 1984-05-22 Texas Instruments Incorporated Psuedo-microprogramming in microprocessor in single-chip microprocessor with alternate IR loading from internal or external program memories
US4463421A (en) * 1980-11-24 1984-07-31 Texas Instruments Incorporated Serial/parallel input/output bus for microprocessor system
US4390961A (en) * 1980-12-24 1983-06-28 Honeywell Information Systems Inc. Data processor performing a decimal multiply operation using a read only memory
US4484300A (en) * 1980-12-24 1984-11-20 Honeywell Information Systems Inc. Data processor having units carry and tens carry apparatus supporting a decimal multiply operation
US4403303A (en) * 1981-05-15 1983-09-06 Beehive International Terminal configuration manager
US4541045A (en) * 1981-09-21 1985-09-10 Racal-Milgo, Inc. Microprocessor architecture employing efficient operand and instruction addressing
US4538239A (en) * 1982-02-11 1985-08-27 Texas Instruments Incorporated High-speed multiplier for microcomputer used in digital signal processing system
US4503500A (en) * 1982-02-11 1985-03-05 Texas Instruments Incorporated Microcomputer with bus interchange module
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4453229A (en) * 1982-03-11 1984-06-05 Grumman Aerospace Corporation Bus interface unit
US4539655A (en) * 1982-03-16 1985-09-03 Phoenix Digital Corporation Microcomputer based distributed control network
US4586127A (en) * 1982-11-03 1986-04-29 Burroughs Corp. Multiple control stores for a pipelined microcontroller
FR2536200B1 (fr) * 1982-11-15 1987-01-16 Helen Andre Unite de stockage temporaire de donnees organisee en file d'attente
US4724517A (en) * 1982-11-26 1988-02-09 Inmos Limited Microcomputer with prefixing functions
US4488227A (en) * 1982-12-03 1984-12-11 Honeywell Information Systems Inc. Program counter stacking method and apparatus for nested subroutines and interrupts
US4607332A (en) * 1983-01-14 1986-08-19 At&T Bell Laboratories Dynamic alteration of firmware programs in Read-Only Memory based systems
US4649471A (en) * 1983-03-01 1987-03-10 Thomson Components-Mostek Corporation Address-controlled automatic bus arbitration and address modification
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control
US4553201A (en) * 1983-03-28 1985-11-12 Honeywell Information Systems Inc. Decoupling apparatus for verification of a processor independent from an associated data processing system
NL8302731A (nl) * 1983-08-02 1985-03-01 Philips Nv Halfgeleiderinrichting.
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
US4777591A (en) * 1984-01-03 1988-10-11 Texas Instruments Incorporated Microprocessor with integrated CPU, RAM, timer, and bus arbiter for data communications systems
US5179734A (en) * 1984-03-02 1993-01-12 Texas Instruments Incorporated Threaded interpretive data processor
US4562537A (en) * 1984-04-13 1985-12-31 Texas Instruments Incorporated High speed processor
US4868735A (en) * 1984-05-08 1989-09-19 Advanced Micro Devices, Inc. Interruptible structured microprogrammed sixteen-bit address sequence controller
US4720812A (en) * 1984-05-30 1988-01-19 Racal-Milgo, Inc. High speed program store with bootstrap
JPH0690700B2 (ja) * 1984-05-31 1994-11-14 富士通株式会社 半導体集積回路
US4709329A (en) * 1984-06-25 1987-11-24 Data General Corporation Input/output device controller for a data processing system
US4670837A (en) * 1984-06-25 1987-06-02 American Telephone And Telegraph Company Electrical system having variable-frequency clock
US4665495A (en) * 1984-07-23 1987-05-12 Texas Instruments Incorporated Single chip dram controller and CRT controller
JPH0731603B2 (ja) * 1984-11-21 1995-04-10 ノビツクス Forth特定言語マイクロプロセサ
JPS61175845A (ja) * 1985-01-31 1986-08-07 Toshiba Corp マイクロプロセツサシステム
US4713749A (en) * 1985-02-12 1987-12-15 Texas Instruments Incorporated Microprocessor with repeat instruction
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
CA1226960A (en) * 1985-06-28 1987-09-15 Gregory F. Hicks Rate adaptation circuit and method for asynchronous data on digital networks
US4945479A (en) * 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
JPS6243764A (ja) * 1985-08-21 1987-02-25 Nec Corp バス・ステ−ト制御回路
US4777587A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
US4736291A (en) * 1985-11-22 1988-04-05 Texas Instruments Incorporated General-purpose array processor
DE3752017T2 (de) * 1986-03-20 1997-08-28 Nippon Electric Co Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
US4722050A (en) * 1986-03-27 1988-01-26 Hewlett-Packard Company Method and apparatus for facilitating instruction processing of a digital computer
US4835738A (en) * 1986-03-31 1989-05-30 Texas Instruments Incorporated Register stack for a bit slice processor microsequencer
US4797850A (en) * 1986-05-12 1989-01-10 Advanced Micro Devices, Inc. Dynamic random access memory controller with multiple independent control channels
JPS638971A (ja) * 1986-06-30 1988-01-14 Nec Corp 多項式ベクトル演算実行制御装置
JPS6326753A (ja) * 1986-07-21 1988-02-04 Hitachi Ltd メモリ−バス制御方法
US4803621A (en) * 1986-07-24 1989-02-07 Sun Microsystems, Inc. Memory access system
US4787032A (en) * 1986-09-08 1988-11-22 Compaq Computer Corporation Priority arbitration circuit for processor access
DE68929285T2 (de) * 1988-04-12 2001-08-09 Canon K.K., Tokio/Tokyo Steuerungsgerät
JP2595314B2 (ja) * 1988-06-30 1997-04-02 三菱電機株式会社 誤書き込み防止機能を備えたicカ―ド
JP2628194B2 (ja) * 1988-07-28 1997-07-09 株式会社日立製作所 データ処理装置
US4924384A (en) * 1988-09-21 1990-05-08 International Business Machines Corporation Method for controlling the peer-to-peer processing of a distributed application across a synchronous request/response interface using push-down stack automata
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US4931986A (en) * 1989-03-03 1990-06-05 Ncr Corporation Computer system clock generator for generating tuned multiple clock signals
US5379438A (en) * 1990-12-14 1995-01-03 Xerox Corporation Transferring a processing unit's data between substrates in a parallel processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157973A (en) * 1996-10-24 2000-12-05 Mitsubishi Denki Kabushiki Kaisha Microcomputer having memory and processor formed on the same chip to increase the rate of information transfer
JP2009527809A (ja) * 2006-02-16 2009-07-30 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー 入力ソースから直接の命令の実行
JP2009527808A (ja) * 2006-02-16 2009-07-30 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー マイクロループコンピュータ命令

Also Published As

Publication number Publication date
EP0497772A1 (en) 1992-08-12
US5659703A (en) 1997-08-19
EP0497772A4 (en) 1993-08-04
DE69033568T2 (de) 2001-03-01
EP0786730B1 (en) 2000-06-14
JP2966085B2 (ja) 1999-10-25
US5784584A (en) 1998-07-21
WO1991002311A1 (en) 1991-02-21
EP0786730A1 (en) 1997-07-30
US5530890A (en) 1996-06-25
AU6067290A (en) 1991-03-11
DE69033568D1 (de) 2000-07-20
US6598148B1 (en) 2003-07-22
US5604915A (en) 1997-02-18
US5440749A (en) 1995-08-08
US5809336A (en) 1998-09-15

Similar Documents

Publication Publication Date Title
JPH05502125A (ja) 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法
US11042373B2 (en) Computation engine that operates in matrix and vector modes
KR101121606B1 (ko) 스레드 최적화 멀티프로세서 아키텍처
JP3955305B2 (ja) 縮小命令セット・コンピュータ・マイクロプロセッサーの構造
US5689677A (en) Circuit for enhancing performance of a computer for personal use
US20080250227A1 (en) General Purpose Multiprocessor Programming Apparatus And Method
TW299421B (ja)
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
US20120137108A1 (en) Systems and methods integrating boolean processing and memory
US6327648B1 (en) Multiprocessor system for digital signal processing
Patterson Modern microprocessors: A 90 minute guide
JP2025126345A (ja) アクセラレータ、データ処理方法及びコンパイラ装置
Chevtchenko et al. Neuroprocessor NeuroMatrix NM6403 architectural overview
WO2008079336A2 (en) Inversion of alternate instruction and/or data bits in a computer
Gupta Computer Organization and Architecture
KR100192594B1 (ko) 캠을 이용한 룩 어사이드 방식의 단일칩 마이크로 프로세서
WO2009136402A2 (en) Register file system and method thereof for enabling a substantially direct memory access
Chevtchenko et al. Neuroprocessor NeuroMatrix NM6403 architecture overview
Moustakas Design and simulation of a primitive RISC architecture using VHDL
WO2010074974A1 (en) Systems and methods integrating boolean processing and memory
WO2009136401A2 (en) Improved processing unit implementing both a local register file system and spread register file system, and a method thereof

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070813

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090813

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100813

Year of fee payment: 11

EXPY Cancellation because of completion of term