Materia:Architetture degli elaboratori: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Unione da Materia:Calcolatori elettronici / Eliminata parte da dividere (gia' presente in Cenni di storia dei calcolatori e meglio spiegata)
Riga 1:
{{W}}
{{Da dividere}}
{{Materia|7|15
|banner=Computer-aj aj ashton 01.svg
Line 12 ⟶ 10:
Questa materia si propone di fornire le nozioni di base riguardo alla logica digitale, al linguaggio macchina, alla struttura dei componenti e al loro impiego all'interno di un sistema a microprocessore. Risulta quindi essere una tappa fondamentale per chiunque volesse approfondire gli argomenti legati ad un calcolatore elettronico moderno.
|programma=
* [[Introduzione ai calcolatori elettronici]]
* [[Modello di Von Neumann architecture]]
* [[Cenni di storia dei calcolatori]]
Line 29 ⟶ 28:
** Architettura del set di istruzioni
*** Architetture Register-Register (DLX) e Memory-Register (IA16 e IA32).
** [[ISA e Linguaggio Assemby MIPS]]
** Linguaggio Assembly delle CPU IA16.
* La CPU
** Struttura interna di una CPU ad esecuzione sequenziale
Line 66 ⟶ 65:
*[[w:Storia del personal computer|Storia del persona computer]]
}}
 
 
== Presupposto ==
Si presume che queste lezioni siano indipendenti nella loro stesura, questo per descrivere nel modo più definito possibile i livelli della Architettura.
 
Si utilizzerà come esempio due architetture particolari. La prima é quella del MIPS e la seconda é una versione SEMPLIFICATA di quella che é l'architettura della [http://www.java.sun.com Java Virtual Machine]. Si presume che, per visonarne al meglio le differenze, lo studente conosca i principi fondamentali della programmazione in ambiente C/C++ e Java.
 
== Introduzione al corso di Architetture ==
Prima di parlare in maniera dettagliata di come sia fatta l'architettura a livelli che vogliamo studiare ` necessario fare una introduzione storica. I computer non esistono da sempre. Il primo che uomo che abbia realizzato un computer è il francese [[w:Blaise_Pascal|Blaise Pascal]] (nel cui onore é stato battezzato un linguaggio di qualche tempo fa..) che nel 1642 - a soli 19 anni - progettò e realizzò un meccanismo di contabilità. Era un aggeggio completamente meccanico; un computer a manovella!! Le sole operazioni che era in grado di compiere erano addizione e sottrazione. Passaronon 30 anni prima che [[Leibniz]] aggiungesse a quella macchina le operazioni moltiplicazione e divisione che costruirono la prima vera calcolatrice del mondo. Trecento anni fa..
 
Nulla successe poi per quasi 150 anni..
 
Quando un giorno un tizio di nome [[w:Charles_Babbage|Babbage]] dall'Univesità di Cambrige creò 'difference engine' un dispositivo meccanico che come quello di Pascal poteva soltanto sottrarre e addizionare. Esso venne utilizzato per la navigazione marittima.
 
La cosa più interessante del 'difference engine' era il suo modo di produrre output. Esso stampava su un disco (non un vinile!!) grazie all'ausilio di una punta in ferro. Era pertanto in grado di produrre dischi perforati che potevano anche essere re-introdotti nell'elaboratore.
 
L'evoluzione di 'difference engine' fu 'analytical engine', un dispositivo composto di una memoria, un mill (unità di calcolo), la possibilità di ricevere input (da schede prestampate) e la possibilità di produrre un output (sempre su schede).
 
Questo dispositivo é stato il primo dispositivo programmabile!!
E contrariamente a quello che la presunzione maschile induce a pensare, il primo hacker fu donna! [[w:Ada_Lovelace|Ada Augusta Lovelace]] (figlia di un [[w:Lord_Byron|poeta famoso]]). In suo onore un moderno linguaggio di programmazione ha preso il suo nome.
 
 
Sfortunatamente stiamo parlando di dispositivi meccanici per cui molto ingombranti e pieni di bug. Babbage (che possiamo considerare il padrino di tutti i computer moderni) stesso era costretto ad aprire e controllare tutte le ruote dentate ed i collegamenti prima di sottoporre una scheda prestampata al dispositivo.
 
Questi gli inizi.
 
Poi negli anni '30 (1930) un tedesco di nome [[w:Konrad_Zuse|Konrad Zuse]] costruì una macchina computazionale automatica utilizzando dispositivi elettromagnetici. Questi suoi studi, non di certo finanziati dal governo, vennero considerati di secondo piano rispetto alla guerra che stava per iniziare.. Ci si aspettava (in Germania) che la guerra finisse presto e, vincitori, si sarebbe potuto sviluppare il progetto. Così non fù. Il progetto di Zuse fu vittima dei bombardamenti e non influenzò in modo utile le macchine che vennero dopo. Nonostante tutto é necessario menzionarlo, in quanto anche le sue idee erano innovative.
 
Diversi furono gli studiosi che si cimentarono nell'evoluzione di questi dispositivi calcolatori. Tra questi spicca Howard Aiken che nel 1944 all'Università di Harvard presentò Mark I, una macchina in grado di gestire 72 parole di 23 digits ciascuna. Era in grado di svolgere una operazione (istruzione) in 6 secondi circa.
 
Gli studi continuarono fino a produrre Mark II.
Da quel momento tutti i dispositivi computazionali automatici divennero obsoleti. L'era dell'elettronica era iniziata.
 
== Componentistica ==
Osservando l'architettura proposta da Von Neumann possiamo descrivere un computer come la somma di alcune componenti indispensabili.
 
Il profano che osserva l'interno di un computer per la prima volta si perde nell'osservare tutti i collegamenti, le scatolette scintillanti.. Lo studente di questo corso, invece dovrà osservare con maggiore attenzione.
 
Ecco alcuni schemi logigi di un computer moderno:
 
- tabella -
 
*[[CPU]]
*Memorie
**[[RAM]]
**[[ROM]]
**[[Disco rigido]]
*Le periferiche di Input/Output
 
== Architettura a Livelli ==
Per poter meglio descrivere cosa sia e come funzioni un computer é necessario osservarlo ed astrarlo in modo più consono. L'immagine sottostante chiarisce come viene pensato e come é strutturato:
 
[[Immagine:Architettura_a_livelli.jpg|center|Livelli Architetturali]]
 
Ogni livello é una particolare branca dell'informatica moderna. Durante il [Corso di Fondamenti d'Informatica] abbiamo potuto osservare al meglio il Livello 0 (Logica Digitale) e abbiamo scoperto come semplici porte logiche possano formare dei circuiti che sono in grado di memorizzare l'informazione (latch,flip-flop,..) ma anche di trasformarla (shifter,ALU).
 
== Il livello 0: Logica Digitale ==
== Il livello 1: La Micro-Programmazione ==
== Il livello 2: ISA ==
 
== Il livello 3: Il Sistema Operativo ==
Questo livello verrà discusso meglio nel Corso di Sistemi Operativi e nel relativo Laboratorio.
 
 
== Il livello 4: ASSEMBLY ==
 
== Il livello 5: Language Level ==
Questo livello viene visto in modo approfondito nei Corsi di:
 
* Programmazione
* Programmazione ad Oggetti
* Basi di Dati
* Etc..
 
Non é nel nostro interesse visionare questo livello, se non con riferimenti
semplici provenienti dalla stesura di codice MIC / MAL.
 
 
[[Categoria:Corso di Ingegneria informatica]]