DE10313645A1 - Data processing system for a program controlled unit in which memory access processes by different elements of the data processing system are combined to reduce the number of memory accesses and increase data transfer rates - Google Patents
Data processing system for a program controlled unit in which memory access processes by different elements of the data processing system are combined to reduce the number of memory accesses and increase data transfer rates Download PDFInfo
- Publication number
- DE10313645A1 DE10313645A1 DE2003113645 DE10313645A DE10313645A1 DE 10313645 A1 DE10313645 A1 DE 10313645A1 DE 2003113645 DE2003113645 DE 2003113645 DE 10313645 A DE10313645 A DE 10313645A DE 10313645 A1 DE10313645 A1 DE 10313645A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- data processing
- processing device
- memory
- storage device
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/786—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
-
- 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, look ahead
- G06F9/3824—Operand accessing
-
- 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Logic Circuits (AREA)
- Static Random-Access Memory (AREA)
Abstract
Description
Die vorliegende Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff des Patentanspruchs 1, d.h. ein System mit einer Datenverarbeitungseinrichtung zum Verarbeiten von Daten, und einer Speichereinrichtung zum Speichern von Daten, wobei die Datenverarbeitungseinrichtung die von ihr zu verarbeitenden Daten durch entsprechende Lesezugriffe auf die Speichereinrichtung aus der Speichereinrichtung ausliest, und/oder in der Datenverarbeitungseinrichtung erzeugte Daten durch entsprechende Schreibzugriffe auf die Speichereinrichtung in die Speichereinrichtung schreibt.The The present invention relates to a device according to the preamble of claim 1, i.e. a system with a data processing device for processing data, and a storage device for storing of data, whereby the data processing device transfers the data from it processing data by appropriate read access to the memory device reads from the memory device, and / or in the data processing device generated data by appropriate write access to the memory device writes to the storage device.
Ein solches System ist beispielsweise eine programmgesteuerte Einheit wie beispielsweise ein Mikroprozessor, Mikrocontroller, oder Signalprozessor, oder ein eine programmgesteuerte Einheit enthaltendes System.On such a system is, for example, a program-controlled unit such as a microprocessor, microcontroller, or signal processor, or a system containing a program-controlled unit.
Die erwähnte Datenverarbeitungseinrichtung ist dabei der Core bzw. die CPU der programmgesteuerten Einheit; die genannte Speichereinrichtung kann eine innerhalb der programmgesteuerten Einheit oder eine außerhalb der programmgesteuerten Einheit vorgesehene Speichereinrichtung sein.The mentioned The data processing device is the core or the CPU of the program-controlled unit; said storage device can one inside the program-controlled unit or one outside the memory device provided in the program-controlled unit his.
Programmgesteuerte Einheiten und programmgesteuerte Einheiten enthaltende Systeme sind seit vielen Jahren in unzähligen Ausführungsformen bekannt, so daß auf weitere Erläuterungen verzichtet wird.Programmatic Systems are units and program-controlled units for many years in countless embodiments known so that on further explanations is waived.
Ein bekanntes Problem von programmgesteuerten Einheiten und programmgesteuerte Einheiten enthaltenden Systemen besteht darin, daß sie häufig nicht so schnell arbeiten wie man es sich wünschen würde. On known problem of program-controlled units and program-controlled Systems containing units are that they are often not work as fast as you would like.
Es sind verschiedene Möglichkeiten bekannt, die Arbeitsgeschwindigkeit von programmgesteuerten Einheiten und programmgesteuerte Einheiten enthaltenden Systemen zu steigern. Die bekannteste Möglichkeit besteht in der Erhöhung der Taktfrequenz. Da die Taktfrequenz aber bekanntlich nicht beliebig hoch gewählt werden kann, stößt man auch hierbei relativ schnell an nicht oder nur mit einem sehr großen Aufwand überwindbare Grenzen. Eine weitere Möglichkeit besteht in der Verwendung einer programmgesteuerten Einheit, die mehrere parallel arbeitende Cores bzw. CPUs enthält. Der Aufbau und der Betrieb einer solchen programmgesteuerten Einheit ist jedoch mit einem sehr großen Aufwand verbunden.It are different options known the working speed of program-controlled units and systems containing program-controlled units. The best known way consists in the increase the clock frequency. As is known, the clock frequency is not arbitrary chosen high can also be found here relatively quickly to not or only with a great deal of effort to overcome Limits. One more way consists in using a program-controlled unit that contains several cores or CPUs working in parallel. The construction and operation such a program-controlled unit, however, with a very huge Associated effort.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, das im Oberbegriff des Patentanspruchs 1 beanspruchte System mit möglichst geringem Aufwand derart weiterzubilden, daß sich dessen Leistungsfähigkeit steigern läßt.The The present invention is therefore based on the object Preamble of claim 1 claimed system with as much as possible to develop with little effort such that its performance can increase.
Diese Aufgabe wird erfindungsgemäß durch das in Patentanspruch 1 beanspruchte System gelöst.This The object is achieved by the System claimed in claim 1.
Das erfindungsgemäße System zeichnet sich dadurch aus, daß die Daten, die durch einen Lesezugriff der Datenverarbeitungseinrichtung auf die Speichereinrichtung aus der Speichereinrichtung ausgelesen werden, sowohl von der Datenverarbeitungseinrichtung zu verarbeitende Daten als auch von einer zweiten Datenverarbeitungseinrichtung zu verarbeitende Daten umfassen, und/oder daß die durch einen Schreibzugriff der ersten Datenverarbeitungseinrichtung auf die Speichereinrichtung in die Speichereinrichtung geschriebenen Daten sowohl in der ersten Datenverarbeitungseinrichtung erzeugte Daten als auch in der zweiten Datenverarbeitungseinrichtung erzeugte Daten umfassen.The system according to the invention is characterized in that the Data generated by a read access of the data processing device read from the storage device to the storage device be processed by both the data processing device Data as well as to be processed by a second data processing device Data include, and / or that through a write access of the first data processing device the storage device is written into the storage device Data both data generated in the first data processing device as well as data generated in the second data processing device include.
Durch das Vorsehen dieser Merkmale entfällt die Notwendigkeit, daß zum Auslesen der von der zweiten Datenverarbeitungseinrichtung zu verarbeitenden Daten aus der Speicherein richtung und/oder zum Einschreiben der von der zweiten Datenverarbeitungseinrichtung erzeugten Daten in die Speichereinrichtung eigene Zugriffe auf die Speichereinrichtung erfolgen müssen. Dadurch müssen weniger Zugriffe auf die Speichereinrichtung erfolgen als es der Fall wäre, wenn sowohl die erste Datenverarbeitungseinrichtung als auch die zweite Datenverarbeitungseinrichtung auf die Speichereinrichtung zugreifen würden, und dies wiederum hat den positiven Effekt, daß die Datenmenge, die zwischen der Speichereinrichtung und den Datenverarbeitungsvorrichtungen pro Zeiteinheit transferiert werden kann, größer ist als es der Fall wäre, wenn sowohl die erste Datenverarbeitungseinrichtung als auch die zweite Datenverarbeitungseinrichtung auf die Speichereinrichtung zugreifen würden. Durch die höhere Datenmenge, die zwischen der Speichereinrichtung und den Datenverarbeitungsvorrichtungen pro Zeiteinheit transferiert werden kann, können die Datenverarbeitungseinrichtungen schneller arbeiten, und dementsprechend erhöht sich die Leistungsfähigkeit des Systems.By the provision of these features eliminates the need to read out that to be processed by the second data processing device Data from the storage device and / or to write the data generated by the second data processing device in the storage device has its own access to the storage device must be done. Because of that fewer accesses to the storage device than are the case would be if both the first data processing device and the second Access data processing device on the storage device would and this in turn has the positive effect that the amount of data between the storage device and the data processing devices can be transferred per unit of time is larger than would be the case if both the first data processing device and the second Access data processing device on the storage device would. By the higher one Amount of data between the storage device and the data processing devices The data processing devices can be transferred per unit of time work faster, and accordingly the performance increases of the system.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen, der folgenden Beschreibung, und den Figuren entnehmbar.advantageous Developments of the invention are the dependent claims following description, and the figures.
Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Figuren näher erläutert. Es zeigenThe The invention is described below with reference to exemplary embodiments closer to the figures explained. Show it
Das im folgenden beschriebene System ist ein System mit einer ersten Datenverarbeitungseinrichtung zum Verarbeiten von Daten, einer zweiten Datenverarbeitungseinrichtung zum Verarbeiten von Daten, und einer Speichereinrichtung zum Speichern der durch die Datenverarbeitungseinrichtungen zu verarbeitenden Daten und der durch die Datenverarbeitungseinrichtungen erzeugten Daten.The The system described below is a system with a first Data processing device for processing data, a second data processing device for processing data, and a storage device for storing the data to be processed by the data processing devices and the data generated by the data processing devices.
Die erste Datenverarbeitungseinrichtung wird im betrachteten Beispiel durch den Core bzw. die CPU einer programmgesteuerten Einheit gebildet, die zweite Datenverarbeitungseinrichtung durch eine außerhalb der programmgesteuerten Einheit vorgesehene Logik, und die Speichereinrichtung durch einen innerhalb der programmgesteuerten Einheit vorgesehenen Datenspeicher.The The first data processing device is in the example considered formed by the core or the CPU of a program-controlled unit, the second data processing device by an outside logic provided by the program-controlled unit, and by the storage device a data memory provided within the program-controlled unit.
Die programmgesteuerte Einheit ist beispielsweise ein Mikroprozessor, ein Mikrocontroller, oder ein Signalprozessor.The program-controlled unit is, for example, a microprocessor, a microcontroller, or a signal processor.
Die programmgesteuerte Einheit, genauer gesagt der Core derselben führt ein Programm aus. Durch das Programm wird der Core zur Ausführung bestimmter Operationen veranlaßt. Diese Operationen umfassen die Verarbeitung von Daten, wobei das Programm vorgibt, wo die zu verarbeitenden Daten gespeichert sind, wie die zu verarbeitenden Daten zu verarbeiten sind, und was mit den bei der Datenverarbeitung erzeugten Daten zu geschehen hat. Der Core holt sich die von ihm zu verarbeitenden Daten von der durch das Programm vorgegebenen Stelle, verarbeitet diese Daten auf die vom Programm vorgegebene Art und Weise, und schreibt die hierbei erzeugten Daten an die vom Programm vorgegebene Stelle.The program-controlled unit, more precisely the core of it introduces Program. The program determines the core for execution Operations. These operations involve processing data, the program specifies where the data to be processed is stored, such as the data to be processed and what to do with the the data generated data processing has to happen. The core fetches the data to be processed by it through the Program specified position, processes this data to that of Program specified way, and writes the generated here Data to the location specified by the program.
Die vom Core zu verarbeitenden Daten sind im betrachteten Beispiel in der vorstehend erwähnten Speichereinrichtung gespeichert, und in diese Speichereinrichtung werden auch die vom Core erzeugten Daten geschrieben. In dieser Speichereinrichtung sind auch die Daten gespeichert, die von der durch die Logik gebildeten zweiten Datenverarbeitungseinrichtung zu verarbeiten sind, und in diese Speichereinrichtung werden auch die von der Logik erzeugten Daten geschrieben.The Data to be processed by the core is shown in the example in the aforementioned storage device stored, and in this storage device also from the Core generated data written. Are in this storage device also the data stored by that formed by the logic second data processing device to be processed, and in this storage device also becomes the data generated by the logic written.
Die Speichereinrichtung ist ein flüchtiger Speicher wie beispielsweise ein RAM und umfaßt mehrere Speicherbänke, wobei durch jeden Lesezugriff auf die Speichereinrichtung Daten aus mehreren oder allen Speicherbänken aus der Speichereinrichtung ausgegeben werden, und wobei durch jeden Schreibzugriff auf die Speichereinrichtung Daten in mehrere oder alle Speicherbänke geschrieben werden.The Storage device is volatile memory such as RAM and includes multiple memory banks, where with each read access to the memory device, data from several or all memory banks are output from the memory device, and with each write access data is written to several or all of the memory banks on the memory device become.
Die durch die Logik realisierte zweite Datenverarbeitungseinrichtung kann erheblich einfacher aufgebaut sein als die durch den Core der programmgesteuerten Einheit repräsentierte erste Datenverarbeitungseinrichtung: sie muß insbesondere nicht auf die Speichereinrichtung zugreifen können, in welcher die von ihr zu verarbeitenden Daten gespeichert sind und in welcher die von ihr erzeugten Daten zu speichern sind, und sie muß auch kein Programm ausführen können; sie muß "nur" ihr zugeführte Daten auf eine vorgegebene Art und Weise verarbeiten können. Das Auslesen der von der Logik zu verarbeitenden Daten aus der Speichereinrichtung und das Einschreiben der von der Logik erzeugten Daten in die Speichereinrichtung erfolgt durch den Core der programmgesteuerten Einheit. Genauer gesagt ist es so, daß die Daten, die durch einen Lesezugriff des Core auf die Speichereinrichtung aus der Speichereinrichtung ausgelesen werden, sowohl vom Core zu verarbeitende Daten als auch von der Logik zu verarbeitende Daten umfassen, und daß die durch einen Schreibzugriff des Core auf die Speichereinrichtung in die Speichereinrichtung geschrie benen Daten sowohl im Core erzeugte Daten als auch in der Logik erzeugte Daten umfassen.The second data processing device implemented by the logic can be much simpler than the core of the represented program-controlled unit first data processing device: in particular, it does not have to relate to the Storage device can access in which the data to be processed are stored and in which the data generated by it are to be stored, and it must also do not run a program can; it "only" has to be supplied with data can process in a given way. Reading the from the logic data to be processed from the storage device and writing the data generated by the logic into the memory device is done by the core of the program-controlled unit. More accurate it is said that the Data that is read by the core to the storage device can be read from the memory device, both to be processed by the core Data, as well as data to be processed by logic, and that the by write access by the core to the memory device in the memory device written data both generated in the core Data as well as data generated in logic include.
Die die zweite Datenverarbeitungseinrichtung bildende Logik kann, muß aber nicht, eine konfigurierbare Logik sein, die bei Bedarf umkonfiguriert werden kann.The the logic forming the second data processing device can, but need not, be configurable logic that can be reconfigured if necessary can.
Im folgenden werden verschiedene Ausführungsbeispiele einer solchen Anordnung beschrieben.in the The following are various embodiments of such Arrangement described.
Das
erste Ausführungsbeispiel
ist in
Die Speichereinrichtung S enthält im betrachteten Beispiel zwei Speicherbänke B1 und B2, und weist einen Write Port WP, und einen Read Port RP auf. Über den Write Port WP werden der Speichereinrichtung die in diese einzuschreibenden Daten zugeführt, und über den Read Port RP werden die aus der Speichereinrichtung auszugebenden Daten aus dieser ausgegeben. Genauer gesagt
- – werden über den Write Port WP der Speichereinrichtung zugeführte Daten D1 in die Speicherbank B1, und der Speichereinrichtung zugeführte Daten D2 in die Speicherbank B2 geschrieben, und
- – werden über den Read Port RP aus der Speicherbank B1 stammende Daten D3 und aus der Speicherbank B2 stammende Daten D4 ausgegeben.
- - Data D1 supplied to the memory device are written to the memory bank B1 via the write port WP, and data D2 supplied to the memory device are written to the memory bank B2, and
- - Data D3 originating from memory bank B1 and data D4 originating from memory bank B2 are output via the read port RP.
Der Speichereinrichtung S wird darüber hinaus eine vom Core C erzeugte Adresse A zugeführt. Die Adresse A wird sowohl an die erste Speicherbank B1 als auch an die zweite Speicherbank B2 angelegt.The Storage device S is about it also supplied an address A generated by the core C. The address A is both to the first memory bank B1 as well as to the second memory bank B2 created.
Die Speichereinrichtung S ist ein sogenanntes interleaved memory. D.h., die Speicherbänke B1 und B2 sind so verschaltet, daß durch aufeinanderfolgende Adressen verschiedene Speicherbänke angesprochen werden. Bezüglich näherer Einzelheiten zu einer solchen Speichereinrichtung wird auf John L. Hennessy & David A. Patterson, Computer architecture: a quantitative approach, 1990, Morgan Kaufmann Publishers, ISBN 1-55880-069-8, Seite 429 verwiesen.The Storage device S is a so-called interleaved memory. that is, the memory banks B1 and B2 are connected so that successive Addresses different memory banks be addressed. In terms of closer Details of such a storage device can be found in John L. Hennessy & David A. Patterson, Computer architecture: a quantitative approach, 1990, Morgan Kaufmann Publishers, ISBN 1-55880-069-8, page 429.
Im betrachteten Beispiel ist es so, daß der Speicherbank B1 die geraden Adressen zugeordnet sind, und der Speicherbank B2 die ungeraden Adressen.in the Considered example, the memory bank B1 is the even one Addresses are assigned, and the memory bank B2 is the odd one Addresses.
Der Core C enthält eine Befehlsausführungseinheit EU, und Multiplexer MUX1 und MUX2.The Core C contains a command execution unit EU, and multiplexers MUX1 and MUX2.
Die
Befehlsausführungseinheit
EU führt
ein Programm aus, das in einem in der
Anschließend schreibt der Core C die Daten D11 und/oder D21 in die Speichereinrichtung S.Then writes the core C stores the data D11 and / or D21 in the storage device S.
Der
erwähnte
Multiplexer MUX1 ist zwischen dem Read Port RP der Speichereinrichtung
S und der Befehlsausführungseinheit
EU angeordnet. Der Multiplexer MUX1 weist zwei Eingangsanschlüsse, einen
Ausgangsanschluß,
und einen in der
Der
erwähnte
Multiplexer MUX2 ist zwischen der Befehlsausführungseinheit EU und dem Write Port
WP der Speichereinrichtung S angeordnet. Der Multiplexer MUX2 weist
zwei Eingangsanschlüsse, einen
Ausgangsanschluß,
und einen in der
Der Logik L werden die vom Multiplexer MUX1 ausgegebenen Daten D34 sowie die Daten D4 als Eingangs-Daten zugeführt. Die Logik L verarbeitet zumindest Teile dieser Daten auf eine vorgegebene Art und Weise und erzeugt als Ergebnis die bereits erwähnten Daten D12 und/oder Daten D22.The Logic L are the data D34 and the output from the multiplexer MUX1 the data D4 are supplied as input data. The logic L processes at least parts of this data in a predetermined manner and as a result generates the data D12 and / or data already mentioned D22.
Der
erwähnte
Multiplexer MUX3 ist zwischen dem Core C sowie der Logik L und dem
Write Port WP der Speichereinrichtung S angeordnet. Der Multiplexer
MUX3 weist zwei Eingangsanschlüsse,
einen Ausgangsanschluß,
und einen in der
Im betrachteten Beispiel umfassen sämtliche Daten, d.h. D1, D2, D3, D4, D11, D12, D21, D22, und D34 jeweils 16 Bits. Es dürfte jedoch einleuchten, daß die Anzahl der Bits, die die genannten Daten jeweils umfassen, auch beliebig viel größer oder kleiner sein kann.in the considered example include all data, i.e. D1, D2, D3, D4, D11, D12, D21, D22, and D34 each have 16 bits. It should however, it is clear that the Number of bits that each include the specified data, too any much larger or can be smaller.
Wenn der Core C durch einen entsprechenden Befehl dazu veranlaßt wird, in der Speichereinrichtung S gespeicherte Daten zu verarbeiten, führt er einen entsprechenden Lesezugriff auf die Speichereinrichtung S aus, um die zu verarbeitenden Daten aus der Speichereinrichtung S auszulesen. Die Durchführung des Lesezugriffes umfaßt die Erzeugung einer Adresse zur Adressierung der Speichereinrichtung S. Von dieser Adresse wird das niederwertigste Bit an den Steueranschluß des Multiplexers MUX1 angelegt, und die restlichen Bits werden als Adresse A zur Adressierung der Speichereinrichtung S verwendet.When the Core C is caused to do so by an appropriate command, it is in memory direction S to process stored data, it carries out a corresponding read access to the storage device S in order to read out the data to be processed from the storage device S. The execution of the read access comprises the generation of an address for addressing the memory device S. Of this address, the least significant bit is applied to the control connection of the multiplexer MUX1, and the remaining bits are used as address A for addressing the memory device S.
Durch den Lesezugriff auf die Speichereinrichtung S werden gleichzeitig Daten D3 aus der Speicherbank B1 und Daten D4 aus der Speicherbank B2 ausgegeben, wobei die Daten D4 unter der Adresse gespeichert sind, die der Adresse folgt, unter welcher die Daten D3 gespeichert sind.By read access to the memory device S will be simultaneous Data D3 from memory bank B1 and data D4 from memory bank B2 is output, the data D4 being stored under the address which follows the address at which the data D3 is stored are.
Die aus der Speichereinrichtung S im Ansprechen auf einen Lesezugriff ausgegebene Datenmenge ist größer als die Datenmenge, die die Befehlsausführungseinheit EU auf einmal verarbeiten kann; die Befehlsausführungseinheit kann im betrachteten Beispiel nur entweder die Daten D3 oder die Daten D4 verarbeiten.The from the memory device S in response to a read access amount of data output is greater than the amount of data that the instruction execution unit EU at one time can process; the command execution unit can in the example considered only process either data D3 or data D4.
Von
den aus der Speichereinrichtung S ausgegebenen Daten werden der
Befehlsausführungseinheit
EU nur die von ihr zu verarbeitenden Daten, also entweder die Daten
D3 oder die Daten D4 zugeführt.
Die Auswahl der der Befehlsausführungseinheit
EU zugeführten
Daten erfolgt durch den Multiplexer MUX1 in Abhängigkeit vom niederwertigsten
Bit der vom Core erzeugten Adresse. Bei dem in der
Gleichzeitig mit der Zuführung der der Befehlsausführungseinheit EU zugeführten Daten werden auch der Logik L aus der Speichereinrichtung S ausgegebene Daten zugeführt, und zwar im betrachteten Beispiel sowohl die Daten D3 und D4.simultaneously with the feeder that of the command execution unit EU imported Data is also output to the logic L from the storage device S. Data supplied, in the example considered, both the data D3 and D4.
Die Befehlsausführungseinheit EU erzeugt aus den ihr zugeführten Daten die vorstehend bereits erwähnten Daten D11 und/oder die vorstehend ebenfalls bereits erwähnten Daten D21; die Logik L erzeugt aus den ihr zugeführten Daten die vorstehend bereits erwähnten Daten D12 und/oder die vorstehend ebenfalls bereits erwähnten Daten D22.The Instruction execution unit EU generates from the supplied Data the ones already mentioned Data D11 and / or the data already mentioned above D21; the logic L already generates the above from the data supplied to it mentioned Data D12 and / or the data already mentioned above D22.
Die von der Befehlsausführungseinheit EU und/oder die von der Logik L erzeugten und ausgegebenen Daten werden über die Multiplexer MUX2 und MUX3 in die Speichereinrichtung S geschrieben. Die Multiplexer MUX2 und MUX3 können unabhängig voneinander beliebig angesteuert werden. Die Ansteuerung der Multiplexer erfolgt durch den Core C.The from the command execution unit EU and / or the data generated and output by logic L. are about the multiplexers MUX2 and MUX3 are written in the memory device S. The MUX2 and MUX3 multiplexers can independently of each other can be controlled as desired. The multiplexers are controlled through the Core C.
Im betrachteten Beispiel sind die gleichzeitig aus der Speichereinrichtung S ausgegebenen Daten D3 und D4 unterschiedliche Informationen repräsentierende Elemente eines die Daten D3 und D4 umfassenden Datensatzes. Gleiches gilt für die in die Speichereinrichtung S geschriebenen Daten D1 und D2. Vorliegend repräsentieren die Daten D1 und D3 den Realteil einer komplexen Zahl, und die Daten D2 und D4 den Imaginärteil dieser komplexen Zahl.in the Examples considered are those from the storage device at the same time S output data D3 and D4 representing different information Elements of a data record comprising data D3 and D4. The same applies to the data D1 and D2 written in the storage device S. present represent the data D1 and D3 the real part of a complex number, and the data D2 and D4 the imaginary part this complex number.
Der Core C verarbeitet die den Realteil repräsentierenden Daten D3, und erzeugt dabei Daten D11, und die Logik L verarbeitet die den Imaginärteil repräsentierenden Daten und erzeugt hierbei Daten D22. Die Multiplexer MUX2 und MUX3 werden so angesteuert, daß die Daten D11 in die Speicherbank B1 geschrieben werden, und die Daten D22 in die Speicherbank B2.The Core C processes the data D3, and representing the real part generates data D11, and the logic L processes those representing the imaginary part Data and thereby generates data D22. The MUX2 and MUX3 multiplexers are controlled so that the Data D11 are written into memory bank B1, and the data D22 into memory bank B2.
Wenn die Befehlsausführungseinheit EU die den Imaginärteil repräsentierenden Daten D4 zugeführt werden würden, würde sie bei der Verarbeitung dieser Daten die Daten D21 erzeugen, und die Logik L würde die den Realteil repräsentierenden Daten D3 verarbeiten und hierbei die Daten D12 erzeugen. Die Multiplexer MUX2 und MUX3 würden dann so angesteuert werden, daß die Daten D21 in die Speicherbank B2 geschrieben werden, und die Daten D12 in die Speicherbank B1.If the command execution unit EU the imaginary part representing Data D4 supplied would be she would generate the data D21 when processing this data, and the Logic L would that represent the real part Process data D3 and thereby generate data D12. The multiplexers MUX2 and MUX3 would then be controlled so that the Data D21 are written into memory bank B2, and the data D12 into memory bank B1.
Es wäre auch möglich, daß die Logik L sowohl die den Realteil repräsentierenden Daten D3 als auch die den Imaginärteil repräsentierenden Daten D4 verarbeitet und hierbei die Daten D12 und D22 erzeugt. Die Multiplexer MUX2 und MUX3 würden dann so angesteuert werden, daß die Daten D12 in die Speicherbank B1 geschrieben werden, und die Daten D22 in die Speicherbank B2.It would be too possible, that the Logic L both the data D3 representing the real part and the the imaginary part representing Processed data D4 and generated data D12 and D22. The multiplexers MUX2 and MUX3 would then be controlled so that the Data D12 are written into memory bank B1, and the data D22 into memory bank B2.
Es dürfte einleuchten und bedarf keiner näheren Erläuterung, daß die Daten D3 und D4 auch beliebige andere zusammengehörende Informationen repräsentieren können, beispielsweise die x- und y-Koordinaten eines Punktes, oder bestimmte Elemente einer Matrix.It might illuminate and need no closer Explanation, that the Data D3 and D4 also any other related information represent can, for example the x and y coordinates of a point, or certain Elements of a matrix.
Die einen Datensatz repräsentierenden Daten D3 und D4 werden durch einen einzigen Lesezugriff des Core C auf die Speichereinrichtung S aus dieser ausgelesen, und teils durch die Befehlsausführungseinheit EU des Core C, und teils durch die Logik L verarbeitet. Die bei der Verarbeitung der Daten D3 und D4 durch die Befehlsausführungseinheit EU des Core C und durch die Logik L erzeugten und ausgegebenen Daten werden durch einen einzigen Schreibzugriff des Core C auf die Speichereinrichtung S in diese eingeschrieben. Dadurch kommt man mit einer minimalen Anzahl von Lesezugriffen und/oder Schreibzugriffen auf die Speichereinrichtung S aus. Dadurch müssen weniger Zugriffe auf die Speichereinrichtung S erfolgen als es der Fall wäre, wenn sowohl der Core C als auch die Logik L auf die Speichereinrichtung S zugreifen würden, und dies wiederum hat den positiven Effekt, daß die Datenmenge, die pro Zeiteinheit aus der Speichereinrichtung S ausgelesen werden kann, und die Datenmenge, die pro Zeiteinheit in die Speichereinrichtung S eingeschrieben werden kann, größer ist als es der Fall wäre, wenn sowohl der Core C als auch die Logik L auf die Speichereinrichtung zugreifen würden. Durch die effizienteren Zugriffe auf die Speichereinrichtung S können der Core C und die Logik L schneller arbeiten, und dementsprechend erhöht sich die Leistungsfähigkeit des Systems.The data D3 and D4 representing a data record are read out of the memory device S by a single read access by the core C, and are processed in part by the command execution unit EU of the core C and in part by the logic L. The data generated and output during the processing of the data D3 and D4 by the command execution unit EU of the core C and by the logic L are written into the memory device S by a single write access by the core C to the memory device S. This means that a minimal number of read accesses and / or write accesses to the memory device S is sufficient. This means less access to the Storage device S takes place as would be the case if both the core C and the logic L would access the storage device S, and this in turn has the positive effect that the amount of data that can be read out from the storage device S per unit time and the amount of data that can be written into the memory device S per unit of time is greater than would be the case if both the core C and the logic L were to access the memory device. Due to the more efficient access to the memory device S, the core C and the logic L can work faster, and accordingly the performance of the system increases.
Die
vorstehend unter Bezugnahme auf die
Eine
erste Abwandlung ist in
Die
in der
Die
in der
Das
Weglassen des Multiplexers MUX1 hat zur Folge, daß der Befehlsausführungseinheit
nur die Daten D3 oder nur die Daten D4 zugeführt werden können; in
dem in der
Weil keine Daten D21 erzeugt werden, kann auch der Multiplexer MUX3 weggelassen werden, und werden stets die von der Logik L erzeugten Daten D22 in die Speicherbank B2 der Speichereinrichtung S geschrieben.Because If no data D21 are generated, the multiplexer MUX3 can also be omitted and will always be the data D22 generated by the logic L. written in the memory bank B2 of the memory device S.
Eine
weitere Abwandlung der in der
Die
in der
Die
in der
Weil der Logik L die Daten D3 nicht zugeführt werden, kann sie keine Daten D12 erzeugen. Dies ermöglicht es, dem Multiplexer MUX2 wegzulassen und stets die von der Befehlsausführungseinheit erzeugten Daten D11 in die Speicherbank B1 der Speichereinrichtung S zu schreiben.Because the data L3 cannot be supplied to the logic L, it cannot Generate data D12. this makes possible it to omit the multiplexer MUX2 and always that of the instruction execution unit generated data D11 in the memory bank B1 of the memory device S to write.
Eine
weitere Abwandlung der in der
Die
in der
Die
in der
Eine
weitere Abwandlung der in der
Die
in der
Bei
der in der
Folglichconsequently
- – umfaßt die Speichereinrichtung S vier Speicherbänke B1 bis B4- Includes the storage device S four memory banks B1 to B4
- – weist der Multiplexer MUX1 vier Eingangsanschlüsse auf, wobei an diese Anschlüsse die Daten D3, D4, D7 und D8 angelegt werden,- points the multiplexer MUX1 has four input connections, to which connections the Data D3, D4, D7 and D8 are created,
- – wird der Multiplexer MUX1 durch die zwei niederwertigsten Bits der durch den Core erzeugten Adresse gesteuert,- becomes the multiplexer MUX1 through the two least significant bits of the controlled the core generated address,
- – verarbeitet die Befehlsausführungseinheit EU die Daten D3 und erzeugt hierbei Daten D11, oder verarbeitet die Befehlsausführungseinheit EU die Daten D4 und erzeugt hierbei Daten D21, oder verarbeitet die Befehlsausführungs einheit EU die Daten D7 und erzeugt hierbei Daten D31, oder verarbeitet die Befehlsausführungseinheit EU die Daten D8 und erzeugt hierbei Daten D41,- processed the command execution unit EU the data D3 and thereby generates data D11, or processes the command execution unit EU the data D4 and generates data D21, or processes the command execution unit EU the data D7 and thereby generates data D31, or processes the command execution unit EU the data D8 and thereby generates data D41,
- – weist die Logik L vier Eingangsanschlüsse für die Zuführung der zu verarbeitenden Daten auf,- points the logic L four input connections for the feed the data to be processed,
- – werden der Logik L die Daten D34, D4, D7 und D8 zugeführt,- become the logic L is supplied with the data D34, D4, D7 and D8,
- – verarbeitet die Logik L die Daten D34 und erzeugt hierbei Daten D12, oder verarbeitet die Logik L die Daten D4 und erzeugt hierbei Daten D22, oder verarbeitet die Logik L die Daten D7 und erzeugt hierbei Daten D32, oder verarbeitet die Logik L die Daten D8 und erzeugt hierbei Daten D42,- processed the logic L the data D34 and thereby generates data D12, or processes the logic L the data D4 and thereby generates data D22, or processes the logic L the data D7 and thereby generates data D32, or processes the logic L generates the data D8 and thereby generates data D42,
- – sind zwei weitere Multiplexer MUX4 und MUX 5 vorgesehen, wobei der Multiplexer MUX4 die Daten D31 und D32 zugeführt bekommt, und entweder die Daten D31 oder die Daten D32 an die Speichereinrichtung S, genauer gesagt an die dritte Speicherbank B3 derselben weiterleitet, und wobei der Multiplexer MUX5 die Daten D41 und D42 zugeführt bekommt, und entweder die Daten D41 oder die Daten D42 an die Speichereinrichtung S, genauer gesagt an die vierte Speicherbank B4 derselben weiterleitet.- are two further multiplexers MUX4 and MUX 5 are provided, the multiplexer MUX4 the data D31 and D32 supplied gets, and either the data D31 or the data D32 to the storage device S, more specifically to the third memory bank B3, and the multiplexer MUX5 receives the data D41 and D42, and either the data D41 or the data D42 to the storage device S, more specifically to the fourth memory bank B4.
Die einen Datensatz bildenden Daten D1, D2, D5 und D6 bzw. D3, D4, D7 und D8 repräsentieren beispielsweise einen durch vier 16-Bit-Integer-Zahlen definierten Vektor.The data D1, D2, D5 and D6 or D3, D4, D7 forming a data record and D8 represent for example one defined by four 16-bit integers Vector.
Der Vollständigkeit halber sei angemerkt, daß ein Datensatz eine beliebige Anzahl von zusammengehörenden Datenelementen umfassen kann. Diese Anzahl muß auch weder eine Potenz von 2, noch eine gerade Zahl sein.The completeness for the sake of note it should be noted that a Record include any number of related data elements can. This number must also be neither a power of 2 nor an even number.
Die
vorstehend unter Bezugnahme auf die
Darüber hinaus sind weitere Abwandlungen möglich.Furthermore further modifications are possible.
Beispielsweise kann vorgesehen werden, daß die Logik L Bestandteil der programmgesteuerten Einheit ist.For example can be provided that the Logic L is part of the program-controlled unit.
Die zweite Datenverarbeitungseinrichtung muß auch nicht eine Logik sein, sondern kann auch ein zweiter Core bzw. eine zweite CPU der programmgesteuerten Einheit sein.The second data processing device also need not be logic, but can also a second core or a second CPU of the program-controlled Unity.
Die zweite Datenverarbeitungseinrichtung kann auch eine zweite Befehlsausführungseinheit des Core C sein.The second data processing device can also be a second command execution unit of the Be core C.
Das beschriebene System kann auch mehrere zweite Datenverarbeitungseinrichtungen aufweisen.The The system described can also have several second data processing devices exhibit.
Darüber hinaus besteht auch keine zwingende Notwendigkeit, daß die Speichereinrichtung, in welche die von den beiden Datenverarbeitungseinrichtungen erzeugten Daten geschrieben werden, die Speichereinrichtung ist, in welcher die von den Datenverarbeitungseinrichtungen zu verarbeitenden Daten gespeichert sind.Furthermore there is also no imperative that the storage device, into which those generated by the two data processing devices Data is written which is the storage device in which the data to be processed by the data processing devices are saved.
Die Speichereinrichtung kann auch außerhalb der programmgesteuerten Einheit vorgesehen sein.The Storage device can also be outside the program-controlled Unit may be provided.
Als Speichereinrichtung kann auch ein umprogrammierbarer nichtflüchtiger Speicher wie beispielsweise ein Flash-Speicher verwendet werden.As Storage device can also be a reprogrammable non-volatile Memory such as flash memory can be used.
Ferner besteht keine zwingende Notwendigkeit, die in den Figuren gezeigten Multiplexer vorzusehen; diese können beispielsweise durch Vorsehen von Speicherbank-Auswahlleitungen und Tristate-Datenbussen ersetzt werden.Further there is no imperative to those shown in the figures To provide multiplexers; these can for example by providing memory bank selection lines and Tristate data buses are replaced.
Das vorstehend beschriebene System ist unabhängig von den Einzelheiten der praktischen Realisierung erheblich leistungsfähiger als herkömmliche Systeme , aber nur unwesentlich komplizierter aufgebaut.The The system described above is independent of the details of the practical implementation considerably more powerful than conventional systems , but only slightly more complicated.
- AA
- Adresseaddress
- BxBx
- Speicherbankmemory bank
- CC
- CoreCore
- Dxdx
- DatenData
- EUEU
- BefehlsausführungseinheitInstruction execution unit
- LL
- Logiklogic
- MUXxmuxx
- Multiplexermultiplexer
- RPRP
- Read PortRead port
- SS
- Speichereinrichtungmemory device
- WPWP
- Write PortWrite port
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10313645.2A DE10313645B4 (en) | 2003-03-26 | 2003-03-26 | System with a data processing device and a memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10313645.2A DE10313645B4 (en) | 2003-03-26 | 2003-03-26 | System with a data processing device and a memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10313645A1 true DE10313645A1 (en) | 2004-10-28 |
DE10313645B4 DE10313645B4 (en) | 2015-11-05 |
Family
ID=33038775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10313645.2A Expired - Lifetime DE10313645B4 (en) | 2003-03-26 | 2003-03-26 | System with a data processing device and a memory device |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10313645B4 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2458554A (en) * | 2008-03-24 | 2009-09-30 | Nvidia Corp | Coalescing memory accesses from multiple threads in a parallel processing system |
US8392669B1 (en) | 2008-03-24 | 2013-03-05 | Nvidia Corporation | Systems and methods for coalescing memory accesses of parallel threads |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051889A (en) * | 1987-10-23 | 1991-09-24 | Chips And Technologies, Incorporated | Page interleaved memory access |
US20020118204A1 (en) * | 1999-07-02 | 2002-08-29 | Milivoje Aleksic | System of accessing data in a graphics system and method thereof |
DE19525099C2 (en) * | 1995-06-29 | 2002-09-19 | Abb Patent Gmbh | Method for accessing memory locations |
-
2003
- 2003-03-26 DE DE10313645.2A patent/DE10313645B4/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051889A (en) * | 1987-10-23 | 1991-09-24 | Chips And Technologies, Incorporated | Page interleaved memory access |
DE19525099C2 (en) * | 1995-06-29 | 2002-09-19 | Abb Patent Gmbh | Method for accessing memory locations |
US20020118204A1 (en) * | 1999-07-02 | 2002-08-29 | Milivoje Aleksic | System of accessing data in a graphics system and method thereof |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2458554A (en) * | 2008-03-24 | 2009-09-30 | Nvidia Corp | Coalescing memory accesses from multiple threads in a parallel processing system |
GB2458554B (en) * | 2008-03-24 | 2010-06-30 | Nvidia Corp | Systems and methods for coalescing memory accesses of parallel threads |
US8086806B2 (en) | 2008-03-24 | 2011-12-27 | Nvidia Corporation | Systems and methods for coalescing memory accesses of parallel threads |
US8392669B1 (en) | 2008-03-24 | 2013-03-05 | Nvidia Corporation | Systems and methods for coalescing memory accesses of parallel threads |
Also Published As
Publication number | Publication date |
---|---|
DE10313645B4 (en) | 2015-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19526007C2 (en) | Horizontally partitioned instruction cache | |
DE69823180T2 (en) | MEMORY ACCESS PROTECTION | |
DE69434728T2 (en) | SYNCHRONIZATION SYSTEM AND METHOD IN A DATA CACHE SYSTEM WITH A SPLIT LEVEL | |
DE69727773T2 (en) | Improved branch prediction in a pipeline microprocessor | |
DE3438869C2 (en) | ||
DE4305442C2 (en) | Method and device for generating a test vector | |
DE4410060B4 (en) | Translating device for converting a virtual memory address into a physical memory address | |
DE60224774T2 (en) | Data processing system with read, modify and write unit | |
DE102013018135B4 (en) | Address bit remapping scheme for reducing an access resolution of DRAM accesses | |
DE19526960A1 (en) | A translation cross-allocation buffer organization with variable page size mapping and victim cache | |
DE69732793T2 (en) | EIGHT-BIT MICRO-CONTROLLER WITH RISC ARCHITECTURE | |
DE2758829A1 (en) | MULTIPROCESSOR DATA PROCESSING SYSTEM | |
DE19526008A1 (en) | Vertically partitioned primary instruction cache | |
DE3911721C2 (en) | ||
DE19824289A1 (en) | pipeline data processing system | |
DE69908772T2 (en) | DEVICE WITH CONTEXT SWITCHING ABILITY | |
DE4234194A1 (en) | SYSTEM AND METHOD FOR MEMORY SEGMENTATION FOR A MICROPROCESSOR | |
DE3919802A1 (en) | Memory component with vector processors and a scalar processor | |
EP1449091B1 (en) | Method for synchronising a memory with the main memory of a computer | |
DE3410497A1 (en) | COMPUTER ARRANGEMENT | |
DE4302754C1 (en) | Monolithic integrated data memory e.g. for access to data table or list - uses Hash function to generate memory address from data to be entered | |
DE10313645A1 (en) | Data processing system for a program controlled unit in which memory access processes by different elements of the data processing system are combined to reduce the number of memory accesses and increase data transfer rates | |
DE2747304A1 (en) | MICRO COMMAND DEVICE | |
DE60216016T2 (en) | Microprocessor with maintenance of memory consistency | |
DE3015876A1 (en) | ARRANGEMENT AND METHOD FOR A DIGITAL PROCESSOR FOR PRE-READING AN OPERATION CODE PART AND AN OPERATION PART OF A COMMAND WORD |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: INFINEON TECHNOLOGIES WIRELESS SOLUTIONS GMBH,, DE |
|
8127 | New person/name/address of the applicant |
Owner name: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE |
|
R082 | Change of representative |
Representative=s name: PATENT- UND RECHTSANWAELTE KRAUS & WEISERT, DE Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE |
|
R019 | Grant decision by federal patent court | ||
R020 | Patent grant now final | ||
R081 | Change of applicant/patentee |
Owner name: INTEL CORP., SANTA CLARA, US Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE Owner name: LANTIQ BETEILIGUNGS-GMBH & CO. KG, DE Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE |
|
R082 | Change of representative |
Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE |
|
R081 | Change of applicant/patentee |
Owner name: INTEL CORP., SANTA CLARA, US Free format text: FORMER OWNER: LANTIQ BETEILIGUNGS-GMBH & CO. KG, 85579 NEUBIBERG, DE |
|
R082 | Change of representative | ||
R071 | Expiry of right |