JPH11513825A - 縮小命令セット・コンピューター・マイクロプロセッサーの構造 - Google Patents

縮小命令セット・コンピューター・マイクロプロセッサーの構造

Info

Publication number
JPH11513825A
JPH11513825A JP9515848A JP51584897A JPH11513825A JP H11513825 A JPH11513825 A JP H11513825A JP 9515848 A JP9515848 A JP 9515848A JP 51584897 A JP51584897 A JP 51584897A JP H11513825 A JPH11513825 A JP H11513825A
Authority
JP
Japan
Prior art keywords
memory
address
stack
bit
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9515848A
Other languages
English (en)
Other versions
JP3739797B2 (ja
Inventor
ジョージ ダブリュー ショー
マーティン ジー マックルッグ
ブラッドリー ディー ジェンセン
ラッセル エイチ ザ サード フィッシュ
チャールズ エイチ ムーア
Original Assignee
パトリオット サイエンティフィック コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パトリオット サイエンティフィック コーポレイション filed Critical パトリオット サイエンティフィック コーポレイション
Publication of JPH11513825A publication Critical patent/JPH11513825A/ja
Application granted granted Critical
Publication of JP3739797B2 publication Critical patent/JP3739797B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/126The 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)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computer Graphics (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 マイクロプロセッサ(100)は100MHzの内部クロック振動数で100ネイティブMIPSピーク性能を実行する。CPU命令セットは、ハードワイヤ接続されており、単一のサイクルでほとんどの命令の実行を許容する。”フロースルー”デザインは前の命令が完了し、これによって性能が増大する前に次の命令を許容する。MPU(108)は16のぐローバルデータレジスタ(104)、インデックスレジスタ(132)、カウンタレジスタ(134)、16ディープアドレス可能レジスタ/リターンスタック(124)、及び18−ディープオペランドスタック(122)を含む52のジェネラルーパーパスレジスタを有する。双方のスタックは、トップエレメントにインデックスレジスタ(128または130)を有し、チップでキャッシュ化されており、必要に応じて、外部メモリに対して自動的にスピルし、あるいはこれからリフィルするようになっている。スタックはデータ移動を最小化するとともに、プロシージャコール、パラメータパッシング、及び可変割り当て中のメモリアクセスを最小化する。さらに、MPUは、モード/モードステータスレジスタ(136)及びI/O用の41個のローカルアドレスレジスタ(102)、コントロール、形態及び、ステータスを備える。CPU(100)は高性能、ゼロオペランド、デュアルスタックアーキテクチュアマイクロプロセシングユニット(MPU)(108)と、データ伝送事象カウント、時間計測、及び他の時間依存型機能を実行するための命令を実行するインプット−アウトプットプロセッサ(IOP)(110)を有する。ゼロオペランド(スタック)アーキテクチュアは、オペランドビットを消滅させる。スタックは、また、レジスタセーブ、及びプロシージャ内の及びプロシージャ間のロードを最小化し、これによって、短縮化された命令群及び迅速化された実行コードを許容する。命令は、デコードし、実行するのが簡単であり、MPU(108)及びIOP(110)が100ネイティブMIPSピーク実行において単一クロックサイクルで命令を発生し、完了することを可能にしている。8−ビットオプコードを使用すると、CPU(100)は命令フェッチあるいはプレフェッチが実行される時間ごとにメモリから4つの命令まで得ることができる。これらの命令は、メモリからこれらを再読み込みすることなしに反復することができる。このことによって直接DRAMに接続されたときキャッシュなしで、高性能を維持することができる。

Description

【発明の詳細な説明】 縮小命令セット・コンピューター・マイクロプロセッサーの構造 関連出願に対するクロス・リファレンス 本発明は、現米国特許5,440,749即ち、1989年8月3日出願の米 国出願番号07/389,334、及び上記出願の1995年6月7日に出願さ れた以下の分割出願即ち、出願番号08/480,462、08/480,91 1、08/480,015、08/485,031、08/484,918、0 8/484,230、08/484,920、08/480,206、08/4 84,935、08/482,185、08/480,901、08/486, 454において開示及び/又は請求された発明の改良をするためのものであり、 1995年10月6日出願の米国仮特許出願番号60/005,408に基づい ている。 序言 技術分野 本発明は、改良された形態の、単純化された縮小命令セット・コンピューター (RISC)マイクロプロセッサーに関する。特に、スタック構造をとるマイク ロプロセッサーに関する。背景 上記関連出願に記載されているマイクロプロセッサーの発明は、全て、ここに 参考資料として包含されている共通の開示に基づいているものであるから、改良 は、そのマイクロプロセッサーにおいて、その性能と生産性を上げるために行わ れている。以下の記述では、これらの改良を、そのマイクロプロセッサーの現在 好適とされている実施例を背景に開示する。 発明の概要 本発明のある態様では、マイクロプロセッサーシステムはマイクロプロセッシ ングユニットと入出力プロセッサー(IOP)とを含んでいる。大域メモリーユ ニットは中央処理装置及びIOPと連結されている。ある手段が、中央処理装置 及びIOPの大域メモリーユニットへのアクセスを裁定する。ある形態では大域 メモリーユニットは複数の大域レジスタを含んでいる。 本発明の別の態様では、マイクロプロセッサーシステムはマイクロプロセッシ ングユニットと入出力プロセッサー(IOP)とを含んでいる。メモリーインタ フェースユニットが、中央処理装置及びIOPをシステムバスに選択的に連結す る。ある手段が、IOPがシステムバスに決められた間隔でアクセスするのを許 可する。 本発明の又別の態様では、マイクロプロセッサーシステムは、スタックキャッ シュと連結された算術論理演算装置を含むマイクロプロセッシングユニットを有 している。ある手段が、算術論理演算装置及びスタックキャッシュと連結され、 スタックキャッシュの少なくとも1個のセルに値が含まれているかそして少なく とも他の1個のセルが空であるかを確認することによってスタックキャッシュ資 源の可用性を決定する。ある手段が、スタックキャッシュ資源の可用性を決定す る手段と連結され、スタックキャッシュ資源の可用性に基づいて算術論理演算装 置による命令の実行を選択的に禁止する。 本発明の更に又別の態様では、マイクロプロセッサーシステムは、スタックキ ャッシュと連結された算術論理演算装置を含むマイクロプロセッシングユニット を有している。スタックキャッシュはシステムメモリーの少なくとも第1の部分 に割り当てられている。ある手段が、マイクロプロセッシングユニット及びスタ ックキャッシュと連結され、スタックキャッシュのスタックポインタがシステム メモリーの第1の部分の境界領域内にアドレスを仮定するとスタック管理トラッ プを実行する。スタック管理トラップはシステムメモリーの少なくとも1個の他 の部分の可用性を決定する。ある手段が、スタック管理トラップ実行の手段と連 結され、スタックポインタがアドレスを境界領域内には含まれないシステムの第 1の部分の定義済みの領域内に仮定するまでは、スタック管理トラップの他の実 行を妨げる。 本発明の又更に別の態様では、マイクロプロセッサーシステムは、マイクロプ ロセッシングユニットとマイクロプロセッシングユニットをシステムのランダム アクセスメモリー(RAM)に連結するメモリーインタフェースユニットとを有 している。マイクロプロセッサーシステムは、メモリーインタフェースユニット と連結されて、システムRAMを使って仮想システムメモリーを定義できるよう に、マイクロプロセッシングユニットにより供給された論理行アドレスをシステ ムRAMの物理行アドレスに変換するための方法を含んでいる。 本発明の又更に別の態様では、マイクロプロセッサーシステムは、レジスタユ ニットを含んでいる。レジスタユニットはメモリーアドレスとして翻訳されるべ き値を含む少なくとも1個の記憶位置を有している。メモリーインタフェースユ ニットはレジスタユニットと連結される。メモリーバスはメモリーインタフェー スユニットと連結される。システムメモリーはメモリーバスによってメモリーイ ンタフェースユニットと連結される。メモリーインタフェースユニットは、メモ リーアドレスを増加させ、そして、メモリーアドレスを使用してのシステムメモ リーに対するメモリーバス処理の後、増加後のメモリーアドレスが、nを負でな い整数として、2nの偶数倍である値を持つときに境界検出信号を作り出す転送 論理を含んでいる。 本発明の又更に別の態様では、マイクロプロセッサーシステムは、中央処理装 置とその中央処理装置と連結されたビット入力レジスタとを含んでいる。ビット 入力レジスタは少なくとも1個のビットラインで論理入力を受け取る。ビット入 力レジスタは少なくとも1個のビットラインと連結されたラッチを有しており、 これは最初に少なくとも1個のビットラインをその論理レベルを決めるためにサ ンプリングする。ゼロ持続制御ユニットが、少なくとも1個のビットラインに割 り当てられたレジスタにおける論理レベルを記憶するためラッチに接続される。 論理レベルは、中央処理装置によって定義済みの信号がゼロ持続制御ユニットに 供給されるまでは、レジスタの中に記憶され続ける。 本発明のもう一つの態様では、マイクロプロセッサーシステムは、マイクロプ ロセッシングユニットと、入出力プロセッサー(IOP)と、前記マイクロプロ セッシングユニットと前記IOPとをシステムバスに選択的に接続するメモリー インタフェースユニットとから成り、そのIOPはシステムアドレス情報を前記 メモリーインタフェースユニットに提供するためのプログラムカウンター手段を 含んでいる。 本発明の更なる態様では、マイクロプロセッサーシステムは、スタックキャッ シュを持ったマイクロプロセッシングユニットを含んでいる。浮動小数点数学命 令に影響を及ぼすシステムは、スタックキャッシュのセル内の値に従って浮動小 数点演算を行うための算術論理ユニット手段を含んでいる。ある手段が、算術論 理ユニット手段と連結されて、選択された浮動小数点演算の一つの性能に応じて 浮動小数点例外を作り出す。モードレジスタ手段は、算術論理ユニット手段及び 浮動小数点例外発生手段と連結されて、マイクロプロセッシングユニットが浮動 小数点例外に応じて、定義済みの浮動小数点ルーチンを実行できるようにする。 本発明の更にもう一つの態様では、マイクロプロセッサーシステムは、スタッ クキャッシュを持ったマイクロプロセッシングユニットを含んでいる。区切り点 命令を実行する方法は、区切り点命令のメモリーアドレスをスタックキャッシュ にプッシュする段階と、区切り点サービスルーチンを実行する段階とから成って いる。 本発明の又更なる態様では、マイクロプロセッサーシステムは、システムメモ リーと、1つか又はそれ以上の内部レジスタを持ったマイクロプロセッシングユ ニットとを含んでいる。システムメモリーはマイクロプロセッシングユニットと の交信のため第1のアドレス空間を割り当てられる。マイクロプロセッシングユ ニット内でデータを転送する方法は、1つか又はそれ以上の内部レジスタに第1 のアドレス空間とは異なる第2のアドレス空間を割り当てる段階と、第2のアド レス空間内でアドレスによって識別された1つか又はそれ以上の内部レジスタの 部分へそしてその部分からデータを転送する段階とから成る。 本発明の又更にもう一つの態様では、マイクロプロセッサーシステムは、スタ ックキャッシュを持ったマイクロプロセッシングユニットを含んでいる。アドレ ス演算の方法は、第1のアドレス値をスタックキャッシュの第1のセルに記憶す る段階と、第2のアドレス値をスタックキャッシュの第2のセルに記憶する段階 と、第1のアドレス値を第2のアドレス値に加え、結果合計値をスタックキャッ シュの第1のセルに記憶する段階とから成る。 本発明の又更なる態様では、マイクロプロセッサーシステムは、スタックキャ ッシュを持ったマイクロプロセッシングユニットを含んでいる。コピーバイト動 作を行うための方法は、セルに記憶されている複数のデータバイトの最下位のも のを読む段階と、複数のデータバイトの少なくとも他の一つを前記の最下位のデ ータバイトに置き換える段階とから成る。 本発明の又更にもう一つの態様では、マイクロプロセッサーシステムは、スタ ックキャッシュとキャリィレジスタを持ったマイクロプロセッシングユニットを 含んでいる。テストバイト動作を行うための方法は、スタックキャッシュのセル 内に記憶されている複数のバイトの各々を読む段階と、バイトの何れもがゼロ値 であるときはキャリィレジスタに第1の論理値を記憶し、そうでないときはキャ リィレジスタに第2の論理値を記憶する段階とから成る。 本発明の又更にもう一つの態様では、マイクロプロセッサーシステムは、シス テムメモリーと、そのシステムメモリーに連結されたマイクロプロセッシングユ ニットとを含んでいる。スタックキャッシュはシステムメモリーと連結され、プ ログラムカウンターがスタックキャッシュと連結されている。シングルステップ プロセッシングシステムは、スタックキャッシュ及びプログラムカウンターと連 結されて、第1のメモリーアドレスをスタックキャッシュの第1のセルからプロ グラムカウンターへロードする一つの手段を含んでいる。ある手段は、マイクロ プロセッサーシステムのシステムメモリーの第1のメモリーアドレスに対応する 位置に記憶されている第1の命令を実行するため、プログラムカウンターに連結 される。ある手段はシングルステップトラップルーチンを実行し、その間に第2 メモリーアドレスが第1セルにロードされ、第1の命令に続く第2の命令がシス テムメモリー内の第2のメモリーアドレスに対応する位置に記憶される。 本発明のもう一つの態様では、マイクロプロセッサーシステムは、システムメ モリーと、スタックキャッシュを持ったそのシステムメモリーに連結されたマイ クロプロセッシングユニットとを含んでいる。スタックキャッシュ管理システム は、スタックキャッシュと連結され、スタックキャッシュ内に現在含まれている セルの数を決定するための方法を含んでいる。ある手段は、セルの数を決定する ための前記手段と連結されて、セルの数をスタックキャッシュの定義済みの深さ と比較する。ある手段は、比較を実行するための前記手段と連結され、その比較 に基づいて現在のスタック深さの表示を提供する。 本発明の更なる態様では、マイクロプロセッサーシステムは、システムメモリ ーと、スタックキャッシュを持ったそのシステムメモリーに連結されたマイクロ プロセッシングユニットとを含んでいる。スタックキャッシュ管理システムは、 前記スタックキャッシュと連結され、前記スタックキャッシュ内に現在含まれて いるセルの数を決定するためのスタック深さ手段を含んでいる。ある手段は、ス タック深さ手段と連結されて、スタック深さの表示を提供する。 本発明のもう一つの態様では、マイクロプロセッサーシステムは、システムメ モリーと、スタックキャッシュを持ったマイクロプロセッシングユニットを含ん でいる。スタックキャッシュ管理システムは、スタックキャッシュと連結され、 スタックキャッシュ内の現在のセルの数を決定するための手段を含んでいる。あ る手段は、現在のセルの数を決定するための手段と連結されて、現在のセルの数 を最大スタック深さと比較して、スタックキャッシュに追加できるセルの数を計 算する。ある手段は、スタックキャッシュ内の現在のセルの数にスタックキャッ シュに追加できるセルの数と等しいセルの数を追加するために、スタックキャッ シュ及びスタックキャッシュに追加できるセルの数を計算するための手段と連結 される。 本発明の更にもう一つの態様では、マイクロプロセッサーシステムは、算術論 理ユニットを持ったマイクロプロセッシングユニットと、その算術論理ユニット に連結された後入れ先出しスタックとを含んでいる。算術論理ユニットはビット を桁送りするためのビットシフティング手段を含んでいる。ビットシフティング 手段は、ビットのカウントを1つ又はそれ以上の部分シフトでシフトし、各部分 シフトでシフトされたビットの数だけカウントを減じる。シフティングは複数の ビットで、カウントがその複数のビットより大きい間、行われる。その複数のビ ットの数はそれから少なくなり、シフティングとカウントの減少はカウントがゼ ロになるまで繰り返す。 図面の簡単な説明 図1は本発明によるマイクロプロセッサー中央処理装置(CPU)のブロック 線図である。 図2は図1に示すマイクロプロセッサーCPUのマイクロプロセッシングユニ ット(MPU)部のブロック線図である。 図3は図2に示すMPU部のレジスタの図解的表示である。 図3aは図3に示すレジスタの幾つかを使った加算演算の図解的表示である。 図4は図1に示すCPUのためのメモリーマップの図解的表示である。 図5は図1に示すCPUのためのメモリーにおけるスタック例外領域の図解的 表示である。 図6は図2のMPUのための命令形式の図解的表示である。 図6aは図2のMPUで使われる浮動小数点数形式の図解的表示である。 図7は図5に示すモードレジスタのより詳細な図解的表示である。 図8は図1に示す入出力プロセッサー(IOP)のブロック線図である。 図9は図8のIOPにおけるレジスタ使用の図解的表示である。 図10は図8のIOPのための命令形式の図解的表示である。 図11は図1に示す直接記憶アクセス制御装置(DMAC)のブロック線図で ある。 図12は図1のマイクロプロセッサーで利用される入出力(I/O)チャネル 転送データ形式の図解的表示である。 図13は図1に示す割り込み制御装置(INTC)のブロック線図である。 図14は図8に示すビット入力レジスタioinのためのビット入力のブロック線 図である。 図15は図8に示すビット出力レジスタiooutのためのビット出力のブロック 線図である。 図16は図1のマイクロプロセッサーによるメモリーアクセスに使われるグル ープ選択及びバンク選択ビットの図解的表示である。 図17は図1のマイクロプロセッサーを用いるシングルメモリーバンクシステ ムのブロック線図である。 図18は図1のマイクロプロセッサーを用いるマルチメモリーバンクシステム のブロック線図である。 図19は図17−18のシステムを使うメモリーアクセスのための信号タイミ ング線図のセットである。 図20は図1に示すオンチップ資源レジスタの図解的表示である。 図21−46aは図20に示すオンチップ資源レジスタと予約されたレジスタ アドレスのより詳細な図解的表示である。 図47−62は図17−18のシステムを使うメモリーアクセスのための信号 タイミング線図のセットである。 図63−65は図1のマイクロプロセッサーを包含するシステムのブロック線 図である。 図66−76は図1のマイクロプロセッサーの動作を理解するのに役立つ信号 タイミング線図のセットである。 特定の実施例の説明 シュボムマイクロプロセッサー100(図1)は高度に集積された32ビット のRISCプロセッサーで、広範囲な埋込型アプリケーションに対し安いシステ ムコストで高い性能を提供する。内部100MHzでプロセッサーは100MI PSのピーク性能を発揮する。32ビットのレジスタ102、104及びデータ 経路106は32ビットのアドレスとデータタイプを完全にサポートする。プロ セッサー100は4ギガバイトまでの物理メモリーをアドレス指定し、外部マッ ピングロジックを使って仮想メモリーをサポートする。 従来の高性能マイクロプロセッサーは、大きなレジスタセット付きのレジスタ ベースのものであり、パイプライン型か超スカラーかである。これら複雑な構造 は多重オペランド命令、多重実行ユニット、或いは非常に長い実行パイプライン により高価なシリコンを消費する。これらの特性は全て各命令の最速可能実行速 度を低くし、シリコンサイズを大きくし、その結果チップのコストを高くする。 シュボムCPU100の構造哲学は、単純化と使用の効率化である。ゼロオペ ランド設計は大多数のオペランドビットと、それが必要とする復号時間と命令空 間とを不要にする。命令は8ビットに縮小され、命令の帯域幅は十分に増やされ プログラムのサイズは低減された。パイプラインや超スカラーによる実行を利用 していないことにより制御が単純化した結果、従来の命令キャッシュ無しに、単 一クロック内で、そして各クロックサイクル毎に、命令を発行し終了するための 実行の速度が上がっている。チップを確実に低コストにするため、データキャッ シュととそのコストも又、レジスタキャッシュの効率化を優先し削除された。 シュボムCPU100は、高速及び低速メモリーのいかなる所望の混成をも許 容しながら、20nsから810nsまでのプログラム可能なバス構成4グルー プまでを処理する。最少システムコストは削減され、システム設計者が必要に応 じて、システムコストと性能を引き替えることができるようにしている。 多くのオンチップシステム機能と「非接着」バスインタフェースを組み込むこ とによって、サポートチップが削減され、更にシステムコストを低減している。 CPU100はMPU108、入出力プロセッサー110、DMA制御装置11 2、割り込み制御装置114、ビット入力116,ビット出力118、プログラ ム可能メモリーインタフェース120を含んでいる。32ビット幅又は8ビット 幅のメモリー及び装置で作動する。最少のシステムは、シュボムCPU、8ビッ ト幅EPROM、オシレーター、それにオプションで1個のx8又は2個のx1 6メモリー、の合計4又は5個の稼働構成要素で構成される。ただの137,5 00のトランジスターを含む小さなダイが、高性能低コストCPUを作り、高水 準の集積が高性能低コストシステムを作る。 特徴マイクロプロセッシングユニット(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(バー)を含む 図1に示す信号を以下の表1に示す。 注: I:入力オンリーピン O:出力オンリーピン I/O:双方向ピン A():非同期入力 S(sym):同期入力はセットアップと合致し、記号に関し要件を保持せねばならな い。 I(H):リセットで高値 I(L):リセットで低値 I(Z):リセットで高インピーダンス ナショナルセミコンダクター・タイプVJG/VJU100ピン・プラスチッ ク・クアッド・フラット・パッケージに実装されたとき、シングルチップマイク ロプロセッサー100からピンアウトする信号を以下の表2に示す。 目的 以下の資料にシュボムマイクロプロセッサー100の構造、ハードウェアイン タフェース、プログラミングを述べる。本プロセッサーは高MPU性能、低シス テムコストを必要とする埋込型アプリケーションに的を絞ったものである。レー ザープリンター、グラフィクスアクセレレーター、点火制御装置、ネットワーク ルーター、パーソナルディジタル用具、セットトップケーブル制御装置、ビデオ ゲームその他多くのアプリケーションがこれに当たる。本資料は、MPU108 及びIOP110両方のプログラミングをはじめ、機能的容量、電気的特性及び 定格値、実装規定を含めた、シュボムCPU100を使用する製品を設計するに 必要な情報を提供する。概要 シュボムマイクロプロセッサー100は高集積32ビットRISCプロセッサ ーであり、100MHz内部クロック周波数で100MIPSのピーク性能を発 揮する。CPU100は特に、MPU性能とシステムコストが選択決定可能な要 素となる埋込型アプリケーションに使用するために設計されている。 シュボムCPUの命令セットはハードワイヤ式で、殆どの命令が、パイプライ ンや超スカラー構造を使うことなく、単一サイクルで実行できる。「フロースル ー」設計のため、前の命令が終了する前に次の命令を開始でき、性能が向上して いる。 シュボムMPU108(図2参照)は、16個の大域データレジスタ104、 1個の指標レジスタ132、1個のカウントレジスタ134、1個の16深度ア ドレス指定可能レジスタ/復帰スタック124、1個の18深度オペランドスタ ック122を始めとする52の汎用目的レジスタから成っている。両スタックは トップエレメントに指標レジスタ128又は130を含んでおり、チップでキャ ッシュされ、必要な場合は自動的に外部メモリーにスピルし、リフィルされる。 スタックはレジスタベースの構造で、典型的なデータの移動を最小化し、呼び出 し、パラメータパス、変数割付の間のメモリーアクセスをも最小化する。更に、 このMPUは1個のモード/ステータス・レジスタ136と、入出力、制御、構 成、ステータスのための41個の局所アドレス指定レジスタとから成っている。 主要な特徴 2重プロセッサー構造:CPU100は、高性能、ゼロオペランド、2重スタ ック構造のマイクロプロセッシングユニット(MPU)108と、データを転送 し、事象をカウントし、時間を計測し、他のタイミング依存機能を実行するため の命令を実行する入出力プロセッサー(IOP)の両方を含んでいる。 ゼロオペランド構造:多くのRISCは貴重な命令空間を、しばしば1命令当 たり15ビット以上を、各命令当たり3つの可能なオペランドを規定するのに費 やしている。ゼロオペランド(スタック)構造はこれらのオペランドビットを削 除し、命令を大幅に、典型的には1/4に短縮し、高い命令実行帯域幅と小さな プログラムサイズとを実現している。スタックも又レジスタセーブを最小化し、 プロシジャ内及びプロシジャを超えてロードし、これにより短い命令シーケンス と、高速の実行コードを実現する。 高速、単純な命令:従来のRISCプロセッサーと比較して命令はデコードし 実行するのにより単純であり、シュボムMPU100及びIOP110は単一ク ロックサイクル内で命令を発行し終了する。両者ともピークの実行能力が100 MIPSである。 4命令バッファ:8ビットのオプコードを使用しているので、CPU100は 各命令をフェッチ又はプリフェッチする際に、4個までの命令をメモリーから受 け取る。これらの命令はメモリーから再読み出しすること無しに繰り返すことが できる。これによって、直接DRAMに接続する場合、キャッシュを消費するこ となく高性能が維持できる。 局所及び大域レジスタ:局所及び大域レジスタはデータメモリーへのアクセス 回数を最小化する。局所レジスタスタック124は自動的に16個までのレジス タをキャッシュし、オペランドスタック122は18までのレジスタをキャッシ ュする。スタックすると、割り当てられたデータ空間はプロシジャ呼び出しに応 じて効率的にネスト、アンネストする。16個の大域レジスタ104は共用デー タに記憶装置を提供する。 通知書き込み:メモリーへのデータ書き込みからプロセッサーを切り離し、書 き込みが通知された後、プロセッサーが命令実行を継続できるようにする。 プログラム可能メモリー/バス・インタフェース:価格感度の高いシステムで より低いコストのメモリーとシステムとが利用できるようにする。本インタフェ ースは、DRAM装置4グループまででの高速ページモードを始めとする、多く の形式のEPROM/SRAM/DRAM/VRAMを直接サポートする。RA SサイクルOE(バー)及びWE(バー)、RAS前CAS、DSF信号のオン チップサポートにより外部ハードウェアを追加することなくVRAMが使える。 プログラム可能なバスタイミングとドライバ能力により、設計者は各プロジェク トに対し時間、性能予算の要求に応じ、システム設計に挑戦的に取り組む広範な 解を得たことになる。 クロック乗数:内部的に外部クロックを2倍、4倍化する。オンチップPLL 回路により典型的な厳密なオシレーター仕様が不要となり、低価格のオシレータ ーが利用できるようになる。 完全に静的な設計:完全に静的な設計なので、DCから定格速度までのクロッ クを実行できる。クロック速度が低くなると電力消費を大幅に削減できる。 ハードウェア・デバッギングサポート:区切り点及びシングルステップ能力の 両方ともデバッギングプログラムを援助する。 仮想メモリー:外部マッピングSRAM及びサポートロジックの仕様を通して サポートされている。 浮動小数点サポート:特別の命令が効率のよい単精度及び倍精度のIEEE浮 動小数点演算を実行する。 割込制御装置:8つまでの優先化されたレベルを8つの2Xクロックサイクル の速さの割込応答でサポートする。 8ビット入力116及び8ビット出力118:MPU及びIOPアプリケーシ ョン使用に対し、外部ハードウェアの必要性を減じながら、入出力ビットが利用 できる。 中央処理装置 シュボムCPU100の構造哲学は、単純化と使用の効率化であり、問題を適 切に解き、存在する資源の最善の活用を計る最も単純な解を実行する。ハードウ ェアにおいては、これは使用するトランジスターの数を減らし、それによってC PUが低コストになることと同じである。 初期のRISCプロセッサーはCISCプロセッサーに比べてトランジスター の数を減じコストを低減し性能を改善した。今日、トランジスター間の相互接続 が多くのCPUのシリコンの量を決めている。シュボムMPUの構造哲学は、ト ランジスターをより少なくすることに加えて、レジスタベースのMPUと比べ相 互接続を最小化するという結論に達している。 資源:シュボムCPU100(図1)は10個の主要機能ユニットを含んでい る。それは、マイクロプロセッシングユニット(MPU)108、入出力プロセ ッサー(IOP)110、大域レジスタ104、直接記憶アクセス制御装置(D MAC)112、割込制御装置(INTC)114、オンチップ資源102、ビ ット入力116、ビット出力118、プログラム可能メモリインタフェース(M IF)120、クロック140である。一面では、シュボムCPUはこれらのユ ニットの中及び間で資源の共用化を行うことによりシリコンサイズを小さくし、 能力を獲得している。例えば以下のようにである。 大域レジスタ104は、MPU108、IOP110、MIF120の中の転 送ロジック142によって共用されている。この大域レジスタ104は、MPU 108ではデータ記憶とDMAC112及びIOP110との制御通信とに用い られ、IOP110では転送情報、ループカウント、ディレーカウントに用いら れ、DMAC112では転送情報に用いられている。更に、転送情報はMIF1 20の中の転送ロジックで用いられ、IOP110とDMAC112によって共 用されている。 MIF120はシステムバスへのアクセスのために、MPU108、IOP1 10、DMAC112、ビット出力118、ビット入力116によって共用され ている。バストランザクションの要求は、IOP110の確定的実行を一時的に 保証するため、MIF120によって仲裁、優先化される。 DMAC112転送終了ロジックは、終了動作を要領よく行うため、特別の終 了条件及びMPU108との密接な連結を用いることによって、十分に削減され ている。 INTC114は、MPU108への割込要求のため、ビット入力116、I OP110、DMAC112(MIF120転送ロジック142経由で)によっ て共用されている。 ビット出力118は、オンチップ資源レジスタ102を通しシステムで利用で きるようになる。ビット出力118は、プログラム化された出力のため、MPU 108とIOP110によって共用化され、ビットアドレス指定可能である。 複雑なIOP110プログラム、多くの割込源、多くの入力ビット、多くの出 力ビット、全ての利用できるチャネル、MPU108の最大計算能力を必要とす る最高度使用ケースでは資源の不足が生じるかもしれないが、そのようなことは 常時あるわけではない。機能ユニット間での資源の共用はトランジスタ数、パッ ケージピン数、その結果としてシリコンサイズとコストを大幅に減らし、CPU の容量と柔軟性を増やす。利用できる資源の中から選択する能力のおかげで、他 のCPUの固定資源セットと比較して、シュボムCPU100はより広範なアプ リケーションへ使用できる。クロック速度 CPUのクロック速度はその性能を予言するものではない。例えば、パワーP C604はDECアルファ21064Aの半分の速度で走るが、‘95ベンチマ ーク性能では略同等の仕様を達成している。この点では、シュボムCPU100 はパワーPCよりももっとDECアルファに近い。しかし、シュボムCPU10 0はこれらのCPUのどれとも可成り異なる設計哲学に基づいている。 大部分のプロセッサーは歴史的にシステムの設計者に対し、CPU実行速度、 メモリー帯域幅、入出力帯域幅の三角形のバランスを取るように強要してきた。 しかし、システムのクロック速度が上がるにつれて、バスの速度も、キャッシュ メモリーの速度も上がり、システムインタフェースのコストも上がってきた。そ して又、CPUのコストも上がり、このバランスを維持するために数千のトラン ジスタが追加された。 シュボムCPU100は、低システムコストを維持しながら、システム設計者 に望みの性能レベルを選択させるものである。これは先の三角形を幾らか傾かせ るであろうが、コストは三角形バランス方程式の一部にはない。シュボムCPU のプログラム可能なメモリインタフェースは広範囲なメモリー速度の使用を可能 とし、システムが必要に応じ低速或いは高速のメモリーを使えるようにした。低 速メモリーがシステムの性能を低下させるのは明らかだが、シュボムCPUの高 速内部クロック速度によって、内部演算は素早く完了する。このように多重サイ クルの乗算及び除算命令は、単一サイクルの乗算ユニットのようにシリコンを消 費することなく、速やかに実行される。単一サイクル乗算ユニットと競合する部 分のクロック速度の8倍までで、乗除性能における差は消え、一方アプリケーシ ョンの残りの部分はこれに対応して高速で実行する。ある場合には、多数のトラ ンジスターをそのように機能させるため専用化すれば高性能が得られるかもしれ ないが、シリコンのコストが増え、コストの増加はシュボムCPU100のこの バージョンの設計目標には合致しない。 マイクロプロセッサーユニット MPU108(図2)は、幾つかの互いに相関するやり方での基本設計を通し て、シュボムCPUの単純化と使用の効率化の構造哲学を支えている。 大部分のRISCプロセッサーが高いクロック速度で実行するために、パイプ ライン及び超スカラー実行を用いているのに対して、シュボムMPU108はど ちらも使っていない。単純な構造にすることによって、シュボムMPUは大部分 の命令を単一クロックサイクル内で発行、終了する。そこには詰め込むべきパイ プラインも、プログラムの流れの中で変更の間にフラッシュすべき何物もない。 時にはもっと多くの命令が、シュボムMPUコードで同じプロシジャを実施する ように要求されているが、このMPUは同等のシリコンサイズ及び技術の他のプ ロセッサーよりも高いクロック周波数で作動し、同等の性能を十分に低減したコ ストで実現する。 マイクロプロセッサーの性能は、しばしば、メモリーから命令をいかに早く供 給され得るかで制限される。MPU108は、8ビット命令を使い4つまでの命 令(1命令グループ)を各メモリーアクセス毎に得ることができるようにして、 このボトルネックを少なくしている。各命令は、典型的には、実行するのに一つ の2Xクロックサイクルを取り、それ故、命令グループを実行するのには4つの 2Xクロックサイクルを必要とする。メモリーアクセスは4つの2Xクロックサ イクルを取ることができるので次の命令グループが終了する。これにより、命令 キャッシュにコストを掛け複雑化すること無しに、最大命令実行帯域幅でプロセ ッサーに命令を供給できるようになる。 ゼロオペランド(スタック)構造は8ビット命令を可能にする。このスタック 構造は、命令毎にソースと行き先のオペランドを指定する必要性を取り除く。オ ペランド仕様に対する命令の度毎にオプコードビットを使うことがないことによ って、機能演算の帯域幅が大幅に、4倍にまで広がる。典型的RISCMPU命 令帯域幅の倍を例示するシュボムMPU命令シーケンスの例を図3に示す。シュ ボムMPU上の命令シーケンスは命令ビットの半分を必要とし、命令バンド幅が 増加した結果からキャッシュされていない性能の利益が生まれる。 スタックMPUはこのようにレジスタベースMPUよりも単純であり、シュボ ムMPU108は2つのハードウェアスタック122及び124即ち、オペラン ドスタック122と局所レジスタスタック124を持つ利点を有する。単純化は 広く行き渡り、スタックが実行中に使用されるという効率的なやり方で反映され ている。 ALU150は本来一つの入力ソース、オペランドスタック122のトップ1 30、からのデータを処理する。ALU150は又、分岐アドレス計算にも使わ れる。データ伝送はこのように非常に削減され単純化されている。中間結果は典 型的には無制限の深さに「スタックアップ」し、特別のレジスタ割付と管理を要 求するよりはむしろ、必要に応じ直接利用される。スタック122と124は独 立してキャッシュされ、自動的にスピルしリフィルし、他のRISCプロセッサ ーで典型的なスタック操作のためのソフトウェアオーバヘッドは取り除かれてい る。機能パラメータはオペランドスタック122にパスされ直接消費されてオフ され、大部分のスタックフレーム管理の必要性は取り除かれている。追加の局所 記憶装置が必要な場合、局所レジスタスタック124は、ファンクションを超え て効率よくネスト、アンネストするレジスタを供給する。スタックなので、スタ ックレジスタ空間は実際に記憶されているデータに割り付けられるだけで、固定 サイズレジスタウィンドウズを使う構造とは違って、レジスタがスピル、リフィ ルされるときに記憶装置の活用とバスの帯域幅は最大となる。スタック速度コン テクストは、レジスタが使用前に明確にセーブされる必要が無く、必要に応じ追 加のスタック空間が割り付けられるので、割込サービスのように切り替わる。こ のように、スタックは要求されない限り明確にアドレス指定可能なレジスタの数 を減らし、データ位置指定と移動を減じることにより高速で実行する。スタック の記憶装置は本来局所的なものであるので、大域レジスタ104は要求された際 に非局所レジスタ資源を供給する。 8ビットオプコードは多量の結合データを収めるには小さすぎる。即時値と分 岐オフセットのためには追加のバイトが必要である。しかし、可変長命令は通常 デコーディングを複雑にし、連結データのアクセスパスを複雑化し長くする。問 題を単純化するため、グループ内でのバイトリテラルオプコードの位置に関わら ず、命令グループの最右端のバイトからだけバイトリテラルデータが取られる。 同様に、分岐オフセットはオプコード位置に関わらず、全てのビットが分岐オプ コードの右に取られる。32ビットリテラルデータに対して、データはその次の メモリーセルから取られる。これらの設計選択の結果、必要なデータが内部デー タバスでの配置に対して確実に常に右側に位置合わせされるようになり、相互接 続を減らし、単純化し、実行速度を早くする。 大部分の命令は単一のクロックサイクルでデコードされ実行されるので、デー タ演算に使用される同じALU150も又利用可能で、分岐アドレス計算に使用 される。これにより、通常、分岐オフセット計算に必要とされるALU全体が削 減される。 MPU108はクロック速度が速いので、単一サイクルの乗積算ユニットのた めにチップ領域を消費するというよりはむしろ、通常の多重サイクルの乗除算の 実行時間を短縮する。効率的に定数を乗ずるため、高速乗算命令は特定された数 のビットだけを乗ずることになる。 カウントされたビットシフト演算は、バレルシフタのためにチップ領域を消費 するというよりはむしろ、バイトによる第1のシフトに、そしてビットで必要な サイクルを最小化するのに「高性能」である。シフト演算はセル2つ(64ビッ ト)シフトすることもでき、ビット循環命令を合成しやすくしている。 浮動小数点数学は有用で時には必要であるが、埋込型アプリケーションでは頻 繁に使われるわけではない。MPUの命令は、浮動小数点ユニットのためにチッ プ領域を消費するというよりはむしろ、単精度及び倍精度の両方において、基本 的IEEE浮動小数点数学演算の最も時間を消費する態様を効率的に実行するた めに供給される。この演算は必要なサイクルを低減するために「高性能」シフタ を使用する。 バイトの読みとり及び書き込み動作は使用可能ではあるが、バイト値に対しス キャンするとき、個々のバイトを通しての循環は遅い。このタイプの動作は、セ ル内の全てのバイトで一時に作動する命令によってもっと効率化することができ る。アドレス空間 MPU108は全てのプログラムとデータ操作に対し、線形4ギガバイトアド レス空間を完全にサポートしている。入出力装置はそれをメモリーアドレスにマ ッピングすることによって選択されている。規定により、もっとも上のアドレス ビットが、外部ハードウェアでデコードされた入出力装置アドレスを選定する。 この規定は、2ギガバイトを超えるスパースアドレス空間を持った2ギガバイト の連続する線形プログラム及びデータの空間を作り出す。これは又、入出力装置 と入出力チャネル転送のためのメモリーアドレスの同時アドレス指定ができるよ うにしている。以下のメモリー及び装置アドレス指定を参照されたい。 幾つかの演算命令はアドレスが4バイト(セル)境界に整列するのを期待して いる。このアドレスはセル整列していると称される。アドレスの上位30ビット だけがデータを置くために使用され、最下位の2アドレスビットは無視される。 セル内では、高順位のバイトは低バイトアドレスに置かれる。次に低い順位のバ イトは次に高いアドレスにあり、以下それに準ずる。例えば、値0x12345 678はメモリーのバイトアドレスでは低アドレスから高アドレスへ12 34 56 78のように存在する。レジスタとスタック レジスタセットは、52個の汎用レジスタ122、124、104、132、 134(図3)、モード/ステータスレジスタ136と、入出力、コンフィギュ レーション、ステータスに使用される41個の局所アドレスマップされたオンチ ップ資源レジスタ102(図20)とを含んでいる。 オペランドスタック122は18個のレジスタs0−s17を含んでおり、後 入れ先出しスタックとして作動し、上位3個のレジスタ(s0−s2)に直接ア ドレスする。これらのレジスタと残りのレジスタ(s3−s17)は共にスタッ クキャッシュとして作動する。算術、論理、データ移動動作は、中間結果処理と 同じく、オペランドスタック上で実行される。スタックフレームを構築したり、 必然的に他のレジスタ及びフレームの間でデータを移動すること無しに、パラメ ータはプロシジャにパスされ、結果はスタック上のプロシジャから帰ってくる。 真のスタックなので、レジスタは、使用可能な記憶装置を有効に活用ため、必要 なときだけ割り付けられる。 局所レジスタ124は16個のレジスタr0−r15を含んでおり、最初の1 5個のレジスタ(r0−r14)への直接アドレスを備えた後入れ先出しスタッ クとして作動する。これらのレジスタと残りのレジスタ(r15)は共にスタッ クキャッシュとして作動する。スタックなので、これらはサブルーチン復帰アド レスを保持し自動的に局所レジスタのデータをネストするのに使われる。 キャッシュされたスタック122と124は共に自動的にメモリーにスピルし メモリーからリフィルされ、任意の深さを持つことができる。更に、s0とr0 とはメモリーアクセスに使用できる。以下のスタックとスタックキャッシュを参 照されたい。 スタックキャッシュされたオペランドと局所レジスタを使えば、コンテクスト をセーブし復元するために必要なオーバヘッドを削除することによって(大域レ ジスタだけが使用できるプロセッサーと比べ)、性能を改善できる。このことに よって、非常に効率的な割込とサブルーチン処理ができるようになる。 スタックに加えて、16個の大域レジスタ104と、3個の他のレジスタがあ る。大域レジスタ(g0−g15)は、MPU乗除算命令(g0)とIOP11 0用のオペランド記憶装置として、データ記憶に使用される。これらのレジスタ は共用されているので、MPU108及びIOP110はこれらのレジスタを通 して通信することもできる。残っているのは、モード及びステータスビットを含 むモードレジスタ136と、指標レジスタ(s0とr0に加えて)であるxレジ スタ132と、ループカウンタであり且つ浮動小数点演算にも参加するctレジ スタ134とである。プログラミングモデル アメリカ国家規格フォース(ANSフォース)又は、逆ポーランド記法(RP N)として知られている接尾辞表記法を使用するヒューレットパッカード計算機 をよく知っている人にとっては、シュボムMPUのプログラミングはいろんな面 で非常に取り付きやすいだろう。 MPUアーキテクチュアは、命令形式内で規定されるオペランドの数によりク ラス分けできる。代表的な16ビット及び32ビットのCISC及びRISCの MPUは通常2又は3オペランドのアーキテクチュアであるが、より小さなマイ クロプロセッサーは1オペランドのアーキテクチュアである。各命令において、 2又は3オペランドのアーキテクチュアは1つのソースと宛先か、2つのソース と1つの宛先を規定するが、1オペランドのアーキテクチュアは1つのソースだ けを規定し、暗黙の宛先、大抵はアキュムレータを有している。アーキテクチュ アは又通常純ではない。例えば、1オペランドのアーキテクチュアは、レジスタ 間のデータ移動のためソースと宛先両方を規定する2オペランドの命令をしばし ば持っている。 シュボムMPU100はゼロオペランドアーキテクチュアでスタックコンピュ ーターとして知られている。オペランドのソースと宛先はオペランドスタックの トップにあると仮定されており、これは又アキュムレータでもある。図3aを参 照されたい。加算のような演算の場合、オペランドスタック122のトップから 両方のソースオペランドを使い、それらを152に示してあるように加え、結果 をオペランドスタック122のトップに帰し、こうしてオペランドスタック深さ において1つの正味削減効果を出す。 大抵のALU150の演算は同様の挙動を示し、2つのソースオペランドを使 い、1つの結果オペランドをオペランドスタックへ戻す。幾つかのALUの演算 では、1つのソースオペランドを使い、1つの結果オペランドをオペランドスタ ックへ戻す。あるALU及び他の演算でも非スタックレジスタを必要とし、ある 限られた演算ではオペランドスタックを全く使わないものもある。 非ALU演算も又同様である。ロード(メモリー読み出し)ではオペランドス タック上か指定されたレジスタか何れかにあるアドレスを使用する。記憶(メモ リー書き込み)ではオペランドスタック上かレジスタか何れかにあるアドレスを 使用し、オペランドスタックからのデータを使用する。データ移動動作ではデー タをレジスタからオペランドスタックにプッシュするか、又はデータをスタック からレジスタへポップする。 一旦データがオペランドスタック上に来れば、そこのあるデータを必要とする いかなる命令にも利用できる。例えば加算の結果は次の命令で要求されるまでは 無制限にスタック上に置いておける。前記表3を参照されたい。命令は又、要求 されたときに前の結果にアクセスできるように、データをオペランドスタックの トップの幾つかのセルに再順序づけするのにも利用できる。スタックエレメント を後で再順序づけするのを最小化或いは省略するために、データをオペランドス タックから取り除いたり、局所又は大域レジスタに置くこともできる。データを オペランドスタックからポップし、それを局所レジスタスタックにプッシュして 再スタックすることもできる。 計算は、最も深くネストされた計算を第1に実行し、中間結果をオペランドス タック上に置き、次に中間結果を計算アンネストとして組み合わせることによっ て、通常最も効率的に実行することができる。計算のネスティングが複雑である か、又は中間結果を、他のデータがオペランドスタックに追加された後、しばら く後で使用する必要があるような場合、中間結果をオペランドスタックから取り 除き大域又は局所レジスタに記憶させることもできる。 大域レジスタは直接使用され、データを無制限に維持する。局所レジスタは局 所レジスタスタックキャッシュ内のレジスタであり、スタックとして、最初に割 り付けられねばならない。割付は、データをオペランドスタックからポップし、 それを局所レジスタスタックに一度に1セルだけプッシュすることによって行う ことができる。これは、一度に、初期化されていないスタックレジスタの1ブロ ックを割り付けすることによって行うこともでき、初期化されていないレジスタ はそれからデータをどの様な順序ででもレジスタに、一度に1セルだけ、ポップ することによって初期化される。割り付けられた局所レジスタは、データをオペ ランドスタックにプッシュし、それを、一度に1セルだけ、局所レジスタスタッ ク外にポップし、不必要なデータをオペランドスタックから捨てることによって 割付解除することができる。替わりに、割り付けられた局所レジスタは、最初に レジスタから必要とされるデータを全てセーブし、次に、一度に、レジスタのブ ロックを割付解除することによって、割付解除することもできる。選択する方法 は、必要なレジスタの数、オペランドスタック上のデータが必要な順序通りであ るか否か、によって決まる。 スタック122及び124の双方にあるレジスタは、スタックのトップに関係 して参照され、それゆえ有効範囲は局所的である。例えば、r0においてアクセ スできたものは、1つのセルが局所レジスタスタック124にプッシュされた後 では、r1としてアクセスでき、新しくプッシュされた値はr0としてアクセス できる。 パラメータは、オペランドスタック122にあるサブルーチンへパスされ、そ こから戻される。この方法で無制限な数のパラメータをパスし、戻すことができ る。無制限な数の局所レジスタ割付を行うこともできる。パラメータ及び割り付 けられた局所レジスタは、サブルーチンとプログラム基本ブロックを超えて、こ のように便利にネストアンネストする。 サブルーチンの復帰アドレスは局所レジスタ124上にプッシュされ、サブル ーチンへの入口にr0として指定され、前のr0はr1として、以下順次繰り上 がって、アクセスできる。データがスタック上にプッシュされ、利用できるレジ スタの空間が一杯になると、必要に応じレジスタはメモリーにスピルする。同様 に、データがスタックから取り除かれレジスタ空間が空になると、必要に応じレ ジスタがメモリーからリフィルされる。このように、プログラムの見方からすれ ば、スタックレジスタは常に利用できることになる。命令セット概観 表4はMPU命令をリストにしたものであり、後出の表34、37はニモニッ クとオプコードをリストにしたものである。全ての命令が、中間データを必要と するものを除き、8ビットで構成されている。このため、各命令フェッチ毎に4 命令(1命令グループ)までを得ることができ、32ビット命令を持った典型的 RISC機に比べメモリー帯域幅要件を低減できる。この特性によって、メモリ ーからの追加の命令フェッチ無しに1つの命令グループ上でループできるように なり(ミクロループ)、更に効率を上げる。命令形式を図6に示す。 ALU演算 殆ど全てのALU演算はオペランドスタック122のトップ、s0,必要なら s1、で行われる。幾つかのオペランドは、g9,ct134又はpcも使う。 唯一のALUステータスビット、キャリィ、だけが維持されモード136で記 憶される。他にALSステータスビットはないので、他の条件演算は全てs0を 浮動でテストすることによって実行される。s0のゼロ/非ゼロ状態を反転する ためにeqzが用いられる。大部分の算術演算はs0のビット31から作り出さ れた結果からのキャリィを修正したものである。pc関係データの参照を行うに はadd pcが利用できる。addはキャリィを変更することなくアドレス算 術を行うのに役に立つ。他の演算は演算の結果の一部としてキャリィを修正して いる。 s0及びs1は共にダブルセルシフトに使用でき、s0は64ビット値のより 上位のセルを含みs1はより下位のセルを含む。シングルセルシフト、ダブルセ ルシフト両方とも、ビットをキャリィとs0のビット31の間で転送する。ダブ ルセルシフトで構成されるシングルセル回転を表現するコードを以下に示す。 全てのALU命令オプコードはエンコードされたフィールドを持っていない8 ビット値としてフォーマットされる。 分岐、スキップ、ループ(表7) br、bz、call、dbr命令は各々可変長である。オプコードの最下位 からの3ビット及びオプコード右側の現在の命令グループ内の全てのビットは相 対分岐オフセットに使用される。図6参照。分岐宛先アドレスは、オフセットの 範囲と宛先で実行されることになる命令の数を最大化するために、セル整列され ている。オフセットは3、11、19又は27ビット長さであり、現在の命令グ ループ内でのオプコードの位置に依る。宛先のアドレスは、分岐オプコードを含 むセルの始まりのアドレスからオフセットしている。オフセットは各々+12/ −16、+4092/−4096、+1048572/−1048576、及び +268435452/−268435456バイトの範囲を持っている。オフ セットのサイズが、分岐が宛先に届くだけ十分でない場合、分岐は、もっとオフ セットビットが使用でき或いはbr[]又はcall[]が使える命令グループに移 されなければならない。 br[]及びcall[]でレジスタ間接分岐が利用できる。これらはs0からの 絶対バイトアドレスを使用する。算出pc相対分岐が要求された際にはadd pc命令が使用できる。 mloop 命令はマイクロループと呼ばれる。指定されれば、条件がテスト され、ctが減少する。終了条件が合わなければ、現在の命令グループの始めで 実行が継続する。マイクロループは、メモリーから命令を再フェッチすることな く短い命令シーケンスを再実行するのに使われる。表10参照。 bzによってゼロで分岐する以外に、他の条件分岐がskip によって行わ れる。これらは、現在の命令グループの実行を終了し、次の命令グループの始め で実行を継続する。これらは付加的な制御の流れ動作を作り出すために、br、 call、dbr、ret(或いは他の命令)と組み合わせることができる。 リテラル(表8) オプコード帯域幅を最大化するために、3つのサイズのリテラルを使うことが できる。4ビット(ニブル)リテラル用の、−7から+8の範囲を持ったデータ はオプコードの4つの最下位ビットでエンコードされ、数は、+8としてデコー トされる2進値1000により、2の補数値としてエンコードされる。8ビット (バイト)リテラル用の、0から255の範囲を持ったデータは、命令グループ 内でのオプコードの位置に関わらず命令グループの最も右のバイトに置かれる。 32ビット(長、又はセル)リテラル用のデータは、命令の流れの中で命令グル ープに続くセルに置かれる。同じ命令グループ内の多重プッシュ1命令は命令グ ループに直接続く連続したセルにアクセスする。図6参照。 ロードと記憶(表9) r0及びxはレジスタ間接アドレス指定及び、事前減分4又は事後増分4でレ ジスタ間接アドレス指定をサポートする。これらのモードによって、メモリー参 照動作が効率的に行えるようになる。コード表示メモリーの移動とフィルの動作 を表10に示す。 レジスタ間接アドレス指定はs0のアドレスでも行うことができる。他のアド レス指定モードはaddaを使って実行することができる。表11に複雑なメモ リー参照動作用のコードを示す。 上記例に示したメモリーアクセスは、セル整列で、メモリーアドレスの2つの 最下位ビットを無視している。メモリーはバイトアドレスにおいてld、b[]で も読むことができ、バイトアドレスにおいてx及びreplbを使って書くこと もできる。バイト動作を参照のこと。 MPUは1レベル通知書き込みを含んでいる。これによって、MPUは通知書 き込みが行われている間も実行し続けることができ、実行時間を十分に減らすこ とができる。メモリーの一貫性は、通知書き込みにMPUバスリクエストを超え て優先バスアクセスを与えることにより維持され、このようにして書き込みが無 限に遅らされることはない。表10のコード例において、ループ実行オーバヘッ ドは通知書き込みを使う場合ゼロである。通知書き込みはmspweをセットす ることにより使用可能になる。 全てのロードと記憶の命令オプコードはエンコードされたフィールドを持って いない8ビット値としてフォーマットされる。 データ移動(表12) レジスタのデータは、最初にレジスタをオペランドスタックにプッシュし、次 にそれを宛先レジスタにポップすることによって移動される。メモリーデータは 同様にして移動される。上記ロードと記憶参照のこと。 gi及びriにアクセスするデータ移動命令用のオプコードは、4つの最下位 ビットにエンコードされたレジスタ番号の付いた8ビット値である。他のデータ 移動命令オプコードは全て、エンコードされたフィールドを持っていない8ビッ ト値としてフォーマットされる。 スタックデータ管理(表13) オペランドスタックデータはスタックのトップから使われ、処理時に通常消費 される。これは、スタックデータを複写、廃棄、再順序づけするための命令の使 用を要求できる。データは、一時的に経路外に置くため、或いはスタックアクセ ス順序を反転するため、或いは直接アクセスのために局所レジスタにおくため、 局所レジスタスタックに移動させることもできる。表10のコード例を参照。 2、3個より以上のスタックデータ管理命令が、与えられたオペランドスタッ クセルにアクセスすることを要求される場合、通常、データを局所又は大域レジ スタに置くことによって性能改善が図れる。しかし、大域レジスタと局所レジス タの供給は限られており、ある点ではメモリーにスピルする。データは、そうす るのが効率的な間だけ、オペランドスタック上に維持されるべきである。一般的 に、プログラムがs2より深いオペランドスタックにあるデータに頻繁にアクセ スすることを要求する場合、そのデータ又は他のもっとアクセスしやすいデータ を直接アドレス指定可能なレジスタに置き、アクセスを単純化すべきである。 局所レジスタスタックを利用するためには、データをオペランドスタックから ポップし局所レジスタスタック上にプッシュするか、局所レジスタスタックから ポップしてオペランドスタック上にプッシュすることもできる。このメカニズム は、結果オペランドスタックオーダーが受け入れられるときには、あと2,3の セルを移動させるのに便利である。もっと多くのデータを移動させる場合、或い はオペランドスタック上のデータ順序が要求通りでない場合、lframeを使 って必要な局所レジスタを割付、割付解除でき、そうすればレジスタは直接書き 込み呼び出しできるようになる。lframeを使えば、スタックをバストラン ザクションの連続シーケンスとしてスピルすることによって、必要とされる局所 レジスタスタック空間を使用可能にでき、こうすれば、DRAMに書き込む際に 必要とされるRASサイクルの数を最小化することになる。 sframe命令はlframeと同様に挙動し、基本的にはオペランドスタ ックから数多くのセルを廃棄するのに使用される。 全てのスタックデータ管理命令オプコードはエンコードされたフィールドを持 っていない8ビット値としてフォーマットされる。 スタックキャッシュ管理(表14) 初期化及び可能性があるとすれば関連するトラップを経由してのオーバーフロ ーとアンダーフローのモニタリング以外では、スタックキャッシュはアクティブ な管理を必要としない。キャッシュを効率的に処理するために幾つかの命令が設 けられていて、コンテクストの切替、ステータスのチェック、スピルとリフィル のスケジューリングを行う。 depth命令を使ってスタックキャッシュのSRAM部内のセルの数を決 めることができる。この値を使って、現在キャッシュにある値を廃棄し、_ca cheでキャッシュ深さを復元し、或いは全オンチップ及び外部スタック深さを 計算することができる。 cache命令は、データがキャッシュの中にあること、或いはデータのた めの空間がキャッシュの中にあることの何れかを保証するのに使用でき、スピル とリフィルは優先時間に起こることになる。このことにより、キャッシングプロ セスをより以上に制御できるようになり、プログラム実行プロセスの間、より高 次の決定ができるようになる。この方法でスタックのスピルとリフィルをスケジ ューリングすれば、スタックメモリーアクセスのため必要となるRASサイクル を最小化することによって性能を改善することもできる。 frame命令は、スタックのSRAM部のトップで初期化されていないレ ジスタ空間のブロックを割り付け、或いは最早不必要になった際にはそのような レジスタのブロックを廃棄するのに使うことができる。 frame命令は c ache命令同様に、スタックメモリーアクセスのため必要となるRASサイク ルを最小化することによって性能を改善するため、グループスタックのスピルと リフィルをするのに使うことができる。 これ以上のことについては、スタック及びスタックキャッシングを参照された い。 全てのスタックキャッシュ管理命令オプコードは、エンコードされたフィール ドを持っていない8ビット値としてフォーマットされる。 バイト演算(表15) 表16に示すコードを使って、バイトはアドレス指定してメモリーから直接読 み出すことができ、アドレス指定してメモリーに書き込むことができる。 セル内でバイトを処理するのに命令が使用できる。バイトはセルを超えて複写 でき、セル内のバイトはゼロのテストが行え、セルは1バイト左又は右へシフト できる。指定されたバイトのスキャニング、空のバイトのスキャニング、セルサ イズユニットでの空終了ストリングの移動を示すコード例を、表17−19に示 す。 全てのバイト演算命令オプコードはエンコードされたフィールドを持っていな い8ビット値としてフォーマットされる。 浮動小数点数学(表20) 上述した命令は、基本数学関数(+、−、、/)のための効率的な単精度及 び倍精度IEEE浮動小数点ソフトウェアを実施するために、及び浮動小数点ラ イブラリルーチンの開発の援助のために使用される。これらの命令は主として、 普通にプログラムされている場合には実行時が長くなる標準化、標準化解除、指 数演算、丸め、及び例外の数及び状態の検出を遂行する。「浮動小数点数学支援 」を参照されたい。 全ての浮動小数点数学命令演算コードは、エンコードされたフィールドを持た ない8ビット値としてフォーマットされる。 デバッギング機能(表21) これらの各命令は、例外を信号し、プログラムのデバッギングを助けるために アプリケーションにより供給された実行・監視プログラムをトラップする。「デ バッギング支援」を参照されたい。 両デバッギング命令演算コードは、エンコードされたフィールドを持たない8 ビット値としてフォーマットされる。 オンチップ資源(表22) これらの命令によって、オンチップ周辺装置、状態レジスタ、及び構成レジス タへアクセスすることができる。全てのレジスタへは、ldo[]及び sto[]命令を 用いてアクセスすることができる。最初の6つのレジスタは各々8ビットを含み 、これらは ldo.i[]及び sto.i[]を用いてアドレス可能なビットでもある。「オ ンチップ資源レジスタ」を参照されたい。 全てのオンチップ資源命令演算コードは、エンコードされたフィールドを持た ない8ビット値としてフォーマットされる。 雑(表23) 割込み禁止及び割込み可能化命令は、単なるシステム制御命令である。これら は、割込みをより効率的にするために与えられる。他のシステム制御機能は、モ ード内の、またはオンチップ資源レジスタ内のビットをセットまたはクリアする ことによって遂行される。分割命令は 32 ビット値を、それぞれが元の値の 16 ビットを含む2つのセルに分離する。 全ての雑命令演算コードは、エンコードされたフィールドを持たない8ビット 値としてフォーマットされる。スタック及びスタックキャッシュ スタックキャッシュは、プログラムされた、または例外文脈切換え(呼出しサ ブルーチン実行及びトラップまたは割込みサービシングのような)中のレジスタ の割当て及び保存に必要なオーバヘッドを最小にすることによって、スタックレ ジスタ資源の使用を最適化する。 ローカルレジスタスタック124(図3)は、普通の後入れ先出し待ち行列と して挙動するようにアドレスされるオンチップSRAMアレイからなっている。 ローカルレジスタr0 −r15はスタックの現在のトップに対して内部的にアドレ スされる。レジスタr0 −r14は個々にアドレス可能であり、常に次々に割当て られ、満たされる。もしキャッシュ内にないあるレジスタがアクセスされれば、 次のデータセットを確保するために、より低い順序の全てのレジスタが読み込ま れよう。 オペランドスタック122は同じように構成されているが、ALUに入力を供 給するために、SRAMスタックキャッシュアレイの前に2つのレジスタが追加 されている。これらのレジスタはs0 及びs1 で示され、SRAMアレイはs2 −s17で示されている。レジスタs0 、s1 、及びswだけは個々にアドレス可 能であるが、それ以外は、オペランドスタックはローカルレジスタスタックに似 た挙動をする。SRAMアレイs2 −s17は「空」になることができる(以下に 説明する)が、s0 及びs1 は常にデータを含むものと考えられる。 スタックキャッシュは、暗示スタックメモリ演算を発生させることが要求され る前に、常に現演算を実行して完了させることができるように設計されている。 どの命令も(スタック管理命令を除く)、何れかのスタックから1つより多くの セルを明示的にプッシュしたり、または明示的にポップしたりしない。従って、 実行を完了できるようにするために、スタックキャッシュ論理は、命令実行の前 に、常に各スタックキャッシュ内の1つまたはそれ以上のセルが一杯であり、1 つまたはそれ以上のセルが空であるようにする(後述するように、電源投入直後 を除く)。もし、ある命令を実行した後に、それが何れのスタックの場合でもな ければ、対応するスタックキャッシュは自動的にメモリへあふれ出るか、または メモリから再充填されて、次の命令を実行できるようになる前にこの状態に到達 する。同様に、スタックキャッシュ深さを明示的に変化させる命令、 cache 、 frame 、pop sa、及び pop la が実行されて完了し、次いで上述した状態が存 在するようにされる。 以上のようにある命令の実行によってr15及びs17を満たすことはできるが、 それらは次の命令が実行される前にあふれ出る。同様に、r0 及びs2 はある命 令の実行によって空にすることはできるが、それらは次の命令が実行される前に 充填される。 スタックは任意の深さであることができる。スタックがあふれ出ると、データ はスタックポインタ内のアドレスに書き込まれ、次いでスタックポインタが4だ けデクレメントされる(ポストデクレメンテッド・スタックポインタ)。反対に スッタックが再充填されると、ポインタは4つだけインクリメントされ、次いで データがメモリから読み出される(プレインクリメンテッド・スタックポインタ )。オペランドスタックのためのスタックポインタは sa であり、ローカルレジ スタスタックのためのスタックポインタは la である。 スタックは動的に割当てられるメモリ領域であるから、メモリ領域がオーバフ ローまたはアンダーフローしないようにある量の計画または管理が必要である。 代替として、スタックメモリは、スタック・ページ例外を使用して動的に割当て または監視することができる。スタック・ページ例外 スタック・ページ例外は、何れかのスタックキャッシュメモリが何れかの 102 4 バイトメモリページの境界付近にアクセスすると発生し、オーバフロー及びア ンダーフロー保護、及びスタックメモリ管理を可能にする。ページ境界領域のマ ージン付近のスタック・ページ例外を防ぐために、一旦境界領域がアクセスされ て対応するスタック・ページ例外が信号されると、スタックポインタは別のスタ ック・ページ例外が信号される前にそのスタックページの中央領域へ移動しなけ ればならない。図5を参照されたい。 スタック・ページ例外は、現スタックページの縁に到達した時にスタックメモ リページを再割当てするか、または再位置付けすることを可能にすることによっ てスタックメモリを管理可能にする。スタックページの境界領域は、 cache ま たは frame 命令でさえも実行して完了させることを可能ならしめ、対応するス タックキャッシュをメモリに対して空にすることができる各ページの端から探知 された 32 のセルである。スタック・ページ例外を使用するには、所与の時点に 2KBだけのアドレス可能なメモリ、即ち現スタックページ及び最も新しく侵害 された境界付近のページを各スタックに割振ることが必要である。 各スタックは、スタックページオーバフロー及びスタックページアンダーフロ ー例外を支援する。これらの例外状態は、命令実行モードを実行する間の対応す るスタックあふれ出し、または再充填がローカルスタックオーバフロー、ローカ ルスタックアンダーフロー、オペランドスタックオーバフロー、及びオペランド スタックアンダーフローを信号しているビット、及び対応するトラップ可能化ビ ットを含んでいる時に、アクセスされるメモリアドレスに対して試験される。 スタックページ例外は、全てのトラップの最高優先順位を有している。これは 、スタックページ境界がその実行中に侵されないように、スタックトラップハン ドラコードのスタック効果を注意深く考えることが重要であることを暗示してい る。 スタック初期化(表24) CPUがリセットした後に、両MPUスタックは残余の対応スタックポインタ がロードされるまで初期化されていないものと見做すべきであり、これはMPU によって遂行される第1の動作の1つであるべきである。 リセット後、スタックは異常に空である。即ち、r0 及びs2 は割当てられて おらず、対応するスタックへの最初のプッシュ動作で、またはそのスタックポイ ンタ初期化時に割当てられる。しかしながら、プッシュされたセルをポップする と、スタックは空にされて再び充填することが必要になる。従って、最初にプッ シュされたセルがそのスタック上に残されるべきであるか、またはそのスタック が更に使用される前に対応するスタックポインタを初期化すべきである。スタック深さ 各スタック上のセルの合計数は、メモリへあふれ出たセルの数と、オンチップ キャッシュ内のセルの数とを加算することによって容易に決定できる。表25を 参照されたい。 スタックフラッシュ及び回復 文脈切換えを遂行する時、スタックキャッシュに新しい文脈を再ロードできる ようにするために、スタックキャッシュ内のデータをメモリへあふれ出させる必 要がある。常にオンチップに維持されているスタックキャッシュの部分r0 及び s0 −s2 をスタックキャッシュのあふれ可能な領域へ押しやり、それらをメモ リへ書き込むことができるように注意を払わなければならない。キャッシュをフ ララッシュし、回復するためのコード例を、それぞれ表26及び27に示す。 例外及びトラッピング 例外処理は精密であり、低メモリ内の実行可能コードベクトルにトラッピング することによって管理される。各32ビットベクトル位置は、4命令までを含む ことができる。これにより、これらの4命令内の、またはより長いトラップルー チンへの分岐によって、トラップにサービスすることができる。トラップは、適 切な処理を行うために優先順位付けされ、入れ子にされる( nested )。トラップ 名及び実行可能なベクトル位置が図4に示されている。 例外は、例外を生じさせるための定義された状態が存在する場合に信号される と言われる。もしトラップが可能にされれば、トラップが処理される。トラップ はトラップ論理によって処理され、呼出しサブルーチンに関連する実行可能なコ ードベクトルをアドレスさせる。多重トラップが同時に発生する場合には、最低 優先順位のトラップが先ず処理されるが、実行可能なコードベクトルが実行され る前に次に高い優先順位のトラップが処理される等々、最高優先順位のトラップ が処理されるまで続く。次いで、最高優先順位のトラップの実行可能なコードベ クトルが実行される。各トラップハンドラが retを実行する度に、入れ子にされ た実行可能なベクトルの復帰アドレスがアンネスト( unnest )し、優先順位付け られたトラップ実行を発生する。 トラップ処理及びネスティング中は、ある命令が命令グループの1つをバイト で実行し始めるまで、割込みは不能にされる。割込みは、INTCレジスタ内に それらの要求状態が維持されているので、トラップを用いて入れ子にする必要は ない。 表29は各トラップの優先順位をリストしたものである。処理されたデータ、 または実行された命令によって明示的に発生することができるトラップは、表3 0にリストされている。システムの現在の状態によって、表30と同時に発生す ることができるトラップは表28にリストされている。 浮動小数点数学支援 MPUは単精度( 32 ビット)及び倍精度( 64 ビット)IEEE浮動小数点 数学ソフトウェアを支援する。浮動小数点ユニット及びそれが要求するシリコン 領域ではなく、MPUは、基本浮動小数点数学演算をプログラムする時に要求さ れる時間を消費する殆どの演算を遂行する命令を含んでいる。コアとなる加算、 減算、乗算、除算機能を与えるために、存在整数数学演算が使用される。更に、 トップの1つまたは2つの(精度に依存する)スタックセルへの3ビット拡張を 使用して丸めを援助し、所要の精度及び例外信号動作を与える。データフォーマット 単精度及び倍精度IEEEフォーマットはMPUの透視( perspective )から 支援されるが、一時に 32 ビット値しか操作されない(ダブルシフティングを除 く)。図6aを参照されたい。MPU命令は図示された標準化データフォーマッ トを直接的に支援する。関係付けられた標準化解除フォーマットは testexpによ って検出され、ソフトウェアで完全に支援可能である。状態及び制御ビット モードレジスタ136は、浮動小数点精度、丸めモード、例外信号、及びトラ ップ可能化をセットする 13 ビットを含んでいる。図7を参照されたい。 GRS拡張ビット IEEE標準によって要求される精度を維持するために、IEEEフォーマッ ト数内に保持されるよりも多くのシグニフィカンド( significand )ビットが必 要である。これらの特別ビットは、シグニフィカンドの右からシフトしたビット を保持するために使用される。これらは、付加的な精度を維持し、処理中に精度 が失われたか否かを決定し、そして丸めを行うべきか否かを決定するために使用 される。3ビットはモードで現れるので、これらを保存し、回復し、そして操作 することができる。個々には、これらのビットはガードビット、丸めビット、及 びスティッキービットと名付けられている。幾つかの命令がこれらのビットを操 作、または変更する。表31を参照されたい。 denorm及び normrがビットをGRS拡張内にシフトさせる時、ビットの出所は 常にシグニフィカンドの最下位ビットである。単精度モードでは、GRS拡張ビ ットはs0 から取出され、倍精度モードではビットはs1 から取出される。普通 の右シフトの場合、GRS拡張ビットは常に、シフトの最下位ビット(即ち、も し単シフトならばs0 、もし倍シフトならばs1 )から到来する。命令 normlは ビットをGRS拡張からシフトさせるだけの命令であり、ビットは単精度モード ではs0 内に、倍精度モードではs1 内にシフトする。普通の左シフトは常に0 をシフトさせ、GRS拡張ビットに影響は与えない。 丸め GRS拡張は、小数点結果を発生させながら、3つの特別精度ビットを維持す る。これらのビットは、宛て先フォーマットに適合させるために、結果をどのよ うに丸めるかを決定するのに使用される。もし誰かがビットを、あたかもそれら が2進小数点の右にあるものと見れば、ガードビットは半分の位置値を有し、丸 めビットは 1/4の位置値を有し、そしてスティッキービットは 1/8の位置値を有 している。fp round modeによって選択された丸め操作は、GRS拡張ビット及 び ct の符号ビットを使用してどのように丸めを行うべきかを決定する。もしガ ードビットが0であれば、GRS拡張の値は半分未満である。もしガードビット が1であれば、GRS拡張の値は半分またはそれ以上である。GRS拡張ビット は宛て先フォーマットの一部ではないから、操作が完了した時にはそれらは破棄 される。この情報は、命令 rndの動作のための基礎である。 rnd による殆どの丸め調整は、「何もしない」か、または「s0 をインクリメ ントさせる」ことを含む。これが切上げなのか、または切捨てなのかは ct 内の loating-int結果の符号に依存する。もしGRS拡張ビットが0でなければ「何 もしない」は、もし結果が正ならば「切捨て」の効果を有し、もし結果が負なら ば「切上げ」の効果を有している。同様に、「結果をインクリメントする」は、 もし結果が正ならば「切上げ」の効果を有し、もし結果が負ならば「切捨て」の 効果を有している。もしGRS拡張ビットが0であれば、結果は正しかったので あり、丸めを必要としない。表32を参照されたい。 実際には、シグニフィカンド(または倍精度シグニフィカンドの低位セル)は s0 内にあり、符号及び指数は ct 内にあり、もし遂行された rndからs0 のビ ット 31 がインクリメントされればキャリーがセットされ、そうでなければキャ リーはクリアされる。これにより、キャリーは倍精度シグニフィカンドの上位セ ル内に伝播できるようになる。例外 処理をスピードアップするために、浮動小数点命令によって検出された例外状 態は例外信号ビットをモードで、及びもし可能化されていれば、トラップをセッ トする。以下のトラップが支援される。 * 指数 testexp から信号される * アンダーフロー norml、addexp、subexp から信号される * オーバフロー normr、addexp、subexp から信号される * 標準化 denorm 、norml 、normr から信号される * 丸め済み rnd から信号される。 例外は、命令が完了した時に優先順位付けされ、同時に発生する他の何れかの システム例外またはトラップと共に処理される。「例外及びトラッピング」を参 照されたい。 * 指数トラップ:特別例指数を検出する。もし試験された指数が全て0である か、全て1であれば、キャリーがセットされ、例外が信号される。キャリーをセ ットすることによって、トラップを処理せずに結果を試験することができる。 * アンダーフロートラップ:計算またはシフト中のデクレメントによって小さ くなり過ぎた指数を検出する。 * オーバフロートラップ:計算またはシフト中のインクリメントによって大き くなり過ぎた指数を検出する。 * 例外標準化:GRS拡張へのシフトによって失われたビットを検出する。例 外状態は命令実行の終わりに試験され、もしGRS拡張内の何れかのビットがセ ットされていれば信号される。この時点で試験することによって、後刻浮動小数 点命令によって試験させ、信号させるためにGRS拡張をセットするのに使用さ れる正常の右シフトが可能になる。 * 丸められた例外:丸めによるs0 のビット0の変化を検出する。 ハードウェアデバッギング支援 MPU 100は、中断点命令 bkpt 、及びシングルステップ命令 step の両 方を含んでいる。命令 bkpt は、中断点トラップを実行して bkpt 演算コードの アドレスをトラップハンドラへ供給する。これにより、プロセッサは中断点まで その全速で実行することが可能になり、中断点以降はプログラム制御された手法 で実行する。 step は、供給されたアドレスにおいて命令を実行し、次いでシン グルステップトラップを実行する。シングルステップトラップは命令毎の実行を 効率的に監視する。中断点 命令 bkpt は、復帰アドレスが bkpt 演算コードのアドレスであることを除い て、アドレス0×134 への呼出しサブルーチンと類似の動作を遂行する。命令 p ush.1 に起因して、呼出しサブルーチンのアドレスは常にその復帰アドレスから は決定することができないので、この挙動が必要なのである。 一般に、 bkpt はデバッギングについての関心点におけるアプリケーション内 の命令を一時的に置換するために使用される。 bkpt のためのトラップハンドラ は、典型的には、元の命令を回復し、ユーザに対して情報を表示し、そしてコマ ンドを待機する。もしくは、トラップハンドラは、終了状態(この特定の中断点 のレジスタ値または実行数のような)を調べ、この状態に合致するまでアプリケ ーションの実行を継続することによって、条件付き中断点を実現することができ る。 bkpt が step に優る点は、アプリケーションが中断点間を全速で実行する ことである。シングルステップ 命令 step は、一時に1つの命令をアプリケーションプログラムに実行させる ために使用される。これは、復帰アドレスにおける1つの命令の実行の後にアド レス0×138 が発生することを除いて、サブルーチンからの復帰に極めて似た動 作である。トラップからの復帰アドレスは、次の命令のアドレスである。stepの ためのトラップハンドラは、典型的には、ユーザに対して情報を表示し、コマン ドを待機する。または代わりに、トラップハンドラは、終了状態(この特定の位 置のレジスタ値または実行数のような)を調べ、この状態に合致するまでアプリ ケーションの実行を継続することができる。 stepは、他の例外トラップと同様に処理され、優先順位付けされる。これは、 全てのトラップが step トラップの前に実行することを意味している。その結果 は、 step が他のトラップハンドラのプログラムコードを通して直接シングルス テップできないことである。命令 step は、通常はオペレーティングシステムレ ベルより下であると考えられているので、スタックページトラップのようなオペ レーティングシステム機能はその介入なしに実行しなければならない。 より高い優先順位のトラップハンドラは、ソフトウェアにおいてそれらに再優 先順位付けすることによって、シングルステップさせることができる。対応する 実行可能なトラップベクトルからのより高い優先順位のトラップハンドラを直接 実行するのではなく、ベクトルは復帰スタック上の復帰アドレスを再配列するコ ードへ分岐してトラップハンドラの結果的な実行シーケンスを変化させる。種々 の準備(ハウスキーピング)タスクも遂行しなければならず、種々のハンドラは スタックメモリ領域境界が再優先順位付けされたハンドラによって侵されないよ うにしなければならない。 仮想メモリ支援 MPU 100は、論理メモリアドレスを物理メモリアドレスに翻訳する外部 マッピング論理の使用を通して仮想メモリを支援する。MPU RASメモリサ イクル中にCPUから供給される論理行アドレスは、外部SRAMによって物理 行アドレス及びメモリページ故障ビットに翻訳される。メモリページ故障ビット はメモリサイクル中にサンプルされ、メモリ内の翻訳されたページが有効か、無 効かを決定する。DRAMメモリサイクルの通常のRASプリチェンジ部分には 、メモリのサイクル時間オーバヘッドを要せずに論理ページを物理ページにマッ プするための充分な時間が存在する。 無効メモリページ指示は、メモリ故障例外を信号させ、もし可能化されていれ ばトラップに故障状態へのサービスを実行させる。通知された書き込み故障はト ラップルーチン内で完了し、他の型の故障動作はトラップルーチンから復帰させ てそれらを再実行することによって完了する。故障が読み出し動作からなのか、 または書き込み動作からなのかは mflt write によって指示される。故障アド レス及びデータ(もし書き込みであれば)は mfltaddr 及び mfltdta内に格納さ れる。メモリ故障トラップは mflt trap enによって可能化される。表34のコ ード例を参照されたい。 ビデオRAM支援 ビデオRAM(VRAM)は、DRAMアレイへの直列アクセスを提供する第 2のポートを有するDRAMである。これによって、DRAMアレイへの通常の MPUアクセスを行いながら、ビデオデータをメモリから直列にクロックアウト して表示させることができる。DRAMアレイのアクセス競争を防ぐために、M PUは周期的に読み出し転送要求を発行して選択されたDRAMの行を直列転送 バッファへコピーする。読み出し転送同期問題を排除するために、多くのVRA Mは分割転送バッファを有しており、それらによってMPUの読み出し転送動作 のタイミングの柔軟性を大きくすることを可能にしている。MPUは、時間RA Sバーが立ち下がっている間のVRAMのOEバー、WEバー、及びDSF(デ バイス特別機能)の状態についてコマンドをエンコードすることによって、VR AMに命令して読み出し転送、または分割読み出し転送を遂行させる。これらの 動作は、vramを書き込み、所望のVRAMメモリアドレスに適切な読み出し または書き込みを遂行することによってエンコードされる。 若干のVRAMは、ライン充填、ブロック充填、及び bit-blts のようなより 進歩した動作を有しており、これらはWEバー、OEバー、DSF、RASバー 、及びCASバーの他の組合せと共にエンコードされている。動作及びコマンド の基本セットは製造者の間では共通であるが、より進歩した機能のためのコマン ドは変化する。MPUは、考え得るエンコーディングの 32 の全ての組合せを支 援する。 モードレジスタ モードは、MPUの状態及び実行オプションを指示するいろいろなビットを含 んでいる。前述したものを除いて、全てのビットは書き込み可能である。レジス タを図7に示す。 mflt write メモリ故障が信号された後に、メモリ書き込みによって故障が発生したことを 指示する。 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 ビット)フォ ーマットのスタック値を操作する。もしセットされていれば浮動小数点命令はI EEE倍精度( 64 ビット)フォーマットのスタック値を操作する。 MPUリセット リセットの後に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)フォースコア動作は、Sh Boom 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 ビットセル内に配置 することができる他の何等かの型の値であることができる。 addr アドレス byte 文字またはバイト(上側 24 ビット0) r 実数(浮動小数点数) flag 真/偽フラグ(非0=真) n 整数または 32 任意ビット other text 整数または 32 任意ビット ANSフォースは、他のオペランド型及び1スタックセルより多くを占有するオ ペランド(ここでは、これらは使用されない)を定義している。 典型的には、全てのスタック動作は表記法によって記述され、テキスト内に明 示的に記述されることはないことに注目されたい。もし複数の考え得る成果が存 在すれば、それらの成果オプションは分離したライン上にあり、個々の場合とし て考えるべきである。もし他の領域またはメモリ変数が変更されれば、その効果 はテキスト内にドキュメントされる。 スタックダイヤグラムライン上には、キャリーに対する効果(もしあれば)、 並びに右マージン内の演算コード及び実行時間が指示されている。mを伴うタイ ミングは、指定された所要メモリサイクルの数を指示している。メモリサイクル のタイミングは、プログラムされたサイクル時間と、RASまたはCASサイク ルの何れが発生しているのかとに依存する。 ニーモニックスタックコードに関しては付録Aを参照されたい。 入出力プロセッサ 入出力プロセッサ(IOP)110(図8)は、データをデバイスとメモリと の間で転送し、ダイナミックメモリをリフレッシュし、時間を測定し、ビット入 力及びビット出力を操作し、そしてシステムタイミング機能を遂行するために命 令を実行する専用処理ユニットである。通常、IOPプログラムは時間的決定性 ( temporally deterministic )であるように書かれている。効率的な時間的決定 性の手法で実行する条件付き実行経路を含むプログラムを書くことは困難、また は不可能であり得るから、IOPは計算的な、及び最小意思決定の能力を含んで いない。IOPプログラムは、計算または意思決定を遂行するためにMPU 1 08への割込みを使用して、比較的簡単であるように企図されている。 時間的決定性を実行させるようにするために、IOPはバスアクセス上で絶対 優先権を行使する。バスタイミングは常に決定性でなければならず、ShBoomCP U 100上では待機状態は使用不能でさえある。時間決定論は、IOP実行、 及び時間定めされたIOPイベントの間のバスクロックサイクルを計数すること によって達成される。IOP 110が遅延を実行していない限りバスアクセス は許可され、それによって指定された時間中にMPU及びDMA要求はバスにア クセスすることが可能になる。従って、メモリアクセスが必要な時には、IOP は精密にプログラムされた瞬間に、単にバスを捕らえて所要動作を遂行するだけ である。 MIF 120は、IOP 110がバスを要求した時に、バスが使用可能で あることを保証する。MPU 108及びDMAC 112はMIF 120か らバスを要求し、MTF 120はこれらの要求を優先順位付けして、IOP 110が遅延を実行している間にバスを許可する。MIF 120は、IOP 110が次にバスを要求する前に、どのようなトランザクションも完了させるこ とを保証する。 データを転送する時、IOP 110は転送すべきどのデータも変更しない。 IOP 110は、プログラムされた時間にバストランザクションを発生させる だけである。非同期I/Oチャネル転送を優先順位付けして遂行するDMAC 112とは対比的に、IOP 110は時間同期I/Oチャネル転送を遂行する 。どのようにそれらが開始されるか以外は、2つの型の転送は同一である。使用 IOPプログラムは、拡大的な量の外部論理と、単にシステム設計とを排除す るために使用することができる。更に、タイミングに依存するシステム及びアプ リケーション動作のためにIOP 110を使用することにより、MPUプログ ラムに課せられるタイミング制約を排除または大幅に軽減できることが多い。 例えば、約 150バイトのIOPプログラムが、ビデオディスプレイのためのデ ータ転送及びタイミングを供給する。プログラムは垂直及び水平同期を発生し、 データをDRAMからビデオシフトレジスタまたはパレットへ転送する。更に、 IOPは柔軟性を与える。メモリの種々の領域からのビデオデータは、隣接する フレームバッファを作成するためにそれらのデータを移動させる必要なく、表示 することができる。新しいデータ領域が指定されると、IOP 110が次のビ デオフレームのために実行するプログラムを変化させるために、IOP命令はM PU 108によって書き直される。これが実行されている間も、命令を実行し データを処理するためにMPUは未だにバスにアクセスしており、DMAC 1 12はデータを転送するために未だにバスにアクセスしている。 他の多くのアプリケーションが可能である。IOP 110は、指定された時 間に、データを移動させることを要求するアプリケーション、または発生する他 のイベントのために最良に使用される。例えば、 * CD品質のステレオサウンドを演奏するために、ディジタル化された 16 ビ ットのデータ値を1対のDACへ送る、 * 後刻MPUに処理させるために、指定された時間間隔で入力データからのデ ータをサンプルする、 * LCDディスプレイ上に画像を表示させるために、ディスプレイ及び制御信 号を送る、 * 知的SCSIコントローラのために、同期データブロックを転送する、 * ウェーブテーブル( wave-table )シンセサイザのために、多数チャネルのデ ータをDACへ送る、 * 直列及びXウィンドウビデオ端末、またはPCビデオアクセラレータのため に、ビデオ及びI/Oを制御する、 * プロセス制御環境において時間定めされたイベントを制御する、 * 自動車エンジンのために、点火及び燃料を制御する、または * PCマルチメディア基板を作成するために、上述した幾つかのアプリケーシ ョンを組合せる、 ことが挙げられる。 IOP 110は、バスへのアクセス(時間的決定性実行のために)を指図す るように、しかしMPU 108のスレーブであるように設計されている。IO Pは状態を * IOPがアクセスしたデバイス上の状態変化、 * ある値をグローバルレジスタへロード、 * ビット出力をセット、または * ビット入力を消費、 することによってMPUへ連絡することができる。 MPU 108は、 * IOP命令をメモリ内に再書き込み、 * IOPが使用しているグローバルレジスタを変更、 * ビット入力をクリア、または * IOPをリセット、 することによってTOP 110を制御することができる。 イベントによる制御は、持続的な一定のレートで発生させる必要はない。10 Pは、イベントレートを、1回であろうが、多数回であろうが、一貫して制御し なければならないようなアプリケーションに適切である。前者の例として、10 Pはオーディオデータをメモリから取出してそれをDACへ送り、オーディオク リップが持続する間連続的なレートでサウンドを演奏することができる。後者の 例として、IOP 110はMPUによって自動車エンジンの回転を同期させる ことができる。IOP 110が燃料噴射と点火とを時間定めし、MPUがエン ジンの動作を監視して同期を定常的に変化させる(グローバルレジスタを変化さ せるか、またはIOPプログラムを書き直すことによって)。資源 IOPは、図8に示すように命令デコード及び実行プロセス、及び他のCPU 資源への経路の制御からなる。IOP 110及び関連レジスタは次のものを含 んでいる。 * ビット入力レジスタ ioin :ビット入力は、DMAまたは割込み要求、また は汎用ビット入力として構成されている。図21を参照されたい。 * 割込みペンディングレジスタ ioip :どの割込みが認識されたかを指示する が、優先順位付けされてサービスされるのを待機する。図22を参照されたい。 * ビット出力レジスタ ioout:MPUまたはIOPの何れかによって最後に書 かれたビット。図24を参照されたい。 * IOPリセットレジスタ iopreset :何等かの値を書き込むと、IOPはI OPソフトウェアリセットアドレスにおいて実行を開始する。図46を参照され たい。 * グローバルレジスタg1 乃至g7 :遅延によって使用される値を含む。 * グローバルレジスタg8 乃至g15:ループカウントまたはI/Oチャネル転 送明細を含む。転送明細は、デバイス及びメモリ転送アドレス、及び制御ビット からなる。図12を参照されたい。レジスタ使用(図9) IOP 110はグローバルレジスタg1 乃至g155をMPU 108と共用 し、それらをループカウント、遅延初期化カウント、及び情報転送に使用する。 ループカウント及び遅延カウントは 32 ビットである。ビット 31 −2 の転送ア ドレスは、典型的にはセルをアドレスするが、I/Oチャネル構成に依存してバ イトもアドレスすることができる。ビット1は、転送がメモリ書き込みであるの か、またはメモリ読み出しであるのかを決定し、ビット0は 1024 バイトメモリ ページ境界クロッシングへの割込みを可能にする(後述する「割込み」参照)。 図12を参照されたい。 MPUは何時でも、IOPによって使用されるどのレジスタをも読み出し、ま たは書き込むことができる。もしMPUとIOPとの間にレジスタアクセス競争 が存在すれば、IPOアクセスが完了するまでMPUは遠去けられる。 命令セット 表38は、IOP命令をリストし、表40及び表41はニーモニック及び演算 コードをリストしている。命令実行の詳細は、後述する「命令参照」において説 明する。命令フォーマット 全ての命令は、 32 ビット即値データを必要とする ld 、及びページ相対宛て 先アドレスを必要とする飛越しを除いて、8ビットからなる。8ビット命令を使 用することによって、各命令取出しで4命令(命令グループと呼ぶ)を入手する ことができ、従って、典型的な 32 ビットプロセッサに比してメモリ帯域幅要求 を減少させることができる。この特徴によれば、付加的な命令取出しを行うこと なく命令グループ上をループすることができ(マイクロループ)、効率が更に向 上する。命令フォーマットを図10に示す。飛越し 命令 jump は可変長である。 jump 演算コードは命令グループ内のどの位置に も発生することができる。演算コード内の4つの最下位ビット及びその演算コー ドの右の現命令グループ内の全てのビットは、ページ相対宛て先アドレスのため に使用される。図10を参照されたい。これらの宛て先アドレスは、宛て先アド レスビットの範囲、及び宛て先において実行される命令の数を最大にするように セル整列されている。ページ相対宛て先アドレスは、現命令グループ内の演算コ ードの位置に依存して4、12、20、または 28 ビット長である。これらのビット は、次のIOPpc内の同一セルアドレスビットを置換するために使用される。 次のIOPpcは現命令グループに続くセルアドレスであり、現命令グループ内 の jump に先行する各 ld 命令毎にインクリメントされている。宛て先アドレス ビットは、命令内のビットの数に依存して、現 64 バイトメモリページ内、現4 Kメモリページ内、現1MBメモリページ、または現 256MBメモリページ内の どの位置にも達することができる。もし宛て先アドレスビットが飛越しして宛て 先に到達するのに充分な範囲でなければ、 jump はより多くの宛て先アドレスビ ットが使用可能な命令グループへ移動しなければならない。リテラル 命令 ld は、 40 ビットを必要とする。8ビットが現命令グループ内の演算コ ードのためのものであり、現命令グループに続く 32 ビットがリテラルデータの ためのものである。 ld 演算コードは、命令グループ内のどこにでも発生するこ とができる。命令グループ内の第1の ld のためのデータはメモリ内の命令グル ープの直後に続き、その後の ld のための各データは連続する位置を占める。演 算コード内の4つの最下位ビットは、そのデータの宛て先であるグローバルレジ スタの数を含んでいる。グローバルレジスタ0(g0 )は許容されない。その他 他の全ての命令は8ビットを要求する。殆どは、レジスタまたは演算コードの 3つまたは4つの最下位ビット内にエンコードされたビット数を有している。「 命令参照」を参照されたい。実行タイミング 実行クロックサイクルの計数は、IOPをプログラムするためのキーである。 各命令は、「命令参照」に記述してあるように実行時間を必要とする。一般的に 言えば命令は、実行するための2×クロックサイクル+何等かの遅延または明示 または暗示バストランザクションのための時間を必要とする。バストランザクシ ョン時間は、後述する「プログラマブルメモリインタフェース」、及び後述する 「バス動作」に記載されているようにプログラムされる。 更に、命令グループの実行の間の命令取出しを考慮しなければならない。10 Pには命令先取りは存在しないので、タイミング計算は簡易化される。命令グル ープ内の命令の実行が完了すると、命令取出しが開始される。これには、バス要 求のための2×クロックサイクル+バストランザクション(スロットチェックを 含む)のための時間を必要とする。 時間的決定性実行を保証するために、遅延まはたリフレッシュの実行の後に各 メモリグループへ最初のIOPアクセスが行われると、たとえそれを要求してい なくてもRASサイクルになる。RASサイクルは、他の理由によっても発生す る。表49を参照されたい。従って、関係する主タイミングは、アクセスされた メモリアドレス(RASまたはCASの何れのサイクルが暗示的に要求されてい ようと)、及びメモリグループへの最後のアクセス以降遅延またはリフレッシュ が実行されているか、否かである。典型的なリフレッシュルーチンのコード例を 表39に示す。 アドレス空間、メモリおよびデバイスアドレッシング 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を含むプログ ラムコードを指定するときに、注意をしなければならない。 iooutにおけるビット出力は、outtとoutfを伴うIOP110に よって個々にセットされるか、或いはクリアされることができる。それらは、外 部イベントを作動し、同期パルスを発生する等のために用いることができる。IOPハードウェア及びソフトウェアのリセット ハードウェハのリセット後、IOP110は、MPU108が実行を開始する まえに、アドレスox80000004の実行を始める。その後、IOPはDR AMを初期化するために必要とされるRASサイクルを行い、MPUがシステム を構成することができるように遅れを実行する前に、DRAMのリフレッシュを 維持するためにプログラムループを始めることができる。 一旦MPU108がシステムを構成すると、IOP110は、一般的に、その アプリケーションプログラムコードの実行を開始するように要求される。A31 はセットされ、他のハイアドレスビットがゼロであるので、通常、IOPのパワ ーオンリセットアドレスは、ブートメモリデバイスを選択する。A31をクリア し、従って非ブートメモリにおいて実行を開始するために、ソフトウェアリセッ トは、MPUによって発行されなければならない。テーブル39を参照。ソフト ウェアリセットはA31をクリアする唯一の方法である。このソフトウェアリセ ットは、また他の例に用いられることもでき、IOPが新しいプログラムの実行 を開始するようにする。以下のプロセッサのスタートアップを参照されたい。命令リファレンス 以下のテキストは、IOP命令の各々の記述を含む。機能的な記述に加えて、 実行するのに必要な操作コード(opcode)と2X−クロックサイクルの数は右のマ ージンにある。 ニーモニックコード(mnemonic code)のためのアペンディックスBを参照され たい。 ダイレクトメモリアクセス制御装置 ダイレクトメモリアクセス制御装置(DMAC)112(図11)は、I/O 装置がMPUの介入のないシステムメモリへ、及びメモリからデータを転送する ようにする。DMACは、8つの別々のソースから優先化された8つのI/Oチ ャネルをサポートする。ダイレクトメモリアクセス(DMA)要求は、ioin を介してビット入力から受け取る。DMAおよびMPUバス要求の優先度は、高 い優先要求が低い優先要求を阻止するように固定されるか、あるいは満足されな い高い優先要求が低い優先要求を阻止するのを妨げるように働くかの何れかであ る。 DMAは、セル幅およびバイト幅のメモリの両方にあるセル幅およびバイト幅 のデバイスのためにサポートされる。各I/Oチャネルはデバイスおよびバスタ イミング要件の型式に関してそれぞれ構成されることができる。バイト幅のデバ イスは、1バイトのバイト転送或いは4バイトのバイト伝送デバイスの何れかと して構成されることができる。I/Oチャネルバストランザクションのために要 求される転送は、フライバイ(flybys)であるか、バッファされる。テーブル52 を参照されたい。DMACおよびIOPxfer転送は、それらが如何に初期化 されるかを除いて同じである。DMAC転送は、非同期要求から生じ、一方xf er転送はそれらのプログラムされた時間に生じる。資源 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、misc b:もし、高い優先要求が満たされることができないなら(即ち、利用可能なバ ストランザクションスロットは小さすぎる)、低い優先バス要求がバスヘアクセ スするために競合するのを避けたり、或いはそれを可能にする。図29参照。DMA要求 ioinビットは、対応するiodmaeビットがセットされ、対応するio ieビットがクリアであるとき(iodmaeがセットされると、ioieは無 視されるけれども)、DMA要求資源として構成される。一旦ゼロがioinに 達すると、それはDMAI/Oチャネル転移を要求するために利用可能である。 iodmaeビットをクリアすることによってI/Oチャネル上のDMA動作を 個々にディスエーブルすることは、ioinにおける対応するゼロビットがDM A要求として認識されるのを防ぐが、しかしioinにおける対応するビットの ゼローパーシステンスに影響をあたえない。優先度を与えること DMA要求は他の未決のDMA要求と共に優先度が与えられ、そして、もし、 要求が高い優先度を有しているか、回転する優先シーケンス(以下参照)におけ る次の要求であるなら、その対応するI/Oチャネルはバスを要求するために次 の要求である。DMA要求の優先度を与えることは1つの2X−クロックサイク ルを完成するように要求する。I/Oチャネルバス要求が行われると、MIF1 20は、現在のバストランザクションまで待つ。それは、利用可能なバススロッ トが要求されたI/Oチャネルバストランザクションに対して充分大きいかどう かを決定するために、iopdelayをチェックする。もし、バススロットが 充分大きいなら、バスはI/Oチャネルに許可され、バストランザクションが開 始する。 IOPは、iopdelayがゼロに減少すると、バスを常に占有する。そう でなければ、DMAI/Oチャネルバス要求とMPU108バス要求は、バスに 対して高い優先度を有するDMAI/Oチャネルバス要求と競合する。 もし、fdmapがセットされ、バススロットが小さすぎるなら、DMAI/ Oチャネルはバスを獲得しない。小さくなった利用可能なバススロットに適合す る高い優先度のDMAI/Oチャネル要求はが行われるまで、バストランザクシ ョンは、IOPがバスを占有するまで生じない。IOP110が次に遅れを実行 すると、最も高い優先度DMA要求、或いはDMA要求がないならMPU108 がバス要求プロセスを繰り返す。 もし、fdmapがクリアで、バススロットが小さすぎるなら、DMAI/O チャネルはバスを獲得しない。次の低い優先バス要求は、最も低い優先度の要求 としてMPU108と共にバスを要求するようにされる。プロセスは、バスが許 可されるか、IOP110がバスを占有するまで、繰り返す。IOP110は次 に遅れを実行するとき、最も高い優先度のDMA要求、或いはもしDMA要求が なければMPU108がバス要求プロセスを繰り返す。メモリ及びデバイスアドレッシング I/Oチャネル伝送のために用いられたアドレスは、T/Oデバイスアドレス およびメモリアドレスの両方を含む。規約によって、最上位のアドレスビット( A31がセットされたとき)は、I/Oデバイスアドレスを選択し、一方最下位 のアドレスビットは伝送のためのメモリソース/行き先を選択する。マルチサイ クル転送動作(例えば、バイトデバイスとセルメモリ間を転送すること)は、A 31がI/Oデバイスのアドレスデコードの一部であると仮定し、バストランザ クション中に必要とされるI/Oデバイスを選択したり、選択しなかったりする ために、A31をパス/クリアする。以下のI/Oアドレッシング及びI/Oチ ャネル転送を参照されたい。 1024バイトメモリページの境界は、I/Oチャネル転送に対して特別な意 味を有している。各I/Oチャネルバストランザクションが完了すると、全体の レジスタにおけるメモリアドレスのビット15−2が増加される。新しいアドレ スは、1024バイトメモリページの最後のロケーションが転送された(ビット 9−2がいまゼロであることを検出することによって)か否かを決定するために 評価される。1024バイトメモリページの最後のロケーションが丁度転送され たとき、MPU割り込みは要求され得るか、DMAはディスエーブルされること ができる。以下の割り込みおよびDMAI/Oチャネル転送の終了を参照された い。割り込み I/Oチャネル転送が1024バイトメモリページの最後のロケーションをア クセスした後、MPU108は、要求されることができる。要求された割り込み は、I/Oチャネル数と同じであり、そしてもし、割り込みがそのチャネル上で イネーブルされるなら、生じる。(即ちもし、対応する全体のレジスタのビット ゼロがセットされるなら)。以下の図12および割り込みコントローラーを参照 されたい。これによって、例えば、MPUは、転送が完了したこを知らされる( 転送メモリ領域の最後を1024バイトのメモリページに関連することによって )か、あるいは長い転送中にMPUに進行を知らせる。 サービスされるべき割り込みに対して、MPU108は、ISRを実行するた めに充分な時間バスを得なければならない。もし、IOP110はディレイを実 行しないか、連続的なDMA転送が生じるなら、MPUはバスを得ることができ ない。 バストランザクション型 I/Oデバイスで実行されるバストランザクションの型は、含まれるメモリグ ループがセル幅かバイト幅であるかに依存し、またデバイスが1バイトのバイト 転送、4バイトのバイト転送或いは1セルのセル転送デバイスであるかに依存す る。以下のI/Oチャネル転送を参照されたい。デバイスアクセスタイミング I/Oチャネル転送中にアクセルされたI/Oデバイスは、プログラムされた バスサイクルの終わりによって転送を完了しなければならない。待ち状態は利用 できない。I/Oデバイスは、一般にメモリより長いアクセス時間を有している ので、I/Oチャネルバスサイクル中にアクセルされたメモリグループに対して プログラムされたバスタイミングはmgXebtにおける対応する値に対してi oXebtを置き換えることによって変更される。ioXebtは、I/Oデバ イスに対して、および転送に含まれるあらゆるメモリグループに対して適切でな ければならない。以下のプログラム可能なメモリインターフェースを参照された い。最大のバンド幅の転送 ioinに対する外部の入力ソースがINバー〔7:0〕であるとき、最大の バンド幅,バックツーバックDMA転送が可能である。これを達成するために、 DMAバストランザクションの終わりに、内部回路は、INバー〔7:0〕上で 直接DMA要求ビットをチェックするあめに、入力サンプリング回路をバイパス する;もし、信号がローで、高い優先度の要求が未解決であれば、他のDMAバ ス要求は、通常のサンプリングと優先度を与えるディレイなく直ちに生じる。こ れは、外部のDMAハードウェアが、ビットがこの時に有効であることを保証す る。図76,78、ページ192を参照されたい。もし、残りのバススロットが 充分大きいならば、DMAバス要求は許可され、転送は直ちに開始する。バック ツーバックDMAバストランザクションを終了するために、DMA要求入力は、 現在のバストランザクションの終わり前にハイにならなければならないか、対応 するDMAイネーブルビットはクリアされなければならない。以下、終了するD MAI/Oチャネル転送を参照されたい。最大の可能な転送速度は2つの2X− クロックサイクル毎に4バイトである。例えば、50−MHz 1Xクロックで 、最大の転送速度は200MB/秒である。終了DMAI/Oチャネル転送 DMAI/OチャネルバストランザクションはI/Oチャネル上に生じ、一方 DMAはイネーブルされたままであり、DMA要求が受信される。特定された数 のトランザクションにDMA転送を制限するために; ・必要とされる最後のデータ転送が1024バイトメモリページにおける最後の 位置を用いて生じるように、DMA転送アドレスをプログラムする、及び ・対応するiodmaexビットをセットする。 上記のトランザクションが完了すると、iodmaeにおけるDMAイネーブル ビットはクリアされる。もし、転送割り込みが対応するI/Oチャネルのための 全体のレジスタにおいてイネーブルされるなら、対応するMPU割り込みも要求 されるであろう。 もし、1024バイトより多くが転送されるべきであるなら、対応する全体の レジスタにおけるI/Oチャネルに対して転送割り込みを可能にする。次から最 後までの1024バイトページのための全体のレジスタをチェックするために、 割り込みサービスルーチンをプログラムし、またその時、対応するiodmae xビットをセットする。クリアされた最後の位置が転送されると、iodmae における対応するビットは、そのチャネル上のDMAをディスエーブルして、ク リアされる。これは、バスがDMA転送中にISRを実行するために、MPUに 利用可能であることを留意されたい。他の能力 DMA112はイベントをカウントするために、また与えられた数に達したと きにMPU108を中断するために用いられることもできる。これを行うために 、イベントは通常のDMAメモリ読み取り要求を生成するように設計され、生じ た転送サイクルは対応する全体のレジスタにおいて“アドレス”を増加する。こ の“アドレス”はイベントカウンターになる。MPUは、如何に多くのイベント が生じたかを決めるために何時でもレジスタを試験することもできる。与えられ た数の後、MPUを中断するために、ビット9−2内の負のカウント値に対して 全体のレジスタをプログラムし、ページ境界の割り込みを可能にする。MPU1 08は、カウンターがゼロに達すると、中断される。 割り込み制御装置(INTC)114(図13)は、多重の外部或いは内部の 要求が整理された、優先化された方法で、MPUのアテンションを得るようにす ることができる。INTCは24のソースから8つの優先化された割り込み要求 まで支持する。割り込みは、ioinを介したビット入力から、I/Oチャネル 転送から、或いはIOP割り込み命令intから受信される。資源 INTC114は幾つかのレジスタと関連する制御ロジックからなる。レジス タのビットゼロに対応する割り込みゼロは最も高い優先度を有し;レジスタのビ ットセブンに対応する割り込みセブンは最も低い優先度を有している。INTC 114および関連レジスタは: ・ビット入力レジスタ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つの ソースのみを指定するが、これは必要ではない。 外部メモリに位置されている割り込みサービスルーチン(ISR)の実行可能 コードベクトルは8つの割り込み要求の各々と関連する。図4参照。与えられた 割り込み要求に対する単一のISR実行可能なコードベクトルはその割り込みに 関する全ての要求に対して用いられる。それは、実行可能なコード、代表的には ISRへの分岐を含むようにプログラムされる。1つより多いソースが可能のと き、現在のソースは、ioin、ioie、iodmaeおよび全体のレジスタ における関連ビットを調べることによって決定されてもよい。割り込み要求サービス 何れかのソースから割り込み要求が起きると、ioipにおける対応ビットが セットされ、割り込み要求は未決割り込みとなる。未決割り込みは、各2X−K クロックサイクルに優先順位が与えられる。モードにおける割り込み enビッ トは現在の全体の割り込み可能状態を保つ。それはMPUイネーブル割り込み命 令でセットされ,ei;ディスエーブルの割り込み命令でクリアされ、di;或 いはモードを変更することによって変えられる。全体的にディエーブルしている 割り込みによって、全ての割り込み要求はioipに達するようにするが、io ipにおける未決割り込みがサービスされるのを防止する。 割り込みが可能にされると、割り込みはグループにおける最初の命令の実行直 前に、命令グループ間でMPUによって認識される。これによって、短い、アト ミックの、割り込むことができない命令シーケンスが割り込み状態をセーブし、 リストアし、且つマニュピレートしなければないことなく容易に書き込まれるこ とを可能にする。スタックアーキテクチャは、割り込みサービスルーチンが明白 にセーブされるようにレジスタを必要とすることなく実行されるようにし、スタ ックキャッシュは、追加のレジスタ資源を利用できるようにするとき、必要とさ れるメモリアクセスを最小にする。 もし、割り込みが全体にイネーブルされ、最も高い優先度のioipビットが 最も高い優先度のioiusビットより高い優先度を有しているなら、最も高い 優先度のioipビットはクリアされ、対応するioiusビットはセットされ 、そしてMPUは命令グループにおける最初の命令の次の実行直前に割り込まれ る。これは、割り込みサービスをネストし、未決の割り込みはサービスの下で現 在の割り込みとなる。ioipビットは割り込みサービスのために考慮さず、一 方、割り込みは全体的にデスエーブルされるか、或いはどのioipビットも最 も高い優先度のioiusビットより高い優先度を有しない。 ソフトウェアがioiusを変更しないなら、サービスの下で現在の割り込み は、現在セットされている最も高い優先度のioiusビットによって表現され る。retiはISRの最後に用いられて、セットされている最も高い優先度の ioiusビットをクリアし、割り込まれたプログラムに戻す。もし、割り込ま れたプログラムが低い優先度の割り込みサービスルーチンであったらな、これは 割り込みサービスを効率的にネストしない。外部割り込み ioinビットは、もし、対応するioieビットがセットされ、対応するi odmaeビットがクリアされているなら、割り込み要求ソースとして構成され る。一旦ゼロがioinに達すると、割り込みを要求するように利用可能である 。割り込み要求は、対応するioinビットをチェックすることによって、ある いは対応するioipビットをセットすることによって、ソフトウェアで強制さ れる。そのioieビットをクリアすることによって割り込み要求を個々にディ スエーブルすることは、ioinにおける対応するゼロビットが割り込み要求と して認識されるのを防止するが、他のソースからの対応する割り込み要求に影響 しない。 割り込み要求が処理される間、そのISRはretiを実行することによって 終了するまで、対応するioinビットはゼロを持続せず、外部入力pinのサ ンプルレベルに従う。特に、与えられた割り込み要求に対して、そのioinビ ットがゼロを持続しない。この効果は、非割り込みビット上でゼロを持続しない 挙動をディスエーブルするために用いられることができる。 波形に対して、図75と図76を参照されたい。 I/Oチャネル転送割り込み もし、ioinビットがDMA要求として構成されるか、あるいはそのI/O チャネルがxferによって使用されるなら、対応する全体のレジスタにビット ゼロを備えた、1024バイトメモリページにおいて最後の位置を含くむ伝送が セット(即ち、転送割り込みが可能にされる)された後に、割り込み要求が生じ る。その要求は、セットされている対応するioipビットによって生じ、対応 するioieビットをクリアすることによってディスエーブルされない。 上記のダイレクトメモリアクセス制御装置、および入力−出力プロセッサを参照 されたい。IOPint割り込み IOPはintを実行することによって8つの利用できる割り込みのいずれか を直接要求することもできる。その要求は、セットされている対応するioip ビットによって生じ、対応するioieビットをクリアすることによってディス エーブルされない。MPUは、IOPが次にdelayを実行するとき、割り込 み要求に応答することができるであろう。ISR処理 割り込み要求がMPUによって認識されると、対応するISRの実行可能なコ ードベクトルへの呼出しが行われ、割り込みは、命令グループのバイト1におい て開始する命令が実行されるまで、阻止される。高い優先度の割り込みによって 割り込まれることなく割り込みサービスをするために: ・ISR実行可能なコードベクトルは4バイトの分岐を一般的に含み、且つ ・割り込みサービスルーチンの第1の命令グループは割り込みを全体的にディス エーブルする。テーブル43におけるコード例を参照されたい。 もし、割り込みがISRの処理中に全体的にイネーブルされたままにされるな ら、高い優先度の割り込みが現在のISRの処理中にMPUに割り込むことがで きる。 これにより、より速いサービス要件を有するデバイスが、多くの優先レベルに あるしばしば起きる割り込みが生じているときでも、迅速にサービスされること ができる。ei,di,或いはpopモードの実行と効果を生じる全体の割り込 み可能状態にある変更間に1つの2Xクロックサイクルの遅れがあることに留意 されたい。次の命令グループのバイトゼロの前に、全体の割り込み可能状態の変 更が効果を生じることを保証するために、状態変更命令は、現在の命令グループ における最後の命令であってはならない。 もし、全体の割り込み状態はISRによって変更されるべきであるなら、前の 全体の割り込み可能状態は、プッシュモード(push mode)でセーブされ、ISR 内のポップモード(pop mode)で再蓄積されるべきである。通常、ポップモード、 retiシーケンスはISRの終わりにある同じ命令グループに置かれ、ret iが実行され、局部のレジスタスタックは、他の割り込みがサービスされる前に ネストしないことを保証する。ISRからのリターンアドレスは、常に命令グル ープのバイトゼロである(この方法のために、割り込みは認識される)ので、他 の割り込みは、retiの実行後に直ちにサービスされることができる。テーブ ル43のコード例を参照されたい。 上述のように、ISR実行可能ベクトルを処理するために、インタラプトリク エストが、同様に、全トラップの実行中にブロックされる。これによって、ソフ トウエアは、例えば、ローカル・レジスタ・スタックオーバフロー例外のサービ スの間のインタラプトによってローカル・レジスタ・スタック上に更にデータが プッシュされるのを阻止する。並行トラップ及びインタラプトリクエストを分解 するとき、インタラプトは最低位のプライオリティを有する。 ビット入力 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リクエストとして認識されるべきものであることを示す。D MAが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つのサンプリングを行うこと。 所与の状態におけるサンプリングを確保するために、入力ビットは、指定のサ ンプリング時間において有効でなければならず、最悪の場合のサンプリングイン ターンバル(上述したように、プログラムしたバスのタイミングと活動に依存す る)の間ローのままに維持されねばならない。波形については、図79、81及 び原文196ページを参照されたい。 pkgio がセットされると、ビット入力は、4個の2X−クロックサイクル毎に INバー〔7:0〕からサンプリングされる。所与の状態におけるサンプリング を確保するために、入力ビットは、4個の2X−クロックサイクルを少し越える 間、有効でなければならない。波形については図78、80及び原文194ペー ジを参照されたい。 全ての非同期的にサンプリングされた信号は、準安定状態に影響を受け易い。 ビット入力のサンプリングによる準安定状態の可能性を減少させるため、サンプ リングされた信号は4個の2X−クロックサイクルの間保持されて、有効な論理 レベルに、それがioinに有用になりCPU内での使用が可能になる前に、分解す る。ioinに達するようにAD〔7:0〕から取られたビット入力についての最悪 の場合のサンプリングの遅延は、バスサイクル時間に依存する。そのioinに達す るようにINバー〔7:0〕からのビット入力についての最悪の場合のサンプリ ングの遅延は、8個の2X−クロックサイクルである。そのサンプリングの遅延 によって、ビット入力コンシューマは、特定の期間についての外部信号変化を検 出しない。 ioinに達するビット入力は、通常、ゼロ持続性がある。すなわち、ioinビット がゼロになると、それは、ビットが“消費”及び解法されあるいはMPUによっ て1が書き込まれるまで、後続のサンプリングのときのビットの状態にかかわら ず、ゼロのままに維持される。ゼロ持続性ビットは、エッジ感知性及びレベル感 知性入力の両方の利点を有し、エッジ感知性入力のノイズ感受性及び非共有性を 無くする。DMAリクエストがサービスされておりioinインタラプトがサービス されている間の一定の状態の下では、ioinビットはゼロ持続性がない。後述のD MA使用法及びインタラプト使用法の各項を参照されたい。INTCの効果は、 ビット上のゼロ持続性をディスエーブルするのに使用できる。後述の汎用ビット の項を参照されたい。DMAの使用法 ioinビットは、その対応のiodmaeビットがセットされるとき、DMAリクエス トソースとして構成される。DMAバスの遷移が開始した後、ioinビットは消費 される。 ioinの外部入力ソースがINバー〔7:0〕であるとき、最大バンド幅のバッ クツーバックDMA転送が可能になる。これを達成するために、内部回路が、サ ンプリング及びゼロ持続回路をバイパスして、通常のサンプリング及びプライオ リティ付けの遅延を伴うことなく、INバー〔7:0〕のDMAリクエストビッ トをDMAバストランザクションの終わりでチェックする。上述の最大バンド幅 転送の項を参照されたい。インタラプトの使用法 ioinビットは、対応のioieビットがセットされ且つ対応のiodmaeビットがクリ アされているとき、インタラプトリクエストソースとして構成される。インタラ プトリクエストが処理されている間において、そのISRがretiを実行すること によって終了するまで、対応のioinビットは、ゼロ持続性でなくなり、外部入力 のサンプリングされたレベルに従う。特に、所与のインタラプトリクエストにつ いて、そのioieビットがセットれてそのioipビット又はioius ビットがセットさ れている間、そのioinビットはゼロ持続性はない。この効果は、非インタラプト ビット(後述)上のゼロ持続特性をディスエーブルするのに使用され得る。 汎用ビット ioinビットが、インタラプトリクエストのために構成されているのでもなく、 DMAリクエストのために構成されているのでもない場合、それはゼロ持続性の 汎用のioinビットである。それとは別に、INTCの効果を使用することによっ て、汎用ioinビットは、ゼロ持続性を持つように構成され得る。このように構成 された任意のビットは、下位側のプライオリティのインタラプトをブロックしな いように、最低位のプライオリティのioinビットとなるべきである。それらは、 それらのioie及びioius ビットをセットすることによて構成される。ioius ビッ トは、ioinビットがゼロを持続するのを阻止し、プライオリティ付けされるのを 阻止し、インタラプトリクエストを生じるのを阻止する。表44のコードの例を 参照されたい。IOP使用法 ioinビットは、tskipzへの入力として使用され得る。このインストラクション は、そのビットを、読み出し、テストし、消費する。このioinビットは、IOP 110によって書き込むことはできない。汎用ioinビットは、代表的には、tski pzのために使用されるが、使用法においてハードウエア上の制限はない。MPU使用法 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のコードの例を参照されたい 。 ゼロ持続性ビット上の“リアルタイム”外部ビット入力読み出しを行うため、 複数の1のビットが、ioinの読み出しの前にioin内の関係するビットへ書き込ま れねばならない。これによって、どんな持続性のゼロも解除され、最も最近に分 解したサンプルがラッチされ、その値が読み出される。ゼロ持続性として構成さ れないビットは、上記の書き込みを必要とはしない。任意の値の読み出しは、2 つの最悪の場合のサンプリングの遅延と同じくらいに古いことを注意されたい。 外部入力上での現在の値を読み出すことは、ioinに達するための値のための2つ の最悪の場合のサンプリング遅延を待つことを必要とする。表46のコードの例 を参照されたい。 ビット出力 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]及びs to.i[ioXout-i]を用いて、個々に読み出されたり書き込まれたりする。 そのビット出力は、IOPによって、outt及びoutfを用いて個々に書き込まれ る。ビット出力はIOPによって読み出されることはできない。 書き込まれるとき、新しい値は、書き込みの完了の直後から使用可能となる。 MPUとIOPの両方が同じ2X−クロックサイクルの間に同じビットを書き込 む場合、書き込まれた任意の1ビットが優勢となることに注意されたい。 ビットは、OUT〔7:0〕では常に使用可能であり、RASバーがハイのと きにはAD〔7:0〕上で使用可能になる。AD〔7:0〕からサンプリングさ れると、外部ハードウエアはRASがローに下がるとビットをラッチするように 要求される。これらのビットは、(定義によって)RASバーサイクルが生じる ときアップデートされるだけであることに注意されたい。出力cna のためにAD 〔7:0〕を使用することは、OUT〔7:0〕を使用することに比較して、P WAエリア及びコストを減少する。波形について図74を参照されたい。 OUT〔7:0〕のドライブ能力はドライバにおけるプログラムされ得る。 プログラマブルメモリインタフェース プログラマブルメモリインタフェース(MIF)120によって、CPUバス インタフェースのタイミングと振る舞いが、最少の外部ロジックによって周辺デ バイスのニーズに適するようにされ、従って、性能を維持しながらシステムコス トを減少させる。いろいろなメモリデバイスが、EPROM、SRAM、DRA M、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参照。 アドレスビットは、パッケージピンカウントを減少するように、ASD〔31 :9〕上でCPUからマルチプレクスされる。DRAMタイプデバイスは、行ア ドレス(上部アドレスビット)及び列アドレス(下部アドレスビット)として参 照される2つのピースにおける全メモリアドレスを収集する。それらに関連する バスサイクルは、行アドレスストローブ(RAS)サイクル及び列アドレススト ローブ(CAS)サイクルとして参照される。メモリの故障の例外とリフレッシ ュとRAS前CAS・VRAMサイクルの場合には、RASサイクルは、RAS バーの活動期間内に包含されて、CASサイクルを含んでいる。従って、RAS サイクルはCASサイクルより長くない。RASサイクルはSRAMタイプデバ イスのオペレーションのためには要求されないけれど、RASサイクルは、後述 する幾つかの理由によって生じ得る。 I/OデバイスはMPUによるアクセスのためのメモリと同様にアドレスされ るけれど、I/Oチャンネルの転送は、I/Oデバイスとメモリロケーションを 同時にアドレス操作することを要求する。これは、使用可能な32アドレスビッ トを、メモリをアドレスする低位アドレスビットとI/Oデバイスをアドレスす る高位アドレスビットとの、2つのエリアに分割することによって達成される。 この分割のロケーションは、インストールされているアドレス可能なメモリ及び I/Oデバイスの量についての適用の要件に依存する。そのエリアは、必要なら ば、I/Oデバイスがデータをメモリの対応エリアとともに転送だけできるとい う副作用をオーバラップすることができる。これらの高位アドレスビットは後述 する。メモリグループ MIF120は、最も最近のRASアドレスビットの各々と独特の構成を維持 しながら、4つのメモリグループまで動作させる。2つまでのアドレスビットが デコードされて、現在のグループを決定する。この機能のためのアドレスビット は、メモリシステムグループ選択マスクレジスタ,msgsm の中にセットされる。 各メモリグループは、デバイスの幅、バスタイミング、及びデバイスサイズ(如 何にアドレスビットがAD〔31:9〕上にマルチプレクスされるかを特定する )について、プログラムされる。グループ選択マスクの下部のアドレスビットは 、代表的には、メモリデバイス又はI/Oデバイスの一部をアドレスするのに使 用されて、グループ選択マスクの上部のビットは、代表的には、I/Oデバイス をアトレスするのに使用される。メモリバンク 各メモリグループは、バスインタフェースモードに依存するように選択された 1又はそれ以上のメモリバンクを持つことができる。1つのメモリグループの全 メモリバンクは、そのグループの構成と最も最近のRASアドレスとを共有して いる。2つのアドレスビットが、現在のメモリバンクを決定するために、デコー ドされる。 単一メモリバンク(SMB)モード(mmb=0)において、 msgsmが、グループ 選択ビットを同じビットになるようにセットする。これによって、1グループに つき1つのバンクにおける4つまでのグループが、計4つのバンク、すなわち、 グループ0、バンク0:グループ1、バンク1:グループ2、バンク2:及びグ ループ3、バンク3となるのを可能にする。MGSxバー/RASxバーは、メ モリデバイスへ直接接続するための信号を送る。図17参照。 マルチメモリバンク(MMB)モード(mmb=1)において、 msgsmがバンク選 択ビットをオーバラップするかどうかに依存して、1つ、2つ、又は4つのバン クが各グループにおいて選択され得る。これによって、組み合せられた全グルー プのための16個のバンクまでが許容され、それ以上のバンクが、追加のバンク 選択ビットを外部ロジックによって定義することによって、デコードされ得る。 現在のメモリバンクを選択するアドレスビットは、(mgXdsが0-0x0eの値となる) DRAMデバイスのための行アドレスビットの直ぐ上部に配置されるか、あるい は、(mgXdsがOx Of の値となる)システム中の全SRAMデバイスのためのms sbs ビットによって特定される。グループ選択されたビットは、(MGSxバー 信号を出力する)MGSxバー/RASxバーを決定し、バンク選択ビットは、 所与のバスサイクルにおいて活性化するCASxバーを決定する。図20参照。 4つのMGSxバー信号を4つのCASxバーによってゲートすることは、16 個までのメモリバンク選択を生成する。図18参照。 2つのモードのハイブリッドは、MMBモードを選択し且つmsgsm ビットをバ ンクビットをオーバラップするように配置することによって、プログラムされ得 る。これによって、CASxストローブがメモリデバイスに直接接続され得るよ りもSRAMタイプデバイスについてより高速のチップ選択としてMGSxを使 用することが可能になり、グループあたりたった1個のNORゲートがそのグル ープのためのRASを生成するのに必要となるだけである。デバイスの要件のプログラミング 各メモリグループは、デバイス幅、デバイスサイズ及びバスタイミングの独特 の構成を用いてプログラムされ得る。CPUがリセットした後、システムが、可 能な最低のバスタイミングを用いて、バイト幅モードで動作し、メモリグループ ゼロ、普通、外部PROMから実行する。後述のプロセッサのスタートアップの 項を参照されたい。通常、PROM内のプログラムコードは、最初に、メモリグ ループのための適正な構成、I/Oデバイス、及び他のシステムの要件を決定す るためのコードを実行する。デバイスサイズ メモリデバイスサイズは、mgdsの16個の設定値の1つにプログラムされる。 最も現在において使用可能な及び間もなく使用可能なDRAMタイプデバイスサ イズが、SRAMタイプのオプションとともに、選択される。デバイスサイズ及 び幅の選択は、AD[31:9]のアドレスビットの配置を決定する。表47及 び表48を参照されたい。 DRAMについては、RAS及びCASサイクルの両方の間において、高位ア ドレスの幾つか又は全部が、RAS及びCASアドレスビットのために使用され るAD上のADにある。これらの高位のアドレスビットは、例えば、I/Oデバ イスを選択するように外部ハードウエアにデコードする等のような、アプリケー ションによって使用され得る。高速CASサイクルを持つ高性能システムには、 RASサイクルが、しばしば、I/Oアドレスデコードのために要求される。し かしながら、外部デコードハードウエアが十分に高速であれば、CASサイクル I/Oが可能になる。 SRAMについては、CASサイクルとともにできるだけ多くのメモリをアド レスできるように、CASアドレスタイムの間に現れる高位のアドレスビットは 31だけである。I/Oデバイスは、ソフトウエア内でデバイスアドレスビット を下位ビットへトランスレートすることによって(これらのトランスレートされ たビットが所望のSRAMメモリアドレス動作を邪魔しないものとする)、まだ なお、CASサイクル上で選択され得る。デバイスアドレスビットは、I/Oア ドレス動作のために外部でデコードされるAD上にSRAMアクセス中に現れる それらのアドレスビットにトランスレートされねばならない。デバイスの幅 メモリデバイスの幅は、8ビット(1バイト)又は32ビット(1セル)のい ずれかであり、miscb のmgXdsを用いてプログラムされる。 表47に示されるように、セル幅のメモリグループは、メモリグループをアド レスするためのA1及びA0を使用しない。セル幅のデバイスへの全てのアクセ スは、セル配列にされ、全セルを転送する。メモリデバイスアドレスラインは、 AD[x:11](xはデバイスサイズによって決定される)上のCPUに取付 けられている。 バイト幅メモリグループへのアクセスは、また、セル配列され、セル内の全4 バイトを、最上位から最下位(すなわち、0、1、2、3)へ、転送する。唯一 の例外は、1バイトのバイト転送デバイスを用いた、I/Oチャンネル転送につ いてであり、その場合には、1つの任意にアドレスされたバイトだけが転送され る。後述のバスオペレーションを参照されたい。 表48に示すように、バイト幅メモリデバイスは、A1及びA0の使用を要求 する。DRAMにとって、RAS及びCASメモリデバイスアドレスビットは、 同じAD上になければならないので、A31を除いてアドレスラインは、内部に おいて左へ2ビット回転される。これによって、DRAMへの接続のためにAD 11上にA0が適正に配置される。しかしながら、このことは、また、I/Oア ドレスデコードに用いる高位アドレスビットが、セル幅メモリグループとは違う バイト幅メモリグループのためのAD上に現れることを意味する。I/Oデバイ スアドレスデコードハードウエアが固定のADに配線されているので、1つのデ バイスにアクセスするのに使用したアドレスビットは、セル幅メモリデバイスを 用いてデータを転送するときとは違って、バイト幅メモリデバイスを用いてデー タを転送するときとは異なる。 プログラマブル・タイミング 各メモリグループに対するRASとCASのサイクルのタイミングは、各I/ Oチャンネルのデータ・セットアップとホールドタイムと同様に、プログラムで きる。パラメータに応じて、タイミング・グラニュラリティ(timing granulari ty)は2X−クロックサイクルもしくは4X−クロックサイクルのいずれかであ る。ある場合にはタイミングは、イベントを一つの4X−クロックサイクルだけ 進めるのに利用できるモディファイアーを有して2X−クロックサイクルで決め られる。 タイミング仕様は3つのピースに分けられる。すなわち、RASプリフイック ス、基本CASサイクル、そしてCAS延長/拡張タイミングである。すべての CASサイクルは、基本的なCASサイクルタイミングと適当なCAS延長/拡 張タイミングである。この組み合わせはメモリサイクルのCAS部分として参照 される。すべてのRASサイクルは、RASプレフイックス+CAS部分から成 る。複数バスサイクルのバスでのトランザクション(transaction)は、間合いを 詰めて繋がっているRASプレフイックスとCAS部分の所要の連続である。読 み取りサイクルもしくは書き込みサイクルだけが個別に分離して実施される。読 み取りー修正書き込みサイクルは実施されない。RASプレフイックス・タイミング メモリグループのためのこのタイミングは対応mgXrabstにおけるフイールドを プログラムすることによって決められる。RASサイクルのRASプレフイック スは進み2Xクロックサイクル、RASプリチャージ(mgbtras)として参照され るRASの不活性部、そしてRASアドレス・ホールドタイム(mgbtrhld)とか ら成る。RASサイクル期間の計算のためmgbtrastはmgbtras とmgbtrhld+1との 集計を含まなければならない。この時間中DRAMRASアドレスビット、ハイ ・アドレスビットそしてビット出力がAD上にある。図37参照。CAS部のタイミング メモリグループのためのこのタイミングは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が mge btsum に加えられ、後者はmgebtdobe と mgebtcaseの集計を含んでいなければな らない。図36と図35を参照。 MPUバス・トランザクションもしくはIOP命令・フェッチのバス・トラン ザクションが起きるとき、メモリグループのためのバスサイクルタイミングは上 に説明したように、mgXebtにおける値を使う。I/Oチャンネルのバス・トラン ザクションが起きるとき、適当なI/OチャンネルのためのioXebtにおける値を mgXebt値の代わりとする。これらのioXebtの値は、I/Oデバイスと同様、その 転送において含まれることになるかもしれないメモリーグループを受け入れるよ うにプログラムされなければならない。DRAMリフレッシ メモリの内容を保持するためメモリデバイス内の各行にDRAMが周期的にア クセスしなければならない。IOP命令リフレッシュにより供給されるRASオ ンリーリフレッシュモードを含む、幾つかのリフレッシュモードを大抵のDRA Mデバイスが支持している。システム内の大抵の限定DRAMに対して十分に短 いインターバルでリフレッシを実施できるようIOPをプログラムできなければ ならない。リフレッシ・サイクル内のタイミングはmsrtg により指示されるメモ リーグループのRASサイクルタイミングを利用し、それはシステム内の最も遅 いDRAMのリフレッシュサイクルに対して十分長くなければならない。各メモ リグループに対するリフレッシュは個別にイネーブルされたり、ディスエーブル される。図28参照。 msraは各リフレッシュサイクル中使用されるデータを含んでいる。リフレッシ ュ・サイクルが完了した後リフレッシュはmsrra 内の14ビットの行アドレスを インクレメントする。msra31とmsrha におけるアドレスビットは通常零である が、その零値がリフレッシュ・サイクル中他のシステムのハードウエアと干渉す るのであれば書き込むことができる。ビデオRAM支持 特殊なVRAM動作モードはvramの使用により支持される。図27と表35と を参照。多くのVRAMモードがRASサイクルを使ってVRAMデバイスに動 作状態を設定する。こうして、予期されないRASサイクルが望ましくない結果 を生じる。 リフレッシュ・サイクルは予期されないRASサイクルの一つのソースである 。これらは適当なmgXrd ビットをセットすることによりVRAMを含むグループ でディスエーブルされることができる。図28参照。 ハイアドレス・ビットにおける変化が予期されないRASサイクルの第2のソ ースである。これらはmsevhacrをセットすることによりメモリグループmsvgrpで 生じないようにできる。ハイアドレス・ビットはI/Oデバイスのアドレスとし て使用されるのが典型であり、そしてもしmshacdがクリアであって、これらのビ ットが変化するときRASサイクルを必要とする。VRAMグループのアクセス 直前のI/Oチャンネル転送がそのような発生例である。RASサイクルは適正 なシステム作動に必要であるかもしれないが、msevhacrを設定することによりR ASサイクルをVRAMグループが受けないようにできる。サイクルのRASプ リチャージ部がVRAMグループのMGSx/RASxではなくRASとRAS バーで生じる。もし一つより多いメモリグループをVRAMに使用すると、この 保護は有効ではなくなることに注意されたい。図34参照。システムの必要条件のプログラミング RASサイクル発生 ADに新しい行アドレスを持ち込むのにRASサイクルをDRAM型デバイス では本来必要とする。IOPの一時的に決定した実行を保証するのに、もしくは あるイベントの後正しい作動を保証するのに、ある場合にはRASサイクルは必 要である。MIFはこれらの場合を自動的に取り扱う。例えば、I/Oアドレス をデコードするための付加的な時間を供給するようRASサイクルが発生するよ うにもできる。RASサイクルはCASサイクルよりも長いのが普通であるので 、それらの使用を最小とするのが望ましい。RASサイクルの様々なソースを表 49に挙げる。 現在と以前のアドレスを比較してRASサイクルが必要か、否かを決めるとき 、MIFは以下のルールを使う。 ・現在のDRAMRASアドレスビットを、現在のメモリーグループ上で最近 のRASサイクルからのDRAMRASアドレスビットと比較する。もしビット が異なっていると、RASサイクルが発生する。 ●中間アドレスビットは比較されない(図16参照)。中間アドレスビットは 、DRAMに対して、RASアドレスビットより上でmsgsm を含み、msgsm まで 、SRAMに対して、A22からmsgsm を含み、msgsm までである。もしもmsgs m が零であると、いずれの場合も中間アドレスはない。もしmsgsm がA31を含 んでいると、A31はハイアドレスビットの部分となり、そして任意に比較され る。 ●現在のハイアドレスビットは、以下に述べるコンフィギュレーションのオプ ションによって、最近のRASサイクルからのそれらと比較される。ハイアドレ スビットのロケーションはmsgsm により変わる。図32参照。 3つのハイアドレスビットのコンフィギュレーションのオプションを使ってハ イアドレスビットの比較により生ぜしめられるRASサイクルの発生を最小にで きる。 ●I/Oデバイスのアドレスに対してハイアドレスビットを使うのが典型であ り、それらが変化すると、RASサイクルは外部のハードウエアによるそれらの 適正なデコーディングに必要とされる。メモリシステムをハイアドレスビット比 較不能にセットすることによりRASサイクル決定からハイアドレスビットを排 除できる(mshacd)。図28参照。 ●4バイト転送デバイスとセルメモリとの間で、もしくは1セルーセル転送デ バイスとバイトメモリとの間でのバスのトランザクション中A31はパスされる (グローバル・レジスタ、通常セットから取られる)か、もしくは(MIFによ り)クリアーされて、必要とされるときI/Oデバイスを選択もしくは外す。こ の目的のための外部でのデコーディングA31は全アドレスデコードよりも迅速 に行われることができ、それでこの別個のオプションが利用できる。A31はハ イアドレスビット比較に含まれるか、もしくは除外されることができる(msexa3 1hac)。図34参照。 ●I/OデバイスのアドレスをデコードするがA31における変化をデコード しないようにするのにRASサイクルを必要とするシステムにおいて(mshacdク リア、そしてmsexa31hacセット)、もしシステムが大量のメモリとI/Oデバイ スとを含んでいれば、メモリアドレスビットとI/Oアドレッシング・ビットと が重なりあうこが必要かもしれない。これがRASサイクルの発生を阻止する。 重なりあったアドレスビットのあるものはRAS(中間アドレスビット)を生じ ないからであり、もしくはRAS(DRAMRASアドレスビット)を必要とし ないからであり、もしくはRAS(DRAMRASアドレスビット)を、例えそ れらが最後のシステムのRASサイクルから変化していても必要しないからであ る。この場合RASを強制して、I/OデバイスアドレスがA31をセットする ことにより(msras31dクリア)デコードされることを確実にする。このオプショ ンもRASサイクルを強制することが望ましい時以外ならいつでも使える。ドライバー電流 総てのパッケージ出力ドライバーの駆動能力はプログラムできる。図45参照 。メモリー欠陥 仮想メモリページ欠陥検知はmfltイネーブル イン・モードを介して可能化さ れる。pkgmflt の状態に応じて、メモリ欠陥入力はAD8もしくはMFLTバー のどちらかからくることができる。図34参照。I/Oチャンネルプログラミング 前に説明したように、ノーマルなメモリグループバスタイミングはI/Oチャ ンネルバストランザクション中、対応するioXebtの値をその取り込まれたメモリ グループに対するmgXebtの値の代わりに使うことにより変えられる。このことに より各I/Oチャンネルはデバイスの必要条件を満たすようプログラムされる。 データ転送が起きるかもしれないメモリグループと同様、I/Oデバイスに対し てioXebtの値は十分でなければならない。図38参照。 タイミングに加えて、各I/Oチャンネル上の転送の型はindttaもしくは iod ttb で決められている。転送はバイト巾デバイスに対してトランザクション毎に 1バイトもしくは4バイトのどちらかでよく、またはセル巾デバイスに対してト ランザクション毎に1セルである。4バイトーバイト転送デバイスは、1バイト ーバイト転送デバイスよりバスを争う必要が少ないかもしれない。またセル巾メ モリでは、4バイトーバイト転送はセル・整理され、そしてデータをメモリセル に詰め、他方1バイトーバイト転送がメモリセル毎にただ一つのバイトを置いて いく。バス動作は以下を参照。 他のI/Oチャンネル転送オプチオンについては、上の、直接メモリアクセス コントローラを参照。オン・チップリゾースレジスタ オン・チップリゾースレジスタ102(図20)はMPU108,IOP11 0,DMAC112,INTC114,MIF120,ビット入力116そして ビット出力118を含むCPU100上の様々な機能ユニットの部分を備えてい る。これらのレジスタは、レジスタレベルで1do〔〕とsto 〔〕を使用し、もし くはビットレベルで1do.i〔〕と sto.i〔〕を(ビットアドレスを有するレジス タに対して)使用してそれら自身のアドレススペース内のMPUからアドレスさ れる。他のプロセッサ上でこの形式のリゾースはメモリーマップされているか、 オプコード・マップされているかのどちらかである。別のアドレスを使うことに よりスペースは整理され、そしてコードは保存される。注意書がしていない、す べてのレジスタは読み取りと、書き込みができる。「リザーブされた零」と記し た区域はプログラマブルビットを含んでおらず、そして常に零に戻る。「リザー ブされた」と記された区域は使用されていないプログラマブルビットを含んでい る。両区域は将来ファンクショナルなプログラマブルビットを含むことになるか もしれない。 最初の6つのレジスタはレジスタでアドレスできることに加えて、ビットでア ドレスできる。このことによりMPUは、IOP,DMACもしくはINTCロ ジックにより同時に変えられるかもしれない他のビットを害することなく個々の ビットを修正できる。 進行中にバスサイクルのタイミングもしくはバスのコンフィギュレーションに 影響するレジスタの値を変えるとき無効のバスサイクルを回避するためバスの動 作を阻止する。バスの動作は以下のことを確実にすることにより阻止できる。 ●DMAリクエストに応じない。 ●IOPがバスを捉えない(iopdelayが零になる)。 ●書き込みが送られない。 ●プリフェッチが生じない。 このことは普通問題ではないのは、関心のあるDMAもしくはIOPの動作が 起こったとき丁度パワーアップした後に大抵の変化が生じるからである。書き込 みが送られた後でのMPUメモリアクセス(例えば、命令フェッチ)を確実にす ることにより送られた書き込みは確実とされる。 ビット入力レジスタioin(図21は、pkgio.joinの値に応じてINバー〔7: 0〕もしくはAD〔7:0〕からのサンプルしたデータを含んでいる)はビット 入力のすべての消費者に対する入力のソースである。ビットは0が継続しており 、ioinで一旦ビットが0になると、それはIOP,DMACもしくはINTCに より消耗されるまで、もしくは1にMPUにより書き込まれるまで0のままであ る。ある条件ではビットは0のままでいられなくなる。上のビット入力参照。 ビットは個別に読まれ、セットされ、そしてクリヤーされてMPUと他のCP Uロジックとの間のレース状態を阻止することができる。 割り込みベンディングレジスタioip(図22)はサービスを受けるのを待って いる割り込み請求を含んでいる。優先順位に従って(0が最高、7が最低)割り 込みが認められる。I/Oチャンネル転送からの、もしくはint からの割り込み 要請は対応するペンデイングビットがセットされることにより生じる。ビットが セットされる、もしくはクリヤーされると割り込み要請が提示され、もしくは撤 回される。ioipビットと対応ioieビットがセットされるとき、対応するioinビッ トでは0は継続しない。上の割り込み制御参照。 ビットは個別に読み取られ、セットされ、そしてクリアーされてMPUとIN TCロジックとの間でのレース状態を防ぐ。 インターラプト・アンダーサービス・レジスタioius (図23)は現在の割り 込みサービスと優先順位の高いリクエストに応えるため一時的に保留されている ものとを含んでいる。割り込みリクエストのためISR実行可能のコードベクト ルが実行されるとき、その割り込みリクエストのioius ビットがセットされ、そ してその対応ioius ビットがクリアされる。ISRがretiを実行するとき、優先 順位の高いインターラプト・アンダーサービスビットをクリアする。これらのビ ットを使って割り込みが優先順位の高いISRに割り込まないようにする。ioiu s ビットと対応するioieビットとがセットされるとき、対応するioinビットの零 は永続性はない。割り込みコントローラ参照。 ビットは個別に読まれ、セットされ、そしてクリアされることができて、MP UとINTCロジックとの間でのレース状態を防ぐ。 ビット出力レジスタioout (図24)はMPUとIOPビット・出力動作から のビットを含んでいる。書き込み直後にOUT〔7:0〕に、そしてRASバー がインアクチブである間AD〔7:0〕でビットが現れる。ビット出力参照。 ビットは個別に読まれ、セットされ、そしてクリアされることができて、MP UとINTCロジックとの間でのレース状態を防ぐ。 インターラプト・イネーブルレジスタはioie図25に示されている。もし対応 するiodmaeビットがセットされていないと、対応する零ビットioinに、ioin内の 対応零ビットにリクエストさせてその対応する割り込みサービスを要求させる。 イネーブルされた割り込みリクエストが認識されると、その対応ioipビットがセ ットされ、そしてもはやその対応ioinビットの零は永続性はない。上の割り込み コントローラ参照。 ビットは個別に読まれ、セットされ、そしてクリアされることができる。この レジスタのためのビットのアドレッサービリティはそのアドレス・スペースにお けるそれの位置のアーティファクト(artifact)であり、そしてこのレジスタに レース状態が存在できることを意味しているものではない。 図26はDMAイネーブルレジスタiodmaeを示している。ioinにおける対応零 ビットにその対応するI/OチャンネルのためDMAI/Oチャンネル転送を要 求させる。イネーブルされたDMAリクエストが認識されると、ioinにおける対 応零ビットがセットされる。もしその対応iodmaex がセットされると、そのiodm aeビットはクリアされ(そのチャンネルからの別のDMAリクエストを不能化さ せ)、そのときそのチャンネル上のI/Oチャンネル転送は1024バイトメモ リーページ内の最後のロケーションにアクセスする。上のダイレクト・メモリア クセスコントローラ参照。iodmaeビットがセットされるときその対応ioieビット は無視される。 図27はVRAMコントロールビットレジスタvramを示す。これらのビットは OEバー、LWEバー、CAS、そしてCASバーの立ち下がり時間におけるD SFを制御する。それらはVRAM上の様々なモードを活性化するための組み合 わせにおいて使用されることができる。 次のMPUメモリサイクル中メモリストローブを制御する前にvramからのビッ トは、隠されたレジスタを通る。この隠されたレジスタ内のmsvgrpのため蓄えら れたビットは、どのメモリグループが現在のVRAMメモリグループか、どれの ストローブがその隠されたレジスタ内のデータにより影響されるかを決定する。 VRAMメモリーグループへのMPUアクセスが生じるまでは、その隠されたレ ジスタはいったんそれへvramからデータが転送されると、ロックされ、その隠さ れたレジスタ内のデータを消耗する。 vramへのsto[]が生じ、そしてその隠されたレジスタが現在ロックされていな いときvramからのデータは、もし(いずれかのメモリグループへの)ポストされ た書き込みが待っていない、もしくはプロセス中ではない、またはそのポストさ れた書き込みの終わりで、別のポストされた書き込みが待っている、もしくはプ ロセス中であると、直ちにその隠されたレジスタに転送される。vramへのsto 〔 〕が生じ、そしてその隠されたレジスタが既にロックされているとき、vram内の データは、VRAMメモリーグループへの次のアクセスが生じる後まで転送され る(そして置き換えられる)ことはない。VRAMメモリーグループへの次のア クセスがその隠されたレジスタ内のデータを使用し、そしてそのメモリーアクセ スが完全であるとき、vram内のデータはその隠されたレジスタへ転送される。 MPUメモリアクセスだけがvramもしくはその隠されたレジスタに影響する。 その隠されたレジスタへvramを転送した直後にvramにおけるdsfvras,casbvras,w evras,そしてoevrasがクリアされる。VRAMメモリーグループへのアクセス後 別のCASもしくはRASサイクルが、レジスタを書き換えることなくVRAM メモリーグループに生じ、そして現在の(クリアされた)vramデータを使用する 。vramへの書き込みが、その要求されたRASもしくはCASタイプのVRAM メモリーグループへの一つ、もしくはそれ以上のアクセスと対にされると、上に 説明した内部作動はプログラムに対して透明である。RASプリチャージは適正 なVRAM作動の期間中少なくとも3つの2×クロックサイクルでなければなら ない。上に説明し、そして後でも説明するビデオRAMサポート参照。 msgrp 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 サイクルである様にされる。 全ての読出し及び書込みストローブは、バスサイクル中の通常の活性時間を通 して不活性であり、メモリーとのデータI/O は発生できないことに留意。 このサイクルを引き起こすのに使用されるST又はLDと関係するデータは、失わ れ、且つ未定義となる。casbvrasビットは、隠しレジスタに転送された後自動的 にクリアーされる。 wavras これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中に、RA S が上昇後の2つの2Xクロックサイクル中、LWE は低く、行アドレスホールド 時間の満了時に、高い。他方、VRAMメモリーグループでの次のRAS サイクル中に 行アドレスホールド時間が満了する迄、LWE バーは高い。何れの場合も、サイク ルLWE バーのCAS 部分中において、LWE バーは通常通り振る舞い、そして転送さ れたデータは達成された機能の一部である。ビットは、隠しレジスタに転送され た後、自動的にクリアーされる。 oevras これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中にRAS が上昇した後の2つの2Xクロックサイクル中、OEバーは低く、行アドレスホー ルド時間の満了時に高い。他方、VRAMメモリーグループ上の次のRAS サイクル中 の行アドレスホールド時間が満了する迄、OEバーは高い。何れの場合も、そのサ イクルのCAS バー部分中OEバーは通常通り振る舞い、転送されたデータは達成さ れた機能の一部である。ビットは、隠しレジスタに転送された後に自動的にクリ アーされる。 雑多Aレジスタmisca(Miscellaneous A Register misca)が図28に示されて いる。 mgXrd これは、リフレッシュが実行される時に対応するメモリーグループ上でリフレ ッシュサイクルが発生することを、(これがクリアーの場合)許容し、(これが セットの場合)禁止する。幾つかのメモリーグループ上でのリフリッシュを許容 することは、非所望であるか又は適当ではない場合がある。例えば、リフレッシ ュの第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 サイクル タイミングは、リフレッシュによって発生されたリフリッシュサイクルのために 使用すべきである。特定されたメモリーグループは、最も制限的(最も遅い)リ フレッシュタイミングを有するグループである必要がある。 雑多Bレジスタmiscb(Miscellaneous B Register miscb)が図29に示されて いる。 mmb これがクリアーの場合、全メモリーグループに対する単一メモリーバンク(SMB )を選択する。RASxバー信号は対応するパッケードピン上に現われる。バンク選 択ビットは、msgsm ビットに対応する。4つ迄のメモリーバング(即ち、メモリ グループ毎に一つのメモリーバンク)が、直接接続され且つアクセスされる。図 17参照。 これがセットの場合、全メモリーグループに対する多重メモリーバンク(MMB) モードを選択する。MGSxバー信号は対応するパッケージピン上に現われる。バン ク選択ビットは、DRAM RASビットの直ぐ上に位置されているかは、又はmssbs 位 置内のSRAM用のものである。16迄のメモリーバンク(即ち、メモリーグループ 毎に4つのバンク)は、バンク毎に1.25の2つの入力ゲードと接続することが出 来る。ゲート毎の追加の入力及び追加のデコーディングを伴って、任意に大きい 数のメモリーバンクを容易に接続することが出来る。図20参照。 fdmap DMA 要求はバスに対して競合する。最高優先順位要求がアクセスの第1番のチ ャンスを得る。iopdelayが最高優先順位要求によるバスアクセスを可能とするの に充分大きい場合、バスが装置に対して許可される。 fdmap がセットで、且つiopdelayが最高優先権DMA 要求に対して小さ過ぎる場 合、DMA 要求がバスを得ることはない。縮み(shrinking)可能バススロットに適 合するより高い優先順位DMA 要求が発生しない場合、IOP がバスを占有する迄バ ストランザクションは発生しない。IOP が次に遅延を実行する時、最高優先順位 DMA 要求--又はDMA 要求がない場合はMPU が--バス要求処理を繰り返す。 fdmap がクリアーであり且つiopdelayが最高優先順位DMA 要求に対して小さ過 ぎる場合、要求はバスを得ない。次のより低い優先順位のバス要求は、MPU が最 低の優先順位要求を有して、次にバスを要求することが許可される。この処理は 、バスが許可されるか又はIOP がバスを占有する迄繰り返される。IOP が次に遅 延を実行する時、最高優先順位DMA 要求--又はDMA 要求が存在しない場合はMPU --がバス要求プロセスを繰り返す。 pkgio これがセットの場合、ioinへの入力がINバー〔7:0〕から取られる。これが クリアーの場合、RAS バーが低であり且つCAS が高である時に、ADバー〔7、0 〕から取られる。上述のビット入力を見よ。 oed これがセットの場合、バスサイクル中にOEバーが活性になるのを不可能にする 。これがクリアーの場合、OEバーが通常に振る舞う。CPU リセット上で、OEバー 信号は利用不能状態となり、従来通り接続されているメモリーが応答することが 阻止される。このことは、I/O 空間内の装置からのブーティング(booting)を可 能とする。以下のプロセッサスタートアップを見よ。 mgXbw これがクリアーの場合、対応するメモリーグループはセル幅であり、バスサイ クル毎に32ビット読出し及び書込みが行われる。これがセットの場合、対応する メモリーグループはバイト幅であり、4バスサイクルの1つのバストランザクシ ョンで、サイクル毎に1バイトで書込み及び読出しが行われる。 メモリーフォールトアドレスレジスタ(Memory Fault Address Register)は図 30に示される。メモリーページフォールト(不在)例外が、メモリー読出し又 は書込み中に発生する場合、mfltaddrは例外を発生したアドレスを含む。mfltad dr及びmfltdataの内容は、フォールトの後のmfltaddrの第1の読出し迄、ラッチ される。mfltaddrを読み出した後、mfltaddr及びmfltdata内のデータは最早有効 ではない。 メモリーフォールトデータレジスタ(Memory Fault Data Registor)が図31に 示される。メモリーページフォールト例外はメモリー書込み中に発生する。mflt dataはmfltaddrに記憶されるデータを含む。mfltdata及びmfltdataの内容は、フ オールトの後のmfltaddrの第1の読出し迄、ラッチされる。 メモリーシステムグループ選択マスクレジスタ(Memory System Group-Select Mask Register)は図32に示される。これは、A16 及びA31 間のメモリーグルー プ選択ビットの位置を決める0、1、又は2つの隣接ビットを含む。 何等のビットもセットされていない時、全てのメモリーアクセスがメモリーグ ループ0で発生する。メモリーシステム高アドレスビットは、DRAMに対してはメ モリーグループゼロDRAM RASアドレスより上で、SRAMに対しては、A21 より上で アドレスビットで発生する。 1ビットがセットされる時、これは、メモリーグループゼロとメモリーグルー プ1との間でアクセスを選択するアドレスビットを決定する。メモリーシステム 高アドレスビットは、選択されたビットよりも高いアドレスビットで発生するが 、常にA31 を含む。 2つの隣接ビットがセットされる場合、それらは、アクセスされる4つのメモ リーグールプの一つを選択するために、デコードされる。メモリーシステム高ア トレスビットは、選択されたビットよりも高いアドレスビット内で発生するが、 常にA31 を含む。 メモリーグループ装置サイズレジスタ(Memory Group Device Size Register) が図33に示されている。これは、各メモリーグループ毎に、DRAMアドレスビッ ト構成、又はSRAMを選択する4ビットコードを含む。このコードは、RAS 又はCA S アドレッシング中にどのビットが使用さるかを、そして(DFRAM行アドレス変化 のために)RAS サイクルが必要とされるかを決めるためにどのビットが比較され るかを決める。表47及び表48を見よ。 雑多Cレジスタ(Miscellaneous Register)が図36に示される。 pkgmflt これがセットの場合は、メモリーフォールト入力が、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 装置のアドレスビットの直ぐ上にビットを置く様に設定す る。 メモリーグループ0−3延長バスタイミングレジスタが図35に示されている 。これらの値は、メモリーシステムにおける伝搬、ターンオン、ターンオフ、及 び他の遅延を補償する。これらは、各メモリーグループ毎に別々に特定される。 I/O チャンネルバストランザクションが発生する時、I/O チャンネル延長ioXebt は対応する値と置き換えられる。I/O チャンネル延長は、I/O チャンネルが転送 することの出来る如何なるグールプに対しても充分でなければならない。 mgebtsum mgebtcase 及び mgebtdobeの和を含む様にプログラムされる。この値はスロッ トチェック中のみに、バスサイクルに必要とされる全時間を計算するために使用 される。 mgebtdobe これは、特定の時間迄DOB バーのCAS サイクルを延長する。このパラメータは 、メモリーグループ遅延、装置アクセス、及び他の操作要求を補償するために使 用される。バスサイクルがメモリー読出しサイクルである場合、OEバーが延長さ れる。バスサイクルがメモリー書込みサイクルである場合、EWE バーは延長され 、且つLWE バーの下降が特定の時間遅延される。 mgebtcase これは、延長されたCAS 時間の後特定の量だけCAS サイクルを延長する。DOB バー、OEバー、EWE バー、LWE バーは延長されずに上昇する。このパラメータは 、データホールド時間を可能するか、又は装置がそれらの出力ドライバーを利用 不可能とすることを可能にするために利用される。 mgbtewe 又はmgbteoe と組み合わせて使用される場合、ホールド又は使用不能 時間は、4Xクロックサイクルの最大の倍数に設定される。 メモリーグループ0-3 CAS バスタイミングレジスタ(Memory Group 0-3 CAS Bu s Timing Registers)は図36に示されている。これらレジスタはCAS のみサイ クル及びRAS サイクルのCAS 部分に対する基本タイミングを定めている。タイミ ングは各メモリーグループ毎に別々に特定される。CAS バーに属する値は、CAS ,CASO バー,CAS1バー,CAS2バー及びCAS3バーに好適に与えられる。基本CAS サイクルタイミングはmgXebt及びioXebt値によって引き出される。 mgbtcas これは、CAS サイクルプリチャージ時間、メモリーサイクルのCAS 時間部分の 開始からCAS バーが低下する迄の時間を特定する。 mgbtdob これは、バス上のアドレス時間(列アドレスホールド)の終了及びデータ時間 の開始を、メモリーサイクルのCAS 部分の開始に関して、特定する。これは、CP U が書込みデータをバス上のに設置するか、又はバスから読出しデータの受け取 りを開始する時間である。 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クロックサイクルを最大に増加することで、作り出すことが 出来る。 図37は、メモリーグループ0−3RAS バスタイミングレジスタ(Memory Grou p 0-3 RAS Bus Timing Registers)を示している。これらレジスタはRAS メモリ ーサイクルのRAS プリフィクス部分a に対するタイミングを決めている。タイミ ングは各メモリーグループに対して別々に特定去れている。この値は、使用され るメモリ装置に対して要求されるものに選択される。RAS に属するタンミング値 は、RAS、RAS0バー、RAS1バー、RAS2バー及びRAS3バーに好適に与えられる。 mgbtrast mgbtras 及びmghtrhldの和プラス1を含む様にプログラムされる。この時間の 終了時に、メモリサイクルのCAS 部分が始まる。この値は、バスサイクルに対し て要求される全時間を計算するためのスロットチェック中のみに使用される。 mbgtras これは、RAS プリーチャージ時間を特定する。時間RAS バーは、RAS サイクル の開始で高い。この時間はmgbterasで短くすることが出来る。 mghtrhld これは、サイクルのCAS タイミング部分の直前の、RAS サイクルのローアドレ スホールド時間を特定する。時間はmgbterasで長くすることが出来る。この時間 の直後に、適当ならば、CAS アドレスがバス上に設置される。 mgbteras これがセットの場合、RAS プリチャージ時間(mgbtrasによって特定される)を 減少し、1つの4Xクロックサイクルだけ(mgbtrhld によって特定される)行ア ドレスホールド時間を延長する。 図38はI/O チャンネル0−7延長バスタイミングレジスタ(I/O Channel 0-7 Extended Bus Timing Resisters)を示す。 これらの値は、メモリー及びI/O システムにおける信号伝搬、ターンオン、タ ーンオフ、装置及び他の遅延を補償する。これらは、I/O チャンネル転送中に、 メモリーグループ値、mgXebtと置き換えられ、従って、I/O 装置、及びI/O 装置 が転送を行う如何なるメモリーグループに対しても充分である必要がある。 ioebtsum ioebtcase 及びioebtdobe の和を含む様にプログラムされる。この値は、バス サイクルに必要とされる全時間を計算するためのスロットチェック期間のみで使 用される。 ioebtdone これは、DOB バーでCAS サイクルを特定の時間だけ延長する。このパラメータ は、メモリーグループバッファー遅延、装置アクセス時間、及び他の操作要求を 補償するのに使用される。バスサイクルがメモリー読出しサイクルである場合、 OEバーは延長される。バスサイクルa がメモリー書込みサイクルである場合、EW E バーが拡張され、特定の時間遅延される場合LWE バーが降下する。 ioebtcase これは、延長されていないCAS 時間の後の特定された量だけCAS サイクルを延 長する。DOB バー、OEバー、EWE バー及びLWE バーは延長されないで上昇する。 このパラメータはデータホールド時間を許容するか、又は装置がそれらの出力ド ライバーを使用不可能にすることを許容するために使用される。mgbtewe 又はmg bteoe と組み合わせて使用される時、ホールド又は使用不可能時間は4Xクロッ クサイクルの最大の整数倍で設定される。 図39はメモリーシステムリフレッシュアドレス(Memory System Refresh Add res)を示す。これは、メモリーシステムリフレッシュ対して使用される次のアド レスを含む。この値は、リフレッシュが実行される時特定のピンに設置される。 そして、msrra は1だけ増大される。リフレッシュサイクルに対する時間タイミ ングはmstrg によって設定される。リフレッシュされるこれらのメモリーグルー プはmgXrd によって設定される。 図40はIOP 遅延カウントレジスタ(IOP Delay Count Register) を示す。こ れは、IOP がバスを占有する迄、2Xクロックサイクルの数を含む。このカウン ターは2Xクロックサイクル毎に一度減少される。カウンターは、例えは、IOP がバスを占有する以前に時間クリティカルタスクが完了することが出来るかを決 めるため、又は2Xクロックの整数倍の時間を測定するために使用することが出 来る。 図41はI/O 装置転送形態Aレジスタ(I/O Device Transfer Types A Registe r)を示している。図42はI/O 装置転送形態Bレジスタ(I/O Device Transfer T ypes B Register)を示している。これらのレジスタは、対応するI/O チャンネル に取り付けられた装置に対する3つの転送形態の一つを特定する。 ・ 4バイトバイト転送形態:4バイトのデータを、一度に1バイト、単一のバ ストランザクションで装置とメモリー間で転送する。このトランザクションは、 装置にアクセスする4つのバスサイクルと、メモリーがセル幅の場合メモリーに アクセスするための一つの追加のビジーサイクルから成る。全初期転送アドレス は、境界を呼び出すべきである。 ・ 1バイトバイト転送形態:単一のバストランザクションで装置とメモリーと の間で1バイトのデータを転送する。このトランザクションは、単一のバスサイ クルから成る。セル幅メモリへの転送は、アドレスされたセルのバイトゼロに対 してであり、残りの24ビットは未定義である。バイト幅メモリーへの転送は特 定のバイトに対してである。 ・ 1セルセル転送形態:単一のバストランザクションで1セルのデータを装置 とメモリーとの間で転送する。トランザクションは、装置にアクセスするための 1バスサイクルと、メモリーがバイト幅である場合にメモリーにアクセルための 4つの追加のビジーサイクルから成る。全ての初期転送はセル境界に対するもの である。 図43は保存されたレジスターアドレス(Reserved Register Address)を示す 。これらのアドレスは保存される。 図44はDMA 使用可能期間満了レジスタ(DMA Enable Expiration Register)を 示す。このレジスタはDMA I/O チャンネル転送が、1024バイトメモリーペー ジ内の最後の位置に成された後、iodmae内の対応するDMA 使用可能ビットをクリ アーにする。これは対応するI/O チャンネル上のDMA が、所定の数のバイトを転 送した後、使用不可能になることを許容する。上述のダイレクトメモリアクセス コントローラを見よ。 図45はドライバー電流レジスタ(Driver Current Resiter )を示す。このレ ジスタは、パッケージの種々の信号出力を駆動するのに利用可能な電流の相対値 をプログラミングすることを可能にする。プログラムされたドライバー電流は種 々の効果を有する。 ・ 選択された電流の量は、所与の負荷への信号の上昇及び下降時間を決める。 この上昇及び下降時間、PWB ワイヤー長、PWB 構造は、信号が送信ラインとして 扱われることが必要とされるか、及び信号の終結が要求されるか否かを決める。 ・ より大きなドライバー電流はdi/dt で増加する。従って、パッケージ及びシ ステム電気ノイズを増大する。ドライバー電流が変化しない時は(同じ負荷がチ ャージされ、ただより遅いか、速いかであるので)全電流消費が変化しないが、 di/dt が減少する時は、より少ないノイズしか発生しない。出力ドライバープリ ドライバー電流が減少すると、パッケージ及びシステムノイズが減少し、従って 、製品の電磁気的な要請の承認を容易にする。 プログラマブルドライバーは、システム設計者が、システム設計の複雑性、シ ステムコスト、及びシステム性能の間で兼ね合いを図ることを可能にする。 出力ドライバーはプリドライバーと出力ドライバーとから成る。出力ドライバ ーの各部分の電流供給能力は、別々にプログラム出来る。各フィールドの低ビッ トは、信号をセットするために、プリドライバーにおいて全又は半ドライブ能力 を選択する。より上方の1つ又は2つのビットは1/3、2/3、又は全ドライ ブ能力を選択する。 プリドライバーは、コア論理電力によって供給される。それらの動作によって 発生されるノイズは、不適当な電力供給又は切断をもたらし、システム内のCPU の性能に影響を及ぼすことがある。この様なシステムにおいては、プリドライバ ー電流を低下することにより、システム設計の欠点を補償することが可能である 。 ドライバーは、2つの別の電力バス上にある。ADに対するものと、制御信号及 び全ての他の出力ピンに対するものである。結果として、パッケージの内部にお いて、ADドライバースイッチングによって引き起こされた電気ノイズは制御信号 の質を劣化することを防止する。しかしながら、この分離はパッケージ外部の電 力ピン間でノイズが結合することは防止しない。システムの負荷に依存して、出 力ドライバーはCPU によって消費される電力を50%乃至95%を占めている。従 って、潜在的に大きいノイズ源である。 図46はIOP リセットレジスタ(IOP Reset Register)を示している。何らかの 値を書込むことは、現在のメモリーサイクルの終了時に、IOP に、そのソフトウ エアーリセット実行可能なコードベクトル(位置0x00000010)で実行を開始させ る。これは、ハードウエアリセットの後IOP PCのビット31をクリアーし、IOP を 新たな手順の実行に向けるのに使用されるメカニズムである。レジスタの値は、 IOP リセットプロセスの間は-1である(即ち、この時から、IOP がソフトウエア ーリセット実行可能なコードベクトルの実行を開始する迄にiopresetが書き込ま れる。)。他の場合は、その値は0である。 表50はオンチップレジスタクロス参照に対するビットフィールドを示してい る。 バスオペレーション MIF120は、システムバスへのアクセスのためのすべてのソースからのリ クエストを取り扱う。リクエストは、IOP110、DMAC112およびMP U108から、それぞれ到来して優先順位付けされる。このようなオーダーによ り、IOPは常に予想可能なメモリタイミングを有し、DMAはバスアベイラビ リティを有し(何故ならば、MPUはバスをサチュレートしうるからである)、 MPUに対してメモリコヒーレンシーが維持されるようにすることができる。 オペレーション MIF120は、暫定的確定IOP実行を保証するために必要とされるときに は、直ぐにIOP110へのバスを常に許可しなければならない。こうするため に、IOPは、それが遅延を実行しているとき以外は、バスへの排他的アクセス を有する。DMAまたはMPUバスリクエストがなされるとき、MIFは、バス トランザクションのタイプを決定し、必要とされる推測時間を計算し(テーブル 51参照)、IOPがバスを捕らえるまでの時間量であるIOP遅延とこの推測 時間を比較する。この利用しうるバス時間は、スロットと称される。もし、IO P遅延が零である場合には、IOPは、現在、バスを有している。もし、IOP 遅延がバストランザクションに対して計算された値よりも大きい場合には、バス は、リクエスタに対して許可される。そうでない場合には、バスは、満足されう るバスリクエストが発生するまで、または、IOPがバスを捕らえるまで、アイ ドル状態のままである。このスロットチェックは、完了するまでに、1つの2X −クロックサイクルを要する。バスリクエストがスロットチェックを通過したと きには、バストランザクションが、次の2X−クロックサイクルにて開始される 。 スロットチェック計算は、推測である。何故ならば、I/Oチャンネルバスト ランザクションに対しては、そのトランザクション中にioXebtおよびmgXebt時間 のミックスが使用されうるとしても、ioXebtがその計算のすべての部分について 使用されるからである。この簡単化された計算の効果は、リクエストされるスロ ットが実際に求められバス時間よりも大きくなるということである。実際のバス トランザクションが完了するとき、バスは、直ぐに使用できるようになる。 MPU内において、到来するバスリクエストは、最も高い順位から最も低い順 位へすなわち、ポステッドライト、インストラクションプレフェッチ、ローカル レジスタスタックスピルまたはリフィル、オペランドスタックスピルまたはリフ ィル、1d、stおよびインストラクションフェッチの順に優先順位を付けられる。 CPUからのアドレスラインは、パッケージピンカウントを減少させDRAM へのインターフェイスを容易とするために多重化される。DRAMは、2つのピ ース、すなわち、上方アドレスビットまたは行アドレスおよび下方アドレスビッ トまたは列アドレスへ分けられたアドレスを有する。このアドレスの2つのピー スは、DRAMにおいて、2つの対応するクロック信号、すなわち、RASバー およびCASバーでクロックされる。AD[31:0]は、また、RASおよび CAS時間中にDRAM行および列アドレスよりも高い順位のアドレスビットを 出力し、また、DOBバーがアクティブである間各バスサイクルの最後の部分中 データ入力または出力を出力する。ビット出力およびビット入力は、AD[7: 0]にても利用しうる。 I/Oアドレッシング msgsm より上のアドレスビットのすべては、ハイアドレスビットと称される。 これらのビットは、典型的には、外部デコーディングハードウエアを有するI/ O装置をアドレスするのに使用される。これらは、RASサイクルに含まれ、ま たは、より速いI/Oサイクルに対して排除されるようにコンフィギュレーショ ンされ、外部デコーディングハードウエアのリクワイアメントにマッチするよう にコンフィギュレーションされうる。利用しうるコンフィギュレーションオプシ ョンについては、前述のシステムリクワイアメントプログラミングを参照のこと 。 バストランザクションタイプ CPUは、セルワイドおよびバイトワイドメモリ、セルワイドおよびバイトワ イドデバイス、およびシングルまたはマルチバスサイクルトランザクションをサ ポートする。これらの種々な組合せが可能である。これらは、0個の、1つのま たは2つのRASサイクルを含みうるバストランザクションを完了するのに1つ の、4つのまたは5つのバスサイクルを必要とする。すべてのバスサイクルの基 本的な構造は同じである。プログラムされたシステムコンフィギュレーションお よび現在のシステム状態によって、バスサイクルのRASプレフィックスおよび CASパートが組み合わされて、正しいアドレス発生およびメモリデバイスオペ レーションを与える。テーブル53は、所与のバストランザクション内にありう るRASおよびCASサイクルの種々な組合せを列挙している。 MPUおよびIOP(non-xfer)メモリサイクル MPUおよびIOPは、セルワイドまたはバイトワイドメモリに記憶されたプ ログラムを読み取り実行することができる。MPUは、また、セルワイドおよび バイトワイドメモリからデータを読み出したり、セルワイドおよびバイトワイド メモリへデータを書き込みしたりすることもできる。セルワイドまたはバイトワ イドメモリへのすべてのアクセスは、セル全体に関わる。したがって、セルワイ ドメモリへのアクセスは、1つのバスサイクルを必要とし、バイトワイドメモリ へのアクセスは、4つのバスサイクルを必要とする。 MPUからのセルメモリ書込み MPU/IOPへのセルメモリ読出し テーブル53および参照フィギュアは、これらのバストランザクションに関する 詳細を与える。これらのトランザクションは、1つのバスサイクルを必要とする 。 MPUからのバイトメモリ書込み MPU/IOPへのバイトメモリ読出し テーブル53および参照フィギュアは、これらのバストランザクションに関す る詳細を与える。これらのトランザクションは、4つのバスサイクルを必要とす る。バイトアドレスビットA1およびA0は、アクセスされるセルの最上位バイ トから最下位バイトまでアドレスするために0から3までインクレメントされる 。 I/Oチャンネル転送 デバイス転送タイプおよびメモリデバイス幅に依存して、テーブル52に示さ れるように、I/O装置およびメモリの間で種々なバスサイクル組合せが起こる 。トランザクションのためのこれらの開始アドレスは、関係するI/Oチャンネ ルに対応するグローバルレジスタ(g8は、I/Oチャンネル0に対応し、・・ ・・・、g15は、I/Oチャンネル7に対応する)から来る。メモリに対する 転送の方向は、同じレジスタのビット1によって示される。図12を参照のこと 。トランザクションのためのデバイス転送タイプは、iodttaまたはiodttbにおけ る 対応するフィールドから来る。バストランザクションは、テーブル55に挙げら れたサイクルおよびストローブで進められる。 4−バイトのバイト転送デバイスからのセルメモリ書込み テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、5つのバスサイクルを必要とする。 データは、最初の4つのバスサイクル中にデバイスから収集されMIFに記憶さ れ、そして、5番目のバスサイクル中にMIFによってメモリへ書き込まれる。 最初の4つのバスサイクル中にデバイスから収集されメモリへ書き込まれるデー タは、5番目のバスサイクル中に置換される。A31は、5番目のバスサイクル 中にMIFとのコンテンションを阻止するために、I/O装置をデセレクトする ためにクリアされる。バイトアドレスビットA1およびA0は、データがそのデ バイスから転送されている間に、アクセスされるセルの最上位バイトから最下位 バイトまでアドレスするために0から3までインクレメントされる。 テーブル52 4−バイトのバイト転送デバイスへのセルメモリ読出し テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、5つのバスサイクルを必要とする。 データは、最初のバスサイクル中にメモリから収集されてMIFに記憶され、そ して、最後の4つのバスサイクル中にMIFによってそのデバイスへ書き込まれ る。OEは、デバイスが書き込まれている間メモリおよびMIFの間のバスコン テンションを阻止するために、最後の4つのバスサイクル中に抑制される。A3 1は、最初のバスサイクル中にメモリとのコンテンションを阻止するために、I /O装置をデセレクトするためにクリアされる。バイトアドレスビットA1およ びA0は、データがそのデバイスへ転送されている間に、アクセスされるセルの 最上位バイトから最下位バイトまでアドレスするために0から3までインクレメ ントされる。 4−バイトのバイト転送デバイスからのバイトメモリ書込み テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、4つのバスサクルを必要とする。バ イトアドレスビットA1およびA0は、デバイスおよびメモリの両方に関するア クセスされるセルの最上位バイトから最下位バイトまでアドレスするために、0 から3までインクレメントされる。データは、MIFを介在することなく、デバ イスからメモリへ直接にバスにて転送される。 4−バイトのバイト転送デバイスへのバイトメモリ読出し テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。トランザクションは、4つのバスサイクルを必要とする。バイ トアドレスビットA1およびA0は、デバイスおよびメモリの両者に関してアク セスされるセルの最上位バイトから最下位バイトまでアドレスするために0から 3までインクレメントされる。データは、MIFを介在することなく、メモリか らデバイスへ直接にバスにて転送される。 1−バイトのバイト転送デバイスからのセルメモリ書込み テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、1つのバスサイクルを必要とする。 データは、典型的には、AD[7:0]にてデバイスによって供給され、メモリ の対応するビットへ書き込まれる。AD[31:8]は、また、メモリへ書き込 まれ、もし、外部デバイスによってドライブされない場合には、そのアドレスビ ットをホールドする。 1−バイトのバイト転送デバイスへのセルメモリ読出し テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与える。このトランザクションは、1つのバスサイクルを必要とする。デー タは、典型的には、メモリの対応するビットから来るAD[7:0]からデバイ スによって取り出される。他のメモリビットは、メモリによってドライブされる が、典型的にはそのデバイスによって使用されない。 1−バイトのバイト転送デバイスからのバイトメモリ書込み テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、1つのバスサイクルを必要とする。 グローバルレジスタにおけるアドレスは、通常、セルにアドレスする。何故なら ば、最下位の2つのビットは、アドレッシングには使用できないからである。し かしながら、このトランザクションのために、グローバルレジスタにおけるアド レスは、変更バイトアドレスである。すなわち、アドレスは、ADに接続された バイトワイドメモリに対して正しく位置するように左へ2ビットだけシフトされ る(ソフトウエアにおけるプレシフト)。アドレスは、ADに達するまでは、再 度シフトされない。A31は、そのままである。A30およびA29は、使用で きないようになり、グループビットは、供給されるアドレスにおけるプレシフト により、それらの通常の位置の右へ2ビットの位置にある。このトランザクショ ンにより、バストランザクション当り1バイトずつ、バイトの転送が行われ、バ イトワイドメモリへパックされる。 1−バイトのバイト転送デバイスへのバイトメモリ読出し テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、1つのバスサイクルを与える。グロ ーバルレジスタにおけるアドレスは、通常、セルにアドレスする。何故ならば、 最下位の2つのビットは、アドレッシングには使用できないからである。しかし ながら、このトランザクションの場合には、グローバルレジスタにおけるアドレ スは、変更バイトアドレスである。すなわち、アドレスは、ADへ接続されたバ イトワイドに対して正しい位置となるように左へ2ビットだけシフトされる(ソ フトウエアにおけるプレシフト)。そのアドレスは、ADに達するまでは再度シ フトされない。A31は、そのままであり、A30およびA29は、使用できな くなり、グループビットは、供給されるアドレスにおけるプレシフトによりそれ らの通常の位置の右へ2ビットの位置にある。このトランザクションにより、ト ランザクション当り1バイトずつ、バイトの転送が行われ、バイトワイドメモリ からデバイスへアンパックされる。 1−セルのセル転送デバイスからのセルメモリ書込み テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。トランザクションは、1つのバスサイクルを必要とする。 1−セルのセル転送デバイスへのセルメモリ読出し テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、1つのバスサイクルを必要とする。 1−セルのセル転送デバイスからのバイトメモリ書込み テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、5つのバスサイクルを必要とする。 データは、最初のバスサイクル中にダバイスから収集され、MIFに記憶され、 最後の4つのバスサイクル中にMIFによってメモリへ書き込まれる。最初のバ スサイクル中にデバイスから収集されている間にメモリに書き込まれるデータは 、2番目のサイクル中に置換される。A31は、最後の4つのバスサイクル中に MIFとのコンテンションを阻止するために、I/O装置をデセレクトするよう にクリアされる。バイトアドレスビットA1およびA0は、データがMIFから メモリへと転送されている間にアクセスされるセルの最上位バイトから最下位バ イトまでアドレスするために0から3までインクレメントされる。 1−セルのセル転送デバイスへのバイトメモリ読出し テーブル53および参照フィギュアは、このバストランザクションに関する詳 細を与えている。このトランザクションは、5つのバスサイクルを必要とする。 データは、最初の4つのバスサイクル中にメモリから収集され、MIFに記憶さ れる。OEバーは、デバイスが書き込まれている間メモリとMIFとの間のバス コンテンションを阻止するために5番目のバスサイクル中に抑制される。A31 は、最初の4つのバスサイクル中にメモリとのコンテンションを阻止するために 、I/O装置をデセレクトするようにクリアされる。バイトアドレスビットA1 およびA0は、データがメモリからMIFへ転送されている間アクセスセルの最 上位バイトから最下位バイトまでアドレスするために0から3までインクレメン トされる。 バスリセット 外部ハードウエアリセットは、パワーフェイルインモード以外、パワーオンコ ンフィギュレーションへ全CPUを初期化する。リセットがアクティブ(外部ま たはパワーオンセルフリセット)である間、ADは、高インピーダンス状態へ行 き、OUT[7:0]は、ハイとなり、RASは、アクティブとなり、その他の 全ての出力は、インアクティブとなる。波形については図66を参照のこと。 ビデオRAMサポート VRAMは、主として、ビデオディスプレイにピクセルを表示するのに必要と されるシステムメモリバンド幅を減少させることによって、グラフィックオペレ ーションの速度を増大させる。VRAMコマンドは、ビデオディスプレイに対し てクロックアウトされるようにデータの全行をDRAMアレーから内部シリアル アクセスメモリへ転送するのに使用される。VRAMは、また、グラフィックオ ペレーションを高めるために他のコマンドをサポートする。VRAMオペレーシ ョンは、vram書込みおよび所望のVRAMメモリアドレスへの適当な読出し または書込みによりエンコードされる。VRAMバスサイクルのための基本的タ イミングは、メモリグループにおける同様のバストランザクションと同じである 。図27を参照のこと。リフレッシュおよびRASサイクルは、また、VRAM オペレーションに影響を及ぼしうる。前述のビデオRAMサポートを参照のこと 。種々なvramオプションの効果を表す波形は、図72に示されている。 仮想メモリページ故障入力 MIFは、RASサイクルでの故障検出をインテグレートすることにより、M PUメモリアクセスによって引き起こされるメモリページ故障を検出する。した がって、マップされるページサイズは、CASページのサイズである。メモリシ ステムRASページアドレスは、外部SRAMの使用によるRASプレチャージ 中に論理ページアドレスから物理ページアドレスへとマップされる。SRAMか ら供給されるメモリ故障信号は、RASバーフォール中にサンプルされ、もし、 ローであるならば、メモリページ故障が生じたことを示す。図46aを参照のこ と。メモリ故障信号は、MFLTバーまたはAD8から入力される。後述の交互 メモリ故障入力を参照のこと。 メモリ故障が検出されるとき、バストランザクションは、バスサイクルのCA Sバーのパート中に実際にはアクティブとならない信号なしに完了する。それか ら、メモリ故障例外がMPUへ合図され、MPUは、故障状態をサービスするた めにトラップを実行する。波形については、図70を参照のこと。 交互入力および出力 ビット入力、ビト出力、メモリ故障入力およびリセット入力は、専用ピンを使 用するのでなく、ADにて多重化される。この特徴は、PWBにてルーティング されるトラックの数を減少させる(PWBサイズおよびコストを減少させる)た めに使用され、ShBoom 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に達するとき、RE SETバーがサンプルされ、アクティブであるならば、CPUのための外部リセ ットのソースとして使用される。さもなければ、外部リセットは、AD8にて多 重化される。この決定は、パワーが再度サイクルされるまで、適用される。もし 、リセットのうちの1つがアクティブであるならば、CPUは、そのリセットが 継続前にインアクティブとなるまで、待つ。もし、どのリセットソースもアクテ ィ ブでないならば、プロセッサは、直ぐにリセットシーケンスを開始する。したが って、CLKでのクロック入力は、その時間までは安定でなければならない。 もし、パワー供給が3Vから通常の供給電圧まで上昇したときにシステムがラ ンニングすることができ、システムが外部リセットを必要としないならば、RE SETバーは、接続されてはならず、AD8は、リセットソースとしてドライブ されてはならい。さもなければ、外部リセットは、リセットが論理ハイへ上昇し CPUがランニングされうるようになる前に適切にパワーアップするために、ク ロック、パワーおよびその他のシステム構成要素に対して十分長い間ローに保持 されねばならない。 パワーオンリセットプロセス中、モードビットパワーフェイルがセットされ、 パワーが以前に故障していたことを示す。そのビットは、書込みモードによって クリアされる。 ブートメモリ CPUは、OEバーアクチベートまたはブートオンリーメモリデバイスとして コンフィギュレーションされたバイトワイドメモリからのブーティングをサポー トする。ブートオンリーメモリコンフィギュレーションは、主として、典型的に は遅いブートEPROMが、厳しい状態で使用されるローアドレスメモリページ を行わないようにするために使用される。ブートオンリーメモリは、OEまたは メモリバンクまたはグループ特定(RASxまたはCASx)信号を使用せずに 、バス上にデータを置くようにシステムにワイヤドされている点で、OEバーア クチベートメモリとは異なる。OEDは、初期的には、CPUリセット中にセッ トされ、ブートアッププロセス中にOEバーをディスエーブルして記述のオペレ ーションを行えるようにする。ブートオンリーメモリ選択信号は、外部的に、0 ×800...を含む最上アドレスビットからデコードされる。使用される最上 アドレスビットの数は、システムのI/O装置アドレスデコーディングリクワイ ヤメントに依存している。最下アドレスビットは、それらが通常のメモリに対す るように、個々のバイトおよびセルをアドレスするように接続される。したがっ て、ブートオンリーメモリデバイスは、どのメモリグループがアクセスされてい るかに関係なく、選択される。 リセットプロセス リセットが行われるとき、CPUは、オンチップRAMを初期化されないまま とし、リセットシーケンスを助ける意図的に配置されたビット以外、ほとんどの レジスタを零へクリアする。特に、CPUは、最もコンサバティブなシステムコ ンフィギュレーションへリセットする。テーブル54を参照のこと。モードビッ トパワーフェイルは、パワーオンリセットプロセスによってのみセットされ、リ セットがパワー故障またはリセットアクティブによって起こされたかを決定する ためにチェックされる。 リセット後の最初のバストランザクションは、SMBモードにおいてOEバー のディスエーブル状態で、アドレス0×80000000から始まるメモリグル ープゼロ、メモリバンクゼロにおけるバイトワイドメモリからの4つのバイトの セル読出しである。このアドレスは、I/O装置アドレス0×800...およ びメモリデバイスアドレス0×...Nからなる。OEバーはディスエーブルさ れるので、OEバーアクチベートメモリは応答せず、したがって、ブートオンリ ーメモリが応答しうる。 CPUは、アドレス0×80000000から戻されるバイトをテストする。 もし、そのバイトが0×a5であるならば、ブートオンリーメモリは、応答して おり、OEバーがディスエーブル状態で実行が継続する。さもなければ、ブート オンリーメモリは応答していなかったのであり、CPUは、ブーティングがOE バーアクチベートメモリから生じているとする。それから、CPUは、OEDを クリアし、このメモリがその後のバスサイクルにて応答するようにOEバーをア クチベートする。 ブートストラッププログラム ブートオンリーまたはOEバーアクチベートメモリの場合、バスアクセスは、 バイトワイドメモリデバイスからのAMBモードにて継続する。2番目のバスト ランザクションは、0×80000008でのIOPのためのハードウエアリセ ットアドレスに対するものである。これは、典型的には、小さなリフレッシュ/ 遅延ループへのジャンプを含む。遅延により、バスを使用できるようになり、M PUがそのリセットアドレス0×80000008で実行を開始するようにする 。 もし、システムがMMBモードにワイヤドされているならば、ブーティングは 、ブートオンリーメモリからより簡単に行われる。OEバーアクチベートメモリ からのブーティングも可能であるが、メモリグループゼロがアクセスされるとき に、メモリグループ1、2および3のバンクゼロが選択されないようにするため 外部ゲーティングが必要とされる。 次に、MPUは、実行を開始し、典型的には、システムブートストラップルーチ ンへブランチするようにプログラムされている。MPUブートストラップは、次 のようにプログラムされる。 ●システムハードウエアのために必要とされるコンフィギュレーションレジスタ をセット ●IOPのためのソフトウエアリセットベクトルをセット ●ブートデバイスからメモリ(もし、必要とされるならば)へ初期MPUおよび IOPアプリケーションプログラムをコピー。 ●MPUのためのアプリケーションプログラムへブランチ ●IOPプログラム実行を開始するようにソフトウエアにてIOPをリセット。 ここで、システムスタートアップは完了する。 次のページは、いくつかのスタートアップコンフィギュレーションを記述する 。実際のコードについては、後述する実例ShBoom CPUシステムを参照のこと 。後述されるコンフィギュレーションは、次のようである。 ●バイトワイドブートオンリーメモリからのブートおよびセルワイドR/Wメモ リへのアプリケーションプログラムのコピー。 ●セルワイドブートオンリーメモリからのブートおよびセルワイドR/VVメモ リへのアプリケーションプログラムのコピー。 ●バイトワイドメモリからのブートおよびラン ●セルワイドメモリからのブートおよびラン バイトワイドブートオンリーメモリからのブートおよびセルワイドRA/Vメモ リへのアプリケーションコードのコピー。 このプロセスは、ブートオンリーメモリが前述したようにアクチベートさせら れるようにするために、外部デコーディングハードウエアを必要とする。 ブートオンリーメモリが存在することを示すために、メモリは、位置0に0× a5を有していなければならない。このシグネーチャーバイトは、ブートオンリ ーメモリからのブートプロセスを継続するためにスタートアップ時に検出されね ばならない。 ブートプログラム実行シーケンスは、次のように構成される。 1.IOPは、システムRAMを初期化するために、各メモリグループの8つの RASサイクルを実行するコードへのパワーオンリセット位置からのジャンプを 実行する(リフレッシュサイクルを行なうことにより)。それから、IOPは、 DRAMのためのリフレッシュおよびMPUの実行を許す遅延を含むマイクロル ープに入る。マイクロループは、リフレッシュおよび遅延を繰り返し、IOPが コンフィギュレーション遅延中にさらに別の命令のためにバスへアクセスする必 要をなくし、MPUバスアクセスにより、さらに別のリフレッシュサイクルが必 要とされる前にシステムのコンフィギュレーションを開始することができるよう にする。リフレッシュサイクルは、システムがDRAMを含まない場合には、必 要とされない。 2.MPUは、システムをコンフィギュレーションするためにそのリセット位置 からプログラムコードへのbrを実行する。brは、メモリグループ3にアドレスす るビットを含む。これにより、後に、メモリグループ0、1および2がシステム タイミングリクワイヤメントのためにプログラムされている間、メモリグループ 3のためのコンフィギュレーションがブートオンリーデバイスアクセスタイミン グのために使用される。メモリグループ1または2は、ここに記述する仕方でグ ループ3の代わりに使用されうるのであるが、説明を簡単とするために、メモリ グループ3のみについて説明する。 MPUコンフィギュレーションプログラムコードは、現在のメモリグループお よびグローバルメモリシステムのコンフィギュレーションがバスサイクル中に変 更されないように、命令プレフェッチをホールドオフするように構成される。 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をクリアし 、ブートオンリーメモリがもはや選択されないようになる。 ブートプロセスは完了する。 セルワイドブートオンリーメモリからブートし、アプリケーションプログラムを セルワイドR/Wメモリへコピーする。 このプロセスは、ブートオンリーメモリが前述したようにアクチベートさせら れるようにするために外部デコーディングハードウエアを必要とする。 CPUは、常に、初期的には、バイトワイドメモリからブートする。何故なら ば、これは、リセットコンフィギュレーションであるからである。CPUは、現 在のメモリグループのためのコンフィギュレーションがセルワイドであるように プログラムされるまでは、各アドレスのローバイトからの命令を実行する。この 点までは、ブートデバイスデータの上方24ビットは使用されない。ブートプロ セスは、miscb を書き込むときに、ステップ3を除いて、バイトワイドブートオ ンリーメモリからのブーティングと同じであり、メモリグループ0および3がセ ルワイドであるようにセットする。sto to mcbを有する命令グループにおいて、 次の命令グループへbrを置く。これは、プレフェッチをホールドオフし、次の命 令フェッチがセルワイドであるようにする。ここで注意すべきことは、ブートオ ンリーメモリは、brの前の命令がバイトワイドとして表され、br後の命令がセル ワイドとして表されるように、注意してプログラムされねばならないということ である。 バイトワイドメモリからのブートおよびラン このプロセスは、MGSOバー/RASOバー/CASOバーによってアクチ ベートされるためにブート/ランメモリデバイスを必要とする。 OEバーアクチベートメモリが存在することを示すために、メモリは、OEバー がアサートされないるとき、位置0でのO×a5で応答してはならない。このシ グネーチャーバイトの無いことは、スタートアップで検出され、OEバーがブー トプロセスを続ける必要があることを示す。OEDは、CPUリセット中にセッ トされ、ブートアッププロセス中にOEDをディスエーブルし、シグネーチャー バイトO×a5が検出されないときにクリアされ、OEバーをリイネーブルする 。次のようにブートプログラム実行シーケンスを構成する。 1.IOPは、システムDRAMを初期化するために、各メモリグループについ て8つのRASサイクルを行なうコードへのパワーオンリセット位置からのJU MPを実行する(リフレッシュサイクルを行なうことにより)。それから、それ は、DRAMのためのリフレッシュおよびMPUの実行を可能とすると遅延を含 むマイクロループに入る。マイクロループは、リフレッシュおよび遅延を繰り返 し、さらにリフレッシュサイクルが必要とされる前にシステムのコンフィギュレ ーションを開始するようにMPUバスアクセスを許すコンフィギュレーション遅 延中にらに別の命令のためにIOPがバスにアクセスする必要を無くしている。 リフレッシュサイクルは、システムがDRAMを含まないならば、必要とされな い。 2.MPUは、システムをコンフィギュレーションするためそのリセット位置か らプログラムコードまでbrを実行する。 MPUコンフィギュレーションプログラムコードは、現在のメモリグループお よびグローバルメモリシステムのコンフィギュレーションがバスサイクル中に変 えられないように、命令プレフェッチをホールドオフするように構成される。 3.miscb をプログラミングするとき、必要ならば、mmb をセットする。MMB モードのためにワイヤドされたシステムにおいては、これにより、すべてのメモ リグループについて適切にRASタイプサイクルが行われるようにされる。 4.メモリへのアクセスを最適化するために、メモリグループ1のタイミングを プログラムする。それから、システムコンフィギュレーションの残りのものをプ ログラムする。このプロセス中に、IOPは、典型的には、リフレッシュサイク ルの3つまたはその程度のセットを実行する。MPUは、リフレッシュサイクル 中に適切なコンフィギュレーションレジスタを変えることは可能であるが、これ は、EPROMのバスサイクル時間が長いために起こり難いことである。さらに また、最悪の結果は、単一リフレッシュについてタイミングが不適当となること であるが、これも実際には起こりにくいことである。何故ならば、まだDRAM には保護されるデータがないからである。 5.そのアプリケーションプログラムの実行を開始するためにソフトウエアにて IOPをリセットする。IOPのソフトウエアリセットにより、それは、0×1 0での実行を開始させられ、結果として、IOP PCからA31をクリアし、 ブートオンリーメモリはもはや選択されないようになる。 6.アプリケーションプログラムの実行を開始する。 ブートプロセスは完了する。 セルワイド/メモリからのブートおよびラン このプロセスは、MGSOバー/RASOバー/CASOバーによってアクチ ベートされるためにブート/ランメモリデバイスを必要とする。A31は、ブー ト/ランメモリを選択するときに、使用されない。CPUは、現在のメモリグル ープのためのコンフィギュレーションがセルワイドであるようにプログラムされ るまでは、各アドレスのローバイトからの命令を実行する。この点までは、ブー トデバイスデータの上方24ビットは、使用されない。ブートプロセスは、misc b を書き込むときに、ステップ3を除いて、バイトワイドメモリからのブーティ ングおよびランニングと同じであり、メモリグループ0がセルワイドであるよう にセットする。sto to miscbを有する命令グループにおいて、brを次の命令グル ープへ置く。これは、プレフェッチをホールドオフし、次の命令フェッチがセル ワイドであるようにする。ここで、注意すべきことは、br前の命令がバイトワイ ドとして表され、br後の命令がセルワイドとして表されるように、注意してプロ グラムされなければならないということである。 スタック初期化 CPUがMPUの両方をリセットした後は、スタックは、対応するスタックポ インタがロードされるまでは、初期化されていないとされる。そして、これは、 MPUによって行われる最初のオペレーションのうちの1つである。 リセット後、オペランドスタックは、異常に空である。すなわち、s2は、アロ ケートされておらず、最初のプッシュオペレーション時にアロケートされる。し かしながら、このアイテムをポッピングすることにより、スタックは空とさせら れ、リフィルを必要とする。したがって、最初にプッシュされたアイテムは、ス タックに残されるか、または、saは、オペランドスタックがさらに使用される前 に初期化されるべきである。 1.iodttaまたはiodttbに特定されたデバイスタイプ参照。 2.データは、デバイスとメモリとの間で転送される。 3.データは、転送のパート中にMIFに記憶される。 4.サイクルの全シーケンスは、自動バストランザクションである。 注: 1.iodttaまたはiodttbにおけるI/Oチャンネル転送タイプ 2.IOPはメモリに書き込みしない。 3.どのバスサイクルにてRASまたはCASサイクルが可能かを指示する。R ASサイクルの存在は、システム状態に依存している。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番目のサイクル中に抑制される。 CPUリセット状態は、次のようなコンフィギュレーションを発生する。 スタックは初期化されていない すべての割込み、トラップ、故障、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−クロックサイクルのE WEバーおよびLWEバーライズに対するメモリ書込みデータセットアップタイ ム。39の2X−クロックサイクルのOEバーアクティブタイム。4の2X−ク ロックサイクルに対するデータホールドタイム/バッファディスエーブルタイム 。16の2X−クロックサイクルのRASプレチャージ。2X−クロックサイク ルのRASアドレスホールドタイム。 すべてのI/Oチャンネルタイミングは、最大長さに対してセット(前述のメ モリと同じバスサイタル) リボルビィングDMA優先順位 デバイス転送タイプのすべては、4バイトのバイト転送デバイスに対してセッ ト 実例としてのシーブーム(ShBoom)CPUシステム実例としてのシステム 1 メモリー・グループ0における8ビット巾のEPROMと、256Kの8ビッ ト巾のDRAMとを有する最小システムを図68に示す。メモリー・グループ0 とメモリー・グループ1とは使用しているデバイスに適当なタイミングで形成さ れるべきであり、そして使用しているデバイスに適当にmglds は0×02に、そ してmglds は0×02(256K DRAM)にセットされている。他の仕方と しては、ディフォルト(default)システムが適当である。このシステムはEPR OMから直接ブート(boot)でき、そして作動できる。もしくは、EPRO MはDRAMよりも遅いのが普通であるので、迅速なコード実行のためEPRO MをDRAMにコピーできる。実例としてのシステム 2 メモリー・グループ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を選択する。 EPROMはロケーション0で0×a5でプログラムされなければならない。 メモリー・グループ0は使用しているデバイスに適当なタイミングで構成される べきであり、mg0bw は0(セル巾)に、そしてmg0ds は0×02(256K D RAM)にセットされる。RASを使用してI/Oアドレスをラッチするので、 msras31dとmshacdと、msexa31hacはそれらのクリヤーなディフォルト・コンフィ ギュレーションに残っている。実例としてのシステム 3 メモリー・グループ0における32ビット巾のSRAMと、メモリー・グルー プ1における1MBの32ビット巾のDRAMと、ブート・オンリ・メモリーデ バイスとしての8ビット巾のEPROMと、I/Oアドレス・デコーダとを有す るシステムを図70に示す。SRAMのためのCASアドレスのアドレスラッチ ングは2つの74ACT841透明ラッチにより行われる。DRAMとEPRO Mのアドレス入力は対応するADへ接続できるけれども、そのようにはせずDR AMとEPROMのアドレス入力もラッチの出力へ接続する。ラッチされたCA Sアドレスビットを使って、74FCT138A,3−iデコーダによりI/O アドレス・デコーディングを行う。このデコーダは、A31がセットされるとき 、8つのデバイス・セレクトに接続されて供給する。これらのセレクトはCAS バーがアクチブな間可能化される。それらは、DRAMメモリ・グループが含ま れているときA30とA29とからデコードされ、そしてSRAMメモリ・グル ープが含まれているときA20とA21とからデコードされる。EPROMが8 ビット巾であるので、それらのセレクトはデコードされ、クリヤーなアドレスビ ットを使ってブート・オンリ・メモリーデバイスとしてEPROMを選択する。 0×a5をロケーション0に置いてEPROMをプログラムしなければならな い。mg0bw とmg1bw とを0(セル巾)にセットし、mg0ds を0×0f(SRAM )にセットし、そしてmg1ds を0×02(256K DRAM)にセットし、使 用されているデバイスに適当なタイミングでメモリーグループを構成しなければ ならない。I/OアドレスをラッチするのにRASを使わないので、I/Oに含 まれるRASサイクルの数を減少するようmsras31d,mashacd そしてmsexa31hac をセットできる。 電気的な特性電力と接地 平均電力要請が少ないとシーブームCPUをCMOSに装備する。しかし、C PUのクロック周波数能が高いと、出力の負荷によっては11アンペアにもなる 大きなスイッチング電流を必要とするようになる。こうして、すべてのVccとVss とは十分な電力分布のためにはPWB(プリンテッド・ワイヤー・ボード)内 の面に接続されるべきである。 cVccとcVssとが要求するスイッチング電流の特性は内部クロックと出力ド ライバーの前置ドライバーによって決められる。内部クロックは、クロック遷移 毎に5GHzの周波数成分で約500mAを必要とする。出力ドライバーの前置 ドライバーは、出力の遷移毎に1GHzの周波数成分を有する3Aもの電流を必 要とする。パッケージ・ダイアグラムはcVccとcVssのどちらが内部クロック ・ドライバーに近いかを示す。 ctrVccと ctr1Vssとにより必要とされるスイッチング電流は供給される出力ド ライバーと外部に取り付けた負荷とによって特徴づけられる。16本のピンが一 時に切り換わるのと100pFの平均負荷という最悪の場合を考える。その場合 これらのドライバーは出力の遷移毎に300MHzの周波数成分を持つ2.67 Aを必要とする。スイッチング電流要請は外部負荷の減少に実質的に比例して減 少する。 ad Vccと adVssが必要とするスイッチング電力は供給される出力ドライバーと 外部取付け負荷とによって特徴づけられる。32本のピンが一時に切り換わるの と100pFの平均負荷という最悪の場合を考える。その場合これらのドライバ ーは出力の遷移毎に300MHzの周波数成分を有する5.33Aを必要とする 。スイッチング電流要請は外部負荷の減少に実質的に比例して減少する。パワー・デカップリング 上に説明したようなスイッチング特性であるので、CPUにおけるパワー・デ カップリングを必要とするのが典型である。ESRの低い表面装着キャパシタが 好ましい。一般的に、小型で、値の小さいキャパシタの周波数特性の方が大型で 、値の大きいキャパシタの周波数特性よりも良く(すなわち、直列インダクタン スは少なく、自己共振周波数は高くなる)、小さいのから大きいキャパシタ値を 寄せ集めて使うのが好ましい。最小値のキャパシタとPWBパワー・プレーンに おけるローカル・チャージ(典型的には約100pF/in2)がスイッチング信号 の初期の最高周波数成分の電流要請に応えて供給し、他方最大キャパシタは低い 周波数成分を供給する。適当なデカップリングもEMCの問題を小さくする。 デカップリング・キャパシタが必要とする電荷供給はC=I/(fΔV)から 計算できる。ここで、Iは必要とされる電流、fは周波数、ΔVは許容電圧降下 であって、典型的には0.1Vである。cVccと cVssとは内部クロックに対して 100pFを必要とし、そして出力ドライバーの前置ドライバーに対して0.0 3μFを必要とし、他方ctr1Vccと ctr1Vssとはad Vccと adVssと一緒になって 0.24μFを必要とする。これらの要請は、以下のようにしてほぼ満たされる : 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の中に、これらのピンへできるだけ近づけて分散させて、装着 する。 上記は本質的に最悪の場合の要件を表している。もし平均出力ドライバーの負 荷が100pFではなく50pFであると、6つの0.047μF×7Rキャパ シタを3つないし4つに減らすことができる。これに代わる他の技術的に等価な 仕方でもよい。 シーブームCPUパッケージと同じPWBの側にキャパシタを取り付けること により長さ約25ミルの接続トレースにでき、他方反対のPWBの面にキャパシ タを取り付けると長さ約100ミルを越えるトレースを必要とする。上記のスイ ッチング周波数ではトレースの長さの差がデカップリング効果にかなりの差異を つくりだす。パッケージとキャパシタパワーと接地接続とを、同じ理由で、でき れば、VIP(via-in-pad)でつくるべきである。推奨する接続 総ての出力ドライバーはメモリシステムの重い容量性負荷を直接駆動するよう に分担させられていて、バッファリング・ロジックに関連の外部要素と進行遅延 を最小とする。しかしながら、負荷が増すと消費電力も増すことになり、そして シーブームCPUの作動温度が作動限界を越えないことを保証する手段を講じな ければならなくなる。重いCPUバス負荷を有するシステムはヒート・シンクも しくは強制換気を必要とすることがある。出力ドライバー電流を小さくすること は全消費電力を小さくすることにはならない。電力消費は出力負荷によって変わ り、信号変遷エッジ・レートによって変わらないからである。 システムのコストを低減するため総ての入力の内部回路はもし入力が使われな ければ、安定した入力電圧を与える。こうして、使用されていない入力はプル・ アップを必要としない。 RESETバーはcVccに対し約10Kオームのプル・アップを含んでおり、そ してRESETバーはCMOSシュミット・トリガである。 MFLTバーはcVccに対し約20Kオームのプル・アップを含んでいる。 IN〔7:00〕はそれぞれcVccに対しTBDKオームのプル・アップを含ん でいる。 ADはそれぞれ、cVccとcVssに対し約5Kオームのインピーダンスを持つリピ ータを有している。これらは最後のバス状態を、ピンがその他の仕方で駆動され ていないとき、維持する。クロック シーブームCPUはプロセッサの周波数の半分の外部CMOS発振器を必要と する。この発振器は内部で倍になって(2×クロック・サイクル)、MPUとI OPとを作動し、そして再び倍になって微粒のプログラマブルなバスタイミング (4×クロック・サイクル)を与える。 経済的な発振器は60/40だけの保証されたデューティ・サイクルを有して いるのが典型である。クロックサイクルのどうにか半分がCPUが作動している と見られるクロック周期において現れるのが普通である。こうして、100−M HzCPUは60/40発振器で80MHzへ制限されるであろう。80MHz 、2×−クロックではその40%クロック周期は10nsとなるからである。1 00−MHzの速度を得るには遥に高価な発振器を必要とする。システムのコス トを低減し、そしてシステムの性能を高めるにはCPUの内部に位相ロック・ル ープ回路を使って発振器入力を50/50デューティ・サイクルでロックして安 定させる。 選択された2×−クロック周波数は用途とシステムのハードウエアの要請によ って変わる。IOPが適当なタイミングをつくれるよう、もしくはMIFがバス タイミングを最適化するようクロック周波数を選定する。例えば、もしもシステ ムが35nsバスサイクルを必要とするのであれば、2×−クロックサイクルの 4倍の長さのサイクル(40ns)で100MHzで作動するよりも2×−クロ ックサイクルの3倍の長さのサイクル(35.7ns)で84MHzで作動する 方が有効である。 付録Cのブートコードを参照のこと。 ここに組み込まれていない発明の範囲についての、本発明のこの実施形態の更 なる詳細は、「ShBoomTMマイクロプロセッサ」(Poway CA 92064,1995,Patrio t Scientific Corporation)から入手可能である。この明細書に示した全ての出 版物及び特許出願は、各個々の出版物又は特許出願がリファレンスとして組み入 れられるように特に示されているように、同じ範囲がリファレンスとしてここに 組み入れられる。 本発明は十分に記載されているが、添付した特許請求の範囲の精神又は範囲を 逸脱せずに多くの変形及び修正をすることができることは当業者にとって明らか であろう。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マックルッグ マーティン ジー アメリカ合衆国 カリフォルニア州 95030 ロスガトス マウンテン チャー リー ロード 17617 (72)発明者 ジェンセン ブラッドリー ディー アメリカ合衆国 カリフォルニア州 95123 サン ホセ フィッシュバーン アベニュー 5914 (72)発明者 フィッシュ ラッセル エイチ ザ サー ド アメリカ合衆国 テキサス州 78703 オ ースティン グリーン レーン 1 (72)発明者 ムーア チャールズ エイチ アメリカ合衆国 カリフォルニア州 94062 ウッドサイド スター ヒル ロ ード 410 【要約の続き】 /モードステータスレジスタ(136)及びI/O用の 41個のローカルアドレスレジスタ(102)、コント ロール、形態及び、ステータスを備える。CPU(10 0)は高性能、ゼロオペランド、デュアルスタックアー キテクチュアマイクロプロセシングユニット(MPU) (108)と、データ伝送事象カウント、時間計測、及 び他の時間依存型機能を実行するための命令を実行する インプット−アウトプットプロセッサ(IOP)(11 0)を有する。ゼロオペランド(スタック)アーキテク チュアは、オペランドビットを消滅させる。スタック は、また、レジスタセーブ、及びプロシージャ内の及び プロシージャ間のロードを最小化し、これによって、短 縮化された命令群及び迅速化された実行コードを許容す る。命令は、デコードし、実行するのが簡単であり、M PU(108)及びIOP(110)が100ネイティ ブMIPSピーク実行において単一クロックサイクルで 命令を発生し、完了することを可能にしている。8−ビ ットオプコードを使用すると、CPU(100)は命令 フェッチあるいはプレフェッチが実行される時間ごとに メモリから4つの命令まで得ることができる。これらの 命令は、メモリからこれらを再読み込みすることなしに 反復することができる。このことによって直接DRAM に接続されたときキャッシュなしで、高性能を維持する ことができる。

