università degli studi di cassino corso di laurea in...
TRANSCRIPT
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Università degli Studi di Cassino
Corso di Laurea in Ingegneria delle Telecomunicazioni
Corso di Calcolatori Elettronici
F.Tortorella
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Contenuti del corso
•Valutazione delle prestazioni
•Modello di programmazione del processore
•Programmazione in linguaggio assembly
•Elementi di progettazione logica dei circuiti
•Aritmetica e circuiti per l’aritmetica
•Architettura dell’unità centrale: data path e controllo
•Pipelining
•Gerarchia di memoria
•Sottosistema di I/O
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
• Settore in rapido cambiamento:– valvole -> transistor -> IC -> VLSI– raddoppio delle prestazioni ogni 1.5 anni:
dimensione della memoriavelocità del processore (progressi nella tecnologia e nell’organizzazione)
• Menù del corso:– come funzionano i calcolatori (fondamenti)– come misurare le loro prestazioni (o come non farlo!)– aspetti che riguardano le attuali architetture (cache,
pipeline)• Perché imparare queste cose ?
– scelte progettuali– progettazione software
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Testo adottato:Patterson, HennessyStruttura, organizzazione eprogetto dei calcolatori2a edizioneJackson Libri
Testi di consultazione:Hamacher, Vranesic, ZakyIntroduzione all’Architettura dei CalcolatoriMcGraw-Hill Italia
Hennessy, PattersonComputer Architecture:A quantitative approach2nd editionMorgan Kaufmann
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Struttura e componenti
Proc
CachesBus
Memory
I/O Devices:
Controllers
adapters
DisksDisplaysKeyboards
Networks
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Modello di von Neumann
Bus di sistema
CPU Memoria Centrale
Memoria di Massa
Interfaccia
Periferica 1
Interfaccia
Periferica 2
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
L’architettura della CPU
Unità di Controllo
Unità Logico
Aritmetica
Mem. Addr. Register
Mem. Data Register
Program Counter
InstructionRegister
Register A Register B
indirizzi dati
La Central Processing Unit è costituita da:• unità
– di controllo– logico-aritmetica
• registri– di uso generale– speciali
• connessioni interne
La CPU è connessa al resto del sistema tramite il BUS (linee indirizzi, dati e controllo).
Read/Write
BUS
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Architettura della workstation Sun Ultra80
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Blocchi funzionali dell’UltraSPARCII
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Un altro sistema basato su microprocessore
SIMKeyboard
Display
TX
SYNT
RX
DUPLEXFILTER
RF12
PSLCD
SYSTASIC
MCU
DSP AUDIO
SYSTEM BLOCKRF BLOCK
reset
reset
reset
clockclock
clock
clock
M2BUS
EBUS
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
What is “Computer Architecture”?
Compiler
OperatingSystem
Firmware
Application
Instruction SetArchitectureI/O systemInstr. Set Proc.
Datapath & Control
Digital DesignCircuit Design
Layout
• Coordination of many levels of abstraction• Under a rapidly changing set of forces• Design, Measurement, and Evaluation
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Computer Architecture = Instruction Set Architecture + Machine Organization
Instruction Set Architecture... the attributes of a [computing] system as seen by the programmer, i.e. the conceptual structure and functionalbehavior, as distinct from the organization of the data flows and controls the logic design, and the physicalimplementation. – Amdahl, Blaaw, and Brooks, 1964
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Instruction Set Architecture (ISA)
• Costituisce un importante livello di astrazione– interfaccia tra il software e l’hardware – definisce la sintassi, il formato delle istruzioni in l.m., ecc.– vantaggi: possibili differenti implementazioni a partire dalla
stessa architettura– svantaggi: può essere di ostacolo a possibili innovazioni
La compatibilità con eseguibili precedenti è così fondamentale ?
• ISA attuali:– 80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS, SPARC, HP
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Instruction Set Architecture: che cosa specifica ?° Formato e codifica dell’istruzione
– come decodificarla?° Locazione degli operandi e del risultato
– memoria, registri, ...?– quanti operandi espliciti ?– come si accede agli operandi in memoria ?– quali possono essere in memoria?
° Tipi e dimensioni dei dati° Operazioni
– quali operazioni sono supportate ?° Istruzione successiva
– jumps, conditions, branches
InstructionFetch
InstructionDecode
OperandFetch
Execute
ResultStore
NextInstruction
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Modelli di programmazione fondamentali • ad accumulatore
LDA AADD BSTA C
• a stackPUSH APUSH BADDPOP C
• a registri generali (registro-memoria)LOAD R1,AADD R1,BSTORE C,R1
• a registri generali (load-store)LOAD R1,ALOAD R2,BADD R3,R1,R2STORE C,R3
istruzioni ad 1 operando
istruzioni ad 0/1 operando
istruzioni a 2 operandI
istruzioni a 2/3 operandI
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Vantaggi dell’organizzazione a registri generali
• l’accesso ai registri è più veloce dell’accesso alla memoria
• il compito dei compilatori è più semplice
es.: (A*B)+(C*D)+(E*F)
• gestione delle variabili
– esecuzione del programma più veloce
– codice più compatto
stackregistri
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
La famiglia Motorola 68000
MC68000 — 16-/32-Bit MicroprocessorMC68EC000 — 16-/32-Bit Embedded ControllerMC68HC000 — Low Power 16-/32-Bit MicroprocessorMC68008 — 16-Bit Microprocessor with 8-Bit Data BusMC68010 — 16-/32-Bit Virtual Memory MicroprocessorMC68020 — 32-Bit Virtual Memory MicroprocessorMC68EC020 — 32-Bit Embedded ControllerMC68030 — Second-Generation 32-Bit Enhanced MicroprocessorMC68EC030 — 32-Bit Embedded ControllerMC68040 — Third-Generation 32-Bit MicroprocessorMC68LC040 — Third-Generation 32-Bit MicroprocessorMC68EC040 — 32-Bit Embedded ControllerMC68330 — Integrated CPU32 ProcessorMC68340 — Integrated Processor with DMAMC68851 — Paged Memory Management UnitMC68881 — Floating-Point CoprocessorMC68882 — Enhanced Floating-Point Coprocessor
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Modello di Programmazione del Motorola 68000 32 bits
168
D3D2D1D0
D7D6D5D4
32 bits
A0
A2A1
A3
A4
A6A5
A7Puntatore Stack utente
Program Counter PSW register
Corso di Calcolatori ElettroniciF. Tortorella Università degli Studi di Cassino
Program Status Word
S M IPM X N Z O CTE
C riportoO overflowZ zeroN negativoX flag di riporto ausiliario
Il byte più significativo è utilizzato dal processore in stato Supervisor
IPM maschera priorità interruptM master/stato di interruptS supervisore/stato di interruptTE autorizza la traccia