Ethernetを用いたiserver 05162014 大橋常毅 はじめに iserverとTPCORE iserverの動作 TCP/IPモデルに基づく実装 動作検証 通信量の評価 まとめ はじめに 現在iserver-TPCORE間でのデータのやり取り はRS232Cを通じて行われているがリンク速度 は115kbpsとTPCOREのリンク速度に比べ極端 に遅い。そこで通信の高速化を図るべく Ethernetで通信するiserverを作成。 従来のiserverでは1Byte送(受)信しackを 受(送)信する仕様だが、iserver上でのアプリ ケーションプロトコルでデータのやり取りをする ことで効率的に送受信できるように改良。 iserverとTPCORE 当研究室で開発されたCPU・TPCOREとホストコ ンピュータとを結ぶインターフェイスとなるソフトウ ェアがiserverである。 具体的には、TPCOREで行なわせたいプログラ ムのダウンロードや(TPCORE上で)実行中のプロ グラムに対する入出力を行なう。 iserverの動作 TPCOREのブート … TPCORE iserver print(“hello”) … TPCOREプログラム HOST PC iserverの動作 TPCOREからの指示待 TPCORE iserver hello HOST PC TCP/IP通信モデル A data AからBへデータを送りたい B アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) TCP/IP通信モデル TCP Header data アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) TCP/IP通信モデル IP TCP Header Header data アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) Ethernet IP TCP HeaderHeader Header TCP/IP通信モデル data アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) TCP/IP通信モデル アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) TCP/IP通信モデル アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) Ethernet IP TCP HeaderHeader Header data TCP/IP通信モデル アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) IP TCP Header Header data TCP/IP通信モデル アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) TCP Header data TCP/IP通信モデル アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) data iserverプロトコル (Byte) 1 受信 データ長 1 送信 2 2 データ長 3 4 iserver cmd 3 5 6 option 4 データ (2Byte~) 7 8 データ (0~1040Byte) 動作検証 TPCORE側のEthernetモジュールがないので次の方法で検証 PLIを用いてデータをEthernet⇔RS232C変換して回路シミュレー ションする。 ブートからの一連の動作を確認できるが 回路シミュレーションなので時間がかかる! 旧iserver-TPCORE間でのデータの送受信を模倣して、iserverの 動作及び送信データが一致しているかどうか見る TPCOREの送受信データをあらかじめ調べておく必要がある 動作検証1 iserver PLI データを1Byte ずつRS232C プロトコルで送受信 TPCORE (verilog) 回路シミュレーション iserver protocol アプリケーション層 アプリケーション層 トランスポート層 (TCP) トランスポート層 (TCP) インターネット層 (IP) インターネット層 (IP) データリンク層 データリンク層 物理層 (Ethernet) 物理層 (Ethernet) OS 動作検証2 send[0] send[1] … Ethernet Ethernet send[n] recv[0] recv[1] … recv[n] TPCORE Model iserver 動作検証2 send[0] send[1] … Ethernet Ethernet send[0]に対する 動作 send[n] recv[0] res[0] recv[1] send[0]に対する反応 … 一致? recv[n] TPCORE Model iserver 通信量の評価 (Byte) 22 20 20 Ehternet header IP header TCP header 4 data CRC 46~1500 この範囲に収まるようにデータの分割やダミーの挿入などが行われる TCPではackを返すようになっているがその際にも通信が行わ れていると過程して評価 通信量の評価1 ex エラトステネスの篩 1Byteごと送受信(ackあり) アプリケーション層 受信:5057 Byte 送信:4735 Byte データリンク層 受信:364104 Byte 送信:340920 Byte 有効転送率 受信:0.0138 送信:0.0138 通信量の評価2 iserver protocol単位で送受信 アプリケーション層 受信:682 Byte 送信:4735 Byte データリンク層 受信:4774 Byte 送信:9103 Byte 有効転送率 受信:0.142 送信:0.52 (ブート時に限れば0.92) まとめ RS232Cと比べ100倍以上の通信速度 TCP/IPモデルに従いiserverプロトコルで通信 することにより従来の仕様のままEthernetリン クを実装した時よりも高い通信効率をもたせ ることができた。 iserverの機能別に見るとブート時はTPCORE のリンク速度以上で通信が行えるが、プログ ラム中での通信速度は劣ってしまう。
© Copyright 2025 ExpyDoc