Claims (1)

  1. 【特許請求の範囲】 1.マイクロプロセッシングユニットと、インプット−アウトプットプロセッサ (IOP)、前記中央処理ユニットと前記IOPに接続されるグローバルメモリ ユニットと、前記中央処理ユニットと前記IOPの前記グローバルメモリユニッ トへのアクセスを調停する手段とを備えたことを特徴とするマイクロプロセッサ システム。 2.前記グローバルメモリユニットが複数のグローバルレジスタを備えているこ とを特徴とする請求項1のマイクロプロセッサシステム。 3.前記中央処理ユニットがアリスメティックロジックユニットと、該アリスメ ティックロジックユニットに接続されるプッシュダウンスタックとを備えている ことを特徴とする請求項1のマイクロプロセッサシステム。 4.さらに、前記グローバルメモリユニット、前記マイクロプロセッサユニット 、及び前記IOPに接続されるメモリインターフェースユニットを備えたことを と特徴とする請求項1のマイクロプロセッサシステム。 5.前記メモリインターフェースユニットと前記マイクロプロセッサユニットの 前記グローバルメモリユニットへのアクセスを調停する手段をさらに備えたこと を特徴とする請求項4記載のマイクロプロセッサシステム。 6.前記メモリインターフェースユニットと該メモリインターフェースユニット に接続された少なくとも1つのインプット−アウトプットデバイスとを更に備え 前記グローバルメモリユニットにおけるそれぞれのストレージロケーションが前 記システムメモリにアドレスするように接続された第1のアドレスビットのグル ーピングと、前記少なくとも1つのインプット−アウトプットデバイスにアドレ スするように接続された第2のアドレスビットのグルーピングとからなる単一の アドレスを保持していることを特徴とする請求項5記載のマイクロプロセッサシ ステム。 7.システムメモリ、少なくとも1つのインプット−アウトプットデバイス及び 前記メモリインターフェースユニットに接続されたシステムバスとをさらに備え ており、前記システムバスが前記システムメモリにアドレスするように接続され た第1のアドレスラインのグルーピングと、前記少なくとも一つのインプット− アウトプットデバイスにアドレスするように接続された第2のアドレスラインの グルーピングを有することを特徴とするマイクロプロセッサシステム。 8.マイクロプロセッシングユニットと、インプット−アウトプットプロセッサ (IOP)、前記中央処理ユニット及び前記IOPがそこを介してシステムバス に選択的に接続されるメモリインターフェースユニットと、所定のインターバル で前記システムバスにへの前記IOPのアクセスを許容する手段とを備えたこと を特徴とするマイクロプロセッサシステム。 9.前記メモリインターフェースユニットが、前記システムバスがアクセスでき る有効タイムスロットを設定する手段とを備えており、前記有効タイムスロット が前記所定のインターバルで前記IOPによる前記システムバスへのアクセスの 間のものとして設定されていることを特徴とするマイクロプロセッサシステム。 10.前記メモリインターフェースユニットが前記システムバスに関係する一つ 以上のバスサイクルに必要なバスアクセス時間を計算し、前記ひとつ以上のバス サイクルの実行のための前記アクセスタイムに等しいかこれより長い前記有効タ イムスロットの一つを割り当てる手段とを備えたことを特徴とする請求項8に記 載のマイクロプロセッサシステム。 11.前記1つ以上のバスサイクルがメモリサイクルであることを特徴とする請 求項10に記載のマイクロプロセッサシステム。 12.前記計算手段の計算が、前記バスアクセスタイムを修正してインプット− アウトプットサイクルのための十分な時間を与えることを特徴とする請求項11 に記載のマイクロプロセッサシステム。 13.スタックキャッシュに接続されたアリスメティックロジックユニットが含 まれるマイクロプロセシングニットを有するマイクロプロセッサシステムであっ て、 前記アリスメティックロジックユニット及びスタックキャッシュに接続され、 前記スタックキャッシュの少なくとも1つのセルに1つの値が含まれているかど うか及びスタックキャッシュの少なくとも1つの他のセルがエンプティであるか どうかを判断することによってスタックキャッシュリソースの有効性を判断する 手段と、 前記スタックキャッシュの有効性を判断する手段に接続され、前記スタックキ ャッシュリソースの有効性に基づき前記アリスメティックロジックユニットによ る命令実行を選択的に禁止する手段とを備えたことを特徴とするマイクロプロセ ッサシステム。 14.前記アリスメティックロジックユニットが、前記スタックキャッシュの個 々のセルのみを一般的にプッシュし、ポップする命令を実行するための手段を有 しており、前記スタックキャッシュリソースの有効性が前記命令のそれぞれの実 行を開始する前に判断されていることを特徴とする請求項13に記載のマイクロ プロセッサシステム。 15.スタックキャッシュに接続されたアリスメティックロジックユニットが含 まれるマイクロプロセシングユニットを有し、前記スタックキャッシュが少なく ともシステムメモリの第1の部分に割りつけられた、マイクロプロセッサシステ ムであって、 前記マイクロプロセシングユニット及び前記スタックキャッシュに接続され、 前記スタックキャッシュのスタックポインタが前記システムメモリの前記第1の 部分の境界領域内のアドレスを仮定しているときに、スタックマネージメントト ラップを実行する手段を備えており、前記第1スタックマネージメントトラップ が前記システムメモリの少なくとも1つの他の部分の有効性を判断するようにな っており、 さらに、前記スタックポインタが前記スタックマネージメントトラップを実行 する前記手段に接続され、前記境界領域内に含まれない前記システムの第1の部 分の定義済の領域内のアドレスを仮定した後前記スタックマネージメントトラッ プの他の実行を阻止する手段とを備えたことを特徴とするマイクロプロセッサシ ステム。 16.マイクロプロセシングユニットと該マイクロプロセシングユニットをシス テムランダムアクセスメモリ(RAM)に接続するメモリインターフェースユニ ットとを備え、前記マイクロプロセッサシステムは、前記システムRAMを使用 する仮想システムメモリを定義するために前記マイクロプロセシングユニットに よって与えられた論理列アドレスを前記システムRAMの物理的列アドレスに変 換する手段を備えていることを特徴とするマイクロプロセッサシステム。 17.さらに、前記メモリインターフェースユニットに接続され、前記システム RAMにアクセスする手段を備え、各列アドレスストローブ(RAS)サイクル がRASプレチャージインターバルを有しており、前記論理列アドレスが前記R ASプレチャージインターバルの間に前記システムRAMの前記物理アドレスに 変換されることを特徴とする前記請求項16に記載のマイクロプロセッサシステ ム。 18.メモリアドレスとして解釈されるべき値を含む少なくとも1つのストレー ジロケーションを含むレジスタユニットと、 前記レジスタユニットに接続されたメモリインターフェースユニットと、 前記メモリインターフェースユニットに接続されたメモリバスと、 前記メモリバスによって前記メモリインターフェースユニットに接続されたシ ステムメモリとを備え、 前記メモリインターフェースユニットが前記メモリアドレスを使用する前記シ ステムメモリに対するメモリバストランザクションののち、増加後の前記メモリ アドレスが2nの偶数倍(nは正の整数)である値を有するときに、前記メモリ アドレスを増加させ、境界検出信号を発生するトランスファロジックを備えたこ とを特徴とするマイクロプロセッサシステム。 19.さらに、前記メモリインターフェースユニットに接続されたマイクロプロ セシングユニットを備え、前記マイクロプロセシングユニットは、前記境界検出 信号が前記メモリインターフェースユニットにより発生された後前記マイクロプ ロセシングユニットをインタラプトする手段とを備えていることを特徴とする請 求項18に記載のマイクロプロセッサシステム。 20.さらに、前記メモリバストランザクションが生じるように要求するための 前記メモリインターフェースユニットへの入力としてトランスファリクエスト信 号を発生する、前記メモリインターフェースユニットに接続された手段を備えた ことを特徴とする請求項18に記載のマイクロプロセッサシステム。 21.さらに、前記メモリインターフェースユニットに接続されたIOPを有し 、前記トランスファリクエスト信号を発生する手段が、命令を実行する手段であ り、前記命令の1つが前記トランスファリクエスト信号を活性化するようになっ ていることを特徴とする請求項20に記載のマイクロプロセッサシステム。 22.前記メモリアドレスの増加及びその結果そしての前記境界検出信号が事象 のカウントに使用されることを特徴とする請求項18に記載のマイクロプロセッ サシステム。 23.さらに、前記境界検出信号が発生した後、さらなるトランスファを阻止す るように前記トランスファロジックを不能にするために前記メモリインターフェ ースユニットに接続された手段を備えたことを特徴とするマイクロプロセッサシ ステム。 24.さらに、前記メモリバスに接続されたインプット−アウトプットデバイス を備え、前記メモリアドレスが前記システムメモリをアドレスするのに使用され る第1のアドレスビットのグルーピングと前記インプット−アウトプットデバイ スをアドレスするに使用される第2のアドレスビットのグルーピングを備えてい ることを特徴とするマイクロプロセッサシステム。 25.中央処理ユニットと前記中央処理ユニットに接続されたビットインプット レジスタとを備え、前記ビットインプットレジスタが少なくとも一つのビットラ インからロジカルイップットを受け取るようになったマイクロプロセッサシステ ムにおいて、 前記少なくとも1つのビットラインに接続され、そのロジックレベルを判断す るために前記少なくとも1つのビットラインを最初にサンプリングするラッチ手 段と、 前記ラッチ手段に接続され、前記少なくとも一つのビットラインにアサインさ れたレジスタに前記ロジックレベルをストアするゼロパーシステンスコントロー ルユニットとを有し、 前記ゼロパーシステンスコントロールユニットが前記中央処理ユニットによっ て定義済の信号を具備するまで、前記ロジックレベルが前記レジスタにストアさ れた状態になっていることを特徴とするマイクロプロセッサシステム。 26.さらに、前記ゼロパーシステンスコントローラに接続されたダイレクトメ モリアクセスコントローラ(DMAC)を備え、前記DMACは前記定義済の信 号を発生させる手段を備えていることを特徴とする請求項25に記載のマイクロ プロセッサシステム。 27.マイクロプロセシングユニット、IOP、及び前記中央処理ユニット及び IOPを前記システムバスに選択的に接続するメモリインターフェースユニット とを備え、前記IOPが前記メモリインターフェースユニットにシステムアドレ ス情報を与えるプログラムカウンタ手段を備えていることを特徴とするマイクロ プロセッサシステム。 28.さらに、前記IOP及びシステムバスに接続され、所定のインターバルで 前記システムバスへの前記IOPのアクセスを許容する手段を備えていることを 特徴とする請求項27に記載のマイクロプロセッサシステム。 29.前記IOPが前記システムバスに接続され、前記システムバスから受け取 ったデータをラッチするラッチ手段を備えていることを特徴とする請求項27に 記載のマイクロプロセッサシステム。 30.前記IOPが前記プログラムカウンタ手段によって制御されるマルチプレ クサ、命令ラッチ、及びデコード/実行モジュールとを備え、前記マルチプレク サが前記命令ラッチ及び前記デコード/実行モジュールとの間に接続されている ことを特徴とする請求項27に記載のマイクロプロセッサシステム。 31.スタックキャッシュを有するマイクロプロセシングユニットを備えたマイ クロプロセッサシステムにおいて、フローチングポイントマスマティカル命令を 可能にするシステムが、 前記スタックキャッシュのセル内の値によりフローチングポイントオペレーシ ョンを実行するアリスメティックロジックユニット手段と、 前記アリスメティックロジックユニット手段に接続され、前記フローチングポ イントオペレーションの選択された実行に応答してフローチングポイントイクセ プションを発生する手段と、 前記アリスメティックロジックユニット手段及び、前記フローチングポイント イクセプションを発生する手段に接続され、前記フローチングポイントイクセプ ションに応答して、前記マイクロプロセシングユニットが定義済のフローチング ポイントルーチンを実行できるようにするモードレジスタ手段とを備えたことを 特徴とするマイクロプロセッサシステム。 32.前記フローチングポイントオペレーションを実行する手段が、前記スタッ クキャッシュに接続され、テストイックスポーネント、イクストラクトイクスポ ーネント、アッドイクスポーネント、及び回復イクスポーネント命令を備えてい ることを特徴とする請求項31に記載のシステム。 33.スタックキャッシュを有するマイクロプロセシングユニットを備えたマイ クロプロセッサシステムにおいて、ブレイクポイント命令を実行する方法が、 前記ブレイクポイント命令のメモリアドレスを前記スタックキャッシュに押し 込むステップと、 ブレイクポイントサービスルーチンを実行するステップとを備えていることを 特徴とする方法。 34.システムメモリと1つ以上のインターナルレジスタを有するマイクロプロ セシングユニットとを備えたマイクロプロセッサシステムであって、 前記システムメモリが前記マイクロプロセシングユニットと通信するための第 1アドレススペースを割り当てられているものにおいて、 前記マイクロプロセシングユニット内にデータを伝送する方法が、 前記一つ以上のインターナルレジスタを前記第1アドレススペースとは異な る第2アドレススペースに割り当て、 前記第2アドレススペース内のアドレスによって識別される前記1つ以上のイ ンターナルレジスタの部分に及びこれらからのデータを伝送するステップとを備 えたことを特徴とする方法。 35.スタックキャッシュを有するマイクロプロセシングユニットを含むマイク ロプロセッサシステムにおいて、 アドレスアリスメティックのための方法が、 前記スタックキャッシュの第1のセルの第1のアドレス値をストアし、 前記スタックキャッシュの第2のセルに第2のアドレス値をストアし、 前記第1アドレス値を前記第2アドレス値に加算して、前記スタックキャッシ ュの前記第1セル内に結果としての合計値をストアするステップとを備えたこと を特徴とする方法。 36.スタックキャッシュを有するマイクロプロセシングユニットを備えたマイ クロプロセッサシステムにおいて、 コピーバイトオペレーションを実行する方法が、 セル内にストアされた複数のデータバイトのうちの少なくともの1つの意味の あるものを読み取り、 前記複数のデータバイトの少なくとも他の1つを前記少なくとも1つの意味 を有するデータバイトで置換するステップとを備えたことを特徴とする方法。 37.スタックキャッシュとキャリーレジスタとを有するマイクロプロセシング ユニットを備えたマイクロプロセッサシステムにおいて テストバイトオペレーションを遂行する方法が、 前記スタックキャッシュのセル内にストアされた複数のバイトのそれぞれを読 み取り、 任意の前記バイトがゼロ値であるとき、前記キャリーレジスタに第1論理値を ストアし、 別途前記キャリーレジスタに第2論理値をストアすることを特徴とする方法。 38.システムメモリ、前記システムメモリに接続され、前記システムメモリに 接続されたスタックキャッシュ及び前記スタックキャッシュに接続されたプログ ラムカウンタを有するマイクロプロセシングユニットとを備えたマイクロプロセ ッサシステムにおいて、 単一のステッププロセシングシステムが、 前記スタックキャッシュ及び前記プログラムカウンタに接続され、前記スタッ クキャッシュの第1セルからの第1メモリアドレスを前記プログラムカウンタに ロードする手段と、 前記プログラムカウンタに接続され、前記第1メモリアドレスに対応するロケ ーションにおいて、前記マイクロプロセッサシステムの前記システムメモリにス トアされた第1命令を実行する手段と、 この間に第2メモリアドレスが前記第1セルにロードされる単一ステップトラ ップルーチンを実行する手段とを備え、 前記第1命令につづく第2命令が、前記第2メモリアドレスに対応する前記シ ステムメモリのロケーションにストアされるようになっていることを特徴とする システム。 39.システムメモリ、及びスタックキャッシュを有する前記システムメモリに 接続されるマイクロプロセシングユニットとを有するマイクロプロセッサシステ ムにおいて、 スタックキャッシュマネージングシステムが、 前記スタックキャッシュ内に現に含まれるセルの数を判断する手段と、 前記セルの数を判断する前記手段に接続され、スタックキャッシュの定義済の 深さと前記セルの数との比較を実行する手段と、 前記比較の実行手段に接続され、前記比較に基づき現在のスタック深さの指示 を与える手段とを備えたことを特徴とするシステム。 40.システムメモリと、スタックキャッシュを有する前記システムメモリに接 続されたマイクロプロセシングユニットとを備えたマイクロプロセッサシステム において、 スタックキャッシュマネージングシステムが、 前記スタックキャッシュに接続され、前記スタックキャッシュ内に現に含まれ るセルの数を判断するスタック深さ手段と、 前記スタック深さ手段に接続され、前記スタック深さの指示を与える手段とを 備えたことを特徴とするシステム。 41.システムメモリと、スタックキャッシュを有するマイクロプロセシングユ ニットを有するマイクロプロセッサシステムにおいて、 スタックキャッシュマネージングシステムが、 前記スタックキャッシュに接続され、前記スタックキャッシュ内の現存する数 のセルを判断する手段と、 前記セルの現在の数を判断する手段に接続され、前記セルの現存の数とスタッ ク深さとを比較することによって前記スタックキャッシュに付加することかでき るセルの数を計算する手段と、 前記スタックキャッシュ及び前記スタックキャッシュに付加することができる セルの数を計算する手段に接続され、前記スタックキャッシュに付加することが できる前記セルの数に等しい前記セルの数を前記スタックキャッシュ内の前記現 存のセルに付加する手段とを備えたことを特徴とするシステム。 42.さらに、前記スタックキャッシュに接続され、前記スタックキャッシュ内 の前記セルの付加的な数を前記スタックキャッシュの前記現有のセルの数から除 外する手段と、前記システムメモリから前記スタックキャッシュに新しいセルの 前記付加的な数をロードする手段とを備えたことを特徴とする請求項41に記載 のシステム。 43.アリスメティックロジックユニットと該アリスメティックロジックユニッ トに接続されたプッシューダウンスタックとを有するマイクロプロセシングユニ ットを備えており、 前記アリスメティックロジックユニットはビットをシフトするビットシフト手 段を有しており、 該ビットシフト手段は1つ以上の部分シフトでビットのカウントをシフトする ようになっており、前記カウントが各部分シフトでシフトされた数だけ減少し、 前記シフトが、前記カウントがビット倍数より大きい間、ビット倍数だけ実行さ れ、前記倍数がその後減少し、かつその後前記カウントがゼロになるまで前記カ ウントのシフト及び減少が反復されるようになっていることを特徴とするマイク ロプロセッサ。 44.前記倍数が最初は8であり、前記倍数は前記カウントが8より小さくなっ たとき1に減少することを特徴とする請求項43に記載のマイクロプロセッサ。
