GCSE Von Neumann Architecture (14-16 anni)

  • Una presentazione della lezione in PowerPoint modificabile
  • Documenti di revisione modificabili
  • Un glossario che copre le terminologie chiave del modulo
  • Mappe degli argomenti per visualizzare i concetti chiave
  • Schede stampabili per aiutare gli studenti a impegnarsi nel richiamo attivo e nella ripetizione basata sulla fiduciabasata sulla ripetizione
  • Un quiz con relativa chiave di risposta per verificare la conoscenza e la comprensione del modulo

A-Level Contemporary processors (16-18 anni)

  • Una presentazione della lezione in PowerPoint modificabile
  • Documenti di ripasso modificabili
  • Un glossario che copre le terminologie chiave del modulo
  • Mappe tematiche per visualizzare i concetti chiave
  • Schede stampabili per aiutare gli studenti a impegnarsi nel richiamo attivo e nella ripetizione basata sulla fiducia
  • Un quiz con relativa chiave di risposta per testare la conoscenza e la comprensione del modulo

Il termine Architetture di computer si riferisce a un insieme di regole che indicano come il software e l’hardware del computer sono combinati insieme e come interagiscono per rendere funzionale un computer, inoltre, l’architettura del computer specifica anche quali tecnologie il computer è in grado di gestire.

L’architettura del computer è una specifica che descrive come il software e l’hardware interagiscono insieme per produrre una piattaforma funzionante.

Quando una persona pensa alla parola “architettura”, la mente umana probabilmente penserà all’assemblaggio di edifici o case, inoltre, con lo stesso principio in mente, l’architettura del computer comporta la costruzione di un sistema informatico internamente ed esternamente.

Ci sono tre categorie principali nell’architettura del computer:

  • Progettazione del sistema:
    • La progettazione del sistema è la parte hardware, che include multiprocessori, controller di memoria, CPU, processori di dati e accesso diretto alla memoria. Il design del sistema può essere considerato il sistema informatico vero e proprio.
  • Architettura del set di istruzioni:
    • Questa ruota intorno alla CPU. Include le capacità e le funzioni della CPU, inoltre include anche i formati di dati della CPU, il linguaggio di programmazione e i tipi di registro e le istruzioni del processore, che sono usati dai programmatori di computer.
    • La CPU è la parte in un computer, che fa funzionare un programma, che sia il sistema operativo o un’applicazione come Photoshop.
  • Microarchitettura:
    • La microarchitettura in un sistema definirà gli elementi di memorizzazione/percorsi dei dati e come saranno implementati nell’architettura del set di istruzioni, la microarchitettura è anche responsabile dell’elaborazione dei dati.

Tutti questi elementi si fondono in un certo ordine per rendere il sistema funzionale.

Che cos’è l’architettura di von Neumann?

Nel 1945, John von Neumann, che era un matematico all’epoca, aveva approfondito lo studio che, un computer potrebbe avere una struttura semplice fissa ed essere ancora in grado di eseguire qualsiasi tipo di calcolo senza modifiche hardware. Questo a condizione che il computer sia adeguatamente programmato con istruzioni appropriate, in cui è in grado di eseguirle.

Il progresso principale di Von Neumann era indicato come “trasferimento di controllo condizionato”, che aveva permesso di interrompere una sequenza di programma e poi reiniziarla in qualsiasi punto, inoltre questo progresso aveva permesso di memorizzare dati con istruzioni nella stessa unità di memoria.

Questo era vantaggioso perché se le istruzioni erano desiderate, possono essere modificate aritmeticamente allo stesso modo dei dati.

L’architettura di von Neumann descrive un modello di progettazione per un computer digitale a programma memorizzato che incorpora una sola unità di elaborazione e una sola struttura di memorizzazione separata, che conterrà sia le istruzioni che i dati.

L’architettura di von Neumann si riferisce a un’architettura che mantiene i dati e le istruzioni programmate nella RAM (Random Access Memory) di lettura-scrittura.

Caratteristiche dell’architettura di von Neumann

Come detto sopra, l’architettura di von Neumann si basa sul fatto che i dati del programma e i dati delle istruzioni sono memorizzati nella stessa unità di memoria. Questo può anche essere chiamato il “concetto di programma memorizzato”.

Questo design è ancora usato nei computer prodotti al giorno d’oggi:

Architettura von Neumann vs Harvard Immagine 1

Unità centrale di elaborazione (CPU):

  • La CPU è un circuito elettronico, che esegue le istruzioni del programma del computer.
  • La CPU può anche essere chiamata microprocessore o processore.

In seno alla CPU, c’è l’ALU, la CU e i registri, che sono descritti più in dettaglio qui sotto:

Unità di controllo:

  • Controlla il funzionamento dell’ALU, della memoria e dell’input/output, istruendoli su come rispondere alle istruzioni del programma che ha appena letto e interpretato dall’unità di memoria. L’unità di controllo dirige le operazioni della CPU eseguendo i seguenti lavori:
    • Coordinamento e controllo delle attività della CPU
    • Gestione del flusso di dati tra gli altri componenti e la CPU
    • Riconoscimento e accettazione dell’istruzione successiva
    • Decodifica delle istruzioni
    • Stoccaggio dei dati risultanti in una unità di memoria

Unità aritmetica e logica (ALU):

  • Consente di effettuare operazioni logiche e aritmetiche come l’addizione e la sottrazione.
  • (Gli operatori logici sono: AND, OR, NOT, XOR)

Unità di memoria:

  • Consiste nella RAM, che è partizionata e consiste in un indirizzo e nel suo contenuto, che sono in forma binaria.
  • La RAM (Random Access Memory) è un tipo di memoria veloce a differenza dei dischi rigidi, è anche direttamente accessibile dalla CPU.
  • L’esistenza della RAM in una CPU, le permette di funzionare molto più velocemente e quindi in modo più efficiente.

Registri:

  • Piccolo blocco nella CPU che consiste in celle di memoria ad alta velocità che immagazzinano i dati prima che vengano elaborati, tutte le operazioni logiche, aritmetiche e di spostamento avvengono qui.
  • Il registro consiste di 5 componenti
    • Contatore di programma (PC): Contiene l’indirizzo della prossima istruzione da eseguire
    • Accumulatore (AC): Area di immagazzinamento dove vengono immagazzinati i risultati logici e aritmetici
    • Registro di indirizzo di memoria (MAR): Contiene l’indirizzo di una posizione dei dati che deve essere letta o scritta
    • Registro di dati di memoria (MDR): Posizione di memoria temporanea che memorizza i dati che sono stati letti, o i dati che devono ancora essere scritti
    • Current Instruction Register (CIR): Area dove si sta eseguendo l’istruzione corrente. L’operazione è divisa in operando e opcode.
      • Operando: Contiene i dati o l’indirizzo dei dati (dove verrà eseguita l’operazione)
      • Opcode: Specifica il tipo di istruzione da eseguire

Bus:

  • Sono un insieme di fili paralleli che collegano i componenti (due o più) all’interno della CPU. All’interno della CPU, ci sono tre tipi di bus, e tutti si riferiscono a un bus di sistema. I tipi di bus sono: Bus dati, Bus di controllo e Bus degli indirizzi.
  • Bus dati: Questo bus è indicato come un bus bidirezionale, il che significa che i “bit” possono essere trasportati in entrambe le direzioni. Questo bus è usato per trasportare dati e istruzioni tra il processore, l’unità di memoria e l’ingresso/uscita.
  • Bus degli indirizzi: Trasmette l’indirizzo di memoria che specifica da dove i dati rilevanti devono essere inviati o recuperati. (Il bus degli indirizzi non trasporta i dati, solo l’indirizzo)
  • Bus di controllo: Questo è anche un bus bidirezionale usato per trasmettere “segnali di controllo”/comandi dalla CPU (e segnali di stato da altri componenti) per controllare e coordinare tutte le attività all’interno del computer.

Input/Output:

  • Informazioni passate dall’utente/informazioni ricevute dall’utente.

Svantaggi e svantaggi dell’architettura von Neumann

Svantaggi Svantaggi
L’unità di controllo recupera istruzioni e dati allo stesso modo da un’unità di memoria. Questo semplifica lo sviluppo e la progettazione dell’unità di controllo L’esecuzione parallela dei programmi non è permessa a causa dell’elaborazione seriale delle istruzioni
Il vantaggio di cui sopra significa anche che i dati dalla memoria e dai dispositivi sono accessibili nello stesso modo. Quindi aumentando l’efficienza Solo un “bus” può essere accessibile alla volta. Questo fa sì che la CPU sia inattiva (poiché è più veloce di un bus di dati) Questo è considerato il collo di bottiglia di von Neumann
Una caratteristica vantaggiosa è che i programmatori hanno il controllo dell’organizzazione della memoria Anche se sia le istruzioni che i dati sono memorizzati nello stesso posto può essere visto come un vantaggio nel complesso. Questo può però comportare la riscrittura su di essa, con conseguente perdita di dati, a causa di un errore in un programma
Se un programma difettoso non riesce a rilasciare la memoria quando non la richiede (o finisce con essa), può causare il blocco del computer, come risultato di insufficiente memoria disponibile

Collasso di von Neumann

Come i processori, e i computer nel corso degli anni hanno avuto un aumento della velocità di elaborazione, e i miglioramenti della memoria sono aumentati in capacità, piuttosto che in velocità, questo aveva portato al termine “collo di bottiglia von Neumann”. Questo perché la CPU trascorre una grande quantità di tempo inattivo (non facendo nulla), in attesa che i dati vengano recuperati dalla memoria. Non importa quanto sia veloce il processore, questo dipende in definitiva dalla velocità di trasferimento, infatti, se il processore è più veloce, questo significa solo che avrà un maggiore tempo “inattivo”.

Gli approcci per superare questo collo di bottiglia includono:

  • Caching:
    • Dati che sono più facilmente accessibili nella RAM, piuttosto che memorizzati nella memoria principale. Il tipo di dati memorizzati qui sarà il tipo di dati, che è usato frequentemente.
  • Prefetching:
    • Il trasporto di alcuni dati nella cache prima che siano richiesti. Questo velocizza l’accesso in caso di richiesta dei dati.
  • Multithreading:
    • Gestione di molte richieste contemporaneamente in thread separati.
  • Nuovi tipi di RAM:
    • Come la DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory).
    • Questo tipo di RAM attiva l’uscita sia sul fronte di discesa che sul fronte di salita del clock di sistema, invece che solo sul fronte di salita.
    • Questo può potenzialmente raddoppiare l’uscita.
  • RAMBUS:
    • Un sottosistema che collega il controller della RAM, la RAM e il bus (percorso) che collega la RAM al microprocessore e ai dispositivi all’interno del computer che la utilizzano.
  • Processing in Memory (PIM):
    • Le PIM integrano un processore e la memoria in un unico microchip.

Che cos’è l’architettura Harvard?

L’architettura Harvard prende il nome dal computer basato sul relè “Harvard Mark I”, che era un computer IBM dell’Università di Harvard.

Il computer memorizzava istruzioni su “nastro perforato” (24 bit di larghezza), inoltre i dati erano memorizzati in contatori elettromeccanici. La CPU di questi primi sistemi di computer conteneva interamente la memorizzazione dei dati, e non forniva alcun accesso alla memorizzazione delle istruzioni come dati.

L’architettura Harvard è un tipo di architettura che memorizza i dati e le istruzioni separatamente, dividendo quindi l’unità di memoria.

La CPU in un sistema con architettura Harvard è abilitata a recuperare dati e istruzioni simultaneamente, grazie all’architettura che ha bus separati per il trasferimento dei dati e il recupero delle istruzioni.

Caratteristiche dell’architettura Harvard

Entrambi i tipi di architetture contengono gli stessi componenti, tuttavia la differenza principale è che, in un’architettura Harvard i trasferimenti di istruzioni e di dati possono essere eseguiti allo stesso tempo (simultaneamente) (poiché il sistema ha due bus, uno per i trasferimenti di dati e uno per le istruzioni).

Von-Neumann vs Architettura Harvard Immagine 2

Svantaggi e svantaggi dell’Architettura Harvard

Svantaggi Svantaggi
Dato che le istruzioni e i dati sono trasferiti in bus diversi, questo significa che c’è una minore possibilità di corruzione dei dati La memoria dedicata a ciascuno (dati e istruzioni) deve essere bilanciata dal produttore. Perché se c’è memoria dati libera, non può essere usata per le istruzioni e viceversa
Istruzioni e dati sono accessibili allo stesso modo Tuttavia questo vantaggio (a sinistra) comporta un’architettura più complessa, perché richiede due bus. Il che significa che richiede più tempo per la fabbricazione e rende questi sistemi più costosi
L’architettura Harvard offre un rendimento elevato, poiché questa architettura permette il flusso simultaneo di dati e istruzioni. Questi sono tenuti in memoria separata e viaggiano attraverso bus separati Questa architettura però, nonostante le alte prestazioni, è molto complessa, specialmente per i produttori di schede principali da implementare
C’è una maggiore larghezza di banda della memoria che è più prevedibile, a causa dell’architettura che ha memoria separata per istruzioni e dati Anche se, come detto sopra, per ottenere il vantaggio a sinistra, l’architettura Harvard richiede una unità di controllo per due bus. Il che aumenta la complessità e rende lo sviluppo più difficile. Tutto ciò aumenta il prezzo del sistema

Architettura Harvard modificata

Architettura Von Neumann contro Architettura Harvard:

Architettura Von Neumann Architettura Harvard
Basata sul concetto di computer a programma memorizzato Basata sul modello di computer Harvard Mark I basato sul relè
Usa lo stesso indirizzo fisico di memoria per istruzioni e dati Utilizza indirizzi di memoria separati per istruzioni e dati
I processori richiedono due cicli di clock per eseguire un’istruzione Il processore richiede solo un ciclo per completare un’istruzione
L’architettura von Neumann consiste in un design di unità di controllo più semplice, il che significa che è richiesto uno sviluppo meno complesso. Questo significa che il sistema sarà meno costoso L’unità di controllo delle architetture Harvard consiste di due bus, il che risulta in un sistema più complicato. Questo si aggiunge al costo di sviluppo, risultando in un sistema più costoso
Istruzioni e trasferimenti di dati non possono essere eseguiti allo stesso tempo Istruzioni e trasferimenti di dati possono essere eseguiti allo stesso tempo
Utilizzati in computer portatili, personal computer e workstation Utilizzato nell’elaborazione dei segnali e nei micro-controller

Architettura Harvard modificata:

Un’architettura Harvard pura soffre dello svantaggio che il meccanismo deve essere fornito per separare il carico dal programma da eseguire nella memoria delle istruzioni e lasciando così i dati da operare nella memoria dei dati.

Tuttavia i sistemi moderni oggi usano una tecnologia di sola lettura per la memoria di istruzioni e una tecnologia di lettura/scrittura per la stessa memoria.

Questo permette a un sistema di permettere l’esecuzione di un programma pre-caricato non appena viene applicata l’alimentazione.

Tuttavia, i dati saranno in uno stato sconosciuto, quindi non possono fornire alcun valore predefinito al programma.

La soluzione a questo è fornire istruzioni in linguaggio macchina in modo che il contenuto della memoria di istruzioni possa essere letto come se fossero dati, oltre a fornire un percorso hardware.

La maggior parte delle adozioni dell’architettura Harvard al giorno d’oggi è una forma modificata, questo per allentare la rigida separazione tra i dati e il codice, pur mantenendo un accesso simultaneo di dati e istruzioni ad alte prestazioni dell’architettura Harvard originale.

L’architettura Harvard modificata è una variazione dell’architettura Harvard originale. Tuttavia la differenza tra le due è che l’architettura modificata permette l’accesso al contenuto della memoria delle istruzioni come dati.

Le tre modifiche principali applicate a un’architettura Harvard modificata sono:

  • Architettura split-cache:
    • Molto simile all’architettura von Neumann, questa modifica costruisce una gerarchia di memoria con cache CPU per istruzioni e dati ai livelli inferiori della gerarchia.
  • Architettura Instruction-memory-as-data:
    • Questa modifica permette di accedere al contenuto della memoria delle istruzioni come i dati. Questo può essere trasportato perché i dati non possono essere eseguiti direttamente come istruzioni.
    • (Anche se c’è un dibattito se questo possa essere chiamato “architettura Harvard modificata” o meno)
  • Architettura della memoria dati come istruzione:
    • Esecuzione di istruzioni recuperate da qualsiasi segmento di memoria, a differenza dell’architettura Harvard, che può solo eseguire istruzioni recuperate dal segmento di memoria del programma.

Sommario e fatti

L’architettura von Neumann fu un grande progresso rispetto ai computer controllati dal programma, che erano usati negli anni ’40. Tali computer erano programmati impostando l’inserimento di cavi e interruttori per instradare dati e segnali di controllo tra diversi gruppi funzionali.

Al giorno d’oggi, la maggior parte dei sistemi informatici condivide la stessa memoria sia per i dati che per le istruzioni del programma.

La CPU in un sistema con architettura Harvard è in grado di recuperare dati e istruzioni simultaneamente, grazie all’architettura che ha bus separati per il trasferimento dei dati e il recupero delle istruzioni.

Che cos’è l’architettura von Neumann?

L’architettura von Neumann si riferisce a un’architettura che mantiene i dati e le istruzioni programmate nella RAM (Random Access Memory) a lettura e scrittura.

Caratteristiche dell’architettura von Neumann:

  • Unità centrale di elaborazione (CPU)
  • Unità di controllo
  • Unità aritmetica e logica (ALU)
  • Unità di memoria
  • Registri:
    • Contatore di programma (PC)
    • Accumulatore (AC)
    • Registro indirizzo memoria (MAR)
    • Registro dati memoria (MDR)
    • Registro istruzione corrente (CIR)
  • Bus:
    • Bus di dati
    • Bus di indirizzi
    • Bus di controllo
  • Input/Output

Avantaggi:

  • Meno costoso/complicato rispetto all’architettura Harvard
  • Efficiente

Svantaggi:

  • Collo di bottiglia di Von Neumann
  • Maggiore possibilità di perdita di dati

Cosa è l’architettura Harvard?

  • L’architettura Harvard è un sistema di computer che contiene due aree separate per i dati e i comandi/istruzioni.
  • L’architettura Harvard è un tipo di architettura che memorizza i dati e le istruzioni separatamente, dividendo quindi l’unità di memoria.

Svantaggi:

  • Meno possibilità di corruzione dei dati
  • Alte prestazioni
  • Grande larghezza di banda della memoria

Svantaggi:

  • Complesso
  • Costoso

Architettura Harvard modificata:

L’architettura Harvard modificata è una variazione dell’architettura Harvard originale. Tuttavia la differenza tra le due è che l’architettura modificata permette di accedere al contenuto della memoria delle istruzioni come dati.

Le tre principali modifiche applicate a un’architettura Harvard modificata sono:

  • Architettura split-cache
  • Architettura instruction-memory-as-data
  • Data-memory-as-instruction architecture
  1. https://www.techopedia.com/definition/19737/harvard-architecture
  2. https://tdck.weebly.com/uploads/7/7/0/5/77052163/03_-_harvard_architecture_comparison.pdf
  3. https://getrevising.co.uk/grids/von-neumann-architecture
  4. http://differencebetween.net/technology/difference-between-von-neumann-and-harvard-architecture/
  5. https://en.wikipedia.org/wiki/Von_Neumann_architecture
  6. https://www.geeksforgeeks.org/computer-organization-von-neumann-architecture/
  7. https://www.techopedia.com/definition/32480/von-neumann-architecture
  8. http://www.computinghistory.org.uk/det/3665/John-von-Neumann/
  9. https://www.computerscience.gcse.guru/theory/von-neumann-architecture
  10. https://en.wikipedia.org/wiki/Modified_Harvard_architecture
  11. https://www.edaboard.com/threads/harvard-vs-modified-harvard-architechture.111764/

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.