PPT

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
のリンク速度以上で通信が行えるが、プログ
ラム中での通信速度は劣ってしまう。