LRS 2249W を使って、16-bit の読み出し性能を評価した (2249W は バッファ型 ADC ではないので、ブロック転送は意味が無く、単なる 速度計測のためのテスト)。 1-6 では、irq_handler の最初に output register のビットを ON、 最後に OFF した時のパルス幅を測定した。 7 は CC/7000 のバグ回避によるオーバーへッドが計測可能か測定を 試みたもの (結論としては計測不能)。 1 = 間に何もしない (オーバーへッド、ただし回路のクリアは含む) 2 = 間に camacCcycle16 を 12 回実行 3 = 間に camacCblkrd16 を 12 word 分実行 4 = 間に camacCblkrd16 を 2 word 分実行 5 = ($2-$1)/12 で求めたシングルアクションの時間 6 = ($3-$4)/10 で求めたブロック転送一回分の時間 7 = gate から output register ON までの時間 1 2 3 4 5 6 7 CC7700PCI 10.2 87.0 70.0 21.4 6.4 4.9 112 CC7700ISA 16.6 130.0 101.0 32.8 9.5 6.8 114 CC7000 14.2 114.0 72.0 27.2 8.3 4.5 113 (単位はμsec) 面白い事に、ブロック転送 (つまり一回の I/O アクセス) は CC/7000 が最も速い。昔ながらのハードロジックの方が、FPGA によるものより 効率が良いという至極尤もな結論のようだ。CC/7000 のシングルアクシ ョンが遅くなっているのは、I/O ポートの構成上、NAF が一回でセット できない (NA と F が異なる I/O ポートに割り当てられている) 影響 と思われる。従って 24-bit 読み出しならば PCI が有利なのは明らか だが、需要があまり無いので…。 あまり関係無いと思うが、使用機の構成は以下の通り。 CPU: Celeron 667 MHz (FSB 66.7MHz) M/B: CB61 rev. B+ (440BX chipset) MEM: 256 MB