DE4227733A1 - Configurable cache memory for data processing of video information - receives data sub-divided into groups controlled in selection process - Google Patents

Configurable cache memory for data processing of video information - receives data sub-divided into groups controlled in selection process

Info

Publication number
DE4227733A1
DE4227733A1 DE4227733A DE4227733A DE4227733A1 DE 4227733 A1 DE4227733 A1 DE 4227733A1 DE 4227733 A DE4227733 A DE 4227733A DE 4227733 A DE4227733 A DE 4227733A DE 4227733 A1 DE4227733 A1 DE 4227733A1
Authority
DE
Germany
Prior art keywords
bits
data
memory
address
cache
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.)
Ceased
Application number
DE4227733A
Other languages
German (de)
Inventor
Herbert J Mieras
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.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
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 Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of DE4227733A1 publication Critical patent/DE4227733A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)

Abstract

The camera output is digitised and fed to a formatting arrangement followed by entry into a cache memory (71). The data are identified by addresses generated in four groups (XA, XB, YA, YB) by a control circuit (70). The signals are multiplexed (76) through to the address inputs (A1, A2) of an identification memory (78). A comparator (80) examines the two sets of bits and generates an output to the cache control stage (86). This allows the cache data RAM (90) to be accessed. ADVANTAGE - Provides flexibility in storage of processed video data.

Description

Die Erfindung bezieht sich auf einen Cachespeicher und auf die Anwendung eines derartigen Speichers zum Speichern von Daten in einem Bildverarbeitungssystem.The invention relates to a cache memory and on the application of such a memory for Storage of data in an image processing system.

Bei einem Bildverarbeitungssystem sind die Daten und Programmbefehle im allgemeinen in einem Speicher enthalten. Der Speicher kann beliebiger Bauart sein. So werden beispielsweise Festkörperschaltungen, Dis­ ketten, flexible Speicherplatten oder auch starre Spei­ cherplatten verwendet. Die Zeit zur Wiedergewinnung von Information aus dem Speicher hängt von der Bauart des Speichers ab und auch davon, wie viele Baueinheiten den Zugriff zum Speicher erlangen können. Die Wieder­ gewinnungszeit kann auch durch die räumliche Bezie­ hung des Speicherplatzes von neu aufzusuchenden Daten zu demjenigen von zuletzt aus dem Speicher zugegriffenen Daten beeinträchtigt werden.In an image processing system, the data is and program instructions generally in memory contain. The memory can be of any type. For example, solid state circuits, Dis chains, flexible storage disks or rigid spokes used. The time to recover from Information from the memory depends on the design of the Storage and also how many units can gain access to memory. The again acquisition time can also be determined by the spatial relationship storage space for new data to be searched to the one most recently accessed from memory Data will be affected.

Häufig hängt die Ausführungsgeschwindigkeit eines Programms in einem hohen Maße davon ab, wie lange die Zentraleinheit (CPU) braucht, um Daten und Programm­ befehle aus dem Speicher zu erhalten. Programme enthalten oft eine oder mehrere Subroutinen oder Gruppen von An­ weisungen, die öfters ausgeführt werden. In anderen Fällen macht das Programm wiederholt von bestimmten Datenfeldern im Sinne von Datenposten oder Dateneinheiten Gebrauch. Es ist daher erwünscht, häufig benutzte Befehle oder Anweisungen als auch Daten in einer solchen Weise zu speichern, daß die Zeit, die die Zentraleinheit zum Erlangen solcher Informationen benötigt, so klein wie möglich ist.Often the execution speed depends on one Program largely depends on how long the Central processing unit (CPU) needs data and program commands to get from memory. Programs included often one or more subroutines or groups of characters instructions that are carried out frequently. In other The program makes repetitions of certain cases Data fields in the sense of data items or data units Use. It is therefore desirable to use frequently used commands or instructions as well as data in such a way to save that the time it takes the CPU to Obtaining such information is required as small as is possible.

Eine übliche Technik zum schnelleren Zugriff auf häufig benutzte Information ist die Verwendung eines "Cachespeichers". Typischerweise ist die Zentraleinheit die einzige Baueinheit, die Zugriff zum Cachespeicher erlangen kann, und sie ist mit dem Cachespeicher in einer solchen Weise verbunden, daß der Zugriff er­ leichtert wird. Wenn die Zentraleinheit eine neue Task ausführt, ist zunächst die erste Anweisungs- oder Dateneinheit aus dem Hauptspeicher zu holen. Andere Anweisungen oder Daten in benachbarten Hauptspeicher­ plätzen sind möglicherweise zu dieser Zeit ebenfalls zu holen. Die geholten oder abgerufenen Anweisungen oder Daten werden in einem ersten Direktzugriffs­ speicher des Cachespeichers gespeichert. Der Cache­ speicher hat einen zweiten Direktzugriffsspeicher, der eine Kennzeichnung (tag) speichert, die anzeigt, ob eine Information von einer vorgegebenen Adresse des Hauptspeichers im Cachespeicher vorhanden ist.A common technique for faster access to frequently used information is the use of a "Cache memory". The central unit is typically  the only building block that has access to the cache can get, and it's in cache with connected in such a way that access he is lightened. When the central unit starts a new task executes, is first the first statement or Get data unit from main memory. Other Instructions or data in neighboring main memory places may also be around this time pick up. The instructions fetched or retrieved or data is in a first direct access cache memory saved. The cache memory has a second random access memory, the stores an identifier (tag) that indicates whether information from a given address of the Main memory is available in the cache memory.

Danach wird jedesmal, wenn die Zentraleinheit ein Datenfeld (Dateneinheit) oder eine neue Anweisung be­ nötigt, die entsprechende Adresse für den Hauptspeicher an den Cachespeicher gelegt. Die Adresse wird dazu ver­ wendet, um aus dem zweiten Direktzugriffsspeicher eine Kennzeichnung auszulesen und diese Kennzeichnung dahin­ gehend zu überprüfen, ob die angeforderte Information im Cachespeicher vorhanden ist. Ist diese Information im Cachespeicher vorhanden, wird der erste Direktzu­ griffsspeicher freigegeben, um die betreffende Infor­ mationseinheit der Zentraleinheit zuzuführen. Ist die angeforderte Information im Cachespeicher nicht vorhanden, wird die Adresse zum Hauptspeicher über­ tragen, um von dort die Informationseinheit zu holen. Sobald die neue Informationseinheit empfangen worden ist, wird sie im Cachespeicher gespeichert als auch zur Zentraleinheit übermittelt.After that, every time the central unit turns on Data field (data unit) or a new instruction be required the corresponding address for the main memory placed on the cache. The address is ver applies one from the second random access memory Read out the label and this label there going to check that the requested information is in the cache. Is this information in the cache, the first direct becomes handle memory released to the relevant information mation unit to the central unit. Is the requested information in the cache is not the address is transferred to the main memory to get the information unit from there. As soon as the new information unit has been received is, it is stored in the cache memory as well Central unit transmitted.

Nach der Erfindung ist ein konfigurierbarer Cache­ speicher zum Speichern von Daten einer Datenquelle vor­ gesehen, worin jedes Datenfeld oder jede Dateneinheit durch eine Adresse aus mehreren Bits identifiziert ist. Der Cachespeicher enthält eine Kennzeichnungsspeicher­ schaltung und eine Datenspeicherschaltung, die beide jeweils einen Adreßeingangskanal einhergehend mit einem Dateneingang und Datenausgang haben. Wenn eine Daten­ einheit, die auch als Datenposten bezeichnet werden kann, von einer Nutzungseinrichtung angefordert wird, erhält der Cachespeicher die Adresse der betreffenden Dateneinheit bzw. des betreffenden Datums und unterteilt die erhaltenen Adreßbits in wenigstens zwei Bitgruppen.According to the invention is a configurable cache memory for storing data from a data source seen where each data field or data unit is identified by a multi-bit address. The cache memory contains an identifier memory  circuit and a data storage circuit, both one address input channel each with one Have data input and data output. If a data unit, also known as a data item can be requested by a user facility, the cache memory receives the address of the concerned Data unit or the relevant date and divided the address bits obtained in at least two bit groups.

Ein Multiplexer verbindet wahlweise eine der Bit­ gruppen mit den Adreßeingangskanälen der beiden ge­ nannten Speicherschaltungen und verbindet wahlweise die andere der Bitgruppen mit dem Dateneingang der Kenn­ zeichnungsspeicherschaltung. Die Auswahl der beiden Bit­ gruppen ist reversibel. Bei einem bevorzugten Ausfüh­ rungsbeispiel der Erfindung werden die Adreßbits in vier Gruppen unterteilt, und der Multiplexer verbindet wahlweise zwei der Gruppen mit den Adreßeingangskanälen der beiden genannten Speicherschaltungen und verbindet wahlweise die übrigen beiden Bitgruppen mit dem Daten­ eingang der Kennzeichnungsspeicherschaltung. Die Aus­ wahl der verschiedenen Bitgruppen erfolgt in Abhängig­ keit von einen Steuersignal.A multiplexer optionally connects one of the bits groups with the address input channels of the two ge called memory circuits and optionally connects the other of the bit groups with the data input of the ident drawing memory circuit. The selection of the two bits groups is reversible. In a preferred embodiment Example of the invention, the address bits in divided into four groups and the multiplexer connects optionally two of the groups with the address input channels of the two memory circuits mentioned and connects optionally the remaining two bit groups with the data input of the label storage circuit. The out The selection of the different bit groups depends on speed of a control signal.

Ein Vergleicher empfängt die andere Adreßbit­ gruppe und eine gleiche Anzahl von Bits, die in Ab­ hängigkeit von einer Adressierung durch die andere Bit­ gruppe aus der Kennzeichnungsspeicherschaltung ausge­ lesen sind. Die beiden Sätze Bits werden miteinander verglichen, und der Vergleicher liefert ein Signal, das anzeigt, ob die beiden Sätze Bits identisch mit­ einander sind. Eine Steuerung spricht auf das Signal des Vergleichers dadurch an, daß Daten aus der Daten­ speicherschaltung ausgelesen werden, wenn das Signal eine Übereinstimmung zwischen den Bits anzeigt, oder daß Daten von der Datenquelle gewonnen werden, wenn die Sätze Bits nicht miteinander übereinstimmen. Die mit Hilfe der Steuerung gewonnenen Daten werden der Nutzungseinrichtung zur Verfügung gestellt.A comparator receives the other address bit group and an equal number of bits, which in Ab depending on addressing by the other bit group out of the label storage circuit are reading. The two sets of bits are used together compared and the comparator provides a signal that indicates whether the two sets of bits are identical with are each other. A controller responds to the signal of the comparator in that data from the data memory circuit can be read out when the signal indicates a match between the bits, or that data is obtained from the data source if the sets of bits do not match. The with the help of the controller, the data obtained  Usage facility provided.

Wenn das Signal anzeigt, daß die zum Vergleich herangezogenen Sätze von Bits nicht miteinander über­ einstimmen, werden bei dem bevorzugten Ausführungs­ beispiel die von der Datenquelle erhaltenen Daten ebenfalls in der Datenspeicherschaltung gespeichert. In diesem Fall wird die andere Adreßbitgruppe in der Kennzeichnungsspeicherschaltung bei einem Platz ge­ speichert, der durch die eine Adreßbitgruppe adressiert wird.If the signal indicates that for comparison used sets of bits do not cross each other agree, will be in the preferred embodiment for example, the data obtained from the data source also stored in the data storage circuit. In this case, the other address bit group in the Tag storage circuit at one place stores which addresses by the one address bit group becomes.

Nach der Erfindung wird somit ein Cachespeicher geschaffen, bei dem die Adreßbits, die als Cachespeicher­ adresse und die als Cachespeicherdaten ausgewählt werden, in Abhängigkeit von einem Steuersignal zu­ sammengestellt werden.According to the invention, a cache is thus created in which the address bits, which act as caches address and selected as cache data become dependent on a control signal be put together.

Nach der Erfindung wird der geschaffene Cache­ speicher vorzugsweise in einem Bildverarbeitungssystem angewendet, worin er zum Speichern eines Teils zu verarbeitender Bilddaten dient.According to the invention, the cache created preferably store in an image processing system applied, where it is used to save a part processing image data.

Nach einer vorteilhaften Weiterbildung der Erfin­ dung kann der geschaffene Cachespeicher so konfiguriert werden, daß er unterschiedlich gestaltete Teile oder Abschnitte des Bildes speichern kann. After an advantageous further training of the Erfin The cache created can be configured in this way be that he has differently designed parts or Can save sections of the image.  

Nachstehend wird die Erfindung an Hand von Zeich­ nungen beispielshalber erläutert. Es zeigt:The invention based on drawing for explanations. It shows:

Fig. 1 ein Blockschaltbild eines Videobild­ verarbeitungssystems nach der Erfindung, Fig. 1 is a block diagram of a video image processing system according to the invention,

Fig. 2 eine Konfiguration eines Cachespeichers zur Speicherung von Abschnitten des Bildes mit einer ersten geometrischen Form, Fig. 2 shows a configuration of a cache memory for storing portions of the image having a first geometric shape,

Fig. 3 ein Blockschaltbild der Cachespeicher­ schaltung, und Fig. 3 is a block diagram of the cache circuit, and

Fig. 4 und 5 andere Konfigurationen des Cache­ speichers zum Speichern von Abschnitten des Bildes mit verschiedenen geometrischen Formen. FIGS. 4 and 5, other configurations of the cache memory for storing portions of the image with different geometric shapes.

Ein in Fig. 1 als Blockschaltbild dargestelltes Videobildverarbeitungssystem 10 erhält ein Bildsignal von einer herkömmlichen Rasterabtastvideokamera 12, die zeilenweise Bilddaten bereitstellt. Das Kamera­ signal gelangt zu einem Analog/Digital-Umsetzer (A/D) 14, der das Signal in eine Folge digitaler Bildelemente, sogenannte Pixel, umsetzt, wobei die Grauskala- oder Treppenluminanz jedes Pixels durch eine Mehrbitdigital­ zahl dargestellt ist. Der Analog/Digital-Umsetzer 14 wird getaktet durch ein Signal von einer Speichersteue­ rung 16, und zwar in einer solchen Weise, daß beispiels­ weise für jede Zeile von 512 Horizontalabtastzeilen der Kamera 512 Pixel erzeugt werden. Die Speichersteuerung 16 liefert auch ein Horizontal- und Vertikalsynchronsignal (Sync) an die Kamera 12.A video image processing system 10 shown as a block diagram in FIG. 1 receives an image signal from a conventional raster scanning video camera 12 which provides image data line by line. The camera signal arrives at an analog / digital converter (A / D) 14 , which converts the signal into a sequence of digital picture elements, so-called pixels, the gray-scale or staircase luminance of each pixel being represented by a multi-bit digital number. The analog-to-digital converter 14 is clocked by a signal from a memory controller 16 , in such a way that, for example, 512 pixels are generated for each line of 512 horizontal scanning lines of the camera. The memory controller 16 also provides a horizontal and vertical sync signal (sync) to the camera 12 .

Die Mehrbitpixel des Analog/Digital-Umsetzers 14 gelangen auf einen parallelen Videobus 18. Zwei Doppel­ anschluß- oder Doppelkanal-Direktzugriffsspeicher (RAM) haben Anschlüsse oder Kanäle, die mit dem Videobus 18 verbunden sind, und sie arbeiten als Bild- oder Rahmen­ puffer (Frame-Puffer) 24 und 26 zum Zwischenspeichern oder Halten von Bilddaten. Jeder der Rahmenpuffer 24 und 26 hat eine hinreichende Anzahl Speicherplätze zum Speichern eines Videovollbildes oder Videobildrahmens in der Form einer Anordnung von 512×512 Pixel. Eine Videosignalgeneratorschaltung 20 ist mit dem paralle­ len Videobus 18 verbunden und setzt die Folge vom Bus erhaltener digitaler Pixel in ein herkömmliches analo­ ges Videosignal um, das als Bild auf einem Monitor 22 dargestellt wird.The multi-bit pixels of the analog / digital converter 14 arrive on a parallel video bus 18 . Two double port or dual channel random access memories (RAM) have ports or channels connected to the video bus 18 and they work as picture or frame buffers (frame buffers) 24 and 26 for buffering or holding picture data. Each of the frame buffers 24 and 26 has a sufficient number of storage spaces for storing a video frame or video frame in the form of an array of 512 × 512 pixels. A video signal generator circuit 20 is connected to the parallel video bus 18 and converts the sequence of digital pixels received from the bus into a conventional analog video signal which is displayed as an image on a monitor 22 .

Ein Graphikspeicher 28, bei dem es sich ebenfalls um einen Doppelanschluß- oder Doppelkanal-RAM handelt, ist mit seinem einen Anschluß oder Kanal an die Video­ signalgeneratorschaltung 20 angeschlossen. Der Graphik­ speicher 28 speichert ein Videobild, das alphanumeri­ sche Zeichen und graphische Symbole zur Darstellung auf dem Monitor 22 enthält. Diese Zeichen und Symbole werden zum Einrichten oder Initialisieren des Verarbei­ tungssystems 10 für die Bildanalyse und zur Darstellung der Ergebnisse der Analyse verwendet. So werden auf dem Monitor 22 beispielsweise symbolartige Bilder, auch "Ikonen" genannt, zur Darbietung eines Menüs von Funk­ tionen dargestellt, aus denen der Anwender mit Hilfe eines Lichtstifts 30 eine Auswahl treffen kann. Die Videosignalgeneratorschaltung 20 überlagert das Bild vom Graphikspeicher 28 einem Bild von der Kamera 12 oder einem Vollbild- oder Rahmenpuffer (Frame-Puffer).A graphics memory 28 , which is also a double port or dual channel RAM, is connected with its one port or channel to the video signal generator circuit 20 . The graphics memory 28 stores a video image that contains alphanumeric characters and graphic symbols for display on the monitor 22 . These characters and symbols are used to set up or initialize the processing system 10 for image analysis and to present the results of the analysis. So on the monitor 22, for example, symbol-like images, also called "icons", are presented to present a menu of functions from which the user can make a selection with the aid of a light pen 30 . The video signal generator circuit 20 overlays the image from the graphics memory 28 with an image from the camera 12 or a frame or frame buffer.

Die Lese- und Schreiboperationen der Rahmenpuffer 24, 26 und des Graphikspeichers 28 werden teilweise durch die Speichersteuerung 16 gesteuert und geführt. Speicherzugriffsteuersignale werden durch diese Steue­ rung 16 über Leitungen 51 an diese Speichereinrich­ tungen gelegt. Während der Bildzugriff- und Darstel­ lungsoperationen erzeugt die Speichersteuerung 16 Adressen, die parallel über Leitungen 50 und über einen Zwei-auf-Eins-Adreßmultiplexer (MUX) 52 auf einen gemeinsamen parallelen Videoadreßbus 53 gegeben werden. Die Adreßeingänge der Rahmenpuffer 24 und 26 und des Graphikspeichers 28 sind mit dem Videoadreßbus 53 verbunden. Jedes Pixel, das in einer dieser Speicher­ einrichtungen gespeichert ist, wird mit einer Digital­ zahl adressiert, die eine Gruppe von Bits aufweist, welche eine horizontale Zeile in der Bildanordnung, in der sich das Pixel befindet, angeben, und eine weitere Gruppe von Bits aufweist, welche eine verti­ kale Spalte der Bildanordnung angeben.The read and write operations of frame buffers 24 , 26 and graphics memory 28 are controlled and managed in part by memory controller 16 . Memory access control signals are applied to these memory devices by this control 16 via lines 51 . During the image access and display operations, the memory controller 16 generates addresses which are given in parallel over lines 50 and over a two-to-one address multiplexer (MUX) 52 to a common parallel video address bus 53 . The address inputs of frame buffers 24 and 26 and graphics memory 28 are connected to video address bus 53 . Each pixel that is stored in one of these memory devices is addressed with a digital number that has a group of bits that indicate a horizontal line in the image arrangement in which the pixel is located, and a further group of bits , which indicate a vertical column of the image arrangement.

Ein anderer Datenanschluß jedes Rahmenpuffers der Doppelkanal-Rahmenpuffer 24 und 26 ist jeweils mit einem separaten Speicherdatenbus 32 bzw. 34 verbunden. Die Speicherdatenbusse 32 und 34 sind jeweils über separa­ te Sätze von Tristate-Datenpuffern 36 bzw. 38 mit einem parallelen gemeinsamen Datenbus 41 verbunden. Ein zweiter Datenkanal des Graphikspeichers 28 ist über einen weiteren Satz von Tristate-Datenpuffern 40 mit dem gemeinsamen Datenbus 41 verbunden. Jeder der Tristate- Puffer 36, 38 und 40 wird individuell durch Signale an einem gemeinsamen Steuerbus 43 freigegeben oder aktiviert. Das System 10 enthält auch einen gemeinsamen Adreßbus 42, der mit einem anderen Satz oder einer anderen Gruppe von Eingängen des Adreßmultiplexers 52 verbunden ist.Another data connection of each frame buffer of the double channel frame buffers 24 and 26 is connected to a separate memory data bus 32 and 34 , respectively. The memory data buses 32 and 34 are each connected to a parallel common data bus 41 via separate sets of tristate data buffers 36 and 38, respectively. A second data channel of the graphics memory 28 is connected to the common data bus 41 via a further set of tristate data buffers 40 . Each of the tristate buffers 36 , 38 and 40 is individually enabled or activated by signals on a common control bus 43 . System 10 also includes a common address bus 42 that is connected to another set or group of inputs of address multiplexer 52 .

Ein Mikroprozessor 44 ist mit den drei gemeinsamen Bussen 41, 42 und 43 verbunden und führt ein Programm aus, das die Operation des Verarbeitungssystems 10 zum Erfassen und Analysieren von Videobildern, die von der Kamera 12 aufgenommen werden, steuert. Das Programm für den Mikroprozessor 44 ist in einem Festwertspeicher (ROM) 48 abgelegt, der ebenfalls mit den drei gemeinsamen Bussen 41, 42 und 43 verbunden ist. Ein Direktzugriffs­ speicher (RAM) 46 liefert Speicherplätze für Daten, die vom Mikroprozessor 44 während der Ausführung des Pro­ gramms verwendet werden, und für die Ergebnisse der Bildanalyse. Eine Arbitrationsschaltung 49 steuert den Zugriff zu den gemeinsamen Bussen 41, 42 und 43 in herkömmlicher Weise.A microprocessor 44 is connected to the three common buses 41 , 42 and 43 and executes a program that controls the operation of the processing system 10 to capture and analyze video images captured by the camera 12 . The program for the microprocessor 44 is stored in a read-only memory (ROM) 48 , which is also connected to the three common buses 41 , 42 and 43 . A random access memory (RAM) 46 provides storage locations for data used by the microprocessor 44 during the execution of the program and for the results of the image analysis. An arbitration circuit 49 controls access to the common buses 41 , 42 and 43 in a conventional manner.

Wenn Bilddaten von der Kamera 12 zugegriffen oder erfaßt werden sollen, gibt die Speichersteuerung 16 Steuersignale ab, mittels derer der erste Rahmenpuf­ fer 24 in eine Betriebsart zum Speichern von Daten gebracht wird, die über den mit dem Videobus 18 ver­ bundenen Kanal empfangen werden. Die Bilddaten werden von der Kamera 12 über den Analog/Digital-Umsetzer 14 in den Rahmenpuffer 24 getaktet. Während des Bild­ zugriffprozesses wählt der Adreßmultiplexer 52 das Adreßsignal an den Leitungen 50 von der Speichersteue­ rung 60 zum Anlegen an den ersten Rahmenpuffer 24 aus. Während die Bilddaten durch den Analog/Digital-Umsetzer 14 getaktet werden, werden die Adressen zum Speichern der Pixel inkrementiert. Die Speicherung 16 erwirkt in ähnlicher Weise den Zugriff zu den Rahmenpuffern 24 und 26 und zu dem Graphikspeicher 28, wenn Bilddaten zur Darstellung auf dem Monitor 22 ausgelesen werden sollen. Bei dieser Betriebsart werden die Bilddaten vom ersten Kanal eines ausgewählten Rahmenpuffers 24 oder 26 über den Videobus 18 der Videosignalgenerator­ schaltung 20 zugeführt.When image data are to be accessed or captured by the camera 12 , the memory controller 16 outputs control signals by means of which the first frame buffer 24 is brought into an operating mode for storing data which are received via the channel connected to the video bus 18 . The image data are clocked into the frame buffer 24 by the camera 12 via the analog / digital converter 14 . During the image access process, the address multiplexer 52 selects the address signal on the lines 50 from the memory controller 60 for application to the first frame buffer 24 . As the image data is clocked by the analog to digital converter 14 , the addresses for storing the pixels are incremented. The storage 16 similarly provides access to the frame buffers 24 and 26 and to the graphics memory 28 if image data are to be read out for display on the monitor 22 . In this mode, the image data from the first channel of a selected frame buffer 24 or 26 are supplied to the video signal generator circuit 20 via the video bus 18 .

Zu anderen Zeiten erzeugt der Mikroprozessor 44 Adressen zum Auslesen der Bilddaten zwecks Verarbei­ tung. Wenn dies der Fall ist, befiehlt die Speicher­ steuerung 16 dem Adreßmultiplexer 52, den gemeinsamen Adreßbus 42 mit den Rahmenpuffern 24 und 26 zu verbin­ den. Die Daten werden über den zweiten Kanal des aus­ gewählten Rahmenpuffers auf den zugeordneten Speicher­ datenbus 32 oder 34 ausgelesen. Entweder verarbeitet der Mikroprozessor 44 die Bilddaten, oder er befiehlt einem Pipeline-Eingangsmultiplexer 54, den Speicher­ datenbus 32 vom ersten Rahmenpuffer 24 mit dem Eingang einer morphologischen Bildverarbeitungspipeline 56 zu verbinden.At other times, the microprocessor 44 generates addresses for reading out the image data for processing. If this is the case, the memory controller 16 commands the address multiplexer 52 to connect the common address bus 42 to the frame buffers 24 and 26 . The data are read out via the second channel of the selected frame buffer onto the assigned memory data bus 32 or 34 . Either the microprocessor 44 processes the image data or it commands a pipeline input multiplexer 54 to connect the memory data bus 32 from the first frame buffer 24 to the input of a morphological image processing pipeline 56 .

Die morphologische Bildverarbeitungspipeline 56 ist derjenigen ähnlich, die in dem US-Patent Nr. 50 46 190 beschrieben ist. Die Pipeline 56 empfängt Daten vom Mikroprozessor 44, die die Transformation definieren, welche am Bild vorgenommen werden soll. Eine morphologische Transformation beinhaltet die Änderung jedes Pixels auf der Grundlage seines nume­ rischen Wertes und der Werte der benachbarten Pixel. Da jedes Pixel des transformierten Bildes am Ausgang der Pipeline 56 zur Verfügung steht, ist der zweite Rahmenpuffer 26 in der Lage, dieses Pixel zu spei­ chern. Nachdem die Transformation abgeschlossen ist, kann das transformierte Bild vom Mikroprozessor 44 aus dem zweiten Rahmenpuffer 26 zur weiteren Analyse oder Darstellung auf dem Monitor 22 ausgelesen werden.The morphological image processing pipeline 56 is similar to that described in U.S. Patent No. 50 46 190. Pipeline 56 receives data from microprocessor 44 defining the transformation to be performed on the image. A morphological transformation involves changing each pixel based on its numerical value and the values of the neighboring pixels. Since each pixel of the transformed image is available at the exit of the pipeline 56 , the second frame buffer 26 is able to store this pixel. After the transformation is complete, the transformed image can be read out by the microprocessor 44 from the second frame buffer 26 for further analysis or display on the monitor 22 .

Als Alternative werden die Bildpixel im ersten Rahmenpuffer 24 von einer Bildverwerfmaschine 60 ge­ lesen, die das Originalbild geometrisch neu anordnet, bevor es der morphologischen Pipeline 56 zugeführt wird. Die Verwerfmaschine 60 nimmt die Neuanordnung des Bildes dadurch vor, daß die Pixel aus dem ersten Rahmenpuffer 24 in einer anderen Reihenfolge als der Rasterabtastreihenfolge, in der sie gespeichert worden sind, ausgelesen werden. So kann das Bild beispiels­ weise um 90° dadurch gedreht werden, daß die Pixel spaltenweise anstatt zeilenweise aus der Anordnung ausgelesen werden. Andererseits kann man eine zwei­ dimensionale lineare Translation des Bildes vornehmen, um einen Gegenstand im Bild bezüglich einer Bezugs- oder Datumposition vor der Analyse zu justieren. Die Verwerfmaschine 60 hat Zugriff auf die Pixel vom ersten Rahmenpuffer 24 über Datenpuffer 36 und den gemeinsamen Datenbus 41 und führt sie über den Ein­ gangsmultiplexer 54 der morphologischen Pipeline 56 zu.As an alternative, the image pixels in the first frame buffer 24 are read by an image rejection machine 60 which geometrically rearranges the original image before it is fed to the morphological pipeline 56 . The warping engine 60 rearranges the image by reading the pixels from the first frame buffer 24 in a different order than the raster scan order in which they were stored. For example, the image can be rotated by 90 ° in that the pixels are read out of the arrangement in columns instead of in rows. On the other hand, a two-dimensional linear translation of the image can be carried out to adjust an object in the image with respect to a reference or date position before the analysis. The rejection machine 60 has access to the pixels from the first frame buffer 24 via data buffer 36 and the common data bus 41 and feeds them to the morphological pipeline 56 via the input multiplexer 54 .

Die Verwerfmaschine 60 hat einen direkten Abbil­ dungscachespeicher, der der morphologischen Pipeline 56 jedesmal, wenn ein Pixel benötigt wird, die Pixel schneller zuführt als durch Auslesen der Pixel aus dem Rahmenpuffer 24. Wie bereits erwähnt, transfor­ miert die Pipeline jedes Pixel aufgrund der Werte von Nachbarpixel. Daher muß bei der Verarbeitung ein gegebenes Pixel wiederholt nicht nur zu seiner Trans­ formation zugegriffen werden, sondern auch zur Trans­ formation seiner Nachbarpixel. Obgleich die Pixel aus den Rahmenpuffern in der Rasterabtastreihenfolge, in der sie gespeichert worden sind, schnell ausgelesen werden können, verlangsamt sich der Ausleseprozeß, wenn eine andere Auslesereihenfolge verwendet wird, beispielsweise ein spaltenweises Auslesen. Weiterhin sind die Rahmenpuffer so ausgelegt, daß sie mehrere Pixel in der gleichen Zeile zu einer Zeit leicht aus­ lesen können. Da aber die Pipeline 56 nur ein Pixel zu einer Zeit empfangen kann, kann sie die Fähigkeit der gleichzeitigen Mehrpixelauslesung nicht als Vorteil nutzen. Die Verwerfmaschine 60 kann die Pixel in Gruppen erfassen, und sie in dem kleinen Cachespeicher speichern, aus dem die einzelnen Pixel schneller zu­ gegriffen werden können als aus den Rahmenpuffern. Somit kann man die Verwerfmaschine noch zur Zufuhr von Pixeln zu der morphologischen Pipeline 56 verwen­ den, obgleich das Bild geometrisch nicht neu angeord­ net werden soll. Die Arbeitsweise der Verwerfmaschine 60 wird nachstehend im einzelnen beschrieben.The reject engine 60 has a direct image cache that supplies the morphological pipeline 56 with the pixels faster each time a pixel is needed than by reading the pixels from the frame buffer 24 . As previously mentioned, the pipeline transforms each pixel based on the values of neighboring pixels. Therefore, during processing, a given pixel must be repeatedly accessed not only for its transformation, but also for the transformation of its neighboring pixels. Although the pixels can be quickly read from the frame buffers in the raster scan order in which they are stored, the readout process will slow down if a different readout order is used, for example a column-by-column readout. Furthermore, the frame buffers are designed so that they can easily read out several pixels in the same line at a time. However, since pipeline 56 can only receive one pixel at a time, it cannot take advantage of the ability to read multiple pixels simultaneously. The reject engine 60 can capture the pixels in groups and store them in the small cache, from which the individual pixels can be accessed faster than from the frame buffers. Thus, the warping machine can still be used to supply pixels to the morphological pipeline 56 , although the image should not be geometrically rearranged. The operation of the warping machine 60 will be described in detail below.

Zum Verständnis des Aufbaus und der Arbeitsweise der Verwerfmaschine 60 ist es von Vorteil zu wissen, wie die Pixel in den Rahmenpuffern adressiert werden. Jede Pixeladresse hat beispielsweise eine Länge von 20 Bits. Obgleich nur 18 Bits benötigt werden, um jedes Pixel in einem 512×512 Bild zu adressieren, bezeichnen die zusätzlichen Adreßbits welche der aus den Rahmenpuffern und dem Graphikspeicher bestehenden Speichereinrichtungen das gewünschte Pixel enthält. Die niedrigstwertigen 10 Bits der Adresse geben einen auf die Horizontale bezogenen Platz im Bild an, d. h. eine Spalte der Bildanordnung, und sie werden auf die X-Koordinate bezogen. Die höchstwertigen 10 Bits der Adresse geben einen auf die Vertikale im Bild bezogenen Platz an, d. h. eine Zeile in der Anordnung, und sie werden auf die Y-Koordinate bezogen. Der Cachespeicher hat eine Anzahl Speicherplätze, die ein Bruchteil der Anzahl der Speicherplätze in den Rahmen­ puffern 24 und 26 ist. Somit kann der Cachespeicher eine Unteranordnung der Pixel eines Bildes speichern, das in einem gegebenen Rahmenpuffer enthalten ist. Ein neuartiges Merkmal des hier betrachteten Cachespeichers ist die Fähigkeit, die Dimensionen der Unteranordnung zu definieren und damit die Gestalt des darin gespei­ cherten Bildteils. Zur Vereinfachung der nachstehenden Beschreibung wird der Cachespeicher so betrachtet, als befände sich in jedem seiner Speicherplätze ein einziges Pixel. Typischerweise enthält jeder Speicher­ platz alle 32 Pixel, die gleichzeitig aus einem Rah­ menpuffer gelesen werden können.In order to understand the structure and operation of the warping machine 60 , it is advantageous to know how the pixels in the frame buffers are addressed. For example, each pixel address has a length of 20 bits. Although only 18 bits are needed to address each pixel in a 512 × 512 image, the additional address bits indicate which of the memory devices consisting of the frame buffers and the graphics memory contains the desired pixel. The least significant 10 bits of the address indicate a horizontal position in the image, ie a column of the image arrangement, and they are related to the X coordinate. The most significant 10 bits of the address indicate a space related to the vertical in the image, ie a line in the arrangement, and they are related to the Y coordinate. The cache memory has a number of memory locations that are a fraction of the number of memory locations in the buffers 24 and 26 . Thus, the cache memory can store a sub-array of the pixels of an image contained in a given frame buffer. A novel feature of the cache memory considered here is the ability to define the dimensions of the sub-assembly and thus the shape of the image part stored therein. To simplify the description below, the cache is considered to have a single pixel in each of its memory locations. Typically, each memory location contains all 32 pixels that can be read simultaneously from a frame buffer.

Das Bild ist gespeichert in jedem Rahmenpuffer 24 und 26 als eine quadratische, zweidimensionale Anordnung, in der die Anzahl der Pixel in jeder Zeile gleich der Anzahl der Zeilen ist, beispielsweise 512. Diese geo­ metrische Beziehung ist jedoch keine absolute Anforde­ rung, um die Erfindung zu praktizieren. Bei dem in den Zeichnungen dargestellten Ausführungsbeispiel kann der Cachespeicher so konfiguriert werden, daß er ganze Zeilen von Pixel, ganze Spalten von Pixel oder eine quadratische Unteranordnung von Pixeln speichert. Die Unteranordnung irgendeiner dieser Gestalten oder Formen kann man als einen rechteckigen Speicherbereich betrachten, der durch das Bild geschoben wird, um verschiedene Gruppen von Pixel zu speichern, die inner­ halb seiner Grenzen fallen. Einen horizontal konfi­ gurierten Cachespeicher kann man in den Bilddaten beispielsweise dadurch nach unten "verschieben", daß die gegenwärtig gespeicherten Pixel einer Zeile durch die Pixel der nächsten Zeile ersetzt werden. In ähn­ licher Weise kann man den Cachespeicher nach oben bewegen. Wie es noch beschrieben wird, müssen die Pixel in dieser Konfiguration des Cachespeichers nicht notwendigerweise zu einer Zeit durch eine Gesamt­ zeile ersetzt werden. Das Ersetzen kann pixelweise erfolgen, wenn jedes Pixel von einer neuen Zeile be­ nötigt wird.The image is stored in each frame buffer 24 and 26 as a square, two-dimensional arrangement in which the number of pixels in each line is equal to the number of lines, for example 512. However, this geometric relationship is not an absolute requirement for the invention to practice. In the embodiment shown in the drawings, the cache memory can be configured to store entire rows of pixels, entire columns of pixels, or a square sub-array of pixels. The sub-arrangement of any of these shapes or shapes can be viewed as a rectangular storage area that is pushed through the image to store various groups of pixels that fall within its boundaries. A horizontally configured cache can be "shifted" down in the image data, for example, by replacing the currently stored pixels of one line with the pixels of the next line. In a similar manner, the cache can be moved up. As will be described, the pixels in this cache configuration do not necessarily have to be replaced by an entire line at a time. The replacement can be done pixel by pixel if every pixel is needed by a new line.

Zur Vereinfachung der Erläuterung der Arbeits­ weise des Cachespeichers soll anstelle eines vollstän­ digen 512×512 Pixelbildes das in Fig. 2 dargestell­ te 9×9 Pixelbild betrachtet werden. Der Cachespeicher soll neun Speicherplätze haben und als 3×3 Pixel­ unteranordnung konfiguriert sein, wie es durch das ge­ punktete Quadrat (Rechteck) in der oben linken Bild­ ecke angedeutet ist. Diese Unteranordnung kann in Horizontalrichtung des Bildes in drei einander nicht überlappende Positionen gebracht werden. Der X-Koor­ dinatenteil der Pixeladresse kann somit in zwei Segmente von Bits unterteilt werden, die mit XA und XB bezeichnet sind, wobei das XA-Segment die Hori­ zontalposition des Pixels innerhalb des Cachespeichers identifiziert, und das XB-Segment die sich nicht über­ lappende horizontale Unteranordnungsposition angibt. Gleichermaßen kann der Y-Pixelkoordinatenteil der Pixeladresse in zwei Segmente von Bits unterteilt werden, die mit YA und YB bezeichnet sind. Im Er­ gebnis wird somit die 20-Bit-Pixeladresse in vier Segmente von Bits XA, XB, YA und YB heruntergebrochen. Das beispielsweise mit 62 bezeichnete Pixel in dem als Beispiel dienenden Bild hat für die Segmente XA, XB, YA und YB die Werte 0, 2, 2 und 1. Die Verwendung dieser Segmentierung der Adresse wird auch augen­ scheinlich bei der Beschreibung der Verwerfmaschine 60 (image warp engine). To simplify the explanation of the way of working of the cache memory, the 9 × 9 pixel image shown in FIG. 2 should be considered instead of a complete 512 × 512 pixel image. The cache memory should have nine storage locations and be configured as a 3 × 3 pixel sub-arrangement, as indicated by the dotted square (rectangle) in the top left corner of the image. This subassembly can be placed in three non-overlapping positions in the horizontal direction of the image. The X coordinate portion of the pixel address can thus be divided into two segments of bits labeled XA and XB, the XA segment identifying the horizontal position of the pixel within the cache, and the XB segment not overlapping indicates horizontal sub-array position. Similarly, the Y pixel coordinate portion of the pixel address can be divided into two segments of bits labeled YA and YB. As a result, the 20-bit pixel address is broken down into four segments of bits XA, XB, YA and YB. The pixel designated 62 , for example, in the example image has the values 0, 2, 2 and 1 for the segments XA, XB, YA and YB. The use of this segmentation of the address is also apparently used in the description of the rejection machine 60 ( image warp engine).

Die Einzelheiten der Verwerfmaschine 60 sind in Fig. 3 dargestellt. Das Herz der Maschine ist eine Bildneu- oder Bildwiederabtastfolgesteuerung (IRS = Image Resampling Sequencer) 70, beispielsweise eine Folgesteuerung Modell TMC2302, hergestellt von der TRW Corp. Die Bildwiedergabeabtastfolgesteuerung empfängt Befehle vom Mikroprozessor 44, der die Bild­ wiedergabeabtastfolgesteuerung zur geometrischen Änderung des Bildes konfiguriert, beispielsweise zur Drehung des Bildes um 90°. Um dies zu tun, erzeugt die Bildwiedergabeabtastfolgesteuerung 70 Adressen zum spaltenweisen Lesen der Pixel des gespeicherten Bildes, d. h. zum aufeinanderfolgenden Lesen der Pixel in einer Spalte, dann in der nächsten Spalte usw. Da die Pixel des Bildes zeilenweise gespeichert worden sind, hat das zeilenweise Auslesen die Wirkung, daß das Bild um 90° gedreht wird. Ob die Pixel von oben nach unten oder von unten nach oben und ob die am weitesten links befindliche oder am weitesten rechts befindliche Spalte zuerst gelesen wird, bestimmt die Richtung der Drehung. Die Geometrie des Bildes kann man in andere Gestalten oder Formen ändern, wie es für einen Fachmann, der Erfahrung in der Verwendung von Bildwiederabtastfolgesteuerungen hat, augenschein­ lich ist, beispielsweise Fachmänner, die spezielle Effekte in der Fernsehtechnik erzeugen.The details of the warping machine 60 are shown in FIG. 3. The heart of the machine is an image resampling sequencer (IRS) 70 , such as a model TMC2302 sequencer manufactured by TRW Corp. The image scan sequence controller receives commands from the microprocessor 44 , which configures the image scan sequence controller to geometrically change the image, for example, to rotate the image 90 °. To do this, the image scan sequencer 70 generates addresses for reading the pixels of the stored image column by column, that is, reading the pixels in a column, then the next column, etc. Since the pixels of the image have been stored row by row, this has reading out row by row the effect that the picture is rotated by 90 °. The direction of rotation determines whether the pixels are read from top to bottom or from bottom to top and whether the leftmost or rightmost column is read first. The geometry of the image can be changed to other shapes or forms, as would be apparent to one skilled in the art who has experience using image resampling controls, such as those skilled in the art who create special effects in television technology.

Jede Adresse wird von der Bildwiederabtastfolge­ steuerung 70 zu einem Cachespeicher 71 weitergegeben, der in Fig. 3 durch gestrichelte Linien umrahmt ist. Vier Sätze oder Gruppen von Leitungen, die die Adreß­ segmente XA, XB, YA und YB übertragen, sind mit einem ersten Satz oder einer ersten Gruppe von Staging- oder Zwischenspeicherlatches 72 verbunden, die das Anlegen einer gegebenen Adresse an einen Satz oder eine Gruppe Adreßpuffer 74 verzögern. Die vier Adreß­ segmente XA, XB, YA und YB werden am Ausgang der Zwischenspeicherlatches 72 auf einen einzigen Parallel­ bus vereint. Die Adreßpuffer 74 übertragen wahlweise die verzögerte Pixeladresse zum gemeinsamen Adreßbus 72.Each address is passed on by the image resampling control 70 to a cache memory 71 , which is framed in FIG. 3 by dashed lines. Four sets or groups of lines that transmit the address segments XA, XB, YA and YB are connected to a first set or group of staging or latch latches 72 which allow the application of a given address to a set or group of address buffers 74 delay. The four address segments XA, XB, YA and YB are combined at the output of the latch latches 72 on a single parallel bus. The address buffers 74 selectively transfer the delayed pixel address to the common address bus 72 .

Die Adresse von der Bildwiederabtastfolgesteuerung 70 wird auch an den Eingang eines Adreßformatmultiplexers 76 geleitet. Der Multiplexer 76 ist durch Steuersignale vom Mikroprozessor 44 so konfiguriert, daß er die vier Eingangsleitungen für die Adreßsegmente XA, XB, YA und YB mit Ausgangsleitungen A1, A2, D1 und D2 ver­ bindet. Das Muster der Verbindung hängt von der geome­ trischen Konfiguration des Cachespeichers 71 ab. Die Konfiguration wird durchgeführt in einer Einricht- oder Initialisierbetriebsart unter Verwendung des Licht­ stiftes 30, mit dessen Hilfe geeignete Ikonen ausge­ wählt werden können; die auf dem Monitor 22 dargestellt sind, wie es in dem US-Patent Nr. 49 16 640 beschrieben ist. Für die quadratische (rechteckförmige) Cache­ speicherkonfiguration, die in Fig. 2 dargestellt ist, liefert der Adreßformatmultiplexer 76 das Adreßsegment an die Ausgangsleitungen A1, das Adreßsegment YA an die Ausgangsleitungen A2, das Adreßsegment XB an die Ausgangsleitungen D1 und das Adreßsegment YB an die Ausgangsleitungen D2. Die Bits an den Leitungen A1 und A2 enthalten die Adresse für den Cachespeicher 71, und die Bits an den Leitungen D1 und D2 stellen im allge­ meinen das dar, das man allgemein als "Cachekennzeichnung" (cache tag) oder "Cachekennzeichnungsdaten" (cache tag data) bezeichnet.The address from the image resampling controller 70 is also passed to the input of an address format multiplexer 76 . The multiplexer 76 is configured by control signals from the microprocessor 44 so that it connects the four input lines for the address segments XA, XB, YA and YB with output lines A 1 , A 2 , D 1 and D 2 ver. The pattern of the connection depends on the geometric configuration of the cache 71 . The configuration is carried out in a set-up or initialization mode using the light pen 30 , with the aid of which suitable icons can be selected; shown on monitor 22 as described in U.S. Patent No. 4,916,640. For the square (rectangular) cache configuration shown in Fig. 2, the address format multiplexer 76 provides the address segment to the output lines A 1 , the address segment YA to the output lines A 2 , the address segment XB to the output lines D 1, and the address segment YB to the output lines D 2 . The bits on lines A 1 and A 2 contain the address for cache memory 71 , and the bits on lines D 1 and D 2 generally represent what is commonly referred to as "cache tag" or "cache tag data""(cache tag data).

Die Cacheadreßleitungen A1 und A2 und die Cache­ datenleitungen D1 und D2 sind mit dem Adreßkanal bzw. Datenkanal eines Cachekennzeichnungs-RAM 78 verbunden. Die Mehrbitadreßleitungen A1 und A2 tragen ein Signal, das die im Cachekennzeichnungs-RAM 78 zuzugreifenden Speicherplätze auswählt. Wenn sich der RAM 78 in der Schreibbetriebsart befindet, werden die Daten, die an den Mehrbitdatenleitungen D1 und D2 anliegen, mit einem hohen Logikpegelbit an einer Dateneingangsleitung 79 im RAM gespeichert. In der Lesebetriebsart werden die Inhalte des adressierten Speicherplatzes in Parallelform vom Cachekennzeichnungs-RAM 78 durch einen Datenkanal an zwei Sätze oder Gruppen von Ausgangsbitleitungen D1′ und D2′ und eine Einzelbitleitung 81 gesendet. Der Cachekennzeichnungs-RAM 78 kann ein Zweianschluß- oder Zweikanalbauelement sein, oder ein Tristate-Puffer kann verwendet werden, um den Einzeldatenkanal des RAM von den Ausgangsleitungen D1 und D2 des Adreßformatmulti­ plexers 76 zu trennen, mit Ausnahme für den Fall, daß Daten gespeichert werden sollen.The cache address lines A 1 and A 2 and the cache data lines D 1 and D 2 are connected to the address channel or data channel of a cache identifier RAM 78 . The multi-bit address lines A 1 and A 2 carry a signal that selects the memory locations to be accessed in the cache tag RAM 78 . When the RAM 78 is in the write mode, the data present on the multi-bit data lines D 1 and D 2 is stored in RAM with a high logic level bit on a data input line 79 . In the read mode, the contents of the addressed storage space are sent in parallel from the cache tag RAM 78 through a data channel to two sets or groups of output bit lines D 1 'and D 2 ' and a single bit line 81 . The cache tag RAM 78 may be a two port or two channel device, or a tri-state buffer may be used to separate the RAM single data channel from the output lines D 1 and D 2 of the address format multiplexer 76 , except in the event of data should be saved.

Die Inhalte des Cachekennzeichnungs-RAM 78 werden zu einem Satz oder einer Gruppe von Eingängen eines Mehrbitvergleichers 80 geschickt, der mit anderen Ein­ gängen an die Datenleitungen D1 und D2 sowie an eine Leitung 82 mit konstantem hohen Logikpegel angeschlossen ist. Der Vergleicher 80 stellt fest, ob die Bitmuster an den beiden Sätzen oder Gruppen von Eingängen identisch sind und liefert eine Anzeige über diese Feststellung an eine Ausgangsleitung 84. Diese Feststellung wird einer Cachespeichersteuerung 86 zugeführt, die die Arbeitsweise des Cachespeichers 71 dirigiert und führt, wie es noch beschrieben wird. Die Cachespeichersteuerung 86 ist über eine Reihe Steuerleitungen mit vielen der Bau­ einheiten des Cachespeichers 71 verbunden, wie es aus Fig. 3 hervorgeht.The contents of the cache tag RAM 78 are sent to a set or group of inputs of a multi-bit comparator 80 which is connected to the data lines D 1 and D 2 and to a line 82 with a constant high logic level with other inputs. The comparator 80 determines whether the bit patterns on the two sets or groups of inputs are identical and provides an indication of this determination to an output line 84 . This determination is fed to a cache controller 86 , which directs and performs the operation of the cache 71 , as will be described. The cache memory controller 86 is connected via a series of control lines to many of the construction units of the cache memory 71 , as can be seen in FIG. 3.

Die Cacheadreßleitungen A1 und A2 sind auch an einen zweiten Satz oder eine zweite Gruppe von Staging- oder Zwischenspeicherlatches 88 angeschlossen, die eine Verzögerung vorsehen zwischen der Erzeugung der Adresse durch die Bildwiederabtastfolgesteuerung 70 und der Ankunftszeit dieser Adresse bei den Adreßein­ gängen eines Cachedaten-RAM 90. Diese Verzögerung trägt für die Verarbeitungszeit Sorge, die erforderlich ist, bevor durch den Vergleicher eine Anzeige bereitgestellt wird, ob das gewünschte Pixel im Daten-RAM 90 des Cachespeichers 71 vorhanden ist. Ist das gewünschte Pixel vorhanden, wird es aus dem Cachedaten-RAM 90 ausgelesen und über Ausgangsleitungen 92 und über den Multiplexer 54 der morphologischen Pipeline 56 zugeführt. Der Datenanschluß oder Datenkanal des Cachedaten-RAM 90 kann auch über einen Satz oder eine Gruppe Datenpuffer 94 aufgrund eines Steuersignals von der Cachespeichersteuerung 86 mit dem gemeinsamen Datenbus 41 verbunden werden.The cache address lines A 1 and A 2 are also connected to a second set or group of staging or latch latches 88 which provide a delay between the generation of the address by the image resampling controller 70 and the arrival time of this address at the address inputs of a cache data. RAM 90 . This delay provides for the processing time required before the comparator provides an indication of whether the desired pixel is in the data RAM 90 of the cache memory 71 . If the desired pixel is present, it is read out of the cache data RAM 90 and fed to the morphological pipeline 56 via output lines 92 and via the multiplexer 54 . The data port or data channel of the cache data RAM 90 can also be connected to the common data bus 41 via a set or group of data buffers 94 based on a control signal from the cache memory controller 86 .

Da der Cachespeicher 71 lediglich einen Teil der Bilddaten speichert, die im ersten Rahmenpuffer 24 ge­ speichert sind, ist ein Mechanismus erforderlich, um zu bestimmen, ob ein gegebenes Pixel, das von der Bild­ wiederabtastfolgesteuerung 70 gesucht wird, im Daten- RAM 90 gespeichert ist. Dies ist die Funktion des Cache­ kennzeichnungssystems. Unter Bezugnahme auf die Kon­ figuration des Cachespeichers, wie er in Fig. 2 dar­ gestellt ist, liefert der Adreßformatmultiplexer 76, wenn die Bildwiederabtastfolgesteuerung 70 eine Adresse erzeugt, die Bits im Adreßsegment XA an die Ausgangsleitungen A1, im Segment YA an die Ausgangs­ leitungen A2, im Segment XB an die Ausgangsleitungen D1 und im Segment YB an die Ausgangsleitungen D2. Dieses Verbindungsmuster ist definiert durch Daten, die der Adreßformatmultiplexer 76 vorher vom Mikro­ prozessor 44 empfangen und gespeichert hat, und zwar aufgrund des Einricht- oder Initialisierungsprozesses. Der Adreßformatmultiplexer 76 wählt aus, welche Gruppe von Pixeladreßbits als Cacheadressen benutzt werden und welche als Cachedaten benutzt werden. Die Mehrbits an den Cacheadreßleitungen A1 und A2 greifen zu auf einen spezifischen Platz im Cachekennzeichnungs-RAM 78, der Daten enthält, die identifizieren, ob das ge­ wünschte Pixel im Cachedaten-RAM 90 gespeichert ist.Since the cache memory 71 stores only a portion of the image data stored in the first frame buffer 24 , a mechanism is required to determine whether a given pixel searched for by the image resampling sequencer 70 is stored in the data RAM 90 . This is the function of the cache marking system. Referring to the configuration of the cache memory as shown in FIG. 2, the address format multiplexer 76 , when the frame repeater 70 generates an address, provides bits in the address segment XA to the output lines A 1 , in the segment YA to the output lines A 2 , in segment XB to output lines D 1 and in segment YB to output lines D 2 . This connection pattern is defined by data that the address format multiplexer 76 previously received and stored by the microprocessor 44 , due to the setup or initialization process. The address format multiplexer 76 selects which group of pixel address bits are used as cache addresses and which are used as cache data. The multiple bits on cache address lines A 1 and A 2 access a specific location in cache tag RAM 78 that contains data that identifies whether the desired pixel is stored in cache data RAM 90 .

Wenn ein neues Bild erfaßt und im ersten Rahmen­ puffer 24 gespeichert wird, wird der Cachekennzeich­ nungsspeicher 78 von der Cachespeichersteuerung 86 unter Ausgabe eines Löschsignals über eine Leitung 96 gelöscht. Der Cachekennzeichnungsspeicher spricht auf dieses Signal dadurch an, daß er in all seinen Speicherplätzen Nullen speichert. Wenn die Bildwieder­ abtastfolgesteuerung 70 eine Pixeladresse zum erstenmal danach erzeugt, werden alle Nullen aus dem Cachekenn­ zeichnungsspeicher 78 auf die Leitungen 81, D1′ und D2′ gelesen. Der Vergleicher 80 spricht anfangs auf ein Vergleichsfreigabesignal von der Cachespeichersteuerung 86 dadurch an, daß er einen Logikpegel an der Leitung 81 mit dem konstanten hohen Logikpegel an der Leitung 82 vergleicht. Ein hoher Logikwert an diesen beiden Lei­ tungen zeigt an, daß Kennzeichnungsdaten zuvor in dem adressierten Platz des Cachekennzeichnungs-RAM 78 ge­ speichert worden sind. Bei dem betrachteten Beispiel sind zum gegenwärtigen Zeitpunkt die Logikpegel nicht einander gleich, da an der Leitung 81 ein niedriger oder Nullpegel anliegt, der anzeigt, daß der Kennzeich­ nungsspeicherplatz gelöscht worden ist und daß das gewünschte Pixel im Cachedaten-RAM 90 nicht vorhanden ist.When a new image is captured and stored in the first frame buffer 24 , the cache identifier 78 is cleared by the cache controller 86 to issue a clear signal on line 96 . The cache tag memory responds to this signal by storing zeros in all of its memory locations. When the re-scan sequence controller 70 generates a pixel address for the first time thereafter, all zeros are read from the cache label memory 78 onto lines 81 , D 1 'and D 2 '. The comparator 80 initially responds to a compare enable signal from the cache controller 86 by comparing a logic level on line 81 with the constant high logic level on line 82 . A high logic value on these two lines indicates that tag data has previously been stored in the addressed location of the cache tag RAM 78 . In the example considered, the logic levels are not the same at the present time because line 81 has a low or zero level indicating that the tag memory location has been cleared and that the desired pixel is not present in cache data RAM 90 .

Unter Bezugnahme auf Fig. 1 und 3 sei erläutert, daß die Cachespeichersteuerung 86 auf diese Anzeige dadurch anspricht, daß dem Cachekennzeichnungs-RAM 78 befohlen wird, die Bits an den Datenleitungen 79, D1 und D2 in den adressierten Platz zu schreiben. Zu dieser Zeit fordert die Cachespeichersteuerung die Arbitrations­ schaltung 49 auch zum Zugriff zu dem Satz oder der Gruppe gemeinsamer Busse 41, 42 und 43 auf. Wenn dieser Zugriff erteilt ist, wird die Adresse des gewünschten Pixel durch den Adreßpuffer 74 von den Zwischenspeicher­ latches 72, wo es gespeichert worden ist, dem gemeinsamen Adreßbus 42 zugeführt. Dem Adreßmultiplexer 52 wird befohlen, den gemeinsamen Adreßbus 42 mit dem Video­ adreßbus 53 zu verbinden. Dem Datenpuffer 36 für den ersten Rahmenpuffer 24 wird ebenfalls befohlen, seinen Speicherdatenbus 32 mit dem gemeinsamen Datenbus 41 zu verbinden. Sobald diese Verbindung vollständig ist, wird das gewünschte Pixel aus dem ersten Rahmenpuffer 24 wiedergewonnen und der Bildverwerfmaschine 60 zugeführt.Referring to Figures 1 and 3, the cache controller 86 responds to this display by instructing the cache ID RAM 78 to write the bits on the data lines 79 , D 1 and D 2 into the addressed location. At this time, the cache controller also requests the arbitration circuit 49 to access the set or group of common buses 41 , 42 and 43 . When this access is granted, the address of the desired pixel is fed through address buffer 74 from latch latches 72 , where it has been stored, to common address bus 42 . The address multiplexer 52 is commanded to connect the common address bus 42 to the video address bus 53 . The data buffer 36 for the first frame buffer 24 is also ordered to connect its memory data bus 32 to the common data bus 41 . As soon as this connection is complete, the desired pixel is retrieved from the first frame buffer 24 and fed to the image rejection machine 60 .

Das wiedergewonnene Pixel wird durch den Cache­ datenpuffer 94 geleitet, von dem aus es gleichzeitig an den Cachedaten-RAM 90 und an die morphologische Bildprozessorpipeline 56 über den Multiplexer 54 gelegt wird. Die Cachespeichersteuerung 86 befiehlt dann dem Cachedaten-RAM 90 das wiedergewonnene Pixel in dem Platz zu speichern, der durch die Adreßsegmente A1 und A2 bezeichnet ist. Dies vervollständigt den Prozeß be­ züglich der ersten Adresse von der Bildwiederabtast­ folgesteuerung 70.The recovered pixel is passed through the cache data buffer 94 , from which it is simultaneously applied to the cache data RAM 90 and to the morphological image processor pipeline 56 via the multiplexer 54 . The cache controller 86 then commands the cache data RAM 90 to store the recovered pixel in the space designated by the address segments A 1 and A 2 . This completes the process of the first address from the image rescan sequencer 70 .

Möglicherweise wird die Bildwiederabtastfolge­ steuerung 70 eines der Pixel, die zuvor im Cachespeicher 71 gespeichert worden sind, wieder aufsuchen wollen. Wenn dies auftritt, segmentiert der Adreßformatmulti­ plexer 76 die Adresse von der Bildwiederabtastfolge­ steuerung auf die Leitungen A1, A2, D1 und D2, wie es zuvor beschrieben worden ist. Die Bits an den Cacheadreß­ leitungen A1 und A2 nehmen Zugriff auf den geeigneten Speicherplatz im Cachekennzeichnungs-RAM 78, aus dem Daten auf die Leitungen 81, D1 und D2 gelesen werden. Diesmal hat das Bit an der Leitung 81 einen hohen logi­ schen Pegel, und zwar aufgrund der vorangegangenen Spei­ cherung des Bit von der Leitung 79 im adressierten Platz. Wenn jetzt der Vergleicher 80 die Bits an den Leitungen 81 und 82 miteinander vergleicht, haben beide Bits den­ selben hohen logischen Pegel. Diese Übereinstimmung veranlaßt, daß der Vergleicher fortfährt, mit dem Vergleich der Bits an den Leitungen D1 mit denjenigen an den Leitungen D1′ und mit dem Vergleich der Bits an den Leitungen D2 mit denjenigen an den Leitungen D2′. Eine Übereinstimmung all dieser Bits zeigt an, daß das gewünschte Pixel im Cachespeicher 71 gespeichert ist. Das Auftreten einer vollständigen Datenüberein­ stimmung wird vom Vergleicher 80 der Cachespeichersteue­ rung 86 signalisiert. Die Steuerung spricht darauf an, daß sie dem Cachedaten-RAM 90 befiehlt, das Pixel, das bei der von den Adreßsegmenten A1 und A2 spezifizierten Adresse gespeichert ist, auszulesen. Der vollständige Vergleichsprozeß dauert einige Taktzyklen, während wel­ cher Zeit die Bildwiederabtastfolgesteuerung 70 andere Pixeladressen erzeugt. Die Zwischenspeicherlatches 88 sehen daher eine solche Verzögerung vor, daß die ent­ sprechenden Adreßsegmente für die Eingänge des Cachedaten- RAM 90 bei der Vollendung des Vergleichs verfügbar sind. Diese Segmente werden in den Zwischenspeicherlatches ersetzt, wenn beim Ausgang des Adreßmultiplexers 76 ein anderes Paar erzeugt wird.The image resampling controller 70 may want to revisit one of the pixels that were previously stored in the cache memory 71 . When this occurs, the address format multiplexer 76 segments the address from the re-scan control onto lines A 1 , A 2 , D 1 and D 2 as previously described. The bits on cache address lines A 1 and A 2 access the appropriate memory location in cache tag RAM 78 from which data on lines 81 , D 1 and D 2 are read. This time the bit on line 81 has a high logic level, due to the previous storage of the bit from line 79 in the addressed space. Now when comparator 80 compares the bits on lines 81 and 82 , both bits have the same high logic level. This match causes the comparator to continue comparing the bits on lines D 1 to those on lines D 1 'and comparing the bits on lines D 2 to those on lines D 2 '. A match of all of these bits indicates that the desired pixel is stored in cache 71 . The occurrence of a complete data match is signaled by the comparator 80 of the cache control 86 . The controller responds by commanding the cache data RAM 90 to read out the pixel stored at the address specified by the address segments A 1 and A 2 . The full comparison process takes a few clock cycles, during which time the resampling controller 70 generates other pixel addresses. The latch latches 88 therefore provide such a delay that the corresponding address segments for the inputs of the cache data RAM 90 are available upon completion of the comparison. These segments are replaced in the latch latches when another pair is generated at the address multiplexer 76 output.

Ist das gewünschte Pixel im Cachedaten-RAM 90 nicht gespeichert, stellt der Vergleicher 80 eine Übereinstim­ mung der Daten an den Leitungen D1 und D2 mit denjenigen an den Leitungen D1′ und D2′ nicht fest. Wenn dies der Fall ist, muß die Bildverwerfmaschine 60 das gewünschte Pixel aus dem ersten Rahmenpuffer 24 in einer Art und Weise zugreifen und erfassen, die der oben beschriebenen beim Zugriff auf ein neues Bild ähnlich ist. Bei der Beendigung des vollen Vergleichsprozesses ist die von der Bildwiederabtaststeuerung 70 gegenwärtig erzeugte Adresse nicht dieselbe Adresse, die die Nichtüberein­ stimmung erzeugt hat. Tatsächlich wurden einige Adressen während der für den Vergleich benötigten Zeit erzeugt. Diese Adressen sind allerdings alle in der ersten Gruppe oder dem ersten Satz von Zwischenspeicherlatches 72 ge­ speichert. Die Cachespeichersteuerung 86 spricht auf die Nichtübereinstimmungsanzeige dadurch an, daß sie die entsprechende Adresse aus der ersten Gruppe von Zwischenspeicherlatches 72 auswählt und an den gemein­ samen Adreßbus 42 legt, um das gewünschte Pixel von dem ersten Rahmenpuffer 24 zu erhalten. Wenn dieses neue Pixel vom Cachespeicher 71 empfangen wird, wird es in den geeigneten Platz des Cachedaten-RAM 90 geschrie­ ben und ersetzt bei diesem Platz irgendein vorangegangenes Pixel. Zur gleichen Zeit wird der entsprechende Platz in dem Cachekennzeichnungs-RAM 78 mit neuen Daten an den Leitungen D1 und D2 für das neue Pixel aktualisiert. Es sei noch bemerkt, daß jede von der Bildwiederabtast­ folgesteuerung 70 erzeugte Adresse die älteste Adresse in den Zwischenspeicherlatches 72 ersetzt.If the desired pixel is not stored in the cache data RAM 90 , the comparator 80 does not determine whether the data on lines D 1 and D 2 matches the lines D 1 'and D 2 '. If so, the image warping machine 60 must access and capture the desired pixel from the first frame buffer 24 in a manner similar to that described above when accessing a new image. Upon completion of the full comparison process, the address currently generated by the resampling controller 70 is not the same address that generated the mismatch. In fact, some addresses were generated during the time required for the comparison. However, these addresses are all stored in the first group or set of cache latches 72 . The cache controller 86 responds to the mismatch indicator by selecting the appropriate address from the first group of latch latches 72 and placing it on the common address bus 42 to obtain the desired pixel from the first frame buffer 24 . When this new pixel is received by cache memory 71 , it is written into the appropriate location of cache data RAM 90 and replaces any previous pixel at that location. At the same time, the corresponding location in cache tag RAM 78 is updated with new data on lines D 1 and D 2 for the new pixel. It should be noted that each address generated by the resampling sequencer 70 replaces the oldest address in the latch latches 72 .

Ein Hauptmerkmal des hier betrachteten Cache­ speichers 71 ist die Fähigkeit, die Geometrie des Speicherbereiches für die Unteranordnung von Pixel in dem Bild zu konfigurieren. Fig. 4 veranschaulicht wie ein solcher Cachespeicher 71 mit neun Speicherplätzen eingerichtet oder initialisiert werden kann, und zwar mit dem Ziel, anstelle der quadratischen (rechteckigen) 3×3 Anordnung nach Fig. 2 eine Spalte von Pixel zu speichern. Zum Konfigurieren des Cachespeichers in dieser Art und Weise sendet der Mikroprozessor 44 Steuer­ signale an den Adreßformatmultiplexer 76, die diesen Multiplexer veranlassen, die folgenden Verbindungen herzustellen: Eingang YA auf Ausgang A1, Eingang YB auf Ausgang A2, Eingang XA auf Ausgang D1 und Eingang XB auf Ausgang D2. In dieser Konfiguration wählen die Pixeladreßsegmente YA und YB den Speicherplatz des Cachespeichers aus, und die Pixeladreßsegmente XA und XB bestimmen die Position der spaltenförmigen Unter­ anordnung auf dem Bild. Das bedeutet, daß die Segmente YA und YB die Cacheadresse bilden und daß die Segmente XA und XB die Cachekennzeichnungsdaten ausmachen. Die Verarbeitung der Adressen durch den Cachespeicher 71 ist dieselbe wie bei der zuvor beschriebenen quadratischen (rechteckförmigen) Unteranordnung.A key feature of the cache 71 under consideration here is the ability to configure the geometry of the memory area for the sub-arrangement of pixels in the image. FIG. 4 illustrates how such a cache memory 71 can be set up or initialized with nine storage locations, with the aim of storing a column of pixels instead of the square (rectangular) 3 × 3 arrangement according to FIG. 2. To configure the cache memory in this manner, the microprocessor 44 sends control signals to the Adreßformatmultiplexer 76 that cause these multiplexers to produce the following compounds: input YA to output A 1, input YB on output A 2, input XA to output D 1 and input XB to output D 2 . In this configuration, the pixel address segments YA and YB select the memory location of the cache memory, and the pixel address segments XA and XB determine the position of the columnar sub-array on the image. This means that segments YA and YB form the cache address and segments XA and XB make up the cache tag data. The processing of the addresses by the cache memory 71 is the same as in the square (rectangular) sub-arrangement described above.

Abweichend davon kann man den Cachespeicher 71 so konfigurieren, daß er eine vollständige Horizontalzeile des Bildes speichert, wie es in Fig. 5 dargestellt ist. In diesem Fall erhält der Adreßformatmultiplexer 76 den Befehl, die folgenden Verbindungen vorzunehmen: Eingang XA auf Ausgang A1, Eingang XB auf Ausgang A2, Eingang YA auf Ausgang D1 und Eingang YB auf Ausgang D2. Bei dieser Konfiguration wählen die Pixeladreßsegmente XA und XB den Speicherplatz des Cachespeichers aus, und die Segmente YA und YB bestimmen die Position der horizontalen Unteranordnung längs der Vertikalen im Bild. Das heißt, daß die Segmente XA und XB die Cache­ adresse bilden, und die Segmente YA und YB machen die Cachekennzeichnungsdaten aus.Alternatively, cache 71 can be configured to store a complete horizontal line of the image, as shown in FIG. 5. In this case, the Adreßformatmultiplexer 76 receives the command to make the following compounds: input XA to output A 1, A 2 input to output XB, YA input to output D 1 and D input to output YB. 2 With this configuration, the pixel address segments XA and XB select the memory location of the cache memory, and the segments YA and YB determine the position of the horizontal subassembly along the vertical in the image. That is, segments XA and XB form the cache address, and segments YA and YB make up the cache tag data.

Wie bereits bemerkt, stellen Fig. 2, 4 und 5 ein vereinfachtes Bild und eine vereinfachte Cachespeicher­ initialisierung dar. In Wirklichkeit sind im Cache­ speicher 71 einige Spalten oder Zeilen anstelle nur einer einzigen Spalte oder Zeile gespeichert, wie es in Fig. 4 und 5 der Einfachheit halber veranschaulicht ist. Weiterhin kann man durch eine komplexere Verbindung spezifischer Bits der Pixeladresse mit den Sätzen oder Gruppen von Leitungen A1, A2, D1 und D2 andere geometri­ sche Formen für die Cachespeicherunteranordnung defi­ nieren.As noted previously, Figures 2, 4 and 5 illustrate a simplified image and cache initialization. In reality, cache 71 stores a few columns or rows rather than a single column or row, as shown in Figures 4 and 5 is illustrated for simplicity. Furthermore, other geometrical shapes for the cache subassembly can be defined by a more complex connection of specific bits of the pixel address to the sets or groups of lines A 1 , A 2 , D 1 and D 2 .

Claims (9)

1. Cachespeicher zum Speichern von Daten einer Daten­ quelle, worin jedes Datenfeld durch eine Adresse aus mehreren Bits identifiziert ist, enthaltend:
eine Einrichtung (70, XA, XB, YA, YB) zum Empfangen der Adresse und aufweisend mehrere Bitleiter (XA, XB, YA, YB), die in wenigstens eine erste Bitleitergruppe und eine zweite Bitleitergruppe unterteilt sind,
einen Kennzeichnungsspeicher (tag memory) (78) mit einem Adreßeingangskanal und einer Dateneingangs- und -ausgangseinrichtung,
einen Direktzugriffsspeicher (90) zum Speichern der Daten mit einem Adreßeingangskanal,
einen Multiplexer (76), der mit der Einrichtung zum Empfangen der Adresse verbunden ist, zum wahlweisen Ver­ binden eine der ersten und zweiten Bitleitergruppen mit dem Adreßeingangssignal des Kennzeichnungsspeichers und des Direktzugriffsspeichers und zum wahlweisen Verbinden der anderen der ersten und zweiten Bitleitergruppen mit der Dateneingangs- und -ausgangseinrichtung des Kenn­ zeichnungsspeichers in Abhängigkeit von einem Steuer­ signal,
eine Einrichtung (80) zum Vergleichen eines ersten Satzes Bits, die an der anderen der ersten und zweiten Bitleitergruppe anliegen, mit einem zweiten Satz Bits, die aus dem Kennzeichnungsspeicher gelesen sind, und zum Erzeugen eines Signals, das das Ergebnis des Ver­ gleiches anzeigt, und
eine Steuerung (86), die das Signal von der Einrich­ tung zum Vergleichen empfängt und darauf derart an­ spricht, daß Daten aus dem Direktzugriffsspeicher ausge­ lesen werden, wenn das Signal eine Übereinstimmung zwischen dem ersten und zweiten Satz Bits anzeigt, oder daß Daten aus der Datenquelle ausgelesen werden, wenn das Signal anzeigt, daß der erste Satz Bits mit dem zweiten Satz Bits nicht übereinstimmt.
1. A cache memory for storing data from a data source, wherein each data field is identified by a multi-bit address, comprising:
a device ( 70 , XA, XB, YA, YB) for receiving the address and comprising a plurality of bit conductors (XA, XB, YA, YB) which are subdivided into at least a first bit conductor group and a second bit conductor group,
a tag memory ( 78 ) with an address input channel and a data input and output device,
a random access memory ( 90 ) for storing the data with an address input channel,
a multiplexer ( 76 ) connected to the means for receiving the address for selectively connecting one of the first and second bit line groups to the address input signal of the identifier memory and the random access memory and for optionally connecting the other of the first and second bit line groups to the data input and output device of the identification memory as a function of a control signal,
means ( 80 ) for comparing a first set of bits applied to the other of the first and second bit line groups with a second set of bits read from the tag memory and generating a signal indicative of the result of the comparison, and
a controller ( 86 ) which receives the signal from the comparing device and is responsive to reading data from the random access memory when the signal indicates a match between the first and second sets of bits or data from the Data source are read out when the signal indicates that the first set of bits does not match the second set of bits.
2. Cachespeicher nach Anspruch 1, bei dem die Steuerung (86) veranlaßt, das die Daten von der Datenquelle im Direktzugriffsspeicher gespeichert werden und die Bits, die an der anderen der ersten und zweiten Bitleiter­ gruppen anliegen, im Kennzeichnungsspeicher gespeichert werden, wenn das Signal anzeigt, daß der erste und zweite Satz Bits nicht miteinander übereinstimmen.2. The cache memory of claim 1, wherein the controller ( 86 ) causes the data from the data source to be stored in the random access memory and the bits that are applied to the other of the first and second bit line groups are stored in the label memory when the signal indicates that the first and second sets of bits do not match. 3. Cachespeicher zum Speichern von Daten einer Daten­ quelle, worin jedes Datenfeld durch eine Adresse aus mehreren Bits identifiziert ist, enthaltend:
eine Einrichtung (44) zum Bereitstellen eines Konfigurationssteuersignals,
eine Einrichtung (70, XA, XB, YA, YB) zum Empfangen der Adresse eines Datenfeldes und aufweisend mehrere Bit­ leiter (XA, XB, YA, YB), die in vier Gruppen unterteilbar sind,
einen Kennzeichnungsspeicher (tag memory) (78) mit einem Adreßeingangskanal und einer Dateneingangs/Ausgangs­ einrichtung,
einen Direktzugriffsspeicher (90) zum Speichern von Daten und mit einem Adreßeingangskanal und einer Daten­ eingangs/Ausgangseinrichtung,
einen Multiplexer (76), der mit der Einrichtung (70) zum Empfangen der Adresse verbunden ist und auf die Ein­ richtung (44) zum Bereitstellen eines Konfigurationssteuer­ signals anspricht, zum wahlweisen Verbinden zwei der Bit­ leitergruppen mit einem Satz Ausgangsleitungen und zum wahlweisen Verbinden der anderen beiden Bitleitergruppen mit der Dateneingangs/Ausgangseinrichtung des Kennzeich­ nungsspeichers,
eine Einrichtung (A1, A2, 88) zum Verbinden des Satzes Ausgangsleitungen mit den Adreßeingangskanälen des Kennzeichnungsspeichers und des Direktzugriffsspeichers,
eine Einrichtung (80) zum Vergleichen eines ersten Satzes Bits, die an den anderen beiden der Bitleitergrup­ pen anliegen, mit einem zweiten Satz Bits, die aus dem Kennzeichnungsspeicher ausgelesen sind, und zum Erzeugen eines Signals, das das Ergebnis dieses Vergleiches anzeigt, und
eine Steuerung (86), die das Signal von der Ein­ richtung zum Vergleichen empfängt und darauf derart anspricht, daß Daten aus dem Direktzugriffsspeicher ausgelesen werden, wenn das Signal eine Übereinstimmung zwischen dem ersten und zweiten Satz Bits anzeigt, oder Daten aus der Datenquelle ausgelesen werden, wenn das Signal anzeigt, daß der erste Satz Bits und der zweite Satz Bits nicht miteinander übereinstimmen.
3. A cache memory for storing data from a data source, wherein each data field is identified by a multi-bit address, comprising:
means ( 44 ) for providing a configuration control signal,
a device ( 70 , XA, XB, YA, YB) for receiving the address of a data field and comprising a plurality of bit conductors (XA, XB, YA, YB) which can be divided into four groups,
a tag memory ( 78 ) with an address input channel and a data input / output device,
a random access memory ( 90 ) for storing data and having an address input channel and a data input / output device,
a multiplexer ( 76 ) connected to the device ( 70 ) for receiving the address and responsive to the device ( 44 ) for providing a configuration control signal, for selectively connecting two of the bit conductor groups to a set of output lines and for selectively connecting the other two bit conductor groups with the data input / output device of the identification memory,
means (A 1 , A 2 , 88 ) for connecting the set of output lines to the address input channels of the label memory and the random access memory,
means ( 80 ) for comparing a first set of bits applied to the other two of the bit line groups with a second set of bits read from the tag memory and generating a signal indicative of the result of this comparison and
a controller ( 86 ) which receives the signal from the comparing means and is responsive to reading data from the random access memory when the signal indicates a match between the first and second sets of bits or reading data from the data source when the signal indicates that the first set of bits and the second set of bits do not match.
4. Cachespeicher nach Anspruch 3, bei dem die Steuerung (86) auch veranlaßt, daß die Daten von der Datenquelle in dem Direktzugriffsspeicher gespeichert werden und die Bits, die an den anderen beiden der Bitleitergruppen anliegen, in dem Kennzeichnungsspeicher gespeichert werden, wenn das Signal anzeigt, daß der erste Satz Bits und der zweite Satz Bits nicht miteinander übereinstimmen.The cache of claim 3, wherein the controller ( 86 ) also causes the data from the data source to be stored in the random access memory and the bits applied to the other two of the bit line groups to be stored in the label memory when the signal indicates that the first set of bits and the second set of bits do not match. 5. Cachespeicher nach Anspruch 3 oder 4, bei dem die Einrichtung (A1, A2, 88) zum Verbinden einen Satz Zwischenspeicherlatches (88) enthält, die den Satz Ausgangsleitungen mit dem Adreßeingangskanal des Direkt­ zugriffsspeichers verbinden.5. A cache memory according to claim 3 or 4, wherein the means (A 1 , A 2 , 88 ) for connecting includes a set of latches ( 88 ) connecting the set of output lines to the address input channel of the random access memory. 6. Bildverarbeitungssystem mit einem Rahmenpuffer (Frame-Puffer), in dem ein aus einer Vielzahl Pixel bestehendes Bild gespeichert ist und jedes Pixel durch eine Adresse aus mehreren Bits identifiziert ist, und mit einer Pixelnutzungsschaltung, enthaltend:
einen Cachespeicher (71) zum Steuern der Übertra­ gung von Pixel von dem Rahmenpuffer (24) zu der Pixel­ nutzungsschaltung (20, 22), und ferner aufweisend:
eine Einrichtung (44) zum Bereitstellen eines Kon­ figurationssteuersignals,
einen Kennzeichnungsspeicher (tag memory) (78) mit einem Adreßeingangskanal und einer Dateneingangs- und -ausgangseinrichtung,
einen Direktzugriffsspeicher (90) zum Speichern von Pixel und mit einem Adreßeingangskanal und einer Dateneingangs- und -ausgangseinrichtung,
eine Einrichtung (70) zum Erzeugen von Adressen von Pixel, die durch die Pixelnutzungsschaltung ver­ arbeitet werden sollen und zum Anlegen jeder Adresse an mehrere Bitleiter, die in vier Gruppen unterteilt sind,
einen Multiplexer (76), der mit der Einrichtung zum Erzeugen von Adressen verbunden ist, zum wahlweisen Verbinden von zwei der Bitleitergruppen mit dem Adreß­ eingangssignal des Kennzeichnungsspeichers und des Direktzugriffsspeichers und zum wahlweisen Verbinden der anderen beiden der Bitleitergruppen mit der Daten­ eingangs- und -ausgangseinrichtung des Kennzeichnungs­ speichers, wobei das wahlweise Verbinden in Abhängig­ keit von der Einrichtung zum Bereitstellen eines Kon­ figurationssteuersignals geschieht,
eine Einrichtung (80) zum Vergleichen eines ersten Satzes Bits, die an den anderen beiden der Bitleiter­ gruppen anliegen, mit einem zweiten Satz Bits, die aus dem Kennzeichnungsspeicher ausgelesen sind, und zum Er­ zeugen eines Signals, das das Vergleichsergebnis an­ zeigt, und
eine Steuerung (86), die das Signal von der Ein­ richtung zum Vergleichen empfängt und veranlaßt, daß ein Pixel aus dem Direktzugriffsspeicher ausgelesen wird, wenn das Signal eine Übereinstimmung zwischen dem ersten Satz Bits und dem zweiten Satz Bits anzeigt, oder daß ein Pixel aus dem Rahmenpuffer gelesen wird, wenn das Signal anzeigt, daß der erste Satz Bits und der zweite Satz Bits nicht miteinander übereinstimmen.
6. An image processing system comprising a frame buffer, in which an image consisting of a plurality of pixels is stored and each pixel is identified by an address consisting of several bits, and with a pixel utilization circuit, comprising:
a cache memory ( 71 ) for controlling the transfer of pixels from the frame buffer ( 24 ) to the pixel usage circuit ( 20 , 22 ), and further comprising:
means ( 44 ) for providing a configuration control signal,
a tag memory ( 78 ) with an address input channel and a data input and output device,
a random access memory ( 90 ) for storing pixels and having an address input channel and a data input and output device,
means ( 70 ) for generating addresses of pixels to be processed by the pixel utilization circuit and for applying each address to a plurality of bit conductors divided into four groups,
a multiplexer ( 76 ) connected to the means for generating addresses for selectively connecting two of the bit line groups to the address input of the tag memory and the random access memory and for optionally connecting the other two of the bit line groups to the data input and output device the identification memory, the optional connection depending on the device for providing a configuration control signal,
means ( 80 ) for comparing a first set of bits which are present on the other two of the bit conductor groups with a second set of bits which have been read out from the identification memory and for generating a signal which indicates the comparison result, and
a controller ( 86 ) which receives the signal from the comparing means and causes a pixel to be read from the random access memory when the signal indicates a match between the first set of bits and the second set of bits, or that a pixel is off the frame buffer is read when the signal indicates that the first set of bits and the second set of bits do not match.
7. Bildverarbeitungssystem nach Anspruch 6, bei dem die Steuerung (86) auch veranlaßt, daß das Pixel vom Rahmenpuffer im Direktzugriffsspeicher gespeichert wird und daß Bits, die an den anderen beiden der Bit­ leitergruppen anliegen, im Kennzeichnungsspeicher ge­ speichert werden, wenn das Signal anzeigt, daß der erste Satz Bits und der zweite Satz Bits nicht mit­ einander übereinstimmen.7. The image processing system of claim 6, wherein the controller ( 86 ) also causes the pixel from the frame buffer to be stored in the random access memory and bits that are present on the other two of the bit groups to be stored in the label memory when the signal indicates that the first set of bits and the second set of bits do not match. 8. Datenverarbeitungssystem nach Anspruch 6 oder 7, ferner enthaltend einen Satz Zwischenspeicherlatches (88), die den Multiplexer mit dem Adreßeingangskanal des Direktzugriffsspeichers verbinden.The data processing system of claim 6 or 7, further comprising a set of latches ( 88 ) connecting the multiplexer to the address input channel of the random access memory. 9. Datenverarbeitungssystem nach einem der Ansprüche 6 bis 8, ferner enthaltend einen Satz Zwischenspeicher­ latches (72), die ansprechend auf die Steuerung (86) die Einrichtung (70) zum Erzeugen von Adressen von Pixel mit dem Rahmenpuffer (24) verbinden, wenn das Signal anzeigt, daß der erste Satz Bits und der zweite Satz Bits nicht miteinander übereinstimmen.The data processing system of one of claims 6 to 8, further comprising a set of latches ( 72 ) which, in response to the controller ( 86 ), connect the means ( 70 ) for generating addresses of pixels to the frame buffer ( 24 ) when that Signal indicates that the first set of bits and the second set of bits do not match.
DE4227733A 1991-08-30 1992-08-21 Configurable cache memory for data processing of video information - receives data sub-divided into groups controlled in selection process Ceased DE4227733A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US75241691A 1991-08-30 1991-08-30

Publications (1)

Publication Number Publication Date
DE4227733A1 true DE4227733A1 (en) 1993-03-04

Family

ID=25026234

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4227733A Ceased DE4227733A1 (en) 1991-08-30 1992-08-21 Configurable cache memory for data processing of video information - receives data sub-divided into groups controlled in selection process

Country Status (4)

Country Link
US (1) US5602984A (en)
JP (1) JPH05233447A (en)
DE (1) DE4227733A1 (en)
FR (1) FR2680890B1 (en)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131140A (en) * 1995-12-22 2000-10-10 Cypress Semiconductor Corp. Integrated cache memory with system control logic and adaptation of RAM bus to a cache pinout
KR100188012B1 (en) * 1996-01-12 1999-06-01 윤종용 Cache memory
US5761720A (en) * 1996-03-15 1998-06-02 Rendition, Inc. Pixel engine pipeline processor data caching mechanism
US6031550A (en) * 1997-11-12 2000-02-29 Cirrus Logic, Inc. Pixel data X striping in a graphics processor
US6061092A (en) * 1997-12-05 2000-05-09 Intel Corporation Method and apparatus for dark frame cancellation for CMOS sensor-based tethered video peripherals
JP3708436B2 (en) * 1998-05-07 2005-10-19 インフィネオン テクノロジース アクチエンゲゼルシャフト Cache memory for 2D data fields
US6222561B1 (en) 1998-09-17 2001-04-24 International Business Machines Corporation Render optimization using page alignment techniques
US6608625B1 (en) * 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US6720968B1 (en) * 1998-12-11 2004-04-13 National Instruments Corporation Video acquisition system including a virtual dual ported memory with adaptive bandwidth allocation
WO2000038068A1 (en) * 1998-12-22 2000-06-29 Koninklijke Philips Electronics N.V. Cache with access to a moving two-dimensional window
US6452603B1 (en) * 1998-12-23 2002-09-17 Nvidia Us Investment Company Circuit and method for trilinear filtering using texels from only one level of detail
US6928516B2 (en) * 2000-12-22 2005-08-09 Texas Instruments Incorporated Image data processing system and method with image data organization into tile cache memory
EP1555828A1 (en) * 2004-01-14 2005-07-20 Sony International (Europe) GmbH Method for pre-processing block based digital data
US8593474B2 (en) * 2005-12-30 2013-11-26 Intel Corporation Method and system for symmetric allocation for a shared L2 mapping cache
JP4201030B2 (en) * 2006-07-19 2008-12-24 コニカミノルタビジネステクノロジーズ株式会社 Image processing apparatus and image reading apparatus
US7737985B2 (en) * 2006-11-09 2010-06-15 Qualcomm Incorporated Pixel cache for 3D graphics circuitry
WO2008126227A1 (en) * 2007-03-29 2008-10-23 Fujitsu Microelectronics Limited Display control device, information processor, and display control program
KR20100069240A (en) * 2008-12-16 2010-06-24 삼성전자주식회사 Apparatus and method for cache control
US8639296B2 (en) * 2011-06-07 2014-01-28 Lg Electronics Inc. Mobile device and an image display method thereof
US20130027416A1 (en) * 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5077678A (en) * 1989-11-21 1991-12-31 Texas Instruments Incorporated Graphics data processor with window checking for determining whether a point is within a window
US5029105A (en) * 1987-08-18 1991-07-02 Hewlett-Packard Programmable pipeline for formatting RGB pixel data into fields of selected size
US5146592A (en) * 1987-09-14 1992-09-08 Visual Information Technologies, Inc. High speed image processing computer with overlapping windows-div
JPH01262585A (en) * 1988-04-14 1989-10-19 Nec Corp Frame buffer cache circuit
US5046190A (en) * 1988-09-06 1991-09-03 Allen-Bradley Company, Inc. Pipeline image processor
JP2845946B2 (en) * 1989-06-14 1999-01-13 株式会社日立製作所 Image data converter
US5056044A (en) * 1989-12-21 1991-10-08 Hewlett-Packard Company Graphics frame buffer with programmable tile size

Also Published As

Publication number Publication date
US5602984A (en) 1997-02-11
FR2680890B1 (en) 1996-03-08
FR2680890A1 (en) 1993-03-05
JPH05233447A (en) 1993-09-10

Similar Documents

Publication Publication Date Title
DE4227733A1 (en) Configurable cache memory for data processing of video information - receives data sub-divided into groups controlled in selection process
DE3339178C2 (en)
DE3111027C2 (en)
DE3339666C2 (en)
DE4013263C2 (en) Device for color selection in an output device with window display
DE3804938C2 (en) Image processing device
DE10053439B4 (en) Graphics accelerator with interpolation function
DE3702220C2 (en)
DE3407983C2 (en) Multi-processor computer system for generating pixel information from object elements defined in a hierarchical data structure
DE69633477T2 (en) Image memory for graphic data
DE2438202B2 (en) Device for generating a predetermined text of character information which can be displayed on the screen of a video display unit
DE10101073B4 (en) Imaging device with lower storage capacity requirements and method therefor
DE3718501A1 (en) VIDEO DISPLAY DEVICE
DE2252556A1 (en) DEVICE FOR GENERATING A VIDEO SIGNAL FOR INPUT INTO A SCANNED VIEWER
DE112005003130B4 (en) Method and apparatus for evaluating flag registers in a single-instruction multi-data execution engine
DE69633716T2 (en) High speed image scaling system
DE19653438A1 (en) Image-display controlling device
DE2324063C3 (en) Buffer storage facility
DE3933253A1 (en) DEVICE AND METHOD FOR CARRYING OUT BOOLIAN GRID OPERATIONS ON SOURCE AND TARGET DATA
EP1262060B1 (en) Method and device for partially reading out image data of an image sensor
DE2654010A1 (en) TV ARRANGEMENT
DE4103880C2 (en) Image processing device and method
DE3941550A1 (en) CIRCUIT ARRANGEMENT FOR DISASSEMBLING A GRAPHIC FIGURE TO BE DISPLAYED ON A COMPUTER OUTPUT DISPLAY
DD256154A1 (en) PROCESS AND CIRCUIT ARRANGEMENT FOR PATTERN PREPARATION
DE2350018B2 (en) Image analyzer

Legal Events

Date Code Title Description
8128 New person/name/address of the agent

Representative=s name: LIPPERT, H., DIPL.-ING., PAT.-ANW., 60322 FRANKFUR

8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 12/08

8131 Rejection