-
Die
vorliegende Erfindung betrifft einen Prozessor, der so gestaltet
ist, dass er eine gewünschte Operation
an Daten ausführt,
die aus einer Vielzahl von Quellspeichern parallel ausgelesen werden,
und ein damit verbundenes Verfahren.
-
EP-A-0193654
beschreibt einen Prozessor des Standes der Technik, bei dem bei
Befehlen, die zwei Operanden erfordern, jeder Operand aus einer anderen
Speichereinheit abgerufen wird. Auf die Speichereinheiten kann unabhängig zugegriffen
werden, und wenn eine von ihnen belegt ist, wird die Abruf-Anforderung
wiederholt.
-
10 ist
ein Blockdiagramm, das einen Prozessor des Standes der Technik zeigt.
Wie in 10 gezeigt, weist der Prozessor
ein Paar Quellspeicher 501, 502, eine Adressenerzeugungseinheit 503 und
eine Verarbeitungseinheit 504 auf. Die Verarbeitungseinheit 504 weist
einen Computer (nicht dargestellt) auf.
-
Die
Quellspeicher 501, 502 enthalten Daten. Die Adressenerzeugungseinheit 503 erzeugt
Adresssignale A1, A2, Lesefreigabesignale RE1, RE2 und ein Verarbeitungsfreigabesignal
EE.
-
Ein
Registerpaar 601, 602 hält von den Quellspeichern 501, 502 ausgelesene
Daten RD1 bzw. RD2.
-
Die
Verarbeitungseinheit 504 führt eine Operation an in Frage
kommenden Verarbeitungsdaten D1, D2 aus, die von den Widerständen (Anm.
d. Übers.:
muss wohl „Registern" heißen) 601 bzw. 602 eingegeben
werden.
-
Nachstehend
wird kurz beschrieben, wie die Daten ausgelesen werden.
-
Wie
in 10 gezeigt, werden in Reaktion auf das Adresssignal
A1 und das Lesefreigabesignal RE1 die Daten als Auslesedaten RD1
aus dem Quellspeicher 501 in das Register 601 gelesen.
-
Gleichfalls
werden in Reaktion auf das Adresssignal A2 und das Lesefreigabesignal
RE2 die Daten als Auslesedaten RD2 aus dem Quellspeicher 502 in
das Register 602 gelesen.
-
Die
Verarbeitungseinheit 504 verarbeitet die in Frage kommenden
Verarbeitungsdaten D1, D2 in Reaktion auf das Verarbeitungsfreigabesignal
EE.
-
Nachstehend
wird das Auslesen von Daten anhand eines speziellen Beispiels beschrieben.
-
11 ist
eine deskriptive Darstellung, die verschiedene Gruppen von Daten
zeigt, die in dem Quellspeicher 501 bzw. 502 von 10 enthalten sind.
-
12 ist
ein Zeitdiagramm, das beschreibt, wie die einzelnen Gruppen von
Daten in den Quellspeichern 501, 502 von 10 ausgelesen
werden.
-
Nehmen
wir an, dass, wie in 11 gezeigt, der Quellspeicher 501 eine
Reihe von in Frage kommenden Verarbeitungsdaten D1 ergebenden Daten an
Adressen 0–5
enthält,
während
der Quellspeicher 502 eine Reihe von in Frage kommenden
Verarbeitungsdaten D2 ergebenden Daten an Adressen 6#–11# enthält.
-
Wie
in 12 gezeigt, werden zum Zeitpunkt t1 die Lesefreigabesignale
RE1, RE2 logisch wahr gemacht. Dadurch können Daten 0, 6# als Auslesedaten
RD1, RD2 parallel zueinander aus dem Quellspeicher 501 bzw. 502 ausgelesen
werden.
-
Zum
Zeitpunkt t2 wird das Verarbeitungsfreigabesignal EE logisch wahr
gemacht. Dadurch können
zum Zeitpunkt t3 die Daten 0 und 6# in die Verarbeitungseinheit 504 als
in Frage kommende Verarbeitungsdaten D1 bzw. D2 eingegeben werden.
-
Ebenso
können
die Restdaten 1–5
und die Restdaten 7#–11#
ausgelesen werden.
-
Wenn
entweder der Quellspeicher 501 oder der Quellspeicher 502 die
die in Frage kommenden Verarbeitungsdaten D1 ergebenden Daten und
die die in Frage kommenden Verarbeitungsdaten D2 ergebenden Daten
enthält,
kann es jedoch zu dem nachstehend erörterten Problem kommen.
-
13 ist
eine deskriptive Darstellung, die verschiedene Gruppen von Daten
zeigt, die in dem Quellspeicher von 10 enthalten
sind.
-
14 ist
eine deskriptive Darstellung, die zeigt, wie die verschiedenen Gruppen
von Daten in dem Quellspeicher 501 von 10 ausgelesen
werden.
-
Nehmen
wir an, dass, wie in 13 gezeigt, der Quellspeicher 501 eine
Reihe der die in Frage kommenden Verarbeitungsdaten D1 ergebenden
Daten an Adressen 0–5
und eine Reihe der die in Frage kommenden Verarbeitungsdaten D2
ergebenden Daten an Adressen 6–11
enthält.
-
In
diesem Fall wird, wie in 14 gezeigt, die
Reihe von Daten in dem Quellspeicher 501 an den Adressen
6–11 zunächst über einen
Datenüberfragungsweg 505 zu
dem Quellspeicher 502 an die Adressen 6#–11# übertragen.
-
Auf
diese Weise werden die übertragenen Daten
und die nicht-übertragenen
Daten so angeordnet, wie es in 11 gezeigt
ist. Dieser Schritt muss durchgeführt werden, bevor eine gewünschte Operation
an den Daten in dem Quellspeicher 501 an den Adressen 0–5 und den
Daten in dem Quellspeicher 502 an den Adressen 6#–11# ausgeführt wird.
-
Wenn,
wie vorstehend dargelegt, entweder der Quellspeicher 501 oder
der Quellspeicher 502 sowohl die die in Frage kommenden
Verarbeitungsdaten D1 ergebenden Daten als auch die die in Frage kommenden
Verarbeitungsdaten D2 ergebenden Daten enthält, kommt es zu Belastungen,
die die Übertragung
nur einer dieser Datengruppen zu dem anderen Quellspeicher zulassen.
-
Insbesondere
stellt sich dieser Nachteil als Problem heraus, wenn die nachstehend
beschriebene Situation vorliegt.
-
Ein
moderner System-LSI-Kreis, insbesondere ein Medien-verarbeitender
LSI-Kreis, der Bilddaten verarbeitet, erfordert ein sehr hohes Leistungsniveau.
Diese Forderungen werden wegen der zu verarbeitenden größeren Bilder
sowie wegen großer und
komplizierter Verarbeitungssysteme, die unterstützt werden sollen, jedes Jahr
immer dringender.
-
Um
diese Forderungen zu erfüllen,
sind Versuche unternommen worden, die Leistung eines Prozessors
zu verbessern, der so gestaltet ist, dass er eine gewünschte Operation
an Daten ausführt,
die aus einer Vielzahl von Quellspeichern parallel ausgelesen werden.
Insbesondere hat der Prozessor Computer, die horizontal zueinander
ausgerichtet sind, um sie parallel arbeiten zu lassen. Alternativ
sind die Computer vertikal zueinander ausgerichtet, um eine große Pipeline
zu ermöglichen.
Mittels einer weiteren Alternative wird den Computern eine System-angepasste
Funktion verliehen. Solche Versuche haben sich sehr günstig auf
die Erhöhung
der Rechenleistung ausgewirkt.
-
Die
Analyse der LSI-Verarbeitung zeigt, dass die vorstehende beabsichtigte
Nutzung der Computer zur Bewältigung
des reinen Signalverarbeitungsbetriebs die Leistungsfähigkeit
des Prozessors verbessert.
-
Wie
vorstehend dargelegt, konzentriert sich der Stand der Technik auf
die Computer, um eine bessere Leistungsfähigkeit des Prozessors zu erreichen.
-
Eine
solche Erhöhung
der Rechenleistung macht jedoch gleichzeitig die bereits beschriebenen von
der Datenübertragung
verursachten Belastungen, die bisher unauffällig gewesen sind, bemerkenswert.
Dadurch nutzt der Prozessor manchmal seine Leistungsfähigkeit
nicht voll aus.
-
Insbesondere
wenn, wie vorstehend dargelegt, einer der Quellspeicher 501, 502 die
die in Frage kommenden Verarbeitungsdaten D1, D2 ergebenden Daten
enthält,
muss eine der Datengruppen zu dem anderen Quellspeicher übertragen
werden, obwohl die beabsichtigte Nutzung der Computer die Rechenleistung
verbessert. Das führt
zu dem Problem, dass der Prozessor seine Leistungsfähigkeit
möglicherweise
nicht voll nutzt.
-
Ein
weiteres Problem ist, dass elektrische Energie zur Übertragung
der Daten zu dem anderen Quellspeicher erforderlich ist, was dazu
führt,
dass keine Energie eingespart wird.
-
In
Anbetracht des Vorstehenden ist es ein Ziel der vorliegenden Erfindung,
einen Prozessor, der so gestaltet ist, dass er die Rechenleistung
verbessert und weniger elektrische Energie verbraucht, indem durch
die Datenübertragung
verursachte Belastungen in hohem Maße vermieden werden, und ein Verfahren
hierfür
zur Verfügung
zu stellen.
-
Die
vorliegende Erfindung stellt einen Prozessor zur Verfügung, der
Folgendes aufweist: eine Vielzahl von Speichereinheiten, die so
betreibbar sind, dass sie Daten speichern; eine erste Datenhalte-Einheit,
die so betreibbar ist, dass sie von einer der Speichereinheiten
eingegebene Daten hält,
um die gehaltenen Daten als erste in Frage kommende Verarbeitungsdaten
zu senden; eine zweite Datenhalte-Einheit, die so betreibbar ist,
dass sie von einer der Speichereinheiten eingegebene Daten hält, um die gehaltenen
Daten als zweite in Frage kommende Verarbeitungsdaten zu senden;
eine Verarbeitungseinheit, die so betreibbar ist, dass sie die ersten
und zweiten in Frage kommenden Verarbeitungsdaten, die von der ersten
bzw. zweiten Datenhalte-Einheit parallel in die Verarbeitungseinheit
eingegeben werden, verarbeitet; und eine Adressenerzeugungseinheit.
Die Adressenerzeugungseinheit erzeugt ein erstes Adresssignal zum
Angeben einer Speicherposition, an der Daten, die erste in Frage
kommende Verarbeitungsdaten ergeben, in einer der Speichereinheiten
gespeichert sind, ein zweites Adresssignal zum Angeben einer Speicherposition,
an der Daten, die zweite in Frage kommende Verarbeitungsdaten ergeben,
in einer der Speichereinheiten gespeichert sind, ein mit den einzelnen
Speichereinheiten erzeugtes erstes Lesefreigabesignal zum Steuern
der Ausgabe der Daten, die die ersten in Frage kommenden Verarbeitungsdaten
ergeben, von der entsprechenden Speichereinheit und ein mit den
einzelnen Speichereinheiten erzeugtes zweites Lesefreigabesignal
zum Steuern der Ausgabe der Daten, die die zweiten in Frage kommenden
Verarbeitungsdaten ergeben, von der entsprechenden Speichereinheit.
-
Mit
jeder der Speichereinheiten können
Daten, die an der von dem ersten Adresssignal adressierten Speicherposition
gespeichert sind, in Reaktion auf das erste Lesefreigabesignal in
die erste Datenhalte-Einheit eingegeben werden.
-
Mit
jeder der Speichereinheiten können
Daten, die an der von dem zweiten Adresssignal adressierten Speicherposition
gespeichert sind, in Reaktion auf das zweite Lesefreigabesignal
in die zweite Datenhalte-Einheit eingegeben werden.
-
Mit
der vorstehenden Gestaltung werden das erste Adresssignal und das
erste Lesefreigabesignal in Verbindung mit den ersten in Frage kommenden Verarbeitungsdaten
erzeugt und außerdem
werden das zweite Adresssignal und das zweite Lesefreigabesignal
in Verbindung mit den zweiten in Frage kommenden Verarbeitungsdaten
erzeugt. Daher ist die Datenausgabe von den Steuereinheiten für alle zu verarbeitenden
Daten anstatt für
die einzelnen Speichereinheiten steuerbar.
-
Mit
dieser Funktion können
die Daten, die die ersten und zweiten in Frage kommenden Verarbeitungsdaten
ergeben, in die erste bzw. zweite Datenhalte-Einheit eingegeben
werden, ohne sie zu einer anderen Speichereinheit übertragen
zu müssen,
und zwar auch dann, wenn dieselbe Speichereinheit die Daten speichert,
die die ersten und zweiten in Frage kommenden Verarbeitungsdaten
ergeben.
-
Dadurch
können
die durch die Datenübertragung
verursachten Belastungen niedriggehalten werden, und es kann eine
Verarbeitung mit hoher Geschwindigkeit erreicht werden. Diese Funktion
ermöglicht
einen Prozessor mit einer noch besseren Leistungsfähigkeit.
-
Außerdem verringern
die niedriggehaltenen Belastungen, die von der Datenübertragung
verursacht werden, die elektrische Energie, der der Prozessor verbraucht.
-
Bei
einer ersten Ausführungsform
der vorliegenden Erfindung wird ein Prozessor bereitgestellt, der
in der vorliegenden Erfindung definiert wird. Die Speichereinheit
weist erste und zweite Speicherbereiche auf, wobei eine Gruppe von
geradzahligen Adressen dem ersten Speicherbereich zugeordnet ist,
während
eine Gruppe von ungeradzahligen Adressen dem zweiten Speicherbereich
zugeordnet ist.
-
Auch
wenn dieselbe Speichereinheit die Daten speichert, die die ersten
und zweiten in Frage kommenden Verarbeitungsdaten ergeben, können mit
der vorstehenden Gestaltung nach dem zweiten Aspekt der vorliegenden
Erfindung die Daten, die die ersten und zweiten in Frage kommenden
Verarbeitungsdaten ergeben, mit hoher Frequenz zu der ersten bzw.
zweiten Datenhalte-Einheit parallel übertragen werden, wenn diese
gespeicherten Daten Vektordaten mit vielen aufeinanderfolgenden
Adressen sind.
-
Dadurch
ist eine Verarbeitung mit einer höheren Geschwindigkeit erzielbar,
wenn die Speichereinheit die Vektordaten mit vielen aufeinanderfolgenden
Adressen speichert. Diese Funktion ermöglicht einen Prozessor mit
einer noch besseren Leistungsfähigkeit.
-
Bei
einer zweiten Ausführungsform
der vorliegenden Erfindung wird ein Prozessor bereitgestellt, der
in der vorliegenden Erfindung definiert wird. Die Speichereinheit
weist erste und zweite Speicherbereiche auf, wobei eine Gruppe von
aufeinanderfolgenden Adressen dem ersten Speicherbereich zugeordnet
ist, während
eine andere Gruppe von aufeinanderfolgenden Adressen dem zweiten
Speicherbereich zugeordnet ist.
-
Mit
der vorstehenden Gestaltung kann ein Paar gemeinsam benutzte Daten,
die in der gleichen Speichereinheit gespeichert werden müssen, in
der Speichereinheit in dem ersten bzw. zweiten Speicherbereich gespeichert
werden. Dadurch kann das Datenpaar zu der ersten bzw. zweiten Datenhalte-Einheit
parallel übertragen
werden, ungeachtet dessen, ob diese parallele Datenübertragung
durch eine Folge-Adressierung oder eine Adressierung für direkten
Zugriff erfolgt.
-
Dadurch
ist eine Verarbeitung mit einer höheren Geschwindigkeit unabhängig von
der Folge-Adressierung oder der Adressierung für direkten Zugriff erreichbar.
Mit dieser Funktion wird ein Prozessor mit einer noch besseren Leistungsfähigkeit bereitgestellt.
-
Wenn
die Daten-Speicherpositionen in der Speichereinheit bei der Programmierung
so festgelegt werden, dass die vorgenannten günstigen Wirkungen erzielt werden,
dann ist alles, was erforderlich ist, zu berücksichtigen, dass die Daten
entweder in dem ersten oder in dem zweiten Speicherbereich gespeichert
werden können.
-
Bei
einer dritten Ausführungsform
der vorliegenden Erfindung wird ein Prozessor bereitgestellt, der
in der vorliegenden Erfindung definiert wird. Die Speichereinheit
weist einen ersten, zweiten, dritten und vierten Speicherbereich
auf. Eine Gruppe von geradzahligen Adressen und eine Gruppe von
ungeradzahligen Adressen sind dem ersten bzw. zweiten Speicherbereich
zugeordnet. Eine Gruppe von aufeinanderfolgenden Adressen, die von
den vorhergehenden Gruppen von Adressen verschieden ist, und eine
weitere andere Gruppe von aufeinanderfolgenden Adressen sind dem
dritten bzw. vierten Speicherbereich zugeordnet.
-
Auch
wenn dieselbe Speichereinheit die Daten speichert, die die ersten
und zweiten in Frage kommenden Verarbeitungsdaten ergeben, können mit
der vorstehenden Gestaltung nach dem vierten Aspekt der vorliegenden
Erfindung die Daten, die die ersten und zweiten in Frage kommenden
Verarbeitungsdaten ergeben, mit hoher Frequenz zu der ersten bzw.
zweiten Datenhalte-Einheit parallel überfragen werden, wenn die
Daten, die die ersten und zweiten in Frage kommenden Verarbeitungsdaten
ergeben, Vektordaten sind, auf die durch Folge-Adressierung zugegriffen werden soll.
-
Dadurch
ist eine Verarbeitung mit einer höheren Geschwindigkeit erzielbar,
wenn die Speichereinheit die Vektordaten mit vielen aufeinanderfolgenden
Adressen speichert. Mit dieser Funktion wird ein Prozessor mit einer
noch besseren Leistungsfähigkeit
bereitgestellt.
-
Wenn
ein Paar gemeinsam benutzte Daten, die in derselben Speichereinheit
gespeichert werden müssen,
in der Speichereinheit in dem dritten bzw. vierten Speicherbereich
gespeichert wird, kann das Datenpaar zu der ersten bzw. zweiten
Datenhalte-Einheit parallel übertragen
werden, ungeachtet dessen, ob diese parallele Datenübertragung
durch Folge-Adressierung
oder Adressierung für
direkten Zugriff erfolgt.
-
Dadurch
ist eine Verarbeitung mit einer höheren Geschwindigkeit unabhängig von
der Folge-Adressierung oder der Adressierung für direkten Zugriff erreichbar.
Mit dieser Funktion wird ein Prozessor mit einer noch besseren Leistungsfähigkeit bereitgestellt.
-
Wenn
die Daten-Speicherpositionen in der Speichereinheit bei der Programmierung
so festgelegt werden, dass die vorgenannten günstigen Wirkungen erzielt werden,
dann ist alles, was erforderlich ist, zu berücksichtigen, dass die Daten
entweder in dem dritten oder in dem vierten Speicherbereich gespeichert
werden können.
Dadurch wird ein Programmierer weniger belastet.
-
Wenn,
wie vorstehend dargelegt, die Speichereinheit verschiedene Gruppen
von zugreifbaren Vektordaten mit Folge-Adressierung im ersten bzw. zweiten
Speicherbereich speichert, können
die verschiedenen Gruppen von zugreifbaren Vektordaten mit Folge-Adressierung mit
hoher Frequenz zu der ersten bzw. Datenhalte-Einheit parallel übertragen werden.
Und wenn jedes Datenpaar so programmiert wird, dass es in dem dritten
bzw. vierten Speicherbereich gespeichert wird, kann das Datenpaar
zu der ersten bzw. zweiten Datenhalte-Einheit parallel übertragen werden, ungeachtet
dessen, ob die parallele Datenübertragung
durch Folge-Adressierung oder Adressierung für direkten Zugriff erfolgt.
Dadurch wird eine Verarbeitung mit hoher Geschwindigkeit realisiert,
und daher kann ein Prozessor, der eine noch bessere Leistungsfähigkeit
hat, mit einem größeren Freiheitsgrad
arbeiten.
-
Bei
einer vierten Ausführungsform
der vorliegenden Erfindung wird ein Prozessor bereitgestellt, der
in der ersten oder dritten Ausführungsform
der vorliegenden Erfindung definiert ist. Wenn dieselbe Speichereinheit
Daten, die von dem ersten und zweiten Adresssignal adressiert werden,
in dem ersten oder dem zweiten Speicherbereich enthält und wenn außerdem weder
die erste Datenhalte-Einheit noch die zweite Datenhalte-Einheit
Daten hält,
gibt die Speichereinheit die Daten, die von dem ersten Adresssignal
adressiert werden, in die erste Datenhalte-Einheit ein.
-
Die
Speichereinheit gibt die Daten, die von dem zweiten Adresssignal
adressiert werden, in die zweite Datenhalte-Einheit ein, wenn dieselbe
Speichereinheit die Daten, die von dem ersten und zweiten Adresssignal
adressiert werden, in dem ersten oder dem zweiten Speicherbereich
enthält
und wenn außerdem
die zweite Datenhalte-Einheit keine Daten enthält, die mit allen Daten, die
in der ersten Datenhalte-Einheit gehalten werden, verarbeitet werden sollen.
-
Die
Speichereinheit gibt die Daten, die von dem ersten Adresssignal
adressiert werden, in die erste Datenhalte-Einheit ein, wenn dieselbe
Speichereinheit die Daten, die von dem ersten und zweiten Adresssignal
adressiert werden, in dem ersten oder dem zweiten Speicherbereich
enthält
und wenn außerdem
die zweite Datenhalte-Einheit stets Daten hält, die mit Daten, die in der
ersten Datenhalte-Einheit gehalten werden, verarbeitet werden sollen.
-
Die
Speichereinheit gibt die Daten, die von dem zweiten Adresssignal
adressiert werden, in die zweite Datenhalte-Einheit ein, wenn dieselbe
Speichereinheit die Daten, die von dem ersten und zweiten Adresssignal
adressiert werden, in dem ersten oder dem zweiten Speicherbereich
enthält
und wenn außerdem
die zweite Datenhalte-Einheit keine Daten hält, die mit Daten von mehreren
Daten, die in der ersten Datenhalte-Einheit gehalten werden, verarbeitet
werden sollen.
-
Mit
der vorstehenden Gestaltung kann die Speichereinheit zunächst Daten
in die erste oder die zweite Datenhalte-Einheit eingeben, wenn diese Speichereinheit
die Daten, die von dem ersten und dem zweiten Adresssignal adressiert
werden, in dem ersten oder dem zweiten Speicherbereich enthält. Mit diesem
Schritt wird der Zeitpunkt der Datenausgabe an die erste und zweite
Datenhalte-Einheit festgelegt.
-
Außerdem hat
die Speichereinheit eine Gruppe von geradzahligen Adressen, die
dem ersten Speicherbereich zugeordnet sind, und eine Gruppe von
ungeradzahligen Adressen, die dem zweiten Speicherbereich zugeordnet
sind.
-
Wenn
die Speichereinheit Vektordaten mit vielen aufeinanderfolgenden
Adressen speichert, können
dadurch die Daten, die von dem ersten und zweiten Adresssignal adressiert
werden, zu der ersten bzw. Datenhalte-Einheit parallel übertragen
werden, nachdem der Zeitpunkt für
die Datenausgabe an die erste und zweite Datenhalte-Einheit festgelegt worden
ist.
-
Wenn,
wie vorstehend dargelegt, die parallel übertragenen Daten Vektordaten
mit vielen aufeinanderfolgenden Adressen sind, können die Daten, die von dem
ersten und zweiten Adresssignal adressiert werden, mit hoher Frequenz
zu der ersten bzw. zweiten Datenhalte-Einheit parallel übertragen werden.
-
Dadurch
ist eine Verarbeitung mit hoher Geschwindigkeit erzielbar. Mit dieser
Funktion wird ein Prozessor mit einer noch besseren Leistungsfähigkeit
bereitgestellt.
-
Bei
einer fünften
Ausführungsform
der vorliegenden Erfindung wird ein Prozessor bereitgestellt, der
in der vierten Ausführungsform
der vorliegenden Erfindung definiert ist. Die erste Datenhalte-Einheit lässt erste
enthaltene Daten zuerst herausgehen, und die erste Datenhalte-Einheit
ist so gestaltet, dass sie höchstens
zwei Daten hält,
während
die zweite Datenhalte-Einheit so gestaltet ist, dass sie höchstens
eine Dateneinheit hält.
-
Die
Adressenerzeugungseinheit erzeugt ein Verarbeitungsfreigabesignal
zum Steuern der Verarbeitung.
-
Wenn
die erste und zweite Datenhalte-Einheit jeweils mindestens eine
Dateneinheit halten, geben die erste und die zweite Datenhalte-Einheit
in Reaktion auf das Verarbeitungsfreigabesignal die ersten bzw.
zweiten in Frage kommenden Verarbeitungsdaten in die Verarbeitungseinheit
ein.
-
Mit
der vorstehenden Gestaltung können
die erste und die zweite Datenhalte-Einheit, die jeweils die kleinste
Größe haben,
die zum Halten einer solchen geringen Anzahl von Daten vorgesehen
ist, die vorgenannte günstige
Wirkung haben, dass die von dem ersten und zweiten Adresssignal
adressierten Daten mit hoher Frequenz zu der ersten bzw. zweiten Datenhalte-Einheit parallel übertragen
werden können,
wenn diese parallel übertragenen
Daten Vektordaten mit vielen aufeinanderfolgenden Adressen sind.
-
Dadurch
können
eine Kostensenkung und eine Verkleinerung erzielt werden.
-
Bei
einer sechsten Ausführungsform
der vorliegenden Erfindung wird ein Prozessor bereitgestellt, der
in der fünften
Ausführungsform
der vorliegenden Erfindung definiert ist. Wenn dieselbe Speichereinheit
Daten, die von dem ersten und zweiten Adresssignal adressiert werden,
in dem ersten oder dem zweiten Speicherbereich enthält und wenn
außerdem
weder die erste Datenhalte-Einheit noch die zweite Datenhalte-Einheit
Daten hält,
gibt die Speichereinheit die Daten, die von dem ersten Adresssignal
adressiert werden, in die erste Datenhalte-Einheit ein.
-
Die
Speichereinheit gibt die Daten, die von dem zweiten Adresssignal
adressiert werden, in die zweite Datenhalte-Einheit ein, wenn dieselbe
Speichereinheit die Daten, die von dem ersten und zweiten Adresssignal
adressiert werden, in dem ersten oder dem zweiten Speicherbereich
enthält
und wenn außerdem
die erste Datenhalte-Einheit eine Dateneinheit hält, aber die zweite Datenhalte-Einheit
keine Daten hält.
-
Die
Speichereinheit gibt die Daten, die von dem ersten Adresssignal
adressiert werden, in die erste Datenhalte-Einheit ein, wenn dieselbe
Speichereinheit die Daten, die von dem ersten und zweiten Adresssignal
adressiert werden, in dem ersten oder dem zweiten Speicherbereich
enthält
und wenn außerdem
die erste Datenhalte-Einheit eine Dateneinheit hält, während die zweite Datenhalte-Einheit
Daten hält,
die mit den Daten, die in der ersten Datenhalte-Einheit gehalten
werden, verarbeitet werden sollen.
-
Die
Speichereinheit gibt die Daten, die von dem zweiten Adresssignal
adressiert werden, in die zweite Datenhalte-Einheit ein, wenn dieselbe
Speichereinheit die Daten, die von dem ersten und zweiten Adresssignal
adressiert werden, in dem ersten oder dem zweiten Speicherbereich
enthält
und wenn außerdem
die erste Datenhalte-Einheit zwei Daten hält, während die zweite Datenhalte-Einheit
Daten hält,
die mit einer der beiden in der ersten Datenhalte-Einheit gehaltenen
Dateneinheiten verarbeitet werden sollen.
-
Mit
der vorstehenden Gestaltung wird eine Verarbeitung realisiert, die
für die
erste und die zweite Datenhalte-Einheit geeignet ist, wenn sie die kleinste
Größe haben,
die zum Halten einer solchen geringen Anzahl von Daten vorgesehen
ist.
-
Bei
einer siebenten Ausführungsform
der vorliegenden Erfindung umfasst bei einem Prozessor, der in der
vorliegenden Erfindung oder in einer der vorhergehenden Ausführungsformen
der vorliegenden Erfindung definiert ist, die Vielzahl der Speichereinheiten
zwei Speichereinheiten.
-
Dadurch
ist der erfindungsgemäße Prozessor
als Prozessor mit zwei Quellspeichern verwendbar.
-
Die
vorgenannten und weitere Ziele, Merkmale und Vorzüge der vorliegenden
Erfindung dürften
aus der nachstehenden Beschreibung in Verbindung mit den beigefügten Zeichnungen
hervorgehen, in denen gleiche Bezugssymbole die gleichen Elemente
bezeichnen.
-
1 ist
ein Blockdiagramm, das einen beispielhaften Prozessor nach einer
ersten Ausführungsform
der vorliegenden Erfindung zeigt.
-
2 ist
eine deskriptive Darstellung, die den Zusammenhang zwischen einem
FIFO- und Register-Zustand
und dem Vorhandensein einer Konkurrenz beim Speicherzugriff zeigt.
-
3 ist
eine deskriptive Darstellung, die verschiedene Gruppen von Daten
zeigt, die jeweils in verschiedenen Quellspeichern enthalten sind.
-
4 ist
ein Zeitdiagramm, das zeigt, wie die Daten von 3 ausgelesen
werden.
-
5 ist
eine deskriptive Darstellung, die zwei verschieden Gruppen von Daten
zeigt, die im gleichen Quellspeicher enthalten sind.
-
6 ist
ein Zeitdiagramm, das zeigt, wie die Daten von 5 ausgelesen
werden.
-
7 ist
ein Blockdiagramm, das einen beispielhaften Prozessor nach einer
zweiten Ausführungsform
zeigt.
-
8 ist
ein Zeitdiagramm, das zeigt, wie Daten ausgelesen werden.
-
9 ist
ein Blockdiagramm, das einen beispielhaften Prozessor nach einer
dritten Ausführungsform
zeigt.
-
10 ist
ein Blockdiagramm, das einen Prozessor des Standes der Technik zeigt.
-
11 ist
eine deskriptive Darstellung, die verschiedene Gruppen von Daten
zeigt, die jeweils in verschiedenen Quellspeichern enthalten sind.
-
12 ist
ein Zeitdiagramm, das zeigt, wie die Daten von 11 ausgelesen
werden.
-
13 ist
eine deskriptive Darstellung, die zwei verschieden Gruppen von Daten
zeigt, die im gleichen Quellspeicher enthalten sind.
-
14 ist
eine deskriptive Darstellung, die zeigt, wie die Daten von 13 ausgelesen
werden.
-
Nachstehend
werden Ausführungsformen der
vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen beschrieben.
-
Um
die dringend geforderte Leistungsfähigkeit zu erreichen, konzentriert
sich die vorliegende Erfindung auf die Datenübertragung und stellt dadurch
einen Prozessor zur Verfügung,
der so gestaltet ist, dass er die durch die Datenübertragung
verursachten Belastungen so gering wie möglich hält.
-
Der
Prozessor ist hier z. B. ein digitaler Signalprozessor (DSP).
-
Die
vorliegende Beschreibung verwendet den Begriff „to assert", der bedeutet, etwas logisch wahr zumachen.
-
Dementsprechend
bedeutet der Ausdruck „to
assert a signal",
ein logisch wahres Signal bereitzustellen.
-
Ausführungsform 1
-
1 ist
ein Blockdiagramm, das einen beispielhaften Prozessor nach einer
ersten Ausführungsform
der vorliegenden Erfindung zeigt. Wie in 1 gezeigt,
weist der Prozessor eine Adressenerzeugungseinheit 1, einen
Speicherblock 2 und eine Verarbeitungseinheit 3 auf.
-
Der
Speicherblock 2 weist ein Paar Quellspeicher 21, 22,
einen FIFO-Speicher (Durchlaufspeicher) 23 und ein Register 24 auf.
-
Der
Quellspeicher 21 besteht aus einem Speicherpaar 211, 212.
Der Quellspeicher 22 besteht aus einem Speicherpaar 221, 222.
-
Nachstehend
wird kurz beschrieben, wie sich die vorgenannten Komponenten verhalten.
-
Die
Quellspeicher 21, 22 von 1 speichern
oder enthalten Daten. Der Quellspeicher 21 hat eine Gruppe
von geradzahligen Adressen 0, 2, 4, 6, 8, 10, die dem Speicher 211 zugeordnet
sind, und eine Gruppe von ungeradzahligen Adressen 1, 3, 5, 7, 9,
11, die dem Speicher 212 zugeordnet sind.
-
Der
Quellspeicher 22 hat eine Gruppe von geradzahligen Adressen
0#, 2#, 4#, 6#, 8#, 10#, die dem Speicher 221 zugeordnet
sind, und eine Gruppe von ungeradzahligen Adressen 1#, 3#, 5#, 7#,
9#, 11#, die dem Speicher 222 zugeordnet sind.
-
Im
Allgemeinen bezeichnet der Quellspeicher einen Speicher, der von
einem Computer (nicht dargestellt) referenziert wird. Der Computer
(nicht dargestellt) ist in der in 1 gezeigten
Verarbeitungseinheit 3 enthalten.
-
Der
FIFO-Speicher 23 hält
oder enthält
Auslesedaten RD1a, RD2a, die von dem Quellspeicher 21 bzw. 22 bereitgestellt
werden.
-
Der
FIFO-Speicher 23 gibt die gehaltenen Daten als in Frage
kommende Verarbeitungsdaten Da in die Verarbeitungseinheit 3 ein.
Der FIFO-Speicher 23 lässt
erste gehaltene Daten zuerst heraus.
-
Der
FIFO-Speicher 23 ist so gestaltet, dass er zwei Daten hält.
-
Das
Register 24 hält
oder enthält
Auslesedaten RD1b, RD2b, die von dem Quellspeicher 21 bzw. 22 eingegeben
werden.
-
Das
Register gibt die gehaltenen Daten als in Frage kommende Verarbeitungsdaten
Db in die Verarbeitungseinheit 3 ein.
-
Das
Register ist so gestaltet, dass es eine Dateneinheit hält.
-
Die
Verarbeitungseinheit 3 verarbeitet die in Frage kommende
Verarbeitungsdaten Da, Db, die von dem FIFO-Speicher 23 bzw.
dem Register 24 bereitgestellt werden.
-
Dabei
geben der FIFO-Speicher 23 und das Register 24 die
in Frage kommenden Verarbeitungsdaten Da bzw. Db parallel in die
Verarbeitungseinheit 3 ein.
-
Die
Adressenerzeugungseinheit 1 erzeugt Adresssignale Aa, Ab.
Das Adresssignal Aa gibt eine Speicherposition an, an der Daten,
die in Frage kommende Verarbeitungsdaten Da ergeben, in einem der Speicher 21, 22 gespeichert
sind. Das Adresssignal Ab gibt eine Speicherposition an, an der
Daten, die in Frage kommende Verarbeitungsdaten Db ergeben, in einem
der Speicher 21, 22 gespeichert sind.
-
Die
Adressenerzeugungseinheit 1 erzeugt Lesefreigabesignale
RE1a, RE1b, RE2a und RE2b. Das Lesefreigabesignal RE1a steuert die
Ausgabe der Daten, die die in Frage kommenden Verarbeitungsdaten
Da ergeben (Auslesedaten RD1a), von dem Quellspeicher 21.
Das Lesefreigabesignal RE1b steuert die Ausgabe der Daten, die die
in Frage kommenden Verarbeitungsdaten Db ergeben (Auslesedaten RD1b),
von dem Quellspeicher 21. Das Lesefreigabesignal RE2a steuert
die Ausgabe der Daten, die die in Frage kommenden Verarbeitungsdaten
Da ergeben (Auslesedaten RD2a), von dem Quellspeicher 22.
Das Lesefreigabesignal RE2b steuert die Ausgabe der Daten, die die
in Frage kommenden Verarbeitungsdaten Db ergeben (Auslesedaten RD2b),
von dem Quellspeicher 22.
-
Die
Adressenerzeugungseinheit 1 erzeugt das Verarbeitungsfreigabesignal
EE zum Steuern der Verarbeitung.
-
Nachstehend
werden aufeinanderfolgende Prozesse, die vom Auslesen von Daten
bis zur Verarbeitung reichen, anhand des Zusammenhangs zwischen
diesen Prozessen und den von der Adressenerzeugungseinheit 1 bereitgestellten
Signalen kurz erläutert.
-
Wenn
das Lesefreigabesignal RE1a logisch wahr gemacht wird, sendet der
Quellspeicher 21 als Auslesedaten RD1a Daten aus, die an
der von dem Adresssignal Aa adressierten Speicherposition gespeichert
sind.
-
Wenn
das Lesefreigabesignal RE1b logisch wahr gemacht wird, sendet der
Quellspeicher 21 als Auslesedaten RD1b Daten aus, die an
der von dem Adresssignal Ab adressierten Speicherposition gespeichert
sind.
-
Wenn
das Lesefreigabesignal RE2a logisch wahr gemacht wird, sendet der
Quellspeicher 22 als Auslesedaten RD2a Daten aus, die an
der von dem Adresssignal Aa adressierten Speicherposition gespeichert
sind.
-
Wenn
das Lesefreigabesignal RE2b logisch wahr gemacht wird, sendet der
Quellspeicher 22 als Auslesedaten RD2b Daten aus, die an
der von dem Adresssignal Ab adressierten Speicherposition gespeichert
sind.
-
Die
Auslesedaten RD1a werden in den FIFO-Speicher 23 geschrieben,
wenn das Lesefreigabesignal RE1a logisch wahr gemacht wird.
-
Beispielsweise
werden die Auslesedaten RD1a auf einer zyklischen Stufe gleich nach
der Stufe in den FIFO-Speicher 23 geschrieben, auf der
die Auslesedaten RD1a in Reaktion auf das Logisch-wahr-Machen des
Lesefreigabesignals RE1a aus dem Speicher 21 ausgegeben
werden. Siehe 4, 6 und 8,
die später
beschrieben werden.
-
Die
Auslesedaten RD1b werden in das Register 24 geschrieben,
wenn das Lesefreigabesignal RE1b logisch wahr gemacht wird.
-
Beispielsweise
werden die Auslesedaten RD1b auf einer zyklischen Stufe gleich nach
der Stufe in das Register 24 geschrieben, auf der die Auslesedaten
RD1b in Reaktion auf das Logisch-wahr-Machen des Lesefreigabesignals
RE1b aus dem Speicher 21 ausgegeben werden. Siehe 6 und 8,
die später
beschrieben werden.
-
Die
Auslesedaten RD2a werden in den FIFO-Speicher 23 geschrieben,
wenn das Lesefreigabesignal RE2a logisch wahr gemacht wird.
-
Beispielsweise
werden die Auslesedaten RD2a auf einer zyklischen Stufe gleich nach
der Stufe in den FIFO-Speicher 23 geschrieben, auf der
die Auslesedaten RD2a in Reaktion auf das Logisch-wahr-Machen des
Lesefreigabesignals RE2a aus dem Speicher 22 ausgegeben
werden.
-
Die
Auslesedaten RD2b werden in das Register 24 geschrieben,
wenn das Lesefreigabesignal RE2b logisch wahr gemacht wird.
-
Beispielsweise
werden die Auslesedaten RD2b auf einer zyklischen Stufe gleich nach
der Stufe in das Register 24 geschrieben, auf der die Auslesedaten
RD2b in Reaktion auf das Logisch-wahr-Machen des Lesefreigabesignals
RE2b aus dem Speicher 22 ausgegeben werden. Siehe 4,
die später erläutert wird.
-
Der
FIFO-Speicher 23 gibt die gehaltenen Daten als in Frage
kommende Verarbeitungsdaten Da in die Verarbeitungseinheit 3 ein,
wenn das Verarbeitungsfreigabesignal EE logisch wahr gemacht wird.
-
Das
Register 24 gibt die gehaltenen Daten als in Frage kommende
Verarbeitungsdaten Db in die Verarbeitungseinheit 3 ein,
wenn das Verarbeitungsfreigabesignal EE logisch wahr gemacht wird.
-
Dabei
geben der FIFO-Speicher 23 und das Register 24 die
in Frage kommenden Verarbeitungsdaten Da bzw. Db parallel in die
Verarbeitungseinheit 3 ein.
-
Die
Verarbeitungseinheit 3 führt eine gewünschte Operation
an den parallel eingegebenen in Frage kommenden Verarbeitungsdaten
Da, Db aus.
-
Nachstehend
wird die Art und Weise, in der sich der Prozessor in der vorliegenden
Ausführungsform
verhält,
näher beschrieben.
-
Bei
der vorliegenden Ausführungsform
gibt der Quellspeicher 21 die Auslesedaten RD1a, RD1b in
den FIFO-Speicher 23 und das Register 24 jeweils zu
bestimmten Zeiten ein. Gleichermaßen gibt der Quellspeicher 22 die
Auslesedaten RD2a, RD2b in den FIFO-Speicher 23 und das
Register 24 jeweils zu bestimmten Zeiten ein. Diese Zeiten ändern sich
in Abhängigkeit
von dem Vorhandensein von Konkurrenz beim Zugriff auf die Speicher 211, 212, 221 und 222 sowie
von entsprechenden Zuständen,
in denen sich der FIFO-Speicher 23 und das Register 24 befinden.
-
Zunächst wird
das Vorhandensein von Konkurrenz beim Zugriff auf die Speicher 211, 212, 221 und 222 beschrieben.
-
Wie
bereits dargelegt, sendet die Adressenerzeugungseinheit 1 als
Adresssignal Aa eine Adresse aus, an der Daten, die als in Frage
kommende Verarbeitungsdaten Da ausgelesen werden sollen, in einem
der Quellspeicher 21, 22 enthalten sind.
-
Die
Adressenerzeugungseinheit 1 sendet als Adresssignal Ab
eine Adresse aus, an der Daten, die als in Frage kommende Verarbeitungsdaten
Db ausgelesen werden sollen, in einem der Quellspeicher 21, 22 enthalten
sind.
-
Nehmen
wir an, dass der Quellspeicher 21 diese zwei verschiedenen
Daten, die mit dem Adresssignal Aa bzw. Ab ausgelesen werden sollen, enthält und dass
sich die zwei verschiedenen Daten beide entweder im Speicher 211 oder
im Speicher 212 befinden. In diesem Fall wird das Lesen
der zwei verschiedenen Daten als Vorhandensein von Konkurrenz beim
Zugriff auf den Speicher 211 oder den Speicher 212 bezeichnet.
-
Nehmen
wir gleichermaßen
an, dass der Quellspeicher 22 diese zwei verschiedenen
Daten, die mit dem Adresssignal Aa bzw. Ab ausgelesen werden sollen,
enthält
und dass sich die zwei verschiedenen Daten beide entweder im Speicher 221 oder
im Speicher 222 befinden. In diesem Fall wird das Lesen
der zwei verschiedenen Daten als Vorhandensein von Konkurrenz beim
Zugriff auf den Speicher 221 oder den Speicher 222 bezeichnet.
-
Nachstehend
wird der Zusammenhang zwischen dem Vorhandensein von Konkurrenz
beim Zugriff auf die Speicher 211, 212, 221 und 222 und
entsprechenden Zuständen,
in denen sich der FIFO-Speicher 23 und das Register 24 befinden,
beschrieben.
-
2 ist
eine deskriptive Darstellung, die den vorgenannten Zusammenhang
zeigt.
-
In
2 bezeichnet
das Symbol „
" einen Zustand, in
dem der FIFO-Speicher
23 oder das Register
24 Daten
halten.
-
Wie
in 2 gezeigt, ist ein Zustand, in dem weder der FIFO-Speicher 23 noch
das Register 24 Daten hält,
als „Zustand
1" bezeichnet.
-
Ein
Zustand, in dem der FIFO-Speicher 23 eine Dateneinheit
hält, aber
das Register 24 keine Daten hält, ist als „Zustand
2" bezeichnet.
-
Ein
Zustand, in dem der FIFO-Speicher 23 und das Register 24 jeweils
eine Dateneinheit halten, ist als „Zustand 3" bezeichnet.
-
Ein
Zustand, in dem der FIFO-Speicher 23 zwei Daten hält, während das
Register 24 eine Dateneinheit hält, ist als „Zustand
4" bezeichnet.
-
Wenn
in 2 der FIFO-Speicher 23 und das Register 24 im
Zustand 1 sind und wenn außerdem
Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe der Auslesedaten
RD1a, RD1b, RD2a und RD2b so gesteuert, dass der FIFO-Speicher 23 und
das Register 24 in den Zustand 2 gesetzt werden.
-
Wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
1 sind und wenn außerdem
keine Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe
der Auslesedaten RD1a, RD1b, RD2a und RD2b so gesteuert, dass der
FIFO-Speicher 23 und das Register 24 in den Zustand
3 gesetzt werden.
-
Wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
2 sind und wenn außerdem
Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe der Auslesedaten
RD1a, RD1b, RD2a und RD2b so gesteuert, dass der FIFO-Speicher 23 und
das Register 24 in den Zustand 3 gesetzt werden.
-
Wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
2 sind und wenn außerdem
keine Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe
der Auslesedaten RD1a, RD1b, RD2a und RD2b so gesteuert, dass der
FIFO-Speicher 23 und das Register 24 in den Zustand
4 gesetzt werden.
-
Wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
3 sind und wenn außerdem
Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe der Auslesedaten
RD1a, RD1b, RD2a und RD2b so gesteuert, dass der FIFO-Speicher 23 und
das Register 24 in den Zustand 2 gesetzt werden.
-
Wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
3 sind und wenn außerdem
keine Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe
der Auslesedaten RD1a, RD1b, RD2a und RD2b so gesteuert, dass der
FIFO-Speicher 23 und das Register 24 in den Zustand
3 gesetzt werden.
-
Wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
4 sind und wenn außerdem
Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe der Auslesedaten
RD1a, RD1b, RD2a und RD2b so gesteuert, dass der FIFO-Speicher 23 und
das Register 24 in den Zustand 3 gesetzt werden.
-
Wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
4 sind und wenn außerdem
keine Konkurrenz beim Speicherzugriff vorliegt, wird die Ausgabe
der Auslesedaten RD1a, RD1b, RD2a und RD2b so gesteuert, dass der
FIFO-Speicher 23 und das Register 24 in den Zustand
4 gesetzt werden.
-
Die
vorstehend beschriebene Steuerung der Ausgabe der Auslesedaten RD1a,
RD1b, RD2a und RD2b wird mit den Signalen von der Adressenerzeugungseinheit 1,
d. h. den Adresssignalen Aa, Ab, den Lesefreigabesignalen RE1a,
RE1b, RE2a und RE2b und dem Verarbeitungsfreigabesignal EE, durchgeführt.
-
Das
Vorstehende wird nachstehend unter Bezugnahme auf die 1 und 2 näher erläutert.
-
Zunächst werden
die Bedingungen für
die Erneuerung der Adresssignale Aa, Ab beschrieben.
-
Die
Adressenerzeugungseinheit 1 erneuert das Adresssignal Aa
in Reaktion auf das Logisch-wahr-Machen des Lesefreigabesignals
RE1a.
-
Die
Adressenerzeugungseinheit 1 erneuert beispielsweise das
Adresssignal Aa, wenn das Lesefreigabesignal RE1a logisch wahr gemacht
wird und wenn außerdem
die Auslesedaten RD1a aus dem Quellspeicher 21 ausgegeben
werden. Siehe 4, 6 und 8,
die später
erläutert
werden.
-
Die
Adressenerzeugungseinheit 1 erneuert das Adresssignal Aa
in Reaktion auf das Logisch-wahr-Machen des Lesefreigabesignals
RE2a.
-
Die
Adressenerzeugungseinheit 1 erneuert beispielsweise das
Adresssignal Aa, wenn das Lesefreigabesignal RE2a logisch wahr gemacht
wird und wenn außerdem
die Auslesedaten RD2a aus dem Quellspeicher 22 ausgegeben
werden.
-
Die
Adressenerzeugungseinheit 1 erneuert das Adresssignal Ab
in Reaktion auf das Logisch-wahr-Machen des Lesefreigabesignals
RE1b.
-
Die
Adressenerzeugungseinheit 1 erneuert beispielsweise das
Adresssignal Ab, wenn das Lesefreigabesignal RE1b logisch wahr gemacht
wird und wenn außerdem
die Auslesedaten RD1b aus dem Quellspeicher 21 ausgegeben
werden. Siehe 6 und 8, die später erläutert werden.
-
Die
Adressenerzeugungseinheit 1 erneuert das Adresssignal Ab
in Reaktion auf das Logisch-wahr-Machen des Lesefreigabesignals
RE2b.
-
Die
Adressenerzeugungseinheit 1 erneuert beispielsweise das
Adresssignal Ab, wenn das Lesefreigabesignal RE2b logisch wahr gemacht
wird und wenn außerdem
die Auslesedaten RD1b aus dem Quellspeicher 22 ausgegeben
werden. Siehe 4, die später erläutert wird.
-
Nachstehend
werden die Bedingungen für das
Logisch-wahr-Machen des Verarbeitungsfreigabesignals EE erläutert.
-
Die
Adressenerzeugungseinheit 1 macht das Verarbeitungsfreigabesignal
EE logisch wahr, wenn der FIFO-Speicher 23 und das Register 24 jeweils mindestens
eine Dateneinheit halten.
-
Nachstehend
werden die Bedingungen für das
Logisch-wahr-Machen der Lesefreigabesignale RE1a, RE1b, RE2a und
RE2b erläutert.
-
Die
Adressenerzeugungseinheit 1 macht die Lesefreigabesignale
RE1a, RE2b logisch wahr, wenn die Quellspeicher 21, 22 zwei
verschiedene Daten enthalten, die mit dem Adresssignal Aa bzw. Ab
ausgelesen werden sollen.
-
Dadurch
werden die Auslesedaten RD1a, RD2b in den FIFO-Speicher 23 bzw.
das Register 24 eingegeben.
-
In
dieser Situation liegt keine Konkurrenz beim Speicherzugriff vor.
Daher werden, wie in 2 gezeigt, der FIFO-Speicher 23 und
das Register 24 im Zustand 1 in den Zustand 3 gesetzt,
der FIFO-Speicher 23 und das Register 24 im Zustand
2 werden in den Zustand 4 gesetzt, der FIFO-Speicher 23 und
das Register 24 im Zustand 3 werden im Zustand 3 belassen,
und der FIFO-Speicher 23 und das Register 24 im
Zustand 4 werden im Zustand 4 belassen.
-
Der
Grund, weshalb der FIFO-Speicher 23 und das Register 24 im
Zustand 3 im Zustand 3 belassen werden und der FIFO-Speicher 23 und
das Register 24 im Zustand 4 im Zustand 4 belassen werden,
ist, dass das Verarbeitungsfreigabesignal EE logisch wahr gemacht
wird, wenn der FIFO-Speicher 23 und das Register 24 jeweils
mindestens eine Dateneinheit halten, was zur Folge hat, dass die
einzelnen Daten aus dem FIFO-Speicher 23 und dem Register 24 in
die Verarbeitungseinheit 3 eingegeben werden.
-
Die
Adressenerzeugungseinheit 1 macht die Lesefreigabesignale
RE2a, RE1b logisch wahr, wenn der Quellspeicher 22 eine
Dateneinheit enthält,
die mit dem Adresssignal Aa ausgelesen werden soll, während der
Quellspeicher 21 eine andere Dateneinheit enthält, die
mit dem Adresssignal Ab ausgelesen werden soll.
-
Dadurch
werden die Auslesedaten RD2a, RD1b in den FIFO-Speicher 23 bzw.
das Register 24 eingegeben.
-
In
diesem Fall liegt keine Konkurrenz beim Speicherzugriff vor. Daher
werden, wie in 2 gezeigt, der FIFO-Speicher 23 und
das Register 24 im Zustand 1 in den Zustand 3 gesetzt,
der FIFO-Speicher 23 und das Register 24 im Zustand
2 werden in den Zustand 4 gesetzt, der FIFO-Speicher 23 und das
Register 24 im Zustand 3 bleiben im Zustand 3, und der
FIFO-Speicher 23 und das Register 24 im Zustand
4 werden im Zustand 4 belassen.
-
Die
Adressenerzeugungseinheit 1 macht die Lesefreigabesignale
RE1a, RE1b logisch wahr, wenn der Quellspeicher 21 zwei
verschiedene Daten enthält,
die mit den Adresssignalen Aa, Ab ausgelesen werden sollen, und
wenn außerdem
die zwei verschiedenen Daten in dem Speicher 211 bzw. 212 enthalten
sind.
-
Dadurch
werden die Auslesedaten RD1a, RD1b in den FIFO-Speicher 23 bzw.
das Register 24 eingegeben.
-
In
diesem Fall liegt keine Konkurrenz beim Speicherzugriff vor. Daher
werden, wie in 2 gezeigt, der FIFO-Speicher 23 und
das Register 24 im Zustand 1 in den Zustand 3 gesetzt,
der FIFO-Speicher 23 und das Register 24 im Zustand
2 werden in den Zustand 4 gesetzt, der FIFO-Speicher 23 und das
Register 24 im Zustand 3 werden im Zustand 3 belassen,
und der FIFO-Speicher 23 und das Register 24 im
Zustand 4 werden im Zustand 4 belassen.
-
Die
Adressenerzeugungseinheit 1 macht das Lesefreigabesignal
RE1a logisch wahr, wenn der Quellspeicher 21 zwei verschiedene
Daten enthält, die
mit den Adresssignalen Aa, Ab ausgelesen werden sollen, wenn die
zwei verschiedenen Daten entweder in dem Speicher 211 oder
dem Speicher 212 enthalten sind und wenn außerdem der
FIFO-Speicher 23 und das Register 24 entweder
im Zustand 1 oder im Zustand 3 sind, wie in 2 gezeigt.
-
Dadurch
werden die Auslesedaten RD1a in den FIFO-Speicher 23 eingegeben.
In diesem Fall liegt eine Konkurrenz beim Speicherzugriff vor. Daher werden,
wie in 2 gezeigt, der FIFO-Speicher 23 und das
Register 24 im Zustand 1 in den Zustand 2 gesetzt, während der
FIFO-Speicher 23 und das Register 24 im Zustand
3 in den Zustand 2 gesetzt werden.
-
Der
Grund, weshalb der FIFO-Speicher 23 und das Register 24 im
Zustand 3 in den Zustand 2 gesetzt werden, ist, dass das Verarbeitungsfreigabesignal
EE logisch wahr gemacht wird, wenn der FIFO-Speicher 23 und
das Register 24 jeweils mindestens eine Dateneinheit halten,
was zur Folge hat, dass die einzelnen Daten aus dem FIFO-Speicher 23 und
dem Register 24 in die Verarbeitungseinheit 3 eingegeben
werden.
-
Die
Adressenerzeugungseinheit 1 macht das Lesefreigabesignal
RE1b logisch wahr, wenn der Quellspeicher 21 zwei verschiedene
Daten enthält, die
mit den Adresssignalen Aa, Ab ausgelesen werden sollen, wenn die
zwei verschiedenen Daten entweder in dem Speicher 211 oder
dem Speicher 212 enthalten sind und wenn außerdem der
FIFO-Speicher 23 und das Register 24 entweder
im Zustand 2 oder im Zustand 4 sind, wie in 2 gezeigt.
-
Dadurch
werden die Auslesedaten RD1b in das Register 24 eingegeben.
In diesem Fall liegt eine Konkurrenz beim Speicherzugriff vor. Daher
werden, wie in 2 gezeigt, der FIFO-Speicher 23 und
das Register 24 im Zustand 2 in den Zustand 3 gesetzt, und
der FIFO-Speicher 23 und
das Register 24 im Zustand 4 werden in den Zustand 3 gesetzt.
-
Der
Grund, weshalb der FIFO-Speicher 23 und das Register 24 im
Zustand 4 in den Zustand 3 gesetzt werden, ist, dass das Verarbeitungsfreigabesignal
EE logisch wahr gemacht wird, wenn der FIFO-Speicher 23 und
das Register 24 jeweils mindestens eine Dateneinheit halten,
was zur Folge hat, dass die einzelnen Daten aus dem FIFO-Speicher 23 und
dem Register 24 in die Verarbeitungseinheit 3 eingegeben
werden.
-
Die
Adressenerzeugungseinheit 1 macht die Lesefreigabesignale
RE2a, RE2b logisch wahr, wenn der Quellspeicher 22 zwei
verschiedene Daten enthält,
die mit den Adresssignalen Aa, Ab ausgelesen werden sollen, und
wenn außerdem
die zwei verschiedenen Daten in dem Speicher 221 bzw. 222 enthalten
sind.
-
Dadurch
werden die Auslesedaten RD2a, RD2b in den FIFO-Speicher 23 bzw.
das Register 24 eingegeben.
-
In
diesem Fall liegt keine Konkurrenz beim Speicherzugriff vor. Daher
werden, wie in 2 gezeigt, der FIFO-Speicher 23 und
das Register 24 im Zustand 1 in den Zustand 3 gesetzt,
der FIFO-Speicher 23 und das Register 24 im Zustand
2 werden in den Zustand 4 gesetzt, der FIFO-Speicher 23 und das
Register 24 im Zustand 3 werden im Zustand 3 belassen,
und der FIFO-Speicher 23 und das Register 24 im
Zustand 4 werden im Zustand 4 belassen.
-
Die
Adressenerzeugungseinheit 1 macht das Lesefreigabesignal
RE2a logisch wahr, wenn der Quellspeicher 22 zwei verschiedene
Daten enthält, die
mit den Adresssignalen Aa, Ab ausgelesen werden sollen, wenn die
zwei verschiedenen Daten entweder in dem Speicher 221 oder
dem Speicher 222 enthalten sind und wenn außerdem der
FIFO-Speicher 23 und das Register 24 entweder
im Zustand 1 oder im Zustand 3 sind, wie in 2 gezeigt.
-
Dadurch
werden die Auslesedaten RD2a in den FIFO-Speicher 23 eingegeben.
In diesem Fall liegt eine Konkurrenz beim Speicherzugriff vor. Daher werden,
wie in 2 gezeigt, der FIFO-Speicher 23 und das
Register 24 im Zustand 1 in den Zustand 2 gesetzt, während der
FIFO-Speicher 23 und das Register 24 im Zustand
3 in den Zustand 2 gesetzt werden.
-
Die
Adressenerzeugungseinheit 1 macht das Lesefreigabesignal
RE2b logisch wahr, wenn der Quellspeicher 22 zwei verschiedene
Daten enthält, die
mit den Adresssignalen Aa, Ab ausgelesen werden sollen, wenn die
zwei verschiedenen Daten entweder in dem Speicher 221 oder
dem Speicher 222 enthalten sind und wenn außerdem der
FIFO-Speicher 23 und das Register 24 entweder
im Zustand 2 oder im Zustand 4 sind, wie in 2 gezeigt.
-
Dadurch
werden die Auslesedaten RD2b in das Register 24 eingegeben.
In diesem Fall liegt eine Konkurrenz beim Speicherzugriff vor. Daher
werden, wie in 2 gezeigt, der FIFO-Speicher 23 und
das Register 24 im Zustand 2 in den Zustand 3 gesetzt, während der
FIFO-Speicher 23 und
das Register 24 im Zustand 4 in den Zustand 3 gesetzt werden.
-
Nachstehend
wird das Verfahren, mit dem die Daten in Abhängigkeit davon ausgelesen werden, wie
die Quellspeicher 21, 22 die Daten enthalten,
anhand von speziellen Beispielen beschrieben.
-
3 ist
eine deskriptive Darstellung, die eine Gruppe von Daten, die in
Frage kommende Verarbeitungsdaten Da ergeben, und eine Gruppe von Daten,
die in Frage kommende Verarbeitungsdaten Db ergeben, die in dem
Quellspeicher 21 bzw. 22 enthalten sind, zeigt.
-
4 ist
ein Zeitdiagramm, das zeigt, wie die in 3 gezeigten
Daten ausgelesen werden.
-
Wenn,
wie in 3 gezeigt, der Quellspeicher 21 eine
Reihe von Daten 0, 1, 2, 3, 4 und 5, die in Frage kommende Verarbeitungsdaten
Da ergeben, enthält
und wenn außerdem
der Quellspeicher 22 eine Reihe von Daten 6#, 7#, 8#, 9#,
10# und 11#, die in Frage kommende Verarbeitungsdaten Db ergeben,
enthält,
liegt keine Konkurrenz beim Speicherzugriff vor. In diesem Fall
werden die Daten in der nachstehend beschriebenen Weise ausgelesen.
-
Wie
in 4 gezeigt, macht die Adressenerzeugungseinheit 1 zum
Zeitpunkt t1 die Lesefreigabesignale RE1a, RE2b logisch wahr.
-
Zum
Zeitpunkt t2 werden in Reaktion auf das Logisch-wahr-Machen des
Lesefreigabesignals RE1a Daten 0 als Auslesedaten RD1a aus dem Quellspeicher 21 in
den FIFO-Speicher 23 eingegeben, während Daten 6# in Reaktion
auf das Logisch-wahr-Machen des Lesefreigabesignals RE2b als Auslesedaten
RD2b aus dem Quellspeicher 22 in das Register 24 eingegeben
werden.
-
Zum
Zeitpunkt t3 halten der FIFO-Speicher 23 und das Register 24 die
Daten 0 bzw. 6#. Dadurch werden der FIFO-Speicher 23 und
das Register 23 (Anm. d. Übers.: muss wohl „24" heißen) im
Zustand 1 in den Zustand 3 gesetzt, wie in 2 gezeigt.
-
Zum
Zeitpunkt t3 macht die Adressenerzeugungseinheit 1 fast
gleichzeitig mit dem Moment, wo der FIFO-Speicher 23 und
das Register 23 (Anm. d. Übers.: muss wohl „24" heißen) die
Daten 0 bzw. 6# halten, das Verarbeitungsfreigabesignal EE logisch wahr.
-
Zum
Zeitpunkt t3 geben der FIFO-Speicher 23 und das Register 24 im
Wesentlichen gleichzeitig mit dem Logisch-wahr-Machen des Verarbeitungsfreigabesignals
EE die gehaltenen Daten 0, 6# als in Frage kommende Verarbeitungsdaten
Da, Db jeweils parallel in die Verarbeitungseinheit 3 ein.
-
Zugleich
werden zum Zeitpunkt t3 die Daten 1 als Auslesedaten RD1a aus dem
Quellspeicher 21 in den FIFO-Speicher 23 eingegeben,
während
die Daten 7# als Auslesedaten RD2b aus dem Quellspeicher 22 in
das Register 24 eingegeben werden.
-
Zum
Zeitpunkt t2 wird das Adresssignal Aa, das die Adresse 0 angibt,
so erneuert, dass es die Adresse 1 angibt, da in Reaktion auf das
Logisch-wahr-Machen des Lesefreigabesignals RE1a die Daten 0 als
Auslesedaten RD1a aus dem Quellspeicher 21 in den FIFO-Speicher 23 eingegeben werden.
-
Zum
Zeitpunkt t2 wird das Adresssignal Ab, das die Adresse 6# angibt,
so erneuert, dass es die Adresse 7# angibt, da in Reaktion auf das
Logisch-wahr-Machen des Lesefreigabesignals RE2b die Daten 6# als
Auslesedaten RD2b aus dem Quellspeicher 22 in das Register 24 eingegeben
werden.
-
Gleichermaßen gibt
der Quellspeicher 21 die Restdaten 2–5 der Reihe nach in den FIFO-Speicher 23 ein,
während
der Quellspeicher 22 die Restdaten 8#–11# nacheinander in das Register 24 eingibt.
Die Daten 2–5
und die Daten 8#–11#
werden jeweils parallel in die Verarbeitungseinheit 3 eingegeben,
wo diese parallel eingegebenen Daten berechnet werden.
-
Nachstehend
wird ein weiteres Beispiel beschrieben.
-
5 ist
eine deskriptive Darstellung, die den Quellspeicher 21 zeigt,
der eine Gruppe von Daten, die in Frage kommende Verarbeitungsdaten
Da ergeben, und eine Gruppe von Daten, die in Frage kommende Verarbeitungsdaten
Db ergeben, enthält.
-
6 ist
ein Zeitdiagramm, das zeigt, wie die in 5 gezeigten
Daten ausgelesen werden.
-
Wie
in 5 gezeigt, enthält der Quellspeicher 21 eine
Reihe von Daten 0, 2, 4, die in Frage kommende Verarbeitungsdaten
Da ergeben, und eine Reihe von Daten 6, 8, 10, die in Frage kommende
Verarbeitungsdaten Db ergeben, im Speicher 211, während er
im Speicher 212 eine Reihe von Daten 1, 3, 5, die in Frage
kommende Verarbeitungsdaten Da ergeben, und eine Reihe von Daten
7, 9, 11, die in Frage kommende Verarbeitungsdaten Db ergeben, enthält.
-
In 6 geben
zum Zeitpunkt t1 die Adresssignale Aa, Ab die Adresse 0 bzw. 6 an.
Das bedeutet, dass eine Konkurrenz beim Zugriff auf den Speicher 211 vorliegt.
-
Insbesondere
enthält
der Speicher 211, ein Speicher des Speicherpaars, das den
Quellspeicher 21 bildet, die Daten 0 und 6, die zum Zeitpunkt
t1 mit der Adresse 0 als Adresssignal Aa bzw. der Adresse 6 als
Adresssignal Ab ausgelesen werden.
-
Zum
Zeitpunkt t1 sind der FIFO-Speicher 23 und das Register 24 im
Zustand 1.
-
Daher
wird zum Zeitpunkt t1 das Lesefreigabesignal RE1a logisch wahr gemacht.
-
Zum
Zeitpunkt t2 werden in Reaktion auf das Logisch-wahr-Machen des
Lesefreigabesignals RE1a die Daten 0 als Auslesedaten RD1a aus dem Speicher 211 in
den FIFO-Speicher 23 eingegeben.
-
Zum
Zeitpunkt t3 hält
der FIFO-Speicher 23 die Daten 0. Dadurch werden der FIFO-Speicher 23 und
das Register 24 im Zustand 1 in den Zustand 2 gesetzt.
-
Zum
Zeitpunkt t2 geben die Adresssignale Aa und Ab die Adresse 1 bzw.
6 an. Das bedeutet, dass keine Konkurrenz beim Speicherzugriff vorliegt.
-
Daher
wird zum Zeitpunkt t2 das Lesefreigabesignal RE1b logisch wahr gemacht.
-
Zum
Zeitpunkt t3 werden in Reaktion auf das Logisch-wahr-Machen des
Lesefreigabesignals RE1b die Daten 6 als Auslesedaten RD1b aus dem Speicher 211 in
das Register 24 eingegeben.
-
Gleichzeitig
werden zum Zeitpunkt t3 die Daten 1 als Auslesedaten RD1a aus dem
Speicher 212 in den FIFO-Speicher 23 eingegeben.
-
Zum
Zeitpunkt t2 wird das Adresssignal Aa, das die Adresse 0 darstellt,
so erneuert, dass es die Adresse 1 angibt, da in Reaktion auf das
Logisch-wahr-Machen des Lesefreigabesignals RE1a die Daten 0 als
Auslesedaten RD1a aus dem Speicher 211 ausgegeben werden.
-
Außerdem wird
zum Zeitpunkt t2 das Adresssignal Ab nicht erneuert, sondern es
bleibt als Adresse 6 bestehen, da die Auslesedaten RD1b aus dem Quellspeicher 21 ausgegeben
werden, während
das Lesefreigabesignal RE1b logisch wahr gemacht wird.
-
Zum
Zeitpunkt t4 halten der FIFO-Speicher 23 und das Register 24 die
Daten 1 bzw. 6. Dadurch werden der FIFO-Speicher 23 und
das Register 24 im Zustand 2 in den Zustand 4 gesetzt.
-
Zum
Zeitpunkt t4 macht die Adressenerzeugungseinheit 1 das
Verarbeitungsfreigabesignal EE im Wesentlichen gleichzeitig mit
dem Moment, wo das Register 24 die Daten 6 hält, logisch
wahr.
-
Zum
Zeitpunkt t4 geben der FIFO-Speicher 23 und das Register 24 die
gehaltenen Daten 0, 6 als in Frage kommende Verarbeitungsdaten Da,
Db im Wesentlichen gleichzeitig mit dem Logisch-wahr-Machen des
Verarbeitungsfreigabesignals EE jeweils in die Verarbeitungseinheit 3 parallel
ein.
-
Gleichzeitig
werden zum Zeitpunkt t4 die Daten 2 als Auslesedaten RD1a aus dem
Speicher 211 in den FIFO-Speicher 23 eingegeben,
während
die Daten 7 als Auslesedaten RD1b aus dem Speicher 212 in
das Register 24 eingegeben werden.
-
Zum
Zeitpunkt t3 wird das Adresssignal Aa, das die Adresse 1 angibt,
so erneuert, dass es die Adresse 2 angibt, da in Reaktion auf das
Logisch-wahr-Machen des Lesefreigabesignals RE1a die Daten 1 als
Auslesedaten RD1a aus dem Speicher 212 in den FIFO-Speicher 23 eingegeben
werden.
-
Außerdem wird
zum Zeitpunkt t3 das Adresssignal Ab, das die Adresse 6 angibt,
so erneuert, dass es die Adresse 7 angibt, da in Reaktion auf das Logisch-wahr-Machen
des Lesefreigabesignals RE1b die Daten 6 als Auslesedaten RD1b aus
dem Speicher 211 in das Register 24 eingegeben
werden.
-
Gleichermaßen werden
die Restdaten 3–5 der
Reihe nach aus dem Quellspeicher 21 in den FIFO-Speicher 23 eingegeben,
während
die Restdaten 8–11
nacheinander aus dem Quellspeicher 21 in das Register 24 eingegeben
werden. Die Daten 3–5 und
die Daten 8–11
werden jeweils parallel in die Verarbeitungseinheit 3 eingegeben,
wo diese parallel eingegebenen Daten berechnet werden.
-
Wie
vorstehend dargelegt, werden das Adresssignal Aa und die Lesefreigabesignale
RE1a, RE2a in Verbindung mit den in Frage kommenden Verarbeitungsdaten
Da erzeugt, während
das Adresssignal Ab und die Lesefreigabesignale RE1b, RE2b in Verbindung
mit den in Frage kommenden Verarbeitungsdaten Db erzeugt werden.
Dadurch ist die Datenausgabe von den Quellspeichern 21, 22 für die einzelnen
zu verarbeitenden Daten anstatt für die einzelnen Quellspeicher 21, 22 steuerbar.
-
Daher
können
auch dann, wenn derselbe Quellspeicher die Daten, die die in Frage
kommenden Verarbeitungsdaten Da ergeben, und die Daten, die die
in Frage kommenden Verarbeitungsdaten Db ergeben, speichert, die
Daten, die die in Frage kommenden Verarbeitungsdaten Da ergeben,
und die Daten, die die in Frage kommenden Verarbeitungsdaten Db
ergeben, in den FIFO-Speicher 23 bzw. das Register 24 eingegeben
werden, ohne die Daten zu einem anderen Quellspeicher übertragen
zu müssen.
-
Dadurch
können
durch die Datenübertragung
verursachte Belastungen gemindert werden, und es kann eine Verarbeitung
mit hoher Geschwindigkeit erzielt werden. Diese Funktion ermöglicht eine
Verarbeitungsvorrichtung mit einer besseren Leistungsfähigkeit.
-
Eine
weitere Funktion besteht darin, dass durch die Minderung der Belastungen,
die von der Datenübertragung
verursacht werden, der Prozessor weniger elektrische Energie verbraucht.
-
Wie
in 10 gezeigt, erzeugt ein Prozessor des Standes
der Technik Adresssignale A1, A2 und Lesefreigabesignale RE1, RE2
für die
einzelnen Quellspeicher 501, 502. Dadurch ist
die Datenausgabe nur mit den einzelnen Quellspeichern 501, 502 steuerbar.
-
Somit
macht der Prozessor des Standes der Technik die in 14 gezeigte
Datenübertragung
erforderlich, wenn Daten in der in 13 gezeigten Weise
gespeichert werden.
-
Wie
vorstehend dargelegt, besteht bei der vorliegenden Ausführungsform
der Quellspeicher 21 aus den Speichern 211, 212,
in denen eine Gruppe von geradzahligen Adressen und eine Gruppe
von ungeradzahligen Adressen dem Speicher 211 bzw. 212 zugeordnet
sind.
-
Der
Quellspeicher 22 besteht aus den Speichern 221, 222,
in denen eine Gruppe von geradzahligen Adressen und eine Gruppe
von ungeradzahligen Adressen dem Speicher 221 bzw. 222 zugeordnet
sind.
-
Daher
können
auch dann, wenn derselbe Quellspeicher die Daten, die die in Frage
kommenden Verarbeitungsdaten Da ergeben, und die Daten, die die
in Frage kommenden Verarbeitungsdaten Db ergeben, speichert, die
Daten, die die in Frage kommenden Verarbeitungsdaten Da ergeben,
und die Daten, die die in Frage kommenden Verarbeitungsdaten Db
ergeben, mit hoher Frequenz in den FIFO-Speicher 23 bzw.
das Register 24 eingegeben werden, wenn diese gespeicherten
Daten Vektordaten mit vielen aufeinanderfolgenden Adressen sind.
-
Wenn
der Quellspeicher die Vektordaten mit vielen aufeinanderfolgenden
Adressen speichert, kann eine Verarbeitung mit einer höheren Geschwindigkeit
erzielt werden. Mit diesem Merkmal kann ein Prozessor mit einer
noch besseren Leistungsfähigkeit
bereitgestellt werden.
-
Nehmen
wir beispielsweise an, dass in 1 der Quellspeicher 21 eine
Reihe von an Adressen 0–4
enthaltenen Daten, die in Frage kommende Verarbeitungsdaten Da ergeben,
und eine Reihe von an Adressen 5–9 enthaltenen Daten, die in
Frage kommende Verarbeitungsdaten Db ergeben, hat. In diesem Fall
können
die Daten, die die in Frage kommenden Verarbeitungsdaten Da ergeben,
und die Daten, die die in Frage kommenden Verarbeitungsdaten Db ergeben,
zu dem FIFO-Speicher 23 bzw. dem Register 24 parallel übertragen
werden.
-
Wenn,
wie vorstehend dargelegt, bei der vorliegenden Ausführungsform
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 gespeichert
werden und wenn außerdem
weder der FIFO-Speicher 23 noch das Register 24 Daten
halten (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 1 sind und wenn außerdem eine
Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
weder der FIFO-Speicher 23 noch das Register 24 Daten
halten (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 1 sind und wenn außerdem eine
Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 enthält und wenn außerdem das
Register 24 keine Daten hält, die mit allen im FIFO-Speicher 23 gehaltenen
Daten verarbeitet werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 2 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
das Register 24 keine Daten hält, die mit allen im FIFO-Speicher 23 gehaltenen
Daten verarbeitet werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 2 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Wenn
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 enthält und wenn außerdem das
Register 24 stets Daten hält, die mit den im FIFO-Speicher 23 gehaltenen
Daten verarbeitet werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 3 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
das Register 24 stets Daten hält, die mit den im FIFO-Speicher 23 gehaltenen
Daten verarbeitet werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 3 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 enthält und wenn außerdem das
Register 24 keine Daten hält, die mit einigen der im
FIFO-Speicher 23 gehaltenen
Daten verarbeitet werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 4 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
das Register 24 keine Daten hält, die mit einigen der im
FIFO-Speicher 23 gehaltenen Daten verarbeitet werden sollen
(mit anderen Worten, wenn der FIFO-Speicher 23 und das
Register 24 im Zustand 4 von 2 sind und
wenn außerdem eine
Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Wenn,
wie vorstehend dargelegt, die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten in dem Quellspeicher 21 entweder
im Speicher 211 oder im Speicher 212 oder alternativ
im Quellspeicher 22 entweder im Speicher 221 oder
im Speicher 222 enthalten sind, gibt der Quellspeicher 21 oder
andernfalls der Quellspeicher 22 zunächst alle Daten entweder in den
FIFO-Speicher 23 oder das Register 24 ein. Auf diese
Weise wird der Zeitpunkt der Datenausgabe in den FIFO-Speicher 23 und
das Register 24 eingestellt.
-
Abgesehen
von der vorgenannten Zeiteinstellung haben die Quellspeicher 21, 22 eine
Reihe von geradzahligen Adressen, die jeweils dem Speicher 211 zugeordnet
sind, und eine Reihe von geradzahligen Adressen, die jeweils dem
Speicher 221 zugeordnet sind. Die Quellspeicher 21, 22 haben
eine Reihe von ungeradzahligen Adressen, die jeweils dem Speicher 212 zugeordnet
sind, und eine Reihe von ungeradzahligen Adressen, die jeweils dem Speicher 222 zugeordnet
sind.
-
Dadurch
können,
nachdem der Zeitpunkt der Datenausgabe in den FIFO-Speicher 23 und
das Register 24 eingestellt worden ist, die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten parallel in den FIFO-Speicher 23 bzw. das Register 24 eingegeben werden,
wenn die übertragenen
Daten Vektordaten mit vielen aufeinanderfolgenden Adressen sind.
-
Wie
vorstehend dargelegt, können
die von dem Adresssignal Aa adressierten Daten und die von dem Adresssignal
Ab adressierten Daten mit hoher Frequenz parallel in den FIFO-Speicher 23 bzw.
das Register 24 eingegeben werden, wenn die übertragenen
Daten Vektordaten mit vielen aufeinanderfolgenden Adressen sind.
-
Mit
diesem Merkmal wird eine Verarbeitung mit einer höheren Geschwindigkeit
realisiert und somit ein Prozessor mit einer noch besseren Leistungsfähigkeit
bereitgestellt.
-
Außerdem ist
bei der vorliegenden Ausführungsform
der FIFO-Speicher 23 so gestaltet, dass er die ersten enthaltenen
Daten zuerst herauslässt
und höchstens
zwei Daten hält.
Das Register 24 kann höchstens
eine Dateneinheit halten.
-
Wenn
der FIFO-Speicher 23 und das Register 24 jeweils
mindestens eine Dateneinheit halten, geben der FIFO-Speicher 23 und
das Register 24 in Reaktion auf das Verarbeitungsfreigabesignal
EE die einzelnen in Frage kommenden Verarbeitungsdaten Da, Db jeweils
in die Verarbeitungseinheit 3 ein.
-
Dadurch
haben der FIFO-Speicher 23 und das Register 24,
die jeweils die kleinste Größe haben,
die vorgesehen ist, um eine solche geringe Anzahl von Daten zu halten,
die vorgenannte günstige Wirkung,
dass die von dem Adresssignal Aa adressierten Daten und die von
dem Adresssignal Ab adressierten Daten mit hoher Frequenz zu dem FIFO-Speicher 23 bzw.
dem Register 24 parallel übertragen werden können, wenn
diese übertragenen
Daten Vektordaten mit vielen aufeinanderfolgenden Adressen sind.
-
Mit
diesem Merkmal werden eine Kostensenkung und eine Schaltungsverkleinerung
realisiert.
-
Wenn
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 enthält und wenn außerdem weder
der FIFO-Speicher 23 noch das Register 24 Daten
hält (mit
anderen Worten, wenn der FIFO-Speicher 23 und das Register 24 im
Zustand 1 sind und wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
weder der FIFO-Speicher 23 noch das Register 24 Daten
hält (mit
anderen Worten, wenn der FIFO-Speicher 23 und das Register 24 im Zustand
1 sind und wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 enthält und wenn außerdem der
FIFO-Speicher 23 eine Dateneinheit hält, aber das Register 24 keine
Daten hält
(mit anderen Worten, wenn der FIFO-Speicher 23 und das
Register 24 im Zustand 2 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
der FIFO-Speicher 23 eine Dateneinheit hält, aber
das Register 24 keine Daten hält (mit anderen Worten, wenn
der FIFO-Speicher 23 und das Register 24 im Zustand
2 von 2 sind und wenn außerdem eine Konkurrenz beim
Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Wenn
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 enthält und wenn außerdem der
FIFO-Speicher 23 eine Dateneinheit hält und das Register 24 Daten
hält, die
mit den im FIFO-Speicher 23 gehaltenen Daten verarbeitet
werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 3 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
der FIFO-Speicher 23 eine Dateneinheit hält und das
Register 24 Daten hält,
die mit den im FIFO-Speicher 23 gehaltenen Daten verarbeitet
werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 3 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Aa adressierten Daten in den FIFO-Speicher 23 ein.
-
Wenn
der Quellspeicher 21 die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten entweder
im Speicher 211 oder im Speicher 212 enthält und wenn außerdem der
FIFO-Speicher 23 zwei Daten hält und das Register 24 Daten
hält, die
mit den im FIFO-Speicher 23 gehaltenen Daten verarbeitet
werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 4 von 2 sind und wenn
außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 21 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Wenn
alternativ der Quellspeicher 22 die von dem Adresssignal
Aa adressierten Daten und die von dem Adresssignal Ab adressierten
Daten entweder im Speicher 221 oder im Speicher 222 enthält und wenn
außerdem
der FIFO-Speicher 23 zwei Daten hält und das Register 24 Daten
hält, die
mit einer Dateneinheit der im FIFO-Speicher 23 gehaltenen
Daten verarbeitet werden sollen (mit anderen Worten, wenn der FIFO-Speicher 23 und
das Register 24 im Zustand 4 von 2 sind und
wenn außerdem
eine Konkurrenz beim Speicherzugriff vorliegt), gibt der Quellspeicher 22 die
von dem Adresssignal Ab adressierten Daten in das Register 24 ein.
-
Dadurch
kann mit der am besten geeigneten Verarbeitung für den FIFO-Speicher 23 und
das Register 24, die jeweils die kleinste Größe haben,
die vorgesehen ist, um eine solche geringe Anzahl von Daten zu enthalten,
die vorgenannte günstige
Wirkung erzielt werden, dass die von dem Adresssignal Aa adressierten
Daten und die von dem Adresssignal Ab adressierten Daten mit hoher
Frequenz parallel zu der FIFO-Speicher 23 bzw. dem Register 24 übertragen
werden können,
wenn die übertragenen
Daten Vektordaten mit vielen aufeinanderfolgenden Adressen sind.
-
Außerdem stellt
die vorliegende Ausführungsform
zwei Quellspeicher 21, 22 bereit. Dadurch kann
die vorliegende Ausführungsform
problemlos für
einen DSP mit zwei Speicherquellen verwendet werden.
-
Die
Quellspeicher 21, 22 sind ein Beispiel für eine in
den Ansprüchen
definierte Speichereinheit. Der FIFO-Speicher 23 ist ein
Beispiel für
eine erste in den Ansprüchen
definierte Datenhalte-Einheit. Das Register 24 ist ein
Beispiel für
eine zweite in den Ansprüchen
definierte Datenhalte-Einheit. Die Speicher 211, 221 sind
ein Beispiel für
einen ersten Speicherbereich, der in den Ansprüchen definiert ist. Die Speicher 212, 222 sind
ein Beispiel für
einen zweiten Speicherbereich, der in den Ansprüchen definiert ist.
-
Ausführungsform 2
-
7 ist
ein Blockdiagramm, das einen beispielhaften Prozessor nach einer
zweiten Ausführungsform
zeigt. In 7 sind Komponenten und Signale,
die denen von 1 ähnlich sind, mit den gleichen
Bezugssymbolen bezeichnet, und die zugehörigen Beschreibungen werden
weggelassen.
-
Wie
aus 7 zu erkennen ist, weicht der Prozessor in der
vorliegenden Ausführungsform
hinsichtlich der Gestaltung der Quellspeicher 21, 22 von dem
in der vorhergehenden Ausführungsform
ab. Die anderen Komponenten sind denen in der vorhergehenden Ausführungsform ähnlich.
-
Wie
in 7 gezeigt, weist der Prozessor nach der vorliegenden
Ausführungsform
Quellspeicher 21, 22 auf, wobei der Erstgenannte
aus Speichern 213, 214 besteht, während der
Letztgenannte aus Speichern 223, 224 besteht.
-
Bei
der vorliegenden Ausführungsform
hat der Quellspeicher 21 eine Gruppe von aufeinanderfolgenden
Adressen, die dem Speicher 213 zugeordnet sind, und eine
andere Gruppe von aufeinanderfolgenden Adressen, die dem Speicher 214 zugeordnet sind.
-
Der
Quellspeicher 22 hat eine Gruppe von aufeinanderfolgenden
Adressen, die dem Speicher 223 zugeordnet sind, und eine
andere Gruppe von aufeinanderfolgenden Adressen, die dem Speicher 224 zugeordnet
sind.
-
Bei
der vorliegenden Ausführungsform
enthält
der Quellspeicher 21 jedes gemeinsam verwendete Datenpaar
in dem Speicher 213 bzw. 214.
-
Ebenso
enthält
der Quellspeicher 22 jedes gemeinsam verwendete Datenpaar
in dem Speicher 223 bzw. 224.
-
Dadurch
werden bei der vorliegenden Ausführungsform
die Daten in einer Weise ausgelesen, die der Weise ähnlich ist,
in der Daten ausgelesen werden, wenn wie bei der vorhergehenden
Ausführungsform
keine Konkurrenz beim Speicherzugriff vorliegt.
-
In 7 ist
eine Reihe von Adressen 0, 1, 2, 3, 4, 5 als erste Hälfte aller
Adressen im Quellspeicher 21 dem Speicher 213 zugeordnet,
während
eine Reihe von Adressen 6, 7, 8, 9, 10, 11 als zweite Hälfte aller
Adressen im Quellspeicher 21 dem Speicher 214 zugeordnet
ist.
-
Gleichermaßen ist
eine Reihe von Adressen 0#, 1#, 2#, 3#, 4#, 5# als erste Hälfte aller
Adressen im Quellspeicher 22 dem Speicher 223 zugeordnet, während eine
Reihe von Adressen 6#, 7#, 8#, 9#, 10#, 11# als zweite Hälfte aller
Adressen im Quellspeicher 22 dem Speicher 224 zugeordnet
ist.
-
In 7 hält der Quellspeicher 21 jedes
gemeinsam verwendete Datenpaar im Speicher 213 bzw. 214.
Die Speicher 213, 214 belegen entsprechende Plätze für die erste
und zweite Hälfte
aller Adressen im Quellspeicher 21.
-
Gleichermaßen hält der Quellspeicher 22 jedes
gemeinsam verwendete Datenpaar im Speicher 223 bzw. 224.
Die Speicher 223, 224 belegen entsprechende Plätze für die erste
und zweite Hälfte
aller Adressen im Quellspeicher 22.
-
Dadurch
erfolgt das Auslesen von Daten in 7 in einer
Weise, die der Weise ähnlich
ist, in der Daten ausgelesen werden, wenn wie bei der vorhergehenden
Ausführungsform
keine Konkurrenz beim Speicherzugriff vorliegt.
-
Nachstehend
wird das Auslesen von Daten anhand eines speziellen Beispiels beschrieben.
-
8 ist
ein Zeitdiagramm, das zeigt, wie die Daten in dem Prozessor von 7 ausgelesen
werden. 8 setzt voraus, dass der Quellspeicher 21 eine
Reihe von Daten 0–5,
die in Frage kommende Verarbeitungsdaten Da ergeben, im Speicher 213 hält und eine
Reihe von Daten 6–11,
die in Frage kommende Verarbeitungsdaten Db ergeben, im Speicher 214 hält, wie
in 7 gezeigt.
-
Wie
in 8 gezeigt, macht die Adressenerzeugungseinheit 1 zum
Zeitpunkt t1 Lesefreigabesignale RE1a, RE1b logisch wahr.
-
Zum
Zeitpunkt t2 gibt der Speicher 213 die Daten 0 als Auslesedaten
RD1a in den FIFO-Speicher 23 ein,
während
der Speicher 214 die Daten 6 als Auslesedaten RD1b in das
Register 24 eingibt.
-
Zum
Zeitpunkt t3 halten der FIFO-Speicher 23 und das Register 24 die
Daten 0 bzw. 6. Dadurch werden der FIFO-Speicher 23 und
das Register 24 im Zustand 1 von 2 in den
Zustand 3 von 2 gesetzt.
-
Zum
Zeitpunkt t3 macht die Adressenerzeugungseinheit 1 das
Verarbeitungsfreigabesignal EE fast gleichzeitig mit dem Moment,
wo der FIFO-Speicher 23 und das Register 24 die
Daten 0 bzw. 6 halten, logisch wahr.
-
Zum
Zeitpunkt t3 geben der FIFO-Speicher 23 und das Register 24 fast
gleichzeitig mit dem Logisch-wahr-Machen des Verarbeitungsfreigabesignals
EE die gehaltenen Daten 0, 6 als in Frage kommende Verarbeitungsdaten
Da, Db jeweils parallel in die Verarbeitungseinheit 3 ein.
-
Gleichzeitig
geben die Speicher 213, 214 zum Zeitpunkt t3 die
Daten 1, 7 als Auslesedaten RD1a, RD1b in den FIFO-Speicher 23 bzw.
das Register 24 ein.
-
Zum
Zeitpunkt t2 wird das Adresssignal Aa, das die Adresse 0 angibt,
so erneuert, dass es die Adresse 1 angibt, da in Reaktion auf das
Logisch-wahr-Machen des Lesefreigabesignals RE1a die Daten 0 als
Auslesedaten RD1a aus dem Speicher 213 in den FIFO-Speicher 23 eingegeben
werden.
-
Außerdem wird
zum Zeitpunkt t2 das Adresssignal Ab, das die Adresse 6 angibt,
so erneuert, dass es die Adresse 7 angibt, da in Reaktion auf das Logisch-wahr-Machen
des Lesefreigabesignals RE1b die Daten 6 als Auslesedaten RD1b aus
dem Speicher 214 in das Register 24 eingegeben
werden.
-
Gleichermaßen werden
die Restdaten 2–5 der
Reihe nach vom Speicher 213 in den FIFO-Speicher 23 eingegeben,
während
die Restdaten 8–11 nacheinander
vom Speicher 214 in das Register 24 eingegeben
werden. Die Daten 2–5
und die Daten 8–11
werden jeweils parallel zueinander in die Verarbeitungseinheit 3 eingegeben,
wo diese parallel eingegebenen Daten verarbeitet werden.
-
Wie
aus 8 zu erkennen ist, zeigt ein Vergleich des Adresssignals
Aa mit dem Adresssignal Ab, dass keine Konkurrenz beim Speicherzugriff
vorliegt.
-
Wie
vorstehend dargelegt, besteht bei der vorliegenden Ausführungsform
der Quellspeicher 21 aus den Speichern 213, 214,
wobei eine Gruppe von aufeinanderfolgenden Adressen dem Speicher 213 zugeordnet
ist, während
eine andere Gruppe von aufeinanderfolgenden Adressen dem Speicher 214 zugeordnet
ist.
-
Der
Quellspeicher 22 besteht aus den Speichern 223, 224,
wobei eine Gruppe von aufeinanderfolgenden Adressen dem Speicher 223 zugeordnet ist,
während
eine andere Gruppe von aufeinanderfolgenden Adressen dem Speicher 224 zugeordnet
ist.
-
Insbesondere
belegt in 7 der Speicher 213 einen
Platz für
die erste Hälfte
aller Adressen im Quellspeicher 21, während der Speicher 214 einen anderen
Platz für
die zweite Hälfte
aller Adressen dort belegt.
-
Außerdem belegt
der Speicher 223 einen Platz für die erste Hälfte aller
Adressen im Quellspeicher 22, während der Speicher 224 einen
anderen Platz für
die zweite Hälfte
aller Adressen dort belegt.
-
Die
vorstehende Gestaltung erlaubt es, ein gemeinsam verwendetes Datenpaar,
das in demselben Quellspeicher gespeichert werden muss, in demselben
Quellspeicher in dem einen oder dem anderen Speicher zu speichern.
Dadurch kann jedes Datenpaar zu dem FIFO-Speicher 23 bzw. dem Register 24 parallel übertragen
werden, unabhängig
davon, ob dieses parallele Auslesen von Daten mit Folge-Adressierung
oder Adressierung für
direkten Zugriff erfolgt.
-
Dadurch
ist eine Verarbeitung mit hoher Geschwindigkeit unabhängig von
der Folge-Adressierung
oder der Adressierung für
direkten Zugriff erreichbar. Dieses Merkmal ermöglicht einen Prozessor mit
einer besseren Leistungsfähigkeit.
-
Es
ist zu beachten, dass 8 die Folge-Adressierung nur
mittels des Auslesens von Daten zeigt, aber das vorgenannte parallele
Auslesen von Daten mit der Adressierung für direkten Zugriff realisiert
wird.
-
Wenn
die Daten-Speicherpositionen (Adressen) im Quellspeicher bei der
Programmierung so festgelegt werden, dass die vorgenannten günstigen Wirkungen
erzielt werden, dann ist alles, was erforderlich ist, zu berücksichtigen,
dass die Daten entweder in dem einen oder in dem anderen Speicher
gespeichert werden können.
Dieses Merkmal verringert die Belastung eines Programmierers.
-
Insbesondere
wenn beispielsweise der Quellspeicher 21 ein Datenpaar,
das in Frage kommende Verarbeitungsdaten Da, Db ergibt, enthält, kann
der eine Speicher 213 die Daten, die die in Frage kommenden
Verarbeitungsdaten Da ergeben, an einer beliebigen Speicherposition
speichern, während
der andere Speicher 214 die Daten, die die in Frage kommenden
Daten Db ergeben, an einer beliebigen Speicherposition speichern
kann.
-
Somit
kann, wenn die Daten-Speicherpositionen für jeden Speicher festgelegt
werden, die bereits beschriebene parallele Datenübertragung erreicht werden.
Dieses Merkmal ermöglicht
ein einfacheres Festlegen der Daten-Speicherpositionen als beim
Stand der Technik, wo die Daten-Speicherpositionen für jede Speicherposition
festgelegt werden.
-
Außerdem stellt
die vorliegende Ausführungsform
zwei Quellspeicher 21, 22 bereit. Dadurch kann
die vorliegende Ausführungsform
problemlos für
einen DSP mit zwei Quellspeichern verwendet werden.
-
Wie
vorstehend dargelegt, kann derselbe Quellspeicher jedes gemeinsam
verwendete Datenpaar in dem einen bzw. dem anderen Speicher speichern.
Alternativ können
bei der vorliegenden Ausführungsform
die Quellspeicher 21, 22 Daten frei enthalten.
-
In
diesem Fall können ähnlich wie
bei der vorhergehenden Ausführungsform
die durch die Datenübertragung
verursachten Belastungen gemindert werden, und eine Verarbeitung
mit hoher Geschwindigkeit ist erreichbar. Dieses Merkmal ermöglicht einen
Prozessor mit einer noch besseren Leistungsfähigkeit.
-
Außerdem können ähnlich wie
bei der vorhergehenden Ausführungsform
die durch die Datenübertragung
verursachten Belastungen gemindert werden, wodurch ein Prozessor
bereitgestellt wird, der so gestaltet ist, dass er eine geringere
Menge an elektrischer Energie verbraucht.
-
Die
Quellspeicher 21, 22 sind ein Beispiel für Speichereinheiten,
die in den Ansprüchen
definiert sind. Der FIFO-Speicher 23 ist ein Beispiel für eine erste
in den Ansprüchen
definierte Datenhalte-Einheit. Das Register 24 ist ein
Beispiel für
eine zweite in den Ansprüchen
definierte Datenhalte-Einheit. Die Speicher 213, 223 sind
ein Beispiel für
einen ersten Speicherbereich, der in den Ansprüchen definiert ist. Die Speicher 214, 224 sind
ein Beispiel für
einen zweiten Speicherbereich, der in den Ansprüchen definiert ist.
-
Ausführungsform 3
-
9 ist
ein Blockdiagramm, das einen beispielhaften Prozessor nach einer
dritten Ausführungsform
zeigt. Komponenten und Signale, die denen in den 1 und 7 ähnlich sind,
sind mit den gleichen Bezugssymbolen bezeichnet, und die zugehörigen Beschreibungen
werden weggelassen.
-
Wie
aus 9 zu erkennen ist, wird der Prozessor in der vorliegenden
Ausführungsform
von einer Kombination aus dem Prozessor der ersten Ausführungsform
und dem Prozessor der zweiten Ausführungsform gebildet.
-
Wie
in 9 gezeigt, weist der Prozessor nach der vorliegenden
Ausführungsform
ein Paar Quellspeicher 21, 22 auf. Der Quellspeicher 21 besteht
aus Speichern 211, 212, 213 und 214.
Der Quellspeicher 22 besteht aus Speichern 221, 222, 223 und 224.
Die Speicher 211, 212, 213 und 214 sind
die Gleichen wie der Speicher 211 von 1, der
Speicher 212 von 1, der Speicher 213 von 7 bzw.
der Speicher 214 von 7. Die Speicher 221, 222, 223 und 224 sind
die Gleichen wie der Speicher 221 von 1,
der Speicher 222 von 1, der Speicher 223 von 7 bzw.
der Speicher 224 von 7.
-
Bei
der vorliegenden Ausführungsform
hat der Quellspeicher 21 entsprechende Gruppen von Adressen,
die ähnlich
wie bei der ersten Ausführungsform
den Speichern 211, 212 zugeordnet sind. Der Quellspeicher 22 hat
entsprechende Gruppen von Adressen, die ähnlich wie bei der ersten Ausführungsform
den Speichern 221, 222 zugeordnet sind.
-
Bei
der vorliegenden Ausführungsform
hat der Quellspeicher 21 entsprechende Gruppen von Adressen,
die ähnlich
wie bei der zweiten Ausführungsform
den Speichern 213, 214 zugeordnet sind. Der Quellspeicher 22 hat
entsprechende Gruppen von Adressen, die ähnlich wie bei der zweiten
Ausführungsform
den Speichern 223, 224 zugeordnet sind.
-
In 9 sind
aufeinanderfolgende Adressen 0–11
als erste Hälfte
aller Adressen im Quellspeicher 21 zusammengefasst. Von
den aufeinanderfolgenden Adressen 0–11 ist eine Gruppe von geradzahligen
Adressen 0, 2, 4, 6, 8, 10 dem Speicher 211 zugeordnet,
während
eine Gruppe von ungeradzahligen Adressen 1, 3, 5, 7, 9, 11 dem Speicher 212 zugeordnet
ist.
-
Gleichermaßen sind
aufeinanderfolgende Adressen 12–23
als zweite Hälfte
aller Adressen im Quellspeicher 21 zusammengefasst. Von
den aufeinanderfolgenden Adressen 12–23 ist eine Gruppe von Adressen
12, 13, 14, 15, 16, 17 als erste Hälfte der Adressen 12–23 dem
Speicher 213 zugeordnet, während eine Gruppe von Adressen
18, 19, 20, 21, 22, 23 als zweite Hälfte der Adressen 12–23 dem
Speicher 214 zugeordnet ist.
-
Außerdem sind
aufeinanderfolgende Adressen 0#–11#
als erste Hälfte
aller Adressen im Quellspeicher 22 zusammengefasst. Von
den aufeinanderfolgenden Adressen 0#–11# ist eine Gruppe von geradzahligen
Adressen 0#, 2#, 4#, 6#, 8#, 10# dem Speicher 221 zugeordnet,
während
eine Gruppe von ungeradzahligen Adressen 1#, 3#, 5#, 7#, 9#, 11# dem
Speicher 222 zugeordnet ist.
-
Außerdem sind
aufeinanderfolgende Adressen 12#–23# als zweite Hälfte aller
Adressen im Quellspeicher 22 zusammengefasst. Von den aufeinanderfolgenden
Adressen 12#–23#
ist eine Gruppe von Adressen 12#, 13#, 14#, 15#, 16#, 17# als erste Hälfte der
Adressen 12#–23#
dem Speicher 223 zugeordnet, während eine Gruppe von Adressen
18#, 19#, 20#, 21#, 22#, 23# als zweite Hälfte der Adressen 12#–23# dem
Speicher 224 zugeordnet ist.
-
Wenn
die aufeinanderfolgenden Adressen 12–23 als zweite Hälfte alter
Adressen im Quellspeicher 21 zusammengefasst sind, hält der Quellspeicher 21 jedes
gemeinsam verwendete Datenpaar im Speicher 213 bzw. 214.
Der Speicher 213 belegt einen Platz für die Adressen 12–17 als
erste Hälfte
der Adressen 12–23.
Der Speicher 214 belegt einen anderen Platz für die Adressen
18–23
als zweite Hälfte der
Adressen 12–23.
-
Gleichermaßen hält, wenn
die aufeinanderfolgenden Adressen 12#–23# als zweite Hälfte aller Adressen
im Quellspeicher 22 zusammengefasst sind, der Quellspeicher 22 jedes
gemeinsam verwendete Datenpaar im Speicher 223 bzw. 224.
Der Speicher 223 belegt einen Platz für die Adressen 12#–17# als
erste Hälfte
der Adressen 12#–23#.
Der Speicher 224 belegt einen anderen Platz für die Adressen 18#–23# als
zweite Hälfte
der Adressen 12#–23#.
-
Wie
vorstehend dargelegt, kann derselbe Quellspeicher jedes gemeinsam
verwendete Datenpaar in dem einen bzw. dem anderen Speicher halten.
Alternativ können
die Speicher 213, 214, 223 und 224 Daten
uneingeschränkt
enthalten.
-
Die
weiteren Gestaltungen bei der vorliegenden Ausführungsform sind die Gleichen
wie die bei der ersten und zweiten Ausführungsform.
-
Dadurch
werden die Daten, die im Quellspeicher 21 in den Speichern 211, 212 gehalten
werden, und die Daten, die im Quellspeicher 22 in den Speichern 221, 222 gehalten
werden, in einer Weise ausgelesen, die der Weise ähnlich ist,
in der Daten bei der ersten Ausführungsform
ausgelesen werden.
-
Außerdem werden
die Daten, die im Quellspeicher 21 in den Speichern 213, 214 gehalten
werden, und die Daten, die im Quellspeicher 22 in den Speichern 223, 224 gehalten
werden, in einer Weise ausgelesen, die der Weise ähnlich ist,
in der Daten bei der zweiten Ausführungsform ausgelesen werden.
-
Wie
vorstehend dargelegt, bildet eine Kombination aus der ersten und
der zweiten Ausführungsform
die vorliegende Ausführungsform.
-
Daher
hat die vorliegende Ausführungsform günstige Wirkungen,
die denen ähnlich
sind, die bei der ersten und zweiten Ausführungsform erzielt werden.
-
Da
die vorliegende Ausführungsform
eine Kombination aus den vorhergehenden Ausführungsformen ist, können die
einzelnen Daten mit hoher Frequenz zu dem FIFO-Speicher 23 und
dem Register 24 parallel übertragen werden, wenn die
Daten, die im Quellspeicher 21 in den Speichern 211, 212 gespeichert
sind, Vektordaten sind, auf die mittels Folge-Adressierung zugegriffen
werden soll. Und wenn jedes Datenpaar so programmiert wird, dass
es im Quellspeicher in dem Speicher 213 bzw. 214 gespeichert
wird, kann das Datenpaar unabhängig
von der Folge-Adressierung oder der Adressierung für direkten
Zugriff zu dem FIFO-Speicher 23 bzw. dem Register 24 parallel überfragen
werden. Das Gleiche geschieht auch im Quellspeicher 22.
-
Dadurch
kann eine Verarbeitung mit hoher Geschwindigkeit realisiert werden,
wodurch ein Prozessor mit einer höheren Leistungsfähigkeit
bereitgestellt wird. Außerdem
ist der Prozessor mit einem größeren Freiheitsgrad
betreibbar.
-
Die
Quellspeicher 21, 22 sind ein Beispiel für Speichereinheiten,
die in den Ansprüchen
definiert sind. Der FIFO-Speicher 23 ist ein Beispiel für eine erste
in den Ansprüchen
definierte Datenhalte-Einheit. Das Register 24 ist ein
Beispiel für
eine zweite in den Ansprüchen
definierte Datenhalte-Einheit. Die Speicher 211, 221 sind
ein Beispiel für
einen ersten Speicherbereich, der in den Ansprüchen definiert ist. Die Speicher 212, 222 sind
ein Beispiel für
einen zweiten Speicherbereich, der in den Ansprüchen definiert ist. Die Speicher 213, 223 sind
ein Beispiel für einen
dritten Speicherbereich, der in den Ansprüchen definiert ist. Die Speicher 214, 224 sind
ein Beispiel für
einen vierten Speicherbereich, der in den Ansprüchen definiert ist.
-
Vorstehend
sind zwar bevorzugte Ausführungsformen
der Erfindung unter Bezugnahme die beigefügten Zeichnungen beschrieben
worden, aber die Erfindung ist nicht auf diese speziellen Ausführungsformen
beschränkt,
und es können
verschiedene Änderungen
und Modifikationen von Fachleuten daran vorgenommen werden, ohne
vom Schutzumfang der in den beigefügten Ansprüchen definierten Erfindung
abzuweichen.