PFI Seminar 2010/01/21
-
Upload
preferred-infrastructure-preferred-networks -
Category
Documents
-
view
2.160 -
download
4
Transcript of PFI Seminar 2010/01/21
1
ソフトウェアエンジニアのためのハードウェアの知識
2010/1/21
西川徹
株式会社Preferred Infrastructure
2
目次
Part.1 イントロダクション
Part.2 コンピュータのインターフェイス
Part.3 PCIバスの進化
3
Part.1
イントロダクション
4
私とハードウェアの関わり
もともとはプログラミング言語処理系・OSに興味があった
学部3年(東京大学情報科学科)のとき、CPU実験という実験でハードウェアの面白さに惹かれる
その後、ハードウェアの研究室に進み、IPA未踏事業でもハードウェア関連のプロジェクトを行う
5
私とハードウェアの関わり
その後はPFIを立ち上げ、検索エンジンを作る
検索エンジンは大規模で高速なことが要求される1台のマシンでより速く
速いエンジンをたくさんつなげたらもっと速く!
直接ハードウェアを作らなくとも、ハードウェアのことを深く考えないといけない
ISAレベル、マイクロアーキテクチャレベルだけでなく、システムアーキテクチャのレベルでも。
6
CPU実験
FPGAを用いてCPUを実際に作る
ISAの設計からプロセッサの実装まで
そのCPUでレイトレを動かす
7
CPU実験
FPGAチップの周りには、SRAM,SDRAM,USBなどのコントローラチップが配置されている
入出力周りも作りこむ
市販のCPUとの大きな違いは割り込みを実装する必要がないということ
8
CPU実験
FPGAはXilinx社のVirtex II
100万ゲートトランジスタ相当の回路を詰め込める
レイトレを動かすだけなら、CPU自体はそんなに複雑にならない
入出力周りの規格やFPGAの仕様を確認する時間がほとんどだったクロックを上げてうまくいかないときは、微妙なタイミングのずれを疑う
9
CPU実験の面白さ
いかに速く動作するCPUを作るかスーパースカラーを作った人たちもいる
CPUを作る難しさは、機能的な設計だけでなく、さまざまな難しさが絡み合っている回路内部のタイミングの問題
外部デバイスとの入出力インターフェイス
などなど
10
今日は
コンピュータにとって重要な要素の一つである、インターフェイスについて説明します
重要だけど、あまりきちんと知る機会がないソフトウェアエンジニアにとっては。
ハードウェアエンジニアにとってはもちろん常識
11
Part.2
コンピュータのインターフェイス
12
たくさんのインターフェイス
PCIバス,SATAインターフェイスなど、さまざまなインターフェイスがマザーボード上に実装されている
もうちょっとわかりやすくみてみるブロック図
13
ブロック図の例
プロセッサ
メモリ・コントロール・ハブ
I/Oコントロール・ハブ
HDDCDIDE
USB
AC’97IEEE
1394SCSI
Ethernet ブートROM
PCIスロット
PCIバス
グラフィックス
AGP
DDR SDRAM
14
インターフェイス・インターコネクトの種類
拡張バスISA,PCI,PCI-X,PCI-Express,PCMCIA,CardBus
ストレージとの接続IDE,SCSI,SATA,SAS
ネットワークEthernet,InfiniBand
周辺機器との接続USB,IEEE1394,パラレルポート,シリアルポート,PS/2
画像入力・表示VGA,DVI,HDMI,ディスプレイポート
15
拡張バス
PCI-Expressグラフィックスカードの例
a PCI-Express graphics board by Gigabyte wihth an NVIDIA chpiset (Geforce 6200TC)
picture taken on Nov 12, 2005 by Clemens PFEIFFER
16
拡張バス
PCI-Expressグラフィックカードを沢山さした例
picture taken by Takayuki Muranushi
17
インターフェイスには沢山の規格がある
用途によって適切なインターフェイスが変わってくる
RS-232C(シリアルポート)も未だに利用されるデバイスからRS-232Cを介して通信するのは非常に簡単
18
進化するインターフェイス
プロセッサが速くなるに従って、インターフェイス/インターコネクトに求められる性能要件も厳しくなっていく
ソフトウェア互換を保ったままその下のレイヤーで速くしていくこともある
19
Part.3
PCIバスの進化
20
PCIバスについて
PCI(Peripheral Component
Interconnect)バスは、もともとはIntelがマ
ザーボード上のデバイス間接続インターフェイスとして考えたもの。
バージョン2.0からコネクタ仕様が追加され、拡張バスとして利用されるようになった
21
PCIバスについて
PCの性能向上とともにPCIバスの帯域幅の狭さが問題となった
その問題を解決すべく、PCI-X,PCI-
Expressといった規格が考えられた
本パートでは、どのようにして高速化・高スループットが可能になったのかを説明
22
PCIバスの概要
ホストPCIブリッジ
バス・アービタ
デバイス1
デバイス2
デバイス3
デバイス4
CLK
23
複数のデバイスが1つのバスにつながっている
32bit/64bit(オプション)のパラレル・バス
動作のタイミングはバス上のCLK信号を基準としている
アービター:どのデバイスがバスを利用できるか制御する
PCIバスの概要
Device A Device A Device A
24
PCIバスの概要
デバイスの初期化手段が統一されている
ブリッジによってバスを拡張することができる1つのバスには、10個程度のデバイスを接続するのが限界
25
PCIバスのアクセス例
CLK
AD
C/BE#
FRAME#
IRDY#
DEVSEL#
TRDY#
ADDRESS
BUS CMD
DATA-0 DATA-1 DATA-2 DATA-3 DATA-4
BE#’ S-0 BE#’ S-1 BE#’ S-2 BE#’ S-3 BE#’ S-4
26
AD[31:00]アドレス/データ・バス
C/BE[3:0]バス・コマンド(アドレスフェーズ)メモリアクセス・I/Oアクセス・コンフィグレーションアクセス
バイト・イネーブル(データフェーズ)
FRAME#:バスサイクルが実行されていることを示す
IRDY#:イニシエータが転送可能状態
TRDY#:ターゲットが転送可能状態
DEVSEL#:アクセスを受けたターゲットによってアサートされる
4クロック以内にアサートされなかったらそのバスサイクルはアボート
イニシエータ:転送を制御しているデバイス
27
PCI-X
バスクロックの高速化によりPCIの高速化を図った
PCI-X 2.0ではDDR/QDRによりさらなる高速化1クロックの間に複数のデータを送る
クロック方式もソースシンクロナス方式
スプリットトランザクションへの対応データの要求と応答を別々に扱うことができる
バスを有効活用することができる
28
クロック信号
現在のほとんどのコンピュータが、クロックと呼ばれる特別な信号でタイミングをとりながら動作する
データを取り込むタイミングもクロックに合わせて動作する
29
周波数が高くなると・・・
クロックは場所によってずれがでてきてしまうクロックが伝わるにも時間がかかる
高クロックの回路では、このずれが大きな問題となる
30
コモンクロック方式とソースシンクロナス方式コモンクロック方式送信側・受信側で同じクロックを用いる
PCI,PCI-X 1.0の方式
ソースシンクロナス方式受信側のクロックに合わせてデータを取り込む
PCI-X 2.0
31
さらなる高速化のために
PCI/PCI-Xでさらに高速化を図るためにはいくつかの課題がある
データ幅を引き上げればいいのではないか?クロック周波数を上げるのではだめなのか?
32
パラレル・バスの限界
ソースシンクロナス方式でも、クロック周波数が高くなると、各信号間でのタイミングのずれが問題になる
信号線の数が多くなると、実装コストも高くなる
33
パラレル・バスの限界
ひとつのバスを複数のデバイスが共有する場合、デバイスが増えるとオーバーヘッドが大きくなる
あまり1つのバスの多くのデバイスをつなぐことはできない
34
つまり
このようなモンスターGPUを沢山つなげることができない
picture taken by Takayuki Muranushi
35
PCI Expressのアプローチ
シリアル・バスでデータ伝送を行う
ポイント・ツー・ポイントの伝送
パケット単位でのデータのやりとり
ハードウェア的にはPCIと大きく異なるが、ソフトウェア的な互換性を維持している
36
PCI Expressのレイヤ・アーキテクチャ
ソフトウェア層
トランザクション層
データリンク層
物理層
ソフトウェア層
プロトコル
シグナリング
PCI Express PCI
37
PCI Expressのレイヤ・アーキテクチャ
トランザクション層エンド・ツー・エンドでの確実な通信を保証する
ソフトウェア層に対してPCI互換のサービスを提供する
データリンク層隣接したコンポーネント間での確実な通信を保証する
物理層物理媒体上で通信パケットを送受信する
38
PCI Expressのレイヤ・アーキテクチャ
PCI Express Gen2では、このような構造のため、物理層の変更のみで5Gbpsを実現している
仕様の変更や拡張に対応しやすい
39
PCI Expressのレイヤアーキテクチャ
データフロー
ソフトウェア層
トランザクション層
データリンク層
物理層
ソフトウェア層
トランザクション層
データリンク層
物理層
DLLP
TLP
オーダード・セット
TLP:Transaction Layer Packet
DLLP:Data Link Layer Packet
40
PCI Expressのレイヤアーキテクチャ
パケットの構造
StartSequence
NumberHeader Data ECRC LCRC END
送信方向
トランザクション層
データリンク層
物理層
41
PCI Expressのリンク
PCIはマルチドロップ型(ひとつのバスに複数のデバイスが接続される)
PCI Expressはポイント・ツー・ポイント接続
片方向の差動伝送路を2つ使用片方向で2.5Gbps
このペアをレーンと呼ぶ
レーンをx2からx32まで増やすことができる
42
PCI Expressのシステム構成
Processor Processor
ルートコンプレックス
DDR SDRAM
PCI Express GFX
スイッチ スイッチ
スイッチ
エンドポイント
エンドポイント
エンドポイント
エンドポイント
エンドポイント
43
PCI Expressの物理層
信号は2.5GHzで送りだされる1レーン片方向2.5Gbps
差動シグナリング
シリアル伝送エンベデッドクロック
8b/10bエンコーディング
44
差動シグナリング
特徴高速伝送が可能
外来ノイズに強い
ノイズの発生が少ない
D+とD-の2つの信号線に同時に逆位相の信号を伝送
受信側はD+とD-の差をみることによりデータの1/0を判定
45
差動シグナリング
電圧を変化させるのには時間がかかる
振幅が少ないほど短い遷移時間で変化させられる
D+,D-に共通する
ノイズが差し引かれてゼロになる
D+
D-
D+ - D-
46
シリアル伝送
なぜシリアルである必要があるのか?パラレルではだめなのか?
クロック周波数を上げるとパラレルでは限界
では、なぜシリアルだとよいのか
47
エンベデッドクロック
1本の信号線で、データだけではなくクロックも送ることにより、より高周波で動作可能にする
受け取る側は、送られてきた信号からクロックを復元する
48
エンベデッドクロック
01 1 10000000
シリアル信号入力
クロック
シリアル信号入力とクロックとの位相を比較して、クロック信号の位相を修正する
49
8b/10bエンコーディング
エンベデッドクロックを実現するためには、0が続いたり、1が続いたりしてはいけない
8bitの信号を、一定周期にかならず0/1の変化が起こるように10bitにエンコーディングする
50
8b/10bエンコーディング
Name 8bit currentRD- currentRD+
D00.0 00h 100111 0100 011000 1011
D01.0 01h 011101 0100 100010 1011
D02.0 02h 101101 0100 010010 1011
D03.0 03h 110001 1011 110001 0100
D04.0 04h 110101 0100 001010 1011
D05.0 05h 101001 1011 101001 0100
〜
D30.7 FEh 011110 0001 100001 1110
D31.7 FFh 101011 0001 010100 1110
51
伝送路のシリアル化により
高周波クロック化を達成することが可能になった
SATA等も同様の方式が使われている
52
速度比較
PCI/PCI-X
バス形式 クロック周波数 最大データ帯域幅(Gバイト/秒)
PCI 32 bit 33MHz 0.133
PCI 32 bit 66MHz 0.266
PCI-X 32 bit 66MHz 0.266
PCI-X 32 bit 133MHz 0.533
PCI-X 32 bit 実効266MHz 1.066
PCI-X 32 bit 実効533MHz 2.131
53
速度比較
PCI Express双方向での帯域幅
リンク幅
x1 x2 x4 x8 x12 x16 X320.5
最大データ帯域幅(Gバイト/秒)
0.5 1 2 4 6 8 16
54
参考文献
PCI関連R.Budruk, D.Anderson and T.Shanley: PCI Express System Architecture
http://www.pcisig.com/
荒井信隆,里見尚志,田中顕裕: PCI Express 入門講座(電波新聞社)
改定新版PCIバス&PCI-Xバスの徹底研究(CQ出版社)
インターフェイスの概要インターフェース 2009年2月号「インターフェース規格のすぐに役立つ基礎知識」(CQ出版社)