...

物理探査におけるデータ処理の速度向上について

by user

on
Category: Documents
13

views

Report

Comments

Transcript

物理探査におけるデータ処理の速度向上について
Akita University
秋 田大学 鉱 山学部 資 源地 学研 究施 設報 告, 第5
5
号 , 9-2
1
ペ - ジ,1
9
9
0
年 3月
9
物理探査 におけるデータ処理の速度 向上 につ いて
西
谷
息
師米
(
平成 2年 1月1
7日 受理 )
Ont
hespeed・
upofdat
ahand一
i
ng
i
nt
hegeophysi
calpr
ospect
i
ng
Tadas
hiNI
S
HI
TANI
X
(
Abs
t
r
ac
t
)
Thewayo
fdat
ahandl
i
ngi
npe
r
s
onalco
mput
e
rhasbe
e
nt
r
e
at
e
d.BASI
Cl
anguagei
ss
ui
t
a
bl
e
f
orus
l
ngi
nt
hef
i
e
l
d,
be
c
aus
ei
ti
se
as
yt
ous
eandmodi
f
yi
t
scont
e
nt
s
. Howe
ve
rt
het
i
meo
fe
xe
c
ut
i
ngs
omej
obsi
nBASI
Ci
sl
o
nge
rt
hant
hatoft
hecompi
l
e
rl
anguage,f
o
re
xampl
eFORTRAN
orC. I
nt
hi
ss
t
udys
e
ve
r
ale
xa
mpl
e
sar
es
howni
nor
de
rt
or
e
duc
et
het
i
meo
fdat
ahandl
i
ng.
I
tt
ake
st
womi
nut
e
si
nBASI
Ct
ot
r
ans
f
e
r2
0
4
8dat
af
r
om A/
D conve
r
t
e
r(
DM-71
0
0
)t
ope
r
s
onalcomput
e
r(
PS-8
0
)
. Thet
i
mec
anber
e
duc
e
dt
ot
hr
e
es
e
condsi
ft
hepar
to
fdat
at
r
ans
f
e
r
r
out
i
nei
sr
e
pl
ac
e
dt
omac
hi
nel
anguager
out
i
ne. TheBASI
Ccommands
,BSAVE andBLOAD,
ar
econve
ni
e
ntf
ort
r
eat
l
ngar
r
aydat
a,andne
e
donl
yf
e
ws
e
condst
os
aveorl
oad6
4
K byt
edat
a.
Thes
i
z
eoft
wodi
me
ns
i
onali
nt
e
ge
rar
r
ay(
1
8
0×1
8
0
)i
nt
hef
l
oppydi
s
kwhi
c
hBSAVEs
t
or
e
si
s
6
4
8
01byt
e
s
. Thi
ss
i
z
ei
sonebyt
egr
e
at
e
rt
hant
hatwhi
c
hi
ss
t
or
e
dasr
andom dat
af
i
l
ef
ort
he
s
amear
r
ay. Thes
e
que
nt
i
aldat
af
i
l
ei
saboutt
hr
e
et
i
me
sgr
e
at
e
ri
ns
i
z
et
hant
her
andom f
i
l
eand
BSAVEf
i
l
e. Co
-pr
oc
e
s
s
o
r(
8
0
87or8
0
2
87
)C
ani
mpr
ovee
f
f
i
c
i
e
nc
yi
nf
r
e
que
nc
yanal
ys
i
s(
FFTand
I
nve
r
s
eFFT)andt
e
r
r
ai
ncor
r
e
c
t
i
onc
al
c
ul
at
i
on. Mac
hi
nel
anguager
out
i
ne
sar
ee
xami
ne
di
n
de
t
ai
last
ohow r
e
pl
ac
i
ngBASI
Cr
out
i
ne.
1. は
じ め
に
地下 構 造 の推 定 や 資 源探 査 に物理 探 査 の手 法 が周
明 らか に な るO正 しい解 析 を行 うため に は デ ー タの
質 を常 に考慮 しな けれ ば な らな い。現 場 で 測定 した
デ ー タは ノ イ ズが含 まれ て い るため, 質 の悪 い デー
い られ る。地 震探 査 , 電 気探 査 , 磁 気探 査 , 重 力採
タは取 り除 くな どの処 理 か必要 とな る。一 度 ノー ト
塞,その他 各種 の探 査 手 法 を 目的 に応 じて選 択 す る。
や 記 録媒 体 にデ - タが記 録 され る と, ノイ ズの 多 い
何 れの場 合 で も測 定 現 場 で測定 値 を見 て直 ち に地 下
デ ー タで あ るに も関 わ らず正 しいデー タ と解 釈 され,
構造 が判 明 す るわ け で は な い。統 計処 理 を行 っ た り,
誤 った結 論 を導 く可 能 性 が あ る。 これ を防 ぐため に
理論 式 を用 い て計 算 を行 っ た リ して は じめ て構 造 が
は現 場 で測定 値 を評 価 し, 必要 な らば観 測 計 画 を修
I
n
s
t
i
t
u
t
eo
fMl
n
l
n
g
gy
,Mml
n
gCo
l
l
e
g
e
,
Ak
l
t
aUn
l
V
e
r
S
l
t
y
Ge
o
l
o
正 しなが ら測定 す る こ とが望 ま しい。大 規 模 な地 震
書秋 田大 学 鉱 山学部 鉱 山地 質学年
斗
探 査 な どで は測 定 か ら最 終 結 果 を出 す まで大 型 計 算
Akita University
10
西
谷
恩
師
機 を駆使 して処理 が行 われ る。最近 で はパ ー ソナ ル
て きたプ ロ グラム を FORTRANやC言語 に書 き換
コ ン ピュー タ (パ ソコ ン と略 す ) を用 いて処理 を行
え るの も一 つ の手段 で あろ う。ところが,書 き換 えは
うこ とも多 くな って きた。 パ ソ コ ンに大 型計 算機並
全 く新 しいプ ロ グラム を善 くの と同様 の手 間 と時間
の処理 速 度 を期待 す るの は誤 りで あ る。大 型計 算機
が必要 で あ る。
で は全 く問題 とな らなか ったテ一 夕処理 に要 す る時
間 がパ ソコ ンを用 い る場 合 には重要 にな って きたの
であ る。
こ こで は現 場 でパ ソ コ ンを使 う場 合 の処理 速 度,
デー タ転送速 度 の向上 を主 と して考 え る。 ここで述
べ る方 法 は測定現 場 に限 らず,実 験 室 内の処理 に も
適 用可能 で あ る0
2. 簡便 な BASI
C言 語
C言 語 が 適 当
現場 で簡 単 な計 算 を行 うには BASI
以下 で述 べ る方 法 は BASI
Cの 良 さ を生 か しなか
ら , かつ処理 の高速化
を図 る方 法 で あ る。
4. BASI
Cの 一 部 を他 の 処 理 で 置 き換 え る
高速 化
BASI
Cで は繰 り返 しの 多 い計 算,記 録媒 体 との入
BASI
Cも工 夫 す る
出 力 は意 外 に時 間 を必要 とす る。
こ とに よって処理 時 間 の短 縮化 が図 れ る。ここでは,
デ ー タの転送 時 間短 縮 とフ ロ ッ ピー デ ィスク-の入
出力 の時 間短 縮 の例 を示 す こ ととす る。
で あ るo平均 や標 準偏 差 の計算, 測定値 の グラフ化
4.1 デ ー タ転 送 時 間短 縮
な どは BASI
C言 語 を使 えば十分 対 応可能 で あ る。
アナ ロ グで測定 したデー タはデ ィジタルデー タに
また, プ ロ グラムの修正 も容 易 で あ る。
BASI
Cの処
変 換 す る必要 が あ る。現 場 で デ ィジタル と して記録
理 速 度 は遅 い と言 わ れ て い るが, デー タ を入 力す る
す れ ば問題 は ないが, アナ ロ グで記 録 す る計 測器 も
時 間 の万 が は るか に長 い, 測定値 をキー ボー ドか ら
多 い。簡便 にデ ィジタルデー タ とす るにはアナ ログ/
入力 す る場 合 には処 理 速 度 は気 にす るほ どではない。
デ ィジタル変 換器 を用 い るの が便 利 で あ る。 ここで
ところか, アナ ロ グ/ デ ィジタル変 換器 な どか らデ
は高速 アナ ロ グ/ デ ィジタル変 換器 (デ ィジタルメ
ー タ をパ ソコ ンに取 り込 んで グラフ表示 を行 った り,
モ リ)DM-7
1
0
0 (岩 崎 通 信機 )の デー タ をパ ソコ
周 波数 解 析 を行 う場合 には事情 は異 って くる。大 量
0(TEAC社 製 ) に転送 す ることを考 える。
ン PS-8
の デー タ を処 理 す る場 合 はや は りBAS
I
C で は不 向
B イ ンター フ ェー ス (
I
EEE-4
8
8)
転 送方 式 は GP-I
きで あ る。室 内 で処理 を行 う場 合 は時 間 の 多少 は そ
を用 い るc
れ ほ ど気 にな らない。 しか し,現 場 で は作 業能率 に
PS-8
0は 8ビッ トCPUの Z8
0を使 ったパ ソコン
影響 す るため BASI
C言 語 を使 う とす れ ば, 複雑 な
で ク ロ ック周 波数 1,
77
4MHzと機能 はかな り低 いパ
処理 は行 な えな い。
ソ コ ンで あ るo プ ロ グラムや デ- タは カセ ッ ト磁 気
3.
コ ンパ イ ラ 言 語 に よ る高 速 化
BASI
C言語 で作 成 したプ ロ グラム は BASI
Cコ ン
パ イラー な どで数 倍 か ら数 十倍 速 くす るこ とが可 能
で あ る。BASI
Cの簡便 さ を生 か しなが ら速 い処理 を
望 む場 合 に は適 当 な方 法 で あ る。
テー プ に記 録 す る方 式 を とってお り, カセ ッ トテー
プ l巻 に両 面 で5
1
2キロバ イ トの記 録容 量 を もつOこ
の カセ ッ ト磁 気 テ - プ は野 外 用 テ - タ レコー ダー
(DR-2
0
0
,DR-5
5
, 共 に TEAC社製 ) と同一の
記 録方 式 で あ る。
4.1.1 BASI
Cに よ るデ ー タ転 送
BASI
C言語 に こだわ らなけれ ば,パ ソコ ン上 で走
BASI
Cによるデー タ転 送 プ ログラムの主要 部 分 を
る FORTRANやC を用 い る こ とも出来 る。処理 速
Fi
g.1に示 す 。PS-8
0は GP-I
B 制 御 を行 うため
度 は BASI
Cコ ンパ イ ラー よ り速 い。 しか し, 簡 単
LSI(MC6
8
4
8
8
,GPI
A イ ンター フ ェー スア ダプタ
な グラフ表示 , プ ロ グラムの一部修正 な どはか な り
ー ) を用 いて お り, パ ソコ ンの I
/
0命令 でコ ン トロ
手 間 であ る。現 場 で直 ちに実行 で きる BASI
Cの便利
Mot
or
ol
aI
n°.
,1
9
8
0)
0GPI
A イ ンター
ー ルす る (
I
Cで蓄積 し
さはない。
処理 速 度 に こだわ るな ら BAS
フ ェー スア ダプ ター には制御 用 の レジス タが あ り,
Akita University
ll
物理 探 査 にお け るテ一 夕処理 の速 度 向上 につ いて
この レ ジス タ に命 令 を書 き込 ん で
Dt
H D(
2047)
poke 16561,
253:
POKE 16562,
127
OUT 241,96 :OUT 241,32
0UT 243, 0 :OUT 240,0
0UT 242, 0 :OUT 245,0
0UT 246, 0
0UT 244, 2
GOSUB loo
AAS='
l
F1 0" : GOSUB 400
AA‡=HRO2047■
■:GOSU8 400
GOSUB 200
58
60
62
64
FOR l
=O TO 2047
肝 州 P(
240)AND IELSE 60
D(
り=l
NP(
247)
NEXT l
っ た リ,レジスタの 内容 か らそ の 時 の状 態 を把 握 す る
一
ps80Addr
oss芸2
-I
B の 機 能 を説 明 す る ため に示 した の で は な く,
I
Fl
NP(
240)AND 64ELSE 412
0UT 247,13
l
FI
NP(
240)AND 64ELSE416
0UT 243,32 :OUT 247,10
RETURN
GP
Fi
g.1の 命 令 の 意 味 をチ ェ ッ クす る ため に掲 げ て あ
1
Set1Byt
e Bi
nar
y
DATA 0 - 2047
D M・
7100Tal
ker
'
る。
GP-I
B の詳 しい解 説 は解 説 書 (
例 え はMo
t
or
ol
a
l
nc.
,1
9
8
0)を参 照 され た い 。PS-8
0の Ⅰ
/
0 ア ドレ
4
0(
16
進 で Fo)か ら2
47(F7)まで が GPI
Aの
ス2
l
BIFl
agcheck
r
DATA t
r
ansf
er
レ ジス タ と接 続 され て お り,BAS
I
Cか らは I
N,
OUT命 令 に よ って制 御 す る。 但 し, ア ドレス2
4
0,
7100=Tal
ker
PS・
80=Li
st
ener
, DM1
.
GPl
A Reset
OUT 243,128 :OUT 243,0
■
ATN ON
0UT 241,160
'
UNLsend
C=63 :GOSUB 300
C=34 :GOSUB 300
.
LL
St
er
l
erAdd.
=2(
PS1
80)
C=69 :GOSUB 300
'
Tal
ker Add.
=5(
DM・7100)
'
ATN OFF
0UT 241,32
RETURN
Tal
kermessagesend
FOR M=1TO LEN(
AA‡)
l
FI
NPl
240)AND 64 ELSE 404
N,
1)
A8‡=MI
D!(
AA‡,
OUT 247,ASC(
A8‡)
NEXT
こ とが 出 来 る。 イ ンタ- フ ェー スア ダプ ターの レジス
bl
e.1に示 す O この一 覧 表 は
ター の一 覧 表 を Ta
7100=Li
st
ener
PS・
80=Tal
ker
, DM'
GPI
A Reset
OUT 243,128 :OUT 243,0
ATN ON
0UT 241,160
■
LLO send
C=17 :GOSUB 300
l
UNLsend
C=63:GOSUB 300
C=37 :GOSUB 300
'
Li
st
eneTAdd.
=5(
DM・
7100)
C=66 :GOSUB 300
'
Tal
ker Add.
=2(
PS・
80)
'
ATN OFF
0UT 241,32
RETURN
Mul
t
i
l
i
ne messageSend
l
FI
NP(
244)AND 32ELSE 302
OUT 246,
C:
C=C+128:
OUT 246,
C
l
FI
NP(
244)AND 64ELSE 306
OUT 246,
0
RETURN
GP-I
B制 御 を行
■
momor
ypr
ot
ect
1af
t
er8000H
●
l
FC,REN ON
2
41
,2
4
4
,2
4
6に接 続 して あ る レ ジ ス タ は PS-8
0で
使 いや す い よ うに本 来 の機 能 か ら変 更 され て い るo
Fi
g.
1の リス トで 1
1
-2
0
行 がGP-I
B を使 う ため の
0
0-42
0
行 まで は汎 岡 の 入 出 力 サ ブ ル ー チ
初 期 化 ,1
01
ンで あ る。テ ィ ジ タル メモ リか らパ ソ コ ン (PS-8
- の デ ー タ転 送 作 業 は5
0-6
4行 で実 行 して い る。5
0
行 で パ ソ コ ンが トー カー に な リデ ィ ジ タル メ モ リに
命 令 を与 え て い る。5
2
行 で デ ー タの フ ォー マ ッ トを
1バ イ トバ イナ リー コー ドと し,5
4
行 で2
0
4
8
個のデ
8ー タ を送 る こ と を指 示 して い る。 実 際 の転 送 は5
行 で行 って お り, デ ー タか セ ッ トされ たか ど うか
6
4
をチ ェ ッ ク しな が らデ ー タ を受 け取 っ て い る。 転 送
1
RFD FL
ag check
'
DAV ON
'
DAC Fl
ag check
●
DAV OFF
時 間 は約 2分 必 要 で あ る0
4.7.2 BASl
Cの 一 部 の 機 械 語 化
BASI
Cプ ロ グラ ム Fi
g.1で 一 番 時 間 を要 す る部
分 は デ ー タが セ 、
ノトされ た か ど うか の チ ェ ッ ク部 分
l
BO FLag check
r
DATA send
I
Cでチ ェ ックす る動 作 よ り も速 くデ ー
で あ る。BAS
タ は既 に セ ッ トされ て い るo Lか し, この チ ェ ッ ク
部 分 を省 略 す る こ とは 出 来 な い 。
.
CR send
'
EOLset
,LFsend
そ こで, デ ー タ転 送 部 分 を機 械 語 で書 き,
BASI
C
プ ロ グラ ム の一 部 を置 き換 え るo 置 き換 え る部 分 は
この転 送 部 分 と, 機 械 語 を メ モ リー 内 にセ ッ トす る
g.
2に,Z-8
0の ア セ ン
部 分 で あ る. 変 更 部 分 を Fi
Fl
g.1 Dat
at
r
ans
f
e
rf
r
om DM-7
1
0
0t
oPS-8
0i
n
BASI
C. Li
ne
sf
r
om1
0t
o2
0ar
ei
ni
t
i
al
i
z
e
r
out
l
ne. Mai
nr
out
i
ne
sar
ef
r
om l
i
ne5
8
t
o6
4
. Li
ne
sf
r
om 1
0
0t
o4
2
0ar
es
ubr
out
i
ne
s
. About1
2
0s
e
c
ondsar
er
e
qui
r
e
d
t
ot
r
a
ns
f
e
r2
0
4
8dat
a.
g.
3に示 す 。 実 際 の処 理
ブ ラ に よ る機 械 語 部 分 を Fi
S内 に Fi
g・3の機 械 語 をセ ッ トし,Fi
g.
1内
で は CZ
8-6
4行 を Fl
g.2で置 き換 え て 実 行 す るO 置 き
の5
換 えた部 分 はデータが 入 力 された か をチェックLて,デ タ を メ モ リー に転 送 す るだ け で あ るoLか し,処 理 時
間 は約
3秒 に短 縮 され るoBASI
Cの み で プ ロ グラ ム
Akita University
12
西
T abl
e
Addr
ess
7
6
5
l
RO
BO
GET
谷
忠
師
1 GPI
A reglSterS used
4 3
2
1
0
l
n
PS-8
0
l
nt
er
r
uptSt
at
usRegi
st
er
240 ROR
●
ROW
APT
CND
END
Bl
Unused
Comr
T
l
andSt
at
usRegl
Sl
er
241 RIR UACG REM
ー
RI
W ATN
l
FC
LOK
RE…
RLC
SPAS DCAS UUCG
SRO
Cont
r
ol
l
erUniLi
neMessageRegL
St
er
Addr
essSt
at
usRegi
st
er
242 R2R
R2W
ma
t
o
l
O
dSel
t
○
l
O
ATN TAGS LAGS LPAS TPAS
hl
de
hl
da
r
r
l
Sa
r
l
l
aPt
e
Addr
essModeRegi
st
er
Auxi
l
i
aT
yCommandRegi
st
er
243 R3R RESET DAC DÅy RFD
Raw
r
t
dr f
eoi dacr
ul
pa
dacd
f
get
Aux‖i
ar
yCommandRegi
st
er
Addr
essSyi
t
chRegi
st
er
244 ●
R4R
R4W
SRQ DA仁
l
sbe dal
245 R5R
R5W
S7
246 R6R
●
R6W
B7
DAY
247 R7R
Dl
7
SROS
r
SV
RFO
ddt
AD5
AD4
AD3
AD2
AD1
S5
S4
53
S2
S1
SO
Addr
essRegl
st
er
Ser
i
alPo‖Regi
st
er
CommandPass・
Thr
oughRegl
St
er
B6
BS
B4
B3
82
B1
80
L
A
LN6 MLN5 MLN4 NLM3 MLM2 MLM1 MLM0
Cont
r
ol
l
erMul
t
Hi
nemessageRegl
St
er
Dat
al
nRegl
St
er
Dl
6
Dl
5
D1
4
Dl
3
Dl
2
Dl
l
Dl
O
Dat
aOutRegi
st
er
'Regi
st
erwi
t
hast
er
l
Skr)ar
enot
i
f
i
edf
r
om or
i
gi
naHunct
i
onsof
NC68488.
1.Uppercase一
et
t
er
si
I
l
di
cat
eamessager
esul
t
i
ngf
r
om t
heI
EEE488
St
andar
dbus.
2.Lowercasel
et
t
er
si
ndL
Cat
eamessager
esul
t
i
ngf
r
om t
heMPUdat
a
bus.
3.Thebi
tt
er
mi
nol
ogyoft
heDat
el
nandDat
ar
egI
St
er
Sr
epr
esentt
he
number
i
ngoft
hel
EEE・
48BSt
andar
dbus.
4・Mnemoni
car
l
dt
hel
Tdesc叩 t
1
0r
t
:
TPAS
dsel
hl
de
hF
da
Tal
kerPr
l
mar
yAddr
essSt
at
e
desel
ect
hol
d・
of
fRFDoner
l
d
hol
d・
Of
fRFDonal
ldat
a
apt
e
DAC
DAY
RED
r
f
dr
f
eoi
dacr
msa
r
t
l
addr
esspasst
hr
oughenabl
e
Dat
aAccept
ed
Dat
aAyai
l
abl
e;Dat
aVal
i
d
ReadyForDat
a
r
eadyf
ordat
ar
el
ease
f
or
cedendorJ
dent
l
f
y
DACr
el
easehandshake
mysecondar
yaddr
ess
r
et
ur
nt
ol
oeal
L
J
I
pa
dacd
AD51
1
upper
/
l
owerpr
l
mar
yaddr
ess
dat
aacceptdi
sabl
e
Addr
esses
l
sbe
dal
dat
l
eastsl
gni
f
l
Cantbl
tenabl
e
di
sabl
et
hel
i
st
ener
dL
Sabl
et
het
al
ker
SRQS
r
sy
Ser
yi
ceRequestSt
at
usSt
at
e
seT
Yi
cer
equest
St
at
usbl
t
S
I
RQ
BO
GET
APT
CND
l
nt
er
r
uptRequest
Byt
eOut
Gr
oupExecut
eTr
i
gger
Addr
essPassThr
ough
Command
BI
UACG
REN
LOC
Byt
el
n
Undef
i
nedAddr
essCommandGr
oup
Remot
eEnabl
ed
LocalLockoutEnabl
e
RLC
SPAS
DCAS
Remot
eLocalChange
Ser
i
alPoHAct
i
veSt
at
e
Devi
ceCl
earAct
J
VeSt
at
e
UUCG
ATN
l
FC
REN
Undef
i
nedUni
yer
salCommandGr
oup
At
t
ent
I
On
l
nt
er
l
aceCl
ear
Remot
eEnabl
e
SRQ
ma
t
o
l
o
TACS
LAGS
Ser
vi
ceRequest
myaddr
esshasoccL
J
r
r
ed
t
aはeronl
y
l
i
st
enonl
y
Tar
terAct
I
VeSt
at
e
LI
St
enerAct
l
YeSt
at
e
S7・
O
LPAS
LI
St
enerPr
i
mar
yAddr
essSt
at
e
MLM 60 Mul
t
J
l
i
neness
agei
nASCl
e
Akita University
物理探 査 にお けるテ- タ処理 の速 度向上 につ いて
58
60
62
64
Z=・
32436
POKE 16526,PEEK(
VARPTR(
CZ‡)+1)
POKE 16527,PEEK(
VARPTR(
CZS)+2)
∪=USR(
≡)
Fi
g.2 Abovel
i
nes(
f
r
om 58t
o64)ar
er
epl
aced
i
nFi
g.1
.I
nt
hi
spr
ogr
am onl
yt
hr
ees
econdsr
equi
r
edt
ot
r
ans
f
er2048dat
af
rom
DM171
00t
oPS-80. Zs
peci
f
yt
headdr
es
s
ofdat
aar
ea,i
nt
hi
scas
e81
4CH i
n hexadeci
mal
. Machi
ne l
anguage r
out
i
ne i
s
s
t
or
edi
nCZS. Thecont
ent
sofCZSar
e
l
i
s
t
edi
nFi
g.3.
13
関 わ らず, 機能 的 に低 く, 処理 速 度 も遅 い 8ビッ ト
CPU (
1,
774MHz)の方 が転送速 度 が迷 い とい う一
見矛 盾 した結 果 とな った。単 に機能 か高 い とい うだ
けで は必 ず しも処理 時 間 の短 縮 とは な らない こ とが
明 らか で あ る。
4.2
フ ロッ ピーデ ィス クへの デ ー タ入 出力
1
6ビッ トパ ソコ ン PC-9801F (クロ ック周 波数 8
C(
86)MS-DOS版 (日本電
MHz) で N88BASI
986) を用 い る場 合 を考 え る。 デー タ
気 株 式 会社 ,1
の 入出 力 に は普 通 シー ケ ンシャル フ ァイル, ラ ンダ
ム フ ァイルが用 い られ る。 シー ケ ンシャル 7 7イル
は一連 の ま とまったデー タ を記 録 す るには便 利 な方
; Machi
net
angL
J
ager
Out
i
r
l
e
式 で あ る。記 録 内容 も TYPE で確 認 で きる し,エデ
ORG OEOOOH
CALL OA7FH
LD BC,0
START I
N A,(
OFOH)
AND 1
JR Z,START
ィター での修正 も容 易 で あ る。 しか し, 入出力 に要
Coup
;HL<・
・IofUSF
t
(
Z)
;count
err
eset
;l
NP(
240)
i
fbi
tll
Bl
li
s0
t
henwai
t
す る時 間 は 良 く7 ア イ ル の大 き さ も大 き くな る
o
BASI
C プ ログ ラムでファイル途 中の デ- タ を一部 書
き換 えることはかな り難 しいO
最 初 か ら順 に読み出 さな
けれ ば何 番 目の デー タか分 らないとい う欠点 もあ る。
ラ ンダムフ ァイル は使 うため の手 続 きがやや複雑
I
N A,(
OF7日)
LD (
HL)
,A
;l
nputdat
a
A
, st
or
edat
ai
n(
HL)
XOR A
EX DE,HL
LD HL,7FFH
SBC HL,BC
JR Z,OWARl
;CY=0
;DEく・
・HL
・2047
;HLく一
・HL-BC・CY
;HLく・
;i
tBC=2047t
henEND
一部分 を取 り出 して処理 す る場 合 に は便 利 なフ ァイ
l
NC BC
EX DE,HL
I
NC HL
JR START
;BC=BC+ l
;r
est
or
eHL
;HL=HL+ 1
は ラ ンダム フ ァイル形 式 を使 うべ きで あ ろ う。
OWARI EX DE,HL
JP OA9AH
で あ るが大 量 の デー タ を記 録 してお き, その 中か ら
ル形式 で あ る。 内答 の一部 書 き換 え も容 易 で, フ ァ
イルの大 きさ もシー ケ ンシャル フ ァイル に比 べ て小
さい。 1メカ㌧ヾイ ト近 くの デ ー タ を処理 す る場 合 に
パ ソコ ンでデー タ処理 を行 う場 合 には, フ ロ ッ ピ
ー デ ィス クを使 うこ とが 多い。物理 探 査 で はほ とん
;r
est
or
eHL
;t
obr
i
ngbackHLval
ue
END
どの場 合, オ リジナ ルの測定 デー タは記 録 され て い
れ ば よ く, 後 で内容 を書 き換 え る こ とは ほ とん どな
いO現 場 でデー タ を収 録 す る場 合, 処理 速 度 の関係
か らメモ リー 内 にデー タ を一旦 記憶 して後 で ま とめ
Fi
g.3 As
s
embl
e pr
ogr
am i
n Z-80 mnemoni
c・
Abover
out
i
nei
ss
t
or
edi
nCZSandcal
l
ed
f
rom BASI
C asUSER f
unct
i
on.
て記憶媒 体 に記録 す る こ とが 多 いO解 析 を行 う場 合
した場合 の約 40倍 の速 度 向上 が得 られ た こ とに な る。
合 が考 え られ る。処理 を大 型 コ ン ピュー タで行 う場
6ビッ トパ ソ コ ン PC-9801F でプ
同様 の処理 を1
合 にはテ- タの量 はそれ ほ ど問題 とは な らない。 し
ロクラム した場 合 と比較 した。BASI
Cで GP一I
Bの
か し,解 析 をパ ソコ ンで行 う場 合 に は取 り扱 いやす
は, デー タ をメモ リー 内 に まず取 り込 んでか ら処理
す る場 合 と, 必要部 分 を読 み出 しなが ら処理 す る場
0秒 とな
処理 ルー チ ンを書 い た場 合, 転送速 度 は約 1
い よ うにデー タ を分割 した方 が処理 が容 易 で あ る。
った。1
6ビッ トCPU (8MHz) を使 い,GP-I
B
解 析 プ ロ グラムで は必 ず測定 デ- タ をメモ u- 内 に
の主要部 は ROM に機 械語 と して書 かれ て い るに も
取 り入 れ る必要 が あ る。普 通 は配列 を宣 言 して その
Akita University
14
西
谷
100. seqL
J
ent
i
arf
i
l
eREAD
llO■
120 DEFI
NT A
130 DI
M A(
179,
179)
140'
150 0PEN '
'
B:
FDATA,
S■
■FOR I
NPUT AS#1
160 FOR J=OTO 179
170
FOR l
=OTO 179
180
1
NPUT#1,A(
l
,
J)
190
NEXT 1
200 NEXT J
210'
220 CLOSE 1
思
帥
中 に取 り込 む。 フ ロ ッ ピー デ ィス クか らデー タ を読
ん で配 列 にセ ッ トす る場 合 を考 え る。 2バ イ ト整数
2次 元配 列 1
80×1
8
0個 (
6
480
0バ イ ト)を配列 に取 り
g.
4
込 む場 合, シー ケ ン シャル フ ァイル形 式 で は Fi
g.
4(b)の よ う
(a), ラ ンダ ム フ ァイル形 式 で は Fi
な プ ロ グラム とな るで あ ろ うo これ らの プ ロ グラム
はテ ー タの 入 力部 分 の み示 して あ る。
Fi
g.
4(a)の シー ケ ン シャル フ ァイル形 式 で は,
フ ロ ッ ピー テ イス ク上 に既 に 「FDATA.S」 とい う
名前 で デ ー タが用 意 され て い る と仮 定 して い る。配
列 の 引数 は ゼ ロ か ら始 ま り,A (0, 0) か らA
(
1
79,1
7
9) までC
7
)合 計 3
2
40
0個 の テ- タ を取 り扱 っ
Fi
g.4(
a) Anexampl
eofr
eadi
ngdat
af
r
om f
l
oppydi
s
ks
t
or
e
di
ns
eque
nt
i
alf
i
l
ef
or
mat
.
g.
4(a)の実 行 時 間 は 1分 2
2秒 必 要 で あ
て い る。Fi
る。Fi
g.
4(b)の ラ ンダ ム フ ァイル形 式 で は, レコ
ー ドサ イ ズ2
5
6バ イ トで デ ー タは 1
2
8個 ずつ処 理 す る
100' r
andom f
i
l
eREAD
110I
120 DEFI
NT A
130 DI
M A(
179,
179)
,D‡(
127)
140'
150 0PEN '
'
B:
KDATA.
M.
'AS#1
160 FOR K=OTO 127
170
FJ
ELD#1,2'KAS DUM!,2AS DS(
K)
180 NEXT K
190'
200 N=0
210■
220 GET#1
230 FOR K=OTO 127
240
J=l
NT(
N/180)
250
l
=N ・180★
J
260
Å(
l
,
J)
=CVl
(
DS(
K)
)
270
N =N + 1
280
l
F N=180*180THEN 320
290 NEXTK
300 GOTO 220
310●
320 CLOSE1
場 合 の例 で あ る。 レコー ドサ イ ス を変 えれ ば よ り簡
6
0行 の
単 な プ ロ グラム にす る こ とが可能 で あ る 02
CVIは 2バ イ トの文 字 と して記 録 され た デー タ を数
値 に戻 す関数 で あ る。 テ ー タ読 み込 み実 行 時 間 は 2
分2
0秒 で あ る。読 み込 み時 間 を比 較 す れ ばラ ンダム
フ ァ イル の読 み込 み が シー ケ ン シャル フ ァイル の約
2倍 の時 間 を必要 と して い る。単 に デー タ を取 り込
む 目的 で フ ロ ッ ピー デ ィス ク を使 う と きに は シー ケ
ン シャル フ ァ イル形 式 を使 った方 が時 間 的 に は有 利
で あ るC一 万, フ ァイルの大 きさ を比 較 す る と, ラ
ンタ ム 7
7
イル が6
480
0バ イ ト,シー ケ ン シャル フ ァ
イル が これ の約 3倍 の容 量 を必要 とす る。 フ ァイル
の大 き さ を重 要 視 す る場 合 は ラ ンダ ム フ ァ イル を使
うべ きで あ ろ う。 目的 に応 じて ラ ンダ ム フ ァイル と
シー ケ ン シャル フ ァイル は使 い分 け た万 が よい。
4.3 配 列 デ ー タの 直接 的取 扱 い
BASI
Cには機械語 プログラム制御 関係命令 BLOAD,
BSAVE が あ る。 メモ リ内 の デ ー タ をその ま まの イ
メー ジで保 有 した り, メモ リー 内 に デー タ をセ ッ ト
す る命 令 で あ る。 この 命令 を使 った デー タの 入 出力
Fl
g.4(
b) Anexampl
eofr
eadi
ngdat
af
r
om f
l
oppydi
s
ks
t
or
e
di
nr
andom f
l
l
ef
or
mat
.
Li
ne
s1
6
0-1
80ar
ede
f
i
ni
ngf
i
el
dar
ea
i
nconvent
i
onalway. Fi
l
enamei
ss
peci
f
i
e
di
nl
i
ne1
50
.
g.5に示 す 。
プ ロ グラム を Fi
Fi
g.5(a)が配列 デ ー タ をフ ロ ッ ピー デ ィス クに
記 録 す る部 分 で あ る。 デー タは 2バ イ ト整数 2次元
1
80×1
80)で あ る。2
00行 の VARPTR関数 で
配列 (
配 列 K の 値 が格 納 さ れ て い る メ モ リ番地 を得 るこ
Akita University
物理 探 査 におけ るテ- タ処理 の速度 向上 につ いて
15
00000
0
11
12
13
14
1
フロ ッピーデ ィスクか ら配列 にデー タを取 り込 む場合
dat
aSAVE
DEFI
NT K
DI
M K(
179,
179)
g.
5(b)に示 して あ る。書 き込 む場 合 と同様 ,配
が Fi
列 の セ グメ ン トを求 め (
2
0
0
行)
,BLOAD命 令 を使
って先 頭 か らデ ー タ を読 み込 ん で い る (
21
0
行)
。こ
の命 令 も 2- 3秒 で終 了 す る。 フ ロ ッ ピー デ ィス ク
∃ 200 DEFSEG =VARPTR(
K(
0,
0
)
,1)
( 210
BSAVE"B:
J
(DATA.
M",0,VAL(
"
&H'
'+
HEX‡(
180■
180★
2)
)
220 I
か らのデー タ入 力 の速 さを BLOAD による方法 と他 の
フ ァ イル形 式 とを比 較 す る と, シー ケ ン シャル フ ァ
7
倍 , ラ ンダ ム 7 7 イル形 式 の4
7
倍であ
イル形 式 の 2
るO取 り扱 い も簡 単 で, 処 理 の高速 化 か容 易 に得 ら
れ る便 利 な方 法 で あ る。
Fi
g.5
(
a) A par
tofdat
as
avepr
ogr
am us
i
ng
BSAVE command. Se
gme
ntbas
ei
s
de
f
i
ne
di
nl
i
ne2
0
0
. Thenumbe
rof
dat
ai
sde
f
i
ne
di
nt
hel
as
tpar
to
fl
i
ne
2
1
0.
100 ' dat
a LOAD
; 110 ■
120 DEFf
NT K
130
( 200
DI
M K(
179,
179)
DEF SEG 1 VARPTR (
K(
0,
0),1)
l 210
'
・0
BLOAD "a:
KDATA・
M'
】 220 ■
この 方法 の メ リ ッ トは も う一 つ あ るOBS
AVE,
BLOAD は メ モ リの デー タ イ メー ジをその ま ま使 っ
た記 録 方式 で あ る。 す なわ ち, ラ ンダ ム フ ァイル形
式 と全 く同様 の記 録 の され 方 で あ る。 ラ ンダ ム フ ァ
イル で記 録 前 に行 って い る MKI
S,MKSS
,MKDS
は数 値 を メモ リー の デ ー タ イ メー ジの形 に変 換 す る
AVE を使 え ば この変 換操 作 か不 要
操 作 で あ るoBS
とな るの で あ る。 この こ とが処 理 速 度 の 向上 に大 い
AVE で作 った フ ァイ
に貢 献 して い るo 従 って,BS
ル は ラ ンダ ム フ ァイル と して取 り扱 って も何 等差 し
Fi
g.
5(a)
で作 った フ ァイル を Fi
g.
4(b)
支 え な いo
で示 した ラ ンダ ム フ ァ イル読 み込 み プ ロ グラム で処
理 して も不 都 合 は生 じな い。 フ ァ イル の 外 見上 の違
4
8
0
0バ イ トであ った も
い は, ラ ンダム フ ァイル で は 6
の が ,BSAVEで は6
4
8
01バ イ トとな るこ とだ け で あ
る。 余 分 に 1バ イ トデ ー タが付加 され るが これ は フ
(
Fi
g.5
(
b) A par
to
fda
t
ar
e
a
d pr
ogr
am us
i
ng
BLOADco
mmand. BLOADi
sus
ual
l
y
us
e
dt
ol
oadamac
hi
nel
anguagepr
0gr
am, I
nt
hi
se
xampl
edat
ai
nt
he
f
l
oppydi
s
ki
sr
e
s
t
or
e
dt
ot
het
wodi
me
ns
i
onalar
r
ayK (
1
7
9,1
7
9
)
. Onl
y3
S
e
condsi
sr
e
qui
r
e
dt
oe
xe
c
ut
et
hi
sr
out
i
ne.
ァイルの終 りの印 1A (
1
6進 ) で あ る。実 際 の処理
で は,この 1バ イ トは全 く問 題 とな らない 。
BLOAD
で も この 1A はチ ェ ック して い な い よ うで あ る。 デ
ー タが フ ロ ッ ピー に記 録 され る順 序 は A (0, 0)
,
A (1, 0)
,A (2, 0)
,・
-- ,A (
1
7
8,1
7
9)
,
A(
1
7
9
,1
7
9)で 引 数 の最 初 を先 に変 化 させ る よ う
な順 であ るこ とを知 ってい るだ け で十分 で あ ろ う。
とが出 来, 二の行 で セ グメ ン トベ ー ス を指 定 して い
BSAVE で記 録 した配 列 デ ー タ は ラ ンダ ム フ ァイ
BASI
C内 で は配 列 テ- タ はセ グメ ン ドベ ー スの
る。
ル と Lて処 理 が 出来 るばか r
)で な く, 次数 の 異 る配
先頭 か ら ま とま って記 憶 され て い る。K (0, 0)
g.
5(a)で記 録 した 2
列 - の変 換 も可能 で あ る。Fi
はテ- タの先 頭 で あ る0210行 で フ ロ ッ ピー デ ィス ク
バ イ ト整数 2次 元 デー タ (
1
8
0×1
8
0) を 2バ イ ト隻
に記 録 す る。BS
AVEの後 に フ ァイル 名,デー タの始
9
0×9
0×4) に変 換 す るに は Fi
g.
数 3次元 デ ー タ (
まるア ドレス, 総 デ ー タバ イ ト数 を指 定 す る。 この
6で よい。 デ ー タの順 序 は M (0, 0, 0)
,M (1,
プ ロ グラムの実 行 時 間 は 3秒 で あ る。
0, 0)
,M (2, 0, 0)
, -,M (
8
8
,8
9
, 3)
,
Akita University
16
西
谷
200
210
師
次元 で は最 大 1
1×1
1×1
1×11個 の宣 言 が,倍 精度実
100 I dat
ast
or
i
ng i
not
herar
r
ay
llO ■
120 DEFI
NT M
130
忠
数 で は 1次元 で8
1
91
個 , 3次元 で は2
0×2
0×2
0
個の
bl
e2で は正 方行
宣 言 が可 能 で あ る こ とを示 す 。Ta
列 を主 と して考 えて い るが, 目的 に応 じて形 を変 え
Dl
M M(
79,
79,
3)
た宣 言 も可能 で あ るo例 えば単 精 度実数 で は 2次元
=
DEFSEG VARPTR (
M(
0,
0,
0)
,1)
BLOAD '
'
t
3:
KDATA.
M…,0
1
9×2
0
個 の宣 言 が可能 で あ る。勿論 ,配列 デー タ
で8
領域 のサ イ ズ を越 えない限 りにお いて はい くつ で も
宣 言 が可 能 で あ る。FEE (3)関数 に よって未使用
220 -
配列 デー タ領域 のサ イ ズ を確 認 しなが ら配列 を宣言
す れ ば よい。
Fi
g.6 Ane
xampl
eofs
t
or
i
ngt
wodi
me
ns
i
o
nal
da
t
a(
1
8
0×1
8
0
)i
nt
ot
hr
e
e di
me
ns
i
onal
.
ar
r
ay (
9
0×9
0×4)
5. 数値 演算 プ ロセ ッサ によ る高速化
パ ソ コ ンで使 われ て い る中央処理装 置 (
CPU)に
は- - ドウ ェアの数値 演 算 プ ロセ 、
ソサ を付加 す るこ
M (
8
9
,
8
9
,3)で あ るこ とに注意 す れ ば よいo す な
とに よって処理 の高速化 が図 れ る場 合 も多い。PC-
わ ち,引数 の最初 を先 に変化 させ るよ うな順 で あ る。
8
BASI
C(
MS
9
8
00シ u- ズ (NEC)上 で走 る N8
)
BSAVE,BLOAD を使 っ た記 録 方法 は欠点 もあ
DOS版 )で は数 値 演算 プ ロセ ッサ (
8
0
8
7
,8
0
2
8
7)
!
る。 欠点 は,む しろ BAS
I
Cの配列 の処理 方法 に問題
を付加 す れ ば四則演算 以 外の関数 (
EXP, TAN,
l
が あ る ともい え るO それ は, 一 つ の配列 の大 きさは
LOG,-・) の処 理 の高速化 が可能 とな って い る。
6
4キ ロバ イ トを越 え るこ とが出来 ない こ とで あ る。
BASI
C以 外 の FORTRAN,C な どで は四則演算 も
従 って,取 り扱 え る配列 の大 きさに制 限 が加 わ る。
数値 演算 プ ロセ ッサ を使 う ように指 定 で きるため,
Ta
bl
e2に は整数 , 実数 , 倍精 度実数 の配列 と して
か な りの速 度向上 が期待 で きる。N8
8BASI
Cで も四
宣 言 で きる最 大 の大 きさ を示 す。ただ し,配列 の添字
則演 算 を数値 演 算 プ ロセ ッサ を使 って処理 す れば高
はすべ てゼ ロか ら始 まる と して あ る。例 えば,単 精
速化 が実現 で きる。特 に配列 の デー タ を繰 り返 し使
度実数 の配列 と して,2次 元 で は最 大 1
2
7×1
2
7
個 ,4
って演算 を行 う場合 には時 間 の短 縮化 の効 果 が大 き
Tabl
e 2 M axi
mum array numberi
nt
hes
t
at
ementofBASI
C.
Di
m ensi
on
Vari
abl
es
1
2
3
4
I(
32766)
l(
180,180)
l(30,30,30)
t(12,12,12,12)
Si
ngl
e
Preci
si
on
S(16382)
S(126,126)
S(24,24,24)
S(10,10,10,10)
Doubl
e
Preci
si
on
D(
8190)
D(89,89)
D(19,19,19)
D(8,8,8,8)
l
nteger
Akita University
物理 探 産 にお け るテ一 夕処理 の速 度 向上 につ い て
く現 れ る. しか し, 必 ず しも処 稚 速 度 が向上 す る場
Cで使 ってい
合 ばか りで は ない。 それ は, N88BASI
る数値 表現 と, 数 値 演算 プ ロセ ッサ が使 って い る数
値表現形 式 が異 ってお り, 表現 形 式相互 の変換 時 間
が菅 に含 まれ るか らで あ る。数値 表現 の違 いは堀 川
(
1
986) に詳 しい
。
5.1 高速 フー リエ変換 の場合
周波数 解 析 で は高速 フー リエ変換 (FFT )はよ く
17
1010 ■FFT and l
NVFFT
1020 ■
1040 CLEAR &H80
1050 DEF SEG=SEGPTR(
2)
1060 BLOAD '
'
FFT98.
BI
Nl
l
1070 FFT=0 :I
NVFFT=3
1080 I
1090 N%=512 :N1% =N% ・1
1100 DI
M XR(
N1%)
, Xl
(
N1%)
1110 I
使 われ る基本 的 な操作 で あ る。FFT のアルゴ リズム
は数 多 く解 説 され て い る (
例 えば 日野 , 1977;大崎,
1
976な ど)
。 また BASI
C プログラム も種 々発表 され
2000
0
), Xl
(
0日
CALL FFT(N% , XR(
3000
CALL I
NVFFT(N%, XR(
0), Xl(0日
てい る (
例 えば野上 .杉 浦 , 1986な ど)
oFFT プ ロ
グラムの一例 を Fi
g.7に示 す。 この プ ロ グラム は共
FFTandl
NVFFTi
nBASI
C
4000 END
N% =512 :N1% =N% -1
DI
M XR(
Nl%)
,Xl
(
N1%),RR(
N1%)
,JJ(
N1%)
2000 ■
H FFT一
日
2010 F=0
2020 GOSUB 5000
・
- -■I-. .
.1I
- -I
_
Hl
NVFFTH3000 ㌧
3010 F=1
3020 GOSUB 5000
4000
4990
5000
5010
5020
5
030
5
040
5
050
5060
5
078
5
080
5
090
51
00
51
1
0
51
20
51
30
5
1
40
5150
Fi
g.8 FFT andl
nver
s
eFFT program us
i
ngmachi
ner
out
i
ne. FFT98.BI
N i
st
hename
of machi
ne r
out
i
ne wri
t
t
en by Kyododens
hi(
1983)
.
同電 子 (19821か ら引用 した BASI
Cサ ブ ル ー チ ン
で あ る。得 られ る結果 は有 限 フー リエ係数 で あ る。
逆 FFT 35分
処理 時 間 はサ ンプ ル数 512で FFT33分,
(CPU80286, 8MHz)必要 で あ った。BASI
Cの
共 同電 子,
処理 を機 械語 でプ ロ グラム した FFT98 (
FOR l
=OTO N% 11
RR(
り=0:JJ(
り=0
FOR J=OTON% -1
F
l
=2★3.
14159'l★J/N%
cc=COS(
R):SS=引N(
R)
1
F F<>O THEN SS=・
SS
l
)+ XR(
J)'CC +Xl
(
J)'SS
RR(
[
)=F
I
R(
(
J)'CC
JJ(
I
)=JJ(
I
)-XR(
J)▲SS + Xl
NEXT J
NEXT 1
l
F F=O THEN RETURN
IDFTr
et
ur
n
FOR l
=OTO N% -1
り /N%
RR(
り=RR(
JJ(
I
)=JJ(
l
)/N%
NEXT
RETURN
■l
NVDFTr
et
ur
n
Fi
g.7 FFT andl
nver
s
eFFT pr
ogram i
nBASI
C.
Li
nes f
rom 5000 t
o 5150 ar
e ext
ract
ed
f
r
om us
er'
smanualofKyododens
hi
(
1982)
.
1983) で は同一処理 を約 1秒 で実行 す る。使用方 法
を Fi
g.8に示 すO機械 語 で は数 値演 算 プ ロセ ッサ を
を効率 的 に使 い,処理 を行 って い るため高速化 か可
能 とな って い る。
5.2
地 形補 正処 理 の場合
重 力 の地 形補正計 算 を例 に とって高速 化処理 を考
察 す る。 パ ソ コ ンに よる重 力 の地 形補正 計 算 は西 谷
ほか (1988) で述 べ られ て い る。 この 中 で実 際 に使
って い る手法 を具体 的 に説 明す る。 なお, 補正 計 算
に使 用 す る約 250m 間 隔 の 地 形 標 高 メ ッシュデー タ
NA, NB, NC の詳細 は西 谷 ほか (1
9881 を参照 さ
れた
い0
5.2.1 BASI
C に よ る地 形補 正
地 形補正 は重 力探査 で使 う補正 の一 つ で, 観測位
置 と同園 の地 形 との高 度差 か ら補正 量 を求 め る補正
Akita University
18
河
谷
㌧
=
・
一
・
・
一
一
・
・
・
一
一
日
H
t
H
H
.
・
I
-
1000
1010I Ter
r
ai
ncor
r
ect
i
on
lO30
1110 DEFDBL A・
H,0・
Z
l120 DEFI
NT I
N
1140 Dl
M NB(
159.
159)
■Meshdat
af
orNB zone
l190 Dl
N FLAT(
500)
,FLNG(
500)
'Mi
nut
escoT
T
I
P1
1200 DM HI
TE(
500)
'Hei
ght(
m)
1240 Dl
M FLTM(
500)
.Y cor
np・i
n1/
200,
000maP
1280 DI
M FLAT(
500)
,PLNG(
500)
1300 DI
M DAX(
500)
,DAY(
500)
'Locat
i
oni
nX・
Y
131O Dl
M I
EAX(
500)
,l
EAY(
500)
'Locat
i
oni
ndl
m1
1350 G=,
006672#
'Gr
avi
t
yconst
ant
6390 l
CALC.
NB
6410 DAY(
K)=FLTM(
K)
▲
2#十40#
6420 DAX(
K)=FLNG(
K)
◆10#/7・
5#+40#
6430 I
EAY(
K)=l
NT(
DAY(
K)・・
5#+・
375N)
6440 1
EAX(
K)=l
NT(
DAX(
K)・1
5#・・
375#)
6450 ■
6460 PLT =PLAT(
K)/10#
6470 PLG =PLNG(
K)/10#
6480 1
SXMI
N =I
EAX(
K)Idol(
I
EAX(
K) MOD 2)
6490 1
SYMI
N =l
EAY(
K)1401(
l
EAY(
K) MOD 2)
6500 l
SXMAX =l
EAX(
K)+40+16510
(
l
EAX(
K)HOD 2)+2★
(
l
EAX(
K)
=120)
1
SYNAX =l
EAY(
K)+40+ll
(
l
EAY(
K)MOD 2)・2★(
l
EAY(
K)
=120)
6520 ■
6530 I
UXMI
N =l
EAX(
I
()Ilo
6540 1
UYMJ
N =I
EAY(
K)Ilo
6550 l
UXl
lAX =l
EAX(
K)◆10◆
(
ほAX(
K)
=80)■(
l
EAX(
K)
=120)
6560 l
UYMAX =I
EAY(
K)+10+
(
t
EAY(
K)
=80)+(
l
EAY(
K)
=120)
6570 '
6580 TNt
l
=OX
6590 FOR l
≡l
SYMI
N TO I
SYMAX
6600
FOR J=l
SXMI
N TO l
SXMAX
6610
6620
6630
L
F (
l
';l
UYNI
N AND l
・;l
UYNAX AND
J>;l
UXMI
N AND J<=I
UXNAX)THEN 6770
Dl
三1
DJ=J
6640
X ≡(
DAX(
K卜 DJ一・
375#)
●
PLG
6650
X ≡X ▲X
666O
Y =(
DAY(
K)・Dl-・
375#)
'
PLT
6670
Y =Y ▲Y
6680
R =SQR(
X 十Y)
6690
FLOOR=PLG'
PLT
67(
川
HEI
GHT=NB(
J,
I
)
6710 ■
6720
HEI
GHT≡HEI
GHT・HI
TE(
K)
6730
HEI
GHT=HEl
GHT/R
6740
HEI
GHT=HEI
GHT'
HEI
GHT
6750
DHOSl=1#/
R'
(
l#・
1#/
SQR(
l#+HEI
GHT)
)
6760
TNt
l=TNB+DHOSl
6770
NEXT J
6780 NEXT l
6790■
6800 TNBDG;TNB'
FLOORtDNCTY▲
G
Fi
g.9
A
part of terrai
n correcti
on i
n BA SIC
program . Densi
ty (
DN CT Y )i
s gi
ven i
n
other part
. T N BDG
忠
帥
手段 であ る。密 度 は適 当 に与 えて計 算 を行 う。以前
は地 図上 に観 測位 置 をプ ロ ッ トして, 一定 距離離 れ
た高 度 を等 高線 か ら読 み取 る作 業 を繰 り返 し行 い,
地形 補正 を行 って いた。 二の作業 は 1日に数 点程度
と効 率 が よ くなか った。 二の処理 をパ ソコ ンで行 う
7
)
例 を Fig・9 に示 す。実 際
時 の BA SIC プ ロ グラムC
の処 理 で は補 正 領 域 を 5 つ の ソ- ン (PEN T A ,
T REE, N A , N B , N C
lに分 け各部 分 か らの寄 与
Pの N B 部 分 の処理
を加 え合 わせ るo Fig,9 は この L
を示 して あ る。
1140- 1350行 は配列
と定数 の宣 言部
であ る。 6410- 6560行 で は補正 量算 出の ための前準
備 で,補正 量 は6580- 6780行 で求 め て い る。得 られ
た結果 は変数 T N BDG に ミリガル単 位 で得 られ る。
処理 時 間 は 1観 測点 当 た り5つ の ソー ンすべ ての合
5 - 6 分 で あ る。
計で
5.2.2
BA SIC
1000
BASI
C
の一部機 械 語化 に よ る地 形補正
て行 って いた繰 り返 し処理 言 1
算部 分 を数
I
・
・
・
・
一
一
=
I
・
・
I
I
一
一
一
1
1010'Ter
r
al
nCOr
r
eCt
r
Onusi
ng8087
1120
1130 CLEAR 310
'
I
I
I
・
・
・
I
I
1140
1150
DEFDBL AI
M,0・
Z
DEFI
NT トN
l170
1220
1230
1270
1310
1330
1340
Dl
M
DI
M
DI
M
DI
N
DI
M
DI
M
DI
M
NB(
159,
159)
'Meshdat
af
orNB zone
FLAT(
500)
,FLNG(
500)
HI
TE(
500)
'Hel
ght(
m)
FLTh
f
(
500)
■Y cor
np.i
n 1/
200,
000ma
FLAT(
500)
,PLNG(
500)
DAX(
500)
,DAY(
500) 'Locat
l
0ni
nX・
Y
I
EAX(
500)
,l
EAY(
500) 'Locat
I
Oni
ndi
m,
1410'
1420 DEFSEG =SEGPTR(
2)
1430 BLOAD '
'
T1218D.
COM"
1440■
5640
SUB=0
5650 CALL SUB(DAX(
K)
,DAY(
K)
,PLG,PLT,TNADG,
JARA(
K)
,NA(
0,
0),HAS(0,
0),NAN(0,
0
)
,
NAW(
0,
0),NAE(0,
0
)
,NC(
0,
0)
,J
SXMl
N,l
SYMI
N,
l
SXMAX,I
SYHAX,l
UXMI
N,I
UYMI
N,l
UXMAX,
I
UYMAX,l
EAX(
K)
,I
EAY(
K)
,TNBDG,TNCDG,
NB(
0,
0),DNCTY,HI
TE(
K)
,PLNG(
K)
,PLAT(
K)
,
FLNG(
K)
,FLT叫 K))
5660 ■
Fi
g.10
M ai
n partofcal
cul
atl
ng correcti
on va
l・
ue i
n N B zone, The m achi
ne l
anguage
i
s the correctl
On
routi
ne l
S Stored i
n the "T 1218D .COM "
val
ue i
n mi
l
l
i
gal for N B zone.
fi
l
e. T hi
srouti
necal
cul
atenotonl
yNB
Cates an observati
on
K indipoi
nt num ber
.
zone but N A and N C zones.
Akita University
19
物理 探 査 にお け るテー タ処 理 の速度 向上 につ い て
FI
Nl
T
T1218D.
ASH
Cal
l
i
ng sequencei
n N88BASI
C(
MS-DOS)
CALLtDAX(
K)
,DAY(
K),PLG,PLT,TNADG,JARA(
K)
,
+78
74
70 6C 68
64
0
)
,HAS(
0,
0
),NAN(
0,
0
)
,N九w(
0,
0
)
,
NA(
0,
60
5C
58
54
NAE(
0,
0
),NC(
0,
0),lSXMIN,lSYMIN,lSXMAX,
50
4C
48
44
40
1
SYMAX,F
UXMM ,l
UYMI
N,f
UXMAX,l
UYHAX,
3C
38
34
30
2C
I
EAX(
K)
,l
EAY(
K),TNBDG,TNCDG,NB(
0,
0
)
,
28
24
20
1C
18
,
DNCTY,HI
TE(
K),PLNG(
K),PL
.
AT(
K),FLNG(
K)
14
10
0C
I
)
8
+04
FLTM(
KH
+00
CD SEGMENT
ASSUME CS:
CD
Cu
CALL CALCULATI
ON
;TNB(
=0)
;H付E(
K)
;PLT
;PLC
MOV CXSAVE,CX
MOV CX,l
SXCNT
;CXSAVE <- CX
;CX くH l
SXCNT
l
NLOOP :
MOV Sl
,I
l
,l
UYMI
N
CMP S
JNGE KEI
SAN
S
l
く一
・l
i
fl
<I
UYMI
N
t
henKEJ
SAN
i
fl
>I
UYMAX
t
honKEI
SAN
DX くH J
i
fJ<l
UXMI
N
t
henKEI
SAN
i
fJ<=I
UXMAX
,l
UYMAX
CMP Sl
JNLE KEI
SAN
NOV DX,J
CMP DX,l
UXMI
N
JNGE KEI
SAN
CMP DX,l
UXMAX
JLE l
LPI
NC
KEl
SAN :
t
henpass
ADD
LES Dl
, DWORD PTR NBJI
MOV AX,WORD PTR ES:
l
Dl
】
MOV Nt
)JI
,AX
;NB(
J,
i
)
CMP AX,0
JL HI
NUS
;i
fN1
3(
J,
I
)
<O
CALL NE
)
PLUS ; t
henMI
NUS
JMP I
LPI
NC
2
7
S .: O。。。
o
DO
DQ
DQ
DW
DQ
州 州 oo。H oo。H oo。H oo。" oo。" oo。H 州 ㍊
‡Tl_03
DNCTYS
HI
TEK
NBJI
TNBDG
0。66 375
STG
DQ
ST_375
DQ
‡T2
DW
DAX
DQ
DAY
DQ
NB l
SXMJ
N i DW
NDJI
ADD
DW
I
SXCNT
DW
CXSAVE
DW
I
DW
J
DW
PLG
DO
PLT
DQ
DNCTY
DO
FLDZ
FLD HI
TEK
FLD PLT
FLD PLG
WAI
T
OUTLOOP :
N,
i
)addr
ess
NB(
r
SXMJ
NB(
J,
l
)of
f
setaddr
ess
I
SXMAX ・l
SXMI
N +1
MI
NUS :
CALL NBMI
NUS
I
LPI
NC :
ADD J,1
ADD NBJr
ADD,2
LOOP I
NLOOP
;
;H汀 E(
K)
NB(
J,
I
)val
ue
CALCULATJ
ON :
POP BP
MOV CX,CXSAVE
ADD I
,1
MOV AX,J
SXMI
N
MOVJ,AX
MOV AX,NB_l
SXMI
N i
ADD AX,320
MOV NB」SXNI
N」,AX
MOV NBJL
ADD,AX
;J=l
SXNI
N
;NB(
l
SXMl
N,
i
)add.
;NB(
l
SXMF
N,
i
◆1)add.
;NB(
J,
l
)addr
ess
LOOP OUTLOOP
3)
FMUL ST,ST(
FMULP ST(
1)
,ST
FMUL ‡TG
WAl
T
Fi
g・ll(
a) A partofassem bl
e program ofT 1218
;l=l◆1
PLG*
TNE
)
PLT◆PLG★
TNB
PLT'PLG'
TNE
rG
LES Dl
,DWORD PTR DS:
20Hl
BXl
FST OWORD PTR ES:
【
DH
WAJ
T
;TNBDG =PLT'PLG'
TNB'G
D.A SM . V ari
abl
es are defi
ned at
thebegi
nnl
ng Ofprogram . Thesenu一
m eri
c val
ues are now zero,but they
Fi
g.ll(
b) M ai
n partofterrai
n correcti
on ofN B
zone. A nothercal
cul
ati
on al
gorl
thm
are rew ri
tten i
nsi
de t
hi
s program .
i
susedi
fterrai
ndatai
snegati
ve. The
T he form atofnum eri
cconstanti
n 8087
partoftreatl
ng negati
ve terrai
n data
i
s di
fferentfrom that of N 88BA SIC.
arenotshow ni
n BA SIC program (
Fi
g.
The parts of form at conversl
On are
9)
.
om i
tted.
T N BDG .
The correcti
on val
ue i
sstored i
n
Akita University
20
西
谷
値 演 算 プ ロセ ッサ用 に書 き換 え,
BASI
Cか ら呼 び出
I
C部 の プ ロ グラム を Fi
g.
す方 向 に切 り換 えた。BAS
1
0に示 す 。BASI
C部 分 へ は機械語 プログラム をコール
T1
2
1
8D.
COM 」
す るだ けで あ る。機 械語 ファイル は 「
の名前 で記 録 して あ るo T1
21
8D.COM で は NA,
NB,NC ゾ- ン計 算 処 理 をすべ て含 んで い るo
BASI
Cか ら機械語 ルーチ ンに定数 を引 き渡 す ため に
8
0
0シリー ズの N
ス タ ッ ク を利 用 して い る。PC-9
8
8BASI
C (MS-DOS瓶 )の数値 の 内部 表現 と,数
値 演算 プ ロセ ッサ の数 値 の内部 表現 が異 って い る こ
とは前 に述 べ た。 この表現 形 式 の変 換 は機械 語 ル ー
チ ン中 で実行 され てい るが, 説 明 を簡略化 す るため
表現 形 式 の変換 プ ロ グラム は省略 す る。Fi
g.
11に示
す リス トは MS-DOSのマ ク ロアセ ンブ ラで受 け付
け る8
0
8
7命令 を使 って記述 してあ るoFi
g.
l
l(a)は
NBPLUS :
FLD DAX
FI
SUB J
FSU8 ‡T_375
FMUL ST,ST(
1)
FMUL ST,ST(
0)
FLD DAY
FI
SUB l
FSUB ST_375
FMUL ST,ST(
3)
FMUL ST,ST(
0)
FADDP ST(
1)
,ST
FSQRT
FI
LD NBJl
FSUB ST,ST(
4)
FDI
V ST,ST(
1)
FMUL ST,ST(
0)
FLDl
FADDP ST(
1)
,ST
FSQRT
FLDI
師
NBMI
NUS :
FLD
DAX
FI
SUB J
FSUB
FMUL
;DAX(
KトJ
‡T_375
,
ST,ST(
1) ;(
)
`PLG
FMUL ST,ST(
0) .
,l
FLD
DAY
r'2=X・2
FJ
SUB L
FSUB ST_375
FHUL ST,ST(
3)
FMUL ST,ST(
0)
FADDP ST(
1),ST
FSQRT
FI
LD NBJl
・
J
;DAY(
K)
,
;(
)
●PLT
l
H2=Y人2
;【
;X∧2 + Y人2
;SORT(
X∧2+Y∧2)
=R
;NB(
J,
I
)
FSUB ST,ST(
4)
FDI
V ST,ST(
1)
FMUL ST,ST(
0)
FLDl
;NB(
J,
J
)・HI
TE(
K)
I
)
HI
TE(
K)
)
/
∩
;(
NB(
J,
FADDP ST(
1),ST
FSQRT
FLDl
]
'
'
2
;[
,
;1+ 【 】
∧2
;SORT(
1+I 】
∧2)
,
FDI
VRP ST(
1),ST ;1/
SQR丁目
FLDI
;DAX(
K)
・
J
;(
;[
)
'PLG
"2=X^2
)
;DAY(
K)
I
;(
)
★PLT
;l
I
"2=Y^2
;X∧2 + Y人2
;SORT(
X∧2+Y∧2)
=R
;NB(
J,
I
)
;(
NB(
J,
りH汀∈(
K)
)
/
R
;【
rt
2
,
;1◆【 I
∧2
;SORT(
1+( ]
^2)
FDI
VRP ST(
1)
,ST ;1/
SORT()
FLDI
FSUBRP ST(
1)
,ST
FDI
VRP ST(
1)
,ST
FMULDNCTY
FADDP ST(
4)
,ST
WAI
T
RET
忠
;1・1/
SQR丁目
;(
1・
1/
SQRTO)
/
R
;β★
(
1・
1/
SORT(
)
)
/
R ≡DHOSI
;TNB =TNB +DHOSI
Fi
g.l
l
(
C
) Subr
out
i
neNBPLUS i
scal
l
e
df
r
om
mai
npr
ogr
am i
ft
e
r
r
ai
ndat
ai
spos
i
t
i
ve・Thi
sr
out
i
nei
se
qui
val
e
ntt
ot
he
l
i
ne
s6
6
2
0
-6
7
6
00
fBASI
Cpr
ogr
am
(
Fi
g.9
)
.
FSUBRP ST(
1),ST ;1・1/
SOR丁目
FDI
V ST,ST(1)
;(
)
/
R
FMUL DNCTYS
,
FADDP ST(
5),ST
FLD ST(
3)
FDI
V ST,ST(
1)
FMUL ST,ST(
0)
FLDI
;TNB =TNE
)+ DHOSl
l
;H汀 E(
K)
;HI
TE(
K)
/
R
;【
】
‥2
FADDP ST(
1),ST ;1+ 【 】∧2
FSQRT
;SORT(1■ 日 人2)
FLDI
FDI
VRP ST(
1)
,ST ;1/
SORT( )
FLDI
FSUBRP ST(
1),ST ;1・1/
SQR丁目
)
/
R
FDI
VRP ST(
1),ST ;(
1・1/
SORT()
FMUL ‡Tl_03
,
FADDP ST(
4),ST ;TNB =TNB + DHOSl
2
WAI
T
RET
Fi
g.l
l
(
d) Subr
out
i
neNBMI
NUSi
sc
al
l
e
df
r
o
m
mai
npr
og
r
am i
ft
e
r
r
ai
ndat
ai
sne
ga
t
i
ve
. Thet
e
r
r
ai
nc
or
r
e
c
t
i
onval
ue
s
ar
et
hes
um oft
hec
ont
r
i
but
i
ono
fa
mat
e
r
i
alwi
t
hahe
i
ghtmeas
ur
e
df
r
om
s
eal
e
ve
landt
hatofahe
i
ghtme
as
ur
e
d
be
l
ows
e
al
e
ve
l
. Cal
c
ul
at
i
onsar
epe
r
f
or
me
das
s
umi
ngt
hatmat
e
r
i
al
sbe
l
ow
z
e
r
ol
e
ve
lhaveal
e
s
sde
ns
i
t
yof1
.0
3
,
Thi
ss
ubr
out
i
net
r
eat
st
hi
spr
oc
e
dur
e
.
Ⅶ
周可 .
一号亨 . ≦
Akita University
21
物理探 査 にお け るデー タ処 理 の速 度 向上 につ いて
機械語 の ア セ ンブル ■
)ス トの最初 の部 分 を示 して あ
の プ ロ グラム を出来 る限 り速 く処理 す る方法 を考 え
るD必要 な定数 領 域 を最 初 に確保 して い るO定数 で
て きた。BASI
Cコ ンパ イラー な どの コ ンパ イル言語
oとなっている ところは BASI
Cか ら呼 び出 した時 に
を使 う方 法,機 械語 セ ーブ, ロー ドな どの命令 を使
値が記録 され る。Fi
g・
1
1(b)は NB ソー ンの計 算処
ってフ ロ ッ ピー デ ィス ク との デー タ転 送 を高速化 す
理部分 で あ る。計 算処理 はほ とん ど掛 け算 とその和
BASI
Cプ ロ グラムの一
る方法 は簡便 で使 いや す いo
であ る08
0
8
7内部 の レジス タ を使 って和 を求 め, 必
部 を機械 語 で置 き換 え る こ とに よって処理 速 度 は大
要な標 高 テー タ を得 るため に配列 の ア ドレス計 算 も
幅 に改善 され,遅 い BASI
Cの イ メー ジは一掃 され
行 って い るoBASI
Cプ ロ グラム (Fi
g・9)には示 し
るO数 値 演算 プ ロセ ッサ を使 えば さ らに処理 の効率
ていないが, 標 高 デー タが正 の とき と負の時 とで は
は増大 す る。観 測現 場 で十二分 に活用 で きるプ ロ グ
異った処 理 を行 って い る。標 高 デー タが正 の ときに
ラム とす るに は この一部 機 械語 化 は必須 の手段 とな
はラベ ル NBPLUSの処理 を,負 の ときに は NBMI
-
るであ ろ う。
NUSの処理 を選 ぶ ようになっている。最 後 にTNBDG
に補正 量 を記 録 して い る。Fi
g.
l
l(C)は標 高 デ- タ
文
0
87内の レジス タ とメモ リ
が正 の時 の処理 で あ る。8
← との デー タ転送 を出来 る限 り少 な くす る よ うに努
め,処理 の速 度 向上 に努 め て い る。Fi
g・
1
1(d)は標
高テ一 夕が負の時 の処理 で あ るO海面下 の地形 の場
合 には, 海面下 の物 質 の密 度 が, 与 えた密 度 よ りも
1.
0
3
小 さい と して補正 量 を求 め れ ば よい。
Fi
g.
ll
(d)
では与 えた密 度 か ら1.
0
3を引 いて補正 量 を求 め て お
0
3の密 度 で補正 量 を
き, 海面上 に出 て い る部分 を1.
求め, 両 者 の和 を とって地 形補正 量 とす る方法 を と
献
大崎順 彦 (
1
9
7
6) :地 震動 の スペ ク トル解析 入 門,
6
0p.
鹿 島 出版会 .東京 .2
共 同電子 株 式会社 (
1
9
8
2) :浮 動 小 数 点 マ シ ン語
FFT PC18
0
01
用, ユ ーザ ー ズマ ニ ュアル, 共 同
電子 (
秩)
, 東 京. 1- 6.
共 同電 子株 式会社 (
1
9
8
3):高速 マ シン語 FFT演算
8Ve
r2.
0操 作 マ ニ ュア ル,共 同
パ ッケー ジ FFT9
電子 (
秩 ) 東京 , 1- 7.
西 谷思 師 ・菊 池貴 市 ・長 崎康 彦 (
1
9
8
8) :パ ー ソナ
ってい る。
処理 時 間 は 1観 測 点 当 た り 5つのゾー ンす
ル コ ン ピュー タに よる重 力 の地 形補正 計算, 秋 田
へての合計 で標 高 デ ー タがすべて正 の場 合 8秒,すべ
.
5
3,
大学 鉱 山学部 附属 資源地 学研 究施 設報告 ,no
2
秒 で あ る。
BASI
Cの みの場 合 の約 4
0
倍の
て負の時 1
速 さか得 られ た こ とにな る。
BASI
Cの処 理 をパ ソ コ
ン上 で走 る FORTRAN (
マ イクロソフ ト)用 に書 き
0秒 の処理 時 間 を必要 とす る。
換 えて実行 す る と約 2
FORTRAN の 万 が 速 くな るだ ろ う との予 測 は裏 切
られ る。
BASI
Cの一 部 を機械 語 化 す るこ との効 果 は
極め て大 きい こ とを示 す好例 で あ ろ う。
6. ま
と
め
野 外 で物理 探 査 を 目的 と した観 測 を行 う場 合, パ
ー ソナ ル コ ン ピュー タ を使 えば便 利 で あ るが, 処理
C
時間 が問題 とな る。 本論文 で は使 いや す い BASI
7
7
-85
.
日本電 気株 式 会社 (
1
9
8
6) :N8
8- 日本語 BASI
C
(
8
6)
(MS-DOS股 )4.
0】
)フ アレンスマニ ュアル.
8
5p.
日本電 気 (
秩)
, 東京 ,3
野上 道 男 ・杉 浦芳夫 (
1
9
8
6) :パ ソコ ンに よる数理
7
5p.
地理 学 演 習.古今 書 院 .東 京 ,2
日野幹雄 (
1
9
7
7) :スペ ク トル解 析 .朝 倉書店 .東
0
0p.
京 ,3
堀川 明 (
1
9
8
6) :8
0
8
7マ シ ン語 プ ロ グラム集 (上
2
-45
.
巻)
, 誠文堂 新光 社, 東京 ,3
Mot
or
ol
al
nc.(
1
9
8
0
):MC6
8
4
8
8Ge
ne
r
alpur
pos
e
i
nt
e
r
f
ac
eadapt
e
r[
GPI
A]Us
e
r
'
sManual
. Mot
o
r
ol
al
nc.
,1
1
5
p.
Fly UP