114
Studienmaterial Mikrocomputer-Systeme Grundlagen der Mikrocomputer-Systeme Prof. Jürgen Plate MCS101

Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

  • Upload
    lamdan

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

Studienmaterial

Mikrocomputer-Systeme

Grundlagen der Mikrocomputer-SystemeProf. Jürgen Plate

MCS101

Page 2: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

1

Mikrocomputer-Systeme

Grundlagen der Mikrocomputer-SystemeGrundlagen der Mikrocomputer-SystemeGrundlagen der Mikrocomputer-SystemeGrundlagen der Mikrocomputer-Systeme

Einleitung und Lernziele 3

1 Grundbegriffe 5

1.1 Computersysteme 5

1.2 Was ist ein Mikrocomputer, was ein Mikrocontroller? 6

1.3 Embedded Systems 8

1.4 Historische Entwicklung 10

1.5 Sichtweisen eines Benutzers 12

2 Rechnerarchitekturen 14

2.1 Von-Neumann-Architektur (Princeton-Architektur) 14

2.2 CISC und RISC 20

2.3 Harvard-Architektur 21

2.4 Klassifikation von Rechnern 22

2.5 Digitale Signalprozessoren 23

2.5.1 Digitale Signalverarbeitung 24

2.5.2 DSP-Eigenschaften 27

2.6 Welchen Mikrocontroller soll ich verwenden? 29

3 Darstellung von Zahlen und Zeichen im Mikrocomputer 34

3.1 Zahlendarstellung 34

3.1.1 Ganze Zahlen 36

3.1.2 Negative Zahlen, Komplement 36

3.1.3 Festkommazahlen 40

3.1.4 Gleitkommazahlen 41

3.1.5 Gleitkomma-Arithmetik 43

3.1.6 BCD-Zahlen 44

3.2 Codes 46

3.2.1 Numerische Codes 46

3.2.2 Alphanumerische Codes 48

4 Innerer Aufbau eines Mikrocomputers 50

4.1 Rechenwerk 50

4.2 Leitwerk (Steuerwerk) 51

4.2.1 Befehlszyklus 51

4.2.2 Prinzipielle Arbeitsweise des Leitwerks 53

4.2.3 Unterbrechungs-Behandlung 56

4.3 Bus-Struktur und weitere Anschlüsse eines Mikroprozessors 61

4.4 Programmiermodell 67

4.5 Adressierungsarten 68

4.5.1 Direkte und unmittelbare Adressierung 70

4.5.2 Einstufige Adressierung 70

InhaltsverzeichnisåMCS101

Page 3: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

2

InhaltsverzeichnisåMCS101

Copyright

AKAD. Die Privat-

Hochschulen GmbH

Ein Unternehmen der

Cornelsen-Gruppe.

Telefon:

(07 11) 8 14 95 - 0

Internet:

http://www.akad.de

Alle Rechte vorbehalten.

Jede Verwertung

außerhalb der Grenzen

des Urheberrechtsgesetzes

ist ohne Zustimmung

der AKAD unzulässig

und strafbar. Das gilt

insbesondere für

Vervielfältigungen,

Übersetzungen,

Mikroverfilmungen und

die Einspeicherung und

Bearbeitung in

elektronischen Systemen.

CopyrightAKAD Bildungs-gesellschaft mbH

Telefon:(07 11) 8 14 95 - 0

Internet:http://www.akad.de

Alle Rechte vorbehalten.Jede Verwertung

außerhalb der Grenzendes Urheberrechtsgesetzes

ist ohne Zustimmungder AKAD unzulässigund strafbar. Das gilt

insbesondere fürVervielfältigungen,

Übersetzungen,Mikroverfilmungen unddie Einspeicherung und

Bearbeitung inelektronischen Systemen.

4.5.3 Zweistufige Adressierung 72

4.5.4 Adress-Systeme 73

4.6 Byte-Reihenfolge 74

5 Speicher und Ein-/Ausgabe 77

5.1 Speicher 77

5.2 Arbeitsspeicher 79

5.3 Festwertspeicher 83

5.4 Zusammenschalten von Speicherbausteinen 85

5.5 Ein-/Ausgabe 87

5.5.1 Anschluss von E/A-Bausteinen 88

5.5.2 Programmierter E/A-Transfer 91

5.5.3 E/A-Transfer per Direktspeicherzugriff (DMA) 92

Zusammenfassung 95

Antworten zu den Kontrollfragen 100

Literaturverzeichnis 107

Stichwortverzeichnis 109

Page 4: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

3

Einleitung und LernzieleEinleitung und LernzieleEinleitung und LernzieleEinleitung und Lernziele

Liebe Studierende,

es gibt wohl keine andere technische Entwicklung, die unser modernes Leben stärker

beeinflusst als der Mikrocomputer. So gut wie jeder kennt den Personal Computer

(PC), der für fast alles zu gebrauchen ist: Die Büroarbeit wird leichter, der Feierabend

bunter. Der PC gehört zu den Universalrechnern, die – mit der passenden Software aus-

gestattet – eine Vielzahl von Aufgaben übernehmen können.

Darüber hinaus gibt es die Embedded Systems, die eingebetteten Computersysteme,

welche uns ständig mit Ihren Diensten zur Verfügung stehen, ohne dass wir die dahinter

stehenden Computer wahrnehmen. Wer in einem Auto sitzt, der ist umgeben von einer

Vielzahl von Mikrocontrollern, die zum Beispiel die Steuerung des Motors, des Airbags

oder der Bremsanlage unsichtbar übernehmen. In vielen technischen Geräten und

Maschinen sind Mikrocontroller verborgen und statten diese mit Intelligenz für das

Messen, Steuern und Regeln technischer Vorgänge aus.

Leistungsfähige Mikrocomputer sind der Schlüssel zum Informationszeitalter – ohne sie

wären Internet, E-Mail, Mobilfunk und Multimedia nicht möglich.

Alles, was zähl- und messbar ist – Zahlen, Texte, Sprache, Musik, Bilder und physikali-

sche Größen mit ihren zeitlichen Verläufen –, wird in Mikrocomputern verarbeitet. Die

freie Programmierbarkeit macht den Mikrocomputer zu einem universalen Instrument.

Doch wie funktioniert ein Mikrocomputersystem? In diesem Studienbrief werden Sie

einen ersten Einblick bekommen: Vom Aufbau eines Mikrocomputersystems bis hin

zur Einbindung von Controllersystemen für Steuerungen und Regelungen werden Ihnen

alle wichtigen Grundlagen vermittelt. Sie werden Grundbegriffe und Einsatzgebiete von

Mikrocomputern, die Computerarithmetik, Codes, den Aufbau eines Prozessors sowie

Speicher- und Peripheriebausteine kennenlernen. Dabei bauen Sie auf Ihren Kenntnis-

sen zu den Grundlagen der Informatik und Digitaltechnik auf.

Lernziele

Nachdem Sie den Studienbrief durchgearbeitet haben, können Sie

– den Aufbau und die Komponenten eines Mikrocomputersystems beschreiben,

– die verschiedenen Konzepte im Aufbau eines Mikrocomputers einordnen,

– die Besonderheiten von Mikrocontrollern und digitalen Signalprozessoren verstehen,

– alle grundlegenden Fachbegriffe verstehen und verwenden,

– die Verarbeitung von Daten im Mikrocomputer grundsätzlich nachvollziehen und

– für ein gegebenes Projekt einen passenden Controller auswählen.

Und nun: Viel Spaß mit den allgegenwärtigen Mikrocomputern!

Einleitung/LernzieleåMCS101

Page 5: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

4

Ein

Über den Autor dieses Studienbriefs

Prof. JÜRGEN PLATE, Diplom-Informatiker, ist seit 1989 Professor an der Hochschule

München in der Fakultät für Elektrotechnik und Informationstechnik mit den Schwer-

punkten

– Programmierung,

– Betriebssysteme,

– Digital- und Mikrocomputertechnik,

– Datenfernübertragung und Rechnernetze,

– Internet-Technik.

Er ist dort Leiter des Labors „Betriebssysteme und Programmieren“ sowie Koordinator

für die Vernetzung der Fakultät und Internet-Dienste.

Prof. PLATE ist Autor von mehr als 80 Fachartikeln und mehr als einem Dutzend Bücher

über Computer- und Telekommunikationstechnik, Internet sowie Programmierung und

Betriebssysteme. Von 1985 bis 2004 war er darüber hinaus Co-Autor und Co-Moderator

der Fernsehreihe „Computertreff“ im Bayerischen Fernsehen.

leitung/LernzieleåMCS101

Page 6: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

5

1111GrundbegriffeGrundbegriffeGrundbegriffeGrundbegriffe

Daten enthalten Informationen und Nachrichten übermitteln sie uns. Die Informationen

können wir aufnehmen oder auch (als unwichtig) ignorieren. Oft sind die Datenmengen

so immens, dass wir sie nur aufnehmen können, wenn sie entsprechend aufgearbeitet –

beispielsweise auf das Wesentliche reduziert – sind. Daten sollen gespeichert sein und

bei Bedarf abgerufen und an beliebige Stellen transportiert werden können. Wir bedie-

nen uns für diese Aufgaben oft der Hilfe von Maschinen: den Rechnern oder – auf eng-

lisch – Computern.

Diese müssen in der Lage sein, unsere Wünsche der Datenaufbereitung zu erfüllen. Das

bedeutet aber, dass wir die Fähigkeit haben müssen, ihnen unsere Wünsche (in der Form

von Anweisungen) auch mitzuteilen. Es muss eine Art Sprache zwischen Mensch und

Maschine bestehen, die beide verstehen. Solche Anweisungen können nicht nur zur

Verarbeitung von Daten dienen, sondern auch Maschinen steuern, wie z. B. Automaten

und Roboter. Anweisungsfolgen, die den Rechner veranlassen, ein bestimmtes Ergebnis

zu erzielen, nennt man Programme.

Für diejenigen unter Ihnen, die den Computer bisher nur als Arbeitsmittel verwendet

haben, ohne sich dabei Gedanken über seine Funktionsweise zu machen, möchte ich in

diesem Kapitel einen kleinen Ausflug in die Hardware-Grundlagen unternehmen. Wenn

Sie nämlich wissen, wie die Hardware so einer Maschine funktioniert, wird Ihnen auch

verständlich, warum Programme und Programmiersprachen so sind, wie sie sind.

In der Regel braucht ein Programmierer heute kaum noch zu wissen, was im Detail im

Computer vor sich geht. Eine modellhafte Vorstellung genügt in den meisten Fällen.

Auch der normale Autofahrer braucht keine technischen Einzelheiten des Motors zu

kennen. Doch sollte man einige grundlegende Dinge verstanden haben, damit man sein

neues Auto nicht in der ersten Kurve zu Schrott fährt. Ähnlich ist es, wenn man mit dem

Computer sicher umgehen will. Insbesondere bei Mikrocomputersystemen, die in andere

technische Systeme eingebettet sind (engl. Embedded Systems) sind grundlegende

Kenntnisse der Hardware unumgänglich.

In diesem ersten Kapitel erhalten Sie einen Überblick zu informationsverarbeitenden

Systemen. Ich erkläre Ihnen die Grundlagen des klassischen Aufbaus eines Rechners

und Begriffe wie „Mikrocomputer“, „Mikrocontroller“, „Embedded Systems“ oder

„CPU“. Die technischen Einzelheiten werden wir dann in den folgenden Kapiteln ver-

tiefen.

1.11.11.11.1ComputersystemeComputersystemeComputersystemeComputersysteme

Ein Computersystem besteht aus Hardware und Software. Jede der beiden Komponen-

ten ist ohne die andere nichts wert. Die Hardware (oft mit HW abgekürzt) umfasst –

bildlich gesprochen – alle Komponenten, die angefasst werden können. Sie ist materiell.

Dazu zählt der Computer selbst und alle Geräte, die daran angeschlossen sind: Bild-

schirm, Drucker, Barcodescanner, DVD-Laufwerk, Schalttransistoren, Relais, Sensoren

usw. Die Software kann nicht angefasst werden, sie ist ideell, also geistiger Natur. Sie

umfasst in erster Linie die Programme, die im Computer ablaufen, und je nach Sicht-

Kapitel 1åMCS101

Page 7: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

6

weise auch die zugehörigen Daten. Damit Software transportiert und gespeichert wer-

den kann, damit sie funktioniert, benötigt sie immer irgendwelche Hardware. Software

lässt sich hinsichtlich der Nähe zur Hardware grob in das sogenannte Betriebssystem

und die Anwendersoftware unterteilen, wobei kleine Mikrocomputersysteme normaler-

weise ohne Betriebssystem arbeiten. Hier wird nur ein einziges Programm ausgeführt.

In der zuerst von John von Neumann 1945 angegebenen Modellvorstellung eines Rech-

ners besteht dieser aus vier Funktionseinheiten (Abbildung 1):

– Recheneinheit (auch Rechenwerk genannt),

– Steuereinheit (auch Steuerwerk oder Leitwerk genannt),

– Speicher (engl. Memory) und

– Ein- und Ausgabeeinheiten (E/A-Geräte, engl. Input/Output Units oder I/O).

Abbildung 1:Aufbau eines klassischen

Rechners nachJohn von Neumann

Recheneinheit und Steuereinheit sind oft auf einem einzigen Chip zusammengefasst und

bilden die Zentraleinheit beziehungsweise den Prozessor (engl. Central Processing

Unit, CPU). Die CPU ist das Herz eines Computers. Sie arbeitet Programme Schritt für

Schritt ab, führt Berechnungen aus und steuert alle Vorgänge im Computer. Der Spei-

cher nimmt alle Daten auf, die der Computer braucht. Das reicht von Daten, die der

nächste Programmschritt unmittelbar benötigt, bis zu ganz selten benötigten Daten.

Schließlich stellen E/A-Geräte die Verbindung zwischen dem Computer und seiner Um-

welt her. Bei Mikrocontrollern sind das nicht unbedingt Bildschirm und Tastatur, son-

dern oft Sensoren und Aktoren.

1.21.21.21.2Was ist ein Mikrocomputer, was ein Mikrocontroller?Was ist ein Mikrocomputer, was ein Mikrocontroller?Was ist ein Mikrocomputer, was ein Mikrocontroller?Was ist ein Mikrocomputer, was ein Mikrocontroller?

Mikrocomputer sind sehr kompakte Computersysteme auf der Basis hochintegrierter

Steuer- und Verarbeitungsbausteine (Mikroprozessoren oder Mikrocontroller) und

Speicher für allgemeine oder spezielle Anwendungen der Datenverarbeitung. Es gibt sie

in unterschiedlichen Erscheinungsformen:

– Personal-Computer (PC) als Tischcomputer oder als Laptop,

– Ein-Platinen-Computer (Embedded Systems),

– Ein-Chip-Computer.

Ein Mikrocontroller (Abbildung 2) ist ein kompletter Computer auf einem einzigen

Chip. Der Unterschied zum Mikroprozessor besteht darin, dass er zusätzlich Speicher,

digitale und analoge Ein- und Ausgänge, Timer, Schnittstellen, etc. meist auf demselben

Recheneinheit

Speicher

Steuereinheit

AusgabeEingabe

Daten

Befehle

Steuersignale Steuersignale

Kapitel 1åMCS101

Page 8: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

7

Chip vereint, sodass eine Mikrocontroller-Anwendung oft mit nur wenigen weiteren

Bauteilen auskommt.

Abbildung 2:Typischer Aufbau eines Mikrocontrollers

Mikrocomputer und -controller werden häufig zuerst an der Breite des internen Daten-

busses unterschieden: 4, 8, 16 oder 32 Bit, wobei in vielen Anwendungen die Anzahl

der parallel in der Recheneinheit verarbeiteten Bits nur eine untergeordnete Rolle spielt.

Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro-

controller um einen Baustein, der mehrere synchrone Schaltwerke enthält, weshalb ein

zentraler Takt benötigt wird. Dieser kann über einen externen Taktgenerator zugeführt,

mittels Quarzoszillator erzeugt oder von einem internen Taktgeber (RC-Oszillator)

abgeleitet werden. In der Praxis werden die Begriffe „Mikrocomputer“ und „Mikro-

controller“ ziemlich synonym verwendet, deshalb wollen wir an dieser Stelle noch mal

in Stichpunkten festhalten:

P Mikrocomputer:

– Datenverarbeitungssystem mit einem Mikroprozessor als CPU

– Räumlich extrem verkleinertes Datenverarbeitungssystem (PC, Laptop, etc.)

– Gegenüber Groß-EDV eingeschränkte Leistungsfähigkeit

– Mikrocomputer = Mikroprozessor + Speicher + E/A-Bausteine (+ Peripherie)

P Mikroprozessor:

– Auf einem Chip integrierte Steuer- und Recheneinheit, die als CPU im Mikrocom-

puter verwendet wird

– Alleine nicht einsatzfähig – erst im Zusammenspiel mit weiteren Bausteinen im

Mikrocomputer oder Mikrocontroller

P Mikrocontroller:

– Mikrocomputer, der auf einem Chip integriert ist → Single-Chip-Mikrocomputer

– Begrenzter Arbeitsspeicher (meist weniger als 1 MByte)

– Kein Massenspeicher (Festplatte, …)

– Geringere Taktrate (PC bis einige GHz, Mikrocontroller einige 100 MHz)

– Enthält weitere signal- und datenverarbeitende Elemente (z. B.: integrierte serielle

Schnittstelle, Analog-/Digital-Wandler, Zeitgeber, Impulszähler)

Systembus-Schnittstelle

Interrupt-steuerung

serielleSchnittstelle

A/D D/Aparallele

Schnittstelle

RAM

CPU

ROM Timer

Kapitel 1åMCS101

Page 9: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

8

B Hier einige Beispiele für Bereiche, in denen Mikrocontroller eingesetzt werden:

P Messtechnik:

komfortable und leistungsfähige Messgeräte (Bereichswahl, Berechnungen, Eich-

kurven, grafische Darstellung, …)

P Steuerung:

NC-Maschinen, Prozesssteuerung, Roboter, SPS, automatische Testsysteme

P Nachrichtentechnik:

Fernsprechtechnik und Vermittlungstechnik (Nebenstellenanlagen, Mobiltelefon,

DSL-Router, …), Radar, Spracherkennung

P Bürotechnik:

Kopierer, Registrierkassen, Schreibautomaten, Anrufbeantworter

P Kfz-Elektronik:

Motorsteuerung, ABS, Bord-Computer, Verkehrsleitsysteme, Diagnose-Computer,

(teil-)autonomes Fahrzeug

P Haushaltselektronik:

Waschmaschinen, Nähmaschinen, Heizungssteuerung, Alarmanlagen, Ladegeräte,

das „Smart House“

P Unterhaltungselektronik:

Radio- und Fernsehgeräte, HIFI-Geräte, DVD-Player, Videoaufzeichnung, Satelli-

ten-Empfänger, MP3-Player

P Datenverarbeitung:

Terminals, Drucker, Scanner, Netzwerkkomponenten

Die technische Entwicklung ist in den letzten Jahren rasant fortgeschritten, wobei die

Zielrichtungen bei Mikroprozessoren für Universalanwendungen (PC) und Mikrocont-

rollern bei bestimmten Eigenschaften stark auseinanderdriften. Während bei den Uni-

versalprozessoren immer höhere Geschwindigkeit und Rechenleistung gefordert sind,

sollen sich die Controller durch weniger Leistung und energieeffizientes Verhalten aus-

zeichnen – bis hin in den Mikrowattbereich.

1.31.31.31.3Embedded SystemsEmbedded SystemsEmbedded SystemsEmbedded Systems

Embedded Systems ist der englische Fachbegriff für eingebettete (Computer-) Systeme,

die in der Regel unsichtbar ihren Dienst in einer technischen Anlage oder einem techni-

schen Gerät versehen. In der Computerbranche werden solche Systeme auch gerne

Appliances1 genannt.

Wenn man den Begriff Embedded Systems aufschlüsselt, zeigt sich:

P Ein System ist in diesem Kontext immer eine informationsverarbeitende Maschine.

P Eingebettet bedeutet: für einen spezifischen Zweck in einer technischen Umgebung

entworfen, eingebaut und betrieben.

1 Appliance: A device or instrument designed to perform a specific function, especially an electrical device, such as a toaster.

Kapitel 1åMCS101

Page 10: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

9

Ein eingebettetes System interagiert mit seiner meist elektromechanischen Umwelt. Da-

bei braucht ein menschlicher Benutzer keinerlei Kenntnisse über die technische Innen-

welt des eingebetteten Systems haben, um das Gerät als solches bedienen zu können.

Meistens ist sogar ein Benutzer gar nicht erforderlich und es gibt auch keine klassische

Peripherie, wie Bildschirm und Tastatur, für die Kommunikation zwischen Mensch und

Maschine.

Embedded Systems vereinigen durch ihre hardwarenahe Konstruktion die große Flexi-

bilität von Software mit der Leistungsfähigkeit der Hardware. Die Softwareentwicklung

für diese Systeme unterscheidet sich oft grundsätzlich von jener für Desktop- oder PC-

Systeme. Bevorzugte Programmiersprachen sind daher Assemblersprachen oder C.

Häufig werden Betriebssysteme eingesetzt, die nicht über eine grafische Benutzerober-

fläche verfügen, dafür jedoch Echtzeitanforderungen genügen. Bekannte Embedded-

Betriebssysteme sind z. B. QNX, VxWorks, Windows CE, DOS, LynxOS, Nucleus und

zunehmend auch spezielle Linux-Derivate, wenn die Echtzeitbedingungen keine domi-

nante Rolle spielen.

Embedded Systems arbeiten in der Regel mit Mikrocontrollern. Daher gelten alle Ein-

satzbereiche, die im vorigen Kapitel für Mikrocontroller genannt wurden, genauso für

Embedded Systems.

Wenn man ein Gerät entwickelt und sich dafür entscheidet ein eingebettetes System ein-

zubauen, so setzt man voraus, dass

– die genaue Aufgabe des Systems vor der Entwicklung feststeht,

– immer nur ein einziges Programm abläuft und

– Hardware und Software eine funktionale Einheit bilden.

Kennzeichnende Merkmale eines eingebetteten Systems sind:

– Es ist fester Bestandteil eines technischen Systems.

– Es ist zweckbestimmt (im Gegensatz zum Universalrechner).

– Es interagiert mit der Umgebung durch Sensoren und Aktoren.

– Es reagiert meist in Echtzeit.

Sekundäre Merkmale eines eingebetteten Systems sind:

– Es wird oft für Regelungs- und Steuerungsaufgaben vorgesehen.

– Es ist häufig Massenware, Konsumgut, billig.

– Es kann oft schlecht oder gar nicht gewartet und erweitert werden.

– Es ist manchmal auch sicherheitsrelevant und muss deshalb sehr zuverlässig sein.

Eingebettete Systeme haben bei der Prozessorproduktion einen Marktanteil von ca. 98 %.

Die restlichen 2 % dienen dem Aufbau von interaktiven Systemen wie z. B. Laptops,

Desktop-Computern und Servern. Nahezu die Hälfte der gesamten Mikrocontroller-

Jahresproduktion sind immer noch 8-Bit-Prozessoren. Bereits heute gibt es mehr einge-

bettete Systeme als Menschen auf der Welt. Ihre Elektronik dient oft nur als Wegwerf-

artikel, wie etwa in RFID-Tags oder Grußpostkarten.

In mobilen Anwendungen erfüllen eingebettete Systeme besondere Anforderungen hin-

sichtlich Robustheit, Energieverbrauch und Speicherbedarf. Im Gegensatz zu einem

Arbeitsplatzrechner wird ein eingebettetes System im Allgemeinen nicht „herunterge-

fahren“, bevor man es ausschaltet. Es muss damit zurechtkommen, dass ihm der Strom

jederzeit und ohne Vorwarnung abgestellt werden kann. Auch sind bewegliche Teile

wie Lüfter oder Festplatte meist nicht erwünscht.

Kapitel 1åMCS101

Page 11: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

10

1.41.41.41.4Historische EntwicklungHistorische EntwicklungHistorische EntwicklungHistorische Entwicklung

Der erste Mikroprozessor wurde 1970/71 von der Firma Intel als Steuerbaustein für ein

Bildschirmterminal entwickelt. Da er für den vorgesehenen Zweck zu langsam war,

wurde er als universeller Steuerbaustein vermarktet. Durch Zufall kam dieses Produkt

zur richtigen Zeit als Alternative zu kundenspezifischen Bausteinen auf den Markt. Ab-

bildung 3 zeigt die beiden Typen 4004 und 8008. In der Folge setzte eine sensationell

zunehmende Entwicklung des Mikrocomputer-Einsatzes ein. Sie erfolgte in zwei Rich-

tungen. Zum einen wurden Mikrocomputer als spezielle Steuerungsrechner verwendet,

um festverdrahtete Logikschaltungen zu ersetzen, und zum anderen wurden kleine und

billige Universalrechner entwickelt, aus denen unser heutiger Personal Computer ent-

stand.

Abbildung 3:Die ersten Mikroprozes-

soren von Intel: die Typen4004 und 8008

Der folgende Überblick zeigt die Entwicklung des Computers seit Mitte des 20. Jahr-

hunderts. Mit Fortschreiten der Integration wurden die Rechner auch immer billiger und

kleiner.

Tabelle 1:Entwicklung der

Computertechnik

Handelte es sich bei den ersten Systemen noch um Geräte mit hohen Anschaffungs- und

Betriebskosten, deren Platzbedarf riesig und deren Zuverlässigkeit gering war, so bean-

spruchen die ab 1955 entwickelten Maschinen ihre Rolle als erste kommerziell erfolg-

reiche Systeme.

Zeit-Zeit-Zeit-Zeit-raumraumraumraum

SchaltungstechnikSchaltungstechnikSchaltungstechnikSchaltungstechnik VerbreitungVerbreitungVerbreitungVerbreitung ProgrammierungProgrammierungProgrammierungProgrammierung Geschwindig-Geschwindig-Geschwindig-Geschwindig-keit (Operatio-keit (Operatio-keit (Operatio-keit (Operatio-nen pro nen pro nen pro nen pro Sekunde)Sekunde)Sekunde)Sekunde)

1945–1955

Relais, Röhren wenige Exemplare

Steckbrett, Maschinencode

103 Op./s

1955–1965

Transistoren, Dioden Hunderte Assemblersprache, FORTRAN

104 Op./s

1965–1980

Integrierte Schal-tungen

Tausende höhere Programmier-sprachen

106 Op./s

ab 1980 Hoch integrierte Schaltungen (VLSI)

Millionen höhere Programmier-sprachen

> 107 Op./s

Kapitel 1åMCS101

Page 12: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

11

Die Fortschritte der Fertigungstechnik erlaubten eine immer weiter voranschreitende

Packungsdichte der integrierten Schaltungen und verbilligten gleichzeitig deren Her-

stellung. Mit den Heimcomputern (denen nur eine kurze Lebensdauer beschieden war)

und dem PC begann der Einzug der Mikrocomputer und Mikrocontroller in alle Lebens-

bereiche. Heute enthält beispielsweise ein Mittelklasse-Pkw eine zweistellige Anzahl

von Mikrocontrollern.

Der stetige Leistungszuwachs der CPU richtete sich in der Vergangenheit nach dem

Moore’schen Gesetz, das auf Basis empirischer Daten eine Verdopplung der Transisto-

renanzahl pro Chip (und damit der Leistungsfähigkeit) alle anderthalb Jahre voraussagt.

Die folgende Tabelle zeigt die technische Entwicklung der Prozessoren am Beispiel der

beiden großen Hersteller Intel und AMD:

Tabelle 2:Beispiele für die rasante Entwicklung der Prozessoren

Parallel zur Entwicklung der CPU wuchs die Vielfalt der zugehörigen Peripherie. Die

erste Rechnergeneration verfügte noch über keine dafür vorgesehenen Peripheriegeräte.

Eingaben wurden direkt an der Maschine vorgenommen, durch Schalttafeln und Erstel-

lung von Hardwareverbindungen. Ausgaben erfolgten über Lampen oder andere Signal-

geber. Ab den 1955er-Jahren finden sich zunehmend externe Geräte zur Verarbeitung

und dauerhaften Speicherung der Daten und Programme. Es begann mit Lochstreifen,

die später durch Lochkarten abgelöst wurden. Als Ein- und Ausgabegerät kamen modi-

fizierte Fernschreiber oder entsprechend angepasste elektrische Schreibmaschinen

hinzu. Später wurden sie von Textbildschirmen abgelöst

Die ersten Software-Entwicklungssysteme für Mikrocomputer benötigten noch relativ

viel Platz. Die Bedienung war äußerst spartanisch und erfolgte mittels Hexadezimal-

Tastatur und Siebensegmentanzeige, wie die unten abgebildete Platine des „KIM1“

zeigt (Abbildung 4).

Typ des MikroprozessorsTyp des MikroprozessorsTyp des MikroprozessorsTyp des Mikroprozessors Anzahl TransistorenAnzahl TransistorenAnzahl TransistorenAnzahl Transistoren JahrJahrJahrJahr

Intel 8080Intel 80286Intel 80386Intel PentiumIntel Pentium 4AMD K8 (Athlon 64)Intel Core i7Eight Core Xeon Nehalem-EXRV820 ATI/AMD (Grafikprozessor)GF100 NVIDIA (Grafikprozessor)

4500134000275000310000042000000105900000731000000230000000021540000003000000000

1974198219851993200020032008200820082010

Kapitel 1åMCS101

Page 13: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

12

Abbildung 4:KIM1 mit Prozessor 6502,

1 kByte Speicher,Hex-Tastatur und Sieben-

segmentanzeige

Moderne Systeme sind nicht nur viel kleiner – sie passen beispielsweise in einen USB-

Stick –, sondern lassen sich auch über eine komfortable Bedienoberfläche programmie-

ren. Erst der fertige Code wird dann in den Flash-Speicher des Controllers geladen.

Dank der In-System-Programmierbarkeit (ISP) wird auch kein spezielles Programmier-

gerät mehr benötigt, der Controller kann in der Schaltung programmiert werden, für die

er letztlich bestimmt ist. Meist ist die Entwicklungsumgebung als kostenlose Software

verfügbar.

1.51.51.51.5Sichtweisen eines BenutzersSichtweisen eines BenutzersSichtweisen eines BenutzersSichtweisen eines Benutzers

Der Benutzer eines Rechners sieht von der Maschine je nach seinem Standpunkt einen

mehr oder weniger eingeschränkten Teil:

P Der Anwender sieht den Rechner als das ihm zugängliche Anwendersystem, das

genau auf seine Bedürfnisse zugeschnitten ist und mit dem er in einer für ihn beque-

men Sprache Daten verarbeiten kann.

P Der Anwendungsprogrammierer sieht den Rechner als das Betriebssystem, das ihm

Compiler für verschiedene höhere Programmiersprachen (z. B. C++) zur Verfügung

stellt und für ihn Dienstleistungen wie Editor und Dateiverwaltung bereithält. Wie

das Betriebssystem realisiert ist, braucht auf dieser Stufe den Anwendungsprogram-

mierer nicht zu interessieren. Für ihn ist „der Rechner“ das Betriebssystem mit den

Compilern.

P Der Systemprogrammierer sieht vom Rechner schon sehr viel mehr. Er kann alle

Möglichkeiten der Hardware ausnützen und Programme als Befehlsfolgen für das

Leitwerk schreiben. Er schreibt diese Befehle in einer für ihn lesbaren Form (Assem-

blersprache oder C), die noch durch ein spezielles Programm, den Assembler1, in

1 Der Begriff „Assembler“ wird häufig nicht nur für das Übersetzungsprogramm verwendet, sondern abkürzend auch für die Assemblersprache.

ROM-Speicher

RAM-Speicher

E/A-Baustein

Prozessor

Siebensegment-

anzeige

Tastatur

Erw

eit

eru

ng

spo

rtE

/A-P

ort

Kapitel 1åMCS101

Page 14: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

13

eine Folge von Nullen und Einsen gewandelt werden muss, die allein das Leitwerk

des Rechners interpretieren kann. Für ihn sind Rechner und Assembler fast synonym.

P Der Hardwareingenieur beim Rechnerhersteller sieht die Hardware des Rechners in

allen Einzelheiten und kennt den genauen Aufbau der Befehle, die sich zum Teil aus

Folgen einfachster Steuerkommandos (Mikroprogramm) zusammensetzen. Für ihn

ist der interne Aufbau des Rechners von Interesse und die hardwaretechnische Reali-

sierung von Recheneinheit, Speicher und Steuereinheit tritt in den Vordergrund.

K [1]Was versteht man unter einem „Embedded System“?

K [21]Werden weltweit mehr Embedded Systems oder mehr PCs gebaut?

K [8]Erläutern Sie den Begriff „Mikrocontroller“? Grenzen Sie den Begriff des Mikrocont-

rollers gegen den des Mikroprozessors ab. Wo werden Mikrocontroller eingebaut?

Ein Mikroprozessor ist die Zentraleinheit (CPU, Central Processing Unit) eines digi-

talen Datenverarbeitungssystems, die auf einem einzigen Chip untergebracht ist. Er

enthält ein Steuerwerk und ein Rechenwerk. Seine Aufgabe ist die Ausführung eines

Programms, das aus einer Abfolge von Befehlen besteht. Um betriebsfähig zu sein,

benötigt der Mikroprozessor zumindest noch Arbeitsspeicher und E/A-Bausteine

und wird dadurch zum Mikrocomputer.

Das Anwendungsfeld der Mikrocomputer liegt im Bereich der Personal Computer

(PC) und Großrechner. Ein PC besitzt einen großen Arbeitsspeicher für Anwender-

software und Betriebssystem sowie zahlreiche Schnittstellen zur Kommunikation

mit Peripheriegeräten wie Drucker, Scanner, Festplatten, Netzwerk, etc. Zur Kom-

munikation mit dem Benutzer dienen Tastatur, Maus und Monitor.

Ein Mikrocontroller stellt einen Mikrocomputer auf einem Chip dar. Häufig enthält

er zusätzliche Elemente wie Analog-/Digital-Wandler, Zeitgeber oder Zähler. Das

Anwendungsfeld der Mikrocontroller liegt im industriellen Sektor. Meist sind die

Computersysteme als solche gar nicht zu erkennen, sie sind in eine technische Um-

gebung eingebettet (Embedded Systems) und besitzen weder Tastatur noch Anzeige.

Ihre Hauptaufgaben sind Messen, Steuern und Regeln.

Kapitel 1åMCS101

Page 15: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

14

2222RechnerarchitekturenRechnerarchitekturenRechnerarchitekturenRechnerarchitekturen

Ähnlich wie ein Gebäude aus Wänden, Decken, Dach, etc. besteht, sind auch Mikro-

rechner aus verschiedenen einzelnen Elementen aufgebaut, von denen jedes seine Auf-

gabe hat, und es kommt auch darauf an, wie die Elemente miteinander verbunden sind.

Deshalb spricht man in diesem Zusammenhang von „Rechnerarchitektur“. In Bezug auf

Mikrorechner ist mit der Architektur das Design von Prozessor-Chips (Hardware) unter

Berücksichtigung der möglichen Befehle (Software) und der Verarbeitungsgeschwin-

digkeit gemeint. Hier existieren verschiedene Konzepte, von denen das Von-Neumann-

Konzept bereits im ersten Kapitel angerissen wurde. Im Folgenden werden wir sie näher

betrachten und weitere Begriffe, die im Zusammenhang mit Mikrocomputern wichtig

sind, klären.

Die Architektur wird auf jeden Fall von der Aufgabe bestimmt, welche der Prozessor zu

erledigen hat. Dabei werden häufig verschiedene Konzepte miteinander kombiniert. Ist

die Struktur des Rechners unabhängig von dem zu bearbeitenden Problem, so spricht

man von einem Universalrechner. Die verschiedenen Aufgaben werden durch jeweils

darauf angepasste Programme gelöst. Ausgehend davon haben spezielle Architekturen

den Zweck, den Prozessor an spezielle Aufgaben anzupassen. So ist beispielsweise ein

digitaler Signalprozessor (DSP) auf die besonderen Belange der digitalen Datenverar-

beitung ausgerichtet.

Falls Ihnen nicht alles gleich beim ersten Durchlesen klar wird: Die Arbeitsweise eines

Mikrorechners werden wir in Kapitel 5 noch genauer analysieren und einiges erschließt

sich vielleicht erst, wenn Ihnen auch die Prozessorbefehle bekannt sind.

2.12.12.12.1Von-Neumann-Architektur (Von-Neumann-Architektur (Von-Neumann-Architektur (Von-Neumann-Architektur (Princeton-Architektur)Princeton-Architektur)Princeton-Architektur)Princeton-Architektur)

Im Jahre 1945 legte John von Neumann1 ein Architektur-Konzept für einen speicher-

programmierten Universalrechner vor. Sein erster Entwurf ist heute als Von-Neumann-

Maschine oder Von-Neumann-Architektur bekannt – ein weitsichtiges und visionäres

Konzept, das auch noch heutigen Computern zugrunde liegt. Auf diesem Konzept basie-

rende Prozessoren folgen dem schematischen Aufbau nach Abbildung 5, der die zentra-

len Komponenten Leitwerk, Rechenwerk, Registersatz und typischerweise den Mikro-

programmspeicher umfasst.

1 Herausragender Mathematiker und Computerpionier aus Ungarn, der 1933 in die USA auswanderte und als Professor in Princeton arbeitete.

Kapitel 2åMCS101

Page 16: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

15

Abbildung 5:Typischer Aufbau eines Mikroprozessors

Eine Von-Neumann-Maschine hat folgende Elemente, die eng zusammenarbeiten:

Das Leitwerk (Steuerwerk, Steuereinheit, Befehlsprozessor) verarbeitet die elementaren

Befehle des Computers, die sogenannten Maschinenbefehle. Diese Befehle werden

interpretiert und deren Ausführung veranlasst, gesteuert und überwacht. Das Leitwerk

liest dazu jeden einzelnen Befehl aus dem Arbeitsspeicher, decodiert ihn und führt ihn

dann aus. Leitwerk und Rechenwerk arbeiten Hand in Hand, das Leitwerk liefert die

Signale zur Steuerung der gewünschten Rechenwerksfunktion. Das Rechenwerk liefert

umgekehrt Informationen an das Leitwerk, beispielsweise, ob das Ergebnis der letzten

Rechenoperation kleiner, größer oder gleich Null ist. Auch stellt das Leitwerk die Ver-

bindung zwischen allen Komponenten des Computers her, es ist die Schaltzentrale, die

alle Datenströme lenkt.

Das Rechenwerk (Datenprozessor), verknüpft und verändert die zu bearbeitenden Daten.

Den Kern bildet die ALU (Arithmetical and Logical Unit) zur Bearbeitung der Daten.

Sie führt alle Berechnungen aus und trifft logische Entscheidungen, indem sie Werte

vergleicht und damit Bedingungen überprüft. Die Rechenfähigkeit beschränkt sich auf

die Grundrechenarten, doch lassen sich daraus alle anderen arithmetischen Operationen

aufbauen. Die komplizierten Berechnungen, die ein Computer in kurzer Zeit ausführen

kann, setzen sich aus einer Vielzahl kleinster Schritte in der ALU zusammen. Die Wort-

breite oder Wortlänge1 der ALU, also die feste Anzahl der parallel mit einer Rechenope-

ration verarbeitbaren Bits, ist ein Maß für die Leistungsfähigkeit der CPU. Heutzutage

haben wir es schon mit 32-Bit- oder 64-Bit-CPUs zu tun. Moderne CPUs besitzen neben

einer ALU für ganze Zahlen auch eine Gleitkomma-Einheit (engl. Floating Point Unit,

FPU), die speziell für die Berechnung von Gleitkommazahlen ausgelegt ist. Dabei müs-

sen wir uns jedoch immer vor Augen halten, dass es sich nicht um exakte reelle Zahlen

handelt, weil die Anzahl der verarbeitbaren Stellen begrenzt ist. Bei jeder Operation tre-

ten Rundungsfehler auf, die durch geeignete Programmierverfahren so klein wie mög-

lich gehalten werden müssen.

Der Speicher nimmt alle Informationen auf. Dazu gehört das Mikroprogramm, das der

Computer bearbeiten soll, und auch die Daten, die beim Ablauf des Programms benötigt

werden. Aus der Sicht des Speichervorgangs werden Programmteile und Daten gleich

behandelt. Während der Verarbeitung werden Zwischenergebnisse im Speicher abge-

1 Die beiden Begriffe Wortbreite und Wortlänge sind gleichwertig.

Kapitel 2åMCS101

Page 17: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

16

legt und wieder abgerufen, bis zum Programmende werden Endergebnisse abgespei-

chert. Die einzelnen Speicherplätze sind alle gleichlang und werden über ihre jeweilige

Adresse – das ist die Nummer des Speicherplatzes – einzeln angesprochen. Man unter-

scheidet beim Speicher zwischen dem Hauptspeicher und dem externen Speicher.

Der Hauptspeicher (Arbeitsspeicher, engl. Main Memory) ist fest im Computer einge-

baut. Auf den Hauptspeicher kann die CPU direkt zugreifen.

Im externen Speicher werden Programme und Daten dauerhaft aufbewahrt, die der Com-

puter gerade nicht benötigt. Als Datenträger (Massenspeicher) werden Halbleiterspeicher

(USB-Stick, SD-Karte, Solid-State-Disk, etc.), Festplatten, optische Speichermedien

(CD-ROM, DVD) und selten noch Disketten (Floppy Disks) verwendet. Für das Abspei-

chern von Programmen vom Hauptspeicher auf einen externen Speicher gibt es beson-

dere Kommandos des Betriebssystems, ebenso für das Laden von einem externen in den

Hauptspeicher.

Die Eingabe- und Ausgabegeräte stellen die Verbindung her zwischen einem Computer

und seinem Benutzer, aber auch zwischen einem Computer und anderen Geräten oder

Computern. Ohne Geräte zur Ein- und Ausgabe könnte man keine Programme eingeben

und keine Daten an ein laufendes Programm liefern, man erhielte keine errechneten

Ergebnisse. Ein Ausgabegerät wie der Drucker lässt sich einsetzen, um die Ergebnisse

der Programmbearbeitung zu erhalten oder um die Werte auszugeben, die in einem

Speicher abgelegt sind. Ein Eingabegerät wird komplementär eingesetzt, mit ihm ver-

sorgt man die CPU oder den Hauptspeicher durch die CPU mit neuen Daten.

Zu den E/A-Geräten gehören auch die Netzwerkverbindungen, mit denen sich mehrere

Computer zu einem Verbund zusammenschließen lassen. Sie erlauben einen sehr schnel-

len Datenaustausch zwischen verschiedenen Computersystemen. Ein Vorteil solcher

Vernetzung liegt darin, dass mehrere Systeme gemeinsam auf periphere Geräte zugreifen

können. Damit erweitern sich die Fähigkeiten der einzelnen Systeme ohne entsprechende

zusätzliche Kosten. Bei Mikrocomputersystemen treten hier neben dem klassischen

Ethernet auch Bussysteme (CAN, KNX, etc.) oder RS485-Verkabelungen auf.

Die CPU – die jetzt in Abbildung 6 noch detaillierter dargestellt ist – enthält mehrere

Register für die Aufnahme der Daten, die bei der Ausführung eines Programms verfüg-

bar sein müssen. Ein Register kann man sich als schnellen (Zwischen-) Speicher für ein

einzelnes Datenwort vorstellen. Der Registersatz wird durch eine Reihe von Speicher-

zellen realisiert, die direkt in der CPU untergebracht sind. Diese Speicherform stellt die

schnellste und gleichzeitig teuerste Form von Speicher. Register besitzen typischer-

weise eine feste Länge, die mit der verarbeitbaren Wortlänge der CPU übereinstimmt.

Häufig werden die zur Verfügung stehenden Register bezüglich ihres Einsatzgebietes

unterschieden. So nimmt z. B. das Befehlsregister (engl. Instruction Register, IR) je-

weils den momentan auszuführenden Befehl auf. Darüber hinaus sind ein Status- und

Kontrollregister sowie Register zur Aufnahme von Zahlen und Rechenergebnissen (Ak-

kumulator) und zur Aufnahme von Adressen (Stackpointer, Indexregister) üblich. Ein

Indexregister ermöglicht es, auf einen Speicherplatz zu verweisen und diesen Verweis

zur Laufzeit des Programms zu verändern.

Kapitel 2åMCS101

Page 18: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

17

Abbildung 6:Komponenten der Von-Neumann-Architektur

Innerhalb eines Rechners erfolgt der Datentransport auf internen Datenwegen, den

Bussen:

P Der Datenbus transportiert Speicher- oder E/A-Daten von und zur CPU. Er wird nor-

malerweise parallel ausgeführt, das heißt bei einem 32-Bit-System besteht der Daten-

bus aus 32 Leitungen.

P Der Adressbus besteht aus den Adressleitungen, deren Anzahl vom Adressbereich

der CPU abhängt. Für N adressierbare Speicherstellen werden log2(N) Leitungen

benötigt oder anders gesagt: Mit n Leitungen lassen sich 2n Adressen ansprechen.

Folglich benötigt man beispielsweise 10 Leitungen, um 210 = 1024 Addressen anzu-

sprechen.

P Der Steuerbus koordiniert den Zugriff auf die Komponenten und enthält unter ande-

rem Leitungen für die Interrupt1-Steuerung, Buszugriffssteuerung und Taktung

sowie Reset- und Statusleitungen.

1 Ein Interrupt ist eine Unterbrechung des laufenden Programms durch externe Ereignisse. Mehr dazu erfahren Sie in Kapitel 5.

Kapitel 2åMCS101

Page 19: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

18

Operationsprinzip

Es war Von Neumanns Idee, Programm und Daten zuerst in den Speicher zu laden und

dann auszuführen. Bis dahin war das Programm noch hardwaremäßig verschaltet oder

wurde über Lochstreifen schrittweise eingelesen und streng sequentiell bearbeitet. Nun

war es möglich

– Sprünge im Programmablauf aufgrund logischer Entscheidungen auszuführen und

– Programmcode während des Programmablaufes zu modifizieren.

Von Neumann erreichte mit seinem Konzept, dass der Rechner selbstständig logische

Entscheidungen treffen kann. Damit wurde der Übergang vom starren Programmablauf

zur flexiblen Programmsteuerung vollzogen.

Die CPU kann nur elementare, bekannte Befehle verarbeiten, die bereits erwähnten

Maschinenbefehle. Jedes Mikroprogramm besteht aus einer Folge solcher elementaren

Befehle. Da im Speicher nicht zwischen Daten und Befehlen unterschieden wird, muss

das Leitwerk entscheiden, ob der Inhalt eines Speicherplatzes als Befehl oder Datum

aufzufassen ist.

Der Befehlszähler oder Programmzähler (engl. Program Counter, PC oder Instruction

Pointer, IP) ist ein spezielles Register innerhalb der CPU, das die Speicheradresse des

momentan auszuführenden Befehls enthält. Bei jeder Befehlsausführung erhöht das

Leitwerk den Befehlszähler und führt den nächsten Befehl aus.

Entsprechend gibt es zwei Phasen der Programmabarbeitung:

1. Phase: Der durch den Befehlszähler referierte Speicherplatzinhalt wird mit allen

Zusatzinformationen (Operanden) geholt und als Befehl interpretiert (Befehlsholphase,

engl. Instruction Fetch).

2. Phase: Der Speicherplatzinhalt der durch den Befehl spezifizierten Adresse wird

geholt, als Datum interpretiert und dem Befehl entsprechend verarbeitet (Befehlsaus-

führungsphase, engl. Instruction Execution).

Dieses Zweiphasenschema erfordert die streng sequentielle Ausführung eines Pro-

gramms, das heißt, es ist keine parallele Bearbeitung mehrerer Befehle möglich. Ein

Von-Neumann-Rechner bearbeitet zu jedem Zeitpunkt immer nur einen Befehl, der

immer eine Datenoperation im Rechenwerk bewirkt. Je nach Komplexität des Befehls

kann jede der beiden Phasen einen oder mehrere Takte in Anspruch nehmen.

V Die Vorteile der Von-Neumann-Architektur sind der einfache und übersichtliche Auf-

bau mit minimalem Hardware-Aufwand und die große Flexibilität (bei genügend ele-

mentaren Befehlen). Diese Vorteile begründen den immer noch verbreiteten Einsatz der

Von-Neumann-Architektur.

N Dem stehen folgende Nachteile gegenüber: Im Speicher kann man Befehle und Daten

nicht unterscheiden, was bei Programmfehlern dazu führen kann, dass Daten als Befehle

interpretiert werden oder dass Teile des Programms durch Daten überschrieben werden

können. Bei Embedded Systems wiegt dieser Nachteil nicht ganz so schwer, weil das

Programm meist in einem Nur-Lese-Speicher liegt und nicht verändert werden kann.

Der zweite Nachteil liegt darin, dass nur ein Verbindungsweg zwischen CPU und Spei-

cher existiert. Weil Daten und Befehle gemeinsam im Speicher gehalten werden, wird

die Verbindung über den Systembus die Leistungsfähigkeit des Rechners begrenzen.

Man nennt diese Grenze den Von-Neumann-Flaschenhals. Jeglicher Datenverkehr von

Kapitel 2åMCS101

Page 20: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

19

und zur CPU oder zur Ein-/Ausgabe wird über den internen Bus abgewickelt, dessen

Transfergeschwindigkeit langsamer ist als die Verarbeitungsgeschwindigkeit der CPU.

Dieses Problem versucht man in modernen Prozessoren durch die Verwendung von

schnellem Cache-Speicher, der meist in der CPU integriert ist, abzuschwächen.

Erhöhung der Leistungsfähigkeit des Prozessors

Es gibt einige Möglichkeiten, einen nach dem Von-Neumann-Prinzip arbeitenden Pro-

zessor in seiner Leistung zu verbessern. Man kann beispielsweise die Prozessorfunktio-

nen bei der Ein-/Ausgabe auf die E/A-Schnittstellen verlagern („intelligente“ Schnittstel-

len, E/A-Prozessoren, Vor-Rechner, Front-End-Rechner). Bei modernen PCs werden

rechenintensive Aufgaben der Darstellung von einem eigenen Grafikprozessor übernom-

men. Eine weitere Möglichkeit ist das Bearbeiten einzelner, spezieller Befehle durch

Spezialprozessoren (z. B. Arithmetik-Koprozessor), die abwechselnd mit der „normalen“

CPU arbeiten.

Eine weitere Möglichkeit bietet die Überlappung von Befehlsholphase und Befehlsaus-

führungsphase. Da während des Decodierens eines Befehls n kein Zugriff auf den Spei-

cher nötig ist, kann der Prozessor zu diesem Zeitpunkt schon den nächsten Befehl n+1

oder einen Operanden laden. Erweitert man dieses Prinzip, erhält man einen Pipeline-

Rechner.

Dazu sehen wir uns eine Befehls-Pipeline an, bei der die Bearbeitung eines Befehls

nicht nur in zwei, sondern etwas detaillierter in fünf Teilaufgaben zerlegt ist:

FE: Befehl holen (Fetch)

DI: Decodierung des Befehl (Decode Instruction)

EX: Befehlsausführung (Execute)

MEM: Speicherzugriff (Memory access), Lesen von Operanden aus dem Speicher

WR: Schreiben (Write)

Ziel der Pipeline ist es, jede Stufe parallel zu den vorhergehenden und folgenden zu

absolvieren, so wie Sie es in Abbildung 7 sehen. Pro Takt werden hier mehrere Teilauf-

gaben ausgeführt, sodass die Bearbeitungsdauer einer Befehlskette gegenüber der streng

sequentiellen Ausführung wesentlich geringer ist.

Abbildung 7:Ablaufschema einer Pipeline

FE DI EX MEM WR

Befehl n

FE DI EX MEM WR

Befehl n+1

FE DI EX MEM WR

Befehl n+2

FE DI EX MEM WR

Befehl n+3

FE DI EX MEM WR

Befehl n+4

FE DI EX MEM

Befehl n+5

FE DI EX

Befehl n+6

FE DI

Befehl n+7

FE

Befehl n+8

usw.

usw.

usw.

usw.

usw.

Zeit

Takt

Kapitel 2åMCS101

Page 21: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

20

Die einzelnen Teilaufgaben werden nun entweder von mehreren hintereinandergeschal-

teten Rechenwerken ausgeführt, die gemeinsam gesteuert werden, oder der Prozessor ist

aus hintereinandergeschalteten spezialisierten Schaltnetzen aufgebaut.

Je länger eine Pipeline ist, umso größer ist die Verarbeitungsgeschwindigkeit. Der Nach-

teil des Pipelining besteht darin, dass sich viele Befehle gleichzeitig in Bearbeitung be-

finden und dadurch Konflikte – z. B. beim Speicherzugriff – auftreten können. Im Falle

einer Änderung im linearen Ablauf des Programms müssen alle Befehle in der Pipeline

verworfen und die Pipeline anschließend neu gefüllt werden (Nachladen von Befehlen

aus dem Arbeitsspeicher). Die nächste Erweiterung wäre die Kombination mehrerer

Pipelines, wie es in Vektorprozessoren der Fall ist.

2.22.22.22.2CISC und RISCCISC und RISCCISC und RISCCISC und RISC

Prozessorarchitekturen, die mit vielen verschiedenen und leistungsfähigen Befehlen

arbeiten, werden als Complex Instruction Set Computer (CISC) klassifiziert. Die CISC-

Architektur entwickelte sich in der Ära der Großrechner. Damals erwies sich die Mikro-

programmierung als ideale Möglichkeit, Prozessoren zu planen und zu realisieren. Die

einzelnen Ablaufschritte zur Bearbeitung eines Befehls wurden als Bitmuster hardware-

mäßig im Mikroprogrammspeicher abgelegt. So blieb die Ablaufsteuerung zur Befehls-

bearbeitung nahezu gleich, auch wenn bei einem neuen Prozessormodell weitere, noch

komplexere und leistungsfähigere Befehle hinzukamen. Prozessoren mit mehreren Hun-

dert verschiedenen Befehlen konnten auch die semantische Lücke zwischen den zur

Applikationsprogrammierung eingesetzten Hochsprachen und den realen Maschineninst-

ruktionen möglichst schmal halten.

Gleichzeitig verfügen CISC-Architekturen über eine Reihe verschiedener Befehlsfor-

mate, die sich in ihrem internen Aufbau unterscheiden. Im Prinzip bestehen Befehls-

worte immer aus der Spezifikation der auszuführenden Maschineninstruktion, den be-

nötigten Operanden und der Angabe des Speicherplatzes für das Berechnungsergebnis.

Teilweise können die Operanden direkt im Befehl untergebracht werden, statt sie aus

dem Speicher zu laden. Als Konsequenz des komplexen Befehlsaufbaus dauert die Ab-

arbeitung eines CISC-Befehls etliche Taktzyklen. So lag beispielsweise beim Prozessor

8088 die Zahl der Taktzyklen für einen Befehl zwischen 2 und 190.

Beim RISC-Prozessor (Reduced Instruction Set Computer) wird der umgekehrte Weg

beschritten. RISC-Prozessoren haben einen kleinen Befehlssatz, bei dem aber alle

Befehle innerhalb weniger Taktzyklen ausgeführt werden können. Damit wird der Auf-

bau des Chips einfacher und es sind höhere Taktfrequenzen möglich. Typische RISC-

Prozessoren bieten oft nur 50 oder weniger verschiedene Befehle an. Diese Befehle ent-

halten nur Minimalfunktionen und müssen kombiniert werden, um komplexere Aufga-

ben ausführen zu können. Eine Nebenwirkung dieser Befehlsreduktion ist die Beschrän-

kung der in einer Maschineninstruktion zugelassenen Speicherzugriffe. So gestatten

RISC-Architekturen üblicherweise nur Operationen auf in Registern befindliche Ope-

randen, um aufwendige Speicherzugriffe zu umgehen.

Alle Elemente des Befehlssatzes eines RISC-Prozessors besitzen dieselbe Wortlänge

und einen einheitlichen Aufbau. Daher bestehen für RISC-Architekturen ausgelegte

Maschinenprogramme normalerweise aus einer größeren Anzahl von Befehlen als

deren CISC-Äquivalent. Wegen der geringeren Zykluszeit (also höheren Taktfrequenz),

Kapitel 2åMCS101

Page 22: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

21

können sie aber gegenüber der CISC-Architektur wesentlich schneller abgearbeitet wer-

den. In der Praxis sind die Grenzen zwischen den Kategorien RISC und CISC fließend.

RISC-Prozessoren verwenden übrigens oft nicht die Von-Neumann-Architektur, son-

dern die Harvard-Architektur, die wir im nächsten Kapitel betrachten werden.

2.32.32.32.3Harvard-ArchitekturHarvard-ArchitekturHarvard-ArchitekturHarvard-Architektur

Typisch für die Harvard-Architektur ist die Trennung von Daten- und Befehlsspeicher,

wie Abbildung 8 schematisch zeigt. Im Grunde ist sie älter als die Von-Neumann-

Architektur, denn die ersten Computer (etwa die Zuse 3) hatten nur einen Datenspeicher

mit freiem Zugriff. Der Programmspeicher in der Form von Lochstreifen oder -karten

war im Programmablauf unveränderlich. Erst später wurde auch das Programm auf

flexiblen Speichermedien abgelegt. Der bis 1946 von Howard Aiken an der Harvard-

Universität entwickelte Computer Mark III verwirklichte ebenfalls schon die Harvard-

Architektur, daher der Name.

Abbildung 8:Schema der Harvard-Architektur

Heute bezeichnet die Harvard-Architektur ein Schaltungskonzept zur Realisierung be-

sonders schneller CPUs und Signalprozessoren. Befehlsspeicher und Datenspeicher sind

voneinander getrennt und werden über getrennte Busse angesteuert. Daher können Be-

fehle und Daten gleichzeitig geladen oder geschrieben werden. Bei einer klassischen

Von-Neumann-Architektur sind hierzu mindestens zwei aufeinanderfolgende Taktzyklen

notwendig. Zudem sorgt die Trennung von Daten und Programm dafür, dass bei Soft-

warefehlern kein Programmcode überschrieben werden kann. Nachteilig ist allerdings,

dass freier Datenspeicher nicht als Programmspeicher genutzt werden kann.

Die Harvard-Architektur wurde zunächst überwiegend in RISC-Prozessoren konsequent

umgesetzt. Moderne Prozessoren in Harvard-Architektur sind in der Lage, parallel meh-

rere Rechenwerke gleichzeitig mit Daten und Befehlen zu füllen. Bei Signalprozessoren

der Firma Texas Instruments ist dies beispielsweise für bis zu acht Rechenwerke mög-

lich. Ein weiterer Vorteil ist die unabhängige Festlegung von Datenwortbreite und Be-

fehlswortbreite. Damit kann auch der Programmspeicherbedarf verringert werden, da

dieser nicht direkt von den Datenbusbreiten, sondern ausschließlich vom Befehlssatz ab-

hängig ist.

Ein- und Ausgabe

Daten-speicher

Befehls-speicher

Rechenwerk Leitwerk

SteuerungAdressen

Daten Befehle

Status

Steuerung

Kapitel 2åMCS101

Page 23: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

22

Eine bedeutende Erweiterung der Harvard-Architektur wurde von Analog Devices mit

der Einführung der SHARC-(Super-Harvard-Architecture)-Technologie vorgenommen,

bei der die Speicher als Dual-Port-RAMs realisiert werden, die zwischen den Programm-

und Daten-Bussen liegen.

Viele moderne Prozessoren verwenden eine Mischform aus Harvard- und Von-Neu-

mann-Architektur. Innerhalb des Prozessors werden gemäß dem Harvard-Konzept Daten

und Programm voneinander getrennt verwaltet. Dort existieren eigene Cache-Speicher

und Memory Management Units mit getrennten internen Bussen. Dies hat beim Pipe-

lining den Vorteil, dass deren einzelne Pipelinestufen in Bezug auf Speicherzugriffe

getrennt arbeiten können und Konflikte vermieden werden. Extern wird nach dem Von-

Neumann-Konzept auf einen gemeinsamen Speicher zugegriffen.

Ein Nachteil der Harvard-Architektur liegt darin, dass die Aufteilung des Speichers

nicht so flexibel gehandhabt werden kann. Ist das Programm zu groß für den Programm-

speicher, kann es nicht gespeichert werden, auch wenn im Datenspeicher möglicher-

weise noch Platz wäre. Dieser Nachteil wirkt sich bei Signalprozessoren – die wir später

noch behandeln werden – nicht so stark aus, da hier meist ein relativ kleines, sich selten

änderndes Programm verwendet wird, um große Datenmengen zu verarbeiten.

2.42.42.42.4Klassifikation von RechnernKlassifikation von RechnernKlassifikation von RechnernKlassifikation von Rechnern

Eine systematische Einteilung von Rechnern in Bezug auf Parallelität stammt von

Michael J. Flynn1. Er kombiniert jeweils die Anzahl der vorhandenen Befehls- und

Datenströme und kommt so auf vier Klassen von Rechnern:

P SISD (Single Instruction, Single Data): Dies ist der klassische Von-Neumann-Rech-

ner. Zu einem Zeitpunkt wird genau ein Befehl ausgeführt, der auf einen Datenwert

oder einen zusammengehörenden Satz von Datenwerten wirkt (z. B. zwei Eingangs-

werte, ein Ausgangswert).

P SIMD (Single Instruction, Multiple Data): Der gleiche Befehl wird auf mehrere

Datensätze angewandt. Zu dieser Gruppe gehören Feld- und Vektorrechner.

P MISD (Multiple Instructions, Single Data): Diese Kombination ist nicht sinnvoll.

Hierbei würden mehrere Befehle gleichzeitig auf einen Datensatz angewandt.

P MIMD (Multiple Instructions, Multiple Data): Allgemein werden unterschiedliche

Befehle auf unterschiedliche Datensätze angewendet. Das trifft etwa bei Multipro-

zessorsystemen zu.

Die Grenzen zwischen diesen Kategorien sind aber nicht so eng gesteckt, wie es diese

Liste suggeriert. Der Trend ist sowieso, das Beste aus verschiedenen Konzepten zu

kombinieren.

Der Gewinn durch Parallelisierung hängt sehr stark von der Aufgabe ab. Das gilt für

Vorgänge innerhalb der CPU genauso wie bei der Kombination kompletter Systeme.

Viele rechenintensive Probleme lassen sich gut in unabhängig voneinander zu bearbei-

tenden Teilprobleme aufteilen. Allerdings gibt es stets eine Grenze für diese Aufteilung,

1 Amerikanischer Professor für Elektrotechnik und Computerwissenschaften.

Kapitel 2åMCS101

Page 24: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

23

wie folgendes Beispiel veranschaulicht: Ein Koch braucht acht Stunden für die Vorbe-

reitung eines Banketts. Zwei Köche brauchen vier Stunden für die Vorbereitung dessel-

ben Banketts. Wie lange brauchen dann 100 Köche? Sie sehen: Der Idealfall, dass N

Einheiten eine Aufgabe in der Zeit t/N erledigen, wird nur selten erreicht.

2.52.52.52.5Digitale SignalprozessorenDigitale SignalprozessorenDigitale SignalprozessorenDigitale Signalprozessoren

Eine Sonderstellung unter den Mikrocontrollern nehmen die digitalen Signalprozessoren

(DSP) ein. Sie besitzen besondere HW-Komponenten zur Verarbeitung großer Daten-

mengen. So sind analoge Schnittstellen und meist auch eine in der Hardware implemen-

tierte Fast-Fourier-Transformation (FFT) standardmäßig vorhanden. DSP dienen typi-

scherweise der Filterung, der Kodierung und der Dekodierung von streaming data, das

heißt, sie verarbeiten einen ständig fließenden Strom sich ändernder Daten. Anwen-

dungsbereiche sind in der Multimedia- und Telekommunikationstechnik oder der Rege-

lungstechnik zu finden, beispielsweise:

– Digitale Filterung, Frequenzanalyse

– Mobiltelefone

– Sprachsignalverarbeitung, Spracherkennung

– Radar, Sonar, Messtechnik

– Musikerzeugung

– MPEG1-Kodierung, MPEG-Dekodierung

– Mustererkennung

– 3D-Grafikanimation

– medizinische Bildverarbeitung

Signalverarbeitungs-Anwendungen haben einen Programmcode, der sich vor allem am

Datenfluss orientiert und komplexe arithmetische Operationen ausführt. Sie setzen auf

Bei den grundlegenden Architekturmerkmalen unterscheidet man die Von-Neu-

mann-Architektur, bei der ein gemeinsamer Speicher für Daten- und Programm ver-

wendet wird, und die Harvard-Architektur mit strikter Trennung von Befehls- und

Datenspeicher. Die Trennung der Speicher einschließlich der dazugehörigen Busse

hat den Vorteil, dass Daten und Befehle gleichzeitig geladen werden können.

Um die Verarbeitungsgeschwindigkeit eines Prozessors zu erhöhen, ist Pipelining

üblich. Hierbei werden die Befehle in kleinere Teile zerlegt, die parallel bearbeitet

werden können.

Beim Aufbau des Befehlssatzes und damit auch der Architektur des Steuerwerks

wird in CISC (Complex Instruction Set Computer) und RISC (Reduced Instruction

Set Computer) unterschieden. Bei CISC gibt es sehr viele, zum Teil komplexe Be-

fehle, deren Bearbeitung etliche Taktzyklen benötigt. Bei RISC ist der Befehlssatz

auf einfache, elementare Befehle eingeschränkt, deren Bearbeitung in der Regel

nach einem Taktzyklus abgeschlossen ist. In der Praxis sind die Grenzen zwischen

diesen beiden Kategorien fließend.

1 Ein Standardformat für die Komprimierung von Videoinformationen.

Kapitel 2åMCS101

Page 25: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

24

parallele Verarbeitung der Daten, um den gewünschten hohen Datendurchsatz zu errei-

chen.

B Beispiele für DSP sind der ADSP 21060 der Firma Analog Devices, der Motorola

M96000 und die DSP-Familie TMS320Cx von Texas Instruments.

2.5.12.5.12.5.12.5.1Digitale SignalverarbeitungDigitale SignalverarbeitungDigitale SignalverarbeitungDigitale Signalverarbeitung

Was ist digitale Signalverarbeitung? Dazu müssen Sie zunächst wissen, welche Arten

von Signalen überhaupt denkbar sind und welche digital verarbeitet werden können.

Bezüglich der Kontinuität der Signale in ihrem Wert und über die Zeit können wir vier

Signaltypen unterscheiden, wie folgende Abbildung zeigt.

Abbildung 9:Vom analogen zum

digitalen Signal

– Analogsignal: Die meisten Signale in unserer Umgebung sind analoger Natur. Sie

sind zeit- und wertkontinuierlich. Solch ein analoges Signal kann beispielsweise eine

von der Zeit t abhängige Spannung u(t) sein.

– Zeitdiskretes Signal: Eine unmittelbare Verarbeitung eines analogen Signals mithilfe

eines DSP ist nicht möglich, da dieser nur zu festen Zeitpunkten Messwerte (soge-

nannte Samples) verarbeiten kann. Das Erfassen des analogen Eingangssignals in

äquidistanten Zeitabständen bezeichnet man auch als Abtastung; sie macht aus dem

zeitkontinuierlichen Signal ein zeitdiskretes. Als Abtastperiode T wird die Zeit zwi-

schen zwei Abtastungen bezeichnet. Die Abtastperiode setzt sich aus der Zeit ti für

die akive Datenaufzeichnung und gegebenenfalls der Verarbeitungszeit tp zusammen.

Den Kehrwert der Abtastperiode nennt man Abtastfrequenz. Damit das Eingangssig-

nal auch nach einer Abtastung exakt rekonstruiert werden kann, muss die Abtastfre-

quenz fa mindestens doppelt so groß gewählt werden wie die größte im Fourierspekt-

rum des Eingangssignals vorkommende Frequenz (Abtasttheorem von Nyquist und

Shannon). Wenn das Abtasttheorem nicht eingehalten wird, kommt es zum Aliasing,

zeitkontinuierlichwertkontinuierlich

zeitkontinuierlichwertdiskret

Analogsignal

Digitalsignal

zeitdiskretwertkontinuierlich

zeitdiskretwertdiskret

Kapitel 2åMCS101

Page 26: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

25

einer schwerwiegenden Verfälschung gegenüber dem ursprünglichen Signal. Norma-

lerweise wird ein Tiefpassfilter vorgeschaltet (Anti-Aliasing-Filter), das nur diejeni-

gen Frequenzanteile des Ursprungssignals passieren lässt, die dem Theorem genü-

gen.

– Wertdiskretes Signal: Auch den Wertebereich des Eingangssignals kann man in äqui-

distante Abschnitte unterteilen und erhält dadurch ein wertdiskretes Signal, das dem

auf der diskreten Werteachse jeweils nächsten Wert zugeordnet wird. Die Umwand-

lung eines wertkontinuierlichen in ein wertdiskretes Signal geschieht mithilfe eines

Analog-Digital-Wandlers. Dieser Vorgang wird als Quantisierung bezeichnet. Den

Fehler, der bei der Quantisierung zwangsläufig entsteht, nennt man Quantisierungs-

fehler. Er hängt von der Auflösung des Wandlers ab.

– Digitales Signal: Dies ist nun das einzige Signal, das ein DSP verarbeiten kann. Ein

digitales Signal ist sowohl zeitdiskret als auch wertdiskret. Es ist die numerische Re-

präsentation eines analogen Signals.

Damit kommen wir zurück auf den Begriff der digitalen Signalverarbeitung: Diese be-

schäftigt sich mit der Verarbeitung analoger Signale mittels digitaler Systeme. Im Be-

sonderen ist damit die numerische Veränderung eines digitalen Signals gemeint, die

über festgelegte Rechenvorschriften erfolgt. Sie werden sich jetzt fragen: Warum verar-

beitet man die analogen Signale nicht mit einfacheren analogen Schaltungen? Antwort:

Weil die digitale Verarbeitung stabil ist gegenüber Alterung und Temperatur, hingegen

aber bei analogen Systemen die Langzeitstabilität nicht garantiert ist. Digitale Systeme

sind flexibel einsetzbar: Bei identisch aufgebauten Systeme braucht nur die Software

getauscht zu werden um verschiedene Probleme zu lösen. Außerdem können viele tech-

nische Lösungen erst mit der Entwicklung der digitalen Signalverarbeitung realisiert

werden, wie beispielsweise die Mustererkennung.

Die folgende Abbildung 10 zeigt den Aufbau eines typischen DSP-Systems, mit dem

analoge Signale digital verarbeitet werden können. Mit diesem wäre es beispielsweise

möglich, einen digitalen Filter zu realisieren. Durch den hohen Integrationsgrad heuti-

ger ICs kommt man dabei mit nur wenigen Bauteilen aus.

Kapitel 2åMCS101

Page 27: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

26

Abbildung 10:Aufbau eines DSP-Systems

Neben dem Signalprozessor (DSP), der die digitale Signalverarbeitung vornimmt, in-

dem er die Messwerte verarbeitet, sind weitere teils aufwendige analoge Komponenten

notwendig: Analog-Digital-Wandler (A/D-Wandler), Digital-Analog-Wandler (D/A-

Wandler), Abtast-Halte-Glieder und Tiefpassfilter.

Das analoge Signal durchläuft zunächst einen Tiefpass, den Anti-Aliasing-Filter. Ein

Abtast-Halte-Glied (engl. Sample and Hold) hält das Signal für die Zeitdauer der nach-

folgenden Analog-Digital-Umsetzung konstant. Damit ist das Signal digitalisiert und

kann vom DSP verarbeitet werden. Ergebnis der Berechnungen ist ein digitales Aus-

gangssignal, das einem D/A-Wandler zugeführt wird. Das zweite Abtast-Halte-Glied,

der sogenannte Deglitcher, wird bei hohen Anforderungen an die Güte des Ausgangssi-

gnals eingesetzt. Er entlastet das letztfolgende analoge Tiefpassfilter, indem er das Aus-

gangssignal des D/A-Wandlers glättet.

Typische Anwendungen von DSPs sind Filter aller Art. Dabei gehen für die Berech-

nung eines Ergebniswerts meistens nicht nur der aktuelle Sample, sondern auch Samp-

les der vorhergehenden Abtastungen mit ein. Diese Berechnung muss abgeschlossen

und der Wert im Speicher abgelegt sein, bevor das nächste Sample am Eingang ansteht.

Es wird also sehr viel in sehr kurzer Zeit berechnet.

Die in diesem Kapitel besprochenen Prinzipien der digitalen Signalverarbeitung gelten

natürlich nicht nur für die Verarbeitung mit einem DSP, sondern für sämtliche Arten

von Mikrorechnern. Nur ist ein DSP eben in besonderem Maße darauf zugeschnitten.

AnalogerTiefpass

Abtast-Halteglied(Sample & Hold)

Analog-Digital-Wandler

Digital-Analog-Wandler

Deglitcher(Sample & Hold)

AnalogerTiefpass

Kapitel 2åMCS101

Page 28: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

27

2.5.22.5.22.5.22.5.2DSP-EigenschaftenDSP-EigenschaftenDSP-EigenschaftenDSP-Eigenschaften

Digitale Signalprozessoren sind für datenfluss-orientierten Code, komplexe arithmeti-

sche Operationen und parallele Verarbeitung optimiert. Sie besitzen eine gut ausgebaute

Datenverarbeitung mit folgenden Eigenschaften:

– mehrere parallel arbeitende Arithmetikeinheiten,

– sehr schnelle Multiplizierer,

– Pipelining,

– oft nur Festkommaarithmetik,

– spezielle Arithmetikbefehle wie z. B. „Multipliziere und Akkumuliere“,

– oft Harward-Architektur (Befehlsbus und Datenbus getrennt),

– gleichzeitiger Zugriff auf Instruktionen und mehrere Operanden,

– spezielle Adressierungsarten.

Abbildung 11:Blockschaltung eines DSP

MAC und Shifter

In Abbildung 11 sehen Sie die ALU, welche Additionen, Subtraktionen und die logi-

schen Operationen ausführt. Alle Multiplikationen hingegen werden von der MAC

(Multiplier Accumulator) durchgeführt. Diese Einheit besteht aus einem schnellen Mul-

tiplizierer mit nachgeschaltetem Akkumulator und führt besondere MAC-Befehle aus.

Dies erlaubt die Berechnung von Vektorprodukten, wie sie beispielsweise für digitale

Filterfunktionen nötig ist.

Der Shifter dient der Berechnung von Schiebeoperationen und der Normalisierung

(siehe Kapitel 3.1.4) von Zahlen. Alle Berechnungen werden normalerweise innerhalb

eines einzigen Befehlszyklus durchgeführt. Dazu besitzt jede Recheneinheit eigene Ein-

und Ausgaberegister (PMA und PMD, DMA und DMD).

Speicherorganisation

In der Grafik gut zu erkennen ist auch die Trennung von Daten- und Programmspeicher,

was einer Harvard-Architektur entspricht, wie Sie bereits wissen. Ein DSP ist so in der

Lage, mehrere Speicherzugriffe in einem Befehlszyklus gleichzeitig durchzuführen.

Parallel zum Holen eines Befehls werden die dazu benötigten Operanden geladen und

die Ergebnisse der vorherigen Operation in den Speicher geschrieben. Um dies zu er-

Kapitel 2åMCS101

Page 29: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

28

möglichen, besitzen viele Signalprozessoren mehrere interne Busse, Speicher, bei denen

von mehreren Seiten gleichzeitige Zugriffe möglich sind (engl. multi-ported Memory)

und manchmal auch mehrere getrennte Speicherbereiche für die Daten. Eine solche An-

ordnung nennt man dann erweiterte Harvard-Architektur.

Adressierungsarten

Um die Rechengeschwindigkeit weiter zu steigern, werden auf DSPs sogenannte

Address Generation Units (AGU) eingesetzt. Ohne den Hauptdatenpfad des Prozessors

zu nutzen, kann mit diesen die Speicheradressierung, etwa für Operanden, parallel zu

arithmetischen Operationen ausgeführt werden. Etliche AGUs unterstützen besondere

Adressierungsarten, die für eine wiederholte Bearbeitung von sequentiell im Speicher

liegenden Daten oder für bestimmte Formen der Fast Fourier Transformation nützlich

sind.

Schleifenbefehle

Einige DSPs beschleunigen durch spezielle Befehle die Ausführung von Schleifen.

Manche von ihnen können nur eine Operation wiederholen, andere gleich einen ganzen

Anweisungsblock. Man spricht hier von Singleinstruction oder Multiinstruction Hard-

ware Loops. Der Programmierer muss sich bei diesen hardwareunterstützten Schleifen-

befehlen weder um die Inkrementierung des Schleifenzählers, noch um die Abbruchbe-

dingung der Schleife kümmern.

Kommunikation

Die meisten Prozessoren unterstützen serielle oder parallele E/A-Schnittstellen, Inter-

ruptausführung mit geringem Overhead oder DMA (Direct Memory Access), um

Datentransporte mit geringst möglicher Belastung des restlichen Prozessors zu gewähr-

leisten.

