Microelettronica Corso introduttivo di progettazione di sistemi embedded

Documenti analoghi
Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica. Introduzione al progetto di un microprocessore. Stefano Salvatori. Università degli Studi Roma Tre.

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Architettura dei calcolatori

Calcolatori Elettronici

Il processore. Istituzionii di Informatica -- Rossano Gaeta

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI

Struttura di un elaboratore

Architettura dei Calcolatori elettronici

Progettazione di circuiti integrati

Struttura del calcolatore

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Componenti di un processore

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Il Processore: l unità di controllo

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Sistemi e reti CPU Concetti di base

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Macchina di von Neumann/Turing

Architettura dei Calcolatori Elettronici

CALCOLATORI ELETTRONICI

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Architettura dei computer

Architettura di un calcolatore: Introduzione parte 2

A.S. 2017/2018 PIANO DI LAVORO PREVENTIVO CLASSE 4Be

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Architettura di un calcolatore: introduzione

Architetture Digitali

Capitolo 5 Elementi architetturali di base

Pinout PD32. Memoria di lavoro esterna. tramite l indirizzo ad esse associato. e possono essere lette o scritte: Le singole celle sono distinguibili

Parte IV. Architettura della CPU Central Processing Unit

Macchina di Riferimento: argomenti

Elementi di Architettura

L architettura di riferimento

Architettura degli Elaboratori

Architettura dei calcolatori

Elementi di informatica

L unità di controllo di CPU a singolo ciclo

Il Processore. Informatica di Base -- R.Gaeta 27

I registri A, B, T contengono dati su cui è possibile eseguire operazioni elementari da parte dell ALU;

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie

Architettura di von Neumann

Architettura di von Neumann

UNIVERSITÀ DEGLI STUDI DI TRIESTE

Progettazione di circuiti integrati

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Sistemi di numerazione

Parte IV. Architettura della CPU Central Processing Unit

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Le operazioni. di somma. e sottrazione

La memoria principale

Elementi di informatica

Architettura hardware

Architettura dei calcolatori

CPU a ciclo multiplo

Informatica A.A. 2006/2007. Università degli Studi di Catania. Giuseppe Nicosia

Struttura logica del processore (1)

Il modello di von Neumann

Il Processore: i registri

Corso di Fondamenti di Informatica Elementi di Architettura

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Richiami sull architettura del processore MIPS a 32 bit

Architettura dei calcolatori I parte Introduzione, CPU

Parte IV Architettura della CPU Central Processing Unit

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura di una CPU

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Architettura del calcolatore

Architettura degli elaboratori

HARDWARE 1.4a: (Processore)

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Calcolo numerico e programmazione Architettura dei calcolatori

La macchina programmata Instruction Set Architecture (1)

Lezione 3: Architettura del calcolatore

Fondamenti di informatica: un po di storia

Architettura dei calcolatori

Calcolatori Elettronici A a.a. 2008/2009

Corso di Informatica

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Componenti principali

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z) Componenti

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Lezione 15. L elaboratore Elettronico

Architettura di un processore basato su registri generali.

Lezione 12: L architettura LC-3

SISTEMI INFORMATIVI AZIENDALI

1.4a: Hardware (Processore)

Richiami sull architettura del processore MIPS a 32 bit

Ciclo del Processore. Memoria

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura dei Calcolatori

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Esercizio n. 7 - Microcodice

INFORMATICA GENERALE

L unità di elaborazione PC: MAR/MDR IR: R0 Rn: TEMP, V, Z

Transcript:

Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2015/2016 Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia. S. Salvatori - Microelettronica aprile 2016 (1 di 63)

Sommario Evoluzione della tecnologia L'esecuzione di una istruzione Programmazione strutturata Architettura e organizzazione di un microprocessore Progetto di un processore minimo livello datapath sintesi FSM Note sul progetto di un set di istruzioni formato tipi modi di indirizzamento S. Salvatori - Microelettronica aprile 2016 (2 di 63)

Intel 4004 S. Salvatori - Microelettronica aprile 2016 (3 di 63)

La tecnologia di oggi S. Salvatori - Microelettronica aprile 2016 (4 di 63)

Livelli di interconnessione S. Salvatori - Microelettronica aprile 2016 (5 di 63)

Un processore di oggi > 10 9 transistor S. Salvatori - Microelettronica aprile 2016 (6 di 63)

