Editing CPU

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 1: Line 1:
#REDIRECT [[Allegrex]]
[[Category:Hardware]]<noinclude>[[Category:Main]]</noinclude>
== 4 core ARM Cortex-A9 MPCore ==
 
The ARM Cortex-A9 MPCore is a multicore processor providing up to 4 cache-coherent Cortex-A9 cores, each implementing the ARM v7 instruction set architecture.
 
=== Specifications ===
* Designed by: ARM
* Common manufacturer(s): TSMC
* CPU clock rate: 800 MHz to 2000 MHz (generic spec, needs confirmation on Vita platform)
* Instruction set: ARMv7
* Cores: 1-4
* L1 cache: 32 kB I/32 kB D
* L2 cache controller: (0-4 MB)
 
The actual application processor cores are [http://www.arm.com/products/processors/cortex-a/cortex-a9.php Cortex A9], which is common in modern high performance embedded devices like cell phones and tablets. The [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0388i/index.html Technical Reference Manual] gives a good overview of the specific processor features and is a good reference for what ARMv7 implementation specific features are enabled. The Vita cores have a MIDR value of <code>0x412FC09A</code>, meaning it is Cortex A9 r2p10. Indeed there are usage of undocumented CP15 registers.
 
Another manual that's important is the [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407i/index.html MPCore Technical Reference Manual] which is specific to the multi-core system the Vita uses. The main information of use are descriptors for the private memory region defined with the <code>PERIPHBASE</code> signal. This is mapped to [[Physical Memory|physical address]] <code>0x1A000000</code>.
 
== Interrupt Controller ==
As part of the Cortex A9 MPcore, the Vita also implements the [http://www.systems.ethz.ch/sites/default/files/file/aos2012/ReferenceMaterial/InterruptHandling/GIC_architecture_spec_v1_0.pdf Generic Interrupt Controller Architecture]. More information on interrupts can be found [[Interrupts|here]].
 
== PL310 L2 Cache ==
The Vita uses the [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0246a/index.html PL310] L2 cache is is [[Physical Memory|mapped]] to <code>0x1A002000</code>.
 
=== Debugging/Tracing ===
CoreSight for Cortex-A series processors enable developers to control (debug) and observe (trace) their Cortex-A processor-based SoC with fewer pins. Cortex-A processor debug and run time control can be performed with only 2 pins using the Serial Wire Debug technology or alternatively using JTAG, when highly compressed real-time trace of the cores and others system trace can be captured on-chip (ETB) or exported through a dedicated trace port (TPIU).
 
== External References ==
* [http://www.arm.com/products/processors/cortex-a/cortex-a9.php ARM Cortex-A9 Processor - main page]
** [http://www.arm.com/files/pdf/ARMCortexA-9Processors.pdf White paper - The ARM Cortex-A9 Processors]
** [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407e/index.html Cortex-A9 MPCore Technical Reference Manual]
* [http://www.arm.com/products/system-ip/debug-trace/coresight-soc-components/index.php CoreSight - main page]
** [http://www.arm.com/products/system-ip/debug-trace/coresight-soc-components/serial-wire-debug.php CoreSight Debug Access Port : Serial Wire Debug]
Please note that all contributions to PSP Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PSP 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)