Cortex-A15 MPCore Software Development

Similar documents
Cortex-A5 MPCore Software Development

Cortex-A15 MPCore Software Development

Cortex-A9 MPCore Software Development

Cortex-R5 Software Development

ARMv8-A Software Development

Introduction to ARMv8-A

Cortex-M3/M4 Software Desig ARM

ARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture.

RA3 - Cortex-A15 implementation

Cortex-M Software Development

ARM Accredited Engineer Certification

KeyStone II. CorePac Overview

RM3 - Cortex-M4 / Cortex-M4F implementation

RM4 - Cortex-M7 implementation

Designing with ALTERA SoC

KVM/ARM. Marc Zyngier LPC 12

ARM Processors for Embedded Applications

5. ARM 기반모니터프로그램사용. Embedded Processors. DE1-SoC 보드 (IntelFPGA) Application Processors. Development of the ARM Architecture.

Building High Performance, Power Efficient Cortex and Mali systems with ARM CoreLink. Robert Kaye

Hercules ARM Cortex -R4 System Architecture. Processor Overview

Cortex-M3/M4 Software Development

Kinetis Software Optimization

EC H2020 dredbox: Seminar School at INSA Rennes

Arria V SX and ST SoC Errata

Day #1. STM32F0 Core. Cortex-M0 Architecture. Cortex-M0 Instruction Set

ARMv8: The Next Generation. Minlin Fan & Zenon Xiu December 8, 2015

CODE TIME TECHNOLOGIES. mabassi RTOS. Porting Document. SMP / ARM Cortex-A9 CCS

Big.LITTLE Processing with ARM Cortex -A15 & Cortex-A7

Implementing Secure Software Systems on ARMv8-M Microcontrollers

ECE 471 Embedded Systems Lecture 2

18-349: Embedded Real-Time Systems Lecture 2: ARM Architecture

Cavium ThunderX2 CN99XX PMU Events (Abridged) July 31, 2018

ARM. Cortex -A15 MPCore. Processor. Technical Reference Manual. Revision: r4p0. Copyright ARM. All rights reserved. ARM DDI 0438I (ID062913)

The Next Steps in the Evolution of ARM Cortex-M

Chapter 5. Introduction ARM Cortex series

Copyright 2016 Xilinx

Amber Baruffa Vincent Varouh

Agenda. ARM Core Data Flow Model Registers Program Status Register Pipeline Exceptions Core Extensions ARM Architecture Revision

Migrating a software application from ARMv5 to ARMv7-A/R

ARM Cortex core microcontrollers

ARMv8-A Memory Systems. Systems. Version 0.1. Version 1.0. Copyright 2016 ARM Limited or its affiliates. All rights reserved.

ARM Debug and Trace. Configuration and Usage Models. Document number: ARM DEN 0034A Copyright ARM Limited

Fundamentals of ARMv8-A

Cortex -A15 MPCore. Technical Reference Manual. Revision: r3p0. Copyright ARM. All rights reserved. ARM DDI 0438E (ID040512)

ECE 471 Embedded Systems Lecture 2

ELC4438: Embedded System Design ARM Embedded Processor

Overview of Development Tools for the ARM Cortex -A8 Processor George Milne March 2006

The Evolution of the ARM Architecture Towards Big Data and the Data-Centre

Embedded Systems Programming

Embedded Seminar in Shenzhen

Performance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models. Jason Andrews

Modular ARM System Design

Cortex -A Series. Programmer s Guide. Version: 3.0. Copyright 2011, 2012 ARM. All rights reserved. ARM DEN0013C (ID071612)

CODE TIME TECHNOLOGIES. mabassi RTOS. Porting Document. SMP / ARM Cortex-A9 DS5 (ARMCC)

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-A9 CCS

CODE TIME TECHNOLOGIES. mabassi RTOS. Porting Document. SMP / ARM Cortex-A9 Xilinx SDK (GCC)

קורס VHDL for High Performance. VHDL

Cortex -A9. Technical Reference Manual. Revision: r3p0. Copyright ARM. All rights reserved. ARM DDI 0388G (ID072711)

