DE69031529T2 - Speichersteuerungssystem - Google Patents

Speichersteuerungssystem

Info

Publication number
DE69031529T2
DE69031529T2 DE69031529T DE69031529T DE69031529T2 DE 69031529 T2 DE69031529 T2 DE 69031529T2 DE 69031529 T DE69031529 T DE 69031529T DE 69031529 T DE69031529 T DE 69031529T DE 69031529 T2 DE69031529 T2 DE 69031529T2
Authority
DE
Germany
Prior art keywords
pointer
memory
data
block
incrementing
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
DE69031529T
Other languages
English (en)
Other versions
DE69031529D1 (de
Inventor
Tetsuya Sato
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Publication of DE69031529D1 publication Critical patent/DE69031529D1/de
Application granted granted Critical
Publication of DE69031529T2 publication Critical patent/DE69031529T2/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Speichersteuerungssystem mit einer Speichereinheit, die mehrere Speicherblöcke, auf die individuell zugegriffen werden kann, enthält.
  • Eine herkömmliche Datenverarbeitungsanlage weist, wie in Fig. 9 gezeigt, eine CPU (Central Processing Unit = Zentraleinheit) 10 (erste Verarbeitungseinrichtung) und eine DMA-(Direct Memory Access = Direktspeicherzugriff)-Steuerung 20 (zweite Verarbeitungseinrichtung) auf, so daß Daten unter der Kontrolle der DMA-Steuerung 20 ohne Einbeziehung der CPU 10 direkt zwischen einer Magnetplatte 40 und einem RAM (Random Access Memory = Direktzugriffsspeicher) 30b übertragen werden können, wobei die CPU während der Datenübertragung eine andere Verarbeitung, zum Beispiel die Verarbeitung von Daten in einem RAM 30a ausführen kann, wodurch sich die Datenverarbeitungsgeschwindigkeit erhöht.
  • Mit anderen Worten braucht die CPU 10 bei dieser Datenverarbeitungsanlage der DMA-Steuerung 20 nur anzugeben, daß Daten zu übertragen sind, und der Schreib/Lese-Zugriff auf den RAM 30b oder ähnliches, die Ausführung eines Programmes durch die CPU 10 und die Datenübertragung durch die DMA-Steuerung 20 werden parallel zueinander durchgeführt. Eine in Fig. 9 gezeigte Platten- Steuerung 50 führt die Zugriffssteuerung auf die Magnetplatte 40 unter der Kontrolle der DMA-Steuerung 20 aus.
  • Wenn eine bestimmte Datei auf der Magnetplatte 40 in dem RAM 30b bearbeitet wird und die Datensatzaktualisierung im RAM 30b der herkömmlichen Anlage durchgeführt wird, kann die CPU 10 die Datensatzaktualisierung im RAM 30b erst ausführen, wenn alle Sätze der bestimmten Datei auf der Magnetplatte 40 vollständig in RAM 30b bearbeitet sind.
  • Das liegt daran, daß bei einer Dateisuche alle Sätze der bestimmten Datei als durch die CPU 10 zu verarbeitende Objekte betrachtet werden. Es gibt jedoch viele Fälle, in denen eine Aktualisierung direkt mit den gelesenen Sätzen durchgeführt wird, ohne daß das Lesen aller Datensätze in den RAM 30b erforderlich ist. Ein möglicher Fall ist, daß ein vorbestimmter Wert sequentiell zu den numerischen Daten vorbestimmter Datenfelder jedes Datensatzes hinzugefügt wird.
  • Das als Referenz angeführte Dokument EP-A-0 261 751 gibt ein paralleles Speicherzugriffsystem an, das den gleichzeitigen Zugriff auf einen Speicher 16 durch einen von zwei Digitalisierern 12, eine Displaysteuerung 18 und einen Mikroprozessor 24 gestattet.
  • Zu diesem Zweck ist der Speicher 16 in eine "ungerade" Bank 16a für das Speichern von Daten an allen ungeraden Speicheradressen der Speicherraums und in eine "gerade" Bank 16b für das Speichern von Daten an allen geraden Speicheradressen des Speicherraums organisiert. Auf jede der beiden Banken kann in dem Sinn unabhängig zugegriffen werden, daß jede Bank unabhängig mit der MMU 14 über separate Daten, Adressen und Steuerleitungen kommuniziert. Wenn eine Datenverarbeitungseinrichtung (wie ein Digitalisierer 12, eine Displaysteuerung 18 oder ein Mikroprozessor 24) eine Datenwortsequenz in oder aus kontinuierlichen Sequenzen von Speicheradressen schreibt oder liest, wird alternierend auf die Bänke 16a und 16b zugegriffen. Wenn zum Beispiel das erste Datenwort einer Sequenz an einer ungeraden Adresse in der ungeraden Speicherbank 16a geschrieben wird, dann wird ein zweites Datenwort an die nächste höhere (gerade) Adresse in der geraden Speicherbank 16b, das dritte Datenwort der Sequenz wird in die nächste höhere Adresse in der ungeraden Speicherbank 16a geschrieben, usw. Wenn zwei Datenverarbeitungseinrichtungen versuchen, gleichzeitig Daten in den Speicher 16 zu schreiben, steuert die MMU den Zugriff auf die gerade und die ungerade Bank, so daß in einem Speicherzugrlffzyklus eine erste Datenverarbeitungseinrichtung in die ungerade Bank 16a und die zweite Datenverarbeitungseinrichtung in die gerade Bank 16b schreibt, und im darauffolgenden Speicherzugriffzklus die erste Datenverarbeitungseinrichtung in die gerade Bank und die zweite Datenverarbeitungseinrichtung in die ungerade Bank schreibt. Bei dieser Anordnung ist jede Datenverarbeitungseinrichtung in der Lage, eine Datensequenz in den Speicher 16 zu schreiben (oder eine Datensequenz aus dem Speicher zu lesen) ohne mit der
  • Rate in Konflikt zu geraten, mit der die andere Einrichtung eine Sequenz in den Speicher schreibt (oder aus dem Speicher liest).
  • In Übereinstimmung mit der durch EP-A-0 261 751 angegeben Anordnung wird der Zugriff auf den gemeinsamen Speicher 16 durch eine Speicherverwaltungseinheit 14 gesteuert. Die Speicherverwaltungseinheit konvertiert die konkurrierenden Zugriffsanforderungen aus den verschiedenen Datenverarbeitungseinrichtungen (Digitalisierer 12, Displaysteuerung 18, Mikroprozessor 24) um sicherzustellen, daß zwei konkurrierende Einrichtungen gleichzeitig auf verschiedene Speicherbänke 16a, 16b zugreifen.
  • Mit Bezug auf diesen Stand der Technik ist es Aufgabe der vorliegenden Erfindung, ein vereinfachtes Speichersteuerungssystem anzugeben, mit dem ein gleichzeitiger Zugriff zweier verschiedener Verarbeitungseinrichtungen auf einen gemeinsamen Speicher möglich ist.
  • Diese Aufgabe wird durch den Gegenstand des Patentanspruchs 1 und durch den Gegenstand des Patentanspruchs 4 gelöst.
  • Die vorliegende Erfindung wird in der folgenden Beschreibung näher erläutert, die auf die beigefügten Zeichnungen Bezug nimmt, in denen:
  • Fig. 1 ein Blockdiagramm eines Speichersteuerungssystems ist,
  • Fig. 2 ein detailliertes Blockdiagramm eines Busschaltungssystems ist,
  • Fig. 3 ein Flußdiagramm ist, das den Verarbeitungsablauf eines ersten Prozessors zeigt,
  • Fig. 4 ein Flußdiagramm ist, das den Verarbeitungsablauf eines zweiten Prozessors zeigt,
  • Fig. 5 ist ein Strukturblockdiagramm einer Datenaktualisierungseinrichtung, bei der die vorliegende Erfindung angewendet ist,
  • Fig. 6 ist ein Flußdiagramm, das den Verarbeitungsablauf einer CPU zeigt,
  • Fig. 7 ist ein Flußdiagramm, das den Verarbeitungsablauf einer Datenübertragungssteuereung zeigt,
  • Fig. 8 ist eine Zeittafel, die den zeitlichen Verarbeitungsablauf erläutert, und
  • Fig. 9 ist ein Diagramm, das den Stand der Technik erläutert.
  • Die erste bevorzugte Ausführungsform der vorliegenden Erfindung wird im folgenden mit Bezug auf Fig. 1 bis 4 beschrieben.
  • Fig. 1 ist ein Blockdiagramm. das die Anordnung eines der vorliegenden Erfindung entsprechenden Speichersteuerungssystems darstellt.
  • Dieses Speichersteuerungssystem weist einen ersten Prozessor 2 auf, der mit einer Magnetplatte 1 zum Speichern einer Änderungsdatei oder ähnlichem verbunden ist, und einen zweiten Prozessor 4, der mit einer Magnetplatte 3 zum Speichern einer Stammdatei oder ähnlichem verbunden ist. Beide Einrichtungen 2 und 4 sind über eine Schaltung 5, die zwischen verschiedenen Bussen schaltet, mit einem RAM 6 verbunden, der mehrere Speicherblöcke aufweist. Diese Einrichtungen 2 und 4 sind auch beide mit einem Zeigerspeicher 7 verbunden, der verschiedene Typen von Zeigern speichert. Der erste Prozessor 2 kann auf einen Speicherblock im RAM 6 zugreifen, der durch den ersten Zeiger P&sub1; der Zeigerspeichers 7 angegeben wird, um Daten in dem entsprechenden Speicherblock aufgrund der Daten der auf der Platte 1 gespeicherten Änderungsdatei zu aktualisieren. Der zweite Prozessor 4 kann auf einen Speicherblock im RAM 6 zugreifen, der durch den zweiten Zeiger P&sub2; des Zeigerspeichers 7 angegeben wird, um Daten aus diesem Speicherblock auszulesen und an die Platte 3 weiterzugeben. Wie in Fig. 1 zu erkennen ist, enthält der RAM 6 vier Speicherblöcke #1, #2, #3 und #4, wobei eine Busleitung (einschließlich einer Bussteuerungsleitung und einer Datenbusleitung) mit jedem der Blöcke verbunden sind, so daß separat auf diese Speicherblöcke zugegriffen werden kann. Mit anderen Worten sind die Adressen der einzelnen Speicherblöcke, die als unabhängige Speicher dienen können, einander benachbart, wobei ihre Adreßbereiche mit dem ersten Block #1 beginnend die Adressen "0000 - 3FFFF", "40000 - 7FFFF", "80000 - BFFFF" und "COOOO - FFFFF" aufweisen. Es ist deshalb möglich, in jedem Speicherblock Daten benachbart über mehrere Speicherblöcke zu speichern, was es gestattet, alle Speicherblöcke so zu behandeln, als ob es sich um einen einzigen Speicher handele.
  • Wenn der erste Prozessor 2 einen dem ersten Zeiger P&sub1; entsprechenden Speicherblock angibt, verbindet die Busschaltung 5 die Busleitung des angegeben Speicherblocks mit der Busleitung des ersten Prozessors 2. Wenn der zweite Prozessor 4 einen dem zweiten Zeiger P&sub2; entsprechenden Speicherblock angibt, verbindet die Bussohaltung 5 die Busleitung dieses angegebenen Speicherblocks mit der Buseitung des zweiten Prozessors 4.
  • Fig. 2 ist ein detailliertes Blockdiagramm der Busschaltung 5.
  • Die Busleitungen aus den einzelnen Speicherböcken #1 bis #4 sind mit einer Seite der Selektoren 51 bis 54 verbunden, die zusammen mit den Speicherblöcken vorgesehen sind. Die Busleitungen aus dem ersten Prozessor 2 und dem zweiten Prozessor 4 sind wahlweise mit der anderen Seite der Selektoren 51 bis 54 verbunden. Ein Signal P&sub1; aus dem ersten Prozessor 2, das einen Speicherblock angibt, wird in einen Decodierer 55 eingegeben, der den Wert des Signals decodiert, um eines der Bestätigungssignale pH bis P&sub1;&sub4; auszugeben. Ein Signal P&sub2; aus dem zweiten Prozessor 4, das einen Speicherblock angibt, wird in einen Decodierer 56 eingegeben, der den Wert des Signais decodiert, um eines der Bestätigungssignale P&sub2;&sub1; bis P&sub2;&sub4; auszugeben. Auf den Empfang des Bestätigungssignals P&sub1;&sub1; aus dem Decodierer 55, verbindet der Selektor 51 die Busleitung aus dem Speicherblock #1 mit der Busleitung aus dem ersten Prozessor 2, um dem ersten Prozessor 2 den Zugriff auf diesen Speicherblock #1 zu erlauben. Auf den Empfang des Bestätigungssignals P&sub2;&sub1; aus dem Decodierer 56, verbindet der Selektor 51 die Busleitung aus dem Speicherblock #1 mit der Busleitung aus dem zweiten Prozessor 4, um dem zweiten Prozessor 4 den Zugriff auf diesen Speicherblock #1 zu erlauben. Die anderen Selektoren 52 bis 54 funktionieren in gleicher Weise wie der Selektor 51.
  • Ein Operationsbeispiel des Speichersteuerungssystems wird weiter unten beschrieben. In diesem Beispiel wird der Inhalt der über die einzelnen Speicherblöcke im RAM 6 verteilt gespeicherten Stammdatei durch die Änderungsdatei auf der Platte 1, die mit dem ersten Prozessor 2 verbunden ist, aktualisiert, und der aktualisierte Inhalt der Stammdatei wird für die Speicherung auf der Platte 3, die mit dem zweiten Prozessor verbunden ist, weitergeleitet.
  • Fig. 3 ist ein Flußdiagramm, das die von dem ersten Prozessor 2 bei der oben genannten Operation durchgeführte Verarbeitung zeigt.
  • Vorausgesetzt, daß "1" als der Anfangswert des ersten Zeigers P&sub1; und des zweiten Zeigers P&sub2; im Zeigerspeicher 7 gesetzt ist, startet der erste Prozessor 2 die Verarbeitung, wie in Fig. 3 gezeigt. Zuerst gibt der erste Prozessor 2 einen dem ersten Zeiger P&sub1; entsprechenden Speicherblock an (Schritt A1). Das heißt, daß der erste Prozessor 2 den Wert des ersten Zeigers P&sub1; aus dem Zeigerspeicher 7 ausliest und den Wert an den Decodierer 55 der Busschaltung 5 weiterleitet Der Decodierer 55 decodiert den Wert des ersten Zeigers P&sub1;, der in diesem Fall "1" ist, und leitet das Bestätigungssignal P&sub1;&sub1; an den Selektor 51. Das hat zur Folge, daß der Selektor 51 die Busleitung aus dem ersten Speicherblock #1 mit der Busleitung aus dem ersten Prozessor 2 verbindet. Bei Schritt A2 werden dann alle Daten in dem angegebenen Speicherblock aktualisiert. Mit anderen Worten greift der erste Prozessor 2 auf den Speicherblock #1 zu, um aus diesem sequentiell Daten auszulesen, aktualisiert die Daten aufgrund der Daten in der Änderungsdatei auf der Platte 1, und schreibt die aktualisierten Daten wieder in den Speicherblock #1. Wenn die Aktualisierung aller Daten in dem angegebenen Speicherblock auf diese Weise abgeschlossen ist, wird in Schritt A3 bestimmt, ob der erste Zeiger P&sub1; ein Endzeiger ist oder nicht, d.h. ob der Wert des Zeigers P&sub1; "4" ist, was den letzten Speicherblock #4 angibt. Wenn die Bestimmung negativ ausfällt (NEIN), wird der erste Zeiger P&sub1; in Schritt A4 erhöht oder (P&sub1; + 1 T P&sub1;) wird berechnet und der erhöhte erste Zeiger P&sub1; wird in den Zeigerspeicher 7 geschrieben. Nach Schritt A4 kehrt der Verarbeitungsablauf wieder zu Schritt A1 zurück. In diesem Fall wird der erste Zeiger P&sub1; in Schritt A4 auf "2" erhöht, und der zweite Speicherblock #2 wird in Schritt A1 angegeben. Dieselben Routinen werden danach wiederholt und die gesamte Verarbeitung wird beendet, wenn in Schritt A3 bestimmt wird, daß der erste Zeiger P&sub1; den letzten Speicherblock #4 angibt.
  • Mit anderen Worten greift der Prozessor 2 sequentiell auf die Speicherblöcke #1 bis #4 zu und aktualisiert Daten unter Verwendung der auf der Platte 1 gespeicherten Änderungsdatei.
  • Fig. 4 ist ein Flußdiagramm, das den Verarbeitungsablauf des zweiten Prozessors 4 zeigt. Zuerst wird in Schritt B1 bestimmt, ob der zweite Zeiger P&sub2; im Zeigerspeicher 7 kleiner ist als der erste Zeiger P&sub1; Dieser Schritt wird wiederholt bis der zweite Zeiger P&sub2; kleiner ist als der erste Zeiger P&sub1; oder bis der erste Prozessor 2 die Daten in dem angegebenen Speicherblock aktualisiert, wobei der erste Zeiger P&sub1; erhöht wird. Wenn bestimmt wird, daß der zweite Zeiger P&sub2; kleiner ist als der erste Zeiger P&sub1;, dann wird in Schritt B2 ein dem zweiten Zeiger P&sub2; entsprechender Speicherblock angegeben. Das heißt, daß der zweite Prozessor 4 den Wert des zweiten Zeigers P&sub2; aus dem Zeigerspeicher 7 ausliest und an den Decodierer 56 des Busschalters 5 weiterleitet Der Decodierer 56 decodiert den Wert des zweiten Zeigers P&sub2;, in diesem Fall "1", und leitet das Bestätigungssignal P&sub2;&sub1; zu dem Selektor 51. Daraus folgt, daß der Selektor 51 die Busleitung aus dem Speicherblock #1 mit der Busleitung aus dem zweiten Prozessor 4 verbindet. Der zweite Prozessor 4 greift dann In Schritt B3 auf den angegebenen Speicherblock zu, liest alle Datenteile in diesem Speicherblock sequentiell aus und überträgt sie zu der Platte 3. Wenn die Übertragung aller Daten in dem angegebenen Speicherblock auf diese Weise abgeschlossen ist, wird in Schritt B4 bestimmt, ob der zweite Zeiger P&sub2; ein Endzeiger ist oder nicht, d.h. ob der Wert des zweiten Zeigers P&sub2; "4" ist oder nicht, was den letzten Speicherblock #4 angibt. Wenn die Bestimmung negativ ausfällt (NEIN), wird der zweite Zeiger in Schritt B5 erhöht.
  • Insbesondere prüft der zweite Prozessor während des Bestimmens eines Speicherblocks, ob die Datenaktualisierung für diesen Speicherblock durch den ersten Prozessor 2 durchgeführt wurde, und greift, wenn die Bestimmung positiv ausfällt, sequentiell auf den aktualisierten Speicherblock zu und überträgt den Inhalt auf die Platte 3.
  • Wenn der erste Prozessor 2 die Daten im RAM 6 aktualisiert und der zweite Prozessor 4 die aktualisierten Daten überträgt, können der erste Prozessor 2 und der zweite Prozessor 4, wie oben beschrieben, separat auf jeden Speicherblock zugreifen. Selbst wenn der erste Prozessor 2 das Aktualisieren aller Daten im RAM 6 noch nicht abgeschlossen hat, kann der zweite Prozessor 4 bereits auf die Datenblöcke im RAM 6 zugreifen, für die die Aktualisierung der Daten bereits abgeschlossen ist. Mit anderen Worten können der erste Prozessor 2 und der zweite Prozessor 4 eine simultane oder parallele Verarbeitung durchführen, was eine hohe Verarbeitungsgeschwindigkeit zur Folge hat.
  • Mit Bezug auf Fig. 5 und 6 wird im folgenden die zweite Ausführungsform der vorliegenden Erfindung mit einer Vorrichtung für die Aktualisierung von Daten, bei der das Speichersteuerungssystem der vorliegenden Erfindung angewendet ist, beschrieben.
  • Fig. 5 ist ein Blockstrukturdiagramm der Datenaktualisierungsvorrichtung mit einer CPU 11, einer Datenübertragungssteuerung 12, den RAMS 13 und 14, einer Magnetplatte 15, einer Plattensteuerung 16, einem Leseblockzeiger RP, einem Schreibblockzeiger WP, einem Verarbeitungsblockzeiger UP und einem Selektor 18.
  • Die CPU 11 steuert die Verarbeitung, wie zum Beispiel die Registrierung der im RAM 13 entwickelten Gesamtdaten eines Tages in einer Gesamtdatei und das Hinzufügen der Gesamtdaten eines Tages in der Gesamtdatei zu vorausgehenden Gesamtdaten in einer monatlichen Gesamtdatei, die im RAM 14 entwickelt wird.
  • Die Dateniibertragungssteuerung 12 überträgt Daten zwischen der Magnetplatte 15 und dem RAM 14 in Antwort auf einen Befehl aus der CPU 11. In diesem Fall überträgt die Datenübertragungssteuerung 12 Daten aus der Magnetplatte 15 zu dem RAM 14, nachdem sie einen Lesebefehl aus der CPU 11 empfangen hat, und überträgt Daten aus dem RAM 14 zu der Magnetplatte 15, nachdem sie einen Schreibbefehl empfangen hat. Diese Datenübertragung wird blockweise ausgeführt, wie weiter unten erläutert wird. Die Datenübertragungssteuerung 12 steuert lediglich die Datenübertragung, und es ist die Plattensteuerung 16, die auf die Magnetplatte 15 zugreift.
  • Der RAM 14 ist in mehrere Speicherblöcke unterteilt, auf die individuell über ein durch die Busschalung 17 vorgenommenes Schalten zwischen den Bussen zugegriffen werden kann. Wenn die Datenübertragungssteuerung 12 Daten blockweise aus der Magnetplatte 15 ausliest, dann schaltet die Busschaltung zwischen den Bussen, so daß die CPU 11 auf den Block zugreifen kann, für den das Lesen der Daten bereits abgeschlossen ist. Die CPU 11 führt eine Verarbeitung für die Datenaktualisierung für die Daten in diesem zugreifbaren Speicherblock durch. Selbst während des Datenaktualisierens fährt die Datenübertragungssteuerung fort, Daten in die anderen Blöcke einzulesen.
  • Der Leseblockzeiger RP, der Schreibblockzeiger WP und der Verarbeitungsblockzeiger UP werden für eine derartige Steuerung verwendet. Der Selektor 18 wählt entweder den Leseblockzeiger RP oder den Schreibblockzeiger WP aus und gibt ihn an die Busschaltung 17 aus. Da die Busschaltung 17 denselben Aufbau wie die Busschaltung 5 in Fig. 2 aufweist, wird hier auf eine Beschreibung der Bussohaltung 17 verzichtet.
  • Die Operation der vorliegenden Ausführungsform wird mit Bezug auf Fig. 6 und 8 beschrieben. Da die Operation der CPU 11 in Fig. 6 und die der Datenübertragungssteuerung 12 in Fig. 7 sich aufeinander beziehen, so daß diese Operationen ohne ein klares Verständnis der gegenseitigen operationalen Beziehungen schwer nachzuvollziehen sind. Um die Operationen verständlicher zu machen, wird die gegenseitige operationale Beziehung beschrieben, nachdem die Operationen mit Bezug auf die Flußdiagramme 6 und 7 erläutert wurden.
  • Die CPU 11 setzt einen Anfangswert "1" für den Verarbeitungsblockzeiger UP und leitet einen Lesestartbefehl zu der Datenübertragungssteuerung 12 (Schritt S1). Die CPU 11 wartet dann auf einen Aktualisierungsstartbefehl aus der Datenübertragungssteuerung 12 (Schritt S2). Auf den Empfang des Aktualisierungsstartbefehls aus der Datenübertragungssteuerung 12 führt die CPU 11 eine vorbestimmte Aktualisierungsverarbeitung für die Daten in diesem Block im RAM 14 aus, der die Nummer aufweist, die durch den Verarbeitungsblockzeiger UP angegeben wird (Schritt S3).
  • Dann wird der Inhalt des Verarbeitungsblockzeigers UP um "1" erhöht (Schritt 4), und es wird bestimmt, ob der Inhalt der Verarbeitungsblockzeigers UP mit dem Inhalt des Leseblockzeigers RP übereinstimmt (Schritt S5).
  • Wenn diese Inhalte nicht miteinander übereinstimmen, ist unter den Blöcken, auf die für das Datenesen zugegriffen wurde, immer noch ein Block vorhanden, für den noch keine Aktualisierung durchgeführt wurde, wie in der weiter unten folgenden Beschreibung verdeutlicht wird. Der Verarbeitungsablauf kehrt deshalb zu Schritt S3 zurück und fährt mit der Datenaktualisierung für die Blöcke fort, auf die für das Einlesen zugegriffen wurde.
  • Wenn die Inhalte jedoch miteinander übereinstimmen, was bedeutet, daß die Datenaktualisierung für die Blöcke abgeschlossen ist, auf die bereits für das Einlesen zugegriffen wurde, wie weiter unten beschreiben wird, dann leitet die CPU einen Schreiblesebefehl zu der Datenübertragungssteuerung 12 (Schritt S6), was die ganze Operation beendet.
  • Im folgenden wird die Operation der Datenübertragungssteuerung 12 beschrieben.
  • Die Datenübertragungssteuerung 12 setzt einen Anfangswert "1" für den Leseblockzeiger RP und den Schreibblockzeiger WP und wartet auf einen Lesestartbefehl aus der CPU 11 (Schritt S51). Auf den Empfang des Lesestartbefehls aus der CPU 11 liest die Datenübertragungssteuerung 12 zu aktualisierende Daten von der Magnetplatte 15 in den Block im RAM 14, der durch den Schreibblockzeiger RP angegeben wird (Schritt S52). Nach dem Zugreifen auf die eingelesenen Daten für einen Block, wird der Inhalt des Leseblockzeigers RP um "1" erhöht (Schritt S53), und ein Aktualisierungsstartbefehl wird an die CPU 11 geleitet (Schritt S54).
  • Dann wird bestimmt, ob die zu aktualisierenden Daten, die eingelesen werden sollen, auf der Magnetplatte 15 vorhanden sind oder nicht (Schritt S55).
  • Wenn derartige Daten vorhanden sind, liest die Datenübertragungssteuerung 12 die zu aktualisierenden Daten von der Magnetplatte 15 in einen durch den Leseblockzeiger RP angegebenen Block (Schritt S56). Nach dem Lesen der Daten für einen Block wird der Inhalt der Leseblockzeigers RP um "1" erhöht (Schritt S57) und der Verarbeitungsablauf kehrt zu Schritt S55 zurück.
  • Wenn in Schritt S55 bestimmt wird, daß keine weiteren zu aktualisierenden Daten, die eingelesen werden sollten, auf der Magnetplatte 15 vorhanden sind oder wenn die zu aktualisierenden Daten eingelesen sind, wartet die Datenübertragungs- Steuerung 12 auf einen Schreibstartbefehl aus der CPU (Schritt S58).
  • Auf den Empfang des Schreibstartbefehls überträgt die Datenübertragungssteuerung 12 Daten in einem durch den Schreibblockzeiger WP angegebenen Block, oder die Daten für einen durch die CPU 11 aktualisierten Block zu der Magnetplatte 15 (Schritt S59). Nach der Übertragung der Daten für einen Block, wird der Inhalt des Schreibblockzeigers WP um "1" erhöht (Schritt S60).
  • Dann wird bestimmt, ob die Inhalte des Schreibblockzeigers WP und des Leseblockzeigers RP miteinander übereinstimmen (Schritt S61).
  • Wenn diese Inhalte nicht miteinander übereinstimmen, ist unter den Blöcken, auf die für die Aktualisierung zugegriffen wurde, immer noch ein Block vorhanden, für den noch keine Übertragung zu der Magnetplatte 15 ausgeführt wurde, was weiter unten verdeutlicht wird. Der Verarbeitungsablauf kehrt deshalb zu Schritt S59 zurück und fährt mit der Datenübertragung für die Blöcke fort, auf die für die Datenaktualisierung zugegriffen wurde.
  • Wenn die Inhalte jedoch miteinander übereinstimmen, was bedeutet, das die Datenübertragung für die Blöcke, auf die bereits für die Datenaktualisierung zugegriffen wurde, abgeschlossen ist, wie weiter unten beschrieben wird, dann beendet die Datenübertragungssteuerung 12 die ganze Operation.
  • Die in Fig. 6 und 7 gezeigten Routinen werden im folgenden mit Bezug auf Fig. 8 beschrieben.
  • Zuerst gibt die CPU 11 einen Lesestartbefehl an die Datenübertragungssteuerung 12 aus (siehe "a" in Fig. 8). Die Datenübertragungssteuerung 12 (der Einfachheit halber im Diagramm mit FCU 12 bezeichnet) liest die Daten in den Block mit der Blocknummer, die durch den Leseblockzeiger RP angegeben wird (siehe "b" und "c"). Zu diesem Zeitpunkt leitet die Datenübertragungssteuerung 12 nach Abschluß des Lesens der Daten in den ersten Block einen Aktualisierungsstartbefehl zu der CPU 11.
  • Die CPU 11 führt dann eine Datenaktualisierung, wie das Hinzufügen von Daten im RAM 13 zu den gelesenen Daten in dem Block aus, der durch den Verarbeitungsblockzeiger UP angegeben wird (siehe "d" und "e"). Mit anderen Worten werden das Lesen der Daten in dem angegebenen Block durch die Datenübertragungssteuerung 12 und die Datenaktualisierung dieser gelesenen Daten durch die CPU 11 parallel zueinander durchgeführt, wie aus dem Diagramm ersichtlich ist. Wenn der Inhalt des Verarbeitungsblockzeigers UP mit dem des Leseblockzeigers RP übereinstimmt, leitet die CPU 11 eine Schreibstartbefehl zu der Datenübertragungssteuerung 12 (siehe "f").
  • Auf den Empfang dieses Schreibstartbefehls überträgt die Datenübertragungssteuerung 12 aktualisierte Daten in dem durch den Schreibblockzeiger WP angegebenen Block zu der Magnetplatte 15 (siehe "g" und "h"). Wenn der Inhalt des Schreibblockzeigers WP mit dem des Leseblockzeigers RP übereinstimmt, stoppt die Datenübertragungssteuerung 12 die Übertragung der aktualisierten Daten.
  • Der Einsevorgang und die Datenaktualisierung der gelesenen Daten werden gleichzeitig in der oben beschriebenen Weise parallel zueinander durchgeführt.
  • Die Datenaktualisierung muß nicht notwendigerweise von dem Block vorgenommen werden, in den bereits Daten gelesen wurden; die Datenaktualisierung kann in jeder beliebigen Reihenfolge durchgeführt werden, solange das Datenlesen in den Zielblöcken abgeschlossen ist.

Claims (4)

1. Speichersteuerungssystem mit einer Speichereinrichtung, die mehrere Speicherblöcke (6) enthält, wobei auf jeden Speicherblock individuell zugegriffen werden kann, mit:
(A) einer ersten und einer zweiten Verarbeitungseinrichtung (2,4) die separat betrieben werden können, und
(B) einer Zeigerspeichereinrichtung (7) zum Speichern eines ersten Zeigers (Pl) und eines zweiten Zeigers (P2), wobei
(C) die erste Verarbeitungseinrichtung eine erste Angabeeinrichtung (Schritt A1) zum Angeben eines der Speicherblöcke durch den erste Zeiger, eine erste Zugriffseinrichtung (Schritt A2) zum Zugreifen auf den angegebenen Speicherblock, eine erste Erhöhungseinrichtung (Schritt A4) zum Erhöhen des ersten Zeigers, und eine erste Wiederholungseinrichtung zum Wiederholen des Angebens, Zugreifens und Erhöhens, die jeweils durch die erste Angabeeinrichtung, die erste Zugriffseinrichtung und die erste Erhöhungseinrichtung vorgenommen werden, enthält, und wobei
(D) die zweite Verarbeitungseinrichtung eine Vergleichseinrichtung (Schritt B1) zum Vergleichen des ersten Zeigers mit dem zweiten Zeiger, eine zweite Angabeeinrichtung (Schritt B2) zum Angeben eines der Speicherblöcke durch den zweiten Zeiger, wenn der zweite Zeiger kleiner ist als der erste Zeiger, eine zweite Zugriffseinrichtung (Schritt B3) zum Zugreifen auf einen durch den zweiten Zeiger angegebenen Speicherblock, eine zweite Erhöhungseinrichtung (Schritt B5) zum Erhöhen des zweiten Zeigers, und eine Wiederholungseinrichtung zum Wiederholen des Vergleichens, des Angebens, des Zugreifens und des Erhöhens, die jeweils durch die Vergleichseinrichtung, die zweite Angabeeinrichtung, die zweite Zugriffseinrichtung und die zweite Erhöhungseinrichtung vorgenommen werden, enthält.
2. Speichersteuerungssystem nach Anspwch 1, dadurch gekennzeichnet, daß (E) die erste Wiederholungseinrichtung Einrichtungen zum Wiederholen des Angebens, des Zugreifens und des Erhöhens bis auf alle notwendigen Speicherblöcke zugegriffen wurde enthält, und
(F) die zweite Wiederholungseinrichtung Einrichtungen zum Wiederholen des Vergleichens, des Angebens, des Zugreifens und des Erhöhens bis der zweite Zeiger mit dem ersten Zeiger übereinstimmt enthält.
3. Speichersteuerungssystem nach Anspruch 1, dadurch gekennzeichnet, daß (G) die erste Angabeeinrichtung eine erste Verbindungseinrichtung zum Verbinden einer Busleitung eines der Speicherblöcke, der dem ersten Zeiger entspricht, mit einer Busleitung der ersten Verarbeitungseinrichtung, und
(H) die zweite Angabeeinrichtung weiterhin eine zweite Verbindungseinrichtung zum Verbinden der Busleitung eines der Speicherblöcke, der dem zweiten Zeiger entspricht, mit einer Busleitung der zweiten Verarbeitungseinrichtung.
4. Speichersteuerungssystem mit
(A) einer externen Speichereinrichtung (15) zum Speichern mehrerer Datenblöcke,
(B) einer internen Speichereinrichtung (14) mit mehreren Speicherblöcken, auf die blockweise zugegriffen werden kann,
(C) einer Zeigerspeichereinrichtung zum Speichern eines ersten Zeigers (Leseblockzeiger), eines zweiten Zeigers (Verabeitungsblockzeiger) und eines dritten Zeigers (Schreibblockzeiger),
(D) einer Datenübertragungssteuerungseinrichtung (12), und
(E) einer Aktualisierungseinrichtung (11), wobei
(F) die Datenübertragungssteuerungseinrichtung eine Ausleseeinrichtung (Schritt S52, S56) zum Auslesen eines der Datenblöcke aus der externen Speichereinrichtung, eine Speichereinrichtung zum Speichern des ausgelesenen Datenblocks in einem der Speicherblöcke, der dem ersten Zeiger entspricht, eine erste Erhöhungseinrichtung (Schritt S53, S57) zum Erhöhen des ersten Zeigers, wenn das Speichern abgeschlossen ist, und eine erste Wiederholungseinrichtung zum Wiederholen des Auslesens, des Speicherns, des Erhöhens durch jeweils die Ausleseeinrichtung, die Speichereinrichtung und die erste Erhöhungseinrichtung bis kein auszulesender Datenblock mehr vorhanden ist, enthalt,
(G) die Aktualisierungseinrichtung eine Aktualisierungseinrichtung (Schritt S3) zum Aktualisieren eines in einem der Speicherblöcke gespeicherten Datenblocks, wenn der zweite Zeiger kleiner als der erste Zeiger ist, eine zweite Erhöhungseinrichtung (Schritt S4) zum Erhöhen des zweiten Zeigers, wenn das Aktualisieren abgeschlossen ist, und eine zweite Wiederholungseinrichtung zum Wiederholen des Aktualisierens und des Erhöhens, die jeweils durch die Aktualisierungseinrichtung und die zweite Erhöhungseinrichtung ausgeführt werden, bis der zweite Zeiger mit dem ersten Zeiger übereinstimmt, enthält, und wobei
(H) die Datenübertragungssteuerungseinrichtung weiterhin eine Schreibeinrichtung (Schritt S59) zum Schreiben des aktualisierten Datenblocks, der in einem der Speicherblöcke, der einem dritten Zeiger entsprechend in der externen Speichereinrichtung gespeichert ist, eine dritte Erhöhungseinrichtung (Schritt S60) zum Erhöhen des dritten Zeigers, wenn das Schreiben abgeschlossen ist, und einer dritten Wiederholungseinrichtung zum Wiederholen des Schreibens und des Erhöhens, die jeweils durch die Schreibeinrichtung und die dritte Erhöhungseinrichtung ausgeführt werden, bis der dritte Zeiger mit dem ersten Zeiger übereinstimmt, enthält.
DE69031529T 1989-11-01 1990-10-30 Speichersteuerungssystem Expired - Fee Related DE69031529T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1285658A JPH03147013A (ja) 1989-11-01 1989-11-01 データ更新装置

Publications (2)

Publication Number Publication Date
DE69031529D1 DE69031529D1 (de) 1997-11-06
DE69031529T2 true DE69031529T2 (de) 1998-02-19

Family

ID=17694386

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69031529T Expired - Fee Related DE69031529T2 (de) 1989-11-01 1990-10-30 Speichersteuerungssystem

Country Status (4)

Country Link
US (1) US5210852A (de)
EP (1) EP0426111B1 (de)
JP (1) JPH03147013A (de)
DE (1) DE69031529T2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04363745A (ja) * 1991-05-17 1992-12-16 Toshiba Corp Dmaコントローラ
EP0600623B1 (de) * 1992-12-03 1998-01-21 Advanced Micro Devices, Inc. Servoregelkreissteuerung
JPH07121181A (ja) * 1993-10-27 1995-05-12 Sony Corp 音声情報処理装置
US5946696A (en) * 1996-05-31 1999-08-31 Microsoft Corporation Object property lists
US5774135A (en) * 1996-11-05 1998-06-30 Vlsi, Technology, Inc. Non-contiguous memory location addressing scheme
US6026417A (en) * 1997-05-02 2000-02-15 Microsoft Corporation Desktop publishing software for automatically changing the layout of content-filled documents
JP5235692B2 (ja) * 2009-01-15 2013-07-10 三菱電機株式会社 データアクセス装置及びデータアクセスプログラム
US8671082B1 (en) 2009-02-26 2014-03-11 Netapp, Inc. Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server
JP6653710B2 (ja) 2015-10-02 2020-02-26 株式会社日立製作所 計算機および計算機の制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3955180A (en) * 1974-01-02 1976-05-04 Honeywell Information Systems Inc. Table driven emulation system
US4495569A (en) * 1982-06-28 1985-01-22 Mitsubishi Denki Kabushiki Kaisha Interrupt control for multiprocessor system with storage data controlling processor interrupted by devices
US4636974A (en) * 1983-10-04 1987-01-13 Hughes Aircraft Company Method and apparatus for transferring data between operationally-juxtaposed memories and knowledge-retrieving systems utilizing same
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
US4837688A (en) * 1986-07-25 1989-06-06 International Business Machines Corporation Multi-channel shared resource processor
US4805094A (en) * 1986-08-27 1989-02-14 American Telephone & Telegraph Company Multi-channel memory access circuit
EP0261751A3 (de) * 1986-09-25 1990-07-18 Tektronix, Inc. Simultanes Speicherzugriffssystem
US4818932A (en) * 1986-09-25 1989-04-04 Tektronix, Inc. Concurrent memory access system
US4967392A (en) * 1988-07-27 1990-10-30 Alliant Computer Systems Corporation Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines

Also Published As

Publication number Publication date
DE69031529D1 (de) 1997-11-06
EP0426111B1 (de) 1997-10-01
EP0426111A2 (de) 1991-05-08
EP0426111A3 (en) 1992-03-18
US5210852A (en) 1993-05-11
JPH03147013A (ja) 1991-06-24

Similar Documents

Publication Publication Date Title
DE3224034C2 (de)
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE3338345C2 (de)
DE1956604C3 (de) Datenverarbeitungsanlage
DE2350884C2 (de) Adreßumsetzungseinheit
DE3688505T2 (de) Multiportspeichersystem.
DE2227882C2 (de) Virtuelle Speicheranordnung
DE68916167T2 (de) Adressenspeichersperrung mit priorität für einen gemeinsamen speicher.
DE2523414C3 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE69031967T2 (de) Informationsverarbeitungsanordnung
DE2310631C3 (de) Speicherhierarchie für ein Datenverarbeitungssystem
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
DE68928333T2 (de) Pufferspeicher, der zur Speicherung von Befehls- und Datenblöcken auf verschiedene Blockgrössen geeignet ist
DE69031529T2 (de) Speichersteuerungssystem
DE68927202T2 (de) Paralleler Prozessor
DE2117581C3 (de) Einrichtung zur Adressenprüfung
DE2926322A1 (de) Speicher-subsystem
DE3851241T2 (de) Speicheranordnung.
DE3919802C2 (de) Speichersteuersystem für ein Multiprozessorsystem
EP0009625B1 (de) Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE3931505C2 (de) Speichersteuerung in einer Datenverarbeitungsanlage
DE68926915T2 (de) Informationsverarbeitungsgerät und -methode
EP0525214B1 (de) Verfahren zum Betreiben eines Automatisierungsgeräts

Legal Events

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