Anteprima
Vedrai una selezione di 1 pagina su 5
Von Neumann Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Il concetto di programma memorizzato è una delle idee più innovative di Von

Neumann. Questo modello prevede che:

Le istruzioni di un programma siano memorizzate nella stessa memoria dei

 dati.

La CPU possa accedere indifferentemente a dati o istruzioni usando lo stesso

 meccanismo.

Sebbene il modello originale fosse pensato per i computer degli anni '40, i principi fondamentali

sono stati adattati e modificati per rispondere alle esigenze moderne:

Cache memory: Nei sistemi moderni, la memoria cache è introdotta per ridurre il tempo

 necessario alla CPU per accedere ai dati e alle istruzioni, mitigando il collo di bottiglia.

Pipeline: La tecnica di pipeline consente alla CPU di sovrapporre le fasi del ciclo fetch-

 decode-execute, aumentando l'efficienza.

Architetture parallele: Le CPU moderne includono più core, che possono eseguire

 istruzioni indipendentemente, superando i limiti del modello originario, che presupponeva

una sola unità centrale di calcolo.

Vantaggi del programma memorizzato

1. Flessibilità: È possibile cambiare il programma semplicemente caricandone

uno nuovo in memoria, senza modificare l’hardware.

2. Riduzione della complessità hardware: La CPU usa lo stesso sistema per

accedere sia ai dati che alle istruzioni.

3. Evoluzione dei linguaggi di programmazione: La possibilità di trattare le

istruzioni come dati ha permesso lo sviluppo di linguaggi di alto livello e di

compilatori.

Poiché i dati e le istruzioni condividono la stessa memoria, un errore o un attacco

informatico può portare alla modifica delle istruzioni, con conseguenze

imprevedibili. Ad esempio, un programma malevolo potrebbe sovrascrivere le

istruzioni di un altro programma o modificarle per eseguire azioni indesiderate (ad

esempio, virus informatici o attacchi come il buffer overflow).

L'accesso alla memoria per recuperare sia le istruzioni che i dati avviene tramite lo stesso bus,

creando un collo di bottiglia.

La CPU deve aspettare il completamento di un trasferimento prima di iniziarne un altro, rallentando

l'elaborazione, soprattutto nei moderni sistemi ad alte prestazioni.

Una delle critiche principali all'architettura è il Von Neumann bottleneck, causato dalla

condivisione del bus per dati e istruzioni:

Effetti pratici: Quando la CPU è molto più veloce della memoria (come nei sistemi

 moderni), si verificano ritardi significativi perché l'accesso alla memoria è il fattore

limitante.

Soluzioni moderne:

 Cache hierarchy: L'uso di livelli multipli di cache riduce i ritardi legati all'accesso

o alla memoria principale.

Prefetching: Alcune CPU prevedono in anticipo le istruzioni e i dati necessari,

o caricandoli nella cache per ridurre i tempi di attesa.

Nei computer moderni, il rapporto velocità tra CPU e memoria è notevolmente

sbilanciato: le CPU sono molto più veloci dell’accesso alla memoria. Questo squilibrio,

chiamato memory latency, limita l'efficienza dell'elaborazione. Anche con l’uso di

cache per mitigare il problema, l’architettura di Von Neumann può risultare un collo di

bottiglia nei sistemi ad alte prestazioni.

La CPU può dover competere con altri dispositivi (ad esempio, unità di I/O o schede grafiche) per

accedere alla memoria tramite il bus condiviso; questo aumenta la probabilità di conflitti e ritardi.

Non esiste una distinzione fisica tra memoria di dati e memoria di istruzioni; quindi,

eventuali errori di programmazione (come l'indirizzamento errato) possono portare

a comportamenti imprevedibili. Ad esempio, un bug potrebbe accidentalmente

scrivere su una regione di memoria destinata alle istruzioni.

Poiché le istruzioni vengono trattate come dati e possono essere modificate

dinamicamente, questa flessibilità introduce rischi per la sicurezza:

Esecuzione di codice malevolo: Gli attacchi basati su buffer overflow

 possono iniettare e far eseguire codice non autorizzato.

Escalation dei privilegi: Gli attacchi possono sfruttare vulnerabilità per

 ottenere il controllo completo del sistema.

Molti di questi problemi sono stati affrontati nei sistemi moderni attraverso soluzioni

hardware e software, tra cui:

Cache: per ridurre il collo di bottiglia di memoria.

 Protezione della memoria: separazione logica di aree riservate a dati e

 istruzioni.

Architetture ibride: combinano il modello di Von Neumann con elementi

 dell’architettura Harvard (ad esempio, separando le cache per dati e istruzioni).

Tecniche di sicurezza: come la protezione della memoria eseguibile (NX - No

 Execute) per impedire l’esecuzione di codice in aree di memoria destinate ai

dati.

Un modello alternativo è l’architettura Harvard, che separa la memoria per i dati da

quella per le istruzioni. Questa separazione elimina il collo di bottiglia ma aumenta la

complessità dell’hardware. Sebbene molti computer moderni adottino elementi di

entrambi i modelli, l’architettura di Von Neumann rimane il punto di riferimento

teorico.

L'architettura Harvard, proposta parallelamente, separa fisicamente la memoria

 delle istruzioni da quella dei dati. Questo elimina il collo di bottiglia, ma

complica l'hardware.

Nei sistemi moderni, alcune CPU adottano un'architettura "Harvard modificata",

 in cui i dati e le istruzioni sono separati nelle cache, ma condividono la memoria

principale.

Le architetture RISC (Reduced Instruction Set Computer) e CISC (Complex Instruction

Set Computer) applicano i principi di von Neumann in modi diversi. Ad esempio, i

processori RISC riducono al minimo il set di istruzioni per semplificare l'elaborazione,

mentre i CISC mantengono istruzioni complesse per compatibilità e flessibilità.

Il modello di Von Neumann ha influenzato profondamente lo sviluppo dei linguaggi di

programmazione:

Modello sequenziale: La maggior parte dei linguaggi, come C, Python e Java,

 segue una logica sequenziale fetch-decode-execute.

Manipolazione delle istruzioni: Linguaggi come Lisp e Prolog sfruttano l'idea

 che le istruzioni siano dati, permettendo la creazione dinamica di codice.

Sebbene il modello di Von Neumann sia ottimo per calcoli sequenziali, è meno adatto per

applicazioni parallele o di apprendimento automatico. Per questo motivo, architetture alternative

sono state sviluppate:

GPU: Le unità di elaborazione grafica (GPU) eseguono migliaia di operazioni in

o parallelo, ideali per il machine learning e la simulazione scientifica.

Neuromorphic computing: Questo approccio imita le reti neurali biologiche,

o superando i limiti di memoria e calcolo lineare imposti dall'architettura di von

Neumann.

L'integrazione di dati e istruzioni nella stessa memoria espone il sistema a vulnerabilità:

Code injection: Attacchi che iniettano codice malevolo nella memoria destinata ai dati (ad

 esempio, tramite buffer overflow).

Tecnologie moderne di mitigazione:

 ASLR (Address Space Layout Randomization): Impedisce agli attacchi di

o prevedere la posizione delle istruzioni in memoria.

NX bit (No Execute): Previene l'esecuzione di codice in aree destinate ai dati.

o

Il modello di Von Neumann non è solo una base per i computer Questo è lo schema (in

moderni, ma anche una pietra miliare per il pensiero scientifico: modo più approfondito)

Universalità: Il concetto di macchina programmabile

o del modello di Von

ha ispirato modelli teorici come la macchina di Neumann.

Turing universale.

Standardizzazione: Ha contribuito a definire uno

o standard per progettare computer, accelerando il

progresso tecnologico.

Prospettive future

Quantum computing: I computer quantistici sfidano l'architettura di von Neumann,

 utilizzando qubit e una logica completamente diversa per risolvere problemi non trattabili

dai computer classici.

Memcomputing: Questo nuovo paradigma cerca di integrare memoria e calcolo in una sola

 entità, superando i limiti fisici del modello tradizionale.

L’impatto sul design hardware

Standardizzazione dell'architettura: La proposta di Von Neumann ha

 influenzato la progettazione dei circuiti e delle architetture hardware moderne,

Dettagli
A.A. 2024-2025
5 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ciaomondocuore4443 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica 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 Napoli Federico II o del prof Aceto Giuseppe.