DE3412805A1 - Prozessor - Google Patents

Prozessor

Info

Publication number
DE3412805A1
DE3412805A1 DE19843412805 DE3412805A DE3412805A1 DE 3412805 A1 DE3412805 A1 DE 3412805A1 DE 19843412805 DE19843412805 DE 19843412805 DE 3412805 A DE3412805 A DE 3412805A DE 3412805 A1 DE3412805 A1 DE 3412805A1
Authority
DE
Germany
Prior art keywords
address
sequence
processor
ram
words
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19843412805
Other languages
English (en)
Inventor
Andrew John Dr. Bishops Stortford Hertfordshire McWilliam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STC PLC
Original Assignee
Standard Telephone and Cables PLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Standard Telephone and Cables PLC filed Critical Standard Telephone and Cables PLC
Publication of DE3412805A1 publication Critical patent/DE3412805A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Description

PATENTANWÄLTE ~ O
DIPL-ΙΝΘ. R. LEMCKE (1^ 56'2T "&7"bw
DR.-IN6. H. J. BROMMER
AMALIENSTRASSE28
7500KARLSRUHE1
TEL.: 0721/28778-Θ
Standard Telephones and Cables Public Limited Company
190 Strand
London WC2R 1DU/ENGLAND
Prozessor
Die Erfindung betrifft einen elektronischen digitalen Prozessor, insbesondere einen Mikroprozessor.
Bei vielen herkömmlichen Prozessoren gibt es die Möglichkeit, eine Anzahl von Datenwörtern in einen fortlaufenden Adresspeicher oder in die arithmetisch-logisehe Einheit (ALU) des Prozessors zu übermitteln, um dort verarbeitet zu werden. Eine solche Folge beginnt an einem Ende der Folge von Datenwörtern und setzt sich fort mit der automatischen Erzeugung von Adressen, beispielsweise durch Indizierung bzw. Indexierung, solange bis alle Datenwörter übermittelt worden sind. Die Aufgabe der vorliegenden Erfindung besteht darin, eine verbesserte Technik der Adressenerzeugung desselben allgemeinen Typs, der gerade beschrieben worden ist, anzugeben.
Gemäß d.er Erfindung ist ein elektronischer digitaler Prozessor vorgesehen, der wenigstens einen Speicher mit wahlfreiem Zugriff (RAM), in welchem zu verarbeitende Worte während des Betrieb des Prozessors abgespeichert werden,
enthält,des weiteren ein Adress-Register, in welchem die Adresse des zu verarbeitenden Wortes in einem vorerwähnten Speicher (RAM) abgespeichert werden kann, ferner ein Kontroll-Register, in dem eine Zahl, die die Lange einer Wortfolge in dem Speicher (RAM) oder in einem der vorerwähnten Speicher (RAMs) repräsentiert, abgespeichert werden kann, sowie Mittel zur Adressenwahl unter der Kontrolle des Inhalts des Adress-Registers und des Kontroll-Registers, um das Auslesen einer Folge von Worten aus vorerwähntem Speicher (RAM) zu bewirken, wobei erfindungsgemäß die ausgelesene Folge mit dem Wort unter derjenigen RAM-Adresse beginnt, die durch den Inhalt des Adress-Registers definiert ist, wobei die nächsten und die darauf folgenden Worte auf Speicheradressen sind, die jeweils abgeleitet werden von dem vorher ausgelesenen Wort, indem diese Adresse inkrementiert oder dekrementiert wird, um eine feste ganze Zahl, beispielsweise eine Eins, wobei sich die Folge fortsetzt, bis die Nummer der Adressen, von der Worte ausgelesen worden sind, diejenige vom Inhalt des Kontroll-Registers bestimmte ist, wobei, wenn im Verlauf vorerwähnten Inkrementierens oder Dekrementierens die Adresse des letzten Wortes in der Folge erreicht ist, die nächste Inkrementierung oder Dekrementierung die Adresse des Wortes am anderen Ende der Folge erzeugt, so daß vorerwähnte Worte zyklisch und sukzessive ausgewählt werden können, und die so von dem Speicher nacheinander ausgelesenen Worte sukzessive vom Prozessor verarbeitet werden, und wobei eine solche Folge solange wiederholt werden kann, wie es für die Ausführung eines Programmes erwünscht ist.
Wie später noch gezeigt wird, ist eine solche Technik von besonderem Wert bei digitaler Signalverarbeitung (DSP),
3Λ12805
insbesondere wenn man sukzessive Koeffizienten für die Steuerung von digitalen Filtern erzeugen muß. In manchen Fällen, insbesondere wenn die auszuführende Signalverarbeitung mit einer großen Anzahl von Verarbeitungsoperationen verbunden ist, ist die Verwendung eines einzigen Prozessors angebracht. Eine weitere, davon abweichende Ausführung der (vor 1 legenden) Erfindung sieht ein verbessertes Multi-Prozessor-System vor.
In Übereinstimmung mit der Erfindung ist auch ein digitales Prozessor-System vorgesehen, welches eine Vielzahl elektronischer digitaler Prozessoren enthält, die alle Zugang zu einem gemeinsamen System-Bus haben, wobei ein Prozessor, der eine Daten-Übertragung zu oder von einem anderen der Prozessoren benötigt, eine Übertragungs-Anforderung zum System-Bus signalisiert, wobei ein Entscheidungs Logik-Kreis, der mit dem System-Bus verbunden ist, die Übertragungs-Anforderungen von allen Prozessoren empfängt und im Falle, daß der Bus für eine solche Übermittlung zur Verfugung steht, den Bus dafür freigibt, und im Falle einer solchen Freigabe des Buses ein diesem Effekt entsprechendes Signal zum anrufenden Prozessor gesendet wird, bei dem der anrufende Prozessor in Beantwortung des erwähnten Signals der Entscheidungs-Logik die Adresse des anderen, in die gewünschte Daten-Übermittlung einbezogenen, Prozessors ausgibt, wobei mit dem System-Bus verbundene Einrichtungen zur Adressen-Dekodierung die Adresse des gewünschten Prozessors ermitteln und einen Adress-Prozessor entsprechend aktivieren, wobei dieser Adress-Prozessor zusätzlich zu der Haupt-Prozess-Einheit vorgesehen ist und wobei fechließlich)der Adress-Prozessor der beiden Prozessoren nun die Übermittlung der Daten, die von einem zu dem
anderen dvr Prozessoren übermittelt werden sollen, über wacht.
Ein erfindungsgemäßes Datenverarbeitungs-Systern wird nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen:
Fig. 1 ein vereinfachtes Blockschaltbild der Architektur, also der internen Struktur, eines erfindungsgemäßen Mikroprozessors;
Fie:. 2 ein Blockschaltbild einer der Daten-Adressen-Einheiten, wie sie in dem Mikroprozessor gemäß Figur 1 verwendet werden;
Fig. 3 ein Blockschaltbild, aus dem ersichtlich ist, wie zwei oder mehrere Mikroprozessoren in einem Multi-Prozessor-System. verwendet werden können.
Der in Figur 1 dargestellte Mikroprozessor ist in einer "Packung" von 40 Gehäuseanschlußstiften (Pins), auf die im Verlauf der Beschreibung noch Bezug genommen wird. Dieser Mikroprozessor wurde mit einer Architektur und einem Befehlsvorrat in der Absicht entworfen, die Verarbeitungsgeschwindigkeit bei einem breiten Aufgabenspektrum digitaler Signalverarbeitungen (DSP) zu erhöhen; er kann jedoch ebenso für andere Aufgaben programmiert werden. Zur Erreichung dieses Zieles wird bei ihm extensiver Gebrauch vom Prinzip der ParalIeIverarbeitung und des "Pipe-lining on chip" gemacht. Der Ausdruck "Pipe-lining", wie er hier benutzt wird, bedeutet, daß sich die Ausführung von zwei oder mehr Befehlen zeitlich überlappt. Dort, wo Befehle je-
weils verknüpft sind mit einer Anzahl von nacheinander zu verarbeitender Zyklen, können mehrere Befehle durch Ausführung unterschiedlicher Zyklen für unterschiedliche Befehle gleichzeitig gegeben werden. Wie noch zu sehen sein wird, werden diese Konzeptionen auch auf Multi-Prozessor-Anordnungen durch die Anwendung der Methode der Daten-Übermittlung zwischen den Prozessoren ausgedehnt.
Die Gesamtarchitektur umfaßt zwei wichtige Merkmale, die den Mikroprozessor für digitale Signalverarbeitung besonders geeignet machen, und auf die im folgenden eingegangen wird. Diese sind:-
a.)Die Daten-Adres's-Einheiten DAU1 und DAU2, die Adressen für die zwei internen Speicher mit wahlfreiem Zugriff, RAM 1 und RAM 2, erzeugen, können so programmiert werden, daß sie in dem Speicher Ring-Pufferspeicher (ring buffer) jeder Größe schaffen. Ein Ring-Pufferspeicher besteht aus einer Anzahl aufeinanderfolgender Speicherplätze, die im Endeffekt als geschlossener Ringspeicher wirken. Eine Bestandsführung von Software-Adressenverweisen (pointer) wird nicht benötigt. Die Einheit DAU1 wird später anhand Figur 2 beschrieben, wobei DAU2 ähnlich wie DAU1 ist.
b.)Für den Informationsaustausch innerhalb des Prozessors wird ein paralleler Direkt-Speicherzugriffs-Prozessor (DMA) auf dem Chip ("on chip") verwendet, um die für die Daten-Übermittlung benötigte Zeit zu verringern. Dies-er Prozessor, der zusätzlich zu den Haupt-Verarbeitungs-Elementen vorhanden ist, enthält einen speziellen DMA-Prozessor sowie einen DMA-Pufferspeicher. Aufgaben, die einen größeren Verarbeitung-"Durchsatz" erfordern,
als herkömmlicherweise mit einem einzigen Prozessor erzielbar, können so bei Verwendung von mehr als einem solchen Mikroprozessor, wie anhand Figur 3 beschrieben, effizient ausgeführt werden.
Bevor die eben genannten Merkmale beschrieben werden, sei kurz auf die System-Architektur eingegangen, vergleiche Figur 1. Der Mikroprozessor enthält einen Zeit-Generator, der Taktimpulse für den internen Gebrauch vorgibt," mit einem (Synchron-) Eingang SYNC und einem (Takt-) Eingang CLK von dem System, in dem der Prozessor eingesetzt ist. Diese Einheit besitzt auch einen im low-Zustand aktiven Rücksetz-Eingang (low reset input) ITST und einen Ausgang 0 1, der als Ausgang für Befehlsfolgen fungiert, der seinerseits als Eingang zum SYNC-Eingang eines anderen Prozessors oder zur Signalauswertung bei einem externen Eingangs/Ausgangs (I/O) - Adressendekodier-Signalspeicher (latch) geeignet ist.
Ein Eingang TT von einem externen I/O-Adress-Dekoder gewährt Zugriff auf einen DMA-Pufferspeicher (buffer). Befindet sich dieser Eingang im Low-Zustand so heißt das, daß eine DMA-Übermittlung auf den System-Bus angefordert wird, also der gezeigte Prozessor als gesteuertes Element (slave) bei einer Daten-Übermittlung fungiert. Dieser Pufferspeicher (buffer) hat Zugang zum System-Bus S(O...7), zu einer Bus-Verwaltung (Bus Controller), einer Programm-Kontrolleinheit (Program Controller), zur arithmetischlogischen Einheit (ALU), zu einem Multiplizierer (multiplier) und den beiden RAMs. Die arithmetisch-logische Einheit (ALU) ist die Haupt-Prozeß-Einheit und ist eine 35-bit-Einrichtung. Der Multiplizierer kann zwei 16-bit-Zahlen
zu einem 32-bit-Produkt multiplizieren; er ist zusätzlich zur ALU (-Einheit) vorgesehen im Hinblick auf die große Zahl von Multiplikationen, die bei der DSP benötigt wird. Im übrigen enthält das Blockschaltbild die Einheiten DAU1 und DAU2 zur Erzeugung von Adressen sowie die oben erwähnte DMA-CPU.
Die Anschlüsse und die (entsprechenden) Funtkionen sind in der folgenden Tabelle aufgeführt.
Tabelle
Externe ROM und Anschlüsse
A(O..7) Diese liefern das am wenigsten bedeutsame byte der externen ROM-Adresse.
D(O..7) Bidirektional: Dies ist der externe ROM-Ausgangs-Datenbus. In der Gegenrichtung wird er dazu benutzt, um das am meisten bedeutsame byte der externen ROM-Adresse an einen externen Signalspeicher (latch) auszugeben.
AS Ein Ausgang zu einem externen Signalspeicher (latch) zur Signalauswertung
ÜF wird benutzt, um den externen ROM-Datenausgang zu gattern (tristate), wenn D(O..7) zur Ausgabe von der DSP 128 verwendet wird.
Serielle 1/O-Anschlüsse
SYIN Allgemein verwendbarer 1-bit-Eingang, der Gegenstand zweier bedingter .Verzweigungsbefehle ist.
SYOUT Allgemein verwendbarer 1 -bit-Ausgang, der durch Befehlsausführung high oder low gesetzt werden kann.
Parallele Daten-1/O-Anschlüsse
S(O..7) Bidirektionaler System-Bus, über den alle Daten-Übermittlungen zwischen Prozessoren oder Peripherieeinrichtungen abgewickelt werden.
RTS Ausgang zur Busverwaltung für die Forderung, Master (steuerndes Element) des Systerabuses zu sein (Zustand low)
RFS Eingang von der Busverwaltung zur Erfüllung
der Forderung, Master des Systembuses zu sein (Zustand low).
TF Eingang von einem externen 1/0 Adressendekoder. Low-Zustand zeigt an, daß (eine) DMA-Übermittlung auf dem Systembus verlangt wird, d.h., daß dies das gesteuerte Element (slave) in einer Daten-Übermittlung ist.
WR/TTÜ Tristate-Ausgang (=Ausgang mit drei stabilen
Zuständen) am System-Bus-Master, der die Richtungder Daten-Übermittlung wie vom Bus-Master gesehen anzeigt. Eingang bei Slave-Einrichtung.
HIB Tristate-Ausgang am System-Bus-Master-Eingang zum Slave. Low-Zustand zeigt an, daß das wichtigste Byte eines 16-bit-Wortes auf dem Bus ist.
TOF Gatter-Ausgang (tristate output) am System-Bus-Master-Eingang zum Slave. Zustand low zeigt an, daß das am wenigsten wichtige Byte eines 16-bit-Wortes auf dem Bus ist.
Zeitsteuerungs-Anschlüsse
CLK Eingang für einen extern erzeugten 10 MHZ-Takt.
SYNC Eingang für Befehlszyklus-Takt zur Synchronisierung von Multi-Prozessoren während des Zuzurücksetzens (reset).
01 Ausgang für Befehlszyklus-Takt, verwend- ■
bar als Eingang zum SYNC (-Eingang) anderer Prozessoren, ebenso zur Signalauswertung externer 1/0-Adressendekodier-Signalspeicher (latch).
RST Low-Zustand Rücksetz-Eingang.
Versorgungs-Anschlüsse
VCC 5 Volt
GND Masse
Im folgenden wird auf die Daten-Adress-Einheiten eingegangen, vergleiche Figur 2.
Wie bereits oben erwähnt, kann der Mikroprezessor-Chip, welcher zwei Einheiten zur Adressen-Erzeugung enthält, zwei 16-bit-Datenwörter während eines einzigen Befehlszyklus lesen, und zwar jeweils aus einem der RAMs. Dies geschieht im Hinblick darauf, daß nur 8-bits des Befehls einer RAM-Adresse zugewiesen sind. Die beiden benötigten 8-bit-Adressen sind von den Adress-Einheiten erzeugt, wobei jeweils vier bits des Befehls zur Kontrolle dieser Ein· heiten verwendet werden.
Eine Daten-Adress-Einheit besitzt eine- Basis-Adress-Einheit BARU, die vier 8-bit-Basis-Adressenregister (BARs) enthält, ein Adressenverweis-Register (pointer) PR, in Form eines 8-bit-Zählers für Vorwärts- und Rückwärtszäh 1-weise, sowie ein Vektor-Länge-Register VLR, das softwarekontrolliert geladen und ausgelesen werden kann. Von den vier Befehls-bits zur Kontrolle der DAU werden zwei dazu benutzt, eines der \/ier BAR's über den Adress-Eingang zur Einheit BARU anzuwählen, während die beiden anderen zur Auswahl einer aus vier Adressierungsarten verwendet werden.
Diese Adressierungsarten sind:
(1) Direkte Adressierung, bei der der Adressbefehl das Auslesen des Inhalts des ausgewählten BARs veranlaßt.
(2) In^^^Adj2£ssi e_ru_n_g, die das Auslesen von dem Speicherplatz veranlaßt, der durch din Summe des Inhalts des ausgewählten BAR und des Zeigeregister PR definiert ist, wobei dies eine Modulo-256-Summe ist.
(3) Inkrementierung, bei der eine Folge von Speicherplätzen auf die wiederholte Ausführung von dieser Adressierungsart entsprechenden Befehlen hin ausgelesen wird. Die Adressen werden dabei durch sakzessive Erhöhung des Inhalts des Zeigerregisters PR um jeweils eine Stelle abgeleitet. Jede solche Inkrementierung geschieht in der durch den Inhalt des Vektor-Längenregisters VLR definierten Art. Eine solche Folge von Zeigerregister-Wörtern wird jeweils aus der gebildet, die zur Bildung einer RAM-Adresse benutzt wird. Jede Speicheradresse ist die Summe aus dem Inhalt des ausgewählten BAR und dem des Zeigerregisters PR, Modulo 256, Diese Summierung wird von einem hierfür vorgesehenen Addierer AD ausgeführt; das Ergebnis gelangt durch einen Signalspeicher (latch) zum Α-Bus, von dem es zu den Auslese-Vorrichtungen geleitet wird. Die Folge wird fortgesetzt bis eine dem Inhalt des VLR entsprechende Zahl von Speicherplätzen ausgelesen worden ist.
(4) Dekrementierung, im wesentlichen ist diese Adressierungsart das Gegenteil der Inkrementierung. Hierbei ist der Inhalt des Zeigerregisters PR bei jedem Schritt das Ergebnis der Subtraktion einer Stelle vom Inhalt des Vektor-Längsregisters VLR, wobei die Module vom VLR bestimmt werden. Die Speicheradressen sind jeweils die Summen aus dem ausgewählten BAR und dem Zeigerre-
gister PR, Modula 256.
Auf diese Weise ist es möglich, in jedem RAM bis zu vier Ringspeicher (ring buffers) aufzubauen. Ein BAR wird gesetzt, um auf das Wort im Ring mit der physikalisch niedrigsten Adresse in seinem RAM zu weisen. Das Register VLR wird dann in einen Zustand gesetzt, der die Größe des Rings definiert. Somit ist es dann möglich, unter entsprechender Anwendung des Inkrementierens oder Dekrementierens, den Ring Schritt für Schritt in jeder Richtung abzugehen ohne dabei die Lage des Verbandes (joint) zu beachten.
Zur Verdeutlichung der Vorteile dieses Verfahrens wird ein Beispiel betrachtet. Zur Darstellung eines Transversal-Filters (FIR) mit 50 Stufen, muß berechnet werden:
49
yn = \ a(i) χ S(n-i)
ι = ο
wobei die a(i) die 50 festen Koeffizienten sind, die in einem in RAM 1 aufgebauten Ringspeicher eingespeichert sind; die S(n-i) sind die aktuellsten Signal-Proben, diein einem in RAM 2 aufgebauten Ringspeicher gespeichert sind. Es wird angestrebt, jedesmal, wenn eine neue Signal-Probe aufgenommen wird, ein neues Ausgangssignal zu erzeugen.
Bei der verwendeten Methode werden jedesmal, wenn ein y(n) berechnet wird, die physikalischem Adressen des Koeffizienten und der miteinander zu multiplizierenden
3A12805
Wortpaare auf einon Speicherplatz gehalten (skewed). "Skewed" bedeutet in diesem Zusammenhang, daß da, wo gerade zwoi Ringspeicher ausgelesen werden, in einer zweiten Folge von Befehlsausführungen, in einer der Folgen einer der Ringspeicher effektiv um einen Speicherplatz im Vergleich zu dem anderen verschoben wird. Wenn eine neue Signal-Probe eingeschrieben worden ist, wird dann lediglich die älteste Signal-Probe, die dann überflüssig ist, überschrieben. Keine andere Veränderung der Signal-Daten im Speicher ist erforderlich. Dies ist nur dadurch möglich-, daß der "unsichtbare Verband" ('invisible joint") im Ringspeicher bedeutet, daß es unnötig ist, während des ablaufenden Algorithmus die Spur der physikalischen Adressen gespeichert zu halten.
Nunmehr ist einzusehen, daß sich mit der hier benutzten Adressiertechnik bei der Durchführung von DSP-Operationen eine beträchtliche Vereinfachung erzielen läßt.
Im folgenden wird anhand von Figur 3 die Daten-Übertragung zwischen den Prozessoren behandelt. Ein Problem, das oft bei Mikroprozessoren auftaucht, ist die relative Ineffizienz der Daten-Übertragung zwischen den Prozessoren, so daß Systeme mit drei oder vier Prozessoren viel weniger als das Drei- oder Vierfache des Durchsatzes eines solchen Prozessors schaffen. Gewöhnlich leitet der Prozessor die Daten-Übertragung dadurch ein, daß der andere Prozessor unterbrochen wird. Auf diese Weise benötigt ein Prozessor entscheidende Zeit, um seinen Maschinenzustand zu speichern, auf das Übertragungs-Verlangen zu reagieren und endlich seinen inneren Zustand wiederherzustellen, um mit dem fortzufahren, was er vor der Unterbrechung gerade gemacht hatte. So wird beim Slave-Prozessor viel Zeit vergeudet, und eben-
so auch beim Master-Prozessor, solange er auf Anwort vom Slave-Prozessor wartet. Noch nachteiliger ist, daß während dieser Wartezeit oftmals die Kontrolle über den Daten-Übergangsbus aufrechterhalten wird, was die Nutzungsdauer des Buses einschränkt.
Die hier vorgeschlagene Metho/de benötigt keinerlei Unterbrechnungen; tatsächlich ist beim Slave die Daten-Übertragung transparent, soweit es die Zeit betrifft.'Auf seiten des Masters erfordert die übertragung eines 16-bit-Wortes normalerweise nur einen einzigen Befehlszyklus von 400 ns (Nanosekunden); Wartezyklen fallen beim Master nur dann an, wenn der Daten-Übertragungs-Bus bei Anforderung der Übertragung gerade belegt ist. Beim Slave dagegen treten Wartezyklen überhaupt nicht auf. Dies ist möglich, weil die Übertragung zwischen der ALU des Masters und einem RAM im Slave über die für diesen Zweck extern kontrollierte DMA-Kontrolleinheit im Slave stattfindet. Der Pflicht-Zyklus des RAM wird ebenso zwischen der Haupt-Prozeßeinheit des slave und dem DMA-Prozessor aufgeteilt, aber mit zeitlicher Transparenz.
Wenn ein Prozessor wie DSP1, vergleiche Figur 3, ein IN- oder OUT-Kommando in seinem Befehlsstrom empfängt, wird er Master einer Daten-Übertragung und signalisiert sein Verlangen, den System-Bus zu kontrollieren, durch Setzen seiner Anforderung, RTS in den low (-Zustand) zu schicken. Die externe Bus-Verwaltungs-Logik BAL, welche im wesentlichen ein Ausschluß-Schaltkreis (lock-out circuit) mit eingebauten Prioritäten -falls gewünscht - darstellt, entscheidet innerhalb von 100ns, ob der Anforderung stattgegeben werden kann. Wenn dies der Fall ist, signalisiert sie dies dem anfordernden Prozessor durch Setzen des An-
schlussos RFS des "rufenden" Prozessors auf low. Wenn der Anforderung nicht entsprochen werden kann, bleibt der Anschluß RFS im Zustand high, und der anfordernde Prozessor - in diesem Fall also DSP 1 - begibt sich in genau einen Zyklus (400ns) dauernden Wartezustand, wobei er das Verlangen auf Bus-Kontrolle aufrechterhält. Die BAL ist relativ einfach strukturiert, da alle Prozessoren ihre Befehlszyklen zusammengeschlossen haben, sodaß mehrfache Anforderungen auf Bus-Kontrolle die BAL-Einrichtuhg gleichzeitig erreichen. Deshalb richtet sich die von der BAL für diesen Befehlszyklus zutreffende Entscheidung einfach nach der Dringlichkeit der Aufgabe und nicht etwa nach der Zeit" des Anrufs.
Die Kontrolle über den Bus wird an einen Prozessor nur für einen einzigen Zyklus vergeben, und falls eine darüberhinausgehende Zeit benötigt wird, bewirbt sich der "rufende" Prozessor mehrmals Zyklus für Zyklus wieder.
Wenn nun die Kontrolle des System-Buses einem Master-Prozessor eingeräumt wurde, sendet dieser zuerst eine 8-bit-Adresse des verlangten Slave-Prozessors aus. Diese Adresse wird über den bidirektionalen Bus S(O..7) ausgesendet in den System-Bus, von dem es in einen Adressen-Signa 1 speicher (adress latch) DAL gelangt, wo es vom Adressen-Dekoder DAD dekodiert wird, um ein Interface (Schnittstelle) zu erzeugen, das den Anschluß IE beim angeforderten Slave-Prozessor in den low-Zustand versetzt. Dies aktiviert den DMA-Prozessor dieses Prozessors. Daten können dann in beliebiger Richtung durchgelassen werden, also sowohl in Richtung Master zu Slave wie (auch) Slave zu Master, in einem oder zwei 8-bit-Bytes. Die vom Master-Prozessor erzeugten Signale Schreib / Lese (write/read) WR/fUJ , high byte Hiß und low byte LÖß kontrollieren, sowohl die Funktion als auch die Zeitsteuerung des DMA-Ringspeichers (buffer) und
des Slaves.
Schließlich trennt sich der "Master"-Prozessor wieder vom System-Bus, indem er den Anschluß RTS in den high-Zustand zurücksehen läßt, worauf die Bus-Verwaltung BAL innerhalb von 100ns mit einer Setzung von RFS auf high antwortet. Dabei ist zu bemerken, daß es keinen "Handschlag" (Bestätigung) von Seiten des Slave gibt, der sagen soll, daß die Übertragung vollkommen korrekt abgelaufen war, we,i 1 dies nur die Übertragungszeit verlängern würde und die Wirkung in einem gut entworfenen System nur äußerst gering wäre.
Im folgenden wird die Eingabe eines Daten-Wortes in den DMA-Eingangs-Pufferspeicher (DMA Input Buffer) betrachtet. Diese wird der DMA-CPU gemeldet, die dann eine RAM-Adresse für das Daten-Wort erzeugt und auch den Zeitablauf der Übertragung dieses Wortes vom DMA-Eingangs-Pufferspeicher (DMA Input Buffer) zu dem zugehörigen RAM über die bereits gezeigten Buse steuert.
Gleichzeit, wenn ein Daten-Wort vom DMA-Ausgangs-Pufferspeicher (DMA Output Buffer) ausgegeben wird, wird dies auch der DMA-CPU gemeldet, die eine RAM-Adresse erzeugt und die Übertragung eines Wortes von dieser Adresse zum DMA-Ausgangs-Ringspeicher (DMA Output Buffer) steuert, wobei sie für das nächste Verlangen,"Slave" zu sein und Daten auszugeben, bereit ist.
Die DMA-CPU enthält acht 8-bit-Register, die ihre Operationen steuern. Diese Register können jederzeit mittels dem in der Haupt-CPU des Prozessors laufenden Programm geladen werden. Im einzelnen sind dies ein Befehls-Register (Instruction Register) und ein Bit-Umkehr-Register (Reversal-Register), sowie für jedes der beiden RAMs je ein Basis-Adressen-Register (Base Adress Register), ein Zoige-Register (Pointer Register) und ein Vektor-länge-.Register (Vec-
tοr-Leng t.h -keg i s I er).
Das Befehls-Register ermöglicht es, die DMA-Eingabe oder -Ausgabe unabhängig freizugeben oder zu blockieren. Es steuert auch die Zuweisung der Eingangs- und Ausgangs-Kanäle zu einzelnen RAMs. Jederzeit muß ein RAM für Eingabe, das andere RAM für Ausgabe vorgesehen sein, obwohl nicht notwendigerweise beide Richtungen freigegeben sein müssen. Das Befehls-Register spezifiziert ebenso eine Adressierungsart für jedes RAM. Die zugelassenen Adressierungsarten folgen demselben Schema wie bei den Daten-Adress-Einheiten (Data Adress Units) des Haupt-Prozessor; dies sind also Index-Adressierung, Inkrementierung und Dekrementierung. Diesmals ist lediglich ein Basis-Adressen-Register (Base Adress Register) pro RAM vorgesehen. Das Vektor-Längs-Register für jedes RAM erlaubt wiederum den Aufbau von Ring-Speichern (ring buffers). Dem Befehls-Register bleibt die Funktion, für jedes RAM unabhängig normale oder bit-umgekehrte Indizierung zu spezifizieren.
Diese Besonderheit der bit-umgekehrten Indizierung ist bei der Durchführung von Algorithmen für schnelle Fourier-Transformationen (FFT) von Nutzen. Wenn beispielsweise ein solcher Algorithmus anhand eines Blockes von 8 Daten-Proben ausgeführt wird, ist es notwendig, sakzessive Daten-Proben auf den Speicherplätzen 0,4,2,6,1,5,3,7 zu speichern. Eine solche Folge entsteht, indem man die normale Folge 0 bis 7 nimmt und die Anordnung der bits in der 3-bit-Binär-Darstellung dieser Zahlen umkehrt, sodaß beispielsweise 4 (=100) zu 1 (=001) wird und umgekehrt. Der Prozess der Anordnung der Daten in dieser Reihenfolge kann ziemlich zeitaufwendig sein, wenn sie mittels software-Steuerung durchgeführt werden muß; aber kostet keinerlei zusätzliche Zeit, wenn er als Teil der DMA-Operation ausgeführt wird.
Wenn die bit-Umkehrung vom Befehlsregister spezifiziert wird, werden einige oder alle bits des relevanten Zeige-Registers (Pointer Register) vor der Addition zum Basis-Adress-Register umgekehrt. (Der aktuelle Inhalt des Zeiger-Registers verbleibt in normaler Anordnung). Das Bit-Umkehr-Register erlaubtdie Spezifizierung, über welche Größe des Bit-Feldes die Umkehrung stattfinden soll, und ebenso, ob der Algorithmus mit reellen oder komplexen Daten vorgenommen wird. Das oben angeführte Beispie'l bezog sich auf die Anforderung für reelle Daten. Wenn eine Transformation anhand von acht komplexen Daten-Proben ausgeführt werden sollte, würden diese sakzessive wie folgt gespeicherte, 1, 8, 9, 4, 5, 12, 13, 2, 3, 10, 11, 6, 7, 14, 15. Die Real- und Imaginärteile jeder komplexen Daten-Probe werden auf benachbarten Speicherplätzen gespeichert, denn anderenfalls wird die gleiche Bit-umgekehrte Indizierung ausgeführt.
Die Fähigkeit der DMA-Einrichtung, in so "intellegenter" Weise und im wesentlichen ohne Zeitverlust Daten in ein RAM einzuschreiben oder aus diesem auszulesen, erweitert in hohem Maße die Prozess-Kapazität der Prozessor-Einheit.

Claims (8)

  1. PATENTANWÄLTE 02.04.1984
    DIPL-ΙΝΘ. R. LEMCKE <13 562) ß
    DR.- IN6. H. J. BROMMER
    AMALI ENSTRASSE 28 7500KARLSRUHE1
    Standart Telephones and Cables Public Limited Company
    190 Strand
    London WC2R 1DU/ENGLAND
    Patentansprüche
    Elektronischer digitaler Prozessor, der wenigstens einen Speicher mit wahlfreiem Zugriff (RAM), in welchem zu verarbeitende Worte während des Betriebes des Prozessors abgespeichert werden, enthält, des weiteren ein Adress-Register, in welchem die Adresse des zu verarbeitenden Wortes in einem vorerwähnten Speicher (RAM) abgespeichert werden kann, ferner ein Kontroll-Register, in dem eine Zahl, die die Länge einer Wortfolge in den Speicher (RAM) oder in einem der vorerwähnten Speicher (RAMs) repräsentiert, abgespeichert werden kann, sowie Mittel zur Adressenwahl unter der Kontrolle des Inhalts des Adress-Registers und des Kontroll-Registers, um das Auslesen einer Folge von Worten aus vorerwähntem Speicher (RAM) zu bewirken, dadurch gekennzeichnet, daß die ausgelesene Folge mit dem Wort unter derjenigen RAM-Adresse beginnt, die durch den Inhalt des Adress-Registers definiert ist, wobei die nächsten und die darauf folgenden Worte auf Speicheradressen sind, d-ie jeweils abgeleitet werden von dem vorher ausgelesenen Wort, indem diese Adresse inkrementiert oder dekrementiert wird, um eine feste ganze Zahl, beispielsweise eine Eins, wobei sich die Folge fortsetzt, bis die Nummer der Adressen, von der Worte ausgelesen worden sind, diejenige vom Inhalt des Kontroll-Registers bestimmte ist, wobei, wenn im Verlauf vorerwähnten Inkrementierens oder De-
    krementierens die Adresse des letzten Wortes in der Folge erreicht ist, die nächste Inkrementierung oder Dekrementierung die Adresse des Wortes am anderen Ende der Folge erzeugt, so daß vorerwähnte Worte zyklisch und sukzessive ausgewählt werden können, und die so von dem Speicher nacheinander ausgelesenen Worte sukzessive vom Prozessor verarbeitet werden, und wobei eine solche Folge solange wiederholt werden kann, wie es für die Ausführung eines Programmes erwünscht ist.
  2. 2. Prozessor gemäß Anspruch I1 dadurch gekennzeichnet, daß zwei der vorerwähnten Speicher mit wahlfreiem Zugriff (RAM's) vorgesehen sind, daß bei jedem Schritt in vorerwähnter Folge zwei Worte aus korrespondierenden Adressen in den RAM's extrahiert werden, und daß jeder Schritt in einer Prozeß-Folge, die mit den so extrahierten Worten verbunden ist, eine Prozeß-Operation auf die beiden aus den RAMS's extrahierten Worten in der vorerwähnten Folge mit sich bringt.
  3. 3. Prozessor gemäß Anspruch 1 oder 2, dadurch gekennzeichnet, daß eine Adressen-Indizierung vorgesehen ist, wobei eine RAM-Adresse durch Addition des Inhalts des Adress-Registers und des Kontroll-Registers gebildet werden kann.
  4. 4. Prozessor gemäß den Ansprüchen 1, 2 oder 3, dadurch gekennzeichnet, daß eine Vielzahl von Kontroll-Registern vorgesehen ist, wobei jedes derselben im Verlauf eines Programmes, das gerade vom Computer ausgeführt wird, zur Benutzung ausgesuchtwerden kann.
  5. 5. Elektrischer, digitaler Prozessor, der wenigstens einen Speicher mit wahlfreiem Zugriff (RAM) , in dem zu verarbeitende Worte gespeichert sind, ein Adress-Register,
    von dom die Adresse in vorerwähntem RAM eines zu verarbeitenden Wortes erhalten sein kann, ein erstes Kontroll-Register, in dem eine erste ganze Zahl (beispielsweise Eins) gespeichert werden kann, die bei der Erzeugung einer Folge von vorerwähnten Adressen benötigt wird, enthält, wobei die Folge durch sukzessives Inkrementieren oder Dekrementieren des Inhalts des Adress-Registers um die ganze Zahl im ersten Kontrol1-Register erzeugt wird, wobei der Prozessor außerdem ein zweites Kontroll-Register, in dem eine weitere ganze Zahl gespeichert werden kann, die die Anzahl der Adressen in vorerwähnter benötigter Folge bestimmt, und Einrichtungen zur Adressen-Auswahl enthält, die unter der Kontrolle des Inhalts des Adress-Registers und der beiden Kontrol1-Register steht, um die Adressenfolge zu erzeugen, die zur Extraktion einer Folge von zu verarbeitender Worte aus dem RAM benötigt wird, dadurch gekennzeichnet, daß eine vorerwähnte Folge von Worten mit dem Wort der Adresse beginnt das bzw. die dem Inhalt des Adress-Registers entspricht, daß das nächste und die darauf folgenden Worte der Folge unter RAM-Adressen sind, die jeweils von der Adresse des vorher extrahierten Wortes durch Inkrementierung oder Dekrementierung vorerwähnter Adresse um die erste ganze Zahl abgeleitetsind, daß die Folge von Adressen-Erzeugungen fortgesetzt wird, bis eine durch die ganze Zahl im zweiten Kontroll-Register definierte Anzahl von Adressen erzeugt worden ist, und daß, wenn sich die Folge nach der Erzeugung der Adresse an einem Ende der Folge fortsetzt, die als nächste erzeugte Adresse die Adresse am anderen Ende der Folge ist, sodaß die Folge von zu verarbeitenden Worten sukzessive und zyklisch in Erwiderung auf die erzeugten Adressen erschlossen wird.
  6. 6. Prozessor gemäß Anspruch 5, dadurch gekennzeichnet, daß zwei der vorerwähnten RAM's vorgesehen sind, wobei jedes mit seinen eigenen Einrichtungen zur Adressen-Erzeugung versehen ist, daß bei jedem Schritt in vorerwähnter Folge zwei Worte von entsprechenden Adressen in den RAM's extrahiert werden, und jeder Schritt in einer mit den so extrahierten Worten verbundenen Verarbeitungsfolge eine Prozeß-Operation mit den zwei in diesem Schritt, der Folge von RAM's extrahierten Worten mit sich bringt.
  7. 7. Digitales Prozeß-System, das eine Vielzahl von elektrischen digitalen Prozessoren enthält, die alle Zugang zu einem gemeinsamen System-Bus haben, dadurch gekennzeichnet, daß ein Prozessor, der eine Daten-Übertragung zu oder von einem anderen der Prozessoren verlangt, eine Übertragungs-Anforderung zum System-Bus signalisiert, daß ein· Entscheidungs-Logik-Kreis, der mit dem System-Bus verbunden ist, die Übertragungs-Anforderungen von allen Prozessoren empfängt und, wenn der Bus für die Benutzung für eine solche Übertragung verfügbar ist, den Bus hierfür zuteilt, daß, wenn eine solche Bus-Zuteilung gemacht wird, ein diesem Effekt entsprechendes Signal zu dem anfordernden Prozessor ausgesendet wird, uns der anfordernde Prozessor in Beantwortung des vorerwähnten Signals von der Auswahl-Logik die Adresse des anderen, in die gewünschte Daten-Übertragung einbezogenen Prozessors aussendet, wobei mit dem System-Bus verbundene Einrichtungen zu Adressen-Dekodierung die Adresse des gewünschten Prozessors ermitteln und einen zusätzlich zur Haupt-Prozeß-Einheit des Prozessors vorhandenen Adress-Prozessor aktiviert, und daß der Adress-Prozessor von den beiden Prozessoren nun die Übertragung der vom einen zum anderen Prozessor zu übertragenden Daten kontrolliert.
  8. 8. System gemäß Anspruch 7, dadurch gekennzeichnet, daß jede vorerwähnte übertragung von dem Akkumulator eines der Prozessoren zum Speicher des anderen der Prozessoren gemacht wird.
DE19843412805 1983-04-14 1984-04-05 Prozessor Withdrawn DE3412805A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08310157A GB2138182B (en) 1983-04-14 1983-04-14 Digital processor

Publications (1)

Publication Number Publication Date
DE3412805A1 true DE3412805A1 (de) 1985-01-03

Family

ID=10541111

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19843412805 Withdrawn DE3412805A1 (de) 1983-04-14 1984-04-05 Prozessor

Country Status (4)

Country Link
JP (1) JPS59200361A (de)
DE (1) DE3412805A1 (de)
FR (1) FR2544524A1 (de)
GB (1) GB2138182B (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1283738C (en) * 1985-11-13 1991-04-30 Atsushi Hasebe Data processor
US5239628A (en) * 1985-11-13 1993-08-24 Sony Corporation System for asynchronously generating data block processing start signal upon the occurrence of processing end signal block start signal
JPH0772863B2 (ja) * 1986-10-30 1995-08-02 日本電気株式会社 プログラムカウンタ相対アドレス計算方式
JPH03257645A (ja) * 1990-03-08 1991-11-18 Matsushita Electric Ind Co Ltd メモリ装置
WO1996037828A1 (en) * 1995-05-26 1996-11-28 National Semiconductor Corporation Apparatus and method for executing pop instructions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1038710A (en) * 1964-04-04 1966-08-10 Ibm Data processing systems
DE1810413B2 (de) * 1968-11-22 1973-09-06 Siemens AG, 1000 Berlin u. 8000 München Verfahren zum ausgeben von daten aus einer datenverarbeitungsanlage an externe geraete und zum eingeben von daten von den externen geraeten in die datenverarbeitungsanlage
JPS5834037B2 (ja) * 1976-05-08 1983-07-23 株式会社東芝 アドレス計算装置
JPS589977B2 (ja) * 1976-05-21 1983-02-23 三菱電機株式会社 複合形処理装置
AU3329178A (en) * 1977-03-28 1979-08-23 Data General Corp A micro-control storage system
DK157954C (da) * 1978-01-23 1990-08-13 Data General Corp Databehandlingsanlaeg med direkte lageradgang

Also Published As

Publication number Publication date
FR2544524A1 (fr) 1984-10-19
GB8310157D0 (en) 1983-05-18
GB2138182B (en) 1986-09-24
GB2138182A (en) 1984-10-17
JPS59200361A (ja) 1984-11-13

Similar Documents

Publication Publication Date Title
DE2716369C2 (de)
DE2113890C2 (de) Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
DE3248215C2 (de)
DE2819571C2 (de)
DE2230830C2 (de) Datenverarbeitungsanlage
DE69632369T2 (de) HDLC-Anordnung mit verteiltem internen Bus
DE1449532C3 (de)
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
DE2719247C3 (de) Datenverarbeitungssystem
DE2744531C2 (de) Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage
DE3914265C2 (de)
DE2635592A1 (de) Multiprozessor-abrufsystem
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE1549523B2 (de) Datenverarbeitungsanlage
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE2209282A1 (de) Datenverarbeitungsanlage
DE2829668A1 (de) Kanaldatenpufferspeicher
DE2646296A1 (de) Assoziative elektronische schaltungsanordnung aus digitalen prozessoren
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
DE3632639C2 (de) Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE1499206B2 (de) Rechenanlage
DE3412805A1 (de) Prozessor
DE602004005820T2 (de) Prozessorarray

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee