JP6660991B2 - マルチスレッドプロセッサでのタスクのスケジューリング - Google Patents
マルチスレッドプロセッサでのタスクのスケジューリング Download PDFInfo
- Publication number
- JP6660991B2 JP6660991B2 JP2018197310A JP2018197310A JP6660991B2 JP 6660991 B2 JP6660991 B2 JP 6660991B2 JP 2018197310 A JP2018197310 A JP 2018197310A JP 2018197310 A JP2018197310 A JP 2018197310A JP 6660991 B2 JP6660991 B2 JP 6660991B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- instruction
- worker
- processor
- supervisor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000004888 barrier function Effects 0.000 claims description 13
- 238000000034 method Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 33
- 238000012545 processing Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 241001522296 Erithacus rubecula Species 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012549 training Methods 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/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
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Executing Machine-Instructions (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
Description
異なるタイムスロットの反復シーケンスのそれぞれにおいて個別のスレッドを実行するように構成された実行ユニットであって、シーケンスは実行ロジックが個別のスレッドの実行をインターリーブするように動作可能な複数のタイムスロットからなる実行ユニットと、
それぞれが個別のスレッドの個別の状態を表すためのレジスタの個別のセットからなる複数のコンテキストレジスタセットと、を備え、ここでコンテキストレジスタセットは、実行ユニットが前記シーケンス内でインターリーブするように動作可能なタイムスロットの数と、少なくとも1つの追加コンテキストレジスタセットとの各々に対して個別のワーカーコンテキストレジスタセットから構成され、コンテキストレジスタセットの数は、実行ユニットがインターリーブするように動作可能なタイムスロットの数より少なくとも1つ多くなるように備えられており、ワーカーコンテキストレジスタセットは、計算タスクを実行する個別のワーカースレッドの個別の状態を表すように構成され、追加コンテキストレジスタセットは、ワーカースレッドによって実行されるタスクの実行をスケジュールするスーパーバイザスレッドの状態を表すように構成され、
ここでプロセッサは、タイムスロットの各々においてスーパーバイザスレッドを実行し始め、次にスーパーバイザスレッドが、実行中のタイムスロットの各々をワーカースレッドに個別の1つに放棄できるように構成されるプロセッサが提供される。
異なるタイムスロットの反復シーケンスの各々において個別のスレッドを実行する実行ユニットを使用することを含み、このシーケンスは実行ロジックが個別のスレッドの実行をインターリーブするように動作可能な複数のタイムスロットからなり、
そのプロセッサは複数のコンテキストレジスタセットを備え、各々が個別のスレッドの個別の状態を表すためのレジスタの個別のセットを備え、コンテキストレジスタセットは、実行ユニットが前記シーケンス内でインターリーブするように動作可能なタイムスロットの数と、少なくとも1つの追加コンテキストレジスタセットとのそれぞれについて個別のワーカーコンテキストレジスタセットを備え、
コンテキストレジスタセットの数は、実行ユニットがインターリーブするように動作可能なタイムスロットの数より少なくとも1つ多くなっており、ワーカーコンテキストレジスタセットは、計算タスクを実行する個別のワーカースレッドの個別の状態を表すために使用され、追加コンテキストレジスタセットは、ワーカースレッドによって実行されるタスクの実行をスケジュールするスーパーバイザスレッドの状態を表すために使用され、
この方法はさらに、タイムスロットの各々においてスーパーバイザスレッドの実行を開始すると、そのスーパーバイザスレッドが、それが実行しているタイムスロットの各々をワーカースレッドの個別の1つに個々に放棄することを含む方法が提供される。
・1つのワーカースレッドレジスタコンテキストで起動され、「実行」命令を遂行するスーパーバイザスレッドによって1つのバレルスロットで実行され、
・他のコードレット又はスーパーバイザとの通信なしで完了し(コードレットが終了したときのスーパーバイザへの返信を除く)、
・「実行」命令によって提供されるメモリポインタを介して頂点の持続状態と、そのバレルスロットに固有のメモリ内の非持続的な作業領域とにアクセスし、
・その最後の命令として「EXIT」を実行すると、使用していたバレルスロットがスーパーバイザに返され、終了命令で指定された終了状態がスーパーバイザで可視なタイルのローカル終了状態に集合される。
Claims (20)
- 異なるタイムスロットの反復シーケンスのそれぞれにおいて個別のスレッドを実行するように構成された実行ユニットであって、前記シーケンスは実行ロジックが個別の前記スレッドの実行をインターリーブするように動作可能な複数のタイムスロットからなる前記実行ユニットと、
それぞれが個別のスレッドの個別の状態を表すためのレジスタの個別のセットからなる複数のコンテキストレジスタセットと、を備えたプロセッサであって、
前記コンテキストレジスタセットは、前記実行ユニットが前記シーケンス内でインターリーブするように動作可能な数のタイムスロットの各々に対する個別のワーカーコンテキストレジスタセットと、少なくとも1つの追加コンテキストレジスタセットとを含み、
前記コンテキストレジスタセットの数は、前記実行ユニットがインターリーブするように動作可能な前記タイムスロットの数より少なくとも1つ多くなるように備えられており、
前記ワーカーコンテキストレジスタセットは、計算タスクを実行する個別のワーカースレッドの個別の状態を表すように構成され、
前記追加コンテキストレジスタセットは、前記ワーカースレッドによって実行される前記タスクの実行をスケジュールするスーパーバイザスレッドの状態を表すように構成され、
前記プロセッサは、前記タイムスロットの各々において前記スーパーバイザスレッドを実行し始め、次に前記スーパーバイザスレッドが、実行中の前記タイムスロットの各々を前記ワーカースレッドの個別の1つに個別に放棄できるように構成されているプロセッサ。 - 前記プロセッサは、前記スーパーバイザスレッドが、実行中の前記タイムスロット内の1つ又は複数の放棄命令を実行することによって前記放棄を実行できるように構成されている、請求項1に記載のプロセッサ。
- 前記1つ以上の放棄命令は、単一の放棄命令である、請求項2に記載のプロセッサ。
- 前記実行ユニットは、前記プロセッサによって認識される機械コード命令のタイプを定義する命令セットに従って動作するように構成されており、各機械コード命令は個別のオペコードによって定義され、
前記1つ又は複数の放棄命令の少なくとも1つは、実行されたときに前記放棄をトリガするオペコードを有する前記命令セットの専用命令である、請求項2又は3に記載のプロセッサ。 - 前記少なくとも1つの放棄命令の前記オペコードでは、放棄されている前記タイムスロットが前記少なくとも1つの放棄命令が実行される前記タイムスロットであることが暗黙的になっている、請求項4に記載のプロセッサ。
- 前記少なくとも1つの放棄命令を含む前記命令セットの1つ又は複数の命令は、前記スーパーバイザスレッドが使用するために予約され、前記ワーカースレッドによって実行可能ではない、請求項4又は5に記載のプロセッサ。
- 前記1つ又は複数の放棄命令は、前記放棄命令のオペランドにおいて、タイムスロットを放棄する少なくとも1つの前記ワーカースレッドのアドレスを指定する、請求項1〜6のいずれか1項に記載のプロセッサ。
- 前記プロセッサは、前記タイムスロットの1つがそのために放棄された前記ワーカースレッドが、自身が動作している前記タイムスロットにおいて終了命令を実行することによって、自身が動作している前記タイムスロットを前記スーパーバイザスレッドに戻すことができるように構成されている、請求項1〜7のいずれか1項に記載のプロセッサ。
- 前記実行ユニットは、前記プロセッサによって認識される機械コード命令のタイプを定義する命令セットに従って動作するように構成されており、各機械コード命令は個別のオペコードによって定義され、
前記終了命令は、実行されたときに前記放棄されたタイムスロットを前記スーパーバイザスレッドへ前記戻すことを実行するオペコードを有する前記命令セットの専用命令である、請求項8に記載のプロセッサ。 - 前記終了命令の前記オペコードでは、前記戻されるタイムスロットが前記終了命令が実行される前記タイムスロットであることが暗黙的になっている、請求項9に記載のプロセッサ。
- 前記終了命令の前記オペコードでは、前記戻されるタイムスロットが戻される前記スレッドが前記スーパーバイザスレッドであることが暗黙的になっている、請求項9又は10に記載のプロセッサ。
- 少なくとも前記終了命令を含む前記命令セットの1つ又は複数の命令は、前記ワーカースレッドによって使用されるために予約され、前記スーパーバイザスレッドによって実行可能ではない、請求項9〜11のいずれか1項に記載のプロセッサ。
- 前記スーパーバイザスレッドは、前記ワーカースレッドを同期させるためのバリア同期を実行するように構成されている、請求項1〜12のいずれか1項に記載のプロセッサ。
- 前記スーパーバイザスレッドは、前記ワーカースレッドの1つ又は複数に代わって外部リソースとの通信を実行するように構成されている、請求項1〜13のいずれか1項に記載のプロセッサ。
- 前記放棄命令は、スーパバイザコンテキストレジスタセットの1つ又は複数のステータスレジスタから、前記放棄命令によって起動されたワーカーの対応する1つ又は複数のステータスレジスタに、1つ又は複数のモードをさらにコピーして、前記ワーカーが前記1つ以上のモードを採用するように制御する、請求項2に記載のプロセッサ。
- 前記プロセッサは、前記スロットの1つで、同じプログラムコードを実行する全てのワーカースレッドのセットを一緒に起動する命令を実行するようにさらに構成されている、請求項1〜15のいずれか1項に記載のプロセッサ。
- 前記プロセッサが実行するように構成された前記命令セットは、前記スロットの1つと一緒に複数のワーカースレッドを起動するマルチラン命令をさらに含み、前記複数のワーカースレッドは3つ以上であり、
前記ワーカースレッドの1つは、前記マルチラン命令のオペランドによって指定される第1のアドレスからフェッチされたコードを含み、前記複数のワーカースレッドの他のワーカースレッドは、前記第1のアドレスに対してストライド値だけ離れた個別のアドレスからフェッチされたコードを含み、前記ストライド値は前記マルチラン命令の別のオペランドによって指定される、請求項4に記載のプロセッサ。 - 前記ワーカースレッドの数は、前記タイムスロットの数と等しい、請求項17に記載のプロセッサ。
- プロセッサを動作させる方法であって、
異なるタイムスロットの反復シーケンスの各々において個別のスレッドを実行するために実行ユニットを使用することを含み、前記シーケンスは、実行ユニットが個別の前記スレッドの実行をインターリーブするように動作可能な複数のタイムスロットからなり、
前記プロセッサは、各々が個別のスレッドの個別の状態を表すためのレジスタの個別のセットを含む複数のコンテキストレジスタセットを備え、
前記コンテキストレジスタセットは、前記実行ユニットが前記シーケンス内でインターリーブするように動作可能な数のタイムスロットの各々に対する個別のワーカーコンテキストレジスタセットと、少なくとも1つの追加コンテキストレジスタセットとを備え、
前記コンテキストレジスタセットの数は、前記実行ユニットがインターリーブするように動作可能なタイムスロットの数より少なくとも1つ多くなっており、
前記ワーカーコンテキストレジスタセットは、計算タスクを実行する個別のワーカースレッドの個別の状態を表すために使用され、
前記追加コンテキストレジスタセットは、前記ワーカースレッドによって実行される前記タスクの実行をスケジュールするスーパーバイザスレッドの状態を表すために使用され、
前記方法はさらに、前記タイムスロットの各々において前記スーパーバイザスレッドの実行を開始し、次に、前記スーパーバイザスレッドは、それが実行している前記タイムスロットの各々を前記ワーカースレッドの1つに個々に放棄することを含む、方法。 - 請求項19に記載の方法をコンピュータに実行させるプログラム。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1717303.0 | 2017-10-20 | ||
GBGB1717303.0A GB201717303D0 (en) | 2017-10-20 | 2017-10-20 | Scheduling tasks in a multi-threaded processor |
US15/885925 | 2018-02-01 | ||
US15/885,925 US10956165B2 (en) | 2017-10-20 | 2018-02-01 | Scheduling tasks in a multi-threaded processor |
GB1816891.4A GB2569843B (en) | 2017-10-20 | 2018-10-17 | Scheduling tasks in a multi-threaded processor |
GB1816891.4 | 2018-10-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019079530A JP2019079530A (ja) | 2019-05-23 |
JP6660991B2 true JP6660991B2 (ja) | 2020-03-11 |
Family
ID=60481909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018197310A Active JP6660991B2 (ja) | 2017-10-20 | 2018-10-19 | マルチスレッドプロセッサでのタスクのスケジューリング |
Country Status (8)
Country | Link |
---|---|
US (2) | US10956165B2 (ja) |
JP (1) | JP6660991B2 (ja) |
KR (1) | KR102159730B1 (ja) |
CN (1) | CN109697111B (ja) |
CA (1) | CA3021447C (ja) |
FR (1) | FR3072798B1 (ja) |
GB (2) | GB201717303D0 (ja) |
TW (1) | TWI687866B (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201819616D0 (en) * | 2018-11-30 | 2019-01-16 | Graphcore Ltd | Virtualised gateways |
GB2580316B (en) | 2018-12-27 | 2021-02-24 | Graphcore Ltd | Instruction cache in a multi-threaded processor |
US10943323B2 (en) * | 2018-12-28 | 2021-03-09 | Arm Limited | Data processing systems |
GB201904265D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A partitionable networked computer |
GB201904266D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer with embedded rings |
GB201904267D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer with multiple embedded rings |
GB201904263D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer |
CN112084122B (zh) * | 2019-09-30 | 2021-09-28 | 成都海光微电子技术有限公司 | 计算机存储器中对区域预取器的置信度和侵略性控制 |
US11327690B2 (en) * | 2019-11-13 | 2022-05-10 | Google Llc | Enhanced input of machine-learning accelerator activations |
EP3973406A1 (en) | 2020-03-26 | 2022-03-30 | Graphcore Limited | Embedding rings on a toroid computer network |
GB2596872B (en) * | 2020-07-10 | 2022-12-14 | Graphcore Ltd | Handling injected instructions in a processor |
GB2597078B (en) * | 2020-07-14 | 2022-07-13 | Graphcore Ltd | Communication between host and accelerator over network |
CN112463327B (zh) * | 2020-11-25 | 2023-01-31 | 海光信息技术股份有限公司 | 逻辑线程快速切换的方法、装置、cpu芯片及服务器 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69429204T2 (de) * | 1993-03-26 | 2002-07-25 | Cabletron Systems Inc | Ablaufssteuerungsverfahren und -gerät für ein Kommunikationsnetzwerk |
US6233599B1 (en) | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
US6986141B1 (en) * | 1998-03-10 | 2006-01-10 | Agere Systems Inc. | Context controller having instruction-based time slice task switching capability and processor employing the same |
US6401155B1 (en) * | 1998-12-22 | 2002-06-04 | Philips Electronics North America Corporation | Interrupt/software-controlled thread processing |
US6957432B2 (en) | 2000-03-21 | 2005-10-18 | Microsoft Corporation | Real-time scheduler |
EP1317832B1 (en) * | 2000-07-31 | 2016-12-14 | Intel Deutschland GmbH | Method and apparatus for time-sliced and multi-threaded data processing in a communication system |
US20030126416A1 (en) * | 2001-12-31 | 2003-07-03 | Marr Deborah T. | Suspending execution of a thread in a multi-threaded processor |
CN1842770A (zh) * | 2003-08-28 | 2006-10-04 | 美普思科技有限公司 | 一种在处理器中挂起和释放执行过程中计算线程的整体机制 |
US8099110B2 (en) | 2004-07-29 | 2012-01-17 | Samsung Electronics Co., Ltd. | Apparatus and method for efficient determination of mobile station location in a wireless network |
US7203822B2 (en) | 2004-07-31 | 2007-04-10 | Hewlett-Packard Development Company, L.P. | Unprivileged context management |
US20060146864A1 (en) * | 2004-12-30 | 2006-07-06 | Rosenbluth Mark B | Flexible use of compute allocation in a multi-threaded compute engines |
US7810083B2 (en) | 2004-12-30 | 2010-10-05 | Intel Corporation | Mechanism to emulate user-level multithreading on an OS-sequestered sequencer |
CN102968302B (zh) * | 2005-03-02 | 2016-01-27 | 英特尔公司 | 利用同步开销以改善多线程性能的机制 |
US8195922B2 (en) * | 2005-03-18 | 2012-06-05 | Marvell World Trade, Ltd. | System for dynamically allocating processing time to multiple threads |
US7743233B2 (en) | 2005-04-05 | 2010-06-22 | Intel Corporation | Sequencer address management |
US7849466B2 (en) | 2005-07-12 | 2010-12-07 | Qualcomm Incorporated | Controlling execution mode of program threads by applying a mask to a control register in a multi-threaded processor |
US7685409B2 (en) | 2007-02-21 | 2010-03-23 | Qualcomm Incorporated | On-demand multi-thread multimedia processor |
US7958333B2 (en) * | 2007-05-30 | 2011-06-07 | XMOS Ltd. | Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected |
US20090260013A1 (en) * | 2008-04-14 | 2009-10-15 | International Business Machines Corporation | Computer Processors With Plural, Pipelined Hardware Threads Of Execution |
JP2010176403A (ja) * | 2009-01-29 | 2010-08-12 | Toyota Motor Corp | マルチスレッドプロセッサ装置 |
US8214831B2 (en) * | 2009-05-05 | 2012-07-03 | International Business Machines Corporation | Runtime dependence-aware scheduling using assist thread |
GB2489708B (en) | 2011-04-05 | 2020-04-15 | Advanced Risc Mach Ltd | Thread selection for multithreaded processing |
EP2828748A4 (en) | 2012-03-21 | 2016-01-13 | Nokia Technologies Oy | METHOD IN A PROCESSOR, DEVICE AND COMPUTER PROGRAM PRODUCT |
JP5894496B2 (ja) | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2014153860A (ja) | 2013-02-07 | 2014-08-25 | Renesas Electronics Corp | マルチスレッドプロセッサ |
US20150074353A1 (en) * | 2013-09-06 | 2015-03-12 | Futurewei Technologies, Inc. | System and Method for an Asynchronous Processor with Multiple Threading |
US9558000B2 (en) * | 2014-02-06 | 2017-01-31 | Optimum Semiconductor Technologies, Inc. | Multithreading using an ordered list of hardware contexts |
-
2017
- 2017-10-20 GB GBGB1717303.0A patent/GB201717303D0/en not_active Ceased
-
2018
- 2018-02-01 US US15/885,925 patent/US10956165B2/en active Active
- 2018-10-17 GB GB1816891.4A patent/GB2569843B/en active Active
- 2018-10-18 FR FR1859640A patent/FR3072798B1/fr active Active
- 2018-10-19 JP JP2018197310A patent/JP6660991B2/ja active Active
- 2018-10-19 CA CA3021447A patent/CA3021447C/en active Active
- 2018-10-19 TW TW107137040A patent/TWI687866B/zh active
- 2018-10-19 KR KR1020180125340A patent/KR102159730B1/ko active IP Right Grant
- 2018-10-22 CN CN201811228749.6A patent/CN109697111B/zh active Active
-
2021
- 2021-02-10 US US17/172,864 patent/US11550591B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2569843A (en) | 2019-07-03 |
GB2569843B (en) | 2020-06-10 |
GB201717303D0 (en) | 2017-12-06 |
US20210165660A1 (en) | 2021-06-03 |
US11550591B2 (en) | 2023-01-10 |
TWI687866B (zh) | 2020-03-11 |
CN109697111A (zh) | 2019-04-30 |
FR3072798B1 (fr) | 2021-04-30 |
CA3021447C (en) | 2021-12-14 |
US10956165B2 (en) | 2021-03-23 |
KR20190044551A (ko) | 2019-04-30 |
TW201923561A (zh) | 2019-06-16 |
CA3021447A1 (en) | 2019-04-20 |
US20190121668A1 (en) | 2019-04-25 |
JP2019079530A (ja) | 2019-05-23 |
FR3072798A1 (fr) | 2019-04-26 |
CN109697111B (zh) | 2023-05-02 |
KR102159730B1 (ko) | 2020-09-24 |
GB201816891D0 (en) | 2018-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6660991B2 (ja) | マルチスレッドプロセッサでのタスクのスケジューリング | |
CN110214317B (zh) | 多瓦片处理布置中的同步 | |
US11113060B2 (en) | Combining states of multiple threads in a multi threaded processor | |
US11893390B2 (en) | Method of debugging a processor that executes vertices of an application, each vertex being assigned to a programming thread of the processor | |
US10606641B2 (en) | Scheduling tasks in a multi-threaded processor | |
US11449338B2 (en) | Handling exceptions in a multi-tile processing arrangement | |
US11645081B2 (en) | Handling exceptions in a multi-tile processing arrangement | |
US20220197645A1 (en) | Repeat Instruction for Loading and/or Executing Code in a Claimable Repeat Cache a Specified Number of Times | |
GB2583574A (en) | Handling exceptions in a multi-tile processing arrangement | |
JP2020119504A (ja) | 分岐予測器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190218 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190218 |
|
AA79 | Non-delivery of priority document |
Free format text: JAPANESE INTERMEDIATE CODE: A24379 Effective date: 20190226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191015 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200110 |
|
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: 20200128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6660991 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 |