PatentDe  


Dokumentenidentifikation DE69636433T2 12.04.2007
EP-Veröffentlichungsnummer 0000827082
Titel HALBLEITERSPEICHER MIT ARITHMETIKFUNKTION
Anmelder Hitachi, Ltd., Tokyo, JP
Erfinder FUJITA, Ryo, Naka-gun, Ibaraki 319-11, JP;
SOGA, Mitsuru, Kitakanbara-gun, Niigata 959-26, JP;
NAKATSUKA, Keio Koganei Mansion, Yasuhiro, Koganei-shi, Tokyo 184, JP
Vertreter Strehl, Schübel-Hopf & Partner, 80538 München
DE-Aktenzeichen 69636433
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 26.04.1996
EP-Aktenzeichen 969122696
WO-Anmeldetag 26.04.1996
PCT-Aktenzeichen PCT/JP96/01166
WO-Veröffentlichungsnummer 1996035992
WO-Veröffentlichungsdatum 14.11.1996
EP-Offenlegungsdatum 04.03.1998
EP date of grant 09.08.2006
Veröffentlichungstag im Patentblatt 12.04.2007
IPC-Hauptklasse G06F 12/00(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse H04N 1/387(2006.01)A, L, I, 20051017, B, H, EP   G11C 7/00(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[de]
Technisches Gebiet

Die vorliegende Erfindung betrifft ein Anzeigegerät zum Durchführen einer Pixeldichte-Konversionsverarbeitung, wie einer Vergrößerung, Verkleinerung oder Rotation eines Originalbilds, und die Anzeige des sich ergebenden Bildes, oder ein Bildverarbeitungsgerät und genauer ein Verarbeitungsgerät zum Durchführen einer Hochgeschwindigkeitsfilteroperation, die eine Pixeldichte-Konversionsverarbeitung ist, sowie einen Speicher mit Arithmetikfunktion zur Verwendung in der Hochgeschwindigkeitsfilteroperation.

Stand der Technik

Ein herkömmliches Anzeigegerät zum Durchführen einer Vergrößerung, Verkleinerung oder Rotation eines Bildes wird in Strukturabbildungsgeräten verwendet, die in den ungeprüften japanischen Patentschriften 5-298455 und 5-307610 offenbart sind. In diesen Dokumenten sind Verfahren offenbart, bei denen, da der Koordinatenwert eines Originalbilds entsprechend seines Zielwerts nicht mit der Mitte eines Pixels des Originalbilds übereinstimmt, der Wert des Pixels einer spezifizierten Koordinate durch Interpolation der das spezifizierte Pixel umgebenden Pixel geschätzt wird. Zur Vergrößerung eines Binärbilds offenbart die ungeprüfte japanische Patentschrift 59-6626 ein Verfahren zum Erhalten von Zielwertpixeln, die schnell von mehreren Pixeln eines Originalbilds vergrößert wurden. Zusätzlich ist zur Bildunterscheidung und Integrierung in der Bildverarbeitung ein Verfahren gut bekannt, in dem eine Produktsummenoperation durch Gewichtung der umgebenden acht Pixel durchgeführt wird.

Das oben beschriebene herkömmliche Verarbeitungsgerät zum Lesen mehrerer Pixel von einem Originalbild für arithmetische Operationen weist mehrere Speichervorrichtungen und Arithmetikeinheiten auf, die parallel angeordnet sind, um eine Parallelverarbeitung für die Hochgeschwindigkeitsverarbeitung durchzuführen.

Wenn jedoch mehrere Speichervorrichtungen angeordnet werden und Daten bei hohen Geschwindigkeiten aus einem Originalbild zur Verarbeitung ausgelesen werden, tritt bei den oben beschriebenen herkömmlichen Technologien das Problem einer signifikant ansteigenden Anzahl von Signalleitungen zwischen dem Prozessor zum Durchführen der Verarbeitung und den mehreren Speichervorrichtungen auf. Wenn zum Beispiel ein Pixel aus 24 Bits (rot, grün und blau, bestehend jeweils aus 8 Bits) besteht und eine Arithmetikoperation aus einem Originalbild durchgeführt wird, das aus vier Pixeln besteht, sind Datenleitungen für 96 Bits erforderlich. Die Datenleseleistung einer Speichervorrichtung selbst ist, falls diese in einem herkömmlichen wahlfreien Zugriffsspeicher besteht, gegenwärtig auf 150 ns in einer wahlfreien Zugriffsoperation begrenzt. Um die gewünschte Leistung zu erhalten, muß diese Zugriffsgeschwindigkeit durch Parallelverarbeitung weiter erhöht werden, was wiederum die Anzahl an Signalleitungen weiter erhöht. Dies erhöht unweigerlich die Geräteabmessungen und die Gerätekosten, weil die individuelle Leistungsfähigkeit (Betriebsfrequenz) erhöht werden muß.

JP-A-5012326 beschreibt einen Speicher, der zur Durchführung einer Interpolationsverarbeitung bei hoher Geschwindigkeit und zum Verringern der Komponentenanzahl für die Interpolationsverarbeitung verwendet wird. Der Speicher (100) umfaßt eine Adress-Arithmetikeinrichtung (10), eine Koeffizientenoperationseinrichtung (20), eine Speichereinrichtung (30), eine Interpolationsoperationseinrichtung (40) und eine Steuereinrichtung (50), die Adressen mit einem ganzzahligen Teil (Eingang a) und einem Dezimalteil (Eingang h) empfängt, auf gespeicherte Daten gemäß dem ganzzahligen Teil der Adresse zugreift, Koeffizienten aufgrund des Dezimalteils berechnet und das interpolierte Ergebnis an einen Daten-Eingangs-/Ausgangs-Anschluß (3) ausgibt. Dieser Speicher löst das Problem des Bereitstellens von Halbleiterspeichern mit Arithmetikfunktion für die benachbarten Pixel, so daß nur die Daten eines Pixels an den Host-Prozessor übertragen werden müssen.

Die vorliegende Erfindung betrifft einen Halbleiterspeicher mit Arithmetikfunktion zur Verwendung mit einem Prozessor, wobei der Halbleiterspeicher aufweist:

eine Speichereinrichtung zum Speichern von Daten, die ganzzahligen Adressen in einem kontinuierlichen N-dimensionalen Raum (wobei N eine ganze Zahl ist) entsprechen,

eine Daten-Arithmetikeinrichtung zum Empfangen einer Eingabebruchteilsadresse, die aus einer ganzzahligen Komponente, die eine N-dimensionale ganzzahlige Adresse ist, und einer N-dimensionalen Bruchteilskomponente zum Spezifizieren einer Adresse zwischen den ganzzahligen Adressen zusammengesetzt ist, und zum Lesen der Daten, die der durch die ganzzahlige Komponente angezeigten Adresse entsprechen, und der Daten vor und nach der durch die ganzzahlige Komponente in jeder Dimension angezeigten Adresse, sowie zum Durchführen einer arithmetischen Interpolation gemäß der Bruchteilskomponente,

eine Speichersteuereinheit zum Steuern des Datenzugriffs in der Speichereinrichtung,

eine Ausgabeeinrichtung zum Ausgeben des arithmetischen Ergebnisses der Daten-Arithmetikeinrichtung, wobei

die Daten-Arithmetikeinrichtung dazu ausgelegt ist, die Interpolationsdaten zu berechnen, die den kontinuierlich eingegebenen Bruchteilsadressen entsprechen, und das berechnete Ergebnis auszugeben, und wobei

die Ausgabeeinrichtung dazu ausgelegt ist, das berechnete Ergebnis auszugeben, das durch die Daten-Arithmetikeinrichtung anhand der Ausgabe eines Signals, das anzeigt, daß die Arithmetikverarbeitung der Daten-Arithmetikeinrichtung beendet wurde, und der Eingabe eines Signals, das anzeigt, daß der Prozessor ein arithmetisches Ergebnis zu lesen beginnt, berechnet wird.

Die vorliegende Erfindung wird nun genauer in einem Beispiel unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Darin zeigt:

1 ein Blockdiagramm, das einen Halbleiterspeicher mit Arithmetikfunktion gemäß einem Ausführungsbeispiel der vorliegenden Erfindung darstellt;

2 ein Diagramm, das einige Funktionen des Halbleiterspeichers mit Arithmetikfunktion darstellt;

3 ein Diagramm, das ein Verarbeitungsgerät darstellt, das mehrere Halbleiterspeicher mit Arithmetikfunktion verwendet;

4 ein Blockdiagramm, das einen in 1 gezeigten Eingangsdaten-Pufferblock darstellt;

5 ein Blockdiagramm, das einen in 1 gezeigten Befehlsverarbeitungsblock darstellt;

6 ein Blockdiagramm, das einen in 1 gezeigten Pixelverarbeitungsblock darstellt;

7 ein Blockdiagramm, das eine in 1 gezeigte Speicherzelle darstellt; und

8 ein Blockdiagramm, das einen in 1 gezeigten Ausgangsdaten-Pufferblock darstellt.

Bezugnehmend auf 2 sind einige Funktionen eines Halbleiterspeichers mit Arithmetikfunktion gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gezeigt. Erstens wird in 2(a) ein Beispiel der Interpolation einer eindimensionalen Datensequenz in linearer Weise (Geradengleichung) dargestellt. Die horizontale Achse zeigt Adressen, während die vertikale Achse die zu den Adressen entsprechenden Datenwerte zeigt. Jeder vertikale Balken zeigt den im Speicher gesetzten Wert, während die Linien, die die Balken an ihren Spitzen verbinden, das interpolierte Ausgabesignal zeigen. Wenn nämlich die Datensequenz in den Adressen 0 bis 15 in dem Halbleiterspeicher mit Arithmetikfunktion gemäß der vorliegenden Erfindung gespeichert sind, erlaubt die Spezifikation einer Adresse mit einer Bruchteilskomponente und das Lesen der Daten von dieser Adresse das Auslesen von linear interpolierten Daten, die vor oder hinter den durch die Adresse spezifizierten Daten liegen. Wenn zum Beispiel 128 an der Adresse 9 gespeichert ist und 166 an der Adresse 10, und eine Leseoperation durch Spezifikation von 9,87 als Adresse durchgeführt wird, liest der Halbleiterspeicher mit Arithmetikfunktion zwei Adressen 9 und 10, die am nächsten zu der Adresse 9,87 liegen, aus dem Speicher aus und interpoliert die Werte der Adressen 9 und 10 durch die Bruchteilskomponente 9,87 der spezifizierten Adresse und gibt ein Interpolationsergebnis aus. Wenn für die lineare Interpolation die ganzzahlige Komponente einer Adresse Ti und ihre Bruchteilskomponente Tf ist, kann das Interpolationsergebnis ip durch den Ausdruck (1) erhalten werden, so daß im oben erwähnten Beispiel 161 ausgegeben wird. ip = A(Ti) ×(1 – Tf) + A(Ti + 1) × Tf(1) wobei A(x) den an der spezifizierten Adresse gespeicherten Wert angibt. Weiter stellt die 2(b) ein Beispiel dar, in dem die Datensequenz quadratisch interpoliert wird. Bei der linearen Interpolation werden Daten zwischen zwei Datenwerten berechnet. Bei der quadratischen Interpolation wird die Interpolation für die Werte von drei aufeinanderfolgenden Adressen durchgeführt, so daß die Werte, wie in der Figur gezeigt, glatt variiert werden können. Die Berechnung der Interpolation kann durch folgenden Ausdruck (2) durchgeführt werden, der durch Lösen einer Gleichung erhalten wird. ip = (A(Ti – 1) × (Tf – 1) × Tf + 2 × A(Ti) × (1 – Tf) × (1 + Tf) + A(Ti + 1) × (1 + Tf) × Tf)/2(2)

Wenn die Adresse 9 den Wert 128, die Adresse 10 den Wert 166 und die Adresse 11 den Wert 40 aufweist und eine Leseoperation mit einer Adresse 9,87 durchgeführt wird, sind die drei nächsten Adressen zur Adresse 9,87 die Adressen 9, 10 und 11, mit Ti = 10 und Tf = –0,13, so daß ip = 170.

2(c) zeigt ein Beispiel, in dem eine quadratische Datensequenz interpoliert und ein Interpolationsergebnis ausgegeben wird. Es wird angenommen, daß auf den Speicher durch quadratische Adressen (Koordinaten) zugegriffen werden kann, und die Daten (Pixel) für jede Adresse acht Bits enthalten. In der Figur ist der Wert von acht Pixeln, deren X und Y Koordinaten (2,3), (3,3), (4,3), (5,3), (6,3), (4,4), (4,5) und (4,6) sind, auf 255 und die anderen Pixel auf 0 eingestellt. Falls X = 3,4 und Y = 4,8 spezifiziert und der Halbleiterspeicher mit Arithmetikfunktion ausgelesen wird, werden die Werte von Pixeln mit den Koordinaten (3,4), (3,5), (4,4) und (4,5) zur Interpolation ausgelesen und ein Interpolationsergebnis für den Fall einer linearen Interpolation ausgegeben. Wenn die ganzzahligen Anteile und die Bruchteile der auszulesenden Koordinaten X, Y die Werte TXi, TXf und TYi, TYf sind, kann das Interpolationsergebnis ip aus dem Ausdruck (3) erhalten werden. ip = A(TXi,TYi) × (1 – TXf) × (1 – TYf) + A(TXi + 1,TYi) × TXf × (1 – TYf) + A(TXi,TYi + 1) × (1 – TXf) × TYf + A(TXi + 1,TYi + 1) × TXf × TYf(3)

Daher ist im Beispiel der 2(c) ip = 102.

2(d) zeigt ein Beispiel, in dem eine dreidimensionale Datensequenz interpoliert und ein Interpolationsergebnis ausgegeben wird. Diese Figur zeigt ein Beispiel einer linearen Interpolation. Der Halbleiterspeicher mit Arithmetikfunktion verwendet acht Pixel um eine spezifizierte Koordinate (ein Punkt in der Figur) und eine Verschiebung (dx, dy, dz) von einem ganzzahligen Gitter, um Interpolation in der gleichen Weise wie bei den oben erwähnten ein- und zweidimensionalen Interpolationsoperationen durchzuführen.

Bisher wurde das Leistungsvermögen des Halbleiterspeichers mit Arithmetikfunktion vorwiegend unter Betonung auf die lineare Interpolation beschrieben. Wie im oben erwähnten Ausdruck (2) kann ein Gewichtungskoeffizient für Daten aus der Bruchteilskomponente einer Adresse erhalten werden, um Werte durch solche Funktionen höheren Grades, wie zweiten oder dritten Grades, zu erhalten. Ferner kann, nachdem der erhaltende Gewichtungskoeffizient festgelegt wurde, ein Laplace-Filter implementiert werden.

Im folgenden wird ein innerer Aufbau des Halbleiterspeichers mit Arithmetikfunktion unter Bezugnahme auf 1 beschrieben.

Ein Halbleiterspeicher mit Arithmetikfunktion 100 enthält einen Eingangsdaten-Pufferblock 201, der eine Adresse, Schreibdaten und eine ein Steuersignal übertragende Signalleitungsgruppe 250 von einem höherrangigen Prozessor empfängt und eine von dem höherrangigen Prozessor kommende Zugriffsanfrage zwischenspeichert, einen Befehlsverarbeitungsblock 202, der die zwischengespeicherte Zugriffsanfrage empfängt, die von dem höherrangigen Prozessor über die Signalleitungsgruppe 251 gesendet wurde, die Anfrage dekodiert, die dekodierten Anfragen in tatsächliche Speicheradressen konvertiert, um den Zugriff der Pixelverarbeitungsblöcke 203, 204, 205 und 206 zu steuern, so daß eine Parallelverarbeitung für jedes Pixel durchgeführt wird, und diesen Blöcken die Durchführung der Interpolation befiehlt, die Pixelverarbeitungsblöcke 203, 204, 205 und 206, die Speicher gemäß der von dem Befehlsverarbeitungsblock 202 ausgegebenen Instruktion auslesen, um Pixeldaten mit einem Gewichtungskoeffizienten zu multiplizieren, Speicherzellen 207, 208, 209 und 210, die tatsächlich Daten speichern, und einen Ausgangsdaten-Pufferblock 211, der ein Ergebnis der durch den Befehlsverarbeitungsblock durchgeführten Interpolation empfängt, um das Ergebnis von dem Chip nach außen auszugeben.

Zur Interpolation eines zweidimensionalen Bilds speichert der höherrangige Prozessor zu speichernde zweidimensionale Bilddaten über die Signalleitungsgruppe 250. Als nächstes wird die Auswahl zwischen der linearen Interpolation, der quadratischen Interpolation und der Verwendung eines festen Gewichtungskoeffizienten an einem MOD-Register (nicht gezeigt) eingestellt. Wenn dann eine zu lesende Adresse (Koordinaten) von der Signalleitungsgruppe 250 eingestellt wird, berechnet der Befehlsverarbeitungsblock 202 an die vier Pixelverarbeitungsblöcke 203, 204, 205 und 206 weiterzugebende Adressen und erhält einen Gewichtungskoeffizienten für jedes Pixel von der Bruchteilskomponente der spezifizierten Adresse. Als nächstes lesen die vier Pixelverarbeitungsblöcke 203, 204, 205 und 206 die Pixeldaten der spezifizierten Adressen, multiplizieren die Pixeldaten mit dem spezifizierten Gewichtungskoeffizienten und geben die Multiplikationsergebnisse an den Befehlsverarbeitungsblock 202 zurück. Die zurückgegebenen Multiplikationsergebnisse werden addiert und ein Additionsergebnis wird dem höherrangigen Prozessor als die Lesedaten über einen Ausgangsdatenpuffer ausgegeben.

Im folgenden wird eine Anordnung eines Verarbeitungsgeräts zum Durchführen der Hochgeschwindigkeitsverarbeitung eines großen Datenumfangs unter Verwendung des Halbleiterspeichers mit Arithmetikfunktion unter Bezugnahme auf 3 beschrieben. 3 zeigt einen Teil eines Bildverarbeitungsgeräts für die Durchführung einer Arithmetikverarbeitung auf Grundlage eines zweidimensionalen Originalbilds. Ein Verarbeitungsprozessor 10 erzeugt eine Koordinate eines Pixels gemäß einer Instruktion von einer höherrangigen CPU und greift auf Halbleiterspeicher mit Arithmetikfunktion 100, 101, 102 und 103 zum Lesen zu. Der Verarbeitungsprozessor 10 enthält zum Beispiel in einem graphischen Anzeigegerät Strukturabbildungsdaten in den Halbleiterspeichern mit Arithmetikfunktion 100, 101, 102 und 103, erzeugt eine Strukturdatenkoordinate für jedes Pixel aus den Koordinatenwerten, die den Eckpunkten eines Dreiecks entsprechen, liest interpolierte Pixelinformation, und schreibt diese Information in einen Rahmenspeicher (nicht gezeigt). Eine Zusammenfassung dieser Verarbeitung ist in der oben erwähnten ungeprüften japanischen Patentschrift 5-298455 offenbart.

In 3 ist ein Originalbild 20 zu groß, um in einem Halbleiterspeicher mit Arithmetikfunktion gespeichert zu werden. Daher wird das Bild in vier Bereiche unterteilt, deren Begrenzungen sich wie gezeigt überlappen. Der Verarbeitungsprozessor erzeugt eine Adresse (Koordinaten), die größer ist als der in jedem der Speicher für den Zugriff gespeicherte Datenbereich, so daß die Halbleiterspeicher mit Arithmetikfunktion 100, 101, 102 und 103 bestimmen, ob die Ausgabe zu den jeweils spezifizierten Adressen möglich ist. Als Ergebnis der Bestimmung wird nur dem Halbleiterspeicher mit Arithmetikfunktion, dessen Ausgabedaten gültig sind, die Ausgabe des Interpolationsausgabesignals an einen Lesedatenbus 151 ermöglicht. Um zu spezifizieren, welche Bereiche jedes Halbleiterspeichers mit vier Arithmetikfunktionen 100, 101, 102, 103 in Beziehung zu setzen sind, wird eine feste Signalleitung für jeden Halbleiterspeicher mit Arithmetikfunktion vorgesehen. Alternativ kann diese Spezifikation auch durch Vorsehen eines internen Registers für die Bereichsbestimmung durchgeführt werden. Im folgenden wird kurz eine Operation des Verarbeitungsgeräts beschrieben, das, wie in 3 gezeigt, mehrere Halbleiterspeicher mit Arithmetikfunktionen 100, 101, 102, 103 verwendet. Der Verarbeitungsprozessor 10 gibt ein Adressignal mit einer Bruchteilskomponente und ein Steuersignal an die Halbleiterspeicher mit Arithmetikfunktion von einem MEMC-Anschluß aus. Wenn jeder Halbleiterspeicher mit Arithmetikfunktion ein Interpolationsergebnis für die spezifizierte Adresse erhalten hat, gibt der Speicher ein Signal an einen SA-Anschluß aus, das das Ende der Verarbeitung anzeigt, und gibt ferner das Interpolationsergebnis an einen SO-Anschluß aus. Da jedoch nur ein Halbleiterspeicher mit Arithmetikfunktion für die Anfrageadresse von dem Verarbeitungsprozessor ausgelesen wird, sind die SA-Anschlüsse der anderen Halbleiterspeicher mit Arithmetikfunktion "gültig", und die SO-Anschlüsse dieser Speicher werden in den Hochimpedanzzustand versetzt. Der Verarbeitungsprozessor liest den Lesedatenbus 151, wenn das Ergebnis einer UND-Operation zwischen den Ausgabesignalen der SA-Anschlüsse aller Speicher mit Arithmetikfunktion "gültig" ist, bestätigt einen MEMR-Anschluß nach Beendigung des Lesens-, und fordert die nächste Datenausgabe an. Daher kann das Lesen aus dem Verarbeitungsprozessor pipelineartig durchgeführt werden.

Im folgenden wird ein innerer Aufbau des Halbleiterspeichers mit Arithmetikfunktion unter Bezugnahme auf die 4 bis 8 beschrieben.

4 zeigt einen inneren Aufbau des Eingangsdaten-Pufferblocks 201. Der Eingangs-Pufferblock 201 ist im wesentlichen aus einem PBIO(Prozessor-Puffer-Interface) 212 zum Empfangen einer Zugriffsanfrage von dem höherrangigen Prozessor und Decodieren der empfangenen Anfrage, und einem FIFO(First In, First Out)-Puffer 213 zum Zwischenspeichern der Zugriffsanfrage aufgebaut. Es gibt vier Arten von Zugriffen, die von dem höherrangigen Prozessor angefordert werden: direkter Speicherzugriff zum Zugreifen auf den Speicher wie bei einer gewöhnlichen linearen Adresse; Registerzugriff zum Lesen und Schreiben eines Registers innerhalb des Halbleiterspeichers mit Arithmetikfunktion; zweidimensionaler Schreibezugriff zum Schreiben einer Speicherzelle in einem zweidimensionalen Bereich; und Interpolations-Lesezugriff zum Lesen von Interpolationsdaten durch Spezifikation einer zweidimensionalen Koordinate mit einer Bruchteilskomponente. Diese Zugriffsarten werden im wesentlichen durch die zu spezifizierenden Adressräume klassifiziert.

Als erstes wird die Signalleitungsgruppe (250) zwischen dem höherrangigen Prozessor und dem PBIO beschrieben. Eine Signalleitung AD liefert ein Signal zum Übertragen einer Adresse und Daten, eine Signalleitung ADSEL liefert ein Signal, das anzeigt, ob die Adresse oder die Daten an die Signalleitung AD gegeben wird, eine Signalleitung RW liefert ein Signal, das Lesezugriff anzeigt, wenn es im Hochpegelzustand ist, und Schreibezugriff, wenn es im Tiefpegelzustand ist, eine Signalleitung WAIT liefert ein Signal, das Zugriffsmöglichkeit anzeigt, und eine Signalleitung CSEL liefert ein Signal, das die Gültigkeit einer Zugriffsanfrage anzeigt.

Als nächstes wird ein Verfahren beschrieben, in dem der höherrangige Prozessor einen direkten Speicherzugriff durchführt. Als erstes spezifiziert der höherrangige Prozessor die Signalleitung ADSEL, stellt die Speicheradresseninformation des direkten Speicherzugriffs ein, dessen zwei am meisten signifikante Bits zum Beispiel "00" für den Zugriff auf die Signalleitung AD sind, stellt die Signalleitung RW in den Hochpegelzustand in einer Leseoperation und stellt die Signalleitung CSEL in den Zugriff ermöglichenden Zustand. Wenn die Signalleitung CLK mit der Signalleitung WAIT in den Zugriff ermöglichenden Zustand steigt, beginnt eine Lesezugriffsoperation des direkten Speicherzugriffs und die Zugriffsinformation wird in dem FIFO 213 gespeichert. Dann wird der Inhalt des FIFO 213 durch den Befehlsverarbeitungsblock 202 ausgelesen und nachdem der Pixelverarbeitungsblock Daten von einer Speicherzelle gelesen hat, werden die Lesedaten über eine Signalleitung RDT in den PBIO 212 des Eingangsdaten-Pufferblocks 201 eingegeben. Wenn der höherrangige Prozessor nach der Adresseinstellung andererseits die Daten an die Signalleitung ADSEL gibt, verschiebt sich die Signalleitung AD in einen Zustand, in dem die Daten von dem Halbleiterspeicher mit Arithmetikfunktion ausgegeben werden. Durch Lesen der Daten auf der Signalleitung AD in einem Zyklus, in dem die Lesedaten ankommen, wird die Leseoperation beendet. Der Zyklus, in dem die Lesedaten ankommen, wird durch die Maximalzeit des Speicherzellenlesens bestimmt. Der Zyklus beträgt 10 und mehr Takteinheiten. Dieser direkte Speicherzugriff wird zur Speicherprüfung verwendet. Daher verlangt der direkte Speicherzugriff nicht unbedingt eine Hochgeschwindigkeitsoperation und stellt kein Problem in dem oben beschriebenen Zugriffsverfahren dar. Der Schreibezugriff des direkten Speicherzugriffs wird durch Schreiben der Signalleitung RW in dem oben beschriebenen Lesezugriff implementiert. Der Signalwert der Signalleitung AD mit der eingestellten Adresse wird im Eingabezustand festgehalten in dem PBIO 212 und als Schreibdatenwert in dem FIFO 213 gespeichert. In diesem Moment wird der Zugriff durch den höherrangigen Prozessor beendet. Nachfolgend wird in dem Speicher mit Arithmetikfunktion diese Zugriffsinformation durch den Befehlsverarbeitungsblock aus dem FIFO 213 genommen und über den Pixelverarbeitungsblock in die entsprechende Speicherzelle geschrieben.

Beim Registerzugriff kann der Zugriff durch Angabe eines Registerbereichs erfolgen, in dem die zwei am meisten signifikanten Bits einer Adresse z.B. als "01" spezifiziert werden. Vom Standpunkt des höherrangigen Prozessors aus ist der Lesezugriff und der Schreibzugriff generell identisch, außer daß zum Lesen von Daten kein direkter Speicherzugriff und keine Wartezeit besteht. Beim Eingangsdaten-Pufferblock wird eine Registerzugriffsanfrage andererseits nicht in dem FIFO 213 gespeichert und ein Registerschreibsignal RWE, eine Registeradresse ADR und Schreibdaten WDT werden erzeugt, um den gegenwärtigen Register direkt zu steuern.

Ein zweidimensionaler Schreibzugriff wird genau so durchgeführt wie die Schreiboperation im direkten Speicherzugriff. Wenn eine Adresse eingestellt ist, werden die zwei am meisten signifikanten Bits des Adressignals z.B. auf "10" eingestellt, und die X und Y Koordinaten auf die nachfolgenden Bits gegeben.

Beim Interpolationslesezugriff, der dem zweidimensionalen Schreibzugriff ähnelt, wird der Lesezugriff mit der Signalleitung RW im Hochpegelzustand spezifiziert. Für die zu spezifizierende Adresse werden die zwei am meisten signifikanten Bits des Adressignals z. B. auf "11" eingestellt und die X und Y Koordinaten auf die nachfolgenden Bits gegeben. Der Interpolationslesezugriff unterscheidet sich jedoch von den anderen Zugriffsverfahren darin, daß die interpolierten Lesedaten von der Signalleitung 250 ausgelesen und an den höherrangigen Prozessor geschrieben werden, wodurch der nächste Zyklus mit einer Adresse möglich ist, die ein kontinuierliches Einstellen der Adresse darstellt. Daher können Zugriffsoperationen kontinuierlich durchgeführt werden, bis der FIFO 213 vollgelaufen ist, wodurch ein Hochgeschwindigkeitszugriff möglich wird.

Im folgenden wird die Operation des FIFO 213 beschrieben. Wenn ein Zugriff der oben erwähnten vier Arten von Zugriffsoperationen auf den FIFO 213 erfolgt, gibt der PBIO als erstes an den FIFO 213 zu schreibende Daten an die Signalleitung WDT und ein Signal zum Befehlen einer Schreibeoperation zu dem FIFO 213 an die Signalleitung WTF. In diesem Moment gibt, wenn der FIFO 203 voll ist, eine Signalleitung WTA ein Zugriffsdeaktivierungssignal aus und der FIFO 213 nimmt die Schreiboperation folglich nicht an. Die in dem FIFO 213 zu speichernden Daten enthalten eine Adresse des direkten Speicherzugriffs, Daten zu der Schreiboperation, eine Adresse und Daten für zweidimensionalen Schreibzugriff, eine Adresse des Interpolationslesezugriffs, und Informationen zum Identifizieren dieser Adressen und Daten. Wenn irgendeine Einheit dieser Daten in dem FIFO 213 gespeichert wird, wird eine Signalleitung EMP verneint, wonach Daten der ersten Zugriffsanfrage an eine Signalleitung FDT ausgegeben werden. Zum Lesen dieser Daten bestätigt der Befehlsverarbeitungsblock 202 eine Signalleitung FRD. Dies bestätigt die Signalleitung EMP, wenn der FIFO 213 geleert wird, so daß der Befehlsverarbeitungsblock darüber informiert wird, daß keine Zugriffsanfrage ausgegeben wird.

Im folgenden wird der Befehlsverarbeitungsblock 202 unter Bezugnahme auf 5 beschrieben.

Der Befehlsverarbeitungsblock 202 empfängt eine Zugriffsanfrage von dem Eingangsdaten-Pufferblock 201, führt eine Entscheidung mit einer Erneuerungszyklusanfrage durch, die einzigartig für den dynamischen Speicher ist, steuert die Pixelverarbeitungsblöcke 203, 204, 205 und 206, berechnet die gelesenen Daten und gibt die erhaltenen Lesedaten an den Ausgangsdaten-Pufferblock aus.

Der Befehlsverarbeitungsblock 202 enthält einen Erneuerungssteuerblock zum periodischen Ausgeben eines Anfragesignals RR zum Erneuern einer Speicherzelle, die einen dynamischen Speicher darstellt, einen Anfrageverarbeitungsblock 214 zum Durchführen einer Entscheidung zwischen dem Eingangsdaten-Pufferblock 201 und einer Erneuerungsanfrage von dem Erneuerungssteuerblock 215 und zum Verarbeiten jeder dieser Anfragen in einem oder mehreren Schritten, einen Adressverarbeitungsblock 216 zum Berechnen einer an den Pixelverarbeitungsblock weiterzugebenden Adresse aus der Adresse (Koordinaten), die von dem Anfrageverarbeitungsblock (214) kommen, und der Zugriffsart und zum Bestimmen, ob diese Koordinate aus den in der Speicherzelle des Adressverarbeitungsblocks gespeicherten Daten berechnet werden kann, einen Filterkoeffizientberechnungsblock 218, um aus der Bruchteilskomponente der Adresse einen mit einem Pixel zu multiplizierenden Gewichtungskoeffizienten zu berechnen, einen Pixelarithmetiksteuerblock 217 zum Steuern der Pixelverarbeitungsblöcke 203, 204, 205 und 206 durch die von dem Adressverarbeitungsblock 216 kommende Adresse und den von dem Filterkoeffizientenberechnungsblock 218 kommenden Filterkoeffizienten, und einen Arithmetikblock 219 zum Durchführen einer Arithmetikoperation an den Daten, die durch Multiplizieren der von den Pixelverarbeitungsblöcken 203, 204, 205 und 206 ausgegebenen Pixel mit dem Gewichtungskoeffizienten und zum Senden des Ergebnisses an den Ausgangsdatenpuffer.

Als erstes berechnet der Erneuerungssteuerblock 215 die Zeit in Synchronisation mit dem Taktsignal und gibt etwa alle 10 &mgr;s ein Erneuerungsanfragesignal RR aus.

Der Anfrageverarbeitungsblock 214 erfährt durch die Signalleitung EMP, daß eine Zugriffsanfrage an dem Eingangsdatenpufferblock 201 angekommen ist und erhält dadurch die Zugriffsanfrage auf der Signalleitung FDT. Gleichzeitig kann der Anfrageverarbeitungsblock durch Bestätigung der Signalleitung FRD eine nächste Zugriffsanfrage auf die Signalleitung FDT geben. Ebenso empfängt der Anfrageverarbeitungsblock 214 das oben erwähnte Erneuerungsanfragesignal RR, um zu erfahren, daß Erneuerung erforderlich ist. Zunächst zählt der Anfrageverarbeitungsblock 214, wenn er ein Erneuerungsanfragesignal RR im Leerlaufzustand empfängt, einen internen Erneuerungszähler herauf und gibt das Zählergebnis und eine die Erneuerungsanfrage anzeigende Kennzeichnung an eine Signalleitung RXY. Wenn keine Erneuerungsanfrage vorliegt und die Signalleitung EMP nicht bestätigt ist, nimmt der Anfrageverarbeitungsblock die Zugriffsanfrage von der Signalleitung FDT und speichert die Zugriffsanfrage in einem internen Zugriffsanfrageregister. Anschließend verfährt der Anfrageverarbeitungsblock gemäß jeder Zugriffsanfrage wie folgt. Als erstes gibt der Anfrageverarbeitungsblock bei Erhalt einer Leseanfrage in direktem Speicherzugriff eine spezifizierte Adresse und eine Kennzeichnung der Leseanfrage des direkten Speicherzugriffs an die Signalleitung RXY. Bei Erhalt einer Schreibeanfrage im direkten Speicherzugriff gibt der Anfrageverarbeitungsblock eine spezifizierte Adresse und eine Kennzeichnung der Schreibeanfrage des direkten Speicherzugriffs an die Signalleitung RXY und gibt Schreibdaten an die Signalleitung RXY im nächsten Zyklus aus. Die Schreibdaten an diesem Punkt werden in dem FIFO 213 neben der Schreibadresse gespeichert. Bei zweidimensionalem Schreibzugriff gibt der Anfrageverarbeitungsblock eine spezifizierte Koordinate und eine Kennzeichnung einer zweidimensionalen Schreibzugriffsanfrage an die Signalleitung RXY und gibt im nächsten Zyklus Schreibdaten an die Signalleitung RXY aus. Beim Interpolationslesezugriff gibt der Anfrageverarbeitungsblock eine spezifizierte Koordinate und eine Kennzeichnung der Interpolationslesezugriffsanfrage an die Signalleitung RXY. Da es vier Pixelverarbeitungsblöcke gibt, kann die Verarbeitung hier, wenn vier Pixel zur Verarbeitung gelesen werden, ohne Änderung durchgeführt werden; wenn aber z.B. 16 Pixel zur Verarbeitung gelesen werden, wird die Steuerung so durchgeführt, daß die 16 Pixel in Einheiten von vier Pixeln von oben nach unten verarbeitet werden. Um das zu tun, weist die Kennzeichnung der Interpolationslesezugriffsanfrage einen Wert auf, der die Anzahl von Vierer-Pixelgruppen angibt. In dieser Verarbeitung wird ein Interpolationslesezugriff in vier Zyklen vollendet.

Der Adressverarbeitungsblock 216 erfährt durch die Zugriffsanfragekennzeichnung auf der Signalleitung RXY, daß eine Anfrage vorliegt, führt die Adresskonversion durch und gibt eine entsprechende Ausgabe an den Pixelarithmetiksteuerblock 217. Als erstes gibt der Adressverarbeitungsblock 216, wenn die Zugriffsanfragekennzeichnung auf der Signalleitung RXY eine Erneuerungsanfrage anzeigt, die Adresse (Zählwert) und die Kennzeichnung unverändert an eine Signalleitung CXY. Die Signalleitung CXY weist Zugriffsanfrage-Kennzeichnungssignalleitungen für die vier Pixelverarbeitungsblöcke und Signalleitungen für Adressen oder Datenübertragung auf. Bei Erhalt einer Erneuerungsanfrage gibt der Adressverarbeitungsblock die Erneuerungsanfrage an alle Signalleitungen der vier Pixelverarbeitungsblöcke in gleicher Weise aus. Anschließend gibt der Adressverarbeitungsblock, wenn die Zugriffsanfragekennzeichnung auf der Signalleitung RXY eine direkte Speicherzugriffsleseoperation anzeigt, die Adresse und die Kennzeichnung an die Signalleitung CXY aus, die an den Pixelverarbeitungsblock angeschlossen ist, an den die der spezifizierten Adresse entsprechende Speicherzelle angeschlossen ist. Falls die Zugriffsanfragekennzeichnung eine direkte Speicherzugriffsschreiboperation angibt, gibt der Adressverarbeitungsblock die Adresse und die Kennzeichnung an die Signalleitung CXY aus, die an den Pixelverarbeitungsblock angeschlossen ist, an den die der spezifizierten Adresse entsprechende Speicherzelle angeschlossen ist, und gibt im nächsten Zyklus die Schreibdaten aus. Falls die Zugriffsanfragekennzeichnung auf der Signalleitung RXY eine zweidimensionale Schreibzugriffsoperation anzeigt, gibt der Adressverarbeitungsblock die Adresse und die Kennzeichnung an die Signalleitung CXY aus, die an den Pixelverarbeitungsblock angeschlossen ist, an den die der spezifizierten Adresse entsprechende Speicherzelle angeschlossen ist, und gibt gleichzeitig im nächsten Zyklus Schreibdaten aus. Falls die Zugriffsanfragenkennzeichnung auf der Signalleitung RXY eine Interpolationslesezugriffsoperation anzeigt, überträgt der Adressverarbeitungsblock den Bruchteilsahteil der Adresse (Koordinaten) über eine Signalleitung FRC an den Filterkoeffizientenberechnungsblock 218 und gibt gleichzeitig die Adresse und die Kennzeichnung zu jedem Pixelverarbeitungsblock an die Signalleitung CXY aus. Wie oben beschrieben, gibt der Adressverarbeitungsblock bei der Interpolation, die ein Lesen von mehr als vier Pixeln erfordert, die Adresse und die Kennzeichnung an die Signalleitung CXY aus, während die Adressen entsprechend den Pixelverarbeitungsblöcken geändert werden.

Im folgenden wird eine Beziehung zwischen den Speicheradressen und den Koordinaten im direkten Speicherzugriff, dem zweidimensionalen Schreibzugriff und dem Interpolationslesezugriff gezeigt. Als erstes werden die Speicheradressen kontinuierlich in der Reihenfolge der Speicherzellen 207, 208, 209 und 210 vorgesehen. Die Koordinaten (0,0) entsprechen der Adresse 0 der Speicherzelle 207, die Koordinaten (0,1) entsprechen der Adresse 0 der Speicherzelle 208, die Koordinaten (1,0) entsprechen der Adresse 0 der Speicherzelle 209, die Koordinaten (1,1) entsprechen der Adresse 0 der Speicherzelle 210, und die Koordinaten (2,0) entsprechen der Adresse 1 der Speicherzelle 207. Daher entspricht ein Pixel, dessen X Koordinate eine gerade Zahl ist und dessen Y Koordinate eine gerade Zahl ist, der Speicherzelle 207, ein Pixel, dessen X Koordinate eine gerade Zahl ist und dessen Y Koordinate eine ungerade Zahl ist, der Speicherzelle 208, ein Pixel, dessen X Koordinate eine ungerade Zahl ist und dessen Y Koordinate eine gerade Zahl ist, der Speicherzelle 209, und ein Pixel, dessen X Koordinate eine ungerade Zahl ist und dessen Y Koor dinate eine ungerade Zahl ist, der Speicherzelle 210. Wie beim Verarbeitungsgerät der 3, in dem die mehreren Halbleiterspeicher mit Arithmetikfunktion durch Trennen eines Bereichs verwendet werden, ist die oben erwähnte Beziehung zwischen Adressen und Koordinaten relativ gesehen gleich mit hinzukommenden Verschiebungen. Die Adresse 0 des Speichers 207 entspricht nämlich den Koordinaten (512, 0) und die Adresse 0 der Speicherzelle 208 entspricht z.B. den Koordinaten (512, 1). Diese Verschiebungswerte werden durch ein Signal (nicht gezeigt) bestimmt, das eine Chipbereichsspezifikation durchführt, direkt von außerhalb des LSI eingestellt wird, und in dem Adressverarbeitungsblock 216 verwendet wird. Wenn das Verarbeitungsgerät aus mehreren Halbleiterspeichern mit Arithmetikfunktion wie oben erwähnt zusammengesetzt ist, bestimmt der Adressverarbeitungsblock 216, ob die Daten zum Interpolieren spezifizierter Koordinaten in ihrer eigenen Speicherzelle lokalisiert sind. Wenn die Interpolation für durchführbar gehalten wird, gibt der Adressverarbeitungsblock wie oben beschrieben eine Zugriffsanfrage über die Signalleitung CXY an den Pixelverarbeitungsblock 217 aus und gibt gleichzeitig ein Signal RF aus, das die Ausgabe der Zugriffsanfrage an den Arithmetikblock 219 anzeigt. Falls die Interpolation für nicht durchführbar gehalten wird, gibt der Adressverarbeitungsblock ein Signal NRF aus, das die Deaktivierung der Zugriffsanfrage für eine Arithmetikoperation anzeigt, an den Arithmetikblock 219 aus. Die Bestimmung, ob die oben erwähnten Daten für die Interpolation in ihrer eigenen Speicherzelle lokalisiert sind, kann in einfacher Weise durch einen Komparator implementiert werden.

Der Filterkoeffizientenberechnungsblock 218 berechnet einen Gewichtungskoeffizienten zum Multiplizieren mit jedem Pixel in dem Interpolationslesezugriff. Genauer gesagt berechnet der Filterkoeffizientenberechnungsblock in den oben erwähnten Ausdrücken (1), (2) und (3) erwähnte Gewichtungskoeffizienten aus dem Bruchteilsanteil der Koordinaten und gibt die berechneten Koeffizienten über eine Signalleitung COEF an den Pixelarithmetiksteuerblock aus. Die Verarbeitung zum Erhalten von Gewichtungskoeffizienten kann in einfacher Weise durch ein Multiplizier- und ein Addierelement implementiert werden. Eine Interpolation durch einen kubischen Ausdruck erfordert eine Division durch drei. In diesem Fall kann die Verarbeitung auch durch Multiplikation mit einer Konstanten 1/3 implementiert werden. Falls die Stellenzahl eines Bruchteilsanteils klein ist, kann ein Koeffizient durch Bezugnahme auf eine Tabelle mit gespeicherten Koeffizienten in einem Speicher erhalten werden. Ohne Verwendung der Bruchteilsanteile von Koordinaten kann ein Laplace-Filter in gleicher Weise implementiert werden wie bei einem Interpolationslesezugriff, in dem ein Register zum Speichern eines Laplace-Filterkoeffizienten bereitgestellt wird.

Der Pixelarithmetiksteuerblock 217 verteilt Adressen von dem Adressteuerblock 216 für die Pixelverarbeitungsblöcke 203, 204, 205 und 206, eine den Zugriffstyp angebende Kennzeichnung, und Gewichtungskoeffizienten COEF zur Verwendung bei einem Interpolationslesezugriff an die Pixelverarbeitungsblöcke 203, 204, 205 und 206.

Der Arithmetikblock 219 empfängt das Signal RF, das anzeigt, daß eine Leseanfrage ausgegeben wurde, und erhält nach dem Verstreichen einer bestimmten Zeit Lesedaten RDTO bis 3 von den Pixelverarbeitungsblöcken 203, 204, 205 und 206, um die Daten zu addieren. Der Arithmetikblock gibt das Additionsergebnis an ein Signal SDT und stellt auf ein Signal SWT, das das Additionsergebnis "gültig" und "das Additionsergebnis von dem Halbleiterspeicher mit Arithmetikfunktion ausgegeben ist". Falls der Ausgangsdatenpufferblock vollgelaufen ist und daher keine Daten mehr annehmen kann, wird ein Signal SFULL bestätigt, so daß der Zustand des Arithmetikblocks 219 in diesem Moment nicht mehr geändert werden kann. Normalerweise wird SWT auf "gültig" eingestellt, wonach die nächste Arithmetikoperation begonnen werden kann. Um die Interpolation von 16 Pixeln durchzuführen, wird das Additionsergebnis intern gespeichert und die Ausgabe beim vierten Mal gemacht, wodurch SWT "gültig" gemacht wird. Falls das Signal NRF anzeigt, daß kein Interpolationsergebnis in diesem LSI bestätigt ist, ist das Arithmetikergebnis unsicher und SWT wird daher auf "gültig" und "das Interpolationsergebnis wird nicht von dem Halbleiterspeicher mit Arithmetikfunktion ausgegeben" eingestellt.

Die obige Beschreibung bezieht sich auf ein Beispiel eines Interpolationslesezugriffs. Im Fall eines direkten Lesespeicherzugriffs wird die entsprechende Einheit der Lesedaten RDTO bis 3 gemäß dem Signal RXY einschließlich der spezifizierten Koordinaten an RDT ausgegeben.

Im folgenden wird der Pixelverarbeitungsblock 203 unter Bezugnahme auf 6 beschrieben.

Zunächst ist ein das Eingangssignal des Pixelverarbeitungsblock darstellendes Signal PPCO aus einer Koordinaten anzeigenden Adresse, einer eine Zugriffsart anzeigenden Kennzeichnung, einem Gewichtungskoeffizienten und Schreibdaten für Datenschreibzugriff zusammengesetzt. In jedem Zugriffsmodus wird zuerst eine Adresse in einem Adressregister 220 gespeichert und durch eine Speichersteuerungseinheit in eine Speicherzellenadresse konvertiert, die mit einem Steuersignal an eine Signalleitung MADC ausgegeben wird. Beim Interpolationslesezugriff wird ein Gewichtungskoeffizient in einem Koeffizientenregister 223 gespeichert. Im direkten Schreibspeicherzugriff und im zweidimensionalen Schreibzugriff werden die zu schreibenden Daten nach der Adresse an PPCO gegeben, so daß diese Schreibdaten in einem Datenregister gespeichert werden.

Nachdem die Speichersteuereinheit 221 eine Datenleseanfrage von einer Speicherzelle ausgegeben hat und eine bestimmte Zeit verstrichen ist, werden die Lesedaten an eine Lesesignalleitung MRDT gegeben. Diese Zeit wird durch die Adresse für die Speicherzelle bestimmt. Falls die Adresse der gegenwärtig zu einem Leseverstärker 229 gelesenen Daten spezifiziert ist, werden die gelesenen Daten nach einem Taktsignal weitergegeben. Falls die Adresse von Daten nicht in dem Leseverstärker 229 spezifiziert ist, werden die gelesenen Daten nach sechs Taktsignalen weitergegeben.

Die gelesenen Daten werden in einer Multipliziereinheit 224 mit dem Wert des Koeffizientenregisters multipliziert und das Ergebnis wird über ein Signal RDTO an den Befehlsverarbeitungsblock 202 weitergegeben. Die Pixelverarbeitungsblöcke 204, 205 und 206 haben den gleichen Aufbau wie der Pixelverarbeitungsblock 203, weil der Befehlsverarbeitungsblock 202 auf jeden Pixelverarbeitungsblock unter Berücksichtigung von Unterschieden zugreift.

Im folgenden wird die Spoicherzelle 207 unter Bezugnahme auf 7 beschrieben.

Die Speicherzelle 207 ist zusammengesetzt aus einem Register WA 230 zum Speichern von Adressdaten auf dem Signal MADC, einem Speicherelement 233, das auf einem zweidimensionalen Gitter angeordnet ist, einem X-Decoder 232 zum Auswählen einer Reihe von Speicherelementen 232, einem Leseverstärker 229 zum Lesen von Daten einer Reihe der Speicherelemente 232 und zum Speichern der gelesenen Daten, einem Y-Decoder zum wahlweisen Lesen und Schreiben eines Pixels von in dem Leseverstärker gespeicherten Daten gemäß der in dem Register WA 230 abgelegten Adresse, und einer Steuerschaltung 231 zum Steuern des X-Decoders 232, des Leseverstärkers 229, und des Y-Decoders 228 gemäß dem Steuersignal auf dem Signal MADC.

Die gezeigte Speicherzelle ist die gleiche wie die Zelle eines gewöhnlichen dynamischen Speichers und keine besondere Speicherzelle. Das Steuersignal auf dem Signal MADC kann mit einer Operation zum Lesen einer Reihe von Speicherelementen 233 spezifiziert werden, die durch den X-Decoder in den Leseverstärker 229 gewählt werden, eine Operation zum Erhalten eines Pixels der Daten von den in dem Leseverstärker 229 angeordneten Daten und Ausgeben der erhaltenen Daten an das Signal MRDT, eine Operation zum Schreiben der Daten eines Signals MWDT der Lesedaten an den Leseverstärker 229, und eine Operation zum Schreiben der Daten des Leseverstärkers 229, die durch den X-Decoder ausgewählt sind, in eine Reihe der Speicherelemente 233. Gemäß dieser Ausführung steuert die Steuerschaltung 231 den X-Decoder 232, den Leseverstärker 229 und den Y-Decoder 228.

Im folgenden wird der Ausgangsdatenpufferblock 211 unter Bezugnahme auf 8 beschrieben.

Das SDT-Signal, das Daten zu einem Interpolationsergebnis von dem Befehlsverarbeitungsblock 202 darstellt, wird mit der Kennzeichnung "der Ausgabe von dem Halbleiterspeicher mit Arithmetikfunktion" gemäß der "gültig"-Kennzeichnung, die durch SWT angegeben ist, in einem Puffer BUFF 240 gespeichert. Dieser Puffer BUFF 240 ist ein FIFO. Daher wird, falls darin keine Daten mehr gespeichert werden können, ein SFULL-Signal bestätigt. Falls der Puffer BUFF 240 Daten enthält, bestätigt der Puffer ein Signal RDA und gibt gültige Daten an BDT und die Kennzeichnung "Ausgabe von dem Halbleiterspeicher mit Arithmetikfunktion" an ein Signal OE aus. Wenn ein Datenaktualisierungssignal UP von einem Ausgabeblock SBIO 241 kommt, gibt der Puffer die gepufferten Daten an die Signale BDT, RDA und OE aus.

Der Ausgabeblock SBIO 241 ist ein einfaches LSI-Eingangs/Ausgangs-Antriebselement. Wenn OE bestätigt wird, gibt der Ausgangsblock den Wert des Signals BDT an eine Signalleitung SO; wenn OE verneint wird, versetzt der Ausgabeblock die Signalleitung SO in den Hochimpedanzzustand. Die Signalleitungen SA und SR werden an RDA und UP unverändert über ein Antriebselement angeschlossen.

Zuletzt wird unter Bezugnahme auf 3 ein Verarbeitungsgerät zum Verarbeiten eines großen Bildes unter Verwendung mehrerer Halbleiterspeicher mit Arithmetikfunktion beschrieben.

Im folgenden wird ein Beispiel einer Bildvergrößerung gezeigt. Zuerst werden Bilddaten 20 eines zu vergrößernden Originalbilds in den Halbleiterspeicher mit Arithmetikfunktion 100, 101, 102 und 103 durch die höherrangige CPU über den Verarbeitungsprozessor gespeichert. An diesem Punkt gibt der Verarbeitungsprozessor 10 eine ganzzahlige Adresse (Koordinaten) und anschließend deren Daten an den Signalanschluß MEMC in den zweidimensionalen Schreibzugriff, wodurch die Pixel der Bilddaten 20 des Originalbilds an den Halbleiterspeicher mit Arithmetikfunktion gegeben werden. An diesem Punkt bestimmt jeder Halbleiterspeicher mit Arithmetikfunktion durch den Adressverarbeitungsblock 216, ob der Bereich in seinem eigenen Bereich liegt. Falls der Bereich in seinem eigenen Bereich liegt, führt der Halbleiterspeicher mit Arithmetikfunktion einen Schreibzugriff von dem Pixelarithmetiksteuerblock 217 zu der entsprechenden Speicherzelle durch. Die Beziehung zwischen diesem Halbleiterspeicher mit Arithmetikfunktion und den Bilddaten 20 des Originalbilds stellt einen etwas größeren Bereich dar als jeder der gleichmäßig geteilten Bereiche der Bilddaten 20 des Originalbilds, wie durch die von dem Halbleiterspeicher mit Arithmetikfunktion der 3 gezogene Verlängerungslinie gezeigt ist. Jeder Halbleiterspeicher mit Arithmetikfunktion hat nämlich in überlappender Weise Pixel um die Begrenzungen zwischen den getrennten Bereichen der Bilddaten 20 des Originalbilds. Die Größe der überlappenden Bereiche hängt von dem Interpolationsgrad ab. Bei Interpolation durch einen linearen Ausdruck beträgt die Größe einen Pixel. Bei Interpolation durch quadratische und kubische Ausdrücke beträgt die Größe zwei Pixel. Daher kann jeder Halbleiterspeicher mit Arithmetikfunktion die Pixel eines Originalbilds zur Interpolation innerhalb seines eigenen LSI lesen.

Im folgenden wird die Verarbeitung zum Lesen vorgegebener Koordinaten der Bilddaten 20 eines Originalbilds beschrieben. Der Verarbeitungsprozessor 10 gibt eine Adresse (Koordinaten) mit einer Bruchteilskomponente an den Signalanschluß MEMO im Interpolationslesezugriff. Diese Adresse kann durch sequentielles Addieren von etwa 0,77 erhalten werden, was den Kehrwert von 13 darstellt, falls das Bild zum Beispiel um den Faktor 13 zu vergrößern ist. Die so erhaltene Adresse kann kontinuierlich weitergegeben werden, bis ein WAIT-Signal einer Signalleitungsgruppe ADC bestätigt wird. Währenddessen veranlaßt der Halbleiterspeicher mit Arithmetikfunktion, falls dieser Interpolationslesezugriff gemacht wird, den Adressverarbeitungsblock 216 des Befehlsverarbeitungsblocks 202 dazu, zu bestimmen, ob die spezifizierte Adresse die Adresse darstellt, die durch den Halbleiterspeicher mit Arithmetikfunktion, wie zuvor beschrieben, auszugeben ist; und gibt das Interpolationsergebnis an den Ausgangsdatenpufferblock 211 aus. Falls die Adresse die durch den Halbleiterspeicher mit Arithmetikfunktion auszugebende Adresse ist, wird der SA-Anschluß desselben nach Erhalt des Interpolationsergebnisses bestätigt. Falls die Adresse nicht die auszugebende Adresse ist, wird der SA-Anschluß einmal für jeden Interpolationslesezugriff bestätigt. Das Signal des SA-Anschlusses wird an einen MEMA-Anschluß des Verarbeitungsprozessors 10 durch ein UND-Gatter angeschlossen, durch das der Verarbeitungsprozessor 10 erfährt, daß das Leseergebnis für eine Interpolationsleseanfrage erstellt wurde. Falls der Verarbeitungsprozessor 10 diese Daten erhält, um ein nächstes Interpolationsleseergebnis anzufordern, wird durch die Bestätigung eines MEMR-Anschlusses, der an den SR-Anschluß jedes Halbleiterspeichers mit Arithmetikfunktion angeschlossen ist, das nächste Interpolationsleseergebnis an den SO-Anschluß ausgegeben.

Durch Wiederholen der oben angegebenen Verarbeitung werden die Pixeldaten eines neuen Bildes als Ergebnis der Vergrößerung der Bilddaten 20 des Originalbilds erhalten. Das neue so erhaltene Bild wird durch einen nicht gezeigten Anschluß des Verarbeitungsprozessors in den Bildspeicher geschrieben, um auf einem CRT oder dergleichen angezeigt zu werden.

Wie oben unter Bezugnahme auf ein Ausführungsbeispiel beschrieben, kann der Speicherzugriff innerhalb des LSI-Chips so erfolgen, daß, falls die Anzahl von an den höherrangigen Prozessor angeschlossenen Signalleitungen gleich groß ist wie die Signalfrequenz, die Verarbeitungsgeschwindigkeit um das Vierfache erhöht wird, wobei vier der Grad des parallelen Speicherzugriffs ist, nämlich die Anzahl der Pixelverarbeitungsblöcke. Innerhalb des LSI erhöht sich die Verarbeitungsgeschwindigkeit aufgrund der geringen Verdrahtungskapazität noch weiter. Umgekehrt wäre zur Implementierung derselben Leistungsfähigkeit durch einen herkömmlichen Aufbau eine Parallelität von mehr als dem Vierfachen erforderlich, was die Größe und die Kosten der Anordnung erhöhen würde.

Die Pixelverarbeitungsblöcke sind mit einer Multipliziereinheit in Pixeleinheiten ausgerüstet und die Multiplikation wird parallel durchgeführt, wodurch eine Interpolation zur Bildverkleinerung und -vergrößerung bei hoher Geschwindigkeit möglich ist.

Falls mehrere Halbleiterspeicher mit Arithmetikfunktion zur Handhabung eines großen Bilds verwendet werden, ist eine Schaltung vorgesehen, um zu bestimmen, daß ein etwas größerer Bereich als der Bereich eines in jedem Halbleiterspeicher mit Arithmetikfunktion gespeicherten Bilds der durch den Halbleiterspeicher mit Arithmetikfunktion auszugebende Bereich ist. Durch diese neue Anordnung kann ein Adressbereich eingerichtet werden, der größer ist als der Adressbereich der tatsächlich gespeicherten Daten und ein kleiner Adressbereich zwischen angrenzenden Dateneinheiten, wenn die Halbleiterspeicher mit Arithmetikfunktion von dem höherrangigen Prozessor aus betrachtet werden.

Das vorliegende Ausführungsbeispiel wurde vorwiegend unter Bezugnahme auf eine Vergrößerung und Verkleinerung eines zweidimensionalen Bildes beschrieben. Es ist offensichtlich, daß der gleiche Effekt durch die gleiche Anordnung bezüglich eines dreidimensionalen und eines vierdimensionalen Bildes (die vierte Dimension kann die Zeitachse oder mehrere vorgefilterte dreidimensionale Bilder darstellen) erhalten werden kann.

Durch Verwendung des bezüglich des vorliegenden Ausführungsbeispiels kurz beschriebenen Aufbaus kann Bildverarbeitung, wie z.B. ein Laplace-Filter, durchgeführt werden.

Wie gemäß der vorliegenden Erfindung beschrieben, kann eine Adresse mit einer Bruchteilskomponente zu den Daten spezifiziert werden, die an einer ganzzahligen Adresse gespeichert sind, wodurch eine Interpolation der Daten bei hoher Geschwindigkeit möglich ist.

Durch Ablegen der Daten eines größeren Adressbereichs als den durch einen Halbleiterspeicher mit Arithmetikfunktion ausgegebenen Adressbereich können bei hoher Geschwindigkeit und geringen Kosten interpolierte Daten für die Daten eines riesigen Adressbereichs durch Verwendung mehrerer Halbleiterspeicher mit Arithmetikfunktion bereitgestellt werden.


Anspruch[de]
Halbleiterspeicher mit Arithmetikfunktion (100) zur Verwendung mit einem Prozessor, wobei der Halbleiterspeicher aufweist:

eine Speichereinrichtung (207, 208, 209, 210) zum Speichern von Daten, die ganzzahligen Adressen in einem kontinuierlichen N-dimensionalen Raum (wobei N eine ganze Zahl ist) entsprechen,

eine Daten-Arithmetikeinrichtung (224, 219) zum Empfangen einer Eingabebruchteilsadresse, die aus einer ganzzahligen Komponente, die eine N-dimensionale ganzzahlige Adresse ist, und einer N-dimensionalen Bruchteilskomponente zum Spezifizieren einer Adresse zwischen den ganzzahligen Adressen zusammengesetzt ist, und zum Lesen der Daten, die der durch die ganzzahlige Komponente angezeigten Adresse entsprechen, und der Daten vor und nach der durch die ganzzahlige Komponente in jeder Dimension angezeigten Adresse, sowie zum Durchführen einer arithmetischen Interpolation gemäß der Bruchteilskomponente,

eine Speichersteuereinheit (221) zum Steuern des Datenzugriffs in der Speichereinrichtung,

eine Ausgabeeinrichtung (211) zum Ausgeben des arithmetischen Ergebnisses der Daten-Arithmetikeinrichtung,

dadurch gekennzeichnet, daß

die Daten-Arithmetikeinrichtung (224, 219) dazu ausgelegt ist, die Interpolationsdaten zu berechnen, die den kontinuierlich eingegebenen Bruchteilsadressen entsprechen, und das berechnete Ergebnis auszugeben, und wobei

die Ausgabeeinrichtung (211) dazu ausgelegt ist, das berechnete Ergebnis auszugeben, das durch die Daten-Arithmetikeinrichtung anhand der Ausgabe eines Signals (SA), das anzeigt, daß die Arithmetikverarbeitung der Daten-Arithmetikeinrichtung beendet wurde, und der Eingabe eines Signals (SR), das anzeigt, daß der Prozessor ein arithmetisches Ergebnis zu lesen beginnt, berechnet wird.
Halbleiterspeicher mit Arithmetikfunktion nach Anspruch 1, wobei

die Speichereinrichtung (207, 208, 209, 210) mehrere Halbleiterspeicher (100, 101, 102, 103) mit Arithmetikfunktion aufweist, die jeweils dazu ausgelegt sind, einen Teil der Daten eines anderen der mehreren Halbleiterspeicher (100, 101, 102, 103) in sich wechselseitig überlappender Weise zu speichern, und

jeder der mehreren Halbleiterspeicher (100, 101, 102, 103) eine Adressbestimmungseinrichtung aufweist, um festzustellen, ob die Adresse, die die von dem Prozessor (10) eingegebene N-dimensionale Bruchteilskomponente aufweist, innerhalb des Adressbereichs der in der Speichereinrichtung (207, 208, 209, 210) gespeicherten Daten liegt.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com