JPS63228228A - 配列割付け方式 - Google Patents

配列割付け方式

Info

Publication number
JPS63228228A
JPS63228228A JP6314987A JP6314987A JPS63228228A JP S63228228 A JPS63228228 A JP S63228228A JP 6314987 A JP6314987 A JP 6314987A JP 6314987 A JP6314987 A JP 6314987A JP S63228228 A JPS63228228 A JP S63228228A
Authority
JP
Japan
Prior art keywords
frame
order
array
memory
access
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.)
Pending
Application number
JP6314987A
Other languages
English (en)
Inventor
Makoto Ota
誠 太田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP6314987A priority Critical patent/JPS63228228A/ja
Publication of JPS63228228A publication Critical patent/JPS63228228A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野〉 本発明は、計算機システムにおいて配列変数をメモリ空
間上に割付ける方式、およびそれを利用したプログラミ
ング手法に関するものである。
(従来の技術) 従来、配列はアクセス順序が定められておらず、配列要
素を参照しようとする時は、その配列要素を識別するた
めの添字または(ポインタなど)その代わりになるもの
をその都度指定していた。
(発明が解決しようとする問題点) 従来のように配列要素にアクセスする度に配列の添字を
指定しなければならないと、同じパターンのメモリアク
セス順序で何回もメモリにアクセスする場合には、添字
の操作についての記述が冗長となる。
例を第1図に示す、第1図では、A1と八5、A3とA
7、A4とA8が重複している。この例は、配列a[i
lから配列b[ilと配列c[ilを作るものであるが
、第1図のフローチャートに示す通りb[ilの値とc
hi]の値を同時に求めることはできない。従って、配
列の添字iをOからNまで走査する処理の手続きを2度
繰り返して記述しなければならない、しかし、本来この
部分の処理手続きは1度定義すれば、2度記述する必要
は必らずしもない。これに対しては、従来関数化・サブ
ルーチン化により対処して来たが、処理内容が異なるが
アクセス順序が同じであるような多数回のメモリアクセ
スまでは対処できなかった。一般的に言って、従来の配
列変数とメモリの対応関係に基づくプログラミングにお
いては、このような重複したメモリアクセス順序の記述
が多く見られた。
(問題点を解決するための手段) 上記の問題点を解決するために、フレームという概念を
導入する。フレームとは、メモリに対してアクセス順序
を保持する機構である。配列はフレームに結合され、間
接的にメモリに割付けられる。すなわち、配列にメモリ
アクセス順序という属性が定義され、以後特に指定しな
くてもこの属性に従った配列参照が可能となる。第2図
はこの様子を示している。同図においてBl、B2.B
3は配列、B6はメモリである。B4.B5はフレーム
であり、配列とメモリを結合する働きをしている。既に
定義されているフレームに配列が結合されると、フレー
ムが保持しているメモリアクセス順序に従って、配列要
素に添字の小さい方からデータが読み込まれたと解釈さ
れる。従って、あるフレームに結合されている配列を1
度切断し別のフレームに結合すると、配列要素の各値が
新しいフレームの属性で定められる値に書き変えられた
と見なされる。また、既に配列と結合されているフレー
ムを再定義するとそのフレームが定めるメモリアクセス
順序に従って、今まで配列が保持していたデータがメモ
リに格納される。つまり、フレームを介した配列の割付
は方式は内在的にデータ転送機構を持っている。さらに
、−R的にフレームの定義で用いられるアドレスはメモ
リの実アドレスである必要はなく、既に定義済みの配列
の添字であってもよい、このようなフレームの定義の仕
方をすることによって、配列に階層的な属性を与えるこ
とができる。
第3図〜第5図は、フレームの定義・再定義、配列とフ
レームの結合・切断の意味を説明する具体例である。第
3図ではフレームf1がメモリMに対してアドレスでj
l 、jl+2.jl+1.jl+3の順にアクセスす
るように定義されており、フレームf2が同様にj2.
j243.j2+2.j2+1の順にアクセスするよう
に定義されている。さらに、配列a[i ]はフレーム
f1と結合されており、その結果配列要素の値がa[0
]=−1,a[1]”2.a[2]”3.a[3]・−
5となっている。
第4図は第3図において配列a[i]とフレームf1を
切断し、新たにフレームf2と結合した場合である。こ
の結果、配列aiilはフレームf2で定義されている
メモリアクセス順序を属性として持ち、配列要素の値は
a[01・−2,a[1]=1.a[2]=4.a[3
]=口となる。第5図は第3図においてフレームf1を
メモリアクセス順序がj3+2.j3+3.j3.j3
41となるように再定義した場合で、今までの配列a[
i]のデータがi=0〜3の順にメモリMのアドレスj
3+2.j3+3゜j3.j3+1に格納され、j3→
3.j3+1→−5,j3+2→−1,j3+3→2と
なる。
(作用) フレームの考えを用いた、このような配列のメモリへの
割付けをすることにより、配列にメモリアクセス順序と
いう属性を与えることができ、さらにその属性に従った
配列要素の自動的参照と配列の階層化が可能となる。
(実施例) 上記解決手段の実現方法については、フレームを管理す
る部分を専用ハードウェアで実現する方法とソフトウェ
アで実現する方法が考えられる。
第6図はソフトウェアによる方法の概念図である。Dl
はフレーム管理プログラム、B2. B3はメモリであ
る。まずメモリー上にフレーム情報を格納する領域D2
を作る。ここには、メモリアクセス順序の指定方法を表
わすモードとそのモードに応じたパラメータが記憶され
ている。第6図においてモード(0)はアクセスアドレ
スを全て列挙するもので第1パラメータとしてアクセス
回数が格納されており、モード(1)は連続したメモリ
領域をアクセスするために最初のアドレスとアクセス回
数を指定するものである。さらにこれらのフレーム情報
の設定とその情報を用いたメモリアクセスを行なうフレ
ーム管理プログラムD1を用意する。このプログラムで
は、配列がどのフレームに結合されているかという情報
や次にアクセスするアドレスなどを管理している。配列
の参照が検知されると、フレーム管理プログラムD1は
まずその配列のフレ−ム情報を調べに行き、次にそのフ
レーム情報に従ったアドレス計算を行ない、メモリにア
クセスする。専用ハードウェアによる方法はフレーム管
理プログラムやフレーム情報格納部の全てまたは一部を
専用ハードウェア化する。
第7図〜第11図は実施例に基づくプログラミング例で
ある。これらの例においては、フレームの定義はfra
meというキーワードを用いて、fllframe f
l   [M;X、X+1.X+2.X+3](21f
rame  I2(i)   (M;i;Nlのように
記述しである。(1)はflがMで識別されるメモリの
アドレスX、X+1.X+2.X+3を順にアクセスす
るフレームであることを定義しており、(21はI2が
iを引数として取り、iから連続したN個のアドレスを
アクセスするフレームであることを定義している。また
、配列をフレームに結合するのは、 map a[] f2(Y) のように記述しである。これは、配列a[]をフフレー
ムf(Y)と結合することを表わす。
第7図は7 トL/ スX、X+1.X+2.−、X十
N−1のデータをそのままアドレスY、Y+1.Y+2
.・・・、Y+N−1へ転送する処理のフローチャート
である。Elでアドレスi。
i+1.、i+2.・・・、i+N−1というアクセス
順序を持ったフレームを定義し、F2. F3で配列a
[]、 b[]をそれぞれフレームf(X)、 f(Y
)に結合する。F4で配列a[]の内容を配列b[]に
代入する。配列a[]、 b[]には配列アクセス順序
という属性が与えられているため、F4のように添字を
操作しない表現方法で全ての配列要素に対して、転送を
行なうことができる。すなわち、一括処理の表現方法と
して優れている。
第8図は第7図と全く同じ処理をフレームの再定義を用
いて行ったものである。FlでアドレスX。
x+t、x+z、・・・、X+N〜1の順にアクセスす
るフレームfを定義し、F2で配列a[]をフレームf
と結合する。F3でfをアドレスY、Y+1.Y+2.
・・・パ十N−1の順にアクセスするフレームに再定義
すると、a[1の内容すなわちアドレスX、X+l、X
+2.・・・、X+N−1に格納されているデータが、
アドレスY、Y+1.Y+2.・・・、Y+N−1に転
送される。
第9図は1次元メモリを折り返し長しの2次元画像デー
タを格納しているメモリと見なしたとき、3×3の大き
さの領域を左回りに90度回転した新しい画像データを
作り、メモリに格納する処理のフローチャートである。
G1でアドレスiのまわりの3×3の領域を順にアクセ
スするフレーム5rc(i)を定義し、G2で5rc(
i)を左回りに90度回転した順序にアクセスするフレ
ームdst(i)を定義する。G3で配列a[]をフレ
ーム5rc(X)に、G4で配列b[]をフレームds
t(Y)にそれぞれ結合し、G5で配列a[]を配列b
11へ代入する。これで今考えている3×3の全領域の
データに対してa[]からb[]への代入が行なわれる
第10図は第9図と全く同じ処理をフレームの再定義を
用いて行ったものである。第11図は前の2つの例と同
じように、メモリを折り返し長しの2次元画像データを
格納しているものと見なした場合に、3×3のマスク処
理を3種類行なうものである。11で3×3の領域を順
にアクセスするフレーム5rc(i)を定義し、I2で
配列a[]をフレーム5rc(八〉に結合する。]3で
アドレスi、i+1.i+2.−。
i+N−1を順にアクセスするフレームdst(i>を
定義し、■4〜I6で配列b[]、c[]、d[]をフ
レームdst(B)、dst(C)、dst(D)にそ
れぞれ結合する。]7で配列a[]とマスクデータの配
列m1[]との内積演算を行なう。ここで、a[]の9
個の配列要素と 111の9個の配列要素の積を順にと
り、それらの和を取る操作をa[]・ ]11のように
ベクトル演算として表現している。18.19について
も同様である。もし第1図のように17.18. ]9
が同時に行なえないような場合でも、本方式を用いれば
同じアクセス順序を何回も指定しなくてもよいことにな
る。
(発明の効果) 以上述べたように本発明は、配列に対し同じ順序パター
ンのアクセスを頻繁にする場合に、同様なアクセス順序
の指定を何回もする必要がなく、また大量のデータを−
まとめにして処理する簡便なベクトル演算的表現方法を
用いることができ非常に効果的である。
【図面の簡単な説明】
第1図は従来の配列割付は方式に基づくプログラミング
の例を示す図、第2図は本発明で主張するフレームを用
いた配列の割付は方式の概念図、第3図〜第5図はフレ
ームの定義、配列とフレームの結合の意味を説明するた
めの図、第6図はフレーム管理プログラムというソフト
ウェアを用いた方法による実施例を説明するための図、
第7図〜第8図はデータ転送プログラムのフローチャー
ト、第9図〜第10図は3X3の画像領域を左回りに9
0度回転した新しい画像を作るプログラムのフローチャ
ート、第11図は3×3の画像領域に対して3種類のマ
スク処理をするプログラムのフロー第1図 B1      第2図 第4図 第5図 メモリM 第6図 第8図 第9図 第10図 第11図

Claims (1)

    【特許請求の範囲】
  1. データを格納するためのメモリと、そのメモリに対する
    アクセス順序等のアクセス環境を複数個記憶する手段と
    、配列変数をアクセス環境と結合および切断する手段と
    、アクセス環境に従ってメモリにアクセスする手段とか
    らなることを特徴とする配列割付け方式。
JP6314987A 1987-03-17 1987-03-17 配列割付け方式 Pending JPS63228228A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6314987A JPS63228228A (ja) 1987-03-17 1987-03-17 配列割付け方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6314987A JPS63228228A (ja) 1987-03-17 1987-03-17 配列割付け方式

Publications (1)

Publication Number Publication Date
JPS63228228A true JPS63228228A (ja) 1988-09-22

Family

ID=13220895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6314987A Pending JPS63228228A (ja) 1987-03-17 1987-03-17 配列割付け方式

Country Status (1)

Country Link
JP (1) JPS63228228A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265947A (ja) * 2008-04-25 2009-11-12 Meidensha Corp プログラマブルコントローラのデータアクセス方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265947A (ja) * 2008-04-25 2009-11-12 Meidensha Corp プログラマブルコントローラのデータアクセス方式

Similar Documents

Publication Publication Date Title
US6995765B2 (en) System, method, and computer program product for optimization of a scene graph
JP2680255B2 (ja) オブジェクト指向環境においてデータを転送するためのシステム及び方法
US4901251A (en) Apparatus and methodology for automated filling of complex polygons
US7137066B2 (en) Binary cache file format for themeing the visual appearance of a computer system
US6985150B2 (en) Accelerator control unit configured to manage multiple hardware contexts
US20080052460A1 (en) Method and apparatus for accessing a multi ordered memory array
JP7121101B2 (ja) データ処理方法、装置、及び関連製品
JPH0816932B2 (ja) グラフイツク表示システム
JP2969153B2 (ja) レコード検索方法
CN101145239A (zh) 绘图处理单元及处理边框颜色信息的方法
JPS63228228A (ja) 配列割付け方式
US10529100B2 (en) Interaction-driven format for graph visualization
JP2002024298A (ja) 3次元形状処理装置、3次元形状表示方法およびその方法を実施するためのプログラムを記憶した記憶媒体
US6504547B1 (en) Standardization of graphics system logical frame buffer
JPS6347835A (ja) パイプライン計算機
EP1248194A1 (en) Method for facilitating data sharing between application programs and accesses to peripheral apparatuses with application programs by using shared addresses
US4964064A (en) Method and apparatus for constraint-oriented inference
US8275809B2 (en) Object processing system using an object model
JPH08115238A (ja) ファイルシステム
JPH02148173A (ja) 木構造図作成システム
JP2735921B2 (ja) アドレス定義操作装置
Demidova et al. Application of Machine Learning and Parallel Computing to Search for Hypersurfaces Containing Data in Non-Linear Spaces
US20210240473A1 (en) Processor device
US20100031197A1 (en) Design package data format
JPH0421881B2 (ja)