ISO/IEC 14776-232:2001 情報技術— Small Computer System Interface(SCSI)—パート232:シリアルバスプロトコル2(SBP-2) | ページ 5

※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。

3 定義と表記

3.1 定義

3.1.1 適合性

次のように、要件とオプションのレベルを区別するためにいくつかのキーワードが使用されます。

3.1.1.1

期待される

この規格が想定する設計モデルにおけるハードウェアまたはソフトウェアの動作を記述するために使用されるキーワード。他のハードウェアおよびソフトウェア設計モデルも実装できます。

3.1.1.2

無視された

値が受信者によってチェックされないビット、バイト、クワドレット、オクレット、またはフィールドを記述するキーワード。

3.1.1.3

5月

暗黙の好みではなく、選択の柔軟性を示すキーワード。

3.1.1.4

予約済み

オブジェクト (ビット、バイト、クワッドレット、オクレット、およびフィールド) を記述するために使用されるキーワード、またはオブジェクトまたはコード値が将来の標準化のために取っておかれる場合にこれらのオブジェクトに割り当てられるコード値。使用法と解釈は、この標準または他の標準の将来の拡張によって指定される場合があります。予約済みオブジェクトはゼロにするか、将来の標準の開発時に、そのような標準で指定された値に設定する必要があります。予約済みオブジェクトの受信者は、その値をチェックしません。予約済み以外のこの標準によって定義されたオブジェクトの受信者は、その値をチェックし、予約済みのコード値を拒否するものとします。

3.1.1.5

しなければならない

必須要件を示すキーワード。設計者は、この規格に準拠する他の製品との相互運用性を確保するために、そのような必須要件をすべて実装する必要があります。

3.1.1.6

したほうがいい

強く優先される代替案を選択する柔軟性を示すキーワード。 「 をすすめる 」 に相当 。

3.1.2 用語集

この規格では、次の用語が使用されています。

3.1.2.1

バイト

8 ビットのデータ。

3.1.2.2

コマンドブロック

デバイス機能またはデバイス メディアとの間のデータ転送を制御する論理ユニット用のコマンドを記述するために、ORB 内に予約されているスペース。コマンド ブロックの形式と意味は、SBP-2 の範囲外であり、コマンド セットまたはデバイスに依存します。

3.1.2.3

デバイスサーバー

データ転送またはその他のデバイス操作を指定するコマンド ブロックによって開始されるタスクの実行を担当する論理ユニットのコンポーネント。

3.1.2.4

初期ノードスペース

各ノードで使用できる 256 テラバイトのシリアル バス アドレス空間。初期ノード空間内のアドレスは 48 ビットで、ゼロを基点としています。初期ノード空間には、初期メモリ空間、プライベート空間、初期レジスタ空間、および初期ユニット空間が含まれます。アドレス空間の詳細については、ISO/IEC 13213 または ANSI/IEEE 1394 を参照してください。

3.1.2.5

初期レジスタ空間

FFFF F000 0000 16のベースアドレスを持つ初期ノード空間の 2 キロバイト部分。 ISO/IEC 13213 で定義されたコア レジスタは、ANSI/IEEE 1394 で定義されたシリアル バス依存レジスタと同様に、初期レジスタ空間内に配置されます。

3.1.2.6

初期単位空間

FFFF F000 0800 16のベースアドレスを持つ初期ノード空間の一部。これにより、初期ユニット空間が初期レジスタ空間に隣接し、その上に配置されます。ユニット アーキテクチャによって定義される CSR およびその他の施設は、このスペース内にあることが期待されます。

3.1.2.7

イニシエータ

デバイス サービスまたは管理要求を発信し、これらの要求を処理のためにターゲットに通知するノード。

3.1.2.8

キロバイト

2 10バイトに等しいデータ量。

3.1.2.9

論理ユニット

ディスク、CDROM, プリンタなどのデバイス モデルのインスタンスであるユニット アーキテクチャの一部。ターゲットは、1 つ以上の論理ユニットを実装します。論理ユニットのデバイス タイプは異なる場合があります。

3.1.2.10

ログイン

イニシエータが一連のターゲット フェッチ エージェントへのアクセスを取得するプロセス。ターゲット フェッチ エージェントとその制御およびステータス レジスタは、イニシエータが ORB をターゲットに通知するためのメカニズムを提供します。

3.1.2.11

ログインID

ログイン プロセス中にターゲットによって割り当てられる値。ログイン ID は、イニシエーターとタスク セットの間の関係を確立します。ログイン ID は、イニシエーターからの後続の要求を識別するために使用されます。場合によっては、ログイン ID が操作要求ブロックに存在せず、その値が暗黙的になります。

3.1.2.12

ノード

シリアル バスに接続されたアドレス可能なデバイス。

3.1.2.13

ノードID

ANSI/IEEE 1394 で定義された 16 ビットのノード識別子で、バス ID 部分と物理 ID 部分で構成されます。物理 ID は、シリアル バスの初期化の結果として一意に割り当てられます。

3.1.2.14

オクレット

8 バイトまたは 64 ビットのデータ。

3.1.2.15

操作要求ブロック

カプセル化されたコマンドを実行するために、ターゲットによってシステム メモリからフェッチされるデータ構造。

3.1.2.16

クワッド

4 バイトまたは 32 ビットのデータ。

3.1.2.17

受け取る

この動詞の任意の形式がシリアル バス プライマリ パケットのコンテキストで使用される場合、パケットがトランザクションまたはアプリケーション層、つまりリンク層より上の層で利用可能になることを示します。 PHY によって繰り返されるパケットも、リンクによって検査されるパケットも、前述のことが真でない限り、ノードによって「受信」されません。

3.1.2.18

登録

シリアル バス トランザクションによって読み取りまたは書き込みが可能なクワドレットにアラインされたアドレスを表すために使用される用語。この規格のコンテキストでは、レジスタという用語の使用は、特定のハードウェア実装を意味するものではありません。たとえば、要求サブアクションと応答サブアクションの間に十分な時間を許可する分割トランザクションの場合、レジスタの動作はプロセッサによってエミュレートされる場合があります。

3.1.2.19

リクエストサブアクション

ノード (リクエスター) によって送信されるパケットで、トランザクション コードとオプションのデータを別のノード (レスポンダー) に伝達します。

3.1.2.20

応答サブアクション

応答コードとオプションのデータを別のノード (リクエスター) に通信するノード (レスポンダー) によって送信されるパケット。応答サブアクションは、肯定応答パケットまたは応答パケットのいずれかで構成されます。

3.1.2.21

分割取引

要求サブアクションとそれに続く別の応答サブアクションで構成されるトランザクション。バスの所有権が 2 つの間で放棄された場合、サブアクションは別個のものと見なされます。

3.1.2.22

ステータスブロック

操作要求ブロックが完了したときに、ターゲットによってシステム メモリに書き込まれるデータ構造。

3.1.2.23

お店

この動詞の任意の形式が、ターゲットによってイニシエータまたは他のデバイスのシステム メモリに転送されるデータのコンテキストで使用される場合、シリアル バス書き込み要求サブアクション、クワドレットまたはブロックの両方を使用して配置することを示します。システムメモリ内のデータと、書き込みを完了する対応する応答サブアクション。

3.1.2.24

システムメモリ

シリアル バス アドレスによって直接アドレス指定可能で、少なくともクワドレットの読み取りおよび書き込みアクセスを受け入れる任意のノードのメモリの部分。コンピュータは、シリアル バスからシステム メモリをアドレス指定可能にする可能性のあるノードの最も一般的な例ですが、通常は周辺機器と見なされるノードを含め、どのノードにもシステム メモリがある可能性があります。

3.1.2.25

目標

イニシエータからデバイス サービスまたは管理要求を受信するノード。デバイス サービス要求の場合、コマンドはターゲットの論理ユニットの 1 つに送られ、実行されます。管理リクエストは、ターゲットによって処理されます。 CSR アーキテクチャ ユニットは、ターゲットと同義です。

3.1.2.26

タスク

タスクは、ORB によってカプセル化されたコマンドを実行するためにターゲットによって実行される作業を表す編成概念です。タスクを実行するために、ターゲットはタスクのコンテキスト情報を維持します。これには、コマンド、データ転送アドレスと長さなどのパラメーター、完了ステータス、および他のタスクとの順序関係が含まれますが、これらに限定されません。タスクには有効期間があり、タスクがターゲットのタスク セットに入力されたときに開始され、ターゲットによる実行期間を経て進み、完了ステータスがイニシエーターに保存されるか、完了が他の情報から推定されるときに終了します。タスクがアクティブな間、ターゲット リソースとイニシエータ リソースの両方を利用します。

3.1.2.27

タスクセット

ターゲットの論理ユニットによる実行に使用できるタスクのグループ。この標準は、タスク セット内の個々のタスク間のいくつかの依存関係を指定しますが、この標準で指定されていない他の依存関係がある場合があります。

3.1.2.28

テラバイト

2 40バイトに等しいデータ量。

3.1.2.29

取引

シリアル バス要求サブアクションと対応する応答サブアクション。 request サブアクションは、トランザクション コード (クワッドレット読み取り、ブロック書き込み、ロックなど) を送信します。一部のリクエスト サブアクションには、データとトランザクション コードが含まれます。ブロードキャスト宛先アドレスまたはブロードキャスト トランザクション コードを持つトランザクションの場合、応答サブアクションは null です。それ以外の場合は、完了ステータスと場合によってはデータを返します。

3.1.2.30

単位

処理、メモリ、I/O, またはその他の機能を提供するシリアル バス ノードのコンポーネント。ノードが初期化されると、ユニットは、通常、イニシエータでデバイス ドライバ ソフトウェアによってアクセスされる CSR インターフェイスを提供します。ノードには、通常は互いに独立して動作する複数のユニットが含まれる場合があります。この規格内では、ユニットはターゲットに相当します。

3.1.2.31

ユニットのアーキテクチャ

シリアル バス ノード内に実装されたユニットへのインターフェイスおよびユニットによって提供されるサービスの仕様。この標準は、SBP-2 ターゲットのユニット アーキテクチャです。

3.1.2.32

ユニットアテンション

ログインしている 1 つ以上のイニシエータに報告する非送信請求ステータス情報がある間、論理ユニットが維持する状態。ユニット アテンション状態は、この標準の他の箇所、または該当するコマンド セットおよびデバイスに依存するドキュメントで説明されているように作成する必要があります。ユニット アテンション状態は、a) ユニット アテンション状態がイニシエータに正常に保存されたことを報告する非送信請求ステータス、または b) イニシエータのログインが無効になるか解放されるまで、ログインしたイニシエータに対して持続するものとします。論理ユニットは、ユニット アテンション状態をキューに入れることができます。最初のユニット注意状態がクリアされた後、別のユニット注意状態が存在する可能性があります。

3.1.2.33

ワーキングセット

ターゲットによってイニシエータからフェッチされ、ローカル ストレージでターゲットが使用できるタスク セットの一部。

3.1.3 略語

この規格では、次の略語が使用されています。

CSRコントロールおよびステータスレジスタ
CRC循環冗長チェックサム
EUI-64拡張一意識別子、64 ビット
LUN論理ユニット番号
オーブ操作要求ブロック
SAM-2SCSI アーキテクチャ モデル 2
SBP-2Serial Bus Protocol 2 (この規格そのもの)
SPC-2SCSI プライマリ コマンド 2

3.2 スコア

この標準を理解するために、読者は次の規則を理解する必要があります。

3.2.1 数値

この標準では、10 進数、16 進数、および場合によっては 2 進数が使用されます。編集上の慣例により、10 進数は数量または数を表すために最も頻繁に使用されます。アドレスは一様に 16 進数で表されます。 16 進数は、表される値が 10 進数形式よりも 16 進数形式でより明白な基礎となる構造を持っている場合にも使用されます。 2 進数はめったに使用されず、通常はフィールド内のビット パターンの表現に限定されます。

10 進数は、下付き文字のないアラビア数字または英語名で表されます。 16 進数は、文字セット 0 ~ 9 および A ~ F の数字とそれに続く添字 16 で表されます。2 進数は、文字セット 0 および 1 の数字とそれに続く添字 2 で表されます。数の基数は省略できます。読みやすくするために、2 進数と 16 進数は、スペースで区切られた 4 桁のグループに分けられます。

例として、42, 2A 16 、および 0010 1010 2はすべて同じ数値を表します。

3.2.2 ビット、バイト、クワドレットの順序

SBP-2 は、シリアル バス、ANSI/IEEE 1394 の機能を使用するように定義されているため、データ構造の表現にシリアル バスの順序付け規則を使用します。異なる順序付け規則を持つメモリ バスとの相互運用性を促進するために、この標準では、バイト内のビット、クワドレット内のバイト、およびオクレット内のクワドレットの順序と意味を、物理的にアドレス指定された位置ではなく、相対的な位置で定義します。

以下に示すように、バイト内では、最上位ビットmsbが最初に送信され、最下位ビットlsbがシリアル バスで最後に送信されます。内部ビットの重要度は、 msbtolsbへと一様に減少します (図 1 を参照)

図 1 —バイト内のビット順序

クワッドレット内では、最上位バイトは最初に送信されるバイトであり、最下位バイトはシリアル バスで最後に送信されるバイトです。図 2 を参照してください。

図 2 —クワドレット内のバイト順

64 ビットのシリアル バス アドレスを格納するために頻繁に使用されるオクレット内では、最も重要なクワドレットが最初に送信されるものであり、最下位のクワドレットがシリアル バスで最後に送信されるものです (図 3 を参照)

図 3 —オクレット内のクワドレットの順序付け

クワドレットにアラインされていない、またはクワドレットの整数ではないブロック転送が行われる場合、そのようなブロック転送のアラインされていない開始または分数のクワドレット終了でのバイトの順序付け (クワドレット内の重要性) について仮定を行うことはできません。アプリケーションには、他のバスの順序付け規則に関する (この標準の範囲外の) 知識があります。

3.2.3 スペックレジスタ

この規格は、制御レジスタとステータス レジスタ、CSR の形式と機能を定義します。これらのレジスタの一部は読み取り専用で、一部は読み取りと書き込みの両方が可能で、一部は書き込み後に特別な副作用を生成します。

CSR, そのビット フィールド、初期値、および読み取り、書き込み、またはその他のトランザクションの効果を定義するために、図 4 に示す形式が使用されます。

図 4 — CSR 仕様の例

レジスタ定義には、レジスタ フィールドの名前が含まれています。名前はわかりやすいように意図されていますが、フィールドはテキストで定義されています。それらの機能は、それらの名前だけから推測されるべきではありません。ただし、次のフィールド名には定義済みの意味があります。

略語意味
バス依存バス依存フィールドの意味は、バス規格 (この場合は ANSI/IEEE Std 1394) によって定義されています。
予約済みrフィールドは将来の標準化のために予約されています (定義を参照)
単位依存単位依存フィールドの意味は、ユニット アーキテクチャを担当する組織によって定義されるものとします。
ベンダー依存ベンダー依存または vフィールドの意味は、ノードのベンダーによって定義されます。

CSR は、電源の回復時 (電源リセット)、またはノードの RESET_START レジスタへの書き込み時 (コマンド リセット) に初期値を想定する必要があります。電源リセット値がコマンド リセット値と異なる場合、それらは個別に明示的に定義されます。レジスタ フィールドの初期値は、数値定数として、またはレジスタ定義で定義された用語の 1 つを使用して記述できます。リセット後のレジスタフィールドの値は、同じ用語で、または以下で定義されているように記述できます。

略語意味
変更なしxこのフィールドは、電源リセット、バス リセット、またはコマンド リセットの直前の値を保持します。

