Architettura degli ARM

Slides:



Advertisements
Presentazioni simili
Memoria Virtuale in Linux
Advertisements

Ambiente Java.
A. FERRARI MATERIALE DALLA DISPENSA DI P. OLLARI
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Gestione Input Output A. Ferrari.
Perché le interruzioni?
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica Corso di Sistemi ad elevate prestazioni –
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Massa Laura Mela Enrica
Ottimizzazione statica del codice per processori pipelined Canella Matteo & Miglioli Filippo.
Chiamate a Procedure. Per lesecuzione di una procedura, un programma deve eseguire i seguenti sei passi: mettere i parametri in un posto dove la procedura.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Caratteristiche principali dell’architettura del processore MIPS
Il processore PD32.
Gestione delle subroutine
Corso di Informatica Applicata - Lezione 3 - © 2005 Saverio De Vito Corso di Informatica Applicata Lezione 3 Università degli studi di Cassino Corso di.
Struttura dei sistemi operativi (panoramica)
Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.
memoria gestita staticamente:
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
Architettura degli elaboratori
ELETTRONICA DIGITALE (II Parte)
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Introduzione al linguaggio assemby del microprocessore a parte
Architettura degli elaboratori
I vettore interruzioni
CODIFICA Da flow-chart a C++.
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Unità centrale di processo
Architettura di una CPU
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano introduzione alle architetture superscalari Come.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione.
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
WATCHDOG TIMER E’ un oscillatore interno al  C, ma indipendente dal resto dei circuiti, il cui scopo è quello di rilevare eventuali blocchi della CPU.
Calcolatori Elettronici Il Processore
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Gestione dei dispositivi di I/O:
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
Sistemi Elettronici Programmabili
Architettura di un calcolatore e linguaggio macchina.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Fabio Casale, Matteo Sosso
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Introduzione ai Microcontrollori Una prima definizione I microcontrollori sono utilizzati per gestire segnali in ingresso (input utente o da sensori),
Corso di Laurea in Informatica Architettura degli elaboratori a.a ISA e Asm: esempi e suggerimenti.
Controllo e microprogrammazione
Transcript della presentazione:

Architettura degli ARM by Giuseppe Ranieri

Un po’ di storia dell’ ARM … Nato da un progetto dell’ Acorn iniziato nel 1983 dopo il grande successo del BBC Micro rilasciato nel 1982 Siccome l’Acorn era una azienda non comparabile alle aziende americane cercò di sviluppare un processore che soddisfacesse i requisiti interni dell’azienda e che avesse un basso costo di produzione da questo progetto nacque l’ARM1 usato solo per scopi interni Nel 1987 venne lanciato commercialmente la prima piattaforma ARM Archimedes in versione ARM2 8mhz

… Un po’ di storia dell’ ARM La VLSI Technology Inc compagnia partner della Acorn nello sviluppo dell’ARM convince una fetta di mercato ad utilizzare questo tipo di processori a basso costo 1989 esce l’ARM3 versione potenziata dell’ ARM2 integrando 4kbit di cache e un frequenza di clock di 25mhz Nel 1990 nasce la ARM Ltd composta da Acorn VLSI e Apple …..

Perchè l’ARM è cosi diffuso? E’ uno dei processori con più licenze di sviluppo esistente E’ usato in cellulari palmari per le sue performance e bassi consumi Ha estensioni interessanti come Jazelle

Dati sull’ARM ARM: 32-bit RISC-processor core (istruzioni a 32-bit ) 37 registri di interi a 32-bit (16 ) Pipeline (ARM7: 3 stadi) Cache (a seconda dell’implementazione) Von Neuman-type bus structure (ARM7), Harvard (ARM9) Tipi di dato 8 / 16 / 32 -bit 7 modi di operare (usr, fiq, irq, svc, abt, sys, und) Struttura semplice -> buon rapporto fra velocità / consumo

CISC e RISC: breve confronto C.I.S.C. : Complex Instruction Set Computing in voga quando c’era bassa disponibilità di memoria facilità nel debugging dell’assembler istruzioni di alta complessità basso numero di registri R.I.S.C. : Reduced Instruction Set Computing più semplice scalabilità della frequenza istruzioni implementate in modo efficiente alto numero di registri maggiore efficienza

Instructions set supportati Sono due più varie estensioni: ARM Thumb Altre estensioni (es: Jazelle)

Thumb Instruction set È un sottoinsieme delle istruzioni ARM ricodificato È composto da istruzioni di 16 bit(invece di 32) Non contiene alcune istruzioni per gestire le eccezioni

Tipi di Dato byte halfword.(allineati a 2byte.)

Registri L’ARM ha un set di 37 registri 31 per usi generali 6 registri di stato In ogni istante sono visibili sempre 15 registri di tipo generale e uno o 2 registri di stato

Registri I primi 7 registri (R0-R7) sono unbanked (puntano sempre alle stesse locazioni fisiche) I successivi registri da R8 a R14 sono banked (a seconda della modalità puntano a locazioni fisiche diverse)

Registri

Registri generici I primi 4 registri R0 – R3 sono normalmente usati per il passaggio di parametri Normalmente registri da R4 a R8 , R10 e R11 sono utilizzati per le variabili locali R12 è un registro speciale usato dai linker può essere anche usato per tenere valori temporanei

Load e Store Esistono 2 set di istruzioni load e store: uno che serve per caricare parole da 32 bit o byte senza segno un altro che serve per caricare “mezzeparole” da 16 bit con e senza segno o byte

Load e Store: tipi di indirizzamento In entrambi i tipi di istruzioni il modo di indirizzamento è formato da due parti: il Base Register l’offset L’offset può essere di tipo Immediato Registro Registro Scalato

Load e Store: Offset L’offset precedentemente calcolato può essere utilizzato in tre modi differenti: Offset Pre-Index Post-Index

Load e Store: Formato Istruzione

Load e Store: Esempi

Registri di stato CPSR (SPSR) current program status register n: 1 se il risultato dell’operazione è positivo 0 se negativo z: 1 se il risultato è 0, 0 altrimenti c: In un addizione 1 se cè un unsigned overflow 0 altrimenti In una sottrazione 0 se cè unsigned underflow 1 altrimenti nello operazioni che fanno shift è settato come l’ultimo bit shiftato v: 1 se cè un signed overflow /signed underflow o altrimenti q: utilizzato per l’overflow delle istruzioni DSP

Registri di stato: Control Bit I, F, T, M[4:0] sono i bit di controllo I e F servono per abilitare disabilitare gli interrupt T serve per passare dal set di istruzioni ARM a set di istruzioni Thumb M[4:0] determinano la modalità di stato del processore

Modalità del Processore

Modalità del Processore Questa è la tabella dei set di registri attivi nei vari modalità del processore

Modalità del Processore Sono le seguenti: User (usr) modalità standard di esecuzione del processo FIC (fic} modalità privilegiata per gestione di flussi dato ad alta velocitá IRQ (irq) modalitá privilegiata per la gestione degli interrupt Supervisor (svc) modalità privilegiata per l'esecuzione del Sistema Operativo Abort (abt) implementa la memoria virtuale e la protezione della memoria System (sys} modalità privilegiata per l'esecuzione dei task del S.O. und serve per il supporto all’ emulazione software dei coprocessori

Cos’ è Jazelle Una tecnologia per l’esecuzione del bytecode direttamente via hardware

Jazelle continua Ha i seguenti caratteristiche: è una semplice modifica al codice della JVM e non ne incrementa le dimensioni ha una resa di basso consumo dell’oltre 87% in meno di una pura emulazione anche rispetto alla JIT aumenta le prestazioni del codice java di oltre 95% è implementata via hardware in soli 12mila transistor è supportata dall’ ultima versione del core ARM v11 supporta in hardware 140 istruzioni java le restanti 94 le emula con routine ARM

Jazelle Architecture

La modalità Jazelle è stato aggiunto un bit al CSPR register il bit J: 24 J è 1 quando ci si trova in modalità di esecuzione java

La modalità Jazelle Per poter entrare in modalità Jazelle è stata introdotta una nuova istruzione: BXJ. Indica il P.C. java da cui partire o continuare che verrà settato nel registro R15 del processore in modalità Jazelle

Uso dei registri in Modalità Jazelle R0-R3 gestione dello stack delle espressioni java R4 puntatore a this R5 puntatore agli Software Handler R6 Java Stack Pointer R7 Puntatore alle variabili Java R8 Puntatore a Java Constant Pool R9-R11 riservati alla JVM R12,R14 uso libero/ Java return adress R13 Machine stack pointer R15 Java P.C.

Eccezioni Esistono vari tipi di eccezioni supportate dall’ ARM (in ordine di priorità): Reset Data Abort FIQ IRQ Prefetch Abort Undefined instruction SWI

Set di Istruzioni Questo è lo schema riassuntivo dei formati delle istruzioni ARM

Conditional Field Come avete visto prima quasi tutte le istruzioni sono condizionali ovvero iniziano con un campo “cond” che definisce se quella istruzione verrà eseguita o no a seconda dei vari bit di stato del registro CPRS

Conditional Field Formato di una istruzione condizionale Questo è il set di tutti gli opcode di condizione

Branching Il Branching ovvero il controllo del flusso del programma viene fatto con l’ ausilio di alcune speciali istruzioni e del campo Cond: B,BL Branch, Branch and Link BLX Branch with Link and Exchange BX Branch and Exchange Instruction Set

Branching: Esempi

Branching: chiamata e ritorno

Branching: if then else

Branching: Loop

Bibliografia Jumping with Jazelle (http://www.fawcette.com/javapro/2002_06/magazine/columns/javatogo/default.aspx) ARM Architecture Reference Manual (http://www.arm.com) ARM architecture Jazelle™ Technology (http://www.arm.com) The ARM11 Microarchitecture (http://www.arm.com) ARM Architecture Instruction Set Extensions (http://www.convergencepromotions.com/ARM/catalog_04/395.htm) Procedure Call Standard for the ARM® Architecture (http://www.arm.com)