JP2020500379A - デュアルモードローカルデータストア - Google Patents

デュアルモードローカルデータストア Download PDF

Info

Publication number
JP2020500379A
JP2020500379A JP2019527881A JP2019527881A JP2020500379A JP 2020500379 A JP2020500379 A JP 2020500379A JP 2019527881 A JP2019527881 A JP 2019527881A JP 2019527881 A JP2019527881 A JP 2019527881A JP 2020500379 A JP2020500379 A JP 2020500379A
Authority
JP
Japan
Prior art keywords
requester
access
requesters
partitions
shared resource
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
JP2019527881A
Other languages
English (en)
Other versions
JP7246308B2 (ja
Inventor
クリフトン ダニエル
クリフトン ダニエル
ジェイ. マントル マイケル
ジェイ. マントル マイケル
バートン ハンス
バートン ハンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2020500379A publication Critical patent/JP2020500379A/ja
Application granted granted Critical
Publication of JP7246308B2 publication Critical patent/JP7246308B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache

Abstract

共有リソースに対するアクセス要求を効率的に処理するシステム及び方法を説明する。多くのリクエスタの各々は、共有リソースのパーティションに割り当てられている。コントローラは、未割り当てのパーティションに対するアクセス要求をリクエスタが生成しないと判別した場合、アクティブなリクエスタに対して割り当てられたパーティションへの同時アクセスを許可する。コントローラは、少なくとも1つのアクティブなリクエスタが未割り当てのパーティションに対するアクセス要求を生成したと判別した場合、他のアクティブなリクエスタのアクセスを停止しながら、1つのアクティブなリクエスタが共有リソース全体への排他的アクセスを得るのを可能にする。コントローラは、アクティブなリクエスタ間の排他的アクセスを代替する。様々な実施形態では、共有リソースは、グラフィックス処理ユニット内のローカルデータストアであり、複数のリクエスタの各々は、単一命令複数データ(SIMD)計算ユニットである。【選択図】図3

Description

(関連技術の説明)
タスクの並列化は、コンピュータシステムのスループットを向上させるために用いられる。この目的のために、コンパイラ又はソフトウェアプログラマは、並列化タスクをプログラムコードから抽出して、システムハードウェア上で並列に実行する。アウトオブオーダ実行、ディープパイプライン、スペキュレーティブ実行及びマルチスレッド実行は、命令レベルの並列性を利用するために使用され、これにより、スループットを向上させる。ハードウェア上での並列実行をさらに増やすために並列アーキテクチャプロセッサがシステムに含まれ、データレベルの並列性を利用し、従来の汎用プロセッサから計算集約的で反復的なタスクをオフロードする。これらのタスクの例には、ビデオグラフィックスレンダリング、暗号化、ガベージコレクション及び他のベクトル命令アプリケーションが含まれる。
データレベル並列性を利用する上記システムの様々な例は、並列アーキテクチャプロセッサとして単一命令複数データ(SIMD)プロセッサを含む。グラフィックス処理ユニット(GPU)は、SIMDプロセッサの一例である。GPUは、スレッドの命令を実行するための処理リソースの複数のレーンをそれぞれ有する1つ以上のSIMD計算ユニットを含む。命令は、レーン間で実行されているスレッドでは同じだが、所定のレーンに特定のデータ要素を用いる。オペレーティングシステムのスケジューラ又はプログラマは、ソフトウェアプログラミングプラットフォームを介して、SIMD計算ユニットのレーン上のスレッドをスケジューリングする。
ローカルデータストアを使用しない場合、SIMD計算ユニット内の所定のレーンによって生成された結果データは、他の形式のデータストレージに結果データを記憶して取得するときの高コストなレイテンシ無しに他のレーンにアクセスすることができない。SIMD計算ユニットの複数のレーンは、ローカルデータストアを共有するが、システムは、レーン数を動的に変更するのを可能にすることによって、ローカルデータストア内で共有するストレージの量を変更するアーキテクチャを提供しない。したがって、システムは、ローカルデータストアの競合解決及び完全なアクセス可能性(アドレス可能性)をサポートしていない。
上記を考慮して、共有リソースに対するアクセス要求を効率的に処理するための効率的な方法及びシステムが望まれている。
共有リソースへのアクセスをサポートするコンピューティングシステムの一実施形態の一般化された図である。 並列アーキテクチャプロセッサの一実施形態の一般化された図である。 共有リソースを対象とするアクセス要求を処理する方法の一実施形態の一般化された図である。 共有リソースを対象とするアクセス要求を処理する方法の別の実施形態の一般化された図である。 共有リソースを使用するためのアクセス要求のソースを選択する方法の一実施形態の一般化された図である。
本発明は、様々な変更及び代替形態を受け入れることができるが、特定の実施形態が、例として図面に示されており、本明細書において詳細に説明されている。しかし、図面及び詳細な説明は、本発明を、開示された特定の形態に限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲によって定義される本発明の範囲に含まれる全ての変更、均等物及び代替物を包含することを意図していることを理解されたい。
以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細が述べられている。しかしながら、当業者であれば、本発明がこれらの具体的な詳細無しに実施され得ることを認識するであろう。いくつかの例では、本発明を曖昧にするのを避けるために、周知の回路、構造及び技術を詳細に示していない。さらに、説明を簡単且つ明瞭にするために、図に示す要素が必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている。
共有リソースに対するアクセス要求を効率的に処理するためのシステム及び方法が考えられる。様々な実施形態では、多くのリクエスタの各々が、共有リソースのパーティションに割り当てられている。いくつかの実施形態では、各パーティションは、別々のパーティションであり、このパーティションは、共有リソースの他のパーティションと重複しない。コントローラは、共有リソースへのアクセスをサポートするために使用される。未割り当てのパーティションに対するアクセス要求をリクエスタが生成しないとコントローラが判別した場合、コントローラは、アクティブなリクエスタに対して割り当てられたパーティションへの同時アクセスを許可する。ただし、コントローラは、少なくとも1つのアクティブなリクエスタが、未割り当てのパーティションに対するアクセス要求を生成したと判別した場合に、他のアクティブなリクエスタのアクセスを停止しながら、単一のアクティブなリクエスタが共有リソース全体にアクセスするのを可能にする。
コントローラは、アクティブなリクエスタを選択することによってアービトレーションを実行する。いくつかの実施形態では、選択は、最長未使用時間(least recently used)基準に基づいている。コントローラは、選択されたリクエスタのアクセスを許可しながら、選択されていないリクエスタの共有リソースへのアクセスを停止させる。いくつかの実施形態では、コントローラは、選択されたリクエスタについて実行されたアクセス要求の数に制限を設定するか、例えばクロックサイクル数等のように、選択されたリクエスタのアクセス要求を実行するための時間に制限を設定する。アクティブなリクエスタがより多くのアクセス要求を有する場合、コントローラは、選択されたリクエスタの共有リソースへのアクセスを停止し、これを最近選択されたアクティブなリクエスタとしてマークする。その後、コントローラは、リクエスタの選択を解除し、共有リソース全体に排他的アクセスするために別のアクティブなリクエスタを選択することによって、アービトレーションを再度実行する。
様々な実施形態では、共有リソースは、グラフィックス処理ユニット内のローカルデータストアであり、複数のリクエスタの各々は、単一命令複数データ(SIMD)計算ユニットである。いくつかの実施形態では、コントローラは、SIMD計算ユニットのために割り当てられたメモリアドレス境界の外側のローカルデータストアの領域へのアクセスを検出することによって、未割り当てのパーティションへのアクセス要求を検出する。様々な実施形態では、所定のSIMD計算ユニットは、ローカルデータストア全体への排他的アクセスを有する場合に、アービトレーションが再発生し且つ他のSIMD計算ユニットが排他的アクセスを得る前に、単一クロックサイクルの間、排他的アクセスを有する。しかし、別の数のクロックサイクルが可能であり、考えられる。或いは、他の実施形態では、コントローラは、アクセス要求の数を監視し、当該数が制限に達するとアービトレーションが再発生する。様々な実施形態では、各SIMD計算ユニットは、ローカルデータストアへの読み書きポートを含み、これは、他のSIMD計算ユニットがローカルデータストアへの排他的アクセスを有する場合に、別のSIMD計算ユニットのローカルデータストアへのアクセスを提供するために使用される。
図1を参照すると、共有リソースへのアクセスをサポートするコンピューティングシステムの一実施形態の一般化されたブロック図が示されている。図示した実施形態では、コンピューティングシステムは、アービトレーション制御ユニット120を介して共有リソース140にアクセスするリクエスタ110A〜110Hを含む。いくつかの実施形態では、共有リソース140は、共有メモリであり、アービトレーション制御ユニット120は、メモリコントローラである。他の実施形態では、共有リソース140は、特定の集中的な計算機能を有するユニット、又は、ネットワークへのスイッチングアクセスを提供するユニットである。リソース及び任意の関連するコントローラの他の例が可能であり、考えられる。
リクエスタ110A〜110Hは、計算リソース112A〜112Hを含む。様々な実施形態では、計算リソース112A〜112Hは、パイプラインレジスタ、中間結果を記憶するためのデータ構造、整数演算、浮動小数点演算、ブール論理演算、分岐条件比較等を実行するための回路を含む。図示するように、共有リソース140は、複数のパーティション142A〜142Hに分割されている。いくつかの実施形態では、パーティション142A〜142Hの各々は、同じ数のデータストレージ、同じ数の集中的な計算機能等を含む。他の実施形態では、1つ以上のパーティション142A〜142Hは、パーティション142A〜142Hの他のパーティションよりも少ない若しくは多いデータストレージ又は集中的な計算機能を含む。
様々な実施形態では、パーティション142A〜142Hの各々は、パーティション142A〜142Hの他のパーティションと重複しない別々のパーティションである。他の実施形態では、重複が用いられる。様々な実施形態では、パーティション142A〜142Hの各パーティションは、計算リソース112A〜112Hのうち1つの計算リソースに割り当てられる。他の実施形態では、計算リソース112A〜112Hのうち2つ以上の計算リソースは、パーティション142A〜142Hのうち同じパーティションに割り当てられる。
いくつかの実施形態では、パーティション142A〜142Hのサイズに加えて、計算リソース112A〜112Hとパーティション142A〜142Hとの間の割り当ては、プログラム可能な制御レジスタ及びステータスレジスタ(図示省略)によって設定される。ファームウェア、実行中のソフトウェアアプリケーション又は他のソフトウェアを使用して、制御レジスタ及びステータスレジスタを更新し、計算リソース112A〜112Hをパーティション142A〜142H及びパーティション142A〜142Hのサイズに最初に割り当て、その後に再割り当てを行う。他の実施形態では、リクエスタ110A〜110H及び/又はアービトレーション制御ユニット120内のハードウェア回路によって実装される制御ロジックは、最初の割り当て及びサイジング、並びに、その後の再割り当て及びリサイジングを実行する。
1つ以上の計算リソース112A〜112Hが1つ以上のアプリケーションの命令を処理すると、1つ以上のリクエスタ110A〜110Hが共有リソース140に対するアクセス要求を生成する。様々な実施形態では、生成されたアクセス要求は、パーティション142A〜142Hのうち1つのパーティションを識別する。パーティション142A〜142Hのうち1つのパーティションを識別することによって、生成されたアクセス要求は、識別されたパーティションをターゲットとする。ターゲットパーティションは、割り当てられたパーティション又は未割り当てのパーティションである。
リクエスタ110A〜110Hによって生成されたアクセス要求が、パーティション142A〜142Hのうち未割り当てのパーティションをターゲットとしていない場合、アクセス要求は、割り当てに基づいて処理される。各アクセス要求は、アービトレーション制御ユニット120によって、その割り当てられたパーティションへのアクセスが許可される。マルチプレクサ(mux)ゲート130A〜130Hによって実装される選択ロジックは、許可信号132A〜132Hに基づいてアクセス情報134A〜134Hを選択する。許可信号132A〜132Hは、先に設定された割り当てに基づいて、リクエスタ110A〜110Hのうち割り当てられたリクエスタを選択するように、アービトレーション制御ユニット120によってアサートされる。したがって、パーティション142A〜142Hは、リクエスタ110A〜110Hのうち割り当てられたリクエスタによってアクセスされる。様々な実施形態では、割り当てに基づく競合が無い場合、2つ以上のパーティション142A〜142Hが同時にアクセスされる。
リクエスタ110A〜110Hによって生成されたアクセス要求が、パーティション142A〜142Hのうち未割り当てのパーティションをターゲットとする場合、リクエスタ110A〜110Hは、パーティション142A〜142Hへの排他的アクセスを得る。排他的アクセスは、アービトレーション制御ユニット120によって提供されるアービトレーションに基づいて発生する。例えば、様々な実施形態では、リクエスタ110A〜110Hのうちアクティブなリクエスタの各々は、最近選択されていない基準(least recently selected basis)に基づいて、クロックサイクルの間、排他的アクセスを得る。他の実施形態では、多くのクロックサイクル又はアクセス要求がアービトレーション制御ユニット120によって使用され、リクエスタ110A〜110Hのうち別のアクティブなリクエスタがパーティション142A〜142Hへの排他的アクセスを得るのをいつ許可するかを決定する。
いくつかの実施形態では、コンピューティングシステムは、ハイブリッドアービトレーションスキームを含み、アービトレーション制御ユニット120は、集中型アービタを含み、1つ以上のリクエスタ110A〜110Hは、分散型アービトレーションロジックを含む。例えば、1つ以上のリクエスタ110A〜110Hは、計算リソース112A〜112H内の複数のソースによって生成された複数の要求からアービトレーション制御ユニット120に送信する所定の要求を選択するためのアービタを含む。アービトレーション制御ユニット120は、リクエスタ110A〜110Hから受信した複数の要求から、共有リソース140に送信する1つ以上の要求を選択する。許可信号132A〜132Hは、受信した要求に基づいてアサートされ、受信した要求が、パーティション142A〜142Hのうち割り当てられたパーティションをターゲットとしているかどうかを検出する。また、いくつかの実施形態では、アービトレーション制御ユニット120は、最近選択されていないスキーム(least-recently- selected scheme)と共に符号化優先度に基づいて、共有リソース140への排他的アクセスのためのクロックサイクル数又はアクセス要求数を調整する。
要求に対する応答150は、アービトレーション制御ユニット120に返送されるように示されている。他の実施形態では、応答150は、バスを介する等してリクエスタ110A〜110Hに直接送信される。いくつかの実施形態では、リクエスタ110A〜110Hのインタフェース内のポーリングロジックは、バス又はアービトレーション制御ユニット120から関連する応答データ150を取得するために使用される。他の様々な実施形態では、応答150は、コンピューティングシステム内の他の計算ユニット(図示省略)に送信される。
図2を参照すると、並列アーキテクチャプロセッサ200の一実施形態が示されている。様々な実施形態では、並列アーキテクチャプロセッサ200は、アービトレーション制御ユニット250を介してローカルデータストア260にアクセスする計算ユニット210A〜210Dを有するグラフィックス処理ユニット(GPU)である。概して、GPUは、レーン220A〜220M間でデータを共有するために、計算ユニット210A〜210Dの各々に対して別々のローカルデータ共有を含む。ただし、本明細書では、ローカルデータ共有260は、計算ユニット210A〜210D間で共有される。したがって、計算ユニット210A内の1つ以上のレーン220A〜220Mが、動作モードに基づいて、計算ユニット210D内の1つ以上のレーン220A〜220Mと結果データを共有することが可能である。
上述したように、並列アーキテクチャプロセッサ200は、単一命令複数データ(SIMD)動作等の高度に並列なデータアプリケーションに最適化された専用集積回路を含む。様々な実施形態では、並列アーキテクチャプロセッサ200は、ビデオグラフィックスレンダリングに使用されるグラフィックス処理ユニット(GPU)である。図示するように、計算ユニット210A内のレーン220A〜220Mの各々は、レジスタ222Aと、算術論理ユニット(ALU)224Aと、を含む。計算ユニット210A〜210Dの他の計算ユニット内のレーンも同様のコンポーネントを含む。様々な実施形態では、レジスタ222Aは、オペランド及び結果を記憶するためのレジスタファイルとして使用される記憶要素である。
様々な実施形態では、ALU224A内のデータフローは、パイプライン化されている。ALU224Aは、パイプラインレジスタと、中間結果を記憶するためのデータ構造と、整数演算、浮動小数点演算、ブール論理演算、分岐条件比較等を実行するための回路と、を含む。説明を簡単にするために、これらのコンポーネントは示されていない。レーン220A〜220Mに亘る所定の行内の計算ユニットの各々は、同じ計算ユニットである。これらの計算ユニットの各々は、同じ命令で動作するが、異なるデータが異なるスレッドに関連付けられている。
計算ユニット210A内のレーン220A〜220Mの各々は、命令のためにキャッシュ230にアクセスする。また、キャッシュ230は、レジスタ222Aにロードするためのオペランドデータを記憶する。ビデオグラフィックスレンダリングを実行する実施形態では、キャッシュ230は、レベル1(L1)テクスチャキャッシュと呼ばれる。計算ユニット210A〜210Dの各々は、計算ユニット210A〜210Dに対するグローバルデータ共有として機能する共有L2キャッシュ(図示省略)へのさらなるアクセスを有する。例えば、様々な実施形態では、計算ユニット210A〜210Dの各々は、共有L2キャッシュからのデータを記憶し取得するためにキャッシュ230の論理的に最上部に配置されたキャッシュコントローラを含む。
上述したように、レーン220A〜220Mの各々は、別々のスレッドのデータを処理する。計算ユニット210A〜210Dの各々は、所定の作業単位のスレッドを処理する。オペレーティングシステム(OS)スケジューラ又はユーザレベルスケジューラは、ラウンドロビン方式、優先方式、可用性方式、又は、これらの組み合わせ等の様々な方式を使用して、並列アーキテクチャプロセッサ200を用いてコンピュータシステム上で実行されるワークロードをスケジューリングする。或いは、プログラマが、ランタイムシステムと組み合わせてワークロードをスケジューリングする。このような場合、プログラマは、ソフトウェアプラットフォームを利用してスケジューリングを実行する。例えば、OpenCL(登録商標)(Open Computing Language)フレームワークは、異種コンピューティング環境に亘るプログラミングをサポートし、異種コンピューティング用の低レベルアプリケーションプログラミングインタフェース(API)を含む。
OpenCLフレームワーク(概して、本明細書では「OpenCL」と呼ばれる)は、実行キューを定義するために使用されるCライク言語インタフェースを含み、各キューは、OpenCLデバイスに関連付けられている。OpenCLデバイスは、汎用の中央処理ユニット(CPU)、GPU、又は、異種マルチコアアーキテクチャ内の少なくとも1つのプロセッサコアを有する他のユニットであってもよい。OpenCLフレームワークにおいて、関数呼び出しは、OpenCL計算カーネル又は単に「計算カーネル」と呼ばれる。ソフトウェアプログラマは、実行キュー内の計算カーネルをスケジューリングする。計算カーネルは、1つ以上のデータレコードと照合され、1つ以上の計算作業単位を生成する。各作業単位は、固有の識別子(ID)を有する。計算ユニット210A〜210Dの各々は、OS又はソフトウェアプログラマによって、多数の作業単位のうち1つの作業単位に割り当てられる。計算ユニット210A〜210Dのうち所定の計算ユニット内の各レーン220A〜220Mには、割り当てられた作業単位内のスレッドが割り当てられる。
レーン220A〜220Mの各々は、ローカルデータ共有260にアクセスする。例えば、様々な実施形態では、レーン220A〜220Mの各々は、ローカルデータ共有260内にスペースを割り当てている。計算ユニット210A〜210Dのうち所定の計算ユニットのレーン220A〜220Mの各々は、同じ所定の計算ユニット内の他のレーンの割り当てられたスペースにアクセスすることができる。例えば、計算ユニット210A内のレーン220Aは、計算ユニット210A内のレーン220Mに割り当てられたローカルデータストア260内の割り当てられたスペースにアクセスすることができる。計算ユニット210A内のレーン220A〜220Mは、同じ作業単位を処理することによって、互いに割り当てられたスペースにアクセスすることができる。
レーン220A〜220Mの各々によって生成された要求は、データブロックにアクセスしようとする。様々な実施形態では、データのブロック、すなわちデータブロックは、隣接するメモリ位置に記憶されているバイトのセットである。データブロック内のバイト数は、設計上の選択によって変動し、任意のサイズとすることができる。スケジューラ240は、計算ユニット210A内のレーン220A〜220Mによって生成されたアクセス要求をスケジュールするために使用される。生成されたアクセス要求は、アービトレーション制御ユニット250を介してスケジューラ240からローカルデータストア260に送信される。
図示したように、ローカルデータ共有260は、複数のパーティション262A〜262Dに分割されている。様々な実施形態では、パーティション262A〜262Dの各々は、パーティション262A〜262Dの他の何れのパーティションとも重複しない別々のパーティションである。いくつかの実施形態では、パーティション262A〜262Dの各々は、同量のデータストレージを含む。他の実施形態では、1つ以上のパーティション262A〜262Dは、パーティション262A〜262Dのうち他のパーティションよりも少ない又は多いデータストレージを含む。
様々な実施形態では、パーティション262A〜262Dのサイズに加えて、計算ユニット210A〜210Dとパーティション262A〜262Dとの間の割り当ては、オペレーティングシステム、ソフトウェアプログラマ、専用制御ユニット等によって設定される。例えば、いくつかの実施形態では、プログラム可能制御及びステータスレジスタ(図示省略)は、割り当てを設定するために特定の値を記憶する。パーティション262A〜262Dのサイズを定義することに加えて、ファームウェア、実行中のソフトウェアアプリケーション又は他のソフトウェアを使用して、制御及びステータスレジスタを更新し、計算ユニット210A〜210D及びパーティション262A〜262Dを最初に割り当て、その後に再割り当てを行う。他の実施形態では、計算ユニット210A〜210D及び/又はアービトレーション制御ユニット250内のハードウェア回路によって実装される制御ロジックは、最初の割り当て、その後の再割り当て及びサイズ変更を実行する。
様々な実施形態では、アービトレーション制御ユニット250は、計算ユニット210A〜210Dに亘って共有メモリ機能を提供するために使用される。例えば、様々な実施形態では、同じ作業単位のスレッドは、1つの計算ユニット210A〜210Dにスケジュールされるのではなく、2つ以上の計算ユニット210A〜210Dに亘ってスケジュールされる。効率的な処理のために、レーン間の通信は、2つ以上の計算ユニット210A〜210Dに拡張されるべきである。
一例では、計算ユニット210Aは、パーティション262Aに割り当てられ、計算ユニット210Dは、パーティション262Dに割り当てられる。ただし、同じ作業単位のスレッドは、後に、2つの計算ユニット210A,210Dに亘ってスケジュールされる。効率的な実行のために、計算ユニット210A内の1つ以上のレーン220A〜220Mが、計算ユニット210D内の1つ以上のレーン220A〜220Mと通信する必要があることが可能となっている。アービトレーション制御ユニット250は、この状況を識別し、計算ユニット210A,210Dのうち選択された計算ユニットに対してローカルデータストア260への排他的アクセスを提供する。
アービトレーション制御ユニット250によって選択された計算ユニットは、所定期間、排他的アクセスを有する。様々な実施形態では、所定期間は、単一のクロックサイクルである。したがって、上記の例では、計算ユニット210A,210Dは、各クロックサイクルでローカルデータストア260への排他的アクセスを交互に有する。様々な実施形態では、所定期間は、プログラム可能である。他の実施形態では、期間は、他のクロックサイクルの数に基づいて測定される。さらに他の実施形態では、所定期間は、アクセス要求数、符号化された優先度、リクエスタの識別子(ID)、応答データの宛先のID、最近選択されていないスキーム等に基づいて測定される。アービトレーション制御ユニット250によって使用されるロジックのさらなる詳細を次に説明する。
図3を参照すると、共有リソースをターゲットとするアクセス要求を処理する方法300の一実施形態が示されている。説明の目的のために、本実施形態における(及び、図4〜図5における)ステップは、順番に示されている。しかし、他の実施形態では、いくつかのステップが示された順序とは異なる順序で行われてもよいし、いくつかのステップが同時に実行されてもよいし、いくつかのステップが他のステップと組み合わされてもよいし、いくつかのステップが存在しなくてもよい。
様々な実施形態では、共有リソースにアクセスするために、コンピューティングシステム内に複数のリクエスタがセットアップされる。共有リソースは、複数のパーティションに分割されている。セットアッププロセスの一部として、複数のリクエスタの各々を複数のパーティションのうち1つのパーティションに割り当てる(ブロック302)。割り当ては、ハードウェア、ソフトウェア又はこれらの組み合わせで実装されたロジックに基づいている。オペレーティングシステム、ソフトウェアプログラマ、専用制御ユニット又は他のものが割り当てを実行する。さらに、いくつかの実施形態では、セットアッププロセス中にパーティションのサイズも設定される。最後のリクエスタに割り当てが到達すると(条件ブロック304:Yes)、1つ以上のソフトウェアアプリケーションの命令がコンピューティングシステムによって処理される(ブロック306)。
1つ以上のソフトウェアアプリケーションの処理中に、アクティブなリクエスタは、共有リソースに対するアクセス要求を生成する(ブロック308)。様々な実施形態では、生成されたアクセス要求は、複数のパーティションのうち1つのパーティションを識別する。いくつかの実施形態では、識別は、パーティションの識別子(ID)を含む。他の実施形態では、フィールド又は符号化等の指標は、パーティションを間接的に識別し、制御ロジックは、その指標に基づいて識別を決定する。さらに他の実施形態では、アドレスは、パーティションに関連する所定のアドレス範囲内のデータストレージ位置を示すことによって、パーティションを間接的に識別する。複数のパーティションのうち1つのパーティションを識別することによって、生成されたアクセス要求は、識別されたパーティションをターゲットとする。ターゲットとなるパーティションは、割り当てられたパーティション又は未割り当てのパーティションである。
生成されたアクセス要求が未割り当てのパーティションをターゲットとしていない場合(条件ブロック310:No)、アクセス要求は、割り当てに基づいて処理される(ブロック312)。各アクセス要求は、割り当てられたパーティションへのアクセスが許可される。しかし、生成されたアクセス要求が未割り当てのパーティションをターゲットとする場合(条件ブロック310:Yes)、アクセス要求は、共有リソース全体への排他的アクセスを許可するアービトレーションに基づいて処理される(ブロック314)。例えば、アクティブなリクエスタの各々は、所定期間、共有リソース全体への排他的アクセスを得る。様々な実施形態では、所定期間は、クロックサイクルの数に基づいて測定される。他の実施形態では、所定期間は、アクセス要求の数に基づいて測定される。様々な実施形態では、所定期間は、プログラム可能である。いくつかの実施形態では、所定期間は、符号化された優先度、リクエスタの識別子(ID)、応答データの宛先のID、最近選択されていないスキーム等にさらに基づいている。
図4を参照すると、共有リソースをターゲットとするアクセス要求を処理する方法400の別の実施形態が示されている。共有リソース内のパーティションに複数のリクエスタが割り当てられている。上述したように、リクエスタは、1つのパーティションを識別するアクセス要求を生成する。生成されたアクセス要求が未割り当てのパーティションをターゲットとしていない場合(条件ブロック402:No)、アクセス要求は、割り当てられたパーティションへのアクセスに基づいて処理される(ブロック404)。各アクセス要求は、割り当てられたパーティションへのアクセスが許可される。様々な実施形態では、非共有パーティションは、同時にアクセスされる。命令の処理が継続し(ブロック406)、リクエスタは、アクセス要求を生成する。
生成されたアクセス要求が未割り当てのパーティションをターゲットとする場合(条件ブロック402:Yes)、共有リソースへのアクセスが競合しないように1つのリクエスタが選択される(ブロック408)。様々な実施形態では、選択されたリクエスタは、未割り当てのパーティションをターゲットとするアクセス要求を生成したリクエスタである。他の実施形態では、選択されたリクエスタは、現在、最近選択されていないリクエスタである。いくつかの実施形態では、最近選択されていないリクエスタは、最後のアクセス要求がリクエスタに処理されてからの時間に基づいている。他の実施形態では、最近選択されていないリクエスタは、当該リクエスタで処理されるアクセス要求の数に基づいている。いくつかの実施形態では、選択は、符号化された優先度、リクエスタのID、リクエスタに関連する計算ユニットによって処理されている動作の識別等にさらに基づいている。
未選択のリクエスタが停止される(ブロック410)。いくつかの実施形態では、停止することは、未選択のリクエスタが共有リソースに対するアクセス要求を送信するのを抑制することを含む。他の実施形態では、停止することは、未選択のリクエスタから要求キューに記憶されているアクセス要求を選択しないことを含む。いくつかの実施形態では、未選択のリクエスタのIDを使用して、キュー内で無視するアクセス要求を識別する。
共有リソース内の任意のパーティションは、選択されたリクエスタによって生成されたアクセス要求によってアクセス可能になる(ブロック412)。選択されたリクエスタによって生成されたアクセス要求は、所定期間、共有リソースへの排他的アクセスを有する。上述したように、いくつかの実施形態では、所定期間は、クロックサイクルの数に基づいて測定される。他の実施形態では、所定期間は、アクセス要求の数に基づいて測定される。様々な実施形態では、所定期間は、プログラム可能である。いくつかの実施形態では、所定期間は、符号化された優先度、リクエスタの識別子(ID)、応答データの宛先のID、最近選択されていないスキーム等にさらに基づいている。
所定期間に達すると、アービトレーションを使用してリクエスタの選択を切り替えるように指示が設定される。現在選択されているリクエスタが選択解除され、停止する。ブロック408の選択ステップにおいて説明した基準等の以前に使用されたアービトレーション基準に基づいて、別のアクティブなリクエスタが選択される。アービトレーションロジックに基づく選択は、現在のワークロードが完了するか、リセットが強制されるまで継続する。命令の処理が継続し(ブロック406)、リクエスタは、アクセス要求を生成する。上記から分かるように、アクセス要求は、2つのモードのうち1つのモードで処理される。生成されたアクセス要求が未割り当てのパーティションをターゲットにしていない場合、処理は、割り当てられたパーティションがアクセス要求を処理するのに利用可能な第1モードで継続する。ただし、生成されたアクセス要求が未割り当てのパーティションをターゲットにしている場合、処理は、共有リソース全体への排他的アクセスのためにリクエスタが選択される第2モードに切り替わる。
図5を参照すると、共有リソースの使用のためにアクセス要求のソースを選択する方法500の一実施形態の一般化されたブロック図が示されている。共有リソース内のパーティションに複数のリクエスタが割り当てられている。上述したように、リクエスタは、1つのパーティションを識別するアクセス要求を生成する。少なくとも1つのアクティブなリクエスタがリソースの未割り当てのパーティションへのアクセスを要求していると判別される(ブロック502)。1つのアクティブなリクエスタは、リソース全体への排他的アクセスを有する次のリクエスタとして選択される(ブロック504)。上述したように、最近選択されていないスキーム、符号化された優先度、保留中のアクセス要求の数、既に処理されたアクセス要求の数、関連する計算ユニットによって実行されている計算の指示、現在未処理の要求のエイジ(age)等の多くの要因が、選択のために考慮される。
様々な実施形態では、選択されたリクエスタは、所定期間、共有リソースの各パーティションへの排他的アクセスを有する。上述したように、所定期間は、様々な要因に基づいている。選択されたリクエスタは、例えば所定期間、共有リソースにアクセスしなかった場合(条件ブロック506:No)、選択を維持し、排他的アクセスによって共有リソースにアクセスし続ける(ブロック508)。しかし、選択されたリクエスタは、所定期間において共有リソースにアクセスした場合(条件ブロック506:Yes)、選択解除される(ブロック510)。
リクエスタが最近選択されたリクエスタであることを示す指標が設定される(ブロック512)。リクエスタのワークロードが未だ完了していない場合(条件ブロック514:No)、方法500の制御フローはブロック504に戻り、共有リソースへの排他的アクセスのために別のリクエスタが選択される。リクエスタのワークロードが完了した場合(条件ブロック514:Yes)、リクエスタの選択も完了する(ブロック516)。別のワークロードがリクエスタに割り当てられる場合、いくつかの実施形態では、動作モードは、共有リソースの割り当てられたパーティションのみへのアクセスを提供するために、リセットされる。
上述の実施形態のうち1つ以上がソフトウェアを含むことに留意されたい。このような実施形態では、方法及び/又はメカニズムを実装するプログラム命令は、コンピュータ可読媒体に伝達又は記憶される。プログラム命令を記憶するように構成された多くのタイプの媒体が利用可能であり、これらには、ハードディスク、フロッピー(登録商標)ディスク、CD−ROM、DVD、フラッシュメモリ、プログラム可能ROM(PROM)、ランダムアクセスメモリ(RAM)及び他の様々な形態の揮発性又は不揮発性ストレージデバイスが含まれる。一般的に言えば、コンピュータアクセス可能な記憶媒体は、命令及び/又はデータをコンピュータに提供するために使用中にコンピュータがアクセス可能な記憶媒体を含む。例えば、コンピュータアクセス可能な記憶媒体は、例えば磁気又は光学媒体(例えば、ディスク(固定若しくは取り外し可能)、テープ、CD−ROM、DVD−ROM、CD−R、CD−RW、DVD−R、DVD−RW、ブルーレイ(登録商標))等の記憶媒体を含む。記憶媒体は、RAM(例えば、同期型ダイナミックRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)SDRAM、低電力DDR(LPDDR2等)SDRAM、ラムバスDRAM(RDRAM)、スタティックRAM(SRAM)等)、ROM、フラッシュメモリ、USBインタフェース等の周辺インタフェースを介してアクセス可能な不揮発性メモリ(例えば、フラッシュメモリ)等の揮発性又は不揮発性記憶媒体をさらに含む。記憶媒体は、微小電気機械システム(MEMS)、並びに、ネットワーク及び/又は無線リンク等の通信媒体を介してアクセス可能な記憶媒体を含む。
また、様々な実施形態では、プログラム命令は、C等の高水準プログラミング言語、Verilog、VHDL等の設計言語(HDL)、又は、GDS IIストリームフォーマット(GDSII)等のデータベースフォーマットにおけるハードウェア機能の動作レベル記述又はレジスタ転送レベル(RTL)記述を含む。場合によっては、記述は合成ツールによって読み取られ、合成ツールは、記述を合成して、ゲートのリストを含むネットリストを合成ライブラリから生成する。ネットリストは、システムを含むハードウェアの機能を表すゲートのセットを含む。次に、ネットリストを配置してルーティングし、マスクに適用される幾何学的形状を記述するデータセットを生成する。次いで、マスクを様々な半導体製造工程で使用して、システムに対応する1つ以上の半導体回路を製造する。或いは、コンピュータアクセス可能な記憶媒体上の命令は、必要に応じて、ネットリスト(合成ライブラリを伴う若しくは伴わない)又はデータセットである。さらに、命令は、Cadence(登録商標)、EVE(登録商標)及びMentor Graphics(登録商標)等のベンダからのハードウェアベースタイプのエミュレータによるエミュレーションの目的で利用される。
上記の実施形態をかなり詳細に説明したが、上記の開示が十分に理解されれば、当業者には多くの変形及び修正が明らかになるであろう。添付の特許請求の範囲は、このような全ての変形及び修正を包含するように解釈されることを意図している。

Claims (20)

  1. 複数のパーティションを含む共有リソースと、
    前記共有リソースの前記複数のパーティションのそれぞれ異なるパーティションに割り当てられた複数のリクエスタと、
    前記共有リソースに接続されたコントローラと、を備え、
    前記コントローラは、
    前記複数のリクエスタのうち第1リクエスタから所定のパーティションへのアクセス要求を受信したことに応じて、
    前記所定のパーティションが前記第1リクエスタに割り当てられていると判別したことに応じて、前記第1リクエスタに対して前記所定のパーティションのみへのアクセスを提供し、
    前記所定のパーティションが前記第1リクエスタに割り当てられていないと判別したことに応じて、前記第1リクエスタに対して前記複数のパーティションの全てのパーティションへのアクセスを提供する、ように構成されている、
    コンピューティングシステム。
  2. 前記コントローラは、前記第1リクエスタに対して全てのパーティションへのアクセスを提供する場合に、前記複数のリクエスタのうち前記第1リクエスタ以外のリクエスタの各々に対して前記共有リソースへのアクセスを停止するようにさらに構成されている、
    請求項1のコンピューティングシステム。
  3. 前記第1リクエスタは、前記複数のリクエスタのうち最近選択されていないアクティブなリクエスタである、
    請求項2のコンピューティングシステム。
  4. 前記コントローラは、前記第1リクエスタに対する所定数のアクセス要求の完了を判別したことと、前記複数のリクエスタがより多くのアクセス要求を有すると判別したことと、に応じて前記第1リクエスタを選択解除するようにさらに構成されている、
    請求項1のコンピューティングシステム。
  5. 前記所定数は、単一のクロックサイクル内で処理されるアクセス要求の数である、
    請求項4のコンピューティングシステム。
  6. 前記コントローラは、
    前記第1リクエスタに対して前記共有リソースへのアクセスを停止し、
    前記第1リクエスタを、前記複数のリクエスタのうち最近選択されたアクティブなリクエスタとしてマークするようにさらに構成されている、
    請求項4のコンピューティングシステム。
  7. 前記コントローラは、
    前記複数のリクエスタのうち前記第1リクエスタとは異なる第2リクエスタを選択し、
    選択した第2リクエスタの停止を解除し、
    前記第2リクエスタに対して、前記複数のパーティションの全てのパーティションへのアクセスを提供するようにさらに構成されている、
    請求項6のコンピューティングシステム。
  8. 前記共有リソースは、グラフィックス処理ユニット内のローカルデータストアであり、前記複数のリクエスタの各々は、単一命令複数データ(SIMD)計算ユニットである、
    請求項1のコンピューティングシステム。
  9. 複数のリクエスタの各々を、共有リソースの複数のパーティションの異なるパーティションに割り当てることと、
    前記複数のリクエスタのうち第1リクエスタから所定のパーティションへのアクセス要求を受信したことに応じて、
    前記所定のパーティションが前記第1リクエスタに割り当てられていると判別したことに応じて、前記第1リクエスタに対して前記所定のパーティションのみへのアクセスを提供することと、
    前記所定のパーティションが前記第1リクエスタに割り当てられていないと判別したことに応じて、前記第1リクエスタに対して前記複数のパーティションの全てのパーティションへのアクセスを提供することと、を含む、
    方法。
  10. 前記第1リクエスタに対して全てのパーティションへのアクセスを提供する場合に、前記複数のリクエスタのうち前記第1リクエスタ以外のリクエスタの各々に対して前記共有リソースへのアクセスを停止することをさらに含む、
    請求項9の方法。
  11. 前記第1リクエスタは、前記複数のリクエスタのうち最近選択されていないアクティブなリクエスタである、
    請求項10の方法。
  12. 前記第1リクエスタに対する所定数のアクセス要求の完了を判別したことと、前記複数のリクエスタがより多くのアクセス要求を有すると判別したことと、に応じて前記第1リクエスタを選択解除することをさらに含む、
    請求項9の方法。
  13. 前記所定数は、単一のクロックサイクル内で処理されるアクセス要求の数である、
    請求項12の方法。
  14. 前記第1リクエスタに対して前記共有リソースへのアクセスを停止することと、
    前記第1リクエスタを、前記複数のリクエスタのうち最近選択されたアクティブなリクエスタとしてマークすることと、をさらに含む、
    請求項12の方法。
  15. 前記複数のリクエスタのうち前記第1リクエスタとは異なる第2リクエスタを選択することと、
    選択した第2リクエスタの停止を解除することと、
    前記第2リクエスタに対して、前記複数のパーティションのうち何れかのパーティションへのアクセスを許可することと、をさらに含む、
    請求項9の方法。
  16. 前記共有リソースは、グラフィックス処理ユニット内のローカルデータストアであり、前記複数のリクエスタの各々は、単一命令複数データ(SIMD)計算ユニットである、
    請求項9の方法。
  17. 複数のパーティションを含む共有リソースに接続された第1インタフェースと、
    前記共有リソースの前記複数のパーティションの異なるパーティションにそれぞれ割り当てられた複数のリクエスタに接続された第2インタフェースと、
    制御ユニットと、を備え、
    前記制御ユニットは、
    前記複数のリクエスタのうち第1リクエスタから所定のパーティションへのアクセス要求を受信したことに応じて、
    前記所定のパーティションが前記第1リクエスタに割り当てられていると判別したことに応じて、前記第1リクエスタに対して前記所定のパーティションのみへのアクセスを提供し、
    前記所定のパーティションが前記第1リクエスタに割り当てられていないと判別したことに応じて、前記第1リクエスタに対して前記複数のパーティションの全てのパーティションへのアクセスを提供する、ように構成されている、
    コントローラ。
  18. 前記制御ユニットは、前記第1リクエスタに対して全てのパーティションへのアクセスを提供する場合に、前記複数のリクエスタのうち前記第1リクエスタ以外のリクエスタの各々に対して前記共有リソースへのアクセスを停止するようにさらに構成されている、
    請求項17のコントローラ。
  19. 前記制御ユニットは、前記第1リクエスタに対する所定数のアクセス要求の完了を判別したことと、前記複数のリクエスタがより多くのアクセス要求を有すると判別したことと、に応じて前記第1リクエスタを選択解除するようにさらに構成されている、
    請求項17のコントローラ。
  20. 前記制御ユニットは、
    前記第1リクエスタに対して前記共有リソースへのアクセスを停止し、
    前記第1リクエスタを、前記複数のリクエスタのうち最近選択されたアクティブなリクエスタとしてマークするようにさらに構成されている、
    請求項19のコントローラ。
JP2019527881A 2016-11-23 2017-11-21 デュアルモードローカルデータストア Active JP7246308B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/360,205 US10073783B2 (en) 2016-11-23 2016-11-23 Dual mode local data store
US15/360,205 2016-11-23
PCT/US2017/062853 WO2018098183A1 (en) 2016-11-23 2017-11-21 Dual mode local data store

Publications (2)

Publication Number Publication Date
JP2020500379A true JP2020500379A (ja) 2020-01-09
JP7246308B2 JP7246308B2 (ja) 2023-03-27

Family

ID=57544333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019527881A Active JP7246308B2 (ja) 2016-11-23 2017-11-21 デュアルモードローカルデータストア

Country Status (6)

Country Link
US (1) US10073783B2 (ja)
EP (1) EP3327570A1 (ja)
JP (1) JP7246308B2 (ja)
KR (1) KR102493859B1 (ja)
CN (1) CN110023904B (ja)
WO (1) WO2018098183A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445850B2 (en) * 2015-08-26 2019-10-15 Intel Corporation Technologies for offloading network packet processing to a GPU
US11275606B2 (en) 2019-03-08 2022-03-15 Mobileye Vision Technologies Ltd. Priority based management of access to shared resources
CN111506350A (zh) * 2020-04-30 2020-08-07 中科院计算所西部高等技术研究院 具有ooda循环分区机制的流式处理器
TWI817039B (zh) * 2020-09-08 2023-10-01 以色列商無比視視覺科技有限公司 用以管理多個啟動器存取共享資源之方法及系統以及相關電腦程式產品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233437A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd メモリ共有型マルチプロセッサシステム
US8667200B1 (en) * 2009-09-22 2014-03-04 Nvidia Corporation Fast and highly scalable quota-based weighted arbitration

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265232A (en) 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data
US5584017A (en) 1991-12-19 1996-12-10 Intel Corporation Cache control which inhibits snoop cycles if processor accessing memory is the only processor allowed to cache the memory location
US6044446A (en) 1997-07-01 2000-03-28 Sun Microsystems, Inc. Mechanism to reduce interprocessor traffic in a shared memory multi-processor computer system
US6868485B1 (en) 2002-09-27 2005-03-15 Advanced Micro Devices, Inc. Computer system with integrated directory and processor cache
US7096323B1 (en) 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
US7047322B1 (en) 2003-09-30 2006-05-16 Unisys Corporation System and method for performing conflict resolution and flow control in a multiprocessor system
US7023445B1 (en) 2004-04-12 2006-04-04 Advanced Micro Devices, Inc. CPU and graphics unit with shared cache
US7360032B2 (en) 2005-07-19 2008-04-15 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks
US7472253B1 (en) 2006-09-22 2008-12-30 Sun Microsystems, Inc. System and method for managing table lookaside buffer performance
US7669011B2 (en) 2006-12-21 2010-02-23 Advanced Micro Devices, Inc. Method and apparatus for detecting and tracking private pages in a shared memory multiprocessor
CN102047241B (zh) * 2008-05-30 2014-03-12 先进微装置公司 本地与全局数据共享
JP5233437B2 (ja) 2008-06-23 2013-07-10 トヨタ車体株式会社 自動車用表示装置、保護パネルの形状設計方法及び形状設計装置
US20120159090A1 (en) * 2010-12-16 2012-06-21 Microsoft Corporation Scalable multimedia computer system architecture with qos guarantees
US10860384B2 (en) * 2012-02-03 2020-12-08 Microsoft Technology Licensing, Llc Managing partitions in a scalable environment
US9864638B2 (en) * 2012-06-22 2018-01-09 Intel Corporation Techniques for accessing a graphical processing unit memory by an application
US10546558B2 (en) * 2014-04-25 2020-01-28 Apple Inc. Request aggregation with opportunism
CN105224886B (zh) * 2014-06-26 2018-12-07 中国移动通信集团甘肃有限公司 一种移动终端安全隔离方法、装置及移动终端

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233437A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd メモリ共有型マルチプロセッサシステム
US8667200B1 (en) * 2009-09-22 2014-03-04 Nvidia Corporation Fast and highly scalable quota-based weighted arbitration

Also Published As

Publication number Publication date
KR20190082308A (ko) 2019-07-09
EP3327570A1 (en) 2018-05-30
KR102493859B1 (ko) 2023-01-31
CN110023904A (zh) 2019-07-16
WO2018098183A1 (en) 2018-05-31
CN110023904B (zh) 2021-11-02
US10073783B2 (en) 2018-09-11
JP7246308B2 (ja) 2023-03-27
US20180143907A1 (en) 2018-05-24

Similar Documents

Publication Publication Date Title
JP6571078B2 (ja) メモリにアクセスするための並列処理装置、コンピュータにより実施される方法、システム、コンピュータ可読媒体
JP5859639B2 (ja) 異種コア用の自動負荷バランシング
TWI537831B (zh) 多核心處理器、用於執行處理程序切換之方法、用於保全一記憶體區塊之方法、用於致能使用一多核心裝置之異動處理之設備、以及用於執行記憶體異動處理之方法
JP7246308B2 (ja) デュアルモードローカルデータストア
US9710306B2 (en) Methods and apparatus for auto-throttling encapsulated compute tasks
JP6260303B2 (ja) 演算処理装置及び演算処理装置の制御方法
US20130232322A1 (en) Uniform load processing for parallel thread sub-sets
US9069609B2 (en) Scheduling and execution of compute tasks
US20120272247A1 (en) Software emulation of massive hardware threading for tolerating remote memory references
CN103197953A (zh) 推测执行和回滚
WO2011103825A2 (zh) 多处理器系统负载均衡的方法和装置
US10019283B2 (en) Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
JP2012512472A (ja) データバースト間の競合の解決
US20070101332A1 (en) Method and apparatus for resource-based thread allocation in a multiprocessor computer system
KR20180034440A (ko) 효율적인 병렬 컴퓨팅을 위한 단순화된 태스크-기반 런타임을 위한 방법
JP2009199414A (ja) マイクロコンピュータ
US11934698B2 (en) Process isolation for a processor-in-memory (“PIM”) device
US8392640B2 (en) Pre-memory resource contention resolution
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
US8910181B2 (en) Divided central data processing
Wittig et al. Access interval prediction for tightly coupled memory systems
US10922137B2 (en) Dynamic thread mapping
Ward Sharing non-processor resources in multiprocessor real-time systems
KR20130104937A (ko) 메모리 제어기 및 이의 메모리 접근 스케줄링 방법
US20080059778A1 (en) Determination Of Running Status Of Logical Processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210921

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220804

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220804

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220906

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220913

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20220930

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20221004

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221101

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221206

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230110

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20230124

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20230228

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20230228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230314

R150 Certificate of patent or registration of utility model

Ref document number: 7246308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150