e ch nis me ste Sy Inf orm ati k Tec h Leitung: Prof. Dr.-Ing. D.P.F. Möller Rechnerstrukturen LV18.003, Modul IP7, Teil 1 Prof. Dr.-Ing. D.P.F.Möller Wintersemester 2005/06 Vorlesungsinhalte Rechnerstrukturen Teil 1: Grundlagen 1. Grundbegriffe der Informationsverarbeitung (Information, Repräsentation von Information, Zahlensysteme, Codierung) 2. Rechnerarithmetik (Operationen mit Zahlen, Ganzzahl- und GleitkommaArithmetik) 3. Lokale und globale Konzepte der Digitaltechnik (Boolesche Algebra, Automatentheorie, Schaltnetze, synchrone und asynchrone Schaltwerke, kooperierende Schaltwerke (Operationswerk, Steuerwerk), Datenpfade, Datentore, Bus-Systeme, Zähler, Register, Registerfiles, Speicher) 2 Rechnerstrukturen Teil 1 Prof. Dr. Möller Vorlesungsinhalte Rechnerstrukturen Teil 2: Rechnerarchitektur 1. von Neumann Rechner (Architektur, Befehlssatz, Maschinen- und AssemblerCode, Betriebssystemebene) 2. Speicherhierarchie (Speichertypen, virtueller Speicher, Cache-Organisation) 3. Pipelining (CISC, RISC, superskalare Architekturen) 4. Parallele Architekturen 5. Kommunikation, Schnittstellen und Peripheriegeräte 3 Rechnerstrukturen Teil 1 Prof. Dr. Möller Vorlesungsinhalte Rechnerstrukturen Teil 3: Praktikum Rechnerstrukturen • Grundelemente: (Register, Bussystem, Speicheradressierung, Operationswerk (ALU), Mikroprogrammiertes Steuerwerk) • Speicherhierarchie (Speichertypen, virtueller Speicher, Cache-Organisation) • Pipelining (CISC, RISC, superskalare Architekturen) • Parallele Architekturen • Kommunikation, Schnittstellen und Peripheriegeräte 4 Rechnerstrukturen Teil 1 Prof. Dr. Möller Lernziele Grundlagenwissen / Faktenwissen Grundkenntnisse über die Bestandteile digitaler Rechner. Es werden Eigenschaften, Entwurfs- und Optimierungstechniken der Componentware behandelt und die erforderlichen technischen Grundlagen der Informatik vermittelt. Zusammenfassend wird gezeigt, wie die Componentware eines Rechners mittels mikroelektronischer Komponenten entwickelt und hergestellt werden kann. Methodenwissen Aufbau und Funktionsweise technischer Systeme; Analyse und Synthese technischer Systeme; Lösungsansätze am Beispiel der Architektur von Prozessoren, ausgehend von Transistoren über die Zusammenschaltung von Transistoren zu Gattern, hin zu Schaltnetzen und Schaltwerken, der Realisierung von Prozessoren bis hin zur Anwendung in technischen Systemen. Eigenschaften, Entwurfs- und Optimierungstechniken kombinatorischer Komponenten, Register und Speicher, Steuerwerk und Rechnerkommunikation. 5 Rechnerstrukturen Teil 1 Prof. Dr. Möller Lernziele Transferkompetenz Anwenden der Methoden der technisch orientierten Informatik in der Analyse und Synthese technischer Systeme, wie z. B. Mobilkommunikation, Automobilund Flugzeugbau, Roboter, Fertigungslinien etc. Gemeinsam ist diesen, dass durch die Anforderungen des zu realisierenden technischen Systems auf abstrakter Ebene von Entwurfssichten Randbedingungen für dessen Implementierung zu gewährleisten sind, dass Reaktionen in vorgegebenen zeitlichen Abfolgen umgesetzt werden müssen, dass ein Regel enges Zusammenspiel von Software- und Hardwarekomponenten gewährleistet werden muss Normativ bewertende Kompetenz Aufbau eines präskriptiven und evaluativen Urteilsvermögens im Kontext Rechnerstrukturen, um Rechnerarchitekturen zu analysieren, die Komponenten von Rechnern zu verstehen und diese sowohl zu entwerfen als auch zu optimieren sowie qualifiziert über Hardware zu diskutieren. 6 Rechnerstrukturen Teil 1 Prof. Dr. Möller Lernziele Schlüsselqualifikationen • Kooperations- und Teamfähigkeit in den Präsenzübungen • Steigerung der Problemlösungskompetenz • Abstraktionsvermögen und Modellierungsfähigkeiten • Kreatives Problemlösen bei der exemplarischen Anwendung von Entwurfsmethoden • Kennen lernen des Aufbaus und der Funktionsweise von technischen Systemen sowie Befähigung -zur Analyse und Synthese von technischen Systemen im Zusammenspiel von Software- und Hardwarekomponenten 7 Rechnerstrukturen Teil 1 Prof. Dr. Möller Literatur 1. Grundbegriffe der Informationsverarbeitung (Information, Repräsentation von Information Zahlensysteme, Codierung) J. Blieberger, G.-H. Schmidt, U. Schmid, S. Stöckler Informatik Springer Verlag, Heidelberg O. Mildenberger Informationstechnik Kompakt Vieweg Verlag, Wiesbaden D.P.F.Möller Rechnerstrukturen: Grundlagen der Technischen Informatik Springer Verlag, Heidelberg K.-U. Witt Elemente des Rechneraufbaus Hanser Verlag, München 8 Rechnerstrukturen Teil 1 Prof. Dr. Möller Literatur 2. Rechnerarithmetik (Operationen mit Zahlen, Ganzzahl- und Gleitkomma-Arithmetik) B. Becker, R. Drechsler, P. Molitor Technische Informatik Pearson Studium, München J. Blieberger, G.-H. Schmidt, U. Schmid, S. Stöckler Informatik Springer Verlag Heidelberg J. L. Hennessy, D. A. Patterson Rechnerarchitektur Vieweg Verlag, Wiesbaden J. Keller, W. J. Paul Hardware Design G. Teubner, Stuttgart D.P.F.Möller Rechnerstrukturen: Grundlagen der Technischen Informatik Springer Verlag, Heidelberg 9 Rechnerstrukturen Teil 1 Prof. Dr. Möller Literatur 3. Lokale und globale Konzepte der Digitaltechnik (Boolesche Algebra, Automatentheorie, Schaltnetze, synchrone und asynchrone Schaltwerke, kooperierende Schaltwerke (Operationswerk, Steuerwerk), Datenpfade, Datentore, Bus-Systeme, Zähler, Register, Registerfiles, Zähler, Speicher) B. Becker, R. Drechsler, P. Molitor Technische Informatik Pearson Studium, München L. Borucki Digitaltechnik B. G. Teubner Verlag, Stuttgart V.P. Heuring, H.F. Jordan Computer Systems Design and Architectures Pearson Prentice Hall D.P.F.Möller Rechnerstrukturen: Grundlagen der Technischen Informatik Springer Verlag, Heidelberg A. S. Tannenbaum, J. Goodman Computerarchitektur Pearson Studium, München 10 Rechnerstrukturen Teil 1 Prof. Dr. Möller Informationen im WWW Powerpointfolien, Übungen und Lösungen zur Vorlesung Rechnerstrukturen Teil 1 http://www.informatik.uni-hamburg.de/TIS Lehre WS05_06 Rechnerstrukturen Teil 1 ~Powerpointfolien ~Übungen ~Lösungen 11 Rechnerstrukturen Teil 1 Prof. Dr. Möller Informationen im WWW Allgemeine Informationen zur Vorlesung Rechnerstrukturen Teil 1 http://www.informatik.uni-hamburg.de/TIS Lehre WS05_06 Rechnerstrukturen Teil 1 ~ weiterte Literaturangaben ~ Termine und Änderungen ~ Projekte, Beispiele ~ etc. 12 Rechnerstrukturen Teil 1 Prof. Dr. Möller Termine Übungsgruppen Gruppe 1.1: Mittwoch 8:00-10:00, F 535, Beginn 26.10.05 regelmäßig alle 14 Tage, d.h. 26.10.05, 9.11.05, 23.11.05, 7.12.05, 21.12.05; Herr Felix Klöckner Gruppe 1.2: Mittwoch 10:00-12:00, C 101, Beginn 26.10.05 regelmäßig alle 14 Tage, d.h. 26.10.05, 9.11.05, 23.11.05, 7.12.05, 21.12.05; Herr Felix Klöckner Gruppe 1.3: Mittwoch 12:00-14:00, F 535, Beginn 26.10.05 regelmäßig alle 14 Tage, d.h. 26.10.05, 9.11.05, 23.11.05, 7.12.05, 21.12.05; Frau Birgit Koch Gruppe 1.4: Mittwoch 14:00-16:00, F 334, Beginn 26.10.05 regelmäßig alle 14 Tage, d.h. 26.10.05, 9.11.05, 23.11.05, 7.12.05, 21.12.05; Herr Simon Heß 13 Rechnerstrukturen Teil 1 Prof. Dr. Möller Termine Übungsgruppen Gruppe 2.1: Mittwoch 8:00-10:00, F 535, Beginn 2.11.05 regelmäßig alle 14 Tage, d.h. 2.11.05, 16.11.05, 30.11.05, 14.12.05, 11.1.06; Herr Felix Klöckner Gruppe 2.2: Mittwoch 10:00-12:00, C 101, Beginn 2.11.05 regelmäßig alle 14 Tage, d.h. 2.11.05, 16.11.05, 30.11.05, 14.12.05, 11.1.06; Herr Felix Klöckner Gruppe 2.3: Mittwoch 12:00-14:00, F 535, Beginn 2.11.05 regelmäßig alle 14 Tage, d.h. 2.11.05, 16.11.05, 30.11.05, 14.12.05, 11.1.06; Herr Dennis Bliefernicht Gruppe 2.4: Mittwoch 14:00-16:00, F 334, Beginn 2.11.05 regelmäßig alle 14 Tage, d.h. 2.11.05, 16.11.05, 30.11.05, 14.12.05, 11.1.06; Herr Simon Heß Gruppe 2.5: Mittwoch 16:00-18:00, F 535, Beginn 2.11.05 regelmäßig alle 14 Tage, d.h. 2.11.05, 16.11.05, 30.11.05, 14.12.05, 11.1.06; Herr Simon Heß 14 Rechnerstrukturen Teil 1 Prof. Dr. Möller Rechnerstrukturen 15 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information 1.1.1 Repräsentation 1.1.2 Kommunikation 1.1.3 Systembegriff 1.2 Zahlensysteme 1.3 Codierung 16 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information • • • • Begriff der Information und dessen Entstehung Informationsbegriff aus nachrichtentechnischer Sicht Informationsbegriff nach Shannon Informationsbegriff der Informatik 17 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information • Begriff der Information und dessen Entstehung • Informationsbegriff aus nachrichtentechnischer Sicht • Informationsbegriff nach Shannon • Informationsbegriff der Informatik 18 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Begriff der Information und dessen Entstehung Information: abstrakter Begriff; materiell, immateriell; Information die von/in Rechner verarbeitet werden können vielseitiger Gestalt sein Information beseitigte Unsicherheit dem Wissbaren gegenübergestellt. Information ist etwas, was man wissen kann, z.B. das Wissen über einen Sachverhalt Unterschied zwischen Wissen (Knowledge) und Gewissheit (Expectation) 19 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Wissen (Knowledge) Gewißheit (Probability) Fakten (Facts) Möglichkeiten (Opportunities) Erfahrung (Experience) Vorhersagen (Prediction) 20 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Begriff der Information und dessen Entstehung Information: etwas was man wissen kann ⇒Unterschied zwischen Wissen und Gewissheit : • Wissen: an der Vergangenheit orientiert • Gewissheit: an der Zukunft • Wissen: Erfahrung • Gewissheit: Überzeugung, Vorhersagen machen zu können. Historischer Exkurs: Wissen per se hat eine starke Veränderung erfahren: Frühes Mittelalter: Wissen wurde persönlich durch Erfahrung oder Schulung erworben. Wissen war angeeignetes, persönliches Wissen, mit Fähigkeiten verbunden; Wissen war erlebtes und erfahrenes Wissen, es hatte im einzelnen eine moralische Qualität. Buchdruck: Wissen erhält eine andere Qualität, Beginn der Inflationierung des Wissens. Lexikon in der Epoche der Aufklärung: jeder, der das Alphabet beherrscht, kann sich Grundinformationen beschaffen. Heutige Bibliotheken: Wer die Technik der Bibliotheksbenutzung kennt, inklusive Digital Libraries, kann sich ausführliche Informationen zu nahezu jedem Gebiet beschaffen. 21 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information • Mittels moderner Rechner und Datennetze wird heute detaillierteste Information weltweit und unabhängig von Ort (Raum) und Zeit verfügbar. • Wissen löst sich vom Menschen ab, wird zum Gegenstand der Bibliotheken in gedruckter und/oder elektronischer Form. • Information und Wissen verlieren den ursprünglichen persönlichen Charakter, in Datenbanken gespeichertes Wissen ist anonymes Wissen, ist jedermanns und niemandes Wissen geworden. Zugleich ist es gegenständlich geworden denn gespeichertes Wissen ist Ware und Diebesgut zugleich. 22 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Wissen / Information, kann • gespeichert • transportiert • verarbeitet • ausgewertet • manipuliert • visualisiert • etc. werden Gegenstand des Wissens sind • Verfahrensweisen • Zugangswege • Herstellungstechniken • atomisierte Einzeldaten die digital gespeichert werden können • etc. 23 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Auf Basis von Wissen/Information können - losgelöst von der realen Welt Planspiele betriebenum Informationen über das pro et contra einer Problemstellung zu erhalten ⇒ gewonnene Information unverbindlich, im Grunde genommen nichts anderes als Erwartungswert. Wissen / Information immer mehr durch Apparate vermittelt, d.h. Wahrnehmung des Menschen zunehmend an Apparate gebunden ⇒ Prozesse zum Wissenserwerb immer stärker entpersönlicht. 24 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Durch Wahrnehmung wird Information über Außenwelt erhalten. Wahrnehmungsapparat erreichen über Sensoren (visuell, auditiv, taktil, haptisch, etc.) Energiezustände bestimmter Form die als " Ausgangsgröße" bewusst erfahrbare Information über die Außenwelt erzeugen Auf Wahrnehmung beruhende Information wird als wahrgenommene Information bezeichnet. Durch Identifikation (Benennungen) schließt an Wahrnehmung die Interpretation an, welche zur wahrgenommenen Information die mitgeteilte Information hinzufügt. Wahrgenommene und mitgeteilte Information bilden zusammen die empfangene Information. 25 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Empfangene Information kann durch Verarbeitung zusätzliche Information liefern, die als • abgeleitete • hergeleitete Information bezeichnet wird. 26 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Empfangene Information: besteht nur aus wahrgenommener Information Beispiel: Betrachten einer Landschaft bzw. von Schrifttafeln oder anderer interpretierbarer Muster. Mitgeteilte Information: beinhaltet wahrgenommene Information Mitzuteilende Information: durch materiell-energetische-Muster symbolisiert; als Datum oder als Nachricht bezeichnet, je nachdem, welcher Aspekt betont werden soll. Ist nur Verfügbarkeit des Musters von Interesse, was die Interpretierbarkeit zu jedem gewünschten Zeitpunkt ermöglicht, dann spricht man von Datum (Daten). Betrachtet man Übertragungsprozess bei dem ein Sender Muster erzeugt, welches vom Empfänger wahrgenommen und interpretiert werden soll, wird von Nachricht gesprochen 27 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Information wird als digital vorausgesetzt und auf die computerlesbaren Zahlen 0 und 1 bezogen. Kleinste Einheit an Information, die innerhalb eines Digitalrechners • dargestellt • gespeichert • abgefragt werden kann ist das Bit. Ein Bit ist eine Elementarinformation in Form einer einzelnen Ziffer, die entweder den Wert 0 oder 1 annehmen kann. In der Regel müssen Zeichen aus Alphabeten mit mehr als zwei Elementen dargestellt werden, weshalb Darstellung in Form von Elementarinformation, d.h. durch ein einzelnes Bit, in den meisten Fällen nicht möglich ist, da Bits nicht mächtig genug sind, um genügend Zeichen zu unterscheiden. 28 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information ⇒ Man benötigt größere Folgen von Elementarzeicheninformationen, d.h. Folgen von Bits, z.B. Bytes. ⇒ Eine Folge von 8 Bit wird als Byte bezeichnet. ⇒ Durch ein Byte können 28 = 256 verschiedene Werte oder Zeichen dargestellt werden, denn die Bits können, unabhängig voneinander, jeden der beiden möglichen Werte annehmen. ⇒ Bytes sind mächtig genug um alle Groß- und Kleinbuchstaben des deutschen Alphabets zu unterscheiden. ⇒ Worte in deutscher Sprache, d.h. Zeichenketten, können durch Folgen von Bytes repräsentiert werden, wenn festgelegt wurde, welches Byte welchen Buchstaben darstellt ⇒ Codierung, vgl. Abschnitt 1.3 29 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information • Begriff der Information und dessen Entstehung • Informationsbegriff aus nachrichtentechnischer Sicht • Informationsbegriff nach Shannon • Informationsbegriff der Informatik 30 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Informationsbegriff aus nachrichtentechnischer Sicht Information wird von einer Informationsquelle über ein Übertragungsmedium zu einer Senke übermittelt. Quelle und Senke sind synonyme Begriffe zu Sender und Empfänger. Statt Übertragungsmedium wird der Ausdruck Nachrichtenkanal gebraucht. Darauf aufbauend kann das nachfolgende Modell eingeführt werden. Quelle 31 Medium Rechnerstrukturen Teil 1 Senke Prof. Dr. Möller 1.1 Information Beispiel 1.3 Sender und Empfänger sind Menschen: Sender spricht mit Empfänger, wobei als Übertragungsmedium Schallwellen auftreten. Körpersprache spielt zusätzliche Rolle bei Informationsübertragung: Lichtwellen müssen als Übertragungsmedium zwischen Quelle und Senke einbezogen werden, Sender und Empfänger entsprechende Sensoren aufweisen. Wenn während des Gespräches beide Teilnehmer abwechselnd sprechen und zuhören wechseln sie die Rollen von Sender und Empfänger entsprechend. In diesem Zusammenhang weist ein Taubstummer bzw. ein Blinder einen gestörten Nachrichtenkanal auf. 32 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.4 Genetik: DNS (Desoxyribonukleinsäure) übermittelt als Sender über eine mRNS (messenger Ribonukleinsäure) → wirkt als Übertragungsmedium, Information über herzustellende Enzyme an Ribosomen. Entsprechend arbeitet Immunsystem bei der Abwehr von Fremdkörpern im Organismus. AIDS bzw. Karzinom sind in diesem Sinne gestörte Nachrichtenkanäle. 33 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.5 Rundfunksender sendet Information mittels elektromagnetischer Wellen zu Empfängern (Rundfunkempfänger). 34 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Information: durch Nachricht übermittelte Bedeutung, gleichbedeutend mit Inhalt des durch Übertragungsmedium übertragenen Signals. Unterscheidung zwischen analogen und digitalen bzw. diskreten Signalen bzw. Analogsignalverarbeitung und Digitalsignalverarbeitung 35 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Analog: ähnlich, vergleichbar, entsprechend. Prinzip der Darstellung physikalischer Größen durch andere z.B. Wert einer elektrischen Spannung durch Weg eines Zeigers auf Messinstrument dargestellt. Bei analogem Signal (Datum) können dessen kennzeichnende Größen wie z.B. Spannung, Frequenz, Amplitude etc. in bestimmten – im Regelfall technisch bedingten Grenzen wie z.B. dem Auflösungsvermögen – beliebige Zwischenwerte einnehmen. Analoge Informationssysteme verarbeiten kontinuierliche, zeitabhängige physikalische Größen f(t) und erzeugen ähnliche (analoge) Größen g(t). Größen sind Spannungen, Ströme, Wegstrecken, Winkel, etc. zugeordnet. 36 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Digital: • egalitäres Phänomen der Informationsgesellschaft; • Darstellung von Informationen durch definierte Folge vereinbarter Zeichen oder Zustände. Digital hat im deutschen zwei Bedeutungen: • digitus = Finger, "mit Hilfe der Finger" zählen • digit = Ziffer oder Stelle, Bedeutung "in Ziffernform" Digitaltechnik: Technik, die sich mit ziffernmäßiger Darstellung beliebiger Größen, d.h. der Abstraktion bzw. der Verdichtung auf endlich viele verschiedene Werte, auf der Grundlage elektronischer Bauelemente bzw. Komponenten, befasst. 37 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Digitale Informationstechnik hat Paradigmenwechsel eingeleitet, von der Wissensgesellschaft, zur Informationsgesellschaft. Voraussetzung für deren Weiterentwicklung ist die Schaffung adäquater Kommunikationsnetze, die Übertragungsgeschwindigkeiten im Gigabyte Bereich erreichen. Menschen und Maschinen werden vernetzt womit neue Kommunikationsmöglichkeiten entstehen; gleichzeitig werden Menschen durch Computernetze weltweit leichter und schneller erreichbar. 38 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Digitale bzw. diskrete Signale: können bestimmte Anzahl von Zuständen / Zeichen annehmen. • Ziffer ist Bezeichnung (Name, Symbol) einer Zahl, • Zahl ist mengentheoretischer Begriff - jede Zahl ist eine Abstraktionsklasse (Abstraktion) gleichmächtiger Mengen -, damit ist Ziffer lediglich ihre Benennung. Unter semiotischen Gesichtspunkten ist Ziffer sprachliches Zeichen welches einer Menge von Zeichen angehört. Kardinalzahl dieser Menge unterschiedlicher Zeichen ist Basis der mit diesen Ziffern durchzuführenden Zahlendarstellung. 39 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Digitale bzw. diskrete Signale: (Semiotik: Lehre der sprachlichen Zeichen und Zeichenreihen ⇒ Syntax: Beziehungen zwischen Zeichen und anderen Zeichen; ⇒ Semantik: Beziehungen zwischen Zeichen und ihre Bedeutung; ⇒ Pragmatik: Beziehungen zwischen Zeichen und Schöpfern; ⇒ Sigmatik: Beziehungen zwischen Zeichen und dem was sie bezeichnen). Enthält Menge nur zwei unterschiedliche Ziffern (0,1) liegt Dualsystem, Duales Zahlensystem vor (Dual: Zweizahl), bei 10 unterschiedlichen Ziffern (0,1,2,3,4,5,6,7,8,9) Dezimalsystem 40 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Informationsübertragung basiert auf Konstrukten; im Zusammenhang ihres Aufbaus mit Sprache vergleichbar; d.h. verfügt über bestimmte Regeln, nach denen Information aufgebaut sein muss. Regeln werden mit Grammatik bzw. gleichbedeutend mit Syntax bezeichnet. Für das Verständnis der übermittelten Information ist es notwendig die Syntax zu kennen, womit der rekursive Charakter von Information evident wird: Man benötigt Information über die Regeln, nach denen Nachricht aufgebaut ist, bevor man die gewünschte Information aus dem Signal extrahieren kann. 41 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Ein in einer Sprache abgefasste Information (Nachricht) ist aus Zeichen zusammengesetzt. Menge aller unterschiedlichen Zeichen einer Sprache wird als Alphabet bezeichnet. Alphabet der deutschen Sprache: Groß- und Kleinbuchstaben A, B, ... , Z, a, b, ... , z, einschließlich Umlaute und ß, Interpunktionszeichen . , ; ! ? – , Zwischenraum etc. Alphabet aus nur zwei Elementen/Zeichen: Zeichen (bit) können Wert 0 oder 1 annehmen; Folge von 8 Bits wird Byte genannt Beispiel: Durch ein Byte können 28 = 256 verschiedne Werte oder Zeichen dargestellt werden 42 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Versuch eine Sprache mit einer anderen Sprache zu erklären, führt auf übergeordnete, beschreibende Sprache ⇒ Metasprache. Einführung des Begriffes Metasprache wurde unter Verwendung der deutschen Sprache als Meta-Metasprache vorgenommen. Neben natürlichen Sprachen gibt es Vielzahl künstlich geschaffener Sprachen, z.B. die mathematische Zeichensprache: (4+6) = 10 syntaktisch und semantisch (inhaltlich) richtig 4+6) < 20 syntaktisch falsch, aber semantisch richtig (4+6) < 5 syntaktisch richtig, aber semantisch falsch. Weitere Beispiele für künstliche Sprachen sind z.B. • Notenschrift • chemische Formelsprache • genetischer Code • Programmiersprachen • etc. 43 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information • Begriff der Information und dessen Entstehung • Informationsbegriff aus nachrichtentechnischer Sicht • Informationsbegriff nach Shannon • Informationsbegriff der Informatik 44 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Informationsbegriff nach Shannon Informationsgehalt, Maß wie viel Information eine Nachricht enthält, die von einem Sender an einen Empfänger übermittelt wird. 45 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Information besteht aus Zeichenfolge in der Zeichen mit bestimmten Wahrscheinlichkeiten auftreten. Informationsgehalt hängt von Wahrscheinlichkeit ab, mit der Zeichen gesendet wird, nicht von Art der Codierung. Häufig gesendete Zeichen haben niedrigen Informationsgehalt, selten gesendete Zeichen einen hohen. Eigenschaft wird befriedigt, indem für Informationsgehalt monoton wachsende Funktion des Reziprokwertes der Wahrscheinlichkeit p des Zeichens gewählt wird, d.h. Funktion 1 f = p p: Wahrscheinlichkeit mit der das Zeichen auftritt, f: monoton wachsende Funktion. 46 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Wahrscheinlichkeit: Erfahrung zeigt, dass bei vielen, unter gleichbleibenden Bedingungen wiederholten Versuchen, die relative Häufigkeit eines Ereignisses E fast sicher in der Nähe einer Zahl p(E) bleibt (0 ≤ p(E) ≤ 1), wobei Abweichungen von p(E) mit wachsender Versuchszahl immer geringer werden. p(E) heißt die Wahrscheinlichkeit des Ereignisses E Beispiel: Würfeln mit gewöhnlichem Würfel; Wahrscheinlichkeit für eine bestimmte Augenzahl, z.B. die 6, in allen Fällen die gleiche, nämlich 1/6. 47 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.6 Quelle liefert Zeichen aus dem Alphabet A (Quellalphabet) A = { a j ; j = 1, 2 ,..., n } j= ;{jaA wobei für die einzelnen Buchstaben aj des Alphabetes Wahrscheinlichkeit pj angegeben werden kann; gibt Auskunft darüber mit welcher Häufigkeit ein Buchstabe aj in einer Zeichenfolge auftritt, oder zu erwarten ist. Zur Abschätzung der Wahrscheinlichkeiten p1, p2, ... , pn können Erfahrungswerte, oder gemessene Werte, herangezogen werden in der Annahme, dass nähere Zukunft nicht wesentlich von der Vergangenheit unterschieden ist. Bei Unkenntnis über das statistische Verhalten wird zunächst eine Gleichverteilung (Normalverteilung) angenommen. 48 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Gleichverteilung (Normalverteilung) Random Variable x mit Mittelwert µ and Varianz σ² genügt Gleichverteilung wenn Wahrscheinlichkeitsdichtefunktion (PDF) durch gegeben ist 49 1 f ( x) = e σ 2π [( x − µ ) / σ 2 ] − 2 ;−∞ < x < ∞ Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.7 Quelle kann formal beschreiben werden durch a1 , a2 ,..., an ( A, p ) = p1 , p2 ,..., pn mit dem Alphabet A = {a 1 , a 2 ,.., a n } und den Wahrscheinlichkeiten p = {p 1 , p 2 ,.., p n } für das Auftreten der Zeichen. Auftreten eines Zeichens ist das sichere Ereignis, weshalb die Summe aller Wahrscheinlichkeiten pj gleich 1 sein muss, n ∑p =1 j=1 50 j Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Von Bedeutung ist wie groß die Information ist, die man erhält, wenn im Quellenalphabet aj die Buchstaben mit der Wahrscheinlichkeit pj auftreten. Beispiel Es sei p1 = 1 und alle anderen pj = 0 für j = 2, … , n, ⇒ keine Information im eigentlichen Sinne da bekannt ist was Symbol bedeutet. Treten demgegenüber Symbole mit unterschiedlichen Wahrscheinlichkeiten auf erhält man umso mehr Information, je geringer die Auftretenswahrscheinlichkeit für ein Symbol ist. ⇒ Information und die Wahrscheinlichkeit des Auftretens für ein Symbol stehen in reziprokem Verhältnis 51 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Informationstheorie: Shannon beschäftigte die Frage, wie viel Information man gewinnt, wenn man ein bestimmtes Experiment E durchführt. Annahme: a1 … an sind die möglichen Ereignisse die als Ausgang/Ergebnis des Experiments E auftreten können Shannon führte Maß für Informationsmenge I(ai) ein, welches beim Auftreten eines Ereignisses mit Wahrscheinlichkeit pi gemessen werden kann, aus Überlegungen für voneinander unabhängige Ereignisse, für welche Einführung eines logarithmischen Maßes zweckmäßig ist ⇒ Informationsgehalt I(aj) 1 = − log p ( a i ) I ( a i ) = log p (ai ) 52 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Für Informationsgehalt I(aj) eines Ereignisses ai gilt: • Ist n =1, d.h. Ausgang des Experiments E ist immer der gleiche, gewinnt man keine Information durch das Durchführen des Experimentes. Schon vor der Durchführung klar, dass a1 das eintretende Ereignis sein wird, weshalb gilt: I(ai) = 0 • Ist Wahrscheinlichkeit p(ai), dass das Ereignis a1 als Ausgang des Experiments E eintritt, gering, ist Informationsgehalt I(ai) hoch ⇒ Je kleiner Wahrscheinlichkeit, dass das Ereignis ai als Ausgang des Experiments E eintritt desto höher der Informationsgehalt I(ai) des Ereignisses ai • Informationsgewinn, den man durch zwei voneinander unabhängigen Ereignissen erhält, ist die Summe der Informationsgewinne der beiden Ereignisse. Demnach gilt für zwei unabhängige Ereignisse ai und aj: I(ai ·aj) = I(ai) + I(aj). (N.B. Logarithmus eines Produktes ist gleich der Summe der Logarithmen der Faktoren) 53 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Wahrscheinlichkeit pj für Empfang des Zeichens aj mit Informationsgehalt I(aj) für Signal aj, ergibt für Erwartungswert Informationsgehalt eines Zeichens: 1 p j * I (a j ) = p j * log = − p j * log p j p j Beispiel: Sind ai und aj: zwei voneinander unabhängige Ereignisse gilt: und damit p(ai ·aj) = p(ai) + p(aj) 1 = log 1 + log 1 = I (ai ) + I (a j ) I (ai , a j ) = log p(a ) p( a * a ) p( a ) i j i j Entropi = ∑ H = − ∑ j1 = 54 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Erwartungswert des Informationsgehaltes ergibt über n Symbole des Alphabetes im Mittel die Summe über alle Werte. Summe wird Entropie H(E) des Experiments E genannt; entspricht mittleren Informationsgehalt der Ereignisse aj, die Ausgang des Experiments sein können, mit Auftretenswahrscheinlichkeit pj. Somit gilt: n 1 H ( E ) = ∑ p(a j ) * log( ) = ∑ p(a j ) * I (a j ) p(a j ) j =1 j =1 n was äquivalent zu n H ( E ) = −∑ p (a j ) * log p (a j ) Entropi = ∑ j =1 1 jH − = ∑ ist. 55 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Entropie: Maß für Ungewissheit hinsichtlich des Verhaltens der Quelle →Maß für die Ungewissheit vor Eintreffen der Information →Maß für die Bedeutung der Information. ⇒ Je größer Entropie, umso größer Informationswert eines erwarteten Zeichens. 56 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Im Hinblick auf kleinste Informationseinheit (Ja-Nein bzw. 0-1 Entscheidung) wird Zweier-Logarithmus zugrunde gelegt und damit als (Pseudo-) Maßeinheit das Bit (binary digit), womit das Shannon Theorem in der folgenden Form angegeben werden kann: n H ( E ) = − ∑ p ( a j ) * ldp ( a j ) j =1 57 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Treten alle Zeichen mit gleicher Wahrscheinlichkeit auf, gilt pj= 1/n, weshalb die Entropie den Maximalwert annimmt: H max = H 0 = ldn Beispiel 1.8 Gegeben seien A = (0,...,7) und pj = 1/8; j = 1,...,8. Damit kann die Quelle dargestellt werden wie folgt: 1 2 ... 7 0 ( A, p) = 0,125 0,125 0,125 ... 0,125 Da alle Zeichen der Quelle die gleiche Wahrscheinlichkeit haben folgt H0 = ld 8 = 3 Bit. 58 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Informationsgehalt einer aus mehreren voneinander unabhängigen Zeichen bestehenden Nachricht (Information) sei gleich der Summe der Informationsgehalte der einzelnen Zeichen. Aus der Unabhängigkeit der Zeichen folgt, dass die Wahrscheinlichkeit des Auftretens dieser Information (Nachricht) gleich dem Produkt der Einzelwahrscheinlichkeiten der die Information (Nachricht) bildenden Zeichen ist, d.h. tritt Zeichen a mit der Wahrscheinlichkeit p = 0.3 und Zeichen h mit der Wahrscheinlichkeit p = 0.1 auf, ist Wahrscheinlichkeit des Auftretens von Aha gleich 0.3 · 0.1 · 0.3 = 0.009. Informationsgehalt muss somit eine Funktion sein, die f ( x) + f ( y) = f ( xy) erfüllt, was durch die eine logarithmische Funktion gegeben ist. 59 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Sendet eine Quelle n unterschiedliche Zeichen mit gleicher Wahrscheinlichkeit, ist der Informationsgehalt eines dieser Zeichen ld n. Ist n eine Potenz von 2, dann ist der Informationsgehalt ganzzahlig. Einheit des Informationsgehaltes wird Bit genannt und hier Bit/Element. Beispiel 1.9 Informationsgehalt n-stelliger Dezimalzahl beträgt ld 10 = 3.32 Bit/Element. n-stellige Dezimalzahl hat den Informationsgehalt H =n * ld10 = n * 3.32 Bit. 60 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.10 Sei A Alphabet, bestehend aus Zeichen x, y und z, deren Auftrittswahrscheinlichkeiten gegeben seien durch p --------------x 0,5 y 0,25 z 0,25 Informationsgehalt der Zeichen kann gemäß I = ld (1/p) berechnet werden: p h -------------------x 0,5 1 y 0,25 2 z 0,25 2 Der mittlere Informationsgehalt ist damit H = 0.5 * 1 + 0.25 * 2 + 0.25 * 2 = 1.5 Bit. 61 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Mittlerer Informationsgehalt Maß für Ungewißheit hinsichtlich des Verhaltens der Quelle. Gleichverteilung (p = 1/n) mit p: Wahrscheinlichkeit, n: Umfang des Zeichenvorrates X, ⇒ mittlerer Informationsgehalt ⇒ Entscheidungsgehalt: H max = H 0 = ldn . = H max Abweichung von Gleichverteilung verringert Informationsgehalt d.h. Quelle nützt Möglichkeiten des Zeichenvorrats nicht voll aus. Nicht ausgenutzter Aufwand heißt Redundanz oder Weitschweifigkeit. Maß für Redundanz R ist Differenz zwischen maximal möglichem Informationsgehalt Ho und tatsächlichen Informationsgehalt H : n n R = H − (− ∑ p *ldp ) = H + ∑ p *ldp = j j 0 0 j j j =1 j =1 n = ldn + ∑ p *ldp j j j =1 62 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Gelegentlich wird auch der Begriff relative Redundanz benutzt: 1 n R R r= = = 1+ p j ldp j ∑ H 0 ldn ldn j =1 63 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Redundanz in Bit angegeben. Mittlere Wortlänge eines Codes immer größer oder gleich mittleren Informationsgehalt der Zeichen des Codes. Differenz zwischen mittlerer Wortlänge und mittleren Informationsgehalt als Redundanz bezeichnet: R=L-H L: mittlere Wortlänge eines Codes. Hierunter versteht man die mit den Auftrittswahrscheinlichkeiten gewichtete Summe der Längen der den einzelnen Zeichen entsprechenden Codewörter, d.h. L = ∑ pi * l i = ∑ L = ∑ L wobei li für die Länge des dem i-ten Zeichen entsprechenden Codeworts steht. Im Gegensatz zum Informationsgehalt, der durch die Auftrittswahrscheinlichkeiten der einzelnen Zeichen bestimmt ist, hängt mittlere Wortlänge von der gewählten Codierung ab. 64 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.11 Für das Alphabet: p h p·h l p·l x 0,7 0,515 0,36 1 0,7 y 0,2 2,322 0,464 2 0.4 z 0,1 3,322 0,332 2 0,2 ist der mittlere Informationsgehalt H = p· h ⇒ 1,156 Bit, die mittlere Wortlänge L =p· l ⇒ 1,3 Bit, die Redundanz R = L-H ⇒0,144 Bit. 65 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.12 Anzahl der Worte mit den häufigsten Buchstaben (a, b, d, e, i, m, n, o, p, r, s, t) sei 10.000. Wie viele Buchstaben müssen die Worte mindestens haben, wenn auch sinnlose Kombinationen zugelassen sind? Sei A der Zeichenvorrat, card (A) die Anzahl der Zeichen in A und n die Stellenzahl, sind maximal n = [card (A)]n Darstellungen möglich für: A = {a , b, d , e, i , m, n, o, p , r , s , t} card ( A) = 12 n = 10.000 10 .000 = 10 n ln 10.000 = n * ln 12 n= ln 10.000 = 3,71 ln 12 Die Worte müssen mindestens 4 Buchstaben haben. 66 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Beispiel 1.13 Entropie für einen Wurf mit einem unpräparierten Würfel (Formel und Zahlenwert) 6 6 1 1 H = ∑ pi ⋅ ld = ∑ ⋅ ld 6 = 2,585 pi i =1 6 i =1 Entropie H(E) des Experiments E entspricht mittleren Informationsgehalt der Ereignisse aj, die Ausgang des Experiments sein können Beispiel Würfel sei so präpariert, dass die Wahrscheinlichkeit der 6 p6 = ½ und pi = 1/10 für alle anderen Ziffern ist. Entropie (Formel und Zahlenwert) = ? = ∑ L = ∑ L 1 1 H = ⋅ ld 2 + 5 ⋅ ⋅ ld10 = 2,161 10 2 67 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information • Begriff der Information und dessen Entstehung • Informationsbegriff aus nachrichtentechnischer Sicht • Informationsbegriff nach Shannon • Informationsbegriff der Informatik 68 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1 Information Informationsbegriff der Informatik legt Problemstellung der Determiniertheit zugrunde, d.h. Frage nach der Anzahl der ”Ja/Nein-Entscheidungen bzw. Wahr/Falsch-Entscheidungen” d.h. nach Folgen von [0,1]. Informationsbegriff der Informatik verknüpft mit Indeterminationsgehalt ⇒ deterministisch geprägt, d.h. davon ausgehend, dass eintreffende Zeichen der Zufallsverteilung folgen. Das trifft vor allem zu, wenn man das Verhalten von Algorithmen unter möglichst allgemeinen Bedingungen untersuchen will. So gesehen inkorporiert Informationsbegriff der Informatik sowohl die Shannonsche Informationstheorie als auch den nachrichtentechnischen Informationsbegriff. 69 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information 1.1.1 Repräsentation 1.1.2 Kommunikation 1.1.3 Systembegriff 70 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Repräsentation • Signale und Daten • Begriffe und Modelle • Informationstheorie und Quellencodierung 71 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Information: • symbolisiert in materiell-energetischen Mustern • kann durch Signale bzw. Daten repräsentiert werden, technisch zwischen analogen und digitalen Signalen/Daten unterscheiden, d.h. physikalischen oder logischen Größen zur Darstellung von Information. 72 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation 73 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Signale und Daten Grundlegende Kriterien zur Signalbeschreibung sind: • Determiniertheit ⇒ deterministische Signale repräsentieren analytisch vollständig beschreibbare Signale ⇒ stochastische Signale (zufällig, statistisch) nicht vollständig beschreibbar • Argumente (reelle Achse, komplexe Ebene, diskret) ⇒ kontinuierlich, diskret • Wertebereich ⇒ kontinuierlich, diskret • Energie-/Leistungsbezug ⇒ Signale, deren Zeit- oder Frequenzbereichsfunktionen quadratisch absolut integrierbar sind. • Digital ⇒ wertdiskretes Signal welches nicht notwendig zeitdiskret ist = ∑ L 74 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Abb. 1.4: Wertkontinuierliche Signale a) zeitkontinuierlich bzw. b) zeitdiskret wertdiskrete Signale c) zeitkontinuierlich bzw. d) zeitdiskret 75 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Signal: mathematische Beschreibung eines Prozesses in Raum und Zeit: S1 ( x, y, t ) S ( x, y , t ) 2 S= ...... S m ( x, y , t ) 76 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Signal: eingeschränkter Argumentationsbereich, d.h. die Funktionen Sj(x, y, t) müssen nicht für jeden Raum- und Zeitpunkt definiert sein. Funktionswert Sj repräsentiert Wert aus eindimensionalen Eigenschaftskontinuum oder Element einer diskreten Menge, gewonnen durch Intervallpartition eines Eigenschafts-Kontinuums. Häufig werden Signale betrachtet, die durch Einschränkungen als Sonderfälle aus der allgemeinen Signalpartition hervorgehen. Skalares Signal ist ein Sonderfall, da es ein Signal mit nur einer Komponente repräsentiert, der Form: S = S ( x, y , t ) 77 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Ein vom Raum unabhängiges skalares Signal hat nur noch die Zeit im Argument, was auf nachfolgende Gleichung führt S = S (t ) Muster stellt Sonderfall der allgemeinen Signalpartition dar, da Muster ein von der Zeit unabhängiges skalares Signal repräsentiert, wobei zwischen ein-, zwei- und dreidimensionalen Mustern unterschieden werden kann, was auf die nachfolgende Notation führt: S = S (x ) S = S ( x, y ) S = S ( x, y , z ) Durch Aufnehmen und Wiedergeben von Signalen können bestimmte Signalparameter ineinander transformiert werden. Durch Aufnahme wird aus S(t) die Komponente S(x), durch Wiedergabe von S(x) entsteht wieder S(t). 78 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Beispiel Es wird der zeitveränderliche Luftdruck P(t) vor einem Mikrophon betrachtet, der durch eine Tonbandaufzeichnung zu einem Magnetisierungsmuster M(x) längs der Bandachse x wird. Beim Abspielen des Magnetbandes wird aus M(x) wieder P(t) vor einem Lautsprecher. 79 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Beispiel Zweidimensionales Grauwertbild G(x, y) kann durch zeilenweise Videoabtastung wiedergegeben (abgespielt) werden, wobei ein Spannungssignal U(t) entsteht, das zur Intensitätssteuerung des Elektronenstrahls einer Monitorbildröhre eingesetzt werden kann. Durch Abspielen der Aufzeichnung U(t) kann wieder das Muster G(X, y) erzeugt werden. 80 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Signale werden von Systemen verarbeitet, die Eingangssignale x(t) auf Ausgangssignale y(t) abbilden. Zur Signalverarbeitung eingesetzt werden : • lineare Systeme (L) • zeitinvariante Systeme (ZI) Lineare Systeme: Superpositionsgesetz ⇒Berechnung der Reaktion y(t) auf Eingangssignal u(t), indem man x(t) in Summanden zerlegt: u (t ) = ∑k u (t ) ⇒ y (t ))∑k yk (t ) Im Zusammenhang mit LZI-Systemen ist es vorteilhaft komplizierte Signale durch Summe einfacher Signale darzustellen, was der Reihenentwicklung entspricht, für die es zeitliche Varianten gibt: • Potenzreihen • Fourier-Reihen • etc. 81 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Zur Beschreibung periodischer Signale wird Fourier-Reihe eingesetzt, d.h. die Entwicklung harmonischer Komponenten. Fourier-Reihen sind Sonderfall der Funktionenreihen. Funktionen fn(x) haben damit die allgemeine Form fn(x) = an cos n x + bn sin n x an und bn sind Konstante, sog. Fourierkonstante noder Fourierkoeffzienten Trigonometrische Reihe bzw. Fourier Reihe entspricht Reihe der Form bzw. a0 + ∑∝n=1 (an cos n x + bn sin n x) x(t) = an/2 + ∑∝n=1 (an cos(nωot) + bn sin(nωot)) 82 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Fourier hat gezeigt, dass Funktion f(t) innerhalb eines Bereiches in trigonometrische Reihe der Form ∞ f(t) = ∑ (a n n=0 ⋅ cos nt + bn ⋅ sin nt) = a 0 + a1 ⋅ cos t + a 2 ⋅ cos 2t + ... + a n ⋅ cos nt + ... + b1 ⋅ sin t + b2 ⋅ sin 2t + ... + bn ⋅ sin nt + ... entwickelt werden kann, wenn f(t) innerhalb dieses Bereiches endlich ist und nicht unendlich viele Sprungstellen auftreten. Liegt periodische Funktion vor, ist Reihenentwicklung außerhalb des Bereiches möglich. Dies gilt auch wenn an Endpunkten des Bereiches Unstetigkeitsstellen auftreten. Liegt keine Periodizität vor, kann Wiedergabe durch Reihenentwicklung nur innerhalb des Bereiches 2π erfolgen. Konstantes Glied a0 beeinflusst Periodizität nicht, bewirkt Verschieben der durch Sinus- und Cosinusglieder erzeugten Kurve auf der Ordinate. 83 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Signale treten • zeitkontinuierlich • zeitdiskret auf. Zeitkontinuierliche Signale: mathematisch durch Fourier- bzw. Laplace-Transformation beschreibbar Zeitdiskrete Signale: durch Spektral-Transformationen wie z.B. Fourier-Transformation für Abtastsignale oder z-Transformation) darstellbar 84 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Daten sind Zeichen die aufgrund von bekannten oder unterstellten Abmachungen (Konventionen, Notationen) dem Zweck der (maschinellen) Verarbeitung von Informationen dienen. Daten: man unterscheidet Daten die sich aus Buchstaben (alphabetische Daten), aus Ziffern und Sonderzeichen (numerische Daten), oder aus Buchstaben, Ziffern und Sonderzeichen zusammensetzen (alphanumerische Daten). Daten, die aus kontinuierlichen Funktionen bestehen, heißen analoge Daten. 85 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.1 Repräsentation Datei ist in der Informatik eine Informationseinheit, die aus einem oder mehreren Datensätzen besteht, die in einem verarbeitungstechnischen Zusammenhang stehen und in einem Speicher untergebracht sind. Die Zusammenfassung ist mit einem Dateinamen gekennzeichnet. Datenformat: Art der Anordnung digitaler Daten in Speichern, auf Datenträgern oder in Kanälen. Datenqualität: allgemein die Eigenschaft eines Datums in Bezug auf die Gütekriterien Objektivität, Validität und Reliabilität; darüber hinaus syntaktische und semantische Korrektheit sowie Datenintegrität 86 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information 1.1.1 Repräsentation 1.1.2 Kommunikation 1.1.3 Systembegriff 87 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Kommunikation • Datenkommunikation • Protokolle • Schnittstellen 88 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Datenkommunikation erfolgt über Kommunikationsleitungen, längs derer sich elektromagnetische Wellen/Signale/Daten ausbreiten können, welche z.B. Rechner miteinander verbinden, damit Ressourcen und Informationen gemeinsam genutzt werden können. Datenkommunikationssystem → Netzwerk. = ∑ L 89 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Datenkommunikation Merkmal zur Klassifizierung von Netzwerken, räumliche Ausdehnung Man unterscheidet zwischen: • globalen Netzwerken (GAN); weltumspannende Netze, die i.d.R. über Satelliten Rechnernetze, Subnetze, Kontinente, verbinden • weiten Netzwerken (WAN); kontinentale (Länder-)Netze • Stadtnetzen (MAN); innerhalb von Stadtgebieten für schnelle Hochleistungskommunikation • lokalen Netzen (LAN=Local Area Network); auf räumlich begrenztem Gebiet; hohe Datenrate und niedrige Fehlerrate durch hochwertige Leitungen mit guter Abschirmung und niedriger Dämpfung; IEEE, ECMA = ∑ L 90 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 91 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Leitungsverbindungen: Leitung: Anordnung von leitenden bzw. dielektrischen Grenzflächen die längs ihrer Oberfläche elektromagnetische Wellen führen kann. = ∑ L 92 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Leitungsverbindungen: Sei L Leitungsstück der differentiellen Länge dz und besitzt L eine effektive Serienimpedanz Z´[Ω] und eine effektive Querimpedanz Y´[S] dann gilt für Spannung und Strom: U = − I ⋅ Z´⋅dz = − I ⋅ (R´+ jωL ) I = −U ⋅ Y ´⋅dz = −U ⋅ (G´+ jωC´)dz (G1) (G2) wobei die negativen Vorzeichen anzeigen, dass Spannung und Strom auf der Leitung mit zunehmenden z abnehmen. Da dz infinitesimal ist nehmen (G1) und (G2) die Form der Leitungsdifferentialgleichungen an: (G3) dU = − I ⋅ Z ´⋅ = − I ⋅ (R´+ jωL ) dz (G4) dI = ∑ L dz 93 = ∑ L = −U ⋅ Y ´⋅ = −U ⋅ (G´+ jωC´) Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation (G3) und (G4) differenziert und in Stammgleichungen einsetzen: d 2U = (R´+ jωL ) ⋅ (G´+ jωC ) ⋅ Ú 2 dz d 2I = (R´+ jωL ) ⋅ (G´+ jωC´)´*I 2 dz bzw. d 2U = Z ´⋅Y ⋅ Ú 2 dz d 2I = Z ´⋅Y ´⋅I 2 dz und mit Z´*Y´= γ² d 2U 2 = γ ⋅Ú 2 dz d 2Í 2 = γ ⋅I 2 dz = ∑ L = ∑ L (G5) (G6) (G5) und (G6) repräsentieren die Wellengleichung; lineare DGL 2. Ordnung; besitzen unabhängige Lösungen exp(-γ²) und exp(γ²) 94 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Allgemeine Lösung der Wellengleichung durch Linearkombination der Lösungen mit den Konstanten A und B; vollständige Lösung von (G5): U = A⋅e −γ 2 + B⋅e γ2 (G7) Eingesetzt in (G3) ein erhält man für den Strom I= γ 2 [A⋅e −γ 2 γ2 + B⋅e ] Im allgemeinen ist die Impedanz Z´ und die Admittanz Y´ der Leitung komplex, daher ist γ komplex. Komplexe Zahlen können in Real- und Imaginärteil aufgespalten werden, so dass gilt γ = α + jβ = ∑ L = ∑ L mit α = Dämpfungskonstante [1/m], β = Phasenkonstante [1/m], γ = Fortpflanzungs-/Ausbreitungskonstante. 95 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 96 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Datenübertragungsmedium Kupferkabel bei Datenkommunikation über lange Distanzen ersetzt und bei lokalen Datenübertragungssystemen/ Netzwerken immer wichtiger Lichtwellenleiter-Optik. Beim Lichtwellenleiter werden Signale/Daten mittels Lichtimpulsen längs einer Glasfaser übertragen ⇒ hat größere Bandbreite wie konventionelle Kupferleitungen; ist unempfindlicher gegenüber elektrischen Einstreuungen und Verzerrungen der Signale/Daten. Glasfaserkabel sind auch sicherer als Kupferleitungen, da sie nicht so leicht angezapft werden können. Glasfaserkabel weisen folgende Vorteile auf: • elektrisch nichtleitend ⇒ Verbindungspunkte sind gegeneinander elektrisch vollkommen isoliert • Kabelbruch verursacht keine Unterbrechung in der Funktion des Glasfaserkabels wie bei konventionellen Kupferleitungen • keine Explosionsgefahr • Glasfaserkabel häufig als Backbone eingesetzt = ∑ L 97 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 98 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 99 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Komplexität der Datenkommunikationssysteme führt zu Risikoquellen, gefährden ohne spezielle Sicherheitsvorkehrungen Rechte von Personen sowie materielle Interessen von Unternehmen. Schlagwort dazu lautet „unberechtigter Zugriff”. Aber auch absichtlicher oder unbeabsichtigter Zugriff auf Daten und deren unbeabsichtigte oder mutwillige Veränderung und/oder Zerstörung, sind zu verhindern. Standardisierte Zugriffssicherung mittels Passwort, in Verbindung mit Protokollierung erfolgloser Eindring- und Manipulationsversuche (Ablaufprotokollierung), reduziert Risiko. Zugriffssicherung muss differenziert und flexibel sein um freie Kommunikation möglichst nicht zu behindern. Aspekte des Datenschutzes betreffen damit: = ∑ L • • • • = ∑ L unbefugtes Einschalten in das Datenkommunikationssystem unbefugtes Lesen von Daten unbefugtes Schreiben (z.B. auch Verändern und Löschen) von Daten unbefugtes Unbrauchbarmachen des Datenkommunikationssystems (z.B. Formatieren der Festplatte etc.) 100 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Protokoll: Vereinbarung in welcher Art und Weise Datenaustausch stattfinden soll Datenkommunikationsprotokoll: Gesamtheit aller syntaktischen und semantischen Festlegungen die das Kommunikationsverhalten miteinander kommunizierender Einheiten in Datenkommunikationssystemen festlegen. Kommunikationsprotokolle stellen Erfüllung der Sichtenfunktionen sicher Sichtenfunktionen beschreiben Kommunikationsdienste für Sichtenbenutzer. Es gibt viele Protokolle und Protokollfamilien. Die wichtigsten sind: = ∑ L • • • • • = ∑ L NetBEUL/DLC (NetBios-Treiber und Data Link Controller) von IBM Xerox Network System XNS TCP/IP vom DoD ISO/OSI herstellerspezifische Protokolle wie Profibus etc. 101 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation ISO/OSI ISO AG der UNO entwickelte ISO-NORM 7498, Referenzmodell für Rechnerkommunikation mit dem Titel „Basic Referenz Model for Open Systems Interconnection (OSI)“ Beschreibt Kommunikation offener Systemen, d.h. Systeme, die für diese Art der Kommunikation offen sind; nicht mit offener Kommunikation gleichzusetzen OSI-Referenzmodell teilt Kommunikation in 7 Ebenen (Schichten) mit festgelegter Funktionalität ein; OSI-Schichtenmodell. Jeder Schicht kommt Übernahme einer speziellen, klar definierten Gruppe von Teilaufgaben in der Kommunikation zu. In jedem beteiligten Kommunikationspartner sind alle sieben Schichten enthalten. Schichten kommunizieren untereinander über genau definierte Schnittstellen, was Austausch einzelner Schichten ohne Eingriff in die Funktionalität des Gesamtsystems erleichtert. An Schnittstellen stellt jede Schicht Dienste bereit, die von Nachbarschicht in Anspruch genommen werden können = ∑ L 102 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation ISO/OSI = ∑ L 103 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation OSI Protocol Stack Level Means Description 7 Application End user services 6 Presentatio n Data problems and data compression 5 Session Authentication and authorization 4 Transport Guarantee end-to-end delivery of packets 3 Network Packet routing 2 Data Link Transmit and receive packets 1 Physical Cable or physical connection itself 104 = ∑ L = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation TCP/IP (DoD) Transmission Control Protocol Allgemeiner Standard für Datenaustausch in heterogenen Netzen im Zusammen hang mit spezieller Ausführung der Internet suite of protocols (IP) TCP/IP sowohl in lokalen Netzen zur Kommunikation verschiedenartiger Rechner untereinander als auch für den Zugang von LAN (Local Area Networks) zu WAN (Wide Area Networks) eingesetzt. Betrachtet man TCP/IP im Kontext IOS/OSI ist Internet Protokoll die Netzwerkschicht. TCP/IP in der Regel auf Ethernet (OSI-Schicht 1) betrieben; Anbindung an Sicherungsschicht (LLC) erfolgt nach IEEE 802.2 Norm; Zugriffskontrolle für Medium (MAC) nach CSMA/CD (Carrier Sensing Multiple Access/Collision Detection, IEEE 802.3 Norm) Transportschicht entweder von TCP als verbindungsorientierten Dienst oder von UDP (User Datagram Protocol) als verbindungslosen Dienst gebildet TCP/IP älter als ISO/OSI, daher nicht nach OSI-Standard programmiert = ∑ L 105 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation TCP/IP = ∑ L = ∑ L Einordnung TCP/IP in ISO/OSI und Vergleich mit anderen Kommunikationsmodellen 106 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 107 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 108 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 109 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Schnittstellen Einsatz von µC nicht nur zur Datenverarbeitung; µC Bestandteil komplexer, und heterogener Datenkommunikationsysteme. Um die vielfältigen Aufgaben bewältigen zu können, benötigt µC Ein- und Ausgänge, sog. Schnittstellen, die ihn mit dem System verbinden, über die seine Kommunikation abläuft. µC verarbeitet Daten im parallelen Format; der Datentransport innerhalb des µC erfolgt dabei über den sog. Systembus. Neben dieser “internen” Schnittstelle gibt es sog. “externe” Schnittstellen, die Kommunikation mit anderen Teilkomponenten/ Geräten etc. im seriellen oder parallelen Format zulassen. Geläufigste beide Schnittstellen sind serielle V.24-Schnittstelle und parallele Centronics-Schnittstelle, mit denen jeweils zwei Teilnehmer verbunden werden können. Weitere Schnittstellen sind die IEC-BUS oder IEEE 488 Schnittstelle, mit der bis zu 15 Teilnehmer gleichzeitig miteinander verbunden werden können. Hierbei liegen alle Geräte parallel am IEC-Bus. = ∑ L 110 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Bei Anwendung von Schnittstellen sind Teilnehmer an Kommunikationsregeln, vorgegeben durch Normung oder Industrie- (Quasi-) Standards, gebunden. Die Standards beinhalten die • funktionellen • elektrischen • mechanischen Eigenschaften der Schnittstelle. Des weiteren werden Vereinbarungen bezüglich der verwendeten Datenformate und Protokollverfahren getroffen. Schnittstelle IEC Centronics Camac RS232 TTY RS422/485 111 Signalpegel 5V 5V 5V 12V 20mA 5V Übertragungslänge 20 m 2–4m 20 – 40 m 100 m 1000 m 1500 m = ∑ L = ∑ L Verwendung Eigenschaft Drucker schnell Messgeräte schnell Messgeräte schnell Drucker;Terminal störsicher Messgeräte störsicher Steuer&Regelt. extrem störs. . Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation RS 232 Es existieren • eine amerikanische RS 232C – EIA 232, • eine internationale CCITT V 24, und • eine deutsche Norm DIN 66 020. RS: Recommended Standard CCITT: Comité Consultatif Telégraphique et Teléphonique RS 232: erdunsymmetrische Schnittstelle für Kommunikation zwischen zwei Datenendgeräten (DEE) – z.B. PC – oder zwischen Datenendgerät und Datenübertragungseinrichtung (DÜE) – z.B. Modem – . RS 232 ausschließlich für Punkt-zu-Punkt Verbindungen geeignet Erdunsymmetrisch: Spannungspegel zwischen Datenleitung und Masse Gemessen, damit nicht symmetrisch zur Masse = ∑ L 112 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation RS 232 Pegel: Logisch 0: 3 V < U < 15 V Logisch 1: -15 V < U < -3 V Nicht definierter Bereich: - 3 V bis 3 V (Masse) = ∑ L 113 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation RS-232-C specs Standard EIA RS-232-C, CCITT V.24 Baud rates 115 kbps (max) Transmission distance Signal nature 15 m (max) Number of drivers 1 asymmetric by voltage = ∑ L 114 = ∑ L Number of receivers 1 Connection circuit full duplex, from point to point Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation RS 232 Im einfachsten Fall werden Leitungen TxD (Transmit Data) und RxD (Receive Data) des Senders und Empfängers gekreuzt und zusätzlich eine Masseverbindung (GND) hergestellt. Minimalkonfiguration; SW muss Sicherheit der Datenübertragung gewährleisten; durch Handshake Modus gewährleistet mit seinen Meldeleitungen CTS (Clear To Send) bzw. DSR (Data Send Ready) und Steuerleitungen RTS (Ready To Send) bzw. DTR (Data Terminal Ready) = ∑ L 115 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L = ∑ L Mögliche Verbindungen 116 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Zeitdiagram EIA232 Schnittstelle bestimmt durch aktivierte Signale, z.B. • DSR (Data Set Ready) -Meldeleitung-, • DTR (Data Terminal Ready) -Steuerleitung-, • TxD (Transmit Data) -Datenleitung-. = ∑ L 117 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Funktionsprinzip digitaler Schnittstellen basiert darauf, dass mehrere Datenbits parallel vom sendenden Gerät zum empfangenden Gerät übertragen werden, wobei Übertragungszeitdauer davon abhängt, wie schnell empfangendes Gerät die übertragenen Daten verarbeitet. Um fehlerfreie Datenübertragung zu gewährleisten, muss Datenempfänger dem Datensender auf separater Leitung mitteilen, dass er die auf den Datenleitungen anliegenden Informationen korrekt übernommen hat. Datenempfänger muss Datensender auch mitteilen können dass er mit der Verarbeitung von Daten beschäftigt ist und aktuell keine weiteren Daten empfangen kann. Das in diesem Fall ausgesandte Signal ist das BUSY-Signal. Datensender legt danach neue Daten auf Datenleitungen (Datenbus), signalisiert dem Datenempfänger über eine weitere Leitung, dass diese Daten jetzt gültig sind. Aus diesen Betrachtungen ist ersichtlich, das neben den Datenleitungen eine Reihe weiterer Leitungen für die Steuerung und das Protokoll notwendig sind. = ∑ L 118 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Einer der häufigsten Übertragungsbausteine im Bereich der µP-HW ist der UART (Universal Asynchronous Receiver and Transmitter). Dient der bitseriellen Übertragung von Daten über eine Übertragungsstrecke und der Umsetzung der Datenworte zum und vom parallelen Rechnerbus und besteht aus elf Bits. Startbit - Bit 0 LSB - ...... - Bit 7 MSB – Parität - Stoppbit = ∑ L = ∑ L Startbit: logisch 0, Stoppbit: logisch 1; 119 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation Beim UART folgt auf Starbit die zu übermittelnde Information als Datenbits. Nach Datenbits und vor Stoppbit wird Paritätsbit gesendet. Ist gerade Parität vereinbart ergänzt Paritätsbit die Quersumme auf einen geraden Wert, ist ungerade Parität vereinbart, ergänzt Paritätsbit die Quersumme auf einen ungeraden Wert. Zahl der Datenbits kann auf 7 oder 8 eingestellt werden. Das niederwertige Bit (LSB) wird immer direkt nach dem Startbit, das höchstwertige Bit (MSB) als letztes Datenbit gesendet. Mögliche Übertragungsarten sind • simplex (Datenübertragung nur in eine Richtung), • halbduplex (Datenübertragung in beide Richtungen, jedoch nicht gleichzeitig), • vollduplex (asynchrone Datenübertragung in beide Richtungen jederzeit möglich) Sender überträgt Zeichen in einem vorher in beiden Stationen vereinbarten Zeitraster auf Übertragungsstrecke. Beim Empfänger ankommende Zeichen werden aufgrund der eingestellten Datenübertragungsgeschwindigkeit und der Struktur des eingegebenen Rahmens eingestellt. = ∑ L 120 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation IEC/IEEE-Schnittstelle: Leitungssystem (Bus-Kabel mit 16 parallelen Leitungen: 8 Daten- und 8 Steuerleitungen). Struktur ermöglicht gleichzeitigen Anschluss von bis zu 62 verschiedenen Geräten, die über fest einstellbare eigene Adresse selektiert werden. Adressinformation auf Datenbus nach Multiplexverfahren mit übertragen. Zwischen den Geräten wird die Unterscheidung getroffen, ob sie nur Daten empfangen, d.h. Datenempfänger (Listener), oder ob sie auch Daten auf den BUS senden können, d.h. Datensender (Talker). Von jeder Gruppe können bis zu 31 Stationen angesprochen werden. Steuerung des Datenverkehrs erfolgt durch Steuereinheit (Controller), der sowohl Listener als auch Talker ist. Kombinationen dieser Funktionen in einem Datenkommunikationssystem sind möglich. Dabei ist jeweils nur eine Steuereinheit und ein Datensender in Aktion, jedoch können mehrere Datenempfänger simultan aktiv sein. Minimales Datenkommunikationssystem besteht aus = ∑ L • • = ∑ L Datensender Datenempfänger 121 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L 122 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.2 Kommunikation = ∑ L = ∑ L Ablauf Kommunikation im OSI Modell; es kommunizieren jeweils die gleichen Schichten innerhalb der Kommunikationspartner 123 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information 1.1.1 Repräsentation 1.1.2 Kommunikation 1.1.3 Systembegriff 124 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Systembegriff • System: Definition und Eigenschaften • Klassifizierung von Systemen • Mathematische Behandlung von Systemen 125 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff System: Definition und Eigenschaften Begriff System wird umgangssprachlich in vielfältigen Zusammenhängen gebraucht: • Sonnensystem • Dezimalsystem • Periodisches System der Elemente • Philosophische Systeme • Wirtschaftssysteme • Herrschaftssysteme • Herz-Kreislauf-System • Nervensystem • Rechnersystem • Informationssystem • Regelungssystem • Rohrleitungssystem • Verkehrssystem • Transportsystem, etc. = ∑ L 126 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Systembegriff häufig im Sinne von Ordnungsprinzip bzw. Klassifikationsschema verwendet. Beinhaltet immanente Gegebenheiten (private Merkmale) z.B. Seinsbereich, d.h. reale (materielle) oder ideelle (immaterielle) Systeme oder Entstehung, d.h. natürliche oder künstliche Systeme. = ∑ L 127 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Definition 1: Einen Gegenstand unseres Erkennens nennen wir System, wenn alle erkannten Elemente und Attribute mit ihren wechselseitigen Beziehungen – auch zur Umgebung – ein einheitliches Ganzes bilden, basierend auf logischen Grundlagen. Hinzu kommen können Axiome. = ∑ L 128 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Elemente: Bausteine, Dinge, Komponenten, Objekte, Sachen, Teile, etc. Beziehungen: Kopplungen, Relationen, Verbindungen, Zusammenhänge, etc. Attribute: Eigenschaften, Kennzeichen, Merkmale etc. Zu den Attributen werden auch Verbindungen zwischen System und Umgebung gerechnet; bei offenen als auch bei geschlossenen System vorhanden. Das die Verfassung des Systems kennzeichnende Attribut wird Zustand genannt. Attribute miteinander in Beziehung gesetzt führen auf die Funktion als Abbildung des Systems. Attribute werden hinsichtlich ihrer Ordnung eingeteilt. = ∑ L 129 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Man unterteilt zwischen Attributen 0. Ordnung (Eigenschaften der Elemente) und Attributen höherer Ordnung (Eigenschaften der zwischen Elementen bestehenden Beziehungen). Dinge und Zusammenhänge mit identischen Attributen werden als Äquivalent betrachtet und formal durch sog. Äquivalenzklassen gekennzeichnet. So gehört z.B. zum Begriff Beruf die Äquivalenzklasse Arzt, Bäcker, Bauer, Erzieherin, Glaser, Ingenieur, Klempner, etc. Bezeichnet man mit Α die nicht-leere Menge der Attribute α und mit Β die nicht-leere Menge der Beziehungen β, dann kann die Funktion Ψ eines Systems symbolisch wie folgt notiert werden: = ∑ L = ∑ L Ψ: = (α∈Α, β∈Β) 130 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Formales Konzept der Systembeschreibung gekennzeichnet durch nichtleere Menge der Beziehungen, aus Kopplungsmatrizen kij gebildet. Für nSystemelemente gilt: ui = ∑j=1 kij * xj (1.1.3-1) ui: Eingangsgrößenvektor, xj: Ausgangsgrößenvektor, kij: Operator. Gleichung (1.1.3-1) besagt, dass ui die i-te Gleichung der allgemeinen Matrixgleichung u = k * x ist, die durch Gleichsetzen des inneren Produktes der i-ten Zeile von k mit dem transponierten Spaltenvektor x = x1, x2, ,..., xn T gleich ui ist. Daraus folgt ki1 * x 1+ ki2 * x2+ , ... , kin* xn = ui was in Kurzform geschrieben auf Gleichung (1-1-3-1) führt. = ∑ L 131 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Kopplungsmatrix kij kann als Operator aufgefasst werden, der Vektor xj in Vektor ui transformiert. Elemente von kij sind 0 oder 1, je nachdem ob zwischen Systemelementen Kopplung vorhanden ist oder nicht. Kopplung von Systemelementen liegt vor, wenn bestimmte Ausgangsgrößen xβ eines Systemelementes zugleich Eingangsgrößen uβ eines anderen Systemelementes sind. Neben Kopplungsmatrix wird strukturaler Aspekt der Systembeschreibung durch Relationen gekennzeichnet. Darunter versteht man logische Beziehung zwischen Systemelementen (Kombinationsbeziehung); so weist ein System mit n-Elementen maximal n² Relationen auf, wovon höchstens n-Relationen identisch und n (n-1) Relationen nicht identisch sind. = ∑ L 132 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Identische Relationen (so genannte Äquivalenzrelationen) wie folgt Charakterisiert: Reflexivität der Relation: (x) [(x) ∈ M ⇒ R (x, x)] Symmetrie der Relation: (x) (y) [x ∈ M y ∈ M R (x, y) ⇒ R (y, x)] Transitivität der Relation: (x) (y) (z) [ x ∈ M y ∈ M z ∈ M R (x, y) ⇒ R (y, z) ⇒ R (x, z)] = ∑ L = ∑ L M: nicht-leere Menge der Gegenstände, Eigenschaften, etc., R: Relation zwischen den Elementen von M. 133 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Nicht identische Relationen sind solche, denen mindestens eine der drei genannten Bedingungen fehlt. Aus nicht-leerer Menge nicht-identischer Relationen ist Struktur des Systems festlegbar. Hierarchische Strukturen sind nicht-identische Relationen, da sie der Symmetrie der Relationen nicht genügen. Struktur beschreibt den formalen Aufbau des Systems aus Elementen mit ihren Attributen und Beziehungen. Es gibt zwei Strukturformen: • hierarchische Strukturen - hierzu gehören das Stern- und Baumkonzept des Graphen (beim Stern ist ein privilegiertes zentrales Element vorhanden; beim Baum ein hierarchisch höchstes Element gegeben) – • anarchische Strukturen - hierzu gehören der Ring, der Bus und die vermaschte Struktur z.B. des Netzwerkes. = ∑ L 134 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Nach Definition 1 kann ein System wie folgt abstrakt dargestellt werden. Definition 2: System S kann als ein geordnetes Paar S = { E, B } betrachtet werden, wobei E die nicht-leere Menge der Elemente E und B die nicht-leere Menge der Beziehungen zwischen den Elementen von E kennzeichnet. Aus Definition 2 kann man für den Fall zweistelliger Beziehungen B folgern, dass geordnete Paare der Systemelemente x, y, ∈ E vorliegen der Form B = {( x, y )} . Für jedes Element x ∈ E soll gelten: x steht zu mindestens einem Element y ∈ E in Beziehung. = ∑ L 135 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Für je zwei Elemente x, y ∈ E gibt es eine Verbindung, entweder direkt oder indirekt. Eine direkte Verbindung liegt dann vor, wenn x oder y zueinander in Beziehung stehen; eine indirekte, wenn eine Verbindung über andere Elemente erfolgt wie z.B. bei z ∈ E. Jeweils zwei Elemente x, y ∈ E können mit Hilfe eines Kantenzuges verbunden werden (Graph). = ∑ L = ∑ L Systemelemente, die zur Systemumgebung Beziehungen haben, heißen Randelemente. Die Teilmenge aller Randelemente eines Systems nennt man Oberfläche oder auch Hüllfläche des Systems. 136 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff In der Technik wird der Systembegriff wie folgt benutzt: "System ist abgegrenzte Anordnung aufeinander einwirkender Gebilde. Solche Gebilde können sowohl Gegenstände als auch Denkmethoden und deren Ergebnisse (z. B. Organisationsformen, mathematische Methoden, Programmiersprachen etc.) sein. Diese Anordnung wird durch Hüllfläche von ihrer Umgebung abgegrenzt oder als abgegrenzt gedacht. Durch Hüllfläche werden Verbindungen des Systems mit seiner Umgebung geschnitten. Die mit diesen Verbindungen übertragenen Eigenschaften und Zustände sind die Größen, deren Beziehungen untereinander das dem System eigentümliche Verhalten beschreiben". = ∑ L 137 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Symbolisch wird System durch Kasten (Block) dargestellt, der, in Bezug auf die angeführten Definitionen, die Hüllfläche als Abgrenzung zur Umgebung charakterisieren soll. Verbindungen des Systems (Kasten, Block) mit seiner Umwelt sind Einund Ausgangsgrößen, deren Wirkungsfluss und Einfluss durch die Richtung eines Pfeils festgelegt wird. Sind keine Verbindungen mit der Umgebung vorhanden, spricht man von geschlossenen System. Demgegenüber weist offenes System immer Verbindungen zur Umgebung auf. Im strengen Sinne liegt offenes System vor, wenn mindestens ein Systemelement über Beziehungen zur Umgebung verfügt. Derartige Systemelemente sind die Randelemente des Systems. = ∑ L 138 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff u1 un z1 zn y1 System yn Blockorientierte Darstellung eines Systems mit mehreren Eingangsgrößen (un) und Ausgangsgrößen (ym) und Störgrößen (zk). Eingangsgrößen u1 ..., un generieren Ausgangsgrößen y1, ... yn, in der Regel überlagert von Störgrößen z1, ... zk. = ∑ L = ∑ L Y = f(U, Z) Addiersystem: Sn = f(En, C0) Cn-1 =g(En) 139 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff Definition 3 System mit n > 2 Eingangsgrößen und/oder n > 2 Ausgangsgrößen heißt Mehrgrößensystem. = ∑ L 140 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.1.3 Systembegriff In blockorientierter Darstellung können folgende Zuordnungen getroffen werden: Abhängige Variable x durch Kästen (Blöcke) dargestellt, deren Wirkungen bzw. Einflüsse von Eingangsgrößen durch Pfeile gekennzeichnet ⇒ kausale Wirkungskette vor. Man unterscheidet zwischen gleichsinnigen und gegensinnigen Wirkungsflüssen. Gleichsinniger Wirkungsfluss kennzeichnet positive Veränderung der abhängigen Variablen im Sinne einer Verstärkung. Erhöhung Eingangssignal führt zur Erhöhung des Ausgangssignals und vice versa. Gleichsinnige Wirkung durch Plus-Zeichen über Wirkungspfeil gekennzeichnet. Gegensinniger Wirkungsfluss durch inverse Richtung der Änderung der abhängigen Variablen im Sinne einer Hemmung. Erniedrigtes Ausgangssignal ergibt sich als Folge eines vergrößerten Eingangssignales. Gegensinnige Wirkung durch Minus-Zeichen über dem Wirkungspfeil gekennzeichnet. = ∑ L 141 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information 1.1.1 Repräsentation 1.1.2 Kommunikation 1.1.2 Systembegriff 1.2 Zahlensysteme 1.3 Codierung 142 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2 Zahlensysteme 1.2 Zahlensysteme 1.2.1 Zahlenbegriff 1.2.2 Zahlendarstellungen 1.2.3 Komplementdarstellungen 1.2.4 Zahlenkonvertierung 1.2.5 Darstellung von Zahlen 1.2.6 Umwandlung von Zahlensystemen 1.2.7 Grundstruktur von Rechenwerken 143 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.1 Zahlenbegriff Zahl: mengentheoretischer Begriff Ziffer: Bezeichnung einer Zahl Zahl Abstraktionsklasse gleichmächtiger Mengen während Ziffer ihre Benennung ist. = ∑ L 144 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.1 Zahlenbegriff Bezeichnet man den Nachfolger einer natürlichen Zahl x mit x´, das Enthaltensein einer Menge in einer anderen durch ⊂, das Element durch das Symbol ∈ und das ausgezeichnete Element durch 1, können Eigenschaften natürlicher Zahlen durch das Axiomensystem nach Peano dargestellt werden, wobei aussagenlogische Konstanten durch ℘ symbolisiert sind (℘= Menge dieser Zahlen) (1) 1 ∈ ℘ (2) ∀(x) [(x ∈℘) → (x´∈℘)] (3) ∀(x) ∀(y) i[(x ∈℘)∧ (x ∈℘) ∧ (x´= y`)] → (x = y) (4) ∀(x) [(x ∈℘) → (x´ ≠ 1)] (5) ... Natürliche Zahlen lassen sich somit mit Hilfe des Symbols für die Zahl 1 und des Symbols für die Nachfolgerbeziehung darstellen in der Form 1 2 = 1´ 3 = 2´ = 1´´ 4 = 3´= 2´´ = 1´´´ .... = ∑ L 145 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Zahlendarstellung gekoppelt damit wie Zahlen operationalisiert werden, d.h. wie mit Zahlen gerechnet wird ⇒ geeignete Darstellungssysteme (Repräsentation). Dezimales Zahlensystem: Stellenwertsystem (polyadische Systeme), auf Basis 10 begründet, nutzt als gebräuchliche Abkürzung einer komplizierten Summenschreibweise, z. B. bei 2 * 10.000 + 5 * 10.00 + 7 * 100 + 4 * 10 + 3 * 1 + 2 * 0,1 + 5 * 0,001 = 25.743,25 = 2 * 104 + 5 * 103 + 7 * 102 + 4 * 101 + 3 * 100 + 2 * 10-1 + 5 * 10-2 Summe besteht aus Produkten von Koeffizienten zwischen 0 und 9 sowie entsprechenden Zehnerpotenzen, von der in abgekürzter Schreibweise lediglich Koeffizienten geschrieben werden und zwar der Koeffizient der höchsten Zehnerpotenz linksbündig und anschließend nach rechts die Koeffizienten in absteigender Ordnung der Potenz. Jede Stelle hat damit eine feste Wertigkeit bei dieser Art der Darstellung. = ∑ L 146 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Summenschreibweise: gilt für alle polyadischen Zahlensysteme. Als Basis kann jede beliebige Zahl B ≥ 2 dienen. Zahl Z ergibt sich gemäß allgemeingültigen Form zu Z = a n-1Bn-1 + an-2 Bn-2 + ... + a1B1 + a0B0 + a-1B-1 + a-2B-2 + ...+ a-(m-1) B-(m-1) + a-mB-m bzw. in verkürzter Summenschreibweise Z= n −1 ∑ = ∑ L aV BV = ∑ L V =− m n: Stellenzahl links des Komma, m: Stellenzahl rechts des Komma, B: Basis des Zahlensystems, av: Koeffizient, v Ordnungszahl. Für die Koeffizienten gilt allgemeingültig 0 ≤ av ≤ B - 1 147 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Digitaltechnik verwendet duales Zahlensystem zur Basis 2 mit den Ziffern 0 und 1. Hierfür sprechen folgende Gründe: • Dualstelle durch binäres Element technisch leicht realisierbar • Ziffernaufwand AZ (Summe aller erforderlichen Ziffern) zum Darstellen von Zahlen in vorgegebenen Bereich beim dualen Zahlensystem wesentlich kleiner (um 1/3) als beim dezimalen. Dadurch lassen sich u. a. Speicher kleiner und billiger ausführen. • Schaltungen zum Verarbeiten von Dualzahlen lassen sich mit Hilfe der Schaltalgebra (Boolesche Algebra) leicht entwerfen. Im Zusammenhang mit dem Ziffernaufwand interessiert welche Basis die günstigste ist. Im polyadischen Zahlensystem können mit n Stellen und der Basis B N = Bn = ∑ L = ∑ L unterschiedliche Zahlen dargestellt werden. Der Ziffernaufwand beträgt AZ = Bn 148 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Je Stelle werden B Ziffern angesetzt. In der höchsten Stelle kann eine Ziffer, die 0, eingespart werden, da Zahlen in der Regel ohne führende Nullen geschrieben werden, ergibt technisch keinen nennenswerten Vorteil, da Ziffernaufwand sich nur um eine Konstante verringert. Löst man die Gleichung N = Bn nach n auf erhält man logA N n = logB N = logA B Mit A = e ergibt sich als Ziffernaufwand = ∑ L = ∑ L AZ = B * n = B ln N ln B d. h. AZ liegt als Funktion von B vor, wie nachfolgend skizziert. 149 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen AZ lnN 6 5 4 3 2 1 0 = ∑ L 150 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Das Minimum des Ziffernaufwands erhält man, indem man AZ nach B differenziert und das Ergebnis 0 setzt. dAZ (ln B) −1 = ln N = 0. 2 dB (ln B) Lösung dieser Gleichung liefert B = e. Im Hinblick auf den Ziffernaufwand wäre damit das Zahlensystem zur Basis e das Beste. Da Basis jedoch ganzzahlig sein muss, scheidet e aus. Als nächstbester Wert bietet sich 3 an, jedoch wegen schlechter technischer Realisierbarkeit gegenüber 2 so gut wie kaum angewandt, weshalb Rechner Zahlensystem zur Basis B mit B = 2 besitzen = ∑ L 151 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Für jede Dualzahl Z gilt n Z = ∑Bi 2i Z = ∑ i = i =0 Als Ziffern schreibt man für die 2 verschiedenen Werte Bi∈{0, 1}. Damit hat Dualzahl dieselbe Notation wie Dezimalzahl Z = Bn 2n + Bn−1 2n−1 + ...+ B2 22 + B1 21 + B0 20 Es ist evident, dass Aufwand an Ziffern zur Darstellung von Dualzahlen erheblich größer ist als beim Dezimalsystem. Anzahl der zur Darstellung einer gegebenen Zahl erforderlichen Stellen wird Länge der Dualzahl, die vom Rechner zur Verfügung gestellte Anzahl der Dualstellen zur Darstellung von Zahlen Wortlänge genannt. = ∑ L 152 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Zahlensystem mit der Basis B, wobei gilt B ≥ 1, verfügt über eine Ziffernmenge ∑B {a0, a1, ... ,aB-1}. Jeder Ziffer wird durch injektive Abbildung wert :→ ∑ (0,1,..., B − 1) B Wert zugewiesen, wobei wert definiert ist durch wert (ai ) = i;0 ≤ i ≤ B − 1 Mit vier Dualstellen können die ganzen Dezimalzahlen 0 bis 15 (ohne Vorzeichen) dargestellt werden, wie in nachfolgender Tabelle angegeben. = ∑ L 153 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Dualzahl 154 Dezimalzahl 23 22 21 20 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 1 1 0 0 12 1 1 0 1 13 1 1 1 0 14 1 1 1 1 15 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Beispiel Darstellung Dezimalzahl 3253 im Binärsystem Z =(1100|1011|0101)2 mit wert(Z ) = 1* 211 + 1* 210 + 0 * 29 + 0 * 28 + 1* 27 + 0 * 26 + 1* 25 + 1* 24 + 0 * 23 + 1* 22 + 0 * 21 + 1* 20 = 3253 Bislang wurden positive Zahlen Z dargestellt. Negative Zahlen Z werden so geschrieben, dass man ihren Betrag oder Absolutwert angibt und ein Minuszeichen hinzufügt. Damit handelt es sich beispielsweise bei –2002 um eine negative Zahl vom Betrag 2002. Auch in Rechnern ist diese Darstellung gebräuchlich. Das Vorzeichen ist hier eine binäre Variable, weshalb zur Darstellung eine Binärziffer genügt, wobei folgende Festlegung getroffen wird: 0 → +, 1→ -. = ∑ L 155 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Beispiel 1.14. VZ 0 1 1 0 0 → + 1 1 0 0 = + 1210 1 1 1 0 0 → - 1 1 0 0 = - 1210 Diese einfache Art der Festlegung hat den Nachteil, dass die Zahl 0 sowohl durch +0 als auch durch –0 dargestellt wird Beispiel 1.15. VZ 0 0 0 0 0 → + 0 1 0 0 0 0 → -0 156 = ∑ L = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Darstellung des Vorzeichens ∑B wird auf ∑BB = ∑B ∪{+,−} erweitert. Für B = 2 wird bei Wörtern Z= (Zn-1 Zn-2 .... Z0)2 der Länge n über ∑2 = {0,1} das am weitesten links stehende Bit Zn-1 als Vorzeichen interpretiert. Dabei steht 0 für + und 1 für -. Die Funktion wert : ∑ 2 → Z n ist damit definiert durch wert [( Z n − 2 ,..., Z 0 ) 2 ]; Z n −1 = 0 wert [( Z n −1 , Z n − 2 ,..., Z 0 ) 2 ] = wert [( Z n − 2 ,..., Z 0 ) 2 ]; Z n −1 = 1 Beispiel 1.16. In einem 8 Bit Register in einem Rechner darstellbarer Zahlenbereich umfasst die Zahlen von 127 bis -127 . Für n =8 gilt = ∑ L = ∑ L wert[(0111.1111)2 ] = +127 wert[(1111.1111)2 ] = -127 157 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen Mit n-Stellen kann die Menge {-(2n-1-1),...,0,...,+(2n-1-1)}⊂ Z dargestellt werden, d.h. 2n-1 Zahlen → eine Zahl weniger als bei Binärdarstellung natürlicher Zahlen, da bei Vorzeichendarstellung 0 zwei Darstellungen hat, was für 8 Bit Register zu folgenden Inhalten führt + 0 = (0000.0000)2 - 0 = (1000.0000)2 Wenngleich beide Darstellungen intuitiv als gleich angesehen werden können, ist Gleichheit für einen Rechner, der die Bitpositionen einzeln vergleicht, schwer feststellbar. Dies erfordert für die rechnerinterne Arithmetik einen aufwändigen Vergleich zur Vorzeichendarstellung um festzustellen ob 0 = 0 ist. Für die Addition zweier Operanden x und y sind per se vier Fälle unterscheidbar: = ∑ L 158 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen 1. Fall: x = y = 0 x und y werden binär, d.h. modulo 2n-1 addiert, das Vorzeichen der Summe ist positiv, also x + y = 0. Ergebnis: Addition als auszuführende Operation. 2. Fall: x = y = 1 x und y werden binär, d.h. modulo 2n-1 addiert, das Vorzeichen der Summe ist negativ, also -(x + y) = 1. Ergebnis: Addition als auszuführende Operation. 3. Fall: x = 0 und y = 1 mit wert (x) > wert (y), oder x = 1 und y = 0 mit wert (y) > wert (x) = ∑ L = ∑ L x wird von y bzw. y wird von x binär subtrahiert, das Vorzeichen ist in beiden Fällen positiv, also x - y = 0 bzw. y - x = 0. Ergebnis: Subtraktion als auszuführende Operation. 159 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.2 Zahlendarstellungen 4. Fall: x = 0 und y = 1 mit wert(x) < wert(y), oder x = 1 und y = 0 mit wert (y) < wert (x) x wird von y bzw. y wird von x binär subtrahiert, das Vorzeichen ist in beiden Fällen negativ, also -(x - y) = 1 bzw. -(y - x) = 1. Ergebnis: Subtraktion als auszuführende Operation. = ∑ L 160 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.3 Komplementdarstellungen Vorzeichenrichtige Zahlendarstellung bereits bei Addition ganzer Zahlen aufwändig. Für Rechnerarithmetik ist neben Unterscheidung der 4 Fälle zur Addition auch Subtraktion erforderlich. Technische Umsetzung der Rechnerarithmetik im Addierwerk als ALU (arithmetisch logische Einheit) konzipiert ⇒ notwendige Subtraktion auf Addition zurückgeführt. Komplementdarstellung ganzer Zahlen angewandt; für Zahlensystem zur Basis B für die Subtraktion y – x – entspricht 3. Fall – für 0 < x < y mittels Addition berechnet wird. Hierzu wird x* derart gesucht, dass y - x = y + x* erfüllt ist. Setzt man x* = Bn - x, die Berechnung erfolgt modulo Bn , wegen = ∑ L = ∑ L y − x = [( y − x) + Bn ]modBn = [ y + (Bn − x)]modBn mit n als fester Länge der Zahlen, dann gilt: y − x = y − x * (mod B n ) 161 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.3 Komplementdarstellungen Sei wert(x) = (xn-1, xn-2,..., x1, x0)2∈Bn eine n-stellige Binärzahl, dann heißt K Bn ( x) = B n − x das B-Komplement von x. Hierbei ist die Darstellung – x. B-Komplementdarstellung erfüllt die Eigenschaft x + (-x) = 0, da gilt: x + (− x) = x + K Bn ( x) = x + ( B n − x) = B n und = ∑ L = ∑ L B n mod B n = 0 womit folgt: [ x + (− x)] mod B n = 0 162 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.3 Komplementdarstellungen Damit ist K1 ( x) = [1{+}xn −1 ,...,1{+}x0 ]2 das Einerkomplement von x und K 2 ( x) = [1{+}xn −1 ,...,1{+}x0 ]2 + 1 = K1 ( x) + 1 das Zweierkomplement von x bzw. allgemeingültig K Bn ( x) = K B −1 ( x) + 1 das B-Komplement. = ∑ L = ∑ L Einerkomplement einer Zahl x erhält man durch stellenweises invertieren von x, Zweierkomplement durch invertieren aller Bits und anschließende Addition einer Eins. 163 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.3 Komplementdarstellungen Beispiel 1.17. Für ein 16 Bit Register eines Rechners werden die Darstellungen der Zahlen +92 und –92 im Einer- bzw. Zweierkomplement betrachtet. Für das Einerkomplement gilt mit B = 2 und n = 16 K 1{[ 0000000001 011100 ]2 } ∈ ∑ 2 = + 92 16 K 2 {[1111111110 100011 ] 2 } ∈ ∑ 2 = −92 16 Das Zweierkomplement ergibt sich durch Addition einer 1: K1{[ 0000000001 011101 ]2 } = [0000000001 011101 ]2 + [0000000000 000001 ]2 = = ∑ L = ∑ L [0000000001 011110 ]2 = + 92 K 2 {[1111111110 100100 ] 2 } = [1111111110 100100 ] 2 + [ 0000000000 000001 ] 2 = [1111111110 100101 ] 2 = − 92 164 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.3 Komplementdarstellungen Subtraktion zweier n-stelliger Dualzahlen x - y (3. Fall) mit x > y, in B-Komplementdarstellung, mit B = 1, lässt sich durch Addition x + lösen. Zu subtrahierende Zahl y durch K1(y) dargestellt und addiert K1(y) zu x. Tritt an MSB Übertrag auf, wird dieser zum LSB hinzuaddiert. Beispiel 1.18. Sei x=179 und y=109, dann wird für x: 10110011 = 179 -y: -01101101 = 109 ⇒ x: 10110011 -0110 1101 Einerkomplement→ +10010010 K1(x):+ 10010010 mit dem Zwischenresultat 1 01000101. Der Übertrag wird zur niedrigsten Stelle hinzuaddiert 01000101 1. Daraus folgt 01000110 d.h. dezimal +70. = ∑ L 165 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.3 Komplementdarstellungen Beispiel 1.19. Für n = 5 Bit sind im B-Komplement, mit B = 2, die Zahlen von -15 bis +15 darstellbar. Addition der Zahlen 5 + 14 = 19 ergibt 5: 0 0101 +14: 0 1110 und als Resultat 1 0011. Das Ergebnis lautet -3 und nicht +19. Der Grund für den Unterschied liegt begründet in dem Umstand, dass +19 mit n = 5 Bit nicht darstellbar ist. = ∑ L = ∑ L Angemerkt werden soll, dass dieses Beispiel nur akademischen Charakter hat, da Rechner, welche z.B. das Zweierkomplement zur Durchführung arithmetischer Operationen nutzen, ein Overflow-Flag setzen. 166 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.4 Zahlenkonvertierung 1.4.3 Darstellung ganzer Zahlen In den gängigen Programmiersprachen werden ganze Zahlen als vom Datentyp integer, und gebrochene rationale Zahlen als vom Datentyp real notiert. Realzahlen werden als Gleitpunktzahlen oder Gleitkommazahlen bezeichnet. Befindet sich das Komma, (Punkt), an einer beliebigen aber festen Stelle spricht man von Festpunkt- oder Festkommadarstellung. = ∑ L = ∑ L Die Längenangabe (n, m) gibt dabei die Länge n des ganzzahligen und die Länge m des gebrochenen Anteils an. 167 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen In den gängigen Programmiersprachen werden ganze Zahlen als vom Datentyp integer, und gebrochene rationale Zahlen als vom Datentyp real notiert. Realzahlen werden als Gleitpunktzahlen oder Gleitkommazahlen bezeichnet. Befindet sich das Komma, (Punkt), an einer beliebigen aber festen Stelle spricht man von Festpunkt- oder Festkommadarstellung. = ∑ L = ∑ L Die Längenangabe (n, m) gibt dabei die Länge n des ganzzahligen und die Länge m des gebrochenen Anteils an. 168 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Festkommadarstellung: legt Komma auf eine bestimmte Stelle fest. bevorzugte Kommastellen für rechnerinterne Verarbeitung von Zahlen : → rechts der niedrigsten Stelle → alle Zahlen ganzrationale Zahlen → rechts der höchsten Stelle → alle Zahlen gebrochen rationale Zahlen. Beispiel: Bei Rechnern für das Banken- und Sparkassenwesen sei die kleinste zu verarbeitende Einheit 0,01Euro und die größte 99.999.999,99 Euro, die Register sind damit 10-stellig nach folgendem Schema: = ∑ L = ∑ L , Komma 169 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Beispiel 1.20. 371,05 Euro + 18,10 Euro = 389,15 Euro A-Register 00000371,05 B-Register 00000008,10 C-Register 00000389,15 Je nach der im x-stelligen Rechner festgelegten Kommastellung lassen sich Berechnungen in den entsprechenden Wertebereichen durchführen. Festkommadarstellung einer Zahl der Länge (n, m) zur Basis B hat allgemeine Form Z = [ Z n −1 ,..., Z 0 , Z −1 , Z − m ]B = ∑ L = ∑ L Ihr Wert ergibt sich demnach zu wert ( Z ) = n −1 ∑Z B i=− m 170 i i Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Beispiel 1.21. Sei B = 2 und Länge sei (2,4), dann ist (10,0100)2 die Festkommadarstellung der Zahl 2,25 mit der Länge (2,4) zur Basis 2 mit wert ( Z ) = 1 * 2 + 1 * 2 wert Z = 12*)(+ 1 −2 1 = 2 + = 2 ,25 4 Beispiel 1.22. Sei B = 2 und Länge sei (4,8), dann ist [101001001110]2 die Festkommadarstellung der Zahl 10,3046875 mit der Länge (4,8) zur Basis 2. Es gilt wert ( Z ) = 1 * 2 3 + 1 * 21 + 1 + 2 −2 + 1 * 2 −5 + 1 * 2 −6 + 1 * 2 −7 1 1 1 1 39 = 10 + + + + = 10 + = 10,3046875 4 32 64 128 128 = ∑ L = ∑ L Wird Komma rechts der Stelle mit dem niedrigsten Wert angenommen, gilt für Wort der Länge n = (zn-1,...z0)2 die Festkommadarstellung wert ( Z ) = n −1 ∑ i= − m 171 Z iB i Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Für ein Wort Z der Länge n = 8 lautet die Festkommadarstellung für Z = 10110010 = 1* 2 1 1 1 1 = + + + 2 8 16 128 172 −1 + 1* 2 89 = 128 = ∑ L = ∑ L −3 + 1* 2 −4 + 1* 2 −7 = 0 , 6953125 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Gleitkommadarstellung (halblogarithmische Darstellung) Zahl Z in der Form Z = ±M * BE±E dargestellt mit Mantisse M, Basis BE für Exponenten und E als Exponent der Darstellung. BE muss nicht notwendig mit Basis des Zahlensystems für M und E übereinstimmen. Zahlen in Gleitkommadarstellung werden durch Mantisse und Exponenten dargestellt wie folgt: { = ∑ L = ∑ L Mantisse M Exponent E ⇒ bei Gleitkommadarstellung wird ein Teil der bitwerten Registerstellen für die Darstellung der führenden Ziffern (Mantisse) und ein anderer Teil für die Darstellung des Stellenwertes (Dezimalkomma) verwendet; Dezimalkomma wird in Mantisse immer an der gleichen Stelle geschrieben, bezeichnet aber wegen des variablen Exponenten einen gleitenden Wert. 173 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Komma steht bei Gleitkommadarstellung vor höchster Mantissenstelle und der Exponent nach der Mantisse → Darstellungsform entspricht halblogarithmischer Darstellung, wenngleich Mantisse lediglich aus Ziffernstellen der Zahl und nicht aus ihrem Logarithmus besteht. Sind für Exponent nur zwei Stellen reserviert können bei dezimalem Exponenten mit Vorzeichen, nur 19 verschiedene Exponenten dargestellt werden +9, +8, ..., +0, -1, -2, ..., -9. In Rechnern sind in der Regel Basis B, Mantisse M und Exponent E sowie Basis BE der Darstellung festgelegt, weshalb Gleitkommazahl rechnerintern durch das Paar (± M, ± E) dargestellt werden kann. Gleitkommadarstellung einer Zahl ist nicht eindeutig, da beispielsweise die Zahl 4711,4712 wie folgt dargestellt werden kann = ∑ L = ∑ L 4711,4712 = 47,114712 * 10 2 = 0,47114712 * 10 4 = 47114712 * 10 −4 weshalb für Operationen mit Operanden mit verschiedenen Exponenten eine Anpassung erforderlich wird. 174 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Erfüllt Gleitkommazahl Z = ± M * BE± E die Voraussetzung 1 < M <1 BE wird sie normalisierte Gleitkommazahl genannt. Hierbei steht Komma links von der Mantisse, d.h. der ganzzahlige Anteil ist gleich 0 und die erste Ziffer (des Dezimalanteils) der Mantisse ist ungleich 0. = ∑ L 175 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Rechnerintern wird bei Gleitkommadarstellung Vorzeichen Exponent eingespart indem Exponent um bestimmte Zahl, sog. Charakteristik verändert wird, anstelle Exponent E wird Zahl C + E (C=Charakteristik) gespeichert; Charakteristik so gewählt, dass stets C + E ≥ 0 erfüllt ist. Bei Charakteristik von 50 wird der wahre Exponent E = 0 durch 50 ersetzt (C+E=50). Durch Einführen der Charakteristik kann darstellbarer Zahlenbereich wesentlich vergrößert werden. Sind z.B. 2 Stellen für den Exponenten reserviert, sind ohne Charakteristik nur 19 verschiedene Exponenten darstellbar, mit Charakteristik von 50 dagegen100 verschiedene Exponenten von 99, 98, ..., 01, bis 00 und dementsprechend +49, +48, ..., +00, -01, ..., -50. Charakteristik 00 Exponent -50 176 = ∑ L = ∑ L 50 99 00 49 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Zahl (4781,75)10 = 0.478175 ⋅ 104 soll im Gleitkommaregister mit Charakteristik dargestellt werden ,47817500 04 Exp. 54 Char. dto. 0,74*10.2 = ∑ L = ∑ L ,74000000 -02 Exp. 48 Char. 177 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Mit Hilfe von nur 2 Exponentenstellen können Wertebereiche von 10-50 bis 1049 dargestellt werden. Als Standard hat sich das IEEE Format zur Darstellung von Gleitkommazahlen durchgesetzt. VZ entspricht Vorzeichenbit; es ist 0, wenn dargestellte Zahl positiv ist und 1, wenn dargestellte Zahl negativ ist. VZ Exponent Mantisse Darstellung der Exponenten erfolgt durch Addition eines geeigneten Exzesses. Darstellung Mantisse erfolgt in normalisierter Form1), mit folgendem Unterscheidungsmerkmal: Zahl wird als normalisiert betrachtet, wenn sie Darstellung (1. xxxxxx) besitzt. Verwendete x stehen für 0 oder 1.Darstellung jeder norma-lisierten Zahl (außer 0) beginnt mit 1 → nichtnötig diese 1 abzuspeichern. Man speichert nur die auf die 1 folgenden Bit ab. Normierung für eine Gesamtlänge von 16, 32 und 64 Bit hat die dargestellte Zuordnung der Bitwerten Stellen. = ∑ L 1) = ∑ L Eine Gleitkommazahl, bei der die erste Stelle hinter dem Komma keine Null ist, heißt normalisiert. 178 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Wortlänge VZ EXPONENT MANTISSE 32 1 8 23 64 1 12 51 Darstellung Bitstellen gemäß IEEE Format = ∑ L 179 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Rechnerintern kann Darstellung normalisierter Gleitkommazahlen damit allgemeingültig angegeben werden. Sei BE = B = 2 und die Länge der darstellbaren Zahl n=32 liegt folgende Aufteilung der 32 Stellen für Gleitkommazahlen vor: = ∑ L = ∑ L Die ersten 24 Stellen bilden die Mantisse der Vorzeichendarstellung, d.h. die erste Stelle repräsentiert das Vorzeichen und die restlichen 8 Stellen den Exponenten im Zweierkomplement. 180 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Beispiel 1.24 Für die Bitfolge 0 11001111000010011000000 00001100 Mantisse Exponent lautet die normalisierte Gleitkommazahl [0,110011110000100011]2*212. Damit kann die rechnerinterne Darstellung der kleinsten positiven Zahl abgeleitet werden: 0 1 00000000000000000000000 10000000 Ihre normalisierte Gleitkommadarstellung ist (+1, -128), ihr Wert ist 0,5*2-128. Demzufolge lautet die rechnerinterne Gleitkommadarstellung der größten positiven Zahl 0 1 11111111111111111111111 01111111. = ∑ L = ∑ L Ihre normalisierte Gleitkommadarstellung ist [+11111111111111111111111,+127] und ihr Wert (1-2-23)*2-127 23 denn es gilt: 1 − ( 12 ) 23 1 i 1 (2) = 2 ⋅ -23 1 wert [0,11111111111111111111111]= ∑ = 1-2 1 − 2 i =1 181 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Beispiel 1.25 Bei Länge n = 32 sowie BE = B = 2 können mit der dargestellten Aufteilung positive Zahlen Z mit 0,5*2-128< Z < (1-2-23)*2-127 normalisiert dargestellt werden. Analog ergibt sich für die negativen Zahlen Z der Darstellungsbereich = ∑ L = ∑ L -(1-2-23)*2-127 < Z < -0,5*2-128. 182 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.5 Darstellung von Zahlen Aus Beispiel 1.25 ist ersichtlich, dass Zahlen Z mit -0,5*2-128 < Z < 0,5*2-128 nicht darstellbar sind, da 0 nicht darstellbar ist. Zur Darstellung der 0 wird rechnerinterne Hilfsdarstellung eingeführt: 0 xxxxxxxxxxxxxxxxxxxxxxx 0000 0000 Mantisse wobei Inhalt Mantisse x... ...x irrelevant ist. Bei normalisierter Gleitkommadarstellung mit BE = B = 2 ist erste Stelle der Mantisse immer 1 → braucht nicht gespeichert werden, es liegt hidden bit vor. Bitfolge 0 00000000000000000000000 00000000 Mantisse Exponent = ∑ L = ∑ L entspricht nicht rechnerinterner Darstellung von 0, 0 stellt normalisierte Gleitkommazahl (+1,0) mit dem Wert 1 *2 2 = 1 =0,5 dar. 2 183 2 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.6 Umwandlung von Zahlensystemen Umwandlung ganzzahligen Anteils von Zahlen beliebiger Basis in Dezimalzahlen an-1 = Z1 Z1 ⋅ B + an-2 = Z2 Z2 ⋅ B + an-3 = Z3 Umwandlung des echt gebrochenen Anteils von Zahlen beliebiger Basis in Dezimalzahlen a-m = Z1 Z1 | B + a-(m-1) = Z2 Z2 | B + a-(m-2) = Z3 . . . . . . 2n-2 ⋅ B + a1 = Zn-1 2n-1 ⋅ B + ao = Zn = ∑ L Zm-1 | B+a-1 = Zm Zm |B = Zn ≅0 = ∑ L allgemeingültig für die Umwandlung von Zahlen ins Dezimalsystem: ⇒ [an-1 an-2 an-3 ... a1 ao, a-1 a-2 ... a-m] =ˆ [((((( a n −1 B + a n − 2 ) B + a n − 3 ) B + ...) B + a1 ) B + a o ) + ((( a −m / B + a −( m−1 ) / B + ...) / B + a −1 ) / B ) 184 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.6 Umwandlung von Zahlensystemen Dezimalzahl 109,78125 ist in Dualzahl umzuwandeln 109/2 = 54 Rest 1 54/2 = 27 Rest 0 27/2 = 13 Rest 1 13/2 = 6 Rest 1 6/2 = 3 Rest 0 3/2 = 1 Rest 1 ½ = 0 Rest 1 0,78125⋅ 2 = 0,56250 + 1 0,56250⋅ 2 = 0,12500 + 1 0,12500⋅ 2 = 0,25000 + 0 0,25000⋅ 2 = 0,50000 + 0 0,50000⋅ 2 = 0,00000 + 1 109,78125dez ≅ 1101101, 11001dual = ∑ L 185 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.6 Umwandlung von Zahlensystemen 111000,011 ist in eine Dezimalzahl umzuwandeln. B Z1 B a-m Z1 | a n - 1 1= 1 1=1 1⋅2+1= 3 3⋅2+1= 7 7 ⋅ 2 + 0 = 14 14 ⋅ 2 + 0 = 28 28 ⋅ 2 + 0 = 56 1 / 2 + 1 = 1,5 1,5 / 2 + 0 = 0,75 0,75 / 2 + 0 = 0,375 (≅ o,) = ∑ L = ∑ L 111000,011dual ≅ 56,375 Dez 186 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.6 Umwandlung von Zahlensystemen Oktalzahl 374,24 ist in eine Dezimalzahl zu wandeln 3 = 3 3 . 8 + 7 = 31 31 . 8 + 4 = 252 4 = 4 4 / 8 + 2 = 2,5 2,5 / 8 + 0 = 0,3125 = ∑ L 374,24 Oktal 187 = ∑ L ≅ 252,3125 Dezimal Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.6 Umwandlung von Zahlensystemen Umwandlung echter Dezimalbrüche in Zahlen beliebiger Basis Umwandlung ganzer Dezimalzahlen in Zahlen beliebiger Basis S Z1 Z2 / B = Z1 / B = Z2 / B = Z3 Rest a0 Rest a1 Rest a2 S ⋅ B = Z1 + a-1 Z1 ⋅ B = Z2 + a-2 Z2 ⋅ B = Z3 + a-3 . . . Zn-2 / B = Zn-1 Rest an-2 Zn-m / B = 0 Rest an-m . . Z m-1 ⋅ B = Zm + a-(m-1) Zm ⋅ B = Zn + a-m = ∑ L 188 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.6 Umwandlung von Zahlensystemen 109,78125 Dez ist in eine Binärzahl und eine Oktalzahl umzuwandeln. 109/2 = 54 Rest 1 0,78125 · 2 = 0,5625 54/2 = 27 Rest 0 0,5625 · 2 = 0,125 27/2 = 13 Rest 1 0,125 · 2 = 0,25 13/2 = 6 Rest 1 0,25 · 2 = 0,5 6:2 = 3 Rest 0 0,5 · 2 = 0,0 3:2 = 1 Rest 1 1:2 = 0 Rest 1 ≅ 109,78125Dez = ∑ L 1 1 0 0 1 1101101,11001 binär = ∑ L 109/8 = 13 Rest 5 13/8 = 1 Rest 5 1/8 = 0 Rest 1 0,78125 · 8 = 0,25 + 6 0,25 · 8 = 0,0 + 2 109,78125 Dez 189 + + + + + ≅ 155,62 oktal Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Rechenwerk des Digitalrechners muss in der Lage sein mindestens drei Operationen auszuführen: • Addieren zweier Zahlen • Komplementbildung einer Zahl • Stellenverschiebung einer Zahl. Die letzten beiden Funktionen sind technisch relativ einfach realisierbar. Stellenverschiebung benötigt Schieberegister; Komplementbildung entsprechende Anzahl von Invertern. Informationsverarbeitende Aufgabe wird im Rechenwerk durchgeführt, in dem die Addition stattfindet. Man spricht von Addierwerk. Kernstück des Addierwerkes ist binärer VA, der die Summe a+b(modulo2) bildet. = ∑ L 190 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Annahme: Addierwerk verfüge über drei binäre Eingangsvariable Aj, Bj und Üj-1 die zur Summe Cj und Üj (Übertrag) verknüpft werden sollen. Symbol des VA: Aj Bj Üj-1 VA Cj Üj Üj-1: Übertrag, der aus der Addition der Stellen Aj-1 und Bj-1 entstanden ist. Übertrag Üj muss bei Addition der Stellen Aj+1 und Bj+1 berücksichtigt werden. Volladdierer ist in der Lage, die Summe A+B(modulo2) einschließlich Übertrag zu bilden, aber nur für Operanden mit 1 Bit Wortlänge. = ∑ L = ∑ L Wie sind Rechenwerke beschaffen, die mehr stellige Maschinenworte verarbeiten ? 191 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Operanden A und B liegen vor in • reiner Binärcode: 1100001, 1; • 8-4-2-1-Code: 1001 0111, 0101; • Exzeß-Code: 1100 1010, 1000; • AIKEN-Code: 1111 1101, 1011 dann kann man bitserielles Rechenwerk mit nur einem einzigen VA aufbauen Neben VA werden noch drei Schieberegister (A-, B- und C-Register) sowie ein Speicher für den jeweiligen Übertrag (Ü-Speicher) benötigt. Rechenwerk • Durchführung elementarer arithmetischer und logischer Operationen und verfügt über mehrere Register. • Register werden durch Adressen ausgewählt und nehmen die Operanden (Variablen oder Konstanten) auf, die miteinander verknüpft werden sollen. • Steuerbares Schaltnetz/Rechenwerk/ALU kann jeweils 2 Registerinhalte miteinander verknüpfen und das Ergebnis auf den Registerblock zurückschieben. = ∑ L 192 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Addierer: logische Schaltungen, die Dualzahlen addieren ⇒ einfachste Form, HA, zählt zwei einstellige Dualzahlen zusammen e2 S C e1 0 0 1 1 0 1 0 1 00 01 01 00 1 Sind e1 und e2 gleich eins entsteht Übertrag in die nächst höhere Stelle, weshalb HA zwei Ausgänge benötigt Boolesche Funktion: S = e1 ⊕ e2 C = e1 ∧ e2 = ∑ L = ∑ L ⊕: = Antivalenz ⇒ XOR = e1 ⊕ e2 ; besteht aus 2 UND und 1 ODER Grundgatter, jeweils 1 Eingang des UND Gatters ist invertiert 193 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken e1 e2 Halbaddierer = ∑ L S C = ∑ L Halbaddierer 194 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken VA: bildet Summe S und Übertrag C Si = e1i ⊕ e2i ⊕ Ci-1 Ci = (e1i ∧ e2i) ∨ (Ci-1 ∧ (e1i ⊕ e2i)) ⊕: = Antivalenz ⇒ XOR = e1 ⊕ e2 ; besteht aus 2 UND und 1 ODER Grundgatter, jeweils 1 Eingang des UND Gatters ist invertiert VA: besteht aus 2 HA HA: besteht aus je einem UND und einem ODER Grundgatter = ∑ L = ∑ L VA: besteht aus 2 UND und 3 ODER Grundgattern HA und VA können durch Wertetabelle beschrieben werden 195 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken 196 e1i e2i Ci-1 Ci Si 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 = ∑ L = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken = ∑ L = ∑ L Volladdierer 197 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken = ∑ L = ∑ L e1 e2 Ci-1 Volladdierer = ∑ L Si Ci = ∑ L Volladdierer 198 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Blockschaltbild zur Erhöhung der Übersichtlichkeit; enthält • Eingänge, • Ausgänge, • Funktion(en). Nur Funktionalität bekannt, nicht aber Struktur ⇒ Black Box = ∑ L = ∑ L Blockmodule lassen sich einfach kombinieren. 199 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken = ∑ L = ∑ L Paralleladdierer Schaltung repräsentiert Paralleladdierer, kann als Einheit aufgefasst und einzelnes Schaltelement dargestellt werden. 200 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken = ∑ L = ∑ L Blockschaltbild 4-bit Paralleladdierer Ein- und Ausgänge bei 0 beginnend bis n-1 nummeriert. Summe S = B1 + B2, wobei B1 und B2 mit Binärzahl 1 und Binärzahl 2 aus vorheriger Abbildung übereinstimmen, exemplarische Wortbreite n = 4. 201 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Hardwarerealisierung der arithmetischen Grundoperation Addition wird im Rechenwerk mit Festkomma-Arithmetik z.B. durch Ripple-Carry Array-Addierer (Lehrbuch Kap. 4.4) ermöglicht. Komponenten dieser Rechenarithmetik, berechnen die Summe der n-Bit-Zahlen xn-1,...x0 und yn-1, ...y0, sind Addierer. Addierer addiert die eingangsseitig anliegenden Zahlen xi und yi und erzeugt die Summe si und den Übertrag ci als Ausgang: und si = (xi + yi)mod2 ci = (xiyi)/2 mit und als Ebenen-Funktion. Die logischen Gleichungen dieser Rechenarithmetik lauten und si = xiyi. + xiyi. = xi ⊕ yi ci+1 = xiyi. 202 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken = ∑ L = ∑ L = ∑ L = ∑ L Ripple Carry Addierer, aufgebaut aus n VA 203 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Meist besitzt Rechenwerk einen Shifter (Schiebeeinrichtung) mit der Datenbits um eine Stelle nach links oder rechts verschoben werden können. Shifter besonders nützlich, wenn zwei binäre Zahlen multipliziert oder dividiert werden sollen, und die ALU nur addieren kann. Status-Register dient zur Anzeige besonderer Ergebnisse, die das Leitwerk auswertet, um z. B. bedingte Verzweigungen in Steueralgorithmen für Makrobefehle auszuführen. Die einzelnen Bits des Status-Registers bezeichnet man als Flags. Das StatusRegister kann wie ein normales Daten-Register gelesen und beschrieben werden. = ∑ L 204 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Sind im Rechenwerk adressierbare Daten-Register vorhanden, spricht man von einer Registerarchitektur. Die Daten-Register bilden einen Registerblock oder ein Register-File (wenn sehr viele Register vorhanden sind, wie z. B. bei RISCProzessoren). Bei den Registerarchitekturen – sie bilden die überwiegende Basis heutiger Prozessoren, Stackarchitekturen werden selten benutzt – unterscheidet man Ein,- Zwei- und Dreiadress-Maschinen. Der Adresstyp wird von der Zahl der internen Daten- und Adressbusse bestimmt, die den Registerblock mit der ALU verbinden. Je mehr Daten-Register angewählt werden können, umso weniger Taktzyklen werden zur Ausführung eines Maschinenbefehls benötigt. = ∑ L 205 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Beispiel 1.27 Rechenwerk Einadress-Maschine, d.h. arithmetisch-logische Einheit und zugehöriges Registerfeld, wird nur mit internen, in der Regel bidirektionalen, Datenbus verbunden. Abarbeitung eines Maschinenbefehls mit EinadressMaschine erfordert 3 Takte (Taktzyklen). Zunächst werden die beiden Operanden in die Latch-Register geschrieben. Da immer nur ein Operand pro Takt aus dem Registerfeld gelesen werden kann, benötigt man für beide Operanden 2 Taktzyklen. Im dritten Taktzyklus wird das Ergebnis der Verknüpfung vom Ausgang der ALU in das Registerfile geschrieben. = ∑ L = ∑ L Rechenwerk einer Einadress-Maschine 206 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Bei der Einadress-Maschine ist in der Befehlscodierung bereits implizit festgelegt, welches Register als Quelle bzw. als Ziel der Operation genutzt wird. Vorteilhaft bei der Einadress-Maschine ist die teilweise mögliche implizite Operandenangabe und ihre einfache Architektur, nachteilig ist hierbei jedoch das erforderliche zentrale Register, welches stark frequentiert wird und damit ggf. einen Engpass für die Zwischenspeicherung darstellt. = ∑ L 207 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Beispiel 1.28 Dreiadress-Befehl SUB R1, R2, R3 soll auf einer Einadress-Maschine ausgeführt werden Bei Zweiadress-Maschine kann der gleiche Befehl in zwei Taktzyklen ausgeführt werden da die Register A und B gleichzeitig geladen werden. Zweiadress-Maschinen können als Register-Speicher-Architekturen realisiert sein, bei der sowohl das Register als auch die Speicheradresse explizit angegeben werden. Vorteilhafterweise können bei Zweiadress-Maschine Daten ohne Ladezugriff für Operationen genutzt werden, was den Nachteil hat, dass Ladezugriffe im Speicherbereich mehr Zeit benötigen, was ggf. zu einer Verzögerung gegenüber Registerzugriff führt. = ∑ L 208 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Beispiel 1.28 Taktzyklus Operation 1 2 3 209 R1→ A = ∑ L R2 → B = ∑ L F → R3 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Beispiel 1.29 Auf einer Dreiadress-Maschine kann ein Dreiadress-Befehl in einem Taktzyklus ausgeführt werden, da sowohl für die Operanden als auch für das Ergebnis ein eigener Datenbus bereitsteht, der separat adressiert werden kann, wie dargestellt ■. = ∑ L = ∑ L Abb. 4.7. Rechenwerk Dreiadress-Maschine z.B. beim RISC Prozessor 210 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Maschinenbefehlssatz enthält Befehle unterschiedlichen Formats, dargestellt als Ein-, Zwei- oder Dreiadress-Befehle. Befehle werden in Felder aufgeteilt, wobei folgender Zusammenhang besteht: Je mehr Adressfeldern Befehl enthält, desto kleiner ist, bei fester Befehlslänge, die Anzahl der Registerzellen die adressiert werden können, bzw. um so weniger Befehle können im Operationsfeld des Befehlsformats, dem Operationscode, definiert werden. Für die Registerzellen eines 32 Bit Prozessors sei folgendes Befehlsformat angenommen: = ∑ L = ∑ L 31 - 26 26 - 22 21 - 17 16 - 12 12 11 10 - 0 OP R3 R2 R1 C x Adresse/Wert OP: Ri : C/X: Adresse/Wert: 211 Operationscode bzw. Befehlscode für eine Operation spezielle Register Modifikationsteil, setze/setze nicht Bedingungscode Adresse bzw. den Wert des Operanden Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Um ohne Adressfelder im Maschinencode auszukommen müssen sich Befehle indirekt auf spezielle Register beziehen. Prozessor mit diesem Maschinenbefehlsformat wird Null-Adress-Maschine bzw. Stack Maschine (Stack = Stapel) bezeichnet. Stack Maschine speichert Quelloperanden und Zieloperanden auf dem Stack, dort wird wieder auf sie wieder zugegriffen. Zugriff kann implizit erfolgen, beispielsweise in einer festgelegten Reihenfolge. Vorteil Stack Maschine besteht darin, dass keine explizite Angabe von Operanden erforderlich ist, was in einer minimalen OP-Codelänge für die Arithmetikbefehle resultiert. Nachteil Stack Maschine liegt begründet in den erforderlichen umfangreichen Austauschoperationen vom und zum Stack, was ggf. in wachsender Codegröße resultieren kann = ∑ L = ∑ L Operationscode, in Kurzform OP-Code, gibt an, welche Operation ausgeführt werden soll. Normalerweise belegt ein Maschinenbefehl genau ein Speicherwort, dann ist Kennung C/X gleich 0. Umfasst ein Befehl 2 Worte ist Kennung C/X für einen Doppelwortbefehl gesetzt. Adresse kennzeichnet Speicherplatz, wo der Wert des Operanden zu finden ist 212 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Tabelle 4.1. Operationscode und seine unterschiedlichen Darstellungsformen Bedeutung der Operation Mnemotechnische Bezeichnung OP Code Dual Hexadez. 0000 0 Halt, Ende der Programmabarbeitung HLT 0001 1 Lader Operand in den Akkumulator LAD 0010 2 Speichere Inhalt des Akkumulators nach der angegebenen Adresse SPI 0011 3 Addiere Operand zum Akkumulator ADD 0100 4 Subtrahiere Operand vom Akkumulator SUB 0101 5 Multipliziere Operand mit Akkumulator MUL = ∑ L = ∑ L 0110 6 Dividiere Akkumulator durch Operanden DIV 0111 7 Unbedingter Sprung JMP 1000 8 Sprung, wenn der Inhalt des Akkumulators gleich Null ist JEZ 1001 9 Sprung, wenn der Inhalt des Akkumulators größer oder gleich Null ist JGZ 1010 A Sprung, wenn der Inhalt des Akkumulators kleiner Null ist JLZ 213 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Beispiel 1.31 Subtraktionsbefehl SUB r5,r9,r21 Zugehöriger Binärcode lautet: 00100 10101 01001 00101 100001010001 Bei Befehlsausführung des Befehls wird Inhalt des Quellregisters r5 (Operand) vom Inhalt des Quellregisters r9 (Akkumulator) subtrahiert und in das Zielregister r21 geschrieben. Beispiel 1.32 CALL-Befehl CALL (r17), (r5, r6) Zugehöriger Binärcode lautet: 10001 10001 00110 00101 1xxxxxxxxxxx Bei Befehlsausführung wird Inhalt des Befehlszählers in das Register geladen, auf die der Stackpointer (r17) zeigt, dies ist das Register R1. Der Inhalt des Indexregisters r6 (entspricht Register R2) wird zu dem des Basisregisters r5 (entspricht dem Register R3) addiert, woraus die Adresse des Befehls resultiert, die dann in den Befehlszähler geladen wird. = ∑ L 214 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Auf die Schicht der Maschinensprache folgt Betriebssystem Schicht → bewirkt wesentlichen Sprung in der Komplexität der virtuellen Maschine → neben der Implementierung wichtiger Funktionen, zur Kontrolle der Hardware, vor allem Verwaltung der Ressourcen eines Rechners, (Prozessoren, Speicher, periphere Geräte etc.) Aufgabe des Betriebssystems. Betriebssystem selbst ist spezielles Programmsystem, welches ganz oder teilweise in einem separaten Teil des Arbeitsspeichers gehalten Wird ⇒ im Prinzip eine Art Interface zwischen dem Anwender bzw. seinem Anwendungsprogramm sowie der Rechner-Hardware. Dazu umfasst es eine Vielzahl von Programmen, die System-Software. 215 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Bereitstellung und Verwaltung eines File-Systems welches es Benutzer ermöglicht, umfangreiche Programme oder Daten auf Sekundärspeichern zu halten, Überwachung und Verwaltung der Hardware- und Software Betriebsmittel. Bearbeitung aller Anwendungsprogramme, insbesondere deren überlappende Ausführungsreihenfolge, Überwachung der Prozessor Auslastung sowie deren Optimierung, Behandlung von Hard- und Softwarefehlern sowie Datensicherung bei Systemfehlern, Steuerung interner Diagnoseläufe, Kommunikation mit dem Anwender vermittels Editor, Compiler, Assembler, Linker, Lader, Debugger, etc, Mehrprozessor-Systeme und verteilte Betriebssysteme. 216 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Eine heute weit verbreitete Organisationsform des Betriebssystems ist diejenige, im Speicher einen Betriebssystem-Kern, einen Kernel, zu halten, der die wichtigsten auszuführenden Funktionen bzw. Operationen bereitstellt, aus denen, bei Bedarf, weitere abgeleitet werden können. Derartige Betriebssystem-Kerne sind in der Regel als Ansammlung nebenläufiger Prozesse realisiert, wobei unter einem Prozess ein Programm oder eine Menge von Programmen verstanden wird, die bei Verfügbarkeit des Prozessors ausgeführt werden können. 217 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Schicht Assemblersprachen repräsentiert maschinennahe Sprachen Anweisung in Assemblersprache entspricht Maschinen-Instruktion, d.h. Anweisung kann direkt von der Maschine ausgeführt werden. Assembleranweisungen nicht in Maschinensprache angegeben, d.h. in Sprache, in der die Anweisungen durch entsprechende Bitfolgen repräsentiert werden, sondern in Form mnemotechnischer Symbole, einer für den Anwender besser lesbaren Form. Übersetzung Assemblerprogramm in Maschinenprogramm durch Assemblieren. Während des Assemblierens führt Assembler u. a. folgende Aufgaben aus: a Syntaxüberprüfung des Assemblerprogramms, a Ausführung der im Programm enthaltenen Pseudo-Befehle, a Übersetzen der Assembler-Anweisungen in Maschinensprache-Anweisungen (Maschinenprogramm), a Umwandeln der symbolischen Adressen (Marken, Variablen, Bezeichner) in numerische Adressen. 218 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken a Befehlsvorrat Assemblersprachen im wesentlichen von Prozessorarchitektur abhängig. Neben Befehlsvorrat unterscheiden sich auch die mnemotechnischen Symbole in den unterschiedlichen Assemblersprachen. a Durch Assemblersprachen definierte virtuelle Maschine vorhanden mit der Möglichkeit, Maschinenprogramme für beliebiges Prozessorsystem mit peripheren Netzwerkfunktionen schreiben zu können; Assembler gleicht vorhandene Schwierigkeiten im Umgang mit relativ einfachen Maschinensprache aus. Virtuelle Maschine (Programm) bildet Sprachelemente der symbolischen Assemblersprache auf die entsprechenden Maschinenbefehle und System Calls ab, wodurch aus Quellcode (Source Code) ein ausführbares Maschinenprogramm gewonnen wird. An dieser Stelle kann auf Anwendungsprogramme aufgesetzt werden. 219 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken a Erweiterung der Assembler Schicht ist die Schicht der höheren Programmiersprachen, die ein in seiner Funktionalität festgelegtes Übersetzungsprogramm (Compiler), geschrieben in Assembler, definiert, womit eine virtuelle Maschine vorhanden ist, welche die jeweilige Programmiersprache unterstützt, z.B. PASCAL, MODULA-2, ADA, C, C++, etc. Diese Schicht ist Basis für den Einstieg in den anwendungsbezogenen Entwurf. a Die nächste Schicht umfasst entweder spezielle Werkzeuge für Computer Aided Software Engineering (CASE) oder die Anwendungsprogramme. 220 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Beispiel Leistungsunterschied bzw. Programmieraufwand zwischen höherer Programmiersprache und Assemblersprache soll vergleichend betrachtet werden. Dazu sei folgender Befehl in einer höheren Programmiersprache angegeben: IF (A-B) GREATER THAN 0 THEN C=D ELSE C=2*A+D Um diesen Befehl in einer niedrigeren Programmiersprache zu erzeugen, ist eine Routine mit einigen Zeilen Quellcode erforderlich. 221 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Assemblerprogramm könnte lauten, vorausgesetzt ist dabei dass zwei Akkumulatoren A und B verfügbar sind : Byteanzahl 1 CBA (Vergleiche Akkumulatoren A, B) 2 BLE ALTB (Verzweige, wenn (A-B) ≤0 ist) 2 AGTB LDA A MEMD (Hole D aus dem Speicher nach A) 2 BRA NEXT ( Gehe zur nächsten Instruktion) 2 ALTB ASL A (A = 2*A) 2 ADD B MEMD (Addiere D zu 2*A) 1 next sta a memc (speichere Ergebnis in C) 222 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.2.7 Grundstruktur von Rechenwerken Der von dieser in Assemblersprache geschriebenen Routine benötigte Speicherplatz kann direkt, d.h. durch Abzählen der Byteanzahl, ermittelt werden, wobei • 1 Byte für jeden OP Code, • 1 bzw. 2 Byte für jeden Operanden erforderlich sind. Für die in Assembler geschriebene Routine sind bei einem direktem Adressierverfahren 12 Byte erforderlich und 15 Byte bei vollständiger Adressierung. Im Vergleich zum Assembler ist der Speicherplatz beim Einsatz einer höheren Programmiersprachen nicht so einfach zu berechnen, weil die Übersetzung indirekt erfolgt.■ 223 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.Grundbegriffe der Informationsverarbeitung 1.1 Information 1.1.1 Repräsentation 1.1.2 Kommunikation 1.1.2 Systembegriff 1.2 Zahlensysteme 1.3 Codierung 224 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung 1.3 Codierung 1.3.1 Grundlagen der Codierung 1.3.2 Lineare Codes 1.3.3 Zyklische Codes 225 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3.1 Grundlagen der Codierung Grundlagen der Codierung Codierung ⇒ Abbildung von einer Zeichensprache auf eine andere. Begriff Codierung dergestalt benutzt, dass einzelne Zeichen des Quellalphabets auf Zeichenfolgen des Zielalphabets abgebildet werden (z.B. ß und Beta, 1 und Eins, etc.). So erhaltene Zeichenfolge heißt Wort. Menge aller Wörter der Zielsprache, die durch diese Abbildung getroffen werden, nennt man Code. Code repräsentiert Zuordnungsvorschrift für Zuordnung der einzelnen Zeichen, Zeichen z1 eines Zeichenvorrats Z1, der zur Darstellung von Information dient, zu den Zeichen z2 eines Zeichenvorrats Z2 mit dem dieselben Informationen dargestellt werden können. = ∑ L = ∑ L Nach DIN 44300 ist der Begriff Code wie folgt definiert: Ein Code ist eine Vorschrift für die eindeutige Zuordnung der Zeichen eines Zeichenvorrates zu denjenigen eines anderen Zeichenvorrates. 226 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Beispiel: Zeichenvorrat Z1 bestehe aus Zeichen A, B, C, D; Z2 umfasst Zeichen 0 und 1. Zwischen Z1 und Z2 sei folgende Zuordnungsvorschrift festlegbar. Z1 Z2 -------------------A 00 B 01 C 10 D 11 d.h. alle Informationen die mit den Zeichen A, B, C, D wiedergegeben werden können, kann man auch durch 0 und 1 darstellen und vice versa = ∑ L = ∑ L Im Prinzip können Zeichenvorräte Z1 und Z2 von beliebigem (endlichen) Umfang sein 227 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Abhängig davon, ob Wortlänge des Codes für alle Wörter gleich ist oder nicht, spricht man von Codes mit fester oder variabler Wortlänge. Codes mit variabler Wortlänge haben den Vorteil, dass Zeichen, die öfter vorkommen, auf kürzere Wörter abgebildet werden können als solche, die weniger oft vorkommen, wodurch die übertragene Datenmenge reduziert werden kann. = ∑ L 228 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Beispiel: Code mit variabler Wortlänge ist der Morse-Code. Das Alphabet des Morse-Codes umfasst die drei Zeichen . - Pause. Das Pausenzeichen wird verwendet, um einen verschlüsselten Text eindeutig decodieren zu können. Wurzel . E . I . A - . U - H W V R . L W . - P N - . = ∑ L S T . - . - - J M . - = ∑ L D . - B K . X . - C G Y - Z O Q Abb.1.5. Codebaum des Morsealphabetes 229 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Im Codebaum lässt sich jedes codierte Wort finden, von der Wurzel ausgehend zum zu codierenden Buchstaben fortschreitend werden die auf diesem Weg liegenden Punkte und Striche notiert. Beispiel: Verschlüsselung der Buchstabenfolge SOS: ... --- ... Wurzel . E . . S . U - H 230 W V R . L . - P N - . W J - = ∑ L A . - T . = ∑ L I - D . - B X Rechnerstrukturen Teil 1 . K . Y - G . - C M - Z O Q Prof. Dr. Möller 1.3 Codierung Ziel des Morse-Codes: Häufig auftretende Buchstaben durch möglichst kurze Punkt-Strich-Folgen verschlüsseln. Beachte: Übertragung eines Striches dauert etwa dreimal solange wie Übertragung eines Punktes. Im Morse-Code sind Zeichen des einen Zeichenvorrats, die Buchstaben des Alphabetes, und die Zeichen des anderen Zeichenvorrates, die entsprechenden Punkt-Strich-Kombinationen. Diese Form der Codierung ist direkt umkehrbar. Ebenso direkt umkehrbar ist die Codierung der Dezimalzahlen durch Dualzahlen. = ∑ L 231 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Zur Codierung werden Zeichen eingesetzt. Zeichen ist ein Element aus einer vereinbarten endlichen Menge von Elementen, die Menge wird Zeichenvorrat bzw. Alphabet genannt. In der Informatik repräsentiert ein Alphabet nicht nur die Menge der in der jeweiligen Schriftart verwendeten Buchstaben, sondern jeden geordneten, zur Informationsdarstellung geeigneten Zeichenvorrat, weshalb zusammenfassend gilt: • zur Übertragung von Information bedient man sich einer Sprache • jede Sprache hat bestimmte Regeln, nach denen eine Information aufgebaut sein muss • diese Regeln werden mit Grammatik = Syntax bezeichnet • eine in einer Sprache vorliegende Information ist (meist) aus Zeichen zusammengesetzt • die Menge aller unterschiedlichen Zeichen einer Sprache heißt Alphabet = ∑ L 232 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Beispiele für Zeichen, aus denen sich die Menge aller unterschiedlichen Zeichen einer Sprache bilden lassen, sind • Buchstaben, • Interpunktionszeichen, • mathematische Zeichen, • Ziffern, • etc. Ziffer ist die Bezeichnung (Name, Symbol) einer Zahl, während Zahl selbst ein mengentheoretischer Begriff ist. Jede Zahl ist Abstraktion (Abstraktionsklasse) gleich mächtiger Mengen; demgegenüber ist Ziffer lediglich ihre Benennung. Unter semiotischen Gesichtspunkten ist Ziffer ein sprachliches Zeichen, das einer Menge von Zeichen angehört. Kardinalzahl dieser Menge unterschiedlicher Zeichen ist die sog. Basis der mit diesen Ziffern durchzuführenden Zahlendarstellung (Semiotik). = ∑ L 233 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Enthält Menge lediglich zwei unterschiedliche Ziffern, 0 und 1, liegt das duale Zahlensystem bzw. das binäre Alphabet (binär = zweiwertig) vor, mit den Zeichen 0,1. Bei 10 unterschiedlichen Ziffern (0,1,2,3,4,5,6,7,8,9) liegt das denäre Alphabet (denär = zehnwertig) vor, mit den Zeichen 0,1,...,8,9. Weitere Alphabete sind das alphabetische Alphabet mit den Zeichen A,B,...Y,Z, Ä,Ö,Ü, a,b,...,y,z,ä,ö,ü und das alphanumerische Alphabet mit den Zeichen A,B,...,Y,Z und 0,1,...,8,9. = ∑ L 234 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Sei N Umfang des Zeichenvorrates X und die Menge der Informationselemente N = 2n, dann ist die binäre Informationsmenge BI = ldN (Bit). Beispiel Alphabetische Alphabet enthält 26 verschiedene Informationselemente: N = 26. Die binäre Informationsmenge BI ist BI = ld N = ld 26 = 4,7 Bit ≈ 5 Bit. Fünfstelliges Codewort gestattet Darstellung von 25 = 32 Informationselementen, wovon aber nur 26 für das lateinische Alphabet ausgenutzt werden. Der Überschuss von 6 nicht benötigten Zeichenkombinationen ist die Redundanz, hier als unvermeidliche Redundanz bezeichnet, da 4 Bit = 16 Informationselemente nicht ausreichend sind, 5 Bit aber zu viele Zeichenkombinationen ergeben. Redundanz des lateinischen Alphabetes beträgt R = 5 Bit - ld 26 = 5 - 4,7 = 0,3 Bit. = ∑ L 235 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Die mit Zeichen aufgebauten Zeichenverbände sind nach bestimmten Regeln (Grammatik = Syntax) aufgebaut. Die Zeichenverbände selbst werden als Wörter bezeichnet. Wort bedeutet eine Folge von Zeichen, die einen bestimmten Zusammenhang (Syntax), eine Einheit, bilden. Damit entspricht das Wort 001001 der Zahl 9 im Dualsystem. Den Teil eines Wortes, der einen Unterverband darstellt, nennt man Silbe. Beispiel 1.30. BAHN HOF 1.Silbe 2.Silbe = ∑ L = ∑ L 10 00100 = Ziffer 2 im Biquinärcode 1. Silbe (Binärteil) 2. Silbe (Quinärteil) 236 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung BCD-Code Binär-dezimaler Code entspricht Code bei dem die zehn Dezimalziffern 0 bis 9 durch Kombinationen von Binärstellen (Bits) codiert werden ⇒ BCD: Binär Codierte Dezimalziffern Bei binär-dezimaler Codierung entspricht jedem binären Element eine definierte Informationsmenge, deren Einheit 1 Bit ist (1 Bit = Kurzbezeichnung der Informationsmenge einer Binärstelle). 0000 = 0 = 4 Bit = 4 Binärstellen = 1 Wort 0001 = 1 = 4 Bit = 4 Binärstellen = 1 Wort 0010 = 2 = 4 Bit = 4 Binärstellen = 1 Wort ….. 1001 = 9 = 4 Bit = 4 Binärstellen = 1 Wort 1010 = - = 4 Bit = 4 Binärstellen = 1 Wort ….. Pseudotetraden 1111 = - = 4 Bit = 4 Binärstellen = 1 Wort = ∑ L = ∑ L Zustände 0,1 einer Binärstelle lassen sich durch die Informationselemente i1 und i2 darstellen; 2 Binärstellen (Bits) ermöglichen durch Kombination die Darstellung von 4 Informationselementen i1, ..., i4. Durch n-stelliges Codewort sind 2n Informationselemente darstellbar. 237 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung • Ein Code ist die (zumeist) umkehrbare eindeutige Zuordnung der Menge M1 der darzustellenden Informationselemente zu der Menge M2 von Zeichenkombinationen (Codeworte). • Haben alle Codeworte die mittlere Wortlänge L, dann handelt es sich um einen gleichmäßigen Code und die Menge der möglichen Zeichenkombinationen (Umfang des Zeichenvorrates) wird N = 2n. • Werden alle 2n Codeworte verwendet, d.h. ist M1 = M2, dann spricht man von einem vollständigen Code oder einem Code ohne Redundanz. = ∑ L 238 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Gray-Code Gray Code dadurch gekennzeichnet, dass sich Codierung zweier benachbarter Ziffern nur in einem Bit unterscheidet. Code mit dieser Eigenschaft wird einschrittiger Code genannt 0000 = 0 = 4 Bit = 4 Binärstellen = 1 Wort 0001 = 1 = 4 Bit = 4 Binärstellen = 1 Wort 0011 = 2 = 4 Bit = 4 Binärstellen = 1 Wort 0010 = 3 = 4 Bit = 4 Binärstellen = 1 Wort 0110 = 4 = 4 Bit = 4 Binärstellen = 1 Wort 0111 = 5 = 4 Bit = 4 Binärstellen = 1 Wort 0101 = 6 = 4 Bit = 4 Binärstellen = 1 Wort 0100 = 7 = 4 Bit = 4 Binärstellen = 1 Wort 1100 = 8 = 4 Bit = 4 Binärstellen = 1 Wort 1101 = 9 = 4 Bit = 4 Binärstellen = 1 Wort = ∑ L 239 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Codierung alphanumerischer Zeichen (ASCII-Code) ASCII-Code (American Standard Code for Information Interchange) setzt 7 Bits zur Informationsdarstellung ein • 1 Zeichen pro Byte, wobei das erste Bit das Paritätsbit (Prüfbit)1) bildet • druckbare Zeichen ("A","0",",",...) • Formatsteuerzeichen (CR,LF,HT,VT,...) • Übertragungssteuerzeichen 1) Prüfbit, zusätzliche Bitstelle, so gesetzt, dass jedes Codewort eine gerade Anzahl von Einsen enthält (fehlertolerante Codes) 240 Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung ASCII-Code 241 b7 0 0 0 0 1 1 1 1 b6 0 0 1 1 0 0 1 1 b5 0 1 0 1 0 1 0 1 b4 b3 b2 b1 Dez 0 1 2 3 4 5 6 7 0 0 0 0 0 NUL DLE SP 0 @ P ¯ p 0 0 0 1 1 SOH DC1 ! 1 A Q a q 0 0 1 0 2 STX DC2 „ 2 B R b r 0 0 1 1 3 ETX DC3 # 3 C S c s 0 1 0 0 4 EOT DC4 $ 4 D T d t 0 1 0 1 5 ENQ NAK % 5 E U e u 0 1 1 0 6 ACK SYN & 6 F V f v 0 1 1 1 7 BEL ETB ´ 7 G W g w 1 0 0 0 8 BS CAN ( 8 H X h x 1 0 0 1 9 HT EM ) 9 I Y i y 1 0 1 0 10 LF SUB * : J Z j z 1 0 1 1 11 VT ESC + ; K [ k { 1 1 0 0 12 FF FS , < L \ l | 1 1 0 1 13 CR GS - = M ] m } 1 1 1 0 14 SQ RS . > N ^ n - 1 1 1 1 15 SI US / ? O _ o DEL Rechnerstrukturen Teil 1 Prof. Dr. Möller 1.3 Codierung Bezüglich der Codearten wird unterschieden zwischen • Blockcode der Länge n • Codeworte haben die Länge n • Bei der Übertragung sind keine Trennzeichen erforderlich • Codes variabler Länge • Codeworte haben eine variable Länge • Bei der Übertragung sind Trennzeichen erforderlich • Möglichkeit der Minimierung der mittleren Codewortlänge Für die für Rechnerstrukturen wichtigen Codes sind folgende Eigenschaften von Bedeutung: • Code ist Minimalcode in dem alle N = 2n Codeworte verwendet werden • Code ist einschrittiger Code, wenn aufeinanderfolgende Codeworte sich nur in einer Stelle unterscheiden, beispielsweise beim Gray-Code • Code repräsentiert komplementären Code, wenn zu jedem Codewort c ein Codewort /c existiert, dass ebenfalls Bestandteil des Codes ist. = ∑ L 242 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 2. Rechnerarithmetiken 2.1 Operationen mit Zahlen 2.2 Ganzzahl-Arithmetik 2.3 Gleitkomma-Arithmetik 2.4 Hardware für Rechnerarithmetik 243 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1 Operationen mit Zahlen 2.1 Operationen mit Zahlen 2.2 Ganzzahl-Arithmetik 2.3 Gleitkomma-Arithmetik 2.4 Hardware für Rechnerarithmetik 244 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1 Operationen mit Zahlen 2.1 Operationen mit Zahlen 2.1.1 Dualarithmetik 2.1.2 Addition 2.1.3 Subtraktion 2.1.4 Multiplikation 2.1.5 Division 245 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.1 Dualarithmetik Für das Verarbeiten von Zahlen in Rechenmaschinen ist die Kenntnis der arithmetischen Operationen wichtig. Digitalrechner arbeit fast ausnahmslos mit Dualzahlen, weshalb die maschinelle Verarbeitung von Dualzahlen und die Dualarithmetik von Bedeutung sind 246 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.2 Addition 2.1 Operationen mit Zahlen 2.1.1 Dualarithmetik 2.1.2 Addition 2.1.3 Subtraktion 2.1.4 Multiplikation 2.1.5 Division 247 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.2 Addition Addition von Dualzahlen analog zur Addition von Dezimalzahlen Es ist zu beachten, dass Übertrag zu einer höheren Stelle bereits bei 1+1=10 auftritt 248 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.3 Subtraktion 2.1 Operationen mit Zahlen 2.1.1 Dualarithmetik 2.1.2 Addition 2.1.3 Subtraktion 2.1.4 Multiplikation 2.1.5 Division 249 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.3 Subtraktion Subtraktion von Dualzahlen über Addition des Komplements ausgeführt. Man erhält Differenz D, indem zum Minuenden M zunächst das Komplement K = Bn - S des Subtrahenden S zu Bn addiert und anschließend Bn wieder subtrahiert, mit n als maximaler Stellenzahl links des Komma D = M – S = M + (Bn - S) - Bn = M + K - Bn Komplement K des Subtrahenden S zu Bn erhält man dadurch, dass man für den Subtrahenden stellenweise die Ergänzung zur höchsten Ziffer (B-1) des verwendeten Zahlensystems bildet und zu diesem Ergebnis eine 1 in der niedrigsten Stelle m addiert 250 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.3 Subtraktion Beispiel: Sei x=179 und y=109, dann wird für die Differenz x - y x: 10110011 = 179 -y: -01101101 = 109 ⇒ -0110 1101 Einerkomplement→ x: 10110011 +1001 0010 ⇒K1(y):+10010010 mit dem Zwischenresultat 1 01000101. Der Übertrag des MSB wird zur niedrigsten Stelle, dem LSB, hinzuaddiert 01000101 1. ⇒ 01000110 ⇒ dezimal +70. 251 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.4 Multiplikation 2.1 Operationen mit Zahlen 2.1.1 Dualarithmetik 2.1.2 Addition 2.1.3 Subtraktion 2.1.4 Multiplikation 2.1.5 Division 252 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.4 Multiplikation Bei Multiplikation von Dualzahlen wird für jede 1 im Multiplikator der Multiplikant angesetzt und um so viele Stellen verschoben, wie der Exponent der Multiplikatorstelle angibt. Beispiel: 217*35=7595 217dez = 11011001dual 35dez = 100011dual 11011001 * 100011 11011001 11011001 11011001 1110110101011dual = 7595dez 253 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.5 Division 2.1 Operationen mit Zahlen 2.1.1 Dualarithmetik 2.1.2 Addition 2.1.3 Subtraktion 2.1.4 Multiplikation 2.1.5 Division 254 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.5 Division Division von Dualzahlen über fortlaufende Subtraktion ausgeführt. Fortlaufende Division im Digitalrechner über Addition des Komplements ausgeführt, wobei das Komplement des Divisors zur nächsthöheren Basispotenz gebildet wird. Ergibt Addition des Komplements keinen Übertrag ist entsprechendes Teilergebnis 0; es muss danach mit dem alten Minuenden und der nächsten Stelle des Dividenden weitergerechnet werden. 255 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.1.5 Division Beispiel: 667/29=23 667dez = 1010011001dual 29dez = 11101dual Komplementbildung des Divisors zur nächsthöheren Basispotenz: 100000-11101=11111-11101+1=00010+1=00011 Damit ergibt sich weiter: 1010011001/11101=010111dual = 23 dez 00011 010111 101001 00011 1011001 00011 011100 110010 00011 1101011 00011 1011101 00011 100000 256 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.2 Ganzzahl-Arithmetik 2.1 Operationen mit Zahlen 2.2 Ganzzahl-Arithmetik 2.3 Gleitkomma-Arithmetik 2.4 Hardware für Rechnerarithmetik 257 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.2 Ganzzahl Arithmetik Ganzzahlen/Festkommazahlen: Festkommadarstellung der Länge (n,m) zur Basis b hat die allgemeine Form z = (zn-1...z0, z-1 ...z-m)b Ihr Wert ergibt sich demnach zu wert ( z ) = n −1 i z ⋅ b ∑í i =− m 258 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.2 Ganzzahl Arithmetik Beispiel: Sei b = 2 und die Länge sei (4,8). Dann ist (101001001110)2 die Festkommadarstellung der Zahl 10,3046875 mit der Länge (4,8) zur Basis 2. Es gilt wert(z) = 1*23 + 1*21 + 1*2-2 + 1*2-5 + 1*2-6 + 1*2-7 = 10 + ¼ + 1/32 + 1/64 + 1/128 = 10 + 39/128 = 10,3046875 259 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.2 Ganzzahl Arithmetik Nimmt man das Komma rechts der Stelle mit dem niedrigsten Wert an, gilt für das Wort der Länge n = (xn-1,...x0)2 die Festkommadarstellung n −1 wert ( z ) = ∑ zi ⋅ b i i = −0 Nimmt man das Komma links der Stelle mit dem höchsten Wert an, gilt für das Wort der Länge n = (x1,...,xn)2 die Festkommadarstellung n −1 wert ( z ) = ∑ zi ⋅ b −i i =0 Für ein Wort x der Länge n = 8 lautet die Festkommadarstellung für x = 1011 0010 = 1*2-1 + 1*2-3 + 1*2-4 + 1*2-7 = ½ + 1/8 + 1/16 + 1/128 = 89/128 = 0,6953125 Längenangabe (n,m) bei höheren Programmiersprachen als Formateingabe vom Typ (n+m+1,m) ⇒ erste Längenangabe gibt Gesamtlänge einschließlich Komma an. 260 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.2 Ganzzahl Arithmetik Beispiel: Sei b = 2 und die Länge sei (2,4). Dann ist (10,0100)2 die Festkommadarstellung der Zahl 2,25 mit der Länge (2,4) zur Basis 2 mit wert(z) = 1*21 + 1*2-2 = 2 + ¼ = 2,25 261 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.3 Gleitkomma-Arithmetik 2.1 Operationen mit Zahlen 2.2 Ganzzahl-Arithmetik 2.3 Gleitkomma-Arithmetik 2.4 Hardware für Rechnerarithmetik 262 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.3 Gleitkomma Arithmetik Gleitkommadarstellung (halblogarithmische Darstellung) ⇒ Zahl z in der Form z = ± m*b± e m: Mantisse, b: Basis des Exponenten, e: Exponent der Darstellung. b muss nicht notwendig mit Basis des Zahlensystems für m und e übereinstimmen. Beispiel: Zahl 1638,4 darstellbar als 3,2*8 3. In Rechnersystemen liegen Basis b, Mantisse m und Exponenten e sowie Basis b der Darstellung fest. Daher kann Gleitkommazahl z = ± m*b±e rechnerintern durch das Paar (± m, ± e) dargestellt werden. 263 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.3 Gleitkomma Arithmetik Gleitkommadarstellung einer Zahl ist nicht eindeutig. Zahl 4711,4712 kann z.B. wie folgt dargestellt werden: 4711,4712 = 47,114712*102 = 0,47114712*104 = 47114712*10-4 ⇒ für Operationen mit Operanden mit verschiedenen Exponenten Anpassung erforderlich. Beispiel: Für Addition von 4,711*103 und 0,0004712*107 ist Anpassung erforderlich. Diese könnte folgendermaßen aussehen: (4,711+4,712)*103 264 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.3 Gleitkomma Arithmetik Betrachtet man Fall 1/b < m < 1, nennt man die Gleitkommazahl z = ± m*b± e normalisiert. Bei normalisierter Darstellung steht Komma links von Mantisse, d.h. ganzzahliger Anteil ist gleich 0 und erste Ziffer (des Dezimalanteils) der Mantisse ist ungleich 0. Erste Ziffer hinter Komma in der Mantisse nicht 0 sondern 011, d.h. oktal 3, da Basis des Exponenten 8 ist. Veränderung des Exponenten um ±1 entspricht Multiplikation mit bzw. Division durch 8 = 23, Komma wird um drei Stellen nach links bzw. drei Stellen nach rechts verschoben. 265 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.3 Gleitkomma Arithmetik Beispiel: Sei be = 8 und die normierte Darstellung von (0,000011)2*82 gesucht, dann muss die Mantisse m dieser Darstellung die Ungleichung 1/8 < m < 1 erfüllen. Rechnerinterne Darstellung normalisierter Gleitkommazahlen kann allgemeingültig angegeben werden. Sei b = 2 und die Länge der darstellbaren n = 32, liegt folgende Aufteilung der 32 Stellen für Gleitkommazahlen vor: • erste 24 Stellen bilden Mantisse der Vorzeichendarstellung, d.h. erste Stelle repräsentiert das Vorzeichen • restlichen 8 Stellen den Exponenten im Zweierkomplement. 266 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik 2.1 Operationen mit Zahlen 2.2 Ganzzahl-Arithmetik 2.3 Gleitkomma-Arithmetik 2.4 Hardware für Rechnerarithmetik 267 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik Hardwarerealisierung der arithmetischen Grundoperation Addition im so genannten Rechenwerk z.B. durch Ripple-Array-Addierer realisiert Komponenten dieser Rechnerarithmetik - berechnen Summe der n-Bit-Zahlen xn-1,...x0 und yn-1, ...y0, - sind VA, wobei LSB-Stelle nur aus HA bestehen muss. HA addiert eingangsseitig anliegenden Zahlen xi und yi und erzeugt Summe si und Übertrag ci als Ausgang: si = (xi + yi)mod2 und ci = (xiyi)/2 mit und als Ebenen-Funktion. Die logischen Gleichungen dieser Rechnerarithmetik lauten si = xiyi. + xiyi. = xi ⊕ yi und ci+1 = xiyi. 268 Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik RCA bestehend aus VAs, kein HA = ∑ L 269 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik Grundstruktur von Rechenwerken (Lehrbuch Kap. 4.3) VA: bildet Summe S und Übertrag C Si = e1i ⊕ e2i ⊕ Ci-1 Ci = (e1i ∧ e2i) ∨ (Ci-1 ∧ (e1i ⊕ e2i)) ⊕: = Antivalenz ⇒ XOR = e1 ⊕ e2 ; besteht aus 2 UND und 1 ODER Gatter, jeweils 1 Eingang des UND Gatters ist invertiert VA: besteht aus 2 HA und einem ODER Gatter HA: besteht aus je einem UND und einem XOR Gatter ⇒VA: besteht aus 2 UND, 2 XOR und 1 ODER Gatter HA und VA können durch Wertetabellen beschrieben werden = ∑ L 270 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik HA: besteht aus je einem UND und einem XOR Gatter = ∑ L 271 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik VA: besteht aus 2 UND, 2 XOR und 1 ODER Gatter = ∑ L 272 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik e1 e2 S C 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 = ∑ L 273 = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik 274 e1i e2i Ci-1 Ci Si 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 = ∑ L = ∑ L Rechnerstrukturen Teil 1 Prof. Dr. Möller 2.4 Hardware für Rechnerarithmetik RISC: reduced instruction set computer (Athlon) 275 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 276 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 277 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder • Grundfunktionen digitaler Verarbeitungssysteme durch logische Verknüpfungsglieder gegeben Digitale Information in einzelne Dualwerte aufgeschlüsselt, die Elemente der Menge M = { 0, 1} sind. Hardwaretechnische Umsetzung der Grundfunktionen durch elementare logische Verknüpfungsglieder Verknüpfungsglieder basieren auf Transistoren, wobei Transistoren die Grundfunktion eines elektronischen Schalters übernehmen. Elektronischer Schalter verfügt über die Zustandsmenge S = {0, 1}. Wirkungsweise digitaler Verarbeitungssysteme beruht auf dem Prinzip des logischen Schließens → Boolescher Verband & Boolesche Algebra → darauf aufbauend logische Grundkonzepte für Schaltnetze & Schaltwerke sowie spezielle Schaltnetze & Schaltwerke • • • • • 278 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Schaltnetze & Schaltwerke • • digitale Verarbeitungssysteme, zentrale Bausteine lokaler Konzepte für Rechnerstrukturen. Funktionale Beschreibung digitaler Verarbeitungssysteme → Boolesche Algebra • Kalkül zur Behandlung von Aussagen im Rahmen der zweiwertigen Logik. Anwendung Boolescher Algebra, zur Beschreibung digitaler Schaltungen → Schaltalgebra 279 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Begriffe der Schaltalgebra • Zustandgröße, dient zur Beschreibung der Elemente digitaler Schaltungen; Element einer digitalen Schaltung wird zur Beschreibung der Zustandsgröße zugeordnet; gibt Zustand an in dem sich das zugeordnete Element der digitalen Schaltung befindet. Digitale Elemente weisen nur zwei Schaltzustände auf, ihre Zustandstandsgröße kann nur zwei Werte annehmen [0,1]. • Zustandsvariable, • Zustandsfunktion. Zustandsvariable und Zustandsfunktion sind ebenfalls Zustandsgrößen, von der Art, das Zustandsvariable unabhängige Größen beschreiben, während Zustandsfunktionen abhängige Größen darstellen. 280 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Elementare Verknüpfungen der Schaltalgebra • Konjunktion, UND-Verknüpfung von Zustandgrößen, • Disjunktion, ODER-Verknüpfung von Zustandsgrößen, • Negation, Entgegengesetzte Zustandsgröße, beschrieben. Verknüpfungen lassen sich formal als auf Zustandsgrößen anwendbare Operatoren definieren. 281 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Boolesche Algebra baut auf Symbolen * , +, /, (,), =, ;, 0, 1, a, b, c, ..., x, y, auf die als Alphabet einer Sprache angesehen werden. Elementare Verknüpfungen UND, ODER und NICHT, im Alphabet der Sprache der Schaltalgebra, darstellbar, wobei • Symbole für die UND-Verknüpfung (Konjunktion): *, &, ∧ • Symbole für die ODER-Verknüpfung (Disjunktion), +, ≥1, ∨ • Symbole für die Negation (Negation), /,1, ¬ repräsentiert. 282 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Zur digitalen Signalverarbeitung existieren 3 logische ElementarFunktionen, auf die sich alle Schaltnetze zurückführen lassen: • UND (AND) → Konjunktion • ODER (OR) → Disjunktion • NICHT (NOT) → Negation 283 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder UND-(AND) Verknüpfung Funktionswert A nimmt dann und nur dann Wert 1an wenn alle EingangsVariablen ebenfalls den Wert 1 aufweisen, d.h. A = E1 * E2. Symbol der UND-Verknüpfung lautet *. Schaltzeichen: In Anlehnung an die Gesetze der Mengenlehre wird UND Verknüpfung, bzw. UND-Gatter, Konjunktion genannt. Konjunktion E1 * E2 entspricht dem Durchschnitt zweier Mengen E1 und E2, dies ist die gemeinsame Fläche. UND-Verknüpfung repräsentiert Serienschaltung von Schaltern! 284 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 285 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder ODER-(OR) Verknüpfung Funktionswert A nimmt immer dann Wert 1 an wenn mindestens eine der Eingangsvariablen den Wert 1 aufweist, d.h. A = E1 + E2. Symbol der ODER-Verknüpfung lautet +. Schaltzeichen In Anlehnung an Gesetze der Mengenlehre wird ODER-Verknüpfung bzw. ODER-Gatter, Disjunktion genannt. Disjunktion E1 + E2 entspricht Vereinigung zweier Mengen E1 und E2, dies ist die von beiden überdeckte Fläche ODER-Verknüpfung repräsentiert Parallelschaltung von Schaltern! 286 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 287 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder NICHT-(NOT) Verknüpfung Funktionswert A nimmt den Wert 1 an wenn Eingangsvariable den Wert 0 zeigt, oder umgekehrt, d.h. A = /E. Symbol der NICHT-Verknüpfung lautet /. Schaltzeichen: E 1 A In Anlehnung an Gesetze der Mengenlehre wird NICHT-Verknüpfung bzw. NICHT-Glied, Negation genannt. Negation von E entspricht dem Komplement einer Menge A, dies ist die umhüllende Fläche 288 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 289 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder NICHT-UND-(NAND) Verknüpfung NAND-Funktion (Not-AND) ist negierte UND Funktion, nimmt immer dann und nur dann Wert 1an wenn mindestens eine Eingangs-Variable den Wert 0 aufweist, d.h. A = E1 * E 2 290 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 291 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder NICHT-ODER-(NOR) Verknüpfung NOR-Funktion (Not OR) ist negierte ODER Funktion, nimmt immer dann und nur dann Wert 1an wenn alle Eingangs-Variablen den Wert 0 aufweisen, d.h. A = E1 + E 2 292 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 293 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder NAND- und NOR-Glieder sind über die De Morganschen Identitäten E1 * E 2 = E1 + E 2 E1 + E 2 = E1 * E 2 der Schaltalgebra miteinander verknüpft. ⇒ Schaltnetz oder Teile davon lassen sich in funktionsgleiche Schaltung umformen, indem man im entsprechenden Bereich alle UND gegen ODER Glieder (und vice versa) austauscht und zusätzlich alle Eingänge an den Grenzen des entsprechenden Bereichs invertiert. 294 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder EXCLUSIV-ODER-(XOR) Verknüpfung (Antivalenz) EXclusive OR liefert immer dann am Ausgang den Wert 1, wenn genau eine der n Eingangsvariablen den Wert 1 aufweist, ⇒ A = E1 ⊕ E2. 295 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 296 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Praktische Realisierung der XOR Funktion (Antivalenz) mit Elementarfunktionen 297 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder EXCLUSIV-NOR-(XNOR) Verknüpfung (Äquivalenz) EXclusive NOR liefert immer dann am Ausgang den Wert 1, wenn alle Eingangsvariablen den gleichen Zustand (Wert 0 oder 1) aufweisen, ⇒. A = E1 ⊗ E2. 298 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 299 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Praktische Realisierung der XNOR Funktion (Äquivalenz) mit Elementarfunktionen 300 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Belastungsregeln für logische Verknüpfungen ⇒ Fan-In (FI): Eingangsauffächerung, Eingangslastfaktor gibt an, welche Belastung, ausgedrückt in Vielfachen der Lasteinheit LE, der Eingang für die vorangehende Stufe darstellt Beispiel: FI = 2,4 bedeutet der Eingang zieht 2,4 LE ⇒ Fan-Out (FO): Ausgangsauffächerung, Ausgangsverzweigung Eingang digitaler logischer Verknüpfungsschaltung stellt für Ausgang der vorangehenden Stufe eine Belastung dar, abhängig von o logischem Zustand des Ausgangs o Betriebsspannung o Temperatur Beispiel: FO = 2,4 bedeutet der Ausgang kann mit 2,4 LE belastet werden 301 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Logische Verknüpfungen: Inverter in Bipolar Transistortechnik Wahl von RC hängt ab von: • Schaltgeschwindigkeit • Maximaler Verlustleitung • Maximal zu betreibender Last am Ausgang 302 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Bipolare Transistoren: Halbleiter-Bauelemente, die Leitfähigkeitseigenschaften zweier PN Übergänge ausnutzen. Je nach Dotierung der Halbleiterzonenfolge spricht man von NPN oder von PNP Transistoren C C C n p B C Kollektor Basis n B B Emitter E E NPN-Transistor p Kollektor n p Basis B Emitter E E PNP-Transistor Leitfähigkeit des Bipolartransistors sowohl von Majoritäts- als auch von Minoritätsladungsträgern abhängig ⇒ Bezeichnung bipolar. Je nach Beschaltung wird eine der beiden Teil-Dioden des Transistors in Sperrrichtung betrieben, die andere in Durchlassrichtung. 303 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Transistoreffekt: bei der in Sperrrichtung betriebenen Teildiode fließt geringer Sperrstrom dessen Größe nur von Temperatur abhängt da Minoritätsträger durch thermische Paarbildung entstehen. Zahl der Minoritätsträger von außen beeinflussbar (steuerbar) ⇒ Sperrstrom in weiten Grenzen steuerbar ⇒ Durchlassrichtung geschaltete Teildiode sorgt für eine vom Durchlassstrom abhängige Anzahl an Minoritätsträger, in Verbindung mit dünner Basisschicht (Diffusionslänge der Ladungsträger) und schwacher Dotierung ausreichende Ladungsträgeranzahl und damit gesteuerter Sperrstrom. Bipolarer Transistor als Strom gesteuerter Widerstand bezeichnet ⇒ kommt der Betrachtungsweise des Transistors als Schalter entgegen. Vorgang keineswegs linear, spiegelt sich in den Kennlinien wieder. Ströme und Spannungen am Transistor in Emitterschaltung, Emitter als gemeinsamer Bezugspunkt. 304 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder C U CB I B I C B U CE U BE I E E Strom- und Spannungsbezeichnungen 305 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Die in Emitterschaltung aufgenommenen Kennlinien werden in vier Quadranten aufgetragen (UCE-IC, IC-IB, IB-UBE, UBE-UCE); für Informationstechnik von großen Interesse. Schaltungen der digitalen Informationsverarbeitung setzen Transistor als Schalter ein. U B I I C U R I B B R E R B U U C U CE A BE U 306 Rechnerstrukturen Teil 1 B Prof. Dr. Möller U CE 3.1 Logische Verknüpfungsglieder Schalterzustände ein/aus (Transistorzustände leitend/gesperrt) Für IB = 0 ist Kollektor-Emitter-Strecke gesperrt (Schalterzustand A), es kann lediglich der Sperrstrom fließen. UCE entspricht dabei nahezu UB, da Widerstand des Transistors sehr viel größer ist als der Arbeitswiderstands R. Bei Anliegen einer genügend großen Eingangsspannung Ue und damit eines Eingangsstroms IB = IBE wird Transistor leitend. IB resp. RB wird so gewählt, dass Widerstand des Transistors klein wird gegenüber R, so dass UCE auf nahezu 0 sinkt, da gesamte Betriebsspannung über dem Arbeitswiderstand R abfällt (Schalterzustand E). R und RB sind dem Transistortyp, der maximalen Verlustleistung (Zerstörung des Transistors) und den gewünschten Eingangs- und Ausgangsspannungen anzupassen. 307 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Idealer Schalter durch Transistor nur angenähert realisierbar. Eigenschaften eines idealen Schalters sind: • Innenwiderstand „0“ im Zustand EIN • Innenwiderstand „∞“ im Zustand AUS • Keinerlei Zeitverzögerung im Schaltvorgang, d.h., der Schaltzustand folgt unmittelbar dem Eingangszustand • Die vom Schalter selbst aufgenommene elektrische Leistung P = U*I ist immer „0“ (keine Verlustleistung), da entweder U = 0 oder I = 0 zu jedem Zeitpunkt gilt. • Alle realen Schalter nähern sich in spezifischer Weise diesen idealen Bedingungen an, wobei bipolare Schalter im wesentlichen die Schaltzeit optimieren. 308 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Realisierung von Logikelementen in digitalen Bausteinen: NPN Transistorschaltung einfacher Inverter; bei entsprechender Besetzung der Ein- und Ausgangspegel (TTL-Pegel) wird Eingangssignal mit hohem Pegel in Ausgangssignal mit niedrigem umgesetzt und vice versa Realisierung von Gatterfunktionen in bipolarer Technik durch Schaffung eines Logik-Inverters; zur Realisierung beliebiger Funktion mit mehr als einer Eingangsgröße nicht ausreichend, in diesem Fall Multi-Emittertransistoren, die als Multi-Schalter eingesetzt werden (hier in Basis-Schaltung) U Kollektor Basis B R Emitter B E1 E2 R Aufbau (schmetaisch) 309 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Multiemittertransistor: NAND-Gatter. Führt nur einer der Emitter Low-Potential wird der Transistor leitend, und Ausgang A nimmt – bei entsprechender Dimensionierung der Widerstände – gegenüber Masse den Wert High an. Mit Hilfe der NAND-Funktion lassen sich – zumindest theoretisch – alle logischen Verknüpfungen realisieren. Technisch gesehen wäre Darstellung ODER-Verknüpfung durch Invertierung der Eingangssignale und anschließende NAND-Verknüpfung problematisch, da sich Signallaufzeiten und Verlustleistung addieren. Realisierungen von Gattern in bipolarer Technik werden in TTL-Schaltkreisen eingesetzt, da bipolare Transistoren gegenüber unipolaren Transistoren wie auch gegenüber anderen Schaltungsvarianten Vorteile wie z.B. kurze Schaltzeiten oder moderate Verlustleistungen bieten. 310 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Logische Verknüpfungen: Transistor-Transistor-Logik (TTL) Vorteil: • Transistoren mit mehreren Emittern • Emitter bilden logische Eingänge • Ersatzschaltung hat Ähnlichkeit mit integrierter DTL-Schaltung 311 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Logische Verknüpfungen: Transistor-Transistor-Logik (TTL) TTL-NAND: • Auch bei Erhöhung der Zahl der Eingänge Zahl der Einzelkomponenten konstant • T2 führt dann und nur dann Strom wenn alle Emitter von T1 auf 1 (H) liegen • Schaltfunktion bei n Eingängen lautet: /y = x0 * x1 * … * xn-1 312 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Logische Verknüpfungen: Transistor-Transistor-Logik (TTL) Übertragungskennlinie: • uY = f (uX) für uX0 = uX1 = uX2 (parallel geschaltete Eingänge) 313 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Während beim bipolaren Transistor Kollektorstrom durch Basisstrom gesteuert wird, liegt beim unipolaren Transistor die Steuerung des Stromes durch eine angelegte Spannung bzw. deren elektrischen Feldes vor ⇒ Feldeffekttransistoren (FET). Ladungstransport erfolgt beim Feldeffekttransistor überwiegend durch Majoritätsladungsträger entsprechend der Dotierung. Das angelegte elektrische Feld bewirkt Aufbau einer Sperrschicht (selbst leitend) oder von Ladungsträgerkonzentrationen (selbst sperrend). In hochintegrierten Schaltungen auf FET-Basis werden zumeist selbstsperrende Transistoren integriert. Bei diesem Transistortyp wird die Leitfähigkeit nicht durch einen PN-Übergang, sondern durch Influenz des elektrischen Feldes gesteuert. 314 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Gate Source SiO n Substrat Gate Drain Source 2 p n p Drain SiO Substrat D 2 p n D B G B G S S n-Kanal p-Kanal Aufbau Transistorzelle: Schichtenreihenfolge Gate, eine Metallelektrode, eine dünne (100 - 200 nm) Oxidschicht als Isolator und Substrat, ⇒ Metal-Oxide-Semiconductor, MOS 315 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Beim n-Kanal-MOS-FET sind in p-Substrat zwei hochdotierte n+-Zonen als Source und Drain eindiffundiert, jeweils verbunden mit dem Sourcebzw. Drain-Anschluß. Abstand zwischen n-dotierten Zonen verhindert bipolaren Transistoreffekt, kein Stromfluss. Zwischen n Zonen isolierende Oxidschicht mit Metallschicht (Aluminium) aufgebracht. An Gate wird Spannung angelegt, Gate wirkt mit gegenüberliegenden Substrat als Kondensator mit dem Oxid als Dielektrikum. Positive Spannung an Gate bewirkt Abstoßung der positiven Majoritätsträger im p-Substrat, bis die sich ausbildende negative Akzeptorenschicht das elektrische Feld kompensiert. Raumladungszone groß, ⇒ thermische Elektronen diffundieren nicht in Substratschicht, an Oxidschicht entsteht im p-Substrat leitender Kanal mit freien Elektronen als Ladungsträger. Spannung, ab der sich dieser Kanal ausbildet ⇒ Schwellwertspannung. Strom von Drain in Richtung Source (UDS > 0) wird durch die anliegende Gate-Spannung UGS gesteuert. 316 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder U B R U U DS GS MOS-Feldeffekttransistor (n-Kanal) als Schalter 317 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Digitale Verknüpfungsschaltungen mit FET FET (Feldeffekttransistoren) unterscheiden sich damit von Bipolar-Transistoren durch: • Hohen Eingangswiderstand (> 1013 Ω) • Galvanische Entkopplung (zwischen Eingang und Ausgang) • Einfachen Aufbau → weniger technologische Schritte - 9 bei MOSFET; 14 bei Bipolar • Geringen Platzbedarf (20% von Bipolar) • Selbstisiolation der Einzeltransistoren • Kleine Verlustleistung • Realisierung ohmscher Widerstände durch MOS Strukturen → Einsparung von Kristallfläche • Vertauschungsmöglichkeit von Drain und Source wegen symmetrischen Aufbau bilateraler Betrieb möglich • Höher Betriebsspannungen wegen der hohen erforderlichen UGS • Relativ niedrige Grenzfrequenz bei FET und MOSFET → höhere Widerstände und Kapazitäten • Möglichkeit der Bildung parasitärer Kanäle 318 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder MOS-Technik Vorteil MOS-Technik: • einfacher technologischer Aufbau • erreichbare hohe Packungsdichte bei der Integration größerer Schaltungen, z. B. Schieberegister, Speicher, etc. MOS-FET besteht aus STROMKANAL längs der Oberfläche des Halbleitermaterials, der durch eine Si02-Schicht vom GATE isoliert ist. Gatespannung steuert den Widerstand des Kanals D G S 319 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Logische Verknüpfungen: MOS-NAND N-Kanal oder P-Kanal • 4 MOSFET zur Realisierung • Schaltfunktion: /y = x0 * x1 * x2 320 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Logische Verknüpfungen: MOS-NOR N-Kanal oder P-Kanal • 4 MOSFET zur Realisierung • Schaltfunktion: y = /(x0 + x1 + x2) 321 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder MOSFETs • eignen sich zur Herstellung hochintegrierter Digitalschaltungen besser als Bipolartransistoren; • benötigen weniger Fläche auf Wafer, sind deshalb preisgünstiger. Bis Mitte der 80er Jahre wurden digitale Schaltungen in NMOS-Technologie ausgeführt. Mit 1 Mb-DRAM-Speichern (1 Megabit Dynamic Random Access Memory) wechselten die Hersteller zur deutlich komplexeren CMOS-Technologie; die kleinsten Strukturgrößen betrugen MFS = 12µm (Minimal Feasable Size). Marktanteil der CMOS-Technologie heute bei über 75%; ca. 10% dieser Komponenten sind analoge Schaltungen. 322 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder CMOS Technologie CMOS (Complementary-Metal-Oxide-Semiconductor) → Weiterentwicklung der MOS Technik → P- und N-Kanal MOSFETs auf einem Chip kombiniert um logische Funktionen zu realisieren • • • • • Sehr kleine Leistungsaufnahme Verbesserte Schaltzeiten Hohe Störsicherheit Hohes Ausgangssignal Weiter Betriebsspannungsbereich 323 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder CMOS Technologie dominante Halbleitertechnologie für • • • Mikroprozessoren, Speicher (SRAM und DRAM), anwenderspezifische integrierte Schaltungen (ASICs). Hauptvorteil von CMOS gegenüber NMOS oder bipolarer Technologie ist der viel kleinere Energieverbrauch - statische CMOS Gatter haben (fast) keinen statischen Energieverbrauch. Gatter verbrauchen nur Strom, wenn Gatter wirklich umschalten. Dadurch lassen sich wesentlich mehr CMOS Gatter auf einem IC integrieren, als in NMOS oder bipolarer Technologie. 324 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder CMOS-Schaltungstechnik Wichtigstes Marktsegment neben µP digitale Halbleiterspeicher 325 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder CMOS-Schaltungstechnik EU-Kommission fördert Forschungsprojekt NANOCMOS; soll Entwicklung bei Materialien, Prozessen, Baustein-Architekturen und Verbindungstechniken der CMOS-Technologie (Complementary-Metaloxide-Semiconductor) vorantreiben. In der ersten Phase des Projekts soll bis zum Jahr 2005 die Machbarkeit der 45nm-CMOS-Logik-Technologie demonstriert werden. Gleichzeitig werden entsprechende Forschungsaktivitäten für nächste Technologiegenerationen mit 32- und 22-nm-Strukturen durchgeführt. In der zweiten Phase, die für 2006 geplant ist, soll die Machbarkeit der 32- und 22-nm Generation gezeigt werden. Außerdem wird das Konsortium der MEDEAOrganisation einen Vorschlag unterbreiten, ab 2006 mit der Integration und Validierung der 45-nm-Technologie in einer 300-mm-Wafer-Fertigung zu beginnen. Die industrielle Fertigung soll in Crolles2 implementiert werden, einer gemeinsamen Pilotanlage von Motorola, Philips und STMicroelectronics. 326 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder CMOS-Schaltungstechnik Partner des EU Forschungsprojektes sind die drei größten europäischen Halbleiterhersteller • Infineon http://www.infineon.com/, • Philips http://www.philips.com/, • STMicroelectronics http://www.st.com/ sowie die beiden größten europäischen Technologie-Forschungslabors • CEA Leti in Frankreich, • IMEC in Belgien. Ergänzend zu NANOCMOS wird auch das Projekt "Network of Excellence" (SINANO) von der EU-Kommission weiter unterstützt. Dieses Netzwerk umfasst die meisten öffentlichen europäischen Forschungslabors im Bereich neuartiger Bauelemente. Beide Projekte sollen für eine schnelle Umsetzung der Forschungsergebnisse in der Fertigung Integrierter Schaltkreise (ICs) sorgen. 327 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 328 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Vergleich der Leistungsfähigkeit logischer Schaltkreisfamilien Auswahlparameter einer geeigneten Logikfamilie für bestimmte Anwendungen: • Verarbeitungsgeschwindigkeit → Gatterlaufzeit, Stufenverzögerungszeit → Echtzeitverarbeitung/-fähigkeit • Verlustleistung bzw. Leistungsaufnahme → wichtige Kennzahl für den Vergleich von Logikfamilien → Mobile Systeme (wearable/mobile computing) • Integrationsgrad → PDAs, Mobiltelephone, Hörgeräte, Uhren,… → Wärmeabfuhr 329 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder Pegelumsetzer Unterschiedliche Pegel und Polaritäten für dieselben logischen Zustände Beim Übergang von einer Logikfamilie zur nächsten Pegelumsetzer erforderlich Beispiele für Pegelumsetzer TTL-pMOS und pMOS-TTL 330 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.1 Logische Verknüpfungsglieder 331 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 332 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Die in Verknüpfungen enthaltene algebraische Struktur entspricht • komplementären distributiven Verband oder • Booleschen Verband, wenn für alle Elemente einer nicht leeren Menge der Verknüpfungen die elementaren Verknüpfungsgesetze Gültigkeit besitzen. Der kleinste, nicht triviale, Boolesche Verband, mit den Elementen {0,1}, ist zugleich auch derjenige mit der größten Bedeutung ist, da er die Grundlage der Schaltalgebra bildet. 333 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Boolesche Algebra gliedert sich in vier Teile Für digitale Verarbeitungssysteme von Bedeutung: • Schaltalgebra • Aussagenalgebra 334 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Schaltalgebra „Kontaktalgebra“, „Schaltalgebra“; Spezialgebiet der Booleschen Algebra → mathematisches Repertoire, gestattet Schaltsysteme zu • analysieren, • entwerfen, • minimieren. Zur formalen Beschreibung von Schaltnetzen (logische Verknüpfungen) benutzt 335 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Aussagenalgebra Behandelt Sätze und Verknüpfungen die nur von zwei Aspekten aus betrachtet werden können: Sie sind entweder richtig (wahr) oder falsch. Beispiel: Transistor leitet - Transistor sperrt Schalter geschlossen - Schalter offen Ventil Wasserzufuhr offen – Ventil Wasserzufuhr geschlossen 336 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Boolesche Algebra Verknüpfung von n Eingangsvariablen x0 … xn-1, von denen jede genau 2 Zustände annehmen kann, z.B. 0 (L) oder 1 (H) → 2n Kombinationsmöglichkeiten für die Eingangsgrößen Beispiel: Hat Ausgangsgröße y ebenfalls 2 mögliche Zustände (0, 1) lassen sich jeder der 2n Eingangskombinationen wieder 2 Werte zuordnen. → Zahl möglicher Ausgangsfunktionen beträgt y ( x0 , x1 , x 2 ,...., x n −1 ) = 2 (2 ) n 337 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra 338 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Theoreme der Booleschen Algebra 339 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Kommutativgesetz: a *b*c = c*b*a = K a +b+c = c+b+a =K Kommutativgesetz besagt, dass innerhalb einer Verknüpfungsart die Reihenfolge der Variablen beliebig vertauscht werden kann. 340 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Assoziativgesetz: (a * b) * c = a * (b * c ) = a * b * c (a + b) + c = a + (b + c) = a + b + c Assoziativgesetz besagt dass innerhalb einer Verknüpfungsart Klammern beliebig gesetzt und entfernt werden können. 341 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Distributivgesetz: a * (b + c ) = (a * b ) + (a * c ) a + (b * c ) = (a + b ) * (a + c ) Distributivgesetz besagt, dass in Ausdrücken mit UND- und ODERVerknüpfungen gleiche Variable ausgeklammert werden können, sofern sie in gleicher Art und Weise verknüpft sind 342 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Boolesche Funktion der Menge {0,1} von n Variablen f(x1,x2,..,xn) mit x, ..., x ∈ {0,1} repräsentiert Abbildung in {0,1}. Boolesche Algebra beschreibt binäre Schaltungen die n Eingangsvariable besitzen und die Zustände 0 bzw. 1 annehmen. Digitale Schaltungen, basieren auf elementaren Gatterfunktionen, beschreiben Abbildung der Verknüpfungsrelationen von Eingangsvariablen auf Ausgangszustände, wobei das am Ausgang anliegende Ergebnis als Abbildung in {0,1} erscheint. Gatterfunktion bezeichnet Funktionalität eines Verknüpfungsgliedes mit mindestens zwei binärwerten Eingängen und einem Ausgang → auf beliebige Anzahl von Eingangsvariablen erweiterbar. 343 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Standardmäßig ausgeführte Logikhardwareschaltungen elementarer binärwerter Verknüpfungsglieder basieren auf den Schaltkreisfamilien • TTL, • CMOS. TTL repräsentiert bekannteste Schaltkreisfamilie. Integrierte Schaltungen bestehen aus • Transistoren, • Dioden, • Widerständen. 344 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra In Standard-Schaltkreisen werden logische Grundfunktionen, durch • • • UND, ODER, NICHT vorgegeben, in der Regel in mehrfacher Anzahl im Baustein integriert, oder logische Funktionen werden, aufbauend auf logischen Verknüpfungen, • • • • • • UND, ODER, NICHT, Kodierungsschaltungen, Dekodierungsschaltungen, etc. in ein- bis mehrfacher Anzahl in einem Baustein integriert. 345 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra VCC 14 13 12 11 10 9 & & & 1 8 & 2 3 4 5 6 7 GND VCC 14 13 12 11 10 9 >1 >1 >1 1 2 8 >1 3 4 5 6 7 GND 346 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Standard-Schaltkreise werden vom Hersteller entwickelt und vollständig konfektioniert Anwender kann Schaltkreiskonzeption nicht beeinflussen. Eigentliche digitale Logikschaltung wird vom Anwender, im jeweils vorgegebenen Zusammenhang, durch Verbinden der dafür erforderlichen digitalen Schaltkreise realisiert → Entwurf digitaler Hardware und Software Systeme 347 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra • Entwurf digitaler Hard- & Software Systeme an schaltalgebraischen Konstrukten orientiert, welche die Eigenschaften einer gegebenen Zuordnungstabelle erfüllen. Vorteil Zuordnungstabelle ist ihre Eigenschaft, das sie einen nahezu idealen Ausgangspunkt für die Schaltungssynthese darstellt, d.h. die Darstellungssätze der Schaltalgebra liefert. Damit ist ein Verfahren zur Ermittlung Boolescher Ausdrücke für Zuordnungstabellen angegeben. Für jede Zuordnungstabelle lassen sich verschiedene algebraische Ausdrücke finden, in jedem Fall mindestens zwei. Darstellungssätze schaltalgebraischer Ausdrücke Boolescher Variablen fußen auf Minterm und Maxterm. • • • • 348 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Minterm von n Booleschen Variablen besteht aus UND-Verknüpfungen (Konjunktionen), wobei jede der n Booleschen Variablen genau einmal und zwar negiert oder nicht negiert als Glied in der Folge von Konjunktionen auftritt Beispielsweise sind für die vier Booleschen Variablen A, B, C, D die Ausdrücke /A*B*/C*D, A*/B*C*D, /A*/B*/C*/D, A*B*/C*/D Minterme Minterme haben die Eigenschaft, dass sie für genau eine 0-1Kombination in der Zustandstabelle den Wert 1 besitzen und für alle übrigen Kombinationen den Wert 0. Die bestimmte Zustandskombination der Booleschen Variablen ergibt sich daraus, dass jedes Verknüpfungsglied des Minterms den Wert 1 haben muss. 349 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Zuordnungstabelle der Minterme der Variablen A, B, C, D A 350 B C D /A*B*/C*D A*/B*C*D /A*/B*/C*/D A*B*/C*/D 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Man ermittelt für jeden 1-Wert der Zuordnungstabelle der gegebenen Funktion den entsprechenden Minterm. Die Minterme werden disjunkt miteinander verknüpft. Daraus resultierender algebraischer Ausdruck heißt disjunktive Normalform (DNF) ⇒ ODER-Verknüpfung aller Minterme über der Menge der Eingangsvariablen, deren Wert 1 ergibt. Disjunktive Normalform im angelsächsischen Sprachraum Sum-Of-Products (SOP) 351 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Maxterm von n Booleschen Variablen besteht aus ODERVerknüpfungen (Disjunktionen), wobei jede der n Booleschen Variablen genau einmal und zwar negiert oder nicht negiert als Disjunktionsglied auftritt Beispielsweise sind für die vier Booleschen Variablen A, B, C, D die Ausdrücke /A+B+C+/D, A+/B+C+D, /A+/B+C+D, /A*B*/C*/D Maxterme Maxterme haben die Eigenschaft, dass sie für genau eine 0-1- Kombination in der Zustandstabelle den Wert 0 besitzen und für alle übrigen den Wert 1. Die bestimmte Zustandskombination der Booleschen Variablen ergibt sich daraus, dass jedes Verknüpfungsglied des Maxterms den Wert 0 haben muss. 352 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Zuordnungstabelle der Maxterme der Variablen A, B, C, D A B C D /A+B+C+/D A+/B+C+D /A+/B+C+D /A+B+/C+/D 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 353 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Man ermittelt für jeden 0-Wert der Zuordnungstabelle der gegebenen Funktion den entsprechenden Maxterm. Maxterme werden konjunktiv miteinander verknüpft. Daraus resultierender algebraischer Ausdruck heißt konjunktive Normalform (KNF) ⇒ UND-Verknüpfung aller Maxterme über der Menge der Eingangsvariablen, deren Wert 0 ergibt. 354 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Beispiel: * = Konjunktion; + Disjunktion 355 e3 e2 e1 0 0 0 /e1*/e2*/e3=1⇒Min 0 0 1 /e1+e2+e3=0 ⇒ Max 0 1 0 e1+/e2+e3=0 ⇒ Max 0 1 1 e1*e2*/e3=1 ⇒ Min 1 0 0 /e1*/e2*e3=1 ⇒ Min 1 0 1 e1*/e2*e3=1 ⇒ Min 1 1 0 e1+/e2+/e3=0 ⇒ Max 1 1 1 /e1+/e2+/e3=0 ⇒ Max Rechnerstrukturen Teil 1 Minterm/Maxterm Prof. Dr. Möller 3.2 Boolesche Algebra Entwurf digitaler Systeme daran orientiert Schaltungen mit geringstem Komponentenaufwand zu finden. Schaltalgebra ermöglicht Schaltungssynthese auf Grundlage Boolescher Algebra. Minimierungsziel: Darstellung der Booleschen Funktion mit möglichst wenigen Variablen → bezogen auf technische Realisierung Schaltungsentwurf mit möglichst geringer Anzahl an Verknüpfungsgliedern. Minimierungsaufgabe ⇒ aus Menge der KNF bzw. DNF diejenige mit den minimalsten Fundamentalausdrücken gesucht. Fundamentalausdruck technisch durch Verknüpfungsglied mit beliebiger Anzahl von Eingangsvariablen realisiert. Bezogen auf konjunktives bzw. disjunktives Verknüpfungsglied mit mehreren Eingangsvariablen → konjunktiver bzw. disjunktiver Fundamentalausdruck, 356 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Minimale Normalform beliebiger Zustandsfunktion führt auf einfachste Realisierung der gewünschten Schaltung. ⇒ Optimierung von Schaltfunktionen (Minimierung) führt häufig zu umfangreichen schaltalgebraischen Berechnungen. Häufig vom gewählten Weg der Vereinfachung abhängig, ob man überhaupt die optimale Form der Schaltfunktion erhält. Diese Schwierigkeiten treten in der Regel nicht auf wenn man sich geometrischer Entwurfsverfahren bedient, wie sie durch die Methode nach Karnaugh-Veit gegeben sind. Methode nach Karnaugh und Veit, das Karnaugh-Veit-Diagramm, zur Ermittlung der minimalen Normalform für Schaltungsentwürfe mit bis zu vier Variablen relativ leicht handhabbar. 357 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Minimierungsverfahren nach Karnaugh-Veit Für n Boolesche Variable erhält man 2n Minterme; Anzahl aller möglichen k-stelligen Binärmuster. 2n ist Anzahl der Ecken eines k-dimensionalen Würfels, womit jeder Ecke des n-dimensionalen Würfels ein Minterm der n Booleschen Variablen zugeordnet werden kann. Zuordnung dergestalt, dass Minterme, die sich nur in einem Konjunktionsglied unterscheiden, solchen Ecken zugeordnet, die durch eine Kante des Würfels miteinander verbunden sind. Zwei Minterme mit der Eigenschaft, dass sie sich nur in einem einzigen Konjunktionsglied voneinander unterscheiden heißen zueinander benachbart. So sind z.B. /A*B*/C*D und /A*/B*/C*D zwei benachbarte Minterme. Ein Minterm von n Booleschen Variablen besitzt einerseits genau n benachbarte Minterme. Andererseits gehen von jeder Ecke des ndimensionalen Würfels n-Kanten aus. 358 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Die Nachbarschaftsverhältnisse der Minterme können durch die Struktur des Würfels wiedergegeben werden. Benachbarte Minterme können nach der Regel ( A * B ) + (/ A * B ) = ( A + / A) * B = B vereinfacht werden. 359 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Karnaugh-Tafel beruht auf Nachbarschaftsbeziehungen der Minterme untereinander; anstatt in k-dimensionalen Würfel in zweidimensionaler Tafel eingetragen. AB CD 00 01 11 10 00 01 11 10 360 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Karnaugh-Tafel Jedem Quadrat der Tafel entspricht ein Minterm, welcher durch den ihm zugeordneten Zustand der Variablen angegeben ist ! Felder der Tafel so bezeichnet, dass sämtliche Quadrate mit gemeinsamer Kante benachbarten Mintermen zugeordnet sind. Linker Rand der Tafel mit dem rechten zu identifizieren und der obere Rand mit dem unterem, d.h. Quadrate der linken Spalte sind zu denen der rechten Spalte benachbart und die der oberen Zeile zu denen der unteren Zeile. 361 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Für die Boolesche Funktion F=(A*B*/C*D)+(A*B*C*D)+(/A*B*C*D)+(/A*B*C*/D) sei die minimale DNF gesucht DNF ⇒ ODER-Verknüpfung aller Minterme über der Menge der EingangsVariablen, deren Wert 1 ergibt. AB CD 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 0 1 1 0 10 0 1 0 0 Karnaugh Tafel der Funktion F=(A*B*/C*D)+(A*B*C*D)+(/A*B*C*D)+(/A*B*C*/D) 362 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Karnaugh-Tafel Benachbarte Felder repräsentieren benachbarte Minterme. Zusammengefasst werden können 2, 4, 8, 16 paarweise benachbarte Felder der KV-Tafel. Jeder Zusammenfassung von benachbarten Feldern entspricht die Zusammenfassung von zwei oder mehreren Mintermen zu einem Fundamentalausdruck, in dem gegenüber den Mintermen eine oder mehrere Variablen weniger vorkommen. ⇒ Optimierung von Schaltfunktionen (Minimierung) Größte noch mögliche Zusammenfassung von 1-Feldern liefert den Fundamentalausdruck mit der kleinsten Anzahl von Variablen 363 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Für Boolesche Funktion F=(A*B*/C*D)+(A*B*C*D)+(/A*B*C*D)+(/A*B*C*/D) ergeben sich drei mögliche jeweils zweifache Zusammenfassungen. Daraus resultierende konjunktive Fundamentalausdrücke sind: /A*B*C, B*C*D, A*B*D AB CD 00 01 11 10 00 0 0 0 0 01 0 0 13 0 11 0 1 12 0 10 0 11 0 0 Erster und dritter Fundamentalausdruck überdecken zusammen die mit 1 besetzten Felder vollständig ⇒ reichen zur Darstellung der Funktion F 364 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Beim zweiten Fundamentalausdruck /A*B*C, B*C*D, A*B*D sind die beiden übrigen Fundamentalausdrücke (eins und drei) zur Überdeckung der 1-Felder unbedingt erforderlich; eine solche Darstellung wäre aber aufwändiger. Minimale Normalform resultiert aus der einfachsten Überdeckung der mit 1 besetzten Felder der KV-Tafel. Minimale DNF der Funktion F lautet damit: F = (/A*B*C)+(A*B*D) Schaltung repräsentiert Verknüpfungsglieder mit mehreren Eingängen 365 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Häufig ist Frage nach der einfachsten Überdeckung (Überdeckung mit der geringsten Anzahl gefundener Fundamentalausdrücke) nicht eindeutig zu entscheiden ⇒ es gibt mehrere gleichwertige Überdeckungen ⇒ Vereinfachung der Funktion führt auf mehrere gleichwertige Lösungen ⇒ rechnerische Hilfsmittel erforderlich wie z.B. das Minimierungsverfahren nach Quine-Mc-Cluskey, mit dem sämtliche minimale Überdeckungen der vorhandenen Fundamentalausdrücke einer Funktion gefunden werden können 366 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Beispiel: KV-Tafel einer Funktion mit drei Variablen. A B C F 0 0 0 0 0 0 1 0 0 1 0 0 1 1 A BC 0 1 Minterme: B*C, A*B 0 00 0 0 DNF: 1 1 01 0 0 0 0 0 1 0 1 0 11 1 1 1 1 0 1 10 0 1 1 1 1 1 F=(A*B)+(B*C) Schaltung repräsentiert Verknüpfungsglieder mit mehreren Eingängen 367 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra KV-Tafel für 2 Variablen und Anordnung der Minterme und Kennzeichnung der Zeilen und Spalten 368 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Zusammenhang zwischen Wahrheitstabelle und KV Tafel für Schaltfunktion mit zwei unabhängigen Variablen dargestellt, aus disjunkter Verknüpfung zweier Minterme bestehend, d.h. a = (/ e1 * / e2 ) + (e1 * e2 ) Tabelle 3.6. Minterme *e 1 e1 e 2 /e * 1 1*e 369 0 0 Minterm / e1 * / e2 A 0 1 / e1 * e2 0 1 0 e1 * / e 2 0 1 1 e1 * e 2 1 1 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Darstellung dreier unabhängiger Variabler mittels KV-Tafel wobei k = 23 = 8 Möglichkeiten gegeben sind. Nr. e1 e2 e3 0 0 0 0 1 0 0 1 / e1 * / e2 * e3 2 0 1 0 / e1 * e2 * / e3 3 0 1 1 / e1 * e2 * e3 4 1 0 0 e1 * / e2 * / e3 5 1 0 1 e1 * / e2 * e3 6 1 1 0 e1 * e2 * / e3 7 1 1 1 e1 * e2 * e3 e /* 1 370 Rechnerstrukturen Teil 1 Teilfunktion / e1 * / e2 * / e3 Prof. Dr. Möller 3.2 Boolesche Algebra Nummerierung und Teilfunktionen werden der Reihe nach in einen Kasten mit acht Feldern übertragen, aufgeteilt in zwei Reihen mit je vier Feldern. 0 4 / e1 * / e2 * / e3 e1 * / e2 * / e3 1 5 / e1 * / e2 * e3 e1 * / e2 * e3 2 6 /e1*e2 */e3 e1 * e2 * / e3 3 /e *e *e 1 2 3 7 e1 * e2 * e3 e1=0 e1=1 Teilfunktionen so geordnet dass in oberer Reihe alle Kombinationen mit e1 = 0 stehen, in der unteren Reihe alle mit e1 1 = 1. Feld der unteren Reihe unterscheidet sich vom darüber liegenden Feld nur durch veränderte Variable e1 . Zwei nebeneinander liegende Felder dürfen sich nur in einer Variablen unterscheiden. Da diese Bedingung noch nicht erfüllt ist, werden Felder vertauscht: Feld 2 mit Feld 3 und Feld 6 mit Feld 7. 371 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra KV Tafeln für 3 Variable 372 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Beispiel für KV Tafeln mit Zweierblöcken und Viererblöcken 373 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra KV Tafeln für 4 Variable 374 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra KV Tafeln für 6 Variable 375 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Räumliche KV Tafeln für 6 Variable 376 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Arten von Viererblöcken 377 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Möglichkeiten der Blockbildung 378 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Wichtige Regeln bei der Anwendung von KV-Tafeln 379 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra DNF für Boolesche Funktion F=(/A*/B*/C*/D)+(A*/B*/C*/D)+(A*B*/C*D)+(A*/B*/C*D)+(/A*B*C*D) +(A*B*C*D)+(/A*/B*C*/D)+(/A*B*C*/D) ergibt vier mögliche jeweils zweifache Zusammenfassungen. Daraus resultierende konjunktive Fundamentalausdrücke sind: /B*/C*/D, A*/C*D, B*C*D, /A*C*/D /B*/C*/D AB CD 00 01 11 10 00 1 0 0 1 01 0 0 1 1 11 0 1 1 0 1 1 0 0 10 A*/C*D B*C*D /A*C*/D DNF: F = (/B*/C*/D)+(A*/C*D)+(B*C*D)+(/A*C*/D) 380 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra DNF für Boolesche Funktion F=(/A*/B*/C*/D)+(A*/B*/C*/D)+(A*B*/C*D)+(A*/B*/C*D)+(/A*B*C*D) +(A*B*C*D)+(/A*/B*C*/D)+(/A*B*C*/D) ergibt vier mögliche jeweils zweifache Zusammenfassungen. Daraus resultierende konjunktive Fundamentalausdrücke sind: /A*/B*/D, /A*B*C, A*B*D, A*/B*/C AB CD 00 01 11 10 00 1 0 0 1 01 0 0 1 1 11 0 1 1 0 10 1 1 0 0 Gleichwertige DNF: F=(/A*/B*/D)+(/A*B*C)+(A*B*D)+(A*/B*/C) 381 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra KV-Tafeln bisher nur zur Berechnung der DNF gegebener Funktionen verwendet. Können aber auch für die Ermittlung der KNF verwendet werden. Statt den 1-Feldern hat man die 0-Felder der KV-Tafeln zu betrachten. O-Felder sind die Maxterme zugeordnet ⇒ Zusammenfassen benachbarter Maxterme führt zu disjunktiven Fundamentalausdrücken Auswahl der gefundenen disjunktiven Fundamentalausdrücke erfolgt nach der einfachsten Überdeckung der 0-Felder ⇒ KNF 382 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Kombinatorischer Logik Entwurf A) Problemstellung y ist 1 wenn a 1 ist, oder b und c 1 sind. z ist 1 wenn b oder c 1 sind, aber nicht beide, oder wenn alle 1 sind D) Minimierte Ausgangsfunktion y bc 00 01 11 10 a 0 0 0 1 0 1 1 1 1 B) Wahrheitstabelle Eingänge a b 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 c 0 1 0 1 0 1 0 1 Ausgänge y z 0 0 0 1 0 1 1 0 1 0 1 1 1 1 1 1 a bc 1 00 01 11 10 0 0 1 0 1 1 0 1 1 1 y = a'bc + ab'c' + ab'c + abc' + abc z = a'b'c + a'bc' + ab'c + abc' + abc E) Logikglieder a b c y = a + bc z C) Ausgangsgleichungen y z z = ab + b’c + bc’ 383 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Minimierungsverfahren nach Quine-Mc-Clusky Von Quine entwickeltes Verfahren beruht, im Vergleich zum Verfahren nach Karnaugh-Veit, auf geometrischer Anordnung benachbarter Minterme bzw. Maxterme, welches durch mehrfache Anwendung eines Iterationsschrittes zum Ziel führt. McCluskey hat die Methode für die praktische Anwendung weiter entwickelt, indem er die von Quine formulierte Methode durch Ersetzen der Min- bzw. Maxterme durch äquivalente Dualzahlen der Berechnung besser zugänglich gemacht hat. McCluskey konnte darüber hinaus zeigen, dass durch Einteilung der Minterme der logischen Funktion in Gruppen mit konstanter Anzahl negierter Variabler, die Anzahl der Iterationsschritte reduziert werden kann. 384 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Verfahren nach Quine basiert auf KNF bzw. DNF. Ausgehend von DNF werden Minterme der logischen Zustandsfunktion F als Liste in einer Tabelle notiert. Zwei konjunktive Fundamentalausdrücke können zu einem vereinfacht werden, sofern sie die Voraussetzungen der nachfolgenden Gleichung erfüllen, ( A * B ) + (/ A * B ) = ( A * / B ) * B = B d.h. sie unterscheiden sich nur noch in einem Konjunktionsglied, welches die Negation des anderen ist. Demzufolge wird die Ausgangsliste dahingehend überprüft, ob sich zwei Fundamentalausdrücke nach obiger Beziehung zu einem vereinfachen lassen, 385 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra 1. Fundamentalausdruck wird mit allen in der Liste unter ihm stehenden Ausdrücken verglichen. Ist Voraussetzung der Gleichung gegeben wird der durch Vereinfachung entstandene Fundamentalausdruck in zweite Liste eingetragen. Danach 2. Fundamentalausdruck der ersten Liste mit allen in der Liste unter ihm stehenden Ausdrücken verglichen. Ist Voraussetzung der Gleichung gegeben, wird der durch Vereinfachung entstandene Fundamentalausdruck in die zweite Liste eingetragen. Auf diese Weise entsteht eine neue Liste von Fundamentalausdrücken, die daraufhin geprüft wird, ob sich in ihr ein 2. Fundamentalausdruck befindet, der sich vom 1. Fundamentalausdruck dadurch unterscheidet, dass er weniger (oder gleich viele) konjunktive Verknüpfungsglieder gegenüber dem anderen besitzt, in den übrigen Konjunktionsgliedern aber übereinstimmt. In diesem Fall wird der eine Fundamentalausdruck von dem anderen umfasst, d.h. er ist überflüssig und wird gestrichen. 386 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Hierdurch wird neue Liste gewonnen mit der die gleiche Prozedur erneut ausführt, mit dem Ergebnis einer neuen Liste, der dritten Liste. Mit dieser und mit den weiteren Listen wird in gleicher Weise solange verfahren, bis sich die Ergebnisliste von ihrer vorangegangenen Liste nicht mehr unterscheidet. Die Fundamentalausdrücke der Ergebnisliste werden als Primimplikation der Funktion F bezeichnet. Sie haben die Eigenschaft, dass sie sich nicht mehr vereinfachen lassen, ohne die gegebene Logikzustandsfunktion F zu verfälschen. 387 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Tabelle 3.7. Minimierung nach Quine Ausgangsliste (1. Liste) Zweite Liste Dritte Liste Vierte Liste /A*/B*/C*/D /A*/B*/C /A*/B /A*/B /A*/B*/C*D /A*B*/D /B*/C /A*/D /A*/B*C*/D /A*/C*/D /A*/B /A*/B /A*B*/C*/D /B*/&C*/D /A∧*/ /B*/D A*/B*/C*/D /A*/B*D A*/D /A*/C /A*/B*C*D /B*/C*D /B*/C C*D /A*B*C*/D /A*/B*C /B*D A*/B*/C*D /A*C*/D /B*/D /A*/B*C*D /A*B*/D /A*C A*/B*C*D A*/B*/C /A*C A*/B*C*D /A*C*D A*B*/D /B*C*D /A*/B*/C /A*B*C C*D A*/B*D C*D B*C*D /A+B*C A*C*D A*/B+D A*B*C*D B*C*D A*C*D 388 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Darstellung der Logikzustandsfunktion F durch disjunkte Verknüpfung aller konjunktiven Primimplikanten. DNF aller Primimplikanten nicht die einfachste Normalform von F, weshalb diese zu finden ist. Aus Beispiel ersichtlich: Funktionstabelle jedes Primimplikanten P umfasst mindestens die eines Minterms M, d.h. die Beziehung /M + P = 1 ist erfüllt, so dass Primimplikant P den Minterm M impliziert. Impliziert ein Primpimplikant einen Minterm wird das dem Minterm zugehörige Intervall durch den betreffenden Primimplikanten überdeckt. Kleinste Anzahl von Primimplikanten zur Darstellung der Funktion F ist damit gleichbedeutend der kleinsten Überdeckung des Gesamtintervalls aller Minterme Mi, die gesucht ist. Damit gilt I G ( F ) = M 1 * M 2 * M 3 * M 4 * M 5 * M 6 * M 7 * M 8 * M 9 * M 10 * M 11 389 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Zur Überdeckung des Teilintervalls Mi können entsprechende Primimplikanten eingesetzt werden was auf den Booleschen Ausdruck führt: I G ( F ) = ( P1 + P2 + P3 ) * ( P1 + P3 + P4 ) * ( P1 + P2 + P5 ) * P2 + P3 * ( P1 + P4 + P5 + P6 ) * ( P2 + P5 ) * ( P3 + P4 ) * ( P5 + P6 ) * ( P4 + P6 ) * P6 . Werden die Pi wie folgt festgelegt, 0 Pi = 1 wobei Pi = 0 nicht zur Überdeckung verwendet wird, dann ist IG(F) der zur Normalform F adjungierte Boolesche Ausdruck. 390 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Aufbauend auf Quine-Verfahren konnte McCluskey zeigen wie durch geeignete Gruppierung der Fundamentalausdrücke der Ausgangsliste vermieden werden kann jeden Fundamentalausdruck mit jedem anderen zu vergleichen, wodurch die Prozedur der Listenerzeugung erheblich verkürzt wird. Verfahren von QuineMcCluskey hat Nachteil, da es prinzipiell von der Normalform ausgeht, was bei Funktion F mit geringer Variablenzahl nicht störend ist, aber bei Funktionen mit großer Variablenzahl. Um Nachteil zu beheben wurde Verallgemeinerung des Verfahrens nach Quine-McCluskey eingeführt. Verwendet Begriff benachbarter Fundamentalausdrücke ⇒ Verallgemeinerung Begriff benachbarter Minterme bzw. Maxterme. Konjunktiver Fundamentalausdruck besteht aus Konjunktionen negierter und nicht negierter Variablen, jede Variable kommt nur einmal vor, keine Einschränkung der Allgemeingültigkeit da Ausdruck aus Konjunktionen negierter und nicht negierter Variablen mit Hilfe der Booleschen Algebra so weit reduziert wird, dass jede Variable nur einmal auftritt, sog. Konsensus-Verfahren. 391 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 392 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Sequentieller Logikentwurf A) Problemstellung C) Implementations Model Entwicklung Taktunterteilung welche das existierenden TaktSignal derart unterteilt das jeweils nach vier Takten eine 1 am Ausgang anliegt a Kombinatorische Logik B) Zustands-Diagramm x=1 x=0 0 a=1 1 a=0 x=0 393 Q0 Zustandsregister a=0 3 a=1 I1 I0 Q1 a=0 x I1 I0 D) Zustands Tabelle (Moore-Type) Eingang Q1 Q0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 a 0 1 0 1 0 1 0 1 Ausgang I1 I0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 a=1 a=1 2 x=0 a=0 Implementations Model gegeben: • Sequentieller Logikentwurf kann in kombinatorischen Logikentwurf überführt werden Rechnerstrukturen Teil 1 Prof. Dr. Möller x 0 0 0 1 3.2 Boolesche Algebra Sequentieller Logikentwurf F) Kombinatorische Logik E) Minimierte Ausgangsgleichungen I1 Q1Q0 00 a 01 11 10 0 0 0 1 1 1 0 1 0 1 01 11 10 I0 Q1Q0 00 a 0 0 1 1 0 1 1 0 0 1 x Q1Q0 00 a x I1 = Q1’Q0a + Q1a’ + Q1Q0’ I1 I0 = Q0a’ + Q0’a I0 01 11 10 0 0 0 1 0 1 0 0 1 0 394 a x = Q1Q0 Q1 Q0 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 395 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 3.4.Schaltnetze 3.4.1 Binäre Schaltnetze 3.4.2 Schaltnetzsynthese aus Verknüpfungsgliedern 3.4.3 Vermaschung von Schaltnetzen 3.4.4 Entwurf von Schaltnetzen 3.4.5 Prüfen von Schaltnetzen 3.4.6 Zeitverhalten 396 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Binäre Schaltnetze basieren auf dualen Zahlensystem: → binäre Funktionen in HW realisiert → Zuweisung für binäre Logik durch Schaltvariable, d.h. Variable der binären Logik, deren Ein- und Ausgangsvariable den Zeichenvorrat 0 und 1 aufweisen, die den Informationsgehalt repräsentieren (Abschnitt 1.3.3) Schaltung mit k Ein- und m Ausgangsvariablen → eindeutige Zuordnung k binärer Eingangszustände zu m binären Ausgangszuständen (k ≥ 1, m ≥ 1) ⇒ Werte der Ausgangsvariablen A1, A2, ..., An hängen zu jedem beliebigen Zeitpunkt ausschließlich von Eingangsvariablen E1, E2, ..., Em zu diesem Zeitpunkt ab. → binäres Schaltnetz leistet Zuordnung der Zeichen eines binären k-Bit Codes zu Zeichen eines binären m-Bit Codes. ⇒ Codeübersetzer → spezifische Eigenschaften durch Codezuordnungstabelle angegeben → mittels Boolescher Algebra beschreibbar 397 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 398 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Schaltnetze kausal & deterministisch: Schaltnetze → speicherfreie kombinatorische sequentielle Logikschaltungen. Speicherfreiheit → Ausgangsvariable eindeutig Eingangsvariablen zugeordnet Schaltnetz durch • Wertetabelle: • • • enthält mögliche Wertekombinationen der Eingangs- und Ausgangsvariablen. Schaltnetz mit m Eingangsvariablen hat 2m Zeilen. zu den verschiedenen Wertekombinationen der Eingangsvariablen werden die Werte der Ausgangsvariablen des Schaltnetzes angegeben • • • Schaltfunktion algebraische Beschreibung durch System von n Booleschen Gleichungen Darstellung Booleschen Funktion durch Komposition aus elementaren Verknüpfungsgliedern gegeben. 399 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Schaltnetzentwurf: 1. 2. 3. 4. Schaltfunktion A = F(E) F: f1, …, fm Boolesche Funktionen fi Wertetabelle erstellen Normalform aufstellen (2 Möglichkeiten) a.) fi DNF aufstellen b.) fi KNF aufstellen 5. Minimale Normalform aus KV Tafeln finden 6. Schaltplan erstellen 7. Dokumentation erstellen 400 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze A1 = F1 ( E 1 , E 2 ,..., E m ) A2 = F2 ( E1 , E 2 ,..., E m ) …... An = Fn ( E 1 , E 2 ,..., E m ) Sowohl Variable Em und An, als auch Schaltfunktionen Fn, können jeweils nur einen der beiden Werte 0 und 1 annehmen. ⇒ Boolesche Algebra → für jede Ausgangsfunktion eines Schaltnetzes Entwurf der Logikschaltung zu entwerfen. ⇒ Teilschaltungen des Schaltnetzes besitzen stets die gleichen Zustände → Vermaschung untereinander unabhängigen Teilschaltungen zu einer einfacheren Teilschaltung 401 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Eingänge der Teilschaltungen, aus denen Schaltnetz sich zusammensetzt, besitzen immer die gleichen Zustände, weshalb Vermaschung der untereinander unabhängigen Teilschaltungen zu einer einfacheren Gesamtschaltung erfolgen kann. Vermaschung repräsentiert Verbindungsmatrix, welche die direkten Verbindungen zwischen den Knoten der Logikschaltung enthält, sowie die Ausgangsmatrix, welche die Zustandfunktionen der Verbindungen zwischen den Knoten der Logikschaltung beschreibt. Verbindungsmatrix entspricht Konstruktionsanweisung der Schaltung Ausgangsmatrix gibt die logische Struktur wieder 402 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 3.4.Schaltnetze 3.4.1 Binäre Schaltnetze 3.4.2 Schaltnetzsynthese aus Verknüpfungsgliedern 3.4.3 Vermaschung von Schaltnetzen 3.4.4 Entwurf von Schaltnetzen 3.4.5 Prüfen von Schaltnetzen 3.4.6 Zeitverhalten 403 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Die in Form einer Wertetabelle beschrieben Schaltnetze können in Boolescher Algebra ausgedrückt werden. • jeder Ausgang des Schaltnetzes wird durch Zustandsfunktion dargestellt • gesamtes Schaltnetz wird durch System von Zustandsfunktionen ausgedrückt • jeder Ausgang kann durch eigenes Schaltnetz entsprechend seinem Booleschen Ausdruck realisiert werden • Schaltnetze sämtlicher Ausgänge eines Schaltnetzes ergeben zusammen Realisierung des gesamten Schaltnetzes • Teilschaltnetze für die einzelnen Ausgänge unabhängig voneinander • Realisierung damit unvermascht • Teilschatnetzen gemeinsam ist, dass Zustand aller Eingangsvariablen der Teilschaltnetze jeweils gleich ist • Ermöglicht die Vermaschung der einzelnen Teilschatnetze miteinander 404 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Ausgangspunkt Vermaschung ist unvermaschtes Schaltnetz wobei entweder • jedes unabhängige Teilschaltnetz die Realisierung einer KNF ist oder • jedes der Teilschaltnetze die Realisierung einer DNF ist Beispiel: Wertetabelle Schaltnetz mit fünf Eingänge und fünf Ausgängen 405 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Folgende DNF genügt den Bedingungen der Wertetabelle F1 = (/ A * B * / C * D * / E ) + ( A * / B * C * / D * / E ) + ( A * / B * C * D * / E ) F2 = (/ A * / B * / C * D * / E ) + (/ A * / B * / C * D * E ) + (/ A * B * / C * D * / E ) + (/ A * B * / C * D * E ) + ( A * / B * / C * / D * / E ) + ( A * / B * C * / D * / E ) + (A* / B *C * / D * E) + (A* / B *C * D * / E) + (A* / B *C * D * E) F3 = (/ A * B * / C * D * / E ) + ( A * / B * / C * D * E ) + (/ A * B * / C * D * / E ) + (/ A * B * / C * D * E ) + ( A * / B * C * / D * E ) F4 = (/ A * B * / C * D * / E ) + (/ A * B * / C * D * E ) + ( A * / B * C * / D * / E ) + (A* / B *C * / D * E) + (A* / B *C * D * / E) + (A* / B *C * D * E) F5 = (/ A * / B * / C * D * / E ) + (/ A * / B * / C * D * E ) + (/ A * B * / C * D * / E ) + (/ A * B * / C * D * / E ) + ( A * / B * C * / D * / E ) + ( A * / B * C * / D * E ) 406 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Folgende fünf DNF genügen Bedingungen der Wertetabelle F1 = ( A * / B * C * / E ) + (/ A * B * / C * D * / E ) F2 = ( A * / B) + (/ A * / C * D) F3 = ( A * / B * C * / D * E ) + (/ C * D) F4 = ( A * / B * C ) + (/ A * B * / C * D) F5 = ( A * / B * C * / D) + (/ A * / C * D) Annahme für weitere Betrachtung: • nur UND- und ODER Verknüpfungsglieder mit jeweils zwei Eingängen verfügbar, • Eingänge A, B, C, D, E liegen auch negiert vor 407 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze F1 = (A*/ B*C*/ E) +(/ A*B*/ C*D*/ E) F2 = (A*/ B) +(/ A*/ C*D) F3 = (A*/ B*C*/ D*E) +(/C*D) F4 = (A*/ B*C) +(/ A*B*/ C*D) F5 = (A*/ B*C*/ D) +(/ A*/ C*D) 408 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 3.4.Schaltnetze 3.4.1 Binäre Schaltnetze 3.4.2 Schaltnetzsynthese aus Verknüpfungsgliedern 3.4.3 Vermaschung von Schaltnetzen 3.4.4 Entwurf von Schaltnetzen 3.4.5 Prüfen von Schaltnetzen 3.4.6 Zeitverhalten 409 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Ausgangspunkt: • 5 DNF F1 = ( A + / B * C * / E ) + (/ A * B * / C * D * / E ) F2 = ( A * / B) + (/ A * / C * D) F3 = ( A * / B * C * / D * E ) + (/ C * D) F4 = ( A * / B * C ) + (/ A * B * / C * D) F5 = ( A * / B * C * / D) + (/ A * / C * D) • DNF: konjunktive Fundamentalausdrücke, disjunkt verknüpft 410 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze • Fundamentalausdrücke zu einer Menge zusammengefasst, Zugehörigkeit Fundamentalausdruck zu einer Boleschen Funktionen vermerkt, welche die Ausgänge beschreiben, bspw. durch Nummer {A*/B*C*/E (1), /A*B*/C*D*/E (1), A*/B (2), /A*/C*D (2), A*/B*C*/D*E (3), /C*D (3), A*/B*C (4), /A*B*/C*D (4), A*/B*C*/D (5), /A*/C*D (5)} • Verfahren zur Vermaschung von Schaltelementen liefert Anordnung der Fundamentalausdrücke der Menge 1. Menge nummerierter Fundamentalausdrücke wird festgestellt, Fundamentalausdruck /A*/C*D sowohl Bestandteil der Funktion F2 als auch der Funktion F5, d.h. er ist in der Menge zweimal aufgeführt , wird aber nur einmal notiert, wobei Zugehörigkeit zu beiden Funktionen vermerkt wird Beispiel: /A*/C*D (2,5) 2. Identifizieren von Fundamentalausdrücken wird für gesamte Menge durchgeführt. Angegebener Fundamentalausdruck ist einziger Fall in dem das Identifizieren zweier Fundamentalausdrücke möglich ist. Man erhält: {A*/B*C*/E (1), /A*B*/C*D*/E (1), A*/B (2), /A*/C*D (2,5), A*/B*C*/D*E (3), /C*D (3), A*/B*C (4), /A*B*/C*D (4), A*/B*C*/D (5)} 411 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Für unter 2. angegebene Menge von Fundamentalausdrücken resultiert eine Kette in Verknüpfungsgliedern mit zwei Eingängen /C*D (3), /A*/C*D (2,5), /A*B*/C*D (4), /A*B*/C*D*/E (1) 412 /C*D (3) /A*/C*D (2,5) B*/A*/C*D (4) /E*B*/A*/C*D (1) Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Für unter 2. angegebene Menge von Fundamentalausdrücken resultiert EINE Kette in Verknüpfungsgliedern mit zwei Eingängen A*/B (2), A*/B*C (4), A*/B*C*/D (5) A*/B*C*/E (1) A*/B*C*/D*E (3) 413 A*/B (2), C*A*/B (4), /D*C*A*/B (5) /E*C*A*/B (1), E*/D*C*A*/B (3), Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Vermaschte Schaltung für die 5 DNF benötigt 14 Verknüpfungsglieder und 11 Eingänge 414 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Vermaschtes Schaltnetz bei Verwendung von Verknüpfungsgliedern mit maximal fünf Eingängen F1 = ( A* / B*C * / E) + (/ A* B* / C * D* / E) F2 = ( A* / B) + (/ A* / C * D) F3 = ( A* / B*C * / D* E) + (/ C * D) F4 = ( A* / B*C) + (/ A* B* / C * D) F5 = ( A* / B*C * / D) + (/ A* / C * D) 415 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Vermaschung repräsentiert • Verbindungsmatrix, welche direkte Verbindungen zwischen den Knoten der Logikschaltung enthält, • Ausgangsmatrix, welche die Zustandfunktionen der Verbindungen zwischen den Knoten der Logikschaltung beschreibt. Zur Darstellung binärer Schaltungen auf Ebene von Einzelschaltern wird auf die Verbindungsmatrix, →entspricht Konstruktionsanweisung der Schaltung, und die Ausgangsmatrix, → gibt logische Struktur wieder zugegriffen. 416 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Beispiel: Verbindungsmatrix einer binären Schaltung Vermaschte Schaltung durch Knoten 1, 2, 3, 4 in Abschnitte unterteilt. Knoten: markiert Punkt in Logikschaltung Knoten: Verzweigungspunkte bzw. Klemmen einer Schaltung gewählt. Direkte Verbindung zwischen zwei Knoten entspricht Schaltungsweg (Realisierung). Damit können Schaltnetze derart notiert werden, das es möglich ist, unmittelbar die direkten Verbindungen zwischen den Knoten abzulesen. A 1 B 2 C 4 D 3 417 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Schaltung in Form notiert, die es ermöglicht, unmittelbar direkte Verbindungen zwischen allen Knoten abzulesen ⇒ quadratisches Schema Verbindungsmatrix Diagonalglieder der Verbindungsmatrizen sind stets 1 ν11 ν12 ν21 ν22 ν = . . νm1 νm2 418 . ν1n . ν2n . . . νmn Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze A 1 B 2 C 4 D 3 v11 stellt Verbindungsweg des Knoten 1 zum Knoten 1 dar, d.h. v11 ist Boolesche Funktion die konstant 1 ist (Diagonalglied), v12 kennzeichnet Verbindungsweg vom Knoten 1 zum Knoten 2, d.h. v12 ist A, v13 stellt Schaltungsweg vom Knoten 1 zum Knoten 3 dar, d.h. v13 ist hier 0, da keine direkte Verbindung besteht, etc. Allgemein beschreibt vmn Verbindungsweg vom Knoten m zum Knoten n. Besteht für Verbindungsweg von einem Knoten m zu einem Knoten n keine direkte Verbindung, dann ist vmn = 0. Quadratisches Schema, welches die direkten Verbindungen der Knoten beschreibt, repräsentiert die Verbindungsmatrix oder Netzwerkmatrix 419 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Verbindungsmatrix für die vermaschte Schaltung lautet A 1 B 2 C 4 1 A0 B A10C V = 001D BCD1 D 3 Diagonalglieder von Verbindungsmatrizen sind stets 1. Im o.a. Beispiel ist die Verbindungsmatrix v symmetrisch, d.h. vik = vki 420 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Beispiel: Ausgangsmatrix einer binären Schaltung Für ein Verbindungsnetz mit vier Knoten erhält man für die Ausgangsmatrix: ν11 ν12 ν 21 ν 22 ν = . . ν ν m1 m2 421 . ν1n . ν 2n . . . ν mn Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Für das Verbindungsnetz mit vier Knoten erhält man für die Ausgangsmatrix die Matrix A + ( B * C) B * D + ( A* C * D) B + ( A* C) 1 A + ( B * C) C * D + ( A* C * D) C + ( A* B) 1 v = B * D + ( A*C * D) C * D + ( A* B * D) D 1 B + ( A * C) C + ( A* B) D 1 422 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 3.4.Schaltnetze 3.4.1 Binäre Schaltnetze 3.4.2 Schaltnetzsynthese aus Verknüpfungsgliedern 3.4.3 Vermaschung von Schaltnetzen 3.4.4 Entwurf von Schaltnetzen 3.4.5 Prüfen von Schaltnetzen 3.4.6 Zeitverhalten 423 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Schaltnetzentwurf möglich durch • logisches Schließen, • systematisches Probieren um die den gestellten Anforderungen zu erfüllen. Für komplexere Sachverhalte allgemeingültige Lösungsstrategie zweckdienlich, in Form eines Algorithmus abarbeitbar und brauchbare Lösung liefert. 424 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 1. Analyse der Aufgabenstellung → Erkenntnis ob Lösung mittels Schaltnetz möglich → Festlegung unabhängiger und abhängiger binärer Schaltvariablen durch deren Werte sich die Aufgabenstellung vollständige beschreiben lässt 2. Funktionstabelle zur Beschreibung des Schaltnetzes → Darstellung der Beziehungen zwischen unabhängigen und abhängigen Schaltvariablen 3. Ableitung DNF und KNF aus Funktionstabelle für zu beschreibende Schaltfunktionen des Schaltnetzes 4. Mit verfügbaren Komponenten für die booleschen Verknüpfungen Sachaltbild des Schaltnetzes entwerfen 5. Schaltbild in technische Realisierung übersetzen indem man Komponenten verbindet und mit Energie versorgt; danach statische und dynamische Tests 425 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Schaltnetz durch Ergänzung eines vorgegebenen Schaltnetzes realisieren: Zu entwerfendes Schaltnetz besitzt Eingangsvariable E1, E2, E3, … und Ausgangsvariable Ag1. ⇒ Schaltfunktion Ag1 = fg1 (E1, E2, E3, …) Realisierung des Schaltnetz unter Verwendung von vorgegebenen Schaltnetz 1 mit Eingangsvariablen E1, E2, E3, …A1 und Ausgangsvariable Av1. ⇒ Schaltfunktion Av1 = fv1 (E1, E2, E3, …A1) Schaltnetz 1 in Form höher integrierter elektronischer Schaltung fest konfiguriert vorhanden, wird durch noch zu bestimmendes Schaltnetz 2 ergänzt, zu entwerfendes Schaltnetz durch Schaltfunktion Ag1 = fg1 (E1, E2, E3, …A1)beschrieben. 426 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Beispiel: 427 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze ⇒ Entwurf von Schaltnetzen an binärwerten Konstrukten orientiert, die Eigenschaften einer gegebenen Zuordnungstabelle erfüllen. Vorteil Zuordnungstabelle: → idealer Ausgangspunkt für Schaltungssynthese, d.h. liefert Darstellungssätze der Schaltalgebra → Verfahren zur Ermittlung Boolescher Ausdrücke → für jede Zuordnungstabelle lassen sich verschiedene algebraische Ausdrücke, in jedem Fall mindestens zwei → für Darstellungssätze schaltalgebraischen Ausdrücke Boolescher Variablen sind zwei grundlegende Begriffe gebräuchlich: → Minterm → Maxterm. 428 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Beispiel: Motor mit Rechts- und Linkslauf soll mit Warnanzeige ausgerüstet werden • Motor enthält Funktionsschalter damit er für unterschiedliche Anwendungen eingesetzt werden kann • Funktionsschalter hat zwei Stellungen • Stellung a: Warnanzeige leuchtet bei Rechts und Linkslauf • Stellung b: Warnanzeige leuchtet nur dann wenn Motor nicht rechts herum läuft 429 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Textuelle Analyse der Aufgabenstellung Eingänge des Schaltnetzes: • mit Funktionsschalter erzeugte binäre Schaltvariable F mit den Werten • • • F= 0: Warnanzeige leuchtet bei Rechts- und Linkslauf F= 1: Warnanzeige leuchtet, wenn nicht Rechtslauf durch Geber für Rechtslauf erzeugt binäre Schaltvariable Gr mit den Werten • • • Gr = 0: nicht Rechtslauf Gr = 1: Rechtslauf durch Geber für Linkslauf erzeugt binäre Schaltvariable Gl mit den Werten • • Gl = 0: nicht Linkslauf Gl = 1: Linkslauf Schaltnetz hat nur einen Ausgang, bewirkt, dass Warnanzeige betätigt wird oder nicht. Schaltnetz hat dafür eine Schaltvariable W mit den Werten • • 430 W= 0: Warnlampe aus W= 1 Warnlampe an Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Beispiel: Beschreibung des Schaltnetzes durch Wertetabelle F Gr Gl W 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 x physikalisch unmöglich 1 0 0 1 nicht Rechtslauf 1 0 1 1 nicht Rechtslauf 1 1 0 1 Rechtslauf 1 1 1 x physikalisch unmöglich Motor steht still Rechts- oder Linkslauf Rechts- oder Linkslauf Durch Einführen von don´t care Feldern (* oder x) bei nicht vorkommenden Eingangskombinationen (Minterme) lassen sich Vereinfachungen erzielen. Felder * oder x erhalten dabei den (fiktiven) logischen Wert 1 (bzw. 0) 431 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.2 Boolesche Algebra Beispiel: Beschreibung des Schaltnetzes durch Wertetabelle F Gr Gl W 0 0 0 0 0 0 1 1 0 1 0 0 1 1 F Gr G l 0 1 1 00 0 1 1 x 01 1 1 0 0 1 1 0 1 1 11 1 1 1 1 0 0 10 1 0 1 1 1 x 432 Rechnerstrukturen Teil 1 Minterme: F*/Gr, /F*Gr, Gl DNF: F=(F*/Gr)+(/F*Gr)+Gl Prof. Dr. Möller 3.4 Schaltnetze Schaltbild des zu entwerfenden Schaltnetzes 433 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Beispiel Heizungssteuerung Heizölzufuhr für eine Heizung soll mit Schaltern • Schalter A befindet sich im Keller, • Schalter B in der Wohnung, ein- bzw. ausgeschaltet werden. Sicherheitsschalter C wird durch Thermoelement gesteuert, C wird geschlossen, wenn die Zündflamme erlischt. In diesem Fall wird die Ölzufuhr unterbrochen und der Alarm ausgelöst. 434 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Heizungssteuerung 435 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Analyse der Aufgabenstellung: Schaltung so zu konzipieren, dass Pumpe beim Betätigen von A oder B ein- bzw. ausgeschaltet wird. Wenn Schalter C geschlossen ist, soll eine Sperre S aktiviert werden, welche die Pumpe ausschaltet und den Alarm auslöst. Binäre Codierung A / B geschlossen → 1 C geschlossen → 1 S aktiviert → 1 Funktionsgleichung S wird aktiviert, wenn Zündflamme aus ist oder keiner der Handschalter geschlossen ist S = C + (/A * /B) 436 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Heizungssteuerung 437 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Alternativ kann man eine entsprechende Schaltung konstruieren, die nur aus NANDBausteinen besteht: Es gilt dann: S = (A NAND A) NAND (B NAND B) NAND (C NAND C) Heizungssteuerung 438 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Beispiel: Pumpensteuerung Zur Trinkwasserversorgung eines entlegen gelegenen Hauses wurde auf dem Dach ein Vorratsbehälter installiert. Das Wasser wird durch eine Hauptpumpe (HP) bzw. bei deren Versagen durch eine Reservepumpe (RP) in den Vorratsbehälter gepumpt. Zur Steuerung der Pumpen sind an diesen und am Behälter Sensoren befestigt, die melden, wenn der Vorratsbehälter nicht mehr ausreichend gefüllt ist bzw. die Pumpen defekt sind. Das Schaltnetz zur Steuerung der Pumpen ist zu entwickeln, welches ein Alarmsignal abgibt, wenn beide Pumpen defekt sind. 439 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Wasserbehälter 440 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Pumpensteuerung Binäre Codierung Vorratsbehälter ausreichend gefüllt → a = 1 Hauptpumpe in Ordnung → b = 1 Reservepumpe in Ordnung → c = 1 Hauptpumpe eingeschaltet → h = 1 Reservepumpe eingeschaltet → r = 1 441 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Pumpensteuerung Wahrheitswertetabelle unter der Annahme erstellt, das gesuchter Term bekannt sei: 442 a b c h r Alarm 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Pumpensteuerung Normalform/Umformungen Für h gilt: Anzahl der Nullen > Anzahl der Einsen → DNF h = (/a * b * /c) + (/a * b * c) h = (/a * b) * (/c + c) h = (/a * b) * 1 h = (/a * b) Für r gilt: Anzahl der Nullen > Anzahl der Einsen → DNF r = /a * /b * c 443 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 444 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4.4 Entwicklung von Schaltnetzen 1. Analyse der Aufgabenstellung → Erkenntnis ob Lösung mittels Schaltnetz möglich → Festlegung unabhängiger und abhängiger binärer Schaltvariablen durch deren Werte sich die Aufgabenstellung vollständige beschreiben lässt 2. Funktionstabelle zur Beschreibung des Schaltnetzes → Darstellung der Beziehungen zwischen unabhängigen und abhängigen Schaltvariablen 3. Ableitung DNF und KNF aus Funktionstabelle für zu beschreibende Schaltfunktionen des Schaltnetzes 4. Mit verfügbaren Komponenten für die booleschen Verknüpfungen Sachaltbild des Schaltnetzes entwerfen 5. Schaltbild in technische Realisierung übersetzen indem man Komponenten verbindet und mit Energie versorgt; danach statische und dynamische Tests 445 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 3.4.Schaltnetze 3.4.1 Binäre Schaltnetze 3.4.2 Synthese von Schaltnetzen aus Verknüpfungsgliedern 3.4.3 Verfahren zur Vermaschung von Schaltnetzen 3.4.4 Entwicklung von Schaltnetzen 3.4.5 Prüfen von Schaltnetzen 3.4.6 Zeitverhalten 446 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Statische Prüfung Simulation der Eingangssignale mittels einfacher Schalter → Ermittlung der Ausgangsvariablen als Folge der Eingangssignale → Erhaltene Ausgangsvariable mit Werten der Ausgangsvariablen verglichen die sich aus o o o Aufgabenstellung Funktionstabelle Schaltfunktionen ergeben Im Fehlerfall können Ursachen sowohl im Entwurf als auch in der Ausführung der Schaltung liegen. Man überprüft in der Regel ob realisierte Schaltung die entwickelte Schaltfunktion tatsächlich richtig wiedergibt 447 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Dynamische Prüfung Schaltnetz arbeitet einwandfrei → statische Prüfung weist keine Fehler auf; Schaltnetz trotzdem nicht für alle Anwendungsfälle geeignet Beispiel: Für einen Ausgang gibt es mehre Wege auf denen Eingangsvariable auf den Ausgang einwirkt → je nachdem wie viele Gatter die Signale zu durchlaufen haben unterscheiden sich die Signallaufzeiten auf diesen Wegen 448 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Dynamische Prüfung Beispiel: Wert Ausgangsvariable geht kurzzeitig auf 1 nach Änderung des Werts einer der Eingangsvariablen, obgleich nach statischem Entwurf Ausgangsvariable für beide Werte der Eingangsvariablen den Wert 0 besitzt. Derartige dynamische Fehler werden kombinatorische Übergangseinbrüche genannt (combinational hazards [hazards: Risiken, Gefahren]) ⇒Hazard: Abweichung eines Schaltnetzes von der logischen Vorgabe Dauer kombinatorischer hazards liegt in Größenordnung der Signallaufzeiten durch ein oder mehrere Gatter des Schaltnetzes 449 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Dynamische Prüfung Vom Eingang B zum Ausgang F gibt es zwei Wege: • über ein UND- und ein ODER-Gatter • über ein NICHT-, ein UND- und ein ODER-Gatter Wird B von 1 auf 0 geändert darf sich Wert der Funktion F = (A*B)+(/B*C) nicht ändern 450 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze 3.4.Schaltnetze 3.4.1 Binäre Schaltnetze 3.4.2 Synthese von Schaltnetzen aus Verknüpfungsgliedern 3.4.3 Verfahren zur Vermaschung von Schaltnetzen 3.4.4 Entwicklung von Schaltnetzen 3.4.5 Prüfen von Schaltnetzen 3.4.6 Zeitverhalten 451 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.4 Schaltnetze Zeitliche Verläufe der verschiedenen Signale im Schaltnetz unter der Annahme dargestellt, das sich jedes Gatter wie ein Totzeitglied verhält ,bei gleichen Totzeiten Kombinatorischer Übergangseinbruch bei Wert B von 1 auf 0 452 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD Anwenderprogrammierbare Logikbausteine (PLD) lassen sich durch ¾programmierbare Elemente ¾deren Zusammensetzung zu Logikblöcken erster und zweiter Ordnung beschreiben. In jedem IC dieser Klasse enthaltene Grundelemente sind: Eingangsblock Programmierbare UND- bzw. ODER-Zelle (bzw. NAND-,NOR-Zelle) Ausgangsblock Programmierbare Rückkopplung 453 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD 454 UND- ODER- MATRIX MATRIX Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD Programmierbare UND- bzw. ODER-Matrix basiert auf einheitlichem Grundprinzip: ⇒ jedes programmierbare Gatter erhält definierte Anzahl von Eingängen, die mit Eingangsblock oder anderer Zelle verbunden sein können so dass sowohl ein normaler als auch ein negierter Eingang an der Zelle anliegen. ⇒ Programmierelemente im unprogrammierten Zustand intakt, d.h. nicht unterbrochen, bedeutet für UND-Zelle dass logische Verknüpfung immer logisch „0“ ergibt, für ODER-Zelle dementsprechend immer logisch „1“. ⇒ offene, d.h. unterbrochene Eingänge für UND-Zellen sind mit dem Wert logisch „1“, für ODER-Zellen mit logisch „0“ belegt. 455 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD unprogrammiert inaktiv & & E1 E1 E2 E2 A = E1 & A = /E1 * E2 A 456 & A Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD Entwurf eines universellen Logikbausteins der vier Eingänge nach Wahl als UND, ODER, NOR bzw. NAND Gatter verknüpft; Logik soll in PLD Baustein implementiert werden. 457 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD 458 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD Für einen Einplatinencomputer für Steuerungsaufgaben soll die Adressdecodierung mit Hilfe eines programmierbaren Logikbausteins vom Typ GAL16V8 realisiert werden, durch die der entsprechende Baustein aktiviert wird. Die Belegung des Speicherbereichs sei folgende: 459 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD Um für jeden Baustein die Schaltfunktion des Aktivierungssignals ermitteln zu können, sind die hexadezimalen Adressen in binäre Werte umzurechnen. Im Anschluss daran können die gesuchten Produktterme gebildet werden, indem man ein Adressenbit invertiert, wenn es den Wert 0 aufweist, andernfalls bleibt es unverändert. Die Aktivierungsgleichungen für /CSR, /CSE, /CSP und CSDA lauten: /CSR 0000.0000.0000.0000 0001.1111.1111.1111 /CSE 0100.0000.0000.0000 0111.1111.1111.1111 /CSP 1100.0000.0000.0000 1100.0000.0011.1111 CDSA 1100.0000.0011.1111 1100.0000.0111.1111 /CSR = /A13 * /A14 * /A15 /CSE = A14 * /A15 /CSP = /A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * A14 * A15 CSDA = A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * A14 * A15 460 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD Die ermittelten Aktivierungsgleichungen sind als Programmiermodell für den programmierbaren Logikbaustein vom Typ GAL16V8 anzugeben. *IDENTIFICATION *TYPE GAL16V8; *PINS A6 = 2, A7 = 3, A8 = 4, A9 = 5, A10 = 6, A11= 7, A12 = 8, A13 = 19, A14 = 18, A15 = 17, /CSR = 16, /CSE = 15; /CSP = 14; CSDA = 13; *BOOLEAN EQUATION /CSR = /A13 * /A14 * /A15; /CSE = /A14 * /A15; /CSP = /A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * /A14 * /A15; CSDA = /A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * /A14 * /A15; *END 461 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD 462 Rechnerstrukturen Teil 1 Prof. Dr. Möller Einschub Grundlagen PLD 463 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 464 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 3.5 Schaltwerke 3.5.1 Binäre Schaltwerke 3.5.2 Synchrone Schaltwerke 3.5.3 Endlicher Zustandsautomat (FSM) 3.5.4 Mealy- und More Schaltwerke 3.5.5 Flip-Flops 465 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 3.5 Schaltwerke 3.5.1 Binäre Schaltwerke 3.5.2 Synchrone Schaltwerke 3.5.3 Endlicher Zustandsautomat (FSM) 3.5.4 Mealy- und More Schaltwerke 3.5.5 Flip-Flops 466 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Schaltnetz dadurch gekennzeichnet, dass Wert einer Ausgangsvariablen zu irgendeinem Zeitpunkt nur vom Wert der Eingangsvariablen zum gleichen Zeitpunkt abhängt; Schaltwerk verfügt neben Schaltnetz auch über funktionelle Zeitabhängigkeit, repräsentiert durch Speicherglieder Eingangssignale Ausgangssignale Schaltnetz Taktsignal 467 Speicherglieder Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Schaltwerk hat k Speicherglieder → k innere Zustandsvariablen, → 2k verschiedene innere Zustände. Schaltwerke unterteilt in • synchron • asynchron 468 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke • Funktionseinheit zum Verarbeiten von Schaltvariablen, deren Ausgangswerte zu einem beliebigen Zeitpunkt von Eingangswerten zu diesem und endlich vielen vorangegangenen Zeitpunkten abhängen unterscheidet sich vom Schaltnetz durch seine inneren Zustände Innere Zustandsvariable Q des Schaltwerks als Ausgänge elementarer Speicherglieder realisiert, die jeweils Speicherung des Wertes einer binären Schaltvariablen ermöglichen Menge von Zustandsvariablen, enthält auch Glieder Boolescher Verknüpfungen zur Realisierung kombinatorischer Logikfunktionalität Werte der Ausgangsvariablen ergeben sich im Zeitpunkt n aus Werten der Eingangsvariablen und inneren Zustandsvariablen im gleichen Zeitpunkt. • • • • 469 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Werte der Ausgangsvariablen im Zeitpunkt n aus Werten der Eingangsvariablen und inneren Zustandsvariablen im gleichen Zeitpunkt bestimmt: A1n = F1 ( E 1n , E 2n ,..., E mn ;Q 1n , Q 2n ,..., Q mn ) A2n = F2 ( E 1n , E 2n ,..., E mn ;Q 1n , Q 2n ,..., Q mn ) ….. Amn = Fm ( E 1n , E 2n ,..., E mn ;Q 1n , Q 2n ,..., Q mn ) F1, F2, ... , Fm als Schaltfunktionen. 470 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 3.5 Schaltwerke 3.5.1 Binäre Schaltwerke 3.5.2 Synchrone Schaltwerke 3.5.3 Endlicher Zustandsautomat (FSM) 3.5.4 Mealy- und More Schaltwerke 3.5.5 Flip-Flops 471 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Synchrones Schaltwerk: • Eingangsvariable müssen Randbedingungen für Synchronisation erfüllen, d.h. Eingangsvariable ändern Werte in bestimmten Zeitintervallen nicht • Zeitpunkte wichtig zu denen Ausgangssignale betrachtet werden. • Abläufe im Schaltwerk durch synchronisierende Taktsignale synchronisiert d.h. des Schaltwerkinhalt ändert sich nur bei Eintreffen eines Taktsignals. • Binäre Werte vom Speicherglied synchron bei Taktflanke übernommen, bei ansteigender als auch bei abfallender Taktflanke • Speicherglieder speichern interne Zustände, bezüglich des Zustands der Speicherglieder wird vom inneren Zustand des Schaltwerks gesprochen. • Modelle zur Beschreibung des funktionalen Verhalten vorhanden, entstammen der Automatentheorie wobei hinsichtlich ihrer Komplexität unterschiedliche Automaten als Schaltwerksmodelle unterschieden werden. 472 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Eingangssignale x Ausgangssignale g(u, x) y f(u, x) u(t u(t ) n Taktsignal n+1 ) Speicherglieder C 473 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beschreibung des Schaltwerkes anhand der Notation x = [ x 1 , x 2 ,..., x n ] als Eingangsvektor, y = [ y 1 , y 2 ,..., y n ] als Ausgangsvektor, ntu= ([)1 ), u(tn ) = [u1(tn ),u2 (tn ),...,un (tn )] als aktueller Zustand und u ( t n +1 ) = [ u1 ( t n +1 ), u 2 ( t n +1 ),..., u n ( t n +1 )] als nächster Zustand, mit x1, x2,..., xn: als Eingangsvariable , y1, y2,..., yn: als Ausgangsvariable, u1, u2,..., un: als Zustandsvariable. 474 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke • Eingangsvektor x und Ausgangsvektor y charakterisieren gesamtes Schaltwerk, Zustandsvektor u unterscheidet zwischen o gegenwärtigen am Schaltnetz gültigen Zustand u(tn) o erzeugten und erst demnächst, d.h. nach einer Verzögerung wirksamen Zustand u(tn+1) ntu= ([)1 ), • 475 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 3.5 Schaltwerke 3.5.1 Binäre Schaltwerke 3.5.2 Synchrone Schaltwerke 3.5.3 Endlicher Zustandsautomat (FSM) 3.5.4 Mealy- und More Schaltwerke 3.5.5 Flip-Flops 476 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Zustandsautomat (State Maschine) • synchrones Schaltwerk, bekommt zur Speicherung prominentes Signal, den Takt. • repräsentiert wesentliche Funktionseinheiten digitaler Datenverarbeitungssysteme, z.B. im o Steuerwerk o Rechenwerk. • einfache und zusammengesetzte Zustandsmaschinen bei industriellen Steuerungen in umfangreichem Maße eingesetzt. 477 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel: a) Vereinfachtes Modell b) Tabelle Getränkeautomat 478 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel: • • • Eingabe erfolgt zu diskreten Zeitpunkten ti; i= 0, 1, 2, …, n Automat reagiert auf Eingaben mit entsprechenden Antworten Antworten auf eine bestimmte Eingabe können irgendwann zwischen dieser Eingabe und der nächsten erfolgen Synchronisation der Operationen indem Automat nur zu festgelegten Zeitpunkten (Taktsignalen) betrachtet Antworten des Automaten auf eine Eingabe zum Zeitpunkt ti erscheint zum Zeitpunkt ti+1 Automat besitzt zwei unterschiedliche Zustände: o Externe (sichtbare) Zustände → Kaffeeausgabe des Automaten o Innere (nicht sichtbare) Zustände → Zustand des Automaten bei Kaffeeausgabe • • • 479 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel: Zustände: • Nach Geldeinwurf: Automat geht in Folgezustand Warten • Nach Auswahl, z.B. Kaffe wechselt Automat in den nächsten Folgezustand Kaffee • N.B. sowohl bei diesem Zustand als auch zum vorherigen Zustand wird nichts ausgegeben, da beide Zustände innere Zustände repräsentieren • Nach Auswahl nur Milch oder nur Zucker oder Milch und Zucker (Zustände Kaffee-Milch, Kaffee-Zucker, Kaffee-Milch-Zucker) wechselt Automat in den Zustand Ausgabe und liefert z.B. Kaffee mit Milch und Zucker • Automat geht in den inneren Zustand Bereit über 480 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel: Tabelle Getränkeautomat 481 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel: Resümee: • Operationen des Automaten durch diskrete Taktsignale synchronisiert • Verhalten des Automaten deterministisch → Verhalten auf gegebene Folge von Eingaben vollständig vorhersagbar • Automat reagiert auf Eingaben • Automat kann endliche Anzahl von Zuständen einnehmen • Zu jedem gegebenen Zeitpunkt befindet sich der Automat in einem dieser Zustände; welchen Zustand der Automat als nächstes einnimmt sowohl von der Eingabe als auch vom aktuellen Zustand abhängig • Automat erzeugt Ausgaben, vom aktuellen Zustand abhängig → Gedächtnis in Form von Zuständen und Eingaben 482 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Endlicher Zustandautomat (DEA;DFA;FSM) Definition Endlicher deterministischer Zustandsautomat (FSM) durch ein 6-Tupel (E, A, Z, z0, ω,δ) definiert. Dabei sind: • E: Eingabemenge (endlich) • A: Ausgabemenge (endlich) • Z: Zustandsmenge (endlich) • z0: Startzustand (Element aus Z) • ω: Funktion zur Berechnung der aktuellen Ausgabe • δ: Funktion zur Berechnung des Folgezustands 483 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel: • Eingabemenge E Getränkeautomat enthält als Elemente • Münzeinwurf • Kaffeetasse • etc. Ausgabemenge A beinhaltet Ausgabe der jeweiligen Getränke, aber auch nichts Zustandsmenge Z besteht aus • Kaffee-Zustand • Warte-Zustand • etc. Startzustand z0 ist hier der Bereitschafts-Zustand ω und δ sind Abbildungen zwischen den drei Mengen • • • • 484 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Darstellungsformen Zustandsautomaten auf verschiedene Weise beschrieben: • graphisch, • tabellarisch, • textuell → für Finite State Machine Syntax (FSM) wichtig 485 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Repräsentation FSM • • • • • Kreise repräsentieren Zustände Doppelkreis beschreibt Startzustand Kanten beschreiben die Transition von einem Zustand in den nächsten Jede Kante ist durch Kondition gekennzeichnet Trennungsstrich weist auf separate Aktion hin • 486 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Darstellungsformen Erweiterung der Funktionstabelle für Schaltnetze Zustandsfolgetabellen: → beschreiben Funktion eines Zustandsautomaten; → beinhalten als Eingangsvariablen Komponenten des Eingangsvektors x und des Zustandsvektors u(tn), → beinhalten als Ausgangsvariable Komponenten des Ausgangsvektors y und Komponenten des Folgezustandsvektors u(tn+1), → für jede Ausgangskomponente kann Schaltnetz in DNF oder anderer Form synthetisiert werden → Speicherfunktion wird geeigneten Registertyp übertragen. Zustandsgraphen → beschreiben in graphischer Form das Verhalten von Zustandsautomaten. Hierzu werden Knoten und Kanten benutzt, wobei die Knoten, dargestellt als Kreise, die inneren Zustände des Automaten darstellen. 487 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel Zustandsgraph: Vorwärts-Rückwärtszahler • einschrittige Kodierung, mit jedem Übergang ändert sich nur ein einziges Bit • Zählrichtung: Eingang '1', wird aufwärts, andernfalls abwärts gezählt • Zustandsdiagramm des modulo-4-Vorwärts-Rückwärts-Zählers: 488 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke DEA (DFA) besitzt wichtige Eigenschaften zur technischen Realisierung von Zustandsautomaten wie z.B.: • • Startzustand, beim Einschalten und beim Reset eingenommen für jede Bedingung genau ein Übergang in den Folgezustand, der auch der bisherige Zustand sein kann (Determinismus), Existenz mindestens eines Endzustands, bei DFAs z.B. zur Erkennung einer Grammatik notwendig, in technischen Systemen eher vernachlässigt • 489 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Ausgabe: Vorwärts-Rückwärtszahler • einschrittige Kodierung, mit jedem Übergang ändert sich nur ein einziges Bit • Ausgabe durch aktuellen Zählerstand als Binärwert beschrieben • Zustandsdiagramm für diesen Automaten 490 Rechnerstrukturen Teil 1 z1 z2 y1 y2 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 Prof. Dr. Möller 3.5 Schaltwerke Finite State Machine Syntax FSM an DEA-Darstellung angelehnt (DEA) → als Zustandsgraphen dargestellt, → entspricht gerichteten beschrifteten Graph → Knoten und Kanten zur Darstellung genutzt → Knoten, dargestellt als Kreise, stellen Zustände des DEA (DFA) dar. Kanten, richtungweisende Linien zwischen den Knoten, kennzeichnen Übergang zwischen zwei aufeinander folgenden Zuständen. Kanten z.B. mit Binärwerten des Eingangsvektors bezeichnet, um Bedingungen zum Transfer in einen anderen Folgezustand zu benennen. 491 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Wesentliche Sprachelemente in FSM sind: • Deklarationen von Inputpins (nur extern), • Deklarationen von internen Knoten und Outputpins mit Angabe des Typs (Registertyp, kombinatorisch), • Deklarationen von Konstanten, auch in vektorieller Form, • Kombinatorische Gleichungen, • Bezeichnung von Zuständen und Zuordnung zu Ausgangspins oder internen Knoten, • Formulierung von Bedingungen für den Übergang zwischen verschiedenen Zuständen; hierfür werden Sprachkonstrukte wie IF..THEN..ELSE, CASE..ENDCASE, GOTO usw. benötigt, • Innerhalb CASE .. ENDCASE Konstrukts wird für Zustand der oder die Nachfolgezustände festgelegt sowie Bedingungen, unter denen Übergang zwischen den Zuständen erfolgen soll beschrieben. 492 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 3.5 Schaltwerke 3.5.1 Binäre Schaltwerke 3.5.2 Synchrone Schaltwerke 3.5.3 Endlicher Zustandsautomat (FSM) 3.5.4 Mealy- und More Schaltwerke 3.5.5 Flip-Flops 493 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Bezeichnung Mealy Schaltwerk geht auf Veröffentlichung von George Mealy zurück. Definition Endlicher deterministischer Automat (DEA) mit Ausgabe wird MealyAutomat genannt, wenn er durch ein 6-Tupel (E, A, Z, z0, ω, δ) definiert ist. Dabei repräsentieren • • • • • • E finiten Satz des Eingangs Alphabets (E=[e0, ,,, ,en] ) A finiten Satz des Ausgabe Alphabets (A=[ao, …, a n] ) Z finiten Satz (endliche nicht leere Menge) von Zuständen (Z = [ z0, ... , zn]) z0 den Anfangszustand (z0 ∈ Z) ω die Ausgangsfunktion (ω : Z × E → A). δ die Transition (Überführungsfunktion) (δ : Z × E → Z). 494 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Schematische Darstellung des Mealy Schaltwerks Ausgabe nicht nur von aktuellem Zustand abhängig sondern auch von der Eingabe (gestrichelter Pfeil) → zwei Möglichkeiten zum Ändern der Ausgabe • Änderung der Eingabe • Änderung des inneren Zustands Eingangssignale Ausgangssignale Schaltnetz Taktsignal 495 Speicherglieder Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Automatentheorie: Mealy Schaltwerk → finiter Zustandsautomat bei dem die Ausgänge durch die aktuellen Zustände der Eingänge festgelegt sind. Zustandsdiagramm Mealy Automat beinhaltet ein Ausgangssignal für jede Übertragungskante Beispiel: Zustandsübergang Mealy Automat von Zustand 1 in Zustand 2 für Eingang 0 resultiert im Zustand 1 für den Ausgang (Kante wird mit 0/1 gekennzeichnet) Im Vergleich dazu hängt der Ausgangs beim Moore Automat nur vom aktuellen Zustand ab und nicht vom aktuellen Eingangszustand 496 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Bezeichnung Moore Schaltwerk geht auf Veröffentlichung von Edward Moore zurück. Definition Ein endlicher Automat mit Ausgabe wird Moore-Automat genannt, wenn er durch einen 6-Tupel (E, A, Z, z0, ω, δ)definiert ist, dessen Ausgabefunktion ω: Z→A nur vom aktuellen Zustand abhängt. Die Anzahl der Zustände des Moore-Automaten ist größer oder gleich der Anzahl der Zustände des entsprechenden Mealy Automaten 497 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Schematische Darstellung des Moore Schaltwerks Ausgabe nur von aktuellem Zustand abhängig → Ausgabe ändert sich nur dann, wenn sich auch der Zustand ändert Eingangssignale Ausgangssignale Schaltnetz Taktsignal 498 Speicherglieder Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Unterschiede zwischen Moore und Mealy Automat prinzipieller Natur: • Moore-Automat kann Änderung einer Eingangsvariablen grundsätzlich erst bei nächster Taktflanke am Ausgang des Schaltwerks zeigen • Mealy-Automat Eingangsvariablen können Ausgang direkt beeinflussen. 499 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 500 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Resümee: • Mealy Schaltwerk: Für jeden Zustand sind, gesteuert von den Eingängen, verschiedene Ausgänge möglich → direkter Durchgriff der Eingänge auf die Ausgänge und sofortige Reaktion der Ausgänge auf die Eingänge möglich. • Moore Schaltwerk: Ausgänge hängen nur vom Zustand ab → Eingänge können Ausgänge nicht direkt beeinflussen. Für Ausgangs Änderungen ist Zustandwechsel notwendig →immer erst mit der nächsten Taktflanke • Mealy und Moore Schaltwerk durch Zustandsgraphen beschrieben. • Ausgänge hängen beim Mealy Schaltwerk von Eingängen ab, sind im Graphen nicht mehr den Zuständen sondern den Zustandsübergängen zugeordnet, die ebenfalls von Eingängen abhängen • Ein- und Ausgangsbitmuster direkt aufgeschrieben, durch Schrägstrich getrennt. Beispiel: E1 E2 / A1 A2 501 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Mealy Schaltwerk Z 502 /E1 E2 / A1 A2 01 / 11 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel Speicherwerk: wichtige Teilgruppe synchroner Schaltwerke 503 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Beispiel Steuerwerk: wichtige Teilgruppe synchroner Schaltwerke • Steuerwerk bildet der Aufbau von Mikroprogramm-Steuerwerken zur Befehlssteuerung in Mikroprozessoren. • Mikroprozessor-Befehl wird in Folge so genannter Mikrobefehle zerlegt. • Die entsprechende Sequenz wird in einem Mikroprogramm-Speicher abgelegt. 504 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 3.5 Schaltwerke 3.5.1 Binäre Schaltwerke 3.5.2 Synchrone Schaltwerke 3.5.3 Endlicher Zustandsautomat (FSM) 3.5.4 Mealy- und More Schaltwerke 3.5.5 Flip-Flops 505 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Im Unterschied zu binären Schaltnetzen ist zu einem bestimmten Zeitpunkt das Verhalten eines endlichen Automaten nicht allein vom Eingangssignal abhängig, sondern auch vom gerade erreichten inneren Zustand → Zustand bereits vor dem betrachteten Zeitpunkt eingetreten → während einer gewissen (kurzen) Zeitspanne gespeichert → Speicherfunktion mit Flipflops (bistabilen Kippstufen) realisiert 506 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Einfachste FF-Schaltung durch folgendeFunktionen charakterisiert: • FF-Ausgang kann auf "1" geschaltet werden ("Setzen" des FF), • FF-Ausgang kann auf "0" geschaltet werden ("Rücksetzen" des FF), • Nach Setzen oder Rücksetzen des FF soll Ausgang stabil bleiben ("Speichern" der Information). 507 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Bistabile Kippstufe (FF) Schaltung lässt sich von Q = 1 auf Q = 0 "kippen„ → Kippschaltung → bistabiles Element → Zum Setzen einfügen von Eingang S. → Zum Rücksetzen einfügen von Eingang R. → Einbau UND-Gatter, das für R=0 die 1 am Ausgang des ODER Gatters durchlässt und für R=1 den Ausgang Q auf 0 zurücksetzt. S R 508 FF Rechnerstrukturen Teil 1 Q Prof. Dr. Möller 3.5 Schaltwerke Realisierung bistabile Kippstufe durch Rückkopplung zweier elementarer Verknüpfungsglieder mit zwei Eingangsvariablen (Schaltungsaufbau hier mit NAND-Gattern) ⇒ RS-Kippstufe) S & R & Q /Q RS-Kippstufe besitzt Eingänge R (rücksetzen) und S (setzen) mit denen Zustand der Kippstufe beeinflusst werden kann. 509 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Funktion RS-Kippstufe /S /R Q /Q Bemerkung 0 0 - - unzulässig 0 1 1 0 Löschen 1 0 0 1 Setzen 1 1 Vorheriger Ausgangszustand Vorheriger Ausgangszustand Speichern 510 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke 511 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke RS-Flipflop → Endlicher Automat mit Eingabemenge {00, 01, 10, 11} → Zustandsmenge {z0, z1}, wobei z0 den Zustand Q=0 und z1 den Zustand Q=1 bezeichnet. Ausgabemenge gleich Zustandsmenge. Aus RS Flipflop lassen sich zahlreiche weitere Flipfloptypen entwickeln. Im nachfolgenden Schaltsymbol wurde Ausgang P als Q bezeichnet. 512 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke RS FF NOR-RS-FF speichert bei R = S = 0 NAND-RS-FF speichert bei R = S = 1 Bei diesen Eingangswerten kommen jeweils nur die dominanten Rückkopplungen zur Wirkung (1 NOR, 0 NAND) Verhalten Basis RS-FF ist für Wechsel der Eingangssignale R = S = 1 in den Speicherzustand mit R = S = 0 nicht deterministisch, d.h. erreichter stabiler Endzustand hängt von Gatterlaufzeiten ab ⇒ Eingangskonfiguration R = S = 1 bei NOR-RS-FF verboten; Eingangskonfiguration R = S = 0 bei NAND-RS-FF verboten NOR RS FF NAND RS FF S R Q+ Funktion /S /R Q+ 1 0 1 Setzen 0 1 1 0 1 0 Rücksetzen 1 0 0 0 0 Q Speichern 1 1 Q 1 1 - verboten 0 0 - 513 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke RS-Kippstufe bildet als elementares FF Grundlage aller Speicherelemente. Abbildung 3.42 zeigt zwei Erweiterungen, die für Realisierung von Logikbausteinen mit Speicherfunktion besonders wichtig sind, das Zustandsgesteuerte RS-FF und das D-FF. S & S' & Q C D & /Q & C & R & /Q & R' Q & Zustandssteuerung C lässt die Übernahme externer Signale nur dann zu, wenn C = 1 ist, ansonsten liegen die Eingänge R' und S' ständig auf logisch 1, was bedeutet, dass das RS-Flip-Flop den bisherigen Wert speichert. 514 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Schaltsymbol RS FF 515 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke D-FF Problem der irregulären Eingangsbelegung /R = /S = 0. Diese Belegung schaltungstechnisch verhindern. Lösung: D-Flipflop. Annahme: • Information liegt als binäres Datum an, • Bezeichnung für den Eingang S auf D ändern. • Eingang R wird über Inverter mit D verbunden benötigt daher keine eigene Bezeichnung. Bezeichnung D nicht von Datum, sondern delay = Verzögerung 516 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke D-FF Eingänge Ausgang Takt D Qn+1 0 0 Qn 0 1 Qn 1 0 0 1 1 1 R=S nicht mehr möglich, Speicher-Zustand wird durch Takt="0" realisiert. FF benötigt zur Steuerung des logischen Verhaltens nur einen einzigen Eingang 517 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke T-FF • • • • wechselt mit jedem Taktimpuls den Ausgangszustand. verbindet man Eingänge JK-FF mit H-Pegel erhält man ein T-FF hat nur einen Takteingang andere Variante ist Einsatz D-FF bei dem man den negierten Ausgang Q mit dem Eingang D verbindet. vergleicht man die Frequenzen von Eingangs- und Ausgangsignal, so ergibt sich eine Halbierung der Frequenz des Ausgangssignals. T-FF eigner sich als Frequenzteiler. • • 518 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke JK-FF • weitere Möglichkeit, den im RS-Flipflop verbotenen Zustand zu vermeiden, durch Einführung einer neuen (vierten) erlaubten Funktion. Diese erweiterte Eigenschaft des FF wird durch eine zusätzliche Rückkopplung der Flipflop-Ausgänge erzeugt, mit ihr wird die so genannte "Wechsel"-Funktion (eng. toggle) eingeführt wechselt bei Anlegen eines Taktimpuls seinen Ausgangszustand wenn an beiden Eingängen H-Pegel anliegen (toggeln) logische Eingänge des neuen FF, ersetzen R und S, werden als J (jump) und K (kill) →JK-FF bezeichnet • • 519 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke JK-FF 520 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke JK-FF Wahrheitstabelle K/ J/ /Q T E2 E1 Q1 Q/ Q2 Funktion 0 1 0 - - Speichern 0 0 0 - - Speichern 1 0 0 - - Speichern 1 1 0 - - Speichern 0 1 1 1 0 Setzen 0 0 1 - - Speichern 1 0 1 0 1 Rücksetzen 1 1 1 X X Wechseln (Toggeln) Kein „1“ am Takteingang → an Ausgängen anstehender Pegel gespeichert. „1“ Signal an J und T, FF wird gesetzt.. „1“ an K und T, FF wird zurückgesetzt. „1“ and J und K gespeicherter Wert wird gewechselt, d.h. aus „1“ wird „0“ , aus „0“ wird „1“. 521 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Taktflanken-Steuerung Für Taktimpulse endlicher Dauer sowie Erfüllung der Forderung nach einmaligen Wechsel, wird Taktflankensteuerung eingeführt, definiert aktive Taktflanke, bei der Auswertung der logischen Steuereingänge vorgenommen wird. Flankensteuerung kann durch einfaches Hintereinanderschalten zweier taktflankengesteuerter JK- oder RS-Flipflops realisiert werden. 522 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Taktflanken-Steuerung Flipflops, zu deren Steuerung eine Flanke des Taktsignals benutzt wird, werden als "einflankengesteuerte" Flipflops bezeichnet. Definition: Vorderflankengesteuertes Flipflop: Übernahme und Ausgabe der Information geschehen mit der Taktvorderflanke (0-->1); Rückflankengesteuertes Flipflop: Übernahme und Ausgabe der Information geschehen mit der Taktrückflanke (1-->0); 523 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Taktflanken-Steuerung 1. Trennung von Master und Slave. 2. Eingabe der JK-Signale in den Master. 3. Sperrung der JK-Eingänge. 4. Übertragung der Daten vom Master zum Slave. 524 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Master-Slave FF Taktflankengesteuerte Master-Slave-Flipflops können aus zwei JK-FF (JK-MS-FF) aufgebaut werden, sowie durch eine entsprechende Zusammenschaltung zweier RS-FF (RS-MS-FF). Auch MS-FF unterliegt der Zusatzbedingung zur Vermeidung des verbotenen Zustandes. 525 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke FF werden in Abhängigkeit der Taktung klassifiziert ⇒ bestimmt Übernahmezeitpunkt und charakteristische Gleichung, legt Übernahmeverhalten des FF fest. FF Klassifizierung Flipflops Nicht-taktgesteuerte Flipflops Taktgesteuerte Flipflops Taktzustandsgesteuerte Flipflops Taktflankengesteuerte Flipflops Einflanken gesteuerte Flipflops 526 Rechnerstrukturen Teil 1 Zweiflanken gesteuerte Flipflops Prof. Dr. Möller 3.5 Schaltwerke Nicht Taktgesteuerte FF: z.B.: RS-Flipflop Taktgesteuerte FF: z.B.: RS-Flipflop mit eingangsseitiger Vergatterung vielfältige Anwendungen, da sie gezieltes Übernehmen einer logischen Funktion zu festgelegten Zeitpunkten gestatten → synchronisierend 527 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Taktzustandsgesteuertes FF: z.B. D-Flipflop; besitzt Phase während der Änderungen am Eingang mit Gatterlaufzeitverzögerung am Ausgang sichtbar werden und speichernde Phase, wo Ausgangszustand stabil bleibt. Einzustandsgesteuertes FF: Setz- und Rücksetzeingang nur wirksam wenn am Takteingang ein Signal anliegt. RS-FF wird Takteingang C1 hinzugefügt. 528 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Taktzustandsgesteuerte FF: Zweizustandsgesteuertes FF: nimmt Eingangszustände während des einen Taktzustandes auf und gibt diese erst beim nachfolgenden Taktzustand aus. FF-Ausgänge, an denen Eingangszustände verzögert erscheinen, werden retardierte Ausgänge genannt. JK-FF arbeiten nach dem Master-Slave-Prinzip. 529 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Master-Slave-Flipflop Funktion: Zwischenspeicher C =1 Slave-Eingänge gesperrt. D wird in Master übernommen. C=0 Mastereingänge gesperrt. Slave übernimmt Schaltzustand des Masters 530 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Taktflankengesteuerte FF: speichern Ausgangszustand, der sich nur bei den entsprechenden Flankenübergängen ändert. Tf-FF in digitalen Systemen eingesetzt, in denen nachfolgende Stufen auf kurzzeitige Änderungen während eventueller sequentieller Phasen bereits reagieren würden. Einflankengesteuertes FF: Setz- und Rücksetzeingang werden nur während der Änderung des Taktzustandes Wirksam. Störanfälligkeit durch Störsignale wird durch die kurze Zeit der Taktflanke reduziert. Taktflankensteuerung im Schaltzeichen durch Dreieck gekennzeichnet. 531 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Taktflankengesteuerte FF: Zweiflankengesteuertes FF: geeignet für die technische Realisierung von Zustandsmaschinen, Ausgangswert zeitlich entkoppelt von einer Übernahme der Eingangswert in die inneren Zwischenspeicher Zeitliche Entkopplung verhindert Rückkopplung der Ausgangszustände auf den Eingang und ungewollt im gleichen Zeittakt wieder auf den Ausgang Zf-FF nimmt Eingangszustände während einer Taktflanke auf und gibt sie erst bei der folgenden Flanke aus. 532 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke D-FF SN7474 Bei integrierten FF-Schaltkreisen existieren außer Eingängen für die bereits bekannten Signale weitere Eingänge für spezielle Steuersignale. FF SN7474 (zweifach Vorderflankengesteuertes D-FF) kann z.B. über asynchrone Eingangssignale "preset" und "clear" taktunabhängig in genau definierten Anfangszustand gesetzt werden. Beide Signale sind bei "0"-Pegel aktiv (active low) und setzen den Q-Ausgang auf "1"- bzw. "0"-Pegel. 533 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke Eingänge 534 Preset /PRE /Clear /CLR 0 Ausgänge Takt CLK Datum D 1 X X 1 0 1 0 X X 0 1 0 0 X X 1 1 1 1 1 1 L 1 1 0 0 1 1 1 X Q /Q 0 Rechnerstrukturen Teil 1 Q+ /Q Prof. Dr. Möller 3.5 Schaltwerke Flipflop-Art Takt Steuerung ungetaktet ZustandsSteuerung ungetaktet FlankenSteuerung getaktet EinzustandsSteuerung getaktet ZweizustandsSteuerung getaktet EinflankenSteuerung getaktet ZweiflankenSteuerung 535 RS JK Rechnerstrukturen Teil 1 D T (datenlos) Prof. Dr. Möller 3.5 Schaltwerke Takt-Eingang Symbol Takt-Eingang mit Zustandssteuerung. Die Variablen an den Eingängen, die von C abhängen, werden bei C = 1 wirksam. Takt-Eingang mit Flankensteuerung. Die Variablen an den Eingängen, die von C abhängen, werden beim 0-1-Übergang wirksam (positive Flanke). Takt-Eingang mit Flankensteuerung. Die Variablen an den Eingängen, die von C abhängen, werden beim 1-0-Übergang wirksam (negative Flanke). 536 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.5 Schaltwerke FF repräsentieren Boolesche Speicher (Boolean Memories); genügen Boolescher Algebra → FF in schaltalgebraischer Form notiert, d.h. Ausgangssignal als Schaltfunktion der Eingangssignale beschreibbar → charakteristische Gleichung des jeweiligen FF Für FF-Typen, RS-Flipflop, D-Flipflop und T-Flipflop (T = Toggle) können charakteristische Gleichungen angegeben werden, Zeitpunkt tn in charakteristischen Gleichungen definiert einen Zeitpunkt vor einem zu betrachtenden Takt und tn+1 einen Zeitpunkt nach dem zu betrachtenden Takt • RS-FF: Qtn+1 = [ S + (/R * Q) ]tn • D-FF: Qtn+1 = [ D ] tn • T-FF: Qtn+1 = [(Q */T )+(/Q * T) ]tn 537 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 538 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Kooperierende Schaltwerke des Rechenautomaten zentral gesteuert und in folgende logische und räumliche Funktionseinheiten gegliedert: o Rechenwerk führt arithmetische (Addition, Komplementbildung, Schiebevorgänge, etc.) und logische Operationen (UND, ODER, Negation, etc.) aus o Steuerwerk interpretiert Maschinenbefehle, setzt sie unter Berücksichtigung der Statusinformationen in Steuerkommandos um die Programmablauf steuern o Speicherwerk dient der Ablage der Programme und Daten in Form von Bitfolgen o Ein- und Ausgabewerk stellt die Schnittstelle des Rechners nach außen dar. 539 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 540 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Rechenwerk Arithmetic Logic Unit (ALU) ALU ist der eigentliche Rechner, hier werden alle arithmetischen und logischen Funktionen bzw. Berechnungen ausgeführt. Zur ALU gehören Akku (Speicher) und Flags (Ereignisspeicher). 541 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Arithmetisch-logische Einheit(ALU) Universal-Schaltwerk welches (zwei) n-Bit breite Datenworte wahlweise • addiert • subtrahiert • UND-verknüpft • ODER-verknüpft • EXOR-verknüpft ALU hat Dateneingänge A und B deren Signalzustände für Operationen genutzt werden. Operationen werden in ALU gleichzeitig ausgeführt. Ergebnis am Ausgang durch Codiereingänge S bestimmt, an denen die jeweilige Operation eingestellt wird. Addier Operation kann zusätzlich Übertrag erzeugen; zur Signalisierung wird Übertragsausgang Ü genutzt. 542 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Halbaddierer (HA) HA: einfachste Rechenschaltung / Schaltnetz Eingang A HA ist Summand A, Eingang B ist Summand B. Schaltung hat zwei Ausgänge. Ausgang Σ als Summenausgang und Ausgang Ü als Übertrag für die nächst höhere Stelle im dualen Zahlensystem. 543 A B Σ Ü 0 0 0 0 0 1 1 1 0 1 0 ´ 0 1 1 0 1 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Halbaddierer (HA) A B Σ Ü 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 . 544 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Halbaddierer (HA) Schaltung (HA) in der Lage zwei 1-Bit(einstellig) Summanden zu addieren. HA repräsentiert (2,2)-Addierer, hat zwei Eingänge und zwei Ausgänge. Ergebnis aus Spalte Summe einer Exklusiv-Oder-Verknüpfung (Antivalenz, EXOR) entspricht. Ergebnis der Spalte Übertrag entspricht einer UND-Verknüpfung. Symbol * beschreibt UND-Verknüpfung, während Symbol + der ODER Verknüpfung entspricht und Symbol / die Negation repräsentiert. DNF : S = (/ A * B ) + ( A * / B ) Ü = A* B bzw. S = A _ XOR _ B 545 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Volladdierer (VA) Eingang ÜE eingehender Übertrag (carry in), ÜA ausgehender Übertrag (carry out). 546 ÜE A B ÜA Σ 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 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Volladdierer (VA) lässt sich aus zwei HA ableiten: HA1 = 1. HA und HA 2 = 2. HA In HA1 werden die beiden Dualzahlen a und b addiert, im HA2 wird zu dieser Summe der eingehende Übertrag c hinzuaddiert. Bei Addition mehrstelliger Dualzahlen müssen die entstehenden Überträge entsprechend berücksichtigt werden. Mögliche Form der Realisierung eines Addierwerks ist Addierer mit seriellem, d.h. durchlaufendem Übertrag RCA (RCA = Ripple Carry Adder). Dabei werden bei Addition der n-Bit-Dualzahlen An und Bn n VA in Serie geschaltet, und der Übertragungsausgang der Stelle n mit dem Übertragungseingang der Stelle n + 1 verbunden. 547 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 3-Bit Volladdierer aufgebaut aus drei 1-Bit-VA z.B. Baustein SN 74x80 Eingang ÜE0 auf 0, an niederwertigster Stelle kein Übertrag zu berücksichtigen niedrigwertigstes Bit steht rechts (LSB). Ausgang Üi i-ter VA wird zum Eingang Üi +1 des nächsten Addierers geführt, wobei der eingehende niedrigstwertige Übertrag ÜE0 auf 0 gesetzt wird. ⇒niedrigwertigste Addierer als Halbaddierer realisiert 548 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 4 Bit Volladdierer (VA) unter Anwendung des 74x83-Bausteins realisiert: . 549 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 4 Bit Volladdierer (VA) Disjunkte Aufteilung der Eingangsvariablen impliziert schnelle, parallele FunktionsAusführung, durch Übertrag (carry) besteht Funktionsabhängigkeit: si (ai , bi , ci ) = (ai bi ci ) + (ai bi ci ) + (ai bi ci ) + (ai bi ci ) mit ci (ai −1 , bi −1 , ci −1 ) = (ai −1bi −1 ) + (ai −1ci −1 ) + (bi −1ci −1 ) Jede Bitposition in dieser Anordnung muss auf Übertrag des niederwertigen Nachbarn warten. Übertragsbit wird schrittweise ermittelt und durchgeschoben (rca: ripple-carryadder); stellt längsten Signalpfad dar. Um beschleunigte Auswertung zu erzielen, muss Übertragspfad verkürzt werden, z.B. durch Arbeiten mit normalem und invertiertem carry-bit 550 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Beschleunigte Auswertung des carry-bit. Schaltung nutzt aus, dass gilt, wenn eine der beiden folgenden Bedingungen erfüllt wird: •es tritt kein Übertrag ci+1 auf und genau einer der Operanden ai, bi oder ci ist "1", •es gilt: ai = bi = ci = "1". 551 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Volladdierer (VA) Bei invertierter Zuführung der bitwerten Stellen der Dualzahl B auf die Volladdierer (z.B. 1-er Komplement), sowie einem Volladdierer an der niedrigwertigen Stelle, kann mehrstelliger Subtrahierer, auf Grundlage eines Addierwerks, realisiert werden. 552 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Aus logischer Gleichung zur Übertragsbildung ersichtlich, dass zur Berechnung von Ci+1 aus Ci eine zweistufige Logik erforderlich ist. Wird im niedrigwertigsten Bit ein Übertrag erzeugt, der alle Volladdiererstufen durchläuft, muss das Übertrag-Signal insgesamt 2n Logikebenen passieren, ehe der letzte Volladdierer entscheiden kann, ob an der höchstwertigen Stelle ein ausgehender Übertrag erzeugt werden muss. Verzögerungszeit höchstwertig ausgehender Übertrags direkt proportional zur Zahl der Logikebenen, die das erzeugte Übertragssignal durchlaufen muss. ⇒n-Bit-Ripple-Carry-Addierer hat 2n Logikebenen; typische Werte für n bei der Festkomma-Arithmetik liegen bei 32. 553 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Ripple-Carry-Adder (RCA) langsame, billige Realisierungsmöglichkeit für Addierer, da jeder VA auf den Übertrag aus der vorangehenden Stufe warten muss. ⇒bei großer Maschinenwortbreite resultiert eine erhebliche Zeitverzögerung ⇒maximal mögliche Taktrate beschränkt, da der RCA aus n einfachen Zellen (Makrozellen) besteht, die regulär miteinander verbunden sind. ⇒Durchlaufen der Überträge bestimmt die Gesamtverzögerung des Addierers. ⇒Zeit zur Bestimmung der höchstwertigen Stellensumme sowie des ent sprechenden Übertrags ist proportional zur Stellenzahl. t RCA = (2n + 1)τ 554 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Volladdierer (VA) Beschleunigung von Addiernetzen auf unterschiedliche Art und Weise erreichbar. • Schnelligkeit absolutes Ziel, → Übertrag nicht von Stelle zu Stelle weitergeben → dass im Addierwerk k zur Bildung des Summenbits alle Dualzahlen Am und Bm mit 0 ≤m ≤ k zur Berechnung benötigt werden. • Zeitaufwand zur Berechnung beliebiger n-Bit Dualzahlen beträgt, unter der Prämisse dass für die Realisierung Gatter mit einer beliebigen Anzahl von Eingängen zur Verfügung stehen, 2τ. • Erforderliche Gatteraufwand proportional zu 2n bezogen auf n-Bit Dualzahlen. • Bei technischer Umsetzung von Addierwerken ist man bestrebt, abweichend von vorangehend dargestellten Extremen, Schaltnetze zu realisieren, die sowohl hinsichtlich der Kosten, als auch der Schnelligkeit als optimal anzusehen sind ⇒CLAA 555 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Volladdierer (VA) Carry-Look-Ahead-Adder (CLAA) →Addierer mit Übertragsvorausschau, bei dem Überträge durch rekursive Anwendung der Gleichung für den Übertrag Cn direkt ermittelt werden. Dazu wird C4, C3, C2 nicht mehr vom Volladdierer der vorangehenden Stelle, sondern von einem zusätzlichen Schaltnetz direkt an den Eingangsgrößen bestimmt. 556 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Schaltnetz zur Verknüpfung von a0, b0 und U0 557 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Schaltnetz zur Verknüpfung von a1, b1 und U1 558 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Schaltnetz zur Verknüpfung von a2, b2 und U2 559 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Zahl der Eingänge pro ODER-Gatter verdoppelt sich mit jeder Stelle. Bei Übertrag C2 wäre beispielsweise für ODER-Gatter Verknüpfungsglied mit 15 Eingängen erforderlich. Schaltnetz zur Verknüpfung von a2, b2 und U2 Bei Übertrag C4 wäre beispielsweise für ODER-Gatter Verknüpfungsglied mit 31 Eingängen erforderlich. 560 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Verknüpfungsglied mit 31 Eingängen würde optimalen quadratischen Layoutstrukturen jedoch nicht Rechnung tragen, nur mit großem Aufwand herstellbar, weshalb zwei Hilfsvariable eingeführt werden, das carry generate, gn, und das carry propagate, pn, wodurch die Zahl der Eingänge an den Verknüpfungsgliedern deutlich reduziert werden kann. 561 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Es gelten folgende Zusammenhänge: a gn = an * bn = 1, d.h. die Eingangsvariablen an und bn sind gleichzeitig 1; Carry wird in dieser Stelle erzeugt, a gn = an * bn = 0, d.h. die Eingangsvariablen an und bn sind nicht gleichzeitig 1; Carry wird in dieser Stelle nicht erzeugt, a cn = an ⊕ bn = 1, d.h. nur eine der Eingangsvariablen ist 1; Carry aus niedriger Stelle wird weitergeleitet, a cn = an ⊕ bn = 0, d.h. nicht nur eine der Eingangsvariablen ist 1; Carry aus niedriger Stelle wird nicht weitergeleitet. 562 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Rechenwerk a aus HA aufgebauter VA mit Hilfsvariablen carry generate gn und carry propagate pn a Schaltung, die für Hilfsvariable gn und pn Überträge vorausberechnet ist Carry Look Ahead Generator (GLAG). a Bildung der Hilfsvariablen bedingt zusätzliche Verzögerungszeit τ, verringert aber erforderlichen Hardwareaufwand. a CLAG liefert alle Überträge spätestens nach 3τ, wobei ein τ für die gleichzeitig ausführbaren UND-Verknüpfungen erforderlich ist, ein τ für die ODER-Verknüpfung und ein τ für die höchstwertige Summenstelle Sn-1. a Anhand der Gleichungen eines 8-Bit-CLAG kann dessen hardwaretechnische Realisierung dargestellt werden 563 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke C1 = g0 + C0 p0 C2 = g1 + g0 p1 + C0 p0 p1 C3 = g2 + g1 p2 + g0 p1 p2 + C0 p0 p1 p2 C4 = g3 + g2 p3 + g1 p2 p3 + g0 g1 p2 p3 + C0 p0 p1 p2 p3 144444244444314243 = : B ⋅ G0 = : B ⋅ P0 Block generate Block propagate C5 = g4 + g3 p4 + g2 p3 p4 + g1 p2 p3 p4 + g0 p1 p2 p3 p4 + C0 p0 p1 p2 p3 p4 C6 = g5 + g4 p5 + g3 p4 p5 + g2 p3 p4 p5 + g1 p2 p3 p4 p5 + g0 p1 p2 p3 p4 p5 +C0 p0 p1 p2 p3 p4 p5 C7 = g6 + g5 p6 + g4 p5 p6 + g3 p4 p5 p6 + g2 p3 p4 p5 p6 + g1 p2 p3 p4 p5 p6 + g0 p1 p2 p3 p4 p5 p6 +C0 p0 p1 p2 p3 p4 p5 p6 C8 = g7 + g6 p7 + g5 p6 p7 + g4 p5 p6 p7 + g3 p4 p5 p6 p7 + g2 p3 p4 p5 p6 p7 + g1 p2 p3 p4 p5 p6 p7 + g0 p1 p2 p3 p4 p5 p6 p7 + C0 p0 p1 p2 p3 p4 p5 p6 p7 564 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 565 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Analog zur einstufigen Übertragvorschau müssen die 4-Bit CLAA die Hilfsvariablen blockweise erzeugen, die vom übergeordneten CLAG, durch rekursive Algorithmen, zur Blockübertragung weiterverarbeitet werden. Mit BGn = Block-Generate und BPn = Block-Propagate gilt: BCn+1 = BGn + (BCn * BPn) Bei 4-Bit breiten Blöcken werden die Überträge aus den Hilfsvariablen wie folgt gebildet: BC0 BC1 BC2 566 = C0 = BG0 + C0 BP0 = C4 = BG1 + C1 BP1 = C8 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Block-Hilfssignale bei allen 4-Bit CLAA, in derselben Weise gebildet. Damit können 4-Bit CLAA Module definiert werden, gleichartig aufgebaut, können miteinander zu größeren Einheiten verbunden werden. Analog zu den eingeführten Block-Hilfsvariablen können beispielsweise für den Aufbau eines dreistufigen CLAA Blocks folgende Block-Hilfsvariable definiert werden: BBG0 : = BG3 + (BG1* BP2* BP3) + (BG0* BP1 *BP2* BP3) BBP0 : = BP0 *BP1* BP2 *BP3 Übertrag C16 entspricht dem Signal BBC1 für den Übertragungseingang der zweiten Stufe, die wiederum selbst aus zweistufigem CLAA besteht. Mit den oben definierten Hilfsvariablen folgt: C16 = BBC1 = BBG0 + BBC0 • BBP0 = BBG0 + C0 • BBP0 567 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke ALU übernimmt Operationen auf Daten der n-Bit Dualzahlen A und B Steuerleitungen F0 bis Fn ermöglichen Auswahl der Operation ALU enthält Resultatausgang S und Ausgänge N und Z. N kennzeichnet das Sign-Flag N logisch 1, wenn Ergebnis der Operation der ALU negativ ist, d.h. das höchstwertige Bit ist 1 (bei Binärzahlen üblich, die im Einer- oder Zweierkomplement dargestellt sind). Z entspricht Zero-Flag Z zeigt an, ob Ergebnis der Operation in der ALU nur aus Nullen besteht. Flags sind • binäre Informationen, • kennzeichnen besondere Ergebniszustände, • werden im Flag-Register für eine nachfolgende Auswertung sichergestellt. Darüber hinaus werden sie an das Steuerwerk zur Behandlung eventueller Sonderfälle, wie z.B. bei Division durch Null, übertragen. 568 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 569 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 570 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Abstrakter von Neumann-Rechenautomat 571 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Damit Datenprozessor Berechnungen ausführen kann, enthält er die ALU sowie (mindestens) drei Register zur Aufnahme der Operanden 572 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Steuerwerk/Befehlswerk/Befehlsprozessor Control Unit (CU) Enthält u.a. • Clock-Baustein, sorgt für die richtige Abfolge der Arbeitsschritte, • Dekodiereinheit, sorgt für Entschlüsselung/Dekodierung des OP Codes, • Befehls- oder Instruktionsregister (IR) zur Aufnahme des aktuellen Befehlskodes, • Befehls- oder Programmzähler (PC), • Speicheradressregister (SAR) für das Auslesen aus dem Hauptspeicher/Speicherwerk. 573 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke ⇒ Aktuell zu bearbeitender Befehl (Instruktion) befindet sich im Befehlsregister (IR). ⇒ Adresse des Speicherplatzes, der als nächstes anzusprechen ist, wird im Speicheradressregister (SAR) abgelegt. ⇒ Adresse des nächsten auszuführenden Befehls ist im Befehlszähler (PC) gespeichert. ⇒ Entschlüsselung eines Befehls erfolgt durch Befehlsdecodierer, ⇒Steuerung der Ausführung durch ein Steuerwerk. ⇒ CPU besteht damit aus den folgenden Strukturkomponenten auf Registerebene 574 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Befehlsweg im von Neumann-Rechner 575 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Adressinformation definiert Hauptspeicherplatz derjenigen Operanden, auf die sich Befehl bezieht → verschiedene Möglichkeiten Operanden zu adressieren: a unmittelbar, d.h. der Operand ist im Befehl enthalten, a Speicher und Register direkt, d.h. die Adresse des Operanden ist im Befehl enthalten, a Speicher indirekt, d.h. es wird eine Hauptspeicherzelle verwendet die eine Hauptspeicheradresse enthält, über die auf den Speicherbereich zugegriffen wird, a Register indirekt, d.h. die Adresse des Operanden steht in einem Register, dessen Nummer im Befehl enthalten ist, a Register relativ, d.h. die Operandenadressen werden als Summe aus dem Registerinhalt und einer Verschiebung, die im Maschinenbefehl angegeben ist, bestimmt. 576 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Weitere Register im vN Rechner: Rechenwerk/Datenprozessor • Akkumulator A (Akku), allgemeiner Registertyp, für jede im Rahmen eines Programms anfallende Aufgabe einsetzbar • Multiplikator-Register (MR) zur Aufnahme von Multiplikationsergebnissen, • Link-Register (LR) zur Aufnahme z.B. eines Additionsübertrages. Multiplikator-Register und Link-Register Erweiterung des Akkumulators • Speicherpufferregister (SPR) wickelt Kommunikation mit Speicher ab MR, LR, SPR: spezifische Registertypen, besitzen spezielle Funktion, Werden ausschließlich dafür verwendet. Reale Rechner verfügen de facto über mehr als einen Akkumulator A 577 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Control Unit (CU): Realisierungsformen a Mikroprogrammierter µP besitzt Mikroprogramm-Steuerwerk, (Mikro-) Programme vom Hersteller in Festwertspeicher (control memory) untergebracht; für Anwender nicht zugänglich. Mehrzahl der Mikroprozessoren gehören in diese Klasse. Kennzeichen stark variierende Ausführungszeiten für unterschiedliche Befehle. 578 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Control Unit (CU): Realisierungsformen a Mikroprogrammierbarer µP enthält Mikroprogramm-Steuerwerk, jedoch keinen dem Nutzer unzugänglichen Festwertspeicher, enthält einen vom Nutzer programmierbaren (Festwert- oder Schreib/ Lese-) Speicher. Programmieraufgabe im Extremfall nicht nur auf Makroprogramm beschränkt, sondern auf zwei Programmierebenen: Mikro- und Makroprogrammierung. 579 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Control Unit (CU): Realisierungsformen a Mikroprozessoren mit festverdrahtetem Schaltwerk benötigen keine internen Programmabläufe und keinen Mikroprogrammspeicher. Makrobefehle werden direkt in kombinatorische Logik umgesetzt, Hardwareaufwand steigt gegenüber mikroprogrammierter Version a Zu dieser Gruppe gehören RISC (Reduced Instruction Set Computer) Prozessoren, obwohl dies aus dem Namen zunächst nicht ableitbar ist. Reduktion des Instruktionssatzes bewirkt dass Hardwareressourcen für die kombinatorische Logik frei bleiben. Kennzeichen für diese Gruppe sind einheitliche Ausführungszeiten für (fast) alle Makrobefehle, da erhöhte Aufwende z.B. bei Multiplikations- und Divisionsbefehlen durch die Hardware aufgefangen werden. 580 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke a von Neumann (vN) Architektur a Steuerwerk/Befehlprozessor (CU) und Rechenwerk/Datenprozessor (DP) und Speicherwerk/Speicher a Hauptunterschiede `Rechenwerk (DP) ist allgemeingültig `Steuerwerk (CU) speichert keine Algorithmen/Programme – im Speicher hinterlegt (programmiert) 581 vN- Prozessor Steuerwerk (CU) Rechenwerk (DP) ALU Controller Control /Status Register PC Rechnerstrukturen Teil 1 IR I/O Speicher (Memory) Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Programm besteht aus Reihe von Anweisungen; teilt Prozessor mit was zu tun ist. Bei Programmausführung Befehl nach Befehl aus RAM-Bereich abgerufen und ausgeführt. Befehlsausführung zerfällt in 2 Phasen: Abrufphase (fetch cycle) und Ausführungsphase (execute cycle), werden vom Taktgenerator gesteuert. (1) Gesamter, aus allen 3 Phasen bestehender Vorgang heißt BEFEHLSZYKLUS (instruction cycle). Befehlszykluszeit zur Charakterisierung der Prozessor Arbeitsgeschwindigkeit herangezogen. Beispiel: BEEHLSZYKLUS identisch mit MASCHINENZYKLUS (1) Zunächst sendet Prozessor in Phase 1, Adressierphase, Adresse des nächsten Befehls, der im Programmspeicher steht (z. B. im ROM). In Phase 2, Befehlsholphase, stellt Speicher das auf dem adressierten Speicherplatz stehende Datenwort, welches den BEFEHL darstellt, zur Ver-fügung und der Prozessor liest ihn ein. Diesen beiden werden zusammen als Befehlsholphase oder Abrufphase (fetch-cycle bzw. instruction fetch) bezeichnet. In Phase 3, Ausführungsphase (execute cycle, instruction execute), entschlüsselt Prozessor den Befehl und führt ihn aus. 582 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 583 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Befehlszähler (Program Counter, PC) enthält Adresse des nächsten auszuführenden Befehls. Nach Aussenden Adresse wird Befehl über interne Eingangsschaltung in Befehlsregister (InstructionRegister, IR) gebracht, entschlüsselt und ausgeführt. Register ist Speicherelement für ein Datenwort. Register sind aus FF´s zusammengesetzt, besitzen so viele parallele Bitstellen, wie es spezielle Funktion innerhalb der Architektur erfordert. Befehlsdekoder interpretiert Bit-Information des Operations-Code, dahingehend, ob es sich um • Konstante-Register-Transferbefehle (MVI) und andere Befehle (00) • Register-Register-Transferbefehle (MOV) und HLT-Befehl (01) • arithmetische und logische 1-Byte-Befehle (10) • Sprungbefehle (JMP, I/0-Befehle (IN/OUT) und andere Befehle (11) handelt. Es werden jeweils die beiden höchstwertigen Bit des OPCodes verwendet (bei 8 Bit Befehlsregister das Bit 7 und 6). 584 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 585 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke 586 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Aus funktioneller Sicht besitzt von Neumann-Rechner neben der aus Rechenwerk und Steuerwerk gebildeten Zentraleinheit (CPU), einen Speicher, der aus einem Festwertspeicher, dem ROM = Read Only Memory, und einem Speicher mit wahlfreiem Zugang, dem RAM = Random Access Memory, besteht, sowie der Ein- und Ausgabeeinheit sowie den Verbindungsleitungen, den Bussen. Rechnerstruktur nach von Neumann-Konzept 587 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Interner Speicher Akkumulator (Akku) Zum internen Speicher gehören • Register, dienen als Zwischen-Speicher • Befehlszähler, in denen steht aus welcher Speicherzelle der nächste Befehl geladen wird. 588 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.6 Kooperierende Schaltwerke Grundsätzliche Arten von Speicherinhalten An einer Speicherstelle wird ein Wert folgender Typen abgelegt (Repräsentation bzw. Codierung): 1. Ganze Zahl (Integer, int) 2. Rationale Zahl (Fest- und Fließpunkt) 3. Zeichen (Character, char) 4. Instruktion Adresse einer anderen Speicherstelle 4. betrifft die Speicherung von Befehlen, während 5. Pointer betrifft. Pointer = Variable (Speicherzelle) mit den Werten von Adressen Zeiger = Pointer (Deutsche Übersetzung) Adresse = Nummer einer Speicherzelle im RAM 589 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 590 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Datenpfade → Konstrukte, auf denen Daten von einer Quelle zu einer Senke übertragen werden können. Für einen Datenpfad gibt es genau eine Quelle und genau eine Senke, → Punkt-zu-Punkt Verbindung. Sind am Datenpfad mehrere Quellen oder mehrere Senken beteiligt, Auswahl- oder Verteilerschaltnetz erforderlich, um Daten zielgerichtet übertragen zu können. Hierfür geeignet → Multiplexer → Demultiplexer. 591 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Multiplexer → Adressgesteuertes Schaltnetz → schaltet abhängig von Steuerwort SW genau einen ankommenden Datenpfad DAN auf einen abgehenden Datenpfad DAB durch Ankommende Datenpfade bei Multiplexern durch array dargestellt um mit softwaretechnischen Konstrukt (concurrent „conc“ Anweisung) relativ kurze Ausdrucke zu erhalten, auf beliebig viele Datenpfade erweiterbar 592 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Multiplexer (MUX) Schlüsselwort Deklarationsteil Deklarationsteil Interne Variable Anweisungsteil Anweisungsteil unit 16-Bit-4-zu-1-MUX; input DAN: array [0, …, 3] of RTB < 15, …, 0 >; SW: RTB < 1, 0 >; output DAB: RTB < 3, …, 0 >; locvar K: INTEGER; begin conc K(0 to 3)do |SW=[K]|:DAB=DAN[K] end Anweisungsfolge Multiplexer 593 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Textueller Verhaltensbeschreibung für Multiplexer liegt spezielle Notation zugrunde, beginnend mit Schlüsselwort unit, auf welches frei wählbarer Name für zu beschreibende Funktionseinheit folgt. Inhaltliche Aussage der Verhaltensbeschreibung ist in Anweisungsteil enthalten welches durch die Anweisungen begin und end umfasst Verhaltensbeschreibung geht Deklarationsteil voraus, in dem Variablennamen erläutert werden, z.B. Anschlüsse Eingang und Ausgang, die unter den Schlüsselworten input und output eingeführt wurden. 594 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Interne Variablen werden im vorliegenden Beispiel unter Schlüsselwort locvar indiziert. conc Anweisung dient dazu alle Indexwerte gleichzeitig (concurrent) durchführen zu können. Verhaltensbeschreibung auf Registertransferebene durch Datentyp RT eingeführt, wobei Datentyp RTB binärwertige Registertransfers kennzeichnet. 595 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Multiplexer universelles Schaltnetz, welches auf Registertransferebene, für alle Binärstellen ein gleichartiges Verknüpfungsschema auf der Ebene elementarer Verknüpfungsglieder darstellt 596 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Demultiplexer, Adressgesteuerter Umschalter, schaltet ankommenden Datenpfad DAN auf abgehenden Datenpfad DAB durch, nicht beschaltete abgehende Datenpfade führen logischen Zustandswert 1 Softwaretechnisches Konstrukt äußere conc Anweisung stellt für Demultiplexer die Auswahl des zu beschaltenden abgehenden Datenpfades dar, während innere conc Anweisung die Zuweisung des Wertes 1 berücksichtigt. DAN DEMUX SW DAB3 DAB2 DAB1 DAB0 597 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Datentore Konstrukte, die Datenpfad synchron oder asynchron öffnen oder schließen, bzw. auf Ausgangswert unendlich halten, wie bei Tristate Logikbausteinen Zustände der Datentore als gesteuerte digitale Schalter realisiert Zuständen offen bzw. geschlossen, oder mit elementaren Verknüpfungen UND, ODER, NICHT-UND bzw. NICHT-ODER. Bei getakteten Flipflops Zustände des Datentors offen bzw. geschlossen durch NICHT-UND-Gatter realisiert. Datentor immer dann geöffnet wenn am Takteingang C Zustand logisch 1 anliegt und immer dann geschlossen, wenn am Takteingang C Zustand logisch 0 anliegt. 598 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.7 Datenpfade und Datentore Schalter digitales Softwaresystem mit Takt C als Steuereingang und Datentyp STB, der einen binärwerten Schalttyp abbildet. unit 16-Bit-SWITCH; input DAN:RTB < 15, …, 0 >; C:STB; output DAB: RTB < 15, …, 0 >; begin |C|:DAB=DAN, |/C|:DAB=1 end Anweisungsfolge 16-Bit Schalters 599 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 600 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.8 Bus-Systeme von-Neumann-Rechner (RS Teil 2) beinhaltet • Zentraleinheit (CPU = Central Processing Unit), bestehend aus • Rechenwerk, • Steuerwerk • Speicherwerk, • Ein- und Ausgabewerk, • Verbindungswege (BUS) für den Datentransfer zwischen Werken. BUS realisiert eine funktionelle Trennung der Verbindungsstruktur in jeweils getrennte Verbindungswege. Bei den zu übertragenden Informationen handelt es sich um: • Daten: hierzu zählen die Befehle, die Operanden und die Resultate, • Adressen: zur Anwahl von Speicherzellen und Registern, • Signale: zur Steuerung des Informationsaustausches zwischen den einzelnen Werken. 601 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.8 Bus-Systeme Daraus resultieren drei Teilbusse des Prozessor Bussystems: • Adressbus, stellt Ziel- und Quelladresse des Datentransfers bereit • Datenbus, überträgt die eigentlichen Daten • Steuerbus, übernimmt Koordinierung des Datentransfers hinsichtlich des zeitlichen Ablaufs und der Auswahl der Übertragungsrichtung 602 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.8 Bus-Systeme Bussteuerung in der Regel zentral durch Bus-Master, beispielsweise CPU, kann aber auch durch den DMA-Controller realisiert sein. Ablauf des Datentransfers auf dem Bus ist folgender: • Bus-Master stellt Adresse zur Anwahl des Kommunikationspartners auf Adressbus bereit; angewählter Kommunikationspartner erkennt dies und geht in Bereitschaft, • Bus-Master bestimmt durch Aktivierung einer Steuerinformation – z.B. /R für einen Lesezugriff oder /W für einen Schreibzugriff – Übertragungsrichtung; so bestimmte Quelle legt die Daten auf den Datenbus, • Bus-Master führt Datentransfer aus und signalisiert Abschluss des Datentransfers indem er Lese- bzw. Schreibsignal deaktiviert; Bus wird in den Ausgangszustand versetzt, ist für nächsten Datentransfer bereit. 603 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.8 Bus-Systeme Lesezugriff und Schreibzugriff auf synchronem Bus: Zeitspanne für Busoperation (Lesen/Schreiben eines Datums) → Buszyklus T, stimmt mit Taktzyklus des betrachteten Prozessors überein. Innerhalb Zeitintervall Ta werden für Zugriffsformen Lesen und Schreiben die Adressen und Steuerleitung R//W auf Adressbus bzw. Steuerleitung gelegt. Weiterer Ablauf: • Leseoperation (R//W = 1): Prozessor erwartet, dass während des Zeitintervalls Tb der adressierte Sender antwortet und die gültigen Daten zur Übernahme auf dem Datenbus zur Verfügung stellt. Übernahme beginnt mit Ende des Zeitintervalls Tb. • Schreiboperation (R//W = 0): Prozessor legt zu Beginn Zeitspanne Tb die gültigen Werte auf den Datenbus, um adressierten Element Zeit zur Übernahme zu lassen. Datenübernahme erfolgt mit positiver Flanke an R//W. 604 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.8 Bus-Systeme T Takt A D T T a b Adresse x Daten x Lesen R/ /W D Daten x Schreiben R/ /W Legende: 605 irrelevant Tristate Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.8 Bus-Systeme Für das Busverhalten ist charakteristisch, dass alle Vorgänge synchron zum Taktzyklus ablaufen. Steuerbussignale beschränken sich auf Taktsignal und R//W-Leitung, sowie weitere Signale, z.B. Reset, IRQ, etc. 606 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 607 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Zählen ist im allgemeinen Sinn Addieren (Vorwärtszählen) oder Subtrahieren (Rückwärtszählen) einer logischen 1 bis Zählvorgang beendet ist. Zähler werden nach verwendetem Code und nach Zählrichtung unterschieden. Digitaltechnik verwendet hauptsächlich Dual-Zähler und BCD-Zähler. Unterscheiden sich nach Vor- und Rückwärtszähler, sowie synchronen und asynchronen Zählbetrieb. Zähler werden mit Flip-Flops aufgebaut. 608 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Zustandsdiagramm Modulo 6 Zähler Übergangsdiagramm des Modulo-6-Zählers. 609 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Zähler sind Schaltungen, die in ihren Eingang in beliebiger zeitlicher Reihenfolge einlaufende Impulsfolge abzählen und Zählergebnis am Zählerausgang in (binär) codierter Form darstellen. Anwendung zur • Messung der Zeit durch Abzählen periodischer Zeitmarken, • Messung von Frequenzen durch Auszählen der Schwingungen innerhalb eines Zeitintervalls, • etc. Analoge Größen werden zur Weiterverarbeitung in Impulsfolgen gewandelt und mit Zähler abgezählt. 610 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Arbeitsweise des Zählers • Synchron (parallel gesteuert) zentraler Takt steuert alle FF gleichzeitig Synchrone Zähler sind einfacher und übersichtlicher aufgebaut; sie sind leicht erweiterbar. Ihr Verknüpfungsnetz ist aufwendiger, allerdings treten keine Laufzeitprobleme auf • Asynchron (seriell gesteuert) Takt steuert i. d. R. nur das erste FF an, die nach geschalteten Stufen werden vom anderer FF-Ausgängen aus der gesamten Kette angesteuert Bei asynchronen Zählern ist der Gatteraufwand geringer. Wie bei allen asynchronen Abläufen, kann es aber zu unübersichtlichen Laufzeitproblemen kommen. • • Vorwärtszähler, Rückwärtszähler. 611 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Synchroner Zähler. Asynchroner Zähler. 612 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Frequenzteiler: Schaltungen, die Frequenz rechteckförmiger Signale in einem bestimmten Verhältnis (herunter)teilen. Prinzipschaltung für Frequenzteiler ist FF FF erzeugt Frequenzteilung im Verhältnis 2 : 1. Berechnung des Teilerverhältnisses: fE ft = n 2 fE = Eingangsfrequenz ft = geteilte Frequenz n = Anzahl der Flip-Flops 613 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Frequenzteiler a Asynchroner Frequenzteiler Jeder Asynchron-Dualzähler eignet sich als Frequenzteiler. a Synchroner Frequenzteiler Jeder Synchron-Dualzähler eignet sich als Frequenzteiler. a Bei einem vorgegebenen Zählumfang "modulo-m" sind bei Binärkodierung mindestens n Flipflops notwendig, wobei gilt: m ≤ 2n 614 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Asynchrone Vorwärtszähler • seriell gesteuert • Takt steuert i. d. R. nur das erste FF an → Stufe mit der höchsten Schaltfrequenz • nach geschaltete Stufen werden von FF-Ausgängen aus der gesamten Kette angesteuert • Vorwärtszähler → zählt mit aufsteigender Wertigkeit 615 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Binäruntersetzer Zählen im reinen Binärcode 4 stufiger asynchroner Binäruntersetzer mit JK FF JK FF arbeitet für J = K =1 als T-FF → kippt mit jedem Triggerimpuls CP in entgegen gesetzte Lage 616 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Asynchroner Dezimalzähler 617 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Synchrone dekadische Vorwärtszähler • • • • • • parallel gesteuert zentraler Takt steuert alle FF gleichzeitig Hierdurch entfällt die Addition der Verzögerungszeiten Höhere Grenzfrequenzen Aufwendigere Schaltungen Mit BCD Code realisierbar (8-4-2-1-Synchronzähldekade) 618 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Modulo-n-Zähler • • • n verschiedene Stellungen wenn höchste Zählerstellung erreicht, Zählvorgang von vorn Zahl der verwendeten FF minimal 619 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler 620 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Ringzähler: • • • • • • verwenden 1-aus-m-Code bestehen aus m zu einem Ring zusammen geschalteten FF nur eines gesetzt (Qi = 1) alle anderen haben 0 am Ausgang mit jedem Trigger wandert die 1 um eine Stelle in Zählrichtung weiter nach m Zähltakten ist Ausgangszustand wieder erreicht 621 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler 1-aus-10-Ringzähler 622 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler 623 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler 624 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Vor- und Rückwärtszähler: • • • • • • können sowohl vorwärts als auch rückwärts zählen können synchron oder asynchron ausgelegt sein verwenden 8-4-2-1Code verwenden JK FF Steuereingang ZV, 1 vorwärts zählen, 0 gesperrt Steuereingang ZR, 1 rückwärts zählen, 0 gesperrt 625 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Beispiel: Bei synchronem Vorwärtszähler werden Takteingänge aller FF parallel geschaltet. Eingänge J und K der FF von den Ausgängen so steuerbar, dass nach jeden Taktimpuls das Codewort für die nächste Zahl am Ausgang Ü entsteht. 626 J K Ün+1 /Ün+1 Funktion 0 0 Qn /Qn Speichern 0 1 0 1 Reset 1 0 1 0 Set 1 1 /Qn Qn Toggle Rechnerstrukturen Teil 1 Prof. Dr. Möller 627 Zustand Wert (DCBA) 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler „1“ T J K A J K B J C K J D & K R 628 Rechnerstrukturen Teil 1 Prof. Dr. Möller Ü 3.9 Zähler 629 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.9 Zähler Maximale Zählfrequenz der Vorwärts-Zähldekade kann dabei nach folgender Beziehung ermittelt werden, da alle FF gleichzeitig getaktet werden und die Schaltung ohne zusätzliche Schaltglieder arbeitet: f = 1 t FF + T mit t als FF-Verzögerungszeit und T als minimale Taktimpulsbreite. 630 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 631 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.10 Register • ermöglichen synchrone oder asynchrone Speicherung von Daten. • sind Speicherglieder die Schaltvariable aufnehmen, speichern und ausgeben Schieberegister • Schaltungen, die Daten taktgesteuert aufnehmen, speichern und abgeben. • arbeiten entweder mit einer seriellen oder einer parallelen Ein- und Ausgabe. • Unterschied liegt in der Anzahl der Ein- und Ausgänge. • Für den Aufbau eignen sich taktflankengesteuerte D-FF SR-FF und JK-FF. • stehen als integrierte Schaltungen zur Verfügung. 632 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.10 Register Schieberegister aus 4 taktzustandsgesteuerten FF 633 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.10 Register 634 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3. Lokale und globale Konzepte der Digitaltechnik 3.1 Logische Verknüpfungsglieder 3.2 Boolesche Algebra 3.3 Automatentheorie 3.4 Schaltnetze 3.5 Synchrone und asynchrone Schaltwerke 3.6 Kooperierende Schaltwerke (Operationswerk, Steuerwerk) 3.7 Datenpfade und Datentore 3.8 Bus-Systeme 3.9 Zähler 3.10 Register, Registerfiles 3.11 Speicher 635 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher 3.11 Grundlagen von Halbleiterspeichern 3.11.1 Adressierung 3.11.2 Realisierung 3.11.3 Statische und dynamische Speicher 636 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Halbleiterschaltungen die Information über bestimmten Zeitraum festhalten und jederzeit wieder ausgeben, d.h. verfügbar machen, werden als Halbleiterspeicher bezeichnet. Speicherhierarchie: entstand aus Zusammenhang zwischen Größe und Geschwindigkeit (Zugriffzeit). Archivspeicher: beliebige Größe, Zugriffzeiten im Bereich s und min Massenspeicher: Speicherkapazitäten zwischen 1 GB und > 1 TB, Zugriffzeiten im Bereich 5 und 70 µs, Haupt-, Arbeits- oder Systemspeicher: 128kB bis 512 MB Speicher, Zugriffszeiten im Bereich 70 – 120 ns Cache: 128 Byte >40 MB Speicherkapazität, Zugriffszeit 5 – 20 ns Register: 8 bis 64 Registern deren Zugriffzeit unter 5 ns liegt. Zugriffszeit Register auf Massenspeicher weist Unterschied auf, durch Faktor 106 gekennzeichnet, während in Größe, d.h. Speicherkapazität, Unterschied bei 109 liegt. 637 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Nutzung Referenzlokalität von Programmen ermöglicht beschleunigte Speicherzugriffe und virtuelle Größe des Hauptspeichers Referenzlokalität: Tendenz von Programmen, über gewisse Zeitspanne hinweg wird nur auf Daten und Instruktionen zugegriffen, die vorher referenziert wurden oder benachbarte Adressen haben. Ursache u.a. in sequentieller Abarbeitung von Befehlen und Lokalisierung von Operanden in Datensegmenten (Heap, Stack). Weitere Gründe: sequentieller Zugriff auf Komponenten eines Feldes sowie Programmschleifen. Unterscheiden: räumliche und zeitliche Lokalität. Bei räumlicher Lokalität erfolgt nächster Zugriff auf benachbarte Speicherzelle; bei zeitlicher Lokalität erfolgt nächster Zugriff auf Speicherzelle auf die kurz vorher bereits zugegriffen wurde. In Multiprozessorsystemen gewinnt die Prozessorlokalität an Bedeutung, gibt an, dass Prozessor in der Regel auf seinen privaten Datenbereich zugreift. 638 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Heute vorherrschend Halbleiterspeicher mit wahlfreiem Zugriff: • flüchtige ⇒ RAM, als statisches oder dynamisches RAM realisiert ⇒ SRAM oder DRAM • nicht flüchtige Speicher aufgeteilt in: • löschbare Speicher ⇒ EPROM und EEPROM • nicht löschbaren Speicher ⇒ maskenprogrammierbare ROM Damit können Halbleiterspeicher mit wahlfreiem Zugriff realisiert werden. 639 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Cache: schneller Pufferspeicher, entweder auf CPU-Chip oder zwischen CPU und Speicher angeordnet. • Cache erforderlich um Prozessoren mit hinreichender Schnelligkeit mit Daten versorgen zu können. • Cache enthält neben Cachesteuerung einen Tag- und einen Blockspeicher, wobei Tag-RAM das Adressregister und Blockspeicher das Datenregister beinhaltet, letzteres in der Regel als SRAM realisiert. • Cache-Eintrag besteht aus zwei Teilen: Adress-Tag und (Daten-) Block. Am Tag einer Cache-Zeile ist erkennbar, ob sich gewünschter Block in adressierter Cache-Zeile befindet oder nicht. Cache-Zeilen werden im Blockzugriffverfahren geladen. 640 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Schreib-Lese-Speicher Haupt-, Arbeits- oder Systemspeicher ist Halbleiterspeicher mit wahlfreiem Zugriff, d.h. Schreib-Lese-Speicher oder Random Access Memory (RAM). Kann als statisches oder dynamisches RAM realisiert sein. Statische RAM-Bausteine, SRAM, weisen kleine Zugriffs- und Zykluszeiten auf, wohingegen dynamische RAM-Bausteine, DRAM, sich dadurch von den SRAM unterscheiden, dass Zugriffe speicherintern als Lesezugriffe mit Rückschreiben ausgeführt werden, mit automatischem Refresh. Damit sind dynamische RAM-Bausteine langsamer als statische RAM-Bausteine, besitzen aber eine größere Speicherkapazität. 641 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Schreib-Lese-Speicher RAM besteht aus • Speicherfeld, in der Regel in matrixförmiger Anordnung, • Steuerlogik, für Adress- und Datenregister. Speicheradresse über Datenpfade, Adressbus, in Adressregister übertragen, vom RAM-Speicher decodiert, d.h. auf Zeilen- und Spaltennummer abgebildet. Steuerlogik S ermöglicht • Anwahl des Speicherbaustein vermittels Chip Select (CS) Signal • Vorgabe Richtung der Datenübertragung durch Schreibsignal, d.h. Schreiben oder Lesen. Bei Blockzugriff auf RAM werden die einzelnen Wörter eines Blocks in einem Buszyklus gelesen, z.B. bei der Übertragung eines Blocks in Cache Zeile. Vom Prozessor wird nur Anfangsadresse des zu übertragenden Blocks erzeugt da Speichersteuerung die Folgeadressierung durchführt. 642 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Datenleitung DL C S Wortleitung WL DRAM-Zelle (Ein-Transistor Speicherzelle) 643 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher UB DL1 Q A T 5 DL2 T 2 T 4 T 1 T /Q /A T 3 6 WL RAM-Speicherzelle in CMOS-Technologie WL durch chipinterne Adressdekodierungslogik angesteuert Schreibvorgang durch logisch 1 an WL eingeleitet, DL1und DL2 führen inverse Potentiale. Liegt DL2 auf logisch 1 wird, WL = 1 und T5 und T6 leitend, T1 niederohmig und T2 hochohmig. A nimmt Wert logisch 0 an (Spannungsteiler T1/T2) und /A durch Rückkopplung Wert logisch 1. 644 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher SRAM-Zellen benötigen, bedingt durch statische Natur, keine Refresh-Zyklen ⇒ schneller als DRAM-Zellen, da Schreibvorgang nach Lesen unterbleiben kann. Hardwaretechnischer Aufwand innerhalb SRAM größer, da ohne Dekodierungslogik, 6 Transistoren pro 1-Bit-Zelle aufgewendet werden ⇒ Verlustleistung steigt frequenzabhängig an. DRAM basiert in Zellenstruktur auf Ein-Transistor-Speicherzelle. DRAMSpeicherzelle basiert auf Prinzip der Ladungsspeicherung in Kondensator der, bei Vernachlässigung der Leckströme, einmal aufgeladen, seine Ladung hält und so den logischen Wert 1 oder 0 repräsentiert. 645 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Speicherbausteine aus DRAM Zellen häufig benutzt, Zelle (ohne Ansteuerung) nur aus einem Transistor besteht, klein ist und geringe Verlustleistung hat ⇒ Packungsdichte DRAM entsprechend hoch ⇒Schaltungsmehraufwand für Refresh-Controller in keinem Verhältnis zum Gewinn an Packungsdichte und zur geringen Verlustleistung. DRAM Bausteine aus DRAM Zellen aufgebaut, interner Aufbau quadratische Struktur. Adresse zumeist in zwei Halbadressen, Seiten- und Spalten-Adresse, mit Steuersignal übermittelt. Adressen entsprechen beiden Dimensionen in der Adressierung des Bausteins. Ausführung des Lese- und Schreibverstärkers (E/A-Schaltung) stellt Interface zu Anschlüssen (Pins) dar. Für Lesevorgang wird anschließender Schreibvorgang initiiert um gespeicherte Daten zu erhalten. Dieser Vorgang, sowie teilweise auch der Refresh, laufen bei modernen DRAM intern ab. 646 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Neben Schreib-/Lese-Zellen, haben fest-programmierbaren Speicherzellen eine erhebliche Bedeutung. Die verschiedenen Ausführungen dieses Speichertyps unterscheiden sich sowohl hinsichtlich • Reversibilität der Programmierung, • Handhabbarkeit der Programmierung wie z.B. dem Ort wo dies durchgeführt wird, und der eingesetzten Technologie. Programmierung ⇒ Vorgang der abläuft um Zelle definiert zu aktivieren und anschließend, bei Auslesevorgang, eindeutigen logischen Wert, 0 oder 1, auszugeben. Wert muss auch nach Ausschalten der Betriebsspannung erhalten bleiben. Neben irreversiblen Programmierungsformen, sowohl beim Hersteller als auch vor Ort beim Anwender ("Feldprogrammierung") durchführbar, mit EPROMund EEPROM-Technologie reversible Programmierformen verfügbar. 647 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher V PP Select Gate Floating Gate- - Source n+ Pinch Off Substrate V D Drain n+ Depletio Region EPROM-Zelle während des Programmiervorgangs 648 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher EPROM-Zelle besteht aus MOS-Transistor mit zweitem Gate ⇒ Floating Gate, hat keine elektrische Verbindung nach außen, liegt isoliert in der Transistorzelle Im unprogrammierten Zustand keine Ladung auf Floating Gate ⇒ erzeugt niederohmige Verbindung zwischen Source und Drain bei Gateansteuerung Kopplung zwischen Eingangssignal und Produktzeile durch EPROM-Zellen die, sofern selektiert, miteinander gekoppelt sind wenn Floating-Gate durch seine elektrische Neutralität das Selektierungssignal nicht maskiert ist. Programmierte Zelle, bei der Ladungen auf dem Floating Gate vorhanden sind, wird durch das Selektierungssignal nicht leitend, so dass zwischen Source- und Drain die Spannung aufgrund der Hochohmigkeit des Transistors abfällt. Die Programmierung erfolgt durch Aufbringen elektrischer Ladungen (Elektronen) mittels Überspannung. 649 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Selektierungssignal Eingang signal Select Gate Floating Gate Source n+ Drain n+ Substrate Produktzeile EPROM-Zelle im unprogrammierten Zustand 650 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Bestrahlung mit UV-Licht bestimmter Wellenlänge (Quecksilber, 253,7 nm) oder durch elektrischen Löschvorgang (Flash-EPROM bzw. EEPROM) ⇒ auf Floating Gate gespeicherte Ladung kann durch lichtelektrischen Effekt wieder entfernt und damit der Baustein (in seiner Gesamtheit) gelöscht werden. EPROM Zellen theoretisch beliebig oft lösch- und wiederbeschreibbar. Parasitäre Effekte, die Ladungen auf Floating Gate auch beim Löschvorgang belassen, begrenzen die Zahl der Wiederholungen jedoch auf endliches Maß. Herstellerangaben zufolge kann Baustein zwischen 100 bis 10000 mal reprogrammiert werden, dabei werden die Datenerhaltungszeiten garantiert. 651 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher EPROM Zellen Prototyp für reversibel programmierbare Zellen in Logikbausteinen. Anwendung sind Festwertspeicher für Rechnersysteme, z.B. für Basisprogramme bei großen Rechenanlagen oder als Programmspeicher bei Controller-Applikationen. Die EPROM Zelle benötigt einen MOS-Transistor pro Bit, im Aufbau mit den DRAM-Zellen vergleichbar. Verlustleistung bei CMOS-Systemen gering, jedoch sind Schaltzeiten nicht beliebig verkleinerbar, da EPROM Zelle als Kondensator wirkt, so dass elektrische Impulse größere Laufzeiten aufweisen. EPROM werden als Programmspeicher eingesetzt die wortweise organisiert sind, d.h. das Lesen/Schreiben einer Zelle geschieht nicht bitweise, sondern mit der jeweiligen Wortbreite, die 4, 8 oder 16 Bit, sein kann. 652 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher 3.11 Grundlagen von Halbleiterspeichern 3.11.1 Adressierung 3.11.2 Realisierung 3.11.3 Statische und dynamische Speicher 653 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Adressierung einer Speicherzelle/Speicherzellen in eindimensionaler Form. Bei k Eingangsleitungen (Adressen) und n Ausgangsleitungen (Daten) 2kUNDGatter mit je k Eingängen und n ODER-Gatter mit je 2k Eingängen benötigt. Ausführung UND- und ODER-Gatter Bausteinabhängig. EPROM Zellen, die auf gemeinsamen Datenausgang arbeiten, parallel zu diesem geschaltet. Führt eine der Zellen am Ausgang (Produktsignal) logisch 1 Signal, bewirkt interne Verschaltung, dass das gemeinsame Signal, d.h. Datenausgang Wert logisch 1 führt, der über Tristate-Treiber an den externen Anschlüsse des Speicherbausteins anliegt. Durch Selektierung mittels der UND-Gatter kann nur eine Zelle logisch 1 Signal am Ausgang aufweisen, und nur dann, wenn die Programmierung (d.h. die Ladungen) gelöscht ist. 654 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher A k-1 A 0 0 & 1 & k 2 programmierbare Verbindungen je ODER-Gatter ... 2 k-1 & k 2 UND-Gatter Adreßdekodierer >1 ... >1 n ODER-Gatter D 0 D n-1 Aufbau eines Programmspeicher-Bausteins mit eindimensionaler Adressierung 655 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher SRAM-Zellen ähnlich zusammengeschaltet. Auslegung Datenbustreiber bidirektional, da SRAM Schreib/Lesespeicher sind. Wegen eindimensionaler Adressierung benötigt Speicherbaustein mit n Bitleitungen n * 2k-Eingangsleitungen zu den Zellen. EPROM 27256 (SRAM 62256) mit 32k * 8 Bit Speicherkapazität, besitzt 8 Bitleitungen, aber 262144 Eingangsleitungen. Diese Belegungen werden in annähernd quadratische Form gebracht (zweidimensionale Adressierung), durch diese Verschaltung wird Herstellungsprozess integrierter Schaltkreise besser unterstützt. Linear angeordnete UND-Matrix wird zweigeteilt und quadratisch zueinander angeordnet, zeigt Abbildung 3.59 für EPROM 27256 im Detail. Speicherinhalt befindet sich in 512 * 512-Speicher Matrix. Gewünschte Zellen (8 Bit Breite) werden durch 512 Selektierungsleitungen, den Adressleitungen A4 - A9 und A12 - A14, UND verknüpft mit 8 * 26 Leitungen der Adressierungsbits A0 bis A3, A10 und A11, angesprochen. Chip Select-Leitungen sowie Output Enable zur Steuerung in Mikroprozessorsystemen mit mehr als einem Baustein benötigt, in Abbildung 3.59. der Einfachheit halber weggelassen, da sie nur die Ausgangstreiber aktiv schalten. Von der jeweiligen Adresszuordnung kann im Einzelfall abgewichen werden, das Prinzip der Implementierung bleibt aber bei allen Speicherbausteinen erhalten. 656 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher XDecoder A4 - A9, A12 - A14 ... (1 aus 512) 512 * 512... Matrix ... Y-Decoder (8 aus 512) A0-A3, A10, A11 8 Outputs ... EPROM 27256, vereinfacht 657 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher 3.11 Grundlagen von Halbleiterspeichern 3.11.1 Adressierung 3.11.2 Realisierung 3.11.3 Statische und dynamische Speicher 658 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Zusammensetzung mehrerer Speicherzellen zu größeren Organisations einheiten wird Register genannt. Register werden, da Anzahl in der Regel gering ist, direkt angesteuert, so dass keine Zeit zur Dekodierung einer anliegenden Adresse verloren geht. Daher sind sie sehr schnell und können als schnelle Speicher eingesetzt werden. Datenspeicherbereich (RAM) ist als Register-File realisiert, d.h. jeder Befehl kann auf jede RAM Zelle in gleicher Weise zugreifen. Breite des Registers ist entsprechend dem Grad der Parallelität unterschiedlich. Man findet 8-, 16-, 32- und 64-Bit breite Register in CPUs. 659 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Mehrere Register können zu Registersatz zusammengeschlossen Werden. Voraussetzung dafür ist deren allgemeine Einsetzbarkeit, d.h., Register dürfen keine speziellen Aufgaben wahrnehmen. Eine gewisse Ausnahme bilden hier nur Register, deren Wert festgelegt ist um einen schnellen Konstantenzugriff zu gewährleisten. Sehr große Registersätze werden häufig als Registerfile bezeichnet. Die Verwaltung von Registerfiles ist auf unterschiedliche Weise möglich. Im einfachsten Fall stehen alle Register jeder Task zur gleichen Zeit zur Verfügung. Die Form der Verwaltung entspricht dem konventionellen Registersatz; Aufteilungen für verschiedene Tasks werden innerhalb der Software festgelegt . 660 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Registerfile kann in zwei verschiedene Bereiche aufgeteilt werden, einen lokalen und einen globalen Bereich. Der globale Registersatz bleibt für alle Tasks gleichermaßen erreichbar, so dass über diese Register der globale Datenaustausch abgewickelt werden kann. Für Programme oder Unterprogramme wird lokaler Registersatz definiert, auf dem bei Aufruf eine Parameterübergabe erfolgen kann bzw. der dem Programmteil als privater Registersatz zur Verfügung steht. Zu diesem Zweck wird das Registerfile in eine Reihe disjunkter Registersätze aufgeteilt, deren Zuteilung an eine Task über einem Registersatzpointer erfolgt. Entsprechend muss der Zugriff auf Register über einen Registerpointer mit Index erfolgen. 661 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Des weiteren wird der Registersatz wieder in einen globalen und einen lokalen Bereich aufgeteilt, wobei die Verwaltung des lokalen Teils nicht mehr in Form disjunkter Teilen, sondern teilweise überlappend erfolgt, so dass insbesondere die Parameterübergabe erheblich vereinfacht wird. Die überlappenden Teile sind häufig zyklisch angeordnet, so dass sich erste und letzte lokale Registerbank überlappen. Durch diese Überlappung wird ein einzelner lokaler Registersatz in drei Teile aufgespalten, wobei der mit dem aufrufenden Programm überlappende Teil der Parameterübergabe dient, der mittlere Teil private Register zur Verfügung stellt, während der letzte Teil gegebenenfalls mit dem nächsten, nun von diesem Programmteil aufgerufenen Unterprogramm, überlappt. Abbildung zeigt die beschriebenen Verwaltungsformen eines Registerfiles. Die entsprechenden Basispointer müssen ebenfalls in Registern gehalten werden. Die Verwaltung per Hardware funktioniert in gewissen Grenzen. Wird der Bedarf überschritten, muss eine Softwareverwaltung eingeführt werden. 662 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Lokaler Registersatz m Registern, l überla Lokaler Registersatz k mit m Registern Registernummer k *m+i (i Index innerhalb) Index k Registernummer k *( m-l/2) + i Index k (i Index innerhalb) Globaler Registersatz Globaler Registersatz Globaler Registerfile Konstante Konstante Registerfile Basispointer mit lokalen, Basispointer disjunkten Registersätzen Registerfile mit lokalen, Basispointer überlappenden Registersätzen Verwaltungsformen eines Registerfiles 663 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Organisation von SRAM und EPROM Neben Registersätzen bzw. files, wie sie innerhalb von Prozessoren oder PeRepheriebausteinen vorhanden sind, werden Komponenten eingesetzt, die ausschließlich speichernde Funktionen besitzen: Programmspeicher In der Regel wortweise organisiert, Wortbreiten, 4, 8, 26, 32 oder 64 Bit, d.h.Lesen/schreiben einer Zelle erfolgt mit der jeweiligen Wortbreite. Adressierung einer Speicherzelle bzw. mehrere paralleler Speicherzellen (ein Wort) kann in eindimensionaler Form erfolgen. Infolge der eindimensionalen Adressierung benötigen Speicherbausteine mit n Bitleitungen insgesamt n * 2k-Eingangsleitungen zu den einzelnen Zellen. Das EPROM 27256 (oder ein SRAM 62256) mit 32k * 8 Bit Speicherkapazität, besitzt damit 8 Bitleitungen, aber 262144 Eingangsleitungen. In der Praxis werden diese Belegungen in eine annähernd quadratische Form gebracht (zweidimensionale Adressierung), da durch diese Verschaltung der Herstellungsprozess der ICs besser unterstützt wird. 664 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher A k-1 A 0 0 & 1 & k 2 programmierbare Verbindungen je ODER-Gatter ... 2 k-1 & k 2 UND-Gatter Adreßdekodierer >1 ... >1 n ODER-Gatter D 0 D n-1 Aufbau eines Programmspeicher-ICs mit eindimensionaler Adressierung 665 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Linear angeordnete UND-Matrix wird zweigeteilt und quadratisch zueinander angeordnet, wie beim EPROM 27256. Speicherinhalt in 512 * 512-Speicher Matrix. Die gewünschten Zellen (hier 8 Bit Breite) durch 512 Selektierungsleitungen links (Adressleitungen A4 – A9, A12 – A14), UND-verknüpft mit den 8 * 26 Leitungen von unten (Adressierungsbits A0 bis A3, A10 und A11) angesprochen. Die Chip Select-Leitungen sowie der Output Enable werden zur Steuerung in Mikroprozessorsystemen mit mehr als einem Baustein benötigt. Von der jeweiligen Adresszuordnung kann im Einzelfall abgewichen werden, das Prinzip der Implementierung bleibt aber bei allen Speicherbausteinen erhalten. 666 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher XDecoder A4 - A9, A12 - A14 ... (1 aus 512) 512 * 512... Matrix ... Y-Decoder (8 aus 512) A0-A3, A10, A11 8 Outputs ... EPROM 27256, vereinfacht 667 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher 3.11 Grundlagen von Halbleiterspeichern 3.11.1 Adressierung 3.11.2 Realisierung 3.11.3 Statische und dynamische Speicher 668 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher DRAM Bausteine DRAM Bausteine sind aus DRAM-Zellen zusammengesetzt, wobei den internen Aufbau betreffend ein quadratische Struktur angestrebt wird. Die Aufteilung der Adresse in zwei Halbadressen hat eine deutliche Minderung der Gehäusemaße zur Folge, da bestimmte Anschlüsse (Pins) Doppelfunktionen erhalten können. Bei den sogenannten Page-Mode-DRAM Bausteinen wird dies zusätzlich ausgenutzt, indem die Page-Adresse nur einmal geladen wird, anschließend aber alle zugehörigen Spalten-Adressen bei verringerter Zugriffszeit ausgelesen werden können 669 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher 1. Teiladresse (Page) Datenleitung Speichertransistor D OUT & & ZeilenRegister Speichertransistor C P & E/A-Schaltung ... D IN & & ... 2. Teiladresse (Column) DRAM-IC (prinzipieller Aufbau) 670 Rechnerstrukturen Teil 1 Prof. Dr. Möller 3.11 Speicher Eingänge I1 I0 I1 ODER-Matrix I0 Wort0 & UND- Wort1 Matrix & Wort2 & Wort3 & >1 >1 bedeutet feste Verbindung, programmierbare Verbindung (Fuse) O1 O0 Ausgänge PROM Struktur (prinzipieller Aufbau) 671 Rechnerstrukturen Teil 1 Prof. Dr. Möller Prüfungsrelevante Vorlesungsinhalte RS Teil 1 Rechnerstrukturen Teil 1: 1. Grundbegriffe der Informationsverarbeitung (Information, Repräsentation von Information, Zahlensysteme, Codierung) 2. Rechnerarithmetik (Operationen mit Zahlen, Ganzzahl- und GleitkommaArithmetik) 3. Lokale und globale Konzepte der Digitaltechnik (Boolesche Algebra, Automatentheorie, Schaltnetze, synchrone und asynchrone Schaltwerke, kooperierende Schaltwerke (Operationswerk, Steuerwerk), Datenpfade, Datentore, Bus-Systeme, Zähler, Register, Registerfiles, Speicher) 672 Rechnerstrukturen Teil 1 Prof. Dr. Möller Tutorium RS Teil 1 Mittwoch 08.02.2006 Zuse Hörsaal Information Zahlensysteme Codierung Rechnerarithmetik Boolesche Algebra Schaltnetze Schaltwerke Zähler Register Speicher 673 16:00 – 18:00 Uhr Rechnerstrukturen Teil 1 Prof. Dr. Möller