Arithmetik

DSPs lassen sich bezüglich der verarbeiteten Zahlenformate in zwei Gruppen einteilen:

Festkomma-DSP (engl. fixed point) und Gleitkomma-DSP (engl. floating point). Diese

unterscheiden sich in ihrem Aufbau und bieten je nach Anwendungsgebiet verschiedene

Vorteile:

P Festkomma-DSPs stellen Zahlen in einem festen Intervall mit einer bestimmten Ge-

nauigkeit dar. Ein 16-Bit-Prozessor kann beispielsweise Zahlen im Bereich von –215

bis 215 – 1 darstellen. Diese Variante stammt aus den Anfängen der DSPs und wird

auch heute noch in der Mehrheit der Anwendungen eingesetzt, nicht zuletzt wegen

des großen Preisvorteils.

P Gleitkomma-DSPs stellen die aktuelle Entwicklung im DSP-Bereich dar. Ihre Zah-

lendarstellung beruht auf einer Mantisse und einem Exponenten. Dies führt zu einem

wesentlich größeren Wertebereich und einer geringeren Überlaufgefahr. Algorith-

men zur Signalverarbeitung lassen sich leichter für Gleitkomma-DSPs implementie-

ren. Jedoch sind Gleitkomma-DSPs langsamer und teurer als die Festkomma-Vari-

ante.

Kapitel 2åMCS101

Page 30: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

29

2.62.62.62.6Welchen Mikrocontroller soll ich verwenden?Welchen Mikrocontroller soll ich verwenden?Welchen Mikrocontroller soll ich verwenden?Welchen Mikrocontroller soll ich verwenden?

Ein Mikrocontroller sollte so ausgewählt werden, dass er für das vorgesehene Anwen-

dungsgebiet geeignet ist. Kriterien sind hier der im Controller verfügbare Programm-

und Datenspeicher sowie die implementierte Peripherie. Daneben spielen unter anderem

Verfügbarkeit, Preis, Produktionsvolumen, Bauform, Geschwindigkeit oder Verlustleis-

tung eine Rolle. Nicht zuletzt sind auch die angebotene Entwicklungsumgebung oder

die Unterstützung durch andere Anwender Kriterien bei der Auswahl. Schließlich ist

auch eine gewisse Standardisierung innerhalb des Unternehmens wichtig – so sollten

möglichst alle Abteilungen dieselbe Controllerfamilie einsetzen, um Synergieeffekte zu

nutzen. Natürlich führt auch eine längere positive Erfahrung mit einem bestimmten Typ

zur schnelleren und effizienteren Wahl – nicht zuletzt deswegen halten sich gerade bei

den 8-Bit-Controllern die Familien „der ersten Stunde“ nach wie vor im Markt.

Verfügbarkeit

BNehmen wir das Beispiel der Mikrocontroller der MCS51-Familie von Intel. Diese sind

gewiss für den langfristigen Einsatz geeignet. Der 8051 wurde bereits 1979 als erstes

Mitglied dieser Familie vorgestellt. Heute gibt es bereits über hundert 8051-Derivate

von zahlreichen Halbleiterherstellern, zum Teil auch mit weiterentwickelten Prozessor-

kernen. Wird die Produktion eines dieser Derivate eingestellt, findet man bei dieser Rie-

senauswahl wohl leicht adäquaten Ersatz.

Bei anderen Modellen kann das natürlich auch so sein. Es ist immer der Markt, der die

Verfügbarkeit und die Produktlebensdauer bestimmt. Oft kommt es vor, dass ein leis-

tungsstärkerer, aber sonst kompatibler Typ in einer anderen Gehäusebauform angeboten

wird, was ein Redesign der Platine zur Folge hätte. Auch sollte man bei Neuankündi-

gungen vorsichtig sein, denn oft dauert es etliche Monate, bis der neue Chip in nennens-

werten Stückzahlen lieferbar ist.

Verbreitete 8-Bit-Mikrocontrollerfamilien sind (in Klammern ist der Hersteller

genannt):

– AVR (Atmel)

– PIC (Microchip)

– 8051 (Intel, verschiedene Hersteller)

– H8 (Renesas, früher Hitachi)

– 68HC05/68HC08/68HC11 (Freescale, früher Motorola)

– ST62 (SGS-Thomson)

– 78K0S (NEC)

– Z8/Z80 (Zilog)

Digitale Signalprozessoren dienen insbesondere der digitalen Verarbeitung analoger

Signale. So sind analoge Schnittstellen und meist auch eine in der Hardware imple-

mentierte Fast-Fourier-Transformation vorhanden. DSPs sind auf die ständig fortlau-

fende Verarbeitung großer Datenmengen mit komplexen arithmetischen Operationen

ausgelegt und werden typischerweise im Multimedia- oder Telekommunikationsbe-

reich oder für Regelungsanwendungen eingesetzt.

Kapitel 2åMCS101

Page 31: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

30

Häufig eingesetzte 16-Bit-Controller sind

– C16x (Infineon)

– R8C/H8 (Renesas)

– 68HC12/68HC16 (Freescale, früher Motorola)

– PIC24 (Microchip)

– MSP430 (Texas Instruments)

Bei 32-Bit-Controllern sind die Hersteller Atmel und Microchip stark vertreten. Dazu

gesellen sich zahlreiche Anbieter von Controllern, deren Kern von der Firma ARM ent-

worfen wurde.

Preis

Neben der Verfügbarkeit spielt gerade bei Anwendungen mit großen Stückzahlen und

hohem Kostendruck der Preis eine wichtige Rolle. Bei geringeren Stückzahlen sind

natürlich neben den immer anfallenden Entwicklungskosten die Kosten für die Entwick-

lungswerkzeuge (Compiler, Assembler, Programmiergerät, etc.) und gegebenenfalls für

die Einarbeitung der Entwickler zu berücksichtigen.

Verlustleistung

Abhängig vom Einsatzzweck können auch andere Kriterien die Auswahl bestimmen. So

ist bei Batterieeinsatz die Laufzeit und damit die aufgenommene Leistung ein primäres

Kriterium. Beispielsweise muss ein akkugespeister Datenlogger für Temperatur, Luft-

feuchtigkeit und Beschleunigung, der mit einer empfindlichen Fracht auf die Reise ge-

schickt wird, eine lange Laufzeit besitzen.

Im Vergleich zu den PC-Prozessoren brauchen Mikrocontroller sowieso relativ wenig

Strom. Die meisten Systeme kennen auch spezielle Stromsparmodi, mit denen man den

Controller teilweise abschalten kann. Für einen extrem geringen Stromverbrauch sind

z. B. die MSP430-Controller optimiert. Da der Stromverbrauch stark vom Takt abhängt,

haben Controller in der Regel eine viel niedrigere Taktfrequenz als PCs. Für die meisten

Anwendungen reichen auch Taktfrequenzen im Bereich von 10 bis einigen 100 MHz

vollkommen aus. Eine Ausstattung mit umfangreicher Peripherie schlägt natürlich

ebenfalls in der Leistungsbilanz zu Buche.

Dokumentation, Programmiersprachen

Die wichtigste Informationsquelle zu einem Mikrocontroller ist nach wie vor das Daten-

blatt. Weitere Informationen und oft auch brauchbare Beispiele bieten Tutorials im World

Wide Web oder Bücher. Je mehr Befehle ein Mikrocontroller kennt und je komplexer

seine Peripherie ist, desto umfangreicher wird auch das Datenblatt. Das führt dazu, dass

bei manchen Mikrocontrollern das Datenblatt über 1000 Seiten hat.

Je nach Projekt stellt sich die Frage nach der zu wählenden Programmiersprache. Den

direktesten Zugriff auf den Prozessor hat man mit Assembler. Dies ist für Viele eine

abschreckende Sprache, denn sie erfordert einen hohen Lernaufwand. Auch ist manche

Prozessorarchitektur nicht ganz so einfach in Assembler zu programmieren wie andere.

Beispielsweise sind die Controller von Atmel und Microchip nicht so „anfängerfreund-

lich“ wie etwa der 68HC11 oder der 8051. Aufgrund stark unterschiedlicher Befehls-

sätze verschiedener Controllerfamilien ist das Gelernte nie Eins zu Eins von einem

Kapitel 2åMCS101

Page 32: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

31

Modell auf ein anderes zu übertragen. Dennoch kann man sich mit einiger Erfahrung

recht schnell in einen anderen Befehlssatz einarbeiten. In bestimmten Bereichen oder

Teilen eines Projekts wird die Verwendung von Assembler stets unabdingbar sein.

Simulator, Debugger

Der Programmablauf kann in einem Software-Simulator oder direkt auf dem Mikrocon-

troller verfolgt werden. Simulatoren können die Signale der Controllerumgebung und

Interrupts nicht immer realistisch nachahmen. Hier hilft nur In-System-Debugging

direkt auf dem Zielsystem. Dafür wird die In-Circuit-Debugging-Hardware des Mikro-

controllers benutzt, welche direkt in die fertige Platine des Zielsystems gesetzt wird.

Diese integrierte Hardware kommuniziert über teils genormte Schnittstellen mit der

Debuggersoftware auf dem PC. Als Verbindungsglied dient ein Kabel mit mehr oder

weniger komplexer Elektronik. Die Debugging-Hardware dient auch zum Laden des

Programms in den Controller, man nennt dies In-System-Programming (ISP). Die ISP-

Schnittstelle ist entweder als universelle Debugging- und Programmierschnittstelle oder

als dedizierte Programmierschnittstelle realisiert. Mikrocontroller mit integriertem

Bootloader1 können auch mit der entsprechenden PC-Software direkt über eine seriellen

Schnittstelle programmiert werden.

Rechenleistung

Wie misst man objektiv die Leistung von Mikroprozessoren und Mikrocontrollern oder

Rechnern ganz allgemein? Hier spielen besondere Maßeinheiten und das Benchmarking

eine Rolle: Die Bestimmung der Leistung von Rechnern für bestimmte vorgegebene

oder auch standardisierte Aufgaben.

Eine der Maßeinheiten ist MIPS (Millions of Instructions Per Second), die Anzahl der

pro Sekunde ausgeführten Befehle. Diese Angabe betrifft die elementaren Befehle der

CPU („native instructions“), also die Zahl der Befehle des eigenen Befehlssatzes, die

von einem Rechner pro Sekunde ausgeführt werden können. Wenn die Befehlsausfüh-

rungszeit nicht konstant ist, muss eine Gewichtung der Befehlsausführungszeiten je

nach Häufigkeit der Befehle erfolgen. Allen einfachen Maßeinheiten für die Operations-

geschwindigkeit liegen keine Messungen zugrunde, sondern lediglich Berechnungen

einer hypothetischen maximalen Leistung aus den Angaben des Herstellers.

Mikrocontroller besitzen meist einfache Prozessorkerne, die mehrere Taktzyklen zur

Ausführung eines Befehls benötigen. Bei RISC-Prozessoren und -Prozessorkernen

stimmt die MIPS-Zahl häufig mit der Anzahl der Taktzyklen pro Sekunde überein, weil

diese die Ausführung von einem Maschinenbefehl pro Taktzyklus anstreben. Falls meh-

rere parallel arbeitende Prozessorkerne existieren, wird diese Zahl oft mit der Zahl der

internen parallel arbeitenden Kerne multipliziert. Dabei entsteht ein theoretischer Wert,

der keine allgemeingültige Aussage über die reale Leistung bringt. Diese ist vom An-

wenderprogramm, vom Compiler und von der Ausgewogenheit des Gesamtsystems ab-

hängig. Die Aussagekraft von MIPS-Werten ist nicht besonders groß.

Eine ähnliche Maßeinheit sind die FLOPS (Floating-Point Operations Per Second)

oder deren Millionfaches, die MFLOPS. Damit ist die maximale Anzahl von Gleitkom-

1 Ein minimales Startprogramm („Urlader“), das die eigentlichen Programmteile in den Programm-speicher lädt.

Kapitel 2åMCS101

Page 33: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

32

maoperationen gemeint, die pro Sekunde ausgeführt werden können. Da Ein- oder Aus-

gabevorgänge, die Wortbreite oder Probleme der Datenzuführung dabei vernachlässigt

werden, ist auch diese Angabe nur von begrenzter Aussagekraft.

Die Mächtigkeit der Befehle ist eine weitere Maßgröße. Sie gibt an, welche Rechenar-

beit mit jedem Befehl erbracht werden kann. Da dieser Wert von der Qualität des Be-

fehlssatzes abhängt, können damit Rechner unterschiedlicher Architekturen nicht mit-

einander verglichen werden. So haben etwa die Befehle von 8-Bit-Mikroprozessoren

eine geringere Mächtigkeit als die eines 16- oder 32-Bit-Prozessors. Hier spielt auch die

Unterscheidung zwischen CISC und RISC eine Rolle.

Der Vorteil dieser Maßeinheiten liegt in der Einfachheit ihrer Bestimmung. Meist las-

sen sie sich aus dem Datenblatt ablesen – aber auch für die experimentelle Bestimmung

muss kein großer Aufwand betrieben werden. Nachteilig ist, dass die interne Organisa-

tion eines Prozessors nicht berücksichtigt wird und dass die Anforderungen eines spezi-

ellen Programmablaufs nicht erfasst werden.

Eine weitere Angabe, die hier ohne Erläuterung erwähnt sei, ist die Peak-Performance,

die Spitzenleistung. Weil diese für keine Anwendung erreicht wird, handelt es sich hier

um eine Leistungsobergrenze, die garantiert nicht überschritten werden kann.

Absolute Benchmarks versuchen Computerleistungen zu vergleichen, indem sie die Zeit

für die Ausführung vorgegebener Programme messen. Je kürzer die Zeiten, desto höher

die Leistung. Diese Verfahren sind etwas objektiver und sinnvoller als die zuletzt vor-

gestellten Maßeinheiten.

P Synthetische Benchmarks sind Programmpakete, in denen typische Befehlsvertei-

lungen vorliegen, also solche, die einem normalen Befehlsmix im Anwendungspro-

gramm entsprechen. Sie liegen meist in höherer Sprache vor, sodass mit der Laufzeit-

bestimmung die Befehls- und die Implementierungsarchitektur und auch die Qualität

des Compilers bewertet wird. Beispiele sind:

– Whetstone: Dieser sehr alte Benchmark bewertet vor allem die Floating-Point-

Leistung eines Rechners.

– Dhrystone: Dieser Benchmark wurde später erarbeitet, er bewertet Ganzzahlope-

rationen und Funktionen, die für Systemprogramme hohe Relevanz haben.

– Linpack: Auf Basis dieses Benchmarks wird die Hitliste der Supercomputer, der

leistungstärksten Rechner der Welt, erstellt. Das Programm wurde ursprünglich

für das Lösen linearer Gleichungssysteme entwickelt und bewertet hauptsächlich

Floating-Point-Operationen.

P Reale Benchmarks hingegen sind konkrete Anwendungsprogramme, die für den

Kunden eine zentrale Rolle spielen. Sie werden für die zur Auswahl stehenden Rech-

ner übersetzt und anschließend wird die Ausführungszeit gemessen. Die Auswahl er-

folgt meist nach den kürzesten Rechenzeiten. Es können aber auch andere Kriterien

eine Rolle spielen, zum Beispiel der niedrigste Energieverbrauch oder die Anzahl der

Zugriffe auf einen Sekundärspeicher. Besonders bei der Verarbeitung von großen

Datenmengen (die nicht in die Caches passen) sind Benchmarks eine wichtige Be-

wertungsmethode.

Schon in den 80er-Jahren des vergangenen Jahrhunderts wurde es notwendig, Bench-

mark-Programme zu standardisieren. Die SPEC (Standard Performance Evaluation Co-

oporation) gründete sich als eine Kooperation verschiedener Unternehmen und legte 1989

erstmals zehn Programme als Benchmark fest. Deren Ausführungszeiten auf dem Prüf-

Kapitel 2åMCS101

Page 34: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

33

ling werden ins Verhältnis zu denen auf einem Standardrechner mit festgelegter Ausstat-

tung und Compilerversion gesetzt.

Sehr schnell stellte sich heraus, dass ein einziger Wert nicht geeignet ist, um ein System

adäquat in seiner Leistung zu beschreiben. Manche Systeme sind bei Floating-Point-Ope-

rationen, andere bei Integer-Rechnungen stark, wieder andere haben ihre Stärke beim

Transaktionsbetrieb. Die aktuelle1 SPEC-Benchmark für Prozessoren heißt CPU2006

und beinhaltet zwei verschiedene Programmsammlungen: CINT2006 mit 12 Program-

men, die den Schwerpunkt auf Integerberechnungen legen, und CFP2006 mit 17 Pro-

grammen, in denen Gleitkommaoperationen dominieren. Die SPEC-Benchmarks sind

heute das wichtigste und meist verwendete Mittel, um die Leistung eines Prozessors zu

messen.

Man sollte sich aber vor Augen halten, dass bei allen Benchmarks auch die Qualität der

Befehlsliste, die Implementierungsarchitektur, die Technologie (Taktrate), die Qualität

der Speicheranbindung und die Qualität der Compiler in die Bewertung eingehen. Com-

puterhersteller waren immer dazu verlockt, ihre Systeme optimal auf allgemein akzep-

tierte Benchmarks auszulegen. Daher ist es empfehlenswert, seine wichtigsten eigenen

Programme selbst auf den Maschinen zu testen.

K [35]Was versteht man unter einer Von-Neumann-Architektur?

K [12]Was unterscheidet die Harvard-Architektur von der Von-Neumann-Architektur?

K [3]Erläutern Sie die Begriffe CISC und RISC.

K [10]Durch welche Besonderheiten zeichnen sich digitale Signalprozessoren aus?

1 Stand 2011.

Die Wahl des richtigen Mikrocontrollers oder -prozessors ist nicht einfach. Krite-

rien, nach denen man angebotene Typen bewerten sollte, sind:

– im Controller verfügbarer Programm- und Datenspeicher

– implementierte Peripherie

– Verfügbarkeit und Produktionsvolumen

– Preis

– Bauform

– Verlustleistung

– verfügbare Dokumentation

– verfügbare Entwicklungsumgebung und Programmiersprache

– Rechenleistung

– vorhandene Erfahrungen mit ähnlichen Typen

Kapitel 2åMCS101

Page 35: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

34

3333Darstellung von Zahlen und Zeichen im MikrocomputerDarstellung von Zahlen und Zeichen im MikrocomputerDarstellung von Zahlen und Zeichen im MikrocomputerDarstellung von Zahlen und Zeichen im Mikrocomputer

In diesem Kapitel geht es um die Darstellung numerischer und nicht-numerischer Daten

in Mikroprozessorsystemen. Es ist relativ knapp gehalten, da Ihnen die Grundlagen be-

reits aus der Informatik oder aus der Digitaltechnik bekannt sein sollten.

Wir werden Aspekte der Zahlendarstellung und Dualarithmetik in den gebräuchlichen

CPUs ansprechen und die Grundlagen von Codes behandeln.

3.13.13.13.1ZahlendarstellungZahlendarstellungZahlendarstellungZahlendarstellung

Dem Nicht-Programmierer ist oft gar nicht bewusst, dass das im Alltag verwendete Dezi-

malsystem nur eines von unendlich vielen verschiedenen Zahlensystemen ist. Ganz all-

gemein gesagt, werden Zahlensysteme zur Darstellung quantitativer Merkmale von Din-

gen verwendet. Diese Systeme basieren auf Zeichen, aus denen Zahlen gebildet werden.

Allgemein gilt für die Zifferndarstellung natürlicher Zahlen in einem Stellenwertsystem

mit der Basis b:

Bei Computern sind folgende Stellenwertsysteme verbreitet:

P Dualsystem: Beim Dualsystem ist die Basis b = 2 und die Ziffern z stammen aus

{0, 1}. Beispielsweise ist eine Zahl Z = 1010,1dual = 10,5dezimal. Dieses Zahlensys-

tem ist für die Digital- und Mikrocomputertechnik von besonderer Bedeutung, da

hier nur zwei Zustände einer physikalischen Größe benötigt werden, um Zahlen dar-

zustellen. Ein Nachteil ist die für den Menschen unübersichtliche Ziffernfolge bei

der Darstellung langer Dualzahlen. Bei der Eingabe von Dualzahlen müssen diese

zur Unterscheidung von Dezimalzahlen gekennzeichnet werden. Dies geschieht

durch Hinzustellen der Basis, z. B. bei 1101(2).

P Oktalsystem: Hier werden drei Dualstellen zu einer Oktalstelle zusammengefasst.

Damit sind die Zahlen besser zu lesen und können kürzer geschrieben werden als im

Dualsystem. Die Basis ist b = 8 und die Ziffern z sind aus {0, 1, 2, 3, 4, 5, 6, 7}. Zum

Beispiel ist 101001dual = 51oktal (= 41dezimal), weil 101dual = 5oktal und 001dual = 1oktal.

Auch Oktalzahlen müssen durch Hinzustellen der Basis gekennzeichnet werden, z. B.

1257(8). Besonders in Programmiersprachen geschieht dies auch durch Voranstellen

von ‚@‘ oder Anfügen von ‚O‘, oder ‚Q‘, bei C auch durch Voranstellen einer füh-

renden Null.

P Hexadezimalsystem (Sedezimalsystem1): Hier sind vier Dualstellen zu einer Hexade-

zimalstelle zusammengefasst. Die Basis ist b = 16 und die Ziffern z sind aus {0, 1, 2,

1 „Sedezimal“ ist die korrekte, vollständig lateinische Bezeichnung. „Hexadezimal“ ist leider ge-bräuchlich, aber eigentlich falsch, denn „Hexa“ ist die griechische Vorsilbe für die Zahl 6.

1 2 1 01 2 1 0 1 2 1 0

0

... ...n nn n n n

ni

ii

z z z z z z b z b z b z b z b

z b

− −

=

= ⋅ + ⋅ + + ⋅ + ⋅ + ⋅

= ⋅∑

Kapitel 3åMCS101

Page 36: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

35

3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}. So lässt sich beispielsweise die Zahl 101011dual

als 2Bhexadezimal darstellen, denn 10dual = 2 hexadezimal und 1011dual = B hexadezimal. Die

hexadezimale Kurzschreibweise ist die übliche Darstellung binärer Information in

einem Rechner. Bei der Programmierung werden Hexadezimalzahlen durch Voran-

stellen von „$“, „0x“ oder Anfügen von „H“ oder „hex“ gekennzeichnet. Gelegent-

lich wird eine führende Null verwendet, wenn die Zahl mit einem Buchstaben be-

ginnt.

Die folgende Tabelle 3 veranschaulicht den Zusammenhang von Dezimal-, Dual-, Oktal-

und Hexadezimalzahlen für einige Werte.

Tabelle 3:Vergleich verschiedener Stellenwertsysteme

Zwei Bitpositionen werden aufgrund ihrer Position in der Informationsdarstellung mit

besonderen Namen belegt:

LSB: least significant bit (niederwertigstes Bit), kennzeichnet das Bit mit dem gerings-

ten Gewicht (20).

MSB: most significant bit (höherwertigstes Bit), kennzeichnet das Bit mit dem höchsten

Gewicht (2n).

DezimalDezimalDezimalDezimal DualDualDualDual OktalOktalOktalOktal HexadezimalHexadezimalHexadezimalHexadezimal

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

Kapitel 3åMCS101

Page 37: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

36

3.1.13.1.13.1.13.1.1Ganze ZahlenGanze ZahlenGanze ZahlenGanze Zahlen

Ganze Zahlen (integer) werden entweder als natürliche Zahlen behandelt (unsigned)

oder sie sind mit einem Vorzeichen behaftet (signed).

Für vorzeichenlose Zahlen ergibt sich entsprechend der Wortlänge n des Prozessors ein

Wertebereich von 0 bis 2n – 1. Die Werte der einzelnen Stellen sind dann wie bei einer

Dualzahl folgende:

B Beispiel:

Dezimalzahl: 87

Integer, 8 Bit Wortbreite, „unsigned byte“: 01010111

3.1.23.1.23.1.23.1.2Negative Zahlen, KomplementNegative Zahlen, KomplementNegative Zahlen, KomplementNegative Zahlen, Komplement

Für die Darstellung negativer Zahlen bieten sich folgende Realisierungsmöglichkeiten

an:

– Darstellung mit Betrag und Vorzeichen (engl. sign and magnitude)

– Komplement

– Aufsteigende Reihenfolge, wie bei Exponent/Charakteristik (hierzu später mehr)

In Mikrocomputern findet man fast ausschließlich die Komplementdarstellung (Tabelle

4). Man unterscheidet dabei das Einerkomplement (allgemein auch b–1-Komplement

genannt) und das weitaus gebräuchlichere Zweierkomplement (allgemein: b-Komple-

ment oder einfach nur Komplement). Worum handelt es sich dabei? Gegeben sei eine n-

stellige Zahl Z im Stellenwertsystem mit der Basis b. Dann ist die Darstellung des Kom-

plements von Z:

Tabelle 4:Darstellung des Einer- und

des Zweierkomplements

Die Zahl bn hat in jedem Zahlensystem stets die Form 10…00, das heißt, sie ist eine

Eins gefolgt von n Nullen. Die Zahl (bn – 1) hat die Form HH…HHHH, besteht also aus

n-mal der jeweils höchstwertigen Ziffer H.

2n–1 2n–2 … … 23 22 21 20

AllgemeinAllgemeinAllgemeinAllgemein DezimalDezimalDezimalDezimal DualDualDualDual

b-Komplement K(Z) b n – Z 10 n – Z 2 n – Z (Zweierkomplement)

(b–1)-Komplement K1(Z)

(b n – 1) – Z (10 n – 1) – Z (2 n – 1) – Z (Einerkomplement)

Kapitel 3åMCS101

Page 38: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

37

BFolgende Beispiele für Zahlen mit n = 8 Ziffern sollen dies zeigen:

Im Dualzahlensystem können die Komplemente auf sehr einfache, nämlich folgende

Weise berechnet werden:

BBeispiel:

BBeispiel:

Mit dem Zweierkomplement stellt man nun den negativen Wert der Ursprungszahl dar.

Konkret heißt das in diesem Beispiel: Will man die Zahl −5710 darstellen, so bildet man

das Zweierkomplement der Dualzahl von +5710.

BBeispiel:

Die Zahl Z = –1310 soll mit n = 5 Ziffern im Zweierkomplement dargestellt werden:

Die Zahl –1310 wird als Dualzahl in Zweierkomplementdarstellung bei einer Begren-

zung auf fünf Ziffern folglich als 10011 geschrieben.

Dual: bn = 1 0000 0000 Oktal: bn = 1 0000 0000

(bn – 1) = 1111 1111 Oktal: (bn – 1) = 7777 7777

Dezimal: bn = 1 0000 0000 Hex: bn = 1 0000 0000

(bn – 1) = 9999 9999 Hex: (bn – 1) = FFFF FFFF

Das Einerkomplement einer Dualzahl entsteht, indem jedes einzelne Bit inver-

tiert wird, das heißt, aus jeder 0 wird eine 1 und aus jeder 1 wird eine 0.

Aus der Zahl Z = 5710 = 0011 10012

entsteht das Einerkomplement K1(Z) = 1100 0110

Das Zweierkomplement einer Dualzahl entsteht, indem zu deren Einerkomple-

ment die Zahl 1 hinzuaddiert wird.

Aus der Zahl Z = 5710 = 0011 10012 entsteht zuerst das

Einerkomplement K1(Z) = 1100 0110 und durch Addition von 1

+ 0000 0001

das Zweierkomplement K(Z) = 1100 0111

Dual 5-stellig

1310 = 01101

bn 100000

Einerkomplement 10010

Zweierkomplement 10011

Kapitel 3åMCS101

Page 39: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

38

Mit diesem Wissen sind wir nun in der Lage eine Tabelle zu erstellen, in der wir die

Möglichkeiten der Darstellung negativer Zahlen gegenüberstellen. Dies ist in Tabelle 5

für Bitfolgen, die in einem Byte Platz finden, also für n = 8 Ziffern gemacht.

Tabelle 5:Interpretationsmöglich-

keiten von Bitfolgen mit8 Stellen

Der darstellbare Wertebereich ist für eine Dualzahl mit n Stellen 0 bis (2n – 1) (unsig-

ned) oder in Zweierkomplementdarstellung von –2n-1 bis +(2n–1 – 1). Durch die Wahl

des Zweierkomplements ergibt sich eine leichte Unsymmetrie, aber der Vorteil, eine

eindeutige Null zu besitzen1. Als Vorteil der Komplementdarstellung ergibt sich zudem,

dass das höchstwertige Bit ein Indikator für das Vorzeichen ist: MSB = 0 → Zahl ist

positiv, MSB = 1 → Zahl ist negativ.

Bereits Blaise Pascal hat im 18. Jahrhundert bei seiner mechanischen Rechenmaschine

die Subtraktion auf die Addition des Komplements zurückgeführt. Ersetzt man die Sub-

traktion x – y durch die Komplementaddition (das Komplement von y ist bn – y), ergibt

sich:

x – y → x + K(y) = x + (bn – y) = bn + x – y

Dabei stellt bn das Übertragsbit dar. Daraus wird klar, dass für diese Methode der Sub-

traktion immer eine feste Stellenzahl vorgegeben sein muss – was bei Mikrocomputern

durch die Wortbreite des Rechenwerks gegeben ist2.

Lassen Sie uns das an ein paar Beispielen ausprobieren. Im Folgenden ist jeweils links

die Addition zweier Dualzahlen dargestellt und auf der rechten Seite wird die Subtrak-

tion der gleichen Zahlen durch die Addition des Komplements realisiert. Vollziehen Sie

bitte die Berechnungen nach.

BitfolgeBitfolgeBitfolgeBitfolge Interpretation als Interpretation als Interpretation als Interpretation als unsigned-Zahlunsigned-Zahlunsigned-Zahlunsigned-Zahl

Interpretation als Interpretation als Interpretation als Interpretation als signed-Zahl nach dem signed-Zahl nach dem signed-Zahl nach dem signed-Zahl nach dem ZweierkomplementZweierkomplementZweierkomplementZweierkomplement

Interpretation als Interpretation als Interpretation als Interpretation als signed-Zahl mit Betrag signed-Zahl mit Betrag signed-Zahl mit Betrag signed-Zahl mit Betrag und Vorzeichen im MSBund Vorzeichen im MSBund Vorzeichen im MSBund Vorzeichen im MSB

0000 0000 0 0 0

0000 0001 1 1 1

0000 0010 2 2 2

… … … …

0111 1110 126 126 126

0111 1111 127 127 127

1000 0000 128 –128 –0

1000 0001 129 –127 –1

… … …

1111 1110 254 –2 –126

1111 1111 255 –1 –127

1 Auch beim Einerkomplement gibt es zwei Ausprägungen der Null: 000…00 und 111…112 Die Komplementaddition wäre in jedem Zahlensystem mit einer Basis b größer als 2 komplizierter als die „normale“ Subtraktion (probieren Sie es mal im Dezimalsystem). Deshalb gibt es diese Form der Rückführung der Subtraktion auf die Addition in der Praxis nur im Dualsystem.

Kapitel 3åMCS101

Page 40: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

39

BBeispiel:

Addition ganzer Zahlen (Zweierkomplement-Arithmetik)

Wir stellen fest: Alle Ergebnisse liegen im darstellbaren Bereich.

Hier liegen die Ergebnisse nur teilweise im darstellbaren Bereich! Bei den Rechnungen

links oben und rechts unten gab es einen arithmetischen Überlauf (engl. arithmetic over-

flow). Kriterium für einen solchen Überlauf ist: Die Vorzeichen der Operanden sind

gleich und das Vorzeichen des Ergebnisses ist verschieden davon. Digitaltechnisch aus-

gedrückt gilt:

Dabei bedeuten:

V: Flag für Überlauf (overflow)

A7: Bit des ersten Operanden (Zahl A) mit der Wertigkeit 27

B7: Bit des zweiten Operanden (Zahl B) mit der Wertigkeit 27

S7: Bit des Ergebnisses (Zahl S) mit der Wertigkeit 27

Mit dem englischen Begriff Flag ist allgemein eine binäre Variable gemeint, die im

Prozessor als Hilfsmittel zur Kennzeichnung bestimmter Zustände benutzt wird. Ein

Flag kann gesetzt, gelöscht oder ausgelesen werden.

Weitere arithmetische Flags sind:

N (negative): Dieses Flag entspricht dem Vorzeichen des Ergebnisses.

Z (zero): Das Flag ist 1, wenn das Ergebnis Null ist.

C (carry): Das Flag ist 1, wenn ein Übertrag in die nächste Stelle erfolgt.

Die diversen Flags werden meist zusammengefasst zu einem Statusregister, dem CCR

(engl. condition code register oder flag register), das neben den bereits genannten Flags

noch weitere enthält. Doch dazu werden Sie in Kapitel 4 noch mehr erfahren.

0 0 1 1 0 0 1 1 +51 0 0 1 1 0 0 1 1 +51

+ 0 0 1 0 1 0 1 0 +42 + 1 1 0 1 0 1 1 0 –42

0 1 0 1 1 1 0 1 +93 0 0 0 0 1 0 0 1 +9

1 1 0 0 1 1 0 1 –51 1 1 0 0 1 1 0 1 –51

+ 0 0 1 0 1 0 1 0 +42 + 1 1 0 1 0 1 1 0 –42

1 1 1 1 0 1 1 1 –9 1 0 1 0 0 0 1 1 –93

0 1 0 1 0 1 1 0 +86 0 1 0 1 0 1 1 0 +86

+ 0 1 1 1 0 0 1 0 +114 + 1 0 0 0 1 1 1 0 –114

1 1 0 0 1 0 0 0 –56 !! 1 1 1 0 0 1 0 0 –28

1 0 1 0 1 0 1 0 –86 1 0 1 0 1 0 1 0 –86

+ 0 1 1 1 0 0 1 0 +114 + 1 0 0 0 1 1 1 0 –114

0 0 0 1 1 1 0 0 +28 0 0 1 1 1 0 0 0 +56 !!

V A7 B7 S7∧ ∧( ) A7 B7 S7∧ ∧( )∨=

Kapitel 3åMCS101

Page 41: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

40

Überprüfen Sie zunächst Ihre Kenntnisse im Umgang mit Dualzahlen mit folgenden

Kontrollfragen:

K [9] Geben Sie die Dezimalzahl 78 im Dualsystem sowie deren Zweierkomplement jeweils

mit einer Wortbreite von 8 Bit an.

K [17] Addieren Sie die Dezimalzahlen 78 und 13 im dualen Zahlensystem mit 8 Bit Wort-

breite.

K [2] Führen Sie die folgenden Berechnungen im dualen Zahlensystem bei 8 Bit Wortbreite

mit Verwendung der B-Komplement-Darstellung durch. Welche Schlussfolgerungen

ziehen Sie aus den Ergebnissen?

K [30] Wandeln Sie die Dualzahl 1100 1011 0100 11102 in eine Hexadezimalzahl um.

3.1.33.1.33.1.33.1.3FestkommazahlenFestkommazahlenFestkommazahlenFestkommazahlen

Bei der Festkommadarstellung (Festpunktdarstellung1, engl. fixed point notation) gibt

es ein gedachtes, nicht gespeichertes Komma, das den ganzzahligen Anteil von den

Brüchen trennt. Seine Lage müssen Sie sich zwischen den Stellen 20 und 2 –1 denken.

Die Werte der einzelnen Stellen sind dann hinter dem Komma kleiner als 1, nämlich !ß2,

!ß4, !ß8 und so weiter. Allgemein gilt für die Ziffern folgende Wertigkeit:

Bei einer vorgegebenen Gesamtstellenzahl steht das Komma innerhalb einer Bitfolge

immer an der gleichen Stelle. Wie weit die erste von Null verschiedene Ziffer vom

Komma entfernt steht, hängt von der Größe der Zahl und anderen Festlegungen ab.

Wegen der endlichen Stellenzahl können reelle Zahlen nur unvollkommen dargestellt

werden. Man kann nicht die gesamte Zahlengerade, sondern nur einzelne Punkte auf der

Zahlengeraden repräsentieren. Daher ergeben sich Rundungsfehler bei der Berechnung

und sogar schon bei der Umwandlung einer Dezimalzahl in eine Dualzahl.

Ein Nachteil der Festkommadarstellung liegt im begrenzten Zahlenbereich: Bei sehr

kleinen Zahlen gehen durch die Rundung Stellen verloren, sehr große Zahlen sind nicht

mehr darstellbar.

DezimalDezimalDezimalDezimal DualDualDualDual DezimalDezimalDezimalDezimal DualDualDualDual DezimalDezimalDezimalDezimal DualDualDualDual

11 + 11 127

– 127 – 1 + 6

1 Im Deutschen wird das Komma als Trennung zwischen ganzzahligem und gebrochenem Anteil einer Zahl verwendet, alle Programmiersprachen aber verwenden hier den Punkt.

2n–1 22 21 20 2–1 2–2 2–m

Kapitel 3åMCS101

Page 42: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

41

BBeispiele für die Umwandlung von Dualzahlen mit acht Stellen, davon drei hinter dem

Komma:

Dualzahl: 00101,011

dezimal: 5,375 (= 4 + 0 + 1 + 0 + 1/4 + 1/8)

Dezimalzahl: 8,9 → 8,875 (= 8 + 0 + 0 + 0 + 1/2 + 1/4 + 1/8)

dual: 01000,111

3.1.43.1.43.1.43.1.4GleitkommazahlenGleitkommazahlenGleitkommazahlenGleitkommazahlen

Reelle Zahlen werden in der Regel in Gleitkommadarstellung (Gleitpunktdarstellung,

engl. floating point notation) bearbeitet.

Bei der Gleitkommadarstellung wird die Zahl so gespeichert, dass das Komma immer

zur ersten von Null verschiedenen Ziffer gleitet. Dies erreicht man durch Abspalten

einer entsprechenden Potenz der Basis:

Z = Mantisse · BasisExponent

BBeispiel im Dezimalsystem:

Z = 42,5456 → 0,425456. 102 → Mantisse = +425456 Exponent = +2

Die Mantisse hat die Form „0,xxxxxx …“, wobei man die Null vor dem Dezimalkomma

nicht zu speichern braucht. Alternativ kann unter der gleichen Mantisse auch die Form

„1,xxxxxx…“ verstanden werden.

Da die Basis bekannt ist, kann die Zahl durch die Mantisse M und den Exponenten E

eindeutig dargestellt werden. Man nennt diese Form halblogarithmische Darstellung

oder normalisierte Darstellung. Die Anpassung der Gleitkommazahl an die angegebene

Darstellungsform wird als Normalisieren bezeichnet.

Für Mantisse und Exponent wird jeweils eine feste Stellenzahl vorgegeben, in der auch

das Vorzeichen von Mantisse und Exponent untergebracht werden müssen. Am üblichs-

ten ist Betrags-Vorzeichen-Darstellung der Mantisse und die Darstellung des Exponenten

mit verschobenem Wertebereich (auch Charakteristik genannt). Der Wert der Charakte-

ristik C ist dann immer größer als Null, sodass ein zusätzliches Bit für das Vorzeichen des

Exponenten eingespart wird. Sie stellt eine einfache Verschiebung des Wertebereichs um

den Bias V dar und hat keinen Einfluss auf die Berechnung. Die Wertebereiche können

beispielsweise folgende sein:

Umwandlung einer Dezimalzahl in eine Gleitkomma-Dualzahl:

1. Methode:

– Getrennte Umwandlung des ganzzahligen und des gebrochenen Anteils

– Verschieben des Kommas bis zur ersten von Null verschiedenen Ziffer (Normalisie-

rung)

Wertebereich Exponent E: –128 … 127

Charakteristik (C = E + V) mit V = 128: 0 … 255

Kapitel 3åMCS101

Page 43: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

42

B Beispiel:

(8 Stellen Mantisse, 4 Stellen Exponent, V = 8)

27,75dez = 11011,11dual � M = 0,1101111, E = 0101

� M = 0,1101111, C = 1101

2. Methode:

– Abspalten der nächstgrößeren Zweierpotenz: Man dividiert die Dezimalzahl solange

durch 2, bis das Ergebnis kleiner 1 ist.

– Getrennte Umwandlung von Mantisse (echter Bruch) und Exponent (ganzzahlig).

B Beispiel:

(8 Stellen Mantisse, 4 Stellen Exponent, V = 8)

27,75dez: Fünfmaliges Dividieren durch 2 liefert als Ergebnis 0,8671875

� M = 0,8671875, E = 5

� M = 0,1101111, E = 0101

� M = 0,1101111, C = 1101

Eigenschaften von Gleitkommazahlen:

P Die Gleitkommazahl ist immer auf die Anzahl der Mantissenstellen genau. Bei einer

32-Bit-Mantisse (einschließlich Vorzeichen) sind das 31 Dualstellen beziehungs-

weise 9 Dezimalstellen. Reelle Zahlen werden also immer auf die nächstgelegene

Gleitkommazahl gerundet.

P In Gleitkommadarstellung kann man bei fester Stellenzahl einen viel größeren Zah-

lenbereich darstellen als in Festkommadarstellung.

P Dummerweise klafft durch das Runden gerade um die Null herum eine „Lücke“, was

beim Programmieren insofern Schwierigkeiten macht, als dass man ein Rechener-

gebnis niemals auf Null abprüfen darf, sondern immer eine untere Schranke einfüh-

ren muss. Alles, was vom Betrag kleiner als die Schranke ist, wird dann als nullwer-

tig betrachtet.

IEEE-754-Floating-Point-Standard

Die IEEE1 hat zwei Gleitkommaformate standardisiert, die bei vielen Rechenanlagen

implementiert sind. Es gibt zwei Formate: einfache und doppelte Genauigkeit.

P Einfache Genauigkeit (engl. single precision), 32 bit: 1 Bit Vorzeichen, 8 Bit Charak-

teristik, 23 Bit Mantisse.

Das Vorzeichen-Bit gibt an, ob die Zahl positiv (Vz = 0) oder negativ (Vz = 1) ist.

Die Mantisse in der normalisierten Form führt als höchstwertigstes Bit stets eine 1.

Weil dies für alle Zahlen gleich ist, wird dieses Bit fortgelassen und als hidden bit

1 Institute of Electrical and Electronics Engineers: ein weltweiter Berufsverband von Ingenieuren der Elektrotechnik und Informatik mit Sitz in New York.

Vz (1 bit) Charakteristik (8 bit) Mantisse (23 bit)

Kapitel 3åMCS101

Page 44: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

43

automatisch zur Mantisse hinzugezählt. Der Exponent E wird bezüglich der Basis 2

angegeben. Der zulässige Wertebereich für die Charakteristik ist 1 ≤ C ≤ 254, der

Exponent wird durch C – 127 berechnet (Bias). Diese Darstellung ist für alle Zahlen

im zulässigen Bereich mit Ausnahme der Null möglich. Die Null wird durch eine

nicht normalisierte Gleitkommazahl angegeben, bei der die Mantisse den Wert Null

annimmt. Mit Ausnahme der Null nimmt also die gemäß IEEE-754 gebildete Zahl

den Wert

Z = (–1)Vz · 2C–127 · (1,0 + 0,M) an.

Hier gibt es außerdem vier spezielle Zahlenwerte:

Tabelle 6:Besondere Zahlenwerte des IEEE.754-Standards für einfache Genauigkeit

P Doppelte Genauigkeit (engl. double precision), 64 bit: 1 Bit Vorzeichen, 11 Bit Cha-

rakteristik, 52 Bit Mantisse. Auch hier gibt es vier spezielle Zahlenwerte:

Tabelle 7:Besondere Zahlenwerte des IEEE.754-Standards für doppelte Genauigkeit

3.1.53.1.53.1.53.1.5Gleitkomma-ArithmetikGleitkomma-ArithmetikGleitkomma-ArithmetikGleitkomma-Arithmetik

Auch hier gilt wieder, dass die gleichen Rechenverfahren verwendet werden, die wir in

der Schule gelernt haben – nur angewendet auf Dualzahlen.

Bei Addition und Subtraktion müssen beide Zahlen den gleichen Exponenten besitzen.

Dazu werden die Exponenten der beiden Operanden angeglichen, indem die Mantisse

des Operanden mit dem kleinerem Exponenten verschoben wird. Dann erfolgt die Addi-

tion oder Subtraktion der Mantissen und anschließend das Normalisieren des Ergebnis-

ses.

Bei Multiplikation und Division werden die Mantissen multipliziert beziehungsweise

dividiert und die Exponenten addiert beziehungsweise subtrahiert. Anschließend wird

wieder normalisiert.

Charakteristik Charakteristik Charakteristik Charakteristik C Mantisse Mantisse Mantisse Mantisse M ZahlenwertZahlenwertZahlenwertZahlenwert

000…000 Beliebig (-1) Vz · 0,M · 2–126

1 < C < 2n –1 Beliebig (-1) Vz · 1,M · 2C–127

111…111 = 0 (-1) Vz · ?

111…111 ? 0 not a number (NaN)

Charakteristik Charakteristik Charakteristik Charakteristik C Mantisse Mantisse Mantisse Mantisse M ZahlenwertZahlenwertZahlenwertZahlenwert

000…000 Beliebig (-1) Vz · 0,M · 2-1022

1 < C < 2n -1 Beliebig (-1) Vz · 1,M · 2C-1023

111…111 = 0 (-1) Vz · ?

111…111 ? 0 not a number (NaN)

Kapitel 3åMCS101

Page 45: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

44

B Beispiel für eine Gleitkomma-Addition im Dualsystem:

(6 Stellen Mantisse, 4 Stellen Charakteristik)

Durch die begrenzte Stellenzahl entstehen unter Umständen Rundungsfehler beim

Angleichen der Operanden. Eine unterschiedliche Reihenfolge beim Addieren oder

Multiplizieren hat somit unterschiedliche Ergebnisse zur Folge. Assoziativität und Dis-

tributivität gelten nicht mehr:

B Beispiel:

Assoziativität � a + (b + c) = (a + b) + c

a = 0,23 · 103 b = 0,23 · 102 c = 0,23 · 102

a + (b + c) =

0,23 · 102 + 0,23 · 102 = 0,46 · 102

0,46 · 102 + 0,23 · 103 = 0,05 · 103 + 0,23 · 103 = 0,28 · 103

(a + b) + c =

0,23 · 102 + 0,23 · 103 = 0,02 · 103 + 0,23 · 103 = 0,25 · 103

0,25 · 103 + 0,02 · 103 = 0,27 · 103

Tatsächlich äußert sich die Beschränkung der Stellenzahl in der Realität nicht so stark

wie in diesem Beispiel, jedoch sind in manchen Fällen spezielle numerische Verfahren

notwendig, um bessere Ergebnisse zu erhalten.

3.1.63.1.63.1.63.1.6BCD-ZahlenBCD-ZahlenBCD-ZahlenBCD-Zahlen

Die Abkürzung BCD steht für Binary coded decimal. Bei der BCD-Darstellung wird

jede einzelne Ziffer einer ganzzahligen Dezimalzahl durch eine vier Bit breite binäre

Zahl, eine sogenannte Tetrade dargestellt. Die Binärwerte der einzelnen Ziffern werden

einfach hintereinander gesetzt. Zum Beispiel wird die Zahl 1754dez als 0001 0111 0101

0100BCD dargestellt. Um auch negative Zahlen zu erfassen, muss beispielsweise ein

eigenes Vorzeichen-Bit verwendet werden.

Für die Dezimalziffern 0 bis 9 werden nur die dualen Werte 0000 bis 1001 verwendet.

Die verbleibenden mit vier Bit darstellbaren Werte 1010 bis 1111 stellen keine gültigen

BCD-Zahlen dar. Sie werden daher als Pseudotetraden bezeichnet.

Vz Char Mantisse

010,11 + 0 1001 101100

111,01 0 1010 111010

Angleichen: 0 1010 010110

0 1010 111010

Addieren: 1 010000 (es entsteht ein Übertrag)

Normalisieren 0 1011 101000

a + (b + c) ≠ (a + b) + c !

a · (b · c) ≠ (a · b) · c !

(a + b) · c ≠ (a · c) + (b · c) !

Kapitel 3åMCS101

Page 46: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

45

Werden in einem Byte zwei Dezimalziffern gespeichert, so spricht man von einer ge-

packten BCD-Zahl. Wird eine BCD-Ziffer nur in den niederwertigen vier Bits eines

Byte abgelegt und die restlichen vier Bits mit Nullen aufgefüllt, so spricht man von einer

ungepackten BCD-Zahl.

Heutige Prozessoren unterstützen BCD-Arithmetik entweder gar nicht oder nur als

gepackte 8-Bit-Zahlen und es werden nur 8-Bit-Addition und -Subtraktion unterstützt.

Manche Prozessoren besitzen Befehle zur schnellen Wandlung von 80-Bit-BCD-Zahlen

in entsprechende Binärzahlen. Die eigentlichen Berechnungen werden jedoch immer im

Binärsystem durchgeführt. Dagegen findet man die BCD-Darstellung vielfach bei Ana-

log-Digital-Wandlern oder bei Messinstrumenten mit Computerschnittstelle.

K [27]Ein Mikroprozessor habe zur Darstellung ganzer Zahlen eine Wortlänge von 8 Bit. Wel-

ches sind die jeweils kleinsten und größten darstellbaren Zahlen? Geben Sie die Werte-

bereiche dezimal und dual für folgende Formate an:

a) vorzeichenlos (unsigned),

b) Vorzeichen und Betrag,

c) Zweierkomplement,

d) Einerkomplement,

e) vorzeichenloses BCD-Format.

K [25]Wandeln Sie den Dualzahlenbruch 10110,011 in eine Dezimalzahl um.

Bei Computern verbreitete Stellenwertsysteme sind:

P Dualsystem: Basis b = 2 und a aus {0,1}

P Oktalsystem: Basis b = 8 und a aus {0,1,2,3,4,5,6,7}

P Hexadezimalsystem: Basis b = 16 und a aus {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}.

(Zusammenfassung von vier Dualstellen zu einer Hexadezimalstelle.)

Ganze Zahlen (integer) werden entweder als natürliche Zahlen behandelt (unsigned)

oder sie sind mit einem Vorzeichen behaftet (signed). Für die Darstellung negativer

Zahlen findet man in Mikrocomputern fast ausschließlich die Komplementdarstel-

lung (Zweierkomplement). Damit kann die Subtraktion auf die Addition des Kom-

plements zurückgeführt werden.

Reelle Zahlen werden in der Regel in Gleitkommadarstellung bearbeitet. Dabei wird

die Zahl so gespeichert, dass das Komma immer zur ersten von Null verschiedenen

Ziffer gleitet. Dies erreicht man durch Abspalten einer entsprechenden Potenz der

Basis:

Z = Mantisse · BasisExponent

Der IEEE-754-Standard kennt zwei Formate von Gleitkommazahlen: Einfache

Genauigkeit mit 32 bit und doppelte Genauigkeit mit 64 bit.

Bei der BCD-Darstellung (Binary coded decimal) wird jede einzelne Ziffer einer

ganzzahligen Dezimalzahl durch eine vier Bit breite binäre Zahl dargestellt. Dabei

bleiben sechs Werte als Pseudotetraden ungenutzt.

Kapitel 3åMCS101

Page 47: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

46

K [41] Gegeben sei die Gleitkommazahl 0000 1110 1111 1111 1111 1111 1111 1111 im IEEE

Format (einfache Genauigkeit). Ermitteln Sie den Wert des Exponenten und geben Sie

ihn als Dezimalzahl an.

3.23.23.23.2CodesCodesCodesCodes

Ein Code ist die Vorschrift für die eindeutige Zuordnung (= Codierung) der Zeichen

eines Zeichenvorrats (Objektmenge) zu den Zeichen eines anderen Zeichenvorrats (Bild-

menge). Häufig wird auch nur die Bildmenge als Code bezeichnet. Zweck der Codierung

ist grundsätzlich die Anpassung der Nachricht an technische Systeme. Die Codierung

ändert nur die Darstellungsform einer Nachricht, nicht ihre Bedeutung.

Hier werden wir nur Binärcodes behandeln, weil sie in der Technik eine besonders

wichtige Rolle spielen. Die Symbole des Codealphabets sind dann die Binärzeichen

{0,1} und die Codeworte sind Binärworte beziehungsweise Dualzahlen.

Zur Codierung aller Zeichen einer Objektmenge sind Codewörter mit einer bestimmten

Anzahl von Binärzeichen nötig. Mit einer Stellenzahl (= Wortlänge) von n können

M = 2n verschiedene (gleichlange) Codewörter gebildet werden. Umgekehrt sind zur

Codierung von M Zeichen also Codeworte der Länge

n = ld (M) (ld = logarithmus dualis, Zweierlogarithmus)

nötig. Das Ergebnis für n muss natürlich auf die nächste ganze Zahl aufgerundet werden.

Ist M keine Zweierpotenz, können mit n Stellen mehr Codeworte gebildet werden als

benötigt werden. Die nicht verwendeten Codeworte heißen Pseudowörter. Die Code-

wortlänge wird oft als Coderahmen bezeichnet.

Es gibt auch Codes, bei denen die Codewortlänge kleiner als ld(M) ist. Die Codeworte

sind dann doppelt belegt und Umschaltzeichen ordnen den nachfolgenden Codeworten

die Belegung zu.

Die Gründe für eine Codierung sind vielfältig:

– Geeignete Nachrichtendarstellung für die technische Verarbeitung

– Ökonomische Darstellung von Informationen (bezüglich Übertragungsgeschwindig-

keit oder Speicherplatzbedarf)

– Sicherung der Information gegen Verfälschung (durch Übertragungs- oder Verarbei-

tungsfehler)

– Schutz der Informationen vor unbefugtem Zugriff (Verschlüsselung, Kryptologie)

3.2.13.2.13.2.13.2.1Numerische CodesNumerische CodesNumerische CodesNumerische Codes

Einige der hier vorgestellten numerischen Codes verlieren ihre Bedeutung mit dem

Fortschreiten der technischen Entwicklung. Sie wurden entworfen, um beim Bau von

Rechenanlagen elektrische oder elektronische Komponenten zu sparen. Die Namen der

Codes sollte man aber zumindest einmal gehört haben.

Kapitel 3åMCS101

Page 48: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

47

Dualcode

Der Dualcode ist ein reiner Binärcode, der einfach der Zahlendarstellung im Dualsys-

tem entspricht. Es handelt sich um eine wortorganisierte binäre Codierung. Die zu-

grunde liegende Arithmetik ist einfach, eine Umcodierung bei Ein- und Ausgabe oder

Übertragung ist relativ schwierig.

BCD-Codes

Wie Sie bereits gesehen haben, wird bei einem BCD-Code jede Ziffer einer Dezimal-

zahl unabhängig codiert, es handelt sich also um eine ziffernorganisierte binäre Codie-

rung. Dabei entsteht eine gemischte Darstellung: Die Ziffernstruktur der Objektmenge

bleibt erhalten und jeder Dezimalziffer wird ein binäres Codewort zugeordnet.

Die korrekte Bezeichnung des bereits behandelten BCD-Codes lautet 8-4-2-1-Code.

Jede Stelle der Tetrade besitzt ein bestimmtes Gewicht (8-4-2-1). Die Summe aus allen

Dualziffern, jeweils multipliziert mit ihrem Gewicht, ergibt den Wert der codierten

Dezimalzahl, z. B.: 0101 0 · 8 + 1 · 4 + 0 · 2 + 1 · 1 = 5

Andere vierstellige Binärcodes bezeichnet man allgemein als tetradische Codes.

Einschrittige Codes

Man unterscheidet einschrittige und mehrschrittige Codes. Der oben angegebene BCD-

Code ist mehrschrittig, weil sich zwei benachbarte Codewörter teilweise um mehr als

ein Bit unterscheiden. Bei Abtastvorrichtungen für die Längenmessung oder bei der

Analog-Digital-Wandlung gibt es mit solchen Codes gravierende Fehlentscheidungen,

falls Abtastung und Signalwechsel gleichzeitig erfolgen. Bei einschrittigen Codes

unterscheiden sich benachbarte Codeworte hingegen nur in einem einzigen Bit. Bei-

spiele für solche Codes sind der Gray-Code, der Glixon-Code oder der O’Brien-Code.

Abbildung 12:Vergleich Dualcode (mehr-schrittig) und Gray-Code (einschrittig)

Weitere Codes wurden für andere Eigenschaften konstruiert, z. B. für einfache Addi-

tion, Subtraktion oder Rundung. Für die Anwendung in der Datenübertragung eignet

sich der Exzess-3-Code, auch Stibitz-Code genannt. Die Tabelle 8 zeigt einige tetradi-

sche Codes im Vergleich.

Dualcode (mehrschrittig) Gray-Code (einschrittig)

Kapitel 3åMCS101

Page 49: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

48

Tabelle 8:Vergleich tetradischer

Codes

m-aus-n-Code

Ein Code mit dem Coderahmen n, dessen Nutzwörter immer m Bits besitzen, die auf 1

gesetzt sind, heißt m-aus-n-Code. Die folgende Tabelle zeigt einige bekannte m-aus-n-

Codes.

Tabelle 9:Vergleich verschiedener

m-aus-n-Codes

3.2.23.2.23.2.23.2.2Alphanumerische CodesAlphanumerische CodesAlphanumerische CodesAlphanumerische Codes

Erste Codes dieser Art wurden entwickelt, um Texte mithilfe von Fernschreibern zu

übermitteln. Die Notwendigkeit der Entwicklung umfangreicherer Codes entstand mit

dem Anschluss dieser Fernschreiber an Digitalrechner. Neuere alphanumerische Codes

haben Wortlängen von 16 Bit oder mehr.

DezimalDezimalDezimalDezimal O’Brien O’Brien O’Brien O’Brien CodeCodeCodeCode

Gray-CodeGray-CodeGray-CodeGray-Code Glixon- Glixon- Glixon- Glixon- CodeCodeCodeCode

BCD-DBCD-DBCD-DBCD-Dual-ual-ual-ual-codecodecodecode(8421-(8421-(8421-(8421-Code)Code)Code)Code)

BCD-BCD-BCD-BCD-Aiken-Aiken-Aiken-Aiken-Code Code Code Code

BCD- BCD- BCD- BCD- Exzess-3-Exzess-3-Exzess-3-Exzess-3-CodeCodeCodeCode(Stibitz-(Stibitz-(Stibitz-(Stibitz-Code)Code)Code)Code)

0 0001 0000 0000 0000 0000 0011

1 0011 0001 0001 0001 0001 0100

2 0010 0011 0011 0010 0010 0101

3 0110 0010 0010 0011 0011 0110

4 0100 0110 0110 0100 0100 0111

5 1100 0111 0111 0101 1011 1000

6 1110 0101 0101 0110 1100 1001

7 1010 0100 0100 0111 1101 1010

8 1011 1100 1100 1000 1110 1011

9 1001 1101 1000 1001 1111 1100

DezimalDezimalDezimalDezimal 2-aus-5-Code2-aus-5-Code2-aus-5-Code2-aus-5-Code 1-aus-10-Code1-aus-10-Code1-aus-10-Code1-aus-10-Code Biquinär-CodeBiquinär-CodeBiquinär-CodeBiquinär-Code

0 00011 0000000001 1000001

1 00101 0000000010 1000010

2 00110 0000000100 1000100

3 01001 0000001000 1001000

4 01010 0000010000 1010000

5 01100 0000100000 0100001

6 10001 0001000000 0100010

7 10010 0010000000 0100100

8 10100 0100000000 0101000

9 11000 1000000000 0110000

Kapitel 3åMCS101

Page 50: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

49

An dieser Stelle sollen nur die wichtigsten alphanumerischen Codes mit Ihren wesent-

lichen Eigenschaften kurz aufgezählt werden:

7-Bit ASCII (American Standard Code for Information Interchange, auch CCITT Nr. 5)

Insgesamt 128 Zeichen, davon 96 Schriftzeichen und 32 Steuerzeichen. Zwölf Schrift-

zeichen können national anders belegt werden.

8-Bit ISO/IEC 8859 Teil 1 (auch ANSI oder DIN 66303)

Insgesamt 256 Zeichen, davon 192 Schriftzeichen und 64 Steuerzeichen. Entspricht

dem ASCII-Code mit Erweiterungen und deckt die westeuropäischen Sprachen ab.

16-Bit Unicode

Insgesamt 65536 Zeichen, von denen die ersten 256 Zeichen mit ISO/IEC 8859 Teil 1

identisch sind. Im Unicode sind die Schriftzeichen der wichtigsten lebenden Sprachen

eindeutig darstellbar.

32-Bit UCS (universal character set) ISO/IEC 10646

Die ersten 256 Zeichen sind mit ISO/IEC 8859 Teil 1 identisch, die ersten 65536 Zei-

chen sind mit Unicode identisch. Im UCS sind alle Schriftzeichen aller lebenden und

toten Sprachen eindeutig darstellbar.

K [4]Was sind mehrschrittige und einschrittige Binärcodes?

K [19]Was versteht man unter einem alphanumerischen Code? Geben Sie Beispiele mit Wort-

breite und Anzahl der darstellbaren Zeichen an.

Ein Code ist die Vorschrift für die eindeutige Zuordnung (= Codierung) der Zeichen

eine Zeichenvorrats (Objektmenge) zu den Zeichen eines anderen Zeichenvorrats

(Bildmenge).

Bei Binärcodes sind die Symbole des Codealphabets die Binärzeichen {0,1}. Der

Dualcode entspricht der Zahlendarstellung im Dualsystem. Bei BCD-Codes (binary

coded decimal) wird jede Ziffer einer Dezimalzahl unabhängig codiert.

Bei einschrittigen Codes unterscheiden sich benachbarte Codeworte nur in einem

einzigen Bit. Beispiele hierfür sind der Gray-Code, der Glixon-Code oder der

O'Brien-Code.

Alphanumerische Codes sind Binärcodes für die Darstellung von Buchstaben, Zif-

fern und Sonderzeichen. Der immer noch wichtigste Vertreter ist der ASCII-Code

mit 7 Bit.

Kapitel 3åMCS101

Page 51: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

50

4444Innerer Aufbau eines MikrocomputersInnerer Aufbau eines MikrocomputersInnerer Aufbau eines MikrocomputersInnerer Aufbau eines Mikrocomputers

Im ersten Kapitel wurde bereits die von John von Neumann entwickelte Modellvorstel-

lung eines Rechners mit seinen vier Funktionsblöcken kurz angerissen. Nachdem wir

dort schon auf verschiedene Architekturmerkmale eingegangen sind, wollen wir in die-

sem Kapitel die Funktionsweise des Rechenwerks und des Leitwerks näher besprechen.

Wir beschränken uns dabei stets auf die Von-Neumann-Architektur. Bis auf die bereits

besprochenen Unterschiede sind die Komponenten anderer Architekturen aber sehr ähn-

lich aufgebaut.

Damit die einzelnen Komponenten leichter zu unterscheiden sind, werden wir ein Mik-

rocomputer-System betrachten, bei dem Prozessor, Speicher usw. als getrennte Bau-

steine realisiert sind. Diese Sicht kann man prinzipiell auch bei einem Mikrocontroller

beibehalten, der ebenfalls aus diesen Komponenten besteht – nur befinden sie sich hier

alle auf einem Chip. Auf den Speicher und die Ein- und Ausgabe werden wir im folgen-

den Kapitel eingehen. Trotzdem werden wir in diesem Kapitel schon darauf eingehen,

auf welche Weise der Prozessor auf Daten im Speicher zugreift. Dies werden Sie im

wichtigen Kapitel zu den Adressierungsarten sehen.

4.14.14.14.1RechenwerkRechenwerkRechenwerkRechenwerk

Das Rechenwerk (Abbildung 13) besteht aus der ALU und zusätzlichen Komponenten,

um logische Verknüpfungen zu bilden (Und, Oder, Exklusiv-Oder, Komplementbil-

dung, Schiebeoperationen). Typisch für das Konzept des Von-Neumann-Rechners ist

die geringe Zahl von Registern, wobei der Akkumulator das einzige Allzweckregister

darstellt. Der Akkumulator ist an jeder Berechnung beteiligt. Er enthält einen Operan-

den und nimmt danach immer das Ergebnis auf, daher sein Name. Der zweite Operand

wird während der Berechnung direkt über den Datenbus in ein Eingangsregister, das

Operandenregister, geliefert. Er stammt entweder direkt aus dem Hauptspeicher oder

aus dem Befehlsregister. Manche Systeme besitzen auch mehrere Akkumulatoren.

Abbildung 13:Grundsätzlicher Aufbau

des Rechenwerks

Datenbus

AkkumulatorOperanden-

register

Befehlsregister

Steuerung

ALU

Kapitel 4åMCS101

Page 52: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

51

Das Rechenwerk wird vom Leitwerk aus gesteuert. Diese Ablaufsteuerung wählt nicht

nur die jeweils gewünschte Arithmetik- oder Logikfunktion aus, sondern steuert auch

den Bus und die Register. So kann z. B. eine Multiplikation auf mehrere Additionen zu-

rückgeführt werden.

Das Rechenwerk ist auch für Vergleichsoperationen zuständig. Dabei werden durch

Subtraktion der beiden Operanden die Flags gesetzt. Schon am Zero-Flag und am Nega-

tiv-Flag (auch Sign-Flag genannt) können die meisten Vergleichsergebnisse abgelesen

werden. Anhand der Flags wird bei bedingten Sprungbefehlen im Programmablauf ent-

schieden, ob gesprungen wird oder nicht. Das Statusregister mit seinen Flags bildet zu-

dem die Kommunikationsschnittstelle zwischen Rechenwerk und Leitwerk.

4.24.24.24.2Leitwerk (Leitwerk (Leitwerk (Leitwerk (Steuerwerk)Steuerwerk)Steuerwerk)Steuerwerk)

Wie Sie schon erfahren haben, kann die CPU nur elementare Befehle bearbeiten, die

fest verdrahtet sind. Jedes Programm besteht also aus einer Folge solch elementarer

Befehle, den Maschinenbefehlen. Im Folgenden werden Sie etwas detaillierter sehen,

wie Befehle in der CPU bearbeitet werden und welche Phasen dabei durchlaufen wer-

den.

4.2.14.2.14.2.14.2.1BefehlszyklusBefehlszyklusBefehlszyklusBefehlszyklus

Sehen Sie sich Abbildung 14 an, welche den prinzipiellen Ablauf beim Bearbeiten eines

Befehls zeigt.

Abbildung 14:Prinzipieller Ablauf beim Bearbeiten eines Befehls (Befehlszyklus)

Die Befehle stehen im Speicher. Zu Beginn des Programms wird der Befehlszähler mit

der Adresse des ersten auszuführenden Befehls geladen.

Befehl holen

Befehl decodieren

Befehl ausführen

Sprungbefehl?

Befehlszähler auf Sprungadresse setzten

Befehlszählererhöhen

Kapitel 4åMCS101

Page 53: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

52

Anschließend wird der folgende Befehlszyklus von der CPU ständig durchlaufen:

P Im Befehlsregister befindet sich jeweils der aktuell zu bearbeitende Befehl. Der Be-

fehlsdecoder entschlüsselt den Befehl und erzeugt die zur Ausführung notwendigen

Hardware-Steuersignale.

P Die Adresse des nächsten auszuführenden Befehls steht in einem speziellen Register

des Leitwerks, dem Befehlszähler. Das Leitwerk weiß jederzeit, welcher Befehl als

nächster auszuführen ist.

P Üblicherweise stehen aufeinander folgende Befehle in aufeinander folgenden Spei-

cherplätzen, der zuerst auszuführende Befehl hat die niedrigste Adresse.

P Wird ein Operand benötigt, etwa bei einer Addition, folgt nun der Zugriff auf den

Operanden – je nach Adressierungsmodus ist eventuell eine Adressberechnung not-

wendig. Danach wird der Befehl ausgeführt.

P Bei einem Sprungbefehl wird der Befehlszähler mit der entsprechenden Sprungad-

resse geladen. Auch im Fall einer Programmunterbrechung (Interrupt) erfolgt nach

der vollständigen Abarbeitung eines Befehls der Sprung in die Interrupt-Bearbei-

tungsroutine.

Ablauf der Befehlsausführung im Detail

Abbildung 15 veranschaulicht den Ablauf eines Befehls im Zusammenhang mit den be-

teiligten Speichern. In der Befehlsholphase erfolgt ein Speicherzugriff (1a) auf die vom

Befehlszähler (PC) angezeigte Adresse. Der entsprechende Befehl wird in das Befehls-

register (IR) des Leitwerks gebracht (1b). Anschließend wird der PC um 1 erhöht. Er

zeigt damit auf den nächsten Programmbefehl. Besteht ein Befehl aus mehreren Spei-

cherworten, setzt sich diese Phase auch aus mehreren Speicherzugriffen zusammen. Der

PC wird dabei jedes Mal erhöht, bis der Befehl vollständig im IR steht. Es erfolgt hier in

der Befehlsholphase bereits eine Teilauswertung des Befehlscodes, indem der eigent-

liche OP-Code vom Adresscode getrennt wird. Das Befehlsregister besteht folglich aus

OP-Code-Register (OR) und Adress-Register (AR). Das OR nimmt den OP-Code auf

(was zu tun ist) und das AR die Adresse des Operanden (womit es zu tun ist).

Abbildung 15:Befehlsausführung in

der CPU

CPU

Rechenwerk

weitere Register

Adressmodifikation

Steuersignale

Befehlsdecoder &Ablaufsteuerung

Befehlsregister (IR)

Opcode-Register (OR) Adressregister (AR)

Befehlzähler (PC)Leitwerk

Arbeitsspeicher

1a

1b

2 3

4a

4b

Kapitel 4åMCS101

Page 54: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

53

Der Befehl im OR wird nun vom Befehlsdecoder decodiert und der Ablaufsteuerung

zugeführt. Diese ist in der Regel als Mikroprogramm realisiert. Die Ablaufsteuerung er-

zeugt nun die nötigen Steuersignale.

Benötigt der Befehl Operanden, so wird deren Adresse aus dem Inhalt des AR ermittelt.

Häufig ist im Befehl nicht die tatsächliche Operandenadresse, sondern nur eine Teilin-

formation enthalten, die noch geeignet ergänzt werden muss. Es ist also unter Umstän-

den eine Adressrechnung notwendig.

Nun erfolgt ein Speicherzugriff (4a) auf die so festgestellte Operanden-Adresse. Der

Operand wird in das vom OP-Code spezifizierte Register oder in das Rechenwerk (4b)

oder in die ausgewählte Speicherzelle gebracht. Falls durch den OP-Code weitere Teil-

operationen gefordert sind, werden diese ausgeführt. Dabei kann auch der Inhalt des PC

durch Sprungbefehle beziehungsweise Unterprogramm-Aufrufe verändert werden.

Jeder Befehlszyklus besteht aus einer Anzahl von Teilschritten, den Maschinenzyklen.

Diese kann für unterschiedliche Befehle verschieden sein und folglich können die Be-

fehlszyklen verschiedener Befehle unterschiedlich lange dauern. Die absolute Dauer

eines Befehlszyklus hängt natürlich auch von der Taktfrequenz der CPU ab.

Ein Maschinenzyklus wiederum kann eine oder mehrere Taktperioden dauern. Wie

viele Taktzyklen ein Befehl dauert, kann dem Datenblatt des Prozessors entnommen

werden.

4.2.24.2.24.2.24.2.2Prinzipielle Arbeitsweise des LeitwerksPrinzipielle Arbeitsweise des LeitwerksPrinzipielle Arbeitsweise des LeitwerksPrinzipielle Arbeitsweise des Leitwerks

Das Leitwerk ist die Komponente, die alle Abläufe im Computer abhängig von den Pro-

grammbefehlen steuert. Neben der Übertragung von Daten vom Speicher ins Rechen-

werk und umgekehrt sind seine Hauptaufgaben

– Decodieren und Interpretieren von Befehlen,

– Versorgung der an der Verarbeitung beteiligten Systemteile mit Steuersignalen,

– Anstoßen des Rechenwerks zur Ausführung einer bestimmten Operation und

– Entscheidung über Programmsprünge.

Abbildung 16:Prinzipieller Aufbau des Leitwerks

Kapitel 4åMCS101

Page 55: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

54

Das Leitwerk, dessen Aufbau in Abbildung 16 noch einmal zu sehen ist, werden wir

vereinfacht als eine Einheit betrachten, die alle vorkommenden Steuersignale erzeugt.

Tatsächlich gibt es dafür in einem Mikrocomputer an mehreren Stellen Schaltungsteile.

Von der Funktion her ist das Leitwerk in eine Reihe von Unterwerke zu gliedern:

– Befehlswerk (= Befehlszähler + Befehlsregister)

– Befehlsdecoder und Ablaufsteuerung (Mikroprogrammsteuerung)

– Adressrechenwerk

– Unterbrechungssteuerung

– Bus-Steuerung für den Speicherzugriff

Einige Register des Leitwerks kommen bei jedem Prozessortyp vor, gegebenenfalls

mehrfach, wie beispielsweise Indexregister. Alle haben Sie bereits kennengelernt:

– Befehlszähler (Program Counter)

– Befehlsregister (IR) = Operationscoderegister (OR) + Adressregister (AR)

– Befehlsdecoder und Ablaufsteuerung

– Indexregister

Die Gesamtheit der Steuersignale bildet ein Steuerwort, das in einzelne Felder unter-

schiedlicher Länge aufgeteilt wird. Jedes Feld enthält die Steuersignale für eine be-

stimmte Einheit der CPU, z. B. der ALU. Durch das Steuerwort werden die bei jedem

Taktzyklus in den einzelnen Komponenten des Steuerwerks auszuführenden Teilopera-

tionen bestimmt. Zu jedem Taktzyklus muss ein neues Steuerwort erzeugt werden.

Dabei kann jedes Steuerwort vom vorhergehenden Steuerwort und von äußeren Bedin-

gungen abhängen. Die äußeren Bedingungen können z. B. der Befehlscode des auszu-

führenden Befehls oder Statussignale sein. Die Ablaufsteuerung ist, digitaltechnisch be-

trachtet, ein synchrones Schaltwerk (Automat).

Mikrocomputer haben typischerweise 50 bis einige 100 verschiedene Befehle, die Ab-

laufsteuerung hat dann 500 bis einige 1000 verschiedene Steuerworte. Daher erfolgt

heute bei CISC die Realisierung als mikroprogrammiertes Schaltwerk (Abbildung 17).

Die einzelnen Steuerworte stehen dann in einem Festwertspeicher (ROM). Die Auswahl

eines bestimmten Steuerworts erfolgt durch Anlegen seiner Adresse. Das adressierte

Steuerwort wird aus dem Speicher ausgelesen und die einzelnen Steuersignale über

direkte Leitungen auf die Steuereingänge der entsprechenden Werke geschaltet. Die

Auswahl des nächsten Steuerwortes erfolgt dann durch Auswahl der Folgeadresse.

Im Normalfall wird eine sequenzielle (lineare) Folge von Steuerworten im Mikro-

programmspeicher abgearbeitet. Die Folgeadresse kann dann von der linearen Folge

abweichen, wenn z. B. ein neuer Maschinenbefehl begonnen wird, Statussignale zu

berücksichtigen sind (bedingte Sprünge) oder im vorhergehenden Steuerwort ein

Mikroprogrammsprung ausgeführt wurde.

Kapitel 4åMCS101

Page 56: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

55

Abbildung 17:Schematischer Aufbau einer Mikroprogramm-steuerung

Jedes Steuerwort wird um einen Folgeadressteil (Adressauswahlfeld und Sprungadress-

feld) erweitert. Ein derart ergänztes Steuerwort heißt Mikrobefehl (Abbildung 18). Die

für die Durchführung eines bestimmten CPU-Befehls erforderliche Folge von Mikrobe-

fehlen heißt Mikroprogramm. In diesem Zusammenhang wird der CPU-Befehl manch-

mal auch Makrobefehl genannt.

Abbildung 18:Typisches Aussehen eines Mikrobefehls

Für die Realisierung der Adressbestimmung existieren eine Reihe unterschiedlicher

Konzepte. An dieser Stelle soll beispielhaft nur ein relativ einfaches Konzept vorgestellt

werden. Die Startadresse jedes Mikroprogramms wird durch den OP-Code des entspre-

chenden CPU-Befehls festgelegt. Da die Startadressen der einzelnen Mikroprogramme

weiter auseinanderliegen, wird ein Zuordnungsspeicher (Mapping ROM) zwischenge-

schaltet. Die jeweils nächste Adresse kann dann bestimmt werden durch:

– Inkrementieren des Mikroprogrammzählers (linearer Ablauf),

– Sprungadressen aus dem Sprungadressfeld des aktuellen Mikrobefehls oder

– eine Zuordnungstabelle (Mapping ROM).

Rechenwerk-Feld, z. B. ALU, Registerauswahl usw.

Bus-Feld, z. B. Schreib-leitung, I/O-Auswahl usw.

weitere Felder

Kapitel 4åMCS101

Page 57: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

56

Die Auswahl der Adressquelle erfolgt mit einem Adressauswahlfeld und durch Status-

signale (Bedingungsgatter). Zum Beispiel kann das Vorliegen einer Unterbrechungs-

Anforderung durch die Abfrage eines Statussignals überprüft werden. Am Ende der

Befehlsausführungsphase muss ein entsprechender Mikrobefehl stehen. Der letzte

Mikrobefehl jedes CPU-Befehlszyklus muss ein unbedingter Sprung in die Mikrobe-

fehlssequenz der Befehlsholphase sein.

Charakteristisch für Mikroprogramme sind die relativ geringe Programmlänge für die

Bearbeitung eines CPU-Befehls (typisch ca. 500 bis 2000 Mikrobefehle) und die große

Wortbreite (typisch 32 … 128 Bit, manchmal auch mehr).

Im Allgemeinen ist bei heutigen Rechnern die Ablaufsteuerung für den Benutzer unzu-

gänglich und kann auch nicht geändert werden.

Bei RISC-Prozessoren wird keine Mikroprogrammierung verwendet. Hier besteht die

Ablaufsteuerung aus einer fest verdrahteten Logik. Zusammen mit einer passenden

Architektur der übrigen Werke gelangt man so zu Prozessoren, die einen Befehl inner-

halb eines Taktzyklus ausführen können.

4.2.34.2.34.2.34.2.3Unterbrechungs-BehandlungUnterbrechungs-BehandlungUnterbrechungs-BehandlungUnterbrechungs-Behandlung

Ein Teil des Leitwerks behandelt Programmunterbrechungen. Es wertet die Programm-

unterbrechungs-Anforderung (engl. interrupt request, IRQ) aus, die in der Regel über

Signalleitungen von außen kommt. Bei Mikrocontrollern, die ja umfangreiche Periphe-

rie auf dem Chip haben, können auch intern solche Interrupts generiert werden. Ebenso

können bestimmte Softwareereignisse eine Programmunterbrechung auslösen (z. B.

Division durch Null, Bus-Zugriffsfehler, etc.).

Die Anmeldung der Programmunterbrechung (PU) erfolgt bei der Ablaufsteuerung über

ein Statussignal. Die eigentliche Durchführung der PU wird in der Regel von der Ab-

laufsteuerung durchgeführt. Die PU-Anforderung kommt auf einer oder mehreren Lei-

tungen an die CPU.

Abbildung 19:Prinzip der Hardware

für die Unterbrechungs-Anforderung

Unterbrechungs-Anforderung

Quittieren

Unterbrechungs-Anmeldung

Rücksetzen der Maske

Setzen der Maske

&

S Q

R

D Q

R

Kapitel 4åMCS101

Page 58: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

57

Eine IRQ-Leitung führt auf ein Flipflop, das durch die IRQ-Anforderung gesetzt wird

(in Abbildung 19 unten). Nach Annahme der PU durch die Ablaufsteuerung wird das

Flipflop durch die Ablaufsteuerung zurückgesetzt (quittiert). Häufig ist es jedoch sinn-

voll, die sofortige Unterbrechung des laufenden Programms zu verhindern, unter ande-

rem dann, wenn gerade eine Routine zur PU-Behandlung abläuft. Die PU-Anforderung

wird dann gesperrt (engl. interrupt disable). Dies ist bei einem sogenannten maskierba-

ren Interrupt möglich. Nur, wenn das Masken-Flipflop (in Abbildung 19 oben) gesetzt

ist, führt eine PU-Anforderung auch zu einer PU-Anmeldung, das heißt, die PU wird

akzeptiert.

Eine PU löst dann Folgendes aus:

P Retten des aktuellen Programmzustands: Der Maschinenstatus, das heißt der Inhalt

der Register der CPU, muss in einem Zustandsvektor festgehalten werden. Dieser

wird meist im Kellerspeicher (Stack) abgelegt. Dieses geschieht teils per Hardware

(z. B. für PC und Statusregister) und muss teils per Software eingerichtet werden

(z. B. für die übrigen Register). Dazu später noch mehr.

P Laden des Befehlszählers mit der Startadresse der Interrupt Service Routine (ISR).

Man unterscheidet bei der Adressangabe für die ISR zwei Möglichkeiten:

– vektorisierter Interrupt: Es kann der ISR eine beliebige Adresse zugeordnet wer-

den, die von der CPU eingelesen wird. Diese Adresse ist im Interruptvektor

gespeichert.

– nicht vektorisierter Interrupt: Der ISR wird eine feste Startadresse zugeordnet.

Das Programm wird nun ab der Startadresse der ISR fortgesetzt.

P Aufruf und Abarbeitung der ISR.

P Nach Abschluss der ISR wird der ursprüngliche Zustandsvektor wieder vom Stack

geholt und das Programm an der Unterbrechungsstelle fortgesetzt. Während des Ret-

tens des Programmzustands und des anschließenden Ladens des Zustandsvektors der

ISR darf keine neue Unterbrechungsanforderung auftreten. Die Zustandsinformation

wäre sonst unvollständig!

Neben den maskierbaren IRQ-Eingängen gibt es meist auch nicht-maskierbare IRQ-

Eingänge (NMI oder RESET). Ein NMI kann z. B. dazu verwendet werden, einen Aus-

fall der Versorgungsspannung frühzeitig zu signalisieren. So können beispielsweise bei

einer Prozesssteuerung Vorkehrungen für einen Nothalt und eine Datensicherung ge-

troffen werden, bevor der Rechner ausfällt.

Fast immer gibt es mehrere Quellen für Interrupt-Anforderungen. Viele CPUs besitzen

mehrere IRQ-Eingänge. Die Freigabe der einzelnen IRQ-Eingänge erfolgt über ein spe-

zielles Register, das IRQ-Masken-Register, welches mehreren Masken-Flipflops ent-

spricht. Das Masken-Register kann per Software geladen werden.

Normalerweise muss für jedes IRQ-Signal eine eigene Interrupt Service Routine vor-

handen sein, da ja auf jedes Signal anders zu reagieren ist.

Kapitel 4åMCS101

Page 59: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

58

Abbildung 20:Bearbeitung mehrerer

Interrupts

Wenn aber mehr PU-Quellen als IRQ-Eingänge vorhanden sind, müssen die PU-Anfor-

derungen mittels zusätzlicher Hardware zusammengefasst werden, z. B. über ODER-

Verknüpfung (Abbildung 20). Daraus ergibt sich das Problem, dass die ISR zunächst

die jeweilige Quelle identifizieren muss. Die Identifizierung der Quelle ist auch not-

wendig, um das entsprechende IRQ-Flip-Flop beim Interrupt-Verursacher zurücksetzen

zu können. Dafür gibt es folgende Methoden:

P Polling:

Es gibt nur eine ISR. Der Interrupt-Verursacher kann sich nicht selbst zu erkennen

geben. Am Prozessor erscheint lediglich das Anforderungssignal und es ist die Auf-

gabe der ISR, über eine Kette von Abfragen an die infrage kommenden Peripherie-

Bausteine den aktuellen Interrupt-Verursacher herauszufinden. Mit „Abfragen“ ist

hier das Lesen der Statusregister der Peripheriebausteine gemeint, in denen die Tat-

sache der Interrupt-Anforderung jeweils in einem bestimmten gesetzten Bit (Inter-

rupt-Request-Bit) vermerkt ist.

P Vektorisierter Interrupt:

Der Interruptverursacher liefert (im Zuge der Bussequenzen bei der Interrupt-An-

nahme durch den Prozessor) einen „Kenn-Code“ ab, an dem der Prozessor erkennen

kann, um welchen Interrupt es sich handelt. Gleichzeitig wird das IRQ-Flipflop zu-

rückgesetzt. Dieser sogenannte Interrupt-Vektor wird als (indirekte) Startadresse der

zugehörigen ISR verwendet. Damit entfällt das zeitraubende Abfragen, die soge-

nannte Interrupt-Reaktionszeit wird kürzer.

P Eindeutige Zuordnung:

Jedem IRQ-Eingang ist eine feste ISR-Startadresse hardwaremäßig zugeordnet. Pro

Eingang gibt es nur eine PU-Quelle.

Sind mehrere PU-Quellen an einem IRQ-Eingang angeschlossen, ist es häufig zweck-

mäßig, zwischen wichtigen und weniger wichtigen PU-Quellen zu unterscheiden. Man

nennt dies ein prioritätsgesteuertes Interrupt-System. Die einfachste Form einer Priori-

tätssteuerung ist die Vorrang-Kette (engl. daisy-chain = Gänseblümchen-Kette, Abbil-

dung 21). Das von der Ablaufsteuerung kommende Quittungssignal gelangt über die

UND-Gatter nur bis zu der PU-Quelle mit der höchsten Priorität. Nur von dieser wird

dann der Kenn-Code ausgesendet und das PU-Anforderungs-Flipflop zurückgesetzt.

Die Prioritätsreihenfolge ist durch die Verschaltung der Quittungsleitungen festgelegt.

Auch an den Ausgängen der Und-Gatter könnte man die Interruptquelle identifizieren.

PUn–1

PU-Anmeldung

Maskenregister

QR

PU1

PU0

QR

QR

≥1

&

&

&

n–1 1 0

Kapitel 4åMCS101

Page 60: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

59

Abbildung 21:Priorisierte Interrupt-Anforderung

Wenn eine Programmunterbrechung ausgeführt werden soll, so muss, wie oben schon

erwähnt, auf jeden Fall der Zustand des Prozessors gerettet werden. Denn das Interrupt-

Service-Programm benutzt ja ebenfalls den Prozessor und verändert dabei dessen Zu-

stand. Soll anschließend das unterbrochene Programm fortgesetzt werden, so ist es

unbedingt nötig, vorher den Zustand wieder herzustellen, wie er bei Auftreten der Un-

terbrechung herrschte. Man lässt auch deshalb Unterbrechungen nur nach Beendigung

eines Befehls zu, denn dann ist der Prozessorzustand vollständig durch den Inhalt der

Prozessorregister definiert.

Am besten eignet sich zum Retten des Zustandsvektors ein sogenannter Kellerspeicher

(engl. stack, auch Stapelspeicher oder LIFO = last in first out). Das Stackprinzip kann

per Hardware in der CPU realisiert oder in einem reservierten Bereich des normalen

Arbeitsspeichers nachgebildet sein. Zu diesem Zweck existiert ein Zeigerregister (engl.

Stackpointer), das entweder den Top of Stack, also den letzten Eintrag, oder die nächste

freie Speicherstelle im Stack adressiert.

Mit jeder neuen (geschachtelten) Programmunterbrechung wächst der Kellerspeicher

um die entsprechenden Einträge, mit jedem Rücksprung in ein vorher unterbrochenes

Programm reduziert er sich wieder entsprechend. Der Stackinhalt wächst und schrumpft

mit jedem Eintreten und Verlassen einer ISR.

Die Notwendigkeit, bei der Ausführung einer Programmunterbrechung zunächst den

Zustand des unterbrochenen Programms zu retten, kann also eine Reihe von Transport-

operationen benötigen. Vom Moment des Eintreffens der Unterbrechnungsanforderung

vergeht daher einige Zeit, die Interrupt-Reaktionszeit, bis der erste produktive Befehl

der ISR ausgeführt wird. Diese Reaktionszeit setzt sich aus den folgenden Komponen-

ten zusammen:

Durchschaltezeit (der Anforderung bis zur Unterbrechungsanmeldung) aufgrund einer

gesetzten Sperre, z. B. dann, wenn gerade eine Interrupt-Service-Routine bearbeitet

wird. Diese Zeit kann unter Umständen recht lang sein.

Wartezeit bis zur Beendigung des gerade ausgeführten Befehls, maximal die des längs-

ten vorkommenden Befehls.

Zeit zum Retten des Programm-Zustandes und Laden des Unterbrechungs-Vektors.

Selbst wenn die Durchschaltung der Anforderung unmittelbar erfolgt, kann die Summe

der drei Zeiten für zeitkritische Echtzeitanforderungen zu groß sein.

PUn–1

PU-Anmeldung

PU-Quittung

QR

PU1

PU0

&

QR

QR

&

≥1

Kapitel 4åMCS101

Page 61: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

60

K [11] Erläutern Sie kurz die wesentlichen Merkmale des Akkumulators.

K [7] Aus welchen beiden Phasen besteht prinzipiell die Verarbeitung eines Maschinen-

befehls?

K [20] Welche Aufgabe hat dabei der Befehlszähler?

K [36] In welchem Bauteil eines Mikrocomputers begegnen wir einem Steuerwerk und einem

Rechenwerk?

K [5] Welche Aufgabe haben grundsätzlich die Flag-Bits im Status-Register eines Prozes-

sors? Welche Flag-Bits kennen Sie?

K [16] Erläutern Sie die Arbeitsweise des Zero-Flags am Beispiel einer Programmschleife.

K [24] Wozu werden Interrupts benötigt? Nennen Sie Beispiele.

K [28] Was ist eine Interrupt Service Routine? Was ist ein Interruptvektor?

K [26] Was ist der Unterschied zwischen Polling und Interrupt?

Das Leitwerk (Steuerwerk) hat folgende Hauptaufgaben:

– Decodieren und Interpretieren von Befehlen,

– Übertragung von Daten zwischen Speicher und Rechenwerk,

– Versorgung der an der Verarbeitung beteiligten Systemteile mit Steuersignalen,

– Anstoßen des Rechenwerks zur Ausführung einer bestimmten Operation und

– Entscheidung über Programmsprünge.

Jeder Programmbefehl legt fest, was zu tun ist und womit es zu tun ist. Im Befehls-

zyklus erfolgt die sich ständig wiederholende Bearbeitung der verschiedenen Pro-

grammbefehle. Die wichtigsten Register des Leitwerks für die Programmbearbei-

tung sind der Befehlszähler, der die Adresse des aktuell zu bearbeitenden Befehls

enthält, und das Befehlsregister, welches den Befehlscode enthält. Die zugehörige

Ablaufsteuerung wird bei RISC-Prozessoren durch ein digitales Schaltwerk und bei

CISC-Prozessoren durch Mikroprogrammierung realisiert.

Ein Teil des Leitwerks behandelt Programm-Unterbrechungen (engl. interrupt). Nach

vollständiger Abarbeitung eines jeden Befehls wird festgestellt, ob eine Unterbre-

chungs-Anforderung vorliegt. Diese führt dann zu einem Sprung in eine Interrupt-

Service-Routine. Erst nach deren Abarbeitung wird wieder das laufende Programm

ausgeführt. Eine Unterbrechungsanforderung kommt in der Regel über Signalleitun-

gen von außen. Bei Mikrocontrollern können auch intern Interrupts generiert werden.

Ebenso können bestimmte Softwareereignisse eine Programmunterbrechung aus-

lösen.

Kapitel 4åMCS101

Page 62: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

61

4.34.34.34.3Bus-Struktur und weitere Anschlüsse eines MikroprozessorsBus-Struktur und weitere Anschlüsse eines MikroprozessorsBus-Struktur und weitere Anschlüsse eines MikroprozessorsBus-Struktur und weitere Anschlüsse eines Mikroprozessors

Als Bus wird eine Anzahl von Leitungen für den Datenaustausch bezeichnet, an die

mehrere Funktionseinheiten parallel angeschlossen sind. Die Bezeichnung rührt von

dem lateinischen Wort „omnibus“, auf deutsch „für alle“. Zu jedem Zeitpunkt sind je-

doch immer nur zwei beteiligte Bausteine als Sender und Empfänger miteinander ver-

bunden. Man unterscheidet:

– unidirektionaler Bus: Hier fließt die Information nur in einer Richtung, im Allgemei-

nen existiert auch nur ein Sender.

– bidirektionaler Bus: Informationsaustausch ist in beiden Richtungen möglich, es gibt

mindestens zwei Funktionseinheiten, die wahlweise als Empfänger oder als Sender

fungieren können. Technisch gesehen werden Tri-State-Treiber benötigt, die durch

Steuersignale ein- und ausschaltbar sind, sodass zu einem Zeitpunkt maximal eine

Einheit aktiv ist.

In Mikroprozessor-Systemen ist (mit Ausnahme des Direktspeicherzugriffs) immer der

Mikroprozessor einer der beiden am Datenaustausch beteiligten Bausteine.

Abbildung 22 zeigt schematisch, welche Anschlüsse an einem Mikroprozessor vorhan-

den sind. Diese werden wir im Folgenden alle etwas näher betrachten.

Abbildung 22:Schematische Ansicht der Anschlüsse eines Mikroprozessors

Der System-Bus

Die Busstruktur mit Adressbus, Datenbus und Steuerbus bildet nach außen hin den Sys-

tembus oder CPU-Bus. Er verbindet den Prozessor insbesondere mit Speicherbausteinen

und Ein-/Ausgabebausteinen. Diese Busstruktur wurde bei den PCs der ersten Stunde

auch auf die Anschlussmöglichkeit für Peripherie übertragen. Schon der Apple 2 besaß

Steckplätze (Slots), in die Steckkarten mit zusätzlicher Hardware (z. B. eine Drucker-

schnittstelle) eingesteckt werden konnten. Der IBM-PC und dessen zahllose Nachfolger

haben dieses Prinzip übernommen.

Daten-Bus (Data Bus, D-Bus): Zunächst ist je nach Ausführung des Prozessors eine

Wortbreite definiert, welche die Anzahl der gleichzeitig zu übertragenden Bits pro Spei-

cherzugriff für alle Transfers darstellt. Typischerweise sind dies 4, 8, 16, 24, 32 oder 64

Bit. Ein Transfer von oder zum Speicher – oder zum Ein- und Ausgabesystem – erfolgt

immer in der angegebenen Bitparallelität. Die zugehörigen Leitungen zum Transfer des

Speicherzelleninhalts werden als Datenbus bezeichnet. Die Datenbusleitungen müssen

bidirektional ausgeführt sein, um sowohl lesend (Read, RD) als auch schreibend (Write,

WR) auf den Speicher wirken zu können.

Stromversorgung Adress-Bus

Steuerung der CPU

Takt

Mikro-prozessor

Daten-Bus

Steuer-Bus

Kapitel 4åMCS101

Page 63: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

62

Adress-Bus (A-Bus): Die Adressierung der Speicherzellen erfolgt über gesonderte Lei-

tungen, die als Adressbus bezeichnet werden. Sie muss eine eindeutige Zuordnung zwi-

schen physikalischer Speicherzelle und gewünschter Adresse für den Prozessor herstel-

len. Der Adressbus muss aus Sicht der CPU nur unidirektional als Ausgang vorhanden

sein, da es immer der Prozessor ist, der die konkrete Adresse bestimmt (wobei es auch

hier Ausnahmen gibt). Als interne Quellen für die Adressbusleitungen dienen zum einen

der Programmzähler, zum anderen spezielle Adressregister.

Steuer-Bus (Control-Bus, S-Bus): Das dritte Teilsystem wird als Steuerbus bezeichnet.

Hiermit werden alle Signale zusammengefasst, die der externen Steuerung eines Daten-

transfers am Bus dienen, beispielsweise zum Anzeigen der Transferrichtung (Read/

Write) oder auch zur Unterscheidung zwischen Speicher- und Ein-/Ausgabetransfer.

Diese Signale besitzen im Allgemeinen eine weniger einheitliche Struktur, verglichen

mit dem Adress-oder Datenbus.

Es gibt Systeme, bei denen ein Teil des Busses für verschiedene Funktionen mehrfach

genutzt wird. Der Zugriff erfolgt dann im Zeitmultiplex-Betrieb. Beispielsweise verfügt

der Prozessortyp 8085 über einen 16 Bit breiten Adressbus, wobei die niederwertigen

8 Bits wahlweise den Datenbus bilden.

Ein Bus ist eine sehr ökonomische Verbindung mehrerer Baugruppen. Es sind flexible

Erweiterung und systematische Verschaltung über eine Bus-Platine (Backplane) mög-

lich. Der Zugang erfolgt über Steckplätze (Slots).

Ein Bus benötigt aber zumeist spezielle Pufferbausteine, die Bus-Treiber oder Bus-

Extender. Ein solcher Bustreiber hat folgende Aufgaben:

P An-und Abschalten der angeschlossenen Funktionseinheiten am Bus. Es darf immer

nur ein einziger Sender am Bus aktiviert sein – alle anderen Sender müssen abge-

schaltet sein.

P Durchschalten der gewünschten Übertragungsrichtung bei bidirektionalen Busan-

schlüssen.

P Erhöhung des Fan-Out. Damit ist die Höhe der Spannung und Stromstärke des Sig-

nals gemeint, welche die Anschlusskapazität bestimmen. Je höher die elektrische

Belastung des Busses durch angeschlossene Bausteine ist, umso höher muss der Fan-

Out sein.

B Beispiel:

Das folgende Beispiel in Abbildung 23 zeigt Anschlüsse am Systembus eines Mikro-

prozessors 6802. Auf dem CPU-Chip sind 128 Byte RAM (Arbeitsspeicher) integriert.

Somit werden extern nur noch Ein- und Ausgabe (zwei parallele I/O-Bausteine mit

jeweils 20 Leitungen, PIO) und ROM (Festspeicher) benötigt.

Kapitel 4åMCS101

Page 64: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

63

Abbildung 23:Einfaches Mikrocomputer-system

Dem Bussystem muss für den zeitlichen Multiplex ein entsprechendes zeitliches Ver-

halten eingeprägt sein, da die Busleitungen nicht exklusiv für eine Verbindung genutzt

werden können. Dieses zeitliche Verhalten ist durch ein Handshake bestimmt, mit dem

die Einheiten, die einen Datentransfer durchführen, sich gegenseitig abstimmen. Dieses

Handshakeverfahren ist meist an den CPU-Takt gekoppelt. Generell werden drei Arten

von Bushandshakes unterschieden: synchrone, semisynchrone und asynchrone Bus-

protokolle. Asynchrone Systembusse besitzen keinerlei Kopplung an einen Takt, sind

daher sehr flexibel, aber auch aufwendig. Sie wurden in der Motorola MC68000-Archi-

tektur realisiert, heutzutage findet man sie kaum noch.

In Abbildung 24 sehen Sie prinzipiell die logischen und zeitlichen Zusammenhänge für

einen synchronen Systembus. Kennzeichnend hierfür ist die starre Kopplung aller Sig-

nale an den CPU-Takt. Im Bild wurden zwei CPU-Taktperioden t pro Buszugriff ange-

nommen. Während des gesamten Bustakts T wird die Adresse der Speicherzelle am

Adressbus Ax angelegt. Bei einem lesenden Zugriff erwartet die CPU ab einem definier-

ten Zeitpunkt (im Bild kurz nach Beginn der zweiten Periode des CPU-Takts) ein stabi-

les Signal am Datenbus Dx, das bis zur Übernahme in interne Register des Prozessors

unveränderlich stabil sein muss. Die Kennzeichnung des lesenden Zugriffs erfolgt

durch das Steuerbussignal, , das Low aktiv ist. Die Übernahme der Daten erfolgt

mit der positiven Flanke am Ende der zweiten Taktperiode.

Der schreibende Zugriff am Bus verläuft sehr ähnlich, hier ist das Signal Low

aktiv und bleibt inaktiv. In diesem Fall setzt der Prozessor die Signale am Daten-

bus durch Aktivschaltung der entsprechenden Treiber.

Das synchrone Busprotokoll besitzt eine starre Kopplung zwischen Zugriffsdauer und

CPU-Takt und damit ein nicht variables Zeitschema. Die wichtigste Konsequenz hier-

aus ist, dass alle Busteilnehmer die Zeiten, die ihnen zur Verfügung stehen, einhalten

müssen. Ein gemischtes Design mit langsamen und schnellen Speicherbausteinen bei-

spielsweise erzwingt einen Bustakt, der dem langsamsten Teilnehmer entspricht. Weil

das Verhältnis zwischen Bus- und CPU-Takt unveränderlich ist, wird mit dem Bus-Takt

auch der CPU-Takt herabgesetzt und der Prozessor verlangsamt. Dies ist ein bedeuten-

der Nachteil des ansonsten sehr einfachen Protokolls.

ROM2k

PIO PIO

RAM

6802

20 Leitungen 20 Leitungen

RD

WR

RD

Kapitel 4åMCS101

Page 65: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

64

Abbildung 24:Speicherzugriff beim

synchronen Busprotokoll

Im semisynchronen Busprotokoll wird der Nachteil der Kopplung der beiden Takte ver-

mieden. Hier wird eine zusätzliche Leitung benutzt, die meist mit Ready bezeichnet

wird und seitens des Prozessors ein Eingangssignal darstellt. Liegt auf dieser Leitung

rechtzeitig vor dem Speichern in das interne Prozessorregister ein aktives Signal vor, so

wird dem Prozessor signalisiert, dass der Buszyklus in der minimalen Zeit beendet wer-

den kann und die Daten gültig sind. Das Ready-Signal steuert die Übernahme und das

Zurücksetzen von . Es ist also für die Einhaltung der Transferzeiten zuständig und

synchronisiert Prozessor und Peripherie bzw. Speicher. Dieses Signal muss in einem

Rechnerdesign gegebenenfalls separat erzeugt werden, falls die verwendeten Speicher-

bausteine keine Generierung vorsehen.

Steuerungs-Signale

Die Steuersignale dienen zur programmunabhängigen Beeinflussung des Mikroprozes-

sors, z. B. Reset, Interrupts, etc. Deren Quittungssignale sind teilweise auch dem S-Bus

zuzuordnen. Je nach Hersteller und Typ des Prozessors variieren Zahl und Aufgabe der

Steuersignale. In der folgenden Aufzählung werden Sie allgemein typische Signale fin-

den, die man bei nahezu jeder CPU findet. Beachten Sie, dass insbesondere bei Mikro-

controllern viele Pins des Gehäuses mehrfach belegt sind und erst per Programmierung

entschieden wird, welche Aufgabe jeder einzelne Pin wahrnimmt.

P RESET: Ein logischer Null-Pegel am Reset-Pin setzt den Mikrocontroller in einen

definierten Ausgangszustand zurück – meist reicht eine fallende Flanke. Der Befehls-

zähler wird dann auf einen definierten Anfangswert gesetzt (0, fester Wert oder durch

Vektor definierter Wert). Der Prozessor startet den ersten Befehlszyklus an dieser

Adresse. Die Interrupts werden gesperrt, deren Freigabe muss durch das Programm

erfolgen. Es ist wichtig, das Einschaltverhalten des Mikroprozessors zu beachten.

Das Verlassen des Reset-Zustandes darf erst erfolgen, nachdem die Versorgungs-

RD

Kapitel 4åMCS101

Page 66: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

65

spannung eine bestimmte Zeit stabil anliegt und die Einschwingzeit des Quarzoszil-

lators vergangen ist.

P ALE (Address Latch Enable): Wird im Zusammenhang mit einem gemultiplexten

Adress- und Daten-Bus zur Ansteuerung eines externen Speicherbausteins verwendet.

P WR, RD (Write, Read): Schreib-/Lese-Signale für externen Speicher.

P IOWR, IORD (I/O Write, I/O Read): Schreib-/Lesesignale für E/A-Bausteine. Eine

Alternative ist ein Pin, der zwischen Speicher und E/A unterscheidet (Mem/IO).

P MOSI (Master out, Slave in), MISO (Master in, Slave out), SCK (Serial Clock), SS

(Slave Select): Drei Leitungen des Serial Peripheral Interface (SPI), welches zum

Datenaustausch mit externen Komponenten dient wie z. B. Sensoren oder Anzeige-

modulen. Mit dem Signal SS wird diejenige Komponente ausgewählt, mit welcher

die Verbindung aufgenommen werden soll. Diese Anschlüsse werden oft zur seriel-

len Programmierung des Mikrocontrollers direkt in der jeweiligen elektronischen

Schaltung verwendet und bilden dann die sogenannte ISP-Schnittstelle (In-System-

Programming).

P RxD, TxD: Empfangs- und Sende-Pins der seriellen Schnittstelle.

P AIN0, AIN1, …: Analogeingänge, die bei einem Mikrocontroller entweder auf einen

A/D-Wandler führen oder auf einem Analogkomparator, der die Eingangsspannun-

gen an den beiden Pins vergleicht. Beim A/D-Wandler wird außerdem noch ein Ein-

gang für eine Referenzspannung benötigt.

P Ai, Bi, Ci, Di, …: Digitale Ein-/Ausgabe-Ports1, deren Pins einzeln oder gruppenweise

als Ein- oder Ausgang für Daten oder Signale konfiguriert werden können.

P WAIT (Ready, MRDY, Memory Ready): Dieser Anschluss dient der Anpassung an

langsame Speicher oder E/A-Bausteine. Dies geschieht entweder durch gezielte Ver-

längerung einzelner Taktphasen, durch synchrones Einschieben leerer Zyklen (soge-

nannter Wait States, wie bei den Prozessortypen 80x86) oder durch asynchrones

Warten auf Fertigmeldung.

P HOLD (Halt, Stop): Anhalten des Programmablaufs nach Beendigung des laufenden

Befehls. Der Bus geht in den Tri-State-Zustand und die CPU wird nach außen inaktiv

(intern bleibt sie aktiv). Dafür gibt es vielfältige Anwendungen zu Testzwecken, z. B.

Start/Stopp von außen, Einzelschrittsteuerung, Stopp bei bestimmter Adresse (mit

externem Adressdecoder). Ein „Aufwecken“ ist nur durch Reset oder Interrupt mög-

lich.

P HLDA (HOLD Acknowledge): Über diese Leitung quittiert der Mikroprozessor die

HOLD-Anforderung.

P DMA (Direkt Memory Access), BREQ (Bus Request): Diese Signale finden beim

Direktspeicherzugriff (siehe nächstes Kapitel) Anwendung. Die Ausführung des aktu-

ellen Befehls wird angehalten. Der Bus geht in den Tri-State-Zustand. Nach Beendi-

gung der Unterbrechung wird der unterbrochene Befehl fortgesetzt.

P INT0, INT1, …: Eingänge für Interrupt-Anforderungen.

1 Als Port wird allgemein eine Gruppe von Anschlüssen bezeichnet, die in einem funktionalen Zusam-menhang stehen.

Kapitel 4åMCS101

Page 67: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

66

Spannungsversorgung

Die Spannungsversorgung erfolgt heute mit +1,8 bis + 5V, früher waren of mehrere

Spannungen notwendig (+5V, –5V, +12V). Die zugehörigen Pins sind:

P Vcc: Betriebsspannungsanschluss

P GND: Masseanschluss

Takt

Der Takt wird entweder mit einem externen Taktgenerator oder intern erzeugt. Norma-

lerweise genügt ein Quarz, bei einfachen Systemen sogar ein RC-Glied. Die Quarzfre-

quenz beträgt in der Regel ein Vielfaches der CPU-Taktfrequenz. In der Regel handelt

es sich um einen nicht überlappenden Zweiphasentakt, wie ihn Abbildung 25 zeigt. Bei

einigen Modellen darf eine Mindestfrequenz nicht unterschritten werden.

Abbildung 25:Zweiphasentakt

P XTAL1, XTAL2: Anschlüsse für einen Quarz oder keramischen Resonator, der zu

sammen mit dem internen Oszillator den Systemtakt erzeugt. XTAL1 kann meist

auch als Eingang für ein externes Taktsignal dienen.

K [33] Was versteht man bei einem Mikroprozessor-System unter der Busstruktur? Welche

Teilbusse hat ein Systembus?

K [31] Erklären Sie den Ablauf beim Zugriff auf den Arbeitsspeicher eines Rechners. Wodurch

wird die Anzahl der Signalleitungen festgelegt?

Der Informationsaustausch zwischen einem Mikroprozessor und anderen Kompo-

nenten, wie zum Beispiel Speicherbausteinen, erfolgt über den Systembus, der sich

aus Adressbus, Datenbus und Steuerbus zusammensetzt. Zu jedem Zeitpunkt dürfen

am Bus immer nur zwei Einheiten als Sender und Empfänger miteinander verbunden

sein. Außer den Busleitungen besitzt jeder Mikroprozessor oder Mikrocontroller

noch Steuerleitungen für das Verhalten des Prozessors selbst (z. B. Reset) und wei-

tere Anschlüsse für digitale und analoge Ein- und Ausgänge.

Φ1

Φ2

Kapitel 4åMCS101

Page 68: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

67

4.44.44.44.4ProgrammiermodellProgrammiermodellProgrammiermodellProgrammiermodell

Da man wohl kaum einen Schaltplan des CPU-Herstellers bekommt und dieser auch für

die Programmierung viel zu komplex wäre, wird mit dem Programmiermodell gearbei-

tet.

Das will ich am Beispiel des Prozessors 8051 von Intel verdeutlichen. Einen Überblick

dieses Controllers bietet das Blockschaltbild in Abbildung 26, das trotz der starken Ver-

einfachung immer noch ziemlich komplex ist.

Abbildung 26:Blockschaltung des 8051-Controllers

Der 8051 besitzt zwei Arten von Registern: erstens die General Purpose Register (GPR),

vier mögliche Registerbänke mit jeweils acht adressierbaren Registern im internen RAM.

Von diesen Registerbänken kann jeweils nur eine aktiv sein. So können im Programm

mehrere Registersätze verwendet werden, ohne dass bei einem Unterprogrammaufruf die

Register gerettet werden müssen. Zweitens die Special Function Register (SFR), von de-

nen jedes einen ganz bestimmte Funktion besitzt. Der 8051 hat 21 SFR, der Großteil da-

von gehört zu Peripherieeinheiten (Timer, Ports, serielle Schnittstelle, etc.).

Das Programmiermodell umfasst alle dem Programmierer zugänglichen oder

vom Programmierer veränderbaren Register der CPU.

Kapitel 4åMCS101

Page 69: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

68

Sechs der SFR sind dem Prozessorkern zugeordnet:

Akkumulator (8 Bit): Es handelt sich um den typischen Akkumulator einer Von-Neu-

mann-Architektur. Er ist an vielen Operationen beteiligt und manche Befehle können

nur über ihn ausgeführt werden.

B-Register (8 Bit): Dies ist ein spezielles Hilfsregister für Multiplikations- und Divisi-

ons-Befehle.

Prozessorstatuswort (PSW, 8 Bit): Dies Register besteht eigentlich aus einzelnen Bits,

die sich getrennt betrachten lassen. Zwei dieser Bits ermöglichen es dem Programmie-

rer, eine der Registerbänke der GPR umzuschalten. Fünf weitere Bits zeigen den aktuel-

len Zustand der CPU an:

– Parity Bit: Akku enthält eine ungerade Anzahl von Einsen

– Carry Bit: Arithmetischer Übertrag der letzten Operation im Akku

– F0: Dieses Bit ist für den Anwender reserviert. Es kann von Software gesetzt und

gelöscht werden und wird von der Hardware nicht beeinflusst.

– Auxiliary Carry: Wird bei Rechnungen mit BCD-Zahlen verwendet, um einen Über-

lauf zwischen der niederen und höheren Dezimalstelle, (Bit 3 und 4) des Akkus anzu-

zeigen.

– Overflow Bit: Zeigt bei vorzeichenbehafteten Zahlen einen Arithmetik-Überlauf an.

Stackpointer (16 Bit): Er enthält die Adresse im internen RAM, auf die bei der nächsten

Stackoperation geschrieben bzw. von der gelesen wird. Der Stack nimmt unter anderem

auch die Rücksprungadressen beim Unterprogrammsprung auf.

Datapointer (DPTR, 16 Bit): Ein Index- oder Zeigerregister, mit dem Speicherbereiche

bis zu 64 KByte adressiert werden können. Es setzt sich zusammen aus den beiden 8-Bit-

Registern DPH und DPL. Das höherwertige Byte steht im Register DPH, das niederwer-

tige im Register DPL.

Andere Controller unterscheiden sich in Zahl und Aufgabenstellung der Register. Was

aber immer bleibt ist die Tatsache, dass sich eben nur diese Register per Programmierung

ändern lassen und man sich daher bei der Programmierung nur auf das entsprechende

Registermodell einer CPU stützt. Das gilt nicht nur für die Assemblerprogrammierung,

wo man direkten Zugriff auf die Register hat, sondern auch für die Programmierung in

einer Hochsprache, wo man gegebenenfalls Rücksicht auf die Struktur der CPU nehmen

muss, auch wenn sie nicht direkt sichtbar ist.

4.54.54.54.5AdressierungsartenAdressierungsartenAdressierungsartenAdressierungsarten

Auch hier gibt es viele Gemeinsamkeiten zwischen den einzelnen Mikrocomputer- und

-controllermodellen. Deshalb werden Sie jetzt typische und fast überall vorhandene

Methoden des Zugriffs auf Speicher und Ein-/Ausgabe kennenlernen.

Die meisten Befehle gestatten mehrere Adressierungsarten, aber nicht alle von ihnen

lassen sich auf jeden Befehl anwenden. Jede zulässige Adressierungsart bei einem

Befehl führt zu einem eigenen Operations-Code. Die zulässigen Adressierungsarten und

der jeweilige Operations-Code lassen sich der Befehlsliste entnehmen, die im Daten-

blatt des Prozessors zu finden ist. Die tatsächliche Länge und Ausführungszeit eines

Kapitel 4åMCS101

Page 70: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

69

Befehls hängen von der Adressierungsart ab. Die Zahl der Bytes eines Befehls und

seine Ausführungszeit lassen sich ebenfalls der Befehlsliste entnehmen.

Wie bereits gesagt, besteht jeder Maschinenbefehl aus zwei Teilen, einem Operations-

code (OP), der festlegt, was zu tun ist, und einem Operanden (AD), der festlegt, womit

etwas getan wird. Abbildung 27 zeigt, welche Informationen im Operationscode enthal-

ten sind.

Abbildung 27:Im Operationscode OP des Maschinenbefehls ent-haltene Informationen

Im Befehlsdecoder wird festgestellt, welche Aktion durch den OP-Code ausgelöst wer-

den soll, und es werden die befehlsspezifischen Signale zur Steuerung der Hardware

erzeugt.

Dabei kann auf unterschiedliche Weise auf den Inhalt des Arbeitsspeichers zugegriffen

werden. Jeder CPU-Typ besitzt unterschiedliche Adressierungsarten (engl. addressing

modes). Je nach Art der Adressierung wird direkt auf ein Speicherwort zugegriffen, der

Speicher über ein Indexregister adressiert oder der Befehl enthält selbst den Operanden.

Die entsprechende Information ist im Operanden des Befehls enthalten, wie Abbildung

28 zeigt.

Abbildung 28:Im Operanden AD des Maschinenbefehls ent-haltene Informationen

Je nach Komplexität der Adressierung sind manchmal noch Adressberechnungen not-

wendig. Diese erfolgen in einem eigenen Adressrechenwerk.

Gründe für die unterschiedlichen Adressierungsarten gibt es mehrere, etwa die Möglich-

keit einer verkürzten Adressangabe, bei der die Befehle kürzer sind und somit weniger

Speicherbedarf und eine kürzere Laufzeit haben. Andere Adressierungsarten machen Ad-

ressänderungen während des Programmlaufs möglich, falls die Adressen zum Zeitpunkt

der Programmierung nicht bekannt sind, oder machen Programme möglich, die unabhän-

gig von ihrer Lage im Speicher aufgerufen werden können. Wenn ein Programmierer die

jeweils günstigste Adressierungsart wählt, so kann er Speicherplatz und Rechenzeit sei-

nes Programms sparen und insbesondere Daten aus Tabellen und Listen sehr effizient

verarbeiten.

Die folgende Gliederung der Adressierungsarten erfolgt nach dem Umfang der Adress-

rechnung. Mit EA ist die effektive Adresse bezeichnet, also die Adresse, auf die letzt-

endlich zugegriffen wird. Sie ergibt sich entweder direkt aus dem Operanden des Be-

fehls oder wird durch eine Adressrechnung auf Basis des Operanden ermittelt.

durchzuführende Operation (Addieren, Vergleichen, ...)

Art des Operanden (Gleitkommazahl, Integerzahl, ...)

Größe des Operanden (Bit, Byte, Wort, ...)

Methode zum Auffinden des Operanden (Adressierungsart)

AD OP

Auffinden der benötigten Operanden

Informationen zur Bildung der Operandenadressen

Auswertemethode = Adressierungsart

OP AD

Kapitel 4åMCS101

Page 71: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

70

4.5.14.5.14.5.14.5.1Direkte und unmittelbare AdressierungDirekte und unmittelbare AdressierungDirekte und unmittelbare AdressierungDirekte und unmittelbare Adressierung

Implizite Adressierung (inherent addressing)

Hier existiert kein Adressteil, der Operand ist implizit im OP-Code enthalten. Ein Bei-

spiel ist der Befehl „Inkrement Akkumulator“, der implizit den Akkumulatorinhalt als

Operand angibt, welcher um Eins zu erhöhen ist.

Abbildung 29:Implizite Adressierung

Register-Adressierung (register direct addressing)

Der Adressteil verweist direkt auf ein Datenregister im Prozessor. Das Register enthält

den Operanden. Zum Beispiel: „Kopiere den Inhalt von Register A nach Register B“.

Hier steht der Operand im Register A.

Abbildung 30:Registeradressierung

Unmittelbare Adressierung (immediate addressing)

Der Adressteil ist unmittelbar der Operand. Er ist als Konstante im Befehlswort enthal-

ten. Beispiel: „Lade den Wert 5 in den Akku“. Hier ist der Wert 5 der Operand.

Abbildung 31:Unmittelbare Adressierung

4.5.24.5.24.5.24.5.2Einstufige AdressierungEinstufige AdressierungEinstufige AdressierungEinstufige Adressierung

Direkte oder Absolute Adressierung (direct/absolute addressing)

Dies ist die ursprünglichste Form der Adressierung. Der Adressteil ist (ohne weitere

Veränderung) die effektive Operandenadresse und wird direkt in das Adressregister

geladen. Es ist keinerlei Adressberechnung notwendig. Beispiel: „Lade den Wert, der

sich an der Speicheradresse AF00hex befindet, in den Akku“.

IR

Operand

OP

IR

OP AD AD

Operand

Registersatz

IR Operand OP

Kapitel 4åMCS101

Page 72: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

71

Abbildung 32:Direkte Adressierung

Indirekte Register-Adressierung (indirect register addressing)

Der Inhalt eines Registers liefert die effektive Operandenadresse. Das Register enthält

also einen Zeiger auf den Operanden (engl. register pointer). Beispiel: „Lade den Wert,

der sich an der in Register A befindlichen Speicheradresse befindet, in den Akku“.

Abbildung 33:Indirekte Register-adressierung

Indirekte Register-Adressierung mit automatischer Veränderung (auto increment/

decrement)

Zusätzlich zur Befehlsausführung der registerindirekten Adressierung wird der Register-

inhalt automatisch erhöht oder erniedrigt.

Abbildung 34:Indirekte Register-adressierung mit automa-tischer Veränderung

Indizierte Adressierung mit konstantem Offset (constant offset)

Der Inhalt eines Index-Registers (Adress-Registers) und der Adressteil des Befehls lie-

fern in der Summe die effektive Operandenadresse. Dabei enthält das Indexregister

einen Basiswert und der Adressteil des Befehls einen Offset. In diesem Fall ist der Off-

set zur Laufzeit des Programms konstant.

Abbildung 35:Indizierte Adressierung mit konstantem Offset

OperandAR

IR AD

EA EA

EA – 1

EA + 1

OP Speicher

IR OP AD

Adresse

Operand EA

EA – 1

EA + 1

AR

A

EA

Speicher

IR OP AD

Adresse

Operand EA

EA – 1

EA + 1

AR

A

EA

Speicher

±

IR OP AD

Operand EA

EA – 1

EA + 1

AR

X

EA

+ Adresse Speicher

Kapitel 4åMCS101

Page 73: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

72

Indizierte Adressierung mit Register-Offset (register offset)

Der Inhalt eines Index-Registers und eines weiteren Registers liefern in der Summe die

effektive Operandenadresse. Hier werden die beiden Registerinhalte addiert und der

Offset ist variabel, kann also während des Programmablaufs verändert werden. Diese

Adressierungsart ist für den Zugriff auf Felder (arrays) innerhalb von Schleifen nütz-

lich.

Abbildung 36:Indizierte Adressierung mit

Register-Offset

Indizierte Adressierung mit konstantem und Register-Offset

Diese Adressierungsart kombiniert die beiden vorgenannten.

Abbildung 37:Indizierte Adressierung mit

konstantem und Register-Offset

Befehlszähler-relative Adressierung (PC relative)

Dies entspricht der indizierten Adressierung, nur wird hier das Index-Register durch

den Befehlszähler ersetzt. Diese Form der Adressierung wird meist nur bei Sprungbe-

fehlen eingesetzt. Sie erlaubt Programme, die von ihrer Lage im Speicher unabhängig

sind, da sich der Sprung immer auf den aktuellen Befehlszählerstand bezieht.

4.5.34.5.34.5.34.5.3Zweistufige AdressierungZweistufige AdressierungZweistufige AdressierungZweistufige Adressierung

Indirekte Adressierung (indirect memory)

Die aus der Adressierungsangabe gebildete Adresse ist ein Verweis (Zeiger) auf ein

Speicherwort, in dem die effektive Operandenadresse zu finden ist (memory pointer).

Die Ermittlung der EA erfolgt zweistufig: Zuerst wird der Ort im Speicher ermittelt, an

dem die Zieladresse steht, und dann wird diese Zieladresse als EA eingesetzt. Man

nennt diesen Vorgang auch Adress-Substitution. Dabei kann die berechnete Adresse nur

das erste von mehreren Speicherwörtern bezeichnen, aus denen sich die gesamte effek-

tive Adresse zusammensetzt. In Abbildung 38 ist dies für zwei Speicherwörter darge-

stellt.

IR AD

Operand EA

EA – 1

EA + 1

AR

X

EA

+

offset AOP

Adresse Speicher

IR OP AD

Operand EA

EA – 1

EA + 1

AR

X

EA

+

offset A

Adresse Speicher

Kapitel 4åMCS101

Page 74: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

73

Abbildung 38:Indirekte mehrstufige Addressierung

Die Adress-Substitution kann mit den meisten Adressierungsarten kombiniert werden

und sie kann auch mehrfach stattfinden (bei heutigen Prozessoren ist dies nicht mehr

üblich).

RISC-Konzepte beschränken nicht nur die Zahl der Befehle, sondern auch die Adressie-

rungsarten. Es stellt sich die Frage, welche Adressierungsarten als vollständig gelten.

Die implizite Adressierung ist dabei immer integriert, sie ergibt sich sozusagen automa-

tisch. Für Sprungbefehle wird ausschließlich die (lange) absolute Adressierung benö-

tigt, wahlweise auch die absolut indirekte Adressierung. Die Nutzung von relativer

Adressierung ist nicht notwendig, aber nützlich. Für Datenadressierungen ist in jedem

Fall die unmittelbare Adressierung (Datenkonstanten) notwendig, ferner die absolute

Adressierung (Speicheradresse). Jedoch ist die direkte Adressierung allein ungünstig,

weil so z. B. Datenfelder (Arrays) in Schleifen nur über selbst modifizierenden Code

angesprochen werden können. Günstiger ist hier die Wahl der indizierten Adressierung.

4.5.44.5.44.5.44.5.4Adress-SystemeAdress-SystemeAdress-SystemeAdress-Systeme

Je nach Typ der CPU kann sich der Adressteil eines Befehls auf einen oder mehrere

Operanden beziehen. Wir werden uns im Folgenden Adresssysteme für eine, zwei und

drei Adressen ansehen und beispielhaft Ihre Arbeitsweise jeweils am gleichen Vorgang

betrachten: der Addition zweier Zahlen, die in den Speicherzellen 1000hex und 1001 hex

liegen und die Ablage des Ergebnisses in der Speicherzelle 1002 hex. Die nachfolgenden

Abbildungen beziehen sich dabei nur auf den Vorgang der Addition.

Ein-Adress-System (z. B. 68HC11)

Der Operand enthält immer nur eine Adresse. Ein Prozessor mit Von-Neumann-Archi-

tektur hat meist eine Ein-Adress-Struktur.

BBeispiel Addition:

Erster Befehl: Lade den Akku mit dem Inhalt der Speicheradresse 1000

Zweiter Befehl: Addiere zum Akkuinhalt den Inhalt der Speicheradresse 1001

Dritter Befehl: Speichere den Akkuinhalt in der Speicheradresse 1002

AR

IR AD

Adresse für erstes Speicherwort

EA

EA – 1

EA + 1

Adress-Rechnung

AR

OP

Operand

Adress-Substitution

EA

Speicher

Kapitel 4åMCS101

Page 75: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

74

Abbildung 39:Addition zweier Operanden

im Ein-Adress-System(R ist ein Register oder der

Akku)

Zwei-Adress-System (z. B. M68000)

Der Operand enthält zwei Adressen, eine der beiden ist gleichzeitig Quelle und Ziel.

B Beispiel Addition:

Erster Befehl: Addiere die Inhalte der Speicheradressen 1000 und 1001 (der erste Ope-

rand ist gleichzeitig Ergebnis-„Register“)

Zweiter Befehl: Speichere das Ergebnis in Speicheradresse 1002

Abbildung 40:Addition zweier Operanden

im Zwei-Adress-System

Drei-Adress-System (z. B. M88100, TI 9900)

Drei-Adress-Systeme arbeiten in der Regel nur noch mit Registerbänken im Speicher,

es gibt keine expliziten Rechenregister oder Akkumulatoren mehr.

B Beispiel Addition:

Einziger Befehl: Addiere die Inhalte der Speicheradressen 1000 und 1001 und lege das

Ergebnis in Speicheradresse 1002 ab.

Abbildung 41:Addition zweier Operanden

im Drei-Adress-System

4.64.64.64.6Byte-ReihenfolgeByte-ReihenfolgeByte-ReihenfolgeByte-Reihenfolge

Die Byte-Reihenfolge (engl. byte order) bezeichnet in der Computertechnik die Spei-

cherorganisation für Integerzahlen im Arbeitsspeicher. Eine Festlegung der Speicher-

reihenfolge muss erfolgen, wenn die Wortbreite des zu speichernden Wortes größer ist

als die Speicherwortbreite. So muss beispielsweise eine 16-Bit-Zahl in einem Speicher

mit 8 Bit Wortbreite in zwei aufeinander folgenden Speicherworten abgelegt werden.

Schließlich ist in dem Fall das Byte die kleinste adressierbare Einheit. Bei der Byte-

Reihenfolge der Speicherung gibt es zwei Varianten:

Bei Big-Endian („Groß-Ender“) wird das höchstwertige Byte zuerst gespeichert, also an

der kleinsten Speicheradresse. Big-Endian ist uns aus dem Alltag bekannt, etwa von der

deutschen Schreibweise der Uhrzeit als „Stunde:Minute:Sekunde“.

OP AD

Speicher

R +

OP AD1

Speicher

AD2

+

OP AD1

Speicher

AD2 AD3

+

Kapitel 4åMCS101

Page 76: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

75

Bei Little-Endian („Klein-Ender“) wird dagegen das niederstwertige Byte an der kleins-

ten Speicheradresse gespeichert – wie zum Beispiel bei der deutschen Datumsschreib-

weise „Tag.Monat.Jahr“.

Die Begriffe „Big-Endian“ und „Little-Endian“ benennen also dasjenige Ende der Zah-

lendarstellung, das an der kleinsten Adresse gespeichert wird. In der Entwicklungsge-

schichte der Mikroprozessoren hat sich Motorola (heute Freescale) für Big-Endian ent-

schieden, Intel dagegen für Little-Endian.

BBeispiel:

Im folgenden Beispiel wird die binäre Ganzzahl 00010001 00100010 00110011

01000100 (hexadezimal: 11 22 33 44) als 32-Bit-Integer-Wert unter der Adresse

1000hex gespeichert. Die Speicherung erfolgt in vier Bytes. Bei Big Endian erfolgt die

Speicherung in der Reihenfolge, wie in Abbildung 42 angegeben. Das heißt, die

Adresse des Speicherworts ist die Adresse des höchstwertigen Bytes des Speicherworts.

Abbildung 42:Speichern eines 32-Bit-Worts in byte-adressiertem Speicher, Format Big-Endian

Die Speicherung in der umgekehrten Reihenfolge entspricht dagegen Little Endian.

Abbildung 43:Speichern eines 32-Bit-Worts in byte-adressiertem Speicher, Format Little-Endian

Wichtig ist die Byte-Reihenfolge unter anderem bei der Übertragung von Binärdateien

zwischen zwei Systemen. Gegebenenfalls muss sie beim Bearbeiten oder Einlesen

angepasst werden. Das Gleiche gilt auch für die Datenübertragung in Computernetzen.

Hier ist die Byte-Reihenfolge als Network Byte Order festgeschrieben. Beim Internet-

Protokoll beispielsweise entspricht die Network Byte Order dem Big-Endian-Format.

Die Byte-Reihenfolge eines Rechners im Netz wird als Host Byte Order bezeichnet.

Die Bezeichnungen gehen übrigens auf den Roman „Gullivers Reisen“ von Jonathan

Swift zurück, in dem die Bewohner des Landes Liliput in zwei verfeindeten Gruppen

leben: Die einen schlagen ihre Eier am dicken (großen) Ende auf und werden deshalb

als „Big Ender“ bezeichnet, während die „Little Ender“ die Eier am spitzen (kleinen)

Ende köpfen.

Adresse für 32-bit-Wort 1000

1001

1002

1003

11

22

33

44

Big Endian

Speicher

Adresse für 32-bit-Wort 1000

1001

1002

1003

44

33

22

11

Little Endian

Speicher

Kapitel 4åMCS101

Page 77: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

76

K [13] Was versteht man unter dem Programmiermodell eines Prozessors?

K [6] Wie wird bei der indizierten Adressierung die effektive Adresse gebildet?

K [22] Erläutern Sie die Begriffe Operationscode und Operand eines Maschinenbefehls.

K [39] Grenzen Sie die Begriffe Register und Speicher gegeneinander ab. Wo befinden sich die

Register normalerweise?

Der Programmierer arbeitet mit dem Programmiermodell, unter dem alle dem zu-

gänglichen oder veränderbaren Register der CPU zu verstehen sind.

Die meisten Befehle gestatten mehrere Adressierungsarten, aber nicht alle von ihnen

lassen sich auf jeden Befehl anwenden. Jede zulässige Adressierungsart bei einem

Befehl führt zu einem eigenen Operations-Code. Der Speicherbedarf und die Aus-

führungsdauer eines Befehls hängen von der Adressierungsart ab. Außerdem unter-

scheidet man Einadress-, Zweiadress- und Dreiadress-Systeme.

Wenn die Wortbreite des zu speichernden Wortes größer ist als die Speicherwort-

breite, muss außerdem darauf geachtet werden, ob der Prozessor Integerzahlen im

Big-Endian- oder im Little-Endian-Format im Speicher ablegt.

Kapitel 4åMCS101

Page 78: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

77

5555Speicher und Ein-/AusgabeSpeicher und Ein-/AusgabeSpeicher und Ein-/AusgabeSpeicher und Ein-/Ausgabe

In diesem Kapitel werden wir Speicher und E/A-Einheiten betrachten, die bei einem

Mikrocomputersystem außerhalb der CPU liegen und mit dieser über das Bussystem

verbunden sind. Bei Mikrocontrollern sind Speicher, E/A und Timer auf dem Chip inte-

griert und können häufig durch externe Komponenten erweitert werden. Die Ein- und

Ausgabe besteht aus speziellen E/A-Bausteinen, die als IC zahlreich und passend für

viele Mikroprozessor-Typen angeboten werden. Zu den E/A-Komponenten gehören

auch Schaltungen, die das Einlesen und Ausgeben analoger Werte erlauben.

5.15.15.15.1SpeicherSpeicherSpeicherSpeicher

Für die verschiedenen Einsatzbereiche der Speicher werden unterschiedliche Speicher-

arten verwendet, die sich unterscheiden hinsichtlich:

– Speichermedium und physikalischem Arbeitsprinzip

– Organisationsform

– Zugriffsart

– Leistungsparameter

– Preis

In den folgenden Kapiteln werden wir auf die verschiedenen Speicherarten ausführlich

eingehen. Hier aber werden wir zunächst noch einige Grundbegriffe klären.

Speicherkapazität und Präfixe

Die Speicherkapazität ist das Fassungsvermögen eines Speichers. Sie ist bestimmt durch

die Anzahl der Speicherzellen, die ein Speicher enthält. Die gebräuchliche Einheit für die

Speicherkapazität ist nach wie vor das Byte, auch wenn viele Speicher mit größerer Wort-

breite arbeiten. Für große Zahlen verwendet man in Anlehnung an das Dezimalsystem die

Zusätze „K“, „M“, „G“ und „T“ für Kilo, Mega, Giga und Tera. Da aber die Speicher

wegen der binären Adressierung nicht dezimal organisiert sind, liegt hier nicht der Faktor

103, sondern 210 zugrunde, also nicht 1000, sondern 1024. Damit handelt es sich bei z. B.

einem MByte um 1.048.576 Byte, bei einem GByte um 1.073.741.824 Byte. Aus Grün-

den der Werbung haben aber in den 1980er-Jahren die Hersteller von Festplatten wieder

das Dezimalsystem für die Plattenkapazität eingeführt. So wurde damals auf wunderbare

Weise aus einer 40-MByte-Platte eine 42-MByte-Platte (41,943040 aufgerundet).

Um diese Mehrdeutigkeiten zu vermeiden, schlug die Internationale elektrotechnische

Kommission (IEC) im Juni 1996 einen neuen Normentwurf für Binärpräfixe vor, die

nur in der binären Bedeutung verwendet werden sollten. Dieser Entwurf wurde im

Dezember 1999 als Norm veröffentlicht. Er führte neue Präfixe für binäre Vielfache

von Einheiten ein (Tabelle 10). In diesen Bezeichnungen wurden die ersten zwei Buch-

staben der bereits genormten (dezimalen) SI-Präfixe um „bi“ für „binär“ ergänzt. Für

die Symbole der Binärpräfixe wurden die Symbole der SI-Präfixe verwendet und an

diese der Kleinbuchstabe „i“ angehängt. Bisher haben sich diese Präfixe aber in der Pra-

xis nicht durchsetzen können.

Kapitel 5åMCS101

Page 79: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

78

Tabelle 10:Übersicht der Binärpräfixe

Die Lokalisierung eines gespeicherten Datums erfolgt mittels der Adresse durch eine

eindeutige Identifikation des Speicherelements, in dem sich das Datum befindet. In der

Regel ist nicht jedem einzelnen Bit des Speichers eine Adresse zugeordnet, sondern

jeweils einem ganzen Byte oder einem Wort. Eine solche kleinste adressierbare Einheit

eines Speichers heißt Speicherzelle oder Speicherwort.

Zur Unterscheidung von Speichern sind weitere Kriterien hilfreich.

Zugriffsart: Damit ist die Methode gemeint, mit der auf Speicherzellen zugegriffen wer-

den kann. Ist jede Speicherzelle eines Speichers unabhängig von ihrer Position auf die

gleiche Weise mit dem gleichen zeitlichen Aufwand erreichbar, so spricht man von

Speichern mit wahlfreiem oder direktem Zugriff. Der Hauptspeicher eines Rechners ist

immer ein Speicher mit wahlfreiem Zugriff. Externe Speicher, bei denen die Speicher-

zellen nur zeitperiodisch erreichbar sind, heißen Speicher mit zyklischem Zugriff. Diese

im Vergleich zum schnellen wahlfreien Zugriff sehr langsame Zugriffsart haben Spei-

cher, bei denen die Speicherzellen rotieren und nur periodisch zugänglich sind, z. B.

Magnetplattenspeicher. Hier kann auch nicht auf ein einzelnes Byte oder Wort zugegrif-

fen werden, sondern nur auf einen Datenblock bestimmter Länge.

Schließlich gibt es noch sequentielle Speicher. Die Speicherung und das Auffinden der

Information geschehen hierbei in einer festen Reihenfolge. Der direkte Zugriff auf

beliebige Speicherplätze ist nicht möglich. Das Auffinden von Daten erfolgt nicht über

eine Adressinformation, sondern über die Reihenfolge der Anordnung der Daten (z. B.

Magnetband).

Zugriffszeit: Zeit, die zum Lesen bzw. Schreiben einer Speicherzelle benötigt wird. Sie

setzt sich zusammen aus der Zeit zur Lokalisierung und Ansteuerung der betreffenden

Speicherzelle und der Schaltzeit der Speicherelemente. Die Zugriffszeit liegt je nach

Typ des Speichers zwischen wenigen Nanosekunden (10–9 s) und mehreren Sekunden.

Die Hauptspeicher heute üblicher Rechner haben Zugriffszeiten von 50 bis 500 ns.

Zykluszeit: Zeitspanne vom Beginn eines Speicherzugriffs bis zu dem Zeitpunkt, an

dem ein neuer Speicherzugriff beginnen kann. Die Zykluszeit setzt sich zusammen aus

der Zugriffszeit und möglicherweise einer Regenerationszeit, in der beim Lesen zer-

störte Informationen in den Speicher zurückgeschrieben werden.

NameNameNameName SymbolSymbolSymbolSymbol Wert Wert Wert Wert

kibi Ki 210�=�10241�=�1.024

mebi Mi 220�=�10242�=�1.048.576

gibi Gi 230�=�10243�=�1.073.741.824

tebi Ti 240�=�10244�=�1.099.511.627.776

pebi Pi 250�=�10245�=�1.125.899.906.842.624

exbi Ei 260�=�10246�=�1.152.921.504.606.846.976

zebi Zi 270�=�10247�=�1.180.591.620.717.411.303.424

yobi Yi 280�=�10248�=�1.208.925.819.614.629.174.706.176

Kapitel 5åMCS101

Page 80: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

79

5.25.25.25.2ArbeitsspeicherArbeitsspeicherArbeitsspeicherArbeitsspeicher

Der Speicher ist die Rechnerkomponente zum Aufbewahren von Daten. Der zentrale

Speicher wird als Hauptspeicher oder Arbeitsspeicher bezeichnet. Er kann gelesen und

neu beschrieben werden. Daneben befinden sich auch in der CPU Speicher, die Sie

bereits kennengelernt haben: Register und Pufferspeicher für Befehle (Pipelining).

Der Arbeitsspeicher soll einen möglichst schnellen Zugriff der CPU auf Daten und Be-

fehle gestatten. Er besitzt einen eingeschränkten Adressumfang, der durch die Adress-

busbreite der CPU festgelegt ist. Da nicht alle benötigten Informationen ständig direkt

für die CPU verfügbar sein müssen, wird der Arbeitsspeicher durch periphere Speicher

(Hintergrundspeicher, externe Speicher) ergänzt. Das sind Plattenspeicher, DVDs, Mag-

netbandspeicher, etc. Diese Speicher zeichnen sich gegenüber dem Arbeitsspeicher

durch eine hohe Speicherkapazität und geringe Kosten pro Bit aus. Deren Zugriffszeit ist

hingegen länger.

Die Zugriffsgeschwindigkeit zum Arbeitsspeicher sollte möglichst der Arbeitsgeschwin-

digkeit der CPU angepasst sein, sonst muss die CPU beim Speicherzugriff unnötig lange

warten. Sehr schnelle Speicher lassen sich nur mit sehr kleiner Kapazität realisieren und

sind außerdem teuer. Andererseits wird für den Arbeitsspeicher eine bestimmte Kapazi-

tät benötigt. Eine Abhilfe ist das Zwischenschalten eines schnellen Pufferspeichers

(engl. Cache Memory) zwischen Arbeitsspeicher und CPU. Er enthält den „aktuellen“

Teil der Informationen.

Jeder Cache besteht aus einem Datenbereich und einem Tag-Bereich (Identifikations-

bereich). Die Kapazität des Cache-Datenbereichs ist in der Regel deutlich kleiner als die

Hauptspeicherkapazität. Der Tag-Bereich enthält den Teil der Adresse, der die Herkunft

eines Cache-Eintrags aus dem Hauptspeicher eindeutig identifiziert. Der Cache ist so-

mit funktionell Teil des Arbeitsspeichers, jedoch in der Regel im CPU-Chip integriert.

Der Cache wird nicht nur mit dem gerade adressierten Wort des Arbeitsspeichers, son-

dern mit einem ganzen Block, von dieser Adresse beginnend, geladen. Eine typische

Blockgröße ist 4 bis 16 Worte. Programmcode und -daten liegen nicht wild verstreut im

Adressraum, sondern sind in der Regel hintereinander, also lokal angeordnet. Auch

viele Datenstrukturen wie Arrays liegen hintereinander im Speicher. Aufgrund dieser

Lokalitätseigenschaft ist die Wahrscheinlichkeit, dass die folgenden benötigten Infor-

mationen schon im Cache stehen, sehr hoch, sodass sie entsprechend schnell in die CPU

gelangen können.

Je nach Lage des Cache-Speichers (Abbildung 28) unterscheidet man:

– Level 1 (L1): Der Cache ist in den Prozessor integriert.

– Level 2 (L2): Der Cache befindet sich in einem eigenen Baustein, der über eine

schnelle Verbindung an den Prozessor angeschlossen ist.

Ein Cache ist ein schneller Zwischenspeicher innerhalb der CPU oder in CPU-

Nähe, der Befehle oder Operanden des Programms bereithalten soll, auf die häu-

fig zugegriffen werden muss.

Kapitel 5åMCS101

Page 81: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

80

Abbildung 44:Cache-Organisation

innerhalb (L1-Cache) undaußerhalb (L2-Cache) des

CPU-Chips

Neben diesen beiden Hauptklassen werden auch die Bezeichnungen Level 0 bei Ent-

kopplung der Komponenten innerhalb der CPU und Level 3 bei Systemen mit mehreren

Prozessoren verwendet. Weiterhin werden oft getrennte Cache-Speicher für Programme

und Daten eingesetzt.

Auch zwischen RAM und Hintergrundspeicher gibt es Cache-Speicher. Diese sollen die

zeitintensiven Zugriffe auf den Hintergrundspeicher durch Pufferung vermindern.

Die Gesamtheit aller Speicher bildet eine Hierarchie:

Register – Cache-Speicher – Arbeitsspeicher – Cache-Speicher – Hintergrundspeicher

Die Speicherkapazität nimmt von links nach rechts zu, Preis und Zugriffsgeschwindig-

keit nehmen dagegen ab. Der Zugriff auf einen Speicher tieferer Hierarchiestufe erfolgt

nur, wenn die gewünschte Information sich nicht in der höheren Stufe befindet. Der

Informationstransport erfolgt blockweise.

Eine andere Einteilung unterscheidet Primärspeicher, Sekundärspeicher und Tertiär-

speicher. Dabei wird der Arbeitsspeicher als Primärspeicher bezeichnet, während

schnelle Festspeicher (z. B. Festplatte) als Sekundärspeicher und langsame Archivie-

rungsmedien (z. B. Magnetband) als Tertiärspeicher bezeichnet werden.

Die Eigenschaften der in einem Mikrocomputer eingesetzten Speicher bestimmen ent-

scheidend dessen Leistungsfähigkeit. Die gespeicherte Information ist ausschließlich

binär. Daher bestehen die Speicher aus Grundelementen, die nur zwei verschiedene dis-

krete Zustände annehmen können. Bei den Registern handelt es sich hierbei fast immer

um Flipflops. Die Speicherung kann aber auch in jeweils begrenzten Bereichen kontinu-

ierlicher Medien erfolgen, wie z. B. bei der Magnetplatte oder dem Magnetband. Mit

Ausnahme der Register enthalten Speicher eine hohe Anzahl von Informationen. Es

muss daher die Möglichkeit der Auswahl der gewünschten Einzelinformation geben.

Beim Zugriff auf Informationen tauchen immer wieder drei Begriffe auf:

Als Lesen bezeichnet man die Entnahme der Information aus dem Speicher, als

Schreiben das Eintragen der Information in den Speicher und als Speicherzugriff

das Lesen oder Schreiben.

Kapitel 5åMCS101

Page 82: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

81

Die relevanten Informationseinheiten müssen nicht notwendigerweise einzelne Bits,

sondern können auch Bytes beziehungsweise Worte sein. Den Speicherbereich für ein

Bit nennt man Speicherzelle1. Je nachdem, ob die Informationseinheiten, die mit einem

einzigen Speicherzugriff erreicht werden können, einzelne Worte oder mehrere Worte

sind, unterscheidet man wortorganisierte und blockorganisierte Speicher.

Wortorganisierte Speicher sind, wie der Name schon sagt, so organisiert, dass auf jedes

einzelne Speicherwort wahlfrei zugegriffen werden kann. Dazu gehört selbstverständ-

lich der Arbeitsspeicher. Bei ihm handelt es sich um einen statischen oder dynamischen

Halbleiterspeicher, der Lesen und Schreiben erlaubt. Er wird daher als RAM (Random

Access Memory = Speicher mit wahlfreiem Zugriff2) oder als Schreib-Lese-Speicher

bezeichnet.

Die Speicherung der Daten erfolgt dabei durch Flipflop-Schaltungen. Diese können so-

wohl in bipolarer Technologie (TTL, ECL) als auch in MOSFET-Technologie (CMOS)

realisiert sein.

Bei der bipolaren Transistor-Zelle besteht das Speicher-Flipflop aus zwei Multiemitter-

Transistoren, bei einer CMOS-Zelle besteht es aus zwei CMOS-Invertern.

Statische Speicher eignen sich für sehr schnelle Anwendungen, z. B. Cache-Speicher in

einem PC. Sie sind sehr teuer und haben eine relativ geringe Speicherdichte pro Chip.

Die Speicherung der Daten erfolgt hierbei auf der Basis von Kapazitäten, wie bei Kon-

densatoren. Damit die Daten nicht verloren gehen ist eine ständige Auffrischung (engl.

Refresh) des Speichers erforderlich, da der Speicherkondensator durch Leckströme an

Ladung verliert. Wegen des einfachen Aufbaus ergeben sich aber geringe Kosten und

eine hohe Speicherdichte pro Chip. Typische Anwendung ist der Arbeitsspeicher in

PCs.

Das Auffrischen kann so organisiert werden, dass es den normalen Betrieb nicht behin-

dert. Teilweise ist eine externe Auffrischlogik notwendig, bei sogenannten quasistati-

schen RAMs ist sie bereits in den Baustein integriert. Der Urtyp des dynamischen RAM

(DRAM) wurde immer weiter entwickelt. Einige dieser Entwicklungen sind:

P Synchronous DRAM (SDRAM): Bei SDRAM-Bausteinen wird ein Teil der Steuerlo-

gik in den Speicherbaustein integriert. Diese Bausteine können nicht nur einzelne

Werte zurückgeben, sondern „verstehen“ einfache Befehle. So können mit einer

1 Damit ist die physikalische Realisierung eines 1-Bit-Speichers gemeint. „Speicherzelle“ wird auch synonym zu „Speicherwort“ verwendet und so haben wir es bisher auch getan.2 Dazu mehr im nachfolgenden Text unter dem Stichwort Zugriffsart.

Statische oder nichtflüchtige RAM-Speicher behalten ihren Inhalt, solange die

Versorgungsspannung eingeschaltet bleibt.

Dynamische oder flüchtige RAM-Speicher verlieren ihre gespeicherten Informa-

tionen nach einem bestimmten Zeitintervall.

Kapitel 5åMCS101

Page 83: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

82

Anforderung mehrere aufeinander folgende Speicherzellen gelesen werden. Dadurch

werden die häufig vorkommenden Blocktransfers beschleunigt.

P Double data rate (DDR) SDRAM: Eine Verbesserung der SDRAM sind die DDR-

SDRAM. Indem sowohl auf die steigende als auch auf die fallende Flanke des Takt-

signals reagiert wird, wird die Datenrate verdoppelt.

P Rambus DRAM (RDRAM): Eine Weiterentwicklung mit noch höheren Übertragungs-

raten bietet die von der Firma Rambus entwickelte Technologie. Laut Hersteller wer-

den damit Übertragungsraten von 4 bis 5 GByte pro Sekunde erreicht.

P Synchronous graphics RAM (SGRAM): Speziell für Grafikkarten ausgelegt sind

SGRAM-Bausteine. Sie unterstützen schnelle Blocktransfers sowie spezielle Maskie-

rungsoperationen.

Aufbau

Da die Wortbreite gegenüber der Anzahl der Speicherworte sehr klein ist, würde sich

bei der vollständigen Decodierung der Adresse eine ungünstige räumliche Anordnung

der Speicherzellen ergeben. Deshalb teilt man die Adressbits und ordnet die Speicher-

zellen (bzw. Speicherworte) in Zeilen und Spalten einer annähernd quadratischen Mat-

rix an. Neben dieser Speichermatrix enthält ein Speicherbaustein:

– Zeilen-Adressdecoder (Wort-Decoder) und -Register

– Spalten-Adressdecoder und -Register

– Dateneingang und Datenausgang

– Lese-/Schreib-Steuersignale (RD/WR)

– Chip-Select-Signal (CS) oder Chip-Enable-Signal (CE)

– Leseverstärker

– Spaltenschalter

In Abbildung 45 ist ein entsprechender Aufbau beispielhaft dargestellt. Die Adressbits

A0 bis A3 geben hier die Spalte in der Speichermatrix an, die Adressbits A4 bis A9 die

Zeile. Entsprechend der vier Anschlüsse I/Ox, über welche die Daten gelesen oder ge-

schrieben werden, handelt es sich um einen Speicher mit 4 Bit Wortbreite.

Das Adressregister dient als Zwischenspeicher für die gewünschte Adresse. Über die

beiden Teile des Adressdecoders wird eine einzelne Speicherzelle (Bit oder Speicher-

wort) ausgewählt. Lese- und Schreibregister bilden die Schnittstelle zur CPU oder zum

Datenbus.

Das Chip-Select-Signal erlaubt die Auswahl einzelner Speicherbausteine aus einer

Gruppe von Speichern, die auf dem Adress- und Datenbus parallel geschaltet sind. Per

CS kann nun ein Baustein aktiviert werden, während alle anderen ihre Ausgänge hoch-

ohmig geschaltet haben. Dies erlaubt die Erweiterung der Speicherkapazität des

Arbeitsspeichers über die Bausteinkapazität hinaus.

Kapitel 5åMCS101

Page 84: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

83

Abbildung 45:Beispielhafter Aufbau eines Speichers

Vor allem sehr hoch integrierte Halbleiterspeicher sind bitorganisiert, das heißt, die

Wortbreite ist 1 Bit. Es gibt aber auch Speicherbausteine, die selbst schon wortorgani-

siert sind (meist 4 oder 8 Bit). Heute werden im Arbeitsspeicher – bis auf wenige Aus-

nahmen – Halbleiterspeicher eingesetzt. Sie besitzen eine große Speicherdichte, die

Ein- und Ausgänge sind direkt kompatibel mit den übrigen Bauteilen des Systems, sie

haben einen geringen Platzbedarf und sie sind kostengünstig und schnell.

5.35.35.35.3FestwertspeicherFestwertspeicherFestwertspeicherFestwertspeicher

Da der Arbeitsspeicher beim Abschalten der Stromversorgung seinen Inhalt verliert,

existiert für die dauerhafte Speicherung in einem Mikrocomputersystem noch ein Fest-

wertspeicher. Hier unterscheidet man

– ROM (Read Only Memory = Nur-Lese-Speicher),

– PROM (Programmable ROM),

– EPROM (Erasable PROM) und

– EEPROM (Electrically Erasable PROM).

Auch diese Speicher haben wie das RAM einen wahlfreien Zugriff auf die einzelnen

Speicherworte. Der Zugriff ist jedoch vom Prozessor aus zunächst nur lesend möglich.

Programme können in jeden dieser Speicherbereiche geladen und in jedem Bereich aus-

geführt werden. Darüber hinaus ist zu den genannten ROM-Typen Folgendes zu sagen:

ROM (Read Only Memory): Der Speicherinhalt bleibt nach Wegnahme der Betriebs-

spannung erhalten. Er wird beim Fertigungsprozess (nach Angaben des Anwenders)

festgeschrieben. Sinnvoll ist dies nur bei großen Stückzahlen.

PROM (Programmable ROM): Der Speicherinhalt wird mit speziellen Programmierge-

räten eingeschrieben. Der Inhalt ist danach unveränderlich. Das PROM besitzt eine

lange Lebensdauer. Der Einsatz ist nur sinnvoll bei kleinen Stückzahlen. Zu den PROMs

im weitesten Sinn zählt auch das NMOS-PROM. Dies ist eigentlich ein EPROM ohne

Löschmöglichkeit, also ein EPROM, das nur ein einziges Mal programmiert werden

kann.

Zeilen-decoder

Speichermatrix

Spaltendecoder

Kapitel 5åMCS101

Page 85: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

84

EPROM (Erasable PROM): Auch hier wird der Speicherinhalt mit speziellen Program-

miergeräten eingeschrieben. Die Bausteine können aber durch Bestrahlung mit UV-

Licht gelöscht und neu beschrieben werden. Der Inhalt der Speicherzellen bleibt für ca.

10 Jahre erhalten. Früher wurde das EPROM häufig bei der Prototypenentwicklung und

bei Geräten mit geringer Lebensdauer eingesetzt – inzwischen ist es vom EEPROM

abgelöst worden.

