JP4130465B2 - メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 - Google Patents
メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 Download PDFInfo
- Publication number
- JP4130465B2 JP4130465B2 JP2006325471A JP2006325471A JP4130465B2 JP 4130465 B2 JP4130465 B2 JP 4130465B2 JP 2006325471 A JP2006325471 A JP 2006325471A JP 2006325471 A JP2006325471 A JP 2006325471A JP 4130465 B2 JP4130465 B2 JP 4130465B2
- Authority
- JP
- Japan
- Prior art keywords
- ppe
- primitive
- size
- spe
- partial data
- 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
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, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
Description
以下の記述においては、例示のために多くの特定的な詳細を含むけれども、本発明の範囲内において、以下の詳細について多くの変形や変更が可能であることは、当業者には理解されるところである。したがって、下記に示す本発明の実施例は、請求項に記載の発明の一般性を失わせるものでも制約を設けるものでもない。
Claims (32)
- メモリ転送容量の異なるPPE(Power Processor Element)とSPE(Synergistic Processing Element)、および、メインメモリを含む2以上のプロセッサを備えるプロセッサ・システムにおいて実行される処理方法であって、
PPEのメモリ転送処理の最大サイズよりも大きく、SPEのメモリ転送処理の最大サイズ以下のサイズのプリミティブ(Primitive)について、
メインメモリにおける前記プリミティブのアドレスは、2以上の部分データと前記2以上の部分データのうちのいずれが有効部でいずれが無効部であるかを示す1ビット以上のパリティ・バイトに分割されており、
b)SPEにより、パリティ・バイトと少なくとも有効部についての予約付き読み出しを実行するステップと、
c)SPEにより、有効部を更新して更新済有効部を生成するステップと、
d)SPEにより、条件付きにて、パリティ・バイトの値を変更せずに書き戻し、更新済有効部を前記プリミティブのあるアドレスに記録することにより、予約が失効していないことを条件として更新済有効部を前記プリミティブのアドレスに記録するステップと、
e)予約が失効していれば、条件付き書き込みが成功するまでSPEにb)、c)、d)のステップを再実行させるステップと、
を備えることを特徴とするアトミック処理方法。 - PPEにより、パリティ・バイトの予約付き読み出しを実行することにより無効部を更新するステップと、
PPEが単一のメモリ転送処理にて更新できるサイズの小区分にて、無効部の1以上の小区分に書き込むステップと、
PPEにより、パリティ・バイトに対する更新値の条件付き書き込みを実行するステップと、
PPEにより、条件付き書き込み処理が成功したときに、パリティ・バイトの値を変更するステップと、
を更に備えることを特徴とする請求項1に記載のアトミック処理方法。 - PPEによる無効部の更新中にパリティ・バイトについての予約が失効したとき、PPEはパリティ・バイトを再度予約付きで読み出し、PPEの1以上のレジスタに有効部を読み出すことを特徴とする請求項2に記載のアトミック処理方法。
- PPEにより、パリティ・バイトの初期値の予約付き読み出しを実行し、PPEが単一のメモリ転送処理にて更新できるサイズの小区分にて、有効部の1以上の小区分の連続的な読み出しを実行することにより有効部の値を読み出すステップと、
PPEにより、パリティ・バイトへの前記初期値の条件付き書き込みを実行するステップと、
を更に備えることを特徴とする請求項1に記載のアトミック処理方法。 - 前記プリミティブのサイズは、SPEのレジスタのサイズ以下であることを特徴とする請求項1に記載のアトミック処理方法。
- 前記プリミティブのサイズは、SPEのレジスタのサイズ以下であって、
小区分は、PPEのレジスタのサイズ以下のサイズであることを特徴とする請求項1に記載のアトミック処理方法。 - 前記プリミティブのサイズは128バイトであることを特徴とする請求項1に記載のアトミック処理方法。
- 前記プリミティブのサイズは128バイトであって、前記小区分のサイズは8バイトであることを特徴とする請求項1に記載のアトミック処理方法。
- 前記プリミティブのサイズは128バイトであって、前記2以上の部分データには、63バイト・サイズの部分データが2つ含まれることを特徴とする請求項1に記載のアトミック処理方法。
- PPEは一回あたり8バイトをアトミックに操作し、
SPEは一回あたり128バイトをアトミックに操作し、
前記プリミティブのサイズは128バイトであって、前記2以上の部分データには、63バイト・サイズの部分データが2つ含まれることを特徴とする請求項1に記載のアトミック処理方法。 - 前記プリミティブは、更に、SPEとPPEからアクセスできる追加情報を保持するユーティリティ・バイトを含むことを特徴とする請求項1に記載のアトミック処理方法。
- 前記追加情報は、前記プリミティブの更新に関してPPEと他のSPEのいずれが優先されるかをSPEに通知するための情報であることを特徴とする請求項11に記載のアトミック処理方法。
- 前記ユーティリティ・バイトは、前記プリミティブをマスクするサイズを示すことを特徴とする請求項11に記載のアトミック処理方法。
- 前記プリミティブは、第1部分データと第2部分データに分割され、
前記第1部分データは、前記パリティ・バイトを含むことを特徴とする請求項1に記載のアトミック処理方法。 - 前記b)のステップは、
前記第1部分データをPPEのローカルストア・レジスタに読み込むステップと、
前記第1部分データが有効部か否かを前記パリティ・バイトにより判定するステップと、
前記第1部分データが有効部でなければ、前記第2部分データをPPEのローカルストア・レジスタに読み込むステップと、を含み、
有効部である部分データをPPEのローカルストア・レジスタ内に並べることを特徴とする請求項14に記載のアトミック処理方法。 - 前記b)のステップは、
1回の操作にてPPEのローカルストア・レジスタに前記プリミティブ全体を読み込むステップと、
前記パリティ・バイトにより、どの部分データが有効部であるかを判定するステップと、
を含むことを特徴とする請求項1に記載のアトミック処理方法。 - データバスと、
前記データバスに接続され、1以上のタスク定義情報を保持するメインメモリと、
前記データバスに接続されるPPE(Power Processor Element)と、
前記データバスに接続される1以上のSPE(Synergistic Processing Element)と、を備え、
各SPEは、SPU(Synergistic Processing Unit)とローカルストア(Local Store)を含み、
前記メインメモリは、PPEのメモリ転送処理の最大サイズよりも大きく、SPEのメモリ転送処理の最大サイズ以下のサイズであって、パリティ・バイトと2以上の部分データを含むプリミティブ(Primitive)を保持し、
前記パリティ・バイトは、前記2以上の部分データのうちのいずれが有効部でいずれが無効部であるかを示す1ビット以上のデータを含むことを特徴とするCELLプロセッサ。 - SPEによる前記プリミティブの更新処理方法を示す命令セットとして、1以上のSPEのローカルストアにプロセッサの実行命令セットを保持し、
前記更新処理方法は、
a)SPEにより、パリティ・バイトと少なくとも有効部についての予約付き読み出しを実行するステップと、
b)SPEにより、有効部を更新して更新済有効部を生成するステップと、
c)条件付きにて、パリティ・バイトの値を書き戻し、更新済有効部を前記プリミティブのあるアドレスに記録することにより、予約が失効していないことを条件としてSPUが更新済有効部を前記プリミティブのアドレスへ記録するステップと、
d)予約が失効していれば、条件付き書き込みが成功するまでSPEにa)、b)、c)のステップを再実行させるステップと、
を備えることを特徴とする請求項17に記載のCELLプロセッサ。 - PPEによる前記プリミティブの更新処理方法を示す命令セットとして、PPEの1以上のレジスタにプロセッサの実行命令セットを保持し、
前記更新処理方法は、
PPEにより、パリティ・バイトを予約付きで読み出し、PPEが単一のメモリ転送処理にて更新できるサイズの小区分により無効部の1以上の小区分に書き込むステップと、
パリティ・バイトに対する更新値の条件付き書き込みを実行するステップと、
条件付き書き込み処理が成功したときに、PPEによりパリティ・バイトの値を前記更新値に変更するステップと、を含み、
前記更新値は、有効部を無効部に、無効部を有効部に反転させる値であることを特徴とする請求項17に記載のCELLプロセッサ。 - PPEによる有効部の読み出し方法を示す命令セットとして、PPEの1以上のレジスタにプロセッサの実行命令セットを保持し、
前記読み出し方法は、
PPEにより、パリティ・バイトの初期値の予約付き読み出しを実行するステップと、
有効部の1以上の小区分を連続的に読み出すステップと、
前記初期値のパリティ・バイトへの条件付きで書き込みを実行するステップと、
を含むことを特徴とする請求項17に記載のCELLプロセッサ。 - 前記プリミティブのサイズは、SPEのレジスタのサイズ以下であることを特徴とする請求項17に記載のCELLプロセッサ。
- 前記プリミティブのサイズは、SPEのレジスタのサイズ以下であって、
小区分は、PPEのレジスタのサイズ以下のサイズであることを特徴とする請求項17に記載のCELLプロセッサ。 - 前記プリミティブのサイズは128バイトであることを特徴とする請求項17に記載のCELLプロセッサ。
- 前記プリミティブのサイズは128バイトであって、前記小区分のサイズは8バイトであることを特徴とする請求項17に記載のCELLプロセッサ。
- 前記プリミティブのサイズは128バイトであって、前記2以上の部分データには、63バイト・サイズの部分データが2つ含まれることを特徴とする請求項17に記載のCELLプロセッサ。
- PPEは一度に8バイトをアトミックに操作し、
SPEは一度に128バイトをアトミックに操作し、
前記プリミティブのサイズは128バイトであって、前記2以上の部分データには、63バイト・サイズの部分データが2つ含まれることを特徴とする請求項17に記載のCELLプロセッサ。 - 前記プリミティブは、更に、SPEとPPEからアクセスできる追加情報を保持するユーティリティ・バイトを含むことを特徴とする請求項17に記載のCELLプロセッサ。
- 前記追加情報は、前記プリミティブの更新に関してPPEが優先権を持つことをSPEに通知するための情報であることを特徴とする請求項27に記載のCELLプロセッサ。
- 前記ユーティリティ・バイトは、前記プリミティブをマスクするサイズを示すことを特徴とする請求項27に記載のCELLプロセッサ。
- 前記プリミティブは、第1部分データと第2部分データに分割され、
前記第1部分データは、前記パリティ・バイトを含むことを特徴とする請求項27に記載のCELLプロセッサ。 - レジスタ・ラインのサイズが異なるPPE(Power Processor Element)とSPE(Synergistic Processing Element)、および、メインメモリを含む2以上のプロセッサを備えるプロセッサ・システムにおいて実行され、SPEによる単一操作にて読み書きが可能なプリミティブ(Primitive)をPPEによりアトミックに更新するための方法であって、
前記プリミティブのサイズは、PPEのメモリ転送処理の最大サイズよりも大きく、SPEのメモリ転送処理の最大サイズ以下であって、
メインメモリにおける前記プリミティブのアドレスは、2以上の部分データと前記2以上の部分データのうちのいずれが有効部でいずれが無効部であるかを示す1ビット以上のパリティ・バイトに分割されており、
PPEにより、パリティ・バイトの予約付き読み出しを実行するステップと、
PPEにより、PPEが単一のメモリ転送処理にて更新できるサイズの小区分にて、無効部の1以上の小区分に書き込むステップと、
PPEにより、パリティ・バイトに対する更新値の条件付き書き込みを実行するステップと、
条件付き書き込み処理が成功したときに、PPEによりパリティ・バイトの値を変更するステップと、
を更に備えることを特徴とするアトミック更新方法。 - メモリ転送容量の異なるPPE(Power Processor Element)とSPE(Synergistic Processing Element)、および、メインメモリを含む2以上のプロセッサを備えるプロセッサ・システムにおいて実行され、SPEによる単一操作にて読み書きが可能なプリミティブ(Primitive)をPPEによりアトミックに読み出すための方法であって、
前記プリミティブのサイズは、PPEのメモリ転送処理の最大サイズよりも大きく、SPEのメモリ転送処理の最大サイズ以下であって、
メインメモリにおける前記プリミティブのアドレスは、2以上の部分データと前記2以上の部分データのうちのいずれが有効部でいずれが無効部であるかを示す1ビット以上のパリティ・バイトに分割されており、
PPEにより、パリティ・バイトの初期値を予約付きで読み出すステップと、
PPEが単一のメモリ転送処理にて更新できるサイズの小区分にて、有効部の1以上の小区分を連続的に読み出すステップと、
PPEにより、パリティ・バイトへの前記初期値の条件付き書き込みを実行するステップと、
を備えることを特徴とするアトミック読出方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/291,306 US7398368B2 (en) | 2005-12-01 | 2005-12-01 | Atomic operation involving processors with different memory transfer operation sizes |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007157146A JP2007157146A (ja) | 2007-06-21 |
JP4130465B2 true JP4130465B2 (ja) | 2008-08-06 |
Family
ID=38120157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006325471A Active JP4130465B2 (ja) | 2005-12-01 | 2006-12-01 | メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7398368B2 (ja) |
JP (1) | JP4130465B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509463B2 (en) * | 2005-12-01 | 2009-03-24 | Sony Computer Entertainment, Inc. | Cell processor atomic compare and swap using dedicated synergistic processor element |
US8024521B2 (en) * | 2007-03-13 | 2011-09-20 | Sony Computer Entertainment Inc. | Atomic operation on non-standard sized data using external cache |
US8387041B2 (en) * | 2008-01-09 | 2013-02-26 | International Business Machines Corporation | Localized multi-element processor resource sharing among logical partitions |
US20100083269A1 (en) * | 2008-09-29 | 2010-04-01 | International Business Machines Corporation | Algorithm for fast list allocation and free |
JP5514120B2 (ja) * | 2008-11-14 | 2014-06-04 | 株式会社日立メディコ | 超音波診断装置及び超音波画像生成方法 |
US8412862B2 (en) | 2008-12-18 | 2013-04-02 | International Business Machines Corporation | Direct memory access transfer efficiency |
US8949529B2 (en) * | 2009-12-30 | 2015-02-03 | International Business Machines Corporation | Customizing function behavior based on cache and scheduling parameters of a memory argument |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU645785B2 (en) * | 1990-01-05 | 1994-01-27 | Maspar Computer Corporation | Parallel processor memory system |
JPH0954761A (ja) * | 1995-08-15 | 1997-02-25 | Sony Corp | デイジタル信号処理装置及び情報処理システム |
US5835925A (en) | 1996-03-13 | 1998-11-10 | Cray Research, Inc. | Using external registers to extend memory reference capabilities of a microprocessor |
US5864738A (en) | 1996-03-13 | 1999-01-26 | Cray Research, Inc. | Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller |
US7274706B1 (en) | 2001-04-24 | 2007-09-25 | Syrus Ziai | Methods and systems for processing network data |
US20050120185A1 (en) | 2003-12-01 | 2005-06-02 | Sony Computer Entertainment Inc. | Methods and apparatus for efficient multi-tasking |
-
2005
- 2005-12-01 US US11/291,306 patent/US7398368B2/en active Active
-
2006
- 2006-12-01 JP JP2006325471A patent/JP4130465B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US7398368B2 (en) | 2008-07-08 |
US20070130438A1 (en) | 2007-06-07 |
JP2007157146A (ja) | 2007-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4977159B2 (ja) | 特定のプロセッサを使ってアトミックなコンペア・アンド・スワップ命令を実行するための技術 | |
US10210092B1 (en) | Managing cache access and streaming data | |
US6665749B1 (en) | Bus protocol for efficiently transferring vector data | |
JP5876458B2 (ja) | Simdベクトルの同期 | |
US6141734A (en) | Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol | |
US6813701B1 (en) | Method and apparatus for transferring vector data between memory and a register file | |
JP4421561B2 (ja) | ハイブリッドdmaキュー及びdmaテーブルのデータ処理方法、装置及びシステム | |
US7590774B2 (en) | Method and system for efficient context swapping | |
US6513107B1 (en) | Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page | |
JP4130465B2 (ja) | メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 | |
JPS63238631A (ja) | I/oプロセツサ用の実行装置 | |
US6553486B1 (en) | Context switching for vector transfer unit | |
JPH1185618A (ja) | 仮想メモリ変換を制御する方法 | |
US6625720B1 (en) | System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs | |
US8024521B2 (en) | Atomic operation on non-standard sized data using external cache | |
US20030135717A1 (en) | Method and apparatus for transferring vector data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20080213 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20080227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080311 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080415 |
|
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: 20080513 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080521 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4130465 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110530 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110530 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120530 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130530 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |