Datenverarbeitung


Stand: 2004-03

Thomas Mertin
Netzwerk- und Elektrotechnik

D-41334 Nettetal

Aufbau eines Computers

1. Blockschaltbild eines MC-Systems

nach oben

2. Bussystem

Bussystem des MFA-Rechners

16 Adreßbusleitungen A0...A15
8 Datenbusleitungen D0...D7
4 Steuerbusleitungen
28 Busleitungen (Gesamt)  

Bus Schaltungstechnik

Tristate-Schaltung

ENABLE H-aktiv ENABLE L-aktiv
EN E A   E A  
H H L   L H L  
H L H   L L H  
L X Z   H X Z  

X = beliebig; Z = hochohmig

Weitere Bezeichnungen für EN-Eingänge:
OE = Output enable; OC = Output clock; CS = Chip select; CE = Chip enable

Alle Baugruppen, die Daten an den Datenbus abgeben können (Prozessor, Speicher, Eingabe), sind über Tristate-Gatter (Tristate-Treiber) mit dem Datenbus verbunden. Die Datenfreigabe erfolgt durch den Prozessor jeweils nur für ein Gerät. Hierdurch werden Signalkurzschlüsse zwischen verschiedenen Geräten vermieden.

Darstellung von Signalzuständen auf Busleitungen

D0...D3 bilden das LSB (Light significant byte)
D4...D7 bilden das MSB (Most significant byte)

Beispiel:
D0 = 1, D1 = 1, D2 = 0, D3 = 1, D4 = 1, D5 = 0, D6 = 1, D7 = 0
LSB: 10112 = BH MSB: 01012 = 5H
D0...7 = 5BH

Keine der angeschlossenen Funktionsgruppen liefert ein Signal auf den Datenbus.

Beim hochohmigen Zustand sind die Leitungen durch Pull-up Widerstände auf "1"-Signal gelegt.


Bei Pull-up Widerständen mißt man auf den Datenbus im hochohmigen Zustand den Wert FFH.
Vorteil: Leitungsunterbrechungen werden hierdurch erkennbar.


Darstellung von Signal-Zeit-Diagrammen

Wirkungspfeile in Signal-Zeit-Diagrammen zeigen an, welche Signale oder Signalwechsel andere Signale oder Signalwechsel zur Folge haben.

Der HL-Sprung des -Signals bewirkt, daß nach einer Verzögerungszeit tv das Datum einer Speicherzelle auf dem Datenbus erscheint. Die Verzögerungszeit ist vom Speicher abhängig (50ns...500ns).


  1. Die CPU gibt eine Adresse aus.
  2. Die CPU veranlaßt den Speicher die Daten der Speicherzelle E37FH auf den Datenbus zu schalten.
  3. Der Speicher gibt den Inhalt der adressierten Speicherzelle auf den Datenbus.
  4. Die CPU übernimmt das Datenwort und speichert es intern ab.
  5. Die Daten sind nicht mehr auf dem Datenbus "vorhanden".

nach oben

3. Speicher

Speicherarten

RAM: Random access memory, Speicher mit wahlfreiem Zugriff (Zugriffszeiten   50ns...500ns)
SRAM: Statischer RAM, Speicherinhalt bleibt bei Betrieb ohne Refreshing erhalten
DRAM: Dynamischer RAM, benötigt Refreshing (ca. jede 2ms), kleinere Bauart
ROM: vom Hersteller programmiert
PROM: vom Anwender einmalig zu programmieren
EPROM: vom Anwender mehrfach programmierbar, löschen über UV-Strahlen
EEPROM: elektrisch löschbares EPROM
EAPROM: electric alterable ROM (einzelne Speicherzellen änderbar)

Technologie und Aufbau von Speichern

Festwertspeicher

PROM (Fusible Link - Technologie):
Herstellerzustand                                                 Programmierter Zustand

Fehlendes Link bedeutet Information "1"

EPROM:
Prinzip eines EPROMs (FAMOS)

FAMOS (Floating Gate avalanche injection MOS) P-Kanal:

Schaltzeichen:

4x8 Bit ROM (Matrix) mit Diodenspeicherzellen

2x8 Bit EPROM (Matrix)

Schaltzeichen:

G1: Bausteinauswahl - Eingang (Chip select), UND verknüpft mit EN

RAM Speicherbausteine

Statische RAM-Speicherzelle in NMOS-Technik mit Anwahlschaltung

Statische CMOS-Speicherzelle

Dynamischer RAM (DRAM) Speicherzelle

Vorteil:
hoch integrierbar, durch Organisation in Spalten und Zeilen (Column und Row) ergibt sich eine Reduzierung der notwendigen Pins für das IC.

4x1 Bit RAM, bitorganisierter dynamischer Speicher, ohne Auffrischlogik dargestellt. Unter der Adresse 00 wird in den Kondensator C1 "1"-Signal eingeschrieben.

Speicherzelle eines statischen RAM.

CS: Chip select (Bausteinauswahl); WE: Write enable (Schreibfreigabe); EN: Enable (Tri-State-Steuerung)

Statischer 2x8 Bit RAM

Speicherorganisation

Speicherkapazität = Anzahl der Adressen * Anzahl der Datenleitungen
K = m * d
Adreßleitungen:

Maßeinheiten:

Speicherzelle = 1 Bit
Speicherzeile = 1 Byte (8 Bit)

Beispiele für Speichergrößen:
1) Speicherchip 1k Byte = 1024 Speicherzeilen = 1024 * 8 = 8192 Speicherzellen
2) RAM Speicher 32k RAM = 32k Byte
3) 1MB Chip = 1M Bit = 1028k Byte

Speichererweiterung auf 1k x 8Bit durch Zusammenschalten zweier 1k x 4Bit Schreib-Lese-Speicher (SRAM)

Speichererweiterung auf 16k x 8Bit durch Zusammenschalten von acht bitorganisierten Schreib-Lese-Speichern 16k x 8Bit.

Speicheraufteilung beim MFA-System

Speicherbereich:  Adreßleitungen (A0...A15)
Speichertiefe: 216 = 64kByte

256Byte = 1 Speicherseite (Bsp.: 0000...00FF)
4 Speicherseiten = 1kByte

MAT = Monitor Assembler Tracer
Monitor = Eingabe / Ausgabe / Speichern
Assembler = Übersetzer ASCII - Maschinensprache
Tracer = Testprogramm

Speicherplan

Anfangsadresse

Endadresse

Größe

Art

0000

1FFF

8k - ROM

Betriebssystem MAT85

2000

3FFF

8k - ROM

Betriebssystem MAT85+

4000

4FFF

4k - ROM

DOS

5000

5FFF

4k - ROM

Editor

6000

7FFF

8k - RAM

Buffer für Editor

C000

FC00

8k - RAM

Anwender Speicher

FC00

FFFF

RAM

Speicher für Betriebssystem

Belegung und Ansteuerung der Speicherbausteine im MFA-System

Blockschaltbild und Sockelbelegung des Bausteins 6116

Lesezyklus für den Baustein 6116 Schreibzyklus für den Baustein 6116

Blockschaltbild und Sockelbelegung des EPROMs 2716

Lesezyklus für den Baustein 2716

Funktionstabelle für die Schreib - Lese - Steuerung

Funktion RAM

Funktion ROM

L

L

L

(WRITE)

gesperrt

L

L

H

READ

READ

L

H

L

WRITE

gesperrt

L

H

H

gesperrt

gesperrt

H

x

x

gesperrt

gesperrt

nach oben

4. Eingabe und Ausgabe

Eingabezyklus                                                          Ausgabezyklus

nach oben

5. CPU

Interne Struktur eines Mikroprozessors

Blockdarstellung des Mikrocomputers 8085A

ALU, Akkumulator, Kurzzeitregister: Arithmetische und logische Verknüpfungen zweier 8 Bit Daten

Flag Register: Ergebnisauswertung nach arithmetischer und logischer Verknüpfung
N = Sign-Flag (N wird 1, wenn das höchste Bit (MSB) gleich 1 ist)
Z = Zero-Flag (Z wird 1, wenn das Ergebnis einer Operation Null ist)
H = Half-Carry-Flag (H wird 1, wenn ein Zwischenübertrag von Bit 3 nach Bit 4 stattgefunden hat)
P = Parity-Flag (P wird 1, wenn die Anzahl der "Einsen" im Ergebnis eine gerade Zahl ist)
C = Carry-Flag (C wird 1, wenn ein Überlauf im Ergebnis zustande kommt; Ergebnis größer FFH)

Dezimalkorrektur: wandelt eine Dualzahl im Akku in eine BCD-Zahl um (mit dem Befehl DAA)

Befehlsregister: Speicherung des aktuell auszuführenden Befehls

Befehlsdecoder: erzeugt in Abhängigkeit vom auszuführenden Befehl die notwendigen Steuersignal für die Takt- und Ablaufsteuerung

Takt- und Ablaufsteuerung: Erzeugung von Steuer- und Taktsignalen für die CPU Einheiten

B/C-, D/E-, H/L-Register: 8/16 Bit Register für allgemeine Anwendungen (D-FF)

W/Z Zwischenregister: Zur Adreßzwischenspeicherung, vom Anwender nicht ansprechbar bzw. zugänglich

Stackpointer (Stapelzeiger): Enthält eine Adresse im RAM-Bereich, in der zu einem späteren Zeitpunkt benötigte Daten stehen (z.B. Rücksprungadressen nach einer Verzweigung zu einem Unterprogramm)

Befehlszähler: Enthält die Adresse des nächsten auszuführenden Befehl

Inkr./Dekr.-Adreß-Speicher: Adressenzähler, vom Anwender nicht zugänglich

Adreßbustreiber: Unidirektionaler Treiber mit Tristate-Ausgang

Adreß-, Datenbustreiber: Bidirektionaler Treiber der im Multiplexbetrieb für Daten- und Adreßbus wirkt

Serielle E/A: Möglichkeit Daten seriell ein- und auszugeben

Unterbrechungssteuerung: für externe Programmunterbrechungen (Interrupts), wenn z.B. andere Programme mit höherer Priorität vorrangig abgearbeitet werden müssen.

Beschaltung der CPU 8085

Quarzoszillator: gibt die Taktfrequenz des Systems vor, die intern halbiert wird.

Interruptsteuerung: RST-Anschlüsse und INTR dienen der Steuerung von Programmunterbrechungen, die während der Abarbeitung eines Programms angefordert werden können. Während der Unterbrechung arbeitet der Prozessor bestimmte, vorher genau bezeichnete andere Programmteile ab und kehrt dann an die markierte Unterbrechungsstelle zurück. Der "Interrupt-Zustand" wird am Ausgang INTA mit 0 angezeigt.

Hold-Eingang: Mit Hold = 1 werden alle Bus- und Steuerleitungen hochohmig. Adreß-, Daten- und Steuerbussignale können nun von anderen Einheiten gebildet werden (z.B. über Bussignalgeber am MFA). HLDA (Hold-Acknowledge) zeigt als Ausgang in diesem Zusammenhang den Tri­state-Zustand der Busleitungen an. Nachdem HOLD weggenommen wurde, setzt der Prozessor das Programm an der "Haltestelle" fort.

RESET IN: Mit RESET IN = 0 werden Programmzähler und interne Flip-Flop's der CPU zurückgesetzt. Registerinhalte bleiben zwar unverändert, können aber nicht mehr verwendet werden, weil ein RESET von außen ohne zeitliche Definition erfolgt. Mit dem RESET wird erzwungen, daß der Programmzähler bei der Adresse 0000H beginnt, wo dann ein sinnvoller Befehl liegen muß um das Betriebssystem neu aufzustarten.

AD0-AD7, A8-A15 Gemultiplexter Adreß-, Datenbus: Die Leitungen AD0-AD7 werden nacheinander für das niederwertige Adreßbyte und für die Datenein- und Datenausgabe benutzt. Während der Zeit, wo die CPU Adreßdaten sendet, ist ALE = 1 (Address latch enable). Mit der abfallenden Flanke des ALE wird das Adreßbyte in einem externen 8-fach D-Latch eingespeichert (74LS374). Die komplette Adresse steht dann also während der Bearbeitung des Befehls an den Ausgängen des IC's zur Verfügung.

Bustreiber: Die Ausgänge des 8085 sind so ausgelegt, daß sie nur einen Standart TTL-Baustein betreiben können. Der 74LS374 zur Adreßspeicherung dient also auch als Treiber für alle an den Bus angeschlossenen Funktionsgruppen. Der Datenbustreiber muß in zwei Richtungen (bidirektional) arbeiten können (74LS245). Mit DIR = 1 werden Daten vom externen Bus gelesen und mit DIR = 0 nach externen Einheiten gesendet.

RD. WR, IO/M: Die Steuerbusausgänge werden zur Betätigung der vier externen Steuerbusanschlüsse ausdecodiert.

S0, S1: Auf diesen Leitungen wird zusammen mit dem Anschluß IO/M angezeigt in welchem der fünf möglichen Maschinenzyklen die CPU sich gerade befindet.

Arithmetik und Logik Einheit (ALU)

ALU mit Akkumulator

Signale von der Takt- und Ablaufsteuerung:
Dir = 0   Dateneingabe
Dir = 1   Datenausgabe
C1, C2   Übernahme Signal, positiv flankengesteuert
OE = 0   ALU Ausgang hochohmig
OE = 1   Ausgabe der ALU

Impulsdiagramm

tr = Rechenzeit der ALU, x = unbestimmt

t0-t1:    Datensignale D und Steuersignale S stehen gültig an.
t2:        Daten von Akku nach Zwischenakku. Daten D nach Kurzzeitregister.
t3:        Ergebnisdaten auf Datenbus.
t4:        Ergebnis im Akku
t5-t6:    Rücksetzen aller Steuersignale
t6-t12:  Entsprechend t0-t6

Darstellung der ALU für ein Bit

nach oben

6. Grundlegende Zeitabläufe eines MC-Systems

Es gibt fünf unterscheidbare Maschinenzyklen:

  1. Befehl holen (OP - Code - Fetch) OF
  2. Speicher lesen (Memory read) MR
  3. Speicher schreiben (Memory write) MW
  4. E/A lesen (Input Output read) IOR
  5. E/A schreiben (Input Output write) IOW

Befehl holen

Maschinen Lese Zyklus

a) Ein Lesezyklus überträgt Daten vom Speicher (MR) oder von einer Eingabeeinheit (IOR) zur CPU.

b) Die Dauer des MR/IOR beträgt drei Taktzyklen.

c) MR und IOR unterscheiden sich nur im Zustand der IO/M - Leitung (IO/M = 0: Speicherzugriff, IO/M = 1: Zugriff auf Eingabeeinheit).

d) Ein Maschinenzyklus beginnt mit der Aussendung eines ALE Signals und einer vollständigen Speicheradresse / Portnummer. Bei Zugriff auf eine I/O - Einheit sind A0...A7 und A8...A15 identisch, da die Portnummer nur 8 Bit breit ist.

e) Mit T2 wird RD Low und die Speicher- /Eingabedaten gelangen auf den Datenbus. In Abhängigkeit vom auszuführenden Befehl kann während T2 der Befehlszähler inkrementiert werden.

f) Während T3 (zur Zeit t3) werden die Daten in ein Register der CPU übernommen. Bei IOR gelangen die Eingabedaten immer in den Akkumulator. Nach der Übernahme der Daten werden RD = 1 und der Datenbus hochohmig (t4).

g) Die Signale IO/M, S0 und S1 zeigen externen Einheiten an, daß ein MR/IOR Maschinenzyklus stattfindet.

Speicher lesen Eingabeport lesen

Maschinen Schreib Zyklus

a) Ein Schreibzyklus überträgt Daten von der CPU zum Speicher (MW) oder zu einer Ausgabeeinheit (IOW).

b) Die Dauer des MW/IOW beträgt drei Taktzyklen.

c) MW und IOW unterscheiden sich nur im Zustand der IO/M - Leitung (IO/M = 0: Speicherzugriff, IO/M = 1: Zugriff auf Ausgabeeinheit).

d) Ein Maschinenzyklus beginnt mit der Aussendung eines ALE Signals und einer vollständigen Speicheradresse / Portnummer. Bei Zugriff auf eine I/O - Einheit sind A0...A7 und A8...A15 identisch, da die Portnummer nur 8 Bit breit ist.

e) Mit Beginn von T2 wird WR Low und die Schreibdaten werden von der CPU auf den Datenbus gegeben. In Abhängigkeit vom auszuführenden Befehl kann während T2 der Befehlszähler inkrementiert werden.

f) Während T3 (zur Zeit t3) werden mit der ansteigenden Flanke von WR die Daten vom Speicher- / Ausgabeeinheit übernommen.

g) Die Signale IO/M, S0 und S1 zeigen externen Einheiten an, daß ein MW/IOW Maschinenzyklus stattfindet.

Speicher schreiben Ausgabeport schreiben

Beispiele:


  nach oben  
Seite zurück Inhalt Seite vor
  Startseite  


Nachricht an: webmaster@mertech.de