定数フィールドの数値に加えて、quadlet 読み取りトランザクションに応答して返される読み取り値は、以下の用語によって指定される場合があります。

略語意味
最後の書き込みwフィールドの値は、初期値、またはレジスタにアドレス指定された書き込みまたはロック トランザクションが正常に完了した場合は、フィールドに最後に格納された値のいずれかになります。 4
最後の更新uフィールドの値は、ノードのハードウェアまたはソフトウェアによって最後に更新されたものでなければなりません。更新されたフィールド値は、同じレジスタ アドレスへの書き込み効果、異なるレジスタ アドレス、またはノード内のその他の条件の変化の結果である可能性があります。

レジスタに書き込まれたデータの影響は、次の用語によって規定されます。

略語意味
効果eフィールドに書き込まれたデータの値は、ノードの状態に影響を与える可能性がありますが、その影響は同じレジスタを読み取ってもすぐにはわかりません。効果は別のレジスターに表示される場合もあれば、まったく表示されない場合もあります。
無視されたiフィールドに書き込まれたデータの値は無視されます。ノードの状態には影響しません。
保存されたsフィールドに書き込まれたデータの値は、同じレジスタの読み取りによってすぐに表示されます。また、ノードの状態に他の影響を与える場合もあります。

レジスタ内の予約フィールドは、初期値、読み取り値、および書き込み効果に関して明示的に記述されます。書き込み効果は無視されますが、初期値と読み取り値はゼロでなければなりません。オプションであるか、予約されたアドレス空間内にあるために実装されていない CSR は、読み取り、書き込み、またはロック要求に対して正常な完了応答が返された場合、これらの同じ規則に従うものとします。

3.2.4 ステートマシン

この規格のすべてのステート マシンは、図 5 に示すスタイルで定義されています。

図 5 —ステート マシンの例

この規格のステート マシンは、次の 3 つの前提を置いています。

  • 時間は離散状態でのみ経過します。
  • 状態遷移は概念的に瞬時です。移行中に実行される唯一のアクションは、フラグまたは変数の設定とシグナルの送信です。他の
  • 状態に入る (またはそれ自体から再度入る) たびに、その状態のアクションが実行されます。

複数の遷移が 2 つの状態を接続する場合があります。この場合、S0:S1a と S0:S1b のように、トランジション ラベルに文字を追加することで、トランジションに一意のラベルが付けられます。

3 Definitions and notation

3.1 Definitions

3.1.1 Conformance

Several keywords are used to differentiate levels of requirements and optionality, as follows:

3.1.1.1

expected

A keyword used to describe the behavior of the hardware or software in the design models assumed by this standard. Other hardware and software design models may also be implemented.

3.1.1.2

ignored

A keyword that describes bits, bytes, quadlets, octlets or fields whose values are not checked by the recipient.

3.1.1.3

may

A keyword that indicates flexibility of choice with no implied preference.

3.1.1.4

reserved

A keyword used to describe objects—bits, bytes, quadlets, octlets and fields—or the code values assigned to these objects in cases where either the object or the code value is set aside for future standardization. Usage and interpretation may be specified by future extensions to this or other standards. A reserved object shall be zeroed or, upon development of a future standard, set to a value specified by such a standard. The recipient of a reserved object shall not check its value. The recipient of an object defined by this standard other than reserved shall check its value and reject reserved code values.

3.1.1.5

shall

A keyword that indicates a mandatory requirement. Designers are required to implement all such mandatory requirements to assure interoperability with other products conforming to this standard.

3.1.1.6

should

A keyword that denotes flexibility of choice with a strongly preferred alternative. Equivalent to the phrase " is recommended ."

3.1.2 Glossary

The following terms are used in this standard:

3.1.2.1

byte

Eight bits of data.

3.1.2.2

command block

Space reserved within an ORB to describe a command intended for a logical unit that controls device functions or the transfer of data to or from device medium. The format and meaning of command blocks are outside the scope of SBP-2 and are command set- or device-dependent.

3.1.2.3

device server

A component of a logical unit responsible to execute tasks initiated by command blocks that specify data transfer or other device operations.

3.1.2.4

initial node space

The 256 terabytes of Serial Bus address space that may be available to each node. Addresses within initial node space are 48 bits and are based at zero. The initial node space includes initial memory space, private space, initial register space and initial units space. See either ISO/IEC 13213 or ANSI/IEEE 1394 for more information on address spaces.

3.1.2.5

initial register space

A two kilobyte portion of initial node space with a base address of FFFF F000 000016. Core registers defined by ISO/IEC 13213 are located within initial register space as are Serial Bus-dependent registers defined by ANSI/IEEE 1394.

3.1.2.6

initial units space

A portion of initial node space with a base address of FFFF F000 080016. This places initial units space adjacent to and above initial register space. The CSRs and other facilities defined by unit architectures are expected to lie within this space.

3.1.2.7

initiator

A node that originates device service or management requests and signals these requests to a target for processing.

3.1.2.8

kilobyte

A quantity of data equal to 210 bytes.

3.1.2.9

logical unit

The part of the unit architecture that is an instance of a device model, e.g., disk, CDROM or printer. Targets implement one or more logical units; the device type of the logical units may differ.

3.1.2.10

login

The process by which an initiator obtains access to a set of target fetch agents. The target fetch agents and their control and status registers provide a mechanism for an initiator to signal ORBs to the target.

3.1.2.11

login ID

A value assigned by the target during the login process. The login ID establishes a relationship between an initiator and a task set. The login ID is used to identify subsequent requests from an initiator; in some cases the login ID is not present in the operation request block and its value is implicit.

3.1.2.12

node

An addressable device attached to Serial Bus.

3.1.2.13

node ID

The 16-bit node identifier defined by ANSI/IEEE 1394 that is composed of a bus ID portion and a physical ID portion. The physical ID is uniquely assigned as a consequence of Serial Bus initialization.

3.1.2.14

octlet

Eight bytes, or 64 bits, of data.

3.1.2.15

operation request block

A data structure fetched from system memory by a target in order to execute the command encapsulated within it.

3.1.2.16

quadlet

Four bytes, or 32 bits, of data.

3.1.2.17

receive

When any form of this verb is used in the context of Serial Bus primary packets, it indicates that the packet is made available to the transaction or application layers, i.e., layers above the link layer. Neither a packet repeated by the PHY nor a packet examined by the link is"received" by the node unless the preceding is also true.

3.1.2.18

register

A term used to describe quadlet aligned addresses that may be read or written by Serial Bus transactions. In the context of this standard, the use of the term register does not imply a specific hardware implementation. For example, in the case of split transactions that permit sufficient time between the request and response subactions, the behavior of the register may be emulated by a processor.

3.1.2.19

request subaction

A packet transmitted by a node (the requester) that communicates a transaction code and optional data to another node (the responder) or nodes.

3.1.2.20

response subaction

A packet transmitted by a node (the responder) that communicates a response code and optional data to another node (the requester). A response subaction may consist of either an acknowledge packet or a response packet.

3.1.2.21

split transaction

A transaction that consists of a request subaction followed by a separate response subaction. Subactions are considered separate if ownership of the bus is relinquished between the two.

3.1.2.22

status block

A data structure that may be written to system memory by a target when an operation request block has been completed.

3.1.2.23

store

When any form of this verb is used in the context of data transferred by the target to the system memory of either an initiator or other device, it indicates both the use of Serial Bus write request subaction(s), quadlet or block, to place the data in system memory and the corresponding response subaction(s) that complete the write(s).

3.1.2.24

system memory

The portions of any node's memory that are directly addressable by a Serial Bus address and that accepts, at a minimum, quadlet read and write access. Computers are the most common example of nodes that might make system memory addressable from Serial Bus, but any node, including those usually thought of as peripheral devices, may have system memory.

3.1.2.25

target

A node that receives device service or management requests from an initiator. In the case of device service requests, the commands are directed to one of the target's logical units to be executed. Management requests are serviced by the target. A CSR Architecture unit is synonymous with a target.

3.1.2.26

task

A task is an organizing concept that represents the work to be done by a target to carry out a command encapsulated by an ORB. In order to perform a task, a target maintains context information for the task, which includes (but is not limited to) the command, parameters such as data transfer addresses and lengths, completion status and ordering relationships to other tasks. A task has a lifetime, which commences when the task is entered into the target's task set, proceeds through a period of execution by the target and finishes either when completion status is stored at the initiator or when completion may be deduced from other information. While a task is active, it makes use of both target resources and initiator resources.

3.1.2.27

task set

A group of tasks available for execution by a logical unit of a target. This standard specifies some dependencies between individual tasks within the task set but there may be others not specified by this standard.

3.1.2.28

terabyte

A quantity of data equal to 240 bytes.

3.1.2.29

transaction

A Serial Bus request subaction and the corresponding response subaction. The request subaction transmits a transaction code (such as quadlet read, block write or lock); some request subactions include data as well as transaction codes. The response subaction is null for transactions with broadcast destination addresses or broadcast transaction codes; otherwise it returns completion status and possibly data.

3.1.2.30

unit

A component of a Serial Bus node that provides processing, memory, I/O or some other functionality. Once the node is initialized, the unit provides a CSR interface that is typically accessed by device driver software at an initiator. A node may have multiple units, which normally operate independently of each other. Within this standard, a unit is equivalent to a target.

3.1.2.31

unit architecture

The specification of the interface to and the services provided by a unit implemented within a Serial Bus node. This standard is a unit architecture for SBP-2 targets.

3.1.2.32

unit attention

A state that a logical unit maintains while it has unsolicited status information to report to one or more logged-in initiators. A unit attention condition shall be created as described elsewhere in this standard or in the applicable command-set- and device-dependent documents. A unit attention condition shall persist for a logged-in initiator until a) unsolicited status that reports the unit attention condition is successfully stored at the initiator or b) the initiator's login becomes invalid or is released. Logical units may queue unit attention conditions; after the first unit attention condition is cleared, another unit attention condition may exist.

3.1.2.33

working set

The part of a task set that has been fetched from the initiator by the target and is available to the target in its local storage.

3.1.3 Abbreviations

The following abbreviations are used in this standard:

CSRControl and status register
CRCCyclical redundancy checksum
EUI-64Extended Unique Identifier, 64-bits
LUNLogical unit number
ORBOperation request block
SAM-2SCSI Architecture Model 2
SBP-2Serial Bus Protocol 2 (this standard itself)
SPC-2SCSI Primary Commands 2

3.2 Notation

The following conventions should be understood by the reader in order to comprehend this standard.

3.2.1 Numeric values

Decimal, hexadecimal and, occasionally, binary numbers are used within this standard. By editorial convention, decimal numbers are most frequently used to represent quantities or counts. Addresses are uniformly represented by hexadecimal numbers. Hexadecimal numbers are also used when the value represented has an underlying structure that is more apparent in a hexadecimal format than in a decimal format. Binary numbers are used infrequently and generally limited to the representation of bit patterns within a field.

Decimal numbers are represented by Arabic numerals without subscripts or by their English names. Hexadecimal numbers are represented by digits from the character set 0 — 9 and A — F followed by the subscript 16. Binary numbers are represented by digits from the character set 0 and 1 followed by the subscript 2. When the subscript is unnecessary to disambiguate the base of the number it may be omitted. For the sake of legibility, binary and hexadecimal numbers are separated into groups of four digits separated by spaces.

As an example, 42, 2A16 and 0010 10102 all represent the same numeric value.

3.2.2 Bit, byte and quadlet ordering

SBP-2 is defined to use the facilities of Serial Bus, ANSI/IEEE 1394, and therefore uses the ordering conventions of Serial Bus in the representation of data structures. In order to promote interoperability with memory buses that may have different ordering conventions, this standard defines the order and significance of bits within bytes, bytes within quadlets and quadlets within octlets in terms of their relative position and not their physically addressed position.

Within a byte, the most significant bit, msb, is that which is transmitted first and the least significant bit, lsb, is that which is transmitted last on Serial Bus, as illustrated below. The significance of the interior bits uniformly decreases in progression from msbtolsb, see Figure 1.

Figure 1—Bit ordering within a byte

Within a quadlet, the most significant byte is that which is transmitted first and the least significant byte is that which is transmitted last on Serial Bus, see Figure 2.

Figure 2—Byte ordering within a quadlet

Within an octlet, which is frequently used to contain 64-bit Serial Bus addresses, the most significant quadlet is that which is transmitted first and the least significant quadlet is that which is transmitted last on Serial Bus, see Figure 3.

Figure 3—Quadlet ordering within an octlet

When block transfers take place that are not quadlet aligned or not an integral number of quadlets, no assumptions can be made about the ordering (significance within a quadlet) of bytes at the unaligned beginning or fractional quadlet end of such a block transfer, unless an application has knowledge (outside of the scope of this standard) of the ordering conventions of the other bus.

3.2.3 Register specifications

This standard defines the format and function of control and status registers, CSRs. Some of these registers are read-only, some are both readable and writable and some generate special side effects subsequent to a write.

In order to define CSRs, their bit fields, their initial values and the effects of read, write or other transactions, the format illustrated by Figure 4 is used.

Figure 4—CSR specification example

The register definition contains the names of register fields. The names are intended to be descriptive, but the fields are defined in the text; their function should not be inferred solely from their names. However, the following field names have defined meanings.

NameAbbreviationDefinition
bus-dependentbus-dependThe meaning of the field is defined by the bus standard, in this case ANSI/IEEE Std 1394
reservedrThe field is reserved for future standardization (see definitions)
unit-dependentunit-dependThe meaning of the field shall be defined by the organization responsible for the unit architecture
Vendor-dependentvendor-depend or vThe meaning of the field shall be defined by the node's vendor

CSRs shall assume initial values upon the restoration of power (a power reset) or upon a write to the node's RESET_START register (a command reset). If the power reset values differ from the command reset values, they are separately and explicitly defined. Initial values for register fields may be described as numeric constants or with one of the terms defined for the register definition. Values for register fields subsequent to a reset may be described in the same terms or as defined below.

NameAbbreviationDefinition
unchangedxThe field retains whatever value it had just prior to the power reset, bus reset or command reset.

In addition to numeric values for constant fields, the read values returned in response to a quadlet read transaction may be specified by the terms below.

NameAbbreviationDefinition
last writewThe value of the field shall be either the initial value or, if a write or lock transaction addressed to the register has successfully completed, the value most recently stored in the field. 4
last updateuThe value of the field shall be that most recently updated by the node hardware or software. An updated field value may be the result of a write effect to the same register address, a different register address or some other change of condition within the node.

The effects of data written to the register are specified by the terms below.

NameAbbreviationDefinition
effecteThe value of the data written to the field may have an effect on the node's state, but the effect may not be immediately visible by a read of the same register. The effect may be visible in another register or may not be visible at all.
ignorediThe value of the data written to the field shall be ignored; it shall have no effect on the node's state.
storedsThe value of the data written to the field shall be immediately visible by a read of the same register; it may also have other effects on the node's state.

Reserved fields within a register shall be explicitly described with respect to initial values, read values and write effects. Initial values and read values shall be zero while write effects shall be ignored. CSRs that are not implemented, either because they are optional or they fall within a reserved address space, shall abide by these same conventions if a successful completion response is returned for a read, write or lock request.

3.2.4 State machines

All state machines in this standard are defined in the style illustrated by Figure 5.

Figure 5—State machine example

The state machines in this standard make three assumptions:

  • time elapses only within a discrete state;
  • state transitions are conceptually instantaneous; the only actions taken during the transition are the setting of flags or variables and the sending of signals; and
  • each time a state is entered (or reentered from itself), the actions of that state are performed.

Multiple transitions may connect two states. In this case, the transitions are uniquely labeled by appending a character to the transition label, e.g., S0:S1a and S0:S1b.