DE10221206A1 - Burst Zugriffsverfahren auf Co-Prozessoren - Google Patents

Burst Zugriffsverfahren auf Co-Prozessoren

Info

Publication number
DE10221206A1
DE10221206A1 DE10221206A DE10221206A DE10221206A1 DE 10221206 A1 DE10221206 A1 DE 10221206A1 DE 10221206 A DE10221206 A DE 10221206A DE 10221206 A DE10221206 A DE 10221206A DE 10221206 A1 DE10221206 A1 DE 10221206A1
Authority
DE
Germany
Prior art keywords
cache
processor
buffer
block
address
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.)
Granted
Application number
DE10221206A
Other languages
English (en)
Other versions
DE10221206B4 (de
Inventor
Henning Moeller
Gunnar 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

Der Erfindung, die ein Verfahren zur Datenübertragung in einem Prozessorsystem zwischen einer CPU, einem lokalen Speicher, wobei ein Cache-Controller die Steuerung für die Zwischenspeicherung von Prozessordaten übernimmt, und peripheren Einheiten, welche durch Co-Prozessoren repräsentiert werden, betrifft, liegt die Aufgabe zugrunde, den Nachteil der bekannten Prozessorsysteme, die den Austausch großer Datenmengen zwischen einem Co-Prozessor und einem marktüblichen Haupt-Prozessor bezüglich der Übertragungsgeschwindigkeit nur unzureichend unterstützen, zu beheben. Eine weitere Aufgabe ist die Vermeidung teurer Entwicklungen für Sonderformen der CPU mit speziell ausgestatteten blockweisen Datenzugriffen für die Co-Prozessorkommunikation. Stattdessen sollen Prozessorsysteme erstellt werden, welche als CPU nur marktübliche Prozessortypen verwenden. Die Erfindung löst die Aufgabe dadurch, dass der Co-Prozessor mit einem Pingpong-Puffer ausgestattet wird und sein zweiter Speicherteil mit einem Pingpong-Puffer-Cache-Block des Cache, dessen Adressen in einem solchen Adressbereich des Prozessorsystems realisiert werden, in dem Datenzugriffe als Burst-Zugriffe (Block-Zugriffe) von der CPU ausführbar sind, kommuniziert. Erfindungsgemäß wird programmtechnisch bei Leseanforderungen die Blockadresse zur Ansteuerung des Cache zusätzlich verändert und infolge dessen werden jeweils Fehlzugriff-Routinen ("Cache miss") an der CPU ausgelöst.

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 S. 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 die Daten nur im Einzelzugriff übertragen werden.
  • Nachteilig ist daher, dass in einem Prozessorsystem mit mehreren Prozessoren der Austausch großer Datenmengen bezügliche 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. Bezugszeichenliste 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 Adressierung 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); (17) 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 true DE10221206A1 (de) 2003-12-04
DE10221206B4 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)

Cited By (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 中国科学院微电子研究所 一种数据传输缓冲装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3247330B2 (ja) * 1997-12-25 2002-01-15 株式会社神戸製鋼所 複数プロセッサシステム
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

Cited By (5)

* 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
US9378104B2 (en) 2014-11-12 2016-06-28 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 中国科学院微电子研究所 一种数据传输缓冲装置

Also Published As

Publication number Publication date
DE10221206B4 (de) 2008-04-03

Similar Documents

Publication Publication Date Title
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE102004058528B3 (de) Speichersystem mit Sektorbuffern
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE3131341A1 (de) "pufferspeicherorganisation"
DE3502147C2 (de)
DE2411963A1 (de) Datenverarbeitungsanlage
DE3114934A1 (de) Zentrales subsystem fuer eine datenverarbeitungsanlage
DE2547488A1 (de) Mikroprogrammierte datenverarbeitungsanlage
DE102005037219A1 (de) Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2758829A1 (de) Multiprozessor-datenverarbeitungssystem
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
EP0075714B1 (de) Onchip Mikroprozessorcachespeicher und Verfahren zu seinem Betrieb
DE10221206A1 (de) Burst Zugriffsverfahren auf Co-Prozessoren
DE3936339A1 (de) Controller fuer direkten speicherzugriff
DE19905541A1 (de) Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens
DE60128596T2 (de) Interrupt-steuerung für einen mikroprozessor
EP1308846B1 (de) Datenübertragungseinrichtung
DE2605617A1 (de) Schaltungsanordnung zum adressieren von daten
DE102005037234A1 (de) Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Ausführungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE10025952B4 (de) Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen
EP0010625B1 (de) Hierarchisches Speichersystem
DE19643688C2 (de) Verfahren zur Steuerung einer Cachespeichereinheit mit konfliktfreiem Parallelzugriff auf virtuelle, 2-dimensionale Adreßräume
EP0556430B1 (de) Verfahren zur Steuerung eines Peripheriesystems

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