DE19643688C2 - A method for controlling a cache memory unit with parallel conflict-free access to virtual 2-dimensional address spaces - Google Patents

A method for controlling a cache memory unit with parallel conflict-free access to virtual 2-dimensional address spaces

Info

Publication number
DE19643688C2
DE19643688C2 DE19643688A DE19643688A DE19643688C2 DE 19643688 C2 DE19643688 C2 DE 19643688C2 DE 19643688 A DE19643688 A DE 19643688A DE 19643688 A DE19643688 A DE 19643688A DE 19643688 C2 DE19643688 C2 DE 19643688C2
Authority
DE
Germany
Prior art keywords
data
block
address
vb
cache
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
DE19643688A
Other languages
German (de)
Other versions
DE19643688A1 (en
Inventor
Johannes Kneip
Heiko Koehne
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.)
KNEIP, JOHANNES, DR.-ING, 01465 LIEGAU-AUGUSTUSBAD
KÖHNE, HEIKO, 10119 BERLIN, DE
Original Assignee
Johannes Kneip
Heiko Koehne
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 Johannes Kneip, Heiko Koehne filed Critical Johannes Kneip
Priority to DE19643688A priority Critical patent/DE19643688C2/en
Publication of DE19643688A1 publication Critical patent/DE19643688A1/en
Application granted granted Critical
Publication of DE19643688C2 publication Critical patent/DE19643688C2/en
Anticipated expiration legal-status Critical
Application status is Expired - Fee Related legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Abstract

Cachespeichereinheit für Verwendung in Parallelprozessoren mit NZM Verarbeitungseinheiten, der ausschließlich lokale, fest an zweidimensionale Datenstrukturen - Objekte genannt - gebundene Adressen verwendet. Cache memory unit for use in parallel processors with NZM processing units, the only local, fixed on two-dimensional data structures - used bound addresses - called objects. Jedes Objekt wird in virtuelle Blöcke der Größe S VB,h = (N + 1) Z 2 X in horizontaler Richtung und S VB,v = (M + 1) Z 2 Y in vertikaler Richtung unterteilt, wobei X und Y wählbar sind. Each object is in virtual blocks of size S VB, (N + 1) Z divided h = 2 X in the horizontal direction and S VB, v = (M + 1) Z 2 Y in the vertical direction, where X and Y are selected. Die Daten des Objekts werden so auf (N + 1) Z (M + 1) Speicherbänke verteilt, daß für jeden virtuellen Block genau ein physikalischer Block pro Set in jeder Speicherbank belegt wird. The data of the object so on (N + 1) Z (M + 1) memory banks distributed so that a physical block per set is assigned in each memory bank for each virtual block exactly. Jede Speicherbank besteht aus N MSet = S VB,v div (M + 1) logischen Sets, die sich wiederum aus einer frei wählbaren Anzahl physikalischer Blöcke der Größe S MBlock = S VB,h div (N + 1) zusammensetzen. Each memory bank is composed of N mset = S VB, v div (M + 1) logical sets which in turn composed of an arbitrary number of physical blocks of size S = S MBLOCK VB, h div (N + 1) put together. Die Hit-/Misserkennung findet im virtuellen Objektadressraum statt, wobei die Tagregister die Objektnummer und die Startadresse des Blocks in jeder Dimension enthält. The hit / miss detection takes place in the virtual object address space, the tag register contains the object number and the start address of the block in each dimension. Die Tagregister werden in die Verarbeitungseinheiten selbst integriert. The tag register will be integrated into the processing units themselves. Beim blockweisen Transfer der Daten zwischen Cache und externem Hauptspeicher können aufgrund der speziellen Verteilung der Daten über die Bänke im Hauptspeicheradreßraum benachbarte Daten parallel in die Cache-Speicherbänke geschrieben werden bzw. aus diesen ausgelesen werden. When block-wise transfer of the data between the cache and external main memory adjacent data can be written in parallel into the cache memory banks and is read out from this due to the special distribution of the data on the benches in Hauptspeicheradreßraum.

Description

Die Erfindung betrifft ein Verfahren zur Steuerung einer Ca chespeichereinheit zur Verwendung in einem Parallelprozessor nach dem Oberbegriff des Anspruchs 1. The invention relates to a method for controlling a Ca chespeichereinheit for use in a parallel processor according to the preamble of claim 1.

Durch die Fortschritte der Halbleitertechnologie ist es heute möglich, Mikroprozessoren mit mehreren, parallel arbeitenden Verarbeitungseinheiten monolithisch zu integrieren und damit eine Verarbeitungsleistung von mehreren Gigaoperationen pro Sekunde zu erreichen. Due to the progress of semiconductor technology, it is now possible to integrate microprocessors with a plurality of parallel operating processing units monolithically and thus achieve a processing performance of several Gigaoperationen per second. Derartige Prozessoren benötigen lei stungsfähige Speicherarchitekturen, um die aus der hohen Ver arbeitungsgeschwindigkeit resultierende Datenrate bereitstel len zu können. Such processors require lei mance storage architectures to the processing speed resulting from the high data rate Ver ready to Set ting. Um den Implementierungsaufwand für einen solchen Prozessor möglichst gering zu halten, werden oft meh rere Verarbeitungseinheiten eines solchen Prozessors einer ge meinsamen Steuerung zugeordnet, wobei diese dann synchroni siert identische Operationen auf unterschiedlichen Daten ausführen. In order to keep the implementation complexity of such a processor low as possible, often meh eral processing units of such a processor of a common control can be assigned, which then synchroni Siert identical operations on different data run. Bekannte Techniken sind hier SIMD (Single Instruc tion Stream Multiple Data Stream)-Prozessoren, bei der alle vorhandenen Verarbeitungseinheiten einer zentralen Steuerung zugeordnet werden oder geclusterte SIMD-Architekturen (Mul tiple SIMD: MSIMD), wobei jeweils Gruppen von Verarbeitungs einheiten auf Dauer oder für einen bestimmten Zeitraum einer Steuerung zugeordnet werden und damit synchron arbeiten. Known techniques are here SIMD (Single Instruc tion Stream Multiple Data Stream) processors, where all the existing processing units of a central control are assigned or clustered SIMD architectures (Mul tiple SIMD: MSIMD), wherein each group of processing units permanently or for a certain period of control are assigned and thus operate synchronously.

Die parallele Ausführung eines Algorithmus auf einer solchen synchronisierten Gruppe von Verarbeitungseinheiten, insbeson dere von solchen der digitalen Signalverarbeitung, führt zu charakteristischen Zugriffsmustern der parallelen Verarbei tungseinheiten auf die zu verarbeitenden Daten. The parallel execution of an algorithm on such a synchronized group of processing units, and in particular from such digital signal processing, leads to characteristic patterns of the parallel access process ing units to the data to be processed. Bei der Bear beitung gemeinsamer zweidimensionaler Datenstrukturen werden häufig Zugriffe in Form einer Matrix mit Distanzen 2 x , x = 0, 1, 2, . Frequently accesses are in the form of a matrix of distances x 2 in the processing Bear common two-dimensional data structures, x = 0, 1, 2,. . , zwischen den Elementen benötigt, siehe dazu auch die Dissertation von K. Rönner, "Eine für Bildverarbeitungsverfah ren optimierte hochparalle RISC-Architektur", VDI-Verlag 1995 , pp. required between the elements, see also PhD thesis of K. Rönner, "One for Bildverarbeitungsverfah optimized hochparalle RISC architecture ren", VDI-Verlag, 1995, pp. 15-18. 15-18.

Um die für Parallelprozessoren benötigte hohe Speicherband breite bereitzustellen, müssen die während eines Zugriffszy klus der parallelen Verarbeitungseinheiten benötigten Daten möglichst während einer einzigen Speicherzykluszeit bereitge stellt werden. To provide the required for parallel processors high memory band width, the data needed for a Zugriffszy klus parallel processing units must bereitge possible during a single memory cycle time is. Dies kann dadurch erreicht werden, indem die Daten in geeigneter Weise auf eine Anzahl von Speicherbänken verteilt werden. This can be achieved by making the data be distributed in a suitable way on a number of memory banks. Ein konfliktfreier Zugriff findet dann statt, wenn die zur Zuordnung der Daten auf die Speicherbänke verwen dete Verteilungsfunktion gewährleistet, daß bei jedem zugelas senen Zugriff maximal nur so viele Daten aus einer Speicher bank benötigt werden, wie diese parallele Zugriffsports besitzt. A conflict-free access takes place when the the allocation of the data to the memory banks USAGE finished distribution function ensures that at every zugelas Senen access a maximum of only so much data is required from a memory bank, as this parallel access ports has.

Nach dem derzeitigen Stand der Technik sind bereits Spei cherarchitekturen bekannt, die für ein vorgegebenes Zugriffs schema einen konfliktfreien Zugriff auf zweidimensional an geordnete Daten erlauben, beispielsweise aus dem Buch von Gössel/Rebel/Creutzburg, "Speicherarchitektur und Parallel zugriff", Akademie-Verlag 1989 , der Dissertation von Volkers, "Ein Beitrag zu Speicherarchitekturen programmierbarer Multi prozessoren der Bildverarbeitung", VDI-Verlag 1992 , bzw. den Patentschriften DE 27 47 075, US 4,400,768 und US 4,051,551. According to the current state of the art Spei are cherarchitekturen known which shows a conflict-free access to two dimensions allow to order data for a given access, for example, from the book by Gössel / Rebel / Creutzburg, "storage architecture and parallel access", Akademie-Verlag 1989 , the thesis of Volkers, "A contribution to storage architectures programmable multi processors image processing", VDI-Verlag, 1992, and the patents DE 27 47 075 US 4,400,768 and US 4,051,551. Die dort jeweils beschriebenen Speicherarchitekturen benutzen je weils einen einzigen zweidimensionalen virtuellen Adreßraum zur Adressierung der Daten. The memory architectures, respectively described there use depending weils a single two-dimensional virtual address space for addressing the data. Die Lokalisierung der auf jeweils eine Anzahl von Speicherbänken verteilten Daten geschieht über festgelegte Funktionen, die für jedes angesprochene Datum die zugehörige Speicherbank sowie die Adresse innerhalb dieser Bank ermitteln, die sogenannten Verteilungs- und Adreßfunktio nen. The localization of the distributed each have a number of memory banks data is done via defined functions that determine the associated memory bank and the address within the bank for each mentioned date, NEN, the so-called distribution and Adreßfunktio. Dies wird durch eine den genannten Funktionen entspre chende arithmetische Logik erreicht, die aus den virtuellen Matrixadressen sowie ggf. Hilfsregistern die physikalischen Speicheradressen errechnet und die angesprochenen Speicher blöcke selektiert. This is achieved through a entspre the functions mentioned sponding arithmetic logic that calculated from the virtual matrix addresses and possibly auxiliary registers, the physical memory addresses and the addressed memory blocks selected.

Die bisher bekannten Ansätze weisen jedoch den Nachteil auf, daß die Anzahl der Elemente des virtuellen Adreßraums die Anzahl der tatsächlich in den Speicherbänken vorhandenen Worte nicht überschreiten darf. The previously known approaches have the disadvantage that the number of elements of the virtual address space must not exceed the number of actual words in the memory banks. Die Integration eines derartigen Speichers in eine als vorteilhaft angesehene hierarchische Speicherorganisationen, bei der ein großer Hauptspeicher mit relativ langsamem Zugriff durch einen kleinen Pufferspeicher mit kurzer Zugriffszeit, den man auch als Cache bezeichnet, ergänzt wird und die örtliche und zeitliche Lokalität des Datenzugriffs der Algorithmen ausgenutzt wird, ist bei den genannten Speicherarchitekturen nicht anwendbar. taken advantage of the integration of such a memory in a viewed as advantageous hierarchical storage organizations in which a large main memory having a relatively slow access is complemented by a small buffer memory with a short access time, which is referred to as cache, and the local and temporal locality of data access algorithms is not applicable to said memory architectures. Dies ist da durch bedingt, daß anstelle von kurzen, auf die Größe des lokalen Speichers beschränkten Adressen nun Adreßworte ent sprechend der Größe des Hauptspeicheradreßraums verwendet wer den müssen. This is because due to that, instead of short, limited to the size of the local memory addresses now address words accordingly the size of the Hauptspeicheradreßraums used to have who. Dadurch wächst die Komplexität der verwendeten arithmetischen Logik überproportional an, gleichzeitig erhöhen sich auch die für die Adreßberechnung benötigten Zeiten stark, so daß eine Integration in das bei Mikroprozessoren übliche Piplineschema zu erheblichen Speicherlatenzzeiten führt. This increases the complexity of the arithmetic logic used to grow disproportionately, at the same time is also required for the address calculation times increase greatly, so that integration into the common microprocessors Piplineschema results in significant memory latency. Des weiteren kann die bei Caches notwendige Hit-/Miss-Detektion, die bei bekannten Cachearchitekturen durch einen Vergleich der Zugriffsadresse mit dem in einem Tagregister abgelegten oberen Teil der Adresse des aus dem Hauptspeicher in den Cache gespiegelten Speicherblocks durchgeführt wird, nicht angewandt werden, da durch die Verteilung der Daten auf mehrere Bänke eine für herkömmliche Caches notwendige blockweise Organisa tion der Daten in linearer Folge im Cachespeicher nicht gege ben ist (siehe dazu das US Buch von J. Hennessy/D. Patter son: "Computer Architecture, a Quantitative Approach", Morgan Kaufmann Publishers, 1990, pp. 402-497). Furthermore, the, can not be applied to caches necessary hit / miss detection, which is performed by comparing the access address with the data stored in a tag register upper part of the address of the mirrored from the main memory to the cache memory block in prior art cache architectures, since by distributing the data across multiple banks is a necessary for conventional caches blocks organisa tion of data in a linear sequence in the cache not gege ben is (see the US book by J. Hennessy / D Patter son. "computer Architecture, a Quantitative Approach "Morgan Kaufmann Publishers, 1990, pp. 402-497).

Der Erfindung liegt die Aufgabe zugrunde, eine für die monoli thische Integration geeignete, aufwandsarme Cachespeicherar chitektur mit parallelem Zugriff zu entwickeln, die für N . The invention is based on the objective of developing a for monoli thische Integration appropriate expense poor Cachespeicherar tecture with parallel access, for N. M paralle, synchron arbeitende Verarbeitungseinheiten einerseits lesende und schreibende Zugriffe auf gemeinsame Datenstruktu ren in Form von Matrizen mit N × M Elementen sowie degene rierten Matrizen (Vektoren) mit N oder M Elementen und ein zelne Datenworte erlauben soll, wobei N und M eine beliebige Zweierpotenz darstellt. to M paralle, synchronously operating processing units on the one hand, read and write accesses to shared Datenstruktu ren in the form of matrices with N x M elements and degene tured matrices (vectors) with the N or M elements and indi vidual data words allow, where N and M is an arbitrary power of two represents. Adreßdistanzen in der Größe einer beliebigen Zweierpotenz in jeder Dimension zwischen den Ele menten sollen zulässig sein. Adreßdistanzen in the size of any power of two in each dimension between the ele ments are to be permitted. Die zulässige Größe der Daten strukturen soll dabei die tatsächliche Größe des aus mehreren Speicherbänken bestehenden Cachespeichers übersteigen dürfen, bei einem Zugriff auf nicht im Cache befindliche Daten werden diese aus einem im Hintergrund befindlichen konventionellen Hauptspeicher nachgeladen. The allowable size of the data structures should be allowed to exceed the actual size of the multi-memory banks cache while, when accessing not in the cache data, these are loaded from a container in the background conventional memory.

Bei dem erfindungsgemäßen Verfahren wird jeder zweidimensiona len Datenstruktur, auf die eine Gruppe aus synchronisierten Verarbeitungseinheiten zugreift, ein eigener, virtueller, zweidimensionaler Adreßraum zugewiesen, der im folgenden Ob jekt genannt wird. In the inventive method, each zweidimensiona len data structure to a group of synchronized processing units accesses, a separate, virtual, two-dimensional address space is assigned, which is called hereinafter ject Ob. Der der Datenstruktur zugewiesene Adreßraum entspricht dieser in seinen Dimensionen, die verschiedenen Adreßräume werden durch eine fortlaufende Nummer unterschie den. The assigned address space of the data structure corresponding to that in its dimensions, the different address spaces are shooting by a sequential number to. Das Ansprechen von Daten innerhalb eines Objekts erfolgt ausschließlich mit lokalen virtuellen Adressen innerhalb des Objektadreßraums. The response data within a subject is carried out exclusively with local virtual addresses within the Objektadreßraums. Dies bietet eine Reihe wesentlicher Vortei le: Einerseits liegt die Größe üblicherweise zu bearbeitender Objekte weit unter der Größe üblicher Hauptspeicheradreßräume, daher kann die maximale Größe des zulässigen Objektadreßraumes entsprechend kleiner gehalten werden, was eine Verringerung des Aufwandes für die Adreßarithmetik sowie eine entsprechend höhere Verarbeitungsgeschwindigkeit der Adreßarithmetik be wirkt. This offers a number of significant ADVANTAGES le one hand, the size is usually to be processed objects far below the size of conventional Hauptspeicheradreßräume, therefore the maximum amount of allowable Objektadreßraumes can be kept correspondingly smaller, resulting in a reduction of the expenses for the address arithmetic and a correspondingly higher processing speed of the address arithmetic be acting. Zweitens entfällt die zeitaufwendige Transformation der virtuellen Adressen auf physikalische Speicheradressen zwi schen Adressierung und Ansprechen des Wortes im Cache. Second, the time-consuming transformation of virtual addresses to physical memory addresses eliminates interim rule addressing and response of the word in the cache. Dies führt zu einer erheblichen Verringerung der Latenzzeit für einen derartigen Speicher. This leads to a significant reduction in the latency of such memory. Die Transformation auf physikali sche Hauptspeicheradressen wird dagegen nur noch beim block weise durchgeführten Laden bzw. Schreiben des Cacheinhalts aus bzw. in den Hauptspeicher ausgeführt, wo diese weit weniger zeitkritisch ist. The transformation to physi cal main memory addresses on the other hand only run when blocks performed Laden or write the cache contents from and into the main memory, where it is much less time-sensitive.

Der Cachespeicher ist zudem für den Benutzer bzw. Compiler völlig transparent, dh das Anfordern von Daten aus dem Hauptspeicher bzw. das Zurückschreiben nicht mehr benötigter Daten geschieht automatisch. The cache is also completely transparent to the user or compiler, that is requesting data from the main memory and writing back old data automatically. Die sehr aufwendige und compiler feindliche Verwaltung eines in der Größe limitierten lokalen Speichers mit parallelem Zugriff, die nach dem bisherigen Stand der Technik vom Benutzer selbst durchgeführt werden musste, entfällt bei Anwendung der Erfindung völlig, wobei gleichzeitig der Hardwareaufwand für einen solchen Speicher ebenfalls geringer ist als bei den bisher bekannten Lösungen. The very complex and compiler enemy administration of a limited in the size of the local memory with parallel access, which had to be performed according to the prior art by the user itself, is completely eliminated when the invention is, simultaneously the hardware outlay for such a memory is also less as in the previously known solutions. Das Addressieren von Daten ausschließlich mit lokalen Positio nen innerhalb einer Datenstruktur anstatt mit einer Hauptspei cheradresse vereinfacht zudem die Programmierung wesentlich. The Addressieren data exclusively with local positio nen within a data structure instead of a Hauptspei cheradresse also simplifies programming considerably.

Die Einführung des Cacheprinzips für einen zweidimensionalen Adreßraums bietet zudem den Vorteil, daß die typisch in beiden Dimensionen unterschiedlich stark ausgeprägte zeitliche und örtliche Lokalität von Algorithmen der zweidimensionalen digi talen Signalverarbeitung von der erfindungsgemäßen Speicherar chitektur erheblich besser ausgenutzt wird als bei Caches nach dem bisherigen Stand der Technik, die nur einen linearen, eindimensionalen Adreßraum besitzen. The introduction of the cache principle for a two-dimensional address space also provides that the typical in two dimensions varying degrees of temporal and spatial locality of algorithms of two-dimensional digi tal signal processing of the invention Speicherar tecture is significantly better utilized than in caches in the prior the advantage of technology, which only have a linear, one-dimensional address space.

Nachfolgend wird die Erfindung anhand der Zeichnung erläutert. The invention will be explained with reference to the drawing. In der Zeichnung zeigen: In the drawing:

Fig. 1 ein Blockschaltbild eines Parallelrechners mit synchronisierten Verarbeitungseinheiten Fig. 1 is a block diagram of a parallel computer with synchronized processing units

Fig. 2 ein Beispiel eines matrixförmigen Zugriffs auf ein Objekt Fig. 2 shows an example of a matrix-type access to a object

Fig. 3 die Verteilung der Daten eines Objekts auf eine Anzahl Speicherbänke und die Einführung von virtuellen Blöcken im Objektadreßraum Fig. 3 shows the distribution of the data of an object to a number of memory banks and the introduction of virtual blocks in Objektadreßraum

Fig. 4 die Anordnung der Daten innerhalb einer bei spielhaft ausgewählten Speicherbank Fig. 4 shows the arrangement of the data within a selected memory bank in way of example

Fig. 5 der Aufbau einer Adreßrechnereinheit zur Loka lisierung der Daten im Speicher Fig. 5 shows the structure of a Adreßrechnereinheit to Loka capitalization of the data in the memory

Fig. 6 der Aufbau eines Tags zur Lokalisierung von Daten im Speicher Fig. 6, the structure of a tag for localization of data in memory

Der Parallelrechner gemäß Fig. 1 umfaßt ein oder mehrere Gruppen von je N . The parallel computer of FIG. 1 comprises one or more groups of N. M mit N, M = 1, 2, . M N, M = 1, 2,. . , ., parallelen, mitein ander synchronisierte Verarbeitungseinheiten 10 , die lesend und schreibend über einen Speicher-Crossbar 11 auf den Cache speicher 12 zugreifen können. ., Parallel, synchronized mitein other processing units 10 that can access a memory crossbar 11 to the cache memory 12 for reading and writing. Der Begriff Verarbeitungseinheit 10 umfaßt je eine arithmetische Logikeinheit zusammen mit ei nem Registerfile zur Zwischenspeicherung, einem Adreßrechner, der aber auch in die arithmetischen Logikeinheiten integriert sein kann und einer Hit/Miss-Erkennungslogik. The term processing unit 10 comprises a respective arithmetic logic unit along with egg nem register file for temporary storage, an address computer, but which may also be integrated in the arithmetic logic units and a hit / miss detection logic. Die Verarbei tungseinheiten 10 werden von einer oder mehreren Kontrollein heiten 15 angesteuert, die auch die Adressen für den paralle len Zugriff generiert. The process ing units 10 are driven by one or more Kontrollein units 15, which also generates the addresses for access paralle len. Der Cachespeicher 12 besteht aus R . The cache memory 12 consists of R. Q einzelnen Speicherbänken 13 , wobei sich R = N + 1 und Q = M + 1 ergibt, sowie einem I/O-Prozessor 14 . Q individual memory banks 13, wherein R = N + 1 and Q = M + 1 results, as well as an I / O processor fourteenth Der I/O-Prozessor dient zum Transfer der Daten zwischen Cache und externem Hauptspei cher, er kann über einen Daten- und Adreßbus 16 auf den Haupt speicher 17 zugreifen. The I / O processor is used to transfer data between cache and external Hauptspei cher, it can access memory via a data and address bus 16 to the main 17th

Aus Sicht der Verarbeitungseinheiten stellt der Cachespeicher eine Vielzahl von zweidimensionalen virtuellen Adreßräumen zur Verfügung, die durch eine wahlfrei zu vergebenden Nummer, die Objektnummer, unterschieden werden. From the perspective of the processing units, the cache a variety of two-dimensional virtual address spaces available, which are distinguished by a choice freely assignable number, the object number. Fig. 2 zeigt ein Beispiel eines solchen virtuellen Adreßraums, auf den von N = 2, M = 2 Verarbeitungseinheiten zugegriffen wird. Fig. 2 shows an example of such a virtual address space, to the N = 2, M = 2 processing units accessed. Daten 20 innerhalb des Adreßraums werden durch eine horizontale Adreßkomponente A h 21 und eine vertikale Adreßkomponente A v 22 adressiert. Data 20 within the address space to be addressed by a horizontal address component A h 21 and a vertical address component A v 22nd Fig. 2 zeigt ebenfalls die auf den Adreßraum zulässigen Ma trixzugriffe für das Beispiel von 2 . Fig. 2 also shows the permitted to the address space Ma trixzugriffe for the example of Figure 2. 2 Verarbeitungseinheiten. Two processing units. Ein Matrixzugriff ist gekennzeichnet durch die horizontale und vertikale Adreßkomponente A h,R und A v,R des Referenzelementes 23 , das die linke obere Ecke der Matrix darstellt. A matrix access is characterized by the horizontal and vertical address component A is H, R and A v, R of the reference element 23, representing the upper left corner of the matrix. Die Posi tion der übrigen Elemente ergibt sich durch die Elementdistan zen D h und D v in horizontaler und vertikaler Richtung. The posi tion of the remaining elements is given by the Elementdistan zen D h and D v in the horizontal and vertical directions. Die Distanzen D h und D v dürfen beliebige Potenzen von 2 annehmen. The distances D h and D v may assume any powers of the second Wird eine beziehungsweise beide Distanzen zu 0 gewählt, so entartet die Matrix in einen Vektor oder Skalar, wobei das gleiche Datum entsprechend Fig. 2 dann mehreren Verarbeitungs einheiten zugeordnet wird. Is chosen or a both distances to 0, the matrix degenerates into a vector or scalar, wherein the same date as shown in FIG. 2 is then assigned to multiple processing units.

Fig. 3 zeigt die Verteilung der Daten eines Adreßraums auf die Speicherbänke des Cachespeichers für ein Beispiel mit 2 . Fig. 3 shows the distribution of the data of an address space to the memory banks of the cache memory for example with 2, 2 Ver arbeitungseinheiten. Ver two processing units. Entsprechend der gewählten Dimensionie rung sind 9 Speicherbänke notwendig. According to the selected dimensioning tion 9 memory banks are necessary. Die Ziffern 0-8 in Fig. 3 zeigen an, welcher Speicherbank das an der entsprechenden Stelle befindliche Datum physikalisch zugeordnet wird. The numerals 0-8 in Fig. 3 indicate which memory bank the date contained in the corresponding location is physically associated. Für andere N, M erfolgt die Verteilung entsprechend, so daß jedes R.-te Datum einer Zeile der gleichen Speicherbank zugeordnet wird und sich die Zeilen mit der Frequenz Q wiederholen. For other N, M the distribution is carried out correspondingly, so that each R.-th data of one line is assigned to the same memory bank and repeat the line at the frequency Q.

Gemäß der Erfindung wird nun jedes Objekt logisch in zweidi mensionale virtuelle Blöcke ( 30 ) unterteilt, die die kleinste gemeinsame Datenstruktur darstellen, die vom Cache verwaltet wird. According to the invention, each object being logically organized in zweidi dimensional virtual blocks (30) is divided now representing the lowest common data structure that is managed by the cache. Diese Unterteilung entspricht der Blockunterteilung des gesamten linearen Adreßraums bei einem konventionellen Cache. This division corresponds to the block division of the entire linear address space for a conventional cache. Der Unterschied zu diesem besteht darin, daß die virtuellen Blöcke zwei Adreßdimensionen besitzen und nicht an den Haupt speicheradressraum, sondern an den lokalen, virtuellen Adreß raum jeder Datenstruktur gebunden sind. The difference with this is that the virtual blocks have two and not Adreßdimensionen memory address space to the host, but in the local virtual address space of each data structure are bonded. Ein virtueller Block stellt somit einen Ausschnitt aus dem Objektadressraum dar, der sich über zwei Dimensionen erstreckt. A virtual block thus represents a section of the object address space that spans two dimensions. Die Größe der Blöcke S VB,H in horizontaler Richtung und S VB,v in vertikaler Richtung ergibt sich zu S VB,h = R . The size of the blocks S VB, H in the horizontal direction and S VB, v in the vertical direction is given by S VB, h = R. 2 X und S VB,v = Q . X 2 and S VB, v = Q. 2 Y mit X, Y = 0, 1, 2 . 2 Y with X, Y = 0, 1; 2. . , . , beliebig wählbar. selected as desired. Fig. 3 zeigt die Unterteilung in derartige virtuelle Blöcke 30 , hier als Beispiel wieder für 2 . Fig. 3 shows the subdivision in such virtual blocks 30, as an example again for 2 hours. 2 Verarbeitungseinheiten und mit S VB,h = S VB,v = 12. 2 processing units and with S VB, VB h = S, v = 12th

Jeder der insgesamt R . Each of the total R. Q Speicherbänke des Cachespeichers wird nun in eine Anzahl von Sets (N MSet ), ( 40 ), logisch unterteilt. Q memory banks of the cache memory will now be in a number of sets (N mset), (40) logically divided. Dabei sei N MSet = S VB,V div Q, wobei div als ganzzahlige Divi sion aufzufassen ist. It should N mset = S VB, V div Q, where div is interpreted as integer Divi sion. Jedes Set wird wiederum in eine Anzahl Blöcke ( 41 ) zu mehreren Datenworten aufgeteilt, die im folgen den zur Unterscheidung von den virtuellen Blöcken der Objekte als physikalische Blöcke bezeichnet werden. Each set will turn into a number of blocks (41) divided into a plurality of data words, which are referred to as physical blocks in the follow for distinguishing the virtual blocks of the objects. Die Anzahl der physikalischen Blöcke N MBlock ist beliebig wählbar, wobei zur Reduktion des Adreßrechnungsaufwands N MBlock vorzugsweise zu einer Potenz von 2 zu wählen ist. The number of physical blocks MBLOCK N is arbitrary, it being choose to reduce the Adreßrechnungsaufwands N MBLOCK preferably to a power of the second Zur Speicherung eines vir tuellen Blocks ( 30 ) wird pro Bank in jedem Set ( 40 ) ein physi kalischer Block ( 41 ) allokiert. For storing a vir tual block (30) (40) is allocated a physi Kalisz block (41) for each bank in each set. Die Lokalisierung eines jeden in der Zugriffsmatrix enthaltenen Datenworts an der Stelle A h , A v innerhalb des Objekts geschieht dann wie folgt: The localization of each in the access matrix contained data word at the point A H, A v within the object occurs then as follows:
Bankauswahl: Verteilungsfunktion Bank selection: distribution function

A Bank = A h modR + R . A bank = A h modR + R. (A v modQ) (Gl. 1) (A v mod q) (Eq. 1)

Setauswahl: Setfunktion Setauswahl: Setfunktion

A MSet = (A v modS VB,v ) div Q = (A v divQ) mod 2 Y (Gl. 2) A mset = (A VB v mod, v) div Q = (A DIVQ v) mod 2 Y (Eq. 2)

Auswahl phys. Block: Beliebiges Verfahren zur Cache-Blocker setzung, z. . Phys selection block: Any method for cache blocker translation, z. B. least-recently-used, direct mapped oder voll assoziativ, siehe dazu z. As least-recently-used, direct mapped or fully associative, see eg. B. das US Buch von D. Hennessy und D. Patterson: Computer Architecture - A Quan titative Approach, Morgan-Kaufmann, 1990. pp. As the US book by D. Hennessy and D. Patterson: Computer Architecture - A Quan titative Approach, Morgan Kaufmann, 1990. pp. 408-414 408-414
Offset-Adresse im physikalischen Block: Adressfunktion Offset address in the physical block: address function

A PBlock = (A h modS VB,h ) div R = (A h divR) mod 2 X (Gl. 3) A pBLOCK = (A VB MODS h, h) R = div (A DIVR h) mod 2 x (Eq. 3)

Fig. 4 zeigt die Anordnung der Daten eines beliebige ausge wählten Objekts mit der Nummer "3" am Beispiel der Speicher bank Nr. 0. Die Größe des virtuellen Blocks entspricht dabei dem in Fig. 3 gegebenen Beispiel (X, Y = 2). Fig. 4 shows the arrangement of data of an arbitrary been selected object with the number "3" on the example of the memory bank no. 0. The size of the virtual block corresponds to the example given in FIG. 3, (X, Y = 2). Die übrigen Spei cherbänke sind entsprechend aufgebaut und enthalten die über die Verteilungsfunktion (Gl. 1) zugewiesenen restlichen Daten. The remaining SpeI cherbänke constructed in accordance with and containing the distribution function (Eq. 1) assigned to the remaining data.

Bei der praktischen Realisierung des Adreßrechners wird die Tatsache ausgenutzt, daß entsprechend der Gleichungen Gl. In the practical realization of the address calculator, the fact is exploited that in accordance with the equations Eq. 1 bis Gl. 1 to Eq. 3 lediglich eine Division und Modulobildung mit R erforderlich ist. 3, only a division and Modulobildung R is required. Die Modulo-Operationen 2 X und 2 Y in den ge nannten Gleichungen können ohne arithmetischen Aufwand durch direktes Abgreifen der untersten Bits der Zwischenergebnisse ermittelt werden. The modulo-2 operations X and Y 2 in the called ge equations can be determined without arithmetic effort by directly tapping the lowermost bits of the intermediate results. Fig. 5 zeigt die beispielhafte Realisierung eines Adreßrechners mit den Parametern N = M = 2, R = Q = 3, S VB,v = 12, S VB,h = 12 und N MSet = 4. Ein Adreßrechner entsprechend Fig. 5 ist pro Verarbeitungseinheit einmal erforderlich. Fig. 5 shows the exemplary implementation of an address calculator with the parameters N = M = 2, R = Q = 3, S VB, v = 12, S VB, h = 12 and N mset An address calculator = 4 corresponding to FIG. 5 is per processing unit once required. Die durch die in Fig. 2 charakterisierten Adreßparameter der Ma trix werden dabei durch den Programmablauf gesteuert an alle Verarbeitungseinheiten übergeben, die anhand ihrer Position in der Matrix der Verarbeitungseinheiten mittels der Adreßberech nungseinheit nach Fig. 5 zunächst die Adresse A h , A v des ihnen jeweils zugeordneten Datenwortes im virtuellen Adreßraum und daraus die Position des entsprechenden Datenwortes im Cache berechnen. By the characterized in Fig. 2 address parameters of Ma trix are controlled by the program flow is passed, the voltage unit on the basis of their position in the matrix of the processing units by means of the Adreßberech of FIG all processing units. 5, first, the address A is H, A v of them calculate respectively associated data word in the virtual address space and from this the position of the corresponding data word in the cache. Der Adreßrechner besteht lediglich aus zwei Drei- Operanden-Addierern, zwei Modulo- und zwei Divisionseinheiten mit der Breite der jeweils maximal für ein Objekt zu lässigen Adreßwortbreite pro Komponente. The address calculator consists of only two three-operands adders, modulo two and two division units with the width of each maximum for an object to be permeable Adreßwortbreite per component. Für eine anderere Parametrie rung N, M, S VB,v , S VB,h ändern sich lediglich die Werte der Festwert-Modulo- bzw. Divisionseinheiten und die Abgriffe der Ergebnisbits entsprechend den Gleichungen 1-3. For anderere Parametrics N, M, S VB, v, S VB, h tion, only the values of the fixed value modulo or division units, and the taps of the result bits according to the equations 1-3 to change.

Die Hit-/Miss-Erkennung des Caches geschieht über ein Tag-Re gister, das entsprechend Fig. 6 die Objektnummer sowie die horizontale und vertikale virtuelle Blockadresse A VBT,h und A VBT,v enthält. The hit / miss-detection of the cache is done by a tag re gister, which according to FIG. 6, the object number and the horizontal and vertical virtual block address A VBT containing H and a VBT, v. Diese sind definiert als These are defined as
Horizontale virtuelle Blockadresse: Horizontal virtual block address:

A VBT,h = A BS,h div S vB,h (Gl. 4) A VBT, h = A BS, h div S BB, h (Eq. 4)

Vertikale virtuelle Blockadresse: Vertical virtual block address:

A VBT,v = A BS,v div S vB,v (Gl. 5) VBT A, v = A BS, v vB div S, v (Eq. 5)

wobei A BS,h , A BS,v den Beginn des virtuellen Blockes, also die Adresskomponenten des Wortes mit der niedrigsten Adresse im virtuellen Block, im zweidimensionalen Objektadressraum dar stellen. wherein A BS, h, A BS, v represent the beginning of the virtual block, so the address components of the word with the lowest address in the virtual block, in the two-dimensional address space object represents.

Entsprechend der Anzahl der physikalischen Blöcke N MBlock pro Set ist für die Cacheeinheit ein Tag-Registerfile mit N MBlock Tag-Registern notwendig. According to the number of physical blocks north MBLOCK per set a tag register file with N MBLOCK tag registers is necessary for the cache unit. Das Tag-Registerfile kann dabei wahl weise einmal pro synchronisierter Gruppe von N . The tag register file can thereby either once a synchronized group of N. M Verarbei tungseinheiten vorhanden sein, wobei dann N . M process ing units be present, then N. M gleichzeitige Zugriffe auf das Tag-Registerfile zur Hit-/Miss-Erkennung not wendig sind. M simultaneous accesses are not nimble on the tag register file to the hit / miss detection. Aufwandsgünstiger ist es, das Tag-Registerfile einmal pro Verarbeitungseinheit vorzusehen, wobei dann jeweils nur ein einziger zeitgleicher Zugriff notwendig ist. Cost-effective way to provide the tag register file once per processing unit, in which case only a single simultaneous access is necessary. Der In halt der Tag-Registerfiles ist in diesem Fall bei allen Verar beitungseinheiten identisch. The halt in the tag register file in this case is beitungseinheiten all proces identical. Im Gegensatz zu herkömmlichen Ca ches wird das Tag-Registerfile in diesem Fall dann direkt in die Verarbeitungseinheiten integriert, anstatt den Cacheblöc ken zugeordnet. Unlike traditional Ca ches the tag register file is then integrated in this case, directly into the processing units assigned instead to Cacheblöc ken. Dadurch kann der Hit-Miss-Vergleich zeitgleich mit dem Transport der Adressen durch den Speicher-Crossbar vorgenommen werden, was die Latenzzeit des Caches deutlich reduziert. Thus, the hit-miss comparison can be made with the transport of the addresses by the memory crossbar at the same time what the latency of the cache significantly reduced.

Pro Zugriff auf den Cache wird je nach gewählter Blockauswahl- Strategie der Inhalt ein oder mehrerer Tags mit Zwischenergeb nissen aus der Adressberechnungsschaltung nach Fig. 5 vergli chen. Pro access to the cache is depending on the chosen strategy Blockauswahl- the contents of one or more tags with intermediate resulting nissen from the address calculation circuit of FIG. 5 vergli chen. Ein Hit ist gegeben, wenn die Objektnummern eines Tags und der lokalen Zugriffsadresse übereinstimmen sowie für die ses Tag gilt A VBT,h = A VB,h und A VBT,v = A VB,v mit A VB,h und A VB,h entsprechend Fig. 5. A hit occurs when the object numbers of tags and the local access address match and goes for the ses day A VBT, h = A VB, h and A VBT, v = A VB v A VB, h and A VB, h according to Fig. 5.

Im Falle eines Hits wird der Cache die Position des gesuchten Datenworts über die Adreßberechnungsschaltung entsprechend Fig. 5. ermittelt und von der betreffenden Position in der ausgewählten Cachebank gelesen beziehungsweise an diese ge schrieben. In the case of a hit, the cache is the position of the desired data word on the address calculation circuit corresponding to FIG. 5 is determined and read from that position in the selected cache bank or written to this ge. Im Falle eines Miss werden die miteinander synchro nisierten Verarbeitungseinheiten angehalten und der fehlende virtuelle Block über den I/O-Prozessor nachgeladen, das zuge hörige Tag-Register wird aktualisiert. In case of a failure, the stopped together synchro nized processing units and reload the missing virtual block via the I / O processor, the supplied hearing tag register is updated. Der I/O-Prozessor bein haltet eine Transformationstabelle, über die die Transforma tion der virtuellen Adressen des Blocks in den linearen Hauptspeicheradressraum erfolgt. The I / O processor involves a transformation table, over which the transformers tion of the virtual addresses of the block in the linear main memory address space is carried out. Dazu können beispielsweise die aus dem US Buch: Hwang, Advanced Computer Architecture, McGraw-Hill, 1993, S. 198-203 bekannten Techniken angewandt werden. Hwang, Advanced Computer Architecture, McGraw-Hill, 1993, pp 198-203 known techniques are applied: to the US from the book for example.

Nach dem Stand der Technik werden beim Nachladen einer inter nen Cache-Speicherbank die aufeinanderfolgenden Datenwörter über einen entsprechend breiteren externen Datenbus parallel geladen und dann Wort für Wort sequentiell in die Speicherbank geschrieben. According to the prior art, when loading a cache memory bank inter NEN the successive data words are loaded in parallel over a correspondingly wider external data bus, and then sequentially written word by word into the memory bank. Aufgrund der Verteilung von im Hauptspeicher be nachbarten Datenworten auf mehrere Cachespeicherbänke und der gewählten Verteilungsfunktion ist bei Anwendung der beschrie benen Erfindung auch ein paralleles Einschreiben mehrerer ge meinsam geladener Datenworte in die unterschiedlichen Cache bänke möglich, was den Nachladevorgang deutlich verkürzt und somit zu einer Leistungssteigerung des Systems führt. Due to the distribution of be in the main memory adjacent data words to a plurality of cache memory banks, and the selected distribution function, a parallel writing several ge jointly loaded data words in different cache banks when applying the beschrie surrounded invention are possible, which the reloading process significantly shortened, and thus of an increase in performance system results. Entspre chend können auch beim Zurückschreiben eines virtuellen Bloc kes mehrere im physikalischen Adreßraum aufeinanderfolgende Datenworte parallel aus den Cachebänken gelesen und parallel über den externen Datenbus in den Hauptspeicher geschrieben werden. Accordingly, several successive in physical address space data words are read in parallel from the cache banks and written in parallel via external data bus to the main memory kit also when restoring a virtual Bloc.

Claims (4)

1. Verfahren zur Steuerung einer Cachespeichereinheit für die Verwendung in einem Parallelprozessor, der mindestens eine Gruppe mit N . 1. A method for controlling a cache storage unit for use in a parallel processor, the at least one group N. M synchronisierten parallelen Verarbeitungsein heiten ( 10 ) enthält, mit N und M als beliebige Potenz von 2, bestehend aus R . M synchronized parallel Verarbeitungsein units (10), with N and M as any power of 2, consisting of R. Q, mit R = N + 1, Q = M + 1, einzelnen Speicherbänken ( 13 ) mit je einer Vielzahl von adressierbaren Wortspeicher plätzen, die über einen Speichercrossbar ( 11 ) an die N . Q, where R = N + 1, Q M + 1, individual memory banks (13) each having a plurality of addressable word locations, over a Speichercrossbar (11) to the N. M Ver arbeitungseinheiten angebunden sind sowie einem I/O-Prozessor ( 14 ), der Daten aus einem externen Hauptspeicher in die Ca chespeichereinheit laden oder aus dieser zurückschreiben kann, mit der Eigenschaft, daß die Adressierung der Daten in den Verarbeitungseinheiten über virtuelle, an jeweils eine Daten struktur gebundene und einer Gruppe aus N . M Ver are attached processing units as well as an I / O processor (14) data from an external main memory chespeichereinheit load in the Ca or can restore from this, with the characteristic that the addressing of the data in the processing units via virtual, in each case bonded structure data and a set of N. M Verarbeitungsein heiten zugeordnete zweidimensionale Adreßräume, die jeweils diese Datenstruktur enthalten und Objekte darstellen, die durch jeweils eine laufende Nummer unterschieden werden, er folgt und ein regulärer Zugriff der Verarbeitungseinheiten in Form einer Matrix auf das Objekt ermöglicht wird, wobei Adreß distanzen zwischen den einzelnen Elementen der Größe einer beliebigen Zweierpotenz in jeder Dimension zulässig sind, und die in den Adreßräumen enthaltenen Daten durch eine Funktion der Form A h mod R + R . M Verarbeitungsein units associated two-dimensional address space, which is in each case contain this data structure and represent objects that are distinguished by a respective sequence number, it follows and a regular access of the processing units in the form of a matrix allows for the object, said address distances between the individual elements the size of any power of two in each dimension is permitted, and the data contained in the address spaces by a function of the form a + R h R mod. (A v mod Q) auf die Speicherbänke verteilt sind, wobei A h die horizontale und A v die vertikale Adresskomponente der einzelnen Datenworte im Objektadreßraum darstellt, dadurch gekennzeichnet , daß jedes Objekt in vir tuelle Blöcke ( 30 ) der Größe S VB,h = R . (A v mod Q) allocated to the memory banks, where A h is the horizontal and A v is the vertical address component of the individual data words in Objektadreßraum represents, characterized in that each object in vir tual blocks (30) of the size S VB, h = R. 2 X in horizontaler Richtung und S VB,v = Q . X 2 in the horizontal direction and S VB, v = Q. 2 Y in vertikaler Richtung unterteilt wird, wobei X und Y zu 0, 1, 2, 3 . Y 2 is divided in the vertical direction, where X and Y to 0, 1, 2; 3. . , . , beliebig gewählt werden können, sowie die R . can be arbitrarily selected, and the R. Q Speicherbänke des Cachespeichers jeweils in eine Anzahl Sets ( 40 ) N MSet = S VB,v div Q, mit div als ganzzahlige Divisionsoperation, aufgeteilt werden, die wieder um aus einer beliebigen Anzahl physikalischer Blöcke ( 41 ) der Größe S MBlock = S VB,h div R bestehen, und denen die Daten jedes virtuellen Blocks so zugeordnet werden, daß für jeden virtuel len Block ( 30 ) genau ein physikalischer Block ( 41 ) pro Set ( 40 ) in jeder Speicherbank belegt wird und sich jedes Daten wort eines Matrixzugriffs auf ein Objekt im Set mit der Nummer A MSet = (A v div Q) mod 2 Y und innerhalb des physikalischen Blocks ( 41 ) an der relativen Adresse A PBlock = (A h div R) mod 2 X befindet, wobei die Auswahl des Blocks innerhalb des Sets durch eine von der Blockanfangsadresse oder Blocknutzungshäu figkeit abhängige Blockersetzungsstrategie erfolgt. Q memory banks of the cache memory into a number of sets, respectively (40) N mset = S VB, v, be divided with div as integer division operation, div Q, again by any of a number of physical blocks (41) of the size S MBLOCK = S VB , h div R exist, and where the data of each virtual block are allocated such that for each virtuel len block (30), a physical block (41) per set (40) is in each memory bank accurately and each data word of a matrix access = to an object in a set with the number a mset (a v div Q) is mod 2 Y, and within the physical block (41) to the relative address a pblock = (a h div R) mod 2 X, wherein the selection of takes place blocks within the set by a stiffness dependent on the block start address or Blocknutzungshäu block replacement policy.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß je des Tagregister des Caches die Nummer des Objekts, die hori zontale Blockadresse A VBT,h = A BS,h div S vB,h und die vertikale Blockadresse A VBT,v = A BS,v div S vB,v enthält, wobei A BS,h , A BS,v den Beginn des virtuellen Blockes, also die Adresskomponenten desjenigen Datenwortes, das im Block enthalten ist und die kleinsten Adresskomponenten A h , A v aller im virtuellen Block enthaltenen Datenworte besitzt, darstellt. 2. The method according to claim 1, characterized in that each of the tag register of the cache, the number of the object, the hori zontal block address A VBT, h = A BS, h div S BB, h, and the vertical block address A VBT, v = A BS , v div S vB containing v, where A BS, h, A BS, v the beginning of the virtual block, so the address components of that data word that is included in the block and the smallest address components A h, A v of all contained in the virtual block data words having represents.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Tagregister nicht den Cachebänken ( 13 ) zugeordnet sind, sondern in den Verarbeitungseinheiten ( 10 ) integriert sind, wobei die Anzahl der Tagregister der Anzahl der physika lischen Blöcke ( 41 ) pro Set ( 40 ) entspricht. 3. The method according to claim 1 or 2, characterized in that the tag register are not allocated to the cache banks (13), but in the processing units (10) are integrated, the number of said tag register of the number of physika metallic blocks (41) per package (40).
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Verteilung der Daten auf R . 4. The method according to claim 1, characterized in that the distribution of the data on R. Q Speicherbänke zum parallelen Le sen und Schreiben der Daten aus beziehungsweise in die Caches peicherblöcke von im Hauptspeicheradreßraum auf benachbarten Adressen liegenden Datenworten während des blockweisen Trans fers von Daten zwischen Hauptspeicher und Cache ausgenutzt wird. Q memory banks for parallel Le sen and writing of data from or in the cache of peicherblöcke lying in Hauptspeicheradreßraum on adjacent addresses data words during the block-wise trans fers of data between main memory and the cache is exploited.
DE19643688A 1996-10-23 1996-10-23 A method for controlling a cache memory unit with parallel conflict-free access to virtual 2-dimensional address spaces Expired - Fee Related DE19643688C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19643688A DE19643688C2 (en) 1996-10-23 1996-10-23 A method for controlling a cache memory unit with parallel conflict-free access to virtual 2-dimensional address spaces

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19643688A DE19643688C2 (en) 1996-10-23 1996-10-23 A method for controlling a cache memory unit with parallel conflict-free access to virtual 2-dimensional address spaces

Publications (2)

Publication Number Publication Date
DE19643688A1 DE19643688A1 (en) 1998-05-07
DE19643688C2 true DE19643688C2 (en) 2001-01-25

Family

ID=7809527

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19643688A Expired - Fee Related DE19643688C2 (en) 1996-10-23 1996-10-23 A method for controlling a cache memory unit with parallel conflict-free access to virtual 2-dimensional address spaces

Country Status (1)

Country Link
DE (1) DE19643688C2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19835216B4 (en) * 1998-08-05 2005-10-27 Systemonic Ag Processor and method for parallel data processing
US9892047B2 (en) 2009-09-17 2018-02-13 Provenance Asset Group Llc Multi-channel cache memory
US8661200B2 (en) 2010-02-05 2014-02-25 Nokia Corporation Channel controller for multi-channel cache

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
DE2747075A1 (en) * 1976-11-01 1978-05-24 Ibm Image storage and processing
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
DE2747075A1 (en) * 1976-11-01 1978-05-24 Ibm Image storage and processing
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Dissertation v. K. Rönner: Eine für Bildverarbei- tungsverfahren optimierte hochparallele RISC- Architektur, VDI-Verlag 1995, S. 15-18 *
Dissertation v. Volkers: Ein Beitrag zu Speicher- architekturen programmierbarer Multiprozessoren der Bildverarbeitung, VDI-Verlag 1992 *
Gössel/Rebel/Creutzburg: Speicherarchitektur und Parallelzugriff, Akademie-Verlag 1989 *
J. Hennessy/D. Patterson: Computer Architecture- A quantitative Approach,Morgan Kaufmann PublishersS. 402-497 *

Also Published As

Publication number Publication date
DE19643688A1 (en) 1998-05-07

Similar Documents

Publication Publication Date Title
DE3134428C2 (en)
DE3805107C2 (en)
DE69629800T2 (en) Address translation buffer in a computer system
DE69737757T2 (en) System and method for memory emulation
US6606692B2 (en) Prioritized bus request scheduling mechanism for processing devices
DE4217012C2 (en) With a variety of instruction streams and static nesting working microprocessor
DE69635009T2 (en) manage program interruption through a buffer memory to texture mapping data in a virtual memory
DE69721961T2 (en) Microprocessor with a Nachschreibcachespeicher
DE69820027T2 (en) Device for execution of virtual machine instructions
DE69233228T2 (en) Data management system for semiconductor memories with limited programming and IC memory card with such data management system
DE69628480T2 (en) Exception handling in a data processor
DE69913500T2 (en) Multiprocessor arrangement with shared memory access priority control
DE60011797T2 (en) Execution of multiple threads in a parallel processor
DE3508291C2 (en) Data processing system
DE69735342T2 (en) Binärprogrammkonvertiergerät and procedures
US6493800B1 (en) Method and system for dynamically partitioning a shared cache
DE69133257T2 (en) Apparatus and method for fast packet switching
US6185654B1 (en) Phantom resource memory address mapping system
EP0948842B1 (en) METHOD FOR AUTOMATIC DYNAMIC UNLOADING OF DATA FLOW PROCESSORS (DFP) AS WELL AS MODULES WITH BIDIMENSIONAL OR MULTIDIMENSIONAL PROGRAMMABLE CELL STRUCTURES (EPGAs, DPGAs OR THE LIKE)
DE2903349C2 (en) Processor and method for data processing
DE19882363B4 (en) Processor with a bypass network and a plurality of ports
DE69631055T2 (en) Memory interface unit, switching system with shared memory and process to
DE4218003C2 (en) Cache controller for a secondary cache memory system
DE3407983C2 (en) Multiprocessor computer system for generating pixel information in a hierarchical data structure defined object elements
DE69534113T2 (en) Compression of the command words of a computer

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8122 Nonbinding interest in granting licences declared
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee
8381 Inventor (new situation)

Inventor name: INVENTOR IS APPLICANT

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

Owner name: KNEIP, JOHANNES, DR.-ING, 01465 LIEGAU-AUGUSTUSBAD

Owner name: KÖHNE, HEIKO, 10119 BERLIN, DE