JP6143872B2 - 装置、方法、およびシステム - Google Patents
装置、方法、およびシステム Download PDFInfo
- Publication number
- JP6143872B2 JP6143872B2 JP2015534474A JP2015534474A JP6143872B2 JP 6143872 B2 JP6143872 B2 JP 6143872B2 JP 2015534474 A JP2015534474 A JP 2015534474A JP 2015534474 A JP2015534474 A JP 2015534474A JP 6143872 B2 JP6143872 B2 JP 6143872B2
- Authority
- JP
- Japan
- Prior art keywords
- bank
- thread
- instruction
- banks
- processor
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 34
- 230000015654 memory Effects 0.000 claims description 116
- 230000004044 response Effects 0.000 claims description 23
- 238000005192 partition Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 13
- 230000000694 effects Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 28
- 238000012545 processing Methods 0.000 description 25
- 238000007667 floating Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 11
- 239000000835 fiber Substances 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 208000032826 Ring chromosome 3 syndrome Diseases 0.000 description 1
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
本実施形態の例を下記の各項目として示す。
[項目1]
装置であり、
前記装置は、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合されている実行回路と
を備え、
前記実行回路は、第1スレッドと第2スレッドとを含む2つのユーザレベルスレッドの複数のコンテキストを交換するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して前記第1バンクから前記第2バンクへ前記ポインタを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行する、
装置。
[項目2]
前記複数のコンテキストのコピーは、前記拡張レジスタセットの前記複数のバンクに対応する複数のメモリ領域に格納される、項目1に記載の装置。
[項目3]
前記複数のメモリ領域へのアクセスをトラッキングするスヌープ回路であり、前記アクセスが検出された場合に、前記複数のメモリ領域の一のエリアと前記拡張レジスタセットの対応するバンクとの間で前記複数のコンテキストを同期させるためのイベントをトリガする前記スヌープ回路をさらに備える、項目2に記載の装置。
[項目4]
複数のパーティションに分割された複数のベクトルレジスタをさらに備え、
前記複数のコンテキストのコピーは、前記拡張レジスタセットの前記複数のバンクに対応する前記複数のパーティションに格納される、項目1から3のいずれか一項に記載の装置。
[項目5]
前記複数のベクトルレジスタのそれぞれは、所与のコンテキストの最新のコピーが前記複数のベクトルレジスタまたは前記拡張レジスタセットに格納されているかを示す、自身に関連付けられた1または複数の状態ビットを有する、項目4に記載の装置。
[項目6]
所与のユーザレベルスレッドにより参照されるレジスタを前記拡張レジスタセットの対応するバンクにマッピングする前記実行回路に結合されたデコーダ回路をさらに備える、項目1から5のいずれか一項に記載の装置。
[項目7]
前記実行回路は、前記命令に応答して、無条件に前記第2コンテキストに切り替える、項目1から6のいずれか一項に記載の装置。
[項目8]
前記第2コンテキストに切り替えるための条件が満たされたかを決定する、前記実行回路に結合されたフロントエンド回路をさらに備える、項目1から7のいずれか一項に記載の装置。
[項目9]
前記命令は、複数の命令を含む命令ブロックの境界をマーク付けする命令ペアのうち一方であり、
前記命令ブロック内の各命令は、コンテキスト切り替えの候補である、項目1から8のいずれか一項に記載の装置。
[項目10]
前記実行回路に結合されたマスクレジスタをさらに備え、
前記マスクレジスタは複数のマスクビットを有し、
各マスクビットは、前記複数のバンクのうち1つに関連付けられ、前記複数のバンクのうち前記1つがコンテキスト切り替えを非アクティブ化されたかを示す、項目1から9のいずれか一項に記載の装置。
[項目11]
プロセッサにより、拡張レジスタセットの複数のバンクのうち、第1バンクに格納される第1コンテキストを用いて、ユーザレベルスレッドである第1スレッドを実行する段階と、
前記プロセッサにより、前記第1スレッド、および、前記拡張レジスタセットの前記複数のバンクのうち第2バンクに保存された第2コンテキストを有する他のユーザレベルスレッドである第2スレッドの複数のコンテキストを交換するための命令を受信する段階と、
前記命令に応答して、現在アクティブなバンクとして前記第1バンクを指し示すレジスタポインタを、前記第2バンクへ変更する段階と、
前記プロセッサにより、前記第2バンクに格納された前記第2コンテキストを用いて、前記第2スレッドを実行する段階と
を備える、方法。
[項目12]
前記複数のコンテキストのコピーは、前記拡張レジスタセットの前記複数のバンクに対応する複数のメモリ領域に格納される、項目11に記載の方法。
[項目13]
前記複数のメモリ領域へのアクセスをトラッキングする段階と、
前記アクセスが検出された場合に、前記複数のメモリ領域の一のエリアと、前記拡張レジスタセットの対応するバンクとの間で前記複数のコンテキストを同期させるためのイベントをトリガする段階と
をさらに備える、項目12に記載の方法。
[項目14]
前記複数のコンテキストのコピーは、前記拡張レジスタセットの前記複数のバンクに対応する複数のベクトルレジスタの複数のパーティションに格納される、項目11から13のいずれか一項に記載の方法。
[項目15]
前記複数のベクトルレジスタのそれぞれは、所与のコンテキストの最新のコピーが前記複数のベクトルレジスタまたは前記拡張レジスタセットに格納されているかを示す、自身に関連付けられた1または複数の状態ビットを有する、項目14に記載の方法。
[項目16]
前記命令を実行する段階は、前記第2コンテキストへの切り替えを無条件に引き起こす、項目11から15のいずれか一項に記載の方法。
[項目17]
前記命令の実行は、前記第2コンテキストに切り替えるための条件が満たされたかの決定を引き起こす、項目11から16のいずれか一項に記載の方法。
[項目18]
前記命令は、複数の命令を含む命令ブロックの境界をマーク付けする命令ペアのうち一方であり、
前記命令ブロック内の各命令は、コンテキスト切り替えの候補である、項目11から17のいずれか一項に記載の方法。
[項目19]
オペレーティングシステムの関与なしで前記命令を実行する段階をさらに備える、項目11から18のいずれか一項に記載の方法。
[項目20]
システムであり、
前記システムは、
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサは、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合された実行回路と
を有し、
前記実行回路は、
第1スレッドと第2スレッドとを含む2つのユーザレベルスレッドの複数のコンテキストを交換するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して前記第1バンクから前記第2バンクへ前記ポインタを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行する、
システム。
[項目21]
前記複数のコンテキストのコピーは、前記拡張レジスタセットの前記複数のバンクに対応する前記メモリの複数のメモリ領域に格納される、項目20に記載のシステム。
[項目22]
複数のパーティションに分割された複数のベクトルレジスタをさらに備え、
前記複数のコンテキストのコピーは、前記拡張レジスタセットの前記複数のバンクに対応する前記複数のパーティションに格納される、項目20または21に記載のシステム。
Claims (20)
- 装置であり、
前記装置は、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合されている実行回路と、
複数のパーティションに分割された複数のベクトルレジスタと
を備え、
前記実行回路は、ユーザレベルスレッドである第1スレッドから、ユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して、前記第1バンクから前記第2バンクへ、前記ポインタが指し示すバンクを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行し、
前記バンクに保存された前記コンテキストのコピーは、当該バンクに対応する前記パーティションに格納されるものである、
装置。 - 装置であり、
前記装置は、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合されている実行回路と
を備え、
前記実行回路は、ユーザレベルスレッドである第1スレッドから、ユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して、前記第1バンクから前記第2バンクへ、前記ポインタが指し示すバンクを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行し、
前記装置は、前記命令である第2の種類の命令に応答して前記第2コンテキストに切り替えるための条件が満たされたかを決定する、前記実行回路に結合されたフロントエンド回路をさらに備え、
第3の種類の命令を前記装置は実行可能であり、
前記第3の種類の命令は、複数の命令を含む命令ブロックの境界をマーク付けする命令ペアのうち一方であり、
前記命令ブロックに含まれる命令のそれぞれは、実行されると、前記第2の種類の命令と同じ作用を前記装置にもたらすためのものである、
装置。 - 装置であり、
前記装置は、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合されている実行回路と、
前記実行回路に結合されたマスクレジスタと
を備え、
前記実行回路は、ユーザレベルスレッドである第1スレッドから、ユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して、前記第1バンクから前記第2バンクへ、前記ポインタが指し示すバンクを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行し、
前記マスクレジスタは、複数のマスクビットを有し、
各マスクビットは、前記複数のバンクのうち1つに関連付けられ、前記複数のバンクのうち前記1つがコンテキスト切り替えを非アクティブ化されたかを示す、
装置。 - 前記バンクに保存された前記コンテキストのコピーは、当該バンクに対応するメモリ領域に保存されるものであり、前記バンク毎に対応する前記メモリ領域により複数のメモリ領域が構成されるものである、請求項2または3に記載の装置。
- 前記複数のメモリ領域へのアクセスをトラッキングするスヌープ回路であり、前記アクセスが検出された場合に、前記複数のメモリ領域の一のエリアと前記拡張レジスタセットの対応するバンクとの間で前記コンテキストを同期させるためのイベントをトリガする前記スヌープ回路をさらに備える、請求項4に記載の装置。
- 前記複数のベクトルレジスタのそれぞれは、所与のコンテキストの最新のコピーが前記ベクトルレジスタと前記拡張レジスタセットのいずれに格納されているのかを示す、自身に関連付けられた1または複数の状態ビットを有する、請求項1に記載の装置。
- 所与のユーザレベルスレッドにより参照されるレジスタを前記拡張レジスタセットの対応するバンクにマッピングする前記実行回路に結合されたデコーダ回路をさらに備える、請求項1から6のいずれか一項に記載の装置。
- 前記命令である第1の種類の命令に応答して、前記実行回路は、無条件に前記第2コンテキストに切り替える、請求項1から7のいずれか一項に記載の装置。
- プロセッサにより、拡張レジスタセットの複数のバンクのうち、第1バンクに格納される第1コンテキストを用いて、ユーザレベルスレッドである第1スレッドを実行する段階と、
前記プロセッサにより、前記第1スレッドから、前記拡張レジスタセットの前記複数のバンクのうちの第2バンクに保存された第2コンテキストを有する他のユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信する段階と、
前記命令に応答して、前記第1バンクから前記第2バンクへ、レジスタポインタが指し示す現在アクティブなバンクを変更する段階と、
前記プロセッサにより、前記第2バンクに格納された前記第2コンテキストを用いて、前記第2スレッドを実行する段階と
を備え、
前記バンクに保存された前記コンテキストのコピーは、複数のベクトルレジスタの複数のパーティションのうち、当該バンクに対応するパーティションに格納されるものである、
方法。 - プロセッサにより、拡張レジスタセットの複数のバンクのうち、第1バンクに格納される第1コンテキストを用いて、ユーザレベルスレッドである第1スレッドを実行する段階と、
前記プロセッサにより、前記第1スレッドから、前記拡張レジスタセットの前記複数のバンクのうちの第2バンクに保存された第2コンテキストを有する他のユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信する段階と、
前記命令に応答して、前記第1バンクから前記第2バンクへ、レジスタポインタが指し示す現在アクティブなバンクを変更する段階と、
前記プロセッサにより、前記第2バンクに格納された前記第2コンテキストを用いて、前記第2スレッドを実行する段階と、
第3の種類の命令を実行する段階と
を備え、
前記命令である第2の種類の命令に応答して、前記第2コンテキストに切り替えるための条件が満たされたかの決定を引き起こし、
前記第3の種類の命令は、複数の命令を含む命令ブロックの境界をマーク付けする命令ペアのうち一方であり、
前記命令ブロックに含まれる命令のそれぞれは、実行されると、前記第2の種類の命令と同じ作用をもたらすためのものである、
方法。 - プロセッサにより、拡張レジスタセットの複数のバンクのうち、第1バンクに格納される第1コンテキストを用いて、ユーザレベルスレッドである第1スレッドを実行する段階と、
前記プロセッサにより、前記第1スレッドから、前記拡張レジスタセットの前記複数のバンクのうちの第2バンクに保存された第2コンテキストを有する他のユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信する段階と、
前記命令に応答して、前記第1バンクから前記第2バンクへ、レジスタポインタが指し示す現在アクティブなバンクを変更する段階と、
前記プロセッサにより、前記第2バンクに格納された前記第2コンテキストを用いて、前記第2スレッドを実行する段階と、
マスクレジスタのマスクビットを設定して、当該マスクビットに対応するバンクがコンテキスト切り替えを非アクティブ化されたかを示す段階と
を備える、方法。 - 前記バンクに保存された前記コンテキストのコピーは、当該バンクに対応するメモリ領域に保存されるものであり、前記バンク毎に対応する前記メモリ領域により複数のメモリ領域が構成されるものである、請求項10または11に記載の方法。
- 前記複数のメモリ領域へのアクセスをトラッキングする段階と、
前記アクセスが検出された場合に、前記複数のメモリ領域の一のエリアと、前記拡張レジスタセットの対応するバンクとの間で前記コンテキストを同期させるためのイベントをトリガする段階と
をさらに備える、請求項12に記載の方法。 - 前記複数のベクトルレジスタのそれぞれは、所与のコンテキストの最新のコピーが前記ベクトルレジスタと前記拡張レジスタセットのいずれに格納されているのかを示す、自身に関連付けられた1または複数の状態ビットを有する、請求項9に記載の方法。
- 前記命令である第1の種類の命令に応答して、無条件に前記第2コンテキストに切り替える、請求項9から14のいずれか一項に記載の方法。
- オペレーティングシステムの関与なしで前記命令を実行する段階をさらに備える、請求項9から15のいずれか一項に記載の方法。
- システムであり、
前記システムは、
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサは、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
複数のパーティションに分割された複数のベクトルレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合された実行回路と
を有し、
前記実行回路は、
ユーザレベルスレッドである第1スレッドから、ユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して、前記第1バンクから前記第2バンクへ、前記ポインタが指し示すバンクを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行し、
前記バンクに保存された前記コンテキストのコピーは、当該バンクに対応する前記パーティションに格納されるものである、
システム。 - システムであり、
前記システムは、
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサは、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合された実行回路と
を有し、
前記実行回路は、
ユーザレベルスレッドである第1スレッドから、ユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して、前記第1バンクから前記第2バンクへ、前記ポインタが指し示すバンクを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行し、
前記プロセッサは、前記命令である第2の種類の命令に応答して前記第2コンテキストに切り替えるための条件が満たされたかを決定する、前記実行回路に結合されたフロントエンド回路をさらに備え、
第3の種類の命令を前記プロセッサは実行可能であり、
前記第3の種類の命令は、複数の命令を含む命令ブロックの境界をマーク付けする命令ペアのうち一方であり、
前記命令ブロックに含まれる命令のそれぞれは、実行されると、前記第2の種類の命令と同じ作用を前記プロセッサにもたらすためのものである、
システム。 - システムであり、
前記システムは、
メモリと、
前記メモリに結合されたプロセッサと
を備え、
前記プロセッサは、
複数のバンクに区分けされた拡張レジスタセットと、
前記複数のバンクのうち現在アクティブであるバンクを指し示すポインタを提供する現在のバンクレジスタと、
前記拡張レジスタセットおよび前記現在のバンクレジスタに結合された実行回路と、
前記実行回路に結合されたマスクレジスタと
を有し、
前記実行回路は、
ユーザレベルスレッドである第1スレッドから、ユーザレベルスレッドである第2スレッドに、アクティブとなるバンクに対応するスレッドを変更するための命令を受信し、
前記第1スレッドは、前記複数のバンクのうち第1バンクに保存された第1コンテキストを有し、
前記第2スレッドは、前記複数のバンクのうち第2バンクに保存された第2コンテキストを有し、
前記実行回路は、
前記命令に応答して、前記第1バンクから前記第2バンクへ、前記ポインタが指し示すバンクを変更し、
前記第2バンクに格納された前記第2コンテキストを用いて前記第2スレッドを実行し、
前記マスクレジスタは、複数のマスクビットを有し、
各マスクビットは、前記複数のバンクのうち1つに関連付けられ、前記複数のバンクのうち前記1つがコンテキスト切り替えを非アクティブ化されたかを示す、
システム。 - 前記バンクに保存された前記コンテキストのコピーは、当該バンクに対応するメモリ領域に保存されるものであり、前記バンク毎に対応する前記メモリ領域により複数のメモリ領域が構成されるものである、請求項18または19に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/630,124 US20140095847A1 (en) | 2012-09-28 | 2012-09-28 | Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading |
US13/630,124 | 2012-09-28 | ||
PCT/US2013/047401 WO2014051771A1 (en) | 2012-09-28 | 2013-06-24 | A new instruction and highly efficient micro-architecture to enable instant context switch for user-level threading |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015534188A JP2015534188A (ja) | 2015-11-26 |
JP6143872B2 true JP6143872B2 (ja) | 2017-06-07 |
Family
ID=50386392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015534474A Expired - Fee Related JP6143872B2 (ja) | 2012-09-28 | 2013-06-24 | 装置、方法、およびシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US20140095847A1 (ja) |
JP (1) | JP6143872B2 (ja) |
KR (1) | KR101771825B1 (ja) |
CN (1) | CN104603795B (ja) |
DE (1) | DE112013003731T5 (ja) |
GB (1) | GB2519254A (ja) |
WO (1) | WO2014051771A1 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9292470B2 (en) * | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9336180B2 (en) * | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9501276B2 (en) * | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
CN104461758B (zh) * | 2014-11-10 | 2017-08-25 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构 |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US9952867B2 (en) * | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
GB2540937B (en) * | 2015-07-30 | 2019-04-03 | Advanced Risc Mach Ltd | Graphics processing systems |
US9946566B2 (en) * | 2015-09-28 | 2018-04-17 | Intel Corporation | Method and apparatus for light-weight virtualization contexts |
US10664181B2 (en) | 2017-11-14 | 2020-05-26 | International Business Machines Corporation | Protecting in-memory configuration state registers |
US10761983B2 (en) * | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Memory based configuration state registers |
US10698686B2 (en) * | 2017-11-14 | 2020-06-30 | International Business Machines Corporation | Configurable architectural placement control |
US10901738B2 (en) | 2017-11-14 | 2021-01-26 | International Business Machines Corporation | Bulk store and load operations of configuration state registers |
US10635602B2 (en) * | 2017-11-14 | 2020-04-28 | International Business Machines Corporation | Address translation prior to receiving a storage reference using the address to be translated |
US10558366B2 (en) | 2017-11-14 | 2020-02-11 | International Business Machines Corporation | Automatic pinning of units of memory |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US10496437B2 (en) * | 2017-11-14 | 2019-12-03 | International Business Machines Corporation | Context switch by changing memory pointers |
US10642757B2 (en) | 2017-11-14 | 2020-05-05 | International Business Machines Corporation | Single call to perform pin and unpin operations |
US10552070B2 (en) * | 2017-11-14 | 2020-02-04 | International Business Machines Corporation | Separation of memory-based configuration state registers based on groups |
US10761751B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Configuration state registers grouped based on functional affinity |
US11811401B2 (en) | 2019-08-14 | 2023-11-07 | Google Llc | Dual-mode operation of application specific integrated circuits |
CN111857831B (zh) * | 2020-06-11 | 2021-07-20 | 成都海光微电子技术有限公司 | 一种存储体冲突优化方法、并行处理器及电子设备 |
CN112463327B (zh) * | 2020-11-25 | 2023-01-31 | 海光信息技术股份有限公司 | 逻辑线程快速切换的方法、装置、cpu芯片及服务器 |
US11545209B2 (en) * | 2021-05-28 | 2023-01-03 | Micron Technology, Inc. | Power savings mode toggling to prevent bias temperature instability |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3644042B2 (ja) * | 1993-11-15 | 2005-04-27 | ソニー株式会社 | マルチタスク処理装置 |
JPH09212371A (ja) * | 1996-02-07 | 1997-08-15 | Nec Corp | レジスタ退避及び復元システム |
US5920710A (en) * | 1996-11-18 | 1999-07-06 | Advanced Micro Devices, Inc. | Apparatus and method for modifying status bits in a reorder buffer with a large speculative state |
US6401155B1 (en) * | 1998-12-22 | 2002-06-04 | Philips Electronics North America Corporation | Interrupt/software-controlled thread processing |
US20020103847A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Efficient mechanism for inter-thread communication within a multi-threaded computer system |
US7853778B2 (en) * | 2001-12-20 | 2010-12-14 | Intel Corporation | Load/move and duplicate instructions for a processor |
JP2004220070A (ja) * | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
US9189230B2 (en) * | 2004-03-31 | 2015-11-17 | Intel Corporation | Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution |
JP2006092042A (ja) * | 2004-09-21 | 2006-04-06 | Sanyo Electric Co Ltd | 情報処理装置及びコンテキスト切り替え方法 |
US7827551B2 (en) * | 2005-09-21 | 2010-11-02 | Intel Corporation | Real-time threading service for partitioned multiprocessor systems |
US7461275B2 (en) * | 2005-09-30 | 2008-12-02 | Intel Corporation | Dynamic core swapping |
US8689215B2 (en) * | 2006-12-19 | 2014-04-01 | Intel Corporation | Structured exception handling for application-managed thread units |
US7933759B2 (en) * | 2008-03-28 | 2011-04-26 | Microsoft Corporation | Predicate checking for distributed systems |
US20100312991A1 (en) * | 2008-05-08 | 2010-12-09 | Mips Technologies, Inc. | Microprocessor with Compact Instruction Set Architecture |
US20110055495A1 (en) * | 2009-08-28 | 2011-03-03 | Qualcomm Incorporated | Memory Controller Page Management Devices, Systems, and Methods |
US8490113B2 (en) * | 2011-06-24 | 2013-07-16 | International Business Machines Corporation | Messaging in a parallel computer using remote direct memory access (‘RDMA’) |
-
2012
- 2012-09-28 US US13/630,124 patent/US20140095847A1/en not_active Abandoned
-
2013
- 2013-06-24 KR KR1020157003710A patent/KR101771825B1/ko active IP Right Grant
- 2013-06-24 DE DE112013003731.9T patent/DE112013003731T5/de active Pending
- 2013-06-24 CN CN201380045434.7A patent/CN104603795B/zh not_active Expired - Fee Related
- 2013-06-24 WO PCT/US2013/047401 patent/WO2014051771A1/en active Application Filing
- 2013-06-24 GB GB201500863A patent/GB2519254A/en not_active Withdrawn
- 2013-06-24 JP JP2015534474A patent/JP6143872B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2014051771A1 (en) | 2014-04-03 |
KR101771825B1 (ko) | 2017-08-25 |
US20140095847A1 (en) | 2014-04-03 |
GB201500863D0 (en) | 2015-03-04 |
KR20150030274A (ko) | 2015-03-19 |
JP2015534188A (ja) | 2015-11-26 |
DE112013003731T5 (de) | 2015-05-21 |
GB2519254A (en) | 2015-04-15 |
CN104603795B (zh) | 2018-11-06 |
CN104603795A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6143872B2 (ja) | 装置、方法、およびシステム | |
US10503505B2 (en) | Read and write masks update instruction for vectorization of recursive computations over independent data | |
US11243768B2 (en) | Mechanism for saving and retrieving micro-architecture context | |
US9411739B2 (en) | System, method and apparatus for improving transactional memory (TM) throughput using TM region indicators | |
JP6340097B2 (ja) | リードマスク及びライトマスクにより制御されるベクトル移動命令 | |
US10678541B2 (en) | Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions | |
CN108885586B (zh) | 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令 | |
US10127039B2 (en) | Extension of CPU context-state management for micro-architecture state | |
JP5985526B2 (ja) | システムコールのためのロバスト且つ高性能な命令 | |
US11354128B2 (en) | Optimized mode transitions through predicting target state | |
US10761979B2 (en) | Bit check processors, methods, systems, and instructions to check a bit with an indicated check bit value | |
US10579378B2 (en) | Instructions for manipulating a multi-bit predicate register for predicating instruction sequences | |
US9880839B2 (en) | Instruction that performs a scatter write | |
CN110554887A (zh) | 间接存储器提取器 | |
CN112148106A (zh) | 用于处理器的混合预留站的系统、装置和方法 | |
CN115858022A (zh) | 集群化解码管线的可缩放切换点控制电路系统 | |
US20160378497A1 (en) | Systems, Methods, and Apparatuses for Thread Selection and Reservation Station Binding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160531 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160830 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20161028 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161130 |
|
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: 20170411 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6143872 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |