Comments
Description
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.