DE10144904A1 - SIMD-Prozessor mit Unterprogramm-Steuereinheit - Google Patents
SIMD-Prozessor mit Unterprogramm-SteuereinheitInfo
- Publication number
- DE10144904A1 DE10144904A1 DE10144904A DE10144904A DE10144904A1 DE 10144904 A1 DE10144904 A1 DE 10144904A1 DE 10144904 A DE10144904 A DE 10144904A DE 10144904 A DE10144904 A DE 10144904A DE 10144904 A1 DE10144904 A1 DE 10144904A1
- Authority
- DE
- Germany
- Prior art keywords
- arithmetic units
- arithmetic
- flag
- subroutine
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 13
- 230000015654 memory Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Abstract
Description
- Die Erfindung betrifft ein Verfahren zur Steuerung eines digitalen Signalprozessors (DSP) sowie einen SIMD gemäß dem Oberbegriff des Patentanspruchs 1 bzw. 7.
- SIMD-Prozessoren (SIMD: Single Instruction Multiple Data) sind in der Lage, mehrere Datenströme parallel zu verarbeiten, wobei nur ein Programm verwendet wird. Sie werden daher z. B. in Telefonsystemen eingesetzt, wo die Sprachdaten mehrerer Kanäle gleichzeitig verarbeitet und auf eine Übertragungsleitung ausgegeben werden müssen.
- Herkömmliche SIMD-Prozessoren umfassen zwei oder mehr Rechenwerke, die auch als ALU bezeichnet werden (ALU: Arithmetik Logic Unit), und ein in einem Speicher gespeichertes Programm, das gleichzeitig von allen Rechenwerken ausgeführt wird. Dieses Programm enthält in der Regel eine Reihe von Subroutinen (Unterprogrammen) die vom Hauptprogramm z. B. mittels eines "Call-Befehls" aufgerufen werden.
- Üblicherweise werden auch die Unterprogramme simultan von den Rechenwerken abgearbeitet. Es kann jedoch vorkommen, dass ein bestimmter Abschnitt des Hauptprogramms oder ein Unterprogramm nur von bestimmten der Rechenwerke auszuführen ist, von anderen jedoch nicht. Beispielsweise kann ein bedingter Call-Befehl vorliegen, dessen Sprungbedingung nur von bestimmten Rechenwerken erfüllt wird, welche die Subroutine abarbeiten sollen.
- In diesem Fall würden herkömmliche SIMD-Prozessoren fehlerhafte Ergebnisse erzeugen, da das Programm bei diesen Prozessoren immer gleichzeitig von allen Rechenwerken ausgeführt wird.
- Es ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren zur Steuerung eines SIMD-Prozessors sowie einen ebensolchen SIMD-Prozessor zu schaffen, bei dem vorgegebene Programmabschnitte, insbesondere Unterprogramme, nur von einem Teil der Rechenwerke ausgeführt werden können.
- Gelöst wird diese Aufgabe durch die im Patentanspruch 1 sowie im Patentanspruch 7 angegebenen Merkmale. Spezielle Ausführungsformen der Erfindung sind Gegenstand von Unteransprüchen.
- Der wesentliche Gedanke der Erfindung besteht darin, einen SIMD-Signalprozessor derart zu steuern, dass diejenigen Rechenwerke ausgeschaltet bzw. deaktiviert werden, die einen bestimmten Programmabschnitt, insbesondere ein Unterprogramm, nicht ausführen sollen. Am Ende des Programmabschnitts werden diese Rechenwerke dann wieder eingeschaltet bzw. aktiviert. Das Steuern der Rechenwerke erfolgt erfindungsgemäß mit Hilfe von rechenwerkspezifischen Flags (Merkern). Jedem Rechenwerk ist vorzugsweise ein eigenes Flag zugeordnet, welches angibt, ob das Rechenwerk deaktiviert werden soll oder nicht.
- Die genannten Flags sind i. d. R. Variablen, die gesetzt oder zurückgesetzt werden und insbesondere an vorgegebene Bedingungen geknüpft sein können. Die Grundeinstellung der Flags ist z. B. "aktiv" (gesetzt), d. h. die Rechenwerke sollen eingeschaltet bleiben.
- Um festzustellen, welches der Rechenwerke eingeschaltet bleiben und welches ausgeschaltet werden soll, werden die Flags der Rechenwerke zunächst ausgelesen und ausgewertet. Dann werden diejenigen Rechenwerke ausgeschaltet, deren zugehöriges Flag nicht gesetzt war.
- Der Programmabschnitt bzw. das Unterprogramm wird schließlich nur von denjenigen Rechenwerken ausgeführt, deren Flag gesetzt war.
- Das Auslesen und Auswerten der rechenwerkspezifischen Flags erfolgt vorzugsweise bevor das Programm in eine Subroutine springen soll (also bei einem Call-Befehl, insbesondere bei einem bedingten Call-Befehl).
- Das Unterprogramm wird vorzugsweise nicht aufgerufen, wenn alle Flags inaktiv sind.
- Gemäß einer bevorzugten Ausführungsform der Erfindung werden die Rechenwerke durch Abschalten eines zugehörigen Systemtaktes ausgeschaltet. Wahlweise könnte ein Rechenwerk auch durch einen Schaltkreis (Flip-Flop) mit einer Enable- Funktion deaktiviert werden.
- Zum Ausschalten eines der Rechenwerke erzeugt die Steuereinheit vorzugsweise ein entsprechendes Ausschaltsignal.
- Die Erfindung wird nachstehend anhand der beigefügten Zeichnungen beispielhaft näher erläutert. Es zeigen:
- Fig. 1 eine Prinzipdarstellung eines SIMD-Prozessors gemäß einem Ausführungsbeispiel der Erfindung;
- Fig. 2 einen Programmablauf bei zwei aktiven Flags;
- Fig. 3 einen Programmablauf bei einem aktiven und einem inaktiven Flag; und
- Fig. 4 einen Programmablauf bei zwei inaktiven Flags.
- Fig. 1 zeigt einen SIMD-Signalprozessor mit zwei Rechenwerken 1a, 1b die ein in einem Speicher 10 (ROM) gespeichertes Programm 8 im Normalfall simultan abarbeiten. Die Rechenwerke 1a, 1b umfassen jeweils Recheneinheiten 2a, 2b, die eigentlichen ALUs, sowie Register 3a, 3b, aus denen Datenströme 4a, 4b mit n-Bit ausgelesen werden können.
- Im folgenden wird angenommen, dass das Programm 8 ein Unterprogramm aufruft (Call-Befehl), das beispielsweise nur vom Rechenwerk 1a ausgeführt werden soll. Das Rechenwerk 1b soll ausgeschaltet werden.
- Zu diesem Zweck umfaßt der SIMD-Signalprozessor eine Steuereinheit 5, die ein Flag 9a für das erste Rechenwerk 1a und Flag 9b für das zweite Rechenwerk 1b über die Pfade 6a, 6b ausliest und auswertet. Die Flags 9a, 9b können z. B. in einem RAM gespeichert sein.
- Nachdem das Unterprogramm nur vom Rechenwerk 1a ausgeführt werden soll, ist das Flag 9a aktiv und das Flag 9b vom Rechenwerk 1b inaktiv (nicht gesetzt). Entsprechend gibt die Steuereinheit 5 ein Ausschaltsignal über den Kanal 7b an das Rechenwerk 1b aus, welches in Folge bis zu einem Return- Befehl am Ende des Unterprogramms deaktiviert wird.
- Ein mögliches Steuerprogramm, das in der Steuereinheit 5 abläuft, ist im folgenden dargestellt:
- Das Programm ist im wesentlichen selbsterklärend und umfaßt drei Alternativen, nämlich: 1) die Flags beider Rechenwerke 1a, 1b (Channel 1, Channel 2) sind inaktiv; 2) nur das Flag des Rechenwerks 1a ist inaktiv; und 3) nur das Flag des Rechenwerks 2 ist inaktiv.
- Fig. 2 zeigt ein Beispiel eines Programmablaufs, bei dem die Flags 9a, 9b beider Rechenwerke 1a, 1b (Kanal 1 bzw. Kanal 2) aktiv sind (Voreinstellung). Nach einem Call-Befehl wird ein Unterprogramm von beiden Rechenwerken 1a, 1b ausgeführt. Die Steuereinheit. 5 gibt in diesem Fall kein Ausschaltsignal (Powerdown 1, Powerdown 2) aus.
- Fig. 3 zeigt einen Programmablauf, bei dem das Flag 9a inaktiv (nicht gesetzt) ist. Bei einem Call-Befehl im Hauptprogramm 8 deaktiviert die Steuereinheit 5 das Rechenwerk 1a (0/1-Flanke im Signal Powerdown 1). Das Rechenwerk 1a bleibt solange inaktiv, bis das Unterprogramm abgearbeitet und ein Return-Befehl (RET) ausgeführt wurde.
- Fig. 4 zeigt einen Programmablauf, bei dem die Flags 9a, 9b beider Rechenwerke 1a, 1b inaktiv sind. Ein Call-Befehl im Hauptprogramm 8 bewirkt, dass das Hauptprogramm 8 fortgesetzt wird. Ein Unterprogramm wird nicht aufgerufen. Die Steuereinheit 5 gibt kein Ausschaltsignal an die Rechenwerke 1a, 1b aus. Bezugszeichenliste 1a, 1b Rechenwerke
2a, 2b ALU
3a, 3b Register
4a, 4b Datenströme
5 Steuereinheit
6a, 6b Verbindungsleitungen
7a, 7b Kanäle
8 Programm
9a, 9b Flags
10 Speicher
Claims (8)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10144904A DE10144904C2 (de) | 2001-09-12 | 2001-09-12 | SIMD-Prozessor mit Unterprogramm-Steuereinheit |
US10/232,152 US7539846B2 (en) | 2001-09-12 | 2002-08-30 | SIMD processor with a subroutine control unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10144904A DE10144904C2 (de) | 2001-09-12 | 2001-09-12 | SIMD-Prozessor mit Unterprogramm-Steuereinheit |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10144904A1 true DE10144904A1 (de) | 2003-05-08 |
DE10144904C2 DE10144904C2 (de) | 2003-08-21 |
Family
ID=7698762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10144904A Expired - Lifetime DE10144904C2 (de) | 2001-09-12 | 2001-09-12 | SIMD-Prozessor mit Unterprogramm-Steuereinheit |
Country Status (2)
Country | Link |
---|---|
US (1) | US7539846B2 (de) |
DE (1) | DE10144904C2 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7383427B2 (en) * | 2004-04-22 | 2008-06-03 | Sony Computer Entertainment Inc. | Multi-scalar extension for SIMD instruction set processors |
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0544127A2 (de) * | 1991-11-27 | 1993-06-02 | International Business Machines Corporation | Dynamisch paralleles Merhfachmodus-Prozessorgatterarchitektur-Rechnersystem |
US6272616B1 (en) * | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4063080A (en) * | 1976-06-30 | 1977-12-13 | International Business Machines Corporation | Method of propagation delay testing a level sensitive array logic system |
US4742520A (en) * | 1984-09-26 | 1988-05-03 | Texas Instruments Incorporated | ALU operation: modulo two sum |
US4744044A (en) * | 1986-06-20 | 1988-05-10 | Electronic Teacher's Aids, Inc. | Hand-held calculator for dimensional calculations |
US4802090A (en) * | 1987-06-24 | 1989-01-31 | General Electric Company | Histogramming of pixel values on a distributed processing system |
US5452401A (en) * | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5669010A (en) * | 1992-05-18 | 1997-09-16 | Silicon Engines | Cascaded two-stage computational SIMD engine having multi-port memory and multiple arithmetic units |
KR0142803B1 (ko) * | 1993-09-02 | 1998-07-15 | 모리시다 요이치 | 신호처리장치 |
JPH0830577A (ja) * | 1994-07-15 | 1996-02-02 | Mitsubishi Electric Corp | Simdプロセッサ |
US6490607B1 (en) * | 1998-01-28 | 2002-12-03 | Advanced Micro Devices, Inc. | Shared FP and SIMD 3D multiplier |
US6586850B1 (en) * | 2000-07-05 | 2003-07-01 | Koninklijke Philips Electronics N.V. | Device with multiple, concurrently-installed power molecules and method for controlling same |
-
2001
- 2001-09-12 DE DE10144904A patent/DE10144904C2/de not_active Expired - Lifetime
-
2002
- 2002-08-30 US US10/232,152 patent/US7539846B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0544127A2 (de) * | 1991-11-27 | 1993-06-02 | International Business Machines Corporation | Dynamisch paralleles Merhfachmodus-Prozessorgatterarchitektur-Rechnersystem |
US6272616B1 (en) * | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
Also Published As
Publication number | Publication date |
---|---|
US20030097542A1 (en) | 2003-05-22 |
DE10144904C2 (de) | 2003-08-21 |
US7539846B2 (en) | 2009-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3126878C2 (de) | Mikroprogramm-Steuerschaltung zum Ausführen eines aus einem Steuerspeicher in einem Quellenregister aufgenommenen Mikrobefehls | |
DE2714805C2 (de) | ||
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE3709675C2 (de) | ||
DE3620982A1 (de) | Ein-befehl, mehrfach-datenstrom (simd) computersystem | |
DE60009496T2 (de) | Mikroprozessor mit reduziertem kontextumschaltungsaufwand und verfahren | |
DE3307194C2 (de) | ||
DE3121046C2 (de) | ||
DE10026145A1 (de) | Programmierbare Steuereinheit | |
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE10144904C2 (de) | SIMD-Prozessor mit Unterprogramm-Steuereinheit | |
DE2418921A1 (de) | Vorrichtung und verfahren zum speichern und ausfuehren von mikroprogrammen in einem datenverarbeitungssystem | |
DE2759120A1 (de) | Prozessor fuer datenverarbeitungssysteme | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE69927910T2 (de) | Befehlsausgabe-Schaltkreis und Verfahren zur Out-of- order-Befehlsausführung, wodurch Referenzabhängigkeitsinformationen in einem Befehl gesetzt werden, wenn ein Nachfolgender Befehl in einem Befehlspuffer gespeichert wird d | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen | |
DE4318317A1 (de) | Datenverarbeitungsvorrichtung und -verfahren zum Ausführen von Operationen in Folge | |
DE2343501B2 (de) | Steuerschaltung für zumindest eine Rechenanlage mit mehreren für die Durchführung von EuWAusgabe-Programmen bestimmten Registern | |
DE2204680A1 (de) | Mikroprogramm-steuereinrichtung | |
DE102007034684A1 (de) | Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System | |
DE2502005C2 (de) | Schaltungsanordnung zur Zuordnung von Adressen zu Operationen zwecks Ausführung von Befehlen in einer Datenverarbeitungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8304 | Grant after examination procedure | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE |
|
R081 | Change of applicant/patentee |
Owner name: LANTIQ DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE Effective date: 20110325 Owner name: LANTIQ BETEILIGUNGS-GMBH & CO. KG, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE Effective date: 20110325 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0009400000 Ipc: G06F0009448000 |
|
R081 | Change of applicant/patentee |
Owner name: INTEL CORP., SANTA CLARA, US Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE Owner name: LANTIQ BETEILIGUNGS-GMBH & CO. KG, DE Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE |
|
R081 | Change of applicant/patentee |
Owner name: INTEL CORP., SANTA CLARA, US Free format text: FORMER OWNER: LANTIQ BETEILIGUNGS-GMBH & CO. KG, 85579 NEUBIBERG, DE |
|
R071 | Expiry of right |