DE69831295T2 - Verfahren und Vorrichtung zum Programmladen - Google Patents

Verfahren und Vorrichtung zum Programmladen Download PDF

Info

Publication number
DE69831295T2
DE69831295T2 DE69831295T DE69831295T DE69831295T2 DE 69831295 T2 DE69831295 T2 DE 69831295T2 DE 69831295 T DE69831295 T DE 69831295T DE 69831295 T DE69831295 T DE 69831295T DE 69831295 T2 DE69831295 T2 DE 69831295T2
Authority
DE
Germany
Prior art keywords
program
memory
data
program data
address
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.)
Expired - Lifetime
Application number
DE69831295T
Other languages
English (en)
Other versions
DE69831295D1 (de
Inventor
Hiroshi (nmi), Myaguchi, Tokyo
Naoya (nmi), Tokunaga, Moriguchi-shi
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.)
Panasonic Holdings Corp
Texas Instruments Inc
Original Assignee
Matsushita Electric Industrial Co Ltd
Texas Instruments Inc
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 Matsushita Electric Industrial Co Ltd, Texas Instruments Inc filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69831295D1 publication Critical patent/DE69831295D1/de
Application granted granted Critical
Publication of DE69831295T2 publication Critical patent/DE69831295T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Laden gewünschter Programmdaten in funktionale Schaltungen, die bestimmte Operationen in Übereinstimmung mit gelieferten Programmdaten ausführen.
  • HINTERGRUND DER ERFINDUNG
  • In Systemen, die mit diesem Typ einer funktionalen Schaltung oder funktionaler Schaltungen versehen sind, wird die Implementierung verschiedenartiger Betriebsarten oder Anwendungen möglich gemacht, indem Programme oder Einstellwerte (im Folgenden Programmdaten genannt) in funktionale Schaltungen geladen werden.
  • Dieser Typ von herkömmlichem System ist geeignet, verschiedene Typen oder viele Mengen dieser Typen im Voraus in einem Speicher zu speichern (Programmdaten vorzubereiten), wobei der Mikroprozessor in Reaktion auf eine angeforderte Anwendung eine Menge von Programmdaten aus dem Speicher ausliest und die Programmdaten in funktionale Schaltungen lädt. Aus diesem Grund muss der Mikroprozessor Speicheradressen für alle Mengen von Programmdaten im Voraus in einem Speicher halten.
  • Wenn jedoch infolge von Systemversions-Upgrades und dergleichen Änderungen, die die Datenlänge der in dem Speicher gespeicherten Programmdaten betreffen, eintreten, werden unvermeidlich die Adressen oder Speicherorte bzw. Speicherelemente der in dem Speicher gespeicherten Programmdatenmengen verändert. In einem solchen Fall muss die Software in Übereinstimmung mit solchen Änderungen, die die Programmdaten-Speicheradressen auf Seiten des Mikroprozessors betreffen, korrigiert werden, was äußerst lästig ist.
  • Außerdem führt in dem System, in dem der oben genannte Mikroprozessor Programmdaten aus dem Speicher ausliest und sie in funktionalen Schaltungen speichert, der Mikroprozessor selbst eine Verarbeitung aus, während das Steuerprogramm sukzessive aus dem Speicher ausgelesen und decodiert wird, weshalb dies zeitaufwändig ist und es schwierig ist, eine Programmspeicherung schnell auszuführen. Daher war dies nicht für Systeme gedacht, die nach ihrem Einschalten oder nach einem Betriebsartenwechsel sofort arbeiten müssen.
  • Die GB-Patentanmeldung Nummer GB2276257 beschreibt ein konfigurationssensitives Programmladen. Insbesondere beschreibt sie ein Verfahren, das die Übertragung von gespeicherter Firmware während des Hochlaufens eines Computers ermöglicht und die Schritte umfasst, in denen Konfigurationsinformationen gelesen werden, die in einer Konfigurationstabelle in der ersten Speichervorrichtung gespeichert sind, ausgewählte Softwaremodule aus der ersten Speichervorrichtung in eine zweite Speichervorrichtung übertragen werden und die ausgewählten Softwaremodule an ausgewählten Adressenbereichen in der zweiten Speichervorrichtung gespeichert werden, und zwar sämtliches in Übereinstimmung mit der Konfiguration.
  • Ausführungsformen der vorliegenden Erfindung wenden sich wenigstens einigen der Probleme des Standes der Technik zu und zielen darauf ab, ein Programmladeverfahren und eine Programmladevorrichtung zu schaffen, die so beschaffen sind, dass die Ladeverarbeitung von Programmdaten auch dann, wenn Änderungen der Speicheradressen oder der Datenlänge der in dem Programmspeicher gespeicherten Programmdaten stattfinden, ausgeführt wird, ohne Änderungen der Software zu bedürfen.
  • Außerdem schafft eine weitere Ausführungsform der vorliegenden Erfindung ein Programmladeverfahren und eine Programmladevorrichtung, die so beschaffen sind, dass die Ladeverarbeitung von Programmdaten mit hoher Geschwindigkeit und Wirksamkeit ausgeführt wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Ausführungsform der Erfindung umfasst ein Programmladeverfahren zum Laden gewünschter Programmdaten in eine oder mehrere funktionale Schaltungen, die bestimmte Operationen in Übereinstimmung mit gelieferten Programmdaten ausführen, wobei das Verfahren umfasst:
    einen Schritt, in dem mehrere Mengen von Programmdaten gehalten werden, indem jede Menge getrennt in bestimmten Speicherbereichen in einem Programmspeicher zusammen mit Halteadressenzeigern, die die Speicheradressen jeder Programmdatenmenge an vorgegebenen Speicheradressen in dem Programmspeicher angeben, gespeichert wird,
    einen Schritt, in dem Programmbezeichnungsinformationen, die irgendeinem einzelnen Zeiger unter den Adressenzeigern entsprechen, angegeben werden, um die gewünschte Programmdatenmenge zu bezeichnen,
    einen Schritt, in dem anhand der Programmbezeichnungsinformationen die ihnen entsprechenden Adressenzeiger ausgelesen werden und in dem die Speicheradressen der Programmdatenmengen, die durch die Programmbezeichnungsinformationen bezeichnet sind, in Übereinstimmung mit den ausgelesenen Adressenzeigern berechnet werden; und
    einen Schritt, in dem die Programmdatenmengen aus den berechneten Speicheradressen ausgelesen und an entsprechende funktionale Schaltungen übertragen werden.
  • Die Erfindung gemäß einer weiteren Ausführungsform ist jenes Programmladeverfahren, in dem Gruppen von Programmdaten in jeder Menge an aufeinander folgenden Speicheradressen in den Speicherbereichen des Programmspeichers gespeichert werden.
  • Die Erfindung gemäß einer weiteren Ausführungsform ist jenes Programmladeverfahren, in dem Übertragungsziel-Identifizierungsinformationen, die für die Identifizierung jener der funktionalen Schaltungen verwendet werden, die als Übertragungsziele dienen, in einem bestimmten ersten Abschnitt jeder Gruppe von Programmdaten enthalten sind.
  • Die Erfindung gemäß einer weiteren Ausführungsform ist jenes Programmladeverfahren, in dem Übertragungsprogrammlängen-Informationen, die für die Darstellung der Länge der Programmdaten verwendet werden, die an die als Übertragungsziele dienenden funktionalen Schaltungen übertragen werden sollen, in einem bestimmten zweiten Abschnitt jeder Gruppe von Programmdaten enthalten sind.
  • Die Erfindung gemäß einer weiteren Ausführungsform ist jenes Programmladeverfahren, in dem die Programmbezeichnungsinformationen Informationen sind, die die Speicheradressen von ihnen entsprechenden Zeigerinformationen darstellen.
  • Außerdem ist eine weitere Ausführungsform eine Programmladevorrichtung, die so betreibbar ist, dass sie gewünschte Programmdaten in eine oder mehrere funktionale Schaltungen lädt, die so betreibbar sind, dass sie bestimmte Operationen in Übereinstimmung mit gelieferten Programmdaten ausführen,
    wobei die Programmladevorrichtung einen Programmspeicher (10) besitzt, der so betreibbar ist, dass er mehrere Mengen von Programmdaten hält, indem sie in bestimmten Speicherbereichen gespeichert werden, und dass er an vorgegebenen Speicheradressen Adressenzeiger hält, die die Speicheradressen jeder Menge von Programmdaten angeben,
    wobei die Programmladevorrichtung Programmbezeichnungsmittel (14) besitzt, die so betreibbar sind, dass sie Programmbezeichnungsinformationen angeben, die irgendeinem einzelnen Zeiger unter den Adressenzeigern entsprechen, um eine gewünschte Programmdatenmenge zu bezeichnen,
    wobei die Programmladevorrichtung einen Programmlader (12) besitzt, der so betreibbar ist, dass er in Übereinstimmung mit den Programmbezeichnungsinformationen die ihnen entsprechenden Adressenzeiger ausliest und die Mengen von Programmdaten aus den Adressen ausliest, die durch die ausgelesenen Adressenzeiger angegeben werden und dass er die ausgelesene Menge von Programmdaten an entsprechende funktionale Schaltungen überträgt.
  • Die Erfindung gemäß einer weiteren Ausführungsform ist jene Programmladevorrichtung, in der Speicherzugriffszeit-Einstellungen, die die eingestellte Zugriffszeit für den Programmspeicher repräsentieren, an bestimmten Speicherplätzen in dem Programmspeicher gespeichert sind, wobei der Programmlader so beschaffen ist, dass er das Auslesen von Programmdaten aus dem Programmspeicher gemäß einer im Voraus festgelegten Niedergeschwindigkeits-Zugriffszeit beginnt und das Lesen von Programmdaten aus dem Programmspeicher gemäß der Zugriffszeit ausführt, die durch die oben genannten Speicherzugriffszeit-Einstellungen angegeben werden, nachdem er die Zugriffszeitdaten ausgelesen hat.
  • Die Erfindung gemäß einer weiteren Ausführungsform ist jene Programmladevorrichtung, die so aufgebaut ist, dass eine Gruppe von Programmdaten, die dem Programmlader entsprechen, in dem Kopf jeder Menge von Programmdaten, die durch die oben genannten Zeiger angegeben wird, gespeichert ist, wobei die Speicherzugriffszeit-Einstellungen in der Gruppe von Programmdaten enthalten sind.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 ist ein Blockschaltplan, der eine Grundkonfiguration eines Systems zeigt, das das Verfahren und die Vorrichtung für das Programmdatenladen der vorliegenden Erfindung verwendet.
  • 2 ist eine Figur, die ein Beispiel einer Anordnung zeigt, die zum Speichern in den Speicherbereichen des Programmspeichers (ROM) in dem System gemäß der Ausführungsform verwendet wird.
  • 3 ist eine Figur, die ein Beispiel einer Speicheranordnung und Inhalte von Programmdatenmengen zeigt, die in dem Programmspeicher (ROM) in dem System gemäß der Ausführungsform gespeichert sind.
  • 4 ist ein Blockschaltplan, der eine Schaltungskonfiguration eines Programmladers in dem System gemäß der Ausführungsform zeigt.
  • 5 ist ein Ablaufplan, der zur Erläuterung der Funktionsweise einer Steuereinheit eines Programmladers in dem System gemäß der Ausführungsform verwendet wird.
  • 6 ist ein Blockschaltplan, der zur Erläuterung der Funktionsweise einer Steuereinheit eines Programmladers in dem System gemäß der Ausführungsform verwendet wird.
  • 7 ist ein Blockschaltplan, der eine Konfiguration einer Programmdatenladeeinheit zeigt, die in funktionalen Schaltungen in dem System gemäß der Ausführungsform vorgesehen ist.
  • 8 ist ein Blockschaltplan, der eine Konfiguration einer Speicherzugriffszeit-Umschalteeinheit zeigt, die in einem Programmlader in dem System gemäß der Ausführungsform enthalten sein kann.
  • 9 ist ein Zeitdiagramm, das die Wellenformen der Betriebstaktsignale zeigt, die in der Speicherzugriffszeit-Umschalteeinheit erhalten werden.
  • 10 ist ein Blockschaltplan, der die Schaltungskonfiguration eines Bildprozessors als eines der spezifischen Anwendungsbeispiele des Systems gemäß der Ausführungsform zeigt.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Im Folgenden werden unter Verweis auf die beigefügte Zeichnung Ausführungsformen der Erfindung erläutert.
  • 1 zeigt die Grundkonfiguration eines Systems, das ein Programmladeverfahren und eine Programmladevorrichtung gemäß der Ausführungsform der vorliegenden Erfindung verwendet.
  • Dieses System enthält (n + 1) funktionale Schaltungen FC0, FC1, ..., FCn, wovon jede in Übereinstimmung mit gelieferten Programmdaten (Programmen oder Einstellwerten) arbeitet. Dann sind ein Speicher für die Programmspeicherung, beispielsweise ein ROM (Festwertspeicher) 10, ein Programmlader 12 und eine Programmbezeichnungseinheit, beispielsweise ein Mikroprozessor (MPU) 14, für das Laden von Programmdaten in wieder beschreibbarer Weise in diese Schaltungen vorgesehen. Unter diesen kann der Mikroprozessor 14 als eine für das System im Wesentlichen externe Einheit fungieren.
  • Außerdem kann, wie später beschrieben wird, der Programmlader 12 einer der funktionalen Schaltungen FC in dem System hinzugefügt sein.
  • In diesem System sind mehrere Betriebsarten oder Anwendungen vorbereitet, wobei eine Menge von Programmdaten, die für alle funktionalen Schaltungen FC0, FC1, ..., FCn vorgesehen ist, erzeugt wird oder für jede Betriebsart gesetzt bzw. eingestellt wird. Mehrere Programmdatenmengen, die den jeweiligen mehreren Betriebsarten entsprechen, sind zusammen in dem ROM 10 gespeichert.
  • Der Programmlader 12 ist mit dem ROM 10 über einen Adressenbus 16, einen Datenbus 18 und die erforderlichen Steuerleitungen (nicht gezeigt) verbunden. Außerdem ist er mit dem Mikroprozessor 14 über einen geeigneten Bus oder eine Kommunikationsschnittstelle 15 verbunden.
  • Außerdem ist der Programmlader 12 mit den funktionalen Schaltungen FC0, FC1, ..., FCn über einen gemeinsamen internen Adressen/Daten-Bus 20 und eine erforderliche Steuerleitung wie etwa eine Bussignalidentifizierungsleitung 22, die dazu verwendet wird, zu ermitteln, ob das Signal auf dem Bus 20 ein Adressensignal oder ein Datensignal ist, oder eine Schreib-Steuerleitung 24, die dazu verwendet wird, die Daten selektiv nur für eine der funktionalen Schaltung FCi auf den internen Bus 20 zu schreiben und dergleichen, verbunden.
  • 2 zeigt ein Beispiel einer Anordnung von Daten (Speicherabbild), wie sie in dem Speicherbereich des ROM 10 gespeichert ist.
  • Falls in dem ROM 10 beispielsweise die Daten 8 Bits und die Adressen 16 Bits lang sind, hat er eine Speicherkapazität von 8☐216 Bits. In dem Beispiel von 2 ist ein (m + 1)-Anteil (wobei m eine ganze Zahl ist von Adressenzeigern V0 – Vm in dem Speicherbereich mit den Adressen 0 – V2m + 1 gespeichert.
  • Da jeder Adressenzeiger VK (K = 0 – m) eine Datenlänge von 16 Bits besitzt, ist er hier in ein oberes Byte (8 Bits) VHK und ein unteres Byte (8 Bits) VKL unterteilt und in zwei Adressen geschrieben. Wenn m beispielsweise 255 ist, ist es möglich, 256 Adressenzeiger in dem ROM 10 einzurichten, was bedeutet, dass bis zu 256 Mengen von Programmdaten darin gespeichert sein können.
  • In Verbindung mit der oben beschriebenen Einstellung von Adressenzeigern sind entsprechende Mengen von Programmdaten in Speicherorten, die durch die Adressenzeiger in dem ROM 10 angegeben sind, in der Weise gespeichert, dass eine erste Menge von Programmdaten in einem bestimmten Speicherbereich, der die einem ersten Adressenzeiger V0 entsprechende Adresse V0 als Start-Speicheradresse verwendet, gespeichert ist, eine zweite Menge von Programmdaten in einem bestimmten Speicherbereich, der die einem zweiten Adressenzeiger V1 entsprechende Adresse V1 als Start-Speicheradresse verwendet, gespeichert ist.
  • Bei diesem Typ von Speichermanagementsystem können die Programmbezeichnungsinformationen, die zum Bezeichnen von Programmdatenmengen verwendet werden, beispielsweise Programmnummern PN, die entsprechenden Adressenzeiger bezeichnen. In dieser Weise ist es möglich, die Speicherorte der Ziel-Programmdaten anhand der bezeichneten Adressenzeiger zu bestimmen.
  • 3 zeigt ein Beispiel einer Speicheranordnung und Dateninhalte einer in dem ROM 10 gespeicherten Menge (der K-ten Menge) von Programmdaten.
  • Zuallererst sind Ein-Byte-Daten DFC0, die zum Unterscheiden des funktionalen Blocks FC (beispielsweise FC0), der als erstes Übertragungsziel dient, in einer Startadresse VK – 1 gespeichert. Daten LK0, die durch Addieren von 2 zum Wert der Datenlänge (Bytenummer) der Programmdaten, die an das erste Übertragungsziel übertragen werden sollen, erhalten werden, sind als zwei Bytes (LK0H, LK0L) in den zwei aufeinander folgenden Adressen VK – 1 + 1, VK – 1 + 2 gespeichert.
  • Als Nächstes sind 2-Byte-Daten AD0 (AD0H, AD0L), die die Start-Speicheradressen der Register oder Speicher, in die Programmdaten geschrieben werden sollen, in dem ersten Übertragungsziel (funktionale Schaltung) zeigen, als Übertragungszieladressen in der vierten und fünften Adresse VK – 1 + 3 und VK – 1 + 4, die als Nächste kommen, gespeichert.
  • Programmdaten, die in das erste Übertragungsziel (funktionale Schaltung) geladen werden sollen, sind in Adressen in Ein-Byte-Einheiten Da(1), Da(2), ... über Adressen, die von der nächsten, der sechsten, Adresse VK – 1 + 5 bis zu der Adresse, die (Programmdatenlänge LK0☐2) entspricht, gehen, gespeichert.
  • Wie oben beschrieben worden ist, ist eine erste Gruppe von Programmdaten, die der funktionalen Schaltung entspricht, die als erstes Übertragungsziel dient, an aufeinander folgenden Speicheradressen (VK – 1, VK – 1 + 1, VK – 1 + 2, ...) in dem Startabschnitt einer K-ten Menge von Programmdaten gespeichert.
  • Die letzte Adresse der oben genannten ersten Gruppe von Programmdaten ist VK – 1 + LK0 + 3☐1. In dieser Formel entspricht der dritte Ausdruck, d.h. die Konstante 3, den drei Adressen, die DFC0, LK0H, LK0L zugewiesen sind.
  • Eine zweite Gruppe von Programmdaten, die einer funktionalen Schaltung entspricht, die als zweites Übertragungsziel dient, ist in demselben Format wie die oben genannte erste Gruppe ab der Adresse (VK – 1 + LK0 + 3) nach dieser letzten Adresse (VK – 1 + LK0 + 3☐1) gespeichert. Die Programmdatenlänge der Programmdaten Db(1), Db(2), ..., die übertragen werden sollen, hängt von den technischen Daten oder der Speicherkapazität des Programmdaten-Speichermittels (Speicher oder Register usw.) an dem zweiten Übertragungsziel ab.
  • Ab dem dritten Übertragungsziel, sind entsprechende Gruppen von Programmdaten nacheinander und in demselben Format wie jenes, das oben beschrieben worden ist, in den Speicherbereichen des ROM 10 gespeichert. Danach sind das Ende angebende Daten DFend, die zeigen, dass diese Menge (die K-te Menge) von Programmdaten hier endet, in der nächsten Adresse, die auf den Speicherort, an dem die dem letzten Übertragungsziel entsprechende Gruppe von Programmdaten gespeichert ist, folgt, gespeichert.
  • 4 zeigt ein Beispiel einer Schaltungskonfiguration des Programmladers 12. Der Programmlader 12 besteht aus einer Anzahl von Registern 3036, wo verschiedene Informationen oder Daten temporär eingegeben und gehalten werden, einem Adressenumschalter 38 und einer Steuereinheit 40, die verschiedene Einheiten in dem Lader und externe funktionale Schaltungen und dergleichen steuert. In diesem Beispiel ist der Programmlader 12 mit dem Mikroprozessor 14 über eine I2C-Bus-(Inter IC-Bus)-Schnittstellenschaltung 42 verbunden.
  • 5 zeigt einen Ablaufplan, der die steuernde oder verarbeitende Operation der Steuereinheit 40 in dem Programmlader 12 zeigt.
  • Im Folgenden wird die Operation erläutert, die ausgeführt wird, wenn der Programmlader 12 die K-te Menge von Programmdaten aus dem ROM 10 ausliest und in die funktionalen Schaltungen des Systems lädt. Außerdem zeigt 6 die Verteilung von Daten oder zugeordneten Adressensignalen, die über verschiedene Wege übertragen werden, und näher dargelegte Schritte im Fall des Ladens der ersten Gruppe von Programmdaten in der K-te Menge von Programmdaten in das erste Übertragungsziel, beispielsweise die funktionale Schaltung FC0.
  • Zuallererst wird von dem Mikroprozessor 14 unmittelbar nach dem Einschalten des Systems oder unmittelbar nach dem Umschalten in einer andere Betriebsart eine Programmnummer PNK – 1, die die gewünschte Menge (in diesem Beispiel die K-te Menge) von Programmdaten an den Programmlader 12 geschickt.
  • Wenn die I2C-Bus-Schnittstellenschaltung 42 die Programmnummer PNK – 1 empfängt, zusammen mit dem Übertragen eines Handshake-Signals, das die Steu ereinheit 40 über dieses Ereignis benachrichtigt, wird die empfangene Programmnummer PNK – 1 in das Register 30 geladen. Hier wirkt das Signal HS als Schreibfreigabesignal WE des Registers 30.
  • Wenn die Steuereinheit 42 [sic; 40] das oben genannte Handshake-Signal HS empfängt, initialisiert sie jede Einheit in dem Programmlader 12. Insbesondere, soweit der Adressenumschalter 38 betroffen ist, kann der Ausgangsanschluss (ROM-Adresssen-Ausgangsanschluss) auf den Eingangsanschluss auf Seiten des Registers 30 umgeschaltet werden (Schritte S1, S2).
  • Wenn die Programmnummer PNK – 1 in das Register 30 geladen ist, werden die Datenbits um eine Stelle nach links verschoben und eine "0" in die tiefste Bitstelle eingesetzt. Im Ergebnis repräsentieren die Daten in dem Register 30 einen Wert, der zweimal so groß wie die Programmnummer PNK1 (2☐PNK – 1) ist.
  • Somit werden Daten (2☐PNK – 1) aus dem Register 30 als eine erste ROM-Adresse über den Schalter 38 an einen Adressenbus 16 ausgegeben und Daten an dem durch diese ROM-Adresse (2☐PNK – 1) bezeichneten Speicherort, mit anderen Worten, das obere Byte V(K – 1H) des Adressenzeigers VK – 1, aus dem ROM 10 an einen Datenbus 18 ausgelesen (Schritt S2).
  • Das aus dem ROM 10 gelesene hohe Byte V(K – 1H des Adressenzeigers VK – 1 wird in das Register 32 des Programmladers 12 geladen.
  • Als Nächstes inkrementiert die Steuereinheit 40 die Inhalte des Registers 30 um eins, was daraus 2☐PNK – 1 macht. Somit werden Daten (2☐PNK – 1 + 1) aus dem Register 30 als eine zweite ROM-Adresse über den Schalter 38 an den Adressenbus 16 ausgegeben und Daten an dem durch diese ROM-Adresse (2☐PNK – 1 + 1) bezeichneten Speicherort, mit anderen Worten, das untere Byte V(K – 1)L des Adressenzeigers VK – 1, aus dem ROM 10 an den Datenbus 18 ausgelesen (Schritt S4).
  • Das aus dem ROM 10 gelesene untere Byte V(VK – 1)L des Adressenzeigers VK – 1 wird in das Register 32 des Programmladers 12 geladen.
  • Zu dieser Zeit wird ein 2-Byte-Adressenzeiger VK – 1 erhalten (Schritt S5), indem das obere Byte V(K – 1)H, das vorher geladen wurde, um 8 Bitstellen nach links verschoben wird, mit anderen Worten, indem eine Multiplikation mit 256 ausgeführt wird, und das untere Byte V(K – 1)L in die Bitstellen darunter gesetzt (addiert wird. Dieser Adressenzeiger VK – 1 ist eine Adresse, die die Start-Speicheradresse des Speicherorts, an dem die K-te Menge von Programmdaten gespeichert ist, zeigt.
  • Zum anderen schaltet die Steuereinheit 30 den Adressenumschalter auf die Seite des Registers 32 um. Somit wird der Adressenzeiger VK – 1 als eine dritte ROM-Adresse über den Schalter 38 an den Adressenbus 16 ausgegeben und werden Übertragungsziel-Identifizierungsdaten DFC0, die die Startdaten der K-ten Menge von Programmdaten angeben, mit anderen Worten, das erste Übertragungsziel, aus dem ROM 10 ausgelesen (Schritt S6).
  • Die aus dem ROM 10 gelesenen Übertragungsziel-Identifizierungsdaten DFC0 werden in das Register 34 des Programmladers 12 geladen, wobei die Steuereinheit 40 die funktionale Schaltung FC, die als erstes Übertragungsziel dient, anhand der Inhalte des Registers 34 erkennt und das Schreibfreigabesignal WE bezüglich dieser funktionalen Schaltung aktiviert.
  • Unmittelbar nach dem Lesen aus dem ROM inkrementiert die Steuereinheit 40 die Inhalte des Registers 32 um eins (Schritt S6). Daher wird als Nächstes die auf die Start-Speicheradresse VK – 1 folgende Adresse (VK – 1 + 1) als ROM-Adresse aus dem Register 32 über den Schalter 38 an den Adressenbus 16 ausgegeben und das obere Byte LK0H der Programmdatenlänge LK0 für das erste Übertragungsziel aus dem ROM 10 an den Datenbus 18 ausgelesen (Schritt S8). Unmittelbar danach inkrementiert die Steuereinheit 40 den Wert des Registers 32 um eins.
  • Außerdem wird das aus dem ROM 10 ausgelesene oben genannte obere Byte LK0H der Programmdatenlänge LK0 in das Register 36 des Programmladers 12 geladen.
  • Als Nächstes wird eine Adresse (VK – 1 + 2) über den Schalter 38 aus dem Register 32 an den Adressenbus 16 ausgegeben und das untere Byte LK0L der Programmdatenlänge LK0 für das erste Übertragungsziel aus dem ROM 10 ausgelesen (Schritt S9). Unmittelbar danach inkrementiert die Steuereinheit 40 den Wert des Registers 32 um eins.
  • Das untere Byte LK0L der Programmdatenlänge LK0, das ausgelesen worden ist, wird ebenfalls in das Register 36 geladen. Zu dieser Zeit wird eine 2-Byte-Programmdatenlänge LK0 erhalten (Schritt S10), indem das obere Byte LK0H, das zuvor geladen wurde, um 8 Ziffernstellen nach links verschoben wird, mit anderen Worten, indem eine Multiplikation mit 256 ausgeführt wird, und dann das untere Byte LK0L in die Bitstellen darunter gesetzt (addiert) wird. Die Steuereinheit 40 kann die Inhalte des Registers 36 lesen.
  • Als Nächstes wird eine Adresse (VK – 1 + 3) über den Schalter 38 aus dem Register 32 an den Adressenbus 16 ausgegeben. Nach dem Empfang dieser Adresse wird ein oberes Byte AD0H der "Übertragungszieladresse" AD0, die das Anfangs-Speicherziel der Programmdaten in der funktionalen Schaltung, die als erstes Übertragungsziel dient, zeigt, aus dem ROM 10 über den Datenbus 18 ausgelesen (Schritt S12).
  • Das über den Datenbus 18 aus dem ROM 10 gelesene obere Byte AD0H der Übertragungszieladresse AD0 wird direkt an den internen Bus 20 übertragen und über diesen Bus 20 in die zum Schreiben freigegebene funktionale Schaltung FC, die als erstes Übertragungsziel dient, geladen. Zu dieser Zeit setzt die Steuereinheit 40 Signalidentifizierungsinformationen ADT an einer Signalidentifizierungsleitung 22 auf einen logischen Wert, der einen Adressenübertragungsmodus angibt, beispielsweise auf Hochpegel. Außerdem inkrementiert die Steuereinheit 40 die Inhalte des Registers 32 um eins und aktualisiert die ROM-Leseadresse um eins, zusammen mit dem Inkrementieren der Inhalte des Registers 36 um eins und dem Verkleinern der verbleibenden Programmdatenlänge LK um eins (Schritt S12).
  • Im nächsten Lesezyklus wird eine Adresse (VK – 1 + 4) über den Schalter 38 aus dem Register 32 an den Adressenbus 16 ausgegeben und ein unteres Byte AD0L der Übertragungszieladresse AD0 aus dem ROM 10 gelesen (Schritte S11, S12). Dann wird in derselben Weise wie in dem vorhergehenden Zyklus das unter Byte AD0L der Übertragungszieladresse AD0, das ausgelesen worden ist, über den internen Bus 20 in die funktionale Schaltung FC, die als erstes Übertragungsziel dient, geladen.
  • Im nächsten Lesezyklus wird eine Adresse (VK – 1 + 5) über den Schalter 38 aus dem Register 32 an den Adressenbus 16 ausgegeben und nach dem Empfang dieser Adresse ein Anfangs-Ein-Byte-DA(1) der ersten Gruppe von Programmdaten, die dem ersten Übertragungsziel entspricht, aus dem ROM 10 ausgelesen.
  • Dieses einzelne Byte von Programmdaten Da1 wird über den internen Bus 20 in die funktionale Schaltung FC, die als erstes Übertragungsziel dient, geladen. Zu dieser Zeit setzt die Steuereinheit 40 die Signalunterscheidungsinformationen ADT auf einen logischen Wert, der den Datenübertragungsmodus angibt, beispielsweise auf Tiefpegel. Auf dieser Grundlage wird das einzelne Byte von Programmdaten Da(1) an der Speicheradresse, die durch die zuvor geladene Übertragungszieladresse AD0 angegeben wird, in die funktionale Schaltung geladen.
  • Danach werden Lesezyklen, die den oben beschriebenen gleichen, wiederholt, derart, dass während jedes Zyklus ein Byte der ersten Gruppe von Programmdaten, die dem ersten Übertragungsziel entsprechen, aus dem ROM 10 ausgelesen wird, an die funktionale Schaltung FC, die als erstes Übertragungsziel dient, über den internen Bus 20 übertragen wird und an dem entsprechenden Speicherort in die funktionale Schaltung geladen wird.
  • Jedes Mal, wenn der oben beschriebene Lesezyklus ausgeführt wird, inkrementiert die Steuereinheit 40 den Adressenwert in dem Register 32 um eins, während sie die verbleibende Programmdatenlänge LK in dem Register 36 um eins dekrementiert.
  • Dann, wenn LK in dem Register 36 0 erreicht, wird erkannt, dass die Übertragung der Programmdaten, die dem ersten Übertragungsziel entsprechen, abgeschlossen ist, werden die im nächsten Zyklus aus dem ROM 10 ausgelesenen Daten als Übertragungsziel-Unterscheidungsdaten DFC1, die zum Identifizieren des nächsten (des zweiten) Übertragungsziels verwendet werden, bestimmt und werden diese Daten DFC1 in das Register 34 gelegt (Schritte S11, S6).
  • Eine Operation, die zu der oben beschriebenen Operation, die für das erste Übertragungsziel verwendet wurde, gleich ist, wird danach wiederholt (Schritte S6☐S7☐S8☐S9☐S10☐S11☐S12 ..... ☐S11☐S6). Danach, wenn alle erforderlichen Programmdaten an das letzte Übertragungsziel übertragen worden sind und das Ende angebende Daten DFend aus der unmittelbar folgenden ROM-Adresse gelesen sind, endet an diesem Punkt die gesamte Verarbeitung für die K-te Menge von Programmdaten (Schritte S7, S1).
  • 7 zeigt ein Beispiel einer Schaltungskonfiguration, die zum Laden von Programmdaten von dem Programmlader 12 in die funktionalen Schaltung FC verwendet wird.
  • Die funktionalen Schaltungen FC sind mit einer Datenempfangseinheit 52 und einer Adressenempfangseinheit 50 versehen, die Daten- bzw. Adressensignale von dem internen Bus 20 empfangen.
  • Die Adressenempfangseinheit 50 enthält ein Adressenregister 50a und speichert Adressen, die zum Adressieren in Byteeinheiten in dem Adressenregister 50a in dem Speicherbereich eines oder mehrerer Register Reg0, Reg1, ..., Reg M oder Speicher, die Programmdaten in den funktionalen Schaltungen FC halten, verwendet werden.
  • Die Datenempfangseinheit 52 ist aus einem Datenpuffer gebildet, der empfangene Daten temporär hält, wobei seine Datenausgangsanschlüsse mit den Dateneingangsanschlüssen der Speicher oder Register Reg0, Reg1, ..., Reg M verbunden sind.
  • Während der Programmdatenzuweisung durch den Programmlader 12, wie sie oben beschrieben worden ist, wird zuallererst ein Adressenübertragungsmodus angegeben, indem der Pegel der Signalidentifizierungsinformationen ADT an der Signalidentifizierungsleitung 22 auf Hochpegel verändert wird, und empfängt die Adressenempfangseinheit 50 die in diesem Modus übertragenen Anfangs-2-Byte-Daten ADH, ADL als "Übertragungszieladresse" AD. Die Adressenempfangseinheit 50 speichert die empfangene Übertragungszieladresse AD in dem Adressenregister 50a.
  • Als Nächstes werden die Signalidentifizierungsinformationen ADT auf Tiefpegel verändert und danach von der Datenempfangseinheit 52 über den internen Bus 20 gesendete Daten empfangen. Zu dieser Zeit gibt die Adressenempfangseinheit 50 das Schreiben der Speicheradressen oder Registeradressen, die durch die in dem Adressenregister 50a gespeicherten Adressen bezeichnet sind, frei. Somit werden die in der Datenempfangseinheit 52 empfangenen Daten an die ausgewählten Adressen geschrieben. Unmittelbar danach inkrementiert die Steuereinheit 50 [sic] die Inhalte des Adressenregisters 50a um eins und aktualisiert einen Schreibadressenwert.
  • Somit werden Daten in Einheiten von 1 Byte, die von dem Programmlader 12 übertragen werden, über die Datenempfangseinheit 52 in die Speicheradressen der entsprechenden Register oder Speicher geladen.
  • Außerdem ist die Musterkonfiguration von 7 lediglich ein Beispiel: es sind verschiedene Modifikationen erlaubt. Insbesondere können verschiedene Schaltungskonfigurationen des Standes der Technik verwendet werden, um die gewünschten Register- oder Speicheradressen in den funktionalen Schaltungen FC zu adressieren oder auszuwählen.
  • Wie oben beschrieben worden ist, sind in dem System gemäß der vorliegenden Ausführungsform zusammen mit dem Speichern und Halten mehrerer Mengen von Programmdaten, die mehreren Betriebsarten bzw. Anwendungen in bestimmten Speicherbereichen des ROM 10 entsprechen, getrennt für jede Menge Adressenzeiger, die die Speicheradressen jeder Menge von Programmdaten angeben, an vorgegebenen Speicheradressen in dem ROM 10 gespeichert, wobei dann, wenn von einem externen Mikroprozessor 14 eine Programmnummer PN, die irgendeinem der Adressenzeiger entspricht, geliefert wird, um die gewünschte Gruppe von Programmdaten zu bezeichnen, der Programmlader 12 anhand der Programmnummer PN den entsprechenden Adressenzeiger aus dem ROM 10 liest und anhand des Adressenzeigers den Speicherort der Zielmenge von Programmdaten bestimmt.
  • Daher kann der Mikroprozessor 14 lediglich die Programmnummern PN, die den Betriebsarten entsprechen, verarbeiten. Falls die Speicherorte der in dem ROM 10 gespeicherten Programmdatenmengen verändert werden, sind die Elemente, die zusammen mit ihnen verändert werden müssen, nur die Werte der Adressenzeiger in dem ROM 10 und erübrigen sich Änderungen oder Modifikationen außerhalb des ROM 10. Insbesondere müssen keinen Änderungen der Software des Mikroprozessors 14 ausgeführt werden.
  • Da in dem System gemäß der vorliegenden Ausführungsform das Lesen von Programmdaten aus dem ROM 10 und ihre Übertragung an verschiedene funktionale Schaltungen nicht durch einen Mikroprozessor 14, sondern durch einen Programmlader 12, der lediglich aus Hardwareschaltungen gebildet sein kann, ausgeführt wird, kann das Laden außerdem mit hoher Geschwindigkeit unter Verwendung einer minimalen Anzahl von Schritten ausgeführt werden.
  • Nebenbei bemerkt ist es, wie oben beschrieben wurde, möglich, den Programmlader 12 einer der funktionalen Schaltungen FC in diesem System hinzuzufügen. Dazu kann eine Schaltung wie etwa jene, die in 7 gezeigt ist, in der Steuereinheit 40 vorgesehen sein. Die Steuereinheit 40 kann die Eigenschaften der oben erwähnten Programmladeoperation in programmierbarer Weise und in Übereinstimmung mit dem in ein integriertes Einstellwertregister Reg geladenen Einstellwert verändern.
  • Als passendes Beispiel dieses System gibt es ein Verfahren zum Steuern der Zugriffszeit (Geschwindigkeit) des ROM-Auslesens in programmierbarer Weise, das im Folgenden erläutert wird.
  • Unter handelsüblichen ROMs gibt es Speicher mit einer kurzen Zugriffszeit (schnelle Speicher) und mit einer langen Zugriffszeit (langsame Speicher), die sich in dieser Hinsicht stark unterscheiden. In dem System gemäß der vorliegenden Ausführungsform wird ein ROM 10, der in einfacher Weise eingebaut und ausgebaut werden kann, bevorzugt, wobei in diesem Fall entweder ein langsamer ROM oder ein sehr schneller ROM angeschlossen sein kann. Um unter Verwendung einer gleichmäßigen Zugriffszeit auf alle ROMs zugreifen zu können, ist eine Beschränkung auf die langsamste Geschwindigkeit in den technischen Daten geboten. Jedoch bedeutet dies das Ausführen eines Speicherzugriffs bei Geschwindigkeiten, die weitaus langsamer sind als die spezifizierte Geschwindigkeit im Fall des Anschließens eines sehr schnellen ROM, was zu einem verkleinerten Wirkungsgrad der Programmdatenladeverarbeitung führt.
  • Somit sind in einer Ausführungsform der vorliegenden Erfindung zusammen mit dem Hinzufügen eines Programmladers 12 zu einer der funktionalen Schaltungen in dem System Daten, die die bei diesem ROM festgelegte spezifizierte Zugriffszeit repräsentieren, in der Programmdatengruppe, die dem Programmlader 12 entspricht, unter den in dem ROM 10 gespeicherten Programmdatenmengen enthalten. Dann wird die langsamste Zugriffszeit als Anfangswert der ROM-Zugriffszeit in der Steuereinheit 40 des Programmladers 12 voreingestellt. Außerdem sollte der Programmlader 12 auf das erste Übertragungsziel voreingestellt sein.
  • Wenn der Programmlader 12 von dem Mikroprozessor 14 eine Programmnummer PN empfängt, beginnt das Auslesen von Programmdaten aus dem ROM 10 unter Verwendung der oben genannten voreingestellten, langsamsten Zugriffszeit.
  • In dem oben beschriebenen Beispiel wird der Speicherzugriff von dem Auslesen des Adressenzeigers bis wenigstens dem Auslesen der Übertragungszieladresse AD unter Verwendung der voreingestellten, langsamsten Zugriffszeit ausgeführt. Daher kann die Zugriffsgeschwindigkeit des Programmladers 12 unabhängig davon, welche spezifizierte Zugriffszeit der ROM 10 besitzt, nicht so hoch sein, dass ein Auslesen unmöglich gemacht wird.
  • Nachdem der Programmlader 12 Daten hinsichtlich der Standard-Zugriffszeit für diesen ROM aus dem ROM 10 ausgelesen und sie in sein eigenes Einstellwertregister geladen hat, wird die Zugriffsgeschwindigkeit auf die Standard-Zugriffszeit verändert und die Ladeverarbeitung dieser Gruppe von Programmdaten fortgesetzt.
  • Wenn der ROM 10 ein sehr schneller ROM ist, der ab dem Moment des Schaltens startet, wird daher das Lesen von Programmdaten unter Verwendung des sehr schnellen Speicherzugriffs ausgeführt, was zu einer bemerkenswerten Verringerung der für die Ladeverarbeitung erforderlichen Gesamtzeit führt. Außerdem wird dann, wenn der ROM 10 ein Speicher mittlerer Geschwindigkeit ist, das Auslesen unter Verwendung des Speicherzugriffs mit mittlerer Geschwindigkeit ausgeführt, wodurch das Erreichen einer wesentlichen Verringerung der Gesamt-Ladeverarbeitungszeit möglich wird.
  • Somit kann unabhängig von der spezifizierten Zugriffszeit des als ROM 10 verwendeten ROM ein Speicherzugriff in völlig zuverlässiger Weise unter Verwendung einer Zugriffszeit, die mit der spezifizierten Geschwindigkeit dieses ROM übereinstimmt, ausgeführt werden.
  • Um die oben beschriebenen Veränderung der Zugriffsgeschwindigkeit in dem Programmlader 12 vorzunehmen, können in der Steuereinheit 40 ein programmierbarer Zähler 62 und ein Einstellwertregister 60 wie etwa jene, die in 8 gezeigt sind, vorgesehen sein. Die oben beschriebenen Standard-Zugriffszeitdaten Dt des ROM 10 werden in ein bestimmtes Feld FD des Einstellwertregisters 60, beispielsweise als Vier-Bit-Daten (d3, d2, d1, d0), geladen und als Einstellwert N an den Programm-Eingangsanschluss des programmierbaren Zählers 82 geführt.
  • Der programmierbare Zähler 62 empfängt eine Eingabe eines Referenztaktgebers CK, die der schnellsten Zugriffszeit entspricht, und arbeitet als Zähler, der den Referenztakt CK0 durch (16-N) bezüglich des über den Programm-Eingangsanschluss empfangenen Einstellwerts N teilt. Jede Einheit in dem Programmlader, insbesondere die Steuereinheit 40, arbeitet mit einer Taktgeschwindigkeit SCKN, die von dem programmierbaren Zähler 62 ausgegeben wird.
  • Zum Zeitpunkt, zu dem das ROM-Auslesen beginnt, ist in dem Feld FD des Einstellwertregisters 60 ein Anfangswert "0" voreingestellt, so dass (d3, d2, d1, d0) (0, 0, 0, 0) ist und ein Einstellwert "0" an den Programm-Eingangsanschluss des programmierbaren Zählers 62 geführt wird. Somit arbeitet der programmierbare Zähler 62 als 16-Bit-Zähler, wobei er einen Takt SCK0 mit einer Geschwindigkeit von 1/16 des Referenztakts CK ausgibt. Daher greift der Programmlader 12 unter Verwendung einer Zugriffszeit (von beispielsweise 500 ns), die diesem langsamsten Takt SCK0 entspricht, auf den ROM 10 zu.
  • Wie oben beschrieben worden ist, werden Standard-Zugriffzeitdaten Dt in das Feld FD des Einstellwertregisters (60) des ROM 10 geladen, wobei beispielsweise dann, wenn dieser Wert "15" ist, ein Einstellwert "15" an den Programm-Eingangsanschluss des programmierbaren Zählers 62 geführt wird und ein Takt SCK15 mit der gleichen Geschwindigkeit wie der Referenztakt CK von dem Ausgangsanschluss des programmierbaren Zählers 62 ausgegeben wird. Somit greift der Programmlader 12 unter Verwendung einer Zugriffszeit (von beispielsweise 500 ns), die diesem schnellsten Takt SCK0 entspricht, auf den ROM 10 zu.
  • 10 zeigt den Schaltplan eines Bildprozessors als Beispiel einer spezifischen Anwendung eines auf dieser Ausführungsform basierenden Systems.
  • Der Bildprozessor enthält eine Eingabeeinheit 70, die eine Eingabe aus digitalen Videosignalen VS von außen als Bilddaten, die verarbeitet werden sollen, annimmt, wobei ein SVP (Scan-line-Videoprozessor) Bilddaten in Abtastlinien einheiten empfängt, sie verarbeitet und die Ergebnisse ausgibt, wobei ein Bildspeicher 74 Bilddaten in Abtastlinieneinheiten schreibt und liest, wobei eine Ausgabeeinheit 76 Bilddaten nach der Verarbeitung nach außen ausgibt und wobei ein Datenbus 78 die Eingabeeinheit 70, den SVP 72, den Bildspeicher 74 und die Ausgabeeinheit 76 verbindet.
  • Um dem SVO 72 das Arbeiten als digitaler SIMD-Signalprozessor (SIMD = Single-Instruction-Multiple-Data) zu ermöglichen, sind in diesem Bildprozessor ein Befehlsspeicher 80, der aus einem RAM gebildet ist, der Programme enthält, die für den SVP 72 verwendet werden, und eine Befehlserzeugungsschaltung (IG) 82, die Befehle von dem Befehlsspeicher einzeln erhält und Mikrobefehle und andere Steuersignale, die den Befehlen entsprechen, an den SVP 72 liefert, vorgesehen.
  • Ferner ist in dem Bildprozessor auch eine Taktregelungseinheit (TCU) 84, die die erforderlichen Taktregelungssignale für die Eingabeeinheit 70, den SVP 72, den Bildspeicher 74, die Ausgabeeinheit 76 und die IG 82 liefert, vorgesehen.
  • Die Eingabeeinheit 70, die digitalen Signalprozessoreinheiten 72, 80, 82, der Bildspeicher 74, die Ausgabeeinheit 76 und die TCU 84 in diesem Bildprozessor arbeiten in Übereinstimmung mit den jeweiligen gelieferten Programmdaten, die den funktionalen Schaltungen FG0, FG1, ..., FGn von 1 entsprechen.
  • Dann sind außerdem ein Programmlader 12 und eine I2C-Schnittstellenschaltung 42 enthalten, die zum Verteilen der gewünschten Programmdaten von dem ROM 10 über einen internen Bus 20 an die Programmdaten-Halteeinheiten (die Speicher, die Register und solche innerhalb der Einheiten des Bildprozessors, nämlich die Eingabeeinheit 70, die digitalen SIMD-Signalprozessoreinheiten 72, 80, 82, den Bildspeicher 74, die Ausgabeeinheit 76 und die IG 82) verwendet werden. Außerdem ist ein Taktgeber, nicht gezeigt, der beispielsweise aus einer PLL-Schaltung besteht und dafür verwendet wird, die erforderlichen Taktimpulse an die Einheiten in dem Prozessor zu liefern, enthalten.
  • Der SVP 12 besitzt eine Dreischichtenstruktur, die aus einem Dateneingaberegister (DIR) 86, einer Verarbeitungselementeinheit (Prozessoreinheit) 88 und einem Datenausgaberegister (DOR) 90 besteht.
  • Das DIR 86 arbeitet in Übereinstimmung mit Adressen (ADRESS), die von der IG 82 geliefert werden, dem Takt, der von dem Taktgeber geliefert wird, und den Taktregelungssignalen, die von der TCU 84 geliefert werden, wobei es die Eingabe von Bilddaten D1–DN für maximal drei Kanäle (beispielsweise 48 Bits) in Abtastlinieneinheiten wiederholt ausführt.
  • Die Prozessoreinheit 88 ist durch paralleles Anordnen (Parallelschalten) von Verarbeitungselementen PE1–PEn, deren Anzahl gleich der Anzahl von Pixeln N in einer horizontalen Abtastlinie (beispielsweise 864) ist, aufgebaut. Die Verarbeitungselemente PE1–PEn arbeiten parallel in Übereinstimmung mit Adressen (ADDRESS) und Mikrobefehlen (MICROINSTRUCTION) von der IG 82 und Taktimpulsen von dem Taktgeber, wobei sie für jedes entsprechende Stück von Bilddaten D1, D2, ..., DN innerhalb einer Horizontalabtastperiode dieselben Bildverarbeitungsberechnungen ausführen.
  • Das DOR 90 arbeitet in Übereinstimmung mit Adressen (ADRESS), die von der IG 82 geliefert werden, Taktimpulsen, der von dem Taktgeber geliefert werden, und den Regelungssignalen, die von der TCU 84 geliefert werden, wobei es die Daten, die das Ergebnis der arithmetischen Verarbeitung durch die Verarbeitungselemente PE1–PEn sind, für jede einzelne Horizontalabtastperiode kombiniert und in Form von Bilddaten D1'–DN', die eine horizontale Abtastlinie bilden, an maximal drei Kanäle ausgibt.
  • Die an das DIR 86, die Prozessoreinheit 88 und das DOR 90 gelieferten Takte können zueinander asynchron sein. Außerdem werden die Datenübertragung von dem DIR 86 an die Prozessoreinheit 88 und die Datenübertragung von der Prozessoreinheit 88 an das DOR 90 innerhalb jeweiliger Horizontalaustastungsperioden ausgeführt.
  • In dieser Weise werden die Eingabe von Daten für eine horizontale Abtastlinie, ihre parallele arithmetische Verarbeitung und die Datenausgabe durch das DIR 86, die Prozessoreinheit 88 und das DOR 90 unter dem Pipeline-System in einer asynchronen, parallelen Weise ausgeführt, womit eine Echtzeit-Bildverarbeitung ausgeführt wird.
  • Außerdem werden die gewünschten Programmdaten (Befehle) von dem Programmlader 12 über einen internen Bus 20 in den Befehlsspeicher 80 der digitalen SIMD-Signalprozessoreinheit geladen.
  • Der Bildspeicher 74, der einen SDRA (Synchroner Direktzugriffsspeicher) als sehr schnellen Speicher, der Bilddaten temporär speichert, enthält, enthält außerdem eine einzige Schnittstelleneinheit (SDRAM-Schnittstelleneinheit), die eine Anzahl von Eingangs-/Ausgangsschnittstellen zum Ausführen von Daten-Schreib-/und-Leseoperationen in paralleler und unabhängiger Weise umfasst.
  • Die Steuereinheit dieser SDRAM-Schnittstelleneinheit enthält ein Einstellwertregister und übt eine Steuerung des Speicherzugriffs auf den SDRAM sowie eine Steuerung des Schreibens in die Eingangs- und Ausgangspuffer und des Lesens aus denselben in Übereinstimmung mit den Taktsteuersignalen von der TCU 84 und den in dieses Register von dem Programmlader 12 geladenen Daten aus.
  • Die TCU 84 enthält einen Programmspeicher, einen sequenziellen Speicher und dergleichen, wobei sie Programmdaten von dem Programmlader 12 in diesen Speichern speichert. Dann werden auf der Grundlage dieser gespeicherten Programmdaten Taktsteuersignale, die für die verschiedenen Einheiten des Systems erforderlich sind, synchron mit dem Pixeltakt, Horizontalsynchronisierungssignalen und Vertikalsynchronisierungssignalen, die aus dem eingegebenen Bildsignal extrahiert werden, geliefert.
  • Da in diesem Bildprozessor die digitalen SIMD-Bildprozessoreinheiten (insbesondere der SVP 72) und der Bildspeicher 74, der Schreib- und Leseoperationen in paralleler und unabhängiger Weise ausführen kann, über einen Datenbus 78 miteinander verbunden sind und jede Einheit in dem Prozessor (funktionale Schal tungen) in programmierbarer Weise und in Übereinstimmung mit den von dem Programmlader 12 geladenen Daten betrieben wird, ermöglicht eine Schaltungskonfiguration kleinen Maßstabs das Implementieren einer hochwertigen und mannigfaltigen Bildverarbeitung.
  • Obwohl in der oben beschriebenen Ausführungsform ein ROM als Programmspeicher zum Speichern von Programmdaten in dem System der vorliegenden Erfindung verwendet wurde, kann stattdessen selbstverständlich ein RAM (Direktzugriffsspeicher) verwendet werden. Außerdem können die Einheitsdatenlänge, die Speicherpositionen oder Speicherorte der verschiedenen Daten (Adressenzeiger, Programmdaten) und dergleichen, die in einem solchen Programmspeicher gespeichert sind, frei gewählt werden. Alle Systeme, die im Stand der Technik bekannt sind, können als Verfahren zum Übertragen von aus dem Programmspeicher gelesenen Programmdaten an die funktionalen Schaltungen verwendet werden.
  • Da in der oben beschriebenen Ausführungsform Programmnummern, die die Speicheradressen der Adressenzeiger direkt repräsentieren, als Programmidentifizierungsinformationen verwendet wurden, kann auf die entsprechenden Adressenzeiger ohne weiteres durch Ausführen einer einfachen Datenoperation verwiesen werden. Falls jedoch der Programmlader mit den notwendigen Decodierfunktionen ausgestattet ist, ist es möglich, anstelle der Programmnummern (Adressenwerte) geeignete Codes als Programmbezeichnungsinformationen zu verwenden. Außerdem können Programmbezeichnungsinformationen, obwohl sie in der oben beschriebenen Ausführungsform von dem Mikroprozessor 14 an den Programmlader geliefert wurden, von irgendeiner Schaltung geliefert werden.
  • Außerdem repräsentierten die Adressenzeiger in der oben beschriebenen Ausführungsform direkt die Speicheradressen der entsprechenden Mengen von Programmdaten. Jedoch ist ebenso ein indirektes Verfahren möglich, wobei die Speicheradressen der entsprechenden Mengen von Programmdaten durch Ausführen einer bestimmten arithmetischen Verarbeitung an den Adressenzeigern ermittelt werden können.
  • Wie oben beschrieben worden ist, sind das Verfahren und die Vorrichtung zum Programmdatenladen der vorliegenden Erfindung so aufgebaut, dass neben dem Speichern mehrerer Mengen von Programmdaten getrennt für jede Menge in bestimmten Speicherbereichen eines Programmspeichers Adressenzeiger, die die Speicheradressen jeder Menge von Programmdaten angeben, an vorgegebenen Speicheradressen in dem Programmspeicher gespeichert sind, wobei dann, wenn Programmbezeichnungsinformationen, die irgendeinem einzelnen Adressenzeiger entsprechen, angegeben werden, um die gewünschte Menge von Programmdaten durch die Programmbezeichnungsmittel zu bezeichnen, der Programmlader anhand der Programmbezeichnungsinformationen die entsprechenden Adressenzeiger aus dem Programmspeicher ausliest und die Speicherorte der Zielmengen von Programmdaten auf der Grundlage der Adressenzeiger berechnet werden. Somit erübrigt sich auch dann, wenn die Datenlänge und die Speicheradressen der in dem Programmspeicher gespeicherten Programmdaten verändert werden, eine Softwaremodifikation, wobei zudem die Ladeverarbeitung von Programmdaten sehr schnell und wirksam ausgeführt werden kann.
  • IN DER ZEICHNUNG GEZEIGTE BEZUGSZEICHEN
  • In den Figuren sind 10 ein ROM (Programmspeicher), 12 ein Programmlader, 14 ein Mikroprozessor, 16 ein Adressenbus, 18 ein Datenbus, 20 ein interner Bus, 22 eine Bus-Signalidentifizierungsleitung, 24 eine Schreib-Steuerleitung, FC0, FC1, ..., FCn funktionale Schaltungen, 30, 32, 34, 36 Register, 36 ein Adressenumschalter und 40 eine Steuereinheit.

Claims (8)

  1. Programmladeverfahren zum Laden gewünschter Programmdaten in eine oder mehrere funktionale Schaltungen, die bestimmte Operationen in Übereinstimmung mit gelieferten Programmdaten ausführen, wobei das Verfahren umfasst: einen Schritt, in dem mehrere Mengen von Programmdaten gehalten werden, indem jede Menge getrennt in bestimmten Speicherbereichen in einem Programmspeicher zusammen mit Halteadressenzeigern, die die Speicheradressen jeder Programmdatenmenge an vorgegebenen Speicheradressen in dem Programmspeicher angeben, gespeichert wird, einen Schritt, in dem Programmbezeichnungsinformationen, die irgendeinem einzelnen Zeiger unter den Adressenzeigern entsprechen, angegeben werden, um die gewünschte Programmdatenmenge zu bezeichnen, einen Schritt, in dem anhand der Programmbezeichnungsinformationen die ihnen entsprechenden Adressenzeiger ausgelesen werden und in dem die Speicheradressen der Programmdatenmengen, die durch die Programmbezeichnungsinformationen bezeichnet sind, in Übereinstimmung mit den ausgelesenen Adressenzeigern berechnet werden; und einen Schritt, in dem die Programmdatenmengen aus den berechneten Speicheradressen ausgelesen und an entsprechende funktionale Schaltungen übertragen werden.
  2. Programmladeverfahren nach Anspruch 1, in dem Gruppen von Programmdaten in jeder Menge an aufeinander folgenden Speicheradressen in den Speicherbereichen des Programmspeichers gespeichert werden.
  3. Programmladeverfahren nach Anspruch 1 oder Anspruch 2, in dem Übertragungsziel-Identifizierungsinformationen, die für die Identifizierung jener der funktionalen Schaltungen verwendet werden, die als Übertragungsziele dienen, in einem bestimmten ersten Abschnitt jeder Gruppe von Programmdaten enthalten sind.
  4. Programmladeverfahren nach einem vorhergehenden Anspruch, in dem Übertragungsprogrammlängen-Informationen, die für die Darstellung der Länge der Programmdaten verwendet werden, die an die als Übertragungsziele dienenden funktionalen Schaltungen übertragen werden sollen, in einem bestimmten zweiten Abschnitt jeder Gruppe von Programmdaten enthalten sind.
  5. Programmladeverfahren nach einem vorhergehenden Anspruch, in dem die Programmbezeichnungsinformationen Informationen sind, die die Speicheradressen der oben genannten, ihnen entsprechenden Zeigerinformationen darstellen.
  6. Programmladevorrichtung, die so betreibbar ist, dass sie gewünschte Programmdaten in eine oder mehrere funktionale Schaltungen lädt, die so betreibbar sind, dass sie bestimmte Operationen in Übereinstimmung mit gelieferten Programmdaten ausführen, wobei die Programmladevorrichtung einen Programmspeicher (10) besitzt, der so betreibbar ist, dass er mehrere Mengen von Programmdaten hält, indem sie in bestimmten Speicherbereichen gespeichert werden, und dass er an vorgegebenen Speicheradressen Adressenzeiger hält, die die Speicheradressen jeder Menge von Programmdaten angeben, wobei die Programmladevorrichtung Programmbezeichnungsmittel (14) besitzt, die so betreibbar sind, dass sie Programmbezeichnungsinformationen angeben, die irgendeinem einzelnen Zeiger unter den Adressenzeigern entsprechen, um eine gewünschte Programmdatenmenge zu bezeichnen, wobei die Programmladevorrichtung einen Programmlader (12) besitzt, der so betreibbar ist, dass er in Übereinstimmung mit den Programmbezeichnungsinformationen die ihnen entsprechenden Adressenzeiger ausliest und die Mengen von Programmdaten aus den Adressen ausliest, die durch die ausgelesenen Adressenzeiger angegeben werden und dass er die ausgelesene Menge von Programmdaten an entsprechende funktionale Schaltungen überträgt.
  7. Programmladevorrichtung nach Anspruch 6, in der Speicherzugriffszeit-Einstellungen, die die eingestellte Zugriffszeit für den Programmspeicher repräsentieren, an bestimmten Speicherplätzen in dem Programmspeicher gespeichert sind, wobei der Programmlader das Auslesen von Programmdaten aus dem oben genannten Programmspeicher gemäß einer im Voraus festgelegten Niedergeschwindigkeits-Zugriffszeit beginnt und das Lesen von Programmdaten aus dem Programmspeicher gemäß der Zugriffszeit ausführt, die durch die Speicherzugriffszeit-Einstellungen angegeben werden, nachdem er die oben genannten Zugriffszeitdaten ausgelesen hat.
  8. Programmladevorrichtung nach Anspruch 6 oder Anspruch 7, in der eine Gruppe von Programmdaten, die dem Programmlader entsprechen, in den Startabschnitten jeder Menge von Programmdaten, die durch die oben genannten Zeiger angegeben wird, gespeichert ist, wobei die Speicherzugriffszeit-Einstellungen in der Gruppe von Programmdaten enthalten sind.
DE69831295T 1997-10-03 1998-10-05 Verfahren und Vorrichtung zum Programmladen Expired - Lifetime DE69831295T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP28806097 1997-10-03
JP28806097A JP4060414B2 (ja) 1997-10-03 1997-10-03 プログラムロード装置

Publications (2)

Publication Number Publication Date
DE69831295D1 DE69831295D1 (de) 2005-09-29
DE69831295T2 true DE69831295T2 (de) 2006-06-08

Family

ID=17725324

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69831295T Expired - Lifetime DE69831295T2 (de) 1997-10-03 1998-10-05 Verfahren und Vorrichtung zum Programmladen

Country Status (4)

Country Link
US (1) US6128733A (de)
EP (1) EP0910014B1 (de)
JP (1) JP4060414B2 (de)
DE (1) DE69831295T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594710B1 (en) * 1999-05-26 2003-07-15 Nec Electronics, Inc. Apparatus and method for a random access peripheral unit
JP2001195261A (ja) 2000-01-13 2001-07-19 Nec Corp 外部メモリから内蔵メモリへのプログラム転送方法およびその転送方法を用いたマイクロコンピュータ
US6618800B1 (en) * 2000-01-18 2003-09-09 Systemonic Ag Procedure and processor arrangement for parallel data processing
US6922735B2 (en) 2000-04-03 2005-07-26 Texas Instruments Incorporated Management of co-processor information by integrating non-program information with program information
DE60139242D1 (de) 2001-04-11 2009-08-27 Texas Instruments Inc Verwaltung von Koprozessor-Information durch Integrierung von Nichtprogramm-Information mit Programm-Information
US7200743B1 (en) * 2002-09-30 2007-04-03 Mindspeed Technologies, Inc. Simultaneous initialization of a plurality of memory elements from among a plurality of initialization values
JP4128516B2 (ja) * 2002-11-18 2008-07-30 株式会社リコー 画像形成装置、プログラム更新方法
KR101079592B1 (ko) * 2006-11-03 2011-11-04 삼성전자주식회사 디스플레이장치 및 그 정보갱신방법
JP5305892B2 (ja) * 2008-12-25 2013-10-02 ラピスセミコンダクタ株式会社 信号処理装置及び信号処理システム
US9288102B2 (en) 2013-02-18 2016-03-15 Microsoft Technology Licensing, Llc Controlling devices using cloud services and device-agnostic pipe mechanisms
US10462073B2 (en) * 2015-01-06 2019-10-29 The Boeing Company Aircraft control domain communication framework
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5955524A (ja) * 1982-09-22 1984-03-30 Nippon Telegr & Teleph Corp <Ntt> 初期プログラムロ−ド方式
JPH06105927B2 (ja) * 1986-12-19 1994-12-21 株式会社日立製作所 デ−タ転送速度可変制御方式
US5497492A (en) * 1990-09-04 1996-03-05 Microsoft Corporation System and method for loading an operating system through use of a fire system
US5594903A (en) * 1991-02-26 1997-01-14 Lynx Real-Time Systems, Inc. Operating System architecture with reserved memory space resident program code identified in file system name space
SE515082C2 (sv) * 1993-03-19 2001-06-05 Icl Systems Ab Förfarande och arrangemang vid ett datorsystem
US5671413A (en) * 1994-10-31 1997-09-23 Intel Corporation Method and apparatus for providing basic input/output services in a computer
EP0790554A1 (de) * 1996-02-16 1997-08-20 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung zur Steuerung eines Firmwareladeprozesses
US5913058A (en) * 1997-09-30 1999-06-15 Compaq Computer Corp. System and method for using a real mode bios interface to read physical disk sectors after the operating system has loaded and before the operating system device drivers have loaded

Also Published As

Publication number Publication date
EP0910014A3 (de) 2000-09-13
EP0910014B1 (de) 2005-08-24
JPH11110222A (ja) 1999-04-23
DE69831295D1 (de) 2005-09-29
JP4060414B2 (ja) 2008-03-12
EP0910014A2 (de) 1999-04-21
US6128733A (en) 2000-10-03

Similar Documents

Publication Publication Date Title
DE2646296C3 (de) Elektronische assoziative Mehrrechner Schaltungsanordnung mit einem modularen Aufbau
DE2355993C3 (de) Programmierbare Datenverarbeitungsanlage
DE2819571C2 (de)
DE69831295T2 (de) Verfahren und Vorrichtung zum Programmladen
DE69936524T2 (de) Betriebsweise und schaltkreis eines speichers mit seriellem zugriff
DE2145120B2 (de) Digitales datenverarbeitungsgeraet
DE3338345C2 (de)
DE1900141C3 (de) HilfsSteuerwerk für eine Datenverarbeitungsanlage
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
DE2829668A1 (de) Kanaldatenpufferspeicher
DE3303488A1 (de) Digitales signalverarbeitungssystem
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2944419A1 (de) Digitalrechnersystem
DE60027357T2 (de) Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet
DE3225401A1 (de) Speicherzugriffs-steuereinrichtung in kombination mit einer zentralen verarbeitungseinheit
DE2935101C2 (de)
DE3011733A1 (de) Computer-terminal
DE10229887B4 (de) Programmierbare Steuervorrichtung
DE102004012516A1 (de) Computersystem zur elektronischen Datenverarbeitung
DE10213860A1 (de) Programmierbare Steuerung
DE3121046A1 (de) Arithmetik-logikeinheit mit bit-manipulation
DE2817536C2 (de)
DE3633898A1 (de) Einrichtung zur folgesteuerung eines aeusseren kreises, beispielsweise eines pipelineprozessors
DE3843638C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition