Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Vertiefungsstoff zum Thema: Mikrocomputer Anbindung von Ein- und Ausgabegeräten Plattenspeicher -Aufbau - RAID Technik Überblick zu gängigen Bus-Systemen.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Vertiefungsstoff zum Thema: Mikrocomputer Anbindung von Ein- und Ausgabegeräten Plattenspeicher -Aufbau - RAID Technik Überblick zu gängigen Bus-Systemen."—  Präsentation transkript:

1 1 Vertiefungsstoff zum Thema: Mikrocomputer Anbindung von Ein- und Ausgabegeräten Plattenspeicher -Aufbau - RAID Technik Überblick zu gängigen Bus-Systemen Mikro- / Maschinen- / Assemblerprogrammierung höhere Programmiersprachen / Programmierparadigmen

2 2 Vom Rechenwerk zum Universal-Rechner Zur Kommunikation (d.h. zum Datenaustausch) mit der Außenwelt wird der Micro-Computer (bestehend aus CPU, RAM und ROM) zum DVS ausgebaut durch: - Kopplung mit einem Ein- sowie mit einem Ausgabewerk - Anbindung eines externen Massenspeichers Datenverarbeitungssystem (DVS) Peripherie  -Comp Eingabe- werk : Steuerbus : Adressbus : Datenbus Ausgabe- werk Speicherung (extern) E A V S

3 3 Verwendung eines eigenen E/A-Prozessors Motivation: Entlastung der CPU von Ein- Ausgabeaufgaben. Vorteilhaft z.B. bei massiver Graphik- und Videoausgabe. Lösung: - CPU plus E/A Prozessor (d.h. weitere CPU mit speziellen Programmen zur Bewältigung von Ein- und Ausgabeaufgaben). - CPU stößt E/A-Prozessor an, falls erforderlich. - CPU und E/A-Prozessor arbeiten weitgehend unabhängig nebeneinander (auch nebenläufige oder parallele Verarbeitung). CPU E/A Prozessor I/O Gerät 1 Datennetz I/O Gerät n Anmerkung: - Evtl. Verwendung mehrerer spezialisierte E/A Prozessoren. - CPU und E/A-Prozessor sind Kanal-gekoppelt.

4 4 Verwendung externer Speichermedien Motivation: Da große RAM-Speicher relativ teuer sind (waren), weicht man auf billigere Massenspeicher aus, z.B. auf Magnetplattenspeicher (Festplattenspeicher, Hard disk). Aufbau: Magnetisierbares Material wird auf eine Rotationsscheibe aufgetragen. Ähnlich einem Plattenspieler, positioniert man einen Lese- Schreibekopf an einer Plattenposition. Schreiben eines Bits entspricht dem Ausrichten eines magnetisierbaren Partikels

5 5 Organisation der Datenablage auf einer Festplatte Magnetplattenspeicher sind blockorganisierte Speicher mit quasi- wahlfreiem Zugriff. Die Aufteilung der magnetisierbaren Plattenfläche erfolgt in Spuren und Sektoren, über die der Lese-Schreibkopf positioniert werden kann. Die logische Strukturierung der abzulegenden Daten erfolgt in Blöcken von Bytes, die bei einem Zugriff gemeinsam gelesen oder geschrieben werden. (Es gibt viele verschiedene Varianten, z.B. DOS, UNIX,...) Blöcke werden zu Cluster und/oder Partitionen zusammengefasst. Eine Dateiordnungstabelle (File Address Table, FAT) führt darüber Buch, wo welche Daten auf der Platte abgelegt sind bzw. abgelegt werden sollen. (Beispiel FAT32 unter Windows XP)

6 6 RAID - Redundant Array of Inexpensive Disks Motivation: Verwendung mehrerer Festplatten, um: - Schreib-Leseoperationen zu beschleunigen - Datenverlust bei technischen Fehlern zu minimieren Aufbau: verschieden Varianten (RAID-Levels): RAID 0: Striping (mindestens zwei Platten) Beschleunigung ohne Redundanz Die Blöcke A,B,C,D werden als Streifen (stripes) einer großen Platte betrachtet. Ein zu schreibendes Datum wird ebenfalls in Streifen zerlegt, so dass jede Platte weniger Schreiben muss. (Damit wird auch das Lesen beschleunigt). RAID 1: Mirroring - Spiegelung -volle Redundanz, daher hohe Datensicherheit -verteuert den Speicher um den Faktor 2

7 7 RAID - Redundant Array of Inexpensive Disks RAID 5: Performance + Parität Beschleunigung plus Redundanz Man bildet Paare von Blöcken (Si, Sj) und legt für jedes Paar Paritätsinformation P(Si, Sj) an, die man dann jeweils auf einer anderen Platte ablegt. => Man braucht mindestens 3 Platten Paritätsinformation für das Paar (A,B) - Sei a i das in Block A unter der Adresse i abgelegte Byte und - sei b i das in Block B unter der Adresse i abgelegte Byte dann berechnet man die Paritätsinformation p i (für a i und b i ) durch: p i := a i XOR b i Vorteil: Ist beispielsweise Block A nach einem Plattencrash nicht mehr lesbar, so kann man das Byte a i aus den beiden Bytes b i und p i wieder herstellen (Durchführen eines „Rebuild“).

8 8 Zur Zukunft der Festplatte? Seagate: „By 2010 we should see densities of at least a terabit per square inch — that is 1 trillion bits.“ Ansatz: Magnetisierbares Material wird punktgenau mit einem Laserstrahl erhitzt und gleichzeitig durch den magnetischen Schreib-Lesekopf beschrieben / gelesen. => Höhere Speicherdichten auf dem Datenträger (z.B. Festplatte). 2,54 cm

9 9 Zur Zukunft der Festplatte? IBM „Millipede“ -(n  m) Nadeln schmelzen parallel Löcher in einen Kunststoffträger -http://www.zurich.ibm.com/st/storage/millipede.html

10 10 Anbindung von weiteren Geräten über Busse Peripheriegeräten bzw. zum Datenaustausch mit anderen Computern über ein Netzwerk wurden verschiedene Schnittstellen-Technologien entwickelt: 1:1-Verbindungen: -Serielle Schnittstellen (RS-232) -Parallele Schnittstellen („Centronics Schnittstelle“) 1:n- bzw. n:n-Verbindungen durch Busse Unterscheidung nach: -Art der zu übertragenden Information in > Datenbus > Adressbus > Kontrollbus (Steuerbus) -Art der Übertragung in parallel vs. seriell arbeitende Busse -Abhängigkeit von spezieller Hardware: z.B. Systembusse vs. Standardbusse -Leistungsmerkmale wie: > Busbreite (Anzahl der parallelen Leitungen) > Taktrate (z.B. 66 MHz) > Übertragungsrate (z.B. 12 Mbit/sec)

11 11 Serielle Schnittstellen (EIA-232, RS-232, V.24) Die EIA-232-Schnittstelle (ehemals RS-232) ist eine so genannte Spannungsschnittstelle. Entspricht einer V.24/V.28/ISO-2110-Schnittstelle hinsichtlich Signalsemantik, Elektrik und Steckerbelegung. Technisch wird sie meist in Form einer 9-poligen Leitung realisiert. Ursprünglich entwickelt für die Datenfernübertragung zwischen Computern über das Telefonnetz entwickelt und enthält daher noch verschiedene Signale, die heute für die meisten Anwendungen nicht benötigt werden. => Nicht alle 9 Leitungen werden effektiv zum Datentransfer genutzt. Prinzip: Einzelne Bits werden nacheinander (d.h., seriell) über eine Datenleitung gesendet. Beispiel: Übertragung des Zeichens A in ASCII Code:

12 12 Pinbelegung der EIA-232 Schnittstelle Einsatzmöglichkeit: z.B. Anbindung von Modems, z.B. 56KBit Modem.

13 13 Parallel Schnittstelle ("Centronics", IEEE 1284 ) Centronics-Schnittstelle: in den 1970er-Jahren vom gleichnamigen Druckerhersteller entwickelte Schnittstelle zur parallelen Datenübertragung. Entwickelte sich zum Quasi-Standard und wurde ab 1994 Teil des IEEE 1284 Standards (Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers). Prinzip: Standard-Centronics-Stecker besitzt 36 Pins, davon werden 17 Pins für Datentransfer und Handshake genutzt, die anderen liegen an Masse. Die Datenübertragung erfolgt nach folgendem Protokoll: 1.Der Sender überprüft anhand der Busy-Leitung, ob der Empfänger bereit ist. Falls ja, wird das Datenbyte auf die Datenleitungen gelegt 2.Durch Aktivierung des Strobe-Signals (mind. 1 bis max. 50 Mikrosekunden) wird dem Empfänger die Gültigkeit des Datums mitgeteilt 3.Durch Aktivierung von Busy signalisiert der Empfänger, dass er mit der Verarbeitung der Daten beschäftigt ist 4.Der erfolgreiche Empfang und Verarbeitung des Datenbytes wird vom Endgerät durch das Acknowledge-Signal bestätigt

14 14 Parallel Schnittstellen Vorteil: höhere Übertragungsraten gegenüber seriellen Schnittstellen, z.B. 150 KBit/sec. Nachteile paralleler Schnittstellen: dickere Kabel Gefahr der gegenseitigen Störungen der einzelnen Adern Störungen durch Laufzeitunterschiede in den parallelen Adern. Um diese zu verhindern, darf – abhängig von Übertragungsgeschwindigkeit und der Kabelqualität – eine maximale Länge nicht überschritten werden, z.B., max. 1,8 Meter Kabellänge bei Centronics Schnittstelle. (Bei hochwertigen Kabeln bis zu max. 5 Metern möglich). Moderne parallele Schnittstellen unterstützen EPP (Enhanced Parallel Port) bzw. eine Weiterentwicklung mit Namen ECP (Enhanced Capabilities Port). EPP / EPC verwendet bidirektionale Datenübertragung und kann Geschwindigkeiten von bis zu 2 MiB/s erreichen. Findet Verwendung vor allem für Netzwerkadapter, externe Datenträger und zum Anschluss von Druckern.

15 15 Anbindung von weiteren Geräten über Busse Vorteil des Bus-Konzepts: Gemeinsame Nutzung eines Leitungsstrangs erlaubt den Anschluss mehrer Busnutzer. => Gute Skalierbarkeit, neue Geräte können angehängt werden. Komponenten einer Bus-Schnittstelle Bus- anforderung (  Bus Master) Strom- und Taktversorgung Busleitungen (Daten, Adressen, Steuerung, Versorgung) Arbiter (Buszuteilung) Interrupt- anforderung Interrupt- verarbeitung Übertragungs- steuerung (  Bus Slave) Globale Busfunktionen Lokale Busfunktionen

16 16 Bus-Mastering Prinzip: Beim Bus-Mastering gibt die CPU zeitweilig die Kontrolle über den Bus an eine Adapterkarte, den sogenannten Busmaster ab. Der Busmaster adressiert in der Folge selbständig Speicher und Ein- Ausgabe-Bereiche zum Zweck des Datentransfers. => Busmaster wirkt als eine Art Bridge bzw. wie eine eigenständige CPU. Vorteil: Busmastering entlastet die CPU – sie kann somit für andere Aufgaben eingesetzt werden. Meist ist der Bus zum Speicher hin noch teilweise nutzbar, es herrscht somit Time-Sharing. Time-Sharing macht sich insbesondere bei modernen Multitaksing- Betriebssystemen positiv in der Reaktionsfähigkeit bemerkbar, wobei die Busmaster-Aktivität oftmals über ein Interrupt-Signal mit dem Betriebssystem verkoppelt ist. Die Adapterkarte hat dabei den Sinn, bestimmte Aufgaben asynchron zu anderen Tasks zu bedienen.

17 17 Bussysteme UART "Universal Asynchronous Receiver Transmitter". Ein Serial-Parallelwandler Baustein, der als universeller asynchroner Sender und/oder Empfänger arbeitet. Beispielsweise sind serielle PC- Schnittstellen mit einem UART-Chip realisiert. ISA (Industry Standard Architecture): Früher Bus-Standard für IBM- kompatible PCs, welches die XT-Bus-Architektur auf 16 Bits erweitert. Wird üblicherweise mit 8 MHz getaktet. EISA (Extended Industry Standard Architecture): Standardbus der den ISA-Bus auf 32 Bit erweitert. Außerdem fügt er die Möglichkeit hinzu, den Bus zwischen mehreren CPUs zu teilen. Die Unterstützung für das Bus Mastering ist auch weiter verbessert worden, so dass nun 4 GB Speicher erreichbar sind. EISA kann ältere Karten vom XT-Bus und von ISA-Bus einsetzen. VLB (VESA-Local-Bus): von der Video Electronics Standards Association (VESA) entwickeltes 32-Bit Bussystem. Überträgt mit 32-Bit und dem Prozessortakt (25 bis 66 MHz) bis zu 80 MByte/sec. HyperTransport Industriekonsortium (verschiedene Busbreiten, 2-32 Bit, bis zu 22.4 GB/sec schnell).

18 18 PCI Bus PCI (Peripheral Component Interconnect): Bus-Standard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Prozessors. Verschiedene Varianten des Standards für verschiedene Einsatzgebiete: (PC, Industrie, Telekommunikation). Im PC-Umfeld findet hauptsächlich die Variante PCI Conventional Verwendung. PC‘s haben meist zwei bis sieben Steckplätzen für PCI-Karten (z.B. Netzwerkkarten, Modems, Soundkarten und (ältere) Grafikkarten.) PCI-Bus ist ein synchroner Bus mit MHz Taktrate (30 ns pro Takt). Auf dem PCI-Bus kommuniziert immer ein Master mit einem Target. In vielen PC- Systemen ist der Host der einzige Master. Ein Bus kann aber mehrere Master haben, über einen Arbiter wird ein Master ausgewählt. Der ausgewählte Master kann einen Transfer beginnen, wobei er eine Adresse an die 32 Daten/Adressleitungen und ein Kommando an 4 Kommando/Byte-Leitungen anlegt. Ein zusätzlich Paritätsleitung erlaubt das Erkennen von Fehlern. Übertragungsrate: 4 Bytes pro Takt (30 nsec), also maximal 133 MByte/sec. PCI-Express ist möglicher Nachfolger von PCI und AGP. PCI-Express verfügt über Slots mit unterschiedlichen Datenübertragungsraten: - PCI x1: 250 MByte/sec, x4 PCI-Express: 1 Gbyte/sec - PCI Express x16: 4 Gbyte/sec

19 19 PCMCIA (PC-Card) PCMCIA (Personal Computer Memory Card International Association). Standard für Erweiterungskarten für mobile Computer. Statt "PCMCIA- Karte" hat sich der Begriff "PC-Karte" (PC Card) durchgesetzt. Grundfläche im Scheckkartenformat (85,6 × 54 mm), jedoch in verschiedenen Dicken. PCMCIA-Karten lassen sich nach ihrer Datenbreite unterscheiden: 16 Bit: Die Kommunikation mit dem Computer erfolgt über die 68-polige Buchse an einer Stirnseite der Karte. Die mit diesem Kartentyp erzielbaren Datenraten entsprechen etwa der von 16-Bit-ISA- Karten (etwa 16 MB/s). 32 Bit "Cardbus"-Karten: Übertragungsrate ist mit PCI-Karten vergleichbar (max. 133 MB/s). Cardbus-Karten erlauben Bus-Mastering. PCMCIA-Karten arbeiten stromsparend und unterstützen Plug and Play, sind also im laufenden Betrieb wechselbar.

20 20 SCSI Bus SCSI (Small Computer System Interface): Familie standardisierter Schnittstellen zur Datenübertragung beruhend auf dem Bus-Konzept. (1986: SCSI-1 5 MB/sec, 1989: SCSI-2,..., 2004 Ultra MB/sec). Der Anschluss von SCSI-Geräten erfordert einen SCSI-Hostadapter, der den Datentransfer auf dem SCSI-Bus kontrolliert und rückseitig an die I/O-Baugruppen des Computers angebunden ist (meist der PCI- Bus). das anzuschließende SCSI-Gerät besitzt einen SCSI-Controller, um die Daten über den Bus zu übertragen und mit dem Hostadapter zu kommunizieren. Der SCSI-Controller ist heute generell in die Geräteelektronik eingebettet. SCSI wird meist zur Anbindung von Festplatten und Bandlaufwerken genutzt, kann jedoch auch mit einer Reihe von weiteren Geräten verwendet werden, wie z. B. Scanner, CD-ROM-Laufwerken, CD-Brenner und DVD-Laufwerke. Ausblick: eine Einbettung von SCSI-3 über TCP/IP (iSCSI-Standard). SCSI-3 Controller mit 50 Pin Kabel

21 21 USB USB (Universal Serial Bus) ist ein 4 adriger serieller Bus. 2-Leitungen (D+ und D-) zur Datenübertragung wovon eine invertierte Daten überträgt (differenziellen Datenleitung). => reduzierte Abstrahlung => höhere Übertragungssicherheit. 2 Leitungen zur Stromversorgung externern Geräte =>praktisch, man spart Netzteile Im Gegensatz zum klassischen parallel-arbeitenden Bus bezieht sich Bus bei USB auf die logische Vernetzung. -An einen Host können mehrere Geräteangeschlossen werden, jedoch grundsätzlich über Hubs. An einer elektrischen Leitung ist immer nur ein einzelnes USB-Gerät angeschlossen. Durch den Einsatz von Hubs entstehen Baumstrukturen, die alle in einem Host-Controller enden. USB Hostadapter Tastatur Maus Tablett Drucker

22 22 USB An einen Hostcontroller können bis zu 127 verschiedene Geräte angeschlossen werden. Durch Verwendung mehrerer Hostcontroller können auch noch mehr Geräte angeschlossen werden (jedoch abhängig vom verwendeten Betriebssystem, Windows beispielsweise wird lange vor Erreichen der 127 Geräte instabil). Theoretisch maximale Übertragungsraten: - Low Speed: 1,5 MBit/sec - Full Speed: 12 MBit/sec - High Speed (ab USB 2.0): 480 MBit/sec für isochrone Übertragung. Übertragungsraten basieren auf dem Systemtakt der jeweiligen USB- Geschwindigkeit. In der Praxis muss mit einer spürbar geringeren Übertragungsrate gerechnet werden. Geräte übermitteln erwünschte Übertragungsbandbreiten durch Signal (Leitung D+ := High-Speed Gerät) Da die Kommunikation vom Host (meist PC) gesteuert werden muss, kommunizieren USB-Geräte nicht direkt miteinander. Sämtliche Daten werden zuerst vom Host gelesen und von dort wieder herausgeschrieben werden. Die USB-Spezifikation sieht das Zufügen und Entfernen der Peripherie- Geräte im laufenden Betrieb vor. Man spricht dabei von Hot-Plugging.

23 23 FireWire / IEEE 1394 / (i.Link bei Apple) FireWire ist ein seriell-arbeitendes Peer-to-Peer-Bus (entwickelt von der Firma Apple, Markteinführung ab 1995). FireWire kennt keinen fest definierten zentralen Host zu Steuerung von Übertragung und Adressierung. Fast jedes Gerät hat zusätzlich zwei oder mehrere Ports und fungiert gleichzeitig als Hub und Repeater. Die eingehenden Signale werden an alle anderen Ports weitergereicht. Maximal sind 63 Geräte pro Bus möglich, wobei es keinen Ringschluss (erstes Gerät ist mit dem letzten verbunden) geben darf. Bei Firewire IEEE1394b sind Ringschlüsse gestattet. Bis zu 1023 Busse können mit Brücken verbunden werden, so dass insgesamt fast Geräte verbindbar sind. Der maximale Abstand zwischen zwei Geräten ist 4,5 m, die maximale Gesamtlänge des Busses beträgt 72 m.

24 24 FireWire / IEEE 1394 / i.Link (bei Apple) Übertragungsrate von FireWire beträgt bis zu 400 MBit/sec (50 MByte/sec) seit Einführung. Einsatzfelder: Für Digital-Video ist FireWire (IEEE 1394) seit Festlegung des DV-Standards die Schnittstelle in jedem DV-Camcorder. Jedoch auch andere Geräte, z.B., schnelle externe Festplatten. Aktuelle Weiterentwicklung zum sog. Wireless FireWire: WFW baut auf der FireWire-Infrastruktur auf, so dass Datenformate und Verbindungsmanagement von FireWire weiterverwendet werden können. Verändert sich die Topologie, so wird ein neuer Taktgeber mittels eines Protokolls „demokratischen“ ermittelt. - Auswahl z.Teil vom Zufall abhängig bzw. von der bereits aufgebauten Topologie. -ausgewählter Taktgeber übernimmt die Takterzeugung und das Bestätigen der Sende-Anforderungen der übrigen Geräte. => Nachteile von FireWire: Bestätigen der Sende-Anforderungen kostet viel Zeit und vergeudet einen Teil der Bandbreite.

25 Vergleich verschiedener Bus-Systeme

26 26 Kopplung unterschiedlicher Busse über eine Bridge  -Comp I/O-IF-Logik CPU Hauptspeicher : Systembus : Peripheriebus : extern 1 GByte/s I/O-IF 528 MByte/s Bussteuerung (PCI-Bridge) Grafik- Chip 528 MByte/s 132 MByte/s SCSI- Controller ISA- Bridge EIDE- Chip USB- Controller externe Wege interne Wege

27 27 Sprachebenen der Programmierung Hochsprachen Mikro-Befehle Abbildung auf Maschinen-Befehle Assembler Befehle einer virtuellen Maschine Abbildung auf Abstraktionsgrad hoch niedrig - abhängig vom Prozessor - elementare Funktionen - vom Hersteller programmiert - schwer lesbar (binär) - Anwender programmierbar - prozessorabhängig - schwer lesbar (binär) - Anwender programmierbar - durch Emulatoren unabhängiger vom verwendeten Prozessor - symbolisch => besser lesbar - Anwender programmierbar - Plattform-unabhängig - symbolisch, mit Sprachkonstrukten zur bequemeren Programmierung. Abbildung auf

28 28 Anmerkung: nicht alle denkbaren Bit-Kombinationen (= 2 32 ) werden als Befehle genutzt. Beispielhafte Struktur eines 32 Bit Mikro-Befehls 32 Bit Befehls- register MIR jsenS  -ROM-IF F calc SHB BAL ASdsld-MDRenM MemIF asld-MARiADR 8 Bit zur Ablage von Befehlsadressen j und s Bit zur Codierung der Sprungbedingung zusätzliches Steuerbit (enableS). Falls nicht gesetzt, wird ALU Ergebnis nicht in Ergebnis- Register transferiert. => nur Test von N oder Z 5 Bit12 Bit 4 Bit 11 Bit

29 29 Entwicklung von Mikro-Programmen Satz: Mit seriellen Anweisungen zur Inkrementierung und Dekrementierung von Datenwerten und bedingten Sprungbefehlen lassen sich alle prinzipiell berechenbaren Funktionen programmieren. Die zur Programmierung verwendbaren Mikro-Befehle unterscheiden sich in Anzahl und Format zum Teil erheblich von CPU zu CPU. => Mikro-Programme sind nicht portabel. =>minimale Befehlssätze ziehen oft aufwändige Programm- Formulierungen nach sich. CISC vs. RISC- Architekturen CISC (Complex Instruction Set Computer): oft mehr als 200 Befehle, 3 bis 10 Takte pro Befehl, komplexer Aufbau. RISC (Reduced Instruction Set Computer): meist weniger als 100 Befehle, wenig Takte pro Befehl, mehrere Register (> 32), einfacherer Aufbau des Steuerwerks. (Bekannter Vertreter: Sun Microsystems)

30 30 Vorgehen bei der Entwicklung von Mikro-Programmen Gegeben: Anwendungsproblem / Programmieraufgabe Schritt 1:Problemanalyse, Spezifikation der Ein- und Ausgabe Schritt 2:Aufteilung in Teilprobleme und Formulierung eines Ablaufs (Verfahren, Algorithmus) zur Problemlösung. (Varianten zur Notation: Text, Diagramme, mathematische Notation,...) Schritt 3:Festlegung, wo welche Daten abgelegt werden sollen (RAM, Registerfile) Übersetzung der Lösungsschritte in einzelne Mikro-Befehle bzw. Mikro-Programm-Bausteine. Schritt 4:Codierung des gesamten Ablaufs als Sequenz von Mikrobefehlen (die evtl. Sprünge enthalten kann). Festlegung der Adressen, unter denen die Befehle abgelegt werden. Schritt 5:Übersetzung der Mikro-Befehle in Maschinenworte (Bitfolgen) Schritt 6:Laden des Mikro-Programms in den Befehlsspeicher und Programmtest.

31 31 Vorgehen bei der Entwicklung von Mikro-Programmen Schritt 5:Übersetzung der Mikro-Befehle in Maschinenworte (Bitfolgen) Schritt 6:Laden des Mikro-Programms in den Befehlsspeicher und Programmtest. Neuere Prozessoren (z.B. die Pentium Serie) erlauben es, den Mikrocode (partiell) zu ändern. Motivation: „In the design of the Pentium(tm) processor, historical averages were used to predict the number of fatal microcode bugs which could be expected in the production silicon. At the equivalent of 360K bytes of microcode data, it was anticipated that there would be approximately 25 fatal bugs. 32 patch registers were included to allow for the remapping of up to 32 microinstruction words“ Realisierung: zusätzliches Registerset: Microcode Patch Register (MPR's), sowie zwei zusätzliche Befehle: - PMPR Push Patch Register - EMXExecute Microcode Extension

32 32 Beispiel 1: Mittelwertberechnung zweier Zahlen Aufgabe: Berechne den ganzzahligen Mittelwert m der beiden Zahlen a und b. Schritt 1:Eingabe: zwei Zahlen a und b. Ausgabe: m = (a+b)/2 Schritt 2:Aufgabe lässt sich durch Addition mit anschließendem Rechts- Shift lösen. Schritt 3:Die Operanden a und b sowie das Ergebnis m werden in Registern abgelegt. Z.B. a in R6, b in R7 und m in R8. Es genügt dann der Befehl: R8 <- rsh(R6 + R7) Schritt 4:Entfällt, da Programm aus nur einem Befehl besteht. Schritt 5:.... Schritt 6:....

33 33 Beispiel 2: „Erzeugen“ einer Zahl a als Registerinhalt Aufgabe: Für eine Berechnung soll eine Zahl a in ein Register geladen werden. Schritt 1:Ausgangslage: Zur Konstruktion der Zahl a kann auf die bereits im Register abgelegte Zahl 1 zurückgegriffen werden. Schritt 2:Die Zahl a lässt sich durch Addition und Shift-Operationen (d.h. Verdoppeln) aus der Zahl 1 erzeugen. Beispiel: a = 8 = 2  2  (1+1) Schritt 3:Die Zahl 1 stehe im Register R1, die zu konstruierende Zahl a soll im Register R6 abgelegt werden. Schritt 4: Beispiel: a=8 kann mit folgender Befehlssequenz erzeugt werden: 1.R6 <- lsh(R1 + R1) ;; in R6 steht jetzt 2  (1+1) = 4 2.R6 <- lsh(R6) ;; in R6 steht jetzt 2  4 = 8

34 34 Beispiel 3: Programmierung einer Zählerschleife Aufgabe: Es soll eine Schleife mit n Durchgängen programmiert werden. Ansatz:Verwende eine Zählvariable, die bei jedem Schleifendurchgang um 1 dekrementiert wird, bis der Wert 0 erreicht ist. Die Schleife lässt mit zwei Sprungbefehlen realisieren. 1. Bedingter Sprung zum Abbruch der Schleife, falls Zählervariable den Wert 0 hat. 2.Unbedingter Sprung am Ende des Rumpfs zum Schleifenanfang. Beispiel:Zählvariable steht im Register R7 Struktur der Schleife: Befehlsadresse:Befehl nR7; if Z goto n+k n+1;;; Rumpfbefehle n+(k-2)R7 <- R7 –1 n+(k-1)goto n n+k;;; erster Befehl nach Schleife

35 35 Beispiel 4: Zugriff auf das RAM Aufgabe: Der Inhalt einer RAM-Speicherzelle z1 soll um den Wert 1 inkrementiert werden und das Resultat soll in die Zelle z2 abgelegt werden. MAR <- R1; rd R2 <- MDR R2 <- R2+1 R1 <- R1+1 MAR <- R1 MDR <- R2; wr Ansatz: Folgende Schritte sind durchzuführen: 1.Adresse der RAM-Speicherzelle z1 ins Memory- Adress-Register (MAR) laden 2.Inhalt der Speicherzelle aus dem MDR in eine CPU Register laden 3.Registerinhalt inkrementieren 4. Adresse der RAM-Speicherzelle z2 ins Memory- Adress-Register (MAR) laden, 5.Ergebnis aus Register in MDR schreiben

36 36 Beispiel 5: Abtesten eines bestimmten Bits Aufgabe: Gegeben ein Maschinewort w der Länge n. Stelle fest, ob das k-te Bit aus w gesetzt ist oder nicht. Ansatz: w sei im Register R abgelegt. 1.Wende auf R n-k Links-Shift-Operationen an, bis Bit k zum Vorzeichenbit wird. R <- lsh(R);...; R<- lsh(R); ;; insgesamt (n-k) mal 2.Das Vorzeichnbit kann über das Statusregister N (Negativ) der ALU abgefragt werden. R; if N goto x;

37 37 Beispiel 6: Multiplikation zweier Zahlen Aufgabe: Berechne das Produkt der beiden Zahlen a und b, die beide in Binärdarstellung im RAM abgelegt seien. Schritt 1:Eingabe: zwei Zahlen a und b im RAM. Ausgabe: Ergebnis erg = a  b Schritt 2: Lösungsansatz: Multiplikation durch wiederholte Addition, d.h., erg = b-malige Addition der Zahl a Beispiel: a = 10= (1010) 2, b = 11 = (1011) 2 Variante 1 (analog zur klassischen Schulmathematik): 1010  1011 (a 3 a 2 a 1 a 0 )  b =  a 3  b  a 2  b  a 1  b  a 0  b

38 38 Beispiel 6: Multiplikation zweier Zahlen Schritt 2: Variante 2: (a 3 a 2 a 1 a 0 )  b= 2 3  a 3  b  a 2  b  a 1  b  a 0  b = 2  (2  (2  a 3  b + a 2  b) + a 1  b) + a 0  b aus dieser Darstellung lässt sich folgendes Verfahren ableiten: 1. erg = a 3  b 2. erg = 2  erg Beispiel: a = 10 = (1010) 2, b = 11 = (1011) 2 3. erg = erg + a 2  b 4. erg = 2  erg 5. erg = erg + a 1  b 6. erg = 2  erg 7. erg = erg + a 0  b 1010  ;; 1. erg = a 3  b = 1  b = b ;; 2. erg = lsh(erg) ;; 3. erg = erg+a 2  b = erg ;; 4. erg = lsh(erg) ;; 5. erg + a 1  b = ;; 6. erg = lsh(erg) ;; 7. erg = erg+a 0  b = erg+0

39 39 Beispiel 6: Multiplikation zweier Zahlen Schritt 2: Formulierung des Verfahrens als Programm-Ablauf-Plan (PAP) (a 3 a 2 a 1 a 0 )  b= 2  (2  (2  a 3  b + a 2  b) + a 1  b) + a 0  b Start erg z:= 4; erg = 0; N = a 3 z = 0 erg = 2* erg; N = 0 erg = erg + b; N = a i-1 d.h. lsh( a) z = z – 1; ja nein

40 40 Zusammenfassung: Mikro-Programmierung CPU spezifischer Befehlssatz (Art, Anzahl und Format der Befehle). Darstellung der Befehle als Bitfolgen fester Länge. Mikro-Programme sind meist auf dem CPU Chip in einem ROM abgelegt. Mikro-Programme sind meist nicht änderbar (Firmware). Programmierung durch Anwender ist meist nicht vorgesehen. Mikro-Befehle korrespondieren zu den elementaren Schalt-Funktionen, die ein Rechenwerk ausführen kann. => Entwicklung von Mikro-Programmen wir schnell aufwändig und unübersichtlich. Als Leistungskenngröße von Prozessoren verwendet man häufig die Anzahl der Mikro-Befehle (  OPS), die er pro Sekunde ausführen kann. (MIPS = Million Instructions per Second)

41 41 Leistungsbewertung von Mikro-Prozessoren Zur Bewertung der Leistungsfähigkeit von Prozessoren verwendet man meisten die folgenden beide Maße: -Cycles per Instruction -Leistungszahl L in MIPS (Million Instructions per Second) Cycles per Instruction Dieses Maß hängt vom Befehlssatz des Prozessors ab. Man nimmt als Maß die durchschnittliche Anzahl der Zyklen, die die n Befehle des Prozessors brauchen. Da jedoch nicht alle Befehle gleich häufig vorkommen, berücksichtigt man die Auftrittswahrscheinlichkeit p i des i- ten Befehls. Somit definiert man als Maß: CPI = Σ i z i  p i n: Anzahl der Maschinenbefehle, z i : Anzahl Maschinenzyklen des i-ten Befehls p i : Wahrscheinlichkeit für das Auftreten des i-ten Befehls n

42 42 Leistungsbewertung von Mikro-Prozessoren Leistungszahl L in MIPS (Million Instructions per Second) Dieses Maß gibt an, wie viele Befehle der Prozessor pro Sekunde im Durchschnitt ausführt. Dazu muss neben der durchschnittlichen Zyklenzahl pro Befehl (CPI) auch noch die Dauer eines Zyklus berücksichtigt werden. Man definiert Das Leistungsmaß L: L = 1 / (CPI  T) T = Dauer eines Zyklus in Sekunden Beispiel: Ein Prozessor kennt 6 Befehle, die sich auf zwei Gruppen verteilen. Gruppe1 umfasst 4 Befehle wovon jeder jeweils 2 Zyklen benötigt, Gruppe2 umfasst 2 Befehle wovon jeder jeweils 10 Zyklen benötigt. Die Befehle aus Gruppe 1 kommen jeweils mit einer Auftrittswahrscheinlichkeit p = 0.2 vor. Einer der Befehle aus Gruppe 2 hat eine Auftritts- wahrscheinlichkeit von p = 0.15, für den anderen gilt p= 0.05 Die Zykluszeit des Prozessors beträgt 5 Nano Sekunden (= sec) => CPI = 4  2   10   10  0.05 = = 3.6 L = 1 / (3.6  ) = Instructions/sec ~ 55 MIPS

43 43 Sprachebenen der Programmierung Hochsprachen Mikro-Befehle Abbildung auf Maschinen-Befehle Assembler Befehle einer virtuellen Maschine Abbildung auf Abstraktionsgrad hoch niedrig Abbildung auf

44 44 Während der Mikrocode für den Anwendungsprogrammierer nur schwer oder überhaupt nicht zugänglich und änderbar ist (z.B. wegen Speicherung in ROM auf Prozessorchip, „Firmware“), stellt Maschinen- Sprache eine Schnittstelle zwischen Prozessor und System- und Anwendungssoftware dar. Man spricht hier auch von der Befehlssatzarchitektur eines Prozessors. engl.: Instruction Set Architecture (ISA) Maschinenbefehle werden entweder direkt auf entsprechende Mikrobefehle abgebildet oder auf eine Sequenz von Mikro-Befehlen. In diesem Fall hat der Maschinen-Befehl die Funktion eines Makros (= Zusammenfassung von mehreren Befehlen). Beim ISA-Entwurf werden die Befehlsformate und Maschinen- Befehlstypen des Prozessors sowie die von außen her zugreifbaren Prozessor-Register definiert. Die Unterscheidung zwischen RISC und CISC auf Mikrocode-Ebne spiegelt sich auch auf der ISA-Ebne wider. Es ist jedoch möglich, dass CISC auf ISA-Ebene auf eine RISC-Prozessorarchitektur abgebildet wird (Beispiel: P6-Mikroarchitektur des Pentium Pro Prozessors). Maschinen-Sprache und Maschinen-Programme

45 45 Der Befehlssatz eines Prozessors umfasst im Allgemeinen mindestens folgende Befehlstypen: Verarbeitungsbefehle -arithmetische Verknüpfung -logische Verknüpfung -Schiebe- und Rotations-Operatoren Transportbefehle -Daten und Adressen laden -Daten im Register / Speicher ablegen Steuerbefehle -Vergleiche, Abfrage von Statusregistern -Sprungbefehle -Unterbrechungsbefehle (Interrupts) -Befehle zur Beeinflussung des Systemzustands (Clear-Flag, Set,...) Typen von Maschinen-Befehlen

46 46 Der Aufbau eines Maschinen-Befehls umfasst folgende Komponenten: -Operationscode, kurz Opcode (welche Funktion hat der Befehl?) z.B. Laden von Daten in Register, Operanden Verknüpfen, Shift,... -Adressen der Operanden (wo stehen die zu verarbeitenden Daten?) -Ergebnisadresse (wo soll das Ergebnis abgelegt werden?) -Adressierungsart (wie findet man zu einer Adressangabe die effektiven Adressen der Speicherzellen / Register) Genaue Struktur der Befehle, d.h. Anzahl und Reihenfolge der Bits pro Komponente, hängt vom jeweiligen Prozessor ab. => Maschinen-Befehle gleicher Länge (z.B. 16 oder 32 Bit) unterschiedlicher Prozessoren sind nicht austauschbar! Format von Maschinen-Befehlen

47 47 1-Adress-Befehl: Bedeutung: op -> Acc Der spezifizierte Operand wird mit dem Inhalt eines ausgezeichneten Registers ("Akkumulator", kurz: Acc) gemäß dem OpCode verknüpft, das Ergebnis wird im Akkumulator gespeichert. 2-Adress-Befehl: Bedeutung: OpAdr1> op OpAdr2 Ergebnis wird im 2. Operanden abgelegt 3-Adress-Befehl: Bedeutung: op ResAdr Man gibt zusätzlich an, wo Ergebnis abgelegt wird. Anmerkung: Je nach Befehlsformat redet man von: 1-, 2- oder 3-Adress-Maschinen. Geläufige Formate für Maschinen-Befehle OPCodeOPAdr OPCodeOPAdr1 OPAdr2 OPCodeOPAdr1 OPAdr2 ErgAdr

48 48 Akkumulatorarchitektur: ein Akkumulatorregister, das bei arithmetisch-logischen Befehlen immer implizit eine Quelle und das Ziel darstellt, so dass 1-Adress-Befehle genügen. Register-Speicher-Architektur: in arithmetisch-logischen Befehlen adressiert mindestens einer der Operanden ein Register bzw. einen Speicherplatz im Hauptspeicher. Lade-/Speicher­ oder Register-Register-Architektur: nur die Lade- und Speicherbefehle transportieren Daten zwischen dem Hauptspeicher (bzw. Cache-Speicher) und den Registern Kellerarchitekturen: nur Nulladressbefehle, Operandenregister werden als Keller (Stack) verwaltet. Arten von Befehlssatz-Architekturen

49 49 Assembler Beispiele: Mikroprozessor 68HC11 Der 68HC11Micro-Controller von Motorola (1984) besitzt vier 8-Bit- Register und fünf 16-Bit-Register:

50 50 Assembler Beispiele: Mikroprozessor 68HC11 Schiebe- und Rotationsbefehle Logische Shifts LSRA (Akku nach rechts) LSLA (Akku nach links) Arithmetische Shifts (erhält Vorzeichen) ASRA (Akku nach rechts) ASLA (Akku nach links) Rotationen ROLA (Akku links rotieren) RORA (Akku rechts rotieren)


Herunterladen ppt "1 Vertiefungsstoff zum Thema: Mikrocomputer Anbindung von Ein- und Ausgabegeräten Plattenspeicher -Aufbau - RAID Technik Überblick zu gängigen Bus-Systemen."

Ähnliche Präsentationen


Google-Anzeigen