JP2016532950A - I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること - Google Patents

I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること Download PDF

Info

Publication number
JP2016532950A
JP2016532950A JP2016529873A JP2016529873A JP2016532950A JP 2016532950 A JP2016532950 A JP 2016532950A JP 2016529873 A JP2016529873 A JP 2016529873A JP 2016529873 A JP2016529873 A JP 2016529873A JP 2016532950 A JP2016532950 A JP 2016532950A
Authority
JP
Japan
Prior art keywords
task
target device
host controller
queue
tasks
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.)
Ceased
Application number
JP2016529873A
Other languages
English (en)
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 JP2016532950A publication Critical patent/JP2016532950A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

キューバリア機能を一方的にサポートするホストコントローラが提供される。ホストコントローラは、キューバリアインジケータを付けられた第1のタスクを受信することができる。結果として、ホストコントローラは、ターゲットデバイスへの第1のタスクの送信を引き延ばす。さらに、ホストコントローラは、第1のタスク後に生じる任意のタスクのターゲットデバイスへの送信も引き延ばす。ホストコントローラは、ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、第1のタスクのみをターゲットデバイスに送る。ホストコントローラは、ターゲットデバイスから、第1のタスクが処理されたという指示が受信されると、第1のタスク後に生じる任意のタスクのみをターゲットデバイスに送る。

Description

米国特許法第119条の下での優先権の主張
本特許出願は、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、2013年7月23日に出願された「Providing Queue Barriers When Unsupported By An I/O Protocol or Target Device」と題する米国仮出願第61/857,570号の優先権を主張する。
以下の内容は包括的には、キュー内のタスク実行に関し、より具体的には、使用中の入力/出力(I/O)プロトコルによってキューバリアがサポートされないときに、そのようなキューバリアを設けるか、または支援するための方法およびデバイスに関する。
ホストデバイス内のI/Oホストコントローラ内で動作するソフトウェアは、I/OホストコントローラによってターゲットI/Oデバイスに送られるいくつかのタスクを、キューに入れ、実行するためにキューに入れることができる。場合によっては、実行の順序は、ホストデバイスの制御を超えて、受信側のターゲットI/Oデバイスによって決定される場合がある。したがって、受信側ターゲットI/Oデバイスはタスクの実行の順序を変更することができる。
場合によっては、ホストデバイス上のソフトウェアは、ターゲットI/Oデバイスに送られるタスクの特定の実行順序を保証したい場合がある。たとえば、いくつかのI/O通信プロトコルは、タスクを順序から外れて処理できないか否かを指示するための役割を果たすキューバリアを設ける。別の場合では、ターゲットI/Oデバイスおよび/またはI/O通信プロトコル(ホストデバイスとターゲットI/Oデバイスとの間で用いられる)が、そのような実行順序を強制するための引っかかり(hook)を提供しない場合がある。
そのため、キューバリア機能がターゲットI/OデバイスまたはI/O通信プロトコルによってサポートされない状況において、ホストデバイスがターゲットI/Oデバイスにおいて実行順序を制御できるようにするキューバリア機能を提供することが必要とされている。
ターゲットデバイスと通信するための通信インターフェースと、通信インターフェースに結合される処理回路とを備えるホストコントローラが提供される。処理回路は、(a)キューバリアインジケータ付きの第1のタスクを入手し、(b)ターゲットデバイスへの第1のタスクの送信を引き延ばし、および/または(c)ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、第1のタスクをターゲットデバイスに送るように構成することができる。
一例では、処理回路はさらに、(a)タスクキューから複数のタスクを順次に入手し、第1のタスクは複数のタスクの中の1つであり、(b)各タスクがキューバリアインジケータ付きであるか否かを確認し、および/または(c)第1のタスクがキューバリアインジケータ付きであると判断するように構成することができる。
さらに、処理回路はさらに、ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されるまで、第1のタスク後に生じる任意のタスクのターゲットデバイスへの送信を引き延ばすように構成することができる。次いで、処理回路は、ターゲットデバイスから、第1のタスクが処理されたという指示が受信されると、第1のタスク後に生じる任意のタスクをターゲットデバイスに送ることができる。
一実施態様では、ホストコントローラおよびターゲットデバイスは、キューバリアインジケータ機能がサポートされないプロトコルを用いて通信する場合がある。一態様によれば、ターゲットデバイスにおいて、個別のキューバリアインジケータ機能がサポートされない。別の態様によれば、キューバリアインジケータは、ターゲットデバイスにおいてサポートされるか、またはホストコントローラとターゲットデバイスとの間の入力/出力通信プロトコルにおいてサポートされる個別のキューバリア機能とは異なる場合がある。
一実施態様では、ホストコントローラは、ターゲットデバイスとは個別のデバイスとすることができる。別の実施態様では、ホストコントローラは、単一の半導体デバイスにおいて、ターゲットデバイスと一体に構成することができる。一例では、ターゲットデバイスは記憶デバイスとすることができ、タスクは読出し動作および/または書込み動作を含む。
第1のタスクは、キューバリアインジケータを伴うことなく、ターゲットデバイスに送られる場合がある。第1のタスクおよび他のタスクは、処理回路によってタスクキューから入手される場合があり、第1のタスクおよび他のタスクの各々は、各タスクがキューバリアインジケータ付きの他のタスクに対してタスクキューに入れられた順序において、処理回路によって処理される。
ターゲットデバイスと通信するためにホストコントローラ上で使用できる方法も提供され、(a)キューバリアインジケータ付きの第1のタスクを入手することと、(b)ターゲットデバイスへの第1のタスクの送信を引き延ばす(stall)(たとえば、延期する、一時停止する)ことと、(c)ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、第1のタスクをターゲットデバイスに送ることとを含む。
その方法はさらに、(a)タスクキューから複数のタスクを順次に入手することであって、第1のタスクは複数のタスクの中の1つである、入手すること、(b)各タスクがキューバリアインジケータ付きであるか否かを確認すること、(c)第1のタスクがキューバリアインジケータ付きであると判断すること、および/または(d)ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されるまで、第1のタスク後に生じる任意のタスクのターゲットデバイスへの送信を引き延ばすことを含むことができる。ターゲットデバイスから、第1のタスクが処理されたという指示が受信されると、第1のタスク後に生じる任意のタスクをターゲットデバイスに送ることができる。
一例では、ホストコントローラおよびターゲットデバイスは、キューバリアインジケータ機能がサポートされないプロトコルを用いて通信する場合がある。別の例では、キューバリアインジケータは、ターゲットデバイスにおいてサポートされるか、またはホストコントローラとターゲットデバイスとの間の入力/出力通信プロトコルにおいてサポートされる個別のキューバリア機能とは異なる場合がある。さらに別の例では、キューバリアインジケータ機能はターゲットデバイスにおいてサポートされない。
1つまたは複数の命令を有する非一時的プロセッサ可読記憶媒体が提供され、1つまたは複数の命令は、少なくとも1つの処理回路によって実行されたときに、前記少なくとも1つの処理回路に、(a)キューバリアインジケータ付きの第1のタスクを入手させ、(b)ターゲットデバイスへの第1のタスクの送信を引き延ばさせ、(c)ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、第1のタスクをターゲットデバイスに送らせ、および/または(d)ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されるまで、第1のタスク後に生じる任意のタスクのターゲットデバイスへの送信を引き延ばさせる。
非一時的プロセッサ可読記憶媒体は1つまたは複数の命令をさらに含むことができ、1つまたは複数の命令は、少なくとも1つの処理回路によって実行されたときに、前記少なくとも1つの処理回路に、(a)タスクキューから複数のタスクを順次に入手させ、第1のタスクは複数のタスクの中の1つであり、(b)各タスクがキューバリアインジケータ付きであるか否かを確認させ、および/または(c)第1のタスクがキューバリアインジケータ付きであると判断させる。ターゲットデバイスから、第1のタスクが処理されたという指示が受信されると、第1のタスク後に生じる任意のタスクをターゲットデバイスに送ることができる。
バスを介してターゲットI/Oデバイスに結合され、キューバリア機能を実施するように構成されるホストデバイスを備えるシステムのブロック図である。 キューバリア機能をいかに実施できるかを示す流れ図である。 ホストデバイス上のキューバリアインジケータの例示的な実施態様の処理を図式的に示す図である。 ホストデバイス上のキューバリアインジケータの例示的な実施態様の処理を図式的に示す図である。 ホストデバイス上のキューバリアインジケータの例示的な実施態様の処理を図式的に示す図である。 タスクのためのキューバリアを実施するためにホストコントローラによって使用できる方法を示す流れ図である。 ホスト制御によるキューバリア機能を実施するホストデバイスの一例を示すブロック図である。 キューバリア機能を実施するためにホストデバイスにおいて使用できる例示的な方法を示す流れ図である。 キューバリア機能を支援するように構成される例示的なホストコントローラを示すブロック図である。 キューバリア機能を支援するように構成されるホストコントローラによって使用できる例示的な方法を示す流れ図である。 キューバリア機能を支援するように構成されるホストコントローラによって使用できる例示的な方法を示す別の流れ図である。
添付の図面に関連して以下に記載される説明は、種々の構成の説明として意図されており、本明細書に記載される概念および特徴が実践することができる唯一の構成を表すことは意図していない。以下の説明は、種々の概念を完全に理解してもらうために、具体的な細部を含む。しかしながら、これらの概念がこれらの具体的な細部を用いることなく実践できることは、当業者には明らかであろう。場合によっては、説明される概念および特徴を曖昧にするのを避けるために、周知の回路、構造、技法および構成要素がブロック図の形で示される。
本開示全体にわたって提示されている種々の概念は、幅広い種類の電気通信システム、ネットワークアーキテクチャ、電子デバイス、モバイルデバイス、コンピューティングデバイスおよび通信標準規格にわたって実施することができる。本開示の特定の態様が、具体的なプロトコル、システムおよび技術を参照しながら以下に説明される。しかしながら、本開示の1つまたは複数の態様が、1つまたは複数の他のワイヤレス通信プロトコル、システムおよび技術の中で利用され、その中に含まれる場合があることを当業者は認識されよう。
〔概説〕
本開示の種々の特徴および態様は、受信側ターゲットデバイスまたはインターフェースプロトコルが、キュー順序付けに関するサポートを提供しない場合であっても、タスクが特定の順序付けにおいて実行されることを保証することに関連する。ホストデバイス上で動作するホストソフトウェアが、特定のタスクに、キューバリア(QBR)インジケータ(たとえば、タグまたはマーカ)を付けることができる。しかしながら、ホストデバイスが通信するターゲットI/Oデバイス、および/または用いられるI/O通信プロトコルが、そのようなQBRインジケータをサポートしない場合がある。そのため、ホストI/Oコントローラが、QBRインジケータでタグ付けされるか、またはQBRインジケータを付けられたタスクを処理するとき、先行して(ターゲットI/Oデバイスにおいて)キューに入れられたすべてのタスクが実行されるまで、ホストI/OコントローラはそのタスクをターゲットI/Oデバイスに送らない。ターゲットI/Oデバイスは、各タスクが実行または処理されるのに応じて、ホストI/Oコントローラに実行確認応答を送ることができる。ホストデバイスにおけるホストI/Oコントローラは、QBR付きのタスク後にキューに入れられたすべてのタスクを引き延ばす/保留することもでき、QBR付きのタスクが実行された後にのみ、それらのタスクをターゲットI/Oデバイスに渡すことができる。このようにして、ホストデバイスのホストI/Oコントローラにおいて、I/Oインターフェースの一部としてキューバリアを実施することができる。たとえば、ホストI/Oコントローラにおけるそのようなキューバリアは、I/O通信プロトコルおよび/またはターゲットI/Oデバイスによってキューバリアがネイティブにサポートされない場合に有用な場合がある。他の例では、ホストI/Oコントローラにおけるそのようなキューバリアは、I/O通信プロトコルがキューバリアをサポートする場合であっても有用な場合がある。たとえば、I/O通信プロトコルがキューバリアをサポートする場合であっても、たとえば、他のキューバリアが依然として進行中である間にI/O通信プロトコルがキューバリアコマンドを送ることを許されない場合があるので、依然としてホストI/Oコントローラがキューバリアも実施できるようにすることが望ましい場合がある。こ
の概念は、1つまたは複数のQBRを付けられた/QBRでタグ付けされたタスクが、キュー内で任意の一時点で(すなわち、同時に)用いられることを企図している。
〔例示的な動作環境〕
図1は、バス106を介してターゲットI/Oデバイス104に結合され、キューバリア機能を実施するように構成されるホストデバイス102を備えるシステムのブロック図である。ホストデバイス102は、ホストソフトウェア108と、タスクキュー109と、ホストコントローラ110とを含むことができる。ターゲットI/Oデバイス104は、コントローラ112と、タスクキューと、記憶デバイス116とを含むことができる。ホストタスクキュー109は、ターゲットI/Oデバイス104に送られるタスクを保留することができる。たとえば、そのようなホストタスクキュー109は、ホストコントローラ110にタスクを与えるためにホストソフトウェア108によって用いられる場合があり、タスクがターゲットI/Oデバイス104に送られるまでタスクを保留するために用いられる場合がある。
種々の実施態様では、ターゲットI/Oデバイス104は、ホストデバイスとは異なる、もしくは個別の構成要素とすることができるか、またはターゲットI/Oデバイス104は、ホストデバイス102とともに、単一の半導体チップの一部として集積することができる。たとえば、ターゲットI/Oデバイス104は、電子装置技術連合評議会(JEDEC:Joint Electron Device Engineering Council)による組み込みマルチメディアコントローラ(eMMC:Embedded Multi-Media Controller)標準規格に準拠するフラッシュ記憶デバイスとすることができる。キューバリアは、他のタスクに対するタスクの実行順序を規定できるようにするプロトコルによって規定されることがある。しかしながら、これは、ターゲットI/Oデバイスが、そのようなバリアタグ/マーカによって規定される実行順序を認識し、準拠するときにのみ機能する。
1つの手法によれば、ホストハードウェア108は、他のタスクに対して特定の順序において実行されるべきであるタスクを生成することができる。たとえば、第1のタスクは、後続のすべてのタスクの前に実行されなければならない。そのため、ホストソフトウェア108は、第1のタスクが他のタスクに対して特定の順序において実行されるべきであることを指示するために、第1のタスクにキューバリア(QBR)インジケータ(たとえば、タグ、マーカまたはビット)を付けることができる(たとえば、第1のタスクは、その前に発行されたすべてのタスクの後に実行されなければならず、および/またはその後に発行されたすべてのタスクの前に実行されなければならない、など)。ホストコントローラ110は、第1のタスクがQBRインジケータ付きであることを認識することができる。したがって、ホストコントローラ110は、すべての先行するタスクがターゲットI/Oデバイス104によって実行されたという確認応答または指示が受信されるまで、第1のタスクを、ターゲットI/Oデバイス104に送る代わりに、引き延ばすか、または保留することができる。同様に、ホストコントローラ110は、後続のすべてのタスクをターゲットI/Oデバイス104に送る代わりに、それらのタスクを引き延ばすか、または保留することができる。ホストコントローラ104が、すべての先行するタスクがターゲットI/Oデバイス104によって実行されたという指示を受信すると、ホストコントローラは、第1のタスクをターゲットI/Oデバイス104に送る。次いで、ホストコントローラ110は、後続のタスクをターゲットI/Oデバイス104に送る前に、第1のタスクがターゲットI/Oデバイス104によって実行されたという指示を受信するのを待つ。本明細書において開示される「タスク」は、データタスクおよび/または非データタスク(たとえば、コマンド、命令など)とすることができることに留意されたい。一例では、タスクは読出し動作および/または書込み動作を含むことができる。
図2は、キューバリア機能をいかに実施できるかを示す流れ図である。ホストソフトウェア108はタスク1...nを生成し(204)、それらのタスクをホストコントローラ110に与えることができる。ホストコントローラ110は、次いで、タスク1...nをターゲットコントローラ112に送り、ターゲットコントローラ112はそれらのタスクをタスクキュー114に与え、タスクキューからのタスクを実行または処理することができる(208)。
ホストソフトウェア108は、キューバリアインジケータ212(たとえば、マーカまたはタグ)付きのタスクRも生成することができる(210)。タスクRは、ホストコントローラ110に与えられる。しかしながら、タスクRはQBRとしてタグ付けされるか、またはQBRを付けられるので、ホストコントローラ110はタスクRを引き延ばすか、または保留する(216)。ホストコントローラ110は、先行して送られたすべてのタスクが実行されたか、または処理されたというターゲットI/Oデバイス104からの確認応答を待つ。タスク1...nがターゲットI/Oデバイス104によって実行されたか、または処理されたという確認応答を受信する(217)と、ホストコントローラ110は、タスクRをターゲットコントローラ112に送る。いくつかの実施態様において、タスク1...nが実行または処理されたという確認応答は、最後のタスク(すなわち、タスクn)が処理されつつあるが、そのような処理がまだ完了していないときに送られる場合があることに留意されたい。ターゲットコントローラ112から、タスクRはタスクキュー114に渡され、タスクキューからのタスクが処理または実行される(226)。
そのときに、ホストコントローラ110は、タスクRがターゲットI/Oデバイス104によって実行または処理されたという確認応答を受信するまで、タスクR後に生成された任意のタスクt...w 218を引き延ばすか、または保留する(222)。タスクRがターゲットI/Oデバイス104によって実行または処理されたという確認応答を受信する(224)と、ホストコントローラ110は、タスクt...wをターゲットコントローラ112に送り、ターゲットコントローラ112は、そのタスクをタスクキュー114に渡し、タスクキューからのタスクが処理または実行される場合がある(228)。
このようにして、ホストコントローラ110は、ターゲットI/Oコントローラおよび/またはI/Oプロトコルがキューバリアをサポートしないときでも、タスクのためのキューバリアを一方的に実施することができる。その結果として、ホストコントローラ110によって、タスク実行順序付けを実施することができる。
QBRを付けられた/QBRでタグ付けされた1つまたは複数のタスクは、タスクキュー内で任意の一時点で(すなわち、同時に)用いることができることに留意されたい。そのため、QBRとしてタグ付けされるか、またはQBRを付けられた複数のタスクをホストデバイスキュー内に入れることができ、QBRを付けられた/QBRでタグ付けされた各タスクは、ホストデバイスタスクキュー内に入れられた順序で、ターゲットI/Oデバイスに送られる。
図3(図3A、図3Bおよび図3Cを含む)は、ホストデバイス上のキューバリアインジケータの例示的な実施態様の処理を図式的に示す。ホストデバイス102は、ホストコントローラ110によって処理するためにタスクが入れられる第1のタスクキュー302を実現することができる。ターゲットデバイス104が、同様に、ターゲットデバイス104によって処理するために、ターゲットコントローラ112によって受信されたタスクが入れられる第2のタスクキュー304を実現することができる。
第1のタスクキュー302内のタスクは、キューバリアインジケータでタグ付けされるか、またはキューバリアインジケータを付けられる場合がある。たとえば、キューバリアインジケータ=「0」は非キューバリアを指示し、キューバリアインジケータ=「1」はキューバリアを指示する。ホストコントローラ110は、各タスクを実行または処理する前に、タスクごとにキューバリアインジケータをチェックすることができる。特定のタスクに関してキューバリアインジケータ=「0」である場合には、ホストコントローラはタスクを処理する。そうではなく、特定のタスクに関してキューバリアインジケータ=「1」である場合には、ホストコントローラは、先行して送られたすべてのタスクがターゲットデバイス104によって処理されたという指示または確認応答を受信するまで、そのタスク(そして場合によっては後続のすべてのタスク)の処理を引き延ばすか、または休止する。
時点kにおいて、ホストコントローラ110は、タスクnをターゲットデバイス104に送ることによって、タスクnを実行または処理することができ、そのタスクは第2のタスクキュー304に入れられる。ターゲットデバイス104が各タスクを処理するとき、ターゲットデバイス104は、ホストデバイス102に、各タスクに関する実行確認応答を送ることができる。
時点k+iにおいて、ホストコントローラ110は、タスクn+iをターゲットデバイス104に送ることによってタスクn+iを実行または処理することができ、そのタスクは第2のタスクキュー304に入れられる。
時点k+i+1において、ホストコントローラ110は、タスクpをいつでも実行または処理することができる。タスクpのためのキューバリアインジケータをチェックすると、ホストコントローラは、キューバリアインジケータがイネーブルされているか、または「1」に設定されており、タスクpのためのキューバリアがアサートされていることを指示することを検出する。そのため、ホストコントローラ110は、ターゲットデバイス104に先行して送られたすべてのタスクが処理されたという確認応答または指示を受信するまで、タスクp(そして後続のすべてのタスク)の処理を休止するか、または引き延ばす。
時点k+i+jによって、ホストコントローラ110は、タスクn+iを含む先行するすべてのタスクがターゲットデバイス104によって実行または処理されたという確認応答を受信している場合がある。そのため、時点k+i+j+1において、ホストコントローラ110は、タスクpを処理することができる。ホストコントローラ110は、タスクp(すなわち、キューバリアインジケータを有するタスク)がターゲットデバイスによって処理されたという指示または確認応答まで、後続のすべてのタスクを引き延ばすことができる。時点k+i+j+2において、ホストコントローラ110は、タスクpのための実行確認応答を受信する場合がある。次いで、時点k+i+j+3において、ホストコントローラ110は、後続のタスクp+1を処理することができ、それ以降も同様である。
一例において、キューバリアインジケータは各タスクに添付されるビットとすることができることに留意されたい。別の例では、タスクごとのキューバリアインジケータは、個別のメモリセグメント内に保持される場合がある。
図4は、タスクのためのキューバリアを実施するためにホストコントローラによって使用できる方法を示す流れ図である。この方法は、たとえば、図1、図2および図3において示されるホストコントローラ110によって実施することができる。ホストコントローラは、ホストコントローラがターゲットデバイスと通信するための通信インターフェースを含むことができる。ホストコントローラ内の処理回路は、(a)キューバリアインジケータ付きの第1のタスクを入手し(402)、(b)ターゲットデバイスへの第1のタスクの送信を引き延ばし(404)、 (c)第1のタスク後に生じる任意のタスクのターゲットデバイスへの送信を引き延ばし(406)、(d)ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信される(408)と、第1のタスクをターゲットデバイスに送り(410)、および/または(e)ターゲットデバイスから、第1のタスクが処理されたという指示が受信される(414)と、第1のタスク後に生じる任意のタスクをターゲットデバイスに送る(416)ように構成することができる。そうでない場合には、そのような指示が受信されるまで、第1のタスク後に生じる任意のタスクが引き延ばされる(412)。いくつかの実施態様では、キューバリアインジケータはターゲットデバイスに送られないことに留意されたい。
いくつかの実施態様では、ホストコントローラおよびターゲットデバイスは、キューバリアインジケータ機能がサポートされないプロトコルを用いて通信する場合がある。さらに、キューバリアインジケータ機能は、ターゲットデバイスにおいてサポートされない場合もある。ホストコントローラは、単一の半導体デバイスにおいて、ターゲットデバイスと一体に構成することができる。一例では、ターゲットデバイスは記憶デバイスとすることができる(たとえば、不揮発性記憶装置、揮発性記憶装置、フラッシュ記憶装置など)。
例示的なホストデバイス
図5は、ホスト制御によるキューバリア機能を実施するホストデバイスの一例を示すブロック図である。ホストデバイス502は、処理回路504と、ホストコントローラ506と、プロセッサ可読記憶媒体/デバイス508と、メモリデバイス530と、トランシーバ回路512と、バス510とを含むことができる。
処理回路504は、1つまたは複数のタスクを生成し、それらのタスクを共有メモリデバイス530内のタスクキュー522に入れるように構成されるタスク発生器モジュール/回路514を含むことができる。また、処理回路504は、1つまたは複数のタスクに、オペレーティングシステム、ホストソフトウェアまたはコンパイラによって指示されるようなキューバリアインジケータを付けるように構成されるキューバリアマーキングモジュール/回路516も含むことができる。一例では、プロセッサ可読記憶媒体デバイス508は、処理回路504上で動作するホストソフトウェアがそのような機能を実行できるようにするためのタスク発生器命令524およびキューバリアマーキング命令526を含むことができる。
ホストコントローラ506は、メモリデバイス530内のタスクキュー522からタスクを入手することができる。キューバリアインジケータチェッカ520が、実行前に、その特定のタスクのためにキューバリアインジケータが設定されているか否かを確認するために、各タスクをチェックすることができる。そのタスクのためにキューバリアインジケータが設定されていない場合には、ホストコントローラ506はタスクを処理することができ、たとえば、そのタスク(たとえば、データおよびコマンド)をトランシーバ回路512を介してターゲットデバイスに送る。そのタスクのためにキューバリアインジケータが設定されている(たとえば、「1」の)場合には、ホストコントローラ506は、そのタスクおよび後続のすべてのタスクの実行または処理を引き延ばすか、一時停止するか、または休止することができる。一例では、タスクは、ターゲットデバイス上で実行されることになる読出し動作および/または書込み動作を含むことができる。
ホストコントローラ506は、処理されているタスクのためのステータス情報を保持することができる。ターゲットデバイスは、ターゲットデバイスが処理したタスクごとに、ホストコントローラ506に確認応答を送ることができる。先行するすべてのタスクが処理されたという指示を受信すると、ホストコントローラ506は、一時停止または休止されたタスクと、後続のすべてのタスクとを処理する(たとえば、送る)ことができる。
図6は、キューバリア機能を実施するためにホストデバイスにおいて使用できる例示的な方法を示す流れ図である。ホストデバイス上で動作するホストソフトウェアが、1つまたは複数のタスクを入手または生成することができる(602)。タスクごとに、ホストソフトウェアは、そのタスクがキューバリアインジケータを付けられるべきか否かを確認することができる(604)。付けられるべきである場合には、そのタスクのためのバリアキューインジケータが設定またはイネーブルされる(606)。次いで、各タスクはホストコントローラと共有されるタスクキューに記憶される(608)。
例示的なホストコントローラ
図7は、キューバリア機能を支援にするように構成される例示的なホストコントローラを示すブロック図である。この例では、ホストコントローラ702は、1つまたは複数のレジスタ708および/または入力/出力通信インターフェースもしくは回路710に結合されるコントローラ処理回路704を含むことができる。コントローラ処理回路704は、タスク処理モジュール/回路711、キューバリアインジケータ検出モジュール/回路712、タスク休止モジュール/回路714、および/またはタスク再開モジュール/回路716を含むことができる。
タスク処理モジュール/回路711は、タスクキュー726からタスクを検索し、検索されたタスクを処理し、次いで、タスクキュー726内の次のタスクを処理することができる。そのようなタスクは、たとえば、外部ターゲットデバイスからの読出し動作または外部ターゲットデバイスへの書込み動作を実行することを含むことができる。キューバリアインジケータ検出モジュール/回路712は、そのタスクを処理する前に、特定のタスクがキューバリアインジケータを付けられるか、またはタグ付けされるか否かを確認することができる。特定のタスクのためにキューバリアインジケータが検出された場合には、タスク休止モジュール/回路714は、そのタスクおよび後続のタスクの処理をフリーズ、休止または一時停止することができる(たとえば、現在のタスクの処理およびタスクキュー内で未完の任意の後続のタスクの処理を休止する)。タスク再開モジュール/回路716は、ターゲットデバイスにおける先行するタスクの完了を監視することができ、先行するすべてのタスクがターゲットデバイスによって処理されたという指示を受信すると、タスクキュー内のタスクの処理を再開する。
一例では、ホストコントローラ702は、1つまたは複数の動作命令を入手するために、(たとえば、I/Oインターフェース回路710を介して)記憶デバイス706に結合することができる。たとえば、記憶デバイス706は、タスクキュー726からのタスクを処理するタスク処理命令719、バリアインジケータの存在または発生を検出するキューバリアインジケータ検出命令720、バリアインジケータが検出されたときにタスクキューからのタスクの処理を休止するタスク休止命令722、および/またはバリアインジケータがクリアされると、タスクの処理を再開するタスク再開命令724を含むことができる。
一例では、入力/出力通信インターフェースまたは回路710は、コントローラ処理回路704をバスに通信可能に結合する役割を果たすことができ、バスを通して、コントローラ処理回路704は、トランシーバ回路を介して、ターゲットデバイスに結合する。代替的には、入力/出力通信インターフェースまたは回路710は、コントローラ処理回路704をターゲットデバイスに直接結合することができる。
図8は、キューバリア機能を支援するように構成されるホストコントローラによって使用できる例示的な方法を示す流れ図である。ホストコントローラは、タスクキューからタスクを入手することができる(802)。次いで、ホストコントローラは、タスクがキューバリアインジケータを付けられているか否かを確認する(804)。付けられている場合には、ホストコントローラは、ターゲットデバイスへのタスクの送信を引き延ばす(806)。ホストコントローラが、ターゲットデバイスが先行して送られたすべてのタスクの処理を完了したという指示を受信する(808)と、ホストコントローラはタスクをターゲットデバイスに送る(810)。このプロセスは、タスクキュー内のタスクごとに繰り返すことができる。
図9は、キューバリア機能を支援するように構成されるホストコントローラによって使用できる例示的な方法を示す別の流れ図である。ホストコントローラは、タスクキューから複数のタスクを順次に入手することができ、第1のタスクは複数のタスクの中の1つである(902)。各タスクが入手または検索されると、ホストコントローラは、各タスクがキューバリアインジケータを付けられているか否かを確認することができる(904)。たとえば、第1のタスクがキューバリアインジケータを付けられていると判断することができる(906)。そのため、ホストコントローラは、ターゲットデバイスへの第1のタスクの送信を引き延ばす(908)。同様に、ホストコントローラは、ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されるまで、第1のタスク後に生じる任意のタスクのターゲットデバイスへの送信も引き延ばすことができる(910)。ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、第1のタスクがターゲットデバイスに送られる(912)。ターゲットデバイスから、第1のタスクが処理されたという指示が受信されると、第1のタスク後に生じる任意のタスクをターゲットデバイスに送ることができる(914)。
一例では、ホストコントローラおよびターゲットデバイスは、キューバリアインジケータ機能がサポートされないプロトコルを用いて通信する。別の例では、キューバリアインジケータ機能はターゲットデバイスにおいてサポートされない。さらに別の例では、キューバリアインジケータは、ターゲットデバイスにおいてサポートされるか、またはホストコントローラとターゲットデバイスとの間の入力/出力通信プロトコルにおいてサポートされる個別のキューバリア機能とは異なる場合がある。
一実施態様では、ホストコントローラは、ターゲットデバイスとは個別のデバイスとすることができる。別の実施態様では、ホストコントローラは、単一の半導体デバイスにおいて、ターゲットデバイスと一体に構成することができる。さらに別の実施態様では、ターゲットデバイスは記憶デバイスとし、タスクは読出し動作および/または書込み動作を含む。一態様によれば、第1のタスクは、キューバリアインジケータを伴うことなく、ターゲットデバイスに送られる。
上記の態様、構成、および実施形態は、具体的な細部を用いて詳細に論じられたが、図1、図2、図3、図4、図5、図6、図7および/または図8に示される構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、再構成し、および/または組み合わせて、単一の構成要素、ステップ、特徴または機能にすることができるか、あるいは、いくつかの構成要素、ステップ、または機能において具現することができる。本開示から逸脱することなく、追加の要素、構成要素、ステップ、および/または機能を追加することもできるか、または利用しないこともできる。図1、図2、図3、図5および/または図7に示された装置、デバイス、および/または構成要素は、図2、図3、図4、図6および/または図8に記載された方法、特徴、パラメータおよび/またはステップのうちの1つまたは複数を実行するか、または利用するように構成することができる。本明細書に記載された新規のアルゴリズムはまた、ソフトウェアにおいて効率的に実施することができ、および/またはハードウェアに効率的に埋め込むことができる。
また、少なくともいくつかの実施態様が、流れ図、フロー図、構造図、またはブロック図として表されるプロセスとして説明されたことに留意されたい。流れ図は動作を逐次プロセスとして説明する場合があるが、動作の多くを並列にまたは同時に実行することができる。さらに、動作の順序は、再配置することができる。プロセスは、その動作が完了したときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応することができる。処理が関数に対応する場合、その終了は、関数が呼出し関数またはメイン関数に戻ることに対応する。本明細書において説明される種々の方法は、非一時的機械可読媒体、コンピュータ可読媒体、および/またはプロセッサ可読記憶媒体に記憶し、1つまたは複数のプロセッサ、機械、および/またはデバイスによって実行することができるプログラミング(たとえば命令および/またはデータ)によって、部分的にまたは完全に実現することができる。
さらに、本明細書において開示される実施形態に関連して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せとして実現できることは当業者には理解されよう。この互換性を明確に示すために、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップはこれまで、全般的にそれらの機能に関して説明されてきた。そのような機能がハードウェアとして実現されるかソフトウェアとして実現されるかは、特定の適用例およびシステム全体に課される設計制約に応じて決まる。
本明細書において説明され、添付の図面に示される例に関連する種々の特徴は、本開示の範囲から逸脱することなく、異なる例および実施態様で実現することができる。したがって、いくつかの特定の構成および配置が説明され、添付の図面において図示されてきたが、説明された実施形態への種々の他の追加および変更、ならびに実施形態からの削除が当業者には明らかになるので、そのような実施形態は例示に過ぎず、本開示の範囲を制限するものではない。したがって、本開示の範囲は、以下の特許請求の範囲の文言、および法的均等物によってのみ決定される。
102 ホストデバイス
104 ターゲットI/Oデバイス
106 バス
108 ホストソフトウェア
109 ホストタスクキュー
110 ホストコントローラ
112 ターゲットコントローラ
116 記憶デバイス
302 第1のタスクキュー
304 第2のタスクキュー
502 ホストデバイス
504 処理回路
506 ホストコントローラ
508 プロセッサ可読記憶媒体/デバイス
510 バス
512 トランシーバ回路
514 タスク発生器モジュール/回路
516 キューバリアマーキングモジュール/回路
520 キューバリアインジケータチェッカ
522 タスクキュー
524 タスク発生器命令
526 キューバリアマーキング命令
530 メモリデバイス
702 ホストコントローラ
704 コントローラ処理回路
706 記憶デバイス
708 レジスタ
710 入力/出力通信インターフェースまたは回路
711 タスク処理モジュール/回路
712 キューバリアインジケータ検出モジュール/回路
714 タスク休止モジュール/回路
716 タスク再開モジュール/回路
719 タスク処理命令
720 キューバリアインジケータ検出命令
722 タスク休止命令
724 タスク再開命令
726 タスクキュー

Claims (23)

  1. ホストコントローラであって、
    ターゲットデバイスと通信するための通信インターフェースと、
    前記通信インターフェースに結合された処理回路とを備え、前記処理回路は、
    キューバリアインジケータ付きの第1のタスクを入手し、
    前記ターゲットデバイスへの前記第1のタスクの送信を引き延ばし、
    前記ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、前記第1のタスクを前記ターゲットデバイスに送るように構成される、ホストコントローラ。
  2. 前記処理回路はさらに、
    タスクキューから複数のタスクを順次に入手し、前記第1のタスクは前記複数のタスクの中の1つであり、
    各タスクがキューバリアインジケータを付けられているか否かを確認し、
    前記第1のタスクが前記キューバリアインジケータを付けられていると判断するように構成される、請求項1に記載のホストコントローラ。
  3. 前記処理回路はさらに、
    前記ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されるまで、前記第1のタスク後に生じる任意のタスクの前記ターゲットデバイスへの送信を引き延ばすように構成される、請求項1に記載のホストコントローラ。
  4. 前記処理回路はさらに、
    前記ターゲットデバイスから、前記第1のタスクが処理されたという指示が受信されると、前記第1のタスク後に生じる任意のタスクを前記ターゲットデバイスに送るように構成される、請求項3に記載のホストコントローラ。
  5. 前記ホストコントローラおよび前記ターゲットデバイスは、キューバリアインジケータ機能がサポートされないプロトコルを用いて通信する、請求項1に記載のホストコントローラ。
  6. 前記ターゲットデバイスにおいて、個別のキューバリアインジケータ機能がサポートされない、請求項1に記載のホストコントローラ。
  7. 前記キューバリアインジケータは、前記ターゲットデバイスにおいてサポートされるか、または前記ホストコントローラと前記ターゲットデバイスとの間の入力/出力通信プロトコルにおいてサポートされる個別のキューバリア機能とは異なる、請求項1に記載のホストコントローラ。
  8. 前記ホストコントローラは前記ターゲットデバイスとは個別のデバイスである、請求項1に記載のホストコントローラ。
  9. 前記ホストコントローラは、単一の半導体デバイスにおいて前記ターゲットデバイスと一体に構成される、請求項1に記載のホストコントローラ。
  10. 前記ターゲットデバイスは記憶デバイスであり、前記タスクは読出し動作および/または書込み動作を含む、請求項1に記載のホストコントローラ。
  11. 前記第1のタスクは、前記キューバリアインジケータを伴うことなく前記ターゲットデバイスに送られる、請求項1に記載のホストコントローラ。
  12. 前記第1のタスクおよび他のタスクは、前記処理回路によってタスクキューから入手され、前記第1のタスクおよび他のタスクの各々は、各タスクがキューバリアインジケータを付けられた他のタスクに対して前記タスクキューに入れられた前記順序において前記処理回路によって処理される、請求項1に記載のホストコントローラ。
  13. ターゲットデバイスと通信するためにホストコントローラ上で使用できる方法であって、
    キューバリアインジケータ付きの第1のタスクを入手するステップと、
    前記ターゲットデバイスへの前記第1のタスクの送信を引き延ばすステップと、
    前記ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、前記第1のタスクを前記ターゲットデバイスに送るステップとを含む、ターゲットデバイスと通信するためにホストコントローラ上で使用できる方法。
  14. タスクキューから複数のタスクを順次に入手するステップであって、前記第1のタスクは前記複数のタスクの中の1つである、入手するステップと、
    各タスクがキューバリアインジケータを付けられているか否かを確認するステップと、
    前記第1のタスクが前記キューバリアインジケータを付けられていると判断するステップとをさらに含む、請求項13に記載の方法。
  15. 前記ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されるまで、前記第1のタスク後に生じる任意のタスクの前記ターゲットデバイスへの送信を引き延ばすステップをさらに含む、請求項14に記載の方法。
  16. 前記ターゲットデバイスから、前記第1のタスクが処理されたという指示が受信されると、前記第1のタスク後に生じる任意のタスクを前記ターゲットデバイスに送るステップをさらに含む、請求項15に記載の方法。
  17. 前記ホストコントローラおよび前記ターゲットデバイスは、キューバリアインジケータ機能がサポートされないプロトコルを用いて通信する、請求項13に記載の方法。
  18. 前記キューバリアインジケータは、前記ターゲットデバイスにおいてサポートされるか、または前記ホストコントローラと前記ターゲットデバイスとの間の入力/出力通信プロトコルにおいてサポートされる個別のキューバリア機能とは異なる、請求項13に記載の方法。
  19. 前記キューバリアインジケータ機能は前記ターゲットデバイスにおいてサポートされない、請求項13に記載の方法。
  20. 1つまたは複数の命令を有する非一時的プロセッサ可読記憶媒体であって、前記1つまたは複数の命令は、少なくとも1つの処理回路によって実行されたときに、前記少なくとも1つの処理回路に、
    キューバリアインジケータ付きの第1のタスクを入手させ、
    前記ターゲットデバイスへの前記第1のタスクの送信を引き延ばさせ、
    前記ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されると、前記第1のタスクを前記ターゲットデバイスに送らせる、1つまたは複数の命令を有する非一時的プロセッサ可読記憶媒体。
  21. 1つまたは複数の命令をさらに有し、前記1つまたは複数の命令は、少なくとも1つの処理回路によって実行されたときに、前記少なくとも1つの処理回路に、
    タスクキューから複数のタスクを順次に入手させ、前記第1のタスクは前記複数のタスクの中の1つであり、
    各タスクがキューバリアインジケータを付けられているか否かを確認させ、
    前記第1のタスクが前記キューバリアインジケータを付けられていると判断させる、請求項20に記載の非一時的プロセッサ可読記憶媒体。
  22. 1つまたは複数の命令をさらに有し、前記1つまたは複数の命令は、少なくとも1つの処理回路によって実行されたときに、前記少なくとも1つの処理回路に、
    前記ターゲットデバイスから、先行して送られたすべてのタスクが処理されたという指示が受信されるまで、前記第1のタスク後に生じる任意のタスクの前記ターゲットデバイスへの送信を引き延ばさせる、請求項20に記載の非一時的プロセッサ可読記憶媒体。
  23. 1つまたは複数の命令をさらに有し、前記1つまたは複数の命令は、少なくとも1つの処理回路によって実行されたときに、前記少なくとも1つの処理回路に、
    前記ターゲットデバイスから、前記第1のタスクが処理されたという指示が受信されると、前記第1のタスク後に生じる任意のタスクを前記ターゲットデバイスに送らせる、請求項20に記載の非一時的プロセッサ可読記憶媒体。
JP2016529873A 2013-07-23 2014-07-23 I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること Ceased JP2016532950A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361857570P 2013-07-23 2013-07-23
US61/857,570 2013-07-23
US14/338,235 2014-07-22
US14/338,235 US20150033234A1 (en) 2013-07-23 2014-07-22 Providing queue barriers when unsupported by an i/o protocol or target device
PCT/US2014/047906 WO2015013458A1 (en) 2013-07-23 2014-07-23 Providing queue barriers when unsupported by an i/o protocol or target device

Publications (1)

Publication Number Publication Date
JP2016532950A true JP2016532950A (ja) 2016-10-20

Family

ID=52391622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016529873A Ceased JP2016532950A (ja) 2013-07-23 2014-07-23 I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること

Country Status (7)

Country Link
US (1) US20150033234A1 (ja)
EP (1) EP3025231A1 (ja)
JP (1) JP2016532950A (ja)
CN (1) CN105453043B (ja)
AR (1) AR099258A1 (ja)
TW (1) TWI619078B (ja)
WO (1) WO2015013458A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051416A (ko) * 2017-11-07 2019-05-15 삼성전자주식회사 반도체 장치 및 반도체 시스템

Families Citing this family (7)

* 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
JP6356624B2 (ja) * 2015-03-23 2018-07-11 東芝メモリ株式会社 メモリデバイスおよび情報処理装置
TWI629638B (zh) * 2015-11-10 2018-07-11 慧榮科技股份有限公司 儲存裝置及其任務執行方法、對應於儲存裝置的主機及其任務執行方法、以及應用於儲存裝置的控制單元
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
CN110501511B (zh) * 2019-08-13 2023-08-08 迈克医疗电子有限公司 在线试剂调整方法、装置及分析检测系统
CN116339944B (zh) * 2023-03-14 2024-05-17 海光信息技术股份有限公司 任务处理方法、芯片、多芯片模块、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6079012A (en) * 1994-04-28 2000-06-20 Hewlett-Packard Company Computer that selectively forces ordered execution of store and load operations between a CPU and a shared memory
JP2005293066A (ja) * 2004-03-31 2005-10-20 Nec Corp 完了待ち合わせシステム及び完了待ち合わせプログラム
JP2008508586A (ja) * 2004-07-29 2008-03-21 株式会社ソニー・コンピュータエンタテインメント 非対称型異種混合マルチプロセッサ環境(asymmetricheterogeneousmultiprocessorenvironment)におけるメモリバリア要素(Primitive)
US20110093636A1 (en) * 2009-10-20 2011-04-21 Johan Matterne Data processing apparatus and method for connection to interconnect circuitry
JP2012528399A (ja) * 2009-05-26 2012-11-12 クアルコム,インコーポレイテッド 弱く順序付けられたストレージシステムにおいてメモリバリアコマンドを発行するための方法および装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643718B1 (en) * 2000-07-21 2003-11-04 Silicon Integrated Systems Corporation Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure
TW515960B (en) * 2000-08-11 2003-01-01 Via Tech Inc Architecture and method of extended bus and bridge thereof
US7180862B2 (en) * 2002-07-18 2007-02-20 Intel Corporation Apparatus and method for virtual output queue feedback
US6901463B2 (en) * 2003-03-05 2005-05-31 Sun Microsystems, Inc. Method and device for linking work requests with completion queue entries
WO2004104838A1 (ja) * 2003-05-21 2004-12-02 Fujitsu Limited データアクセス応答システム、ストレージシステム、クライアント装置、キャッシュ装置、およびデータアクセス応答システムへのアクセス方法
US8645959B2 (en) * 2005-03-30 2014-02-04 Intel Corporaiton Method and apparatus for communication between two or more processing elements
CN100407171C (zh) * 2005-09-13 2008-07-30 威盛电子股份有限公司 设置高速缓存线填充总线存取优先级的微处理器和方法
CN101165655A (zh) * 2006-10-20 2008-04-23 国际商业机器公司 多处理器计算系统及其任务分配方法
US7743191B1 (en) * 2007-12-20 2010-06-22 Pmc-Sierra, Inc. On-chip shared memory based device architecture
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
FR2939922B1 (fr) * 2008-12-16 2011-03-04 Bull Sas Gestionnaire physique de barriere de synchronisation entre processus multiples
US8607234B2 (en) * 2009-07-22 2013-12-10 Empire Technology Development, Llc Batch scheduling with thread segregation and per thread type marking caps
US8250576B2 (en) * 2009-09-30 2012-08-21 Microsoft Corporation Structured task hierarchy for a parallel runtime
GB2489278B (en) * 2011-03-24 2019-12-25 Advanced Risc Mach Ltd Improving the scheduling of tasks to be performed by a non-coherent device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6079012A (en) * 1994-04-28 2000-06-20 Hewlett-Packard Company Computer that selectively forces ordered execution of store and load operations between a CPU and a shared memory
JP2005293066A (ja) * 2004-03-31 2005-10-20 Nec Corp 完了待ち合わせシステム及び完了待ち合わせプログラム
JP2008508586A (ja) * 2004-07-29 2008-03-21 株式会社ソニー・コンピュータエンタテインメント 非対称型異種混合マルチプロセッサ環境(asymmetricheterogeneousmultiprocessorenvironment)におけるメモリバリア要素(Primitive)
JP2012528399A (ja) * 2009-05-26 2012-11-12 クアルコム,インコーポレイテッド 弱く順序付けられたストレージシステムにおいてメモリバリアコマンドを発行するための方法および装置
US20110093636A1 (en) * 2009-10-20 2011-04-21 Johan Matterne Data processing apparatus and method for connection to interconnect circuitry

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051416A (ko) * 2017-11-07 2019-05-15 삼성전자주식회사 반도체 장치 및 반도체 시스템
KR102327878B1 (ko) 2017-11-07 2021-11-17 삼성전자주식회사 반도체 장치 및 반도체 시스템
US11500800B2 (en) 2017-11-07 2022-11-15 Samsung Electronics Co., Ltd. Semiconductor devices including command priority policy management and related systems

