ebook img

ARM Architecture Reference Manual PDF

1138 Pages·2007·5.47 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview ARM Architecture Reference Manual

ARM Architecture Reference Manual Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. ARM DDI 0100I ARM Architecture Reference Manual Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. Release Information The following changes have been made to this document. Change History Date Issue Change February 1996 A First edition July 1997 B Updated and index added April 1998 C Updated February 2000 D Updated for ARM architecture v5 June 2000 E Updated for ARM architecture v5TE and corrections to Part B July 2004 F Updated for ARM architecture v6 (Confidential) December 2004 G Updated to incorporate corrections to errata March 2005 H Updated to incorporate corrections to errata July 2005 I Updated to incorporate corrections to pseudocode and graphics Proprietary Notice ARM, the ARM Powered logo, Thumb, and StrongARM are registered trademarks of ARM Limited. The ARM logo, AMBA, Angel, ARMulator, EmbeddedICE, ModelGen, Multi-ICE, PrimeCell, ARM7TDMI, ARM7TDMI-S, ARM9TDMI, ARM9E-S, ETM7, ETM9, TDMI, STRONG, are trademarks of ARM Limited. All other products or services mentioned herein may be trademarks of their respective owners. The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. 1. Subject to the provisions set out below, ARM hereby grants to you a perpetual, non-exclusive, nontransferable, royalty free, worldwide licence to use this ARM Architecture Reference Manual for the purposes of developing; (i) software applications or operating systems which are targeted to run on microprocessor cores distributed under licence from ARM; (ii) tools which are designed to develop software programs which are targeted to run on microprocessor cores distributed under licence from ARM; (iii) or having developed integrated circuits which incorporate a microprocessor core manufactured under licence from ARM. 2. Except as expressly licensed in Clause 1 you acquire no right, title or interest in the ARM Architecture Reference Manual, or any Intellectual Property therein. In no event shall the licences granted in Clause 1, be construed as granting you expressly or by implication, estoppel or otherwise, licences to any ARM technology other than the ARM Architecture Reference Manual. The licence grant in Clause 1 expressly excludes any rights for you to use or take into use any ARM patents. No right is granted to you under the provisions of Clause 1 to; (i) use the ARM Architecture Reference Manual for the purposes of developing or having developed microprocessor cores or models thereof which are compatible in whole or part with either or both the instructions or programmer's models described in this ARM Architecture Reference ii Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. ARM DDI 0100I Manual; or (ii) develop or have developed models of any microprocessor cores designed by or for ARM; or (iii) distribute in whole or in part this ARM Architecture Reference Manual to third parties, other than to your subcontractors for the purposes of having developed products in accordance with the licence grant in Clause 1 without the express written permission of ARM; or (iv) translate or have translated this ARM Architecture Reference Manual into any other languages. 3.THE ARM ARCHITECTURE REFERENCE MANUAL IS PROVIDED "AS IS" WITH NO WARRANTIES EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF SATISFACTORY QUALITY, NONINFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE. 4. No licence, express, implied or otherwise, is granted to LICENSEE, under the provisions of Clause 1, to use the ARM tradename, in connection with the use of the ARM Architecture Reference Manual or any products based thereon. Nothing in Clause 1 shall be construed as authority for you to make any representations on behalf of ARM in respect of the ARM Architecture Reference Manual or any products based thereon. Copyright © 1996-1998, 2000, 2004, 2005 ARM limited 110 Fulbourn Road Cambridge, England CB1 9NJ Restricted Rights Legend: Use, duplication or disclosure by the United States Government is subject to the restrictions set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19 This document is Non-Confidential. The right to use, copy and disclose this document is subject to the licence set out above. ARM DDI 0100I Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. iii iv Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. ARM DDI 0100I Contents ARM Architecture Reference Manual Preface About this manual ................................................................................ xii Architecture versions and variants ...................................................... xiii Using this manual .............................................................................. xviii Conventions ........................................................................................ xxi Further reading .................................................................................. xxiii Feedback .......................................................................................... xxiv Part A CPU Architecture Chapter A1 Introduction to the ARM Architecture A1.1 About the ARM architecture ............................................................. A1-2 A1.2 ARM instruction set .......................................................................... A1-6 A1.3 Thumb instruction set ..................................................................... A1-11 Chapter A2 Programmers’ Model A2.1 Data types ........................................................................................ A2-2 A2.2 Processor modes ............................................................................. A2-3 A2.3 Registers .......................................................................................... A2-4 A2.4 General-purpose registers ............................................................... A2-6 A2.5 Program status registers ................................................................ A2-11 ARM DDI 0100I Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. v Contents A2.6 Exceptions ..................................................................................... A2-16 A2.7 Endian support ............................................................................... A2-30 A2.8 Unaligned access support .............................................................. A2-38 A2.9 Synchronization primitives ............................................................. A2-44 A2.10 The Jazelle Extension .................................................................... A2-53 A2.11 Saturated integer arithmetic ........................................................... A2-69 Chapter A3 The ARM Instruction Set A3.1 Instruction set encoding ................................................................... A3-2 A3.2 The condition field ............................................................................ A3-3 A3.3 Branch instructions .......................................................................... A3-5 A3.4 Data-processing instructions ............................................................ A3-7 A3.5 Multiply instructions ........................................................................ A3-10 A3.6 Parallel addition and subtraction instructions ................................. A3-14 A3.7 Extend instructions ......................................................................... A3-16 A3.8 Miscellaneous arithmetic instructions ............................................ A3-17 A3.9 Other miscellaneous instructions ................................................... A3-18 A3.10 Status register access instructions ................................................ A3-19 A3.11 Load and store instructions ............................................................ A3-21 A3.12 Load and Store Multiple instructions .............................................. A3-26 A3.13 Semaphore instructions ................................................................. A3-28 A3.14 Exception-generating instructions .................................................. A3-29 A3.15 Coprocessor instructions ............................................................... A3-30 A3.16 Extending the instruction set .......................................................... A3-32 Chapter A4 ARM Instructions A4.1 Alphabetical list of ARM instructions ................................................ A4-2 A4.2 ARM instructions and architecture versions ................................. A4-286 Chapter A5 ARM Addressing Modes A5.1 Addressing Mode 1 - Data-processing operands ............................. A5-2 A5.2 Addressing Mode 2 - Load and Store Word or Unsigned Byte ...... A5-18 A5.3 Addressing Mode 3 - Miscellaneous Loads and Stores ................. A5-33 A5.4 Addressing Mode 4 - Load and Store Multiple ............................... A5-41 A5.5 Addressing Mode 5 - Load and Store Coprocessor ....................... A5-49 Chapter A6 The Thumb Instruction Set A6.1 About the Thumb instruction set ...................................................... A6-2 A6.2 Instruction set encoding ................................................................... A6-4 A6.3 Branch instructions .......................................................................... A6-6 A6.4 Data-processing instructions ............................................................ A6-8 A6.5 Load and Store Register instructions ............................................. A6-15 A6.6 Load and Store Multiple instructions .............................................. A6-18 A6.7 Exception-generating instructions .................................................. A6-20 A6.8 Undefined Instruction space .......................................................... A6-21 vi Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. ARM DDI 0100I Contents Chapter A7 Thumb Instructions A7.1 Alphabetical list of Thumb instructions ............................................. A7-2 A7.2 Thumb instructions and architecture versions .............................. A7-125 Part B Memory and System Architectures Chapter B1 Introduction to Memory and System Architectures B1.1 About the memory system ............................................................... B1-2 B1.2 Memory hierarchy ............................................................................ B1-4 B1.3 L1 cache .......................................................................................... B1-6 B1.4 L2 cache .......................................................................................... B1-7 B1.5 Write buffers ..................................................................................... B1-8 B1.6 Tightly Coupled Memory .................................................................. B1-9 B1.7 Asynchronous exceptions .............................................................. B1-10 B1.8 Semaphores ................................................................................... B1-12 Chapter B2 Memory Order Model B2.1 About the memory order model ........................................................ B2-2 B2.2 Read and write definitions ................................................................ B2-4 B2.3 Memory attributes prior to ARMv6 ................................................... B2-7 B2.4 ARMv6 memory attributes - introduction .......................................... B2-8 B2.5 Ordering requirements for memory accesses ................................ B2-16 B2.6 Memory barriers ............................................................................. B2-18 B2.7 Memory coherency and access issues .......................................... B2-20 Chapter B3 The System Control Coprocessor B3.1 About the System Control coprocessor ............................................ B3-2 B3.2 Registers .......................................................................................... B3-3 B3.3 Register 0: ID codes ........................................................................ B3-7 B3.4 Register 1: Control registers .......................................................... B3-12 B3.5 Registers 2 to 15 ............................................................................ B3-18 Chapter B4 Virtual Memory System Architecture B4.1 About the VMSA .............................................................................. B4-2 B4.2 Memory access sequence ............................................................... B4-4 B4.3 Memory access control .................................................................... B4-8 B4.4 Memory region attributes ............................................................... B4-11 B4.5 Aborts ............................................................................................. B4-14 B4.6 Fault Address and Fault Status registers ....................................... B4-19 B4.7 Hardware page table translation .................................................... B4-23 B4.8 Fine page tables and support of tiny pages ................................... B4-35 B4.9 CP15 registers ............................................................................... B4-39 Chapter B5 Protected Memory System Architecture B5.1 About the PMSA .............................................................................. B5-2 ARM DDI 0100I Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. vii Contents B5.2 Memory access sequence ............................................................... B5-4 B5.3 Memory access control .................................................................... B5-8 B5.4 Memory access attributes .............................................................. B5-10 B5.5 Memory aborts (PMSAv6) .............................................................. B5-13 B5.6 Fault Status and Fault Address register support ............................ B5-16 B5.7 CP15 registers ............................................................................... B5-18 Chapter B6 Caches and Write Buffers B6.1 About caches and write buffers ........................................................ B6-2 B6.2 Cache organization .......................................................................... B6-4 B6.3 Types of cache ................................................................................. B6-7 B6.4 L1 cache ........................................................................................ B6-10 B6.5 Considerations for additional levels of cache ................................. B6-12 B6.6 CP15 registers ............................................................................... B6-13 Chapter B7 Tightly Coupled Memory B7.1 About TCM ....................................................................................... B7-2 B7.2 TCM configuration and control ......................................................... B7-3 B7.3 Accesses to TCM and cache ........................................................... B7-7 B7.4 Level 1 (L1) DMA model .................................................................. B7-8 B7.5 L1 DMA control using CP15 Register 11 ......................................... B7-9 Chapter B8 Fast Context Switch Extension B8.1 About the FCSE ............................................................................... B8-2 B8.2 Modified virtual addresses ............................................................... B8-3 B8.3 Enabling the FCSE .......................................................................... B8-5 B8.4 Debug and Trace ............................................................................. B8-6 B8.5 CP15 registers ................................................................................. B8-7 Part C Vector Floating-point Architecture Chapter C1 Introduction to the Vector Floating-point Architecture C1.1 About the Vector Floating-point architecture .................................... C1-2 C1.2 Overview of the VFP architecture .................................................... C1-4 C1.3 Compliance with the IEEE 754 standard ......................................... C1-9 C1.4 IEEE 754 implementation choices ................................................. C1-10 Chapter C2 VFP Programmer’s Model C2.1 Floating-point formats ...................................................................... C2-2 C2.2 Rounding .......................................................................................... C2-9 C2.3 Floating-point exceptions ............................................................... C2-10 C2.4 Flush-to-zero mode ........................................................................ C2-14 C2.5 Default NaN mode ......................................................................... C2-16 C2.6 Floating-point general-purpose registers ....................................... C2-17 C2.7 System registers ............................................................................ C2-21 viii Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. ARM DDI 0100I Contents C2.8 Reset behavior and initialization .................................................... C2-29 Chapter C3 VFP Instruction Set Overview C3.1 Data-processing instructions ............................................................ C3-2 C3.2 Load and Store instructions ........................................................... C3-14 C3.3 Single register transfer instructions ................................................ C3-18 C3.4 Two-register transfer instructions ................................................... C3-22 Chapter C4 VFP Instructions C4.1 Alphabetical list of VFP instructions ................................................. C4-2 Chapter C5 VFP Addressing Modes C5.1 Addressing Mode 1 - Single-precision vectors (non-monadic) ......... C5-2 C5.2 Addressing Mode 2 - Double-precision vectors (non-monadic) ....... C5-8 C5.3 Addressing Mode 3 - Single-precision vectors (monadic) .............. C5-14 C5.4 Addressing Mode 4 - Double-precision vectors (monadic) ............ C5-18 C5.5 Addressing Mode 5 - VFP load/store multiple ................................ C5-22 Part D Debug Architecture Chapter D1 Introduction to the Debug Architecture D1.1 Introduction ...................................................................................... D1-2 D1.2 Trace ................................................................................................ D1-4 D1.3 Debug and ARMv6 ........................................................................... D1-5 Chapter D2 Debug Events and Exceptions D2.1 Introduction ...................................................................................... D2-2 D2.2 Monitor debug-mode ........................................................................ D2-5 D2.3 Halting debug-mode ......................................................................... D2-8 D2.4 External Debug Interface ............................................................... D2-13 Chapter D3 Coprocessor 14, the Debug Coprocessor D3.1 Coprocessor 14 debug registers ...................................................... D3-2 D3.2 Coprocessor 14 debug instructions .................................................. D3-5 D3.3 Debug register reference ................................................................. D3-8 D3.4 Reset values of the CP14 debug registers ..................................... D3-24 D3.5 Access to CP14 debug registers from the external debug interface ......... D3-25 Glossary ARM DDI 0100I Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. ix Contents x Copyright ©1996-1998, 2000, 2004, 2005 ARM Limited. All rights reserved. ARM DDI 0100I

Description:
The Vector Floating-point (VFP) architecture, which uses coprocessors 10 and 11 However, this manual is not intended as tutorial material for ARM assembler
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.