Editing Synergistic Processing Unit (SPU)

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 8: Line 8:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Register !! Status !! Usage
| Register || Status || Usage
|-
|-
| R0 (LR) || Dedicated || Return Address / Link Register. This register contains the address to which a called function normally returns. It is volatile across function calls and must be saved by a non-leaf function.
| R0 (LR) || Dedicated || Return Address / Link Register. This register contains the address to which a called function normally returns. It is volatile across function calls and must be saved by a non-leaf function.
Line 21: Line 21:
|-
|-
| R80-R127 || Non-volatile || Local variable registers. These must be preserved across function calls.
| R80-R127 || Non-volatile || Local variable registers. These must be preserved across function calls.
|-
|}
|}


Line 68: Line 67:


== SPU Assembly Language Specification ==
== SPU Assembly Language Specification ==
All the informations are taken from [https://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/EFA2B196893B550787257060006FC9FB/$file/SPU_Assembly_Language_Specification_1.7.pdf SPU_Assembly_Language_Specification_1.7.pdf]
All the informations are taken from this [https://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/EFA2B196893B550787257060006FC9FB/$file/SPU_Assembly_Language_Specification_1.7.pdf PDF].


=== Notation and Conventions ===
=== Notation and Conventions ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Notation/Convention !! Meaning
| Notation/Convention || Meaning
|-
|-
| ch || Channel number. Channels are specified as either $ch followed by a channel number (for example, $ch3) or a specific channel mnemonic.
| ch || Channel number. Channels are specified as either $ch followed by a channel number (for example, $ch3) or a specific channel mnemonic.
Line 108: Line 107:
|-
|-
| u18 || Unsigned 18-bit value.
| u18 || Unsigned 18-bit value.
|-
|}
|}


=== Instruction Set ===
=== Instruction Set ===
[http://www.insomniacgames.com/assets/extras/spu_ops.txt Short reference with pipeline information]
 
[https://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/EFA2B196893B550787257060006FC9FB/$file/SPU_Assembly_Language_Specification_1.7.pdf SPU_Assembly_Language_Specification_1.7.pdf]
 
{| class="wikitable"
{| class="wikitable"
|-
| Instruction/Usage || Description
! Instruction/Usage !! Description
|-
|-
| a, rt, ra, rb || Add word. Each word element of register ra is added to the corresponding word element of register rb, and the results are placed in the corresponding word elements of register rt.
| a, rt, ra, rb || Add word. Each word element of register ra is added to the corresponding word element of register rb, and the results are placed in the corresponding word elements of register rt.
Line 564: Line 563:
|-
|-
|}
|}
== Other references ==
[http://cell.scei.co.jp/e_download.html cell.scei.co.jp SPU specific:]
*[http://cell.scei.co.jp/pdf/SPU_ISA_v12.pdf Synergistic Processor Unit(SPU) Instruction Set Architecture] (Version 1.2 / January 27, 2007)
*[http://cell.scei.co.jp/pdf/SPU_Assembly_Language_v14.pdf SPU Assembly Language Specification] (Version 1.4 / October 11, 2006)
*[http://cell.scei.co.jp/pdf/Language_Extensions_for_CBEA_v23.pdf C/C++ Language Extensions for Cell Broadband Engine™ Architecture] (Version 2.3 / December 4, 2006)
*[http://cell.scei.co.jp/pdf/SIMD_Library_Specification_for_CBEA_v10.pdf SIMD Math Library Specification for Cell Broadband Engine™ Architecture] (Version 1.0 / November 6, 2006)
*[http://cell.scei.co.jp/pdf/SPU_ABI_v16.pdf SPU Application Binary Interface Specification] (Version 1.6 / December 4, 2006)
IBM:
*[http://www.ibm.com/developerworks/power/library/pa-tacklecell2/ The little broadband engine that could: Mailboxes and interrupts] Uncover two means of communication between the SPE and the PPE -- mailboxes and signal notification.
* http://cell.scei.co.jp/pdf/CBE_Public_Registers_v15.pdf page (incl. SPE "Problem state memory map", "Privilege 1 memory map", "Privilege 2 memory map")
VPOS:
*http://djlee.org:8080/trac/LabWorks/browser/VPOS/working-sources/include/asm-cell/cell_memory_map_spe.h?rev=79
*http://djlee.org:8080/trac/LabWorks/browser/VPOS/working-sources/include/asm-cell/cell_memory_map.h?rev=79
{{Development}}<noinclude>[[Category:Main]]</noinclude>
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)