information technology - scsi block commands - 2 … block commands - 2 (sbc-2) 目次 1...

146
SCSI Block Commands - 2 (SBC-2) 1 Information technology - SCSI Block Commands - 2 (SBC-2) (2005.5.19) 日本語版 ANSI INCITS 405-2005 本書は nabiki_t が勝手に和訳したものであり、内容の正確性等、全ての事項について一切の保証は存在しない。 2014 年 3 月 12 日 摘要 本標準は SCSI Block Commands - 2(SBC-2) コマンドセットにおける機能的 な要求を規定する。 SBC-2 は固定ディスクのような SCSI ブロック論理ユ ニットをコンピュータに接続することを可能とし、それらを使用するため の定義を提供する。 本標準は ANSI INCITS 306-1998 SCSI Block Commands(SBC) コマンドセッ トと高度な互換性を維持しており、同時に、追加の機能も提供する。しか しながら、現在インストールされているデバイスや既存のソフトウェアに 対して変更を要求するものではない。

Upload: truongdiep

Post on 26-May-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

1

Information technology -SCSI Block Commands - 2 (SBC-2)

(2005.5.19)

日本語版

ANSIINCITS 405-2005

本書はnabiki_tが勝手に和訳したものであり、内容の正確性等、全ての事項について一切の保証は存在しない。

2014年 3月 12日

摘要

本標準はSCSI Block Commands - 2(SBC-2)コマンドセットにおける機能的

な要求を規定する。SBC-2は固定ディスクのようなSCSIブロック論理ユ

ニットをコンピュータに接続することを可能とし、それらを使用するため

の定義を提供する。

本標準はANSI INCITS 306-1998 SCSI Block Commands(SBC)コマンドセッ

トと高度な互換性を維持しており、同時に、追加の機能も提供する。しか

しながら、現在インストールされているデバイスや既存のソフトウェアに

対して変更を要求するものではない。

Page 2: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

目次 1 スコープ...............................................................................6

2 引用規格...............................................................................8

2.1 引用規格の概要.....................................................................8

2.2 承認済みの規格.....................................................................9

2.3 策定中の規格.......................................................................9

3 定義、記号、略語、キーワード、表記....................................................10

3.1 定義..............................................................................10

3.2 記号と略語........................................................................13

3.3 キーワード........................................................................14

3.4 表記ルール........................................................................15

4 直接アクセスブロックデバイス種別のモデル..............................................17

4.1 直接アクセスブロックデバイス種別のモデルの概要.....................................17

4.2 メディアの例......................................................................17

4.2.1 メディアの例の概要.............................................................17

4.2.2 回転メディア...................................................................17

4.2.3 メモリメディア.................................................................18

4.3 リムーバブルメディア..............................................................18

4.3.1 リムーバブルメディアの概要.....................................................18

4.3.2 メディアチェンジャ付きリムーバブルメディア.....................................19

4.4 論理ブロック......................................................................19

4.5 利用可能状態......................................................................20

4.6 初期化............................................................................20

4.7 書き込み保護......................................................................21

4.8 メディアの欠陥....................................................................21

4.9 書き込み失敗......................................................................22

4.10 キャッシュ.......................................................................23

4.11 暗黙的なHEAD OF QUEUEコマンドの処理..............................................24

4.12 予約.............................................................................25

4.13 エラー報告.......................................................................26

4.13.1 エラー報告の概要..............................................................26

4.13.2 ブロックコマンドセンスデータ記述子............................................27

4.14 XORコマンドのモデル..............................................................27

4.14.1 XORコマンドのモデルの概要.....................................................27

4.14.2 ストレージアレイコントローラの制御によるXOR操作..............................28

4.14.2.1 ストレージアレイコントローラの制御によるXOR操作の概要.....................28

4.14.2.2 更新書き込み操作...........................................................28

4.14.2.3 再生成操作.................................................................29

4.14.2.4 再構築操作.................................................................29

4.14.3 アレイサブシステムの考慮点....................................................30

4.14.3.1 アレイサブシステムの考慮点の概要...........................................30

4.14.3.2 バッファフルステータスの取り扱い...........................................30

4.14.3.3 矛盾するストライプへのアクセス.............................................30

4.14.4 XORデータ保持の要求...........................................................31

4.15 START STOP UNITと電源状態........................................................31

4.15.1 START STOP UNITと電源状態の概要...............................................31

4.15.2 START STOP UNITと電源状態の状態機械...........................................32

4.15.2.1 START STOP UNITと電源状態の状態機械の概要..................................32

4.15.2.2 SSU_PC0:電源投入状態......................................................33

2

Page 3: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

4.15.2.2.1 SSU_PC0:電源投入状態の説明............................................33

4.15.2.2.2 SSU_PC0:電源投入からSSU_PC1:起動への遷移.............................33

4.15.2.2.3 SSU_PC0:電源投入からSSU_PC4:停止への遷移.............................33

4.15.2.3 SSU_PC1:起動状態..........................................................33

4.15.2.3.1 SSU_PC1:起動状態の説明................................................33

4.15.2.3.2 SSU_PC1:起動からSSU_PC2:アイドルへの遷移.............................34

4.15.2.3.3 SSU_PC1:起動からSSU_PC3:スタンバイへの遷移...........................34

4.15.2.3.4 SSU_PC1:起動からSSU_PC4:停止への遷移.................................34

4.15.2.4 SSU_PC2:アイドル状態......................................................34

4.15.2.4.1 SSU_PC2:アイドル状態の説明............................................34

4.15.2.4.2 SSU_PC2:アイドルからSSU_PC1:起動への遷移.............................34

4.15.2.4.3 SSU_PC2:アイドルからSSU_PC3:スタンバイへの遷移.......................34

4.15.2.4.4 SSU_PC2:アイドルからSSU_PC4:停止への遷移.............................35

4.15.2.5 SSU_PC3:スタンバイ状態....................................................35

4.15.2.5.1 SSU_PC3:スタンバイ状態の説明..........................................35

4.15.2.5.2 SSU_PC3:スタンバイからSSU_PC1:起動への遷移...........................35

4.15.2.5.3 SSU_PC3:スタンバイからSSU_PC2:アイドルへの遷移.......................35

4.15.2.5.4 SSU_PC3:スタンバイからSSU_PC4:停止への遷移...........................35

4.15.2.6 SSU_PC4:停止状態..........................................................35

4.15.2.6.1 SSU_PC4:停止状態の説明................................................35

4.15.2.6.2 SSU_PC4:停止からSSU_PC1:起動への遷移.................................36

4.15.2.6.3 SSU_PC4:停止からSSU_PC2:アイドルへの遷移.............................36

4.15.2.6.4 SSU_PC4:停止からSSU_PC3:スタンバイへの遷移...........................36

4.16 保護情報モデル...................................................................36

4.16.1 保護情報の概要................................................................36

4.16.2 保護情報のフォーマット........................................................36

4.16.3 論理ブロックガード............................................................37

4.16.3.1 論理ブロックガードの概要...................................................37

4.16.3.2 CRCの生成.................................................................38

4.16.3.3 CRCの検証.................................................................39

4.16.3.4 CRC検証例.................................................................39

4.16.4 保護情報のアプリケーション....................................................39

4.16.5 保護情報とコマンド............................................................40

4.17 グループ化機能...................................................................40

5 直接アクセスブロックデバイスにおけるコマンド..........................................41

5.1 直接アクセスブロックデバイスにおけるコマンドの概要.................................41

5.2 FORMAT UNITコマンド...............................................................44

5.2.1 FORMAT UNITコマンドの概要......................................................44

5.2.2 FORMAT UNITパラメタリスト......................................................48

5.2.2.1 FORMAT UNITパラメタリストの概要............................................48

5.2.2.2 パラメタリストヘッダ........................................................48

5.2.2.3 初期化パターン記述子........................................................50

5.2.2.4 アドレス記述子のフォーマット................................................52

5.2.2.4.1 アドレス記述子のフォーマットの概要.......................................52

5.2.2.4.2 短縮ブロックフォーマットアドレス記述子...................................53

5.2.2.4.3 拡張ブロックフォーマットアドレス記述子...................................53

5.2.2.4.4 インデクス先頭バイトフォーマットアドレス記述子...........................53

5.2.2.4.5 物理セクタフォーマットアドレス記述子.....................................54

5.3 PRE-FETCH(10)コマンド...........................................................54

5.4 PRE-FETCH(16)コマンド...........................................................56

5.5 READ(6)コマンド.................................................................56

3

Page 4: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

5.6 READ(10)コマンド................................................................58

5.7 READ(12)コマンド................................................................62

5.8 READ(16)コマンド................................................................63

5.9 READ(32)コマンド................................................................63

5.10 READ CAPACITY(10)コマンド......................................................65

5.10.1 READ CAPACITY(10)の概要.....................................................65

5.10.2 READ CAPACITY(10)パラメタデータ.............................................65

5.11 READ CAPACITY(16)コマンド......................................................66

5.11.1 READ CAPACITY(16)コマンドの概要.............................................66

5.11.2 READ CAPACITY(16)パラメタデータ.............................................67

5.12 READ DEFECT DATA(10)コマンド...................................................68

5.12.1 READ DEFECT DATA(10)コマンドの概要..........................................68

5.12.2 READ DEFECT DATA(10)パラメタデータ..........................................69

5.13 READ DEFECT DATA(12)コマンド...................................................70

5.13.1 READ DEFECT DATA(12)コマンドの概要..........................................70

5.13.2 READ DEFECT DATA(12)パラメタデータ..........................................70

5.14 READ LONG(10)コマンド..........................................................71

5.15 READ LONG(16)コマンド..........................................................72

5.16 REASSIGN BLOCKSコマンド..........................................................73

5.16.1 REASSIGN BLOCKSコマンドの概要.................................................73

5.16.2 REASSIGN BLOCKSパラメタリスト.................................................74

5.17 START STOP UNITコマンド..........................................................75

5.18 SYNCHRONIZE CACHE(10)コマンド..................................................77

5.19 SYNCHRONIZE CACHE(16)コマンド..................................................78

5.20 VERIFY(10)コマンド.............................................................79

5.21 VERIFY(12)コマンド.............................................................87

5.22 VERIFY(16)コマンド.............................................................87

5.23 VERIFY(32)コマンド.............................................................88

5.24 WRITE(6)コマンド...............................................................90

5.25 WRITE(10)コマンド..............................................................91

5.26 WRITE(12)コマンド..............................................................94

5.27 WRITE(16)コマンド..............................................................94

5.28 WRITE(32)コマンド..............................................................95

5.29 WRITE AND VERIFY(10)コマンド...................................................97

5.30 WRITE AND VERIFY(12)コマンド...................................................97

5.31 WRITE AND VERIFY(16)コマンド...................................................98

5.32 WRITE AND VERIFY(32)コマンド...................................................98

5.33 WRITE LONG(10)コマンド........................................................100

5.34 WRITE LONG(16)コマンド........................................................100

5.35 WRITE SAME(10)コマンド........................................................101

5.36 WRITE SAME(16)コマンド........................................................103

5.37 WRITE SAME(32)コマンド........................................................103

5.38 XDREAD(10)コマンド............................................................105

5.39 XDREAD(32)コマンド............................................................105

5.40 XDWRITE(10)コマンド...........................................................106

5.41 XDWRITE(32)コマンド...........................................................107

5.42 XDWRITEREAD(10)コマンド.......................................................108

5.43 XDWRITEREAD(32)コマンド.......................................................109

5.44 XPWRITE(10)コマンド...........................................................110

5.45 XPWRITE(32)コマンド...........................................................111

6 直接アクセスブロックデバイスにおけるパラメタ.........................................113

4

Page 5: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

6.1 自己診断パラメタ.................................................................113

6.1.1 自己診断パラメタの概要........................................................113

6.1.2 アドレス変換出力自己診断ページ................................................113

6.1.3 アドレス変換入力自己診断ページ................................................114

6.2 ログパラメタ.....................................................................115

6.2.1 ログパラメタの概要............................................................115

6.2.2 フォーマットステータスログページ..............................................116

6.2.3 不揮発性キャッシュログページ..................................................118

6.3 モードパラメタ...................................................................119

6.3.1 モードパラメタの概要..........................................................119

6.3.2 モードパラメタブロック記述子..................................................121

6.3.2.1 モードパラメタブロック記述子の概要.........................................121

6.3.2.2 short LBAのモードパラメタブロック記述子....................................122

6.3.2.3 long LBAのモードパラメタブロック記述子....................................123

6.3.3 キャッシュモードページ........................................................125

6.3.4 読み書きエラーリカバリモードページ............................................129

6.3.5 検証エラーリカバリモードページ................................................134

6.3.6 XOR制御モードページ...........................................................135

6.4 重要プロダクトデータ(VPD)パラメタ..............................................136

6.4.1 VPDパラメタの概要.............................................................136

6.4.2 ブロック制限VPDページ........................................................137

Annex A 数値順のコード値...............................................................139

A.1 可変長 CDB........................................................................139

A.2 サービスアクションCDB............................................................139

Annex B XORコマンド例.................................................................141

B.1 XORコマンド例の概要..............................................................141

B.2 更新書き込み操作.................................................................141

B.3 再生成操作.......................................................................142

B.4 再構築操作.......................................................................142

Annex C CによるCRCの例...............................................................144

5

Page 6: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

1 スコープ

本標準では、SCSI直接アクセスブロックデバイスに対する操作を可能とするための、コマンド

セットの拡張を定義する。本標準の規定は、SCSI直接アクセスブロックデバイスに対する標準コ

マンドセットを完全に規定している、SPC-3の規約と併せて実装される。

本標準の目的は下記の通りである。

a) 標準INQUIRYデータ(SPC-3を参照)のPERIPHERAL DEVICE TYPEフィールドにおいて、自

分自身を直接アクセスブロックデバイスであるものとして定義する論理ユニットと、アプ

リケーションクライアントが、SCSIサービスデリバリサブシステムを通じて通信を行うこ

とを可能とする。

b) 直接アクセスブロックデバイス固有のコマンドを定義する。

図 1は、本標準と他の標準および、SCSIファミリ標準の関連するプロジェクトとの関係を示し

ている。

図1. SCSIドキュメント間の関係

図 1はドキュメント間の一般的な関係を示すことを目的としており、階層構造やプロトコルス

タック、システムアーキテクチャ等の関係を暗示することを意図するものではない。

SCSI標準セットは、SCSIに準拠する実装間での相互接続性を保証するために必要となる、イン

タフェース、機能、操作を規定する。本標準は機能的な記述である。本標準に準拠する実装は、

相互接続性に違反しない限り、任意の設計技術を採用することが可能である。

本標準では、以前の標準に存在していた下記の概念を廃止済みとする。

a) 光記憶デバイス種別、モデル、コマンド(ERASE、MEDIUM SCAN、READ GENERATION、READ

UPDATED BLOCK、UPDATE BLOCKコマンド)、パラメタ(光記憶モードページ)

b) ライトワンスデバイス種別、モデル、コマンド、パラメタ

c) 拡張予約、RESERVE/RELEASE予約

d) シーケンシャルメディアモデル

e) 回転位置固定モデル

f) 相対アドレシング(多くのCDBに存在するRELADRビットを含む)と、SET LIMITSコマンド

g) CHANGE DEFINITION、COMPARE、COPY AND VERIFY、LOCK UNLOCK

CACHE、RESERVE、RELEASE、REZERO UNIT、SEEK、SEARCH DATA HIGH、SEARCH DATA

EQUAL、SEARCH DATA LOWコマンド

6

SCSI

アーキテクチャモデル

(SAM-3(ISO/IEC 14776-413))

デバイス種別固有コマンドセット

(例えば、SES-2(ISO/IEC 14776-

372)、 SMC-2(ISO/IEC 14776-352)、

本標準)

プロトコル

(例えば、SAS(ISO/IEC 14776-150)、 FCP-2(ISO/IEC 14776-222))

通信回線

(例えば、SAS(ISO/IEC 14776-150)、 Fibre Channel(ISO/IEC 14165))

プライマリコマンドセット

(全デバイス種別で共有 )

(SPC-3(ISO/IEC 14776-453))

Page 7: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

h) 第三者 XOR操作と混合 XOR操作モデル、コマンド(REBUILD、REGENERATE、XDWRITE

EXTENDEDコマンド)、モードページフィールド(XOR制御モードページの MAXIMUM

REGENERATE SIZEフィールド、MAXIMUM REBUILD TRANSFER SIZEフィールド、REBUILD

DELAYフィールド)

i) 下記のモードページとモードページフィールド

A) キャッシュモードページのNON CACHE SEGMENT SIZEフィールド

B) フレキシブルディスクモードページ

C) フォーマットデバイスモードページ

D) サポートされるメディア種別モードページと、モードペラメタヘッダの全メディア種別

E) ノッチとパーティションモードページ

F) 読み書きエラーリカバリモードページの、CORRECTION SPANフィールド、HEAD OFFSET

COUNTフィールド、DATA STORAGE OFFSET COUNTフィールド

G) 固定ディスクジオメトリモードページ

H) 検証エラーリカバリモードページの VERIFY CORRECTION SPANフィールド

j) デバイス状態出力とデバイス状態入力自己検証ページ

k) FORMAT UNITパラメタリスト内のDISABLE SAVING PARAMETERS(DSP)ビット

l) FORMAT UNITコマンドのINTERLEAVEフィールド

m) WRITEと WRITE AND VERIFYコマンドの消去バイパス(erase by-pass:EBP)ビット。この

ビットは、以前は直接アクセスブロックデバイス種別のための予約済みとなっていたため、

本標準で単なる予約済みとして設定される。

7

Page 8: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

2 引用規格 2.1 引用規格の概要

下記の標準には、本標準の条項を構成する、本文中で参照される条項が記載されている。示さ

れた版は出版時点において有効なものである。全ての標準は改訂される可能性があり、本標準に

同意する者は下記に示された標準の、最新版を適用することが可能か否か調査することが推奨さ

れる。

ANSIから下記に示されたドキュメントの複製を入手することが可能である。

a) ANSI公認の標準

b) 国際標準および地域標準(例えば、ISO、IEC、CEN/CENELEC、ITU-T)による公認標準およ

びドラフト版

c) 外国標準(例えば、BSI、JIS、DIN)による公認標準およびドラフト版

詳細は、ANSIカスタマーサービス部、電話番号:212-642-4900、FAX番号:212-302-1286、ウェ

ブサイト:http://www.ansi.orgへ問い合わせること。

必要に応じて、追加の問い合わせ先を下記に示す。

表1に標準化団体とそれらのウェブサイトを示す。

表1 標準化団体

省略形 標準化団体 ウェブサイト

ANSI American National Standards Institute http://www.ansi.org

BSI British Standards Institution http://www.bsi-global.com

CEN European Committee for Standardization http://www.cenorm.be

CENELEC European Committee for Electrotechnical

Standardization

http://www.cenelec.org

DIN German Institute for Standardization http://www.din.de

IEC International Engineering Consortium http://www.iec.ch

IEEE Institute of Electrical and Electronics

Engineers

http://www.ieee.org

INCITS International Committee for Information

Technology Standards

http://www.incits.org

ISO International Standards Organization http://www.iso.ch

ITI Information Technology Industry Council http://www.itic.org

ITU-T International Telecommunications Union

Telecommunications Standardization Sector

http://www.itu.int

JIS Japanese Industrial Standards Committee http://www.jisc.org

T10 INCITS T10 Committee - SCSI storage

interfaces

http://www.t10.org

T11 INCITS T11 Committee - Fibre Channel

interfaces

http://www.t11.org

T13 INCITS T13 Committee - ATA storage interface http://www.t13.org

8

Page 9: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

2.2 承認済みの規格

出版時点で、下記の引用規格は公認済みである。

ISO/IEC 14776-342, SCSI-3 Controller Commands - 2 (SCC-2) (ANSI INCITS 318-1998)

ISO/IEC 14776-413, SCSI Architecture Model - 3 (SAM-3) standard (ANSI INCITS 402-

2005)

ISO/IEC 14776-352, SCSI Media Changer Commands - 2 (SMC-2) standard (ANSI INCITS 382-

2004)

2.3 策定中の規格

出版時点で、下記の引用規格は策定作業中である。ドキュメントの現在の状態や有効性に関す

る情報については、示された然るべき標準化団体へ問い合わせること。

ISO/IEC 14776-453, SCSI Primary Commands - 3 (SPC-3) standard (T10/1416-D)

ISO/IEC 14776-364, SCSI Multimedia Commands - 4 (MMC-4) standard (T10/1545-D)

ISO/IEC 14776-372, SCSI Enclosure Services - 2 (SES-2) standard (T10/1559-D)

注意 1:ドキュメントの現在の状態については、INCITS事務局、電話番号:202-737-8888、FAX

番号:202-638-4922、Eメール:[email protected]へ問い合わせること。本ドキュメントの複製を

入手するためには、Global Engineering at 15 Inverness Way East, Englewood, CO 80112-

5704、電話番号:800-854-7179もしくは303-792-2181、FAX番号:303-792-2192へ問い合わせる

こと。

9

Page 10: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

3 定義、記号、略語、キーワード、表記 3.1 定義項番 用語(日本語) 用語(英語) 説明

3.1.1 追加センスコード additional sense

code

センスデータ内のADDITIONAL SENSE CODEと

ADDITIONAL SENSE CODE QUALIFIERフィール

ドの組み合わせ。SPC-3を参照。

3.1.2 アプリケーションク

ライアント

application client SCSIコマンドの送信元となるオブジェクト。

SAM-3を参照。

3.1.3 バイト byte 1単位として見なされる、8つ連続したビット

のシーケンスのこと。

3.1.4 キャッシュ cache アプリケーションクライアントからアクセス

可能な領域の範囲外に存在する、一時的でか

つ一般的に揮発性のデータ格納領域であり、

不揮発性のデータ格納領域に格納されるデー

タのサブセットを保持する。

3.1.5 検証データ check data 冗長化グループ(3.1.37を参照)に含まれる

情報であり、破壊もしくは喪失したXOR保護

データ(3.1.46を参照)の再生成を可能とす

る。

3.1.6 コマンド command デバイスサーバにより実行されるべき仕事の

1単位を記述したリクエストのこと。SAM-3を

参照。

3.1.7 コマンド記述ブロッ

command descriptor

block(CDB)

アプリケーションクライアントからデバイス

サーバへコマンドを送信するために使用され

る構造体のこと。

3.1.8 巡回冗長検査 cyclic redundancy

check(CRC)

チェックサムに基づく生成多項式を計算する

ことにより、データ一貫性の検証を行うエ

ラーチェックメカニズムのこと。4.16.3を参

照。

3.1.9 データ欠陥リスト data defect

list(DLIST)

FORMAT UNITコマンドにおいて、アプリケー

ションクライアントからデバイスサーバに送

信される欠陥のリストのこと。4.8を参照。

3.1.10 データ入力バッファ

(Data-Inバッファ)

data-in buffer コマンド処理中に、アプリケーションクライ

アントがデバイスサーバからデータを受信す

るために指定するバッファのこと。SAM-3を

参照。

3.1.11 データ出力バッファ

(Data-Outバッ

ファ)

data-out buffer コマンド処理中に、アプリケーションクライ

アントからデバイスサーバへ送信するデータ

を提供するために、アプリケーションクライ

アントが指定するバッファのこと。SAM-3を

参照。

3.1.12 デフォルト保護情報 default protection

information

アプリケーションクライアントが特定の保護

情報の値を指定していない場合に、保護情報

フィールドに格納される値のこと。

3.1.13 デバイスサーバ device server タスク管理のルールに基づき、SCSIタスクを

10

Page 11: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

処理する論理ユニット内のオブジェクトのこ

と。SAM-3を参照。

3.1.14 デバイス種別 device type 標準INQUIRYデータのPERIPHERAL DEVICE

TYPEフィールドにより示される、デバイス

サーバにより実装されるデバイスの種別(も

しくはデバイスモデル)のこと。SPC-3を参

照。

3.1.15 直接アクセスブロッ

クデバイス

direct-access block

device

一意な論理ブロックアドレスを有するブロッ

ク内に、データを格納する能力を有するデバ

イスのこと。

3.1.16 ドメイン domain サービスデリバリサブシステムの機能により

相互に情報交換を行うSCSIデバイスから構成

されるI/Oシステムのこと。

3.1.17 エラー訂正符号 error correcting

code(ECC)

データ一貫性を検証するエラーチェックのメ

カニズムであり、データ内のいくつかのエ

ラーを回復することを可能とする。

3.1.18 排他的論理和 exclusive-or(XOR) 2つの2進数の入力値に基づくブール演算関

数であり、入力値のどちらか一方のみが1の

場合に出力値として1を返す。

3.1.19 エクステント extent 単一の論理ユニット内において、連続した論

理ブロックアドレスを占有する固定の論理ブ

ロックのセットを表す。

3.1.20 フィールド field CDB(3.1.7を参照)やセンスデータ(SPC-3

を参照)のようなより大きな構造体の一部で

あり、1つないし複数の連続したビットのグ

ループのこと。

3.1.21 フォーマット不正 format corrupt アプリケーションクライアントが読み込み操

作や書き込み操作、検証操作を行うことが不

可能となる可能性のある、ベンダ固有の状態

のこと。4.6を参照。

3.1.22 累積欠陥リスト

(GLIST)

grown defect

list(GLIST)

アプリケーションクライアントからデバイス

サーバに送信される、全ての欠陥のこと。4.8

を参照。

3.1.23 ハードリセット hard reset SAM-3で定義されたイベントにより発生し、

SCSIデバイスが、SAM-3や本標準および他の

該当するコマンド標準により定義されたハー

ドリセット時の動作を実行する状態のこと

(5.1の表10を参照)。

3.1.24 I_Tネクサス喪失 I_T nexus loss SAM-3で定義されたイベントにより発生し、

SCSIデバイスが、SAM-3や本標準および他の

該当するコマンド標準により定義されたI_T

ネクサス喪失時の動作を実行する状態のこと

(5.1の表10を参照)。

3.1.25 論理ブロック logical block 単一のユニットとして参照およびアクセスさ

れるデータバイトのセットのこと。

3.1.26 論理ブロックアドレ logical block 論理ブロックを参照するために使用される値

11

Page 12: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ス address(LBA) のこと。

3.1.27 論理ユニット検証リ

スト(CLIST)

logical unit

certification list

FORMAT UNITコマンドにおいて、オプション

として実行される検証プロセスにて、デバイ

スサーバが検出した欠陥のこと。

3.1.28 論理ユニットリセッ

logical unit reset SAM-3で定義されたイベントにより発生し、

SCSIデバイスが、SAM-3や本標準および他の

該当するコマンド標準により定義された論理

ユニットリセット時の動作を実行する状態の

こと(5.1の表10を参照)。

3.1.29 メディア media mediumの複数形。

3.1.30 メディア medium データが格納される対象物(例えば、磁気

ディスク)。

3.1.31 不揮発性キャッシュ non-volatile cache 電源サイクルを通じてデータが保存される

キャッシュのこと。

3.1.32 不揮発性メディア non-volatile medium 書き込まれたデータが、後続の読み込み操作

時まで電源サイクルを通じて保存される、物

理的なストレージメディア(例えば、データ

を、デバイスへの電力供給を要求しない磁界

の変化として記録する、デバイス内のディス

ク)のこと。

3.1.33 電源サイクル power cycle SCSIデバイスへの電源供給が停止され、その

後電源供給が開始されること。

3.1.34 電源投入 power on SAM-3で定義されたイベントにより発生し、

SCSIデバイスが、SAM-3や本標準および他の

該当するコマンド標準により定義された電源

投入時の動作を実行する状態のこと(5.1の

表10を参照)。

3.1.35 初期欠陥リスト

(PLIST)

primary defect

list(PLIST)

永続的と見なされる欠陥についてのリスト。

4.8を参照。

3.1.36 保護情報 protection

information

各論理ブロックに付加されるフィールドであ

り、巡回冗長検査符号、アプリケーションタ

グ、参照タグが格納される。

3.1.37 冗長化グループ redundancy group 単一のデータ冗長性の種別としてグループ化

された、XOR保護データ(3.1.46を参照)と

関連する検証データ(3.1.5を参照)。本標

準ではXOR(3.1.18を参照)型の冗長性のみ

をサポートする。

3.1.38 センスデータ sense data CHECK CONDITIONステータスと共に、デバイ

スサーバがアプリケーションクライアントに

対して配信する、エラーや例外状態を記述す

る情報。SPC-3を参照。

3.1.39 センスキー sense key センスデータ内のSENSE KEYフィールドの内

容。SPC-3を参照。

3.1.40 ステータス status 各コマンドの終了時に、デバイスサーバから

アプリケーションクライアントに送信される、

1バイトのレスポンス情報。SAM-3を参照。

12

Page 13: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

3.1.41 ストレージアレイコ

ントローラ

storage array

controller

入力LUNを出力LUNに変換し、入力LBAを出

力LBAに変換する処理を行う、SCSIコマンド

の始点となるイニシエータとアプリケーショ

ンクライアント(SAM-3を参照)の組み合わ

せ。ストレージアレイコントローラは、直接

アクセスブロックデバイスのグループから

様々なオブジェクト(例えば、冗長化グルー

プやボリュームセット)を構成する。SCC-2

を参照。

3.1.42 ユーザデータ user data 論理ブロックに格納されている保護情報以外

のデータ。

3.1.43 揮発性キャッシュ volatile cache 電源サイクルを通じて永続しないキャッシュ。

3.1.44 揮発性メディア volatile medium 書き込まれたデータが、後続する読み込み操

作まで電源サイクルを通じて保存されないメ

ディアのこと(例えば、デバイスの電源消失

時に書き込まれたデータが消失するシリコン

メモリデバイス)。

3.1.45 XOR操作 XOR operation 同一サイズの複数ビットからなる2つの入力

値(例えば、論理ブロック内の現在の値と、

当該論理ブロックにおける新しい値)で、

ビット単位のXOR(3.1.18を参照)演算を行

うこと。冗長化グループ(3.1.37を参照)を

実装するストレージアレイにおいては、XOR

操作はエラー訂正アルゴリズムで使用され、

ストレージアレイコントローラ(3.1.41を参

照)や、直接アクセスブロックデバイス

(3.1.15を参照)で実行される可能性がある。

4.14を参照。

3.1.46 XOR保護データ XOR-protected data 冗長化グループの一部であり、ユーザデータ

と保護情報を保持する論理ブロックのこと。

3.2 記号と略語

標準化団体(例えば、ISO)の略称については表1を参照。本標準で使用される、その他の記号

と略語には下記が存在する。

略語 元の表記 訳語

CDB command descriptor block コマンド記述ブロック(3.1.7を参

照)

CRC cyclic redundancy check 巡回冗長検査(3.1.8を参照)

CLIST logical unit certification list 論理ユニット検証リスト(3.1.27を

参照)

DLIST data defect list データ欠陥リスト(3.1.9を参照)

ECC error correcting code エラー訂正符号(3.1.17を参照)

GLIST grown defect list 累積欠陥リスト(3.1.22を参照)

I/O input/output 入出力

LBA logical block address 論理ブロックアドレス(3.1.26を参

13

Page 14: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

照)

LSB least significant bit 最下位ビット

LUN logical unit number 論理ユニット番号

MMC-4 SCSI Multimedia Commands - 4

standard

SCSIマルチメディアコマンド-4標準

MSB most significant bit 最上位ビット

PLIST primary defect list 初期欠陥リスト(3.1.35を参照)

SAM-3 SCSI Architecture Model - 3

standard

SCSIアーキテクチャモデル-3標準

SCSI Small Computer System Interface

family of standards

小型計算機システムインタフェース

標準

SCC-2 SCSI-3 Controller Commands - 2

standard

SCSI-3コントローラコマンド-2標準

SES-2 SCSI Enclosure Services - 2

standard

SCSIエンクロージャサービス-2標準

SMC-2 SCSI Media Changer Commands - 2

standard

SCSIメディアチェンジャコマンド-2

標準

SPC-3 SCSI Primary Commands - 3

standard

SCSIプライマリコマンド-3標準

XOR exclusive-or 排他的論理和(3.1.18を参照)

3.3 キーワード項番 キーワード 訳語 説明

3.3.1 expected 予期される 本標準で仮定される設計モデルにおける、ハード

ウェアないしソフトウェアの動作を記述するために

使用されるキーワード。他のハードウェアおよびソ

フトウェアの設計モデルもまた実装されうる。

3.3.2 ignored 無視される 使用されないビット、バイト、ワード、フィールド、

コード値を記述するために使用されるキーワード。

無視されるビット、バイト、ワード、フィールド内

の値、および無視されるコード値は、受信側のデバ

イスサーバにより検証されてはならず、送信側の

SCSIデバイスは任意の値が設定することが可能で

ある。

3.3.3 invalid 不正な 基準に違反する、ないしサポートされないビット、

バイト、ワード、フィールド、コード値を記述する

ために使用されるキーワード。不正なビット、バイ

ト、ワード、フィールド、コード値の受信はエラー

として報告されなければならない。

3.3.4 mandatory 必須の 本標準で実装されることが要求される要素を示す

キーワード。

3.3.5 may 可能性がある

(可能である)

優先度を暗示しない、選択の自由があることを示す

キーワード(「~する可能性またはしない可能性が

ある」と同義)。

14

Page 15: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

3.3.6 may not しない可能性が

ある

優先度を暗示しない、選択の自由があることを示す

キーワード(「~する可能性またはしない可能性が

ある」と同義)。

3.3.7 need not 必要はない 実装が要求されない特性を示すキーワード(「要求

されない」と同義)。

3.3.8 obsolete 廃止済み 以前のSCSI標準で定義されていたが、本標準では

削除された要素を示すために使用されるキーワード。

3.3.9 optional オプションの 本標準で実装することが要求されない特性を記述す

るために使用されるキーワード。しかしながら、本

標準で定義されるオプションの特性が実装される場

合は、本標準での定義に従い実装されなければなら

ない。

3.3.10 reserved 予約済み 将来の標準化のために確保されるビット、バイト、

ワード、フィールドおよびコード値を示すキーワー

ド。予約済みのビット、バイト、ワード、フィール

ドには0、もしくは本標準の将来の拡張に適合する

値が格納されなければならない。受信者は予約済み

のビット、バイト、ワード、フィールドに0が格納

されていることを検証する必要はない。定義済みの

フィールド内で予約済みのコード値を受信した場合

エラーとして報告されなければならない。

3.3.11 restricted 制限される 他のSCSI標準で使用するために確保されるビット、

バイト、ワード、フィールドを参照するキーワード。

制限されるビット、バイト、ワード、フィールドは、

本標準で規定される要求の目的に従い、予約済みの

ビット、バイト、ワード、フィールドとして取り扱

われなければならない。

3.3.12 shall しなければなら

ない

必須の要求を示すキーワード。設計者は、本標準に

準拠する他の実装との相互接続性を保証するために、

そのような必須の要求は全て実装することが要求さ

れる。

3.3.13 should するべきである 強く推奨される選択肢と共に、選択の自由を示す

キーワード。「強く要求される」という語と同義で

ある。

3.3.14 vendor-specific ベンダ固有 本標準で規定されず、様々な実装で異なった使われ

方をする何物か(例えば、ビット、フィールド、

コード値)。

3.4 表記ルール

本標準で使用されるある種の単語や言葉は、通常の英語の意味を超えた特定の意味をもって使

用される。これらの単語や語は本節ないし本文中の最初に出現した場所で定義される。

名前やコマンド、ステータスコード、センスキー、追加センスコードは全て大文字で示される

(例えば、REQUEST SENSE)。

フィールド名と状態変数は大文字で示される(例えば、NAME)。フィールド名や状態変数名が

頭字語を含む場合、可読性のために大文字が使用される可能性がある。フィールドや状態変数の

内容について議論する場合は通常の表記が使用される。フィールドや状態変数が1ビットのみの

場合、一般的には「NAMEフィールド」の代わりに「NAMEビット」として参照する。

15

Page 16: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

通常の英語の意味を有する単語については通常の表記が使用される。

本標準では、2進数はアラビア数字の0と1のみから構成される任意のシーケンスに、直後に小

文字のbを付加して示される(例えば、0101b)。可読性向上もしくはフィールド境界を明示する

ために、2進数の文字の間にアンダスコアやスペースが挿入される可能性がある(例えば、0 0101

1010b、0_0101_1010b)。

本標準では、16進数はアラビア数字の0~9と英大文字のA~Fから構成される任意のシーケン

スに、直後に小文字の hを付加して示される(例えば、FA23h)。可読性向上もしくはフィールド

境界を明示するために、16進数の文字の間にアンダスコアやスペースが挿入される可能性がある

(例えば、B FD8CFA23h、B_FD8C_FA23h)。

本標準では、10進数はアラビア数字の0~9のみから構成される任意のシーケンスで示され、そ

の後に小文字のbや hが付加されることはない(例えば、25)。

本標準では10進数の表記にはISO表記を使用する(例えば、1000およびそれ以上の倍数はス

ペースで区切られ、コンマは小数点の区切り記号として使用する)。表2はISO表記と米国表記

により、10進数表現についてのいくつかの例を示す。

表2 ISO表記と米国表記における数値の表記例

ISO表記 米国表記

0,6 0.6

3,141 592 65 3.14159265

1 000 1,000

1 323 462,95 1,323,462.95

文字のシーケンスによるリスト(例えば、a)赤、b)青、c)緑)は、リストのアイテム間で順序

性が存在しないことを示している。数値のシーケンスによるリスト(例えば、1.赤、2.青、3.

緑)は、リストのアイテム間での順序性を示している。

本文、図、表の間で競合が生じた場合、解決する優先順位は本文、表、図となる。表や図は本

文中の全ての表現しているわけではない。表はデータのフォーマットと値を示す。

注意書きは実装者に対するいかなる要求とも見なされない。

16

Page 17: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

4 直接アクセスブロックデバイス種別のモデル 4.1 直接アクセスブロックデバイス種別のモデルの概要

本標準に準拠するSCSIデバイスは直接アクセスブロックデバイスと呼ばれる。これには、一般

的に、固定ディスクおよびリムーバブル固定ディスクと言われるカテゴリの論理ユニットが含ま

れる。MMC-4は一般的にはCD-ROMデバイスで使用される。

本標準は、SAM-3、SPC-3、SCC-2、SES-2、SMC-2と併せて使用されることを想定している。

直接アクセスブロックデバイスは、後の取得に備えて論理ブロック内にデータを格納する。論

理ブロックはユーザデータを格納し、アプリケーションクライアントからアクセス可能な保護情

報を格納する可能性があり、アプリケーションクライアントからは通常はアクセス不可能な追加

の情報(例えば、ECC)を格納する可能性がある。論理ブロック内に格納されるユーザデータのバ

イト長はブロック長と言われる。ブロック長は1バイトと等しいかあるいはそれより長く、偶数

であるべきである。ほとんどの直接アクセスブロックデバイスは、ブロック長で512バイトをサ

ポートし、いくつかの追加のブロック長をサポートする(例えば、520や 4096)。ブロック長に

は、論理ブロックに関係する保護情報や付加情報の長さは含まれない。ブロック長は、メディア

上に存在する全ての論理ブロックで同一である。

全ての論理ブロックは、一意な論理ブロックアドレスに格納される。論理ブロックアドレスは4

バイト(すなわち、short LBA)ないし8バイト(すなわち、long LBA)のいずれかである。論理

ブロックの論理ブロックアドレスは0から始まらなければならず、論理ユニット内に存在する最

後の論理ブロックに向かって連続して増加していかなければならない。アプリケーションクライ

アントは論理ブロックの格納を行うために書き込み操作を実行するコマンドを使用し、論理ブ

ロックの取得を行うために読み込み操作を実行するコマンドを使用する。書き込み操作は1つな

いし複数の論理ブロックをメディアに書き込む。読み込み操作は1つないし複数の論理ブロック

をメディアから読み込む。検証操作は、1つないし複数の論理ブロックに対してデータが正しく書

き込まれており、かつ、メディアからエラーが生じることなく読み込むことが可能であることを

確認する。

論理ブロックはメディア内に部分的な変更ないし変化を生じさせる処理により格納される。メ

ディアに対して論理ブロックを格納するために行われる変更処理は、揮発性(すなわち、電源サ

イクルを通じて永続しない)もしくは不揮発性(すなわち、電源サイクルを通じて永続する)で

ある可能性がある。メディアには、LBAを通じてアクセスすることが不可能な、ベンダ固有の情報

が格納される可能性がある。そのようなデータには、欠陥管理データやその他のデバイス管理情

報が含まれる可能性がある。

4.2 メディアの例 4.2.1 メディアの例の概要

直接アクセスブロックデバイスで使用されるメディア種別の例には下記のものが存在する。

a) 回転メディア(4.2.2を参照)

b) メモリメディア(4.2.3を参照)

その他の種別のメディアも存在しうる。

4.2.2 回転メディア

直接アクセスブロックデバイスの典型的な応用例は磁気ディスクデバイスである。メディアは、

電磁誘導による磁束変化と記憶が可能な、磁性体の回転ディスクである。アクチュエータは磁気

ヘッドを回転ディスク上で半径方向に移動させ、任意の位置でランダムに情報の読み書きを行う

ことを可能とする。データはヘッドの書き込み部分により、磁束変化を記録することで格納され、

17

Page 18: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ヘッドの読み込み部分が記録されたデータを読み込むことにより、データの読み込みが行われる。

磁気ヘッドが特定の半径で形成する円形の経路はトラックと呼ばれる。トラックは、格納され

るデータのブロックを保持するセクタに分割される。回転する軸に1つないし複数のディスクが

存在し、アクチュエータがディスク表面にアクセスする磁気ヘッドを1つないし複数保持する場

合、特定の半径に存在するトラックの集合はシリンダと呼ばれる。

論理ブロックは1つないし複数のセクタに格納される。また、セクタには複数の論理ブロックを

格納することが可能である。セクタはまた、アクセスや同期、論理ブロックの一貫性保護のため

の情報を保持する可能性がある。

回転メディアに基づく直接アクセスブロックデバイスは、ディスクが正しい速度で回転し、入

出力回路に通電されデータアクセスへの準備が整った時に利用可能となる。かつ、論理ユニット

を使用可能状態とするためにSTART STOP UNITコマンドを要求する可能性がある。

回転メディアに基づく直接アクセスブロックデバイスは、一般的に不揮発性である。

ディスクデバイスによる欠陥管理機構は本コマンドセットを通じて認識することができない可

能性がある。しかしながら、いくつかの側面(4.8を参照)についてはREAD LONGコマンドと

WRITE LONGコマンド(5.15、5.15、5.33、5.34を参照)によりアプリケーションクライアントか

らアクセスできる可能性がある。

4.2.3 メモリメディア

メモリメディアは半導体ランダムアクセスメモリ(RAM)に基づく(例えば、スタティック

RAM(SRAM)、ダイナミックRAM(DRAM)、磁気抵抗 RAM(MRAM)、強誘電体メモリ(FeRAM)、フ

ラッシュメモリ)。メモリメディアに基づく直接アクセスブロックデバイスは、高速アクセス記

憶装置として利用される可能性がある。

メモリメディアに基づく直接アクセスブロックデバイスは電源投入後に利用可能となり、論理

ユニットを使用可能状態とするためのSTART STOP UNITコマンドが要求されない。

これらの論理ユニットは機械的な動作に依存しない。そのために、論理ブロックはメディア上

の位置によらず同一のアクセス時間でアクセスすることが可能である。メモリメディアに基づく

直接アクセスブロックデバイスに格納できる容量はディスクやテープより少ない可能性があり、

また、揮発性である可能性がある。

欠陥管理機能(例えば、ECCバイト)(4.8を参照)は、READ LONGコマンドおよびWRITE LONG

コマンド(5.14、5.15、5.33、5.34を参照)によりアプリケーションクライアントからアクセス

できる可能性がある。

メモリメディアは揮発性(例えば、SRAMやDRAM)あるいは不揮発性(例えば、バッテリによる

バックアップのあるSRAMやDRAM、MRAM、FeRAM、フラッシュメモリ)である可能性がある。

4.3 リムーバブルメディア 4.3.1 リムーバブルメディアの概要

メディアは取り外し可能もしくは不可能な可能性がある。リムーバブルメディアは、記録面を

損傷から保護するためにジャケットやカードリッジに格納される可能性がある。

リムーバブルメディアは、直接アクセスブロックデバイスに適合する転送メカニズムに、マウ

ントないしアンマウントされる属性を有する。リムーバブルメディアは、直接アクセスブロック

デバイスがメディアに対する書き込み、読み込み、検証操作を実行する準備を行う際にマウント

される。リムーバブルメディアはそれ以外の任意の時間(例えば、ロードやアンロード、格納

中)にアンマウントされる。

18

Page 19: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

アプリケーションクライアントは、TEST UNIT READYコマンド(SPC-3を参照)を発行すること

で、リムーバブルメディアがマウントされているか否か確認することが可能である。リムーバブ

ルメディアを有する直接アクセスブロックデバイスは、START STOP UNITコマンドを受信するまで

書き込み、読み込み、検証操作を実行することができない可能性がある(5.17を参照)。

直接アクセスブロックデバイスが、揮発性ないし不揮発性のキャッシュを実装する場合、リ

ムーバブルメディアのアンマウントを実行する前に、論理ユニット内のメディアに最新のユーザ

データや保護情報が格納されていることを保証する。

PREVENT ALLOW MEDIUM REMOVALコマンド(SPC-3を参照)は、アプリケーションクライアントに

対してリムーバブルメディアのアンマウントを制限することを可能とする。これはシステムの一

貫性を保護するために有効である。

アプリケーションクライアントがリムーバブルメディアを取り出すためにSTART STOP UNITコマ

ンドを発行し、かつ、PREVENT ALLOW MEDIUM REMOVALコマンドによりデバイスサーバでアンマウ

ントすることが制限されていた場合、START STOP UNITコマンドはデバイスサーバにより拒否され

る。

4.3.2 メディアチェンジャ付きリムーバブルメディア

直接アクセスブロックデバイスにメディアチェンジャが装着されている場合、メディアの転送

を行う構成部品に対する制御は、直接アクセスブロックデバイス型の論理ユニットに対してメ

ディアチェンジャコマンド(SMC-2を参照)を送信することにより行うことが可能である。

直接アクセスブロックデバイスは、標準INQUIRYデータ(SPC-3を参照)の MCHNGRビットに1を

設定することにより、これらのコマンドをサポートすることを示す。MCHNGRビットに1が設定さ

れた場合、MOVE MEDIUM ATTACHEDと READ ELEMENT STATUS ATTACHEDコマンド(SMC-2を参照)が

サポートされることを示す。論理ユニットを有効化するために、MODE MEDIUM ATTACHEDコマンド

(SMC-2を参照)が要求される可能性がある。

4.4 論理ブロック

論理ブロックは、デバイスサーバが格納と回復のために使用する付加情報に従って、メディア

上に格納される。付加情報のフォーマットは他の標準で規定されるか、あるいはベンダ固有であ

り、通常の読み込み、書き込み、検証操作においてはアプリケーションクライアントからは隠蔽

されている。この付加情報はデータブロックの物理的な位置や、論理ブロックのアドレスを特定

するために使用され、また、ユーザデータや保護情報の消失に対する保護を提供するため(例え

ば、ECCバイトを含むことにより)に使用される。

最初の論理ブロックアドレスは0である。末尾の論理ブロックアドレスは[n-1]であり、[n]はア

プリケーションクライアントからアクセス可能なメディア上の論理ブロック数である。[n-1]の値

を決定するためには、READ CAPACITYコマンドを使用するべきである。

論理ブロックアドレスは8バイトより大きくなることはない。いくつかのコマンド(例えば、

READ CAPACITY(10)、READ(10)、WRITE(10))では、4バイト(すなわち、short LBA)の

LOGICAL BLOCK ADDRESSフィールドのみをサポートする。READ CAPACITY(10)コマンドは、容量

がshort LBAでアクセス可能な範囲を超えた場合には、容量としてFFFFFFFFhを返す。これは下

記を示している。

a) アプリケーションクライアントは制御モードページ(SPC-3を参照)、および全ての

REQUEST SENSEコマンド(SPC-3を参照)で、記述子フォーマットのセンスデータ(SPC-3

を参照)を有効にするべきである。

b) アプリケーションクライアントは、8バイトの LOGICAL BLOCK ADDRESSフィールドをサポー

トするコマンド(例えば、READ CAPACITY(16)、READ(16)、WRITE(16))を使用する

べきである。

19

Page 20: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

注意 2:4バイトの LOGICAL BLOCK ADDRESフィールドを有するコマンドが、FFFFFFFFhを超える

論理ブロックアドレスを持つ論理ブロックにアクセスし、かつ、固定フォーマットのセンスデー

タが使用される場合には、センスデータ内にはエラーが生じた論理ブロックアドレスを報告する

ための、必要十分な大きさを持つフィールドは存在しない(4.13を参照)。

受信したコマンドがメディアの容量を超える領域に対して参照ないしアクセスを試みる場合、

デバイスサーバは当該のコマンドをステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了する。コマンドは、

処理が開始される前、あるいはデバイスサーバがデータの一部もしくは全体を転送した後で終了

される可能性がある。

論理ブロック内に格納されるユーザデータのバイト数がブロック長である。READ CAPACITYコマ

ンド(5.10を参照)のパラメタデータにより、メディアで使用されるブロック長が取得される。

モードパラメタブロック記述子(6.3.2を参照)は、ブロック長の変更をサポートする直接アクセ

スブロックデバイスにおいて、ブロック長を変更するために使用される。ブロック長には保護情

報と付加情報の長さは含まれない。

メディア上で論理ブロックが格納される場所は、他の論理ブロックが格納される場所と何らか

の関連性を有する必要はない。しかしながら、一般的な直接アクセスブロックデバイスにおいて

は、論理ブロック[x]にアクセスした後にアドレス[x+1]に存在する論理ブロックへアクセスする

時間は、他の論理ブロックへアクセスする時間よりも一般的に短い。アドレス[x]の論理ブロック

の後にアドレス[x+1]の論理ブロックへアクセスする時間は、アドレス[x]の後に[x+100]にアクセ

スする時間より短くなければならない必要はない。PMIビットに1を設定したREAD CAPACITYコマ

ンドは、生じうるアクセス時間の長さを決定するために利用できる可能性がある。

4.5 利用可能状態

直接アクセスブロックデバイスはメディアアクセスコマンド(すなわち、読み込み操作、書き

込み操作、検証操作を行うコマンド)を処理する準備が整った時に利用可能となる。

リムーバブルメディアを使用する直接アクセスブロックデバイスは、ボリュームがマウントさ

れ他の条件が揃うまで利用可能とはならない(4.2を参照)。利用可能ではない直接アクセスブ

ロックデバイスはメディアアクセスコマンドを、ステータスにCHECK CONDITION、センスキーに

NOT READY、追加センスコードには条件に該当する値を設定し、終了しなければならない。

いくつかの直接アクセスブロックデバイスでは、START STOP UNITコマンド(5.17を参照)を用

いることで、利用可能な状態から利用不可能な状態への切り替えが行われる可能性がある。アプ

リケーションクライアントは、直接アクセスブロックデバイスを利用可能とするために、START

ビットに1を設定したSTART STOP UNITコマンドを発行することが必要となる可能性がある。

4.6 初期化

直接アクセスブロックデバイスは、書き込み、読み込み、検証操作を行う前に、初期化するこ

とを要求する可能性がある。この初期化はFORMAT UNITコマンド(5.2を参照)により実行される。

フォーマットに関係するパラメタ(例えば、ブロックサイズ)は、フォーマット操作を行う前に

MODE SELECTコマンドにより設定される可能性がある。いくつかの直接アクセスブロックデバイス

は、本書で規定されない方法により初期化される。初期化が行われるタイミングはベンダ固有で

ある。

不揮発性メディアを使用する直接アクセスブロックデバイスはパラメタを保存することが可能

であり、かつ、一度だけ初期化を行えばよい可能性がある。しかしながら、いくつかのモードパ

ラメタは論理ユニットリセットが行われる都度、初期化を必要とする可能性がある。直接アクセ

スブロックデバイスで壊滅的な失敗が生じた場合には、FORMAT UNITコマンドを発行することが求

められる可能性がある。

20

Page 21: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

揮発性メディアを使用する直接アクセスブロックデバイスは、論理ユニットリセットが生じた

後、書き込み、読み込み、検証操作を行う前に、初期化を必要とする可能性がある。モードパラ

メタもまた、論理ユニットリセット後に初期化を必要とする可能性がある。

注意 3:FORMAT UNITが完了する前に MODE SENSEコマンドで読み込まれるモードパラメタブロッ

ク記述子は、メディアの正しい状態を反映していない情報を返す可能性がある。

直接アクセスブロックデバイスは、メディアのフォーマットに関係するパラメタを変更する

MODE SELECTコマンドを実行した後には、フォーマット不正の状態となる可能性がある。この間、

デバイスサーバはメディアアクセスコマンドを、ステータスにCHECK CONDITION、センスキーに

NOT READY、追加センスコードには条件に該当する値を設定して終了する可能性がある。

READ CAPACITY(10)コマンド(5.1を参照)またはREAD CAPACITY(16)コマンド(5.11を参

照)で返されるパラメタが変更された時(例えば、ブロック数、ブロックサイズ、保護情報、参

照タグ所有権の値を変更するFORMAT UNITコマンドや MODE SELECTコマンドが完了した時や、ベ

ンダ固有のメカニズムにより変更された時)には常に、デバイスサーバは、変更を引き起こした

コマンドを受信したI_Tネクサスを除く全てのI_Tネクサスに関連するイニシエータポートに対

して、追加センスコードにCAPACITY DATA HAS CHANGEDを設定したユニット警告状態を確立しな

ければならない。

注意 4:本標準の以前のバージョンに準拠する論理ユニットはユニット警告状態を確立しない。

4.7 書き込み保護

書き込み保護により、デバイスサーバに対して発行されたコマンドにより行われる、メディア

への変更が防止される。一般的に書き込み保護は、メディアのユーザによる手動での介入(例え

ば、機械的なロック)、もしくはハードウェア制御の結果(例えば、メディア保護材のタブ)、

もしくはソフトウェアによる書き込み保護により制御される。全ての書き込み保護の制御は独立

である。書き込み保護が存在する場合、メディアへの変更を要求するコマンドの内正当なものを

除いてはは、ステータスがCHECK CONDITION、センスキーがDATA PROTECTEDで終了されなければ

ならない。全ての書き込み保護が無効になっている場合にのみ、デバイスサーバはメディア変更

を要求するコマンドを処理しなければならない。

ドライブないしメディアの物理的な属性が、書き込みを制限するよう変更された時に、ハード

ウェアによる書き込み保護が実現される。ハードウェアによる書き込み保護の状態変更は、ドラ

イブもしくはメディアへの物理的な介入を要求する。ドライブにより許可される場合、メディア

がマウントされている間に、ハードウェアによる書き込み保護が変更されると、それまでにバッ

ファに蓄積されたデータ(例えば、キャッシュ内のデータ)の書き込み処理を含む、ベンダ固有

の動作を引き起こすこととなる。

ソフトウェアの書き込み保護は、制御モードページ(SPC-3を参照)のSWPビットを用いてアプ

リケーションクライアントにより、デバイスサーバが書き込み保護を行うよう指定された場合に

行われる。ソフトウェアによる書き込み保護はオプションである。ソフトウェアによる書き込み

保護の状態変更は、それ以前に受け入れられたデータ(例えば、キャッシュ内のデータ)がメ

ディアに書き込まれることを妨げてはならない。

デバイスサーバは、モードパラメタヘッダのDEVICE-SPECIFIC PARAMETERフィールド(6.3.1を

参照)により、デバイスサーバないしメディアの書き込み保護の状態を報告する。

4.8 メディアの欠陥

全てのメディアには、データ消失の原因となる欠陥が生じる可能性が存在する。そのため、各

論理ブロックには、メディアの欠陥やその他の事象により生じた、ユーザデータと保護情報の変

更を検知可能とするための付加情報が格納される可能性があり、また、そのような変更を検知し

た後でデータを再構築(例えば、ECCバイト)することができる可能性もある。いくつかの直接ア

21

Page 22: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

クセスブロックデバイスでは、アプリケーションクライアントに対してREAD LONGコマンドと

WRITE LONGコマンド(5.14、5.15、5.33、5.34を参照)により、付加情報の検査と変更を可能と

している。アプリケーションクライアントは、直接アクセスブロックデバイスが有する欠陥検知

ロジックの検査を行う事を目的に欠陥を埋め込むため、もしくはミラーコピーの生成中に回復不

能な論理ブロックをエミュレートするために、WRITE LONGコマンドを使用することが可能である。

欠陥はまたFORMAT UNITコマンド(5.2を参照)の処理中にも検知および管理される可能性があ

る。FORMAT UNITコマンドは、PLIST、CLIST、DLIST、GLISTの 4種類の欠陥情報を管理する。こ

れらの欠陥は初期化処理中に再割り当てされるか、あるいは使用が回避されるため、これらが論

理ブロックに影響を与えることはない。これらの欠陥位置情報(すなわち、欠陥)は下記のよう

に定義される。

a) 初期欠陥リスト(PLIST)。これはデバイスないしメディアの製造者により提供される、永

続的であると見なされる欠陥のリストである。PLISTはアプリケーションクライアントから

アクセス可能な論理ブロック空間の範囲外に存在する。PLISTはフォーマット処理中にデバ

イスサーバからアクセスすることが可能であるが、READ DEFECT DATAコマンド

(5.10、5.13を参照)を使用する場合を除き、アプリケーションクライアントからはアク

セスすることは不可能である(5.10と 5.13を参照)。一度生成された後には、オリジナル

のPLISTが更新されてはならない。

b) 論理ユニット検証リスト(CLIST)。このリストには、デバイスサーバがFORMAT UNITコマ

ンドの実行中に、オプションである検証処理を実行した際に検知した欠陥が記録される。

このリストは GLISTに追加されなければならない。

c) データ欠陥リスト(DLIST)。本欠陥リストはFORMAT UNITコマンドの実行中に、アプリ

ケーションクライアントからデバイスサーバに提供される可能性がある。このリストは

GLISTに追加されなければならない。

d) 累積欠陥リスト(GLIST)。GLISTには、アプリケーションクライアントから送信された

(すなわち、DLIST)、ないしデバイスサーバで検知された(すなわち、CLIST)全ての欠

陥が含まれる。GLISTにはPLISTは含まれない。CMPLSTビットに0が設定されていた場合、

GLISTには、過去に実行された、および現在実行しているFORMAT UNITコマンドでデバイス

サーバに提供されたDLISTが含まれなければならない。GLISTにはまた下記が含まれなけれ

ばならない。

A) メディアの検証中のフォーマット操作で検知した欠陥。

B) 過去に実行されたREASSIGN BLOCKSコマンド(5.16を参照)で識別された欠陥。

C) 過去に、デバイスサーバにより検知され、自動的に再割り当てされた欠陥。

直接アクセスブロックデバイスは、読み書きエラーリカバリモードページで(6.3.4を参照)で

許可される場合には、自動的に欠陥の再割り当てを行うことが可能である。

欠陥は初期化の後にも発生する可能性がある。アプリケーションクライアントは、特定の論理

ブロックアドレスをメディア上の異なる部分に再割り当てすることを要求するために、REASSIGN

BLOCKSコマンド(5.16を参照)を発行する。この操作は、後に新規の欠陥が生じた場合には繰り

返される可能性がある。この方法で取り扱うことが可能な欠陥の個数はベンダ固有である。

直接アクセスブロックデバイスにおける欠陥管理はベンダ固有である。リムーバブルメディア

を使用しない直接アクセスブロックデバイスでは、容量や性能に関して欠陥管理を最適化するこ

とが可能である。ある種のリムーバブルメディアを使用する直接アクセスブロックデバイスでは

欠陥管理をサポートしないか、あるいはメディアの交換を妨害しない様な方法による欠陥管理を

使用する。

22

Page 23: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

4.9 書き込み失敗

1つないし複数の書き込み操作を行うコマンドがタスクセット内に存在する状態で、それらが実

行される際に電源が消失した(例えば、アプリケーションクライアントから見て、ベンダ固有の

コマンドタイムアウトが発生した)場合、もしくはメディアエラーないしハードウェアエラーが

発生した(例えば、リムーバブルメディアが間違ってアンマウントされた)場合、それらのコマ

ンドにより書き込み中だった論理ブロック内のデータは不定の状態となる。読み込みないし検証

操作を実行するコマンドでアクセスされた場合(例えば、電源投入後やリムーバブルメディアが

マウントされた後)、デバイスサーバはそれらの論理ブロックについて、古いデータや新しい

データ、あるいはベンダ固有のデータを返す可能性がある。

そのような失敗が生じた論理ブロックを読み込む前に、アプリケーションクライアントは、未

解決の書き込み操作を行うコマンドを再発行するべきである。

4.10 キャッシュ

直接アクセスブロックデバイスはキャッシュを実装する可能性がある。キャッシュは、直接ア

クセスブロックデバイス内に存在する、性能向上のために使用される高速なアクセス時間を有す

る一時的なストレージである。キャッシュはメディアとは別に存在し、アプリケーションクライ

アントから直接的にアクセスすることは不可能である。書き込みないし読み込み操作でのキャッ

シュの使用は、論理ブロックへのアクセス時間を短縮し、全体的なデータスループットを向上す

る。

キャッシュにはユーザデータと保護情報が格納される。

キャッシュは揮発性または不揮発性である可能性がある。揮発性のキャッシュは電源サイクル

を通じてデータが保存されない。不揮発性のキャッシュは電源サイクルを通じてデータが保存さ

れる。不揮発性キャッシュが電源無しでデータを保持する時間には制限が存在する可能性がある。

読み込み操作中に、デバイスサーバは将来アプリケーションクライアントから要求される可能

性のある論理ブロックを格納するためにキャッシュを使用する。キャッシュを管理するために使

用されるアルゴリズムは本標準には含まれない。しかしながら、デバイスサーバに対して将来の

要求をアドバイスするため、もしくは特定の要求のためにキャッシュの使用を制限するためのパ

ラメタは提供される。

書き込み操作中、デバイスサーバはメディアに対して後で書き込まれるべきデータを格納する

ためにキャッシュを使用する。これはライトバックキャッシュと呼ばれる。コマンドは論理ブ

ロックがメディアへ書き込まれる前に完了することが可能である。ライトバックキャッシュを使

用する結果として、揮発性のキャッシュが使用され、かつSCSIターゲットデバイスへの電源供給

が停止した場合、もしくはハードウェアエラーが発生した場合に、データが消失する可能性のあ

る時間帯が生じる。また、後に行われる書き込み操作中にエラーが発生する可能性も存在する。

書き込み操作中にエラーが発生した場合、それは後のコマンドで遅延エラーとして報告される。

アプリケーションクライアントは、検知される書き込みエラーが遅延エラーとして報告されるこ

とを防止するために、キャッシュモードページ(6.3.3を参照)によりライトバックキャッシュを

無効化するよう要求することが可能である。ライトバックキャッシュが無効化されていたとして

も、検知されない書き込みエラーが発生する可能性が存在する。VERIFYコマンドと WRITE AND

VERIFYコマンドはそれらのエラーを検知するために使用することが可能である。

論理ブロックでキャッシュを使い切った時、新規の論理ブロックにより既存の論理ブロックが

置き換えられる可能性がある。書き込み、読み込み、検証操作を行うコマンドの、CDB内のページ

アウト無効(disable page out:DPO)ビットは、アプリケーションクライアントに対してキャッ

シュ内の論理ブロックの置換を制御することを可能とする。書き込み操作において、DPOビットに

1を設定した場合は、デバイスサーバは書き込まれる新規の論理ブロックにより、キャッシュ内に

存在する既存の論理ブロックを置き換えるべきではないことを示す。読み込みないし検証操作に

23

Page 24: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

おいて、DPOビットに1が設定された場合は、デバイスサーバは、読み込まれる新規の論理ブロッ

クにより、キャッシュ内に存在する論理ブロックを置き換えるべきではないことを示す。

注意 5:これは古いデータがキャッシュ内に存在することを許容することを意味しない。書き込

み操作でキャッシュ内に存在する論理ブロックと同一の LBAにアクセスする場合、キャッシュ内

に存在する論理ブロックは新規の書き込みデータで更新される。

アプリケーションクライアントは、読み込み、書き込み操作を行うコマンドにおいて、CDB内の

強制ユニットアクセス(force unit access:FUA)ビットを使用することにより、デバイスサー

バがメディアにアクセスしなければならないことを指定することが可能である。書き込み操作に

おいてFUAビットに1が設定された場合、デバイスサーバに対して、コマンドを完了する前にメ

ディアへのデータの書き込みを完了させることを指定する。読み込み操作においてFUAビットに1

が設定された場合、デバイスサーバに対して、キャッシュからではなくメディアからデータを取

得させることを指定する。

DPOビットとFUAビットの両方に1が設定された場合は、読み込み操作と書き込み操作は事実上

キャッシュをバイパスする。

書き込み操作ないし読み込み操作を行うCDBで、FUAビットに0が設定され、かつ、デバイス

サーバが不揮発性キャッシュを有する場合に、アプリケーションクライアントは、デバイスサー

バに対してメディアではなく不揮発性キャッシュにアクセスするよう指定するために、強制ユ

ニットアクセス不揮発性キャッシュ(force unit access non-volatile cache:FUA_NV)ビット

を使用することが可能である。書き込み操作において、FUA_NVビットに1が設定され、FUAビッ

トに0が設定されている場合、デバイスサーバは、メディアの代わりに不揮発性キャッシュへの

データの書き込みを完了することにより、コマンドを完了することが可能となる。読み込み操作

において、FUA_NVビットに1が設定され、FUAビットに0が設定されている場合、デバイスサーバ

はメディアではなく不揮発性キャッシュからデータを取得することが可能となる。

VERIFYコマンドと WRITE AND VERIFYコマンドが実行される場合、それらは、論理ユニットがメ

ディアに格納されたことを検証することから、強制ユニットアクセスとキャッシュ同期操作が暗

黙的に指定されたものと見なされる。VERIFYコマンドはキャッシュ内の論理ブロックを置換する

可能性があることから、VERIFYコマンドではDPOビットが定義される。

デバイスサーバは、アプリケーションクライアントからキャッシュに関する他の動作を制御可

能とするためのコマンドを実装することが可能である。

a) PRE-FETCHコマンド(5.3、5.4を参照)は、アプリケーションクライアントに要求された

論理ブロックのセットを、将来のアクセスに備えてキャッシュ内に読み込ませる。読み込

まれた論理ブロックは、将来の置換対象となる。

b) SYNCHRONIZE CACHEコマンド(5.18、5.19を参照)は、要求された論理ブロックのセット

の内、キャッシュに存在する全ての書き込みデータを、メディアに書き込むよう強制する。

これらのコマンドは、データが全て書き込まれ、検出されたエラーが全て報告されること

を保証するために使用することが可能である。

c) MODE SELECTコマンドで書き込み可能なキャッシュモードページ(6.3.3を参照)は、

キャッシュの動作を制御することを可能とする。

4.11 暗黙的なHEAD OF QUEUEコマンドの処理

本標準で定義される下記のコマンドは、タスク属性がSIMPLEないしORDEREDであった場合、も

しくはタスク属性が指定されていなかった場合には、タスクマネージャによりタスク属性がHEAD

OF QUEUEであるものとして処理される可能性がある。

a) READ CAPACITY(10)コマンド

24

Page 25: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

b) READ CAPACITY(16)コマンド

これ以外の、暗黙的なHEAD OF QUEUEコマンドとして処理される対象となるコマンドについては

SPC-3を参照のこと。

アプリケーションクライアントは、タスクがHEAD OF QUEUEタスク属性として処理される可能性

がある場合は、ORDEREDタスク属性として送信するべきではない。なぜならば、ORDEREDタスク属

性が遵守されるか否かはベンダ固有なためである。

4.12 予約

予約による制約は、予約の種別に関連するアクセス修飾子の結果としてコマンドに課せされる。

予約の説明についてはSPC-3を参照のこと。いかなる種類の予約の元でいかなるコマンドの実行

が許可されるのかについて、詳細は表3を参照のこと。

予約を保持するI_Tネクサスから受信したコマンドは通常通り完了するべきである。表3は、登

録者限定型ないし全登録者型の予約が存在する状況下で、登録済みのI_Tネクサスから受信した

コマンドの動作を規定する。

それぞれのコマンドについて、本標準および SPC-3は RESERVATION CONFLICTとなる条件を定義

する。

表3 様々な予約が存在する状況下で、実行が許可されるSBC-2のコマンド

コマンド 指定された論理ユニットにおいて、他のI_Tネクサスで

保持されている永続予約の種類

任意のI_Tネクサスか

登録済み

のI_Tネ

クサスか

ら(RR全

種別)

未登録のI_Tネクサス

から

書込排他 排他アク

セス

書込排他-

RR

排他アク

セス-RR

FORMAT UNIT 競合 競合 許可 競合 競合

PRE-FETCH(10)/(16) 許可 競合 許可 許可 競合

READ(6)/(10)/(12)/(16)/(32) 許可 競合 許可 許可 競合

READ CAPACITY(10)/(16) 許可 許可 許可 許可 許可

READ DEFECT DATA(10)/(12) 競合 競合 許可 競合 競合

READ LONG(10)/(16) 競合 競合 許可 競合 競合

REASSIGN BLOCKS 競合 競合 許可 競合 競合

STARTビットに1、POWER CONDITIONフィー

ルドに0hが設定されたSTART STOP UNIT

許可 許可 許可 許可 許可

STARTビットに0、POWER CONDITIONフィー

ルドに0h以外が設定されたSTART STOP

UNIT

競合 競合 許可 競合 競合

SYNCHRONIZE CACHE(10)/(16) 競合 競合 許可 競合 競合

VERIFY(10)/(12)/(16)/(32) 許可 競合 許可 許可 競合

WRITE(6)/(10)/(12)/(16)/(32) 競合 競合 許可 競合 競合

WRITE AND VERIFY(10)/(12)/(16)/

(32)

競合 競合 許可 競合 競合

25

Page 26: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

WRITE LONG(10)/(16) 競合 競合 許可 競合 競合

WRITE SAME(10)/(16)/(32) 競合 競合 許可 競合 競合

XDREAD(10)/(32) 許可 競合 許可 許可 競合

XDWRITE(10)/(32) 競合 競合 許可 競合 競合

XDWRITEREAD(10)/(32) 競合 競合 許可 競合 競合

XPWRITE(10)/(32) 競合 競合 許可 競合 競合

RR:登録者限定型ないし全登録者型

許可:予約を保持していないI_Tネクサス、もしくは登録者限定型ないし全登録者型の永続予約

が存在する時に未登録のI_Tネクサスから受信したコマンドは、通常通りに処理されるべきであ

る。

競合:予約を保持していないI_Tネクサス、もしくは登録者限定型ないし全登録者型の永続予約

が存在する時に未登録のI_Tネクサスから受信したコマンドは実行されてはならず、かつデバイ

スサーバはコマンドをRESERVATION CONFLICTステータスで終了しなければならない。

4.13 エラー報告 4.13.1 エラー報告の概要

コマンド処理中に、表4で示された任意の条件が生じた場合、コマンドはステータスにはCHECK

CONDITION、センスキーには指定された値、追加センスコードには条件に応じた値が設定され、終

了されなければならない。いくつかのエラーは、完了のステータスが報告された後で発生する可

能性がある。そのようなエラーに対して、SPC-3は遅延エラー報告メカニズムを定義している。表

4はいくつかのエラー条件と対応するセンスキーの値を示す。リストはCHECK CONDITIONステータ

スを発生しうる全ての条件を網羅的に列挙したものではない。

表4 エラー条件の例

条件 センスキー

不正な LBA ILLEGAL REQUEST

サポートされないオプションが要求された ILLEGAL REQUEST

論理ユニットリセット、I_Tネクサス喪失、当該アプリケー

ションクライアントからの最後のコマンドが実行されてから

メディアが変更されている

UNIT ATTENTION

自己診断の失敗 HARDWARE ERROR

回復不能な読み込みエラー MEDIUM ERRORまたはHARDWARE ERROR

回復された読み込みエラー RECOVERED ERROR

オーバーラン、もしくはコマンドの再実行により解決されう

るエラー

ABORTED COMMAND

書き込み保護が有効なメディアへの書き込みが試みられた DATA PROTECT

本標準に準拠する直接アクセスブロックデバイスは、固定フォーマットと記述子フォーマット

の両方のセンスデータをサポートしなければならない(SPC-3を参照)。固定フォーマットのセン

スデータが使用され、かつ、固定フォーマットのセンスデータに存在するINFORMATIONフィール

ドとCOMMAND-SPECIFIC INFORMATIONフィールドに格納するべき値が大きすぎる場合(例えば、8

バイトの LBA)は、VALIDビットには0が設定されなければならない。

26

Page 27: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表5はセンスデータフィールドの使用法の概要を示す。

表5 直接アクセスブロックデバイスにおけるセンスデータフィールドの使用法

フィールド 使用法 参照

VALIDビットとINFORMATIONフィールド READ LONGコマンド 5.14、5.15

REASSIGN BLOCKSコマンド 5.16

WRITE LONGコマンド 5.33、5.34

読み書きエラーリカバリモードページに基づ

き、メディアにアクセスする全てのコマンド

6.3.4

COMMAND-SPECIFIC INFORMATIONフィー

ルド

EXTENDED COPYコマンド SPC-3

REASSIGN BLOCKSコマンド 5.16

ILIビット READ LONGコマンド 5.14、5.15

WRITE LONGコマンド 5.33、5.34

コマンドが不正な LBAに対してアクセスないし参照を試みる場合、センスデータのINFORMATION

フィールドにおいて、先頭の不正な LBAが返されなければならない(SPC-3を参照)。

回復された読み込みエラーが報告される場合、センスデータのINFORMATIONフィールドには、転

送中に回復された LBAの最後のものが格納されなければならない。

回復不能な読み込みエラーが報告される場合、センスデータのINFORMATIONフィールドには回復

不能な論理ブロックの LBAが格納されなければならない。

4.13.2 ブロックコマンドセンスデータ記述子

表6は直接アクセスブロックデバイスにおいて記述子フォーマットのセンスデータで使用される、

ブロックコマンドセンスデータ記述子を定義する。

表6 ブロックコマンドセンスデータ記述子のフォーマット

DESCRIPTOR TYPEフィールド(SPC-3を参照)には05hが設定されなければならない。

ADDITIONAL LENGTHフィールド(SPC-3を参照)には02hが設定されなければならない。

不正長インジケータ(INCORRECT LENGTH INDICATION:ILIイ)ビットは、READ LONGコマンドな

いし WRITE LONGコマンドで要求されるデータ長が、論理ブロック長と一致しないことを示す。

4.14 XORコマンドのモデル 4.14.1 XORコマンドのモデルの概要

ストレージアレイにおいて、ストレージアレイコントローラ(3.1.41を参照)は直接アクセス

ブロックデバイスのグループをオブジェクトとして構成する。本標準でサポートされるオブジェ

訳注イ SPC-3ではincorrect length indicator

27

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3

記述子種別( DESCRIPTOR TYPE)( 05h)

予約済み

予約済み

追加長( ADDITIONAL LENGTH)( 02h)

ILI 予約済み

Page 28: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

クトの種類は冗長化グループ(3.1.37を参照)であり、直接アクセスブロックデバイスに存在す

るいくつかの論理ブロックはXOR保護データ(3.1.46を参照)で使用され、かつ、いくつかの論

理ブロックは検証データ(3.1.5を参照)で使用される。検証データは、XOR保護データの累積

XOR(3.1.18を参照)操作を実行することにより生成される。XOR操作はストレージアレイコント

ローラないし直接アクセスブロックデバイスにより実行される可能性がある。

XOR保護データを保持する直接アクセスブロックデバイスはデータディスクと呼ばれる。検証

データを保持する直接アクセスブロックデバイスはパリティディスクと呼ばれる。

直接アクセスブロックデバイス内でXOR操作を実行することにより、サービスデリバリサブシス

テムを通じたデータ転送回数を削減することが可能である。例えば、XOR操作がストレージアレイ

コントローラで実行される場合、典型的な更新書き込みシーケンスでは4つのコマンドが必要と

なる。

a) データディスクに対する読み込み操作を行うコマンド

b) データディスクに対する書き込み操作を行うコマンド

c) パリティディスクに対する読み込み操作を行うコマンド

d) パリティディスクに対する書き込み操作を行うコマンド

ストレージアレイコントローラはまた、本シーケンス内で内部のXOR操作を2回実行する。

対照的に、ストレージアレイコントローラの制御によりXOR操作が行われる場合は(4.14.2を

参照)、3つのコマンドのみが必要となる。

a) データディスクに対する書き込み操作を行うコマンド

b) データディスクに対する読み込み操作を行うコマンド

c) パリティディスクに対する書き込み操作を行うコマンド

4.14.2 ストレージアレイコントローラの制御によるXOR操作 4.14.2.1 ストレージアレイコントローラの制御によるXOR操作の概要

ストレージアレイコントローラは、XOR操作を必要とする3つの基本的な操作を制御する。

a) 更新書き込み操作(4.14.2.2を参照)

b) 再生成操作(4.14.2.3を参照)

c) 再構築操作(4.14.2.4を参照)

これらの操作を行うコマンドシーケンスでは、必要なXOR機能を実行するために、直接アクセス

ブロックデバイス内のデバイスサーバを使用する。

ストレージアレイコントローラの制御によるXOR操作を実装するためには、XDREADコマンド

(5.38、5.39を参照)、XDWRITEコマンド(5.40、5.41を参照)、XPWRITEコマンド(5.44と

5.45を参照)の3つのコマンドが必要となる。XDWRITEコマンドと後続するXDREADコマンドによ

るシーケンスの代わりに、XDWRITEREADコマンド(5.42、5.43を参照)を使用することが可能で

ある。ストレージアレイコントローラはまた、特定の操作においてはREADコマンドと WRITEコマ

ンドを用いる。

4.14.2.2 更新書き込み操作

更新書き込み操作は、データディスクに新規のXOR保護データを書き込み、パリティディスクの

検証データを更新する。シーケンスは下記となる。

28

Page 29: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

1. XDWRITEコマンドがデータディスクに送信される。これは、新規のXOR保護データをデータ

ディスクに送信する。デバイスサーバは古いXOR保護データをメディアから読み込み、古

いXOR保護データと受信したXOR保護データによりXOR操作を実行し、中間のXORの結果を

保持し、受信したXOR保護データをメディアに書き込む。

2. XDREADコマンドがデータディスクに送信される。このコマンドは中間 XORデータをスト

レージアレイコントローラに送信する。

3. XPWRITEコマンドがパリティディスクに送信される。これは、中間 XORデータ(すなわち、

1つ前のXDREADコマンドで受信したXORデータ)をパリティディスクに送信する。デバイ

スサーバは古い検証データを読み込み、古い検証データと中間 XORデータによりXOR操作を

実行し、結果(すなわち、新規の検証データ)をメディアに書き込む。

ステップ1、2の代わりに、単一のXDWRITEREADコマンドを送信することが可能である。

4.14.2.3 再生成操作

再生成操作は、エラーの生じた1つないし複数の論理ブロックを回復するために使用される。こ

れは、冗長化グループに属する他の直接アクセスブロックデバイスから対応する論理ブロックを

読み込み、それらの論理ブロックでXOR操作を行うことにより実現される。最後に行われたXOR

の結果が、読み込み不可能な直接アクセスブロックデバイスに存在するべきデータとなる。ス

テップ数は冗長化グループに存在する直接アクセスブロックデバイスの個数に依存するが、シー

ケンスは下記の通りとなる。

1. READコマンドが最初の直接アクセスブロックデバイスに送信される。これは、直接アクセ

スブロックデバイスからストレージアレイコントローラにデータを転送する。

2. DISABLE WRITEビットに1が設定されたXDWRITEコマンドが、次の直接アクセスブロックデ

バイスに送信され、前の読み込み操作で取得されたデータが次の直接アクセスブロックデ

バイスに送信される。当該の直接アクセスブロックデバイスはデータを読み込み、受信し

たデータとのXOR操作を実行し、中間のXORの結果を保持する。

3. XDREADコマンドを、ステップ2と同じ直接アクセスブロックデバイスに送信する。これは、

当該のデバイスからストレージアレイコントローラに、中間 XORデータを送信する。

4. ステップ2と3を、アクセス不能となったデバイスを除く、冗長化グループに属する全ての

直接アクセスブロックデバイスに対して繰り返す。

最後のXDREADコマンドで返される中間 XORデータが、障害の生じたデバイスに対して再生成さ

れたデータとなる。

ステップ2と3の代わりに、DISABLE WRITEビットに1が設定されたXDWRITEREADコマンドを使

用することが可能である。

4.14.2.4 再構築操作

再構築操作は、最後のXORの結果を代替のデバイスに書き込むことを除いて再生成操作と同じで

ある。この機能は障害の生じたデバイスが交換され、ストレージアレイコントローラが再構築し

たデータを代替のデバイスに書き込む時に使用される。ステップ数は冗長化グループに属する直

接アクセスブロックデバイスの個数に依存するが、シーケンスは下記の通りとなる。

1. READコマンドが最初の直接アクセスブロックデバイスに送信される。これは、直接アクセ

スブロックデバイスからストレージアレイコントローラにデータを転送する。

2. DISABLE WRITEビットに1が設定されたXDWRITEコマンドが、次の直接アクセスブロックデ

バイスに送信され、前の読み込み操作で取得したデータが次の直接アクセスブロックデバ

イスに送信される。当該の直接アクセスブロックデバイスはデータを読み込み、受信した

29

Page 30: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

データとのXOR操作を実行し、中間のXORの結果を保持する。

3. XDREADコマンドを、ステップ2と同じ直接アクセスブロックデバイスに送信する。これは、

当該のデバイスからストレージアレイコントローラに、中間のXORデータを送信する。

4. ステップ2と3を、代替のデバイスを除く、冗長化グループに属する全ての直接アクセスブ

ロックデバイスに対して繰り返す。最後のXDREADコマンドにより返される中間のXORデー

タが、代替デバイスに対して再構築されたデータとなる。

5. WRITEコマンドが代替デバイスに送信される。これはステップ4で生成された再構築データ

を代替デバイスに送信する。代替デバイスは再構築されたデータをメディアに書き込む。

ステップ2と3の代わりに、DISABLE WRITEビットに1が設定されたXDWRITEREADコマンドを使

用することが可能である。

4.14.3 アレイサブシステムの考慮点 4.14.3.1 アレイサブシステムの考慮点の概要

本節では、XORコマンドの使用による影響を除き、アレイサブシステムにおける考慮点を述べる。

4.14.3.2 バッファフルステータスの取り扱い

ストレージアレイコントローラがXDWRITEコマンドをデバイスに送信した時、デバイスは結果と

して得られたXORデータを、ストレージアレイコントローラがXORデータの取得を試みるための

XDREADコマンドを送信するまで保持する(4.14.4を参照)。デバイスのバッファサイズとXOR

データのサイズによっては、デバイスの内部バッファ領域が全て消費される可能性がある。デバ

イスの内部バッファ領域の全てがXORデータのために割り当てられた時、デバイスは、正当な

XDREADコマンド以外の新規のメディアアクセスコマンドを受け入れることができなくなる可能性

があり、かつ、タスクセット内に存在するコマンドの処理を開始できなくなる可能性がある。

必要なバッファ領域が不足したことによりデバイスサーバが新規のコマンドを受け入れること

ができなくなった場合、デバイスサーバはコマンドをステータスがCHECK CONDITION、センスキー

がILLEGAL REQUEST、追加センスコードがBUFFER FULLで終了しなければならない。

ストレージアレイコントローラがこのステータスを受信した時、以前に発行されたXDWRITEコマ

ンドに対応する任意のXDREADコマンドを発行することが可能である。これにより、他のコマンド

で使用するバッファ領域が解放されることとなる。ストレージアレイコントローラが送信するべ

きXDREADコマンドを有さない場合、ストレージアレイコントローラは、バッファ領域が他のイニ

シエータデバイスのために割り当てられているものと見なすことが可能である。ストレージアレ

イコントローラは、コマンドを頻繁にリトライしすぎないことも含め、TASK SET FULLステータス

が返された時にコマンドをリトライすることと同じ方法に従い、当該のコマンドをリトライする

ことが可能である。

双方向通信を行うXDWRITEREADコマンドは、追加の書き込みデータを受け入れるタイミングと、

読み込みデータを提供するタイミングを、デバイスサーバが制御することにより、バッファフル

状態の発生を抑制する。

4.14.3.3 矛盾するストライプへのアクセス

ストライプは、2つ以上の直接アクセスブロックデバイスに存在する、対応するエクステント

(3.1.19を参照)のことである。

ストレージアレイコントローラがデータディスクに対して更新書き込みを試みた時、当該コマ

ンドに対して成功のステータスが返された場合には、データディスク内のデータは更新されるこ

ととなる。しかしながら、パリティディスクが更新されるまでは、冗長化グループ内の関連する

ストライプは一貫性が失われた(すなわち、XOR保護データに対するXOR操作の実行により、検証

データが生成されない)状態となる。

30

Page 31: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ストレージアレイコントローラは、この矛盾のウインドウを追跡しなければならず、かつ、ス

トライプ内の全てのデータエクステントに対して、パリティディスクが更新されストライプの一

貫性が回復するまでは、再構築や再生成が行われないことを保証しなければならない。複数のイ

ニシエータが存在するシステムにおいては、更新の追跡はより一層複雑なものとなる可能性があ

る。なぜならば、それぞれのストレージアレイコントローラは、自身が再構築ないし再生成を

行っているストライプに対して、他のストレージアレイコントローラが書き込みを行っていない

ことを保証しなければならないためである。ストレージアレイコントローラ間での協調動作はシ

ステム固有であり、本標準のスコープ対象外である。

何らかのXORコマンドがCHECK CONDITIONステータスで終了し、回復不能なエラーが示されてい

た場合、ストライプは矛盾した状態となる可能性がある。失敗したデバイスと失敗した範囲を識

別し、矛盾したストライプへのアクセスを制限することは、ストレージアレイコントローラの責

任である。ストレージアレイコントローラが実装するリカバリ手続きについては、本標準のス

コープ対象外である。

4.14.4 XORデータ保持の要求

デバイスサーバは、XDWRITEコマンドの結果により生成されるXORデータを、下記いずれか1つ

のイベントが発生するまで、対応するXDREADコマンドによる取得に備えて保持するしなければな

らない。

a) 対応するXDREADコマンドの受信

b) 論理ユニットリセット

c) XDWRITEコマンドを受信したI_TネクサスにおけるI_Tネクサス喪失

d) 下記いずれかのタスク管理機能の実行(SAM-3を参照)

A) CLEAR TASK SET

B) XORデータの回復を試みるXDREADコマンドのI_T_L_Qネクサスを指定したABORT TASK

C) ABORT TASK SET

XORデータが失われ、かつ、アプリケーションクライアントがXOR操作の続行を求める場合、こ

れらのコマンドの後にXDWRITEコマンドを再送することが求められる。

4.15 START STOP UNITと電源状態 4.15.1 START STOP UNITと電源状態の概要

START STOP UNITコマンド(5.17を参照)は、アプリケーションクライアントからの、論理ユ

ニットの電源状態に対する制御を可能とする。この方法には、論理ユニットに対して、ある電源

状態に遷移するよう指示することも含まれる。

START STOP UNITコマンド以外にも、論理ユニットの電源状態は電源状態モードページ(SPC-3

を参照)により制御することが可能である。同一論理ユニットの電源状態を制御するために、S

TART STOP UNITコマンドと電源状態モードページの両方が使用された場合は、電源状態モード

ページによる電源状態の制御は、START STOP UNITコマンドによる電源状態の指定により上書きさ

れなければならない。

論理ユニットがある電源状態から別の状態へ遷移したことに関する、アプリケーションクライ

アントへの通知は存在してはならない。アプリケーションクライアントは、論理ユニットの現在

の電源状態を、REQUEST SENSEコマンド(SPC-3を参照)を発行することにより調べることが可能

である。デバイスサーバは、センスキーにNO SENSE、追加センスコードに下記いずれか1つを設

定したパラメタデータを返す。

31

Page 32: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

a) スタンバイ電源状態ないしアイドル電源状態に遷移した理由が不明な場合には LOW POWER

CONDITION ON。

b) 論理ユニットが、アイドル状態タイマ(SPC-3を参照)によりアイドル電源状態へ遷移した

場合にはIDLE CONDITION ACTIVATED BY TIMER。

c) 論理ユニットが、スタンバイ状態タイマロ(SPC-3を参照)によりスタンバイ電源状態へ遷

移した場合にはSTANDBY CONDITION ACTIVATED BY TIMER。

d) 論理ユニットが、START STOP UNITコマンドによりアイドル電源状態へ遷移した場合には、

IDLE CONDITION ACTIVATED BY COMMAND。

e) 論理ユニットが、START STOP UNITコマンドによりスタンバイ電源状態へ遷移した場合には、

STANDBY CONDITION ACTIVATED BY COMMAND。

電源状態は、サービスデリバリサブシステムが正常に動作するために必要となる電源供給に対

して、いかなる影響も与えてはならない。

4.15.2 START STOP UNITと電源状態の状態機械 4.15.2.1 START STOP UNITと電源状態の状態機械の概要

START STOP UNITコマンドを実装する論理ユニットにおける、START STOP UNIT電源状態(start

stop unit power condition:SSU_PC)状態機械は、START STOP UNITコマンドと電源状態モード

ページ(SPC-3を参照)の設定により生じる、論理ユニットの電源状態を記述する。

SSU_PCの状態は下記となる。

a) SSU_PC0:電源投入(4.15.2.2を参照)(初期状態)

b) SSU_PC1:起動(4.15.2.3を参照)

c) SSU_PC2:アイドル(4.15.2.4を参照)

d) SSU_PC3:スタンバイ(4.15.2.5を参照)

e) SSU_PC4:停止(4.15.2.6を参照)

SSU_PC状態機械は、電源投入後にSSU_PC0:電源投入状態から開始しなければならない。

注意 6:SSU_PC状態機械は、SPC-3に記述される電源状態の状態機械に対する拡張版である。

図 2は SSU_PC状態機械を示す。

訳注ロ 原著では"アイドル状態タイマ"と記載されているが、明らかに"スタンバイ状態タイマ"の誤記。

32

Page 33: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

図2. STOP UNITコマンドを実装する論理ユニットにおける電源状態の状態機械

4.15.2.2 SSU_PC0:電源投入状態

4.15.2.2.1 SSU_PC0:電源投入状態の説明

論理ユニットは、電源投入時には本状態に遷移しなければならない。本状態に留まる時間は0で

ある。

4.15.2.2.2 SSU_PC0:電源投入からSSU_PC1:起動への遷移

論理ユニットがSSU_PC1:起動状態へ遷移するよう構成されていた場合には、本遷移が生じなけ

ればならない。

4.15.2.2.3 SSU_PC0:電源投入からSSU_PC4:停止への遷移

論理ユニットがSSU_PC4:停止状態へ遷移するよう構成されていた場合には、本遷移が生じなけ

ればならない。

4.15.2.3 SSU_PC1:起動状態

4.15.2.3.1 SSU_PC1:起動状態の説明

この状態にある場合、電源投入時の初期化が完了していなければ、論理ユニットは電源投入時

の初期化処理を完了させる。

この状態にある場合、電源投入時の初期化が完了したら下記全てを実行する。

a) 論理ユニットは起動電源状態に留まる(SPC-3を参照)

b) アイドル状態タイマ(SPC-3を参照)が利用可能であり、かつ無効化(5.17を参照)され

ていない場合、アイドル状態タイマが実行される。

c) スタンバイ状態タイマ(SPC-3を参照)が利用可能であり、かつ無効化(5.17を参照)さ

れていない場合、スタンバイ状態タイマが実行される。

33

SSU_PC0:電源投入 a

SSU_PC3:スタンバイ a

SSU_PC1:起動 a

SSU_PC4:停止 b

SSU_PC2:アイドル a

起動 a

停止 b

起動 a

スタンバイ a

アイドル a

起動 a

アイドル a

スタンバイ a

スタンバイ b

停止 b

起動 b

停止 b

アイドル b

停止 b

(a)当該の状態および遷移はSPC-3においても規定される。しかし、本標準に特有の特性が追加される可能性がある(例

えば、本標準で記述される状態との間の遷移)。

(b)当該の状態および遷移は本標準で規定される。

Page 34: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

4.15.2.3.2 SSU_PC1:起動からSSU_PC2:アイドルへの遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、POWER CONDITIONフィールドにIDLEが設定されたSTART STOP UNITコ

マンドを受信した。

b) デバイスサーバが、POWER CONDITIONフィールドにFORCE_IDLE_0が設定されたSTART STOP

UNITコマンドを受信した。

c) アイドル状態タイマが利用可能(SPC-3を参照)であり、有効(5.17を参照)であり、か

つ、0である。

4.15.2.3.3 SSU_PC1:起動からSSU_PC3:スタンバイへの遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、POWER CONDITIONフィールドにSTANDBYが設定されたSTART STOP UNIT

コマンドを受信した。

b) デバイスサーバが、POWER CONDITIONフィールドにFORCE_STANDBY_0が設定されたSTART

STOP UNITコマンドを受信した。

c) スタンバイ状態タイマが利用可能(SPC-3を参照)であり、有効(5.17を参照)であり、

かつ、0である。

4.15.2.3.4 SSU_PC1:起動からSSU_PC4:停止への遷移

この遷移は、デバイスサーバが、STARTビットに0が設定され、かつ、POWER CONDITIONフィー

ルドにSTART_VALIDが設定されたSTART STOP UNITコマンドを受信した時に生じなければならな

い。

4.15.2.4 SSU_PC2:アイドル状態

4.15.2.4.1 SSU_PC2:アイドル状態の説明

この状態にある場合は、下記全てを実行する。

a) 論理ユニットはアイドル電源状態に留まる(SPC-3を参照)

b) スタンバイ状態タイマが利用可能(SPC-3を参照)であり、無効化されていない(5.17を

参照)場合、スタンバイ状態タイマが実行される。

4.15.2.4.2 SSU_PC2:アイドルからSSU_PC1:起動への遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、STARTビットに1が設定されたSTART STOP UNITコマンドを受信した。

b) デバイスサーバが、POWER CONDITIONフィールドにACTIVEが設定されたSTART STOP UNIT

コマンドを受信した。

c) デバイスサーバが、コマンドを処理するために当たり、論理ユニットに対してSSU_PC1:起

動状態へ遷移することが必要となるコマンドを受信した。

4.15.2.4.3 SSU_PC2:アイドルからSSU_PC3:スタンバイへの遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、POWER CONDITIONフィールドにSTANDBYが設定されたSTART STOP UNIT

コマンドを受信した。

34

Page 35: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

b) デバイスサーバが、POWER CONDITIONフィールドにFORCE_STANDBY_0が設定されたSTART

STOP UNITコマンドを受信した。

c) スタンバイ状態タイマが利用可能(SPC-3を参照)、有効(5.17を参照)であり、かつ0で

ある。

4.15.2.4.4 SSU_PC2:アイドルからSSU_PC4:停止への遷移

この遷移は、デバイスサーバが、STARTビットに0が設定されたSTART STOP UNITコマンドを受

信した時に生じなければならない。

4.15.2.5 SSU_PC3:スタンバイ状態

4.15.2.5.1 SSU_PC3:スタンバイ状態の説明

この状態にある場合、論理ユニットはスタンバイ電源状態に留まらなければならない(SPC-3を

参照)。

4.15.2.5.2 SSU_PC3:スタンバイからSSU_PC1:起動への遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、STARTビットに1が設定されたSTART STOP UNITコマンドを受信した。

b) デバイスサーバが、POWER CONDITIONフィールドにACTIVEが設定されたSTART STOP UNIT

コマンドを受信した。

c) デバイスサーバが、コマンドを処理するために当たり、論理ユニットに対してSSU_PC1:起

動状態へ遷移することが必要となるコマンドを受信した。

4.15.2.5.3 SSU_PC3:スタンバイからSSU_PC2:アイドルへの遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、POWER CONDITIONフィールドにIDLEが設定されたSTART STOP UNITコ

マンドを受信した。

b) デバイスサーバが、POWER CONDITIONフィールドにFORCE_IDLE_0が設定されたSTART STOP

UNITコマンドを受信した。

c) デバイスサーバが、コマンドを処理するために当たり、論理ユニットに対してSSU_PC2:ア

イドル状態へ遷移することが必要となるコマンドを受信した。

4.15.2.5.4 SSU_PC3:スタンバイからSSU_PC4:停止への遷移

この遷移は、デバイスサーバが、STARTビットに0が設定されたSTART STOP UNITコマンドを受

信した時に生じなければならない。

4.15.2.6 SSU_PC4:停止状態

4.15.2.6.1 SSU_PC4:停止状態の説明

この状態にある場合は、下記全ての指定に従う。

a) デバイスサーバはメディアアクセスコマンドを処理する能力を有さない。この状態にある

時に受信した全てのメディアアクセスコマンドは、ステータスがCHECK CONDITION、センス

キーがNOT READY、追加センスコードが LOGICAL UNIT NOT READY, INITIALIZING COMMAND

REQUIREDで終了されなければならない。

b) SCSIターゲットデバイスにより消費される電力は、論理ユニットがSSU_PC1:起動、

SSU_PC2:アイドル、SSU_PC3:スタンバイのそれぞれの状態である場合に消費する電力よ

35

Page 36: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

りも少なくなるべきである。

4.15.2.6.2 SSU_PC4:停止からSSU_PC1:起動への遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、STARTビットに1が設定されたSTART STOP UNITコマンドを受信した。

b) デバイスサーバが、POWER CONDITIONフィールドにACTIVEが設定されたSTART STOP UNIT

コマンドを受信した。

4.15.2.6.3 SSU_PC4:停止からSSU_PC2:アイドルへの遷移

この遷移は下記いずれかの場合に生じなければならない。

a) デバイスサーバが、POWER CONDITIONフィールドにIDLEが設定されたSTART STOP UNITコ

マンドを受信した。

b) デバイスサーバが、POWER CONDITIONフィールドにFORCE_IDLE_0が設定されたSTART STOP

UNITコマンドを受信した。

4.15.2.6.4 SSU_PC4:停止からSSU_PC3:スタンバイへの遷移

この遷移は下記いずれかの場合に生じなければならない。

c) デバイスサーバが、POWER CONDITIONフィールドにSTANDBYが設定されたSTART STOP UNIT

コマンドを受信した。

d) デバイスサーバが、POWER CONDITIONフィールドにFORCE_STANDBY_0が設定されたSTART

STOP UNITコマンドを受信した。

4.16 保護情報モデル 4.16.1 保護情報の概要

保護情報モデルは、送信者と受信者間で転送中のユーザデータを保護するために提供される。

保護情報はアプリケーションレイヤで生成され、I_T_Lネクサスに関係する任意のオブジェクトで

検証することが可能である。一度受信されると、保護情報はデバイスサーバにより、上書きされ

るまで保存される(例えば、メディアへ書き込まれる、不揮発性メモリへ格納される、再読み込

みにより計算される)。電源喪失、ハードリセット、論理ユニットリセット、I_Tネクサス喪失は、

保護情報の保持に影響を与えてはならない。

保護情報のサポートは、標準INQUIRYデータ(SPC-3を参照)のPROTECTビットにより示されな

ければならない。

保護情報を使用するコマンドにおいて、Data-InバッファないしData-Outバッファは、ユーザ

データと保護情報の両方からなる論理ブロックにより構成されなければならない。保護情報を使

用しないコマンドにおいては、Data-InバッファないしData-Outバッファは、ユーザデータのみ

からなる論理ブロックにより構成されなければならない。

論理ユニットが保護情報を使用する様フォーマットされており、かつ、切断-再接続モードペー

ジ(SPC-3を参照)のEMDPビットに1が設定されている場合、変更データポインタとデータアラ

イメントの報告を除くサービスデリバリサブシステム内の論理ブロック参照タグの検証は、論理

ブロックが順序通りに転送されなかった場合には失敗する可能性がある。

4.16.2 保護情報のフォーマット

表7は論理ブロック内の保護情報のフォーマットを示す。

36

Page 37: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表7 ユーザデータと保護情報のフォーマット

USER DATAフィールドにはユーザデータが格納されなければならない。USER DATAフィールドは、

LOGICAL BLOCK GUARDフィールド内に格納されるCRCの生成と検証で使用されなければならない。

LOGICAL BLOCK GUARDフィールドには、USER DATAフィールドの内容に対するCRC(4.16.3を参

照)が格納される。

LOGICAL BLOCK APPLICATION TAGフィールドはアプリケーションクライアントにより設定される。

LOGICAL BLOCK APPLICATION TAGフィールドにFFFFhが設定された場合は、当該論理ブロックに対

する保護情報の検証が無効であることを示す。それ以外の場合、論理ブロックアプリケーション

タグの内容は本標準では規定されない。制御モードページ(SPC-3を参照)のATOビットに0が設

定されている場合、LOGICAL BLOCK APPLICATION TAGフィールドの内容はデバイスサーバにより変

更される可能性がある。LOGICAL BLOCK APPLICATION TAGフィールドの内容は、LOGICAL BLOCK

GUARDフィールドに格納されるCRCの生成と検証で使用されてはならない。

LOGICAL BLOCK REFERENCE TAGフィールドには、論理ブロックに関連づけられる加算値が格納さ

れる。Data-InバッファないしData-Outバッファ内の最初の論理ブロックにおける、LOGICAL

BLOCK REFERENCE TAGフィールドの内容は、処理されるコマンドに依存する。

a) EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドが含まれないコマンド(例え

ば、READ(16))では、Data-InバッファないしData-Outバッファ内の最初の論理ブロッ

クにおける LOGICAL BLOCK REFERENCE TAGフィールドには、コマンド内の LOGICAL BLOCK

ADDRESSフィールドに格納される LBAの最下位 4バイトが格納されなければならない。

b) EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドが含まれるコマンド(例えば、

READ(32))では、最初の論理ブロックにおける LOGICAL BLOCK REFERENCE TAGフィール

ドには、コマンド内のEXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドの値が

格納されなければならない。これらのコマンドは、メディアが、論理ブロック参照タグの

所有権をアプリケーションクライアントが保持する様にフォーマットされていた場合(す

なわち、FORMAT UNITコマンドのRTO_REQビットに1が設定されていた場合(5.2を参

照))にのみ処理される。

Data-InバッファないしData-Outバッファ内の後続する論理ブロックにおいては、LOGICAL

BLOCK REFERENCE TAGフィールドには、前の論理ブロック内の論理ブロック参照タグに1を加算し

た値が格納されなければならない。LOGICAL BLOCK REFERENCE TAGフィールドの内容は、LOGICAL

BLOCK GUARDフィールド内に格納されるCRCの生成と検証で使用されてはならない。

4.16.3 論理ブロックガード 4.16.3.1 論理ブロックガードの概要

LOGICAL BLOCK GUARDフィールドには、USER DATAフィールドの内容に基づき生成されたCRCが

37

Bit

Byte7 6 5 4 3 2 1 0

0

n-1

n

ユーザデータ( USER DATA)

論理ブロックガード(LOGICAL BLOCK GUARD)

論理ブロックアプリケーションタグ

(LOGICAL BLOCK APPLICATION TAG)

論理ブロック参照タグ(LOGICAL BLOCK REFERENCE TAG)

n+1

n+2

n+3

n+4

n+7

(MSB)

(LSB)

(MSB)

(LSB)

(MSB)

(LSB)

Page 38: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

格納されなければならない。

表8は、USER DATAフィールド内の内容に基づき論理ブロックガードを生成する際に使用される、

CRCの多項式を定義する。

表8 CRCの多項式

式 定義

F(x) CRCの適用対象となる、転送されるUSER DATAフィールドを表す多項式で

ある。CRCの目的上、最上位の項の係数は、USER DATAフィールドのバイ

ト0のビット7でなければならず、かつ、最下位の項の係数はUSER DATA

フィールドの最下位バイトのビット0でなければならない。

F'(x) 受信されるUSER DATAフィールドを表す多項式である。

G(x) 生成子の多項式である。

(すなわち、G(x)=18BB7h)

R(x) 送信者がCRCを生成する際に算出される剰余多項式である。送信される

LOGICAL BLOCK GUARDフィールドを表す。

R'(x) 受信される LOGICAL BLOCK GUARDフィールドを表す多項式である。

RB(x) 受信者がCRCによる検証を行う際に算出される剰余多項式である。

RB(x)=0の場合、エラーが生じていないことを示す。

RC(x) 受信者がCRCによる検証を行う際に算出される剰余多項式である。

RC(x)=0の場合、エラーが生じていないことを示す。

QA(x) 送信者がCRCを生成する際に算出される商多項式である。QA(x)の値は使

用されない。

QB(x) 受信者がCRCによる検証を行う際に算出される商多項式である。QB(x)の

値は使用されない。

QC(x) 受信者がCRCによる検証を行う際に算出される商多項式である。QC(x)の

値は使用されない。

M(x) 転送される LOGICAL BLOCK GUARDフィールドが後続する、転送されるUSER

DATAフィールドを表す多項式である。

M'(x) 受信される LOGICAL BLOCK GUARDフィールドが後続する、受信されるUSER

DATAフィールドを表す多項式である。

4.16.3.2 CRCの生成

F(x)からCRCを生成する際に使用される等式は下記の通りである。全ての数値はモジュロ2であ

る。

送信者は、F(x)に 16個の0を付加し、G(x)で除算を行い、R(x)を求めなければならない。

(x 16×F ( x ))G ( x )

=QA( x)+R( x )G( x)

R(x)が CRCの値であり、LOGICAL BLOCK GUARDフィールドに格納され、転送される。

M(x)は LOGICAL BLOCK GUARDフィールドが後続する、USER DATAフィールドを表す多項式である

(すなわち、F(x)の後にR(x)が続く)。

M ( x )=( x16×F ( x ))+R( x )

38

G( x)=x 16+ x15+ x11+x9+x8+ x7+ x5+ x4+ x2+ x+1

Page 39: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

4.16.3.3 CRCの検証

M'(x)(すなわち、受信される LOGICAL BLOCK GUARDフィールドが後続する、受信されるUSER

DATAフィールドを表す多項式)は、転送エラーが存在する場合には、M(x)(すなわち、転送され

る LOGICAL BLOCK GUARDフィールドが後続する、転送されるUSER DATAフィールドを表す多項

式)とは異なる可能性がある。

受信者は、F'(X)に 16個の0を付加し、G(x)で除算し、得られた剰余多項式 RB(x)と CRCの値

R'(x)を比較することにより、M'(x)の妥当性を検証することが可能である。

(x 16×F ' ( x))G( x)

=QB (x )+RB( x )G ( x )

F'(x)と R'(x)にエラーが存在しない場合、剰余のRB(x)は R'(x)と等しくなる。

受信者は、M'(x)を G(x)で除算し、得られた剰余 RC(x)と 0を比較することにより M'(x)の妥当

性を検証することが可能である。

M ' (x )G (x )

=QC (x)+RC ( x)G( x)

F'(x)と R'(x)にエラーが存在しない場合、RC(x)は 0となる。

M'(x)を検証する両方の方法は、数学的に等価である。

4.16.3.4 CRC検証例

いくつかのCRC検証の例を表9に示す。

表9 CRC検証例

パターン CRC

32バイトの00h 0000h

32バイトのFFh A293h

32バイトの00h~1Fhまで1ずつ増加する値 0224h

2バイトのFFhと、後続する30バイトの00h 21B8h

32バイトのFFh~E0hまで1ずつ減算する値 A0B7h

4.16.4 保護情報のアプリケーション

保護情報と共に論理ブロックを送受信する前に、アプリケーションクライアントは下記全てを

行わなければならない。

1. INQUIRYコマンド(SPC-3における標準INQUIRYデータ内のPROTECTビットを参照)を用い、

論理ユニットが保護情報をサポートしているか否かを判断する。

2. 保護情報がサポートされる場合、アプリケーションクライアントは、READ CAPACITY(16)

コマンド(5.11の PROT_ENビットを参照)を用いて、論理ユニットが保護情報を受け入れ

るようにフォーマットされているか否かを判断する。

3. 論理ユニットが保護情報をサポートし、かつ、保護情報を受け入れるようにフォーマット

されていない場合、保護情報を有効にして論理ユニットのフォーマットを行う。

論理ユニットが保護情報をサポートし、かつ、保護情報を受け入れるようにフォーマットされ

ている場合、アプリケーションクライアントは、保護情報をサポートする読み込み操作を実行す

るコマンドを用いることが可能であり、かつ、保護情報をサポートする書き込みないし検証操作

39

Page 40: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

を実行するコマンドを用いるべきである。

4.16.5 保護情報とコマンド

保護情報を有効化すると、デバイスサーバに対して保護情報の取り扱いを指示するための、コ

マンド内に存在するいくつかのフィールドが有効化される。それらのコマンドの保護情報フィー

ルドに関する詳細な定義は、コマンド毎個別に定義される。

保護情報が有効化された時に影響を受けるコマンドは表10(5.1を参照)に示される。

各論理ブロックのバイト長を返すコマンド(例えば、MODE SENSEコマンドやREAD CAPACITYコ

マンド)は、USER DATAフィールドのバイト長を返さなければならず、保護情報(すなわち、

LOGICAL BLOCK GUARDフィールド、LOGICAL BLOCK APPLICATION TAGフィールド、LOGICAL BLOCK

REFERENCE TAGフィールド)の長さを含めてはならない(例えば、ユーザデータと保護情報の合計

が520バイトであれば 512バイトを返す)。

4.17 グループ化機能

グループ化機能は、コマンドに関連する属性の情報を収集する機能である(すなわち、同一の

グループ値を持つコマンドの情報が、指定されたグループに収集される)。属性とグループの定

義は本標準のスコープ対象外である。グループは、ある種のコマンド(例えば、PRE-FETCH(10)

コマンド(5.3を参照))におけるCDB内の GROUP NUMBERフィールドで識別される。

この情報の集合は、本標準のスコープ対象外である(例えば、情報は何らかのSCSIプロトコル

で搬送されない可能性がある)。

注意 7:2つのアプリケーションであるサブシステムを使用する場合における、グループ化機能

の使用例を示す。ここで、一方のアプリケーションはストリーム型のアクセスを行い、他方はラ

ンダムアクセスを行うものとする。ストリーム型アプリケーションが全てのコマンドを単一の値

(例えば、x)にグループ化し、ランダム型のアプリケーションが全てのコマンドを別の値(例え

ば、y)にグループ化する場合、グループ xはストリーム型アクセスを行う全てのコマンドに関す

る統計情報を保持するように定義され、グループ yもランダム型アクセスを行う全てのコマンド

に関する統計情報を保持するように定義される。結果として、2つのセットの統計情報が得られる

(すなわち、xと y)。管理用のアプリケーションは統計情報を読み込み、指定されたグループの

性能が許容可能か否かを判断する。

グループ化機能のサポートは、拡張 INQUIRYデータ VPDページ(SPC-3を参照)の GROUP_SUP

ビットにより示される。

40

Page 41: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

5 直接アクセスブロックデバイスにおけるコマンド 5.1 直接アクセスブロックデバイスにおけるコマンドの概要

表10は、直接アクセスブロックデバイスおけるコマンドを示す。CDBないしパラメタデータで

保護情報(4.16を参照)をサポートするコマンド、もしくは保護情報により処理に影響を受ける

コマンドについては、4列目(すなわち、保護情報欄)に示される。

表10 直接アクセスブロックデバイスにおけるコマンド

コマンド名 操作コード a 種別 b 保護情報 参照

ACCESS CONTROL IN 86h O なし SPC-3

ACCESS CONTROL OUT 87h O なし SPC-3

CHANGE ALIASES A4h/0Bh O なし SPC-3

EXTENDED COPY 83h O なし SPC-3

FORMAT UNIT 04h M あり 5.2

INQUIRY 12h M あり SPC-3

LOG SELECT 4Ch O なし SPC-3

LOG SENSE 4Dh O なし SPC-3

MAINTENANCE IN A3h/00h~04h

A3h/06h~09h

Xe なし SCC-2

MAINTENANCE OUT A4h/00h~05h

A4h/07h~09h

Xe なし SCC-2

MODE SELECT(6) 15h O なし SPC-3

MODE SELECT(10) 55h O なし SPC-3

MODE SENSE(6) 1Ah O なし SPC-3

MODE SENSE(10) 5Ah O なし SPC-3

MOVE MEDIUM ATTACHED A7h Xf なし SMC-2

PERSISTENT RESERVE IN 5Eh O なし SPC-3

PERSISTENT RESERVE OUT 5Fh O なし SPC-3

PRE-FETCH (10) 34h O なし 5.3

PRE-FETCH (16) 90h O なし 5.4

PREVENT ALLOW MEDIUM REMOVAL 1Eh O なし SPC-3

READ(6) 08h MC あり 5.5

READ(10) 28h M あり 5.6

READ(12) A8h O あり 5.7

READ(16) 88h O あり 5.8

READ(32) 7Fh/0009h O あり 5.9

READ ATTRIBUTE 8Ch O なし SPC-3

READ BUFFER 3Ch O なし SPC-3

READ CAPACITY(10) 25h M なし 5.10

41

Page 42: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

READ CAPACITY(16) 9Eh/10h Xd あり 5.11

READ DEFECT DATA(10) 37h O なし 5.12

READ DEFECT DATA(12) B7h O なし 5.13

READ ELEMENT STATUS ATTACHED B4h Xf なし SMC-2

READ LONG(10) 3Eh O あり 5.14

READ LONG(16) 9Eh/11h O あり 5.15

REASSIGN BLOCKS 07h O なし 5.16

RECEIVE COPY RESULTS 84h O なし SPC-3

RECEIVE DIAGNOSTIC RESULTS 1Ch O/Mg なし SPC-3

REDUNDANCY GROUP IN BAh Xe なし SCC-2

REDUNDANCY GROUP OUT BBh Xe なし SCC-2

REPORT ALIASES A3h/0Bh O なし SPC-3

REPORT DEVICE IDENTIFIER A3h/05h O なし SPC-3

REPORT LUNS A0h M なし SPC-3

REPORT PRIORITY A3h/0Eh O なし SPC-3

REPORT SUPPORTED OPERATION CODES A3h/0Ch O なし SPC-3

REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS A3h/0Dh O なし SPC-3

REPORT TARGET PORT GROUPS A3h/0Ah O なし SPC-3

REQUEST SENSE 03h M なし SPC-3

SEND DIAGNOSTIC 1Dh M なし SPC-3

SET DEVICE IDENTIFIER A4h/06h O なし SPC-3

SET PRIORITY A4h/0Eh O なし SPC-3

SET TARGET PORT GROUPS A4h/0Ah O なし SPC-3

SPARE IN BCh Xe なし SCC-2

SPARE OUT BDh Xe なし SCC-2

START STOP UNIT 1Bh O なし 5.17

SYNCHRONIZE CACHE(10) 35h O なし 5.18

SYNCHRONIZE CACHE(16) 91h O なし 5.19

TEST UNIT READY 00h M なし SPC-3

VERIFY(10) 2Fh O あり 5.20

VERIFY(12) AFh O あり 5.21

VERIFY(16) 8Fh O あり 5.22

VERIFY(32) 7Fh/000Ah O あり 5.23

VOLUME SET IN BEh Xe なし SCC-2

VOLUME SET OUT BFh Xe なし SCC-2

WRITE(6) 0Ah Oc あり 5.24

WRITE(10) 2Ah O あり 5.25

42

Page 43: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

WRITE(12) AAh O あり 5.26

WRITE(16) 8Ah O あり 5.27

WRITE(32) 7Fh/000Bh O あり 5.28

WRITE AND VERIFY(10) 2Eh O あり 5.29

WRITE AND VERIFY(12) AEh O あり 5.30

WRITE AND VERIFY(16) 8Eh O あり 5.31

WRITE AND VERIFY(32) 7Fh/000Ch O あり 5.32

WRITE ATTRIBUTE 8Dh O なし SPC-3

WRITE BUFFER 3Bh O なし SPC-3

WRITE LONG(10) 3Fh O あり 5.33

WRITE LONG(16) 9Fh/11h O あり 5.34

WRITE SAME(10) 41h O あり 5.35

WRITE SAME(16) 93h O あり 5.36

WRITE SAME(32) 7Fh/000Dh O あり 5.37

XDREAD(10) 52h O あり 5.38

XDREAD(32) 7Fh/0003h O あり 5.39

XDWRITE(10) 50h O あり 5.40

XDWRITE(32) 7Fh/0004h O あり 5.41

XDWRITEREAD(10) 53h O あり 5.42

XDWRITEREAD(32) 7Fh/0007h O あり 5.43

XPWRITE(10) 51h O あり 5.44

XPWRITE(32) 7Fh/0006h O あり 5.45

下記の操作コードは廃止済みである。

• 01h REZERO UNIT

• 0Bh SEEK(6)

• 16h RESERVE(6)

• 17h RELEASE(6)

• 18h COPY

• 2Bh SEEK(10)

• 30h SEARCH DATA HIGH(10)

• 31h SEARCH DATA EQUAL(10)

• 32h SEARCH DATA LOW(10)

• 33h SET LIMITS(10)

• 36h LOCK UNLOCK CACHE(10)

43

Page 44: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

• 39h COMPARE

• 3Ah COPY AND VERIFY

• 40h CHANGE DEFINITION

• 56h RESERVE(10)

• 57h RELEASE(10)ハ

• 80h XDWRITE EXTENDED(16)

• 81h REBUILD(16)

• 82h REGENERATE(16)

• 92h LOCK UNLOCK CACHE(16)

• B3h SET LIMITS(12)

下記の操作コードはベンダ固有である。

02h、05h、06h、09h、0Ch、0Dh、0Eh、0Fh、10h、11h、13h、14h、19h、20h、21h、22h、23h、

24h、26h、27h、29h、2Ch、2Dh、C0h~FFh。

直接アクセスブロックデバイスにおける、本表に示されていない全ての操作コードは、将来に

おける標準化のために予約済みである。

(a)いくつかのコマンドは、操作コードとサービスアクションの組み合わせにより定義される。

操作コードはスラッシュの前に示され、サービスアクションはスラッシュの後に示される。

(b)M=コマンドの実装が必須である。O=コマンドの実装はオプションである。X=コマンドの実装

要求は参照先で規定される。

(c)アプリケーションクライアントは、READ(6)からREAD(10)、およびWRITE(6)から

WRITE(10)へ変更するべきである(5.24を参照)。

(d)READ CAPACITY(16)は、保護情報がサポートされる場合は必須であり、それ以外の場合は

オプションである。

(e)標準INQUIRYデータ(SPC-3を参照)のSCCSビットに1が設定される場合は、これらのコマ

ンドはSCC-2の規定に従いサポートされなければならない。SCCSビットが0の場合、これらのコ

マンドはサポートされてはならない。

(f)標準INQUIRYデータ(SPC-3を参照)の MCHNGRニビットに1が設定される場合は、これらのコ

マンドはSMC-2の規定に従いサポートされなければならない。MCHNGRホビットに0が設定される場

合は、これらのコマンドはサポートされてはならない。

(g)このコマンドは、標準INQUIRYデータ(SPC-3を参照)のENCSERVビットに1が設定される場

合はサポートされなければならず、それ以外の場合はサポートすることが可能である。

5.2 FORMAT UNITコマンド 5.2.1 FORMAT UNITコマンドの概要

FORMAT UNITコマンド(表11を参照)はデバイスサーバに対して、最後に受信した MODE SELECT

コマンド(SPC-3を参照)のモードパラメタブロック記述子(6.3.2を参照)で指定されたブロッ

訳注ハ 原文では"RELEASE(10h)"と記載されているが、操作コード57hに対応するコマンドは"RELEASE(10)"である。

訳注ニ SBC-2の原文では"MCHGR"と記載さているが、SPC-3で規定されている正しいフィールド名は MCHNGRである。

訳注ホ 同上

44

Page 45: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ク数とブロック長に従い、アプリケーションクライアントからアクセス可能な論理ブロックを

フォーマットするよう指示する。さらに、デバイスサーバはメディアの検証を行い、かつ、メ

ディアと欠陥の管理を行うための制御情報を生成する可能性がある。本コマンドによりメディア

が変更される程度についてはベンダ固有である。

デバイスサーバが、モードパラメタブロック記述子が指定された MODE SELECTコマンドを受信す

るより前に、FORMAT UNITコマンドを受信した場合には、デバイスサーバはブロック数とブロック

長として、現在フォーマットされている論理ユニットの値を使用しなければならない(すなわち、

フォーマット操作中に論理ブロックのブロック数とブロック長は変更されない)。

表11 FORMAT UNITコマンド

FORMAT UNITコマンドの最も簡単な形式(すなわち、パラメタデータを指定しないFORMAT UNIT

コマンド)では、欠陥管理に関してアプリケーションクライアントからの制御が最小限度の状態

でメディアのフォーマットが行われる。デバイスサーバの実装により、実行されるべき欠陥管理

の度合いが決定される。本コマンドの別の形式では、欠陥管理に対するアプリケーションクライ

アントからの制御の度合いが向上する。アプリケーションクライアントは下記について指定する

ことが可能である。

a) 使用されるべき欠陥リスト

b) 欠陥の場所

c) 論理ユニット検証の有効化

d) 欠陥リストがアクセス不能な場合における例外処理

フォーマット操作の実行中、デバイスサーバはINQUIRYコマンド、REPORT LUNSコマンド、

REQUEST SENSEコマンド以外の、タスクセットへの進入を試みるコマンドに対して、ステータスが

CHECK CONDITION、センスキーがNOT READY、追加センスコードが LOGICAL UNIT NOT READY,

FORMAT IN PROGRESSで応答しなければならない。すでにタスクセット内に存在するコマンドの取

り扱いはベンダ固有である。

アプリケーションクライアントは、フォーマット操作の実行中に任意のタイミングで、論理ユ

ニットにおける進捗状況を問い合わせるために、REQUEST SENSEコマンドの応答で返されるパラメ

タデータ内のPROGRESS INDICATIONフィールド(SPC-3を参照)を使用することが可能である。エ

ラーが生じずにフォーマット操作が行われている間、デバイスサーバはREQUEST SENSEコマンド

に対して、センスキーにNOT READY、追加センスコードに LOGICAL UNIT NOT READY, FORMAT IN

PROGRESS、センスキー固有バイトに進捗状況を示す値を設定し、応答しなければならない(SPC-3

を参照)。

フォーマット保護情報(format protection information:FMTPINFO)ビットに0が設定された

場合、デバイスサーバは保護情報の使用を無効化し(4.16を参照)、かつメディアをモードパラ

メタヘッダのモードパラメタブロック記述子(SPC-3を参照)で指定されたブロック長にフォー

マットしなければならないことを示す。FMTPINFOビットに1が設定された場合、デバイスサーバ

45

Bit

Byte7 6 5 4 3 2 1 0

0 操作コード( OPERATION CODE)( 04h)

ベンダ固有

廃止済み

コントロール( CONTROL)

FMTPINFO RTO_REQ LONGLIST FMTDATA CMPLIST欠陥リストフォーマット( DEFECT LIST FORMAT)

1

2

3

4

5

Page 46: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

は保護情報の使用を有効化し(4.16を参照)、かつメディアをモードパラメタヘッダのモードパ

ラメタブロック記述子で指定された長さ+8バイトのブロック長でフォーマットしなければならな

いことを示す(例えば、ブロック長が512バイトであれば、フォーマットされるブロック長は520

バイトとなる)。フォーマットに成功した後、READ CAPACITY(16)パラメタデータ(5.11を参

照)内のPROT_ENビットは、保護情報が有効か否かを示す。

参照タグ所有権要求(reference tag own request:RTO_REQ)ビットは、保護情報内の LOGICAL

BLOCK REFERENCE TAGフィールドの所有権をアプリケーションクライアントが有するのか、デバイ

スサーバが有するのかを指定する(4.16.2を参照)。FMTPINFOビットが0で、かつRTO_REQビッ

トが1であれば、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーが

ILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了しなければならない。

FMTPINFOビットが1で、かつRTO_REQビットが1であれば、デバイスサーバは LOGICAL BLOCK

REFERENCE TAGフィールドに対するアプリケーションクライアントの所有権を有効化しなればなら

ないことを示す。 FMTPINFOビットが1で、かつRTO_REQビットが0であれば、デバイスサーバは

LOGICAL BLOCK REFERENCE TAGフィールドに対するアプリケーションクライアントの所有権を無効

化(すなわち、デバイスサーバの所有権を有効化)しなければならないことを示す。フォーマッ

トに成功した後、READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットは、アプ

リケーションクライアントが LOGICAL BLOCK REFERENCE TAGフィールドの所有権を有しているか

否かを示す。

FORMAT UNITコマンドの実行中に保護情報が書き込まれる場合(すなわち、FMTPINFOビットが1

の場合)、保護情報にはデフォルト値であるFFFFFFFF_FFFFFFFFhが書き込まれなければならない。

LONGLISTビットに0が設定された場合、パラメタリストには、表14に示される短いパラメタリ

ストヘッダが格納されることを示す。LONGLISTビットに1が設定された場合、パラメタリストに、

表15に示される長いパラメタリストヘッダが格納されることを示す。FMTDATAビットが0の場合、

LONGLISTビットは無視されなければならない。

フォーマットデータ(format data:FMTDATA)ビットに0が設定された場合は、Data-Outバッ

ファからパラメタリストが転送されないことを示す。

FMTDATAビットに1が設定された場合、FORMAT UNITパラメタリスト(表13を参照)がData-Out

バッファから転送されなければならないことを示す。パラメタリストには、パラメタリストヘッ

ダ、およびオプションの初期化パターン記述子と、オプションの欠陥リストが後続して格納され

る。

完全リスト(complete list:CMPLST)ビットに0が設定された場合、FORMAT UNITパラメタリ

スト内の欠陥リストが、既存の欠陥リストに追加されなければならないことを示す。結果として、

デバイスサーバは下記全てを含む新規の GLIST(4.8を参照)を構成しなければならない。

a) 既存の GLIST

b) アプリケーションクライアントからDLISTが送信された場合には、そのDLIST

c) 検証が有効な場合には、CLIST(すなわち、デバイスサーバはフォーマット操作の実行中に

検出した欠陥を追加する可能性がある)

CMPLSTビットに1が設定された場合は、FORMAT UNITパラメタリスト内の欠陥リストが、欠陥の

完全なリストであることを示す。PLISTを除く全ての既存の欠陥リストはデバイスサーバにより無

視されなければならない。その結果、デバイスサーバは下記全てを含む新規の GLISTを構成しな

ければならない。

a) アプリケーションクライアントからDLISTが送信された場合には、そのDLIST

b) 検証が有効な場合には、CLIST(すなわち、デバイスサーバはフォーマット操作の実行中に

検出した欠陥を追加する可能性がある)

46

Page 47: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

FMTDATAビットに0が設定された場合には、CMPLSTビットは無視されなければならない。

DEFECT LIST FORMATフィールドは、FMTDATAビットが1の場合に、欠陥リスト内のアドレス記述

子で使用されるフォーマットを指定する(表12を参照)。

表12は FORMAT UNITコマンドにおけるアドレス記述子の使用方法を規定する。

表12 FORMAT UNITコマンドにおけるアドレス記述子の使用法

FORMAT UNITコマンドのCDB内のフィール

パラメタリスト

ヘッダのDEFECT

LIST LENGTHフィー

ルド

種別 a 備考 f

FMTDATA CMPLST DEFECT LIST

FORMAT

0 任意 000b 利用不可 M ベンダ固有の欠陥情報

1 0 000b(短縮ブ

ロック)

0 O (b)と(d)を参照

1 1 O (b)と(e)を参照

1 0 0以外 O (c)と(d)を参照

1 1 O (b)と(e)を参照ヘ

1ト 0 011b(拡張ブ

ロック)

0 O (b)と(d)を参照

1 1 O (b)と(e)を参照

1 0 0以外 O (c)と(d)を参照

1 1 O (c)と(e)を参照

1 0 100b

(インデクス先

頭バイト)

0 O (b)と(d)を参照

1 1 O (b)と(e)を参照

1 0 0以外 O (c)と(d)を参照

1 1 O (c)と(e)を参照

1 0 101b

(物理セクタ)

0 O (b)と(d)を参照

1 1 O (b)と(e)を参照

1 0 0以外 O (c)と(d)を参照

1 1 O (c)と(e)を参照

1 0 110b

(ベンダ固有)

ベンダ固有 O

1 1 O

その他全て 予約済み

(a)M=実装は必須である。O=実装はオプションである。

(b)パラメタリストにDLISTは含まれない。

(c)パラメタリストにDLISTが含まれる。デバイスサーバは新しい GLISTに DLISTの欠陥を追加

しなければならない。

(d)デバイスサーバは既存の GLISTの欠陥を、新規の GLISTに追加しなければならない(すなわ

ち、既存の GLISTを使用する)。

訳注ヘ 意味的には「(c)と(e)を参照」とするのが正しいように思われるが、SBC-3でもこの部分は変更されていない。

訳注ト 原文ではDEFECT LIST FORMATが 011bの、FMTDATAと CMPLST欄が空白になっているのでSBC-3を元に修正している(黄色網掛

け部分が該当)。

47

Page 48: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

(e)デバイスサーバは既存の GLISTの欠陥を、新規の GLISTに追加してはならない(すなわち、

既存の GLISTを破棄する)。

(f)本表に示される全てのオプションにおいて、本文中に記述に従いFORMAT UNITコマンドの実

行中に新規の GLISTが作成される。

5.2.2 FORMAT UNITパラメタリスト 5.2.2.1 FORMAT UNITパラメタリストの概要

表13に FORMAT UNITパラメタリストの定義を示す。

表13 FORMAT UNITパラメタリスト

パラメタリストヘッダは5.2.2.2で定義される。

初期化パターン記述子は5.2.2.3で定義される。

欠陥リストが存在する場合、本フィールドにはアドレス記述子(5.2.2.4を参照)が格納される。

このアドレス記述子は、デバイスサーバがアプリケーションクライアントからアクセス可能な領

域から除外しなければならない、メディア上の場所を指定する

5.2.2.2 パラメタリストヘッダ

パラメタリストヘッダ(表14と表15を参照)は、いくつかのオプションのフォーマット制御パ

ラメタを提供する。これらのヘッダを実装するデバイスサーバは、4種類の欠陥管理とフォーマッ

ト操作に関する、アプリケーションクライアントからの追加の制御を可能とする。アプリケー

ションクライアントがデバイスサーバにより実装されない機能を選択しようと試みた場合、デバ

イスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加

センスコードがINVALID FIELD IN PARAMETER LISTで終了しなければならない。

短いパラメタリストヘッダ(表14を参照)は、FORMAT UNITの CDB内で LONGLISTビットに0が

設定された場合に使用される。

表14 短いパラメタリストヘッダ

48

Bit

Byte7 6 5 4 3 2 1 0

パラメタリストヘッダ( 5.2.2.2の表14ないし表15を参照)

初期化パターン記述子

(存在する場合)( 5.2.2.3の表16を参照)

欠陥リスト(存在する場合)

0~ 3

ないし

0~ 7

Bit

Byte7 6 5 4 3 2 1 0

予約済み

欠陥リスト長( DELECT LIST LENGTH)

0

FOV DPRY DCRT STPF IP 廃止済み IMMED ベンダ固有

(MSB)

(LSB)

1

2

3

Page 49: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

長いパラメタリストヘッダ(表15を参照)は、FORMAT UNITの CDB内で LONGLISTビットに1が

設定された場合に使用される。

表15 長いパラメタリストヘッダ

フォーマットオプション準拠(format options valid:FOV)ビットに0が設定された場合、デ

バイスサーバがDPRY、DCRT、STPF、IPビットでデフォルトの設定を使用しなければならないこと

を示す。FOVビットに0が設定された場合、アプリケーションクライアントはこれらのビットに0

を設定しなければならない。FOVビットに0が設定され、本節で示された他のビットのいずれかに

0以外の値が設定された場合には、デバイスサーバはコマンドを、ステータスがCHECK

CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了し

なければならない。

FOVビットに1が設定された場合、デバイスサーバはDPRY、DCRT、STPF、IPビットを参照しな

ければならないことを示す。FOVビットに1が設定された場合、DPRY、DCRT、STPF、IPビットは

下記の定義に従う。

初期欠陥リスト無効(disable primary:DPRY)ビットに0が設定された場合、デバイスサーバ

はPLISTにより欠陥があるものとして識別されたメディア上の領域を、アプリケーションクライ

アントからアクセス可能な論理ブロックとして使用してはならないことを示す。デバイスサーバ

がPLISTの場所を特定できない、もしくはPLISTが存在するか否か判断できない場合には、STPF

ビットにより指定された動作を実行しなければならない。

DPRYビットに1が設定された場合、デバイスサーバは、メディア上の欠陥が存在する領域を識

別するために、PLISTを使用してはならないことを示す。PLISTは削除されてはならない。

論理ユニット検証リスト無効(disable certification:DCRT)ビットに0が設定された場合、

デバイスサーバは、CLISTを生成するためにベンダ固有のメディア検証操作を実行しなければなら

ないことを示す。DCRTビットに1が設定された場合、デバイスサーバは、ベンダ固有のメディア

検証操作やフォーマット検証操作を実行してはならないことを示す。

フォーマット停止(stop format:STPF)ビットは、下記いずれかのイベントが生じた場合にお

ける、デバイスサーバの動作を制御する。

a) デバイスサーバがPLISTを使用するよう要求されている(すなわち、DPRYビットが0に設

定されている)もしくは GLISTを使用するよう要求されている(すなわち、CMPLSTビット

が0に設定されている)場合で、かつリストの場所が特定できないかリストが存在するか

否か判断できない場合。

b) デバイスサーバがPLISTを使用するよう要求されている(すなわち、DPRYビットが0に設

定されている)もしくは GLISTを使用するよう要求されている(すなわち、CMPLSTビット

が0に設定されている)場合で、かつデバイスサーバが欠陥リストにアクセスする際エ

ラーが発生した場合。

STPFビットが0に設定された場合、これらイベントのいずれかまたは両方が生じた際にデバイ

49

Bit

Byte7 6 5 4 3 2 1 0

予約済み

予約済み

0

FOV DPRY DCRT STPF IP 廃止済み IMMED ベンダ固有1

2

3 予約済み

4

7欠陥リスト長( DEFECT LIST LENGTH)

(MSB)

(LSB)

Page 50: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

スサーバはFORMAT UNITコマンドの処理を継続しなければならないことを指定する。デバイス

サーバは、FORMAT UNITコマンドの完了時にCHECK CONDITIONステータスを返さなければならない。

センスキーにはRECOVERED ERROR、追加センスコードには、条件 a)が生じた場合にはDEFECT LIST

NOT FOUND、条件 b)が生じた場合にはDEFECT LIST ERRORが設定されなければならない。

STPFビットに1が設定された場合、これらイベントのいずれかまたは両方が生じた際にデバイ

スサーバはCHECK CONDITIONステータスを返してFORMAT UNITコマンドを終了しなければならな

い。センスキーには MEDIUM ERROR、追加センスコードには、条件 a)が生じた場合にはDEFECT

LIST NOT FOUND、条件 b)が生じた場合にはDEFECT LIST ERRORが設定されなければならない。

注意 8:FMTDATAビット、CMPLSTビット、パラメタリストヘッダの使用により、アプリケーショ

ンクライアントはFORMAT UNITコマンドで使用される欠陥リストの提供元を制御することが可能

となる。DEFECT LIST LENGTHフィールドに0を設定することにより、アプリケーションクライア

ントはDLISTを指定することなく、PLISTと CLISTの使用を制御することが可能となる。

初期化パターン(initialization pattern:IP)ビットに0が設定された場合、初期化パターン

記述子は存在せず、デバイスサーバはデフォルトの初期化パターンを使用しなければならないこ

とを示す。IPビットに1が設定された場合、初期化パターン記述子(5.2.2.3を参照)がFORMAT

UNITパラメタリスト内でパラメタリストヘッダに後続して格納されることを示す。

即時(immediate:IMMED)ビットに0が設定された場合、デバイスサーバはフォーマット操作が

完了した後でステータスを返さなければならないことを示す。IMMEDビットに1が設定された場合、

デバイスサーバはパラメタリストの全体が転送された後で、ステータスを返さなければならない

ことを示す。

DEFECT LIST LENGTHフィールドは、初期化パターン記述子に後続する欠陥リスト(すなわち、

アドレス記述子)の合計バイト長を指定する。初期化パターン記述子の長さは含まない。アドレ

ス記述子のフォーマットは5.2.2.4で示される。

短縮ブロックフォーマットアドレス記述子と、拡張ブロックフォーマットアドレス記述子は、

昇順に整列されるべきである。インデクス先頭バイトフォーマットアドレス記述子と物理セクタ

フォーマットアドレス記述子は、昇順に整列されなければならない。各アドレス記述子は、1より

多い物理ないし論理ブロックを対象とする可能性がある。アドレス記述子が要求された順に整列

されていない場合、デバイスサーバはステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN PARAMETER LISTでコマンドを終了しなければな

らない。

5.2.2.3 初期化パターン記述子

初期化パターン記述子は、デバイスサーバに対して指定されたパターンで初期化を行うよう指

定する。初期化パターン記述子(表16を参照)は、FORMAT UNITパラメタリストの一部としてデ

バイスサーバに送信される。

表16 初期化パターン記述子

50

Bit

Byte7 6 5 4 3 2 1 0

予約済み

初期化パターン長( INITIALIZATION PATTERN LENGTH)( n-3)

0

1

2

3

4

n初期化パターン( INITIALIZATION PATTERN)

(MSB)

(LSB)

IP MODIFIER SI

初期化パターン種別( INITIALIZATION PATTERN TYPE)

Page 51: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

初期化パターン修飾子(initialization pattern modifier:IP MODIFIER)フィールド(表17

を参照)は、初期化パターンを修飾するヘッダの種別と場所を指定する。

表17 初期化パターン修飾子(IP MODIFIER)フィールド

値 説明

00b ヘッダは存在しない。デバイスサーバは初期化パターンを変更してはならない。

01b デバイスサーバは、各論理ブロックの先頭 4バイトに LBAを書き込むよう、初期

化パターンを上書きする。LBAは最上位バイトが先頭に書き込まれなければなら

ない。LBAが 4バイトよりも大きい場合は、終端が最下位バイトとなるように、最

下位 4バイトが書き込まれなければならない。

10b デバイスサーバは、論理ブロック内の各物理ブロックの先頭 4バイトに LBAを書

き込むよう、初期化パターンを上書きする。物理ブロック内に存在する最も小さ

い番号の論理ブロック、もしくはそれらの一部が使用される。LBAは最上位バイ

トが先頭に書き込まれなければならない。LBAが 4バイトよりも大きい場合は、終

端が最下位バイトとなるように、最下位 4バイトが書き込まれなければならない。

11b 予約済み

セキュリティ初期化(security initialize:SI)ビットに1が設定された場合、デバイスサー

バは、再割り当て(すなわち、欠陥リストにより)されている可能性のある領域も含め、メディ

ア上の全ての領域に対して初期化パターンを書き込むことを試みなければならないことを示す。

SIビットに1が設定された場合は、FORMAT UNITコマンドにおけるCDB内の他のフィールドよりも

優先されなければならない。初期化パターンは、セキュリティ消去書き込み技術により書き込ま

れなければならない。アプリケーションクライアントは、以前のデータを完全に消去するために、

本コマンドを複数回使用する可能性がある。そのようなセキュリティ消去書き込み技術の手続き

は、本標準のスコープ対象外である。セキュリティ消去書き込み技術に課せられる完全な要求に

ついてはベンダ固有である。セキュリティ消去書き込みの目的は、以前に記録されていた全ての

ユーザデータを、いかなるアナログ的ないしデジタル的な技術でも復元不可能なようにすること

である。

SIビットに0が設定された場合、デバイスサーバは、メディア上のアプリケーションクライア

ントからアクセス可能な領域を初期化しなければならないことを示す。デバイスサーバは、メ

ディア上のその他の領域を初期化することは求められない。しかしながら、デバイスサーバは

FORMAT UNITコマンドで定義された、メディアのフォーマットを行わなければならない。

SIビットに1が設定された場合、デバイスサーバは、ヘッダやその他のヘッダ、および、以前

にアプリケーションクライアントからアクセス可能ではなかったメディアの他の部分に対して、

初期化パターンを書き込む必要はない。デバイスサーバが、現在アプリケーションクライアント

からアクセス可能なメディア上の領域、あるいは将来アプリケーションクライアントからアクセ

ス可能とされる(例えば、欠陥リストの初期化により)可能性のあるメディア上の領域に対して

書き込むことができなかった場合、コマンドは、ステータスにCHECK CONDITION、センスキーに

MEDIUM ERROR、追加センスコードには条件に該当する値が設定され、終了されなければならない。

デバイスサーバは、メディア上の一部領域に対する書き込みが不可能であったとしても、残り全

ての領域に対する上書きを試みなければならない。

INITIALIZATION PATTERN TYPEフィールド(表18を参照)は、メディア上のアプリケーション

クライアントからアクセス可能な領域に存在する論理ブロックに対する初期化処理で、デバイス

サーバが使用しなければならないパターンの種別を指定する。論理ブロック内の全てのバイトに、

初期化パターンが書き込まれなければならない。初期化パターンは、表17で示されるIP

MODIFIERフィールドで修飾される。

51

Page 52: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表18 INITIALIZATION PATTERN TYPEフィールド

値 説明

00h デフォルトの初期化パターンを使用する。a

01h 要求された論理ブロックを満たすよう、INITIALIZATION PATTERNフィールド

で指定されたパターンを繰り返す。b

02h~7Fh 予約済み

80h~FFh ベンダ固有

(a)INITIALIZATION PATTERN LENGTHフィールドが0ではなかった場合、デバイスサーバはコマ

ンドをステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードが

INVALID FIELD IN PARAMETER LISTで終了しなければならない。

(b)INITIALIZATION PATTERN LENGTHフィールドが0だった場合、デバイスサーバはコマンドを

ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID

FIELD IN PARAMETER LISTで終了しなければならない。

INITIALIZATION PATTERN LENGTHフィールドは、INITIALIZATION PATTERNフィールドが保持する

バイト数を指定する。初期化パターン長が現在のブロック長を超える場合は、デバイスサーバは

コマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコード

がINVALID FIELD IN PARAMETER LISTで終了しなければならない。

INITIALIZATION PATTERNフィールドは初期化パターンを指定する。初期化パターンはIP

MODIFIERフィールドにより修飾される。

5.2.2.4 アドレス記述子のフォーマット

5.2.2.4.1 アドレス記述子のフォーマットの概要

本節では、FORMAT UNITコマンド、READ DEFECT DATAコマンド(5.12、5.13を参照)、および

SEND DIAGNOSTICコマンドとRECEIVE DIAGNOSTIC RESULTSコマンドのアドレス変換自己診断ペー

ジ(6.1.2、6.1.3を参照)で使用される、アドレス記述子のフォーマットについて記述する。

アドレス記述子のフォーマットの種別は下記により指定される。

a) FORMAT UNITコマンドとREAD DEFECT DATAコマンドにおいては、CDB内のDEFECT LIST

FORMATフィールド。

b) アドレス変換自己診断ページにおいては、SUPPLIED FORMATフィールド。

c) アドレス変換自己診断ページにおいては、TRANSLATE FORMATフィールド。

表19はアドレス記述子の種別を示す。

表19 アドレス記述子のフォーマット

フォーマット種別 説明 参照

000b 短縮ブロックフォーマットアドレス記述子 5.2.2.4.2

011b 拡張ブロックフォーマットアドレス記述子 5.2.2.4.3

100b インデクス先頭バイトフォーマットアドレ

ス記述子

5.2.2.4.4

101b 物理セクタフォーマットアドレス記述子 5.2.2.4.5

110b ベンダ固有

52

Page 53: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

その他全て 予約済み

5.2.2.4.2 短縮ブロックフォーマットアドレス記述子

フォーマット種別で000bが指定された場合、表20に示される短縮ブロックフォーマットアドレ

ス記述子が使用されることを示す。

表20 短縮ブロックフォーマットアドレス記述子(000b)

FORMAT UNITコマンドにおいては、SHORT BLOCK ADDRESSフィールドには、欠陥の位置を示す4

バイト LBAが格納される。READ DEFECT DATAコマンドにおいては、SHORT BLOCK ADDRESSフィー

ルドには、ベンダ固有の4バイトの値が格納される。アドレス変換自己診断ページにおいては、

SHORT BLOCK ADDRESSフィールドには、4バイト LBAもしくはメディアの容量よりも大きなベンダ

固有の4バイトの値が格納される。

5.2.2.4.3 拡張ブロックフォーマットアドレス記述子

フォーマット種別で011bが指定された場合、表21に示される拡張ブロックフォーマットアドレ

ス記述子が使用されることを示す。

表21 拡張ブロックフォーマットアドレス記述子(011b)

FORMAT UNITコマンドにおいては、LONG BLOCK ADDRESSフィールドには、欠陥の位置を示す8バ

イト LBAが格納される。READ DEFECT DATAコマンドにおいては、LONG BLOCK ADDRESSフィールド

にはベンダ固有の8バイトの値が格納される。アドレス変換自己診断ページにおいては、LONG

BLOCK ADDRESSフィールドには8チバイトの LBA、ないしメディアの容量より大きなベンダ固有の

8リバイトの値が格納される。

5.2.2.4.4 インデクス先頭バイトフォーマットアドレス記述子

フォーマット種別で100bが指定された場合、表22に示されるインデクス先頭バイトフォーマッ

トアドレス記述子が使用されることを示す。FORMAT UNITコマンドとREAD DEFECT DATAコマンド

においては、この記述子は1トラック長全体、もしくは8バイト未満の欠陥の場所を指定する。

アドレス変換自己診断ページにおいては、この記述子はトラックの場所、もしくはある領域の先

頭ないし末尾のバイトを指定する。

訳注チ 原文では4バイトと規定されているが意味的には明らかに8バイトである。また、SBC-3では修正されている。

訳注リ 同上

53

Bit

Byte7 6 5 4 3 2 1 0

0

3短縮ブロックアドレス( SHORT BLOCK ADDRESS)

(MSB)

(LSB)

Bit

Byte7 6 5 4 3 2 1 0

0

7拡張ブロックアドレス(LONG BLOCK ADDRESS)

(MSB)

(LSB)

Page 54: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表22 インデクス先頭バイトフォーマットアドレス記述子(100b)

CYLINDER NUMBERフィールドにはシリンダ番号が格納される。

HEAD NUMBERフィールドにはヘッド番号が格納される。

BYTES FROM INDEXフィールドには、インデクス(例えば、トラックの先頭)から対象となる場

所までのバイト数が格納される。BYTES FROM INDEXフィールドにFFFFFFFFhが設定された場合、

トラック全体が対象になることを示す。

インデクス先頭バイトフォーマットアドレス記述子を整列する際、シリンダ番号が第一ソート

キーとなり、インデクスからのバイト位置が最下位のソートキーとなる。本記述子により複数の

論理ブロックが対象となる可能性がある。

5.2.2.4.5 物理セクタフォーマットアドレス記述子

フォーマット種別で101bが指定された場合、表23に示される物理セクタフォーマットアドレス

記述子が使用されることを示す。FORMAT UNITコマンドとREAD DEFECT DATAコマンドにおいて、

本記述子は1トラック全体もしくは1セクタ分の長さの欠陥の場所を指定する。アドレス変換自

己診断ページにおいては、本記述子はトラックもしくはセクタの場所を指定する。

表23 物理セクタフォーマットアドレス記述子(101b)

CYLINDER NUMBERフィールドにはシリンダ番号が格納される。

HEAD NUMBERフィールドにはヘッド番号が格納される。

SECTOR NUMBERフィールドにはセクタ番号が格納される。SECTOR NUMBERフィールドに

FFFFFFFFhが設定された場合は、トラック全体が対象となることを示す。

物理セクタフォーマットアドレス記述子を整列する際、シリンダ番号が第一ソートキーとなり、

セクタ番号が最下位のソートキーとなる。本記述子により複数の論理ブロックが対象となる可能

性がある。

5.3 PRE-FETCH(10)コマンド

PRE-FETCH(10)コマンド(表24を参照)は、デバイスサーバに対して、指定された論理ブロッ

クを揮発性ないし不揮発性キャッシュへ転送するよう要求する。論理ブロックにはユーザデータ

が含まれ、メディアが保護情報を利用するようフォーマットされている場合には保護情報が含ま

54

Bit

Byte7 6 5 4 3 2 1 0

0

2シリンダ番号( CYLINDER NUMBER)

(MSB)

(LSB)

3

4

7 (LSB)

(MSB)

ヘッド番号( HEAD NUMBER)

インデクスからのバイト位置( BYTES FROM INDEX)

Bit

Byte7 6 5 4 3 2 1 0

0

2シリンダ番号( CYLINDER NUMBER)

(MSB)

(LSB)

3

4

7 (LSB)

(MSB)

ヘッド番号( HEAD NUMBER)

セクタ番号( SECTOR NUMBER)

Page 55: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

れている。Data-Inバッファにデータは転送されてはならない。

表24 PRE-FETCH(10)コマンド

即時(immediate:IMMED)ビットに0が設定された場合は、操作が完了した後にステータスが返

されなければならないことを指定する。IMMEDビットに1が設定された場合は、CDBの検証が完了

した直後にステータスが返されなければならないことを指定する。

LOGICAL BLOCK ADDRESSフィールドは、本コマンドでアクセスされる対象となる、最初の論理ブ

ロックを指定する。論理ブロックアドレスがメディアの容量を超える場合には、デバイスサーバ

はコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコー

ドが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しなければならない。

GROUP NUMBERフィールドは、コマンドに関連する属性が集められるべきグループを指定する

(4.17を参照)。GROUP NUMBERフィールドに0が指定された場合は、コマンドに関連する全ての

情報は、いかなるグループにも集められてはならないことを指定する。

PREFETCH LENGTHフィールドは、プリフェッチ(すなわち、メディアからキャッシュへの転送)

されなければならない、LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロックから始まる、

連続した論理ブロックの個数を指定する。PREFETCH LENGTHフィールドに0が指定された場合は、

LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロックからメディア終端までの、全ての論

理ブロックがプリフェッチされなければならないことを指定する。他の全ての値はプリフェッチ

されなければならない論理ブロックの個数を指定する。論理ブロックアドレスとプリフェッチ長

を加算した値がメディアの容量を超えた場合は、デバイスサーバはコマンドを、ステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS

OUT OF RANGEで終了しなければならない。すでにキャッシュ内に存在する論理ブロックについて

は、転送されることは要求されない。

IMMEDビットに0が設定され、指定された論理ブロックが正常にキャッシュへ転送されたら、デ

バイスサーバは下記いずれかを返さなければならない。

a) CONTROLバイト(SPC-3を参照)の LINKビットが0であれば CONDITION METステータスを返

す。

b) LINKビットが1であれば INTERMEDIATE-CONDITION METステータスを返す。

IMMEDビットに0が設定され、キャッシュに指定された論理ブロックを受け入れるだけの十分な

容量がない場合には、デバイスサーバは適合する論理ブロック数のみをキャッシュに転送しなけ

ればならない。論理ブロックの転送が正常終了したら、下記いずれかを返さなければならない。

a) CONTROLバイト(SPC-3を参照)の LINKビットが0であればGOODステータスを返す。

b) LINKビットが1であれば INTERMEDIATEステータスを返す。

55

Bit

Byte7 6 5 4 3 2 1 0

0

1

(MSB)

(LSB)

2

5

7

(LSB)

(MSB)

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

プリフェッチ長( PREFETCH LENGTH)

コントロール( CONTROL)

8

6

9

予約済み グループ番号(GROUP NUMBER)

操作コード( OPERATION CODE)( 34h)

予約済み IMMED 廃止済み

Page 56: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

IMMEDビットに1が指定され、キャッシュに指定された論理ブロックを受け入れるだけの十分な

容量がある場合には、デバイスサーバは下記いずれかを返さなければならない。

a) CONTROLバイト(SPC-3を参照)の LINKビットが0であれば CONDITION METステータスを返

す。

b) LINKビットが1であれば INTERMEDIATE-CONDITION METステータスを返す。

IMMEDビットに1が設定され、キャッシュに指定された論理ブロックを受け入れるだけの十分な

容量がない場合には、デバイスサーバは下記いずれかを返さなければならない。

a) CONTROLバイト(SPC-3を参照)の LINKビットが0であればGOODステータスを返す。

b) LINKビットが1であれば INTERMEDIATEステータスを返す。

IMMEDビットに0が設定され、かつ、キャッシュの容量以外の理由により、1つないし複数の論

理ブロックをキャッシュに転送することに失敗した場合には、デバイスサーバはコマンドを、ス

テータスにCHECK CONDITION、センスキーと追加センスコードに条件に適合する値を設定して終了

しなければならない。IMMEDビットに1が設定され、かつ、キャッシュの容量以外の理由により、

1つないし複数の論理ブロックをキャッシュに転送することに失敗した場合には、デバイスサーバ

は遅延エラーを報告しなければならない(SPC-3を参照)。

5.4 PRE-FETCH(16)コマンド

PRE-FETCH(16)コマンド(表25を参照)は、デバイスサーバに対して、指定された論理ブロッ

クをメディアから揮発性メモリないし不揮発性メモリへ転送するよう要求する。論理ブロックに

はユーザデータが含まれ、また、メディアが保護情報を使用するようにフォーマットされている

場合には、保護情報が含まれる。Data-Inバッファへデータが転送されてはならない。

表25 PRE-FETCH(16)コマンド

本コマンドにおけるフィールドの定義については、PRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。

5.5 READ(6)コマンド

READ(6)コマンド(表26を参照)は、デバイスサーバに対して指定された論理ブロックをメ

ディアから読み込み、それらをData-Inバッファに転送するよう要求する。読み込まれる各論理

ブロックにはユーザデータが含まれ、かつ、メディアが保護情報を使用するようにフォーマット

されていた場合には保護情報も含まれる。転送される各論理ブロックにはユーザデータが含まれ

るが、保護情報は含まれない。直近に書き込まれたデータの値、もしくは、キャッシュに格納さ

れた書き込まれるべきデータが存在する場合にはその値が、論理ブロックの値として転送されな

ければならない。

56

Bit

Byte7 6 5 4 3 2 1 0

0

1

(MSB)

(LSB)

2

9

13 (LSB)

(MSB)

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

プリフェッチ長( PREFETCH LENGTH)

コントロール( CONTROL)

14

10

15

予約済み グループ番号(GROUP NUMBER)

操作コード( OPERATION CODE)( 90h)

予約済み IMMED 予約済み

Page 57: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表26 READ(6)コマンド

本コマンドでは、キャッシュ制御ビット(5.6を参照)は提供されない。キャッシュを有する直

接アクセスブロックデバイスは、READ(6)コマンドに影響するキャッシュ制御ビットの値を有す

る可能性がある。しかしながら、本標準ではデフォルト値は規定されない。明示的な制御が必要

となる場合には、READ(10)コマンドを使用するべきである。

LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。

TRANSFER LENGTHフィールドは、LOGICAL BLOCK ADDRESSフィールドで指定される論理ブロック

から始まる、読み込まれてData-Inバッファへ転送されなければならない連続する論理ブロック

の個数を指定する。TRANSFER LENGTHフィールドに0が設定された場合は256個の論理ブロックが

読み込まれなければならない。他の全ての値は、読み込まれなければならない論理ブロックの個

数を指定する。論理ブロックアドレスと転送長を加算した値がメディアの容量を超過する場合に

は、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しなければならない。

TRANSFER LENGTHフィールドの値は、ブロック制限VPDページ(6.4.2を参照)の MAXIMUM

TRANSFER LENGTHフィールドによる制限を受ける。

注意 9:READ(10)コマンド、READ(12)コマンド、READ(16)コマンド、READ(32)コマンド

においては、TRANSFER LENGTHフィールドに0が指定された場合は論理ブロックの読み込みが行わ

れないことを示す。

注意 10:ブロック長が512バイトの場合、READ(6)コマンドでアドレス指定可能な論理ブロッ

クの範囲は、容量が最大でも2GBに制限される。しかしながら、いくつかのシステムにおける初

期化ルーチンでREAD(6)コマンドが使用されることから、本コマンドは必須のものとして維持さ

れている。READ(6)コマンドを使用するシステム初期化ルーチンは、ブロック長が512バイトの

場合に2TBまでアドレス指定可能なREAD(10)コマンド、あるいは2TB以上のアドレス指定が可

能なREAD(16)コマンドを使用するよう変更するべきである。

デバイスサーバは表27の規定に従い、コマンドのステータスを返す前に、メディアから読み込

まれる保護情報を検証しなければならない。

57

Bit

Byte7 6 5 4 3 2 1 0

0

1 (MSB)

(LSB)

2

3

5

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

転送長( TRANSFER LENGTH)

コントロール( CONTROL)

4

操作コード( OPERATION CODE)( 08h)

予約済み

Page 58: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表27 READ(6)コマンドにおける保護情報の検証

論理ユニットは保

護情報を使用する

ようフォーマット

されているか

デバイスサーバ

は保護情報を転

送しなければな

らないか

保護情報内の

フィールド e

拡張INQUIRY

データVPD

ページのビッ

ト値 d

検証が失敗した b c場合におけ

る追加センスコード

使用する 不要 LOGICAL

BLOCK GUARD

GRD_CHK=1 LOGICAL BLOCK GUARD CHECK

FAILED

GRD_CHK=0 検証は行われない

LOGICAL

BLOCK

APPLICATION

TAG

APP_CHK=1a LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL

BLOCK

REFERENCE

TAG

REF_CHK=1f LOGICAL BLOCK REFERENCE TAG

CHECK FAILED

REF_CHK=0 検証は行われない

使用しない 検証で使用する保護情報が存在しない

(a)デバイスサーバは、LOGICAL BLOCK APPLICATION TAGフィールドの内容に関する知識を有す

る場合にのみ、論理ブロックアプリケーションタグの検証を行う。この知識を獲得する方法につ

いては本標準では規定されない。

(b)エラーが報告された場合、センスキーにはABORTED COMMANDが設定されなければならない。

(c)複数のエラーが発生した場合、報告されるエラーの選択については本標準では規定されない。

(d)GRD_CHKビット、APP_CHKビット、REF_CHKビットの定義については、拡張 INQUIRYデータ

VPDページ(SPC-3を参照)を参照のこと。

(e)デバイスサーバが LOGICAL BLOCK APPLICATION TAGフィールドにFFFFhが設定されているこ

とを検知した場合、論理ブロックに関連するいかなる保護情報についても検証してはならない。

(f)READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている

場合、デバイスサーバは、論理ブロックの LBAの下位 4バイトと論理ブロック参照タグを比較す

ることにより検証を行わなければならない。RTO_ENビットに1が設定された場合、デバイスサー

バが LOGICAL BLOCK REFERENCE TAGフィールドの内容に関する知識を有する場合にのみ、論理ブ

ロック参照タグの検証を行わなければならない。この知識を獲得する方法については、本標準で

は規定されない。

5.6 READ(10)コマンド

READ(10)コマンド(表28を参照)は、デバイスサーバに対して指定された論理ブロックをメ

ディアから読み込み、それらをData-Inバッファに転送するよう要求する。読み込まれる各論理

ブロックにはユーザデータが含まれ、かつ、メディアが保護情報を使用するようにフォーマット

されていた場合には保護情報も含まれる。転送される各論理ブロックにはユーザデータが含まれ、

また、RDPROTECTヌフィールドとメディアのフォーマットに基づき、保護情報も含まれる可能性が

ある。指定された論理ブロックに対して直近に書き込まれたデータの値が、転送されなければな

らない。

訳注ヌ RDPROTECTの非省略形の記載はない。

58

Page 59: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表28 READ(10)コマンド

LOGICAL BLOCK ADDRESSフィールドの定義については、PRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。

GROUP NUMBERフィールドの定義については、PRE-FETCH(10)コマンド(5.3を参照)および

4.17を参照のこと。

デバイスサーバは、表29で定義されるRDPROTECTフィールドに基づき、コマンドのステータス

を返す前にメディアから読み込まれた保護情報の検証を行わなければならない。

表29 RDPROTECTフィールド

値 論理ユニット

が保護情報を

使用するよう

フォーマット

されているか

デバイスサー

バは保護情報

を転送しなけ

ればならない

保護情報の

フィールド h

拡張

INQUIRY

データVPD

ページ内の

ビット g

検証に失敗 d fした場合の追加セ

ンスコード

000bi 使用する 不要 LOGICAL BLOCK

GUARD

GRD_CHK=1 LOGICAL BLOCK GUARD CHECK

FAILED

GRD_CHK=0 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

APP_CHK=1c LOGICAL BLOCK APPLICATION TAG

CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

REF_CHK=1j LOGICAL BLOCK REFERENCE TAG

CHECK FAILED

REF_CHK=0 検証は行われない

使用しない 検証は行われない

001bbi 使用する 必要 e LOGICAL BLOCK

GUARD

GRD_CHK=1 LOGICAL BLOCK GUARD CHECK

FAILED

GRD_CHK=0 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

APP_CHK=1c LOGICAL BLOCK APPLICATION TAG

CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL BLOCK REF_CHK=1j LOGICAL BLOCK REFERENCE TAG

59

Bit

Byte7 6 5 4 3 2 1 0

0

1

(MSB)

(LSB)

2

5

7

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

転送長( TRANSFER LENGTH)

コントロール( CONTROL)

6

操作コード( OPERATION CODE)( 28h)

RDPROTECT DPO FUA 予約済み FUA_NV 廃止済み

予約済み グループ番号(GROUP NUMBER)

8

9

(MSB)

(LSB)

Page 60: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

REFERENCE TAG CHECK FAILED

REF_CHK=0 検証は行われない

使用しない a Data-Inバッファへ転送する、ないし検証で使用する保護情報は存在しない

010bbi 使用する 必要 e LOGICAL BLOCK

GUARD

検証は行われない

LOGICAL BLOCK

APPLICATION TAG

APP_CHK=1c LOGICAL BLOCK APPLICATION TAG

CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

REF_CHK=1j LOGICAL BLOCK REFERENCE TAG

CHECK FAILED

REF_CHK=0 検証は行われない

使用しない a Data-Inバッファへ転送する、ないし検証で使用する保護情報は存在しない

011bbi 使用する 必要 e LOGICAL BLOCK

GUARD

検証は行われない

LOGICAL BLOCK

APPLICATION TAG

検証は行われない

LOGICAL BLOCK

REFERENCE TAG

検証は行われない

使用しない a Data-Inバッファへ転送する、ないし検証で使用する保護情報は存在しない

100bbi 使用する 必要 e LOGICAL BLOCK

GUARD

GRD_CHK=1 LOGICAL BLOCK GUARD CHECK

FAILED

GRD_CHK=0 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

検証は行われない

LOGICAL BLOCK

REFERENCE TAG

検証は行われない

使用しない a Data-Inバッファへ転送する、ないし検証で使用する保護情報は存在しない

101b~

111b

予約済み

(a)保護情報をサポートし、かつ、保護情報を使用するようにフォーマットされていない論理ユ

ニットに対する読み込み操作は、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN CDBで終了されなければならない。

(b)論理ユニットが保護情報をサポートしない場合には、要求されたコマンドはステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了されるべきである。

(c)デバイスサーバは、LOGICAL BLOCK APPLICATION TAGフィールドの内容に関する知識を有し

ている場合に、論理ブロックアプリケーションタグの検証を行わなければならない。READ(32)

コマンド(5.9を参照)が使用され、制御モードページ(SPC-3を参照)のATOビットに1が設定

されている場合には、この知識はCDB内のEXPECTED LOGICAL BLOCK APPLICATION TAGフィールド

と LOGICAL BLOCK APPLICATION TAG MASKフィールドから得られる。それ以外の場合は、この知識

は本標準では規定されない方法により獲得される可能性がある。

60

Page 61: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

(d)エラーが報告される場合、センスキーにはABORTED COMMANDが設定されなければならない。

(e)保護情報はData-Inバッファへ転送される。

(f)複数のエラーが発生した場合、どのエラーが報告されるべきかの選択は本標準では規定され

ない。

(g)GRD_CHKビット、APP_CHKビット、REF_CHKビットの定義については、拡張 INQUIRYデータ

VPDページ(SPC-3を参照)を参照のこと。

(f)アプリケーションクライアントないしデバイスサーバが、LOGICAL BLOCK APPLICATION TAG

フィールドにFFFFhが設定されていることを検知した場合、論理ブロックに関連する全ての保護

情報の検証は無効化されなければならない。

(i)READ CAPACITY(16)パラメタデータ(5.11を参照)内のRTO_ENビットに0が設定されてい

た場合、デバイスサーバはコマンドを処理することが可能である。RTO_ENビットに1が設定され

ていた場合、RDPROTECTフィールドに000bが設定されたREAD(10)コマンド、READ(12)コマン

ド、READ(16)コマンドは、デバイスサーバにより処理されることが可能である。RTO_ENビット

に1が設定されていた場合、デバイスサーバはRDPROTECTフィールドに000b以外の値が設定され

たREAD(10)コマンド、READ(12)コマンド、READ(16)コマンドは、ステータスがCHECK

CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID COMMAND OPERATION

CODEで終了しなければならない。

(j)READ CAPACITY(16)パラメタデータ(5.11を参照)内のRTO_ENビットに0が設定されてい

た場合、デバイスサーバは論理ブロック参照タグを、論理ブロックに割り当てられた LBAの下位 4

バイトと比較することにより検証を行う。RTO_ENビットに1が設定されていた場合(すなわち、

当該のコマンドがREAD(32)コマンドの場合)、デバイスサーバはCDB内のEXPECTED INITIAL

LOGICAL BLOCK REFERENCE TAGフィールドに基づき、論理ブロック参照タグの検証を行う(4.16.2

を参照)。

ページアウト無効(disable page out:DPO)ビットに0が設定された場合は、保持優先度は

キャッシュモードページ(6.3.3を参照)内のRETENTION PRIORITYフィールドによって決定され

なければならないことを示す。DPOビットに1が設定された場合、デバイスサーバは本コマンドに

よりアクセスされる論理ブロックに対して、キャッシュへのフェッチあるいは保持に関して最低

の保持優先度を設定しなければならないことを示す。DPOビットに1が設定された場合、キャッ

シュモードページにより指定された全ての保持優先度は上書きされる。キャッシュ再配置戦略を

実装するアルゴリズムに関する他の全ての側面は、本標準では規定されない。

注意 11:DPOビットは、アプリケーションクライアントが当該論理ブロックを将来使用するか否

かに関して情報を保有している場合に、キャッシュ内での論理ブロックの置換を制御するために

使用される。DPOビットに1が設定された場合、アプリケーションクライアントにより、本コマン

ドでアクセスされる論理ブロックは近い将来にはアクセスされない可能性が高く、キャッシュへ

の配置やキャッシュによる保持を行うべきではないと指定されていることを意味する。DPOビット

に0が設定された場合、アプリケーションクライアントにより、本コマンドでアクセスされる論

理ブロックが近い将来にアクセスされる可能性が高いと指定されていることを意味する。

強制ユニットアクセス(force unit access:FUA)ビットと強制ユニットアクセス不揮発性

キャッシュ(force unit access non-volatile cache:FUA_NV)ビットは表30で定義される。

表30 読み込み操作における強制ユニットアクセス

FUA FUA_NV 説明

0 0 デバイスサーバは論理ブロックを、揮発性キャッシュや不揮発性キャッシュ、

あるいはメディアから読み込むことが可能である。

0 1 拡張 INQUIRYデータ VPDページ(SPC-3を参照)内のNV_SUPビットに1が設定

61

Page 62: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

されている場合、デバイスサーバは論理ブロックを、不揮発性キャッシュもし

くはメディアから読み込まなければならない。不揮発性キャッシュが存在し、

揮発性キャッシュに論理ブロックのより新しいバージョンが格納されている場

合、デバイスサーバは論理ブロックの読み込みを行う前に、当該論理ブロック

を下記の両方ないし一方に書き込まなければならない。

a) 不揮発性キャッシュ

b) メディア

拡張 INQUIRYデータ VPDページ(SPC-3を参照)内のNV_SUPビットに0が設定

されている場合、デバイスサーバは論理ブロックを、揮発性キャッシュや不揮

発性キャッシュあるいはメディアから読み込むことが可能である。

1 0または1 デバイスサーバは論理ブロックをメディアから読み込まなければならない。

キャッシュに論理ブロックのより新しいバージョンが格納されている場合、デ

バイスサーバは論理ブロックの読み込みを行う前に、当該論理ブロックをメ

ディアに書き込まなければならない。

TRANSFER LENGTHフィールドは、LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロック

から開始される、読み込まれてData-Inブッファに転送されなければならない連続した論理ブ

ロックの個数を指定する。TRANSFER LENGTHフィールドに0が設定された場合、読み込まれなけれ

ばならない論理ブロックが存在しないことを指定する。この状態はエラーと見なされてはならな

い。他の全ての値は、読み込まれなければならない論理ブロックの個数を指定する。論理ブロッ

クアドレスに転送長を加算した値がメディアの容量を超えた場合には、デバイスサーバはコマン

ドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードが

LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しなければならない。TRANSFER LENGTHフィールド

は、ブロック制限VPDページ(6.4.2を参照)内の MAXIMUM TRANSFER LENGTHフィールドにより制

限される。

注意 12:READ(6)コマンドにおいては、TRANSFER LENGTHフィールドに0が設定された場合は、

256個の論理ブロックが読み込まれることを指定する。

5.7 READ(12)コマンド

READ(12)コマンド(表31を参照)は、デバイスサーバに対して指定された論理ブロックを読

み込み、それらをData-Inバッファに転送するよう要求する。読み込まれる各論理ブロックには

ユーザデータが含まれ、かつ、メディアが保護情報を使用するようフォーマットされている場合

には、保護情報も含まれる。転送される各論理ブロックにはユーザデータが含まれ、かつ、メ

ディアのフォーマットとRDPROTECTフィールドに基づき保護情報が含まれる可能性がある。

表31 READ(12)コマンド

本コマンド内のフィールドの定義については、READ(10)コマンド(5.6を参照)を参照のこと。

62

Bit

Byte7 6 5 4 3 2 1 0

0

1

(MSB)

(LSB)

2

5

9

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

転送長( TRANSFER LENGTH)

コントロール( CONTROL)

6

操作コード( OPERATION CODE)( A8h)

RDPROTECT DPO FUA 予約済み FUA_NV 廃止済み

10

11

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)MMC-4により制限される

Page 63: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

5.8 READ(16)コマンド

READ(16)コマンド(表32を参照)は、デバイスサーバに対して指定された論理ブロックを読

み込み、それらをData-Inバッファに転送するよう要求する。読み込まれる各論理ブロックには

ユーザデータが含まれ、かつ、メディアが保護情報を使用するようフォーマットされている場合

には、保護情報も含まれる。転送される各論理ブロックにはユーザデータが含まれ、かつ、メ

ディアのフォーマットとRDPROTECTフィールドに基づき保護情報が含まれる可能性がある。

表32 READ(16)コマンド

本コマンド内のフィールドの定義については、READ(10)コマンド(5.6を参照)を参照のこと。

5.9 READ(32)コマンド

READ(32)コマンド(表33を参照)は、デバイスサーバに対して指定された論理ブロックを読

み込み、それらをData-Inバッファに転送するよう要求する。読み込まれる各論理ブロックには

ユーザデータが含まれ、かつ、メディアが保護情報を使用するようフォーマットされている場合

には、保護情報も含まれる。転送される各論理ブロックにはユーザデータが含まれ、かつ、メ

ディアのフォーマットとRDPROTECTフィールドに基づき保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

RTO_ENビットに1が設定される場合は、デバイスサーバは本コマンドを処理することが可能であ

る。

63

Bit

Byte7 6 5 4 3 2 1 0

0

1

(MSB)

(LSB)

2

9

13

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

転送長( TRANSFER LENGTH)

コントロール( CONTROL)

10

操作コード( OPERATION CODE)( 88h)

RDPROTECT DPO FUA 予約済み FUA_NV 予約済み

14

15

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)MMC-4により制限される

Page 64: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表33 READ(32)コマンド

GROUP NUMBERフィールド、RDPROTECTフィールド、DPOビット、FUAビット、FUA_NVビット、

LOGICAL BLOCK ADDRESSフィールド、TRANSFER LENGTHフィールドについては、READ(10)コマン

ド(5.6を参照)を参照のこと。

LOGICAL BLOCK REFERENCE TAGフィールドの検証が有効な場合(5.6の表29を参照)、EXPECTED

INITIAL LOGICAL BLOCK REFERENCE TAGフィールドには、LBAに基づく値の代わりに、当該コマン

ドによりアクセスされる最初の論理ブロック内の保護情報に格納されていることが予測される、

LOGICAL BLOCK REFERENCE TAGフィールドの値が設定される(4.16.2を参照)。

制御モードページ(SPC-3を参照)内のATOビットに1が設定され、かつ LOGICAL BLOCK

APPLICATION TAGフィールドの検証が有効な場合(5.6の表29を参照)は、LOGICAL BLOCK

APPLICATION TAG MASKフィールドには、当該コマンドによりアクセスされる各論理ブロック内の

保護情報内に存在する LOGICAL BLOCK APPLICATION TAGフィールドに対する検証を有効化する

ビットマスクが格納される。LOGICAL BLOCK APPLICATION TAG MASKフィールド内のビットに1が

設定された場合、EXPECTED LOGICAL BLOCK APPLICATION TAGフィールドの対応するビットと、保

護情報内の LOGICAL BLOCK APPLICATION TAGフィールドの対応するビットとの検証が有効化され

ることを示す。

制御モードページ(SPC-3を参照)内のATOビットに1が設定され、かつ LOGICAL BLOCK

APPLICATION TAGフィールドの検証が無効な場合(5.6の表29を参照)、もしくはATOビットに0

が設定されている場合、LOGICAL BLOCK APPLICATION TAG MASKフィールドとEXPECTED LOGICAL

BLOCK APPLICATION TAGフィールドは無視されなければならない。

64

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5

7

予約済み

コントロール( CONTROL)

6

操作コード( OPERATION CODE)( 7Fh)

8

9

予約済み グループ番号(GROUP NUMBER)

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 0009h)

RDPROTECT DPO FUA 予約済み FUA_NV 予約済み

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)(MSB)

(LSB)

予測される初期論理ブロック参照タグ

( EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAG)

(MSB)

(LSB)

予測される論理ブロックアプリケーションタグ

( EXPECTED LOGICAL BLOCK APPLICATION TAG)

(MSB)

(LSB)

論理ブロックアプリケーションタグマスク

(LOGICAL BLOCK APPLICATION TAG MASK)

(MSB)

(LSB)

転送長( TRANSFER LENGTH)(MSB)

(LSB)

10

11

12

19

20

23

24

25

26

27

28

31

(MSB)

(LSB)

Page 65: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

5.10 READ CAPACITY(10)コマンド 5.10.1 READ CAPACITY(10)の概要

READ CAPACITY(10)コマンド(表34を参照)は、デバイスサーバに対して、直接アクセスブ

ロックデバイスの容量とメディアのフォーマットに関する情報を保持する、8バイトのパラメタ

データをData-Inバッファに転送するよう要求する。本コマンドはHEAD OF QUEUEタスク属性を

有するものとして処理される可能性がある(4.11を参照)。論理ユニットが保護情報をサポート

している場合(4.16を参照)、アプリケーションクライアントはREAD CAPACITY(10)コマンド

の代わりにREAD CAPACITY(16)コマンドを使用するべきである。

表34 READ CAPACITY(10)コマンド

LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。

PMIビットに0が設定された場合、LOGICAL BLOCK ADDRESSフィールドには0が設定されなけれ

ばならない。PMIビットに0が設定され、かつ、LOGICAL BLOCK ADDRESSフィールドに0以外の値

設定された場合は、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーが

ILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了しなければならない。

部分メディアインジケータ(partial medium indicator:PMI)ビットに0が指定された場合、

デバイスサーバは、直接アクセスブロックデバイス上に存在する、最後の論理ブロックの情報を

返すことを示す。

PMIビットに1が設定された場合、デバイスサーバは、LOGICAL BLOCK ADDRESSフィールドで指

定された論理ブロックの後、テータ転送で要するであろうベンダ固有の十分な遅延の前に存在す

る、最後の論理ブロックの情報を返すことを指定する。

注意 13:この機能は、CDBで指定された論理ブロックアドレスから始まる領域に、頻繁にアクセ

スされるデータ構造(例えば、ファイルのディレクトリやインデクス)を格納するための必要十

分な領域が存在するか否かについて、余分な遅延が生じることなく調査できるよう、ストレージ

管理ソフトウェアを補助することを目的としている。

5.10.2 READ CAPACITY(10)パラメタデータ

READ CAPACITY(10)パラメタデータは表35で定義される。READ CAPACITY(10)パラメタデー

タが変更される時には、デバイスサーバは4.6の記述に従いユニット警告状態を確立するべきで

ある。

65

Bit

Byte7 6 5 4 3 2 1 0

0

1

(MSB)

(LSB)

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予約済み

コントロール( CONTROL)

操作コード( OPERATION CODE)( 25h)

廃止済み予約済み

PMI予約済み

6

7

8

9

Page 66: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表35 READ CAPACITY(10)パラメタデータ

論理ブロック数がRETURNED LOGICAL BLOCK ADDRESSフィールドで指定可能な最大値を超えた場

合、デバイスサーバはRETURNED LOGICAL BLOCK ADDRESSフィールドにFFFFFFFFhを設定しなけれ

ばならない。その場合アプリケーションクライアントは、READ CAPACITY(16)パラメタデータを

取得するために、READ CAPACITY(16)コマンド(5.11を参照)を発行するべきである。

PMIビットに0が設定された場合、デバイスサーバはRETURNED LOGICAL BLOCK ADDRESSフィー

ルドに、下記の内から小さい方の値を設定しなければならない。

a) 直接アクセスブロックデバイスに存在する最後の論理ブロックの LBA。

b) FFFFFFFFh。

PMIビットに1が設定された場合、デバイスサーバはRETURNED LOGICAL BLOCK ADDRESSフィー

ルドに、下記の内から小さい方の値を設定しなければならない。

a) CDB内の LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロックの後、テータ転送で

要するであろうベンダ固有の十分な遅延の前に存在する、最後の論理ブロックの LBA。

b) FFFFFFFFh。

RETURNED LOGICAL BLOCK ADDRESSフィールドの値は、CDB内の LOGICAL BLOCK ADDRESSフィール

ドで指定された値よりも大きいか、あるいは等しくなければならない。

BLOCK LENGTH IN BYTEフィールドには、RETURNED LOGICAL BLOCK ADDRESSフィールドで指定さ

れた論理ブロック内の、ユーザデータのバイト数を指定する。この値には、メディアに記録され

る保護情報や付加情報(例えば、ECCバイト)は含まれない。

5.11 READ CAPACITY(16)コマンド 5.11.1 READ CAPACITY(16)コマンドの概要

READ CAPACITY(16)コマンド(表36を参照)は、デバイスサーバに対して、直接アクセスブ

ロックデバイスの容量とメディアフォーマットを説明するパラメタデータを、Data-Inバッファに

転送するよう要求する。このコマンドは論理ユニットが保護情報(4.16を参照)をサポートする

場合には必須であり、それ以外の場合はオプションである。このコマンドは、SERVICE ACTION IN

操作コード(A.2を参照)のサービスアクションとして実装される。このコマンドは、HEAD OF

QUEUEタスク属性を有しているものとして処理される可能性がある(4.11を参照)。

66

Bit

Byte7 6 5 4 3 2 1 0

0

3

(MSB)

(LSB)

4

7ブロック長バイト数( BLOCK LENGTH IN BYTE)

返却論理ブロックアドレス( RETURNED LOGICAL BLOCK ADDRESS)(LSB)

(MSB)

Page 67: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表36 READ CAPACITY(16)コマンド

LOGICAL BLOCK ADDRESSフィールドとPMIビットに定義については、READ CAPACITY(10)コマ

ンド(5.10を参照)を参照のこと。

ALLOCATION LENGTHフィールドは、返却されるパラメタデータを受信するために、アプリケー

ションクライアントが割り当てた最大バイト数を指定する。アロケーション長に0が指定された

場合は、データが転送されてはならないことを指定する。この状態はエラーと見なされてはなら

ない。デバイスサーバは、ALLOCATION LENGTHフィールドで指定されたバイト数だけ転送された場

合、または、全ての有効なテータが転送された場合のどちらか少ない方が生じた時に、Data-In

バッファへのデータの転送を終了しなければならない。アロケーション長の不足によりパラメタ

データが途中で打ち切られる場合においても、パラメタデータの内容はそれを反映して変更され

てはならない。

5.11.2 READ CAPACITY(16)パラメタデータ

READ CAPACITY(16)パラメタデータは表37で定義される。READ CAPACITY(16)パラメタデー

タが変更された時には、デバイスサーバは4.6の記述に従いユニット警告状態を確立するべきで

ある。

表37 READ CAPACITY(16)パラメタデータ

READ CAPACITY(16)パラメタデータのRETURNED LOGICAL BLOCK ADDRESSフィールドとBLOCK

LENGTH IN BYTESフィールドは、READ CAPACITY(10)パラメタデータ(5.10を参照)と同じであ

る。RETURNED LOGICAL BLOCK ADDRESSフィールドで返されなければならない最大値は

FFFFFFFF_FFFFFFFFhである。

参照タグ所有有効(reference tag own enable:RTO_EN)ビットに1が設定されている場合、保

護情報内の LOGICAL BLOCK REFERENCE TAGフィールドに対するアプリケーションクライアントの

所有権が有効であることを示す(すなわち、メディアは保護情報が有効化(4.16を参照)され、

67

Bit

Byte7 6 5 4 3 2 1 0

0

1

(MSB)

(LSB)

2

9論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

アロケーション長( ALLOCATION LENGTH)

コントロール( CONTROL)

操作コード( OPERATION CODE)( 9Eh)

予約済み

PMI予約済み

10

サービスアクション( SERVICE ACTION)( 10h)

(MSB)

(LSB)13

14

15

Bit

Byte7 6 5 4 3 2 1 0

0

7

(MSB)

(LSB)

8ブロック長バイト数( BLOCK LENGTH IN BYTES)

返却論理ブロックアドレス( RETURNED LOGICAL BLOCK ADDRESS)

予約済み12

13

31

(MSB)

(LSB)

RTO_EN PROT_EN

予約済み

11

Page 68: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

かつRTO_REQビットに1が設定され、フォーマットされている)。RTO_ENビットに0が設定され

ている場合は、保護情報内の LOGICAL BLOCK REFERENCE TAGフィールドに対するアプリケーショ

ンクライアントの所有権が無効であることを示す。

PROT_ENルビットに1が設定されている場合、メディアは保護情報(4.16を参照)が有効化され

フォーマットされていることを示す。PROT_ENビットに0が設定されている場合は、メディアは保

護情報が有効化されフォーマットされているのではないことを示す。

5.12 READ DEFECT DATA(10)コマンド 5.12.1 READ DEFECT DATA(10)コマンドの概要

READ DEFECT DATA(10)コマンド(表38を参照)は、デバイスサーバに対してメディア欠陥

データをData-Inバッファに転送するよう要求する。

表38 READ DEFECT DATA(10)コマンド

デバイスサーバはメディア欠陥データにアクセスすることができなかった場合には、コマンド

をCHECK CONDITIONステータスで終了しなければならない。メディアエラーが生じた場合には、

センスキーに MEDIUM ERRORを設定しなければならない。もしくは、メディア欠陥データが存在し

ない場合にはNO SENSEを設定しなければならない。追加センスコードにはDEFECT LIST NOT

FOUNDを設定しなければならない。

注意 14:いくつかのデバイスサーバは、FORMAT UNITコマンド(5.2を参照)が正常終了するま

でメディア欠陥データを返すことができない可能性がある。

初期欠陥リスト要求(request primary defect list:REQ_PLIST)ビットに0が設定された場合、

デバイスサーバはPLISTを返してはならないことを指定する。REQ_PLISTビットに1が設定された

場合は、デバイスサーバはPLISTが存在する場合にはそれを返さなければならないことを指定す

る。

累積欠陥リスト要求(request grown defect list:REQ_GLIST)ビットに0が設定された場合、

デバイスサーバは GLISTを返してはならないことを指定する。REQ_GLISTビットに1が設定された

場合、デバイスサーバは GLISTが存在する場合にはそれを返さなければならないことを指定する。

REQ_PLISTビットに0が設定され、かつREQ_GLISTビットに0が設定された場合には、デバイス

サーバは欠陥リストヘッダ(すなわち、欠陥リストの最初の4バイト)のみを返さなければなら

ないことを示す。

REQ_PLISTビットに1が設定され、かつREQ_GLISTビットに1が設定された場合、デバイスサー

バはPLISTと GLISTが存在するのであればその両方を返さなければならないことを示す。返され

るリストの順番はベンダ固有である。リストが連結されるか否かはベンダ固有である。

訳注ル 原文では非省略形の記載はない。SBC-3では「protection enable」と記載されている。

68

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3

アロケーション長( ALLOCATION LENGTH)

コントロール( CONTROL)

操作コード( OPERATION CODE)( 37h)

(MSB)

(LSB)

予約済み

予約済み REQ_PLIST REQ_GLIST 欠陥リストフォーマット( DEFECT LIST FORMAT)

予約済み6

7

8

9

Page 69: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

DEFECT LIST FORMATフィールドは、希望する欠陥リストのフォーマットを指定する。この

フィールドは、FORMAT UNITコマンドで定義される(5.2.2.4を参照)複数のフォーマットを返す

能力を有するデバイスサーバで使用されることを意図している。要求されたフォーマットを返す

ことが不可能なデバイスサーバは、デフォルトのフォーマットを返さなければならず、かつ、欠

陥リストヘッダのDEFECT LIST FORMATフィールドでそのフォーマットを指定しなければならない

(表39を参照)。

要求された欠陥リストフォーマットと返される欠陥リストフォーマットが異なる場合、デバイ

スサーバは欠陥データを返さなければならず、かつ、コマンドをステータスがCHECK CONDITION、

センスキーがRECOVERED ERROR、追加センスコードがDEFECT LIST NOT FOUNDで終了しなければな

らない。

ALLOCATION LENGTHフィールドはREAD CAPACITY(16)コマンド(5.11を参照)で定義される。

アプリケーションクライアントは、パラメタリストが受信できたか否か確認するために、CDBで要

求したアロケーション長とパラメタデータで返された欠陥リスト長とを比較する責任を負う。デ

バイスサーバが報告しなければならないアドレス記述子の個数が、ALLOCATION LENGTHフィールド

で指定可能な最大値を超えた場合には、デバイスサーバはデータを返してはならず、コマンドを

ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID

FIELD IN CDBで終了しなければならない。

5.12.2 READ DEFECT DATA(10)パラメタデータ

READ DEFECT DATA(10)パラメタデータ(表39を参照)には4バイトのヘッダが含まれ、0個

ないし複数のアドレス記述子が後続する。

表39 READ DEFECT DATA(10)パラメタデータ

PLIST有効(PLIST valid:PLISTV)ビットに0が設定された場合、返されるデータにPLISTが

含まれないことを指定する。PLISTVビットに1が設定された場合、返されるデータにPLISTが含

まれることを指定する。

GLIST有効(GLIST valid:GLISTV)ビットに0が設定された場合、返されるデータに GLISTが

含まれないことを指定する。GLISTVビットに1が設定された場合、返されるデータに GLISTが含

まれることを指定する。

DEFECT LIST FORMATフィールドは、デバイスサーバから返されるアドレス記述子のフォーマッ

トを指定する。このフィールドはFORMAT UNITコマンド(5.2.2.4を参照)で定義される。

デバイスサーバが短縮ブロックフォーマットアドレス記述子(5.2.2.4.2を参照)ないし拡張ブ

ロックフォーマットアドレス記述子(5.2.2.4.3を参照)を返す場合、アドレス記述子にはベンダ

固有の値が格納される。

注意 15:本コマンドにおいては、短縮ブロックフォーマットと拡張ブロックフォーマットの使

用は推奨されない。欠陥のブロックアドレスの意味を規定する標準的なモデルは存在しない。一

69

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3

アドレス記述子(存在する場合)

予約済み

(MSB)

(LSB)

予約済み 欠陥リストフォーマット( DEFECT LIST FORMAT)

欠陥リスト長( DEFECT LIST LENGTH)( n-3)

4

n

PLISTV GLISTV

欠陥リスト(存在する場合)

Page 70: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

般的なケースでは、再割り当てされた欠陥には LBAは存在しない。

デバイスサーバが物理セクタフォーマットアドレス記述子(5.2.2.4.5を参照)を返す場合、ア

プリケーションクライアントからアクセス不可能なメディア上の領域に存在する欠陥が含まれる

可能性があり、含まれない可能性もある。デバイスサーバがインデクス先頭バイトフォーマット

アドレス記述子(5.2.2.4.4を参照)を返す場合、欠陥の完全なリストを返さなければならない。

欠陥の完全なリストには、READ CAPACITYコマンドで返される容量の範囲外の領域に存在する欠陥

が含まれる可能性がある。

DEFECT LIST LENGTHフィールドは、後続するアドレス記述子のバイト長を指定する。DEFECT

LIST LENGTHは、返されるアドレス記述子(5.2.2.4を参照)のフォーマットに依存して、アドレ

ス記述子の個数の4倍ないし8倍に等しい値となる。

アドレス記述子は昇順に整列され返される可能性があり、そうではない可能性もある。

5.13 READ DEFECT DATA(12)コマンド 5.13.1 READ DEFECT DATA(12)コマンドの概要

READ DEFECT DATA(12)コマンド(表40を参照)は、デバイスサーバに対してメディアの欠陥

データをData-Inバッファに転送するよう要求する。

表40 READ DEFECT DATA(12)コマンド

本コマンドのフィールドの定義については、READ DEFECT DATA(10)コマンド(5.11を参照)

を参照のこと。

注意 16:アプリケーションクライアントは、ALLOCATION LENGTHフィールドに8を設定たREAD

DEFECT DATA(12)コマンドを送信する事により、欠陥リストの長さを調べることが可能である。

デバイスサーバは、欠陥リストの長さを含む、欠陥リストヘッダを返す。

5.13.2 READ DEFECT DATA(12)パラメタデータ

READ DEFECT DATA(12)パラメタデータ(表41を参照)には、8バイトのヘッダが含まれ、0な

いし複数のアドレス記述子が後続する。

70

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5

アロケーション長( ALLOCATION LENGTH)

コントロール( CONTROL)

操作コード( OPERATION CODE)( B7h)

(MSB)

(LSB)

予約済み REQ_PLIST REQ_GLIST 欠陥リストフォーマット( DEFECT LIST FORMAT)

予約済み

6

9

10

11

予約済み

Page 71: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表41 READ DEFECT DATA(12)パラメタデータ

欠陥リスト内のフィールドの定義については、READ DEFECT DATA(10)コマンド(5.12を参

照)を参照のこと。

5.14 READ LONG(10)コマンド

READ LONG(10)コマンド(表42を参照)は、デバイスサーバに対して単一の論理ブロックから

Data-Inバッファへデータを転送するよう要求する。READ LONG(10)コマンドにより転送される

データはベンダ固有であるが、メディアに記録される下記のアイテムは含まれていなければなら

ない。

a) ユーザデータ、もしくは変換されたユーザデータ。

b) 保護情報が存在する場合には保護情報、もしくは変換された保護情報。

c) 任意の追加情報(例えば、ECCバイト)。

キャッシュに、より新しいバージョンの論理ブロックが存在する場合には、デバイスサーバは

その値を読み込む前に、当該の論理ブロックをメディアに書き込まなければならない。読み書き

エラーリカバリモードページ(6.3.4を参照)内の値は本コマンドには適用されない。デバイス

サーバは、本コマンドの処理中にリトライを行うことが可能である。

表42 READ LONG(10)コマンド

LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。

追加情報にECCが含まれる場合、ECCによる補正の対象となる他の全ての追加バイト(例えば、

71

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3

アドレス記述子

予約済み

(MSB)

(LSB)

予約済み 欠陥リストフォーマット( DEFECT LIST FORMAT)

欠陥リスト長( DEFECT LIST LENGTH)( n-7)

4

n

PLISTV GLISTV

欠陥リスト

予約済み

予約済み

7

8

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5

コントロール( CONTROL)

操作コード( OPERATION CODE)( 3Eh)

(MSB)

(LSB)論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

6

7

予約済み CORRCT 廃止済み

予約済み

バイト転送長( BYTE TRANSFER LENGTH)(MSB)

(LSB)8

9

Page 72: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ECCの対象になる領域に含まれるデータ同期記号)も含まれるべきである。ECCはユーザデータや

保護情報の末尾に存在する必要はない。しかしながら、ECCバイトはメディア上に存在するのと同

じ順番に並べられるべきである。

補正(correct:CORRCT)ビットに0が設定された場合、論理ブロックはデバイスサーバによる

いかなる補正も行われることなく読み込まれることを示す。CORRCTビットに0が設定された場合、

データが補正できないこと以外の理由によりデータが転送できなかった場合を除き、GOODステー

タスで終了するべきである。この場合ヲ、適切なステータスとセンスデータが返されなければなら

ない。CORRCTビットに1が設定された場合、データがData-Inバッファに転送される前に、ECCに

よる補正が行われることを示す。

BYTE TRANSFER LENGTHフィールドは、指定された論理ブロックから読み込まれ、Data-Inバッ

ファに転送されるべきデータのバイト数を指定する。BYTE TRANSFER LENGTHフィールドに0以外

かつ有効なデータ長に適合しない値が設定された場合、デバイスサーバはコマンドを、ステータ

スがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN

CDBで終了しなければならない。センスデータ(4.13および SPC-3を参照)において、VALIDと

ILIビットにはどちらも1が設定されなければならず、INFORMATIONフィールドには、要求された

転送バイト長から実際に有効なデータのバイト長を引いた差分(すなわち、残留数)が設定され

なければならない。負数は2の補数で示されなければならない。

BYTE TRANSFER LENGTHフィールドに0が設定された場合はデータが読み込まれてはならないこ

とを示す。この状態はエラーと見なされてはならない。

5.15 READ LONG(16)コマンド

READ LONG(16)コマンドは、デバイスサーバに対して単一の論理ブロックからData-Inバッ

ファにデータを転送するよう要求する。READ LONG(16)コマンドで転送されるデータはベンダ固

有であるが、メディアに記録された下記のアイテムは含まれていなければならない。

a) ユーザデータ、もしくは変換されたユーザデータ。

b) 保護情報が存在する場合には保護情報、もしくは変換された保護情報。

c) 任意の追加情報(例えば、ECCバイト)。

キャッシュに、より新しいバージョンの論理ブロックが存在する場合には、デバイスサーバは

その値を読み込む前に、当該の論理ブロックをメディアに書き込まなければならない。読み書き

エラーリカバリモードページ(6.3.4を参照)内の値は本コマンドには適用されない。デバイス

サーバは、本コマンドの処理中にリトライを行うことが可能である。本コマンドは、SERVICE

ACTION IN操作コードのサービスアクションとして実装される(A.2を参照)。

訳注ヲ 「この」が何を指しているのかは原文でも不明瞭。SBC-3でも変更無し。データが転送できなかった場合だと推定される。

72

Page 73: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表43 READ LONG(16)コマンド

本コマンドのフィールドの定義については、READ LONG(10)コマンド(5.14を参照)を参照の

こと。

5.16 REASSIGN BLOCKSコマンド 5.16.1 REASSIGN BLOCKSコマンドの概要

REASSIGN BLOCKSコマンド(表44を参照)は、デバイスサーバに対して、欠陥のある論理ブ

ロックを、この目的のために留保されていたメディア上の他の領域へ再割り当てするよう要求す

る。デバイスサーバはまた、GLISTをサポートするのであれば、欠陥のある論理ブロックの位置を

GLISTに記録するべきである。このコマンドではPLIST(4.8を参照)の内容は変更されてはなら

ない。

Data-Outバッファで提供される情報には、再割り当てされるべき論理ブロックの位置を示す LBA

を保持する、欠陥 LBAリストが含まれる。デバイスサーバは、欠陥 LBAリスト内の各論理ブロッ

クで使用しているメディア上の領域に対して、再割り当てを行わなければならない。それぞれの

LBAにより複数の物理ブロックの再割り当てが行われる可能性がある。デバイスサーバが、オリジ

ナルの論理ブロックからユーザデータと保護情報を回復することに成功した場合、回復された

ユーザデータと保護情報を再割り当てされた論理ブロックに書き込まなければならない。デバイ

スサーバが、オリジナルの論理ブロックからユーザデータと保護情報を回復することができな

かった場合、ユーザデータとしてベンダ固有のデータを書き込まなければならず、かつ、保護情

報が有効化されている場合には保護情報としてデフォルト値のFFFFFFFF_FFFFFFFFhを書き込まな

ければならない。メディア上の他の全ての論理ブロック内のデータは、保存されなければならな

い。

注意 17:以前再割り当てされた論理ブロックに対して再割り当てするよう指定することは、論

理ブロックを再び再割り当てすることとなる。可能性としては低いが、メディアの寿命の内で、

メディアに残された領域がなくなるまで、論理ブロックは複数の物理ブロックに割り当てられる

可能性がある。

73

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

9

コントロール( CONTROL)

操作コード( OPERATION CODE)( 9Eh)

(MSB)

(LSB)論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

10

11

予約済み サービスアクション( SERVICE ACTION)( 11h)

予約済み

バイト転送長( BYTE TRANSFER LENGTH)(MSB)

(LSB)

12

13

予約済み CORRCT14

15

Page 74: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表44 REASSIGN BLOCKSコマンド

long LBA(long LBA:LONGLBA)ビットに0が設定された場合、REASSIGN BLOCKS欠陥 LBAリス

トには4バイトの LBAが格納されることを示す。LONGLBAビットに1が設定された場合、REASSIGN

BLOCKS欠陥 LBAリストには8バイトの LBAが格納されることを示す。

5.16.2 REASSIGN BLOCKSパラメタリスト

REASSIGN BLOCKSパラメタリスト(表45を参照)には4バイトのパラメタリストヘッダが含ま

れ、1つないし複数の LBAを保持する欠陥 LBAリストが後続する。

表45 REASSIGN BLOCKSパラメタリスト

LONGLISTに 0が設定された場合、パラメタリストヘッダの定義は表46の通りとなる。

表46 REASSIGN BLOCKS短縮パラメタリストヘッダ

LONGLISTに 1が設定された場合、パラメタリストヘッダの定義は表47の通りとなる。

表47 REASSIGN BLOCKS拡張パラメタリストヘッダ

DEFECT LIST LENGTHフィールドは、DEFECTIVE LBA LISTフィールドの合計バイト長を指定する。

DEFECT LIST LENGTHフィールドにはパラメタリストヘッダの長さは含まれず、かつ、下記いずれ

かと等しくなる。

a) LONGLBAビットに0が設定されていた場合は、LBAの個数に4を乗じた値

b) LONGLBAビットに1が設定されていた場合は、LBAの個数に8を乗じた値

74

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

4予約済み

操作コード( OPERATION CODE)( 07h)

LONGLBA

コントロール( CONTROL)

予約済み LONGLIST

5

Bit

Byte7 6 5 4 3 2 1 0

0

3

4

n欠陥 LBAリスト( DEFECTIVE LBA LIST)(存在する場合)

パラメタリストヘッダ(表46、表47を参照)

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3欠陥リスト長( DEFECT LIST LENGTH)

予約済み

(MSB)

(LSB)

Bit

Byte7 6 5 4 3 2 1 0

0

3欠陥リスト長( DEFECT LIST LENGTH)

(MSB)

(LSB)

Page 75: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

DEFECTIVE LBA LISTフィールドには、欠陥が生じた LBAのリストが格納される。各LBAは、

LONGLBAの値が0の場合は4バイトのフィールドであり、LONGLBAビットの値が1の場合は8バイ

トのフィールドである。LBAは昇順に整列されなければならない。

直接アクセスブロックデバイスに、指定された論理ブロックを全て再割り当てするために必要

となる容量が確保できない場合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、

センスキーがHARDWARE ERROR、追加センスコードがNO DEFECT SPARE LOCATION AVAILABLEで終了

しなければならない。

直接アクセスブロックデバイスがREASSIGN BLOCKSコマンドを正常に完了することができない場

合、デバイスサーバはステータスにCHECK CONDITION、センスデータに適切な値(4.13および

SPC-3を参照)を設定し、コマンドを終了しなければならない。再割り当てされなかった最初の

LBAが、センスデータのCOMMAND-SPECIFIC INFORMATIONフィールドで返されなければならない。

再割り当てされなかった最初の LBAに関する情報が得られなかった場合、もしくは全ての欠陥に

対する再割り当てが行われた場合は、COMMAND-SPECIFIC INFORMATIONフィールドには、固定

フォーマットのセンスデータではFFFFFFFFhが、記述子フォーマットのセンスデータでは

FFFFFFFF_FFFFFFFFhが設定されなければならない。

欠陥 LBAとして指定されたのではない論理ブロックのデータが失われる原因となるような、予期

しない回復不能な読み込みエラーによりREASSIGN BLOCKSコマンドが失敗した場合、回復不能な

論理ブロックの LBAがセンスデータのINFORMATIONフィールドで返されなければならず、かつ、

VALIDビットには1が設定されなければならない。

注意 18:REASSIGN BLOCKSコマンドに対して、ステータスがCHECK CONDITIONとなり、センス

データのCOMMAND-SPECIFIC INFORMATIONフィールドに正当な LBAが設定されて返された場合、ア

プリケーションクライアントは、欠陥 LBAリストから、COMMAND-SPECIFIC INFORMATIONフィール

ドで返されたものより前に存在する全ての LBAを削除するべきである。センスキーが MEDIUM

ERRORで INFORMATIONフィールドに正当な LBAが格納されていた場合、アプリケーションクライア

ントは新しい欠陥 LBAを欠陥 LBAリストに追加し、新しい欠陥 LBAリストを指定してREASSIGN

BLOCKSコマンドを再発行するべきである。それ以外の場合は、アプリケーションクライアントは、

センスデータの内容に応じた任意の回復操作を行い、新しい欠陥 LBAリストを指定してREASSIGN

BLOCKSコマンドを再発行するべきである。

5.17 START STOP UNITコマンド

START STOP UNITコマンド(表48を参照)は、デバイスサーバに対して論理ユニットの電源状

態の変更(4.15を参照)、およびメディアのロードや排出を要求する。これには、デバイスサー

バが電源状態とタイマを制御することにより、直接アクセスブロックデバイスにおけるメディア

アクセス操作を有効化ないし無効化することが含まれる。

キャッシュを保持する論理ユニットは、メディアへのアクセスを阻害する何らかの電源状態へ

遷移する前に(例えば、停止電源状態へ遷移する時に、回転メディアのスピンドルモーターを停

止する前に)、キャッシュされた全ての論理ブロックをメディアへ書き込まなければならない

(例えば、SYNC_NVビットに0、LOGICAL BLOCK ADDRESSフィールドに0、NUMBER OF BLOCKS

フィールドに0が設定された、SYNCHRONIZE CACHEコマンド(5.18、5.19を参照)でのレスポン

スで実行するであろう動作を行う)。

75

Page 76: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表48 START STOP UNITコマンド

即時(immediate:IMMED)ビットに0が設定された場合、デバイスサーバは操作が完了した後に

ステータスを返さなければならないことを示す。IMMEDビットに1が設定された場合、デバイス

サーバはCDBの検証が終了したらすぐにステータスを返さなければならないことを示す。

POWER CONDITIONフィールドは、表49の定義に従い、論理ユニットが遷移するべき電源状態を

指定するため、もしくはタイマを設定するために使用される。このフィールドがサポートされ、

かつ、0h以外の値が設定された場合には、STARTビットと LOEJビットは無視されなければならな

い。

表49 POWER CONDITIONフィールド

値 名前 説明

0h START_VALID STARTと LOEJビットを処理する。

1h ACTIVE デバイスを起動電源状態へ遷移させる。

2h IDLE デバイスをアイドル電源状態へ遷移させる。

3h STANDBY デバイスをスタンバイ電源状態へ遷移させる。

4h 予約済み 予約済み

5h 廃止済み 廃止済み

6h 予約済み 予約済み

7h LU_CONTROL 電源状態の制御を論理ユニットへ委譲する。

8h~9h 予約済み 予約済み

Ah FORCE_IDLE_0 強制的にアイドル状態タイマに0を設定する。

Bh FORCE_STANDBY_0 強制的にスタンバイ状態タイマに0を設定する。

Ch~Fh 予約済み 予約済み

POWER CONDITIONフィールドにACTIVEや、IDLE、STANDBYが設定されたSTART STOP UNITコマン

ドを受信した場合、下記が実行されなければならない。

a) 論理ユニットは指定された電源状態へ遷移しなければならない。

b) 論理ユニットは、他のSTART STOP UNITコマンドを受信するか、あるいは論理ユニットリ

セットが生じた後でのみ、電源状態を変更しなければならない。

c) デバイスサーバは、電源状態の制御を論理ユニットへ返却する、他のSTART STOP UNITコ

マンドを受信するか、あるいは論理ユニットリセットが生じるまで、アイドル状態タイマ

が利用可能(SPC-3を参照)であればそれを無効化し、スタンバイ状態タイマが利用可能

(SPC-3を参照)であればそれを無効化しなければならない。

76

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3予約済み

操作コード( OPERATION CODE)( 1Bh)

IMMED予約済み

開始 (START)LOEJ予約済み電源状態( POWER CONDITION)

コントロール( CONTROL)

4

5

Page 77: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

POWER CONDITIONフィールドに LU_CONTROLが設定されたSTART STOP UNITコマンドを受信した

場合、アイドル状態タイマが利用可能(SPC-3を参照)であればそれを有効化し、スタンバイ状態

タイマが利用可能(SPC-3を参照)であればそれを無効化ワしなければならない。

POWER CONDITIONフィールドにFORCE_IDLE_0ないしFORCE_STANDBY_0が設定されたSTART STOP

UNITコマンドを受信した場合、下記を実行しなければならない。

a) 指定されたタイマの値を強制的に0に設定し、論理ユニットが指定された電源状態に遷移

する。電源状態の制御はデバイスサーバに返される。

b) デバイスサーバによりサポートされない、もしくは利用可能ではないタイマを選択した

START STOP UNITコマンドは、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN CDBで終了される。

論理ユニットに対して、現在の電源状態へ遷移するよう指示することはエラーではない。

ロード・排出(load eject:LOEJ)ビットに0が設定された場合、論理ユニットはメディアの

ロードや排出に関していかなる動作も行ってはならないことを示す。LOEJビットに1が設定され

た場合、STARTビットに0が設定されていれば論理ユニットはメディアをアンロードしなければな

らないことを示す。LOEJビットに1が設定された場合、STARTビットが1であれば論理ユニットは

メディアのロードを行わなければならないことを示す。

STARTビットに0が設定された場合、論理ユニットは停止電源状態へ遷移し、アイドル状態タイ

マが利用可能(SPC-3を参照)であればそれを無効化し、スタンバイ状態タイマが利用可能(SPC-

3を参照)であればそれを無効化しなければならない。STARTビットに1が設定された場合、論理

ユニットは起動電源状態へ遷移し、アイドル状態タイマが利用可能であればそれを有効化し、ス

タンバイ状態タイマが利用可能であればそれを有効化しなければならない。

5.18 SYNCHRONIZE CACHE(10)コマンド

SYNCHRONIZE CACHE(10)コマンド(表50を参照)は、デバイスサーバに対して、指定された論

理ブロックにおける最新の値が、SYNC_NVビットに基づき不揮発性キャッシュないしメディアに記

録されていることを保証するよう要求する。論理ブロックにはユーザデータが含まれ、かつ、メ

ディアが保護情報を使用するようにフォーマットされている場合には保護情報が含まれる。論理

ブロックは、キャッシュ同期処理により揮発性キャッシュないし不揮発性キャッシュから削除さ

れる可能性もあり、削除されない可能性もある。

表50 SYNCHRONIZE CACHE(10)コマンド

LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)

訳注ワ SBC-2の原文ではスタンバイ状態タイマを無効化すると記述されている。しかし、SBC-3では LU_CONTROLについて、次の様に

記述している。「有効化(SPC-4を参照)されている全てのアイドル状態タイマを初期化して開始し、かつ、有効化(SPC-4を

参照)されている全てのスタンバイ状態タイマを初期化して開始する。」

77

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 35h)

IMMED予約済み

グループ番号(GROUP NUMBER)予約済み

コントロール( CONTROL)

6

7

SYNC_NV 廃止済み

(MSB)

(LSB)

ブロック数( NUMBER OF BLOCKS)(MSB)

(LSB)8

9

Page 78: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

を参照のこと。

GROUP NUMBERフィールドの定義については、PRE-FETCH(10)コマンド(5.3を参照)と4.17を

参照のこと。

SYNC_NVカビット(表51を参照)は、デバイスサーバが揮発性キャッシュないし不揮発性キャッ

シュの同期が要求されるか否かを指定する。

表51 SYNC_NVビット

値 揮発性キャッシュに存在する論理ブロッ

クの同期が必要

不揮発性キャッシュに存在する論理ブ

ロックの同期が必要

0 デバイスサーバはメディアに対して同期

を行わなければならない。

デバイスサーバはメディアに対して同期

を行わなければならない。

1 不揮発性キャッシュが存在する場合、デ

バイスサーバは不揮発性キャッシュまた

はメディアに対して同期を行わなければ

ならない。不揮発性キャッシュが存在し

ない場合は、デバイスサーバはメディア

に対して同期を行わなければならない。

要求されない。

即時(immediate:IMMED)ビットに0が設定された場合は、デバイスサーバは操作が完了するま

でステータスを返してはならないことを示す。IMMEDビットに1が設定された場合、デバイスサー

バはCDBの検証が終了したらすぐにステータスを返さなければならないことを示す。IMMEDビット

に1が設定され、かつ、デバイスサーバがIMMEDビットをサポートしない場合には、デバイス

サーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加セン

スコードがINVALID FIELD IN CDBで終了しなければならない。

NUMBER OF BLOCKSフィールドは、LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロック

から開始される、同期されなければならない論理ブロックの個数を指定する。NUMBER OF BLOCKS

フィールドに0が指定された場合は、LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロッ

クから、メディア上に存在する最後の論理ブロックまでの全ての論理ブロックが同期されなけれ

ばならないことを示す。論理ブロックアドレスとブロック数の合計がメディアの容量を超えた場

合には、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しなければならない。

指定された範囲内の論理ブロックがキャッシュに存在しない場合は、エラーと見なされてはな

らない。

5.19 SYNCHRONIZE CACHE(16)コマンド

SYNCHRONIZE CACHE(16)コマンド(表52を参照)は、デバイスサーバに対して、指定された論

理ブロックにおける最新の値が、SYNC_NVビットに基づき不揮発性キャッシュないしメディアに記

録されていることを保証するよう要求する。論理ブロックにはユーザデータが含まれ、かつ、メ

ディアが保護情報を使用するようにフォーマットされている場合には保護情報が含まれる。論理

ブロックは、キャッシュ同期処理により揮発性キャッシュないし不揮発性キャッシュから削除さ

れる可能性もあり、削除されない可能性もある。

訳注カ SYNC_NVの非省略形の記載がない。

78

Page 79: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表52 SYNCHRONIZE CACHE(16)コマンド

本コマンドのフィールドの定義については、SYNCHRONIZE CACHE(10)コマンド(5.18を参照)

を参照のこと。

5.20 VERIFY(10)コマンド

VERIFY(10)コマンド(表53を参照)は、デバイスサーバに対してメディア上に存在する指定

された論理ブロックの検証を行うよう要求する。各論理ブロックにはユーザデータが含まれ、

VRPROTECTヨフィールドとメディアのフォーマットに基づき保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(表5.11を参照)のRTO_ENビットに1が設定されている

場合、デバイスサーバは本コマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

注意 19:本コマンドの説明は、VERIFY(32)コマンドで参照されるが、RTO_ENビットが1では

なく 0が設定された場合にコマンドは終了される点に相違がある。

表53 VERIFY(10)コマンド

キャッシュを有する論理ユニットは、指定されたキャッシュに格納されている論理ブロックを、

当該論理ユニットのメディアに書き込まなければならない(例えば、SYNC_NVビットに

0、LOGICAL BLOCK ADDRESSフィールドに VERIFYコマンドの LOGICAL BLOCK ADDRESSフィールドの

値、NUMBER OF BLOCKSフィールドに VERIFYコマンドの VERIFICATION LENGTHフィールドの値を設

定した、SYNCHRONIZE CACHEコマンド(5.18、5.19を参照)のレスポンスで実行する処理を行

う)。

訳注ヨ VRPROTECTの非省略形の記載はない。

79

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

9論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 91h)

IMMED予約済み

グループ番号(GROUP NUMBER)予約済み

コントロール( CONTROL)

10

13

SYNC_NV 予約済み

(MSB)

(LSB)

ブロック数( NUMBER OF BLOCKS)(MSB)

(LSB)

14

15

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 2Fh)

BYTCHKVRRPROTECT

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み 廃止済み

(MSB)

(LSB)

検証長(VERIFICATION LENGTH)(LSB)

DPO

MMC-4により制限される 予約済み6

7

8

9

(MSB)

Page 80: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

DPOビットの定義についてはREAD(10)コマンド(5.6を参照)を参照のこと。LOGICAL BLOCK

ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)を参照のこと。

GROUP NUMBERフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)と4.17を参

照のこと。

検証エラーリカバリモードページ(6.3.5を参照)が実装される場合、当該ページの現在の設定

値により検証の基準が指定される。検証エラーリカバリモードページが実装されない場合、検証

の基準はベンダ固有となる。

バイト検証(byte check:BYTCHK)ビットに0が設定された場合、デバイスサーバは下記全てを

実行しなければならない。

a) いかなるデータもData-Outバッファから転送されず、データの比較を行わずにメディアの

検証を行う。

b) VRPROTECTフィールドに基づき、表54に定義に従い、メディアから読み込まれた保護情報

の検証を行う。

BYTCHKビットに1が設定された場合、デバイスサーバは下記全てを実行しなければならない。

a) メディアから読み込まれたユーザデータと、Data-Outバッファから転送されたユーザデー

タとで、バイト単位の比較を行う。

b) VRPROTECTフィールドに基づき、表55に定義に従い、メディアから読み込まれた保護情報

の検証を行う。

c) VRPROTECTフィールドに基づき、表56に定義に従い、Data-Outバッファから転送された保

護情報の検証を行う。

d) VRPROTECTフィールドに基づき、表57に定義に従い、メディアから読み込まれた保護情報

と、Data-Outバッファから転送された保護情報との、バイト単位の比較を行う。

ユーザデータと保護情報の検証と比較を行う順番はベンダ固有である。

何らかの理由によりバイト単位の比較が失敗した場合、デバイスサーバは、ステータスにCHECK

CONDITION、センスキーに MISCOMPARE、追加センスコードに条件に対応する適切な値を設定し、コ

マンドを終了しなければならない。

VERIFICATION LENGTHフィールドには、LOGICAL BLOCK ADDRESSフィールドで指定された論理ブ

ロックから開始される、検証されるべき論理ブロックの個数を指定する。BYTCHKビットに1が設

定された場合、VERIFICATION LENGTHフィールドはまた、デバイスサーバがData-Outバッファか

ら転送されなければならない論理ブロック数も指定する。VERIFICATION LENGTHフィールドに0が

設定された場合は、論理ブロックの検証が行われてはならないことを指定する。この状態はエ

ラーと見なされてはならない。他の全ての値は、検証されなければならない論理ブロックの個数

を指定する。論理ブロックアドレスと検証長の合計値がメディアの容量を超えた場合は、デバイ

スサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加セ

ンスコードが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しなければならない。VERIFICATION

LENGTHフィールドは、ブロック制限VPDページ(6.4.2を参照)の MAXIMUM TRANSFER LENGTH

フィールドによる制限を受ける。

BYTCHKビットに0が設定された場合、デバイスサーバは、VRPROTECTフィールドに基づき、表

54の定義に従い、メディアから読み込まれた保護情報の検証を行わなければならない。

80

Page 81: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表54 BYTCHKが 0の場合のVRPROTECTフィールド-メディアから読み込まれた保護情報の検証

値 論理ユニットが保護情

報を使用するよう

フォーマットされてい

るか

保護情報の

フィールド g

拡張INQUIRY

データVPDペー

ジのビット値 f

検証失敗時 d eの追加センス

コード

000b 使用する LOGICAL BLOCK

GUARD

GRD_CHK=1 LOGICAL BLOCK GUARD CHECK

FAILED

GRD_CHK=0 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

APP_CHK=1c LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

REF_CHK=1h LOGICAL BLOCK REFERENCE

TAG CHECK FAILED

REF_CHK=0 検証は行われない

使用しない メディアに検証すべき保護情報は存在しない。ユーザデータの

検証のみが検証される。

001bb 使用する LOGICAL BLOCK

GUARD

GRD_CHK=1 LOGICAL BLOCK GUARD CHECK

FAILED

GRD_CHK=0 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

APP_CHK=1c LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

REF_CHK=1h LOGICAL BLOCK REFERENCE

TAG CHECK FAILED

REF_CHK=0 検証は行われない

使用しない エラー状態 a

010bb 使用する LOGICAL BLOCK

GUARD

検証は行われない

LOGICAL BLOCK

APPLICATION TAG

APP_CHK=1c LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

REF_CHK=1h LOGICAL BLOCK REFERENCE

TAG CHECK FAILED

REF_CHK=0 検証は行われない

使用しない エラー状態 a

011bb 使用する LOGICAL BLOCK

GUARD

検証は行われない

LOGICAL BLOCK

APPLICATION TAG

検証は行われない

LOGICAL BLOCK 検証は行われない

81

Page 82: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

REFERENCE TAG

使用しない エラー状態 a

100bb 使用する LOGICAL BLOCK

GUARD

GRD_CHK=1 LOGICAL BLOCK GUARD CHECK

FAILED

GRD_CHK=0 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

検証は行われない

LOGICAL BLOCK

REFERENCE TAG

検証は行われない

使用しない エラー状態 a

101b~111b 予約済み

(a)論理ユニットが保護情報(4.16を参照)をサポートするが、保護情報を使用するようフォー

マットされていない場合、検証操作はステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN CDBで終了されなければならない。

(b)論理ユニットが保護情報をサポートしていない場合、要求されたコマンドはステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了されるべきである。

(c)デバイスサーバは、LOGICAL BLOCK APPLICATION TAGフィールドの内容に関する知識を有し

ている場合、論理ブロックアプリケーションタグの検証を行わなければならない。VERIFY(32)

コマンド(5.23を参照)が使用され、制御モードページ(SPC-3を参照)のATOビットに1が設定

されている場合、この知識はCDB内のEXPECTED LOGICAL BLOCK APPLICATION TAGフィールドと

LOGICAL BLOCK APPLICATION TAG MASKフィールドにより得られる。それ以外の場合、この知識は

本標準では規定されない方法により獲得される可能性がある。

(d)エラーが報告された場合、センスキーにはABORTED COMMANDが設定されなければならない。

(e)複数のエラーが発生した場合、どのエラーが報告されるべきかの選択については、本標準で

は規定されない。

(f)GRD_CHKビット、APP_CHKビット、REF_CHKビットの定義については拡張 INQUIRYデータ VPD

ページ(SPC-3を参照)を参照のこと。

(g)アプリケーションクライアントないしデバイスサーバが LOGICAL BLOCK APPLICATION TAG

フィールドにFFFFhが設定されていることを検知した場合、関連する論理ブロックにおける、全

ての保護情報に対する検証は無効化されなければならない。

(h)READ CAPACITY(16)コマンド(5.11を参照)のRTO_ENビットに0が設定された場合(すな

わち、当該コマンドが VERIFY(10)コマンド、VERIFY(12)コマンド、VERIFY(16)コマンドで

ある場合)、デバイスサーバは論理ブロック参照タグに対して、当該論理ブロックの LBAの下位 4

バイトと比較することにより検証を行わなければならない。RTO_ENビットに1が設定された場合

(すなわち、コマンドが VERIFY(32)コマンドの場合)、デバイスサーバは論理ブロック参照タ

グに対して、CDB内のEXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドに基づく検証

を行わなければならない(4.16.2を参照)。

BYTCHKビットに1が設定された場合、デバイスサーバは VRPROTECTフィールドに基づき、表55

の定義に従い、メディアから読み込まれた保護情報の検証を行わなければならない。

82

Page 83: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表55 BYTCHKが 1の場合のVRPROTECTフィールド-メディアから読み込まれた保護情報の検証

値 論理ユニットが保護情

報を使用するよう

フォーマットされてい

るか

保護情報のフィール

ド g

拡張INQUIRYデー

タVPDページの

ビット値 f

検証失敗時 d eの追加

センスコード

000b 使用する LOGICAL BLOCK GUARD GRD_CHK=1 LOGICAL BLOCK

GUARD CHECK FAILED

GRD_CHK=0 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

APP_CHK=1c g LOGICAL BLOCK

APPLICATION TAG

CHECK FAILED

APP_CHK=0 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

REF_CHK=1h LOGICAL BLOCK

REFERENCE TAG

CHECK FAILED

REF_CHK=0 検証は行われない

使用しない メディアに検証すべき保護情報は存在しない。

001b

010b

011b

100bb

使用する LOGICAL BLOCK GUARD 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

検証は行われない

LOGICAL BLOCK

REFERENCE TAG

検証は行われない

使用しない エラー状態 a

101b~111b 予約済み

(a)論理ユニットが保護情報(4.16を参照)をサポートするが、保護情報を使用するようフォー

マットされていない場合、検証操作はステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN CDBで終了されなければならない。

(b)論理ユニットが保護情報をサポートしていない場合、要求されたコマンドはステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了されるべきである。

(c)デバイスサーバは、LOGICAL BLOCK APPLICATION TAGフィールドの内容に関する知識を有し

ている場合、論理ブロックアプリケーションタグの検証を行わなければならない。VERIFY(32)

コマンド(5.23を参照)が使用され、制御モードページ(SPC-3を参照)のATOビットに1が設定

されている場合、この知識はCDB内のEXPECTED LOGICAL BLOCK APPLICATION TAGフィールドと

LOGICAL BLOCK APPLICATION TAG MASKフィールドにより得られる。それ以外の場合、この知識は

本標準では規定されない方法により獲得される可能性がある。

(d)エラーが報告された場合、センスキーにはABORTED COMMANDが設定されなければならない。

(e)複数のエラーが発生した場合、どのエラーが報告されるべきかの選択については、本標準で

は規定されない。

(f)GRD_CHKビット、APP_CHKビット、REF_CHKビットの定義については拡張 INQUIRYデータ VPD

ページ(SPC-3を参照)を参照のこと。

83

Page 84: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

(g)アプリケーションクライアントないしデバイスサーバが LOGICAL BLOCK APPLICATION TAG

フィールドにFFFFhが設定されていることを検知した場合、関係する論理ブロックにおける、全

ての保護情報に対する検証は無効化されなければならない。

(h)READ CAPACITY(16)コマンド(5.11を参照)のRTO_ENビットに0が設定された場合(すな

わち、当該コマンドが VERIFY(10)コマンド、VERIFY(12)コマンド、VERIFY(16)コマンドで

ある場合)、デバイスサーバは論理ブロック参照タグに対して、当該論理ブロックの LBAの下位 4

バイトと比較することにより検証を行わなければならない。RTO_ENビットに1が設定された場合

(すなわち、コマンドが VERIFY(32)コマンドの場合)、デバイスサーバは論理ブロック参照タ

グに対して、CDB内のEXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドに基づく検証

を行わなければならない(4.16.2を参照)。

BYTCHKビットに1が設定された場合、デバイスサーバは VRPROTECTフィールドに基づき、表56

の定義に従い、Data-Outバッファから転送された保護情報の検証を行わなければならない。

表56 BYTCHKが 1の場合のVRPROTECTフィールド-Data-Outバッファから転送された保護情報の検証

値 論理ユニットが保護情

報を使用するよう

フォーマットされてい

るか

保護情報のフィール

ド g

デバイス

サーバの

検証

検証失敗時 d eの追加センス

コード

000b 使用する 検証するべき保護情報はアプリケーションクライアントから受

信しない。

使用しない 検証するべき保護情報はアプリケーションクライアントから受

信しない。

001bb 使用する LOGICAL BLOCK

GUARD

必須 LOGICAL BLOCK GUARD CHECK

FAILED

LOGICAL BLOCK

APPLICATION TAG

可能 c LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

LOGICAL BLOCK

REFERENCE TAG

必須 f LOGICAL BLOCK REFERENCE TAG

CHECK FAILED

使用しない エラー状態 a

010bb 使用する LOGICAL BLOCK

GUARD

不可 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

可能 c LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

LOGICAL BLOCK

REFERENCE TAG

可能 f LOGICAL BLOCK REFERENCE TAG

CHECK FAILED

使用しない エラー状態 a

011bb 使用する LOGICAL BLOCK

GUARD

不可 検証は行われない

LOGICAL BLOCK

APPLICATION TAG

不可 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

不可 検証は行われない

使用しない エラー状態 a

100bb 使用する LOGICAL BLOCK 必須 LOGICAL BLOCK GUARD CHECK

84

Page 85: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

GUARD FAILED

LOGICAL BLOCK

APPLICATION TAG

不可 検証は行われない

LOGICAL BLOCK

REFERENCE TAG

不可 検証は行われない

使用しない エラー状態 a

101b~111b

(a)論理ユニットが保護情報(4.16を参照)をサポートするが、保護情報を使用するようフォー

マットされていない場合、検証操作はステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN CDBで終了されなければならない。

(b)論理ユニットが保護情報をサポートしていない場合、要求されたコマンドはステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了されるべきである。

(c)デバイスサーバは、制御モードページ(SPC-3を参照)のATOビットに1が設定され、かつ

LOGICAL BLOCK APPLICATION TAGフィールドの内容に関する知識を有する場合に、論理ブロックア

プリケーションタグの検証を行わなければならない。VERIFY(32)コマンド(5.23を参照)が使

用された場合、この知識はCDBの EXPECTED LOGICAL BLOCK APPLICATION TAGフィールドと

LOGICAL BLOCK APPLICATION TAG MASKフィールドから得られる。それ以外の場合、この知識は本

標準では規定されない方法により獲得される可能性がある。

(d)エラーが報告された場合、センスキーにはABORTED COMMANDが設定されなければならない。

(e)複数のエラーが発生した場合、どのエラーが報告されるべきかの選択については、本標準で

は規定されない。

(f)READ CAPACITY(16)コマンド(5.11を参照)のRTO_ENビットに0が設定された場合(すな

わち、当該コマンドが VERIFY(10)コマンド、VERIFY(12)コマンド、VERIFY(16)コマンドで

ある場合)、デバイスサーバは論理ブロック参照タグに対して、当該論理ブロックの LBAの下位 4

バイトと比較することにより検証を行わなければならない。RTO_ENビットに1が設定された場合

(すなわち、コマンドが VERIFY(32)コマンドの場合)、デバイスサーバは論理ブロック参照タ

グに対して、CDB内のEXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドに基づく検証

を行わなければならない(4.16.2を参照)。

BYTCHKビットに1が設定された場合、VRPROTECTフィールドの内容に基づき、表57の定義に従

い、デバイスサーバはData-Outバッファから転送された保護情報と、メディアから読み込まれた

保護情報とで、バイト単位の比較を行わなければならない。

85

Page 86: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表57 BYTCHKビットが1の場合のVRPROTECTフィールド-バイト単位の比較の要求

値 論理ユニットが保

護情報を使用する

ようフォーマット

されているか

フィールド バイト

単位の

比較

検証失敗時 c dの追加センス

コード

000b 使用する 検証するべき保護情報はアプリケーションクライアントから受信し

ない。各論理ブロックのユーザデータのみ比較される。

使用しない 検証するべき保護情報はメディアタに存在しない、もしくはアプリ

ケーションクライアントから受信しない。各論理ブロック内のユー

ザデータのみが比較される。

001bb 使用する LOGICAL BLOCK GUARD 必須 LOGICAL BLOCK GUARD CHECK

FAILED

LOGICAL BLOCK APPLICATION

TAG(ATO=1)e

必須 LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

LOGICAL BLOCK APPLICATION

TAG(ATO=0)f

不可 検証は行われない

LOGICAL BLOCK REFERENCE

TAG

必須 LOGICAL BLOCK REFERENCE

TAG CHECK FAILED

使用しない エラー状態 a

010bb 使用する LOGICAL BLOCK GUARD 不可 検証は行われない

LOGICAL BLOCK APPLICATION

TAG(ATO=1)e

必須 LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

LOGICAL BLOCK APPLICATION

TAG(ATO=0)f

不可 検証は行われない

LOGICAL BLOCK REFERENCE

TAG

必須 LOGICAL BLOCK REFERENCE

TAG CHECK FAILED

使用しない エラー状態 a

011b

100bb

使用する LOGICAL BLOCK GUARD 必須 LOGICAL BLOCK GUARD CHECK

FAILED

LOGICAL BLOCK APPLICATION

TAG(ATO=1)e

必須 LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

LOGICAL BLOCK APPLICATION

TAG(ATO=0)f

不可 検証は行われない

LOGICAL BLOCK REFERENCE

TAG

必須 LOGICAL BLOCK REFERENCE

TAG CHECK FAILED

使用しない エラー状態 a

101b~111b 予約済み

(a)論理ユニットが保護情報(4.16を参照)をサポートするが、保護情報を使用するようフォー

マットされていない場合、検証操作はステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN CDBで終了されなければならない。

訳注タ 原文は「No protection information or the medium or received from……」と記載されており意味が不明である。1つめの

orはonの誤記と解釈し、上記の訳としている。

86

Page 87: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

(b)論理ユニットが保護情報をサポートしていない場合、要求されたコマンドはステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了されるべきである。

(c)エラーが報告された場合、センスキーにはABORTED COMMANDが設定されなければならない。

(d)複数のエラーが発生した場合、どのエラーが報告されるべきかの選択については、本標準で

は規定されない。

(e)制御モードページ(SPC-3を参照)のATOビットに1が設定されていた場合、論理ブロック

アプリケーションタグはデバイスサーバにより変更されてはならない。

(f)制御モードページ(SPC-3を参照)のATOビットに0が設定されていた場合、論理ブロック

アプリケーションタグはデバイスサーバにより変更される可能性がある。

5.21 VERIFY(12)コマンド

VERIFY(12)コマンド(表58を参照)は、デバイスサーバに対して、メディア上に存在する指

定された論理ブロックの検証を行うよう要求する。各論理ブロックにはユーザデータが含まれ、

かつ、VRPROTECTフィールドとメディアのフォーマットに基づき保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバは本コマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表58 VERIFY(12)コマンド

本コマンドのフィールドの定義については、VERIFY(10)コマンド(5.20を参照)を参照のこ

と。

5.22 VERIFY(16)コマンド

VERIFY(16)コマンド(表59を参照)は、デバイスサーバに対して、メディア上に存在する指

定された論理ブロックの検証を行うよう要求する。各論理ブロックにはユーザデータが含まれ、

VRPROTECTフィールドとメディアのフォーマットに基づき、保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

87

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( AFh)

BYTCHKVRRPROTECT

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み 廃止済み

(MSB)

(LSB)

検証長(VERIFICATION LENGTH)(LSB)

DPO

MMC-4により制限される 予約済み

6

9

10

11

(MSB)

Page 88: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表59 VERIFY(16)コマンド

本コマンドのフィールドの定義については、VERIFY(10)コマンド(5.20を参照)を参照のこ

と。

5.23 VERIFY(32)コマンド

VERIFY(32)コマンド(表60を参照)は、デバイスサーバに対して、メディア上に存在する指

定された論理ブロックの検証を行うよう要求する。各論理ブロックにはユーザデータが含まれ、

VRPROTECTフィールドとメディアのフォーマットに基づき、保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

88

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

9論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 8Fh)

BYTCHKVRRPROTECT

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み 予約済み

(MSB)

(LSB)

検証長(VERIFICATION LENGTH)(LSB)

DPO

MMC-4により制限される 予約済み14

15

(MSB)

10

13

Page 89: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表60 VERIFY(32)コマンド

GROUP NUMBERフィールド、VRPROTECTフィールド、DPOビット、BYTCHKビット、LOGICAL BLOCK

ADDRESSフィールド、VERIFICATION LENGTHフィールドの定義については、VERIFY(10)コマンド

(5.20を参照)を参照のこと。

LOGICAL BLOCK REFERENCE TAGフィールドの検証が有効な場合(5.20の表54、表55、表56、表

57を参照)、EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドには、LBAに基づく値

の代わりに、当該コマンドによりアクセスされる最初の論理ブロックの保護情報における、

LOGICAL BLOCK REFERENCE TAGフィールドに格納されているものと予測される値が格納される

(4.16.2を参照)。

制御モードページ(SPC-3を参照)のATOビットに1が設定され、LOGICAL BLOCK APPLICATION

TAGフィールドの検証が有効な場合(5.20の表54、表55、表56、表57を参照)、LOGICAL BLOCK

APPLICATION TAG MASKフィールドには、当該コマンドによりアクセスされる各論理ブロックの保

護情報における、LOGICAL BLOCK APPLICATION TAGフィールドに対する検証を有効化するための、

ビットマスクが格納される。LOGICAL BLOCK APPLICATION TAG MASKのビットに1が設定された場

合、EXPECTED LOGICAL BLOCK APPLICATION TAGフィールド内の対応するビットと、保護情報の

LOGICAL BLOCK APPLICATION TAGフィールド内の対応するビットとの検証が有効化される。

制御モードページ(SPC-3を参照)のATOビットに1が設定され、LOGICAL BLOCK APPLICATION

TAGフィールドの検証が無効な場合(5.20の表54、表55、表56、表57を参照)、もしくはATO

ビットに0が設定されている場合、LOGICAL BLOCK APPLICATION TAG MASKフィールドとEXPECTED

LOGICAL BLOCK APPLICATION TAGフィールドは無視されなければならない。

89

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 000Ah)(MSB)

(LSB)

予約済みBYTCHK予約済みDPOVRPROTECT

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予期される初期論理ブロック参照タグ

( EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAG)

予期される論理ブロックアプリケーションタグ

( EXPECTED LOGICAL BLOCK APPLICATION TAG)

論理ブロックアプリケーションタグマスク

(LOGICAL BLOCK APPLICATION TAG MASK)

検証長(VERIFICATION LENGTH)

(MSB)

(MSB)

(MSB)

(MSB)

(MSB)

(LSB)

(LSB)

(LSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

23

24

25

26

27

28

31

Page 90: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

5.24 WRITE(6)コマンド

WRITE(6)コマンド(表61を参照)は、デバイスサーバに対して、指定された論理ブロックを

Data-Outバッファから転送し、それらを書き込むよう要求する。転送される各論理ブロックには

ユーザデータが含まれ、保護情報は含まれない。書き込まれる各論理ブロックにはユーザデータ

が含まれ、メディアが保護情報を使用するようフォーマットされている場合には、保護情報も含

まれる。

表61 WRITE(6)コマンド

本コマンドではキャッシュ制御ビットは提供されない。キャッシュを有する直接アクセスブ

ロックデバイスは、WRITE(6)コマンドに影響するキャッシュ制御ビットの値を有する可能性が

あるが、本標準ではデフォルト値は規定されない。明示的な制御が必要な場合は、WRITE(10)コ

マンドを使用するべきである。

LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。

TRANSFER LENGTHフィールドは、LOGICAL BLOCK ADDRESSフィールドで指定される論理ブロック

から開始される、Data-Outバッファから転送され書き込まれなければならないデータの、連続す

る論理ブロック数を指定する。TRANSFER LENGTHフィールドで0が指定された場合は、256個の論

理ブロックが書き込まれなければならないことを指定する。他の全ての値は書き込まれなければ

ならない論理ブロックの個数を指定する。論理ブロックアドレスと転送長の合計値がメディアの

容量を超えた場合には、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センス

キーがILLEGAL REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しな

ければならない。TRANSFER LENGTHフィールドは、ブロック制限VPDページ(6.4.2を参照)内の

MAXIMUM TRANSFER LENGTHフィールドによる制限を受ける。

注意 20:WRITE(10)コマンド、WRITE(12)コマンド、WRITE(16)コマンド、WRITE(32)コ

マンドにおいては、TRANSFER LENGTHフィールドに0が設定された場合は、論理ブロックが転送さ

れないことを指定する。

保護情報が有効化された後に WRITE(6)コマンドを受信した場合、デバイスサーバは、各論理

ブロックをメディアに書き込む際に、次のように保護情報(4.16を参照)を設定しなければなら

ない。

a) LOGICAL BLOCK GUARDフィールドに、CRCにより生成された値を設定する(4.16.3を参照)。

b) LOGICAL BLOCK REFERENCE TAGフィールドを下記に従い設定する。

A) READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されて

いる場合は、LBAの下位 4バイトを設定する。

B) RTO_ENビットに1が設定されている場合は、FFFFFFFFhを設定する。

c) LOGICAL BLOCK APPLICATION TAGフィールドを下記に従い設定する。

90

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 0Ah)

予約済み

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

4

5

Page 91: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

A) 制御モードページ(SPC-3を参照)のATOビットに1が設定されている場合は、FFFFh

を設定する。

B) 制御モードページ(SPC-3を参照)のATOビットに0が設定されている場合は任意の値

を設定する。

5.25 WRITE(10)コマンド

WRITE(10)コマンド(表62を参照)は、デバイスサーバに対して、指定された論理ブロックを

Data-Outバッファから転送し、それらを書き込むよう要求する。転送される各論理ブロックには

ユーザデータが含まれ、WRPROTECTレフィールドとメディアのフォーマットに基づき保護情報が含

まれる可能性がある。書き込まれる各論理ブロックにはユーザデータが含まれ、メディアが保護

情報を使用するようフォーマットされている場合には保護情報も含まれる。

表62 WRITE(10)コマンド

DPOビットに定義についてはREAD(10)コマンド(5.6を参照)を参照のこと。LOGICAL BLOCK

ADDRESSフィールドの定義については、PRE-FETCH(10)コマンド(5.3を参照)を参照のこと。

GROUP NUMBERフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)と4.17を参

照のこと。

デバイスサーバは、WRPROTECTフィールドに基づき、表63の定義に従い、Data-Outバッファか

ら転送された保護情報を検証しなければならない。

表63 WRPROTECTフィールド

値 論理ユニットは保護情

報を使用するよう

フォーマットされてい

るか

保護情報のフィー

ルド

デバイス

サーバは検

証を行うか

失敗した場合 d iの追加センス

コード

000b 使用する fgh 検証するべき保護情報をアプリケーションクライアントから受

信しない。

使用しない 検証するべき保護情報をアプリケーションクライアントから受

信しない。

001bbj 使用する e LOGICAL BLOCK

GUARD

必須 LOGICAL BLOCK GUARD CHECK

FAILED

LOGICAL BLOCK

APPLICATION TAG

可能 c LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

訳注レ WRPROTECTの非省略形の記載はない。

91

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 2Ah)

WRPROTECT

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

6

7

DPO FUA 予約済み FUA_NV 廃止済み

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)

8

9

Page 92: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

LOGICAL BLOCK

REFERENCE TAG

必須 k LOGICAL BLOCK REFERENCE TAG

CHECK FAILED

使用しない a 検証すべき保護情報は存在しない。

010bbj 使用する e LOGICAL BLOCK

GUARD

不可 検証は行われない。

LOGICAL BLOCK

APPLICATION TAG

可能 c LOGICAL BLOCK APPLICATION

TAG CHECK FAILED

LOGICAL BLOCK

REFERENCE TAG

可能 k LOGICAL BLOCK REFERENCE TAG

CHECK FAILED

使用しない a 検証すべき保護情報は存在しない。

011bbj 使用する e LOGICAL BLOCK

GUARD

不可 検証は行われない。

LOGICAL BLOCK

APPLICATION TAG

不可 検証は行われない。

LOGICAL BLOCK

REFERENCE TAG

不可 検証は行われない。

使用しない a 検証すべき保護情報は存在しない。

100bbj 使用する e LOGICAL BLOCK

GUARD

必須 LOGICAL BLOCK GUARD CHECK

FAILED

LOGICAL BLOCK

APPLICATION TAG

不可 検証は行われない。

LOGICAL BLOCK

REFERENCE TAG

不可 検証は行われない。

使用しない a 検証すべき保護情報は存在しない。

101b~111b 予約済み

(a)保護情報(4.16を参照)をサポートするが、保護情報を使用するようにフォーマットされて

いない論理ユニットに対する書き込み操作は、ステータスがCHECK CONDITION、センスキーが

ILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了されなければならない。

(b)論理ユニットが保護情報をサポートしていない場合、要求されたコマンドはステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了されるべきである。

(c)デバイスサーバは、制御モードページ(SPC-3を参照)のATOビットに1が設定され、かつ、

LOGICAL BLOCK APPLICATION TAGフィールドの内容に関する知識を有している場合に、論理ブロッ

クアプリケーションタグの検証を行うことが可能である。WRITE(32)コマンド(5.28を参照)が

使用された場合、この知識はCDB内のEXPECTED LOGICAL BLOCK APPLICATION TAGフィールドと

LOGICAL BLOCK APPLICATION TAG MASKフィールドから得られる。それ以外の場合、この知識は本

標準では規定されない方法により獲得される。

(d)エラーが報告された場合、センスキーはABORTED COMMANDが設定されなければならない。

(e)デバイスサーバは、保護情報の内容を保存しなければならない(例えば、メディアへ書き込

む、不揮発性メモリへ格納する)。

(f)デバイスサーバは、各LOGICAL BLOCK GUARDフィールドに、正当なCRC(4.16.3.2を参照)

を書き込まなければならない。

92

Page 93: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

(g)READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている

場合、書き込まれる各論理ブロックの LOGICAL BLOCK REFERENCE TAGフィールドに、それぞれの

LBAの下位 4バイトを書き込まなければならない。RTO_ENビットに1が設定されていた場合、デバ

イスサーバは、書き込まれる各論理ブロックの LOGICAL BLOCK REFERENCE TAGフィールドに

FFFFFFFFhを書き込まなければならない。

(h)制御モードページ(SPC-3を参照)のATOビットに1が設定されていた場合、デバイスサー

バは各LOGICAL BLOCK APPLICATION TAGフィールドにFFFFhを書き込まなければならない。ATO

ビットに0が設定されていた場合、デバイスサーバは各LOGICAL BLOCK APPLICATION TAGフィー

ルドに任意の値を書き込むことが可能である。

(i)複数のエラーが発生した場合、どのエラーを報告するべきかの選択については本標準では規

定されない。

(j)READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている

場合、デバイスサーバは本コマンドを処理することが可能である。RTO_ENビットに1が設定され

ていた場合、デバイスサーバは、WRPROTECTフィールドに000bが設定された WRITE(10)コマン

ド、WRITE(12)コマンド、WRITE(16)コマンドを処理することが可能である。RTO_ENビットに

1が設定されていた場合、デバイスサーバは、WRPROTECTフィールドに000b以外の値が設定され

た WRITE(10)コマンド、WRITE(12)コマンド、WRITE(16)コマンドは、ステータスがCHECK

CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID COMMAND OPERATION

CODEで終了しなければならない。

(k)READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている

場合、デバイスサーバは、論理ブロック参照タグの値を論理ブロックの LBAの下位 4バイトと比

較することにより検証を行う。RTO_ENビットに1が設定されていた場合(すなわち、コマンドが

WRITE(32)コマンドの場合)、デバイスサーバは論理ブロック参照タグの値を、CDB内の

EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドの値に基づき検証を行う。

強制ユニットアクセス(force unit access:FUA)ビットと、強制ユニットアクセス不揮発性

キャッシュ(force unit access non-volatile cache:FUA_NV)ビットについては、表64で定義

される。

表64 書き込み操作の強制ユニットアクセス

FUA FUA_NV 説明

0 0 デバイスサーバは論理ブロックを、揮発性キャッシュ、不揮発性

キャッシュ、メディアのいずれかもしくは全てに書き込まなけれ

ばならない。

0 1 拡張 INQUIRYデータ VPDページ(SPC-3を参照)のNV_SUPビット

に1が設定されていた場合、デバイスサーバは論理ブロックを不

揮発性キャッシュもしくはメディアに書き込まなければならない。

拡張 INQUIRYデータ VPDページ(SPC-3を参照)のNV_SUPビット

に0が設定されていた場合、デバイスサーバは論理ブロックを揮

発性キャッシュ、不揮発性キャッシュ、メディアのいずれかもし

くは全てに書き込まなければならない。

1 0または1 デバイスサーバは論理ブロックをメディアに書き込まなければな

らない。かつ、実際に論理ブロックがメディアに書き込まれるま

で GOODステータスを返してはならない。

論理ブロックがキャッシュに直接転送された場合、デバイスサーバは論理ブロックをメディア

に書き込む前に GOODステータスを返すことが可能である。GOODステータスが返された後に発生し

た全てのエラーは遅延エラーとなり、このエラーに関連する情報は後続のコマンドまで報告され

93

Page 94: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ない。

TRANSFER LENGTHフィールドは、LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロック

から開始される、Data-Outバッファから転送されて書き込まれなければならない連続する論理ブ

ロックの個数を指定する。TRANSFER LENGTHフィールドに0が指定された場合、論理ブロックは書

き込まれてはならない。この状態はエラーと見なされてはならない。他の全ての値は、書き込ま

れなければならない論理ブロックの個数を指定する。転送長と論理ブロックアドレスを加算した

値がメディアの容量を超えた場合、デバイスサーバはコマンドを、ステータスがCHECK

CONDITION、センスキーがILLEGAL REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS OUT OF

RANGEで終了しなければならない。TRANSFER LENGTHフィールドは、ブロック制限VPDページ

(6.4.2を参照)の MAXIMUM TRANSFER LENGTHフィールドによる制限を受ける。

注意 21:WRITE(6)コマンドにおいては、TRANSFER LENGTHフィールドに0が指定された場合は、

256個の論理ブロックが転送されることを示す。

5.26 WRITE(12)コマンド

WRITE(12)コマンド(表65を参照)は、デバイスサーバに対して、指定された論理ブロックを

Data-Outバッファから転送し、それらを書き込むことを要求する。転送される各論理ブロックに

はユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに基づき保護情報が含

まれる可能性がある。書き込まれる各論理ブロックにはユーザデータが含まれ、メディアが保護

情報を使用するようフォーマットされている場合には保護情報が含まれる。

表65 WRITE(12)コマンド

本コマンドのフィールドの定義については、WRITE(10)コマンド(5.25を参照)を参照のこと。

5.27 WRITE(16)コマンド

WRITE(16)コマンド(表66を参照)は、デバイスサーバに対して、指定された論理ブロックを

Data-Outバッファから転送し、それらを書き込むことを要求する。転送される各論理ブロックに

はユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに基づき保護情報が含

まれる可能性がある。書き込まれる各論理ブロックにはユーザデータが含まれ、メディアが保護

情報を使用するようフォーマットされている場合には保護情報が含まれる。

94

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( AAh)

WRPROTECT

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

6

9

DPO FUA 予約済み FUA_NV 廃止済み

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)10

11

MMC-4により制限される

Page 95: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表66 WRITE(16)コマンド

本コマンドのフィールドの定義については、WRITE(10)コマンド(5.25を参照)を参照のこと。

5.28 WRITE(32)コマンド

WRITE(32)コマンド(表67を参照)は、デバイスサーバに対して、指定された論理ブロックを

Data-Outバッファから転送し、それらを書き込むことを要求する。転送される各論理ブロックに

はユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに基づき保護情報が含

まれる可能性がある。書き込まれる各論理ブロックにはユーザデータが含まれ、メディアが保護

情報を使用するようフォーマットされている場合には保護情報が含まれる。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている場

合、デバイスサーバは WRITE(32)コマンドを、ステータスがCHECK CONDITION、センスキーが

ILLEGAL REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければなら

ない。RTO_ENビットに1が設定されている場合、デバイスサーバは本コマンドを処理することが

可能である。

95

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

9論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 8Ah)

WRPROTECT

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

10

13

DPO FUA 予約済み FUA_NV 予約済み

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)14

15

MMC-4により制限される

Page 96: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表67 WRITE(32)コマンド

GROUP NUMBERフィールド、WRPROTECTフィールド、DPOビット、FUAビット、FUA_NVビット、

LOGICAL BLOCK ADDRESSフィールド、TRANSFER LENGTHフィールドの定義については WRITE(10)

コマンド(5.25を参照)を参照のこと。

LOGICAL BLOCK REFERENCE TAGフィールドの検証が有効な場合(5.25の表63を参照)、

EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドには、LBAに基づく値の代わりに、

本コマンドでアクセスされる最初の論理ブロックに存在する保護情報内の、LOGICAL BLOCK

REFERENCE TAGフィールドに格納されているものと予測される値が格納される(4.16.2を参照)。

制御モードページ(SPC-3を参照)のATOビットが1であり、LOGICAL BLOCK APPLICATION TAG

フィールドの検証が有効である場合(5.25の表63を参照)、LOGICAL BLOCK APPLICATION TAG

MASKフィールドには、本コマンドでアクセスされる各論理ブロック内の保護情報において、

LOGICAL BLOCK APPLICATION TAGフィールドの検証を有効化するためのビットマスクが格納される。

LOGICAL BLOCK APPLICATION TAG MASKフィールド内のビットに1が設定された場合、EXPECTED

LOGICAL BLOCK APPLICATION TAGフィールド内の対応するビットと、保護情報内の LOGICAL BLOCK

APPLICATION TAGフィールド内の対応するビットを比較することによる検証が有効化される。

制御モードページ(SPC-3を参照)のATOビットが1であり、LOGICAL BLOCK APPLICATION TAG

フィールドの検証が無効である場合(5.25の表63を参照)、もしくはATOビットに0が設定され

ている場合、LOGICAL BLOCK APPLICATION TAG MASKフィールドと、EXPECTED LOGICAL BLOCK

APPLICATION TAGフィールドは無視されなければならない。

96

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 000Bh)(MSB)

(LSB)

予約済みFUA_NVFUADPOWRPROTECT

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予期される初期論理ブロック参照タグ

( EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAG)

予期される論理ブロックアプリケーションタグ

( EXPECTED LOGICAL BLOCK APPLICATION TAG)

論理ブロックアプリケーションタグマスク

(LOGICAL BLOCK APPLICATION TAG MASK)

転送長( TRANSFER LENGTH)

(MSB)

(MSB)

(MSB)

(MSB)

(MSB)

(LSB)

(LSB)

(LSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

23

24

25

26

27

28

31

予約済み

Page 97: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

5.29 WRITE AND VERIFY(10)コマンド

WRITE AND VERIFY(10)コマンド(表68を参照)は、デバイスサーバに対して、指定された論

理ブロックをData-Outバッファから転送し、それらをメディアに書き込み、それらが正しく書き

込まれたか検証するよう要求する。各論理ブロックにはユーザデータが含まれ、WRPROTECTフィー

ルドとメディアのフォーマットに基づき保護情報が含まれる可能性がある。論理ブロックは、

Data-Outバッファからデバイスサーバに対して1度だけ転送される。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバは本コマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表68 WRITE AND VERIFY(10)コマンド

LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。GROUP NUMBERフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参

照)と4.17を参照のこと。TRANSFER LENGTHフィールド、WRPROTECTフィールドの定義について

は WRITE(10)コマンド(5.25を参照)を参照のこと。DPOビットに定義についてはREAD(10)

コマンド(5.6を参照)を参照のこと。

検証エラーリカバリモードページ(6.3.5を参照)もまた実装される場合、当該モードページの

現在の設定は読み書きエラーリカバリモードページ(6.3.4を参照)のAWREビットと共に、検証

エラーの基準を規定する。これらのモードページが実装されない場合、検証の基準はベンダ固有

となる。

バイト検証(byte check:BYTCHK)ビットに0が設定された場合、書き込み後にデバイスサーバ

は、データの比較を行わないで検証を実行することを指定する。BYTCHKビットに1が設定された

場合、書き込み後にデバイスサーバは、メディアに書き込まれたデータと書き込む対象のデータ

をバイト単位で比較することによる検証を実行することを指定する。何らかの理由で比較が失敗

した場合、デバイスサーバはコマンドを、ステータスにCHECK CONDITION、センスキーに

MISCOMPARE、追加センスコードに条件に応じた適切な値を設定して終了しなければならない。

5.30 WRITE AND VERIFY(12)コマンド

WRITE AND VERIFY(12)コマンド(表69を参照)は、デバイスサーバに対して、指定された論

理ブロックをData-Outバッファから転送し、それらをメディアに書き込み、それらが正しく書き

込まれたか検証するよう要求する。各論理ブロックにはユーザデータが含まれ、WRPROTECTフィー

ルドとメディアのフォーマットに基づき保護情報が含まれる可能性がある。論理ブロックは、

Data-Outバッファからデバイスサーバに対して1度だけ転送される。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバは本コマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

97

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 2Eh)

WRPROTECT

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

6

7

DPO 予約済み BYTCHK 廃止済み

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)

8

9

Page 98: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表69 WRITE AND VERIFY(12)コマンド

本コマンドのフィールドの定義については WRITE AND VERIFY(10)コマンド(5.29を参照)を

参照のこと。

5.31 WRITE AND VERIFY(16)コマンド

WRITE AND VERIFY(16)コマンド(表70を参照)は、デバイスサーバに対して、指定された論

理ブロックをData-Outバッファから転送し、それらをメディアに書き込み、それらが正しく書き

込まれたか検証するよう要求する。各論理ブロックにはユーザデータが含まれ、WRPROTECTフィー

ルドとメディアのフォーマットに基づき保護情報が含まれる可能性がある。論理ブロックは、

Data-Outバッファからデバイスサーバに対して1度だけ転送される。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバは本コマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表70 WRITE AND VERIFY(16)コマンド

本コマンドのフィールドの定義については WRITE AND VERIFY(10)コマンド(5.29を参照)を

参照のこと。

5.32 WRITE AND VERIFY(32)コマンド

WRITE AND VERIFY(16)コマンド(表70を参照)は、デバイスサーバに対して、指定された論

理ブロックをData-Outバッファから転送し、それらをメディアに書き込み、それらが正しく書き

込まれたか検証するよう要求する。各論理ブロックにはユーザデータが含まれ、WRPROTECTフィー

98

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( AEh)

WRPROTECT

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

6

9

DPO 予約済み BYTCHK 廃止済み

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)10

11

MMC-4により制限される

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

9論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 8Eh)

WRPROTECT

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

10

13

DPO 予約済み BYTCHK 予約済み

(MSB)

(LSB)

予約済み グループ番号(GROUP NUMBER)14

15

MMC-4により制限される

Page 99: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ルドとメディアのフォーマットに基づき保護情報が含まれる可能性がある。論理ブロックは、

Data-Outバッファからデバイスサーバに対して1度だけ転送される。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている場

合、デバイスサーバは本コマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

RTO_ENビットに1が設定されていた場合、デバイスサーバは本コマンドを処理することが可能で

ある。

表71 WRITE AND VERIFY(32)コマンド

GROUP NUMBERフィールド、WRPROTECTフィールド、DPOビット、BYTCHKビット、LOGICAL BLOCK

ADDRESSフィールド、TRANSFER LENGTHフィールドの定義については、WRITE AND VERIFY(10)コ

マンド(5.29を参照)を参照のこと。

LOGICAL BLOCK REFERENCE TAGフィールドの検証が有効な場合(5.25の表63を参照)、

EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドには、LBAに基づく値の代わりに、

本コマンドでアクセスされる最初の論理ブロックに存在する保護情報内の、LOGICAL BLOCK

REFERENCE TAGフィールドに格納されているものと予測される値が格納される(4.16.2を参照)。

制御モードページ(SPC-3を参照)のATOビットが1であり、LOGICAL BLOCK APPLICATION TAG

フィールドの検証が有効である場合(5.25の表63を参照)、LOGICAL BLOCK APPLICATION TAG

MASKフィールドには、本コマンドでアクセスされる各論理ブロック内の保護情報において、

LOGICAL BLOCK APPLICATION TAGフィールドの検証を有効化するためのビットマスクが格納される。

LOGICAL BLOCK APPLICATION TAG MASKフィールド内のビットに1が設定された場合、EXPECTED

99

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 000Ch)(MSB)

(LSB)

予約済みBYTCHKDPOWRPROTECT

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予期される初期論理ブロック参照タグ

( EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAG)

予期される論理ブロックアプリケーションタグ

( EXPECTED LOGICAL BLOCK APPLICATION TAG)

論理ブロックアプリケーションタグマスク

(LOGICAL BLOCK APPLICATION TAG MASK)

転送長( TRANSFER LENGTH)

(MSB)

(MSB)

(MSB)

(MSB)

(MSB)

(LSB)

(LSB)

(LSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

23

24

25

26

27

28

31

予約済み

Page 100: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

LOGICAL BLOCK APPLICATION TAGフィールド内の対応するビットと、保護情報内の LOGICAL BLOCK

APPLICATION TAGフィールド内の対応するビットを比較することによる検証が有効化される。

制御モードページ(SPC-3を参照)のATOビットが1であり、LOGICAL BLOCK APPLICATION TAG

フィールドの検証が無効である場合(5.25の表63を参照)、もしくはATOビットに0が設定され

ている場合、LOGICAL BLOCK APPLICATION TAG MASKフィールドと、EXPECTED LOGICAL BLOCK

APPLICATION TAGフィールドは無視されなければならない。

5.33 WRITE LONG(10)コマンド

WRITE LONG(10)コマンド(表72を参照)は、デバイスサーバに対して、単一の論理ブロック

のデータをData-Outバッファから転送し、それらをメディアに書き込むよう要求する。書き込ま

れるデータはREAD LONG(10)コマンド(5.14を参照)で返されるデータと同一の長さでなけれ

ばならず、かつ、同一の順番でなければならない。デバイスサーバは論理ブロックをメディアに

書き込まなければならず、かつ、論理ブロックが実際にメディアに書き込まれるまで GOODステー

タスを返してはならない。

表72 WRITE LONG(10)コマンド

LOGICAL BLOCK ADDRESSフィールドの定義については、PRE-FETCH(10)コマンド(5.3を参照)

を参照のこと。

BYTE TRANSFER LENGTHフィールドは、デバイスサーバがData-Outバッファから転送し、指定さ

れた論理ブロックに書き込まなければならないデータのバイト長を指定する。BYTE TRANSFER

LENGTHフィールドに0でない値が指定され、かつ、READ LONGコマンドでデバイスサーバが返す

データ長と一致しない場合は、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、セ

ンスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了しなければなら

ない。センスデータ(4.13と SPC-3を参照)において、ILIと VALIDビットには1が設定されなけ

ればならず、INFORMATIONフィールドには、要求されたバイト長から実際のバイト長を引いた差

(すなわち、残留数)を設定しなければならない。負数は2の補数で示されなければならない。

BYTE TRANSFER LENGTHフィールドに0が設定されていた場合は、データが書き込まれてはならな

いことを指定する。この状態はエラーと見なされてはならない。

5.34 WRITE LONG(16)コマンド

WRITE LONG(16)コマンド(表73を参照)は、デバイスサーバに対して、単一の論理ブロック

のデータをData-Outバッファから転送し、それらをメディアに書き込むよう要求する。書き込ま

れるデータはREAD LONG(16)コマンド(5.15を参照)で返されるデータと同一の長さでなけれ

ばならず、かつ、同一の順番でなければならない。デバイスサーバは論理ブロックをメディアに

書き込まなければならず、かつ、論理ブロックが実際にメディアに書き込まれるまで GOODステー

タスを返してはならない。このコマンドは、SERVICE ACTION OUTコマンドのサービスアクション

100

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 3Fh)

コントロール( CONTROL)

(LSB)

バイト転送長( BYTE TRANSFER LENGTH)

(MSB)

廃止済み

(MSB)

(LSB)

予約済み

予約済み6

7

8

9

Page 101: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

として実装される(A.2を参照)。

表73 WRITE LONG(16)コマンド

本コマンドのフィールドの定義については、WRITE LONG(10)コマンド(5.33を参照)を参照

のこと。ソ

5.35 WRITE SAME(10)コマンド

WRITE SAME(10)コマンド(表74を参照)は、デバイスサーバに対して、単一の論理ブロック

をData-Outバッファから転送し、LBDATAビットとPBDATAビットに基づく変更を行い、指定され

た論理ブロックアドレスの範囲に対して、当該の論理ブロックの内容を書き込むよう要求する。

各論理ブロックにはユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに基

づき、保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

注意 22:本コマンドは、検証作業の前処理やその他の初期化処理により、全てのデータを送信

する必要はないが、メディアの広い領域に対して書き込みを行わなければならない場合に利用す

ることが可能である。

訳注ソ SBC-2には WRITE LONG(16)コマンドのCORRCTビットの説明が記載されていない。かつ、SBC-3の Revision 0ではCORRCT

ビット自体が削除され、バイト14全体が予約済みとなっている。

101

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

9論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 9Fh)

コントロール( CONTROL)

(LSB)

バイト転送長( BYTE TRANSFER LENGTH)

(MSB)

(MSB)

(LSB)

予約済み

予約済み10

サービスアクション( SERVICE ACTION)( 11h)

予約済み

11

12

13

14

15

CORRCT

Page 102: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表74 WRITE SAME(10)コマンド

WRPROTECTフィールドの定義については WRITE(10)コマンド(5.25を参照)を参照のこと。

LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)を

参照のこと。GROUP NUMBERフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)

と4.17を参照のこと。

表75に LBDATAビットとPBDATAビットの定義を示す。

表75 LBDATAビットとPBDATAビット

LBDATA PBDATA 説明

0 0 デバイスサーバは、Data-Outバッファから受信した単一ブロックのユーザデータを、

変更することなく各論理ブロックに書き込まなければならない。

メディアが、保護情報を使用するようにフォーマットされていた場合は下記に従う。

a) Data-Outバッファから受信した単一ブロックのデータに存在する LOGICAL

BLOCK REFERENCE TAGフィールドは、メディアに書き込まれる最初のブロック

内の LOGICAL BLOCK REFERENCE TAGフィールドに設定されなければならない。

後続の論理ブロックにおいては、デバイスサーバは LOGICAL BLOCK REFERENCE

TAGフィールドに対して、前の論理ブロックに存在する LOGICAL BLOCK

REFERENCE TAGフィールドの値に1を加算した値を設定しなければならない。

b) 制御モードページ(SPC-3を参照)のATOビットに1が設定されていた場合、

単一ブロックで受信したデータ内の論理ブロックアプリケーションタグは、

各論理ブロックの LOGICAL BLOCK APPLICATION TAGフィールドに設定されな

ければならない。ATOビットに0が設定されていた場合は、デバイスサーバは

各論理ブロックの LOGICAL BLOCK APPLICATION TAGフィールドに任意の値を

書き込むことが可能である。

c) Data-Outバッファから単一ブロックで受信したデータ内のDATA BLOCK GUARD

フィールドの値は、各論理ブロックのDATA BLOCK GUARDフィールドに設定さ

れなければならない。

0 1a デバイスサーバは、Data-Outバッファから各物理セクタに受信したブロックの先頭 8

バイトを、物理セクタフォーマットを用いて書き込まれるセクタの物理アドレスに置

換しなければならない(5.2.2.4.5を参照)。

1a 0 デバイスサーバはData-Outバッファから受信したブロックの先頭 4バイトを、書き

込まれるブロックの LBAの下位 4バイトに、末尾に最下位バイトが配置されるように

置換しなければならない(例えば、LBAが 77665544_33221100hの場合、先頭が33h、

末尾が00hとなるように33221100hが書き込まれなければならない)。

1 1 デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーが

102

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 41h)

コントロール( CONTROL)

(LSB)

ブロック数( NUMBER OF BLOCKES)

(MSB)

廃止済み

(MSB)

(LSB)

予約済み

予約済み6

7

8

9

WRPROTECT PBDATA LBDATA

グループ番号(GROUP NUMBER)

Page 103: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了しなければなら

ない。

(a)メディアが保護情報を使用するようにフォーマットされている場合、書き込まれる各論理ブ

ロックの保護情報にはデフォルト値のFFFFFFFF_FFFFFFFFhが書き込まれなければならない。

NUMBER OF BLOCKフィールドは、LOGICAL BLOCK ADDRESSフィールドで指定された論理ブロック

から開始される、書き込まれるべき連続した論理ブロックの個数を指定する。NUMBER OF BLOCKS

フィールドに0が設定された場合、デバイスサーバは、LOGICAL BLOCK ADDRESSフィールドで指定

された論理ブロックからメディア末尾に存在する論理ブロックまでの、全ての論理ブロックに対

して書き込むことを指定する。論理ブロックアドレスとブロック数の合計値がメディアの容量を

超えた場合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーが

ILLEGAL REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しなければ

ならない。

5.36 WRITE SAME(16)コマンド

WRITE SAME(16)コマンド(表76を参照)は、デバイスサーバに対して、単一の論理ブロック

をData-Outバッファから転送し、LBDATAビットとPBDATAビットに基づく変更を行い、指定され

た論理ブロックアドレスの範囲に対して、当該の論理ブロックの内容を書き込むよう要求する。

各論理ブロックにはユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに基

づき、保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表76 WRITE SAME(16)コマンド

本コマンドのフィールドの定義については、WRITE SAME(10)コマンド(5.35を参照)を参照

のこと。

5.37 WRITE SAME(32)コマンド

WRITE SAME(32)コマンド(表77を参照)は、デバイスサーバに対して、単一の論理ブロック

をData-Outバッファから転送し、LBDATAビットとPBDATAビットに基づく変更を行い、指定され

た論理ブロックアドレスの範囲に対して、当該の論理ブロックの内容を書き込むよう要求する。

各論理ブロックにはユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに基

づき、保護情報が含まれる可能性がある。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに0が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

103

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

9論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 93h)

コントロール( CONTROL)

(LSB)

ブロック数( NUMBER OF BLOCKES)

(MSB)

予約済み

(MSB)

(LSB)

予約済み

予約済み

10

WRPROTECT PBDATA LBDATA

グループ番号(GROUP NUMBER)

13

14

15

Page 104: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

RTO_ENビットに1が設定されていた場合、デバイスサーバは本コマンドを実行することが可能で

ある。

表77 WRITE SAME(32)コマンド

GROUP NUMBERフィールド、WRPROTECTフィールド、PBDATAビット、LBDATAビット、LOGICAL

BLOCK ADDRESSフィールド、NUMBER OF BLOCKSフィールドの定義については、WRITE SAME(10)

コマンド(5.35を参照)を参照のこと。

LOGICAL BLOCK REFERENCE TAGフィールドの検証が有効な場合(5.25の表63を参照)、

EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAGフィールドには、LBAに基づく値の代わりに、

本コマンドでアクセスされる最初の論理ブロックに存在する保護情報内の、LOGICAL BLOCK

REFERENCE TAGフィールドに格納されているものと予測される値が格納される(4.16.2を参照)。

制御モードページ(SPC-3を参照)のATOビットが1であり、LOGICAL BLOCK APPLICATION TAG

フィールドの検証が有効である場合(5.25の表63を参照)、LOGICAL BLOCK APPLICATION TAG

MASKフィールドには、本コマンドでアクセスされる各論理ブロック内の保護情報において、

LOGICAL BLOCK APPLICATION TAGフィールドの検証を有効化するためのビットマスクが格納される。

LOGICAL BLOCK APPLICATION TAG MASKフィールド内のビットに1が設定された場合、EXPECTED

LOGICAL BLOCK APPLICATION TAGフィールド内の対応するビットと、保護情報内の LOGICAL BLOCK

APPLICATION TAGフィールド内の対応するビットとの検証が有効化される。

制御モードページ(SPC-3を参照)のATOビットが1であり、LOGICAL BLOCK APPLICATION TAG

フィールドの検証が無効である場合(5.25の表63を参照)、もしくはATOビットに0が設定され

104

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 000Dh)(MSB)

(LSB)

予約済みLBDATAWRPROTECT

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予期される初期論理ブロック参照タグ

( EXPECTED INITIAL LOGICAL BLOCK REFERENCE TAG)

予期される論理ブロックアプリケーションタグ

( EXPECTED LOGICAL BLOCK APPLICATION TAG)

論理ブロックアプリケーションタグマスク

(LOGICAL BLOCK APPLICATION TAG MASK)

ブロック数( NUMBER OF BLOCKS)

(MSB)

(MSB)

(MSB)

(MSB)

(MSB)

(LSB)

(LSB)

(LSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

23

24

25

26

27

28

31

予約済み PBDATA

Page 105: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ている場合、LOGICAL BLOCK APPLICATION TAG MASKフィールドと、EXPECTED LOGICAL BLOCK

APPLICATION TAGフィールドは無視されなければならない。

5.38 XDREAD(10)コマンド

XDREAD(10)コマンド(表78を参照)は、デバイスツに対して、XDWRITEコマンド(5.40と

5.41を参照)により生成されたXORデータをData-Inバッファに転送するよう要求する。XORデー

タにはユーザデータが含まれ、XORPINFOビットとメディアのフォーマットに基づき、保護情報が

含まれる可能性がある。

表78 XDREAD(10)コマンド

GROUP NUMBERフィールドの定義については、PRE-FETCH(10)コマンド(5.3を参照)を参照の

こと。

XOR保護情報(XOR protection information:XORPINFO)ビットに0が設定されていた場合、デ

バイスサーバは保護情報の検証ないし転送を行ってはならない。

XORPINFOビットに1が設定され、デバイスサーバが保護情報をサポートし、メディアが保護情

報を使用するようフォーマットされていた場合、デバイスサーバは保護情報を転送しなければな

らないが、保護情報フィールドに対するいかなる検証も行ってはならない。

XORPINFOビットに1が設定され、 デバイスサーバは保護情報をサポートし、メディアが保護情

報を使用するようフォーマットされていない場合、デバイスサーバはコマンドを、ステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了しなければならない。

XORPINFOビットに1が設定され、 デバイスサーバが保護情報をサポートしない場合、デバイス

サーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加セン

スコードがINVALID FIELD IN CDBで終了するべきである。

転送されるXORデータは LOGICAL BLOCK ADDRESSフィールドとTRANSFER LENGTHフィールドによ

り識別される。LOGICAL BLOCK ADDRESSフィールドとTRANSFER LENGTHフィールドは、先行する

XDWRITEコマンドで指定された値と同一であるか、あるいはサブセットでなければならない。該当

するものが見つからなかった場合、デバイスサーバはコマンドを、ステータスがCHECK

CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了し

なければならない。TRANSFER LENGTHフィールドは、ブロック制限VPDページ(6.4.2を参照)内

の MAXIMUM TRANSFER LENGTHフィールドによる制限を受ける。

訳注ツ XDREAD(10)とXDREAD(32)だけは他のコマンドとは異なり、指示する対象がデバイスサーバではなく「デバイス」と記載さ

れている。4.14の記載から判断しても、強いてデバイスサーバではなくデバイスとする根拠はなさそうにも思われるが、ここ

では原文に従っている。

105

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 52h)

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

XORPINFO

(MSB)

(LSB)

予約済み6

7

8

9

グループ番号(GROUP NUMBER)

予約済み

Page 106: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

5.39 XDREAD(32)コマンド

XDREAD(32)コマンド(表79を参照)は、デバイスに対して、XDWRITEコマンド(5.40と 5.41

を参照)により生成されたXORデータをData-Inバッファに転送するよう要求する。XORデータに

はユーザデータが含まれ、XORPINFOビットとメディアのフォーマットに基づき、保護情報が含ま

れる可能性がある。

表79 XDREAD(32)コマンド

本コマンドのフィールドの定義については、XDREAD(10)コマンド(5.38を参照)とSPC-3を

参照のこと。

5.40 XDWRITE(10)コマンド

XDWRITE(10)コマンド(表80を参照)は、デバイスサーバに対して下記を要求する。

1. 指定された論理ブロックを読み込む。

2. Data-Outバッファから論理ブロックを転送する。

3. Data-Outバッファから転送された論理ブロックと、読み込まれた論理ブロックの間でXOR

操作を実行し、結果のXORデータをバッファに格納する。

4. DISABLE WRITEビットに0が設定されている場合、Data-Outバッファから転送された論理ブ

ロックを書き込む。

各論理ブロックにはユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに

基づき、保護情報が含まれる可能性がある。結果のXORデータは4.14.4の規定に従い保持されな

ければならない。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

106

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 0003h)(MSB)

(LSB)

XORPINFO

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予約済み

転送長( TRANSFER LENGTH)

(MSB)

(MSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

27

28

31

予約済み

Page 107: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表80 XDWRITE(10)コマンド

WRPROTECTフィールド、FUAビット、FUA_NVビットの定義については WRITE(10)コマンド

(5.25を参照)を参照のこと。DPOビットの定義についてはREAD(10)コマンド(5.6を参照)

を参照のこと。LOGICAL BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド

(5.3を参照)を参照のこと。GROUP NUMBERフィールドの定義についてはPRE-FETCH(10)コマン

ド(5.3を参照)と4.17を参照のこと。

DISABLE WRITEビットに0が設定された場合、Data-Outバッファから転送されたデータはXOR操

作の完了後にメディアに書き込まれなければならないことを指定する。DISABLE WRITEビットに1

が設定された場合、データはメディアに書き込まれてはならないことを指定する。

TRANSFER LENGTHフィールドは、メディアから読み込まれ、Data-Outバッファから転送され、

XOR操作を行いバッファに格納される対象となる、LOGICAL BLOCK ADDRESSフィールドで指定され

た論理ブロックから始まる、連続した論理ブロックの個数を指定する。論理ブロックアドレスと

転送長の合計値がメディアの容量を超えた場合は、デバイスサーバはコマンドを、ステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS

OUT OF RANGEで終了しなければならない。TRANSFER LENGTHフィールドは、ブロック制限VPD

ページ(6.4.2を参照)内の MAXIMUM TRANSFER LENGTHフィールドによる制約を受ける。

結果のXORデータは、開始位置となる LOGICAL BLOCK ADDRESSフィールドとTRANSFER LENGTH

フィールドが一致する、もしくは本コマンドの LOGICAL BLOCK ADDRESSフィールドとTRANSFER

LENGTHフィールドのサブセットとなる値を設定した、XDREADコマンド(5.38と 5.39を参照)に

より取得される。

5.41 XDWRITE(32)コマンド

XDWRITE(32)コマンド(表81を参照)は、デバイスサーバに対して下記を要求する。

1. 指定された論理ブロックを読み込む。

2. Data-Outバッファから論理ブロックを転送する。

3. Data-Outバッファから転送された論理ブロックと、読み込まれた論理ブロックとの間で

XOR操作を実行し、結果のXORデータをバッファに格納する。

4. DISABLE WRITEビットに0が設定されている場合、Data-Outバッファから転送された論理ブ

ロックを書き込む。

各論理ブロックにはユーザデータが含まれ、WRPROTECTフィールドとメディアのフォーマットに

基づき、保護情報が含まれる可能性がある。結果のXORデータは4.14.4の規定に従い保持されな

107

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 50h)

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

予約済み

(MSB)

(LSB)

DPO

予約済み6

7

8

9

WRPROTECT書き込み無効(DISABLE WRITE) FUA_NV

グループ番号(GROUP NUMBER)

FUA

Page 108: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ければならない。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表81 XDWRITE(32)コマンド

本コマンドのフィールドの定義についてはXDWRITE(10)コマンド(5.40を参照)とSPC-3を参

照のこと。

5.42 XDWRITEREAD(10)コマンド

XDWRITEREAD(10)コマンド(表82を参照)は、デバイスサーバに対して下記を要求する。

1. 指定された論理ブロックを読み込む。

2. Data-Outバッファから論理ブロックを転送する。

3. Data-Outバッファから転送された論理ブロックと、読み込まれた論理ブロックとの間で

XOR操作を行い、結果のXORデータをバッファに格納する。

4. DISABLE WRITEビットに0が設定されていた場合は、Data-Outバッファから転送された論理

ブロックを書き込む。

5. 結果のXORデータをData-Inバッファに転送する。

各論理ブロックにはユーザデータが含まれ、WRPROTECTフィールドとXORPINFOビットおよびメ

ディアのフォーマットに基づき、保護情報が含まれる可能性がある。本コマンドは GROUP NUMBER

フィールドと LOGICAL BLOCK ADDRESSフィールドとTRANSFER LENGTHフィールドに同一の値を設

定した、XDWRITE(10)コマンド(5.40を参照)と後続するXDREAD(10)コマンド(5.38を参

照)に対応する。本コマンドは、転送プロトコルが双方向コマンドをサポートする場合のみ利用

108

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 0004h)(MSB)

(LSB)

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予約済み

転送長( TRANSFER LENGTH)

(MSB)

(MSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

27

28

31

予約済みDPO 書き込み無効(DISABLE WRITE)

FUA_NVFUAWRPROTECT

Page 109: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

可能である。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

表82 XDWRITEREAD(10)コマンド

本コマンドのフィールドの定義については、XDWRITE(10)コマンド(5.40を参照)と

XDREAD(10)コマンド(5.38を参照)を参照のこと。

5.43 XDWRITEREAD(32)コマンド

XDWRITEREAD(32)コマンド(表83を参照)は、デバイスサーバに対して下記を要求する。

1. 指定された論理ブロックを読み込む。

2. Data-Outバッファから論理ブロックを転送する。

3. Data-Outバッファから転送された論理ブロックと、読み込まれた論理ブロックとの間で

XOR操作を行い、結果のXORデータをバッファに格納する。

4. DISABLE WRITEビットに0が設定されていた場合は、Data-Outバッファから転送された論理

ブロックを書き込む。

5. 結果のXORデータをData-Inバッファに転送する。

各論理ブロックにはユーザデータが含まれ、WRPROTECTフィールドとXORPINFOビットおよびメ

ディアのフォーマットに基づき、保護情報が含まれる可能性がある。本コマンドは GROUP NUMBER

フィールドと LOGICAL BLOCK ADDRESSフィールドとTRANSFER LENGTHフィールドに同一の値を設

定した、XDWRITE(32)コマンド(5.41を参照)と後続するXDREAD(32)コマンド(5.39を参

照)に対応する。本コマンドは、転送プロトコルが双方向コマンドをサポートする場合のみ利用

可能である。

READ CAPACITY(16)パラメタデータ(5.11を参照)のRTO_ENビットに1が設定されている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しなければならない。

109

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 53h)

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

XORPINFO

(MSB)

(LSB)

DPO

予約済み6

7

8

9

WRPROTECT書き込み無効(DISABLE WRITE) FUA_NV

グループ番号(GROUP NUMBER)

FUA

Page 110: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表83 XDWRITEREAD(32)コマンド

本コマンドのフィールドの定義については、XDWRITEREAD(10)コマンド(5.42を参照)とSPC-

3を参照のこと。

5.44 XPWRITE(10)コマンド

XPWRITE(10)コマンド(表84を参照)はデバイスサーバに対して下記を要求する。

1. 指定された論理ブロックを読み込む。

2. Data-Outバッファから論理ブロックを転送する。

3. Data-Outバッファから転送された論理ブロックと、読み込まれた論理ブロックとの間で

XOR操作を行い、結果のXORデータを書き込む。

各論理ブロックにはユーザデータが含まれ、XORPINFOビットとメディアのフォーマットに基づ

き、保護情報が含まれる可能性がある。

110

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 0007h)(MSB)

(LSB)

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予約済み

転送長( TRANSFER LENGTH)

(MSB)

(MSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

27

28

31

XORPINFODPO 書き込み無効(DISABLE WRITE)

FUA_NVFUAWRPROTECT

Page 111: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表84 XPWRITE(10)コマンド

DPOビットの定義についてはREAD(10)コマンド(5.6を参照)を参照のこと。FUAビット、

FUA_NVビットの定義については WRITE(10)コマンド(5.25を参照)を参照のこと。LOGICAL

BLOCK ADDRESSフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)を参照のこ

と。GROUP NUMBERフィールドの定義についてはPRE-FETCH(10)コマンド(5.3を参照)と4.17

を参照のこと。

XOR保護情報(XOR protection information:XORPINFO)ビットに0が設定され、 デバイス

サーバが保護情報をサポートし、メディアが保護情報を使用するようフォーマットされている場

合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードがINVALID FIELD IN CDBで終了しなければならない。

XORPINFOビットに1が設定され、デバイスサーバが保護情報をサポートし、メディアが保護情

報を使用するようフォーマットされている場合、デバイスサーバは、Data-Outバッファから転送

されたユーザデータおよび保護情報と、読み込まれたユーザデータおよび保護情報の間でXOR操

作を行い、結果のXORデータを書き込まなければならない。デバイスサーバは、保護情報のいか

なるフィールドについても検証を行ってはならない。

XORPINFOビットに1が設定され、デバイスサーバが保護情報をサポートし、メディアが保護情

報を使用するようフォーマットされていない場合、デバイスサーバはコマンドを、ステータスが

CHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで

終了しなければならない。

XORPINFOビットに1が設定され、デバイスサーバが保護情報をサポートしない場合、デバイス

サーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加セン

スコードがINVALID FIELD IN CDBで終了するべきである。

TRANSFER LENGTHフィールドは、LOGICAL BLOCK ADDRESSフィールドで指定される論理ブロック

から開始される、連続した論理ブロックの個数を指定する。これらの論理ブロックは、メディア

から読み込まれ、Data-Outバッファから転送された論理ブロックとのXOR操作が行われ、メディ

アに書き込まれる対象となる。論理ブロックアドレスと転送長の合計値がメディアの容量を超え

る場合、デバイスサーバはコマンドを、ステータスがCHECK CONDITION、センスキーがILLEGAL

REQUEST、追加センスコードが LOGICAL BLOCK ADDRESS OUT OF RANGEで終了しなければならない。

TRANSFER LENGTHフィールドは、ブロック制限VPDページ(6.4.2を参照)の MAXIMUM TRANSFER

LENGTHフィールドによる制約を受ける。

5.45 XPWRITE(32)コマンド

XPWRITE(32)コマンド(表85を参照)はデバイスサーバに対して下記を要求する。

1. 指定された論理ブロックを読み込む。

111

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

操作コード( OPERATION CODE)( 51h)

コントロール( CONTROL)

(LSB)

転送長( TRANSFER LENGTH)

(MSB)

XORPINFO

(MSB)

(LSB)

DPO

予約済み6

7

8

9

予約済み FUA_NV

グループ番号(GROUP NUMBER)

FUA 予約済み

Page 112: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

2. Data-Outバッファから論理ブロックを転送する。

3. Data-Outバッファから転送された論理ブロックと、読み込まれた論理ブロックとの間で

XOR操作を行い、結果のXORデータを書き込む。

各論理ブロックにはユーザデータが含まれ、XORPINFOビットとメディアのフォーマットに基づ

き、保護情報が含まれる可能性がある。

表85 XPWRITE(32)コマンド

本コマンドのフィールドの定義については、XPWRITE(10)コマンド(5.44を参照)とSPC-3を

参照のこと。

112

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

5予約済み

操作コード( OPERATION CODE)( 7Fh)

グループ番号(GROUP NUMBER)

コントロール( CONTROL)

予約済み

追加CDB長( ADDITIONAL CDB LENGTH)( 18h)

サービスアクション( SERVICE ACTION)( 0006h)(MSB)

(LSB)

予約済み

論理ブロックアドレス(LOGICAL BLOCK ADDRESS)

予約済み

転送長( TRANSFER LENGTH)

(MSB)

(MSB)

(LSB)

(LSB)

6

7

8

9

10

11

12

19

20

27

28

31

XORPINFODPO FUA_NVFUA予約済み 予約済み

Page 113: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

6 直接アクセスブロックデバイスにおけるパラメタ 6.1 自己診断パラメタ 6.1.1 自己診断パラメタの概要

本節では、直接アクセスブロックデバイスで使用される、自己診断パラメタにおける記述子と

ページについて規定する。直接アクセスブロックデバイスにおける自己診断ページコードは表86

で規定される。

表86 自己診断ページコード

自己診断ページコード 説明 参照

00h サポートされる自己診断ページ SPC-3

01h~2Fh SCSIエンクロージャ自己診断ページ SES-2

30h~3Fh SPC-3で割り当てられた自己診断ページ SPC-3

40h アドレス変換出力自己診断ページ 6.1.2

アドレス変換入力自己診断ページ 6.1.3

41h 廃止済み(デバイスステータス自己診断ページ)

42h~7Fh 本標準で予約済み

80h~FFh ベンダ固有自己診断ページ

6.1.2 アドレス変換出力自己診断ページ

アドレス変換出力自己診断ページは、アプリケーションクライアントに対して、FORMAT UNITコ

マンド(5.2.2.4を参照)でサポートされるフォーマット(すなわち、短縮ブロックフォーマット

アドレス、拡張ブロックフォーマットアドレス、物理セクタフォーマットアドレス、インデクス

先頭バイトフォーマットアドレス)の内の、ある1種類のフォーマットで示されたアドレスを、

別の種類のフォーマットに変換することを可能とする。変換されるアドレスはSEND DIAGNOSTIC

コマンドによりデバイスサーバに送信され、結果はRECEIVE DIAGNOSTIC RESULTSコマンドにより

アプリケーションクライアントに返される。

表87は、SEND DIAGNOSTICコマンドで送信される、アドレス変換出力自己診断ページのフォー

マットを示す。変換されたアドレスは、アドレス変換入力自己診断ページ(6.1.3を参照)により

返される。

表87 アドレス変換出力自己診断ページ

SUPPLIED FORMATフィールドは、ADDRESS TO TRANSLATEフィールドのフォーマットを指定する。

113

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3ページ長( PAGE LENGTH)( 000Ah)

ページコード( PAGE CODE)( 40h)

変換対象アドレス( ADDRESS TO TRANSLATE)

(LSB)

(MSB)

(MSB)

(LSB)

予約済み4

5

6

13

予約済み

予約済み

変換元フォーマット( SUPPLIED FORMAT)

変換先フォーマット( TRANSLATE FORMAT)

Page 114: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

本フィールドにおける正しい値はFORMAT UNITコマンド(5.2を参照)のDEFECT LIST FORMAT

フィールドで規定される。デバイスサーバが要求されたフォーマットをサポートしていない場合、

デバイスサーバはSEND DIAGNOSTICコマンドを、ステータスがCHECK CONDITION、センスキーが

ILLEGAL REQUEST、追加センスコードがINVALID FIELD IN PARAMETER LISTで終了しなければなら

ない。

TRANSLATE FORMATフィールドは、デバイスサーバが、アドレス変換の結果において使用しなけ

ればならないフォーマットを指定する。本フィールドにおける正しい値はFORMAT UNITコマンド

のDEFECT LIST FORMATフィールドで規定される。デバイスサーバが要求されたフォーマットをサ

ポートしていない場合、デバイスサーバはSEND DIAGNOSTICコマンドを、ステータスがCHECK

CONDITION、センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN PARAMETER

LISTで終了しなければならない。

ADDRESS TO TRANSLATEフィールドには、アプリケーションクライアントがデバイスサーバに対

して変換を要求する対象となる、単一のアドレス記述子が格納される。本フィールドのフォー

マットはSUPPLIED FORMATフィールドに依存する。このフォーマットは5.2.2.4で規定される。

短縮ブロックフォーマットアドレス記述子が指定された場合、ADDRESS TO TRANSLATEフィールド

の先頭 4バイトには、短縮ブロックフォーマットアドレス記述子が格納されなければならず、末

尾 4バイトには00000000hが格納されなければならない。

6.1.3 アドレス変換入力自己診断ページ

表88は、SEND DIAGNOSTICコマンドでアドレス変換出力自己診断ページ(6.1.2を参照)が送信

された後に、RECEIVE DIAGNOSTIC RESULTSコマンドで取得されるアドレス変換入力自己診断ペー

ジのフォーマットを規定する。アドレス変換出力自己診断ページが以前に処理されていなかった

場合には、本自己診断ページを要求するRECEIVE DIAGNOSTIC RESULTSコマンドの結果はベンダ固

有である。

表88 アドレス変換入力自己診断ページ

アドレス変換入力自己診断ページには、ページコードの長さを指定する4バイトのページヘッダ

が存在し、変換後アドレスを記述する2バイトが後続し、かつ、0ないし複数バイトの変換された

アドレスが後続する。

PAGE LENGTHフィールドには、後続するパラメタのバイト数を指定する。

114

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3ページ長( PAGE LENGTH)( n-3)

ページコード( PAGE CODE)( 40h)

変換後アドレス

(LSB)

(MSB)

予約済み4

5

6

予約済み

予約済み

変換元フォーマット( SUPPLIED FORMAT)

変換先フォーマット( TRANSLATE FORMAT)RAREA ALTSEC ALTTRK

変換後アドレス1( TRANSLATED ADDRESS 1)

変換後アドレス x( TRANSLATED ADDRESS x)(必要な場合)

(MSB)

(LSB)

(LSB)

(MSB)

13

n-7

n

Page 115: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

SUPPLIED FORMATフィールドには、前に送信されたアドレス変換出力自己診断ページ(6.1.2を

参照)のSUPPLIED FORMATフィールドで指定された値が格納される。

予約領域(reserved ares:RAREA)ビットに0が設定された場合、変換後アドレスがメディア上

の予約された領域を指し示していないことを示す。RAREAビットに1が設定された場合、変換後ア

ドレスの一部もしくは全てが、メディア上の予約された領域(例えば、速度調整ギャップ、代替

セクタ、ベンダ予約領域)を指していることを示す。変換後アドレスの全てが予約領域を指して

いる場合、デバイスサーバは変換後アドレスを返さない可能性がある。

代替セクタ(alternate sector:ALTSEC)ビットに0が設定された場合、変換後アドレスにメ

ディアの代替セクタに割り当てられた部分が存在しない、もしくはデバイスサーバがその情報を

特定することができないことを示す。ALTSECビットに1が設定された場合、変換後アドレスがメ

ディアの代替セクタに、物理的に割り当てられていることを示す。デバイスサーバが、変換後ア

ドレスの一部ないし全てが代替セクタに割り当てられているか否か確定できない場合には、この

ビットには0が設定されなければならない。

代替トラック(alternate track:ALTTRK)ビットに0が設定された場合、変換後アドレスに、

メディアの代替トラックに割り当てられた部分が存在しないことを示す。ALTTRKビットに1が設

定された場合、変換後アドレスの一部ないし全てがメディアの代替トラックに割り当てられてい

るか、あるいはデバイスサーバが、変換後アドレスの一部ないし全てのメディアの代替トラック

に割り当てられているか否か特定できないことを示す。

TRANSLATE FORMATフィールドには、前に送信されたアドレス変換出力自己診断ページ(6.1.2を

参照)内のTRANSLATE FORMATフィールドの値が設定される。

TRANSLATED ADDRESSフィールドには、以前にアプリケーションクライアントから送信されたア

ドレス変換出力自己診断ページにより提供されたアドレスを、デバイスサーバが変換した結果の

アドレスが格納される。各フィールドは、TRANSLATE FORMATフィールドで指定されたフォーマッ

トに従わなければならない。フォーマットについては5.2.2.4で規定される。短縮ブロック

フォーマットアドレス記述子が指定された場合、TRANSLATED ADDRESSフィールドの先頭 4バイト

に短縮ブロックフォーマットアドレス記述子が格納されなければならず、末尾 4バイトには

00000000hが格納されなければならない。

返されるデータが短縮ブロックフォーマット、拡張ブロックフォーマット、物理セクタフォー

マットのいずれかであり、以前に送信されたアドレス変換出力自己診断ページのADDRESS TO

TRANSLATEフィールドが変換後に複数のアドレスに対応する(例えば、複数の物理セクタが単一の

論理ブロックに存在する、複数の論理ブロックが単一の物理セクタに存在する)場合、デバイス

サーバは、変換前のアドレスで指定された領域に含まれる、可能性のある全てのアドレスを返さ

なければならない。返されるアドレスがインデクス先頭バイトフォーマットの場合、デバイス

サーバは、以前に送信されたアドレス変換出力自己診断ページのADDRESS TO TRANSLATEフィール

ドにより指定された領域に含まれる、可能性のある変換されたアドレス値のペアを返さなければ

ならない。変換された値のペアが返される場合、最初の値は領域の開始位置を示し、2つ目の値は

領域の終端を示す。

6.2 ログパラメタ 6.2.1 ログパラメタの概要

本節では、直接アクセスブロックデバイスで使用される、ログパラメタの記述子とページを規

定する。ロギング操作の詳細な説明についてはSPC-3を参照のこと。直接アクセスブロックデバ

イスにおけるログページコードは表89に示される。

115

Page 116: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表89 ログページコード

ログページコード 説明 参照

00h サポートされるログページのログページ SPC-3

01h バッファオーバーラン/アンダーランログページ SPC-3

02h 書き込みエラーカウンタログページ SPC-3

03h 読み込みエラーカウンタログページ SPC-3

04h 予約済み

05h 検証エラーカウンタログページ SPC-3

06h 非メディアエラーログページ SPC-3

07h 最終 n個エラーイベントログページ SPC-3

08h フォーマットステータスログページ 6.2.2

09h 制限される(SPC-3を参照)

0Ah 制限される(SPC-3を参照)

0Bh 最終 n個遅延エラー/非同期イベントログページ SPC-3

0Ch 予約済み

0Dh 温度ログページ SPC-3

0Eh 開始-停止サイクルカウンタログページ SPC-3

0Fh アプリケーションクライアントログページ SPC-3

10h 自己診断結果ログページ SPC-3

11h~16h 予約済み

17h 不揮発性キャッシュログページ 6.2.3

18h プロトコル固有ポートログページ SPC-3

19h~2Eh 予約済み

2Fh 情報提供例外ログページ SPC-3

30h~3Eh ベンダ固有

3Fh 予約済み

6.2.2 フォーマットステータスログページ

フォーマットステータスログページ(ログページコード08h)は、直近に成功したFORMAT UNIT

コマンド(5.2を参照)が終了してからの、直接アクセスブロックデバイスのステータスを記録す

る。さらに、本ログページは、デバイスサーバにおける欠陥管理情報も提供する。

フォーマットステータスログページは、SPC-3で定義されるログページのフォーマットを使用す

る。

表90は、フォーマットステータスログページのパラメタコードを定義する。

116

Page 117: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表90 フォーマットステータスログページのパラメタコード

パラメタコード 説明

0000h フォーマットデータ出力

0001h 検証中の累積欠陥数

0002h フォーマット中に再配置された合計ブロック数

0003h 新規に再配置された合計ブロック数

0004h フォーマット後からの電源投入時間

0005h~7FFFh 予約済み

8000h~FFFFh ベンダ固有

各ログパラメタ(SPC-3を参照)のPARAMETER LENGTHフィールドには、PARAMETER VALUEフィー

ルドに対応する長さが格納され、かつ、ベンダ固有である。

イベント数は LOG SENSEコマンドの結果として返される。表90に示された各イベントカウント

のデフォルト値は0でなければならない。これらのフィールドに0以外の値を設定した LOG

SELECTを発行することにより、これらのイベントカウントを変更しようとすることは、エラーと

は見なされず、保存された値にいかなる影響も与えてはならない。

ログパラメタに関する情報が利用可能ではない場合、デバイスサーバは、全てのバイトにFFhを

設定した値を返さなければならない(例えば、PARAMETER LENGTHフィールドが02hに設定される

場合は、PARAMETER VALUEフィールドにはFFFFhが設定される)。最新のFORMAT UNITコマンドが

失敗していた場合、デバイスサーバは、各ログパラメタの各バイトにはFFhを設定した値を返さ

なければならない。

フォーマットデータ出力パラメタには、最新の成功したFORMAT UNITコマンドで送信された

FORMAT UNITパラメタリスト(5.2.2を参照)の全体が格納される。これには下記が含まれる。

a) パラメタリストヘッダ

b) 存在する場合には、初期化パターン記述子

c) 存在する場合には、欠陥リスト

検証中の累積欠陥数パラメタには、最新の成功したFORMAT UNITコマンドの処理において、検証

を実行した結果として検出された欠陥の個数が格納される。この数には、これらの検出され置換

された欠陥のみが含まれ、すでにPLISTや GLISTに含まれていた分は含まれない。検証パスが実

行されなかった場合には、GROWN DEFECTS DURING CERTIFICATIONネフィールドには0が設定されな

ければならない。

フォーマット中に再配置された合計ブロック数パラメタは、最新の成功したFORMAT UNITコマン

ドの実行中に、再配置が行われた論理ブロックの合計個数のカウンタである。

新規に再配置された合計ブロック数パラメタは、最新の成功したFORMAT UNITコマンドが完了し

てから、再配置が行われた論理ブロックの合計個数のカウンタである。

フォーマット後からの電源投入時間パラメタは、最新の成功したFORMAT UNITコマンドからの使

用時間(すなわち、電源状態によらず、電源が供給されていた時間)を分単位で表す符号無し整

数である。

訳注ネ 「GROWN DEFECTS DURING CERTIFICATIONフィールド」という名称はこれまでに定義されておらず、かつ、ここでしか出てこな

い。「検証中の累積欠陥数パラメタ」の原文が「Grown Defects During Certification parameter」であることから、パラメ

タコード0001h(検証中の累積欠陥数パラメタ)におけるPARAMETER VALUEフィールドを指しているものと推定される。

117

Page 118: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

FORMAT UNITコマンドの受信時に、デバイスサーバはフォーマットステータスログページ内の全

てのパラメタについて、それらの情報が利用可能ではない旨を設定するべきである。FORMAT UNIT

コマンドが完了した場合にのみ、デバイスサーバは影響を受けるフィールドを更新するべきであ

る。

PARAMETER CONTROLバイト(SPC-3を参照)内のターゲット保存無効(target save disable:

TSD)ビットは常に0を設定し、デバイスサーバが定期的に暗黙的な保存を行うことを示さなけれ

ばならない。

注意 23:リムーバブルメディアのデバイスサーバは、ベンダ固有の方法で、メディア上のベン

ダ固有の場所にログページの情報を保存することが可能である。

6.2.3 不揮発性キャッシュログページ

不揮発性キャッシュログページ(表91を参照)は、不揮発性キャッシュに対するバッテリバッ

クアップの状態を示す。

表91 不揮発性キャッシュログページ

表92にパラメタコードの定義を示す。

表92 不揮発性キャッシュログパラメタ

パラメタコード 説明

0000h 残り不揮発性維持時間

0001h 最大不揮発性維持時間

その他全て 予約済み

残り不揮発性維持時間パラメタは表93に示されるフォーマットに従う。

表93 残り不揮発性維持時間パラメタデータ

REMAINING NON-VOLATILE TIMEフィールドは表94で定義される。

118

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

3ページ長( PAGE LENGTH)( n-3)

ページコード( PAGE CODE)( 17h)

不揮発性キャッシュログパラメタ

(LSB)

(MSB)

4

n

予約済み

Bit

Byte7 6 5 4 3 2 1 0

0

1

3

パラメタ長( PARAMETER LENGTH)( 3h)

(LSB)

(MSB)

残り不揮発性維持時間( REMAINING NON-VOLATILE TIME)

Page 119: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表94 REMAINING NON-VOLATILE TIMEフィールド

値 説明

000000h 不揮発性キャッシュは、永続的ないし一時的に揮発性と

なっている(例えば、バッテリの充電が必要な場合)。

000001h 不揮発性キャッシュは、不明な時間だけ不揮発性が維持

されると予測される(例えば、バッテリのステータスが

不明な場合)。

000002h~FFFFFEh 不揮発性キャッシュは、指定された時間(分)だけ不揮

発性が維持されると予測される(例えば、ランダムアク

セスメモリがバッテリでバックアップされている)。

FFFFFFh 不揮発性キャッシュは永続的に不揮発である。

最大不揮発性維持時間パラメタは表95に示されるフォーマットに従う。

表95 最大不揮発性維持時間パラメタデータ

MAXIMUM NON-VOLATILE TIMEフィールドは表96で定義される。

表96 MAXIMUM NON-VOLATILE TIMEフィールド

値 説明

000000h 不揮発性キャッシュは揮発性である。

000001h 予約済み。

000002h~FFFFFEh 不揮発性キャッシュは、指定された推定時間(分)だけ

不揮発性を維持する能力がある。時間がバッテリに基づ

くものであった場合、バッテリの設計容量ではなく直近

に行われた最大充電時の容量に基づくべきである。

FFFFFFh 不揮発性キャッシュは永続的に不揮発である。

6.3 モードパラメタ 6.3.1 モードパラメタの概要

本節では、直接アクセスブロックデバイスで使用されるブロック記述子とモードページを規定

する。

モードパラメタヘッダを含むモードパラメタリストは、SPC-3で規定される。直接アクセスブ

ロックデバイスは0個ないし1つのモードパラメタブロック記述子をサポートする(すなわち、

ブロック記述子はメディア上の全ての論理ブロックで共有される)。

モードパラメタヘッダ(SPC-3を参照)内の MEDIUM TYPEフィールドには00hが設定されなけれ

ばならない。

直接アクセスブロックデバイスにおける、モードパラメタヘッダ(SPC-3を参照)内のDEVICE-

SPECIFIC PARAMETERフィールドは、表97のように定義される。

119

Bit

Byte7 6 5 4 3 2 1 0

0

1

3

パラメタ長( PARAMETER LENGTH)( 3h)

(LSB)

(MSB)

最大不揮発性維持時間(MAXIMUM NON-VOLATILE TIME)

Page 120: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表97 直接アクセスブロックデバイスにおけるDEVICE-SPECIFIC PARAMETERフィールド

MODE SELECTコマンドで使用された場合、書き込み保護(write protect:WP)ビットは定義さ

れない。

MODE SENSEコマンドで使用された場合で、WPビットに1が設定された場合は、メディアの書き

込み保護が有効であることを示す。WPビットに0が設定された場合は、メディアの書き込み保護

が有効ではないことを示す。制御モードページ(SPC-3を参照)のソフトウェア書き込み保護

(software write protect:SWP)ビットに1が設定された場合、WPビットには1が設定されなけ

ればならない。制御モードページのSWPビットが0に設定された場合、メディアの書き込み保護

が有効(例えば、本標準のスコープ対象外のメカニズムにより)であればWPビットには1が設定

されなければならず、メディアの書き込み保護が有効でなければ 0が設定されなければならない。

MODE SELECTコマンドで使用された場合、DPOFUAビットは予約済みとなる。

MODE SENSEコマンドで使用された場合で、DPOFUAビットに0が設定された場合、デバイスサー

バはDPOと FUAビットをサポートしないことを示す。MODE SENSEコマンドで使用された場合で、

DPOFUAビットに1が設定された場合は、デバイスサーバがDPOビットとFUAビットをサポートす

ることを示す(4.10を参照)。

表98に、直接アクセスブロックデバイスにおける、モードページコードとサブページコードを

示す。

表98 直接アクセスブロックデバイスにおけるモードページコード

モードページコード 説明 参照

00h ベンダ固有(ページフォーマットを要求しない)

00h~3Eh/FFh 全てのサブページを返す a SPC-3

01h 読み書きエラーリカバリモードページ 6.3.4

02h 切断-再接続モードページ SPC-3

03h 廃止済み(フォーマットデバイスモードページ)

04h 廃止済み(固定ディスクジオメトリモードページ)

05h 廃止済み(フレキシブルディスクモードページ)

06h 予約済み

07h 検証エラーリカバリモードページ 6.3.5

08h キャッシュモードページ 6.3.3

09h 廃止済み

0Ah/00h 制御モードページ SPC-3

0Ah/01h 制御拡張モードページ SPC-3

0Ah/02h~3Eh 予約済み

0Bh 廃止済み(サポートされるメディア種別モードページ)

0Ch 廃止済み(ノッチとパーティションモードページ)

0Dh 廃止済み

120

Bit

Byte7 6 5 4 3 2 1 0

予約済み予約済み DPOFUAWP

Page 121: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

0Eh~0Fh 予約済み

10h XOR制御モードページ 6.3.6

11h~13h 予約済み

14h エンクロージャサービス管理モードページ b SES-2

15h~17h 予約済み

18h プロトコル固有LUNモードページ SPC-3

19h プロトコル固有ポートモードページ SPC-3

1Ah 電源状態モードページ SPC-3

1Bh 予約済み

1Ch 情報提供例外制御モードページ SPC-3

1Dh~1Fh 予約済み

20h~3Eh ベンダ固有(ページフォーマットを要求しない)

3Fh/00h 全てのモードページを返す a SPC-3

3Fh/01h~3Eh 予約済み

3Fh/FFh 全てのモードページとサブページを返す a SPC-3

(a)MODE SENSEコマンドにおいてのみ有効。

(b)標準INQUIRYデータ(SPC-3を参照)のENCSERVビットに1が設定される場合にのみ有効。

6.3.2 モードパラメタブロック記述子 6.3.2.1 モードパラメタブロック記述子の概要

デバイスサーバがモードパラメタブロック記述子を返す場合、下記のレスポンスにおいて、

モードパラメタデータ内でshort LBAのモードパラメタブロック記述子(6.3.2.2を参照)を返さ

なければならない。

a) MODE SENSE(6)コマンド

b) LLBAAビットに0を設定した MODE SENSE(10)コマンド

デバイスサーバがモードパラメタブロック記述子を返し、かつブロック数がFFFFFFFFhを超える

場合、LLBAAビットに1を設定した MODE SENSE(10)コマンドの応答において、モードパラメタ

データ内でlong LBAのモードパラメタブロック記述子(6.3.2.3を参照)を返すことが可能であ

る。

アプリケーションクライアントがモードパラメタリストでモードパラメタブロック記述子を送

信する場合、MODE SELECT(6)コマンドでshort LBAのモードパラメタブロック記述子(6.3.2.2

を参照)を送信しなければならない。

アプリケーションクライアントがモードパラメタリストでモードパラメタブロック記述子を送

信する場合、MODE SELECT(10)コマンドでlong LBAのモードパラメタブロック記述子(6.3.2.2

を参照)を送信することが可能である。

モードパラメタブロック記述子のサポートはオプションである。デバイスサーバは、ブロック

記述子の値が変更された場合には、追加センスコードに MODE PARAMETERS CHANGEDを設定したユ

ニット警告状態(SPC-3と SAM-3を参照)を確立しなければならない。

121

Page 122: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

6.3.2.2 short LBAのモードパラメタブロック記述子

表99は、直接アクセスブロックデバイスにおいて、下記で使用されるブロック記述子を定義す

る。

a) MODE SELECT(6)と MODE SENSE(6)コマンド

b) モードパラメタヘッダ(SPC-3を参照)で LONGLBAビットに0が設定された、MODE

SELECT(10)と MODE SENSE(10)コマンド

表99 short LBAのモードパラメタブロック記述子

デバイスサーバは、最後に送信された MODE SELECTコマンドにおける、モードパラメタブロック

記述子内のNUMBER OF BLOCKSフィールドで指定されたブロック数を報告することにより、MODE

SENSEコマンド(SPC-3を参照)に応答しなければならない。モードパラメタブロック記述子が含

まれる MODE SELECTコマンドを受信していなかった場合には、現在のブロック数が返されなけれ

ばならない。論理ユニットの現在のフォーマットにおけるブロック数を調べるためには、アプリ

ケーションクライアントは MODE SELECTコマンドの代わりにREAD CAPACITYコマンド(5.11を参

照)を使用しなければならない。

MODE SENSEコマンドにおいて、デバイスサーバは、short LBAのモードパラメタブロック記述子

でブロック数を報告しないことを示すために、値 0を返すことが可能である。

MODE SENSEコマンドにおいて、論理ブロックの個数がNUMBER OF BLOCKSフィールドで指定可能

な最大値を超える場合には、デバイスサーバは値 FFFFFFFFhを返さなければならない。

論理ユニットが、MODE SELECTコマンド(SPC-3を参照)を用いてNUMBER OF BLOCKSフィールド

の値を変更することにより、容量を変更することをサポートしない場合、NUMBER OF BLOCKS

フィールドの値は無視される。デバイスが、NUMBER OF BLOCKSフィールドの値を変更することに

より、容量を変更することをサポートする場合、NUMBER OF BLOCKSフィールドは下記のように解

釈されなければならない。

a) NUMBER OF BLOCKSフィールドに0が設定された場合、論理ユニットはブロック長が変更さ

れていなければ、現在の容量を維持しなければならない。NUMBER OF BLOCKSフィールドに

0が設定され、BLOCK LENGTHフィールドの内容(すなわち、新規のブロック長)が現在の

ブロック長と異なる場合、論理ユニットは新しいブロック長が適用される時(すなわち、

FORMAT UNITコマンドが正常終了した後)に最大容量を設定しなければならない。

b) NUMBER OF BLOCKSフィールドが0より大きく、かつ最大容量より小さいかあるいは等しい

場合には、論理ユニットはブロック数の設定を行わなければならない。BLOCK LENGTH

フィールドの内容が現在のブロック長と等しい場合、論理ユニットはフォーマット不正と

なってはならない。この容量設定は電源サイクル、ハードリセット、論理ユニットリセッ

ト、I_Tネクサス喪失を通じて保存されなければならない。BLOCK LENGTHフィールドの内

容が現在のブロック長と等しい場合、この容量設定は MODE SELECTコマンドが正常終了し

た時に有効化されなければならない。BLOCK LENGTHフィールドの内容(すなわち、新規の

ブロック長)が現在のブロック長と等しくない場合、この容量設定は新規のブロック長が

適用される時(すなわち、FORMAT UNITコマンドが正常終了した時)に有効化されなければ

122

Bit

Byte7 6 5 4 3 2 1 0

0

3

4

ブロック数( NUMBER OF BLOCKS)

(LSB)

(MSB)ブロック長( BLOCK LENGTH)

予約済み

(MSB)

(LSB)

5

7

Page 123: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ならない。

c) NUMBER OF BLOCKSフィールドにデバイスの最大容量よりも大きく、かつFFFFFFFFhよりも

小さい値が設定されていた場合、MODE SELECTコマンドはステータスがCHECK CONDITION、

センスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN PARAMETER LISTで

終了されなければならない。論理ユニットは以前のブロック記述子の設定を維持しなけれ

ばならない。

d) NUMBER OF BLOCKSフィールドにFFFFFFFFhが設定されていた場合、論理ユニットは最大容

量を設定しなければならない。BLOCK LENGTHフィールドの内容が現在のブロック長と等し

い場合、論理ユニットはフォーマット不正となってはならない。この容量設定は電源サイ

クル、ハードリセット、論理ユニットリセット、I_Tネクサス喪失を通じて保存されなけれ

ばならない。BLOCK LENGTHフィールドの内容が現在のブロック長と等しい場合、この容量

設定は MODE SELECTコマンドが正常終了した時に有効化されなければならない。BLOCK

LENGTHフィールドの内容(すなわち、新規のブロック長)が現在のブロック長と等しくな

い場合、この容量設定は新規のブロック長が適用される時(すなわち、FORMAT UNITコマン

ドが正常終了した時)に有効化されなければならない。

BLOCK LENGTHフィールドは、各論理ブロックのバイト長を指定する。アプリケーションクライ

アントからフォーマット操作が指示されるまで(5.2を参照)、メディア上の論理ブロックに対し

て変更が行われてはならない。

デバイスサーバは、最後に送信された MODE SELECTコマンドにおける、モードパラメタブロック

記述子内のBLOCK LENGTHフィールドで指定された論理ブロック長を報告することにより、MODE

SENSEコマンド(SPC-3を参照)に応答しなければならない。ブロック記述子が設定された MODE

SELECTコマンドを受信していなかった場合には、現在のブロック長が返されなければならない

(例えばブロック長が512バイトであり、BLOCK LENGTHフィールドに520バイトが指定された

MODE SELECTコマンドが送信された場合、それ以降の MODE SENSEコマンドではBLOCK LENGTH

フィールドで520が返されなければならない)。論理ユニットの現在のフォーマットにおけるブ

ロック長を取得するためには、アプリケーションクライアントは MODE SELECTコマンドの代わり

にREAD CAPACITYコマンド(5.11を参照)を使用しなければならない。

6.3.2.3 long LBAのモードパラメタブロック記述子

表100は、直接アクセスブロックデバイスにおいて、モードパラメタヘッダ(SPC-3を参照)の

LONGLBAビットに1が設定された MODE SELECT(10)コマンドと MODE SENSE(10)コマンドで使用

される、ブロック記述子を定義する。

表100 long LBAのモードパラメタブロック記述子

デバイスサーバは、最後に送信された MODE SELECTコマンドにおける、モードパラメタブロック

記述子内のNUMBER OF BLOCKSフィールドで指定されたブロック数を報告することにより、MODE

SENSEコマンド(SPC-3を参照)に応答しなければならない。モードパラメタブロック記述子が含

まれる MODE SELECTコマンドを受信していなかった場合には、現在のブロック数が返されなけれ

ばならない。論理ユニットの現在のフォーマットにおけるブロック数を調べるためには、アプリ

123

Bit

Byte7 6 5 4 3 2 1 0

0

7

8

ブロック数( NUMBER OF BLOCKS)

(LSB)

(MSB)ブロック長( BLOCK LENGTH)

予約済み

(MSB)

(LSB)

11

12

15

Page 124: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ケーションクライアントは MODE SELECTコマンドの代わりにREAD CAPACITYコマンド(5.11を参

照)を使用しなければならない。

MODE SENSEコマンドにおいて、デバイスサーバは、long LBAのモードパラメタブロック記述子

でブロック数を報告しないことを示すために、値 0を返すことが可能である。

論理ユニットが、MODE SELECTコマンド(SPC-3を参照)を用いてNUMBER OF BLOCKSフィールド

の値を変更することにより、容量を変更することをサポートしない場合、NUMBER OF BLOCKS

フィールドの値は無視される。デバイスが、NUMBER OF BLOCKSフィールドの値を変更することに

より、容量を変更することをサポートする場合、NUMBER OF BLOCKSフィールドは下記のように解

釈されなければならない。

a) NUMBER OF BLOCKSフィールドに0が設定された場合、論理ユニットはブロック長が変更さ

れていなければ、現在の容量を維持しなければならない。NUMBER OF BLOCKSフィールドに

0が設定され、BLOCK LENGTHフィールドの内容(すなわち、新規のブロック長)が現在の

ブロック長と異なる場合、論理ユニットは新しいブロック長が適用される時(すなわち、

FORMAT UNITコマンドが正常終了した後)に最大容量を設定しなければならない。

b) NUMBER OF BLOCKSフィールドが0より大きく、かつ最大容量より小さいかあるいは等しい

場合には、論理ユニットはブロック数の設定を行わなければならない。BLOCK LENGTH

フィールドの内容が現在のブロック長と等しい場合、論理ユニットはフォーマット不正と

なってはならない。この容量設定は電源サイクル、ハードリセット、論理ユニットリセッ

ト、I_Tネクサス喪失を通じて保存されなければならない。BLOCK LENGTHフィールドの内

容が現在のブロック長と等しい場合、この容量設定は MODE SELECTコマンドが正常終了し

た時に有効化されなければならない。BLOCK LENGTHフィールドの内容(すなわち、新規の

ブロック長)が現在のブロック長と等しくない場合、この容量設定は新規のブロック長が

適用される時(すなわち、FORMAT UNITコマンドが正常終了した時)に有効化されなければ

ならない。

c) NUMBER OF BLOCKSフィールドにデバイスの最大容量よりも大きく、かつ

FFFFFFFF_FFFFFFFFhよりも小さい値が設定されていた場合、MODE SELECTコマンドはス

テータスがCHECK CONDITION、センスキーがILLEGAL REQUEST、追加センスコードが

INVALID FIELD IN PARAMETER LISTで終了されなければならない。論理ユニットは以前のブ

ロック記述子の設定を維持しなければならない。

d) NUMBER OF BLOCKSフィールドにFFFFFFFF_FFFFFFFFhが設定されていた場合、論理ユニッ

トは最大容量を設定しなければならない。BLOCK LENGTHフィールドの内容が現在のブロッ

ク長と等しい場合、論理ユニットはフォーマット不正となってはならない。この容量設定

は電源サイクル、ハードリセット、論理ユニットリセット、I_Tネクサス喪失を通じて保存

されなければならない。BLOCK LENGTHフィールドの内容が現在のブロック長と等しい場合、

この容量設定は MODE SELECTコマンドが正常終了した時に有効化されなければならない。

BLOCK LENGTHフィールドの内容(すなわち、新規のブロック長)が現在のブロック長と等

しくない場合、この容量設定は新規のブロック長が適用される時(すなわち、FORMAT UNIT

コマンドが正常終了した時)に有効化されなければならない。

BLOCK LENGTHフィールドは、各論理ブロックのバイト長を指定する。アプリケーションクライ

アントからフォーマット操作(5.2を参照)が指示されるまで、メディア上の論理ブロックに対し

て変更が行われてはならない。

デバイスサーバは、最後に送信された MODE SELECTコマンドにおける、モードパラメタブロック

記述子内のBLOCK LENGTHフィールドで指定された論理ブロック長を報告することにより、MODE

SENSEコマンド(SPC-3を参照)に応答しなければならない。ブロック記述子が設定された MODE

SELECTコマンドを受信していなかった場合には、現在のブロック長が返されなければならない

(例えば、ブロック長が512バイトであり、BLOCK LENGTHフィールドに520バイトが指定された

MODE SELECTコマンドが送信された場合、MODE SENSEコマンドではBLOCK LENGTHフィールドで

124

Page 125: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

520が返されなければならない)。論理ユニットの現在のフォーマットにおけるブロック長を取得

するためには、アプリケーションクライアントは MODE SELECTコマンドの代わりにREAD CAPACITY

コマンド(5.11を参照)を使用しなければならない。

6.3.3 キャッシュモードページ

キャッシュモードページ(表101を参照)は、キャッシュの使用に影響を与えるパラメタを定義

する。

表101 キャッシュモードページ

パラメタ保存可能(parameters savable:PS)ビットは MODE SENSEコマンドのみで使用される。

このビットは MODE SELECTコマンドでは予約済みとなる。PSビットに1が設定された場合、デバ

イスサーバが、モードページを不揮発性のベンダ固有の場所に保存する能力を有することを示す。

MODE SENSEデータでPSビットに1が設定された場合、SPビットに1を設定した MODE SELECTコマ

ンドを発行することにより、モードページが保存されなければならない。

イニシエータ制御(initiator control:IC)有効ビットに1が設定された場合、デバイスサー

バは、デバイスサーバ独自のものに代わり使用するキャッシュアルゴリズムを制御するために、

下記いずれか1つのフィールドを使用することを示す。

a) SIZEビットに1が設定されている場合には、NUMBER OF CACHE SEGMENTSフィールド。

b) SIZEビットに0が設定されている場合には、CACHE SEGMENT SEIZEフィールド。

プリフェッチ中止(abort pre-fetch:ABPF)ビットに1が設定された場合で、かつDRAビット

に0が設定された場合は、デバイスサーバは新しいコマンドを受信した時にプリフェッチを中止

125

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

ページ長( PAGE LENGTH)( 12h)

(LSB)

(MSB) 無効プリフェッチ転送長

( DISABLE PRE-FETCH TRANSFER LENGTH)

要求読み込み保持優先度(DEMAND READ RETENTION PRIORITY)

PS 予約済み ページコード( PAGE CODE)( 08h)

IC ABPF CAP DISC SIZE WCE MF RCD

書き込み保持優先度(WRITE RETENTION PRIORITY)

(LSB)

(LSB)

10

13

最小プリフェッチ(MINIMUM PRE-FETCH)(MSB)

最大プリフェッチ(MAXIMUM PRE-FETCH)

最大プリフェッチ上限(MAXIMUM PRE-FETCH CEILING)(LSB)

(MSB)

(MSB)

(MSB)

NV_DIS予約済みベンダ固有DRALBCSSFSW

キャッシュセグメント数( NUMBER OF CACHE SEGMENTS)

予約済み

廃止済み

キャッシュセグメントサイズ( CACHE SEGMENT SIZE)(MSB)

(LSB)

3

4

5

6

7

8

9

11

12

14

15

16

17

19

Page 126: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

することを指定する。ABPFビットに1が設定された場合は、MINIMUM PRE-FETCHフィールドの設

定よりも優先される。ABPFビットに0が設定され、かつDARビットに0が設定された場合は、実

行中のプリフェッチの中断はキャッシュモードページの4~11バイト目に依存し、かつベンダ固

有であることを指定する。

キャッシュ分析可能(caching analysis permitted:CAP)ビットに1が設定された場合、デバ

イスサーバは、後続の操作の実行中にキャッシュ分析を実行することを指定する。CAPビットに0

が設定された場合、キャッシュ分析が無効であることを指定する(例えば、オーバーヘッド時間

を削減するため、あるいは値の調整の影響による不適切な動作を防止するため)。

不連続(discontinuity:DISC)ビットに1が設定された場合、デバイスサーバが、プリフェッ

チで利用可能なバッファやセグメント、空間の上限に達するまで、断続的に(例えば、シリンダ

を跨って)プリフェッチを継続することを指定する。DISCビットに0が設定された場合、時間的

に不連続となる箇所でプリフェッチが中断されるか、あるいはラップされることを指定する。

サイズ有効(size enable:SIZE)ビットに1が設定された場合、キャッシュのセグメント化に

関する制御でCACHE SEGMENT SIZEフィールドが使用されることを指定する。SIZEビットに0が設

定された場合、キャッシュのセグメント化にするする制御でNUMBER OF CACHE SEGMENTSフィール

ドが使用されることを指定する。セグメント数とセグメント長が同時に使用された場合の動作は

ベンダ固有である。

ライトバックキャッシュ有効(writeback cache enable:WCE)ビットに0が設定された場合、

デバイスサーバが WRITEコマンドに対して、メディアへの全データの書き込みが正常終了した後

でのみ、GOODステータスを返さなければならないことを指定する。WCEビットに1が設定された

場合、デバイスサーバが WRITEコマンドに対して、データを正常に受信した後、メディアへの

データの書き込みが成功するよりも前に、GOODステータスを返すことが可能であることを指定す

る。

積算係数(multiplication factor:MF)ビットに0が設定された場合、デバイスサーバが各種

のプリフェッチについてそれぞれ、MINIMUM PRE-FETCHフィールドと MAXIMUM PRE-FETCHフィール

ドを論理ブロック数に換算して解釈しなければならないことを指定する。MFビットに1が設定さ

れた場合、デバイスサーバが、現在のコマンドにおいて転送される論理ブロック数で乗算を行う

際に、MINIMUM PRE-FETCHフィールドと MAXIMUM PRE-FETCHフィールドには、各種のプリフェッチ

のそれぞれに対する論理ブロック数を算出するスカラ値が指定されるものと解釈しなければなら

ないことを指定する。

読み込みキャッシュ無効(read cache disable:RCD)ビットに0が設定された場合、デバイス

サーバは、READコマンドにより要求されたデータを、キャッシュないしメディアのいずれかにア

クセスすることで、返すことが可能であることを指定する。RCDビットに1が設定された場合、デ

バイスサーバは、READコマンドにより要求された全てのデータを、メディアから転送しなければ

ならないことを指定する(すなわち、データはキャッシュから転送されてはならない)。

DEMAND READ RETENTION PRIORITYフィールド(表102を参照)は、キャッシュに読み込まれ

Data-Inバッファに転送されるデータに対して、デバイスサーバが割り当てるべき保持優先度を指

定する。

126

Page 127: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表102 DEMAND READ RETENTION PRIORITYフィールド

値 説明

0h デバイスサーバは、指定されたデータと、他の理由(例えば、プリフェッチ)に

よりキャッシュに配置されるデータとの間で、保持について区別を設けるべきで

はない。

1h デバイスサーバは、READコマンドによりキャッシュに格納されたデータを、他の

理由(例えば、プリフェッチ)によりキャッシュに格納されたデータよりも早く

置換するべきである(すなわち、読み込みデータは低い優先度を持つ)。

2h~Eh 予約済み

Fh デバイスサーバは、他の理由(例えば、プリフェッチ)によりキャッシュに読み

込まれた他のデータが存在し、かつそれらが置換可能である場合には、READコマ

ンドによりキャッシュに配置されたデータを置換するべきではない。

WRITE RETENTION PRIORITYフィールド(表103を参照)は、キャッシュに書き込まれ、かつ

キャッシュからメディアへ転送されるデータに対して、デバイスサーバが割り当てるべき保持優

先度を指定する。

表103 WRITE RETENTION PRIORITYフィールド

値 説明

0h デバイスサーバは、指定されたデータと、他の理由(例えば、プリフェッチ)に

よりキャッシュに格納されるデータとの間で、保持について区別を設けるべきで

はない。

1h デバイスサーバは、WRITEコマンドないし WRITE AND VERIFYコマンドの実行中に

キャッシュに格納されたデータを、他の理由(例えば、プリフェッチ)により

キャッシュに格納されたデータよりも早く置換するべきである(すなわち、書き

込まれたデータは低い優先度を持つ)。

2h~Eh 予約済み

Fh デバイスサーバは、他の理由(例えば、プリフェッチ)によりキャッシュに読み

込まれた他のデータが存在し、かつそれらが置換可能である場合には、WRITEコ

マンドないし WRITE AND VERIFYコマンドによりキャッシュに配置されたデータを

置換するべきではない。

先行プリフェッチは、要求されていないデータがキャッシュに配置される時に発生する。これ

は、要求されたデータの読み込みを行う時に同時に発生する可能性がある。DISABLE PRE-FETCH

TRANSFER LENGTHフィールド、MINIMUM PRE-FETCHフィールド、MAXIMUM PRE-FETCHフィールド、

MAXIMUM PRE-FETCH CEILINGフィールドは、デバイスサーバに対して、直近のREADコマンドに基

づいてどのようにキャッシュを管理するべきかに関する指示を与える。先行プリフェッチは他の

情報に基づき発生する可能性がある。これらのフィールドはデバイスサーバに対する推奨を示す

のみであり、デバイスサーバがこれらの要求を満足することができない場合にCHECK CONDITION

を発生させる原因とするべきではない。

DISABLE PRE-FETCH TRANSFER LENGTHフィールドは、転送長が長い場合における、選択的な先行

プリフェッチの無効化を指定する。このフィールドの値はREADコマンドで要求された転送長と比

較される。転送長が無効プリフェッチ転送長の値よりも大きい場合、当該コマンドにより先行プ

リフェッチが行われることはない。他の場合は、デバイスサーバは先行プリフェッチを行うべき

である。DISABLE PRE-FETCH TRANSFER LENGTHフィールドに0が設定された場合、転送長が0の場

合も含めて、データに対する全ての要求における先行プリフェッチが無効化される。

127

Page 128: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

MINIMUM PRE-FETCHフィールドは、後続コマンドの処理で生じうる遅延を考慮しない、プリ

フェッチのブロック数を指定する。このフィールドには下記いずれかの値が格納される。

a) MFビットに0が設定される場合には、ブロック数が格納される。

b) MFビットに1が設定される場合には、TRANSFER LENGTHフィールド内の値に対するスカラの

乗数値が格納される。

プリフェッチ操作は、READコマンドにおける最後の論理ブロックの、次の論理ブロックから開

始される。プリフェッチは、メディアの末尾に存在する論理ブロックに到達したら、常に中断さ

れなければならない。プリフェッチ操作の実行中に発生したエラーは、エラーの結果デバイス

サーバが後続のコマンドを正常に実行することができない場合を除いて、アプリケーションクラ

イアントに報告されてはならない。エラーが報告される場合、これらはデバイスサーバの裁量に

応じて、遅延エラーの報告に関するルール(SPC-3を参照)に従い、後続コマンドに対するエラー

か、遅延エラーとして報告される可能性がある。

プリフェッチにより、MINIMUM PRE-FETCHフィールドで指定された以上のデータが読み込まれる

場合、他のコマンドが有効状態(SAM-3を参照)に遷移する時には常に終了されるべきである。こ

の配慮は、MINIMUM PRE-FETCHフィールドの値が MAXIMUM PRE-FETCHフィールドの値を等しい場合

には無視される。

MAXIMUM PRE-FETCHフィールドは、プリフェッチにより後続するコマンドの処理が遅延しない場

合における、プリフェッチするブロック数を指定する。このフィールドには下記いずれかが格納

される。

a) MFビットに0が設定される場合は、ブロック数が格納される。

b) MFビットに1が設定される場合は、TRANSFER LENGTHフィールド内の値に対するスカラの乗

数値が格納される。

MAXIMUM PRE-FETCHフィールドには、単一のREADコマンドの結果として行われるプリフェッチ

の最大データ量が格納される。これは、DISABLE PRE-FETCH TRANSFER LENGTHフィールドと

MAXIMUM PRE-FETCH CEILINGフィールドと併せて、キャッシュ内にすでに格納されている古いデー

タを破棄し、プリフェッチにより新しいデータを読み込むことによるトレードオフを決定するた

めに使用される。

MAXIMUM PRE-FETCH CEILINGフィールドは、最大プリフェッチとして算出される論理ブロック数

の上限を指定する。この論理ブロック数が MAXIMUM PRE-FETCHフィールドの値よりも大きい場合、

プリフェッチされる論理ブロック数は MAXIMUM PRE-FETCH CEILINGフィールドの値まで切り捨て

られなければならない。

注意 24:MFビットに1が設定されている場合、MAXIMUM PRE-FETCH CEILINGフィールドは、プ

リフェッチされるべきデータ量を制限するのに便利である。

強制順書き込み(force sequential write:FSW)ビットに1が設定された場合、1個より多く

の論理ブロックを書き込むコマンドにおいて、デバイスサーバは論理ブロックを、昇順にメディ

アに書き込まなければならないことを指定する。FSWビットに0が設定された場合、デバイスサー

バは、論理ブロックの書き込み順を変更する(例えば、コマンドがより早く完了する順に並び替

える)ことが可能であると指定する。

論理ブロックキャッシュセグメントサイズ(logical block cache segment size:LBCSS)ビッ

トに1が設定された場合、CACHE SEGMENT SIZEフィールドの単位が論理ブロック数であるものと

解釈されなければならないことを指定する。LBCSSビットに0が設定された場合は、CACHE

SEGMENT SIZEフィールドの単位がバイト数であるものと解釈されなければならないことを指定す

る。LBCSSビットは他のフィールドの単位に影響を与えてはならない。

先読み無効(disable read-ahead:DRA)ビットに1が指定された場合、デバイスサーバはプリ

128

Page 129: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

フェッチバッファに、指定された論理ブロックの先に存在するいかなる論理ブロックも読み込ん

ではならないことを指定する。DRAビットに0が設定された場合、デバイスサーバは指定された論

理ブロックの先に存在する論理ブロックをプリフェッチバッファに読み込むことが継続できるこ

とを指定する。

NUMBER OF CACHE SEGMENTSフィールドは、デバイスサーバがキャッシュをいくつのセグメント

に分割しなければならないかを指定する。

CACHE SEGMENT SIZEフィールドは、LBCSSビットに0が設定されている場合にはバイト単位で、

LBCSSビットに1が設定されている場合には論理ブロック数で、セグメントサイズを指定する。

CACHE SEGMENT SIZEフィールドはSIZEビットに1が設定されている場合のみ有効である。

NV_DISビットに1が設定されている場合、デバイスサーバは不揮発性キャッシュを無効化し、

かつ、不揮発性キャッシュがサポートされているが無効化されていることを示さなければならな

いことを示す。NV_DISビットに0が設定された場合、デバイスサーバは不揮発性キャッシュを使

用することが可能であり、かつ、不揮発性キャッシュが存在し有効化されていることを示すこと

が可能であることを示す。

6.3.4 読み書きエラーリカバリモードページ

読み書きエラーリカバリモードページ(表104を参照)は、メディアに対して読み込みないし書

き込みを行うコマンド(例えば、READコマンド、WRITEコマンド、WRITE AND VERIFYコマンド)

を実行する際に、デバイスサーバが使用しなければならないエラーリカバリパラメタを指定する。

表104 読み書きエラーリカバリモードページ

パラメタ保存可能(parameters savable:PS)ビットは、MODE SENSEコマンドのみで使用され

る。本ビットは MODE SELECTコマンドでは予約済みとなる。PSビットに1が設定された場合、デ

バイスサーバが、モードページを不揮発性メモリのベンダ固有の場所に保存する能力を有するこ

とを示す。

自動書き込み再配置有効(automatic write reallocation enabled:AWRE)ビットに0が設定さ

れた場合、デバイスサーバは書き込み操作中に、欠陥論理ブロックの自動再配置を行ってはなら

ないことを指定する。

AWREビットに1が設定された場合、デバイスサーバは、書き込み操作中における欠陥論理ブ

ロックの自動再配置を有効化しなければならないことを指定する。自動再配置はデバイスサーバ

129

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

ページコード( PAGE CODE)( 01h)PS 予約済み

ページ長( PAGE LENGTH)( 0Ah)

AWRE ARRE TB RCエラーリカバリビット

EER PER DTE DCR

読み込みリトライカウント( READ RETRY COUNT)

廃止済み

廃止済み

廃止済み

予約済み MMC-4により制限される

書き込みリトライカウント(WRITE RETRY COUNT)

予約済み

リカバリ時間制限( RECOVERY TIME LIMIT)(MSB)

(LSB)

3

4

5

6

7

8

9

10

11

Page 130: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

が正しいデータ(例えば、バッファ内のオリジナルデータや、メディアから回復されたデータ)

を保持している場合にのみ実行されなければならない。正しいデータは再配置された論理ブロッ

クに格納されなければならない。デバイスサーバは再配置操作の実行中に生じた全ての失敗を報

告しなければならない。エラーリカバリビット(すなわち、EERビット、PERビット、DTEビット、

DCRビット)の指定によるエラーの報告は、再配置操作の完了後にのみ実行されなければならない。

エラー手続きについてはREASSIGN BLOCKSコマンド(5.16を参照)を参照のこと。

自動読み込み再配置有効(automatic read reallocation enables:ARRE)ビットに0が設定さ

れた場合、デバイスサーバは読み込み操作中に、欠陥論理ブロックの自動再配置を実行してはな

らないことを指定する。

ARREビットに1が設定された場合、デバイスサーバは、読み込み操作中における欠陥論理ブ

ロックの自動再配置を有効化しなければならないことを指定する。エラーリカバリビット(すな

わち、EERビット、PERビット、DTEビット、DCRビット)により要求される全てのエラーリカバ

リ動作が実行されなければならない。自動再配置は、デバイスサーバがデータの回復に成功した

場合にのみ実行されなければならない。回復されたデータは、再配置された論理ブロックに格納

されなければならない。デバイスサーバは再配置操作の実行中に発生した全ての失敗を報告しな

ければならない。エラーリカバリビット(すなわち、EERビット、PERビット、DTEビット、DCR

ビット)の指定によるエラーの報告は、再配置操作の完了後にのみ実行されなければならない。

エラー手続きについてはREASSIGN BLOCKSコマンド(5.16を参照)を参照のこと。

ブロック転送(transfer block:TB)ビットに0が設定された場合、指定されたリカバリ制限の

範囲内で論理ブロックを回復することができなかった際に、デバイスサーバは論理ブロックを

Data-Inバッファに転送してはならないことを指定する。TBビットに1が設定された場合、指定

されたリカバリ制限の範囲内で論理ブロックが回復できなかった際に、CHECK CONDITIONステータ

スを返す前に論理ブロックをData-Inバッファに転送しなければならないことを指定する。この

場合に返されるデータはベンダ固有である。TBビットは回復されたデータに対して行われる動作

には影響を与えない。

読み込み継続(read continuous:RC)ビットに0が設定された場合、データ転送中の、遅延を

引き起こすエラーリカバリ操作が許容されることを指定する。データは捏造されてはならない。

RCビットに1が設定された場合、デバイスサーバは、エラーリカバリ手続きの実行による遅延

を生じさせることなく、要求された長さのデータ全体を転送しなければならないことを指定する。

これは、デバイスサーバが、データフローを維持するという要求のために誤ったないし捏造され

たデータを送信する可能性があることを暗示する。デバイスサーバは、本バイト内の競合する

ビットよりも高い優先順位をRCビットに割り当てなければならない。

注意 25:捏造されるデータは、バッファ内にすでに存在するデータか、もしくはその他ベンダ

固有のデータである可能性がある。RCビットは、イメージ処理やオーディオ、ビデオのアプリ

ケーションで使用することが可能である。

早期リカバリ有効ビット(enable early recovery:EER)ビットに1が設定された場合、デバイ

スサーバは、高速にエラーリカバリを行う最も適切な方法を使用しなければならないことを示す。

EERビットに0が設定された場合、デバイスサーバは、エラーの誤検出や誤修正のリスクを最小化

するようなエラー回復手続きを使用しなければならないことを指定する。このビットはデータ回

復にのみ適用され、位置合わせのリトライに影響しない。

注意 26:EERビットに1が指定された場合、暗黙的に、エラーの誤検出や誤修正の生じる可能性

が増大する可能性がある。EERビットに0が設定された場合、エラー訂正コードを使用するよりも、

リトライを指定された限度まで実行する方を優先することが許可される。

エラー通知(post error:PER)ビットに1が設定された場合、デバイスサーバは、回復された

エラーを報告しなければならないことを指定する。PERビットに0が設定された場合、デバイス

サーバは、回復されたエラーを報告してはならず、かつ、エラーリカバリパラメタにより設定さ

130

Page 131: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

れた限度内でエラー回復手続きを実行しなければならない事を示す。

エラー時のデータ転送中断(data terminate on error:DTE)ビットに1が設定された場合、デ

バイスサーバは、回復されたエラーの検知時にData-InバッファないしData-Outバッファとの

データ送受信を中断しなければならないことを指定する。DTEビットに0が設定されたばあい、デ

バイスサーバは、回復されたエラーの検知時にData-InバッファないしData-Outバッファとの

データ送受信を中断してはならないことを指定する。

訂正無効(disable correction:DCR)ビットに1が設定された場合、データのエラー回復で

ECC(4.4を参照)が使用されてはならないことを指定する。DCRビットに0が設定された場合、

データのエラー回復でECCを使用可能であることを指定する。

エラーリカバリビット(すなわち、ERRビット、PERビット、DTEビット、DCRビット)の組み合

わせについて、表105に示す。

表105 エラーリカバリビットの組み合わせの説明

EER PER DTE DCR 説明

0 0 0 0 デバイスサーバは、読み込み操作においてはREAD RETRY COUNT

フィールドで、書き込み操作においては WRITE RETRY COUNT

フィールドで、検証操作においては VERYFY RETRY COUNTフィー

ルド(6.3.5を参照)で指定された回数分のリトライを完全に

実行しなければならず、かつ、データ回復を試みる際にエラー

訂正を行わなければならない。

デバイスサーバは回復されたエラーを報告してはならない。デ

バイスサーバは、回復不可能なエラーを検知した場合にのみ、

転送回数が上限に達する前にコマンドをCHECK CONDITIONス

テータスで終了しなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

0 0 0 1 デバイスサーバは、読み込み操作においてはREAD RETRY COUNT

フィールドで、書き込み操作においては WRITE RETRY COUNT

フィールドで、検証操作においては VERYFY RETRY COUNTフィー

ルド(6.3.5を参照)で指定された回数分のリトライを完全に

実行しなければならない。しかし、データ回復を試みる際にエ

ラー訂正を行ってはならない。

デバイスサーバは回復されたエラーを報告してはならない。デ

バイスサーバは、回復不可能なエラーを検知した場合にのみ、

転送回数が上限に達する前にコマンドをCHECK CONDITIONス

テータスで終了しなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

0 0 1 0 不正なモードである。DTEビットが1に設定されている場合、

PERビットは1に設定されなければならない a。

0 0 1 1 不正なモードである。DTEビットが1に設定されている場合、

PERビットは1に設定されなければならない a。

0 1 0 0 デバイスサーバは、読み込み操作においてはREAD RETRY COUNT

131

Page 132: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

フィールドで、書き込み操作においては WRITE RETRY COUNT

フィールドで、検証操作においては VERYFY RETRY COUNTフィー

ルド(6.3.5を参照)で指定された回数分のリトライを完全に

実行しなければならず、かつ、データ回復を試みる際にエラー

訂正を行わなければならない。

バイスサーバは、回復不可能なエラーを検知した場合にのみ、

転送回数が上限に達する前にコマンドをCHECK CONDITIONス

テータスで終了しなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

デバイスサーバは、回復可能なエラーが発生し、コマンドが完

了した場合には、センスキーにRECOVERED ERRORを設定して

CHECK CONDITIONステータスを返さなければならない。センス

データのINFORMATIONフィールドには、コマンド実行中に発生

した、最後の回復されたエラーの LBAが格納されなければなら

ない。

0 1 0 1 デバイスサーバは、読み込み操作においてはREAD RETRY COUNT

フィールドで、書き込み操作においては WRITE RETRY COUNT

フィールドで、検証操作においては VERYFY RETRY COUNTフィー

ルド(6.3.5を参照)で指定された回数分のリトライを完全に

実行しなければならない。しかし、データ回復を試みる際にエ

ラー訂正を行ってはならない。

デバイスサーバは、回復不可能なエラーを検知した場合にのみ、

転送回数が上限に達する前にコマンドをCHECK CONDITIONス

テータスで終了しなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

デバイスサーバは、回復可能なエラーが発生し、コマンドが完

了した場合には、センスキーにRECOVERED ERRORを設定して

CHECK CONDITIONステータスを返さなければならない。センス

データのINFORMATIONフィールドには、コマンド実行中に発生

した、最後の回復されたエラーの LBAが格納されなければなら

ない。

0 1 1 0 デバイスサーバは、読み込み操作においてはREAD RETRY COUNT

フィールドで、書き込み操作においては WRITE RETRY COUNT

フィールドで、検証操作においては VERYFY RETRY COUNTフィー

ルド(6.3.5を参照)で指定された回数分のリトライを完全に

実行しなければならず、かつ、データ回復を試みる際にエラー

訂正を行わなければならない。

デバイスサーバは、回復不可能もしくは回復可能なエラーのい

ずれかを検知した場合、転送回数が上限に達する前にコマンド

をCHECK CONDITIONステータスで終了しなければならない。セ

ンスデータのINFORMATIONフィールドには、エラーが生じたブ

ロックの LBAが格納されなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

132

Page 133: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

0 1 1 1 デバイスサーバは、読み込み操作においてはREAD RETRY COUNT

フィールドで、書き込み操作においては WRITE RETRY COUNT

フィールドで、検証操作においては VERYFY RETRY COUNTフィー

ルド(6.3.5を参照)で指定された回数分のリトライを完全に

実行しなければならない。しかし、データ回復を試みる際にエ

ラー訂正を行ってはならない。

デバイスサーバは、回復不可能もしくは回復可能なエラーのい

ずれかを検知した場合、転送回数が上限に達する前にコマンド

をCHECK CONDITIONステータスで終了しなければならない。セ

ンスデータのINFORMATIONフィールドには、エラーが生じたブ

ロックの LBAが格納されなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

1 0 0 0 デバイスサーバは可能な限り少ない回数のリトライを行い、

データを回復するためにエラー訂正を行わなければならない。

デバイスサーバは回復されたエラーを報告してはならない。

デバイスサーバは、回復不可能なエラーを検知した場合にのみ、

転送回数が上限に達する前にコマンドをCHECK CONDITIONス

テータスで終了しなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

1 0 0 1 不正なモードである。EERビットに1が設定される場合は、DCR

ビットには0が設定されなければならない a。

1 1 0 0 デバイスサーバは可能な限り少ない回数のリトライを行い、

データを回復するためにエラー訂正を行わなければならない。

デバイスサーバは、回復不可能なエラーを検知した場合にのみ、

転送回数が上限に達する前にコマンドをCHECK CONDITIONス

テータスで終了しなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

デバイスサーバは、回復可能なエラーが発生し、コマンドが完

了した場合には、センスキーにRECOVERED ERRORを設定して

CHECK CONDITIONステータスを返さなければならない。センス

データのINFORMATIONフィールドには、コマンド実行中に発生

した、最後の回復されたエラーの LBAが格納されなければなら

ない。

1 1 0 1 不正なモードである。EERビットに1が設定される場合は、DCR

ビットには0が設定されなければならない a。

1 1 1 0 デバイスサーバは可能な限り少ない回数のリトライを行い、

データを回復するためにエラー訂正を行わなければならない。

デバイスサーバは、回復不可能もしくは回復可能なエラーのい

133

Page 134: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

ずれかを検知した場合、転送回数が上限に達する前にコマンド

をCHECK CONDITIONステータスで終了しなければならない。セ

ンスデータのINFORMATIONフィールドには、エラーが生じたブ

ロックの LBAが格納されなければならない。

読み込み操作中に回復不可能なエラーが生じた場合、回復不可

能なエラーが生じたブロック内のデータは、ブロック転送

(TB)ビットの設定に応じて転送されるかもしれないし、転送

されないかもしれない。

1 1 1 1 不正なモードである。EERビットに1が設定される場合は、DCR

ビットには0が設定されなければならない a。

(a)アプリケーションクライアントにより、エラーリカバリビットで不正な組み合わせが指定さ

れた場合、デバイスサーバは MODE SELECTコマンドを、ステータスがCHECK CONDITION、センス

キーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN PARAMETER LISTで終了しなけれ

ばならない。

READ RETRY COUNTフィールドは、デバイスサーバが、読み込み操作中にリカバリアルゴリズム

の実行を試行しなければならない回数を指定する。

WRITE RETRY COUNTフィールドは、デバイスサーバが、書き込み操作中にリカバリアルゴリズム

の実行を試行しなければならない回数を指定する。

RECOVERY TIME LIMITフィールドは、デバイスサーバがエラーリカバリ手続きで使用しなければ

ならない、最大継続時間をミリ秒単位で指定する。デバイスサーバはSPC-3の規定に従いこの値

に対して丸めを行うことが可能である。本フィールドで指定された制限時間は、独立の論理ブ

ロックに対して許可されるエラーリカバリ時間を指定する。RECOVERY TIME LIMITフィールドに0

が設定された場合、デバイスサーバはデフォルト値を使用しなければならない。

リトライカウントとリカバリ時間の両方が指定された場合、リカバリ動作について最も少ない

継続時間を指定するフィールドの指定が優先されなければならない。

注意 27:全種類のリトライとエラー訂正を無効化するには、アプリケーションクライアントは

EERビットには0、PERビットには1、DTEビットには1、DCRビットには1、READ RETRY COUNT

フィールドには00h、WRITE RETRY COUNTフィールドには00h、RECOVERY TIME LIMITフィールド

には0000hを指定するべきである。

6.3.5 検証エラーリカバリモードページ

検証エラーリカバリモードページ(表106を参照)は、VERIFYコマンドの実行中、およびWRITE

AND VERIFYコマンドにおける検証操作の実行中に、デバイスサーバが使用しなければならないエ

ラーリカバリパラメタを指定する。

134

Page 135: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表106 検証エラーリカバリモードページ

パラメタ保存可能(parameters savable:PS)ビットは、MODE SENSEコマンドのみで使用され

る。本ビットは MODE SELECTコマンドでは予約済みとなる。PSビットに1が設定された場合、デ

バイスサーバが、不揮発性メモリのベンダ固有の場所に当該モードページを保存可能であること

を示す。

AWREビットは読み書きエラーリカバリモードページ(6.3.4を参照)で定義され、かつ、WRITE

AND VERIFYコマンドに対して適用される。VERIFYコマンドでは、自動再配置は実行されてはなら

ない。

EERビット、PERビット、DTEビット、DCRビット(すなわち、エラーリカバリビット)は6.3.4

で定義される。これらのビットの組み合わせについては表105(6.3.4を参照)で定義される。

VERIFY RETRY COUNTフィールドは、検証操作中にデバイスサーバが試みなければならないリカ

バリアルゴリズムの回数を指定する。

VERIFY RECOVERY TIME LIMITフィールドは、個別の論理ブロックに対して、データ回復を行う

際にデバイスサーバが使用しなければならないエラーリカバリ手続きにおける、最大継続時間を

ミリ秒単位で指定する。デバイスサーバは、この値をSPC-3の規定に従い丸めを行うことが可能

である。

リトライ回数とリカバリ制限時間の両方が指定された場合、リカバリ動作について最も少ない

継続時間を指定するフィールドの指定が優先されなければならない。

注意 28:全種類のリトライとエラー訂正を無効化するには、アプリケーションクライアントは

EERビットには0、PERビットには1、DTEビットには1、DCRビットには1、VERIFY RETRY COUNT

フィールドには00h、VERIFY RECOVERY TIME LIMITフィールドには0000hを指定するべきである。

6.3.6 XOR制御モードページ

XOR制御モードページ(表107を参照)は、アプリケーションクライアントに対して、論理ユ

ニットにおける特定のXOR操作パラメタを取得、変更する方法を提供する。

135

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

ページコード( PAGE CODE)( 07h)PS 予約済み

ページ長( PAGE LENGTH)( 0Ah)

エラーリカバリビットEER PER DTE DCR

検証リトライカウント(VERIFY RETRY COUNT)

廃止済み

予約済み

検証リカバリ時間制限(VERIFY RECOVERY TIME LIMIT)

3

4

5

9

10

予約済み

11

(MSB)

(LSB)

Page 136: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表107 XOR制御モードページ

パラメタ保存可能(parameters savable:PS)ビットは、MODE SENSEコマンドのみで使用され

る。本ビットは MODE SELECTコマンドでは予約済みとなる。PSビットに1が設定された場合、デ

バイスサーバが、不揮発性メモリのベンダ固有の場所に当該モードページを保存可能であること

を示す。

XOR無効(XOR disable:XORDIS)ビットに0が設定された場合、デバイスサーバは、XORコマン

ド(すなわち、XDREADコマンド(5.38、5.39を参照)、XDWRITEコマンド(5.40、5.41を参照)、

XDWRITEREADコマンド(5.42、5.43を参照)、XPWRITEコマンド(5.44、5.45を参照))の処理

を有効化しなければならないことを示す。XORDISビットに1が設定された場合、XORコマンドの

処理を無効化しなければならないことを示す。XORDISビットに1が設定され、かつ、XORコマン

ドを受信した場合、デバイスサーバは当該のXORコマンドを、ステータスがCHECK CONDITION、セ

ンスキーがILLEGAL REQUEST、追加センスコードがINVALID COMMAND OPERATION CODEで終了しな

ければならない。

MAXIMUM XOR WRITE SIZEフィールドは、デバイスサーバが単一のXDWRITEないしXPWRITEコマ

ンドで受け入れる最大転送長をブロック数で指定する。

6.4 重要プロダクトデータ(VPD)パラメタ 6.4.1 VPDパラメタの概要

本節では、直接アクセスブロックデバイスのみで使用される VPDページを定義する。全デバイス

種別で使用される VPDページについてはSPC-3を参照のこと。

直接アクセスブロックデバイス固有の VPDページコードは表108で定義される。

136

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

ページコード( PAGE CODE)( 10h)PS 予約済み

ページ長( PAGE LENGTH)( 16h)

最大 XOR書き込みサイズ(MAXIMUM XOR WRITE SIZE)

3

4

7

8

11

予約済み XORDIS 予約済み

予約済み

(MSB)

(LSB)

予約済み

廃止済み

予約済み

廃止済み

12

19

20

21

22

23

Page 137: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

表108 直接アクセスブロックデバイスのVPDページコード

VPDページコード VPDページ名 参照 サポート要求

B0h ブロック制限VPDページ 6.4.2 オプション

B1h~BFh 本標準で予約済み

6.4.2 ブロック制限 VPDページ

ブロック制限VPDページ(表109を参照)は、アプリケーションクライアントに対して、論理ユ

ニットにおける特定の操作パラメタを取得する方法を提供する。

表109 ブロック制限 VPDページ

PERIPHERAL QUALIFIERフィールドとPERIPHERAL DEVICE TYPEフィールドについてはSPC-3で定

義される。

PAGE CODEフィールドにはB0hが設定されなければならない。

PAGE LENGTHフィールドについてはSPC-3で定義される。

OPTIMAL TRANSFER LENGTH GRANULARITYフィールドは、単一のPRE-FETCHコマンド、READコマン

ド、VERIFYコマンド、WRITEコマンド、WRITE AND VERIFYコマンド、XDREADコマンド、XDWRITE

コマンド、XDWRITEREADコマンド、XPWRITEコマンドにおける、最適な転送長の単位をブロック数

で指定する。この値の倍数ではない転送長で転送が行われた場合、処理を行う上で重大な遅延が

生じる可能性がある。

MAXIMUM TRANSFER LENGTHフィールドは、単一のPRE-FETCHコマンド、READコマンド、VERIFY

コマンド、WRITEコマンド、WRITE AND VERIFYコマンド、XDREADコマンド、XDWRITEコマンド、

XDWRITEREADコマンド、XPWRITEコマンドにおいて、デバイスサーバが受け入れる最大転送長をブ

ロック数で指定する。この制限を超える転送長による要求は、ステータスがCHECK CONDITION、セ

ンスキーがILLEGAL REQUEST、追加センスコードがINVALID FIELD IN CDBで終了される。MAXIMUM

TRANSFER LENGTHフィールドに0が設定された場合、転送長について報告される制限は存在しない

ことを示す。

OPTIMAL TRANSFER LENGTHフィールドは、単一のPRE-FETCHコマンド、READコマンド、VERIFY

コマンド、WRITEコマンド、WRITE AND VERIFYコマンド、XDREADコマンド、XDWRITEコマンド、

137

Bit

Byte7 6 5 4 3 2 1 0

0

1

2

末端デバイス種別( PERIPHERAL DEVICE TYPE)末端修飾子( PERIPHERAL QUALIFIER)

ページコード( PAGE CODE)( B0h)

予約済み

3

4

5

6

予約済み

ページ長( PAGE LENGTH)( 0Ch)

(MSB)

(LSB)適正な転送長の粒度( OPTIMAL TRANSFER LENGTH GRAMULARITY)

最大転送長(MAXIMUM TRANSFER LENGTH)

適正な転送長( OPTIMAL TRANSFER LENGTH)

11

12

15

(MSB)

(MSB)

(LSB)

(LSB)

7

8

Page 138: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

XDWRITEREADコマンド、XPWRITEコマンドにおける、最適な転送長をブロック数で指定する。この

値を超える転送長による転送が行われる場合、処理を行う上で重大な遅延が生じる可能性がある。

138

Page 139: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

Annex A 数値順のコード値 A.1 可変長CDB

表10(5.1を参照)に示すいくつかのコマンドでは、SPC-3で定義される可変長のコマンド

フォーマットを使用する。これらのコマンドでは操作コード7Fhが使用され、表110に示される

サービスアクションコードにより細分化される。

表110 可変長コマンドにおけるサービスアクションコードの割り当て

操作コード/サービスアクションコード 説明

7Fh/0000h 予約済み

7Fh/0001h 予約済み

7Fh/0002h 予約済み

7Fh/0003h XDREAD(32)

7Fh/0004h XDWRITE(32)

7Fh/0005h 予約済み

7Fh/0006h XPWRITE(32)

7Fh/0007h XDWRITEREAD(32)

7Fh/0008h 予約済み

7Fh/0009h READ(32)

7Fh/000Ah VERIFY(32)

7Fh/000Bh WRITE(32)

7Fh/000Ch WRITE AND VERIFY(32)

7Fh/000Dh WRITE SAME(32)

7Fh/000Eh~07FFh 予約済み

7Fh/0800h~FFFFh SPC-3を参照

A.2 サービスアクションCDB

表10(5.1を参照)に示されるいくつかのコマンドは、操作コード9EhのSERVICE ACTION

IN(16)コマンド(SPC-3を参照)に対する、デバイス種別固有のサービスアクションとして実装

される。これらのコマンドは、表111に示されるサービスアクションコードにより区別される。

表111 SERVICE ACTION IN(16)サービスアクション

操作コード/サービスアクションコード 説明

9Eh/00h~0Fh 全デバイス種別に適用されるコマン

ドにおいて予約済み(SPC-3を参

照)

9Eh/10h READ CAPACITY(16)

9Eh/11h READ LONG(16)

9Eh/12h~1Fh 予約済み

表10(5.1を参照)に示されるいくつかのコマンドは、操作コード9FhのSERVICE ACTION

OUT(16)コマンド(SPC-3を参照)に対する、デバイス種別固有のサービスアクションとして実

139

Page 140: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

装される。これらのコマンドは、表112に示されるサービスアクションコードにより区別される。

表112 SERVICE ACTION OUT(16)サービスアクション

操作コード/サービスアクションコード 説明

9Fh/00h~0Fh 全デバイス種別に適用されるコマン

ドにおいて予約済み(SPC-3を参

照)

9Fh/10h 予約済み

9Fh/11h WRITE LONG(16)

9Fh/12h~1Fh 予約済み

140

Page 141: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

Annex B XORコマンド例 B.1 XORコマンド例の概要

本付録では、ストレージアレイコントローラが制御を行う構成における、XORコマンドの実行例

を示す。

B.2 更新書き込み操作

図 3は、ストレージアレイコントローラにより制御される、読み込み-更新-書き込み操作を示す。

例では、制御用ストレージアレイコントローラ、XOR保護データを保持する直接アクセスブロック

デバイス(すなわち、データディスク)、検証データを保持する直接アクセスブロックデバイス

(すなわち、パリティディスク)を使用する。XDWRITEコマンド、XDREADコマンド、XPWRITEコマ

ンドの各 SCSIコマンドが使用される。XDWRITEコマンドと後続するXDREADコマンドによるシーケ

ンスの代わりに、XDWRITEREADコマンドを使用することが可能である。

制御用ストレージアレイコントローラが、XDWRITEコマンドによりXOR保護データをデータディ

スクに送信するところから手続きが開始される。

データディスクは、古いXOR保護データをメディアから読み込み、制御用ストレージアレイコン

トローラから送信されたXOR保護データと古いXOR保護データを使用してXOR操作を行い、結果と

して得られた中間のXORデータをバッファメモリに格納し、制御用ストレージアレイコントロー

ラから送信されたXOR保護データをメディアに書き込む。制御用ストレージアレイコントローラ

は、XDREADコマンドをデータディスクに送信する事により、バッファメモリから中間のXORデー

タを読み込む。

制御用ストレージアレイコントローラは、XPWRITEコマンドを送信する事により、パリティディ

スクに中間のXORデータ(すなわち、XDREADコマンドにより読み込まれたデータ)を送信する。

パリティディスクは中間のXORデータとパリティディスクのメディアから読み込まれたナXORデー

タによりXOR操作を行い、結果として得られた新しいXORデータをメディアに書き込む。

図3. 更新書き込み操作(ストレージアレイコントローラによる制御)

訳注ナ SBC-2の原文では、中間 XORデータと「バッファメモリに保持する」XORデータとでXOR操作を行うと記載されている。しかし、

明らかに誤りであるため、訳ではSBC-3の記載に従っている。

141

制御用ストレージアレイ

コントローラ

XOR

保護データ

ポート

1

XOR保護データを保持する直接アクセスブロックデ

バイス(すなわち、データディスク)

メディアXOR1.XDWRITEコマンドによ

る新しいXOR保護データ

の出力

1.2 新規のXOR保護

データ

1.1 古いXOR保護

データ

中間 XOR

データ用

バッファ

中間 XOR

データ

ポート

2 検証データを保持する直接アクセスブロックデバ

イス(すなわち、パリティディスク)

メディア

XOR 3.1 古い検証データ3.XPWRITEコマンドによ

る中間 XORデータの出力

2.XDREADコマンドによる

中間 XORデータの入力

3.2 新規の検証データ

Page 142: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

B.3 再生成操作

図 4はストレージアレイコントローラの制御による再生成操作を示している。例では、制御用ス

トレージアレイコントローラ、3つの直接アクセスブロックデバイス(すなわち、ディスク1、

ディスク2、ディスク3)を使用する。READコマンド、XDWRITEコマンド、XDREADコマンドの3つ

のSCSIコマンドが使用される。XDWRITEコマンドと後続するXDREADコマンドによるシーケンスの

代わりに、XDWRITEREADコマンドを使用することが可能である。

制御用ストレージアレイコントローラがディスク1にREADコマンドを送信するところから、

シーケンスが開始される。本コマンドにより受信されたデータは、制御用ストレージアレイコン

トローラがDISABLE WRITEビットに1を設定したXDWRITEコマンドを送信する事で、ディスク2に

送られる。ディスク2はメディアからデータを読み込み、当該データと制御用ストレージアレイ

コントローラから受信したデータとを用いてXOR操作を実行し、結果として得られた中間のXOR

データをバッファメモリに格納する。制御用ストレージアレイコントローラは、ディスク2に

XDREADコマンドを送信する事で、中間のXORデータを取得する。制御用ストレージアレイコント

ローラは、XDWRITEコマンドとXDREADコマンドを同一の方法によりディスク3に送信する。ディ

スク3から結果として得られるデータが、再生成されたデータとなる。

図4. 再生成操作(ストレージアレイコントローラの制御による)

B.4 再構築操作

図 5は、ストレージアレイコントローラの制御による再構築操作を示す。例では、制御用スト

レージアレイコントローラ、コピー元デバイスとして使用される2つの直接アクセスブロックデ

バイス(すなわち、ディスク1とディスク2)、再構築対象である1つの直接アクセスブロックデ

バイス(すなわち、ディスク3)を使用する。READコマンド、XDWRITEコマンド、XDREADコマン

ド、WRITEコマンドの4つのSCSIコマンドが使用される。XDWRITEコマンドと後続するXDREADコ

マンドによるシーケンスの代わりに、XDWRITEREADコマンドを使用することが可能である。

142

制御用ストレージア

レイコントローラ

データ

 ポート

1

直接アクセスブロックデバイス

(すなわち、ディスク1)

メディア

中間 XOR

データ用

バッファ

中間 XOR

データ

ポート

3

XOR 2.1 データ

1.READコマンドによるデー

タの入力

メディア

直接アクセスブロックデバイス

(すなわち、ディスク2)

ポート

2 

2.XDWRITEコマンドないし

XDWRITEREADコマンドによ

るデータの出力

3.XDREADコマンドないし

XDWRITEREADコマンドによ

る中間 XORデータの入力

中間 XOR

データ用

バッファ

XOR 4.1 データ

メディア

直接アクセスブロックデバイス

(すなわち、ディスク3)

4.XDWRITEコマンドないし

XDWRITEREADコマンドによ

る中間 XORデータの出力

5.XDREADコマンドないし

XDWRITEREADコマンドによ

る中間 XORデータの入力

再生成された

データ

Page 143: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

制御用ストレージアレイコントローラがディスク1にREADコマンドを送信することから、シー

ケンスが開始される。READコマンドにより取得されたデータは、制御用ストレージアレイコント

ローラが、DISABLE WRITEビットに1を設定したXDWRITEコマンドを送信する事により、ディスク

2に送られる。ディスク2はメディアからデータを読み込み、当該データと制御用ストレージアレ

イコントローラから受信したデータとを用いてXOR操作を行い、結果として得られた中間のXOR

データをバッファメモリに格納する。制御用ストレージアレイコントローラは、XDREADコマンド

をディスク2に送信する事で、中間のXORデータを取得する。

ディスク2から得られた結果が再構築されたデータとなり、WRITEコマンドを用いて、再構築対

象となる直接アクセスブロックデバイス(すなわち、ディスク3)に送信される。

図5. 再構築操作(ストレージアレイコントローラの制御による)

143

制御用ストレージア

レイコントローラ

データ

 ポート

1

直接アクセスブロックデバイス

(すなわち、ディスク1)

メディア

中間 XOR

データ用

バッファ

中間 XOR

データ

ポート

3

XOR 2.1 データ

1.READコマンドによる

データの入力

メディア

直接アクセスブロックデバイス

(すなわち、ディスク2)

ポート

2 

2.XDWRITEコマンドないし

XDWRITEREADコマンドによ

るデータの出力

3.XDREADコマンドないし

XDWRITEREADコマンドによ

る中間 XORデータの入力

再構築データ メディア

直接アクセスブロックデバイス

(すなわち、ディスク3)

4.WRITEコマンドによる中

間 XORデータの出力

データ

Page 144: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

Annex C CによるCRCの例

下記は、保護情報内の LOGICAL BLOCK GUARDフィールド(4.16を参照)に格納される値を生成

するための、C言語によるプログラムの例である。

// picrc.cpp : SCSI SBC-2 保護情報CRCジェネレータ

#include “stdafx.h”

#include <stdio.h>

#include <malloc.h>

/* CRCの値を返す */

unsigned short calculate_crc(unsigned char *frame, unsigned long length) {

unsigned short const poly = 0x8BB7L; /* 生成子の多項式G(x) */

unsigned const int poly_length = 16;

unsigned short crc_gen;

unsigned short x;

unsigned int i, j, fb;

unsigned const int invert = 0;/* 1が指定された場合はシードに1sを使用し、CRCの逆生成を行う */

crc_gen = 0x0000;

crc_gen ^= invert? 0xFFFF: 0x0000; /* seed generator */

for (i = 0; i < length; i += 2) {

/* リトルエンディアンであると仮定する */

x = (frame[i] << 8) | frame[i+1];

/* シリアルシフトレジスタの実装 */

for (j = 0; j < poly_length; j++) {

fb = ((x & 0x8000L) == 0x8000L) ^ ((crc_gen & 0x8000L) == 0x8000L);

x <<= 1;

crc_gen <<= 1;

if (fb)

crc_gen ^= poly;

}

}

return crc_gen ^ (invert? 0xFFFF: 0x0000); /* 出力を反転 */

} /* calculate_crc */

/* 関数プロトタイプ */

unsigned short calculate_crc(unsigned char *, unsigned long);

void main (void) {

unsigned char *buffer;

unsigned long buffer_size = 32;

unsigned short crc;

unsigned int i;

/* 32個の00hに対してCRCを生成する */

buffer = (unsigned char *) malloc (buffer_size);

for (i = 0; i < buffer_size; i++) {

buffer[i] = 0x00;

}

crc = calculate_crc(buffer, buffer_size);

printf ("Example CRC all-zeros is %04x\n", crc);

free (buffer);

/* 32個のFFhに対してCRCを生成する */

buffer = (unsigned char *) malloc (buffer_size);

for (i = 0; i < buffer_size; i++) {

buffer[i] = 0xFF;

}

crc = calculate_crc(buffer, buffer_size);

printf ("Example CRC all-ones is %04x\n", crc);

144

Page 145: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

free (buffer);

/* 00h~1Fhまで1ずつ増加する値に対してCRCを生成する */

buffer = (unsigned char *) malloc (buffer_size);

for (i = 0; i < buffer_size; i++) {

buffer[i] = i;

}

crc = calculate_crc(buffer, buffer_size);

printf ("Example CRC incrementing is %04x\n", crc);

free (buffer);

/* 2バイトのFFhと後続する30バイトの00hに対してCRCを生成する */

buffer = (unsigned char *) malloc (buffer_size);

buffer[0] = 0xff;

buffer[1] = 0xff;

for (i = 2; i < buffer_size; i++) {

buffer[i] = 0x00;

}

crc = calculate_crc(buffer, buffer_size);

printf ("Example CRC FF FF then 30 zeros is %04x\n", crc);

free (buffer);

/* FFh~E0hまで1ずつ減算する値に対してCRCを生成する */

buffer = (unsigned char *) malloc (buffer_size);

for (i = 0; i < buffer_size; i++) {

buffer[i] = 0xff - i;

}

crc = calculate_crc(buffer, buffer_size);

printf ("Example CRC FF decrementing to E0 is %04x\n", crc);

free (buffer);

} /* main */

145

Page 146: Information technology - SCSI Block Commands - 2 … Block Commands - 2 (SBC-2) 目次 1 スコープ 6 2 引用規格 8 2.1 引用規格の概要 8

SCSI Block Commands - 2 (SBC-2)

146

Information technology -

SCSI Block Commands - 2 (SBC-2) 2005/5/19

本書はnabiki_tが勝手に和訳したものであり、内容の正確等、一切の保証は存在しない。

http://www.syuhitu.org/

2014年 3月 12日