EEPROM (Electrically Erasable PROM): Einfacher als beim EPROM, kann der Spei-

cherinhalt mit elektrischen Impulsen gelöscht und der Baustein neu programmiert wer-

den. Es gibt EEPROMs, die zur Programmierung aus der Schaltung heraus genommen

werden müssen, aber auch solche, die in der Schaltung verbleiben können. Eingesetzt

werden sie bei Geräten, die nur gelegentlich Datenänderungen erfordern, wie z. B. Pro-

grammspeicher bei vielen Microcontrollern oder Konfigurationsspeicher. EEPROMs

verhalten sich wie RAMs mit einem sehr langen Schreibzyklus, die aber die gespei-

cherte Info nach dem Abschalten der Versorgung behalten. Die Zahl der Schreibzyklen

ist zwar begrenzt, aber um ein Vielfaches höher als bei EPROMS (etliche 100000 Mal).

Eine verbreitete Variante des EEPROMs ist unter dem Namen Flash-Speicher bekannt.

Auf der Basis von Flash-EEPROMS sind seit Ende der 90er-Jahre verschiedene Spei-

chermedien auf den Markt gekommen, die sich durch die Schnittstelle zum Computer

unterscheiden. So kennt wohl jeder die Speicher-Sticks, die per USB-Schnittstelle ange-

sprochen werden. Darüber hinaus sollen hier einige aufgeführt sein:

Der von Sony entwickelte Memory Stick ist 21 × 50 × 2,8 mm groß und vier Gramm

leicht. Dieser Speicher wird bislang fast ausschließlich in Sony-Produkten eingesetzt.

Die nur knapp 0,8 mm hohen Smart-Media-Karten sind etwa halb so groß wie eine

Scheckkarte. Weil sie so flach sind, passt die Elektronik zur Steuerung (Controller)

nicht mehr mit auf die Karte. Damit ist die Smart-Media-Karte von den Geräten abhän-

gig, in denen sie eingesetzt wird. Smart-Media-Karten werden sowohl in MP3-Playern

als auch in Digitalkameras eingesetzt.

Die CompactFlash Cards wurden bereits 1994 von SanDisk eingeführt. Die Speicher-

karten sind mit ihren Abmessungen von 43 × 36 × 3,3 mm etwa halb so groß wie eine

PC-Card. Sie beherbergen einen Flash-Speicherbaustein und einen Controller, der sie

bis auf den Stecker zu einer AT-Bus-Festplatte kompatibel macht.

Mit einer Größe von 24 × 32 × 1,4 mm sind die Multimedia Cards (SD Cards) die

kleinsten Medien unter den mobilen Speichern und nur halb so groß wie Compact Flash

Karten. In der Bauform der microSD Card sind sie sogar nur noch halb so groß wie der

Nagel des kleinen Fingers. Somit eignen sie sich besonders gut für den Einsatz in

Mobiltelefonen. Die Steuerelektronik für den Speicher (Controller) ist auf der Karte

eingebaut.

Kapitel 5åMCS101

Page 86: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

85

5.45.45.45.4Zusammenschalten von SpeicherbausteinenZusammenschalten von SpeicherbausteinenZusammenschalten von SpeicherbausteinenZusammenschalten von Speicherbausteinen

Der Gesamtspeicher kann durch Zusammenschaltung von Speicherbausteinen erweitert

werden. Diese kann

– in Bitrichtung (Wortbreite des Speichers < Wortbreite des Mikroprozessors),

– in Wortrichtung (Wortbreite des Speichers = Wortbreite des Mikroprozessors) oder

– gemischt (Wort- und Bitrichtung) erfolgen.

Bei der Zusammenschaltung in Bitrichtung werden alle Bausteine parallel adressiert.

Die einzelnen Bausteine ergänzen einander auf eine bestimmte Wortbreite. So waren

beispielsweise in frühen PC-Jahren auf den Speicherriegeln oft zwei Bausteine mit einer

Wortbreite von jeweils 4 Bit zu finden, der Speicherriegel selbst hatte dann eine Wort-

breite von 8 Bit.

Bei Zusammenschaltung in Wortrichtung wird die Anzahl der Speicherworte erhöht. In

diesem Fall gilt, dass zur Wortadressierung innerhalb des Bausteins nur ein Teil der

Adresse verwendet wird und der Rest der Adresse zur Bausteinauswahl dient. Die ein-

zelnen Speicherbereiche der Bausteine liegen dann im Adressraum hintereinander.

Besitzt der Speicherbaustein mehrere CS-Eingänge, kann die Decodierung auf dem

Baustein erfolgen. Andernfalls ist eine externe Decodierung nötig. Fallweise werden

auch externe und interne Decodierung kombiniert. Das Beispiel in Abbildung 46 zeigt

die Zusammenschaltung in Wortrichtung, codierte Bausteinauswahl und externe Deco-

dierung.

Abbildung 46:Speicherzusammen-schaltung mit externer Decodierung

Ist der Adressraum des Mikroprozessors breiter als der zur Speicheradressierung einge-

setzte Adressbus, tritt Mehrfachadressierung auf: Adressen, die sich nur in den unbe-

nutzten höherwertigen Bits unterscheiden, sprechen die gleiche Speicherzelle an. Dieser

Effekt kann erwünscht sein: Beispielsweise adressiert das Entwicklungssystem seinen

Datenspeicher ab der Adresse 8000, der Steuerungsrechner ab Adresse 0. Gelegentlich

muss noch ein Signal zur zeitlichen Koordination der Speicherzugriffe eingesetzt wer-

den. Bei ROM- und EEPROM-Bausteinen gibt es häufig noch einen Eingang zum

Schalten der Ausgänge in den Tri-State-Zustand (OE = Output Enable), sodass man

mehrere Ausgänge ohne Überlagerung zusammenschalten kann.

Kapitel 5åMCS101

Page 87: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

86

K [15] Welche Unterschiede bestehen bei RAM- und ROM-Speichern?

K [42] Welche Typen von Nur-Lese-Speichern kennen Sie außer dem ROM?

K [29] Welche Unterschiede bestehen bei dynamischen und statischen RAM-Speichern?

K [37] Ein in Zeilen und Spalten organisierter Speicherbaustein hat eine Kapazität von 32 KiBit.

Wie viele Adressleitungen hat der Baustein? Wie viele der Adressleitungen werden

intern zur Zeilen- und Spalten-Auswahl in der möglichst quadratischen Speichermatrix

verwendet?

K [34] Ein Speicher von 512 MiByte soll aus einzelnen Bausteinen zusammengesetzt werden.

Wie viele Bausteine benötigt der Speicher, wenn folgende Typen zur Verfügung stehen:

a) 64M × 8 (64Mi Worte, 8 Bit Wortbreite)

b) 128M × 4 (128Mi Worte, 4 Bit Wortbreite)

c) 256M × 1 (256Mi Worte, 1 Bit Wortbreite)

K [23] Was ist ein Cache-Speicher?

Der Speicher ist die Rechnerkomponente zum Aufbewahren von Daten. Der zentrale

Speicher wird als Hauptspeicher oder Arbeitsspeicher bezeichnet. Er kann zur Pro-

grammlaufzeit gelesen und neu beschrieben werden. Der Arbeitsspeicher soll einen

möglichst schnellen Zugriff der CPU auf Daten und Befehle gestatten. Er besitzt

einen eingeschränkten Adressumfang, der durch die Adressbus-Breite der CPU fest-

gelegt ist. Ein Cache ist ein schneller Zwischenspeicher, der Befehle oder Operanden

des Programms bereithalten soll, auf die häufig zugegriffen werden muss. Hinter-

grundspeicher (externe Speicher) sind Plattenspeicher, DVDs, Magnetbandspeicher,

etc. Sie zeichnen sich durch eine hohe Speicherkapazität aus. Ihre Zugriffszeit ist

hingegen länger als beim Arbeitsspeicher.

Die Gesamtheit aller Speicher bildet eine Hierarchie:

Register – Cache-Speicher – Arbeitsspeicher – Cache-Speicher – Hintergrund-

speicher

Die Speicherkapazität nimmt von links nach rechts zu, Preis und Zugriffsgeschwin-

digkeit nehmen dagegen ab.

Statische oder nichtflüchtige RAM-Speicher behalten ihren Inhalt, solange die Ver-

sorgungsspannung eingeschaltet bleibt. Dynamische oder flüchtige Speicher verlie-

ren ihre gespeicherten Informationen nach einem bestimmten Zeitintervall und

bedürfen einer ständigen Auffrischung.

Für die dauerhafte Speicherung in einem Mikrocomputersystem benötig man einen

Festwertspeicher. Hier unterscheidet man ROM (Read Only Memory), PROM (Pro-

grammable ROM), EPROM (Erasable PROM) und EEPROM (Electrically Erasable

PROM). Programme können in jeden dieser Speicherbereiche geladen und in jedem

Bereich ausgeführt werden.

Kapitel 5åMCS101

Page 88: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

87

5.55.55.55.5Ein-/AusgabeEin-/AusgabeEin-/AusgabeEin-/Ausgabe

Eine Ein-/Ausgabeeinheit steht im Konzept des Von-Neumann-Rechners für die Logik,

welche den Computer mit der Peripherie, also mit „draußen“ verbindet. „Draußen“ be-

deutet dabei nicht „außerhalb des Gehäuses“, sondern „nicht mehr zu dem eigentlichen,

universellen Von-Neumann-Konzept gehörend“. Eine Grafikkarte, für einen PC ein not-

wendiges Bauteil zur Kommunikation mit dem Benutzer, ist bereits „draußen“ – und

heutzutage ein spezialisierter Rechner für sich. Zu den Ein- und Ausgabeeinheiten eines

PC gehören also z. B. der PCI-Bus für Einsteckkarten ebenso wie ein SCSI-Interface

zum Anschluss von Peripheriegeräten oder eine serielle Schnittstelle für den Anschluss

einer Maus. Bei einem Embedded System bestehen Ein-/Ausgabeeinheiten aus digitalen

Anschlüssen, die parallel und seriell arbeiten können, und manchmal auch analogen An-

schlüssen.

An der E/A-Schnittstelle findet ein Datentransport zwischen CPU und Peripherie statt.

Dieser kann in nur einer Richtung oder bidirektional stattfinden. Um den Datentransport

zu ermöglichen, ist eine Anpassung der Datendarstellung zwischen CPU und Peripherie

erforderlich. Diese umfasst folgende Aspekte:

– Zeitliche Anpassung (CPU und Peripherie arbeiten im Allgemeinen nicht zeitsyn-

chron)

– Signalumsetzung (z. B. Anpassung des Signalpegels)

– Datenformatanpassung (z. B. seriell/parallel-Wandlung)

– Codewandlung

– Fehlererkennung und -korrektur

Bei Mikrocomputersystemen trifft man normalerweise getrennte E/A-Bausteine an, bei

Mikrocontrollern sind die E/A-Einheiten im Chip des Controllers integriert. Im Folgen-

den sind beide Fälle unter dem Begriff „E/A-Baustein“ zusammengefasst.

Eine E/A-Schnittstelle kann von unterschiedlicher Komplexität sein:

P Im einfachsten Fall besteht sie aus einer rein hardwaremäßigen Anpassung und Um-

setzung. Die gesamte Steuerung des Datentransfers erfolgt durch die CPU. Beispiel:

parallele Eingabekanäle zum Einlesen binärer Sensorsignale.

P Komplexere Peripherie-Bausteine können den Datentransfer autonom durchführen.

Sie werden von der CPU nur angestoßen und wickeln den Datentransfer ohne weitere

Hilfe der CPU ab. Hier wird das Prinzip des Direkt-Speicher-Zugriffs (DMA =

Direct Memory Access) angewendet, bei dem der Datentransport direkt zwischen

Peripherie und Speicher erfolgt. Dieses Prinzip verwenden beispielsweise schnelle

A/D-Wandler.

P Flexiblere und leistungsfähigere Schnittstellen besitzen einen eigenen E/A-Prozes-

sor, der nach einem Anstoß durch die CPU unabhängig mit eigenem Programm

arbeitet und getrennten Zugriff zum Speicher besitzt. Hierzu gehören beispielsweise

die Grafikkarte eines PC oder ein intelligentes Display.

Das Einsatzgebiet der E/A-Bausteine reicht von einfacher byteorientierter Ein- und

Ausgabe bis zur autonomen Verwaltung komplexer Protokolle, wie etwa bei einer Netz-

werkanbindung. Eine E/A-Komponente wird in der Regel so entworfen, dass sie einen

möglichst großen Bereich von Anwendungen abdeckt. Die Spezialisierung für die je-

weilige Anwendung geschieht durch Initialisierung des Bauteils: Nach jedem Einschal-

Kapitel 5åMCS101

Page 89: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

88

ten des Systems müssen bestimmte Steuerregister im Baustein von der CPU aus mit be-

stimmten Werten belegt werden. Ein Vorgang, der in Datenblättern und im allgemeinen

Sprachgebrauch Programmierung genannt wird.

5.5.15.5.15.5.15.5.1Anschluss von E/A-BausteinenAnschluss von E/A-BausteinenAnschluss von E/A-BausteinenAnschluss von E/A-Bausteinen

Für den Datentransfer zwischen Peripherie und CPU über die E/A-Bausteine sind

diverse Steuersignale notwendig. Die wichtigsten sind:

P Steuersignale von der CPU zum E/A-Baustein:

– Rücksetzen (Reset, RES)

– Freigabe, Aktivierung (Enable, E, CE)

– Baustein-Auswahl (Chip Select, CS)

– Register-Auswahl (Register Select, RS)

– Datenrichtung (Read/Write, R/W)

P Steuersignale von der Peripherie zum E/A-Baustein:

– Interruptleitungen (Erzeugung IRQ-Signal für CPU)

– weitere Steuersignale (z. B. Leitungen für einen Hardware-Handshake)

P Steuersignale vom E/A-Baustein zur CPU:

– Interrupt-Anforderung (Interrupt Request, IRQ)

– Weitergabe des IRQ von der Peripherie zur CPU (Maskierungsmöglichkeit)

Die Steuersignale werden mit dem Steuerbus der CPU verbunden. Aus dem Adressbus

werden die Signale CS und RS abgeleitet. Über den Datenbus erfolgt der eigentliche

Datenaustausch.

Da im Allgemeinen mehrere E/A-Bausteine mit mehreren Registern an ein System an-

geschlossen sind, ist eine Adressierung der E/A-Bausteine nötig. Die E/A-Adresse wird

oft auch Port genannt. Für die Adressierung gibt es zwei Methoden:

Getrennte Adressierung (isolated I/O, I/O-mapped I/O): Der Rechner verfügt über spezi-

elle E/A-Befehle und einen eigenen E/A-Adressraum (Abbildung 47 links). Die Adresse

wird entweder auf separaten Adressleitungen zur Schnittstelle geführt oder über den nor-

malen Adressbus geleitet. In diesem Fall gibt es eine zusätzliche Steuerleitung zur Unter-

scheidung zwischen E/A- und Speicheradressen. Da meist der E/A-Adressraum kleiner

als der Speicheradressraum ist, wird nur ein Teil der Adressbus-Leitungen verwendet.

Speicheradressierung (memory mapped I/O): Der E/A-Adressraum wird in den Spei-

cheradressraum abgebildet, das heißt, bestimmte Adressen stellen keine Speicheradres-

sen, sondern E/A-Adressen dar (Abbildung 47 rechts). Der Speicheradressraum wird

dadurch geringfügig eingeschränkt, wie in der Abbildung 47 unten zu sehen ist. Die E/A-

Adressen werden von der CPU genauso behandelt und angesprochen wie Speicheradres-

sen. E/A-Operationen werden mit den vorhandenen Befehlen für Speicheroperationen

durchgeführt und spezielle E/A-Befehle spart man sich somit.

Kapitel 5åMCS101

Page 90: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

89

Abbildung 47:Adressierung von E/A-Bausteinen, links: isolated, rechts: memory mapped

Bei der Speicheradressierung in Abbildung 47 wurde übrigens recht großzügig verfah-

ren. Da die Adressleitung A15 zur Unterscheidung von Speicher und E/A dient, erhält

der E/A-Bereich 32 768 Adressen. Für die Programmierung verwendet man in einem

solchen Fall nur die Basisadresse des Bausteins. Bei Controllern mit Speicheradressie-

rung erfolgt die Decodierung des E/A-Adressraums intern.

Programmierter E/A-Transfer

Zur bitparallelen Ein- und Ausgabe werden von vielen Herstellern Bausteine angeboten

und nahezu jeder Controller verfügt über parallele E/A. Diese Art von Bausteinen wird

am häufigsten verwendet. Verschiedene Bezeichnungen sind in Gebrauch:

– PIO Parallel Input/Output

– PIA Peripheral Interface Adapter

– PPI Programmable Peripheral Interface usw.

Der jeweilige Baustein besitzt Steuerregister, deren Inhalte die Datenrichtung, die

Bedeutung von Steuersignalen (z. B. Handshake) und das Interruptverhalten festle-

gen. Der Zugriff auf die Peripherie erfolgt entweder programmgesteuert mittels Pol-

ling oder interruptgesteuert.

Für den einfachen E/A-Transfer gibt es zwei Baustein-Grundtypen:

Parallele Schnittstelle (Parallel Interface Adapter, Parallel Input Output)

Eine Schnittstelle für parallelen Datenaustausch kann z. B. als Druckerschnittstelle für

Relais-Ausgänge, externe Digital/Analog- und Analog/Digital-Wandler, digitale Ein-

gangssignale eingesetzt werden. Meist sind zwei bis vier derartige Ports von 8 Bit Wort-

breite vorhanden. Steuer- oder Statusregister können pro Port separat vorhanden sein.

Je nach Controller oder Baustein kann die Richtung des Datentransfers (Eingang oder

Ausgang) per Steuerregister eingestellt werden. Dieses Steuerregister wird Datenrich-

tungsregister genannt. Bei älteren Systemen gibt es oft keine bitweise, sondern nur eine

gruppenweise Einstellung der Datenrichtung. Abbildung 48 zeigt das Prinzip einer par-

allelen Schnittstelle. In diesem Beispiel sind zwei Ports mit jeweils 8 Bit vorhanden.

Kapitel 5åMCS101

Page 91: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

90

Abbildung 48:Prinzip einer parallelen

Schnittstelle

Serielle Schnittstelle (Serial Interface Adapter, Serial Input Output)

Ein Baustein für bitseriellen Datenverkehr enthält einen Parallel-Seriell- und einen Seri-

ell-Parallel-Wandler (Schieberegister), wie in Abbildung 49 unten rechts dargestellt. Bei

seriellen Schnittstellen kann es sich um einen UART (Universal Asynchronous Receiver

and Transmitter) handeln, wie man ihn von der guten alten seriellen Schnittstelle des PC

her kennt, oder um spezielle Schnittstellen für die Kommunikation zwischen einzelnen

ICs, beispielsweise die I2C- oder die SPI-Schnittstelle. Näheres zu diesen Schnittstellen

werden Sie in einem späteren Studienbrief erfahren.

Je nach Typ erzeugt der Baustein für die serielle Übertragung einen Datenrahmen, der

aus einem Startbit, sechs bis acht Datenbits, einem Paritätsbit und einem Stoppbit be-

steht. Generell gilt:

P Beim Senden schreibt die CPU ein Byte (liegt „parallel“ an) und die serielle Schnitt-

stelle muss dieses Bit für Bit aussenden.

P Beim Empfang muss ein Bit nach dem anderen von der seriellen Schnittstelle gespei-

chert werden und diese als komplettes Byte an die CPU leiten.

P Im Schnittstellenbaustein festzulegende Parameter sind: Übertragungsgeschwindig-

keit (Baudrate), Anzahl Stoppbits, Parität, Verwendung von Steuerleitungen usw.

Der Baustein in Abbildung 49 enthält getrennte Sende- und Empfangsteile, sodass

gleichzeitiges Senden und Empfangen, das heißt Vollduplexbetrieb möglich ist. Falls

Senden und Empfangen nur im Wechsel möglich ist, weil nur ein einziges kombiniertes

Sende-/Empfangsteil vorhanden ist, spricht man hingegen vom Halbduplexbetrieb.

Abbildung 49:Prinzip einer seriellen

Schnittstelle

Control-Register

Ablaufsteuerung

Status-Register

Daten-Register

Daten-Register

Daten-Bus

Adress-Bus

Steuer-Bus

Peripherie

8 8

Control-Register

Ablaufsteuerung

Status-Register

Daten-Register

Daten-Register

Daten-Bus

Adress-Bus

Steuer-Bus

Peripherie

Kapitel 5åMCS101

Page 92: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

91

Ein USART (Universal Synchronous/Asynchronous Receiver and Transmitter) ist die

Weiterentwicklung eines UART und bietet neben der asynchronen Betriebsweise auch

synchrone Betriebsarten. Im synchronen Betrieb einer seriellen Übertragung werden

Blöcke von Bytes (z. B. Zeichen) ohne Pausen übertragen. Die Synchronisation zwi-

schen Sender und Empfänger, die beim asynchronen Betrieb für jedes Zeichen am Emp-

fänger neu hergestellt werden muss, bleibt im synchronen Betrieb nicht nur während

eines Zeichens erhalten, sondern während eines gesamten Datenblocks.

5.5.25.5.25.5.25.5.2Programmierter E/A-TransferProgrammierter E/A-TransferProgrammierter E/A-TransferProgrammierter E/A-Transfer

Wie bereits gesagt, erfolgt die Ein- und Ausgabe von der Programmierung her ähnlich

dem Speicherzugriff. Da aber E/A-Schnittstellen gegenüber dem Speicherzugriff sehr

langsam sind, greift man zu weiteren Verfahren. Beim rein vom Programm gesteuerten

E/A-Transfer muss unter Umständen lange zwischen zwei Transfers gewartet werden.

Deshalb greift man zur Interruptsteuerung, die immer nur dann aktiv wird, wenn ein

Datentransfer ansteht. Beide Verfahren werden wir uns jetzt etwas genauer ansehen.

Programmgesteuerter programmierter Transfer (Polling)

Die E/A-Befehlsfolge steht hier innerhalb eines Programms und wird im Rahmen der

normalen Programmausführung abgearbeitet. Die gesamte Initiative zum Datentransfer

geht vom Programm aus, das in einer Schleife laufend das Statusregister der Schnitt-

stelle abfragt. Zeigt der Inhalt des Statusregisters an, dass keine neuen Daten im Daten-

register stehen oder der Baustein nicht bereit ist, die Daten auszugeben, verbleibt das

Programm in der Warteschleife und fragt das Statusregister erneut ab. Dieses Verfahren

wird als Polling bezeichnet. Das Beispiel in Abbildung 50 zeigt die Situation beim Ein-

lesen.

Abbildung 50:Schematischer Ablauf des programmgesteuerten Transfers

Beim Polling treten folgende Probleme auf:

P Die Zeit, die das Programm braucht, um einen eingelesenen Wert zu bearbeiten, ist

länger als die Zeitspanne, innerhalb derer sich das Eingangssignal ändern kann. Es

können also zwischen zwei Abfragen Ereignisse übersehen werden.

P Bei langsamen Peripheriegeräten ist der Rechner während der Übertragung eines

Datenblocks die meiste Zeit mit unproduktivem Abfragen beschäftigt.

P Tritt das erwartete E/A-Ereignis nicht auf, so verbleibt das Programm endlos in der

Warteschleife. Meist ist es deshalb notwendig, einen Timeout zu programmieren, der

die Warteschleife nach einer vorgegebenen Zeit abbricht.

Steuersignale setzen

Lesen/Prüfen von Statussignalen

bis neuer Datenwert eingetragen ist

Datenwert einlesen

bis fertig Warten auf Datenwert

Zeitverhalten:

E/A-Transfer

Kapitel 5åMCS101

Page 93: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

92

Unterbrechungsgesteuerter programmierter Transfer

Hier wird die E/A-Befehlsfolge erst durch einen von der E/A-Schnittstelle ausgelösten

Interrupt gestartet (Abbildung 51). Der Interrupt wird von der Schnittstelle abgesetzt,

wenn ein Datenwort empfangen wurde und im Datenregister steht bzw. wenn ein Daten-

wort aus dem Datenregister von der Peripherie abgeholt wurde. Die CPU braucht nicht

in einer Programmschleife zu warten, sondern kann in der Zwischenzeit ein anderes Pro-

gramm bearbeiten. Dabei muss allerdings zusätzlicher Aufwand für den Datenaustausch

zwischen Programm und Interrupt-Serviceroutine getrieben werden. Der interruptge-

steuerte Transfer gestattet zudem die quasi-simultane Bedienung mehrerer langsamer

Schnittstellen.

Abbildung 51:Schematischer Ablauf

des interruptgesteuertenTransfers

Der Vorteil des programmierten Transfers – egal ob Polling oder Interruptsteuerung –

liegt in den einfachen Schnittstellen, die übersichtlich und leicht zu verwenden sind.

Nachteilig ist, dass für den Transfer jedes einzelnen Datenworts die CPU benötigt wird.

Diese muss dabei relativ viel Verwaltungsaufwand leisten (Lesen/Schreiben, Status- und

Datenregister, Interrupt-Behandlung). Deshalb ist die maximale Datenrate begrenzt.

Dies ist bei Direktspeicherzugriff anders.

5.5.35.5.35.5.35.5.3E/A-Transfer per Direktspeicherzugriff (E/A-Transfer per Direktspeicherzugriff (E/A-Transfer per Direktspeicherzugriff (E/A-Transfer per Direktspeicherzugriff (DMA)DMA)DMA)DMA)

Beim Direktspeicherzugriff steuert die E/A-Schnittstelle den Transfer nach Anstoß durch

die CPU selbstständig. Der Datentransport zwischen Speicher und Peripherie erfolgt un-

ter Umgehung der CPU. Auf diese Weise ist ein wesentlich schnellerer Datentransport

möglich. Es fällt nicht nur die Verwaltungsarbeit weitgehend weg, sondern auch die

beim programmierten Transfer mindestens benötigten zwei Befehle: „Lade Datenwert

von der E/A-Schnittstelle“ und „Speichere Datenwert im Arbeitsspeicher“. Daher ist

DMA für den schnellen Transfer großer Datenmengen (Blockübertragung) besonders ge-

eignet.

Zum Anstoßen des DMA-Transfers übermittelt die CPU einem DMA-Controller die

Anfangsadresse im Arbeitsspeicher, wo der zu übertragende Datenblock abgelegt wer-

den soll. Diese wird im E/A-Adressregister (EAAR) abgelegt. Außerdem muss die

Länge des zu übertragenden Datenblocks übermittelt und im E/A-Blocklängenzähler

(EAZR) abgelegt werden. Gegebenenfalls muss noch – wie beim programmierten

Steuersignale setzen

Lesen/Prüfen von Statussignalen

sind Daten vorhanden?

JA Daten einlesen

NEIN Fehlerbehandlung

weitere Aktionen nötig?

JA Steuersignale setzen

Rücksprung zum laufenden Programm

andere Programme

Zeitverhalten:

E/A-Transfer

Ansprung ausgelöst durch Interrupt!

Kapitel 5åMCS101

Page 94: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

93

Transfer – ein Steuerregister entsprechend geladen und somit die Schnittstelle initiali-

siert werden). Abbildung 52 zeigt die vollständige Schaltung des DMA-Controllers.

Abbildung 52:Prinzipschaltung eines DMA-Controllers

Beim DMA-Transfer wird also der Speicher direkt vom DMA-Controller gelesen oder

beschrieben. Da während des DMA-Transfers anstelle der CPU die DMA-Schnittstelle

die Kontrolle über den Systembus besitzt, entsteht eine Konkurrenz zwischen DMA-

Schnittstelle und CPU um den Bus. Deshalb müssen sich CPU und DMA-Controller

über eine Bussteuerlogik beim Zugriff auf den Systembus koordinieren.

Anhand der Kontrolle über den internen Bus unterscheidet man folgende DMA-Modi:

Byteweise Übertragung (Byte Modus): Die CPU gibt auf eine Busfreigabe-Anforderung

(DMA-Request) hin den Bus nach Beendigung des gerade laufenden Maschinenzyklus

frei. Nach dem Transfer eines einzelnen Datenwortes erhält die CPU die Kontrolle über

den Bus zurück und sie setzt den laufenden Befehl weiter fort. So wird der CPU der

Buszugriff nur während einiger Buszyklen entzogen, man nennt dies Cycle Stealing.

Halt-Modus: Die CPU wird nach Beendigung der gerade laufenden Instruktion angehal-

ten – so lange, bis der DMA-Transfer eines ganzen Blocks abgewickelt ist. Dies erlaubt

den schnellstmöglichen Datenaustausch, behindert aber die Arbeit der CPU erheblich.

Burst-Modus: Auch hier wird die CPU mitten in der Bearbeitung eines Befehls kurz

angehalten, jedoch für mehrere Zyklen. Es erfolgt der Transfer eines ganzen Daten-

blocks.

Transparent-Modus: DMA-Schnittstelle und CPU arbeiten zeitmultiplex während jedes

Maschinenzyklus jeweils in einer halben Periode. Dazu ist ein sehr schneller Speicher

erforderlich. Der Vorteil dabei ist, dass es keine Beeinträchtigung der CPU gibt.

DMA-Controller

Steuer- undStatusregister

Daten-register

Steuer- undStatussignale

Daten

E/A-Block-längenzähler

E/A-Adress-register

Adress- undSteuerlogik

Bussteuer-logik

C-Bus

A-Bus

D-Bus

Kapitel 5åMCS101

Page 95: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

94

K [38] Da im Allgemeinen mehrere E/A-Bausteine an ein System angeschlossen sind, ist eine

Adressierung der E/A-Bausteine nötig. Welche beiden Methoden kennen Sie?

K [32] Die Ein-/Ausgabeports eines Mikrocontrollers besitzen neben den Datenregistern noch

weitere Register. Erläutern Sie allgemein den Zweck dieser Register.

K [43] Was unterscheidet prinzipiell einen seriellen E/A-Baustein von einem parallelen?

K [18] Beim programmierten Transfer von Daten über die E/A-Schnittstelle gibt es zwei

Methoden. Erläutern Sie diese.

K [40] Was versteht man unter Direct Memory Access?

K [14] Die Ein-/Ausgabeschnittstelle sorgt neben dem reinen Datentransport noch für verschie-

dene Anpassungen zwischen CPU und Peripherie. Welche sind dies?

Die Ein-/Ausgabe-Schnittstelle dient der CPU für den Datenaustausch mit der

Außenwelt. Es findet normalerweise ein bidirektionaler Datentransport zwischen

CPU und Peripherie statt. Um den Datentransport zu ermöglichen, ist eine Anpas-

sung der Datendarstellung zwischen CPU und Peripherie erforderlich:

– Zeitliche Anpassung (CPU und Peripherie arbeiten im Allgemeinen nicht syn-

chron)

– Signalumsetzung (z. B. Pegelanpassung)

– Datenformatanpassung (z. B. seriell/parallel-Wandlung)

– Codewandlung

– Fehlererkennung und -korrektur

Der Datentransfer kann entweder programmgesteuert oder interruptgesteuert statt-

finden. Findet ein Datentransfer unter Ausschluss der CPU statt, spricht man von

Direktspeicherzugriff (Direct Memory Access, DMA).

Kapitel 5åMCS101

Page 96: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

95

ZusammenfassungZusammenfassungZusammenfassungZusammenfassung

In diesem Studienbrief erhielten Sie einen allgemeinen Überblick zu informationsver-

arbeitenden Systemen. Es wurden die Grundlagen der klassischen Rechnerarchitektur

und Begriffe wie „Mikrocomputer“, „Mikrocontroller“, „Embedded Systems“ oder

„CPU“ geklärt.

In der Modellvorstellung eines Rechners nach John von Neumann besteht dieser aus

vier Funktionseinheiten:

– Recheneinheit,

– Steuereinheit,

– Speicher (Memory) und

– Ein- und Ausgabeeinheiten (E/A-Geräte, engl. Input/Output Units oder I/O).

Embedded System ist der englische Fachbegriff für ein eingebettetes Computer-System,

das in der Regel unsichtbar seinen Dienst in einer technischen Anwendung versieht,

z. B. in der Messtechnik, in Maschinensteuerungen, in Haushaltselektronik, Unterhal-

tungselektronik oder Kfz-Elektronik. In der Computerbranche werden solche Systeme

auch Appliances genannt.

Wenn man den Begriff Embedded System aufschlüsselt, zeigt sich:

– Ein System ist in diesem Kontext immer eine informationsverarbeitende Maschine.

– Eingebettet bedeutet: für einen spezifischen Zweck in einer technischen Umgebung

entworfen, eingebaut und betrieben.

Ein eingebettetes System interagiert mit seiner meist elektromechanischen Umwelt, und

oft ist kein menschlicher Benutzer vonnöten.

Mikroprozessoren und Mikrocontroller

Das Anwendungsfeld der Mikroprozessoren liegt im Bereich der PCs und Großrechner.

Um betriebsfähig zu sein, benötigt der Mikroprozessor zumindest noch Arbeitsspeicher

und E/A-Bausteine. Der Mikroprozessor im PC zeichnet sich durch eine großzügige

Busstruktur zur Steuerung von Speicher, Festplatte, Grafikkarte usw. aus. Er besitzt

einen großen Arbeitsspeicher für Software und Betriebssystem sowie serielle und paral-

lele Schnittstellen zur Kommunikation mit Peripheriegeräten wie Drucker, Scanner,

externe Platten, Netzwerk, etc. Normalerweise besitzt er eine komplette ANSI-Tastatur

und einen grafikfähigen Monitor.

Ein Mikroprozessor ist die Zentraleinheit (CPU, Central Processing Unit) eines Daten-

verarbeitungssystems, die heute meist mit weiteren Komponenten (Taktgenerator, Bus-

treiber) auf einem einzigen Chip untergebracht ist. Er besteht in der Regel aus einem

Steuerwerk und einem Rechenwerk, sowie einer Schnittstelle zur Außenwelt. Je nach

Komplexität können weitere Komponenten, etwa ein Cache-Speicher, hinzukommen.

Seine Aufgabe ist die Ausführung eines Programms, das aus einer Abfolge von Befeh-

len besteht.

Ein Mikrocomputer ist ein Datenverarbeitungssystem mit einem oder mehreren Mikro-

prozessoren.

Ein Mikrocontroller ist ein kompletter Computer auf einem einzigen Chip. Der Unter-

schied zum Mikroprozessor besteht darin, dass er zusätzlich Speicher, digitale und ana-

ZusammenfassungåMCS101

Page 97: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

96

Z

loge Ein- und Ausgänge, Timer, Schnittstellen, etc. meist auf demselben Chip vereint,

sodass eine Mikrocontroller-Anwendung oft mit nur wenigen weiteren Bauteilen aus-

kommt. Das Anwendungsfeld der Mikrocontroller liegt im industriellen Sektor, im

Messen, Steuern und Regeln. Meist sind diese Computersysteme als solche gar nicht zu

erkennen (Embedded Systems).

Digitale Signalprozessoren besitzen HW-Bausteine/Komponenten zur Verarbeitung

großer Datenmengen. So sind analoge Schnittstellen und meist auch eine in der Hard-

ware implementierte Fast-Fourier-Transformation standardmäßig vorhanden. Sie die-

nen typischerweise der Filterung, der Kodierung und der Dekodierung von „streaming

data“, etwa bei Multimedia- oder Telekommunikations- oder Regelungsanwendungen.

Bei den grundlegenden Architekturmerkmalen unterscheidet man die Von-Neumann-

Architektur mit gemeinsamen Daten- und Programmspeicher und die Harvard-Archi-

tektur mit strikter Trennung von Befehls- und Datenverarbeitung.

Beim Aufbau des Befehlssatzes, und damit auch der Architektur des Steuerwerks, wird

in CISC (Complex Instruction Set Computer) und RISC (Reduced Instruction Set Com-

puter) unterschieden. Bei CISC gibt es sehr viele, zum Teil komplexe Befehle, deren

Bearbeitung etliche Taktzyklen benötigt. Bei RISC ist der Befehlssatz auf einfache, ele-

mentare Befehle eingeschränkt, deren Bearbeitung in der Regel nach einem Taktzyklus

abgeschlossen ist.

Zahlensysteme

Bei Computern verbreitete Zahlensysteme (Stellenwertsysteme) sind

P Dualsystem: Basis b = 2, Ziffern z aus {0,1}.

P Oktalsystem: Zusammenfassung von drei Dualstellen zu einer Oktalstelle.

Basis b = 8 und z ist aus {0,1,2,3,4,5,6,7}.

P Hexadezimalsystem (Sedezimalsystem): Zusammenfassung von vier Dualstellen zu

einer Hexadezimalstelle. Basis b = 16 und z aus {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}.

Ganze Zahlen (integer) werden entweder als natürliche Zahlen behandelt (unsigned)

oder sie sind mit einem Vorzeichen behaftet (signed). Für die Darstellung negativer

Zahlen findet man in Mikrocomputern fast ausschließlich die Komplementdarstellung

(Zweierkomplement). Damit kann die Subtraktion auf die Addition des Komplements

zurückgeführt werden. Entsprechend der Wortlänge des Prozessors ergibt sich ein Wer-

tebereich von 0 bis (2n – 1) (unsigned) oder von –2n-1 bis +(2n–1 – 1). Die leichte

Unsymmetrie ergibt sich durch die Wahl des Zweierkomplements.

Bei der Festkommadarstellung gibt es ein gedachtes, nicht gespeichertes Komma, das

den ganzzahligen Anteil von den Brüchen trennt. Es liegt zwischen den Stellen 20 und

2–1.

Für reelle Zahlen wird in der Regel die Gleitpunktdarstellung bevorzugt. Hier wird die

Zahl so gespeichert, dass das Komma immer zur ersten von Null verschiedenen Ziffer

gleitet. Dies erreicht man durch Abspalten einer entsprechenden Potenz der Basis:

Z = Mantisse · BasisExponent

usammenfassungåMCS101

Page 98: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

97

Die Mantisse hat die Form „0.xxxxxxx…“, wobei man zur Speicherung die „0“ vor dem

Dezimalpunkt weglassen kann. Bei anderen Varianten wird die Mantisse deshalb gleich

in der Form „1.xxxxxx…“ gespeichert.

Bei Addition und Subtraktion müssen beide Zahlen den gleichen Exponenten besitzen.

Dazu werden die Exponenten der beiden Operanden angeglichen, indem die Mantisse

des Operanden mit dem kleineren Exponenten verschoben wird. Dann erfolgt die Addi-

tion bzw. Subtraktion der Mantissen und anschließend das Normalisieren des Ergebnis-

ses.

Bei Multiplikation und Division werden die Mantissen multipliziert bzw. dividiert und

die Exponenten addiert bzw. subtrahiert. Anschließend wird wieder normalisiert.

Bei der BCD-Darstellung (Binary Coded Decimal) werden die dezimalen Ziffern einer

dezimalen Zahl durch vier Bit breite, binäre Zahlen dargestellt. Negative Zahlen werden

mithilfe eines eigenen Vorzeichen-Bits dargestellt.

Codierung

Ein Code ist die Vorschrift für die eindeutige Zuordnung (= Codierung) der Zeichen

eine Zeichenvorrats (Objektmenge) zu den Zeichen eines anderen Zeichenvorrats (Bild-

menge).

Bei Binärcodes sind die Symbole des Codealphabets die Binärzeichen {0,1}. Die Code-

worte sind Binärworte. Zur Codierung aller Zeichen einer Objektmenge sind Codewör-

ter aus einer bestimmten Anzahl von Binärzeichen nötig. Mit einer Stellenzahl (= Wort-

länge) von n können M = 2n verschiedene (gleichlange) Codewörter gebildet werden.

Zur Codierung von M Zeichen sind also Codeworte der Länge

n = ld (M) (ld = logarithmus dualis, Zweierlogarithmus)

nötig. Das Ergebnis für n muss auf die nächste ganze Zahl aufgerundet werden. Ist M

keine Zweierpotenz, können mit n Stellen mehr Codeworte gebildet werden als benötigt

werden. Die nicht verwendeten Codeworte heißen Pseudowörter.

Der Dualcode ist ein reiner Binärcode, welcher der Zahlendarstellung im Dualsystem

entspricht.

Bei BCD-Codes (binary coded decimal) wird jede Ziffer einer Dezimalzahl unabhängig

codiert, es handelt sich also um eine ziffernorganisierte binäre Codierung. Dabei ent-

steht eine gemischte Darstellung: Die Ziffernstruktur der Objektmenge bleibt erhalten

und jeder Dezimalziffer wird ein binäres Codewort zugeordnet.

Bei einschrittigen Codes unterscheiden sich benachbarte Codeworte nur in einem Bit.

Beispiele sind der Gray-Code, der Glixon-Code oder der O’Brien-Code.

Bei alphanumerischen Codes handelt es sich um Binärcodes für die Darstellung von

Buchstaben, Ziffern und Sonderzeichen. Die wichtigsten sind: 7-Bit ASCII, 8-Bit

ISO/IEC (auch ANSI) und 16-Bit Unicode.

ZusammenfassungåMCS101

Page 99: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

98

Z

Aufbau eines Mikrocomputers

Die meisten Mikrocomputer- und Mikrocontrollersysteme haben grundsätzlich die glei-

chen Eigenschaften:

P CPU (Rechenwerk und Leitwerk) ist in einem Chip integriert (Mikroprozessor)

P Der Arbeitsspeicher besteht aus Programmspeicher (ROM, PROM, EPROM, …) und

Datenspeicher (RAM), die beim Mikrocontroller auf dem Chip integriert sind.

P Das E/A-Werk besteht aus speziellen E/A-Bausteinen, die als IC zahlreich und pas-

send für den verwendeten Mikroprozessor-Typ angeboten werden. Beim Controller

sind auch diese auf dem Chip integriert.

Die CPU kann nur elementare, fest verdrahtete Befehle verarbeiten. Jedes Programm

besteht also aus einer Folge elementarer Befehle. Es gibt zwei Zustände des Rechners:

1. Phase: Der durch den Befehlszähler referierte Speicherplatzinhalt wird geholt und als

Befehl interpretiert (Befehlsholphase, instruction fetch).

2. Phase: Der Speicherplatzinhalt der durch den Befehl spezifizierten Adresse wird ge-

holt, als Datum interpretiert und dem Befehl entsprechend verarbeitet (Befehlsausfüh-

rungsphase, instruction execution).

Das Leitwerk (Steuerwerk) hat neben der Übertragung von Daten vom Speicher ins

Rechenwerk und umgekehrt als Hauptaufgaben das Decodieren und Interpretieren von

Befehlen, die Versorgung der an der Verarbeitung beteiligten Systemteile mit Steuer-

signalen, das Anstoßen des Rechenwerks zur Ausführung einer bestimmten Operation

und die Entscheidungsfindung über die Weiterverarbeitung der Rechenergebnisse in

Form von bedingten Sprüngen. Jeder Befehl legt im Operationsteil fest, was zu tun ist,

und im Operandenteil, womit es zu tun ist. Die Ablaufsteuerung wird durch ein digitales

Schaltwerk realisiert.

Ein Teil des Leitwerks behandelt Programm-Unterbrechungen (engl.interrupt request).

Nach Abarbeitung eines jeden Befehls wird festgestellt, ob eine Unterbrechungs-An-

forderung vorliegt. Diese führt dann zu einem Sprung in eine Interrupt-Service-Routine

und nach deren Abarbeitung wieder zurück ins laufende Programm. Eine Unterbre-

chungsanforderung kommt in der Regel über Signalleitungen von außen. Bei Mikro-

controllern können auch intern Interrupts generiert werden. Ebenso können bestimmte

Softwareereignisse eine Programmunterbrechung auslösen (z. B. Division durch Null,

Bus-Zugriffsfehler, etc.).

Der Informationsaustausch zwischen allen Komponenten erfolgt zeitmultiplex über einen

Bus. Zu jedem Zeitpunkt sind immer nur zwei Einheiten (Sender, Empfänger) miteinan-

der verbunden.

Der Programmierer arbeitet mit dem Programmiermodell, unter dem alle dem zugäng-

lichen oder veränderbaren Register der CPU zu verstehen sind. Die meisten Befehle

gestatten mehrere Adressierungsarten, aber nicht alle von ihnen lassen sich auf jeden

Befehl anwenden. Jede zulässige Adressierungsart bei einem Befehl führt zu einem

eigenen Operations-Code. Der Speicherbedarf und die Ausführungsdauer eines Befehls

hängen von der Adressierungsart ab. Außerdem unterscheidet man Ein-Adress-, Zwei-

Adress- und Drei-Adress-Systeme.

usammenfassungåMCS101

Page 100: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

99

Wenn die Wortbreite des zu speichernden Wortes größer ist als die Speicherwortbreite,

muss außerdem darauf geachtet werden, ob der Prozessor Integerzahlen im Big-Endian-

oder im Little-Endian-Format im Speicher ablegt.

Speicher

Der Speicher ist die Rechnerkomponente zum „Aufbewahren“ von Daten. Der zentrale

Speicher wird als Hauptspeicher bzw. Arbeitsspeicher bezeichnet. Er soll einen mög-

lichst schnellen Zugriff der CPU auf Daten und Befehle gestatten. Sein Adressumfang

ist durch die Adressbus-Breite der CPU festgelegt.

Die Gesamtheit aller Speicher bildet eine Hierarchie:

Register – Cache-Speicher – Arbeitsspeicher – Cache-Speicher – Hintergrundspeicher

Von links nach rechts nimmt die Speicherkapazität zu, Preis und Zugriffsgeschwindig-

keit nehmen dagegen ab.

Statische oder nichtflüchtige RAM-Speicher behalten ihren Inhalt, solange die Versor-

gungsspannung eingeschaltet bleibt. Die Speicherung der Daten erfolgt durch Flip-

Flop-Schaltungen. Dynamische oder flüchtige Speicher verlieren ihre gespeicherten

Informationen nach einem bestimmten Zeitintervall. Die Speicherung der Daten erfolgt

auf der Basis von (Mini-)Kondensatoren. Damit die Daten nicht verloren gehen, ist ein

ständiger „Refresh“ (Auffrischung) des Speichers erforderlich.

Da der Arbeitsspeicher beim Abschalten der Stromversorgung seinen Inhalt verliert,

existiert für die dauerhafte Speicherung in einem Mikrocomputersystem noch ein Fest-

wertspeicher. Hier unterscheidet man ROM (Read Only Memory), PROM (Program-

mable ROM), EPROM (Erasable PROM) und EEPROM (Electrically Erasable PROM).

Programme können in jeden dieser Speicherbereiche geladen und in jedem Bereich aus-

geführt werden.

Ein- und Ausgabe

Die Ein-/Ausgabe-Schnittstelle dient dem Datenaustausch mit der Außenwelt. Es findet

normalerweise ein bidirektionaler Datentransport zwischen CPU und Peripherie statt.

Neben dem reinen Datentransport ist eine Anpassung der Datendarstellung zwischen

CPU und Peripherie erforderlich:

– Zeitliche Anpassung

– Signalumsetzung (z. B. Pegelanpassung)

– Datenformatanpassung (z. B. seriell/parallel-Wandlung)

– Codewandlung

– Fehlererkennung und -korrektur

Der Datentransfer kann entweder programmgesteuert (Polling) oder interruptgesteuert

stattfinden. Die Interruptsteuerung ist immer dann erforderlich, wenn beim Polling

eventuell Daten verloren gehen könnten.

Findet ein Datentransfer unter Ausschluss der CPU statt, spricht man von Direktspei-

cherzugriff (Direct Memory Access, DMA). Dazu muss die Hardware der E/A-Schnitt-

stelle geringfügig erweitert werden und auch die CPU den DMA unterstützen.

ZusammenfassungåMCS101

Page 101: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

100

de

Antworten zu den KontrollfragenAntworten zu den KontrollfragenAntworten zu den KontrollfragenAntworten zu den Kontrollfragen

K1__Seite 13

Embedded Systems ist der englische Fachbegriff für eingebettete (Computer-) Systeme,

die in der Regel unsichtbar ihren Dienst in einer Vielzahl von Anwendungsbereichen

und Geräten versehen, z. B. in Messgeräten, Mobiltelefonen, DSL-Routern, Kfz-Elekt-

ronik, Radio- und Fernsehgeräten, Werkzeugmaschinen, Kaffeeautomaten, DVD-Play-

ern, etc.

K2__Seite 40

K3__Seite 33

Prozessorarchitekturen, die mit besonders leistungsfähigen und daher komplex aufge-

bauten Befehlen arbeiten, werden mit „Complex Instruction Set Computer“ (CISC)

klassifiziert. Als Konsequenz der mächtigen Funktionalität dauert die Abarbeitung

eines CISC-Befehls etliche Taktzyklen und es werden sehr viele verschiedene Befehle

benötigt, um alle Möglichkeiten abzudecken. Bei RISC (Reduced Instruction Set Com-

puter) wird der umgekehrte Weg beschritten. RISC-Prozessoren haben einen kleinen

Befehlssatz, bei dem aber fast alle Befehle innerhalb eines einzigen Taktzyklus aus-

geführt werden können. Diese Befehle enthalten nur Minimalfunktionen und müssen

kombiniert werden, um komplexere Aufgaben ausführen zu können.

K4__Seite 49

Bei den mehrschrittigen Codes ändern sich beim Übergang von einem Codewort zum

nächsten mehrere Bits. Bei einem einschrittigen Code unterscheiden sich benachbarte

Codeworte immer nur in einem Bit.

K5__Seite 60

Aufgabe der Flag-Bits ist es, wichtige Aussagen über Resultate von Befehlen zwischen-

zuspeichern, damit sie in nachfolgenden Befehlen berücksichtigt werden können. Somit

werden bedingte Sprünge realisiert oder Arithmetik über mehrere Worte hinweg ausge-

führt. Beispiele für Flags sind: Zero-Flag (Ergebnis ist Null), Negativ-Flag (Ergebnis ist

negativ), Carry-Flag (Übertrag), Overflow-Flag (Arithmetischer Überlauf).

DezimalDezimalDezimalDezimal DualDualDualDual DezimalDezimalDezimalDezimal DualDualDualDual DezimalDezimalDezimalDezimal DualDualDualDual

11 0000 1101 + 11 + 0000 1011 127 0111 1111

– 127 + 1000 0001 – 1 + 1111 1111 + 6 + 0000 0110

– 116 1000 1110 10 (1)0000 1010 133 1000 0101

Hier findet kein Overflow statt, jedoch das Carry-Flag wird gesetzt.

(= −12310)Overflow!

Antworten zun Kontrollfragen

åMCS101

Page 102: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

101

K6__Seite 76

Der Inhalt eines Index-Registers (Adress-Registers) liefert den ersten Summanden für

die effektive Operandenadresse. Der zweite Summand ist der Adressteil des Befehls

(konstanter Offset) oder der Inhalt eines Registers (variabler Offset). Dabei enthält das

Indexregister einen Basiswert und der Adressteil des Befehls bzw. das Register einen

Offset.

K7__Seite 60

1. Befehlsholphase, instruction fetch: Der durch den Befehlszähler referierte Speicher-

platzinhalt wird mit allen Zusatzinformationen (Operanden) geholt und als Befehl

interpretiert.

2. Befehlsausführungsphase, instruction execution: Der Speicherplatzinhalt der durch

den Befehl spezifizierten Adresse wird geholt, als Datum interpretiert und dem Be-

fehl entsprechend verarbeitet.

K8__Seite 13

Ein Mikrocontroller ist ein kompletter Computer in einem Chip. Der Mikroprozessor ist

als Steuer- und Verarbeitungseinheit Teil des Mikrocontrollers. Bei einem Mikrocont-

roller sind aber zusätzlich Speicher, digitale und analoge Ein- und Ausgänge, Timer,

Schnittstellen, etc. meist auf einem einzigen Chip integriert, sodass eine Mikrocontrol-

ler-Anwendung oft mit wenigen externen Bauteilen auskommt. Mikrocontroller arbei-

ten in der Regel in eingebetteten Systemen.

K9__Seite 40

7810 = 0100 11102

Das Zweierkomplement davon ist 1011 0010.

K10__Seite 33

Digitale Signalprozessoren (DSP) besitzen besondere HW-Komponenten zur Verarbei-

tung großer Datenmengen. Ihre Hauptaufgabe ist die digitale Signalverarbeitung, also die

digitale Verarbeitung analoger Signale. Sie dienen typischerweise der Filterung, der Ko-

dierung und der Dekodierung von „streaming data“, etwa bei Multimedia- oder Telekom-

munikationsanwendungen. So sind analoge Schnittstellen und meist auch eine in der

Hardware implementierte Fast-Fourier-Transformation standardmäßig vorhanden. Sig-

nalverarbeitungs-Anwendungen haben einen Programmcode, der sich vor allem am Da-

tenfluss orientiert und komplexe arithmetische Operationen ausführt. Sie setzen auf paral-

lele Verarbeitung der Daten, um den gewünschten hohen Datendurchsatz zu erreichen.

K11__Seite 60

Der Akkumulator ist das zentrale Register. Er enthält den ersten Operator für Berech-

nungen in der ALU und erhält von dieser die Rechenresultate. Da er im Rückkopplungs-

zweig zu einem der ALU-Eingänge liegt, stellt er dieses Resultat für weitere Rechenvor-

gänge an diesem Eingang zur Verfügung.

Antworten zu den KontrollfragenåMCS101

Page 103: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

102

de

K12__Seite 33

Bei der Harvard-Architektur werden im Gegensatz zur Von-Neumann-Architektur ge-

trennte Speicher für Programm und Daten und damit einhergehend mehrere Datenbusse

verwendet. Es können also in einem Taktzyklus gleichzeitig Daten und der Befehl selber

aus den Speichern gelesen werden. Da hier eine schnelle Befehlsabarbeitung durch das

Leit- und Rechenwerk stattfindet, ist dies eine besonders effiziente Methode, die vor al-

lem bei zeitkritischen Aufgaben wie z. B. in Signalprozessoren genutzt wird. Bei der

Von-Neumann-Architektur steht nur ein Bus für Programm- und Nutzdaten zur Verfü-

gung.

K13__Seite 76

Weil ein ausführlicher Schaltplan der CPU viel zu komplex wäre, wird für die Program-

mierung mit dem Programmiermodell gearbeitet. Dies umfasst die Gesamtheit der Re-

gister der CPU, die dem Programmierer zugänglich sind oder von ihm verändert werden

können.

K14__Seite 94

a) Zeitliche Anpassung

b) Signalumsetzung (z. B. Pegelanpassung)

c) Datenformatanpassung (z. B. seriell/parallel-Wandlung)

d) Codewandlung

e) Fehlererkennung und -korrektur

K15__Seite 86

RAM heißt „Random Access Memory“. Beim RAM können die Daten während des

Betriebs verändert werden. RAM-Speicher sind sehr schnell. ROM bedeutet „Read

Only Memory“. Dieser Typ von Speicher ist nur lesbar und wird bei der Herstellung mit

Information versehen.

K16__Seite 60

Das Zero-Flag bildet das Abbruchkriterium einer Zählschleife. Der Zähler wird bei Ini-

tialisierung der Schleife mit der Anzahl der vorgesehenden Schleifenwiederholungen

vorbesetzt. Am Schleifenende erfolgt das Dekrementieren des Zählers und anschließend

ein bedingter Sprung zum Schleifenanfang, der nur ausgeführt wird, solange nicht eine

Null im Zähler entstanden ist. In diesem Fall wird das Zero-Flag gesetzt und die

Schleife wird verlassen.

K17__Seite 40

7810 0100 1110

+ 1310 + 0000 1101

= 9110 = 0101 1011

Antworten zun Kontrollfragen

åMCS101

Page 104: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

103

K18__Seite 94

a) Programmgesteuerter Transfer: Der Schnittstellenstatus wird zyklisch abgefragt (Pol-

ling) und sofern die Schnittstelle „frei“ ist, erfolgt der Datentransfer.

b) Interruptgesteuerter Transfer: Bei Eintreffen von Daten an der Eingabe bzw. Sende-

bereitschaft der Ausgabe erfolgt ein Interrupt. Die E/A-Befehlsfolge wird dann von

der Interrupt Service Routine ausgeführt.

K19__Seite 49

Bei alphanumerischen Codes handelt es sich um Binärcodes für die Darstellung von

Buchstaben, Ziffern und Sonderzeichen. Beispiele sind:

– ASCII-Code (7 Bit, 128 darstellbare Zeichen)

– ANSI-Code (8 Bit, 256 darstellbare Zeichen)

– Unicode (16 Bit, 65536 darstellbare Zeichen)

– UCS-Code (32 Bit, etwa 4,3 Mrd. darstellbare Zeichen)

K20__Seite 60

Der Befehlszähler enthält immer die Adresse des momentan auszuführenden Befehls

und wird in der Regel linear fortgeschaltet. Bei Sprungbefehlen wird die Zieladresse in

den Befehlszähler geladen.

K21__Seite 13

Die eingebetteten Systeme überwiegen sehr deutlich. Sie haben bei der Prozessorproduk-

tion einen Marktanteil von ca. 98 %. Die restlichen 2 % dienen dem Aufbau von interak-

tiven Systemen wie z. B. Laptops, Desktop-Computern und Servern.

K22__Seite 76

Das Opcode legt fest, was zu tun ist, der Operand, mit welchen Daten dies geschieht.

K23__Seite 86

Ein Cache ist ein schneller Zwischenspeicher für Daten und Befehle. In der CPU oder der

Nähe der CPU angesiedelt fungiert er als Bindeglied zwischen RAM und Leit-/Rechen-

werk. Manchmal sogar in mehreren Stufen. Auch zwischen RAM und Hintergrundspei-

cher gibt es Cache-Speicher.

K24__Seite 60

Ein Interrupt verursacht, meist durch die Hardware ausgelöst, eine kurzfristige Unter-

brechung eines Programms, um eine andere, meist kurze, aber zeitkritische Verarbei-

tung durchzuführen, z. B. Daten über Schnittstelle empfangen, Zugriff auf externen

Speicher, Notprogramm vor dem Zusammenbruch der Betriebsspannung (NMI).

K25__Seite 45

10110,011(2) = 22,375(10)

Antworten zu den KontrollfragenåMCS101

Page 105: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

104

de

K26__Seite 60

Polling bezeichnet die Methode, den Status eines Geräts mittels sich ständig wiederho-

lender Abfragen zu ermitteln. Im anderen Fall meldet das Gerät selbständig seinen Sta-

tus, indem es einen Interrupt auslöst. Auf einen Interrupt wird nur dann reagiert, wenn

dieser ausgelöst wird, Polling hingegen braucht ständig Systemressourcen.

K27__Seite 45

K28__Seite 60

Eine Interrupt Service Routine ist ein Unterprogramm, das ausgeführt wird, wenn das

Hauptprogramm durch einen Interrupt unterbrochen wird. Der Interruptvektor ist ein

Speicherplatz, der die Startadresse der zugehörigen ISR enthält, also ein Zeiger auf

deren Startadresse.

K29__Seite 86

Dynamische RAMs speichern die Information in einer Kapazität. Wegen der Leck-

ströme muss die Information regelmäßig aufgefrischt werden. Dynamische RAMs

erlauben preiswerte Speicher mit hoher Speicherdichte.

Statische RAMs speichern die Information in Flip-Flops und diese bleibt erhalten,

solange wenigstens die Versorgungsspanung am Speicherbaustein anliegt.

K30__Seite 40

Die Umrechnung geschieht einfach dadurch, dass die Viererbündel der Dualzahl jeweils

zu einer Hexadezimalzahl umgewandelt und anschließend zusammengefasst werden:

1100 1011 0100 11102 = C B 4 E16

K31__Seite 66

Für den Zugriff auf den Arbeitsspeicher werden ein Adress- und ein Datenbus benötigt.

Einzelne Signale des Steuerbusses regeln den Speicherzugriff. Der Adressbus gibt an,

von welcher Stelle im Speicher die Daten gelesen werden sollen. Der Datenbus über-

trägt die Daten, auf welche der Adressbus zeigt. Die Breite des Adressbusses ist abhän-

gig von der Anzahl der maximal adressierbaren Speicherzellen. Mit einem aus M Sig-

nalleitungen bestehenden Adressbus lassen sich 2M Speicherzellen adressieren. Die

Breite des Datenbusses ist in der Regel abhängig von der Wortbreite des Rechenwerks.

a) vorzeichenlos: 0 bis 255 0000 0000 bis 1111 1111

b) Vorzeichen und Betrag: – 127 bis +127 1111 1111 bis 0111 1111

c) Zweierkomplement: – 128 bis +127 1000 0000 bis 0111 1111

d) Einerkomplement: – 127 bis +127 1000 0000 bis 0111 1111

e) BCD-Format: 0 bis 99 0000 0000 bis 1001 1001

Antworten zun Kontrollfragen

åMCS101

Page 106: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

105

K32__Seite 94

a) Steuerregister: Einstellen verschiedener Eigenschaften des Bausteins (z. B. serielle

Datenrate)

b) Statusregister: Information über den aktuellen Zustand der Schnittstelle

K33__Seite 66

Die Verbindung von CPU, Speicher und Ein-/Ausgabe erfolgt durch eine Bus-Struktur.

Als Bus wird eine Anzahl von Leitungen bezeichnet, an die mehrere Funktionseinheiten

parallel angeschlossen sind. Der Systembus besteht aus Adress-, Daten- und Steuerbus.

K34__Seite 86

a) 64M × 8: Die Wortbreite des Bausteins entspricht der Wortbreite des gewünschten

Speichers. Die Bausteine brauchen also nur in Wortrichtung verschaltet zu werden:

Es werden 512 ÷ 64 = 8 Stück davon benötigt.

b) 128M × 4: Je 2 Speicherbausteine müssen in Bitrichtung zusammengeschaltet wer-

den, um die gewünschte Wortbreite zu erreichen. Weil 512 ÷ 128 = 4 ist, benötigt

man also insgesamt 2 · 4 = 8 Stück davon.

c) 256M × 1: Hier müssen 8 Speicherbausteine in Bitrichtung zusammengeschaltet wer-

den und das 512 ÷ 256 = 2 Mal. Insgesamt braucht man somit 8 · 2 = 16 Stück von

diesem Typ.

K35__Seite 33

Eine Von-Neumann-Maschine legt Programm und Daten in einem gemeinsamen Ar-

beitsspeicher ab. Befehle und Informationsdaten werden gleich behandelt. Sie besteht

aus Rechenwerk, Leitwerk, Speicher und Ein-/Ausgabe. Das Rechenwerk (Datenprozes-

sor) verknüpft und verändert die zu bearbeitenden Daten. Das Leitwerk (Befehlsprozes-

sor) verarbeitet die elementaren Befehle des Computers, die Maschinenbefehle. Die Be-

fehle werden von einer Ablaufsteuerung interpretiert und deren Ausführung gesteuert.

K36__Seite 60

Steuerwerk und Rechenwerk befinden sich in der CPU, also dem Mikroprozessor- oder

Mikrocontrollerbaustein.

K37__Seite 86

32 KiBit = 32 · 210 Bit = 25 · 210 Bit = 25+10 Bit. Daraus folgt, dass 15 Adressleitungen

vorhanden sein müssen.

Da die Matrix möglichst quadratisch sein soll, hat die Matrix 7 Spalten und 8 Zeilen

oder umgekehrt.

Antworten zu den KontrollfragenåMCS101

Page 107: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

106

de

K38__Seite 94

a) Getrennte Adressierung (isolated IO): Eigener Adressraum für E/A; Speicheradress-

raum vollständig; eigene Steuerleitung zur Unterscheidung; eigene E/A-Befehle.

b) Speicheradressierung (memory mapped IO): E/A-Adressen liegen im Speicherad-

ressraum; diese fehlen dem Speicher; Zugriffsoperationen auf Peripherie-Register

wie Speicherzugriffe; keine eigenen E/A-Befehle.

K39__Seite 76

Register speichern nur wenige Worte innerhalb der CPU, auf deren Inhalt kann aber

sehr schnell zugegriffen werden. Als Speicher bezeichnet man gewöhnlich den Arbeits-

speicher (RAM).

K40__Seite 94

Beim Direktspeicherzugriff (Direct Memory Access, DMA) steuert die E/A-Schnitt-

stelle den Transfer nach Anstoß durch die CPU selbstständig. Der Datentransport zwi-

schen Speicher und Peripherie erfolgt unter Umgehung der CPU. Auf diese Weise ist

ein wesentlich schnellerer Datentransport möglich.

K41__Seite 46

0000 1110 1111 1111 1111 1111 1111 1111

Das erste Bit ist das Vorzeichen der Zahl, dann folgen die 8 Bit der Charakteristik (fett).

Charakteristik = 0001 1101(2) = 29(10)

Exponent = 29 – 127 = –98

K42__Seite 86

a) PROM: Programmable ROM – per Programmiergerät ein einziges Mal beschreibbar

b) EPROM: Erasable PROM – per UV-Licht wieder löschbar

c) EEPROM: Electrically Erasable PROM – elektrisch löschbar

K43__Seite 94

Der serielle Baustein sendet und empfängt seine Daten bitseriell (Takt notwendig) und

hat für diesen Zweck je eine Ein- und Ausgangsleitung. Die Parallel-Seriell-Umsetzung

erfolgt mittels Schieberegister. Der parallele Baustein besitzt meist ein Vielfaches von

8 E/A-Leitungen.

Antworten zun Kontrollfragen

åMCS101

Page 108: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

107

LiteraturverzeichnisLiteraturverzeichnisLiteraturverzeichnisLiteraturverzeichnis

Online-Informationen

Autorenteam

Allgemeine Webseite über Mikrocontroller

http://www.mikrocontroller.net/

Autorenteam

SELF8051 – Grundlagen der 51er Mikrocontroller-Familie

http://www.self8051.de/

JÜRGEN PLATE

Assembler-Programmierung des 68HC11

http://www.netzmafia.de/skripten/mikrocomputer/

Autorenteam

Mikrocontrollerprogrammierung mit myAVR

http://www.myavr.de/

STEVEN W. SMITH

The Scientist and Engineer’s Guide to Digital Signal Processing

http://www.dspguide.com/

M. BANZI, D. CUARTIELLES, T. IGOE, G. MARTINO, D. MELLIS

Arduino open-source microcontroller prototyping platform

http://www.arduino.cc

Bücher

D. W. HOFFMANN

Grundlagen der Technischen Informatik, 2. Auflage, 2007.

T. UNGERER

Mikrocontroller und Mikroprozessoren, 3. Auflage, 2010.

BERND VOM BERG, PETER GROPPE, JOACHIM KLEIN

C-Programmierung für 8051er, 3 Bände, 2008.

HELMUT BÄHRING, JÜRGEN DUNKEL, GERD RADEMACHER

Mikrorechner- Systeme. Mikroprozessoren, Speicher, Peripherie. 3. Auflage, 2001.

RAPHAEL CHUNG-WIE PHAN, I. SCOTT MACKENZIE

The 8051 Microcontroller, 4. Auflage, 2006.

THOMAS FLIK, H. LIEBING, M. MENGE

Mikroprozessortechnik: CISC, RISC, Systemaufbau, Assembler und C, 6. Auflage,

2001.

LiteraturverzeichnisåMCS101

Page 109: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

108

Lit

THOMAS FLIK

Mikroprozessortechnik und Rechnerstrukturen, 7. Auflage, 2007.

HELMUT MALZ

Rechnerarchitektur. Eine Einführung für Ingenieure und Informatiker, 2. Auflage, 2004.

ANDREW S. TANENBAUM

Structured Computer Organisation, 5. Auflage, 2005.

KLAUS WÜST

Mikroprozessortechnik: Grundlagen, Architekturen und Programmierung von Mikro-

prozessoren, Mikrocontrollern und Signalprozessoren, 3. Auflage, 2008.

JÜRGEN WALTER

Mikrocomputertechnik mit der 8051-Controller-Familie: Hardware, Assembler, C,

3. Auflage, 2008.

GÜNTER SCHMITT

PIC-Microcontroller, 2. Auflage, 2010.

GÜNTER SCHMITT

Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie, 5. Auflage,

2006.

JÜRGEN PLATE

Der Perl-Programmierer, 2010.

eraturverzeichnisåMCS101

Page 110: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

109

StichwortverzeichnisStichwortverzeichnisStichwortverzeichnisStichwortverzeichnis

AAAA

Abtastfrequenz 24Abtast-Halte-Glied 26Abtastperiode T 24Abtastung 24addressing

absolute 70direct 70immediate 70indirect register 71inherent 70register direct 70

Adressbus 17, 61f.Adressdecoder 82Adressierung

absolute 70Befehlszähler-relative 72direkte 70implizite 70indirekte 72indizierte 71, 72unmittelbare 70

Adressierungsarten 68Adress-Substitution 72Adress-System

Drei-Adress-System 74Ein-Adress-System 73Zwei-Adress-System 74

AGU (Address Generation Unit) 28

Aiken, Howard 21Akkumulator 16Aliasing 24ALU (Arithmetical and Logical

Unit) 15Analogsignal 24ANSI 49Anti-Aliasing-Filter 25, 26Anwender 12Anwendersoftware 6Anwendungsprogrammierer

12Appliance 8Arbeitsspeicher 16, 79Arithmetik-Koprozessor 19ASCII (American Standard

Code for Information Interchange) 49

Assembler 12, 30

BBBB

BCD (Binary coded decimal) 44

BCD-Code 47BCD-Zahl

gepackte 45Befehlsausführung 52Befehlsausführungsphase

18

Befehlsdecoder 53Befehlsholphase 18Befehlsprozessor 15Befehlsregister 16Befehlswerk 54Befehlszähler 18, 51Befehlszyklus 51, 53Benchmark 32Betriebssystem 6, 9Big-Endian 74Bildmenge 46Binärcode 46Binärpräfix 77, 78Bitrichtung 85Bus 61Busprotokoll 64byte order 74Byte-Reihenfolge 74

CCCC

Cache Memory 79f.CCR (condition code

register) 39Charakteristik 41CISC (Complex Instruction Set

Computer) 20Code 46

8-4-2-1-Code 47alphanumerischer 49einschrittiger 47

Coderahmen 46Controller

8051 67CPU 6CPU-Takt 63CS (Chip-Select-Signal) 82

DDDD

daisy-chain 58Darstellung

halblogarithmische 41normalisierte 41

Datenbereich 79Datenbus 17, 61Datenprozessor 15Datenrichtungsregister 89Debugger 31Dhrystone 32DMA (Direct Memory

Access) 28, 87, 92DMA-Modi 93Dokumentation 30DRAM 81DSP (digitaler

Signalprozessor) 14, 23Dualcode 47Dualsystem 34Durchschaltezeit 59

EEEE

E/A-Geräte 6E/A-Transfer

programmierter 89EA (effektive Adresse) 69Editor 12EEPROM (Electrically

Erasable PROM) 83Ein-/Ausgabeeinheit 87Ein-/Ausgabegeräte 16Einerkomplement 36, 37eingebettete Systeme 8Embedded Systems 8ff.Entwicklung der

Computertechnik 10Exponent 41Exzess-3-Code 47

FFFF

Fan-Out 62Festkommadarstellung 40Festkomma-DSP 28FFT (Fast-Fourier-

Transformation) 23Filter 26Flag 39flag register 39Flash-Speicher 84floating point notation 41FLOPS 31Flynn, Michael J. 22FPU (Floating Point Unit) 15

GGGG

Gleitkommadarstellung 41Gleitkomma-DSP 28Gleitkomma-Einheit 15Glixon-Code 47Gray-Code 47Gullivers Reisen 75

HHHH

Halbduplexbetrieb 90Hardware 5, 14Hardwareingenieur 13Harvard-Architektur 21, 27Hauptspeicher 16, 79Hexadezimalsystem 34Host Byte Order 75

IIII

I2C-Schnittstelle 90IEEE 42

StichwortverzeichnisåMCS101

Page 111: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

110

StichwortverzeichnisåMCS101

Indexregister 16Information 5Input/Output Units 6Instruction Execution 18Instruction Fetch 18In-System-Debugging 31integer 36Intel 10Interrupt 52, 92

vektorisierter 58Interrupt-Reaktionszeit 59IP (Instruction Pointer) 18IR (Instruction Register) 16IRQ (interrupt request) 56isolated I/O 88ISP (In-System-

Programming) 31

KKKK

Kellerspeicher 59Komplement 36

LLLL

Langzeitstabilität 25Leitwerk 6, 14, 15, 51, 53LIFO 59Linpack 32Little-Endian 75LSB (least significant bit) 35

MMMM

MAC (Multiplier Accumulator) 27

Mächtigkeit 32Main Memory 16Mantisse 41Marktanteil 9Maschinenbefehl 15, 18, 69Maschinenzyklus 53m-aus-n-Code 48memory mapped I/O 88Memory Stick 84MFLOPS 31Mikrobefehl 55Mikrocomputer 6ff.Mikrocontroller 6ff.Mikrocontrollerfamilien 29Mikroprogramm 13, 53, 55Mikroprogrammspeicher 14Mikroprogrammsteuerung

54Mikroprozessor 7Mikroprozessor 4004 10Mikroprozessor 8008 10MIMD (Multiple Instructions,

Multiple Data) 22MIPS 31MISD (Multiple Instructions,

Single Data) 22Moore’sches Gesetz 11

MSB (most significant bit) 35Multiprozessorsystem 22

NNNN

Network Byte Order 75NMI 57Normalisieren 41

OOOO

O’Brien-Code 47Objektmenge 46Oktalsystem 34omnibus 61OP (Operationscode) 69OP-Code 52, 69Operand 69Operandenregister 50

PPPP

Parallelität 22PC (Personal-Computer) 6PC (Program Counter) 18PCI-Bus 87PIA (Peripheral Interface

Adapter) 89PIO (Parallel Input/Output) 89Pipeline-Rechner 19Polling 58, 91PPI (Programmable Peripheral

Interface) 89Preis 30Primärspeicher 80Princeton-Architektur 14Programm 5Programmiermodell 67Programmzähler 18PROM (Programmable

ROM) 83Prozessor 6Pseudotetraden 44Pseudowörter 46PU (Programmunter-

brechung) 56Pufferspeicher 79

QQQQ

Quantisierung 25

RRRR

RAM (Random Access Memory) 81

RAM-Speicher 81Recheneinheit 6Rechenleistung 31Rechenwerk 6, 14, 15, 50Rechnerarchitektur 14

Register 16Register-Adressierung 70

indirekte 71Registersatz 14RESET 64RISC (Reduced Instruction Set

Computer) 20, 56ROM (Read Only Memory) 83

SSSS

Sample and Hold 26Schnittstelle

parallele 89serielle 90

Schreib-Lese-Speicher 81SCSI-Interface 87SD Cards 84SDRAM 81Sedezimalsystem 34Sekundärspeicher 80SHARC (Super-Harvard-

Architecture) 22Shifter 27Siebensegmentanzeige 11Signal

digitales 25wertdiskretes 25zeitdiskretes 24

Signalverarbeitung, digitale 24signed 36SIMD (Single Instruction, Mul-

tiple Data) 22Simulator 31Single-Chip-Mikrocomputer 7SISD (Single Instruction, Sin-

gle Data) 22Smart-Media-Karte 84Software 5, 14Spannungsversorgung 66SPEC 32Speicher 15

externer 16sequentieller 78

Speicheradressierung 88Speicherkapazität 77Speicherzugriff 80SPI-Schnittstelle 90Stackpointer 16, 59Stapelspeicher 59Statusregister 16Steuerbus 17, 61f.Steuereinheit 6, 15Steuerwerk 6, 15, 51Steuerwort 54Stibitz-Code 47streaming data 23System-Bus 61Systemprogrammierer 12

TTTT

Tag-Bereich 79Takt 66

Page 112: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

111

Tertiärspeicher 80Tiefpassfilter 26Tri-State 61, 85

UUUU

UART (Universal Asynchro-nous Receiver and Transmitter) 90

UCS (universal character set) 49

Unicode 49Universalrechner 14unsigned 36

USART (Universal Synchro-nous/Asynchronous Recei-ver and Transmitter) 91

VVVV

Verlustleistung 30Vollduplexbetrieb 90Von Neumann, John 6Von-Neumann-

Architektur 14, 18Von-Neumann-

Flaschenhals 18

WWWW

Wartezeit 59Wertebereich für eine

Dualzahl 38Whetstone 32Wortbreite 15Wortrichtung 85

ZZZZ

Zentraleinheit 6Zugriffsart 78Zugriffszeit 78Zweierkomplement 36, 37Zykluszeit 78

StichwortverzeichnisåMCS101

Page 113: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

112

StichwortverzeichnisåMCS101

Art.-Nr. 10138N1062

Page 114: Mikrocomputer-Systeme GrundlagenderMikrocomputer-Systeme ... · Aus Sicht der Digitaltechnik handelt es sich bei einem Mikroprozessor oder Mikro- controller um einen Baustein, der

Gabriele Sievers

luminoso

AKADart-Ausstellung

2006/2007

Studieren neben dem Beruf

»Ich mach was

für meine Karriere!

AKAD.de«

Art.-Nr. 10138 N1062

AKAD Bildungsgesellschaft mbH