JP2776132B2 - オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム - Google Patents
オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システムInfo
- Publication number
- JP2776132B2 JP2776132B2 JP4105242A JP10524292A JP2776132B2 JP 2776132 B2 JP2776132 B2 JP 2776132B2 JP 4105242 A JP4105242 A JP 4105242A JP 10524292 A JP10524292 A JP 10524292A JP 2776132 B2 JP2776132 B2 JP 2776132B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- static
- data processing
- dynamic
- breakpoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Description
ッサに関し、さらに詳しくは、データ・プロセッサに用
いられるオペランド情報のマスキングに関する。
ア・プログラムの開発中に、そのソフトウェア・プログ
ラムの機能性および効率性を分析するために多数の方法
がよく用いられる。一般に用いられる方法として、ソフ
トウェア・プログラムにブレイクポイントを挿入し、一
般にブレイクポイント(breakpoint)・アドレスと呼ばれ
る所定のアドレスにおいてソフトウェア・プログラムの
現在の実行を割り込むべくデータ処理システムに指示す
る方法がある。ブレイクポイント・アドレスは、データ
処理システムのユーザによって定義され、ブレイクポイ
ント・レジスタに保存される。概して、ブレイクポイン
ト・レジスタは、アドレス・バスからアドレスを受け取
り、この受け取ったアドレスをブレイクポイント・レジ
スタの内容と比較する。このアドレスとブレイクポイン
ト・レジスタに格納されたブレイクポイント・アドレス
またはブレイクポイントアドレス・レンジとが一致する
と、データ処理システム内の中央処理装置に信号が送ら
れ、データ処理システムのユーザによって指定される例
外処理ルーチンが実行されるのが一般的である。例外処
理ルーチンでは、データ・プロセッサの内部レジスタを
ブレイクポイント信号が現われる毎に表示するようにユ
ーザは指定することができる。
ザはマスキング演算を利用して、ブレイクポイント・ア
ドレスの特定のビットがアドレス・バス上のアドレスと
ブレイクポイント・レジスタの内容との間の比較演算に
関与することを阻止する場合がある。概して、マスキン
グ演算はオペランドの所定のビットがその後のデータ処
理機能に関与することを阻止する。典型的なデータ処理
システムでは、マスキング演算中にスタティックまたは
ダイナミック・マスクのいずれかが用いられる。スタテ
ィック・マスクはデータ処理システムのユーザによって
定義され、アドレスとブレイクポイント・レジスタの内
容との間の比較演算が行われる前に実行されるのが一般
的である。概して、スタティック・マスクは条件付きマ
スクで、ブレイクポイント・アドレスの所定のビットが
比較演算に関与することを阻止する。
算が行われるのと同時に定義され、実行される。ダイナ
ミック・マスクの値は、ブレイクポイント・アドレスへ
のアクセスのサイズと可変的に一致すべく修正されるの
が一般的である。アクセスのサイズは、バイトからカッ
ド・ワード(quad-word) まで変化しうる。
設計は、スタティックまたはダイナミック・マスキング
演算のいずれか一方を実行するのが一般的である。スタ
ティック・マスク機能では、データ処理システムのユー
ザはブレイクポイント・アドレス内の特定のビットを条
件付きでマスキングすることができる。しかし、ダイナ
ミック・マスク機能は、ブレイクポイント演算中に高度
な柔軟性と効率性を可能にする。一般に、回路の複雑性
および制限は、先に述べたマスキング機能性の向上と関
連している。また、マスキング演算を実行することに伴
う実行時間は、システムオーバヘッドを大幅に増大す
る。従って、システム設計者はスタティックまたはダイ
ナミック・アドレス・マスキング方法のいずれか一方を
選ばなければならない。
によって満たされる。従って、一例として、オペランド
内の情報のスタティックおよびダイナミック・マスキン
グを兼ね備えるデータ処理システムが提供される。この
データ処理システムは、命令実行に応答してオペランド
を与え、かつ第1および第2制御信号を与える処理装置
からなる。第1制御信号は命令実行前に定義されたスタ
ティック・マスク情報を有し、第2制御信号はオペラン
ドの第1部分から導出されたダイナミック・マスク情報
を有する。スタティックおよびダイナミック・マスク情
報は、総じてオペランドの第2部分を定義し、この第2
部分はデータ処理システムによって実行されるその後の
機能を実行する。またこのデータ処理システムは、処理
装置に結合され、第1および第2制御信号を受け取る論
理部を有する。この論理部は、スタティックおよびダイ
ナミック・マスク情報を合成して、オペランドの第2部
分を並行的に定義する合成マスク信号を与える。これら
およびその他の特徴および利点は、添付の図面と共に以
下の詳細な説明からさらに明確に理解されよう。
サブル・メモリ(contentaddressable memory: CAM)
とは、保存される要素が保存アドレス番地ではなくデー
タ内容に基づいて識別されるメモリのことである。一般
に、CAMは行(row) と列(column)とに配列され一つの
アレイを形成するCAMセルによって構成される。従来
のCAMアレイ・アーキテクチャでは、情報を同時かつ
並列にアクセスされ、比較的短い時間内に非常に多くの
演算を実行するデータ処理システムを提供するのが一般
的である。CAMアレイの独自のアーキテクチャが多く
のデータ処理システムにおいて用いられてきている。例
えば、CAMアレイの並列処理により、メモリからの大
量のデータを従来のメモリ構成に比べて短い時間でデー
タ処理システムから取り出すことが可能になる。さらに
高度な用途では、CAMアレイはアドレス・トランスレ
ーション・キャッシュ(ATC)として用いられ、この
CAMアレイによりユーザがデータ処理システム内のメ
モリ空間の一部を割り当て、制御し、そしてアクセスす
ることを可能している。
はブレイクポイント演算を実行する論理回路と集積され
ている。一般に、ブレイクポイント演算は、プログラム
の所定のアドレスにおいてソフトウェア・プログラムの
現在の実行を割り込むべくデータ処理システムに指示す
る。この所定のアドレスは、一般にブレイクポイント・
アドレスという。データ処理システムにおいて、ブレイ
クポイント・アドレスの値はユーザによって定義され、
ブレイクポイント・レジスタに格納されるのが一般的で
ある。アドレス・バス上のアドレスと、ブレイクポイン
ト・レジスタに格納されたブレイクポイント・アドレス
またはブレイクポイント・アドレス・レンジとが一致す
ると、ブレイクポイント信号がデータ処理システム内の
中央処理装置に送られ、ブレイクポイント機能に関連す
る例外処理ルーチンを実行する。例えばシステムのユー
ザは、ブレイクポイント信号が現われる毎に例外処理ル
ーチンがデータ・プロセッサの内部レジスタを表示する
ことを指定できる。
て、アドレス・バス上のアドレスとブレイクポイント・
アドレスとの間の比較演算から特定のビットを除外する
こともできる。スタティック・マスクは、比較演算が行
われる前に定義され実行される。ダイナミック・マスク
は比較演算が行われるのと同時に定義され実行される。
以下に説明する本発明は、ブレイクポイント演算中にス
タティックおよびダイナミック・マスキング処理の両方
を実行する。
びブレイクポイント装置用の共用制御および駆動回路を
具備するデータ処理システム10のブロック図を示す。
ブレイクポイント装置は、スタティックおよびランダム
・マスキングすることができる。概して、データ処理シ
ステム10は、中央処理装置(CPU)12,サイズ・
デコーダ14,複数のORゲート16,18,複数の内
容アドレッサブル・メモリ(CAM)ドライバ20,例
外処理装置22,複数のブレイクポイント・レジスタ2
4,CAMアレイ26およびランダム・アクセス・メモ
リ(RAM)アレイ28によって構成される。CAMア
レイ26およびRAMアレイ28は、総じて「アドレス
・トランスレーション・キャッシュ」(ATC)30と
いう。
サイズ・デコーダ14に複数の入力信号を与える。サイ
ズ・バス13はKビット幅で、ただしKは整数である。
図示の本発明の実施例では、サイズ・バス13によって
転送される情報は、ダイナミック・マスクの符号化され
た値であり、この値はブレイクポイント・レジスタに格
納されたブレイクポイント・アドレス値、またはCAM
26に格納されたアドレス値のいずれか一方のアクセス
のサイズを示す。両方のアドレス値は、データ処理シス
テム10のユーザによって決められるのが一般的であ
り、バイト,ハーフワード,ワード,ダブルワードおよ
びカッドワード長を含むさまざまなサイズでアクセスる
ことができる。
タ内のダイナミック・マスクの実行例について、以下の
例で説明する。ダイナミック・マスクは、CAM26内
でも同様に実行される。データ処理システムの動作中
に、論理アドレス・バスによってCPU12から転送さ
れる各アドレス値は、複数のブレイクポイント・レジス
タ内に格納されたブレイクポイント・アドレス値のそれ
ぞれ一つと比較される。各アドレス値は1バイトの情報
に相当するので、任意のアドレス番地でバイトをアクセ
スすることができる。しかし、ハーフワード・アドレス
のアクセスでは2バイトの情報を必要とする。ハーフワ
ード・アドレスは、16進アドレス$0および2の倍数
の他の16進アドレス、例えば$2,$4,$6でしか
アクセスすることができない。同様に、ワード・アドレ
スのアクセスは4バイトの情報を必要とする。同様に、
ワード・アドレス値は、16進アドレス$0および4の
倍数の他の16進アドレス、例えば$4,$8でしかア
クセスできない。データ処理システム10のユーザがブ
レイクポイント・アドレス値$5をブレイクポイント・
レジスタの一つに格納したと仮定する。バイト・アクセ
スが実行されると、ブレイクポイント・アドレス値と論
理アドレスとの間で一致するのは、アドレス$5をアク
セスした場合にのみである。ハーフワード・アクセスが
実行されると、アドレス$4がアクセスされた場合に一
致する。アドレス$5がアクセスされると、一致は生じ
るが、アドレスの境界により、アドレス$5からアドレ
ス$6にハーフワードのアクセスを行わずに、ハーフワ
ード・アクセスはアドレス$4から開始することが決ま
る。同様に、ワード・アクセスが実行されると、アドレ
ス$5,アドレス$5,アドレス$6またはアドレス$
7の一つがアクセスされた場合に一致は生じる。
は、上記のダイナミック・マスキング機能を実行するた
めにブレイクポイント・アドレス内のどのビットをマス
クすべきかを指示する。サイズ・デコーダ14は、K本
の入力信号を複数のN本の出力信号にデコードする。た
だし、Nは整数である。このN本の出力信号は、マスキ
ング演算中に複数のORゲート、例えば16,18によ
って処理することができる。サイズ・デコーダ14の複
数のN本の出力信号のそれぞれは、「ダイナミック・マ
スク」と記されたNビット幅のバスを介して複数のOR
ゲート16,18の一つの第1入力に接続される。
デコード演算の例を以下の表1に示す。サイズ・デコー
ダ14が3つの入力信号と4つの出力信号を有するよう
に、K=3およびN=4と仮定する。
のアドレス値をアクセスすると仮定する。符号化された
サイズ信号はバイナリ値011を有し、この値はバイナ
リは対応するアドレス・ビットが比較演算に関与するの
を阻止する。この場合、ダイナミック・マスク値内では
どのビットも値1を有していない。従って、ブレイクポ
イント・レジスタに格納されたブレイクポイント・アド
レスのすべてのビットは、アドレス・バス上のアドレス
と比較される。各ブレイクポイント・レジスタのアドレ
スは1バイトの情報を格納するので、比較演算中にすべ
てのビットを調べなければならない。一方、システムの
ユーザがワードの情報をアクセスした場合、サイズ信号
はバイナリ値010となり、対応するマスク信号のバイ
ナリ値は0011となる。この例では、下位の2つのビ
ットは値1であり、従って、アドレス・バス上の現アド
レスとブレイクポイント・アドレスとの間の比較処理に
関与することが実質的に阻止される。対応するアドレス
の下位の2ビットは比較演算に関与することが阻止され
るので、ブレイクポイント・アドレスのワードは実質的
にマスクされる。
ム10で実行される。上記のように、スタティック・マ
スクは、ブレイクポイント・レジスタに格納されたアド
レスをアクセスする前に、データ処理システムのユーザ
によって決定されていなければならない。スタティック
・マスクの値は、スタティック・マスク15を介してC
PU12によって与えられ、Mビット幅である。ただ
し、Mは整数である。本発明のこの実施例では、スタテ
ィック・マスクはブレイクポイント・レジスタ24およ
びCAMアレイ28に格納された各行の情報について同
一である。スタティック・マスクの第1の所定部分はN
ビット幅で、スタティック・マスク・バス15を介して
複数のORゲート16,18の一つの第2入力に転送さ
れる。スタティック・マスクの第2部分はYビット幅
で、ただしYは整数であり、これは入力マスク・バス1
9を介してCAMドライバ20の第1群の入力信号に転
送される。入力マスク・バス19は(N+Y)ビット幅
であり、「入力マスク」と記された信号を転送する。
号は、合成スタティックおよびダイナミック・マスク信
号となり、これも入力マスク・バス19によってCAM
20の第1群の入力信号に接続される。この合成マスク
信号は、ブレイクポイント・レジスタ24またはCAM
アレイ26のいずれかに格納されている情報と、そこに
現在入れられる情報との間の比較演算中に、ブレイクポ
イント・アドレスのどのビットをマスクすべきかを指示
する。複数のORゲート16,18を構成して合成マス
ク信号を出力することにより、スタティックおよびダイ
ナミック・マスク機能を組み合わせて、マスキング処理
を実行する。合成マスク信号としてこの2つのマスク機
能を実行することにより、逐次実行されるマスキング処
理に比べ実行時間が短くてすむ、より汎用的なマスキン
グ処理が得られる。
レス・バス11によってCAMドライバ20の第2群の
入力信号に接続される。複数のCAMドライバ20は、
論理アドレス・バス11上のアドレスと、複数のブレイ
クポイント・レジスタ24およびCAMアレイ26との
間のバッファとして機能する。
の論理回路を示す。CPU12は、「論理アドレス」と
記された入力信号を論理アドレス・バス11を介して複
数のCAMドライバ20のそれぞれに与える。論理アド
レス信号は、論理アドレス・バス11を介して転送され
る論理アドレス値の1ビットの値である。論理アドレス
信号は、入力をインバータ38に与え、そして第1入力
をNORゲート42に与える。インバータ38の出力
は、NORゲート40の第1入力に接続される。「入力
マスク信号」を介して転送される各入力マスク信号は、
第2入力をNORゲート40に与え、そして第2入力を
NORゲート42に与える。入力マスク信号は、複数の
ORゲート16,18から出力された合成マスク信号
か、またはスタティック・マスクの第2部分のいずれか
からなる。入力マスク信号の値は、アクセスされる複数
のCAMドライバ20のそれぞれ一つに依存する。例え
ば、合成マスク信号が複数のCAMドライバ20のうち
4つに影響を与える場合、入力マスク信号は、複数のC
AMドライバ20のこの4つの一つがアクセスされる任
意の時間に合成マスク信号を反映する。残りのすべての
時間では、入力マスク信号はスタティック・マスク信号
の第2部分の値を反映する。
れた信号であり、NORゲート42の出力は「反転Q
i」と記された信号である。Qiおよび反転Qi信号
は、ブレイクポイント・レジスタ24とCAMアレイ2
6とに入力を与える。Qi信号は、CAMドライバ20
のA本の出力信号の一つである。ただし、Aは整数であ
る。
およびCAMアレイ26内のビットは共に、マスクする
ことのできる標準CAMセルからなる論理で実行され
る。ブレイクポイント・レジスタ24およびCAMアレ
イ26にロードし、格納すべき情報は、一般に複数のビ
ット・ラインおよび反転ビット・ラインによって入力さ
れる。格納された情報は、一致値(coincidence value)
ともいう。この実施例では、Qiおよび反転Qi信号
は、それぞれビット・ライン信号および反転ビット・ラ
イン信号という。ブレイクポイント・レジスタ24また
はCAMアレイ26内のセルの所定の行をイネーブルす
る制御信号は、ワード・ライン信号(図1には図示せ
ず)という。ワード・ライン信号がイネーブルになる
と、対応する行の情報に情報が書き込まれるか、あるい
はそこから情報が読み出される。一般に、データ・プロ
セッサ・システムはどのワード・ライン信号をイネーブ
ルにするかを決定する。この情報は、Qi信号および反
転Qi信号によって入力されるか、あるいはQi信号お
よび反転Qi信号に出力される。
ト・レジスタ24とCAMアレイ26の両方にデータを
与える場合、両方の信号上の0はブレイクポイント・レ
ジスタ24またはCAMアレイ26内の対応する番地に
格納された情報がデータ処理システム10のユーザによ
って指定された処理に関与することを実質的に阻止す
る。両方の信号上の0は、対応する番地の情報を実質的
にマスクする。
ナリ値1を有している場合、Qiおよび反転Qi信号は
共に値1を有する。従って、合成マスク値またはスタテ
ィック・マスク値の第2部分が値1の一つまたはそれ以
上のビットを有している場合、対応するQiおよび反転
Qi信号によってアクセスされるアドレス・ビットは、
データ処理システム10のユーザによって指定される連
想一致機能に関与することはできない。入力マスク信号
がバイナリ値0を有している場合、Qiおよび反転Qi
信号は論理アドレスのそれぞれのビットの値を反映す
る。
AMアレイ26は、ビット・ラインと反転ビット・ライ
ンとによってブレイクポイント・レジスタ24およびC
AMアレイ26の所定の行に駆動される現情報と、その
所定の行に先に格納された情報との間の比較機能を実行
する。CAMアレイ26の構造のため、ブレイクポイン
ト・レジスタまたはCAMアレイ26の所定の行に駆動
される情報は、他のすべての行に同時に転送される。
に格納されたブレイクポイント・アドレスは、データ処
理システム10のユーザによって決められ、ユーザがプ
ログラムの実行を中断したいアドレスを示すのが一般的
である。プログラムが実行されるにつれて、論理アドレ
ス値が論理アドレス・バス11を介して転送される。デ
ータ処理システム10の構造のため、論理アドレス値の
それぞれはブレイクポイント・レジスタ24の内容と比
較される。論理アドレス値がブレイクポイント・レジス
タ24の任意の一つの内容と一致する場合、ブレイクポ
イント・イネーブル信号がアサートされる。この例で
は、2つのブレイクポイント値がブレイクポイント・レ
ジスタ24に格納される。従って、「ブレイクポイント
・イネーブル1」および「ブレイクポイント・イネーブ
ル2」と記された2つの可能なブレイクポイント・イネ
ーブル信号がそれぞれアサートされる。ブレイクポイン
ト・イネーブル1信号およびブレイクポイント・イネー
ブル2信号は、例外処理装置22に接続される。この例
外処理装置22は、データ処理システム10のユーザが
決めるように、ブレイクポイント・イネーブル1信号と
ブレイクポイント・イネーブル2信号とを処理する。
号および反転ビット・ライン信号によってロードされて
いる現情報は概して「タグ」ワードと呼ばれ、CAMア
レイ26内のセルの行に先に格納された情報は「格納(s
tored)」ワードという。タグ・ワードが格納ワードと同
一の場合、CAMアレイ26は複数のX本の出力信号を
与え(ただしXは整数)、これらの出力信号のそれぞれ
は一致が生じたことを示す。複数のX本の出力信号のそ
れぞれは、「一致0」ないし「一致(X−1)」とそれ
ぞれ記されている。
の入力信号をRAMアレイ28に与える。一致0ないし
一致(X−1)信号のそれぞれは、RAMアレイ28内
の一つの対応するセルをイネーブルにする。ついで、R
AMアレイ28は、変換アドレスバス(Translated Addr
ess Bus)23を介して物理アドレスの対応する第1部分
を物理アドレス・バス25に与える。物理アドレスの第
2部分は、低論理アドレス・バス(Lower Logical Addr
ess Bus)21を介して論理アドレスの一部を変換せずに
物理アドレス・バス25に転送することによって与えら
れる。物理アドレスのこの2つの部分は合成されて、一
つのアドレス信号となり、このアドレス信号はデータ処
理システム10内の情報の番地を示す。例えば、論理ア
ドレス・バス11からCAMアレイ26に結合される論
理アドレス信号がCAMアレイ26内の格納ワードと同
一であると仮定する。その後、一致信号がアサートさ
れ、RAMアレイ28の番地が選択される。選択された
RAMアレイ28の番地に格納されたアドレスは、変換
アドレス・バス23を介して物理アドレス・バス25に
出力され、物理アドレス・バス25を介して転送された
物理アドレスの上位部を与える。物理アドレス・バス2
5を介して転送された物理アドレスの下位部は、論理ア
ドレス・バス11を介して転送された論理アドレスの所
定の下位部と同一である。
アレイ28とによって形成される。ATC30は、図3
においてより詳細に示されている。複数のCAMドライ
バ20は、ブレイクポイント・レジスタ24とCAMア
レイ26とへの第1群の入力に論理アドレス・バス11
を介して接続される。この複数のCAMドライバ20は
バッファとして機能し、情報をCPU20からブレイク
ポイント・レジスタ24またはCAMアレイ26のいず
れかの第1群の入力に転送する。複数のCAMドライバ
20からの複数の出力信号は、先に述べたようにQi信
号および反転Qi信号という。また、複数のCAMドラ
イバ20は、第1制御信号をブレイクポイント・レジス
タ24とCAMアレイ26とに与える。この第1制御信
号は、データ処理システム10のユーザによって指定さ
れる機能を実行する。複数のCAMワード・ライン・ド
ライバ44は、ブレイクポイント・レジスタ24の各行
の第2制御入力と、CAMアレイ26の各行とに結合さ
れる。先にワード・ライン信号と言及した複数の第2制
御入力は、ブレイクポイント演算のリードまたはライト
動作中にブレイクポイント・レジスタ24のどの行をア
クセスすべきかを決め、かつアドレス・トランスレーシ
ョン機能のリードまたはライト動作中にCAMアレイ2
6のどの行をアクセスすべきかを決める。CAMリード
・ドライバおよびラッチ48は、ブレイクポイント・レ
ジスタ24とCAMアレイ26の両方の第1群の出力信
号に接続される。CAMリード・ドライバおよびラッチ
48は、ブレイクポイント・レジスタ24のビットおよ
びCAMアレイ26のセルをイネーブルにし、それによ
りセルに格納された情報を読み出す。その後、情報はデ
ータ処理システム10のユーザが決めるように、その後
使用するためにラッチされる。
レジスタ24は、「ブレイクポイント・イネーブル1」
および「ブレイクポイント・イネーブル2」と記された
2つの出力を与える。ブレイクポイント・イネーブル信
号のそれぞれは、ブレイクポイント・レジスタ24の内
容に格納された値のひとつがCAMドライバ20によっ
てデータ処理システム10のユーザに転送されたアドレ
スと同一であることを示す。CAMアレイ26は、「一
致0」ないし「一致(X−1)」と記されたX本の出力
信号を複数のデータ・ワード・ライン・ドライバ42に
与える。一致0ないし一致(X−1)信号のそれぞれ
は、CAMアレイ内のひとつの格納ワードがCAMドラ
イバ20によって転送されたアドレスと一致する場合
に、アサートされる。アサートされた一致信号は、RA
Mアレイ28内の複数のアドレス番地のひとつを選択す
る。
を複数のデータ・ワード・ライン・ドライバ42に与え
る。この複数のデータ・ワード・ライン・ドライバ42
は、RAMアレイ28の各行の複数の第1制御信号に結
合される。複数のデータ・ワード・ライン・ドライバ4
2はバッファとして機能し、RAMアレイ28内の所定
の行の情報を選択し、アドレス・トランスレーション機
能中にRAMアレイ28のどの行をアサートすべきかを
決める。RAMアレイ28内の所定の行の情報が選択さ
れない場合、「ATCミス」と記された出力信号がアサ
ートされる。ATCミス信号は、RAMアレイ28内の
番地がCAMアレイ26によって出力される複数の一致
信号によって指定されるアドレスに従って選択できない
ことを示す。その後、ATCミス信号はデータ処理シス
テム10に出力され、エラーが発生したことをシステム
のユーザに知らせる。
イト・ドライバ50は、RAMアレイ28への第1群の
入力に接続される。この複数のRAM平衡およびライト
・ドライバ50はバッファとして機能し、RAMアレイ
28の第1群の入力に情報を転送する。また、複数のR
AM平衡およびライト・ドライバ50は第2制御信号を
RAMアレイ28に与える。第2制御信号は、データ処
理システム10のユーザが指定する機能を実行する。複
数のRAMリード・ドライバおよびラッチ52は、RA
Mアレイ28の第1群の出力信号に接続される。この複
数のRAMリード・ドライバおよびラッチ52は、RA
Mアレイ28のセルをイネーブルにし、それによりセル
に格納された情報を読み出す。その後、この情報はデー
タ処理システム10のユーザによって指定されるよう
に、その後使用するためにラッチされる。
ブ回路を内容アドレッサブル保存装置と集積する装置
は、データ処理システムの効率的な動作を向上させるこ
とは明らかである。ブレイクポイント装置は、データ処
理システムのユーザにとって、その装置を試験する際に
有利である。現在のブレイクポイントの構成は、大量の
追加回路を必要とするのが一般的である。従って、回路
面積が制限されているデータ処理システムでは、ブレイ
クポイント機能を実行することができない。ここで説明
する本発明では、ブレイクポイント・アドレス値は、実
際のブレイクポイント機能に先立ちレジスタに格納され
る。同様な方法で、情報はCAMアレイに格納される。
同様に、ブレイクポイント・レジスタの内容が比較され
る対象となるアドレスは、CAMアレイ内の比較演算中
に用いられる同じアドレスである。ブレイクポイント・
レジスタとCAMアレイの両方によって実行される機能
は同様であるので、ブレイクポイント機能は、データ処
理システムですでに実行されている内容アドレッサブル
保存装置の同じ制御およびドライブ回路を用いて実行さ
れる。従って、ブレイクポイント機能は、多量の回路を
追加せずにデータ処理システム内で実行される。ブレイ
クポイント・レジスタとCAMアレイとを集積すること
は、データ処理システムにおけるブレイクポイント演算
の必要性に対する効率的かつ安価な解決方法を提供す
る。
ィックおよびダイナミック・マスキング処理を兼用して
実行することにより、データ処理システムの柔軟性と効
率性とが向上される。システムのユーザは、比較演算中
にアドレスをアクセスする前に、かつ、比較演算中にア
ドレスがアクセスされるのと同時に、ブレイクポイント
・アドレスの所定のビットをマスクすることができるよ
うになる。スタティックおよびダイナミック・マスキン
グ処理を同時に実行することにより、位置に従って、か
つアドレス・アクセスのさまざまなサイズに従って、ア
ドレスのビットをマスクすることのできるブレイクポイ
ント演算が得られる。両方の場合にも、ブレイクポイン
ト・アドレスのマスクは、小量の外部回路を追加するだ
けで、データ処理システムのユーザによって効率的かつ
迅速に処理される。
ク・マスキングを同時に行うことができるブレイクポイ
ント装置と、内容アドレッサブル保存装置の両方のため
の共用制御および駆動回路を具備するデータ・プロセッ
サを提供してきたことが明らかであろう。上記の発明を
実行するさらに多くの構成がある。例えば、本明細書で
説明した本発明の実施例はブレイクポイント・レジスタ
24およびCAMアレイ26内のすべてのエントリに対
してひとつのスタティック・マスク値を実行している
が、複数のスタティック・マスク値を用いてもよい。ま
た、サイズ・デコーダ14は、任意の数の入力信号と任
意の数の出力信号を有してもよい。ダイナミック・マス
ク値は制御信号からでも、アドレス・アクセスのサイズ
以外の情報からでも導出することができる。さらに、ス
タティック・マスクとダイナミック・マスクとはさまざ
まな別の論理機能を用いて集積することもできる。複数
のORゲート16,18は、一例にすぎない。複数のC
AMドライバ20の構成は、別の方法で実現することも
できる。図2に示す論理回路によって実行される機能
は、同様な機能を実行する回路を用いて実行することも
できるが、必ずしも図示の論理回路と同一でなくてもよ
い。集積ブレイクポイント・レジスタ24およびCAM
アレイ26で用いられる共通のブレイクポイント・レジ
スタビットおよびCAMセルは、任意の標準CAMセル
構成を用いて構築することができる。例えば、ひとつの
ビット・ラインを用い、反転ビット・ラインを用いずに
データを与えるCAMセルは、集積ブレイクポイントお
よび内容アドレッサブル保存装置において容易に利用で
きる。また、集積ブレイクポイントおよび内容アドレッ
サブル保存装置をロードし読み出すための異なるデータ
経路を用いてもよい場合もある。別の例では、ブレイク
ポイント・アドレスと、論理アドレス・バス11上の現
論理アドレス値との間で一致が生じた場合に、ブレイク
ポイント・レジスタによって出力されるブレイク信号を
合成して、ひとつの汎用ブレイクポイント信号にしても
よい。
の説明は一例にすぎず、本発明の範囲を制限するもので
ないことは当業者に明らかであろう。従って、特許請求
の範囲により本発明の真の精神および範囲に入る本発明
の一切の修正を内包するものとする。
備する内容アドレッサブル保存装置とブレイクポイント
機能を有するデータ・プロセッサの部分的ブロック図で
ある。
理図である。
ャッシュのブロック図である。
TC) 38 インバータ 40,42 NORゲート 42 データ・ワード・ライン・ドライバ 48 CAMリード・ドライバおよびラッチ 50 RAM平衡およびライト・ドライバ 52 RAMリード・ドライバおよびラッチ
Claims (3)
- 【請求項1】 オペランド内の情報のスタティック・マ
スキングおよびダイナミック・マスキングを兼ね備えた
データ処理システム(10)であって:命令実行に応答
してオペランドを与え、そして第1(15)および第2
(17)制御信号を与える処理装置(12)であって、
該第1制御信号は命令実行前に定義されたスタティック
・マスク情報を有し、該第2制御信号は前記オペランド
の第1部分から導出されたダイナミック・マスク情報を
有し、前記スタテイックおよびダイナミック・マスク情
報はデータ処理システム(10)によって実行されるそ
の後の機能を実行するために用いられるオペランドの第
2部分を総じて定義する処理装置(12);および 前記処理装置(10)に結合され、前記第1および第2
制御信号を受け取る論理手段(16,18)であって、
スタティックおよびダイナミック・マスク情報を合成し
て前記オペランドの第2部分を同時に定義する合成マス
ク信号を与える論理手段(16,18); によって構成されることを特徴とするデータ処理システ
ム(10)。 - 【請求項2】 データ処理システム(10)において、
オペランド内の情報のスタティック・マスキングおよび
ダイナミック・マスキングを兼ね備えた処理を実行する
方法であって: 命令実行(12)に応答して、前記オペランドを与える
段階; 前記命令実行の前に定義されるスタティック・マスク情
報を有する第1制御信号(15)と、前記オペランドの
第1部分から導出されるダイナミック・マスク情報を有
する第2制御信号(17)とを与え、前記スタティック
およびダイナミック・マスク情報は、前記データ処理シ
ステムによって実行されるブレイクポイント機能を実行
するために用いられる前記オペランドの第2部分を総じ
て定義する、第1(15)および第2(17)制御信号
を与える段階;および 前記第1および第2制御信号を用いて、合成マスク信号
を与え、該スタティックおよびダイナミック・マスク情
報を合成して、前記オペランドの第2部分(16,1
8)を同時に定義する合成マスク信号を与える段階; によって構成されることを特徴とする方法。 - 【請求項3】 アドレス・オペランド内の情報のスタテ
ィック・マスキングおよびダイナミック・マスキングを
兼ね備えたデータ処理システム(10)において: 命令実行に応答して前記アドレス・オペランドを与え、
そして第1(15)および第2(17)制御信号を与え
る処理装置(12)であって、該第1制御信号(15)
は命令実行の前に定義されたスタティック・マスク情報
を有し、該第2制御信号(17)は前記アドレス・オペ
ランドの第1部分から導出されたダイナミック・マスク
情報を有し、前記スタティックおよびダイナミック・マ
スク情報は、前記データ処理システムによって実行され
るその後の機能を実行するために用いられる前記アドレ
ス・オペランドの第2部分を総じて定義する処理装置
(12); 前記処理装置(12)に結合され、前記第1および第2
制御信号を受け取る複数の論理ゲート(16,18)で
あって、前記スタティックおよびダイナミック・マスク
情報を合成して、前記アドレス・オペランドの第2部分
を同時に定義する合成マスク信号を与える複数の論理ゲ
ート(16,18);および 前記アドレス・オペランドおよび前記合成マスク信号を
受け取る複数のドライバ回路(20)であって、前記ア
ドレス・オペランドの第2部分を構成すべくマスクする
前記アドレス・オペランドの第3部分を選択的に識別す
る前記複数のドライバ回路(20);によって構成され
ることを特徴とするデータ処理システム(10)。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/679,478 US5341500A (en) | 1991-04-02 | 1991-04-02 | Data processor with combined static and dynamic masking of operand for breakpoint operation |
| US679478 | 1991-04-02 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05173837A JPH05173837A (ja) | 1993-07-13 |
| JP2776132B2 true JP2776132B2 (ja) | 1998-07-16 |
Family
ID=24727064
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4105242A Expired - Fee Related JP2776132B2 (ja) | 1991-04-02 | 1992-04-01 | オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5341500A (ja) |
| EP (1) | EP0507208A2 (ja) |
| JP (1) | JP2776132B2 (ja) |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5239642A (en) * | 1991-04-02 | 1993-08-24 | Motorola, Inc. | Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices |
| US5537559A (en) * | 1994-02-08 | 1996-07-16 | Meridian Semiconductor, Inc. | Exception handling circuit and method |
| US6052801A (en) * | 1995-05-10 | 2000-04-18 | Intel Corporation | Method and apparatus for providing breakpoints on a selectable address range |
| US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
| US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
| US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
| US5964893A (en) * | 1995-08-30 | 1999-10-12 | Motorola, Inc. | Data processing system for performing a trace function and method therefor |
| US5689228A (en) * | 1996-10-15 | 1997-11-18 | Hewlett-Packard Company | Parallel magnitude comparison using manchester carry chains |
| US6289432B1 (en) | 1998-03-25 | 2001-09-11 | International Business Machines Corporation | Sharing segments of storage by enabling the sharing of page tables |
| US7120896B2 (en) * | 2001-10-31 | 2006-10-10 | Vitria Technology, Inc. | Integrated business process modeling environment and models created thereby |
| US6845025B1 (en) * | 2003-03-21 | 2005-01-18 | Netlogic Microsystems, Inc. | Word line driver circuit for a content addressable memory |
| US7334161B2 (en) * | 2004-04-30 | 2008-02-19 | Arm Limited | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus |
| US7376807B2 (en) | 2006-02-23 | 2008-05-20 | Freescale Semiconductor, Inc. | Data processing system having address translation bypass and method therefor |
| US8010774B2 (en) * | 2006-03-13 | 2011-08-30 | Arm Limited | Breakpointing on register access events or I/O port access events |
| US7401201B2 (en) * | 2006-04-28 | 2008-07-15 | Freescale Semiconductor, Inc. | Processor and method for altering address translation |
| US7555605B2 (en) * | 2006-09-28 | 2009-06-30 | Freescale Semiconductor, Inc. | Data processing system having cache memory debugging support and method therefor |
| US9471315B2 (en) | 2012-03-16 | 2016-10-18 | International Business Machines Corporation | Run-time instrumentation reporting |
| US9465716B2 (en) | 2012-03-16 | 2016-10-11 | International Business Machines Corporation | Run-time instrumentation directed sampling |
| US9280447B2 (en) | 2012-03-16 | 2016-03-08 | International Business Machines Corporation | Modifying run-time-instrumentation controls from a lesser-privileged state |
| US9367316B2 (en) | 2012-03-16 | 2016-06-14 | International Business Machines Corporation | Run-time instrumentation indirect sampling by instruction operation code |
| US9454462B2 (en) | 2012-03-16 | 2016-09-27 | International Business Machines Corporation | Run-time instrumentation monitoring for processor characteristic changes |
| US9158660B2 (en) | 2012-03-16 | 2015-10-13 | International Business Machines Corporation | Controlling operation of a run-time instrumentation facility |
| US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
| US9430238B2 (en) | 2012-03-16 | 2016-08-30 | International Business Machines Corporation | Run-time-instrumentation controls emit instruction |
| US9483268B2 (en) | 2012-03-16 | 2016-11-01 | International Business Machines Corporation | Hardware based run-time instrumentation facility for managed run-times |
| US9250902B2 (en) | 2012-03-16 | 2016-02-02 | International Business Machines Corporation | Determining the status of run-time-instrumentation controls |
| US9405541B2 (en) | 2012-03-16 | 2016-08-02 | International Business Machines Corporation | Run-time instrumentation indirect sampling by address |
| US9411591B2 (en) | 2012-03-16 | 2016-08-09 | International Business Machines Corporation | Run-time instrumentation sampling in transactional-execution mode |
| US10423411B2 (en) | 2015-09-26 | 2019-09-24 | Intel Corporation | Data element comparison processors, methods, systems, and instructions |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2253415A5 (ja) * | 1973-12-04 | 1975-06-27 | Cii | |
| US4219874A (en) * | 1978-03-17 | 1980-08-26 | Gusev Valery | Data processing device for variable length multibyte data fields |
| JPS59154556A (ja) * | 1983-02-24 | 1984-09-03 | Nec Corp | 情報処理装置 |
| US4785393A (en) * | 1984-07-09 | 1988-11-15 | Advanced Micro Devices, Inc. | 32-Bit extended function arithmetic-logic unit on a single chip |
| US4723224A (en) * | 1986-01-02 | 1988-02-02 | Motorola, Inc. | Content addressable memory having field masking |
| US5165027A (en) * | 1986-01-24 | 1992-11-17 | Intel Corporation | Microprocessor breakpoint apparatus |
| US4868740A (en) * | 1986-06-04 | 1989-09-19 | Hitachi, Ltd. | System for processing data with multiple virtual address and data word lengths |
| US4752763A (en) * | 1986-07-11 | 1988-06-21 | Mai Basic Four, Inc. | Binary comparison circuit with selectable binary digit override |
| US5057837A (en) * | 1987-04-20 | 1991-10-15 | Digital Equipment Corporation | Instruction storage method with a compressed format using a mask word |
| JPH01216443A (ja) * | 1988-02-24 | 1989-08-30 | Nec Corp | デバッグ回路 |
| JPH02126341A (ja) * | 1988-11-04 | 1990-05-15 | Nec Corp | 中央処理装置 |
| US5142631A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register |
| JP2504847B2 (ja) * | 1989-10-27 | 1996-06-05 | 甲府日本電気株式会社 | 10進デ―タのチェック回路 |
-
1991
- 1991-04-02 US US07/679,478 patent/US5341500A/en not_active Expired - Lifetime
-
1992
- 1992-03-26 EP EP92105175A patent/EP0507208A2/en not_active Withdrawn
- 1992-04-01 JP JP4105242A patent/JP2776132B2/ja not_active Expired - Fee Related
Non-Patent Citations (2)
| Title |
|---|
| JOHN H.CRAWFORD,PATRICK P.GELSINGER著,岩谷 宏訳,「80386プログラミング」,第1版,株式会社工学社,昭和63年7月,P.62−63,144 |
| MOTOROLA INCORPORATED 著,「MC68020ユーザーズ・マニュアル」,第6版,CQ出版株式会社,昭和63年5月,PP.222−226,44−70 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0507208A2 (en) | 1992-10-07 |
| US5341500A (en) | 1994-08-23 |
| JPH05173837A (ja) | 1993-07-13 |
| EP0507208A3 (ja) | 1994-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2776132B2 (ja) | オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム | |
| JP2745949B2 (ja) | オペランド情報の静的および動的マスキングを同時かつ独立して行うデータ・プロセッサ | |
| US5239642A (en) | Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices | |
| US6266755B1 (en) | Translation lookaside buffer with virtual address conflict prevention | |
| EP0218523B1 (en) | programmable access memory | |
| US6523090B2 (en) | Shared instruction cache for multiple processors | |
| US4831520A (en) | Bus interface circuit for digital data processor | |
| US5953738A (en) | DRAM with integral SRAM and arithmetic-logic units | |
| US9032185B2 (en) | Active memory command engine and method | |
| EP0138419B1 (en) | Central processing unit for a digital computer | |
| US5073891A (en) | Method and apparatus for testing memory | |
| US4229801A (en) | Floating point processor having concurrent exponent/mantissa operation | |
| KR970011207B1 (ko) | 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치 | |
| JPH08278886A (ja) | データ処理システムでの拡張システム管理操作のための方法およびシステム | |
| JP4226085B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
| US4831581A (en) | Central processor unit for digital data processing system including cache management mechanism | |
| KR970011208B1 (ko) | 파이프라인된 기록버퍼 레지스터 | |
| KR100465388B1 (ko) | Risc 구조의 8비트 마이크로 제어기 | |
| JPH0414385B2 (ja) | ||
| US5161219A (en) | Computer system with input/output cache | |
| JPH07120312B2 (ja) | バッファメモリ制御装置 | |
| US4460972A (en) | Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip | |
| JPH09259038A (ja) | マルチモードキャッシュストラクチャ | |
| US6363474B1 (en) | Process switching register replication in a data processing system | |
| US3990051A (en) | Memory steering in a data processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| 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: 20080501 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090501 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090501 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100501 Year of fee payment: 12 |
|
| LAPS | Cancellation because of no payment of annual fees |