ARM cortex a系列架构详细介绍

所需积分/C币:35 2017-07-06 14:12:50 3.76MB PDF
收藏 收藏

ARM cortex a系列架构详细介绍,对研究cortexA系列的ARM芯片有重要帮助
Contents Cortex-A Series Programmer's Guide Preface Referen X Typographical conventions Feedback on this book sary Chapter 1 troduction Histol 1-2 1.2 System-on-Chip(Soc) ;;;。; 1-3 Embedded systems 1-4 Chapter 2 ARM Architecture and processors 2.1 Architecture versions 2-3 Architecture history and extensions 24 2.3 Key architectural points of ARM Cortex-A series processors 28 2. 4 Processors and pipelines 2-9 2.5 The Cortex-A series processors 2-11 Chapter 3 Tools, Operating systems and boards 3.1 Linux distributions∴ 3-2 3.2 Useful tools 3.3 Software toolchains for ARM processors 3-8 3.4 ARM DS-5 3.5 Example platforms 3-13 Chapter 4 ARM Registers, Modes and Instruction Sets 4.1 Instruction sets “aaaa: .4-2 4.2 Modes 4-3 ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved Do71612 Non-Confidential Contents 4.3 Registers 4-4 Instruction pipelines 4.5 Branch prediction 4-10 Chapter 5 Introduction to Assembly Language 5.1 Comparison with other assembly languages 5-2 5.2 Instruction sets 5.3 Introduction to the gnu assembler 5-5 5.4 aRM tools assembly language 5-9 5.5 nterworking… 5-1 5.6 Identifying assembly code Chapter 6 ARM/Thumb Unified Assembly Language Instructions 6.1 Instruction set basics .6-2 6.2 Data processing operations .Ii.. 6-6 6.3 Multiplication operations 6-9 6.4 Memory instructions 6-10 6.5 Branches 6-13 6.6 Integer SIMD instructions 6-14 6.7 6-18 6.8 Miscellaneous instructions 6-19 Chapter 7 Floating Point Floating-point basics and the IEEE-754 standard 7-2 7. 2 VFP support in GCC 7-8 VFP support in the aRm compiler 7-9 74 FP support in Linux… 7-10 7.5 Floating-point optimization 7-11 Chapter 8 Introducing NEON 8.1 S|MD… 8-2 8.2 Neon architecture overview 8-4 Chapter 9 Caches 9.1 Why do caches help? 9-3 Cache drawbacks 9-4 9.3 Memory hierarchy 9-5 96 9.5 Cache policies 9-12 9.6 Write and fetch buffers .9-14 9.7 Cache performance and hit rate……… ..9-15 9.8 Invalidating and cleaning cache memory 9-16 9. 9 Point of coherency and unification 9-17 9.10 Level 2 cache controller 918 9. 11 Parity and ECC in caches 9-19 Chapter 10 Memory Management Unit 10.1 Virtual memory 10-3 10.2 Level 1 page tables 10-4 10.3 Level 2 page tables 10-7 10.4 The Translation lookaside buffer 10-10 105 TLB coherency… .10-11 10.6 Choice of page sizes 10-12 10.7 Memory attributes 10-13 10.8 Multi-tasking and os usage of page tables 10-16 10.9 Large Physical Address Extensions 10-19 ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved D071612 Non-Confidential Contents Chapter 11 Memory Ordering 11.1 ARM memory ordering model ..11-4 11.2 Memory barriers 11-7 1.3 Cache coherency implications 11-12 Chapter 12 Exception Handling 12.1 Types of exception 12-3 12.2 Exception mode summary 12-5 12.3 Entering an exception handler ∴12-7 12.4 Exit from an exception handler 12-8 12.5∨ ector table 129 12.6 Return instruction 12-10 Chapter 13 Interrupt Handling 3.1 EXternal interrupt requests 13-2 13.2 Generic Interrupt Controller 13-4 Chapter 14 Other Exception Handlers 14.1 Abort handler 14-2 14.2 Undefined instruction handling 14-3 14.3 SVC exception handling.... 14-4 14.4 Linux exception program flow 14-5 Chapter 15 Boot code 15.1 Booting a bare- metal system 15-2 15.2 Configuration .15-6 15.3 Booting Linux 15-7 Chapter 16 Porting 16.1 Endianness 16-2 16.2 Alignment 16-5 16.3 Miscellaneous c porting issues 16-7 16.4 Porting aRM assembly code to ARMv7 16-10 16.5 Porting arm code to Thumb 16-11 Chapter 17 Application Binary Interfaces 17.1 Procedure call standard 17-2 17.2 Mixing C and 17-7 Chapter 18 Profilin 18.1 Profiler output 18-3 Chapter 19 Optimizing code to Run on ARM Processors 19.1 Compiler optimizations .19-3 19.2 ARM memory system optimization 19-8 19.3 Source code modifications 1913 Chapter 20 Writing NEON Code 20. 1 NEON C Compiler and assembler 20-2 20.2 Optimizing neon assembler code 20-7 20. 3 NEoN power saving 20-9 Chapter 21 Introduction to Multi- processing Multi-processing ARM systems 21-3 21.2 Symmetric multi-processing 215 21.3 Asymmetric multi-processing 21-7 ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved D071612 Non-Confidential Contents Chapter 22 SMP Architectural considerations 22.1 Cache coherency 222 22.2 TLB and cache maintenance broadcast 22-5 ts in an smP 22. 4 Exclusive accesses 22-7 Booting SMP systems 22-10 22.6 Private memory region 22-12 Chapter 23 Parallelizing Software 23.1 Decomposition methods 23-2 23.2 Threading models 23-4 23.3 Threading libraries 23-5 23.4 Synchronization mechanisms in the Linux kernel .23-8 Chapter 24 Issues with Parallelizing software 24.1 Thread safety and reentrancy 24-2 24.2 Performance issues 24-3 24.3 Profiling in SMP systems 24-5 Chapter 25 Power Management 25.1 Power and clocking… .25-2 Chapter 26 Security 26.1 Trustzone hardware architecture .26-2 Chapter 27 Virtualization 27.1 ARMv7-A Virtualization extensions 27-3 27.2 Hypervisor exception model 27-5 27.3 Relationship between virtualization and ARM Security Extensions 27-6 Chapter 28 Introducing big LITTLE 28. 1 big. LITTLE configuration …28-2 28.2 Structure of a big. LITTLE system ..28-3 28.3 Execution models in big LITTLE 28-4 28.4 big. LITTLE MP operation 28-9 Chapter 29 Debug 29 ARM debug hardware.... 29-2 29.2 ARM trace hardware 294 29.3 Debug monitor 297 29.4 Debugging Linux applications 29-8 29.5 DS-5 debug and trace Appendix a Instruction Summary A.1 Instruction Summary… “cE A-2 Appendix B NeoN and VFP Instruction Summary B. 1 neon general data processing instructions... B-6 B.2 Neon Shift instructions B-13 B.3 neoN logical and compare operations B-17 B.4 NEoN arithmetic instructions B-23 B5 NEON multiply instructions B-32 B.6 neon load and store element and structure instructions B-35 B7 VEP instructions B-41 B.8 NEOn and VFP pseudo-instructions B-47 ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved D071612 Non-Confidential Contents Appendixc Building Linux for ARM Systems C.1 Building the Linux kernel C-2 C2 Creating the Linux filesystem ..C-6 C3 Putting it together ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved D071612 Non-Confidential Preface This book provides an introduction to ARM technology for programmers using ARM Cortex-A series processors that conform to the aRM ARMv7-a architecture. The v 7 refers to version 7 of the architecture while the a indicates the architecture profile that describes application processors This includes the Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9 and Cortex-Al5 processors The book complements rather than replaces other arM documentation that is available for Cortex-A series processors, such as the ARM Technical Reference Manuals(TRMs) for the processors themselves, documentation for individual devices or boards and, most importantly, the ARM Architecture reference Manual(or the"ARM ARM) The purpose of this book is to bring together information from a wide variety of sources to provide a single guide for programmers who want to develop applications for the latest Cortex-A series of processors. We will cover hardware concepts such as caches and Memory Management Units, but only where this is valuable to the application writer. The book is intended to provide information that will be useful to both assembly language and c programmers We will look at how complex operating systems, such as Linux, make use of ARM features, and how to take full advantage of the many advanced capabilities of the ARM processor, in particular writing software for multi-processing and using the SIMd capabilities of the device Although much of the book is also applicable to other arm processors, we do not explicitly cover processors that implement older versions of the Architecture. The Cortex-R series and M-series processors are mentioned but not described. Our intention is to provide an approachable introduction to the ARM architecture, covering the feature set in detail and providing practical advice on writing both C and assembly language programs lo run efficiently on a Corlex-A series processor. This is not an introductory level book. We assume knowledge of the c programming language and microprocessors, but not of any ARM-specific background. In the allotted space, we cannot hope to cover every topic in detail. In some chapters, we suggest further reading(referring either to books or websites) that can give a deeper level of background to the topic in hand but in this book we will focus on the ARM-specific detail. We do not assume the use of any particular tool chain ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved Do71612 Non-Confidential Preface We will mention both GNU and ARM tools in the course of the book. We hope that the book will be well suited to programmers who have a desktop PC or x86 background and are taking their first steps into the arM processor based world The first chapters of the book cover the basic features of the ARM Cortex-A series processors An introduction to the fundamentals of the arM architecture and some background on individual processors is provided in Chapter 2. In Chapter 3, we briefly consider some of the tools and platforms available to those getting started with aRM programming Chapters 4, 5 and 6 provide a brisk introduction to ARM assembly language programming, covering the various registers, modes and assembly language instructions We look at floating-point and the arm Advanced SIMD extensions (NEON)in Chapters 7 and 8. These chapters are only an introduction to the relevant topics. It would take significantly longer to cover all of the powerful capabilities of neoN and how to apply these to common signal processing algorithms. We then switch our focus to the memory system and look at Caches, Memory Management and Memory Ordering in Chapters 9, 10 and 11. Dealing with interrupts and other exceptions is described in Chapters 12 to 14 The remaining chapters of the book provide more advanced programming information Chapter 15 provides an overview of boot code. Chapter 16 looks at issues with porting C and assembly code to the ARMv7 architecture, from other architectures and from older versions of the arm architecture. Chapter 17 covers the application Binary Interlace, knowledge of which is useful to both C and assembly language programmers Profiling and optimizing of code is covered in Chapters 18 and 19. Many of the techniques presented are not specific to the arm architecture, but we also provide some processor-specific hints Chapters 21-24 cover the area of multi-processing. We take a detailed look at how this is implemented by arm and how you can write code to take advantage of it. Power management is an important part of arm programming and is covered in Chapter 21. The final chapters of the book provide a brief coverage of the ARM Security Extensions(TrustZone ) the ARM Virtualization extensions(Chapter 27), big. LITTLE technology(Chapter 28), and the powerful hardware debug features available to programmers( Chapter 29). Appendices a and B give a summary of the available ARM, NEON and VFP instructions and Appendix c gives step-by-step instructions for configuring and building linux for arm systems ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved Do71612 Non-Confidential Preface References Cohen, D. On Holy Wars and a Plea for Peace, USC/ISI IEN April, 1980, htlp:// Furber, Steve. "ARM System-on-chip Architecture, 2nd edition, Addison-Wesley, 2000, ISBN 9780201675191 Hohl, William. "ARM Assembly Language: Fundamentals and Techniques "CRC Press, 2009 ISBN:9781439806104 Sloss, Andrew N; Symes, Dominic; Wright, Chris. ARM SyStem Developer's Guide Designing and Optimizing System Software", Morgan Kaufmann, 2004, ISBN 9781558608740. ANSITEEE Std 754-1985, IEEE Standard for Binary Floating-Point Arithmetic ANSI/TEEE Std 754-2008, IEEE Standard for Binary Floating-Point Arithmetic ANSI/TEEE Std 1003. 1-1990, Standard for Information Technology- Portable operating System Interface(Posix Base specifications, Issue 7 ANSI/TEEE Std 1149.1-2001, "TEEE Standard Test Access Port and Boundary-Scan Architecture?" The aRM Architecture Reference Manual(known as the arM arm)is a must-read for any serious ARM programmer. It is available(after registration) from the ARM website. It fully describes the ARMv7 instruction set architecture, programmers model, system registers, debug features and memory model. It forms a detailed specification to which all implementations of ARM processors must adhere References to the ARM Architecture reference manual in this document are to ARM Architecture reference manual-ARMv7-A and ARMv7-R edition(ARM DDI 0406) Note In the event of a contradiction between this book and the armarm. the armarm is definitive and must take precedence. In most instances, however, the ARMARM and the Cortex-A Programmer's Guide cover two separate world views. The ARM ARM is fo processor implementers, while this book is for processor users. The most likely scenario is that this book will describe something in a way that does not cover all architecturally permitted behaviors-or simply rewords an abstract concept in more practical terms ARM Generic Interrupt Controller Architecture Specification (ARM IHI 0048) ARM Compiler Toolchain Assembler Reference(DUI 0489) ARM C Language Extensions (IHI 0053) The individual processor Technical Reference Manuals provide a detailed description of the processor behavior. They can be obtained from the ARM website documentation area, ARM DENO013C Copyright o 2011, 2012 ARM. All rights reserved Do71612 Non-Confidential

试读 127P ARM  cortex a系列架构详细介绍
立即下载 低至0.43元/次 身份认证VIP会员低至7折
wxjdog Cortex™-A Series Version: 3.0 Programmer’s Guide 是这个文档
ARM cortex a系列架构详细介绍 35积分/C币 立即下载
ARM  cortex a系列架构详细介绍第1页
ARM  cortex a系列架构详细介绍第2页
ARM  cortex a系列架构详细介绍第3页
ARM  cortex a系列架构详细介绍第4页
ARM  cortex a系列架构详细介绍第5页
ARM  cortex a系列架构详细介绍第6页
ARM  cortex a系列架构详细介绍第7页
ARM  cortex a系列架构详细介绍第8页
ARM  cortex a系列架构详细介绍第9页
ARM  cortex a系列架构详细介绍第10页
ARM  cortex a系列架构详细介绍第11页
ARM  cortex a系列架构详细介绍第12页
ARM  cortex a系列架构详细介绍第13页
ARM  cortex a系列架构详细介绍第14页
ARM  cortex a系列架构详细介绍第15页
ARM  cortex a系列架构详细介绍第16页
ARM  cortex a系列架构详细介绍第17页
ARM  cortex a系列架构详细介绍第18页
ARM  cortex a系列架构详细介绍第19页
ARM  cortex a系列架构详细介绍第20页

试读结束, 可继续阅读

35积分/C币 立即下载 >