Partendo dalla legge di Moore, essa è una famosa osservazione empirica formulata da Gordon Moore, co-fondatore di Intel, che afferma che il numero di transistor all'interno di un chip di computer tende a raddoppiare approssimativamente ogni due anni. Questo aumento esponenziale della densità dei transistor ha consentito una crescente miniaturizzazione dei componenti e una corrispondente crescita delle prestazioni dei processori.
Tuttavia, negli ultimi anni si è osservato un rallentamento nell'aderenza stretta alla Legge di Moore. Dal 2013, l'aumento del numero di transistor e le prestazioni dei processori hanno iniziato a raddoppiare ogni tre anni anziché ogni due. Ciò è principalmente dovuto ai limiti tecnologici del silicio, il materiale base utilizzato per la fabbricazione dei transistor nei chip. Riducendo le dimensioni dei transistor, si raggiunge il punto in cui ci sono solo pochi atomi tra di loro, causando problemi di dispersione di calore e interferenze tra i componenti. Questo fenomeno è noto come "effetto tunnel" e presenta sfide significative nella continua miniaturizzazione dei transistor al silicio.
Per superare questi limiti, i ricercatori stanno esplorando l'utilizzo di nuovi materiali e tecniche di fabbricazione. Ad esempio, sono in corso ricerche su materiali come il grafene, che offre proprietà elettroniche eccezionali e potenziale per la realizzazione di transistor più piccoli e veloci. Altri materiali in studio includono il disolfuro di molibdeno e il fosfuro di indio, che potrebbero offrire alternative al silicio.
Quanto alla seconda legge di Moore, afferma che il costo di costruzione di una fabbrica di chip raddoppia da una generazione all'altra. Ciò è spesso dovuto alla necessità di investimenti in tecnologie di produzione sempre più avanzate e complesse per seguire il progresso della miniaturizzazione dei transistor. Tuttavia, è importante notare che questa legge non è altrettanto rigida quanto la Legge di Moore originale, ed è soggetta a variazioni e adattamenti in base alle dinamiche del settore.
Transistor: utilizzato sia come interruttore che come amplificatore e basato su un materiale semiconduttore e nell’informatica ci interessa il primo uso. Semplificando, il semiconduttore ha due terminali: input e output e se applico una carica all’input, questa non fluirà sull’output. Esso è formato da base di silicio e due barrette laterali di rame e una centrale che è avvolto da un isolante es. vetro. Se do corrente a riposo è isolante. Se do corrente a quella centrale diventa un conduttore.
Il transistor ha quindi tre terminali: base, collettore ed emettitore. Linguaggio binario
Transistor e logica booleana: Posso anche invertire NOT, cioè se non do corrente alla parte centrale esso sarà un conduttore. Usando due transistor in parallelo ottengo una porta OR e usando due transistor in serie ottengo una porta AND.
Litografia: è una tecnica fondamentale nella produzione di circuiti integrati, che consiste nell'utilizzare una serie di maschere per "imprimere" sul wafer dei disegni che definiranno il layout dei circuiti. La precisione delle maschere e la qualità del processo di esposizione del fotosensibile determinano la precisione e la resa del processo di produzione del chip.
Inoltre, il processo di litografia non è l'unico passaggio nella produzione dei transistor: dopo l'esposizione e lo sviluppo del fotosensibile, si procede alla deposizione di strati di materiali isolanti e conduttori, che vanno a formare i vari strati del chip. Il processo di deposizione avviene tramite tecniche come la vaporizzazione, la deposizione chimica da fase vapore (CVD) o la deposizione fisica da fase vapore (PVD).
La dimensione degli elementi del transistor, come accennato, è indicata in nanometri e rappresenta una delle principali metriche di avanzamento tecnologico. Ad esempio, un transistor da 10 nm ha una larghezza di soli 10 nanometri e permette di realizzare circuiti più densi e potenti rispetto a quelli con transistor più grandi. Tuttavia, la riduzione della dimensione degli elementi del transistor comporta anche sfide tecniche, come la gestione della dissipazione termica e l'aumento della sensibilità ai disturbi elettromagnetici.
Architettura Von Neumann: teorizzata negli anni ‘40 ed era puramente ideale essendo i pc nati inseguito, ma ancora oggi quasi tutti i computer sono fatti così. È composta da 4 elementi base:
Periferiche: apparecchi per lo scambio di informazioni tra elaboratore ed esterno; es: mouse, tastiera, monitor, memoria secondaria (salva molti dati in modo persistente ed è meno costosa della primaria, ma è lenta da leggere/scrivere).
Memoria Centrale: contiene le informazioni necessarie all’esecuzione del programma, cioè istruzioni e dati; ha dimensioni limitate ed è volatile (spegnimento computer = cancellazione).
CPU: Central Processing Unit, interpreta ed esegue le istruzioni presenti nella memoria centrale.
Bus di sistema: canale di collegamento tra i vari elementi.
Permette ai vari componenti di comunicare tra di loro; sono le connessioni elettriche lungo cui passano le informazioni.
Banda: quanti dati kB possono essere trasferiti al secondo.
Bus parallelo e seriale: per trasmettere un byte: nel bus seriale i bit vengono trasmessi in sequenza (un filo), mentre in quello parallelo i bit vengono trasmessi contemporaneamente (otto fili). Il bus parallelo è più veloce, ma richiede più cavi ed è più difficile da gestire, sincronia dei vari cavi, essi devono avere le stesse lunghezze.
Invia 01100011
Bus su scheda madre (interni):
-Non hanno cavi, la scheda viene direttamente inserita nel bus. I connettori sono di rame e a volte sono placcati d'oro.
PCI (Peripheral Component Interconnect): 64 bit a 64MHz = 8byte * 64 Mhz = 512 MB/s; è un bus parallelo (ha 64 cavi). Si usa di solito per schede audio, dispositivi lenti.
PCI Express x1: identico all’altro e sviluppato 15 anni dopo, ma limitato ad un canale per ridurre i costi. Si usa per dispositivi lenti, max 1969 MB/s.
PCI Express x16: bus seriale più semplice e veloce a 16 canali, in teoria arriva a 31.5 GB/s. Si usa per dispositivi molto veloci (schede video, per audio è esagerato).
-Collegati con cavi (si crea un antenna e questo va a rallentare la connessione)
PATA (Parallel ATA) o IDE: connessione per memorie secondarie. Ogni connettore di questo tipo supporta due dispositivi: uno detto Master e l’altro Slave. Massimo 133 MB/s essendo molto vecchio. Si collega con un cavo largo(parallelo) e lungo e quindi diminuisce la circolazione dell'aria nel computer.
SATA (Serial ATA): connessione per memorie secondarie, seriale ed è il più diffuso oggi. I cavi sono più stretti, quindi l’aria circola meglio nel pc. Velocità massima: SATA 1 - 192 MB/s (1.5 Gbit/s); SATA 2 - 384 MB/s (3 Gbit/s); SATA 3 - 768 MB/s (6 GBit/s).
NVMExpress: connessione per memorie secondarie a stato solido (SSD), sfrutta PCI Expr.
Bus su cavo (esterni):
eSATA: connettore SATA per dispositivi esterni. Ha una forma diversa da quello interno (che è a L) per evitare di scambiare i cavi interni (non schermati perché corti) con quelli esterni (schermati perché soggetti ad interferenze, max 2 metri).
USB (Universal Serial Bus): permette di connettere dispositivi esterni al pc e le due estremità sono differenti (la seconda varia in base al tipo).
La velocità va da 12 Mbit/s per la USB 1 (colore NERO circa 1,4 MB/s), USB 2 (colore ROSSO) fino a 3 Gbit/s con la versione USB 3 (circa 358 MB/s e di colore BLU), ma ci sono sotto versioni più veloci: la USB Type-C raggiunge 1 GB/s.
Esistono tanti connettori: A (es: pen drive), B (es: stampanti, joystick), mini (es: hard disk esterni), micro (es: telefoni cellulari), type-C (e qui non importa il verso di inserimento e per trasferire dati usa tutti i piedini come se fosse un bus parallelo, per caricare più velocemente utilizzando tutte le presine e può avere un adattatore a HDML).
Il dispositivo quando si connette deve dire chi è ( serve al pc a capire cosa è attaccato, tastiera …). Ad ogni bus USB si possono attaccare tramite HUB al massimo 127 dispositivi (anche a catena), ma più dispositivi si attaccano più lenti saranno (la banda a disposizione viene divisa tra tutti). Se sono tanti comunque c'è l'alimentazione.
Ha 4 fili, mandare corrente elettrica, uno per mandare dati e uno per ricevere e la terra. Tutte le versioni hanno 4 cavetti e quindi si possono usare adattatori.
Più piccoli sono e meno corrente trasportano ed una volta era un problema.
Lightning: della apple, analogo a usb.
Thunderbolt: creato da Intel, usato da Apple. Cavo di massimo 3 metri, trasmette dati fino a 20 Gbit/s (circa 2,33 GB/s).
M.2: non è un bus, ma un connettore standard interno che può supportare diversi tipi di bus(usato per inserire schede di espansione completamente interne al PC). Non è sempre compatibile con le lunghezze, sono tutte M2 ma hanno lunghezze differenti o forme dei connettori diversi. Supporta per esempio PCI Express, SATA 3.0 o USB 3.0.
NVMe: è un protocollo per dare ordini a dispositivi secondari, memorie allo stato solido veloci. Viaggia su un bus PCI Express. Se è scritto sul M.2. allora quel connettore ho quel protocollo. SATA misto tra dare comandi di cose e come do i comandi e può avere NVMe.
RAM: (Random Access Memory) è una forma di memoria volatile che consente di accedere ai dati in modo casuale, ovvero senza dover passare attraverso tutte le celle precedenti per raggiungere quella desiderata. Ciò significa che il tempo necessario per accedere a un valore non dipende dalla posizione del dato nella memoria.
E' organizzata in parole (word), che rappresentano la dimensione prefissata di ciascuna cella di memoria. In genere, una parola è composta da 8 bit, ma possono esistere parole di dimensioni diverse a seconda della configurazione della RAM. Ogni parola è univocamente identificata dal suo indirizzo, che è determinato dalla combinazione di riga e colonna in cui si trova.
Le prime forme di RAM risalgono agli anni '50 e '60 e consistevano in una serie di magneti toroidali, ciascuno dei quali poteva salvare un bit di informazione. La dimensione di queste prime RAM era molto limitata, poiché il numero di magneti che si potevano utilizzare era limitato dalla necessità di garantire lo spessore minimo dei fili di collegamento. Ad esempio, le prime RAM erano costituite da solo 1024 magneti, il che consentiva di salvare solo poche lettere.
Nuove memorie RAM: tramite Fleef flof: Tramite i transistor si può bloccare lo stato in acceso o spento, 0 o 1, attraverso vincoli logici. Basta scrivere il valore la prima volta e rimane così finché non lo resetto (resetto la singola cella di memoria, di 8bit).
Tipi di Memoria:
EPROM: memoria che mantiene i dati anche se si stacca la corrente (solo questo tipo) e che può essere riprogrammata (Erasable Programmable Read Only Memory). Di solito usata per contenere del software che cambia raramente (es: gestione dei dispositivi, Bios, firmware, ma anche microonde, lavatrici…).
Statica (SRAM): molto veloce e costosa, ma una volta scritto in memoria il dato, questo permane finché non viene tolta la corrente. Usa 6 transistor per bit.
Dinamica (DRAM): molto meno cara, ma i dati tendono a cancellarsi nel tempo e quindi ogni tanto i dati vanno riletti e riscritti. Per ogni bit servono 1 transistore ed 1 condensatore.
Double Data Rate (DDR): a parità di velocità dei modelli precedenti, leggono il doppio dei dati. Si suddivide per versione: DDR, DDR 2, 3 e 4, ogni generazione successiva riesce a trasmettere il doppio dei dati rispetto alla precedente, così bastano frequenze più basse e quindi consuma meno e scalda meno.
DDR2: migliorata la qualità del canale di comunicazione (velocità bus x2), quindi può operare al doppio della velocità;
DDR3: migliorata l’alimentazione per ridurre il consumo, ideata per portatili;
DDR4: consumo elettrico ancora più basso, canale ancora più veloce e aumenta la densità dei singoli cip.
DDR 3/4 multi channel: single, dual, tri o quad channel. Invece di usare un solo canale di comunicazione, se ne usano 2, 3 o 4. Questo perché su un singolo modulo non ho abbastanza chip. Se c'è corrente nel primo "parla" il primo, se do corrente al secondo, esso invierà i dati. Può capitare che un dato sia salvato in parte in un chip e in parte in un altro, in un sistema multi channel ho due canali paralleli e si può comunicare in contemporanea.
DDRAM
Scheda madre - RAM
RAM MultiChannel
RAM MultiChannel
Compatibilità: nessuna, se non all’interno del DD3, dove ogni modulo ed ogni scheda madre supportano al massimo N canali, ma c’è piena compatibilità (es: su una scheda madre dual-channel posso installare memorie single-channel o quad-channel); l’importante è non mescolarle (es: due moduli one-channel ed uno quad-channel) e meglio metterli multipli. Per capire come montarli bisogna leggere le istruzioni della scheda madre. Le memorie per i portatili sono più corte e alte a causa dello spazio disponibile e hanno diversi voltaggi.
Capacità: la RAM è organizzata a moduli; di solito ogni modulo ha 1, 2, o 4 Gb di capacità, al massimo in totale 16Gb.
Numero di moduli DDR: va sempre collegato un multiplo dei canali disponibili, oppure funzionano a velocità ridotta. Es: se ho una ram tri-channel e collego quattro moduli, tre funzioneranno in tri-channel ed uno in single-channel.
Prestazioni: Di solito le prestazioni della memoria sono espresse con una sequenza di 4 numeri. Es: 10-9-9-30:
CAS Latency - Column Address Strobe: quanto tempo passa tra quando viene richiesto una pagina di memoria e quando il valore è disponibile in uscita dalla RAM, si misura in cicli di clock, più piccolo è meglio è.
Tempo per selezionare una riga ed entrare in una colonna.
Tempo per cambiare riga.
Tempo refresh: richiesto per aggiornare una riga (per il mantenimento dei dati).
E' composta da cinque elementi, solitamente riuniti in un unico microprocessore.
Clock: orologio interno che sincronizza le varie parti, ogni operazione dura almeno un ciclo di clock. Sono i “GHz” pubblicizzati nel processore. Una CPU con una velocità di clock di 3,2 GHz esegue 3,2 miliardi di cicli al secondo.
Registri: piccolissime memorie molto veloci e molto costose. Servono a contenere i dati necessari per le operazioni in un posto accessibile direttamente dal processore. Il numero di bit dei processori (32/64 bit) indica la dimensione in bit dei registri. Processori 32 bit nel registro posso scrivere al massimo 32 bit, quindi non posso avere indirizzi di memoria superiore a 4 miliardi, max 4 Gb di memoria. In realtà si può andare oltre usando dei trucchi (PAE - Physical Addres Extension), ma per motivi commerciali Windows non li usa realmente.
ALU - Arithmetic Logic Unit: esegue le operazioni aritmetiche come la somma di due registri e operazioni logiche, come controllare se registro A > registro B.
FPU - Floating Point Unit: esegue le opzioni aritmetiche per numeri decimali.
CU - Control Unit: coordina l’attività della CPU. Si occupa del prelievo e decodifica delle istruzioni e dei dati.
Overclocking: Forzare la velocità del processore aumentano così le prestazioni, ma anche i consumi e quindi il calore prodotto.
Operazioni basilari: la CPU effettua normalmente cinque operazioni eseguite in almeno un ciclo di clock, in ordine:
Fetch: legge nella memoria RAM l’istruzione dalla memoria principale
Decode: capisce cosa significa l’istruzione, la decodifica (che transistor usare, a che memoria accedere)
Memory Access: torna nella memoria RAM e carica i dati nel registro
Execute: esegue l’operazione accendendo i transistor corretti
Write Back: scrive il risultato nella memoria principale e ritorna in cima
Instruction Set: lista delle operazioni che può eseguire un processore. Il primo processore Intel 4004 aveva 46 istruzioni diverse, mentre uno degli ultimi, Intel x86, ha 1503 istruzioni.
Intel 4004: erano già molto piccoli all'epoca 10.000nm, ma comunque molto grandi rispetto ad oggi, infatti ora hanno circa una decina di nanometri.
RISC e CISC: I processori possono essere classificati in due categorie principali in base all'insieme di istruzioni che possono eseguire: CISC (Complex Instruction Set Computing) e RISC (Reduced Instruction Set Computing).
CISC: Complex Instruction Set Computing (es: Intel X86) sono caratterizzati da un insieme di istruzioni molto ampio e complesso, in grado di eseguire operazioni complesse in un unico ciclo di clock. Questo può semplificare la scrittura del codice, ma rende i processori complessi e costosi da produrre. Inoltre, il tempo necessario per decodificare e eseguire un'istruzione CISC può essere più lungo rispetto a quello richiesto da un'istruzione RISC, in quanto richiede più cicli di clock.
RISC: Reduced Instruction Set Computing (es: Apple Swift - iPhone 5) d'altra parte, sono caratterizzati da un insieme di istruzioni ridotto e molto semplice, che richiedono solo un ciclo di clock per l'esecuzione. Ciò significa che i processori RISC possono eseguire un maggior numero di istruzioni in un dato periodo di tempo rispetto ai processori CISC. Inoltre, i processori RISC sono generalmente più semplici e meno costosi da produrre, e consumano meno energia.
Es: sommare il valore della cella di memoria X a quello presente in Y e scrivere il risultato in Z:
- CISC: ADD2 X,Y,Z
- RISC: 1) LOAD X, R1 2) LOAD Y, R2 3) LOAD 0, R3 4) ADD R1, R3 5) ADD R2,R3 6) WRITE R3, Z.
I programmi per processori CISC occupano quindi meno memoria, ma lo step di decode dell’istruzione richiede più tempo (di fatto, avviene una conversione in operazioni basilari simil-RISC).
Pipeline: Nell’esecuzione normale il processore esegue tutti e cinque gli step prima di prendere l’istruzione successiva. Molto spesso, però, potrebbe già iniziare ad indagare l’istruzione successiva senza aspettare la fine. I processori con pipeline hanno diverse istruzioni che vengono eseguite contemporaneamente, però in diversi stadi del processore, rendere più efficienti i processori con grandi vantaggi per i CISC. Questi processori sono detti superscalari. E se scopro che per eseguire l’istruzione successiva dovevo aspettare il risultato della precedente? La CPU cancella il risultato e rifà il conto come se non ci fosse la pipeline. Va bene per video, immagini, no invece per la scrittura di testi.
Cache: leggere i dati nella memoria principale (RAM) richiede tempo, così i dati più usati vengono salvati in una micro-ram all’interno del processore, la cache. Questa memoria è costosa, ma molto veloce (meno dei registri, ma molto più della RAM). Quando l’istruzione richiede la lettura di un dato: prima si guarda se c’è nella cache, se c’è (cache hit) allora lo si mette nel registro, senno (cache miss) lo copio dalla memoria RAM alla cache. I dati sono temporanei.
Livelli di Cache: la cache L1 descritta sopra, la cache L2 è più grande ma più lenta. O anche livello 3, ancora più grandi.
Multi Core: tante CPU unite in un unico blocco. Ogni CPU ha la sua cache L1 ed L2, mentre un terzo livello L3 è condiviso tra tutte le CPU.
Cache coherence: è un problema per i processori MultiCore. A volte core diversi possono tenere nella cache L1 la stessa cella della RAM, se uno dei due aggiorna il valore, allora si deve di comunicarlo anche all’altro core, che altrimenti lavorerebbe con dati sbagliati.
Processori ARM: sono dei processori RISC molto diffusi nei telefoni mobile e tablet.
Sono dei sistemi “System-On-Chip”: la RAM è inclusa nel processore. Perché sono più lenti degli omologhi del PC?
efficienza del processore che costa, Intel (processori CISC) può spendere tantissimo per rendere più efficiente la CPU, gli altri no. Ultimamente anche Apple sta migliorando.
per aggiungere componenti (più RAM, più pipeline) occorre aumentarne la dimensione ed il consumo, oppure passare ad una tecnica di produzione più complessa (es: 14 nm) Limiti fisici).
Processori ARM: sono processori risc che seguono un architettura standard e tutto quello che serve per far funzionare il sistema è presente in un unico dispositivo, ram, scheda video...
Per confronto c'è il sito dell' INTEL.
Processore Intel 486 del 1989
Processore multi-core Intel i7
Socket: è il connettore su cui si installa il processore. C'è un segno che indica come inserirlo ed è presente un gancio per bloccarlo, e se lo si cambia si rischia che non sia compatibile.
Dissipatore: Attorno al processore vi è una struttura per installare il dissipatore, che si occupa di rimuovere il calore prodotto dalla CPU, può essere una ventola o un liquido. Tra CPU e dissipatore vi è una speciale pasta termica che migliora il passaggio del calore tra CPU e dissipatore e chiude gli spazi di aria.
Alimentazione: i computer sono alimentati in corrente continua, a basse tensioni (solitamente 5 e 12V). Sulla scheda madre sono presenti i connettori per alimentare anche le ventole di raffreddamento. Sono costosi, ma molto utili.
Tasti esterni: un connettore di solito fastidioso da usare che permette di attaccare i tasti di accensione e reset e le luci di accensione ed attività disco presenti all’esterno del pc.
Chipset: è il cuore della scheda madre, gestisce la comunicazione tra processore, memoria e periferiche. Di solito è composto da due processori collegati tra loro e hanno dei dissipatori di calore passivo: NorthBridge che sta a nord (più veloce e connette PCI Express - RAM - CPU) e SouthBridge che sta a sud (connessioni più lente come IDE, SATA, PCI, USB, ecc). Il 90% della qualità di una scheda madre è data dalla bontà del chipset.
MOUSE OTTICO
HID-Human Interface Device
Sono periferiche per l’interazione con l’uomo.
Tastiera: Non segue il segnale ascii perché deve gestire la gestione di più tasti in contemporanea, sapere se il tasto è ancora premuto...
Mouse ottico: All'inizio erano meccanici, con una pallina di gomma che ruotava, ma non era molto reattivo e si sporcava. Attualmente una macchina fotografica (a bassa risoluzione, ma elevata frequenza, circa 1500fps) integrata nel mouse scatta continuamente foto, che vengono poi confrontate per rilevare il movimento (crea mappe binarie), fa tutto il mouse e poi invia le coordinate in binario. La foto è illuminata da una luce (di solito un laser ad infrarossi), ma se non ci sono abbastanza dettagli (es: specchio, superficie troppo uniforme, ecc) allora il sistema non funziona.
Touch Screen: può essere capacitivo o resistivo. Entrambe le tecnologie supportano il multi-touch, cioè rilevare più dita in contemporanea.
Quello resistivo funziona rilevando la pressione del dito. E' formato da due sottili film di plastica con dei sottili fili all’interno, la pressione chiude il circuito in un certo punto e viene rilevata la posizione. Problema: occorre premere, seppur leggermente.
Quello capacitivo (i più usati attualmente) funziona rilevando la leggera carica elettrica emessa dal dito. Non funziona con i guanti normali e richiedono dei guanti con fili di argento che conducono la corrente dal dito al dispositivo.
TOUCH RESISTIVO
TOUCH CAPACITIVO
Lettore Impronte Digitali: è una webcam tarata per fare fotografie ravvicinate. Alcuni elementi delle impronte vengono salvati (minutiae) e viene inserito un marcatore e poi si vede dove la linea si divide in due o dove termina. Le volte successive verranno cercati questi punti nell’impronta indagata per capire se è la stessa, non tutte perché magari il dito è girato, lo si muove... Tuttavia l’impronta digitale non è una password molto sicura:
non può essere cambiata
per ogni dispositivo devo usare la stessa password
può essere duplicata facilmente (basta una foto ad alta risoluzione e stamparla a laser. Poi con un orsetto gommoso lo si preme sul foglio, esso trasmette anche corrente)
Per questi motivi quasi tutti i telefoni si può premere una sequenza di tasti per farlo sbloccare solo con il pin. Questo anche per evitare abusi dei funzionari di polizia o rapinatori, i quale possono forzarvi ad usare l'importa digitale, ma non il pin o altre pasword.
Schede Video: Le schede video sono ormai dei piccoli computer: hanno un bus di comunicazione interno, una memoria principale ed una cpu (chiamata GPU, Graphics Processing Units); spesso sono dotate di dissipatore, come il processore del computer. Inoltre, sempre più schede video richiedono di essere collegate all’alimentatore del PC, perché la corrente che ricevono dal bus PCIe non è sufficiente.
Combinazione di Schede: alcune schede video possono essere unite e si dividono i compiti (ognuna segue solo metà dello schermo).
Memoria: Non può essere sostituita e ormai tutte usano almeno DDR3 (se non più veloci, come le GDDR5, fatte apposta per le schede video). La quantità di memoria installata è simile a quella di un computer di 3-4 anni fa (512MB - 3GB).
Uscite video: sono i connettori per il monitor e ognuno di essi può avere connessioni più o meno rapide in base alla qualità, di solito ce ne sono 1 o più (multi monitor). I più diffusi sono:
VGA: Video Graphics Array; connessione analogica dove i cavi lunghi introducono rumore.
DVI: Digital Visual Interface; connessione digitale. Può portare anche segnali analogici (DVI-I) quindi essere convertito in VGA oppure no (DVI-D). Inoltre un singolo connettore può supportare un singolo monitor (Single Link) oppure due monitor (Dual Link).
HDMI: trasmette sia audio che video ed è compatibile con il segnale DVI con un adattatore. A differenza degli altri è bidirezionale.
DisplayPort: simile a HDMI ma proprietario e con prestazioni leggermente migliori (banda doppia); richiede adattatori più complessi per convertire il segnale in VGA/DVI.
VGA
HDMI
GPU: sono dei processori orientati all’elaborazione di immagini, video e sequenze 3D, all'inizio soprattutto videogame. La grafica è parallelizzata, le operazioni vengono svolte in parallelo. Possono eseguire operazioni al posto della CPU, che rimane libera per altre cose (es: decomprimere un video DivX, eseguire un’animazione per un videogioco...).
Ma anche previsione meteo, analizzare centinaia di modelli, uno per core, e poi si unisce il risultato. Sono molto efficienti, soprattutto per operazioni complesse, come scoprire password (si prova con un dizionario o provo tutto - brute force, hascat). Ad oggi giorno sono anche difficili da trovare e si usano molto per produrre bitcoin.
Sono processori multicore estremizzati: una GPU odierna ha circa 600 core al suo interno; se il compito da svolgere è analizzare ripetutamente la stessa quantità di dati, funzionano meglio delle CPU → ci sono delle librerie che permettono di usare la GPU al posto della CPU (es: per scoprire la password di protezione dei files PDF).
Basta noleggire a basso costo su amazon una macchina virtuale che ha prestazioni elevatissime. Problema hacker.
Archiviazione Ottica
Vinile: c'è un contatto fisico, quindi la polvere può interferire, e sono molto grandi.
Compact Disc: nato per contenere solo dati audio (CD-DA, Digital Audio - 80 minuti), ma è stato adattato per i dati normali (CD-ROM, Read Only Memory - 650MB). È composto da più strati sovrapposti:
policarbonato per contenente i dati
superficie riflettente, quasi sempre in alluminio
lacca protettiva per evitare che il metallo si ossidi o rovini
etichetta decorativa
I dati vengono rappresentati come incisioni dette “pits”, codificate su una traccia a spirale (lunga circa 5.38km) che parte dal centro e viene incisa sul lato interno del policarbonato; le aree tra le buche si chiamano “lands”. Il supporto viene illuminato con un raggio laser, che viene quindi riflesso dal disco e letto da un fotodiodo; l’intensità della luce varia se attraversa un pit o meno
CLV: il disco viene fatto girare mantenendo costante la velocità lineare di 1.4 m/s (CLV, Constant Linear Velocity), cioè quando si legge l’interno il disco gira a circa 500rpm, quando si arriva all’esterno rallenta fino a circa 200rpm.
Velocità: l’indicatore (12x, 24x, ecc) indica quando più veloce va rispetto alla prima versione: 1x = 150kB/s
CD-R: CD Recordable: sono quelli scrivibili dai masterizzatori. Il policarbonato viene rivestito con del materiale organico (dye); il laser di scrittura ha una potenza più alta che riscalda il dye in un punto, alterandone le caratteristiche ottiche. A questi supporti si possono aggiungere dati (sessione aperta) creando un’altra traccia, ma non si possono rimuovere dati (il file può essere nascosto dall’indice, ma tecnicamente è ancora presente sul disco). Problemi:
il materiale in cui è fatto il dye è importante (migliore: AZO)
durano poco, massimo 10 anni contro i 100 anni dei CD prodotti in fabbrica
sorgenti di calore (Es: sole) possono rovinarli.
CD-RW: i CD-RW sono dischi riscrivibili che utilizzano una tecnologia a cambiamento di fase per registrare i dati. Ciò significa che i dati vengono scritti sul disco fondendo e solidificando un materiale fotosensibile presente sul disco stesso. Questo processo può essere ripetuto più volte, consentendo di sovrascrivere i dati esistenti con nuovi dati. Tuttavia, poiché il materiale fotosensibile si consuma ogni volta che viene riscritto, la qualità del disco può deteriorarsi dopo un certo numero di riscritture.
VideoCD: il VideoCD (VCD) è stato un formato di disco ottico sviluppato per la distribuzione di video su CD. Ha una capacità di archiviazione di circa 700 MB, che è sufficiente per contenere un film di lunghezza standard. Tuttavia, la qualità video dei VCD non è paragonabile a quella dei DVD o dei Blu-ray, poiché utilizzano una compressione video meno efficiente.
DVD, BLU-RAY, ecc: i DVD e i Blu-ray utilizzano una tecnologia simile ai CD, ma utilizzano pits (ossia delle fossette microscopiche) molto più piccoli per memorizzare i dati. Ciò consente di archiviare molto più dati su un singolo disco. Inoltre, i dischi Blu-ray utilizzano un laser di colore diverso rispetto ai DVD per leggere i dati, consentendo di leggere pits ancora più piccoli e quindi di archiviare ancora più dati su un singolo disco.
Controllo originalità: il sistema di controllo di originalità della PlayStation 1 utilizza una tecnica nota come "modulazione di frequenza di fase". Questo significa che il laser legge una serie di oscillazioni nella traccia del disco, che sono causate dalla modulazione di fase della traccia. Queste oscillazioni sono difficili da replicare in una copia del disco, il che significa che un disco originale produrrà oscillazioni uniche che possono essere rilevate dal sistema di controllo originalità della PlayStation 1. Tuttavia, questo sistema di protezione può essere aggirato utilizzando un chip di modifica sulla console.
Floppy disk
Disco magnetico-ottico: simile al floppy ma il doppio di spessore. Il campo magnetico incide una specie di disco e prima di incidere bisogna colpirlo con un raggio laser che riscalda l'aria presente.
Hard Disk: è auto contenuto, si collega direttamente con il connettore Sata e ha una sua alimentazione. Il disco rigido è composto da uno o più piatti rigidi rotanti rivestiti di un materiale ferromagnetico e da due testine per ogni disco, tutte posizionate su un braccio meccanico (il disco si legge sia sopra che sotto). E' controllato da una CPU.
Ogni testina ha un dispositivo di scrittura ed uno di lettura dei dati. I dati sono rappresentati come variazioni del campo elettromagnetico (polo sud o nord - verticale) sulla superficie del disco. Se si apre un disco esso è da buttare.
CAV(Constant Angular Velocity): il dispositivo gira a velocità costante. Più velocemente gira il disco, più rapidamente i dati saranno disponibili, ma aumentano rumore e consumi. Pc domestico: 5.400 rpm, server: 15.000 rpm
Dimensioni: sono fondamentalmente di due tipi: 3.5” (pc) e 2.5” (portatili che essendo piccolo consuma meno corrente). Certi server usano dischi da 2.5”, in certi casi con altezza più grossa dei portatili, per consumo e spazio.
Landing Zone: le testine volano a pochi nanometri di distanza dal disco, e sono tenute sollevate dall’aria mossa dalla rotazione del disco e se dovessero toccarlo lo graffierebbero, con la perdita di dati. La Landing Zone è l’area in cui atterrano le testine quando il disco è a riposo e non contiene dati. Per questo è da evitare di spostare il pc durante l'uso, ma comunque i moderni HD hanno un accelerometro che riporta la testina nella Landing zone.
Per pochi Mb
Geometria del disco: si riferisce alla struttura fisica del disco rigido o di altri supporti di memorizzazione, come i floppy disk. La geometria del disco è descritta dai dati relativi al formato fisico del disco, che includono il numero di piatti, il numero di tracce, i cilindri e i settori o blocchi.
Numero di piatti: si riferisce al numero di dischi magnetici presenti all'interno del disco rigido. In genere, i dischi rigidi sono composti da uno o più piatti, a seconda della capacità di archiviazione richiesta.
Tracce: sono le linee concentriche presenti sui piatti del disco rigido. I dati vengono memorizzati sulle tracce utilizzando un processo di magnetizzazione.
Cilindri:sono l'insieme di tutte le tracce presenti sui vari dischi aventi la stessa distanza dal centro. Ad esempio, tutte le tracce che si trovano a una distanza di 10 mm dal centro dei dischi costituiscono un cilindro.
Settori o blocchi: sono le unità di memorizzazione di base sul disco rigido. Ogni settore è costituito dall'intersezione di una traccia e di un'area circolare sul disco. In genere, ogni settore contiene una quantità fissa di dati, che tradizionalmente è di 512 byte. Tuttavia, con l'avanzamento della tecnologia, i settori possono contenere fino a 4 KB o più di dati.
96 bytes.
Cluster: insieme di settori
Controllo errori: all’interno di un settore vengono salvati bit aggiuntivi, per identificare il settore, i dati veri e propri ed un codice di controllo per gli errori. Quando si leggono i dati di un settore, il processore dell’HD ricalcola il codice di controllo e se è diverso da quello salvato si accorge che c’è stato un errore.
Controllo di parità: (in sintesi) da 1 se numero di bit che vale 1 è pari e 0 se numero di bit che valgono 1 è dispari. Problema: mi accorgo dell’errore solo quando leggo il dato, non quando lo scrivo. I dischi hanno un errore 1 bit ogni 10^14 bit scritti, ma con l’andare del tempo il rischio di danno aumenta, circa dopo 6 anni si rompe quasi sempre.
SMART: Self-Monitoring Analysis and Reporting Technology. I dischi salvano all’interno delle metriche che permettono di capire se sta per rompersi o no; i dati si possono ottenere usando il programma smartmontools. Alcuni dati rilevanti:
temperatura del disco
power-on hours, quante ore è rimasto acceso il disco
Quante volte è stato acceso e spento e avviare e fermare
Spin up time, tempo per raggiungere la velocità massima
Raw read error rate, quante volte non ha trovato un errore
Reallocated sensor count, quanti settori sono danneggiati; quando il disco rileva un settore danneggiato, lo marca come non utilizzabile e cerca di spostare i dati in un’area sana.
DDresque: per recuperare dati
Zone Bit Recording: la velocità del disco è costante, quindi la densità dei dati tende a calare sulle tracce esterne. Tramite Zone Bit Recording le tracce vengono raggruppate in zone, ed ogni zona ha un numero diverso di settori.
Le zone esterne sono comunque ad una densità più bassa, perché le tracce devono essere più larghe o la testina non riesce a leggerle perché la testina si muove su un arco e nella parte esterna arriva inclinata.
Lettura e Scrittura: la testina ha un dispositivo leggere i dati ed uno che si occupa di scrivere. Poiché sono in linea, quando il braccio si muove verso l’esterno solo uno di essi alla volta sarà ben posizionato sulla traccia, il disco può solo leggere o scrivere (ma non ce ne accorgiamo, le operazioni avvengono rapidamente).
Access Time: quanto tempo passa da quando si chiede il dato a quando è disponibile, qualche millisecondo. Dipende da due fattori:
Seek Time: tempo che impiega la testina per spostarsi sulla traccia corretta
Velocità di rotazione: la testina arriva sulla traccia, ma poi deve attendere che il settore corretto sia sotto di essa; più rapidamente gira il disco, meno dovrà aspettare in media.
Buffer: il disco usa una memoria RAM per salvare dei dati durante la lettura. Quando la testina si posiziona su una traccia, spesso legge cose che non le servono prima di arrivare al settore giusto, questi dati vengono comunque salvati, perché potrebbero servire dopo.
Master Boot Record: all’inizio di ogni disco è presente un settore MBR, dove viene scritto il codice macchina che verrà inizialmente caricato nella CPU all’avvio del PC.
Partizioni: permettono di trattare un singolo HD fisico come se fossero più dischi. Su un disco ci possono essere al massimo 4 partizioni, dette pr (primarie). Per permettere di creare più partizioni si può creare una partizione estesa, al cui interno si possono creare altre partizioni, chiamate partizioni logiche. Le partizioni sono scritte all’inizio del disco, in un’area dell’MBR chiamata Partition Table. Ci sono partizioni di avvio, ripristino, programma e i dati (durante il ripristino viene cancellata)
Vantaggi delle partizioni: permettere di tenere più sistemi operativi sul pc; separare il sistema operativo dai dati (così è più facile fare il backup / ripristinare il pc). Con opportuni strumenti, le partizioni possono essere estese e modificate (es: GParted).
Partizionamento
RAID: Redundant Array of Independent Disks, tecnologia che combina più dischi in unità logiche per migliorare le prestazioni o la sicurezza dei dati. Ci sono varie modalità RAID, eccone alcune:
RAID 0: striping; i dati vengono distribuiti sui dischi uniti in RAID 0; non ho ridondanza, e più dischi vengono presentati come un singolo dispositivo più grande. Tuttavia se uno si rompe perdo metà dei dati, il costo è uguale e la velocità di scrittura e lettura è migliore.
RAID 1: mirroring; i dati vengono duplicati su tutti i dischi. Lettura veloce perché posso leggere alcune cose da un disco, altre da un altro, di contro il costo aumenta (con 2 dischi in raid raddoppia), e ci si mette di più a scrivere i dati.
RAID 5: almeno tre dischi; se ho N dischi da 500 GB, avrò a disposizione (N-1)*500 GB. I dati vengono divisi in N-1 blocchi; ogni disco contiene un blocco, ed il disco rimanente contiene delle informazioni (parità) che permettono di ricreare i dati qualora uno dei dischi mancasse. E' veloce in scrittura e lettura. Il costo per 4 dischi è maggiore del 50%.
RAID Software ed Hardware: nella modalità RAID Hardware una scheda dedicata si occupa di gestire i dischi in RAID. La scheda spesso costa 400-500€, e la memoria ram del buffer funziona anche per la scrittura (dice al sistema operativo di aver scritto anche se non ha ancora finito). Serve una batteria integrata molto potente (più grande di un cellulare) per poter mantenere i dati che ha nel buffer qualora salti la corrente. Nel RAID Software il tutto avviene a livello di sistema operativo, più lento, e se si usano cose diversa da RAID 1 i dischi potrebbero essere illeggibili su un altro PC (problema se si perdono i dati).
RAID Hardwere per server
Il file system si occupa di organizzare i file sui dispositivi di archiviazione (cd-rom, hd, pen drive, ecc).
Albero: i file system hanno una struttura ad albero, formata da due tipi di elementi:
i nodi, Directory, che possono contenere altri elementi. Il nodo di partenza si chiama root directory, radice.
le foglie, File, che non possono contenere altri elementi
Gestione spazio: ad ogni elemento sono associate le informazioni che permettono di capire dove si trova nel disco. Per esempio, nei files vengono indicate le sequenze di settori che contengono il file.
Attributi: ad ogni elemento dell’albero sono associati degli attributi che variano in base all’implementazione.Qquelli più comuni riguardano i permessi, lettura, scrittura, esecuzione, data di creazione, data di accesso, se è nascosto, ecc.
Principali File System: guardiamone solo 4.
FAT - file allocation table: nato per dos; inizialmente al max 8 caratteri per nome file. Max 4Gb per file. (Importante quindi sia nome sia dimensione del file).
NTFS: nato per server Windows e attualmente su tutti i pc Windows. Permette di salvare file grandi e gestisce meglio i permessi di accesso al disco e quindi si possono inserire più dettagli. Maiuscole e minuscole sono uguali per nomi file. Ci sono formati principali e accessori. (Prompt dei comandi -->selezionare cartella file, es. \userlab\Destop e poi con \r si evidenziano i flussi alternativi di dati)
EXT4: è il più recente usato su Linux. Qui maiuscole e minuscole hanno un significato diverso.
HFS+: è quello usato in OS X, maiuscole e minuscole sono diverse.
Prompt dei comandi
Link Simbolici: artifizio interno al file system che permette di collegare un elemento dell’albero ad un altro, continuando l’esplorazione senza accorgersi che si è passati in un ramo comune ad altri. Più complicato in Windows dove però è più semplice creare dei collegamenti.
Collegamenti: Windows, il file contiene informazioni solo per saltare il percorso, fa effettuare dei salti, invece di continuare nel ramo corrente, si passa proprio all’altro ramo.
Cancellazione: quando si cancella un file, in realtà lo si elimina solo dall’albero. I byte che lo contenevano rimangono ancora nel disco e sono recuperabili con dei programmi. Più tempo passa, più diventa difficile recuperare i dati, perché le celle potrebbero essere state riutilizzate da altri file. Spostare il file nel cestino, lo sposta semplicemente in un altra cartella e solo quando serve si usa lo spazio riscrivendo sopra. Gli ultimi sistemi operativi, una volta inizializzati criptano i dati.
Eraser: cancellare file definitivamente
PhotoRec: recuperare file cancellati per errore (ovviamente no con erase)
DMDE Free Edition: più complicato da usare, ma può essere considerato uno dei programmi per recuperare file cancellati più potenti e versatili oggi disponibili sul mercato.
TestDisk: viene creato non tanto per recuperare file cancellati, ma per rendere nuovamente funzionanti gli hard disk con partizioni cancellate o con danni ai settori del master boot record (contenenti i file necessari all'avvio del sistema operativo) causati da un errore umano o da infezioni virus.
Link simbolici
Cancellazione
Frammentazione: il disco cerca di scrivere i file quanto più vicini possibili, perché la cosa che richiede più tempo è muovere la testina. Tuttavia ogni tanto i files non possono essere scritti di continuo, perché lo spazio contiguo libero non è sufficiente, i file quindi vengono spezzettati ed inseriti nelle aree libere.
La deframmentazione ottimizza la distribuzione dei files nel disco, riunendo i files quanto più possibile, e li sposta all' inizio del disco (evitare di creare di nuovo piccoli buchi).
CCleaner: Pulizia pc
Defraggler: Programma gratuito, utile anche se i moderni pc lo fanno in automatico
Formattazione: scrive un file system vuoto nel disco. E' detta “formattazione veloce” e invece la formattazione completa opera anche sui settori, ma ormai è praticamente inutile. Nella formattazione si scrive sul disco solo la parte del file system, eventuali dati già presenti potrebbero essere recuperabili.
Controllo errori: di due tipi:
controllo del file system: si controlla che la struttura dell’albero sia integra, magari si stecca la USB durante la scrittura o salta la corrente (niente orfani...). Lo si può fare perché in realtà ne viene sempre salvata una copia per fare il confronto. Quasi sempre questi errori sono recuperabili.
controllo del disco: si controlla byte per byte che non ci siano errori nei settori, contollo di parità. Questi errori si possono recuperare molto difficilmente (es: badsectors di linux).
Frammentazione
I dispositivi SSD (Solid State Drive) sono dispositivi di archiviazione di dati che utilizzano delle memorie flash per conservare i dati. A differenza dei dischi rigidi tradizionali, gli SSD non hanno parti in movimento, il che significa che hanno una velocità di accesso ai dati molto più veloce. Inoltre, gli SSD consumano meno energia e sono più silenziosi dei dischi rigidi tradizionali.
Tipi di SSD:
SLC (Single Level Cell): ogni cella di memoria salva un bit di informazione. Le memorie SLC sono più costose, ma sono più veloci e affidabili.
MLC (Multi Level Cell): ogni cella di memoria salva due bit di informazione (quattro possibili valori). Le memorie MLC sono meno costose delle SLC, ma sono più lente e meno affidabili.
TLC (Triple Level Cell): ogni cella di memoria salva tre bit di informazione. Le memorie TLC sono ancora meno costose delle MLC, ma sono ancora più lente e meno affidabili.
Errori: gli SSD sono in grado di rilevare e correggere gli errori durante la scrittura dei dati. Inoltre, il controller del disco si assicura che i dati siano scritti in modo uniforme sulle varie celle per evitare l'usura prematura delle celle.
Wear Leveling: ogni cella di memoria degli SSD può essere riscritta solo un numero limitato di volte prima di diventare inutilizzabile. Per evitare l'usura prematura delle celle, il controller del disco utilizza una tecnica chiamata "wear leveling" per distribuire uniformemente la scrittura dei dati su tutte le celle disponibili.
Scrittura e cancellazione: per scrivere i dati su una cella di memoria, la cella deve essere azzerata. Tuttavia, la cancellazione delle celle di memoria può essere un processo lento, poiché è possibile cancellare solo grandi aree di memoria alla volta. Questo significa che gli SSD richiedono uno spazio di memoria extra per gestire l'overprovisioning.
Overprovisioning: gli SSD lasciano una parte dello spazio di archiviazione libero per gestire la cancellazione e la riscrittura dei dati in modo uniforme sulla memoria. Questa tecnica è chiamata "overprovisioning" e comporta la riservazione di circa il 10-20% dello spazio totale di archiviazione.
TRIM: è utilizzato per indicare all'SSD quali blocchi di memoria non sono più in uso e possono essere cancellati. Questo aiuta a migliorare le prestazioni del disco, riducendo la quantità di dati che devono essere cancellati durante la scrittura dei nuovi dati.
Cancellazione
Cancellazione
Dischi ibridi: Sono normali Hard Drive con una memoria a stato solido di circa 8 Gb che funge da cache, usando una memoria SSD. Il disco identifica i dati richiesti più spesso e li sposta nella cache SSD quindi nel tempo le prestazioni migliorano (parte del sistema operativo, programmi più usati…). Il tutto accade in modo del tutto trasparente per l’utente che non si accorge di nulla. In certi casi, questo strato di memoria SSD è addirittura esterna al disco rigido e gestita direttamente dalla scheda madre (es: Intel Optane).