Technische Grundlagen der Informatik Kapitel 5 Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt
Kapitel 5: Themen Speicherarchitekturen RAM-, ROM-Speicher Flash-Speicher Logikimplementierung mittels Speicherfeldern Logikfelder PLD und FPGA Entwurfsablauf für FPGAs WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 2
Speicherfelder Können effizient größere Datenmengen speichern Drei weitverbreitete Typen: Dynamischer Speicher mit wahlfreiem Zugriff (Dynamic random access memory, DRAM) Statischer Speicher mit wahlfreiem Zugriff (Static random access memory, SRAM) Nur-Lesespeicher (Read only memory, ROM) An jede N-bit Adresse kann ein M-bit breites Datum geschrieben werden Adresse N Feld M Daten WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 3
Speicherfelder Zweidimensionales Feld von Bit-Zellen Jede Bit-Zelle speichert ein Bit Feld mit N Adressbits und M Datenbits: 2 N Zeilen und M Spalten Tiefe: Anzahl von Zeilen (Anzahl von Worten) Breite: Anzahl von Spalten (Bitbreite eines Wortes) Feldgröße: Tiefe Breite = 2 N M Adresse Daten Adresse N Feld Adresse 2 Feld 11 10 01 0 1 0 1 0 0 1 1 0 Tiefe M 3 00 0 1 1 Daten Daten Breite WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 4
Beispiel: Speicherfeld 2 2 3-Bit Feld Anzahl Worte: 4 Wortbreite: 3-Bit Beispiel: 3-Bit gespeichert an Adresse 2 b10 ist 3 b100 Beispiel: Adresse Daten Adresse 2 Feld 11 10 01 0 1 0 1 0 0 1 1 0 Tiefe 3 00 0 1 1 Daten Breite WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 5
Speicherfelder Adresse 10 1024-Wort x 32-bit Feld 32 Daten WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 6
Bit-Zellen für Speicherfelder Beispiel: wordline bit bitline bitline = bitline = wordline = 1 wordline = 0 bitline = bitline = wordline = 1 wordline = 0 (a) (b) WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 7
Aufbau von Speicherfeldern aus Bit-Zellen Beispiel: wordline bit bitline wordline = 1 bitline = 0 wordline = 0 bitline = Z wordline = 1 bitline = 1 wordline = 0 bitline = Z (a) (b) WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 8
Aufbau von Speicherfeldern Wordline: Vergleichbar mit Enable-Signal Erlaubt Zugriff auf eine Zeile des Speichers zum Lesen oder Schreiben Entspricht genau einer eindeutigen Adresse Maximal eine Wordline ist zu jedem Zeitpunkt HIGH 2:4 Decoder bitline 2 bitline 1 bitline 0 11 wordline 3 Adresse 2 10 wordline 2 01 wordline 1 00 wordline 0 WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 9 Data 2 Data 1 Data 0
Arten von Speicher: Historische Sicht Speicher mit wahlfreiem Zugriff (RAM) Nur-Lese Speicher (ROM) WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 10
RAM: Random-Access Memory Flüchtig: Speicherinhalte gehen bei Verlust der Betriebsspannung verloren Kann i.d.r. gleich schnell gelesen und geschrieben werden Zugriff auf beliebige Adressen mit ähnlicher Verzögerung möglich Hauptspeicher moderner Computer ist dynamisches RAM (DRAM) Aktuell & genauer: DDR3-SDRAM Double Data Rate 3 - Synchronous Dynamic Random Access Memory Name RAM ist historisch gewachsen Früher unterschiedliche Zugriffszeiten auf unterschiedliche Adressen Bandspeicher, Trommelspeicher, Ultraschall-Laufzeitspeicher, WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 11
ROM: Read-Only Memory Nicht-flüchtig: Erhält Speicherinhalt auch ohne Betriebsspannung Schnell lesbar Schreibbar nur sehr langsam (wenn überhaupt) Flash-Speicher ist in diesem Sinne ein ROM Kameras Handys MP3-Player Auch hier Nomenklatur ROM historisch Auch aus ROMs kann von beliebigen Adressen gelesen werden Es gibt auch schreibbare Arten von ROMs PROMs, EPROMs, EEPROMs, Flash WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 12
Arten von RAM Zwei wesentliche Typen: Dynamisches RAM (DRAM) Statisches RAM (SRAM) Verwenden unterschiedliche Speichertechniken in den Bit-Zellen: DRAM: Kondensator SRAM: Kreuzgekoppelte Inverter WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 13
Robert Dennard, 1932 - Erfand 1966 bei IBM das DRAM Anfangs große Skepsis, ob diese Technik praktikabel sei Seit Mitte der 1970er Jahre ist DRAM die am weitesten verbreitete Speichertechnik in Computern WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 14
DRAM Bit-Zelle Datenbit wird als Ladezustand eines Kondensators gespeichert Dynamisch: Der Speicherwert muss periodisch neu geschrieben werden Auffrischung alle paar Millisekunden erforderlich (üblich: 64ms) Kondensator verliert Ladung durch Leckströme und beim Auslesen wordline bit bitline wordline bit bitline WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 15
DRAM Bit-Zelle bitline bitline wordline gespeicherter Wert = 1 + + wordline gespeicherter Wert = 0 WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 16
SRAM Bit-Zelle Datenbit wird als Zustand von rückgekoppelten Invertern gespeichert bitline Statisch: Keine Auffrischung erforderlich Inverter treiben Werte auf gültige Logikpegel wordline bit wordline bitline bitline WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 17
Speicherfelder 2:4 Decoder bitline 2 bitline 1 bitline 0 Adresse 2 11 10 01 00 wordline 3 wordline 2 wordline 1 wordline 0 Data 2 Data 1 Data 0 DRAM Bit-Zelle: bitline wordline SRAM Bit-Zelle: wordline bitline bitline WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 18
ROMs: Aufbau der Bit-Zellen 2:4 Decoder 11 wordline bitline Adresse 2 10 = Bit-Zelle speichert 0 01 bitline 00 Data2 Data1 Data0 = wordline Bit-Zelle speichert 1 Bitlines sind schwach auf HIGH getrieben WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 19
Fujio Masuoka, 1944- Entwickelte Speicher und schnelle Schaltungen bei Toshiba von 1971-1994 Erfand Flash-Speicher als eigenes ungenehmigtes Projekt in den späten 1970ern An Wochenenden und abends Löschvorgang erinnerte ihn an Kamerablitz Deshalb Flash-Speicher! Toshiba kommerzialisierte Technik nur zögerlich Erste kommerzielle Chips von Intel in 1988 Flash-Produkte haben großen Erfolg Derzeit USD 25 Milliarden Umsatz / Jahr WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 20
Flash-Speicher: Bit-Zelle Quelle:Wikipedia WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 21
ROMs als Datenspeicher Adresse 2 2:4 Decoder 11 10 01 Adresse 11 10 01 Daten 0 1 0 1 0 0 1 1 0 Tiefe 00 00 0 1 1 Data 2 Data 1 Data 0 Breite WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 22
ROMs als Wertetabellen für boolesche Logik Adresse 2 2:4 Decoder 11 10 Data 2 = A 1 A 0 Data 1 = A 1 + A 0 01 Data 0 = A 1 A 0 00 Data 2 Data 1 Data 0 WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 23
Beispiel: Logik aus ROMs Implementierung der folgenden logischen Funktionen durch 2 2 3-bit ROM: X = AB Y = A + B Z = AB Adresse 2 2:4 Decoder 11 10 01 00 Data 2 Data 1 Data 0 WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 24
Beispiel: Logik aus ROMs Implementierung der folgenden logischen Funktionen durch 2 2 3-bit ROM: X = AB Y = A + B Z = AB A, B 2 2:4 Decoder 11 10 01 00 X Y Z WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 25
Logik aus beliebigem Speicherfeld 2:4 Decoder bitline 2 bitline 1 bitline 0 Adresse 2 11 10 01 00 wordline 3 wordline 2 wordline 1 wordline 0 Data 2 = A 1 A 0 Data 2 Data 1 Data 0 Data 1 = A 1 + A 0 Data 0 = A 1 A 0 WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 26
Logik aus beliebigem Speicherfeld Implementierung der folgenden logischen Funktionen durch 2 2 3-bit RAM: X = AB Y = A + B Z = AB 2:4 Decoder bitline 2 bitline 1 bitline 0 11 wordline 3 A, B 2 10 wordline 2 01 wordline 1 00 wordline 0 Andere Funktion nur durch Ändern der Speicherinhalte X Y Z WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 27
Logik aus beliebigen Speicherfeldern Speicherfelder speichern Wertetabellen Lookup-Tables (LUTs) 4-Wort x 1-bit Speicherfeld Wort aus Eingangsvariablen bildet Adresse Für jede Kombination von Eingangsvariablen ist Funktionsergebnis abgespeichert Wertetabelle A B Y 0 0 0 0 1 0 1 0 0 1 1 1 A B 2:4 Decoder 00 A 1 A 0 01 10 11 bitline Y WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 28
Multi-Port-Speicher Port: Zusammengehörige Anschlüsse für Adresse und Datum Drei-Port Speicher 2 Lese-Ports (A1/RD1, A2/RD2) 1 Schreib-Port (A3/WD3, Signal WE3 löst Schreiben aus) Kleine Multi-Port-Speicher werden als Registerfelder bezeichnet Werden z.b. in Prozessoren eingesetzt CLK N N A1 A2 WE3 RD1 RD2 M M N M A3 WD3 Array WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 29
Speicherfeld in VHDL -- 256 x 3b Speicher mit einem Schreib/Lese-Port library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity dmem is port(clk, we: in STD_LOGIC; a: in STD_LOGIC_VECTOR(7 downto 0); di: in STD_LOGIC_VECTOR(2 downto 0); do: out STD_LOGIC_VECTOR(2 downto 0)); end; architecture synth of dmem is type ram_type is ARRAY(255 downto 0) of STD_LOGIC_VECTOR(2 downto 0); signal ram: ram_type; begin process (clk) begin if clk'event and clk = '1' then if we = '1' then ram(conv_integer(a)) <= di; end if; end if; end process; do <= ram(conv_integer(a)); end; WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 30
Logikfelder (logic arrays) Programmable Logic Arrays (PLAs) AND Feld gefolgt von OR Feld Kann nur kombinatorische Logik realisieren Feste interne Verbindungen, spezialisiert für DNF (SoP-Form) Field Programmable Gate Arrays (FPGAs) Feld von konfigurierbaren Logikblöcken (CLBs) Können kombinatorische und sequentielle Logik realisieren Programmierbare Verbindungsknoten zwischen Schaltungselementen WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 31
Boolesche Funktionen mit PLAs: Wiederholung X = ABC + ABC Y = AB Eingänge M AND Feld Implikanten N OR Feld P Ausgänge A B C OR-Feld ABC ABC AB AND-Feld WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 32 X Y
PLAs: Vereinfachte Schreibweise Eingänge M AND Feld Implikanten N OR Feld A B C P Ausgänge OR-Feld ABC ABC AB AND-Feld WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 33 X Y
FPGAs: Field Programmable Gate Arrays Bestehen grundsätzlich aus: CLBs (Configurable Logic Blocks): Realisieren kombinatorische und sequentielle Logik Konfigurierbare Logikblöcke IOBs (Input/Output Blocks): Schnittstelle vom Chip zur Außenwelt Ein-/Ausgabeblöcke Programmierbares Verbindungsnetz: verbindet CLBs und IOBs Kann flexibel Verbindungen je nach Bedarf der aktuellen Schaltung herstellen Reale FPGAs enthalten oftmals noch weitere Arten von Blöcken RAM Multiplizierer Manipulation von Taktsignalen (DCM) Sehr schnelle serielle Verbindungen (11 Gb/s) Komplette Mikroprozessoren WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 34
Struktur eines Xilinx Spartan 3 FPGA WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 35
Konfigurierbare Logikblöcke (CLBs) Bestehen im wesentlichen aus: LUTs (lookup tables): realisieren kombinatorische Funktionen Flip-Flops: realisieren sequentielle Funktionen Multiplexern: Verbinden LUTs und Flip-Flops WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 36
Xilinx Spartan 3 CLB WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 37
Xilinx Spartan CLB WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 38
Xilinx Spartan 3 CLB Ein Spartan 3 CLB enthält: 2 LUTs: F-LUT (2 4 x 1-bit LUT) G-LUT (2 4 x 1-bit LUT) 2 sequentielle Ausgänge: XQ YQ 2 kombinatorische Ausgänge: X Y WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 39
Beispiel: Kombinatorische Logik mit CLBs Berechnung der folgenden Funktionen mit dem Spartan 3 CLB X = ABC + ABC Y = AB WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 40
Beispiel: Kombinatorische Logik mit CLBs Berechnung der folgenden Funktionen mit dem Spartan 3 CLB X = ABC + ABC Y = AB F4 X X X X X X X x (A) (B) (C) (X) F3 0 0 0 0 1 1 1 1 F2 F1 F 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 G4 X X X X G3 X X X X (A) (B) (Y) G2 G1 G 0 0 0 0 1 0 1 0 1 1 1 0 0 0 A B 0 A B C G4 G3 G2 G1 F4 F3 F2 F1 G F Y X WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 41
Entwurfsfluß für FPGAs Wird in der Regel durch Entwurfswerkzeuge unterstützt Beispiel: Xilinx ISE Ist in der Regel ein iterativer Prozess: Planen Implementieren Simulieren Wiederhole Entwickler denkt nach Entwickler gibt Entwurf als Schaltplan oder HDL-Beschreibung ein Entwickler wertet Simulationsergebnisse aus Wenn Simulation zufriedenstellend: Synthetisiere Entwurf in Netzliste Bilde Netzliste auf FPGA-Konfiguration ab (CLBs, IOBs, Verbindungsnetz) Lade Konfigurationsdaten (bit stream) auf FPGA Teste Schaltung nun in realer Hardware WS 10/11 Technische Grundlagen der Informatik - Kapitel 5 - Prof. Sorin A. Huss 42