SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Data
                                                                           Manipulation

                                                                          Adriano Patton

                          Manipolazione dei Dati                         Computer
                                                                         Architecture

                           (Data Manipulation)                            Central
                                                                          Processing Unit
                                                                          (CPU)
                 Presentazione basata sul testo:                          The Stored
                                                                          Program
                                                                          Concept
J. Glenn Brookshear, 2012. Computer Science: An Overview. 11th
                                                                         Machine
                    Edition. Addison-Wesley.                             Language
                                                                          Machine
                                                                          Instruction
                                                                          Machine
                                                                          Instruction
                                                                          Encoding
                                   Patton Adriano                        Program
                                                                         Execution
                              matricola numero 156358                     Special-Purpose
                                                                          Register
                                                                          Machine Cycle
                                   Universit` di Trento
                                            a                             Example
                                                                         Arithmetic/Logic
                                                                         Instructions
                                   16 marzo 2012                          Arithmetic
                                                                          Operations
                                                                          Logic Operations
                                                                          Rotation and
                                                                          Shift Operations
 Adriano Patton (UniTrento)                  Data Manipulation   16 marzo 2012       1 / 30
Programma della presentazione

                                                                   Data
                                                                Manipulation
1   Computer Architecture
                                                               Adriano Patton
      Central Processing Unit (CPU)
      The Stored Program Concept                              Computer
                                                              Architecture
                                                               Central
2   Machine Language                                           Processing Unit
                                                               (CPU)
                                                               The Stored
     Machine Instruction                                       Program
                                                               Concept
     Machine Instruction Encoding                             Machine
                                                              Language
3   Program Execution                                          Machine
                                                               Instruction
      Special-Purpose Register                                 Machine
                                                               Instruction
      Machine Cycle                                            Encoding
                                                              Program
      Example                                                 Execution
                                                               Special-Purpose
                                                               Register
4   Arithmetic/Logic Instructions                              Machine Cycle
                                                               Example
      Arithmetic Operations
                                                              Arithmetic/Logic
      Logic Operations                                        Instructions
                                                               Arithmetic
      Rotation and Shift Operations                            Operations
                                                               Logic Operations
                                                               Rotation and
                                                               Shift Operations
    Adriano Patton (UniTrento)    Data Manipulation   16 marzo 2012       2 / 30
La Central Processing Unit

                                                                                     Data
                                                                                  Manipulation

                                                                                 Adriano Patton

Cos’` la CPU?
    e                                                                           Computer
                                                                                Architecture
La circuiteria che controlla la manipolazione dei dati all’interno di un         Central
                                                                                 Processing Unit
computer ` detta Central Processing Unit, CPU o processore.
           e                                                                     (CPU)
                                                                                 The Stored
                                                                                 Program
                                                                                 Concept

Nei computer costruiti a met` del secolo scorso la CPU era costituita
                                a                                               Machine
                                                                                Language
da molti ripiani di circuiti. I processori attuali sono invece piccoli           Machine
                                                                                 Instruction
quadrati di spessore molto ridotto (e superficie di pochi centimetri              Machine
                                                                                 Instruction
                                                                                 Encoding
quadrati), inseriti tramite dei perni sulla scheda di circuito principale
                                                                                Program
del computer, detta anche scheda madre.                                         Execution
                                                                                 Special-Purpose
In vari Mobile Internet Devices (MID), per esempio negli                         Register
                                                                                 Machine Cycle
smartphones, la CPU non ` pi` grande di met` francobollo e si parla
                             e u                   a                             Example
per questo di microprocessori.                                                  Arithmetic/Logic
                                                                                Instructions
                                                                                 Arithmetic
                                                                                 Operations
                                                                                 Logic Operations
                                                                                 Rotation and
                                                                                 Shift Operations
   Adriano Patton (UniTrento)        Data Manipulation                  16 marzo 2012       3 / 30
Le componenti della CPU

                                                                                    Data
                                                                                 Manipulation

                                                                                Adriano Patton

                                                                               Computer
Una CPU ` costituita da tre parti fondamentali:
        e                                                                      Architecture
                                                                                Central
     l’unit` di controllo (o control unit), che contiene la circuiteria
           a                                                                    Processing Unit
                                                                                (CPU)
     che controlla e coordina le attivit` della macchina, ossia del
                                        a                                       The Stored
                                                                                Program
                                                                                Concept
     computer;                                                                 Machine
                                                                               Language
     l’unit` aritmetico/logica (arithmetic/logic unit o ALU), in
           a                                                                    Machine
                                                                                Instruction
     cui si trova la circuiteria che compie le operazioni (logiche e            Machine
                                                                                Instruction
     aritmetiche) sui dati;                                                     Encoding
                                                                               Program
     l’unit` dei registri, che contiene celle per l’archiviazione
           a                                                                   Execution

     temporanea di dati, simili a quelle della memoria RAM, dette               Special-Purpose
                                                                                Register
     registri.                                                                  Machine Cycle
                                                                                Example
                                                                               Arithmetic/Logic
                                                                               Instructions
                                                                                Arithmetic
                                                                                Operations
                                                                                Logic Operations
                                                                                Rotation and
                                                                                Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation                  16 marzo 2012       4 / 30
I registri

                                                                                    Data
                                                                                 Manipulation

                                                                                Adriano Patton

                                                                               Computer
                                                                               Architecture
                                                                                Central
 I registri si dividono in due categorie:                                       Processing Unit
                                                                                (CPU)
      gli special-purpose register, quali il program counter e                  The Stored
                                                                                Program
                                                                                Concept
      l’instruction register;
                                                                               Machine
      i general-purpose register, in cui vengono temporaneamente               Language
                                                                                Machine
      memorizzati i dati che devono essere manipolati dalla CPU.                Instruction
                                                                                Machine
      Hanno lo scopo di conservare in memoria i dati utilizzati come            Instruction
                                                                                Encoding
      input dall’unit` aritmetico/logica e di fornire spazio sufficiente a
                     a                                                         Program
                                                                               Execution
      memorizzare l’output di tale unit`.
                                        a                                       Special-Purpose
                                                                                Register
                                                                                Machine Cycle
                                                                                Example
                                                                               Arithmetic/Logic
                                                                               Instructions
                                                                                Arithmetic
                                                                                Operations
                                                                                Logic Operations
                                                                                Rotation and
                                                                                Shift Operations
    Adriano Patton (UniTrento)        Data Manipulation                16 marzo 2012       5 / 30
Il bus

                                                                                   Data
 Come comunicano CPU e RAM?                                                     Manipulation

                                                                               Adriano Patton
 Il trasferimento di stringhe di bit dalla Central Processing Unit (CPU)
                                                                              Computer
 alla memoria principale (e viceversa) avviene tramite una collezione di      Architecture
 cavi che prende il nome di bus.                                               Central
                                                                               Processing Unit
                                                                               (CPU)
                                                                               The Stored
                                                                               Program
                                                                               Concept
                                                                              Machine
                                                                              Language
                                                                               Machine
                                                                               Instruction
                                                                               Machine
                                                                               Instruction
                                                                               Encoding
                                                                              Program
                                                                              Execution
                                                                               Special-Purpose
                                                                               Register
                                                                               Machine Cycle
                                                                               Example
                                                                              Arithmetic/Logic
                                                                              Instructions
                                                                               Arithmetic
                                                                               Operations
                                                                               Logic Operations
                   Figura: Il bus collega CPU e memoria principale             Rotation and
                                                                               Shift Operations
    Adriano Patton (UniTrento)            Data Manipulation           16 marzo 2012       6 / 30
Ricapitolando

                                                                                   Data
Quando compie un’operazione su dati archiviati nella RAM:                       Manipulation

                                                                               Adriano Patton
 1) attraverso il bus la CPU legge i dati dalla memoria, ossia
                                                                              Computer
    fornisce al circuito della memoria l’indirizzo della cella                Architecture

    contenente i dati e quello del registro in cui i dati devono essere        Central
                                                                               Processing Unit
                                                                               (CPU)
    trasferiti (o meglio copiati), assieme ad un segnale elettronico           The Stored
                                                                               Program
    volto ad attivare il processo di lettura;                                  Concept
                                                                              Machine
 2) la CPU informa l’unit` aritmetico/logica a proposito di quale
                            a                                                 Language
                                                                               Machine
    registro contenga i dati che devono essere utilizzati come input,          Instruction
                                                                               Machine
    attiva il circuito della stessa unit` predisposto per l’operazione
                                        a                                      Instruction
                                                                               Encoding
    in questione, comunica in quale registro l’output debba essere            Program
    memorizzato;                                                              Execution
                                                                               Special-Purpose
                                                                               Register
 3) utilizzando nuovamente il bus, la CPU scrive il risultato in               Machine Cycle

    memoria, ossia fornisce al circuito della memoria l’indirizzo del          Example
                                                                              Arithmetic/Logic
    registro contenente il dato da memorizzare e quello della cella di        Instructions
                                                                               Arithmetic
    destinazione, assieme ad un altro segnale elettronico, volto               Operations
                                                                               Logic Operations
    questa volta a far cominciare il processo di scrittura.                    Rotation and
                                                                               Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation                 16 marzo 2012       7 / 30
La memoria Cache

                                                                                 Data
Utilit` delle varie memorie
      a                                                                       Manipulation

                                                                             Adriano Patton
Nei registri vengono memorizzati i dati che vengono utilizzati al
                                                                            Computer
momento dalla CPU, nella memoria principale quelli che serviranno in        Architecture

un momento successivo poco distante, nella memoria di archiviazione          Central
                                                                             Processing Unit
                                                                             (CPU)
di massa quelli che probabilmente non verranno utilizzati in un futuro       The Stored
                                                                             Program
immediato.                                                                   Concept
                                                                            Machine
                                                                            Language
Un ulteriore livello                                                         Machine
                                                                             Instruction
                                                                             Machine
La memoria Cache ` una parte di memoria ad alta velocit`
                      e                                     a                Instruction
                                                                             Encoding
collocata all’interno della CPU, in cui la macchina cerca sempre di         Program
mantenere i dati di momentaneo interesse. In questo modo, vari              Execution
                                                                             Special-Purpose
trasferimenti di dati che dovrebbero intercorrere tra la CPU e la RAM        Register
                                                                             Machine Cycle
avvengono invece tra i registri e la memoria Cache, con notevole             Example

risparmio di tempo. Le modifiche apportate ai dati nella memoria             Arithmetic/Logic
                                                                            Instructions
Cache vengono poi trasferite nella memoria principale in blocco e in         Arithmetic
                                                                             Operations
un momento pi` opportuno, con una velocizzazione dei processi.
                 u                                                           Logic Operations
                                                                             Rotation and
                                                                             Shift Operations
   Adriano Patton (UniTrento)      Data Manipulation                16 marzo 2012       8 / 30
L’idea dello stored-program

                                                                                    Data
                                                                                 Manipulation
Grandi miglioramenti sono stati apportati ai computer per quel che              Adriano Patton
riguarda la loro flessibilit`.
                           a
                                                                               Computer
                                                                               Architecture
                                                                                Central
                                                                                Processing Unit
     I primi calcolatori avevano i processi che dovevano eseguire               (CPU)
                                                                                The Stored
     costruiti nella Control Unit, potevano/dovevano quindi eseguire            Program
                                                                                Concept
     sempre lo stesso programma.                                               Machine
                                                                               Language
     In un secondo momento si ` cominciato a costruire delle CPU
                                 e                                              Machine
                                                                                Instruction
     che potessero essere ricablate in maniera da poter cambiare il             Machine
                                                                                Instruction
     programma da eseguire attaccando gli appositi cavi.                        Encoding
                                                                               Program
     Un deciso passo avanti ` stato fatto quando si ` realizzato che i
                             e                        e                        Execution
                                                                                Special-Purpose
     programmi possono essere codificati e salvati nella memoria                 Register
                                                                                Machine Cycle
     come gli altri dati. Quest’idea, che prende il nome di                     Example

     stored-program concept, permette di modificare il programma                Arithmetic/Logic
                                                                               Instructions
     eseguito dal computer modificando la sua memoria senza dover                Arithmetic
                                                                                Operations
     ricablare la CPU.                                                          Logic Operations
                                                                                Rotation and
                                                                                Shift Operations
   Adriano Patton (UniTrento)      Data Manipulation                   16 marzo 2012       9 / 30
Linguaggio macchina
RISC vs CISC


                                                                                      Data
                                                                                   Manipulation
 Seguendo l’idea dello stored-program la CPU ` costruita in modo da
                                                 e
                                                                                  Adriano Patton
 poter distinguere le istruzioni da eseguire codificate come stringhe di
 bit (come un qualsiasi altro tipo di dato). Con linguaggio macchina             Computer
                                                                                 Architecture
 (Machine Language) si intende l’insieme di queste istruzioni, dette              Central
                                                                                  Processing Unit
 istruzioni macchina, e del sistema utilizzato per la loro codifica.               (CPU)
                                                                                  The Stored
                                                                                  Program
                                                                                  Concept

 Per quel che riguarda la quantit` di istruzioni elementari che una
                                 a                                               Machine
                                                                                 Language
 CPU deve saper riconoscere si distinguono due filosofie di pensiero                Machine
                                                                                  Instruction
 che portano rispettivamente ai seguenti:                                         Machine
                                                                                  Instruction
                                                                                  Encoding
      reduced instruction set computer (RISC), poche istruzioni di               Program
      base da eseguire in successione per ottenerne di pi` elaborate;
                                                         u                       Execution
                                                                                  Special-Purpose
                                                                                  Register
      complex instruction set computer (CISC), un numero                          Machine Cycle
      maggiore di istruzioni pi` complesse, alcune magari ridondanti.
                               u                                                  Example
                                                                                 Arithmetic/Logic
 Computer con architettura RISC sono pi` veloci, pi` efficienti e meno
                                           u         u                           Instructions
                                                                                  Arithmetic
 costosi, macchine dell’altro tipo sono invece pensate per far fronte al          Operations
                                                                                  Logic Operations
 meglio alla sempre maggiore complessit` dei software in commercio.
                                          a                                       Rotation and
                                                                                  Shift Operations
    Adriano Patton (UniTrento)      Data Manipulation                   16 marzo 2012     10 / 30
La classificazione delle istruzioni macchina
Trasferimento dati


                                                                                     Data
                                                                                  Manipulation
 Le istruzioni macchina si dividono tipicamente in tre gruppi:                   Adriano Patton

       gruppo di trasferimento dati.                                            Computer
                                                                                Architecture
       gruppo aritmetico/logico.                                                 Central
                                                                                 Processing Unit
                                                                                 (CPU)
       gruppo di controllo.                                                      The Stored
                                                                                 Program
                                                                                 Concept
                                                                                Machine
                                                                                Language
 Nel gruppo di trasferimento dati si collocano le istruzioni che                 Machine
 richiedono spostamento di dati tra diverse locazioni. In realt` i dati
                                                                 a               Instruction
                                                                                 Machine
 che vengono spostati non sono quasi mai cancellati e le operazioni di           Instruction
                                                                                 Encoding

 trasferimento sono quindi pi` che altro operazioni di copiatura.
                                u                                               Program
                                                                                Execution
 Termini particolari si utilizzano per indicare istruzioni che comportano        Special-Purpose
                                                                                 Register
 il movimento di dati dalla RAM alla CPU (istruzione LOAD) e                     Machine Cycle
                                                                                 Example
 viceversa (istruzione STORE). Sempre in questo gruppo, le istruzioni
                                                                                Arithmetic/Logic
 di I/O sono invece i comandi che la CPU utilizza per comunicare con            Instructions
                                                                                 Arithmetic
 le periferiche esterne al sistema CPU-RAM.                                      Operations
                                                                                 Logic Operations
                                                                                 Rotation and
                                                                                 Shift Operations
     Adriano Patton (UniTrento)        Data Manipulation               16 marzo 2012     11 / 30
La classificazione delle istruzioni macchina
Gruppo aritmetico/logico e gruppo di controllo


                                                                                    Data
                                                                                 Manipulation
 Nel gruppo aritmetico/logico si trovano le istruzioni che
                                                                                Adriano Patton
 comunicano all’unit` di controllo di ordinare un’azione all’interno
                       a
 dell’unit` aritmetico/logica. Quest’ultima ` in grado di svolgere le
           a                                  e                                Computer
                                                                               Architecture
 operazioni aritmetiche, quelle logiche di OR, AND e XOR, e altre che           Central
                                                                                Processing Unit
 comportano lo spostamento a destra o a sinistra del contenuto dei              (CPU)
                                                                                The Stored
 registri, quali le operazioni ROTATE e SHIFT (che prevedono                    Program
                                                                                Concept
 rispettivamente che il bit che spostandosi dovrebbe uscire dal registro       Machine
                                                                               Language
 si posizioni all’estremit` opposta della stringa o che venga troncato).
                          a                                                     Machine
                                                                                Instruction
                                                                                Machine
                                                                                Instruction
                                                                                Encoding
 Appartengono al gruppo di controllo i comandi utili a dirigere
                                                                               Program
 l’esecuzione dei programmi, pi` che a manipolare i dati, quali per
                                 u                                             Execution
                                                                                Special-Purpose
 esempio le istruzioni di salto (JUMP o BRANCH), che comunicano                 Register
                                                                                Machine Cycle
 alla CPU di eseguire un’istruzione diversa da quella che occupa il             Example

 posto successivo nella lista. I salti possono essere di due tipi:             Arithmetic/Logic
                                                                               Instructions
 - incondizionati, in tal caso vengono sempre eseguiti;                         Arithmetic
                                                                                Operations
 - condizionati, ovvero eseguiti solo se una certa condizione                   Logic Operations
                                                                                Rotation and
 (specificata nell’istruzione) ` soddisfatta.
                              e                                                 Shift Operations
     Adriano Patton (UniTrento)           Data Manipulation           16 marzo 2012     12 / 30
La codifica delle istruzioni macchina
Operazioni e operandi


                                                                                          Data
                                                                                       Manipulation

                                                                                      Adriano Patton


 In generale la versione codificata di un’istruzione macchina si divide               Computer
                                                                                     Architecture
 in due parti:                                                                        Central
                                                                                      Processing Unit
                                                                                      (CPU)
       il campo del codice-operazione (op-code o operation code                       The Stored
                                                                                      Program
       field),                                                                         Concept
                                                                                     Machine
       il campo degli operandi (operand field).                                       Language
                                                                                      Machine
 I bit contenuti nell’op-code field contengono informazioni relative al                Instruction
                                                                                      Machine
 tipo di operazione che deve essere svolta (STORE, LOAD, AND,                         Instruction
                                                                                      Encoding
 SHIFT), quelli nell’operand field forniscono informazioni aggiuntive,                Program
                                                                                     Execution
 quali gli indirizzi dei registri contenenti i dati in input, la cella di             Special-Purpose
                                                                                      Register
 memoria in cui memorizzare una stringa, il numero di posti di cui                    Machine Cycle
 ruotare una stringa di bit, ecc...                                                   Example
                                                                                     Arithmetic/Logic
                                                                                     Instructions
                                                                                      Arithmetic
                                                                                      Operations
                                                                                      Logic Operations
                                                                                      Rotation and
                                                                                      Shift Operations
     Adriano Patton (UniTrento)       Data Manipulation                     16 marzo 2012     13 / 30
La codifica delle istruzioni macchina
Esempio


                                                                                   Data
                                                                                Manipulation
 Per comprendere come le istruzioni macchina siano codificate,
                                                                               Adriano Patton
 consideriamo un modello di computer puramente illustrativo.
                                                                              Computer
                                                                              Architecture
                                                                               Central
                                                                               Processing Unit
                                                                               (CPU)
                                                                               The Stored
                                                                               Program
                                                                               Concept
                                                                              Machine
                                                                              Language
                                                                               Machine
                                                                               Instruction
                                                                               Machine
                                                                               Instruction
                                                                               Encoding
                                                                              Program
                                                                              Execution
                                                                               Special-Purpose
                                                                               Register
                                                                               Machine Cycle
                                                                               Example

 Questa macchina ha 16 registri general-purpose e 256 celle di                Arithmetic/Logic
                                                                              Instructions
 memoria, tutti e tutte di 8 bit, numerati rispettivamente da 0 a 15 e         Arithmetic
                                                                               Operations
 da 0 a 255, con gli indirizzi espressi nella notazione esadecimale.           Logic Operations
                                                                               Rotation and
                                                                               Shift Operations
    Adriano Patton (UniTrento)      Data Manipulation                16 marzo 2012     14 / 30
La codifica delle istruzioni macchina
Esempio


                                                                                    Data
                                                                                 Manipulation

                                                                                Adriano Patton
 Nel nostro computer di esempio ogni istruzione macchina ` codificata
                                                              e
                                                                               Computer
 usando 16 bit, rappresentati da 4 cifre esadecimali, la prima delle           Architecture
                                                                                Central
 quali costituisce il codice-operazione, mentre le restanti tre occupano        Processing Unit
                                                                                (CPU)
 il campo degli operandi.                                                       The Stored
                                                                                Program
 I codici-operazioni distinti nel nostro linguaggio macchina sono 12 e          Concept

 sono indicati con le prime 12 cifre della notazione esadecimale.              Machine
                                                                               Language
                                                                                Machine
                                                                                Instruction
                                                                                Machine
 Per esempio, il comando 1RXY indica di caricare (LOAD) nel registro            Instruction
                                                                                Encoding

 R la stringa di bit contenuta nella cella di memoria di indirizzo XY          Program
                                                                               Execution
 (notare che servono 8 bit per indicare l’indirizzo di una delle 256            Special-Purpose
                                                                                Register
 celle), mentre l’istruzione 8RST ordina di eseguire l’operazione di            Machine Cycle
                                                                                Example
 AND tra le stringhe contenute nei registri S e T e di memorizzare il
                                                                               Arithmetic/Logic
 risultato dell’operazione nel registro R.                                     Instructions
                                                                                Arithmetic
                                                                                Operations
                                                                                Logic Operations
                                                                                Rotation and
                                                                                Shift Operations
    Adriano Patton (UniTrento)      Data Manipulation                 16 marzo 2012     15 / 30
L’Instruction Register e il Program Counter

                                                                                    Data
                                                                                 Manipulation

                                                                                Adriano Patton

                                                                               Computer
Quando un computer deve eseguire un programma archiviato in                    Architecture
memoria, procede copiando man mano le istruzione nella CPU,                     Central
                                                                                Processing Unit
                                                                                (CPU)
decodificandole ed eseguendole. Esso copia le istruzioni dalla                   The Stored
                                                                                Program
memoria seguendo l’ordine delle celle che le contengono, fintanto che            Concept

non incontra un’istruzione di salto.                                           Machine
                                                                               Language
                                                                                Machine
                                                                                Instruction
                                                                                Machine
Ruoli importanti in questo processo sono svolti da due registri                 Instruction
                                                                                Encoding
special-purpose: l’instruction register, che contiene in ogni                  Program
momento l’istruzione in esecuzione, e il program counter, che tiene            Execution
                                                                                Special-Purpose
traccia dell’indirizzo della cella contenente la prossima istruzione da         Register
                                                                                Machine Cycle
eseguire.                                                                       Example
                                                                               Arithmetic/Logic
                                                                               Instructions
                                                                                Arithmetic
                                                                                Operations
                                                                                Logic Operations
                                                                                Rotation and
                                                                                Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation                 16 marzo 2012     16 / 30
Il ciclo macchina

                                                                                   Data
                                                                                Manipulation

Il lavoro della CPU consiste nella ripetizione continua di un                  Adriano Patton

algoritmo, detto ciclo macchina, suddiviso in tre fasi:                       Computer
                                                                              Architecture
                                                                               Central
     1) fase di fetch,                                                         Processing Unit
                                                                               (CPU)
     2) fase di decode,                                                        The Stored
                                                                               Program
                                                                               Concept
     3) fase di execute.                                                      Machine
                                                                              Language
                                                                               Machine
                                                                               Instruction
Fetch                                                                          Machine
                                                                               Instruction
                                                                               Encoding
Nella fase di fetch la CPU chiede alla memoria l’istruzione                   Program
memorizzata all’indirizzo contenuto nel program counter (e a quello           Execution
                                                                               Special-Purpose
successivo nel caso della macchina illustrativa, dato che un’istruzione        Register
                                                                               Machine Cycle
` formata da 16 bit e occupa due celle), memorizza l’istruzione
e                                                                              Example

nell’instruction register e incrementa di due il contenuto del program        Arithmetic/Logic
                                                                              Instructions
counter, in modo che contenga l’indirizzo del comando successivo.              Arithmetic
                                                                               Operations
                                                                               Logic Operations
                                                                               Rotation and
                                                                               Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation                16 marzo 2012     17 / 30
Il ciclo macchina

                                                                                        Data
                                                                                     Manipulation

                                                                                    Adriano Patton

Decode                                                                             Computer
                                                                                   Architecture
Nella fase di decode del ciclo macchina la CPU decodifica il comando                 Central
                                                                                    Processing Unit
memorizzato nell’instruction register, lo divide nelle parti relative ad            (CPU)
                                                                                    The Stored
operazione e operandi e ne interpreta il contenuto.                                 Program
                                                                                    Concept
                                                                                   Machine
                                                                                   Language
Execute                                                                             Machine
                                                                                    Instruction
Nella fase di execute la CPU attiva i circuiti predisposti per lo                   Machine
                                                                                    Instruction
                                                                                    Encoding
svolgimento dell’operazione specificata dall’istruzione. Ad esempio,
                                                                                   Program
se il comando prevede un’operazione aritmetica, la CPU attiva il                   Execution
                                                                                    Special-Purpose
circuito corrispondente nell’unit` aritmetico/logica con i registri
                                  a                                                 Register
                                                                                    Machine Cycle
specificati dall’istruzione in input, attende il risultato e lo pone nel             Example

registro appropriato.                                                              Arithmetic/Logic
                                                                                   Instructions
                                                                                    Arithmetic
                                                                                    Operations
                                                                                    Logic Operations
                                                                                    Rotation and
                                                                                    Shift Operations
   Adriano Patton (UniTrento)        Data Manipulation                    16 marzo 2012     18 / 30
Il ciclo macchina

                                                                                    Data
                                                                                 Manipulation
Eseguita un’istruzione, la CPU ricomincia il ciclo con una nuova fase           Adriano Patton
di fetch, in vista della quale il program counter ` stato
                                                  e
                                                                               Computer
opportunamente incrementato di due unit`.   a                                  Architecture
                                                                                Central
                                                                                Processing Unit
                                                                                (CPU)
                                                                                The Stored
Salti!                                                                          Program
                                                                                Concept

L’unico caso in cui il ciclo macchina viene modificato ` quello in cui il
                                                           e                   Machine
                                                                               Language
comando da eseguire sia un salto. Supponiamo che l’istruzione                   Machine
                                                                                Instruction
ricevuta dalla CPU del nostro modello sia BA47, che significa “salta             Machine
                                                                                Instruction
(JUMP) al comando della cella 47 (esadecimale) nel caso il                      Encoding

contenuto del registro A sia uguale a quello del registro 0”. Nella            Program
                                                                               Execution
fase di execute, prima vengono confrontate le stringhe nei due                  Special-Purpose
                                                                                Register
registri, poi, se esse risultino essere differenti, la fase di execute           Machine Cycle
                                                                                Example
termina e riparte un nuovo ciclo, nel caso invece coincidano, la CPU           Arithmetic/Logic
copia nel program counter l’istruzione memorizzata nella cella 47              Instructions
                                                                                Arithmetic
(cominciando di fatto una nuova e particolare fase di fetch).                   Operations
                                                                                Logic Operations
                                                                                Rotation and
                                                                                Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation                 16 marzo 2012     19 / 30
Il clock del computer

                                                                                 Data
                                                                              Manipulation

                                                                             Adriano Patton

                                                                            Computer
                                                                            Architecture
                                                                             Central
                                                                             Processing Unit
                                                                             (CPU)
                                                                             The Stored
Il clock del computer ` un circuito, detto anche oscillatore, che
                       e                                                     Program
                                                                             Concept
genera impulsi utilizzati per coordinare le attivit` della CPU e per
                                                   a                        Machine
scandirne i tempi. Maggiore ` la velocit` di clock di un PC, misurata
                              e          a                                  Language
                                                                             Machine
in Hertz, pi` velocemente questo porta a termine il suo ciclo
            u                                                                Instruction
                                                                             Machine
macchina.                                                                    Instruction
                                                                             Encoding
                                                                            Program
                                                                            Execution
                                                                             Special-Purpose
                                                                             Register
                                                                             Machine Cycle
                                                                             Example
                                                                            Arithmetic/Logic
                                                                            Instructions
                                                                             Arithmetic
                                                                             Operations
                                                                             Logic Operations
                                                                             Rotation and
                                                                             Shift Operations
   Adriano Patton (UniTrento)      Data Manipulation               16 marzo 2012     20 / 30
Esempio di esecuzione di un programma

                                                                                  Data
                                                                               Manipulation

                                                                              Adriano Patton

                                                                             Computer
                                                                             Architecture
Concretizziamo quanto visto fino ad ora descrivendo le operazioni che          Central
                                                                              Processing Unit
si susseguono all’interno del nostro computer modello quando viene            (CPU)
                                                                              The Stored
eseguito un programma.                                                        Program
                                                                              Concept
                                                                             Machine
                                                                             Language
Addizione di due stringhe contenute in memoria                                Machine
                                                                              Instruction
                                                                              Machine
Supponiamo che il programma consista nel leggere due dati dalla               Instruction
                                                                              Encoding
memoria, farne la somma e poi scrivere in memoria il risultato.              Program
Per cominciare dobbiamo salvare il programma nella memoria, per              Execution
                                                                              Special-Purpose
esempio nelle celle consecutive da quella di indirizzo A0 in poi.             Register
                                                                              Machine Cycle
                                                                              Example
                                                                             Arithmetic/Logic
                                                                             Instructions
                                                                              Arithmetic
                                                                              Operations
                                                                              Logic Operations
                                                                              Rotation and
                                                                              Shift Operations
   Adriano Patton (UniTrento)     Data Manipulation                 16 marzo 2012     21 / 30
Esempio di esecuzione di un programma

                                                                      Data
                                                                   Manipulation

                                                                  Adriano Patton

                                                                 Computer
                                                                 Architecture
                                                                  Central
 Per far partire l’esecuzione bisogna                             Processing Unit
                                                                  (CPU)
 memorizzare l’indirizzo A0 nel program                           The Stored
                                                                  Program
 counter e accendere il computer.                                 Concept
                                                                 Machine
 La CPU comincia il suo ciclo con la fase                        Language
 di fetch, estraendo la prima istruzione                          Machine
                                                                  Instruction
 dalla cella A0 e copiandola                                      Machine
                                                                  Instruction
                                                                  Encoding
 nell’instruction register. Ci` comporta lo
                              o
                                                                 Program
 spostamento di 16 bit, il contenuto di                          Execution
                                                                  Special-Purpose
 due celle di memoria, perci` il program
                              o                                   Register
                                                                  Machine Cycle
 counter viene incrementato di due unit`.a                        Example
                                                                 Arithmetic/Logic
                                                                 Instructions
                                                                  Arithmetic
                                                                  Operations
                                                                  Logic Operations
                                                                  Rotation and
                                                                  Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation   16 marzo 2012     22 / 30
Esempio di esecuzione di un programma

                                                                                     Data
                                                                                  Manipulation
Alla fine della fase di fetch abbiamo:                                            Adriano Patton

     A2 nel program counter,                                                    Computer
                                                                                Architecture
     156C nell’instruction register.                                             Central
                                                                                 Processing Unit
Nella fase di decode successiva, la CPU decodifica il comando 156C                (CPU)
                                                                                 The Stored
contenuto nell’instruction register, che ordina di caricare nel registro         Program
                                                                                 Concept
5 il contenuto della cella 6C. Nella fase di execute questa operazione          Machine
                                                                                Language
viene portata a termine e pu` iniziare un nuovo ciclo.
                              o                                                  Machine
                                                                                 Instruction
                                                                                 Machine
                                                                                 Instruction
                                                                                 Encoding
Il contenuto delle celle A2 e A3 (166D) viene spostato nell’instruction         Program
register e il program counter ` nuovamente incrementato di due:
                              e                                                 Execution
                                                                                 Special-Purpose
                                                                                 Register
     A4 nel program counter,                                                     Machine Cycle
                                                                                 Example
     166D nell’instruction register.                                            Arithmetic/Logic
                                                                                Instructions
Il comando 166D viene tradotto come “caricare nel registro 6 i bit               Arithmetic
                                                                                 Operations
della cella 6D”e successivamente eseguito.                                       Logic Operations
                                                                                 Rotation and
                                                                                 Shift Operations
   Adriano Patton (UniTrento)          Data Manipulation               16 marzo 2012     23 / 30
Esempio di esecuzione di un programma

                                                                                     Data
                                                                                  Manipulation

                                                                                 Adriano Patton

                                                                                Computer
                                                                                Architecture
                                                                                 Central
Allo stesso modo si svolgono i cicli successivi, in cui vengono reperite,        Processing Unit
                                                                                 (CPU)
decodificate e eseguite le seguenti istruzioni:                                   The Stored
                                                                                 Program
                                                                                 Concept
     5056: somma i contenuti dei registri 5 e 6 e memorizza il                  Machine
                                                                                Language
     risultato nel registro 0;                                                   Machine
                                                                                 Instruction
     306E: scrivi il contenuto del registro 0 nella cella di memoria di          Machine
                                                                                 Instruction
     indirizzo 6E;                                                               Encoding
                                                                                Program
     C000: arresta il processo.                                                 Execution
                                                                                 Special-Purpose
                                                                                 Register
                                                                                 Machine Cycle
                                                                                 Example
                                                                                Arithmetic/Logic
                                                                                Instructions
                                                                                 Arithmetic
                                                                                 Operations
                                                                                 Logic Operations
                                                                                 Rotation and
                                                                                 Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation                  16 marzo 2012     24 / 30
Le istruzioni aritmetico/logiche

                                                                                  Data
                                                                               Manipulation

                                                                              Adriano Patton
Il gruppo delle istruzioni aritmetico/logiche comprende tutti i
comandi che richiedono operazioni:                                           Computer
                                                                             Architecture

     aritmetiche,                                                             Central
                                                                              Processing Unit
                                                                              (CPU)
     logiche,                                                                 The Stored
                                                                              Program
                                                                              Concept
     di spostamento-bit (ROTATE e SHIFT).                                    Machine
                                                                             Language
                                                                              Machine
                                                                              Instruction
Operazioni aritmetiche                                                        Machine
                                                                              Instruction
                                                                              Encoding
Alcune CPU sono progettate per eseguire solamente somme e                    Program
sottrazioni, altre solo addizioni. Un’operazione di sottrazione pu`
                                                                  o          Execution
                                                                              Special-Purpose
infatti essere calcolata come un’addizione (modificando                        Register
                                                                              Machine Cycle
opportunamente le stringhe di bit operande). Allo stesso modo una             Example

moltiplicazione pu` essere ricondotta ad una serie di addizioni e una
                    o                                                        Arithmetic/Logic
                                                                             Instructions
divisione ad una di sottrazioni.                                              Arithmetic
                                                                              Operations
                                                                              Logic Operations
                                                                              Rotation and
                                                                              Shift Operations
   Adriano Patton (UniTrento)       Data Manipulation               16 marzo 2012     25 / 30
Le istruzioni aritmetico/logiche

                                                                                      Data
                                                                                   Manipulation

                                                                                  Adriano Patton
Complemento a 2 vs virgola mobile
                                                                                 Computer
Esistono diverse tipologie della stessa operazione di somma:                     Architecture
                                                                                  Central
addizionare due valori memorizzati nella notazione del complemento                Processing Unit
                                                                                  (CPU)
a due comporta soltanto una somma bit a bit, addizionarne due                     The Stored
                                                                                  Program
                                                                                  Concept
memorizzati nella notazione a virgola mobile (floating point)                     Machine
comporta invece un procedimento pi` lungo. La mantissa deve essere
                                      u                                          Language
                                                                                  Machine
estratta, la virgola spostata del numero corretto di posizioni e il bit di        Instruction
                                                                                  Machine
segno deve essere controllato. Solamente a questo punto si procede                Instruction
                                                                                  Encoding
con la somma bit a bit, per poi ritradurre il risultato in notazione             Program
                                                                                 Execution
floating point.                                                                    Special-Purpose
Entrambi i procedimenti appena descritti vengono definiti “operazioni              Register
                                                                                  Machine Cycle
di addizione”, ma prevedono azioni molto diverse da parte del                     Example
                                                                                 Arithmetic/Logic
computer.                                                                        Instructions
                                                                                  Arithmetic
                                                                                  Operations
                                                                                  Logic Operations
                                                                                  Rotation and
                                                                                  Shift Operations
   Adriano Patton (UniTrento)        Data Manipulation                  16 marzo 2012     26 / 30
Le istruzioni aritmetico/logiche

                                                                                   Data
                                                                                Manipulation

                                                                               Adriano Patton

Operazioni logiche                                                            Computer
                                                                              Architecture
Le operazioni binarie di OR, AND e XOR definite su due bit di input             Central
                                                                               Processing Unit
possono essere estese facilmente a operazioni su due stringhe di bit:          (CPU)
                                                                               The Stored
per fare un’operazione di OR tra due stringhe si procede eseguendo             Program
                                                                               Concept
l’OR bit a bit (il primo col primo, il secondo col secondo,...). Allo         Machine
                                                                              Language
stesso modo per AND e XOR.                                                     Machine
                                                                               Instruction
                                                                               Machine
                                   10110001                                    Instruction
                                                                               Encoding

                                OR 01100100                                   Program
                                                                              Execution
                                                                               Special-Purpose
                                   11110101                                    Register
                                                                               Machine Cycle
                                                                               Example
Il risultato di una colonna ` calcolato indipendentemente dalle altre.
                            e                                                 Arithmetic/Logic
                                                                              Instructions
                                                                               Arithmetic
                                                                               Operations
                                                                               Logic Operations
                                                                               Rotation and
                                                                               Shift Operations
   Adriano Patton (UniTrento)        Data Manipulation               16 marzo 2012     27 / 30
Le istruzioni aritmetico/logiche
Masking bits


                                                                                         Data
                                                                                      Manipulation

 Le operazioni logiche sono utilizzate per modificare le stringhe                     Adriano Patton

 forzando alcuni bit ad assumere un determinato valore in quelle che                Computer
                                                                                    Architecture
 vengono dette operazioni di masking.                                                Central
                                                                                     Processing Unit
 Se si volesse per esempio indurre i primi quattro bit di una stringa ad             (CPU)
                                                                                     The Stored
 assumere il valore 1, lasciando invariati gli altri, basterebbe eseguire            Program
                                                                                     Concept
 un OR tra la stringa da “mascherare”e la stringa 11110000. Per far                 Machine
 diventare invece questi bit degli 0 basterebbe eseguire un AND con la              Language
                                                                                     Machine
 stringa 00001111.                                                                   Instruction
                                                                                     Machine
                                                                                     Instruction
                                                                                     Encoding
            10110001                  10110001                  10110001            Program
                                                                                    Execution
     OR 11110000                  AND 00001111              XOR 11111111             Special-Purpose
                                                                                     Register
            11110001                  00000001                  01001110             Machine Cycle
                                                                                     Example
                                                                                    Arithmetic/Logic
 Facendo invece lo XOR della stringa data con la stringa 11111111 ne                Instructions
 otteniamo la complementare.                                                         Arithmetic
                                                                                     Operations
                                                                                     Logic Operations
                                                                                     Rotation and
                                                                                     Shift Operations
     Adriano Patton (UniTrento)         Data Manipulation                  16 marzo 2012     28 / 30
Le istruzioni aritmetico/logiche

                                                                                      Data
Operazioni Shift e Rotate                                                          Manipulation

                                                                                  Adriano Patton
Le operazioni di traslazione e di rotazione permettono di spostare i
                                                                                 Computer
bit all’interno di un registro. Un’operazione di questa categoria trasla         Architecture

tutti i bit (per esempio) a destra di (per esempio) 2 posti.                      Central
                                                                                  Processing Unit
                                                                                  (CPU)
                                                                                  The Stored
                                10101101 −→ ??101011 01                           Program
                                                                                  Concept
                                                                                 Machine
                                                                                 Language
Le operazioni di traslazione si distinguono in base al loro                       Machine
                                                                                  Instruction
comportamento sui (nel nostro caso 2) bit che “dovrebbero                         Machine
                                                                                  Instruction
cadere”fuori dal registro, che nel nostro caso contiene 8 bit.                    Encoding
                                                                                 Program
                                                                                 Execution

     Nel caso questi bit vengano inseriti, rispettando l’ordine, nei              Special-Purpose
                                                                                  Register
     posti lasciati liberi all’estremit` opposta della stringa rispetto a
                                       a                                          Machine Cycle
                                                                                  Example
     quella in cui si trovavano, si parla di traslazione circolare o             Arithmetic/Logic
                                                                                 Instructions
     rotazione (circular shift o rotation).                                       Arithmetic
                                                                                  Operations
                                   10101101     01101011                          Logic Operations
                                                                                  Rotation and
                                                                                  Shift Operations
   Adriano Patton (UniTrento)                 Data Manipulation         16 marzo 2012     29 / 30
Le istruzioni aritmetico/logiche
Tipi di traslazione


                                                                                       Data
                                                                                    Manipulation

       Nel caso vengano invece “dimenticati”e i posti vuoti vengano                Adriano Patton

       messi a 0, si parla di traslazione logica (logical shift). Eseguire        Computer
                                                                                  Architecture
       una traslazione logica a destra di un bit sulla rappresentazione in         Central
                                                                                   Processing Unit
       complemento a due di un numero equivale a dividerlo per 2, una              (CPU)
                                                                                   The Stored
       traslazione logica a sinistra equivale a moltiplicarlo per 2.               Program
                                                                                   Concept
                                                                                  Machine
                                  10101101     00101011                           Language
                                                                                   Machine
                                                                                   Instruction
                                                                                   Machine
       Si indicano infine come traslazioni aritmetiche (arithmetic                  Instruction
                                                                                   Encoding
       shifts) le traslazioni logiche in cui il posto del primo bit di            Program
       sinistra, che in alcune notazioni rappresenta il bit di segno, viene       Execution
                                                                                   Special-Purpose
       riempito con il valore che aveva originariamente, al fine di                 Register
                                                                                   Machine Cycle
       mantenere il segno invariato (per esempio in moltiplicazioni e              Example

       divisioni).                                                                Arithmetic/Logic
                                                                                  Instructions
                             10101101        10011011                              Arithmetic
                                                                                   Operations
                                                                                   Logic Operations
                                                                                   Rotation and
                                                                                   Shift Operations
     Adriano Patton (UniTrento)          Data Manipulation               16 marzo 2012     30 / 30

Más contenido relacionado

Último

Terza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdfTerza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdfPierLuigi Albini
 
Esame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptxEsame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptxfedericodellacosta2
 
La produzione e la gestione degli Open Data
La produzione e la gestione degli Open DataLa produzione e la gestione degli Open Data
La produzione e la gestione degli Open DataGianluigi Cogo
 
Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?
Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?
Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?Nicola Rabbi
 
La seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medieLa seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medieVincenzoPantalena1
 
Ticonzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza culturaTiconzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza culturaPierLuigi Albini
 
Storia dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptxStoria dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptxOrianaOcchino
 
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024Damiano Orru
 

Último (8)

Terza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdfTerza cultura w la scienza Italo Calvino.pdf
Terza cultura w la scienza Italo Calvino.pdf
 
Esame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptxEsame finale - riunione genitori 2024.pptx
Esame finale - riunione genitori 2024.pptx
 
La produzione e la gestione degli Open Data
La produzione e la gestione degli Open DataLa produzione e la gestione degli Open Data
La produzione e la gestione degli Open Data
 
Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?
Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?
Parole inclusive: le parole cambiano il mondo o il mondo cambia le parole?
 
La seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medieLa seconda guerra mondiale per licei e scuole medie
La seconda guerra mondiale per licei e scuole medie
 
Ticonzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza culturaTiconzero news 148.pdf aprile 2024 Terza cultura
Ticonzero news 148.pdf aprile 2024 Terza cultura
 
Storia dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptxStoria dell’Inghilterra nell’Età Moderna.pptx
Storia dell’Inghilterra nell’Età Moderna.pptx
 
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
biblioverifica ijf24 Festival Internazionale del Giornalismo 2024
 

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Data Manipulation

  • 1. Data Manipulation Adriano Patton Manipolazione dei Dati Computer Architecture (Data Manipulation) Central Processing Unit (CPU) Presentazione basata sul testo: The Stored Program Concept J. Glenn Brookshear, 2012. Computer Science: An Overview. 11th Machine Edition. Addison-Wesley. Language Machine Instruction Machine Instruction Encoding Patton Adriano Program Execution matricola numero 156358 Special-Purpose Register Machine Cycle Universit` di Trento a Example Arithmetic/Logic Instructions 16 marzo 2012 Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 1 / 30
  • 2. Programma della presentazione Data Manipulation 1 Computer Architecture Adriano Patton Central Processing Unit (CPU) The Stored Program Concept Computer Architecture Central 2 Machine Language Processing Unit (CPU) The Stored Machine Instruction Program Concept Machine Instruction Encoding Machine Language 3 Program Execution Machine Instruction Special-Purpose Register Machine Instruction Machine Cycle Encoding Program Example Execution Special-Purpose Register 4 Arithmetic/Logic Instructions Machine Cycle Example Arithmetic Operations Arithmetic/Logic Logic Operations Instructions Arithmetic Rotation and Shift Operations Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 2 / 30
  • 3. La Central Processing Unit Data Manipulation Adriano Patton Cos’` la CPU? e Computer Architecture La circuiteria che controlla la manipolazione dei dati all’interno di un Central Processing Unit computer ` detta Central Processing Unit, CPU o processore. e (CPU) The Stored Program Concept Nei computer costruiti a met` del secolo scorso la CPU era costituita a Machine Language da molti ripiani di circuiti. I processori attuali sono invece piccoli Machine Instruction quadrati di spessore molto ridotto (e superficie di pochi centimetri Machine Instruction Encoding quadrati), inseriti tramite dei perni sulla scheda di circuito principale Program del computer, detta anche scheda madre. Execution Special-Purpose In vari Mobile Internet Devices (MID), per esempio negli Register Machine Cycle smartphones, la CPU non ` pi` grande di met` francobollo e si parla e u a Example per questo di microprocessori. Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 3 / 30
  • 4. Le componenti della CPU Data Manipulation Adriano Patton Computer Una CPU ` costituita da tre parti fondamentali: e Architecture Central l’unit` di controllo (o control unit), che contiene la circuiteria a Processing Unit (CPU) che controlla e coordina le attivit` della macchina, ossia del a The Stored Program Concept computer; Machine Language l’unit` aritmetico/logica (arithmetic/logic unit o ALU), in a Machine Instruction cui si trova la circuiteria che compie le operazioni (logiche e Machine Instruction aritmetiche) sui dati; Encoding Program l’unit` dei registri, che contiene celle per l’archiviazione a Execution temporanea di dati, simili a quelle della memoria RAM, dette Special-Purpose Register registri. Machine Cycle Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 4 / 30
  • 5. I registri Data Manipulation Adriano Patton Computer Architecture Central I registri si dividono in due categorie: Processing Unit (CPU) gli special-purpose register, quali il program counter e The Stored Program Concept l’instruction register; Machine i general-purpose register, in cui vengono temporaneamente Language Machine memorizzati i dati che devono essere manipolati dalla CPU. Instruction Machine Hanno lo scopo di conservare in memoria i dati utilizzati come Instruction Encoding input dall’unit` aritmetico/logica e di fornire spazio sufficiente a a Program Execution memorizzare l’output di tale unit`. a Special-Purpose Register Machine Cycle Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 5 / 30
  • 6. Il bus Data Come comunicano CPU e RAM? Manipulation Adriano Patton Il trasferimento di stringhe di bit dalla Central Processing Unit (CPU) Computer alla memoria principale (e viceversa) avviene tramite una collezione di Architecture cavi che prende il nome di bus. Central Processing Unit (CPU) The Stored Program Concept Machine Language Machine Instruction Machine Instruction Encoding Program Execution Special-Purpose Register Machine Cycle Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Figura: Il bus collega CPU e memoria principale Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 6 / 30
  • 7. Ricapitolando Data Quando compie un’operazione su dati archiviati nella RAM: Manipulation Adriano Patton 1) attraverso il bus la CPU legge i dati dalla memoria, ossia Computer fornisce al circuito della memoria l’indirizzo della cella Architecture contenente i dati e quello del registro in cui i dati devono essere Central Processing Unit (CPU) trasferiti (o meglio copiati), assieme ad un segnale elettronico The Stored Program volto ad attivare il processo di lettura; Concept Machine 2) la CPU informa l’unit` aritmetico/logica a proposito di quale a Language Machine registro contenga i dati che devono essere utilizzati come input, Instruction Machine attiva il circuito della stessa unit` predisposto per l’operazione a Instruction Encoding in questione, comunica in quale registro l’output debba essere Program memorizzato; Execution Special-Purpose Register 3) utilizzando nuovamente il bus, la CPU scrive il risultato in Machine Cycle memoria, ossia fornisce al circuito della memoria l’indirizzo del Example Arithmetic/Logic registro contenente il dato da memorizzare e quello della cella di Instructions Arithmetic destinazione, assieme ad un altro segnale elettronico, volto Operations Logic Operations questa volta a far cominciare il processo di scrittura. Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 7 / 30
  • 8. La memoria Cache Data Utilit` delle varie memorie a Manipulation Adriano Patton Nei registri vengono memorizzati i dati che vengono utilizzati al Computer momento dalla CPU, nella memoria principale quelli che serviranno in Architecture un momento successivo poco distante, nella memoria di archiviazione Central Processing Unit (CPU) di massa quelli che probabilmente non verranno utilizzati in un futuro The Stored Program immediato. Concept Machine Language Un ulteriore livello Machine Instruction Machine La memoria Cache ` una parte di memoria ad alta velocit` e a Instruction Encoding collocata all’interno della CPU, in cui la macchina cerca sempre di Program mantenere i dati di momentaneo interesse. In questo modo, vari Execution Special-Purpose trasferimenti di dati che dovrebbero intercorrere tra la CPU e la RAM Register Machine Cycle avvengono invece tra i registri e la memoria Cache, con notevole Example risparmio di tempo. Le modifiche apportate ai dati nella memoria Arithmetic/Logic Instructions Cache vengono poi trasferite nella memoria principale in blocco e in Arithmetic Operations un momento pi` opportuno, con una velocizzazione dei processi. u Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 8 / 30
  • 9. L’idea dello stored-program Data Manipulation Grandi miglioramenti sono stati apportati ai computer per quel che Adriano Patton riguarda la loro flessibilit`. a Computer Architecture Central Processing Unit I primi calcolatori avevano i processi che dovevano eseguire (CPU) The Stored costruiti nella Control Unit, potevano/dovevano quindi eseguire Program Concept sempre lo stesso programma. Machine Language In un secondo momento si ` cominciato a costruire delle CPU e Machine Instruction che potessero essere ricablate in maniera da poter cambiare il Machine Instruction programma da eseguire attaccando gli appositi cavi. Encoding Program Un deciso passo avanti ` stato fatto quando si ` realizzato che i e e Execution Special-Purpose programmi possono essere codificati e salvati nella memoria Register Machine Cycle come gli altri dati. Quest’idea, che prende il nome di Example stored-program concept, permette di modificare il programma Arithmetic/Logic Instructions eseguito dal computer modificando la sua memoria senza dover Arithmetic Operations ricablare la CPU. Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 9 / 30
  • 10. Linguaggio macchina RISC vs CISC Data Manipulation Seguendo l’idea dello stored-program la CPU ` costruita in modo da e Adriano Patton poter distinguere le istruzioni da eseguire codificate come stringhe di bit (come un qualsiasi altro tipo di dato). Con linguaggio macchina Computer Architecture (Machine Language) si intende l’insieme di queste istruzioni, dette Central Processing Unit istruzioni macchina, e del sistema utilizzato per la loro codifica. (CPU) The Stored Program Concept Per quel che riguarda la quantit` di istruzioni elementari che una a Machine Language CPU deve saper riconoscere si distinguono due filosofie di pensiero Machine Instruction che portano rispettivamente ai seguenti: Machine Instruction Encoding reduced instruction set computer (RISC), poche istruzioni di Program base da eseguire in successione per ottenerne di pi` elaborate; u Execution Special-Purpose Register complex instruction set computer (CISC), un numero Machine Cycle maggiore di istruzioni pi` complesse, alcune magari ridondanti. u Example Arithmetic/Logic Computer con architettura RISC sono pi` veloci, pi` efficienti e meno u u Instructions Arithmetic costosi, macchine dell’altro tipo sono invece pensate per far fronte al Operations Logic Operations meglio alla sempre maggiore complessit` dei software in commercio. a Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 10 / 30
  • 11. La classificazione delle istruzioni macchina Trasferimento dati Data Manipulation Le istruzioni macchina si dividono tipicamente in tre gruppi: Adriano Patton gruppo di trasferimento dati. Computer Architecture gruppo aritmetico/logico. Central Processing Unit (CPU) gruppo di controllo. The Stored Program Concept Machine Language Nel gruppo di trasferimento dati si collocano le istruzioni che Machine richiedono spostamento di dati tra diverse locazioni. In realt` i dati a Instruction Machine che vengono spostati non sono quasi mai cancellati e le operazioni di Instruction Encoding trasferimento sono quindi pi` che altro operazioni di copiatura. u Program Execution Termini particolari si utilizzano per indicare istruzioni che comportano Special-Purpose Register il movimento di dati dalla RAM alla CPU (istruzione LOAD) e Machine Cycle Example viceversa (istruzione STORE). Sempre in questo gruppo, le istruzioni Arithmetic/Logic di I/O sono invece i comandi che la CPU utilizza per comunicare con Instructions Arithmetic le periferiche esterne al sistema CPU-RAM. Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 11 / 30
  • 12. La classificazione delle istruzioni macchina Gruppo aritmetico/logico e gruppo di controllo Data Manipulation Nel gruppo aritmetico/logico si trovano le istruzioni che Adriano Patton comunicano all’unit` di controllo di ordinare un’azione all’interno a dell’unit` aritmetico/logica. Quest’ultima ` in grado di svolgere le a e Computer Architecture operazioni aritmetiche, quelle logiche di OR, AND e XOR, e altre che Central Processing Unit comportano lo spostamento a destra o a sinistra del contenuto dei (CPU) The Stored registri, quali le operazioni ROTATE e SHIFT (che prevedono Program Concept rispettivamente che il bit che spostandosi dovrebbe uscire dal registro Machine Language si posizioni all’estremit` opposta della stringa o che venga troncato). a Machine Instruction Machine Instruction Encoding Appartengono al gruppo di controllo i comandi utili a dirigere Program l’esecuzione dei programmi, pi` che a manipolare i dati, quali per u Execution Special-Purpose esempio le istruzioni di salto (JUMP o BRANCH), che comunicano Register Machine Cycle alla CPU di eseguire un’istruzione diversa da quella che occupa il Example posto successivo nella lista. I salti possono essere di due tipi: Arithmetic/Logic Instructions - incondizionati, in tal caso vengono sempre eseguiti; Arithmetic Operations - condizionati, ovvero eseguiti solo se una certa condizione Logic Operations Rotation and (specificata nell’istruzione) ` soddisfatta. e Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 12 / 30
  • 13. La codifica delle istruzioni macchina Operazioni e operandi Data Manipulation Adriano Patton In generale la versione codificata di un’istruzione macchina si divide Computer Architecture in due parti: Central Processing Unit (CPU) il campo del codice-operazione (op-code o operation code The Stored Program field), Concept Machine il campo degli operandi (operand field). Language Machine I bit contenuti nell’op-code field contengono informazioni relative al Instruction Machine tipo di operazione che deve essere svolta (STORE, LOAD, AND, Instruction Encoding SHIFT), quelli nell’operand field forniscono informazioni aggiuntive, Program Execution quali gli indirizzi dei registri contenenti i dati in input, la cella di Special-Purpose Register memoria in cui memorizzare una stringa, il numero di posti di cui Machine Cycle ruotare una stringa di bit, ecc... Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 13 / 30
  • 14. La codifica delle istruzioni macchina Esempio Data Manipulation Per comprendere come le istruzioni macchina siano codificate, Adriano Patton consideriamo un modello di computer puramente illustrativo. Computer Architecture Central Processing Unit (CPU) The Stored Program Concept Machine Language Machine Instruction Machine Instruction Encoding Program Execution Special-Purpose Register Machine Cycle Example Questa macchina ha 16 registri general-purpose e 256 celle di Arithmetic/Logic Instructions memoria, tutti e tutte di 8 bit, numerati rispettivamente da 0 a 15 e Arithmetic Operations da 0 a 255, con gli indirizzi espressi nella notazione esadecimale. Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 14 / 30
  • 15. La codifica delle istruzioni macchina Esempio Data Manipulation Adriano Patton Nel nostro computer di esempio ogni istruzione macchina ` codificata e Computer usando 16 bit, rappresentati da 4 cifre esadecimali, la prima delle Architecture Central quali costituisce il codice-operazione, mentre le restanti tre occupano Processing Unit (CPU) il campo degli operandi. The Stored Program I codici-operazioni distinti nel nostro linguaggio macchina sono 12 e Concept sono indicati con le prime 12 cifre della notazione esadecimale. Machine Language Machine Instruction Machine Per esempio, il comando 1RXY indica di caricare (LOAD) nel registro Instruction Encoding R la stringa di bit contenuta nella cella di memoria di indirizzo XY Program Execution (notare che servono 8 bit per indicare l’indirizzo di una delle 256 Special-Purpose Register celle), mentre l’istruzione 8RST ordina di eseguire l’operazione di Machine Cycle Example AND tra le stringhe contenute nei registri S e T e di memorizzare il Arithmetic/Logic risultato dell’operazione nel registro R. Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 15 / 30
  • 16. L’Instruction Register e il Program Counter Data Manipulation Adriano Patton Computer Quando un computer deve eseguire un programma archiviato in Architecture memoria, procede copiando man mano le istruzione nella CPU, Central Processing Unit (CPU) decodificandole ed eseguendole. Esso copia le istruzioni dalla The Stored Program memoria seguendo l’ordine delle celle che le contengono, fintanto che Concept non incontra un’istruzione di salto. Machine Language Machine Instruction Machine Ruoli importanti in questo processo sono svolti da due registri Instruction Encoding special-purpose: l’instruction register, che contiene in ogni Program momento l’istruzione in esecuzione, e il program counter, che tiene Execution Special-Purpose traccia dell’indirizzo della cella contenente la prossima istruzione da Register Machine Cycle eseguire. Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 16 / 30
  • 17. Il ciclo macchina Data Manipulation Il lavoro della CPU consiste nella ripetizione continua di un Adriano Patton algoritmo, detto ciclo macchina, suddiviso in tre fasi: Computer Architecture Central 1) fase di fetch, Processing Unit (CPU) 2) fase di decode, The Stored Program Concept 3) fase di execute. Machine Language Machine Instruction Fetch Machine Instruction Encoding Nella fase di fetch la CPU chiede alla memoria l’istruzione Program memorizzata all’indirizzo contenuto nel program counter (e a quello Execution Special-Purpose successivo nel caso della macchina illustrativa, dato che un’istruzione Register Machine Cycle ` formata da 16 bit e occupa due celle), memorizza l’istruzione e Example nell’instruction register e incrementa di due il contenuto del program Arithmetic/Logic Instructions counter, in modo che contenga l’indirizzo del comando successivo. Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 17 / 30
  • 18. Il ciclo macchina Data Manipulation Adriano Patton Decode Computer Architecture Nella fase di decode del ciclo macchina la CPU decodifica il comando Central Processing Unit memorizzato nell’instruction register, lo divide nelle parti relative ad (CPU) The Stored operazione e operandi e ne interpreta il contenuto. Program Concept Machine Language Execute Machine Instruction Nella fase di execute la CPU attiva i circuiti predisposti per lo Machine Instruction Encoding svolgimento dell’operazione specificata dall’istruzione. Ad esempio, Program se il comando prevede un’operazione aritmetica, la CPU attiva il Execution Special-Purpose circuito corrispondente nell’unit` aritmetico/logica con i registri a Register Machine Cycle specificati dall’istruzione in input, attende il risultato e lo pone nel Example registro appropriato. Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 18 / 30
  • 19. Il ciclo macchina Data Manipulation Eseguita un’istruzione, la CPU ricomincia il ciclo con una nuova fase Adriano Patton di fetch, in vista della quale il program counter ` stato e Computer opportunamente incrementato di due unit`. a Architecture Central Processing Unit (CPU) The Stored Salti! Program Concept L’unico caso in cui il ciclo macchina viene modificato ` quello in cui il e Machine Language comando da eseguire sia un salto. Supponiamo che l’istruzione Machine Instruction ricevuta dalla CPU del nostro modello sia BA47, che significa “salta Machine Instruction (JUMP) al comando della cella 47 (esadecimale) nel caso il Encoding contenuto del registro A sia uguale a quello del registro 0”. Nella Program Execution fase di execute, prima vengono confrontate le stringhe nei due Special-Purpose Register registri, poi, se esse risultino essere differenti, la fase di execute Machine Cycle Example termina e riparte un nuovo ciclo, nel caso invece coincidano, la CPU Arithmetic/Logic copia nel program counter l’istruzione memorizzata nella cella 47 Instructions Arithmetic (cominciando di fatto una nuova e particolare fase di fetch). Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 19 / 30
  • 20. Il clock del computer Data Manipulation Adriano Patton Computer Architecture Central Processing Unit (CPU) The Stored Il clock del computer ` un circuito, detto anche oscillatore, che e Program Concept genera impulsi utilizzati per coordinare le attivit` della CPU e per a Machine scandirne i tempi. Maggiore ` la velocit` di clock di un PC, misurata e a Language Machine in Hertz, pi` velocemente questo porta a termine il suo ciclo u Instruction Machine macchina. Instruction Encoding Program Execution Special-Purpose Register Machine Cycle Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 20 / 30
  • 21. Esempio di esecuzione di un programma Data Manipulation Adriano Patton Computer Architecture Concretizziamo quanto visto fino ad ora descrivendo le operazioni che Central Processing Unit si susseguono all’interno del nostro computer modello quando viene (CPU) The Stored eseguito un programma. Program Concept Machine Language Addizione di due stringhe contenute in memoria Machine Instruction Machine Supponiamo che il programma consista nel leggere due dati dalla Instruction Encoding memoria, farne la somma e poi scrivere in memoria il risultato. Program Per cominciare dobbiamo salvare il programma nella memoria, per Execution Special-Purpose esempio nelle celle consecutive da quella di indirizzo A0 in poi. Register Machine Cycle Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 21 / 30
  • 22. Esempio di esecuzione di un programma Data Manipulation Adriano Patton Computer Architecture Central Per far partire l’esecuzione bisogna Processing Unit (CPU) memorizzare l’indirizzo A0 nel program The Stored Program counter e accendere il computer. Concept Machine La CPU comincia il suo ciclo con la fase Language di fetch, estraendo la prima istruzione Machine Instruction dalla cella A0 e copiandola Machine Instruction Encoding nell’instruction register. Ci` comporta lo o Program spostamento di 16 bit, il contenuto di Execution Special-Purpose due celle di memoria, perci` il program o Register Machine Cycle counter viene incrementato di due unit`.a Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 22 / 30
  • 23. Esempio di esecuzione di un programma Data Manipulation Alla fine della fase di fetch abbiamo: Adriano Patton A2 nel program counter, Computer Architecture 156C nell’instruction register. Central Processing Unit Nella fase di decode successiva, la CPU decodifica il comando 156C (CPU) The Stored contenuto nell’instruction register, che ordina di caricare nel registro Program Concept 5 il contenuto della cella 6C. Nella fase di execute questa operazione Machine Language viene portata a termine e pu` iniziare un nuovo ciclo. o Machine Instruction Machine Instruction Encoding Il contenuto delle celle A2 e A3 (166D) viene spostato nell’instruction Program register e il program counter ` nuovamente incrementato di due: e Execution Special-Purpose Register A4 nel program counter, Machine Cycle Example 166D nell’instruction register. Arithmetic/Logic Instructions Il comando 166D viene tradotto come “caricare nel registro 6 i bit Arithmetic Operations della cella 6D”e successivamente eseguito. Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 23 / 30
  • 24. Esempio di esecuzione di un programma Data Manipulation Adriano Patton Computer Architecture Central Allo stesso modo si svolgono i cicli successivi, in cui vengono reperite, Processing Unit (CPU) decodificate e eseguite le seguenti istruzioni: The Stored Program Concept 5056: somma i contenuti dei registri 5 e 6 e memorizza il Machine Language risultato nel registro 0; Machine Instruction 306E: scrivi il contenuto del registro 0 nella cella di memoria di Machine Instruction indirizzo 6E; Encoding Program C000: arresta il processo. Execution Special-Purpose Register Machine Cycle Example Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 24 / 30
  • 25. Le istruzioni aritmetico/logiche Data Manipulation Adriano Patton Il gruppo delle istruzioni aritmetico/logiche comprende tutti i comandi che richiedono operazioni: Computer Architecture aritmetiche, Central Processing Unit (CPU) logiche, The Stored Program Concept di spostamento-bit (ROTATE e SHIFT). Machine Language Machine Instruction Operazioni aritmetiche Machine Instruction Encoding Alcune CPU sono progettate per eseguire solamente somme e Program sottrazioni, altre solo addizioni. Un’operazione di sottrazione pu` o Execution Special-Purpose infatti essere calcolata come un’addizione (modificando Register Machine Cycle opportunamente le stringhe di bit operande). Allo stesso modo una Example moltiplicazione pu` essere ricondotta ad una serie di addizioni e una o Arithmetic/Logic Instructions divisione ad una di sottrazioni. Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 25 / 30
  • 26. Le istruzioni aritmetico/logiche Data Manipulation Adriano Patton Complemento a 2 vs virgola mobile Computer Esistono diverse tipologie della stessa operazione di somma: Architecture Central addizionare due valori memorizzati nella notazione del complemento Processing Unit (CPU) a due comporta soltanto una somma bit a bit, addizionarne due The Stored Program Concept memorizzati nella notazione a virgola mobile (floating point) Machine comporta invece un procedimento pi` lungo. La mantissa deve essere u Language Machine estratta, la virgola spostata del numero corretto di posizioni e il bit di Instruction Machine segno deve essere controllato. Solamente a questo punto si procede Instruction Encoding con la somma bit a bit, per poi ritradurre il risultato in notazione Program Execution floating point. Special-Purpose Entrambi i procedimenti appena descritti vengono definiti “operazioni Register Machine Cycle di addizione”, ma prevedono azioni molto diverse da parte del Example Arithmetic/Logic computer. Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 26 / 30
  • 27. Le istruzioni aritmetico/logiche Data Manipulation Adriano Patton Operazioni logiche Computer Architecture Le operazioni binarie di OR, AND e XOR definite su due bit di input Central Processing Unit possono essere estese facilmente a operazioni su due stringhe di bit: (CPU) The Stored per fare un’operazione di OR tra due stringhe si procede eseguendo Program Concept l’OR bit a bit (il primo col primo, il secondo col secondo,...). Allo Machine Language stesso modo per AND e XOR. Machine Instruction Machine 10110001 Instruction Encoding OR 01100100 Program Execution Special-Purpose 11110101 Register Machine Cycle Example Il risultato di una colonna ` calcolato indipendentemente dalle altre. e Arithmetic/Logic Instructions Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 27 / 30
  • 28. Le istruzioni aritmetico/logiche Masking bits Data Manipulation Le operazioni logiche sono utilizzate per modificare le stringhe Adriano Patton forzando alcuni bit ad assumere un determinato valore in quelle che Computer Architecture vengono dette operazioni di masking. Central Processing Unit Se si volesse per esempio indurre i primi quattro bit di una stringa ad (CPU) The Stored assumere il valore 1, lasciando invariati gli altri, basterebbe eseguire Program Concept un OR tra la stringa da “mascherare”e la stringa 11110000. Per far Machine diventare invece questi bit degli 0 basterebbe eseguire un AND con la Language Machine stringa 00001111. Instruction Machine Instruction Encoding 10110001 10110001 10110001 Program Execution OR 11110000 AND 00001111 XOR 11111111 Special-Purpose Register 11110001 00000001 01001110 Machine Cycle Example Arithmetic/Logic Facendo invece lo XOR della stringa data con la stringa 11111111 ne Instructions otteniamo la complementare. Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 28 / 30
  • 29. Le istruzioni aritmetico/logiche Data Operazioni Shift e Rotate Manipulation Adriano Patton Le operazioni di traslazione e di rotazione permettono di spostare i Computer bit all’interno di un registro. Un’operazione di questa categoria trasla Architecture tutti i bit (per esempio) a destra di (per esempio) 2 posti. Central Processing Unit (CPU) The Stored 10101101 −→ ??101011 01 Program Concept Machine Language Le operazioni di traslazione si distinguono in base al loro Machine Instruction comportamento sui (nel nostro caso 2) bit che “dovrebbero Machine Instruction cadere”fuori dal registro, che nel nostro caso contiene 8 bit. Encoding Program Execution Nel caso questi bit vengano inseriti, rispettando l’ordine, nei Special-Purpose Register posti lasciati liberi all’estremit` opposta della stringa rispetto a a Machine Cycle Example quella in cui si trovavano, si parla di traslazione circolare o Arithmetic/Logic Instructions rotazione (circular shift o rotation). Arithmetic Operations 10101101 01101011 Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 29 / 30
  • 30. Le istruzioni aritmetico/logiche Tipi di traslazione Data Manipulation Nel caso vengano invece “dimenticati”e i posti vuoti vengano Adriano Patton messi a 0, si parla di traslazione logica (logical shift). Eseguire Computer Architecture una traslazione logica a destra di un bit sulla rappresentazione in Central Processing Unit complemento a due di un numero equivale a dividerlo per 2, una (CPU) The Stored traslazione logica a sinistra equivale a moltiplicarlo per 2. Program Concept Machine 10101101 00101011 Language Machine Instruction Machine Si indicano infine come traslazioni aritmetiche (arithmetic Instruction Encoding shifts) le traslazioni logiche in cui il posto del primo bit di Program sinistra, che in alcune notazioni rappresenta il bit di segno, viene Execution Special-Purpose riempito con il valore che aveva originariamente, al fine di Register Machine Cycle mantenere il segno invariato (per esempio in moltiplicazioni e Example divisioni). Arithmetic/Logic Instructions 10101101 10011011 Arithmetic Operations Logic Operations Rotation and Shift Operations Adriano Patton (UniTrento) Data Manipulation 16 marzo 2012 30 / 30