Documento da Università su Architettura dei calcolatori. Il Pdf esplora l'architettura dei calcolatori, l'algebra di Boole e i vari tipi di supporti di memoria, come dischi magnetici e ottici, per la materia Informatica.
Mostra di più48 pagine


Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
In questa lezione vedremo quali sono le caratteristiche fisiche fondamentali di un calcolatore, ovvero cercheremo di rispondere alla domanda: come funziona un calcolatore? Sappiamo che:
Discutiamo ora come si realizzano i diversi componenti di un calcolatore.
Il tipo di dati dei valori Booleani, detto anche algebra di Boole (o algebra Booleana)1 è costituito dall'insieme dei valori Booleani, ovvero le costanti 1 e 0 (che identificano i valori logici Vero e Falso) e da alcune operazioni fondamentali:
A · B è vera se e solo se sia A che B sono vere, mentre A + B è vera se almeno una fra A e B è vera; infine, ~B è vera se B è falsa e viceversa. 1 Introdotta da George Boole nell'opera An Investigation of the Laws of Thought del 1854. 1Combinando le tre operazioni logiche possiamo definire delle operazioni più complesse, le espressioni Booleane. Un'espressione Booleana (o espressione logica) è:
Ad esempio, lo XOR (OR esclusivo) è definito dalla sequente espressione Booleana: A & B = (~A . B) + (A . ~ B). Un altro esempio di espressione (l'operatore "." si può omettere come nella moltiplicazione) è: ~ ((AB) + (~BC)) . Una volta che alle variabili è assegnato il valore 0 o il valore 1, si può calcolare il valore dell'espressione, elencandone i valori in una tabella, detta tabella di verità dell'espressione:
ABC AB ~B ~BC (AB)+(~BC) ~((AB)+(~BC)) 000 0 1 0 0 1 0010 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 00 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 2
Le tre operazioni logiche fondamentali si possono rappresentare graficamente con dei simboli, detti porte logiche (logic gates) che hanno ingressi ed uscite: gli ingressi corrispondono agli argomenti e l'uscita al risultato dell'operazione.
AND OR NOT Combinando le porte logiche si ottengono dei diagrammi, o circuiti logici (logic circuits) che calcolano i valori delle espressioni logiche. Di seguito, il circuito che calcola l'espressione ~((A · B) + (~B . C))
A AandB B not((AandB) C notBandC or(notBandC)) B notB C ABC Il pallino dopo la porta OR indica la negazione. Ad ogni valore di verità assegnato alle variabili A, B e C, il circuito fornisce in uscita il corrispondente valore dell'espressione. 3
I circuiti logici possono essere estremamente complessi e descrivono il funzionamento di qualunque dispositivo digitale, incluso il calcolatore. Per convincerci delle capacità di calcolo dei circuiti logici, costruiamo un esempio non banale di circuito logico: un addizionatore, ovvero un circuito che compie l'addizione di due numeri interi senza segno rappresentati in base 2. L'addizionatore è un circuito di fondamentale importanza che si trova all'interno di ogni processore. Per realizzare un sommatore di numeri in base 2, occorre prima costrire un sommatore a 1 bit, con un riporto in ingresso (carry in) per l'eventuale riporto dalla cifra precedente.
carry_in A B carry_out somma 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 I 2 bit di output Somma e carry_out rappresentano in binario la somma A+B+carry_in dei tre bit di ingresso. 4
Ecco il circuito del sommatore a 1 bit, realizzato con porte AND, OR e XOR.
(carry in) riporto somma A (sim) B riporto (carry out) Connettendo n sommatori a 1bit otteniamo un sommatore per numeri da n bit. In figura, un sommatore a 4 bit.
S1 S2 S3 S4 0 Cl1=0 Co1 -) C12 Co2 C13 CO3 C14 CO4 T C L A1 B1 A2 B2 A3 B3 A4 B4 5
I circuiti logici possono essere facilmente realizzati tramite circuiti elettronici. Infatti, le porte logiche si implementano facilmente con circuiti elettronici (composti da transistor): lo 0 corrisponde a tensione nulla, invece 1 a una tensione positiva, ad esempio, 5 V. Da sinistra a destra: un circuito elettronico composto da 2 transistor e 3 resistenze che implementa una porta AND, un chip che contiene 4 porte AND e lo schema dei collegamenti dei piedini del chip (circuito integrato).
+Vcc Vcc 4B 4A 4Y 3B 3A 3Y 14 13 12 10 9 8 R A 1 M T1 5V 1 2 3 4 5 6 7 1A 1B 1Y 2A 2B 2Y GND 0 0 0 0 1 0 R2 1 0 0 1 1 1 Con le moderne tecnologie elettroniche si possono realizzare dei circuiti estremamente complessi all'interno di un unico chip (il numero dei transistor all'interno di una CPU supera il miliardo). Tenete presente tutto ciò quando tra poco parleremo della CPU e della ALU in particolare: anche se la descrizione di quest'ultima in termini di porte logiche risulterebbe estremamente complessa, in linea di principio è possibile, ed il circuito sommatore appena visto ne costituisce una parte. 6
R Transistor Switches BO M T2 B A | OUT OUT Q = AB
Riassumendo:
I circuiti integrati sono pezzi di silicio (chips) che integrano -- appunto -- molti transistor (e quindi molte porte logiche) sullo stesso chip. Un moderno circuito integrato può contenere un miliardo di transistors su un'area di 200 mm- (questi numeri sono solo un'indicazione di ordine di grandezza). J POZ SAR341 R293 iji IC122º JC468 av EIG 7
Il numero di transistor per chip raddoppia ogni due anni [Gordon Moore (Intel) nel 1965].
Moore's Law - The number of transistors on integrated circuit chips (1971-2016) Our World in Data Moore's law describes the empirical regularity that the number of transistors on integrated circuits doubles approximately every two years. This advancement is important as other aspects of technological progress - such as processing speed or the price of electronic products - are strongly linked to Moore's law. 20,000,000,000 IBM z13 Storage Controller 18-core Xeon Haswell-E5 Xbox One main SoC 61-core Xeon Phi 12-core POWER8 22-core Xeon Broadwell-E5 15-core Xeon Ivy Bridge-EX QIBM z13 8-core Xeon Nehalem-EX Six-core Xeon 7400 8 8-core Core i7 Haswell-E Dual-core Itanium 2 Quad-core + GPU GT2 Core i7 Skylake K Pentium D Presler POWER6 Itanium 2 with g MB cache O O Core 2 Duo Wolfdale Pentium D Smithfield Core 2 Duo Conroe Itanium 2 Mckinley Q Core 2 Duo Wolfdale 3M Pentium 4 Prescott-2MO Core 2 Duo Allendale Pentium 4 Cedar Mill AMD K89 Pentium 4 Prescott Pentium 4 Northwood ·Barton QAtom Pentium II Mobile Dixon on QARM Cortex-A9 AMD K7 6 Pentium III Coppermine AMD K6-III 10,000,000 AMD K6 Pentium III Katmai Pentium Proo Pentium II Klamath Pentium AMD K5 O SA-110 Intel 80486 R4000 1,000,000 TI Explorer's 32-bit Lisp machine chip ARM700 Intel 80386 9 ARM 3 Motorola 68020 DEC WRL Multi Titan O Motorola 68000 ARM 9TDMI 50,000 O Intel 80186 Intel 80869 · Intel 8088 QARM 2 ARM 6 ARM 1 WOC Motorola 65C816 6809 Novix NC4016 RCA 1802 PIntel 8085 5,000 B Intel 8080 Intel 8008 MOS Technology 6502 Intel 4004 1,000 1970 1972 1974 1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 Year of introduction Data source: Wikipedia (https://en.wikipedia.org/wiki/Transistor_count) The data visualization is available at OurWorldinData.org. There you find more visualizations and research on this topic. Licensed under CC-BY-SA by the author Max Roser. 5,000,000,000 8 Apple A8X (tri-core ARM64 "mobile SoC") 8 Duo-core + GPU Iris Core i7 Broadwell-U Quad-core + GPU Core i7 Haswell 1,000,000,000 Apple A7 (dual-core ARM64 "mobile SoC") 500,000,000 Core i7 (Quad) AMD K10 quad-core 2M L3 Itanium 2 Madison 6MQ 100,000,000 50,000,000 Pentium 4 Willamette O Pentium III Tualatin Transistor count 8 OPentium II Deschutes 5,000,000 500,000 100,000 Intel 80286 10,000 TMS 1000 Zilog Z80 WDC 65C02 Motorola 6800 8Cell SPARC M7 10,000,000,000 8
La macchina di von Neumann è un modello teorico di organizzazione e funzionamento dei moderni calcolatori composto da tre parti o sottosistemi:
Sottosistema di interfaccia Sottosistema di memorizzazione Sottosistema di elaborazione Connessione Sia i dati che le istruzioni del programma da eseguire risiedono in memoria, da dove l'unità di elaborazione preleva in sequenza le istruzioni da eseguire e i dati necessari. Un calcolatore è una "macchina a programma memorizzato", ovvero è una macchina in grado di svolgere compiti mediante l'esecuzione di programmi appositi precedentemente caricati in memoria. Componenti di un calcolatore elettronico classificati secondo l'Architettura di Von Neumann. Elaborazione Memorizzazione Interfaccia CPU, GPU Memoria RAM, Hard disk, SSD, CD/DVD Tastiera, Monitor, mouse, stampante, ... 9
video tastiera Mouse Hard Disk Interfaccia Interfaccia Interfaccia Interfaccia RAM CPU bus dati bus indirizzi bus di controllo e la sua realizzazione, la motherboard (scheda madre):
PORTE USB, PARALLELA SERIALI, AUDIO, PS2 ... CHIP DEL BIOS SOCKET PER LA INSTALLAZIONE DEL PROCESSORE SLOT PCI EXPRESS 16x SLOT PCI EXPRESS 11 SLOT PER LA MEMORIA RAM SLOT PCI CLASSIC CHIPSET NORTHBRIDGE G CONNETTORE DI ALIMENTAZIONE ATX 12 VOLT BATTERIA DELLA CMOS DEL BIOS CONNETTORI IDE PARALLEL - ATA CHIPSET SOUTHBRIDGE CONNETTORI IDE SERIAL - ATA 10