DE10221206B4 - Burst Zugriffsverfahren auf Co-Prozessoren - Google Patents

Burst Zugriffsverfahren auf Co-Prozessoren Download PDF

Info

Publication number
DE10221206B4
DE10221206B4 DE10221206A DE10221206A DE10221206B4 DE 10221206 B4 DE10221206 B4 DE 10221206B4 DE 10221206 A DE10221206 A DE 10221206A DE 10221206 A DE10221206 A DE 10221206A DE 10221206 B4 DE10221206 B4 DE 10221206B4
Authority
DE
Germany
Prior art keywords
cache
processor
buffer
block
memory
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
DE10221206A
Other languages
English (en)
Other versions
DE10221206A1 (de
Inventor
Henning Dipl.-Ing. Möller
Gunnar Dr.-Ing. Nitsche
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.)
NXP BV
Original Assignee
Systemonic AG
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 Systemonic AG filed Critical Systemonic AG
Priority to DE10221206A priority Critical patent/DE10221206B4/de
Publication of DE10221206A1 publication Critical patent/DE10221206A1/de
Application granted granted Critical
Publication of DE10221206B4 publication Critical patent/DE10221206B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren zur Datenübertragung in einem Prozessorsystem zwischen einer CPU (Central-Processing-Unit), einem lokalen Speicher (Cache), wobei ein Cache-Controller die Steuerung für die Zwischenspeicherung von Prozessordaten übernimmt, und peripheren Einheiten, welche durch Co-Prozessoren repräsentiert werden, dadurch gekennzeichnet,
– dass zumindest in einem ersten oder zweiten Co-Prozessor (10);(11) ein PP-Puffer (PingPong-Puffer) (4) bereitgestellt wird,
– dass in dem zum Cache (21) zugehörigen Daten-Cache (D-Cache) (15), in welchem Datenzugriffe als Burst-Zugriffe (Block-Zugriffe) von dem Cache Controller (3) ausführbar sind, ein erstes und zweites D-Cache-Set (6);(16) vorgesehen ist,
– dass ein erster und gleichgroßer zweiter Speicherteil des PP-Puffers (4) durch seine interne Steuerung so angesteuert wird, dass der erste Speicherteil mit dem Co-Prozessor kommuniziert und unabhängig davon der Dateninhalt des zweiten Speicherteils für eine Blockübertragung in den vom Cache-Controller (3) zugewiesenen Speicherbereich eines jeweilig zum ersten oder zweiten D-Cache-Set (6);(16) zugehörigen PP-Puffer-Cache-Blockes (5) bereitgestellt wird, wobei der zu übertragende Block, der eine...

Description

  • Die Erfindung betrifft ein Verfahren zur Datenübertragung in einem Prozessorsystem zwischen einer CPU (Central-Processing-Unit), einem lokalen Speicher (Cache), wobei ein Cache-Controller die Steuerung für die Zwischenspeicherung von Prozessordaten übernimmt, und peripheren Einheiten, welche durch Co-Prozessoren (COP) repräsentiert werden.
  • Beim Stand der Technik sind Prozessorsysteme bekannt, die mit einem Haupt-Prozessor als RISC CPU und speziellen Co-Prozessoren ausgerüstet sind, die für die jeweilige Anwendung optimiert sind. Dieses entlastet den Prozessor bei aufwändigen Berechnungen.
  • Da aufgrund der Größe der Chips die Busfrequenz geringer ist als die Prozessorfrequenz und die externen Speicher-Medien ebenfalls nur mit einer geringeren Frequenz betrieben werden können, werden heutige Prozessoren mit einem Cache Controller und schnellen lokalen Speichern, einem Cache, ausgerüstet.
  • Dieser erlaubt den Datentransfer mit einem externen, größeren, aber meist langsameren Speicher und in ihm wird eine Kopie der Daten für einen schnellen Datenaustausch gespeichert.
  • Um die hohe Prozessorperformance auszunutzen, gewährleistet der der CPU zugehörige Cache-Controller die blockweise Datenübertragung zwischen Cache und externem Speicher. Diese Datenzugriffsart wird auch mit Burst-Zugriff bezeichnet.
  • Die den Stand der Technik beschreibende Anwendung der Speicherhierarchie und die dazu einzusetzenden Routinen für die optimale Datenübertragung zwischen Cache und externem Speicher sind in „Rechnerarchitektur", Verlag Vieweg, ISBN 3-328-05173-6 5.403 – 420 von Hennessy/Petersen dargelegt.
  • Dagegen werden bei der Datenübertragung zwischen CPU und Co-Prozessoren diese üblicherweise im ungecachten Bereich einer Speicherhierarchie betrieben, d.h. es ist der Burst-Zugriff nicht möglich. Dadurch entstehen erhebliche Latenzen, weil Daten nur im Einzelzugriff übertragen werden.
  • In der US 6 112 262 ist eine Lösung zur Übertragung von Informationen zwischen einem Prozessor und einem Co-Prozessor beschrieben. Diese Lösung befasst sich ebenfalls damit, dass der Burst-Modus nicht oder nur schlecht genutzt werden kann, um Befehls- oder Steuerinformationen an einen Co-Prozessor zu senden. Hierin wird nunmehr ein Codierer in dem Prozessor und ein Decodierer in dem Co-Prozessor vorgesehen. Zur Übertragung von Informationen von dem Prozessor an den Co-Prozessor wird ein Informationswort generiert. Jedes Bit dieses Informationswortes bezieht sich auf unterschiedliche Informationstypen. Damit kennzeichnet der Codierer um welche Information es sich in dem übrigen Informationswort handelt. Im Decodierer wird dann festgestellt, welche Art von Information gesendet worden ist und die dann nachfolgende Information an entsprechende Register adressiert. Damit wird zwar eine direkte Kommunikation ermöglicht, jedoch der Aufwand erhöht und auch die Problematik der unterschiedlichen Geschwindigkeiten in der Prozessorverarbeitung und der Kommunikationsgeschwindigkeit nicht gelöst.
  • In der US 6 377 979 B1 wird ein Mehrprozessorsystem beschrieben, das zur geteilten Nutzung eines Speichers Transferblöcke in der Informationsübertragung nutzt. In den Transferblöcken ist jeweils eine Startadresse zum Schreiben der nachfolgenden Daten sowie eine Längeninformation enthalten. Damit kann ein geteilter Zwischenspeicher zwischen einem Masterprozessor und einem Slaveprozessor störungsfrei mit den Daten beschrieben werden, sodass der Slave dann die Daten aus dem geteilten Speicher entnehmen kann.
  • In der EP 1 061 439 A1 wird eine Computerarchitektur mit einem Prozessor und einem Co-Prozessor beschrieben. Die gemeinsame Speicherbasis beider Prozessoren ist ein DRAM. Von diesem DRAM kann der Coprozessor über einen Burst Buffer Memory lesen und auf diesen DRAM über eben diesen Burst Buffer Memory schreiben. Dabei werden die Bursts von dem Prozessor gesteuert. Eine direkte Kommunikation zwischen Prozessor und Co-Prozessor über den Burst Buffer Memory ist nicht möglich.
  • Nachteilig ist daher, dass in einem Prozessorsystem mit mehreren Prozessoren der Austausch großer Datenmengen bezüglich der Übertragungsgeschwindigkeit nur unzureichend zwischen einem Co-Prozessor (COP) und dem marktüblichen Haupt-Prozessor (CPU) ausgetauscht werden kann.
  • Der Erfindung liegt die Aufgabe zugrunde, den Datenaustausch zwischen einer CPU und mindestens einem Co-Prozessor mit Burst-Zugriff zu realisieren.
  • Die erfindungsgemäße Lösung der Aufgabenstellung sieht vor, dass zumindest in einem ersten oder zweiten Co-Prozessor ein PP-Puffer (PingPong-Puffer) bereitgestellt wird und es ist in dem zum Cache zugehörigen Daten-Cache (D-Cache), in welchem Datenzugriffe als Burst-Zugriffe (Block-Zugriffe) von dem Cache Controller ausführbar sind, einen erstes und zweites D-Cache-Set vorgesehen.
  • Weiterhin wird ein erster und gleichgroßer zweiter Speicherteil des PP-Puffers durch seine interne Steuerung so angesteuert, dass der erste Speicherteil mit dem Co-Prozessor kommuniziert und unabhängig davon der Dateninhalt des zweiten Speicherteils für eine Blockübertragung in den vom Cache-Controller zugewiesenen Speicherbereich eines jeweilig zum ersten oder zweiten D-Cache-Set zugehörigen PP-Puffer-Cache-Blockes bereitgestellt wird.
  • Dabei ist der zu übertragende Block, der eine gespiegelte Seite des PP-Puffers repräsentiert, in der Größe der jeweiligen Speicherteile des PP-Puffers konfiguriert.
  • Entsprechend der Steuerfunktion des PP Puffers werden die Dateninhalte der Speicherbereiche des ersten und zweiten Speicherteiles nach einer Befehls-Anforderung, welche die CPU über einen Einzelzugriff eines Co-Prozessor-Registers realisiert, gegeneinander ausgetauscht.
  • Außerdem bewirkt im Falle einer programmseitig aufgerufenen Kommunikation (Spiegeln) zwischen Cache und erstem oder zweitem Co-Prozessor eine externe Co-Prozessor-Auswahlsteuerung aus der von dem Cache-Controller bereitgestellten Adressierung des Cache die Auswahl des ersten oder zweiten Co-Prozessor.
  • Das geschieht mittels Aktivierung der entsprechenden ersten oder zweiten Chip-Select-Signalleitung für den ersten oder zweiten Co-Prozessor, indem von der externen Co-Prozessor-Auswahlsteuerung der für den jeweiligen Co-Prozessor vereinbarte Adressbereich des D-Caches erkannt (decodiert) wird.
  • Dabei ist die Co-Prozessor-Auswahlsteuerung so konfiguriert, dass beim Spiegeln der Seiten des PP-Puffers ein solcher Adressbereich im Cache überstrichen wird, der die m-fache Größe des Adressbereiches des PP-Puffers beträgt und somit m gespiegelte Seiten des PP-Puffers im gecachten Adressbereich der CPU für diese zugreifbar werden.
  • Gleichzeitig wird sicher gestellt, dass bei einem von der CPU ausgeführten Zugriff auf eine der m gespiegelten Seiten des PP-Puffers ein korrespondierendes Datum der physisch vorliegenden ersten Seite des PP-Puffers durch die Co-Prozessor-Auswahlsteuerung an den Cache für die CPU bereitgestellt wird.
  • Dadurch programmtechnisch immer ein Cache-Miss (Fehlzugriff-Routine) ausgelöst und dabei der Zugriff als Block(Burst)-Zugriff ausgeführt wird.
  • So wird bei dieser Lösung gewährleistet, dass auch die blockweise Datenübertragung ("Spiegeln") zwischen dem Cache und dem PP-Puffer angewendet wird. Dabei wird abgesichert, dass bei aufeinander folgenden Block-Lese-Zugriffen aus dem PP-Puffer niemals eine Spiegelung des Dateninhaltes auf den gleichen PP-Puffer Cache-Block ausgeführt wird.
  • Mit dieser Bedingung wird realisiert, dass auch die schnelle blockweise Datenübertragungsart (Burst Zugriff) zwischen dem Cache und dem PP-Puffer angepasst angewendet wird.
  • Diese Lösung zielt darauf ab, Prozessorsysteme zu erstellen, in denen für den Haupt-Prozessor (CPU) ein marktüblicher Prozessor verwendet werden kann, um nicht teure Entwicklung für Sonderformen spezieller CPU, die mit blockweisen Datenzugriffen für die Co-Prozessorenkommunikation ausgestattet sind, aufwenden zu müssen.
  • Eine vorteilhafte Variante der erfindungsgemäßen Lösung sieht vor, dass die vorgegebene programmgemäße Adressierung durch den Cache-Controller in den Bestandteilen Blockadresse und Block-Offset Adressen erfolgt.
  • Damit ist sichergestellt, dass die Adressen der Speicherelemente eines jeweilig zum ersten und zweiten D-Cache-Sets zugehörigen PP-Puffer Cache-Blockes so regelmäßig generiert werden, dass eine abfolgende Adressierung mittels einer gleichlaufende Abfolge des Blockadressen-Offsets vorgenommen wird.
  • Hierbei unterscheiden sich die jeweiligen Speicherelemente der Blöcke des ersten oder zweiten D-Cache-Sets nur durch ihre zugehörige Blockadresse.
  • Es überstreicht dieser Blockadressen-Offset, welcher den niederwertigen Teil des Adressraumes des Prozessorsystems repräsentiert, genau den Adressbereich der Speicherelemente des zweiten Speicherteils des PP-Puffers.
  • Bei einer programmtechnischen Leseanforderung für einen Burst-Zugriff zwischen der CPU und einem ersten oder zweiten Co-Prozessor wird einerseits dieser Blockadressen-Offset mittels des Block-Offset-Adressbus für den PP-Puffer bereitgestellt und damit wird dessen zweiter Speicherteil im ersten oder zweiten Co-Prozessor adressiert.
  • Anderseits wird programmseitig abgesichert, dass, in der Abfolge alternierend, immer eine Blockadresse des jeweilig ausgewählten PP-Puffer Cache-Blockes des ersten oder zweiten D-Cache-Sets zur Adressierung im Cache ausgegeben wird und es wird hierbei eine blockweise Spiegelung des Dateninhaltes des zweiten Speicherteils des PP-Puffers des ersten oder zweiten Co-Prozessors ausgeführt.
  • Bei dieser Lösung ist ersichtlich, dass in dem Fall, dass unmittelbar vor der Lese-Ansteuerung über den Burst-Zugriff kein ebensolcher Vorgang vorlag, dieser Zugriff in üblicher Weise, wie bei einem Lesezugriff auf einen externen Memory, abläuft.
  • Dagegen wird in dem Fall, dass eine weitere Lese-Ansteuerung über einen Burst-Zugriff erfolgen soll, ein Abbruch dieser Leseanforderungen, welche sonst routinemäßig der Cache-Controller ausführt, umgangen.
  • Denn routinemäßig wird ein Abbruch Burst-Zugriff eingeleitet, wenn bei einer beabsichtigten Blockübertragung das Vorliegen gleichlautender Adressen des zu adressierenden Blockes festgestellt wird und damit ein mehrfaches Auslesen gleicher Dateninhalte erwartet wird.
  • Diese Umgehung geschieht dadurch, dass eine Blockadresse des jeweils anderen D-Cache-Sets ausgegeben wird und damit bei gleichbleibender Block-Offset-Adressierung eine andere gesamte Adressierung als beim dem zuvor gelesenen Block für ein weiteres Auslösen eines Lesezugriffs auf den zweiten Teil des PP-Puffer sorgt.
  • Damit ist ein Einspeichern ("Spiegeln") des Dateninhaltes des zweiten Teils des PP-Puffers in einen anderen PP-Puffer Cache-Block verbunden.
  • Mit dieser anderen Cache-Adressierung wird somit der CPU über den Cache-Controller signalisiert, dass ein anderer Speicherinhalt zu erwarten ist und es wird der Block-Lesevorgang fortgesetzt.
  • Die Erfindung soll nachfolgend an einem Ausführungsbeispiel näher erläutert werden.
  • In der zugehörigen Zeichnungsfigur wird ein Blockschaltbild des Prozessorsystems dargestellt, in dem die Speicherhierarchie und die Datenübertragungswege beim Burst-Zugriff von Cache 21, externer Memory 12 und erstem und/oder zweiten Co-Prozessor 10; 11 verdeutlicht werden.
  • Wie in der Zeichnungsfigur ersichtlich ist, erfolgt der lesende Blockzugriff des Cache 21 bezüglich des externen Memory 12 in bekannter Weise über den Memory Controller 13 und den I/O-Puffer 23, da der Adressbereich dieses Speichers grundsätzlich im gecachten Bereich liegt.
  • Hierbei wird von der Adresssteuerung der CPU 2 die Adressierung in üblicher Weise in dem Adressebereich des Cache 21, welcher die Block-Zugriffs-Routinen unterstützt, ausgeführt.
  • Anders ist der Datenübertragungsvorgang in dem Fall, dass ein Blockzugriff der CPU 2 für einen gecachten Adressbereich des Cache 21, welcher auf den ersten oder zweiten Co-Prozessor 10, 11 erweitert angewendet wird, vorzunehmen ist.
  • Dieser Adressbereich ist in dem Ausführungsbeispiel für das erste und zweite D-Cache-Set 6, 16 in der Größe von jeweils 8 Kilobyte in dem für den Hauptspeicher reservierten Adressbereich vorgesehen.
  • Das erste und zweite D-Cache-Set 6, 16 besteht jeweils aus acht gleichgroßen PP-Cache-Blöcken 5, die mit ihrer Größe von einem Kilobyte der Größe des Speicherinhaltes des zweiten Teil des PP-Puffers 4 entsprechen und damit so konfiguriert sind, dass jeweils einer dieser Blöcke bei einem Burst-Zugriff die im zweiten Teil des PP-Puffer 4 bereitgestellten Dateninhalte aufnehmen ("Spiegeln").
  • Bei einer durch die CPU 2 ausgelösten Leseanforderung eines Blockes vom ersten oder zweiten Co-Prozessor 10, 11 in den gecachten Adressbereich wird mittels der Adresssteuerung der CPU 2 über den Prozessor-Adressbus 24 die Adresse ausgegeben, bei der die externe Co-Prozessor-Auswahlsteuerung 14 den je Co-Prozessor zugewiesenen Adressbereich erkennt.
  • Durch die aktivierte erste oder zweite Chip-Select-Signalleitung 19, 22 wählt die externe Co-Prozessor-Auswahlsteuerung 14 den Co-Prozessor aus, mit welchem kommuniziert werden soll.
  • Mit der am Prozessor-Adressbus 24 vorliegenden Adresse wird über den Block-Adressbus 8 ein zugewiesener PP-Puffer Cache-Block 5 des ersten oder zweiten D-Cache-Sets 6, 16 angesteuert, wobei die einzelnen Speicherelemente dieses Blockes als niederwertiger Adressteil der Cacheadressierung über den Block-Offset-Adressbus 9 adressiert werden.
  • Dieser niederwertiger Adressteil wird dabei auch an den PP-Puffer 4 des zur Kommunikation ausgewählten ersten oder zweiten Co-Prozessors 10, 11 angelegt, dessen zweiter Teil so bereitgestellt wird, dass er mit diesem niederwertiger Adressteil seine Speicherelemente ansteuert und dadurch den lesenden Block-Zugriff auf seinen Dateninhalt zum Spiegeln auf den zugewiesenen PP-Puffer Cache-Block 5 des D-Cache 15 realisiert.
  • Bei einer weiteren CPU-Leseanforderungen eines Blockes von dem ausgewählten ersten oder zweiten Co-Prozessor 10, 11 wird von der internen Adresssteuerung der CPU 2 über den Block-Adressbus 8 ein PP-Puffer Cache-Block 5 des vorher nicht verwendeten ersten oder zweiten D-Cache-Sets 6, 16 zugewiesen damit nunmehr in diesen ein weiteres Spiegeln des Dateninhaltes des PP-Puffers 4 erfolgen kann.
  • Hiermit wird einerseits durch die Änderung der Blockadresse bei einem weiteren Block-Zugriff erfindungsgemäß programmtechnisch eine angepassten „Cache miss" Routine für die Datenübertragung zwischen Cache 21 und ersten oder zweiten Co-Prozessor 10, 11 ausgelöst und dadurch verhindert, dass das Lesen eines weiteren Blockes wegen zu erwartenden bekannten Dateninhalten routinemäßig abgebrochen wird.
  • Anderseits wird durch die erfindungsgemäße programmtechnische Zuweisung eines PP-Puffer Cache-Block 5 des vorher nicht verwendeten ersten oder zweiten D-Cache-Sets 6, 16 vermieden, dass ein zuvor gespiegelter Dateninhalt durch Überschreiben verloren geht.
  • 1
    Prozessorsystem
    2
    CPU (Central-Processing-Unit)
    3
    Cache-Controller
    4
    PP-Puffer (Pingpong-Puffer)
    5
    PP-Puffer Cache-Block
    6
    erstes D-Cache-Set (Cachebereich für m als Cache-Blöcke gespiegelte PP-Puffer Inhalte)
    7
    Block-Datenbus
    8
    Block-Adressbus (Bestandteil des Prozessor-Adressbus)
    9
    Block-Offset-Adressbus (Bestandteil des Prozessor-Adressbus)
    10
    erster Co-Prozessor
    11
    zweiter Co-Prozessor
    12
    externer Memory
    13
    Memory Controller
    14
    externe Co-Prozessor-Auswahlsteuerung
    15
    D-Cache
    16
    zweites D-Cache-Set (Cachebereich für m als Cache-Blöcke gespiegelte PP-Puffer Inhalte)
    18
    Co-Prozessor-Register
    19
    erste Chip-Select-Signalleitung (für den ersten Co-Prozessor)
    20
    Prozessor-Datenbus
    21
    Cache (lokaler Speicher)
    22
    zweite Chip-Select-Signalleitung (für den zweiten Co-Prozessor)
    23
    I/O-Puffer
    24
    Prozessor-Adressbus

Claims (2)

  1. Verfahren zur Datenübertragung in einem Prozessorsystem zwischen einer CPU (Central-Processing-Unit), einem lokalen Speicher (Cache), wobei ein Cache-Controller die Steuerung für die Zwischenspeicherung von Prozessordaten übernimmt, und peripheren Einheiten, welche durch Co-Prozessoren repräsentiert werden, dadurch gekennzeichnet, – dass zumindest in einem ersten oder zweiten Co-Prozessor (10);(11) ein PP-Puffer (PingPong-Puffer) (4) bereitgestellt wird, – dass in dem zum Cache (21) zugehörigen Daten-Cache (D-Cache) (15), in welchem Datenzugriffe als Burst-Zugriffe (Block-Zugriffe) von dem Cache Controller (3) ausführbar sind, ein erstes und zweites D-Cache-Set (6);(16) vorgesehen ist, – dass ein erster und gleichgroßer zweiter Speicherteil des PP-Puffers (4) durch seine interne Steuerung so angesteuert wird, dass der erste Speicherteil mit dem Co-Prozessor kommuniziert und unabhängig davon der Dateninhalt des zweiten Speicherteils für eine Blockübertragung in den vom Cache-Controller (3) zugewiesenen Speicherbereich eines jeweilig zum ersten oder zweiten D-Cache-Set (6);(16) zugehörigen PP-Puffer-Cache-Blockes (5) bereitgestellt wird, wobei der zu übertragende Block, der eine gespiegelte Seite des PP-Puffers (4) repräsentiert, in der Größe der jeweiligen Speicherteile des PP-Puffers (4) konfiguriert ist, – dass entsprechend der Steuerfunktion des PP Puffers (4) die Dateninhalte der Speicherbereiche des ersten und zweiten Speicherteiles nach einer Befehls-Anforderung, welche durch die CPU (2) über einen Einzelzugriff eines Co-Prozessor-Registers (18) realisiert wird, gegeneinander ausgetauscht werden, – dass, im Falle einer programmseitig aufgerufenen Kommunikation (Spiegeln ) zwischen Cache (21) und erstem oder zweitem Co-Prozessor (10);(11), eine externe Co-Prozessor-Auswahlsteuerung (14) aus der von dem Cache-Controller (3) bereitgestellten Adressierung des Cache (21) die Auswahl des ersten oder zweiten Co-Prozessor (10);(11) mittels Aktivierung der entsprechenden ersten oder zweiten Chip-Select-Signalleitung (19);(22) für den ersten oder zweiten Co-Prozessor (10);(11) bewirkt, indem von der externen Co-Prozessor-Auswahlsteuerung (14) der für den jeweiligen Co-Prozessor vereinbarte Adressbereich des D-Caches (15) erkannt (decodiert) wird, – dass die Co-Prozessor-Auswahlsteuerung (14) so konfiguriert ist, – dass beim Spiegeln der Seiten des PP-Puffers (4) ein solcher Adressbereich im Cache (21) überstrichen wird, der die m-fache Größe des Adressbereiches des PP-Puffers (4) beträgt und somit m gespiegelte Seiten des PP-Puffers (4) im gecachten Adressbereich der CPU (2) für diese zugreifbar werden und – dass bei einem von der CPU (2) ausgeführten Zugriff auf eine der m gespiegelten Seiten des PP-Puffers (4) ein korrespondierendes Datum der physischen vorliegenden ersten Seite des PP-Puffers (4) durch die Co-Prozessor-Auswahlsteuerung (14) an den Cache (21) für die CPU (2) bereitgestellt wird, wodurch programmtechnisch immer ein Cache-Miss (Fehlzugriff-Routine) ausgelöst und dabei der Zugriff als Block(Burst)-Zugriff ausgeführt wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, – dass die vorgegebene programmgemäße Adressierung durch den Cache-Controller (3) in den Bestandteilen Blockadresse und Block-Offset Adressen erfolgt und damit sichergestellt ist, – dass die Adressen der Speicherelemente eines jeweilig zum ersten und zweiten D-Cache-Sets (6);(16) zugehörigen PP-Puffer Cache-Blockes (5) so regelmäßig generiert werden, dass eine abfolgende dressierung mittels einer gleichlaufende Abfolge des Blockadressen-Offsets vorgenommen wird, wobei die jeweiligen Speicherelemente der Blöcke des ersten oder zweiten D-Cache-Sets (6);(16) sich nur durch ihre zugehörige Blockadresse unterscheiden, – dass dieser Blockadressen-Offset, welcher den niederwertigen Teil des Adressraumes des Prozessorsystems (1) repräsentiert, genau den Adressbereich der Speicherelemente des zweiten Speicherteils des PP-Puffers. (4) überstreicht, und – dass bei einer programmtechnischen Leseanforderung für einen Burst Zugriff zwischen der CPU (2) und einem ersten oder zweiten Co-Prozessor (10);(11) einerseits dieser Blockadressen-Offset mittels des Block-Offset-Adressbus (9) für den PP-Puffer (4) bereitgestellt wird und es wird damit dessen zweiter Speicherteil im ersten oder zweiten Co-Prozessor (10);(11) adressiert, und anderseits wird programmseitig abgesichert, dass, in der Abfolge alternierend, immer eine Blockadresse des jeweilig ausgewählten PP-Puffer Cache-Blockes (5) des ersten oder zweiten D-Cache-Sets (6),(16) zur Adressierung im Cache (21) ausgegeben wird und es wird hierbei eine blockweise Spiegelung des Dateninhaltes des zweiten Speicherteils des PP-Puffers (4) des ersten oder zweiten Co-Prozessors (10);(11) ausgeführt.
DE10221206A 2002-05-13 2002-05-13 Burst Zugriffsverfahren auf Co-Prozessoren Expired - Fee Related DE10221206B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10221206A DE10221206B4 (de) 2002-05-13 2002-05-13 Burst Zugriffsverfahren auf Co-Prozessoren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10221206A DE10221206B4 (de) 2002-05-13 2002-05-13 Burst Zugriffsverfahren auf Co-Prozessoren

Publications (2)

Publication Number Publication Date
DE10221206A1 DE10221206A1 (de) 2003-12-04
DE10221206B4 true DE10221206B4 (de) 2008-04-03

Family

ID=29413765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10221206A Expired - Fee Related DE10221206B4 (de) 2002-05-13 2002-05-13 Burst Zugriffsverfahren auf Co-Prozessoren

Country Status (1)

Country Link
DE (1) DE10221206B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100419686C (zh) * 2006-12-13 2008-09-17 北京中星微电子有限公司 一种实现数据下载的方法、系统及装置
US9361195B2 (en) 2014-11-12 2016-06-07 International Business Machines Corporation Mirroring in three-dimensional stacked memory
US9575671B1 (en) 2015-08-11 2017-02-21 International Business Machines Corporation Read distribution in a three-dimensional stacked memory based on thermal profiles
CN105589820B (zh) * 2015-12-22 2019-01-15 中国科学院微电子研究所 一种数据传输缓冲装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112262A (en) * 1998-08-03 2000-08-29 S3 Incorporated System and method for efficiently transferring information between processors
EP1061439A1 (de) * 1999-06-15 2000-12-20 Hewlett-Packard Company Speicher und Befehlen in Rechnerarchitektur mit Prozessor und Coprozessor
US6377979B1 (en) * 1997-12-25 2002-04-23 Kabushiki Kaisha Kobe Seiko Sho Multiple-processor system and method for transferring data and/or a program stored in one processor to another processor in order to process the data or to execute the program therein

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377979B1 (en) * 1997-12-25 2002-04-23 Kabushiki Kaisha Kobe Seiko Sho Multiple-processor system and method for transferring data and/or a program stored in one processor to another processor in order to process the data or to execute the program therein
US6112262A (en) * 1998-08-03 2000-08-29 S3 Incorporated System and method for efficiently transferring information between processors
EP1061439A1 (de) * 1999-06-15 2000-12-20 Hewlett-Packard Company Speicher und Befehlen in Rechnerarchitektur mit Prozessor und Coprozessor

Also Published As

Publication number Publication date
DE10221206A1 (de) 2003-12-04

Similar Documents

Publication Publication Date Title
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE3782335T2 (de) Speichersteuersystem.
DE3909896C2 (de)
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69616465T2 (de) Cachespeicher mit Datenvorausladung
DE68902193T2 (de) Datenspeicheranordnung.
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE3502147C2 (de)
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE69605820T2 (de) Datenfehler-detektion und -korrektur für gemeinsamen speicher
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE69709226T2 (de) Einzelzyklus mehrfachzugreifbarer verschachtelter Cache-Speicher
DE69132606T2 (de) Cache-Speicheranordnung und Betriebsverfahren
EP0739509B1 (de) Anordnung mit master- und slave-einheiten
DE10221206B4 (de) Burst Zugriffsverfahren auf Co-Prozessoren
EP0075714B1 (de) Onchip Mikroprozessorcachespeicher und Verfahren zu seinem Betrieb
DE3936339A1 (de) Controller fuer direkten speicherzugriff
DE4114053A1 (de) Computersystem mit cachespeicher
DE102005040109B4 (de) Halbleiterspeicherchip
DE2610428C3 (de) Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher
DE69130967T2 (de) Rechnerspeicheranordnung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NXP SEMICONDUCTORS GERMANY GMBH, 22529 HAMBURG, DE

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20121201