JP2009205698A - 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 - Google Patents
縮小命令セット・コンピュータ・マイクロプロセッサーの構造 Download PDFInfo
- Publication number
- JP2009205698A JP2009205698A JP2009141967A JP2009141967A JP2009205698A JP 2009205698 A JP2009205698 A JP 2009205698A JP 2009141967 A JP2009141967 A JP 2009141967A JP 2009141967 A JP2009141967 A JP 2009141967A JP 2009205698 A JP2009205698 A JP 2009205698A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- bit
- stack
- address
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002829 reductive effect Effects 0.000 title claims abstract description 20
- 230000015654 memory Effects 0.000 claims abstract description 643
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims description 58
- 238000007667 floating Methods 0.000 claims description 46
- 238000005070 sampling Methods 0.000 claims description 26
- 230000002688 persistence Effects 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 10
- 230000007423 decrease Effects 0.000 claims description 8
- 230000036961 partial effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 description 156
- 230000000875 corresponding effect Effects 0.000 description 89
- 238000010586 diagram Methods 0.000 description 43
- 230000008569 process Effects 0.000 description 34
- 230000000694 effects Effects 0.000 description 24
- 230000008859 change Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 18
- 239000003990 capacitor Substances 0.000 description 16
- 238000007726 management method Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 13
- 240000007320 Pinus strobus Species 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 10
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 9
- 229910052710 silicon Inorganic materials 0.000 description 9
- 239000010703 silicon Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000001934 delay Effects 0.000 description 7
- 230000002085 persistent effect Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000001343 mnemonic effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 229920005994 diacetyl cellulose Polymers 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 239000000853 adhesive Substances 0.000 description 2
- 230000001070 adhesive effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007497 verbal memory Effects 0.000 description 2
- 102100030310 5,6-dihydroxyindole-2-carboxylic acid oxidase Human genes 0.000 description 1
- 101100086437 Drosophila melanogaster Rap1 gene Proteins 0.000 description 1
- 101100247319 Drosophila melanogaster Ras64B gene Proteins 0.000 description 1
- 101100005249 Escherichia coli (strain K12) ygcB gene Proteins 0.000 description 1
- 101000773083 Homo sapiens 5,6-dihydroxyindole-2-carboxylic acid oxidase Proteins 0.000 description 1
- 101000574648 Homo sapiens Retinoid-inducible serine carboxypeptidase Proteins 0.000 description 1
- 101100247326 Mucor circinelloides f. lusitanicus RAS3 gene Proteins 0.000 description 1
- 101100467574 Mus musculus Mras gene Proteins 0.000 description 1
- 241001604129 Polydactylus Species 0.000 description 1
- 241000287531 Psittacidae Species 0.000 description 1
- 101150076031 RAS1 gene Proteins 0.000 description 1
- 101150019218 RAS2 gene Proteins 0.000 description 1
- 101150045048 Ras85D gene Proteins 0.000 description 1
- 102100025483 Retinoid-inducible serine carboxypeptidase Human genes 0.000 description 1
- 101000767160 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) Intracellular protein transport protein USO1 Proteins 0.000 description 1
- 101000898746 Streptomyces clavuligerus Clavaminate synthase 1 Proteins 0.000 description 1
- 101000761220 Streptomyces clavuligerus Clavaminate synthase 2 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 101150055191 cas3 gene Proteins 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 101150021123 msrA gene Proteins 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005057 refrigeration Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- 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
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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
-
- 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/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect 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/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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/126—The frame memory having additional data ports, not inclusive of standard details of the output serial port of a VRAM
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Computer Graphics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Microcomputers (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
【解決手段】本発明のある態様では、マイクロプロセッサーシステムはマイクロプロセッシングユニットと入出力プロセッサー(IOP)とを含んでいる。大域メモリーユニットは中央処理装置及びIOPと連結されている。ある手段が、中央処理装置及びIOPの大域メモリーユニットへのアクセスを裁定する。ある形態では大域メモリーユニットは複数の大域レジスタを含んでいる。
【選択図】図1
Description
本発明は、現米国特許5,440,749即ち、1989年8月3日出願の米国出願番号07/389,334、及び上記出願の1995年6月7日に出願された以下の分割出願即ち、出願番号08/480,462、08/480,911、08/480,015、08/485,031、08/484,918、08/484,230、08/484,920、08/480,206、08/484,935、08/482,185、08/480,901、08/486,454において開示及び/又は請求された発明の改良をするためのものであり、1995年10月6日出願の米国仮特許出願番号60/005,408に基づいている。
ShBoomTMマイクロプロセッサー100(図1)は高度に集積された32ビットのRISCプロセッサーで、広範囲な埋込型アプリケーションに対し安いシステムコストで高い性能を提供する。内部100MHzでプロセッサーは100MIPSのピーク性能を発揮する。32ビットのレジスタ102、104及びデータ経路106は32ビットのアドレスとデータタイプを完全にサポートする。プロセッサー100は4ギガバイトまでの物理メモリーをアドレス指定し、外部マッピングロジックを使って仮想メモリーをサポートする。
マイクロプロセッシングユニット(MPU)108(図2)
ゼロオペランド、双スタック122及び124構造
10ns命令サイクル
52汎用32ビットレジスタ
16大域データレジスタ(g0−g15)104
16局所レジスタ(r0−r15)は復帰スタックキャッシュ124として2倍になる r0は指標レジスタ128で前減分、後増分
自動局所レジスタスタック124スピルそしてリフィル
18オペランドスタックキャッシュレジスタ(s0−s17)122
s0はアドレスレジスタ130
自動オペランドスタックスピルそしてリフィル
指標レジスタ(x)132で前減分、後増分
カウントレジスタ(ct)134
スタックページングトラップ
キャッシュ管理命令
MPU108はDMA112及びIOP110と大域レジスタ104経由で通信する
ハードウェア単精度及び倍精度IEEE浮動小数点サポート
高速乗算
高速ビットシフター
ハードウェア単一ステップ及び区切り点
仮想メモリーサポート
通知書き込み
パワーオンリセットフラグ
命令空間セーブ8ビットオプコード
直接記憶アクセス制御装置(DMAC)(図11)
8個の優先化されたDMAチャネル
固定又は循環式DMA優先順位
バイト、4バイト、又はセルDMA装置
単一又は背中合わせDMAリクエスト
200MB/秒までの転送速度
チャネル毎にプログラム可能なタイミング
転送境界/カウント達成での割り込みMPU
転送境界/カウント達成での終了DMA
チャネルは事象カウンターとして構成可能
DMA112はMPU108及びIOP110と大域レジスタ104経由で通信する
入出力プロセッサー(IOP)
MPU108とは独立に命令の流れを実行
確定的実行
実行タイミング、同期データ転送、ビット出力操作に使用される
DRAMリフレッシュ
8個の転送チャネル
バイト、4バイト、又はセル装置転送
チャネル毎にプログラム可能なタイミング
転送境界/カウント達成での割り込みMPU
出力ビットをセット/リセット
MPU割り込みをセット
インプットビットでテストと分岐
ループ命令
転送アドレス、方向、境界での割り込みをロード
IOP110はDMA112及びMPU108と大域レジスタ104又はメモリーを経由して通信する
チャネルはタイマとして構成可能
命令空間セーブ8ビットオプコード
入出力116及び118/割込
8入力116ビット
ビットはゼロ保持として構成できる
レジスタ及びビットのアドレス指定可能
8出力118ビット
レジスタ及びビットのアドレス指定可能
入出力ビットピンで使用可能、又はバスで多重化
8個の優先化され方向付けられた割込
プログラム可能メモリーインタフェース(MIF)120
1/4外部クロックへのプログラム可能バスインタフェースタイミング
4つの独立構成可能メモリーグループ
32ビットと8ビット装置の全組み合わせ
EPROM、SRAM、DRAM、VRAMの全組み合わせ
殆ど全てのDRAMサイズ/構成
各DRAMグループへの高速ページモードアクセス
グループ毎に1メモリーバンク非接着サポート
16メモリーバンクまでデコーディングするメモリーバンク当たり1.25ゲート(メモリーグループ当たり4)
仮想メモリーサポート
DRAMリフレッシュサポート
DRAMサポートにはDSF、OE(バー)、WE(バー)、RAS(バー)制御前Cas(バー)を含む
O:出力オンリーピン
I/O:双方向ピン
A():非同期入力
S(sym):同期入力はセットアップと合致し、記号に関し要件を保持せねばならない。
I(H):リセットで高値
I(L):リセットで低値
I(Z):リセットで高インピーダンス
以下の資料にShBoomTMマイクロプロセッサー100の構造、ハードウェアインタフェース、プログラミングを述べる。本プロセッサーは高MPU性能、低システムコストを必要とする埋込型アプリケーションに的を絞ったものである。レーザープリンター、グラフィクスアクセレレーター、点火制御装置、ネットワークルーター、パーソナルディジタル用具、セットトップケーブル制御装置、ビデオゲームその他多くのアプリケーションがこれに当たる。本資料は、MPU108及びIOP110両方のプログラミングをはじめ、機能的容量、電気的特性及び定格値、実装規定を含めた、ShBoomTMCPU100を使用する製品を設計するに必要な情報を提供する。
ShBoomTMマイクロプロセッサー100は高集積32ビットRISCプロセッサーであり、100MHz内部クロック周波数で100MIPSのピーク性能を発揮する。CPU100は特に、MPU性能とシステムコストが選択決定可能な要素となる埋込型アプリケーションに使用するために設計されている。
2重プロセッサー構造:CPU100は、高性能、ゼロオペランド、2重スタック構造のマイクロプロセッシングユニット(MPU)108と、データを転送し、事象をカウントし、時間を計測し、他のタイミング依存機能を実行するための命令を実行する入出力プロセッサー(IOP)の両方を含んでいる。
ゼロオペランド構造:多くのRISCは貴重な命令空間を、しばしば1命令当たり15ビット以上を、各命令当たり3つの可能なオペランドを規定するのに費やしている。ゼロオペランド(スタック)構造はこれらのオペランドビットを削除し、命令を大幅に、典型的には1/4に短縮し、高い命令実行帯域幅と小さなプログラムサイズとを実現している。スタックも又レジスタセーブを最小化し、プロシジャ内及びプロシジャを超えてロードし、これにより短い命令シーケンスと、高速の実行コードを実現する。
高速、単純な命令:従来のRISCプロセッサーと比較して命令はデコードし実行するのにより単純であり、ShBoomTMMPU100及びIOP110は単一クロックサイクル内で命令を発行し終了する。両者ともピークの実行能力が100MIPSである。
4命令バッファ:8ビットのオプコードを使用しているので、CPU100は各命令をフェッチ又はプリフェッチする際に、4個までの命令をメモリーから受け取る。これらの命令はメモリーから再読み出しすること無しに繰り返すことができる。これによって、直接DRAMに接続する場合、キャッシュを消費することなく高性能が維持できる。
局所及び大域レジスタ:局所及び大域レジスタはデータメモリーへのアクセス回数を最小化する。局所レジスタスタック124は自動的に16個までのレジスタをキャッシュし、オペランドスタック122は18までのレジスタをキャッシュする。スタックすると、割り当てられたデータ空間はプロシジャ呼び出しに応じて効率的にネスト、アンネストする。16個の大域レジスタ104は共用データに記憶装置を提供する。
通知書き込み:メモリーへのデータ書き込みからプロセッサーを切り離し、書き込みが通知された後、プロセッサーが命令実行を継続できるようにする。
プログラム可能メモリー/バス・インタフェース:価格感度の高いシステムでより低いコストのメモリーとシステムとが利用できるようにする。本インタフェースは、DRAM装置4グループまででの高速ページモードを始めとする、多くの形式のEPROM/SRAM/DRAM/VRAMを直接サポートする。RASサイクルOE(バー)及びWE(バー)、RAS前CAS、DSF信号のオンチップサポートにより外部ハードウェアを追加することなくVRAMが使える。プログラム可能なバスタイミングとドライバ能力により、設計者は各プロジェクトに対し時間、性能予算の要求に応じ、システム設計に挑戦的に取り組む広範な解を得たことになる。
クロック乗数:内部的に外部クロックを2倍、4倍化する。オンチップPLL回路により典型的な厳密なオシレーター仕様が不要となり、低価格のオシレーターが利用できるようになる。
完全に静的な設計:完全に静的な設計なので、DCから定格速度までのクロックを実行できる。クロック速度が低くなると電力消費を大幅に削減できる。
ハードウェア・デバッギングサポート:区切り点及びシングルステップ能力の両方ともデバッギングプログラムを援助する。
仮想メモリー:外部マッピングSRAM及びサポートロジックの仕様を通してサポートされている。
浮動小数点サポート:特別の命令が効率のよい単精度及び倍精度のIEEE浮動小数点演算を実行する。
割込制御装置:8つまでの優先化されたレベルを8つの2Xクロックサイクルの速さの割込応答でサポートする。
8ビット入力116及び8ビット出力118:MPU及びIOPアプリケーション使用に対し、外部ハードウェアの必要性を減じながら、入出力ビットが利用できる。
ShBoomTMCPU100の構造哲学は、単純化と使用の効率化であり、問題を適切に解き、存在する資源の最善の活用を計る最も単純な解を実行する。ハードウェアにおいては、これは使用するトランジスターの数を減らし、それによってCPUが低コストになることと同じである。
CPUのクロック速度はその性能を予言するものではない。例えば、パワーPC604はDECアルファ21064Aの半分の速度で走るが、‘95ベンチマーク性能では略同等の仕様を達成している。この点では、ShBoomTMCPU100はパワーPCよりももっとDECアルファに近い。しかし、ShBoomTMCPU100はこれらのCPUのどれとも可成り異なる設計哲学に基づいている。
MPU108(図2)は、幾つかの互いに相関するやり方での基本設計を通して、ShBoomTMCPUの単純化と使用の効率化の構造哲学を支えている。
MPU108は全てのプログラムとデータ操作に対し、線形4ギガバイトアドレス空間を完全にサポートしている。入出力装置はそれをメモリーアドレスにマッピングすることによって選択されている。規定により、もっとも上のアドレスビットが、外部ハードウェアでデコードされた入出力装置アドレスを選定する。この規定は、2ギガバイトを超えるスパースアドレス空間を持った2ギガバイトの連続する線形プログラム及びデータの空間を作り出す。これは又、入出力装置と入出力チャネル転送のためのメモリーアドレスの同時アドレス指定ができるようにしている。以下のメモリー及び装置アドレス指定を参照されたい。
レジスタセットは、52個の汎用レジスタ122、124、104、132、134(図3)、モード/ステータスレジスタ136と、入出力、コンフィギュレーション、ステータスに使用される41個の局所アドレスマップされたオンチップ資源レジスタ102(図20)とを含んでいる。
アメリカ国家規格フォース(ANSフォース)又は、逆ポーランド記法(RPN)として知られている接尾辞表記法を使用するヒューレットパッカード計算機をよく知っている人にとっては、ShBoomTMMPUのプログラミングはいろんな面で非常に取り付きやすいだろう。
表4はMPU命令をリストにしたものであり、後出の表34、37はニモニックとオプコードをリストにしたものである。全ての命令が、中間データを必要とするものを除き、8ビットで構成されている。このため、各命令フェッチ毎に4命令(1命令グループ)までを得ることができ、32ビット命令を持った典型的RISC機に比べメモリー帯域幅要件を低減できる。この特性によって、メモリーからの追加の命令フェッチ無しに1つの命令グループ上でループできるようになり(ミクロループ)、更に効率を上げる。命令形式を図6に示す。
殆ど全てのALU演算はオペランドスタック122のトップ、s0,必要ならs1、で行われる。幾つかのオペランドは、g9,ct134又はpcも使う。
br、bz、call、dbr命令は各々可変長である。オプコードの最下位からの3ビット及びオプコード右側の現在の命令グループ内の全てのビットは相対分岐オフセットに使用される。図6参照。分岐宛先アドレスは、オフセットの範囲と宛先で実行されることになる命令の数を最大化するために、セル整列されている。オフセットは3、11、19又は27ビット長さであり、現在の命令グループ内でのオプコードの位置に依る。宛先のアドレスは、分岐オプコードを含むセルの始まりのアドレスからオフセットしている。オフセットは各々+12/−16、+4092/−4096、+1048572/−1048576、及び+268435452/−268435456バイトの範囲を持っている。オフセットのサイズが、分岐が宛先に届くだけ十分でない場合、分岐は、もっとオフセットビットが使用でき或いはbr[]又はcall[]が使える命令グループに移されなければならない。
オプコード帯域幅を最大化するために、3つのサイズのリテラルを使うことができる。4ビット(ニブル)リテラル用の、−7から+8の範囲を持ったデータはオプコードの4つの最下位ビットでエンコードされ、数は、+8としてデコートされる2進値1000により、2の補数値としてエンコードされる。8ビット(バイト)リテラル用の、0から255の範囲を持ったデータは、命令グループ内でのオプコードの位置に関わらず命令グループの最も右のバイトに置かれる。32ビット(長、又はセル)リテラル用のデータは、命令の流れの中で命令グループに続くセルに置かれる。同じ命令グループ内の多重プッシュ1命令は命令グループに直接続く連続したセルにアクセスする。図6参照。
r0及びxはレジスタ間接アドレス指定及び、事前減分4又は事後増分4でレジスタ間接アドレス指定をサポートする。これらのモードによって、メモリー参照動作が効率的に行えるようになる。コード表示メモリーの移動とフィルの動作を表10に示す。
レジスタのデータは、最初にレジスタをオペランドスタックにプッシュし、次にそれを宛先レジスタにポップすることによって移動される。メモリーデータは同様にして移動される。上記ロードと記憶参照のこと。
オペランドスタックデータはスタックのトップから使われ、処理時に通常消費される。これは、スタックデータを複写、廃棄、再順序づけするための命令の使用を要求できる。データは、一時的に経路外に置くため、或いはスタックアクセス順序を反転するため、或いは直接アクセスのために局所レジスタにおくため、局所レジスタスタックに移動させることもできる。表10のコード例を参照。
初期化及び可能性があるとすれば関連するトラップを経由してのオーバーフローとアンダーフローのモニタリング以外では、スタックキャッシュはアクティブな管理を必要としない。キャッシュを効率的に処理するために幾つかの命令が設けられていて、コンテクストの切替、ステータスのチェック、スピルとリフィルのスケジューリングを行う。
depth命令を使ってスタックキャッシュのSRAM部内のセルの数を決めることができる。この値を使って、現在キャッシュにある値を廃棄し、_cacheでキャッシュ深さを復元し、或いは全オンチップ及び外部スタック深さを計算することができる。
cache命令は、データがキャッシュの中にあること、或いはデータのための空間がキャッシュの中にあることの何れかを保証するのに使用でき、スピルとリフィルは優先時間に起こることになる。このことにより、キャッシングプロセスをより以上に制御できるようになり、プログラム実行プロセスの間、より高次の決定ができるようになる。この方法でスタックのスピルとリフィルをスケジューリングすれば、スタックメモリーアクセスのため必要となるRASサイクルを最小化することによって性能を改善することもできる。
frame命令は、スタックのSRAM部のトップで初期化されていないレジスタ空間のブロックを割り付け、或いは最早不必要になった際にはそのようなレジスタのブロックを廃棄するのに使うことができる。 frame命令は cache命令同様に、スタックメモリーアクセスのため必要となるRASサイクルを最小化することによって性能を改善するため、グループスタックのスピルとリフィルをするのに使うことができる。
表16に示すコードを使って、バイトはアドレス指定してメモリーから直接読み出すことができ、アドレス指定してメモリーに書き込むことができる。
上述した命令は、基本数学関数(+、−、*、/)のための効率的な単精度及び倍精度IEEE浮動小数点ソフトウェアを実施するために、及び浮動小数点ライブラリルーチンの開発の援助のために使用される。これらの命令は主として、普通にプログラムされている場合には実行時が長くなる標準化、標準化解除、指数演算、丸め、及び例外の数及び状態の検出を遂行する。「浮動小数点数学支援」を参照されたい。
これらの各命令は、例外を信号し、プログラムのデバッギングを助けるためにアプリケーションにより供給された実行・監視プログラムをトラップする。「デバッギング支援」を参照されたい。
これらの命令によって、オンチップ周辺装置、状態レジスタ、及び構成レジスタへアクセスすることができる。全てのレジスタへは、ldo[]及び sto[]命令を用いてアクセスすることができる。最初の6つのレジスタは各々8ビットを含み、これらは ldo.i[]及び sto.i[]を用いてアドレス可能なビットでもある。「オンチップ資源レジスタ」を参照されたい。
割込み禁止及び割込み可能化命令は、単なるシステム制御命令である。これらは、割込みをより効率的にするために与えられる。他のシステム制御機能は、モード内の、またはオンチップ資源レジスタ内のビットをセットまたはクリアすることによって遂行される。
分割命令は 32 ビット値を、それぞれが元の値の 16 ビットを含む2つのセルに分離する。
スタックキャッシュは、プログラムされた、または例外文脈切換え(呼出しサブルーチン実行及びトラップまたは割込みサービシングのような)中のレジスタの割当て及び保存に必要なオーバヘッドを最小にすることによって、スタックレジスタ資源の使用を最適化する。
スタック・ページ例外は、何れかのスタックキャッシュメモリが何れかの 1024 バイトメモリページの境界付近にアクセスすると発生し、オーバフロー及びアンダーフロー保護、及びスタックメモリ管理を可能にする。ページ境界領域のマージン付近のスタック・ページ例外を防ぐために、一旦境界領域がアクセスされて対応するスタック・ページ例外が信号されると、スタックポインタは別のスタック・ページ例外が信号される前にそのスタックページの中央領域へ移動しなければならない。図5を参照されたい。
CPUがリセットした後に、両MPUスタックは残余の対応スタックポインタがロードされるまで初期化されていないものと見做すべきであり、これはMPUによって遂行される第1の動作の1つであるべきである。
各スタック上のセルの合計数は、メモリへあふれ出たセルの数と、オンチップキャッシュ内のセルの数とを加算することによって容易に決定できる。表25を参照されたい。
文脈切換えを遂行する時、スタックキャッシュに新しい文脈を再ロードできるようにするために、スタックキャッシュ内のデータをメモリへあふれ出させる必要がある。常にオンチップに維持されているスタックキャッシュの部分r0 及びs0 −s2 をスタックキャッシュのあふれ可能な領域へ押しやり、それらをメモリへ書き込むことができるように注意を払わなければならない。キャッシュをフララッシュし、回復するためのコード例を、それぞれ表26及び27に示す。
例外処理は精密であり、低メモリ内の実行可能コードベクトルにトラッピングすることによって管理される。各32ビットベクトル位置は、4命令までを含むことができる。これにより、これらの4命令内の、またはより長いトラップルーチンへの分岐によって、トラップにサービスすることができる。トラップは、適切な処理を行うために優先順位付けされ、入れ子にされる( nested )。トラップ名及び実行可能なベクトル位置が図4に示されている。
MPUは単精度( 32 ビット)及び倍精度( 64 ビット)IEEE浮動小数点数学ソフトウェアを支援する。浮動小数点ユニット及びそれが要求するシリコン領域ではなく、MPUは、基本浮動小数点数学演算をプログラムする時に要求される時間を消費する殆どの演算を遂行する命令を含んでいる。コアとなる加算、減算、乗算、除算機能を与えるために、存在整数数学演算が使用される。更に、トップの1つまたは2つの(精度に依存する)スタックセルへの3ビット拡張を使用して丸めを援助し、所要の精度及び例外信号動作を与える。
単精度及び倍精度IEEEフォーマットはMPUの透視( perspective )から支援されるが、一時に 32 ビット値しか操作されない(ダブルシフティングを除く)。図6aを参照されたい。MPU命令は図示された標準化データフォーマットを直接的に支援する。関係付けられた標準化解除フォーマットは testexpによって検出され、ソフトウェアで完全に支援可能である。
モードレジスタ136は、浮動小数点精度、丸めモード、例外信号、及びトラップ可能化をセットする 13 ビットを含んでいる。図7を参照されたい。
IEEE標準によって要求される精度を維持するために、IEEEフォーマット数内に保持されるよりも多くのシグニフィカンド( significand )ビットが必要である。これらの特別ビットは、シグニフィカンドの右からシフトしたビットを保持するために使用される。これらは、付加的な精度を維持し、処理中に精度が失われたか否かを決定し、そして丸めを行うべきか否かを決定するために使用される。3ビットはモードで現れるので、これらを保存し、回復し、そして操作することができる。個々には、これらのビットはガードビット、丸めビット、及びスティッキービットと名付けられている。幾つかの命令がこれらのビットを操作、または変更する。表31を参照されたい。
GRS拡張は、小数点結果を発生させながら、3つの特別精度ビットを維持する。これらのビットは、宛て先フォーマットに適合させるために、結果をどのように丸めるかを決定するのに使用される。もし誰かがビットを、あたかもそれらが2進小数点の右にあるものと見れば、ガードビットは半分の位置値を有し、丸めビットは 1/4の位置値を有し、そしてスティッキービットは 1/8の位置値を有している。fp round modeによって選択された丸め操作は、GRS拡張ビット及び ct の符号ビットを使用してどのように丸めを行うべきかを決定する。もしガードビットが0であれば、GRS拡張の値は半分未満である。もしガードビットが1であれば、GRS拡張の値は半分またはそれ以上である。GRS拡張ビットは宛て先フォーマットの一部ではないから、操作が完了した時にはそれらは破棄される。この情報は、命令 rndの動作のための基礎である。
処理をスピードアップするために、浮動小数点命令によって検出された例外状態は例外信号ビットをモードで、及びもし可能化されていれば、トラップをセットする。以下のトラップが支援される。
* 指数 testexp から信号される
* アンダーフロー norml、addexp、subexp から信号される
* オーバフロー normr、addexp、subexp から信号される
* 標準化 denorm、norml、normr から信号される
* 丸め済み rnd から信号される。
* 指数トラップ:特別例指数を検出する。もし試験された指数が全て0であるか、全て1であれば、キャリーがセットされ、例外が信号される。キャリーをセットすることによって、トラップを処理せずに結果を試験することができる。
* アンダーフロートラップ:計算またはシフト中のデクレメントによって小さくなり過ぎた指数を検出する。
* オーバフロートラップ:計算またはシフト中のインクリメントによって大きくなり過ぎた指数を検出する。
* 丸められた例外:丸めによるs0 のビット0の変化を検出する。
MPU 100は、中断点命令 bkpt 、及びシングルステップ命令 step の両方を含んでいる。命令 bkpt は、中断点トラップを実行して bkpt 演算コードのアドレスをトラップハンドラへ供給する。これにより、プロセッサは中断点までその全速で実行することが可能になり、中断点以降はプログラム制御された手法で実行する。 step は、供給されたアドレスにおいて命令を実行し、次いでシングルステップトラップを実行する。シングルステップトラップは命令毎の実行を効率的に監視する。
命令 bkpt は、復帰アドレスが bkpt 演算コードのアドレスであることを除いて、アドレス0×134 への呼出しサブルーチンと類似の動作を遂行する。命令 push.1 に起因して、呼出しサブルーチンのアドレスは常にその復帰アドレスからは決定することができないので、この挙動が必要なのである。
命令 step は、一時に1つの命令をアプリケーションプログラムに実行させるために使用される。これは、復帰アドレスにおける1つの命令の実行の後にアドレス0×138 が発生することを除いて、サブルーチンからの復帰に極めて似た動作である。トラップからの復帰アドレスは、次の命令のアドレスである。stepのためのトラップハンドラは、典型的には、ユーザに対して情報を表示し、コマンドを待機する。または代わりに、トラップハンドラは、終了状態(この特定の位置のレジスタ値または実行数のような)を調べ、この状態に合致するまでアプリケーションの実行を継続することができる。
MPU 100は、論理メモリアドレスを物理メモリアドレスに翻訳する外部マッピング論理の使用を通して仮想メモリを支援する。MPU RASメモリサイクル中にCPUから供給される論理行アドレスは、外部SRAMによって物理行アドレス及びメモリページ故障ビットに翻訳される。メモリページ故障ビットはメモリサイクル中にサンプルされ、メモリ内の翻訳されたページが有効か、無効かを決定する。DRAMメモリサイクルの通常のRASプリチェンジ部分には、メモリのサイクル時間オーバヘッドを要せずに論理ページを物理ページにマップするための充分な時間が存在する。
ビデオRAM(VRAM)は、DRAMアレイへの直列アクセスを提供する第2のポートを有するDRAMである。これによって、DRAMアレイへの通常のMPUアクセスを行いながら、ビデオデータをメモリから直列にクロックアウトして表示させることができる。DRAMアレイのアクセス競争を防ぐために、MPUは周期的に読み出し転送要求を発行して選択されたDRAMの行を直列転送バッファへコピーする。読み出し転送同期問題を排除するために、多くのVRAMは分割転送バッファを有しており、それらによってMPUの読み出し転送動作のタイミングの柔軟性を大きくすることを可能にしている。MPUは、時間RASバーが立ち下がっている間のVRAMのOEバー、WEバー、及びDSF(デバイス特別機能)の状態についてコマンドをエンコードすることによって、VRAMに命令して読み出し転送、または分割読み出し転送を遂行させる。これらの動作は、vramを書き込み、所望のVRAMメモリアドレスに適切な読み出しまたは書き込みを遂行することによってエンコードされる。
モードは、MPUの状態及び実行オプションを指示するいろいろなビットを含んでいる。前述したものを除いて、全てのビットは書き込み可能である。レジスタを図7に示す。
メモリ故障が信号された後に、メモリ書き込みによって故障が発生したことを指示する。
guard bit
浮動小数点数を丸めるのを援助するのに使用されるs0 (もしfp precision がセットされていれば、s1 )の最下位ビットの下の3ビット拡張の最上位ビット。
round bit
浮動小数点数を丸めるのを援助するのに使用されるs0 (もし fp precision がセットされていれば、s1 )の最下位ビットの下の3ビット拡張の中央ビット。
sticky bit
浮動小数点数を丸めるのを援助するのに使用されるs0 (もし fp precision がセットされていれば、s1 )の最下位ビットの下の3ビット拡張の最下位ビット。ビットの直接シフトまたは書き込みに起因してセットされると、このビットは、たとえそれを通して0ビットが右シフトしても、それが明示的にクリアされるか、または0が書き込まれるまでセットされ続ける。
mflt trap en
もしセットされていれば、メモリ故障トラップを可能化する。
mflt exc sig
もしセットされていれば、メモリ故障が検出される。
ls boundary
スタックのあふれ、または再充填の結果としてls ovf exc sig 、またはls unf exc sig がセットされれば、セットされる。スタックのあふれ、または再充填の結果として la 内のアドレスが 1024 バイトメモリページの中央領域に入れられると、クリアされる。ローカルレジスタスタックトラップ論理によって使用され、ローカルレジスタスタックが 1024 バイトメモリページ境界付近で繰り返しあふれ、及び再充填を行う場合に、不要なスタックオーバフロー、及びアンダーフローを防ぐ。書き込みは不能である。
ls unf trap en
もしセットされていれば、ローカルレジスタスタックアンダーフロー例外が信号された後に、ローカルレジスタスタックアンダーフロートラップが発生することを可能にする。
ls unf exc sig
もしローカルレジスタスタック再充填が発生し、ls boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最後の 32 のセル内にあれば、セットされる。
ls ovf trap en
もしセットされていれば、ローカルレジスタスタックオーバフロー例外が信号された後に、ローカルレジスタスタックオーバフロートラップが発生することを可能にする。
ls ovf exc sig
もしローカルレジスタスタックあふれが発生し、ls boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最初の 32 のセル内にあれば、セットされる。
os boundary
スタックのあふれ、または再充填の結果としてos ovf exc sig 、または os unf exc sig がセットされれば、セットされる。スタックのあふれ、または再充填の結果として sa 内のアドレスが 1024 バイトメモリページの中央領域に入れられると、クリアされる。オペランドスタックトラップ論理によって使用され、オペランドスタックが 1024 バイトメモリページ境界付近で繰り返しあふれ、及び再充填を行う場合に、不要なスタックオーバフロー、及びアンダーフローを防ぐ。書き込みは不能である。
os unf trap en
もしセットされていれば、オペランドスタックアンダーフロー例外が信号された後に、オペランドスタックアンダーフロートラップが発生することを可能にする。
os unf exc en
もしオペランドスタック再充填が発生し、os boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最後の 32 のセル内にあれば、セットされる。
os ovf trap en
もしセットされていれば、オペランドスタックオーバフロー例外が信号された後に、オペランドスタックオーバフロートラップが発生することを可能にする。
os ovf exc sig
もしオペランドスタックあふれが発生し、os boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最初の 32 のセル内にあれば、セットされる。
carry
アキュムレータからのキャリービットを含んでいる。キャリーを保存し、回復するために保存及び回復モードを使用することができる。
power fail
電源投入中にセットされ、電源障害が発生したことを指示する。モードへの何等かの書き込みによってクリアされる。それ以外は書き込み不能である。
interrupt en
もしセットされていれば、割込みがグローバルに可能にされる。命令 ei によってセットされ、 di によってクリアされる。
fp rnd exc sig
もしセットされていれば、 rndの先行実行がs0 (もしfp precision がセットされていれば、s1 )の最下位ビットに変化をもたらしている。
fp rnd trap sig
もしセットされていれば、浮動小数点丸め例外が信号された後に、浮動小数点丸めトラップが発生することを可能にする。
fp nrm exc sig
もしセットされていれば、denorm、norml 、または normrの先行実行の後に、ガードビット、丸めビット、及びスティッキービットの1つまたはそれ以上がセットされる。
fp nrm trap en
もしセットされていれば、浮動小数点標準化例外が信号された後に、浮動小数点標準化トラップが発生することを可能にする。
fp ovf exc sig
もしセットされていれば、normr 、addexp、または subexp の先行実行が指数フィールドを全て1に、またはそれを越えて増加させている。
fp ovf trap en
もしセットされていれば、浮動小数点オーバフロー例外が信号された後に、浮動小数点オーバフロートラップが発生することを可能にする。
fp unf exc sig
もしセットされていれば、norml 、addexp、または subexp の先行実行が指数フィールドを全て0に、またはそれを越えて減少させている。
fp unf trap en
もしセットされていれば、浮動小数点アンダーフロー例外が信号された後に、浮動小数点アンダーフロートラップが発生することを可能にする。
fp exp exc sig
もしセットされていれば、testexp の先行実行が、全て1または全て0を含む指数フィールドを検出している。
fp exp trap en
もしセットされていれば、浮動小数点指数例外が信号された後に、浮動小数点指数トラップが発生することを可能にする。
fp round mode
MPU命令 rndによって遂行される丸めの型を含んでいる。
fp precision
もしクリアされていれば浮動小数点命令はIEEE単精度( 32 ビット)フォーマットのスタック値を操作する。もしセットされていれば浮動小数点命令はIEEE倍精度( 64 ビット)フォーマットのスタック値を操作する。
リセットの後にIOP 110は、MPUが実行を開始する前にアドレス0×80000004において実行を開始する。IOPは、MPUがバスにアクセスして実行を開始できるようになる前に、遅延を実行するようにプログラムされていなければならない。一旦IOPが遅延を実行すると、MPUはアドレス0×80000008において実行を開始する。種々の起動構成の詳細に関しては、後に「プロセッサ起動」で詳述する。
CPU 100は 24 の割込み資源から異なる8つまでの割込みレベルを支援する優先順位付けされたオンチップ割込みコントローラ114を含んでいる。割込みは、I/Oチャネル転送から、IOPからビット入力を通して受けることができるか、または ioin へ書き込むことによってソフトウェア内へ押しやることができる。割込み及びそれらのサービシングの完全な詳細に関しては、後述する「割込みコントローラ」を参照されたい。
CPU 100は、INTC 114及びDMAC 112と(これらのサービスの要求により)共用される8つの汎用ビット入力116を含んでいる。これらのビットはINバー[ 7:0 ]から取出されるか、または、もしそのように構成されていれば、バス上のAD[ 7:0 ]からサンプルされる。バスからサンプルすることによって、CPUのためにより小さい、高価ではないパッケージの使用が可能になる。またそれは、分離したビット入力バスを経路指定するのではなく、ADバスの再使用を通してPWB領域の要求を減少させることもできる。
CPU 100は、MPU 108またはIOP 110によって書き込むことができる8つの汎用ビット出力118を含んでいる。これらのビットはOUTバー[ 7:0 ]上の出力であり、RASバーが不活動の間AD[ 7:0 ]上で使用可能でもある。バスからビットを取出すことによって、CPUのためにより小さい、高価ではないパッケージの使用が可能になる。またそれは、分離したビット出力バスを経路指定するのではなく、ADバスの再使用を通してPWB領域の要求を減少させることもできる。後述する「ビット出力」を参照されたい。
CPU 100の非MPUハードウェア機能は、一般的にそれら自身のアドレス空間に位置している1組の 41 レジスタ102を通してMPU 108によってアクセスされる。分離したアドレス空間を使用すると実施が簡易化され、演算コードが保存され、そして正常なメモリアドレス空間と周辺装置との混乱が防がれる。まとめて「オンチップ資源」として知られているこれらのレジスタ102によって、ビット入力、ビット出力、INTC、DMAC、MIF、システム構成、及びIOPの若干の機能へのアクセスが可能になる。これらのレジスタ及びそれらの機能は、このマニュアルを通して参照されており、後述する「オンチップ資源レジスタ」に詳述されている。
スタックをベースとするMPUアーキテクチャのように、ShBoom MPU命令は米国規格協会(ANSI)標準フォース( Forth )のようなスタックをベースとするプログラミング言語に類似するドキュメンテーション要求を有している。驚くには当たらないが、多くの米国標準規格(ANS)フォースコア動作は、ShBoom MPU上の命令である。その結果、言語ドキュメンテーションのために使用されるANSフォーススタック表記法が、ShBoom MPU命令を記述するのに有用である。ShBoom MPUに適用される基本表記法は、
( input operands--output operands )
( L : input operands--output operands )
ここに、「 -- 」は命令の実行を指示する。「入力オペランド」及び「出力オペランド」は、オペランドスタック上の値(省略時)か、またはローカルレジスタスタック上の値(“L”を前置)のリストである。これらは、常に同一ではないが、命令ニーモニック内に表すことができる出所及び宛て先オペランドに類似している。スタックレジスタのトップ(s0 またはr0 )内に保持されている値は常にオペランドリストの右にあり、より高い順のレジスタ内に保持されている値は左(例えば、s2 、s1 、s0 )に現れる。オペランドリスト内の唯一のアイテムは、その命令に関連するものである。他の値はスタックのこれらの下に存在することができる。全ての入力オペランドは、スタックからポップされ、動作が遂行され、そして出力オペランドがスタック上にプッシュされるものと考えられる。例えば、記号式
n1 n2 -- n3
は2つの入力オペランドn1 及びn2 と、出力オペランドn3 とを表している。命令 addの場合、n1 (s1 から取出された)がn2 (s0 から取出された)に加算され、結果はn3 である(s0 内に残される)。もし何れかのダイヤグラムの左の値の名前が右の値の名前と同一であれば、その値は要求されたのではあるが不変である。名前はオペランドの型を表している。同一の型の異なる、または変化したオペランドを指示するために、数値サフィックスが付加される。値は、バイト、整数、浮動小数点数、アドレス、または単一の 32 ビットセル内に配置することができる他の何等かの型の値であることができる。
byte 文字またはバイト(上側 24 ビット0)
r 実数(浮動小数点数)
flag 真/偽フラグ(非0=真)
n 整数または 32 任意ビット
other text 整数または 32 任意ビット
ANSフォースは、他のオペランド型及び1スタックセルより多くを占有するオペランド(ここでは、これらは使用されない)を定義している。
入出力プロセッサ(IOP)110(図8)は、データをデバイスとメモリとの間で転送し、ダイナミックメモリをリフレッシュし、時間を測定し、ビット入力及びビット出力を操作し、そしてシステムタイミング機能を遂行するために命令を実行する専用処理ユニットである。通常、IOPプログラムは時間的決定性( temporally deterministic )であるように書かれている。効率的な時間的決定性の手法で実行する条件付き実行経路を含むプログラムを書くことは困難、または不可能であり得るから、IOPは計算的な、及び最小意思決定の能力を含んでいない。IOPプログラムは、計算または意思決定を遂行するためにMPU 108への割込みを使用して、比較的簡単であるように企図されている。
IOPプログラムは、拡大的な量の外部論理と、単にシステム設計とを排除するために使用することができる。更に、タイミングに依存するシステム及びアプリケーション動作のためにIOP 110を使用することにより、MPUプログラムに課せられるタイミング制約を排除または大幅に軽減できることが多い。
* CD品質のステレオサウンドを演奏するために、ディジタル化された 16 ビットのデータ値を1対のDACへ送る、
* 後刻MPUに処理させるために、指定された時間間隔で入力データからのデータをサンプルする、
* LCDディスプレイ上に画像を表示させるために、ディスプレイ及び制御信号を送る、
* 知的SCSIコントローラのために、同期データブロックを転送する、
* ウェーブテーブル( wave-table )シンセサイザのために、多数チャネルのデータをDACへ送る、
* 直列及びXウィンドウビデオ端末、またはPCビデオアクセラレータのために、ビデオ及びI/Oを制御する、
* プロセス制御環境において時間定めされたイベントを制御する、
* 自動車エンジンのために、点火及び燃料を制御する、または
* PCマルチメディア基板を作成するために、上述した幾つかのアプリケーションを組合せる、
ことが挙げられる。
* IOPがアクセスしたデバイス上の状態変化、
* ある値をグローバルレジスタへロード、
* ビット出力をセット、または
* ビット入力を消費、
することによってMPUへ連絡することができる。
* IOP命令をメモリ内に再書き込み、
* IOPが使用しているグローバルレジスタを変更、
* ビット入力をクリア、または
* IOPをリセット、
することによってTOP 110を制御することができる。
IOPは、図8に示すように命令デコード及び実行プロセス、及び他のCPU資源への経路の制御からなる。IOP 110及び関連レジスタは次のものを含んでいる。
* ビット入力レジスタ ioin :ビット入力は、DMAまたは割込み要求、または汎用ビット入力として構成されている。図21を参照されたい。
* 割込みペンディングレジスタ ioip :どの割込みが認識されたかを指示するが、優先順位付けされてサービスされるのを待機する。図22を参照されたい。
* ビット出力レジスタ ioout:MPUまたはIOPの何れかによって最後に書かれたビット。図24を参照されたい。
* IOPリセットレジスタ iopreset :何等かの値を書き込むと、IOPはIOPソフトウェアリセットアドレスにおいて実行を開始する。図46を参照されたい。
* グローバルレジスタg1 乃至g7 :遅延によって使用される値を含む。
* グローバルレジスタg8 乃至g15:ループカウントまたはI/Oチャネル転送明細を含む。転送明細は、デバイス及びメモリ転送アドレス、及び制御ビットからなる。図12を参照されたい。
IOP 110はグローバルレジスタg1 乃至g155をMPU 108と共用し、それらをループカウント、遅延初期化カウント、及び情報転送に使用する。ループカウント及び遅延カウントは 32 ビットである。ビット 31 −2 の転送アドレスは、典型的にはセルをアドレスするが、I/Oチャネル構成に依存してバイトもアドレスすることができる。ビット1は、転送がメモリ書き込みであるのか、またはメモリ読み出しであるのかを決定し、ビット0は 1024 バイトメモリページ境界クロッシングへの割込みを可能にする(後述する「割込み」参照)。図12を参照されたい。
表38は、IOP命令をリストし、表40及び表41はニーモニック及び演算コードをリストしている。命令実行の詳細は、後述する「命令参照」において説明する。
全ての命令は、 32 ビット即値データを必要とする ld 、及びページ相対宛て先アドレスを必要とする飛越しを除いて、8ビットからなる。8ビット命令を使用することによって、各命令取出しで4命令(命令グループと呼ぶ)を入手することができ、従って、典型的な 32 ビットプロセッサに比してメモリ帯域幅要求を減少させることができる。この特徴によれば、付加的な命令取出しを行うことなく命令グループ上をループすることができ(マイクロループ)、効率が更に向上する。命令フォーマットを図10に示す。
命令 jump は可変長である。 jump 演算コードは命令グループ内のどの位置にも発生することができる。演算コード内の4つの最下位ビット及びその演算コードの右の現命令グループ内の全てのビットは、ページ相対宛て先アドレスのために使用される。図10を参照されたい。これらの宛て先アドレスは、宛て先アドレスビットの範囲、及び宛て先において実行される命令の数を最大にするようにセル整列されている。ページ相対宛て先アドレスは、現命令グループ内の演算コードの位置に依存して4、12、20、または 28 ビット長である。これらのビットは、次のIOPpc内の同一セルアドレスビットを置換するために使用される。次のIOPpcは現命令グループに続くセルアドレスであり、現命令グループ内の jump に先行する各 ld 命令毎にインクリメントされている。宛て先アドレスビットは、命令内のビットの数に依存して、現 64 バイトメモリページ内、現4Kメモリページ内、現1MBメモリページ、または現 256MBメモリページ内のどの位置にも達することができる。もし宛て先アドレスビットが飛越しして宛て先に到達するのに充分な範囲でなければ、 jump はより多くの宛て先アドレスビットが使用可能な命令グループへ移動しなければならない。
命令 ld は、 40 ビットを必要とする。8ビットが現命令グループ内の演算コードのためのものであり、現命令グループに続く 32 ビットがリテラルデータのためのものである。 ld 演算コードは、命令グループ内のどこにでも発生することができる。命令グループ内の第1の ld のためのデータはメモリ内の命令グループの直後に続き、その後の ld のための各データは連続する位置を占める。演算コード内の4つの最下位ビットは、そのデータの宛て先であるグローバルレジスタの数を含んでいる。グローバルレジスタ0(g0 )は許容されない。
他の全ての命令は8ビットを要求する。殆どは、レジスタまたは演算コードの3つまたは4つの最下位ビット内にエンコードされたビット数を有している。「命令参照」を参照されたい。
実行クロックサイクルの計数は、IOPをプログラムするためのキーである。各命令は、「命令参照」に記述してあるように実行時間を必要とする。一般的に言えば命令は、実行するための2×クロックサイクル+何等かの遅延または明示または暗示バストランザクションのための時間を必要とする。バストランザクション時間は、後述する「プログラマブルメモリインタフェース」、及び後述する「バス動作」に記載されているようにプログラムされる。
IOP110は、MPU108として同じ32ビットのアドレス空間を用いるが、それ自身のプログラムカウンター154を有し、独立して、同時に実行する。xferの実行中にアドレスされるI/Oデバイスは同じアドレス空間内にある。xferバストランザクションは、それらがどのように初期化されるかに対してを除いてI/Oチャネルバストランザクションと同じである。以下のダイレクトメモリアクセス制御装置を参照されたい。
IOP110は、intを実行することによって8つのMPU割り込みの何れかを要求することができる。このIOPは、xferの実行中に1024バイトのメモリページの最後のロケーションにアクセスすることによってMPU割り込みを要求することもできる。xferの転送割り込みとI/Oチャネルの転送割り込みは同一である。更なる情報のために以下のダイレクトメモリアクセス制御装置を参照されたい。MPU108は、IOP110が次に遅れを実行するときに割り込み要求に応答することができる。
IOP110の命令フェッチバストランザクションは、MPU108のメモリ読み取りバストランザクションと同じである。xferバストランザクションは、それらが如何に初期化されるかを除いてDMAバストランザクションと同じである。以下のバスオペレーションを参照されたい。
ioinにおけるバス入力は、tskipzを有するIOP110によってアクセスされる。この命令は、入力ビットをテストし、それを消費し、且つ命令群の残りを連続的にスキップする。これは、DMAC112とともに利用可能である簡単な非同期の伝送よりポーリングデバイス転送や複雑なデバイスの転送シーケンスを考慮する。以下のビット入力を参照されたい。iskipzは、条件実行を行うので、もし、確定的実行が期待されるなら、iskipzを含むプログラムコードを指定するときに、注意をしなければならない。
ハードウェハのリセット後、IOP110は、MPU108が実行を開始するまえに、アドレスox80000004の実行を始める。その後、IOPはDRAMを初期化するために必要とされるRASサイクルを行い、MPUがシステムを構成することができるように遅れを実行する前に、DRAMのリフレッシュを維持するためにプログラムループを始めることができる。
以下のテキストは、IOP命令の各々の記述を含む。機能的な記述に加えて、実行するのに必要な操作コード(opcode)と2X−クロックサイクルの数は右のマージンにある。
ダイレクトメモリアクセス制御装置(DMAC)112(図11)は、I/O装置がMPUの介入のないシステムメモリへ、及びメモリからデータを転送するようにする。DMACは、8つの別々のソースから優先化された8つのI/Oチャネルをサポートする。ダイレクトメモリアクセス(DMA)要求は、ioinを介してビット入力から受け取る。DMAおよびMPUバス要求の優先度は、高い優先要求が低い優先要求を阻止するように固定されるか、あるいは満足されない高い優先要求が低い優先要求を阻止するのを妨げるように働くかの何れかである。
DMACは、幾つかのレジスタと関連する制御ロジックからなる。レジスタのビットゼロに相当するDMA要求ゼロは、高い優先度を有する。レジスタのビットセブンに相当するDMA要求セブンは、低い優先度を有する。DMACと関連レジスタは:
・ビット入力レジスタ、ioin:DMAとして構成されたビット入力又は割り込み要求、又は一般のビット入力。図21を参照。
・割り込み可能なレジスタ、ioie:どのioinビットが割り込み要求として認識されるべきかを示す。図25を参照。
・DMA可能レジスタ、iodmae:どのioinビットがDMA要求として認識去れるべきかを示す。もし、DMAがioinビット上でイネーブルされるなら、そのビット上のioinによる割り込み可能は無視される。ズ26を参照。
・DMAイネーブル終了レジスタ、iodmaex:どのiodmaeビットがクリアされるかを示し、1024バイトのメモリページがそのチャネル上に生じることを含むDMA伝送に続く。図44を参照。
・全体のレジスタg8−g15:I/Oチャネル転送スペシフィケーションを含む。転送スペシフィケーションはデバイスおよびメモリ転送アドレスおよび制御ビットから成る。図12を参照。
・固定DMA優先ビット、fdmap、レジスタにおけるその他のB、miscb:もし、高い優先要求が満たされることができないなら(即ち、利用可能なバストランザクションスロットは小さすぎる)、低い優先バス要求がバスヘアクセスするために競合するのを避けたり、或いはそれを可能にする。図29参照。
ioinビットは、対応するiodmaeビットがセットされ、対応するioieビットがクリアであるとき(iodmaeがセットされると、ioieは無視されるけれども)、DMA要求資源として構成される。一旦ゼロがioinに達すると、それはDMAI/Oチャネル転移を要求するために利用可能である。iodmaeビットをクリアすることによってI/Oチャネル上のDMA動作を個々にディスエーブルすることは、ioinにおける対応するゼロビットがDMA要求として認識されるのを防ぐが、しかしioinにおける対応するビットのゼローパーシステンスに影響をあたえない。
DMA要求は他の未決のDMA要求と共に優先度が与えられ、そして、もし、要求が高い優先度を有しているか、回転する優先シーケンス(以下参照)における次の要求であるなら、その対応するI/Oチャネルはバスを要求するために次の要求である。DMA要求の優先度を与えることは1つの2X−クロックサイクルを完成するように要求する。I/Oチャネルバス要求が行われると、MIF120は、現在のバストランザクションまで待つ。それは、利用可能なバススロットが要求されたI/Oチャネルバストランザクションに対して充分大きいかどうかを決定するために、iopdelayをチェックする。もし、バススロットが充分大きいなら、バスはI/Oチャネルに許可され、バストランザクションが開始する。
I/Oチャネル伝送のために用いられたアドレスは、T/Oデバイスアドレスおよびメモリアドレスの両方を含む。規約によって、最上位のアドレスビット(A31がセットされたとき)は、I/Oデバイスアドレスを選択し、一方最下位のアドレスビットは伝送のためのメモリソース/行き先を選択する。マルチサイクル転送動作(例えば、バイトデバイスとセルメモリ間を転送すること)は、A31がI/Oデバイスのアドレスデコードの一部であると仮定し、バストランザクション中に必要とされるI/Oデバイスを選択したり、選択しなかったりするために、A31をパス/クリアする。以下のI/Oアドレッシング及びI/Oチャネル転送を参照されたい。
I/Oチャネル転送が1024バイトメモリページの最後のロケーションをアクセスした後、MPU108は、要求されることができる。要求された割り込みは、I/Oチャネル数と同じであり、そしてもし、割り込みがそのチャネル上でイネーブルされるなら、生じる。(即ちもし、対応する全体のレジスタのビットゼロがセットされるなら)。以下の図12および割り込みコントローラーを参照されたい。これによって、例えば、MPUは、転送が完了したこを知らされる(転送メモリ領域の最後を1024バイトのメモリページに関連することによって)か、あるいは長い転送中にMPUに進行を知らせる。
I/Oデバイスで実行されるバストランザクションの型は、含まれるメモリグループがセル幅かバイト幅であるかに依存し、またデバイスが1バイトのバイト転送、4バイトのバイト転送或いは1セルのセル転送デバイスであるかに依存する。以下のI/Oチャネル転送を参照されたい。
I/Oチャネル転送中にアクセルされたI/Oデバイスは、プログラムされたバスサイクルの終わりによって転送を完了しなければならない。待ち状態は利用できない。I/Oデバイスは、一般にメモリより長いアクセス時間を有しているので、I/Oチャネルバスサイクル中にアクセルされたメモリグループに対してプログラムされたバスタイミングはmgXebtにおける対応する値に対してioXebtを置き換えることによって変更される。ioXebtは、I/Oデバイスに対して、および転送に含まれるあらゆるメモリグループに対して適切でなければならない。以下のプログラム可能なメモリインターフェースを参照されたい。
ioinに対する外部の入力ソースがINバー〔7:0〕であるとき、最大のバンド幅,バックツーバックDMA転送が可能である。これを達成するために、DMAバストランザクションの終わりに、内部回路は、INバー〔7:0〕上で直接DMA要求ビットをチェックするあめに、入力サンプリング回路をバイパスする;もし、信号がローで、高い優先度の要求が未解決であれば、他のDMAバス要求は、通常のサンプリングと優先度を与えるディレイなく直ちに生じる。これは、外部のDMAハードウェアが、ビットがこの時に有効であることを保証する。図76,78、ページ192を参照されたい。もし、残りのバススロットが充分大きいならば、DMAバス要求は許可され、転送は直ちに開始する。バックツーバックDMAバストランザクションを終了するために、DMA要求入力は、現在のバストランザクションの終わり前にハイにならなければならないか、対応するDMAイネーブルビットはクリアされなければならない。以下、終了するDMAI/Oチャネル転送を参照されたい。最大の可能な転送速度は2つの2X−クロックサイクル毎に4バイトである。例えば、50−MHz 1Xクロックで、最大の転送速度は200MB/秒である。
DMAI/OチャネルバストランザクションはI/Oチャネル上に生じ、一方DMAはイネーブルされたままであり、DMA要求が受信される。特定された数のトランザクションにDMA転送を制限するために;
・必要とされる最後のデータ転送が1024バイトメモリページにおける最後の位置を用いて生じるように、DMA転送アドレスをプログラムする、及び
・対応するiodmaexビットをセットする。
上記のトランザクションが完了すると、iodmaeにおけるDMAイネーブルビットはクリアされる。もし、転送割り込みが対応するI/Oチャネルのための全体のレジスタにおいてイネーブルされるなら、対応するMPU割り込みも要求されるであろう。
DMA112はイベントをカウントするために、また与えられた数に達したときにMPU108を中断するために用いられることもできる。これを行うために、イベントは通常のDMAメモリ読み取り要求を生成するように設計され、生じた転送サイクルは対応する全体のレジスタにおいて“アドレス”を増加する。この“アドレス”はイベントカウンターになる。MPUは、如何に多くのイベントが生じたかを決めるために何時でもレジスタを試験することもできる。与えられた数の後、MPUを中断するために、ビット9−2内の負のカウント値に対して全体のレジスタをプログラムし、ページ境界の割り込みを可能にする。MPU108は、カウンターがゼロに達すると、中断される。
INTC114は幾つかのレジスタと関連する制御ロジックからなる。レジスタのビットゼロに対応する割り込みゼロは最も高い優先度を有し;レジスタのビットセブンに対応する割り込みセブンは最も低い優先度を有している。INTC114および関連レジスタは:
・ビット入力レジスタ116,ioin:DMAまたは割り込み要求、あるいは一般のビット入力として構成されるビット入力。図21参照。
・割り込み可能レジスタ158,ioie:どのioinビットが割り込み要求として認識されるかを示す。図25参照。
・割り込み未決レジスタ,ioip:どの割り込みが認識されたか、しかし優先化され、サービスされるために待機しているかを示す。図22参照。
・サービスレジスタの下での割り込み,ioius:どの割り込みが現在サービスされているかを示す。図23参照。
・全体のレジスタg8−g15:I/Oチャネル転送スペシフィケーションを含む。転送スペシフィケーションは、デバイスおよびメモリ転送アドレスおよび制御ビットからなる。ビットゼロは対応するチャネル上のI/Oチャネル転送中に割り込みを可能にする。図12参照。
・DMAイネーブルレジスタ,iodmae:どのioinビットがDMA要求として認識されるべきかを示す。もし、DMAがioinビット上でイネーブルされるなら、そのビット上のioieによって割り込み可能は無視される。図26参照。
各割り込み要求は3つのソースによって共有される。要求は、ioinにおけるゼロビットから(一般には外部の入力ローから)、I/Oチャネル転送割り込みから、あるいはIOP命令intから来ることができる。割り込み要求ゼロはioinビットゼロ、I/Oチャネルゼロ(g8を用いて)、或いはint0から来る;割り込み要求1はioinビット1、I/Oチャネル1(g9を用いて)、或いはint1から来る;他の割り込み要求は同様に割り当てられる。テーブル42を参照。アプリケーションの用法は一般に割り込み要求に対して1つのソースのみを指定するが、これは必要ではない。
何れかのソースから割り込み要求が起きると、ioipにおける対応ビットがセットされ、割り込み要求は未決割り込みとなる。未決割り込みは、各2X−Kクロックサイクルに優先順位が与えられる。モードにおける割り込み enビットは現在の全体の割り込み可能状態を保つ。それはMPUイネーブル割り込み命令でセットされ,ei;ディスエーブルの割り込み命令でクリアされ、di;或いはモードを変更することによって変えられる。全体的にディエーブルしている割り込みによって、全ての割り込み要求はioipに達するようにするが、ioipにおける未決割り込みがサービスされるのを防止する。
ioinビットは、もし、対応するioieビットがセットされ、対応するiodmaeビットがクリアされているなら、割り込み要求ソースとして構成される。一旦ゼロがioinに達すると、割り込みを要求するように利用可能である。割り込み要求は、対応するioinビットをチェックすることによって、あるいは対応するioipビットをセットすることによって、ソフトウェアで強制される。そのioieビットをクリアすることによって割り込み要求を個々にディスエーブルすることは、ioinにおける対応するゼロビットが割り込み要求として認識されるのを防止するが、他のソースからの対応する割り込み要求に影響しない。
もし、ioinビットがDMA要求として構成されるか、あるいはそのI/Oチャネルがxferによって使用されるなら、対応する全体のレジスタにビットゼロを備えた、1024バイトメモリページにおいて最後の位置を含くむ伝送がセット(即ち、転送割り込みが可能にされる)された後に、割り込み要求が生じる。その要求は、セットされている対応するioipビットによって生じ、対応するioieビットをクリアすることによってディスエーブルされない。
IOPはintを実行することによって8つの利用できる割り込みのいずれかを直接要求することもできる。その要求は、セットされている対応するioipビットによって生じ、対応するioieビットをクリアすることによってディスエーブルされない。MPUは、IOPが次にdelayを実行するとき、割り込み要求に応答することができるであろう。
割り込み要求がMPUによって認識されると、対応するISRの実行可能なコードベクトルへの呼出しが行われ、割り込みは、命令グループのバイト1において開始する命令が実行されるまで、阻止される。高い優先度の割り込みによって割り込まれることなく割り込みサービスをするために:
・ISR実行可能なコードベクトルは4バイトの分岐を一般的に含み、且つ
・割り込みサービスルーチンの第1の命令グループは割り込みを全体的にディスエーブルする。テーブル43におけるコード例を参照されたい。
8個の外部ビット入力が、ビット入力レジスタ116ioin(図14)において使用可能になっている。それらは、インタラプトリクエストとして、DMAリクエストとして、IOPインストラクションtskipzとして、及び、MPUによる一般使用のビット入力として使用できるように共有される。それらは、pkgio の状態によって定められる2つのソースの1つから外部的にサンプリングされる。
ビット入力は幾つかのレジスタと、パッケージピンと、関連の入力サンプリング回路とから成る。これらのリソースは、以下のものを含んでいる。
・ ビット入力レジスタ116,ioin:DMA又はインタラプトリクエストとして構成されたビット入力、又は汎用のビット入力。図21参照。
・ インタラプトイネーブルレジスタ,ioie:ioinビットがインタラプトリクエストとして認識されるべきものであることを示す。図25参照。
・ インタラプトペンディングレジスタ,ioip:インタラプトが、認識され終えたが、プライオリティ付けされるべきものとして、又はサービスされるべきものとして待機中にあることを示す。図22参照。
・ インタラプトアンダーサービスレジスタ,ioius :インタラプトが現在サービス中であることを示す。図23参照。
・ DMAイネーブルレジスタ,iodmae:ioinビットが、対応するI/OチャンネルのためのDMAリクエストとして認識されるべきものであることを示す。DMAがioinビット上でイネーブルであると、そのビット上のioieによるインタラプトイネーブルが無視される。図26参照。
・ パッケージI/Oピンビット,pkgio :レジスタミスレーニアス(種々のレジスタ)B,miscb :ビット入力が、専用の入力IN〔7:0〕からサンプリングされるか、又は、AD〔7:0〕からマルチプレクスされるかを選択する。図29参照。
pkgio がクリアされると、ビット入力は、RASバーがローでCASバーがハイである間に、AD〔7:0〕からサンプリングされる。外部ハードウエアは、AD〔7:0〕にそのビット入力を置いて、適当な時にそれらを除去する。ビット入力のためのAD〔7:0〕の使用は、INバー〔7:0〕の使用に比較すると、PWBエリア及びコストを減少することができる。AD〔7:0〕は、以下のときの入力についてサンプリングされる。
・ CASバーがハイである間であって、RASバーがローに遷移した後の4個の2X−クロックサイクルのとき、
・ CASバーがハイのままになっているときであって、4個の2X−クロックサイクル毎に、
・ 最後のサンプリングから少なくとも4個の2X−クロックサイクルが経過した場合のCASバーがローに遷移した直後、及び
・ CASバーがまだハイにある場合の、CASバーがハイに遷移した後の4個の2X−クロックサイクルのとき、である。
・ サンプリング前にバス上にデータを置くための外部ハードウエアの時間、
・ CASバーがハイである間に連続サンプリング、及び
・ 最後のサンプリングから4個の2X−クロックサイクルが経過した場合の各CASバーバスサイクル毎に、少なくとも1つのサンプリングを行うこと。
ioinビットは、その対応のiodmaeビットがセットされるとき、DMAリクエストソースとして構成される。DMAバスの遷移が開始した後、ioinビットは消費される。
ioinビットは、対応のioieビットがセットされ且つ対応のiodmaeビットがクリアされているとき、インタラプトリクエストソースとして構成される。インタラプトリクエストが処理されている間において、そのISRがretiを実行することによって終了するまで、対応のioinビットは、ゼロ持続性でなくなり、外部入力のサンプリングされたレベルに従う。特に、所与のインタラプトリクエストについて、そのioieビットがセットれてそのioipビット又はioius ビットがセットされている間、そのioinビットはゼロ持続性はない。この効果は、非インタラプトビット(後述)上のゼロ持続特性をディスエーブルするのに使用され得る。
ioinビットが、インタラプトリクエストのために構成されているのでもなく、DMAリクエストのために構成されているのでもない場合、それはゼロ持続性の汎用のioinビットである。それとは別に、INTCの効果を使用することによって、汎用ioinビットは、ゼロ持続性を持つように構成され得る。このように構成された任意のビットは、下位側のプライオリティのインタラプトをブロックしないように、最低位のプライオリティのioinビットとなるべきである。それらは、それらのioie及びioius ビットをセットすることによて構成される。ioius ビットは、ioinビットがゼロを持続するのを阻止し、プライオリティ付けされるのを阻止し、インタラプトリクエストを生じるのを阻止する。表44のコードの例を参照されたい。
ioinビットは、tskipzへの入力として使用され得る。このインストラクションは、そのビットを、読み出し、テストし、消費する。このioinビットは、IOP110によって書き込むことはできない。汎用ioinビットは、代表的には、tskipzのために使用されるが、使用法においてハードウエア上の制限はない。
ioin内のビットは、MPU108によって、ldo[ioin]及びsto[ioin]を用いてグループとして読み出されたり書き込まれたりし、あるいは、Ido.i[ioXin-i]及びsto.i[ioXin-i]を用いて、個々に読み出されたり書き込まれたりする。ioinへゼロビットを書き込むことは、サンプリングの遅延がないことを除いて、あたかも外部ビット入力が1サンプリングサイクルの間にローに遷移したのと同じ効果を有する。これによって、ソフトウエアは、外部入力又はDMAリクエストのようなイベントをシミュレートすることができる。ioinへ1のビットを書き込むことは、ビットがゼロ持続性であるときの外部入力からのデータと違って、ゼロの持続を解除して、現在のサンプルを受入れる。書き込まれたデータは、書き込みの完了の直後から使用可能となる。MPUは、ioinの指示とは無関係に且つビットの状態の影響もなく、いつでもioinを読み出すことができる。MPUは、読み出しの間、ioinビットの状態を消費しない。表45のコードの例を参照されたい。
8個の汎用ビット出力は、MPU又はIOPのいずれかによって、ハイ又はローにセットされ得る。これらのビットは、ビット出力レジスタ118(図15参照)において使用可能である。
ビット出力は、レジスタと、パッケージピンと、関連の回路とから成る。これらのリソースは以下のものを含んでいる。
・ ビット出力レジスタ,ioout :MPU又はIOPのいずれかによって最後に書き込まれたビットである。図24参照。
・ 出力,OUT〔7:0〕:専用の出力ピン。
・ アドレスデータバス,AD〔7:0〕:RASバーがハイのときこれらのピン上のマルチプレクスされたビット出力。
・ 出力ピンドライバカレントビット,outdrv,ドライバカレントレジスタ中,ドライバ:OUT〔7:0〕のドライブ能力をセットする。図45参照。
それらのビットは、MPUによって、ldo[ioout]及びsto[ioout]を用いてグループとして読み出されたり書き込まれたりし、あるいは、ldo.i[ioxout-i]及びsto.i[ioXout-i]を用いて、個々に読み出されたり書き込まれたりする。
プログラマブルメモリインタフェース(MIF)120によって、CPUバスインタフェースのタイミングと振る舞いが、最少の外部ロジックによって周辺デバイスのニーズに適するようにされ、従って、性能を維持しながらシステムコストを減少させる。いろいろなメモリデバイスが、EPROM、SRAM、DRAM、VRAM、及びいろいろなI/Oデバイスを含めて、支持される。バス上の全てのオペレーションはMIF120によって指示される。バスインタフェースの殆どの特徴は、アドレスセットアップ及びホールドタイムと、データセットアップ及びホールドタイムと、出力バッファイネーブル及びディスエーブルタイムと、書き込みイネーブル活性タイムと、メモリサイクルタイムと、DRAMタイプデバイスアドレスマルチプレクス動作と、及び、DRAMタイプRASサイクルが生じたときを含めて、プログラム可能である。追加の仕様が、データセットアップ及びホールタイムと、出力バッファイネーブル及びディスエーブルタイムと、デバイスの転送タイプ(1バイト、4バイト、又は1セル)とを含めて、I/Oデバイスにとって使用可能である。
MIFは、幾つかのレジスタとパッケージピンと関連の制御ロジックとから成る。これらのリソースには、以下のものが含まれる。
・ VRAMコントロールビットレジスタ,vram:特別なオペレーションを開始するために、OEバー、LWEバー、CASes、RASes、及びDSFを制御する。図27参照。
・ ミスレーニアス(種々のレジスタ)Aレジスタ,misca :リフレッシュ及びRASサイクルの生成を制御すること。図28参照。
・ ミスレーニアス(種々のレジスタ)Bレジスタ,miscb :各メモリグループのデータ幅(セル幅又はバイト幅)を選択すること、及び、メモリバンク選択アーキテクチャ。図29参照。
・ メモリシステムグループ選択マスクレジスタ,msgsm :アドレスビットがデコードされてメモリデバイスのグループを選択することを示す。図32参照。
・ メモリグループデバイスサイズレジスタ,mgds:各メモリグループのためのメモリデバイスのサイズと構成を示す。図33参照。
・ ミスレーニアスCレジスタ,miscc :RASサイクルの生成とSRAMメモリグループのためのバンク選択アドレスビットの位置とを制御。図34参照。
・ メモリグループX拡張バスタイミングレジスタ,mgXebt :対応するメモリグループのメモリデバイスのために、より長いデータセットアップ及びホールドタイムと出力バッファイネーブル及びディスエーブルタイムとを生成する、メモリサイクル拡張又は伸長値を示す。図35参照。
・ メモリグループXCASバスタイミングレジスタ,mgXcasbt:1バスサイクルのCAS部分について、非拡張及び非伸長アドレス及びデータストローブ活性タイムを示す。図36参照。
・ メモリグループXRASバスタイミングレジスタ,mgXrasbt:RASサイクルを生成するように、1バスサイクルのCAS部分にプリペンドされる、RASプリチャージ及びアドレスホールドタイムを示す。図37参照。
・ I/Oチャンネル伸長バスタイミンクルジスタ,ioXebt:対応するI/Oチャンネル上のI/Oデバイスのために、より長いデータセットアップ及びホールドタイムと出力バッファイネーブル及びディスエーブルタイムとを生成する、メモリサイクル拡張又は伸長値を示す。図38参照。
・ メモリシステムリフレッシュアドレス,mrsa:次のDRAMリフレッシュサイクルの間に使用されるべき行アドレスを示す。図39参照。
・ I/Oデバイス転送タイプAレジスタ,iodtta:I/Oチャンネル0,1,2,3の各々の転送のタイプを示す。図41参照。
・ I/Oデバイス転送タイプBレジスタ,iodttb:I/Oチャンネル4,5,6,7の各々の転送のタイプを示す。図42参照。
・ ドライバカレントレジスタ,driver:種々の出力ドライバの相対的なドライブカレントを示す。図45参照。
MTF120は、種々のメモリと周辺デバイスへの直接接続を支持している。主要な要件は、デバイスのアクセスタイムは決定論的であることであり、待機状態は、IOP110のために非決定論的なタイミングを生成するので、使用可能でないことである。MIF120は、マルチプレクス化されたアドレスデバイス(DRAM、VRAM等)について128MBまでのサイズ、及び、デマルチプレクスされたアドレスデバイス(SRAM、EPROM等)について1MBまでのサイズのワイドなレンジを支持する。DRAMタイプデバイスへのファーストページモードアクセス及びRASのみリフレッシュが支持されている。SRAMタイプデバイスは、RASアドレスビットがなく且つ多数のCASアドレスビットがあるDRAMとしてMIFに現れる。図33参照。
MIF120は、最も最近のRASアドレスビットの各々と独特の構成を維持しながら、4つのメモリグループまで動作させる。2つまでのアドレスビットがデコードされて、現在のグループを決定する。この機能のためのアドレスビットは、メモリシステムグループ選択マスクレジスタ,msgsm の中にセットされる。各メモリグループは、デバイスの幅、バスタイミング、及びデバイスサイズ(如何にアドレスビットがAD〔31:9〕上にマルチプレクスされるかを特定する)について、プログラムされる。グループ選択マスクの下部のアドレスビットは、代表的には、メモリデバイス又はI/Oデバイスの一部をアドレスするのに使用されて、グループ選択マスクの上部のビットは、代表的には、I/Oデバイスをアトレスするのに使用される。
各メモリグループは、バスインタフェースモードに依存するように選択された1又はそれ以上のメモリバンクを持つことができる。1つのメモリグループの全メモリバンクは、そのグループの構成と最も最近のRASアドレスとを共有している。2つのアドレスビットが、現在のメモリバンクを決定するために、デコードされる。
各メモリグループは、デバイス幅、デバイスサイズ及びバスタイミングの独特の構成を用いてプログラムされ得る。CPUがリセットした後、システムが、可能な最低のバスタイミングを用いて、バイト幅モードで動作し、メモリグループゼロ、普通、外部PROMから実行する。後述のプロセッサのスタートアップの項を参照されたい。通常、PROM内のプログラムコードは、最初に、メモリグループのための適正な構成、I/Oデバイス、及び他のシステムの要件を決定するためのコードを実行する。
メモリデバイスサイズは、mgdsの16個の設定値の1つにプログラムされる。最も現在において使用可能な及び間もなく使用可能なDRAMタイプデバイスサイズが、SRAMタイプのオプションとともに、選択される。デバイスサイズ及び幅の選択は、AD[31:9]のアドレスビットの配置を決定する。表47及び表48を参照されたい。
メモリデバイスの幅は、8ビット(1バイト)又は32ビット(1セル)のいずれかであり、miscb のmgXdsを用いてプログラムされる。
各メモリグループに対するRASとCASのサイクルのタイミングは、各I/Oチャンネルのデータ・セットアップとホールドタイムと同様に、プログラムできる。パラメータに応じて、タイミング・グラニュラリティ(timing granularity)は2X−クロックサイクルもしくは4X−クロックサイクルのいずれかである。ある場合にはタイミングは、イベントを一つの4X−クロックサイクルだけ進めるのに利用できるモディファイアーを有して2X−クロックサイクルで決められる。
メモリグループのためのこのタイミングは対応mgXrabstにおけるフイールドをプログラムすることによって決められる。RASサイクルのRASプレフイックスは進み2Xクロックサイクル、RASプリチャージ(mgbtras)として参照されるRASの不活性部、そしてRASアドレス・ホールドタイム(mgbtrhld)とから成る。RASサイクル期間の計算のためmgbtrastはmgbtras とmgbtrhld+1との集計を含まなければならない。この時間中DRAMRASアドレスビット、ハイ・アドレスビットそしてビット出力がAD上にある。図37参照。
メモリグループのためのこのタイミングはmgXcabstとmgXebtとにおけるフイールドをプログラムすることによって決められる。そのサイクルのCASバー部はCASプリチャージ(mgbtcas)として参照されるCAS不活性部のタイミングから始まる。次はCASアドレス・ホールドタイム/データタイムの開始(mgbtdob)であり、そのときDOBバーと、多分OEバーもしくはLWEバーがアクチブとなる。そのとき、CASバー、DOBバーそしてOEバー(もしメモリー読みなら)もしくはLWEバー(もしメモリー書き込みなら)のどちらかが再び不活性もしくはインアクチブになる(mgbtcast)。長いデータセットアップとバッファー時間に対処するためにCASサイクルをDOBバーの立ち下がりで拡張できる(mgebtdobe)。長いデータホールドと出力バッファー・ディスエーブル時間とに対処するためにDOBバーのインアクチブ(mgebtcase)に続いてCASストローブを拡張できる。CASサイクルの始め(もしRASサイクルであればRASバーの立ち上がり前に)、もしくはCASバーの立ち下がり(mgbtewea)のどちらかでEWEバーをアクチブにするようにメモリ書き込みサイクルをプログラムできる。同様に、DOBバーの立ち下がり+拡張、もしくはDOBバーの立ち下がり+拡張もしくはDOBバーの立ち下がり+拡張+一つの4Xクロックサイクル(mgbtlwea)のどれかでアクチブとなるようにLWEバーをプログラムできる。EWEバーはDRAMタイプデバイスを受け入れるのが普通である。更に、インアクティブになるDOBバーはEWEバー/LWEバーもしくはOEバーをトラックし、これらの何れもが延長されていないCAS時間よりも一つの4Xクロックサイクル時間だけ先にインアクティブにされることができ、mgbtcastが mgebtsum に加えられ、後者はmgebtdobe と mgebtcaseの集計を含んでいなければならない。図36と図35を参照。
メモリの内容を保持するためメモリデバイス内の各行にDRAMが周期的にアクセスしなければならない。IOP命令リフレッシュにより供給されるRASオンリーリフレッシュモードを含む、幾つかのリフレッシュモードを大抵のDRAMデバイスが支持している。システム内の大抵の限定DRAMに対して十分に短いインターバルでリフレッシを実施できるようIOPをプログラムできなければならない。リフレッシ・サイクル内のタイミングはmsrtg により指示されるメモリーグループのRASサイクルタイミングを利用し、それはシステム内の最も遅いDRAMのリフレッシュサイクルに対して十分長くなければならない。各メモリグループに対するリフレッシュは個別にイネーブルされたり、ディスエーブルされる。図28参照。
特殊なVRAM動作モードはvramの使用により支持される。図27と表35とを参照。多くのVRAMモードがRASサイクルを使ってVRAMデバイスに動作状態を設定する。こうして、予期されないRASサイクルが望ましくない結果を生じる。
RASサイクル発生
ADに新しい行アドレスを持ち込むのにRASサイクルをDRAM型デバイスでは本来必要とする。IOPの一時的に決定した実行を保証するのに、もしくはあるイベントの後正しい作動を保証するのに、ある場合にはRASサイクルは必要である。MIFはこれらの場合を自動的に取り扱う。例えば、I/Oアドレスをデコードするための付加的な時間を供給するようRASサイクルが発生するようにもできる。RASサイクルはCASサイクルよりも長いのが普通であるので、それらの使用を最小とするのが望ましい。RASサイクルの様々なソースを表49に挙げる。
総てのパッケージ出力ドライバーの駆動能力はプログラムできる。図45参照。
仮想メモリページ欠陥検知はmfltイネーブル イン・モードを介して可能化される。pkgmflt の状態に応じて、メモリ欠陥入力はAD8もしくはMFLTバーのどちらかからくることができる。図34参照。
前に説明したように、ノーマルなメモリグループバスタイミングはI/Oチャンネルバストランザクション中、対応するioXebtの値をその取り込まれたメモリグループに対するmgXebtの値の代わりに使うことにより変えられる。このことにより各I/Oチャンネルはデバイスの必要条件を満たすようプログラムされる。データ転送が起きるかもしれないメモリグループと同様、I/Oデバイスに対してioXebtの値は十分でなければならない。図38参照。
オン・チップリゾースレジスタ102(図20)はMPU108,IOP110,DMAC112,INTC114,MIF120,ビット入力116そしてビット出力118を含むCPU100上の様々な機能ユニットの部分を備えている。これらのレジスタは、レジスタレベルで1do〔〕とsto 〔〕を使用し、もしくはビットレベルで1do.i〔〕と sto.i〔〕を(ビットアドレスを有するレジスタに対して)使用してそれら自身のアドレススペース内のMPUからアドレスされる。他のプロセッサ上でこの形式のリゾースはメモリーマップされているか、オプコード・マップされているかのどちらかである。別のアドレスを使うことによりスペースは整理され、そしてコードは保存される。注意書がしていない、すべてのレジスタは読み取りと、書き込みができる。「リザーブされた零」と記した区域はプログラマブルビットを含んでおらず、そして常に零に戻る。「リザーブされた」と記された区域は使用されていないプログラマブルビットを含んでいる。両区域は将来ファンクショナルなプログラマブルビットを含むことになるかもしれない。
●DMAリクエストに応じない。
●IOPがバスを捉えない(iopdelayが零になる)。
●書き込みが送られない。
●プリフェッチが生じない。
msgrp はこのレジスタにより制御されるVRAMを含むメモリーグループを説明する。IOPとMPU命令はVRAMのため使用されたメモリーグループから送られるべきではない。VRAM作動は、意図されたVRAMトランザクションではなく命令フェッチ・バス・トランザクションで生じ勝ちであるからである。
dsfvcas
dsfvcas はVRAMメモリーグループ上のメモリーサイクルの次のCAS部分の開始でDSFへ加えられた状態を含んでいる。ビットは永続し、そして隠されたレジスタへ転送された後でそのビットは自動的にクリアされない。VRAMメモリーグループにアクセスしないときはDSFはローである。
dsfvras
dsfvras はVRAMメモリーグループ上で次のRASサイクル中RASバーが立ち上がった後2つの2×クロックサイクルしてDSFへ加えられた状態を含んでいる。行アドレス・ホールドタイムの終わりでDSFはdsfvcas の状態へ変わる。隠されたレジスタへ転送された後自動的にビットはクリアされる。
casbvras
これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中、全てのCAS 信号は、RAS バーが上昇後の2つの2Xクロックサイクル中は活性であり、通常の期間満了時間では不活性になる。OEバー、EWE バー及びLWE バーは、行アドレスホールド時間が満了した時不活性になる。メモリーグループmsvgrpへの次のアクセスは内部ロジックによってRAS サイクルである様にされる。
これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中に、RAS が上昇後の2つの2Xクロックサイクル中、LWE は低く、行アドレスホールド時間の満了時に、高い。他方、VRAMメモリーグループでの次のRAS サイクル中に行アドレスホールド時間が満了する迄、LWE バーは高い。何れの場合も、サイクルLWE バーのCAS 部分中において、LWE バーは通常通り振る舞い、そして転送されたデータは達成された機能の一部である。ビットは、隠しレジスタに転送された後、自動的にクリアーされる。
oevras
これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中にRASが上昇した後の2つの2Xクロックサイクル中、OEバーは低く、行アドレスホールド時間の満了時に高い。他方、VRAMメモリーグループ上の次のRAS サイクル中の行アドレスホールド時間が満了する迄、OEバーは高い。何れの場合も、そのサイクルのCAS バー部分中OEバーは通常通り振る舞い、転送されたデータは達成された機能の一部である。ビットは、隠しレジスタに転送された後に自動的にクリアーされる。
これは、リフレッシュが実行される時に対応するメモリーグループ上でリフレッシュサイクルが発生することを、(これがクリアーの場合)許容し、(これがセットの場合)禁止する。幾つかのメモリーグループ上でのリフリッシュを許容することは、非所望であるか又は適当ではない場合がある。例えば、リフレッシュの第1の副作用は、メモリー装置内にラッチされた現在の行アドレスが 変更されることである。このことは、RAS サイクルが強い動作モード及びアドレスをセットする時は、VRAM装置では望ましくない場合がある。別のリフレッシュの副作用は、動作メモリーの行を再選択するために、メモリーグループへの次のメモリーサイクルがRAS サイクルであることが必要とされることにある。このことは、SRAMで通常は所望されないが、その理由は、レフリッシュが必要とされないからである。リフレッシュ及びRAS サイクルは低速実行のみであり、そうでないと、予測可能なタイミングを予測不可能にする。
msras31d
これがセットの場合、A31 が1の時にnon-RAS サイクルを可能にする。これがクリアーの場合、A31 が1の時に、1バスサイクルトランザクション及び4バスサイクルバイトトランザクションの第1のサクイルの両方でRAS サイクルを生じさせる。I/O 装置アドレッシングビットがグループ、バンク又はDRAM RASにオーバラップする大メモリーシステムにおいては、このオプションは、オプションの無い場合に生じ得えない時に、RAS サイクルを強制する。その理由は、これら種々のビットがRAS 比較ロジックから排除されるか、I /O装置アドレスビットと不注意に一致し得る場合があるためである。RAS サイクルが、I/O デコード及び選択のための充分な時間を可能とする様に設計で要求される場合がある。
mshacd
もしこれがクリアーの場合、高アドレスビットを最新のRAS サイクルのものと比較して、RAS サイクルが生じるかを決めることを可能にする。これがセットの場合、この比較を不可能にする。これらのビットは、外部デコーディングロジックを要求するI/O アドレスとして通常使用されるが、このロジックは、このデコーディング用のRAS サイクルで利用可能な追加の時間を必要とする場合がある。しかしながら、高速ロジックを用いると、CAS サイクル内で利用可能な時間内でI/O アドレスをデコードすることがしばしば可能となり、I/O アクセスが速められる。A31 を、msexa31hacをセットすることによって高速アドレスビット比較から除外することが出来る。
msrtg
これは、メモリーグループの数を含み、このメモリーグループのRAS サイクルタイミングは、リフレッシュによって発生されたリフリッシュサイクルのために使用すべきである。特定されたメモリーグループは、最も制限的(最も遅い)リフレッシュタイミングを有するグループである必要がある。
これがクリアーの場合、全メモリーグループに対する単一メモリーバンク(SMB)を選択する。RASxバー信号は対応するパッケードピン上に現われる。バンク選択ビットは、msgsm ビットに対応する。4つ迄のメモリーバング(即ち、メモリグループ毎に一つのメモリーバンク)が、直接接続され且つアクセスされる。図17参照。
DMA 要求はバスに対して競合する。最高優先順位要求がアクセスの第1番のチャンスを得る。iopdelayが最高優先順位要求によるバスアクセスを可能とするのに充分大きい場合、バスが装置に対して許可される。
これがセットの場合、ioinへの入力がINバー〔7:0〕から取られる。これがクリアーの場合、RAS バーが低であり且つCAS が高である時に、ADバー〔7、0〕から取られる。
上述のビット入力を見よ。
oed
これがセットの場合、バスサイクル中にOEバーが活性になるのを不可能にする。これがクリアーの場合、OEバーが通常に振る舞う。CPU リセット上で、OEバー信号は利用不能状態となり、従来通り接続されているメモリーが応答することが阻止される。このことは、I/O 空間内の装置からのブーティング(booting)を可能とする。以下のプロセッサスタートアップを見よ。
mgXbw
これがクリアーの場合、対応するメモリーグループはセル幅であり、バスサイクル毎に32ビット読出し及び書込みが行われる。これがセットの場合、対応するメモリーグループはバイト幅であり、4バスサイクルの1つのバストランザクションで、サイクル毎に1バイトで書込み及び読出しが行われる。
これがセットの場合は、メモリーフォールト入力が、MFLTバーから選択される。これがクリアーの場合、メモリーフォールト入力は、RAS バーが下降する時にAD8 からサンプルされる。図70を見よ。
mspwe
これがセットの場合、1レベルMPU 遅れ書込みバッファを使用可能とし、メモリーへの書き込みが発生した後に、MPU が実行を続けることを可能にする。遅れ書き込みは、後続のMPU 読出しに対して優先して、メモリーコヒーレンシーを維持する。これがクリアーの場合、MPU は、実行の継続以前に、書込みが完了することを待機する必要がある。
msexa31hac
これがセットの場合、A31 は高アドレスビット比較には含まれない。これがクリアーの場合、A31 が高アドレスビット比較内に含まれる。他の情報に付いてはmshacdを見よ。高アドレスビットが、I/O アドレスとして通常使用され、デコーディングのためのRAS サイクルで利用可能な追加の時間を必要とする場合がある外部デコーディングロジックを必要とする。幾つかのバストランザクションは隣接するバスサイクルを含む。このバスサイクルの高アドレスビットはA31 の状態のみだけ異なり、従ってこのビット内の変化のみのためにRAS サイクルを要求する。しかしながら、幾つかのシステム設計では、CAS サイクル内で利用可能な時間でA31 の変化をデコードすることが出来、従って、I/O アクセスが速くされる。
mssbs
多重メモリバンクモードのみに対して、これらのビットは、A14 (バイトモードグループに対するA12 )から、SRAM装置を含むメモリーグループ内のバンクを選択するのに使用される2つのアドレスビット迄のオフセットを含む。典型的には、使用されるSRAM 装置のアドレスビットの直ぐ上にビットを置く様に設定する。
mgebtsum
mgebtcase 及び mgebtdobeの和を含む様にプログラムされる。この値はスロットチェック中のみに、バスサイクルに必要とされる全時間を計算するために使用される。
mgebtdobe
これは、特定の時間迄DOB バーのCAS サイクルを延長する。このパラメータは、メモリーグループ遅延、装置アクセス、及び他の操作要求を補償するために使用される。バスサイクルがメモリー読出しサイクルである場合、OEバーが延長される。バスサイクルがメモリー書込みサイクルである場合、EWE バーは延長され、且つLWE バーの下降が特定の時間遅延される。
mgebtcase
これは、延長されたCAS 時間の後特定の量だけCAS サイクルを延長する。DOB バー、OEバー、EWE バー、LWE バーは延長されずに上昇する。このパラメータは、データホールド時間を可能するか、又は装置がそれらの出力ドライバーを利用不可能とすることを可能にするために利用される。
これは、CAS サイクルプリチャージ時間、メモリーサイクルのCAS 時間部分の開始からCAS バーが低下する迄の時間を特定する。
mgbtdob
これは、バス上のアドレス時間(列アドレスホールド)の終了及びデータ時間の開始を、メモリーサイクルのCAS 部分の開始に関して、特定する。これは、CPU が書込みデータをバス上のに設置するか、又はバスから読出しデータの受け取りを開始する時間である。
mgbtcast
これは、全が拡張されていないことを特定し、CAS サイクル、DOB バー、OEバー、EWE バー及びLWE バーの拡張されていない時間は、mgbteoe 又はmgbtewe によって修正されない場合、この時刻に上昇する。この値は、バスサイクルに対して要求される全時間を計算するために、スロットチェック中に、使用される。
mgbtewea
高速SRAMを有するシステムにおいて、各サイクルの開始でのEWE バーの降下が、適当な書き込み可能状態を得るために必要とされる。他の装置は、書込み可能が降下する以前に、それらのアドレスが有効であることを要求する。これらの場合、CAS バー低いが要求される。
mgbtlwea
これは、DOB バー降下の後ゼロ又は1つの4Xクロックサイクルの遅延、プラスLWE 降下に対する延長を特定する。延長はmgebtdobe 又はioebtdobe の値を適当なものとして参照する。システム及び装置の遅延に対する調節を可能にする。例えば、DRAMは、その書込み可能な降下時にデータが有効であることを期待する。小さいシステムにおいては、DOB バープラス4Xクロックサイクル(ゼロの延長を有する)が適当である場合がある。重い負荷が課せられた(又はバッファーされた)LWE バーを有するシステムにおいて、DOB バーが最も高速のメモリサイクルにとって適当である場合がある。より大きな遅延が必要とされる場合、延長値が設定される場合がある。延長タイミングにおいて4Xクロックサイクル一つ分の分解能を可能とする。
mgbteoe
これがセットの場合、OEバーは、延長されないCAS サイクルの終了以前の1つの4Xクロックサイクルで上昇する。これがクリアーの場合、OEバーは、延長されないCAS サイクルの終了と共に上昇する。1つの4Xクロックサイクルは、幾つかの装置にとって充分な出力ドライバー使用不可能時間である。もし、充分でない場合は、出力ドライバー使用不可能時間は、mgebtcase 及びmgbteoe を組み合わせることによって4Xクロックサイクルを最大に増加することで、作り出すことが出来る。
mgbtewe
これがセットの場合、EWE バー及びLWE バーは拡張されていないCAS サイクルの終了以前の1つの4Xクロックサイクルを上昇する。これがクリアーの場合、EWE バー及びLWE バーは拡張されていないCAS サイクルの終了と共に上昇する。1つの4Xクロックサイクルは幾つかの装置に対して充分なホールド時間である。もし充分で無ければ、ホールド時間は、mgebtcase 及びmgbtewe を組み合わせることによって4Xクロックサイクルを最大に増加することで、作り出すことが出来る。
mgbtras 及びmghtrhldの和プラス1を含む様にプログラムされる。この時間の終了時に、メモリサイクルのCAS 部分が始まる。この値は、バスサイクルに対して要求される全時間を計算するためのスロットチェック中のみに使用される。
mbgtras
これは、RAS プリーチャージ時間を特定する。時間RAS バーは、RAS サイクルの開始で高い。この時間はmgbterasで短くすることが出来る。
mghtrhld
これは、サイクルのCAS タイミング部分の直前の、RAS サイクルのローアドレスホールド時間を特定する。時間はmgbterasで長くすることが出来る。この時間の直後に、適当ならば、CAS アドレスがバス上に設置される。
mgbteras
これがセットの場合、RAS プリチャージ時間(mgbtrasによって特定される)を減少し、1つの4Xクロックサイクルだけ(mgbtrhld によって特定される)行アドレスホールド時間を延長する。
ioebtcase 及びioebtdobe の和を含む様にプログラムされる。この値は、バスサイクルに必要とされる全時間を計算するためのスロットチェック期間のみで使用される。
ioebtdone
これは、DOB バーでCAS サイクルを特定の時間だけ延長する。このパラメータは、メモリーグループバッファー遅延、装置アクセス時間、及び他の操作要求を補償するのに使用される。バスサイクルがメモリー読出しサイクルである場合、OEバーは延長される。バスサイクルa がメモリー書込みサイクルである場合、EWE バーが拡張され、特定の時間遅延される場合LWE バーが降下する。
ioebtcase
これは、延長されていないCAS 時間の後の特定された量だけCAS サイクルを延長する。DOB バー、OEバー、EWE バー及びLWE バーは延長されないで上昇する。
このパラメータはデータホールド時間を許容するか、又は装置がそれらの出力ドライバーを使用不可能にすることを許容するために使用される。mgbtewe 又はmgbteoe と組み合わせて使用される時、ホールド又は使用不可能時間は4Xクロックサイクルの最大の整数倍で設定される。
そして、msrra は1だけ増大される。リフレッシュサイクルに対する時間タイミングはmstrg によって設定される。リフレッシュされるこれらのメモリーグループはmgXrd によって設定される。
・ 4バイトバイト転送形態:4バイトのデータを、一度に1バイト、単一のバストランザクションで装置とメモリー間で転送する。このトランザクションは、装置にアクセスする4つのバスサイクルと、メモリーがセル幅の場合メモリーにアクセスするための一つの追加のビジーサイクルから成る。全初期転送アドレスは、境界を呼び出すべきである。
・ 1バイトバイト転送形態:単一のバストランザクションで装置とメモリーとの間で1バイトのデータを転送する。このトランザクションは、単一のバスサイクルから成る。セル幅メモリへの転送は、アドレスされたセルのバイトゼロに対してであり、残りの24ビットは未定義である。バイト幅メモリーへの転送は特定のバイトに対してである。
・ 1セルセル転送形態:単一のバストランザクションで1セルのデータを装置とメモリーとの間で転送する。トランザクションは、装置にアクセスするための1バスサイクルと、メモリーがバイト幅である場合にメモリーにアクセルための4つの追加のビジーサイクルから成る。全ての初期転送はセル境界に対するものである。
・ 選択された電流の量は、所与の負荷への信号の上昇及び下降時間を決める。
この上昇及び下降時間、PWB ワイヤー長、PWB 構造は、信号が送信ラインとして扱われることが必要とされるか、及び信号の終結が要求されるか否かを決める。
・ より大きなドライバー電流はdi/dt で増加する。従って、パッケージ及びシステム電気ノイズを増大する。ドライバー電流が変化しない時は(同じ負荷がチャージされ、ただより遅いか、速いかであるので)全電流消費が変化しないが、di/dt が減少する時は、より少ないノイズしか発生しない。出力ドライバープリドライバー電流が減少すると、パッケージ及びシステムノイズが減少し、従って、製品の電磁気的な要請の承認を容易にする。
MIF120は、システムバスへのアクセスのためのすべてのソースからのリクエストを取り扱う。リクエストは、IOP110、DMAC112およびMPU108から、それぞれ到来して優先順位付けされる。このようなオーダーにより、IOPは常に予想可能なメモリタイミングを有し、DMAはバスアベイラビリティを有し(何故ならば、MPUはバスをサチュレートしうるからである)、MPUに対してメモリコヒーレンシーが維持されるようにすることができる。
MIF120は、暫定的確定IOP実行を保証するために必要とされるときには、直ぐにIOP110へのバスを常に許可しなければならない。こうするために、IOPは、それが遅延を実行しているとき以外は、バスへの排他的アクセスを有する。DMAまたはMPUバスリクエストがなされるとき、MIFは、バストランザクションのタイプを決定し、必要とされる推測時間を計算し(テーブル51参照)、IOPがバスを捕らえるまでの時間量であるIOP遅延とこの推測時間を比較する。この利用しうるバス時間は、スロットと称される。もし、IOP遅延が零である場合には、IOPは、現在、バスを有している。もし、IOP遅延がバストランザクションに対して計算された値よりも大きい場合には、バスは、リクエスタに対して許可される。そうでない場合には、バスは、満足されうるバスリクエストが発生するまで、または、IOPがバスを捕らえるまで、アイドル状態のままである。このスロットチェックは、完了するまでに、1つの2X−クロックサイクルを要する。バスリクエストがスロットチェックを通過したときには、バストランザクションが、次の2X−クロックサイクルにて開始される。
msgsm より上のアドレスビットのすべては、ハイアドレスビットと称される。これらのビットは、典型的には、外部デコーディングハードウエアを有するI/O装置をアドレスするのに使用される。これらは、RASサイクルに含まれ、または、より速いI/Oサイクルに対して排除されるようにコンフィギュレーションされ、外部デコーディングハードウエアのリクワイアメントにマッチするようにコンフィギュレーションされうる。利用しうるコンフィギュレーションオプションについては、前述のシステムリクワイアメントプログラミングを参照のこと。
CPUは、セルワイドおよびバイトワイドメモリ、セルワイドおよびバイトワイドデバイス、およびシングルまたはマルチバスサイクルトランザクションをサポートする。これらの種々な組合せが可能である。これらは、0個の、1つのまたは2つのRASサイクルを含みうるバストランザクションを完了するのに1つの、4つのまたは5つのバスサイクルを必要とする。すべてのバスサイクルの基本的な構造は同じである。プログラムされたシステムコンフィギュレーションおよび現在のシステム状態によって、バスサイクルのRASプレフィックスおよびCASパートが組み合わされて、正しいアドレス発生およびメモリデバイスオペレーションを与える。テーブル53は、所与のバストランザクション内にありうるRASおよびCASサイクルの種々な組合せを列挙している。
MPU/IOPへのセルメモリ読出し
テーブル53および参照フィギュアは、これらのバストランザクションに関する詳細を与える。これらのトランザクションは、1つのバスサイクルを必要とする。
MPU/IOPへのバイトメモリ読出し
テーブル53および参照フィギュアは、これらのバストランザクションに関する詳細を与える。これらのトランザクションは、4つのバスサイクルを必要とする。バイトアドレスビットA1およびA0は、アクセスされるセルの最上位バイトから最下位バイトまでアドレスするために0から3までインクレメントされる。
デバイス転送タイプおよびメモリデバイス幅に依存して、テーブル52に示されるように、I/O装置およびメモリの間で種々なバスサイクル組合せが起こる。トランザクションのためのこれらの開始アドレスは、関係するI/Oチャンネルに対応するグローバルレジスタ(g8は、I/Oチャンネル0に対応し、・・・・・、g15は、I/Oチャンネル7に対応する)から来る。メモリに対する転送の方向は、同じレジスタのビット1によって示される。図12を参照のこと。トランザクションのためのデバイス転送タイプは、iodttaまたはiodttbにおける対応するフィールドから来る。バストランザクションは、テーブル55に挙げられたサイクルおよびストローブで進められる。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、5つのバスサイクルを必要とする。データは、最初の4つのバスサイクル中にデバイスから収集されMIFに記憶され、そして、5番目のバスサイクル中にMIFによってメモリへ書き込まれる。最初の4つのバスサイクル中にデバイスから収集されメモリへ書き込まれるデータは、5番目のバスサイクル中に置換される。A31は、5番目のバスサイクル中にMIFとのコンテンションを阻止するために、I/O装置をデセレクトするためにクリアされる。バイトアドレスビットA1およびA0は、データがそのデバイスから転送されている間に、アクセスされるセルの最上位バイトから最下位バイトまでアドレスするために0から3までインクレメントされる。
4−バイトのバイト転送デバイスへのセルメモリ読出し
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、5つのバスサイクルを必要とする。データは、最初のバスサイクル中にメモリから収集されてMIFに記憶され、そして、最後の4つのバスサイクル中にMIFによってそのデバイスへ書き込まれる。OEは、デバイスが書き込まれている間メモリおよびMIFの間のバスコンテンションを阻止するために、最後の4つのバスサイクル中に抑制される。A31は、最初のバスサイクル中にメモリとのコンテンションを阻止するために、I/O装置をデセレクトするためにクリアされる。バイトアドレスビットA1およびA0は、データがそのデバイスへ転送されている間に、アクセスされるセルの最上位バイトから最下位バイトまでアドレスするために0から3までインクレメントされる。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、4つのバスサクルを必要とする。バイトアドレスビットA1およびA0は、デバイスおよびメモリの両方に関するアクセスされるセルの最上位バイトから最下位バイトまでアドレスするために、0から3までインクレメントされる。
データは、MIFを介在することなく、デバイスからメモリへ直接にバスにて転送される。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。トランザクションは、4つのバスサイクルを必要とする。バイトアドレスビットA1およびA0は、デバイスおよびメモリの両者に関してアクセスされるセルの最上位バイトから最下位バイトまでアドレスするために0から3までインクレメントされる。データは、MIFを介在することなく、メモリからデバイスへ直接にバスにて転送される。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、1つのバスサイクルを必要とする。データは、典型的には、AD[7:0]にてデバイスによって供給され、メモリの対応するビットへ書き込まれる。AD[31:8]は、また、メモリへ書き込まれ、もし、外部デバイスによってドライブされない場合には、そのアドレスビットをホールドする。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与える。このトランザクションは、1つのバスサイクルを必要とする。データは、典型的には、メモリの対応するビットから来るAD[7:0]からデバイスによって取り出される。
他のメモリビットは、メモリによってドライブされるが、典型的にはそのデバイスによって使用されない。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、1つのバスサイクルを必要とする。グローバルレジスタにおけるアドレスは、通常、セルにアドレスする。何故ならば、最下位の2つのビットは、アドレッシングには使用できないからである。しかしながら、このトランザクションのために、グローバルレジスタにおけるアドレスは、変更バイトアドレスである。すなわち、アドレスは、ADに接続されたバイトワイドメモリに対して正しく位置するように左へ2ビットだけシフトされる(ソフトウエアにおけるプレシフト)。アドレスは、ADに達するまでは、再度シフトされない。A31は、そのままである。A30およびA29は、使用できないようになり、グループビットは、供給されるアドレスにおけるプレシフトにより、それらの通常の位置の右へ2ビットの位置にある。このトランザクションにより、バストランザクション当り1バイトずつ、バイトの転送が行われ、バイトワイドメモリへパックされる。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、1つのバスサイクルを与える。グローバルレジスタにおけるアドレスは、通常、セルにアドレスする。何故ならば、最下位の2つのビットは、アドレッシングには使用できないからである。しかしながら、このトランザクションの場合には、グローバルレジスタにおけるアドレスは、変更バイトアドレスである。すなわち、アドレスは、ADへ接続されたバイトワイドに対して正しい位置となるように左へ2ビットだけシフトされる(ソフトウエアにおけるプレシフト)。そのアドレスは、ADに達するまでは再度シフトされない。A31は、そのままであり、A30およびA29は、使用できなくなり、グループビットは、供給されるアドレスにおけるプレシフトによりそれらの通常の位置の右へ2ビットの位置にある。このトランザクションにより、トランザクション当り1バイトずつ、バイトの転送が行われ、バイトワイドメモリからデバイスへアンパックされる。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。トランザクションは、1つのバスサイクルを必要とする。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、1つのバスサイクルを必要とする。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、5つのバスサイクルを必要とする。データは、最初のバスサイクル中にダバイスから収集され、MIFに記憶され、最後の4つのバスサイクル中にMIFによってメモリへ書き込まれる。最初のバスサイクル中にデバイスから収集されている間にメモリに書き込まれるデータは、2番目のサイクル中に置換される。A31は、最後の4つのバスサイクル中にMIFとのコンテンションを阻止するために、I/O装置をデセレクトするようにクリアされる。バイトアドレスビットA1およびA0は、データがMIFからメモリへと転送されている間にアクセスされるセルの最上位バイトから最下位バイトまでアドレスするために0から3までインクレメントされる。
テーブル53および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、5つのバスサイクルを必要とする。データは、最初の4つのバスサイクル中にメモリから収集され、MIFに記憶される。OEバーは、デバイスが書き込まれている間メモリとMIFとの間のバスコンテンションを阻止するために5番目のバスサイクル中に抑制される。A31は、最初の4つのバスサイクル中にメモリとのコンテンションを阻止するために、I/O装置をデセレクトするようにクリアされる。バイトアドレスビットA1およびA0は、データがメモリからMIFへ転送されている間アクセスセルの最上位バイトから最下位バイトまでアドレスするために0から3までインクレメントされる。
外部ハードウエアリセットは、パワーフェイルインモード以外、パワーオンコンフィギュレーションへ全CPUを初期化する。リセットがアクティブ(外部またはパワーオンセルフリセット)である間、ADは、高インピーダンス状態へ行き、OUT[7:0]は、ハイとなり、RASは、アクティブとなり、その他の全ての出力は、インアクティブとなる。波形については図66を参照のこと。
VRAMは、主として、ビデオディスプレイにピクセルを表示するのに必要とされるシステムメモリバンド幅を減少させることによって、グラフィックオペレーションの速度を増大させる。VRAMコマンドは、ビデオディスプレイに対してクロックアウトされるようにデータの全行をDRAMアレーから内部シリアルアクセスメモリへ転送するのに使用される。VRAMは、また、グラフィックオペレーションを高めるために他のコマンドをサポートする。VRAMオペレーションは、vram書込みおよび所望のVRAMメモリアドレスへの適当な読出しまたは書込みによりエンコードされる。VRAMバスサイクルのための基本的タイミングは、メモリグループにおける同様のバストランザクションと同じである。図27を参照のこと。リフレッシュおよびRASサイクルは、また、VRAMオペレーションに影響を及ぼしうる。前述のビデオRAMサポートを参照のこと。種々なvramオプションの効果を表す波形は、図72に示されている。
MIFは、RASサイクルでの故障検出をインテグレートすることにより、MPUメモリアクセスによって引き起こされるメモリページ故障を検出する。したがって、マップされるページサイズは、CASページのサイズである。メモリシステムRASページアドレスは、外部SRAMの使用によるRASプレチャージ中に論理ページアドレスから物理ページアドレスへとマップされる。SRAMから供給されるメモリ故障信号は、RASバーフォール中にサンプルされ、もし、ローであるならば、メモリページ故障が生じたことを示す。図46aを参照のこと。メモリ故障信号は、MFLTバーまたはAD8から入力される。後述の交互メモリ故障入力を参照のこと。
波形については、図70を参照のこと。
ビット入力、ビト出力、メモリ故障入力およびリセット入力は、専用ピンを使用するのでなく、ADにて多重化される。この特徴は、PWBにてルーティングされるトラックの数を減少させる(PWBサイズおよびコストを減少させる)ために使用され、ShBoomTM CPUがより小さいパッケージにて供給されうるようにする。
ビット入力は、RASバーがローであり且つCASバーがハイである間INバー[7:0]またはAD[7:0]からサンプルされうる。ソースは、pkgio によって決定される。前述の図29およびビット入力を参照のこと。
ビット出力は、RASバーがハイである間、OUT[7:0]およびAD[7:0]の両方に現れる。それらが両方の位置に現れるので、選択ビットは必要とされない。前述のビット出力を参照のこと。
メモリ故障信号は、RASバーフォール中にMFLTバーまたはAD8からサンプルされうる。ソースは、pkgmflt によって決定される。図34を参照のこと。
外部ハードウエアリセットは、RESETバーまたはAD8から取られ、決定は、パワーオンでなされる。パワーオンおよびリセットシーケンスは、後述のプロセッサスタートアップに詳述されている。
パワーオンリセット
CPUは、パワーアップをセルフリセットする(後述のリセットプロセスを参照のこと)。CPUは、供給電圧がほぼ3Vに達するまでは、外部ハードウエアリセットに関係なく、内部リセットをアクティブに保持し且つプロセッサがランニングされないようにする内部回路を含む。供給電圧が3Vに達するとき、RESETバーがサンプルされ、アクティブであるならば、CPUのための外部リセットのソースとして使用される。さもなければ、外部リセットは、AD8にて多重化される。この決定は、パワーが再度サイクルされるまで、適用される。もし、リセットのうちの1つがアクティブであるならば、CPUは、そのリセットが継続前にインアクティブとなるまで、待つ。もし、どのリセットソースもアクティブでないならば、プロセッサは、直ぐにリセットシーケンスを開始する。したがって、CLKでのクロック入力は、その時間までは安定でなければならない。
CPUは、OEバーアクチベートまたはブートオンリーメモリデバイスとしてコンフィギュレーションされたバイトワイドメモリからのブーティングをサポートする。ブートオンリーメモリコンフィギュレーションは、主として、典型的には遅いブートEPROMが、厳しい状態で使用されるローアドレスメモリページを行わないようにするために使用される。ブートオンリーメモリは、OEまたはメモリバンクまたはグループ特定(RASxまたはCASx)信号を使用せずに、バス上にデータを置くようにシステムにワイヤドされている点で、OEバーアクチベートメモリとは異なる。OEDは、初期的には、CPUリセット中にセットされ、ブートアッププロセス中にOEバーをディスエーブルして記述のオペレーションを行えるようにする。ブートオンリーメモリ選択信号は、外部的に、0×800...を含む最上アドレスビットからデコードされる。使用される最上アドレスビットの数は、システムのI/O装置アドレスデコーディングリクワイヤメントに依存している。最下アドレスビットは、それらが通常のメモリに対するように、個々のバイトおよびセルをアドレスするように接続される。したがって、ブートオンリーメモリデバイスは、どのメモリグループがアクセスされているかに関係なく、選択される。
リセットが行われるとき、CPUは、オンチップRAMを初期化されないままとし、リセットシーケンスを助ける意図的に配置されたビット以外、ほとんどのレジスタを零へクリアする。特に、CPUは、最もコンサバティブなシステムコンフィギュレーションへリセットする。テーブル54を参照のこと。モードビットパワーフェイルは、パワーオンリセットプロセスによってのみセットされ、リセットがパワー故障またはリセットアクティブによって起こされたかを決定するためにチェックされる。
ブートオンリーまたはOEバーアクチベートメモリの場合、バスアクセスは、バイトワイドメモリデバイスからのAMBモードにて継続する。2番目のバストランザクションは、0×80000008でのIOPのためのハードウエアリセットアドレスに対するものである。これは、典型的には、小さなリフレッシュ/遅延ループへのジャンプを含む。遅延により、バスを使用できるようになり、MPUがそのリセットアドレス0×80000008で実行を開始するようにする。
●システムハードウエアのために必要とされるコンフィギュレーションレジスタをセット●IOPのためのソフトウエアリセットベクトルをセット
●ブートデバイスからメモリ(もし、必要とされるならば)へ初期MPUおよびIOPアプリケーションプログラムをコピー。
●MPUのためのアプリケーションプログラムへブランチ
●IOPプログラム実行を開始するようにソフトウエアにてIOPをリセット。
ここで、システムスタートアップは完了する。
●バイトワイドブートオンリーメモリからのブートおよびセルワイドR/Wメモリへのアプリケーションプログラムのコピー。
●セルワイドブートオンリーメモリからのブートおよびセルワイドR/VVメモリへのアプリケーションプログラムのコピー。
●バイトワイドメモリからのブートおよびラン
●セルワイドメモリからのブートおよびランバイトワイドブートオンリーメモリからのブートおよびセルワイドRA/Vメモリへのアプリケーションコードのコピー。
1.IOPは、システムRAMを初期化するために、各メモリグループの8つのRASサイクルを実行するコードへのパワーオンリセット位置からのジャンプを実行する(リフレッシュサイクルを行なうことにより)。それから、IOPは、DRAMのためのリフレッシュおよびMPUの実行を許す遅延を含むマイクロループに入る。マイクロループは、リフレッシュおよび遅延を繰り返し、IOPがコンフィギュレーション遅延中にさらに別の命令のためにバスへアクセスする必要をなくし、MPUバスアクセスにより、さらに別のリフレッシュサイクルが必要とされる前にシステムのコンフィギュレーションを開始することができるようにする。リフレッシュサイクルは、システムがDRAMを含まない場合には、必要とされない。
2.MPUは、システムをコンフィギュレーションするためにそのリセット位置からプログラムコードへのbrを実行する。brは、メモリグループ3にアドレスするビットを含む。これにより、後に、メモリグループ0、1および2がシステムタイミングリクワイヤメントのためにプログラムされている間、メモリグループ3のためのコンフィギュレーションがブートオンリーデバイスアクセスタイミングのために使用される。メモリグループ1または2は、ここに記述する仕方でグループ3の代わりに使用されうるのであるが、説明を簡単とするために、メモリグループ3のみについて説明する。
3.miscb をプログラミングするとき、必要ならば、mmb をセットする。MMBのためにワイヤドされたシステムにおいては、これにより、RASタイプサイクルがすべてのメモリグループにて適切に行われるようにされる。
4.システムが最終的にそれらを有しないとしても、4つのメモリグループを定めるためにmsgsm をセットする。次の命令のフェッチ中に、ブートオンリーメモリは、再び、選択される。しかしながら、ステップ2にてbrによってPCに配置されたメモリグループ3のためのアドレスビットにより、メモリグループ3のためのコンフィギュレーションが使用されるようにさせられる。
5.ブートオンリーメモリへのアクセスを最適化するためにメモリグループ3のタイミングをプログラムする。それから、システムコンフィギュレーションの残りのものをプログラムする。このプロセス中に、IOPは、典型的には、リフレッシュサイクルの3つまたはその程度のセットを実行する。リフレッシュサイクル中に適切なコンフィギュレーションレジスタをMPUが変えることは可能であるが、ブートオンリーメモリのために典型的に使用されるEPROMのバスサイクルは長いので、あまりあり得ないことである。さらにまた、最悪の結果は、単ーリフレッシュサイクルのタイミングが不適当となることであが、これは、実際にはあまり起こらないであろう。何故ならば、DRAMにはまだ保護されるべきデータがないからである。
もし、メモリグループ3がアプリケーションによって使用される場合には、それは、ロードされたアプリケーションコードから後でコンフィギュレーションされる必要がある。
6.ブートオンリーメモリから最終ブートコード(もし、あるならば)およびアプリケーションプログラムを読み出し、RANメモリの適当な位置にそれらを書き込む。全アプリケーションプログラムは、ブートオンリーメモリがランニングしているメモリグループ3のためのパートがあるならば、そのパートを除いて、R/W RAMへロードされうる。
7.O£Oをクリアしアプリケーションプログラムへブランチするプログラミングを含む単一命令グループをレイアウトする。br[]を使用して、A31をクリアし、ブートオンリーメモリがブランチ行き先でアクチベートされないようにする。
8.ここで、アプリケーションプログラムが実行されている。必要ならば、メモリグループ3をコンフィギュレーションする。もし、ブートオンリーメモリからのメモリグループ3のローディングが必要ならば、最初にプレフェッチが完了するように2つの命令グループの間にコードを配列し、OEDをセットし、それから、アプリケーションをメモリグループ3へ転送するためにマイクロループを実行し、マイクロループが完了するときにOEDをリイネーブルさせる。
9.そのアプリケーションプログラムの実行を開始するためにソフトウエアにおいてIOPをリセットする。IOPのソフトウエアリセットにより、それは、O×1Oで実行を開始させられ、結果として、IOP PCからA31をクリアし、ブートオンリーメモリがもはや選択されないようになる。
このプロセスは、MGSOバー/RASOバー/CASOバーによってアクチベートされるためにブート/ランメモリデバイスを必要とする。
1.IOPは、システムDRAMを初期化するために、各メモリグループについて8つのRASサイクルを行なうコードへのパワーオンリセット位置からのJUMPを実行する(リフレッシュサイクルを行なうことにより)。それから、それは、DRAMのためのリフレッシュおよびMPUの実行を可能とすると遅延を含むマイクロループに入る。マイクロループは、リフレッシュおよび遅延を繰り返し、さらにリフレッシュサイクルが必要とされる前にシステムのコンフィギュレーションを開始するようにMPUバスアクセスを許すコンフィギュレーション遅延中にさらに別の命令のためにIOPがバスにアクセスする必要を無くしている。リフレッシュサイクルは、システムがDRAMを含まないならば、必要とされない。
2.MPUは、システムをコンフィギュレーションするためそのリセット位置からプログラムコードまでbrを実行する。
3.miscb をプログラミングするとき、必要ならば、mmb をセットする。MMBモードのためにワイヤドされたシステムにおいては、これにより、すべてのメモリグループについて適切にRASタイプサイクルが行われるようにされる。
4.メモリへのアクセスを最適化するために、メモリグループ1のタイミングをプログラムする。それから、システムコンフィギュレーションの残りのものをプログラムする。このプロセス中に、IOPは、典型的には、リフレッシュサイクルの3つまたはその程度のセットを実行する。MPUは、リフレッシュサイクル中に適切なコンフィギュレーションレジスタを変えることは可能であるが、これは、EPROMのバスサイクル時間が長いために起こり難いことである。さらにまた、最悪の結果は、単一リフレッシュについてタイミングが不適当となることであるが、これも実際には起こりにくいことである。何故ならば、まだDRAMには保護されるデータがないからである。
5.そのアプリケーションプログラムの実行を開始するためにソフトウエアにてIOPをリセットする。IOPのソフトウエアリセットにより、それは、0×10での実行を開始させられ、結果として、IOP PCからA31をクリアし、ブートオンリーメモリはもはや選択されないようになる。
6.アプリケーションプログラムの実行を開始する。
このプロセスは、MGSOバー/RASOバー/CASOバーによってアクチベートされるためにブート/ランメモリデバイスを必要とする。A31は、ブート/ランメモリを選択するときに、使用されない。CPUは、現在のメモリグループのためのコンフィギュレーションがセルワイドであるようにプログラムされるまでは、各アドレスのローバイトからの命令を実行する。この点までは、ブートデバイスデータの上方24ビットは、使用されない。ブートプロセスは、miscb を書き込むときに、ステップ3を除いて、バイトワイドメモリからのブーティングおよびランニングと同じであり、メモリグループ0がセルワイドであるようにセットする。sto to miscbを有する命令グループにおいて、brを次の命令グループへ置く。これは、プレフェッチをホールドオフし、次の命令フェッチがセルワイドであるようにする。ここで、注意すべきことは、br前の命令がバイトワイドとして表され、br後の命令がセルワイドとして表されるように、注意してプログラムされなければならないということである。
CPUがMPUの両方をリセットした後は、スタックは、対応するスタックポインタがロードされるまでは、初期化されていないとされる。そして、これは、MPUによって行われる最初のオペレーションのうちの1つである。
2.データは、デバイスとメモリとの間で転送される。
3.データは、転送のパート中にMIFに記憶される。
4.サイクルの全シーケンスは、自動バストランザクションである。
1.iodttaまたはiodttbにおけるI/Oチャンネル転送タイプ
2.IOPはメモリに書き込みしない。
3.どのバスサイクルにてRASまたはCASサイクルが可能かを指示する。RASサイクルの存在は、システム状態に依存している。R1またはC1は、バスサイクルがioXebtタイミング値を使用することを示す。RMまたはCMは、バスサイクルがmgXcbtタイミング値を使用することを示す。
4.サイクル中のアクティブストローブ(w は、EMEバー/LWEバーであり、または、OEバーであり、または、アクティブストローブではない。
5.A31は、セットされるとき、I/O装置を選択し、クリアのときI/O装置をデセレクトする(a=プログラム供給値、0=強制ゼロ)
6.データは、最初の4つのサイクル中にデバイスから収集されMIFに記憶され、5番目のサイクル中にMIFによってメモリへ書き込まれる。最初の4つのサイクル中に書き込まれたデータは、5番目のサイクル中に置換される。
7.データは、最初のサイクル中にメモリからMIFへ収集され、最後の4つのサイクル中にMIFによってデバイスへ書き込まれる。OEバーは、メモリがバスをドライブしないようにするために、最後の4つのサイクル中に抑制される。
8.データは、最初のサイクル中にデバイスから収集され、MIFに記憶され、最後の4つのサイクル中にMIFによってメモリへ書き込まれる。最初のサイクル中に書き込まれたデータは、2番目のサイクル中に置換される。
9.データは、最初の4つのサイクル中にメモリからMIFへ収集され、最後のサイクル中にMIFによってデバイスへ書き込まれる。OEバーは、メモリがバスをドライブしないようにするために、5番目のサイクル中に抑制される。
スタックは初期化されていない
すべての割込み、トラップ、故障、DMAsおよびDMAエクスパイアレイションディスエーブル
VRAMメモリグループは、メモリグループ3に対してセット、VRAMオプションはセットされていない
RASサイクルを引き起こすハイアドレスビット比較に含まれるVRAMメモリグループ
リフレッシュは、メモリグループ0タイミングを使用するすべてのグループについてイネーブルされる、ゼロで開始するリフレッシュアドレスビット
ポステッドライトディスエーブル
A31=1のときRASサイクルを起こす
ハイアドレスビット変更のときRASサイクルを起こす
ハイアドレスビット比較に含まれるA31
1つのメモリグループを有するメモリグループ(SMB)モード当りの単一メモリバンク
入力ビットは、バスから取られる
メモリ故障は、ADSから取られる
OEバーはディスエーブルされる
すべてのメモリグループはバイトワイドである
すべてのメモリサイズはSRAMに対してセット
メモリバスサイクルは最大長さに対してセット、実際のCASサイクル長は、8つの4X−クロックサイクルのCASプレチャージでの51個の2X−クロックサイクルにセット(xxebtsmum レジスタは、実際に必要とされるようも長いスロットをリクエストする最大にセット)。8つの4X−クロックサイクルのCASアドレスホールドタイム。CASバーフォールでのEWEバーフォール。15の2X−クロックサイクルのLWEバーフォールに対するメモリ書込みデータスタートアップタイム。39の2X−クロックサイクルのEWEバーおよびLWEバーライズに対するメモリ書込みデータセットアップタイム。39の2X−クロックサイクルのOEバーアクティブタイム。4の2X−クロックサイクルに対するデータホールドタイム/バッファディスエーブルタイム。16の2X−クロックサイクルのRASプレチャージ。2X−クロックサイクルのRASアドレスホールドタイム。
リボルビィングDMA優先順位
デバイス転送タイプのすべては、4バイトのバイト転送デバイスに対してセット
実例としてのシーブーム(ShBoomTM)CPUシステム
メモリー・グループ0における8ビット巾のEPROMと、256Kの8ビット巾のDRAMとを有する最小システムを図68に示す。メモリー・グループ0とメモリー・グループ1とは使用しているデバイスに適当なタイミングで形成されるべきであり、そして使用しているデバイスに適当にmglds は0×02に、そしてmglds は0×02(256K DRAM)にセットされている。他の仕方としては、ディフォルト(default)システムが適当である。このシステムはEPROMから直接ブート(boot)でき、そして作動できる。もしくは、EPROMはDRAMよりも遅いのが普通であるので、迅速なコード実行のためEPROMをDRAMにコピーできる。
メモリー・グループ0における32ビット巾のDRAMと、ブート・オンリ・メモリーデバイスとしての8ビット巾のEPROMと、I/Oアドレス・デコーダとを有する最小システムを図69に示す。I/Oアドレス・デコーディングは74HC137,ラッチ付き3−8デコーダにより実行される。A31がセットされると、このデコーダは4つのデバイス・セレクトに接続されて供給し、そしてA31がクリヤーであると別の4つのデバイス・セレクトに接続されて供給する。4つのセレクトのセットはRASプリチャージ中ラッチされ、そしてCASバーアクチブの間はイネーブルされる。それらは、32ビット巾メモリー・グループが含まれているときA30とA29とからデコードされ、そして8ビット巾メモリー・グループが含まれているときA28とA27とからデコードされる。A31がセットされ、そしてその他のデコードされたアドレスビットがクリヤーであるときそのデバイス・セレクトを使用してブート・オンリ・メモリーデバイスとしてEPROMを選択する。
RASを使用してI/Oアドレスをラッチするので、msras31dとmshacdと、msexa31hacはそれらのクリヤーなディフォルト・コンフィギュレーションに残っている。
メモリー・グループ0における32ビット巾のSRAMと、メモリー・グループ1における1MBの32ビット巾のDRAMと、ブート・オンリ・メモリーデバイスとしての8ビット巾のEPROMと、I/Oアドレス・デコーダとを有するシステムを図70に示す。SRAMのためのCASアドレスのアドレスラッチングは2つの74ACT841透明ラッチにより行われる。DRAMとEPROMのアドレス入力は対応するADへ接続できるけれども、そのようにはせずDRAMとEPROMのアドレス入力もラッチの出力へ接続する。ラッチされたCASアドレスビットを使って、74FCT138A,3−iデコーダによりI/Oアドレス・デコーディングを行う。このデコーダは、A31がセットされるとき、8つのデバイス・セレクトに接続されて供給する。これらのセレクトはCASバーがアクチブな間可能化される。それらは、DRAMメモリ・グループが含まれているときA30とA29とからデコードされ、そしてSRAMメモリ・グループが含まれているときA20とA21とからデコードされる。EPROMが8ビット巾であるので、それらのセレクトはデコードされ、クリヤーなアドレスビットを使ってブート・オンリ・メモリーデバイスとしてEPROMを選択する。
電力と接地
平均電力要請が少ないとシーブームCPUをCMOSに装備する。しかし、CPUのクロック周波数能が高いと、出力の負荷によっては11アンペアにもなる大きなスイッチング電流を必要とするようになる。こうして、すべてのVccとVssとは十分な電力分布のためにはPWB(プリンテッド・ワイヤー・ボード)内の面に接続されるべきである。
上に説明したようなスイッチング特性であるので、CPUにおけるパワー・デカップリングを必要とするのが典型である。ESRの低い表面装着キャパシタが好ましい。一般的に、小型で、値の小さいキャパシタの周波数特性の方が大型で、値の大きいキャパシタの周波数特性よりも良く(すなわち、直列インダクタンスは少なく、自己共振周波数は高くなる)、小さいのから大きいキャパシタ値を寄せ集めて使うのが好ましい。最小値のキャパシタとPWBパワー・プレーンにおけるローカル・チャージ(典型的には約100pF/in2)がスイッチング信号の初期の最高周波数成分の電流要請に応えて供給し、他方最大キャパシタは低い周波数成分を供給する。適当なデカップリングもEMCの問題を小さくする。
4つの100pFNPOキャパシタもしくは同容量の小型キャパシタを一つづつcVccとcVssのセットの各々にできるだけ近づけてシーブームCPUパッケージとPWBの同じ側に、適当に装着し、
4つの4700pF×7RキャパシタをシーブームCPUパッケージとは反対のPWBの側に適当に装着し、
4つの4700pF×7RキャパシタをシーブームCPUパッケージとは反対のPWBの側に、上に述べたように装着し、そして
6つの0.047μF×7Rキャパシタをctr1Vccと ctr1Vssの周りに、そしてad Vccと adVssの中に、これらのピンへできるだけ近づけて分散させて、装着する。
総ての出力ドライバーはメモリシステムの重い容量性負荷を直接駆動するように分担させられていて、バッファリング・ロジックに関連の外部要素と進行遅延を最小とする。しかしながら、負荷が増すと消費電力も増すことになり、そしてシーブームCPUの作動温度が作動限界を越えないことを保証する手段を講じなければならなくなる。重いCPUバス負荷を有するシステムはヒート・シンクもしくは強制換気を必要とすることがある。出力ドライバー電流を小さくすることは全消費電力を小さくすることにはならない。電力消費は出力負荷によって変わり、信号変遷エッジ・レートによって変わらないからである。
シーブームCPUはプロセッサの周波数の半分の外部CMOS発振器を必要とする。この発振器は内部で倍になって(2×クロック・サイクル)、MPUとIOPとを作動し、そして再び倍になって微粒のプログラマブルなバスタイミング(4×クロック・サイクル)を与える。
Claims (22)
- マイクロプロセシングユニットと該マイクロプロセシングユニットをシステムランダムアクセスメモリ(RAM)に接続するメモリインターフェースユニットとを備え、
前記マイクロプロセッサシステムは、前記システムRAMを使用する仮想システムメモリを定義するために前記マイクロプロセシングユニットによって与えられた論理列アドレスを前記システムRAMの物理的列アドレスに変換する手段を備えていることを特徴とするマイクロプロセッサシステム。 - さらに、前記メモリインターフェースユニットに接続され、前記システムRAMにアクセスする手段を備え、
各列アドレスストローブ(RAS)サイクルがRASプレチャージインターバルを有しており、前記論理列アドレスが前記RASプレチャージインターバルの間に前記システムRAMの前記物理アドレスに変換されることを特徴とする前記請求項2に記載のマイクロプロセッサシステム。 - 中央処理ユニットと前記中央処理ユニットに接続されたビットインプットレジスタとを備え、前記ビットインプットレジスタが少なくとも一つのビットラインからロジカルイップットを受け取るようになったマイクロプロセッサシステムにおいて、 前記少なくとも1つのビットラインに接続され、そのロジックレベルを判断するために前記少なくとも1つのビットラインを最初にサンプリングするラッチ手段と、 前記ラッチ手段に接続され、前記少なくとも一つのビットラインにアサインされたレジスタに前記ロジックレベルをストアするゼロパーシステンスコントロールユニットとを有し、 前記ゼロパーシステンスコントロールユニットが前記中央処理ユニットによって定義済の信号を具備するまで、前記ロジックレベルが前記レジスタにストアされた状態になっていることを特徴とするマイクロプロセッサシステム。
- さらに、前記ゼロパーシステンスコントローラに接続されたダイレクトメモリアクセスコントローラ(DMAC)を備え、前記DMACは前記定義済の信号を発生させる手段を備えていることを特徴とする請求項3に記載のマイクロプロセッサシステム。
- マイクロプロセシングユニット、IOP、及び前記中央処理ユニット及びIOPを前記システムバスに選択的に接続するメモリインターフェースユニットとを備え、
前記IOPが前記メモリインターフェースユニットにシステムアドレス情報を与えるプログラムカウンタ手段を備えていることを特徴とするマイクロプロセッサシステム。 - さらに、前記IOP及びシステムバスに接続され、所定のインターバルで前記システムバスへの前記IOPのアクセスを許容する手段を備えていることを特徴とする請求項5に記載のマイクロプロセッサシステム。
- 前記IOPが前記システムバスに接続され、前記システムバスから受け取ったデータをラッチするラッチ手段を備えていることを特徴とする請求項5に記載のマイクロプロセッサシステム。
- 前記IOPが前記プログラムカウンタ手段によって制御されるマルチプレクサ、命令ラッチ、及びデコード/実行モジュールとを備え、
前記マルチプレクサが前記命令ラッチ及び前記デコード/実行モジュールとの間に接続されていることを特徴とする請求項5に記載のマイクロプロセッサシステム。 - スタックキャッシュを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいて、フローチングポイントマスマティカル命令を可能にするシステムが、
前記スタックキャッシュのセル内の値によりフローチングポイントオペレーションを実行するアリスメティックロジックユニット手段と、
前記アリスメティックロジックユニット手段に接続され、前記フローチングポイントオペレーションの選択された実行に応答してフローチングポイントイクセプションを発生する手段と、
前記アリスメティックロジックユニット手段及び、前記フローチングポイントイクセプションを発生する手段に接続され、前記フローチングポイントイクセプションに応答して、前記マイクロプロセシングユニットが定義済のフローチングポイントルーチンを実行できるようにするモードレジスタ手段とを備えたことを特徴とするマイクロプロセッサシステム。 - 前記フローチングポイントオペレーションを実行する手段が、前記スタックキャッシュに接続され、テストイックスポーネント、イクストラクトイクスポーネント、アッドイクスポーネント、及び回復イクスポーネント命令を備えていることを特徴とする請求項9に記載のシステム。
- スタックキャッシュを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいて、ブレイクポイント命令を実行する方法が、
前記ブレイクポイント命令のメモリアドレスを前記スタックキャッシュに押し込むステップと、
ブレイクポイントサービスルーチンを実行するステップとを備えていることを特徴とする方法。 - システムメモリと1つ以上のインターナルレジスタを有するマイクロプロセシングユニットとを備えたマイクロプロセッサシステムであって、前記システムメモリが前記マイクロプロセシングユニットと通信するための第1アドレススペースを割り当てられているものにおいて、前記マイクロプロセシングユニット内にデータを伝送する方法が、
前記一つ以上のインターナルレジスタを前記第1アドレススペースとは異なる第2アドレススペースに割り当て、
前記第2アドレススペース内のアドレスによって識別される前記1つ以上のインターナルレジスタの部分に及びこれらからのデータを伝送するステップとを備えたことを特徴とする方法。 - スタックキャッシュを有するマイクロプロセシングユニットを含むマイクロプロセッサシステムにおいて、アドレスアリスメティックのための方法が、
前記スタックキャッシュの第1のセルの第1のアドレス値をストアし、
記スタックキャッシュの第2のセルに第2のアドレス値をストアし、
前記第1アドレス値を前記第2アドレス値に加算して、前記スタックキャッシュの前記第1セル内に結果としての合計値をストアするステップとを備えたことを特徴とする方法。 - スタックキャッシュを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいて、コピーバイトオペレーションを実行する方法が、
セル内にストアされた複数のデータバイトのうちの少なくともの1つの意味のあるものを読み取り、
前記複数のデータバイトの少なくとも他の1つを前記少なくとも1つの意味を有するデータバイトで置換するステップとを備えたことを特徴とする方法。 - スタックキャッシュとキャリーレジスタとを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいて、テストバイトオペレーションを遂行する方法が、
前記スタックキャッシュのセル内にストアされた複数のバイトのそれぞれを読み取り、
任意の前記バイトがゼロ値であるとき、前記キャリーレジスタに第1論理値をストアし、
別途前記キャリーレジスタに第2論理値をストアすることを特徴とする方法。 - システムメモリ、前記システムメモリに接続され、前記システムメモリに接続されたスタックキャッシュ及び前記スタックキャッシュに接続されたプログラムカウンタを有するマイクロプロセシングユニットとを備えたマイクロプロセッサシステムにおいて、
単一のステッププロセシングシステムが、
前記スタックキャッシュ及び前記プログラムカウンタに接続され、前記スタックキャッシュの第1セルからの第1メモリアドレスを前記プログラムカウンタにロードする手段と、
前記プログラムカウンタに接続され、前記第1メモリアドレスに対応するロケーションにおいて、前記マイクロプロセッサシステムの前記システムメモリにストアされた第1命令を実行する手段と、
この間に第2メモリアドレスが前記第1セルにロードされる単一ステップトラップルーチンを実行する手段とを備え、
前記第1命令につづく第2命令が、前記第2メモリアドレスに対応する前記システムメモリのロケーションにストアされるようになっていることを特徴とするシステム。 - システムメモリ、及びスタックキャッシュを有する前記システムメモリに接続されるマイクロプロセシングユニットとを有するマイクロプロセッサシステムにおいて、
スタックキャッシュマネージングシステムが、
前記スタックキャッシュ内に現に含まれるセルの数を判断する手段と、
前記セルの数を判断する前記手段に接続され、スタックキャッシュの定義済の深さと前記セルの数との比較を実行する手段と、
前記比較の実行手段に接続され、前記比較に基づき現在のスタック深さの指示を与える手段とを備えたことを特徴とするシステム。 - システムメモリと、スタックキャッシュを有する前記システムメモリに接続されたマイクロプロセシングユニットとを備えたマイクロプロセッサシステムにおいて、
スタックキャッシュマネージングシステムが、
前記スタックキャッシュに接続され、前記スタックキャッシュ内に現に含まれるセルの数を判断するスタック深さ手段と、
前記スタック深さ手段に接続され、前記スタック深さの指示を与える手段とを備えたことを特徴とするシステム。 - システムメモリと、スタックキャッシュを有するマイクロプロセシングユニットを有するマイクロプロセッサシステムにおいて、
スタックキャッシュマネージングシステムが、
前記スタックキャッシュに接続され、前記スタックキャッシュ内の現存する数のセルを判断する手段と、
前記セルの現在の数を判断する手段に接続され、前記セルの現存の数とスタック深さとを比較することによって前記スタックキャッシュに付加することかできるセルの数を計算する手段と、
前記スタックキャッシュ及び前記スタックキャッシュに付加することができるセルの数を計算する手段に接続され、前記スタックキャッシュに付加することができる前記セルの数に等しい前記セルの数を前記スタックキャッシュ内の前記現存のセルに付加する手段とを備えたことを特徴とするシステム。 - さらに、前記スタックキャッシュに接続され、前記スタックキャッシュ内の前記セルの付加的な数を前記スタックキャッシュの前記現有のセルの数から除外する手段と、
前記システムメモリから前記スタックキャッシュに新しいセルの前記付加的な数をロードする手段とを備えたことを特徴とする請求項19に記載のシステム。 - アリスメティックロジックユニットと該アリスメティックロジックユニットに接続されたプッシューダウンスタックとを有するマイクロプロセシングユニットを備えており、
前記アリスメティックロジックユニットはビットをシフトするビットシフト手段を有しており、
該ビットシフト手段は1つ以上の部分シフトでビットのカウントをシフトするようになっており、前記カウントが各部分シフトでシフトされた数だけ減少し、前記シフトが、前記カウントがビット倍数より大きい間、ビット倍数だけ実行され、前記倍数がその後減少し、かつその後前記カウントがゼロになるまで前記カウントのシフト及び減少が反復されるようになっていることを特徴とするマイクロプロセッサ。 - 前記倍数が最初は8であり、前記倍数は前記カウントが8より小さくなったとき1に減少することを特徴とする請求項21に記載のマイクロプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US540895P | 1995-10-06 | 1995-10-06 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006276681A Division JP4859616B2 (ja) | 1995-10-06 | 2006-10-10 | 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009205698A true JP2009205698A (ja) | 2009-09-10 |
JP2009205698A5 JP2009205698A5 (ja) | 2010-07-15 |
Family
ID=21715705
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51584897A Expired - Lifetime JP3739797B2 (ja) | 1995-10-06 | 1996-10-04 | 縮小命令セット・コンピューター・マイクロプロセッサーの構造 |
JP2005240441A Expired - Fee Related JP3955305B2 (ja) | 1995-10-06 | 2005-08-22 | 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 |
JP2006276681A Expired - Lifetime JP4859616B2 (ja) | 1995-10-06 | 2006-10-10 | 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 |
JP2008290229A Pending JP2009080827A (ja) | 1995-10-06 | 2008-11-12 | マイクロプロセッサシステム |
JP2009141967A Pending JP2009205698A (ja) | 1995-10-06 | 2009-06-15 | 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51584897A Expired - Lifetime JP3739797B2 (ja) | 1995-10-06 | 1996-10-04 | 縮小命令セット・コンピューター・マイクロプロセッサーの構造 |
JP2005240441A Expired - Fee Related JP3955305B2 (ja) | 1995-10-06 | 2005-08-22 | 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 |
JP2006276681A Expired - Lifetime JP4859616B2 (ja) | 1995-10-06 | 2006-10-10 | 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 |
JP2008290229A Pending JP2009080827A (ja) | 1995-10-06 | 2008-11-12 | マイクロプロセッサシステム |
Country Status (6)
Country | Link |
---|---|
US (6) | US20070271441A1 (ja) |
EP (1) | EP0870226B1 (ja) |
JP (5) | JP3739797B2 (ja) |
AT (1) | ATE241170T1 (ja) |
DE (1) | DE69628326D1 (ja) |
WO (1) | WO1997015001A2 (ja) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376820B2 (en) * | 2000-03-16 | 2008-05-20 | Fujitsu Limited | Information processing unit, and exception processing method for specific application-purpose operation instruction |
WO2002010994A1 (en) * | 2000-07-28 | 2002-02-07 | Delvalley Limited | A data processor |
JP3857614B2 (ja) | 2002-06-03 | 2006-12-13 | 松下電器産業株式会社 | プロセッサ |
US8612992B2 (en) * | 2003-04-09 | 2013-12-17 | Jaluna Sa | Operating systems |
US8136096B1 (en) * | 2004-07-23 | 2012-03-13 | Green Hills Software, Inc. | Backward post-execution software debugger |
FR2896600B1 (fr) * | 2006-01-24 | 2008-03-28 | Atmel Nantes Sa Sa | Dispositif de traitement en notation polonaise inversee pour la manipulation de tableau, et circuit integre electronique comprenant un tel dispositif de traitement |
FR2896601B1 (fr) * | 2006-01-24 | 2008-08-15 | Atmel Nantes Sa | Dispositif de traitement en notation polonaise inversee, et circuit integre electronique comprenant un tel dispositif de traitement. |
US7913069B2 (en) | 2006-02-16 | 2011-03-22 | Vns Portfolio Llc | Processor and method for executing a program loop within an instruction word |
US7617383B2 (en) | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
KR101334172B1 (ko) * | 2007-01-05 | 2013-11-28 | 삼성전자주식회사 | 임베디드 시스템의 스택 오버플로우 방지 방법 및 장치 |
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 |
US8151349B1 (en) | 2008-07-21 | 2012-04-03 | Google Inc. | Masking mechanism that facilitates safely executing untrusted native code |
US7957216B2 (en) | 2008-09-30 | 2011-06-07 | Intel Corporation | Common memory device for variable device width and scalable pre-fetch and page size |
US20100164971A1 (en) * | 2008-12-29 | 2010-07-01 | Celio Technology Corporation | Graphics processor |
US8209523B2 (en) * | 2009-01-22 | 2012-06-26 | Intel Mobile Communications GmbH | Data moving processor |
GB2471138B (en) * | 2009-06-19 | 2014-08-13 | Advanced Risc Mach Ltd | Handling integer and floating point registers during a context switch |
US8572357B2 (en) * | 2009-09-29 | 2013-10-29 | International Business Machines Corporation | Monitoring events and incrementing counters associated therewith absent taking an interrupt |
US9967092B2 (en) | 2010-05-25 | 2018-05-08 | Via Technologies, Inc. | Key expansion logic using decryption key primitives |
US9911008B2 (en) | 2010-05-25 | 2018-03-06 | Via Technologies, Inc. | Microprocessor with on-the-fly switching of decryption keys |
US8645714B2 (en) | 2010-05-25 | 2014-02-04 | Via Technologies, Inc. | Branch target address cache for predicting instruction decryption keys in a microprocessor that fetches and decrypts encrypted instructions |
US9892283B2 (en) | 2010-05-25 | 2018-02-13 | Via Technologies, Inc. | Decryption of encrypted instructions using keys selected on basis of instruction fetch address |
US9798898B2 (en) | 2010-05-25 | 2017-10-24 | Via Technologies, Inc. | Microprocessor with secure execution mode and store key instructions |
US20120059866A1 (en) * | 2010-09-03 | 2012-03-08 | Advanced Micro Devices, Inc. | Method and apparatus for performing floating-point division |
US10838886B2 (en) | 2011-04-19 | 2020-11-17 | Micron Technology, Inc. | Channel depth adjustment in memory systems |
US9910823B2 (en) | 2011-05-16 | 2018-03-06 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch |
US9588881B2 (en) | 2011-05-16 | 2017-03-07 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses |
US8949514B2 (en) * | 2011-05-16 | 2015-02-03 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) for both code and data space |
US8560997B1 (en) * | 2012-07-25 | 2013-10-15 | Taiwan Semiconductor Manufacturing Company Limited | Conditional cell placement |
WO2014085267A1 (en) | 2012-11-30 | 2014-06-05 | Intel Corporation | Apparatus, method and system for providing termination for multiple chips of an integrated circuit package |
US9535697B2 (en) * | 2013-07-01 | 2017-01-03 | Oracle International Corporation | Register window performance via lazy register fills |
US9734326B2 (en) | 2014-02-04 | 2017-08-15 | Nxp Usa, Inc. | Dynamic interrupt stack protection |
US9411747B2 (en) * | 2014-02-04 | 2016-08-09 | Freescale Semiconductor, Inc. | Dynamic subroutine stack protection |
JP6128013B2 (ja) * | 2014-02-27 | 2017-05-17 | 株式会社デンソー | 回転角検出装置、および、これを用いた電動パワーステアリング装置 |
JP6183251B2 (ja) * | 2014-03-14 | 2017-08-23 | 株式会社デンソー | 電子制御装置 |
WO2016076934A2 (en) | 2014-08-22 | 2016-05-19 | Thomas John K | Verification system for secure transmission in a distributed processing network |
US9389796B1 (en) | 2015-02-23 | 2016-07-12 | International Business Machines Corporation | Efficient register preservation on processors |
US10459727B2 (en) | 2015-12-31 | 2019-10-29 | Microsoft Technology Licensing, Llc | Loop code processor optimizations |
US10592252B2 (en) | 2015-12-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Efficient instruction processing for sparse data |
US11042878B2 (en) | 2016-01-19 | 2021-06-22 | Priv8Pay, Inc. | Network node authentication |
US10649786B2 (en) * | 2016-12-01 | 2020-05-12 | Cisco Technology, Inc. | Reduced stack usage in a multithreaded processor |
US10761999B1 (en) * | 2019-05-30 | 2020-09-01 | Western Digital Technologies, Inc. | Storage device with predictor engine of host turnaround time |
CN111091544B (zh) * | 2019-12-12 | 2020-10-16 | 哈尔滨市科佳通用机电股份有限公司 | 铁路货车转向架侧面一体架构断裂故障检测方法 |
US11099848B1 (en) * | 2020-01-30 | 2021-08-24 | Arm Limited | Overlapped-immediate/register-field-specifying instruction |
TWI764311B (zh) * | 2020-10-08 | 2022-05-11 | 大陸商星宸科技股份有限公司 | 記憶體存取方法及智慧處理裝置 |
CN112416637A (zh) * | 2020-11-03 | 2021-02-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于栈技术的故障诊断方法 |
DE112021006877T5 (de) * | 2021-04-27 | 2023-11-30 | Microchip Technology Inc. | System mit mehreren stapeln in einem prozessor ohne effektiven adressgenerator |
US11782871B2 (en) | 2021-04-27 | 2023-10-10 | Microchip Technology Inc. | Method and apparatus for desynchronizing execution in a vector processor |
CN116627865B (zh) * | 2023-04-26 | 2024-02-06 | 安庆师范大学 | 具有多个存储装置的计算机的访问方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01134544A (ja) * | 1987-11-20 | 1989-05-26 | Hitachi Ltd | メモリアクセス方式 |
JPH03203087A (ja) * | 1989-12-28 | 1991-09-04 | Canon Inc | メモリアクセス制御装置 |
JPH0628239A (ja) * | 1990-11-29 | 1994-02-04 | Sun Microsyst Inc | メモリアクセス時間を短縮したコンピュータシステム及びメモリアクセス時間を短縮する方法 |
JPH06215559A (ja) * | 1993-01-14 | 1994-08-05 | Fuji Xerox Co Ltd | ページメモリアクセス方式 |
Family Cites Families (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253425A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US4092937A (en) * | 1977-03-21 | 1978-06-06 | The Singer Company | Automatic stitching by programmable sewing machine |
US4100865A (en) * | 1977-03-21 | 1978-07-18 | The Singer Company | Programmable sewing machine operable in a plurality of modes |
US4104976A (en) * | 1977-03-21 | 1978-08-08 | The Singer Company | Programmable sewing machine |
US4108090A (en) * | 1977-03-21 | 1978-08-22 | The Singer Company | Programmable variable speed for sewing machine |
US4222103A (en) * | 1978-09-25 | 1980-09-09 | Motorola, Inc. | Real time capture registers for data processor |
US4326247A (en) * | 1978-09-25 | 1982-04-20 | Motorola, Inc. | Architecture for data processor |
US4255785A (en) * | 1978-09-25 | 1981-03-10 | Motorola, Inc. | Microprocessor having instruction fetch and execution overlap |
US4374418A (en) * | 1979-06-27 | 1983-02-15 | Burroughs Corporation | Linear microsequencer unit cooperating with microprocessor system having dual modes |
US4287560A (en) * | 1979-06-27 | 1981-09-01 | Burroughs Corporation | Dual mode microprocessor system |
US4306287A (en) * | 1979-08-31 | 1981-12-15 | Bell Telephone Laboratories, Incorporated | Special address generation arrangement |
US4348720A (en) * | 1979-08-31 | 1982-09-07 | Bell Telephone Laboratories, Incorporated | Microcomputer arranged for direct memory access |
US4346437A (en) * | 1979-08-31 | 1982-08-24 | Bell Telephone Laboratories, Incorporated | Microcomputer using a double opcode instruction |
US4338675A (en) * | 1980-02-13 | 1982-07-06 | Intel Corporation | Numeric data processor |
JPS5792475A (en) * | 1980-11-25 | 1982-06-09 | Nec Corp | Multiple stack device |
JPS57182852A (en) * | 1981-05-07 | 1982-11-10 | Nec Corp | Stack device |
US4922414A (en) * | 1982-12-17 | 1990-05-01 | Symbolics Inc. | Symbolic language data processing system |
US4887235A (en) * | 1982-12-17 | 1989-12-12 | Symbolics, Inc. | Symbolic language data processing system |
JPH0731603B2 (ja) * | 1984-11-21 | 1995-04-10 | ノビツクス | Forth特定言語マイクロプロセサ |
US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
US4783736A (en) * | 1985-07-22 | 1988-11-08 | Alliant Computer Systems Corporation | Digital computer with multisection cache |
GB2188759B (en) * | 1986-04-05 | 1990-09-05 | Burr Brown Ltd | Data processing with op code early comparison |
JPS62256058A (ja) * | 1986-04-30 | 1987-11-07 | Toshiba Corp | アドレス変換バツフア制御方式 |
US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
JPS62277006A (ja) * | 1986-05-24 | 1987-12-01 | Hitachi Ltd | 電気車用制御装置 |
US4803621A (en) * | 1986-07-24 | 1989-02-07 | Sun Microsystems, Inc. | Memory access system |
JPS6356449U (ja) * | 1986-09-26 | 1988-04-15 | ||
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
GB2217058A (en) * | 1988-03-23 | 1989-10-18 | Benchmark Technologies | Processing integral transform operations |
US5056015A (en) * | 1988-03-23 | 1991-10-08 | Du Pont Pixel Systems Limited | Architectures for serial or parallel loading of writable control store |
EP0340901A3 (en) * | 1988-03-23 | 1992-12-30 | Du Pont Pixel Systems Limited | Access system for dual port memory |
US5428754A (en) * | 1988-03-23 | 1995-06-27 | 3Dlabs Ltd | Computer system with clock shared between processors executing separate instruction streams |
JPH01255035A (ja) * | 1988-04-05 | 1989-10-11 | Matsushita Electric Ind Co Ltd | プロセサ |
US5187799A (en) * | 1988-05-17 | 1993-02-16 | Calif. Institute Of Technology | Arithmetic-stack processor which precalculates external stack address before needed by CPU for building high level language executing computers |
US5261057A (en) * | 1988-06-30 | 1993-11-09 | Wang Laboratories, Inc. | I/O bus to system interface |
US5109514A (en) * | 1988-07-28 | 1992-04-28 | Sun Microsystems, Inc. | Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions |
KR0136594B1 (ko) * | 1988-09-30 | 1998-10-01 | 미다 가쓰시게 | 단일칩 마이크로 컴퓨터 |
US4951194A (en) * | 1989-01-23 | 1990-08-21 | Tektronix, Inc. | Method for reducing memory allocations and data copying operations during program calling sequences |
US5214767A (en) * | 1989-02-07 | 1993-05-25 | Compaq Computer Corp. | Full address and odd boundary direct memory access controller which determines address size by counting the input address bytes |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
US5781753A (en) * | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
JPH02239329A (ja) * | 1989-03-14 | 1990-09-21 | Toshiba Corp | スタック管理システム |
US5107457A (en) * | 1989-04-03 | 1992-04-21 | The Johns Hopkins University | Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack |
US5142635A (en) * | 1989-04-07 | 1992-08-25 | Intel Corporation | Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer |
JPH02284253A (ja) * | 1989-04-26 | 1990-11-21 | Hitachi Ltd | データ転送装置 |
JPH02304624A (ja) * | 1989-05-19 | 1990-12-18 | Hitachi Ltd | 情報処理装置 |
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
US5546551A (en) * | 1990-02-14 | 1996-08-13 | Intel Corporation | Method and circuitry for saving and restoring status information in a pipelined computer |
US5280615A (en) * | 1990-03-23 | 1994-01-18 | Unisys Corporation | Out of order job processing method and apparatus |
CA2045705A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
JPH04308953A (ja) * | 1991-04-05 | 1992-10-30 | Kyocera Corp | 仮想アドレス計算機装置 |
US5410654A (en) * | 1991-07-22 | 1995-04-25 | International Business Machines Corporation | Interface with address decoder for selectively generating first and second address and control signals respectively in response to received address and control signals |
JPH0553801A (ja) * | 1991-08-28 | 1993-03-05 | Seiko Epson Corp | スタツク消費検索方式 |
DE69228980T2 (de) * | 1991-12-06 | 1999-12-02 | National Semiconductor Corp., Santa Clara | Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul |
JPH05181778A (ja) * | 1991-12-27 | 1993-07-23 | Nec Corp | 入出力処理装置 |
GB2266606B (en) * | 1992-04-27 | 1996-02-14 | Intel Corp | A microprocessor with an external command mode |
US5522051A (en) * | 1992-07-29 | 1996-05-28 | Intel Corporation | Method and apparatus for stack manipulation in a pipelined processor |
US5367650A (en) * | 1992-07-31 | 1994-11-22 | Intel Corporation | Method and apparauts for parallel exchange operation in a pipelined processor |
US5590359A (en) * | 1992-08-05 | 1996-12-31 | Intel Corporation | Method and apparatus for generating a status word in a pipelined processor |
US5600584A (en) * | 1992-09-15 | 1997-02-04 | Schlafly; Roger | Interactive formula compiler and range estimator |
US5826069A (en) * | 1993-09-27 | 1998-10-20 | Intel Corporation | Having write merge and data override capability for a superscalar processing device |
US5369617A (en) * | 1993-12-21 | 1994-11-29 | Intel Corporation | High speed memory interface for video teleconferencing applications |
US5537559A (en) * | 1994-02-08 | 1996-07-16 | Meridian Semiconductor, Inc. | Exception handling circuit and method |
US5696955A (en) * | 1994-06-01 | 1997-12-09 | Advanced Micro Devices, Inc. | Floating point stack and exchange instruction |
US5636362A (en) * | 1994-09-28 | 1997-06-03 | Intel Corporation | Programmable high watermark in stack frame cache using second region as a storage if first region is full and an event having a predetermined minimum priority |
US6216200B1 (en) * | 1994-10-14 | 2001-04-10 | Mips Technologies, Inc. | Address queue |
US5717952A (en) * | 1994-11-16 | 1998-02-10 | Apple Computer, Inc. | DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command |
US6038643A (en) * | 1996-01-24 | 2000-03-14 | Sun Microsystems, Inc. | Stack management unit and method for a processor having a stack |
US5930820A (en) * | 1996-03-18 | 1999-07-27 | Advanced Micro Devices, Inc. | Data cache and method using a stack memory for storing stack data separate from cache line storage |
US5953741A (en) * | 1996-11-27 | 1999-09-14 | Vlsi Technology, Inc. | Stack cache for stack-based processor and method thereof |
US6085307A (en) * | 1996-11-27 | 2000-07-04 | Vlsi Technology, Inc. | Multiple native instruction set master/slave processor arrangement and method thereof |
US6167488A (en) * | 1997-03-31 | 2000-12-26 | Sun Microsystems, Inc. | Stack caching circuit with overflow/underflow unit |
US6009499A (en) * | 1997-03-31 | 1999-12-28 | Sun Microsystems, Inc | Pipelined stack caching circuit |
US6289418B1 (en) * | 1997-03-31 | 2001-09-11 | Sun Microsystems, Inc. | Address pipelined stack caching method |
US6131144A (en) * | 1997-04-01 | 2000-10-10 | Sun Microsystems, Inc. | Stack caching method with overflow/underflow control using pointers |
US5923892A (en) * | 1997-10-27 | 1999-07-13 | Levy; Paul S. | Host processor and coprocessor arrangement for processing platform-independent code |
US7139877B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing speculative load operation from a stack memory cache |
US7139876B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache |
US7805573B1 (en) * | 2005-12-20 | 2010-09-28 | Nvidia Corporation | Multi-threaded stack cache |
-
1996
- 1996-10-04 JP JP51584897A patent/JP3739797B2/ja not_active Expired - Lifetime
- 1996-10-04 DE DE69628326T patent/DE69628326D1/de not_active Expired - Lifetime
- 1996-10-04 EP EP96934069A patent/EP0870226B1/en not_active Expired - Lifetime
- 1996-10-04 WO PCT/US1996/016013 patent/WO1997015001A2/en active IP Right Grant
- 1996-10-04 AT AT96934069T patent/ATE241170T1/de not_active IP Right Cessation
-
2005
- 2005-08-22 JP JP2005240441A patent/JP3955305B2/ja not_active Expired - Fee Related
-
2006
- 2006-10-10 JP JP2006276681A patent/JP4859616B2/ja not_active Expired - Lifetime
-
2007
- 2007-07-26 US US11/881,283 patent/US20070271441A1/en not_active Abandoned
- 2007-07-26 US US11/881,284 patent/US20070271442A1/en not_active Abandoned
- 2007-10-31 US US11/981,482 patent/US20080071991A1/en not_active Abandoned
- 2007-10-31 US US11/981,237 patent/US20080091920A1/en not_active Abandoned
- 2007-10-31 US US11/981,278 patent/US20080077911A1/en not_active Abandoned
- 2007-10-31 US US11/981,453 patent/US20080072021A1/en not_active Abandoned
-
2008
- 2008-11-12 JP JP2008290229A patent/JP2009080827A/ja active Pending
-
2009
- 2009-06-15 JP JP2009141967A patent/JP2009205698A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01134544A (ja) * | 1987-11-20 | 1989-05-26 | Hitachi Ltd | メモリアクセス方式 |
JPH03203087A (ja) * | 1989-12-28 | 1991-09-04 | Canon Inc | メモリアクセス制御装置 |
JPH0628239A (ja) * | 1990-11-29 | 1994-02-04 | Sun Microsyst Inc | メモリアクセス時間を短縮したコンピュータシステム及びメモリアクセス時間を短縮する方法 |
JPH06215559A (ja) * | 1993-01-14 | 1994-08-05 | Fuji Xerox Co Ltd | ページメモリアクセス方式 |
Also Published As
Publication number | Publication date |
---|---|
EP0870226B1 (en) | 2003-05-21 |
DE69628326D1 (de) | 2003-06-26 |
US20080077911A1 (en) | 2008-03-27 |
US20070271441A1 (en) | 2007-11-22 |
US20070271442A1 (en) | 2007-11-22 |
JP2009080827A (ja) | 2009-04-16 |
JP3739797B2 (ja) | 2006-01-25 |
JP2006024233A (ja) | 2006-01-26 |
JP4859616B2 (ja) | 2012-01-25 |
US20080072021A1 (en) | 2008-03-20 |
US20080091920A1 (en) | 2008-04-17 |
JP2007042131A (ja) | 2007-02-15 |
EP0870226A2 (en) | 1998-10-14 |
WO1997015001A2 (en) | 1997-04-24 |
JPH11513825A (ja) | 1999-11-24 |
JP3955305B2 (ja) | 2007-08-08 |
EP0870226A4 (en) | 2001-08-08 |
ATE241170T1 (de) | 2003-06-15 |
WO1997015001A3 (en) | 1998-04-09 |
US20080071991A1 (en) | 2008-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4859616B2 (ja) | 縮小命令セット・コンピュータ・マイクロプロセッサーの構造 | |
KR100403405B1 (ko) | 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로 | |
KR100578437B1 (ko) | 다수의 스레드의 병행 실행을 지원하는 컴퓨터 시스템에서의 인터럽트 처리 메커니즘 | |
US8583894B2 (en) | Hybrid prefetch method and apparatus | |
US10621100B1 (en) | Unified prefetch circuit for multi-level caches | |
US20140282312A1 (en) | Hardware simulation controller, system and method for functional verification | |
JPH05502125A (ja) | 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 | |
EP0859320A1 (en) | A configurable expansion bus controller | |
WO2015009376A1 (en) | Access map-pattern match based prefetch unit for a processor | |
US9009420B2 (en) | Structure for performing cacheline polling utilizing a store and reserve instruction | |
US5809514A (en) | Microprocessor burst mode data transfer ordering circuitry and method | |
US9983874B2 (en) | Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling | |
US20060248318A1 (en) | Method and apparatus for sharing memory among a plurality of processors | |
WO2009032186A1 (en) | Low-overhead/power-saving processor synchronization mechanism, and applications thereof | |
US6006288A (en) | Method and apparatus for adaptable burst chip select in a data processing system | |
EP0380291A2 (en) | Pump bus to avoid indeterminacy in reading variable bit field | |
EP0772829A1 (en) | A pipelined microprocessor that makes memory requests to a cache memory and an external memory controller during the same clock cycle | |
JPH1083343A (ja) | メモリをアクセスする方法 | |
US9135157B2 (en) | Integrated circuit device, signal processing system and method for prefetching lines of data therefor | |
US20090100220A1 (en) | Memory system, control method thereof and computer system | |
WO1996037843A1 (en) | A pipelined microprocessor that prevents the cache from being read when the contents of the cache are invalid | |
JPS6014435B2 (ja) | 記憶装置 | |
JP2003015861A (ja) | 半導体集積回路及びコンピュータ読取り可能な記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090715 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120628 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120927 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121002 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121220 |