JP2003067361A - 衝突防止メモリ装置及びそれを用いたアドレス計算とデータルーティング方法 - Google Patents

衝突防止メモリ装置及びそれを用いたアドレス計算とデータルーティング方法

Info

Publication number
JP2003067361A
JP2003067361A JP2001262291A JP2001262291A JP2003067361A JP 2003067361 A JP2003067361 A JP 2003067361A JP 2001262291 A JP2001262291 A JP 2001262291A JP 2001262291 A JP2001262291 A JP 2001262291A JP 2003067361 A JP2003067361 A JP 2003067361A
Authority
JP
Japan
Prior art keywords
data
address
access
memory device
routing
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
JP2001262291A
Other languages
English (en)
Other versions
JP3802783B2 (ja
Inventor
Sogen Boku
宗元 朴
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JP2003067361A publication Critical patent/JP2003067361A/ja
Application granted granted Critical
Publication of JP3802783B2 publication Critical patent/JP3802783B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 アクセス時間を減少させるための衝突防止メ
モリ装置を提供する。 【解決手段】 pq個のプロセッシングエレメントを持つ
SIMD処理器 M×N アレイ内のデータでの任意の位置で一
定の間隔を持つ4方向のブロック(pq)形態と8方向の線分
形態であるpq個のデータ要素を同時にアクセスできるよ
うに支援して、メモリ装置アクセス時間を減少させるた
めの衝突防止メモリ装置に関するものであり、従来のメ
モリ装置と比べてデータクセス形態、間隔、データアレ
イの大きさに制限、及びハードウェア費用、速度、復雑
度面で改善された衝突防止メモリ装置及びそれを用いた
アドレス計算及びデータルーティング方法である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はメモリ装置に関し、
より詳細にはpq個のプロセッシングエレメント(Process
ing Element:PE)を持つSIMD処理器におけるM×Nアレイ
内のデータで任意位置から一定間隔を持つ4方向のブロ
ック(pq)形態と8方向の線分形態であるpq個のデータ要
素を同時にアクセスすることができるよう支援すること
でメモリ装置アクセス時間を減少させるための衝突防止
メモリ装置に関する。
【0002】
【従来の技術】一般的な制御装置で構成された単一命令
多重データ(Single Instruction Multiple Data:SIMD)
処理器、SIMDの命令プログラムが記憶されている共有メ
モリモジュール及び衝突防止メモリ装置が含まれる多く
のプロセッシングエレメントが応用分野で図1のように
メインメモリ装置があるコンピューターに取り付けられ
て使用される。
【0003】映像処理の演算(M. J. B. Duff、Computin
g structures for image processing、 Academic Pres
s、1983.、J. L. Potter.、 IEEE Computer、vol. 16、
No. 1、pp. 62-67、Jan. 1983.、K. Preston、Jr.、IEE
E Computer、vol. 16.、No. 1、pp. 36-47、Jan. 198
3.、T. J. Fountain、K. N. Matthews、and M. J. B. D
uff、IEEE Trans. PAMI、vol. 10、No. 3、pp. 310-31
9、 May 1988.、H. S. Wallace and M. D. Howard、IEE
E Trans. PAMI、 vol. 11、 No. 3、pp. 227-232、Mar.
1989.、L. A. Schmitt and S. S. Wilson、IEEE Tran
s. PAMI、 vol. 10、No. 3、 pp. 320- 330、May 198
8.、V. Dixit and D. I. Moldovan、IEEE Trans. PAM
I、vol. 9 No. 1、pp. 153-160、 Jan. 1987.、L. Uh
r、Parallel computer vision、Academic press、198
7.、A. Rosenfeld、 Multiresolution image processin
g and analysis、 Springer-Verlag、 1984.、G. Y. Ki
m、Parallel memory architectures for image process
ing and wavelet-based video coding、Ph.D. thesis、
Korea Advanced Institute of Science and Technolog
y、 1999.、 G. A. Baxes、Digital image processin
g、 Prentice-Hall、1984.、H. E. Burdick、 Digital
imaging、McGraw-Hill、1997.)、双方向併合整列(E. Ho
rowitz and S. Sahni、 Data structures in pascal、
Computer Science Press、 1984.)、連続的な二重高速
フーリエル変換(J. W. Cooley、 P. A. W. Lewis、 and
P. D. Welch、 IEEE Trans. Educ.、vol. E-12、 No.
1、pp. 27-34、1969.、D.T. Harper III and D. A. Lin
ebarger、Storage schemes for efficient computation
of a radix 2 FFT in a machine with parallel memor
ies、in Proc. 1988 Int. Conf. Parallel Processin
g、1988.)、再帰的倍加 (Recursive Doubling:RD)(H.
S. Stone、High-performance computer architecture、
Addison Wesley、1993.)、基本的な行列演算(D. J. Kuc
k and R. A. Strokes、IEEE Trans. Comput. vol. C-3
1、 pp.362-376、May 1982.)等の分野に応用される。こ
うような応用分野のため、衝突防止メモリ装置からデー
タのアクセス形態、基準座標、データ間の間隔を持って
データを探し、そのデータをプロセッシングエレメント
に割り当てる命令をSIMDコンピューターの制御装置に送
った後、制御装置によってそれぞれ異なるデータを持っ
て同じ形態の計算を行うようにする。それで、SIMD処理
器の効率性のため、メモリ装置の重要な目的は次のよう
である。
【0004】1. 多様なサブアレイのアクセス形態と間
隔:メモリ装置は0でない陽数間隔を持っているデータ
に対して多様な形態の同時アクセスを支援しなければな
らない。
【0005】2. 位置制約のない同時アクセス:同時ア
クセスされるデータの位置は与えられたデータアレイ内
のどこでも可能でなければならない。
【0006】3. 簡単で迅速なアドレス計算とルーティ
ング回路:アドレス計算とルーティングは簡単迅速にし
なければならない。
【0007】4. 簡単で迅速なデータのルーティング回
路:データのルーティングは簡単迅速にしなければなら
ない。
【0008】5. 負荷のないプロセッシングエレメン
ト:アドレス計算とルーティング、及びデータルーティ
ングはプロセッシングエレメントに負荷を与えずに、メ
モリ装置内で行わなければならない。それで、プロセッ
シングエレメントとメモリ装置との間にインターフェー
スでデータレジスターがある。
【0009】6. 少ない数のメモリモジュール:メモリ
装置のモジュール数はプロセッシングエレメント数と同
じであるとか大きな範囲でできるだけ少なくしなければ
ならない。
【0010】多重メモリモジュールを持つ貯蔵装置の効
率性増大がメモリ装置の分野で長い間に研究された。そ
のうちで一つが連続的なメモリ装置アクセス要求に対す
るモジュールのメモリ装置アクセス時間を重ねることで
あるが(D. T. Harper III、IEEE Trans. Parallel Dist
rib. Syst.、vol. 2.、pp. 43-51、Jan. 1991.、D. T.
Harper III、IEEE Trans. Comput.、vol. C-41、pp.227
-230、Feb. 1992.)、前記したSIMD処理器には適当では
ない。
【0011】SIMD処理器のためのメモリ装置の簡単な貯
蔵装置は、メモリ装置をインターリビングさせることで
あり、メモリ装置のメモリモジュール数をmとすると、
アドレスaは(a)mod(m)のメモリモジュールに位置する。
ここでmodはモジュロ演算子である。インターリビング
された記憶システムのメモリモジュール数はSIMD処理器
のプロセッシングエレメント数と同じなので、アドレス
計算とデータのルーティングが簡単に具現されるので、
このような体制が多くのSIMD処理器に含まれた。しか
し、インターリビングされた体制は一定な間隔によって
連関した多様なサブアレイアクセス形態データの同時ア
クセスを支援しないので、メモリモジュールでの衝突に
よって性能が低下する。(W. Oed and O. Lange、IEEE T
rans. Comput.、vol. C-34、 pp. 949-957、 Oct. 198
5.、D. Baily、IEEE Trans. Comput.、vol. C-36、 pp.
293-298、 Mar. 1987.)。
【0012】他方、インターリビングされたメモリ装置
での平均的な性能を改善する提案があったが、それはSI
MD処理器のために更に有用ではない。それは同じモジュ
ールを要求するメモリ要求の衝突によってSIMD処理器の
全プロセッシングエレメントの計算が全部遅延されるた
めである。
【0013】貯蔵装置体制の他の一つは多くの人々によ
って研究された非線型分野である。ほとんどの非線型斜
線方式はバッチャー(K. Batcher、 IEEE Trans. Compu
t.、vol. 26、 no. 1、 pp. 174-177、 1977.)によって
初めて考案されたビっト演算XORに基づいている。フラ
イロングによって一般化されたXOR方式はデータアドレ
ス点のマルチプライと行列の変形によって貯蔵位置を計
算する。XOR方式は2の乗数個のメモリモジュールでデー
タのアドレス計算とルーティングが簡単である。しか
し、この方式はデータのサブアレイアクセス形態、デー
タ間の間隔、データの位置が制限的である。
【0014】メモリ装置の他の一つ体制は線型的な斜線
方式である。
【0015】行列の (i、j)に位置したデータは(ai+bj)
mod(m)のメモリモジュールに位置する。ここで、aとbは
常数であり、mはメモリモジュール数を示す。線型斜線
方式はブッドニックとクック(P. Budnik and D. J. Kuc
k、 IEEE Trans. Comput.、vol. C-20、 pp.1566-156
9、 Dec. 1971.)によって初めて提案され、この方式の
特性はシャピロ(H. Shapiro、IEEE Trans. Comput.、vo
l. C-27、 no. 5、 pp.421-428、 May 1978.)と、ウィ
ジショーフとバンリーウぇン(H. Wijshoff and J. Van
Leeuwen、 IEEE Trans. Comput.、 vol. C-34、 no.
6、 pp. 501-505、June 1985.、 H. Wijshoff and J. V
an Leeuwen、 IEEE Trans. Comput.、 vol. C-36、 no.
2、 pp. 233-239、 Feb. 1987.)によって研究された。
ブッドニックとクック、シャピロ、ウィジショーフとバ
ンリーウぇンと、ローリ(D. H. Lawrie、 IEEE Trans.
Comput.、 vol. C-24、 no. 12、 pp. 1145-1155、 De
c. 1975.)は、もしデータの数より大きな素数個のメモ
リモジュールがあれば、ブロック、行、列、対角線、逆
対角線アクセス形態のサブアレイ内で衝突なく同時にデ
ータをアクセスすることができるメモリ装置に対して証
明した。線型斜線方式の短所はアドレス計算、アドレス
ルーティング及びデータルーティングでm個のメモリモ
ジュールアドレスが一緒に計算されるとき、複雑で速度
が鈍いということである。そして、時間が多く掛かるモ
ジュール(m)での計算を避けるため、データの数が2の乗
数である場合、メモリモジュール数を同時アクセスされ
るデータ数の2倍にしなければならないということであ
る。
【0016】表1a及び表1bは線型斜線方式での目標(1)~
(6)を実現するSIMD処理器に対する貯蔵技術、線型有
無、ルーティング方法、サブアレイアクセス形態、間
隔、ハードウェアの具現、同時性、アクセス位置、プロ
セッシングエレメントの負荷、そして従来のメモリ装置
と本発明で提示するメモリ装置のメモリモジュール数な
どを示す。
【0017】
【表1a】
【0018】
【表1b】 一方、映像処理で全体的なメモリ装置アクセス時間を減
少するためにブロック、列、行、対角線、または逆対角
線型態の多くの映像点を同時にアクセスすることができ
るSIMD処理器(G. Y. Kim、 Parallel memory architect
ures for imageprocessing and wavelet-based video c
oding、Ph.D. thesis、Korea AdvancedInstitute of Sc
ience and Technology、 1999.)が要求される。映像点
の算術演算と論理演算のため、デジタルイメージプロセ
ッシング(G. A. Baxes、 Digital image processing、P
rentice-Hall、1984.)、ブロック、列、行のアクセス形
態の映像点が並列的に演算できるように各プロセッシン
グエレメントに割り当てられなければならない。ウェブ
レット変換(K. R. Castleman、Digital image processi
ng、 Prentice-Hall、1996.、S. Mallat、 IEEE Trans.
PAMI、vol. 11、No. 7、 pp. 674-693、 July 1989.)
では列と行のアクセス形態の映像点をアクセスするメモ
リ装置が必要となる。2n2×2n2個のプロセッシングエレ
メントで2n 1×2n1大きさの映像の縁辺探索、コンボリュ
ーション、低域フィルター(G. A. Baxes、 Digital ima
ge processing、 Prentice-Hall、 1984.、 H. E. Burd
ick、 Digital imaging、 McGraw-Hill、 1997.、 J.
R. Parker、 Algorithms forImage Processing and Com
puter Vision、 John Wiley & Sons、 1997.、 D. H. B
allard and C. M. Brown、 Computer Vision、 Prentic
e-Hall、 1982.、 J.S. Lim、 Two-dimensional signal
and image processing、 Prentice-Hall、1990.)のよ
うな近接演算を行うため、各プロセッシングエレメント
は一つの3×3ブロックや4×4ブロックが割り当てられな
ければならず、3や4間隔を持つ大きさが2n2×2n2である
ブロックのメモリ装置アクセスが必要となる。2n1×2n1
大きさの映像において2n2×2n2個のプロセッシングエレ
メントが8×8DCT(Discrete Cosine Transform)(K. R. R
ao and P. Yip、Discrete Cosine Transform、 Academi
c Press、 1990.)の処理のため、各プロセッシングエレ
メントは8×8ブロックの割当を受けなければならず、8
間隔を持つ2n2×2n2ブロックのメモリ装置アクセスが必
要となる。動き推定(J. S. Lim、Two-dimensional sign
al and image processing、 Prentice-Hall、1990.)で
は16×16ブロックの参照映像と16×16ブロックの以前映
像の迅速な比較のために1、2、4の間隔であるブロック
のメモリ装置アクセスが必要となる。2×2、3×3の部分
サンプリング方法を使用する連続的な伝送(W. Y. Kim、
P. T. Balsara、D. T. Harper and J. W. Park、IEEE T
rans. Circuits and Systems for Video Technology、
vol. 5、 No.1、 pp.1-13、Feb. 1995.)ではメモリ装置
アクセス時間を短縮するため、lを整数とする時に間隔
が2lや3lであるブロック形態のデータが同時にアクセス
できねばならない。
【0019】他の例としては圧縮、文字分析、動き分析
などに用いられるガウシアンピラミッド(A. Rosenfel
d、 Multi-resolution image processing and analysi
s、 Springer-Verlag、 1984.、 P. J. Burt、 Comput.
Vision、 Graphics、 Image processing 16、 pp.20-5
1、 1981.、 P. J. Burt、 Comput. Vision、 Graphic
s、 Image processing 21、 pp.368-382、 1983.)や階
層離散相関ウィンドー関数(Hierarchical Discrete Cor
relation Window Function)を速やかに具現することが
できる。Kレベルの再帰的かつ直接的な計算のために全
レベルの全ノード値や、0レベルの全ての2番目ノード値
がSIMD処理器の各プロセッシングエレメントに割り当て
られなければならない。それで、衝突防止メモリ装置は
ガウシアンピラミッドの生成(J. W. Park and D. T. Ha
rper III、 IEEE Symp. Parallel andDistributed Proc
essing、 pp.444-451、 Dec. 1992.、 J. W. Park and
D. T.Harper III、 IEEE Trans. Parallel Distrib. Sy
st.、 vol. 7、 No. 8、 pp.855-860、 Aug. 1996.)に
対して全体的なメモリ装置アクセス時間の減少のため、
任意の位置でl≧0に対して、間隔2lを持つブロックや行
形態の映像点を同時にアクセスできるように支援する。
一つの列のノード数がプロセッシングエレメント数より
少ないレベルである場合には行形態よりもブロック形態
で映像点を同時にアクセスする方がより良い。また、一
部映像の速やかな90°回転や反射映像のために後に説明
する4方向ブロックアクセス形態の映像点をアクセスす
るメモリ装置が必要となる。45°や5°ずつ(J. W. Par
k、 Efficient image analysis and processing memory
system、 Korean Patent 58542、 1993.、 Efficient
image analysis and processing memory system、 Japa
nese Patent 2884815、 2000.、 J. W. Park、 S. R. M
aeng and J. W. Cho、 Int. J. of High Speed Computi
ng、 vol. 2、 No. 4、 pp.375-385、 Dec. 1990.) 一
部映像の速やかな回転のためにも8方向の線型映像点を
アクセスできるメモリ装置が必要となる。
【0020】双方向併合整列アルゴリズム、連続的な増
加FFTアルゴリスム、再帰的な増加アルゴリズム、行
列、信号処理等のためにブロック、列、行、対角線、逆
対角線アクセス形態のデータを同時にアクセスできるメ
モリ装置が全体的なメモリ装置アクセス時間を短縮する
ためのSIMD処理器に必要となる。
【0021】双方向併合整列は長さが1ずつである整列
されたデータファイルn個の入力から始まる。このn個の
データファイルは大きさが2であるn/2個のファイルに併
合される。n/2個のファイルが再び併合され、このよう
な方法で1個のデータファイルとなるまで繰り返され
る。それで、速やかな双方向併合整列アルゴリズムのた
め、2l(l>0)の間隔の行形態データをアクセスできるメ
モリ装置がSIMD処理器に有用である。
【0022】SIMD処理器で連続的な増加FFTアルゴリズ
ム(J. W. Cooley、 P. A. W. Lewisand P. D. Welch、
IEEE Trans. Educ.、 vol. E-12、 No.1、 pp. 27-34、
1969.、 D. T. Harper III and D. A. Linebarger、 i
n Proc. 1988 Int. Conf. Parallel Processing、 198
8.)のために2l(l>0)間隔の行形態のデータをアクセスす
ることができるメモリ装置がメモリ装置アクセス時間の
短縮に有用である。
【0023】足し算、掛け算、最大、最少、AND、OR、X
OR演算等を行う再帰的な増加アルゴリズム(H. S. Ston
e、 High-performance computer architecture、 Addis
on Wesley、 1993.)のためにはメモリ装置アクセス時間
を短縮するため、2l(l>0)間隔の行アクセス形態データ
をアクセスできるメモリ装置が有用である。行列での足
し算、掛け算、式(57、58) (これは後に出るのを参照)
はブロック、列、行、対角線、逆対角線型態のデータに
同時にアクセスすれば効果的である。また、SIMD処理器
で信号処理(J. S. Lim、Two-dimensional signal and i
mage processing、 Prentice-Hal、 1990.、 D. H. Joh
nson and D. E. Dudgeon、 Array signalprocessing、
Prentice-Hall、 1993.)をするために多様な行列演算の
速度を高めるためのブロック、列、行、対角線、逆対角
線型態の同時データクセスを支援する衝突のフリ記憶は
全体的なメモリ装置アクセス時間を短縮するのに有用で
ある。
【0024】pq個のプロセッシングエレメントで構成さ
れたSIMD処理器とm個のメモリモジュールで構成された
メモリ装置において、pq個のデータが同時にそれぞれ異
なるメモリモジュールから要請される。記憶置アクセス
時間の後、pq個の要請が終り、全メモリモジュールもそ
の演算を終えることになるが、このとき要請されたデー
タ内の各データの位置は制限されてはならない。映像処
理、双方向併合整列アルゴリズム、連続増加FFTアルゴ
リズム、再帰的な倍加アルゴリズム、そして行列、信号
処理等において、メモリ装置アクセス時間を短縮し演算
速度を速めるために、大きさが I(*、*)であるデータ
で間隔 rを持ってブロック、列、行、対角線、逆対角線
アクセス形態でpq個のデータを同時にアクセスできるメ
モリ装置が必要となる。間隔が陽数や陰数で可能になる
ためには基準座標(i、j)から間隔が陽数rである12種の
アクセス類型(南東側ブロック、南西側ブロック、北西
側ブロック、北東側ブロック、東側ブロック、南東側線
型、南側線型、南西側線型、西側線型、北西側線型、北
側線型、北東側線型)を考慮しなければならない。
【0025】 SEB(i、j、r) = {I(i+ar、j+br) | 0 ≦ a < p、0 ≦ b < q}、 0 ≦ i ≦ M-rp、0 ≦ j ≦ N-rq (1) SWB(i、j、r) = {I(i+ar、j-br) | 0 ≦ a < p、 0 ≦ b < q}、 0 ≦ i ≦ M-rp、rq ≦ j ≦ N (2) NWB(i、j、r) = {I(i-ar、j-br) | 0 ≦ a < p、 0 ≦ b < q}、 rp ≦ i ≦ M、 rq ≦ j ≦ N (3) NEB(i、j、r) = {I(i-ar、j+br) | 0 ≦ a < p、0 ≦ b < q}、 rp ≦ i ≦ M、 0 ≦ j ≦ N-rq (4) EL(i、j、r) = {I(i、j+ar) | 0 ≦ a < pq}、 0 ≦ i ≦ M、 0 ≦ j ≦ N-rpq (5) SEL(i、j、r) = {I(i+ar、j+ar) | 0 ≦ a < pq} 0 ≦ i ≦ M-rpq、0 ≦ j ≦ N-rpq (6) SL(i、j、r) = {I(i+ar、j) | 0 ≦ a < pq}、 0 ≦ i ≦ M-rpq、0 ≦ j ≦ N (7) SWL(i、j、r) = {I(i+ar、j-ar) | 0 ≦ a < pq}、 0 ≦ i ≦ M-rpq、rpq ≦ j ≦ N (8) WL(i、j、r) = {I(i、j-ar) | 0 ≦ a < pq}、 0 ≦ i ≦ M、rpq ≦ j ≦ N (9) NWL(i、j、r) = {I(i-ar、j-ar) | 0 ≦ a < pq}、 rpq ≦ i ≦ M、 rpq ≦ j ≦ N (10) NL(i、j、r) = {I(i-ar、j) | 0 ≦ a < pq}、 rpq ≦ i ≦ M、0 ≦ j ≦ N (11) NEL(i、j、r) = {I(i-ar、j+ar) | 0 ≦ a < pq}、 rpq ≦ i ≦ M、 0 ≦ j ≦ N-rpq (12) ここで、間隔 rは陽の正数である。
【0026】基準座標(i、j)で間隔rを持つ12種のアク
セス類型(1)〜(12)は図2aと図2bに示す。図2aは4方向ブ
ロック(SEB、SWB、NWB、NEB)を、図2bは8方向線型(EL、
SEL、SL、SWL、WL、NWL、NL、NEL)を示す。
【0027】図3ではSIMD処理器がある衝突防止メモリ
装置の一般的な構造をブロックダイアグラム形態で示
す。ここでインターフェースはデータレジスターであ
る。処理すべきデータが貯蔵されると、メモリ装置の構
成要素はSIMD処理器の要請に従って制御装置の制御下に
次のような演算を順次的に行う。
【0028】(1) t、r、i、jレジスターにはSIMD処理
器によって指定されたアクセス類型、基準座標、アクセ
ス類型(1)~(12)で要求される間隔が入れ込まれ、データ
は行優先順位に変わってデータレジスターに入れ込まれ
る。ここで、k=a・q+b、0≦k<pqである。例えば、南側ブ
ロック(SEB)(14、15、2)で行優先順位に変わった4個の
データはI(14、15)、I(14、17)、I(16、15)、I(16、17)
である。南西側ブロック(SWB)(14、15、3)で行優先順位
に変わった4個のデータはI(14、15)、I(14、12)、I(1
7、15)、I(17、12)であり、北西側線型(NWL)(14、15、
3)の4個のデータはI(11、12)、I(8、9)、I(5、6)、I
(2、3)である。
【0029】(2) アドレス計算及びアドレスルーティ
ング回路はデータに対するm個のアドレスを計算し、そ
れをm個のメモリモジュールにルーティングする。
【0030】(3) メモリモジュール選択回路はアクセ
スされるpq個のメモリモジュールを選択する。
【0031】(4) データルーティング回路はデータレ
ジスター内のデータをm個のメモリモジュールにルーテ
ィングする。
【0032】(5) 書き信号によってpq個のデータが選
択されたpq個のメモリモジュールに貯蔵される。
【0033】ここで(2)、(3)、(4)番の演算が並列に行
われる。
【0034】同様にメモリ装置からデータを取り出す時
にもメモリ装置の構成要素は次のような演算を順次的に
行う。
【0035】(1) t、r、i、jレジスター値を決定す
る。
【0036】(2) アドレス計算及びアドレスルーティ
ング回路はデータに対するm個のアドレスを計算し、そ
れをm個のメモリモジュールにアドレスをルーティング
させる。
【0037】(3) メモリモジュール選択回路はアクセ
スできるpq個のメモリモジュールを選択する。
【0038】(4) 読み信号によってpq個の選択された
メモリモジュールからpq個のデータを取ってくる。
【0039】(5) データルーティング回路はm個のメ
モリモジュールからデータレジスターにデータをルーテ
ィングし、行優先順位に変形されたデータを(1)~(12)ア
クセス形態中の一つに配列する。
【0040】ここで、(2)、(3)番の演算が並列に行われ
る。
【0041】大きさがM×NであるデータI(*、*)をmメ
モリモジュールに分散する時、メモリモジュール割り当
て関数は同時にアクセスされるデータを他のメモリモジ
ュールに位置させなければならない。また、アドレス割
り当て関数は同じメモリモジュールに割り当てられるデ
ータに他のアドレスを割り当てなければならない。
【0042】
【発明が解決しようとする課題】本発明の目的は簡単で
迅速なアドレス計算回路とルーティング回路を持つ衝突
防止メモリ装置を提供することにある。
【0043】本発明の他の目的はM×Nアレイ内のデータ
における任意の位置で一定の間隔を持つ4方向のブロッ
ク(pq)形態と8方向の線分形態であるpq個のデータ要素
に同時にアクセスできるよう支援して、メモリ装置のア
クセス時間を短縮することができる衝突防止メモリ装置
を提供することにある。
【0044】更に、本発明の他の目的は従来のメモリ装
置と比べてデータへのアクセス形態、間隔、データアレ
イの大きさ制限及びハードウェア費用と速度等の面で改
善されたメモリ装置を提供することにある。
【0045】
【課題を解決するための手段】このような目的を達成す
るための本発明による衝突防止メモリ装置は、(m>pq)個
のメモリモジュールと、データに対するm個のアドレス
を計算しその値を前記m個のメモリモジュールにルーテ
ィングするアドレス計算及びアドレスルーティング回路
と、アクセスされるpq個のメモリモジュールを選択する
メモリモジュール選択回路と、指定されたアクセス類型
と基準座標及びアクセス類型で要求される間隔情報を貯
蔵するデータレジスターと、前記データレジスター内の
データを前記m個のメモリモジュールにルーティングす
るデータルーティング回路を含んでなり、pq個のプロセ
ッシングエレメントを持つ単一命令多重データ処理装置
おけるメモリ装置アクセス時間を減少させるための衝突
防止メモリ装置において、4方向四角形ブロック陽数の
間隔で連関されたデータ要素がデータアレイ内のどの位
置(南東側ブロック、南西側ブロック、北西側ブロッ
ク、北東側ブロック)に置かれていっても8方向の線型
(東側線型、南東側線型、南側線型、南西側線型、西側
線型、北西側線型、北線型、北東側線型)アクセス形態
のpq個データ要素に同時アクセスを支援する。
【0046】本発明による衝突防止メモリ装置の細部的
な特徴は、前記アドレス計算及びアドレスルーティング
回路が、基準座標、アクセス形態及び間隔情報が提供さ
れる4個の5×1マルチプレクサーと、アドレス間差を予
め整列して貯蔵するための第1及び第2 SRAMと、(i/p)s
値のための第3 SRAMと、前記マルチプレクサー出力値を
前記第1及び第2 SRAMに伝逹する二つの加算器と前記第3
SRAMの出力値が伝逹され加えられる加算器とm個の加算
器とからなるm+3個の加算器と、前記m個の加算器の出力
をデータルーティング回路の回転信号に応じてm個のメ
モリモジュールに伝逹するバレルシフターからなること
にある。
【0047】
【発明の実施の形態】以下、本発明の衝突防止メモリ装
置の構成と、そのメモリ装置を利用したアドレス計算及
びデータルーティング方法を添付図面により詳細に説明
する。
【0048】データのメモリモジュール番号を決定する
メモリモジュール割り当て関数は次のとおりである。
【0049】 (i、j) = (iq+j) % m (13) メモリモジュール割り当て関数(13)はm=pq+1、2pq、pq
に対してはバンブーリスとモリン(D. C. Van Voorhis
and T. H. Morrin、 IEEE Trans. Comput.、vol. C-2
7、pp.113-125、Feb. 1978.)によって、m=pq+1に対して
はパク(J. W. Park、IEEE Trans. Comput.、vol. C-3
5、pp. 669-674、July 1986)と、パクとハーパ(J. W. P
ark and D. T. Harper III、IEEE Symp. Parallel and
Distributed Processing、pp. 444-451、Dec. 1992.、
J. W. Park and D. T. Harper III、IEEE Trans. Paral
lel Distrib. Syst..、vol. 7、No. 8、pp. 855-860、A
ug. 1996.)により提案された。
【0050】次の理論1は12種のアクセス類型(1)~(12)
に対して前記の関数(13)によるアクセス可能性を示して
いる。
【0051】理論1:mが pqより大きな素数である時、
メモリモジュール割り当て関数(i、j)は間隔がr(r%m≠
0)である南東側ブロック(SEB)、南西側ブロック(SWB)、
北西側ブロック(NWB)、北東側ブロック(NEB)、東側線型
(EL)、南東側線型(SEL)、南側線型(SL)、南西側線型(S
WL)、西側線型(WL)、北西側線型(NWL)、北側線型 (N
L)、北東側線型(NEL)アクセス形態であるpq個のデータ
はpq個のお互いに異なるメモリモジュール内に位置す
る。
【0052】メモリモジュール内のデータのアドレスを
決定する割り当て関数は下記の式(14)のとおりである。
【0053】 (i、j) = (i/p)s + j/q (14) ここで、「s」はN/qの整数部分と同じ或いはより大きな整
数であり、「/」は整数形の割り算を表す。この関数はバ
ンブーリスとモリン(D. C. Van Voorhis and T. H. Mor
rin、IEEE Trans. Comput.、vol. C-27、pp. 113-125、
Feb. 1978.)、パク(J. W. Park、IEEE Trans. Compu
t.、 vol. C-35、pp. 669-674、July 1986)、パクとハ
ーパ(J. W. Park and D. T. Harper III、IEEE Symp. P
arallel andDistributed Processing、pp. 444-451、De
c. 1992.、J. W. Park and D. T. Harper III、IEEE Tr
ans. Parallel Distrib. Syst.、vol. 7、No. 8、pp. 8
55-860、Aug. 1996.)によって提案された。
【0054】(1)〜(12)アクセス類型において、メモリ
モジュールの変化とデータのアドレスが変更された行優
先順位に配列できれば、k = a・q+b、0≦k<pqである時、
メモリモジュール割り当て関数(13)とアドレス割り当て
関数(14)は次のように表すことができる。
【0055】 μ(k) = (μ(0) + μ'(k))%m、 0 ≦ k < pq (15) ここで、μ(0)は関数(13)の(i、j)によって求められ
る。
【0056】 α(k) = α(0) + α'(k)、 0 ≦ k < pq (16) ここで、α(0)は関数(14)の基準アドレスであるα(i、
j)である。
【0057】メモリモジュール内で処理されるべきデー
タのアドレスが計算されるα(μ)(0≦μ< m)は非常に鈍
く高価である(D. C. Van Voorhis and T. H. Morrin、I
EEETrans. Comput.、vol. C-27、pp. 113-125、Feb. 19
78.、D. H. Lawrie and C.R. Vora、 IEEE Trans. Comp
ut.、vol. C-31、 pp.435-442、 May 1982.)。データの
アドレス計算はアドレスルーティングから分離されたア
ドレス計算により複雑性を低減した。パク(J. W. Par
k、IEEE Trans. Comput.、vol. C-35、pp. 669-674、 J
uly 1986)、パクとハーパ(J. W. Park and D. T. Harpe
r III、IEEE Symp. Parallel and Distributed Process
ing、pp. 444-451、Dec. 1992.、J. W.Park and D. T.
Harper III、IEEE Trans. Parallel Distrib. Syst.、v
ol. 7、No. 8、pp. 855-860、Aug. 1996.)のメモリ装置
でアドレス間差α'(k) (=α(k)-α(0))が優先的に計算
され、そのアドレス間差をα(0)に加えて式(16)のα'
(k)を計算する。
【0058】最後にアドレスα(k)はメモリモジュール
にルーティングされる。アドレス計算及びアドレスルー
ティング方法の短所はルーティング形態がアクセス形態
と間隔に依存するため、アドレスルーティング回路はア
クセス類型と間隔が増加すると非常に複雑になる。
【0059】本発明では新しいアドレス計算とルーティ
ング方法がアドレス間差α'(k)に要求されたデータのう
ち、第1番目データのμ(0)のメモリモジュール番号か
らメモリモジュール番号に従って順次的に予め整列され
るよう提案された。それで、基準アドレスにアドレス間
差を加えた後、全体12アクセス類型と間隔μ(0)による
右側回転が必要となる。
【0060】μ'(k)とα'(k)を求めるためには前記の式
(15-16)が次のように変わる。
【0061】 μ'(k) = μ((k)-μ(0))%m、 0 ≦ k < pq (17) α'(k) = α(k)-α(0)、 0 ≦ k < pq (18) μ'(k) = (λ・ k)%mの場合に、 k = (μ'(k) λ')%m = ((μ(k)-μ(0))λ')%m (19) ここで、 λ・ λ' = 1%mである。
【0062】式(18)におけるkの代りに((μ(k)-μ(0))・
λ')%mを用いて、α'(k)を次のようにすることができ
る。
【0063】 α'(k)=α'(((μ(k)-μ(0)) ・λ')%m) =α(((μ(k)-μ(0)) ・λ')%m) - α(0)、 0 ≦ k < pq (20) α'(k)(0≦k<pq)はメモリ装置内で用いられたpq個のデ
ータのアドレス間差である。ここで、データは (i、j)
のデータから変形された行の優先に整列される。メモリ
モジュール番号に従ってメモリモジュール「0」からアド
レス間差(20)の整列によりα'(μ)を次のように求める
ことができる。
【0064】 α'(μ) = α'(((μ- μ(0)) ・λ')%m) = α(((μ- μ(0)) ・λ')%m) - α(0)、 0 ≦ μ < m (21) α'(μ)(0≦μ<m)はpq個のデータに対するpq個のアドレ
ス間差とm-pq個の仮アドレス間差であり、それは「0」か
らメモリモジュール番号μによって整列された。
【0065】α'(μ)(0≦μ<m )は基準アドレス (i、j)
のデータのメモリモジュール番号μ(0)(=μ(i、j))に依
存するため、アドレス間差の個数はメモリモジュール数
mに従って増加する。それで、メモリモジュール数mが大
きい時、アクセス類型(1)~(12)のデータのアドレス計算
に対し、α'(μ)(0≦μ< m)の使用は非常に複雑であ
る。式(21)にμの代りに(μ+μ(0))%mを入れると、下記
の式によりメモリモジュールμ(0)からメモリモジュー
ル番号の順次的なアドレス間差を求めることができる。
【0066】 α'(μ+μ(0)) = α'(μ・λ')%m、 0 ≦ μ < m (22) 式(22)のアドレス間差、α'(μ・λ')%m (0 ≦ μ< m)は
(i、j)や (i、j)の項目が含まれていないため、データ
の位置に対して影響が少ない。
【0067】それで、コンパイリング時間にアドレス間
差を計算した後、そのアドレス間差を一つのメモリモジ
ュールに貯蔵することができる。式(22)のアドレス間差
α'(μ+μ(i、j))がα(i、j)に加えられた後、α(μ)を
求めるためにμ(i、j)による右側回転を単一度だけ行
う。
【0068】12個のアクセス類型(1)~(12)でアドレス間
差は次の式で表わされる。 AD_SEB(i、j、r、a、b) = α(i+ar、j+br) - α(i、j) = s・((i+ar)/p-(i/p)) + (j+br)/q - j/q = s・((i%p+ar)/p) + (j%q+br)/q、 0 ≦ a < p、 0 ≦ b < q (23) AD_SWB(i、j、r、a、b) = α(i+ar、j-br) - α(i、j) = s・((i+ar)/p-(i/p)) + (j-br)/q - j/q = s・((i%p+ar)/p) + (j%q-br)/q、 0 ≦ a < p、 0 ≦ b < q (24) AD_NWB(i、j、r、a、b) = α(i-ar、j-br) - α(i、j) = s・((i-ar)/p - (i/p)) + (j-br)/q - j/q = s・((i%p-ar)/p) + (j%q-br)/q、 0 ≦ a < p、 0 ≦ b < q (25) AD_NEB(i、j、r、a、b) = α(i-ar、j+br) - α(i、j) = s・((i-ar)/p - (i/p)) + (j+br)/q - j/q = s・ ((i%p-ar)/p) + (j%q+br)/q、 0 ≦ a < p、 0 ≦ b < q (26) AD_EL(i、j、r、a) = α(i、j+ar) - α(i、j) = (j%q+ ar)/q、 0 ≦ a < pq (27) AD_SEL(i、j、r、a) = α(i+ar、j+ar) - α(i、j) = s・((i%p+ar)/p) + (j%q+ar)/q、 0 ≦ a < pq (28) AD_SL(i、j、r、a) = α(i+ar、j) - α(i、j) = s・((i%p+ar)/p)、 0 ≦ a < pq (29) AD_SWL(i、j、r、a) = α(i+ar、j-ar) - α(i、j) = s・((i%p+ar)/p) + (j%q-ar)/q、 0 ≦ a < pq (30) AD_WL(i、j、r、a) = α(i、j-ar) - α(i、j) = (j%q - ar)/q、 0 ≦ a < pq (31) AD_NWL(i、j、r、a) = α(i-ar、j-ar) - α(i、j) = s・((i%p-ar)/p) + (j%q-ar)/q、 0 ≦ a < pq (32) AD_NL(i、j、r、a) = α(i-ar、j) - α(i、j) = s・((i%p-a)/p))、 0 ≦ a < pq (33) AD_NEL(i、j、r、a) = α(i-ar、j+ar) - α(i、j) = s・((i%p-ar)/p) + (j%q+ar)/q、 0 ≦ a < pq (34) 前記に示したアドレス間差(23)〜(34)は次の式によって
変形された行優先順位の基準座標(i、j)から整列され
る。
【0069】 AD_SEB(i、j、r、k) = s・((i%p+(k/q)r)/p) + (j%q+(k%q)r)/q、 0 ≦ k < pq (35) AD_SWB(i、j、r、k) = s・((i%p+(k/q)r)/p) + (j%q-(k%q)r)/q、 0 ≦ k < pq (36) AD_NWB(i、j、r、k) = s・((i%p-(k/q)r)/p) + (j%q-(k%q)r)/q、 0 ≦ k < pq (37) AD_NEB(i、j、r、k) = s・((i%p-(k/q)r)/p) + (j%q+(k%q)r)/q、 0 ≦ k < pq (38) AD_EL(i、j、r、k) = (j%q + kr)/q、 0 ≦ k < pq (39) AD_SEL(i、j、r、k) = s・((i%p+kr)/p) + (j%q+kr)/q、 0 ≦ k < pq(40) AD_SL(i、j、r、k) = s・((i%p+kr)/p))、 0 ≦ k < pq (41) AD_SWL(i、j、r、k) = s・((i%p+kr)/p) + (j%q-kr)/q、 0 ≦ k < pq(42) AD_WL(i、j、r、k) = (j%q- kr)/q、 0 ≦ k < pq (43) AD_NWL(i、j、r、k) = s・((i%p-kr)/p) + (j%q-kr)/q、 0 ≦ k < pq(44) AD_NL(i、j、r、k) = s・((i%p-kr)/p))、 0 ≦ k < pq (45) AD_NEL(i、j、r、k) = s・((i%p-kr)/p) + (j%q+kr)/q、 0 ≦ k < pq(46) アドレス間差が二進項目を持つj%qの影響を受けるの
で、式(35)~(46)のSEB、SWB、NWB、NEB、EL、SEL、SW
L、WL、NWL、NELのアドレス間差は加算器の入力Cのため
にメモリモジュールBに貯蔵された二進値とアドレス間
差の大きさ減少の結果である入力Bのためのメモリモジ
ュールにAに貯蔵された残り値を分離する。
【0070】SEBのアドレス間差は次の式によって分離
される。
【0071】 AD_SEB(i、j、r、k) = s・((i%p+(k/q)r)/p)+((k%q)r)/q、 0 ≦ k < pq(アドレス間差のためのメモリモジュールA) + (j%q+(k%q)r)/q - ((k%q)r)/q、 0≦ k < pq(アドレス間差のためのメモリモジュールB) (47) 他の11個でのアクセス類型のアドレス間差は次のとおり
である。
【0072】 AD_SWB(i、j、r、k) = s・((i%p+(k/q)r)/p) - ((k-(k/q)q)r)/q、 (アドレス間差のためのメモリモジュールA) + (j%q - (k%q)r)/q + ((k%q)r)/q (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (48) AD_NWB(i、j、r、k) = s・((i%p-(k/q)r)/p) - ((k-(k/q)q)r)/q、 (アドレス間差のためのメモリモジュールA) + (j%q - (k%q)r)/q + ((k%q)r)/q、 (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (49) AD_NEB(i、j、r、k) = s・((i%p-(k/q)r)/p) + ((k-(k/q)q)r)/q、 (アドレス間差のためのメモリモジュールA) + (j%q + (k%q)r)/q - ((k%q)r)/q (アドレス間差のてめのメモリモジュールB)、 0 ≦ k < pq (50) AD_EL(i、j、r、k) = (kr)/q、 (アドレス間差のためのメモリモジュールA) + (j%q + (k%q)r)/q -((k%q)r)/q (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (51) AD_SEL(i、j、r、k) = s・((i%p+kr)/p) + (kr)/q、 (アドレス間差のためのメモリモジュールA) + (j%q+kr)/q - (kr)/q (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (52) AD_SL(i、j、r、k) = s・((i%p+kr)/p)) (アドレス間差のためのメモリモジュールA)、 0 ≦ k < pq (53) AD_SWL(i、j、r、k) = s・ ((i%p+kr)/p) - (kr)/q、 (アドレス間差のためのメモリモジュールA) + (j%q - (k%q)r)/q + ((k%q)r)/q (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (54) AD_WL(i、j、r、k) = -(kr) / q (アドレス間差のためのメモリモジュールA) + (j%q kr) /q + (kr) / q (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (55) AD_NWL(i、j、r、k) = s・((i%p-kr)/p) - (kr)/q、 (アドレス間差のためのメモリモジュールA) + (j%q - (k%q)r)/q + ((k%q)r)/q (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (56) AD_NL(i、j、r、k) = s・((i%p-kr)/p)) (アドレス間差のためのメモリモジュールA)、 0 ≦ k < pq (57) AD_NEL(i、j、r、k) = s・((i%p-kr)/p) + (kr)/q、 (アドレス間差のためのメモリモジュールA) + (j%q + (k%q)r)/q - ((k%q)r)/q、 (アドレス間差のためのメモリモジュールB)、 0 ≦ k < pq (58) 前記12種のアドレス間差に対し表2に整理されている。
【0073】
【表2】 アドレス計算回路(J. W. Park、IEEE Trans. Comput.、
vol. C-35、pp. 669-674、July 1986.、 J. W. Park an
d D. T. Harper III、IEEE Symp. Parallel and Distri
buted Processing、 pp. 444-451、Dec. 1992.、 J. W.
Park and D. T. Harper III、IEEE Trans. Parallel D
istrib. Syst.、vol. 7、No. 8、pp. 855-860、Aug. 19
96.)は記憶アドレスの足し算と式 (47)のブロック、式
(51)の行、式(53)の行のアクセス類型のアドレス間差に
よってpqアドレスを計算する。それで、アドレスルーテ
ィング方法は12アクセス類型である(1)~(12)のアドレス
が限界値p-i%p、または、q-j%qのみならず、陽数間隔の
多様性のためで12種のアクセス形態(1)~(12)と間隔のア
ドレス間差の計算(47)~(58)の具現によってアドレスル
ーティング方法が更に複雑化する。要請されたデータの
メモリモジュール番号が最初のデータのメモリモジュー
ル番号から順次的に予め整理されており、メモリモジュ
ールAとBに貯蔵されていれば、アドレス間差に基準アド
レスα(i、j)を加え、全ての12種のアクセス形態(1)~(1
2)と間隔を1番目データのメモリモジュールと同じ値に
よってm個のアドレスに直ちにルーティングさせて、ア
ドレスルーティング回路はm個のアドレスを簡単に計算
することができる。
【0074】理論1においてアクセスされるpq個のメモ
リモジュール番号は12種のアクセス形態(1)~(12)とr%m
≠0である間隔が次のように表される。
【0075】 IN_SEB(i、j、r) = μ(i+ar、j+br) = (μ(i、j) + qar + br)%m、 0 ≦ a < p、 0 ≦ b < q (59) IN_SWB(i、j、r) = μ(i+ar、j-br) = (μ(i、j) + qar - br)%m、 0 ≦ a < p、 0 ≦ b < q (60) IN_NWB(i、j、r) = μ(i-ar、j-br) = (μ(i、j) - qar - br)%m、 0 ≦ a < p、 0 ≦ b < q (61) IN_NEB(i、j、r) = μ(i+ar、j+br) = (μ(i、j) - qar + br)%m、 0 ≦ a < p、 0 ≦ b < q (62) IN_EL(i、j、r) = μ(i、j+br) = (μ(i、j) + br)%m、 0 ≦ b < pq(63) IN_SEL(i、j、r) = μ(i+ar、j+ar) = (μ(i、j) + (q+1)ar)%m、 0 ≦ a < pq (64) IN_SL(i、j、r) = μ(i+ar、j) = (μ(i、j) + qar)%m、 0 ≦ a < pq (65) IN_SWL(i、j、r) = μ(i+ar、j-ar) = (μ(i、j) + (q-1)ar)%m、 0 ≦ a < pq (66) IN_WL(i、j、r) = μ(i、j-ar) = (μ(i、j) - br)%m、 0 ≦ a < pq (67) IN_NWL(i、j、r) = μ(i-ar、j-ar) = (μ(i、j) - (q+1)ar)%m、 0 ≦ a < pq (68) IN_NL(i、j、r) = μ(i-ar、j) = (μ(i、j) - qar)%m、 0 ≦ a < pq (69) IN_NEL(i、j、r) = μ(i-ar、j+ar) = (μ(i、j) - (q-1)ar)%m、 0 ≦ a < pq (70) 前記の式(59)〜(70)の番号は次のことによって基準アド
レス (i、j)から変形された行優先順位に整列される。
【0076】 μSEB(k) = (μ(0) + q・(k/q)・r + (k%q)・r)%m = (μ(0) + kr)%m、 0 ≦ k < pq (71) μSWB(k) = (μ(0) + q・(k/q)・r - (k%q)・r)%m = (μ(0) + (q・(k/q) - (k%q)) ・r)%m、 0 ≦ k < pq (72) μNWB(k) = (μ(0) - q・(k/q)・r - (k%q)・r)%m = (μ(0) - kr)%m、 0 ≦ k < pq (73) μNEB(k) = (μ(0) - q・(k/q)・r + (k%q)・r)%m = (μ(0) - (q・(k/q) - (k%q)) ・r)%m、 0 ≦ k < pq (74) μEL(k) = (μ(0) + kr)%m、 0 ≦ k < pq (75) μSEL(k) = (μ(0) + (q+1)kr)%m、 0 ≦ k < pq (76) μSL(k) = (μ(0) + qkr)%m、 0 ≦ k < pq (77) μSWL(k) = (μ(0) + (q-1)kr)%m、 0 ≦ k < pq (78) μWL(k) = (μ(0) - kr)%m、 0 ≦ k < pq (79) μNWL(k) = (μ(0) - (q+1)kr)%m、 0 ≦ k < pq (80) μNL(k) = (μ(0) - qkr)%m、 0 ≦ k < pq (81) μNEL(k) = (μ(0) - (q-1)kr)%m、 0 ≦ k < pq (82) ここで μ(0)はμ(i、j)である。
【0077】南東側ブロック(SEB)のアドレス間差 μ番目モジュールの南東側ブロック(SEB)のアドレス間
差、ASEB(μ)は(17)〜(22)過程によって(47)と(71)から
得られた。
【0078】 ASEB(μ) = s・((i%p+((((μ-μ(0))r')%m)/q)r)/p) + (((((μ-μ(0))r')%m )%q)r)/q、 0 ≦ μ < m (メモリモジュールA) + (j%q+((((μ-μ(0))r')%m)%q)r)/q - (((((μ-μ(0))r')%m)%q)r)/q、 0 ≦ μ < m (メモリモジュールB) (83) ここで、 r・r' = 1%mである。式(83)でμの代りに(μ+
μ(0))%mに代置すると、次の式によってμ(0)から上り
順に整列されたメモリモジュールのアドレス間差を求め
ることができる。
【0079】 ASEB(μ+μ(0)) = s・((i%p+(((μr')%m)/q)r)/p) + ((((μr')%m)%q)r)/q、 0 ≦ μ < m (メモリモジュールA) + (j%q+(((μr')%m)%q)r)/q - ((((μr')%m)%q)r)/q、 0 ≦ μ < m (メモリモジュールB) (84) ここで、r・r' = 1%mである。
【0080】南西側ブロック(SWB)のアドレス間差 SWB(i、j、r)の式(72)の番号が式(19)内にないため、SE
B(i、j-(q-1)r、r)の番号とアドレス間差は SWB(i、j、
r)の代りに考慮される。SEB(i、j-(q-1)r、r)のアドレ
ス間差は、 AD_SEB(i、(j-(q-1)r)、r、k) = s・((i%p+(k/q)r)/p) + ((k%q)r)/q、 0 ≦ k < pq (メモリモジュールA) + (j%q-(q-1)r+(k%q)r)/q - ((k%q)r)/q、 0 ≦ k < pq (メモリモジュールB) (85) SEB(i、j-(q-1)r、k)のメモリモジュールの指数は次の
とおりである。
【0081】 (μ(0) - (q-1)r + kr)%m、 0 ≦ k < pq (86) それで、μ番目のモジュールの南東側ブロック(SWB)の
アドレス間差ASWB(μ)は式(85)と(86)から求めることが
できる。
【0082】 ASWB(μ) = s・((i%p+((((μ - μ(0)+(q-1)r)r')%m)/q)r)/p) + (((((μ - μ(0)+(q-1)r)r′)%m)%q)r)/q、 0 ≦ μ < m (メモリモジュールA) + (j%q-(q-1)r+((((μ-μ(0)+(q-1)r)r')%m)%q)r)/q - (((((μ - μ(0)+(q-1)r)r')%m)%q)r)/q、 0 ≦ μ < m (メモリモジュールB) (87) ここで、 r・r' = 1%mである。
【0083】式(87)でμの代りに(μ+ μ(0) + (q-1)r)
%mを用いて、次の式によってμ(0)から上り順に整列さ
れたメモリモジュールのアドレス間差を求めることがで
きる。
【0084】 ASWB(μ + μ(0)) = s・((i%p+((((μ+ (q-1)r)r')%m)/q)r)/p) + (-(q-1)r + ((((μ+ (q-1)r)r')%m)%q)r)/q、 0 ≦ μ < m (メモリモジュールA) + (j%q-(q-1)r+(((( μ+ (q-1)r)r')%m)%q)r)/q - (-(q-1)r + (((( μ+ (q-1)r)r')%m)%q)r)/q、 0 ≦ μ < m (メモリモジュールB)、 (88) ここで、 r・r′= 1%mである。
【0085】μ(0)から上り順に整列されたメモリモジ
ュールお互いに異なる10種のアクセス形態に対するアド
レス間差はSEBやSWBと同じ過程によって求められる。表
3にμ(0)から上り順に整列されたメモリモジュールの12
種のアクセス形態(1)~(12)と間隔であるアドレス間差を
示す。
【0086】
【表3】 アドレス間差の大きさ 表3に示したSEB、SWB、NWB、NEB、SEL、SWL、NWL及びNE
Lのアドレス間差は、r、i%p及びj%qの影響を受ける。ま
た、SEB、SWB、NEB、NWB、SEL、SWL、NWL、NELのアドレ
ス間差の大きさは間隔の個数を#rで表すとき、メモリモ
ジュールAに8×p×m×#r×log2(MN/pq)ビットぐらいと
メモリモジュールBに8×q×m×#rビットぐらいである。
東側線型と西側線型のアドレス間差はk、r、及び j%pの
影響を受ける。また、アドレス間差の大きさはメモリモ
ジュールAでは2×q×m×#r×log2(MN/pq)ビットであ
り、メモリモジュールBでは2×q×m×#rビットである。
南側線型と北側線型のアドレス間差はk、r、i%pに影響
を受け、アドレス間差の大きさはメモリモジュールBに2
×q×m×#r×log2(MN/(pq))ビットである。南側線型と
北側線型のアドレス間差はj%qの影響を受けないのでメ
モリモジュールBにはアドレス間差がない。それで、提
案されたメモリ装置のアドレス間差の全体大きさは(12
×p×m×log2(MN/pq)+10×q×m)×#rビットである。提
案された方法及びメモリ装置の短所は12種のアクセス形
態と間隔 (1)~(12)全体に対する表3のアドレス間差を貯
蔵するのに、メモリモジュールAとBの大きさが非常に大
きくなるということである。それで、要求されたアクセ
ス形態と間隔に対するアドレス間差をコンパイリング時
間に計算しメモリモジュールAとBに貯蔵する。
【0087】本発明によるアドレス計算回路とアドレス
ルーティング回路は次のような演算を順次的に行う。
【0088】(1) 予め整列されたp×m個のアドレス間
差とq×m個の差がそれぞれアクセス形態とそれぞれの間
隔に対してメモリモジュールAとBに貯蔵される。
【0089】(2) m個のアドレス間差はアクセス形態、
i%p、j%qの間隔のみならず、μ(0≦μ<m )などの影響を
受けるので、要求されたアクセス形態、i%p、j%q間隔に
よってメモリモジュールAとBから取ってくる。
【0090】(3) 前記で求められたm個のアドレス間差
は基準アドレスα(i、j)に加えられる。
【0091】(4) 前記のm個のアドレスは12種のアクセ
ス形態と間隔(1)〜(12)全体に対して、μ(0)によって回
転される。
【0092】(5) 計算されたm個のアドレスはm個のメ
モリモジュールにルーティングされる。
【0093】データレジスターからm個のメモリモジュ
ールにデータをルーティングするデータルーティング回
路の役割は適切なメモリモジュールにpq個のデータをル
ーティングすることにある。pq個のデータに対するメモ
リモジュール番号は、式(71)〜(82)でのアドレスと同じ
である。それで、次の数式によってpq個のデータを整列
させた後、そのデータのメモリモジュール番号を持って
メモリモジュール番号0から始まる上り順整列のために
右側回転がμ(i、j)ぐらい行われる。
【0094】 SEB: D2((kr)%m) ←D1(k)、 0 ≦ k < pq (89) SWB: D2(((q・(k/q) - k%q)・r)%m) ←D1(k)、 0 ≦ k < pq (90) NWB: D2((-kr)%m) ← D1(k)、 0 ≦ k < pq (91) NEB: D2(((-q・(k/q) + k%q)・r)%m) ←D1(k)、 0 ≦ k < pq (92) EL: D2((kr)%m) ←D1(k)、 0 ≦ k < pq (93) SEL: D2(((q+1)kr)%m) ←D1(k)、 0 ≦ k < pq (94) SL: D2((qkr)%m) ←D1(k)、 0 ≦ k < pq (95) SWL: D2(((q-1)kr)%m) ←D1(k)、 0 ≦ k < pq (96) WL: D2((-kr)%m) ← D1(k)、 0 ≦ k < pq (97) NWL: D2((-(q+1)kr)%m) ←D1(k)、 0 ≦ k < pq (98) NL: D2((-qkr)%m) ←D1(k)、 0 ≦ k < pq (99) NEL: D2((-(q-1)kr)%m) ←D1(k)、 0 ≦ k < pq (100) ここで、D1とD2はデータレジスターと臨時レジスターで
ある。ルーティング形態がアクセス形態と間隔の影響を
受けるため、ルーティング形態(89)~(100)を用いるデー
タルーティング回路の制御は複雑である。このようなデ
ータルーティング形態は次に示すことによって制御の複
雑度を減少させることができる。
【0095】南東側ブロック(SEB) 式 (89)の南東側ブロック(SEB)のデータルーティング形
態に対して、間隔 rのメモリモジュール番号である(kr)
%mは(k・m・l1+ k・r1)%mである。 ここで、r1=r%mでありl
1は陽数である。それで、式(89)にの間隔rの南東側ブロ
ック(SEB)のデータルーティング形態は下記の式からr1
(=r%m)を持つ(m-1)個のお互いに異なるルーティング経
路が選択される。
【0096】 SEB: D2((kr1)%m) ←D1(k)、 0 ≦ k < pq (101) 南西側ブロック(SWB) 式(90)の南西側ブロック(SWB)のデータルーティング形
態に対して、間隔rのメモリモジュール番号である((q・
(k/q)-k%q)・r)%mは(k・m・l2+(q・(k/q)-k%q)・r1)%mであ
る。ここで、r1=r%mでありl2は陽数である。それで、式
(90)の間隔rの南西側ブロック(SWB)のデータルーティン
グ形態は下記の式からr1=r%mを持つ(m-1)個のお互いに
異なるルーティング経路が選択される。
【0097】 SWB: D2(((q・(k/q) - k%q)・r1)%m) ←D1(k)、 0 ≦ k < pq (102) 北西側ブロック(NWB) 式(91)の北西側ブロック(NWB)のデータルーティング形
態に対する間隔rのメモリモジュール番号(-kr)%mは、式
(89)の南東側ブロック(SEB)のデータルーティング形態
(kr)%mの間隔(-r)%mであるメモリモジュール番号と同一
である。それで、式(101)の南東側ブロック(SEB)の(m-
1)個のお互いに異なるルーティング経路に間隔rの代わ
りに(-r)%mを代入することで北西側ブロック(NWB)の経
路を求めることができる。
【0098】北東側ブロック(NEB) 式(92)の北東側ブロック(NEB)のデータルーティング形
態に対して、間隔rのメモリモジュール番号である((-q・
(k/q)+k%q)・r)%mは、式(90)の南西側ブロック(SWB)のデ
ータルーティング形態で間隔(-r)%mであるメモリモジュ
ール番号の((q・(k/q) - k%q)・r)%mと同一である。それ
で、式(102)の南西側ブロック(SWB)での(m-1)個のお互
いに異なるルーティング経路を用いて、間隔rの代わり
に(-r)%mを代入することで北東側ブロック(NEB)を求め
ることができる。
【0099】東側線型(EL) 式(93)の東側線型(EL)のデータルーティング形態に対し
て、間隔rのメモリモジュール番号である(kr)%mは、式
(89)の南東側ブロック(SEB)のデータルーティング形態
に対する間隔rのメモリモジュール番号と同一である。
それで、式(101)の南東側ブロック(SEB)での(m-1)個の
お互いに異なるルーティング経路を用いて、間隔rの代
わりにr%mを代入して東側線型(EL)の経路を求めること
ができる。
【0100】南東側線型(SEL) 式(94)の南東側線型(SEL)のデータルーティング形態に
対して、間隔rのメモリモジュール番号である((q+1)kr)
%mは、式(89)の南東側ブロック(SEB)のデータルーティ
ング形態で間隔((q+1)r)%mのメモリモジュール番号であ
る(kr)%mと同一である。それで、式(101)の南東側ブロ
ック(SEB)での(m-1)個のお互いに異なるルーティング経
路を用いて、間隔rの代わりに((q+ 1)r)%mを代入するこ
とで南東側線型(SEL)の経路を求めることができる。
【0101】南側線型(SL) 式(95)の南側線型(SL)のデータルーティング形態に対し
て、間隔rのメモリモジュール番号である(qkr)%mは、式
(89)の南東側ブロック(SEB)のデータ形態で間隔(qr)%m
のメモリモジュール番号である(kr)%mと同一である。そ
れで、式(101)の南東側ブロック(SEB)での(m-1)個のお
互いに異なるルーティング経路を用いて、間隔rの代わ
りに(qr)%mを代入することで南側線型(SL)の経路を求め
ることができる。
【0102】南西側線型(SWL) 式(96)の南西側線型(SWL)のデータルーティング形態に
対して、間隔rのメモリモジュール番号である((q-1)kr)
%mは、式(89)の南東側ブロック(SEB)のデータルーティ
ング形態で間隔((q1) r)%mのメモリモジュール番号であ
る((kr)%m)と同一である。それで、式(101)の南東側ブ
ロック(SEB)での(m-1)個のお互いに異なるルーティング
経路を用いて、間隔rの代わりに((q-1)r)%mを代入する
ことで南西側線型(SWL)の経路を求めることができる。
【0103】西側線型(WL) 式(97)の西側線型(WL)のデータルーティング形態に対し
て、間隔rのメモリモジュール番号である(-kr)%mは、式
(89)の南東側ブロック(SEB)のデータルーティング形態
でメモリモジュール番号である(kr)%mに間隔(-r)%mを入
れた(k(-r))%m)と同一である。それで、式(101)の南東
側ブロック(SEB)での(m-1)個のお互いに異なるルーティ
ング経路を用いて、間隔rの代わりに(-r)%mを代入する
ことで西側線型(WL)の経路を求めることができる。
【0104】北西側線型(NWL) 式(98)の北西側線型(NWL)のデータルーティング形態に
対して、間隔rのメモリモジュール番号である(-(q+1)k
r)%mは、式(89)の南東側ブロック(SEB)のデータルーテ
ィング形態でメモリモジュール番号である(kr)%mに間隔
(-(q+1)r)%mを入れた(k(-(q+1)r))%mと同一である。そ
れで、式(101)の南東側ブロック(SEB)での(m-1)個のお
互いに異なるルーティング経路を用いて、間隔rの代わ
りに(-(q+1)r)%mを代入することで北西側線型(NWL)の経
路を求めることができる。
【0105】北線型(NL) 式(99)の北線型(NL)のデータルーティング形態に対し
て、間隔rのメモリモジュール番号である(-qkr)%mは、
式(89)の南東側ブロック(SEB)のデータルーティング形
態でメモリモジュール番号である(kr)%mに間隔(-qr)%m
を入れた(k(-qr))%mと同一である。それで、式(101)の
南東側ブロック(SEB)での(m-1)個のお互いに異なるルー
ティング経路を用いて、間隔rの代わりに(-qr)%mを代入
することで北線型(NL)の経路を求めることができる。
【0106】北東側線型(NEL) 式(100)の北東側線型(NEL)のデータルーティング形態に
対して、間隔rのメモリモジュール番号である(-(q1)kr)
%mは、式(89)の南東側ブロック(SEB)のデータルーティ
ング形態でメモリモジュール番号である(kr)%mに間隔(-
(q1)r)%mを入れた(k(-(q1)r))%mと同一である。それ
で、式(101)の南東側ブロック(SEB)での(m-1)個のお互
いに異なるルーティング経路を用いて、間隔rの代わり
に(-(q1)r)%mを代入することで北東側線型(NEL)の経路
を求めることができる。
【0107】表4に減少されたルーティング形態が現わ
れている。
【0108】
【表4】 12種のアクセス形態に対する全体ルーティング形態は2
(m-1)個である。それで、データルーティング回路では
間隔(1)~(12)である12種のアクセス形態に対して、式(1
01)のSEBと式(102)のSWBの二つに対するルーティング形
態だけが必要となる。
【0109】データルーティング回路は図4に示す。
【0110】ここで、ROM、1og2(2(m-1))×2(m-1)検波
器及び3相バッファー選択器を用いて、12種のアクセス
形態と間隔を持つ2(m-1)ブランチのルーティング形態を
作る。12種のアクセス形態と間隔rのためにルーティン
グ形態は、図5a及び図5bに示したようにオメガネットワ
ーク(J. Frailong、W. Jalby、and J. Lenfant、in Pr
oc. Int. Conf. Parallel Processing、1985、pp. 2
76-283.、 C. S. Raghavendra and R. Boppana、 in Pr
oc. Int. Conf. Parallel Processing 、1990、p
p.76-83.、 D. H. Lawrie、 IEEE Trans. Comput .、vo
l. C-24、no. 12、pp. 1145-1155、Dec. 1975.)や、セ
ータ(Theta)ネットワーク(D. Lee、 Scrambled storage
for parallel memory systems、 in Proc. Int. Symp.
on Comp.Architecture、 pp. 232-239、 1988.)経路の
衝突のため具現されることができない。本発明によるデ
ータルーティング回路はクロスバーネットワーク(D. T.
Harper III、IEEE Trans. Comput.、vol. C-43、 pp.6
18-622、 May 1994.、 H.Shapiro、 IEEE Trans. Compu
t .、 vol. C-27、 no. 5、 pp. 421-428、 May 197
8.、 D. H. Lawrie and C. R. Vora、 IEEE Trans. Com
put .、 vol. C-31、pp.435-442、 May 1982.)で単純に
比較されられた。読み演算のためのルーティング形態は
決まっている。
【0111】間隔を持つ列、ブロック、行に対するメモ
リモジュール選択回路はバンブーリスとモリン(D. C. V
an Voorhis and T. H. Morrin、IEEE Trans. Comput.、
vol.C-27、pp.113-125、Feb. 1978.)、そして、パク(J.
W. Park、IEEE Trans. Comput .、vol. C-35、pp.669-
674、July 1986)によって提案された。メモリモジュー
ル選択回路は関数(71)〜(82)において出た番号に該当す
るpq個のメモリモジュールを選択する。一般的に(m-pq)
<< pqであるので、使われないメモリモジュールを捜す
メモリモジュール選択回路の具現が易しい。次の理論2
は12種のアクセス形態(1)~(12)に対する(m-pq)個のアク
セスされないメモリモジュール番号を見せる。
【0112】理論2 : 12種のアクセス形態に対する(m-p
q)個のアクセスされないメモリモジュール番号は次のよ
うになる。
【0113】 SEB(k) = ((0) + kr)%m、 pq ≦ k < m (103) SWB(k) = (μ(0) + (q・(k/q) - (k%q))・r)%m、 pq ≦ k < m (104) NWB(k) = (μ(0) - kr)%m、 pq ≦ k < m (105) NEB(k) = (μ(0) - (q・(k/q) - (k%q))・r)%m、 pq ≦ k < m (106) EL(k) = (μ(0) + kr)%m、 pq ≦ k < m (107) SEL(k) = (μ(0) + (q+1)kr)%m、 pq ≦ k < m (108) SL(k) = (μ(0) + qkr)%m、 pq ≦ k < m (109) SWL(k) = (μ(0) + (q-1)kr)%m、 pq ≦ k < m (110) WL(k) = (μ(0) - kr)%m、 pq ≦ k < m (111) NWL(k) = (μ(0) - (q+1)kr)%m、 pq ≦ k < m (112) NL(k) = (μ(0) - qkr)%m、 pq ≦ k < m (113) NEL(k) = (μ(0) - (q-1)kr)%m、 pq ≦ k < m (114) ここで、μ(0)は(i、j)である。
【0114】前記の式(103)〜(114)にある(m-pq)個の番
号が(m-pq)個のデコーダーに与えられると、デコーダー
の該当の反転結果をOR演算したm個の結果はm個のメモリ
モジュールのアクセスを制御する。
【0115】特に、m=pq+1に対して、式(103)~(114)内
のkをpqで代置して得たアクセスされないメモリモジュ
ール番号の一つをデコーダーに提供し、m個の反転され
たデコーダーの結果はpq個のアクセスされるメモリモジ
ュールのアクセス信号とアクセスされないメモリモジュ
ールの非アクセス信号で使われる。
【0116】アドレス計算、ルーティング及びメモリモ
ジュールの例 図6はp=q=2、M×N=32×32及びm=5である時、メモリモジ
ュール割り当て関数によって割り当てされた各データの
メモリモジュール番号を示す。図7はp=q=2、M×N=32×3
2、及びs=16である時、アドレス割り当て関数によって
割り当てされた各データのアドレスを示す。図8はp=q=
2、M×N=32×32、s=16、及びm=5に対するアドレス計算
回路とアドレスルーティング回路を示す図である。ここ
で使われた12種のアクセス形態と間隔r=1、2、3、4のメ
モリモジュールAとBのアドレス間差は図9に示されてい
る。本発明でのアドレス計算及びアドレスルーティン
グ、及びメモリモジュール選択方法が下記の例でわか
る。
【0117】(例1)間隔1である位置(14、15)の南東側
ブロック(SEB)に対して、行優先順位に変更されたI(1
4、15)、I(14、16)、I(15、15)、I(15、16)のメモリモ
ジュール番号μ(k) =(3、4、0、1)を図7から求めること
ができ、アドレスα(k)=(119、120、119、120)を図7か
ら求めてメモリモジュール番号に従ってアドレスを整列
すると、α(μ)=(119、120、×、119、120)となる。こ
こでの×はアクセスされないメモリモジュール番号2を
意味する。本発明によるアドレス計算、アドレスルーテ
ィング及びメモリモジュール選択方法の過程は下記のよ
うである。
【0118】i%p = 0、j%q = 1、r = 1に対して次のよ
うにアドレス間差が求められる。
【0119】 ASEB(μ+μ(0))%m = (0、0、0、0、16)各加算器の入力B
+(0、1、0、1、0)各加算器の入力C = (0、1、0、1、16) (図9から) 求められたアドレス間差に基準アドレスを適用して下記
のことを得ることができる。
【0120】 α(k) =α(0) (=119)+ASEB(μ+μ(0)) = (119、120、119、120、135) このアドレスをμ(0)(=3)によって右側に回転すると次
のように求められる。
【0121】α(μ) = (119、120、135、119、120) 式(103)で求められた((i、j)+kr)%m = (3+4)%5 = 2番の
モジュールがアクセスされないモジュールなので、前記
と同じ結果である(119、120、×、119、120)が求められ
る。
【0122】他の例は表5a及び表5bに現われている。
【0123】
【表5a】
【0124】
【表5b】 テキストとイメージの速やかで正確な修正とディスプレ
ーに対する多い要請によって高速の高解像度グラフィッ
クディスプレー装置に対する需要が増加している。従来
のグラフィックディスプレー装置は修正とディスプレー
をするために、2次元映像アレイを含むバッファーメモ
リ装置を用いる。グラフィックディスプレー装置はメイ
ンコンピューターの命令に従ってバッファーメモリ装置
の映像点を新しく修正する。バッファーメモリ装置から
映像点を読んでレスタースキャニングの形態によりディ
スプレーに映像点を送る。高速の高解像度グラフィック
ディスプレー装置でバッファーメモリ装置内容の修正時
間を減少するための高速のバッファーメモリ装置が要求
される。一つの記憶チップに含まれるビット数がチップ
技術の発展によって増加している。だから、多くのアク
セス形態による多くの映像点の並列的なアクセスのため
に大容量の単一メモリモジュールに対して、アクセス時
間を減少することより、相対的に容量は少なくとして
も、一つの記憶チップに入れ込まれるメモリモジュール
数を増加することが高速のバッファーメモリ装置のため
に望ましい。それで、バッファーメモリ装置の内容を修
正する時間を減少するための映像アクセス形態による多
くの映像点を並列的にアクセスするバッファーメモリ装
置が必要となる。
【0125】以下、グラフィックディスプレー装置のバ
ッファーメモリ装置のために使われるブロック、水平、
垂直、対角線、逆対角線アクセス形態を持つメモリ装置
に対して、調べながら従来のメモリ装置と比べる。
【0126】ブロック、水平、垂直、対角線、逆対角線
アクセス形態のためのメモリ装置高速の高解像度グラフ
ィックディスプレー装置のための效率的なバッファーメ
モリ装置を調べる。このメモリ装置は二次元映像におい
てブロック(p×q)、水平(1×pq)、垂直(pq×1)、対角
線、逆対角線アクセス形態のpq個の映像点に対して並列
アクセスを提供する。
【0127】ここで、媒介変数pとqは全部2の乗数であ
る。
【0128】図10に示すグラフィックディスプレー装置
は一般的にメインコンピューター、ディスプレー処理
器、バッファーメモリ装置(100)、ビデオ生成器及びデ
ィスプレーで構成される。ディスプレー処理器はメイン
コンピューターの命令によってバッファーメモリ装置内
の映像点を新しく修正する。
【0129】ビデオ生成器はバッファーメモリ装置から
映像点を読み出してレスタースキャニング形態にディス
プレーに送る。M×N大きさの映像データで映像点に対す
るアクセス時間を減少するため、グラフィックディスプ
レー装置内のM×N映像内でpq個の映像点を並列にアクセ
スするためのバッファーメモリ装置が必要となる。表6
は従来のグラフィックディスプレーにおける表示領域の
多様な大きさを示す。バッファーメモリ装置の大きさは
少なくとも特定なディスプレー装置における表示領域の
大きさと同じでなければならない。
【0130】
【表6】 例えば、960(ライン数)×1280(ライン当たりの映像点
数)のディスプレーに対して、M×Nの最小値はそれぞれ9
60と1280である。それで、多くのグラフィック装置のN
値は2の乗数ではない値を用いる。
【0131】バッファーメモリ装置(100)は、水平線
型、垂直線型、または一文字に対する書き時間を減少す
るために、水平、垂直、またはブロック形態の映像点を
並列にアクセスしなければならない。追加的に対角線や
逆対角線の映像点に対する並列的なアクセスは45°ずつ
整数倍の線型形態の映像データに書き時間を減少させる
とか、45°ずつ整数倍で回転させるために必要となる。
だから、バッファーメモリ装置(100)における修正速度
の向上のために、バッファーメモリ装置(100)はM×N映
像i(*、*)内の基準座標(i、j)で、ブロック(BL)、水
平(HR)、垂直(VR)、対角線(FD)、または逆対角線(BD)ア
クセス形態に対しての次のようなpq個の映像点に対する
並列的なアクセスを提供しなければならない。
【0132】 BL(i、j) = {I(i+a、j+b) | 0 ≦ a < p、0 ≦ b < q}、0 ≦ i ≦ M-p、0 ≦ j ≦ N-q (115) HR(i、j) = {I(i、j+a) | 0 ≦ a < pq}、0 ≦ i ≦ M-1、0 ≦ j ≦ N-pq (116) VR(i、j) = {I(i+a、j) | 0 ≦ a < pq}、0 ≦ i ≦ M-pq、0 ≦ j ≦ N-1 (117) FD(i、j) = {I(i+a、j+a) | 0 ≦ a < pq}、0 ≦ i ≦ M-pq、0 ≦ j ≦ N-pq (118) BD(i、j) = {I(i+a、j-a) | 0 ≦ a < pq}、0 ≦ i ≦ M-pq、pq - 1 ≦ j ≦ N-1 (119) 図11は基準座標(i、j)を持つ前記のアクセス形態を示
す。ここで基準座標は基準映像点I(i、j)の座標を意味
する。映像点を修正しようとする時、図11にあるバッフ
ァーメモリ装置の構成要素はディスプレー処理器の要請
によって制御回路の制御により次の演算を順次的に行
う。
【0133】1. レジスターt、i、jはディスプレー
処理器によるデータのアクセス形態(ブロックは1、水平
は2、垂直は3、対角線は4、逆対角線は5である)の選択t
とアクセス形態(1)~(5)によって要求された基準座標
(i、j)が入れ込まれ、データ自体は行優先順位のデータ
レジスターに位置する。
【0134】2. アドレス計算とルーティング回路(A
CRC)はm個の映像点のアドレスを計算し、その値をm個の
メモリモジュールにルーティングさせる。
【0135】3. メモリモジュール選択回路はアクセ
スされるpq個のメモリモジュールを選択する。
【0136】4. データルーティング回路はデータレ
ジスターにあるpq個の映像点をm個のメモリモジュール
にルーティングさせる。
【0137】5. 書き信号はpq個の選択されたメモリ
モジュールに映像点を貯蔵する。
【0138】ここで、演算2、3、4が並列的に行われ
る。
【0139】同様にバッファーメモリ装置から映像点を
読み取る時、バッファーメモリ装置の構成要素は次のよ
うな演算を順次的に行う。
【0140】1. t、i、jレジスターに要請された値
を入れ込む。
【0141】2. アドレス計算とルーティング回路(A
CRC)がm個の映像点アドレスを計算し、その値はm個のメ
モリモジュールにルーティングさせる。
【0142】3. メモリモジュール選択回路はアクセ
スされるpq個のメモリモジュールを選択する。
【0143】4. 読み信号によってpq個の選択された
メモリモジュールから映像点を読み取る。
【0144】5. データルーティング回路はm個のメ
モリモジュールからpq個の映像点をデータレジスターに
ルーティングし、アクセス形態(1)~(5)の選択によって
行優先順位となっているpq個の映像点を整列する。
【0145】ここで演算2と3が並列に行われる。
【0146】図12は本発明によるアドレス計算とルーテ
ィング回路を示す。
【0147】アドレス計算とルーティング回路はアドレ
ス間差のために2個のSRAM、4個の5×1MUX、(m+3)個の加
算器、(i/p)値のためのSRAM、及びバレルシフターで構
成されている。
【0148】ブロック、水平、対角線、逆対角線アクセ
ス形態におけるアドレス間差の1番目間隔はμ(0≦μ<
m)のi%p値によってp個の差の値で示される。水平アクセ
ス形態におけるアドレス間差の1番目間隔はμ(0 ≦μ<
m)のi%p値による変化はない。ブロック、水平、対角
線、逆対角線アクセス形態におけるアドレス間差の2番
目間隔はμ(0≦μ< m)のj%p値によってq個の差が二進数
の値で示される。
【0149】垂直アクセス形態におけるアドレス間差の
2番目間隔はμ(0≦μ< m)のj%q値による変化はない。だ
から、アドレス間差のために1番目SRAMはアクセス形態
とi%p値によってアクセスされてm個の加算器にB入力で
提供される。そして、アドレス間差のために2番目SRAM
はアクセス形態とj%q値によってアクセスされてm個の加
算器にC入力で提供される。ここでアドレス間差のため
に1番目と2番目SRAMの大きさはそれぞれ(4p+1)×m×log
2(MN / pq)ビットと(4q+1)×mビットである。
【0150】図12におけるアドレス間差のための1番目S
RAMの選択されたアドレスは、ブロックアクセス形態の0
番目p×m個のアドレス間差のためのt・p+i%p、水平アク
セス形態の1番目1×m個のアドレス間差のためのt・p、そ
して垂直、対角線、逆対角線アクセス形態の2番目、3番
目、4番目p×m個のアドレス間差のための((p-1)の2の補
数)+ t・p+i%p)即ち(t・p+i%p-( p-1 )である。
【0151】アドレス間差のために2番目SRAMの選択さ
れたアドレスは、ブロックと水平アクセス形態の0番目
と1番目q×m個のアドレス間差のための(t・q+j%q)、垂直
アクセス形態の2番目である1×m個のアドレス間差のた
めの(t・p)、そして対角線と逆対角線アクセス形態の3番
目と4番目アドレス間差のための(t・q+j%q+((q-1)の2の
補修))即ち(t・q+j%q - (q-1))である。
【0152】(t・p+i%p)と(t・q+j%q)の値はpとqが全部2
の乗数である時、掛け算や足し算なしに、それぞれ (t・
p)、(i%p)、(t・q)、(j%q)の連結によって簡単に求める
ことができる。
【0153】基準アドレスα(i、j)の計算に必要な一度
の掛け算(i/p)s値のためにSRAMアクセスで代理する。も
し基本アドレス計算での一度の掛け算を除くためにNが2
の乗数ではないのに、sを2の乗数になるよう選択した
ら、M×N=960×1280の映像でアクセスされる部分の60%
であるq (s -(N/qで整数部分と同じ或いはより大きな整
数)) Mが使われないメモリ装置領域で追加された容量で
ある。
【0154】本発明によるアドレス計算とルーティング
回路ではsが2の乗数ではない時、SRAMのアクセスで得ら
れた(i/p)s値に基準アドレスのためにj/q値を加える。s
が2の乗数である時は(i/p)sの値にi値の最下位ビットに
log2(s/p)ぐらいの0を追加して求める。i/pとj/q値の合
計はm個の加算器にA入力で提供される。
【0155】以下、アドレス計算及びアドレスルーティ
ングに対して本発明によるハードウェアルゴリズムをハ
ードウェア価格、制御の複雑性、速度などの事項を従来
のメモリ装置(D. C. Van Voorhis and T. H. Morri
n、IEEE Trans. Comput.、vol.C-27、 pp.113-125、 Fe
b. 1978.、 J. W. Park、IEEE Trans. Comput.、vol.C-
35、 pp.669-674、 July 1986.、D. H. Lawrie and C.
R. Vora、 IEEE Trans. Comput .、 vol. C-31、 pp.4
35-442、 May 1982.、J. W. Park and D. T. Harper II
I、IEEE Symp. Parallel and Distributed Processing
、 pp.444-451、 Dec. 1992.、J. W. Park and D. T.
Harper III、IEEE Trans. Parallel Distrib. Syst.、v
ol. 7、No. 8、pp.855-860、Aug. 1996.)と比べる。
【0156】この比べではデータ内における任意の位置
にある少なくとも3種のアクセス形態データの並列アク
セスが支援され、アドレス計算及びアドレスルーティン
グ回路のハードウェア具現が考察される。バンブーリス
とモリン(D. C. Van Voorhisand T. H. Morrin、IEEE T
rans. Comput .、 vol. C-27、 pp.113-125、 Feb.197
8.)、ローリとボラ(D. H. Lawrie and C. R. Vora、 IE
EE Trans. Comput .、vol. C-31、pp.435-442、May 198
2.)が提案したメモリ装置では各メモリモジュールμ(0
≦ μ< m)のアドレスα(μ)を直接計算する。アドレス
計算とルーティング回路(D. C. Van Voorhis and T. H.
Morrin、 IEEE Trans. Comput .、 vol. C-27、 pp.11
3-125、 Feb. 1978.、 D. H. Lawrie and C. R. Vora、
IEEETrans. Comput .、 vol. C-31、 pp.435-442、 Ma
y 1982.)ではアドレス計算がアドレスルーティングでの
回転と分離されないので制御が複雑で費用が上昇する。
アドレス計算とルーティング回路(D. H. Lawrie and
C. R. Vora、IEEE Trans. Comput .、vol. C-31、pp.43
5-442、May 1982.)は各メモリモジュールkに対してブロ
ック、水平、垂直アクセス形態それぞれのα(μ)である
(i+((k-(i、j))%m)/q、j+((k-(i、j))/m)%q)、(i、j+(k
-(i、j))/m)、(i+(p((i、j)-k))%m、j)を計算する。
【0157】だから表7に示すように1番目行に現われた
ハードウェアの構成要素と演算遅延時間がメモリ装置
(D. C. Van Voorhis and T. H. Morrin、 IEEE Trans.
Comput.、vol. C-27、 pp.113-125、 Feb. 1978.)でm個
のメモリモジュールに対して、α(μ)が可能だったら速
やかに計算されるのに必要となる。
【0158】
【表7】 このメモリ装置(D. H. Lawrie and C. R. Vora、IEEE T
rans. Comput .、vol.C-31、 pp.435-442、 May 1982.)
でのBSDに対して、α(μ)の計算とルーティングのた
め、メモリモジュールが17個、プロセッサが16個である
時、表7の2番目行にあるハードウェアの構成要素と演算
遅延時間が必要となる。パク(J. W. Park、 IEEE Tran
s. Comput .、 vol. C-35、 pp.669-674、 July 198
6)、 パクとハーパ(J. W. Park and D. T. Harper II
I、 IEEE Symp. Parallel and Distributed Processing
、 pp.444-451、 Dec. 1992.、J. W. Park and D. T.
Harper III、IEEE Trans. Parallel Distrib. Syst..、
vol. 7、No. 8、pp.855-860、Aug.1996.)によって提案
されたメモリ装置でのアドレス計算はアドレスルーティ
ングと分離される。パクのメモリ装置(J. W. Park、 IE
EE Trans. Comput .、 vol. C-35、 pp.669-674、 July
1986.)のアドレス計算回路(ACC)は、加算器アレイで一
度の足し算時間を要求するa(i、j)、(0、s、またはk、k
=0、...、(p-1))、及び(0、1)の足し算によってブロッ
クアクセス形態と水平アクセス形態のpq個のアドレスを
計算し、2度の足し算時間を要求するα(i、j)、(0また
はs)、及び (ks、k=0、...(q-1))の足し算によって垂直
アクセス形態のpq個のアドレスを計算する。
【0159】アドレスルーティング回路(ARC)は、まず
二度のルーティングによって垂直アクセス形態の(iq+j-
1)%(pq+1)や垂直アクセス形態の(iq+j-q)%(pq+1)の数に
よって整列されたアドレスを右側に回転する。
【0160】このメモリ装置(J. W. Park、IEEE Trans.
Comput .、vol. C-35、pp.669-674、July 1986)ではm
個メモリモジュールのためのα(μ)を計算するために表
7の3番目行のハードウェア構成要素と演算遅延時間が必
要となる。
【0161】他のメモリ装置(J. W. Park and D. T. Ha
rper III、IEEE Symp. Parallel and Distributed Proc
essing 、 pp.444-451、 Dec. 1992.、 J. W. Park and
D.T. Harper III、 IEEE Trans. Parallel Distrib. S
yst ..、 vol. 7、 No. 8、pp.855-860、 Aug. 1996.)
のアドレス計算回路(ACC)は1番目SRAMのアドレス間差と
2番目SRAMのアドレス間差である(i、j)の足し算で一度
の足し算時間内にブロック、水平、または垂直アクセス
形態のpq個アドレスが計算される。pq個の加算器に入力
される入力Bに対するアドレス間差の大きさは3種のアク
セス形態の全部がp×pqである。
【0162】M個の加算器の入力Cに対するアドレス計算
回路(ACC)のアドレス間差の大きさは、ブロックアクセ
ス形態のアドレス間で差がi%pだけでなく、j%qに従属す
るからブロックアクセス形態に対してはq×qである。そ
れで、アドレス計算回路の1番目SRAMと2番目SRAMの大き
さは5種のアクセス形態(115)~(119)に対して5p×pqと3q
×qぐらいになる。アドレスルーティング回路は、まず
メモリモジュール番号によってブロック、水平、または
垂直アクセス形態のpq個のアドレスを整列した後、ブロ
ック、水平、または垂直アクセス形態に対して(iq+j)%
(pq+1)ぐらい右側に回転する。だから、このメモリ装置
でα(μ)を計算するため、表7の4番目行のハードウェア
構成要素と演算遅延時間が必要となる。アドレス計算と
ルーティング回路の短所はアクセス形態に従うアドレス
の計算の後、メモリモジュール番号に従って複雑に整列
しなければならないことである。それはアドレス計算回
路で出力されたアドレスがメモリモジュール番号に従っ
て整列されていないからである。それに比べて本発明で
提案されたメモリ装置ではα(μ)を計算するにおいて、
表7の5番目行のハードウェア構成要素と演算遅延時間が
必要となる。その時、出力アドレスはμ(i、j)からメモ
リモジュール番号によって整列されている。前記の回路
(J. W. Park and D. T. Harper III、 IEEE Symp.、Par
allel andDistributed Processing、 pp.444-451、 De
c. 1992.、 J. W. Park and D. T.Harper III、 IEEE T
rans. Parallel Distrib. Syst.、 vol. 7、 No. 8、 p
p.855-860、 Aug. 1996.)と比べると、本発明によるア
ドレス計算及びデータルーティング回路の重要な利点は
速度側面で掛け算器の代わりにSRAMに代置したことと、
マルチプレクサーを除いて制御の簡便化とゲートの数を
減少させ、アドレス間差の大きさを(4p+q)×pq×log2(M
N / pq) j+3q×qのビットから(4p+1)×m×log2(MN / p
q)+(4q+1)×mに減少させたことである。
【0163】一般的な字の大きさが8×8と同じとか大き
いとする時、グラフィックディスプレーの良い性能のた
めには少なくともp=8、q=8でなければならない。また、
pqの値はMとN間にある最小値の同じとか小さくなければ
ならない。
【0164】アドレス計算とルーティング回路のハード
ウェア構成要素と演算遅延時間をM×N×b = 960×1280
×24である時、p = q = 8、m = 7である場合とp = q =
16、m = 257である場合に対して表8で比べる。
【0165】
【表8】 前記のメモリ装置(J. W. Park and D. T. Harper III、
IEEE Symp. Paralleland Distributed Processing 、
pp.444-451、 Dec. 1992.、 J. W. Park andD. T. Harp
er III、 IEEE Trans. Parallel Distrib. Syst.、 vo
l. 7、 No. 8、 pp.855-860、 Aug. 1996.)の掛け算器
回路の演算速度を向上のための本発明によるメモリ装置
ではSRAMで代置した。1ビット5×1マルチプレクサー一
つのゲート数が12であり、全体加算器一つのゲート数が
7だと仮定すると、m×log2(MN/ pq)ビットの5×1マルチ
プレクサーのゲート数が12であり、一つの全体加算器の
ゲート数は全体加算器、即ち、1og2(4p+1)ビットの加算
器一個+1og2(4q+1)ビットの加算器一個+1og2(MN / pq)
ビットの加算器(pq+1)個のゲート数よりずっと多い。
【0166】そのような構成要素を持つ従来のメモリ装
置と比べて、本発明によるアドレス計算とルーティング
回路はアドレス計算の後にメモリモジュール番号に従っ
てアドレスを整列するための5×1マルチプレクサーが必
要とならないので制御が簡単で費用が少なくなる。ま
た、(pq + 1)個の加算器には5×1マルチプレクサーの間
に5m×log2(MN / pq)個の線が連結されているのに、p =
q = 8である時及びp =q = 16である時、全体的な線の
数がそれぞれ5,025個と16,705個なので、(pq+1)個の加
算器から5×1マルチプレクサーまでのルーティング回路
の具現と制御は非常に複雑である。従来のアドレス計算
とルーティング回路にはマルチプレクサーとアドレス間
差のためのSRAMにおける加算器の間に2pq×log2(MN / p
q)+pq個の線があり、m個のマルチプレッサーとm個のバ
レルシフターとの間にある。また、従来のアドレス計算
とルーティング回路においてm個のバレルシフターで、m
個のメモリモジュールの間の線数はm×log2(MN/pq)であ
る。しかし、本発明によるアドレス計算とルーティング
回路での全体線の数は4m×log2(MN/pq)で従来の半分よ
り少ない。
【0167】表9はアドレス計算とルーティング回路の
ゲート数を三星電子のASICであるKG76(0.6mゲートアレ
イライブラリ)のゲート数により比べた例である。
【0168】
【表9】 演算遅延時間がM×N×b = 960×1280×24であり、pq >
Mである時、媒介変数pとq値双方が32ではない8と32間の
2の乗数である値を持つように設計した表10の演算遅延
時間の仮定下で比べた。
【0169】
【表10】 ゲート数の割合と演算遅延時間の割合は従来のアドレス
計算とルーティング回路のゲート数と演算遅延時間に対
する本発明によるアドレス計算とルーティング回路それ
ぞれの割合である。平均ゲート数の割合と平均演算遅延
時間の割合はそれぞれ1,198と1,295である。 ゲート数
の割合と演算遅延時間の割合を掛けた平均値は1,549で
ある。本発明によるアドレス計算とルーティング回路に
対して標準化されたゲート数はp=q=8に対してゲート数
で分けられ、また、pq/64によって分けられたゲート数
である。そして、演算遅延時間はp = q = 8である時の
演算遅延時間でそれぞれ分けたことである。標準化され
た結果は標準化されたゲート数と演算遅延時間を掛ける
ことで求めることができる。標準化された結果に従って
本発明によるアドレス計算とルーティング回路のための
1番良いpとq値はそれぞれ8と8である。その値が標準化
された結果がM×N×b = 960×1280×24で一番小さい値
であるためである。標準化された結果は要求されたアド
レス計算とルーティング回路に対して一番良いpとq値を
選択するのに使うことができる。表11は要求された|(p
1、q1)|と1番良い|(p2、q2)|を選択して使った構成を示
す。この時、|(p1、q1)|は製作パラメーターがp1とq1で
あるバッファーメモリ装置を示す。
【0170】
【表11】 ここで、|(p1、q1)|と|(p2、q2)|はバッファーメモリ装
置のpとq値をp1とq1、p2とq2で示す。
【0171】例えば、 |(32、8)|のアドレス計算とルー
ティング回路が要求されると、4個の|(8、8)|のアドレ
ス計算とルーティング回路が要求されたアドレス計算と
ルーティング回路で組み合わせて使うことができる。も
し|(8、16)|、|(16、8)|、|(16、16)|、|(8、32)|、|(3
2、8)|、|(16、32)|、|(32、16)|のアドレス計算とルー
ティング回路を|(8、8)|のアドレス計算とルーティング
回路を用いて構成すると、1.353の平均演算遅延時間の
割合内の結果で演算遅延時間の割合が1.353に増加され
る。
【0172】データルーティング回路は一度のモジュロ
計算と一度の回転演算を行って、メモリモジュール選択
回路は一度のモジュロ計算と一度のデコーディング演算
を行うため、データルーティング回路やメモリモジュー
ル選択回路の演算遅延時間は本発明によるアドレス計算
とルーティング回路の演算遅延時間より短い。だから、
もしm個のメモリモジュールアクセス時間が本発明によ
るアドレス計算とルーティング回路の演算遅延時間より
小さく、アドレス計算とルーティング回路のm個のメモ
リモジュールの間にm個のメモリ装置アドレスレジスタ
ーがあり、データルーティング回路とm個のメモリモジ
ュールの間にm個のメモリ装置バッファーレジスターが
あるとしたら、本発明によるバッファーメモリ装置はア
ドレス計算とルーティング回路の演算遅延時間の割合単
位のパイプライン方式で行うことができる。
【0173】また、ディスプレー処理器が本発明による
アドレス計算とルーティング回路の演算遅延時間内のバ
ッファーメモリ装置からpq個の映像点に対して要素演算
を行うと、本発明によるフレームバッファーディスプレ
ー装置の全体的な性能は従来のアドレス計算とルーティ
ング回路を使ったフレームバッファーディスプレー装置
より平均1.353倍増加することができる。だから、本発
明によるアドレス計算とルーティング回路は従来のメモ
リ装置より費用を少なくし、制御の複雑性を減少し、速
やかにする。
【0174】以下、少なくともデータアレイ内の任意の
位置にある3種のアクセス類型のデータに対して同時ア
クセスが支援され、アドレス計算回路とアドレスルーテ
ィング回路、データルーティング回路のハードウェア具
現が考慮されている従来のメモリ装置方式と本発明によ
るアドレス計算及びアドレスルーティング、データルー
ティング方式をアクセス類型、間隔、データアレイの大
きさの制限とハードウェアの費用、速度、複雑性に対し
て比べた。
【0175】間隔1を持つブロック、列、行、対角線、
逆対角線アクセス形態のための本発明によるアドレス計
算とルーティング回路は、従来のメモリ装置に比べてよ
り低費用、更に単純化された制御複雑度、及びそして速
やかな速度を持つことができる。
【0176】pq≦ mdでありmが素数である時に従来のメ
モリ装置(A. Deb、 IEEE Trans. Parallel Distrib. Sy
st.、 Vol. 7、No. 6. pp. 595-604、Jun. 1996.)はm個
のメモリモジュールとpq個のプロセッシングエレメント
で構成されている。ローリとボラ(D. H. Lawrie and C.
R. Vora、IEEE Trans. Comput .、vol. C-31、 pp.435
-442、 May 1982.)は線型pqベクトルV(a、b、c、d)で下
記の線型数式によって形成されたアレイ要素のpq要素集
合を定義した。
【0177】V(a、b、c、e) = {A(i、 j): i = ax+b、
j = cx+e}、 0 ≦ x < pq ≦ m ローリとボラ( D. H. Lawrie and C. R. Vora、 IEEE T
rans. Comput .、 vol. C-31、 pp.435-442、 May 198
2.)はα(μ)、即ち番目モジュールのアドレスを求め
た。
【0178】α(μ) = ((a+cM) ((-(b+eM+base))d' %m)
+b+eM+base) / pq 、 ここで、(a+cM)・d' = 1%mであり、"base "はデータアレ
イの基準アドレス(i、j)であり、Mはアレイの行の数で
ある。
【0179】(a+cM)・d' =1%mからd'はmの倍数である間
隔M、M+1、M-1のどんな場合でも求めることができな
い。なぜなら、aとcの値が下記のように各アクセス形態
に正義されているからである。
【0180】行: a = 0でc =陽数間隔 列: c = 0でa =陽数間隔 対角線: a = c =陽数間隔 そして、 逆対角線: a =-c =陽数間隔 だから、このメモリ装置( D. H. Lawrie and C. R. Vor
a、 IEEE Trans. Comput .、 vol. C-31、 pp.435-44
2、 May 1982.)は間隔とデータアレイの大きさとメモリ
モジュール数に制約がある。
【0181】一方、従来のメモリ装置と異なって、発明
によるメモリ装置はデータアレイの大きさに対する制約
がない。 ただ、本発明によるメモリ装置の制約は理論
1から間隔がメモリモジュール個数の倍数ではなくにし
なければならないということである。従来のメモリ装置
(J. W. Park、 IEEE Trans. Comput.、 vol. C-35、pp.
669-674、July 1986.、 J. W. Park and D. T. Harper
III、IEEE Symp.Parallel and Distributed Processin
g、pp.444-451、 Dec. 1992.、 J. W. Park and D. T.
Harper III、 IEEE Trans. Parallel Distrib. Syst
..、 vol. 7、 No. 8、 pp.855-860、 Aug. 1996.)に
あったμ(i、j)による右側回転の前に、アドレスを整列
するための一つのマルチプレクサーとマルチプレクシン
グ演算時間が本発明によるアドレス計算回路とアドレス
ルーティング回路ではアドレス間差が予め整列されてい
るから必要ではない。もしマルチプレクサーが12種のア
クセス形態に対してアドレス計算及びアドレスルーティ
ング方法(J. W. Park、IEEE Trans. Comput .、 vol. C
-35、 pp.669-674、 July 1986.、 J. W. Parkand D.
T. Harper III、 IEEE Symp. Parallel and Distribute
d Processing 、pp.444-451、Dec. 1992.、 J. W. Park
and D. T. Harper III、 IEEE Trans.Parallel Distri
b. Syst.、vol. 7、No. 8、pp.855-860、 Aug. 1996.)
に使われと制御が非常に複雑になるはずである。それは
アクセス形態と間隔がアドレスの整列に従属するからで
ある。メモリ装置(D. C. Van Voorhis and T. H. Morri
n、 IEEE Trans. Comput.、 vol. C-27、 pp.113-125、
Feb. 1978.)でのデータルーティング回路はμ(i、j)に
よって制御される多様な右側回転変換器が必要となる。
パク(J. W. Park、 IEEE Trans. Comput .、 vol. C-3
5、 pp.669-674、July 1986)、 パクとハーパ(J. W. Pa
rk and D. T. Harper III、 IEEE Symp. Parallel and
Distributed Processing、 pp.444-451、 Dec. 1992.、
J. W. Park and D. T. Harper III、 IEEE Trans. Par
allel Distrib. Syst.、vol. 7、No. 8、pp.855-860、A
ug. 1996.)によって本発明によるメモリ装置のデータル
ーティングはマルチプレクサーとバレルシフターによっ
て行われる。このメモリ装置では従来メモリ装置のデー
タルーティング回路内の多様な右側回転変換器を複雑で
高くて遅いクロースバーネットワークで代置する。本発
明ではマルチプレクシングと回転を使うデータルーティ
ング方法が提案された。
【0182】ここで、12種のアクセス形態に対して陽の
間隔を持つ12種のデータルーティング形態がROMとlog
2(2(m-1))×2(m-1)デコーダー、3相バッファーを用いた
セレクター、そしてバレルシフターによって具現された
間隔r1(=r%m)である2個のルーティング形態に減少され
る。また、表11によって、本発明によるアドレス計算、
アドレスルーティング、及びデータルーティング回路は
更に多いアクセス類型と間隔を支援する。
【0183】よって、アドレス計算、アドレスルーティ
ング及びデータルーティングにおいて、本発明による方
法はアクセス形態、間隔及びデータアレイの大きさに対
する制約とハードウェアの費用、速度及び複雑性の側面
で従来のメモリ装置の方法より良いということが分か
る。
【0184】
【発明の効果】以上で説明したように本発明による衝突
のフリのメモリ装置は従来メモリ装置より改善があっ
た。一つのデータアレイ内に任意の位置にある少なくと
も3種のアクセス形態のデータ要素に対する同時アクセ
スが支援される。更に、アクセス形態、間隔およびデー
タアレイ大きさの制約とハードウェア費用、速度、複雑
性の制限内でメモリ装置内のアドレス計算及びアドレス
ルーティング回路、及びデータルーティング回路のハー
ドウェア具現が考慮された。
【0185】多様な行列演算と映像処理演算はpq個のプ
ロセッシングエレメントを持つSIMD処理器とm(mは素
数、m>pq)個のメモリモジュールを持つメモリ装置によ
って速度を向上することができる。
【0186】SIMD処理器は間隔、データアレイの大き
さ、データ要素の位置に制約がないデータアレイ内の陽
数間隔を持つ多様な形態の四角形ブロックと8方向線型
アクセス形態のpq個のデータ要素がアクセスされるメモ
リ装置が必要となる。
【0187】本発明による素数個のメモリモジュールを
持つ衝突防止メモリ装置は4方向四角形ブロック陽数の
間隔に連関されたデータ要素がデータアレイ内のどの位
置に置かれるが(南東側ブロック、南西側ブロック、北
西側ブロック、北東側ブロック)、または8方向の線型
(東側線型、南東側線型、南側線型、南西側線型、西側
線型、北西側線型、北線型、北東側線型)アクセス形態
のpq個データ要素に同時アクセスを支援することができ
る。
【図面の簡単な説明】
【図1】 メインコンピューターと取り付けられた多重
SIMDコンピューターの関係を示す例示図である。
【図2a】 方向ブロックのアクセス形態、間隔及び基
準座標の例示図である。
【図2b】 8方向線型のアクセス形態、間隔及び基準
座標の例示図である。
【図3】 衝突防止メモリ装置の一般的な設計の例示図
である。
【図4】 データルーティング回路の詳細な回路図であ
る。
【図5a】 8×8逆オメガネットワークのスイッチング
要素の経路衝突の例示図である。
【図5b】 N = 16セータネットワークのスイッチング
要素の経路衝突の例示図である。
【図6】 μ(i、j)=(iq+j)%m、p=q=2とM×N = 32×3
2、m=5に対するメモリモジュール割り当て関数によって
割り当てられたメモリモジュール番号の例示図である。
【図7】 p=q=2、M×N = 32×32及びs=16に対するアド
レス割り当て関数α(i、j)=(i/p)s+j/qによって割り当
てられたアドレスである。
【図8】 p=q=2、M×N = 32×32、s=16及びm=5に対す
るアドレス計算とルーティング回路の例示図である。
【図9】 p=q=2、M×N = 32×32及びs=16に対するメモ
リモジュールAとBの例示図である。
【図10】 本発明によるメモリ装置を適用したグラフ
ィックディスプレー装置の構成を概略的に示すブロック
図である。
【図11】 アクセス形態と基準座標の例示図である。
【図12】 本発明によるアドレス計算とルーティング
回路(ACRC)の詳細な回路図である。
【符号の説明】
100 バッファーメモリ装置

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 m(m>pq)個のメモリモジュールと、デー
    タに対するm個のアドレスを計算しその値を前記m個のメ
    モリモジュールにルーティング(routing)するアドレス
    計算及びアドレスルーティング回路と、アクセスされる
    pq個のメモリモジュールを選択するメモリモジュール選
    択回路と、指定されたアクセス類型、基準座標及びアク
    セス類型で要求される間隔情報を貯蔵するデータレジス
    ターと、前記データレジスター内のデータを前記m個の
    メモリモジュールにルーティングするデータルーティン
    グ回路を含んでなり、pq個のプロセッシングエレメント
    を持つ単一命令多重データ(SIMD)処理装置おけるメモリ
    装置アクセス時間を減少させるための衝突防止メモリ装
    置において、 4方向四角形ブロック陽数の間隔で連関されたデータ要
    素がデータアレイ内のどの位置(南東側ブロック、南西
    側ブロック、北西側ブロック、北東側ブロック)に置か
    れていっても、または8方向の線型(東側線型、南東側線
    型、南側線型、南西側線型、西側線型、北西側線型、北
    線型、北東側線型)に置かれていってもアクセス形態のp
    q個データ要素に同時アクセスを支援することを特徴と
    する衝突防止メモリ装置。
  2. 【請求項2】 前記アドレス計算及びアドレスルーティ
    ング回路は、 基準座標、アクセス形態及び間隔情報が提供される4個
    の5×1マルチプレクサーと、 アドレス間差を予め整列して貯蔵するための第1及び第2
    SRAMと、 (i/p)s値のための第3 SRAMと、 前記マルチプレクサー出力値を前記第1及び第2 SRAMに
    伝逹する二つの加算器と前記第3 SRAMの出力値が伝逹さ
    れ加えられる加算器とm個の加算器とからなるm+3個の加
    算器と、 前記m個の加算器の出力をデータルーティング回路の回
    転信号に応じてm個のメモリモジュールに伝逹するバレ
    ル(barrel)シフターからなることを特徴とする第1項に
    記載の衝突防止メモリ装置。
  3. 【請求項3】 p×m個のアドレス間差とq×m個のアドレ
    ス間差を、それぞれのアクセス形態とそれぞれの間隔に
    対して整列する過程と、 整列されたp×m個のアドレス間差とq×m個のアドレス間
    差を、それぞれのアクセス形態とそれぞれの間隔に対し
    てメモリモジュールAとBに貯蔵する過程と、 要求されたアクセス形態、i%p、j%q間隔によってメモリ
    モジュールAとBでm個のアドレス間差を読み込む過程
    と、 読み込むm個のアドレス間差を基準アドレスα(i、j)に
    加える過程と、 m個のアドレスを12種のアクセス形態と間隔全体に対し
    てμ(0)により回転させる過程と、 回転され計算されたm個のアドレス値をm個のメモリモジ
    ュールにルーティングする過程からなることを特徴とす
    る衝突防止メモリ装置を用いたアドレス計算とデータル
    ーティング方法。
JP2001262291A 2001-08-10 2001-08-30 衝突防止メモリ装置及びそれを用いたアドレス計算とデータルーティング方法 Expired - Fee Related JP3802783B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2001-0048343A KR100401946B1 (ko) 2001-08-10 2001-08-10 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
KR48343/2001 2001-08-10

Publications (2)

Publication Number Publication Date
JP2003067361A true JP2003067361A (ja) 2003-03-07
JP3802783B2 JP3802783B2 (ja) 2006-07-26

Family

ID=19713092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001262291A Expired - Fee Related JP3802783B2 (ja) 2001-08-10 2001-08-30 衝突防止メモリ装置及びそれを用いたアドレス計算とデータルーティング方法

Country Status (4)

Country Link
US (1) US6845423B2 (ja)
JP (1) JP3802783B2 (ja)
KR (1) KR100401946B1 (ja)
CN (1) CN1306416C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424230B2 (en) 2007-04-12 2016-08-23 Nec Corporation Converting a data placement between memory banks and an array processing section

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415161B2 (en) * 2004-03-25 2008-08-19 Faraday Technology Corp. Method and related processing circuits for reducing memory accessing while performing de/compressing of multimedia files
JP3985797B2 (ja) * 2004-04-16 2007-10-03 ソニー株式会社 プロセッサ
GB0420004D0 (en) * 2004-09-09 2004-10-13 Koninkl Philips Electronics Nv Interconnections in SIMD processor architectures
TWI298448B (en) * 2005-05-05 2008-07-01 Ind Tech Res Inst Memory-based fast fourier transformer (fft)
US20070208794A1 (en) * 2005-12-13 2007-09-06 Prashant Jain Conflict-free memory for fast walsh and inverse fast walsh transforms
US7650483B2 (en) * 2006-11-03 2010-01-19 Arm Limited Execution of instructions within a data processing apparatus having a plurality of processing units
KR100874949B1 (ko) 2006-11-15 2008-12-19 삼성전자주식회사 단일 명령 다중 자료 프로세서 및 그것을 위한 메모리어레이 구조
KR100922732B1 (ko) * 2007-12-10 2009-10-22 한국전자통신연구원 메모리 액세스 충돌 감소 장치 및 방법
US9939413B2 (en) 2008-01-09 2018-04-10 Surf Technology As Measurement and imaging of scatterers with memory of scatterer parameters using at least two-frequency elastic wave pulse complexes
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
CN110347638A (zh) * 2018-04-08 2019-10-18 北京嘉楠捷思信息技术有限公司 Asic阵列、数据处理板以及区块挖掘方法和设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4355376A (en) * 1980-09-30 1982-10-19 Burroughs Corporation Apparatus and method for utilizing partially defective memory devices
KR900000114B1 (ko) * 1986-12-29 1990-01-20 박종원 영상처리용 메모리시스템
JPH05290188A (ja) * 1992-04-15 1993-11-05 Fujitsu Ltd 超並列計算機
KR0121295B1 (ko) * 1993-09-18 1997-11-17 박종원 영상 분석처리의 간격허용 다중접근 기억장치
KR0119725B1 (ko) * 1994-04-14 1997-10-29 조백제 선형변환 방법을 이용한 영상처리용 병렬기억장치
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
KR20020009247A (ko) * 2000-07-25 2002-02-01 서평원 다중프로세스 시스템에서 비수행 프로세스의 데이터에접근하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424230B2 (en) 2007-04-12 2016-08-23 Nec Corporation Converting a data placement between memory banks and an array processing section

Also Published As

Publication number Publication date
CN1402136A (zh) 2003-03-12
US20030126351A1 (en) 2003-07-03
JP3802783B2 (ja) 2006-07-26
KR20030014023A (ko) 2003-02-15
US6845423B2 (en) 2005-01-18
CN1306416C (zh) 2007-03-21
KR100401946B1 (ko) 2003-10-17

Similar Documents

Publication Publication Date Title
JP7271667B2 (ja) 行列の空間局所性変換
US11775313B2 (en) Hardware accelerator for convolutional neural networks and method of operation thereof
US5249146A (en) Dct/idct processor and data processing method
CA1277036C (en) Orthogonal transform processor
JP2003067361A (ja) 衝突防止メモリ装置及びそれを用いたアドレス計算とデータルーティング方法
CN116541647A (zh) 运算加速器、处理方法及相关设备
US5583803A (en) Two-dimensional orthogonal transform processor
US4731724A (en) System for simultaneous transmission of data blocks or vectors between a memory and one or a number of data-processing units
CN112506567B (zh) 数据读取方法和数据读取电路
JP2000231513A (ja) N次元矩形データアレイの任意の所与次元におけるパラレルデータアクセスのためのメモリアーキテクチャ
EP1481319B1 (en) Method and apparatus for parallel access to multiple memory modules
US6704834B1 (en) Memory with vectorial access
JP6906622B2 (ja) 演算回路および演算方法
KR0139699B1 (ko) 이산 코사인 변환장치
US6789097B2 (en) Real-time method for bit-reversal of large size arrays
CN111078589B (zh) 一种应用于深度学习计算的数据读取系统、方法及芯片
KR100246033B1 (ko) 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치
Juskiw et al. Interactive rendering of volumetric data sets
TWI841631B (zh) 用於矩陣的空間地域轉換之方法及處理器電路
TWI841632B (zh) 用於矩陣的空間地域轉換之方法及系統
JP2647378B2 (ja) 画像処理装置
JP6567232B2 (ja) 画像再生器、信号処理装置及び画像再生方法
US20040240755A1 (en) Method and apparatus data re-arrangement
KR20220129248A (ko) 공유 메모리 기반 시스토릭 어레이 고속 푸리에 변환 장치 및 그 방법
JP2647379B2 (ja) 画像処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060428

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3802783

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100512

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100512

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110512

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120512

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130512

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140512

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees