April 25, 2001 onl8VT: デスクトップ Solaris 7 cc ドライバのテスト --- スタンドアロン・システム上での cc ドライバの実行、スピード測定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (http://www-online.kek.jp/~inoue/CAMAC/ onl8v1-sol7/Desktop/camac-step08.txt) 高エネルギー加速器研究機構 素粒子原子核研究所 物理、オンライングループ 井上 栄二 (1). 現状確認 (A). SPARC CPU-5V、Solaris7版の配布キットを作成した。 (B). onl8v1、デスクトップSolaris7の下で、リスト処理可能バージョンの 配布キットを使って動作テストをやった。 (2). ここでやるべきこと onl8v1、デスクトップSolaris7の下で、シングルアクション、割り込み、 ブロック転送、およびリスト処理を実行した時のデータ転送速度を調べる。 (3). データ転送速度測定プログラムの修正およびコンパイル (3-1). テスト・プログラムを入手する (3-1-1). シングルアクションのテスト用プログラムの入手 onl8v1[40]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list onl8v1[41]% ls -l total 0 onl8v1[42]% rcp onlsun1:/export/home/onlsun1/inoue/workstation/onl50t/Solaris2.6/Desktop/onl50t-camac-speed.tar.gz . onl8v1[43]% gzip -d onl50t-camac-speed.tar.gz onl8v1[44]% tar xvf onl50t-camac-speed.tar x camasm, 0 bytes, 0 tape blocks x camasm/Makefile, 448 bytes, 1 tape blocks x camasm/asm_code.h, 11251 bytes, 22 tape blocks x camasm/camasm, 20390 bytes, 40 tape blocks x camasm/camasm.c, 24762 bytes, 49 tape blocks x camasm/err_code.h, 1646 bytes, 4 tape blocks x examples-Solaris2.x, 0 bytes, 0 tape blocks x examples-Solaris2.x/Makefile, 4566 bytes, 9 tape blocks x examples-Solaris2.x/camtest1c.c, 2602 bytes, 6 tape blocks x examples-Solaris2.x/camtest2c.c, 3548 bytes, 7 tape blocks x examples-Solaris2.x/camtest31c.c, 2927 bytes, 6 tape blocks x examples-Solaris2.x/camtest4c.c, 2221 bytes, 5 tape blocks x examples-Solaris2.x/camtest3c.c, 1999 bytes, 4 tape blocks x examples-Solaris2.x/camtest4.asm, 3293 bytes, 7 tape blocks x examples-Solaris2.x/camtest41c.c, 2178 bytes, 5 tape blocks x examples-Solaris2.x/camtest4dma.asm, 718 bytes, 2 tape blocks x examples-Solaris2.x/camtest4etc.asm, 1821 bytes, 4 tape blocks x examples-Solaris2.x/camtest12c.c, 1435 bytes, 3 tape blocks x examples-Solaris2.x/camtest4int.asm, 699 bytes, 2 tape blocks x examples-Solaris2.x/camtest11c.c, 1459 bytes, 3 tape blocks x examples-Solaris2.x/camtest4single.asm, 540 bytes, 2 tape blocks x examples-Solaris2.x/camtest13c.c, 1469 bytes, 3 tape blocks x examples-Solaris2.x/camtest14c.c, 1453 bytes, 3 tape blocks x examples-Solaris2.x/camtest5c.c, 2036 bytes, 4 tape blocks x examples-Solaris2.x/camblock_measure1.c, 4902 bytes, 10 tape blocks x examples-Solaris2.x/camblock_measure.c, 3852 bytes, 8 tape blocks x examples-Solaris2.x/camsingle_measure.c, 2340 bytes, 5 tape blocks x examples-Solaris2.x/test.c, 4748 bytes, 10 tape blocks x examples-Solaris2.x/camtest10c.c, 1433 bytes, 3 tape blocks x examples-Solaris2.x/camsingle_measure1.c, 45398 bytes, 89 tape blocks x examples-Solaris2.x/camtestc.c, 3250 bytes, 7 tape blocks x examples-Solaris2.x/cmdump.c, 1493 bytes, 3 tape blocks x examples-Solaris2.x/cregdump.c, 1992 bytes, 4 tape blocks x examples-Solaris2.x/creset.c, 999 bytes, 2 tape blocks x examples-Solaris2.x/camint_measure.c, 3937 bytes, 8 tape blocks x examples-Solaris2.x/camint_measure1.c, 5249 bytes, 11 tape blocks x examples-Solaris2.x/camtest11c.o, 1728 bytes, 4 tape blocks x examples-Solaris2.x/Makefile.org, 4262 bytes, 9 tape blocks x examples-Solaris2.x/camsingle_measure1.c.org, 2456 bytes, 5 tape blocks x examples-Solaris2.x/camint_measure1.c.org, 3808 bytes, 8 tape blocks x examples-Solaris2.x/camsingle_measure1, 76304 bytes, 150 tape blocks x examples-Solaris2.x/camint_measure1.log, 607 bytes, 2 tape blocks x examples-Solaris2.x/camint_measure1, 17820 bytes, 35 tape blocks x examples-Solaris2.x/camint_measure1.c.step01, 4591 bytes, 9 tape blocks x examples-Solaris2.x/inoue.c, 717 bytes, 2 tape blocks x examples-Solaris2.x/inoue, 7044 bytes, 14 tape blocks x examples-Solaris2.x/camint_measure1.c.step02, 4748 bytes, 10 tape blocks x examples-Solaris2.x/out, 5227 bytes, 11 tape blocks x examples-Solaris2.x/camint_measure1.log1, 269 bytes, 1 tape blocks x examples-Solaris2.x/camint_measure1.log2, 6174 bytes, 13 tape blocks x examples-Solaris2.x/camint_measure1.log3, 6826 bytes, 14 tape blocks x examples-Solaris2.x/camint_measure1.log5, 7069 bytes, 14 tape blocks x examples-Solaris2.x/camint_measure1.log4, 6883 bytes, 14 tape blocks x examples-Solaris2.x/camint_measure1.c.step03, 6036 bytes, 12 tape blocks x examples-Solaris2.x/camint_measure1.log6, 8071 bytes, 16 tape blocks x examples-Solaris2.x/camint_measure1.c.step04, 5249 bytes, 11 tape blocks x examples-Solaris2.x/camint_measure1.log7, 6662 bytes, 14 tape blocks x examples-Solaris2.x/camblock_measure1.c.org, 3859 bytes, 8 tape blocks x examples-Solaris2.x/camsingle_measure1.log, 3705 bytes, 8 tape blocks x examples-Solaris2.x/camblock_measure1.log1, 323 bytes, 1 tape blocks x examples-Solaris2.x/camint_measure1.log8, 6611 bytes, 13 tape blocks x examples-Solaris2.x/camblock_measure1.c.step01, 4243 bytes, 9 tape blocks x examples-Solaris2.x/lpr, 0 bytes, 0 tape blocks x examples-Solaris2.x/camblock_measure1.c.diff, 1367 bytes, 3 tape blocks x examples-Solaris2.x/camsingle_measure1.c.Oct-21.98, 2718 bytes, 6 tape blocks x examples-Solaris2.x/camblock_measure1.c.Oct-21.98, 4885 bytes, 10 tape blocks x examples-Solaris2.x/t1.c, 5481 bytes, 11 tape blocks x examples-Solaris2.x/t1, 10560 bytes, 21 tape blocks x examples-Solaris2.x/camsingle_measure1.c.Oct-27.98, 2718 bytes, 6 tape blocks x examples-Solaris2.x/camsingle.sh, 313 bytes, 1 tape blocks x examples-Solaris2.x/camsingle.sh.log2-500, 19707 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log3-500, 19579 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log4-500, 19577 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log5-500, 19705 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log1-1000, 19507 bytes, 39 tape blocks x examples-Solaris2.x/camsingle_measure1.c.Oct-28.98, 24344 bytes, 48 tape blocks x examples-Solaris2.x/camsingle.sh.log1-500, 19577 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log2-1000, 19663 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log3-1000, 19532 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log4-1000, 19798 bytes, 39 tape blocks x examples-Solaris2.x/t2, 19132 bytes, 38 tape blocks x examples-Solaris2.x/camsingle.sh.log5-1000, 19664 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log6-1000, 19658 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log7-1000, 19789 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log8-1000, 19792 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log9-1000, 19792 bytes, 39 tape blocks x examples-Solaris2.x/camsingle.sh.log10-1000, 19795 bytes, 39 tape blocks x examples-Solaris2.x/camblock.log1, 3334 bytes, 7 tape blocks x examples-Solaris2.x/camblock.log-old, 0 bytes, 0 tape blocks x examples-Solaris2.x/camblock.log-old/camblock_measure1.log, 4449 bytes, 9 tape blocks x examples-Solaris2.x/camblock.log-old/camblock_measure1.log1, 7253 bytes, 15 tape blocks x examples-Solaris2.x/camblock.log-old/camblock_measure1.log2, 7238 bytes, 15 tape blocks x examples-Solaris2.x/camblock.log-old/camblock_measure1.log3, 5746 bytes, 12 tape blocks x examples-Solaris2.x/camblock.log-old/camblock_measure1.log4, 5759 bytes, 12 tape blocks x examples-Solaris2.x/camblock.log-old/camblock_measure1.log5, 9306 bytes, 19 tape blocks x examples-Solaris2.x/camint_measure1.c-Jul.7.99, 5273 bytes, 11 tape blocks x examples-Solaris2.x/t2.c, 5997 bytes, 12 tape blocks x examples-Solaris2.x/t2.c-org, 6050 bytes, 12 tape blocks x examples-Solaris2.x/camint_measure1.c-bak-ok, 6031 bytes, 12 tape blocks x examples-Solaris2.x/camblock_measure1, 18196 bytes, 36 tape blocks x includes, 0 bytes, 0 tape blocks x includes/camlib.h, 1415 bytes, 3 tape blocks x includes/cc.h, 2748 bytes, 6 tape blocks x includes/cc_common.h, 2288 bytes, 5 tape blocks x includes/cc_config.h, 876 bytes, 2 tape blocks x includes/k2917.h, 4058 bytes, 8 tape blocks x includes/onpcux1-hp-rt, 0 bytes, 0 tape blocks x includes/onpcux1-hp-rt/camlib.h, 1086 bytes, 3 tape blocks x includes/onpcux1-hp-rt/camlib.h-diff, 2704 bytes, 6 tape blocks x includes/onpcux1-hp-rt/cc_common.h, 1730 bytes, 4 tape blocks x includes/onpcux1-hp-rt/cc_common.h.diff, 1730 bytes, 4 tape blocks x includes/onpcux1-hp-rt/cc_config.h, 604 bytes, 2 tape blocks x includes/onpcux1-hp-rt/cc_config.h-diff, 1668 bytes, 4 tape blocks x includes/onpcux1-hp-rt/cc_main.h, 510 bytes, 1 tape blocks x includes/onpcux1-hp-rt/ccmacro.h, 2430 bytes, 5 tape blocks x includes/onpcux1-hp-rt/ccreg.h, 2607 bytes, 6 tape blocks x lib, 0 bytes, 0 tape blocks x lib/Makefile, 2041 bytes, 4 tape blocks x lib/camlib.c, 9740 bytes, 20 tape blocks x lib/onpcux1-hp-rt, 0 bytes, 0 tape blocks x lib/onpcux1-hp-rt/Makefile, 464 bytes, 1 tape blocks x lib/onpcux1-hp-rt/camlib.c, 30581 bytes, 60 tape blocks x lib/forlib.c, 3289 bytes, 7 tape blocks x lib/camlib.h, 1415 bytes, 3 tape blocks x lib/cc.h, 2748 bytes, 6 tape blocks x lib/cc_common.h, 2288 bytes, 5 tape blocks x lib/cc_config.h, 876 bytes, 2 tape blocks x lib/k2917.h, 4058 bytes, 8 tape blocks x lib/camlib.o, 9516 bytes, 19 tape blocks x lib/forlib.o, 3468 bytes, 7 tape blocks x lib/libcamac.a, 13844 bytes, 28 tape blocks onl8v1[45]% onl8v1[64]% ls -l total 2060 drwxr-xr-x 2 inoue kek 512 Oct 27 1998 camasm/ drwxr-xr-x 3 inoue kek 2560 Jul 12 1999 examples-Solaris2.x/ drwxr-xr-x 3 inoue kek 512 Oct 27 1998 includes/ drwxr-xr-x 3 inoue kek 512 Oct 27 1998 lib/ -rw-r--r-- 1 inoue kek 1034752 Mar 28 11:24 onl50t-camac-speed.tar onl8v1[65]% (3-2). テスト・プログラムのソースチェックする (3-2-1). camasmディレクトリ中のファイルをチェック onl8v1[72]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/camasm onl8v1[73]% diff Makefile ../../CAMAC/FORCE-5V-sol7-list/camasm/Makefile onl8v1[74]% diff asm_code.h ../../CAMAC/FORCE-5V-sol7-list/camasm/asm_code.h 123d122 < 194a194 > onl8v1[75]% diff camasm.c ../../CAMAC/FORCE-5V-sol7-list/camasm/camasm.c onl8v1[76]% diff err_code.h ../../CAMAC/FORCE-5V-sol7-list/camasm/err_code.h onl8v1[77]% FORCE-5V-sol7-listキット中のcamasmディレクトリ下のファイルと同じである。 (3-2-2). includesディレクトリ中のファイルをチェック onl8v1[124]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/includes onl8v1[125]% ls -l total 28 -rw-r--r-- 1 inoue kek 1415 Oct 27 1998 camlib.h -rw-r--r-- 1 inoue kek 2748 Oct 27 1998 cc.h -rw-r--r-- 1 inoue kek 2288 Oct 27 1998 cc_common.h -rw-r--r-- 1 inoue kek 876 Oct 27 1998 cc_config.h -rw-r--r-- 1 inoue kek 4058 Oct 27 1998 k2917.h drwxr-xr-x 2 inoue kek 512 Oct 27 1998 onpcux1-hp-rt/ onl8v1[126]% diff camlib.h ../../CAMAC/FORCE-5V-sol7-list/camlib.h onl8v1[127]% diff cc.h ../../CAMAC/FORCE-5V-sol7-list/cc.h 10a11 > * 26-JUL-1999 E.Inoue modify CC_START_MESSAGE * 16c17 < "CAMAC device driver V1.3x, 1991-1993 by Y.TAKEUCHI (T.I.T.)" --- > "CAMAC device driver V2.1, 1991-2000 by Y.TAKEUCHI(ICRR), E.Inoue(KEK)" 20a22 > onl8v1[128]% diff cc_common.h ../../CAMAC/FORCE-5V-sol7-list/cc_common.h onl8v1[129]% diff cc_config.h ../../CAMAC/FORCE-5V-sol7-list/cc_config.h onl8v1[130]% diff k2917.h ../../CAMAC/FORCE-5V-sol7-list/k2917.h onl8v1[131]% onl8v1[132]% grep onpcux1-hp-rt * onl8v1[133]% cd .. /export/home/onl8v1/inoue/CAMAC-speed-list onl8v1[134]% ls camasm/ includes/ onl50t-camac-speed.tar examples-Solaris2.x/ lib/ onl8v1[135]% cd ex* /export/home/onl8v1/inoue/CAMAC-speed-list/examples-Solaris2.x onl8v1[136]% grep onpcux1-hp-rt * onl8v1[137]% includeディレクトリ中のファイルは、実質的に "FORCE-5V-sol7-list"キット中 のものと同じである。 include/onpcux1-hp-rt下のファイルは使用していないの でここでは無視する。 (3-2-3). libディレクトリ中のファイルをチェック onl8v1[145]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/lib onl8v1[146]% ls -l total 116 -rw-r--r-- 1 inoue kek 2041 Oct 27 1998 Makefile -rw-r--r-- 1 inoue kek 9740 Oct 27 1998 camlib.c -rw-r--r-- 1 inoue kek 1415 Oct 27 1998 camlib.h -rw-r--r-- 1 inoue kek 9516 Oct 27 1998 camlib.o -rw-r--r-- 1 inoue kek 2748 Oct 27 1998 cc.h -rw-r--r-- 1 inoue kek 2288 Oct 27 1998 cc_common.h -rw-r--r-- 1 inoue kek 876 Oct 27 1998 cc_config.h -rw-r--r-- 1 inoue kek 3289 Oct 27 1998 forlib.c -rw-r--r-- 1 inoue kek 3468 Oct 27 1998 forlib.o -rw-r--r-- 1 inoue kek 4058 Oct 27 1998 k2917.h -rw-r--r-- 1 inoue kek 13844 Oct 27 1998 libcamac.a drwxr-xr-x 2 inoue kek 512 Oct 27 1998 onpcux1-hp-rt/ onl8v1[147]% onl8v1[149]% diff Makefile ../../CAMAC/FORCE-5V-sol7-list/Makefile onl8v1[150]% diff camlib.c ../../CAMAC/FORCE-5V-sol7-list/camlib.c 410a411,413 > /* E.Inoue > printf("buf's address = 0x%x\n", buf); > end */ onl8v1[151]% diff camlib.h ../../CAMAC/FORCE-5V-sol7-list/camlib.h onl8v1[152]% diff cc.h ../../CAMAC/FORCE-5V-sol7-list/cc.h 10a11 > * 26-JUL-1999 E.Inoue modify CC_START_MESSAGE * 16c17 < "CAMAC device driver V1.3x, 1991-1993 by Y.TAKEUCHI (T.I.T.)" --- > "CAMAC device driver V2.1, 1991-2000 by Y.TAKEUCHI(ICRR), E.Inoue(KEK)" 20a22 > onl8v1[153]% diff cc_common.h ../../CAMAC/FORCE-5V-sol7-list/cc_common.h onl8v1[154]% diff cc_config.h ../../CAMAC/FORCE-5V-sol7-list/cc_config.h onl8v1[155]% diff forlib.c ../../CAMAC/FORCE-5V-sol7-list/forlib.c onl8v1[156]% diff k2917.h ../../CAMAC/FORCE-5V-sol7-list/k2917.h onl8v1[157]% grep onpcux1-hp-rt * onl8v1[158]% libディレクトリ中のファイルは、実質的に "FORCE-5V-sol7-list"キット中 のものと同じである。 lib/onpcux1-hp-rt下のファイルは使用していないので ここでは無視する。 (3-3). テスト・プログラムコンパイルする これまで、実行速度測定プログラムは ucb/cc を使ってコンパイルしていた。 これをやめて SUNコンパイラを使うようにする。 onl8v1[158]% which cc /kek/compilers/ws5.0/SUNWspro/bin/cc onl8v1[159]% cc -V cc: WorkShop Compilers 5.0 98/12/15 C 5.0 usage: cc [ options] files. Use 'cc -flags' for details onl8v1[160]% which f77 /kek/compilers/ws5.0/SUNWspro/bin/f77 onl8v1[161]% f77 -V f77: WorkShop Compilers 5.0 98/12/15 FORTRAN 77 5.0 Usage: f77 [ options ] files. Use 'f77 -flags' for details onl8v1[162]% (3-3-1). camasmディレクトリの下のコンパイル onl8v1[162]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/camasm onl8v1[163]% ls -l total 118 -rw-r--r-- 1 inoue kek 448 Oct 27 1998 Makefile -rw-r--r-- 1 inoue kek 11251 Oct 27 1998 asm_code.h -rwxr-xr-x 1 inoue kek 20390 Oct 27 1998 camasm* -rw-r--r-- 1 inoue kek 24762 Oct 27 1998 camasm.c -rw-r--r-- 1 inoue kek 1646 Oct 27 1998 err_code.h onl8v1[164]% onl8v1[164]% cp Makefile Makefile-Mar28-2001 onl8v1[165]% vi Makefile : CC = cc : onl8v1[166]% camasmディレクトリではこれまでもSUNコンパイラを使っている。 変更なし。 onl8v1[173]% make clean rm -f camasm *.obj *.lis *~ *.o core onl8v1[174]% make cc -O -o camasm camasm.c "./asm_code.h", line 193: warning: initializer does not fit or is out of range: -1 onl8v1[175]% ok. 正常にコンパイルできた。 (3-3-2). libディレクトリの下のコンパイル onl8v1[179]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/lib onl8v1[180]% ls -l total 116 -rw-r--r-- 1 inoue kek 2041 Oct 27 1998 Makefile -rw-r--r-- 1 inoue kek 9740 Oct 27 1998 camlib.c -rw-r--r-- 1 inoue kek 1415 Oct 27 1998 camlib.h -rw-r--r-- 1 inoue kek 9516 Oct 27 1998 camlib.o -rw-r--r-- 1 inoue kek 2748 Oct 27 1998 cc.h -rw-r--r-- 1 inoue kek 2288 Oct 27 1998 cc_common.h -rw-r--r-- 1 inoue kek 876 Oct 27 1998 cc_config.h -rw-r--r-- 1 inoue kek 3289 Oct 27 1998 forlib.c -rw-r--r-- 1 inoue kek 3468 Oct 27 1998 forlib.o -rw-r--r-- 1 inoue kek 4058 Oct 27 1998 k2917.h -rw-r--r-- 1 inoue kek 13844 Oct 27 1998 libcamac.a drwxr-xr-x 2 inoue kek 512 Oct 27 1998 onpcux1-hp-rt/ onl8v1[181]% vi Makefile : CC = cc #CC = /usr/ucb/cc : onl8v1[182]% libディレクトリではこれまでもSUNコンパイラを使っている。 変更なし。 onl8v1[183]% make clean \rm -f cc *.o libcamac.a cam1 cam2 cam3 *~ core onl8v1[184]% make libcamac.a cc -O -c camlib.c -o camlib.o -I. cc -O -c forlib.c -o forlib.o -I. rm -f libcamac.a ar rcv libcamac.a camlib.o forlib.o a - camlib.o a - forlib.o ar: writing libcamac.a onl8v1[185]% ls -l total 116 -rw-r--r-- 1 inoue kek 2041 Oct 27 1998 Makefile -rw-r--r-- 1 inoue kek 9740 Oct 27 1998 camlib.c -rw-r--r-- 1 inoue kek 1415 Oct 27 1998 camlib.h -rw-r--r-- 1 inoue kek 9640 Mar 28 16:19 camlib.o -rw-r--r-- 1 inoue kek 2748 Oct 27 1998 cc.h -rw-r--r-- 1 inoue kek 2288 Oct 27 1998 cc_common.h -rw-r--r-- 1 inoue kek 876 Oct 27 1998 cc_config.h -rw-r--r-- 1 inoue kek 3289 Oct 27 1998 forlib.c -rw-r--r-- 1 inoue kek 3492 Mar 28 16:19 forlib.o -rw-r--r-- 1 inoue kek 4058 Oct 27 1998 k2917.h -rw-r--r-- 1 inoue kek 13992 Mar 28 16:19 libcamac.a drwxr-xr-x 2 inoue kek 512 Oct 27 1998 onpcux1-hp-rt/ onl8v1[186]% ok. 正常にコンパイルできた。 (3-3-3). examples-Solaris2.xディレクトリの下のコンパイル onl8v1[203]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/examples-Solaris2.x onl8v1[204]% ls Makefile camsingle.sh.log7-1000 Makefile-Mar28-2001 camsingle.sh.log8-1000 Makefile.org camsingle.sh.log9-1000 camblock.log-old/ camsingle_measure.c camblock.log1 camsingle_measure1* camblock_measure.c camsingle_measure1.c camblock_measure1* camsingle_measure1.c.Oct-21.98 camblock_measure1.c camsingle_measure1.c.Oct-27.98 camblock_measure1.c.Oct-21.98 camsingle_measure1.c.Oct-28.98 camblock_measure1.c.diff camsingle_measure1.c.org camblock_measure1.c.org camsingle_measure1.log camblock_measure1.c.step01 camtest10c.c camblock_measure1.log1 camtest11c.c camint_measure.c camtest11c.o camint_measure1.c camtest12c.c camint_measure1.c-Jul.7.99 camtest13c.c camint_measure1.c-bak-ok camtest14c.c camint_measure1.c.org camtest1c.c camint_measure1.c.step01 camtest2c.c camint_measure1.c.step02 camtest31c.c camint_measure1.c.step03 camtest3c.c camint_measure1.c.step04 camtest4.asm camint_measure1.log camtest41c.c camint_measure1.log1 camtest4c.c camint_measure1.log2 camtest4dma.asm camint_measure1.log3 camtest4etc.asm camint_measure1.log4 camtest4int.asm camint_measure1.log5 camtest4single.asm camint_measure1.log6 camtest5c.c camint_measure1.log7 camtestc.c camint_measure1.log8 cmdump.c camsingle.sh* cregdump.c camsingle.sh.log1-1000 creset* camsingle.sh.log1-500 creset.c camsingle.sh.log10-1000 inoue* camsingle.sh.log2-1000 inoue.c camsingle.sh.log2-500 lpr camsingle.sh.log3-1000 out camsingle.sh.log3-500 t1* camsingle.sh.log4-1000 t1.c camsingle.sh.log4-500 t2* camsingle.sh.log5-1000 t2.c camsingle.sh.log5-500 t2.c-org camsingle.sh.log6-1000 test.c onl8v1[205]% onl8v1[205]% vi Makefile : #CC = /usr/ucb/cc CC = cc : onl8v1[206]% ucb/cc をやめて SUNコンパイラを使うように変更した。 (3-3-3a). camsingle_measure1のコンパイル onl8v1[218]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/examples-Solaris2.x onl8v1[219]% ls -l camsingle_measure1 -rwxr-xr-x 1 inoue kek 55728 Mar 28 15:03 camsingle_measure1* onl8v1[220]% rm camsingle_measure1 onl8v1[221]% make camsingle_measure1 cc -DOSF1 -o camsingle_measure1 camsingle_measure1.c -I../includes -L../lib -lcamac "camsingle_measure1.c", line 40: warning: improper pointer/integer combination: arg #1 onl8v1[222]% NG. warningが出力される。 camsingle_measure1.cファイルを修正する。 onl8v1[222]% vi camsingle_measure1.c : 40 /* perror(strerror(status)); */ 41 perror((const char *)strerror(status)); : onl8v1[223]% 再度 camsingle_measure1 をコンパイルする onl8v1[223]% rm camsingle_measure1 onl8v1[224]% make camsingle_measure1 cc -DOSF1 -o camsingle_measure1 camsingle_measure1.c -I../includes -L../lib -lcamac onl8v1[225]% ok. 正常にコンパイルできた。 (3-3-3a-1). camsingle_measure1.cファイルの修正 現在の camsingle_measure1 オーバーヘッド時間の算出が曖昧になっている。 実行時間の長さをオーバーヘッド時間に比べて十分に長くとっているので 実質的には問題はない。 しかし、厳密ではないのでここで修正しておく。 onl8v1[45]% cp camsingle_measure1.c camsingle_measure1.c-Apr2-2001 onl8v1[46]% vi camsingle_measure1.c : read_swreg = NAF(SWREG, 1, 0); if (CAM_Open()) { perror("Open error: "); exit(1); } CSETCR(0); CGENC(); CGENZ(); CSETI(); CREMI(); get_time(&timevalue0[0]); get_time(&timevalue1[0]); overhead[0] = (e_time(&timevalue0[0], &timevalue1[0])); printf("overhead time %d microsec\n", overhead[0] ); get_time(&timevalue0[0]); /* # 1-10 */ CAMAC(read_swreg, &dumy, &q, &x); CAMAC(read_swreg, &dumy, &q, &x); : /* # 991-1000 */ CAMAC(read_swreg, &dumy, &q, &x); : CAMAC(read_swreg, &dumy, &q, &x); CAMAC(read_swreg, &dumy, &q, &x); get_time(&timevalue1[0]); elapsed[0] = (e_time(&timevalue0[0], &timevalue1[0]))/1000; : onl8v1[47]% コンパイルのチェック onl8v1[51]% make camsingle_measure1 cc -DOSF1 -o camsingle_measure1 camsingle_measure1.c -I../includes -L../lib -lcamac onl8v1[52]% ok. 正常にコンパイルできた。 (3-3-3b). camint_measure1のコンパイル camint_measure1.cファイルを全面的に見直して作り直す。 onl8v1[241]% : /* Write operation time to the OUTREG */ for( i = 0; i < LOOP; i++ ) { dumy =0x0; get_time(&timevalue0[i]); CAMAC(write_pulse, &dumy, &q, &x); get_time(&timevalue1[i]); } average = 0; for(i = 2; i < LOOP; i++ ) { elapsed[i] = e_time(&timevalue0[i], &timevalue1[i]); /* printf("elapsed time %d microsec\n", elapsed[i] ); */ average = average + elapsed[i]; } write_time = average/(LOOP-2); /* printf("write_pulse takes %d microsec.\n",average/(LOOP-2)); */ printf("write_pulse takes %d microsec.\n",write_time); /* Generate Interrupt Pulse */ if( status = CAM_EnableLAM(ENABLE_INTREG) ) error_exit(status); for( i = 0; i < LOOP; i++ ) { status = CAMAC(NAF(INTREG,0,26), &dumy, &q, &x ); /* printf("child: loop count = %d\n", i+1); */ dumy =0xF; get_time(&timevalue0[i]); CAMAC(write_pulse, &dumy, &q, &x); if( status = CAM_WaitLAM(TIME_60_SEC) ) error_exit(status); get_time(&timevalue1[i]); status = CAMAC(NAF(INTREG,0,24), &dumy, &q, &x ); status = CAMAC(NAF(INTREG,0,9), &dumy, &q, &x ); : average = 0; for(i = 2; i < LOOP; i++ ) { elapsed[i] = e_time(&timevalue0[i], &timevalue1[i]); /* printf("elapsed time %d microsec\n", elapsed[i] ); */ average = average + elapsed[i]; } /* printf("CAM_WaitLAM takes %d microsec.\n",average/(LOOP-2)); */ printf("CAM_WaitLAM takes %d microsec.\n",(average/(LOOP-2))-write_time ); : onl8v1[242]% onl8v1[244]% make camint_measure1 cc -DOSF1 -o camint_measure1 camint_measure1.c -I../includes -L../lib -lcamac onl8v1[245]% ok. 正常にコンパイルできた。 (3-3-3c). camblock_measure1のコンパイル onl8v1[276]% ls -l camblock_measure1 -rwxr-xr-x 1 inoue kek 17416 Mar 28 15:07 camblock_measure1* onl8v1[277]% rm camblock_measure1 onl8v1[278]% make camblock_measure1 cc -DOSF1 -o camblock_measure1 camblock_measure1.c -I../includes -L../lib -lcamac "camblock_measure1.c", line 43: warning: improper pointer/integer combination: arg #1 onl8v1[279]% NG. warningが出力される。 camblock_measure1.cファイルを修正する。 onl8v1[279]% vi camblock_measure1.c : 43 /* E.Inoue perror(strerror(status)); */ 44 perror((const char *)strerror(status)); : onl8v1[280]% onl8v1[285]% make camblock_measure1 cc -DOSF1 -o camblock_measure1 camblock_measure1.c -I../includes -L../lib -lcamac onl8v1[286]% ok. 正常にコンパイルできた。 (3-3-3d). keklistsingle_m1のコンパイル KEKリスト処理実行速度測定用のプログラムは無いので作ることにする。 KEKリスト処理の動作確認で使用したテストプログラムを実行速度測定用の ディレクトリにコピーする。 onl8v1[512]% ls /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/ Makefile camtest4int.asm camtest5c.c camtest4c* camtest4int.obj camtest5c1* camtest4c.c camtest4single.asm camtest5c1.c camtest4dma.asm camtest4single.obj camtest5c2* camtest4dma.obj camtest5c* camtest5c2.c onl8v1[513]% onl8v1[513]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/examples-Solaris2.x onl8v1[514]% ls Makefile camsingle.sh* creset* Makefile-org camsingle_measure.c creset.c camblock_measure.c camsingle_measure1* old-log/ camblock_measure1.c camsingle_measure1.c old-src/ camint_measure.c cmdump.c tmp/ camint_measure1.c cregdump.c onl8v1[515]% onl8v1[520]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/examples-Solaris2.x onl8v1[521]% cp /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/camtest4c.c . onl8v1[522]% cp /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/camtest4dma.asm . onl8v1[523]% cp /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/camtest4int.asm . onl8v1[524]% cp /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/camtest4single.asm . onl8v1[525]% cp /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/camtest5c.c . onl8v1[526]% cp /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/camtest5c1.c . onl8v1[527]% cp /export/home/onl8v1/inoue/CAMAC/FORCE-5V-sol7-list/camlist/camtest5c2.c . onl8v1[528]% ls Makefile camsingle_measure1* camtest5c2.c Makefile-org camsingle_measure1.c cmdump.c camblock_measure.c camtest4c.c cregdump.c camblock_measure1.c camtest4dma.asm creset* camint_measure.c camtest4int.asm creset.c camint_measure1.c camtest4single.asm old-log/ camsingle.sh* camtest5c.c old-src/ camsingle_measure.c camtest5c1.c tmp/ onl8v1[529]% 基本動作によるシングルアクションRead の実行時間測定のプログラムでは 測定の精度を上げるために、シングルアクションRead の CAMAC コールを 1000回実行し、この1000回実行の前後で時間を測り、その値を 1000 で割った。 さらにこの操作を100回実行している。 KEKリスト処理によるシングルアク ションRead の実行時間測定ではリスト処理の中で100回シングルアクションRead を実行し、さらにこの操作を100回繰り返している。 "CAMAC-speed-list/examples-Solaris2.x/camsingle_measure1.c"ファイルと "FORCE-5V-sol7-list"キット中の camlist/camtest5c.c を組み合わせた ものを書き直して、keklistsingle_m1.cファイルを作る。 そして、 camlist/camtest4single.asmを書き直して、camtest6single.asmファイルを 作る。 (3-3-3d-A). keklistsingle_m1.cファイルの作成 onl8v1[59]% pwd /export/home/onl8v1/inoue/CAMAC-speed-list/examples-Solaris2.x onl8v1[60]% ls Makefile camtest4c.c camtest6int.obj Makefile-org camtest4dma.asm camtest6single.asm camblock_measure.c camtest4int.asm camtest6single.obj camblock_measure1* camtest4single.asm keklistblock_m1* camblock_measure1.c camtest4single.obj keklistblock_m1.c camint_measure.c camtest5c* keklistint_m1* camint_measure1* camtest5c.c keklistint_m1.c camint_measure1.c camtest5c1.c keklistsingle_m1* camsingle.sh* camtest5c2.c keklistsingle_m1.c camsingle_measure.c camtest6block.asm old-log/ camsingle_measure1* camtest6block.obj old-src/ camsingle_measure1.c camtest6int.asm tmp/ onl8v1[61]% onl8v1[61]% vi keklistsingle.sh #! /bin/csh # #@ count = 6 @ count = 1 while ( $count ) if ( $count > 100) then echo "program stop" exit endif echo "program execution : loop count = $count" # /home3/disc/util/form $count # ./camsingle_measure1 priocntl -e -c RT -p 55 ./keklistsingle_m1 @ count = $count + 1 end onl8v1[62]% 参考資料(ここから). onlsun2[37]% man priocntl ユーザーコマンド priocntl(1) 【名前】 priocntl - 指定したプロセスのスケジューリングパラメタの表 示 または設定 【形式】 priocntl -l priocntl -d [ -i idtype ] [ idlist ] priocntl -s [ -c class ] [ class-specific options ] [ -i idtype ] [ idlist ] priocntl -e [ -c class ] [ class-specific options ] com- mand [ argument(s) ] 【機能説明】 priocntl コマンドは、指定した 1 つまたは複数のプロセスの ス ケジューリングパラメタを表示または設定します。また、システム のプロセススケジューラの現在の設定情報を表示したり、指定した スケジューリングパラメタを使ってコマンドを実行したりする目的 にも使用できます。 プロセスはいくつかのクラスに分けられます。各クラスにはそれぞ れ異なったスケジューリング方針が適用されます。現在サポートさ れているクラスは、リアルタイム、タイムシェアリング、対話型の 3 種類です。各クラスの特徴およびクラス固有のオプションについ ては、後述の「使用法」の「リアルタイムクラス」、「タイムシェ アリングクラス」、「対話型クラス」の項で説明します。ユーザー は、正しいアクセス権を持っていれば、priocntl コマンドを使っ て、稼動中のプロセスのクラスや対応するスケジューリングパラメ タを変更することができます。 デフォルトの設定では、実行可能状態にあるリアルタイムプロセス が他のプロセスに先だって実行されます。したがってリアルタイム プロセスの使い方を誤ると、システムのパフォーマンスが著しく損 なわれてしまう恐れがあります。 priocntl コマンドに idlist 引数を指定する場合は、コマンド行 の最後に記述してください。また idlist 中の要素は、空白で区切 る必要があります。idlist 引数を省略するときは、idtype 引数と し て pid、 ppid、 pgid、 sid、 class、 uid、gid を使って、 priocntl コマンド自身のプロセス ID、親プロセス ID、プロセス グ ループ ID、セッション ID、クラス ID、ユーザーID、グループ ID をそれぞれ指定します。 priocntl -d [-i idtype] [idlist] 上記の priocntl コマンドは、idtype および idlist 引数で指定 したプロセス群のクラスとクラス固有のスケジューリングパラメタ を表示します。 SunOS 5.7 1998年8月17日 1 ユーザーコマンド priocntl(1) priocntl -s [-c class] [class-specific options] [-i idtype] [idlist] 上記の priocntl コマンドは、指定したプロセスのクラスおよ び クラス固有のパラメタを、コマンド行で指定した値に設定します。 -c class オプションが、設定するクラスを表します。現在サ ポー トされている class 引数値は、リアルタイムクラス用の RT、タイ ムシェアリングクラス用の TS または対話型クラス用の IA です。 各クラス固有のパラメタは、対応するクラス固有のオプショ ン を 使って指定します。詳しくは各クラスの項で後述します。-c class オプションを省略する場合には、idtype と idlist を使って、 同 じクラスに属する一群のプロセスを指定してください。そうしない とエラーが発生します。クラス固有のオプションをすべて省略する と、 当該プロセスのクラス固有パラメタの値は、-c class で指定 したクラスのデフォルト値に設定されます。なお、-c class オ プ ションも省略した場合には、そのプロセスの現在のクラスのデフォ ルト値に設定されます。 priocntl を使ってプロセスのスケジューリングパラメタを変更で き るのは、priocntl を実行したユーザーの実ユーザーID または 実効ユーザーID ( それぞれのグループ ID ) が当該プロセスの 実 ユーザーID または実効ユーザーID ( それぞれのグループ ID ) と 一致している場合、もしくはユーザーの実効ユーザー ID が スー パーユーザーを示している場合だけです。アクセス権に関するこの 要件は、全クラスに適用される最低限の必要条件です。クラ ス に よっては、プロセスを設定する場合やクラス固有のスケジューリン グパラメタを設定する場合に、他のアクセス権に関する要件が追加 されることもあります。 idtype と idlist の両引数を使っていくつかのプロセスを指定 す ると、priocntl はそれらのプロセスに対して処理を実行します。 ただし、処理する順序は実装状態により異なります。エラーを検出 した場合、そのエラーの種類により、以降のプロセスの処理を続行 する場合とコマンドを終了する場合とがあります。 検出したエラーがアクセス権に関連するものであれ ば、 priocntl は エ ラーメッセージを出力しますが、指定されたプロセスのうち ユーザーが適正なアクセス権を持っているものについては、パラメ タをリセットして処理を続行します。エラーがアクセス権に関連し たものでなければ、エラーメッセージを表示してただちに実行を終 了します。 特殊なシステムプロセス (たとえばスワッパプロセス) の実行をス ケジューリングする目的のため、sys という特殊なスケジューリン グクラスが存在しています。どのプロセスに対しても、クラ ス を sys に変更することはできません。また idtype や idlist 引数で sys クラスに属するプロセスを指定した場合、priocntl はそれら を 無視します。たとえば idtype として uid を指定し idlist に 0 (ゼロ) を指定すると、UID の値が 0 の全プロセスのう ち sys クラスに属するものを除いたプロセス、および ( -s オプションを 使ってパラメタを変更する場合には) init プロセスが処理の対象 となります。 SunOS 5.7 1998年8月17日 2 ユーザーコマンド priocntl(1) init プロセス (プロセス ID は 1) は特 殊 な ケー ス で す。 priocntl コマンドを使って init プロセスのクラスやその他の スケジューリングパラメタを変更するためには、idtype と し て pid を 指定し、idlist として 1 だけを指定してください。init プロセスは、システム上に存在するどのクラスに割り当てても構い ませんが、ほとんどの場合タイムシェアリングクラスを選択するの が適切です。他のクラスに割り当てると、システムに悪影響を及ぼ す ことがあります。詳細は「 Solaris のシステム管理 (第 1 巻) 」を参照してください。 priocntl -e [-c class] [class-specific options] command [argument...] この priocntl コマンドは、command で示すコマンドを、指定し た クラスとスケジューリングパラメタを使って実行します。argu- ments は、command に対する引数です。-c class オプションを省 略 す ると、指定したコマンドはユーザーの現クラスで実行されま す。 【オプション】) 次のオプションを指定できます。 -c class 設定するクラスを指定します。class 引数には RT ( リ ア ルタイムクラスの場合)、TS (タイムシェアリングク ラスの場合)、または IA (対話型クラスの場合) を指定 で き ます。指定したクラスが構成されていない場合に は、自動的に構成されます。 -d 指定したプロセスに対応したスケジューリングパラメタ を表示します。 -e 指定したコマンドを、指定したプロセスに対応したスケ ジューリングパラメタを使って実行します。 -i idtype このオプションは、idlist 引数 (もし存在していれば) とともに、priocntl コマンドの処理対象となるプロセ ス群を指定します。idlist がどのように解釈される か は、idtype の値により異なります。idtype として指定 可能な値、およびそれぞれの値に対応した idlist の解 釈は以下のとおりです。 -i pid idlist はプロセス ID です。priocntl コ マンドの処理対象は、指定された全プロセス です。 -i ppid idlist は親プロセス ID で す。 priocntl コマンドの処理対象は、指定された親プロセ ス ID を持つすべてのプロセスです。 -i pgid idlist はプロセスグ ルー プ ID で す。 priocntl コマンドの処理対象は、指定され たグループに属するすべてのプロセスです。 SunOS 5.7 1998年8月17日 3 ユーザーコマンド priocntl(1) -i sid idlist はセッション ID で す。 priocntl コマンドの処理対象は、指定されたセッショ ン中のすべてのプロセスです。 -i class idlist は単一のクラス名です (リアルタ イ ムクラスなら RT 、タイムシェアリングクラ スなら TS 、対話型クラスなら IA )。コ マ ンドの処理対象は、指定されたクラスに属す るすべてのプロセスです。 -i uid idlist はユーザーID です。priocntl コマ ンドの処理対象は、指定された ID と同一の 実効ユーザーID を持つすべてのプロセス で す。 -i gid idlist はグループ ID です。priocntl コ マンドの処理対象は、指定された ID と同一 の実効グループ ID を持つすべてのプロセス です。 -i all priocntl コマンドの処理対象は、存在して い る す べ てのプロセスです。この場合、 idlist 引数は指定できません。指定して も 無視されます。また以下に述べるアクセス権 上の制限事項は、この all 指定の場合で も 有効です。 -d または -s オプションを指定して -i idtype オ プ ションを省略すると、デフォルトの idtype である pid を指定したものとみなされます。 -l 現在システム上に定義されているクラスの一覧を、各ク ラス固有の情報とともに表示します。クラス固有情報の 出力形式は「使用法」の項で説明します。 -s 指定したプロセスに対応したスケジューリングパラメタ を設定します。 リアルタイムクラスのパラメタを設定する場合には、以下のクラス 固有のオプションを指定できます。 -p rtpri 指定したプロセスのリアルタイム優先順位を、rtpri に 設定します。 -t tqntm [-r res] 指定したプロセスの時間を、tqntm に設定します。時間 の単位を指定することも可能です (詳しくは後述)。 タイムシェアリングクラスのパラメタを設定する場合には、以下の クラス固有のオプションを指定できます。 -m tsuprilim SunOS 5.7 1998年8月17日 4 ユーザーコマンド priocntl(1) 指定したプロセスのユーザー優先順位の 上 限 値 を、 tsuprilim に設定します。 -p tsupri 指定したプロセスのユーザー優先順位を、tsupri に 設 定します。 対話型クラスのパラメタを設定する場合には、以下のクラス固有の オプションを指定できます。 -m iauprilim 指定したプロセスのユーザー優先順位の制限 を、 iau- prilim に設定します。 -p iaupri 指定したプロセスのユーザー優先順位を、iaupri に 設 定します。 【使用法】 [リアルタイムクラス] リアルタイムクラスは、高速でかつ決定力のある応答を必要とし、 スケジューリング方針に関してユーザーやアプリケーションに対す る絶対的な制御権を必要とするようなプロセスに対して、固定され た高い優先順位を持つスケジューリング方針を与えるものです。シ ステム中にリアルタイムクラスが定義されている場合には、システ ム上の最上位のスケジューリング優先順位群を制御できる唯一のク ラスである必要があります。これにより、実行可能状態にあるリア ルタイムプロセスは、他のクラスに属するあらゆるプロセスよりも 先に CPU のサービスを受けられることが保証できます。 リアルタイムクラスには、一連のリアルタイム優先順位値 (rtpri) が与えられていて、そのクラスに属するプロセスに割り当てること ができます。リアルタイム優先順位値の範囲は 0 から x までで、 こ の x の値はリアルタイムクラスのスケジューラを構成済みのシ ステムごとに設定可能であり、以下のコマンドを使って表示するこ とができます。 priocntl -l リアルタイムクラスのスケジューリング方針とは、固定優先順位を 割り当てることです。つまり、ユーザーやアプリケーション側から のプロセスの rtpri 値を変更する明示的な要求を実行し な い 限 り、リアルタイムプロセスのスケジューリング優先順位は変わりま せん。 リアルタイムクラスのプロセスに関しては、実用上のあらゆる観点 から、rtpri の値はプロセスのスケジューリング優先順位と同等で す。リアルタイムクラスのあるプロセスの、同じクラス内の他のプ ロセスに対する相対的なスケジューリング優先順位値は、rtpri 値 により決定されます。rtpri 値は数値で示され、大きい数が高い優 先順位を表します。リアルタイムクラスはシステム中で最も高いス ケジューリング優先順位群を制御しているので、実行可能状態にあ る リアルタイムプロセスのうち最高の rtpri 値を持つプロセスが システム中の他のあらゆるプロセスに先だって選ばれる、というこ SunOS 5.7 1998年8月17日 5 ユーザーコマンド priocntl(1) とが保証されています。 priocntl は、優先順位に関する制御権だけでなく、リアルタイム クラス中のプロセスに割り当てられる時間値を制御する権利も提供 しています。この時間値は、プロセスがリソースやイベントの待ち 状態 (休眠状態) に陥らないという前提で、プロセスの実行時間の 最大値を指定するものです。なお、あるプロセスの稼動中に、より 高い優先順位を持つ他のプロセスが実行可能状態になった場合、現 在稼動中のプロセスは割り当てられた時間値に達していなくても取 り上げられてしまうことがあります。 priocntl -d [-i idtype] [idlist] このコマンドは、idtype と idlist で指定した一群のリアルタ イ ム プロセスの個々のリアルタイム優先順位と時間 (単位はミリ秒) を表示します。 リアルタイムクラス用の priocntl -s または priocntl -e コマン ド 中に、-p と -t の両オプションを任意の組み合わせで指定でき ます。どちらかを省略した場合、当該プロセスが現在リアルタイム であれば、省略されたオプションに対応したパラメタには影響あり ません。あるプロセスを他のクラスからリアルタイムクラスに変更 す るような priocntl コマンド中でいずれかのオプションを省略 すると、そのオプションに対応したパラメタはデフォルト値に設定 さ れます。rtpri のデフォルト値は 0 です。時間値のデフォルト は、rtpri の値およびシステムの構成に よ り 異 な り ま す ( rt_dptbl(4) 参照)。 -t tqntm オプションを使用する際、時間の単位を -r res オ プ ションを使って指定することもできます。単位のデフォルトはミリ 秒です。res には、1 から 1,000,000,000 までの正の整数を指 定 してください。この場合、使用される単位は res 分の 1 秒となり ます。たとえば、-t 10 -r 100 と指定すると、単位は 100 分の 1 秒となり、時間値として指定されている 10 は、10/100 つまり 10 分の 1 秒を意味することになります。ナノ秒などの細かい単位 も 指定可能ですが、実際にはシステムクロックの精度に合うように時 間値は丸められてしまいます。時間値として 0 を指定した場 合、 およびシステムに固有の最大時間値を超える大きな値を指定した場 合には、エラーとなります。 プロセスのクラスを他のものからリアルタイムクラスに変更するに は、priocntl コマンドを実行するユーザーがスーパーユーザー特 権を持つ必要があります。また、リアルタイムプロセス の rtpri 値 や 時間値を変更するには、priocntl コマンドを実行するユー ザーはスーパーユーザーであるか、あるいは現在リアルタイムクラ ス に いて (リアルタイムプロセスとして稼動中のシェル) その実 ユーザーID または実効ユーザー ID が処理対象のプロセ ス の 実 ユー ザー ID または実効ユーザーID と一致している必要がありま す。 fork(2) や exec(2) などのシステムコールを使った場合、リア ル タイム優先順位および時間値は受け継がれます。 SunOS 5.7 1998年8月17日 6 ユーザーコマンド priocntl(1) [タイムシェアリングクラス] タイムシェアリングのスケジューリング方針とは、CPU の消費に関 し て異なった性質を持つプロセスに対して、公平で有効な CPU リ ソースの割り付けを行うことです。タイムシェアリング方針の目的 は、 対 話型プロセスには速いレスポンスを提供し、CPU 消費型の ジョブには高いスループットを提供し、さらにスケジューリングの 制御権をユーザーやアプリケーションにもある程度与えることにあ ります。 タイムシェアリングクラスには、一連のタイムシェアリン グ ユー ザー 優先順位値 (rtpri) が与えられていて、そのクラスに属する プロセスに割り当てることができます。ユーザー優先順位値の範囲 は -x から +x までで、この x の値はシステムごとに設定可能で あり、以下のコマンドを使って表示することができます。 priocntl -l ユーザー優先順位の目的は、タイムシェアリングクラスのプロセス のスケジューリングを、ユーザーやアプリケーションがある程度制 御できるようにすることです。タイムシェアリングクラスのプロセ スの tsupri 値を増減させれば、そのプロセスのスケジューリング 優先順位が上下します。ただし、高い tsupri 値を持つタイムシェ アリングプロセスが、低い tsupri 値を持つプロセスよりも先に実 行されるとは限りません。なぜなら tsupri 値は、タイムシェアリ ングプロセスのスケジューリング優先順位を決定する際の要素の 1 つにしかすぎないからです。システムは最近のシステム利用率など 他 の 要 素 を考慮の上、タイムシェアリングプロセスの内部スケ ジューリング優先順位を動的に調整します。 システム内でのユーザー優先順位の上限値 (priocntl -l で表示で き る) に加え、プロセスごとのユーザー優先順位上限値 (tsupri- limf1) が設定されています。これは各プロセスに 指 定 で き る tsupri の最大値を表します。 priocntl -d [-i idtype] [idlist] このコマンドは、idtype と idlist で指定した一群のタイム シェ アリングプロセスの個々のユーザー優先順位と優先順位上限値を表 示します。 タイムシェアリングプロセスは、自身の (および同じユー ザー ID を 持 つ他のプロセスの) tsuprilim 値を下げることができます。 tsuprilim 値を上げることができるのは、スーパーユーザー特権を 持つタイムシェアリングプロセスだけです。あるプロセスのクラス を他のものからタイムシェアリングに変更する際、tsuprilim の初 期 値を 0 より大きい値に設定するにはスーパーユーザー特権が必 要となります。 どのタイムシェアリングプロセスも、自身の (および同じユーザー ID を持つ他のプロセスの) tsupri 値を設定できますが、そのプロ セスの tsuprilim 値を超えることはできません。tsuprilim を 超 える値に tsupri を設定しようとした場合、および tsupri 未満の SunOS 5.7 1998年8月17日 7 ユーザーコマンド priocntl(1) 値に tsuprilim を設定しようとした場合には、結果として tsupri が tsuprilim と等しい値に設定されます。 タイムシェアリングクラス用の priocntl -s または priocntl -e コ マンド中に、-m と -p の両オプションを任意の組み合せで指定 できます。どちらかを省略した場合、当該プロセスが現在タ イ ム シェアリングであれば、省略されたオプションに対応したパラメタ には通常影響ありません。ただし、-p オプションを省略し、-m を 使っ て tsuprilim の値を tsupri 未満に設定しようとした場合は 例外です。このような設定を試みると、tsupri は現在の tsupri- lim の 値に設定されます。あるプロセスを他のクラスからタイム シェアリングクラスに変更する際にいずれかのオプションを省略す ると、そのオプションに対応したパラメタはデフォルト値に設定さ れます。tsuprilim のデフォルト値は 0 です。tsupri のデフォル ト値は、現在設定されている tsuprilim の値です。 fork(2) や exec(2) などのシステムコールを使った場合、タイ ム シェアリングユーザー優先順位およびユーザー優先順位の上限値は 受け継がれます。 [対話型クラス] 対話型のスケジューリング方針とは、CPU の消費に関して異なった 性 質を持つプロセスに対して、公平で有効な CPU リソースの割り 付けを行い、さらに対話用に速いレスポンスを提供することです。 対 話 型方針の目的は、対話型プロセスには速いレスポンスを提供 し、CPU 消費型のジョブには高いスループットを提供することにあ ります。対話型クラスにある処理の優先順位は、タイムシェアリン グクラスにある処理と同じように変更できます。ただし、修正され た優先順位はユーザーとの対話の速い応答性を提供するために継続 します。 【使用例】 Example 1: リアルタイムクラス用の例 リアルタイムクラス用の例をいくつか示します。 example% priocntl -s -c RT -t 1 -r 10 -i idtype idlist この例では、idtype と idlist で指定された非リアルタイムの プ ロセスのクラスをリアルタイムに変更し、リアルタイム優先順位値 をデフォルトの 0 に設定します。現在リアルタイムクラスに属 し ているプロセスのリアルタイム優先順位値は変わりません。指定さ れたプロセスの時間値は、すべて 1/10 秒に設定されます。 example% priocntl -e -c RT -p 15 -t 20 command この例では、command で指定したコマンドをリアルタイムクラスで 実 行します。リアルタイム優先順位値は 5 で、時間値は 20 ミリ 秒となります。 タイムシェアリングクラスの例を以下に示します。 SunOS 5.7 1998年8月17日 8 ユーザーコマンド priocntl(1) example% priocntl -s -c TS -i idtype idlist この例では、idtype と idlist で指定した非タイムシェアリン グ のプロセスのクラスをタイムシェアリングに変更し、ユーザー優先 順位値と優先順位上限値を 0 に設定します。現在タイムシェア リ ングクラスに属しているプロセスには影響を与えません。 この例では command で指定したコマンドを、arguments で指定し た引数を使ってタイムシェアリングクラスで実行します。ユーザー 優先順位の上限値は 0 で、ユーザー優先順位は -15 となります。 example% priocntl -e -c TS -m 0 -p -15 command [arguments] 【終了ステータス】 以下の終了ステータスが返されます。 -d 、-l 、および -s オプションの場合: 0 正常終了 1 エラーが発生した -e オプションの場合: 実行されたコマンドの終了ステータス 正常終了 1 コマンドは指定された優先順位で実行できなかった 【属性】 次の属性については attributes(5) のマニュアルページを参照 し てください。 ____________________________________________________________ | 属性タイプ | 属性値 | |_____________________________|_____________________________| | 使用条件 | SUNWcsu | |_____________________________|_____________________________| | CSI | 対応済み | |_____________________________|_____________________________| 【関連項目】 nice(1), ps(1), exec(2), fork(2), priocntl(2), rt_dptbl(4), attributes(5) Solaris のシステム管理 (第 1 巻) 【診断】 priocntl は次に示すエラーメッセージを出力します。 Process(es) not found 指定されたプロセスが 1 つも存在しません。 SunOS 5.7 1998年8月17日 9 ユーザーコマンド priocntl(1) Specified processes from different classes -s オプションを使ってパラメタを設定しよう と し た が、 -c class オプションが省略されていて、複数のク ラスのプロセスが指定されていました。 Invalid option or argument 指定されたオプションまたは引数の中に、認識できない ものまたは不正なものがあります。 SunOS 5.7 1998年8月17日 10 onlsun2[38]% 参考資料(ここまで). onl8v1[69]% priocntl -l CONFIGURED CLASSES ================== SYS (System Class) TS (Time Sharing) Configured TS User Priority Range: -60 through 60 IA (Interactive) Configured IA User Priority Range: -60 through 60 RT (Real Time) Maximum Configured RT Priority: 59 onl8v1[70]% onl8v1[70]% vi keklistsingle_m1.c : #define LOOP 100 : strcpy(Filename, "camtest6sin-ini.obj"); if (argc > 1) action = atoi(argv[1]); else action = 0xf; Iosb.s_reg = action; if (status = CAM_Open()) error_exit(status); if (status = CamReaLIST(Filename, List, MAXLENLIST, &Lenlis, &Error)) error_exit(status); : get_time(&timevalue0[0]); if (status = CamLisExeWAIt(List, Lenlis, Buffer, MAXLENBUF, &Iosb)) error_exit(status); get_time(&timevalue1[0]); overhead[0] = (e_time(&timevalue0[0], &timevalue1[0])); printf("overhead time %d microsec\n", overhead[0] ); strcpy(Filename, "camtest6single.obj"); if (status = CamReaLIST(Filename, List, MAXLENLIST, &Lenlis, &Error)) error_exit(status); : get_time(&timevalue0[0]); /* # 1-100 */ if (status = CamLisExeWAIt(List, Lenlis, Buffer, MAXLENBUF, &Iosb)) error_exit(status); get_time(&timevalue1[0]); elapsed[0] = (e_time(&timevalue0[0], &timevalue1[0])); printf("CAMAC READ single action takes %d microsec.\n",(elapsed[0]-overhead[ 0])/LOOP); /* close CAMAC */ if (status = CAM_Close()) error_exit(status); /* CAM_Close(); */ } : onl8v1[71]% (3-3-3d-B). camtest6sin-ini.asmファイル、camtest6single.asmファイルの作成 onl8v1[161]% cat camtest6sin-ini.asm ; File name : camtest6sin-ini.asm ; Creation date : July 1992 ; Author : Y.Yasu, Online group, Physics department, KEK ; Modified : July 21, 2000 E.Inoue ; Modified : April 2, 2001 E.Inoue SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE INT equ 5 ; CAMAC INTERRUPT REGISTER ; MOVE #1,A SETCRATE A SETCRATE #0 GENZ GENC SETI REMI MOVE.l #1000,T ; ;LOOP SUB #1,T ; BGT #0,LOOP ; STOP end onl8v1[162]% onl8v1[159]% cat camtest6single.asm ; File name : camtest6single.asm ; Creation date : July 1992 ; Author : Y.Yasu, Online group, Physics department, KEK ; Modified : July 21, 2000 E.Inoue ; Modified : April 2, 2001 E.Inoue SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE INT equ 5 ; CAMAC INTERRUPT REGISTER ; MOVE #1,A SETCRATE A SETCRATE #0 GENZ GENC SETI REMI MOVE.l #1000,T ; ;LOOP READ.l (0,SW,1) ; SUB #1,T ; BGT #0,LOOP /* # 1-10 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 11-20 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 21-30 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 31-40 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 41-50 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 51-60 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 61-70 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 71-80 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 81-90 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 91-100 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) ; STOP end onl8v1[160]% onl8v1[164]% make keklistsingle_m1 cc -DOSF1 -o keklistsingle_m1 keklistsingle_m1.c -I../includes -L../lib -lcamac ../camasm/camasm camtest6single.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest6sin-ini.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 onl8v1[165]% ok. 正常にコンパイルできた。 参考. 試しにリスト処理の中で実行するシングルアクションの回数を 600回にして 実行してみた。 Error を起こして正常に実行できなかった。 onl8v1[74]% cp camtest6single.asm600loop camtest6single.asm onl8v1[75]% touch keklistsingle_m1.c onl8v1[76]% make keklistsingle_m1 cc -DOSF1 -o keklistsingle_m1 keklistsingle_m1.c -I../includes -L../lib -lcamac ../camasm/camasm camtest6single.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest6sin-ini.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 onl8v1[77]% keklistsingle_m1 elapsed time 0 sec, 419 microsec overhead time 419 microsec Error 0 onl8v1[78]% (3-3-3e). keklistint_m1のコンパイル "CAMAC-speed-list/examples-Solaris2.x/camint_measure1.c"ファイルと "FORCE-5V-sol7-list"キット中の camlist/camtest5c1.c を組み合わせた ものを書き直して、keklistint_m1.cファイルを作る。 そして、 camlist/camtest4int.asmを書き直して、camtest6int.asmファイルを 作る。 (3-3-3e-A). keklistint_m1.cファイルの作成 onl8v1[313]% vi keklistint_m1.c : #define LOOP 10 #define INTREG 5 #define OUTREG 4 : strcpy(Filename, "camtest6int-ini.obj"); if (argc > 1) action = atoi(argv[1]); else action = 0xf; Iosb.s_reg = action; if (status = CAM_Open()) error_exit(status); if (status = CamReaLIST(Filename, List, MAXLENLIST, &Lenlis, &Error)) error_exit(status); : /* Write operation time to the OUTREG */ get_time(&timevalue0[0]); if (status = CamLisExeWAIt(List, Lenlis, Buffer, MAXLENBUF, &Iosb)) error_exit(status); get_time(&timevalue1[0]); elapsed[0] = e_time(&timevalue0[0], &timevalue1[0]); : write_time = elapsed[0]; printf("write_pulse takes %d microsec.\n",write_time/LOOP); strcpy(Filename, "camtest6int.obj"); if (argc > 1) action = atoi(argv[1]); else action = 0xf; Iosb.s_reg = action; if (status = CamReaLIST(Filename, List, MAXLENLIST, &Lenlis, &Error)) error_exit(status); : /* Interrupt processing time & Write operation time to the OUTREG */ get_time(&timevalue0[0]); if (status = CamLisExeWAIt(List, Lenlis, Buffer, MAXLENBUF, &Iosb)) error_exit(status); get_time(&timevalue1[0]); elapsed[0] = e_time(&timevalue0[0], &timevalue1[0]); /* Interrupt processing time */ printf("WAITINT takes %d microsec.\n", (elapsed[0]-write_time)/LOOP ); : onl8v1[314]% (3-3-3e-B). camtest6int-ini.asmファイル、camtest6int.asmファイルの作成 onl8v1[314]% vi camtest6int-ini.asm : OREG equ 4 ; CAMAC OUTPUT REGISTER MOUDLE INT equ 5 ; CAMAC INTERRUPT REGISTER ; SETCRATE #0 GENZ GENC SETI REMI ; MOVE #0x10,A ; INT module's LAM mask. Station # = 5. ENBINT MOVE.l #10,T NDT (26,INT,0) LOOPIN1 MOVE #0x0,A WRITE.l A,(17,OREG,0) ; Write OUTPUT REGISTER data #0x0. MOVE #0xa,A ; Setting up timeout time. ; WAITINT NDT (9,INT,0) ; MOVE.l T,A ; WRITE.l A,(16,SW,0) SUB #1,T BGT #0,LOOPIN1 NDT (24,INT,0) DSBINT ; STOP end onl8v1[315]% onl8v1[316]% vi camtest6int.asm : OREG equ 4 ; CAMAC OUTPUT REGISTER MOUDLE INT equ 5 ; CAMAC INTERRUPT REGISTER ; SETCRATE #0 GENZ GENC SETI REMI ; MOVE #0x10,A ; INT module's LAM mask. Station # = 5. ENBINT MOVE.l #10,T NDT (26,INT,0) LOOPIN1 MOVE #0xf,A WRITE.l A,(17,OREG,0) ; Write OUTPUT REGISTER data #0xf. MOVE #0xa,A ; Setting up timeout time. WAITINT NDT (9,INT,0) ; MOVE.l T,A ; WRITE.l A,(16,SW,0) SUB #1,T BGT #0,LOOPIN1 NDT (24,INT,0) DSBINT ; STOP end onl8v1[317]% onl8v1[319]% make keklistint_m1 cc -DOSF1 -o keklistint_m1 keklistint_m1.c -I../includes -L../lib -lcamac ../camasm/camasm camtest6int.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest6int-ini.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 onl8v1[320]% ok. 正常にコンパイルできた。 (3-3-3f). keklistblock_m1のコンパイル "CAMAC-speed-list/examples-Solaris2.x/camblock_measure1.c"ファイルと "FORCE-5V-sol7-list"キット中の camlist/camtest5c2.c を組み合わせた ものを書き直して、keklistblock_m1.cファイルを作る。 そして、 camlist/camtest4dma.asmを書き直して、camtest6block.asmファイルを 作る。 (3-3-3f-A). keklistblock_m1.cファイルの作成 onl8v1[471]% vi keklistblock_m1.c : #define LOOP 10 : #define MAXLEN 8000 : strcpy(Filename, "camtest6blk-ini0.obj"); if (argc > 1) action = atoi(argv[1]); else action = 0xf; Iosb.s_reg = action; if (status = CAM_Open()) error_exit(status); /* printf("CAM_Open() : OK\n"); */ if (status = CamReaLIST(Filename, List, MAXLENLIST, &Lenlis, &Error)) error_exit(status); : strcpy(Filename, "camtest6blk-ini.obj"); if (argc > 1) action = atoi(argv[1]); else action = 0xf; Iosb.s_reg = action; if (status = CamReaLIST(Filename, List, MAXLENLIST, &Lenlis, &Error)) error_exit(status); /* printf("CamReaLIST : OK\n"); printf("lenlist = %d\n", Lenlis); printf("list = %x %x %x %x %x\n", List[0], List[1], List[2], List[3]); */ get_time(&timevalue0[0]); if (status = CamLisExeWAIt(List, Lenlis, Buffer, MAXLENBUF, &Iosb)) error_exit(status); get_time(&timevalue1[0]); average = 0.0; elapsed[0] = e_time(&timevalue0[0], &timevalue1[0]); average = average + (float)elapsed[0]; printf("CAMAC READ block action with 1word takes %10.0f microsec.\n", average/(float)LOOP); average_min = average/(float)LOOP; : strcpy(Filename, "camtest6blk.obj"); if (argc > 1) action = atoi(argv[1]); else action = 0xf; Iosb.s_reg = action; if (status = CamReaLIST(Filename, List, MAXLENLIST, &Lenlis, &Error)) error_exit(status); /* printf("CamReaLIST : OK\n"); printf("lenlist = %d\n", Lenlis); printf("list = %x %x %x %x %x\n", List[0], List[1], List[2], List[3]); */ get_time(&timevalue0[0]); if (status = CamLisExeWAIt(List, Lenlis, Buffer, MAXLENBUF, &Iosb)) error_exit(status); get_time(&timevalue1[0]); : average = 0.0; elapsed[0] = e_time(&timevalue0[0], &timevalue1[0]); average = average + (float)elapsed[0]; printf("CAMAC READ block action with 8Kwords takes %10.0f microsec.\n", average/(float)LOOP); average_max = average/(float)LOOP; average = maxlen*2000./(average_max-average_min); printf("transfer speed is %10.0f KB/S\n", average); : onl8v1[472]% (3-3-3f-B). camtest6blk-ini0.asmファイル、camtest6blk-ini.asmファイル、 camtest6blk.asmファイルの作成 onl8v1[42]% vi camtest6blk-ini0.asm : SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE K3922 equ 30 ; K3922 ; SETCRATE #0 GENZ GENC SETI REMI READ.l (1,K3922,0),A BIS #0x80,A WRITE.l A,(17,K3922,0) ; Set double buffer mode ; STOP end : onl8v1[43]% onl8v1[44]% vi camtest6blk-ini.asm : SW equ 3 ; CAMAC SWITCH REGISTER : IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word : onl8v1[45]% onl8v1[46]% vi camtest6blk.asm : SW equ 3 ; CAMAC SWITCH REGISTER MEM equ 4 ; CAMAC BUFFER MEMORY MOUDLE : IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words : onl8v1[47]% onl8v1[49]% make keklistblock_m1 cc -DOSF1 -o keklistblock_m1 keklistblock_m1.c -I../includes -L../lib -lcamac ../camasm/camasm camtest6blk.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest6blk-ini0.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest6blk-ini.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 onl8v1[50]% (3-3-3g). kinelistsingle_m1のコンパイル Kineticリスト処理によるシングルアクションreadの実行時間の測定も、 KEKリスト処理によるシングルアクションreadの場合と同じやり方をとることに する。 つまり、シングルアクションRead の CAMAC コールを100回実行し、 この100回実行の前後で時間を測り、その値を 100 で割る。 さらにこの操作 を100回実行する。 "CAMAC-speed-list/examples-Solaris2.x/camsingle_measure1.c"ファイルと "FORCE-5V-sol7-list"キット中の camlist-kine/cam6.c を組み合わせたものを 書き直して、kinelistsingle_m1.cファイルを作る。 そして、camlist-kine/ cam6.asmを書き直して、camtest7single.asmファイルを作る。 (3-3-3g-A). kinelistsingle_m1.cファイルの作成 onl8v1[80]% vi kinelistsingle.sh : #! /bin/csh # #@ count = 6 @ count = 1 while ( $count ) if ( $count > 100) then echo "program stop" exit endif echo "program execution : loop count = $count" # /home3/disc/util/form $count # ./camsingle_measure1 priocntl -e -c RT -p 55 ./kinelistsingle_m1 @ count = $count + 1 end onl8v1[81]% onl8v1[81]% vi kinelistsingle_m1.c : #include : #define D_size 20240 #define L_size 1024 #define DEFNAME "camtest7sin-ini.obj" #define DEFNAME1 "camtest7single.obj" : unsigned short list[L_size]; unsigned short data[D_size]; unsigned short *usp; struct cc_iosb iosb; int lenlis; char filename[33]; int status, Error, i; int action; unsigned short List[MAXLENLIST], Buffer[MAXLENBUF], *PtrBuffer; : usp = data; /* read options */ strcpy(filename, (argc > 1) ? argv[1] : DEFNAME); /* Initialize data buffer */ for(i = 0; i < D_size; i++) usp[i] = 0; /* Open */ if (CAMOPN()) { printf("Open error!\n"); exit(1); } CGENC(); CGENZ(); CREMI(); CKINIT(); /* read camac list */ status = CRLIST(filename, list, L_size, &lenlis, &i); printf(" list length = %d\n", lenlis); if (status) { printf("Read list error!\n"); exit(status); } /* install the list to K2917 */ status = CKADD("test1", list, lenlis); if (status) { printf("Load list error!\n"); exit(status); } : get_time(&timevalue0[0]); CKEXEC("test1", data, D_size, &iosb); get_time(&timevalue1[0]); overhead[0] = (e_time(&timevalue0[0], &timevalue1[0])); printf("overhead time %d microsec\n", overhead[0] ); : /* read options */ strcpy(filename, (argc > 1) ? argv[1] : DEFNAME1); /* read camac list */ status = CRLIST(filename, list, L_size, &lenlis, &i); printf(" list length = %d\n", lenlis); if (status) { printf("Read list error!\n"); exit(status); } /* install the list to K2917 */ status = CKADD("test2", list, lenlis); if (status) { printf("Load list error!\n"); exit(status); } : get_time(&timevalue0[0]); /* # 1-100 */ CKEXEC("test2", data, D_size, &iosb); get_time(&timevalue1[0]); elapsed[0] = (e_time(&timevalue0[0], &timevalue1[0])); printf("CAMAC READ single action takes %d microsec.\n",(elapsed[0]-overhead[ 0])/LOOP); : onl8v1[82]% (3-3-3g-B). camtest7sin-ini.asmファイル、camtest7single.asmファイルの作成 onl8v1[105]% vi camtest7sin-ini.asm : SW equ 3 ; Switch Register ; ; STOP end onl8v1[106]% onl8v1[145]% vi camtest7single.asm : SW equ 3 ; Switch Register ; : /* # 1-10 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 11-20 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 21-30 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 31-40 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 41-50 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 51-60 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 61-70 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 71-80 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 81-90 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) /* # 91-100 */ READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) READ.l (0,SW,1) ; ; STOP end : onl8v1[146]% onl8v1[307]% make kinelistsingle_m1 cc -DOSF1 -o kinelistsingle_m1 kinelistsingle_m1.c -I../includes -L../lib -lcamac ../camasm/camasm camtest7single.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest7sin-ini.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 onl8v1[308]% ok. 正常にコンパイルできた。 (3-3-3h). キネティック・リスト処理でのLAM割り込み処理について キネティック・リスト処理では LAM割り込み処理を実行することはできないので そのための測定プログラムは存在しない。 (3-3-3i). kinelistblock_m1のコンパイル "CAMAC-speed-list/examples-Solaris2.x/kinelistsingle_m1.c"ファイルと "FORCE-5V-sol7-list"キット中の camlist-kine/cam6.c を組み合わせた ものを書き直して、kinelistblk_m1.cファイルを作る。 そして、 "CAMAC-speed-list/examples-Solaris2.x/camtest7single.asm"ファイルを書き 直して、camtest7blk.asmファイルを作る。 (3-3-3i-A). kinelistblk_m1.cファイルの作成 onl8v1[113]% vi kinelistblk.sh : #! /bin/csh # #@ count = 6 @ count = 1 while ( $count ) if ( $count > 100) then echo "program stop" exit endif echo "program execution : loop count = $count" # /home3/disc/util/form $count # ./camsingle_measure1 priocntl -e -c RT -p 55 ./kinelistblk_m1 @ count = $count + 1 end onl8v1[114]% onl8v1[165]% vi kinelistblk_m1.c : #define LOOP 1 #define SWREG 3 #define MAXLEN 8000 #define MINLEN 1 /* Macros */ /*#define MAXLENBUF 10000 */ #define MAXLENBUF 3000000 #define MAXLENLIST 1000 /*#define D_size 20240 */ /*#define D_size 82944*/ /* 80K word + 1K word */ #define D_size 131072 /* 128K word */ #define L_size 1024 #define DEFNAME "camtest7blk-ini0.obj" #define DEFNAME1 "camtest7blk-ini.obj" #define DEFNAME2 "camtest7blk.obj" : struct timeval timevalue0[LOOP], timevalue1[LOOP]; int elapsed[LOOP]; float average, average_min, average_max; float maxlen = (float)MAXLEN; : unsigned short list[L_size]; unsigned short data[D_size]; unsigned short *usp; struct cc_iosb iosb; int lenlis; char filename[33]; int status, Error, i; int action; unsigned short List[MAXLENLIST], Buffer[MAXLENBUF], *PtrBuffer; usp = data; /* read options */ strcpy(filename, (argc > 1) ? argv[1] : DEFNAME); : /* Open */ if (CAMOPN()) { printf("Open error!\n"); exit(1); } CGENC(); CGENZ(); CREMI(); CKINIT(); : /* read camac list */ status = CRLIST(filename, list, L_size, &lenlis, &i); printf(" list length = %d\n", lenlis); if (status) { printf("Read list error!\n"); exit(status); } /* install the list to K2917 */ status = CKADD("test1", list, lenlis); if (status) { printf("Load list error!\n"); exit(status); } /* Execute */ printf(" Now execute %s ...\n", filename); CKEXEC("test1", data, D_size, &iosb); : /* read options */ strcpy(filename, (argc > 1) ? argv[1] : DEFNAME1); /* read camac list */ status = CRLIST(filename, list, L_size, &lenlis, &i); printf(" list length = %d\n", lenlis); if (status) { printf("Read list error!\n"); exit(status); } /* install the list to K2917 */ status = CKADD("test2", list, lenlis); if (status) { printf("Load list error!\n"); exit(status); } /* Execute */ printf(" Now execute %s ...\n", filename); get_time(&timevalue0[0]); CKEXEC("test2", data, D_size, &iosb); get_time(&timevalue1[0]); average = 0.0; elapsed[0] = e_time(&timevalue0[0], &timevalue1[0]); average = average + (float)elapsed[0]; : printf("CAMAC READ block action with 1word takes %10.0f microsec.\n", average); average_min = average; : /* read options */ strcpy(filename, (argc > 1) ? argv[1] : DEFNAME2); /* read camac list */ status = CRLIST(filename, list, L_size, &lenlis, &i); printf(" list length = %d\n", lenlis); if (status) { printf("Read list error!\n"); exit(status); } /* install the list to K2917 */ status = CKADD("test3", list, lenlis); if (status) { printf("Load list error!\n"); exit(status); } /* Execute */ printf(" Now execute %s ...\n", filename); get_time(&timevalue0[0]); CKEXEC("test3", data, D_size, &iosb); get_time(&timevalue1[0]); average = 0.0; elapsed[0] = e_time(&timevalue0[0], &timevalue1[0]); average = average + (float)elapsed[0]; printf("CAMAC READ block action with 8Kwords takes %10.0f microsec.\n", average/(float)LOOP); average_max = average/(float)LOOP; average = maxlen*2000./(average_max-average_min); printf("transfer speed is %10.0f KB/S\n", average); : onl8v1[166]% (3-3-3i-B). camtest7blk-ini0.asmファイル、camtest7blk-ini.asmファイル、 camtest7blk.asmファイルの作成 onl8v1[167]% vi camtest7blk-ini0.asm : SW equ 3 ; Switch Register K3922 equ 30 ; K3922 ; ; READ.l (1,K3922,0),A BIS #0x80,A WRITE.l A,(17,K3922,0) ; Set double buffer mode ; STOP end : onl8v1[168]% onl8v1[168]% vi camtest7blk-ini.asm : SW equ 3 ; Switch Register K3922 equ 30 ; K3922 ; IGQ (0,SW,1),#0x1 ; Block tranfer Read 1 word ; STOP end : onl8v1[169]% onl8v1[170]% vi camtest7blk.asm : SW equ 3 ; Switch Register K3922 equ 30 ; K3922 ; IGQ (0,SW,1),#8000 ; Block tranfer Read 8000 words ; STOP end : onl8v1[171]% onl8v1[176]% make kinelistblk_m1 cc -DOSF1 -o kinelistblk_m1 kinelistblk_m1.c -I../includes -L../lib -lcamac ../camasm/camasm camtest7blk.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest7blk-ini0.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 ../camasm/camasm camtest7blk-ini.asm CAMASM macro assembler V0.1 --- KEK online group --- Modified by Y.T Oct-1991 onl8v1[177]% ok. 正常にコンパイルできた。 (4). データ転送速度測定プログラムの実行 上記でコンパイルしたデータ転送速度測定プログラムを実行する。 測定は次の項目について行った。 o 基本処理 24 ビット camac シングルアクション Read実行時間 camac LAM 割り込み処理実行時間 16 ビット camac ブロック転送速度 o KEKリスト処理 24 ビット camac シングルアクション Read実行時間 camac LAM 割り込み処理実行時間 16 ビット camac ブロック転送速度 o Kineticリスト処理 24 ビット camac シングルアクション Read実行時間 16 ビット camac ブロック転送速度 (4-1). 基本処理、24 ビットcamacシングルアクション Read実行時間の測定 シェルスクリプトを使って、データ転送速度測定プログラムを 100回繰り返し ている。 onl8v1# pwd /export/home/onl8v1/inoue/CAMAC-speed-list/examples-Solaris2.x onl8v1# camsingle.sh program execution : loop count = 1 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47399 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 2 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47653 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 3 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47869 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 4 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47616 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 5 elapsed time 0 sec, 4 microsec overhead time 4 microsec elapsed time 0 sec, 47727 microsec elapsed time 47 microsec CAMAC READ single action takes 43 microsec. program execution : loop count = 6 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47735 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 7 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47674 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 8 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47300 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 9 elapsed time 0 sec, 4 microsec overhead time 4 microsec elapsed time 0 sec, 47699 microsec elapsed time 47 microsec CAMAC READ single action takes 43 microsec. program execution : loop count = 10 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47539 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 11 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47848 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 12 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47337 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 13 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47820 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 14 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47623 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 15 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47681 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 16 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47369 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 17 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47716 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 18 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47500 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 19 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47641 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 20 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47526 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 21 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47687 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 22 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47546 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 23 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47743 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 24 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47297 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 25 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47648 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 26 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47605 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 27 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47705 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 28 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47574 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 29 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47705 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 30 elapsed time 0 sec, 4 microsec overhead time 4 microsec elapsed time 0 sec, 47624 microsec elapsed time 47 microsec CAMAC READ single action takes 43 microsec. program execution : loop count = 31 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47840 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 32 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47806 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 33 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47658 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 34 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47538 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 35 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47697 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 36 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47726 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 37 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47679 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 38 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47295 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 39 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47605 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 40 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47716 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 41 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47745 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 42 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47548 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 43 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47705 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 44 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47304 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 45 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47799 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 46 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47583 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 47 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47688 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 48 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47499 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 49 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47737 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 50 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47354 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 51 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47687 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 52 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47632 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 53 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47853 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 54 elapsed time 0 sec, 72 microsec overhead time 72 microsec elapsed time 0 sec, 47620 microsec elapsed time 47 microsec CAMAC READ single action takes -25 microsec. program execution : loop count = 55 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47658 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 56 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47626 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 57 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47675 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 58 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47590 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 59 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47687 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 60 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47283 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 61 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47786 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 62 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47338 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 63 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47692 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 64 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47613 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 65 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47787 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 66 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47629 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 67 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47721 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 68 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47357 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 69 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47694 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 70 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47566 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 71 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47713 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 72 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47351 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 73 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47782 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 74 elapsed time 0 sec, 8 microsec overhead time 8 microsec elapsed time 0 sec, 47526 microsec elapsed time 47 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 75 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47705 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 76 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47293 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 77 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47644 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 78 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47599 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 79 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47687 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 80 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47628 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 81 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47627 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 82 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47302 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 83 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47668 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 84 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47541 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 85 elapsed time 0 sec, 7 microsec overhead time 7 microsec elapsed time 0 sec, 47709 microsec elapsed time 47 microsec CAMAC READ single action takes 40 microsec. program execution : loop count = 86 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47330 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 87 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47810 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 88 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47353 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 89 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47663 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 90 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47550 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 91 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47699 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 92 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47315 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 93 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47630 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 94 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47544 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 95 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47838 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 96 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47357 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 97 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47620 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 98 elapsed time 0 sec, 6 microsec overhead time 6 microsec elapsed time 0 sec, 47591 microsec elapsed time 47 microsec CAMAC READ single action takes 41 microsec. program execution : loop count = 99 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47659 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program execution : loop count = 100 elapsed time 0 sec, 5 microsec overhead time 5 microsec elapsed time 0 sec, 47514 microsec elapsed time 47 microsec CAMAC READ single action takes 42 microsec. program stop onl8v1# 基本処理で、24ビットシングルアクションReadを実行するのに要した時間は、 42μsec であった。 (4-2). 基本処理、camac LAM 割り込み処理実行時間 onl8v1# priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 53 microsec. CAM_WaitLAM takes 111 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 54 microsec. CAM_WaitLAM takes 111 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 54 microsec. CAM_WaitLAM takes 113 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 53 microsec. CAM_WaitLAM takes 111 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 54 microsec. CAM_WaitLAM takes 112 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 54 microsec. CAM_WaitLAM takes 110 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 53 microsec. CAM_WaitLAM takes 111 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 53 microsec. CAM_WaitLAM takes 111 microsec. onl8v1# !! priocntl -e -c RT -p 55 camint_measure1 write_pulse takes 53 microsec. CAM_WaitLAM takes 111 microsec. onl8v1# 基本処理で、割り込み処理を実行するのに要した時間は、111μsec であった。 (4-3). 基本処理、16 ビット camac ブロック転送速度 onl8v1# priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 282 microsec. CAMAC READ block action with 8Kwords takes 17963 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 292 microsec. CAMAC READ block action with 8Kwords takes 17967 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 287 microsec. CAMAC READ block action with 8Kwords takes 17968 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 280 microsec. CAMAC READ block action with 8Kwords takes 17974 microsec. transfer speed is 904 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 286 microsec. CAMAC READ block action with 8Kwords takes 17966 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 295 microsec. CAMAC READ block action with 8Kwords takes 17956 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 286 microsec. CAMAC READ block action with 8Kwords takes 17956 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 274 microsec. CAMAC READ block action with 8Kwords takes 17950 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 294 microsec. CAMAC READ block action with 8Kwords takes 17969 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 camblock_measure1 CAMAC READ block action with 1word takes 279 microsec. CAMAC READ block action with 8Kwords takes 17963 microsec. transfer speed is 905 KB/S onl8v1# 基本処理で、ブロック転送のオーバーヘッドに要した時間は、290μsec で あった。 データを、8Kワード読み出すのに要した時間は 17963μsec で、 転送速度は、905 KByte/sec であった。 (4-4). KEKリスト処理、24 ビット camac シングルアクション Read実行時間 onl8v1# keklistsingle.sh program execution : loop count = 1 elapsed time 0 sec, 416 microsec overhead time 416 microsec elapsed time 0 sec, 3976 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 2 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3975 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 3 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 4353 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 4 elapsed time 0 sec, 403 microsec overhead time 403 microsec elapsed time 0 sec, 3964 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 5 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3969 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 6 elapsed time 0 sec, 412 microsec overhead time 412 microsec elapsed time 0 sec, 3972 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 7 elapsed time 0 sec, 401 microsec overhead time 401 microsec elapsed time 0 sec, 4031 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 8 elapsed time 0 sec, 410 microsec overhead time 410 microsec elapsed time 0 sec, 4022 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 9 elapsed time 0 sec, 415 microsec overhead time 415 microsec elapsed time 0 sec, 4028 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 10 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 3960 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 11 elapsed time 0 sec, 404 microsec overhead time 404 microsec elapsed time 0 sec, 3964 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 12 elapsed time 0 sec, 467 microsec overhead time 467 microsec elapsed time 0 sec, 4348 microsec CAMAC READ single action takes 38 microsec. program execution : loop count = 13 elapsed time 0 sec, 404 microsec overhead time 404 microsec elapsed time 0 sec, 3963 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 14 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 4030 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 15 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 4031 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 16 elapsed time 0 sec, 402 microsec overhead time 402 microsec elapsed time 0 sec, 3975 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 17 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 3967 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 18 elapsed time 0 sec, 413 microsec overhead time 413 microsec elapsed time 0 sec, 3970 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 19 elapsed time 0 sec, 401 microsec overhead time 401 microsec elapsed time 0 sec, 4343 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 20 elapsed time 0 sec, 411 microsec overhead time 411 microsec elapsed time 0 sec, 3976 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 21 elapsed time 0 sec, 409 microsec overhead time 409 microsec elapsed time 0 sec, 3971 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 22 elapsed time 0 sec, 409 microsec overhead time 409 microsec elapsed time 0 sec, 4024 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 23 elapsed time 0 sec, 402 microsec overhead time 402 microsec elapsed time 0 sec, 4025 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 24 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 4034 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 25 elapsed time 0 sec, 404 microsec overhead time 404 microsec elapsed time 0 sec, 3968 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 26 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3973 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 27 elapsed time 0 sec, 417 microsec overhead time 417 microsec elapsed time 0 sec, 3967 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 28 elapsed time 0 sec, 409 microsec overhead time 409 microsec elapsed time 0 sec, 4357 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 29 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 3969 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 30 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3974 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 31 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 4031 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 32 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 4024 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 33 elapsed time 0 sec, 409 microsec overhead time 409 microsec elapsed time 0 sec, 4029 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 34 elapsed time 0 sec, 403 microsec overhead time 403 microsec elapsed time 0 sec, 3969 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 35 elapsed time 0 sec, 473 microsec overhead time 473 microsec elapsed time 0 sec, 3965 microsec CAMAC READ single action takes 34 microsec. program execution : loop count = 36 elapsed time 0 sec, 409 microsec overhead time 409 microsec elapsed time 0 sec, 3976 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 37 elapsed time 0 sec, 403 microsec overhead time 403 microsec elapsed time 0 sec, 4349 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 38 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 3976 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 39 elapsed time 0 sec, 405 microsec overhead time 405 microsec elapsed time 0 sec, 3964 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 40 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 4034 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 41 elapsed time 0 sec, 400 microsec overhead time 400 microsec elapsed time 0 sec, 4028 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 42 elapsed time 0 sec, 400 microsec overhead time 400 microsec elapsed time 0 sec, 4034 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 43 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 3967 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 44 elapsed time 0 sec, 414 microsec overhead time 414 microsec elapsed time 0 sec, 3973 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 45 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 3966 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 46 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 4369 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 47 elapsed time 0 sec, 401 microsec overhead time 401 microsec elapsed time 0 sec, 3975 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 48 elapsed time 0 sec, 415 microsec overhead time 415 microsec elapsed time 0 sec, 4033 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 49 elapsed time 0 sec, 401 microsec overhead time 401 microsec elapsed time 0 sec, 4025 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 50 elapsed time 0 sec, 405 microsec overhead time 405 microsec elapsed time 0 sec, 4024 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 51 elapsed time 0 sec, 415 microsec overhead time 415 microsec elapsed time 0 sec, 3976 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 52 elapsed time 0 sec, 415 microsec overhead time 415 microsec elapsed time 0 sec, 3969 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 53 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3967 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 54 elapsed time 0 sec, 401 microsec overhead time 401 microsec elapsed time 0 sec, 3966 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 55 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 4332 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 56 elapsed time 0 sec, 411 microsec overhead time 411 microsec elapsed time 0 sec, 3963 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 57 elapsed time 0 sec, 410 microsec overhead time 410 microsec elapsed time 0 sec, 4045 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 58 elapsed time 0 sec, 410 microsec overhead time 410 microsec elapsed time 0 sec, 4169 microsec CAMAC READ single action takes 37 microsec. program execution : loop count = 59 elapsed time 0 sec, 402 microsec overhead time 402 microsec elapsed time 0 sec, 4023 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 60 elapsed time 0 sec, 403 microsec overhead time 403 microsec elapsed time 0 sec, 4042 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 61 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 3964 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 62 elapsed time 0 sec, 402 microsec overhead time 402 microsec elapsed time 0 sec, 3964 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 63 elapsed time 0 sec, 402 microsec overhead time 402 microsec elapsed time 0 sec, 3960 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 64 elapsed time 0 sec, 405 microsec overhead time 405 microsec elapsed time 0 sec, 4345 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 65 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3964 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 66 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 3972 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 67 elapsed time 0 sec, 410 microsec overhead time 410 microsec elapsed time 0 sec, 4031 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 68 elapsed time 0 sec, 411 microsec overhead time 411 microsec elapsed time 0 sec, 4036 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 69 elapsed time 0 sec, 404 microsec overhead time 404 microsec elapsed time 0 sec, 4040 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 70 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 4358 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 71 elapsed time 0 sec, 405 microsec overhead time 405 microsec elapsed time 0 sec, 3983 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 72 elapsed time 0 sec, 399 microsec overhead time 399 microsec elapsed time 0 sec, 3961 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 73 elapsed time 0 sec, 403 microsec overhead time 403 microsec elapsed time 0 sec, 4050 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 74 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 4021 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 75 elapsed time 0 sec, 405 microsec overhead time 405 microsec elapsed time 0 sec, 4032 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 76 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 3970 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 77 elapsed time 0 sec, 400 microsec overhead time 400 microsec elapsed time 0 sec, 3969 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 78 elapsed time 0 sec, 412 microsec overhead time 412 microsec elapsed time 0 sec, 3972 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 79 elapsed time 0 sec, 409 microsec overhead time 409 microsec elapsed time 0 sec, 4344 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 80 elapsed time 0 sec, 403 microsec overhead time 403 microsec elapsed time 0 sec, 3966 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 81 elapsed time 0 sec, 403 microsec overhead time 403 microsec elapsed time 0 sec, 3969 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 82 elapsed time 0 sec, 413 microsec overhead time 413 microsec elapsed time 0 sec, 4036 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 83 elapsed time 0 sec, 401 microsec overhead time 401 microsec elapsed time 0 sec, 4048 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 84 elapsed time 0 sec, 399 microsec overhead time 399 microsec elapsed time 0 sec, 4024 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 85 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 3964 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 86 elapsed time 0 sec, 408 microsec overhead time 408 microsec elapsed time 0 sec, 3963 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 87 elapsed time 0 sec, 402 microsec overhead time 402 microsec elapsed time 0 sec, 3962 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 88 elapsed time 0 sec, 409 microsec overhead time 409 microsec elapsed time 0 sec, 4347 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 89 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3965 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 90 elapsed time 0 sec, 413 microsec overhead time 413 microsec elapsed time 0 sec, 4031 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 91 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 4049 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 92 elapsed time 0 sec, 404 microsec overhead time 404 microsec elapsed time 0 sec, 4028 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 93 elapsed time 0 sec, 402 microsec overhead time 402 microsec elapsed time 0 sec, 4052 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 94 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 4047 microsec CAMAC READ single action takes 36 microsec. program execution : loop count = 95 elapsed time 0 sec, 405 microsec overhead time 405 microsec elapsed time 0 sec, 3963 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 96 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3967 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 97 elapsed time 0 sec, 410 microsec overhead time 410 microsec elapsed time 0 sec, 3965 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 98 elapsed time 0 sec, 407 microsec overhead time 407 microsec elapsed time 0 sec, 3971 microsec CAMAC READ single action takes 35 microsec. program execution : loop count = 99 elapsed time 0 sec, 410 microsec overhead time 410 microsec elapsed time 0 sec, 4350 microsec CAMAC READ single action takes 39 microsec. program execution : loop count = 100 elapsed time 0 sec, 406 microsec overhead time 406 microsec elapsed time 0 sec, 4031 microsec CAMAC READ single action takes 36 microsec. program stop onl8v1# KEKリスト処理で、24 ビット camacシングルアクション Readのオーバーヘッド に要した時間は、406μsec であった。 データを、8Kワード読み出すのに要した 時間は 36μsec であった。 (4-5). KEKリスト処理、camac LAM 割り込み処理実行時間 onl8v1# priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 131 microsec. WAITINT takes 105 microsec. onl8v1# !! priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 129 microsec. WAITINT takes 104 microsec. onl8v1# !! priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 129 microsec. WAITINT takes 106 microsec. onl8v1# !! priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 130 microsec. WAITINT takes 105 microsec. onl8v1# !! priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 130 microsec. WAITINT takes 106 microsec. onl8v1# !! priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 130 microsec. WAITINT takes 104 microsec. onl8v1# !! priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 130 microsec. WAITINT takes 106 microsec. onl8v1# !! priocntl -e -c RT -p 55 keklistint_m1 write_pulse takes 130 microsec. WAITINT takes 105 microsec. onl8v1# KEKリスト処理で、割り込み処理を実行するのに要した時間は、105μsec で あった。 (4-6). KEKリスト処理、16 ビット camac ブロック転送速度 onl8v1# priocntl -e -c RT -p 55 keklistblock_m1 CAMAC READ block action with 1word takes 205 microsec. CAMAC READ block action with 8Kwords takes 17851 microsec. transfer speed is 907 KB/S onl8v1# !! priocntl -e -c RT -p 55 keklistblock_m1 CAMAC READ block action with 1word takes 208 microsec. CAMAC READ block action with 8Kwords takes 17846 microsec. transfer speed is 907 KB/S onl8v1# !! priocntl -e -c RT -p 55 keklistblock_m1 CAMAC READ block action with 1word takes 208 microsec. CAMAC READ block action with 8Kwords takes 17860 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 keklistblock_m1 CAMAC READ block action with 1word takes 203 microsec. CAMAC READ block action with 8Kwords takes 17845 microsec. transfer speed is 907 KB/S onl8v1# !! priocntl -e -c RT -p 55 keklistblock_m1 CAMAC READ block action with 1word takes 201 microsec. CAMAC READ block action with 8Kwords takes 17848 microsec. transfer speed is 907 KB/S onl8v1# !! priocntl -e -c RT -p 55 keklistblock_m1 CAMAC READ block action with 1word takes 200 microsec. CAMAC READ block action with 8Kwords takes 17846 microsec. transfer speed is 907 KB/S onl8v1# KEKリスト処理で、ブロック転送のオーバーヘッドに要した時間は、205μsec であった。 データを、8Kワード読み出すのに要した時間は 17851μsec で、 転送速度は、907 KByte/sec であった。 (4-7). Kineticリスト処理、24 ビット camac シングルアクション Read実行時間 onl8v1# kinelistsingle.sh program execution : loop count = 1 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 473 microsec overhead time 473 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 2 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 453 microsec overhead time 453 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1479 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 3 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 443 microsec overhead time 443 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1476 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 4 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 429 microsec overhead time 429 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1475 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 5 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 461 microsec overhead time 461 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1473 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 6 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 469 microsec overhead time 469 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1483 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 7 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 436 microsec overhead time 436 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1478 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 8 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 448 microsec overhead time 448 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1501 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 9 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 444 microsec overhead time 444 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 10 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 467 microsec overhead time 467 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1488 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 11 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 454 microsec overhead time 454 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1496 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 12 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 464 microsec overhead time 464 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1480 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 13 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 431 microsec overhead time 431 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1568 microsec CAMAC READ single action takes 11 microsec. program execution : loop count = 14 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 435 microsec overhead time 435 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 15 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 472 microsec overhead time 472 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1484 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 16 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 454 microsec overhead time 454 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1496 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 17 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 439 microsec overhead time 439 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1488 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 18 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 516 microsec overhead time 516 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1485 microsec CAMAC READ single action takes 9 microsec. program execution : loop count = 19 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 439 microsec overhead time 439 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1491 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 20 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 440 microsec overhead time 440 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 21 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 463 microsec overhead time 463 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1491 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 22 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 443 microsec overhead time 443 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1484 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 23 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 466 microsec overhead time 466 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1477 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 24 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 448 microsec overhead time 448 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1569 microsec CAMAC READ single action takes 11 microsec. program execution : loop count = 25 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 468 microsec overhead time 468 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1485 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 26 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 436 microsec overhead time 436 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 27 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 447 microsec overhead time 447 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1484 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 28 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 458 microsec overhead time 458 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1481 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 29 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 432 microsec overhead time 432 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1479 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 30 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 451 microsec overhead time 451 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1478 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 31 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 467 microsec overhead time 467 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 32 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 453 microsec overhead time 453 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 33 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 443 microsec overhead time 443 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 34 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 465 microsec overhead time 465 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1485 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 35 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 509 microsec overhead time 509 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1482 microsec CAMAC READ single action takes 9 microsec. program execution : loop count = 36 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 447 microsec overhead time 447 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1541 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 37 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 462 microsec overhead time 462 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1494 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 38 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 445 microsec overhead time 445 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 39 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 453 microsec overhead time 453 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1492 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 40 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 462 microsec overhead time 462 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1499 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 41 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 454 microsec overhead time 454 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1491 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 42 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 450 microsec overhead time 450 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 43 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 460 microsec overhead time 460 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 44 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 436 microsec overhead time 436 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1475 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 45 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 455 microsec overhead time 455 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1484 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 46 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 463 microsec overhead time 463 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1479 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 47 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 457 microsec overhead time 457 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1482 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 48 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 446 microsec overhead time 446 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1483 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 49 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 446 microsec overhead time 446 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 50 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 455 microsec overhead time 455 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1484 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 51 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 452 microsec overhead time 452 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1488 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 52 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 455 microsec overhead time 455 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1493 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 53 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 437 microsec overhead time 437 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1491 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 54 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 450 microsec overhead time 450 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1477 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 55 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 464 microsec overhead time 464 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 56 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 517 microsec overhead time 517 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 9 microsec. program execution : loop count = 57 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 519 microsec overhead time 519 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1485 microsec CAMAC READ single action takes 9 microsec. program execution : loop count = 58 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 462 microsec overhead time 462 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1485 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 59 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 466 microsec overhead time 466 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1494 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 60 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 452 microsec overhead time 452 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 61 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 437 microsec overhead time 437 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 62 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 471 microsec overhead time 471 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1504 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 63 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 464 microsec overhead time 464 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 64 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 451 microsec overhead time 451 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1482 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 65 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 809 microsec overhead time 809 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1491 microsec CAMAC READ single action takes 6 microsec. program execution : loop count = 66 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 455 microsec overhead time 455 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1486 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 67 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 452 microsec overhead time 452 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1481 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 68 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 432 microsec overhead time 432 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1483 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 69 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 464 microsec overhead time 464 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1482 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 70 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 448 microsec overhead time 448 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1490 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 71 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 459 microsec overhead time 459 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1488 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 72 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 451 microsec overhead time 451 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 73 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 437 microsec overhead time 437 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1482 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 74 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 465 microsec overhead time 465 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1475 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 75 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 462 microsec overhead time 462 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1493 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 76 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 463 microsec overhead time 463 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1495 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 77 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 521 microsec overhead time 521 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1518 microsec CAMAC READ single action takes 9 microsec. program execution : loop count = 78 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 458 microsec overhead time 458 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1484 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 79 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 466 microsec overhead time 466 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1490 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 80 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 461 microsec overhead time 461 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1489 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 81 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 456 microsec overhead time 456 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1477 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 82 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 445 microsec overhead time 445 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1485 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 83 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 445 microsec overhead time 445 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1491 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 84 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 436 microsec overhead time 436 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1478 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 85 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 465 microsec overhead time 465 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 86 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 460 microsec overhead time 460 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1498 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 87 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 453 microsec overhead time 453 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1486 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 88 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 448 microsec overhead time 448 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1476 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 89 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 460 microsec overhead time 460 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1486 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 90 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 449 microsec overhead time 449 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1483 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 91 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 431 microsec overhead time 431 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1488 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 92 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 468 microsec overhead time 468 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1844 microsec CAMAC READ single action takes 13 microsec. program execution : loop count = 93 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 460 microsec overhead time 460 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1486 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 94 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 458 microsec overhead time 458 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1486 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 95 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 455 microsec overhead time 455 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1486 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 96 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 460 microsec overhead time 460 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 97 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 460 microsec overhead time 460 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1850 microsec CAMAC READ single action takes 13 microsec. program execution : loop count = 98 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 473 microsec overhead time 473 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1487 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 99 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 466 microsec overhead time 466 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1484 microsec CAMAC READ single action takes 10 microsec. program execution : loop count = 100 list length = 2 Now execute camtest7sin-ini.obj ... elapsed time 0 sec, 454 microsec overhead time 454 microsec list length = 202 Now execute camtest7single.obj ... elapsed time 0 sec, 1498 microsec CAMAC READ single action takes 10 microsec. program stop onl8v1# Kineticリスト処理で、24 ビット camacシングルアクション Readのオーバー ヘッドに要した時間は、454μsec であった。 データを、8Kワード読み出すのに 要した時間は 10μsec であった。 (4-8). Kineticリスト処理、16 ビット camac ブロック転送速度 onl8v1# priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 312 microsec CAMAC READ block action with 1word takes 312 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17978 microsec CAMAC READ block action with 8Kwords takes 17978 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 319 microsec CAMAC READ block action with 1word takes 319 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17995 microsec CAMAC READ block action with 8Kwords takes 17995 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 315 microsec CAMAC READ block action with 1word takes 315 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17969 microsec CAMAC READ block action with 8Kwords takes 17969 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 318 microsec CAMAC READ block action with 1word takes 318 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17990 microsec CAMAC READ block action with 8Kwords takes 17990 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 313 microsec CAMAC READ block action with 1word takes 313 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17982 microsec CAMAC READ block action with 8Kwords takes 17982 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 325 microsec CAMAC READ block action with 1word takes 325 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17984 microsec CAMAC READ block action with 8Kwords takes 17984 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 317 microsec CAMAC READ block action with 1word takes 317 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17973 microsec CAMAC READ block action with 8Kwords takes 17973 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 313 microsec CAMAC READ block action with 1word takes 313 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17997 microsec CAMAC READ block action with 8Kwords takes 17997 microsec. transfer speed is 905 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 315 microsec CAMAC READ block action with 1word takes 315 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17974 microsec CAMAC READ block action with 8Kwords takes 17974 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 326 microsec CAMAC READ block action with 1word takes 326 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17987 microsec CAMAC READ block action with 8Kwords takes 17987 microsec. transfer speed is 906 KB/S onl8v1# !! priocntl -e -c RT -p 55 kinelistblk_m1 list length = 9 Now execute camtest7blk-ini0.obj ... list length = 5 Now execute camtest7blk-ini.obj ... elapsed time 0 sec, 321 microsec CAMAC READ block action with 1word takes 321 microsec. list length = 5 Now execute camtest7blk.obj ... elapsed time 0 sec, 17983 microsec CAMAC READ block action with 8Kwords takes 17983 microsec. transfer speed is 906 KB/S onl8v1# Kineticリスト処理で、ブロック転送のオーバーヘッドに要した時間は、 321μsecであった。 データを、8Kワード読み出すのに要した時間は 17983μsec で、転送速度は、906 KByte/sec であった。 ---xxxx ここまでやった(継続中) --- (6). 項目タイトル (6-1). サブ項目タイトル (6-1-1). サブサブ項目タイトル