DE2747075A1 - Bildspeicherung und -verarbeitung - Google Patents

Bildspeicherung und -verarbeitung

Info

Publication number
DE2747075A1
DE2747075A1 DE19772747075 DE2747075A DE2747075A1 DE 2747075 A1 DE2747075 A1 DE 2747075A1 DE 19772747075 DE19772747075 DE 19772747075 DE 2747075 A DE2747075 A DE 2747075A DE 2747075 A1 DE2747075 A1 DE 2747075A1
Authority
DE
Germany
Prior art keywords
circuit
subgroup
pixels
memory
gate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19772747075
Other languages
English (en)
Other versions
DE2747075C2 (de
Inventor
David Curtis Van Voorhis
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2747075A1 publication Critical patent/DE2747075A1/de
Application granted granted Critical
Publication of DE2747075C2 publication Critical patent/DE2747075C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix

Description

Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504 ru/bm
Bildspeicherung und -verarbeitung
Die Erfindung betrifft eine Anordnung nach dem Oberbegriff des Anspruchs 1.
Ein Digitalbild wird als zweidimensionale Gruppe von Bildpunkten betrachtet, von denen jede eine ganze Zahl oder einen Satz ganzer Zahlen enthält. Die Bildmanipulation schließt im Idealfall die Möglichkeit ein, eine Bildgruppe in einem Speicher zu speichern und auf ausgewählten Punktbündeln wie etwa Punktfolgen in einer Zeile oder Spalte der Gruppe und Punkten innerhalb eines kleinen Rechtecks gleichzeitig zu arbeiten. Dadurch ergibt sich die Einschränkung, daß der Speicher die Ansteuerung aller Punkte in jedem gewählten Bündel in einem Speicherzyklus gestatten muß. Wenn eine gewünschte Kombination von Punkten in der Gruppe gleichzeitig von einem bitadressierbaren Speicher angesteuert werden könnte, wäre die Speicherung und der Abruf von Bündeln von Bildpunkten kein Problem. Weil digitale Bilder jedoch große Gruppen bilden, stehen nur wortorganisierte Speicher wirtschaftlich zur Verfügung. Ein herkömmlicher wortorganisierter Speicher besteht aus mehreren wahlfrei adressierbaren Wörtern von Speicherstellen, wobei jedes Wort ein Bündel von Bildpunkten speichern kann. Der Zugriffsmechanismus dieses herkömmlichen Speichers muß jedoch verändert werden, um die Ansteuerung von Bildpunktbündeln zu ermöglichen, wenn diese Punkte nicht alle in demselben Speicherwort liegen.
809821/0604
Ein Bild kann dargestellt werden durch eine M χ N-Gruppe I (·>,*) von Bildpunkten, wobei jeder Punkt I(i,j) für 0<i<H und CKj<N eine ganze Zahl oder einen Satz ganzer Zahlen ist, die Farbe und Helligkeit eines Bildteiles darstellen. Der Einfachheit halber kann man sich auf Schwarz/Weiß-Bilder beschränken, für die I(i,j) ein Informationsbit ist. Typischerweise stellt I(i,j)=1 einen schwarzen Bildbereich und I(i,j)=O einen weißen Bildbereich dar.
Bilder werden am häufigsten erzeugt durch Abtastung von Bilddaten wie etwa von Dokumenten. Diese Bilder können dann gespeichert, an einem Bildschirmgerät betrachtet, übertragen oder gedruckt werden. Da die meisten Abtaster und Drucker ein Bild von oben nach unten und von links nach rechts verarbeiten, werden Bilder normalerweise in der einheitlichen Zeilenhauptfolge übertragen: I(0,0),1(0,1),...,1(O,N1), 1(1,0),...,I(M1,N1). Speichersysteme für Bildverarbeitung sollten daher wenigstens den gleichzeitigen Zugriff zu einer Anzahl benachbarter Bildpunkte auf einer Zeile gestatten. Dadurch könnte das Bild oder ein Bildteil schnell in das Speichersystem und aus dem Speichersystem übertragen werden, wenn viele Bildpunkte in jeder Seite gleichzeitig übertragen werden.
Für Bildverarbeitungsoperationen wie Zeichenerkennung muß ein Bild oder Teilbild um ein Mehrfaches von 90° gedreht werden. Solche Drehungen werden oft durch ein Speichersystem erleichtert, das die gleichzeitige Ansteuerung einer Anzahl benachbarter Punkte in einer Zeile oder Spalte des Bildbereiches I(*,*) gestattet. Mit einem solchen Speichersystem kann man ein in Hauptzeilenordnung übertragenes Bild um ein Mehrfaches von 90 gegen den Uhrzeigersinn drehen. Durch zeilenweise übertragung des Bildes beginnend mit der obersten Zeile und gleichzeitige Speicherung vieler Bildpunkte in jeder Zeile und durch spaltenweise übertragung des Bildes aus dem Speicher beginnend
SA 975 °65 809321/06 (H
mit der äußersten rechten Spalte, wobei viele Bildpunkte in jeder Spalte gleichzeitig geholt werden.
Ebenso ist die Ansteuerung rechteckiger Punktblöcke innerhalb eines Bildes für eine andere Klasse von Bildverarbeitungsoperationen wie Blockeinschub,- Blockauszug und Konturenverfolgung erwünscht. Zum Bild eines gespeicherten Wörterbuches, das für jedes Zeichen eine vordefinierte Bitgruppe enthält, sollen beispielsweise alphanumerische Zeichen hinzugefügt, gelöscht oder ausgegeben werden oder es sollen auch andere rechteckige Bildblöcke verarbeitet werden. Algorithmen zur Lokalisierung der Konturen von Gegenständen im Bild bringen schließlich die Bewegung einer Positionsmarke von einem Bildpunkt zu einem anderen entlang einer Grenze eines Objektes mit sich. Der Konturenverfolgungsalgorithmus fordert den schnellen Zugriff zu einem Bildpunkt und mehreren benachbarten Bildpunkten, die zusammen einen Block von Bildpunkten bilden.
Ein wortorganisierter Randomspeicher besteht typischerweise aus mehreren Speichermoduln, von denen jeder ein Speicherelement mit mehreren wahlfrei ansteuerbaren Speicherzellen ist. Obwohl jede Zelle einen Bildpunkt speichern kann, der aus einem Informationsbit besteht, kann zu einem gegebenen Zeitpunkt nur jeweils eine Zelle in einem Modul zum Lesen oder Schreiben angesteuert werden. Der Adressier- oder Ansteuermechanismus eines herkömmlichen wortorganisierten Randomspeichers gibt die Adresse einer Zelle an alle sie enthaltenden Speichermoduln, so daß die i-te Zelle in einem Modul nur in Verbindung mit der i-ten Zelle aller anderen Moduln adressiert werden kann. Diese Zellen bilden zusammen das i-te Wort des Speichers. Ein herkömmlicher wortorganisierter Randomspeicher bietet somit Zugriff zu einem Bündel von Bildpunkten nur, wenn sie alle in demselben Speicherwort gespeichert sind. Eine geeignete Modifikation des Adressiermechanismus eines wortorganisierten Speichers kann
SA 975 065
b 0 9 R ? 1 / 0 6 Π U
jedoch den Zugriff zu jedem gewünschten Bündel von Bildpunkten unter der Voraussetzung gestatten, daß jedes Modul höchstens einen Punkt im Bündel speichert.
Wie oben schon gesagt wurde, ist ein Speichersystem erwünscht, das den gleichzeitigen Zugriff zu horizontalen Folgen, vertikalen Folgen und rechteckigen Blöcken von Bildpunkten gestattet. Wenn die gewünschten horizontalen und vertikalen Folgen pq-Bildpunkte enthalten und die Abmessungen der gewünschten Blöcke von Bildpunkten ρ χ q sind, dann braucht man ein Speichersystem mit wenigstens pq-Speichermoduln. Außerdem muß ein Verfahren zur Verteilung der Bildpunkte einer Bildgruppe I(*,*) auf Speichermoduln entwickelt werden, daß die pq-Elemente einer jeden Untergruppierung 1 χ pq, pq χ 1 oder ρ χ q von I(*,*) auf verschiedene Moduln setzt. Weiter muß eine Adressierschaltung entwickelt werden, die die gleichzeitige Adressierung dieser Untergruppen gestattet und ihre Elemente in die richtige Reihenfolge wie etwa die Zahlenhaupt folge bringt.
Um die Kosten eines Speichersystems zur Bildverarbeitung möglichst kleinzuhalten, soll die Anzahl von Speichermoduln im Speichersystem sehr kleingehalten werden. Es werden wenigstens pq-Speichermoduln gebraucht, da jede gewünschte Untergruppe aus pq-Bildpunkten besteht. Es kann jedoch gezeigt werden, daß kein Speichersystem mit lediglich pq-Speichermoduln den Zugriff zu allen Untergruppierungen 1 χ pq, pq χ 1 und ρ χ q einer Bildgruppe I(*,*) gestatten kann. Aus diesem Grund wurden einige früher beschriebene Speichersysteme auf pq-Speichermoduln eingeschränkt und gestatteten somit nicht den Zugriff zu all diesen Untergruppen. Bisher wurde die Ansicht vertreten, daß die zur Adressierung gespeicherter Untergruppen erforderliche Schaltung sehr kompliziert wird, wenn nicht pq und die Anzahl von Speichermoduln alle Potenzen von zwei sind, und somit würden wenigstens zwei pq-Speichermoduln gebraucht. ι
SA 975 O65 809821/06(H
Die Aufgabe der vorliegenden Erfindung besteht somit darin, einen herkömmlichen wortorganisierten Randomspeicher für die Bildverarbeitung so zu modifizieren, daß er ein Bild oder einen Bildteil, pq χ 1, 1 χ pq oder ρ χ q Bildpunkte enthaltend, speichert und deren Adressierung zum Lesen oder Schreiben in einer Zeile oder Spalte und innerhalb eines rechteckigen Bereiches dieser Gruppierung in nur einem Speicherzyklus gestattet.
Die Aufgabe der Erfindung wird gelöst insbesondere gemäß dem Kennzeichen des Anspruchs 1.
Das erfindungsgemäße Gerät enthält pq + 1-Speichermoduln mit der Bezeichnung 0,1...,pq, die zusammen eine Bildgruppe rp χ sq bestehend aus Bildpunkten I(i,j) speichern können, wobei i im Bereich 0^_i< rp und j im Bereich Oc_j< sq liegt. Außerdem enthält das Gerät eine Umlaufeinrichtung, durch die der Bildpunkt I(i,j) von und zum Speichermodul M(i,j) = (iq+j)// (pq+1) geführt wird. Darin bedeuten die beiden Schrägstriche den aus der ganzzahligen Division resultierenden Rest. Das beschriebene Gerät enthält außerdem einen Adreßrechner, der in Verbindung mit der Umlaufeinrichtung den Bildpunkt I(l,j) in die Stelle A(i,j) = (i/p)s+(j/q) des Speichermoduls M(i,j) speichern oder von dort lesen läßt. Es enthält außerdem eine Steuerung zum gleichzeitigen Speichern oder Abrufen der pq-Bildpunkte in jeder Untergruppe 1 χ pq, pq χ 1 oder ρ χ q der Bildgruppe und ermöglicht somit den Zugriff in allen Bitpositionen während eines Speicherzyklus.
Ausführungsbeispiele der Erfindung sind in den beigefügten Zeichnungen dargestellt und werden anschließend näher beschrieben.
ES zeigen:
SA 975 065
8098? 1 /060
274707b
Fig. 1 den Aufbau eines erfindungsgemäß modifizierten wortorganisierten Speichers,
Fign. 2a bestimmte Ausführungsbeispiele der für die und 2b Modulo-(pq+1)-Operationen erforderlichen logischen Schaltungen für den Fall p=q=4,
Fig. 3 in einem Blockdiagramm zwei bestimmte Ausführungsbeispiele der logischen Schaltungen, die die Modulo-(pq+1)-Operation x//(pq+1) für den Fall p=q=4 und 0<x£2pq+1 ausführen können,
Fig. 4 ein Ausführungsbeispiel der logischen Schaltungen, die die Modulo-(pq+1)-Operation xpq//(pq+1) ausführen können für den Fall p=Q=4 und O^
Fig. 5 in einem Blockdiagrainm ein Ausführungsbeispiel der logischen Schaltungen für die Berechnung (iq+j)//(pq+1) mit den herkömmlichen Addierern in Verbindung mit den in Fig. 3 und 4 gezeigten Schaltungen,
Fig. 6 ausgewählte logische Einzelheiten der Adreß-, Steuer- und Einschaltung der Fig. 1,
Fig. 7 im einzelnen den logischen Aufbau der in Fig. 6 gezeigten Logik,
Fig. 8 im einzelnen den logischen Aufbau der in Fig. 6 gezeigten Modullogik und
Fign. 9 im einzelnen die Logik für die Schaltung in Fig. und 10
SA975065 809821/06ΓΗ
274707b - 10 -
In Fig. 1 ist der Aufbau eines modifizierten wortorganisierten Randomspeichers gezeigt. Das Gerät enthält pq+1-Speichermoduln 20, 21, 22. Jeder iModul kann rs-Bildpunkte speichern, d.h., jeder Modul kann rs-Informationsbits speichern. Die Adressier-, Steuerungs- und Einschaltung 23 gestattet diesen Moduln jede Bildgruppe rp χ sq (oder kleiner) (I*,*) zu speichern und jede 1 χ pq, pq χ 1 oder ρ χ q-Untergruppe von I(*,*) zu adressieren. Zum Festhalten jeder dieser pq-Elementenuntergruppen vor der Speicherung oder nach dem Lesen der Bildinformation aus den Speichermoduln ist ein Datenregister 24 vorgesehen. Spezialschaltungen zur Umordnung von Daten, die Vertauscher 25 und 26, sind ebenfalls vorgesehen. Sie führen im Zusammenhang mit dieser Erfindung Elemente der Untergruppen von und zu entsprechenden Speichermoduln zur Speicherung und/oder zum Abruf. Die Steuerung der Vertauscher erfolgt in der Schaltung 23 über die dorthin führende Bahn 27.
Wenn eine bestimmte Untergruppe im Speichersystem gespeichert werden soll, wird mit dem Inhalt der Register 28, 29 und 30 die Form der Untergruppe und die Koordinaten (i,j) der oberen linken Ecke der Gruppe als Referenzpunkt oder Basisadresse bestimmt. Die zwei Bit großen Register 28 werden auf einen der Werte t=00, t=Oi oder t=10 gesetzt, um anzuzeigen, daß die Form der Untergruppe entsprechend 1 χ pq, pq x 1 oder ρ χ q ist. Das i-Register 29 und das j-Register 30 werden so geschaltet, daß sie die Koordinaten des obersten linken Elementes I(i,j) der Untergruppe anzeigen. Die Untergruppe selbst wird in Zeilenhauptordnung in das Datenregister 24 so gesetzt, daß I(i,j) in der obersten linken Position des Registers steht. Die Untergruppenelemente werden über die Leitungen 31, 32 und 33 an den Vertauscher 25 gegeben. Basierend auf den Werten von t, i und j veranlaßt der Steuerteil der Schaltung 23 den Vertauscher 25 dazu, jedes Element der Untergruppe über die Gegenleitungen 34, 35 und 36 zu dem Modul
zu leiten, in dem das Element zu speichern ist. Der Adreßteil SA 975 065
R09821 /060/,
der Schaltung 23 errechnet die Lage innerhalb des betreffenden Moduls. Die Adressen werden über die Leitungen 37, 38
und 39 an die Moduln gegeben. Der Anschaltteil der Schaltung 23 liefert Einschaltsignale an die pq-Speichermoduln, die die Untergruppe speichern sollen. Diese Einschaltsignale werden über die Leitungen 40, 41 und 42 an die zu den Speichermoduln 20, 21 und 22 gehörenden UND-Glieder 43, 44 und 45
gegeben. Schließlich sorgt ein von einer externen Lese-/
Schreibsteuerquelle 47 stammendes Schreibsignal auf den Leitungen 46 dafür, daß die pq-Elemente der Untergruppe gleichzeitig in den eingeschalteten pq-Speichermoduln gespeichert werden.
Wenn eine bestimmte Untergruppe aus dem Speichersystem zu
lesen ist, werden die Register t, i und j wie oben beschrieben geschaltet, um die Form der Untergruppe anzuzeigen und ihr oberstes linkes Element zu identifizieren. Der Einschaltteil der Schaltung 23 schaltet die pq-Speichermoduln ein, die Elemente der gewünschten Untergruppe enthalten. Der Adreßteil der Schaltung 23 errechnet aus den Werten von t, i und j für jeden eingeschalteten Speichermodul die Lage des einen Elementes der Untergruppe, das der Modul enthält. Nach Ausführung der Berechnungen sorgt ein Lesesignal von der Lese-/ Schreibsteuerquelle 47 auf den Leitungen 46 dafür, daß die
pq-Elemente der Untergruppen von den eingeschalteten Moduln gelesen und über die Leitungen 48, 49 und 50 an den Vertauscher 26 geleitet werden. Der Steuerteil der Schaltung 23 [veranlaßt den Vertauscher 26 zur Ordnung der Elemente der
Untergruppe in Zeilenhauptordnung, und zu ihrer Führung an das Datenregister 24 über die Leitungen 51, 52 und 53.
Sobald eine Untergruppe 1 χ pq, pq χ 1 oder ρ χ q von I (*,*) vom Speichersystem geholt oder dorthin gespeichert wird, muß der Einschaltteil der Schaltung 23 einen Booleschen Wert b (i,j,k,t) für 0<k<q errechnen, der angibt, ob der Karten-Speichermodul ein Untergruppenelement liefern oder aufnehmen SA 975 065
809821/0604
27 4 7Ü 75
soll. Der Adreßteil der Schaltung 2 3 muß für k im Bereich CKk<pq die Lage l(i,j,k,t) des Einzelelementes e(i,j,k,t) der Untergruppe errechnen, das entweder im Kartenspeichermodul enthalten ist oder dahin gesetzt werden soll. Der Steuerteil der Schaltung 23 muß zusammen mit den Vertauschern 25 und 26 das Element e(i,j,k,t) ordnen, damit es von oder zu der entsprechenden Position im Register 24 geführt wird. Die nachfolgende Tabelle I faßt die Berechnungen und die erforderlichen Führungsmuster für den Zugriff zu einer Untergruppe zusammen, deren oberstes linkes Element der Bildpunkt I(i,j) ist. Die Berechnungen der Einschaltfunktion b(i,j,k,t) und der Adreßfunktion l(i,j,k,t) verlangen die vorherige Berechnung von zv/ei Hilfsfunktionen g(i,j,k,t) und h(i,j,k,t). Das Führungsmuster gibt an, welche pq-Positionen d (0),d(1),·.., d(pq-1) des Datenregisters 24 das Element e(i,j,k,t) empfangen oder liefern sollen, das im Modul k enthalten ist oder !dorthin gesetzt werden soll.
Form der Formbe- Zwischen- b(i,j,k,t) Leitmuster
Untergruppe
zeichnung rechnungen
1 χ pq t=00 5 Y=(k-m)//(pq+l) 80982 1 / b=LT(>,pq) c(i,j,k,t)-.dh) I e(1.J.k,t)-.d(Y)
β=γ α=0
U=(iq+j)//(pq+l) l = ([i+a])/P)s + (j((S)/q
m=(-pu)//(pq+l) .
pq χ 1 t=01 Y=(-pu-m)//(pq+l) b=LT(Y,pq) e(i.j,k.t)^.d(v)
α=γ *
β=0 l-(Ci+«]/p)s+(j+(O/q
U=(iq+j)//(pq+l)
m=|j
ρ χ q t=io 0»Y//q b=LT(Y,pq)
u=y/q
&A y/s ob 9804
- 13 Tabelle I - algebraische Beschreibung des Speichersystems.
Die Berechnungen und Führungsnuster basieren auf der vorgegebenen Verteilung von Bildpunkten auf pq+1-Speichermoduln. Anschließend wird zuerst die gewählte Verteilungsstrategie begründet.
Verteilungsstrategie
Die Aufgabe der Erfindung besteht bekanntlich in der Konstruktion eines Speichersystems, das eine rp χ sq-Bildgruppe I(*,*) speichern kann, bestehend aus Bildpunkten I (i,j), wobei i im Bereich von O^i<rp und j im Bereich O^j<sq liegt. Außerdem muß das Speichersystem das Bild so speichern können, daß der Zugriff zu allen Untergruppen 1 χ pq, pq x 1 und ρ χ q von I(*,*) möglich ist.
Wenn das in Fig. 1 dargelegte Speichersystem die Bildgruppe I(*,*) speichern soll, dann muß für jeden Bildpunkt I(i,j) festgestellt werden, welche der pq+1-Speichermoduln 20, 21 oder 22 den Bildpunkt I(i,j) speichern sollen. Es wurde festgestellt, daß bei Zuordnung der Nummern O, 1,...,pq gemäß Darstellung in Fig. 1 zu den Speichermoduln die Verteilung der Bildpunkte unter den Moduln ausreichend dadurch beschrieben werden kann, daß man eine ganzzahlige Modulzuordnungsfunktion M(k,j) mit folgender Charakteristik angibt:
für ganze Zahlen i und j im Bereich O^i<rp und CKj<sq liegt der Wert von M(i,j) im Bereich von CKM(i,j)<pq.
Jeder Bildpunkt I(i,j) wird dann im M(i,j)-ten Speichermodul gespeichert.
Wenn das in Fig. 1 aufgezeigte Speichersystem die Bildgruppe I(*,*) so speichern soll, daß der gleichzeitige Zugriff zu pq-Bildpunkten in jeder Untergruppe 1 χ pq von
SA975065 809821/0604
274707b
I(*,*) möglich ist, dann müssen diese Bildpunkte in verschiedenen Speichermoduln gespeichert werden, weil nur eine Zelle eines jeden Speichermoduls in jeweils einem Augenblick wahlfrei adressierbar ist. Dasselbe gilt sinngemäß für die Bildpunkte in den Untergruppen pq χ 1 oder ρ χ q.
VJidererwarten konnte festgestellt werden, daß die pq-Bildpunkte einer jeden Untergruppe 1 χ pq, pq χ 1 und ρ χ q in verschiedenen Speichermoduln gespeichert werden, wenn die Modulzuordnungsfunktion M(i,j) die Form M(i,j)=(iq+j)//(pq+1) annahm, wobei die beiden Schrägstriche den Rest der ganzzahligen Division bezeichnen. Damit wäre die gleichzeitige Ansteuerung der pq-Bildpunkte in der gewünschten Untergruppe möglich.
Die Modulzuordnungsfunktion M(i,j)=(iq+j)//(pq+1) ist in Tabelle II für den Fall dargestellt, daß p=q=4 und r=s=8 ist. Die Dezimalzahl in der j-ten Position der i-ten Zeile der Gruppe 32 χ 32 in Tabelle II bezeichnet den Speichermodul M(i,j) zum Speichern des Bildpunktes I(i,j). In dieser Tabelle stellen die Buchstaben A bis G beispielsweise die Dezimalzahlen 10 bis 16 dar, die eingekreiste Eintragung in der sechsten Position der fünften Zeile ist eine 9, die besagt, daß der Bildpunkt 1(5,6) im neunten Speichermodul gespeichert wird. Das errechnet sich wie folgt:
= ([5x4]+6)//[4x4]+1)
SA 975 °65 «09821/060/*
20 24 28
20
24 28
0123456789ABCDEFG0123456789AUCÜEI 456789ABCDEFG0123456789ABCDEFG01
89ABCDEFG0123456789ABCDEFG012345
1 CDEFG012345 6 789ABCDEFG01234567139J
60123456789ABC0EFG0123456789AUCDI
3 4 5 6 7 8 7 8 9 A B C BCDEFG F G 0 1 2 3
9ίΑ B C
DE F G
OjI 2 3 4|5 6 7
DEFG0123456
9ABC. DEFGO
0123456789ABCDEFG01234 456789ABCDEFG012345678 89ABCDEFG01 23456789AUC
2 3 4 5 6 7I8J9 ABCDEFG0123456789ABC0EFG 6 7 8 9 A B|c|o EFG0123456789ABCDEFG0123
ABCDE fJgIo 123456789A6CDEFG01234567 EFGOI 2|3|4 56789ABCDEFG0123456789AB 12 3 4 5 6}7*8 8ABCDEFG0123456789ABCDEF |
5 6 7 8 9 a{b|C DEFG0123456789A11CDEFG012 j 9 A B C D EJFJg 0123456789ABCDEFG0123456 ! DEFGO 1I2J3 456789ABCDEFG01234567Ü9A j 0 12 3 4 5I6I7 89ABCD[FGOl 2345 6 789ABCI)L
I I
4 5 6 7 8 9>A|B CDEFG0123456789A B CDEFGOl , 8 9 A B C D)E)F G O 1 2 3 4 5 6 7 8 9 A B C D [ F G O 1 234b CDEFG Ojjj2 3456789ABCDEFG0123456789]
G O 1 2 3 4 S 6 7 8 9 A B C O E F G O U 3 4 5 6 7 8 9 A Il C D ' 3 4 5 6 7 8 9 A B C D E F G O 1 2 3 4 5 6 7 B 9 A B C D E I' G O ! 789ABCDEFG0123456789ABCDEFG01234
BCDEFG0123456789ABC0EFG012345678
FG0123456789ABCDEFG0123456789ABC1
2 3 4 S 6 7 8 9 A B C D E F G O 1 2 3 4 S 6 7 8 9 A B C D E F G !
6 7 8 9 A B C O E F G O 1 2 3 4 5 6 7 8 9 A ϋ C D E F G O 1 2 3 ; A B C D E F G O 1 2 3 4 5 6 7 I) 9 A B C D E F G O 1 2 3 4 5 6 7 ! CF60U34S07B9ABC0EFG01 234S6789AI | WMt(7e)AlCD£FGO12HSi78»ABCO[F 56789ABCDEFG01Z34S67eeAICDtFC01i
Tabelle Il - Modulzuordnungsfunktion M(iJ)=iq+j)//(pq+1) für den Fall, daß p=q=4 und r=s=8 ist.
SA 975 065
809821/06(K
ORIGINAL INSPECTED
Aus Tabelle II ist zu ersehen, daß die pq=16 Bildpunkte in jeder Untergruppe 1 xpq=1 χ 16 in verschiedenen Speichermoduln gespeichert sind. Die in Tabelle II angegebene horizontale Folge aus 16 Elementen zeigt beispielsweise, daß die Bildpunkte 1(5,6), 1(5,7),...,1(5,21) entsprechend in den Speichermoduln 9,A,B,C,D,E,F,G,O,1,2,3,4,5,6 und 7 gespeichert sind. Außerdem geht aus Tabelle II hervor, daß die pq = 16 Elemente einer jeden Untergruppe pqx1=16x1 in verschiedenen Speichermoduln gespeichert sind. Die angegebene vertikale Folge zeigt z.B., daß die Bildpunkte 1(5,6),1(6,6),...,1(2O,6) entsprechend in den Speichermoduln 9,E,O,4,8,C,G,3,7,B,F,2,6,A,E und 1 gespeichert sind. Schließlich geht aus Tabelle II noch hervor, daß die pq = 16 Bildpunkte einer jeden Untergruppe pxq = 4x4in verschiedenen Speichermoduln gespeichert sind. Der in Tabelle II angegebene 4 χ 4-Block bezeichnet beispeilsweise die Speichermodulzuordnungen für die Bildpunkte in der 4 χ 4-Untergruppe, deren oberes linkes Element der Bildpunkt 1(5,6) ist.
Die obige ModulZuordnungsfunktion M(i,j) ordnet rs-Bildpunkte einem jeden der pq-Speichermoduln zu, ohne die Zellenlage anzugeben, in der sie gespeichert sind. Widererwarten konnte beobachtet werden, daß die Bildpunkte einfach in der Stelle A(i,j) des Speichermoduls M(i,j) gespeichert werden können, wenn eine solche Funktion sich entsprechender Form A(i,j)=(i/p)s+(j/q) änderte, wobei i/p und j/q ganzzahlige Quotienten sind.
Die Adreßzuordnungsfunktion A(i,j) ist in Tabelle III für den Fall gezeigt, daß p=q=4 und r=s=8 sind. Die ganzen Dezimalzahlen innerhalb jedes ρ χ q = 4 χ 4-Blockes bezeichnen die Adresse der entsprechenden pq=16 Bildpunkte. Die fünfte Position auf der zehnten Zeile führt beispielsjweise in den 4x4 Block, der mit der Dezimalzahl 17
SA975065 809821/06Oi
17 4 V Q 7 b
bezeichnet ist. Das besagt, daß der Bildpunkt 1(10,5) in der siebzehnten Zelle des Speichermoduls M(10,5) gespeichert ist. Die Rechnung ist folgende: A(i,j)=A(10,5)=(i/p)s+(j/q)
=(1O/4)8+(5/4)
17
J- o 0 4 1 C)
(J
2 2 3 16 4 20 5 L14 6 7 3+j/q
1=0 8 9 10 11 12 13 14 15
4 16 17 18 19 20 21 22 23
8 24 25 26 27 2.'; 29 30 31
12 32 33 34 35 36 37 38 39
16· 40 41 42 43 44 45 46 47
20 48 49 50 51 52 · 53 54 55
24 56 57 58 59 60 61 ? 03
28 trabeile III - Adreßzuordnungsfunktion (A(i,
für den Fall, daß p=q=4 und r=s=8 ist.
SA 975 065
e ο 9 8 71 / η β ο 4
Aufbau
Wie aus der algebraischen Beschreibung in Tabelle I zu ersehen ist, muß die Schaltung 23 für das gezeigte Speichersystem eine Anzahl von Modulo-(pq+1)-Operationen übernehmen, Die Kombinationsschaltung für diese Berechnungen kann in verschiedene Sonderfälle aufgeteilt werden, die nachfolgend separat betrachtet werden.
Fall 1:
Auswertung x//(pq+1) für χε [O,2pq+1J.
Diese für die Auswertung von (iq+j)//(pq+1), im nachfolgenden Fall 2 beschrieben, erforderliche Berechnung kann vorgenommen werden nach der Identität x//(pq+1) 3 χ -(pq+1). LT(χ-[pq+1],O.
Anmerkung: Die Boolesche Funktion "kleiner als" LT ist definiert durch den bezogenen Wert LT (4,3)=1, wenn und nur wenn y < z).
Die Fign. 2a und 2b zeigen die Verwendung eines Addierers oder Halbaddierers zur Berechnung von x//(pa+1) wenn χ _< 33 und p=q=4 ist.
In Fig. 2a ist eine Schaltung zur Ausführung der Ilodulo-17-Operation x//17 = χ -17 · LT(x -17,0) gezeigt, wenn χ eine sechs Bit große binäre Zahl ist, die die Forderung O£x£33 erfüllt. Die Modulo-17-Schaltung enthält im wesentlichen drei Schaltkreise (ODER-Glied 208, UND-Glied 210 und ODER-Glied 216), zur Feststellung ob xM7, d.h., ob der Boolesche Wert LT(x -17,0) falsch ist; einen Addierer 202 zur Berechnung von χ -17 bei Bedarf durch Addition der binären Darstellung 01111 des Wertes -17 zu χ und vier Schaltungen (Inverter 214, UND-Glieder 204 und 212 und das ODER-Glied
SA 975 °65 6 0 9821 /06 Π 4
206) zur Bezeichnung der zwei SonderSituationen (x=33 und x=16), unter denen x//17=16 ist.
Wie in Fig. 2a dargestellt ist, sind oben am Block sechs Eingangsleitungen für den Wert χ vorgesehen. Die vier wertniederen Bits von χ werden an das ODER-Glied 208 und den Addierer 202 gegeben, das fünfte Bit von χ wird an die UND-Glieder 210 und 212 gegeben und das werthohe Bit von χ wird mit dem wertniederen Bit von χ im UND-Glied 204 kombiniert. Die Ausgabe des ODER-Gliedes 208 wird mit dem fünften Bit von χ im UND-Glied 210 zu einem Ausgang kombiniert, der wahr ist, sobald x=17,18,19,20,21,22,23,24,25,26, 27,28,29,30 oder 31 ist. Die Ausgabe des UND-Gliedes 210 wird dann mit dem werthohen Bit von χ am ODER-Glied 216 zu einem Ausgang kombiniert, der wahr ist, wenn χ·>17 ist, d.h., sobald der Boolesche Wert LT(x -16,0) falsch ist. Die Ausgabe des ODER-Gliedes 216 dient als zweiter Eingang zum Addierer 202.
Der Ausgang des ODER-Gliedes 208 wird durch den Inverter 214 negiert und mit dem fünften Bit von χ im UND-Glied zu einem Ausgang kombiniert, der nur wahr ist, wenn x-16 ist. Der Ausgang des UND-Gliedes 204 ist nur wahr, wenn x=33 ist. Das ODER-Glied 206 kombiniert die Ausgänge der UND-Glieder 212 und 204 miteinander und somit ist der Ausgang des ODER-Gliedes 206 nur wahr, wenn x=16 oder x=33 fLst, so daß der gewünschte Modulo-17-Rest von χ den Wert hat.
Wenn ρ und q beides Potenzen von zwei sind, kann der Addierer 202 durch den Halbaddierer 218 nach Darstellung in •"ig. 2b ersetzt werden, unter Hinzufügung der Inverter 220. Die Schaltung arbeitet im wesentlichen genauso wie die in 11Ig. 2a dargestellte Schaltung und erzeugt den Modulo-17-lest des x-Einganges zur Zelle 200. Jede dieser Schaltungen .st für die in Fig. 8 verwendete MOD-17A-ZeIIe geeignet.
809821/0604
- 20 Fall 2;
Auswertung (iq+j)//(pq+1). Das ist die einzige schwierige Modulo-(pq+1)-Rechnung für das gezeigte Speichersystem. Glücklicherweise ist (iq+j)//(pq+1) ein Zwischenwert, der nur einmal berechnet zu werden braucht. Die Hardwareberechnung von (iq+j)//(pq+1) basiert auf der Beobachtung, daß diese Menge als einfache Funktion der binären Zahlen in den binären Darstellungen von i und j ausgedrückt werden kann. Wenn diese binären Darstellungen i ...i.i bzw. j ...J1J0, sind, dann
(iq+j)
t=Ojt2J
t=oitIq2t//(pq+1)l
+σ t=ojtIst//(pq+1)l\ //(pq+1)·
In dieser letzten Formel sind die Mengen i und j Boolesche
t t
Variable, während die Mengen q2 //(pq+1) und 2 //(pq+1) konstante Gewichte sind, die fest verdrahtet sind. Nach Darstellung in Fig. 3 kann man also für den Fall p=q=4 und r=s=256 die Werte für (iq+j)//(pq+1) errechnen durch eine Kaskade von Addierern 260, die mit M0D-17A-Zellen 2OO verschachtelt sind, die die für den Fall 1 beschriebene Grundberechnung Ilodulo-(pq+1) ausführen. Die Gewichte 4,2fc//17 und 2*7/17 sind in Fig. 3 über den entsprechenden Zahlen i. und j. angegeben und die Ausgabe (4i+j)//17 ist vorgesehen.
Die in Fig. 3 gezeigte Lösung zur Berechnung von (iq+j)//(pq+1) kann durch Verwendung einer Kombinationsschaltung anstelle der Addierer etwas vereinfacht werden. Diese Änderung ist in Fig. 4 gezeigt, wo eine einfache Kombinationsschaltung mit der !Bezeichnung MOD-17B-ZeIIe 222 für die Berechnung 16x//17 sorgt.
SA 975 065
809821 /0604
TlU7Ü 7 S
Fig. 5 zeigt die Benutzung dieser MOD-17B-ZeIIe 222 für die Berechnung von (iq+j)//(pq+1), wenn p=q=4 und r=s=8192 ist. Die in Fig. 5 gezeigte Schaltung kann (4i+j)//17 für wesentlich größere Vierte von i und j berechnen. Die Schaltung besteht aus einer Kaskade von Addierern 260 und MOD-17B-Zellen 222, denen eine weitere Kaskade aus ?1OD-17A-7.ellen 2OO und Addierern 260 nachgeschaltet ist. Diese Organisation wird auch von der Schaltung 130 in Fig. 7 benutzt für die Berechnung von u=(iq+j) 11(pq+1), wenn p=q=4 und r=s=8 ist.
In Fig. 4 ist eine Schaltung für die Ausführung der Modulo-17-Operation 16x//17 gezeigt, wenn χ eine vier Bit große binäre Zahl ist, die die Forderung 0<x£i5 erfüllt. Wie dargestellt, sind oben am Block vier Eingangsleitungen für den Wert χ vorgesehen.
Das wertniedere Bit von χ wird als ein Eingang auf das UND-Glied 224 und über den Inverter 226 auf einen Eingang des UND-Gliedes 228 gekoppelt. Die drei werthohen Bits von χ werden als Eingänge auf das ODER-Glied 230 gegeben, dessen Ausgang als ein Eingang zum UND-Glied 228 und über den Inverter 232 zum UND-Glied 224 dient. Der Ausgang des UND-Gliedes 228 bildet den wertniederen Ausgang von der Zelle und der Ausgang des UND-Gliedes 224 den werthohen Ausgang von der Zelle. Das Bit der zweiten Stelle von χ bildet das Ausgangssignal der zweiten Stelle von der Zelle und wird als ein Eingang auf das UND-Glied 234 und über den Inverter 236 auf das UND-Glied 238 gekoppelt. Das dritte Bit von χ wird als ein Eingang auf das UND-Glied 238 und über den Inverter 240 auf das UND-Glied 234 gegeben. Der Ausgang der UND-Glieder 234 und 238 wird als Eingang auf das ODER-Glied 224 gekoppelt, dessen Ausgang das dritte Ausgangssignal von der Zelle liefert. Das werthohe Bit von χ wird als ein Eingang an das UND-Glied und über den Inverter 246 an das UND-Glied 248 angelegt. Das zweite und dritte Bit von χ werden als Eingänge an das
SA 975 065
B09821 /OßfH
27 4 7 0 7b
ODER-Glied 250 gegeben, dessen Signal als ein Eingang zum UND-Glied 248 und über den Inverter 252 zum UND-Glied 244 dient. Die Ausgabe-Signale der UND-Glieder 24 4 und 248 werden als Eingabe auf das ODER-Glied 254 gekoppelt, das das vierte Ausgangssignal von der Zelle liefert.
Fall 3:
Auswertung von (-px)//(pq+1) für χε [O,pq]. Diese für die Adressierung von pqx1-Untergruppen benötigte Berechnung kann vorgenommen v/erden nach der Identität
+ EQ(x//q,O) + x/q.
(Anmerkung; Die Boolesche Gleichheitsfunktion EQ(.,.) wird durch die Relation EQ(x,y)=1 definiert, wenn und nur wenn x=y ist). Wie durch die Schaltung 131 in Fig. 7 für den Fall p=q=4 gezeigt ist, genügen für diese Berechnung einige Schaltglieder und ein Halbaddierer.
Fall 4:
Auswertung von ((x-y)//(pq+1) für xe [O,pqJ. Diese für alle pq+1-Adreßberechnungen erforderliche Rechnung kann vorgenommen werden nach der Identität
(x-y)//(pq+D = x-y+(pq+1) i/r(x,y).
Wie durch die Schaltung 179 in Fig. 8 gezeigt ist für den Fall p=q=4, reichen für diese Berechnung einige Schaltglieder, ein Addierer und ein Halbaddierer.
In Fig. 6 ist ein überblick über die in Fig. 1 dargestellte Adreß-, Steuer- und Einschaltung 23 gegeben. Sie umfaßt eine globale Logikkomponente 1OO und pq+1 identische Modullogikkomponenten 1Ο2, 104 und 106.
SA 975 065
80982 1 /060A
27A707S
Die globale Logikkomponente 100 spricht auf die Untergruppenformbezeichnung t im Register 28 und auf die Untergruppen-Anfangskoordinaten i und j im Register 29 und 30 an und errechnet die Mengen B und C. Die Menge B wird über die Leitungen 108 zur Steuerung der Modullogikkomponenten 102, 104 und 106 geleitet und die Menge C über die Leitungen 110, zur Steuerung der Vertauscher 25, 26.
Die Modullogikkomponenten 102, 104 und 106 speichern auch die von der Globallogikkomponente errechneten und über die Leitungen 108 gegebenen Werte an, und errechnen Zelladressen und Einschaltsignale für die zugehörigen Speichermoduln, und zwar insbesondere die Zelladresse l(i,j,k,t) und das Einschaltsignal b(i,j,k,t) für den Kartenspeichermodul. Die Zelladressen werden über die Leitungen 37, 38 und 39 und die Einschaltsignale über die Leitungen 40, 41 und 42 an die betreffenden Speichermoduln gegeben.
Fig. 7 zeigt im einzelnen die globale Logikkomponente 100 der Fig. 6. Die Eingänge zu dieser Komponente sind die Untergruppen-Formbestimmung t und die Untergruppen-Anfangskoordinaten i und j. Die Ausgänge von dieser Schaltung sind die Mengen B und C. Die globale Logikkomponente errechnet mit der UntergruppenformbeStimmung und den Anfangskoordinaten die Steuerwerte C für die Steuerung der Schaltungen 25 und 26. Die globale Logikkomponente 100 errechnt außerdem die Zwischenwerte B, die von allen Modullogikkomponenten 102, 104 und 106 benutzt werden. Nach Darstellung in Fig. 7 besteht jede dieser Mengen B und C aus einem Bündel von Signalen. B besteht aus tOO, toi, i, j und m, während C aus den Werten tO1 und μ besteht. Jeder dieser Werte wird nach den in Tabelle I aufgeführten Formeln berechnet.
SA 975 065
809821 /060A
ί Ί * 7 Ü 7 b
Die ersten drei durch die globale Logikkomponente errechneten Werte sind die Mengen tOO, tO1 und tiO. Die Menge tOO ist ein Boolescher Wert, der wahr ist, wenn der Eingang t den Wert t=00 hat. Das kann symbolisch geschrieben werden als tOO=EQ(t,00). Die Menge tOO wird auf die Leitung 150 durch das UND-Glied 152 gegeben, das in Verbindung mit den Invertern 154 und 156 arbeitet. In ähnlicher Weise wird die Menge tO1=EQ(t,O1) durch das UND-Glied 160 an den Inverter 162 auf die Leitung 158 gegeben. Die Menge tiO=EQ(t,1O) wird durch das UND-Glied 166 und den Inverter 168 auf die Leitung 164 gegeben. Der nächste von der globalen Logikkomponente zu errechnende Wert ist die Menge p=(iq+j)//(pq+1), d.h., u ist die Menge, die sich aus der ganzzahligen Division von (iq+j) durch (pq+1) ergibt. Die Schaltung 130 zur Errechnung von μ besteht aus einer MOD-17B-ZeIIe 222, die mit den drei werthohen Bits von i gekoppelt ist. Eine Null wird auf den werthohen Eingang zur Zelle gegeben. Das werthohe Ausgangsbit wird im Addierer 132 mit dem werthohen Bit von j kombiniert. Der Addierer 132 und die MOD-17B-ZeIIe liefern die Eingänge zur MOD-17A-ZeIIe 200A. Die beiden wertniederen Bits des i-Einganges werden im Addierer 136 mit dem dritten und vierten Bit vom j-Eingang kombiniert. Der Addierer 136 liefert drei Eingänge zu einer zweiten MOD-17A-ZeIIe 200B. Eine Null liefert den werthohen Biteingang zur MOD-17A-ZeIIe 200B und die wertniederen beiden Bits von j liefern die anderen beiden Eingänge zu dieser Zelle. Der Addierer 134 kombiniert die Ausgänge der M0D-17A-Zellen 200A und 200B. Die Ausgabe des Addierers 134 wird auf einer anderen MOD-17A-ZeIIe 2OOC gekoppelt, deren Ausgabe auf den Leitungen 138 den Wert μ bildet. Der Wert μ auf den Leitungen 138 bildet einen Teil des Signalbündels C. Außerdem wird der Wert μ an das UND-Glied 140 und die Schaltung 131 gegeben, die (-ρμ)//(pq+1) errechnet.
SA 975 065
B098?1/nß(H
Die Schaltung 131 besteht aus dem Antivalenzglied 147, den ODER-Gliedern 145 und 149 sowie dem Halbaddierer 148 und errechnet die Menge (-ρμ)//(pq+1)=pi(-μ)//q]+u/q+EO(u//q,O). Diese Menge wird über die Leitungen 139 an das UND-Glied geleitet.
Der Eingang tO1 ist mit dem UND-Glied 14Ο und über den Inverter 144 mit dem UND-Glied 142 gekoppelt. Wenn also t=OO oder t=1O ist, wird das UND-Glied 142 vorbereitet und der Wert μ über das ODER-Glied 146 geleitet, zur Bildung des V/ertes m. Wie aus Tabelle I zu ersehen ist, ist ΐη=μ für diese t-Eingänge. Wenn andererseits t=O1 ist, wird das UND-Glied 14Ο vorbereitet und die Menge (-ρμ)//(pq+1) über das ODER-Glied 146 gegeben, zur Bildung des Wertes m. Für t=01 gilt gemäß Tabelle I, ΐη=(-ρμ)//(pq+1) wenn t=Oi.
Fig. 8 enthält eine genaue Darstellung einer der Modullogikkomponenten 1OO, 104 oder 106 aus Fig. 6. Eine Gruppe von Eingängen zur Modullogikkomponente wird gebildet von dem Signalbündel B, das von der globalen Logikkomponente 1OO errechnet wurde. Ein anderer Eingang ist eine ganze Zahl k, die die Identität des Moduls bezeichnet, mit dem die Modullog ikkomponente verbunden ist. Der letzte Eingang ist die Menge (-pk)//(pq+1). Die Ausgänge von der Modullogikkomponente sind die Speicherstelle l(i,j,h,t) und die Einschaltvariable b(i,j,b,t), die nach den Formeln in Tabelle I errechnet werden.
Die erste von der Modullogikkomponente zu errechnende Menge ist die Menge γ, die den Wert hat Y=(k-m)//(pq+1)=k-m+(pq+1) -LT(k,m), wenn der Eingang t 00 oder 10 ist, und die den Wert hat γ=(-pk-m)//pq+1)=(-pk)//(pq+1)-m+(pq+1)-LT((-pk)//(pq+1),m), wenn t=01 ist. Die Menge γ wird vom UND-Glied 170 und 174 und dem ODER-Glied 176 den Invertern 172, 173 und 180, dem Addierer 178, dem Halbaddierer 182 und der Antivalenzschaltung 184 auf
SA 975 065
80982 1 /06CU
274707b
- 26 die Leitung 183 gegeben.
Der Eingang k wird auf das UND-Glied 170 gekoppelt, und der Eingang (~pk) // (pq+1) v/ird auf das UND-Glied 174 gekoppelt. Der Eingang 01 ist mit dem UND-Glied 170 und über einen Inverter 172 mit dem UND-Glied. 174 verbunden. Wenn also der t-Eingang entweder 00 ode» 01 ist, wird das UND-Glied 170 vorbereitet zur Lieferung des k-Einganges über das ODER-Glied auf die Leitungen 177, die einen Eingang zum Addierer 178 bilden. Der Übertragseingang zum Addierer 178 ist permanent auf 1 gesetzt und der übrige Eingang m zum Addierer 178 über die Inverter 180 gekoppelt, so daß m von dem Wert auf den Leitungen 177 subtrahiert wird. Der Übertragsausgang vom Addierer ist mit dem Inverter 173 gekoppelt, der ein Ausgangssignal auf die Leitung 175 gibt, wenn die vom Addierer 178 ausgeführte Subtraktion ein negatives Ergebnis hat. Die Ausgabe auf der Leitung 175 wird zum Halbaddierer 182 und zum Antivalenzglied 184 geführt. Diese scheinen zum Ausgang des Addierers 178 den Wert pq+1 jedes Mal zu addieren, wenn der Ausgang des Addierers 178 negativ ist. Wenn also der Eingang t=00 oder 01 ist, v/ird der Wert Y=(k-m)//(pq+1)=(k-m)+(pq+1) LT(k,m) auf die Leitungen 183 gegeben.
Wenn der t-Eingang 01 ist, wird in ähnlicher Weise das UND-Glied 174 vorbereitet zur Abgabe von (-pk)//(pq+1) über das ODER-Glied 176 auf die Leitungen 177. Von hier an funktionieren der Addierer 178, die Inverter 180 und 173, der Halbaddierer 182 und das Antivalenzglied 184 genauso wie oben beschrieben, und geben auf die Leitungen 183 die Menge Y= (-pk-m)//(pq+1) = (-pk)//(pq+1)-m+(pq+1)LT((-pk)//(pq+1),m).
Die nächste von der Modullogikkomponente zu errechnende Menge ist die Einschaltvariable b(i,j,b,t)=LT(Y,pq). Diese Variable wird vom Inverter 185 errechnet, der mit dem werthohen Bit des vorher errechneten Wertes γ arbeitet.
SA 975 065
809821/060A
Die nächsten beiden von der Modullogikkomponente zu errechnenden Mengen sind die Werte χ und ß. Der Wert χ wird als ein Eingang zum Addierer 196 auf die Leitungen 187 gegeben, während 3 als ein Eingang zum Addierer 194 auf die Leitung 189 gegeben wird. Die Werte χ und 3 werden abgeleitet von dem vorher errechneten Wert γ, der über die Leitungen 183 an die UND-Glieder 188, 190 und 192 gegeben wird. Wenn der Eingang tOO ist, schaltet der Wert tOO das UND-Glied 190 ein und die UND-Glieder 188 und 192 werden gesperrt. Somit führen die Leitungen 187 den Wert x=0, während die Leitungen 189 den Wert β=γ führen. Wenn andererseits t den Wert 01 hat, wird das UND-Glied 192 eingeschaltet und die UND-Glieder 188 und 190 gesperrt, so daß die Leitungen 187 den Wert χ=γ führen und die Leitungen 189 den Wert 3=0. Wenn schließlich t den Wert 10 hat, wird das UND-Glied-, 188 eingeschaltet und die UND-Glieder 19Ο und 192 gesperrt, so daß die Leitungen 187 den Wert haben x-y/q und die Leitungen 189 den Wert 3=Y//q.
Die letzte von der Modullogikkomponente zu errechnende Menge ist die Speicherstelle 1 (i,j,k,t)=([i+x]/p)s+(j+3)/q. Diese Menge wird von den Addierern 194 und 196 sowie den Halbaddierern 197 und 198 errechnet.
Die Fign. 9 und 10 zeigen die Führungsschaltungen mit den Vertauschern 25 und 26, die die Bildpunkte der Untergruppen 1xpq, pqx1 oder pxq zwischen dem Datenregister 24 und den Speichermoduln 20, 21 und 22 führen. Die Führungsschaltung wird gesteuert durch das Signalbündel C auf den Leitungen von der globalen Logikkomponente 100 des Schaltkreises 23 gemäß Darstellung in den Fign. 1 und 6.
IIn Fig. 9 ist der Vertauscher P1 dargestellt, der Untergruppen-· punkte vom Datenregister 24 an die entsprechenden Speicher- ι moduln 20, 21 und 22 führt.. Dieser Vertauscher hat pq-Daten- i eingänge d(0), d(1)... d(pq-1) über die Leitungen 31, 32 und 33 und pq+1-Ausgänge e(i,j,0,t)... e(i,j,pq,t) auf den SA 975 O65
809821/060 £
Leitungen 34, 35 und 36. Ein spezifisches Ausführungsbeispiel des Vertauschers P1 ist gezeigt für den Fall p=q=4. Dieser Vertauscher wird von den Vierten tO1 und μ auf den Leitungen 158 bzw. 138 gesteuert. Diese beiden Werte bilden zusammen das Signalbündel C, das nach Darstellung in den Fign. 6 und 7 von der globalen Logikkomponente 1OO geliefert wird.
Nach Darstellung in Fig. 9 wird der Vertauscher P1 gebildet aus einem variablen rechtsdrehenden Vertauscher 262, der durch den Eingangswert μ gesteuert wird, und aus einem zweiten Vertauscher, der durch den Eingang tO1 gesteuert wird. Die Eingänge d (0) , d(1)... d(pq-1) 0 zum Vertauscher 262 werden um μ-Bitpositionen nach rechts gedreht und dann als Eingänge e'(0) ... e'(pq-1) auf den zweiten Vertauscher gegeben. Wenn der Wert t01 falsch ist, werden die Daten direkt durch den zweiten Vertauscher in dieselben Bitpotitionen über das UND-Glied 266 und das ODER-Glied 268 auf den Ausgang e(l,j,o,t) ... e(i,j,pq,t) gegeben. Wenn der Wert t01 wahr ist, wird das UND-Glied 264 so vorbereitet, daß die Daten in ihrer Position um ein Vielfaches von vier verschoben werden. Die Daten werden über die Leitungen 278 an die entsprechenden Bitpositionen im ODER-Glied 268 zum Ausgang e übertragen.
Fig. 10 zeigt ein spezifisches Ausführungsbeispiel des Vertauschers P2, der Untergruppenpunkte von den Speichermoduln 20, 21 und 22 zum Datenregister 24 führt. Der Vertauscher P1 besteht darstellungsgemäß aus einem ersten durch den Eingangswert tO1 gesteuerten Vertauscher und einem variablen linksdrehenden Vertauscher 270, der von μ gesteuert wird. Dieser Vertauscher hat pq+1-Dateneingänge e(i,j,o,t), e(i,j,l,t) ... e(i,j,pq,t), die auf die Dateneingangsleitungen 48, 49 und 50 gegeben werden und er hat pq-Datenausgänge d(0), d(1) ... d(pq-1) auf den Leitungen 51, 52 und 53. Die Dateneingänge zum Vertauscher P1 werden über das UND-
SA 975 065
809821 /060A
2 7 4 7ü 7 b
Glied 274 und das ODER-Glied 272 auf die entsprechenden Bitpositionen der Eingänge des variablen linksdrehenden Vertauschers 270 gekoppelt, wenn der Wert toi auf der Leitung falsch ist. Wenn der Wert tO1 auf der Leitung 158 wahr ist, wird das UND-Glied 276 vorbereitet, so daß die Daten in Schritten von vier verschoben und über die Leitungen 280 an das ODER-Glied 272 übertragen werden.
Das Ausgabe-Signal des ODER-Gliedes 272 wird als Eingabe an den variablen linksdrehenden Vertauscher 272 gegeben, der diese Vierte um m-Bitpositionen dreht. Die Ausgänge d (0) , d(1) ... d(pq-1) des variablen linksdrehenden Vertauschers 272 '/erden über die Leitungen 51, 52 und 53 mit dem Datenregister 24 verbunden.
SA 975 065
80982

Claims (1)

  1. 27A7075
    PATENTANSPRÜCHE
    Anordnung zur Ansteuerung eines Speichersystems aus Speichermoduln, Decodern, Daten- und Adreßregistern» die eine rp χ sq-Bildgruppe I(*,*) speichern kann, die aus Bildpunkten I(i,j)besteht, wobei i im Bereich von C^^rp und j im Bereich 0<j<sq liegt, die ein Bild so speichern kann, daß der Zugriff zu allen Untergruppen 1 χ pq, pq χ 1 und ρ χ q von I (*,*) in einem Speicherzyklus erfolgt, dadurch gekennzeichnet, daß ρ χ q + 1-Speichermoduln (0,1...,pq) zur Speicherung der Bildpunkte angeordnet sind, die zusammen eine Bildgruppe (rp χ sq), bestehend aus Bildpunkten I(i,j) speichern können, daß den Speichermoduln (20 bis 22) Umlaufeinrichtungen (25, 26) zugeordnet sind, durch die die Bildpunkte von und zu einem Speichermodul geführt werden, daß die Umlaufeinrichtungen mit einer Schaltung zur Adressenrechnung verbunden sind, wodurch ein Bildpunkt I(i,j) an die aus der Stelle A(i,j) = (i/p) s+(j/q) des Speichermoduls M(i,j) eingespeichert gelesen wird, und daß eine Steuerschaltung zum gleichzeitigen Speichern oder Abrufen von pq-Bildpunkten in jeder Untergruppe (1 χ pq, pq χ 1 oder ρ χ q) der Bildgruppe über Leitungen (27) mit den Umlaufeinrichtungen (25 und 26) und über Leitungen (37 bis 42) · mit logischen Schaltungen (43 bis 45), die den Speichermoduln vorgeschaltet sind verbunden ist. !
    2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß den Speichermoduln (20 bis 22) sowohl eingangsseitig eine Umlauf- oder Umordnungseinrichtung (25) als auch ausgangsseitig eine Umlaufeinrichtung (26) zugeordnet ist, die ihrerseits eingangsseitig bzw.
    SA 975 Ö65
    R09821 /OßfH
    ORIGINAL INSPECTED
    ausgangsseitig mit dem Datenregister (24) zur Umordnung der Bildpunkte bzw. Daten verbunden sind.
    3. Anordnung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß der Adressen- und Steuerschaltung (Fig. 6) Register (28 bis 30) vorgeschaltet sind, deren Inhalt die Form der Untergruppe und die Koordinaten (i,j) der oberen linken Ecke einer Gruppe als Referenzpunkt oder Basisadresse bestimmen, wobei der Steuerteil der Schaltung (23) die Umlaufeinrichtung (25) veranlaßt, jedes Element einer Untergruppe über Gegenleitungen (34 bis 36) zu dem Modul (M) zu leiten, in dem das Element zu speichern ist, und der Adreßrechner der Steuerschaltung (23) die Lage innerhalb des betreffenden Moduls errechnet.
    4. Anordnung nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß beim Lesen und Modifizieren einer Untergruppe die Inhalte der Register (28 bis 30) zur Anzeige genannter Untergruppe und zur Identifizierung des obersten linken Elementes benutzt, in dem der Adreßrechner der Schaltung (23) aus den Werten t,i und j für jeden eingeschalteten Speichermodul die Lage des einen Elementes der Untergruppe, das der Modul enthält, berechnet, daß danach ein Lesesignal das Lesen initialisiert und die gelesenen Daten über Leitungen (48 bis 50) an die zweite Umlaufeinrichtung !
    bzw. den Vertauscher (26) geleitet werden, daß der Steuerteil der Schaltung (23) den Vertauscher (26) zur Umordnung der Elemente der Untergruppe in Zeilenhauptordnung und zur überführung an das Datenregister
    (24) über Leitungen (51 bis 53) veranlaßt.
    |5. Anordnung nach den Ansprüchen 1 bis 4, dadurch
    gekennzeichnet, daß der Adreßteil der Schaltung (23)
    809821/060i
    274707b
    die Lage eines Einzelelements der Untergruppe errechnet, das entweder eingeschrieben oder ausgelesen werden soll, und daß der Steuerteil der Schaltung (23) zusammen mit den genannten Vertauschern (25 und 26) das Element (e) umordnet, damit es von oder zu der entsprechenden Position im Datenregister (24) gelangt.
    6. Anordnung nach den Ansprüchen 3 bis 5, dadurch gekennzeichnet, daß der Adreßteil der Schaltung (23) aus bekannten Volladdier- bzw. Halbaddierschaltungen aufgebaut ist und in Modulo-Darstellung arbeitet.
    7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß die Addierer zu einer Kaskadenschaltung (Fig. 3) zusammengeschaltet sind.
    sä 975 065 8 0 98 21/0604
DE2747075A 1976-11-01 1977-10-20 Speicheranordnung mit Anordnung zur Speichersteuerung für Bildverarbeitungsoperationen Expired DE2747075C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/737,501 US4090174A (en) 1976-11-01 1976-11-01 Method and apparatus for accessing horizontal sequences, vertical sequences and rectangular subarrays from an array stored in a modified word organized random access memory system

Publications (2)

Publication Number Publication Date
DE2747075A1 true DE2747075A1 (de) 1978-05-24
DE2747075C2 DE2747075C2 (de) 1982-10-28

Family

ID=24964175

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2747075A Expired DE2747075C2 (de) 1976-11-01 1977-10-20 Speicheranordnung mit Anordnung zur Speichersteuerung für Bildverarbeitungsoperationen

Country Status (7)

Country Link
US (1) US4090174A (de)
JP (1) JPS6053352B2 (de)
CA (1) CA1092720A (de)
DE (1) DE2747075C2 (de)
FR (1) FR2369650A1 (de)
GB (1) GB1533368A (de)
IT (1) IT1115742B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19643688C2 (de) * 1996-10-23 2001-01-25 Johannes Kneip Verfahren zur Steuerung einer Cachespeichereinheit mit konfliktfreiem Parallelzugriff auf virtuelle, 2-dimensionale Adreßräume

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442543A (en) * 1979-09-10 1984-04-10 Environmental Research Institute Bit enable circuitry for an image analyzer system
US4301443A (en) * 1979-09-10 1981-11-17 Environmental Research Institute Of Michigan Bit enable circuitry for an image analyzer system
US4449199A (en) * 1980-11-12 1984-05-15 Diasonics Cardio/Imaging, Inc. Ultrasound scan conversion and memory system
US4434437A (en) * 1981-01-26 1984-02-28 Rca Corporation Generating angular coordinate of raster scan of polar-coordinate addressed memory
US4434502A (en) 1981-04-03 1984-02-28 Nippon Electric Co., Ltd. Memory system handling a plurality of bits as a unit to be processed
JPS5930156A (ja) * 1982-08-09 1984-02-17 Sharp Corp マイクロコンピユ−タシステム
US4523273A (en) * 1982-12-23 1985-06-11 Purdue Research Foundation Extra stage cube
US4559611A (en) * 1983-06-30 1985-12-17 International Business Machines Corporation Mapping and memory hardware for writing horizontal and vertical lines
US4663729A (en) * 1984-06-01 1987-05-05 International Business Machines Corp. Display architecture having variable data width
FR2566950B1 (fr) * 1984-06-29 1986-12-26 Texas Instruments France Processeur de points d'images video, systeme de visualisation en comportant application et procede pour sa mise en oeuvre
GB2164767B (en) * 1984-09-25 1988-08-24 Sony Corp Video data storage
JPS61235958A (ja) * 1985-04-12 1986-10-21 Mitsubishi Electric Corp 画像記憶装置
JPS62131289A (ja) * 1985-12-03 1987-06-13 日本電気株式会社 図形表示装置用の記憶回路
US4763251A (en) * 1986-01-17 1988-08-09 International Business Machines Corporation Merge and copy bit block transfer implementation
US4799269A (en) * 1987-02-18 1989-01-17 International Business Machines Corporation Table lookup addressing by dichotomy window generation
CA1272312A (en) * 1987-03-30 1990-07-31 Arthur Gary Ryman Method and system for processing a two-dimensional image in a microprocessor
US4949390A (en) * 1987-04-16 1990-08-14 Applied Vision Systems, Inc. Interconnect verification using serial neighborhood processors
US5146592A (en) * 1987-09-14 1992-09-08 Visual Information Technologies, Inc. High speed image processing computer with overlapping windows-div
US5109348A (en) * 1987-09-14 1992-04-28 Visual Information Technologies, Inc. High speed image processing computer
US5129060A (en) * 1987-09-14 1992-07-07 Visual Information Technologies, Inc. High speed image processing computer
US4985848A (en) * 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
US5040134A (en) * 1989-05-26 1991-08-13 Intel Corporation Neural network employing leveled summing scheme with blocked array
FR2721415B1 (fr) * 1994-06-21 1996-09-06 France Telecom Dispositif électronique d'adressage de mémoire, notamment pour une mémoire organisée par bancs.
US6028612A (en) * 1997-11-18 2000-02-22 Stmicroelectronics, Inc. Picture memory mapping to minimize memory bandwidth in compression and decompression of data sequences
JP2000122919A (ja) * 1998-10-13 2000-04-28 Mitsubishi Electric Corp プロセッサ及びメモリ制御方法
US7400782B2 (en) * 2002-08-28 2008-07-15 Arcsoft, Inc. Image warping correction in forming 360 degree panoramic images
US7409105B2 (en) * 2003-10-22 2008-08-05 Arcsoft, Inc. Panoramic maker engine for a low profile system
US7752398B2 (en) * 2006-05-23 2010-07-06 Lsi Corporation Multi-port memory architecture for storing multi-dimensional arrays I
US7707363B2 (en) * 2006-05-23 2010-04-27 Lsi Corporation Multi-port memory architecture for storing multi-dimensional arrays II
JP5987330B2 (ja) 2012-01-31 2016-09-07 株式会社Ihi 過給機

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3531775A (en) * 1966-09-30 1970-09-29 Fujitsu Ltd Memory apparatus for rapid write-in and read-out of information
US3938102A (en) * 1974-08-19 1976-02-10 International Business Machines Corporation Method and apparatus for accessing horizontal sequences and rectangular sub-arrays from an array stored in a modified word organized random access memory system
DE2549336A1 (de) * 1974-11-07 1976-05-26 Ibm Wortorganisierte speichereinrichtung fuer bildliche darstellungen betreffende daten

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1401008A (en) * 1971-08-17 1975-07-16 Mullared Ltd Character recognition apparatus
US3995253A (en) * 1975-03-03 1976-11-30 International Business Machines Corporation Method and apparatus for accessing horizontal sequences, vertical sequences, and rectangular subarrays from an array stored in a modified word organized random access memory system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3531775A (en) * 1966-09-30 1970-09-29 Fujitsu Ltd Memory apparatus for rapid write-in and read-out of information
US3938102A (en) * 1974-08-19 1976-02-10 International Business Machines Corporation Method and apparatus for accessing horizontal sequences and rectangular sub-arrays from an array stored in a modified word organized random access memory system
DE2549336A1 (de) * 1974-11-07 1976-05-26 Ibm Wortorganisierte speichereinrichtung fuer bildliche darstellungen betreffende daten

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19643688C2 (de) * 1996-10-23 2001-01-25 Johannes Kneip Verfahren zur Steuerung einer Cachespeichereinheit mit konfliktfreiem Parallelzugriff auf virtuelle, 2-dimensionale Adreßräume

Also Published As

Publication number Publication date
FR2369650B1 (de) 1981-10-30
IT1115742B (it) 1986-02-03
JPS5356931A (en) 1978-05-23
DE2747075C2 (de) 1982-10-28
US4090174A (en) 1978-05-16
CA1092720A (en) 1980-12-30
JPS6053352B2 (ja) 1985-11-25
FR2369650A1 (fr) 1978-05-26
GB1533368A (en) 1978-11-22

Similar Documents

Publication Publication Date Title
DE2747075A1 (de) Bildspeicherung und -verarbeitung
DE2607107C2 (de) Wortorganisiertes Speichersystem
DE2324731A1 (de) Festzustandsspeicher fuer mehrdimensionalen zugriff
DE2536104C3 (de) Speicher für bildliche Darstellungen betreffende Daten
DE3419063C2 (de)
DE2549336B2 (de)
DE3804938C2 (de) Bildverarbeitungseinrichtung
DE2646163B2 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE2331589A1 (de) Datenverarbeitungsanordnung
DE2364408A1 (de) System zur erstellung von schaltungsanordnungen aus hochintegrierten chips
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE2347387A1 (de) Permutationsschaltung
DE112020000748T5 (de) Adresserzeugung zur hochleistungsverarbeitung von vektoren
DE1774870A1 (de) Verfahren und Anordnung zur Adressierung von Informationen in einer Datenverarbeitungsanlage
DE102020133878A1 (de) Technologien für spaltenbasierte datenlayouts für geclusterte datensysteme
DE3713627A1 (de) Bildspeicherschaltung, insbesondere zur verwendung beim drehen von bilddaten
DE1524898C3 (de) Datenspeicher mit direktem mehrdimensionalen Zugriff zur gleichzeitigen Entnahme mehrerer Wörter
DE4234695C2 (de) Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache
DE3333894C2 (de)
DE2233193A1 (de) Stapel-speichersystem
DE2425574A1 (de) Adressierung von zeichen in einem wortorientierten system eines rechenautomaten
DE3000012A1 (de) Schaltungsanordnung zur ausfuehrung eines uebertragungsbefehls in einer datenverarbeitungsanlage
DE2842288A1 (de) Datentransferschalter mit assoziativer adressauswahl in einem virtuellen speicher
DE3410496A1 (de) Datentransformationsschaltung

Legal Events

Date Code Title Description
OAP Request for examination filed
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee