UA2 Lez02 La CPU - Appunti PDF
Document Details
Uploaded by CharismaticPoincare6260
Tags
Related
- Week 5 - CPU, GPU and Registers PDF
- Computer Organization and Architecture Reviewer PDF
- Module 3 PDF
- Computer Organization and Architecture Lecture Notes Fall 2024 - Mansoura University PDF
- University of Buckingham Introduction to Computer Systems Lecture 5 PDF
- IM Computer Systems Organization - PDF
Summary
These notes provide an overview of computer architecture, focusing on the Central Processing Unit (CPU), including its components and functions. The material details the fetch-decode-execute cycle and different types of CPU designs.
Full Transcript
UNITÀ DI APPRENDIMENTO Le architetture dei sistemi di elaborazione 2 UNITÀ DI APPRENDIMENTO La CPU 2 LEZIONE 2 IN QUESTA LEZIONE IMPAREREMO: a a definire il...
UNITÀ DI APPRENDIMENTO Le architetture dei sistemi di elaborazione 2 UNITÀ DI APPRENDIMENTO La CPU 2 LEZIONE 2 IN QUESTA LEZIONE IMPAREREMO: a a definire il a riconoscere funzionam connettere il ruolo di ento e il una CPU CPU, ALU, ruolo del sulla Unità di chipset e motherboa Controllo e dei BUS di rd BUS espansione IL MICROPROCESSORE Il microprocessore Le tre unità svolge fondamenta fondamentalmente li della CPU due funzioni sovrintende a tutte le l’unità di controllo (CU, operazioni del sistema Control Unit) generando i segnali l’unità aritmetico necessari al logica (ALU, funzionamento dei ArithmeticLogic Unit) circuiti a esso Registri di memoria collegati esegue i calcoli IL CICLO MACCHINA si preleva dalla memoria il codice macchina dell’istruzione da eseguire questa operazione viene eseguita dalla Control Unit L’istruzione prelevata viene trasferita in un registro specifico e quindi codificata (tradotta) la CPU emette i segnali necessari all’esecuzione dell’istruzione IL CICLO MACCHINA Il ciclo macchina può essere idealmente suddiviso in quattro parti: 1. fase di Fetch dell’istruzione 2. fase di Decode dell’istruzione 3. fase di Fecth degli operandi 4. fase di Execute IL CICLO MACCHINA Ogni ciclo macchina viene eseguito molto velocemente e in maniera ciclica a sua volta con altri cicli macchina, fino a un reset FETCH DELL’ISTRUZIONE La fase in cui la CPU deve reperire l’istruzione da eseguire Fetch significa prelevamento La CPU deve dialogare con la memoria RAM per ottenere il codice macchina dell’istruzione da eseguire Dopo aver letto il la CU legge la cella di memoria il cui codice op. dalla indirizzo è memoria, memorizzato nel incrementa il Program Counter contenuto del Program Counter perchè “punti” all’istruzione successiva DECODE DELL’ISTRUZIONE Fase interna alla CPU Interpretazione dell’istruzione L’interpretazione può avvenire il codice attraverso circuiti attraverso macchina logici predisposti microistruzioni viene secondo la logica contenute in codificato in cablata dal circuito un’apposita parte della operazioni le funzioni eseguibili ROM secondo la logica da eseguire sono prefissate microprogrammata. da parte fisicamente Si cerca nella ROM la della CPU sequenza di passi elementari di cui è composta l’istruzione da interpretare FETCH DEGLI OPERANDI Dalla codifica dell’istruzione il processore riconosce se è necessario prelevare dalla memoria o da un registro interno un altro dato per completare l’esecuzione dell’istruzione viene eseguita un’operazione di lettura, dalla memoria o da un registro, chiamata appunto Fetch degli operandi EXECUTE DELL’ISTRUZIONE Nella fase di execute la CU invia segnali per l’esecuzione di ogni istruzione da parte della CPU che: 1. Preleva il codice macchina dell’istruzione di indirizzo uguale al contenuto del registro PC e inseriscilo nel registro IR 2. Incrementa il contenuto del registro PC per “puntare” all’istruzione seguente 3. Decodifica l’istruzione appena prelevata. 4. Se l’istruzione necessita di operandi determina dove si trovano (memoria oppure registri) 5. Se necessario preleva dalla memoria gli operandi e ponili nei registri della CPU 6. Esegui l’istruzione 7. Salva il risultato in un registro o in una cella di memoria 8. Torna al punto 1 ESEMPIO il valore 05h è memorizzato nella cella di indirizzo 000Ah, due celle più a destra rispetto all’indirizzo base 0008h LA MEMORY DUMP La memory dump identifica lo stato in cui si trovano le celle della memoria in un determinato momento In alcuni casi viene anche mostrato il corrispettivo ASCII del contenuto della singola cella di memoria OPERAZIONI SVOLTE DALLA CPU Per effettuare la somma tra il contenuto della cella di memoria di indirizzo [000Ah] e il contenuto del registro AL il processore esegue l’istruzione assembly OPERAZIONI SVOLTE DALLA CPU FETCH Viene prelevata l’istruzione all’indirizzo contenuto nel registro PC (0100h) E’ una sequenza di 6 byte che rappresentano il codice macchina dell’istruzione (00 05 0A 00 00 00) Il codice dell’istruzione viene inserito nel registro IR (Instruction Register) DECODE Viene decodificata l’istruzione il cui codice macchina è presente nel registro IR FETCH DEGLI OPERANDI Viene prelevato il contenuto della cella 000Ah, cioè 05h EXECUTE Il valore recuperato dal passo precedente (05h) viene sommato con il contenuto del registro AL (poniamo che contenga 0Fh) Il risultato viene posto nuovamente nella cella di indirizzo 000A che conterrà 14h al termine dell’esecuzione dell’istruzione L’operazione richiede più cicli di data path DATA PATH Il data path è una sezione della CPU che raggruppa l’ALU e i registri Il passaggio di due operandi attraverso l’ALU e la memorizzazione del risultato in un nuovo registro viene detto ciclo di data path IL CLOCK Ogni ciclo macchina è scandito da un temporizzatore (clock), oscillatore al quarzo che emette segnali a intervalli di tempo regolari Il numero di cicli macchina eseguiti in un secondo di tempo prende il nome di Hertz (Hz) ARCHITETTURA INTERNA DELLA CPU I REGISTRI INTERNI Memoria temporanea volatile Il programmatore ha accesso ad alcuni di essi Sono presenti nella CPU e servono per trasferire dati tra celle di memoria, dato che non è possibile trasferire dati tra memoria e memoria La dimensione dei registri si esprime in bit e dipende dall’architettura specifica della CPU (ISA – Instruction Set Architecture) MDR (MEMORY DATA REGISTER) È un registro interno collegato direttamente al BUS dati attraverso un buffer bidirezionale tri-state Buffer bidirezionale tri-state è un circuito, che collega due componenti in due direzioni e può rappresentare oltre a 0 e 1 un terzo stato chiamato alta impedenza Non è visibile al programmatore, contiene i dati che la CPU invia/riceve dalla memoria e I/O MAR (MEMORY ADDRESS REGISTER) Registro interno collegato direttamente al BUS indirizzi, non visibile al programmatore, contiene indirizzi necessari alla selezione delle celle o dei dispositivi I/O Durante la fase di fetch di un’istruzione il MAR contiene l’indirizzo della locazione di memoria in cui si trova l’istruzione che deve essere codificata Nella fase di execute, contiene l’indirizzo dell’operando che deve essere letto dalla RAM IR (INSTRUCTION REGISTER) È il registro interno che riceve il codice operativo dell’istruzione prelevata durante la fase di fetch È invisibile al programmatore e contiene temporaneamente il codice operativo dell’istruzione durante la sua codifica IL MODELLO DI PROGRAMMAZIONE E’ l’insieme degli elementi accessibili al programmatore tramite assembly e ambiente di debug È formato dai registri accessibili e dall’ALU Le trasformazioni dei dati contenuti nei registri vengono effettuate attraverso elaborazioni dell’ALU PC (PROGRAM COUNTER) Registro interno (nelle CPU Intel è IP - Instruction Pointer) che contiene, in ogni fase di avanzamento del programma, l’indirizzo di memoria in cui si trova l’istruzione successiva da eseguire REGITRO DELLE FLAG (PSW -PROCESS STATUS WORD) Anche chiamato registro delle flag (bandiere), ciascun bit fornisce informazioni sul risultato delle operazioni aritmetico- logiche dell’ultima istruzione eseguita L’ALU, a ogni operazione aritmetico-logica, aggiorna il contenuto del registro PSW Le informazioni del PSW sono essenziali per effettuare la selezione all’interno programmi REGISTRO DELLE FLAG (PSW) CU (CONTROL UNIT) È il blocco che invia i comandi esecutivi all’ALU in base alla decodifica dell’istruzione, e decide l’incremento dell’indirizzo di memoria contenuto nel registro PC in modo da predisporsi all’esecuzione dell’istruzione successiva ALU (ARITHMETIC LOGIC UNIT) Esegue le trasformazioni sui dati espressi in binario Interviene su due operandi che possono essere contenuti nei registri interni o provenire dalla memoria attraverso l’MDR e produce un risultato che può essere salvato su un registro interno o in memoria attraverso l’MDR ALU (ARITHMETIC LOGIC UNIT) Se vogliamo confrontare due caratteri alfabetici tra loro, siccome vengono codificati secondo la tabella ASCII in ordine progressivo (A = 41h, B = 42h, C = 43h... a = 61h, b = 62h, c = 63h…), l’ALU effettua una semplice operazione di sottrazione tra i due valori: il settaggio del Flag di Carry indicherà se il primo carattere è maggiore o minore del secondo ARCHITETTURE RISC E CISC Due tecnologie di riferimento per la costruzione di microprocessori: CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) PROCESSORI CISC Numero elevato di istruzioni diverse, e complesse Compito del programmatore semplificato Programmi più compatti che utilizzino minore memoria Memoria ROM contenente microcodici, per eseguire azioni elementari nel microprocessore PROCESSORI RISC Forte riduzione del numero di istruzioni per conciliare la velocità del icroprocessore con l’esecuzione di queste Il fine principale della struttura RISC è quello di produrre processori ad alta velocità e dal costo ridotto, data la minore complessità del progetto CORE DELLA CPU E’ il nucleo elaborativo della CPU, il resto è chiamato package, i pin di contatto si innestano sul socket Architetture che presentano più nuclei nello stesso package sono chiamate MultiCore Architectures: sfruttano il parallelismo cioè elaborazione istruzioni da diversi core LA MOTHERBOARD ZIF (ZERO INSERTION FORCE) INSERIRE UNA CPU NEL SOCKET ZIF INSERIRE UNA CPU NEL SOCKET ZIF INSERIRE UNA CPU NEL SOCKET ZIF INSERIRE UNA CPU NEL SOCKET ZIF CHIPSET NORTHBRIDGE E SOUTHBRIDGE Il Chipset è lo snodo tra la CPU e le periferiche, formato da due diversi circuiti integrati: NorthBridge SouthBridge IL CHIPSET NORTHBRIDGE Il NorthBridge è connesso alla memoria RAM e alla CPU tramite il FSB (Front Side Bus) e a tutti i dispositivi più veloci (ad es. il BUS PCI-express) E’ anche chiamato MCH (Memory Controller Hub) e ha dimensioni maggiori rispetto al southbridge IL CHIPSET SOUTHBRIDGE Il SouthBridge, anche chiamato ICH (I/O Controller Hub), è connesso con: controller dei dischi fissi, clock di sistema, porte di I/O, slot PCI e ISA ecc…) il BUS LPC (Low PinOut Controller) collega il SouthBridge con dispositivi particolarmente lenti come ad esempio la memoria Flash che contiene il BIOS oppure le porte seriali e parallele I BUS ISB E BSB Il BUS che collega il chipset Northbridge con il chipset Southbridge si chiama ISB (Internal Side Bus) Il BSB (Back side Bus) collega direttamente la CPU alla memoria Cache di secondo livello (L2) SCHEMA DI COLLEGAMENTO DEI CHIPSET BANDWIDTH La CPU trasmette i dati al northbridge si secondo una certa Bandwidth (banda passante) data da: byte della dimensione del BUS del processore per la frequenza di clock (cicli al secondo) per il numero di data transfer a ogni ciclo ESEMPIO CALCOLO DI BANDA PASSANTE (BANDWIDTH) Per esempio, un sistema con: processore a 16 bit (2 byte), FSB a 100 MHz, due trasferimenti a ciclo, possiede una bandwidth di: 2 (byte) × 100 (FSB) × 2 (tc) = 400 MB/s (Megabyte al secondo).