JP2966085B2 - 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 - Google Patents
後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法Info
- Publication number
- JP2966085B2 JP2966085B2 JP2511130A JP51113090A JP2966085B2 JP 2966085 B2 JP2966085 B2 JP 2966085B2 JP 2511130 A JP2511130 A JP 2511130A JP 51113090 A JP51113090 A JP 51113090A JP 2966085 B2 JP2966085 B2 JP 2966085B2
- Authority
- JP
- Japan
- Prior art keywords
- stack
- microprocessor
- register
- instruction
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000015654 memory Effects 0.000 claims abstract description 163
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000012546 transfer Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 230000008901 benefit Effects 0.000 description 16
- 238000012360 testing method Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000001151 other effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000035939 shock Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 239000006096 absorbing agent Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 241000761456 Nops Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 108010020615 nociceptin receptor Proteins 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/527—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
- G06F7/5272—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel with row wise addition of partial products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/584—Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements 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/785—Arrangements 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/58—Indexing scheme relating to groups G06F7/58 - G06F7/588
- G06F2207/581—Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/58—Indexing scheme relating to groups G06F7/58 - G06F7/588
- G06F2207/583—Serial 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)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Microcomputers (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
タ(RISC)マイクロプロセッサに関する。より詳細に
は、かかるマイクロプロセッサで、たとえば20ドルの価
格でたとえば毎秒2、000万の命令(MIPS)の性能レベ
ルが可能なものに関する。
二つの異なる方法が用いられてきた、第1の方法ではマ
イクロプロセッサ集積回路中のトランジスタをより多く
しまたより高速にし、さらにより複雑な命令セットを備
えることによって性能の向上が図られた。この方法は、
Motorola 68000やIntel 80X86のシリーズにその例を見
ることができる。この方法は数百のピンアウトを有する
より大きなダイおよびパッケージに向かう傾向にある。
令セットの両方においてより簡単に性能の改善を得るこ
とができると考えられている。この第2の方法はRISCマ
イクロプロセッサを提供するものであり、Sun SPARCやI
ntelのマイクロプロセッサにその例を見ることができ
る。しかし、この方法においても従来の実施態様では多
数のピンアウトを収容するためにマイクロプロセッサの
パッケージは大型となっている。したがって、高性能マ
イクロプロセッサの簡略化が依然として要請されてい
る。
プロセッサに対応するのに十分な速度のメモリアクセス
を行うためにマイクロプロセッサへの直接接続を行うた
めの高速スタティックメモリが必要とされる。低速のダ
イナミックランダムアクセスメモリ(DRAM)がこのよう
なマイクロプロセッサに用いられるのは、階層的メモリ
構成においてのみであり、スタティックメモリがマイク
ロプロセッサとDRAMの間のバッファとしてはたらく。
積回路上に設けるかあるいは別途設けられるDMAコント
ローラを介してシステム周辺装置のための直接メモリア
クセス(DMA)を提供する。このようなDMAコントローラ
はDMA要求およびDMA応答のルーチン処理を提供すること
ができるが、ある種の処理はマイクロプロセッサの主中
央処理装置(CPU)によって行わなければならない。
ッサ及びマイクロプロセッサシステムを提供することで
ある。
新しい高性能の低コストマイクロプロセッサを用いるこ
とによって達成することができる。
ステムは算術論理演算装置を含む。第1の後入れ先出し
スタックがこの算術論理演算装置に接続されている。こ
の第1の後入れ先出しスタックはこの算術論理演算装置
の第1の入力に接続されたトップ項目を記憶する手段
と、この算術論理演算装置の第2の入力に接続されたネ
クスト(次)項目を記憶する手段を含む。この算術論理
演算装置はトップ項目を記憶する手段に接続された出力
を有する。トップ項目を記憶する手段はレジスタファイ
ルに入力を提供するように接続される。
システムは中央処理装置、メモリ、中央処理装置をメモ
リに接続するバスを含む。中央処理装置は、算術論理装
置と算術論理装置に接続された後入れ先入れスタックを
含む。後入れ先出しスタックはこの算術論理演算装置の
第1の入力に接続されたトップ項目を記憶する手段と、
この算術論理演算装置の第2の入力に接続されたネクス
ト(次)項目を記憶する手段を含む。算術論理演算装置
はトップ項目を記憶する手段に接続された出力を有す
る。後入れ先出しスタックはラッチとして構成された第
1の複数のスタック要素と、ランダムアクセスメモリと
して構成された第2複数のスタック要素を有する。第1
および第2の複数のスタック要素と中央処理装置は単一
の集積回路内に設けられている。そして、後入れ先出し
スタックが単一の集積回路の外部のランダムアクセスメ
モリとして構成される第3の複数のスタック要素を有す
る。
ッサは単一の集積回路中のメイン中央処理装置と別の直
接メモリアクセス中央処理装置とを含む。メイン中央処
理装置は算術論理装置、算術論理装置に入力を提供する
ように接続されたトップ項目レジスタとネクスト(次)
項目レジスタ付きの第1の後入れ先出しスタックを有
し、算術論理装置の出力はトップ項目レジスタに接続さ
れており、トップ項目レジスタは内部データバスに入力
を提供するように接続されており、内部データバスはル
ープカウンタに双方向に接続されており、ループカウン
タは減分器に接続されており、内部データバスはスタッ
クポインタ、リターンスタックポインタ、モードレジス
タ、および命令レジスタに双方向に接続されており、内
部データバスはメモリコントローラ、リターン後入れ先
出しスタックのYレジスタ、Xレジスタおよびプログラ
ムカウンタに接続されており、Yレジスタ、Xレジスタ
およびプログラムカウンタは内部アドレスバスへの出力
を提供し、内部アドレスバスはメモリコントローラへの
と増分器への入力を提供し、増分器は内部データバスに
接続され、直接メモリアクセス中央処理装置はメモリコ
ントローラへの入力を提供し、メモリコントローラはア
ドレス/データバスとランダムアクセスメモリへの接続
のための複数の制御ラインを有するマイクロプロセッ
サ。
サシステムにおいて後入れ先出しスタックを動作させる
方法が、ラッチとして構成された第1の複数のスタック
要素、ランダムアクセスメモリとして構成された第2の
複数のリスック要素を提供し、第1および第2の複数の
スタック要素をマイクロプロセッサとともに単一の集積
回路内に設け、この単一の集積回路の外部のランダムア
クセスメモリとして構成された第3の複数のスタック要
素を提供し、後入れ先出しスタックに項目を記憶させ、
第2の複数のスタック要素にアクセスすることなく第1
の複数のスタック要素から第1の複数の項目を取り出
し、第1の複数のスタック要素が空であるときは第2の
複数のスタック要素から第1の複数の項目を取り出し、
第3の複数のスタック要素にアクセスすることなく第2
の複数のスタック要素から第2の複数の項目を取り出
し、第2の複数のスタック要素が空であるときは第3の
複数のスタック要素から第2の複数の項目を取り出す。
は当該技術に精通するものには、以下のこの発明のより
詳細な説明を図面を参照して検討することにより、いっ
そう容易に理解されるであろう。
集積回路パッケージの外平面図である。
図である。
るデータ処理装置の一部のブロック図である。
細なブロック図である。
り詳細なブロック図である。
−5のマイクロプロセッサを内蔵するデータ処理システ
ムの他の部分のブロック図である。
タ処理システムのレイアウト図である。
るこの発明によるマイクロプロッサの第2の実施例のレ
イアウト図である。
より詳細なブロック図である。
有用なタイミング図である。
分のより詳細なブロック図である。
細なブロック図である。
り詳細なブロックおよび概略図である。
有用なグラフである。
なブロック図である。
細なブロック図である。
り詳細なブロック図である。
作を理解するのに有用な波形図である。
詳細なブロック図である。
詳細なブロック図である。
を示すより詳細なブロック図である。
て実施するのが望ましい。この実施例ではマイクロプロ
セッサは20ドルで20MIPSのものと考えることができる。
このプロセッサの重要な特徴は次の通りである。
用、 1メモリサイクル当たり4命令取り出し、 オンチップ高速ページモードメモリ管理、 外部キャッシュなしで高速実行、 インターフェースチップがほとんど不要、 44ピンSOJパッケージ内に32ビットCPU 命令セットはほとんどの動作を8ビット命令で指定で
きるように構成されている。この考え方の利点は次の通
りである。
点になっている。バスは命令の取り出しとデータの取り
出しと記憶に用いられる。単一のメモリバスサイクル中
に四つの命令を取り出す能力はデータ処理に対するバス
の利用可能性を大きく向上させる。
ンチの実際の大きさの約100倍の大きさで示した44ピン
プラスティック無導線チップキャリア中のパッケージ化
された32ビットマイクロプロセッサを示す。マイクロプ
ロセッサ50が44ピンパッケージとして設けられるという
点は、通常約200の入出力(I/O)ピンを有する代表的な
マイクロプロセッサと大きく異なっている。マイクロプ
ロセッサ50は2、000万命令/秒(MIPS)の速度とされ
ている。DO−D31のラベルが付いたアドレスおよびデー
タライン52が、次に説明するマイクロプロセッサ50の動
作方法の結果速度を犠牲にすることなくアドレス用とデ
ータ用に共用されている。
クロプロセッサ50のもう一つの特殊な側面は、列アドレ
スストローブ(RAS)およびカラムアドレスストローブ
(CAS)I/Oピン54によって示すように、ダイナミックラ
ンダムアクセスメモリ(DRAM)と直接動作する点であ
る。マイクロプロセッサ50の他のI/Oピンには、VDDピン
56、VSSピン58、出力イネーブルピン60、書き込みピン6
2、クロックピン64およびリセットピン66がある。
なメモリを必要とする。最も高速なスタティックRAMメ
モリは低速のダイナミックRAMの10倍ものコストがかか
る。このマイクロプロセッサは低コストのダイナミック
RAMを高速ページモードで用いるように最適化されてい
る。ページモードダイナミックRAMはコストをかけずに
スタティックRAMの性能を提供する。例えば、低コスト
の85nsecのダイナミックRAMは高速ページモードで動作
するとき25nsecでアクセスする。マイクロプロセッサチ
ップ上の集積高速ページモード制御はシステムのインタ
ーフェースを簡略化し、高速なシステムを実現する。
プロセッサ50は、マイクロプロセッサ50を構成する単一
の集積回路中にメイン中央処理装置(CPU)70と別の直
接メモリアクセス(DMA)CPU72を含む。メインCPU70は
それぞれが入力をライン82および84によって算術論理演
算装置(ALU)80に提供するように接続されたトップ項
目レジスタ76と次項目レジスタ78を有する第1の16深後
入れ先出しスタック74を有する。ALU80の出力はライン8
6によってトップ項目レジスタ76に接続されている。82
のトップ項目レジスタの出力もまたライン88によって内
部データバス90に接続されている。
94に接続されている。ループカウンタ92はライン100に
よって内部データバス90に双方向接続されている。スタ
ックポインタ102、復帰スタックポインタ104、モードレ
ジスタ106および命令レジスタ108もまたライン110、11
2、114および116によって内部データバス90に接続され
ている。内部データバス90はメモリコントローラ118と
ゲート120に接続されている。ゲート120は復帰後入れ先
出しスタック134のXレジスタ128、プログラムカウンタ
130およびYレジスタ132への入力をライン122、124およ
び126上に提供する。Xレジスタ128、プログラムカウン
タ130およびYレジスタ132は内部アドレスバス136への
出力をライン138、140および142上に提供する。内部ア
ドレスバスはメモリコントローラ118と増分器144への入
力を提供する。増分器144はXレジスタ、プログラムカ
ウンタおよびYレジスタ132への入力をライン146、12
2、124および126を介して提供する。DMA CPU72はライン
148上にメモリコントローラ118への入力を提供する。メ
モリコントローラ118はアドレス/データバス150と制御
ライン152によってRAM(図示せず)に接続されている。
を有することを示す。従来のRISCマイクロプロセッサの
設計ははるかに複雑である。たとえば、SPARC RISCマイ
クロプロセッサはマイクロプロセッサ50の3倍のゲート
を有し、Intel 8960 RISCマイクロプロセッサはマイク
ロプロセッサ50の20倍のゲートを有する。このマイクロ
プロセッサの速度はかなりの部分この簡略性に起因す
る。このアーキテクチャはこの簡略性を得るために後入
れ先出しスタックとレジスタ書き込みを用いている。
る資源を十分に活用するように調整されたI/Oを内蔵す
る。オンチップラッチによって同じI/O回路を三つの異
なることを処理するのに用いることができる。すなわ
ち、速度を少ししか、あるいは全く犠牲にせずから無ア
ドレス指定、列アドレス指定およびデータを処理するこ
とができる。この三重バス多重化によって拡張すべきバ
ッファの数、相互接続ラインの数、I/Oピンおよび内部
バッファの数を少なくすることができる。
ックRAMを用いてえることのできる性能と等しい性能を
得ることができる。その結果、メモリをほとんどのRISC
システムに用いられるスタティックRAMのシステムコス
トの1/4で設けることができる。
の命令を取り出すことができる。命令は8ビットフォー
マットであり、これは32ビットマイクロプロセッサであ
る。したがって、システム速度はメモリバス帯域幅の4
倍である。この能力によってマイクロプロセッサが次の
命令を得る速度におけるフォン・ノイマンの障害を突破
することが可能になる。この動作モードは後入れ先出し
スタックとレジスタアレーの使用によって可能となる。
後入れ先出しスタックは二つの出所と一つの行先に対す
る明示アドレスの従来技術ではなく、暗示アドレスを使
用することを可能とする。
で実行される。したがってマイクロプロセッサはパイプ
ライン遅延を用いず50のピークMIPSで命令を実行するこ
とができる。これはマイクロプロセッサ50中の少数のゲ
ートとこのマイクロプロセッサのアーキテクチャの高度
な並行処理の結果である。
てマイクロプロセッサ50のラインD8−D14上でカラムア
ドレスと列アドレスがどのように多重化されるかを示
す。DRAM150は8個あるうちの一つであるが、ここでは
説明をわかりやすくするため一つのDRAM150のみを示
す。図示するように、ラインD11−D18はそれぞれDRAM15
0の列アドレス入力A0−A8に接続されている。さらに、
ラインD12−D15はDRAM150のデータ入力DQ1−DQ4に接続
されている。出力イネーブル、書き込みおよびカラムア
ドレスストローブピン54はそれぞれライン152によってD
RAM150の出力イネーブル、書き込みおよびカラムアドレ
スストローブ入力に接続されている。列アドレスストロ
ーブピン54は列アドレスストローブ複合ロジック154を
介してライン152および158によってDRAM150の列アドレ
スストローブ入力に接続されている。
−D18ピン52に多重化された列アドレスおよびカラムア
ドレスを出力中である時にはアイドル状態である。した
がって、D0−D7ピン52は右寄せされたI/Oが求められる
とき入出力に同時に用いることができる。したがって同
時アドレス指定および入出力を行うことができる。
クサイクル中での複数命令取り出しと前方命令取り出し
を通じて、DRAMを用いてスタティックRAMを用いる場合
と等しい性能を達成できるかを示す。命令レジスタ108
は32ビット内部データバス90上の四つの8ビットバイト
命令ワード1−4を受け取る。命令レジスタ108の四つ
の命令バイト1−4の位置はバス172、174、176および1
78によってマルチプレクサ170に接続される。マイクロ
プログラムカウンタ180はライン182によってマルチプレ
クサ170に接続される。マルチプレクサ170はバス186に
よって復号器184に接続される。復号器184はライン188
上にマイクロプロセッサ50の他の部分に対する内部信号
を提供する。
ン194によって4入力復号器192に接続される。復号器19
2の出力はライン196によってメモリコントローラ118に
接続される。プログラムカウンタ130は内部アドレスバ
ス136によってメモリコントローラ118に接続され、命令
レジスタ108は内部データバス90によってメモリコント
ローラ118に接続される。アドレス/データバス198と制
御バス200はDRAM150(図3)に接続される。
0がマイクプロセッサ50のクロックサイクル中に“1"で
あるとき、待ち行列にはメモリ参照命令はない。ライン
196上の復号器192の出力はメモリコントローラ118によ
る他のアクセスを介在させない前方命令取り出しを要求
する。命令レジスタ108中の現在の命令が実行されてい
る間に、メモリコントローラ118はプログラムカウンタ1
30からの四つの命令の次のセットのアドレスを得、その
命令セットを得る。現在の命令セットの実行が完了する
までには次の命令セットを命令レジスタにロードする準
備ができている。
メモリコントローラ118とDMA命令レジスタ210に接続さ
れている。DMA命令レジスタ210はバス214によってDMAプ
ログラムカウンタ212に、バス216によって転送サイズカ
ウンタ216に、バス222によって時限転送間隔カウンタ22
0に接続されている。DMA命令レジスタ210はまたライン2
26によってDMA I/OおよびRAMアドレスレジスタ224に接
続されている。DMA I/OおよびRAMアドレスレジスタ224
はメモリサイクル要求ライン228とバス230によってメモ
リコントローラ118に接続されている。DMAプログラムカ
ウンタ212はバス232によって内部アドレスバス136に接
続されている。転送サイズカウンタ216はライン236と23
8によって実行済みDMA命令減分器234に接続されてい
る。実行済みDMA命令減分器234はメモリサイクル応答ラ
イン240上の制御入力を受け取る。転送サイズカウンタ2
16はその計数を終えると、ライン242上にDMAプログラム
カウンタ212への制御信号を提供する。時限転送間隔カ
ウンタ220はライン246および248によって減分器244に接
続されている。減分器244はライン250上のマイクロプロ
セッサシステムクロックからの制御入力を受け取る。
する能力を有する。これはメインCPU70(図2)に対し
て時間の特定される処理のための双対プロセッサとして
動作する。
他のものは出力ラインとなるように再構成することによ
ってマイクロプロセッサ50を電気的にプログラム可能な
リードオンリーメモリ(EPROM)260に接続する態様を示
す。データライン52 D0−D7はEPROM 260の対応するデー
タ端子262とのデータのやり取りを可能とする。データ
ライン52 D9−D18はEPROM 260のアドレス端子264にアド
レスを提供する。データライン52 D19−D31はマイクロ
プロセッサ50からの入力をメモリおよびI/O復号ロジッ
ク266に提供する。RAS 0/1制御ライン268はメモリおよ
びI/O復号ロジックがライン270上にDRAM RAS出力を提供
するか、それともライン272上にEPROM260のためのカラ
ムイネーブル出力を提供するかを判定するための制御信
号を提供する。マイクロプロセッサ50のカラムアドレス
ストローブ端子60はライン274上にEPROM260の対応する
端子276への出力イネーブル信号を提供する。
バイトのMSM514258−10型DRAM 150、Motorolaの50メガ
ヘルツ水晶発振器クロック282、I/O回路284、および272
56型EPROM 260を内蔵するワンカードデータ処理システ
ム280の前後を示す。I/O回路284は74HC04型高速16進イ
ンバータ回路286、IDT39C828型10ビット反転バッファ回
路288、IDT39C822型10ビット反転レジスタ回路290、お
よび二つのIDT39C823型9ビット非反転レジスタ回路292
を含む。カード280はさらに最大12V型直流−直流変換器
回路294、34ピン2アンプ型ヘッダ296、同軸雌電源コネ
クタ298、および3ピンアンプ直角ヘッダ300を加えてな
る。カード280はより大きなシステムに内蔵するかある
いは内部開発ツールとして用いることのできる低コスト
の埋め込み可能な製品である。
接に働くように設計された非常に高性能(50MHz)なRIS
C型32ビットCPUである。マイクロプロセッサ50は単一CP
U構成で可能な理論上の性能限界に近づくものである。
最終的にはマイクロプロセッサ50もその他のいかなるプ
ロセッサもバス帯域幅とバスパスの数によって制約され
る。クリティカルパスはCPUとメモリの間にある。
CPUをメモリチップ上に直接集積してすべてのメモリにC
PUへの直接バスを設ける方法がある。図9は単一の集積
回路312中に1メガビットのDRAM311と一体に設けた別の
マイクロプロセッサ310を示す。この発明以前にはこの
解決法は実用的なものではなかった。それはほとんどの
高性能CPUはそれ自体で500、000から1、000、000個の
トランジスタと非常に大きなダイサイズを要するためで
ある。マイクロプロセッサ310は図1−8のマイクロプ
ロセッサ50と等価である。マイクロプロセッサ50と310
はデュアルプロセッサ70および72(図2)あるいは314
および316(より小さいメモリ)用に50、000個以下のト
ランジスタしか必要としない現在あるものの中で最もト
ランジスタ効率の高い高性能CPUである。マイクロプロ
セッサ50および310の非常に高い速度は、ある程度まで
は能動素子の数が少ないことの結果である。基本的には
珪素が少ないほど、電子はそれが目指す場所により速く
到着することができる。
ダイ312上での集積に適した唯一のCPUである。基本マイ
クロプロセッサ50にDRAMアレー311への近接を利用する
簡単な変更を加えることによってもマイクロプロセッサ
50のクロック速度を50%あるいはそれ以上増大させるこ
とができる。
系から周辺制御までの幅広いアプリケーションに必要な
速度と機能のほとんどを提供する。しかし、集積CPU 31
0/DRAM 311の考え方は多重プロセッサによる解決法によ
って非常に多量の計算を要する問題を解決する方法を大
きく変革する可能性を有するものである。CPU 310/DRAM
311の組合せはフォン・ノイマンの障害を多数のCPU/DR
AMチップ312に分散することによって排除する。マイク
ロプロセッサ310は多重処理を行うための特に良好な核
である。なぜなら、これはSDIターゲッティングアレー
を念頭に設計されており、プロセッサ間の効率的な通信
に対する備えがなされているためである。
かすことができないことに加えて、非常に高価であっ
た。多重プロセッサシステムは通常多数の基板レベルあ
るいはボックスレベルのコンピュータから構成される。
その結果、非常に多量のハードウエアとそれに対応する
配線、電力消費、および通信上の問題が発生するのが常
である。システムが相互接続されるまでに、インターフ
ェースを得るためだけのためにバス速度の50%もが使用
される。
が少ない。多重プロセッサシステムは、一つのCPUに多
くの仕事をさせ他はアイドル状態にするシステムソフト
ウエア中の不適切な負荷分担によって簡単に故障するこ
とがある。近年、システムソフトウエアは大きく進歩
し、UNIX V.4をも多重処理を支援するように改善するこ
とができる。DUAL SystemsやUNISOFTといったメーカー
の製品には68030型マイクロプロセッサシステム上で信
頼性のあるはたらきをするものもある。
フェース上の摩擦のほとんどを解消する。これは最大64
個のCPU 130/RAM 311プロセッサはバッファやラッチを
用いず相互通信を行うことができるためである。チップ
312はそれぞれが約40MIPSの列速度を有する。これは、D
RAM 311をCPU 310の隣に配置することによってマイクロ
プロセッサ310の命令サイクルをマイクロプロセッサ50
の半分にすることができるためである。これらのチップ
312の64チップアレーは他の既存のいかなるコンピュー
タよりも強力である。このようなアレーは3×5カード
上に載り、価格はファックシミリ機より低く、小型テレ
ビと同じ電力を消費する。
ョンに変化をもたらし、また新しいアプリケーションを
生み出す。共通総称並行処理アルゴリズムは重畳/高速
フーリエ変換(FFT)/パターン認識を処理する。集積
回路312を用いて可能な製品で興味深いものとしては、
高速読み取り機、リアルタイム音声認識、音声語翻訳、
リアルタイムロボットビジョン、顔から人間を識別する
製品、および自動車や航空機の衝突回避システムなどが
ある。
情報をより小さな帯域幅に圧縮するためのリアルタイム
プロセッサは非常に実現の可能性の高いものである。HD
TVにおける負荷分担は非常に簡単である。色とフレーム
にしたがってタスクを分割するには6、9あるいは12の
プロセッサが必要となる。実際にはマイクロプロセッサ
310に一体化された4メガRAMが必要となる。
のみ起動) Y0レジスタ 32ビット(オンチップアクセスに対して
のみ起動) ループカウンタ 32ビット DMA CPU 314コア DMA プログラムカウンタ 24ビット 命令レジスタ 32ビット I/O およびRAM アドレスレジスタ 32ビット 転送サイズカウンタ 12ビット インターバルカウンタ 12ビット 基本チップ312のメモリ拡張を提供するために、イン
テリジェントDRAMを生成することができる。このチップ
は、プログラムカウンタ、XレジスタおよびYレジスタ
の三つのオンチップアドレスレジスタを備えることによ
って集積回路312との高速動作に対して最適化される。
その結果、インテリジェントDRAMにアクセスするために
はアドレスを必要とせず、総アクセスサイクルは10nsec
と短くすることができる。それぞれの拡張DRAMは三つの
レジスタのコピーを保持し、そのメモリアドレスを指定
するためのコードによって識別される。この三つのレジ
スタへの増分あるいは追加は実際にはメモリチップ上で
発生する。最大64のインテリジェントDRAM周辺装置によ
って、マルチプレクサやバッファの導入によって速度を
犠牲にすることなく大型システムの作成が可能となる。
にはある種の相異点があり、これはマイクロプロセッサ
310をDRAM 311と同じダイ312上に設けることに起因す
る。DRAM 311を一体化すると既存のオンチップDRAM 311
回路の活用を可能とするようなマイクロプロセッサ310
のアーキテクチャ上の変更が可能となる。列とカラムの
設計はメモリアーキテクチャに備わっている。DRAM 311
はまず1024ビットの列を選択し、それをカラムラッチに
記憶し、次にそれらのビットのうちの一つを読み出しあ
るいは書き込みすべきデータとして選択することによっ
てメモリアレー中のランダムなビットにアクセスする。
アクセスに分けられる。カラムラッチに記憶済みのデー
タの選択はランダムなビットの選択より少なくとも6倍
高速である。マイクロプロセッサ310は多数のカラムラ
ッチを作成し、それらをキャッシュおよびシフトレジス
タとして用いることによってこの高速性を活用する。新
しい情報の列を選択することはその結果得られる大きな
バス帯域幅によって1024ビットの読み出しおよび書き込
みを実行することと考えることができる。
108(図2および図4参照)を四つの8ビット命令のた
めのキャッシュとして取り扱う。DRAM 311はカラムビッ
トに対して1024ビットラッチを保持するため、マイクロ
プロセッサ310はこのカラムラッチを128の8ビット命令
のためのキャッシュとして取り扱う。したがって、ほと
んど常に次の命令がすでにキャッシュの中に存在してい
る。キャッシュ内の長いループもまた可能であり、マイ
クロプロセッサ50中の四つの命令ループより有用であ
る。
ンスタック用に二つの16×32ビットディープレジスタア
レー74および134(図2)を用いる。マイクロプロセッ
サ310は二つの別の1024ビットカラムラッチを作成し
て、二つの32×32ビットアレーに等価なものを提供す
る。これはレジスタアレーの倍の速度でアクセスするこ
とができる。
出力に用いることのできるDMA能力を有する。マイクロ
プロセッサ310はさらに別の1024ビットカラムラッチ
を、CRT表示装置を直接駆動するための長いビデオシフ
トレジスタとして用いる。カラー表示に対しては、三つ
のオンチップシフトレジスタを用いることもできる。こ
れらのシフトレジスタは画素を最大100MHzで転送するこ
とができる。
メモリにアクセスする。マイクロプロセッサ310のため
のメモリ311のほとんどは同じダイ312上にある。外部か
らより多くのメモリにアクセスするには8ビットバスを
用いて行う。その結果マイクロプロセッサ50に比べてダ
イ、パッケージ、および電力消費が小さくなる。
I/Oピンとその関連のキャパシタンスの充電および放電
に用いる。マイクロプロセッサ50に接続されたDRAM150
(図8)はI/Oドライバ内でその電力のほとんどを消費
する。マイクロプロセッサ310システムの消費電力はマ
イクロプロセッサ50の約10分の1である。これはプロセ
ッサ310に隣接してDRAM 311を有することによって充電
および放電すべき外部キャパシタンスのほとんどが除去
されるためである。
スクを多数のプロセッサの間で分担することを意味す
る。多重処理の普及は、現在の個々のプロセッサの費
用、さらにプロセッサ間の通信能力上の限度から制約さ
れている。マイクロプロセッサ310は多重プロセッサの
有望な候補である。これはチップ312がメモリ付きの単
一のコンピュータであり、低コストと物理的なコンパク
トさが実現されているためである。
施されるシフトレジスタもまたプロセッサ間通信リンク
として構成することができる。INMOSトランスピュータ
は同様な戦略を意図したものであったが、速度ははるか
に低く、またマイクロプロセッサ310のカラムラッチア
ーキテクチャに備わっている性能上の利点を有していな
い。シリアル入出力は多くの多重プロセッサ構成におい
ては多数の隣合うプロセッサが通信を行うため不可欠で
ある。一つのキューブに六つのプロセッサがある。各プ
ロセッサは次のラインを用いて通信する。
特殊なスタートアップシーケンスが用いられる。
ャは隣合うプロセッサが内部レジスタあるいは他のチッ
プ312の命令キャッシュにさえ直接情報を送ることを可
能にする。この技術は既存のプロセッサには用いられて
いない。これは緊密に結合されたDRAMシステムにおいて
のみ性能を向上させるためである。
ープ構造を提供する。すなわち、LOOP−IF−DONEと、MI
CRO−LOOPである。前者はループアドレスへの入口点の
記述に8ビットから24ビットのオペランドを要する。後
者はループ全体を四つの命令待ち行列内で実行し、ルー
プ入口点はこの待ち行列中の第1の命令を意味する。こ
の待ち行列中のループは外部命令取り出しを行うことな
く動作し、最大で長いループ構成体の三倍の速度で実行
する。マイクロプロセッサ310はこのわずかな違いの二
つの構成対を保持する。マイクロプロセッサ310のマイ
クロループは、待ち行列の長さが1024ビットあるいは12
8の8ビット命令である点を除いてマイクロプロセッサ5
0の動作と同様に機能する。したがって、マイクロプロ
セッサ310のマイクロループは四つの8ビット命令マイ
クロプロセッサ50の待ち行列では不可能なジャンプ、分
岐、呼び出しおよび即時操作を含みうるものである。
ック移動と比較機能を実行できるだけである。より大き
なマイクロプロセッサ310の待ち行列はデジタル信号処
理あるいは浮動小数点アルゴリズムの全体がこの待ち行
列の中で高速でループすることを可能にする。
の命令を提供する。
変長アドレスオペランドを取る。マイクロプロセッサ50
の次アドレスロジックはこの三つのオペランドを現在の
プログラムカウンタに加算あるいは減算することによっ
てこれらを同様に取り扱う。マイクロプロセッサ310に
ついては、16および24ビットオペランドはマイクロプロ
セッサ50の16および24ビットオペランドと同様に機能す
る。この8ビットクラスのオペランドはこの命令待ち行
列中で全体が動作するように反転される。したがって、
次のアドレス決定を速く行うことができる。これはアド
レスの32ビットではなく10ビットだけが関係するためで
ある。10ビット以降では桁上げも借りも発生しない。
上に載る。チップサイズを可能な限り小さくするため、
マイクロプロセッサ50のDMAプロセッサ72をより一般的
なDMAコントローラ314に置き換えた。DMAはマイクロプ
ロセッサ310に用いて次の機能を実行する。
の両方を同時に維持することができる。以下のDMAの出
所および行先がマイクロプロセッサ310によって支援さ
れる。
ンを用いる。したがって、この三つはすべて干渉し合う
ことなく同時に活動状態になりうる。
リアルバッファあるいは各チャンネルのための別個の送
受信バッファのいずれかを用いて実施することができ、
これによって6個のプロセッサ間での同時双方向通信が
可能である。
DMAの詳細を示す。マイクロプロセッサ50の実行は最高
速のPROM以外のいかなるものより速い。PROMはマイクロ
プロセッサ50のシステムにおいてプログラムの部分ある
いはプログラム全体を記憶するのに用いられる。マイク
ロプロセッサ50は低コストの低速PROMから高速DRAMへの
実行のためのプログラムのローディングを可能とする電
源投入時の機能を提供する。この機能を実行するロジッ
クはDMAメモリコントローラ118の一部である。この動作
はDMAに近いが同一ではない。これは四つの8ビットバ
イトをマイクロプロセッサ50上にアセンブルし、次にDR
AM 150に書き込まなければならないためである。
レスバス350を介してDRAM 150と直接インターフェース
する。この三重多重化データおよびアドレスバス350はR
ASアドレス、CASアドレスおよびデータを搬送する。一
方、EPROM 260は非多重化バスによって読み出される。
したがって、マイクロプロセッサ50はデータおよびアド
レスラインの多重化を解きEPROMデータの8ビットを読
み出す特殊モードを有する。四つの8ビットバイトはこ
のようにして読み出される。多重化データバス350は再
びオンされ、DRAM 150にデータが書き込まれる。
ロセッサはメインCPU 70を停止させ、モードO(PROM L
OAD)命令をDMA CPU 72命令レジスタに送る。このDMA命
令はメモリコントローラにEPROM 260のデータをメモリ
の通常のアクセス時間の8倍で読み出すように指令す
る。50MHzのマイクロプロセッサ50を想定すると、これ
は320nsecのアクセス時間を意味する。この命令はまた
次のことを示す。
送する動作のシーケンスは次の通りである。
EPROM 260選択情報をラッチする。
12のアドレスビットと2バイトの選択ビットがEPROM260
のアドレスピンに行くバス350に乗せられる。これらの
信号はEPROM 260からのデータがマイクロプロセッサ50
に読み込まれるまでライン上に残る。第1のバイトにつ
いては、バイト選択ビットは2値的には00である。
アドレス/データバス350の下位の8ビット上にイネー
ブルする。このサイクルのこの部分においては外部アド
レス/データバス350の下位の8ビットは入力として機
能するが、バスの残りの部分は依然として出力として働
いていることを認識することが重要である。
トを内部的にラッチし、それらを8ビット左にシフトし
てそれらを次の有意バイト位置にシフトする。
返される。ラッチし、それらを8ビット左にシフトし 6. バイトアドレス10でステップ2、3および4が繰り
返される。ラッチし、それらを8ビット左にシフトし 7. バイトアドレス11でステップ2、3および4が繰り
返される。
ら取り外す。
了を示す。
のDRAM選択情報をラッチする。同時に、RASアドレスビ
ットがDRAM 150にラッチされる。DRAM 150が選択され
る。
ラッチする。
60の32ビットデータを外部アドレス/データバス350に
乗せる。Wが364でローになり、この32ビットをDRAM 15
0に書き込む。
の過程が次のワードに対して続けられる。
8の詳細を示す。動作中には、バス要求はそれらがサー
ビスされるまで存在し続ける。CPU 70の要求には370に
おいて、1:パラメータスタック、2:リターンスタック、
3:データ取り出し、4:命令取り出しの順に優先順位が付
けられる。その結果得られるCPU要求信号およびDMA要求
信号はバス要求として374でバス許可信号を提供するバ
ス制御372に供給される。内部アドレスバス136とDMAカ
ウンタ376はマルチプレクサ378に入力を提供する。列ア
ドレスとカラムアドレスのいずれかがマルチプレクサ37
8からの出力である多重化されたアドレスバス380への出
力として提供される。多重化アドレスバス380と内部デ
ータバス90はそれぞれマルチプレクサ382へのアドレス
入力とデータ入力を提供する。シフトレジスタ384はラ
イン390および392上にマルチプレクサ386への列アドレ
スストローブ(RAS)1と二つの制御信号を、またマル
チプレクサ388へのカラムアドレスストローブ(CAS)1
と二つの制御信号を供給する。シフトレジスタ384もま
た出力イネーブル(OE)信号と書き込み(W)信号をラ
イン394および396上に、また制御信号をマルチプレクサ
382へのライン398上に供給する。シフトレジスタ384は
ライン400上のRUN信号を受取り、メモリサイクルを発生
し、アクセスが完了したときライン402上にMEMORY READ
Y信号を供給する。
オンチップレジスタを用いる。オンチップレジスタはオ
フチップRAMより高速にデータにアクセスする。一時記
憶にオンチップ後入れ先出しスタックを用いるマイクロ
プロセッサはごくわずかである。
とするため、オンチップレジスタに比べ高速に動作する
という利点を有する。(数理動作あるいは論理動作には
常に上の二つのスタック項目が出所として、またスタッ
クの上部が行先として用いられる。)このスタックの欠
点はある種の動作が繁雑になることである。特に、ある
種のコンパイラアクティビティでは効率上オンチップレ
ジスタを必要とする。
プレジスタ134とスタック74の両方を提供し、この両者
の利点を有する。
だけを有する機械でえられる速度の二倍である。ほとん
どのプログラマーおよび最適化コンパイラはこの機能を
利用することができる。
でき、ローカル変数は計算を行うためにスタックに転送
することができる。変数のアクセス速度は厳密なスタッ
ク機械で可能な速度の三倍から四倍である。
れまで最適化コンパイラおよび転送と数理/ロジック命
令の混合をコンピュータの設計者たちが的確に理解して
いなかったために用いられなかった。
なメモリ構成で機能するように設計しなければならな
い。データライン、アドレスラインおよび制御ラインに
加えられるメモリ負荷が増えるにつれて、信号のスイッ
チング速度は低下する。マイクロプロセッサ50はアドレ
ス/データバスを三様に多重化し、したがって位相間の
タイミングが重要である。この問題の対する従来のアプ
ローチは、バスの位相の間に大きな時間マージンを設け
てシステムがそれに接続された少数あるいは多数のメモ
リチップとともに機能するようにするというものであ
る。この場合速度を50%も犠牲にしなければならない。
バック技術を用いて、プロセッサがメモリバスのタイミ
ングを小さな負荷に対しては速く、大きな負荷に対して
は遅く調整することを可能とする。マイクロプロセッサ
50からの出力イネーブル(OE)ライン152は回路基板上
のすべてのメモリ150に接続されている。マイクロプロ
セッサ50への出力イネーブルライン152上のローディン
グは接続されたメモリ150の数に直接関係している。OE1
52が読み出しの後どれだけ急速にハイになるかをモニタ
ーすることによって、マイクロプロセッサ50はいつデー
タホールド時間が満足されたかを判定し、バス上に次の
アドレスを置く。
コントローラへのライン上に内部READY信号を発生するC
MOS入力バッファ410によってモニターされる。図15のグ
ラフのカーブ414および416は負荷の軽いメモリシステム
と負荷の大きいメモリシステムに見られる立ち上がり時
間の相違を示す。OEライン152がREADY信号を発生する所
定のレベルに達したとき、ドライバ418はOEライン152上
に出力イネーブル信号を発生する。
ビット命令を取り出し、図16に示すようにそれらを32ビ
ット命令レジスタ108に記憶する。あるクラスの“テス
トおよびスキップ”命令は四つの命令キャッシュ内で非
常に高速なジャンプ動作を非常に急速に実行することが
できる。
四つのバイト位置のどれであってもよい。テストが成功
である場合、スキップは命令レジスタ108中の残りの一
つ、二つあるいは三つの8ビット命令を飛び越え、次の
四つの命令のグループのレジスタ108へのローディング
を発生させる。図示するように、このスキップ動作はラ
イン422上で2ビットマイクロ命令カウンタ180をゼロに
リセットし、同時に次の命令グループをレジスタ108に
ラッチすることによって実施することができる。命令レ
ジスタ中のスキップに続くいかなる命令も新しい命令に
よって重ね書きされ実行されない。
ログラマがより長い条件つきのジャンプ命令の代わりに
それを頻繁に用いることができるという点である。スキ
ップはまたループがカウントダウンするとき、あるいは
スキップが次の命令グループにジャンプするとき出るマ
イクロループを可能とする。その結果非常に高速なコー
ドが得られる。
は単一の命令をスキップする能力を提供する。マイクロ
プロセッサ50は最大で三つの命令をスキップする能力を
提供する。
ら三つの命令を繰り返し実行するためのマイクロループ
命令を提供する。このマイクロループ命令は内部データ
バス90に接続されたループカウンタ92(図2)と連動し
て機能する。マイクロループを実行するために、プログ
ラムがループカウンタ92中の計数値を記憶する。マイク
ロループは命令レジスタ108の第1、第2、第3あるい
は最終バイト420に入れることができる。第1の位置に
入れた場合、実行によってループカウンタ92に記憶され
た数にマシンサイクルを掛けたものに等しい遅延が作成
されるだけである。第2、第3あるいは最終バイト420
に入れられた場合、マイクロループ命令が実行されると
ループ計数値がゼロであるかどうかがテストされる。ゼ
ロである場合、次の命令が継続して実行される。ゼロで
ない場合、ループカウンタ92が減分され、2ビットマイ
クロ命令カウンタがクリアされ、命令レジスタ中の前の
命令が再度実行される。
る。命令レジスタ108の外への完全なブロック移動を実
行することによって、移動速度が二倍になる。これはメ
モリサイクルが命令取り出しと共用されるのではなく、
そのすべてが移動に用いられるためである。このような
マイクロループのハードウエアによる実施態様は、相当
する機能を有する従来のソフトウエアによる実施よりは
るかに高速である。
い電圧揺動範囲、および半導体加工の大きなばらつきに
対しても動作する製品を作らなければならない。温度、
電圧および加工はすべてトランジスタの伝搬遅延に影響
する。従来、CPUの設計はこの三つのパラメータが悪い
場合に回路が定格クロック速度で動作するように成され
る。その結果、設計は論理上の最高性能の半分の速度で
クロックしなければならないようなものになり、悪い条
件でも適切に動作する。
てシステムクロックとそれに要する位相を発生する。ク
ロック回路430は処理性能をテストするのに用いられる
周知の“リングオシレータ”である。クロックはマイク
ロプロセッサ50の他の部分と同じシリコンチップ上に製
作される。
パラメータによって決まる。室温では周波数は100MHz近
辺である。摂氏70度では速度は50MHzである。リングオ
シレータ430はシステムクロックとして有用であり、そ
の段431は図19に示す位相0−位相3の出力433を生成す
る。これはその性能が同じシリコンダイ上の他のすべて
のトランジスタに同じ影響を及ぼすパラメータを反映す
るためである。リングオシレータ430からシステムタイ
ミングを発生することによって、CPU 70は常に可能な最
大周波数で動作するが速くなりすぎることはない。たと
えば、あるダイの加工が不良でトランジスタ速度が低い
場合、マイクロプロセッサ50のラッチとゲートは通常よ
り低速で動作する。マイクロプロセッサ50のリングオシ
レータクロック430はラッチやゲートと同じダイ上の同
じトランジスタから作られるため、これもまた低速で動
作し(低い周波数で発振する)、チップのロジックの残
りが適正に動作することを可能とする補償を提供する。
イミングを一つのクロックから発生する。この場合の問
題点は、システムの異なる部分がすべての動作の速度を
低下させる可能性があることである。マイクロプロセッ
サ50は図17に示すようなデュアルクロックスキームを提
供し、CPU 70はメモリコントローラ118(図2)の一部
をなすI/Oインターフェース432と非同期に動作し、I/O
インターフェース432はメモリとI/O装置の外界と同期し
て動作する。CPU 70は適応リングカウンタクロック430
を用いて可能な最高の速度で動作する。速度は温度、電
圧および加工に応じて四倍に変化する。ビデオ表示更新
やディスクドライブ読み出しおよび書き込み等の動作に
ついては外界はマイクロプロセッサ50に同期していなけ
ればならない。この同期はI/Oインターフェース432によ
って行われ、I/Oインターフェース432の速度は従来の水
晶クロック434によって制御される。インターフェース4
32はマイクロプロセッサ50からのメモリアクセス要求を
処理し、I/Oデータの存在を確認する。マイクロプロセ
ッサ50は一つのメモリサイクル中で最大で四つの命令を
取り出し、別のメモリアクセスを要求する前に非常に有
用な作業を行うことができる。CPU 70の可変速度をI/O
インターフェース432の固定速度から減結合することに
よって、それぞれが最適な性能を達成することができ
る。CPU 70とインターフェース432の再結合はライン436
上のハンドシェーク信号によって行われ、データ/アド
レスはバス90、136を通過する。
とき、システム性能はさらに増強される。トランジスタ
の近接性はDRAM 311とCPU 314のパラメータが互いに密
接に追従しあうことを意味する。室温では、CPU 314が1
00MHzで動作するだけではなく、DRAM 311はそれに対応
するに十分な速度でアクセスする。I/Oインターフェー
ス432によって行われる同期はDMAとI/Oポートの読み出
しおよび書き込みのためのものである。システムによっ
ては(たとえば計算機のように)I/O同期を全く必要と
しないものもあり、I/Oクロックはリングカウンタクロ
ックに結合される。
する。マイクロプロセッサ50は同じ演算コードを用いて
8、16、あるいは24ビットのオペランドを処理する。図
20には32ビット命令レジスタ108と8ビット命令を選択
する2ビットマイクロ命令レジスタ180を示す。二つの
クラスのマイクロプロセッサ50の命令は8ビットより大
きい場合がある。すなわち、ジャンプクラスと即時クラ
スである。ジャンプあるいは即時演算コードは8ビット
であるが、オペランドの長さは8、16あるいは24ビット
である場合がある。これが起こりうるのは、オペランド
は命令レジスタ中で右寄せされなければならないためで
ある。これはオペランドの最下位ビットが常に命令レジ
スタの最下位ビットに位置することを意味する。マイク
ロ命令カウンタ180は実行すべき8ビット命令を選択す
る。ジャンプあるいは即時命令が復号されると、2ビッ
トマイクロ命令カウンタの状態が必要な8、16、あるい
は24ビットのオペランドをデータバスのアドレス上に選
択する。選択されなかった8ビットバイトには復号器44
0とゲート442の動作によってゼロがロードされる。この
技術の利点は他のマイクロプロセッサ中の異なるオペラ
ンドサイズを指定するのに必要な演算コードの数を節約
できることである。
関係している。メモリが高速であるほどコンピュータも
高速である。高速メモリは高価であり、したがって少量
の高速メモリをそれが必要とされるメモリアドレスに移
動させる技術が開発されている。多量の低速メモリが高
速メモリによって恒常的に更新され、それによって大き
な高速メモリアレーの外観を呈している。この技術の一
般的な実施態様は高速メモリキャッシュとして知られて
いる。このキャッシュはメモリアクセスの衝撃を和らげ
る高速で動作するショックアブソーバと考えることがで
きる。ショックを吸収できる以上のメモリが必要とされ
るとき、これは底をつき低速メモリがアクセスされる。
大半のメモリ動作はこのショックアブソーバ自体で処理
することができる。
のスタック位置76および78に直接結合されたALU 80(図
2)を有する。したがってスタック74のアクセス時間は
プロセッサの実行速度に直接影響を及ぼす。マイクロプ
ロセッサ50のスタックアーキテクチャは図21に示す三倍
長キャッシュ技術に特に適しており、この三倍長キャッ
シュ技術はオンチップラッチ450の速度で動作する大き
なスタックメモリの外観を呈する。ラッチ450はこのチ
ップ上に設けられる最高速の形態のメモリ素子であり、
わずか3nsecでデータを送る。しかし、ラッチ450は多数
のトランジスタを必要とする。オンチップRAM 452はラ
ッチより少ないトランジスタしか要しないが、速度は5
分の1である(15nsecアクセス)。オフチップRAM 150
は最も低速の記憶装置である。マイクロプロセッサ50は
スタックメモリの階層を三つの相互接続されたスタック
450、452および454として組織する。ラッチスタック450
は最高速であり、最も頻繁に用いられる。オンチップRA
Mスタック452がその次である。オフチップRAMスタック4
54が最低速である。スタック変調はスタックの有効アク
セス時間を決定する。一群のスタック動作が決してスタ
ック上の四つ以上の連続する項目をプッシュもプルもし
ない場合、動作は3nsecのラッチスタック内ですべて行
われる。四つのラッチ456がすべていっぱいになったと
き、ラッチスタック450の下部にあるデータはオンチッ
プRAMスタック452の上部に書き込まれる。オンチップRA
Mスタック452中の16の位置458がいっぱいのとき、オン
チップRAMスタック452の下部にあるデータはオフチップ
RAMスタック454の上部に書き込まれる。いっぱいのスタ
ック450からデータを取り出すとき、ラッチスタックポ
インタ462からのスタック空きライン460がオンチップRA
Mスタック452からのデータを転送する前に四回の取り出
しが行われる。より低速のオンチップRAMアクセスを行
う前にラッチスタック450が空になるのを待つことによ
って、ラッチ456の高い有効速度がプロセッサに利用可
能となる。オンチップRAMスタック452とオフチップRAM
スタック454に同じ方法が用いられる。
ラクタルの発生に有用である。多項式は一連のシフトお
よび排他的論理和動作によって発生する。従来技術では
この目的のために特殊なチップが設けられる。
更することによって外部ハードウエアを用いることなく
高速で多項式を発生することができる。図21に示すよう
に、多項式は“順序”(フィードバック項としても知ら
れる)をCレジスタ470にロードすることによって発生
する。値31(32の繰り返しが起こる)がダウンカウンタ
427にロードされる。レジスタ474にゼロがロードされ
る。レジスタ476には開始多項式値がロードされる。多
項式命令が実行されると、Cレジスタ470がBレジスタ4
76の最下位ビットが1である場合、Aレジスタ474で排
他的論理和を取られる。あるいは、Aレジスタ474の内
容が変更されずにALU 80を通過する。このAとBの組合
せは次にシフタ478と480で右シフトされる(2で割られ
る)。この動作が指定された繰り返し数だけ自動的に繰
り返され、その結果得られる多項式がAレジスタ474に
残る。
32の乗算命令を提供する。乗算は順次1ビットあたり1
シフト/加算を要する、あるいは32ビットのデータに対
して32サイクルを要する。マイクロプロセッサ50は少な
いサイクル数を用いて小さな数による乗算を可能とする
高速乗算を提供する。図23はこの高速アルゴリズムの実
施に用いるロジックを示す。乗算を行うには、乗数のサ
イズ−1がダウンカウンタ472に入れられる。4ビット
の乗数に対しては数3がダウンカウンタ472に記憶され
る。Aレジスタ474にゼロがロードされる。この乗数は
ビット反転してBレジスタ476に書き込まれる。たとえ
ば、ビット反転された5(2値では0101)がBに1010と
して書き込まれる。被乗数がCレジスタ470に書き込ま
れる。高速乗算命令を実行すると、計数が終了したとき
Aレジスタ474にその結果が残る。この高速乗算命令は
多くのアプリケーションにおいて一つの数をそれよりは
るかに小さい数でスケーリングするという点で重要であ
る。32×32ビットの乗算と32×4ビットの乗算の間の速
度の差は8倍である。乗数の最下位ビットが“1"である
場合、Aレジスタ474とCレジスタ470の内容が加算され
る。乗数の最下位ビットが“0"である場合、Aレジスタ
474の内容が変更されずにALU 80を通過する。ALU 80の
出力は繰り返しのたびにシフタ482によって左シフトさ
れる。Bレジスタ476の内容は繰り返しのたびにシフト4
80によって右シフトされる。
んどにおいて高速Dラッチを用いている。低速のオンチ
ップRAMは二次記憶装置として用いられている。
な速度の階層を作成することにある。
ができ、他のほとんどすべての動作を40nsecで行うこと
ができる。
る種の技術が用いられた。それには次のものが含まれ
る。
ジスタ読み出し、実行、および記憶というような順次の
断片に細分化される。各断片には一つのマシンサイクル
を要する。大半の低減命令セットコンピュータ(RISC)
チップにおいて、命令は3サイクルから6サイクルを要
する。
un ComputerのRISCチップ)の70の異なる命令はそれぞ
れが5サイクルを有する。“パイプライニング”と呼ば
れる技術を用いて、連続する命令の異なる段階を重ねる
ことができる。
る場合を考えてみる。それぞれの家屋には基礎工事、か
まち組、建て入れおよび配線、屋根ぶき、および内装工
事を順次行わなければならない。それぞれの工事に一週
間かかるものとする。1軒の家屋を建てるには5週間必
要である。
か。それぞれの作業に従事する作業員グループは一つず
つであるが、基礎工事を行うグループが1軒目を終えた
ときすぐに彼らに2軒目に着工させることができる、他
も同様である。5週間後には1軒目が完成しており、さ
らに5軒分の基礎工事がすでに終わっている。かまち
組、建て入れおよび配線、屋根ぶき、内装工事を行う各
作業員をすべて作業させていた場合、5週間目以降は毎
週1軒ずつ新しい家が完成することになる。
を一つのマシンサイクル中に実行する。実際には、RISC
チップは各マシンサイクルで五つの命令のうちの5分の
1を実行する。そしてこの五つの命令が順に行われる場
合、それぞれのマシンサイクルで一つの命令が完了す
る。
ておけるかどうかということである。分岐や呼び出しと
いったシーケンス外の命令が発生するたびに、パイプを
次のシーケンスで再度満たさなければならない。この結
果生じるパイプラインを再充填するための無駄時間は、
IF/THEN/ELSEの文あるいはサブルーチンが多数発生する
場合にはかなり大きくなる。
っていない。速度を上げるためにこのマイクロプロセッ
サので用いている方法は、命令取り出しを前に取り出さ
れた命令の実行に重ねて行うというものである。これに
よって命令(最も一般的なもの)の半分以上が20nsecの
単一のマシンサイクル中に完全に実行される。これが可
能なのは次の理由による。
になる前に計算され、その実行にはラッチング信号を要
するのみである。
による高速動作から隠されている。
ロセッサには問題がある。このチップのユーザーにとっ
ての利点はパイプラインの停止が起こりえないことから
最終的なスループットがより高速になることである。使
用可能性フラグビットを用いたパイプラインの同期やそ
の他の同様なパイプライン処理はこのマイクロプロセッ
サには不要である。
る命令が前の命令によてセットされたフラグがテスト可
能になるまで最大で4サイクル待たなければならないも
のもある。ハードウエアおよびソフトウエアデバッギン
グもいくぶん簡単である。それはユーザーがパイプ中で
五つの命令を同時に見る必要がないためである。
速のものはメモリへのアクセスである。メモリはデータ
が読み出されるか書き込まれるときにアクセスされる。
メモリはまた命令が取り出されるとき読み出される。マ
イクロプロセッサ50は次の命令の取り出しを前に取り出
された命令の実行の背後に隠すことができる。マイクロ
プロセッサ50は命令を4バイトの命令グループとして取
り出す。一つの命令グループは一つから四つの命令を含
むことができる。命令グループの実行に要する時間量は
簡単な命令の場合の4サイクルから乗算の場合の64サイ
クルまでの範囲に及ぶ。
セッサの命令復号器がその四つのバイトすべての最上位
ビットを見る。命令の最上位ビットがメモリアクセスが
必要であるかどうかを決定する。例えば、呼び出し、取
り出し、および記憶はすべてメモリアクセスの実行を必
要とする。四つのバイトすべてが非ゼロの最上位ビット
を有する場合、マイクロプロセッサは次の4バイト命令
グループのメモリ取り出しを開始する。グループ中の最
後の命令の実行が終了すると、次の4バイトの命令グル
ープが実行可能であり、データバス上で待機しており、
命令レジスタにラッチされるのを待つばかりとなってい
る。この4バイトの命令グループの実行に四つ以上のサ
イクルを要し、次の順次のアクセスがカラムアドレスス
トローブ(CAS)サイクルであった場合、この命令取り
出しは完全に実行と重複している。
からなる。
る間それをホールドする。
およびトップの次のパラメータスタック項目を用いる。
その結果はパラメータスタック上にプッシュされる。
ックに載せられる。YレジスタはRAM位置へのポインタ
として用いられる。Yレジスタはリターンスタックのト
ップ項目であるため、インデックスのネスティングは簡
単である。
に設けられる。) −“1"の場合システムクロックを1023で割って電力消費
を低減する。“0"の場合全速で実行。(このビットがセ
ットされている場合オンチップカウンタは減速する。) −外部割込み1をイネーブルする。
ンタ。
さ。
タ。
さ。
よびメモリ記憶はすべて32ビットである。メモリバスア
ドレスは30ビットである。最下位の2ビットはある種の
アドレス指定モードにおいて4バイトのうちの1バイト
の選択に用いられる。プログラムカウンタ、Xレジス
タ、およびYレジスタはDラッチとして実施され、その
出力はメモリアドレスバスとバス増分器/減分器に行
く。これらのレジスタのうちの一つの増分は迅速に発生
可能である。これは増分された値がすでに増分/減分ロ
ジックを介してリップルされており、ラッチにクラック
するだけでよい。分岐および呼び出しは32ビットワード
境界で行われる。
OP−IF−NOT−DONEである。これらの命令は有効アドレ
スの計算を必要とする。多くのコンピュータにおいて、
有効アドレスは現在のプログラムカウンタに対してオペ
ランドを加算あるいは減算することによって計算され
る。この数理演算を行うには4から7のマシンサイクル
を要し、マシンの実行を確実に停滞させてしまう。この
マイクロプロセッサの方法は必要な数理演算をアセンブ
ル時あるいはリンキング時に実行しまたランタイムにお
いてはるかに簡単な“次のページへの増分”あるいは
“前のページへの減分”動作を行う。その結果、このマ
イクロプロセッサは一つのサイクル中に実行を分岐す
る。
ウンタの上位6ビットによって定義される。
ウンタの上位14ビットによって定義される。
ウンタの上位22ビットによって定義される。
ロアドレス指定) 01 −上位ビットをを増分する(次のページを使
用) 10 −上位ビットを減分する(前のページを使用) 11 −上位ビットを変更しない(現在のページを使
用) YYYYYYYY−アドレスオペランドフィールド。このフィー
ルドは常に2ビット左シフトされ(バイトアドレスでは
なくワードを発生し)、プログラムカウンタにロードさ
れる。マイクロプロセッサ命令復号器はこの四つのバイ
ト内の命令演算コードの位置によってこのオペランドフ
ィールドの幅を計算する。
に到達するのに必要な最短のオペランドを用い、先行バ
イトが他の命令をホールドするのに用いることができる
ようにしている。有効アドレスは次のものを組み合わせ
ることによって計算される。
ド、四つの可能なアドレス指定モードのうちの一つを用
いる。
に二つの他の命令の実行をホールドすることのできる4
バイトメモリ取り出し中のスペースを示す。バイト3は
(11ビットで示される)現在のページ内の呼び出し命令
(000000)を示す。バイト4は16進数98がプログラムカ
ウンタのビット2からビット10に入れられることを示
す。(呼び出しあるいは分岐は常にワード境界に向か
い、したがって二つの最下位ビットは常にゼロにセット
される。)この命令の効果は現在のページのワード位置
16進数98においてサブルーチンを呼び出すことである。
プログラムカウンタの上位22ビットは現在のページを定
義し、変更されない。
すると、これは2種で表すと次の通りである。
ログラムカウンタ バイト1は分岐命令の演算コード(000001)を示し、ま
た“01"は次のページの選択を表す。バイト2、3、お
よび4はアドレスオペランドである。これらの24ビット
は左に二つシフトされ、ワードアドレスを定義する。16
進数0156を左に二つシフトすると16進数0558になる。こ
れは24ビットオペランド命令であるため、プログラムカ
ウンタの上位6ビットは現在のページを定義する。これ
らの6ビットは増分されて次のページを選択する。この
命令を実行すると、プログラムカウンタに16進数0400 0
558がロードされる。これは2値で表すと次の通りであ
る。
ログラムカウンタ 命令 CALL−LONG 0000 00XX −YYYYYYYY−YYYYYYYY−YYYYYYYY プログラムカウンタに指定された有効ワードアドレス
をロードする。現在のPC内容をリターンスタック上にプ
ッシュする。
ップリターンスタックがいっぱいである場合、リターン
スタックが外部メモリサイクルを強制する。
をロードする。
値がゼロに等しいとき、プログラムカウンタに指定され
た有効ワードアドレスをロードする。トップ値がゼロに
等しくないとき、プログラムカウンタを増分し、次の命
令を取り出し実行する。
タに指定された有効ワードアドレスをロードする。ルー
プカウンタがゼロである場合、ループカウンタを減分
し、プログラムカウンタを増分し、次の命令を取り出し
実行する。
命令によって行われる。このマイクロプロセッサで8ビ
ット命令が可能であるのは、暗示スタックアドレス指定
を多く用いているためである。32ビットアーキテクチャ
の多くは実行すべき動作の指定に8ビットを用いるが、
二つの出所と一つの行先を指定するには別の24ビットを
用いる。
ッサ50は出所オペランドをトップスタック項目および次
のスタック項目として指定することによって、スタック
に固有の利点を生かしている。数理演算および論理演算
が行われ、オペランドがスタックから取り出され、結果
がスタックに戻される。この結果命令ビットおよびレジ
スタを非常に有効に活用することができる。このような
状況がHewlett Packardの計算機(これはスタックを用
いる)とスタックを用いないTexas Instrumentの計算機
の間に存在する。HP製品での同じ動作をするとTIの場合
のキーストロークの1/2か1/3のキーストロークしか要し
ない。
テクチャ上の技術革新が可能となる。すなわち、単一の
32ビットメモリサイクルでの四つの命令の取り出しであ
る。複数命令取り出しの利点は次の通りである。
バス)と同様の性能が得られる。
四つの命令グループ内部のマイクロループは探索とブロ
ック移動に有効である。
れる32ビットのかたまりの中の命令を取り出す。これら
の四つのバイトは四つの8ビット命令あるいは8ビッ
ト、16ビットあるいは24ビットの命令が混合したものを
含む場合がある。マイクロプロセッサ中のスキップ命令
は4倍と命令グループ中の残りの命令すべてをスキップ
して次の4バイト命令グループを得るメモリ取り出しを
発生させる。条件つきスキップを3バイト分岐と組み合
わせると条件つき分岐が作成される。またスキップはあ
る4命令グループ中の残りのバイトを使用することがで
きない状況でも用いることができる。スキップは一つの
サイクルで実行され、三つのNOPのグループは三つのサ
イクルを要する。
いかなる命令もスキップする。プログラムカウンタの最
上位の30ビットを増分し、次の4バイト命令グループの
取り出しに進む。
ロである場合、4バイト命令グループ中の残りのいかな
る命令もスキップする。プログラムカウンタの最上位の
30ビットを増分し、次の4バイト命令グループの取り出
しに進む。トップ項目がゼロでない場合、次の順次命令
を実行する。
が“0"に等しい最上位ビット(符号ビット)を有する場
合、4バイト命令グループ中の残りのいかなる命令もス
キップする。プログラムカウンタの最上位の30ビットを
増分し、次の4バイト命令グループの取り出しに進む。
トップ項目が“0"でない場合、次の順次命令を実行す
る。
桁あげフラグが“1"に等しくない場合、4バイト命令グ
ループ中の残りのいかなる命令もスキップする。プロプ
ログラムカウンタの最上位の30ビットを増分し、次の4
バイト命令グループの取り出しに進む。桁あげが“1"に
等しい場合、次の順次の命令を実行する。
イクル遅延する)。
目が“0"に等しくない場合、4バイト命令グループ中の
残りのいかなる命令もスキップする。プログラムカウン
タの最上位の30ビットを増分し、次の4バイト命令グル
ープの取り出しに進む。トップ項目が“0"に等しい場
合、次の順次命令を実行する。
の最上位ビット(符号ビット)が“1"にセットされてい
る場合、4バイト命令グループ中の残りのいかなる命令
もスキップする。プログラムカウンタの最上位の30ビッ
トを増分し、次の4バイト命令グループの取り出しに進
む。トップ項目の最上位ビット(符号ビット)が“0"に
セットされている場合、次の順次命令を実行する。
げフラグが“1"にセットされている場合、4バイト命令
グループ中の残りのいかなる命令もスキップする。プロ
グラムカウンタの最上位の30ビットを増分し、次の4バ
イト命令グループの取り出しに進む。桁あげフラグが
“0"である場合、次の順次命令を実行する。
チャに特有の機能であり、4バイト命令中での制御され
たルーピングを可能とする。マイクロループ命令はルー
プカウンタが“0"であるかどうかをテストし、また別の
テストを行うこともできる。ループカウンタが“0"でな
く、またテストに合格した場合、4バイト命令グループ
の第1の命令に対して命令実行が継続され、ループカウ
ンタは減分される。マイクロループ命令は通常4バイト
命令グループの最終バイトであるが、これは任意のバイ
トとすることができる。ループカウンタが“0"である、
あるいはテストに合格しない場合、次の命令に対して命
令実行が継続される。マイクロループ命令が通常4バイ
ト命令グループの最終バイトである場合、プログラムカ
ウンタの最上位の30ビットが増分され、次の4バイト命
令グループがメモリから取り出される。“0"に等しいル
ープカウンタ上のループが終了すると、ループカウンタ
は“0"にとどまる。マイクロループは移動や探索といっ
た短い繰り返し作業をメモリからの取り出し命令を減速
することなく行うことを可能にする。
に出所の開始アドレスがロードされる。Yには行先の開
始アドレスがロードされる。ループカウンタには移動す
べき32ビットワードの数がロードされる。このマイクロ
ループはそれがゼロに達するまで取り出しと記憶を行い
ループカウンタをカウントダウンする。QQQQQQQQはいか
なる命令も続きうることを意味する。
合、4バイト命令グループ中の第1の命令について実行
を継続する。ループカウンタを減分する。ループカウン
タが“0"である場合、次の命令の実行を継続する。
メータスタックのトップ項目が“0"である場合、4バイ
ト命令グループ中の第1の命令について実行を継続す
る。ループカウンタを減分する。ループカウンタが“0"
である場合、あるいはトップ項目が“1"である場合、次
の命令の実行を継続する。
最上位ビット(符号ビット)が“0"である場合、4バイ
ト命令グループ中の第1の命令について実行を継続す
る。ループカウンタを減分する。ループカウンタが“0"
である場合、あるいはトップ項目が“1"である場合、次
の命令の実行を継続する。
でなく、トップと次で発見された浮動小数点の指数の位
置が合っていない場合、4バイト命令グループの第1の
命令について実行を継続する。ループカウンタを減分す
る。ループカウンタが“0"である場合、あるいはこれら
の指数の位置が合っている場合、次の命令の実行を継続
する。この命令は二つの浮動少数点数を位置合わせする
ための特殊なシフト命令と組み合わせるように特に設計
したものである。
る。
パラメータスタックのトップ項目が“0"である場合、4
バイト命令グループ中の第1の命令について実行を継続
する。ループカウンタを減分する。ループカウンタが
“0"である場合、あるいはトップ項目が“1"である場
合、次の命令の実行を継続する。
パラメータスタックのトップ項目の最上位ビット(符号
ビット)が“1"である場合、4バイト命令グループ中の
第1の命令について実行を継続する。ループカウンタを
減分する。ループカウンタが“0"である場合、あるいは
パラメータスタックの最上位ビットが“0"である場合、
次の命令の実行を継続する。
く、トップと次で発見された浮動少数点数の指数の位置
が合っていない場合、4バイト命令グループの第1の命
令について実行を継続する。ループカウンタを減分す
る。ループカウンタが“0"である場合、あるいはこれら
の指数の位置が合っている場合、次の命令の実行を継続
する。
常のプログラム実行の再指令が発生する。いずれの場合
も、現在のプログラムカウンタがリターンスタック上に
プッシュされ、マイクロプロセッサはサブルーチンある
いは割込みサービスルーチンを実行した後、プログラム
中の位置に戻ることができる。
は、プログラムカウンタはすでに増分されており、現在
実行中の4バイトグループに続く4バイト命令グループ
を指示している。命令復号ロジックはマイクロプロセッ
サが1サイクルでテストを行い、そのテストの結果を条
件とするリターンを実行することを可能とする。リター
ンはリターンスタックからアドレスを取り出し、それを
プログラムカウンタに記憶する。
取り出し、それをプログラムカウンタに転送する。
“0"である場合、リターンスタックからトップ項目を取
り出し、それをプログラムカウンタに転送する。そうで
ない場合、次の命令を実行する。
目の最上位ビット(符号ビット)が“1"である場合、リ
ターンスタックからトップ項目を取り出し、それをプロ
グラムカウンタに転送する。そうでない場合、次の命令
を実行する。
れた浮動小数点の指数の位置が合っていない場合、リタ
ーンスタックからトップ項目を取り出し、それをプログ
ラムカウンタに転送する。そうでない場合、次の命令を
実行する。
項目が“0"でない場合、リターンスタックからトップ項
目を取り出し、それをプログラムカウンタに転送する。
そうでない場合、次の命令を実行する。
目の最上位ビット(符号ビット)が“1"である場合、リ
ターンスタックからトップ項目を取り出し、それをプロ
グラムカウンタに転送する。そうでない場合、次の命令
を実行する。
小数点数の指数の位置が合っている場合、リターンスタ
ックからトップ項目を取り出し、それをプログラムカウ
ンタに転送する。そうでない場合、次の命令を実行す
る。
と同様に、チップ上で可能な限り多くの動作を最大速度
で処理するよう最適化されている。外部メモリ動作はオ
ンチップメモリの速度が4nsecから30nsecであるのに対
して80nsecから220nsecを要する。外部メモリをアクセ
スしなければならない時間がある。
る。
時に増分あるいは減分することのできる30ビットメモリ
ポインタ。
時に増分あるいは減分することのできる30ビットメモリ
ポインタ。
示するのに用いられる30ビットメモリポインタ。外部メ
モリはPCに対するアドレスでアクセスすることができ
る。オペランドは他のコンピュータでは“即時”あるい
は“直定数”と呼ぶこともある。メモリポインタとして
用いられるときは、各動作の後PCも増分される。
の内容を取り出し、それをパラメータスタック上にプッ
シュする。Xは変更されない。
の内容を取り出し、それをパラメータスタック上にプッ
シュする。Yは変更されない。
た32ビットメモリの内容を取り出し、それをパラメータ
スタック上にプッシュする。取り出しの後、Xの最上位
の30ビットを増分し、次の32ビットワードアドレスを指
示する。
た32ビットメモリの内容を取り出し、それをパラメータ
スタック上にプッシュする。取り出しの後、Yの最上位
の30ビットを増分し、次の32ビットワードアドレスを指
示する。
た32ビットメモリの内容を取り出し、それをパラメータ
スタック上にプッシュする。取り出しの後、Xの最上位
の30ビットを減分し、前の32ビットワードアドレスを指
示する。
た32ビットメモリの内容を取り出し、それをパラメータ
スタック上にプッシュする。取り出しの後、Yの最上位
の30ビットを減分し、前の32ビットワードアドレスを指
示する。
り出し、それをXによって指示された記憶場所に記憶す
る。Xは変更されない。
り出し、それをYによって指示された記憶場所に記憶す
る。Yは変更されない。
のトップ項目を取り出し、それをXによって指示された
記憶場所に記憶する。記憶の後、Xの最上位の30ビット
を増分し、次の32ビットワードアドレスを指示する。
のトップ項目を取り出し、それをYによって指示された
記憶場所に記憶する。記憶の後、Yの最上位の30ビット
を増分し、次の32ビットワードアドレスを指示する。
のトップ項目を取り出し、それをXによって指示された
記憶場所に記憶する。記憶の後、Xの最上位の30ビット
を減分し、次の32ビットワードアドレスを指示する。
のトップ項目を取り出し、それをYによって指示された
記憶場所に記憶する。記憶の後、Yの最上位の30ビット
を減分し、次の32ビットワードアドレスを指示する。
た32ビットメモリの内容を取り出し、それをパラメータ
スタック上にプッシュする。取り出しの後、プログラム
カウンタの最上位の30ビットを増分し、次の32ビットワ
ードアドレスを指示する。
記憶場所を指示している。これには32ビット即時オペラ
ンドをローディングする効果がある。これは8ビット命
令であり、したがって4バイト命令取り出し中に他の8
ビット命令と結合される。ひとつの4バイト命令取り出
しで一つから四つまでのFETCH−VIA−PC命令を持つこと
ができる。PCはFETCH−VIA−PCが実行されるたびに増分
し、、したがってスタック上に即時オペランドをプッシ
ュすることが可能である。この四つのオペランドはこの
命令に続く四つの記憶場所で発見される。
指示された32ビットメモリの内容を取り出す。Xの二つ
の最下位ビットを用いて32ビットメモリ取り出しからの
四つのバイトのうちの一つを選択し、そのバイトを32ビ
ットフィールドで右寄せし、選択されたバイトを前に先
行ゼロを付けてパラメータスタック上にプッシュする。
指示された32ビットメモリの内容を取り出す。パラメー
タスタックからトップ項目を取り出す。Xの二つの最下
位ビットを用いて最下位バイトを32ビットメモリデータ
に入れ、その32ビットのエンティティXの最上位の30ビ
ットによって指示された場所に書き込む。
74上にプッシュする。オンチップスタックがいっぱいで
ある場合、このスタックはオフチップメモリスタックに
オーバーフローし、その結果メモリサイクルが増える。
いかなる記憶命令もパラメータスタック74からある値を
取り出す。オンチップスタックが空である場合、オフチ
ップメモリスタックから値を取り出すためのメモリサイ
クルが生成される。
が多い。これらの変数は特定の作業手順に用いられ放棄
される。ネスティングされた作業手順の場合には、これ
らの変数の層を維持しなければならない。オンチップ記
憶装置はオフチップRAMより最大で5倍高速であり、し
たがってローカル変数をチップ上に維持する手段があれ
ば動作をより高速にすることができる。マイクロプロセ
ッサ50はローカル変数のオンチップ記憶、およびリター
ンスタックを介した複数レベルの変数のネスティングの
両方の能力を提供する。
実施される。リターンスタック134の最も一般的な用途
はサブルーチンおよび割込み呼び出しからのリターンア
ドレスを記憶することである。このマイクロプロセッサ
はこれらの16の位置をアドレス指定可能なレジスタとし
て用いることを可能にする。これえらの16の位置は0−
15からのリターンスタック関連アドレスを示す二つの命
令によって読み出しおよび書き込みすることができる。
高レベル作業手順がネスティングされると、現在の作業
手順変数が前の作業手順変数をさらにリターンスタック
134にプッシュする。最後に、リターンスタックはオフ
チップRAMに自動的にオーバーフローする。
プに対してXXXX番目の位置を読み出す(XXXXは0000−11
11の2値の数である)。この項目読み出しをパラメータ
スタックにプッシュする。
このプッシュ動作はスタックの1項目が外部RAMに自動
的に記憶されるとき一つのメモリサイクルを発生させ
る。この位置を選択するロジックはモジュロ16減算を行
う。四つのローカル変数がすでにリターンスタック上に
プッシュされており、ある命令が5番目の項目を読み出
そうとする場合、未知のデータが返される。
ップ項目を取り出し、それをリターンスタックのトップ
に対してXXXX番目の位置に書き込む。(XXXXは0000−11
11の2値の数である)。
ップ動作は外部RAMからパラメータスタック項目を取り
出すためのメモリサイクルを発生させる。この位置を選
択するロジックはモジュロ16減算を行う。四つのローカ
ル変数がすでにリターンスタック上にプッシュされてお
り、ある命令が5番目の項目への書き込みを行おうとす
る場合、リターンアドレスを破壊する、あるいは他の大
きな破壊が発生する可能性がある。
令 DROP−パラメータスタックからトップ項目を取り出しそ
れを放棄する。
ータスタックのデータと交換する。
をパラメータスタック上にプッシュする。
ータスタック上にプッシュする。
トップ項目を取り出し、それをパラメータスタック上に
プッシュする。
ク上にプッシュする。
メータスタック上にプッシュする。
ーンスタック上にプッシュする。
タック上にプッシュする。
(右寄せされ先行ゼロが加えられる)をパラメータスタ
ック上にプッシュする。
目を取り出し、それをループカウンタに記憶する。
らトップ項目を取り出し、それをリターンスタックにプ
ッシュする。
り出し、それをXレジスタに記憶する。
項目を取り出し、それをスタックポインタに記憶する。
項目を取り出し、それをリターンスタックポインタに記
憶する。
取り出し、それをモードビットに記憶する。
り出し、それを10の専用出力ビットに出力する。
クをプッシュする、あるいは取り出す命令はスタックが
オンチップメモリとオフチップメモリの間でオーバーフ
ローするときメモリサイクルを発生させることがある。
パラメータスタック上にプッシュするのに用いられる。
この命令はこのプッシュすべき8ビットが4バイト命令
グループの最終バイトにあることを必要とする。直定数
をロードするこの命令の演算コードは命令グループ中の
他の三つのバイトのうちのいずれにあってもよい。
す。バイト1が実行されるときバイト4からの2値0000
1111(16進数の0f)がパラメータスタック上にプッシュ
される(右寄せされ先行ゼロが付けられる)。次にバイ
ト2とバイト3の命令が実行される。マイクロプロセッ
サの命令復号器はバイト4を実行しないことを知ってい
る。三つの同じ8ビットの値を次のようにプッシュする
ことが可能である。
バイト4で発見した8ビットの値をパラメータスタック
上にプッシュする。
二つのオペランドの出所用に、また結果の行先として用
いた。スタックの構成は式の評価に特に便利な構成にな
っている。トップはパラメータスタック74のトップの値
を示す。ネクストはパラメータスタック74のトップの値
の次の値を示す。
出し、これらの二つのオペランドに論理積演算を行いそ
の結果をパラメータスタック上にプッシュする。
し、これらの二つのオペランドに論理和演算を行い、そ
の結果をパラメータスタック上にプッシュする。
出し、これらの二つのオペランドに排他的論理和演算を
行い、その結果をパラメータスタック上にプッシュす
る。
を取り出し、ネクストのすべてのビットをトグルし、ト
ップに論理積演算を行い、その結果をパラメータスタッ
ク上にプッシュする(この命令を理解する別の方法とし
ては、これをネクストにセットされたトップの中のすべ
てのビットをクリアするものと考えることである)。
スタック74のトップ項目とトップの次の項目を取り出
す。その結果はパラメータスタックにプッシュされる。
桁あげフラグがALU結果の“33番目のビット”をラッチ
するのに用いられる。
の項目を取り出し、その値を加算し、その結果をパラメ
ータスタックにプッシュする。桁あげフラグを変更する
こもできる。
とトップの次の項目を取り出し、その値を加算する。桁
あげフラグが“1"である場合、その結果を増分する。最
終結果をパラメータスタックにプッシュする。桁あげフ
ラグを変更することもできる。
し、パラメータスタックのトップから三番目の項目を読
み出す。その値を加算し、その結果をパラメータスタッ
クにプッシュする。桁あげフラグを変更することもでき
る。
の項目を取り出す。トップからネクストを引き、その結
果をパラメータスタックにプッシュする。桁あげフラグ
を変更することもできる。
とトップの次の項目を取り出す。トップからネクストを
引く。桁あげフラグが“1"である場合、その結果を増分
する。最終結果をパラメータスタックにプッシュする。
桁あげフラグを変更することもできる。
の次の項目を取り出す。トップからネクストを引く。そ
の結果が“0"に等しい最上位ビットを有する(結果は正
である)場合、その結果をパラメータスタックにプッシ
ュする。その結果が“1"に等しい最上位ビットを有する
(結果は負である)場合、トップの古い値をパラメータ
スタックにプッシュする。桁あげフラグが影響されるこ
ともある。
ビットシフトする。桁あげフラグはトップの最下位ビッ
トにシフトされる。
ビットシフトする。トップの最下位ビットが桁あげフラ
グにシフトされる。ゼロがトップの最上位ビットにシフ
トされる。
目を64ビット数の最上位ワードとして、ネクストスタッ
ク項目を最下位ワードとして扱うと、結合された64ビッ
トのエンティティは左に1ビットシフトされる。桁あげ
フラグはネクストの最下位ビットにシフトされる。
目を64ビット数の最上位ワードとして、ネクストスタッ
ク項目を最下位ワードとして扱うと、結合された64ビッ
トのエンティティは右に1ビットシフトされる。ネクス
トの最下位ビットは桁あげフラグにシフトされる。ゼロ
はトップの最上位ビットにシフトされる。
位置をオフチップRAMに移す(この命令は多重タスク化
アプリケーションに有用である)。この命令はオンチッ
プスタックの深さを保持するカウンタにアクセスし、0
から16までの外部メモリサイクルを要することがある。
位置をオフチップRAMに移す(この命令は多重タスク化
アプリケーションに有用である)。この命令はオンチッ
プリターンスタックの深さを保持するカウンタにアクセ
スし、0から16までの外部メモリサイクルを要すること
がある。
の発明の態様および細部にさまざまな変更を加えうるこ
とは明らかであろう。かかる変更は添付クレームの精神
と範囲に含まれるものである。
Claims (4)
- 【請求項1】算術論理装置、前記の算術論理装置に接続
された第1の後入れ先出しスタック、及びレジスタファ
イルからなり、前記の第1の後入れ先出しスタックが前
記の算術論理装置の第1の入力に接続されたトップ項目
を記憶する手段と前記の算術論理装置の第2の入力に接
続されたネクスト項目を記憶する手段を含み、前記の算
術論理装置が前記のトップ項目を記憶する手段に接続さ
れた出力を有し、前記のトップ項目を記憶する手段が前
記のレジスタファイルに入力を提供するように接続され
たマイクロプロセッサシステム。 - 【請求項2】中央処理装置、メモリ、前記の中央処理装
置を前記のメモリに接続するバスからなり、前記の中央
処理装置は算術論理装置と前記の算術論理装置に接続さ
れた後入れ先出しスタックを含み、前記の後入れ先出し
スタックが前記の算術論理装置の第1の入力に接続され
たトップ項目を記憶する手段と前記の算術論理装置の第
2の入力に接続されたネクスト項目を記憶する手段を含
み、前記の算術論理装置が前記のトップ項目を記憶する
手段に接続された出力を有し、前記の後入れ先出しスタ
ックがラッチとして構成された第1の複数のスタック要
素と、ランダムアクセスメモリとして構成された第2の
複数のスタック要素とを有し、前記の第1および第2の
複数のスタック要素と前記の中央処理装置が単一の集積
回路内に設けられ、前記の後入れ先出しスタックがさら
に前記の単一の集積回路の外部のランダムアクセスメモ
リとして構成された第3の複数のスタック要素を有する
マイクロプロセッサシステム。 - 【請求項3】単一の集積回路中のメイン中央処理装置と
別の直接メモリアクセス中央処理装置とからなるマイク
ロプロセッサであり、前記のメイン中央処理装置は算術
論理装置、前記の算術論理装置に入力を提供するように
接続されたトップ項目レジスタとネクスト項目レジスタ
付きの第1の後入れ先出しスタックを有し、前記の算術
論理装置の出力は前記のトップ項目レジスタに接続さ
れ、前記のトップ項目レジスタはまた内部データバスに
入力を提供するように接続され、前記の内部データバス
はループカウンタに双方向に接続され、前記のループカ
ウンタは減分器に接続され、前記の内部データバスはス
タックポインタ、リターンスタックポインタ、モードレ
ジスタ、および命令レジスタに双方向に接続され、前記
の内部データバスはメモリコントローラ、リターン後入
れ先出しスタックのYレジスタ、Xレジスタおよびプロ
グラムカウンタに接続され、前記のYレジスタ、Xレジ
スタおよびプログラムカウンタは内部アドレスバスへの
出力を提供し、前記の内部アドレスバスは前記のメモリ
コントローラへのと増分器への入力を提供し、前記の増
分器は前記の内部データバスに接続され、前記の直接メ
モリアクセス中央処理装置は前記のメモリコントローラ
への入力を提供し、前記のメモリコントローラはアドレ
ス/データバスとランダムアクセスメモリへの接続のた
めの複数の制御ラインを有するマイクロプロセッサ。 - 【請求項4】マイクロプロセッサシステムにおいて後入
れ先出しスタックを動作させる方法であって、ラッチと
して構成された第1の複数のスタック要素、ランダムア
クセスメモリとして構成された第2の複数のスタック要
素を提供し、第1および第2の複数のスタック要素をマ
イクロプロセッサとともに単一の集積回路内に設け、こ
の単一の集積回路の外部のランダムアクセスメモリとし
て構成された第3の複数のスタック要素を提供し、後入
れ先出しスタックに項目を記憶させ、第2の複数のスタ
ック要素にアクセスすることなく第1の複数のスタック
要素から第1の複数の項目を取り出し、第1の複数のス
タック要素が空であるときは第2の複数のスタック要素
から第1の複数の項目を取り出し、第3の複数のスタッ
ク要素にアクセスすることなく第2の複数のスタック要
素から第2の複数の項目を取り出し、第2の複数のスタ
ック要素が空であるときは第3の複数のスタック要素か
ら第2の複数の項目を取り出す方法。
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 JPH05502125A (ja) | 1993-04-15 |
JP2966085B2 true 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) | EP0497772A4 (ja) |
JP (1) | JP2966085B2 (ja) |
AU (1) | AU6067290A (ja) |
DE (1) | DE69033568T2 (ja) |
WO (1) | WO1991002311A1 (ja) |
Families Citing this family (168)
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 |
EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
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 | マイクロコンピュータ |
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 |
US7167993B1 (en) * | 1994-06-20 | 2007-01-23 | Thomas C Douglass | Thermal and power management for computer systems |
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 |
JP3739797B2 (ja) * | 1995-10-06 | 2006-01-25 | パトリオット サイエンティフィック コーポレイション | 縮小命令セット・コンピューター・マイクロプロセッサーの構造 |
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 | メモリ試験装置 |
JP3743789B2 (ja) * | 1996-10-24 | 2006-02-08 | 株式会社ルネサステクノロジ | メモリとプロセサとが同一チップ上に形成されたマイクロコンピュータ |
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 |
JP2002525751A (ja) * | 1998-09-23 | 2002-08-13 | インフィネオン テクノロジース アクチエンゲゼルシャフト | プログラミング制御されるユニット |
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 |
US6332215B1 (en) | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
US7225436B1 (en) | 1998-12-08 | 2007-05-29 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
JP2001084138A (ja) * | 1999-09-13 | 2001-03-30 | Mitsubishi Electric Corp | 半導体装置 |
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 구동 제어회로 |
US6691219B2 (en) * | 2000-08-07 | 2004-02-10 | Dallas Semiconductor Corporation | Method and apparatus for 24-bit memory addressing in microcontrollers |
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 |
US20020069402A1 (en) * | 2000-10-05 | 2002-06-06 | Nevill Edward Colles | Scheduling control within a system having mixed hardware and software based instruction execution |
EP1197847A3 (en) * | 2000-10-10 | 2003-05-21 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
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 |
WO2002048333A2 (en) * | 2000-12-12 | 2002-06-20 | Lexicon Genetics Incorporated | 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 |
GB2376099B (en) * | 2001-05-31 | 2005-11-16 | Advanced Risc Mach Ltd | Program instruction interpretation |
GB2376097B (en) | 2001-05-31 | 2005-04-06 | Advanced Risc Mach Ltd | Configuration control within data processing systems |
GB2376100B (en) * | 2001-05-31 | 2005-03-09 | Advanced Risc Mach Ltd | Data processing using multiple instruction sets |
GB2376098B (en) * | 2001-05-31 | 2004-11-24 | Advanced Risc Mach Ltd | Unhandled operation handling in multiple instruction set 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 |
US9311673B2 (en) * | 2002-06-05 | 2016-04-12 | Nasdaq, Inc. | Security transaction matching |
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 |
JP3698123B2 (ja) * | 2002-06-25 | 2005-09-21 | セイコーエプソン株式会社 | 情報処理装置及び電子機器 |
US7493607B2 (en) | 2002-07-09 | 2009-02-17 | Bluerisc Inc. | Statically speculative compilation and execution |
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 |
US7042301B2 (en) * | 2002-10-15 | 2006-05-09 | Marvell International Ltd. | Crystal oscillator emulator |
US7791424B2 (en) * | 2002-10-15 | 2010-09-07 | 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 |
US7760039B2 (en) * | 2002-10-15 | 2010-07-20 | Marvell World Trade Ltd. | Crystal oscillator emulator |
US20060113639A1 (en) * | 2002-10-15 | 2006-06-01 | Sehat Sutardja | Integrated circuit including silicon wafer with annealed glass paste |
US7768360B2 (en) * | 2002-10-15 | 2010-08-03 | Marvell World Trade Ltd. | Crystal oscillator emulator |
US20060267194A1 (en) | 2002-10-15 | 2006-11-30 | Sehat Sutardja | Integrated circuit package with air gap |
GB2399897B (en) * | 2003-03-26 | 2006-02-01 | Advanced Risc Mach Ltd | Memory recycling in computer systems |
EP3321769A1 (en) | 2003-05-07 | 2018-05-16 | Conversant Intellectual Property Management Inc. | 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 |
US7802080B2 (en) | 2004-03-24 | 2010-09-21 | Arm Limited | Null exception handling |
US7930526B2 (en) | 2004-03-24 | 2011-04-19 | Arm Limited | Compare and branch mechanism |
US7350059B2 (en) * | 2004-05-21 | 2008-03-25 | Via Technologies, Inc. | Managing stack transfers in a register-based processor |
US20080140921A1 (en) * | 2004-06-10 | 2008-06-12 | Sehat Sutardja | Externally removable non-volatile semiconductor memory module for hard disk drives |
US20070094444A1 (en) * | 2004-06-10 | 2007-04-26 | Sehat Sutardja | System with high power and low power processors and thread transfer |
US7634615B2 (en) * | 2004-06-10 | 2009-12-15 | Marvell World Trade Ltd. | Adaptive storage system |
US7730335B2 (en) | 2004-06-10 | 2010-06-01 | Marvell World Trade Ltd. | Low power computer with main and auxiliary processors |
US7702848B2 (en) * | 2004-06-10 | 2010-04-20 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
US20070083785A1 (en) * | 2004-06-10 | 2007-04-12 | Sehat Sutardja | System with high power and low power processors and thread transfer |
US7788427B1 (en) | 2005-05-05 | 2010-08-31 | Marvell International Ltd. | Flash memory interface for disk drive |
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 |
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 |
US7243212B1 (en) | 2004-08-06 | 2007-07-10 | Xilinx, Inc. | Processor-controller interface for non-lock step operation |
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 |
US7546441B1 (en) | 2004-08-06 | 2009-06-09 | Xilinx, Inc. | Coprocessor interface controller |
US7590822B1 (en) | 2004-08-06 | 2009-09-15 | Xilinx, Inc. | Tracking an instruction through a processor pipeline |
US20060095719A1 (en) * | 2004-09-17 | 2006-05-04 | Chuei-Liang Tsai | Microcontroller having partial-twin structure |
GB2418272A (en) * | 2004-09-17 | 2006-03-22 | Marconi Comm Ltd | Processor arrangement having a stack memeory |
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 | 上海大学 | 堆栈区域扩充方法 |
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 |
US7375597B2 (en) * | 2005-08-01 | 2008-05-20 | Marvell World Trade Ltd. | Low-noise fine-frequency tuning |
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 |
US8977836B2 (en) * | 2006-02-03 | 2015-03-10 | Russell H. Fish, III | Thread optimized multiprocessor architecture |
US8984256B2 (en) * | 2006-02-03 | 2015-03-17 | Russell Fish | Thread optimized multiprocessor architecture |
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 |
EP1821202B1 (en) | 2006-02-16 | 2011-01-12 | VNS Portfolio LLC | Execution of instructions directly from input source |
US7913069B2 (en) * | 2006-02-16 | 2011-03-22 | Vns Portfolio Llc | Processor and method for executing a program loop within an instruction word |
WO2007098024A2 (en) | 2006-02-16 | 2007-08-30 | Vns Portfolio Llc | Allocation of resources among an array of computers |
US7904615B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
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 |
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 |
US20080016326A1 (en) | 2006-07-14 | 2008-01-17 | Mips Technologies, Inc. | Latest producer tracking in an out-of-order processor, and applications thereof |
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 |
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
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 |
US7650465B2 (en) | 2006-08-18 | 2010-01-19 | Mips Technologies, Inc. | Micro tag array having way selection bits for reducing data cache access power |
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 |
US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, 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 |
US8006069B2 (en) * | 2006-10-05 | 2011-08-23 | Synopsys, Inc. | 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 |
Family Cites Families (90)
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 Ind 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 |
US4003028A (en) * | 1974-10-30 | 1977-01-11 | Motorola, Inc. | Interrupt circuitry for microprocessor chip |
US4050096A (en) * | 1974-10-30 | 1977-09-20 | Motorola, Inc. | Pulse expanding system for microprocessor systems with slow memory |
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 |
US4463421A (en) * | 1980-11-24 | 1984-07-31 | Texas Instruments Incorporated | Serial/parallel input/output bus for microprocessor system |
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 |
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 |
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 |
US4538239A (en) * | 1982-02-11 | 1985-08-27 | Texas Instruments Incorporated | High-speed multiplier for microcomputer used in digital signal processing system |
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 |
US4680698A (en) * | 1982-11-26 | 1987-07-14 | Inmos Limited | High density ROM in separate isolation well on single with chip |
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 |
EP0337368B1 (en) * | 1988-04-12 | 2001-03-07 | Canon Kabushiki Kaisha | Controller |
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 |
-
1989
- 1989-08-03 US US07/389,334 patent/US5440749A/en not_active Expired - Lifetime
-
1990
- 1990-08-02 AU AU60672/90A patent/AU6067290A/en not_active Abandoned
- 1990-08-02 JP JP2511130A patent/JP2966085B2/ja not_active Expired - Lifetime
- 1990-08-02 WO PCT/US1990/004245 patent/WO1991002311A1/en not_active Application Discontinuation
- 1990-08-02 EP EP19900911681 patent/EP0497772A4/en not_active Withdrawn
- 1990-08-02 DE DE69033568T patent/DE69033568T2/de not_active Expired - Lifetime
- 1990-08-02 EP EP97200767A patent/EP0786730B1/en not_active Expired - Lifetime
-
1995
- 1995-06-07 US US08/485,031 patent/US5604915A/en not_active Expired - Lifetime
- 1995-06-07 US US08/482,185 patent/US5659703A/en not_active Expired - Lifetime
- 1995-06-07 US US08/480,206 patent/US5530890A/en not_active Expired - Lifetime
- 1995-06-07 US US08/484,918 patent/US5809336A/en not_active Expired - Lifetime
- 1995-06-07 US US08/484,935 patent/US5784584A/en not_active Expired - Lifetime
-
1998
- 1998-07-29 US US09/124,623 patent/US6598148B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5659703A (en) | 1997-08-19 |
WO1991002311A1 (en) | 1991-02-21 |
US5784584A (en) | 1998-07-21 |
US5809336A (en) | 1998-09-15 |
DE69033568D1 (de) | 2000-07-20 |
US5440749A (en) | 1995-08-08 |
EP0497772A4 (en) | 1993-08-04 |
EP0497772A1 (en) | 1992-08-12 |
EP0786730A1 (en) | 1997-07-30 |
DE69033568T2 (de) | 2001-03-01 |
JPH05502125A (ja) | 1993-04-15 |
EP0786730B1 (en) | 2000-06-14 |
US6598148B1 (en) | 2003-07-22 |
US5530890A (en) | 1996-06-25 |
AU6067290A (en) | 1991-03-11 |
US5604915A (en) | 1997-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2966085B2 (ja) | 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 | |
US5822606A (en) | DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word | |
US6088783A (en) | DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word | |
KR101121606B1 (ko) | 스레드 최적화 멀티프로세서 아키텍처 | |
US6807614B2 (en) | Method and apparatus for using smart memories in computing | |
KR101120398B1 (ko) | 스레드 최적화된 멀티프로세서 구조 | |
US5689677A (en) | Circuit for enhancing performance of a computer for personal use | |
CN103777923A (zh) | Dma向量缓冲区 | |
US20060179198A1 (en) | Micro interrupt handler | |
CN112486908A (zh) | 层次化的多rpu多pea的可重构处理器 | |
Dolle et al. | A 32-b RISC/DSP microprocessor with reduced complexity | |
Ebeling et al. | RaPiD-a configurable computing architecture for compute-intensive applications | |
KR100267092B1 (ko) | 멀티미디어신호프로세서의단일명령다중데이터처리 | |
Gray et al. | Viper: A vliw integer microprocessor | |
US6334180B1 (en) | Processor coupled by visible register set to modular coprocessor including integrated multimedia unit | |
Goodenough et al. | A general purpose, single chip video signal processing (VSP) architecture for image processing, coding and computer vision | |
Zhou et al. | Reconfigurable instruction-based multicore parallel convolution and its application in real-time template matching | |
Foster | Computer architecture | |
Vlahos et al. | GaAs microprocessors and digital systems: an overview of R&D efforts | |
Holmann et al. | A media processor for multimedia signal processing applications | |
Nakamura et al. | Real-time multimedia data processing using VLIW hardware stack processor | |
Naused et al. | A 32-Bit, 200-MHz GaAs RISC for High-Throughput Signal Processing Environments | |
Paar et al. | A novel predication scheme for a SIMD system-on-chip | |
Araújo | Intelligent RAM: a radical solution? | |
Laborie et al. | VLSI Digital signal processor (PSI) |
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 |