JP2015505114A - 動的優先制御のシステムおよび方法 - Google Patents

動的優先制御のシステムおよび方法 Download PDF

Info

Publication number
JP2015505114A
JP2015505114A JP2014553826A JP2014553826A JP2015505114A JP 2015505114 A JP2015505114 A JP 2015505114A JP 2014553826 A JP2014553826 A JP 2014553826A JP 2014553826 A JP2014553826 A JP 2014553826A JP 2015505114 A JP2015505114 A JP 2015505114A
Authority
JP
Japan
Prior art keywords
parameter
priority parameter
command
final priority
current command
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
JP2014553826A
Other languages
English (en)
Other versions
JP6169615B2 (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 JP2015505114A publication Critical patent/JP2015505114A/ja
Application granted granted Critical
Publication of JP6169615B2 publication Critical patent/JP6169615B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/061Improving I/O performance
    • 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/0673Single storage device

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)
  • Bus Control (AREA)
  • Advance Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【解決手段】システムおよび方法が、システムコントローラ内のファーストイン/ファーストアウト(FIFO)コマンドキューを動的に管理すべく提供される。1または複数のコマンドが、コマンドキューへと受信される。それぞれのコマンドは、優先度パラメータに関連付けられる。コマンドキュー内における1番初めに実行されるべき現コマンドが決定される。現コマンドは、第1の優先度パラメータに関連付けられる。第2の優先度パラメータに関連付けられる第2のコマンドが決定される。第2の優先度パラメータは、1または複数のコマンドに関連付けられる優先度パラメータの中で最大である現コマンドに対する最終的な優先度パラメータが、少なくとも一部は第2の優先度パラメータに基づいて計算される。【選択図】図3

Description

[関連出願の相互参照]
本開示は2012年1月27日出願の米国仮特許出願第61/591,705号の優先権と利益を主張しており、その開示全体をここに参照として組み込む。
本特許文献で説明される技術は、概してデータ処理に関し、特にデータ処理における優先制御に関する。
メモリシステムはしばしば、ダイナミックランダムアクセスメモリ(DRAM)や、シンクロナスDRAM(SDRAM)や、ダブルデータレート(DDR、DDR2、DDR3など)SDRAMなどの半導体メモリデバイスを備える。プロセッサや、周辺デバイス(例えば、入出力デバイス)や、オーディオおよびビデオデバイスなどのさまざまなソースデバイスは、メモリデバイスからソースデバイスへデータを送るリードメモリオペレーションや、ソースデバイスからメモリデバイスへデータを送るライトメモリオペレーションを含む、メモリオペレーションコマンドを生成し得る。通常、メモリコントローラは、ソースデバイスからメモリオペレーションコマンドを受信し、そしてコマンドに応答して、メモリデバイスを制御し、メモリオペレーションを実行すべく実装される。メモリコントローラはしばしば、メモリオペレーションコマンドを取り込み保存するコマンドキューを備える。
メモリオペレーションコマンドの優先度パラメータ(例えば、クオリティオブサービス(QoS)パラメータ)は、コマンドの一部としてメモリコントローラへ送信され得る。メモリコントローラは、複数の異なるコマンドキューからのメモリオペレーションコマンドを調停し、それぞれの優先度パラメータに基づきこれらのコマンドの実行をスケジュールし得る。図1は、メモリオペレーションコマンドの実行をスケジュールするメモリコントローラの例である。メモリコントローラ100のアービタコンポーネント108は、複数のコマンドキュー102からのメモリオペレーションコマンド104の実行を、メモリオペレーションコマンド104の優先度パラメータ106に基づきスケジュールする。図1に示すように、メモリコントローラ100は、複数のコマンドキュー102にそれぞれ対応する複数のシステムインターフェースポート(SIPs)110を有する。コマンドキューは、それぞれが優先度パラメータ106(例えば、QoS)を含む1または複数のメモリオペレーションコマンド104を格納する。各コマンドキューは、コマンドキューの最上部に位置し、ゆえに1番初めに処理されるべき現コマンドを有する。アービタコンポーネント108は、複数の異なるコマンドキューの現コマンドの優先度パラメータ(例えば、QoS)を比較して、最も高い優先度パラメータを有する、処理されるべき1つの現コマンドを選択する。例えば、コマンドキューはしばしば、ファーストイン/ファーストアウト(FIFO)方式で動作する。すなわち、コマンドキューの現コマンドは、このコマンドキュー内の他のコマンドよりも早く受信されたコマンドだということである。
本明細書で説明される教示に従い、システムコントローラのファーストイン/ファーストアウト(FIFO)コマンドキューを動的に管理するシステムと方法が提供される。1または複数のコマンドが、コマンドキューへと受信される。それぞれのコマンドは優先度パラメータに関連付けられる。コマンドキュー内における1番初めに実行されるべき現コマンドが決定される。現コマンドは第1の優先度パラメータに関連付けられる。第2の優先度パラメータと関連付けられる第2のコマンドが決定される。第2の優先度パラメータは、1または複数のコマンドに関連付けられる優先度パラメータの中で最大である。現コマンドに対する最終的な優先度パラメータが、少なくとも一部は第2の優先度パラメータに基づき計算される。
別の実施形態において、システムコントローラのファーストイン/ファーストアウト(FIFO)コマンドキューを動的に管理する集積回路は、それぞれ優先度パラメータが関連づけられた1または複数のコマンドを、コマンドキューへと受信すべく構成されるインターフェース回路と、コマンドキュー内における1番初めに実行されるべき現コマンドであって、第1の優先度パラメータと関連付けられる現コマンドを決定し、1または複数のコマンドと関連付けられる優先度パラメータの中で最大であるような第2の優先度パラメータに関連付けられる第2のコマンドを決定すべく構成される監視回路と、少なくとも一部は第2の優先度パラメータに基づいて、現コマンドに対する最終的な優先度パラメータを計算し、この最終的な優先度パラメータが予め定められた条件を満たす場合に、現コマンドを実行のために選択するべく、最終的な優先度パラメータを出力するように構成される選択回路と、を有する。
さらに別の実施形態では、システムコントローラのファーストイン/ファーストアウト(FIFO)コマンドキューを動的に管理するシステムは、1または複数のデータプロセッサと、1または複数のデータプロセッサに命令して複数の段階を実行させるプログラミング命令が符号化されたコンピュータ可読メモリと、を有する。この段階は、それぞれ優先度パラメータが関連づけられた1または複数のコマンドをコマンドキューへと受信する段階と、コマンドキュー内における1番初めに実行されるべき現コマンドであって、第1の優先度パラメータに関連付けられる現コマンドを決定する段階と、1または複数のコマンドに関連付けられる優先度パラメータの中で最大である第2の優先度パラメータと関連付けられる第2のコマンドを決定する段階と、を含む。この段階はさらに、少なくとも一部は第2の優先度パラメータに基づいて、現コマンドに対する最終的な優先度パラメータを計算する段階と、この最終的な優先度パラメータが予め定められた条件を満たす場合に、現コマンドを実行のために選択するべく、最終的な優先度パラメータを出力する段階と、を含む。
メモリオペレーションコマンドの実行をスケジュールするメモリコントローラの例を示す。
FIFOコマンドキューの例を示す。
コマンドキュー内のコマンドに対する動的な優先度パラメータを生成する例を示す。
コマンドキュー内のコマンドに対する動的な優先度パラメータを生成する別な例を示す。
動的な優先度パラメータを生成するための、コマンドキュー内のコマンドのデータフィールドの例を示す。
コマンドキューに関連付けられる動的な優先度パラメータに基づいて、メモリオペレーションコマンドの実行をスケジュールするメモリコントローラの例を示す。
再び図1を参照すると、アービタコンポーネント108は、処理される最も高い優先度パラメータを有する複数の現コマンドのうちの1つを選択する。このように、特定のコマンドキュー内の現コマンドが低い優先度パラメータを有すれば、このような現コマンドは、処理され得るまで長時間待つ必要がある場合もある。このようなコマンドキュー内の他のコマンドは、たとえ高い優先度パラメータを有していたとしても、現コマンドによってブロックされる。
図2に、FIFOコマンドキューの例を示す。高い優先度パラメータを有するコマンド(例えば、コマンド204)は、低い優先度パラメータを有する現コマンド202によってブロックされる。図2に示すように、メモリオペレーションコマンドは、順序管理のための識別番号(「ID」)と、メモリ内のデータにアクセスするためのメモリ場所を示すアドレス(「Addr」)と、コマンドの緊急度を示す優先度パラメータ(「QoS」)を有する。低い優先度パラメータ「1」(例えば、QoS)を有するメモリオペレーションコマンド202は、コマンドキュー200の最上部にとどまり、コマンドキュー200の現コマンドである。現コマンド202は低い優先度パラメータを有するので、長時間処理され得ない。このように、たとえコマンドキュー200内の他のコマンドが高い優先度パラメータを有していたとしても、これらは処理されない場合もある。例えば、別のメモリオペレーションコマンド204は、極めて高い優先度パラメータ「15」(例えば、QoS)を有する。しかしながら、コマンド204はコマンドキュー200内の半ばに位置するので、コマンド204より前にあるすべてのコマンドが処理されるまで、処理されることはない。
一例として、液晶表示制御デバイス(LCD)は、メモリのデータを読み出すコマンドを送信する。初めに、LCDバッファは表示される十分なデータを有しており、LCDコントローラは、低い優先度パラメータ(例えば、QoS)を有するリードコマンドを、このLCDに関連付けられるコマンドキューへ送信する。他のコマンドキューからのコマンドが、より高い優先度パラメータを有する可能性もあるので、メモリコントローラは直ぐにはこれらのリードコマンドを処理しない。後に、バッファが表示される十分なデータを有さない場合、LCDコントローラは、このLCDに関連付けられる同じコマンドキューへ、高い優先度パラメータを有するリードコマンドを送信する。低い優先度パラメータを有する以前のリードコマンドは、実行を待ちながらコマンドキュー内に留まり、高い優先度パラメータを有する後続のリードコマンドをブロックする。そして、バッファに表示されるデータが無くなった場合、エラーが起き得る。
特定のシステムインターフェースポートにおける、仮想チャネル手法または、複数の物理的コマンドキューを用いるマルチチャネル手法は、この問題を改善する。異なる優先度パラメータを有するコマンドは、異なるコマンドキューへ取り込まれ、高い優先度パラメータを有するコマンドが、低い優先度パラメータを有するコマンドによってブロックされ得ないからである。しかしながら、仮想チャネル手法またはマルチチャネル手法を実装すると、非常に高価である。加えて、このような仮想チャネル手法またはマルチチャネル手法では、通常は異なる問題が生じる。
しばしばソースデバイスは、メモリ内の連続する数カ所にアクセスする必要がある。各場所へ、ソースデバイスは通常、コマンドを送信する。ソースデバイスからのこれらコマンドは、同じ識別番号を共有する。通常、メモリ内の宛先位置を連続してアクセスできるよう、これらのコマンドは送信された順に実行するのが好ましい。特定のシステムインターフェースポートに対する単一のFIFOコマンドキューは、1番に受信されたコマンドは1番に処理されるので、しばしば何の問題もなくこれを達成できる。しかしながら、仮想チャネル手法またはマルチチャネル手法では、同じ識別番号を有するコマンドが、しばしば異なる物理的コマンドキューへ送信される。通常、メカニズムを追加して、同じ識別番号を有するコマンドを順に実行する必要があるが、これはシステムの複雑さとコストを増大させる。
本開示は、コマンドキュー内のコマンドが、コマンドキューのステータスに従って、直ぐに処理され得る手法を提示する。図3に、コマンドキュー内のコマンドに対する動的な優先度パラメータを生成する例を示す。アービタコンポーネント302は、コマンドキュー306のステータスに基づいて決定された動的な優先度パラメータ304(「QoS_arb」)を受信する。動的な優先度パラメータ304が、他のコマンドキューに関連付けられる他の優先度パラメータよりも高いならば、アービタコンポーネント302は、コマンドキュー306内の現コマンド308を処理すべく選択する。高い優先度パラメータを有するコマンドが、現コマンド308より遅れてコマンドキュー306へと受信される場合、動的な優先度パラメータ304の値が増加され、コマンドキュー306の処理を早める。高い優先度パラメータを有するコマンドが処理された場合、動的な優先度パラメータ304の値が低減され、コマンドキュー306の処理を遅くする。
具体的には、あるアルゴリズムが実装され、コマンドキュー306内の最も高い優先度パラメータを動的に決定し得る。最も高い優先度パラメータを有するコマンドが、どの程度長くコマンドキュー306内に留まったかが、動的な優先度パラメータ 304を決定する上で考慮され得る。一例として、コマンド318が、コマンドキュー306内で、最も高い優先度パラメータ316(「QoS_Max」)を有するよう決定される。コマンド318が、待ち時間閾値より長くコマンドキュー306内に留まれば、動的な優先度パラメータ304は、最も高い優先度パラメータ316(「QoS_Max」)に等しく決定される。一方、コマンド318が待ち時間閾値より長くコマンドキュー306内に留まっていない場合、動的な優先度パラメータ304は、最も高い優先度パラメータ316(「QoS_Max」)と現コマンド308に対する現在の優先度パラメータ314との合計の1/2に等しく決定される。あるいは、いくつかの状況下では、動的な優先度パラメータ304は、コマンド318がどの程度長くコマンドキュー306内に留まったかには関わらず、最も高い優先度パラメータ316(「QoS_Max」)に等しく決定される。
図4に、コマンドキュー内のコマンドに対する動的な優先度パラメータを生成する別の例を示す。図4に示すように、選択コンポーネント610(例えば、プログラマブルレジスタ)は、コマンドキュー606に対する動的な優先度パラメータ604の生成のため、マルチプレクサ612へ信号622(「QoS_sel」)を出力して、3つのモードのうちの1つを選択する。第1のモード下において、動的な優先度パラメータ604は、常にコマンドキュー606内の現コマンド608の現在の優先度パラメータ614に等しく決定される。第2のモード下では、動的な優先度パラメータ604は、常にコマンドキュー606内の最も高い優先度パラメータ616に等しく決定される。さらに、第3のモード下では、マルチプレクサ612は変更された優先度パラメータ620(「QoS´」)を、動的な優先度パラメータ604として出力する。
例えば、変更された優先度パラメータ620は、最も高い優先度パラメータ616を有するコマンド618が、どの程度長くコマンドキュー606内に留まったかに基づいて決定され得る。コマンド618が、第1の待ち時間閾値より長くコマンドキュー606内に留まった場合、変更された優先度パラメータ620は、最大の優先度パラメータ616に等しく決定される。一方で、コマンド618が、第1の待ち時間閾値より長くコマンドキュー606内に留まった場合、変更された優先度パラメータ620は、最大の優先度パラメータ616と現在の優先度パラメータ614との合計の1/2に等しく決定される。
さらに、現コマンド608が、どの程度長くコマンドキュー606内に留まったかは、変更された優先度パラメータ620を決定する上で考慮される。例として、コマンド618が第1の待ち時間閾値より長くコマンドキュー606内に留まり、かつ現コマンド608が第2の待ち時間閾値より長くコマンドキュー606内に留まれば、変更された優先度パラメータ620は第1の値に等しく決定される。コマンド618が第1の待ち時間閾値より長くコマンドキュー606内に留まらず、かつ現コマンド608が第2の待ち時間閾値より長くコマンドキュー606内に留まれば、変更された優先度パラメータ620は第2の値に等しく決定される。コマンド618が第1の待ち時間閾値より長くコマンドキュー606内に留まり、かつ現コマンド608が第2の待ち時間閾値より長くコマンドキュー606内に留まらなければ、変更された優先度パラメータ620は第3の値に等しく決定される。加えて、コマンド618が、第1の待ち時間閾値より長くコマンドキュー606内に留まらず、かつ現コマンド608が第2の待ち時間閾値より長くコマンドキュー606内に留まらなければ、変更された優先度パラメータ620は第4の値に等しく決定される。例えば、第1の値および第3の値は、最大の優先度パラメータ616と等しく、第2の値および第4の値は、最大の優先度パラメータ616と現在の優先度パラメータ614との合計の1/2に等しい。
図5に、動的な優先度パラメータを生成する、コマンドキュー内のコマンドのデータフィールドの例を示す。コマンドキュー400内の各コマンドは、動的な優先度パラメータ生成に関係する3つのデータフィールドを有する。この3つのデータフィールドは、コマンドが有効かどうかを示す有効性ファクタ(「V」)と、コマンドの待ち時間を示す待ち時間ファクタ(「WT」)(すなわち、どの程度長くコマンドがコマンドキュー400内に留まるか)と、元の優先度パラメータ(「QoS_org」)である。例えば、コマンドの有効性ファクタが1の場合、このコマンドは有効であり、有効性ファクタが0の場合、このコマンドは無効である。有効なコマンドがコマンドキュー400へと受信される場合、このコマンドの待ち時間ファクタは、最大値に達するまで増加し始め、このコマンドがコマンドキュー400からポップされる場合、クリアされる。リードポインタ410(「rd_ptr」)は現コマンド412を指し示し、現コマンド412がコマンドキュー400からポップされる場合、1増加する。ライトポインタ408(「wr_ptr」)は、新たなコマンドの受信に対し、コマンドキュー400内の次に利用可能な場所を指し示し、新たなコマンドが受信される場合、1増加する。例のように、コマンドキュー400は循環FIFOで管理される。
2次元アレイ、QoS_info[Q_Size−1:0][Entry_Size−1:0]が定義され、動的な優先度パラメータを生成するための上記データフィールドの情報を格納する。Q_Sizeは、どれくらい多くのコマンドがコマンドキュー 400内に格納可能かを示し、Entry_Sizeは、有効性ファクタと待ち時間ファクタと元の優先度パラメータの大きさの合計を表す。
コマンドキュー400内の有効なコマンドの最大の優先度パラメータは、次のように決定される:
Figure 2015505114
最大の優先度パラメータを有するコマンドの待ち時間ファクタは、次のように決定される:
Figure 2015505114
現コマンドの待ち時間ファクタは、次のように決定される:
Figure 2015505114
図4で議論された第1のモードに対して、動的な優先度パラメータは次のように決定される:
Figure 2015505114
第2のモードに対して、動的な優先度パラメータは次のように決定される:
Figure 2015505114
加えて、第3のモードに対しては、動的な優先度パラメータは第1の待ち時間閾値(「THR1」)および第2の待ち時間閾値(「THR2」)に基づいて、次のように決定される:
Figure 2015505114
図6に、コマンドキューに関連付けられる動的な優先度パラメータに基づいて、メモリオペレーションコマンドの実行をスケジュールするメモリコントローラの例を示す。メモリコントローラ500内のアービタコンポーネント502は、複数のコマンドキュー504からのメモリオペレーションコマンドの実行を、各コマンドキュー504にそれぞれ関連付けられる動的な優先度パラメータ506(「QoS_arb」)に基づいてスケジュールする。アービタコンポーネント502は、複数のコマンドキュー504に関連付けられる動的な優先度パラメータ506(「QoS_arb」)同士を比較して、最も高い動的な優先度パラメータを有するコマンドキュー内の現コマンドを、マルチプレクサ510を通して選択する。選択された現コマンドは、メモリコマンドスケジューラ512(例えば、DDRコマンドスケジューラ)へ出力され、処理される。コマンドキュー504は、複数のシステムインターフェースポート(SIPs)508にそれぞれ対応する。
ここに書かれた説明は、本発明を開示し、最適なモードを含み、また当業者が本発明を作り利用可能にする目的で、複数の例を用いる。本発明の特許性を有する範囲は、当業者が考え付く他の例も含み得る。例えば、本明細書で説明されるシステムおよび方法は、単一のコマンドキュー構造を有するどのようなシステムコントローラの優先制御に対しても実装され得る。例として、本明細書で説明されるシステムおよび方法は、システムオンチップ(SOC)のモジュールまたはコンポーネントに、優先制御用に実装され得る。このモジュールまたはコンポーネントは、SOCファブリック(バスインターコネクト)や、PCIeモジュールや、SOCのUSBモジュールなどである。
例えば、本明細書で説明されるシステムおよび方法は、デバイス処理サブシステムによって実行可能なプログラム命令を有するプログラムコードにより、多くの異なる種類の処理デバイスに実装され得る。本明細書で説明される方法およびシステムを実行すべく構成されるファームウェアまたは適切に設計されたハードウェアなど、他の実装も使用され得る。別の例では、本明細書で説明されるシステムおよび方法は、コプロセッサとして、またはハードウェアアクセラレータとして、独立した処理エンジンに実装され得る。さらに別の例では、本明細書で説明されるシステムおよび方法は、本明細書で説明される方法のオペレーションを実行し、システムを実装するプロセッサによる実行に用いられる命令(例えば、ソフトウェア)を格納するコンピュータ記憶メカニズム(例えば、CD−ROMや、ディスケットや、RAMや、フラッシュメモリや、コンピュータのハードドライブなど)をはじめとする、多くの異なる種類のコンピュータ可読媒体に備えられ得る。