Also Published As

Publication number Publication date
US20150033234A1 (en) 2015-01-29
AR099258A1 (es) 2016-07-13
EP3025231A1 (en) 2016-06-01
TW201516875A (zh) 2015-05-01
CN105453043A (zh) 2016-03-30
WO2015013458A1 (en) 2015-01-29
CN105453043B (zh) 2019-12-13
TWI619078B (zh) 2018-03-21

Similar Documents

Publication Publication Date Title
JP2016532950A (ja) I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること
US10338846B2 (en) Method for reducing read buffer size requirements in NVMe based solid state drives
US9152474B2 (en) Context aware synchronization using context and input parameter objects associated with a mutual exclusion lock
US9442793B2 (en) Robust hardware/software error recovery system
DE602005009494D1 (de) Bildung einer befehlsreihenfolge in einer nicht sequentiell dma-befehlswarteschlange
US10102159B2 (en) Method of achieving low write latency in a data storage system
EP3230861B1 (en) Technologies for fast synchronization barriers for many-core processing
CN100416496C (zh) 更新指令错误状态寄存器
US9304711B2 (en) Latency reduction in read operations from data storage in a host device
KR102055228B1 (ko) 상수 캐시를 이용하여 리터럴 생성 데이터를 의존 명령들로 보다 효율적으로 포워딩하기 위한 방법 및 장치
US9477458B2 (en) Dynamic timeout determination for microcontroller management of firmware updates
US20140331021A1 (en) Memory control apparatus and method
TWI650703B (zh) 在記憶體內之資料的非同步複製
US20140340974A1 (en) Apparatus and method for writing data into storage of electronic device
CN112130886B (zh) 一种交通信号控制机的主控程序升级方法及装置
KR101530479B1 (ko) Ic 카드 및 휴대 가능 전자 장치
US9418038B2 (en) Method and system for accessing data
KR100966999B1 (ko) 플래시 메모리 업데이트 장치 및 방법
JP6138482B2 (ja) 組み込みシステム
CN108509013B (zh) 一种处理指令的方法及装置
CN115903558A (zh) 集成电路、控制方法和电子设备
JP2017049705A5 (ja)
JP2008293078A (ja) ホストコントローラ、電子機器、及び、ホスト制御方法
KR20150041733A (ko) 저장 명령을 효율적으로 처리하는 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180816

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190128

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20190527