JP6840145B2 - 高速メモリインタフェースのためのコマンドアービトレーション - Google Patents
高速メモリインタフェースのためのコマンドアービトレーション Download PDFInfo
- Publication number
- JP6840145B2 JP6840145B2 JP2018524749A JP2018524749A JP6840145B2 JP 6840145 B2 JP6840145 B2 JP 6840145B2 JP 2018524749 A JP2018524749 A JP 2018524749A JP 2018524749 A JP2018524749 A JP 2018524749A JP 6840145 B2 JP6840145 B2 JP 6840145B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- sub
- arbitration
- arbiter
- controller
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 267
- 238000012545 processing Methods 0.000 claims description 27
- 239000004744 fabric Substances 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 2
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 2
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
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)
- Bus Control (AREA)
- Memory System (AREA)
- Dram (AREA)
- Read Only Memory (AREA)
Description
Claims (14)
- メモリコントローラ(500)であって、
メモリアクセス要求を受信し、記憶するコマンドキュー(520)と、
コントローラサイクル中に前記メモリアクセス要求の中から対応する複数のサブアービトレーション勝者を提供する複数のサブアービタ(605)と、複数のメモリコマンドをメモリに提供するために、対応するコントローラサイクルにおいて前記複数のサブアービトレーション勝者の中から複数の最終アービトレーション勝者を選択する最終アービタ(650)と、を備えるアービタ(538)と、を備え、
メモリコマンドサイクルは前記対応するコントローラサイクルよりも短く、
前記メモリコントローラは、前記最終アービタによって選択された前記複数の最終アービトレーション勝者を前記複数のメモリコマンドとして、対応するメモリコマンドサイクルで前記メモリに提供する、
メモリコントローラ(500)。 - 前記コントローラサイクルは、コントローラクロック信号によって定義され、
前記メモリコマンドサイクルは、メモリクロック信号によって定義され、
前記メモリクロック信号は、前記コントローラクロック信号よりも高い周波数を有する、
請求項1のメモリコントローラ(500)。 - 前記複数のサブアービタ(605)は、
前記コマンドキュー(520)に接続された第1サブアービタ(610)であって、コントローラクロック信号に同期して、前記コマンドキュー(520)内のアクティブエントリの中から第1サブアービトレーション勝者を決定する第1サブアービタ(610)と、
前記コマンドキュー(520)に接続された第2サブアービタ(620)であって、前記コントローラクロック信号に同期して、前記コマンドキュー(520)内の前記アクティブエントリの中から前記第1サブアービトレーション勝者とは異なる第2サブアービトレーション勝者を決定する第2サブアービタ(620)と、を備え、
前記メモリコントローラ(500)は、メモリクロック信号の第1サイクルにおいて前記第1サブアービトレーション勝者を第1メモリコマンドとして出力し、前記メモリクロック信号の後続のサイクルにおいて前記第2サブアービトレーション勝者を第2メモリコマンドとして出力するように動作し、前記メモリクロック信号の周波数は、前記コントローラクロック信号の周波数よりも高い、
請求項1のメモリコントローラ(500)。 - 前記複数のサブアービタ(605)は、
前記コマンドキュー(520)に接続された第3サブアービタ(630)であって、前記コントローラクロック信号に同期して、前記コマンドキュー(520)内のアクティブエントリの中から第3サブアービトレーション勝者を決定する第3サブアービタ(630)を備える、
請求項3のメモリコントローラ(500)。 - 前記最終アービタ(650)は、
前記第1サブアービトレーション勝者、前記第2サブアービトレーション勝者及び前記第3サブアービトレーション勝者の中から2つの最終アービトレーション勝者を選択し、前記2つの最終アービトレーション勝者を前記第1メモリコマンド及び前記第2メモリコマンドとして提供する、
請求項4のメモリコントローラ(500)。 - 前記複数のサブアービタ(605)は、前記第1サブアービタ(610)、前記第2サブアービタ(620)及び前記第3サブアービタ(630)のうち何れかと同じタイプの少なくとも1つの他のサブアービタを備え、
前記最終アービタ(650)は、前記対応するコントローラサイクルにおいて前記複数のサブアービタ(605)の中から前記同じタイプの2つのサブアービタからの2つの最終アービトレーション勝者を選択する、
請求項5のメモリコントローラ(500)。 - 前記第1サブアービタ(610)は、前記コマンドキュー(520)内のページヒットメモリアクセス要求から前記第1サブアービトレーション勝者を選択し、
前記第2サブアービタ(620)は、前記コマンドキュー(520)内のページ競合メモリアクセス要求から前記第2サブアービトレーション勝者を選択し、
前記第3サブアービタ(630)は、前記コマンドキュー(520)内のページミスメモリアクセス要求から前記第3サブアービトレーション勝者を選択する、
請求項4のメモリコントローラ(500)。 - 前記複数のサブアービタ(605)の各々は、前記コマンドキュー(520)内の関連するタイプのメモリアクセス要求の中からサブアービトレーション勝者を選択し、
前記複数のサブアービタ(605)のうち少なくとも2つは、同じタイプのサブアービトレーション勝者を選択し、
前記アービタ(538)は、前記対応するコントローラサイクルにおいて前記複数のサブアービトレーション勝者の中から前記同じタイプの2つの最終アービトレーション勝者を選択する、
請求項1のメモリコントローラ(500)。 - メモリアクセス要求を提供するメモリアクセスエージェント(110,210,220)と、
メモリシステム(120)と、
請求項1〜8の何れかのメモリコントローラと、を備える、
データ処理システム(100)。 - 前記メモリアクセスエージェントは、
中央処理ユニットコア(212,214)と、
グラフィックス処理ユニットコア(220)と、
前記中央処理ユニットコア(212,214)及び前記グラフィックス処理ユニットコア(220)を前記メモリコントローラ(500)に相互接続するデータファブリック(250)と、を備える、
請求項9のデータ処理システム(100)。 - メモリコントローラによって用いられる方法であって、
複数のメモリアクセス要求を受信することと、
前記複数のメモリアクセス要求をコマンドキュー(520)に記憶することと、
前記コマンドキュー(520)からメモリアクセス要求を選択することであって、第1コントローラサイクル中に前記メモリアクセス要求の中からそれぞれのサブアービトレーションの複数のサブアービトレーション勝者を選択することと、複数の最終アービトレーション勝者に対応する複数のメモリコマンドをメモリに提供するために、対応するコントローラサイクルにおいて前記複数のサブアービトレーション勝者の中から前記複数の最終アービトレーション勝者を選択することとを含む、ことと、を含み、
メモリコマンドサイクルは前記対応するコントローラサイクルよりも短い、
方法。 - 前記複数のサブアービトレーション勝者を選択することは、
前記コマンドキュー(520)内のページヒットコマンドから第1サブアービトレーション勝者を選択することと、
前記コマンドキュー(520)内のページ競合コマンドから第2サブアービトレーション勝者を選択することと、
前記コマンドキュー(520)内のページミスコマンドから第3サブアービトレーション勝者を選択することと、を含む、
請求項11の方法。 - 前記コマンドキュー内の前記ページヒットコマンド、前記ページ競合コマンド及び前記ページミスコマンドのうち何れかから第4サブアービトレーション勝者を選択することと、
前記第1コントローラサイクルにおいて、前記第1サブアービトレーション勝者、前記第2サブアービトレーション勝者、前記第3サブアービトレーション勝者及び前記第4サブアービトレーション勝者の中から同じタイプの2つの最終アービトレーション勝者を選択することと、を含む、
請求項12の方法。 - 対応するコントローラサイクルにおいて第2の複数のメモリコマンドを前記メモリに提供するために、前記複数のサブアービトレーション勝者の中から何れかとオーバヘッドコマンドとを選択することを含む、
請求項11の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/211,815 | 2016-07-15 | ||
US15/211,815 US10684969B2 (en) | 2016-07-15 | 2016-07-15 | Command arbitration for high speed memory interfaces |
PCT/US2016/053131 WO2018013157A1 (en) | 2016-07-15 | 2016-09-22 | Command arbitration for high speed memory interfaces |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019525271A JP2019525271A (ja) | 2019-09-05 |
JP2019525271A5 JP2019525271A5 (ja) | 2019-11-07 |
JP6840145B2 true JP6840145B2 (ja) | 2021-03-10 |
Family
ID=60940659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018524749A Active JP6840145B2 (ja) | 2016-07-15 | 2016-09-22 | 高速メモリインタフェースのためのコマンドアービトレーション |
Country Status (5)
Country | Link |
---|---|
US (1) | US10684969B2 (ja) |
JP (1) | JP6840145B2 (ja) |
KR (1) | KR102442078B1 (ja) |
CN (1) | CN107924375B (ja) |
WO (1) | WO2018013157A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037150B2 (en) * | 2016-07-15 | 2018-07-31 | Advanced Micro Devices, Inc. | Memory controller with virtual controller mode |
CN110729006B (zh) * | 2018-07-16 | 2022-07-05 | 超威半导体(上海)有限公司 | 存储器控制器中的刷新方案 |
US11126375B2 (en) * | 2019-07-18 | 2021-09-21 | Micron Technology, Inc. | Arbiter circuit for commands from multiple physical functions in a memory sub-system |
US11200106B2 (en) * | 2019-08-12 | 2021-12-14 | Advanced Micro Devices, Inc. | Data integrity for persistent memory systems and the like |
US20210200695A1 (en) * | 2019-12-27 | 2021-07-01 | Advanced Micro Devices, Inc. | Staging memory access requests |
US12056065B2 (en) * | 2020-03-13 | 2024-08-06 | Altera Corporation | Orthogonal multi-phase scheduling circuitry |
US11222685B2 (en) * | 2020-05-15 | 2022-01-11 | Advanced Micro Devices, Inc. | Refresh management for DRAM |
US11625352B2 (en) * | 2020-06-12 | 2023-04-11 | Advanced Micro Devices, Inc. | DRAM command streak management |
CN111984387B (zh) * | 2020-08-26 | 2024-06-25 | 上海兆芯集成电路股份有限公司 | 用于调度发布队列中指令的方法及处理器 |
CN112466361B (zh) * | 2020-11-25 | 2023-11-21 | 海光信息技术股份有限公司 | 一种dimm的数据初始化方法、装置、系统及设备 |
US11379388B1 (en) * | 2021-03-31 | 2022-07-05 | Advanced Micro Devices, Inc. | Credit scheme for multi-queue memory controllers |
US11687281B2 (en) * | 2021-03-31 | 2023-06-27 | Advanced Micro Devices, Inc. | DRAM command streak efficiency management |
US11669274B2 (en) | 2021-03-31 | 2023-06-06 | Advanced Micro Devices, Inc. | Write bank group mask during arbitration |
US11995008B2 (en) * | 2021-06-22 | 2024-05-28 | Advanced Micro Devices, Inc. | Memory controller with hybrid DRAM/persistent memory channel arbitration |
US11755246B2 (en) * | 2021-06-24 | 2023-09-12 | Advanced Micro Devices, Inc. | Efficient rank switching in multi-rank memory controller |
US12073114B2 (en) * | 2021-09-30 | 2024-08-27 | Advanced Micro Devices, Inc. | Stacked command queue |
US12117945B2 (en) | 2022-06-24 | 2024-10-15 | Advanced Micro Devices, Inc. | Memory controller with pseudo-channel support |
US20240005971A1 (en) * | 2022-06-29 | 2024-01-04 | Advanced Micro Devices, Inc. | Channel and sub-channel throttling for memory controllers |
US20240078017A1 (en) * | 2022-09-01 | 2024-03-07 | Advanced Micro Devices, Inc. | Memory controller and near-memory support for sparse accesses |
US12079144B1 (en) | 2022-09-21 | 2024-09-03 | Apple Inc. | Arbitration sub-queues for a memory circuit |
CN115632665B (zh) * | 2022-12-20 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种存储校验的系统和服务器 |
CN116974963B (zh) * | 2023-09-25 | 2023-12-15 | 上海云豹创芯智能科技有限公司 | 一种访问存储器的装置及其方法、芯片、存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138197A (en) * | 1998-09-17 | 2000-10-24 | Sun Microsystems, Inc. | Apparatus and method for limit-based arbitration scheme |
US6295586B1 (en) | 1998-12-04 | 2001-09-25 | Advanced Micro Devices, Inc. | Queue based memory controller |
US6804758B2 (en) | 2001-06-29 | 2004-10-12 | Xgi Technology Inc. | Method for adaptive arbitration of requests for memory access in a multi-stage pipeline engine |
US7426621B2 (en) | 2005-12-09 | 2008-09-16 | Advanced Micro Devices, Inc. | Memory access request arbitration |
US7617368B2 (en) | 2006-06-14 | 2009-11-10 | Nvidia Corporation | Memory interface with independent arbitration of precharge, activate, and read/write |
US8271746B1 (en) * | 2006-11-03 | 2012-09-18 | Nvidia Corporation | Tiering of linear clients |
US7734856B2 (en) | 2007-08-22 | 2010-06-08 | Lantiq Deutschland Gmbh | Method for operating a plurality of arbiters and arbiter system |
US9195618B2 (en) | 2009-06-16 | 2015-11-24 | Nvidia Corporation | Method and system for scheduling memory requests |
US8615629B2 (en) | 2010-01-18 | 2013-12-24 | Marvell International Ltd. | Access scheduler |
US8838853B2 (en) * | 2010-01-18 | 2014-09-16 | Marvell International Ltd. | Access buffer |
US8285892B2 (en) | 2010-05-05 | 2012-10-09 | Lsi Corporation | Quantum burst arbiter and memory controller |
US8977819B2 (en) | 2010-09-21 | 2015-03-10 | Texas Instruments Incorporated | Prefetch stream filter with FIFO allocation and stream direction prediction |
US9911477B1 (en) * | 2014-04-18 | 2018-03-06 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
US9697118B1 (en) * | 2015-12-09 | 2017-07-04 | Nxp Usa, Inc. | Memory controller with interleaving and arbitration scheme |
-
2016
- 2016-07-15 US US15/211,815 patent/US10684969B2/en active Active
- 2016-09-22 JP JP2018524749A patent/JP6840145B2/ja active Active
- 2016-09-22 KR KR1020187007540A patent/KR102442078B1/ko active IP Right Grant
- 2016-09-22 WO PCT/US2016/053131 patent/WO2018013157A1/en active Application Filing
- 2016-09-22 CN CN201680048862.9A patent/CN107924375B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US10684969B2 (en) | 2020-06-16 |
CN107924375B (zh) | 2023-08-08 |
KR102442078B1 (ko) | 2022-09-08 |
KR20190022428A (ko) | 2019-03-06 |
US20180018291A1 (en) | 2018-01-18 |
JP2019525271A (ja) | 2019-09-05 |
CN107924375A (zh) | 2018-04-17 |
WO2018013157A1 (en) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6840145B2 (ja) | 高速メモリインタフェースのためのコマンドアービトレーション | |
JP6761873B2 (ja) | セルフリフレッシュステートマシンmopアレイ | |
CN110729006B (zh) | 存储器控制器中的刷新方案 | |
JP2019521448A (ja) | ストリーク及び読出し/書込みトランザクション管理を有するメモリコントローラアービタ | |
US11494316B2 (en) | Memory controller with a plurality of command sub-queues and corresponding arbiters | |
JP6761870B2 (ja) | 低電力メモリのスロットリング | |
JP7521132B2 (ja) | アービトレーション中の書き込みバンクグループのマスク | |
US11755246B2 (en) | Efficient rank switching in multi-rank memory controller | |
KR20230004912A (ko) | 효율적인 메모리 버스 관리 | |
US11625352B2 (en) | DRAM command streak management | |
EP3270294B1 (en) | Command arbitration for high-speed memory interfaces | |
JP2024528414A (ja) | ハイブリッドdram/永続メモリチャネルアービトレーションを有するメモリコントローラ | |
US20220317928A1 (en) | Dram command streak efficiency management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190611 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190924 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190924 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20190924 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20190926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200325 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201030 |
|
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: 20210119 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6840145 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |