-
TECHNISCHES GEBIET
-
Diese Erfindung bezieht sich auf eine E/A- (englisch: I/O) Buszuteilung bei einem Mikrocomputersystem.
-
HINTERGRUND DER ERFINDUNG/HINTERGRUNDTECHNIK
-
Relevanter Stand der Technik findet sich in der
US 5 185 694 A , der
US 7 096 293 B2 , der
US 5 239 629 A , der
US 2009/0 089 478 A1 , der
US/2008 0 043 767 A1 , der
US/2012 0 096 210 A1 , sowie in „Symmetric Crossbar Arbiters for VLSI Communication Switches“, Tamir, Y. et. al., in IEEE TRANSAKTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 4, NO. 1, 1993.
-
Konventionelle E/A-Bus-Zuteiler und befähigende Technologieentwicklungen
-
Konventionelle E/A- (Eingabe-/Ausgabe-) Bus-Zuteiler (englisch: arbiters) sind bei einem Multibussystem bei SOC- (= System-On-Chip = System auf einem Chip) Architekturen vom Einfachen zum Komplexen mit nicht nur einer Mehrzahl von Bussen, sondern auch einer Mehrzahl von Zuteilern, erforderlich. Bei einem fortgeschrittenen Kommunikationsprozessor, wie zum Beispiel der Intel IXP435, existieren in einem einzelnen Chip drei Bus-Zuteiler, vier unterschiedliche Busse und zwei Brücken, selbst wenn das SOC eine Einzel-CPU ist, die auf der ARM-Architektur basiert, jedoch mit zwei Hardwareunterstützungsbeschleunigern (englisch accelerators) oder Coprozessoren. Die Intel-Pentium-Serie von Computersystemen und andere mikrocomputerbasierte SOC-Systeme arbeiteten ebenfalls mit dem gleichen Schema.
-
Die meisten Zuteiler benötigen mindestens zwei Signale: das Paar REQ-GNT (= Request-Grant = Anforderung-Gewährung) für das Busanforderungssignal von einer Vorrichtung und das entsprechende Busgewährungssignal von dem Zuteiler. Und dies zusätzlich zu dem CPU- (Prozessor-) DMA (= direct memory access = direkter Speicherzugriff), INT (= interrupt = Unterbrechung) und BUSREQ-BUSGNT (= bus request-bus grant = Busanforderung-Busgewährung; ein Bussteuersignalpaar). Dies bedeutet, dass ein Implementieren eines einfachen Zuteilers ein gründliches Verständnis und eine Vertrautheit mit einem speziellen System erfordert. Der DMA ist bei einem PC-System oftmals die komplexeste Vorrichtung.
-
Konventionelle Zuteiler eignen sich eine minimale Kenntnis der Quellen von E/A-Vorrichtungserfordernissen, in vielen Fällen keine Kenntnis, an; daher die Notwendigkeit komplexer Hardwareschemata, wie zum Beispiel eines Algorithmus zur Prioritätensetzung (englisch: prioritizing), eines Zeitstempels für eine Alterung (englisch: aging) und anderer unklarer Schemata, wenn viele vereinfacht werden können, indem man eine Vorkenntnis der Vorrichtungsübertragungsfähigkeit hat. Diese Schemata benötigen nun in Anbetracht des aktuellen Modells einer Verarbeitung, die paketorientiert ist, wie es bei Breitbandvorrichtungen erforderlich ist, einige Modifikationen.
-
Ein Beispiel dazu, wie ein E/A-Zuteiler implementiert ist, besteht darin, sich anzusehen, wie ein beliebter Zuteilerchip bei einem typischen System verwendet wird. Der Intel 8289 war ein wegbereitender Zuteilerchip, der entworfen wurde, um mit der Intel-8288-Bussteuerung und der Intel-8086-CPU, der der Vorfahr von allen Intelbasierten Pentium-Computern ist, zu arbeiten. Er ist ein Teil der Intel-MCS-86-Familie von Unterstützungschips, die nach der Einführung der Intel-8086-CPU 1978 herauskamen. Der 8289 lässt ferner Multizuteilerchips zu, sodass mehr Chaos zugelassen wird, wenn nicht nur Vorrichtungen eine Buszuteilung benötigen, sondern auch Zuteiler eine Zuteilung benötigen.
-
Es wurde bereits entlang dieser Linie eines Infragestellens der Philosophie komplexer Zuteilungsschemata gedacht. Das
US-Patent Nr. 7096293B2 , erteilt am 22. August 2006 an Samsung Electronics, beschreibt ein Zuteilungsschema, das stark auf einem Haupt-CPU-Signal, das heißt, dem Signal INT (Unterbrechung), beruht. Dies hat jedoch auch die Verwendung des herkömmlichen Signalpaars REQ-GNT für eine Zuteilung erfordert, wobei das Patent ferner den PCI-Bus umfasst hat.
-
Auf einem anderen Entwicklungsgebiet beschreibt das
US-Patent Nr. 5,185,649 , erteilt am 9. Februar 1993 an die Motorola Inc. eine neue Anweisung, die Block-MOVE, die eine native CPU-Anweisung ist, die eine Bitbündel- (englisch: burst-) Übertragung von Daten unter einer Programmierersteuerung durchführen kann. Obwohl die Erfindung eine Bitbündelübertragung zwischen Speicher-Speicher beschreibt, kann die Idee ebenso auf eine E/A angewendet werden.
-
Die Bitbündelübertragung oder synchrone Datenübertragung ist nun eine Erfordernis für einen Systemdurchsatz, derart, dass nach dem Patent von 1993 die Bitbündelübertragung als die Grundoperation der PCI-Bus-Spezifikation, die Intel 1994 hervorgebracht hat, anzusehen ist. Es handelt sich ebenfalls um das gleiche Konzept, das bei dem beliebten SDRAM verwendet wird, der von diesem Jahr an seine Verwendung bei Mikrocomputern erlebt hat und die Grundpfeilertechnologie war, bis dieselbe 2002 durch DDR und dann spät in 2009 durch DDR2 ersetzt wurde.
-
Eine Bitbündelübertragung von Daten benötigt auf jeder Seite der zwei sendenden und empfangenden Tore (englisch: ports) FIFO, um unterschiedliche Geschwindigkeitsfähigkeiten anzupassen. Diese Entwicklungen ebneten den Weg für die nächste Verbesserung der E/A-Zuteilertechnologie, die der Gegenstand dieser Erfindung ist.
-
Die E/A-Zuteiler-Erfindung
-
Aktuelle Mikrocomputersysteme betrachten Busse, Zuteiler, Unterbrechungen, DMA, Brücken als separate Elemente, die separat behandelt werden müssen. Das aktuelle Modell behandelt Vorrichtungen folgend dem logischen Vorrichtungstreibermodell von Unix, das diese in zwei Teile zerbricht - eine Zeichenvorrichtung und eine Blockvorrichtung - als unterschiedlich. Mit den unterschiedlichen Vorrichtungen ist das Erfordernis unterschiedlicher E/A-Busse erschienen. Wenn mehr als ein E/A-Bus existiert, muss es Brücken geben, um dieselben zu trennen und von einem Bus zu einem anderen zu hüpfen. Wenn all jene anwesend sind, muss es einen Zuteiler für Vorrichtungen geben, der an jeden Bus geknüpft ist. Und es muss zusätzliche Zuteiler geben, um zwischen allen Zuteilern zuzuteilen. Und dann müssen die Unterbrechungssignale, DMA-Signale, verbunden werden, um diese unabhängigen Datenübertragungen zu verwalten. Ein sehr gutes Beispiel dieses komplexen Schemas kann mit dem Intel-IXP435-Kommunikationsprozessor und der Intel-Pentium-Serie von Prozessoren, die Personalcomputer antreiben, veranschaulicht werden.
-
Diese Erfindung kombiniert alle Funktionsziele derselben in sich, während einige für ein einfacheres System eliminiert werden, jedoch die gleichen Ziele mit einem besseren Modell erreicht werden.
-
Diese neue E/A-Zuteiler-Erfindung kombiniert alle nach Jahren einer Verwendung in vielen fortschrittlichen Systemen bewährten befähigenden Datenübertragungstechnologien, wie zum Beispiel eine Bitbündelübertragung oder synchrone Datenübertragung, FIFO und Hardwaremaschinen (englisch: engines), was durch ein FPGA (= Field-Programmable-Gate-Array = feldprobrammierbare Gatteranordnung) ermöglicht wird, um einen E/A-Zuteiler zu erzeugen, der nicht nur einfach zu verstehen und zu verwenden ist, sondern in Aussicht stellt, mindestens eine äquivalente Leistung, wenn nicht sogar besser, zu liefern. Die Haupteleganz derselben besteht in der Einheitlichkeit eines Behandelns von Vorrichtungen bei einem Buszugriff, derart, dass es keine Notwendigkeit anderer Zuteiler gibt, außer diesem einen.
-
Ausgehend von einem klaren Entwurf, der am besten durch einen gleichermaßen klaren CPU-Entwurf unterstützt wird, werden herkömmliche Schnittstellensignale, die bei E/A-Zuteilern, die den PCI-Bus umfasst haben, verwendet wurden, redundant gemacht und können aus dem System vollständig beseitigt werden, indem lediglich die CPU-Unterbrechungssignale und ein Satz von drei synchronen Taktsignalen, die durch die CPU gesteuert werden, verwendet werden.
-
Die einfache Schlussfolgerung dahinter besteht darin, dass letzten Endes jeder Prozess bei einem Computersystem durch die Unterbrechung (englisch: interrupt) gesteuert wird, bei der der Zeitplaner (englisch: scheduler) präemptiv wirken kann. Somit kann es so gemacht werden, dass es keine Notwendigkeit anderer Steuersignale gibt, die die Unterbrechungssignale untergraben, wobei tatsächlich unterbrechungsgetriebene Prozesse erzeugt werden, was einen Systementwickler zwingt, in Kategorien von Unterbrechungen zu denken. Durch Betrachten als und Herstellen von allen E/A-Operationen als interne CPU-Operationen und stromlinienförmiges Gestalten derselben als einzelne vereinheitlichende Unterbrechungsereignisse und -quellen in der Unterbrechungssteuerung als anstehende Unterbrechungen werden Dinge unmittelbar vereinfacht, und mit einem Schlag wird ein gänzlich neues Computersystemmuster erzeugt.
-
Das Muster besteht darin, dass verschiedene Vorrichtungen, ob sie Zeichen-, Block-, Start- (englisch: boot) ROM oder vernetzte Vorrichtungen sind, als eine homogene Vorrichtung bzw. ein homogenes Gerät mit Puffern und FIFO betrachtet werden können. Die homogenen Vorrichtungen zeigen der E/A-Zuteilermaschine und schließlich der CPU die gleiche Schnittstelle, die sich lediglich hinsichtlich der Größe der Puffer und FIFO unterscheidet. Das Schema hindert die CPU an einem direkten Zugriff auf die Steuerregister in den Vorrichtungen; lediglich die Befähigung, einen Block von vollständigen 32-Bit-Wörtern zu lesen und zu schreiben, beseitigt schließlich die physischen Vorrichtungstreibercodes auf der Softwareebene.
-
Das Modell lässt eine direkte Verbindung mit Vorrichtungen, egal wie kompliziert dieselben sind, zu, ohne jemals mehr als einen E/A-Zuteiler, Busbrücken und einen Bus, wie zum Beispiel den PCI, mit den elektrischen Signalbegrenzungen desselben zu benötigen.
-
KURZFASSUNG DER ERFINDUNG
-
Die vorliegende Erfindung wurde in Anbetracht der oben beschriebenen Probleme getätigt.
-
Eine Lösung dieser Probleme findet sich in Anspruch 1.
-
Die E/A-Zuteiler-Erfindung kann aus einem Blockdiagramm in 1 zusammengefasst werden, das die drei Hauptkomponenten innerhalb des Kontexts einer CPU (100) und von Vorrichtungsschnittstellensignalen (106) darstellt: eine E/A-Zuteiler- und Unterbrechungssteuerung (105), ein FIFO (104) und eine Port-Maschine (102). Eine Vorrichtung, ob mit Zeichen- oder Blockdatenübertragungsnatur, ist mit einer Port-Maschine verbunden, die für eine 32-Bit-Wortwandlung von dem Format der Vorrichtung verantwortlich ist, und einer Maschine oder einem FSM (Finite-State-Machine = Automat mit endlichen Zuständen) für die Steuerung der Signale einer Vorrichtung, wo es notwendig ist, verbunden.
-
Die Hauptfunktion des E/A-Zuteilers (101) bei diesem Ausführungsbeispiel besteht darin, einen der sieben FIFO-Busse mit den Bussen der CPU (100) einzeln bei einer Bitbündelübertragung zu verbinden. Eine Vorrichtung bittet durch das zugeordnete FIFO derselben um Aufmerksamkeit, indem dieselbe das zweckgebundene INT-Signal desselben aktiviert, bei dem die Zuteiler- und Unterbrechungssteuerung (105) die Anforderung in einen Ringpuffer (216) auf einer Wer-zuerst-kommt-mahlt-zuerst- (englisch: first-come-first-serve) Basis einreiht.
-
Der E/A-Zuteiler-Prozess beginnt bei der Port-Maschine (103), die irgendein Datenformat von der Vorrichtung (102) in ein vollständiges 32-Bit-Wort wandelt. Die Vorrichtung überträgt ein Paket von 32-Bit-Daten, und der E/A-Zuteiler muss diese Daten in dem zugeordneten FIFO (104) puffern. Schließlich benötigt die CPU (100) diese Daten in einem Puffer in einem Hauptspeicher, wie bei allen anderen Prozessen. Wenn das FIFO (104) voll ist, erzeugt die FIFO-Steuerung in dem FIFO-Block (104) eine einmalige Unterbrechung. Die E/A-Zuteiler-Unterbrechungssteuerung weiß, dass diese von jenem speziellen Port kommt und reiht die Anschlussidentifizierung (ID; ID = identifier) in den Ringpuffer von anstehenden Unterbrechungen ein.
-
Wenn die Port-ID-Stelle in der Warteschlange auftaucht, aktiviert der E/A-Zuteiler das CPU-INT (107) und wartet auf das Signal CPU-INTA (Unterbrechungs-Bestätigung) (108), wobei der E/A-Zuteiler einen Unterbrechungsvektor, der lediglich die Port-ID ist, platziert. Die CPU (100) liest die ID und springt zu der Unterbrechungsdienstroutine (ISR; ISR = interrupt service routine) für diesen Vektor und weiß, dass der Port einen Block von Daten in dem FIFO (104) hat, und liest dieselben alle zu dem Hauptspeicherpuffer, der für diesen Port reserviert ist.
-
Ein Schreiben eines Blocks von Daten durch die CPU (100) kehrt das Verfahren um. Die CPU (100) kann einen Block von Daten zu irgendeiner Zeit, zu der dieselbe in der Lage ist, dies zu tun, oder ansprechend auf eine Unterbrechung über den E/A-Zuteiler (101) schreiben. Es sei daran erinnert, dass die CPU lediglich bei einem Bitbündelmodus, zusätzlich zu dem notwendigen 32-Bit-Wort und der Port-Adresse die synchronen Taktsignale in der Gruppe von Steuerleitungen nutzend, einen Port lesen oder zu demselben schreiben kann.
-
Der E/A-Zuteiler arbeitet grundsätzlich auf einem Unterbrechungsauslösen von E/A-Ports, die Dienste erfordern. Alle anstehenden Unterbrechungen werden in einem Ringpuffer eingereiht und auf den einzelnen Unterbrechungsanschluss der CPU zusammen mit dem zugeordneten Vektor nach einem Empfangen des INTA von der CPU übersetzt. Jeder Port hat die eigenen INT- und INTA-Anschlüsse desselben für den E/A-Zuteiler, um einzureihen, und gibt seinerseits das INT zu der CPU aus.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ein vollständigeres Verständnis der Erfindung kann durch Lesen der folgenden Beschreibung eines spezifischen stellvertretenden Ausführungsbeispiels der Erfindung in Verbindung mit den beigefügten Zeichnungen erlangt werden. Es zeigen:
- 1 die E/A-Zuteiler-Erfindung mit Schnittstellensignalen zu einer kompatiblen CPU, wobei die Grundprinzipien eines Betriebs gezeigt sind; und
- 2 einen internen Betrieb des E/A-Zuteilers mit allen notwendigen Schnittstellensignalen.
-
DETAILLIERTE BESCHREIBUNG
-
Die detaillierte Beschreibung basiert auf 2. Der E/A-Zuteiler besteht aus der Zuteilerschnittstelle 200, der Zuteiler- und Unterbrechungssteuerung 201, einer Mehrzahl von FIFO-Modulen, wobei ein Beispiel das FIFO 0 204 ist, und einer Mehrzahl von Port-Maschinen, wobei ein Beispiel die Port-0-Maschine 203 ist. Eine Mehrzahl von Vorrichtungen, wobei ein Beispiel die Vorrichtung 0 202 ist, die kein Teil des Zuteilers sind, in gepunkteten Kästen sind für den Kontext gezeigt. In dieser Beschreibung ist einer der Datenpfade der Vorrichtungen ausgewählt; für die Vorrichtung 0 202, die für alle anderen Vorrichtungen, die mit dem E/A-Zuteiler verbunden sind, stellvertretend ist.
-
Ein entscheidender Faktor, der zu erwähnen ist, besteht darin, dass alle synchronen Bitbündelübertragungen zwischen der CPU 100 und FIFO durch die CPU 100 gesteuert sind, was der Grund dafür ist, dass das Signal CLK 209 unidirektional ist. Unter dieser Bedingung ist keine unabhängige DMA-Übertragung durch eine Vorrichtung möglich.
-
Starten der Bitbündeldatenübertragung
-
Ein Anfangszugriff einer FIFO-Vorrichtung, ob ein Datenbündel von Daten ansprechend auf eine Unterbrechungsanforderung gelesen oder geschrieben wird, beginnt mit einem Schreibbefehlswort zu dem geplanten FIFO. Das Befehlswort wird durch Aktivieren des Signals WR 210 zusammen mit den jeweiligen Adressleitungen (A12-A0) 206, die ein Signal CS (= chip-select = Chip-Auswahl), um die FIFO-Vorrichtung auszuwählen, bilden, zu der FIFO-Vorrichtung geschrieben. Die FIFO-Vorrichtung spricht beim Interpretieren des Befehlsworts mit einem aktiven Signal STP 207 an, was eine Verbindung mit offener Drain (englisch: open-drain) ist und mit allen Signalen STP2 207 verknüpft ist. Die CPU 100 beginnt dann durch Aktivieren der Signale CLK 209, STP1 208, RD 211 und WR 210 eine Bitbündelmodusdatenübertragung.
-
Bitbündelübertragungsprotokoll für eine einfache vollständige Übertragung ƒür eine vorbestimmte Länge eines Datenblocks entweder im Hauptspeicher oder in den FIFO
-
Kurz die vorhergehenden Absätze für einen spezifischen Prozess zusammenfassend, wird ein Lesen aus der Vorrichtung 0 202 durch ein Schreibbefehlswort der CPU 100, dem Signal WR 210 zusammen mit den jeweiligen Adressleitungen (A12-A0) 206, die das CS_10 205 bilden, um die Vorrichtung FIFO 0 204 auszuwählen, eingeleitet. Das FIFO 0 204 erkennt, dass die Schreiboperation eine Befehlswortphase statt des Beginns einer Bitbündeldatenübertragung ist, indem dasselbe bemerkt, dass das Signal CLK 209 inaktiv ist.
-
Wenn das FIFO 0 204 decodiert, dass das Befehlswort bedeutet, dass die CPU 100 einen Block von Daten lesen möchte, aktiviert das FIFO 0 204 unmittelbar das Signal STP2 207, das angibt, dass dasselbe für den Befehl bereit ist, bei dem die CPU 100 eine Bitbündellesesequenz startet, indem das Signal CLK 209 synchron mit dem 32-Bit-Block von Datenworten in dem FIFO 0 204 aktiviert wird. Nachdem eine vorbestimmte Blocklänge übertragen wurde, aktiviert das FIFO 0 204 das Signal STP2 207, um die CPU über das Ende der Bitbündelübertragung zu informieren, wenn dasselbe das Ende des FIFO-Puffers erreicht hat.
-
Wenn zu der Vorrichtung 0 204 geschrieben wird, aktiviert ähnlicherweise nach der Befehlswortphase, wobei das FIFO 0 204 das Wort als einen Schreibbefehl decodiert hat, das FIFO 0 204 unmittelbar das Signal STP2 207, das angibt, dass dasselbe für den Befehl bereit ist, bei dem die CPU 100 durch Aktivieren des Signals CLK 209 synchron mit dem 32-Bit-Block von Datenworten in dem Hauptspeicher eine Bitbündelschreibsequenz startet. Nachdem eine vorbestimmte Blocklänge übertragen wurde, aktiviert die CPU 100 das Signal STP1 208, um das FIFO 0 204 über das Ende der Bitbündelübertragung zu informieren.
-
Bitbündelübertragungsprotokoll für eine unvollständige Übertragung einer unbekannten Länge eines Datenblocks bei den FIFO
-
Eine Datenübertragung von der CPU 100 zu den FIFO ist immer bekannt, da dieselbe unter einer Softwaresteuerung ist. Die Software kann immer die Zahl von Datenblöcken kennen, und die Datenlänge zu einer Vorrichtung ist eine Strategie für eine optimale Datenübertragung. Die einzige unvermeidbare Variable ist die Datenübertragung von den Vorrichtungen, das heißt, ein Bitbündellesen durch die CPU 100, da es keinen Weg gibt, die Zahl von Datenblöcken und die Datenlänge, die von einer Vorrichtung kommt, vorher zu kennen. Pakete von einer LAN-Vorrichtung kommen solange weiter, bis der FIFO-Puffer derselben überläuft, wobei in diesem Fall derselbe eine Unterbrechung erzeugt.
-
In dieser Situation kommt die Unterbrechungssteuerung ins Spiel; wenn es viele Vorrichtungen geben kann, die erfordern, dass die CPU 100 ausliest und die FIFO derselben leert.
-
Nimmt man den Datenpfad der Vorrichtung 0 204, wird das FIFO 0 204 eine einmalige Unterbrechung erzeugen, wenn das FIFO voll ist. Die E/A-Zuteiler- und Unterbrechungssteuerung 201 weiß, dass dies von dem Anschluss 0 204 kommt und reiht die Port-Identifizierung (ID) in dem Ringpuffer 216 von anstehenden Unterbrechungen ein.
-
Wenn die Port-ID-Stelle in der Warteschlange auftaucht, aktiviert der E/A-Zuteiler 101 das CPU-INT 212 und wartet auf das Signal CPU-INTA 213 (Unterbrechung-Bestätigung), bei dem der E/A-Zuteiler 101 einen Unterbrechungsvektor, der lediglich die Port-ID ist, platziert. Die CPU 100 liest die ID und springt zu der Unterbrechungsdienstroutine (ISR; ISR = interrupt service routine) für diesen Vektor und weiß, dass der Port einen Block von Daten in dem FIFO 0 204 hat. Die Unterbrechungssteuerung 201 aktiviert an dem Ende des FSM-Zyklus derselben, und wenn dieselbe bestimmt hat, dass die nächste zu bedienende Vorrichtung die des FIFO 0 204 ist, das Signal INTA 217 zu dem FIFO 0 204. Das FIFO 0 204 bestätigt, dass es für eine Übertragung bereit ist, indem das Signal STP2 207 aktiviert wird, um die CPU 100 wissen zu lassen, die Bitbündellesesequenz zu beginnen. Die CPU 100 liest dann alles zu dem Hauptspeicherpuffer, der für diesen Port 0 203 reserviert ist. Wenn das FIFO 0 204 leer ist, aktiviert dasselbe das Signal STP2 207, über das die CPU 100 weiß, dass dasselbe das Ende der Blockübertragung ankündigt, und muss auf die nächste Unterbrechung von der Vorrichtung 0 202 warten.
-
Bei der Bitbündelschreibübertragung der CPU 100 wird das FIFO 0 204 das Signal STP2 207 aktivieren, um die CPU 100 darüber zu informieren, wann der FIFO-Puffer desselben voll ist, wobei in diesem Fall die CPU 100 den Bitbündelschreibzyklus beendet.
-
Die Unterbrechungssteuerung 201 erfordert lediglich das Paar von zwei Signalen INT 212, INTA 213 von der CPU 100 für den FSM derselben, um die Zeiger 214, 215 für den Pufferkopf und den Pufferfuß beim Verwalten von allen anstehenden Unterbrechungen in dem System herauszufinden. Dieselbe erzeugt erneut den eigenen Zyklus des INT-INTA 217 derselben an alle Vorrichtungen, die an derselben angeschlossen sind.
-
Die vorhergehende Beschreibung liefert die Basis für ein System, um irgendeine Vorrichtung, ob eine Zeichen- oder Blockvorrichtung, integrierte Schaltungen, wie zum Beispiel einen ROM, ein Festplattenlaufwerk, ein LAN , eine andere CPU und irgendetwas anderes, das ohne eine DMA-Einrichtung, Brücken, zusätzliche Busse oder zusätzliche Zuteiler vorstellbar ist, an den Ports desselben anzuschließen.