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
Application number
JP2002354116A
Other languages
English (en)
Inventor
Lun Bin Huang
ビン フアン ルン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ST MICROELECTRONICS Inc
STMicroelectronics lnc USA
Original Assignee
ST MICROELECTRONICS Inc
STMicroelectronics lnc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ST MICROELECTRONICS Inc, STMicroelectronics lnc USA filed Critical ST MICROELECTRONICS Inc
Publication of JP2003202981A publication Critical patent/JP2003202981A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack

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個のアドレス位置を有するアドレス空間内にある
か否かを決定することが可能なアドレス範囲チェック回
路が提供される。本発明によれば、アドレス範囲チェッ
ク回路は大型の比較器回路を必要とすることはなく、従
って従来技術と比較してより迅速に動作することが可能
である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、大略、データ処理
システムに関するものであって、更に詳細には、アドレ
スがスタックキャッシュのアドレス範囲内にあるか否か
を決定する回路及び方法に関するものである。
【0002】
【従来の技術】高性能コンピュータに対する要求は、最
小の時間で技術水準のマイクロプロセッサが命令を実行
することを必要とする。命令の実行時間を減少させるた
めに多数の異なるアプローチが取られており、それによ
りプロセッサの処理能力を増加させている。プロセッサ
の処理能力を増加させる1つの方法はパイプラインアー
キテクチャを使用することであり、その場合に、パイプ
ラインを形成する別々の処理段階にプロセッサを分割さ
せる。命令を基本的なステップに分解し、それらを組立
ラインの態様で異なるステージにおいて実行させる。
【0003】パイプライン型プロセッサは幾つかの異な
るマシン命令を同時的に実行することが可能である。こ
のことは、各々が別個のパイプラインステージによって
実行される幾つかの別々の処理フェーズに各命令に対す
る処理ステップを分解することによって達成される。従
って、各命令はその実行を完了するために各パイプライ
ンステージを介して逐次的に通過せねばならない。一般
的に、ある1つの命令は一度に1つのパイプラインステ
ージのみによって処理され、各ステージに対して1つの
クロックサイクルが必要とされる。命令は同一の順番で
パイプラインステージを使用し且つ典型的に単一のクロ
ックサイクルに対して各ステージ内に止まるに過ぎない
ものであるから、NステージパイプラインはN個の命令
を同時的に処理することが可能である。命令で充填され
ると、N個のパイプラインステージを有するプロセッサ
は各クロックサイクル当たり1個の命令を完了する。
【0004】パイプラインプロセッサの実行速度は理論
的には等価な非パイプライン型プロセッサよりもN倍高
速である。非パイプライン型プロセッサは、次の命令へ
進行する前に1つの命令の実行を完了するプロセッサで
ある。典型的に、パイプラインオーバーヘッド及びその
他のファクターが、パイプライン型プロセッサが非パイ
プライン型プロセッサと比較して有する実行上の利点を
幾分減少させる。
【0005】マルチステージプロセッサパイプラインは
命令フェッチステージ、デコードステージ、オペランド
フェッチステージ、実行ステージ等から構成することが
可能である。更に、該プロセッサは、実行用のプログラ
ム命令を格納する命令キャッシュと、そうでない場合に
はプロセッサメモリ内に格納されるデータオペランドを
一時的に格納するデータキャッシュと、データオペラン
ドを一時的に格納するレジスタファイルとを有すること
が可能である。
【0006】スタックをベースとしたマイクロプロセッ
サシステムにおいては、変数、引数及びプロセッサステ
ータスはスタックフレームと呼ばれるメモリの一部に格
納することが可能である。スタックフレームベースポイ
ンタは現在のスタックフレームのルート位置のアドレス
を包含しており、一方スタックフレームインデックスポ
インターは、図5に示したように、バイト又はワードの
正確なメモリ位置のアドレスを包含している。図5はメ
モリスタックの一部における例示的なスタックフレーム
を例示している。該プロセッサは、インデックスポイン
ターを使用して、又は時折絶対的ポインターを使用し
て、スタックフレームへしばしばアクセスする。インデ
ックスポインターの場合には、ベースポインターとイン
デックスポインターとを加算することによって絶対的ア
ドレスを計算することが可能である。
【0007】高性能コンピュータシステムにおいては、
そうでない場合にはより速度の遅い大型のL1又はL2
キャッシュ又は更に速度の遅いオフチップのメインメモ
リへのアクセスをスピードアップさせるために、現在の
スタックフレームの一部を非常に小型であるが高速のレ
ジスタキャッシュ内に維持することが望ましい。例え
ば、プログラムはスタックフレームベースポインターレ
ジスタをセットアップし且つメモリ位置へアクセスする
ためにインデックスポインターを使用することが可能で
ある。データプロセッサがスタックキャッシュを実現し
且つ該キャッシュのベースがベースポインターに対応す
ることを確保する場合には、あたかもそれがレジスタフ
ァイルから読取られるかのようにメモリ位置をインデッ
クスすることによって簡単にアドレスすることが可能で
ある。通常、該キャッシュ内の与えられたエントリの有
効性を表わすために有効ステータスビットが使用され
る。
【0008】然しながら、このような構成においては、
スタックキャッシュとより低速のメモリとの間にデータ
の一貫性を維持することが重要な問題であることが判明
した。1つの例として次のプログラムシーケンス、即ち
(1)1つの値を絶対位置Aへ格納し、(2)ベースポ
インターBとインデックスCとを使用してメモリ位置を
読取る場合について検討する。高性能マシンは、通常、
ストア処理を実行する前にスタックキャッシュからCに
よってインデックスされるメモリ位置をフェッチする。
何故ならば、ストア処理は通常パイプラインの終わり近
くにある実行ステージからのデータオペランドを待機せ
ねばならないからである。プロセッサはスタックキャッ
シュから迅速にインデックスCによってインデックスさ
れる値をフェッチすることが可能である。然しながら、
ストア処理がデータを失効させることがないことを確保
せねばならない(即ち、A=B+Cである場合)。多く
の設計によって使用される典型的なアプローチは、絶対
的アドレスAをキャッシュ内のアドレス範囲と比較し且
つマッチ(一致)が存在する場合に有効ステータスビッ
トをリセットさせることによってそのエントリを無効化
させることであり、それにより強制的にキャッシュミス
とさせ且つキャッシュデータの完全性を維持する。
【0009】スタックキャッシュ有効ビットの無効化は
高速設計において臨界的なタイミング問題であることが
判明している。典型的な実現例においては、データプロ
セッサが絶対的ストアアドレスAからベースアドレスB
を減算し且つその結果の高次ビットがゼロである場合に
差の下位ビットを使用してエントリを無効化させる。例
えば、16エントリキャッシュの場合に、32ビットア
ドレス空間を仮定した場合に、その差の28個の最大桁
ビットD[31:4]は、アドレスAがスタックキャッ
シュ内にキャッシュされる場合に、ゼロでなければなら
ない。然しながら、このアプローチは遅いものである。
何故ならば、それは通常減算を行うために使用される比
較的大型で且つ低速の加算器の結果に依存するからであ
る。その速度問題に加えて、該加算器は、又、大量のチ
ップ空間を必要とする。
【0010】従って、スタックキャッシュにおけるエン
トリをより迅速に無効化させる改良したデータプロセッ
サに対する必要性が当該技術分野において存在してい
る。特に、スタックキャッシュにおけるエントリを無効
化させるための改良したアドレス範囲チェック回路に対
する必要性が存在している。
【0011】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、改良したデータ処理技術を提供することを
目的とする。本発明の別の目的とするところは、スタッ
クキャッシュのアドレス範囲内にあるアドレスが存在す
るか否かを決定する回路及び方法を提供することを目的
とする。
【0012】
【課題を解決するための手段】上述した従来技術の欠点
を解消するために、本発明の主要な目的とするところ
は、ベースアドレス位置B[M:0]において開始する
N個のアドレス位置を有するアドレス空間内にターゲ
ットアドレス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ステータス信号を出力させるこ
とを特徴としている。
【0014】本発明の原理によれば、アドレス範囲チェ
ック回路における比較回路は、アドレス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つを受取
り且つ反転させる。
【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個の
キャリーセーブアダーの各々は以下の真理値表を有して
いる。
【0017】
【表1】
【0018】本発明の更に別の実施例によれば、該第二
等値検知回路は、更に、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ステータス信号を有してい
る。
【0020】上述した如く、本アドレス範囲チェック回
路は高速である。何故ならば、それは大型の比較器回路
を必要とするものではなく且つ等値検知回路に依存する
ものだからである。従って、本発明の原理に基づくアド
レス範囲チェック回路においては、Mの値はNより著し
く大きい。
【0021】本発明の1実施例においては、Mは少なく
とも15であり且つNは8未満である。本発明の別の実
施例においては、Mは少なくとも31であり且つNは8
未満である。本発明の更に別の実施例によれば、Mは少
なくとも31であり且つNは6未満である。
【0022】前述したものは当業者が以下に説明する本
発明の詳細な説明をより良く理解することが可能である
ように本発明の特徴及び技術的利点についてむしろ広義
に概観したものである。本発明の付加的な特徴及び利点
については以下の説明から明らかなものとなる。当業者
は本明細書に開示した特定の実施例及び概念を使用して
本発明の技術的範囲を逸脱することなしに容易に修正を
行ったり又はその他の構成を採用することが可能である
ことは勿論である。
【0023】
【発明の実施の形態】以下に説明する図1乃至7及び本
明細書において本発明の原理を説明するために使用する
種々の実施例は単に例示的なものであって本発明の技術
的範囲を制限するものとして解釈されるべきものではな
い。当業者が理解するように、本発明の原理は本発明の
技術的範囲を逸脱することなしに任意のデータプロセッ
サにおいて実現することが可能なものである。
【0024】本明細書において記載する回路及び方法は
最小の論理でスタックキャッシュの無効化をスピードア
ップさせることに関連して使用するものであるが、本発
明は、与えられたアドレスが与えられた開始(ベース)
アドレスを有する逐次的なアドレスの範囲にヒット即ち
その範囲内に存在するか否かを高速に決定することが所
望される任意の構成において使用することが可能であ
る。スタックキャッシュは本発明の有用な実施例の1つ
に過ぎない。
【0025】図1は例示的な処理システム、即ちパソコ
ン(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へ結合しており且つそれを介して通信を行う。
【0027】本発明の例示的実施例においては、メイン
メモリ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)として知られている。
【0029】図2は本発明の原理に基づいて実現するこ
とが可能な例示的なデータプロセッサ106をより詳細
に示している。データプロセッサ106は命令フェッチ
(Iフェッチ)ステージ、デコードステージ、オペラン
ドフェッチステージ、実行ステージ等を有している。命
令フェッチステージは命令フェッチユニット205と命
令キャッシュ210とを有している。デコードステージ
は命令デコードユニット215を有している。オペラン
ドフェッチステージはレジスタファイル220、オペラ
ンドフェッチユニット225、スタックキャッシュ23
0を有している。実行ステージは実行ユニット235及
びデータキャッシュ240を有している。
【0030】命令フェッチユニット205は命令キャッ
シュ210が実行するための命令をフェッチする。デコ
ードステージは命令フェッチユニット205から命令を
取り且つその命令を命令デコードユニット215におい
てその後のパイプラインステージを実行するために直接
的に使用することが可能な1組の信号へデコードする。
オペランドフェッチユニット225はスタックキャッシ
ュ230又はデータキャッシュ240から、又はレジス
タファイル220におけるレジスタから所要のオペラン
ドをフェッチする。実行ステージにおける実行ユニット
235はオペランドフェッチステージによってフェッチ
されたオペランドに関して実際のプログラムされた処理
(例えば、加算、乗算、除算等)を実施し且つその結果
を発生する。
【0031】図2に示したように、オペランドフェッチ
ユニット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である。
【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である。
【0034】然しながら、アドレス範囲チェック回路3
00は比較的大型で且つ低速の加算器、即ち加算器31
0を有している。加算器310は大きなダイ空間を必要
とし且つアドレスAがスタックキャッシュ230内にあ
るか否かをデータプロセッサ106が決定することが可
能な速度を低速化させる。
【0035】本発明はスタックキャッシュ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演算を意味する。即ち、以下のものとす
る。
【0041】
【数3】
【0042】最後に、2対1マルチプレクサ論理を使用
してAがベースBを有するキャッシュ内にあるか否かを
決定することが可能である。即ち、以下の通りである。
【0043】
【数4】
【0044】A[3:0]からB[3:0]を減算する
ことによって計算されるインデックスを使用してA
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]はそのアド
レスの頁オフセット部分である。
【0046】ベースアドレスB及び長さ2nを有するス
タックキャッシュは、1つの完全な頁か又は頁アドレス
と整合されていない場合には2つの部分的な隣接する頁
にマッピングさせることが可能である。アドレスA及び
アドレスBは任意の数とすることが可能であるので、A
は図6に示したようにアドレス空間の6個の領域のうち
のいずれかに存在することが可能である。図6はアドレ
スAがスタックフレームに関連して位置させることが可
能なメモリ内の異なる頁及び領域を示している。
【0047】Aの2つの隣接するB頁アドレスとの等値
比較の場合に、Aの可能性を領域2,3,4,5に対す
るキャッシュ内にあるものと制限することが可能であ
る。更に、アドレスAの頁オフセットとアドレスBの頁
オフセットとの不等比較を実施する場合には、それがキ
ャッシュ内にある場合にAが正確にどの領域にあるかを
決定することが可能である。
【0048】このことは以下の態様で示すことが可能で
ある。即ち、以下のものとする。
【0049】
【数5】
【0050】A offset is less th
an offsetが真である場合には、Aがキャ
ッシュ内にあるためには、Comparison2が真
でなければならない。そうでない場合には、A off
set is less than offset
が偽である場合には、Comparison1が真であ
ることは、アドレスAがキャッシュ内にあることを表わ
す。
【0051】Comparison1は直接的な等値比
較であり、従ってそれは比較的高速である。nが小さな
数である場合にはA offset is less
than offsetは高速であり、それは任意
の実際的な実現例に対して言えることである。唯一の問
題はComparison2にあり、それは等値比較の
前に加算又はインクリメントを包含している。然しなが
ら、加算を行うことなしComparison2を決定
する方法が存在している。論理操作が必要とされる。
【0052】一般的に、A及びBは32ビットの二進数
であると仮定すると、以下のことを決定することが所望
される。
【0053】
【数1】
【0054】以下の変換を行うことが可能である。
【0055】
【数2】
【0056】次に、この式の左側に関して3入力キャリ
ーセーブ加算(CSA)を行う。
【0057】
【数6】
【0058】次いで、式(2)は以下のものと等価であ
る。
【0059】
【数7】
【0060】2つの二進数の和が全て1であるために
は、それらの数の1つのみが各ビット位置に対して1で
なければならない。即ち、
【数8】
【0061】これは以下のものと等価である。
【0062】
【数9】
【0063】最後に、
【数10】
【0064】が成立する場合にのみA=(B+1)が成
立する。それは、A equal 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エントリスタックの範囲
内にあるか否かを決定すべく動作可能である。
【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である。
【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)ビットを発生する。
【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ゲートを使用
することが可能である。
【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ビットを受取る。
【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を出力する。
【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のオフセットよ
り小さい場合にのみ、真である。
【0074】図4において、キャリーセーブアダーブロ
ック430及びインバータブロック425はより簡単な
回路で置換させることが可能である。何故ならば、論理
1ビットがA[31:4]アドレスビットのうちの1つ
及びB[31:4]アドレスビットのうちの1つの28
個の加算のうちの各々に対して常に加算されるからであ
る。以下が成立することについては前述した。
【0075】
【数11】
【0076】28個の論理1ビットは固定されているの
で、この和 (Sum)の値は以下の論理によって計算す
ることも可能である。
【0077】
【数12】
【0078】従って、和(Sum)はB[31:4]ア
ドレスビットの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処理する
ことによってキャリーを計算することが可能である。
【0084】図7は別の論理回路770を示しており、
それは図4におけるキャリーセーブアダーブロック43
0及びインバータブロック425を置換させる。
【0085】アドレスがスタックキャッシュ範囲内にあ
るか否かを決定する上述した方法は、全てのアドレスビ
ットを比較するために不等比較器を使用する方法とは異
なる。それは少数のビットに関してのみ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. 【請求項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. 【請求項2】 請求項1において、前記第二等値検知回
    路がM−N+1個のインバータを有しており、前記M−
    N+1個のインバータの各々はアドレスセグメントB
    [M:N]におけるアドレスビットのうちの1つを受取
    り且つ反転させることを特徴とするアドレス範囲チェッ
    ク回路。
  3. 【請求項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. 【請求項4】 請求項3において、前記第二等値検知回
    路が、更に、M−N+1個の排他的ORゲートを有して
    おり、前記M−N個の最大桁排他的ORゲートの各々は
    M−N個の最大桁キャリーセーブアダーのうちのK番目
    のものの和出力へ結合されている第一入力を有しており
    且つM−N個の最大桁キャリーセーブアダーのうちの
    (K−1)番目のもののキャリーアウト出力へ結合され
    ている第二入力を有しており、最小桁排他的ORゲート
    は最小桁キャリーセーブアダーの和出力へ結合している
    第一入力を有しており且つ論理0へ結合されている第二
    入力を有していることを特徴とするアドレス範囲チェッ
    ク回路。
  5. 【請求項5】 請求項4において、前記第二等値検知回
    路が、更に、M−N+1個の入力を具備するANDゲー
    トを有しており、前記M−N+1個のANDゲート入力
    の各々がM−N+1個の排他的ORゲートのうちのM−
    N+1個の出力のうちの1つへ結合しており、前記AN
    Dゲートの出力が前記A=B+1ステータス信号を有し
    ていることを特徴とするアドレス範囲チェック回路。
  6. 【請求項6】 請求項1において、MがNよりも著しく
    大きいことを特徴とするアドレス範囲チェック回路。
  7. 【請求項7】 請求項6において、Mが少なくとも15
    であり且つNが8未満であることを特徴とするアドレス
    範囲チェック回路。
  8. 【請求項8】 請求項6において、Mが少なくとも31
    であり且つNが8未満であることを特徴とするアドレス
    範囲チェック回路。
  9. 【請求項9】 請求項8において、Nが6未満であるこ
    とを特徴とするアドレス範囲チェック回路。
  10. 【請求項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. 【請求項11】 請求項10において、前記第二等値検
    知回路がM−N+1個のインバータを有しており、前記
    M−N+1個のインバータの各々がアドレスセグメント
    B[M:N]におけるアドレスビットのうちの1つを受
    取り且つ反転させることを特徴とするデータプロセッ
    サ。
  12. 【請求項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. 【請求項13】 請求項12において、前記第二等値検
    知回路が、更に、M−N+1個の排他的ORゲートを有
    しており、M−N個の最大桁排他的ORゲートの各々が
    M−N個の最大桁キャリーセーブアダーのうちのK番目
    のものの和出力へ結合している第一入力を有しており且
    つM−N個の最大桁キャリ−セーブアダーのうちの「K
    −1」番目のもののキャリーアウト出力へ結合している
    第二入力を有しており、最小桁排他的ORゲートが最小
    桁キャリーセーブアダーの和出力へ結合している第一入
    力と論理0へ結合している第二入力とを有していること
    を特徴とするデータプロセッサ。
  14. 【請求項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. 【請求項15】 請求項10において、MがNより著し
    く大きいことを特徴とするデータプロセッサ。
  16. 【請求項16】 請求項15において、Mが少なくとも
    15であり且つNが8未満であることを特徴とするデー
    タプロセッサ。
  17. 【請求項17】 請求項15において、Mが少なくとも
    31であり且つNが8未満であることを特徴とするデー
    タプロッセサ。
  18. 【請求項18】 請求項17において、Nが6未満であ
    ることを特徴とするデータプロセッサ。
  19. 【請求項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. 【請求項20】 請求項19において、MがNより著し
    く大きいことを特徴とする方法。
  21. 【請求項21】 請求項20において、Mが少なくとも
    15であり且つNが8未満であることを特徴とする方
    法。
  22. 【請求項22】 請求項20において、Mが少なくとも
    31であり且つNが8未満であることを特徴とする方
    法。
  23. 【請求項23】 請求項22において、Nが6未満であ
    ることを特徴とする方法。
JP2002354116A 2001-12-05 2002-12-05 アドレス範囲チェック回路及び動作方法 Pending JP2003202981A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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