Technische Grundlagen der Informatik WS 2008/2009 16. Vorlesung Klaus Kasper WS 2008/2009 Technische Grundlagen der Informatik 1
Inhalt Wiederholung: Gleitkommadarstellung Konstruktion Normalisierte / denormalisierte Zahlen ROM Realisierung digitaler Lösungen Programmierbare Logikbausteine isplever WS 2008/2009 Technische Grundlagen der Informatik 2
Zahlendarstellung WS 2008/2009 Technische Grundlagen der Informatik 3
Festkomma-Darstellung Verwendung von n+1 Vorkommastellen und m Nachkommastellen zur Darstellung. Bedingt durch die Reservierung von m Bit für Nachkommastellen ist das Intervall zwischen größter und kleinster darstellbarer Zahl sehr klein. Wie könnte es vergrößert werden? Durch eine Reduktion der Bit für Nachkommastellen. Bessere Lösung: Gleitende Position des Binärkommas. WS 2008/2009 Technische Grundlagen der Informatik 4
Gleitkomma-Darstellung Anforderung: Für betragsmäßig g große Zahlen soll die Anzahl der Nachkommastellen reduziert werden und bei betragsmäßig g kleinen Zahlen soll die Zahl der Vorkommastellen reduziert werden. Bei der Gleitkomma-Darstellung (engl.: floating point representation) wird die Zahl a mit Hilfe der Mantisse m und dem Exponenten e zu einer Basis b dargestellt. WS 2008/2009 Technische Grundlagen der Informatik 5
Beispiel 123 i 10 7 = 0,00001230000123 Mantisse: -123 Exponent: -7 Basis: 10 Alternative Darstellungen 6 5 12,3 i10 = 1, 23 i10 keine Eindeutigkeit in der Darstellung WS 2008/2009 Technische Grundlagen der Informatik 6
Übung Wie viele Nachkommastellen hat 1,25 * 10-2? Wie viele Nachkommastellen hat 1,25 * 10 2? 1,25 * 10-2 = 0,0125 1,25 * 10 2 = 125,0 WS 2008/2009 Technische Grundlagen der Informatik 7
Normalisierte Gleitkommazahlen In der normalisierten Darstellung hat die Mantisse exakt eine Vorkommastelle. ± m, m... m i b, wobei m = 1 e 0 1 p 1 0 Für die Darstellung der Mantisse wird eine feste Zahl von Stellen verabredet. Für den Exponenten wird ein Wertebereich [e min,e max ] verabredet. WS 2008/2009 Technische Grundlagen der Informatik 8
Übung Annahmen: Wir haben eine normalisierte Darstellung. Die Mantisse hat 2 Nachkommastellen in binärer Darstellung. Der Exponent hat 3 bit inklusiv Vorzeichen. Als Basis wird 10 gewählt. Berechnen Sie für benachbarte Zahlen: - das betragsmäßig kleinste Intervall. - das betragsmäßig größte Intervall. 0,25 * 10-3 = 0,00025 025* 0,25 10 3 = 250 WS 2008/2009 Technische Grundlagen der Informatik 9
Darstellung der Null? Auf Grund der Verabredung für die Mantisse kann m = 0,0 nicht dargestellt werden. Daher wird die Null folgendermaßen dargestellt: 10 1,0 i b e min 1 WS 2008/2009 Technische Grundlagen der Informatik 10
Übung Notieren Sie bitte die normalisierten i Gleitkommazahlen, die auf der Basis der bisherigen Ausführungen bei Ver- wendung von 2 Nachkommabits (x,xx) xx) für die Mantisse, e min =-1, e max =2 und b=2 dargestellt werden können. Stellen Sie die Liste bitte in Dezimaldarstellung auf. 1,00*2-2 0 1,00*2-1 0,5 1,01*2-1 0,625 1,10*2-1 0,75 1,11*2-1 0,875 1,00*2 0 1,0 1,01*2 0 1,25 1,10*2 0 1,5 111*2 1,11*2 0 175 1,75 1,00*2 1 2 1,01*2 1 2,5 1,10*2 1 3,0 1,11*2 1 3,5 1,00*2 2 4 1,01*2 2 5 1,10*2 2 6 1,11*2 2 7 Problem? WS 2008/2009 Technische Grundlagen der Informatik 11
Denormalisierte Zahlen 1,00*2 0 1,11*2-1 =? In unserem Zahlensystem lautet das Ergebnis: 1,00 * 2-2 Anweisung: if (X!= Y) then Z = 1/(X-Y) Was passiert für den Fall X=1,00*2 0 und Y=1,11*2-1? Laufzeitfehler, da durch 0 geteilt wird! Für e=e min wird m 0 =0 zugelassen. Die so eingeführten Zahlen werden als denormalisierte oder subnormale Zahlen bezeichnet. WS 2008/2009 Technische Grundlagen der Informatik 12
Übung (erweitert) Notieren Sie bitte die normalisierten und denormalisierten Gleitkommazahlen, die auf der Basis der bisherigen Ausführungen bei Verwendung von 2 Nachkommabits (x,xx) für die Mantisse, e min =-1, e max =2 und b=2 dargestellt werden können. Stellen Sie die Liste bitte in Dezimaldarstellung auf. WS 2008/2009 Technische Grundlagen der Informatik 13
Erweitertes Beispiel 1,00*2-2 0 0,01*2-1 0,125 0,10*2-1 0,25 0,11*2-1 0,375 1,00*2-1 0,5 1,01*2-1 0,625 1,10*2-1 0,75 1,11*2-1 0,875 1,00*2 0 10 1,0 1,01*2 0 1,25 110*2 1,10 0 15 1,5 1,11*2 0 1,75 1,00*2 1 2 1,01*2 1 2,5 1,10*2 1 3,0 1,11*2 1 3,5 1,00*2 2 4 1,01*2 2 5 1,10*2 2 6 1,11*2 2 7 WS 2008/2009 Technische Grundlagen der Informatik 14
Definition eines Gleitkomma- Zahlensystems Basis (base, radix) b >= 2 Mantissenlänge (precision) p >= 2 kleinster Exponent e min < 0 größter Exponent e max > 0 Normalisierungsindikator i i denorm, hierbei handelt es sich um einen Wahrheitswert h t (true bedeutet, t dass denormalisierte Zahlen enthalten sind) WS 2008/2009 Technische Grundlagen der Informatik 15
Beispiele Ein Gleitkomma-Zahlensystem t kann durch F(b,p,e min,e max,denorm) definiert werden. Intel x86-prozessoren einfach genau: F(2,24,-126,127,true) Intel x86-prozessoren doppelt genau: F(2,53,-1022,1023,true) Die beiden Beispiele folgen der IEEE Norm 754. WS 2008/2009 Technische Grundlagen der Informatik 16
IEEE, single precision I F(2,24,-126,127,true) (,,,, ) ca. 4,26 * 10 9 normalisierte und ca. 1,7 * 10 7 denormalisierte Gleitkommazahlen können dargestellt werden kleinster Wert ca. 1,18 * 10-38 größter Wert ca. 3,40 * 10 38 IEEE 754 Norm für Gleitkommazahlen wurde erst im Jahr 1989 verabschiedet. Sie ist als IEC 559:1989 auch internationale Norm. WS 2008/2009 Technische Grundlagen der Informatik 17
IEEE, single precision II Z = M S E O ( 1) i i2, wobei O = 127 WS 2008/2009 Technische Grundlagen der Informatik 18
IEEE, single precision (Beispiel) Beispiel: 45.625 10 Fraktion f = 01101101 (beachte 1.01101101) bit 0-22 dargestellter Exponent e = 10000100 bit 23-3030 Vorzeichen s = 0 bit 31 Damit ist die Darstellung im IEEE 754-Format mit einfacher Genauigkeit (single precision): 0100 0010 0011 0110 1000 0000 0000 0000 WS 2008/2009 Technische Grundlagen der Informatik 19
Rundung In der Mathematik sind die reellen Zahlen unendlich. Jedes Gleitkomma-Zahlensystem t hat endlich viele Elemente. Daher müssen Verfahren zur Rundung realisiert werden, nicht nur für Zahlen die kleiner oder größer sind als die Extremwerte. Bei der Durchführung der Rundung resultiert ein Rundungsfehler. WS 2008/2009 Technische Grundlagen der Informatik 20
Festwertspeicher (ROM) Auf einen typischen ROM wird während des Betriebs ausschließlich lesend zugegriffen. Die Programmierung (Schreiben) eines ROM ist deutlich aufwändiger als der Lesezugriff. Der Aufbau eines ROM entspricht hinsichtlich der Matrixanordnung der Speicherzellen und der Adressverwaltung dem Aufbau eines RAM. WS 2008/2009 Technische Grundlagen der Informatik 21
Maskenprogrammierte ROM Für große Stückzahlen werden bei der Herstellung der Speicher die Information fest eingegeben. g Die zu speichernde Information wird mittels einer Metallisierungsmaske eingebracht. Beispiel: Haushaltsgeräte WS 2008/2009 Technische Grundlagen der Informatik 22
Programmierbare ROM (PROM) Mit speziellen Programmiergeräten können PROM vom Anwender programmiert werden. Die Programmierung erfolgt durch die Herstellung von Verbindungen (Anti- Fuse) oder durch die Trennung von Verbindungen (Fuse). Die Programmierung ist irreversibel. WS 2008/2009 Technische Grundlagen der Informatik 23
UV-löschbares PROM (EPROM) EPROMS können mit speziellen Geräten programmiert und gelöscht werden. Für die Programmierung wird eine Spannung von ca. 20 Volt benötigt. Bei der Programmierung werden mit Hilfe des Avalanche-Effektes (Lawineneffektes) elektrische Ladungen injiziert. Für die Löschung wird entsprechend energiereiches Licht benötigt. Die Löschung dauert einige Minuten. Der Baustein muss i.a. zur Löschung aus der Schaltung entfernt werden. WS 2008/2009 Technische Grundlagen der Informatik 24
Elektrisch lösch- und programmierbare ROM (EEPROM) Der Baustein kann für den Löschvorgang in der Schaltung verbleiben. Für den Löschvorgang wird eine Spannung von ca. 20 Volt benötigt. Für Programmierung und Löschung wird der Tunneleffekt ausgenutzt. Jedem Schreibvorgang wird ein Löschvorgang vorgeschaltet. Der Schreibvorgang für ein Byte benötigt ca. 10 ms. Anzahl von Lösch-/Schreibzyklen: ca. 10000 Speicherdauer: mindestens 10 Jahre WS 2008/2009 Technische Grundlagen der Informatik 25
Floating-Gate-Technologie für EEPROM-Speichertransistor WS 2008/2009 Technische Grundlagen der Informatik 26
Flash-Speicher Weiterentwicklung der EEPROMs. Im Fall des Flash-Speichers wir im Unterschied zu EEPROMS der Speicher blockweise (!) gelöscht. In ersten Realisierungen i wurde der Speicher mit einem Flash (Blitz) vollständig gelöscht. Ein Block umfasst ca. 0,5 KB 128 KB. Der direkte Zugriff auf einzelne Bytes ist prinzipiell nicht möglich. Dies entspricht dem Prinzip von Massenspeichern, die eine typische Blockgröße von 512 Byte haben. Moderne Typen kommen mit 5 Volt als Programmier- und Löschspannung aus. WS 2008/2009 Technische Grundlagen der Informatik 27
Aktuelle Flash-Speicher Lesen/Schreiben Kapazität Memory Stick 10/3 MB/s 8 GB (16 GB) CompactFlash (CF) 20/20 MB/s 8 GB (32 GB) SecureDigital Card (SD) 20/15 MB/s 16 GB (32 GB) USB-2.0-Stick 33/15 MB/s 32 GB (64 GB) Solid-State Disk (SSD) 175/100 MB/s (250/170 MB/s) 32 GB (256 GB) MultimediaCard (MMC) 15/15 MB/s 1 GB (4 GB) WS 2008/2009 Technische Grundlagen der Informatik 28
Zum Vergleich Speichertyp Speichertakt Bezeichnung Bandbreite SDRAM 133 MHz PC133 1,1 GB/s DDR266 133 MHz PC2100 2,1 GB/s DDR400 200 MHz PC3200 3,2 GB/s DDR2-400 100 MHz PC2-3200 3,2 GB/s DDR2-533 133 MHz PC2-4300 4,3 GB/s DDR2-1066 266 MHz PC2-8500 8,5 GB/s DDR3-1066 133 MHz PC3-8500 8,5 GB/s DDR3-1333 166 MHz PC3-10600 10,6 GB/s DDR3-1600 200 MHz PC3-12800 12,8 GB/s PC3200: 200 MHz 8 Byte 2 Zugriffe/Takt = 3200 MByte/s WS 2008/2009 Technische Grundlagen der Informatik 29
Fazit Eigenschaften SRAM DRAM EE- FLASH FRAM/ PROM MRAM Nichtflüchtig nein nein ja ja ja kleine Zellenmaße nein ja nein ja ja Wortweise les-/schreibbar ja ja ja nein ja geringer Leistungsbedarf ja ja nein nein ja schneller Schreibzugriff ja ja nein nein ja 10 15 Schreibzyklen ja ja nein nein ja Kostengünstig nein ja nein ja ja WS 2008/2009 Technische Grundlagen der Informatik 30
Realisierung digitaler Systeme WS 2008/2009 Technische Grundlagen der Informatik 31
Realisierung digitaler Lösungen Full Custom IC ASIC (Application Specific Integrated Circuit) Bausteine mit programmierbarer Logik WS 2008/2009 Technische Grundlagen der Informatik 32
Full Custom IC (Integrated Circuit) individuelle Entwicklung eines digitalen Systems lange Entwicklungszeiten sehr große Stückzahlen individuelle Fertigung geringer Stückpreis WS 2008/2009 Technische Grundlagen der Informatik 33
Application Specific Integrated Circuit (ASIC) Hersteller stellt umfangreiche Bibliotheken für Funktionen verkürzte Entwicklungszeiten Schaltung wird mit einer Hardware- Beschreibungssprache beschrieben Hersteller realisiert Schaltung auf der Basis eines adäquaten ASIC große Stückzahlen günstiger g Stückpreis WS 2008/2009 Technische Grundlagen der Informatik 34
Programmierbare Logik Hersteller bieten programmierbare Logik-Bausteine an Lösung wird vom Anwender entwickelt hohe Flexibilität kleine Stückzahlen hoher Stückpreis WS 2008/2009 Technische Grundlagen der Informatik 35
Programmierbare Bausteine PLD (Programmable Logic Device) programmierbare Logikelemente (seit Mitte der 70er) PLD stellen eine logische Grundstruktur zur Verfügung, die vom Entwickler nach Bedarf konfiguriert (programmiert) werden kann. Für hoch integrierte PLD stehen Beschreibungssprachen zur Verfügung. WS 2008/2009 Technische Grundlagen der Informatik 36
Verfahren zur Programmierung PROM (Programmable Read Only Memory)- Prinzip: Durchbrennen einer Sicherung (Fuse) oder Entfernen einer Isolierung (Antifuse), Programmierung ist irreversibel EPROM (Erasable PROM)-Prinzip: Programmierung kann durch Bestrahlung mit UV-Licht wieder gelöscht werden EEPROM (Electrical Erasable PROM)- Prinzip: Programmierung kann durch elektrische Impulse wieder gelöscht werden WS 2008/2009 Technische Grundlagen der Informatik 37
Typisierung PAL (Programmable Array Logic): Programmierbare UND-Matrix, feste Oder- Matrix, von einem Hersteller auch als GAL (Generic Array Logic) bezeichnet PLE (Programmable Logic Element): Programmierbare Oder-Matrix, feste Und-Matrix PLA (Programmable Logic Array): Programmierbare UND-Matrix und programmierbare ODER-Matrix WS 2008/2009 Technische Grundlagen der Informatik 38
Prinzip PAL Frei programmierbare UND-GATTER Fest verschaltete ODER-Gatter WS 2008/2009 Technische Grundlagen der Informatik 39
Beispiel PAL Y1 = ( X2 X3) ( X1 X2 X3) X1 Y2 = ( X1 X2 X3) ( X1 X2 X3) ( X 1 X 2) WS 2008/2009 Technische Grundlagen der Informatik 40
PLA Struktur D C B A Y 1 Y 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 Die mit der Wahrheitstabelle definierten Booleschen Funktionen sollen mit der unten dargestellten PLA-Struktur realisiert werden. WS 2008/2009 Technische Grundlagen der Informatik 41
PLA Struktur Y 1 B A 0 0 1 * 0 0 0 * 0 1 * 0 1 1 * 0 B 1 0 0 * 1 0 1 * 1 * 1 0 D 0 * 0 1 Y 2 C C A D WS 2008/2009 Technische Grundlagen der Informatik 42
PLA Struktur Y1 = ( A C D) ( A B D) ( A B C) Y2 = ( A B C ) ( A B D ) ( A B C ) ( A C D ) WS 2008/2009 Technische Grundlagen der Informatik 43
Erweiterung Einfache PAL Elemente haben mindestens 8 Ein- und Ausgänge Moderne PAL Bausteine verfügen über komplexe, programmierbare Makrozellen die Ausgänge verfügen über Register die Ausgänge können zurück gekoppelt werden WS 2008/2009 Technische Grundlagen der Informatik 44
CPLD (Complex Programmable Logic Device) komplexe PLDs mit einer Block-Struktur jeder Block entspricht einem einfachen PAL die Blöcke werden über eine programmier- bare Schaltmatrix t miteinander i verbunden ein einzelner Block enthält typischerweise ca. 50 Eingänge und 10-20 Ausgänge jeder Ausgang kann aus 10-15 15 Produkt- termen gebildet werden WS 2008/2009 Technische Grundlagen der Informatik 45
FPGA (Field Programmable Gate Array) frei programmierbarer Logikschaltkreis aus einzelnen Logikblöcken (CLBs Configurable Logic Blocks) aufgebaut in den einzelnen Blöcken werden einfache Operationen und auch Flip-Flop-Logik Flop zur Verfügung gestellt teilweise werden FPGAs ausschließlich über Look-Up Tabellen realisiert hohe Komplexität Selbstkonfigurierende Systeme werden möglich WS 2008/2009 Technische Grundlagen der Informatik 46
CPLD vs. FPGA CPLD Wenige Logikblöcke mit großer Anzahl an Makrozellen Kurze Wege FPGA Viele Logikblöcke mit kombinatorischer Logik Lange Wege Platzierung und Routing fest vorgegeben Platzierung und Routing variabel Schaltzeiten einfach vorhersagbar Schaltzeiten sind von der Größe des Designs sowie Platzierung und Routing abhängig Hohe Taktfrequenzen unabhängig von der konkreten Schaltung Taktfrequenz ist von der Größe der Schaltung abhängig Kleine und mittelgroße Für sehr komplexe Schaltungen Schaltungen geeignet g WS 2008/2009 Technische Grundlagen der Informatik 47
Programmierung (CPLD, FPGA) Beispiel: isplever WS 2008/2009 Technische Grundlagen der Informatik 48
Programmierung g ISP (In System Programming) HDL (Hardware Description Language) VHDL (VHSIC HDL) VHSIC (Very High Speed Integrated Circuit) Abel (Advanced Boolean Expression/Equation Language) Abel wurde in den 80er Jahren entwickelt und ist für kleinere Schaltungen hinreichend. VHDL und Verilog sind die weltweit am meisten genutzten Hardware-Beschreibungssprachen und sind beide von IEEE standardisiert. WS 2008/2009 Technische Grundlagen der Informatik 49