DE10221206A1 - Burst Zugriffsverfahren auf Co-Prozessoren - Google Patents
Burst Zugriffsverfahren auf Co-ProzessorenInfo
- 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
Links
- 238000012546 transfer Methods 0.000 title claims description 10
- 230000002093 peripheral effect Effects 0.000 title claims description 3
- 239000000872 buffer Substances 0.000 claims abstract description 57
- 238000003860 storage Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- 238000012432 intermediate storage Methods 0.000 claims 1
- 230000004913 activation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent 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.
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)
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)
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 |
-
2002
- 2002-05-13 DE DE10221206A patent/DE10221206B4/de not_active Expired - Fee Related
Cited By (5)
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 | |
DE3011552C2 (de) | ||
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 | |
DE4103093C2 (de) | Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens | |
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 | |
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 |