Anteprima
Vedrai una selezione di 11 pagine su 46
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 1 Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 2
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 6
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 11
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 16
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 21
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 26
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 31
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 36
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 41
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Introduzione all'architettura dei calcolatori  - Algebra di Boole, livello logico digitale i7 Pag. 46
1 su 46
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

La memoria

Organizzazione della memoria:

  • Anche se la capacità è maggiore rispetto al flip-flop ottale, richiede meno pin
  • Questa organizzazione è facilmente estendibile a memorie di dimensioni maggiori
  • Il numero delle parole è sempre una potenza di 2

Chip di memoria:

  • 512K parole x 8 bit - 4096k parole x 1 bit
  • RAS = selezione riga (Row Address Strobe)
  • CAS = selezione colonna (Column Address Strobe)
  • WE = write enabled
  • CS = chip select
  • OE = output enabled

I parametri che caratterizzano la memoria sono:

  • Dimensione
  • Velocità
  • Costo

Questi parametri sono ovviamente in contrasto tra loro; ad esempio, ottenere un tempo di accesso più breve porta inevitabilmente ad innalzare il costo per bit.

Per ovviare a questo problema, all'interno di un calcolatore vengono utilizzati più tipi di memoria, ognuno con il proprio compito.

Le memorie formano quindi una gerarchia, illustrata

nella piramide:
  • Scendendo nella gerarchia:
    • Diminuiscono i costi
    • Aumenta la capacità
    • Aumenta il tempo d'accesso
    • Diminuisce la frequenza di accesso del processore

Tipologie di memoria

Memoria Cache

Storicamente le CPU sono sempre state più veloci delle memorie; al contrario lo squilibrio è nel tempo aumentato.

Questo significa che quando la CPU lancia una richiesta ad alla memoria, essa non otterrà la parola richiesta se non molti cicli di CPU dopo.

Una soluzione è quella di richiedere i dati alla memoria ancor prima che debbano essere utilizzati dalla CPU. Se la CPU prova ad utilizzare delle parole non ancora disponibili però, l'esecuzione deve essere bloccata.

La soluzione utilizzata maggiormente oggi è quella di combinare la "grande" e "lenta" memoria RAM con una più piccola e veloce memoria, detta cache.

L'idea base consiste nel mantenere le parole di memoria utilizzate

è altamente probabile che in istanti immediatamente successivi possa venire referenziato lo stesso indirizzo.

è altamenteprobabile che in istanti immediatamente successivi lo stesso indirizzo possa essere nuovamente referenziato.

Quando una parola viene referenziata; la parola stessa e alcune parole vicine sono portate dalla RAM alla cache.

Se durante un piccolo intervallo una parola viene letta o scritta k volte, verrà effettuata una sola lettura dalla lenta RAMe k-1 riferimenti alla veloce cache.

Per formalizzare questo ragionamento si impiegano:

  • Tempo di accesso alla cache (c)
  • Tempo di accesso alla memoria centrale (m)
  • Frequenza di successi (hit ratio) (h)
  • [frequenza di fallimento – missa ratio: 1-h

Si calcola quindi il tempo medio di accesso come:

tempo medio di accesso = c + (1-h)m

Le memorie centrali e le cache sono divise in blocchi di grandezza fissa per trarre vantaggio dal principio di località (all’interno della cache si parla di linea di cache); così se avviene un miss l’interna linea viene caricata all’interno

dellacache.Un problema circa l'organizzazione della cache riguarda quello di avere una cache unificata (dati e istruzioni usano la stessa cache, implementazione più semplice) o specializzata (chiamata architettura Harvard; favorisce il prelievo contemporaneo di dati e istruzioni quando si utilizza la pipeline).

Oggi è comune avere più cache, detti livelli (anche 3-4): quelli più vicini alla CPU sono più veloci ma più piccoli.

Per quanto riguarda la gestione della memoria cache ci sono tre aspetti principali da considerare:

  • Il posizionamento di un blocco nella cache:
    • Indirizzamento diretto
    • Fully associative
    • Set associative
  • Algoritmo di rimpiazzo (gestire la scelta del blocco da rimpiazzare):
    • Politica di Belady o ottimale
    • Politica LRU
    • Random
  • Politica di scrittura (write policy): in caso i dati di un blocco siano stati modificati, bisogna riscriverlo in memoria centrale prima di rimpiazzarlo:
    • Write through
    • Write

      ALGORITMI DI POSIZIONAMENTO

      Indirizzamento diretto:

      Un blocco può essere inserito solo in un punto specifico della cache, il cui indirizzo è ottenuto eseguendo:

      (indirizzo del blocco) % (numero di blocchi nella cache)

      La regola del modulo (% = resto della divisione tra numeri interi) è una tecnica che permette di mappare una parte di memoria grande in una memoria più piccola. Linea 1 (byte 32-63), Linea 2049 (Byte 65568-65599)

      Linea 0 (byte 0-31), Linea 2048 (Byte 65536-65567)

      cache da 2048 elementi (*32Byte = 64KB)

      Gli elementi della cache sono composti da 3 parti:

      • Il bit Valid, che indica se il dato nell'elemento è valido o meno (all'inizio vengono tutti marcati come non validi)
      • Il campo Tag, che è un valore univoco a 16bit corrispondente alla linea di memoria da cui vengono i dati
      • Il campo Data, che contiene una copia del dato di memoria

      Gli indirizzi di memoria di N bit hanno la seguente struttura:

      Etichetta Indice Sp.

      Parola Sp. ByteEtichetta (tag): corrisponde al tag memorizzato all'interno della cache; identifica una linea di memoria Indice (LINE): identifica un blocco della cache (es. 4K blocchi -> LINE 12bit) Word (Offset parola): identifica la parola all'interno del blocco (blocchi di 4 parole -> WORD 2 bit) Byte (Offset byte - poco usato): identifica il byte della parola (parole di 4 byte -> BYTE 2 bit) Fully Associative (Completamente associativo) In una cache fully associative, un blocco di memoria può essere messo in qualsiasi blocco della memoria cache. Questo significa che per ricercare un blocco, tutta la memoria deve essere esaminata. (non esiste il campo line) Set-Associative Un buon compromesso tra le due soluzioni è la cache set-associative. Con la cache set-associative, ogni elemento della cache può contenere n linee di cache (associativa a n linee). Ovvero, una linea di cache viene prima messa in corrispondenza di un insieme (set), e poi

      Può essere messa in unaqualsiasi di esse. L'insieme viene scelto con la regola del modulo. Esempio: indirizzamento con i tre metodi di un blocco di indirizzo 12:

      ALGORITMI DI RIMPIAZZO

      EAS RECENTLY USED (LRU)

      Con questo algoritmo, si sostituiscono i blocchi meno utilizzati, ipotizzando che il blocco utilizzato meno recentemente è quello che ha la minore possibilità di essere referenziato in futuro. (si approssima il futuro al passato recente)

      RANDOMICO

      I blocchi da sostituire vengono scelti randomicamente. Algoritmi di questo tipo sono estremamente più facili da realizzare, ed è dimostrato che al crescere della dimensione della cache lo scarto di performance con l'algoritmo LRU in termini di miss rate è minimo o nullo.

      POLITICA DI SCRITTURA

      Eventualmente i dati nella cache verranno modificati dalla CPU. Si pone quindi il problema di decidere quando aggiornarli in memoria centrale.

      WRITE THROUGH

      L'aggiornamento nella memoria cache comporta

      Un immediato aggiornamento anche nella memoria centrale. Questo permette a più CPU di avere sempre i dati aggiornati nelle cache locali. Allo stesso tempo però comporta una grande mole di traffico verso la memoria che può rallentare il sistema.

      WRITE BACK: l'aggiornamento avviene quando il blocco di cache sta per essere sostituito e solo se un bit di aggiornamento (che indica se il blocco è stato modificato da quando è stato caricato) è settato. Questo evita di eseguire molte richieste alla memoria centrale, ma in un sistema con più CPU, esse non dispongono di dati aggiornati.

      Pentium 4 Intel Core i7

      TIPOLOGIE DI MEMORIA

      Volatile:

      • RAM = Random Access Memory; può essere sia scritta che letta
      • SRAM (Static) = costruite con circuiti simili ai flip-flop D. Sono molto veloci
      • DRAM (Dynamic) = array di celle ognuna con transistor e condensatore (carico/scarico). Hanno bisogno di refresh. Sono più complesse delle SRAM

      ma offrono maggiore capacità:

      • SDRAM (Synchronous) = ibrida, in parte statica in parte dinamica. È guidata dal clock principale del sistema, eliminando il bisogno di segnali aggiuntivi. Non volatile.
      • ROM = Read Only Memory; non possono essere riscritte; mantengono i dati senza alimentazione (giochi, elettrodomestici).
      • PROM = (Programmable) può essere riscritta (una volta); contiene fusibili in corrispondenza di ogni cella. Usata dalle aziende per la progettazione.
      • EPROM = (Erasable) Possono essere cancellate.
      • EEPROM = (Elettricamente)ROM.

      La memoria ROM (Read Only Memory) è una memoria permanente di sola lettura scritta in fase di fabbricazione dal costruttore. Contiene:

      • Informazioni di base (la cui modifica comprometterebbe il funzionamento della macchina).
      • Le istruzioni del programma di avviamento (fase di bootstrap) che si attiva all'accensione della macchina.

      Il BIOS (Basic Input/Output System) è la sequenza di

      istruzioni di avvio eseguita automaticamente all'accensione del computer. Si compone di 3 fasi:
      1. Attivazione dell'HW installato e test di funzionamento del sistema (verifica dell'HW)
      2. Verifica della presenza del sistema operativo e suo caricamento
      3. Avvio del primo processo
      Le EPROM (Erasable-Programmable ROM) sono realizzate in modo da consentire sia la cancellazione sia la riscrittura del contenuto per mezzo di raggi ultravioletti (al contrario delle EEPROM - Eletrically).RAM La memoria RAM è la memoria nella quale vengono conservate le istruzioni del programma attualmente in esecuzione e i suoi dati. Durante l'esecuzione i programmi e i dati devono trovarsi almeno parzialmente nella memoria centrale. La RAM è una memoria volatile (a contrario della ROM): (ad accesso casuale -> il tempo di accesso non differisce a seconda della cella indirizzata), ovvero i dati me
Dettagli
Publisher
A.A. 2021-2022
46 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gian_fri99 di informazioni apprese con la frequenza delle lezioni di Architettura degli elaboratori e sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bari o del prof Pirlo Giuseppe.