JP6755935B2 - 共有メモリコントローラおよびそれを使用する方法 - Google Patents
共有メモリコントローラおよびそれを使用する方法 Download PDFInfo
- Publication number
- JP6755935B2 JP6755935B2 JP2018501260A JP2018501260A JP6755935B2 JP 6755935 B2 JP6755935 B2 JP 6755935B2 JP 2018501260 A JP2018501260 A JP 2018501260A JP 2018501260 A JP2018501260 A JP 2018501260A JP 6755935 B2 JP6755935 B2 JP 6755935B2
- Authority
- JP
- Japan
- Prior art keywords
- beat
- transaction
- command
- memory access
- level
- 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
- 238000000034 method Methods 0.000 claims description 56
- 230000004044 response Effects 0.000 claims description 40
- 230000002349 favourable effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 7
- 239000004744 fabric Substances 0.000 description 6
- 238000010295 mobile communication Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Description
本出願は、参照により本明細書にその全体が再現されているかの如く組み込まれている、2015年7月13日に出願された「Shared Memory Controller and Method of Using Same」という名称の米国非仮特許出願第14/797,620号の優先権を主張するものである。
Claims (25)
- 方法であって、
共有メモリにアクセスするための複数のトランザクションを、対応する複数のマスタから受信するステップと、
前記複数のトランザクションを、前記複数のトランザクションのためのそれぞれのビートレベルメモリアクセスコマンドに分割するステップであって、前記トランザクションのそれぞれは、少なくとも1つのビートレベルメモリアクセスコマンドに分割され、前記トランザクションのうちの少なくとも1つは、複数のビートレベルメモリアクセスコマンドに分割される、ステップと、
前記複数のトランザクションのそれぞれに対するサービス品質にアクセスするステップと、
前記複数のトランザクションに対する前記サービス品質に基づいてマスタの必要性に対して調整された調停方式を選択するステップと、
前記それぞれのビートレベルメモリアクセスコマンドを、選択された前記調停方式に従って調停するステップと、
前記それぞれのビートレベルメモリアクセスコマンドを、前記ビートレベルメモリアクセスコマンドの調停の結果に基づいて、前記共有メモリにディスパッチするステップと
を含むことを特徴とする方法。 - 前記それぞれのビートレベルメモリアクセスコマンドを、前記選択された前記調停方式に従って調停する前記ステップは、
第1のビートレベルメモリアクセスコマンドが前記共有メモリにディスパッチされるようにするために待機する時間の増加に応答して、前記それぞれのビートレベルメモリアクセスコマンドの第1のビートレベルメモリアクセスコマンドのスケジューリング重みを増加させるステップ
を含むことを特徴とする請求項1に記載の方法。 - 前記それぞれのビートレベルメモリアクセスコマンドを、前記選択された前記調停方式に従って調停する前記ステップは、
同じトランザクションに関連付けられた2つのビートレベルメモリアクセスコマンドに異なるスケジューリング重みを割り当てるステップ
を含むことを特徴とする請求項1に記載の方法。 - 前記同じトランザクションに関連付けられた2つのビートレベルメモリアクセスコマンドに異なるスケジューリング重みを割り当てる前記ステップは、
2つのビートレベルメモリアクセスコマンドのそれぞれのビートがトランザクションにとってどれだけクリティカルであるかに依存するbeat_priorityに基づいて、前記同じトランザクションに関連付けられた前記2つのビートレベルメモリアクセスコマンドに異なるスケジューリング重みを割り当てるステップ
を含むことを特徴とする請求項3に記載の方法。 - 前記複数のトランザクションの第1のトランザクションが、トランザクション全体が速やかに処理されるべき帯域幅センシティブであるか、又はトランザクションの一定の部分が他の部分を犠牲にしてもより早く処理されるべきタイミングセンシティブであるかを決定するステップをさらに含む
ことを特徴とする請求項1ないし4のいずれか1項に記載の方法。 - 前記それぞれのビートレベルメモリアクセスコマンドを、前記選択された前記調停方式に従って調停する前記ステップは、
前記第1のトランザクションがタイミングセンシティブである場合、前記第1のトランザクションのための1つのビートレベルメモリアクセスコマンドをディスパッチすることを、前記第1のトランザクションのための他のビートレベルメモリアクセスコマンドをディスパッチすることより優遇する第1のスケジューリング重み付け方式を使用するステップと、
前記第1のトランザクションが帯域幅センシティブである場合、前記第1のトランザクションのための前記ビートレベルメモリアクセスコマンドのすべてを平等に扱う第2のスケジューリング重み付け方式を使用するステップと
を含むことを特徴とする請求項5に記載の方法。 - 前記トランザクションのそれぞれに対する前記サービス品質にアクセスする前記ステップは、前記複数のトランザクションの第1のトランザクションに対するタイミングバジェットにアクセスするステップを含み、
前記それぞれのビートレベルメモリアクセスコマンドを、前記選択された前記調停方式に従って調停する前記ステップは、前記タイミングバジェットを満たすように、前記第1のトランザクションに関連付けられたビートレベルメモリアクセスコマンドのスケジューリング優先度を段階的に拡大するステップを含む
ことを特徴とする請求項1に記載の方法。 - 前記トランザクションのそれぞれに対する前記サービス品質にアクセスする前記ステップは、前記複数のトランザクションの第1のトランザクションのためのモードに対する帯域幅割り振りにアクセスするステップを含み、
前記モードは、前記共有メモリのアクセスに関して一定の帯域幅がそれぞれに割り振られる、複数のモードの第1のモードであり、
前記それぞれのビートレベルメモリアクセスコマンドを、前記選択された前記調停方式に従って調停する前記ステップは、前記第1のモードに関連付けられたビートレベルメモリアクセスコマンドの帯域幅が前記第1のモードに対する前記割り振られた帯域幅を超えたとき、前記第1のトランザクションに関連付けられたビートレベルメモリアクセスコマンドが前記共有メモリにディスパッチされることを防止するステップを含む
ことを特徴とする請求項1に記載の方法。 - 前記それぞれのビートレベルメモリアクセスコマンドを、前記選択された前記調停方式に従って調停する前記ステップは、
スケジューリング重みを、同じトランザクションに関連付けられた前記ビートレベルメモリアクセスコマンドに、
i)前記同じトランザクションに関連付けられた前記ビートレベルメモリアクセスコマンドのそれぞれが、前記共有メモリにディスパッチされるようにするためにどれだけ多くのクロックサイクルだけ待機しているか、および
ii)前記同じトランザクションに関連付けられた前記ビートレベルメモリアクセスコマンドのそれぞれのビートがトランザクションにとってどれだけクリティカルであるかに依存するbeat_priority
に基づいて割り当てるステップ
を含むことを特徴とする請求項1に記載の方法。 - 装置であって、
共有メモリにアクセスするための複数のトランザクションを走査し、前記トランザクションをビートレベルメモリアクセスコマンドに分割するように構成されたトランザクションスキャナであって、前記トランザクションのそれぞれは少なくとも1つのビートレベルメモリアクセスコマンドに分割可能であり、前記トランザクションのうちの少なくとも1つは複数のビートレベルメモリアクセスコマンドに分割可能である、トランザクションスキャナと、
前記共有メモリ内の複数の共有メモリブロックに対応する複数のコマンドアービタを備えたコマンドスーパーアービタであって、
前記複数のトランザクションのそれぞれに対するサービス品質にアクセスし、
前記複数のトランザクションに対する前記サービス品質に基づいてマスタの必要性に対して調整された調停方式を選択し、
前記複数のトランザクションに関連付けられた前記ビートレベルメモリアクセスコマンドを、選択された前記調停方式に従って調停し、
前記ビートレベルメモリアクセスコマンドを、前記ビートレベルメモリアクセスコマンドの調停の結果に基づいて、前記共有メモリブロックにディスパッチするように構成されたコマンドスーパーアービタとを備えた
ことを特徴とする装置。 - 前記複数のコマンドアービタのうちの少なくとも一つのコマンドアービタは、
第1のビートレベルメモリアクセスコマンドが前記共有メモリにディスパッチされるようにするために待機しているクロックサイクルの数が増加するのに従って、前記ビートレベルメモリアクセスコマンドの第1のビートレベルメモリアクセスコマンドのスケジューリング重みを増加させるように構成された
ことを特徴とする請求項10に記載の装置。 - 前記複数のコマンドアービタのうちの少なくとも一つのコマンドアービタは、
2つのビートレベルメモリアクセスコマンドのそれぞれのビートがトランザクションにとってどれだけクリティカルであるかに依存するbeat_priorityに基づいて、同じトランザクションに関連付けられた前記2つのビートレベルメモリアクセスコマンドに、異なるスケジューリング重みを割り当てるように構成された
ことを特徴とする請求項10に記載の装置。 - 前記複数のコマンドアービタのうちの少なくとも一つのコマンドアービタは、
前記複数のトランザクションの第1のトランザクションが、トランザクション全体が速やかに処理されるべき帯域幅センシティブであるか、それともトランザクションの一定の部分が他の部分を犠牲にしてもより早く処理されるべきタイミングセンシティブであるかを決定するように構成された
ことを特徴とする請求項10に記載の装置。 - 前記少なくとも一つのコマンドアービタは、
前記第1のトランザクションがタイミングセンシティブである場合、前記第1のトランザクションのための1つのビートレベルメモリアクセスコマンドをディスパッチすることを、前記第1のトランザクションのための他のビートレベルメモリアクセスコマンドをディスパッチすることより優遇する第1のスケジューリング重み付け方式を用い、
前記第1のトランザクションが帯域幅センシティブである場合、前記第1のトランザクションのための前記ビートレベルメモリアクセスコマンドのすべてを平等に扱う第2のスケジューリング重み付け方式を使用するように構成された
ことを特徴とする請求項13に記載の装置。 - 前記複数のコマンドアービタのうちの少なくとも一つのコマンドアービタは、前記複数のトランザクションの第1のトランザクションに対するタイミングバジェットにアクセスするように構成され、
前記コマンドアービタは、前記タイミングバジェットを満たすように、前記第1のトランザクションに関連付けられたビートレベルメモリアクセスコマンドのスケジューリング優先度を段階的に拡大するように構成された
ことを特徴とする請求項10に記載の装置。 - 前記複数のトランザクションのそれぞれに対するサービス品質にアクセスするように構成された前記コマンドスーパーアービタは、前記複数のトランザクションのそれぞれのトランザクションのためのモードに対する帯域幅割り振りにアクセスするように構成された前記コマンドスーパーアービタを備え、
前記モードは、前記共有メモリのアクセスに関して一定の帯域幅がそれぞれに割り振られる、複数のモードの第1のモードであり、
前記トランザクションに関連付けられた前記ビートレベルメモリアクセスコマンドを、前記それぞれのトランザクションに対する前記サービス品質に基づいて調停するように構成された前記コマンドスーパーアービタは、
前記第1のモードに関連付けられたビートレベルメモリアクセスコマンドの帯域幅が前記第1のモードに対する前記割り振られた帯域幅を超えたとき、前記複数のトランザクションの第1のトランザクションに関連付けられたビートレベルメモリアクセスコマンドが前記共有メモリにディスパッチされることを防止するように構成された前記コマンドスーパーアービタを備えた
ことを特徴とする請求項10に記載の装置。 - 前記複数のコマンドアービタのうちの少なくとも一つのコマンドアービタは、読み出しアービタおよび書き込みアービタを備え、
前記コマンドアービタに関連付けられた前記共有メモリブロックは第1の物理メモリブロックおよび第2の物理メモリブロックに分割され、
それぞれ前記第1の物理メモリブロックおよび前記第2の物理メモリブロックにおける同時並行した実行のために、前記読み出しアービタからのビートレベル読み出しコマンドおよび前記書き込みアービタからのビートレベル書き込みコマンドを選択するように構成されたブロックコントローラをさらに備えた
ことを特徴とする請求項10に記載の装置。 - システムオンチップ(SoC)であって、
複数の共有メモリブロックと、
前記複数の共有メモリブロックにアクセスするために、複数の読み出し/書き込みトランザクションを生成するように構成された複数のマスタと、
前記複数の共有メモリブロックと前記複数のマスタとの間に結合された共有メモリコントローラであって、前記共有メモリコントローラは、トランザクションスキャナと、前記複数の共有メモリブロックに対応する複数のコマンドアービタとを備え、
前記トランザクションスキャナは、前記複数の読み出し/書き込みトランザクションを走査し、ビートレベル読み出し/書き込みコマンドに分割するように構成され、前記トランザクションスキャナは、前記読み出し/書き込みトランザクションのうちの少なくとも1つを複数のビートレベル読み出し/書き込みコマンドに分割するように構成され、
前記複数のコマンドアービタは、
前記読み出し/書き込みトランザクションのそれぞれに対するサービス品質にアクセスし、
前記読み出し/書き込みトランザクションのそれぞれに対する前記サービス品質に基づいてマスタの必要性に対して調整された調停方式を選択し、
前記読み出し/書き込みトランザクションに関連付けられた前記ビートレベル読み出し/書き込みコマンドを、選択された前記調停方式に従って調停し、
それぞれの前記複数の共有メモリブロックに対応するビートレベル読み出し/書き込みコマンドのシーケンスを生じ、
ビートレベル読み出し/書き込みコマンドの前記シーケンスを、それぞれの前記複数の共有メモリブロックにディスパッチする
ように構成される、共有メモリコントローラと
を備えたことを特徴とするシステムオンチップ(SoC)。 - 前記複数のコマンドアービタの第1のコマンドアービタは、ビートレベル読み出し/書き込みコマンドの前記シーケンスの第1のシーケンスを生成するように構成され、
第1のシーケンスにおけるビートレベル読み出し/書き込みコマンドを、前記複数の共有メモリブロックの第1の共有メモリブロックにディスパッチするように構成され、
前記読み出し/書き込みトランザクションに関連付けられた前記ビートレベル読み出し/書き込みコマンドを、前記読み出し/書き込みトランザクションのそれぞれに対する前記サービス品質に基づいて調停するように構成された前記複数のコマンドアービタは、
第1のビートレベルメモリアクセスコマンドが前記共有メモリブロックにディスパッチされるようにするために待機しているクロックサイクルの数が増加するのに応答して、ビートレベル読み出し/書き込みコマンドの前記第1のシーケンス内にある前記第1のビートレベルメモリアクセスコマンドを、前記第1のシーケンスにおいてより優先度の高い位置に昇格させるように構成された前記第1のコマンドアービタを備えた
ことを特徴とする請求項18に記載のシステムオンチップ(SoC)。 - 前記複数のコマンドアービタの第1のコマンドアービタは、ビートレベル読み出し/書き込みコマンドの前記シーケンスの第1のシーケンスを生成するように構成され、
第1のシーケンス上のビートレベル読み出し/書き込みコマンドを、前記複数の共有メモリブロックの第1の共有メモリブロックにディスパッチするように構成され、
前記読み出し/書き込みトランザクションに関連付けられた前記ビートレベル読み出し/書き込みコマンドを、前記読み出し/書き込みトランザクションのそれぞれに対する前記サービス品質に基づいて調停するように構成された前記複数のコマンドアービタは、
第1の読み出し/書き込みトランザクションの第1のビートレベルメモリアクセスコマンドと、前記第1の読み出し/書き込みトランザクション内の他のビートレベルメモリアクセスコマンドのビートがトランザクションにとってどれだけクリティカルであるかに依存するbeat_priorityに応答して、前記読み出し/書き込みトランザクションの第1の読み出し/書き込みトランザクションに関連付けられた前記第1のビートレベルメモリアクセスコマンドに、前記第1の読み出し/書き込みトランザクション内の他のビートレベルメモリアクセスコマンドに比べてより大きなスケジューリング重みを割り当てるように構成された前記第1のコマンドアービタを備えた
ことを特徴とする請求項18に記載のシステムオンチップ(SoC)。 - 前記共有メモリコントローラは、バス幅を有する相互接続部によって前記複数の共有メモリブロックに結合され、それぞれの複数のビートにおける各ビートのサイズは、前記バス幅に一致するサイズである
ことを特徴とする請求項18ないし20のいずれか1項に記載のシステムオンチップ(SoC)。 - 前記複数の共有メモリブロックは、複数のインターリーブされた物理メモリバンクである
ことを特徴とする請求項18ないし21のいずれか1項に記載のシステムオンチップ(SoC)。 - 前記複数の共有メモリブロックは、複数の直線的にアドレス指定されたメモリバンクである
ことを特徴とする請求項18ないし21のいずれか1項に記載のシステムオンチップ(SoC)。 - 前記複数の共有メモリブロックはそれぞれデータ幅を有し、前記複数の共有メモリブロックのうちの少なくとも2つは、異なるデータ幅を有する
ことを特徴とする請求項18ないし23のいずれか1項に記載のシステムオンチップ(SoC)。 - コンピュータに請求項1ないし9のいずれか1項に記載の方法を実施させることを記録したプログラムを有するコンピュータ読取り可能な記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/797,620 | 2015-07-13 | ||
US14/797,620 US10353747B2 (en) | 2015-07-13 | 2015-07-13 | Shared memory controller and method of using same |
PCT/CN2016/085754 WO2017008607A1 (en) | 2015-07-13 | 2016-06-14 | Shared memory controller and method of using same |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018521419A JP2018521419A (ja) | 2018-08-02 |
JP6755935B2 true JP6755935B2 (ja) | 2020-09-16 |
Family
ID=57757780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018501260A Active JP6755935B2 (ja) | 2015-07-13 | 2016-06-14 | 共有メモリコントローラおよびそれを使用する方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10353747B2 (ja) |
EP (1) | EP3311288B1 (ja) |
JP (1) | JP6755935B2 (ja) |
CN (1) | CN107835989B (ja) |
WO (1) | WO2017008607A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10200581B2 (en) * | 2016-03-31 | 2019-02-05 | Peter G. Hartwell | Heads down intelligent display and processing |
US10146585B2 (en) | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
US10671439B1 (en) | 2016-09-07 | 2020-06-02 | Pure Storage, Inc. | Workload planning with quality-of-service (‘QOS’) integration |
US11481261B1 (en) | 2016-09-07 | 2022-10-25 | Pure Storage, Inc. | Preventing extended latency in a storage system |
US10908966B1 (en) | 2016-09-07 | 2021-02-02 | Pure Storage, Inc. | Adapting target service times in a storage system |
US10331588B2 (en) * | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
US11119923B2 (en) * | 2017-02-23 | 2021-09-14 | Advanced Micro Devices, Inc. | Locality-aware and sharing-aware cache coherence for collections of processors |
KR102443106B1 (ko) | 2017-06-23 | 2022-09-14 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 메모리 액세스 기술 및 컴퓨터 시스템 |
US11727997B2 (en) * | 2017-07-07 | 2023-08-15 | Micron Technology, Inc. | RPMB improvements to managed NAND |
KR101870916B1 (ko) * | 2017-11-15 | 2018-07-19 | (주)디 넷 | 차량 내 잔류승객 감지 및 경보 장치 |
US20190302861A1 (en) | 2018-03-30 | 2019-10-03 | Provino Technologies, Inc. | Protocol level control for system on a chip (soc) agent reset and power management |
IL315283A (en) * | 2018-03-30 | 2024-10-01 | Google Llc | Mediation parts of transactions in ritualistic channels attributed to connection |
FR3082029B1 (fr) * | 2018-06-05 | 2020-07-10 | Thales | Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources |
US10732897B2 (en) | 2018-07-03 | 2020-08-04 | Western Digital Technologies, Inc. | Quality of service based arbitrations optimized for enterprise solid state drives |
CN109446125B (zh) * | 2018-10-09 | 2024-04-02 | 武汉正维电子技术有限公司 | Ddr读写仲裁器及方法 |
US11543262B2 (en) | 2018-12-05 | 2023-01-03 | Toyota Motor North America, Inc. | Data analytics for smart vehicle fueling |
US20210279192A1 (en) * | 2020-03-06 | 2021-09-09 | Infineon Technologies Ag | Distribution of interconnect bandwidth among master agents |
EP3926452A1 (en) * | 2020-06-19 | 2021-12-22 | NXP USA, Inc. | Norflash sharing |
US11720404B2 (en) * | 2020-07-16 | 2023-08-08 | Samsung Electronics Co., Ltd. | Systems and methods for arbitrating access to a shared resource |
US11579805B2 (en) * | 2020-11-18 | 2023-02-14 | Samsung Electronics Co., Ltd. | Method and system for processing commands in storage devices to improve quality of service |
US11467988B1 (en) | 2021-04-14 | 2022-10-11 | Apple Inc. | Memory fetch granule |
US12039169B2 (en) | 2022-04-07 | 2024-07-16 | Apple Inc. | Bandwidth-aware fabric traffic shaping |
EP4361826A1 (en) * | 2022-10-28 | 2024-05-01 | Nxp B.V. | Bandwidth allocation |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404553A (en) * | 1991-01-09 | 1995-04-04 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor and data flow microprocessor having vector operation function |
JPH10507023A (ja) | 1994-10-06 | 1998-07-07 | ヴァーク・インコーポレイテッド | 共用メモリシステム |
KR0183748B1 (ko) | 1995-10-30 | 1999-05-15 | 김광호 | 씨디-롬 구동 시스템의 고속 메모리 제어회로 및 그 방법 |
US6385678B2 (en) * | 1996-09-19 | 2002-05-07 | Trimedia Technologies, Inc. | Method and apparatus for bus arbitration with weighted bandwidth allocation |
US6209066B1 (en) * | 1998-06-30 | 2001-03-27 | Sun Microsystems, Inc. | Method and apparatus for memory allocation in a multi-threaded virtual machine |
US6195724B1 (en) | 1998-11-16 | 2001-02-27 | Infineon Technologies Ag | Methods and apparatus for prioritization of access to external devices |
CN1181438C (zh) | 2001-01-18 | 2004-12-22 | 深圳市中兴集成电路设计有限责任公司 | 异步时钟域设备对共享存储装置访问的控制方法 |
US6961803B1 (en) | 2001-08-08 | 2005-11-01 | Pasternak Solutions Llc | Sliced crossbar architecture with no inter-slice communication |
US7177275B2 (en) * | 2002-07-26 | 2007-02-13 | Kenneth Stanwood | Scheduling method and system for communication systems that offer multiple classes of service |
US7594089B2 (en) | 2003-08-28 | 2009-09-22 | Mips Technologies, Inc. | Smart memory based synchronization controller for a multi-threaded multiprocessor SoC |
JP5094050B2 (ja) | 2005-07-14 | 2012-12-12 | キヤノン株式会社 | メモリ制御装置、メモリ制御方法および組み込みシステム |
KR100784385B1 (ko) | 2005-08-10 | 2007-12-11 | 삼성전자주식회사 | 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법 |
US7489690B2 (en) * | 2005-08-12 | 2009-02-10 | Cellco Partnership | Integrated packet latency aware QoS scheduling algorithm using proportional fairness and weighted fair queuing for wireless integrated multimedia packet services |
CN1329809C (zh) | 2005-10-25 | 2007-08-01 | 威盛电子股份有限公司 | 磁盘阵列的控制器及其工作方法 |
CN101341474B (zh) | 2005-12-22 | 2012-02-08 | Arm有限公司 | 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法 |
US7356671B1 (en) | 2006-07-27 | 2008-04-08 | Vbridge Microsystem, Inc. | SoC architecture for voice and video over data network applications |
US7899994B2 (en) | 2006-08-14 | 2011-03-01 | Intel Corporation | Providing quality of service (QoS) for cache architectures using priority information |
US8307190B2 (en) | 2006-12-25 | 2012-11-06 | Panasonic Corporation | Memory control device, memory device, and memory control method |
CN101277175B (zh) * | 2007-03-30 | 2012-02-29 | 国际商业机器公司 | 改进会话启动协议服务器性能的方法和装置 |
US20110066768A1 (en) | 2007-07-23 | 2011-03-17 | Rod Brittner | Quality of service and streaming attributes for a data storage device |
US8095932B2 (en) | 2007-08-14 | 2012-01-10 | Intel Corporation | Providing quality of service via thread priority in a hyper-threaded microprocessor |
CN101187908A (zh) | 2007-09-27 | 2008-05-28 | 上海大学 | 单芯片多处理器共享数据存储空间的访问方法 |
JP2009193107A (ja) | 2008-02-12 | 2009-08-27 | Panasonic Corp | メモリアクセス装置 |
WO2010069398A1 (en) * | 2008-12-19 | 2010-06-24 | Telefonaktiebolaget L M Ericsson (Publ) | Resolving contention between data bursts |
CN101989241B (zh) * | 2009-08-07 | 2012-08-08 | 无锡江南计算技术研究所 | 读-修改-写处理系统及方法 |
CN103119933B (zh) * | 2010-05-06 | 2016-11-16 | 伊卡诺斯通讯公司 | 配置和管理宽带使能数字命令和控制系统的方法和系统 |
US8612648B1 (en) | 2010-07-19 | 2013-12-17 | Xilinx, Inc. | Method and apparatus for implementing quality of service in a data bus interface |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8607022B2 (en) | 2010-12-17 | 2013-12-10 | Apple Inc. | Processing quality-of-service (QoS) information of memory transactions |
US9098203B1 (en) * | 2011-03-01 | 2015-08-04 | Marvell Israel (M.I.S.L) Ltd. | Multi-input memory command prioritization |
KR101855399B1 (ko) | 2011-03-24 | 2018-05-09 | 삼성전자주식회사 | 데이터 트래픽을 개선한 SoC 및 이의 동작 방법 |
US20130054896A1 (en) * | 2011-08-25 | 2013-02-28 | STMicroelectronica Inc. | System memory controller having a cache |
KR101861768B1 (ko) | 2011-09-16 | 2018-05-28 | 삼성전자주식회사 | 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법 |
CN102609312B (zh) | 2012-01-10 | 2015-08-19 | 中国科学技术大学苏州研究院 | 基于公平性考虑的短作业优先内存请求调度方法 |
KR101949382B1 (ko) | 2012-04-04 | 2019-02-18 | 삼성전자주식회사 | 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법 |
CN103377154B (zh) | 2012-04-25 | 2016-04-13 | 无锡江南计算技术研究所 | 存储器的访存控制装置及方法、处理器及北桥芯片 |
US9213656B2 (en) | 2012-10-24 | 2015-12-15 | Texas Instruments Incorporated | Flexible arbitration scheme for multi endpoint atomic accesses in multicore systems |
US9535832B2 (en) * | 2013-04-30 | 2017-01-03 | Mediatek Singapore Pte. Ltd. | Multi-hierarchy interconnect system and method for cache system |
US9330024B1 (en) * | 2014-10-09 | 2016-05-03 | Freescale Semiconductor, Inc. | Processing device and method thereof |
US9519442B2 (en) * | 2014-10-27 | 2016-12-13 | Aeroflex Colorado Springs Inc. | Method for concurrent system management and error detection and correction requests in integrated circuits through location aware avoidance logic |
-
2015
- 2015-07-13 US US14/797,620 patent/US10353747B2/en active Active
-
2016
- 2016-06-14 WO PCT/CN2016/085754 patent/WO2017008607A1/en unknown
- 2016-06-14 EP EP16823754.3A patent/EP3311288B1/en active Active
- 2016-06-14 JP JP2018501260A patent/JP6755935B2/ja active Active
- 2016-06-14 CN CN201680039765.3A patent/CN107835989B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP3311288B1 (en) | 2022-06-29 |
WO2017008607A1 (en) | 2017-01-19 |
EP3311288A1 (en) | 2018-04-25 |
US20170017412A1 (en) | 2017-01-19 |
JP2018521419A (ja) | 2018-08-02 |
CN107835989B (zh) | 2020-12-01 |
CN107835989A (zh) | 2018-03-23 |
EP3311288A4 (en) | 2018-06-06 |
US10353747B2 (en) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6755935B2 (ja) | 共有メモリコントローラおよびそれを使用する方法 | |
EP2580669B1 (en) | Multithread application-aware memory scheduling scheme for multi-core processors | |
KR100440657B1 (ko) | 가중된대역폭할당에의한버스중재방법및장치 | |
US8645639B2 (en) | Hierarchical memory arbitration technique for disparate sources | |
JP2009508247A (ja) | バス調停に関する方法及びシステム | |
JP4034969B2 (ja) | 共通メモリのメモリ管理システム | |
US8060679B2 (en) | Information processing apparatus and access control method capable of high-speed data access | |
JP5498505B2 (ja) | データバースト間の競合の解決 | |
KR100296718B1 (ko) | 다중프로세서 시스템에서 가변폭 버스를 동시에 액세스하기 위한 방법 및 시스템 | |
US7617344B2 (en) | Methods and apparatus for controlling access to resources in an information processing system | |
US8180998B1 (en) | System of lanes of processing units receiving instructions via shared memory units for data-parallel or task-parallel operations | |
US20070239888A1 (en) | Controlling transmission of data | |
CN109002408B (zh) | 总线仲裁方法和系统 | |
JP6201591B2 (ja) | 情報処理装置および情報処理装置の制御方法 | |
US8458406B2 (en) | Multiple critical word bypassing in a memory controller | |
US8918786B2 (en) | Generating simulated stall signals based on access speed model or history of requests independent of actual processing or handling of conflicting requests | |
JP2005293427A (ja) | データ転送処理装置及びデータ転送処理方法 | |
JP5058116B2 (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
KR100973419B1 (ko) | 버스 중재 방법 및 장치 | |
Kim et al. | Efficient GPU multitasking with latency minimization and cache boosting | |
JPH05241958A (ja) | 仮想記憶制御方式 | |
JPH0395661A (ja) | 並列計算機の処理割り当て装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180215 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180215 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20180511 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20180511 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20181207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200124 |
|
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: 20200804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200826 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6755935 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 |