DE69322221T2 - Personal computer with programmable threshold value registers for data transmission - Google Patents
Personal computer with programmable threshold value registers for data transmissionInfo
- Publication number
- DE69322221T2 DE69322221T2 DE69322221T DE69322221T DE69322221T2 DE 69322221 T2 DE69322221 T2 DE 69322221T2 DE 69322221 T DE69322221 T DE 69322221T DE 69322221 T DE69322221 T DE 69322221T DE 69322221 T2 DE69322221 T2 DE 69322221T2
- Authority
- DE
- Germany
- Prior art keywords
- bus
- input
- output data
- local cpu
- personal computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000005540 biological transmission Effects 0.000 title description 4
- 230000015654 memory Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
Die vorliegende Erfindung betrifft Personalcomputer und im besonderen einen Personalcomputer, der FIFO-Register zur Datenübertragung verwendet, wie dies bei einer Busmastereinheit in Form einer Steuereinrichtung für ein Small-Computer-Systems- Interface (SCSI - kleine Computersystemschnittstelle) deutlich wird, die die Datenübertragung zu einem Speichergerät, wie beispielsweise einem Festplatten- oder Wechselplattengerät, steuert.The present invention relates to personal computers and, more particularly, to a personal computer that uses FIFO registers for data transfer, as is evident in a bus master unit in the form of a small computer systems interface (SCSI) controller that controls data transfer to a storage device such as a hard disk or removable disk device.
Personalcomputersysteme allgemein und IBM-Personalcomputer im besonderen haben eine weite Verbreitung erlangt und stellen Rechnerleistung in vielen Bereichen der heutigen modernen Gesellschaft bereit. Personalcomputersysteme können üblicherweise, als auf dem Schreibtisch stehende, auf dem Boden stehende oder als tragbare Mikrocomputer definiert werden, die aus einer Systemeinheit bestehen, die einen einzelnen Systemprozessor und zugeordnete flüchtige und nichtflüchtige Speicher, einen Anzeigebildschirm, eine Tastatur, eines oder mehrere Diskettenlaufwerke, einen Festplattenspeicher und einen optionalen Drucker besitzen. Eines der Unterscheidungsmerkmäle dieser Systeme liegt in der Verwendung einer Haupt- oder Systemplatine zur Herstellung der elektrischen Verbindungen zwischen diesen Komponenten. Diese Systeme sind hauptsächlich dafür entwickelt worden, um einem einzelnen Benutzer unabhängige Rechnerleistung zur Verfügung zu stellen und sind durch niedrige Preise gekennzeichnet, um auch von Privatpersonen oder kleineren Firmen angeschafft werden zu können. Beispiele für solche Personalcomputersysteme sind der IBM PERSONALCOMPUTER AT und die Modelle 25, 30, L40SX, 50, 55, 65, 70, 80 und 95 des IBM PERSONAL SYSTEM/2. Diese Systeme können allgemein in zwei Gruppen unterteilt werden. Die erste Gruppe, normalerweise als Modelle der Familie I bezeichnet, benutzen eine Busarchitektur wie beispielsweise beim IBM PERSONALCOMPUTER AT und anderen "IBM kompatiblen" Maschinen. Die zweite Gruppe, als Modelle der Familie II bezeichnet, benutzen die Busarchitektur des IBM MICRO CHANNEL, wie beispielsweise bei den Modellen 50 bis 95 des IBM PERSONAL SYSTEM/2. Die Modelle der Familie I verwenden typischerweise die verbreiteten INTEL 8086 und 8088 Mikroprozessoren als Systemprozessor. Diese Prozessoren sind in der Lage, ein Megabyte Speicher zu adressieren. Die Modelle der Familie II verwenden typischerweise die Hochgeschwindigkeits-Mikroprozessoren INTEL 80286, 80386 und 80486, die in einem realen Modus betrieben werden können, um den langsameren INTEL 8086 Mikroprozessor zu emulieren, oder in einem geschützten Modus, der bei einigen Modellen den Adreßbereich von 1 Megabyte auf 4 Gigabyte erweitert. Im wesentlichen stellt der reale Modus der Prozessoren 80286, 80386 und 80486 eine Hardwarekompatibilität für Software bereit, die für die Mikroprozessoren 8086 und 8088 geschrieben wurde.Personal computer systems in general, and IBM personal computers in particular, have become widely used and provide computing power in many areas of today's modern society. Personal computer systems can be generally defined as desktop, floor standing, or portable microcomputers that consist of a system unit containing a single system processor and associated volatile and non-volatile memory, a display screen, a keyboard, one or more diskette drives, hard disk storage, and an optional printer. One of the distinguishing features of these systems is the use of a motherboard or system board to provide the electrical connections between these components. These systems are primarily designed to provide independent computing power to a single user. to make them available and are characterized by low prices so that they can also be purchased by private individuals or small companies. Examples of such personal computer systems are the IBM PERSONALCOMPUTER AT and the models 25, 30, L40SX, 50, 55, 65, 70, 80 and 95 of the IBM PERSONAL SYSTEM/2. These systems can generally be divided into two groups. The first group, usually referred to as Family I models, use a bus architecture such as the IBM PERSONALCOMPUTER AT and other "IBM compatible" machines. The second group, referred to as Family II models, use the IBM MICRO CHANNEL bus architecture, such as the models 50 to 95 of the IBM PERSONAL SYSTEM/2. The Family I models typically use the popular INTEL 8086 and 8088 microprocessors as the system processor. These processors are capable of addressing one megabyte of memory. The Family II models typically use the high-speed INTEL 80286, 80386, and 80486 microprocessors, which can operate in a real mode to emulate the slower INTEL 8086 microprocessor, or in a protected mode that extends the address range from 1 megabyte to 4 gigabytes on some models. Essentially, the real mode of the 80286, 80386, and 80486 processors provides hardware compatibility for software written for the 8086 and 8088 microprocessors.
Wie der mit Computersystemen vertraute Leser verstehen wird, besteht der größte Teil der Arbeit eines Personalcomputersystems darin, Daten von einem Punkt innerhalb des Systems zu einem anderen zu übertragen. In einer Anzahl von. Fällen, in denen solche Übertragungen stattfinden, werden die Übertragungen über Register ausgeführt, die als FIFO-Register (für First-in Firstout - zuerst eingeschrieben, zuerst ausgelesen) bekannt sind. Für verschiedene Übertragungstypen ist es üblich geworden, den Füllungszustand eines FIFO-Reglsters zu überwachen, indem in einem zugeordneten Register zu jedem beliebigen Zeitpunkt die in dem FIFO-Register enthaltene Datenmenge aufgezeichnet wird.As the reader familiar with computer systems will understand, most of the work of a personal computer system consists in transferring data from one point within the system to another. In a number of cases where such transfers take place, the transfers are carried out through registers known as FIFO (first-in, first-out) registers. For various types of transfers, it has become common to use the To monitor the filling state of a FIFO register by recording the amount of data contained in the FIFO register at any given time in an associated register.
Mit dem Fortschreiten der Personalcomputerentwicklung sind zwischen Herstellern und Benutzern solcher Apparate Vorschläge zum Aufstellen verschiedener Standards gemacht worden, um eine weitergehenden Austauschbarkeit von Komponenten und dergleichen zu ermöglichen. Ein solcher Standard, der eine gewisse breite Akzeptanz gefunden, hat, ist der Small-Computer-Systems-Interface (SCSI - kleine Computersystemschnittstelle) Standard für die Datenübertragung zu und von Speichergeräten. Für die hier beabsichtigten Zwecke, wird der Begriff "Speichergeräte" breit gefaßt, um alle Einheiten einzuschließen, die in der Lage sind, Daten in digitaler Form zu speichern, und wobei besonderes Augenmerk auf Geräte mit festen oder austauschbaren elektromagnetischen Datenträgern (auch als Disketten- und Festplattenlaufwerke bekannt) sowie elektrooptische Speicher Plattenlaufwerke und andere Speichereinrichtungen gerichtet werden soll. SCSI- Steuereinrichtungen (hiernach auch als "Datenfluß-Steuereinrichtungen" bezeichnet) sind bekannt und vor der vorliegenden Erfindung verwendet worden und werden dem fachmännischen Leser vertraut sein. SCSI-Steuereinrichtungen sind bekanntermaßen ein Beispiel für eine Umgebung, in der FIFO-Register zur Datenübertragung verwendet werden, wenngleich es auch andere gibt.As personal computer development has progressed, proposals have been made between manufacturers and users of such devices to establish various standards to allow for greater interchangeability of components and the like. One such standard that has found some widespread acceptance is the Small Computer Systems Interface (SCSI) standard for data transfer to and from storage devices. For the purposes intended herein, the term "storage devices" is defined broadly to include all devices capable of storing data in digital form, with particular attention being given to devices with fixed or removable electromagnetic data carriers (also known as floppy disk and hard disk drives), electro-optical storage disk drives, and other storage devices. SCSI controllers (hereinafter also referred to as "data flow controllers") are known and used prior to the present invention and will be familiar to the skilled reader. SCSI controllers are known to be one example of an environment in which FIFO registers are used for data transfer, although others exist.
In dem Stand der Technik entsprechenden Personalcomputersystemen sind SCSI-Steuereinrichtungen typischerweise als Option oder Zubehör eingesetzt worden, wobei der Zugriff des Systems über den Zubehör- oder Ein-/Ausgabe- oder I/O-Bus erfolgt. In jüngster Zeit ist beabsichtigt worden, eine SCSI-Steuereinrichtung als einen einzelnen höchstintegrierten Schaltkreis (VLSI) oder als ASIC-Chip (anwendungsspezifische integrierte Schaltung) und eine direkte Verbindung dieser Steuereinrichtung mit dem lokalen Prozessorbus bereitzustellen. Der Zweck der Bereitstellung einer solchen Steuereinrichtung besteht darin, daß bezüglich einer beschleunigten Datenübertragung eine bessere Leistungsfähigkeit erreicht werden soll.In prior art personal computer systems, SCSI controllers have typically been used as an option or accessory, with the system being accessed via the accessory or input/output or I/O bus. More recently, it has been proposed to implement a SCSI controller as a single very large scale integrated circuit (VLSI) or as an ASIC (application specific integrated circuit) chip and to connect this controller directly to the local processor bus. The purpose of providing such a control device is to achieve better performance in terms of accelerated data transfer.
Eine SCSI-Steuereinrichtung ist ein Beispiel für eine Einheit, die als "Busmaster" bekannt ist. Wie hierin nachfolgend ausführlicher beschrieben wird, können in einem Personalcomputersystem (entweder entsprechend Familie I oder Familie II) als eine Maßnahme zur Verbesserung der Leistungsfähigkeit eine Vielzahl vom Busmastereinheiten bereitgestellt werden. Wo eine solche Vielzahl von Busmastereinheiten vorhanden ist, müssen die Einheiten Prioritäten bezüglich des Zugriffs auf den und der Steuerung des Datenübertragungsbusses des Systems erlangen. Die Effektivität, mit der die Busmastereinheiten und die Buszuteilungs-Steuereinheit, die die Prioritätsauswahl trifft, die Buszuteilung vornehmen, hat wesentlichen Einfluß auf die Leistungsfähigkeit, die das System erreicht.A SCSI controller is an example of a device known as a "bus master." As will be described in more detail hereinafter, a plurality of bus master devices may be provided in a personal computer system (either Family I or Family II) as a measure to improve performance. Where such a plurality of bus master devices are present, the devices must obtain priorities in access to and control of the system's data transfer bus. The effectiveness with which the bus master devices and the bus arbitration controller that makes the priority selection perform bus arbitration has a significant impact on the performance achieved by the system.
In den "Patents Abstracts of Japan" Band 14, Nr. 385, Seite 1094 wird ein Bus beschrieben, der drei Busmastereinheiten aufweist, die untereinander, um den Buszugriff konkurrieren, wobei jedes Gerät eine bestimmte Priorität besitzt und die Prioritätsauswahl von einer Steuereinrichtung vorgenommen wird, die mit jedem der Busmastereinheiten verbunden ist. Eine der Busmastereinheiten benutzt einen FIFO-Speicher, um ihre Daten zu puffern, wenn sie den Bus nicht benutzen kann, und wenn der Puffer einen bestimmten Wert erreicht, wird ein Signal an die Steuereinrichtung abgesetzt, das diese auffordert, die Geräteprioritäten zu aktualisieren und der Einheit den Bus zuzuteilen.In the "Patents Abstracts of Japan" Volume 14, No. 385, page 1094, a bus is described that has three bus master units that compete for bus access, each device having a certain priority and the priority selection being made by a controller connected to each of the bus master units. One of the bus master units uses a FIFO memory to buffer its data when it cannot use the bus, and when the buffer reaches a certain value, a signal is sent to the controller requesting it to update the device priorities and assign the bus to the unit.
In der EP-A-0 170 876 wird eine Steuerschaltung für die Datenübertragung zwischen einem Prozessor und I/O-Einheiten unter Verwendung von Pufferspeichermodulen offenbart. Zur Steuerung der Arbeitsweise der Datenpufferspeicher besitzt die Schaltung eine programmierte Schwellwert-Logikschaltung.EP-A-0 170 876 describes a control circuit for data transmission between a processor and I/O units under Use of buffer memory modules is disclosed. To control the operation of the data buffer memories, the circuit has a programmed threshold logic circuit.
In der EP-A-0 496 622 wird ein Verfahren zum Steuern der Datenübertragung zwischen einem von mehreren (I/O) Modulen, die mit einem Bussystem (ZBUS) verbunden sind, und einer anderen Einheit eines Datenverarbeitungssystems offenbart. Von den I/O- Einheiten werden Anforderungen mit unterschiedlichen Prioritäten zusammen mit Datenelementen an eine Steuereinrichtung gesendet. Die Datenelemente werden von der Steuereinrichtung gepuffert, welche deren Übertragung steuert.EP-A-0 496 622 discloses a method for controlling the data transmission between one of several (I/O) modules connected to a bus system (ZBUS) and another unit of a data processing system. Requests with different priorities are sent from the I/O units together with data elements to a control device. The data elements are buffered by the control device, which controls their transmission.
Gemäß einem Aspekt der vorliegenden Erfindung wird ein Personalcomputersystem bereitgestellt, umfassend: einen lokalen CPU- Bus; einen Ein-/Ausgabe-Datenbus; eine Vielzahl Busmastereinheiten, die an den lokalen CPU-Bus angeschlossen sind, um Daten über den lokalen CPU-Bus zu übertragen, wobei eine der Busmastereinheiten, die ein Mikroprozessor ist, als zentrale Verarbeitungseinheit des Systems arbeitet; mindestens eine weitere Busmastereinheit, die an den Ein-/Ausgabe-Datenbus angeschlossen ist; dadurch gekennzeichnet, daß mindestens eine der von dem Mikroprozessor verschiedenen Busmastereinheiten ein Daten- FIFO-Register, das funktionell zwischen die mindestens eine Busmastereinheit und den ihr zugeordneten Bus geschaltet ist, um Daten zwischen ihnen weiterzuleiten, sowie auch ein Schwellwertregister besitzt, um Bits zu empfangen, die eine Füllung des FIFO-Registers bis zu einem bestimmten Schwellwert anzeigen, der erforderlich ist, bevor eine Buszuteilung zugelassen wird; eine Busschnittstellen-Steuereinrichtung, die den lokalen CPU-Bus mit dem Ein-/Ausgabe-Datenbus verbindet und eine Prioritätsentscheidung bezüglich des Zugriffs auf den Ein-/Ausgabe- Datenbus und den lokalen CPU-Bus zwischen den Busmastereinheiten, die direkt an den Ein-/Ausgabe-Datenbus angeschlossen sind, trifft, sowie eine Prioritätsentscheidung bezüglich des Zugriffs auf den lokalen Prozessorbus zwischen dem Ein-/Ausgabe-Datenbus und den Busmastereinheiten, die direkt an den lokalen Prozessorbus angeschlossen sind.According to one aspect of the present invention there is provided a personal computer system comprising: a local CPU bus; an input/output data bus; a plurality of bus master units connected to the local CPU bus for transferring data over the local CPU bus, one of the bus master units being a microprocessor operating as the central processing unit of the system; at least one further bus master unit connected to the input/output data bus; characterized in that at least one of the bus master units other than the microprocessor has a data FIFO register operatively connected between the at least one bus master unit and the bus associated with it for passing data between them, as well as a threshold register for receiving bits indicating a filling of the FIFO register up to a certain threshold required before a bus allocation is permitted; a bus interface controller connecting the local CPU bus to the input/output data bus and making a priority decision regarding access to the input/output data bus and the local CPU bus between the bus master units directly connected to the input/output data bus, as well as a priority decision regarding access to the local processor bus between the input/output data bus and the bus master units directly connected to the local processor bus.
Unter Berücksichtigung der vorstehenden Erläuterung wird ein Verfahren zur Maximierung der Leistungsfähigkeit von Datenübertragungen für Anwendungen unter Verwendung von FIFO-Registern bereitgestellt. Bei der Verwirklichung dieser Absicht wird die Leistungsfähigkeit eines Systems, das eine Vielzahl Busmastereinheiten besitzt, verbessert, indem ein programmierbarer Schwellwert für die Bedingungen "gefüllt" und "leer" eines FIFO-Registers bereitgestellt wird, bevor die Prioritätsentscheidung bezüglich der Bussteuerung getroffen wird. Bei der Anwendung der Erfindung in Systemen mit hohen Datenübertragungsanforderungen oder starkem Kanalverkehr, können vor dem Zulassen von Prioritätsentscheidungen hohe Füllungsschwellwerte verwendet werden, was den Zusatzaufwand durch die Prioritätsentscheidungen verringert und die Leistungsfähigkeit des Systems verbessert. In Systemen mit niedrigem Kanalverkehr verbessern niedrige Schwellwerte die Ansprechzeiten des Systems, indem Nutzen aus dem geringen Busverkehr gezogen wird.With the foregoing in mind, a method is provided for maximizing data transfer performance for applications using FIFO registers. In achieving this goal, the performance of a system having a plurality of bus master units is improved by providing a programmable threshold for the "full" and "empty" conditions of a FIFO register before making the priority decision regarding bus control. When applying the invention in systems with high data transfer requirements or heavy channel traffic, high fill thresholds can be used before allowing priority decisions, reducing the overhead of the priority decisions and improving system performance. In systems with low channel traffic, low thresholds improve system response times by taking advantage of the low bus traffic.
Einige Aufgaben der Erfindung sind bereits dargestellt worden, andere Aufgaben werden mit dem Fortgang der Beschreibung deutlich werden; wenn diese in Verbindung zu den begleitenden Zeichnungen gebracht wird, in welchen:Some objects of the invention have already been set out, other objects will become apparent as the description proceeds; when taken in conjunction with the accompanying drawings in which:
Fig. 1 eine perspektivische Darstellung eines Personalcomputers ist, der die vorliegende Erfindung verkörpert;Fig. 1 is a perspective view of a personal computer embodying the present invention;
Fig. 2 eine perspektivische Explosionsdarstellung bestimmter Elemente des Personalcomputers von Fig. 1 ist, einschließlich eines Chassis, einer Abdeckung und einer Systemplatine, die bestimmte Beziehungen zwischen diesen Elementen verdeutlicht;Fig. 2 is an exploded perspective view of certain elements of the personal computer of Fig. 1, including a chassis, a cover and a system board, illustrating certain relationships among these elements;
Fig. 3 eine schematische Darstellung bestimmter Komponenten des Personalcomputers der Fig. 1 und 2 ist; undFig. 3 is a schematic representation of certain components of the personal computer of Figs. 1 and 2; and
Fig. 4 eine schematische Darstellung bestimmter funktioneller Komponenten ist, die in der Speichersteuereinrichtung des Personalcomputers der Fig. 1 bis 3 enthalten sind.Fig. 4 is a schematic representation of certain functional components included in the memory controller of the personal computer of Figs. 1 to 3.
Wenn auch die vorliegende Erfindung nachfolgend vollständiger unter Bezugnahme auf die begleitenden Zeichnungen beschrieben wird, in welchen eine bevorzugte Ausführungsform der vorliegenden Erfindung dargestellt ist, sollte am Anfang der folgenden Beschreibung verstanden werden, daß Fachleute der entsprechenden Fachgebiete die hier beschriebene Erfindung modifizieren und die positiven Resultate der vorliegenden Erfindung dennoch erreichen können. Dementsprechend ist die folgende Beschreibung als breit angelegte, unterweisende Offenlegung zu verstehen, die sich an Fachleute entsprechender Fachgebiete wendet, jedoch nicht als Beschränkung der vorliegenden Erfindung.While the present invention will be more fully described below with reference to the accompanying drawings in which a preferred embodiment of the present invention is illustrated, it should be understood at the outset of the following description that those skilled in the relevant arts can modify the invention described herein and still achieve the positive results of the present invention. Accordingly, the following description is to be understood as a broad, instructive disclosure directed to those skilled in the relevant arts, but not as a limitation on the present invention.
Jetzt wird spezieller bezugnehmend auf die begleitenden Zeichnungen ein Mikrocomputer dargestellt, der die vorliegende Erfindung verkörpert und generell mit der Referenznummer 10 (Fig. 1) gekennzeichnet ist. Wie oben erwähnt, kann der Computer 10 einen zugehörigen Bildschirm 11, eine Tastatur 12 und einen Drucker oder Plotter 14 besitzen. Der Computer 10 besitzt eine Abdeckung 15, welche zusammen mit einem Chassis 19 einen geschlossenen, abgeschirmten Raum definiert, in den elektrisch betriebene Datenverarbeitungs- und Speicherkomponenten zur Verarbeitung und Speicherung digitaler Daten eingebracht werden, wie dies in Fig. 2 dargestellt ist. Mindestens einige dieser Komponenten befinden sich auf, einer Mehrlagen-Leiterplatte oder Systemplatine 20, die auf dem Chassis 19 montiert ist und Mittel zur Herstellung elektrischer Verbindungen zwischen den Komponenten des Computers 10 bereitstellt, einschließlich der oben genannten sowie anderer zugehöriger Elemente wie Diskettenlaufwerke, verschiedene Arten Direktzugriffs-Speichereinheiten, Zubehörkarten oder -Platinen und dergleichen mehr.Referring now more particularly to the accompanying drawings, there is shown a microcomputer embodying the present invention and generally designated by the reference numeral 10 (Fig. 1). As mentioned above, the computer 10 may have an associated display screen 11, a keyboard 12 and a printer or plotter 14. The computer 10 has a cover 15 which together with a chassis 19 forms a defined as an enclosed, shielded space into which electrically powered data processing and storage components are housed for processing and storing digital data, as shown in Fig. 2. At least some of these components are located on a multi-layer printed circuit board or system board 20 mounted on the chassis 19 and providing means for making electrical connections between the components of the computer 10, including those mentioned above as well as other associated elements such as floppy disk drives, various types of direct access storage units, accessory cards or boards, and the like.
Das Chassis 19 besitzt eine Grundplatte und eine Rückwand ( Fig. 2) und bildet mindestens einen offenen Rahmen zum Einschieben eines Datenspeichergerätes wie beispielsweise eines Plattenlaufwerkes für magnetische oder optische Speicherplatten, eines Sicherungslaufwerkes für Magnetbänder oder dergleichen. In der dargestellten Form ist ein oberer Rahmen 22 für das Einschieben von Peripheriegeräten einer ersten Größe (beispielsweise eines der bekannten 3,5-Zoll-Laufwerke) ausgelegt. Dementsprechend kann in dem oberen Rahmen 22 ein Diskettenlaufwerk, ein Direktzugriffsspeicher mit auswechselbarem Datenträger, der in der Lage ist, eine Diskette aufzunehmen und die Diskette wie allgemein bekannt zum Empfangen, Speichern und Bereitstellen von Daten zu verwenden, untergebracht werden.The chassis 19 has a base plate and a rear wall (Fig. 2) and forms at least one open frame for inserting a data storage device such as a disk drive for magnetic or optical disks, a backup drive for magnetic tapes or the like. In the form shown, an upper frame 22 is designed for inserting peripheral devices of a first size (for example, one of the known 3.5 inch drives). Accordingly, the upper frame 22 can accommodate a floppy disk drive, a random access storage device with a removable data carrier capable of receiving a floppy disk and using the floppy disk to receive, store and provide data as is well known.
Bevor die oben beschriebene Struktur mit der vorliegenden Erfindung in Verbindung gebracht wird, soll zusammenfassend die Arbeitsweise des Computersystems 10 allgemein betrachtet werden. Bezugnehmend auf Fig. 3 wird eine Blockschaltbild eines Personalcomputersystems gezeigt, das die verschiedenen Komponenten des Computersystems wie beispielsweise des Systems 10 gemäß der vorliegenden Erfindung darstellt, einschließlich der Komponenten, die auf der Platine 20 montiert sind, sowie der Verbindungen der Platine zu den Ein-/Ausgabe-Steckplätzen und anderer Hardware des Personalcomputersystems. Der Systemprozessor 32 ist mit der Platine verbunden. Wenn auch jeder geeignete Mikroprozessor als CPU 32 verwendet werden kann, so ist ein geeigneter Mikroprozessor der Prozessor 486SLC, der von IBM hergestellt wird. Die CPU 32 ist über einen lokalen Hochgeschwindigkeits-CPU-Bus 34 mit einer Busschnittstellen-Steuereinheit 35, mit flüchtigem Speicher mit wahlfreiem Zugriff (RAM) 36, hier als Single Inline Memory Modules (SIMMs) dargestellt, und mit dem BIOS ROM 38 verbunden, in welchem die Befehle für die grundlegenden Ein-/Ausgabe-Operationen der CPU 32 gespeichert sind. Der BIOS ROM 38 enthält das BIOS, das als Schnittstelle zwischen den Ein-/Ausgabe-Geräten und dem Betriebssystem des Mikroprozessors 32 verwendet wird. Die im ROM 38 gespeicherten Befehle können in den RAM 36 kopiert werden, um die Ausführungszeit des BIOS herabzusetzen.Before relating the above-described structure to the present invention, a general overview of the operation of the computer system 10 will be given. Referring to Fig. 3, there is shown a block diagram of a personal computer system illustrating the various components of the computer system, such as the system 10 according to the present invention, including the components mounted on the circuit board 20 and the Board connections to the input/output slots and other hardware of the personal computer system. System processor 32 is connected to the board. Although any suitable microprocessor may be used as CPU 32, one suitable microprocessor is the 486SLC processor manufactured by IBM. CPU 32 is connected via a high speed local CPU bus 34 to a bus interface controller 35, volatile random access memory (RAM) 36, shown here as Single Inline Memory Modules (SIMMs), and BIOS ROM 38 which stores instructions for basic input/output operations of CPU 32. BIOS ROM 38 contains the BIOS which is used as an interface between the input/output devices and the operating system of microprocessor 32. Instructions stored in ROM 38 may be copied to RAM 36 to reduce BIOS execution time.
Wenn auch die vorliegende Erfindung hiernach unter besonderer Bezugnahme auf das Systemblockschaltbild von Fig. 3 beschrieben wird, sollte zu Beginn der folgenden Beschreibung verstanden werden, daß beabsichtigt ist, daß die Vorrichtung und die Verfahren gemäß der vorliegenden Erfindung auch zusammen mit anderen Hardwarekonfigurationen der Systemplatine verwendet werden können. Zum Beispiel könnte der Systemprozessor ein Intel 80286 oder 80386 Mikroprozessor sein.Although the present invention will be described hereinafter with particular reference to the system block diagram of Figure 3, it should be understood at the outset of the following description that it is intended that the apparatus and methods of the present invention may also be used with other system board hardware configurations. For example, the system processor could be an Intel 80286 or 80386 microprocessor.
Zurückkehrend zu Fig. 3, stellt der lokale CPU-Bus (der Daten-, Adressen- und Steuerkomponenten umfaßt) ebenfalls die Verbindung des Mikroprozessors 32 mit einem mathematischen Coprozessor 39 und einer Datenfluß-Steuereinrichtung 40 (SCSI) bereit. Die SCSI-Steuereinrichtung 40 kann, wie es einem Fachmann für Computerentwicklung und Anwendung bekannt ist, mittels eines SCSI-Busses 41 mit geeigneten externen Geräten einer Vielzahl von Typen verbunden sein oder verbunden werden. Die SCSI-Steuereinrichtung 40 arbeitet als Speichersteuereinrichtung zur Steuerung von Speicherbaugruppen wie beispielsweise elektromagnetischen Speichern mit festen oder auswechselbaren Speichermedien (auch als Festplatten- und Diskettenlaufwerke bekannt), elektro-optischen Platten, Magnetband- oder anderen Speichereinheiten. Ein solches Gerät ist in Fig. 3 als 42 schematisch dargestellt. Während hier die SCSI-Steuereinrichtung 40 so dargestellt ist, daß sie direkt mit dem lokalen Prozessorbus 34 verbunden ist, sieht die vorliegende Erfindung ebenfalls vor, daß diese als optionale Einheit bereitgestellt wird, die über den hiernach erwähnten Ein-/Ausgabe-Bus 44 angeschlossen wird. In Abhängigkeit von der speziell vorhandenen Systemkonfiguration kann ein solcher Anschluß über den Ein-/ Ausgabe-Bus vorzuziehen und/oder der einzig mögliche praktisch realisierbare Anschluß zur Umsetzung der vorliegenden Erfindung sein.Returning to Fig. 3, the local CPU bus (which includes data, address and control components) also provides the connection of the microprocessor 32 to a math coprocessor 39 and a data flow controller 40 (SCSI). The SCSI controller 40 may be connected to suitable external devices of a variety of types by means of a SCSI bus 41, as is known to those skilled in the art of computer design and application. SCSI controller 40 functions as a storage controller for controlling storage devices such as electromagnetic memories with fixed or removable storage media (also known as hard disk and floppy disk drives), electro-optical disks, magnetic tape or other storage devices. Such a device is shown schematically in Fig. 3 as 42. While SCSI controller 40 is shown here as being directly connected to local processor bus 34, the present invention also contemplates providing it as an optional unit connected via input/output bus 44 referred to hereinafter. Depending upon the particular system configuration present, such connection via the input/output bus may be preferable and/or the only possible practical connection for implementing the present invention.
Die Busschnittstellen-Steuereinheit (BIC) 35 verbindet den lokalen Prozessorbus 34 mit dem Ein-/Ausgabe-Bus 44. Über den Bus 44 ist die BIC 35 mit einem Bus zum Anschluß optionaler Erweiterungen wie beispielsweise einem MICRO CHANNEL Bus verbunden, der eine Vielzahl Ein-/Ausgabe-Steckplätze zum Aufnehmen von MICRO CHANNEL Adapterkarten 45 besitzt, welche mit einem Ein-/ Ausgabe-Gerät oder einem Speicher (nicht dargestellt) weiterverbunden werden können. Der Ein-/Ausgabe-Bus 44 enthält Adressen-, Daten- und Steuerkomponenten.The bus interface controller (BIC) 35 connects the local processor bus 34 to the input/output bus 44. The BIC 35 is connected via the bus 44 to a bus for connecting optional extensions such as a MICRO CHANNEL bus, which has a plurality of input/output slots for accommodating MICRO CHANNEL adapter cards 45, which can be further connected to an input/output device or a memory (not shown). The input/output bus 44 contains address, data and control components.
Entlang dem Ein-/Ausgabe-Bus 44 werden verschiedene Ein-/Ausgabe-Komponenten angeschlossen, wie beispielsweise ein Videosignalprozessor 46, dem ein Video-RAM (VRAM) zum Speichern von grafischen Informationen (gekennzeichnet mit 48) und zum Speichern von bildbasierten Informationen (gekennzeichnet mit 49) zugeordnet ist. Die Videosignale, die mit dem Prozessor 46 ausgetauscht werden, können über einen Digital-Analog-Wandler (DAC) 50 an einen Bildschirm oder ein anderes Anzeigegerät weitergeleitet werden. Es werden ebenfalls Einrichtungen bereitgestellt, um den VSP 46 direkt mit einem hier als Bild-Eingang/ Ausgang bezeichneten Anschluß zu verbinden, der für ein Videoaufzeichnungs-/Abspielgerät, eine Kamera usw. geeignet sein kann. Der Ein-/Ausgabe-Bus 44 ist weiterhin mit einem digitalen Signalprozessor (DSP) 51 verbunden, der zugeordneten Befehls- RAM 52 und Daten-RAM 54 besitzt, in denen Softwarebefehle zur Verarbeitung von Signalen durch den DSP 51 und die in eine solche Verarbeitung einbezogenen Daten gespeichert werden können. Der DSP 51 gewährleistet die Verarbeitung von Audioeingangs- und Ausgangssignalen durch Bereitstellen einer Audiosteuereinrichtung 55 sowie zur Verarbeitung anderer Signale durch Bereitstellen einer Steuereinrichtung 56 für eine Analogschnittstelle. Schließlich ist der Ein-/Ausgabe-Bus 44 noch mit einer Ein-/Ausgabe-Steuereinrichtung 58 mit zugeordnetem elektrisch löschbarem programmierbarem Nur-Lese-Speicher (EEPROM) 59 verbunden, über die der Austausch von Eingabe- und Ausgabesignalen mit konventionellen Peripheriegeräten einschließlich Diskettenlaufwerken, einem Drucker oder Plotter 14, einer Tastatur 12, einer Maus oder einem anderen Zeigergerät (nicht dargestellt) und über einen seriellen Anschluß erfolgt.Various input/output components are connected along the input/output bus 44, such as a video signal processor 46, to which a video RAM (VRAM) for storing graphic information (marked 48) and for storing image-based information (marked 49) is assigned. The video signals exchanged with the processor 46 can be converted to digital-to-analog format via a digital-to-analog converter (DAC) 50 to a video display or other display device. Means are also provided for connecting the VSP 46 directly to a port, referred to herein as a video input/output, which may be suitable for a video recorder/player, camera, etc. The input/output bus 44 is further connected to a digital signal processor (DSP) 51 having associated instruction RAM 52 and data RAM 54 in which software instructions for processing signals by the DSP 51 and the data involved in such processing can be stored. The DSP 51 provides for processing audio input and output signals by providing audio control means 55 and for processing other signals by providing analog interface control means 56. Finally, the input/output bus 44 is connected to an input/output controller 58 with an associated electrically erasable programmable read-only memory (EEPROM) 59, via which the exchange of input and output signals with conventional peripheral devices including floppy disk drives, a printer or plotter 14, a keyboard 12, a mouse or other pointing device (not shown) and via a serial connection takes place.
Bezugnehmend auf Fig. 4, besitzt die Datenfluß-Steuereinrichtung 40 (dort in Form eines Blockschaltbildes dargestellt) eine erste Schnittstellenschaltung 60 zum Austausch von Signalen mit der CPU 32 und dem RAM 36 sowie eine zweite Schnittstellenschaltung 61 zum Austausch von Signalen mit den SCSI-Einheiten, die funktionell mit der ersten Schnittstellenschaltung 60 verbunden ist, um Daten zwischen den SCSI-Einheiten und dem RAM 36 weiterzuleiten. Die erste Schnittstellenschaltung 60 kann auch als Systemschnittstelle bezeichnet werden und ist vorzugsweise entweder mit dem Ein-/Ausgabe-Bus 44 oder dem lokalen Prozessorbus 34 verbunden. Die zweite Schnittstellenschaltung kann auch als Steuerkern bezeichnet werden und ist vorzugsweise mit dem SCSI-Bus verbunden, über den die Daten von und zu den zugehörigen Speichereinrichtungen übertragen werden. Die zweite Schnittstellenschaltung 61 besitzt mindestens ein Register 62 zum Speichern von Daten, die den Inhalt und den Status einer Vielzahl von Befehlsfolgen ("Threads") anzeigen, die an die SCSI-Einheiten ausgegeben worden sind.Referring to Fig. 4, the data flow controller 40 (shown therein in block diagram form) has a first interface circuit 60 for exchanging signals with the CPU 32 and the RAM 36 and a second interface circuit 61 for exchanging signals with the SCSI devices, which is operatively connected to the first interface circuit 60 to pass data between the SCSI devices and the RAM 36. The first interface circuit 60 may also be referred to as a system interface and is preferably connected to either the input/output bus 44 or the local processor bus 34. The second interface circuit may also referred to as the control core and is preferably connected to the SCSI bus over which the data is transferred to and from the associated storage devices. The second interface circuit 61 has at least one register 62 for storing data indicating the content and status of a plurality of command sequences ("threads") issued to the SCSI devices.
Die Datenfluß-Steuereinrichtung 40 ist mit einem Steuerprozessor 64 zur Steuerung des Datenflusses über die erste und zweite Schnittstellenschaltung 60, 61 und zwischen den SCSI-Einheiten und dem RAM 36 ausgerüstet. Der Steuerprozessor ist vorzugsweise ein 8032-Prozessor, der funktionell mit der ersten Schnittstellenschaltung 60 verbunden ist, um Befehle zu empfangen, die von der System-CPU 32 ausgegeben werden, und mit der zweiten Schnittstellenschaltung 61, um an die SCSI-Einheiten Befehlsfolgen auszugeben, die den Datenaustausch mit den SCSI-Einheiten steuern. Eine dritte Schnittstellenschaltung 65 ist funktionell mit der ersten Schnittstellenschaltung 60 und mit der zweiten Schnittstellenschaltung 61 und mit dem Steuerprozessor 64 verbunden, um aus der Vielzahl von Befehlen den Befehl an den Steuerprozessor 64 weiterzuleiten, der durch in dem Register 62 gespeicherte Statusinformationen als der Befehl gekennzeichnet wird, der als nächster ein auszuführendes Kommando steuern soll.The data flow controller 40 is equipped with a control processor 64 for controlling the flow of data across the first and second interface circuits 60, 61 and between the SCSI devices and the RAM 36. The control processor is preferably an 8032 processor operatively connected to the first interface circuit 60 to receive commands issued by the system CPU 32 and to the second interface circuit 61 to issue to the SCSI devices command sequences that control data exchange with the SCSI devices. A third interface circuit 65 is operatively connected to the first interface circuit 60 and to the second interface circuit 61 and to the control processor 64 for forwarding to the control processor 64, from the plurality of commands, the command that is identified by status information stored in the register 62 as the command that is next to control a command to be executed.
Die Datenfluß-Steuereinrichtung 40 besitzt weiterhin ein FIFO- Datenregister 66, das funktionell zwischen die erste Schnittstellenschaltung 60 und die zweite Schnittstellenschaltung 61 geschaltet ist, um Daten zwischen diesen weiterzuleiten. Die Datenfluß-Steuereinrichtung besitzt ebenfalls ein FIFO-Befehlsregister 68, das funktionell zwischen die erste Schnittstellenschaltung 60 und die dritte Schnittstellenschaltung 65 geschaltet ist, um zwischen diesen Befehle, die von der CPU 32 ausge geben werden und zur Verarbeitung durch den Steuerprozessor 64 gedacht sind, weiterzuleiten. Die Datenfluß-Steuereinrichtung 40 besitzt desweiteren eine Zustandsdecodiereinheit 69, die funktionell zwischen die zweite Schnittstellenschaltung 61 und die dritte Schnittstellenschaltung 65 geschaltet ist, um Befehle, die von der CPU 32 empfangen werden, in Kommandos umzusetzen, die von den SCSI-Einheiten ausgeführt werden, die über den SCSI-Bus 41 miteinander verbunden sind.The data flow controller 40 further includes a FIFO data register 66 operatively connected between the first interface circuit 60 and the second interface circuit 61 for passing data therebetween. The data flow controller also includes a FIFO instruction register 68 operatively connected between the first interface circuit 60 and the third interface circuit 65 for passing instructions issued by the CPU 32 therebetween. and intended for processing by the control processor 64. The data flow controller 40 further includes a state decoding unit 69 operatively connected between the second interface circuit 61 and the third interface circuit 65 for converting commands received from the CPU 32 into commands executed by the SCSI units interconnected via the SCSI bus 41.
Die Datenfluß-Steuereinrichtung 40 ist in dem hierin offenbarten System eine Busmastereinheit.The data flow controller 40 is a bus master unit in the system disclosed herein.
In Verbindung mit der vorliegenden Darstellung der Datenfluß- Steuereinrichtung 40 ist es angebracht, die Unterstützung eines Personalcomputers für ein Bussystem mit mehreren Mastereinheiten oder Busmastern zu betrachten. So wie er hier verwendet wird, ist ein "Master" ein Prozessor oder eine beliebige andere Schaltung, die so ausgelegt ist, daß sie die Steuerung über einen Bus erlangen und Adreß-, Daten und Steuersignale auf dem Bus steuern kann. Der Besitz dieser Fähigkeiten gestattet es einer Mastereinheit, Daten zwischen dem Systemspeicher und anderen Einheiten zu übertragen.In connection with the present presentation of the data flow controller 40, it is appropriate to consider the support of a personal computer for a bus system having multiple master units or bus masters. As used herein, a "master" is a processor or any other circuit designed to gain control of a bus and to control address, data and control signals on the bus. Possession of these capabilities allows a master unit to transfer data between system memory and other units.
Es ist vorgeschlagen worden, Mastereinheiten in drei Kategorien zu unterteilen -- Systemmaster (normalerweise die CPU), DMA- Steuereinrichtungen und Busmaster. Der Systemmaster steuert und verwaltet die Systemkonfiguration. Er ist normalerweise der standardmäßige Master im System. Der standardmäßige Master besitzt die Steuerung über den Bus, wenn keine andere Mastereinheit den Bus anfordert. Ein DMA-Master ist ein spezieller Typ einer Mastereinheit, der Daten zwischen untergeordneten DMA- und Speichereinheiten überträgt und keine Prioritätsentscheidung über den Buszugriff vornimmt, sondern nur die untergeordnete DMA-Einheit bedient, die die Entscheidungseinheit ist. So wie er hier verwendet wird, trifft ein Busmaster eine Prioritätsentscheidung über den Buszugriff und unterstützt die Informationsübertragung mit einer untergeordneten Ein-/Ausgabe-Einheit oder einer untergeordneten Speichereinheit.It has been proposed to divide master units into three categories -- system masters (usually the CPU), DMA controllers, and bus masters. The system master controls and manages the system configuration. It is usually the default master in the system. The default master has control of the bus when no other master unit requests the bus. A DMA master is a special type of master unit that transfers data between slave DMA and memory units and does not make any priority arbitration over bus access, but only serves the slave DMA unit, which is the arbitration unit. So As used here, a bus master makes a priority decision about bus access and supports the transfer of information with a subordinate input/output unit or a subordinate storage unit.
Das was einen "Busmaster" ausmacht, kann verwirrend sein, weil Busmaster nicht notwendigerweise einen Prozessor erfordern. Ein Busmaster kann auch aufgefordert werden, als untergeordnete Einheit zu antworten, wenn auf ihn von einem anderen Busmaster aus zugegriffen wird. Ein Busmaster zeichnet sich durch die Fähigkeit aus, durch Prioritätsentscheidung und Steuerung der Ausführung eines definierten Buszyklus die Steuerung über den Bus erlangen zu können. Allgemein gibt es drei Typen Busmaster: Vollfunktions-Steuereinrichtungen, Spezialfunktions-Steuereinrichtungen und programmierbare Spezialfunktiohs-Steuereinrichtungen. Die grundlegenden Unterschiede zwischen ihnen liegen im Grad der Flexibilität, Funktion und Kosten. Der. Vollfunktions- Busmaster ist der flexibelste, besitzt die höchste Funktionalität und ist am teuersten. Typischerweise besitzt ein Vollfunktions-Busmaster seine eigene programmierbare CPU und ist in der Lage, alle Systemressourcen zu steuern, einschließlich der Betriebssystemsoftware. Spezialfunktions-Steuereinrichtungen weisen die geringste Flexibilität, Funktionalität und Kosten auf. Typischerweise verwendet eine Spezialfunktions-Steuereinrichtung zur Ausführung einer spezifischen Funktion anstelle einer CPU Logikschaltungen, wobei sie geringfügige oder keinerlei Hilfe von anderen Mastern benötigt. Programmierbare Spezialfunktions-Steuereinrichtungen überdecken den Bereich zwischen den beiden anderen genannten. Der grundlegende Unterschied zwischen Spezialfunktions-Steuereinrichtungen und programmierbaren Spezialfunktions-Steuereinrichtungen besteht in der Fähigkeit, die Funktion und/oder die Ausführungscharakteristik des Busmasters zu modifizieren. Eine solche Modifikation kann durch Ver wendung von Verarbeitungseinheiten oder durch einstellbare Register erreicht werden.What constitutes a "bus master" can be confusing because bus masters do not necessarily require a processor. A bus master can also be called upon to respond as a slave when accessed by another bus master. A bus master is characterized by the ability to gain control of the bus by making priority decisions and controlling the execution of a defined bus cycle. In general, there are three types of bus masters: full-function controllers, special-function controllers, and programmable special-function controllers. The basic differences between them are the degree of flexibility, functionality, and cost. The full-function bus master is the most flexible, has the highest functionality, and is the most expensive. Typically, a full-function bus master has its own programmable CPU and is capable of controlling all system resources, including the operating system software. Special-function controllers have the least flexibility, functionality, and cost. Typically, a special function controller uses logic circuitry instead of a CPU to perform a specific function, requiring little or no assistance from other masters. Programmable special function controllers cover the area between the other two. The basic difference between special function controllers and programmable special function controllers is the ability to modify the function and/or execution characteristics of the bus master. Such modification can be accomplished by using use of processing units or adjustable registers.
Innerhalb der hier gegebenen Definitionen können die CPU 32, die MCPU 39 und die SCSI-Steuereinrichtung 40 alle als direkt an den lokalen Bus 34 angeschlossene Busmaster fungieren, während die Ein-/Ausgabe-Steuereinrichtung 58, der DSP 51, der VSP 46 und mögliche Zubehörplatinen 45, die in den MICRO CHANNEL Steckplätzen stecken, alle als direkt an den Ein-/Ausgabe-Bus 44 angeschlossene Busmaster fungieren können.Within the definitions given here, the CPU 32, the MCPU 39 and the SCSI controller 40 can all act as bus masters directly connected to the local bus 34, while the I/O controller 58, the DSP 51, the VSP 46 and possible accessory boards 45 plugged into the MICRO CHANNEL slots can all act as bus masters directly connected to the I/O bus 44.
Bei einer solchen Vielzahl von Busmastern besteht die Aufgabe der BIC 35 darin, als Buszuteilungseinheit zu fungieren, die zwischen den direkt an den Ein-/Ausgabe-Bus 44 angeschlossenen Geräten eine Prioritätsentscheidung bezüglich des Zugriffs auf den Ein-/Ausgabe-Bus und auf den lokalen Prozessorbus 34 trifft und die bezüglich des Zugriffs auf den lokalen Prozessorbus 34 eine Prioritätsentscheidung zwischen dem Ein-/Ausgabe-Bus 44 und den Mastereinheiten, die direkt an den lokalen Prozessorbus 34 angeschlossen sind, trifft.With such a large number of bus masters, the task of the BIC 35 is to act as a bus arbitration unit which makes a priority decision regarding access to the input/output bus and to the local processor bus 34 between the devices directly connected to the input/output bus 44 and which makes a priority decision regarding access to the local processor bus 34 between the input/output bus 44 and the master units directly connected to the local processor bus 34.
Wie oben herausgearbeitet worden ist, können, wenn eine Vielzahl Busmastereinheiten Prioritätsentscheidungen über den Zugriff auf und die Steuerung über einen Datenübertragungsbus treffen, und im besonderen wenn diese Einheiten die Datenübertragung über FIFO-Register ausführen, einige Regeln oder Richtlinien darüber, wann eine Prioritätsentscheidung getroffen werden soll, eingesetzt werden, um die Leistungsfähigkeit des Systems zu optimieren. Die vorliegende Erfindung schlägt im speziellen eine solche Lösung vor.As has been pointed out above, when a plurality of bus master units make priority decisions about access to and control over a data transfer bus, and in particular when these units perform data transfer via FIFO registers, some rules or guidelines about when a priority decision should be made can be used to optimize the performance of the system. The present invention specifically proposes such a solution.
Genauer gesagt beabsichtigt die vorliegende Erfindung, daß ein geeignetes Register verwendet wird, um (durch die Software) einen Gefüllt- und Geleert-Schwellwert zu setzen, bevor eine Bus zuteilung zugelassen wird. Das heißt, ein Konfigurationsregister, wie das Register 70, besitzt entsprechend der vorliegenden Erfindung ein zugeordnetes Register, welches einen Schwellwert für das FIFO-Register enthält. Die zugehörige Busmastereinheit (hier die Datenfluß-Steuereinrichtung 40) trifft eine Prioritätsentscheidung über den Zugriff auf und die Steuerung über den Bus nur dann, wenn die Anzahl der in das FIFO-Register oder aus dem FIFO-Register zu übertragenden Bytes gleich oder größer ist, als der in dem Schwellwertregister gespeicherte zugeordnete Schwellwert.More specifically, the present invention intends that an appropriate register be used to set (by software) a filled and emptied threshold before a bus allocation is permitted. That is, a configuration register such as register 70 has an associated register containing a threshold value for the FIFO register in accordance with the present invention. The associated bus master unit (here the data flow controller 40) makes a priority decision regarding access to and control over the bus only when the number of bytes to be transferred into or out of the FIFO register is equal to or greater than the associated threshold value stored in the threshold register.
1. Beispielsweise kann ein Schwellwertregister den Zustand von zwei Bitpositionen im Register verwenden, um zwischen Füllniveaus von 87%, 75%, 63% und 50% zu unterscheiden. Wenn diese so gesetzt sind, daß ein Füllniveau von 50% als Schwellwert gelten soll und mit einem FIFO-Register gearbeitet wird, das eine Kapazität von 64 Bytes besitzt, würde die Auslösung einer Anforderung zum Leeren des FIFO-Registers erfordern, daß das FIFO- Register mindestens 32 Bytes Daten enthält, bevor eine Buszuteilung zugelassen werden würde. Im Fall der Füllung eines FIFO-Registers würde die zugeordnete Einheit nicht versuchen, den Zugriff auf und die Steuerung über den Bus zu erlangen, bis mindestens 32 Bytes des Speicherplatzes in dem FIFO-Register für das Füllen verfügbar sind.1. For example, a threshold register may use the state of two bit positions in the register to distinguish between fill levels of 87%, 75%, 63% and 50%. If these are set to threshold a fill level of 50% and working with a FIFO register that has a capacity of 64 bytes, initiating a request to flush the FIFO register would require that the FIFO register contain at least 32 bytes of data before a bus grant would be allowed. In the event of a FIFO register being full, the associated device would not attempt to gain access to and control of the bus until at least 32 bytes of space in the FIFO register are available for filling.
Falls die Notwendigkeit besteht, das FIFO-Register ungeachtet des Schwellwertes zu füllen oder zu leeren, könnte dies, um die Verwendung des Schwellwert zu umgehen, durch Erzeugen eines speziellen Transportsignals erreicht werden.If there is a need to fill or empty the FIFO register regardless of the threshold, this could be achieved by generating a special transport signal to circumvent the use of the threshold.
Claims (7)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/947,013 US5299315A (en) | 1992-09-17 | 1992-09-17 | Personal computer with programmable threshold FIFO registers for data transfer |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69322221D1 DE69322221D1 (en) | 1999-01-07 |
DE69322221T2 true DE69322221T2 (en) | 1999-07-01 |
Family
ID=25485366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69322221T Expired - Fee Related DE69322221T2 (en) | 1992-09-17 | 1993-06-17 | Personal computer with programmable threshold value registers for data transmission |
Country Status (10)
Country | Link |
---|---|
US (1) | US5299315A (en) |
EP (1) | EP0588472B1 (en) |
JP (1) | JPH06175971A (en) |
KR (1) | KR970004523B1 (en) |
CN (1) | CN1050917C (en) |
AT (1) | ATE173843T1 (en) |
CA (1) | CA2099025C (en) |
DE (1) | DE69322221T2 (en) |
SG (1) | SG42889A1 (en) |
TW (1) | TW435755U (en) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5655147A (en) * | 1991-02-28 | 1997-08-05 | Adaptec, Inc. | SCSI host adapter integrated circuit utilizing a sequencer circuit to control at least one non-data SCSI phase without use of any processor |
IL100127A0 (en) * | 1991-03-11 | 1992-08-18 | Future Domain Corp | Scsi controller |
CA2065989C (en) * | 1991-06-07 | 1998-03-31 | Don Steven Keener | Personal computer data flow control |
US5659690A (en) * | 1992-10-15 | 1997-08-19 | Adaptec, Inc. | Programmably configurable host adapter integrated circuit including a RISC processor |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
DE4417286A1 (en) * | 1994-05-13 | 1995-11-23 | Deutsche Bundespost Telekom | ATM buffer circuit data read-out method |
DE69520706T2 (en) * | 1994-06-03 | 2001-08-02 | Hyundai Electronics America, Milpitas | Manufacturing method for an electrical device adapter |
US5835787A (en) * | 1994-07-07 | 1998-11-10 | Lucent Technologies, Inc. | System for bi-directionally transferring a digital signal sample from a CODEC to a particular memory location and a second sample from memory to CODEC |
US5729719A (en) * | 1994-09-07 | 1998-03-17 | Adaptec, Inc. | Synchronization circuit for clocked signals of similar frequencies |
US5687395A (en) * | 1994-10-28 | 1997-11-11 | Hewlett-Packard Company | Main memory buffer for low cost / high performance input/output of data in a computer system |
US5809466A (en) * | 1994-11-02 | 1998-09-15 | Advanced Micro Devices, Inc. | Audio processing chip with external serial port |
US6272465B1 (en) | 1994-11-02 | 2001-08-07 | Legerity, Inc. | Monolithic PC audio circuit |
US5794021A (en) * | 1994-11-02 | 1998-08-11 | Advanced Micro Devices, Inc. | Variable frequency clock generation circuit using aperiodic patterns |
US5675808A (en) * | 1994-11-02 | 1997-10-07 | Advanced Micro Devices, Inc. | Power control of circuit modules within an integrated circuit |
US5528181A (en) * | 1994-11-02 | 1996-06-18 | Advanced Micro Devices, Inc. | Hazard-free divider circuit |
US5589830A (en) * | 1994-11-02 | 1996-12-31 | Advanced Micro Devices, Inc. | Stereo audio codec |
US5771356A (en) * | 1995-01-04 | 1998-06-23 | Cirrus Logic, Inc. | Apparatus for controlling FIFO buffer data transfer by monitoring bus status and FIFO buffer thresholds |
US5797042A (en) * | 1995-03-16 | 1998-08-18 | Intel Corporation | Method and apparatus for adjusting the buffering characteristic in the pipeline of a data transfer system |
US5815676A (en) * | 1995-04-28 | 1998-09-29 | Apple Computer, Inc. | Address bus arbiter for pipelined transactions on a split bus |
US5901295A (en) * | 1995-04-28 | 1999-05-04 | Apple Computer, Inc. | Address and data bus arbiter for pipelined transactions on a split bus |
US5664114A (en) * | 1995-05-16 | 1997-09-02 | Hewlett-Packard Company | Asynchronous FIFO queuing system operating with minimal queue status |
US6272452B1 (en) * | 1998-04-02 | 2001-08-07 | Ati Technologies, Inc. | Universal asynchronous receiver transmitter (UART) emulation stage for modem communication |
US6581141B1 (en) | 1999-05-18 | 2003-06-17 | International Business Machines Corporation | Toggle for split transaction mode of PCI-X bridge buffer |
DE19946716A1 (en) | 1999-09-29 | 2001-04-12 | Infineon Technologies Ag | Process for operating a processor bus |
JP4554016B2 (en) * | 2000-01-20 | 2010-09-29 | 富士通株式会社 | Integrated circuit device bus control system with improved bus utilization efficiency |
US6694417B1 (en) | 2000-04-10 | 2004-02-17 | International Business Machines Corporation | Write pipeline and method of data transfer that sequentially accumulate a plurality of data granules for transfer in association with a single address |
US7013340B1 (en) | 2000-05-18 | 2006-03-14 | Microsoft Corporation | Postback input handling by server-side control objects |
US6757900B1 (en) | 2000-05-18 | 2004-06-29 | Microsoft Corporation | State management of server-side control objects |
US7380250B2 (en) | 2001-03-16 | 2008-05-27 | Microsoft Corporation | Method and system for interacting with devices having different capabilities |
US7493397B1 (en) | 2001-06-06 | 2009-02-17 | Microsoft Corporation | Providing remote processing services over a distributed communications network |
US6944797B1 (en) | 2001-06-07 | 2005-09-13 | Microsoft Corporation | Method and system for tracing |
US6915454B1 (en) | 2001-06-12 | 2005-07-05 | Microsoft Corporation | Web controls validation |
US7162723B2 (en) * | 2001-06-29 | 2007-01-09 | Microsoft Corporation | ASP.NET HTTP runtime |
US7594001B1 (en) | 2001-07-06 | 2009-09-22 | Microsoft Corporation | Partial page output caching |
US7216294B2 (en) | 2001-09-04 | 2007-05-08 | Microsoft Corporation | Method and system for predicting optimal HTML structure without look-ahead |
US7428725B2 (en) * | 2001-11-20 | 2008-09-23 | Microsoft Corporation | Inserting devices specific content |
US7287107B2 (en) * | 2002-01-04 | 2007-10-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for passive PCI throttling in a remote server management controller |
US20030233477A1 (en) * | 2002-06-17 | 2003-12-18 | Microsoft Corporation | Extensible infrastructure for manipulating messages communicated over a distributed network |
US6973526B2 (en) * | 2002-06-28 | 2005-12-06 | Intel Corporation | Method and apparatus to permit external access to internal configuration registers |
US7574653B2 (en) * | 2002-10-11 | 2009-08-11 | Microsoft Corporation | Adaptive image formatting control |
US7240130B2 (en) * | 2003-06-12 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Method of transmitting data through an 12C router |
US7596782B2 (en) * | 2003-10-24 | 2009-09-29 | Microsoft Corporation | Software build extensibility |
US7890604B2 (en) * | 2004-05-07 | 2011-02-15 | Microsoft Corproation | Client-side callbacks to server events |
US20050251380A1 (en) * | 2004-05-10 | 2005-11-10 | Simon Calvert | Designer regions and Interactive control designers |
US9026578B2 (en) * | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
US8065600B2 (en) | 2004-05-14 | 2011-11-22 | Microsoft Corporation | Systems and methods for defining web content navigation |
US7464386B2 (en) * | 2004-05-17 | 2008-12-09 | Microsoft Corporation | Data controls architecture |
US7530058B2 (en) * | 2004-05-28 | 2009-05-05 | Microsoft Corporation | Non-compile pages |
US8156448B2 (en) * | 2004-05-28 | 2012-04-10 | Microsoft Corporation | Site navigation and site navigation data source |
US20060020883A1 (en) * | 2004-05-28 | 2006-01-26 | Microsoft Corporation | Web page personalization |
CN101034344B (en) * | 2007-04-12 | 2010-09-29 | 华为技术有限公司 | Threshold configuration method of first-in first-out memory, device and first-in first-out memory |
US9703603B1 (en) | 2016-04-25 | 2017-07-11 | Nxp Usa, Inc. | System and method for executing accelerator call |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4124888A (en) * | 1975-12-24 | 1978-11-07 | Computer Automation, Inc. | Peripheral-unit controller apparatus |
US4470114A (en) * | 1982-03-01 | 1984-09-04 | Burroughs Corporation | High speed interconnection network for a cluster of processors |
DE3424587A1 (en) * | 1984-07-04 | 1986-01-09 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | CIRCUIT ARRANGEMENT FOR CONTROLLING THE BIDIRECTIONAL DATA TRANSMISSION BETWEEN A COMPUTER UNIT AND TRANSMISSION LINKS CONNECTED BY INPUT / OUTPUT UNITS |
US4688172A (en) * | 1984-11-13 | 1987-08-18 | International Business Machines Corporation | Initialization apparatus for a data processing system with a plurality of input/output and storage controller connected to a common bus |
US4858107A (en) * | 1985-03-11 | 1989-08-15 | General Electric Company | Computer device display system using conditionally asynchronous memory accessing by video display controller |
JPS6415855A (en) * | 1987-07-09 | 1989-01-19 | Fujitsu Ltd | Data bus control system |
US4901226A (en) * | 1987-12-07 | 1990-02-13 | Bull Hn Information Systems Inc. | Inter and intra priority resolution network for an asynchronous bus system |
JPH02144652A (en) * | 1988-11-25 | 1990-06-04 | Fujitsu Ltd | Bus arbitration system |
US5016160A (en) * | 1988-12-15 | 1991-05-14 | International Business Machines Corporation | Computer system having efficient data transfer operations |
US5101490A (en) * | 1989-01-10 | 1992-03-31 | Bull Hn Information Systems Inc. | Peripheral device controller with an EEPROM with microinstructions for a RAM control store |
US5086385A (en) * | 1989-01-31 | 1992-02-04 | Custom Command Systems | Expandable home automation system |
JPH0315941A (en) * | 1989-06-14 | 1991-01-24 | Hitachi Ltd | Semiconductor integrated circuit |
US5220651A (en) * | 1989-10-11 | 1993-06-15 | Micral, Inc. | Cpu-bus controller for accomplishing transfer operations between a controller and devices coupled to an input/output bus |
EP0481830A2 (en) * | 1990-01-11 | 1992-04-22 | MICRAL, Inc. | Method and apparatus for microprocessor access arbitration |
US5129036A (en) * | 1990-03-30 | 1992-07-07 | Computer Concepts Corporation | Broadcast digital sound processing system |
US5187792A (en) * | 1990-05-09 | 1993-02-16 | International Business Machines Corporation | Method and apparatus for selectively reclaiming a portion of RAM in a personal computer system |
EP0496922B1 (en) * | 1991-01-31 | 1996-04-03 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Method and circuit layout for control of the transmission of data between one of several input/output modules and another unit of a data processing system |
-
1992
- 1992-09-17 US US07/947,013 patent/US5299315A/en not_active Expired - Fee Related
-
1993
- 1993-06-17 SG SG1996000446A patent/SG42889A1/en unknown
- 1993-06-17 AT AT93304739T patent/ATE173843T1/en not_active IP Right Cessation
- 1993-06-17 EP EP93304739A patent/EP0588472B1/en not_active Expired - Lifetime
- 1993-06-17 DE DE69322221T patent/DE69322221T2/en not_active Expired - Fee Related
- 1993-06-18 TW TW086202178U patent/TW435755U/en not_active IP Right Cessation
- 1993-06-23 CA CA002099025A patent/CA2099025C/en not_active Expired - Fee Related
- 1993-08-30 JP JP5213863A patent/JPH06175971A/en active Pending
- 1993-09-14 CN CN93117697A patent/CN1050917C/en not_active Expired - Lifetime
- 1993-09-14 KR KR1019930018644A patent/KR970004523B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0588472A1 (en) | 1994-03-23 |
CA2099025A1 (en) | 1994-03-18 |
US5299315A (en) | 1994-03-29 |
JPH06175971A (en) | 1994-06-24 |
KR940007647A (en) | 1994-04-27 |
KR970004523B1 (en) | 1997-03-28 |
CN1050917C (en) | 2000-03-29 |
TW435755U (en) | 2001-05-16 |
CN1094173A (en) | 1994-10-26 |
DE69322221D1 (en) | 1999-01-07 |
ATE173843T1 (en) | 1998-12-15 |
CA2099025C (en) | 1996-12-03 |
EP0588472B1 (en) | 1998-11-25 |
SG42889A1 (en) | 1997-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69322221T2 (en) | Personal computer with programmable threshold value registers for data transmission | |
DE69834739T2 (en) | COMPARING DATA BETWEEN DIFFERENT LADDERS OPERATING ON DIFFERENT FREQUENCIES | |
DE69027515T2 (en) | Priority arbitration conditioning device for buffered direct memory addressing | |
DE69217664T2 (en) | MULTIMEDIA SIGNAL PROCESSOR COMPUTER SYSTEM | |
DE3586260T2 (en) | MICROPROCESSOR SYSTEM. | |
DE112005002298B4 (en) | Increasing the performance of an address translation using translation tables comprising large address spaces | |
DE3127825C2 (en) | ||
DE3889816T2 (en) | Virtual input / output commands. | |
DE102005022893B3 (en) | Memory card e.g. multi media card, for data storage, has memory management unit providing open and safe interface to access memory blocks and protocol adapter accessing contents of card from host system connected with adapter by interface | |
DE3810231A1 (en) | DIGITAL CALCULATOR WITH PROGRAMMABLE DMA CONTROL | |
DE3885780T2 (en) | Addressing in a computer arrangement. | |
DE69122937T2 (en) | Personal computer system with interrupt control | |
DE102004057756B4 (en) | USB control device with OTG control unit | |
DE3704056A1 (en) | PERIPHERAL DMA CONTROLLER FOR DATA ACQUISITION SYSTEMS | |
DE69119149T2 (en) | Structure for direct memory-to-memory transfer | |
DE2125507A1 (en) | Queue control device for selecting requests for access to a memory from a queue | |
DE3855300T2 (en) | Interface circuit for data transmission between processor and input / output device | |
DE69423077T2 (en) | Control devices for non-volatile memory devices | |
DE69028836T2 (en) | Data processing system with direct memory access control and method for bus master change using interruptions with given priority | |
DE69029815T2 (en) | CENTRALIZED REFERENCE AND CHANGE TABLE FOR A VIRTUAL STORAGE ARRANGEMENT | |
DE3911721C2 (en) | ||
DE3338329C2 (en) | ||
DE2912073C2 (en) | ||
DE602004008060T2 (en) | USB HOST CONTROLLER WITH MEMORY FOR TRANSFER DESCRIBERS | |
DE112007000688T5 (en) | Error management topologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: LENOVO (SINGAPORE) PTE. LTD., SINGAPUR/SINGAPO, SG |
|
8339 | Ceased/non-payment of the annual fee |