Legge di Moore Microprocessor Transistor Counts 1971-2011 & Moore's Law 2,600,000,000 1,000,000,000 Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 Itanium 2 with 9MB cache POWER6 Itanium 2 AMD K10 16-Core SPARC T3 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) 100,000,000 AMD K8 Pentium 4 Barton Atom Transistor count 10,000,000 1,000,000 100,000 68000 curve shows transistor count doubling every two years 80286 80386 80186 80486 AMD K5 Pentium AMD K7 AMD K6-III AMD K6 Pentium III Pentium II Il numero di transistor integrati in un chip raddoppia ogni anno 8086 8088 10,000 8080 8085 6800 Z80 6809 2,300 4004 8008 RCA 1802 MOS 6502 1971 1980 1990 2000 2011 Date of introduction S. Salvatori - Microelettronica aprile 2016 (7 di 63)

Legge di Moore Microprocessor Transistor Counts 1971-2011 & Moore's Law 16-Core SPARC T3 2,600,000,000 1,000,000,000 Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 Itanium 2 with 9MB cache POWER6 Itanium 2 AMD K10 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) Transistor count 100,000,000 10,000,000 1,000,000 100,000 68000 8086 curve shows transistor count doubling every two years 80286 8088 80386 80186 80486 Pentium 4 AMD K5 Pentium AMD K7 AMD K6-III AMD K6 Pentium III Pentium II AMD K8 Barton 10 9 Atom AMD K10 Itanium 2 with 9MB cache POWER6 Itanium 2 Six-Core Core i7 Six-Core Xeon 7400 Dual-Core Itanium 2 AMD K10 16-Core SPARC T3 Core 2 Duo Cell 10-Core Xeon Westmere-EX 8-core POWER7 Quad-core z196 Quad-Core Itanium Tukwila 8-Core Xeon Nehalem-EX Six-Core Opteron 2400 Core i7 (Quad) 10,000 2,300 8085 6800 6809 8080 Z80 8008 MOS 6502 4004 RCA 1802 Pentium 4 1971 1980 1990 2000 2011 AMD K8 Barton Atom Date of introduction S. Salvatori - Microelettronica aprile 2016 (8 di 63)

Il processore come macchina programmabile Un processore è un sistema elettronico di tipo programmabile, nel senso che è in grado di eseguire un programma FF..FF 16 instructions registers address data processor instructions and data memory 00..00 16 S. Salvatori - Microelettronica aprile 2016 (9 di 63)

Descrizione di un algoritmo input/output istruzione blocco di istruzioni condizione inizio/fine connessione S. Salvatori - Microelettronica aprile 2016 (10 di 63)

Programmazione strutturata T cond F cond T F condizione sequenza ciclo while S. Salvatori - Microelettronica aprile 2016 (11 di 63)

Esempio Addizione tra due numeri somma In A In B C A + B Out C end S. Salvatori - Microelettronica aprile 2016 (12 di 63)

Esempio Massimo tra due numeri max In A, B T A > B F max A max B Out max end S. Salvatori - Microelettronica aprile 2016 (13 di 63)

max Esempio Ricerca massimo (-255 per uscire) max 0 A 0 A!= -255 T In A F T max A A > max F Out max S. Salvatori - Microelettronica end aprile 2016 (14 di 63)

Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica aprile 2016 (15 di 63)

Ciclo for i iniz cond. i F T modif. i S. Salvatori - Microelettronica aprile 2016 (16 di 63)

Ciclo for: esempio for(i = 3600000 ; i>0; i ) {... } I 3600000 i > 0 T F i = 3600000; while(i>0) {... i ; } Ciclo while equivalente i i - 1 S. Salvatori - Microelettronica aprile 2016 (17 di 63)

Ciclo per un uc start iniziallizz. true F T funzione end S. Salvatori - Microelettronica aprile 2016 (18 di 63)

4 eventi evento IN = 0 T F Aspetta che l'input esca dallo stato basso return Qui c'è stato il fronte positivo Att.ne che succede se rientro troppo presto? S. Salvatori - Microelettronica aprile 2016 (19 di 63)

4 eventi evento IN = 0 F T return Inizio test fine test Inizio nuovo test IN: S. Salvatori - Microelettronica aprile 2016 (20 di 63)

4 eventi evento IN = 0 T F Aspetta che l'input esca dallo stato basso Qui c'è stato il fronte positivo IN = 1 T F Aspetta che l'input torni nello stato basso return S. Salvatori - Microelettronica aprile 2016 (21 di 63)

start 4 eventi true T out 0 e 0 end e < 4 F T evento e e + 1 out 1 S. Salvatori - Microelettronica aprile 2016 (22 di 63)

Architettura e organizzazione di un microprocessore S. Salvatori - Microelettronica aprile 2016 (23 di 63)

Architettura e organizzazione di un up Un computer general purpose consiste in un sistema denominato: computer digitale con programma memorizzato La tecnologia microelettronica ha consentito di integrare milioni di MOS su un solo chip dando luogo alla nascita di sistemi ultraveloci e di complessità sempre più alta Il progresso nel campo dei up non si è avuto solo grazie al progresso tecnologico Allo sviluppo hanno certamente contribuito le capacità degli ingegneri in grado di definire sia l'architettura che l'organizzazione di un microcomputer S. Salvatori - Microelettronica aprile 2016 (24 di 63)

Architettura e organizzazione di un up Architettura: descrive il computer dal punto di vista dell'utente Set delle istruzioni Registri disponibili Gestione della memoria Gestione delle eccezioni Organizzazione: descrive come è implementata l'architettura Struttura della pipeline Chache Soluzioni hardware... S. Salvatori - Microelettronica aprile 2016 (25 di 63)

Programma memorizzato Un processore è un automa che esegue istruzioni scritte nella memoria programma registers processor address instructions and data instructions data memory dati e programma sono immagazzinati nella stessa memoria le istruzioni sono trattate come i dati (questo può anche portare a un codice che si auto-modifica) FF..FF 16 00..00 16 Lo stato del sistema è determinato dai valori memorizzati in locazioni di memoria e in registri interni al up ogni istruzione definisce le modalità di cambiamento dei dati e quindi dello stato essendo programmabili, i up risultano dispositivi universali, potendo eseguire qualunque algoritmo S. Salvatori - Microelettronica aprile 2016 (26 di 63)

Astrazione nella progettazione I up sono dispositivi che integrano milioni di MOS che operano a velocità elevatissima. I dispositivi commutano milioni di volte al secondo. Il sistema deve operare in modo ripetibile e controllato per non cadere in uno stato imprevisto (collasso). Come può essere progettato un sistema tanto complesso? livelli di astrazione che abbiamo visto S. Salvatori - Microelettronica aprile 2016 (27 di 63)

Elementi fondamentali di una CPU incrementer PC... DECODER AI BUS ESTERNI MAR MDR IR SR FUNZ REG ALU R0 R1 BANCO DI REGISTRI Rn REG S. Salvatori - Microelettronica aprile 2016 (28 di 63)

Il processore minimo Il tipo più semplice di processore prevederà: un PC, Program Counter, per puntare all istruzione da eseguire un IR, Instruction Register, che mantiene il codice dell istruzione da eseguire un registro, Accumulatore, in grado di immagazzinare il dato su cui lavorare in un certo istante una ALU, Arithmetic Logic Unit, in grado di eseguire operazioni elementari una unità di decodifica e controllo che imposterà le azioni in funzione dell istruzione MU0..6 S. Salvatori - Microelettronica aprile 2016 (29 di 63)

Esempio di processore minimo MU0 Per il più semplice processore prevediamo per l'istruzione un formato a 16 bit; Nei 16 bit sono inclusi l'opcode a 4 bit e un campo d'indirizzo a 12 bit: 4 bits opcode 12 bits S istruzioni a 16 bit I dati sono a 16 bit (ALU) 12 bit d indirizzo -> 4096x16 = 8 kbyte di spazio di memoria S. Salvatori - Microelettronica aprile 2016 (30 di 63)

MU0 Il set di istruzioni è anch'esso minimo: Istruzione Opcode Effetto LDA S 0000 ACC := mem 16 [S] STO S 0001 mem 16 [S] := ACC ADD S 0010 ACC := ACC + mem 16 [S] SUB S 0011 ACC := ACC - mem 16 [S] JMP S 0100 PC := S JGE S 0101 if ACC >= 0 PC := S JNE S 0110 if ACC!=0 PC := S STP 0111 stop S. Salvatori - Microelettronica aprile 2016 (31 di 63)

MU0 Il progetto della logica è divisibile in due passi fondamentali: datapath tutti gli elementi che lavorano su parole (acc., PC, ALU, IR) fanno parte del datapath per questi elementi si usa uno stile di progetto di tipo Register Transfer level (RTL), basato su registri, MUX, logica di controllo tutto ciò che non è incluso nel datapath, farà parte della logica di decodifica/controllo il progetto si basa su FSM (Finite State Machine) S. Salvatori - Microelettronica aprile 2016 (32 di 63)