Claims (20)

  1. システムコントローラのファーストイン/ファーストアウト(FIFO)コマンドキューを動的に管理する方法であって、
    それぞれ優先度パラメータが関連づけられた1または複数のコマンドを前記コマンドキューへと受信する段階と、
    前記コマンドキュー内における1番初めに実行されるべき現コマンドであって、第1の優先度パラメータに関連付けられる前記現コマンドを決定する段階と、
    前記1または複数のコマンドに関連付けられる優先度パラメータの中で最大である第2の優先度パラメータに関連付けられる第2のコマンドを決定する段階と、
    少なくとも一部は前記第2の優先度パラメータに基づいて、前記現コマンドに対する最終的な優先度パラメータを計算する段階と、
    前記最終的な優先度パラメータが予め定められた条件を満たす場合に、前記現コマンドを実行のために選択するべく、前記最終的な優先度パラメータを出力する段階と
    を含む方法。
  2. 前記システムコントローラ内の、第2のFIFOコマンドキュー内の第2の現コマンドに対する第2の最終的な優先度パラメータを計算する段階をさらに含み、
    前記最終的な優先度パラメータが前記第2の最終的な優先度パラメータよりも大きければ、前記最終的な優先度パラメータは前記予め定められた条件を満たし、前記現コマンドを実行のために選択する
    請求項1に記載の方法。
  3. 前記システムコントローラ内の、第2のFIFOコマンドキュー内の第2の現コマンドに対する第2の最終的な優先度パラメータを計算する段階と、
    前記システムコントローラ内の、第3のFIFOコマンドキュー内の第3の現コマンドに対する第3の最終的な優先度パラメータを計算する段階と、をさらに含み、
    前記最終的な優先度パラメータが、前記第2の最終的な優先度パラメータおよび前記第3の最終的な優先度パラメータの両方よりも大きければ、前記最終的な優先度パラメータは、前記予め定められた条件を満たし、前記現コマンドを実行のために選択する
    請求項1に記載の方法。
  4. 前記現コマンドは第1の待ち時間パラメータに関連付けられ、前記第1の待ち時間パラメータは前記コマンドキュー内の前記現コマンドの待機時間を示し、
    前記第2のコマンドは第2の待ち時間パラメータに関連付けられ、前記第2の待ち時間パラメータは前記コマンドキュー内の前記第2のコマンドの待機時間を示す
    請求項1から3のいずれか1項に記載の方法。
  5. 前記第2の待ち時間パラメータが予め定められた閾値よりも大きい場合、前記最終的な優先度パラメータは第1の値に等しく計算され、
    前記第2の待ち時間パラメータが前記予め定められた閾値より小さいかまたは等しい場合、前記最終的な優先度パラメータは、第2の値に等しく計算される
    請求項4に記載の方法。
  6. 前記第1の値は、前記第2の優先度パラメータに等しく、前記第2の値は、前記第2の優先度パラメータと前記第1の優先度パラメータとの合計の1/2に等しい
    請求項5に記載の方法。
  7. 前記第2の待ち時間パラメータが、第1の閾値よりも大きく、かつ前記第1の待ち時間パラメータが第2の閾値よりも大きい場合、前記最終的な優先度パラメータは第1の値に等しく計算され、
    前記第2の待ち時間パラメータが、前記第1の閾値より小さいかまたは等しく、かつ前記第1の待ち時間パラメータが前記第2の閾値よりも大きい場合、前記最終的な優先度パラメータは、第2の値に等しく計算され、
    前記第2の待ち時間パラメータが、前記第1の閾値よりも大きく、かつ前記第1の待ち時間パラメータが前記第2の閾値より小さいかまたは等しい場合、前記最終的な優先度パラメータは、第3の値に等しく計算され、
    前記第2の待ち時間パラメータが、前記第1の閾値より小さいかまたは等しく、かつ前記第1の待ち時間パラメータが、前記第2の閾値より小さいかまたは等しい場合、前記最終的な優先度パラメータは、第4の値に等しく計算される
    請求項4から6のいずれか1項に記載の方法。
  8. 前記最終的な優先度パラメータは、前記第2の優先度パラメータに等しく計算される
    請求項1から7のいずれか1項に記載の方法。
  9. システムコントローラのファーストイン/ファーストアウト(FIFO)コマンドキューを動的に管理する集積回路であって、
    それぞれ優先度パラメータが関連づけられた1または複数のコマンドを、前記コマンドキューへと受信するインターフェース回路と、
    前記コマンドキュー内における1番初めに実行されるべき現コマンドであって、第1の優先度パラメータに関連付けられる前記現コマンドを決定し、前記1または複数のコマンドに関連付けられる優先度パラメータの中で最大である第2の優先度パラメータに関連付けられる第2のコマンドを決定する監視回路と、
    少なくとも一部は前記第2の優先度パラメータに基づいて、前記現コマンドに対する最終的な優先度パラメータを計算し、前記最終的な優先度パラメータが予め定められた条件を満たす場合に、前記現コマンドを実行のために選択するべく前記最終的な優先度パラメータを出力する選択回路と
    を備える集積回路。
  10. 前記システムコントローラ内の第2のFIFOコマンドキュー内の第2の現コマンドに対する第2の最終的な優先度パラメータを計算する第2の選択回路をさらに備え、
    前記最終的な優先度パラメータが前記第2の最終的な優先度パラメータよりも大きければ、前記最終的な優先度パラメータは、前記予め定められた条件を満たし、前記現コマンドを実行のために選択する
    請求項9に記載の集積回路。
  11. 前記システムコントローラ内の第2のFIFOコマンドキュー内の第2の現コマンドに対する第2の最終的な優先度パラメータを計算する第2の選択回路と、
    前記システムコントローラ内の第3のFIFOコマンドキュー内の第3の現コマンドに対する第3の最終的な優先度パラメータを計算する第3の選択回路と、をさらに備え、
    前記最終的な優先度パラメータが、前記第2の最終的な優先度パラメータおよび前記第3の最終的な優先度パラメータの両方よりも大きければ、前記最終的な優先度パラメータは前記予め定められた条件を満たし、前記現コマンドを実行のために選択する
    請求項9または10に記載の集積回路。
  12. 前記現コマンドは第1の待ち時間パラメータに関連付けられ、前記第1の待ち時間パラメータは前記コマンドキュー内の前記現コマンドの待機時間を示し、
    前記第2のコマンドは第2の待ち時間パラメータに関連付けられ、前記第2の待ち時間パラメータは前記コマンドキュー内の前記第2のコマンドの待機時間を示す
    請求項9から11のいずれか1項に記載の集積回路。
  13. 前記第2の待ち時間パラメータが予め定められた閾値よりも大きい場合、前記選択回路はさらに、前記最終的な優先度パラメータを第1の値に等しく計算し、
    前記第2の待ち時間パラメータが前記予め定められた閾値より小さいかまたは等しい場合、前記選択回路はさらに、前記最終的な優先度パラメータを第2の値に等しく計算する
    請求項12に記載の集積回路。
  14. 前記第2の待ち時間パラメータが第1の閾値よりも大きく、かつ前記第1の待ち時間パラメータが第2の閾値よりも大きい場合、前記選択回路はさらに、前記最終的な優先度パラメータを第1の値に等しく計算し、
    前記第2の待ち時間パラメータが前記第1の閾値より小さいかまたは等しく、かつ前記第1の待ち時間パラメータが前記第2の閾値よりも大きい場合、前記選択回路はさらに、前記最終的な優先度パラメータを第2の値に等しく計算し、
    前記第2の待ち時間パラメータが前記第1の閾値よりも大きく、かつ前記第1の待ち時間パラメータが前記第2の閾値より小さいかまたは等しい場合、前記選択回路はさらに、前記最終的な優先度パラメータを第3の値に等しく計算し、
    前記第2の待ち時間パラメータが前記第1の閾値より小さいかまたは等しく、かつ前記第1の待ち時間パラメータが前記第2の閾値より小さいかまたは等しい場合、前記選択回路はさらに、前記最終的な優先度パラメータを第4の値に等しく計算する
    請求項12または13に記載の集積回路。
  15. 前記選択回路はさらに、前記最終的な優先度パラメータを前記第2の優先度パラメータに等しく計算する
    請求項9から14のいずれか1項に記載の集積回路。
  16. システムコントローラ内のファーストイン/ファーストアウト(FIFO)コマンドキューを動的に管理するシステムであって、
    1または複数のデータプロセッサと、
    前記1または複数のデータプロセッサに命令して複数の段階を実行させるプログラミング命令が符号化されたコンピュータ可読メモリと、を含み、前記複数の段階は、
    それぞれ優先度パラメータが関連づけられた1または複数のコマンドを、前記コマンドキューへと受信する段階と、
    前記コマンドキュー内における1番初めに実行されるべき現コマンドであって、第1の優先度パラメータに関連付けられる前記現コマンドを決定する段階と、
    前記1または複数のコマンドに関連付けられる優先度パラメータの中で最大である第2の優先度パラメータに関連付けられる第2のコマンドを決定する段階と、
    少なくとも一部は前記第2の優先度パラメータに基づいて、前記現コマンドに対する最終的な優先度パラメータを計算する段階と、
    前記最終的な優先度パラメータが予め定められた条件を満たす場合に、前記現コマンドを実行のために選択するべく前記最終的な優先度パラメータを出力する段階と
    を含むシステム。
  17. 前記コンピュータ可読メモリに符号化された前記プログラミング命令は、前記1または複数のデータプロセッサに命令してさらなる複数の段階を実行させ、前記複数の段階は、
    前記システムコントローラ内の第2のFIFOコマンドキュー内の第2の現コマンドに対する第2の最終的な優先度パラメータを計算する段階を含み、
    前記最終的な優先度パラメータが前記第2の最終的な優先度パラメータよりも大きければ、前記最終的な優先度パラメータは前記予め定められた条件を満たし、前記現コマンドは実行のために選択される
    請求項16に記載のシステム。
  18. 前記コンピュータ可読メモリに符号化された前記プログラミング命令は、前記1または複数のデータプロセッサに命令してさらなる複数の段階を実行させ、前記複数の段階は、
    前記システムコントローラ内の第2のFIFOコマンドキュー内の第2の現コマンドに対する第2の最終的な優先度パラメータを計算する段階と、
    前記システムコントローラ内の第3のFIFOコマンドキュー内の第3の現コマンドに対する第3の最終的な優先度パラメータを計算する段階と、を含み、
    前記最終的な優先度パラメータが、前記第2の最終的な優先度パラメータおよび前記第3の最終的な優先度パラメータの両方よりも大きければ、前記最終的な優先度パラメータは前記予め定められた条件を満たし、前記現コマンドを実行のために選択する
    請求項16または17に記載のシステム。
  19. 前記現コマンドは、第1の待ち時間パラメータに関連付けられ、前記第1の待ち時間パラメータは前記コマンドキュー内の前記現コマンドの待機時間を示し、
    前記第2のコマンドは、第2の待ち時間パラメータに関連付けられ、前記第2の待ち時間パラメータは前記コマンドキュー内の前記第2のコマンドの待機時間を示す
    請求項16から18のいずれか1項に記載のシステム。
  20. 前記第2の待ち時間パラメータが、予め定められた閾値よりも大きい場合、前記最終的な優先度パラメータは第1の値に等しく計算され、
    前記第2の待ち時間パラメータが、前記予め定められた閾値より小さいかまたは等しい場合、前記最終的な優先度パラメータは第2の値に等しく計算される
    請求項19に記載のシステム。
JP2014553826A 2012-01-27 2013-01-25 システムコントローラのfifoコマンドキューを動的に管理する方法、集積回路およびシステム Expired - Fee Related JP6169615B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261591705P 2012-01-27 2012-01-27
US61/591,705 2012-01-27
PCT/IB2013/000521 WO2013111019A2 (en) 2012-01-27 2013-01-25 Systems and methods for dynamic priority control

Publications (2)

Publication Number Publication Date
JP2015505114A true JP2015505114A (ja) 2015-02-16
JP6169615B2 JP6169615B2 (ja) 2017-07-26

Family

ID=48325782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014553826A Expired - Fee Related JP6169615B2 (ja) 2012-01-27 2013-01-25 システムコントローラのfifoコマンドキューを動的に管理する方法、集積回路およびシステム

Country Status (6)

Country Link
US (3) US9146690B2 (ja)
EP (1) EP2807567B1 (ja)
JP (1) JP6169615B2 (ja)
KR (1) KR20140127233A (ja)
CN (1) CN104160384B (ja)
WO (1) WO2013111019A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9824004B2 (en) 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
US9454310B2 (en) 2014-02-14 2016-09-27 Micron Technology, Inc. Command queuing
KR101699377B1 (ko) * 2014-07-02 2017-01-26 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US10055368B2 (en) * 2016-02-26 2018-08-21 Sandisk Technologies Llc Mobile device and method for synchronizing use of the mobile device's communications port among a plurality of applications
US10037246B1 (en) * 2016-07-25 2018-07-31 Cadence Design Systems, Inc. System and method for memory control having self writeback of data stored in memory with correctable error
CN106647359B (zh) * 2016-11-24 2019-02-05 哈工大机器人集团上海有限公司 一种调度方法
WO2018123268A1 (ja) * 2016-12-27 2018-07-05 パナソニックIpマネジメント株式会社 測位システム、基地局および測位方法
KR20180090124A (ko) * 2017-02-02 2018-08-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN108984108A (zh) * 2017-06-05 2018-12-11 北京忆恒创源科技有限公司 用于调度io命令的方法与固态存储设备
CN107205035B (zh) * 2017-06-15 2020-11-10 公安部交通管理科学研究所 一种基于互联网的驾驶人考试预约管理方法
US10318301B2 (en) * 2017-08-31 2019-06-11 Micron Technology, Inc. Managed multiple die memory QoS
CN108259368A (zh) * 2018-01-11 2018-07-06 郑州云海信息技术有限公司 一种基于fpga的数据传输系统及方法
US10725696B2 (en) * 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US11144240B2 (en) 2018-08-24 2021-10-12 Micron Technology, Inc. Memory sub-system for increasing bandwidth for command scheduling
US11038856B2 (en) * 2018-09-26 2021-06-15 Marvell Asia Pte, Ltd. Secure in-line network packet transmittal
US11095626B2 (en) 2018-09-26 2021-08-17 Marvell Asia Pte, Ltd. Secure in-line received network packet processing
US11288185B2 (en) * 2019-01-03 2022-03-29 Silicon Motion, Inc. Method and computer program product for performing data writes into a flash memory
CN111399750B (zh) * 2019-01-03 2023-05-26 慧荣科技股份有限公司 闪存数据写入方法及计算机可读取存储介质
CN113377277B (zh) * 2020-03-09 2024-08-16 伊姆西Ip控股有限责任公司 管理存储器的方法、设备和计算机程序产品
CN113179227B (zh) * 2021-04-26 2023-05-19 哈尔滨铁路科研所科技有限公司 基于队列的at指令控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198264A (ja) * 1995-12-06 1997-07-31 Internatl Business Mach Corp <Ibm> データ処理システム用の動的待ち行列優先順位づけのシステムおよび方法
JP2001217893A (ja) * 2000-02-03 2001-08-10 Toyo Commun Equip Co Ltd 電源保持回路及びこれを用いた回線終端装置
WO2007099613A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited コマンド選択方法、装置、コマンド投入方法、及び装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6270040B1 (en) * 2000-04-03 2001-08-07 Kam Industries Model train control system
US6681270B1 (en) * 1999-12-07 2004-01-20 Texas Instruments Incorporated Effective channel priority processing for transfer controller with hub and ports
IL134755A0 (en) * 2000-02-28 2001-04-30 Terracross Ltd Method and apparatus for high-speed generation of a priority metric for queues
US6738386B1 (en) * 2000-05-11 2004-05-18 Agere Systems Inc. Controlled latency with dynamically limited queue depth based on history and latency estimation
US7035984B2 (en) * 2001-12-31 2006-04-25 Intel Corporation Memory arbiter with grace and ceiling periods and intelligent page gathering logic
US7240090B2 (en) * 2002-11-04 2007-07-03 Hewlett-Packard Development Company, L.P. Data queueing
US7299324B2 (en) * 2003-11-05 2007-11-20 Denali Software, Inc. Reactive placement controller for interfacing with banked memory storage
US20050289530A1 (en) * 2004-06-29 2005-12-29 Robison Arch D Scheduling of instructions in program compilation
JP4895183B2 (ja) * 2006-07-21 2012-03-14 キヤノン株式会社 メモリコントローラ
CN101075963B (zh) * 2007-07-02 2012-05-23 中兴通讯股份有限公司 一种基于网络QoS的动态控制装置及其方法
KR20090085906A (ko) * 2008-02-05 2009-08-10 삼성전자주식회사 로지컬 인터페이스의 우선순위에 따른 라우팅 처리 시스템및 그 제어방법
JP5770721B2 (ja) * 2010-05-24 2015-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 情報処理システム
US9354926B2 (en) * 2011-03-22 2016-05-31 International Business Machines Corporation Processor management via thread status

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198264A (ja) * 1995-12-06 1997-07-31 Internatl Business Mach Corp <Ibm> データ処理システム用の動的待ち行列優先順位づけのシステムおよび方法
JP2001217893A (ja) * 2000-02-03 2001-08-10 Toyo Commun Equip Co Ltd 電源保持回路及びこれを用いた回線終端装置
WO2007099613A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited コマンド選択方法、装置、コマンド投入方法、及び装置

Also Published As

Publication number Publication date
EP2807567B1 (en) 2018-03-07
EP2807567A2 (en) 2014-12-03
US9411753B2 (en) 2016-08-09
CN104160384B (zh) 2017-06-16
WO2013111019A2 (en) 2013-08-01
JP6169615B2 (ja) 2017-07-26
WO2013111019A3 (en) 2013-10-24
US20160313949A1 (en) 2016-10-27
US20130198416A1 (en) 2013-08-01
KR20140127233A (ko) 2014-11-03
US9146690B2 (en) 2015-09-29
CN104160384A (zh) 2014-11-19
US20160011993A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
JP6169615B2 (ja) システムコントローラのfifoコマンドキューを動的に管理する方法、集積回路およびシステム
KR101557090B1 (ko) 이종 소스들에 대한 계층적인 메모리 중재 기법
KR101270848B1 (ko) 트래픽 클래스들과 관련된 포트들을 갖는 다중 포트 메모리 제어기
US20120239873A1 (en) Memory access system and method for optimizing SDRAM bandwidth
US20130054901A1 (en) Proportional memory operation throttling
JP2009193107A (ja) メモリアクセス装置
JP6146128B2 (ja) データ処理装置
JP5591729B2 (ja) トレースデータの優先度の選択
JP2008046997A (ja) 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置
US10545898B2 (en) Shared resource access arbitration method, and shared resource access arbitration device and shared resource access arbitration system for performing same
US20110246688A1 (en) Memory arbitration to ensure low latency for high priority memory requests
JP2014075028A (ja) 画像処理装置
US9134910B2 (en) Set head flag of request
JP6004463B2 (ja) 記憶装置及びその制御方法
US8356119B2 (en) Performance by reducing transaction request ordering requirements
US9965321B2 (en) Error checking in out-of-order task scheduling
JP2010044645A (ja) データ転送装置、およびデータ転送方法
US20120079216A1 (en) Memory control device and method
JP4440181B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
JP4327081B2 (ja) メモリアクセス制御回路
CN110764710A (zh) 低延迟高iops的数据访问方法与存储系统
JP2009205573A (ja) バッファ制御装置およびバッファ制御方法
JP2011048744A (ja) メモリアクセス処理装置及び方法
JP2007164388A (ja) バス調停方法及び装置及びプログラム
JP2015014872A (ja) データ処理装置、データ処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170510

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: 20170530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170628

R150 Certificate of patent or registration of utility model

Ref document number: 6169615

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350