徹底 解説

徹底
解説
第 9回
内藤 竜治
トランザクション層の概要
今回は,トランザクション層の概要とトランザクション層パケット(TLP)の構成について説明する.トランザク
ション層では,TLPを使用して,メモリのリードやライト,イベント通知などのトランザクション処理を行う. (編集部)
④(オプションで)エンド・ツー・エンドでのデータ整
今回から数回にわたってトランザクション層の設計を行
合性をチェックする
います.トランザクション層の目的は TLP(トランザク
ション層パケット)と呼ばれるパケットをやりとりして,
という動作を行います.いわば,従来の PCI でサポートさ
メモリのリードやライト,イベント通知などのトランザク
れていたような,メモリやコンフィグレーション空間への
ションを処理することです.
アクセスと互換性のある動作を提供します.
これらはユーザから見えるデータのやりとりですが,こ
● トランザクションとは
のほかにもトランザクション層にはフロー・コントロール
PCI Express では,トランザクションという単位でデー
や電源管理,QoS(Quality of Service)など,ユーザからは
タの転送します.これは,リクエスタ(要求を出す側)とコ
見えない地味な機能もあります.
ンプリータ(完了させる側)との間で転送される一連のパ
ケットのやりとりのことです.
PCI Express では,3 種類のアドレス空間(メモリ空間,
1.トランザクション層の概要
I/O 空間,コンフィグレーション空間)とメッセージ空間
図 1 に示すように,トランザクション層は PCI Express
が定義されています.そして,それぞれの空間に対してト
のアーキテクチャの最上位に位置づけられています.トラ
ランザクション(メモリ,I/O,コンフィグレーション,お
ンザクション層は,ソフトウェア層(あるいはデバイス・
よびメッセージ)が定義されています(表 1)
.メモリや I/O,
コアと呼ばれる)から指令を受けて TLP を生成し,データ
コンフィグレーション空間へのアクセスには,リードとラ
リンク層を介して相手に送ります.つまり,
イトが,メッセージにはベース・ライン注 1 というトランザ
①デバイス・コアからの要求に従って TLP を生成する
クションが定義されています.
表 1 では,メモリ・ライトとメッセージ・トランザク
②何らかのリクエスト TLP を受信したら,解読して,デ
バイス・コアに要求を伝える
③コンプリーション TLP を受信したら,ペイロードや
ステータスを取り出して,デバイス・コアに伝える
注 1 :ベース・ラインという用語には適切な訳が見つからないので,このま
ま用いた.
表 1 PCI Express のトランザクションの種類
ソフトウェア層
対象となるアドレス空間
トランザクション層
メモリ
PCI Expressの
3階層
データリンク層
I/O
物理層
コンフィグレーション
図 1 トランザクション層の位置
Dec. 2009
メッセージ
(ベンダ定義を含む)
トランザクションのタイプ
リード
NonPosted
ライト
Posted
リード
NonPosted
ライト
NonPosted
リード
NonPosted
ライト
NonPosted
ベース・ライン
Posted
(ベンダ定義を含む)
基本的な用途
メモリ空間へのデータ転送
I/O 空間へのデータ転送
デバイスのコンフィグレーションと
セットアップ
イベント発生の通知と
汎用的なメッセージ伝達
KEYWORD ――トランザクション層,TLP(トランザクション層パケット),コンプリーション,ECRC,
トランザクション記述子,メモリ・リクエスト,I/O リクエスト,コンフィグレーション・リクエスト
159