JP51584897A 1995-10-06 1996-10-04 縮小命令セット・コンピューター・マイクロプロセッサーの構造 Expired - Lifetime JP3739797B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US540895P 1995-10-06 1995-10-06
US60/005,408 1995-10-06
PCT/US1996/016013 WO1997015001A2 (en) 1995-10-06 1996-10-04 Risc microprocessor architecture

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005240441A Division JP3955305B2 (ja) 1995-10-06 2005-08-22 縮小命令セット・コンピュータ・マイクロプロセッサーの構造

Publications (2)

Publication Number Publication Date
JPH11513825A true JPH11513825A (ja) 1999-11-24
JP3739797B2 JP3739797B2 (ja) 2006-01-25

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 After (4)

Application Number Title Priority Date Filing Date
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 縮小命令セット・コンピュータ・マイクロプロセッサーの構造

Country Status (6)

Country Link
US (6) US20070271442A1 (ja)
EP (1) EP0870226B1 (ja)
JP (5) JP3739797B2 (ja)
AT (1) ATE241170T1 (ja)
DE (1) DE69628326D1 (ja)
WO (1) WO1997015001A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185176B2 (en) 2002-06-03 2007-02-27 Matsushita Electric Industrial Co., Ltd, Processor executing SIMD instructions

Families Citing this family (47)