The Definitive Guide to the ARM Cortex-M3

ARM Cortex-A* Series Processors

Freescale i.mx6 Architecture

Hi Hsiao-Lung Chan, Ph.D. Dept Electrical Engineering Chang Gung University, Taiwan

Compiler toolchain ARM. Processors. Developing Software for ARM. Version 4.1. Copyright ARM. All rights reserved. ARM DUI 0471C (ID080411)

CODE TIME TECHNOLOGIES. mabassi RTOS. Porting Document. SMP / ARM Cortex-A9 DS5 (GCC)

ARM Cortex -M for Beginners

FA3 - i.mx51 Implementation + LTIB

AArch64 Virtualization

Designing, developing, debugging ARM Cortex-A and Cortex-M heterogeneous multi-processor systems

ECE 471 Embedded Systems Lecture 3

L2 - C language for Embedded MCUs

Each Milliwatt Matters

NetBSD on Marvell Armada XP System on a Chip

ARM TrustZone for ARMv8-M for software engineers

This section covers the MIPS instruction set.

Cortex -A9 MPCore. Technical Reference Manual. Revision: r2p2. Copyright ARM. All rights reserved. ARM DDI 0407F (ID050110)

ARM System Design. Aim: to introduce. ARM-based embedded system design the ARM and Thumb instruction sets. the ARM software development toolkit

Compiler toolchain ARM. Developing Software for ARM Processors. Version Copyright ARM. All rights reserved. ARM DUI 0471I (ID012213)

The Next Steps in the Evolution of Embedded Processors

ARM Cortex-A9 ARM v7-a. A programmer s perspective Part1

The ARM Cortex-M0 Processor Architecture Part-2

Designing with NXP i.mx8m SoC

Cyclone V SX, ST and SE SoC Device Errata

The ARM Cortex-A9 Processors

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

Universität Dortmund. ARM Architecture

ARM Processor Fundamentals

Cortex -A5 MPCore. Technical Reference Manual. Revision: r0p0. Copyright 2010 ARM. All rights reserved. ARM DDI 0434A (ID052910)

Job Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems

Intel Arria 10 SX Device Errata and Design Recommendations

The ARM Cortex-M0 Processor Architecture Part-1

Chapter 15 ARM Architecture, Programming and Development Tools

EEM870 Embedded System and Experiment Lecture 3: ARM Processor Architecture

Systems Programming and Computer Architecture ( ) Timothy Roscoe

Application Note. Migrating from IA-32 to ARM. Document number: ARM DAI 0274 Issued: October 2011 Copyright ARM Limited 2011

Introduction to the ARM Architecture. or: a loose set of random facts blatantly copied from tech sheets and the Architecture Ref.

Chapter 5 (Part II) Large and Fast: Exploiting Memory Hierarchy. Baback Izadi Division of Engineering Programs

ARM Cortex core microcontrollers 3. Cortex-M0, M4, M7

Lecture 5. KVM for ARM. Christoffer Dall and Jason Nieh. 5 November, Operating Systems Practical. OSP Lecture 5, KVM for ARM 1/42

The CPU Pipeline. MIPS R4000 Microprocessor User's Manual 43

Building blocks for 64-bit Systems Development of System IP in ARM

Transcription:

Cortex-A15 MPCore Software Development תיאור הקורס קורסDevelopment Cortex-A15 MPCore Software הינו הקורסהרשמי שלחברת ARM בן 4 ימים, מעמיקמאודומכסהאתכלהנושאיםהקשוריםבפיתוחתוכנה לפלטפורמותמבוססותליבתMPCore.Cortex-A15 הקורס מכסהאת ארכיטקטורתהמעבד, סטהפקודות, טיפולבחריגות/פסיקות, ניהולזיכרון, סנכרון תהליכים, תכנותבשפת C, ניהול,CACHE תהליך,BOOT שימושב- BARRIERS. בסיום הקורס יזכה המשתתף לקבל תעודה מטעם.ARM אורך הקורס 4 ימים הקורסהינומעשיוכולל תרגולשל חלקמהנושאיםהנלמדים מטרות שיושגו בסיום הקורס הכרות ארכיטקטורת ARMv7- הכרותארכיטקטורת Cortex-A15 MPCore הכרותסטהפקודותשלמעבדARM טיפולב- Exceptions הכרותסוגיומבני זיכרוןCache ותחזוקתם.1.2.3.4.5

