JP7492528B2 - リングバッファ更新の処理 - Google Patents
リングバッファ更新の処理 Download PDFInfo
- Publication number
- JP7492528B2 JP7492528B2 JP2021551586A JP2021551586A JP7492528B2 JP 7492528 B2 JP7492528 B2 JP 7492528B2 JP 2021551586 A JP2021551586 A JP 2021551586A JP 2021551586 A JP2021551586 A JP 2021551586A JP 7492528 B2 JP7492528 B2 JP 7492528B2
- Authority
- JP
- Japan
- Prior art keywords
- slot
- indicator
- ring buffer
- value
- slots
- 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
- 238000000034 method Methods 0.000 claims description 404
- 230000008569 process Effects 0.000 claims description 373
- 238000012545 processing Methods 0.000 claims description 101
- 230000008859 change Effects 0.000 claims description 65
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- NRTLIYOWLVMQBO-UHFFFAOYSA-N 5-chloro-1,3-dimethyl-N-(1,1,3-trimethyl-1,3-dihydro-2-benzofuran-4-yl)pyrazole-4-carboxamide Chemical compound C=12C(C)OC(C)(C)C2=CC=CC=1NC(=O)C=1C(C)=NN(C)C=1Cl NRTLIYOWLVMQBO-UHFFFAOYSA-N 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
- G06F5/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、その少なくとも1つのスロットを解放する解放プロセスを実行するように構成されている、データ処理回路と、リングバッファのメタデータを記憶するリングバッファメタデータ記憶回路とを備え、メタデータは第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、第2の参照インジケータは現在スロットの期待される位置を示す期待スロットインジケータを含み、1つ以上の保留スロットは現在スロットの後に取得されたものであり、期待スロット値は、プロセスがリングバッファの少なくとも1つのスロットを取得するために取得プロセスを実行するときの期待スロットインジケータの値であり、解放プロセスは、リングバッファの第1の参照インジケータを更新しようとするステップを含み、そのステップは、そのプロセスのための期待スロット値が現在スロットインジケータと比較されるアトミック(不可分)操作を含み、現在スロットインジケータが期待スロット値と一致するときは、現在スロットインジケータの値を所定の値によって修正することによって、少なくとも現在スロットインジケータが更新され、現在スロットインジケータが期待スロット値と一致しないときは、現在スロットインジケータを更新せずに、リングバッファの1つ以上の保留スロットの存在及び位置を示すように保留スロットインジケータの値を修正することによって保留スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファのために記憶領域を割り当てるステップと、
1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するステップであって、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、その少なくとも1つのスロットを解放する解放プロセスを実行する、ステップと、リングバッファのメタデータのために記憶領域を割り当てるステップとを含み、メタデータは第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、第2の参照インジケータは現在スロットの期待される位置を示す期待スロットインジケータを含み、1つ以上の保留スロットは現在スロットの後に取得されたものであり、期待スロット値は、プロセスがリングバッファの少なくとも1つのスロットを取得するために取得プロセスを実行するときの期待スロットインジケータの値であり、解放プロセスはリングバッファの第1の参照インジケータを更新しようとするステップを含み、そのステップは、そのプロセスのための期待スロット値が現在スロットインジケータと比較されるアトミック操作を含み、現在スロットインジケータが期待スロット値と一致するときは、現在スロットインジケータの値を所定の値によって修正することによって、少なくとも現在スロットインジケータが更新され、現在スロットインジケータが期待スロット値と一致しないときは、現在スロットインジケータを更新せずに、リングバッファの1つ以上の保留スロットの存在及び位置を示すように保留スロットインジケータの値を修正することによって保留スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、命令を復号する命令デコーダ回路と、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、その少なくとも1つのスロットを解放する解放プロセスを実行するように構成されている、データ処理回路と、リングバッファのメタデータを格納するリングバッファメタデータ記憶回路とを備え、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、第2の参照インジケータは、現在スロットの期待される位置を示す期待スロットインジケータを含み、1つ以上の保留スロットは、現在スロットの後に取得されたものであり、期待スロット値は、プロセスがリングバッファの少なくとも1つのスロットを取得するために取得プロセスを実行するときの期待スロットインジケータの値であり、命令デコーダ回路は、リングバッファ解放命令が命令データ処理回路に実行されることに応答して、解放プロセスを実行するようにデータ処理回路を制御し、解放プロセスは、リングバッファの第1の参照インジケータを更新しようとするステップを含み、そのステップは、そのプロセスのための期待スロット値が現在スロットインジケータと比較されるアトミック操作を含み、現在スロットインジケータが期待スロット値と一致するときは、現在スロットインジケータの値を所定の値によって修正することによって、少なくとも現在スロットインジケータが更新され、現在スロットインジケータが期待スロット値と一致しないときは、現在スロットインジケータを更新せずに、リングバッファの1つ以上の保留スロットの存在及び位置を示すように保留スロットインジケータの値を修正することによって保留スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶ロジックと、命令を復号するための命令デコーダロジックと、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理ロジックであって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、その少なくとも1つのスロットを解放する解放プロセスを実行するように構成されている、データ処理ロジックと、リングバッファのメタデータを記憶するリングバッファメタデータ記憶ロジックとを備え、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、第2の参照インジケータは、現在スロットの期待される位置を示す期待スロットインジケータを含み、1つ以上の保留スロットは、現在スロットの後に取得されたものであり、期待スロット値は、プロセスがリングバッファの少なくとも1つのスロットを取得するために取得プロセスを実行するときの期待スロットインジケータの値であり、命令デコーダロジックは、リングバッファ解放命令がデータ処理回路に実行されることに応答して、解放プロセスを実行するようにデータ処理回路を制御し、解放プロセスは、リングバッファの第1の参照インジケータを更新しようとするステップを含み、そのステップは、そのプロセスのための期待スロット値が現在スロットインジケータと比較されるアトミック操作を含み、現在スロットインジケータが期待スロット値と一致するときは、現在スロットインジケータの値を所定の値によって修正することによって、少なくとも現在スロットインジケータが更新され、現在スロットインジケータが期待スロット値と一致しないときは、現在スロットインジケータを更新せずに、リングバッファの1つ以上の保留スロットの存在及び位置を示すように保留スロットインジケータの値を修正することによって保留スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行するように構成されている、データ処理回路と、リングバッファのメタデータを記憶するリングバッファメタデータ記憶ロジックとを備え、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、データ項目の待ち行列シーケンスの片端にある現在のスロットの位置を示す現在スロットインジケータを含み、第2の参照インジケータは、データ項目の待ち行列の他端にある現在スロットの期待される位置を示す期待スロットインジケータを含み、データ項目の待ち行列シーケンスの片端は、データ項目の待ち行列シーケンスの先頭端部又は末尾端部のいずれかであり、取得プロセスは、リングバッファの第2の参照インジケータを更新しようとするステップを含み、そのステップは、あるプロセスによる取得のために要求されるスロットの数が現在スロットインジケータ及び期待スロットインジケータと比較されるアトミック操作を含み、リングバッファの1つ以上のスロットが取得に適格であることが現在スロットインジケータ及び期待スロットインジケータによって示されるときは、期待スロットインジケータの値を修正することによって期待スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファのために記憶領域を割り当てるステップと、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するステップであって、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行する、ステップと、リングバッファのメタデータのために記憶領域を割り当てるステップとを含み、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、データ項目の待ち行列シーケンスの片端にある現在のスロットの位置を示す現在スロットインジケータを含み、第2の参照インジケータは、データ項目の待ち行列の他端にある現在スロットの期待される位置を示す期待スロットインジケータを含み、データ項目の待ち行列シーケンスの片端は、データ項目の待ち行列シーケンスの先頭端部又は末尾端部のいずれかであり、
取得プロセスは、リングバッファの第2の参照インジケータを更新しようとするステップを含み、そのステップは、あるプロセスによる取得のために要求されるスロットの数が現在スロットインジケータ及び期待スロットインジケータと比較されるアトミック操作を含み、リングバッファの1つ以上のスロットが取得に適格であることが現在スロットインジケータ及び期待スロットインジケータによって示されるときは、期待スロットインジケータの値を修正することによって期待スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、命令を復号する命令デコーダ回路と、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行するように構成されている、データ処理回路と、リングバッファのメタデータを記憶するリングバッファメタデータ記憶回路とを備え、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、データ項目の待ち行列シーケンスの片端にある現在のスロットの位置を示す現在スロットインジケータを含み、第2の参照インジケータは、データ項目の待ち行列の他端にある現在スロットの期待される位置を示す期待スロットインジケータを含み、データ項目の待ち行列シーケンスの片端は、データ項目の待ち行列シーケンスの先頭端部又は末尾端部のいずれかであり、命令デコーダ回路は、リングバッファ取得命令がデータ処理回路に実行されることに応答して、取得プロセスを実行するようにデータ処理回路を制御し、取得プロセスは、リングバッファの第2の参照インジケータを更新しようとするステップを含み、そのステップは、あるプロセスによる取得のために要求されるスロットの数が現在スロットインジケータ及び期待スロットインジケータと比較されるアトミック操作を含み、リングバッファの1つ以上のスロットが取得に適格であることが現在スロットインジケータ及び期待スロットインジケータによって示されるときは、期待スロットインジケータの値を修正することによって期待スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶ロジックと、命令を復号するための命令デコーダロジックと、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理ロジックであって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行するように構成されている、データ処理ロジックと、リングバッファのメタデータを記憶するリングバッファメタデータ記憶ロジックとを備え、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、データ項目の待ち行列シーケンスの片端にある現在のスロットの位置を示す現在スロットインジケータを含み、第2の参照インジケータは、データ項目の待ち行列の他端にある現在スロットの期待される位置を示す期待スロットインジケータを含み、データ項目の待ち行列シーケンスの片端は、データ項目の待ち行列シーケンスの先頭端部又は末尾端部のいずれかであり、
命令デコーダロジックは、リングバッファ取得命令が命令データ処理回路に実行されることに応答して、取得プロセスを実行するようにデータ処理回路を制御し、取得プロセスは、
リングバッファの第2の参照インジケータを更新しようとするステップを含み、そのステップは、あるプロセスによる取得のために要求されるスロットの数が現在スロットインジケータ及び期待スロットインジケータと比較されるアトミック操作を含み、リングバッファの1つ以上のスロットが取得に適格であることが現在スロットインジケータ及び期待スロットインジケータによって示されるときは、期待スロットインジケータの値を修正することによって期待スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、その少なくとも1つのスロットを解放する解放プロセスを実行するように構成されている、データ処理回路と、リングバッファのメタデータを記憶するリングバッファメタデータ記憶回路とを備え、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、第2の参照インジケータは、現在スロットの期待される位置を示す期待スロットインジケータを含み、1つ以上の保留スロットは、現在スロットの後に取得されたものであり、期待スロット値は、プロセスがリングバッファの少なくとも1つのスロットを取得するために取得プロセスを実行するときの期待スロットインジケータの値であり、解放プロセスは、リングバッファの第1の参照インジケータを更新しようとするステップを含み、そのステップは、そのプロセスのための期待スロット値が現在スロットインジケータと比較されるアトミック操作を含み、現在スロットインジケータが期待スロット値と一致するときは、現在スロットインジケータの値を所定の値によって修正することによって、少なくとも現在スロットインジケータが更新され、現在スロットインジケータが期待スロット値と一致しないときは、現在スロットインジケータを更新せずに、リングバッファの1つ以上の保留スロットの存在及び位置を示すように保留スロットインジケータの値を修正することによって保留スロットインジケータが更新される。
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、1つ以上の処理すべきデータ項目を待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行するように構成されている、データ処理回路と、リングバッファのメタデータを記憶するリングバッファメタデータ記憶回路とを備え、メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、第1の参照インジケータは、データ項目の待ち行列シーケンスの片端にある現在スロットの位置を示す現在スロットインジケータを含み、第2の参照インジケータは、データ項目の待ち行列の他端にある現在スロットの期待される位置を示す期待スロットインジケータを含み、データ項目の待ち行列シーケンスの片端は、データ項目の待ち行列シーケンスの先頭端部又は末尾端部のいずれかであり、取得プロセスは、リングバッファの第2の参照インジケータを更新しようとするステップを含み、そのステップは、あるプロセスによる取得のために要求されるスロットの数が現在スロットインジケータ及び期待スロットインジケータと比較されるアトミック操作を含み、リングバッファの1つ以上のスロットが取得に適格であることが現在スロットインジケータ及び期待スロットインジケータによって示されるときは、期待スロットインジケータの値を修正することによって期待スロットインジケータが更新される。これにより、リングバッファの1つ以上のスロットを取得するために、プロセスがリングバッファメタデータにアトミックにアクセス及び更新することを可能にする、アトミック取得操作が提供される。
この場合、第1の参照インジケータは、リングバッファの現在スロットの位置の指示子と、リングバッファと相互作用する作用者によって順序外で解放された1つ以上の更新があるか否かを示す指示子と、リングバッファと相互作用する作用者によって順序外で解放された1つ以上の更新に対応するリングバッファの1つ以上の保留スロットの位置の指示子と、を含む。したがって、現在スロットの位置を示し、かつ、待ち行列シーケンスの1つ以上の保留スロットの存在及び位置も示す、先頭端部インジケータ又は末尾端部インジケータは第1の参照インジケータの一例であり、データ項目の待ち行列シーケンスの順序に対して順序通りに、又は順序外で更新を解放する作用者によって更新され得る。第1の参照インジケータの一例である先頭端部インジケータ又は末尾端部インジケータは、現在スロットインジケータ、変化インジケータ、及び限界インジケータの3つのそれぞれのインジケータを含む。よって、先頭端部インジケータ又は末尾端部インジケータを更新しようとするプロセスは、図9に示される処理に従って、現在スロットインジケータ、変化インジケータ及び限界インジケータのうちの少なくとも1つを更新しようとする。
RBACQ[E,D]{A,L,AL}<Xs>,<Wt>,[<Xn|SP>],
式中、Eは命令がエンキュー処理のためのものであることを示し、Dは命令がデキュー処理のためのものであることを示す。これらの例では、命令において指定されるレジスタは次のものである。
<Wt>-目標レジスタフィールドに符号化される項目の、要求される数を有する32ビット汎用レジスタ。
<Xs>-結果として得られる開始インデックスと、ソースレジスタフィールド内に符号化された項目の実際の数とがロードされる64ビット汎用レジスタ。
<Xn|SP>-追加レジスタフィールドに符号化される64ビットのベースレジスタ又はSP。
RBREL{A,L,AL}<Xs>,<Xt>,[<Xn|SP>].
これらの例では、命令において指定されるレジスタは次のものである。
<Xt>-開始インデックスと、ソースレジスタフィールドに符号化された解放すべき項目の数とを有する64ビット汎用レジスタ。
<Xs>-現在と保留の古い値がロードされる、64ビット汎用レジスタ。
<Xn|SP>-追加レジスタフィールドに符号化される64ビットベースレジスタ又はSP。
Claims (22)
- 装置であって、
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、
1つ以上の処理すべきデータ項目を前記待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために待ち前記行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、前記リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、前記少なくとも1つのスロットを解放する解放プロセスを実行するように構成されている、データ処理回路と、
前記リングバッファのメタデータを格納するリングバッファメタデータ記憶回路とを備え、前記メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、前記第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、前記リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、前記第2の参照インジケータは、前記現在スロットの期待される位置を示す期待スロットインジケータを含み、前記1つ以上の保留スロットは前記現在スロットの後に取得されたものであり、期待スロット値は、前記プロセスが前記リングバッファの少なくとも1つのスロットを取得するために前記取得プロセスを実行するときの前記期待スロットインジケータの値であり、
前記解放プロセスは、前記リングバッファの前記第1の参照インジケータを更新しようとするステップを含み、前記ステップは、前記プロセスのための前記期待スロット値が前記現在スロットインジケータと比較されるアトミック操作を含み、
前記現在スロットインジケータが前記期待スロット値と一致するときは、前記現在スロットインジケータの値を所定の値によって修正することによって、少なくとも前記現在スロットインジケータが更新され、
前記現在スロットインジケータが前記期待スロット値と一致しないときは、前記現在スロットインジケータを更新せずに、前記リングバッファの前記1つ以上の保留スロットの存在及び位置を示すように前記保留スロットインジケータの値を修正することによって前記保留スロットインジケータが更新される、
装置。 - 前記現在スロットインジケータが前記期待スロット値と一致せず、かつ、前記期待スロットインジケータが、前記待ち行列シーケンスの順序に関して前記現在スロットインジケータの示す前記現在スロットの後に位置するのではない前記現在スロットの期待位置を示している場合、前記第1の参照インジケータは更新されない、請求項1に記載の装置。
- 前記現在スロットインジケータが前記期待スロット値と一致しないとき、前記リングバッファ内の前記1つ以上の保留スロットの存在及び前記現在スロットインジケータの示す前記現在スロットに対する位置を示すように前記保留スロットインジケータの値を変更することによって、前記保留スロットインジケータが更新される、請求項1に記載の装置。
- 前記保留スロットインジケータは限界インジケータを含み、前記限界インジケータは、前記リングバッファの前記現在スロットから前記待ち行列シーケンスの順序に関して最も遠くに位置する最遠保留スロットの位置を示す、請求項1に記載の装置。
- 前記保留スロットインジケータは変化インジケータを含み、前記変化インジケータの変化は、前記現在スロットと前記最遠保留スロットとの間の前記保留スロットの数の変化を示す、請求項4に記載の装置。
- 前記保留スロットインジケータは、前記現在スロットインジケータが前記期待スロット値に一致しないときに、前記限界インジケータと前記変化インジケータのうち少なくとも1つを変更することによって更新される、請求項5に記載の装置。
- 前記期待スロット値が、前記リングバッファ内で前記待ち行列シーケンスの順序に関して前記限界インジケータの示す前記最遠保留スロットよりも遠くに位置するスロットを示すときに、前記限界インジケータは更新される、請求項6に記載の装置。
- 前記限界インジケータは、前記期待スロット値に基づいて、別の位置を前記最遠保留スロットに示すように更新される、請求項7に記載の装置。
- 前記期待スロット値が、前記現在スロットと前記最遠保留スロットとの間に位置するスロットを示すとき、前記限界インジケータを更新せずに前記変化インジケータが更新される、請求項5に記載の装置。
- 前記現在スロットインジケータが前記期待スロット値と一致し、かつ、前記保留スロットインジケータが前記リングバッファ内の前記1つ以上の保留スロットの存在を示すとき、前記現在スロットインジケータは、前記現在スロットに隣接する連続した保留スロットの数に従って現在スロットインジケータの値を修正することによって更新される、請求項1~9のいずれか一項に記載の装置。
- 前記現在スロットインジケータの値は、前記1つ以上の連続する保留スロットの最遠保留スロットを示すように修正され、前記最遠保留スロットは、前記1つ以上の連続する保留スロットのうち前記リングバッファ内で前記現在のスロットから最も遠くにある保留スロットである、請求項10に記載の装置。
- 前記現在スロットインジケータは、前記データ項目の待ち行列シーケンスの先頭端部又は末尾端部のいずれかにおける前記現在スロットの位置を示し、前記期待スロットインジケータは、前記データ項目の待ち行列シーケンスの同じ端部における前記現在スロットの期待位置を示す、請求項1に記載の装置。
- 前記第1の参照インジケータは、前記待ち行列シーケンスからデータ項目を取り出すプロセスのための、前記データ項目の待ち行列シーケンスの末尾端部に対する末尾端部インジケータであり、前記第2の参照インジケータは、前記待ち行列シーケンスにデータ項目を追加するプロセスのための、前記データ項目の待ち行列シーケンスの末尾端部に対する末尾端部インジケータである、請求項1に記載の装置。
- 前記待ち行列シーケンスにデータ項目を追加する前記プロセスは、少なくとも前記リングバッファ内の次の占有されていないスロットを取得するために前記取得プロセスを実行するように構成されており、前記取得プロセスは、アトミック操作に従って前記第2の参照インジケータを更新しようとするステップを含む、請求項13に記載の装置。
- 前記第1の参照インジケータは、前記待ち行列シーケンスにデータ項目を追加するプロセスのための、前記データ項目の待ち行列シーケンスの先頭端部に対する先頭端部インジケータであり、前記第2の参照インジケータは、前記待ち行列シーケンスからデータ項目を取り出すプロセスのための、前記データ項目の待ち行列シーケンスの先頭端部に対する先頭端部インジケータである、請求項1に記載の装置。
- 前記待ち行列シーケンスからデータ項目を取り出す前記プロセスは、少なくとも前記リングバッファ内の次の占有されているスロットを取得するために前記取得プロセスを実行するように構成されており、前記取得プロセスは、アトミック操作に従って前記第2の参照インジケータを更新しようとするステップを含む、請求項15に記載の装置。
- 前記プロセスが、前記リングバッファの少なくとも1つのスロットを取得するために前記取得プロセスを実行するとき、前記第2の参照インジケータは、前記複数プロセスのうち1つによって取得されたスロットの数に従って前記期待スロットインジケータの値を修正することによって更新される、請求項1~16のいずれか一項に記載の装置。
- 前記データ処理回路は、並列して前記待ち行列にデータ項目を追加する複数の前記プロセスを実行するように構成されており、前記各プロセスは、前記アトミック操作に従って同時に前記第1の参照インジケータを更新しようとする、請求項13に記載の装置。
- 前記データ処理回路は、並列して前記待ち行列からデータ項目を取り出す複数の前記プロセスを実行するように構成されており、前記各プロセスは、前記アトミック操作に従って同時に前記第1の参照インジケータを更新しようとする、請求項15に記載の装置。
- データ処理装置を動作させる方法であって、
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファのために記憶領域を割り当てるステップと、
1つ以上の処理すべきデータ項目を前記待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために前記待ち行列シーケンスから取り出すための複数のプロセスを実行するステップであって、前記リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、前記少なくとも1つのスロットを解放する解放プロセスを実行する、ステップと、
前記リングバッファのメタデータのために記憶領域を割り当てるステップとを含み、前記メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、前記第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、前記リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、前記第2の参照インジケータは、前記現在スロットの期待される位置を示す期待スロットインジケータを含み、前記1つ以上の保留スロットは前記現在スロットの後に取得されたものであり、期待スロット値は、前記プロセスが前記リングバッファの少なくとも1つのスロットを取得するために前記取得プロセスを実行するときの期待スロットインジケータの値であり、
前記解放プロセスは、前記リングバッファの前記第1の参照インジケータを更新しようとするステップを含み、前記ステップは、前記プロセスのための前記期待スロット値が前記現在スロットインジケータと比較されるアトミック操作を含み、
前記現在スロットインジケータが前記期待スロット値と一致するときは、前記現在スロットインジケータの値を所定の値によって修正することによって、少なくとも前記現在スロットインジケータが更新され、
前記現在スロットインジケータが前記期待スロット値と一致しないときは、前記現在スロットインジケータを更新せずに、前記リングバッファの前記1つ以上の保留スロットの存在及び位置を示すように前記保留スロットインジケータの値を修正することによって前記保留スロットインジケータが更新される、
方法。 - 装置であって、
データ項目の待ち行列シーケンスを保持する複数のスロットを備えるリングバッファを記憶するリングバッファ記憶回路と、
命令を復号する命令デコーダ回路と、
1つ以上の処理すべきデータ項目を前記待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために前記待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理回路であって、各プロセスは、前記リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、前記少なくとも1つのスロットを解放する解放プロセスを実行するように構成されている、データ処理回路と、
前記リングバッファのメタデータを格納するリングバッファメタデータ記憶回路とを備え、前記メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、前記第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、前記リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、前記第2の参照インジケータは、前記現在スロットの期待される位置を示す期待スロットインジケータを含み、前記1つ以上の保留スロットは前記現在スロットの後に取得されたものであり、期待スロット値は、前記プロセスが前記リングバッファの少なくとも1つのスロットを取得するために前記取得プロセスを実行するときの前記期待スロットインジケータの値であり、
前記命令デコーダ回路は、リングバッファ解放命令が前記データ処理回路に実行されることに応答して、前記解放プロセスを実行するように前記データ処理回路を制御し、前記解放プロセスは、
前記リングバッファの前記第1の参照インジケータを更新しようとするステップを含み、前記ステップは、前記プロセスのための前記期待スロット値が前記現在スロットインジケータと比較されるアトミック操作を含み、
前記現在スロットインジケータが前記期待スロット値と一致するときは、前記現在スロットインジケータの値を所定の値によって修正することによって、少なくとも前記現在スロットインジケータが更新され、
前記現在スロットインジケータが前記期待スロット値と一致しないときは、前記現在スロットインジケータを更新せずに、前記リングバッファの前記1つ以上の保留スロットの存在及び位置を示すように前記保留スロットインジケータの値を修正することによって前記保留スロットインジケータが更新される、
装置。 - 命令実行環境を提供するようにホストデータ処理装置を制御するコンピュータプログラムであって、
データ項目の待ち行列シーケンスを保持するために複数のスロットを含むリングバッファを記憶するリングバッファ記憶ロジックと、
命令を復号する命令デコーダロジックと、
1つ以上の処理すべきデータ項目を前記待ち行列シーケンスに追加し、1つ以上のデータ項目を処理するために前記待ち行列シーケンスから取り出すための複数のプロセスを実行するデータ処理ロジックであって、各プロセスは、前記リングバッファの少なくとも1つのスロットを取得する取得プロセスを実行し、続いて、前記少なくとも1つのスロットを解放する解放プロセスを実行するように構成されている、データ処理ロジックと、
前記リングバッファのメタデータを格納するリングバッファメタデータ記憶ロジックとを備え、前記メタデータは、第1の参照インジケータ及び第2の参照インジケータを含み、前記第1の参照インジケータは、現在のスロットの位置を示す現在スロットインジケータと、前記リングバッファの複数のスロットのうち1つ以上の保留スロットの存在及び位置を示す保留スロットインジケータとを含み、前記第2の参照インジケータは、前記現在スロットの期待される位置を示す期待スロットインジケータを含み、前記1つ以上の保留スロットは、前記現在スロットの後に取得されたものであり、期待スロット値は、前記プロセスが前記リングバッファの少なくとも1つのスロットを取得するために前記取得プロセスを実行するときの前記期待スロットインジケータの値であり、
前記命令デコーダロジックは、リングバッファ解放命令が前記データ処理ロジックに実行されることに応答して、前記解放プロセスを実行するように前記データ処理ロジックを制御し、前記解放プロセスは、
前記リングバッファの前記第1の参照インジケータを更新しようとするステップを含み、前記ステップは、前記プロセスのための前記期待スロット値が前記現在スロットインジケータと比較されるアトミック操作を含み、
前記現在スロットインジケータが前記期待スロット値と一致するときは、前記現在スロットインジケータの値を所定の値によって修正することによって、少なくとも前記現在スロットインジケータが更新され、
前記現在スロットインジケータが前記期待スロット値と一致しないときは、前記現在スロットインジケータを更新せずに、前記リングバッファの前記1つ以上の保留スロットの存在及び位置を示すように前記保留スロットインジケータの値を修正することによって前記保留スロットインジケータが更新される、
コンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1902784.6 | 2019-03-01 | ||
GB1902784.6A GB2581836B (en) | 2019-03-01 | 2019-03-01 | Handling ring buffer updates |
PCT/GB2020/050438 WO2020178554A1 (en) | 2019-03-01 | 2020-02-25 | Handling ring buffer updates |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022522363A JP2022522363A (ja) | 2022-04-18 |
JP7492528B2 true JP7492528B2 (ja) | 2024-05-29 |
Family
ID=66377314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021551586A Active JP7492528B2 (ja) | 2019-03-01 | 2020-02-25 | リングバッファ更新の処理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11822815B2 (ja) |
JP (1) | JP7492528B2 (ja) |
KR (1) | KR20210133257A (ja) |
CN (1) | CN113614698A (ja) |
GB (1) | GB2581836B (ja) |
WO (1) | WO2020178554A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708495A (zh) * | 2020-06-19 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 环形队列存储方法、装置及计算设备、存储介质 |
US20220043687A1 (en) * | 2020-10-21 | 2022-02-10 | Intel Corporation | Methods and apparatus for scalable multi-producer multi-consumer queues |
CN114817188A (zh) * | 2021-01-21 | 2022-07-29 | 瑞昱半导体股份有限公司 | 用于多系统日志存取管理的方法、集成电路及可读介质 |
WO2023066454A1 (en) * | 2021-10-18 | 2023-04-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Producer, consumer, system and methods for inputting and outputting data items into and out from a ring buffer |
US12072808B2 (en) * | 2022-12-08 | 2024-08-27 | Arm Limited | Data storage |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017534959A (ja) | 2015-06-12 | 2017-11-24 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | 端末機器においてスクリーンショットサービスを提供するための方法、装置、記憶媒体及び機器 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01129345A (ja) * | 1987-11-13 | 1989-05-22 | Toshiba Corp | マルチプロセッサ・システム |
JPH0668040A (ja) * | 1992-08-14 | 1994-03-11 | Nec Corp | プロセッサ間通信用キュー制御方式 |
JP2795257B2 (ja) * | 1996-04-15 | 1998-09-10 | 日本電気株式会社 | トラフィックシェーパのセル出力競合制御方式 |
US8095727B2 (en) * | 2008-02-08 | 2012-01-10 | Inetco Systems Limited | Multi-reader, multi-writer lock-free ring buffer |
US8099546B2 (en) * | 2009-06-09 | 2012-01-17 | Red Hat, Inc. | Mechanism for a lockless ring buffer in overwrite mode |
US7970927B1 (en) * | 2009-12-31 | 2011-06-28 | Qlogic, Corporation | Concurrent transmit processing |
US9996468B1 (en) * | 2011-11-02 | 2018-06-12 | Marvell Israel (M.I.S.L) Ltd. | Scalable dynamic memory management in a network device |
WO2017151138A1 (en) * | 2016-03-03 | 2017-09-08 | Hewlett Packard Enterprise Development Lp | Atomic memory operation |
US10152275B1 (en) * | 2017-08-30 | 2018-12-11 | Red Hat, Inc. | Reverse order submission for pointer rings |
US10353629B2 (en) * | 2017-09-19 | 2019-07-16 | Arm Limited | Handling in-order and out-of-order ring buffer updates |
DE102018126546A1 (de) * | 2017-12-22 | 2019-06-27 | Odass Gbr | Verfahren zur Reduzierung der Rechenzeit einer Datenverarbeitungseinrichtung |
US10649686B2 (en) * | 2018-05-21 | 2020-05-12 | Red Hat, Inc. | Memory cache pressure reduction for pointer rings |
US11200186B2 (en) * | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US11106587B2 (en) * | 2019-06-18 | 2021-08-31 | Red Hat, Inc. | Memory cache-line bounce reduction for shared I/O ring structures |
US11762725B2 (en) * | 2020-04-13 | 2023-09-19 | Red Hat, Inc. | Detecting and managing losses of event datasets in a computing network |
US20220116334A1 (en) * | 2021-12-22 | 2022-04-14 | Intel Corporation | Multi-access management service queueing and reordering techniques |
-
2019
- 2019-03-01 GB GB1902784.6A patent/GB2581836B/en active Active
-
2020
- 2020-02-25 JP JP2021551586A patent/JP7492528B2/ja active Active
- 2020-02-25 KR KR1020217030774A patent/KR20210133257A/ko not_active Application Discontinuation
- 2020-02-25 CN CN202080021050.1A patent/CN113614698A/zh active Pending
- 2020-02-25 US US17/310,868 patent/US11822815B2/en active Active
- 2020-02-25 WO PCT/GB2020/050438 patent/WO2020178554A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017534959A (ja) | 2015-06-12 | 2017-11-24 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | 端末機器においてスクリーンショットサービスを提供するための方法、装置、記憶媒体及び機器 |
Also Published As
Publication number | Publication date |
---|---|
KR20210133257A (ko) | 2021-11-05 |
GB2581836B (en) | 2021-08-04 |
GB2581836A (en) | 2020-09-02 |
US20220137873A1 (en) | 2022-05-05 |
WO2020178554A1 (en) | 2020-09-10 |
GB201902784D0 (en) | 2019-04-17 |
CN113614698A (zh) | 2021-11-05 |
JP2022522363A (ja) | 2022-04-18 |
US11822815B2 (en) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7492528B2 (ja) | リングバッファ更新の処理 | |
JP6243935B2 (ja) | コンテキスト切替方法及び装置 | |
CA2706737C (en) | A multi-reader, multi-writer lock-free ring buffer | |
TWI531974B (zh) | 管理巢狀執行串流的方法和系統 | |
US6668291B1 (en) | Non-blocking concurrent queues with direct node access by threads | |
US7630388B2 (en) | Software defined FIFO memory for storing a set of data from a stream of source data | |
US20130198760A1 (en) | Automatic dependent task launch | |
US10353629B2 (en) | Handling in-order and out-of-order ring buffer updates | |
US20210019185A1 (en) | Compute task state encapsulation | |
JP2006099800A (ja) | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 | |
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 | |
CN110727675A (zh) | 一种链表的处理方法及装置 | |
US20210303551A1 (en) | State-based queue protocol | |
JP3797570B2 (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
CN110515659B (zh) | 一种原子指令的执行方法和装置 | |
JP2007157146A (ja) | メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 | |
US6704833B2 (en) | Atomic transfer of a block of data | |
JP5254710B2 (ja) | データ転送装置、データ転送方法およびプロセッサ | |
US11914972B2 (en) | Element ordering handling in a ring buffer | |
JP3789937B2 (ja) | ベクトルプロセッサのためのチャンク連鎖 | |
US8990511B2 (en) | Multiprocessor, cache synchronization control method and program therefor | |
JP2011248468A (ja) | 情報処理装置および情報処理方法 | |
CN114296929A (zh) | 一种基于可替代有界无锁队列的高速加解密方法及密码机 | |
JP2001022581A (ja) | データ処理装置及びコンピュータ読み取り可能な記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20211020 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20211228 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240125 |
|
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: 20240424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240517 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7492528 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |