DE10221206B4 - Burst Zugriffsverfahren auf Co-Prozessoren - Google Patents
Burst Zugriffsverfahren auf Co-Prozessoren Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 6
- 239000000872 buffer Substances 0.000 claims abstract description 63
- 238000012546 transfer Methods 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 5
- 230000002093 peripheral effect Effects 0.000 claims abstract description 3
- 230000003139 buffering effect Effects 0.000 claims abstract 2
- 238000004891 communication Methods 0.000 claims description 7
- 230000003213 activating effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- 238000012549 training Methods 0.000 claims 1
- 230000001960 triggered effect Effects 0.000 description 3
- 230000002411 adverse 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
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...
– 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 Memory12 und erstem und/oder zweiten Co-Prozessor10 ;11 verdeutlicht werden. - Wie in der Zeichnungsfigur ersichtlich ist, erfolgt der lesende Blockzugriff des Cache
21 bezüglich des externen Memory12 in bekannter Weise über den Memory Controller13 und den I/O-Puffer23 , 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 Cache21 , 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 Cache21 , welcher auf den ersten oder zweiten Co-Prozessor10 ,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öcken5 , die mit ihrer Größe von einem Kilobyte der Größe des Speicherinhaltes des zweiten Teil des PP-Puffers4 entsprechen und damit so konfiguriert sind, dass jeweils einer dieser Blöcke bei einem Burst-Zugriff die im zweiten Teil des PP-Puffer4 bereitgestellten Dateninhalte aufnehmen ("Spiegeln"). - Bei einer durch die CPU
2 ausgelösten Leseanforderung eines Blockes vom ersten oder zweiten Co-Prozessor10 ,11 in den gecachten Adressbereich wird mittels der Adresssteuerung der CPU2 über den Prozessor-Adressbus24 die Adresse ausgegeben, bei der die externe Co-Prozessor-Auswahlsteuerung14 den je Co-Prozessor zugewiesenen Adressbereich erkennt. - Durch die aktivierte erste oder zweite Chip-Select-Signalleitung
19 ,22 wählt die externe Co-Prozessor-Auswahlsteuerung14 den Co-Prozessor aus, mit welchem kommuniziert werden soll. - Mit der am Prozessor-Adressbus
24 vorliegenden Adresse wird über den Block-Adressbus8 ein zugewiesener PP-Puffer Cache-Block5 des ersten oder zweiten D-Cache-Sets6 ,16 angesteuert, wobei die einzelnen Speicherelemente dieses Blockes als niederwertiger Adressteil der Cacheadressierung über den Block-Offset-Adressbus9 adressiert werden. - Dieser niederwertiger Adressteil wird dabei auch an den PP-Puffer
4 des zur Kommunikation ausgewählten ersten oder zweiten Co-Prozessors10 ,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-Block5 des D-Cache15 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 CPU2 über den Block-Adressbus8 ein PP-Puffer Cache-Block5 des vorher nicht verwendeten ersten oder zweiten D-Cache-Sets6 ,16 zugewiesen damit nunmehr in diesen ein weiteres Spiegeln des Dateninhaltes des PP-Puffers4 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-Prozessor10 ,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-Sets6 ,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)
- 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. - 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.
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)
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)
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 |
-
2002
- 2002-05-13 DE DE10221206A patent/DE10221206B4/de not_active Expired - Fee Related
Patent Citations (3)
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 |