JP2016522936A - データアクセスの前のメモリ内の不完全データエントリから冗長データエントリへのデータのリダイレクトならびに関連するシステムおよび方法 - Google Patents

データアクセスの前のメモリ内の不完全データエントリから冗長データエントリへのデータのリダイレクトならびに関連するシステムおよび方法 Download PDF

Info

Publication number
JP2016522936A
JP2016522936A JP2016513011A JP2016513011A JP2016522936A JP 2016522936 A JP2016522936 A JP 2016522936A JP 2016513011 A JP2016513011 A JP 2016513011A JP 2016513011 A JP2016513011 A JP 2016513011A JP 2016522936 A JP2016522936 A JP 2016522936A
Authority
JP
Japan
Prior art keywords
data
data entry
incomplete
entry address
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016513011A
Other languages
English (en)
Other versions
JP2016522936A5 (ja
JP6138352B2 (ja
Inventor
チアミン・チャイ
シャオピン・ゲ
スティーヴン・エドワード・ライルズ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016522936A publication Critical patent/JP2016522936A/ja
Publication of JP2016522936A5 publication Critical patent/JP2016522936A5/ja
Application granted granted Critical
Publication of JP6138352B2 publication Critical patent/JP6138352B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/84Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
    • G11C29/848Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability by adjacent switching
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

開示される実施形態は、データアクセスの前にメモリ内の不完全データエントリから冗長データエントリにデータをリダイレクトすることを含む。関連するシステムおよび方法も開示される。メモリは、メモリアクセス要求を受け取るように構成される。受け取られたメモリアクセス要求は、データエントリアドレスを備える。メモリは、このデータエントリアドレスを使用して、第1のデータアクセス経路内のメモリ内のデータアレイ内に記憶されたデータにアクセスする。製造プロセスの結果としてメモリ内の行または列が不完全であり得ることが可能である。データアレイ内のデータエントリアドレスにおける行または列が不完全である場合、データエントリリダイレクション回路は、データアクセスの前に、データアレイ内の冗長な行または列にメモリアクセス要求をリダイレクトする。

Description

優先権主張
本出願は、参照によりその全体が本明細書に組み込まれている、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データアレイは、1つのデータ項目またはビットを記憶することができる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内のすべてのビットを比較するために1つのコンパレータのみを設けることとは反対に、増加され得る。代替実施形態では、複数の不完全データエントリアドレスコンパレータを使用する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つの列は、1つの列リダイレクト操作のために置換またはリダイレクトされるので、2つの列選択ビット98は必要とされない。複数の列102のうち4つを表す2つの列選択ビット98は、4-1列MUX回路方式の中で列がリダイレクトされることが必要な場合、使用される。
図3を引き続き参照すると、さらなる非限定的な例として、複数の行104のうち2つの行は、リダイレクト操作単一の行において置換され得る。複数の行104のうち2つの行は、上記で説明した4-1列MUX回路方式における1つの列リダイレクト操作において4つの列98が置換されるのと同様の理由で置換され得る。この例では、複数の行104のうち2つの行は、複数の行104へのアクセスを制御するための周辺回路を共有するので、複数の行104のうち2つの行は、1つの行リダイレクト操作において置換され得る。複数の行104のうち2つの行が1つの行リダイレクト操作において置換される場合、行選択ビット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つの動作ステップにおいて説明した動作は、実際に、いくつかの異なるステップで実行され得る。さらに、例示的な実施形態において説明した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 ビデオプロセッサ

Claims (24)

  1. 第1のデータアクセス経路内に設けられたメモリアクセス論理回路であって、
    前記第1のデータアクセス経路内でデータアレイ内のデータエントリをアドレス指定するための入力としてメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取り、
    前記データエントリアドレスの前記少なくとも一部分に対応する前記データアレイ内の前記データエントリにアクセスする目的で前記データアレイにインデックスを付けるために、データエントリアドレスインデックスを備える前記第1のデータアクセス経路内の出力としてインデックスを生成する
    ように構成されたメモリアクセス論理回路と、
    前記第1のデータアクセス経路とは別個の第2のデータアクセス経路内に設けられた不完全データエントリコンパレータ回路であって、前記データアレイ内の前記データエントリにインデックスを付ける前に、
    第2のコンパレータ入力における前記データアレイ内の少なくとも1つの不完全データエントリアドレスを表す不完全データエントリインデックスレジスタから入力として前記少なくとも1つの不完全データエントリアドレスを受け取り、
    前記データエントリアドレスの前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレスと比較し、
    前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイ内の冗長データエントリに対して、リダイレクションデータエントリアドレスインデックスを備える前記第2のデータアクセス経路内の出力としてリダイレクションインデックスを生成する
    ように構成された不完全データエントリコンパレータ回路と、
    前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成されたデータエントリアドレスインデックスセレクタと
    を備えるデータエントリリダイレクション回路と
    を備えるメモリ。
  2. 前記データエントリアドレスインデックスセレクタは、前記データエントリアドレスの前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレスと一致しない場合、前記データアレイにインデックスを付けるために前記インデックスを選択するようにさらに構成される、請求項1に記載のメモリ。
  3. 前記不完全データエントリコンパレータ回路は、前記データエントリアドレスの前記受け取られた少なくとも一部分を前記受け取られた少なくとも1つの不完全データエントリアドレスと比較するための複数の比較段階を備える、請求項1に記載のメモリ。
  4. 前記受け取られた少なくとも1つの不完全データエントリアドレスは、前記データアレイ内の少なくとも1つの不完全な行または少なくとも1つの不完全な列を示すことができる、請求項1に記載のメモリ。
  5. 前記データエントリアドレスの前記少なくとも一部分は、前記データアレイ内のデータエントリの少なくとも1つの行またはデータエントリの少なくとも1つの列を表す、請求項1に記載のメモリ。
  6. 前記データエントリリダイレクション回路は、第1のコンパレータ入力における前記第2のデータアクセス経路内の前記データアレイ内の前記データエントリをアドレス指定するための入力として前記データエントリアドレスの前記少なくとも一部分を受け取るようにさらに構成される、請求項1に記載のメモリ。
  7. 前記データエントリリダイレクション回路は、第1のメモリアクセス要求のための前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合に前記データアレイ内の前記冗長データエントリに対して前記第2のデータアクセス経路内の前記出力として前記リダイレクションインデックスを生成しながら、前記第1のデータアクセス経路内の前記データアレイ内の第2のデータエントリをアドレス指定するための第2の入力として第2のメモリアクセス要求のためのデータエントリアドレスの少なくとも一部分を受け取るように構成される、請求項6に記載のメモリ。
  8. 前記データエントリリダイレクション回路は、前記第2のデータアクセス経路内の前記出力として第2のリダイレクションインデックスを生成するように構成され、前記データエントリアドレスインデックスセレクタは、前記データエントリアドレスの前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレスと一致する場合、前記データアレイにインデックスを付けるために前記リダイレクションインデックスを選択するように構成される、請求項7に記載のメモリ。
  9. キャッシュメモリからなり、前記データアレイはSRAMデータアレイからなる、請求項1に記載のメモリ。
  10. 前記メモリアクセス論理回路は、前記データアレイアクセスの前に前記データアレイにインデックスを付けるためのタグアレイからなる、請求項9に記載のメモリ。
  11. 前記タグアレイは、前記第1のデータアクセス経路内の前記出力として前記インデックスを生成する、請求項10に記載のメモリ。
  12. 前記メモリアクセス論理回路および前記不完全データエントリコンパレータ回路は、第1のタイミングウィンドウ内で前記データアレイ内の前記データエントリにインデックスを付けるための前記入力として前記データエントリアドレスの前記少なくとも一部分を受け取るように構成される、請求項1に記載のメモリ。
  13. 前記不完全データエントリコンパレータ回路は、前記出力として前記メモリアクセス論理回路インデックス付けの前に第2のタイミングウィンドウ内で前記データエントリアドレスの前記受け取られた少なくとも一部分を前記受け取られた少なくとも1つの不完全データエントリアドレスと比較するように構成され、前記データエントリアドレスの前記少なくとも一部分における前記第1のデータアクセス経路内の前記データアレイ内の前記データエントリは、第3のタイミングウィンドウ内の前記データエントリアドレスの前記受け取られた少なくとも一部分を表す、請求項12に記載のメモリ。
  14. 集積回路に統合された、請求項1に記載のメモリ。
  15. セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピューモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、携帯型音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および携帯型デジタルビデオプレーヤからなる群から選択されるデバイスに統合される、請求項1に記載のメモリ。
  16. 第1のデータアクセス経路手段内に設けられたメモリアクセス論理回路手段であって、
    前記第1のデータアクセス経路手段内でデータアレイ手段内のデータエントリ手段をアドレス指定するための入力としてメモリアクセス要求手段のデータエントリアドレス手段の少なくとも一部分を受け取り、
    前記データエントリアドレス手段の前記少なくとも一部分に対応する前記データアレイ手段内の前記データエントリ手段にアクセスする目的で前記データアレイ手段にインデックスを付けるために、データエントリアドレスインデックス手段を備える前記第1のデータアクセス経路手段内の出力としてインデックス手段を生成する
    ように構成されたメモリアクセス論理回路手段と、
    前記第1のデータアクセス経路手段とは別個の第2のデータアクセス経路手段内に設けられた不完全データエントリコンパレータ回路手段であって、前記データアレイ手段内の前記データエントリ手段にインデックスを付ける前に、
    第2のコンパレータ入力手段における前記データアレイ手段内の少なくとも1つの不完全データエントリアドレス手段を表す入力手段として、不完全データエントリインデックスレジスタ手段から、前記少なくとも1つの不完全データエントリアドレス手段を受け取り、
    前記データエントリアドレス手段の前記少なくとも一部分を、前記受け取られた少なくとも1つの不完全データエントリアドレス手段と比較し、
    前記データエントリアドレス手段の前記受け取られた少なくとも一部分が前記受け取られた少なくとも1つの不完全データエントリアドレス手段と一致する場合、前記データアレイ手段内の冗長データエントリ手段に対して、リダイレクションデータエントリアドレスインデックス手段を備える前記第2のデータアクセス経路手段内の出力としてリダイレクションインデックス手段を生成する
    ように構成された不完全データエントリコンパレータ回路手段と、
    前記データエントリアドレス手段の前記受け取られた少なくとも一部分が前記少なくとも1つの受け取られた不完全データエントリアドレス手段と一致する場合、前記データアレイ手段にインデックスを付けるために前記リダイレクションインデックス手段を選択するように構成されたデータエントリアドレスインデックスセレクタ手段と
    を備えるデータエントリリダイレクション回路手段と
    を備えるメモリ。
  17. データアレイ内の冗長データエントリに不完全データエントリをリダイレクトする方法であって、
    データアレイ内のデータエントリにインデックスを付けるために第1のデータアクセス経路および第2のデータアクセス経路内でメモリアクセス要求のデータエントリアドレスの少なくとも一部分を受け取るステップと、
    前記データエントリアドレスの前記少なくとも一部分を表すデータエントリインデックスにおいて前記第1のデータアクセス経路内の前記データアレイ内の前記データエントリにインデックスを付けるステップと、
    前記データエントリアドレスの前記少なくとも一部分における前記データエントリにインデックスを付ける前に、前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の不完全データエントリを表す不完全データエントリアドレスと比較するステップと、
    前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間の一致が生成される場合、前記データエントリインデックスとしてリダイレクションインデックスにおける前記データアレイ内の前記データエントリにインデックスを付けるステップと、
    前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間に前記一致が生成される場合、前記データエントリインデックスとして前記リダイレクションインデックスにおける前記データアレイ内の前記データエントリにアクセスするステップと
    を含む方法。
  18. 前記データエントリアドレスの前記少なくとも一部分が前記不完全データエントリアドレスに一致しない場合、前記データエントリインデックスとして前記データエントリインデックスにおける前記データアレイ内の前記データエントリにアクセスするステップをさらに含む、請求項17に記載の方法。
  19. 前記データアレイ内の前記データエントリにインデックスを付けるために前記第1のデータアクセス経路および前記第2のデータアクセス経路内で前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含み、前記データエントリアドレスの前記少なくとも一部分は、前記データアレイ内のデータエントリの少なくとも1つの行またはデータエントリの少なくとも1つの列を表す、請求項17に記載の方法。
  20. 前記データエントリアドレスの前記少なくとも一部分を、前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の前記不完全データエントリを表す前記不完全データエントリアドレスと比較するステップをさらに含み、前記不完全データエントリアドレスコンパレータ回路は、前記データエントリアドレスの前記受け取られた少なくとも一部分を、複数の比較段階内の前記不完全データエントリを表す前記不完全データエントリと比較するように構成される、請求項18に記載の方法。
  21. 第2のメモリアクセス要求のためのデータエントリアドレスの少なくとも一部分における前記データエントリにインデックスを付ける前に、前記データエントリアドレスの前記少なくとも一部分を、第2のデータアクセス経路内の前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の前記不完全データエントリを表す前記不完全データエントリアドレスと比較している間、前記データアレイ内の第2のデータエントリにインデックスを付けるために前記第1のデータアクセス経路および前記第2のデータアクセス経路内で前記データアレイ内の第2のデータエントリをアドレス指定するための第2の入力として、前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含む、請求項17に記載の方法。
  22. 前記比較によって、前記データエントリアドレスの前記少なくとも一部分と前記不完全データエントリアドレスとの間に前記一致が生成される場合、前記データエントリインデックスとして前記リダイレクションインデックスにおける前記データアレイ内の前記データエントリにアクセスしながら、前記第2のメモリアクセス要求のための前記データエントリアドレスの前記少なくとも一部分を、前記第2のデータアクセス経路内の前記不完全データエントリアドレスコンパレータ回路内の前記データアレイ内の第2の不完全データエントリを表す第2の不完全データエントリアドレスと比較するステップをさらに含む、請求項21に記載の方法。
  23. 前記データアレイ内の前記データエントリにインデックスを付けるために前記第1のデータアクセス経路内で前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含み、前記データアレイはキャッシュメモリである、請求項17に記載の方法。
  24. 前記データアレイ内の前記データエントリにインデックスを付けるために前記第1のデータアクセス経路内で前記データエントリアドレスの前記少なくとも一部分を受け取るステップをさらに含み、タグアレイは、前記データエントリアドレスの前記少なくとも一部分を受け取る、請求項21に記載の方法。
JP2016513011A 2013-05-08 2014-05-06 データアクセスの前のメモリ内の不完全データエントリから冗長データエントリへのデータのリダイレクトならびに関連するシステムおよび方法 Expired - Fee Related JP6138352B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361820945P 2013-05-08 2013-05-08
US61/820,945 2013-05-08
US14/017,760 US9442675B2 (en) 2013-05-08 2013-09-04 Redirecting data from a defective data entry in memory to a redundant data entry prior to data access, and related systems and methods
US14/017,760 2013-09-04
PCT/US2014/036936 WO2014182678A1 (en) 2013-05-08 2014-05-06 Redirecting data from a defective data entry in memory to a redundant data entry prior to data access, and related systems and methods

Publications (3)

Publication Number Publication Date
JP2016522936A true JP2016522936A (ja) 2016-08-04
JP2016522936A5 JP2016522936A5 (ja) 2017-01-05
JP6138352B2 JP6138352B2 (ja) 2017-05-31

Family

ID=51865701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016513011A Expired - Fee Related JP6138352B2 (ja) 2013-05-08 2014-05-06 データアクセスの前のメモリ内の不完全データエントリから冗長データエントリへのデータのリダイレクトならびに関連するシステムおよび方法

Country Status (5)

Country Link
US (1) US9442675B2 (ja)
EP (1) EP2994914B1 (ja)
JP (1) JP6138352B2 (ja)
CN (1) CN105229746B (ja)
WO (1) WO2014182678A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395748B2 (en) 2016-06-15 2019-08-27 Micron Technology, Inc. Shared error detection and correction memory
KR102468864B1 (ko) * 2016-07-05 2022-11-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 그 리페어 방법
US10713136B2 (en) * 2017-09-22 2020-07-14 Qualcomm Incorporated Memory repair enablement
US11237970B2 (en) * 2018-11-07 2022-02-01 Micron Technology, Inc. Reduce data traffic between cache and memory via data access of variable sizes
IT202000016441A1 (it) * 2020-07-07 2022-01-07 Sk Hynix Inc Comparatore di risorse di ridondanza per una architettura di bus, architettura di bus per un dispositivo di memoria che implementa un metodo migliorato di confronto e corrispondente metodo di confronto

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6177946A (ja) * 1984-09-26 1986-04-21 Hitachi Ltd 半導体記憶装置
JPH10333982A (ja) * 1997-04-29 1998-12-18 Texas Instr Inc <Ti> 2サイクルのキャッシュ・アクセスの間にメモリの行の冗長性を再マッピングするための回路、システム、および方法
US6192486B1 (en) * 1998-08-13 2001-02-20 International Business Machines Corporation Memory defect steering circuit
JP2009163854A (ja) * 2007-12-28 2009-07-23 Elpida Memory Inc 半導体記憶装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR880008330A (ko) 1986-12-30 1988-08-30 강진구 스테이틱 램의 프리차아지 시스템
JPH02244479A (ja) 1989-03-16 1990-09-28 Fujitsu Ltd 半導体メモリ装置
US5841712A (en) 1996-09-30 1998-11-24 Advanced Micro Devices, Inc. Dual comparator circuit and method for selecting between normal and redundant decode logic in a semiconductor memory device
US6324103B2 (en) 1998-11-11 2001-11-27 Hitachi, Ltd. Semiconductor integrated circuit device, memory module, storage device and the method for repairing semiconductor integrated circuit device
JP2001076489A (ja) 1999-09-07 2001-03-23 Toshiba Microelectronics Corp メモリ回路
JP2001319479A (ja) 2000-05-12 2001-11-16 Nec Corp メモリ装置
DE60230592D1 (de) 2002-05-21 2009-02-12 St Microelectronics Srl Selbstreparaturverfahren für nichtflüchtige Speicheranordnung mit Lösch-/Programmierfehlerdetektion, und nichtflüchtige Speicheranordnung dafür
EP1624463A1 (en) 2004-07-14 2006-02-08 STMicroelectronics S.r.l. A Programmable memory device with an improved redundancy structure
JP2007265589A (ja) 2006-03-30 2007-10-11 Fujitsu Ltd 不揮発性半導体メモリ
JP5101222B2 (ja) 2007-09-10 2012-12-19 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US7995409B2 (en) 2007-10-16 2011-08-09 S. Aqua Semiconductor, Llc Memory with independent access and precharge
US7788550B2 (en) * 2007-12-17 2010-08-31 Atmel Rousset S.A.S. Redundant bit patterns for column defects coding
US8977820B2 (en) 2007-12-21 2015-03-10 Arm Limited Handling of hard errors in a cache of a data processing apparatus
US7940599B2 (en) 2009-03-16 2011-05-10 Freescale Semiconductor, Inc. Dual port memory device
JP2011123970A (ja) 2009-12-14 2011-06-23 Renesas Electronics Corp 半導体記憶装置
US8279687B2 (en) 2010-05-13 2012-10-02 International Business Machines Corporation Single supply sub VDD bit-line precharge SRAM and method for level shifting
US8228749B2 (en) 2010-06-04 2012-07-24 Texas Instruments Incorporated Margin testing of static random access memory cells
US8351287B1 (en) 2010-12-22 2013-01-08 Lattice Semiconductor Corporation Bitline floating circuit for memory power reduction
US8472271B2 (en) 2011-02-18 2013-06-25 International Business Machines Corporation Systems and methods for memory device precharging
US9455021B2 (en) 2011-07-22 2016-09-27 Texas Instruments Incorporated Array power supply-based screening of static random access memory cells for bias temperature instability
US8824230B2 (en) 2011-09-30 2014-09-02 Qualcomm Incorporated Method and apparatus of reducing leakage power in multiple port SRAM memory cell

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6177946A (ja) * 1984-09-26 1986-04-21 Hitachi Ltd 半導体記憶装置
JPH10333982A (ja) * 1997-04-29 1998-12-18 Texas Instr Inc <Ti> 2サイクルのキャッシュ・アクセスの間にメモリの行の冗長性を再マッピングするための回路、システム、および方法
US6192486B1 (en) * 1998-08-13 2001-02-20 International Business Machines Corporation Memory defect steering circuit
JP2009163854A (ja) * 2007-12-28 2009-07-23 Elpida Memory Inc 半導体記憶装置

Also Published As

Publication number Publication date
WO2014182678A1 (en) 2014-11-13
EP2994914A1 (en) 2016-03-16
JP6138352B2 (ja) 2017-05-31
CN105229746A (zh) 2016-01-06
US9442675B2 (en) 2016-09-13
CN105229746B (zh) 2018-02-06
EP2994914B1 (en) 2019-10-16
US20140337573A1 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
KR102520152B1 (ko) 프로세서-기반 시스템들에서의 확장 dram(dynamic random access memory) 버스트 길이들의 제공
JP6138352B2 (ja) データアクセスの前のメモリ内の不完全データエントリから冗長データエントリへのデータのリダイレクトならびに関連するシステムおよび方法
JP5893632B2 (ja) ストリームトランザクション情報に基づいてページ管理ポリシーを適用するためのメモリコントローラ、システム、および方法
US6775759B2 (en) Sequential nibble burst ordering for data
US10592367B2 (en) Redundancy implementation using bytewise shifting
US10541044B2 (en) Providing efficient handling of memory array failures in processor-based systems
JP6005894B2 (ja) 漏れ電力を低減させるためのデータアクセスの前のスタティックランダムアクセスメモリ(sram)内のビット線のプリチャージならびに関連するシステムおよび方法
JP2016522936A5 (ja)
US8976618B1 (en) Decoded 2N-bit bitcells in memory for storing decoded bits, and related systems and methods
JP6377084B2 (ja) キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付け、ならびに関連するプロセッサベースのシステムおよび方法
US9653183B1 (en) Shared built-in self-analysis of memory systems employing a memory array tile architecture
US11194744B2 (en) In-line memory module (IMM) computing node with an embedded processor(s) to support local processing of memory-based operations for lower latency and reduced power consumption
US9830965B2 (en) Multiple-hot (multi-hot) bit decoding in a memory system for activating multiple memory locations in a memory for a memory access operation
US10156887B2 (en) Cache memory clock generation circuits for reducing power consumption and read errors in cache memory
US20230420017A1 (en) Computer memory arrays employing memory banks and integrated serializer/de-serializer circuits for supporting serialization/de-serialization of read/write data in burst read/write modes, and related methods
US9852080B2 (en) Efficiently generating selection masks for row selections within indexed address spaces
JP2010102764A (ja) メモリモジュール、該メモリモジュールに用いられる制御方法、及び電子装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161114

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161114

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170425

R150 Certificate of patent or registration of utility model

Ref document number: 6138352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees