Beschreibung
Anordnung und Verfahren zur Reduzierung der Verarbeitungszeit einer Datenverarbeitungseinrichtung
Die vorliegende Anmeldung betrifft eine Anordnung und ein Verfahren, das dazu geeignet ist, die Verarbeitungszeit einer Datenverarbeitungseinrichtung zu reduzieren.
Datenverarbeitungseinrichtungen werden zur Bearbeitung von Daten, sowie zur Steuerung, Regelung und Analyse von Eingangs- und Ausgangssignalen verwendet. Während des Betriebs einer Datenverarbeitungseinrichtung, die üblicherweise einen Prozessor und einen Speicher aufweist, treten sogenannte In- terrupts auf. Dabei handelt es sich um Signale, die dem Prozessor ein Ereignis anzeigen. Bei den Ereignissen handelt es sich beispielsweise um Zustände, Ergebnisse oder Ereignisse, die sowohl innerhalb des Prozessors beziehungsweise der CPU (Central Processing Unit) als auch außerhalb der CPU erzeugt werden und die Ausführung einer speziellen Routine als Reaktion auf das Ereignis erfordern. Bei der speziellen Routine handelt es sich um die Interruptroutine, deren Startadresse als sogenannter Interrupt-Vektor an einer vorgegebenen Speicheradresse des Speichers gespeichert ist. Zusätzlich werden sogenannte Interrupt -Handler eingesetzt, bei denen es sich um kleine Programmsegmente handelt, die nach Auslösung eines Interrupts ausgeführt werden um zum Beispiel die Quelle des Interrupts zu bestimmen.
Da Interrupt -Vektoren auch während des Kaltstarts beziehungsweise Warmstarts einer Datenverarbeitungseinrichtung gültig sein müssen, werden sie in einem nicht flüchtigen Speicherbereich wie einem ROM (Read Only Memory) abgelegt. Ein ROM hat allerdings den Nachteil, daß die Zugriffszeit auf ihn sehr lang ist, was zu erheblichen Interrupt-Latenzzeiten führt.
Daher ist zum Beispiel m "ARM Training Material: Technical Training Course 1999, Chapter 16 und Chapter 19" vorgeschlagen, nach dem Start der Datenverarbeitungseinrichtung die Interrupt-Vektoren m einen schnelleren RAM-Bereich (Random Access Memory) zu kopieren und anschließend diesen Bereich über den ursprünglich vom ROM belegten Adreßbereich zu legen. Bei dieser Vorgehensweise wird auch davon gesprochen, daß der RAM-Bereich an die Stelle des ursprünglichen ROM-Bereichs ge- mappt wird. Durch dieses Vorgehen ist es möglich, die Inter- rupt-Latenzzeit in etwa zu halbieren.
Es ist die Aufgabe der Erfindung eine Anordnung und ein Verfahren anzugeben, wodurch die Bearbeitungszeit einer Daten- verarbeitungsemrichtung weiter reduziert wird.
Erfmdungsgemaß wird die Aufgabe gelost durch eine Datenver- arbeitungsemrichtung mit:
- einem Prozessor;
- einem Speicher, der mit dem Prozessor verbunden ist und ei- nen ersten Speicherbereich und einem zweiten Speicherbereich aufweist;
- einem ersten Cache, der den ersten Speicherbereich abbildet und einen Teil des ersten Speicherbereichs zwischenspeichert ; - einem zweiten Cache, der den zweiten Speicherbereich abbildet und zwischenspeichert,
- wobei der zweite Cache die gleiche Speicherkapazität aufweist wie der zweite Speicherbereich und
- wobei der zweite Speicherbereich ein RAM, ein ROM, ein EPROM oder ein EEPROM ist.
Durch diese Anordnung ist es möglich, zwei separate Cachespeicher zu verwenden, von denen einer beispielsweise zur Speicherung der Interrupt -Vektoren und Interrupt -Handlern ge- eignet ist und der andere Cache m herkömmlicher Weise für die Zwischenspeicherung des Hauptspeichers eingesetzt werden kann. Ein Cache ist dabei ein im Vergleich zum Arbeitsspei-
eher kleiner und schneller Speicher, der Daten aus dem großen und langsameren Hauptspeicher zwischenspeichert . Üblicherweise finden in dem Cache Verdrängungszyklen statt, da der Cache viel kleiner ist als der zwischen zu speichernde Hauptspei- eher. Durch die Speicherung der Interrupt-Vektoren und Interrupt-H ndler in einem Cache wird gewährleistet, daß die Bearbeitungszeit eines Interrupts wesentlich verkürzt wird.
In einer Ausgestaltung der erfindungsgemäßen Anordnung ist vorgesehen, daß in dem zweiten Cache ein Interrupt -Vektor gespeichert ist. Durch diese Anordnung ist es möglich, den gesamten zweiten Speicherbereich in dem zweiten Cache zwischen zu speichern und dadurch die Interrupt-Vektoren für schnelle Speicherzugriffe bereit zu halten.
In einer weiteren Ausgestaltung der erfindungsgemäßen Anordnung ist vorgesehen, daß in dem zweiten Cache ein Interrupt - Handler gespeichert ist. Durch diese Anordnung ist es möglich, den gesamten zweiten Speicherbereich in dem zweiten Cache zwischen zu speichern und dadurch die Interrupt -Handler für schnelle Speicherzugriffe bereit zu halten.
Weiterhin ist vorgesehen, daß die Speicherkapazität des ersten Cache kleiner ist als die Speicherkapazität des ersten Speicherbereiches. Durch diese Ausführung kann in kostensparender Weise ein Cache verwendet werden, der wesentlich kleiner als der erste Speicherbereich ist. Dadurch ist es allerdings erforderlich, daß in dem Cache sogenannte Verdrängungszyklen stattfinden, wobei die in dem Cache zwischengespei- cherten Daten, die nicht mehr benötigt werden, durch andere Daten aus dem Hauptspeicher ersetzt werden, die momentan in der CPU verarbeitet werden.
In einer weiteren Ausgestaltung der Erfindung ist vorgesehen, daß der Prozessor ein Prozessor der Firma ARM ist. Diese Anordnung ermöglicht die Verwendung der gesamten Prozessorfamilie der Firma ARM die zum Beispiel den Prozessor ARM7 umfaßt.
Es ist vorgesehen, daß der zweite Speicherbereich ein ROM, ein EPROM oder ein EEPROM ist. Durch diese Anordnung ist gewährleistet, daß nach einem Kaltstart beziehungsweise Warm- start in dem zweiten Speicherbereich und dem zweiten Cache Interrupt-Vektoren und Interrupt -Handler bereitstehen.
Bezüglich des Verfahrens wird die Aufgabe gelöst durch ein Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit den Schritten:
- Bereitstellen einer Datenverarbeitungseinrichtung, die einen Prozessor und einen Speicher umfaßt,
- wobei der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich aufweist; - abbilden des ersten Speicherbereichs auf einen ersten Cache ;
- Zwischenspeichern eines Teils des ersten Speicherbereichs in dem ersten Cache;
- abbilden des zweiten Speicherbereichs auf einen zweiten Cache;
- Zwischenspeichern des zweiten Speicherbereichs in dem zweiten Cache,
- wobei der zweite Cache die gleiche Speicherkapazität aufweist wie der zweite Speicherbereich und - wobei in dem zweiten Cache keine Verdrängungszyklen stattfinden;
- auswählen eines Programmcode- Segments , das in dem zweiten Speicherbereich gespeichert wird.
Das erfindungsgemäße Verfahren bildet den ersten Speicherbereich auf den ersten Cache ab. Da der erste Speicherbereich größer ausgebildet ist als der erste Cache, wird nur ein Teil des ersten Speicherbereichs in den ersten Cache zwischengespeichert und es finden Verdrängungszyklen statt. Die Daten des ersten Speicherbereichs werden dabei in dem ersten Cache gespeichert, wobei es sich beispielsweise um einen Programmcode handelt. Die Interrupt -Vektoren und die Interrupt-
Handler sowie speziell ausgewählte und vorbestimmte Routinen sind beispielsweise m dem zweiten Speicherbereich gespeichert, der durch einen zweiten Cache zwischengespeichert wird. Durch dieses Verfahren wird ein schneller Zugriff auf spezielle Routinen und Werte ermöglicht. Der zweite Speicherbereich ist beispielsweise so groß gebildet, wie der zweite Cache, so daß in ihm keine Verdrängungszyklen stattfinden.
Ein weiterer Verfahrensschritt sieht vor, daß das Pro- grammcode-Segment eine Subroutme ist.
Weiterhin ist vorgesehen, daß der zweite Speicherbereich ein RAM, ein ROM, ein EPROM oder ein EEPROM ist.
Ein weiterer Verfahrensschritt sieht vor, daß in dem zweiten Cache ein Interrupt-Vektor gespeichert wird.
Weiterhin ist vorgesehen, daß in dem zweiten Cache ein Interrupt-Handler gespeichert wird.
In einem weiteren vorteilhaften Verfahrensschritt ist vorgesehen, daß m dem zweiten Cash keine Verdrängungszyklen statt finden. Durch dieses Verfahren wird sichergestellt, daß die Interrupt-Vektoren beziehungsweise Interrupt-Handler ohne Zeitverzögerung direkt m dem zweiten Cache für den Prozessor bereitgehalten werden.
Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
Nachfolgend wird die Erfindung anhand von einem Ausführungs- beispiel und einer Figur naher erläutert .
In der Figur ist eine Datenverarbeitungseinrichtung 1 darge- stellt. Die Datenverarbeitungseinrichtung 1 besteht aus einem Prozessor 2 und einem Speicher 3. Der Speicher 3 ist m einen ersten Speicherbereich 4 und einen zweiten Speicherbereich 6
aufgeteilt. In diesem Ausführungsbeispiel ist der erste Speicherbereich 4, der den Hauptspeicher bildet, wesentlich größer als der zweite Speicherbereich 6. Bei dem zweiten Speicherbereich 6 handelt es sich in diesem Fall um einen ROM- Speicher, der Betriebsdaten bereithält, die zum Beispiel für einen Kaltstart oder einen Reset benötigt werden. Der erste Speicherbereich 4 ist beispielsweise ein RAM-Speicher, der während des Betriebs der Datenverarbeitungseinrichtung 1 zum Speichern von Programmsegmenten und Daten verwendet wird. In diesem Ausführungsbeispiel wird der erste Speicherbereich 4 in einem ersten Cache 5 zwischengespeichert. Der zweite Speicherbereich 6 wird in einem zweiten Cache 7 zwischengespeichert . In dem zweiten Speicherbereich 6 sind zum Beispiel Interrupt-Vektoren 8 und Interrupt-Handler 9 gespeichert. Der zweite Cache 7 hat dabei den Vorteil, daß er für die Software, die auf der Datenverarbeitungseinrichtung 1 abläuft, transparent ist und daher keine spezielle Programmierung seitens der Softwareentwickler erfordert . Ein Cache ist dabei ein kleiner schneller Speicher, der Daten aus dem vergleichs- weise großen und langsamen Hauptspeicher zwischenspeichert.
Da für die Interrupt -Vektoren 8 ein separater zweiter Cache 7 verwendet wird ist gewährleistet, daß die Interrupt -Vektoren 8 nicht durch andere Daten in dem zweiten Cache 7 verdrängt werden. Verdrängungszyklen finden nicht statt, da der zweite Cache 7 die gleiche Speicherkapazität aufweist wie der zweite Speicherbereich 6. Im Gegensatz dazu finden in dem ersten Cache 5 Verdrängungszyklen statt, die stets die aktuell vom Prozessor benötigten Daten aus dem ersten Speicherbereich 4 in den ersten Cache 5 kopieren und dort momentan nicht mehr benötigte Daten verdrängen. Die Vermeidung von Verdrängungszyklen in dem zweiten Cache 7 beschleunigt die Bearbeitungszeit der Datenverarbeitungseinrichtung 1 erheblich für die gespeicherten Daten und Routinen. Bereits realisierte Größen des zweiten Cache 7 sind zum Beispiel 256 Byte und 1024 Byte groß.
Ein Verfahren zum Betrieb der in der Figur dargestellten Datenverarbeitungseinrichtung 1 sieht vor, daß in dem zweiten Speicherbereich 6, der als ROM-Speicher gebildet ist, vorbestimmte und ausgewählte Unterprogramme, Interrupt -Vektoren 8 und Interrupt -Handler 9 gespeichert werden. Bei einem Kaltstart oder einem Reset der Datenverarbeitungseinrichtung 1 stehen somit die in dem zweiten Speicherbereich 6 gespeicherten Interrupt-Vektoren und Interrupt-Handler zur Verfügung. Während des Betriebs wird der erste Speicherbereich 4 durch den ersten Cache 5 zwischengespeichert und der zweite Speicherbereich 6 durch den zweiten Cache 7 zwischengespeichert. Greift der Prozessor 2 auf den Hauptspeicher zu, so wird zunächst im ersten Cache 5 beziehungsweise im zweiten Cache 7 nachgesehen, ob die Daten dort vorliegen. Ist dies der Fall, so spricht man von einem Cache-Hit, ist dies nicht der Fall so handelt es sich um einen Cache-Miss. Bei einem Cache-Miss werden nun weitere Aktionen in der Datenverarbeitungseinrichtung 1 durchgeführt, wobei die Daten aus dem Hauptspeicher gelesen und dem Prozessor 2 zugeführt werden. Dabei ver- streicht allerdings eine wesentlich längere Zeitspanne, als bei einem Cache-Hit.
Bezugszeichenliste
1 Datenverarbeitungseinrichtung
2 Prozessor 3 Speicher
4 erster Speicherbereich
5 erster Cache
6 zweiter Speicherbereich
7 zweiter Cache 8 Interrupt-Vektoren
9 Interrupt-Handler
Patentansprüche
1. Datenverarbeitungseinrichtung (1) mit:
- einem Prozessor (2); - einem Speicher (3), der mit dem Prozessor (2) verbunden ist und einen ersten Speicherbereich (4) und einem zweiten Speicherbereich (6) aufweist;
- einem ersten Cache (5) , der den ersten Speicherbereich (4) abbildet und einen Teil des ersten Speicherbereichs (4) zwischenspeichert;
- einem zweiten Cache (7) , der den zweiten Speicherbereich (6) abbildet und zwischenspeichert,
- wobei der zweite Cache (7) die gleiche Speicherkapazität aufweist wie der zweite Speicherbereich (6) und - wobei der zweite Speicherbereich (6) ein RAM, ein ROM, ein EPROM oder ein EEPROM ist.
2. Datenverarbeitungseinrichtung nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, daß in dem zweiten Cache (7) ein Interrupt -Vektor gespeichert ist .
3. Datenverarbeitungseinrichtung nach einem der Ansprüche i oder 2 , d a d u r c h g e k e n n z e i c h n e t, daß in dem zweiten Cache (7) ein Interrupt -Handler gespeichert ist .
4. Datenverarbeitungseinrichtung nach einem der Ansprüche 1 bis 3, d a d u r c h g e k e n n z e i c h n e t, daß die Speicherkapazität des ersten Cache (5) kleiner ist als die Speicherkapazität des ersten Speicherbereichs (4) .
5. Datenverarbeitungseinrichtung nach einem der Ansprüche 1 bis 3 , d a d u r c h g e k e n n z e i c h n e t, daß der Prozessor (2) ein Prozessor der Firma ARM ist.
6. Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit den Schritten:
- Bereitstellen einer Datenverarbeitungseinrichtung (1) , die einen Prozessor (2) und einen Speicher (3) umfaßt, - wobei der Speicher (3) einen ersten Speicherbereich (4) und einen zweiten Speicherbereich (6) aufweist;
- abbilden des ersten Speicherbereichs (4) auf einen ersten Cache (5) ;
- Zwischenspeichern eines Teils des ersten Speicherbereichs (4) in dem ersten Cache (5) ;
- abbilden des zweiten Speicherbereichs (6) auf einen zweiten Cache (7) ;
- Zwischenspeichern des zweiten Speicherbereichs (6) in dem zweiten Cache (7) , - wobei der zweite Cache (7) die gleiche Speicherkapazität aufweist wie der zweite Speicherbereich (6) und
- wobei in dem zweiten Cache (7) keine Verdrängungszyklen stattfinden;
- auswählen eines Programmcode-Segments , das in dem zweiten Speicherbereich gespeichert wird.
7. Verfahren nach Anspruch 6, d a d u r c h g e k e n n z e i c h n e t, daß das Programmcode -Segment eine Subroutine ist.
8. Verfahren nach einem der Ansprüche 6 oder 7, d a d u r c h g e k e n n z e i c h n e t, daß der zweite Speicherbereich (6) ein RAM, ein ROM, ein EPROM oder ein EEPROM ist.
9. Verfahren nach einem der Ansprüche 6 bis 8, d a d u r c h g e k e n n z e i c h n e t, daß in dem zweiten Cache (7) ein Interrupt-Vektor gespeichert wird.
10. Verfahren nach einem der Ansprüche 6 bis 9, d a d u r c h g e k e n n z e i c h n e t, daß in dem zweiten Cache (7) ein Interrupt-Handler gespeichert wird.