* Cited by examiner, † Cited by third party
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
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
US10157269B2 (en) 2010-05-06 2018-12-18 John K. Thomas Verification system for secure transmission in a distributed processing network
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US8700919B2 (en) 2010-05-25 2014-04-15 Via Technologies, Inc. Switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
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
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
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
US8560997B1 (en) * 2012-07-25 2013-10-15 Taiwan Semiconductor Manufacturing Company Limited Conditional cell placement
EP3651154A1 (en) 2012-11-30 2020-05-13 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
US9411747B2 (en) * 2014-02-04 2016-08-09 Freescale Semiconductor, Inc. Dynamic subroutine stack protection
US9734326B2 (en) 2014-02-04 2017-08-15 Nxp Usa, Inc. Dynamic interrupt stack protection
JP6128013B2 (ja) * 2014-02-27 2017-05-17 株式会社デンソー 回転角検出装置、および、これを用いた電動パワーステアリング装置
JP6183251B2 (ja) * 2014-03-14 2017-08-23 株式会社デンソー 電子制御装置
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
WO2017127564A1 (en) 2016-01-19 2017-07-27 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 中国航空工业集团公司西安航空计算技术研究所 一种基于栈技术的故障诊断方法
WO2022231649A1 (en) * 2021-04-27 2022-11-03 Microchip Technology Inc. System of multiple stacks in a processor devoid of an effective address generator
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 安庆师范大学 具有多个存储装置的计算机的访问方法及装置

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253425A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4104976A (en) * 1977-03-21 1978-08-08 The Singer Company Programmable sewing machine
US4100865A (en) * 1977-03-21 1978-07-18 The Singer Company Programmable sewing machine operable in a plurality of modes
US4108090A (en) * 1977-03-21 1978-08-22 The Singer Company Programmable variable speed for sewing machine
US4092937A (en) * 1977-03-21 1978-06-06 The Singer Company Automatic stitching by programmable sewing machine
US4222103A (en) * 1978-09-25 1980-09-09 Motorola, Inc. Real time capture registers for data processor
US4255785A (en) * 1978-09-25 1981-03-10 Motorola, Inc. Microprocessor having instruction fetch and execution overlap
US4326247A (en) * 1978-09-25 1982-04-20 Motorola, Inc. Architecture for data processor
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
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
US4306287A (en) * 1979-08-31 1981-12-15 Bell Telephone Laboratories, Incorporated Special address generation arrangement
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
US4887235A (en) * 1982-12-17 1989-12-12 Symbolics, Inc. Symbolic language data processing system
US4922414A (en) * 1982-12-17 1990-05-01 Symbolics Inc. Symbolic language data processing system
EP0185215B1 (en) * 1984-11-21 1993-09-22 Harris Corporation Forth-like language microprocessor
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
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
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
JPH01134544A (ja) * 1987-11-20 1989-05-26 Hitachi Ltd メモリアクセス方式
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
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
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
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
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
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
JPH03203087A (ja) * 1989-12-28 1991-09-04 Canon Inc メモリアクセス制御装置
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
EP0488566A3 (en) * 1990-11-29 1992-10-21 Sun Microsystems, Inc. Method and apparatus for fast page mode selection
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 Nat Semiconductor Corp 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
JPH06215559A (ja) * 1993-01-14 1994-08-05 Fuji Xerox Co Ltd ページメモリアクセス方式
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
US6085307A (en) * 1996-11-27 2000-07-04 Vlsi Technology, Inc. Multiple native instruction set master/slave processor arrangement and method thereof
US5953741A (en) * 1996-11-27 1999-09-14 Vlsi Technology, Inc. Stack cache for stack-based processor and method thereof
US6289418B1 (en) * 1997-03-31 2001-09-11 Sun Microsystems, Inc. Address pipelined stack caching method
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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185176B2 (en) 2002-06-03 2007-02-27 Matsushita Electric Industrial Co., Ltd, Processor executing SIMD instructions

Also Published As

Publication number Publication date
DE69628326D1 (de) 2003-06-26
JP2006024233A (ja) 2006-01-26
JP2009205698A (ja) 2009-09-10
US20080072021A1 (en) 2008-03-20
US20070271442A1 (en) 2007-11-22
WO1997015001A2 (en) 1997-04-24
US20080077911A1 (en) 2008-03-27
ATE241170T1 (de) 2003-06-15
EP0870226A2 (en) 1998-10-14
JP2007042131A (ja) 2007-02-15
JP3739797B2 (ja) 2006-01-25
JP3955305B2 (ja) 2007-08-08
EP0870226A4 (en) 2001-08-08
JP2009080827A (ja) 2009-04-16
EP0870226B1 (en) 2003-05-21
US20080071991A1 (en) 2008-03-20
US20080091920A1 (en) 2008-04-17
WO1997015001A3 (en) 1998-04-09
US20070271441A1 (en) 2007-11-22
JP4859616B2 (ja) 2012-01-25

Similar Documents

Publication Publication Date Title
JP3739797B2 (ja) 縮小命令セット・コンピューター・マイクロプロセッサーの構造
US9195786B2 (en) Hardware simulation controller, system and method for functional verification
KR101835056B1 (ko) 논리적 코어들의 동적 맵핑
KR100403405B1 (ko) 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로
US8583894B2 (en) Hybrid prefetch method and apparatus
US10621100B1 (en) Unified prefetch circuit for multi-level caches
EP0203304B1 (en) Data processor controller
JPH05502125A (ja) 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法
JP2005502119A (ja) 複数スレッドの同時実行に対応するコンピュータシステムにおける割込み処理の方法
EP3022654A1 (en) Access map-pattern match based prefetch unit for a processor
WO2006082154A2 (en) System and method for a memory with combined line and word access
US5809514A (en) Microprocessor burst mode data transfer ordering circuitry and method
US20060248318A1 (en) Method and apparatus for sharing memory among a plurality of processors
US20120072632A1 (en) Deterministic and non-Deterministic Execution in One Processor
WO2022066967A1 (en) Prefetch disable of memory requests targeting data lacking locality
JP2003347930A (ja) プログラマブル論理回路及びコンピュータシステム並びにキャッシュ方法
EP0811921A2 (en) Method for accessing memory
US20090100220A1 (en) Memory system, control method thereof and computer system
Trickett et al. Understanding IBM pSeries Performance and Sizing

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050523

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131111

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term