JP2003202981A - アドレス範囲チェック回路及び動作方法 - Google Patents
アドレス範囲チェック回路及び動作方法Info
- Publication number
- JP2003202981A JP2003202981A JP2002354116A JP2002354116A JP2003202981A JP 2003202981 A JP2003202981 A JP 2003202981A JP 2002354116 A JP2002354116 A JP 2002354116A JP 2002354116 A JP2002354116 A JP 2002354116A JP 2003202981 A JP2003202981 A JP 2003202981A
- Authority
- JP
- Japan
- Prior art keywords
- address
- output
- logic state
- carry
- equal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 大型の比較器回路を必要とすることのないア
ドレス範囲チェック回路を提供する。 【解決手段】 本発明によれば、ターゲットアドレスA
[M:0]がベースアドレス位置B[M:0]で開始す
る2N個のアドレス位置を有するアドレス空間内にある
か否かを決定することが可能なアドレス範囲チェック回
路が提供される。本発明によれば、アドレス範囲チェッ
ク回路は大型の比較器回路を必要とすることはなく、従
って従来技術と比較してより迅速に動作することが可能
である。
ドレス範囲チェック回路を提供する。 【解決手段】 本発明によれば、ターゲットアドレスA
[M:0]がベースアドレス位置B[M:0]で開始す
る2N個のアドレス位置を有するアドレス空間内にある
か否かを決定することが可能なアドレス範囲チェック回
路が提供される。本発明によれば、アドレス範囲チェッ
ク回路は大型の比較器回路を必要とすることはなく、従
って従来技術と比較してより迅速に動作することが可能
である。
Description
【0001】
【発明の属する技術分野】本発明は、大略、データ処理
システムに関するものであって、更に詳細には、アドレ
スがスタックキャッシュのアドレス範囲内にあるか否か
を決定する回路及び方法に関するものである。
システムに関するものであって、更に詳細には、アドレ
スがスタックキャッシュのアドレス範囲内にあるか否か
を決定する回路及び方法に関するものである。
【0002】
【従来の技術】高性能コンピュータに対する要求は、最
小の時間で技術水準のマイクロプロセッサが命令を実行
することを必要とする。命令の実行時間を減少させるた
めに多数の異なるアプローチが取られており、それによ
りプロセッサの処理能力を増加させている。プロセッサ
の処理能力を増加させる1つの方法はパイプラインアー
キテクチャを使用することであり、その場合に、パイプ
ラインを形成する別々の処理段階にプロセッサを分割さ
せる。命令を基本的なステップに分解し、それらを組立
ラインの態様で異なるステージにおいて実行させる。
小の時間で技術水準のマイクロプロセッサが命令を実行
することを必要とする。命令の実行時間を減少させるた
めに多数の異なるアプローチが取られており、それによ
りプロセッサの処理能力を増加させている。プロセッサ
の処理能力を増加させる1つの方法はパイプラインアー
キテクチャを使用することであり、その場合に、パイプ
ラインを形成する別々の処理段階にプロセッサを分割さ
せる。命令を基本的なステップに分解し、それらを組立
ラインの態様で異なるステージにおいて実行させる。
【0003】パイプライン型プロセッサは幾つかの異な
るマシン命令を同時的に実行することが可能である。こ
のことは、各々が別個のパイプラインステージによって
実行される幾つかの別々の処理フェーズに各命令に対す
る処理ステップを分解することによって達成される。従
って、各命令はその実行を完了するために各パイプライ
ンステージを介して逐次的に通過せねばならない。一般
的に、ある1つの命令は一度に1つのパイプラインステ
ージのみによって処理され、各ステージに対して1つの
クロックサイクルが必要とされる。命令は同一の順番で
パイプラインステージを使用し且つ典型的に単一のクロ
ックサイクルに対して各ステージ内に止まるに過ぎない
ものであるから、NステージパイプラインはN個の命令
を同時的に処理することが可能である。命令で充填され
ると、N個のパイプラインステージを有するプロセッサ
は各クロックサイクル当たり1個の命令を完了する。
るマシン命令を同時的に実行することが可能である。こ
のことは、各々が別個のパイプラインステージによって
実行される幾つかの別々の処理フェーズに各命令に対す
る処理ステップを分解することによって達成される。従
って、各命令はその実行を完了するために各パイプライ
ンステージを介して逐次的に通過せねばならない。一般
的に、ある1つの命令は一度に1つのパイプラインステ
ージのみによって処理され、各ステージに対して1つの
クロックサイクルが必要とされる。命令は同一の順番で
パイプラインステージを使用し且つ典型的に単一のクロ
ックサイクルに対して各ステージ内に止まるに過ぎない
ものであるから、NステージパイプラインはN個の命令
を同時的に処理することが可能である。命令で充填され
ると、N個のパイプラインステージを有するプロセッサ
は各クロックサイクル当たり1個の命令を完了する。
【0004】パイプラインプロセッサの実行速度は理論
的には等価な非パイプライン型プロセッサよりもN倍高
速である。非パイプライン型プロセッサは、次の命令へ
進行する前に1つの命令の実行を完了するプロセッサで
ある。典型的に、パイプラインオーバーヘッド及びその
他のファクターが、パイプライン型プロセッサが非パイ
プライン型プロセッサと比較して有する実行上の利点を
幾分減少させる。
的には等価な非パイプライン型プロセッサよりもN倍高
速である。非パイプライン型プロセッサは、次の命令へ
進行する前に1つの命令の実行を完了するプロセッサで
ある。典型的に、パイプラインオーバーヘッド及びその
他のファクターが、パイプライン型プロセッサが非パイ
プライン型プロセッサと比較して有する実行上の利点を
幾分減少させる。
【0005】マルチステージプロセッサパイプラインは
命令フェッチステージ、デコードステージ、オペランド
フェッチステージ、実行ステージ等から構成することが
可能である。更に、該プロセッサは、実行用のプログラ
ム命令を格納する命令キャッシュと、そうでない場合に
はプロセッサメモリ内に格納されるデータオペランドを
一時的に格納するデータキャッシュと、データオペラン
ドを一時的に格納するレジスタファイルとを有すること
が可能である。
命令フェッチステージ、デコードステージ、オペランド
フェッチステージ、実行ステージ等から構成することが
可能である。更に、該プロセッサは、実行用のプログラ
ム命令を格納する命令キャッシュと、そうでない場合に
はプロセッサメモリ内に格納されるデータオペランドを
一時的に格納するデータキャッシュと、データオペラン
ドを一時的に格納するレジスタファイルとを有すること
が可能である。
【0006】スタックをベースとしたマイクロプロセッ
サシステムにおいては、変数、引数及びプロセッサステ
ータスはスタックフレームと呼ばれるメモリの一部に格
納することが可能である。スタックフレームベースポイ
ンタは現在のスタックフレームのルート位置のアドレス
を包含しており、一方スタックフレームインデックスポ
インターは、図5に示したように、バイト又はワードの
正確なメモリ位置のアドレスを包含している。図5はメ
モリスタックの一部における例示的なスタックフレーム
を例示している。該プロセッサは、インデックスポイン
ターを使用して、又は時折絶対的ポインターを使用し
て、スタックフレームへしばしばアクセスする。インデ
ックスポインターの場合には、ベースポインターとイン
デックスポインターとを加算することによって絶対的ア
ドレスを計算することが可能である。
サシステムにおいては、変数、引数及びプロセッサステ
ータスはスタックフレームと呼ばれるメモリの一部に格
納することが可能である。スタックフレームベースポイ
ンタは現在のスタックフレームのルート位置のアドレス
を包含しており、一方スタックフレームインデックスポ
インターは、図5に示したように、バイト又はワードの
正確なメモリ位置のアドレスを包含している。図5はメ
モリスタックの一部における例示的なスタックフレーム
を例示している。該プロセッサは、インデックスポイン
ターを使用して、又は時折絶対的ポインターを使用し
て、スタックフレームへしばしばアクセスする。インデ
ックスポインターの場合には、ベースポインターとイン
デックスポインターとを加算することによって絶対的ア
ドレスを計算することが可能である。
【0007】高性能コンピュータシステムにおいては、
そうでない場合にはより速度の遅い大型のL1又はL2
キャッシュ又は更に速度の遅いオフチップのメインメモ
リへのアクセスをスピードアップさせるために、現在の
スタックフレームの一部を非常に小型であるが高速のレ
ジスタキャッシュ内に維持することが望ましい。例え
ば、プログラムはスタックフレームベースポインターレ
ジスタをセットアップし且つメモリ位置へアクセスする
ためにインデックスポインターを使用することが可能で
ある。データプロセッサがスタックキャッシュを実現し
且つ該キャッシュのベースがベースポインターに対応す
ることを確保する場合には、あたかもそれがレジスタフ
ァイルから読取られるかのようにメモリ位置をインデッ
クスすることによって簡単にアドレスすることが可能で
ある。通常、該キャッシュ内の与えられたエントリの有
効性を表わすために有効ステータスビットが使用され
る。
そうでない場合にはより速度の遅い大型のL1又はL2
キャッシュ又は更に速度の遅いオフチップのメインメモ
リへのアクセスをスピードアップさせるために、現在の
スタックフレームの一部を非常に小型であるが高速のレ
ジスタキャッシュ内に維持することが望ましい。例え
ば、プログラムはスタックフレームベースポインターレ
ジスタをセットアップし且つメモリ位置へアクセスする
ためにインデックスポインターを使用することが可能で
ある。データプロセッサがスタックキャッシュを実現し
且つ該キャッシュのベースがベースポインターに対応す
ることを確保する場合には、あたかもそれがレジスタフ
ァイルから読取られるかのようにメモリ位置をインデッ
クスすることによって簡単にアドレスすることが可能で
ある。通常、該キャッシュ内の与えられたエントリの有
効性を表わすために有効ステータスビットが使用され
る。
【0008】然しながら、このような構成においては、
スタックキャッシュとより低速のメモリとの間にデータ
の一貫性を維持することが重要な問題であることが判明
した。1つの例として次のプログラムシーケンス、即ち
(1)1つの値を絶対位置Aへ格納し、(2)ベースポ
インターBとインデックスCとを使用してメモリ位置を
読取る場合について検討する。高性能マシンは、通常、
ストア処理を実行する前にスタックキャッシュからCに
よってインデックスされるメモリ位置をフェッチする。
何故ならば、ストア処理は通常パイプラインの終わり近
くにある実行ステージからのデータオペランドを待機せ
ねばならないからである。プロセッサはスタックキャッ
シュから迅速にインデックスCによってインデックスさ
れる値をフェッチすることが可能である。然しながら、
ストア処理がデータを失効させることがないことを確保
せねばならない(即ち、A=B+Cである場合)。多く
の設計によって使用される典型的なアプローチは、絶対
的アドレスAをキャッシュ内のアドレス範囲と比較し且
つマッチ(一致)が存在する場合に有効ステータスビッ
トをリセットさせることによってそのエントリを無効化
させることであり、それにより強制的にキャッシュミス
とさせ且つキャッシュデータの完全性を維持する。
スタックキャッシュとより低速のメモリとの間にデータ
の一貫性を維持することが重要な問題であることが判明
した。1つの例として次のプログラムシーケンス、即ち
(1)1つの値を絶対位置Aへ格納し、(2)ベースポ
インターBとインデックスCとを使用してメモリ位置を
読取る場合について検討する。高性能マシンは、通常、
ストア処理を実行する前にスタックキャッシュからCに
よってインデックスされるメモリ位置をフェッチする。
何故ならば、ストア処理は通常パイプラインの終わり近
くにある実行ステージからのデータオペランドを待機せ
ねばならないからである。プロセッサはスタックキャッ
シュから迅速にインデックスCによってインデックスさ
れる値をフェッチすることが可能である。然しながら、
ストア処理がデータを失効させることがないことを確保
せねばならない(即ち、A=B+Cである場合)。多く
の設計によって使用される典型的なアプローチは、絶対
的アドレスAをキャッシュ内のアドレス範囲と比較し且
つマッチ(一致)が存在する場合に有効ステータスビッ
トをリセットさせることによってそのエントリを無効化
させることであり、それにより強制的にキャッシュミス
とさせ且つキャッシュデータの完全性を維持する。
【0009】スタックキャッシュ有効ビットの無効化は
高速設計において臨界的なタイミング問題であることが
判明している。典型的な実現例においては、データプロ
セッサが絶対的ストアアドレスAからベースアドレスB
を減算し且つその結果の高次ビットがゼロである場合に
差の下位ビットを使用してエントリを無効化させる。例
えば、16エントリキャッシュの場合に、32ビットア
ドレス空間を仮定した場合に、その差の28個の最大桁
ビットD[31:4]は、アドレスAがスタックキャッ
シュ内にキャッシュされる場合に、ゼロでなければなら
ない。然しながら、このアプローチは遅いものである。
何故ならば、それは通常減算を行うために使用される比
較的大型で且つ低速の加算器の結果に依存するからであ
る。その速度問題に加えて、該加算器は、又、大量のチ
ップ空間を必要とする。
高速設計において臨界的なタイミング問題であることが
判明している。典型的な実現例においては、データプロ
セッサが絶対的ストアアドレスAからベースアドレスB
を減算し且つその結果の高次ビットがゼロである場合に
差の下位ビットを使用してエントリを無効化させる。例
えば、16エントリキャッシュの場合に、32ビットア
ドレス空間を仮定した場合に、その差の28個の最大桁
ビットD[31:4]は、アドレスAがスタックキャッ
シュ内にキャッシュされる場合に、ゼロでなければなら
ない。然しながら、このアプローチは遅いものである。
何故ならば、それは通常減算を行うために使用される比
較的大型で且つ低速の加算器の結果に依存するからであ
る。その速度問題に加えて、該加算器は、又、大量のチ
ップ空間を必要とする。
【0010】従って、スタックキャッシュにおけるエン
トリをより迅速に無効化させる改良したデータプロセッ
サに対する必要性が当該技術分野において存在してい
る。特に、スタックキャッシュにおけるエントリを無効
化させるための改良したアドレス範囲チェック回路に対
する必要性が存在している。
トリをより迅速に無効化させる改良したデータプロセッ
サに対する必要性が当該技術分野において存在してい
る。特に、スタックキャッシュにおけるエントリを無効
化させるための改良したアドレス範囲チェック回路に対
する必要性が存在している。
【0011】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、改良したデータ処理技術を提供することを
目的とする。本発明の別の目的とするところは、スタッ
クキャッシュのアドレス範囲内にあるアドレスが存在す
るか否かを決定する回路及び方法を提供することを目的
とする。
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、改良したデータ処理技術を提供することを
目的とする。本発明の別の目的とするところは、スタッ
クキャッシュのアドレス範囲内にあるアドレスが存在す
るか否かを決定する回路及び方法を提供することを目的
とする。
【0012】
【課題を解決するための手段】上述した従来技術の欠点
を解消するために、本発明の主要な目的とするところ
は、ベースアドレス位置B[M:0]において開始する
2N個のアドレス位置を有するアドレス空間内にターゲ
ットアドレスA[M:0]が存在するか否かを決定する
ことが可能なアドレス範囲チェック回路を提供すること
であり、該アドレス範囲チェック回路は大型の比較器回
路を必要とするものではない。
を解消するために、本発明の主要な目的とするところ
は、ベースアドレス位置B[M:0]において開始する
2N個のアドレス位置を有するアドレス空間内にターゲ
ットアドレスA[M:0]が存在するか否かを決定する
ことが可能なアドレス範囲チェック回路を提供すること
であり、該アドレス範囲チェック回路は大型の比較器回
路を必要とするものではない。
【0013】本発明の好適実施例によれば、アドレス範
囲チェック回路は、(1)アドレスセグメントA[N−
1:0]がアドレスセグメントB[N−1:0]より小
さいか否かを決定し且つA[N−1:0]がB[N−
1:0]より小さいことを表わす第一論理状態とA[N
−1:0]がB[N−1:0]より小さくないことを表
わす第二論理状態とを有する第一制御信号を出力上で発
生することが可能な比較回路、(2)アドレスセグメン
トA[M:N]がアドレスセグメントB[M:N]と等
しいか否かを決定し且つA[M:N]がB[M:N]と
等しいことを表わす第一論理状態とA[M:N]がB
[M:N]と等しくないことを表わす第二論理状態とを
有するA=Bステータス信号を出力上に発生することが
可能な第一等値検知回路、(3)アドレスセグメントA
[M:N]がアドレスセグメントB[M:N]+1に等
しいか否かを決定し且つA[M:N]がB[M:N]+
1に等しいことを表わす第一論理状態とA[M:N]が
B[M:N]+1に等しくないことを表わす第二論理状
態とを有しているA=B+1ステータス信号を出力上に
発生することが可能な第二等値検知回路、(4)該比較
回路によって発生される第一制御信号によって制御さ
れ、該第一等値検知回路出力へ結合している第一入力と
該第二等値検知回路出力へ結合している第二入力とを具
備しているマルチプレクサ、を有しており、該第一制御
信号が該マルチプレクサをして、該第一制御信号がA
[N−1:0]がB[N−1:0]より小さくないこと
を表わす第二論理状態にある場合にA=Bステータス信
号を出力させ且つ該第一制御信号がA[N−1:0]が
B[N−1:0]より小さいことを表わす第一論理状態
にある場合にA=B+1ステータス信号を出力させるこ
とを特徴としている。
囲チェック回路は、(1)アドレスセグメントA[N−
1:0]がアドレスセグメントB[N−1:0]より小
さいか否かを決定し且つA[N−1:0]がB[N−
1:0]より小さいことを表わす第一論理状態とA[N
−1:0]がB[N−1:0]より小さくないことを表
わす第二論理状態とを有する第一制御信号を出力上で発
生することが可能な比較回路、(2)アドレスセグメン
トA[M:N]がアドレスセグメントB[M:N]と等
しいか否かを決定し且つA[M:N]がB[M:N]と
等しいことを表わす第一論理状態とA[M:N]がB
[M:N]と等しくないことを表わす第二論理状態とを
有するA=Bステータス信号を出力上に発生することが
可能な第一等値検知回路、(3)アドレスセグメントA
[M:N]がアドレスセグメントB[M:N]+1に等
しいか否かを決定し且つA[M:N]がB[M:N]+
1に等しいことを表わす第一論理状態とA[M:N]が
B[M:N]+1に等しくないことを表わす第二論理状
態とを有しているA=B+1ステータス信号を出力上に
発生することが可能な第二等値検知回路、(4)該比較
回路によって発生される第一制御信号によって制御さ
れ、該第一等値検知回路出力へ結合している第一入力と
該第二等値検知回路出力へ結合している第二入力とを具
備しているマルチプレクサ、を有しており、該第一制御
信号が該マルチプレクサをして、該第一制御信号がA
[N−1:0]がB[N−1:0]より小さくないこと
を表わす第二論理状態にある場合にA=Bステータス信
号を出力させ且つ該第一制御信号がA[N−1:0]が
B[N−1:0]より小さいことを表わす第一論理状態
にある場合にA=B+1ステータス信号を出力させるこ
とを特徴としている。
【0014】本発明の原理によれば、アドレス範囲チェ
ック回路における比較回路は、アドレスA[M:0]及
びB[M:0]のうちの少数Nの最小桁ビットのみを比
較するに過ぎず、NはMより著しく小さい。このこと
は、アドレスA[M:0]及びB[M:0]におけるア
ドレスビットの全てを比較していた比較器回路と比較し
て本発明の比較器回路を非常に高速なものとすることを
可能とさせる。
ック回路における比較回路は、アドレスA[M:0]及
びB[M:0]のうちの少数Nの最小桁ビットのみを比
較するに過ぎず、NはMより著しく小さい。このこと
は、アドレスA[M:0]及びB[M:0]におけるア
ドレスビットの全てを比較していた比較器回路と比較し
て本発明の比較器回路を非常に高速なものとすることを
可能とさせる。
【0015】本発明の1実施例によれば、第二等値検知
回路はM−N+1個のインバータを有しており、該M−
N+1のインバータの各々はアドレスセグメントB
[M:N]におけるアドレスビットのうちの1つを受取
り且つ反転させる。
回路はM−N+1個のインバータを有しており、該M−
N+1のインバータの各々はアドレスセグメントB
[M:N]におけるアドレスビットのうちの1つを受取
り且つ反転させる。
【0016】本発明の別の実施例によれば、第二等値検
知回路は、更に、M−N+1個のキャリーセーブアダー
即ちCSAを有しており、該M−N+1個のキャリーセ
ーブアダーの各々はアドレスセグメントA[M:N]に
おけるアドレスビットのうちの1つAを受取るための第
一入力と、反転されたB[M:N]アドレスビットのう
ちの対応する1つB′を受取るための第二入力と、1に
等しいキャリーイン値を受取るためのキャリーイン(C
I)入力とを有しており、且つ該M−N+1個のキャリ
ーセーブアダーの各々は和(S)出力とキャリーアウト
(CO)出力とを発生し、その場合に該M−N+1個の
キャリーセーブアダーの各々は以下の真理値表を有して
いる。
知回路は、更に、M−N+1個のキャリーセーブアダー
即ちCSAを有しており、該M−N+1個のキャリーセ
ーブアダーの各々はアドレスセグメントA[M:N]に
おけるアドレスビットのうちの1つAを受取るための第
一入力と、反転されたB[M:N]アドレスビットのう
ちの対応する1つB′を受取るための第二入力と、1に
等しいキャリーイン値を受取るためのキャリーイン(C
I)入力とを有しており、且つ該M−N+1個のキャリ
ーセーブアダーの各々は和(S)出力とキャリーアウト
(CO)出力とを発生し、その場合に該M−N+1個の
キャリーセーブアダーの各々は以下の真理値表を有して
いる。
【0017】
【表1】
【0018】本発明の更に別の実施例によれば、該第二
等値検知回路は、更に、M−N+1個の排他的ORゲー
トを有しており、M−N個の最大桁排他的ORゲートの
各々はM−N個の最大桁キャリーセーブアダーのうちの
K番目のものの和出力へ結合している第一入力と、M−
N個の最大桁キャリーセーブアダーのうちの(K−1)
番目のもののキャリーアウト出力へ結合している第二入
力とを有しており、最小桁排他的ORゲートは最小桁キ
ャリーセーブアダーの和出力へ結合している第一入力と
論理ゼロへ結合している第二入力とを有している。
等値検知回路は、更に、M−N+1個の排他的ORゲー
トを有しており、M−N個の最大桁排他的ORゲートの
各々はM−N個の最大桁キャリーセーブアダーのうちの
K番目のものの和出力へ結合している第一入力と、M−
N個の最大桁キャリーセーブアダーのうちの(K−1)
番目のもののキャリーアウト出力へ結合している第二入
力とを有しており、最小桁排他的ORゲートは最小桁キ
ャリーセーブアダーの和出力へ結合している第一入力と
論理ゼロへ結合している第二入力とを有している。
【0019】本発明の更に別の実施例によれば、該第二
等値検知回路は、更に、M−N+1個の入力を具備する
ANDゲートを有しており、該M−N+1個のANDゲ
ート入力の各々はM−N+1個の排他的ORゲートのM
−N+1個の出力のうちの1つへ結合しており、該AN
Dゲートの出力はA=B+1ステータス信号を有してい
る。
等値検知回路は、更に、M−N+1個の入力を具備する
ANDゲートを有しており、該M−N+1個のANDゲ
ート入力の各々はM−N+1個の排他的ORゲートのM
−N+1個の出力のうちの1つへ結合しており、該AN
Dゲートの出力はA=B+1ステータス信号を有してい
る。
【0020】上述した如く、本アドレス範囲チェック回
路は高速である。何故ならば、それは大型の比較器回路
を必要とするものではなく且つ等値検知回路に依存する
ものだからである。従って、本発明の原理に基づくアド
レス範囲チェック回路においては、Mの値はNより著し
く大きい。
路は高速である。何故ならば、それは大型の比較器回路
を必要とするものではなく且つ等値検知回路に依存する
ものだからである。従って、本発明の原理に基づくアド
レス範囲チェック回路においては、Mの値はNより著し
く大きい。
【0021】本発明の1実施例においては、Mは少なく
とも15であり且つNは8未満である。本発明の別の実
施例においては、Mは少なくとも31であり且つNは8
未満である。本発明の更に別の実施例によれば、Mは少
なくとも31であり且つNは6未満である。
とも15であり且つNは8未満である。本発明の別の実
施例においては、Mは少なくとも31であり且つNは8
未満である。本発明の更に別の実施例によれば、Mは少
なくとも31であり且つNは6未満である。
【0022】前述したものは当業者が以下に説明する本
発明の詳細な説明をより良く理解することが可能である
ように本発明の特徴及び技術的利点についてむしろ広義
に概観したものである。本発明の付加的な特徴及び利点
については以下の説明から明らかなものとなる。当業者
は本明細書に開示した特定の実施例及び概念を使用して
本発明の技術的範囲を逸脱することなしに容易に修正を
行ったり又はその他の構成を採用することが可能である
ことは勿論である。
発明の詳細な説明をより良く理解することが可能である
ように本発明の特徴及び技術的利点についてむしろ広義
に概観したものである。本発明の付加的な特徴及び利点
については以下の説明から明らかなものとなる。当業者
は本明細書に開示した特定の実施例及び概念を使用して
本発明の技術的範囲を逸脱することなしに容易に修正を
行ったり又はその他の構成を採用することが可能である
ことは勿論である。
【0023】
【発明の実施の形態】以下に説明する図1乃至7及び本
明細書において本発明の原理を説明するために使用する
種々の実施例は単に例示的なものであって本発明の技術
的範囲を制限するものとして解釈されるべきものではな
い。当業者が理解するように、本発明の原理は本発明の
技術的範囲を逸脱することなしに任意のデータプロセッ
サにおいて実現することが可能なものである。
明細書において本発明の原理を説明するために使用する
種々の実施例は単に例示的なものであって本発明の技術
的範囲を制限するものとして解釈されるべきものではな
い。当業者が理解するように、本発明の原理は本発明の
技術的範囲を逸脱することなしに任意のデータプロセッ
サにおいて実現することが可能なものである。
【0024】本明細書において記載する回路及び方法は
最小の論理でスタックキャッシュの無効化をスピードア
ップさせることに関連して使用するものであるが、本発
明は、与えられたアドレスが与えられた開始(ベース)
アドレスを有する逐次的なアドレスの範囲にヒット即ち
その範囲内に存在するか否かを高速に決定することが所
望される任意の構成において使用することが可能であ
る。スタックキャッシュは本発明の有用な実施例の1つ
に過ぎない。
最小の論理でスタックキャッシュの無効化をスピードア
ップさせることに関連して使用するものであるが、本発
明は、与えられたアドレスが与えられた開始(ベース)
アドレスを有する逐次的なアドレスの範囲にヒット即ち
その範囲内に存在するか否かを高速に決定することが所
望される任意の構成において使用することが可能であ
る。スタックキャッシュは本発明の有用な実施例の1つ
に過ぎない。
【0025】図1は例示的な処理システム、即ちパソコ
ン(PC)100を示しており、それは本発明の原理に
基づくアドレス範囲チェック回路を包含している。パソ
コン100は着脱自在(即ち、フロッピィ)ディスクド
ライブ102及びハードディスクドライブ103、モニ
タ104、キーボード105、プロセッサ(CPU)1
06、メインメモリ107、マウス108等のポインテ
ィングデバイスを有している。モニタ104、キーボー
ド105、マウス108はその他の入力/出力(I/
O)装置によって置換させるか又はそれと結合させるこ
とが可能である。着脱自在なディスクドライブ102は
着脱自在なフロッピィディスクに対して読取及び書込を
行うことが可能である。ハードディスクドライブ105
はアプリケーションプログラム及びデータの格納及び検
索に対して高速なアクセスを与える。
ン(PC)100を示しており、それは本発明の原理に
基づくアドレス範囲チェック回路を包含している。パソ
コン100は着脱自在(即ち、フロッピィ)ディスクド
ライブ102及びハードディスクドライブ103、モニ
タ104、キーボード105、プロセッサ(CPU)1
06、メインメモリ107、マウス108等のポインテ
ィングデバイスを有している。モニタ104、キーボー
ド105、マウス108はその他の入力/出力(I/
O)装置によって置換させるか又はそれと結合させるこ
とが可能である。着脱自在なディスクドライブ102は
着脱自在なフロッピィディスクに対して読取及び書込を
行うことが可能である。ハードディスクドライブ105
はアプリケーションプログラム及びデータの格納及び検
索に対して高速なアクセスを与える。
【0026】キーボード105及びマウス108は入力
/出力(I/O)インターフェース(IF)110を介
してPC100へ結合されている。モニタ104はビデ
オ/オーディオインターフェース(IF)112を介し
てPC100へ結合している。フロッピィディスクドラ
イブ102、ハードディスクドライブ103、プロセッ
サ106、メインメモリ107、I/Oインターフェー
ス110、ビデオ/オーディオインターフェース112
を包含するPC100の内部コンポーネントは通信バス
115へ結合しており且つそれを介して通信を行う。
/出力(I/O)インターフェース(IF)110を介
してPC100へ結合されている。モニタ104はビデ
オ/オーディオインターフェース(IF)112を介し
てPC100へ結合している。フロッピィディスクドラ
イブ102、ハードディスクドライブ103、プロセッ
サ106、メインメモリ107、I/Oインターフェー
ス110、ビデオ/オーディオインターフェース112
を包含するPC100の内部コンポーネントは通信バス
115へ結合しており且つそれを介して通信を行う。
【0027】本発明の例示的実施例においては、メイン
メモリ107はダイナミックランダムアクセスメモリ
(RAM)等の揮発性格納(記憶)装置を有している。
プロセッサ106はレベル1(L1)キャッシュ及びレ
ベル2(L2)キャッシュを包含するオンボードの2レ
ベルキャッシュシステムを有することが可能である。こ
の2レベルキャッシュは、小型の高速のキャッシュ(L
1キャッシュ)がより遅くより大型のキャッシュ(L2
キャッシュ)へ接続されているシステムである。プロセ
サ106の中央処理装置(CPU)コア論理はメインメ
モリ107におけるメモリ位置へデータを書込み又はそ
こからデータを読取る場合に、キャッシュシステムは、
最初に、その位置に属するデータがL1キャッシュ内に
存在するか否かを判別するためにテストを行う。そのデ
ータがL1キャッシュ内に存在する場合には、そのデー
タがL1キャッシュによって迅速に供給されるか又はア
ップデートされる。そのデータがL1キャッシュ内に存
在しない場合には、L1キャッシュ読取「ミス」又はL
1キャッシュ書込「ミス」が発生している。
メモリ107はダイナミックランダムアクセスメモリ
(RAM)等の揮発性格納(記憶)装置を有している。
プロセッサ106はレベル1(L1)キャッシュ及びレ
ベル2(L2)キャッシュを包含するオンボードの2レ
ベルキャッシュシステムを有することが可能である。こ
の2レベルキャッシュは、小型の高速のキャッシュ(L
1キャッシュ)がより遅くより大型のキャッシュ(L2
キャッシュ)へ接続されているシステムである。プロセ
サ106の中央処理装置(CPU)コア論理はメインメ
モリ107におけるメモリ位置へデータを書込み又はそ
こからデータを読取る場合に、キャッシュシステムは、
最初に、その位置に属するデータがL1キャッシュ内に
存在するか否かを判別するためにテストを行う。そのデ
ータがL1キャッシュ内に存在する場合には、そのデー
タがL1キャッシュによって迅速に供給されるか又はア
ップデートされる。そのデータがL1キャッシュ内に存
在しない場合には、L1キャッシュ読取「ミス」又はL
1キャッシュ書込「ミス」が発生している。
【0028】次いで、該データは、L2キャッシュによ
ってプロセッサ106のCPUコア論理へ供給されるか
又はアップデートされる。L1キャッシュ読取ミスの場
合には、要求されたデータを包含するラインもL2キャ
ッシュからL1キャッシュへ転送され、従って該データ
はプロセッサ106がそのデータへ次にアクセスする場
合により迅速に供給することが可能である。このことは
L1キャッシュラインフィルとして知られている。該デ
ータがL2キャッシュ内にも存在しない場合には、L2
キャッシュミスが発生し且つ要求されたデータを包含す
るラインがメインメモリ107からフェッチされ次い
で、次にそのデータが要求された場合にはより速いアク
セスを与えるためにL2キャッシュ内へロードされる。
このことはL2キャッシュラインフィル(line f
ill)として知られている。
ってプロセッサ106のCPUコア論理へ供給されるか
又はアップデートされる。L1キャッシュ読取ミスの場
合には、要求されたデータを包含するラインもL2キャ
ッシュからL1キャッシュへ転送され、従って該データ
はプロセッサ106がそのデータへ次にアクセスする場
合により迅速に供給することが可能である。このことは
L1キャッシュラインフィルとして知られている。該デ
ータがL2キャッシュ内にも存在しない場合には、L2
キャッシュミスが発生し且つ要求されたデータを包含す
るラインがメインメモリ107からフェッチされ次い
で、次にそのデータが要求された場合にはより速いアク
セスを与えるためにL2キャッシュ内へロードされる。
このことはL2キャッシュラインフィル(line f
ill)として知られている。
【0029】図2は本発明の原理に基づいて実現するこ
とが可能な例示的なデータプロセッサ106をより詳細
に示している。データプロセッサ106は命令フェッチ
(Iフェッチ)ステージ、デコードステージ、オペラン
ドフェッチステージ、実行ステージ等を有している。命
令フェッチステージは命令フェッチユニット205と命
令キャッシュ210とを有している。デコードステージ
は命令デコードユニット215を有している。オペラン
ドフェッチステージはレジスタファイル220、オペラ
ンドフェッチユニット225、スタックキャッシュ23
0を有している。実行ステージは実行ユニット235及
びデータキャッシュ240を有している。
とが可能な例示的なデータプロセッサ106をより詳細
に示している。データプロセッサ106は命令フェッチ
(Iフェッチ)ステージ、デコードステージ、オペラン
ドフェッチステージ、実行ステージ等を有している。命
令フェッチステージは命令フェッチユニット205と命
令キャッシュ210とを有している。デコードステージ
は命令デコードユニット215を有している。オペラン
ドフェッチステージはレジスタファイル220、オペラ
ンドフェッチユニット225、スタックキャッシュ23
0を有している。実行ステージは実行ユニット235及
びデータキャッシュ240を有している。
【0030】命令フェッチユニット205は命令キャッ
シュ210が実行するための命令をフェッチする。デコ
ードステージは命令フェッチユニット205から命令を
取り且つその命令を命令デコードユニット215におい
てその後のパイプラインステージを実行するために直接
的に使用することが可能な1組の信号へデコードする。
オペランドフェッチユニット225はスタックキャッシ
ュ230又はデータキャッシュ240から、又はレジス
タファイル220におけるレジスタから所要のオペラン
ドをフェッチする。実行ステージにおける実行ユニット
235はオペランドフェッチステージによってフェッチ
されたオペランドに関して実際のプログラムされた処理
(例えば、加算、乗算、除算等)を実施し且つその結果
を発生する。
シュ210が実行するための命令をフェッチする。デコ
ードステージは命令フェッチユニット205から命令を
取り且つその命令を命令デコードユニット215におい
てその後のパイプラインステージを実行するために直接
的に使用することが可能な1組の信号へデコードする。
オペランドフェッチユニット225はスタックキャッシ
ュ230又はデータキャッシュ240から、又はレジス
タファイル220におけるレジスタから所要のオペラン
ドをフェッチする。実行ステージにおける実行ユニット
235はオペランドフェッチステージによってフェッチ
されたオペランドに関して実際のプログラムされた処理
(例えば、加算、乗算、除算等)を実施し且つその結果
を発生する。
【0031】図2に示したように、オペランドフェッチ
ユニット225はスタックキャッシュ230からデータ
オペランドをフェッチすることが可能である。そのこと
を行うために、データプロセッサ106はスタックフレ
ームと呼ばれるメモリのセクションを維持する。スタッ
クフレームはベースアドレス及びプログラム内のサブル
ーチンを実行するために使用される一次的なデータを格
納即ち記憶するために使用されるインデックスアドレス
を具備する連続的なメモリのセグメントである。スタッ
クフレームベースポインターはスタックフレームのベー
ス即ちルートを指し示すアドレスである。インデックス
ポインターはスタック上の任意の値に対してのスタック
フレームベースポインターからのオフセットである。イ
ンデックスポインターの場合には、ベースポインターと
インデックスポインターとを加算することによって絶対
的アドレスを計算することが可能である。絶対的ポイン
ターはアドレスゼロに対するメモリアドレスである。
ユニット225はスタックキャッシュ230からデータ
オペランドをフェッチすることが可能である。そのこと
を行うために、データプロセッサ106はスタックフレ
ームと呼ばれるメモリのセクションを維持する。スタッ
クフレームはベースアドレス及びプログラム内のサブル
ーチンを実行するために使用される一次的なデータを格
納即ち記憶するために使用されるインデックスアドレス
を具備する連続的なメモリのセグメントである。スタッ
クフレームベースポインターはスタックフレームのベー
ス即ちルートを指し示すアドレスである。インデックス
ポインターはスタック上の任意の値に対してのスタック
フレームベースポインターからのオフセットである。イ
ンデックスポインターの場合には、ベースポインターと
インデックスポインターとを加算することによって絶対
的アドレスを計算することが可能である。絶対的ポイン
ターはアドレスゼロに対するメモリアドレスである。
【0032】図3は従来技術の1実施例に基づくアドレ
ス範囲チェック回路300を示している。アドレス範囲
チェック回路300は加算器310、比較器320、比
較器330、ANDゲート340を有している。アドレ
ス範囲チェック回路300は、32ビットアドレスA
[31:0]が32ビットベースアドレスB[31:
0]で開始する16エントリスタックの範囲内にあるか
否かを決定するために動作可能である。加算器310が
ベースアドレス(即ち、スタックフレームベースポイン
ター)の全ての32ビットB[31:0]を受取り且つ
該ベースアドレスに対して16を加算して出力値(B+
16)を発生する。比較器330がターゲットアドレス
の32ビットA[31:0]を(B+16)値と比較す
る。A[31:0]が(B+16)値より小さい場合に
は、比較器330の出力(A IS< (B+16))
は論理1である。そうでない場合には、A[31:0]
が(B+16)値より大きいか又は等しい場合には、
(A IS < (B+16))は論理0である。
ス範囲チェック回路300を示している。アドレス範囲
チェック回路300は加算器310、比較器320、比
較器330、ANDゲート340を有している。アドレ
ス範囲チェック回路300は、32ビットアドレスA
[31:0]が32ビットベースアドレスB[31:
0]で開始する16エントリスタックの範囲内にあるか
否かを決定するために動作可能である。加算器310が
ベースアドレス(即ち、スタックフレームベースポイン
ター)の全ての32ビットB[31:0]を受取り且つ
該ベースアドレスに対して16を加算して出力値(B+
16)を発生する。比較器330がターゲットアドレス
の32ビットA[31:0]を(B+16)値と比較す
る。A[31:0]が(B+16)値より小さい場合に
は、比較器330の出力(A IS< (B+16))
は論理1である。そうでない場合には、A[31:0]
が(B+16)値より大きいか又は等しい場合には、
(A IS < (B+16))は論理0である。
【0033】比較器320はターゲットアドレスの32
ビットA[31:0]をベースアドレスの32ビットB
[31:0]と比較する。A[31:0]がB[31:
0]より大きいか又は等しい場合には、比較器320の
出力(A IS >/= B)は論理1である。そうで
ない場合には、A[31:0]がB[31:0]より小
さい場合には、(A IS >/= B)は論理0であ
る。(A IS >/= B)が論理1であり且つ(A
IS < (B+16))も論理1である場合には
(AがB乃至B+15の範囲内にあることを意味す
る)、ANDゲート340の出力(Aはベースアドレス
Bを有するキャッシュ内にある)は論理1である。
ビットA[31:0]をベースアドレスの32ビットB
[31:0]と比較する。A[31:0]がB[31:
0]より大きいか又は等しい場合には、比較器320の
出力(A IS >/= B)は論理1である。そうで
ない場合には、A[31:0]がB[31:0]より小
さい場合には、(A IS >/= B)は論理0であ
る。(A IS >/= B)が論理1であり且つ(A
IS < (B+16))も論理1である場合には
(AがB乃至B+15の範囲内にあることを意味す
る)、ANDゲート340の出力(Aはベースアドレス
Bを有するキャッシュ内にある)は論理1である。
【0034】然しながら、アドレス範囲チェック回路3
00は比較的大型で且つ低速の加算器、即ち加算器31
0を有している。加算器310は大きなダイ空間を必要
とし且つアドレスAがスタックキャッシュ230内にあ
るか否かをデータプロセッサ106が決定することが可
能な速度を低速化させる。
00は比較的大型で且つ低速の加算器、即ち加算器31
0を有している。加算器310は大きなダイ空間を必要
とし且つアドレスAがスタックキャッシュ230内にあ
るか否かをデータプロセッサ106が決定することが可
能な速度を低速化させる。
【0035】本発明はスタックキャッシュ230を無効
化させるために新規な論理を使用することによって速度
及び面積の問題を解決している。本発明は速度を上げる
ために等値比較論理に依存しており且つ面積のコストを
最小とするためにその他の論理を使用することを可及的
に少ないものとしている。本発明の原理を例示する以下
の例においては、スタックキャッシュ230が2nの深
さを有するものと仮定する。更に、アドレス空間は32
ビットであり、キャッシュスタック230はベースアド
レスBを有しているものと仮定する。又、例示を簡単化
するためにn=4と仮定する。目標とするところは、ア
ドレスAがキャッシュスタック230内にあるか否かを
決定することである。
化させるために新規な論理を使用することによって速度
及び面積の問題を解決している。本発明は速度を上げる
ために等値比較論理に依存しており且つ面積のコストを
最小とするためにその他の論理を使用することを可及的
に少ないものとしている。本発明の原理を例示する以下
の例においては、スタックキャッシュ230が2nの深
さを有するものと仮定する。更に、アドレス空間は32
ビットであり、キャッシュスタック230はベースアド
レスBを有しているものと仮定する。又、例示を簡単化
するためにn=4と仮定する。目標とするところは、ア
ドレスAがキャッシュスタック230内にあるか否かを
決定することである。
【0036】最初に、最も低い4個のビットの不等比較
を実施する。即ち、以下のものとする。
を実施する。即ち、以下のものとする。
【0037】
【数1a】
【0038】又最も高い28個のビットの等値比較を実
施する。即ち、以下のものとする。
施する。即ち、以下のものとする。
【0039】
【数2a】
【0040】又、ビット毎の排他的OR(X−OR)処
理及びAND/OR論理を実施する。以下の式において
は、演算子「〜X」は「二進値Xの1の補数」を意味
し、演算子「|」は論理OR処理を意味し、演算子
「&」は論理AND処理を意味し、且つ演算子「^」は
論理排他的OR演算を意味する。即ち、以下のものとす
る。
理及びAND/OR論理を実施する。以下の式において
は、演算子「〜X」は「二進値Xの1の補数」を意味
し、演算子「|」は論理OR処理を意味し、演算子
「&」は論理AND処理を意味し、且つ演算子「^」は
論理排他的OR演算を意味する。即ち、以下のものとす
る。
【0041】
【数3】
【0042】最後に、2対1マルチプレクサ論理を使用
してAがベースBを有するキャッシュ内にあるか否かを
決定することが可能である。即ち、以下の通りである。
してAがベースBを有するキャッシュ内にあるか否かを
決定することが可能である。即ち、以下の通りである。
【0043】
【数4】
【0044】A[3:0]からB[3:0]を減算する
ことによって計算されるインデックスを使用してA i
s in cache with base Bが真で
ある場合には、スタックキャッシュエントリを無効化さ
せることが可能である。
ことによって計算されるインデックスを使用してA i
s in cache with base Bが真で
ある場合には、スタックキャッシュエントリを無効化さ
せることが可能である。
【0045】nがmよりも小さな数であるとして、アド
レスAがアドレスBで開始し且つmビットアドレス空間
において2nの範囲幅を有する連続的なアドレス範囲内
にあるか否かを決定するものとする。二進フォーマット
において、アドレスはA[m−1:0]及びB[m−
1:0]として表わされる。アドレスA及びアドレスB
は、夫々、例えばA[m−1:n]及びN[n−1:
0]及びB[m−1:n]及びB[n−1:0]のよう
に2つの部分に分割することが可能である。{B[m−
1:n],n′b0}乃至{B[m−1:n],n′b
ff}のアドレスセグメントは2nの寸法の頁を表わし
且つ{B[m−1:n]+1,n′b0}乃至{B[m
−1]+1:n,n′bff}のアドレスセグメントは
別の頁を表わす。アドレス{B[m−1:n]}は「頁
アドレス」と呼ばれ且つ値B[n−1:0]はそのアド
レスの頁オフセット部分である。
レスAがアドレスBで開始し且つmビットアドレス空間
において2nの範囲幅を有する連続的なアドレス範囲内
にあるか否かを決定するものとする。二進フォーマット
において、アドレスはA[m−1:0]及びB[m−
1:0]として表わされる。アドレスA及びアドレスB
は、夫々、例えばA[m−1:n]及びN[n−1:
0]及びB[m−1:n]及びB[n−1:0]のよう
に2つの部分に分割することが可能である。{B[m−
1:n],n′b0}乃至{B[m−1:n],n′b
ff}のアドレスセグメントは2nの寸法の頁を表わし
且つ{B[m−1:n]+1,n′b0}乃至{B[m
−1]+1:n,n′bff}のアドレスセグメントは
別の頁を表わす。アドレス{B[m−1:n]}は「頁
アドレス」と呼ばれ且つ値B[n−1:0]はそのアド
レスの頁オフセット部分である。
【0046】ベースアドレスB及び長さ2nを有するス
タックキャッシュは、1つの完全な頁か又は頁アドレス
と整合されていない場合には2つの部分的な隣接する頁
にマッピングさせることが可能である。アドレスA及び
アドレスBは任意の数とすることが可能であるので、A
は図6に示したようにアドレス空間の6個の領域のうち
のいずれかに存在することが可能である。図6はアドレ
スAがスタックフレームに関連して位置させることが可
能なメモリ内の異なる頁及び領域を示している。
タックキャッシュは、1つの完全な頁か又は頁アドレス
と整合されていない場合には2つの部分的な隣接する頁
にマッピングさせることが可能である。アドレスA及び
アドレスBは任意の数とすることが可能であるので、A
は図6に示したようにアドレス空間の6個の領域のうち
のいずれかに存在することが可能である。図6はアドレ
スAがスタックフレームに関連して位置させることが可
能なメモリ内の異なる頁及び領域を示している。
【0047】Aの2つの隣接するB頁アドレスとの等値
比較の場合に、Aの可能性を領域2,3,4,5に対す
るキャッシュ内にあるものと制限することが可能であ
る。更に、アドレスAの頁オフセットとアドレスBの頁
オフセットとの不等比較を実施する場合には、それがキ
ャッシュ内にある場合にAが正確にどの領域にあるかを
決定することが可能である。
比較の場合に、Aの可能性を領域2,3,4,5に対す
るキャッシュ内にあるものと制限することが可能であ
る。更に、アドレスAの頁オフセットとアドレスBの頁
オフセットとの不等比較を実施する場合には、それがキ
ャッシュ内にある場合にAが正確にどの領域にあるかを
決定することが可能である。
【0048】このことは以下の態様で示すことが可能で
ある。即ち、以下のものとする。
ある。即ち、以下のものとする。
【0049】
【数5】
【0050】A offset is less th
an B offsetが真である場合には、Aがキャ
ッシュ内にあるためには、Comparison2が真
でなければならない。そうでない場合には、A off
set is less than B offset
が偽である場合には、Comparison1が真であ
ることは、アドレスAがキャッシュ内にあることを表わ
す。
an B offsetが真である場合には、Aがキャ
ッシュ内にあるためには、Comparison2が真
でなければならない。そうでない場合には、A off
set is less than B offset
が偽である場合には、Comparison1が真であ
ることは、アドレスAがキャッシュ内にあることを表わ
す。
【0051】Comparison1は直接的な等値比
較であり、従ってそれは比較的高速である。nが小さな
数である場合にはA offset is less
than B offsetは高速であり、それは任意
の実際的な実現例に対して言えることである。唯一の問
題はComparison2にあり、それは等値比較の
前に加算又はインクリメントを包含している。然しなが
ら、加算を行うことなしComparison2を決定
する方法が存在している。論理操作が必要とされる。
較であり、従ってそれは比較的高速である。nが小さな
数である場合にはA offset is less
than B offsetは高速であり、それは任意
の実際的な実現例に対して言えることである。唯一の問
題はComparison2にあり、それは等値比較の
前に加算又はインクリメントを包含している。然しなが
ら、加算を行うことなしComparison2を決定
する方法が存在している。論理操作が必要とされる。
【0052】一般的に、A及びBは32ビットの二進数
であると仮定すると、以下のことを決定することが所望
される。
であると仮定すると、以下のことを決定することが所望
される。
【0053】
【数1】
【0054】以下の変換を行うことが可能である。
【0055】
【数2】
【0056】次に、この式の左側に関して3入力キャリ
ーセーブ加算(CSA)を行う。
ーセーブ加算(CSA)を行う。
【0057】
【数6】
【0058】次いで、式(2)は以下のものと等価であ
る。
る。
【0059】
【数7】
【0060】2つの二進数の和が全て1であるために
は、それらの数の1つのみが各ビット位置に対して1で
なければならない。即ち、
は、それらの数の1つのみが各ビット位置に対して1で
なければならない。即ち、
【数8】
【0061】これは以下のものと等価である。
【0062】
【数9】
【0063】最後に、
【数10】
【0064】が成立する場合にのみA=(B+1)が成
立する。それは、A equal B plus 1が計
算された場合の解において使用される式である。
立する。それは、A equal B plus 1が計
算された場合の解において使用される式である。
【0065】図4は本発明の例示的実施例に基づくアド
レス範囲チェック回路400を示している。アドレス範
囲チェック回路400は比較器410、比較器420、
インバータブロック425、キャリーセーブアダー(C
SA)ブロック430、排他的ORゲートブロック44
0、ANDゲート450、マルチプレクサ460を有し
ている。アドレス範囲チェック回路400は、32ビッ
トアドレスA[31:0]が32ビットベースアドレス
B[31:0]で開始する16エントリスタックの範囲
内にあるか否かを決定すべく動作可能である。
レス範囲チェック回路400を示している。アドレス範
囲チェック回路400は比較器410、比較器420、
インバータブロック425、キャリーセーブアダー(C
SA)ブロック430、排他的ORゲートブロック44
0、ANDゲート450、マルチプレクサ460を有し
ている。アドレス範囲チェック回路400は、32ビッ
トアドレスA[31:0]が32ビットベースアドレス
B[31:0]で開始する16エントリスタックの範囲
内にあるか否かを決定すべく動作可能である。
【0066】比較器410はターゲットアドレスの下位
4ビットA[3:0]をベースアドレスの下位4ビット
B[3:0]と比較する。A[3:0]がB[3:0]
よりも小さい場合には、比較器410の出力A[3:
0]<B[3:0]は論理1である。そうでない場合に
は、A[3:0]がB[3:0]より大きいか又は等し
い場合には、比較器410の出力A[3:0]<B
[3:0]は論理0である。比較器420はターゲット
アドレスの上位28ビットA[31:4]をベースアド
レスの上位28ビットB[31:4]と比較する。A
[31:4]がB[31:4]と等しい場合には、比較
器420の出力A=Bは論理1である。そうでなく、A
[31:4]がB[31:4]より小さいか又は大きい
場合には、比較器420の出力A=Bは論理0である。
4ビットA[3:0]をベースアドレスの下位4ビット
B[3:0]と比較する。A[3:0]がB[3:0]
よりも小さい場合には、比較器410の出力A[3:
0]<B[3:0]は論理1である。そうでない場合に
は、A[3:0]がB[3:0]より大きいか又は等し
い場合には、比較器410の出力A[3:0]<B
[3:0]は論理0である。比較器420はターゲット
アドレスの上位28ビットA[31:4]をベースアド
レスの上位28ビットB[31:4]と比較する。A
[31:4]がB[31:4]と等しい場合には、比較
器420の出力A=Bは論理1である。そうでなく、A
[31:4]がB[31:4]より小さいか又は大きい
場合には、比較器420の出力A=Bは論理0である。
【0067】インバータブロック425は、アドレスセ
グメントB[31:4]における各ビットを反転させて
B[31:4]の1の補数を発生させる28個のインバ
ータを有している。キャリーセーブアダーブロック43
0はA[31:4]、B[31:4]、28個の論理1
ビット(即ち、16進数におけるFFFFFFF)を受
取る。CASブロック430は28個のキャリーセーブ
アダーを有しており、その各々はA入力上のA[31:
4]からの1ビット、B入力上のB[31:4]の対応
する1の補数からの1ビット、及びキャリーイン(C
I)入力上の28個の論理1ビットのうちの1つを受取
る。該28個のキャリーセーブアダーの各々は和(S)
ビット及びキャリーアウト(CO)ビットを発生する。
グメントB[31:4]における各ビットを反転させて
B[31:4]の1の補数を発生させる28個のインバ
ータを有している。キャリーセーブアダーブロック43
0はA[31:4]、B[31:4]、28個の論理1
ビット(即ち、16進数におけるFFFFFFF)を受
取る。CASブロック430は28個のキャリーセーブ
アダーを有しており、その各々はA入力上のA[31:
4]からの1ビット、B入力上のB[31:4]の対応
する1の補数からの1ビット、及びキャリーイン(C
I)入力上の28個の論理1ビットのうちの1つを受取
る。該28個のキャリーセーブアダーの各々は和(S)
ビット及びキャリーアウト(CO)ビットを発生する。
【0068】該28個のキャリーセーブアダーの各々は
以下の真理値表を有している。
以下の真理値表を有している。
【0069】
【表1】
【0070】従って、A=0及びB=0(即ち、B′=
1)である場合には、CSAからのCOビット及びSビ
ットは異なる(即ち、[CO,S]=10)。又、A=
1及びB=1(即ち、B′=0)である場合には、CA
SからのCOビット及びSビットは異なる(即ち、[C
O,S]=10)。従って、A及びBが同じである場合
には、[CO,S]=10である。この条件を検知する
ために論理1を発生するために排他的ORゲートを使用
することが可能である。
1)である場合には、CSAからのCOビット及びSビ
ットは異なる(即ち、[CO,S]=10)。又、A=
1及びB=1(即ち、B′=0)である場合には、CA
SからのCOビット及びSビットは異なる(即ち、[C
O,S]=10)。従って、A及びBが同じである場合
には、[CO,S]=10である。この条件を検知する
ために論理1を発生するために排他的ORゲートを使用
することが可能である。
【0071】然しながら、排他的ORゲートはA=0及
びB=1(即ち、B′=0)の場合に偽論理1を与え、
その場合に、各CSAからのCOビット及びSビットは
未だに異なる(即ち、[CO,S=01]。AB=01
の場合をAB=00の場合及びAB=11の場合と区別
するために、各CSAからの和を排他的ゲートによって
次に最も低い次数のCSAからのキャリーアウトと比較
することが可能である。その場合には、排他的ORゲー
トはK番目のCSAからSビットを受取り且つ(K−
1)番目のCSAからCOビットを受取る。
びB=1(即ち、B′=0)の場合に偽論理1を与え、
その場合に、各CSAからのCOビット及びSビットは
未だに異なる(即ち、[CO,S=01]。AB=01
の場合をAB=00の場合及びAB=11の場合と区別
するために、各CSAからの和を排他的ゲートによって
次に最も低い次数のCSAからのキャリーアウトと比較
することが可能である。その場合には、排他的ORゲー
トはK番目のCSAからSビットを受取り且つ(K−
1)番目のCSAからCOビットを受取る。
【0072】これは、排他的ORゲートブロック440
における28個の排他的ORゲートを有する場合であ
る。最初の(最も低い次数)排他的ORゲートは固定さ
れた論理0を最初のCSAからのS(1)ビットと比較
する。2番目の排他的ORゲートは最初のCSAからの
CO(1)ビットを2番目のCSAからのS(2)ビッ
トと比較する。3番目の排他的ORゲートは2番目のC
SAからのCO(2)ビットを3番目のCSAからのS
(3)ビットと比較し、以下同様である。要するに、A
=B+1である場合には、排他的ORゲートブロック4
40の出力は28個の論理1ビットである。ANDゲー
ト450は、排他的ORゲートブロック440の28個
の全ての出力が論理1である場合にのみ(即ち、A=B
+1である場合)論理1を出力する。
における28個の排他的ORゲートを有する場合であ
る。最初の(最も低い次数)排他的ORゲートは固定さ
れた論理0を最初のCSAからのS(1)ビットと比較
する。2番目の排他的ORゲートは最初のCSAからの
CO(1)ビットを2番目のCSAからのS(2)ビッ
トと比較する。3番目の排他的ORゲートは2番目のC
SAからのCO(2)ビットを3番目のCSAからのS
(3)ビットと比較し、以下同様である。要するに、A
=B+1である場合には、排他的ORゲートブロック4
40の出力は28個の論理1ビットである。ANDゲー
ト450は、排他的ORゲートブロック440の28個
の全ての出力が論理1である場合にのみ(即ち、A=B
+1である場合)論理1を出力する。
【0073】比較器410の出力A[3:0]<B
[3:0]はマルチプレクサ460を制御するために使
用される。A [3:0]<B[3:0]が論理0である
場合には、信号A IS IN CACHE WITH
BASE ADDRESS Bは、A=Bが論理1で
ある場合にのみ論理1である。A[3:0]<B[3:
0]が論理0である場合には、信号A IS IN C
ACHE WITH BASE ADDRESS B
は、A=(B+1)が論理1である場合にのみ論理1で
ある。従って、信号A IS IN CACHE WI
TH BASE ADDRESS Bは、A[31:
4]=B[31:4]であり且つアドレスAのオフセッ
トがアドレスBのオフセットより大きいか又は等しい場
合、又はA[31:4]=B[31:4]+1であり且
つアドレスAのオフセットがアドレスBのオフセットよ
り小さい場合にのみ、真である。
[3:0]はマルチプレクサ460を制御するために使
用される。A [3:0]<B[3:0]が論理0である
場合には、信号A IS IN CACHE WITH
BASE ADDRESS Bは、A=Bが論理1で
ある場合にのみ論理1である。A[3:0]<B[3:
0]が論理0である場合には、信号A IS IN C
ACHE WITH BASE ADDRESS B
は、A=(B+1)が論理1である場合にのみ論理1で
ある。従って、信号A IS IN CACHE WI
TH BASE ADDRESS Bは、A[31:
4]=B[31:4]であり且つアドレスAのオフセッ
トがアドレスBのオフセットより大きいか又は等しい場
合、又はA[31:4]=B[31:4]+1であり且
つアドレスAのオフセットがアドレスBのオフセットよ
り小さい場合にのみ、真である。
【0074】図4において、キャリーセーブアダーブロ
ック430及びインバータブロック425はより簡単な
回路で置換させることが可能である。何故ならば、論理
1ビットがA[31:4]アドレスビットのうちの1つ
及びB[31:4]アドレスビットのうちの1つの28
個の加算のうちの各々に対して常に加算されるからであ
る。以下が成立することについては前述した。
ック430及びインバータブロック425はより簡単な
回路で置換させることが可能である。何故ならば、論理
1ビットがA[31:4]アドレスビットのうちの1つ
及びB[31:4]アドレスビットのうちの1つの28
個の加算のうちの各々に対して常に加算されるからであ
る。以下が成立することについては前述した。
【0075】
【数11】
【0076】28個の論理1ビットは固定されているの
で、この和 (Sum)の値は以下の論理によって計算す
ることも可能である。
で、この和 (Sum)の値は以下の論理によって計算す
ることも可能である。
【0077】
【数12】
【0078】従って、和(Sum)はB[31:4]ア
ドレスビットの28個の全てを反転させ、28個の反転
させたB[31:4]アドレスビットの各々を28個の
A[31:4]アドレスビットの対応する1つと排他的
OR処理し、次いで該28個の排他的ORゲートの28
個の出力を反転させることによって計算することが可能
である。
ドレスビットの28個の全てを反転させ、28個の反転
させたB[31:4]アドレスビットの各々を28個の
A[31:4]アドレスビットの対応する1つと排他的
OR処理し、次いで該28個の排他的ORゲートの28
個の出力を反転させることによって計算することが可能
である。
【0079】同様に、以下のものが成立することについ
て説明した。
て説明した。
【0080】
【数13】
【0081】28個の論理1ビットは固定されているの
で、キャリー値を以下の論理によって計算することが可
能である。
で、キャリー値を以下の論理によって計算することが可
能である。
【0082】
【数14】
【0083】従って、B[31:4]アドレスビットの
28個の全てを反転させ、且つ28個の反転させたB
[31:4]アドレスビットの各々を28個のA[3
1:4]アドレスビットの対応する1つとOR処理する
ことによってキャリーを計算することが可能である。
28個の全てを反転させ、且つ28個の反転させたB
[31:4]アドレスビットの各々を28個のA[3
1:4]アドレスビットの対応する1つとOR処理する
ことによってキャリーを計算することが可能である。
【0084】図7は別の論理回路770を示しており、
それは図4におけるキャリーセーブアダーブロック43
0及びインバータブロック425を置換させる。
それは図4におけるキャリーセーブアダーブロック43
0及びインバータブロック425を置換させる。
【0085】アドレスがスタックキャッシュ範囲内にあ
るか否かを決定する上述した方法は、全てのアドレスビ
ットを比較するために不等比較器を使用する方法とは異
なる。それは少数のビットに関してのみ1つの不等比較
を使用し且つキャッシュヒットを決定するために等値比
較論理に依存するものである。本発明は貴重なシリコン
面積を節約し且つその他のアプローチと比較して著しく
良好な速度性能を達成する。0.18mm技術及び16
のキャッシュ深さを使用する具体例において、本発明は
40%の活性シリコン面積を節約し且つ全不等比較アプ
ローチよりも37%高速である。
るか否かを決定する上述した方法は、全てのアドレスビ
ットを比較するために不等比較器を使用する方法とは異
なる。それは少数のビットに関してのみ1つの不等比較
を使用し且つキャッシュヒットを決定するために等値比
較論理に依存するものである。本発明は貴重なシリコン
面積を節約し且つその他のアプローチと比較して著しく
良好な速度性能を達成する。0.18mm技術及び16
のキャッシュ深さを使用する具体例において、本発明は
40%の活性シリコン面積を節約し且つ全不等比較アプ
ローチよりも37%高速である。
【0086】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ制限
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
詳細に説明したが、本発明は、これら具体例にのみ制限
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
【図1】 本発明の例示的実施例に基づくアドレス範囲
チェック回路を包含する例示的な処理システム (即ちパ
ソコン)を示した概略図。
チェック回路を包含する例示的な処理システム (即ちパ
ソコン)を示した概略図。
【図2】 本発明の原理に基づくアドレス範囲チェック
回路を実現することが可能な例示的なパイプライン型デ
ータプロセッサを示した概略図。
回路を実現することが可能な例示的なパイプライン型デ
ータプロセッサを示した概略図。
【図3】 従来技術の1実施例に基づくアドレス範囲チ
ェック回路を示した概略図。
ェック回路を示した概略図。
【図4】 本発明の例示的実施例に基づくアドレス範囲
チェック回路を示した概略図。
チェック回路を示した概略図。
【図5】 メモリスタックの一部における例示的なスタ
ックフレームを示した概略図。
ックフレームを示した概略図。
【図6】 スタックフレームに関してアドレスAが位置
することが可能な種々のメモリ頁及び領域を示した概略
図。
することが可能な種々のメモリ頁及び領域を示した概略
図。
【図7】 図4に示したキャリーセーブアダーを置換す
るために使用される代替的論理回路を示した概略図。
るために使用される代替的論理回路を示した概略図。
100 パソコン(PC)
102 着脱自在 (フロッピィ)ディスクドライブ
103 ハードディスクドライブ
104 モニタ
105 キーボード
106 プロセッサ (CPU)
107 メインメモリ
108 マウス
110 入力/出力インターフェース
112 ビデオ/オーディオインターフェース
フロントページの続き
(72)発明者 ルン ビン フアン
アメリカ合衆国, カリフォルニア
92130, サン ディエゴ, ウィロウメ
アー レーン 5620
Fターム(参考) 5B005 JJ01 KK03 MM01 PP01 PP22
5B033 AA04 DA05 DA17 DE02
Claims (23)
- 【請求項1】 ベースアドレス位置B[M:0]におい
て開始する2N個のアドレス位置を有しているアドレス
空間内にターゲットアドレスA[M:0]が存在するか
否かを決定することが可能なアドレス範囲チェック回路
において、 アドレスセグメントA[N−1:0]がアドレスセグメ
ントB[N−1:0]より小さいか否かを決定すること
が可能であり且つA[N−1:0]がB[N−1:0]
より小さいことを表わす第一論理状態及びA[N−1:
0]がB[N−1:0]より小さくないことを表わす第
二論理状態を有している第一制御信号を出力端において
発生することが可能な比較回路、 アドレスセグメントA[M:N]がアドレスセグメント
B[M:N]に等しいか否かを決定し且つA[M:N]
がB[M:N]に等しいことを表わす第一論理状態及び
A[M:N]がB[M:N]に等しくないことを表わす
第二論理状態を有しているA=Bステータス信号を出力
上に発生することが可能な第一等値検知回路、 アドレスセグメントA[M:N]がアドレスセグメント
B[M:N]+1に等しいか否かを決定し且つA[M:
N]がB[M:N]+1に等しいことを表わす第一論理
状態及びA[M:N]がB[M:N]+1に等しくない
ことを表わす第二論理状態を有しているA=B+1ステ
ータス信号を出力上に発生することが可能な第二等値回
路、 前記比較回路によって発生される前記第一制御信号によ
って制御され、前記第一等値検知回路出力へ結合されて
いる第一入力と前記第二等値検知回路出力へ結合されて
いる第二入力とを具備しているマルチプレクサ、を有し
ており、前記第一制御信号は前記マルチプレクサをし
て、前記第一制御信号がA[N−1:0]がB[N−
1:0]より小さくないことを表わす前記第二論理状態
にある場合に、前記A=Bステータス信号を出力させ且
つ前記第一制御信号がA[N−1:0]がB[N−1:
0]より小さいことを表わす前記第一論理状態にある場
合に、前記A=B+1ステータス信号を出力させること
を特徴とするアドレス範囲チェック回路。 - 【請求項2】 請求項1において、前記第二等値検知回
路がM−N+1個のインバータを有しており、前記M−
N+1個のインバータの各々はアドレスセグメントB
[M:N]におけるアドレスビットのうちの1つを受取
り且つ反転させることを特徴とするアドレス範囲チェッ
ク回路。 - 【請求項3】 請求項2において、前記第二等値検知回
路が、更に、M−N+1個のキャリーセーブアダーを有
しており、前記M−N+1個のキャリーセーブアダーの
各々がアドレスセグメントA[M:N]におけるアドレ
スビットのうちの1つAを受取るための第一入力、反転
したB[M:N]アドレスビットのうちの対応する1つ
B′を受取るための第二入力、1に等しいキャリーイン
値を受取るためのキャリーイン(CI)入力を有してお
り、前記M−N+1個のキャリーセーブアダーの各々
は、M−N+1個のキャリーセーブアダーの各々が以下
の真理値表、 【表1】 を有するように和(S)出力及びキャリーアウト(C
O)出力を発生することを特徴とするアドレス範囲チェ
ック回路。 - 【請求項4】 請求項3において、前記第二等値検知回
路が、更に、M−N+1個の排他的ORゲートを有して
おり、前記M−N個の最大桁排他的ORゲートの各々は
M−N個の最大桁キャリーセーブアダーのうちのK番目
のものの和出力へ結合されている第一入力を有しており
且つM−N個の最大桁キャリーセーブアダーのうちの
(K−1)番目のもののキャリーアウト出力へ結合され
ている第二入力を有しており、最小桁排他的ORゲート
は最小桁キャリーセーブアダーの和出力へ結合している
第一入力を有しており且つ論理0へ結合されている第二
入力を有していることを特徴とするアドレス範囲チェッ
ク回路。 - 【請求項5】 請求項4において、前記第二等値検知回
路が、更に、M−N+1個の入力を具備するANDゲー
トを有しており、前記M−N+1個のANDゲート入力
の各々がM−N+1個の排他的ORゲートのうちのM−
N+1個の出力のうちの1つへ結合しており、前記AN
Dゲートの出力が前記A=B+1ステータス信号を有し
ていることを特徴とするアドレス範囲チェック回路。 - 【請求項6】 請求項1において、MがNよりも著しく
大きいことを特徴とするアドレス範囲チェック回路。 - 【請求項7】 請求項6において、Mが少なくとも15
であり且つNが8未満であることを特徴とするアドレス
範囲チェック回路。 - 【請求項8】 請求項6において、Mが少なくとも31
であり且つNが8未満であることを特徴とするアドレス
範囲チェック回路。 - 【請求項9】 請求項8において、Nが6未満であるこ
とを特徴とするアドレス範囲チェック回路。 - 【請求項10】 データプロセッサにおいて、 本データプロセッサによって処理されるデータ値を格納
するためにベースアドレス位置B[M:0]において開
始する2N個のアドレス位置を有しているスタックキャ
ッシュ、 ターゲットアドレスA[M:0]が前記スタックキャッ
シュ内にあるか否かを決定することが可能なアドレス範
囲チェック回路、を有しており、前記アドレス範囲チェ
ック回路が、 アドレスセグメントA[N−1:0]がアドレスセグメ
ントB[N−1:0]より小さいか否かを決定し且つA
[N−1:0]がB[N−1:0]より小さいことを表
わす第一論理状態とA[N−1:0]がB[N−1:
0]より小さくないことを表わす第二論理状態とを有し
ている第一制御信号を出力上に発生することが可能な比
較回路、 アドレスセグメントA[M:N]がアドレスセグメント
B[M:N]に等しいか否かを決定し且つA[M:N]
がB[M:N]に等しいことを表わす第一論理状態とA
[M:N]がB[M:N]に等しくないことを表わす第
二論理状態とを有しているA=Bステータス信号を出力
上に発生することが可能な第一等値検知回路、 アドレスセグメントA[M:N]がアドレスセグメント
B[M:N]+1に等しいか否かを決定し且つA[M:
N]がB[M:N]+1に等しいことを表わす第一論理
状態とA[M:N]がB[M:N]+1に等しくないこ
とを表わす第二論理状態とを有しているA=B+1ステ
ータス信号を出力上に発生することが可能な第二等値検
知回路、 前記比較回路によって発生される前記第一制御信号によ
って制御され、前記第一等値検知回路出力へ結合してい
る第一入力と前記第二等値検知回路出力へ結合している
第二入力とを具備しているマルチプレクサ、を有してお
り、前記第一制御信号が前記マルチプレクサをして、前
記第一制御信号がA[N−1:0]がB[N−1:0]
より小さくないことを表わす前記第二論理状態にある場
合に、前記A=Bステータス信号を出力させ、且つ前記
第一制御信号がA[N−1:0]がB[N−1:0]よ
り小さいことを表わす前記第一論理状態にある場合に、
前記A=B+1ステータス信号を出力させる、ことを特
徴とするデータプロセッサ。 - 【請求項11】 請求項10において、前記第二等値検
知回路がM−N+1個のインバータを有しており、前記
M−N+1個のインバータの各々がアドレスセグメント
B[M:N]におけるアドレスビットのうちの1つを受
取り且つ反転させることを特徴とするデータプロセッ
サ。 - 【請求項12】 請求項11において、前記第二等値検
知回路が、更に、M−N+1個のキャリーセーブアダー
を有しており、前記M−N+1個のキャリーセーブアダ
ーの各々はアドレスセグメントA[M:N]におけるア
ドレスビットのうちの1つAを受取るための第一入力
と、反転したB[M:N]アドレスビットのうちの対応
する1つB′を受取るための第二入力と、1に等しいキ
ャリーイン値を受取るためのキャリーイン(CI)入力
とを有しており、且つ前記M−N+1個のキャリーセー
ブアダーの各々が和(S)出力とキャリーアウト(C
O)出力とを発生し、前記M−N+1個のキャリーセー
ブアダーの各々が、以下の真理値表、 【表1】 を有していることを特徴とするデータプロセッサ。 - 【請求項13】 請求項12において、前記第二等値検
知回路が、更に、M−N+1個の排他的ORゲートを有
しており、M−N個の最大桁排他的ORゲートの各々が
M−N個の最大桁キャリーセーブアダーのうちのK番目
のものの和出力へ結合している第一入力を有しており且
つM−N個の最大桁キャリ−セーブアダーのうちの「K
−1」番目のもののキャリーアウト出力へ結合している
第二入力を有しており、最小桁排他的ORゲートが最小
桁キャリーセーブアダーの和出力へ結合している第一入
力と論理0へ結合している第二入力とを有していること
を特徴とするデータプロセッサ。 - 【請求項14】 請求項13において、前記第二等値検
知回路が、更に、M−N+1個の入力を具備しているA
NDゲートを有しており、前記M−N+1個のANDゲ
ート入力の各々はM−N+1個の排他的ORゲートのM
−N+1個の出力のうちの1つへ結合しており、前記A
NDゲートの出力が前記A=B+1ステータス信号を有
していることを特徴とするデータプロセッサ。 - 【請求項15】 請求項10において、MがNより著し
く大きいことを特徴とするデータプロセッサ。 - 【請求項16】 請求項15において、Mが少なくとも
15であり且つNが8未満であることを特徴とするデー
タプロセッサ。 - 【請求項17】 請求項15において、Mが少なくとも
31であり且つNが8未満であることを特徴とするデー
タプロッセサ。 - 【請求項18】 請求項17において、Nが6未満であ
ることを特徴とするデータプロセッサ。 - 【請求項19】 ターゲットアドレスA[M:0]がベ
ースアドレス位置B[M:0]において開始する2N個
のアドレス位置を有するアドレス空間内にあるか否かを
決定する方法において、 アドレスセグメントA[N−1:0]がアドレスセグメ
ントB[N−1:0]より小さいか否かを決定し且つA
[N−1:0]がB[N−1:0]より小さいことを表
わす第一論理状態とA[N−1:0]がB[N−1:
0]より小さくないことを表わす第二論理状態とを有し
ている第一制御信号を発生し、 アドレスセグメントA[M:N]がアドレスセグメント
B[M:N]に等しいか否かを決定し且つA[M:N]
がB[M:N]に等しいか否かを表わす第一論理状態と
A[M:N]がB[M:N]に等しくないことを表わす
第二論理状態とを有しているA=Bステータス信号を発
生し、 アドレスセグメントA[M:N]がアドレスセグメント
B[M:N]+1に等しいか否かを決定し且つA[M:
N]がB[M:N]+1に等しいことを表わす第一論理
状態とA[M:N]がB[M:N]+1に等しくないこ
とを表わす第二論理状態とを有しているA=B+1ステ
ータス信号を発生し、 前記第一制御信号がA[N−1:0]がB[N−1:
0]より小さくないことを表わす前記第二論理状態にあ
る場合には、前記A=Bステータス信号を選択し、前記
第一論理状態を有している前記A=Bステータス信号は
ターゲットアドレスA[M:0]が2N個のアドレス位
置を有しているアドレス空間内にあることを表わし、 前記第一制御信号がA[N−1:0]がB[N−1:
0]より小さいことを表わす前記第一論理状態にある場
合には、A=B+1ステータス信号を選択し、前記第一
論理状態にある前記A=B+1ステータス信号はターゲ
ットアドレスA[M:0]が2N個のアドレス位置を有
するアドレス空間内にあることを表わす、ことを特徴と
する方法。 - 【請求項20】 請求項19において、MがNより著し
く大きいことを特徴とする方法。 - 【請求項21】 請求項20において、Mが少なくとも
15であり且つNが8未満であることを特徴とする方
法。 - 【請求項22】 請求項20において、Mが少なくとも
31であり且つNが8未満であることを特徴とする方
法。 - 【請求項23】 請求項22において、Nが6未満であ
ることを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/8726 | 2001-12-05 | ||
US10/008,726 US6694420B2 (en) | 2001-12-05 | 2001-12-05 | Address range checking circuit and method of operation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003202981A true JP2003202981A (ja) | 2003-07-18 |
Family
ID=21733302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002354116A Pending JP2003202981A (ja) | 2001-12-05 | 2002-12-05 | アドレス範囲チェック回路及び動作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6694420B2 (ja) |
EP (1) | EP1318450A3 (ja) |
JP (1) | JP2003202981A (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7382787B1 (en) | 2001-07-30 | 2008-06-03 | Cisco Technology, Inc. | Packet routing and switching device |
US7450438B1 (en) * | 2002-06-20 | 2008-11-11 | Cisco Technology, Inc. | Crossbar apparatus for a forwarding table memory in a router |
US9137541B2 (en) * | 2003-05-23 | 2015-09-15 | Broadcom Corporation | Video data cache |
US20080229062A1 (en) * | 2007-03-12 | 2008-09-18 | Lorenzo Di Gregorio | Method of sharing registers in a processor and processor |
US11281493B2 (en) * | 2018-05-30 | 2022-03-22 | Texas Instruments Incorporated | Real-time context specific task manager for multi-core communication and control system |
CN113839967B (zh) * | 2021-11-26 | 2022-02-15 | 深圳市聚慧合创信息技术有限公司 | 基于大数据技术的物联网设备欺诈防控系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4627017A (en) * | 1980-10-22 | 1986-12-02 | International Business Machines Corporation | Address range determination |
US5784713A (en) * | 1993-03-05 | 1998-07-21 | Cyrix Corporation | Address calculation logic including limit checking using carry out to flag limit violation |
US5564030A (en) * | 1994-02-08 | 1996-10-08 | Meridian Semiconductor, Inc. | Circuit and method for detecting segment limit errors for code fetches |
US5961581A (en) * | 1996-06-27 | 1999-10-05 | Advanced Micro Devices, Inc. | Method and circuit for detecting address limit violations in a microprocessor-based computer |
US6510507B1 (en) * | 2000-03-03 | 2003-01-21 | Texas Instruments Incorporated | Page address look-up range ram |
US7496734B1 (en) * | 2000-04-28 | 2009-02-24 | Stmicroelectronics, Inc. | System and method for handling register dependency in a stack-based pipelined processor |
-
2001
- 2001-12-05 US US10/008,726 patent/US6694420B2/en not_active Expired - Lifetime
-
2002
- 2002-12-03 EP EP02258344A patent/EP1318450A3/en not_active Withdrawn
- 2002-12-05 JP JP2002354116A patent/JP2003202981A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP1318450A2 (en) | 2003-06-11 |
US6694420B2 (en) | 2004-02-17 |
US20030120888A1 (en) | 2003-06-26 |
EP1318450A3 (en) | 2004-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6523050B1 (en) | Integer to floating point conversion using one's complement with subsequent correction to eliminate two's complement in critical path | |
EP0465321B1 (en) | Ensuring data integrity in multiprocessor or pipelined processor system | |
US5204953A (en) | One clock address pipelining in segmentation unit | |
JP3072705B2 (ja) | スーパースカラ・プロセッサの電力消費を減少させる回路及び方法 | |
US7113969B1 (en) | Formatting denormal numbers for processing in a pipelined floating point unit | |
US5367705A (en) | In-register data manipulation using data shift in reduced instruction set processor | |
US5860107A (en) | Processor and method for store gathering through merged store operations | |
EP0463976A2 (en) | Data prefetch instruction in a reduced instruction set processor | |
US6349383B1 (en) | System for combining adjacent push/pop stack program instructions into single double push/pop stack microinstuction for execution | |
US5822788A (en) | Mechanism for prefetching targets of memory de-reference operations in a high-performance processor | |
KR20000076653A (ko) | 간단한 고성능 메모리 관리 유닛 | |
CA2045735A1 (en) | Computer performance by eliminating branches | |
EP1296222A2 (en) | Binary Magnitude comparator | |
US5150471A (en) | Method and apparatus for offset register address accessing | |
US6209082B1 (en) | Apparatus and method for optimizing execution of push all/pop all instructions | |
US5276825A (en) | Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction | |
JP3935871B2 (ja) | パイプラインを有する計算回路のためのメモリ・システムおよびパイプラインの機能ユニットにデータを提供する方法 | |
JPS6014338A (ja) | 計算機システムにおける分岐機構 | |
JP2003202981A (ja) | アドレス範囲チェック回路及び動作方法 | |
US6405232B1 (en) | Leading bit prediction with in-parallel correction | |
US5822786A (en) | Apparatus and method for determining if an operand lies within an expand up or expand down segment | |
US5613081A (en) | Method of operating a data processor with rapid address comparison for data forwarding | |
US7076635B1 (en) | Method and apparatus for reducing instruction TLB accesses | |
JP4247132B2 (ja) | 情報処理装置 | |
US5829049A (en) | Simultaneous execution of two memory reference instructions with only one address calculation |