JP2019520660A - 柔軟なアドレスデコード機能を備えるメモリコントローラ - Google Patents
柔軟なアドレスデコード機能を備えるメモリコントローラ Download PDFInfo
- Publication number
- JP2019520660A JP2019520660A JP2019500870A JP2019500870A JP2019520660A JP 2019520660 A JP2019520660 A JP 2019520660A JP 2019500870 A JP2019500870 A JP 2019500870A JP 2019500870 A JP2019500870 A JP 2019500870A JP 2019520660 A JP2019520660 A JP 2019520660A
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- decoder
- access
- area
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Dram (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
- Bus Control (AREA)
Abstract
Description
なお、ビット[7:0]は、256バイトのバイトアドレス指定を表すことに留意されたい。これらのビットは実装の便宜上切り捨てられ、ベースレジスタの場合に0、マスクレジスタの場合に1と推測される。
既知のメモリコントローラは、バンクアドレスを形成するために入力アドレスの特定のビットがデコードされるバンクスウィズルモードとして知られる追加のインターリーブモードを使用する。これらの特定のビットは、新たなバンク(又は、DDR4の場合には、バンク及びバンクグループの両方)のビットを生成するためのアクセスアドレスの特定のビット(例えば、下位の行アドレスビット等)を含む。このようにして、本来ページ競合を引き起こしていたであろう連続するアドレスのセットの異なる部分がバンク間で分割され、より高い効率をもたらす。
これにより、領域912,914は、0x0から0x0_FFFF_FFFFまでのアドレスに亘って双方向にインターリーブされ、アドレスビット12でCS0及びCS1の何れを使用するかが決まる。同様に、領域916,918も0x1_0000_0000から0x1_FFFF_FFFFまでのアドレスに亘って双方向にインターリーブされ、アドレスビット12でCS0及びCS1の何れを使用するかが決まる。
ここで、^は、XOR演算子を表し、^()は、ビット対の各々に対するビット毎のXOR演算子を表す。
ここで、CSビットに対応する標準化アドレスのビット自体を、CSビットのハッシュに使用することはできない。そうしないと、全てのCS_HASH値が強制的に0になるからである。これらのレジスタ値の設定に関する追加の制限について、さらに後述する。
この場合、メモリコントローラは、追加のハッシュ回路及び追加の構成レジスタを使用する。
Claims (34)
- メモリコントローラ(500)を有するデバイス(100,200)であって、
メモリコントローラ(500)は、
アクセスアドレスを含むメモリアクセス要求を受信するホストインタフェース(512)と、
メモリアクセスをメモリシステム(120)に提供するメモリインタフェース(514)と、
ハッシュ関数を使用して、前記アクセスアドレスを、複数の領域のうち選択された領域にプログラム可能にマッピングするために、前記ホストインタフェース(512)に接続されたアドレスデコーダ(522,610,1110)であって、複数のプログラム可能なビットに応じて、前記アクセスアドレスの対応する複数のビットのうち何れのビットが前記ハッシュ関数で使用されるかを決定し、第1の2のべき乗のサイズを有する一次デコーダ(720)と、第2の2のべき乗のサイズを有する二次デコーダ(730)とを使用して、前記アクセスアドレスを、非2のべき乗のサイズを有する第1領域にマッピングするようにプログラム可能である、アドレスデコーダ(522,610,1110)と、
前記メモリアクセス要求及び領域マッピング信号を記憶するために前記アドレスデコーダ(522,610,1110)に接続されたコマンドキュー(520)と、
前記領域マッピング信号に部分的に基づいて評価された複数の基準に基づいて、前記コマンドキュー(520)から前記メモリアクセス要求を選択し、これに応じて、対応するメモリアクセスを前記メモリインタフェース(514)に提供するするアービタ(538)と、を備える、
デバイス(100,200)。 - 前記アドレスデコーダ(1110)は、
前記ホストインタフェースに接続された入力と、ハッシュされたアドレスを有するアクセス要求を提供するための出力と、を有するハッシュ回路(1120)と、
前記ハッシュされたアドレスと、前記領域マッピング信号を提供するための出力と、に応答する非2のべき乗デコーダ回路(1130)と、を備える、
請求項1のデバイス(100,200)。 - 前記ハッシュ回路(1120)は、
前記アクセスアドレスと、少なくとも1つのプログラム可能なチップ選択ハッシュビットとに応じて、1つのハッシュされたチップ選択信号を各アクセス要求に関連付けるために前記アクセスアドレスのプログラム可能部分をハッシュするチップ選択ハッシュ回路(1012)と、
前記アクセスアドレスと、前記ハッシュされたチップ選択信号と、少なくとも1つのプログラム可能なバンクアドレスハッシュビットとに応じて、選択されたハッシュチップ選択に対応するチップ内の1つのバンクに各アクセス要求を関連付けるために前記アクセスアドレスのプログラム可能部分をハッシュするバンクアドレスハッシュ回路(1014)と、を備える、
請求項2のデバイス(100,200)。 - 前記非2のべき乗デコーダ回路(1130)は、複数の領域デコーダを備え、
領域デコーダ(710)毎に、
前記一次デコーダ(720)は、前記アクセスアドレスを受信し、一次領域選択信号を提供し、第1ベースアドレス及び第1の2のべき乗のサイズを有し、
前記二次デコーダ(730)は、前記アクセスアドレスを受信し、二次領域選択信号を提供し、第2ベースアドレス及び第2の2のべき乗のサイズを有し、
前記領域デコーダ(710)は、前記一次領域選択信号及び前記二次領域選択信号のうち少なくとも一方のアクティベートに応じて、対応する領域マッピング信号をアクティベートするための論理回路(740)をさらに備える、
請求項2のデバイス(100,200)。 - 前記第1領域は、2N+2(N−1)(Nは整数)のサイズを有し、
前記一次デコーダ(720)は、サイズ2Nのサブ領域をデコードし、
前記二次デコーダ(730)は、サイズ2(N−1)の領域をデコードする、
請求項4のデバイス(100,200)。 - 前記領域マッピング信号は、前記メモリシステム(120)のチップ選択信号に対応する、
請求項4のデバイス(100,200)。 - 前記非2のべき乗デコーダ回路(1130)は、前記アクセスアドレスをデコードして、行アドレス、列アドレス、バンクアドレス及びバンクグループを提供する、
請求項6のデバイス(100,200)。 - 前記デバイス(100,200)は、データ処理システム(100)であって、
前記アクセスアドレスを有するメモリアクセス要求を提供するためのメモリアクセスエージェント(110,210,220)と、
前記メモリアクセスに応答するメモリシステム(120)であって、少なくとも1つの非2のべき乗領域を含む複数の領域を有するメモリシステム(120)と、をさらに備える、
請求項1のデバイス(100,200)。 - 前記デバイス(200)は、単一の集積回路チップ上に形成されたマイクロプロセッサ(100)であって、
前記アクセスアドレスを有するメモリアクセス要求を提供するためのメモリアクセスエージェント(110,210,220)をさらに備える、
請求項1のデバイス(100,200)。 - メモリコントローラ(500)を有するデバイス(100,200)であって、
メモリコントローラ(500)は、
アクセスアドレスを含むメモリアクセス要求を受信するホストインタフェース(512)と、
メモリアクセスをメモリシステム(120)に提供するメモリインタフェース(514)と、
前記アクセスアドレスを、複数の領域のうち選択された領域にプログラム可能にマッピングするために、前記ホストインタフェース(512)に接続されたアドレスデコーダ(522,610)であって、第1の2のべき乗のサイズを有する一次デコーダ(720)と、第2の2のべき乗のサイズを有する二次デコーダ(730)とを使用して、前記アクセスアドレスを、非2のべき乗のサイズを有する第1領域にマッピングするようにプログラム可能であり、これに応じて第1領域マッピング信号を提供する、アドレスデコーダ(522,610)と、
前記メモリアクセス要求及び領域マッピング信号を記憶するために前記アドレスデコーダ(522,610)に接続されたコマンドキュー(520)と、
前記領域マッピング信号に部分的に基づいて評価された複数の基準に基づいて、前記コマンドキュー(520)から前記メモリアクセス要求を選択し、これに応じて、対応するメモリアクセスを前記メモリインタフェース(514)に提供するアービタ(538)と、を備える、
デバイス(100,200)。 - 前記領域マッピング信号は、前記メモリシステム(120)のチップ選択信号に対応する、
請求項10のデバイス(100,200)。 - 前記アドレスデコーダ(522/610)は、複数の領域デコーダを備え、
領域デコーダ(710)毎に、
前記一次デコーダ(720)は、前記アクセスアドレスを受信し、一次領域選択信号を提供し、第1ベースアドレス及び第1の2のべき乗のサイズを有し、
前記二次デコーダ(730)は、前記アクセスアドレスを受信し、二次領域選択信号を提供し、第2ベースアドレス及び第2の2のべき乗のサイズを有し、
前記領域デコーダ(710)は、前記一次領域選択信号及び前記二次領域選択信号のうち少なくとも一方のアクティベートに応じて、対応する領域マッピング信号をアクティベートするための論理回路(740)をさらに備える、
請求項10のデバイス(100,200)。 - 前記第1領域は、2N+2(N−1)(Nは整数)のサイズを有し、
前記一次デコーダ(720)は、サイズ2Nのサブ領域をデコードし、
前記二次デコーダ(730)は、サイズ2(N−1)の領域をデコードする、
請求項12のデバイス(100,200)。 - 前記アドレスデコーダ(522,700)は、前記アクセスアドレスをデコードして、行アドレス、列アドレス、バンクアドレス及びバンクグループを提供する、
請求項12のデバイス(100,200)。 - 各領域デコーダ(710)は、
前記一次デコーダ(720)に関連する第1構成レジスタのセット(750)と、
前記二次デコーダ(730)に関連する第2構成レジスタのセット(760)と、をさらに備える、
請求項12のデバイス(100,200)。 - 第3の2のべき乗のサイズを有する第1の一次デコーダ(720)と、前記第3の2のべき乗のサイズを有する第1の二次デコーダ(730)とを使用して、前記アクセスアドレスを、2のべき乗のサイズを有する第1領域(920)に選択的にマッピングし、これに応じて前記第1領域マッピング信号を提供する第1領域デコーダ(710,CS0)と、
前記第3の2のべき乗のサイズを有する第2の一次デコーダ(720)と、前記第3の2のべき乗のサイズを有する第2の二次デコーダ(730)とを使用して、前記アクセスアドレスを、2のべき乗のサイズを有する第2領域(930)に選択的にマッピングし、これに応じて第2領域マッピング信号を提供する第2領域デコーダ(710,CS1)と、をさらに備え、
前記メモリコントローラ(500)は、前記第1の一次デコーダ(720)と、前記第2の一次デコーダ(720)と、前記第1の二次デコーダ(730)と、前記第2の二次デコーダ(730)と、の各々の間で、前記アクセスアドレスに対応するメモリ空間をインターリーブする、
請求項10のデバイス(100,200)。 - 前記デバイス(100,200)は、データ処理システム(100)であって、
前記アクセスアドレスを有するメモリアクセス要求を提供するためのメモリアクセスエージェント(110,210,220)と、
前記メモリアクセスに応答するメモリシステム(120)であって、少なくとも1つの非2のべき乗領域を含む複数の領域を有するメモリシステム(120)と、をさらに備える、
請求項10のデバイス(100,200)。 - 前記デバイス(200)は、単一の集積回路チップ上に形成されたマイクロプロセッサ(100)であって、
前記アクセスアドレスを有するメモリアクセス要求を提供するためのメモリアクセスエージェント(110,210,220)をさらに備える、
請求項10のデバイス(100,200)。 - メモリコントローラ(500)を有するデバイス(100,200)であって、
メモリコントローラ(500)は、
アクセスアドレスを含むメモリアクセス要求を受信するホストインタフェース(512)と、
ハッシュされたアドレスを含むメモリアクセスをメモリシステム(120)に提供するメモリインタフェース(514)と、
ハッシュ関数を使用して、前記アクセスアドレスを、前記メモリシステム(120)の複数の領域のうち選択された領域にプログラム可能にマッピングするために、前記ホストインタフェース(512)に接続されたアドレスデコーダ(522,1010)であって、複数のプログラム可能なビットに応じて、前記アクセスアドレスの対応する複数のビットのうち何れのビットが前記ハッシュ関数で使用されるかを決定するアドレスデコーダ(522,1010)と、
前記ハッシュされたアドレスを含むメモリアクセス要求を記憶するために前記アドレスデコーダ(522,1010)に接続されたコマンドキュー(520)と、
複数の基準に基づいて前記コマンドキュー(520)から前記メモリアクセス要求を選択し、これに応じて、前記ハッシュされたアドレスを含む対応するメモリアクセスを前記メモリインタフェース(514)に提供するアービタ(538)と、を備える、
デバイス(100,200)。 - 前記アドレスデコーダ(522,1010)は、
前記アクセスアドレスと、少なくとも1つのプログラム可能なチップ選択ハッシュビットとに応じて、1つのハッシュされたチップ選択信号を各アクセス要求に関連付けるために前記アクセスアドレスのプログラム可能部分をハッシュするチップ選択ハッシュ回路(1012)と、
前記アクセスアドレスと、前記ハッシュされたチップ選択信号と、少なくとも1つのプログラム可能なバンクアドレスハッシュビットとに応じて、選択されたハッシュチップ選択に対応するチップ内の1つのバンクに各アクセス要求を関連付けるために前記アクセスアドレスのプログラム可能部分をハッシュするバンクアドレスハッシュ回路(1014)と、を備える、
請求項19のデバイス(100,200)。 - 符号化されたチップ選択信号のビットにそれぞれ対応し、前記アクセスアドレスのビットにそれぞれ対応する複数のビットを記憶し、対応するビットが前記ハッシュ関数の一部を形成するか否かを定義する複数のチップ選択構成レジスタ(1020)をさらに備える、
請求項20のデバイス(100,200)。 - 前記チップ選択ハッシュ回路(1012)は、前記符号化されたチップ選択信号のビット毎に、前記複数のチップ選択構成レジスタ(1020)のうち対応するレジスタ内のビットによって指示された前記アクセスアドレスの複数のビットの各々との間で排他的OR演算を実行する、
請求項21のデバイス(100,200)。 - 符号化されたバンクアドレス信号のビットにそれぞれ対応し、前記アクセスアドレスのビットにそれぞれ対応する複数のビットを記憶し、前記アクセスアドレスの対応するビットが前記ハッシュ関数で使用されるか否かを定義する複数のバンクアドレス構成レジスタ(1030)をさらに備える、
請求項20のデバイス(100,200)。 - 前記バンクアドレスハッシュ回路(1014)は、前記符号化されたバンク信号のビット毎に、前記複数のバンクアドレス構成レジスタ(1030)のうち対応するレジスタ内のビットによって指示された前記アクセスアドレスの複数のビットの各々との間で排他的OR演算を実行する、
請求項23のデバイス(100,200)。 - 前記デバイス(100,200)は、データ処理システム(100)であって、
前記アクセスアドレスを有するメモリアクセス要求を提供するためのメモリアクセスエージェント(110,210,220)と、
前記メモリアクセスに応答するメモリシステム(120)であって、少なくとも1つの非2のべき乗領域を含む複数の領域を有するメモリシステム(120)と、をさらに備える、
請求項19のデバイス(100,200)。 - 前記デバイス(200)は、単一の集積回路チップ上に形成されたマイクロプロセッサ(100)であって、
前記アクセスアドレスを有するメモリアクセス要求を提供するためのメモリアクセスエージェント(110,210,220)をさらに備える、
請求項19のデバイス(100,200)。 - アクセスアドレスを含むメモリアクセス要求を受信することと、
前記アクセスアドレスをデコードし、これに応じて、対応する領域マッピング信号を提供することであって、前記デコードすることは、第1の2のべき乗のサイズを有する第1の一次デコーダ(720)と、第2の2のべき乗のサイズを有する第1の二次デコーダ(730)とを使用して、前記アクセスアドレスを、非2のべき乗のサイズを有する第1領域に選択的にマッピングすることを含む、ことと、
前記アクセスアドレスを前記第1領域にマッピングすることに応じて、第1領域マッピング信号を提供することと、
前記メモリアクセス要求及び領域マッピング信号を記憶することと、
記憶された前記メモリアクセス要求を、前記領域マッピング信号に部分的に基づいて評価された複数の基準に基づいて選択することと、
選択されたメモリアクセス要求に応じて、対応するメモリアクセスを提供することと、を含む、
方法。 - 前記選択されたメモリアクセス要求の前記領域マッピング信号に応じて、複数のチップ選択信号のうち選択されたチップ選択信号をアクティベートすることをさらに含む、
請求項27の方法。 - 前記デコードすることは、
第1アクセスアドレスが、第1ベースアドレス及び前記第1の2のべき乗のサイズによって定義された第1サブ領域内に存在する場合に、前記第1アクセスアドレスをデコードして一次領域選択信号を提供することと、
前記第1アクセスアドレスが、第2ベースアドレス及び前記第2の2のべき乗のサイズによって定義された第2サブ領域内に存在する場合に、前記第1アクセスアドレスをデコードして二次領域選択信号を提供することと、
前記一次領域選択信号及び前記二次領域選択信号のうち少なくとも一方のアクティベートに応じて、対応する領域マッピング信号をアクティベートすることと、を含む、
請求項27の方法。 - 前記第1アクセスアドレスをデコードして一次領域選択信号を提供すること、及び、前記第1アクセスアドレスをデコードして二次領域選択信号を提供すること、の各々は、
前記第1アクセスアドレスをデコードして行アドレス、列アドレス、バンクアドレス及びバンクグループを提供することを含む、
請求項29の方法。 - 第3の2のべき乗のサイズを有する前記第1の一次デコーダ(720)と、前記第3の2のべき乗のサイズを有する前記第1の二次デコーダ(730)とを使用して、前記アクセスアドレスを、2のべき乗のサイズを有する前記第1領域(920)に選択的にマッピングし、これに応じて第1領域マッピング信号を提供することと、
前記第3の2のべき乗のサイズを有する第2の一次デコーダ(720)と、前記第3の2のべき乗のサイズを有する第2の二次デコーダ(730)とを使用して、前記アクセスアドレスを、2のべき乗のサイズを有する第2領域(930)に選択的にマッピングし、これに応じて第2領域マッピング信号を提供することと、をさらに含み、
前記アクセスアドレスを前記第1領域(920)に選択的にマッピングすること、及び、前記アクセスアドレスを前記第2領域(930)に選択的にマッピングすること、の各々は、前記第1の一次デコーダ(720)と、前記第2の一次デコーダ(720)と、前記第1の二次デコーダ(730)と、前記第2の二次デコーダ(730)と、の間で、前記アクセスアドレスに対応するメモリ空間(910)をインターリーブすることを含む、
請求項27の方法。 - 前記デコードすることは、
複数のプログラム可能なビットに応じて、前記アクセスアドレスの対応する複数のビットのうち何れのビットがハッシュ関数で使用されるかを決定し、前記ハッシュ関数を使用して前記アクセスアドレスを選択的にハッシュすることをさらに含む、
請求項27の方法。 - アクセスアドレスを含むメモリアクセス要求を受信することと、
前記アクセスアドレスをデコードし、これに応じて、対応する領域マッピング信号を提供することであって、前記デコードすることは、複数のプログラム可能なビットに応じて、前記アクセスアドレスの対応する複数のビットのうち何れのビットがハッシュ関数で使用されるかを決定し、ハッシュ関数を使用して前記アクセスアドレスを選択的にハッシュすることを含む、ことと、
前記デコードすることに応じて、前記領域マッピング信号を提供することと、
前記メモリアクセス要求及び前記領域マッピング信号を記憶することと、
記憶された前記メモリアクセス要求を、前記領域マッピング信号に部分的に基づいて評価された複数の基準に基づいて選択することと、
選択されたメモリアクセス要求に応じて、対応するメモリアクセスを提供することと、を含む、
方法。 - 前記アクセスアドレスと、1つのハッシュされたチップ選択信号を各アクセス要求に関連付けるための少なくとも1つのプログラム可能なビットと、に応じて前記アクセスアドレスのプログラム可能部分をハッシュすることと、
前記アクセスアドレスと、前記ハッシュされたチップ選択信号と、選択されたハッシュチップ選択に対応するチップ内の1つのバンクに各アクセス要求を関連付けるための少なくとも1つのプログラム可能なビットと、に応じて前記アクセスアドレスのプログラム可能部分をハッシュすることと、をさらに含む、
請求項33の方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/211,887 US10403333B2 (en) | 2016-07-15 | 2016-07-15 | Memory controller with flexible address decoding |
| US15/211,887 | 2016-07-15 | ||
| PCT/US2016/053358 WO2018013158A1 (en) | 2016-07-15 | 2016-09-23 | Memory controller with flexible address decoding |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2019520660A true JP2019520660A (ja) | 2019-07-18 |
| JP2019520660A5 JP2019520660A5 (ja) | 2019-10-24 |
| JP6761891B2 JP6761891B2 (ja) | 2020-09-30 |
Family
ID=60940724
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019500870A Active JP6761891B2 (ja) | 2016-07-15 | 2016-09-23 | 柔軟なアドレスデコード機能を備えるメモリコントローラ |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US10403333B2 (ja) |
| EP (1) | EP3485383B1 (ja) |
| JP (1) | JP6761891B2 (ja) |
| KR (1) | KR102719994B1 (ja) |
| CN (1) | CN109478169B (ja) |
| WO (1) | WO2018013158A1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022510970A (ja) * | 2018-12-03 | 2022-01-28 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 2の非累乗のメモリ構成 |
| JP7168731B1 (ja) | 2021-07-19 | 2022-11-09 | Necプラットフォームズ株式会社 | メモリアクセス制御装置、メモリアクセス制御方法、及び、メモリアクセス制御プログラム |
| JP2024512623A (ja) * | 2021-03-31 | 2024-03-19 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マルチキューメモリコントローラのためのクレジット方式 |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018094620A1 (zh) * | 2016-11-23 | 2018-05-31 | 华为技术有限公司 | 一种内存分配方法和设备 |
| US11082523B2 (en) * | 2017-02-09 | 2021-08-03 | International Business Machines Corporation | System, method and computer program product for a distributed virtual address space |
| IT201800002895A1 (it) * | 2018-02-21 | 2019-08-21 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
| KR102583448B1 (ko) * | 2018-04-10 | 2023-09-27 | 에스케이하이닉스 주식회사 | 온도 관리를 위해 주소를 제어하는 반도체 메모리 장치 |
| US11194382B2 (en) * | 2018-10-16 | 2021-12-07 | Advanced Micro Devices, Inc. | Speculative exit from power down mode of a dynamic random access memory rank |
| KR102849285B1 (ko) | 2019-09-20 | 2025-08-25 | 삼성전자주식회사 | 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템 |
| US11403217B2 (en) * | 2019-10-30 | 2022-08-02 | Qualcomm Incorporated | Memory bank group interleaving |
| US11537319B2 (en) | 2019-12-11 | 2022-12-27 | Advanced Micro Devices, Inc. | Content addressable memory with sub-field minimum and maximum clamping |
| US11561862B2 (en) | 2020-05-29 | 2023-01-24 | Advanced Micro Devices, Inc. | Refresh management for DRAM |
| CN112286844B (zh) * | 2020-10-30 | 2022-09-02 | 烽火通信科技股份有限公司 | 一种可适配业务地址映射的ddr4控制方法及装置 |
| CN115132245A (zh) * | 2021-03-29 | 2022-09-30 | 富联国基(上海)电子有限公司 | 级联前端控制器的寻址装置及上行发送功率确定方法 |
| US11693585B2 (en) | 2021-04-26 | 2023-07-04 | Apple Inc. | Address hashing in a multiple memory controller system |
| US12236130B2 (en) | 2021-04-26 | 2025-02-25 | Apple Inc. | Address hashing in a multiple memory controller system |
| US11972140B2 (en) | 2021-04-26 | 2024-04-30 | Apple Inc. | Hashing with soft memory folding |
| CN113312277B (zh) * | 2021-06-29 | 2024-06-25 | 合肥忆芯电子科技有限公司 | 存储体地址映射装置、方法及电子设备 |
| US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
| US12386735B2 (en) * | 2021-09-22 | 2025-08-12 | Intel Corporation | Software driven dynamic memory allocation and address mapping for disaggregated memory pool |
| US12117945B2 (en) | 2022-06-24 | 2024-10-15 | Advanced Micro Devices, Inc. | Memory controller with pseudo-channel support |
| CN116049047B (zh) * | 2022-12-30 | 2024-04-12 | 成都电科星拓科技有限公司 | 一种eeprom访问方法 |
| WO2024196846A1 (en) * | 2023-03-21 | 2024-09-26 | Qualcomm Incorporated | System memory address decoding for interleaving addresses across physical regions of a system-on-chip (soc) and across shared memory resources in a processor-based system |
| US12380019B2 (en) | 2023-03-21 | 2025-08-05 | Qualcomm Incorporated | System memory address decoding for interleaving addresses across physical regions of a system-on-chip (SOC) and across shared memory resources in a processor-based system |
| CN116700631B (zh) * | 2023-08-03 | 2023-09-29 | 摩尔线程智能科技(北京)有限责任公司 | 任务管理装置、方法、图形处理器及电子设备 |
| US12504878B1 (en) * | 2023-11-07 | 2025-12-23 | Google Llc | Mechanism for efficient accessing to memory controllers with non-power-of-two sized memory |
| US20250348235A1 (en) * | 2024-05-09 | 2025-11-13 | Qualcomm Incorporated | Slice-based memory channel power control |
| CN118571297B (zh) * | 2024-07-17 | 2024-10-29 | 深圳鲲云信息科技有限公司 | 一种存储电路的验证方法及计算设备 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02128398A (ja) * | 1988-10-28 | 1990-05-16 | Internatl Business Mach Corp <Ibm> | 2段アドレス・デコーダ回路 |
| JPH0684370A (ja) * | 1992-09-01 | 1994-03-25 | Nec Corp | 半導体スタティック・メモリ |
| JPH0773676A (ja) * | 1993-07-15 | 1995-03-17 | Sun Microsyst Inc | 半導体メモリ回路、そのドライバ回路及びメモリの行選択方法 |
| JP2006268905A (ja) * | 2005-03-22 | 2006-10-05 | Matsushita Electric Ind Co Ltd | 半導体記憶回路、半導体記憶回路の構成方法、及び、半導体記憶回路のレイアウト生成方法 |
| US20090006718A1 (en) * | 2007-06-26 | 2009-01-01 | International Business Machines Corporation | System and method for programmable bank selection for banked memory subsystems |
| JP2009015832A (ja) * | 2007-06-07 | 2009-01-22 | Renesas Technology Corp | アクセス間調停回路、半導体装置およびアクセス間調停方法 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5142672A (en) * | 1987-12-15 | 1992-08-25 | Advanced Micro Devices, Inc. | Data transfer controller incorporating direct memory access channels and address mapped input/output windows |
| US5748939A (en) * | 1993-06-30 | 1998-05-05 | Intel Corporation | Memory device with a central control bus and a control access register for translating an access request into an access cycle on the central control bus |
| JP3713312B2 (ja) * | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
| US5764963A (en) * | 1995-07-07 | 1998-06-09 | Rambus, Inc. | Method and apparatus for performing maskable multiple color block writes |
| US7318114B1 (en) | 2004-10-29 | 2008-01-08 | Sun Microsystems, Inc. | System and method for dynamic memory interleaving and de-interleaving |
| US7480781B2 (en) | 2004-12-30 | 2009-01-20 | Intel Corporation | Apparatus and method to merge and align data from distributed memory controllers |
| US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
| US7620793B1 (en) * | 2006-08-28 | 2009-11-17 | Nvidia Corporation | Mapping memory partitions to virtual memory pages |
| JP5018074B2 (ja) * | 2006-12-22 | 2012-09-05 | 富士通セミコンダクター株式会社 | メモリ装置,メモリコントローラ及びメモリシステム |
| US8438320B2 (en) * | 2007-06-25 | 2013-05-07 | Sonics, Inc. | Various methods and apparatus for address tiling and channel interleaving throughout the integrated system |
| US7813212B2 (en) * | 2008-01-17 | 2010-10-12 | Mosaid Technologies Incorporated | Nonvolatile memory having non-power of two memory capacity |
| US20120137090A1 (en) * | 2010-11-29 | 2012-05-31 | Sukalpa Biswas | Programmable Interleave Select in Memory Controller |
| US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
| US9141541B2 (en) | 2013-09-20 | 2015-09-22 | Advanced Micro Devices, Inc. | Nested channel address interleaving |
| US9213600B2 (en) | 2013-11-11 | 2015-12-15 | Seagate Technology Llc | Dynamic per-decoder control of log likelihood ratio and decoding parameters |
| US9293188B2 (en) * | 2014-02-03 | 2016-03-22 | Advanced Micro Devices, Inc. | Memory and memory controller for high reliability operation and method |
-
2016
- 2016-07-15 US US15/211,887 patent/US10403333B2/en active Active
- 2016-09-23 KR KR1020197002561A patent/KR102719994B1/ko active Active
- 2016-09-23 EP EP16909049.5A patent/EP3485383B1/en active Active
- 2016-09-23 WO PCT/US2016/053358 patent/WO2018013158A1/en not_active Ceased
- 2016-09-23 CN CN201680087529.9A patent/CN109478169B/zh active Active
- 2016-09-23 JP JP2019500870A patent/JP6761891B2/ja active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02128398A (ja) * | 1988-10-28 | 1990-05-16 | Internatl Business Mach Corp <Ibm> | 2段アドレス・デコーダ回路 |
| JPH0684370A (ja) * | 1992-09-01 | 1994-03-25 | Nec Corp | 半導体スタティック・メモリ |
| JPH0773676A (ja) * | 1993-07-15 | 1995-03-17 | Sun Microsyst Inc | 半導体メモリ回路、そのドライバ回路及びメモリの行選択方法 |
| JP2006268905A (ja) * | 2005-03-22 | 2006-10-05 | Matsushita Electric Ind Co Ltd | 半導体記憶回路、半導体記憶回路の構成方法、及び、半導体記憶回路のレイアウト生成方法 |
| JP2009015832A (ja) * | 2007-06-07 | 2009-01-22 | Renesas Technology Corp | アクセス間調停回路、半導体装置およびアクセス間調停方法 |
| US20090006718A1 (en) * | 2007-06-26 | 2009-01-01 | International Business Machines Corporation | System and method for programmable bank selection for banked memory subsystems |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022510970A (ja) * | 2018-12-03 | 2022-01-28 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 2の非累乗のメモリ構成 |
| JP7187698B2 (ja) | 2018-12-03 | 2022-12-12 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 2の非累乗のメモリ構成 |
| JP2024512623A (ja) * | 2021-03-31 | 2024-03-19 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マルチキューメモリコントローラのためのクレジット方式 |
| JP7657963B2 (ja) | 2021-03-31 | 2025-04-07 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マルチキューメモリコントローラのためのクレジット方式 |
| JP7168731B1 (ja) | 2021-07-19 | 2022-11-09 | Necプラットフォームズ株式会社 | メモリアクセス制御装置、メモリアクセス制御方法、及び、メモリアクセス制御プログラム |
| JP2023014466A (ja) * | 2021-07-19 | 2023-01-31 | Necプラットフォームズ株式会社 | メモリアクセス制御装置、メモリアクセス制御方法、及び、メモリアクセス制御プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102719994B1 (ko) | 2024-10-22 |
| CN109478169A (zh) | 2019-03-15 |
| WO2018013158A1 (en) | 2018-01-18 |
| US20180019006A1 (en) | 2018-01-18 |
| EP3485383B1 (en) | 2025-04-02 |
| EP3485383A1 (en) | 2019-05-22 |
| JP6761891B2 (ja) | 2020-09-30 |
| CN109478169B (zh) | 2023-07-28 |
| EP3485383A4 (en) | 2020-04-22 |
| US10403333B2 (en) | 2019-09-03 |
| KR20190019200A (ko) | 2019-02-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6761891B2 (ja) | 柔軟なアドレスデコード機能を備えるメモリコントローラ | |
| JP6730453B2 (ja) | 細かい粒度のリフレッシュ | |
| JP6761873B2 (ja) | セルフリフレッシュステートマシンmopアレイ | |
| CN109564556B (zh) | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 | |
| JP6840145B2 (ja) | 高速メモリインタフェースのためのコマンドアービトレーション | |
| JP6761870B2 (ja) | 低電力メモリのスロットリング | |
| KR102370477B1 (ko) | 가상 컨트롤러 모드를 가진 메모리 컨트롤러 | |
| US20230031595A1 (en) | Memory controller with a plurality of command sub-queues and corresponding arbiters | |
| EP3270294B1 (en) | Command arbitration for high-speed memory interfaces | |
| EP3270295A1 (en) | Memory controller with virtual controller mode |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190408 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190912 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190912 |
|
| 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: 20200811 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200907 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6761891 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |