CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

Documenti analoghi
Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Parte 3. Linguaggio Macchina e Assembler

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Linguaggio macchina. Capitolo 10. Linguaggio macchina. n Insieme delle istruzioni (instruction set) che la CPU può eseguire

informatica di base per le discipline umanistiche

Si ringraziano il Dott. Enrico Grisan e il Dott. Fabio Aiolli per il materiale didattico fornito

informatica di base per le discipline umanistiche

Il CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Fondamenti di Informatica A. A / 1 9

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Architettura del Calcolatore

Il processore - CPU (CENTRAL PROCESSING UNIT)

Architettura dell elaboratore

Architettura dell elaboratore

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Architettura del calcolatore

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Tecniche della Programmazione, , Parte1

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

CPUSim. Laboratorio 30/11/2016

Architettura. Argomenti. Modello di Von Neumann. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Antonio Coronato. Modello di Von Neumann

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura di Von Neumann

memoria PSW R1 R2 CPU Struttura logica dell elaboratore unità di controllo ALU unità di ingresso unità organo coordinatore clock di uscita

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Sistemi di numerazione

Programmazione al livello del CPU

Architettura del calcolatore (Seconda parte)

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

Linguaggio Assembly e linguaggio macchina

Struttura di un elaboratore

Architettura hardware

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Architettura degli Elaboratori

Laboratorio di Informatica Ingegneria Clinica Lezione 2/11/2011. Prof. Raffaele Nicolussi

Architettura del Calcolatore

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

Il modello di von Neumann

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Istruzioni e linguaggio macchina

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

Elementi di informatica

Modello di von Neumann

Componenti e connessioni. Capitolo 3

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

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

Architettura di una CPU

Architettura dell elaboratore

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Architettura di von Neumann

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte)

Capitolo 5 Elementi architetturali di base

Componenti principali

Calcolatore: sottosistemi

Architettura di un calcolatore

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Un esempio di ciclo macchina

Architettura e funzionamento del calcolatore

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

Capitolo 2. Elaborazione dei dati. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

Linguaggio Assembly e linguaggio macchina

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Architettura degli Elaboratori

Elementi di informatica

Elaborazione dell informazione

PROBLEMI E ALGORITMI

Abilità Informatiche e Telematiche

Architettura di un Sistema Informatico

Architettura del calcolatore (Prima parte)

Linguaggio Assembly e linguaggio macchina

Rappresentazione dell informazione

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

Architettura dei computer

Informatica teorica Lez. n 10 Macchine a registri. Macchine a registri. Prof. Giorgio Ausiello Università di Roma La Sapienza

Architettura di Von Neumann. Memoria centrale. Memoria centrale (o RAM)

Cenni sull architettura del calcolatore

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte)

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

Architettura dei calcolatori

Architettura di un calcolatore: primi cenni introduttivi

Macchina di von Neumann/Turing

Transcript:

CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura di Von Neumann: programmi e dati risiedono entrambi in memoria RAM Per poter essere eseguiti i programmi devono risiedere nella RAM, e quindi sono codificati digitalmente 2 Elementi della CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina le attivita Registri: memoria temporanea, simili a celle di memoria principale Generici: per gli operandi di un operazione logica/aritmetica, e il risultato Speciali: per operazioni particolari 3 ALU e Registri della CPU L'ALU e' l'unità aritmetico-logica (ALU e' un acronimo dall'inglese) che esegue le istruzioni e gestisce i registri della CPU I registri servono per memorizzare gli operandi per le istruzioni di calcolo dell'alu Registri particolari PC (program counter): contiene l'indirizzo RAM della prossima istruzione da eseguire IR (instruction register): contiene l'istruzione da eseguire 4

3 tipi di istruzioni macchina 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni di controllo: confronto, salto e stop Esecuzione delle istruzioni macchina Le istruzioni vengono eseguite una di seguito all'altra nell'ordine in cui esse sono memorizzate nella RAM Il terzo gruppo di istruzioni (confronto e salto) permette di modificare questo ordine. Istruzioni per trasferimento dati In realta, non e un trasferimento ma una copia Load: da memoria a registro Store: da registro a memoria Istruzioni logico/aritmetiche Operazioni aritmetiche: somma, sottrazione Operazioni logiche: and, or, xor Anche trasferimento tra la memoria RAM e le unita input/output

Istruzioni di controllo Regolano l esecuzione del programma Es.: stop Anche istruzioni di salto: se l istruzione da eseguire non e la successiva nella lista Salto condizionato o no Es.: salta al passo 5, o salta al passo 5 se il valore ottenuto e 0 Divisione di due valori in memoria 1. Carica in un registro un valore in memoria (LOAD) 2. Carica in un altro registro un altro valore in memoria (LOAD) 3. Se questo secondo valore e 0, salta al passo 6 (salto condizionato) 4. Dividi il contenuto del primo registro per quello del secondo registro e metti il risultato in un terzo registro (op. aritmetica) 5. Archivia il contenuto del terzo registro in memoria (STORE) 6. STOP Istruzione macchina Ogni istruzione macchina viene memorizzata in una parola di memoria (32 bit) Due parti (campi): Campo codice operativo: quale operazione eseguire (8bit) Campo operando: diverso a seconda dell operazione (24 bit) Istruzioni di trasferimento registri RAM ALU CPU R 0 R 1 R 2 LOAD STORE RAM 0 1 2 3 4 5

Istruzioni di trasferimento in linguaggio macchina Codici: in binario! codice-op n. registro indirizzo parola RAM 8 bit 4 bit 20 bit LOAD 00000000 STORE 00000001 00000000 0000 00000000000000000010 00000001 0010 00000000000000000101 Istruzioni di input/output: unità I/O RAM WRITE READ 0 1 2 3 4 5 Istruzioni input/output in linguaggio macchina codice-op n. unità indirizzo parola RAM Codici: READ 00010000 WRITE 00010001 8 bit 4 bit 20 bit Unità: INP 0000 (tastiera) OUT 0001 (video) 00010000 0000 00000000000000000010 00010001 0001 00000000000000000101 ISTRUZIONI ARITMETICHE Eseguono somma, differenza, moltiplicazione e divisione usando i registri come operandi C Op ADD 00000010 FADD 00000011 SUB 00000100 FSUB 00000101 MUL 00000110 FMUL 00000111 DIV 00001000 FDIV 00001001 MOD 00001010 R i R j

Istruzioni aritmetiche in linguaggio macchina codice-op I reg II reg 8 bit 4 bit 4 bit inutile 00000010 0011 0001 xxxxxxxxxxxxxxxx ADD R3 R1 Notare che il risultato dell operazione aritmetica viene messo nel primo registro Istruzione di confronto Paragona il contenuto di 2 registri R i ed R j e: se R i < R j mette -1 nel registro RC se R i = R j mette 0 in RC se R i > R j mette 1 in RC Codici: C Cf COMP 00100000 R i R j RC Registro di confronto Istruzione di confronto in linguaggio macchina: Codici: codice-op I reg II reg 8 bit 4 bit 4 bit inutile COMP 00100000 00100000 0010 0101 xxxxxxxxxxxxxxxx Istruzioni di salto in linguaggio macchina codice-op indirizzo RAM RC 8 bits 4 bit 20 bit Se il contenuto di RC soddisfa la condizione di salto aggiorna il PC all indrizzo RAM indicato, altrimenti incrementa il PC di 1 01000001 xxxx 00000000000000001001 BRLT RC RAM Word 9 10000000 xxxx 00000000000000001010 BRANCH (RC) RAM Word 10

Istruzioni di salto in linguaggio macchina Istruzioni di salto in linguaggio macchina (1) BRLT J: se RC=-1 pone PC=J altrimenti incrementa PC di 1 BRLE J: se RC<1 pone PC=J altrimenti incrementa PC di 1 BREQ J: se RC=0 pone PC=J altrimenti incrementa PC di 1 PC=program counter Istruzioni di salto in linguaggio macchina (2) BRNE J: se RC 0 pone PC=J altrimenti incrementa PC di 1 Istruzione di STOP termina il programma BRGT J: se RC=1 pone P=J altrimenti incrementa PC di 1 Codice: STOP 10000001 BRGE J: se RC>-1 pone PC=J altrimenti incrementa P di 1

Istruzione di STOP in linguaggio macchina codice-op 8 bits inutile Ciclo della CPU La CPU esegue un programma memorizzato in RAM copiando ad una ad una le istruzioni nell Instruction Register dell unita di controllo Ordine: quello in cui sono memorizzate, a meno di istruzioni di salto 10000001 xxxxxxxxxxxxxxxxxxxxxxxx Registri speciali: contatore di programma (program counter) Istruzione corrente (instruction register) Ciclo della CPU Reperimento dell istruzione: lettura della cella di RAM il cui indirizzo e contenuto nel contatore di programma caricamento del registro istruzione con l istruzione Incremento del contatore programma Ciclo della CPU Decodifica dell istruzione: Trova gli operandi a seconda del codice operativo Modifica contatore programma se istruzione di salto Esecuzione dell istruzione: Attiva i circuiti necessari

Esempio Scriviamo un programma in linguaggio macchina che fa le operazioni seguenti: trasferisce gli interi contenuti in 2 parole aventi come indirizzo del loro primo byte 64 e 68 della RAM nei registri R 0 ed R 1 li somma trasferisce la somma nella parola di indirizzo 60 della RAM Codici delle operazioni LOAD RAM CPU: 00000000 STORE CPU RAM: 00000001 ADD : 00000010 Numerazione binaria degli indirizzi Indirizzo byte Indirizzo parola Indirizzo decimale Indirizzo binario 0 0 000000 00 1 000000 01 2 000000 10 3 000000 11 1 4 000001 00 5 000001 01 6 000001 10 7 000001 11 15 16 17 60 64 68 256 1024 257 1028 258 1032 259 1036 46 38 8 Porta 64 in R0 Porta 68 in R1 Somma R0 e R1 Porta R0 in 60 111100 1000000 1000100..0101110..0100110..01000 10000000000 000000000000..010000 10000000100 000000000001..010001 10000001000 0000001000000001... 10000001100 000000010000..001111 2 8 000010 00 9 000010 01 10 000010 10 11 000010 11 Indirizzo decimale Parola- Primo Byte Istruzione o valore contenuti Indirizzo binario Parola-primo byte Istruzione o valore in binario

Svantaggi del linguaggio macchina programmi in binario sono difficili da scrivere, capire e cambiare il programmatore deve occuparsi di gestire la RAM: difficile ed inefficiente primo passo Assembler Novità dell Assembler codici mnemonici per le operazioni nomi mnemonici (identificatori) al posto degli indirizzi RAM per i dati nomi mnemonici (etichette) al posto degli indirizzi RAM delle istruzioni usate nei salti tipi dei dati INT e FLOAT Codice-op mnemonici (1) Trasferimento LOAD (RAM CPU) STORE (CPU RAM) Aritmetiche ADD, FADD SUB, FSUB DIV, FDIV MUL, FMUL MOD, FMOD input/output: READ (INP RAM) WRITE (RAM OUT) Codice-op mnemonici (2) Test COMP FCOMP Salto BREQ BRGT BRLT BRGE BRLE BRANCH Terminazione STOP

Stesso esempio del linguaggio macchina Z: INT; X: INT 38; Y: INT 8; LOAD R0 X; LOAD R1 Y; ADD R0 R1; STORE R0 Z; dichiarazioni degli identificatori dei dati istruzioni assembler