שימושבזיכרוןוירטואליוב- MMU כתיבתקודC למעבדARM ביצועBooting למעבדMPCore Cortex-A15 מימושתהליכיסינכרוןבעזרת mutexes/semaphores שימושב- Barriers.6.7.8.9.10 11.תכנות מנגנוןטיפולהפסיקות 12.שימושבמאיץ Neon לעיבודאותותונקודהצפה 13.ניהולהספקיםומצבי המעבד Debug.14 שלהתכנון 15.שימושבמנגנון Trustzone לנושאאבטחתמידעוסודיות 16.וירטואליזציה 17.שילובמערכתהפעלהבמעבד אוכלוסיית היעד מהנדסי תוכנה המעוניינים לתכנת פלטפורמות מבוססות.Cortex-A15 MPCore דרישות קדם ידעבארכיטקטורות מעבדים ידעבשפת C ואסמבלר ניסיוןבפיתוחמערכותמשובצותמחשבברמתתוכנה כלי פיתוח וחומרי לימוד בקורס חומריהלימודשפותחוע"יחברת ARM (חומריםרישמייםכוללמעבדות) סביבתפיתוחשל ARM למעבד (DS5)

תוכנית הלימוד ARM Processor Cores ARM System Design Introduction to the ARM Architecture ISA Assembly Exception Handling Cortex-A15 MPCore Overview Caches and Branch Prediction Using the MMU Writing C for ARM Booting a Cortex-A15 MPCore Barriers Synchronization Cache coherency Programming the GIC Cortex-A15 power management Debug and trace Neon Overview Introduction to TrustZone OS Support נושאים עיקריים: Day #1 Introduction to the ARM architecture Architecture Versions o Introduction to the ARM architecture o Development of the ARM architecture o ARM Cortex processors (A/R/M) Registers & Instruction Sets o Data sizes and instruction sets o The ARM register set o Program status register o ARM, Thumb. Thumb2, ThumbEE, Jazelle o Endianness o Assembler syntax examples o Floating point and NEON o AAPCS Exception Model o Processor modes o Banking of registers

o Taking an exception o Vector table Memory Model o Memory model overview o Memory types (Normal/Device/Strongly Ordered) o Memory hierarchy example o Data alignment Coprocessors o Coprocessors overview o CP15 example o PMU Architecture Extensions o TrustZone o Virtualization o Jazelle ARMv7-A/R ISA Overview ARM Assembler File Syntax Load/Store Instructions o Single/Double register data transfer o Addressing memory o Pre and post-indexed addressing o Multiple register data transfer Data Processing Instructions o Arithmetic, logical, move instructions o Shift/Rotate operations o The flexible second operand o Instructions for loading constants o Multiply/Divide o Bit manipulation instructions o Byte reversal Flow Control Instructions o Branch instructions o Interworking o Compare and branch if Zero o Condition codes and flags o If-Then instruction o Supervisor call instruction (SVC) Miscellaneous Instructions o Coprocessor instructions o PSR access o Breakpoint instruction (BKPT) o Wait for interrupt instruction (WFI) o NOP instruction o Wait for event & send event instructions (WFE & SEV) DSP Instructions

o SIMD o Saturated maths and CLZ o Data packing/unpacking Exception Handling in Details Introduction o Exception handling process o The ARM register set and modes o Exception priorities o Vector table o Link register adjustments o Returning from exceptions o Exception state & Endianness o Non-makable fast interrupt o Low latency interrupt Interrupts o Interrupt & interrupt handler example o Interrupt pre-emption o Issues with re-enabling interrupts o Change processor state (CPS) instruction o Stack issues o Nested interrupt example o FIQ vs IRQ o Interrupt controllers Abort Handlers o Prefetch and data aborts o Data abort types (internal/external, precise/imprecise) o Identifying the abort source o Example data abort handler SVC Handlers o What are SVC used for? o Example SVC handler o Example SVC usage in an OS Undef Handlers o Undefined instruction o Example Undef handler Reset Handlers

