JPH02287741A - メモリ参照について選択可能整列検査を実行するマイクロプロセツサ - Google Patents
メモリ参照について選択可能整列検査を実行するマイクロプロセツサInfo
- Publication number
- JPH02287741A JPH02287741A JP8507490A JP8507490A JPH02287741A JP H02287741 A JPH02287741 A JP H02287741A JP 8507490 A JP8507490 A JP 8507490A JP 8507490 A JP8507490 A JP 8507490A JP H02287741 A JPH02287741 A JP H02287741A
- Authority
- JP
- Japan
- Prior art keywords
- data
- microprocessor
- address
- bit
- program
- 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
Links
- 238000012360 testing method Methods 0.000 title description 3
- 230000011218 segmentation Effects 0.000 claims abstract description 16
- 238000001514 detection method Methods 0.000 claims abstract description 12
- 230000000873 masking effect Effects 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 102000004245 Proteasome Endopeptidase Complex Human genes 0.000 description 1
- 108090000708 Proteasome Endopeptidase Complex Proteins 0.000 description 1
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 244000144992 flock Species 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
め要約のデータは記録されません。
Description
」によ多制御される整列検査機能を実行する方式を扱う
。この概念を使用すると、プログラマ−は、メモリ参照
が整列されていないアドレスに対するものである場合に
故障が発生されるか否かを選択することがきる。本発明
の現時点で好tLい実施例は、486 TMプロセッサ
としても知られているIntel 80486マイクロ
プロセツサのアーキテクチャに組込まれる。486
マイクロプロセッサは、同じように386 プロセッ
サと呼ばれているIntelの80386マイクロプロ
セツサを改良したものである。(Intel +803
86.386.80486及び486はIntelCo
rporationの商標である。)80486マイク
ロプロセツサは、X86シリーズのプロセッサの中の1
つの型である32ビツト高性能プロセツサである。これ
は、オブジェクトコードに関し、80386プロセツサ
と互換性ヲ有する。従って、80486プロセツサは、
このシリーズの以前のプロセッサ用として開発されたコ
ドを実行することができる。概して、80486マイク
ロプロセツサは、命令1つ当1)の平均クロック数によ
シ測定したときに性能を少なくとも2.5倍に向上させ
ることを目的として、80386アキテクチヤを再実現
したものである。本発明は、この性能向上を助ける80
486マイクロプロセツサのそのような1つの特徴を表
わす。
整列されていないアドレスに対するものである場合に故
障を発生するか否かを選択することができるという能力
を、マイクロプロセッサに付加スる。従来、1つのデー
タのアドレスは、アドレスがデータの長さの倍数である
場合に、整列していると考えられる。1バイトのデータ
は常に整列している。2バイトのデータは、そのアドレ
スが2の倍数であれば、整列している。4バイトのデー
タは、そのアドレスが4の倍数であれば、整列している
。その他の長さをもつデータの場合も同様である。従っ
て、アドレスがデータのサイズの倍数であるときには、
データは一般に整列している。
ると、整列メモリ参照の重要性は明白になる。多くのコ
ンピュータにおいては、メモIJ ハ、データサイズが
メモリの幅と等しくなるように編成されている。32ビ
ツトにより編成されたメモリであれば、40倍数である
アドレスを有する32ビツトの項目を、1つのメモリク
ロックサイクルの中でアクセスすることができる。(3
2ビツト語は倍長語又はd語と呼ばれる場合が多い−1
つのd語は4つの別個のバイト、たとえば、0゜1.2
及び3から構成されている。)80386CPUと、8
0486 CPUは、共に、任意のアドレスでデータを
参照することができる。参照が整列されていない場合に
は、マイクロプロセッサは、性能の上で不利になる。こ
れは、データをアクセスする、すなわち、参照するため
に、追加のメモリサイクルを必要とするという状況とな
って現われる。
合を考える。従来の方法においては、プロセッサは2つ
のd語を参照する。すなわち、まず、バイト3を取出す
ためにアドレス0で始まるd語を参照し、次に、残るバ
イト4.5及び6を取出すためにアドレス4で始まるd
語を参照することになるであろう。必要なバイトをアク
セスした後、プロセッサは、何らかの方法によって、そ
れらのバイトを一体に接合して、データ項目、すなわち
、メモリ参照を再構成する。すなわち、従来の方法は、
少なくとも2つの点で、すなわち、(1)少なくとも2
つの付加メモリサイクルが必要である点と、(2)デー
タ項目を新たな記憶場所に再構成、す力わち「接合」す
るという点で不利である。
の方法が試みられている。たとえば、80386におい
ては、メモリ参照ごとに、それを進行するインラインコ
ードを挿入することによシ、整列検査を実行することが
できる。このコードはレジスタへアドレスを発生し、次
に、レジスタの下位ビットをマスキングする。マスキン
グ動作は、同じレジスタコンポーネントを取出し且つ整
列変位を加えることによシ、実現される。基本的には、
この方法を使用して各メモリ参照を進行するには、一連
の3つの別個の命令が実行されなければならない。通常
のプログラムでは、それらの命令の半分が何らかの方法
によシメモリを参照するので、これは許容しえないオー
バヘッドを表わす。すなわち、性能は20から30パー
セントも劣化してしまう。
らないものもあシ、その中で最も顕著なのが新しいRI
SCプロセッサである。このような機械は、整列され
ていないデータへの参照に際して、必ず故障を起こす。
故障が発生されることになる。非人工知能環境の多く(
特にC0BOL)は整列されていないデータを参照する
能力から利益を受けているので、これは問題である。
るが、上述のような性能の低下を伴なう。
talのVAX 及びIBM370を含む。従って、こ
の分野で必要とされているのは、上述のような性能上の
不利がなく、任意に整列されていないアドレスに対し故
障を発生する新たな方法である。
ーによシ選択可能であυ且つ追加命令を必要としない整
列検査を実行する手段を提供する。
ンクレベル、スナワチ、アプリケーションレベルト、オ
ペレーティングシステムレベルトニおけるマスキングを
支援する。トラップ又は故障自体をマスクすることが可
能であるので、本発明は、ユーザーに、整列検査を制御
する2つの機会を与えることになる。
ない状態を検出する手段を提供することである。プログ
ラムデバッグのために、データを整列させることは性能
を和尚に向上させる。
下位のアドレスビットを使用し、続いて、整列アドレス
を得るためにそれらの夛グビットを「調整する」ように
小さな変位を使用するある穫の人工知能(AI )プロ
グラムにおいて、整列故障を発生する手段を提供するこ
とでおる。本発明は、性能の大きな低下を伴なわずに、
ポインタの型の検査を実行する。実験測定によれば、本
発明は、80386マイクロプロセツサで実行される平
均的なAIプログラムについて、30パーセントの性能
向上を実現することがわかっている。別の研究では、他
の機械において20パーセントの向上が示されている。
クロプロセッサを説明する。検出手段は、それがイネー
ブルされ且つ整列していないデータオブジェクトに対し
て参照が実行されたときに、現在プログラムの実行を中
断する故障が発生されるように、選択可能である。検出
手段は、ここで説明スるマイクロプロセッサのセグメン
テーション装置の一部である。好ましい実施例において
は、マイクロプロセッサは、様々な%権しベルであるい
くつかのデータオブジェクトに対するアクセスを許可す
る保護メカニズムをさらに有する。
つのモードビットを含む。第1のモードビットは、最下
位の特権をもつ実行レベル(すなワチ、アプリケーショ
ンレベル)で故障のマスキングを実行し、第2のモード
ビットは、最上位の特権レベル(スなわチ、オペレーテ
ィングシステムレベル)で故障のマスキングを実行する
。従って、モードビット、ず力わち、マスクビットに対
するアクセスは2つの異なるレベルで行われることに々
る。2つのモードビットは、検出手段をイネーブルさせ
るべきときには、共に、「1」にセットされなければな
らない。整列検査を任意にイネーブルするために2つの
別個のモードビットを使用することによシ、プログラミ
ングに関して最良の融通性が得られる。
な説明及び添付の図面から、さらに十分に理解されるで
あろう。ただし、好ましい実施例の説明と、それを示す
図面は、本発明を特定の実施例に限定するものと解釈さ
れてはならず、単に説明と理解を助けるために提示され
るにすぎない。
発生すべきか否か含選択する手段を含むマイクロプロセ
ッサを説明する。以下の説明中、本発明を完全に理解さ
せるために、特定のビット長さ、レジスタ内容、論理図
などの多数の事項を特定して詳細に挙げるが、本発明を
実施する際に、そのような特定の詳細な事項を採用する
必要はないことは、当業者には自明であろう。また、本
発明を無用にわかシにくくするのを避けるため、周知の
構造や回路を詳細に示さない場合もある。
ロプロセツサのいくつかのアーキテクチャ上の特徴を考
えてみることは、本発明を理解するためには有益である
。
が我々の社会で果たす役割がますます重要になるにつれ
て、保護仮想アドレスモト(保護モード)を実現するマ
イクロプロセッサは多くなっている。80486マイク
ロプロセツサに組込まれた保護モードによれば、複数の
アプリケーションを同時に実行することができるが、1
つのアプリケーションにおける故障が他のアプリケーシ
ョンに影響を及ぼさないように、アプリケーションを互
いに隔離している。保護メカニズムの中心を成す特徴は
セレクタである。プログラムは、システムのいずれかの
部分を直接アクセスするのではなく、1つのシステムオ
ブジェクトに対するアクセスを許可するセレクタを扱う
。各オブジェクトに対し、それと関連する情報、たとえ
ば、そのオブジェクトの場所、サイズ、使用制限などに
関する情報が存在している。80486マイクロプロセ
ツサにおいては、記述子と呼ばれるセレクタによシ参照
されたデータを、オペレーティングシステムのみがアク
セスする。
リセグメントはシステムオブジェクトの一種である。そ
の他のシステムオブジェクトとしては、保護メカニズム
を支援する表、プロセッサ状態を記憶す、る特殊セグメ
ントなどがある。ハードウェアは、セレクタを検査する
ことによシ、そのセレクタがどの記述子と関連している
かを判定し、記述子が指示しているオブジェクトを判定
する。記述子が指示する項目の1つは、オブジェクトの
特権レベルである。プログラムがセレクタによってオブ
ジェクトに対するアクセスを要求したとき、アクセスは
否定される(要求が保護メカニズムの規則に違反してい
る場合には、制御は、そのプログラムから、オペレーテ
ィングシステム中の指定ルーチンへ移行する)か、アク
セスは認められはするが許可されない(たとえば、オブ
ジェクトが、現在、メモリにない場合には、オペレテイ
ングシステムのルーチンはオブジェクトをメモリ内ヘス
ワツプし、制御をプログラムに戻す)か、要求された特
権レベルでアクセスが許可される。
1.0と番号付けされた、徐々に大きくなる4つの特権
レベルを支援する。特権レベル0は最上位の特権レベル
である。コードセグメント(C8)レジスタにおけるセ
レクタの特権レベルは現在実行中のルーチンの優先を識
別するもので、現在特権レベル(CVL) と呼ばれ
る。信頼性を保つため、オペレーティングシステムの最
も信頼しうるコードのみが最上位特権レベル(CPL=
0)でランする。故障を生じるおそれのあるアプリケー
ションは最下位レベル(CPL=3) でランされる。
て示している。(4!権という用語は、通常では許可さ
れない権利又は利益を示唆する。
リングでランする手順は外側のリングにあるデータオブ
ジェクトをアクセスすることができるが、外側のリング
の手順はよシ大きな特権をもつ内側のリングのオブジェ
クトをアクセスできない。)以下にさらに詳細に説明す
るが、本発明では、整列検査機能をアプリケーションレ
ベル(たとえ11’f、CPL=3 )ト、オペレーテ
ィングシステムレベル(たとえば、CPL=0)の双方
でマスキングすることができる。このように、2つの異
なる特権レベルでマスキングを選択可能である念め、本
発明は、整列していないデータの参照時に常にトラップ
するか、全くトラップしないかのいずれかである機械と
も互換性をもっている。1例を挙げれば、オペレーティ
ングシステムレベルで、整列検査機能をリセット時にデ
ィスエーブルすることによシ、それに80386マイク
ロプロセツサとの互換性を与えても良い。
語においては、コンパイル時にデータの型が宣言された
とき、セレクタにはそのデータの型が永久的にタグ付け
される。言いかえれば、プログラムの実行中に、データ
の型は変化しない。しかしながら、LISP又はPro
logなどのいくつかのAI言語では、ラン/時間の型
の割当てにさらに融通性が盛シ込まれている。そのよう
な言語の場合には、プログラムの実行につれて、データ
の型は変化する可能性がある。そのため、ユーザは、複
数の型に作用する関数(たとえば、Xを整数、短精度実
数、長精度実数、複索数などとしたときの〆Y)を規定
することができる。従って、プログラム中の特定の1点
におけるデータの型に応じて、複数の機能を実行できる
。
ては、ポインタフィールドはアドレスと、データの型の
双方を指示する。データの型を識別する項目はタグと呼
ばれる。プログラマ−は、32ビツトポインタの最下位
2ビツトを最上位タグピットとして使用する。データの
型がある1つの盤でなければならないか又は演算が無効
である場合、あるいは、プログラマ−がデータの型を圧
倒的に多い頻度である1つの型であると予期する場合に
は、ユーザーは、タグが所与の値であると仮定するコー
ドを発生することができる。このコードは下位タグピッ
トを取消す。たとえば、タグが2の値を有するならば、
コードは、タグピットを相殺するために、−2の値を加
算すると考えられる。
。変位が正しければ、メモリ項目は整列しており、故障
又はトラップを受けずにデータを参照することができる
。
がタグと整合している限ムメモリ参照は整列している。
明の整列検査装置は、任意に、トラップ又は故障を発生
する。これが起こると、現在実行場所(C8:EIP)
と、フラグレジスタの内容(EFLAGS) とはスタ
ックにセーフ東れ、制御は、割込みハンドラとして知ら
れるソフトウェアルーチンへ移行する。それぞれの故障
条件と関連する1つの特定の割込み番号がある。
念後、その故障の原因となった命令を指示する。そこで
、オペレーティングシステムはその条件を修正すること
ができ、プログラムの実行を再開することができる。
説明する。第4図には、以上説明した整列検査機能を組
込んだ本発明によるマイクロプロセッサが全体ブロック
線図の形で示されている。マイクロプロセッサは、32
ビット外部データバス30に結合されると共に、アドレ
スバス31及びいくつかの別の制御線にさらに結合され
ているバスインタフェース装置10を含む。バスインタ
フェース装置10が扱うのは物理(ハードウェア)アド
レスのみであるので、オペランドアドレスは、まず、セ
グメンテーション装置14と、ベージング装置13とを
通過しなければならない。また、バスインタフェース装
置10には、キャッシュ装置12と、先取シ装置11も
結合されている。先取シ装置は、次の命令アドレスのメ
モリの内容を取出すために、絶えずバスインタフェース
装置に対し間合せしている。先取り装置は、データを受
信すると、直ちにそのデータを待ち行列の中に挿入し、
待ち行列が一杯でなければ、さらに別の32ビツトのメ
モリ内容を要求する。
ュメモリのアクセツシングlt制御tルコントローラと
を含む。先取シ装置11と、キャッシュ装置12とは、
共に、32ビツトバスを介してセグメンテーション装置
14に結合されている。
ドレスに変換する。
inear Address (線形アドレス))バ
ス」とも呼ばれる32ビツト線形アドレスバス20を介
して、ベージング装置13と、キャッシュ装置12とに
結合されている。ベージング装置13は、セグメンテー
ション装置14によ多発生された線形アドレスを取出し
、それらを物理アドレスに変換する。ページングがディ
スエーブルされた場合には、セグメンテーション装置の
線形アドレスが物理アドレスになる。ベージングがイネ
ーブルされると、80486マイクロプロセツサの線形
アドレスはページと呼ばれる複数の4096バイトブロ
ツクに分割される。それぞれのページを全く異なるアド
レスにマツピングすることができる。
装置14は市販のIntel 80386マイクロプロ
セツサに使用されているのと同じ装置であると仮定して
も良い。Int、el 80386マイクロプロセツサ
のセグメンテーション装置及びベージング装置は、19
85年6月13日に出願された同時係属出願−出願番号
744,389. 名称rMemor7 Manag
ement for MicroprocessorJ
。
に結合される。デコーダ装置は先取シ装置と同じように
動作し、先取シ待ち行列から個々のバイトを取出して、
次の命令を完了するために必要なバイトの数を決定する
。デコーダ装置は制御装置19と共に動作するが、制御
装置19は、マイクロコード命令を記憶しておシ、マイ
クロプロセッサに対して複数の制御信号シーケンスを供
給する。命令デコーダ装置15は制御装置19に結合さ
れるものとして示され、その制御装置19はセグメンテ
ーション装置14と、データ装置18と、浮動小数点装
置17とに結合されるものとして示されている。データ
装置18は、Inte180386プロセツサによシ実
行されるALU機能と同様にしてALU機能を実行する
演算論理装置(ALU)である。
小数点装置17をさらに含む。浮動小数点装置17並び
にマイクロプロセッサのその他の装置の厳密な構成は、
本発明を理解する上で重要では外い。以下、本発明を理
解するために必要である場合に限シ、マイクロプロセッ
サの様々な装置の間の信号の流れを説明する。
ラマ−には2つの断状態(モード)ビットとして現われ
ているように見える。−万のビットはEFLAGSレジ
スタ内に位置し、AC(整列検査)ビットと呼ばれる。
報を保持する(EIPレジスタは現在実行中の命令のア
ドレスを記憶している)と共に、異なる様々な命令に関
連するいくつかのフィールドを保持する。AM(整列マ
スキング)ビットと呼ばれる他方のビットは、制御レジ
スタCRO内に位置している。
詳細を説明する。(尚、フラグピッ)1,3゜5.15
及び19から31は「不定」である。)ACビットはビ
ット位置18に位置している。ACビットは、メモリ参
照が整列していないアドレスである場合に、故障の発生
をイネーブルする。たとえば、これは、奇数アドレスに
対する語アクセス、又は0M0D4ではないアドレスに
対するd語アクセス、又はO!1liOD8ではないア
ドレスに対する8バイト参照によシ引起こされると考え
ることができる。整列の故障はレベル3でのみ発生され
る。すなわち、レベル0.1及び2では、ACビットの
設定は無視される(暗示的に0)。
記述子衣を「出現させている」命令がレベル3で実行さ
れている場合でも、暗示的にレベル0の参照である。好
ましい実施例では、整列の故障は、誤シコード0を伴な
って、割込みビット17を介して報告される。(ビット
1γは、1に設定されたとき、現在実行中の命令流れが
X86コードでちることを示す仮想モード(VM)ビッ
トである。) 以下の表は、マイクロプロセッサの様々なデータの型に
ついて要求される整列を示したものである。
ればならないので、各タスクが独自のFEFLAGSJ
の「コピー」を有していることから、この機能はE
FLAGSレジスタに含まれている。
制御ピッ)(AM)を記憶する制御レジスタ(CRO)
が示されている。制御レジスタCROは、マイクロプロ
セッサのページング及び数値コプロセッサ動作を調整す
るいくつかの制御レジスタの中の1つである。第3図に
示すように、整列マスク制御ビットはCROのビット位
[18にある。AMビットは、EFLAGSにおけるA
Cビットが整列故障を許容できるか否かを制御する。A
M=0のとき、検査はディスエーブルされる(たと、t
ば、80386マイクロプロセツサの互換性)が、AM
=1のときには検査はイネーブルされる。届ビットは、
特権レベル0でだけ、おそらくはオペレーティングシス
テムによってのみアクセス可能である。オペレーティン
グシステムは、それが適切な割込みハンドラを含んでい
る場合に限シ、整列故障をイネーブルするために、この
ビットを1に設定する。
ることにより、大きな融通性が得られる。
スタCROの中に位置しているので、大域的にオペレー
ティングシステムを制御し、オペレーティングシステム
によってのみ参照可能である。
たとえば、CROのビット17)を含んでいるならば、
AMビットは、通常、オペレーティングシステムが初期
設定される゛ときにセットされる。
。このビットは、タスクスイッチでスワップされ且つレ
ベル3で実行中のアプリケーションによシアクセス可能
であるEFAGSレジスタにある。EFLAGSはタス
クスイッチにおいてスワップされるので、各タスクが専
用のEFLAGSのコピーを有するかのように、従って
、独自の整列検査器のコピーを有するかのように見える
。通常、AIプログラムはレベル3、すなわち、アプリ
ケーションレベルでのみ整列検査を実行させれば良い。
によシ、プログラマ−はC整列検査が実行されるか否か
を選択するための2つの機会、すなわち、アプリケーシ
ョンレベルにおける機会(EFLAG8 レジスタをプ
ログラムによシフリア又はセットすることができる)と
、オペレーティングシステムレベルにおける機会(AM
ビットがクリア又はセットされる)とを有することにな
る。
行する。しかしながら、ACはレベル3以外の全てのレ
ベルで暗示的にマスクされるが、AMビットはレベル0
でセット/リセット(すなわち、制御)可能となるだけ
である。
セスを認識することを中心として実現されている。これ
は、32ビツト線形アドレスバス20(第4図を参照)
の下位3ビツトと、バスサイクルの長さとを使用して、
命令デコーダ装置15又は制御装置19による命令に従
って実行される。
スも発生するセグメンテーション装置14の中で発生さ
れる。故障は制御装置19によシサービスされる。
していないデータのアクセスをLAババス0の下位3ビ
ツトの値との関係で規定したものである。バスサイクル
の長さは、命令デコーダ装置15又は制御装置19から
の1バス要求型」フィールドを復号することによシ決定
される。
まえば、故障を発生するために必要な他の条件を判定す
るのは比較的簡単である。第5図に関して説明すると、
第5図には、整列検査論理回路の回路図が示されている
。論理ゲート40〜44と、ラッチ41及び45とは、
セグメンテーション装置14がLAババス0を駆動して
おり且つバスサイクルは打切りとならないことを確実に
保証するために、セグメンテーション装置14から受信
した信号を復号する目的で使用される。
現われる。それらの信号は、命令デコーダ装置15又は
制御装置19からのバス要求型フィルド信号と、ゲート
46及び69の入力端子において組合される。概して、
ゲー)46.4B。
していない参照のバイト長さを示す一連の信号を発生す
る。たとえば、ゲート46は、2バイトの整列していな
い参照を意味する信号を信号線80に発生し;ゲート6
7は、4バイトの整列していない参照を意味する信号を
信号線81に発生しニゲ−ドア1は、8バイトの整列し
ていない参照を意味する信号を信号線82に発生し;ゲ
ート49は、4NDの整列していない参照を意味する信
号を信号線83に発生する。信号線80〜83のそれぞ
れの信号はゲート47によりORされ、その結果はラッ
チ50に蓄積される。(第5図のラッチと関連する記号
P1及びP2は、それぞれのラッチがクロックされる位
相を示す。たとえば、ラッチ41及び59がシステムク
ロックの位相2でクロックされるのに対し、ラッチ45
.50及び62は次のクロックパルスの位相1でクロッ
クされる。) 信号線54及び55に現われるAMビットとACビット
は、ANDゲート57に入力される。整列していないと
きの故障を発生するためには、それらのビットは共に「
1」でなけれはならない。
ムの特権レベルと共に、ラッチ45及び50の出力とゲ
ート63においてANDされる。現時点で好ましい実施
例における特権レベルは、制御装置19のCPLビット
による決定に従って、レベル3でなければならない。ゲ
ート58〜62は、バスサイクルの型がAC違反を許容
する型であることを確実に保証するために、ANDゲー
ト63にさらに入力を供給する。(あるサイクルでは、
AC違反が許容されない。たとえば、分岐サイクルは、
定義上、1バイトのサイクルであるので、分岐サイクル
ではAC違反は許されない。)ゲート63の出力はAN
Dゲート65の一万の入力端子に結合される。ゲート6
5に対する他方の入力は、故障信号が発生される前にマ
イクロプロセッサのパイプラインが解放されていること
を示す信号を供給する信号線66から得られる。要する
に、ACビットとAMビットとのAND演算に加えて、
第5図の論理は、いずれのシステムセグメントに対して
もアクセスが実行されていないこと及び適正なバスサイ
クルが実行されていることを確実に保証するように設計
されている。ANDゲート65は、5INTR(セグメ
ンテーション装置割込み)と呼ばれる信号を信号線67
に発生する。この信号は、上記の条件の全てに適合した
とき、必ず制御装置19に結合される。
行を停止させ、この整列検査故障をサービスするために
措置を構じる。制御装置は2つのノー・オペレーション
(NOP)フロックを挿入し、次に、整列検査故障に関
する入口点にマイクロコードを押入れる。その後、マイ
クロコードは、戻シアドレスを記憶し且つユーザープロ
グラムに故障を報知するために必要であることの全ての
実行を引継ぐ。
サを開示した。
される4つの特権レベルを、最も保護性の高いレベルを
レベルOとして、また、最も保護性の低いレベルをレベ
ル3として示す図、第2図は、本発明によるマイクロプ
ロセッサの内部に配置され、特権レベル3における整列
していないデータへのアクセス時の故障を支援するため
の、上位16ビツト中に規定された余分のビット(AC
ビット)を有するEFLAGSレジスタを示す図、第3
図は、EFLAGS中のAC′とットが整列故障を許容
できるか否かを制御する整列マスキングピッ)(AM)
を蓄積する機械状態制御レジスタ(CRO)を示す図、
第4図は、本発明のマイクロプロセッサの全体ブロック
線図、第5図は、本発明の現時点で好ましい実施例にお
いて整列検査がどメンテ−ジョン装置、15・・・・命
令デコーダ装置、17・・・・浮動小数点装置、18・
・・・データ装置、19・・・・制御装置、20・・・
拳32ビット線形アドレスバス、30・・・・32ビッ
ト外部データバス、31・・・・アドレスバス。
Claims (3)
- (1)データを記憶するメモリと; プログラムを実行する制御装置と; 前記メモリの内部の任意のアドレスに記憶されているデ
ータを参照する参照手段と; 整列していないデータの参照を検出し、イネーブルされ
た時且つ前記参照手段が整列されていないデータを参照
した時に、前記プログラムを中断する故障を発生するよ
うに選択可能である検出手段を具備するマイクロプロセ
ッサ。 - (2)データを記憶するメモリと; プログラムを実行する制御装置と; 前記メモリの内部の任意のアドレスに記憶されているデ
ータを参照する参照手段と; 前記プログラムの特権レベルに従つてデータオブジェク
トに対して選択されたアクセスを許可する保護メカニズ
ムと; 整列していないデータの参照を検出し、イネーブルされ
た時且つ前記参照手段が整列されていないデータを参照
した時に、前記プログラムを中断する故障を発生するよ
うに、任意にイネーブルされる検出手段を含み、区分化
アドレスを線形アドレスに変換するセグメンテーシヨン
装置とを具備するマイクロプロセッサ。 - (3)任意のアドレスでデータオブジェクトに対しアド
レスを許可するマイクロプロセッサにおいて、ある特権
レベルでデータオブジェクトに対するアドレスを許可す
る保護メカニズムと、整列していないデータの参照を検
出し、イネーブルされた時且つ整列されていないデータ
オブジェクトに対して参照が実行された時に、故障を発
生するように、選択可能である検出手段と、最下位特権
レベルで前記故障をマスキングする第1のモードビット
と、最上位特権レベルで前記故障をマスキングする第2
のモードビットとを含み、前記検出手段をイネーブル/
ディスエーブルする制御手段とを具備するマイクロプロ
セッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US33407489A | 1989-04-05 | 1989-04-05 | |
US334.074 | 1989-04-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02287741A true JPH02287741A (ja) | 1990-11-27 |
JP3055031B2 JP3055031B2 (ja) | 2000-06-19 |
Family
ID=23305466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2085074A Expired - Lifetime JP3055031B2 (ja) | 1989-04-05 | 1990-04-02 | メモリ参照について選択可能整列検査を実行するマイクロプロセツサ |
Country Status (6)
Country | Link |
---|---|
JP (1) | JP3055031B2 (ja) |
DE (1) | DE4010733C2 (ja) |
FR (1) | FR2645664B1 (ja) |
GB (1) | GB2230118B (ja) |
HK (1) | HK107393A (ja) |
SG (1) | SG55493G (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013536504A (ja) * | 2010-08-12 | 2013-09-19 | アーム・リミテッド | アラインメント制御 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9716240D0 (en) * | 1997-07-31 | 1997-10-08 | Tricorder Technology Plc | Scanning apparatus and methods |
US6772372B2 (en) * | 2001-03-06 | 2004-08-03 | Hewlett-Packard Development Company, L.P. | System and method for monitoring unaligned memory accesses |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4654781A (en) * | 1981-10-02 | 1987-03-31 | Raytheon Company | Byte addressable memory for variable length instructions and data |
-
1990
- 1990-02-14 GB GB9003354A patent/GB2230118B/en not_active Expired - Lifetime
- 1990-04-02 JP JP2085074A patent/JP3055031B2/ja not_active Expired - Lifetime
- 1990-04-03 FR FR9004228A patent/FR2645664B1/fr not_active Expired - Lifetime
- 1990-04-03 DE DE19904010733 patent/DE4010733C2/de not_active Expired - Lifetime
-
1993
- 1993-04-30 SG SG55493A patent/SG55493G/en unknown
- 1993-10-14 HK HK107393A patent/HK107393A/xx not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013536504A (ja) * | 2010-08-12 | 2013-09-19 | アーム・リミテッド | アラインメント制御 |
US9760374B2 (en) | 2010-08-12 | 2017-09-12 | Arm Limited | Stack pointer and memory access alignment control |
Also Published As
Publication number | Publication date |
---|---|
GB2230118A (en) | 1990-10-10 |
GB9003354D0 (en) | 1990-04-11 |
FR2645664A1 (fr) | 1990-10-12 |
HK107393A (en) | 1993-10-22 |
FR2645664B1 (fr) | 1993-12-17 |
SG55493G (en) | 1993-08-06 |
DE4010733C2 (de) | 1995-08-31 |
DE4010733A1 (de) | 1990-10-11 |
JP3055031B2 (ja) | 2000-06-19 |
GB2230118B (en) | 1992-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5201043A (en) | System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking | |
US5517651A (en) | Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes | |
US4442484A (en) | Microprocessor memory management and protection mechanism | |
US3970999A (en) | Memory expansion apparatus | |
KR0185988B1 (ko) | 멀티프로세서 또는 파이프 라인식 프로세서 시스템에서 데이타의 보존을 확실히 하는 방법 | |
US3916385A (en) | Ring checking hardware | |
US6205560B1 (en) | Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG | |
US4177510A (en) | Protection of data in an information multiprocessing system by implementing a concept of rings to represent the different levels of privileges among processes | |
US5944816A (en) | Microprocessor configured to execute multiple threads including interrupt service routines | |
US5659679A (en) | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system | |
US6631460B1 (en) | Advanced load address table entry invalidation based on register address wraparound | |
CA1324671C (en) | Decoding multiple specifiers in a variable length instruction architecture | |
EP0381469B1 (en) | Method and data processing unit for pipeline processing of register and register modifying specifiers within the same instruction | |
JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
US5838897A (en) | Debugging a processor using data output during idle bus cycles | |
EP0747808A2 (en) | Processor capable of supporting two distinct instruction set architectures | |
WO1994027214A1 (en) | Method for decoding sequences of guest instructions for a host computer | |
MX2014015353A (es) | Instalación auxiliar del procesador. | |
Heller et al. | Millicode in an IBM zSeries processor | |
NL2030804B1 (en) | Flexible return and event delivery | |
CN116893894A (zh) | 同步微线程化 | |
US6742110B2 (en) | Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution | |
JPH02287741A (ja) | メモリ参照について選択可能整列検査を実行するマイクロプロセツサ | |
US5742755A (en) | Error-handling circuit and method for memory address alignment double fault | |
EP0509558A2 (en) | Information processing system with support means responsive to an overall system control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |