DER PROZESSRECHNER
8501 PROZESSOR:
Bei der für MTEC4 eingesetzten Computerhardware handelt es sich um einen Rechner auf der Basis eines 8501 Prozessors mit Assemblersprache aus der 6502 Familie. Der Prozessor wird gesteuert vom 8360 Controller, der die Video- und Soundaufbereitung, Interrupterzeugung, Erzeugung des Prozessortaktes von 980 Khz aus einer 17,734 Mhz Quarzfrequenz, und die Erzeugung interner Signale wie RAS, CAS, MUX für den DRAM Zugriff, AEC, BA für die Steuerung des 8 Bit Daten busses und 16 Bit Adressbusses, CS0, CS1 für das Einblenden von RAM und ROM Bausteinen in den Adressbereich, vornimmt. Alle wesentlichen Signale des Prozessors sind an externe Steckerleisten gelegt, um Expansionen durch Peripherie wie RAM/ROM Bausteine, weitere Rechner, Magnetspeicher etc. zu unterstützen. Die TTL Technik benötigt 5 V und 1,5 A.

Außer den Daten-, Adress- und Steuerleitungen besitzt der 8501 Prozessor 8 separate programmierbare Ein-/Ausgabeleitungen, die durch das Datenrichtungs register auf Adresse $0000 als Ein-/oder Ausgabeleitungen geschaltet und durch das Datenregister auf Adresse $0001 programmiert werden können. Eine der Leitungen ist durch das System mit dem MUX Signal belegt. Standardmäßig legt das Betriebssystem P0 bis P3 auf Ausgabe und P4 bis P7 auf Eingabe. Eine Inverter schaltung legt P0 und P7 sowie P1 und P6 auf je eine externe Leitung, die dann als serielle Ein-/Ausgabekanäle für Takt und Daten verwendet werden.
Drei weitere Leitungen sind als Steuerleitungen für Messzwecke bzw. Datentransfer verwendbar.

Bei 980 Khz Prozessortakt wird 1 Byte Programmcode in 1 Mikrosekunde verarbeitet Daraus ergibt sich die Ausführungszeit für die 1, 2, und 3 Byte Assemblerbefehle des Prozessors. Der DRAM Zugriff, incl. des Multiplexens der 16 Bit Adressen auf 8 Bit DRAM Adressleitungen, ist in diesen Zeitrahmen hineingebracht. Der Rechner verfügt über ein 32 KB ROM Betriebssystem im Adressbereich $8000 bis $FFFF und 32 KB ständig verfügbaren DRAM im Adressbereich $0000 bis $7FFF sowie weitere 32 KB DRAM einblendbar im ROM Adressbereich. Durch verschiedene Chip Select Leitungen kann der Adressbereich durch weitere externe Speichermodule verwendet werden. Es werden die DRAM Bausteine 4164 verwendet.

Tastatur und Mouse-/Joystickeingänge sind über den 8 Bit Datenlatch 6529B ange schlossen.

INTERRUPTSTEUERUNG:
Die Interrupts des MTEC4 werden vom Controller 8360 durch 0 Setzen der IRQ Leitung des Prozessors ausgelöst. Der Prozessor verzweigt dann über den Inter- ruptvektor zur Interruptroutine, in der wesentliche Teile des Betriebsystems vorrangig vor allen anderen Tasks bearbeitet werden. Auch der UART 8551 kann Interrupts auslösen, um den RS 232 Betrieb zu steuern. Ferner können durch Unterlauf der Timer A, B und C programmierte Interrupts erzeugt werden. Da die IRQ Leitung des Prozessors auch an der Expansionsteckerleiste des MTEC4 liegt, können auch externe Geräte die Leitung 0 setzen und Interrupts auslösen.

Wird die Bildschirmaufbereitung durch Registerbefehl ausgeschaltet und die Interruptroutine des Betriebssystems übersprungen, d.h. das Betriebssystem eben falls ausgeschaltet, bleibt nur die Erzeugung des Rasterzeileninterrupts durch den Baustein 8360, der eine auf das Retten und Zurückladen der drei Register A, X, Y beschränkte Inter ruptroutine (Puls) durchläuft, und den Prozessor nur noch minimal beansprucht. Ein Programm, das von diesem Interrupt gestartet wird, hat ausschließliche Pro zessorpriorität. Ein neuer Interrupt wird erst nach Abarbeitung des Programms und Rückkehr des Interrupts zur Pulsroutine erzeugt. Die Interruptfrequenz in dieser fast auf 0 reduzierten Routine, d.h. unmittel bare Rückkehr vom Interruptvektor zum Pulsroutine, ist hoch und liegt bei 1 Interrupt jede 100 Mikrosec. Ein Interruptzähler von drei Byte zählt in 5 Minuten bis ca. 3.000.000. Durch Interruptmaskierung des Betriebssytems wird die Frequenz um das 100 fache auf ca. 10 millisek. reduziert. Weitere Maskierung des Interruptregisters filtert einen Interrupt alle 20 millisec., d.h. 50 pro Sec., heraus und benutzt diesen Interrupt zum takten der Systemuhr. Diese wird bei jedem Inter rupt einmal und jedem 5. Interrupt zweimal getaktet, und zählt dadurch einen Tag in 1/60 Sekunden. Nach 24 Stunden werden die drei Zählfelder $A5, $A4 und $A3 wieder 0 gesetzt. Dieser Timer ist auch in der MTEC4 Kommandosprache in der Variablen TI leicht zugänglich und kann für diverse Mess- und Kontrollaufgaben benutzt, und auch auf genaue Uhrzeit gesetzt werden.

Bei Benutzung der Systemtimer A, B, und C zur Interrupterzeugung, die vom Controller jede mikrosec. dekrementiert werden können, besteht Gefahr der Interruptüber lagerung mit dem Rasterzeileninterrupt. Nähert sich ein regelmäßiger Timer interrupt den Intervallen des Rasterzeileninterrupts von 100 Mikrosec. und führt Programmroutinen aus, kann es zu erkennbaren Störungen des Bildschirmaufbaus kommen, wenn dieser durch die Timerinterruptroutinen an oder ausgeschaltet wird. Bei einer Verkürzung der Timerinterruptintervalle in die Nähe von 100 mikrosec. kommt es leicht zu Systemabstürzen, d.h. vorsichtige Benutzung ist erforderlich.
Der MTEC4 Tastaturtreiber für die serielle Messchnittstelle benutzt einen Timer Interrupt jede 128 Mikrosec. zur Prüfung der Leitung auf Dateneingang. Dabei wird die Bildschirmaufbereitung in diesen Intervallen ausgeschaltet, um unbe einträchtigten Empfang und Aufbereitung von seriellen Tastaturdaten zu ermög lichen. Tastaturempfang ist so möglich, verlangsamt die Aktivität des Betriebs systems aber erheblich, so daß für andere wesentliche Verarbeitungsaufgaben der Tastaturtreiber vorübergehend ausgeschaltet werden muß.

Bei einem Prozessortakt von nur 980 KHz ist die taskorientierte Steuerung der Prozessorleistung wesent liche Aufgabe des Betriebssytems und anderer Kernelprogramme. Zu den Aufgaben, die eine ausschließliche Prozessorpriorität benötigen, gehören in erster Linie Sende- und Empfangstreiber für schnelle Datenübertragung über die externen Schnittstellen, d.h. die seriellen Schnittstellen für den Kassetten- und Diskettenport, den 8551 UART, den Paralellport des 6529B Bausteins und den Daten- und Adressbus am Expansionport.

ADRESSMANAGEMENT:
RAM/ROM Umschaltung.
Diese Grundfunktion wird durch den Controllerbaustein 8360 ausgeführt. Ein Speicherbefehl auf Adr. $FF3E schaltet im Adressbereich $8000-$FFFF ROM ein. Ein Speicherbefehl auf Adr. $FF3F schaltet RAM im o.g. Adressbereich ein. Durch Adressdecoder wird festgestellt, welche der beiden Adressen angesprochen wird. Bei Einschalten und Reset des Rechners ist der erste Befehl ein Speicherbefehl auf $FF3E mit dem der Betriebssystem ROM eingeschaltet wird.
Der Baustein 8360 stellt ein CS1 Signal als Output Enable für ein 16 KB ROM im Adressbereich $8000-$C000, und ein CS2 Signal als Output Enable für ein 16 KB ROM im Adress bereich $C000-$FFFF zur Verfügung. Schreibbefehle greifen in diesem Adress bereich immer auf den RAM zu. Für Lesebefehle wird bei eingeschaltetem ROM das CAS (Colum Access Signal) für den RAM Zugriff nicht gegeben, so daß Daten nur vom ROM Speicher zur Verfügung stehen. Bei Umschalten auf RAM wird das CAS Signal gegeben, nicht aber das CS1/CS2 Signal für die ROM Bausteine. Der Adress bereich $FC00-$FFFF ist Systemkommunikationsbereich für alle Speichermodule.

Externe RAM/ROM Erweiterung.
Der Expansionport mit Adress- und Datenbus sowie Steuerleitungen ermöglicht den Betrieb externer Speicherbausteine wie z.B. ROM, Flash-RAM oder SDRAM. Mondenia MTEC4 arbeitet mit 256 KB, 512 KB und 1MB Flash-RAM Steckmodulen. Durch den MONDENIA MTEC4 MEMORY MANAGEMENT Chip ist auch mit einem 8Bit Prozessor und einem Adressraum von nur 64 KB (16 Adressleitungen) durch Hilfsadressen und Einblenden der Basis adresse für Schreib- und Löschalgorithmen des Flash-RAM Bausteins die gesamte Speicherkapazität dieser Bausteine nutzbar.

Adressmultiplexing für DRAM.
Die 64 KB der dynamischen RAM Bausteine werden durch zwei Multiplexerchips 74LS276 mit den Adressen A0-A15 versorgt. Im ersten Schritt werden die 8 Reihen adressen auf die 8 Adresseingangsleitungen der RAM Bausteine geschaltet. Das vom Controller 8360 erzeugte RAS (Row Access Signal) bewirkt die Übernahme der Adressen durch den RAM Baustein. Im zweiten Schritt werden durch das vom Controller erzeugte MUX Signal die Spaltenadressen vom Multiplexerbaustein auf die 8 Adresseingänge des RAM geschaltet. Durch das CAS Signal übernimmt der RAM Baustein die Spaltenadressen und stellt die Daten zur Verfügung, bzw. speichert sie in Abhängigkeit vom Pegel des R/W Signals, das der Prozessor erzeugt.
Externe RAM Bausteine werden parallel zum DRAM im Adressbereich $8000 - $FC00 beschrieben. Der DRAM wird dann zum temporären Ausgabearbeitsbereich. Beim Lesen werden externe RAM Bausteine wie ROM, jedoch als 32KB Speicherbänke, behandelt.

Programmable Array Logic PAL.
Ein Baustein dieser Bezeichnung steuert die Kommunikation zwischen Prozessor bzw. Controller und Peripheriebausteinen wie z.B. dem RS 232 Interface 8551 und dem Parallelinterface 6529B nach außen bzw. zur Tastatur. Dieser PAL Baustein enthält einen Adressdecoder mit 16 Eingängen und fest programmiert als Funktion der Eingangspegel 8 Ausgänge. Werden Registerwerte auf bestimmten Adressen für die o.g. Bausteine angesprochen, setzt der PAL Baustein Chip Enable Signale, so daß der angesprochene Baustein die gerade auf dem Datenbus vorhanden Werte über nehmen kann, bzw. Daten ausgeben kann, je nach Pegel des R/W Signals. Ferner erzeugt der PAL Baustein bei Ansprechen von 16 besonderen Registeradressen ein Signal zur Selektion und Kombination der möglichen 8 ROM Bausteine zu einen 32 KB ROM Speicher.

ROM Management.
Für das Schalten der ROM Bausteine sind die Chips 74LS175, 74LS27 und 74LS139 zuständig. Durch diese Logikschaltung wird erreicht, daß nur Lesebefehle auf den ROM zugreifen. Ferner werden die Chip Select Signale CS1 und CS2 in Abhängigkeit von den 16 angesprochenen ROM Registern vervierfacht, so daß eine Selektion aus 8 verchiedenen 16 KB ROM Steckplätzen möglich ist. Die vom Rechner verwendeten Adressen A0-A13 arbeiten jeweils 16 KB ROM im Adressbereich $8000-$C000 und $C000-$FFFF ab. Es können jedoch auch kleinere oder größere ROM Bausteine als 16 KB verwendet werden. Mit zwei Hilfsadressen (z.B. des Prozessorports oder des Parallelports) können 2 64 KB ROM Bausteine je Steckplatz vollständig bearbeitet werden, d.h. insgesamt auf 4 Steckplätzen 512 KB ROM.
Theoretisch können mit verfügbaren 12 Bits von 2 Registern als Hilfsadressen, (4 Bits werden bereits für die Steckplatzselektion verwendet), 128MB ROM oder SRAM je Steckplatz, bzw. 64MB Flashram je Steckplatz (da eine zusätzliche Schreibleitung erforderlich ist), verwaltet werden, d.h. insgesamt max. 512 MB. Eine Obergrenze ergibt sich aus dem verfügbaren Raum bzw. der Stromversorgung. Da z.Zt.etwa 800 mA für Speicherbausteine vorhanden sind, kann praktisch eine große Zahl von CMOS Bausteinen mit ca. 5-40 mA Stromaufnahme, d.h. Speicherkapazität von vielen MB automatisch betrieben werden.

8551 UART:
Wesentliche weitere Komponente des Rechners besteht in dem UART 8551 als serieller Comport für RS 232 Betrieb. Dieser Baustein ist gekoppelt mit einem weiteren 6529 Baustein der, in Verbindung mit den Steuerleitungen des 8551, 8 Bit paralellen Datenverkehr mit externen Geräten ermöglicht, da alle Leitungen dieser Bausteine und zusätzliche Steuerleitungen an eine Userport-Steckerver bindung geführt sind.

Der 8551 RS 232 Baustein ist Quarzgesteuert (1,8432 Mhz) und unterstützt 16 Baudrates von 50 Baud bis 19200 Baud. Ferner ist Zuführung eins externen Taktes auf den Eingang RxC möglich, der dann zu einem Arbeiten des Bausteines mit der Baudrate 16*externer Takt führt. Die Baudrate 19200 bewirkt eine Bitdauer von 1/19200 = 52 Mikrosekunden. Der Baustein löst einen Interrupt aus je nach Einstellung z.B. bei 8 Bit + 1 Stopbit nach etwa 9x52 = 468 Mikrosekunden, um etwa empfangene Bytes an den Rechner zu übergeben. In dieser Zeit kann der Prozessor Programmcode in erheblichem Umfang zur komfortablen Bedienung des Bausteines verarbeiten, wie es praktisch vom Betriebssystem gehandhabt wird. In einfachster Form ist jedoch nur ein entladen des Bausteins und speichern des Bytes erforderlich, was in etwa 6 Mikrosekunden möglich ist. Der Baustein könnte also auch bei extern zugeführtem Takt mit höheren Baudrates betrieben werden, ggf. bis 115200 Baud, Bitdauer 8,6 Mikrosek.

PARALLELE SCHNITTSTELLEN:
Der an der Expansionssteckerleiste liegende Adress- und Datenbus wird durch 2 Bausteine für Adressdecodierung und Handshakesignal als externer IEC Parallelport genutzt.
Die paralelle Schnittstelle des 6529B Bausteins wird außerdem durch MTEC4 Treiber mit sofwaremäßig erzeugten Handshakesignalen für bidirektionalen parallelen Datenverkehr nutzbar gemacht. Über diese Schnittstelle werden 8KB in 1 Sekunde von Rechner zu Rechner übertragen.

SERIELLE SCHNITTSTELLEN:
Auf der Basis der 8 separat programmierbaren Prozessorports P0-P7 sind zwei weitere vom Betriebssystem softwaremäßig versorgte Schnittstellen nach außen gelegt. Eine dient dem seriellen Datenverkehr mit Diskettenstationen und Druckern, die andere dem Datenaustausch mit einer Magnetbandkassette. Der Diskettenport benutzt eine der programmierbaren Ein-/Ausgabeleitungen für Daten, die andere für ein Clocksignal zur Synchronisation, sowie Ausgabeleitung P2 als ATN Signal zur Kennzeichnung von Eröffnungsdaten, wie Lesen des Dateinamens im Diskettenverzeichnis und Positionieren des Lesekopfes auf den ersten Datensektor. Clock- und Datenleitungen können auch zur Kommunikation mit seriellen EEPROMS verwendet werden.
Die zweite Schnittstelle für Magnetband, bzw. Messchnittstelle, enthält die schaltbare 9V Stromquelle, die zuvor genannte Clockleitung als Datenausgabe und P4 als Daten empfangsleitung. Da der Prozessor mit einer 8 Bit Datenbreite arbeitet, müssen alle Daten von den I/O Makros des Betriebsystems in serielle Daten konvertiert, und beim Empfang wieder in 8 Bit paralelle Daten umgewandelt werden. Das bedeutet erheblichen Programmaufwand und Zeitaufwand für den Prozessor. Die I/O Routinen für Disketten- und Druckerbetrieb arbeiten mit einer Zeitkon stanten von 104 Mikrosekunden, was etwa der Bitdauer einer Baudrate von 9600 entspricht. Die I/O Routinen für Magnetband arbeiten mit einer Zeitkontanten von 208 Mikrosekunden was etwa der Hälfte der o.g. Baudrate entspricht. Die effektive Übertragungsrate bei Magnetband liegt jedoch erheblich niedriger, da alle Daten aus Sicherheitsgründen doppelt übertragen und gespeichert werden und beim Einlesen auf Übereinstimmung verglichen werden. Ferner werden wegen va riierender Laufgeschwindigkeit der Kassettenmotoren Synchonisationsdaten über tragen, aus denen beim Einlesen der Daten die aktuellen Zeitkonstanten ermittelt werden. Auf dieser Technik basieren Turbolader für Magnetbanddateien.

MESSPROGRAMME:
MTEC4 verfügt über Messprogramme, welche die Impulsdauer an den seriellen Ein gabeleitungen messen, und variable Softwaretaktgeneratoren für die Ausgabe von Signalen auf den seriellen Leitungen besitzen. Diese Leitungen können für die unterschiedlichsten Steuerungsaufgaben verwendet werden. Die kürzeste Mess schleife dauert 5 Mikrosekunden, hinzu kommen 4 Mikrosekunden für die Speicherung des Messwertes, 4 Mikrosekunden für die Initialisierung, und 8 Mikrosek. für Seitenwechsel von 256 Messwerten und Endeprüfung. Daraus ergibt sich die Mindestdauer von messbaren Impulsen, die deutlich über 5 Mikro sekunden liegen muß. Während der Messungen wird das gesamte Betriebsystem ausgeschaltet. Der Con troller erzeugt den nicht ausschaltbaren Rasterzeileninterrupt für Bildschirmaufbe reitung und, wenn verlangt, Timerinterrupts der Timer A, B und C. Der RS 232 Interrupt wird vom Baustein 8551 erzeugt, sofern Freigabe erfolgt. Interrups erhalten 1. Prozessorpriorität, während Anwendertasks 2. Priorität haben. Die Messroutinen werden deshalb vom nicht ausschaltbaren Rasterzeileninterrupt gestartet um ausschließliche Priorität für die Messung und berechenbare Mess werte zu erhalten. Die Messwerte für die Bitdauer bei einer RS 232 Übertragung mit 19200 Baud betragen 9 Schleifendurchlaufe. D.h. 9x5=45 zuzüglich 8 Mikrosek. für Speicherung und Initialisierung entspricht etwa der Bitdauer von 52 Mikro sekunden bei einer Baudrate von 19200. Mit Hilfe von Frequenzteilern ist das Messprogramm in der Lage, auch erheblich schnellere Takte zu messen. Bezüglich der Messung von Daten besteht jedoch die o.g. Beschränkung. Die Messwerte ermöglichen auch eine Einschätzung, welche Impulsdauer im Realtimeverfahren noch nennenswert verarbeitet und aufbereitet werden kann. Die vom Betriebssystem softwaremäßig aufbereiteten seriellen Signale einer Baudrate von 9600 liegen im mittleren Bereich für Realtimeverarbeitung.
HOME