Cortex-A15 MPCore Overview Day #2 Cortex-A15 Introduction o Cortex-A15 MPCore block diagram and features o Configuration options o Support for ARMv7-A architecture o Performance Monitoring Unit (PMU) o Software support New Features in Cortex-A15 o LPAE o VFPv4 o Virtualization o ACE o Debug updates o Generic timer architecture Cortex-A15 Caches and Branch Prediction Caches in Cortex-A series processors Level 1 and level 2 cache interaction Inner and outer cache policies Speculative prefetch Preload L1 memory system buffers When should I enable caches? Non-deterministic cache behavior Cache maintenance and coherency Branch prediction Cortex-A15 MMU Memory Management o MMU overview o LPAE Short-Descriptor format o Level one and level two tables o First level translation table o First level short descriptor format o Second level translation table o Second level short descriptor format Long-Descriptor format o Page table walk o Long descriptor format table entry

o Long descriptor format block (page) Memory Types & Attributes o Memory types (normal, device, strongly ordered) o Memory type access order o Instruction accesses o Hierarchical attributes Using the MMU o MMU registers o Enabling the MMU o Memory faults o Synchronous and asynchronous aborts o Security extensions C for ARM Parameter passing o Parameter passing o Passing more than 4 parameters o Parameter alignment Floating point linkage o HW and SW floating point linkage o Floating point linkage example Alignment o Global data layout o Unaligned accesses o Packing and alignment of structures o Alignment of pointers Coding Considerations o Size of local variables o Division o Base pointer optimization o Using volatile Booting a Cortex-A15 Processor Overview o Booting considerations o Bare metal vs OS o Warm vs cold reset o Overview of cold boot process o Overview of warm reset process Booting a single CPU o Reset state o Vector table initialization o Stack initialization o Basic memory system initialization o VFP/NEON initialization

o TrustZone Booting a cluster Day #3 Understanding Barriers Overview o Memory model o Why do I care about access order? o Barriers (DMB, DSB, ISB) Data Barriers o DMB vs DSB o DMB instruction example o DSB instruction example o Mail box example o Speculation across barriers Instruction Barriers o ISB instruction o CP15 example o Translation table change example o Self-modifying code example Compiler Barriers Synchronization The Need for Atomicity The Race for Atomicity Critical Sections Effective Atomicity LDREX and STREX Instructions Example lock() and unlock() Programs Still Have to be Smart Multi-Thread Mutex Example Coherent Multi-Core Synchronization in a Cluster Example Non-Coherent Multi-Core Memory Attributes Context Switching Exclusive Reservation Granule

Cortex-A15 Cache Coherency L1 & L2 Cache Coherency and Maintenance o Cache maintenance o Coherency operations o Point of Unification (PoU) o Point of Coherency (PoC) o PoU vs PoC o Ordering of maintenance operations o Ordering between I/D/Table walk o Maintenance operations list MPCore Coherency o Coherency management o Maintenance operations broadcast o Accelerator Coherency Port (ACP) o Coherency example o Coherent transactions using MESI Generic Interrupt Controller Programming GIC Overview o GIC architecture o Sources of interrupt (SGI, PPI, SPI) Distributor and CPU Interfaces o Register interfaces o Distributor interface o CPU interface o Programming guidelines How to Enable and Configure Interrupts o Enabling the IC o Interrupt configuration How to Handle Interrupts o Interrupt states o Taking an interrupt o Which CPU services an SPI? o Priority mask register o Interrupt priority registers o Pre-emption o Nesting interrupts How to Send Software Interrupts o SGI capability o Sending a SGI o Receiving a SGI Security Extensions o Group 0 and Group 1

