(57)【要約】  開示される実施形態は、データアクセスの前にメモリ内の不完全データエントリから冗長データエントリにデータをリダイレクトすることを含む。関連するシステムおよび方法も開示される。メモリは、メモリアクセス要求を受け取るように構成される。受け取られたメモリアクセス要求は、データエントリアドレスを備える。メモリは、このデータエントリアドレスを使用して、第1のデータアクセス経路内のメモリ内のデータアレイ内に記憶されたデータにアクセスする。製造プロセスの結果としてメモリ内の行または列が不完全であり得ることが可能である。データアレイ内のデータエントリアドレスにおける行または列が不完全である場合、データエントリリダイレクション回路は、データアクセスの前に、データアレイ内の冗長な行または列にメモリアクセス要求をリダイレクトする。
2016522936.tif 000002
【特許請求の範囲】
【請求項１】
第1のデータアクセス経路内に設けられたメモリアクセス論理回路であって、
前記第1のデータアクセス経路内でデータアレイ内のデータエントリをアドレス指定するための入力としてメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取り、
前記データエントリアドレスの前記少なくとも一部分に対応する前記データアレイ内の前記データエントリにアクセスする目的で前記データアレイにインデックスを付けるために、データエントリアドレスインデックスを備える前記第1のデータアクセス経路内の出力としてインデックスを生成する
ように構成されたメモリアクセス論理回路と、
前記第1のデータアクセス経路とは別個の第2のデータアクセス経路内に設けられた不完全データエントリコンパレータ回路であって、前記データアレイ内の前記データエントリにインデックスを付ける前に、
第2のコンパレータ入力における前記データアレイ内の少なくとも1つの不完全データエントリアドレスを表す不完全データエントリインデックスレジスタから入力として前記少なくとも1つの不完全データエントリアドレスを受け取り、
前記データエントリアドレスの前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレスと比較し、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイ内の冗長データエントリに対して、リダイレクションデータエントリアドレスインデックスを備える前記第2のデータアクセス経路内の出力としてリダイレクションインデックスを生成する
ように構成された不完全データエントリコンパレータ回路と、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成されたデータエントリアドレスインデックスセレクタと
を備えるデータエントリリダイレクション回路と
を備えるメモリ。
【請求項２】
前記データエントリアドレスインデックスセレクタは、前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致しない場合、前記データアレイにインデックスを付けるために前記インデックスを選択するようにさらに構成される、請求項1に記載のメモリ。
【請求項３】
前記不完全データエントリコンパレータ回路は、前記データエントリアドレスの前記受け取られた少なくとも一部分を前記受け取られた少なくとも1つの不完全データエントリアドレスと比較するための複数の比較段階を備える、請求項1に記載のメモリ。
【請求項４】
前記受け取られた少なくとも1つの不完全データエントリアドレスは、前記データアレイ内の少なくとも1つの不完全な行または少なくとも1つの不完全な列を示すことができる、請求項1に記載のメモリ。
【請求項５】
前記データエントリアドレスの前記少なくとも一部分は、前記データアレイ内のデータエントリの少なくとも1つの行またはデータエントリの少なくとも1つの列を表す、請求項1に記載のメモリ。
【請求項６】
前記データエントリリダイレクション回路は、第1のコンパレータ入力における前記第2のデータアクセス経路内の前記データアレイ内の前記データエントリをアドレス指定するための入力として前記データエントリアドレスの前記少なくとも一部分を受け取るようにさらに構成される、請求項1に記載のメモリ。
【請求項７】
前記データエントリリダイレクション回路は、第1のメモリアクセス要求のための前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合に前記データアレイ内の前記冗長データエントリに対して前記第2のデータアクセス経路内の前記出力として前記リダイレクションインデックスを生成しながら、前記第1のデータアクセス経路内の前記データアレイ内の第2のデータエントリをアドレス指定するための第2の入力として第2のメモリアクセス要求のためのデータエントリアドレスの少なくとも一部分を受け取るように構成される、請求項6に記載のメモリ。
【請求項８】
前記データエントリリダイレクション回路は、前記第2のデータアクセス経路内の前記出力として第2のリダイレクションインデックスを生成するように構成され、前記データエントリアドレスインデックスセレクタは、前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成される、請求項7に記載のメモリ。
【請求項９】
キャッシュメモリからなり、前記データアレイはSRAMデータアレイからなる、請求項1に記載のメモリ。
【請求項１０】
前記メモリアクセス論理回路は、前記データアレイアクセスの前に前記データアレイにインデックスを付けるためのタグアレイからなる、請求項9に記載のメモリ。
【請求項１１】
前記タグアレイは、前記第1のデータアクセス経路内の前記出力として前記インデックスを生成する、請求項10に記載のメモリ。
【請求項１２】
前記メモリアクセス論理回路および前記不完全データエントリコンパレータ回路は、第1のタイミングウィンドウ内で前記データアレイ内の前記データエントリにインデックスを付けるための前記入力として前記データエントリアドレスの前記少なくとも一部分を受け取るように構成される、請求項1に記載のメモリ。
【請求項１３】
前記不完全データエントリコンパレータ回路は、前記出力として前記メモリアクセス論理回路インデックス付けの前に第2のタイミングウィンドウ内で前記データエントリアドレスの前記受け取られた少なくとも一部分を前記受け取られた少なくとも1つの不完全データエントリアドレスと比較するように構成され、前記データエントリアドレスの前記少なくとも一部分における前記第1のデータアクセス経路内の前記データアレイ内の前記データエントリは、第3のタイミングウィンドウ内の前記データエントリアドレスの前記受け取られた少なくとも一部分を表す、請求項12に記載のメモリ。
【請求項１４】
集積回路に統合された、請求項1に記載のメモリ。
【請求項１５】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピューモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、携帯型音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および携帯型デジタルビデオプレーヤからなる群から選択されるデバイスに統合される、請求項1に記載のメモリ。
【請求項１６】
第1のデータアクセス経路手段内に設けられたメモリアクセス論理回路手段であって、
前記第1のデータアクセス経路手段内でデータアレイ手段内のデータエントリ手段をアドレス指定するための入力としてメモリアクセス要求手段のデータエントリアドレス手段の少なくとも一部分を受け取り、
前記データエントリアドレス手段の前記少なくとも一部分に対応する前記データアレイ手段内の前記データエントリ手段にアクセスする目的で前記データアレイ手段にインデックスを付けるために、データエントリアドレスインデックス手段を備える前記第1のデータアクセス経路手段内の出力としてインデックス手段を生成する
ように構成されたメモリアクセス論理回路手段と、
前記第1のデータアクセス経路手段とは別個の第2のデータアクセス経路手段内に設けられた不完全データエントリコンパレータ回路手段であって、前記データアレイ手段内の前記データエントリ手段にインデックスを付ける前に、
第2のコンパレータ入力手段における前記データアレイ手段内の少なくとも1つの不完全データエントリアドレス手段を表す入力手段として、不完全データエントリインデックスレジスタ手段から、前記少なくとも1つの不完全データエントリアドレス手段を受け取り、
前記データエントリアドレス手段の前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレス手段と比較し、
前記データエントリアドレス手段の前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレス手段と一致する場合、前記データアレイ手段内の冗長データエントリ手段に対して、リダイレクションデータエントリアドレスインデックス手段を備える前記第2のデータアクセス経路手段内の出力としてリダイレクションインデックス手段を生成する
ように構成された不完全データエントリコンパレータ回路手段と、
前記データエントリアドレス手段の前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレス手段と一致する場合、前記データアレイ手段にインデックスを付けるために前記リダイレクションインデックス手段を選択するように構成されたデータエントリアドレスインデックスセレクタ手段と
を備えるデータエントリリダイレクション回路手段と
を備えるメモリ。
【請求項１７】
データアレイ内の冗長データエントリに不完全データエントリをリダイレクトする方法であって、
データアレイ内のデータエントリにインデックスを付けるために第1のデータアクセス経路および第2のデータアクセス経路内でメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取るステップと、
前記データエントリアドレスの前記少なくとも一部分を表すデータエントリインデックスにおいて前記第1のデータアクセス経路内の前記データアレイ内の前記データエントリにインデックスを付けるステップと、
前記データエントリアドレスの前記少なくとも一部分における前記データエントリにインデックスを付ける前に、前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の不完全データエントリを表す不完全データエントリアドレスと比較するステップと、
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間の一致が生成される場合、前記データエントリインデックスとしてリダイレクションインデックスにおける前記データアレイ内の前記データエントリにインデックスを付けるステップと、
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間に前記一致が生成される場合、前記データエントリインデックスとして前記リダイレクションインデックスにおける前記データアレイ内の前記データエントリにアクセスするステップと
を含む方法。
【請求項１８】
前記データエントリアドレスの前記少なくとも一部分が前記不完全データエントリアドレスに一致しない場合、前記データエントリインデックスとして前記データエントリインデックスにおける前記データアレイ内の前記データエントリにアクセスするステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記データアレイ内の前記データエントリにインデックスを付けるために前記第1のデータアクセス経路および前記第2のデータアクセス経路内で前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含み、前記データエントリアドレスの前記少なくとも一部分は、前記データアレイ内のデータエントリの少なくとも1つの行またはデータエントリの少なくとも1つの列を表す、請求項17に記載の方法。
【請求項２０】
前記データエントリアドレスの前記少なくとも一部分を、前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の前記不完全データエントリを表す前記不完全データエントリアドレスと比較するステップをさらに含み、前記不完全データエントリアドレスコンパレータ回路は、前記データエントリアドレスの前記受け取られた少なくとも一部分を、複数の比較段階内の前記不完全データエントリを表す前記不完全データエントリと比較するように構成される、請求項18に記載の方法。
【請求項２１】
第2のメモリアクセス要求のためのデータエントリアドレスの少なくとも一部分における前記データエントリにインデックスを付ける前に、前記データエントリアドレスの前記少なくとも一部分を、第2のデータアクセス経路内の前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の前記不完全データエントリを表す前記不完全データエントリアドレスと比較している間、前記データアレイ内の第2のデータエントリにインデックスを付けるために前記第1のデータアクセス経路および前記第2のデータアクセス経路内で前記データアレイ内の第2のデータエントリをアドレス指定するための第2の入力として、前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含む、請求項17に記載の方法。
【請求項２２】
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間に前記一致が生成される場合、前記データエントリインデックスとして前記リダイレクションインデックスにおける前記データアレイ内の前記データエントリにアクセスしながら、前記第2のメモリアクセス要求のための前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の第2の不完全データエントリを表す第2の不完全データエントリアドレスと比較するステップをさらに含む、請求項21に記載の方法。
【請求項２３】
前記データアレイ内の前記データエントリにインデックスを付けるために前記第1のデータアクセス経路内で前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含み、前記データアレイはキャッシュメモリである、請求項17に記載の方法。
【請求項２４】
前記データアレイ内の前記データエントリにインデックスを付けるために前記第1のデータアクセス経路内で前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含み、タグアレイは、前記データエントリアドレスの前記少なくとも一部分を受け取る、請求項21に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、参照によりその全体が本明細書に組み込まれている、2013年5月8日に出願した「METHODS AND APPARATUSES FOR REDIRECTING DEFECTIVE DATA ENTRIES TO REDUNDANT DATA ENTRIES PRIOR TO DATA ARRAY ACCESSES, AND RELATED SYSTEMS AND METHODS」という名称の米国仮特許出願第61/820,945号の優先権を主張するものである。
【０００２】
本出願はまた、参照によりその全体が本明細書に組み込まれている、2013年9月4日に出願した「REDIRECTING DATA FROM A DEFECTIVE DATA ENTRY IN MEMORY TO A REDUNDANT DATA ENTRY PRIOR TO DATA ACCESS, AND RELATED SYSTEMS AND METHODS」という名称の米国特許出願第14/017,760号の優先権も主張するものである。
【０００３】
本開示の技術は、一般にコンピュータメモリに関し、より詳細には、コンピュータメモリ内のデータにアクセスすることに関する。
【背景技術】
【０００４】
メモリセルは、「メモリ」としても知られている、コンピュータデータストレージの基本的な構成単位である。コンピュータシステムは、メモリからデータを読み取る、またはメモリにデータを書き込む、のいずれかを行うことがある。メモリは、一例として、中央処理装置(CPU)システム内のキャッシュメモリを提供するために使用可能である。キャッシュメモリは、タグアレイおよびデータアレイからなり得る。タグアレイは、キャッシュメモリとして機能する、より高度に実行するデータアレイ内に記憶されたメモリアドレスのインデックスを保持する機能を実行する。データアレイは、タグアレイ内のメモリアドレスのインデックスによって参照されるデータ値を含む。タグアレイは、読取り動作または書込み動作のためにCPUはどのメモリアドレスにアクセスする必要があるかを示すメモリアドレスを受け取る。受け取られたメモリアドレスが、タグアレイ内のタグエントリと一致する場合、メモリアドレスに対応するデータがデータアレイ内に存在することを意味するキャッシュヒットが発生する。受け取られたメモリアドレスが、タグアレイ内のタグエントリと一致しない場合、キャッシュミスが発生する。この例では、データは、高次キャッシュまたはメインメモリのいずれかから取り出されなければならない。
【０００５】
キャッシュメモリ内のデータアレイは、静的ランダムアクセスメモリ(SRAM)ビットセルからなり、SRAMデータアレイを実現することができる。SRAMデータアレイは、１つのデータ項目またはビットを記憶することができるSRAMビットセルの行および列として編成される。複数のSRAMビットセルを含む行へのアクセスは、読取り動作および書込み動作のために対応するワード線によって制御される。このワード線は、読取り動作または書込み動作のために所望の行のSRAMビットセルを選択することによって、読取り動作と書込み動作の両方のためにSRAMビットセルへのアクセスを制御する。SRAMビットセルからデータを読み取るために、ワード線は、所望の行のSRAMビットセルを選択するためにアサートされる。読取り動作の場合、選択されたSRAMビットセルから読み取られたデータは、対応するビット線のセット上に置かれる。書込み動作の場合、SRAMビットセルに書き込まれるべきデータは、SRAMビットセルのための対応するビット線のセット上に置かれる。
【０００６】
半導体パッケージングの大きさが減少されるので、半導体ダイ内のより小さい形状として、キャッシュメモリを含むメモリを提供することが望ましいことがある。しかしながら、より小さな形状としてメモリを提供することによって、半導体製造歩留まりが減少することがあり得る。また、より小さな形状としてメモリを提供することによって、メモリ内に存在する不完全な行または列の数を増加させることができる。この点に関して、メモリのデータアレイ内のいくつかの行および/または列は、不完全な行または列の代わりに使用されるべき冗長な行または列として使用され得る。メモリのデータアレイ内の行または列の冗長性を実装する方法としては、静的マルチプレクサシステムを利用することがあり得る。静的マルチプレクサシステムは、データアレイ内の行または列ごとにマルチプレクサを利用し、不完全な行および/または列を示す静的インデックスに基づいて、データアレイ内の不完全な行または列をバイパスする。高性能メモリまたは大データ容量メモリの場合、データアレイは、「サブアレイ」とも呼ばれる、より小さなデータサブアレイに分割され得る。メモリ内の各サブアレイは、行デコーダ、書込みドライバ、センス増幅器、および制御/クロッキング回路などの専用周辺回路を有することがある。
【０００７】
しかしながら、静的マルチプレクサは、サブアレイを利用するデータアレイ内の行または列の冗長性のせいで効率的に動作しないことがある。各サブアレイが別個の専用行インデックス復号化、配線(wire routing)、センス増幅器、および制御/クロッキング回路を有するので、静的マルチプレクサが効率的に動作しないことがある。したがって、このメモリ冗長性構成を用いて、各サブアレイ内に設計または構成された冗長な行または列を有することが、より実用的であるまたは望ましいことがある。メモリの各サブアレイ内に冗長な行または列を構成することは、冗長な行または列を提供するためにサブアレイ各内に製造されるべき追加の冗長な行または列のための面積の増加を必要とする。
【発明の概要】
【課題を解決するための手段】
【０００８】
開示される実施形態は、データアクセスの前にメモリ内の不完全データエントリから冗長データエントリにデータをリダイレクトすることを含む。関連するシステムおよび方法も開示される。本明細書において開示される実施形態は、非限定的な例として、静的ランダムアクセスメモリ(SRAM)データアレイを含むキャッシュメモリ内で用いられ得る。メモリは、メモリアクセス要求を受け取るように構成される。受け取られたメモリアクセス要求は、データエントリアドレスを備える。メモリは、このデータエントリアドレスを使用して、第1のデータアクセス経路内のメモリ内のデータアレイ内に記憶されたデータにアクセスする。製造プロセスの結果としてメモリ内の行または列が不完全であり得ることが可能である。データアレイ内のデータエントリアドレスにおける行または列が不完全である場合、データエントリリダイレクション回路は、データアレイ内の冗長な行または列にメモリアクセス要求をリダイレクトする。
【０００９】
本明細書において開示される実施形態では、データアレイへのメモリアクセスの待ち時間は、データエントリリダイレクションの結果として増加されない。データエントリリダイレクション回路の待ち時間がメモリアクセスに待ち時間を追加することを回避または減少させるために、本明細書において説明する実施形態では、データエントリリダイレクション回路はメモリの第1のデータアクセス経路内に設けられない。データエントリリダイレクション回路は、第1のデータアクセス経路の外部のメモリ内の第2のデータアクセス経路内に設けられる。データエントリリダイレクション回路は、第2のデータアクセス経路内でメモリアクセス要求のための同じデータエントリアドレスを受け取る。データエントリリダイレクション回路は、データエントリアドレスがデータアレイ内の不完全な行または列を指す場合、データアレイ内の冗長な行または列にデータエントリアドレスをリダイレクトする。第1のデータアクセス経路の外部の第2のデータアクセス経路内にデータエントリリダイレクション回路を設けることによって、データエントリリダイレクション回路は、データエントリアドレスにおけるデータアレイ内のデータエントリアクセスの前に、要求されたデータエントリアドレスが不完全であるかどうか判断し、データアレイ内の冗長な行または列にメモリアクセス要求をリダイレクトすることができる。さらに、データエントリリダイレクション回路の待ち時間がメモリアクセスに待ち時間を追加することを回避するために、データエントリリダイレクション回路を含む第2のデータアクセス経路の待ち時間は、第1のデータアクセス経路の待ち時間よりも短い。したがって、メモリアクセス待ち時間は、第1のデータアクセス経路の待ち時間である。
【００１０】
この点に関して、一実施形態では、メモリが提供される。このメモリは、第1のデータアクセス経路内に設けられたメモリアクセス論理回路を備える。このメモリアクセス論理回路は、第1のデータアクセス経路内でデータアレイ内のデータエントリをアドレス指定するための入力としてメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取るように構成される。このメモリアクセス論理回路は、データエントリアドレスの少なくとも一部分に対応するデータアレイ内のデータエントリにアクセスする目的でデータアレイにインデックスを付けるために、データエントリアドレスインデックスを備える第1のデータアクセス経路内の出力としてインデックスを生成するようにさらに構成される。
【００１１】
メモリは、データエントリリダイレクション回路をさらに備える。このデータエントリリダイレクション回路は、第1のデータアクセス経路とは別個の第2のデータアクセス経路内に設けられた不完全データエントリコンパレータ回路を備える。この不完全データエントリコンパレータ回路は、データアレイ内のデータエントリにインデックスを付ける前に、第2のコンパレータ入力においてデータアレイ内の少なくとも1つの不完全データエントリアドレスを表す不完全データエントリインデックスレジスタから入力として少なくとも1つの不完全データエントリアドレスを受け取るように構成される。この不完全データエントリコンパレータ回路は、データエントリアドレスの少なくとも一部分を、受け取られた少なくとも1つの不完全データエントリアドレスと比較するようにさらに構成される。この不完全データエントリコンパレータ回路は、リダイレクションデータエントリアドレスインデックスを備える第2のデータアクセス経路内の出力としてリダイレクションインデックスを生成するようにさらに構成される。この不完全データエントリコンパレータ回路は、データエントリアドレスの受け取られた少なくとも一部分が、受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、データアレイ内の冗長データエントリに対するリダイレクションインデックスを生成する。データエントリリダイレクション回路は、データエントリアドレスの受け取られた少なくとも一部分が、受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、データアレイにインデックスを付けるためにリダイレクションインデックスを選択するように構成されたデータエントリアドレスインデックスセレクタをさらに備える。データエントリアドレスの受け取られた少なくとも一部分と受け取られた少なくとも1つの不完全データエントリアドレスの比較は、データエントリアドレスの少なくとも一部分におけるデータアレイ内のデータエントリにインデックスを付ける前に第2のデータアクセス経路内で実行される。このようにして、不完全データエントリの判断は、メモリアクセス要求データ経路の一部として実行されなければならず、それによって、メモリアクセス待ち時間が増加するであろう。不完全データエントリの判断は、メモリアクセスの待ち時間を増加させないように、第2のデータアクセス経路内でデータアレイへのアクセスの前に実行されてよい。
【００１２】
別の実施形態では、メモリが提供される。このメモリは、第1のデータアクセス経路手段内に設けられたメモリアクセス論理回路手段を備える。このメモリアクセス論理回路手段は、第1のデータアクセス経路手段内でデータアレイ手段内のデータエントリ手段をアドレス指定するための入力としてメモリアクセス要求手段のデータエントリアドレス手段の少なくとも一部分を受け取るように構成される。このメモリアクセス論理回路手段は、データエントリアドレス手段の少なくとも一部分に対応するデータアレイ手段内のデータエントリ手段にアクセスする目的でデータアレイ手段にインデックスを付けるために、データエントリアドレスインデックス手段を備える第1のデータアクセス経路手段内の出力としてインデックス手段を生成するようにさらに構成される。
【００１３】
メモリは、データエントリリダイレクション回路手段をさらに備える。このデータエントリリダイレクション回路手段は、第1のデータアクセス経路手段とは別個の第2のデータアクセス経路手段内に設けられた不完全データエントリコンパレータ回路手段を備える。この不完全データエントリコンパレータ回路手段は、データアレイ手段内のデータエントリ手段にインデックスを付ける前に、第2のコンパレータ入力手段におけるデータアレイ手段内の少なくとも1つの不完全データエントリアドレス手段を表す不完全データエントリインデックスレジスタ手段から入力として少なくとも1つの不完全データエントリアドレス手段を受け取るように構成される。この不完全データエントリコンパレータ回路手段は、データエントリアドレス手段の少なくとも一部分を、受け取られた少なくとも1つの不完全データエントリアドレス手段と比較するようにさらに構成される。不完全データエントリコンパレータ回路手段は、データエントリアドレス手段の受け取られた少なくとも一部分が、受け取られた少なくとも1つの不完全データエントリアドレス手段と一致する場合、データアレイ手段内の冗長データエントリ手段に対して、リダイレクションデータエントリアドレスインデックス手段を備える第2のデータアクセス経路手段内の出力としてリダイレクションインデックス手段を生成するようにさらに構成される。データエントリリダイレクション回路手段は、データエントリアドレス手段の受け取られた少なくとも一部分が、受け取られた少なくとも1つの不完全データエントリアドレス手段と一致する場合、データアレイ手段にインデックスを付けるためにリダイレクションインデックス手段を選択するように構成されたデータエントリアドレスインデックスセレクタ手段をさらに備える。
【００１４】
別の実施形態では、データアレイ内の冗長データエントリに不完全データエントリをリダイレクトする方法が提供される。この方法は、データアレイ内のデータエントリにインデックスを付けるために第1のデータアクセス経路および第2のデータアクセス経路内でメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取ることを含む。この方法は、データエントリアドレスの少なくとも一部分を表すデータエントリインデックスにおいて第1のデータアクセス経路内のデータアレイ内のデータエントリにインデックスを付けることをさらに含む。この方法は、データエントリアドレスの少なくとも一部分におけるデータエントリにインデックスを付ける前に、データエントリアドレスの少なくとも一部分を、第2のデータアクセス経路内の不完全データエントリアドレスコンパレータ回路内のデータアレイ内の不完全データエントリを表す不完全データエントリアドレスと比較することをさらに含む。この方法は、比較によって、データエントリアドレスの少なくとも一部分と不完全データエントリアドレスとの間の一致が生成される場合、データエントリインデックスとしてリダイレクションインデックスにあるデータアレイ内のデータエントリにインデックスを付けることをさらに含む。この方法は、比較によって、データエントリアドレスの少なくとも一部分と不完全データエントリアドレスとの間に一致が生成される場合、データエントリインデックスとしてリダイレクションインデックスにあるデータアレイ内のデータエントリにアクセスすることをさらに含む。
【図面の簡単な説明】
【００１５】
【図１】データアレイ内のデータエントリアクセスの前に、メモリアクセス要求のためのデータアドレスにおけるデータエントリが不完全である場合、メモリのデータアレイ内の冗長データエントリを選択するためのデータエントリリダイレクション回路を含む例示的なメモリの概略図である。
【図２】データアレイ内のデータエントリアクセスの前に、メモリアクセス要求のためのデータアドレスにおけるデータエントリが不完全であるかどうかに基づいて、メモリアクセス要求を目的として図1のメモリのデータアレイ内のデータエントリまたは冗長データエントリのいずれかを選択するための例示的なプロセスを示す流れ図である。
【図３】データアレイ内のデータエントリアクセスの前に、メモリアクセス要求のためのデータアドレスにおけるデータエントリが不完全である場合、タグアレイとデータアレイとを備える、およびメモリアクセス要求のためのキャッシュメモリのデータアレイ内の冗長データエントリを選択するためのデータエントリリダイレクション回路をさらに備える、キャッシュメモリとして設けられた別の例示的なメモリの概略図である。
【図４】データアレイ内のデータエントリアクセスの前に、メモリアクセス要求のためのデータアドレスにおけるデータエントリが不完全である場合、メモリアクセス要求のための図3のキャッシュメモリのデータアレイ内の冗長データエントリを選択するためのパイプライン式に処理される複数のメモリアクセス要求を示す複数の例示的なタイミングウィンドウを示す概略図である。
【図５】データアレイ内のデータエントリアクセスの前に、メモリアクセス要求のためのデータアドレスにおけるデータエントリが不完全である場合、限定するものではないが図1および図3のメモリを含む、メモリアクセス要求のためのメモリのデータアレイ内の冗長データエントリを選択するためのデータエントリリダイレクション回路を備えるメモリを含む例示的なプロセッサベースのシステムのブロック図である。
【発明を実施するための形態】
【００１６】
ここで図面を参照しながら、本開示のいくつかの例示的な実施形態について説明する。「例示的な」という単語は、本明細書において、「一例、一事例(instance)、または1つの説明(illustration)として働くこと」を意味するために使用される。「例示的」として本明細書において説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。
【００１７】
開示される実施形態は、データアクセスの前にメモリ内の不完全データエントリから冗長データエントリにデータをリダイレクトすることを含む。関連するシステムおよび方法も開示される。本明細書において開示される実施形態は、非限定的な例として、静的ランダムアクセスメモリ(SRAM)データアレイを含むキャッシュメモリ内で用いられ得る。メモリは、メモリアクセス要求を受け取るように構成される。受け取られたメモリアクセス要求は、データエントリアドレスを備える。メモリは、このデータエントリアドレスを使用して、第1のデータアクセス経路内のメモリ内のデータアレイ内に記憶されたデータにアクセスする。製造プロセスの結果としてメモリ内の行または列が不完全である可能性がある。データアレイ内のデータエントリアドレスにおける行または列が不完全である場合、データエントリリダイレクション回路は、データアレイ内の冗長な行または列にメモリアクセス要求をリダイレクトする。
【００１８】
本明細書において開示される実施形態では、データアレイへのメモリアクセスの待ち時間は、データエントリリダイレクションの結果として増加されない。データエントリリダイレクション回路の待ち時間がメモリアクセスに待ち時間を追加することを回避または減少させるために、本明細書において説明する実施形態では、データエントリリダイレクション回路はメモリの第1のデータアクセス経路内に設けられない。データエントリリダイレクション回路は、第1のデータアクセス経路の外部のメモリ内の第2のデータアクセス経路内に設けられる。データエントリリダイレクション回路は、第2のデータアクセス経路内でメモリアクセス要求のための同じデータエントリアドレスを受け取る。データエントリリダイレクション回路は、データエントリアドレスがデータアレイ内の不完全な行または列を指す場合、データアレイ内の冗長な行または列にデータエントリアドレスをリダイレクトする。第1のデータアクセス経路の外部の第2のデータアクセス経路内にデータエントリリダイレクション回路を設けることによって、データエントリリダイレクション回路は、データエントリアドレスにおけるデータアレイ内のデータエントリアクセスの前に、要求されたデータエントリアドレスが不完全であるかどうか判断し、データアレイ内の冗長な行または列にメモリアクセス要求をリダイレクトすることができる。さらに、データエントリリダイレクション回路の待ち時間がメモリアクセスに待ち時間を追加することを回避するために、データエントリリダイレクション回路を含む第2のデータアクセス経路の待ち時間は、第1のデータアクセス経路の待ち時間よりも短い。したがって、メモリアクセス待ち時間は、第1のデータアクセス経路の待ち時間である。
【００１９】
この点に関して、図1は、例示的なメモリ10の概略図を示す。図1のメモリ10は、非限定的な例として、キャッシュメモリ内に設けられ得る。メモリ10は、メモリアクセス要求12を受け取るように構成される。受け取られるメモリアクセス要求12は、データエントリアドレス14を備える。メモリ10は、データエントリアドレス14を使用して、データアレイ17内に記憶されたデータエントリ16にアクセスする。この例では、データアレイ17はSRAMデータアレイ18である。データエントリ16は、1つもしくは複数のビットセルからなってよく、および/または図1に示されるようにデータエントリ行16Rもしくはデータエントリ列16Cからなってよい。データエントリアドレス14は、SRAMデータアレイ18内のロケーションの完全なメモリアドレスを備えてもよいし、SRAMデータアレイ18内の所望のデータエントリ行16Rまたはデータエントリ列16Cにアクセスするのに十分なメモリアドレスの一部分のみを備えてもよい。メモリ10は、第1のデータアクセス経路20を通って、データエントリアドレス14におけるデータエントリ16にアクセスするように構成される。第1のデータアクセス経路20は、図1では、SRAM入力22からSRAMデータアレイ18まで延びるデータ経路として示されている。第1のデータアクセス経路20は、以下でより詳細に説明される、SRAMデータアレイ18内の不完全データエントリのアドレス指定を必要としないメモリアクセス要求のためのアクセス経路を示す。
【００２０】
図1を引き続き参照すると、メモリアクセス要求12は、メモリアクセス要求12が処理構成要素に遭遇する第1のデータアクセス経路20に沿って提供される。この例示的な実施形態では、第1のデータアクセス経路20内の処理構成要素は、メモリアクセス論理回路24を含む。メモリアクセス論理回路24は、SRAMデータアレイ18内の適切なアドレスにおけるデータエントリ16にアクセスするようにメモリアクセス要求12を処理する。一例として、メモリアクセス要求12の処理は、データエントリアドレス14を備えるメモリアクセス要求12をメモリアクセス論理回路入力26において受け取ることによって開始する。メモリアクセス論理回路24は、受け取られたメモリアクセス要求12内のデータエントリアドレス14をインデックス28に変換する。メモリアクセス論理回路24は、次いで、メモリアクセス論理回路出力30上の出力としてインデックス28を提供する。メモリアクセス論理回路出力30上に出力されたインデックス28がデータエントリアドレスインデックスセレクタ32によって受け取られるので、処理が継続する。データエントリアドレスインデックスセレクタ32は、データエントリ16にアクセスするために、インデックス28をSRAMデータアレイ18に提供する。受け取られたインデックス28を使用して、SRAMデータアレイ18は、メモリアクセス要求12のアドレスにおけるSRAMデータアレイ18内のデータエントリ16にアクセスする。SRAMデータアレイ18は、次いで、メモリアクセス要求12によってアドレス指定されたデータエントリ16を、SRAMデータアレイ出力34上の出力として提供する。
【００２１】
メモリ10内のデータエントリアドレス14におけるデータエントリ行16Rまたはデータエントリ列16Cは不完全であり得ることが可能である。たとえば、製造プロセスによって、半導体ダイ内の欠陥が生じることがある。この欠陥は、処理の不安定性、材料の不均一性などから生じることがある。したがって、データエントリ行16Rまたはデータエントリ列16Cは、製造プロセスの結果として不完全であることがある。不完全データエントリ行16Rまたは不完全データエントリ列16Cは、不完全データエントリ36としても知られる。不完全データエントリ36は、不完全データエントリ行36Rまたは不完全データエントリ列36Cとも呼ばれることがある。SRAMデータアレイ18内のデータエントリアドレス14におけるメモリ10のデータエントリ行16Rまたはデータエントリ列16Cが不完全である場合、図1のデータエントリリダイレクション回路38は、メモリアクセス要求12をSRAMデータアレイ18内の冗長データエントリ40にリダイレクトするように構成される。データエントリリダイレクション回路38は、データエントリアドレス14を備えるメモリアクセス要求12を受け取る。データエントリリダイレクション回路38は、データエントリアドレス14が不完全データエントリ36であるかどうか判断する。データエントリアドレス14が指すデータエントリ16がSRAMデータアレイ18内の不完全データエントリ36であると判断された場合、データエントリリダイレクション回路38は、データエントリアドレス14をSRAMデータアレイ18内の冗長データエントリ40にリダイレクトすることができる。このようにして、第1のデータアクセス経路20は、データエントリ16にアクセスするためのインデックス28を決定するために使用されるが、データエントリリダイレクション回路38は、不完全データエントリ36が第1のデータアクセス経路20によってインデックスを付けられた場合、インデックス付けをリダイレクトするように構成される。
【００２２】
図1を引き続き参照すると、データエントリリダイレクション回路38の待ち時間を回避または減少させるために、データエントリリダイレクション回路38は、メモリ10の第1のデータアクセス経路20内に設けられない。その代わりに、データエントリリダイレクション回路38は、第1のデータアクセス経路20の外部のメモリ10内の第2のデータアクセス経路42内に設けられる。第1のデータアクセス経路20の外部の第2のデータアクセス経路42内にデータエントリリダイレクション回路38を設けることによって、データエントリリダイレクション回路38は、データエントリアドレス14におけるSRAMデータアレイ18内のデータエントリ16のアクセスの前に、受け取られたデータエントリアドレス14が不完全であるかどうか判断することができる。非限定的な例として、データエントリリダイレクション回路38は、受け取られたメモリアクセス要求12をメモリアクセス論理回路24が処理している間、受け取られたデータエントリアドレス14が不完全であるかどうか判断し得る。したがって、この例では、第2のデータアクセス経路42内に設けられたデータエントリリダイレクション回路38の待ち時間は、メモリアクセス要求12のための第1のデータアクセス経路20の待ち時間を増加させない。メモリアクセス要求12が図1のメモリ10によって受け取られ、データエントリアドレス14におけるSRAMデータアレイ18内に記憶されたデータへのアクセスを提供するために処理されるという例示的なプロセスに関するさらなる詳細について、図2をともに参照しながら説明する。
【００２３】
この点に関して、図2は、図1のメモリ10によって受け取られたメモリアクセス要求12の例示的な処理を示す流れ図である。図1および図2を参照すると、データエントリアドレス14を備えるメモリアクセス要求12が、第1のデータアクセス経路20および第2のデータアクセス経路42内で受け取られる。第1のデータアクセス経路20内では、メモリアクセス要求12は、メモリアクセス論理回路入力26において受け取られる(図2のブロック60)。メモリアクセス論理回路24は、受け取られたメモリアクセス要求12を処理し、メモリアクセス論理回路出力30においてデータエントリアドレス14を表すインデックス28を生成する(図2のブロック62)。メモリアクセス論理回路24は、受け取られたメモリアクセス要求12内のデータエントリアドレス14を復号することができる。データエントリアドレス14の復号化は、受け取られたメモリアクセス要求12を、メモリアクセス要求12に対応するSRAMデータアレイ18内のデータエントリ16にインデックスを付けるために使用されるインデックス28に変換することができる。情報の追加ビットは、SRAMデータアレイ18内のアクセスされるべきデータエントリ行16Rおよび/または列16Cを識別することができる。インデックス28は、データエントリアドレスインデックスセレクタ32に提供される。次いで、データエントリアドレスインデックスセレクタ32が、生成されたインデックスに基づいて、SRAMデータアレイ18内のデータエントリ16にインデックスを付ける。以下で説明するように、リダイレクションインデックス52が生成される場合、冗長データエントリ40を表すリダイレクションインデックス52を使用して、SRAMデータアレイにインデックスを付ける(図2のブロック64)。いくつかの実施形態では、データエントリ16は、SRAMデータアレイ18内のデータエントリ行16Rまたはデータエントリ列16Cであってよい。次いで、データエントリアドレスインデックスセレクタ32によって提供されるインデックス28が、データエントリ16にアクセスするために使用される(ブロック66)。
【００２４】
次に、図1および図2を引き続き参照しながら、第2のデータアクセス経路42を介したSRAMデータアレイ18の冗長データエントリ40のアクセスについて説明する。第2のデータアクセス経路42を介して冗長データエントリ40にアクセスすることは、上記で説明した第1のデータアクセス経路20を介してデータエントリ16にアクセスすることとは別に実行される。第2のデータアクセス経路42もメモリアクセス要求12を受け取る(図2のブロック68)。第2のデータアクセス経路42は、データエントリリダイレクション回路38からなる。データエントリリダイレクション回路38は、第2のデータアクセス経路42内のメモリアクセス要求12のための処理構成要素を提供する。データエントリリダイレクション回路38は、この例では、不完全データエントリコンパレータ回路44と、データエントリアドレスインデックスセレクタ32とからなる。不完全データエントリコンパレータ回路44は、第2のデータアクセス経路42内でSRAMデータアレイ18内のデータエントリ16をアドレス指定するための第1のコンパレータ入力46における入力としてデータエントリアドレス14を受け取るように構成される。
【００２５】
図1および図2を引き続き参照すると、不完全データエントリコンパレータ回路44は、第2のコンパレータ入力50において不完全データエントリアドレス48を受け取るようにさらに構成される(図2のブロック70)。不完全データエントリコンパレータ回路44は、データエントリアドレス14と不完全データエントリアドレス48を比較する。不完全データエントリコンパレータ回路44は、データエントリアドレス14と不完全データエントリアドレス48との間に一致があるかどうか判断する。一致があると判断された場合、不完全データエントリコンパレータ回路44は、コンパレータ出力54においてリダイレクションインデックス52を生成するように構成される(図2のブロック72)。データエントリアドレスインデックスセレクタ32が、リダイレクションインデックス52が生成され、使用されるべきと判断した場合、冗長データエントリ40を表すリダイレクションインデックス52が、アクセスを目的としてSRAMデータアレイ18にインデックスを付けるために使用される(図2のブロック64)。次に、不完全データエントリ36が参照可能であることを示すリダイレクションインデックス52が第2のデータアクセス経路42内で生成されると判断された場合、SRAMデータアレイ18にアクセスすることは、リダイレクションインデックス52に基づく(図2のブロック74)。しかしながら、上記で説明したように、データエントリアドレス14と不完全データエントリアドレス48との間に一致がないと判断された場合、データエントリアドレス14によって参照されるデータエントリ16は、不完全であると見なされない。メモリアクセス要求12に対応するデータエントリ16が不完全であると判断されないシナリオでは、データエントリアドレスインデックスセレクタ32は、以下で説明するように、他のインデックス28がデータエントリアドレスインデックスセレクタ32に提供されない場合、SRAMデータアレイ18内のデータエントリ16にインデックスを付けるためにインデックス28を提供する(図2のブロック66)。
【００２６】
図1および図2を引き続き参照すると、不完全データエントリコンパレータ回路44によって受け取られる不完全データエントリアドレス48は、SRAMデータアレイ18内の以前に識別された不完全データエントリ36に対応する。不完全データエントリアドレス48は、不完全データエントリインデックスレジスタ56から出力されたアドレスである。不完全データエントリインデックスレジスタ56は、もしあれば、SRAMデータアレイ18内にあると判断された不完全データエントリアドレス48のリストを備える。SRAMデータアレイ18内の不完全データエントリ36に対応する不完全データエントリアドレス48のリストは、製造プロセス中に決定され得る。前に説明したように、メモリ10の製造プロセスは、SRAMデータアレイ18内の不完全データエントリ行36Rまたは列36Cという結果になり得る。SRAMデータアレイ18内の不完全データエントリ行36Rおよび不完全データエントリ列36Cは、製造プロセスの様々な検査フェーズ中に識別され得る。これらの様々な検査フェーズ中に、何らかの不完全データエントリ行36Rまたは不完全データエントリ列36Cがあると判断される場合、もしあれば、識別された不完全データエントリアドレス48のリストを含む不完全データエントリインデックスレジスタ56が生成される。不完全データエントリアドレス48は、データエントリアドレス14が不完全データエントリ36であるかどうか判断するために、不完全データエントリコンパレータ回路44によって使用される。
【００２７】
不完全データエントリインデックスレジスタ56は、不完全データエントリアドレス48を記憶できる任意のタイプのストレージ構成要素またはストレージデバイスであってよいことに留意されたい。たとえば、不完全データエントリインデックスレジスタ56は、非限定的な例として、不完全データエントリアドレス48のビット値を示すために使用されるプログラム可能ヒューズ(programmable fuse)のセットを含んでよい。不完全データエントリインデックスレジスタ56はまた、不完全データエントリアドレス48を記憶するための、限定するものではないがCPUレジスタを含む、回路ベースのストレージデバイスからなってもよい。
【００２８】
データエントリリダイレクション回路38の待ち時間がメモリアクセス要求12の待ち時間に待ち時間を追加することを回避するまたはデータエントリリダイレクション回路38の待ち時間を減少させるために、本明細書において説明する実施形態では、データエントリリダイレクション回路38はメモリ10の第1のデータアクセス経路20内に設けられない。その代わりに、データエントリリダイレクション回路38は、第1のデータアクセス経路20の外部のメモリ10内の第2のデータアクセス経路42内に設けられる。データエントリリダイレクション回路38は、第2のデータアクセス経路42内のメモリアクセス要求12のための同じデータエントリアドレス14を受け取る。データエントリアドレス14がSRAMデータアレイ18内の不完全データエントリ36を指す場合、データエントリリダイレクション回路38は、データエントリアドレス14をSRAMデータアレイ18内の冗長データエントリ40にリダイレクトする。第1のデータアクセス経路20の外部の第2のデータアクセス経路42内にデータエントリリダイレクション回路38を設けることによって、データエントリリダイレクション回路38は、データエントリアドレス14におけるSRAMデータアレイ18内のデータエントリ16のアクセスの前に、要求されたデータエントリアドレス14が不完全であるかどうか判断し、データエントリ16の、データエントリアドレス14におけるSRAMデータアレイ18内のアクセスの前にメモリアクセス要求12をSRAMデータアレイ18内の冗長データエントリ40にリダイレクトすることができる。このようにして、データエントリリダイレクション回路38の待ち時間は、SRAMデータアレイ18内の冗長データエントリ40へのリダイレクションを必要としないメモリアクセス要求12のための第1のデータアクセス経路20の一部として提供されない。メモリ10は、SRAMキャッシュメモリなどの異なるメモリ10のアプリケーションにおいて設けられてよく、より高性能のアプリケーションで使用されることが多い。したがって、メモリアクセス要求12のための第1のデータアクセス経路20の一部としてデータエントリリダイレクション回路38の待ち時間を回避または減少させることは、特に有利となることができる。
【００２９】
データエントリリダイレクション回路を含むメモリは、所望により、様々なメモリアプリケーションのために提供することができる。たとえば、図3は、図1のメモリ10内のデータエントリリダイレクション回路38に類似したデータエントリリダイレクション回路38'を含むキャッシュメモリ10'の例示的なブロック図を示す。キャッシュメモリ10'は、メモリアクセス論理回路24'と、図1のデータアレイに類似したデータアレイ17とを含む。この例では、データアレイ17はSRAMデータアレイ18である。キャッシュメモリ10'は、図1のメモリ10の概略図の例示的な実施形態である。図3の図1のメモリ10とキャッシュメモリ10'との間の共通要素は、共通要素番号を用いて示され、図3により再び説明することはしない。メモリアクセス論理回路24'は、タグアレイ論理回路74を備える。タグアレイ論理回路74は、タグ列76、有効列78、タグアレイ論理80、およびデコーダ論理回路82からなる。タグアレイ論理回路74は、SRAMデータアレイ18内のデータエントリ16に関する有効な検索を実行するためのオンチップメモリインデックスとして設けられる。タグアレイ論理回路74は、データエントリアドレス14とタグ列76の有効内容との間に一致があるかどうか判断する。
【００３０】
図3を引き続き参照すると、データエントリアドレス14がタグ列76の内容と一致すると判断すると、タグアレイ論理80は、受け取られたデータエントリアドレス14が有効であるかどうか判断する。タグアレイ論理80は、参照されるタグアドレス84をタグ列76から受け取る。タグアレイ論理80は、次いで、参照されるタグアドレス84が有効であるかどうか判断する。参照されるタグアドレス84が有効である場合、「キャッシュヒット」になる。しかしながら、参照されるタグアドレス84がない場合、または参照されるタグアドレス84が無効であると判断される場合、「キャッシュミス」が発生する。デコーダ論理回路82は、有効タグアドレス86をタグアレイ論理80から受け取る。有効タグアドレス86を受け取ると、デコーダ論理回路82は、SRAMデータアレイ18内のデータエントリ16のアドレスロケーションを解決する。タグアレイ論理回路74は、メモリアクセス論理回路24'の出力としてインデックス28を提供する。図1のメモリ10と同様に、図3のキャッシュメモリ10'内のメモリアクセス論理回路24'は、SRAMデータアレイ18内でアクセスするべきデータエントリ16を選択するためのデータエントリアドレスインデックスセレクタ32への出力としてインデックス28を提供する。しかしながら、この例示的な実施形態では、インデックス28は、「キャッシュヒット」がタグアレイ論理回路74において判断された場合、出力として提供される。タグアレイ論理80は、受け取られたデータエントリ16が有効であるかどうか判断し、第2のデータアクセス経路42内でデータエントリ16が不完全であると判断される場合でも、「キャッシュヒット」または「キャッシュミス」のいずれかの結果になることに留意されたい。このようにして、以下で説明するように、第2のデータアクセス経路42内の処理は、データエントリ16が不完全であるかどうか判断するが、データエントリ16が有効であるかどうか判断する機能を置き換えず、第1のデータアクセス経路20内で実行される「キャッシュヒット」または「キャッシュミス」のいずれかになる。
【００３１】
図3を引き続き参照すると、図1に類似したデータエントリリダイレクション回路38'が第2のデータアクセス経路42内に設けられる。データエントリリダイレクション回路38'は、データエントリアドレス14を不完全データエントリアドレス48と比較する、類似の機能を提供する。データエントリリダイレクション回路38'は、少なくとも1つの不完全データエントリアドレスコンパレータからなり得る。この非限定的な例では、第1の不完全データエントリアドレスコンパレータ88、および任意選択で第2の不完全データエントリアドレスコンパレータ90が設けられる。第1の不完全データエントリアドレスコンパレータ88は、データエントリアドレス14の少なくとも一部分を不完全データエントリアドレス48と比較するように構成される。第2の不完全データエントリアドレスコンパレータ90は、任意選択で、第1の不完全データエントリアドレスコンパレータ88が不完全データエントリアドレス48と比較する必要のないデータエントリアドレス14のビットの数を減少させるために設けられてよい。この比較の各段階においてデータエントリアドレス14内のビットの数を減少させることによって、第1の不完全データエントリアドレスコンパレータ88の性能は、データエントリアドレス14内のすべてのビットを比較するために１つのコンパレータのみを設けることとは反対に、増加され得る。代替実施形態では、複数の不完全データエントリアドレスコンパレータを使用する3つ以上の比較段階が使用されることがある。非限定的な例として、第1の不完全データエントリアドレスコンパレータ88は最上のXビットを比較することがあり、第2の不完全データエントリアドレスコンパレータ90は残りの最下位のYビットを比較することがある。解決された冗長アドレス92の第1の部分は不完全論理回路94に出力され、不完全論理回路94は、任意選択の複数の不完全データエントリアドレスコンパレータの結果を結合する。不完全論理回路94の出力はリダイレクションインデックス52である。リダイレクションインデックス52は、データエントリアドレスインデックスセレクタ32に出力される。
【００３２】
図3を引き続き参照すると、不完全論理回路94の出力は、データエントリリダイレクション回路38'内で実行される比較に基づいて生成されるリダイレクションインデックス52である。リダイレクションインデックス52は、データエントリアドレスインデックスセレクタ32に出力される。データエントリアドレスインデックスセレクタ32は、提供された場合、リダイレクションインデックス52を使用して、上記で説明したインデックス28の代わりに、受け取られたリダイレクションインデックス52においてSRAMデータアレイ18にインデックスを付ける。リダイレクションインデックス52におけるSRAMデータアレイ18のインデックス付けによって、冗長データエントリ40へのアクセスが可能になる。アクセスすると、SRAMデータアレイ18は、冗長データエントリ40にある値をSRAMデータアレイ18からSRAMデータアレイ出力34上に出力させる。SRAMデータアレイ18内の冗長データエントリ40内の値を出力することによるアクセスの完了によって、第2のデータアクセス経路42を介したアクセスが完了する。
【００３３】
図3を引き続き参照すると、SRAMデータアレイ18へのメモリアクセスの待ち時間は、データエントリリダイレクション回路38'の結果として増加されない。データエントリリダイレクション回路38'の待ち時間がメモリアクセスに待ち時間を追加することを回避または減少させるために、データエントリリダイレクション回路38'は、第2のデータアクセス経路42内に設けられ、メモリ10の第1のデータアクセス経路20内には設けられない。さらに、データエントリリダイレクション回路38'の待ち時間がメモリアクセスに待ち時間を追加することを回避するために、データエントリリダイレクション回路38'を含む第2のデータアクセス経路42の待ち時間は、第1のデータアクセス経路20の待ち時間よりも短い。したがって、メモリアクセス待ち時間は、第1のデータアクセス経路20の待ち時間である。
【００３４】
図3を引き続き参照すると、メモリアクセス要求12は、アドレスデータエントリ16をアドレス指定するためのメモリアクセス要求(MAR)アドレス96からなる。MARアドレス96はデータエントリアドレス14からなる。データエントリアドレス14はMARアドレス96の最上位ビットからなり、データエントリアドレス14は、MARアドレス96よりも少ないビットを有してよい。データエントリ16のアドレスを完全に解決するために、MARアドレス96のビットのすべてが要求される。しかしながら、データエントリアドレス14がMARアドレス96よりも少ないビットを有する場合、データエントリアドレス14の一部として含まれない少なくとも1つの列選択ビット98および/または少なくとも1つの行選択ビット100がある。データエントリアドレス14が、MARアドレス96よりも少ないビットからなる場合、データエントリアドレス14は、複数のデータエントリ行16Rおよび/または複数のデータエントリ列16Cをアドレス指定することがある。
【００３５】
図3を引き続き参照すると、この非限定的な例では、MARアドレス96は17のビットを有する。MARアドレス96内に設けられる17ビットは、メモリロケーションを完全に解決するために使用される。MARアドレス96内に設けられるデータエントリアドレス14は14のビットを有する。この例では、少なくとも1つの列選択ビット98は複数の列102のうち4つから1つをアドレス指定するので、少なくとも1つの列選択ビット98は2つのビットからなる。さらにこの例では、少なくとも1つの行選択ビット100は複数の行104のうち2つから1つをアドレス指定するので、少なくとも1つの行選択ビット100は1つのビットからなる。したがって、MARアドレス96は、合計17のビットを有する。MARアドレス96内の17ビットは、データエントリアドレス14のための14ビット、2つの列選択ビット98、および1つの行選択ビット100からなる。少なくとも1つの列選択ビット98内のビットの数および少なくとも1つの行選択ビット100内のビットの数は、設計上の選定によって決定される。
【００３６】
図3を引き続き参照すると、この設計上の選定としては、列MUX回路方式および/またはSRAMデータアレイ18の行置換ペアリングがあり得る。非限定的な例として、キャッシュメモリ10'の設計は、4-1列MUX回路方式を備えることがあり、この方式では、複数の列102の中に、専用周辺回路の1セット(たとえば、列デコーダ、書込みドライバ、センス増幅器、および制御/クロッキング回路など)を共有する4つの列が存在する。4-1列MUX回路方式における不完全データエントリ36は、専用周辺回路の共有により、複数の列102のうち4列すべてのリダイレクションを必要とする。列MUX回路方式4-1のこの例では、複数の列102の中の4つの列を表す、MARアドレス96内の2つの列選択ビット98は必要とされない。この例では、複数の列102の中の4つの列は、１つの列リダイレクト操作のために置換またはリダイレクトされるので、2つの列選択ビット98は必要とされない。複数の列102のうち4つを表す2つの列選択ビット98は、4-1列MUX回路方式の中で列がリダイレクトされることが必要な場合、使用される。
【００３７】
図3を引き続き参照すると、さらなる非限定的な例として、複数の行104のうち2つの行は、リダイレクト操作単一の行において置換され得る。複数の行104のうち2つの行は、上記で説明した4-1列MUX回路方式における１つの列リダイレクト操作において4つの列98が置換されるのと同様の理由で置換され得る。この例では、複数の行104のうち2つの行は、複数の行104へのアクセスを制御するための周辺回路を共有するので、複数の行104のうち2つの行は、１つの行リダイレクト操作において置換され得る。複数の行104のうち2つの行が１つの行リダイレクト操作において置換される場合、行選択ビット100は必要とされない。複数の行104のうち2つの行のうちどちらが冗長データエントリ40と置換されるべきか決定することが必要でないので、行選択ビット100は必要とされない。
【００３８】
図3を引き続き参照すると、上記で説明したように、データエントリリダイレクション回路38'の任意の待ち時間は、メモリアクセス要求12のための第1のデータアクセス経路20の一部として提供されない。したがって、キャッシュメモリ10'の全体的なメモリアクセス待ち時間は、データエントリリダイレクション回路38'により増加されないが、SRAMデータアレイ18内のデータエントリ16の冗長な行および/または列を提供する。
【００３９】
さらに、図3のキャッシュメモリ10'内のメモリアクセス要求12(0)〜12(N)の処理もパイプライン化され得る。以下で図4に関してより詳細に説明するように、キャッシュメモリ10'内のメモリアクセス要求12(0)〜12(N)の処理は、一連の異なる処理段階において提供可能である。各処理段階は、他の処理段階が他のメモリアクセス要求12(0)〜12(N)を処理する間、メモリアクセス要求12(0)〜12(N)に特定の指定された処理機能を提供するように構成可能である。このようにして、キャッシュメモリ10'内の処理段階は、次のメモリアクセス要求12(0)〜12(N)が処理可能になる前に完了されるべき他の処理段階上で待機するアイドル時間を有するのとは反対に、より完全に利用可能である。
【００４０】
この点に関して、図4は、図3のキャッシュメモリ10'内でパイプライン式に処理される複数のメモリアクセス要求12(0)〜12(N)を示す例示的なタイミング図106である。複数のメモリアクセス要求12(0)〜12(N)をパイプライン式に処理することによって、複数のメモリアクセス要求12(0)〜12(N)のうち各メモリアクセス要求の実行が重複する。メモリアクセス要求12をパイプライン式に処理するために、メモリアクセス要求12は、複数のアクセス段階に分割される。
【００４１】
図4を引き続き参照すると、次の非限定的な例では、複数のパイプラインメモリアクセス要求12(0)〜12(N)段階のための3つのメモリアクセス要求12段階が示されている。第1のメモリアクセス要求段階108は、第1のデータアクセス経路20および第2のデータアクセス経路42内でデータエントリアドレス14を受け取ることを備える。第2のメモリアクセス要求段階110は、不完全データエントリコンパレータ回路44が、少なくとも1つの不完全データエントリアドレス48を第2のデータアクセス経路42内でさらに受け取ることからなる。第2のメモリアクセス要求段階110はさらに、データエントリアドレス14を、SRAMデータアレイ18内の不完全データエントリ36に対応する少なくとも1つの不完全データエントリアドレス48と比較することからなる。不完全データエントリコンパレータ回路44は、データエントリアドレス14におけるデータエントリ16にインデックスを付ける前に、第2のデータアクセス経路42内で比較を実行する。さらに、不完全データエントリコンパレータ回路44は、データエントリアドレス14が少なくとも1つの不完全データエントリアドレス48と一致する場合、リダイレクションインデックス52を生成する。一致は、データエントリアドレス14が不完全データエントリ36となることを示す。第3のメモリアクセス要求段階112は、リダイレクションインデックス52が生成された場合、データエントリアドレスインデックスセレクタ32がリダイレクションインデックス52を選択することからなる。しかしながら、リダイレクションインデックス52が生成されない場合、データエントリアドレスインデックスセレクタ32は、データエントリアドレス14を表すインデックス28を使用して、SRAMデータアレイ18にインデックスを付ける。第3のメモリアクセス要求段階112はさらに、リダイレクションインデックス52によって表される冗長データエントリ40またはインデックス28によって表されるデータエントリ16のいずれかにおけるSRAMデータアレイ18にアクセスすることからなる。一代替実施形態では、メモリアクセス要求12は、3つよりも多いまたは少ないアクセス段階において処理されてよい。複数のメモリアクセス要求12(0)〜12(N)の各メモリアクセス要求は、少なくとも1つのタイミングウィンドウ114(0)〜114(M)の中で処理される。さらに、複数のメモリアクセス要求12(0)〜12(N)の各メモリアクセス要求は、別個のメモリアクセス要求12(0)〜12(N)に対応する複数のアクセス段階を同じタイミングウィンドウ114(0)〜114(M)において実行させているパイプライン式に実行されてよい。
【００４２】
図4を引き続き参照すると、メモリアクセス要求12(0)は、第1のタイミングウィンドウ114(0)において第1のメモリアクセス要求段階108の処理を開始する。第1のメモリアクセス要求12(0)の処理は、次いで、第2のタイミングウィンドウ114(1)において第2のメモリアクセス要求段階110に進む。第2のタイミングウィンドウ114(1)中に、メモリアクセス要求12(1)はまた、第1のメモリアクセス要求段階108において実行し始めることができる。この例では、メモリアクセス要求12(0)の第2のメモリアクセス要求段階110とメモリアクセス要求12(1)の第1のメモリアクセス要求段階108の両方が第2のタイミングウィンドウ114(1)中に処理されていることに留意されたい。メモリアクセス要求12(0)およびメモリアクセス要求12(1)は、次いで、処理を第3のタイミングウィンドウ114(2)に進ませる。第3のタイミングウィンドウ114(2)では、メモリアクセス要求12(0)は、処理の第3のメモリアクセス要求段階112に進み、メモリアクセス要求12(1)は、処理の第2のメモリアクセス要求段階110に進む。さらに、メモリアクセス要求12(2)は、第1のメモリアクセス要求段階108において処理を開始する。メモリアクセス要求12(2)の処理は、メモリアクセス要求12(0)、12(1)と同様に処理される。メモリアクセス要求12(2)は、タイミングウィンドウ114(2)〜114(M)において処理され、ここで再び説明することはしない。このようにして、メモリアクセス要求12(0)〜12(N)は、実行の段階にパイプライン化され、メモリアクセス要求12(0)〜12(N)の各々のための複数のアクセス段階108、110、112の同時実行を可能にすることができる。
【００４３】
本明細書において開示される実施形態による、データアクセスの前にメモリ内の不完全データエントリから冗長データエントリにデータをリダイレクトすることならびに関連するシステムおよび方法は、任意のプロセッサベースのデバイスにおいて提供されてもよいし、任意のプロセッサベースのデバイスに統合されてもよい。限定するものではないが、例としては、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、携帯型音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および携帯型デジタルビデオプレーヤがある。
【００４４】
この点に関して、図5は、データアクセスの前に不完全データエントリ36から冗長データエントリ40にデータをリダイレクトするためのシステムおよび方法を用いることができる、プロセッサベースのシステム116の一例を示す。この例では、プロセッサベースのシステム116は、各々1つまたは複数のプロセッサ120を含む1つまたは複数のCPU118を含む。CPU118は、一時的に記憶されたデータへの高速アクセスのためにプロセッサ120に結合されたキャッシュメモリ122を有することができる。CPU118は、システムバス124に結合され、プロセッサベースのシステム116に含まれるマスタデバイスとスレーブデバイスを相互結合することができる。よく知られているように、CPU118は、システムバス124を経由してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU118は、スレーブデバイスの一例であるメモリコントローラ126にバストランザクション要求を通信することができる。図5は示されていないが、複数のシステムバス124が設けられてもよく、各システムバス124は異なるファブリックを構成する。
【００４５】
他のマスタデバイスおよびスレーブデバイスがシステムバス124に接続可能である。図5に示されるように、これらのデバイスとしては、例として、メモリシステム128、1つまたは複数の入力デバイス130、1つまたは複数の出力デバイス132、1つまたは複数のネットワークインターフェースデバイス134、および1つまたは複数のディスプレイコントローラ136があり得る。入力デバイス130は、限定するものではないが入力キー、スイッチ、音声処理装置などを含む、任意のタイプの入力デバイスを含むことができる。出力デバイス132は、限定するものではないが音声インジケータ、ビデオインジケータ、他の視覚的インジケータなどを含む、任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス134は、ネットワーク138へのおよびこれからのデータの交換を可能にするように構成された任意のデバイスであってよい。ネットワーク138は、限定するものではないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたはパブリックネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス134は、所望の任意のタイプの通信プロトコルをサポートするように構成可能である。メモリシステム128は、1つまたは複数のメモリユニット140(0〜N)を含むことができる。
【００４６】
CPU118はまた、1つまたは複数のディスプレイ142に送信される情報を制御するために、システムバス124を経由してディスプレイコントローラ136にアクセスするように構成され得る。ディスプレイコントローラ136は、1つまたは複数のビデオプロセッサ144を介して表示されるべき情報をディスプレイ142に送信し、ビデオプロセッサ144は、表示されるべき情報をディスプレイ142に適した形式に加工する。ディスプレイ142は、限定するものではないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
【００４７】
さらに、当業者は、本明細書において開示される実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体内に記憶されプロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装され得ることを諒解されよう。例として、本明細書において説明するマスタデバイスおよびスレーブデバイスは、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて用いられてよい。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリであってよく、所望される任意のタイプの情報を記憶するように構成され得る。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、機能に関して上記で概括的に説明してきた。そのような機能がどのように実装されるかは、特定の適用例、設計上の選定、および/または全体的なシステムに課せられた設計上の制約に依存する。当業者は、説明した機能を各特定の適用例に関する様々な方法で実装してよいが、そのような実装の判定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００４８】
本明細書において開示される実施形態に関連して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラム可能論理デバイス、個別のゲート論理もしくはトランジスタ論理、個別のハードウェア構成要素、または本明細書において説明する機能を実行するように設計されたこれらの任意の組合せを用いて実装または実行されてよい。プロセッサはマイクロプロセッサであってよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサの組合せ、DSPコアと連携する1つもしくは複数のマイクロプロセッサの組合せ、または任意の他のそのような構成として実装されてもよい。
【００４９】
本明細書において開示される実施形態は、ハードウェアにおいて、およびハードウェア内に記憶される命令において実施されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態のコンピュータ可読媒体に常駐してよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってよい。プロセッサおよび記憶媒体はASIC内に存在し得る。ASICは、遠隔局内に存在し得る。代替として、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバにおける個別の構成要素として存在してよい。
【００５０】
また、本明細書において例示的な実施形態のうちいずれかにおいて説明した動作ステップは、例および説明を提供するために説明されることにも留意されたい。説明した動作は、図示の順序とは異なる多数の異なる順序で実行され得る。そのうえ、１つの動作ステップにおいて説明した動作は、実際に、いくつかの異なるステップで実行され得る。さらに、例示的な実施形態において説明した1つまたは複数の動作は組み合わされてもよい。当業者には直ちに明らかになるように、流れ図において示される動作ステップは、多数の異なる変更を受けることがあることを理解されたい。また、情報および信号は任意の多種多様な技術および技法を使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体を通じて参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光学粒子、またはこれらの任意の組合せによって表され得る。
【００５１】
本開示の上記の説明は、当業者が本開示を作製または使用することを可能にするために提供される。本開示の様々な変更形態は、当業者には容易に明らかになり、本明細書において定義される一般的原理は、本開示の趣旨または範囲から逸脱することなく、他の変形形態に適用され得る。したがって、本開示は、本明細書において説明する例および設計に限定されることを意図するものではなく、本明細書において開示される原理および新規な特徴に一致する最も広い範囲が与えられることを意図するものである。
【符号の説明】
【００５２】
10  メモリ
10'  キャッシュメモリ
12  第1のメモリアクセス要求
12(0)  メモリアクセス要求
12(1)  メモリアクセス要求
12(2)  メモリアクセス要求
14  データエントリアドレス
16  データエントリ、アドレスデータエントリ
16C  不完全データエントリ列
16R  不完全データエントリ行
17  データアレイ
18  SRAMデータアレイ
20  第1のデータアクセス経路
22  SRAM入力
24  メモリアクセス論理回路
24'  メモリアクセス論理回路
26  メモリアクセス論理回路入力
28  インデックス
30  メモリアクセス論理回路出力
32  データエントリアドレスインデックスセレクタ
34  SRAMデータアレイ出力
36  不完全データエントリ
36C  不完全データエントリ列
36R  不完全データエントリ行
38  データエントリリダイレクション回路
38'  データエントリリダイレクション回路
40  冗長データエントリ
42  第2のデータアクセス経路
44  不完全データエントリコンパレータ回路
46  第1のコンパレータ入力
48  不完全データエントリアドレス
50  第2のコンパレータ入力
52  リダイレクションインデックス
54  コンパレータ出力
56  不完全データエントリインデックスレジスタ
74  タグアレイ論理回路
76  タグ列
78  有効列
80  タグアレイ論理
82  デコーダ論理回路
84  タグアドレス
86  有効タグアドレス
88  第1の不完全データエントリアドレスコンパレータ
90  第2の不完全データエントリアドレスコンパレータ
92  冗長アドレス
94  不完全論理回路
96  MARアドレス
98  列選択ビット、列
100  行選択ビット
102  列
104  行
106  タイミング図
108  第1のメモリアクセス要求段階、アクセス段階
110  第2のメモリアクセス要求段階、アクセス段階
112  第3のメモリアクセス要求段階、アクセス段階
114  タイミングウィンドウ
114(0)  第1のタイミングウィンドウ
114(1)  第2のタイミングウィンドウ
114(2)  第3のタイミングウィンドウ
116  システム
118  CPU
120  プロセッサ
122  キャッシュメモリ
124  システムバス
126  メモリコントローラ
128  メモリシステム
130  入力デバイス
132  出力デバイス
134  ネットワークインターフェースデバイス
136  ディスプレイコントローラ
138  ネットワーク
140  メモリユニット
142  ディスプレイ
144  ビデオプロセッサ
【図１】
2016522936.tif 000003
【図２】
2016522936.tif 000004
【図３】
2016522936.tif 000005
【図４】
2016522936.tif 000006
【図５】
2016522936.tif 000007
【手続補正書】
【提出日】平成27年7月8日(2015.7.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1のデータアクセス経路内に設けられたメモリアクセス論理回路であって、タグアレイを備え、
前記第1のデータアクセス経路内でデータアレイ内のデータエントリをアドレス指定するための入力としてメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取り、
前記データエントリアドレスが前記データアレイ内でアクセス可能であるかどうか判断するために前記タグアレイにアクセスし、
前記データエントリアドレスが前記データアレイ内でアクセス可能であることに応答して、前記データエントリアドレスの前記少なくとも一部分に対応する前記データアレイ内の前記データエントリにアクセスする目的で前記データアレイにインデックスを付けるために、データエントリアドレスインデックスを備える前記第1のデータアクセス経路内の出力としてインデックスを生成する
ように構成されたメモリアクセス論理回路と、
前記第1のデータアクセス経路とは別個の第2のデータアクセス経路内に設けられた不完全データエントリコンパレータ回路であって、前記データアレイ内の前記データエントリにインデックスを付ける前に、
コンパレータの第1の入力において前記メモリアクセス要求のデータエントリアドレスの前記少なくとも一部分を受け取り、
前記コンパレータの第2の入力における前記データアレイ内の少なくとも1つの不完全データエントリアドレスを表す不完全データエントリインデックスレジスタから入力として前記少なくとも1つの不完全データエントリアドレスを受け取り、
前記データエントリアドレスの前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレスと比較し、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイ内の冗長データエントリに対して、前記データエントリアドレスインデックスが前記メモリアクセス論理回路によって出力される前にリダイレクションデータエントリアドレスインデックスを備える前記第2のデータアクセス経路内の出力としてリダイレクションインデックスを生成する
ように構成された不完全データエントリコンパレータ回路と、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成されたデータエントリアドレスインデックスセレクタと
を備えるデータエントリリダイレクション回路と
を備えるキャッシュメモリ。
【請求項２】
前記データエントリアドレスインデックスセレクタは、前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致しない場合、前記データアレイにインデックスを付けるために前記インデックスを選択するようにさらに構成される、請求項1に記載のキャッシュメモリ。
【請求項３】
前記不完全データエントリコンパレータ回路は、前記データエントリアドレスの前記受け取られた少なくとも一部分を前記受け取られた少なくとも1つの不完全データエントリアドレスと比較するための複数の比較段階を備える、請求項1に記載のキャッシュメモリ。
【請求項４】
前記受け取られた少なくとも1つの不完全データエントリアドレスは、前記データアレイ内の少なくとも1つの不完全な行または少なくとも1つの不完全な列を示すことができる、請求項1に記載のキャッシュメモリ。
【請求項５】
前記データエントリアドレスの前記少なくとも一部分は、前記データアレイ内のデータエントリの少なくとも1つの行またはデータエントリの少なくとも1つの列を表す、請求項1に記載のキャッシュメモリ。
【請求項６】
前記データエントリリダイレクション回路は、第1のコンパレータ入力における前記第2のデータアクセス経路内の前記データアレイ内の前記データエントリをアドレス指定するための入力として前記データエントリアドレスの前記少なくとも一部分を受け取るようにさらに構成される、請求項1に記載のキャッシュメモリ。
【請求項７】
第1のデータアクセス経路内に設けられたメモリアクセス論理回路であって、
前記第1のデータアクセス経路内でデータアレイ内のデータエントリをアドレス指定するための入力としてメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取り、
前記データエントリアドレスの前記少なくとも一部分に対応する前記データアレイ内の前記データエントリにアクセスする目的で前記データアレイにインデックスを付けるために、データエントリアドレスインデックスを備える前記第1のデータアクセス経路内の出力としてインデックスを生成する
ように構成されたメモリアクセス論理回路と、
データエントリリダイレクション回路であって、
前記第1のデータアクセス経路とは別個の第2のデータアクセス経路内に設けられた不完全データエントリコンパレータ回路であって、前記データアレイ内の前記データエントリにインデックスを付ける前に、
第2のコンパレータ入力における前記データアレイ内の少なくとも1つの不完全データエントリアドレスを表す不完全データエントリインデックスレジスタから入力として前記少なくとも1つの不完全データエントリアドレスを受け取り、
前記データエントリアドレスの前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレスと比較し、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイ内の冗長データエントリに対して、リダイレクションデータエントリアドレスインデックスを備える前記第2のデータアクセス経路内の出力としてリダイレクションインデックスを生成する
ように構成された不完全データエントリコンパレータ回路と、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成されたデータエントリアドレスインデックスセレクタと
を備え、
第1のコンパレータ入力における前記第2のデータアクセス経路内の前記データアレイ内の前記データエントリをアドレス指定するための入力として前記データエントリアドレスの前記少なくとも一部分を受け取るようにさらに構成されるデータエントリリダイレクション回路と
を備え、
前記データエントリリダイレクション回路は、第1のメモリアクセス要求のための前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合に前記データアレイ内の前記冗長データエントリに対して前記第2のデータアクセス経路内の前記出力として前記リダイレクションインデックスを生成しながら、前記第1のデータアクセス経路内の前記データアレイ内の第2のデータエントリをアドレス指定するための第2の入力として第2のメモリアクセス要求のためのデータエントリアドレスの少なくとも一部分を受け取るように構成される、メモリ。
【請求項８】
前記データエントリリダイレクション回路は、前記第2のデータアクセス経路内の前記出力として第2のリダイレクションインデックスを生成するように構成され、前記データエントリアドレスインデックスセレクタは、前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成される、請求項7に記載のメモリ。
【請求項９】
キャッシュメモリからなり、前記データアレイはSRAMデータアレイからなる、請求項1に記載のキャッシュメモリ。
【請求項１０】
前記メモリアクセス論理回路および前記不完全データエントリコンパレータ回路は、第1のタイミングウィンドウ内で前記データアレイ内の前記データエントリにインデックスを付けるための前記入力として前記データエントリアドレスの前記少なくとも一部分を受け取るように構成される、請求項1に記載のキャッシュメモリ。
【請求項１１】
第1のデータアクセス経路内に設けられたメモリアクセス論理回路であって、
前記第1のデータアクセス経路内でデータアレイ内のデータエントリをアドレス指定するための入力としてメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取り、
前記データエントリアドレスの前記少なくとも一部分に対応する前記データアレイ内の前記データエントリにアクセスする目的で前記データアレイにインデックスを付けるために、データエントリアドレスインデックスを備える前記第1のデータアクセス経路内の出力としてインデックスを生成する
ように構成されたメモリアクセス論理回路と、
データエントリリダイレクション回路であって、
前記第1のデータアクセス経路とは別個の第2のデータアクセス経路内に設けられた不完全データエントリコンパレータ回路であって、前記データアレイ内の前記データエントリにインデックスを付ける前に、
第2のコンパレータ入力における前記データアレイ内の少なくとも1つの不完全データエントリアドレスを表す不完全データエントリインデックスレジスタから入力として前記少なくとも1つの不完全データエントリアドレスを受け取り、
前記データエントリアドレスの前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレスと比較し、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイ内の冗長データエントリに対して、リダイレクションデータエントリアドレスインデックスを備える前記第2のデータアクセス経路内の出力としてリダイレクションインデックスを生成する
ように構成された不完全データエントリコンパレータ回路と、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成されたデータエントリアドレスインデックスセレクタと
を備えるデータエントリリダイレクション回路と
を備え、
前記メモリアクセス論理回路および前記不完全データエントリコンパレータ回路は、第1のタイミングウィンドウ内で前記データアレイ内の前記データエントリにインデックスを付けるための前記入力として前記データエントリアドレスの前記少なくとも一部分を受け取るように構成され、
前記不完全データエントリコンパレータ回路は、前記出力として前記メモリアクセス論理回路インデックス付けの前に第2のタイミングウィンドウ内で前記データエントリアドレスの前記受け取られた少なくとも一部分を前記受け取られた少なくとも1つの不完全データエントリアドレスと比較するように構成され、前記データエントリアドレスの前記少なくとも一部分における前記第1のデータアクセス経路内の前記データアレイ内の前記データエントリは、第3のタイミングウィンドウ内の前記データエントリアドレスの前記受け取られた少なくとも一部分を表す、メモリ。
【請求項１２】
集積回路に統合された、請求項1に記載のキャッシュメモリ。
【請求項１３】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピューモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、携帯型音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および携帯型デジタルビデオプレーヤからなる群から選択されるデバイスに統合される、請求項1に記載のキャッシュメモリ。
【請求項１４】
第1のデータアクセス経路手段内に設けられたメモリアクセス論理回路手段であって、タグアレイを備え、
前記第1のデータアクセス経路手段内でデータアレイ内のデータエントリをアドレス指定するための入力としてメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取り、
前記データエントリアドレスが前記データアレイ内でアクセス可能であるかどうか判断するために前記タグアレイにアクセスし、
前記データエントリアドレスの前記少なくとも一部分に対応する前記データアレイ内の前記データエントリにアクセスする目的で前記データアレイにインデックスを付けるために、データエントリアドレスインデックス手段を備える前記第1のデータアクセス経路手段内の出力としてインデックスを生成する
ように構成されたメモリアクセス論理回路手段と、
データエントリリダイレクション回路手段であって、
前記第1のデータアクセス経路手段とは別個の第2のデータアクセス経路内に設けられた不完全データエントリコンパレータ回路手段であって、前記データアレイ内の前記データエントリにインデックスを付ける前に、
コンパレータの第1の入力において前記メモリアクセス要求のデータエントリアドレスの前記少なくとも一部分を受け取り、
前記コンパレータの第2の入力における前記データアレイ内の少なくとも1つの不完全データエントリアドレスを表す入力手段として、不完全データエントリインデックスレジスタ手段から、前記少なくとも1つの不完全データエントリアドレスを受け取り、
前記データエントリアドレスの前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレスと比較し、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイ内の冗長データエントリに対して、前記データエントリアドレスインデックス手段が前記メモリアクセス論理回路手段によって出力される前にリダイレクションデータエントリアドレスインデックス手段を備える前記第2のデータアクセス経路手段内の出力としてリダイレクションインデックスを生成する
ように構成された不完全データエントリコンパレータ回路手段と、
前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成されたデータエントリアドレスインデックスセレクタ手段と
を備えるデータエントリリダイレクション回路手段と
を備えるキャッシュメモリ。
【請求項１５】
データアレイ内の冗長データエントリに不完全データエントリをリダイレクトする方法であって、
データアレイ内のデータエントリにインデックスを付けるために第1のデータアクセス経路および第2のデータアクセス経路内でメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取るステップと、
前記データエントリアドレスの前記少なくとも一部分を表すデータエントリインデックスにおいて前記第1のデータアクセス経路内の前記データアレイ内の前記データエントリにインデックスを付けるステップと、
前記データエントリアドレスの前記少なくとも一部分における前記データエントリにインデックスを付ける前に、前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の不完全データエントリを表す不完全データエントリアドレスと比較するステップと、
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間の一致が生成される場合、前記データエントリインデックスとしてリダイレクションインデックスにおける前記データアレイ内の前記データエントリにインデックスを付けるステップと、
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間に前記一致が生成される場合、前記データエントリインデックスとして前記リダイレクションインデックスにおける前記データアレイ内の前記データエントリにアクセスするステップと
を含む方法。
【請求項１６】
前記データエントリアドレスの前記少なくとも一部分が前記不完全データエントリアドレスに一致しない場合、前記データエントリインデックスとして前記データエントリインデックスにおける前記データアレイ内の前記データエントリにアクセスするステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記データアレイ内の前記データエントリにインデックスを付けるために前記第1のデータアクセス経路および前記第2のデータアクセス経路内で前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含み、前記データエントリアドレスの前記少なくとも一部分は、前記データアレイ内のデータエントリの少なくとも1つの行またはデータエントリの少なくとも1つの列を表す、請求項15に記載の方法。
【請求項１８】
前記データエントリアドレスの前記少なくとも一部分を、前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の前記不完全データエントリを表す前記不完全データエントリアドレスと比較するステップをさらに含み、前記不完全データエントリアドレスコンパレータ回路は、前記データエントリアドレスの前記受け取られた少なくとも一部分を、複数の比較段階内の前記不完全データエントリを表す前記不完全データエントリと比較するように構成される、請求項16に記載の方法。
【請求項１９】
データアレイ内の冗長データエントリに不完全データエントリをリダイレクトする方法であって、
データアレイ内のデータエントリにインデックスを付けるために第1のデータアクセス経路および第2のデータアクセス経路内でメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取るステップと、
前記データエントリアドレスの前記少なくとも一部分を表すデータエントリインデックスにおいて前記第1のデータアクセス経路内の前記データアレイ内の前記データエントリにインデックスを付けるステップと、
前記データエントリアドレスの前記少なくとも一部分における前記データエントリにインデックスを付ける前に、前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の不完全データエントリを表す不完全データエントリアドレスと比較するステップと、
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間の一致が生成される場合、前記データエントリインデックスとしてリダイレクションインデックスにある前記データアレイ内の前記データエントリにインデックスを付けるステップと、
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間に前記一致が生成される場合、前記データエントリインデックスとして前記リダイレクションインデックスにある前記データアレイ内の前記データエントリにアクセスするステップと、
第2のメモリアクセス要求のためのデータエントリアドレスの少なくとも一部分における前記データエントリにインデックスを付ける前に、前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の前記不完全データエントリアドレスコンパレータ回路内のキャッシュメモリ内の前記不完全データエントリを表す前記不完全データエントリアドレスと比較している間、前記キャッシュメモリ内の第2のデータエントリにインデックスを付けるために前記第1のデータアクセス経路および前記第2のデータアクセス経路内で前記キャッシュメモリ内の前記第2のデータエントリをアドレス指定するための第2の入力として、前記データエントリアドレスの前記少なくとも一部分を受け取るステップと
を含む方法。
【請求項２０】
前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間に前記一致が生成される場合、前記データエントリインデックスとして前記リダイレクションインデックスにおける前記データアレイ内の前記データエントリにアクセスしながら、前記第2のメモリアクセス要求のための前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の第2の不完全データエントリを表す第2の不完全データエントリアドレスと比較するステップをさらに含む、請求項19に記載の方法。
【国際調査報告】
2016522936.tif 000008
2016522936.tif 000009