Livello logico digitale bus e memorie Principali tipi di memoria • Memoria RAM • Memorie ROM RAM (Random Access Memory) • SRAM (Static RAM) – Basata su FF (4 o 6 transistor MOS) – Veloce, costosa, bassa densità (bit/area): tempo accesso 0.5-5 ns, costo 4000-10000 per GB (nel 2004) – usate nelle memori cache (direttamente su CPU) • DRAM (Dynamic RAM) – Immagazzinamento di cariche elettriche (~50pC) – Meno veloce, meno costosa, alta densità (indirizzamento via mux): tempo accesso 50 ns, costo 100 € per GB (nel 2004) – Syncronous DRAM (SDRAM): Lettura sincrona ad un segnale di clock (un solo fronte attivo) RAM caratteristiche principali Tanti aspetti specifici • Formato di un modulo (altezza x ampiezza) – 64K x 8 (64K indirizzi, 8 bit per indirizzo) – 512 x 1 – 126K x 4 – 2K x 8 • Moduli preassemblati – SIMM (72 pin), DIMM (168 pin), … • Ex: PC-133 8M x 64 (8 chip, 32M x 8 bit) • Tempo di ciclo – Tempo che intercorre fra due operazioni (read o write) su locazioni differenti Esempi di organizzazione di RAM Principali tipi di memorie ROM • ROM (programmate in fabbrica) • PROM (Programmabili una volta dall’utente) • EPROM (Cancellabili mediante esposizione a raggi ultravioletti e riprogrammabile) • EEPROM (Cancellabili elettricamente e riscrivibili) – Tecnologia FLASH (cancellazione per blocchi) Riepilogo principali tecnologie memorie Esempio di SRAM Ingresso Indirizzi Uscita Controllo SDRAM SIMM DDR Bus nei calcolatori Collegano vari sottosistemi. Caratteristiche: • Dimensioni e caratteristiche fisiche – Connettori, distanza fra connettori, lunghezza massima • Ampiezza dati: 16,32, 64 bit • Numero massimo di dispositivi collegabili • Protocollo del bus – Sincrono vs Asincrono – Master/Slave – Arbitraggio • Banda di trasmissione (MB/sec) – Valore teorico, effettivo,… Architetture con un solo bus • DEC PDP-8 (1965) • Interconnessione a bus, molto flessibile • Architettura incentrata sull’I/O • Possibilità di connettere qualsiasi periferica • Prodotto in oltre 50.000 esemplari Un singolo BUS? I sistemi con un singolo BUS (bus di backplane) sono economici, ma non sono in grado di offrire elevate prestazioni – Molte unità sullo stesso BUS: Contesa per l’accesso – Velocità di traferimento diverse – Numero di unità che possono essere connesse • Si utilizzano quindi diversi tipi di BUS – Bus per il collegamento Processore-Memoria – Bus per collegamento dispositivi periferici (non è molto veloce perché non serve) • Le connessioni fra tipi diversi di bus sono effettuate da appositi circuiti adattatori Esempi di bus Esempio di bus in un PC BUS ADAPTER MEMORIA SCHEDA GRAFICA DISCHI BUS ADAPTER Pentium 4 Utilizzo del BUS Bisogna stabilire un insieme di regole (protocollo) per regolamentare la transazioni • Uno dei due partner di una transazione è il master del bus, mentre l’altro slave (padrone, schiavo) • Il master inizia una transazione mentre lo slave esegue gli ordini forniti dal master – Ex: la CPU (master) ordina la lettura di un dato dalla memoria (slave) – Lo stesso dispositivo può svolgere il ruolo sia di master che di slave (in cicli differenti) – Se più di un dispositivo collegato al bus può svolgere funzione di master, allora è richiesto un ulteriore protocollo (arbitraggio del bus) per assegnare in modo esclusivo la funzione di master Utilizzo del BUS: terminologia • Un segnale S di controllo può determinare l’azione che controlla quando esso vale 1 oppure 0 • Si dice che il segnale è asserito quando assume il valore che provoca l’azione, altrimenti il segnale è negato • Se il segnale provoca l’azione quando il valore è 1 (asserito alto), il segnale si denota con S, altrimenti con S (notazione Intel #S) • Ciclo di bus è l’insieme di attività che coinvolgono il bus atte a svolgere un’operazione (ex. Ciclo di lettura, ciclo di scrittura,..) Bus Sincrono Esempio di ciclo di lettura Bus Asincrono Esempio di ciclo di lettura Arbitraggio del BUS daisy chain • Server per decidere il master della nuova transazione • Deve risolvere i conflitti nel caso di richieste contemporanee da parte di più dispositivi per diventare master • Una tecnica comune è daisy chain • Non è fair: il dispositivo i è avvantaggiato rispetto ad i+1