o Acknowledging interrupts o Priority and banking Interrupts IDs on Cortex-A15 Cross-Cluster MP Programming Cross-Cluster Introduction o ACE functionality o big.little concept o CCI-400 and system coherency o Managing coherency with CCI-400 o Distributed virtual memory o CCI-400 programmer s model Multi-Cluster Configurations o The ARM big.little subsystem o Software execution models o Heterogeneous multi-processing o Principles of task migration o The mechanics of task migration Miscellaneous Considerations o Cluster booting o System interrupts o Tools issues Day #4 Power Management for Cortex-A Processors Power Overview o Power consumption o Example power contributions o Power reduction techniques o Example power domains o Additional power modes/interconnect o Energy cost Processor Power Modes o ARM processor power modes o Processor standby mode o Standby use cases and considerations o Using WFE to enter standby o Processor power down o Power down example o Barriers and power down modes o Entering power modes o Point of no return

Multiprocessor and System Power Modes o Multiprocessor power modes o L2 cache power considerations o Power down mode examples o Preparing the L2 cache for power down o SoC and system power down Debug Debug Overview o Why debug? o Types of debug (invasive/non-invasive) o How close to reality? Invasive Debug o GDBServer vs Bare metal o Debug infrastructure o How do I access debug logic? o Debug registers o Debugger invasiveness o Debug events o Halt vs Monitor mode debugging o Viewing memory o Debugger impact on caches o Vector catch o Instruction breakpoint types o Breakpoint comparison o Embedded cross trigger- CTI o Debugger semi-hosting support Non-Invasive Debug (PMU and Trace) o Performance monitoring hardware o PMU configuration for Cortex-A o PMU example code o Are my numbers meaningful? o A CoreSight trace system o Trace introduction o Other trace sources o Trace sinks (ETB, TPIU) NEON Overview NEON Introduction o What is NEON? o Example SIMD instruction o Why program for NEON? o Power considerations o NEON registers o NEON hardware details

o Floating point o Enabling NEON in software o NEON status registers NEON Instruction Set Overview o Instruction syntax o Instruction modifiers o Instruction shapes o NEON data types o Specifying data types o NEON sample instructions NEON Software Support o How to use the NEON coprocessor o What is Project Ne10? o What is OpenMAX? o Automatic vectorizing o Tuning C/C++ code for vectorizing o NEON vectorizing example o Intrinsics TrustZone TrustZone Overview o What is TrustZone? o Why do we need TrustZone? o What kind of attacks are there? o What does it add? o TrustZone is not Moving Between Worlds o Moving between Normal and Secure worlds o Vector tables o Asynchronous exceptions no trapping o Asynchronous exceptions trap all o Exception handling example o Interrupt latency Memory System o Memory management o Secure and non-secure memory o Caches and TLBs o Example memory system o Security access violations Debug o Debug configuration Software o Booting and the Chain of Trust o Trusted services o How do you make use of a service?

Virtualization Virtualization Overview o What is virtualization o Full vs para-virtualization Overview of Virtualization Extensions o ARMv7-A virtualization extensions o New Hypervisor mode (HYP) overview Memory Management o 2 stage translation o Hypervisor s translation tables o Virtual Machine ID (VMID) Exception Handling o Exception trapping o Hypervisor s vector table o Asynchronous exceptions no trapping o Asynchronous exceptions trapping o Synchronous exceptions o SMCs o Instruction trapping o Instruction trap example o Virtual exceptions o Virtualization of an interrupt o GICv2 Virtual Interrupts o Virtual interrupt example OS Support Multi-Processing o What is multi-processing? o Symmetric Multi-Processing (SMP) o Asymmetric Multi-Processing (AMP) o Which CPU am I? o Cortex-A15 private memory region o Sharing translation tables Translation Tables o Dual translation tables o Unused memory o Translation table change example o Translation table memory use o Long-descriptor page table sizes o Caching translation tables o TLB entries Context Switching o Context o Address Space Identifiers (ASIDs)

o Thread switching using ASIDs o ASID with short-descriptor format o Other ASID considerations o Exclusive monitor o Migrating a thread across CPUs o VFP/NEON Timers o Timers in an MP system o System timer in Cortex-A15 MPCore