DE68913056T2 - Bilddatenverarbeitung. - Google Patents

Bilddatenverarbeitung.

Info

Publication number
DE68913056T2
DE68913056T2 DE1989613056 DE68913056T DE68913056T2 DE 68913056 T2 DE68913056 T2 DE 68913056T2 DE 1989613056 DE1989613056 DE 1989613056 DE 68913056 T DE68913056 T DE 68913056T DE 68913056 T2 DE68913056 T2 DE 68913056T2
Authority
DE
Germany
Prior art keywords
data
memory
interface
transfer
interfaces
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
Application number
DE1989613056
Other languages
English (en)
Other versions
DE68913056D1 (de
Inventor
Lindsay Macdonald
Clive Mayne
Gary Stamp
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Crosfield Electronics Ltd
Original Assignee
Crosfield Electronics Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Crosfield Electronics Ltd filed Critical Crosfield Electronics Ltd
Publication of DE68913056D1 publication Critical patent/DE68913056D1/de
Application granted granted Critical
Publication of DE68913056T2 publication Critical patent/DE68913056T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Input (AREA)
  • Storing Facsimile Image Data (AREA)

Description

  • Die Erfindung betrifft Verfahren und eine Einrichtung zum Verarbeiten von dem Farbgehalt der Pixel eines Bildes definierenden Daten.
  • Bei der digitalen Bildverarbeitung gibt es eine große Menge von Bilddaten erzeugenden bzw. verarbeitenden Einrichtungen, wie Eingangs- und Ausgangsscanner, Seitenplaner und Geräten zur Darstellung. Typischerweise operieren diese periphären Geräte mit unterschiedlichen Datenmengen, die sich außerdem von den den Datenspeichern wie den Plattenspeichern zugehörigen Datenmengen unterscheiden. Angesichts der großen, in einer typischen digitalen Bilddarstellung erforderlichen Datenmenge sind konventionelle Speicherverfahren nicht zufriedenstellend, da sie zu erheblichen Unterbrechungen im Betriebsablauf des Systems führen können.
  • Beispielsweise liefern bzw. konsumieren typische Eingangsund Ausgangsscanner Daten mit einer Menge von etwa 1 MByte/s. Konventionelle Plattenantriebe mit einer Kleincomputersystem-Schnittstelle (SCSI) übertragen Daten mit einer typischen Geschwindigkeit von 2 Mbyte/s. Ein Videoabbildungsspeicher überträgt jedoch Daten mit Geschwindigkeiten bis zu 32 MByte/s. Diese Unterschiede der Datenmengen können zu einem Ungleichgewicht führen, wenn Bilder von einer Geräteklasse auf eine andere übertragen werden, wobei das schnellere Gerät die meiste Zeit im Leerlauf verbringt und auf das langsamere Gerät wartet. Dieses Problem stellt sich insbesondere einem Operator, der die Übertragung eines großen Bildes aus einem Plattenspeicher zu einem Abbildungsmonitor wünscht. Für graphische Anwendungen werden die Bilder typischerweise mit einer räumlischen Auflösung von 12 Pixel/mm abgetastet und gespeichert, so daß eine DIN A4- Seite mit den Abmessungen 297 auf 210 mm 3.564 x 2.520 Pixel benötigt, oder etwa 36 MByte Plattenspeicher bei 4 Bytes pro Pixel. Für die Verarbeitung von Satellitenbildern haben die Bilder aus dem LANDSAT-Satelliten typischerweise etwa 6.000 Pixel im Quadrat und benötigen also 36 MByte Plattenspeicher pro Spektralband. In jedem Fall dauert die Übertragung mindestens 18 s bis zum Ende, begrenzt durch die Plattengeschwindigkeit. Sogar für ein Bild gleicher Größe wie auf der Abbildung kann die Übertragungsdauer bedeutend sein, beispielsweise benötigt ein Farbbild von 1.280 auf 1.024 Pixel 5 MBytes auf der Platte sowie 2 bis 3 s für die Übertragung. Solche Verzögerungen behindern den Operator und es ist deshalb sehr wünschenswert, die Bildverarbeitungszeiten zu verringern, wo immer dies möglich ist.
  • US-A-4,6881168 beschreibt ein Verfahren und eine Vorrichtung zum Übertragen von Daten mit hoher Geschwindigkeit, wobei die Daten von mehreren Quelien auf einem Datenbus verschachtelt werden. Dieses Verschachteln wird durch Zuteilen einer bestimmten Anzahl von Buszyklen zu jedem Gerät der Reihe nach erzielt, wobei jeweils die Anzahl der Buszyklen entsprechend der Übertragungsgeschwindigkeit der Geräte bestimmt wird. Dies kann zu Schwierigkeiten führen, wenn die Daten beim Übertragen neu formatiert werden müssen, weil ein solches Formatieren mit dem patentierten Gerät nicht möglich ist. Das Verfahren beim "Verschachteln" durch Zuteilen von Buszyklen paarweise zu Quellen und Empfangsgeräten bedeutet eine Einschränkung, da damit unweigerlich Busbandbreite verschwendet. wird. Die Beschreibung erläutert ferner das Vernetzen von Databits auf mehreren unterschiedlichen Platteneinheiten. Es hat jedoch einen begrenzten Wert, da die Platteneinheiten nacheinander angesteuert werden müssen, um das Vernetzen zu ermöglichen und dies führt zu Unzulänglichkeiten der Einheiten, da Wartezeiten der einzelnen Platten beim Rotieren nicht berücksichtigt werden.
  • Gemäß einem Aspekt der Erfindung ist eine Datenverarbeitungseinrichtung zum Verarbeiten von den Farbgehalt der Pixel eines Bildes darstellenden Daten vorgesehen, bestehend aus mehreren Datenübertragungs-Schnittstellen zum Anschlug eines Datenbus an mehrere periphäre Geräte, mit einer ersten Gruppe von Schnittstellen zum Anschluß an mindestens zwei Plattenspeicher und mit mindestens einer zweiten Gruppe von Schnittstellen zum Anschluß jeweils an eine Datenquelle und an einen Datenempfang; ferner mit einer Steuereinrichtung zum Steuern der Datenübertragungsoperationen zwischen ausgewählten Paaren der Schnittstellen und zum Vorherbestimmen von deren Dauer; dadurch gekennzeichnet, daß ferner ein an den Datenbus angeschlossener Speicher vorgesehen ist, daß die Steuereinrichtung die Datenübertragung zwischen ausgewählten Paaren der Schnittstellen über den Speicher derart steuert, daß jede Datenübertragungsoperation in mehreren aufeinanderfolgenden, jedoch nicht notwendigerweise fort laufenden Hilfsübertragungsoperationen ausgeführt wird, wobei jede Hilfsübertragungsoperation eine nicht unterbrechbare Datenübertragung zwischen einer der ausgewählten Schnittstellen und dem Speicher ist, wobei die Steuereinrichtung ein Verschachteln von dazwischen liegenden Hilfsübertragungsoperationen für andere Schnittstellen gestattet und die Dauer und die Dauer der Hilfsübertragungsoperationen für jede Schnittstelle und die im Speicher für jede Übertragungsoperation zuzuteilende erforderliche Speicherkapazität bestimmt wird, wodurch die gesamte Datenübertragung durch Maximieren der benutzten Busbandbreite optimiert wird und dadurch das Durchführen der Datenübertragungsoperationen ohne Unterbrechen des Betriebsablaufs der periphären Geräte ermöglicht wird; und daß die Steuereinrichtung veranlaßt, dar zweidimensionale Pixelblöcke definierende Daten in unterschiedlichen, an die erste Gruppe der Schnittstellen in Benutzung angeschlossene Plattenspeicher gespeichert werden, wobei jeder Block aus n x m Pickel mit n sowie m > 1 besteht und jeder Block einer Anzahl von Abschnitten der originalen Rasterabtastzeilen entspricht.
  • Im Gegensatz zu der vorgenannten bekannten Datenverarbeitungseinrichtung wird ein an den Datenbus angeschlossener zusätzlicher Speicher vorgesehen. Diese ermöglicht nicht nur das Reformatieren der Daten, wenn erforderlich, sondern vermeidet es auch, daß gewisse Datentransferoperationen von einer oder mehreren Nullzyklen am Datenbus übersprungen werden, wie dies bei dem bekannten Gerät von Zeit zu Zeit nötig ist. Ein solches Auslassen von Buszyklen steht der Ausnützung der vollen Busbandbreite entgegen und verringert die Leistungsfähigkeit. So können asynchron angesteuerte Platteneinheiten verwendet werden, die viel billiger sind als bei der bekannten Einrichtung, da bei der Erfindung komplette Datenwörter, die beispielsweise komplette Pixelblöcke definieren, in zugehörigen Platten gespeichert werden, im Gegensatz zu der bekannten Einrichtung, bei der den Inhalt eines einzigen 32 Bit-Worts def inierende Daten auf Mehrfachköpfe einer parallelen Übertragungsplatteneinrichtung verteilt werden. Die letztere Anordnung erfordert eine wesentliche Präzision beim Einschreiben und Aus lesen der Daten und somit müssen teuere Parallelkopf-Platteneinheiten verwendet werden.
  • Im Gegensatz zum Stand der Technik gestattet die Erfindung das Reformatieren der Daten beim Übertragen zu und aus den Platteneinheiten, um den Zugang der Bilddaten zu optimieren.
  • Ferner macht es die Erfindung möglich, Daten aus separaten asynchronen Plattenspeichern zu übertragen und vor der Übertragung zu/von einem Rastergerät in zusammenhängenden Daten wieder zusammenzusetzen. Damit bedarf es nicht kostspieliger synchronisierter Geräte.
  • Darüber hinaus wird durch Vorherbestimmung der Bandbreitenerfordernisse einer Datenübertragung zusammen mit allen anderen laufenden Übertragungen ein "Verschachteln" des Bus auf einer Nachfragebasis von Seiten der Quelle oder des Empfangsgeräts abhängig von Richtung und Natur der Übertragung bestimmt, so daß die Übertragungen optimiert werden. Eine feste Buszyklus-Zuteilung ist nicht erforderlich.
  • Der Speicher kann mit einem einzigen Speicher versehen sein, kann aber auch durch mehrere getrennte Speicher abhängig vom Aufbau der Anordnung gebildet sein.
  • Vorzugsweise definiert die Steuereinrichtung für jedes ausgewählte Paar von Schnittstellen jeweils einen Bereich des Speichers, der zwei Abschnitte hat, wobei die Steuereinrichtung für jedes ausgewählte Paar Schnittstellen je einen Bereich des Speichers mit zwei Abschnitten definiert, die Steuereinrichtung veranlaßt, daß die Daten in einer ersten Hilfsübertragungsoperation von einer Schnittstelle zu einem Abschnitt des Speichers iibertragen werden, in einer zweiten Hilfsoperation die Daten von diesem Abschnitt des Speichers zu der anderen Schnittstelle übertragen werden, in einer dritten Hilfsübertragungsoperation die Daten von der einen Schnittstelle zum anderen Abschnitt des Speichers übertragen werden und in einer vierten Hilfsoperation die Daten von dem zweiten Abschnitt zur anderen Schnittstelle übertragen werden. Dies macht es möglich, dar unterschiedliche Datengeschwindigkeiten verarbeitet werden können, ohne die Datenübertragung zu bzw. von den peripheren Geräten zu unterbrechen. Die zu übertragende Datenmenge entsprechend der Länge der Hilfsübertragungsoperation und der Größe der Speicherabschnitte wird von der Steuereinrichtung in einem vorherliegenden Schritt optimiert.
  • Diese "Doppelspeicher"-Technik macht es möglich, den einen Abschnitt des Speicherbereichs mit Daten zu füllen und dann einen Abschnitt eines anderen Speicherbereichs entsprechend einer unterschiedlichen Datenübertragungsoperation zu füllen, während der Inhalt des ersten Speicherbereichabschnitts an die andere Schnittsteile des ersten Paars übertragen wird. Da die Datengeschwindigkeit für diese Schnittstelle bekannt ist, ist auch die Geschwindigkeit, mit der die Daten aus dem einen Speicherbereichabschnitt ausgegeben werden, bekannt, und wenn die Steuereinrichtung feststellt, daß die Menge ungelesener Daten in dem einen Speicherbereichabschnitt klein ist, kann sie veranlassen, daß weitere zu übertragende Daten von der einen Schnittstelle in den anderen Abschnitt des Speicherbereichs übertragen werden, der für die Übertragung zu der anderen Schnittstelle bereit ist, sobald der erste Abschnitt voll gelesen worden ist. In der Zwischenzeit zwischen den beiden Einspeicherschritten können weitere Daten in oder aus dem Speicher in Verbindung mit anderen Übertragungen übertragen werden.
  • Die Speicherung der Daten, die Pixelblöcke definieren, löst ein erhebliches Problem, das beim Verarbeiten von Bilddaten infolge des erforderlichen Datenvolumens auftritt. Typischerweise tastet ein Eingangsscanner ein Originalbild in einer Reihe von Rasterzeilen von einer Pixelbreite ab. Wenn jedoch ein Operator einen Teil des abgetasteten Bildes auf einem Monitor betrachten will, so wird dieser im allgemeinen nicht mit der Anzahl kompletter Rasterzeilen übereinstimmen. Somit haben bekannte Systeme einen einzelnen Plattenspeicher, in dem das Bild in einer Abfolge von Rasterzeilen gespeichert wird, um die Daten aus der Platte auszulesen, die zum Abbilden des gewünschten Bildteils erforderlich sind, wobei der Lesekopf eine große Menge nicht zutreffender Daten abtasten muß, um die Abschnitte jeder interessierenden Rasterzeile zu lokalisieren. Dies vermeidet die Erfindung, bei der das Bild in zwei dimensionalen Pixelblöcken gespeichert wird, wobei jeder Block eine Anzahl Abschnitte der originären Rasterabtastzeilen entspricht.
  • Die Größe jedes Blockes kann empirisch ausgewählt werden, vorzugsweise ist aber die Anzahl der Bytes in jedem Block ein Mehrfaches der Größe eines formatierten Plattensektors, beispielsweise acht Plattensektoren mit jeweils 512 Bytes können genau einen Block mit 1.024 Pixe1 bei 4 Bytes pro Pixel beinhalten.
  • Wie vorgenannt, ist einer der Vorteile des Speichers derjenige, daß beim Übertragen die Daten reformatiert werden können. Zu diesem Zweck hat die Steuereinrichtung vorzugsweise einen Adressengenerator zum Adressieren von Speicherstellen während jeder Übertragung. Damit kann der Adressengenerator Daten aus den Plattenspeichern in spezifische Speicherstellen des Speichers laden und darauf in einer spezifischen Reihenfolge aus dem Speicher auslesen. Dies würde dort nützlich sein, wo beispielsweise die Daten über eine zweite Schnittstelle in einer Weise übertragen werden sollen, welche das Bild in einem Rasterformat definiert, während die gleichen Daten durch die erste Schnittstelle passieren sollen in einer Weise, die Blöcke von Bildpixel definiert. Es sind damit auch Operationen möglich, wie ein seitliches Umkehren eines Bildes oder eine Drehung um 90º oder die Vertauschung von Reihen und Spalten, die "fliegend" durchgeführt werden.
  • Bei der bevorzugten Ausführung ist eine Schnittstelle der zweiten Gruppe an einen Videoabbildungsspeicher angeschlossen. Ein solcher Speicher wird mit einem Videomonitor verbunden, der ein Bild in einer Rasterform wiedergibt, das den im Abbildungsspeicher gespeicherten Daten entspricht. Typischerweise wird die Größe des Abbildungsspeichers größer sein als die die zur Abbildung des Bildes auf dem Monitor erforderlich ist, so daß unterschiedliche Abschnitte des Bildes relativ einf ach betrachtet werden können, ohne daß Daten aus den Plattenspeichern programmgeladen werden müssen.
  • Die Bandbreite des verbindenden Databus muß größer sein als die Summe der Übertragungsgeschwindigkeiten aller Schnittstellen, die in einem Satz gleichzeitiger Übertragungen tätig sind. Normalerweise würde dies anfänglich von der Steuereinrichtung überprüft werden, bevor die Übertragungen beginnen.
  • Ein anderes Bildverarbeitungsgerät kann an eine Schnittstelle der zweiten Gruppe angeschlossen sein, beispielsweise ein Bildeingangsscanner oder ein Bildausgangsscanner oder beispielsweise ein Crosfilter Magnascan, ein Seitenplanungssystem oder ein Bildmodifiziersystem, beispielsweise das Crosfield Studio System.
  • Ein Beispiel eines Bildverarbeitungssystems mit einer Datenverarbeitungseinrichtung gemäß der Erfindung wird nun anhand der Zeichnung näher erläutert. Es zeigen:
  • Fig. 1 ein Blockschaltbild eines Teils des Bildverarbeitungssystems;
  • Fig. 2 eine schematische Darstellung des in Fig. 1 dargestellten Speichers;
  • Fig. 3 eine Darstellung der Zuteilung von Blöcken eines Bildes zu den Plattenspeichern der Fig. 1 und
  • Fig. 4 eine Software-Darstellung zum Steuern der Operation der Einrichtung.
  • Das in Fig. 1 dargestellte System hat einen Hostbus 1 des in EP-Anmeldung 89 301 920.8 erläuterten Typs, der an einen nicht dargestellten Hostprozessor und ein Bildmanipuliersystem angeschlossen ist, das ebenfalls nicht gezeigt ist.
  • Das System hat ferner ein Schnittstellen-Subsystem 2 mit einem primären Datenbus 3, auf dem Daten mit 44 Megabyte/s laufen, Der Datenbus 3 ist an den Hostbus 1 über eine Host- Schnittstelle 4 angeschlossen. Der Datenbus 3 ist auch an mehrere andere periphere Geräte angeschlossen, wie einen Videomonitor 5, einen Abtaster 6, Eingangsscanner, Ausgangsscanner oder kombinierter Eingangs- und Ausgangsscanner oder irgendein Gerät, das Daten empfängt oder ausgibt (z.B. ein nachbeschriebenes System, das an das LAN- Netzwerk, wie unten erwähnt, angeschlossen ist) und einen Satz mit vier Plattenspeichern 7 bis 9, 9'. Jeder Plattenspeicher bzw. Platteneinheit 7 bis 9, 9' besitzt eine konventionelle Winchester-Platte mit einer Kapazität von 300 Megabytes. Der Monitor 5 ist an eine Wiedergabesteuerung 10 angeschlossen, die einen Videoabbildungsspeicher 10' aufweist, der wiederum an den Datenbus 3 über eine Bildschnittstelle 11 angeschlossen ist. Typischerweise überträgt die Bildsteuerung 10 Übertragungsdaten mit einer Geschwindigkeit von 32 Megabyte/s.
  • Der Scanner 6 ist an den Datenbus 3 über eine LAN-Schnittstelle 12 angeschlossen, die Daten mit etwa 10 Megabyte/s durchläßt.
  • Die Plattenspeicher 7 bis 9, 9' sind an den Bus 3 jeweils über Schnittstellen 16 bis 18, 18' angeschlossen. Diese Schnittstellen, Standardtypen wie SCSE, können Geräte mit einer durchschnittlichen Datengeschwindigkeit bis zu 4 Megabyte/s ansteuern und an den Bus 3 kurze Daten mit höherer Geschwindigkeit liefern. Die Plattenspeicher sind jedoch Standardtypen und haben eine durchschnittliche Geschwindigkeit von etwa 1 bis 2 Megabyte/s.
  • Der Datenbus 3 ist ferner an einen 4 Megabyte-Speicher 19 angeschlossen, der als RAM mit dualen Eingängen aufgebaut ist. Datenübertragungen am Bus 3 zu und von dem Speicher 19 können deshalb mit Geschwindigkeiten von bis zu 44 Megabyte/s erfolgen, zusammen mit Datenübertragungen auf dem Hostbus 1 zu und von den Speichern 19 bei Geschwindigkeiten bis zu 44 Megabyte/s. Die Zuteilung von Bereichen dieses Speichers zu bestimmten Datenübertragungen zwischen Schnittstellen wird von einem Busarbitrator 20 über einen Adressengenerator 21 gesteuert. Der Busarbitrator weist einen Steuermikroprozessor auf, beispielsweise Motorola 68020.
  • Der Betriebsablauf des Systems wird nun dargestellt, wobei drei typische Übertragungsoperationen betrachtet werden. Übertragung 1 ist eine Datenübertragung aus drei Plattenspeichern 7 bis 9 zur Wiedergabesteuerung 10. Übertragung 2 ist eine Datenübertragung aus dem Scanner 6 zu den drei Plattenspeichern 7 bis 9 und Übertragung 3 ist eine Datenübertragung aus den drei Plattenspeichern 7 bis 9 zum Hostbus 1. Der vierte Plattenspeicher 91 ist beim Ausfall einer der anderen Speicher vorgesehen.
  • Sobald diese drei Übertragungstypen bestimmt worden sind, betrachtet der Busarbitrator 20 die verschiedenen Datenübertragungsgeschwindigkeiten und bestimmt im Speicher 19 drei Bereiche 22 bis 24 (Fig. 2), deren Größe so gewählt ist, daß die gesamten Datenübertragungsoperationen optimiert werden und diese Operationen durchgeführt werden können, ohne daß die Operation der peripheren Geräte unterbrochen wird. Einige periphere Geräte wie der Scanner erfordern eine "Realzeit"-Datenübertragung, d.h. sie sind zeitkritisch und können Unterbrechungen der Datenübertragung nicht verarbeiten. Jeder Speicherbereich 22 bis 24 ist vom Arbitrator 20 in zwei Speicherabschnitte 22a, 22b, 23a, 23b und 24a, 24b unterteilt, die jeweils mit den Speicheradressen A0, A1, A2, A3, A4 und A5 starten. Diese Adressen können während der Übertragungsoperationen wechseln. Der Arbitrator 20 startet dann die Übertragung 1, indem Daten in den Plattenspeichern 7 bis 9 ausgelesen und über die Schnittstellen 16 bis 18 zum Datenbus 3 geführt werden. Ausreichende Daten werden aus den Speichern ausgelesen, um den Abschnitt 22a des Speichers zu füllen. Die Daten werden dem Speicherabschnitt vom Adressengenerator 21 zugeführt, der gesteuert wird, um die Startadresse A0 des Speicherabschnitts 22a aus zugeben und die Adresse für jedes folgende Datenelement zu inkrementieren. Soweit der Abschnitt 22a gefüllt ist, wird die nachfolgende Übertragungsoperation beendet und der Arbitrator 20 entscheidet dann, ob diese Daten unmittelbar in einer zweiten Hilfsoperation an die Wiedergabesteuerung 10 übertragen werden sollen oder ob neue Daten gemäß der Übertragung 2 aus dem Scanner zum Speicherabschnitt 23a oder gemäß Übertragung 3 aus den Speichern 7 bis 9 zum Speicherabschnitt 24a übertragen werden sollen.
  • In diesem Fall nehmen wir an, daß der Vorgang durch Übertragen von Daten aus dem Scanner 6 über die Schnittstelle 12 zum Speicherabschnitt 23a optimiert wird. Dieser Abschnitt wird mit Daten in einer Weise geladen, die ähnlich dem Einlesen in den Abschnitt 22a ist.
  • Man kann es dann wünschenswert finden, daß die Daten im Speicherabschnitt 22a zur Wiedergabeschnittstelle 11 übertragen werden. Während dieser Übertragung kann eine weitere Datenübertragung aus den Plattenspeichern 7 bis 9 in den Speicherabschnitt 24a erfolgen, bis der Arbitrator 20 bestimmt, dar die im Speicherabschnitt 22a verbliebene Datenmenge soweit gefallen ist, daß weitere Daten erforderlich sind, um mit der Datenübertragung an die Bildwiedergabesteuerung 20 fortzufahren. In diesem Zustand veranlaßt der Arbitrator 20, daß weitere Daten aus den Plattenspeichern 7 bis 9 gemäß Übertragung 1 in den Abschnitt 22b gelesen werden, so daß nach dem Auslesen aller Daten aus dem Speicherabschnitt 22a weitere Daten aus dem Abschnitt 22b von der Wiedergabeschnittstelle ausgeiesen werden können.
  • Wie ersichtlich, kann eine Reihe von "gleichzeitigen" Übertragungen in und aus dem Speicher 19 erfolgen und die Verwendung dieser doppelten Abspeichertechnik ermöglicht einen im wesentlichen kontinuierlichen Datenfluß über die peripheren Geräte.
  • Die Wirkung der getrennten Adressen-25 und Daten-26 Busse für den Anschluß der Host-Schnittstelle an den Speicher 19 gestattet gleichzeitige Übertragung zwischen dem Speicher 19 und der Host-Schnittstelle 4 und über den Datenbus 3 mit den anderen peripheren Geräten.
  • Ein typischer Eingangsscanner tastet ein Originalbild in einer großen Anzahl von Rasterabtastzeilen ab. Ein Beispiel für einen Teil eines Bildes 27 ist in Fig. 3 gezeigt, in der die Abtastzeilen schematisch mit 28 bezeichnet sind. Bekanntlich werden die beim Abtasten einer einzelnen Rasterabtastzeile erhaltenen Daten direkt in einem Plattenspeicher in der Reihenfolge gespeichert, in der die Daten erzeugt wurden. Dies führt zu Schwierigkeiten dort, wo anschließend ein Operator wünscht, einen Bildteil zu betrachten, beispielsweise das Quadrat mit den Koordinaten 0 (Reihe), 1 (Spalte), das vom ersten Teil einer großen Zahl n Abtastlinien definiert ist. Beim Stand der Technik war es notwendig, daß der Plattenspeicher die gesamten n Rasterabtastzeilen abtastet und nur die interessierenden Daten an den Datenbus 3 liefert, um diesen Bildteil darzustellen.
  • Wir schlagen ein neues Verfahren zum Speichern der Daten in Form von Blöcken eines Bildes vor, wobei die Blöcke in einer Anzahl von Plattenspeichern verteilt sind (in diesem Beispiel 3, doch kann für das beschriebene System die gleiche Technik mit jeder beliebigen Anzahl Plattenspeicher verwendet werden). Werden so die Daten aus einer einzigen Abtastzeile erzeugt, so werden diese Daten (im Falle der ersten Abtastzeile in Fig. 3) zunächst in einen Bereich des Speichers 19 geleitet, doch wird nach einer vorbestimmten Zahl von n Pixel während der gleichen Abtastzeile auf einen zweiten Blockbereich des Speichers 19 umgeschaltet und dann auf einen dritten Blockbereich, während die übrige Abtastzeile in aufeinaderfolgenden Blockbereichen abgespeichert wird. Diese Reihe von Speicherschritten wird für die n Abtastzeilen wiederholt, bis alle Blöcke in den Speicher 19 eingelesen sind. Die Blockbereiche können dann in die zugehörigen Plattenspeicher eingeschrieben werden, der erste Block in den Speicher 7, der zweite Block in den Speicher 8 usw.. Währenddessen wird ein zweiter Satz von Blockbereichen im Speicher 19 aus der nächsten der n Abtastzeilen aus dem Scanner eingeschrieben. Um die Zeit zum Wiederauffinden eines rechtwinkligen Blockes von Bilddaten beliebiger Größe aus den Plattenspeichern 7 bis 9 zu optimieren, wird die Reihenfolge der Speicherung für jede der n Abtastzeilen gemäß Fig. 3 geändert und dies wird über das gesamte Bild hinweg in Abfolge wiederholt.
  • Es ist nötig, diese Blockaufteilung der Bilder beim Übertragen der Daten in und aus den Plattenspeichern 7 bis 9 durchzuführen. Dies gilt deshalb, weil ein Eingangs-/Ausgangsscanner typischerweise Daten in einem Rasterbildformat überträgt, wie auch ein Wiedergabe-Steuersystem die Datenübertragungen in diesem Format erfordert. Der Adressengenerator 21 unter Steuerung des Arbitrators 20 ermöglicht deshalb das Zerlegen und Zusammensetzen der Daten in Blöcken durch Ansteuerung der Adressen des Speichers 19 während der Datenübertragung. Dies ist möglich ohne Einschränkung bezüglich der vorbeschriebenen Datenübertragungsgeschwindigkeiten. Auf diese Weise können Datenübertragungen von bis zu vier getrennten Plattenspeichern verschachtelt und zu einem Ausgangsscanner in einem Rasterformat übertragen werden. Der Arbitrator kann tatsächlich dann die Datenübertragungen jedes einzelnen separaten Plattenspeichers in einer einzigen Datenübertragung bei einer mehrfachen Datengeschwindigkeit durchführen, die von einem Plattenspeicher geliefert wird. Beispielsweise können vier Plattenspeicher mit geringer Datengeschwindigkeit (z.B. 2 Megabyte/s) zu einer Leistung veranlaßt werden, als ob sie nur ein Plattenspeicher sind, der mit 8 Megabyte/s arbeitet.
  • Weist der Operator das System an, einen Bildteil für die Wiedergabe auf dem Monitor herauszulösen, so ermöglicht diese Speicherform in Bildblöcken einen wesentlich schnelleren Zugriff.
  • Gewisse Aspekte der vorbeschriebenen Datenverarbeitungseinrichtung werden nachstehend im einzelnen erläutert.
  • KANAL-HANDLER
  • Der Arbitrator 20 kann jeweils nur eine einzige Hilfsübertragungsoperation (über einen Kanal-Handler-Prozess) durchführen und deshalb hat der Kanal-Handler nur einen einzelnen Task. Dieser Task besteht aus fünf Hauptmodulen (Fig. 5).
  • Der Prozess-Scheduler 30. Dieser entscheidet, welcher Vorgang vom Kanal-Handler als nächster bearbeitet wird. Der Scheduler hat die Option, einen von drei Prozessen zu starten. Gibt es kritische Jobs (Übertragung), die bedient werden können, so startet der Scheduler diese zuerst. Gibt es keine zu bedienenden kritischen Jobs, so sucht der Scheduler nach neuen Jobs. Ist kein neuer Job anhängig, wird der Job auf eine korrekte Jobliste gegeben (kritisch oder nicht kritisch) und dann kehrt der Scheduler zurück, um zu sehen, ob jetzt kritische Jobs vorliegen, die zu bedienen sind, d.h. die bedienbar geworden sind, während der neue Job auf die Jobliste gesetzt wurde. Liegen keine kritischen Jobs vor und sind keine neuen Befehle anhängig, so bedient der Scheduler andere nicht kritische Jobs.
  • B) Job update Prozess 31 (Fortschreibung). Diese hat zwei Joblisten: eine für kritische Jobs und eine andere für nicht kritische Jobs. Die Jobs werden von einem Befehl- Parser der Reihe nach zum Kanal-Handler gegeben.
  • C) Der kritische Job-Handler 32 managt die zeitgeprägten Speicherabschnitte (noch zu beschreiben). Diese Speicherabschnitte sind aktiv, wenn sie auf der kritischen Jobliste sind. Speicherabschnitte werden nur dann beachtet, wenn dies durch ihre Zeitmarkierungen angezeigt ist. Wird ein Speicherabschnitt beachtet, so werden die nötigen Übertragungsparameter zum Übertragungs-Handler geschickt. Es hängt vom kritischen Job-Handler ab, Jobs aus der kritischen Jobliste zu streichen, wenn sie komplett sind. Auch erfolgt eine Information für den Host-Prozessor, daß ein Job ausgeführt wurde.
  • D) Der nicht kritische Job-Handler 33 benutzt die Zeit zwischen dem kritischen Job-Service, um Jobs auf der nicht kritischen Jobliste auszuführen. Er benutzt die Plattenparameter und den gegenwärtigen Plattenstatus, um den Umfang der Arbeit zu berechnen, der in der verfügbarne Zeit durchführbar ist. Wenn die Jobbeschreibung erzeugt worden ist, sendet der Prozess die nötigen Übertragungsparameter zum Übertragungs-Handler. Ist ein nicht kritischer Job komplett, so wird hier von der Befehlstatus/Fehlerreport-Task informiert.
  • E) Der Übertragungs-Handler 34 verkehrt direkt mit dem Adressengenerator 21 und den Plattenschnittstellen 16 bis 18. Bei einer laufenden Übertragung wird der gesamte Kanal- Handler stillgesetzt. Der Kanal-Handler wird aufgeweckt, wenn eine Unterbrechungs-Serviceroutine (ISR) anzeigt, daß eine Übertragung komplett ist.
  • SPEICHERMANAGER
  • Ein Speichermanager ist im Arbitrator 20 und verfolgt die Speicherung mit einer doppelt verketteten Liste von Speicherabschnitt-Titeln. Jeder Speicherabschnitt-Titel beschreibt den zugehörigen Speicherabschnitt. Die verkettete Titelliste beschreibt einen Satz Speicherabschnitte, die den Datenspeicher voll besetzen.
  • Ein Speichertitel enthält die folgenden Datenfelder.
  • 1) Die Startadresse des Speicherabschnitts. Dies ist die Adresse des ersten Byte des Speicherabschnitts, der zum Titel gehört.
  • 2) Die Speicherabschnittlänge. Dies ist die Länge des Speicherabschnitts in Bytes, die zum Titel gehört.
  • 3) Inuse Flag. Dieser Flag wird gesetzt, wenn der Speicherabschnitt zugeteilt wird. Ist dieser Flag nicht gesetzt, so deutet der Speicherabschnitt-Titel auf einen Block eines freien Speichers hin.
  • 4) Full Flag. Dieser Flag wird gesetzt, wenn der Speicherabschnitt mit gültigen Daten voll ist oder geleert ist.
  • 5) Busy Flag. Dieser Flag wird gesetzt, wenn ein Prozess einen Speicherabschnitt modifiziert, d.h. ihn leert oder füllt.
  • Der Speicherabschnitt-Titel hat ebenfalls zwei Ketten. Eine Kette deutet auf den Speicherabschnitt-Titel für den Speicherabschnitt unmittelbar über diesem Speicherabschnitt und der andere deutet auf den Speicherabschnitt unmittelbar unter diesem Speicherabschnitt. Dies gestattet dem Memory Manager den Zustand benachbarter Speicherabschnitte zu bestimmen.
  • Ist die Anordnung im Leerlauf, so gibt es einen einzigen Speicherabschnitt-Titel. Dieser Speicherabschnitt-Titel enthält die Startadresse des Speichers, die Länge des Speichers und der Inuse Flag ist geklärt, womit angezeigt ist, daß der Speicher frei ist.
  • Fordert der Memory Manager einen Speicherabschnitt an, so durchsucht er die Speicherabschnitt-Titelliste für einen Speicherabschnitt-Titel, bei dem der Inuse Flag geklärt ist. Der Speichermanager überprüft, ob der freie Speicherabschnitt die richtige Größe hat. Dieser Speicherabschnitt muß mindestens die gleiche Größe besitzen wie die Speichermenge, nach der der Memory Manager Ausblick hält. Gibt es mehr als einen Speicherabschnitt, der größer ist als die gewünschte Abspeicherung, so kann der Nemory Manager einen passenden Algorithmus ausführen, uni eine Wahl zu treffen, z.B. beste Passung, schlechteste Passung, erster Fund usw.. Ist der ausgewählte Speicherabschnitt zu groß, so werden zwei Speicherabschnitt-Titel erzeugt, wo ursprünglich nur einer war. Der erste Titel beschreibt einen Teil des ursprünglichen Speicherabschnitts von der gleichen Größe wie der gewünschte Speicherabschnitt und wird mit Inuse markiert. Der zweite Titel deutet auf den übrigen Speicher hin, der mit Nicht-Inuse markiert wird.
  • Gibt der Memory Manager einen Speicherabschnitt frei, so markiert er den Speicherabschnitt als Nicht-Inuse. Die Speicherabschnitte unmittelbar über und unter diesem werden überprüft, ob eine oder beide ebenfalls frei sind. Sind sie es, so erzeugt der Speicherabschnitt-Manager einen einzigen Speicherabschnitt-Titel, der den gesamten freien Raum beschreibt.
  • Ist einmal ein Speicherabschnitt zugeteilt worden, so ist es wahrscheinlich, daß er für eine lange Dauer zugeteilt bleibt (in der Größenordnung von 10 Minuten und mehr). Während die Zuteilung fortschreitet, ist es wahrscheinlich, daß die Speicherabschnitte mit freien Plätzen immer kleiner werden. Es ist möglich, dar genug Platz im Speicher ist, wenn der Memory Manager einen freien Platz braucht, doch ist dieser unterteilt in eine Anzahl von nicht zusammenhängenden Speicherabschnitten (es gibt keine zusammenhängenden freien Speicherabschnitte, da diese bereits zusammengefaßt worden sind). Nicht zusammenhängende Speicherabschnitte können zusammengesammelt werden, indem man ein später erläutertes System für eine Speicherabschnitt-Migration nutzt.
  • Ist ein Speicherabschnitt einmal zugeteilt worden, so kann er in einem von vier Zuständen sein: Leer, Füllen, Voll oder Leeren. Ist ein Speicherabschnitt leer, so kann er einfach durch Änderung seiner Startadresse bewegt werden. Ist beispielsweise ein zugeteilter/leerer Speicherabschnitt durch zwei freie Speicherabschnitte gebunden, so wäre es möglich, einen zugeteilten/leeren Speicherabschnitt zu schaffen und einen größeren freien Speicherabschnitt durch Bewegen des zugeteilten Speicherabschnitts, wobei die zwei freien Platzabschnitte zusammengefaßt werden.
  • Wird ein System adoptiert, bei dein leere Speicherabschnitte stets aufwärts bewegt werden, um darüber einen freien Platz zu besetzen, so wird der freie Platz im Speicher abwärts wandern. Vorausgesetzt, daß der freie Platz nicht benutzt wird, während er wandert, wird er letztlich in einem groben freien Speicher am Boden des Speichers gesammelt.
  • können von einer einzigen Quelle gefüllt und mehreren Sinks geleert werden. Die einzige Sink bzw. die einzige Quelle ist immer verantwortlich für das Synchronisieren der Datenübertragungen.
  • In einer einzigen Füll/mehrfachen Sink-Übertragung werden die Felder wie folgt benutzt. Full Flag Busy Flag Aktivitätszähl. Anfänglich waren die leeren Prozesse auf ein Signal und die Felder im Speicherabschnitt- Titel werden wie angezeigt aufgesetzt. Ist ein einziger Füller bereit, einen Speicherabschnitt zu füllen, setzt er die Aktivitätszählung auf 1, zeigt damit einen einzigen Füller an und setzt die Busy Flag. Hat der einzige Füller das Füllen des Speicherabschnitts beendet, signalisiert er dem Speichermanager und zeigt an, daß er seine Operation beendet hat. Der Speichermanage dekrementiert die Aktivitäte und bestimmt aus den Flags, daß der letzte (und nur dieser) Füller fertig ist und somit der Speicherabschnitt voll und länger busy ist. Der Speichermanager kann mit einem vollen Speicher- abschnitt nichts anfangen, so daß er nur die Zustände vorschreibt. Der einzige Füller setzt die Aktivitätszählung auf die Anzahl der Entleerer. Der einzige Füller signalisiert, daß ein voller Speicherabschnitt nicht verfügbar ist. In diesem Zustand merken die Entleerer, daß ein voller Speicherabschnitt verfügbar ist und treffen Vorkehrungen für ihren Anteil am Entleeren. Ist ein Entleerer bereit, den Speicherabschnitt zu starten, setzt er die Busy Flag (unabhängig vom laufenden Zustand) und startet das Entleeren des Speicherabschnitts. Hat der Entleerer geendet, signalisiert er dem Speichermanager. Jedesmal, wenn der Speichermanager ein Signal von einem Entleerer erhält, dekrementiert er die Aktivitätszählung. Wenn diese im Speicherabschnitt-Titel Null erreicht, so ist der letzte Entleerer komplett und der Speicherabschnitt muß deshalb leer sein. In diesem Zustand wird der Speicherabschnitt nötigenfalls gewechselt und dann als nicht voll oder nicht busy markiert. Der einzige Füller wartet auf die Markierung des Speicherabschnitts als nicht voll, bevor er versucht, ihn zu füllen.
  • Das Beispiel für einen einzigen Füll/mehrfachen Sink hat jetzt den vollen Zyklus ausgeführt.
  • TIMESHARING
  • Diese Einrichtung soll sicherstellen, dar alle kritischen Übertragungen ohne Zwischenfall beendet werden. Gleichzeitig soll sichergestellt werden, daß nicht kritische Übertragungen nicht unnötigerweise verzögert werden. Die nachstehend erläuterte Planung befriedigt beide Anforderungen.
  • Die Planung beruht auf der Tatsache, daß die Bildscanner eine hohe Ausstoßdatenmenge haben, ihre Dauerdatenmenge über längere Zeitdauer jedoch kleiner ist. Beim Benutzen großer Speicherabschnitte ist die niedrige Dauerdatenmenge vorteilhaft. Tatsächlich benutzt jede Scannerübertragung zwei große Speicherabschnitte. Ein Spelcherabschnitt wird vom Scanner gefüllt oder entleert, während der andere von einer oder mehreren Platten geleert bzw. gefüllt wird. Die Speicherabschnittgrößen werden so gewählt, daß alle Scanner im System einen Speicherabschnitt in etwa dem gleichen Zeitintervall füllt oder leert. Es ist nicht möglich, genau das Füllen und Entleeren im Gleichgewicht zu halten, da die Speicherabschnitte auch eine solche Größe haben müssen, daß sie eine ganze Zahl von Blockspalten halten.
  • Eine einzige Platte hat eine Dauerdatenmenge, die etwa gleich ist einer Ausstoßmenge eines Scannes. Dies heißt, dar eine einzige Plattendatenmenge normalerweise viel schneller ist als die Dauerdatenmenge des Scanners. Da große Speicherabschnitte verwendet werden, würde deshalb eine einzige Platte imstande seine einen Speicherabschnitt viel schneller zu leeren als ein Scanner ihn füllen könnte. Da mehrere Plattenkanäle einen einzigen Speicher leeren, wird in der Tat der teilnehmende Plattenkanal nicht voll besetzt. Diese freie Zeit wird benutzt, um andere kritische Scannerübertragungen zu bedienen oder wenn solche nicht aktiv sind, nicht kritische Übertragungen durchzuführen.
  • Um alle Aktivitäten zu synchronisieren und zu ermöglichen, daß die Einrichtung alle Datenübertragungen managt, werden die Speicherabschnitte zeitmarkiert. Die Bedeutung der Zeitmarkierung hängt davon ab, ob der kritische Vorgang einen Speicherabschnitt füllt oder entleert. In beiden Fällen ist die allgemeine Bedeutung der Zeitmarkierung die gleiche. Alle Zeiten können von dem kritischen Vorgang gesteuert werden.
  • Eine Zeitmarkierung hat die folgenden drei Teile:
  • * Die Zeit, die der kritische Vorgang zuletzt als Speicherabschnitt benutzt hat. Dies kann entweder die Zeit sein, daß ein kritischer Vorgang zum Füllen eines Speicherabschnitts beendet ist, oder die Zeit, daß ein kritischer Vorgang zum Entleeren eines Speicherabschnitts beendet ist.
  • * Die Zeit, die ein kritischer Vorgang braucht, um den Speicherabschnitt wieder zu benutzen.
  • * Die zuletzt mögliche Zeit, daß die Platte den Speicherabschnitt verarbeiten kann und beendet ist, bevor der Speicherabschnitt wieder benötigt wird.
  • Die Zeitmarkierungen werden wie folgt erläutert:
  • Verwendung der Zeitmarkierungen, wenn ein Scanner einen Speicherabschnitt füllt Schritt 1
  • Zeitquellen-Speicherabschnitt gefüllt Null
  • Letztmöglicher Quellenspeicherabschnitt Null
  • Entleerungszeit Zeit des nächsten Ziel-Speicherabschnitts zum Füllen Null
  • Das obige Diagramm zeigt den Zustand der Zeitmarkierung, wenn ein kritischer Job gerade gestartet worden ist. Die Platte muß nicht irgendetwas mit diesem Speicherabschnitt zu tun haben.
  • Schritt 2
  • Zeit gefüllt Null
  • Letztmögliche Entleerungszeit Null
  • Zeit der nächsten Füllung Wert 1
  • Jetzt hat der Scanner gestartet, um den Speicherabschnitt zu füllen. Die Platte muß nicht einen kritischen Job starten, der nicht beendet wird, nachdem "Zeit der nächsten Füllung" gegeben ist.
  • Schritt 3
  • Zeit gefüllt Wert 1'
  • Letztmögliche Entleerungszeit Wert 2
  • Zeit der nächsten Füllung Wert 2
  • Der Scanner hat nun den Speicherabschnitt gefüllt. Die Einrichtung wählt den ältesten Job "Zeit gefüllt" als nächsten kritischen Job. Wenn die laufende Zeitdauer hinter "Letztmögliche Entleerungszeit" ist, dann ist es zu spät, diesen Speicherabschnitt zu bedienen und der Job muß abgebrochen werden.
  • Schritt 4
  • Zeit gefüllt Null
  • Letztmögliche Entleerungszeit Null
  • Zeit der nächsten Füllung Wert 2
  • Die Einrichtung markiert den Speicherabschnitt als leer durch Klären des Vorgangs "Zeit gefüllt" und "Letztmögliche Entleerungszeit". Der Speicherabschnitt hat nun den gleichen Status wie in Schritt 2. Nüssen die Speicherabschnitte nicht von einem Scanner gefüllt werden, so geht der Prozeß zwischen den Schritten 4 und 2 zyklisch hin und her. Die Übertragung ist beendet, wenn die Zeitmarkierung gleich dem Abschnitt im folgenden Schritt 5 ist.
  • Schritt 5
  • Zeit gefüllt Wert 2'
  • Letztmögliche Entleerungszeit Wert 3
  • Zeit der nächsten Füllung Null
  • Der letzte Speicherabschnitt hat keinen "Zeit der nächsten Füllung"-Wert, jedoch gelten noch die Regeln im Schritt 3 oben.
  • Schritt 6
  • Zeit gefüllt Null
  • Letztmögliche Entleerungszeit Null
  • Zeit der nächsten Füllung Null
  • Die Übertragung ist komplett und die Einrichtung kann nun den Host benachrichtigen, daß sein Anteil am Job beendet ist.
  • Verwendung der Zeitmarkierungen, wenn Daten vom Plattenspeicher zum Wiedergabesystem übertragen werden Schritt 1
  • Zeitziel-Speicherabschnitt entleert Null
  • Letztmögliche Zielspeicherabschnitt Füllzeit Null
  • Zeit der nächsten Quellen speicherabschnitt-Entleerung Null
  • Der Job wurde eben dem Host vorgelegt. Nichts ist über dem Speicherabschnitt bekannt, so dar die Einrichtung dies bei der Programmplanung nicht berücksichtigen muß.
  • Schritt 2
  • Zeit entleert Null
  • Letztmögliche Füllzeit Null
  • Zeit der nächsten Entleerung Wert 1
  • Ist das Wiedergabesystem zum Start bereit, liefert es den Wert "Zeit der nächsten Entleerung". Dieser Wert ist ein Zyklus aus der laufenden Zeit. Ein Zyklus ist die Gesamtzeit, die ein kritischer Verbraucher benötigt, um einen Speicherabschnitt zu füllen/entleeren. Diese Aktion vermeidet, dar die Einrichtung einen nicht kritischen Job programmiert, der ein Füllen des Speicherabschnitts verhindern würde.
  • Schritt 3
  • Zeit entleert Wert 1'
  • Letztmögliche Füllzeit Wert 2
  • Zeit der nächsten Entleening Wert 2
  • Das Wiedergabesystem liefert die volle Zeitmarkierung. Der Job ist jetzt aktiv. Die Einrichtung wählt den ältesten Wert "Zeit entleert" unter allen aktiven Jobs und füllt dann den Speicherabschnitt. Das Wiedergabesystem wird erst starten und benutzt seinen ersten Speicherabschnitt, wenn die laufende Zeitdauer gleich "Zeit der nächsten Entleerung" ist.
  • Schritt 4
  • Zeit entleert Null
  • Letztmögliche Füllzeit Null
  • Zeit der nächsten Entleerung Wert 2
  • Die Einrichtung klärt den Wert "Zeit entleert" um anzuzeigen, daß der Speicherabschnitt bedient worden ist.
  • Schritt 5
  • Zeit entleert Wert 2'
  • Letztmögliche Füllzeit Wert 3
  • Zeit der nächsten Entleerung Wert 3
  • Das Wiedergabesystem hat begonnen, den vorhergehenden Speicherabschnitt zu entleeren und fragt nun nach dem nächsten zu füllenden Speicherabschnitt.
  • Schritt 6
  • Zeit entleert Null
  • Letztmögliche Füllzeit Null
  • Zeit der nächsten Entleerung Wert 3
  • Der Zyklus ist nun zum Schritt 4 zurückgekehrt. Dies dauert an, bis der letzte Speicherabschnitt zu arbeiten beginnt.
  • Schritt 7
  • Zeit entleert Wert 3'
  • Letztmögliche Füllzeit Wert 4
  • Zeit der nächsten Entleerung Null
  • Der letzte Speicherabschnitt in dieser Folge hat "Zeit für nächste Entleerung". Dies zeigt, daß es keine Speicherabschnitte mehr gibt, die von der PLatte gefüllt werden soll.
  • Schritt 8
  • Zeit entleert Null
  • Letztmögliche Füllzeit Null
  • Zeit der nächsten Entleerung Null
  • Die Übertragung des gesamten Bildes ist beendet, wenn alle Werte in der Zeitmarkierung geklärt worden sind.
  • DATENBUSSTRUKTUR
  • Die internen Busübertragungen werden vom Adressengenerator 21 gesteuert, der synchron mit den Daten (16 MHz) läuft. Übertragungsrahmen enthalten 8 Wörter mit 32 Bits, jeder Rahmen hat 720 ns. Damit ist die direkte Übertragung auf den Host-Bus möglich, wenn die Tafel als ein virtueller Adressenplatz-Master fungiert.
  • Die gewünschte Übertragung (Quelle/Ziel-Adresse, Wortzählung, Ablageparameter) wird vom 68020 Mikroprozessor vorbereitet und ausgeführt, wenn die Daten verfügbar werden. Übertragungen von 128 Pixel treten immer dann auf, wenn es möglich ist, wobei jedes langsame Gerät einen Fifo am internen Datenbus-Anschluß hat, der Übertragungen von Daten mit der korrekten Ausstoßmenge ermöglicht. Diese Fifos haben einen Status-Flag, der anzeigt, daß im Fifo 128 Pixel sind und Platz für 128 Pixel vorhanden ist. Der Adressengenerator 21 prüft diese Flags, bevor die Daten übertragen werden.
  • SPEICHER
  • Der 4 Negabyte-Speicher 19 mit dualem Anschluß wird für die Blockoperationen und zum allgemeinen Speichern von Daten verwendet. Die Adresse wird von Adressengenerator 21 geliefert, der die erforderlichen Adressen für die Blockbilddaten in jedem Plattenspeicher berechnet. Zum Programmieren der Übertragung hat der 68020 folgende Parameter zu liefern:
  • a) Startadresse im Puffer RAM.
  • b) Die Übertragungszählung als Zähler für die gesamte Übertragung besteht aus mehreren Parametern:
  • i) Übertragungsblockgröße (typisch 128 Pixel) Wählbar in mehrfachen von 8 Pixeln (32 Bytes)
  • ii) Blockhöhe (Blöcke im Zeilensegment)
  • iii) Blockbreite (typisch 8 Zeilen)
  • iv) Blöcke in der Spalte des Bildes
  • v) Spalten im Speicher
  • c) Quelle und Ziel der Übertragung (jeweils 4 Bit Beschreibung) und ein 8-Bit--Steuerwort (Priorität usw.)
  • d) Zeilenlänge des Quellenbildes
  • e) Blockbreite (typisch 8 Zeilen)
  • f) Versatz zwischen Ende der Blockzeile und Starten der nächsten innerhalb eines Blockes
  • g) Versatz zwischen dem Ende des Blocks und dem Start des nächsten Blocks.
  • Die Parameter c) bis g) sind vorgegeben und werden eininal vom 68020 eingestellt, nur a) und b) sind nötig, um jede einzelne Übertragung zu beschreiben. Der Adressengenerator 21 kann gleichzeitig mehrere Übertragungen bedienen (typisch 16), während die Abfolge im Adressengenerator jede Übertragung ausführt, wenn 128 Wörter verfügbar sind.
  • Der andere Anschlußdes Speichers 19 wird für den Hostbus 1 für virtuelle Tochteroperationen verwendet. Der Speicher hat duale Anschlüsse, da die Hostbus-Zugänge keinen Wartestatus haben, Übertragungen also zur richtigen Zeit garantiert werden müssen. Wird dem Hostbus-Zugang eine oberste Priorität in einem System mit einem Eingang gegeben, dann kann der Hostbus-Anschluß die gesamte verfügbare Bandbreite benutzen. Irgendein Hostbus virtueller Platzmaser kann in den Speicher 19 Daten einschreiben oder von ihm auslesen, wobei diese Übertragungen voll gleichzeitig mit der internen Busoperation im Speicher erfolgen.
  • PLATTENSCHNITTSTELLEN
  • Die Plattenschnittstellen 16 bis 18, 18' haben einen 2K x 32 Fifo und einen WD 33C93 SCSI-Steuer-IC. Die Steuerinformation wird von einem Anschluß am 68020 Bus geliefert. Der benutzte Fifo synchronisiert das langsame SCSI (Platte)-Gerät mit dem internen Datenbus 3. Für eine typische Übertragung aktiviert der 68020 den WD 33C93, eine Anzahl von logischen Blöcken zu lesen oder zu schreiben, und der 68020 liefert dann die Übertragungsparameter zum Adressengenerator 21. Die Übertragung erfolgt unter der Steuerung der Abfolgestufen im Adressengenerator. Nach Beendigung unterbricht der WD 33C983 den 68020, sobald die Unterbrechung bedient worden ist und die 68020 Parameter fortgeschrieben sind, wobei die Abfolge nunmehr die letzte Übertragung beendet hat. Ist die Übertragungszählung komplett, so kann der Adressengenerator die nächsten Übertragungsparameter lesen.

Claims (10)

1. Datenverarbeitungseinrichtung zum Verarbeiten von den Farbgehalt der Pixel eines Bildes darstellenden Daten, bestehend aus:
mehreren Datenübertragungs-Schnittstellen (11,12,16 bis 18, 18') zum Anschluß eines Datenbus (3) an mehrere periphere Geräte (6 bis 10, 9'), mit einer ersten Gruppe von Schnittstellen (16 bis 18, 18') zum Anschluß an mindestens zwei Plattenspeicher und mit mindestens einer zweiten Gruppe von Schnittstellen (11,12) zum Anschluß jeweils an eine Datenguelle und an einen Datenempfang; ferner mit einer Steuereinrichtung (20,21) zum Steuern der Datenübertragungsoperationen zwischen ausgewählten Paaren der Schnittstellen und zum Vorherbestimmen von deren Dauer; dadurch gekennzeichnet, daß ferner ein an den Datenbus (3) angeschlossener Speicher (19) vorgesehen ist, dar die Steuereinrichtung (20,21) die Datenübertragung zwischen ausgewählten Paaren der Schnittstellen über den Speicher (19) derart steuert, daß jede Datenübertragungsoperation in mehreren aufeinanderfolgenden, jedoch nicht notwendigerweise fortlaufenden Hilfsübertragungsoperationen ausgeführt wird, wobei jede Hilfsübertragungsoperation eine nicht unterbrechbare Datenübertragung zwischen einer der ausgewählten Schnittstellen und dem Speicher ist, wobei die Steuereinrichtung ein Verschachteln von dazwischen liegenden Hilfsübertragungsoperationen für andere Schnittstellen gestattet und die Dauer der Hilfsübertragungsoperationen für jede Schnittstelle und die im Speicher für jede Übertragungsoperation zuzuteilende erforderliche Speicherkapazität bestimmt wird, wodurch die gesamte Datenübertragung durch Maximieren der benutzten Busbandbreite optimiert wird und dadurch das Durchführen der Datenübertragungsoperationen ohne Unterbrechen des Betriebsablaufs der peripheren Geräte ermöglicht wird; und daß die Steuereinrichtung veranlaßt, daß zweidimensionale Pixelblöcke definierende Daten in unterschiedlichen, an die erste Gruppe der Schnittstellen in Benutzung angeschlossene Plattenspeicher gespeichert werden, wobei jeder Block aus n x m Pickel mit n sowie m > 1 besteht und jeder Block einer Anzahl von Abschnitten der originalen Rasterabtastzeilen entspricht.
2. Einrichtung nach Anspruch 1, wobei die Steuereinrichtung (20,21) für jedes ausgewählte Paar Schnittstellen je einen Bereich (22 bis 24) des Speichers (19) mit zwei Abschnitten (22a, 22b; 23a, 23b; 24a, 24b) definiert, die Steuereinrichtung veranlaßt, daß die Daten in einer ersten Hilfsübertragungsoperation von einer Schnittstelle zu einem Abschnitt des Speichers übertragen werden, in einer zweiten Hilfsoperation die Daten von diesem Abschnitt des Speichers zu der anderen Schnittstelle übertragen werden, in einer dritten Hilfsübertragungsoperation die Daten von der einen Schnittstelle zum anderen Abschnitt des Speichers übertragen werden und in einer vierten Hilfsoperation die Daten von dem zweiten Abschnitt zur anderen Schnittstelle übertragen werden.
3. Einrichtung nach Anspruch 1 oder 2, ferner bestehend aus mindestens zwei asynchron angetriebenen Plattenspeichern (7 bis 9, 9'), die an die erste Gruppe Schnittstellen (16 bis 18, 18') angeschlossen sind.
4. Einrichtung nach einem der vorhergehenden Ansprüche, wobei eine Schnittstelle (11) der zweiten Schnittstellengruppe an einen Videoabbildungsrahmenspeicher (10') angeschlossen ist.
5. Einrichtung nach einem der vorhergehenden Speicher, wobei eine Schnittstelle (12) der zweiten Schnittstellengruppe an einen Bildeingangscanner (6) angeschlossen ist.
6. Einrichtung nach einem der vorhergehenden Ansprüche, wobei die Steuereinrichtung (20,21) veranlaßt, daß Daten an mindestens eine Schnittstelle der zweiten Schnittstellengruppe in einer Weise übertragen werden, die den entsprechenden Bildteil in einem Rasterformat definiert.
7. Einrichtung nach einem der vorhergehenden Ansprüche, wobei die Steuereinrichtung einen Adressengenerator (21) zum Adressieren von Speicherstellen im Speicher (19) während jeder Übertragung aufweist.
8. Einrichtung nach einem der vorhergehenden Ansprüche, wobei die Bytezahl in jedem Block ein Mehrfaches der Größe eines formatierten Plattenspeicherabschnitts beträgt.
9. Einrichtung nach einem der vorhergehenden Ansprüche, wobei jedes Pixel von mehr als einer Farbkomponente definiert wird, die Steuereinrichtung (20,21) veranlaßt, daß alle Farbkomponenten jedes Blocks definierende Daten in dem gleichen Plattenspeicher abgespeichert werden.
10. Einrichtung nach einem der vorhergehenden Ansprüche, wobei eine Schnittstelle (11) der zweiten Schnittstellengruppe an einen Videoabbildungsrahmenspeicher (10') und einen Videomonitor (5) angeschlossen sind, und die Größe des größten am Videobildmonitor (5) abgebildeten Bildes kleiner ist als ein in dem an die erste Schnittstellengruppe angeschlossenen Platenspeicher gespeicherten Bild.
DE1989613056 1988-03-10 1989-03-08 Bilddatenverarbeitung. Expired - Fee Related DE68913056T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB888805668A GB8805668D0 (en) 1988-03-10 1988-03-10 Image data handling

Publications (2)

Publication Number Publication Date
DE68913056D1 DE68913056D1 (de) 1994-03-24
DE68913056T2 true DE68913056T2 (de) 1994-06-01

Family

ID=10633160

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1989613056 Expired - Fee Related DE68913056T2 (de) 1988-03-10 1989-03-08 Bilddatenverarbeitung.

Country Status (4)

Country Link
EP (1) EP0332417B1 (de)
JP (1) JPH01315880A (de)
DE (1) DE68913056T2 (de)
GB (1) GB8805668D0 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9008946D0 (en) * 1990-04-20 1990-06-20 Crosfield Electronics Ltd Image processing apparatus
US5396597A (en) * 1992-04-03 1995-03-07 International Business Machines Corporation System for transferring data between processors via dual buffers within system memory with first and second processors accessing system memory directly and indirectly
US5506969A (en) * 1993-11-29 1996-04-09 Sun Microsystems, Inc. Method and apparatus for bus bandwidth management
US6374319B1 (en) 1999-06-22 2002-04-16 Philips Electronics North America Corporation Flag-controlled arbitration of requesting agents
JP5926667B2 (ja) * 2012-09-28 2016-05-25 株式会社三共 遊技機
JP6317380B2 (ja) * 2016-03-14 2018-04-25 株式会社三共 遊技機

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4174536A (en) * 1977-01-21 1979-11-13 Massachusetts Institute Of Technology Digital communications controller with firmware control
US4158235A (en) * 1977-04-18 1979-06-12 Burroughs Corporation Multi port time-shared associative buffer storage pool
US4470115A (en) * 1982-03-12 1984-09-04 Bell Telephone Laboratories Incorporated Input/output method
US4688168A (en) * 1984-08-23 1987-08-18 Picker International Inc. High speed data transfer method and apparatus

Also Published As

Publication number Publication date
DE68913056D1 (de) 1994-03-24
GB8805668D0 (en) 1988-04-07
JPH01315880A (ja) 1989-12-20
EP0332417B1 (de) 1994-02-16
EP0332417A1 (de) 1989-09-13

Similar Documents

Publication Publication Date Title
DE69232128T2 (de) Verfahren zur Auflösung von Okklusion in einem kombinierten Raster/kalligraphischen Anzeigesystem
DE69521256T2 (de) Verfahren zur Verwaltung der Speicherzuweisung in einem Druckersystem
DE69325334T2 (de) Vorrichtung zur Unterbrechungsverarbeitung
DE60302395T2 (de) System zur Verteilung von Objekten an mehreren Clients
DE4231158C5 (de) Verfahren und Einrichtung für die Zusammensetzung und Anzeige von Bildern
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE60015213T2 (de) Paralelle Wiedergabevorrichtung
DE3390315T1 (de) Anpassungsfähige Unterteilung eines Chachespeicherraums in Domainen
DE69230204T2 (de) Pufferspeicher und Verwaltungsverfahren dafür
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE3718218A1 (de) Bilddaten-verarbeitungsgeraet mit aufbereitungsfunktion
DE10164993B4 (de) ATM-Schalter und ATM-Schalt-Verfahren
DE3490148C2 (de) Vorrichtung zur Erzeugung unterschiedlicher Figuren in einem computergesteuerten Darstellungssystem
DE112005003222T5 (de) Dynamische Allokation eines Puffers auf mehrere Klienten bei einem Prozessor mit Threads
DE3248978C2 (de)
DE60031624T2 (de) Bildunterteilung die die Übertragung überlappter Bildteile verhindert
DE68913056T2 (de) Bilddatenverarbeitung.
DE69522900T2 (de) System und Verfahren zur Verarbeitung von Befehlen ohne Abfrage der Hardware durch die Software
DE69324460T2 (de) Verfahren und Anordnung zum Manupulieren einer Darstellung von Bewegt-Video-Bildern in einem Datenverarbeitungssystem
DE69912034T2 (de) Bildverarbeitungsgerät
DE102004012516A1 (de) Computersystem zur elektronischen Datenverarbeitung
DE69616636T2 (de) Datenstromablaufsteuerungssystem für einen Echtzeitdatenstromserver
EP0468973B1 (de) Monitorsteuerschaltung
DE60306388T2 (de) Verfahren und vorrichtung zur bilddatenverarbeitung unter verwendung von bildstreifen und zirkularadressierungsanordnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee