Informationsdarstellung


A. B.
Diese Lernkarten decken fortgeschrittene Konzepte der Mikroprozessortechnik ab, die für Universitätsstudenten relevant sind. Sie behandeln zentrale Themen wie Busanforderungen, Interrupts, Register, Befehle und Ausnahmen, die für das Verständnis der Prozessorarchitektur und deren Funktionsweise entscheidend sind. Besonders nützlich sind sie für Studierende und Ingenieure, die sich mit der Implementierung und Fehlerbehebung in Mikroprozessorsystemen beschäftigen, da sie detaillierte Einblicke in die Hardware-Komponenten und deren Interaktionen bieten.
Cartes-fiches
42
Utilisateurs
2
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
09.02.2019 / 07.03.2019

Cartes-fiches

Wie gross ist ein Word ?

In Rechnersystemen mit mehr als 8 bit ( 1 Byte) Datendarstellungsbreite spricht man von einem WORT (word)  dabei ist es egal ob es sich um ein 12 bit, 16bit, 32 bit oder 64bit word handelt.

Umwandlung der Dezimahlzahl 13 in eine Dualzahl

13/2 = 6 behalte 1

6/2= 3 behalte 0

3/2 =1 behalte 1

1/2= 0 behalte 1

von unten nach oben 1101

MSB 0 oder 1 positiv oder negativ im Dualsystem 

MSB 0 = positive zahl im resten steckt der Betrag

MSB 1= negative Zahl im resten steckt der Betrag

Voteile 2er Komplement gegenüber 1er Komplement

0 bleibt 0 beim einerkomplemt wäre 0= 1111 1111

 

15 in Hex

F

12 in hex

C Cwölf

BCD Code

Binary Code Decimal jede Dezimalziffer  entspricht 4 bite dabei wird Kapazitität zwar nicht voll ausgeschöpft anstelle von 256 nur noch 100 aber ein und ausgabe sind viel einfacher

Daten formate beim 68000er

bit 

BCD

Byte 

Word 

longWord

Bit= 1 Bit

BCD = 4 Bit

Byte = 8 Bite

Word = 16 Bit

LongWord= 32 Bit

Wie viele Adressleitungen hat der 68000er

Er hat einen 16 Bit Buss aber trozdem handelt es sich um eine Byte- Maschine. Daher wir ein word 16 Bit in gerade und ungerade Adressen unterteilt.

Einschränkungen im 6800 

Er besitzt keine Adressleitung A0 daher mus die Kontrolleitung mit UDS und LDS gebildet werden.

Weiter gilt (Lang) Worte dürfen nur auf geraden Adressen adressiert werden.

Unterschied zwischen Daten und Adressregister

-Datenregister können 1,2,4,8,16,32bit Daten gehalten werden. Wird nicht das ganze 32 bit Register verwendet so liegen die   Daten immer im unteren Teil des Registers. Datenregister können zum z.B. keine Adresszeiger darstellen.

-Adressregister können 16 bit und 32 bit Werte enthalten und keine Arithmetik oder Logikoperationen ausführen.Bei Adressregisteroperationen wird im Normalfall das Statusregister nicht beeinflusst im gegensatz zu den Datenregisteroperationen. Weiter haben die Adressregister eine predecrement und postincrement möglichkeit, was den Aufbau von -stacks erleichtert.

Für was sind die beiden Register A7 und A7`

Sie werden vom Prozessor speziell behandelt sie dienen als Stackpointer das bei einem Subroutinenaufruf auf dem Stack die Rücksprungadresse abgelegt wird.

Statusregister

Das Statusregister ist ein 16 Bit-Register. Der Normale User hat aber nur zugriff auf die unteren 8 Bits die oberen 8 sind dem Supervisor vorbehalten. Wird vom User troztzdem versucht die oberen 8 Bits zu manipulieren, kommt es zu einer Ausnahmebehandlung

Wie heissen die unteren 8 Bits im -statusregister 

Sie heissen Condition Code Register CCR 

Carry,oVerflow,Zeroflag,Negativ,eXtend

Was macht das Carry Bit

Wird immer gesetzt wenn bei einer arithmetischen Operation im Zieloperand ein übertrag entsteht oder ein Borgen stattfindet.

  1000 1111

+1000 1111

 100011110

Unterstrichene 1 ist das Carry

 

 

Was macht das overflow Flag

wird bei einem Bereichsüberlauf gesetzt. Zum Beispiel wenn man bei einer 8 bit Operation über 256 kommt 

wann wird das Zeroflag gesetzt

Wir gesetzt wenn das Ergebniss 0 ist bzw. bei einer Vergleichsoperation die Operanden gleich gross sind.

wann wird das Negativ flag gesetzt

wird gesetzt , wenn das höchstwertige Bit eines Zieloperanden gesetzt ist

wann wir das extend gesetzt

entspricht eigentlich dem Carry, wird aber nur bei Arithmetik gessetzt und nicht bei vergleichen. Das erlaubt den Inhalt des Carry über mehrere Operationen zu erhalten

Welche Bits sind in den oberen 8 Bits des Statusregister enthalten?

Interrupt, Supervisor, Trace

Erkklärung Interrupt Bit

Der 68k unterscheidet 7 Interrupt ebenen, die in einem 3bit- Word kodiert sind. 0 heisst kein Interrupt und eine Zahl grösser 0 bedeutet einen Interrupt. Mit der Maske kan man anstehende Interrupts ignorieren eine Ausnahme bedeutet die Ebene 7 die nicht maskierbar ist.

Supervisor bit

Dieses Bit ist 1 wenn sich der Prozessor im Supervisormode befindet. Dies ist der Fall nach dem Reset und nach dem auftreten einer Ausnahmebedingung.

Für was ist das trace Bite

Dieses Bit ermöglicht es, per Software Einzelschritte abzuarbeiten

Es wird vorallem von Debuggern genutzt

Welche 3 zustände hat der 68k

Normal : normale Betriebsausführung (inkl.STOP-Befehl)

Exception: Interrupts, Traps, Trace; führt automatisch zum Supervisor Modus

Halt: entweder HALT/-Leitung oder fataler Fehler  (Double Bus Fault)

Zwischen welchen 2 Exceptions wir unterschieden

intern: Befehle (Traps, Trapv, CHK,DIV), Adressfehler, Trace-Modus

extern: Interrupts, Busfehler, Reset

Für was und wie gross sind die Vektortabellen?

Die Vektortabelle ist 1024 Byte gross  die Tabelle sartet bei der Adresse 0X0000 und hat platz für 256 longword Einträge. In dieser Tabelle sind alle Ausnahmen drin vom 68K. Jeder eintrag in dieser Tabelle stellt ein Zeiger auf eine Ausnahmeroutine dar. Exeption Service Routine ESR.

Was passiert beim auftreten einer Exeption?

Zuerst der laufende Befehl fertig verarbeitet,dann in den Supervisor Modus geschaltet,der Programmcounter (PC) und dann das Statusregister (SR) auf den Stack A7 befördert. Jetzt wird der Zeiger der dieser Exeption entspricht in den PC geladen und das Programm fortgesetzt.  Ist der Zeiger richtig gesetzt befindet sich das Programm nun in der ESR ( Exeption Service Routine) mit dem befehl RTE  geht das Programm wieder zurück. Der  RTE Befehl macht alles wieder rückgängig das unterbrochene Programm wird am gleichen Ort wieder fortgesetzt mit hilfe des Stcks (A7).

Für was sind die Exeptions gut ?

Sie geben dem Programmierer die Möglichkeit eine Ausnahme zu erkennen und darauf zu reagieren.

Wie behandelt man eine Exception?

Für die Behandlung gibt es keine Richtlinie. Für den Anfang reicht es oft alle unbenutzten Vektoren auf eine Routine zu biegen, die auf dem Bildschirm eine Meldung ausgibt welche Exception aufgetreten ist. Ausserdem kann er auch noch die Register zum Zeitpunkt der Exception anzeigen. 

Was wird bei einer Exception auf den Stack geschrieben?

Immer der Programmcounter (PC) und das Statusregister (RS). Das reicht fast ihn allen Fällen  Beim Busfehler und Adressfehler ist es aber nicht möglich den laufenden Befehl abzuarbeiten. Hier wird zusätzlich zu den obigen Daten noch der OPcode des unterbrochenen Befehls, die Adresse, auf der abgebrochen wurde und ein Super-Statuswort auf dem Stack abgelegt.  Mit diesen Information kann nunn der Programmiere ziemlich genau die Stelle orten wo die Exception aufgetreten ist.

Für was sind die Funktionscode leitungen beim 68k?

Neben Adress und Datenleitungen  hat der 68k auch noch drei Funktions Code Leitungen. Das bietet die Möglichkeit die Peripherie nur im Supervisor Modus anzusprechen und normalen Usern den Zugriff auf Ressourcen zu verwehren.

Synchroner Bus 

Neben dem Asynchronen bus besitzt der 68 k auch einen synchronen Bus. Ein Zugriff auf diesen Bus unterliegt einem -starren Zeitschema, das nicht verändert werden kann. Daher die Peripherie und der Speicher dürfen eine Maximale Zugriffszeit nicht überschreiten.

Welche zwei Vektoren werden unterschieden ?

Der 68k hat 197 Non-Autovektoren und 7 Autovektoren. Die Autovektoren unterstützen einfach Peripheriebausteine dieser Bausteine stellen meist keine interruptvektoren zu verfügung, sie sind nicht in der Lage sind einen Vektor also eine 8 bit Zahl zu erzeugen und so dem 68k mitzuteilen, wo der Interrupt behandelt werden soll. Bei den Non-Autovektoren teilt der Peripheriebaustein während des Interrupt Antwortzyklus dem 68k einen Vektor mit.

Wie werden dem 68k Unterbrechungen mitgeteilt.?

Mit den drei Leitungen IPL2/ IPL1 und IPL0. Diese können acht zustände anehmen wobei kombination 111 keinnen interrupt bdarstellt und 000 stellt den höchstpriorisierten Interrupt ebene 7 dar. 

Welche Bedinungen müssen von der Hardware erfüllt sein damit ein Interrupt erkannt wird  und sie den richtige Vektor auswählen kann?

Eine Unterbrechung, die am IMR Interruptmaskregister vorbei kommt muss so lange am 68k anstehen, bis dieser die Interruptbestätigung beendet. Funktionscode 111. Die zu bearbeitende Interrupteben wird ausserdem noch auf den untersten Adressleitungen A1 bis A3 bekannt gegeben. Nun kann folgendes passieren

-VPA wird geliefert d.h Autovektor benutzt.

-DTACK wird geliefert d.h. die Peripherie liefert eine Vektor.

-BERR wird geliefert d.h falscheer interrupt (Vektor # 0x18)

Dasy-Chainning

Sorgt dafür das die 192 interruptvektoren auf den 7 Interruptebenen richtig ausgenützt werden.

Reset eingang

Um den Prozessor in einen definierten Zustand zu bringen dient der Eingang Reset. Nach dem Reset befindet sich der 68k im Supervisor- modus holt von denAdressen 0x0 und 0x4 den Reset-SSP und en Reset- PC, setzt die IR-Maske auf 7, das Tracebit auf 0 und das Superbit auf 1.

Halt

Das Halt Signal ist bidirektional.Als Eingang, zusammen mit Reset betätigt erzeugt einen Power-up-Reset. Allein als Eingang auf 0 gelegt, hält der 68k nach abarbeiten des momentanen Buszyklus die Programmausführung an und macht erst weiter wenn das Signal wieder auf 1 geht.Zusammen mit dem Bus Error Signal ermöglicht der 68k einen ReRun-Cycle was eine wiederholung des momentanen Befehl bedeutet. Wenn der 68k einen fatlen Fehler miteilen möchte ist er als Ausgang geschaltet.

Buss Error Anschluss

Über diesen Anschluss kann man dem Prozessor mitteilen, dass es mit der momentanen Programmarbeitung Schwierigkeiten gibt. dieses Siganl wird meisten aktiviert durch eine Bus-Timout-Logik wenn ein Zugriff in einen Adressbereich erfolgt in dem kein DTACK erzeugt wird

Busanforderung DMA anschluss

Manchmal muss man dem uP den Bus wegnehmen, wenn sich mehrer CPUs um den gleichen Prozessor bemühen oder wenn für schnelle Datentransfers eine DMA-Einheit (Direkt Memory Accesss)zu Verfügung steht z.B ein HD-Kontroller. Dafür gibt es drei Leitungen

- BR signalisation das man den Bus gerne übernehmen würde

-BG antwort das der Bus zu Verfügung steht.

-BGACK anzeigen das man im Besitzt des Buses ist.

Sobald man den Bus nicht mehr braucht BGACK wieder deaktievieren.

Étudier