>サイトトップへ >このカテゴリの一覧へ

X 6801 : 1998

(1) 

まえがき

この規格は,工業標準化法に基づいて,日本工業標準調査会の審議を経て,通商産業大臣が制定した日

本工業規格である。

この規格に従うことは,次に示す特許権の使用に該当するおそれがある。

発明の名称

システムバス制御方法(特許第 2504323 号)

設定登録日

平成 8 年 4 月 2 日

発明の名称

データ転送制御方式(特許第 2504548 号)

設定登録日

平成 8 年 4 月 2 日

発明の名称

データ転送制御方式(特開平 2-159661 号)

設定登録日

平成 10 年 1 月 16 日

発明の名称

キャッシュメモリ一致制御方式(特開平 3-214337 号)

設定登録日

審査中

なお,この記載は,上記に示す特許権の効力,範囲などに関して何ら影響を与えるものではない。

上記特許権の使用者は,日本工業標準調査会に対して,非差別的,かつ,合理的な条件で,いかなる者

に対しても当該特許権の実施を許諾する意志があることを保証している。

この規格の一部が,上記に示す以外の技術的性質をもつ特許権,出願公開後の特許出願,実用新案権,

又は出願公開後の実用新案登録出願に抵触する可能性がある。主務大臣及び日本工業標準調査会は,この

ような技術的性質をもつ特許権,出願公開後の特許出願,実用新案権,又は出願公開後の実用新案登録出

願にかかわる確認について責任はもたない。

JIS X 6801

には,次に示す附属書がある。

附属書 A  性能(推定)

附属書 B  ロック転送時のアンサ返送

附属書 C  ロック転送とコピーバックキャッシュの書き戻し


X 6801 : 1998

(1) 

目次

ページ

1.

  概要

1

1.1

  適用範囲

1

1.2

  用途

1

2.

  定嚢

2

2.1

  用語

2

2.2

  表記

4

3.

  インタフェース

4

3.1

  インタフェース信号

4

4.

  バス動作説明

7

4.1

  基本動作プロトコル

7

4.2

  転送プロトコル

10

4.2.1

  バスオペレーションの種別

10

4.2.2

  コマンドフォーマット

11

4.2.3

  転送シーケンス

16

4.3

  アービトレーション

18

4.4

  受信状態報告

18

4.5

  データ転送

19

4.5.1

  メモリアクセス(ライト)

19

4.5.2

  メモリアクセス(リード)

25

4.5.3

  制御空間アクセス(ライト)

28

4.5.4

  制御空間アクセス(リード)

30

4.5.5

  メッセージ転送

32

4.5.6

  制御レジスタアクセス(ライト)

34

4.5.7

  制御レジスタアクセス(リード)

36

4.6

  ロック動作

38

4.7

  キャッシュ関連動作

39

4.7.1

  キャッシュ無効化指示動作

40

4.7.2

  リトライ指示動作

42

4.7.3

  リトライ指示後のコピーバック動作とスチール動作

44

4.7.4

  スチール禁止指示動作

46

4.8

  異常処理

48

4.8.1

  アンサによって報告される異常処理

48

4.8.2

  その他の異常処理

50

5.

  キャッシュのコヒーレンシ制御

50

5.1

  キャッシュ制御方式の種類

50


X 6801 : 1998

目次

(2) 

ページ

5.2

  キャッシュデータの属性

50

5.3

  システムバス上の動作

51

5.4

  リトライ指示動作

53

5.5

  スチール動作

53

5.6

  キャッシュデータ管理と状態遷移

53

5.6.1

  ライトスルーのキャッシュ

54

5.6.2

  コピーバックキャッシュ

56

5.7

  メモリアクセス時の注意事項

60

6.

  高信頼化機能

60

6.1

  冗長構成

60

6.2

  障害検出

61

6.3

  障害波及の防止

61

6.4

  障害処理・診断のサポート

61

附属書 A(参考)  性能(推定)

62

附属書 B(参考)  ロック転送時のアンサ返送

63

附属書 C(参考)  ロック転送とコピーバックキャッシュの書き戻し

64

図の一覧

図 1  STbus の用途2

図 2  機能ユニット間接続インタフェース(基本形)5

図 3  バス動作プロトコルの概念

      (1−サイクル,2−サイクル転送時:バス幅 8 バイトで,かつライト動作)

8

図 4  バス動作プロトコルの概念

      (3−サイクル以上の転送時:バス幅 8 バイトで,かつリード動作)

9

図 5  バス動作プロトコルの概念

      (1−サイクル,2−サイクル転送時:バス幅 4 バイトで,かつライト動作)

10

図 6  パイプライン動作

13

図 7  BCT フィールド

14

図 8  RA とバイトアラインメント

16

図 9 a)  1 語メモリライト(アンサを伴わない転送)

21

図 9 b)  1 語メモリライト

22

図 9 c)  n 語メモリライト(アンサを伴わない転送)

23

図 9 d)  n 語メモリライト

24

図 10 a)  1 語メモリリード

26

図 10 b)  n 語メモリリード

27

図 11  n 語ライト:制御空間アクセス

29

図 12  n 語リード:制御空間アクセス

31

図 13  n 語メッセージ転送

33

図 14  1 語ライト:制御レジスタアクセス

35


X 6801 : 1998

目次

(3) 

ページ

図 15  1 語リード:制御レジスタアクセス

37

図 16  バスロック転送

39

図 17  キャッシュ無効化指示動作

41

図 18  リトライ指示動作

43

図 19  リトライ指示後のコピーバック動作とスチール動作

45

図 20  スチール禁止指示動作

47

図 21  DUT で異常を検出しアンサで応答する場合

49

図 22  機能ユニット (#0) がタイムアウトを検出したケース

50

図 23  CPU の動作とシステムバス上のコマンドの関係

52

図 24  STbus のライトスルーキャッシュ一致制御プロトコル

55

図 25  STbus のコピーバックキャッシュ一致制御プロトコル

59

表の一覧

表 1  基本インタフェース信号(バスハンドラを除く機能ユニットインタフェース)

4

表 2  オプションインタフェース信号(バスハンドラを除く機能ユニットインタフェース)

4

表 3  情報転送バスのコマンドフォーマット

11

表 4  OPT コード定義

12

表 5  M ビットの定義

13

表 6  メッセージのシーケンス

15

表 7  アンサコードの定義

19

表 8  システムバスコマンドタイプ

51

表 9  ベース信号とスペア信号が不一致した場合の意味付け

60


日本工業規格

JIS

 X

6801

: 1998

同期スプリット転送形システムバス

(STbus)

−論理仕様

Synchronous split transfer type system bus (STbus)

−Logical layer

1.

概要

1.1

適用範囲  この規格は,高性能,高信頼なシステムバスである STbus の論理仕様を規定している。

STbus

は高速クロックに同期した転送方式と,バスの無効保留時間を削減しバスを効率よく使用できるス

プリット転送方式を採用している。この規格では,主に以下の内容を規定している。

a)

システムバス信号の規定

b)

バスオペレーションの種別と転送プロトコル

c)

コピーバックキャッシュのコヒーレンシ制御機能(共有メモリの内容と各プロセッサ内の個別メモリ

の内容との整合性を保証する機能)

d)

パリティチェック機能や信号の 2 重化構成による障害検出機能

1.2

用途  STbus はマルチプロセッサにおける高性能なシステムバスや I/O バスに適用できる。STbus の

適用例を

図 に示す。

a) TCMP

におけるシステムバスや I/O バス(

1

)

b) LCMP

におけるシステムバス(

2

)

(

1

)  TCMP

: Tightly  Coupled  Multi−Processor system

(共有メモリと複数のプロセッサから構成され,単一 OS でシステム全体が制御される

マルチプロセッサ方式)

(

2

)  LCMP

: Loosely  Coupled  Multi−Processor system

(各プロセッサが共有メモリ以外の媒体で結合され,各プロセッサは別の OS で動作す

るマルチプロセッサ方式)


2

X 6801 : 1998

図 1  STbus の用途

2.

定嚢

2.1

用語  3.以降で使用する用語の定義を,以下に述べる。

1)

機能ユニット  バスに接続され,バスインタフェース制御機構をもつ各機能単位をさす。通常,1 機

能ユニットが 1 ボードで構成される。

2)

バスマスタ  バス使用権を得て(バス使用許可信号がアサートされて),バスに情報を転送中である送

信元の機能ユニットをいう。

3)

バススレーブ  バスマスタから情報を転送される受信側の機能ユニットをいう。

4)

オーダ転送  コマンドを送出して相手機能ユニットに対し,処理要求を行うための一連の情報転送を

いう。

5)

アンサ転送  コマンドを受け付けた機能ユニットが,コマンドを送出した機能ユニットに対して,コ

マンドの終結状態(及び要求されたデータが付随している場合もある)及び受信状態情報をアンサ情

報として通知するための一連の転送をいう。

6)

SUT (Source Unit) 

  オーダ転送を行う機能ユニットをさす。

7)

DUT (Destination Unit) 

  アンサ転送を行う機能ユニットをさす。

8)

バスハンドラ (BH)   各機能ユニットからのバス使用要求の競合を整理して複数の要求から一つの

要求を選択し,機能ユニットに対してバス使用許可を与える集中形バス制御機構である。


3

X 6801 : 1998

9)

基本信号  バスインタフェース信号のうち,システムインプリメント時に使用が義務付けられる信号

であり本信号の範囲で,異なるシステム間での互換性が保証される。

10)

オプション信号  バスインタフェース信号のうち,システムインプリメント時のユーザ選択信号であ

り,採否はユーザ依存である。

11)  CPU

  命令の解読や命令実行機能をもつ演算素子のことを示し,マイクロプロセッサ又はマイクロプ

ロセッサ+キャッシュのことを示す。

12)  I/O

アダプタ  プロセッサの制御下で入出力機器の制御を行う機能ユニットをいう。

13)

コピーバック方式  プロセッサ又は命令実行部からの書き込みデータを,直接外部メモリに反映せず

キャッシュ内だけを更新しておく方式。STbus のコピーバックキャッシュでは,内部 3 状態のキャッ

シュをサポートする。内部状態は以下の三つの異なる状態からなる。

無効状態 (I) ,共有未変更状態 (SU) 及び非共有変更状態 (EM)

14)

ライトスルー方式  プロセッサ又は命令実行部からの書き込みデータを,直接メモリに反映する方式。

内部状態は,無効状態 (I) と共有未変更状態 (SU) からなる。

15)

バス・スヌープ  システムバス上の,外部メモリからの読み出し,外部メモリヘの書き込みを監視す

ること。

16)

ブロック  キャッシュメモリに登録される最小の単位。STbus では 32 バイトに限定している。

17)

リトライ指示動作  コピーバックキャッシュ内で変更済となり主記憶に反映していない領域に対して,

外部のデバイスがアクセスした場合に,そのアクセスを一時中断させ,

再送の指示を行う動作のこと。

18)

キャッシュ無効化指示動作  キャッシュ内のあるブロックの無効化を要求すること。共有未変更状態

(SU)

の領域に対する書き込み動作時に,他のキャッシュ内の同一領域を無効化する場合などに使用す

る。

19)

リードヒット/リードミス  プロセッサからの命令又はオペランドの読み出し対象がキャッシュに登

録されている場合にリードヒット,登録されていない場合にリードミスという。リードミスの場合,

読み出し対象がキャッシュ可能な領域であれば,対象を含む 1 ブロックがキャッシュに新規登録され

る。

20)

ライトヒット/ライトミス  プロセッサからの書き込み領域がキャッシュに登録されている場合にラ

イトヒット,登録されていない場合にライトミスという。

ライトスルーキャッシュの場合には書き込みデータを即座に共有メモリへ反映する。

コピーバックキャッシュの場合,ライトヒット時は書き込みデータをキャッシュ内にだけ反映し,

ライトミス時には書き込み領域の 1 ブロックを共有メモリから読み込んで新規登録し,その上で書き

込みデータをキャッシュ内にだけ反映する。

21)

無効状態 (I:Invalid)    プロセッサからのアクセス領域がキャッシュ上に登録されていない状態。

22)

共有未変更状態 (SU:Shared Unmodified)   ライトスルーキャッシュ又はコピーバックキャッシュの

内部状態名で,アクセス領域が登録されていて,共有メモリと内容が一致している状態。複数のキャ

ッシュで共有している可能性がある。

23)

非共有変更状態  (EM:Exclusive Modified)    コピーバックキャッシュの内部状態名で,共有メモリと

内容が一致していない状態。すなわち,キャッシュ内だけ更新されている状態。

24)

モディファイ付きリードコマンド  コピーバックキャッシュに対してプロセッサからの書き込みアク

セスがライトミスした場合に,キャッシュからシステムバスに出されるコマンドである。

25)

パリティ  この規格に表記しているパリティは特に明記していない場合,すべて奇数パリティを示す。


4

X 6801 : 1998

ここで奇数パリティとは,対象としている信号線(例えば,8bit 単位)とその parity-bit を含めた bit

(例では 8+1=9bit)において論理的に 1 のビットの数が偶数個(0 個を含む)のときにエラーとな

ることを意味する。

26)

プロセッサ  命令の解読や命令実行機能をもつ機能ユニットをいう。プロセッサではプログラムが動

作し,各種 I/O アダプタ (I/O Adapter) の制御を行う。通常,プロセッサは CPU とメモリで構成され

る。

2.2

表記  この規格では,以下に示す表記方法を用いて記述している。

・  機能ユニット番号は (#n)  で示しており,各ユニットに対する制御信号については RQL

*

 (#n)

,GR

*

(#n)

といったように“信号線名+(機能ユニット番号)

”という表記とする。

・  制御信号の値を表記する際には,以下のように記述している。

・  信号線の論理的な値を示す場合:1,0 としアサートを 1,ネゲートを 0 とする。

・  信号線上の実際の値を示す場合: “H” , “L” とし “H” が高電位, “L” が低電位を示す。

・  規格中の 16 進数表記は,H'##としている。

例:H'FF,H'00 など)

3.

インタフェース

3.1

インタフェース信号  表 に一つの機能ユニットからみた場合の STbus 基本インタフェース信号一

覧を示す。

表中 RQL

*

,RQH

*

,GR

*

,ET

*

は機能ユニットごとに個別に接続される信号である。

表 1  基本インタフェース信号(バスハンドラを除く機能ユニットインタフェース)

項番

信号名(

3

)

本数

機能分類

接続形態

 1

RQL

*

 (Request low)

  1

バス権制御

個別接続

 2

RQH

*

 (Request high)

  1

 3

GR

*

 (Grant)

  1

 4

ET

*

 (End of bus transaction)

  1

 5

BS

*

 (Bust ransaction start)

  1

転送指示

 6

BUR

*

 (Burst)

  1

 7

CSP

*

 (Control signal parity)

  1

 8

LCK

*

 (Lock)

  1

 9

AD [00..63]

*

 (Command/address/data)

64

コマンド/アドレス/データ

10 ADP

[0..7]

*

 (AD parity)

  8

11 RTY

*

 (Retry)

  1

キャッシュ一致制御

12 RST

*

 (Reset)

  1

リセット信号

バス接続

13 CK

(Clock)

1

クロック

(

4

)

信号数合計 83

(

3

)

信号名の*記号は負論理であることを示す。

(

4

) CK

の接続形態は別に規定する物理仕様を保証する構成とする。

表 に機能ユニットから見た場合のオプションのインタフェース信号線一覧を示す。

この表の信号はオプション扱いであり,システムを構築するユーザが任意に選択できる。

表 2  オプションインタフェース信号(バスハンドラを除く機能ユニットインタフェース)

項番

信号名

本数

機能分類

接続形態

14 LCKS

*

 (Lock spare)

1

転送指示

バス接続

15 RTYS

*

 (Retry spare)

1

キャッシュ一致制御

16 STI

*

 (Steal inhibit)

1

17 STIS

*

 (Steal inhibit spare)

1


5

X 6801 : 1998

接続形態  図 にバスハンドラと各機能ユニット間の基本接続形態を示す。

備考 CK の接続については物理仕様で規定するスキューを保証可能な接続構成とする。

図 2  機能ユニット間接続インタフェース(基本形)


6

X 6801 : 1998

各信号の説明 

1)

RQL

*

 (Request low)

  SUT のバス使用要求信号である。各機能ユニットは,オーダ転送を行う場合に

本信号をアサートしてバスハンドラに対してバス使用権を要求する。バスハンドラによってバス使用

許可信号である GR

*

がアサートされた機能ユニットは,本信号をネゲートしなければならない。

この信号は,各機能ユニットから個別線でバスハンドラへ通知される。

この信号は RQH

*

よりも優先度は低い。また,RQL

*

と RQH

*

を同時にアサートしてはならない。

2)

RQH

*

 (Request high)

  DUT のバス使用要求信号である。各機能ユニットは,アンサ転送を行う場合

に本信号をアサートしてバスハンドラに対してバス使用権を要求する。バスハンドラによってバス使

用許可信号である GR

*

がアサートされた機能ユニットは,本信号をネゲートしなければならない。

この信号は,各機能ユニットから個別線でバスハンドラへ通知される。

この信号は RQL

*

よりも優先度が高い。また,RQH

*

と RQL

*

を同時にアサートしてはならない。

バスハンドラは LCK

*

信号がアサート中は他の機能ユニットからの RQL

*

に対する GR

*

をアサートし

ない。

ただし RQH

*

に対する GR

*

はアサートするので,

どの機能ユニットもアンサ転送は実行可能である。

3)

GR

*

 (Grant)

  RQL

*

又は RQH

*

でバス要求したバスマスタに対するバス使用許可信号であり,本信号

がアサート中だけ各機能ユニットは転送指示,情報転送バス(

表 の項番 57910)のバスドラ

イバをイネーブルにして情報をバスに送出することができる。この信号はバスハンドラから各機能ユ

ニットに個別線で供給される。

4)

ET

*

 (End of bus transaction)

  バスマスタから送出する,転送データ終了を予告する信号である。

この信号はデータ転送が終了する 2 サイクル前にネゲートされる。

なお,RQL

*

や RQH

*

と同時にアサートしない場合には要求している転送が 1 サイクル転送であるこ

とを示す。

2

バスサイクル以上の転送の場合,ET

*

は RQL

*

又は RQH

*

信号と同時にアサートされる。

この信号は各機能ユニットから個別線でバスハンドラへ通知される。

5)

BS

*

  (Bus transaction start)

  バス使用権を得た各機能ユニットがオーダ転送又はアンサ転送を行う場

合に,情報転送バスにコマンド又はアンサ情報を送出すると同時にこの信号をアサートし,宛先の機

能ユニットに対して転送が開始されたことを通知する。

この信号はオーダ転送又はアンサ転送の最初の 1 バスサイクルだけアサートされる。

最初のコマンド又はアンサ情報の送出に引き続いて,データが送出される場合の情報受信は,BS

*

信号を基準にして,受信側の機能ユニットが自律的に受信する必要がある。

6)

BUR

*

 (Burst)

  複数のデータ転送サイクルからなるバースト転送モードであることを示す。この信号

は送信側の機能ユニットがアサートし,アサート中は受信側の機能ユニットは継続してデータを受信

する。

この信号はデータ転送が終了する 1 サイクルに前にネゲートされ,受信側の機能ユニットはネゲー

トを検知した 1 サイクル後にデータを受信して転送動作を終了する。

BS

*

信号がアサートされてこの信号がアサートされない場合は,1 サイクルの転送である。

7)

CSP

*

 (Control signal parity)

  転送指示信号である,BS

*

,BRS

*

に対するパリティ信号である。奇数パ

リティを表す。

8)

LCK

*

 (Lock)

  双方向のバスロック信号である。この信号は SUT がオーダ転送開始と同時にアサート

し,SUT 自身が転送終了を指示するときにネゲートする。


7

X 6801 : 1998

システムバスはスプリット転送を基本にするが,本信号を使用してインタロック転送も可能となる。

9)

AD [00..63]

*

 (Command/Address/Data 00-63)

  コントロール情報,アドレス情報,データ情報が時分割

的に転送される 64 ビット幅の双方向の情報転送バスである。

10)  ADP [0..7]

*

 (AD Parity 0-7)

  AD [00..63]

*

のバイトごとのパリティ信号である。奇数パリティを表す。

11)  RTY

*

 (Retry)

  TCMP のキャッシュ制御方式がコピーバックキャッシュのときの一致制御に使用され

る信号である。この信号がアサートされた場合,バスマスタは現在の転送の再送を行う必要がある(5.4

参照)

12)  RST

*

 (Reset)

  STbus に接続するある機能ユニットから他の機能ユニットへリセットを指示する。こ

の信号は有効な期間アサートしつづける。

13)  CK (Clock)

  STbus の共通クロック信号である。バス動作はこの信号の立ち下がりに同期して行われ

る。

14)  LCKS

(Lock spare)

  LCK

*

信号のスペア信号である。この信号を使用する場合,LCK

*

信号も同時に使

用しなければならない。LCK

*

信号とこの信号のどちらか一方の信号がアサートされた場合,ロック転

送は行われない。LCK

*

信号と LCKS

*

信号の両方がアサートされたときだけロック転送を実行する。こ

の信号はオプションである。

15)  RTYS

*

 (Retry spare)

  RTY

*

信号のスペア信号である。この信号を使用する場合,RTY

*

信号も同時に使

用しなければならない。

RTY

*

信号とこの信号のどちらか一方の信号がアサートされた場合,バスマスタは現在の転送の再送

を行う必要がある。この信号はオプションである。

16)  STI

*

 (Steal inhibit)

  コピーバックキャッシュ一致制御の場合に使用される信号である。この信号は各

機能ユニット間でだけ接続される。この信号はオプションである。

この信号がアサートされた場合,バスマスタは当該データのコピーバック時のスチール動作が禁止

される。この信号の詳細は 5.5

スチール動作を参照のこと。

17)  STIS

*

 (Steral inhibit spare)

  STLI

*

信号のスペア信号である。この信号を使用する場合,STLI

*

信号も同

時に使用しなければならない。STLI

*

とこの信号のどちらか一方の信号がアサートされた場合,バスマ

スタは当該データのコピーバック時のスチール動作が禁止される。この信号はオプションである。

4.

バス動作説明

4.1

基本動作プロトコル  以下に,STbus の基本動作例(1−サイクル転送,2−サイクル転送)及び動

作説明を示す。


8

X 6801 : 1998

図 3  バス動作プロトコルの概念(1−サイクル,2−サイクル転送時:バス幅 バイトで,かつライト動

作) 

各機能ユニット及びバスハンドラはすべて共通クロック CK に同期して動作する。

[1]

上図では機能ユニット (#0) が機能ユニット (#1) に対して 2-word の情報転送を行う場合を示してい

る。まずバス使用要求信号 RQL

*

 (#0)

をアサートし,バスハンドラにバス権獲得要求を行う。転送語

数が 2-word のため同時に転送終了予告信号 ET

*

 (#0)

をアサートする。

[2]

バスハンドラは RQL

*

 (#0)

信号が受付け可能になると機能ユニット (#0) に対するバス使用許可信号

GR

*

 (#0)

をアサートして,機能ユニット (#0) にバス使用権を与える。

[3]

バス使用権を獲得した機能ユニット (#0) は,GR

*

 (#0)

アサートによって RQL

*

 (#0)

信号をネゲート

する。

[4]

上記と同時に機能ユニット (#0) は GR

*

 (#0)

を受けて情報転送バスを有効化して情報をバス上に送出

する。情報転送時の最初のサイクルで転送制御信号の BS

*

信号をアサートする。

[5]

上記例の場合,2-word の情報転送を行うため,BS

*

と同時に BUR

*

信号をアサートしバースト転送開始

を他の機能ユニットに対して通知する。BUR

*

信号は転送終了の 1 サイクル前にネゲートする。

[6] GR

*

 (#0)

と同時にアサートした ET

*

 (#0)

は転送終了の 2 サイクル前にネゲートすることで,バスハン

ドラに対して事前にバスが開放されることを通知する。

[7] ET

*

 (#0)

のネゲートを検出したバスハンドラは GR

*

 (#0)

をネゲートする。

[8]

機能ユニット (#0) からの情報に対してアンサ情報 (1-word) を返送する場合,機能ユニット (#1) は

バス使用要求信号 RQH

*

 (#1)

をアサートしバスハンドラにバス権獲得要求を行う。アンサ転送で転送

語数が 1-word の場合には ET

*

 (#1)

はアサートしない。

[9]

バスハンドラは RQH

*

 (#1)

信号が受付け可能になると機能ユニット (#1) に対するバス使用許可信号

GR

*

 (#1)

をアサートする。

[10]

バス使用権を獲得した機能ユニット (#1) は,GR

*

 (#1)

によって RQH

*

 (#1)

信号をネゲートする。

[11]

上記と同時に機能ユニット (#1) は GR

*

 (#1)

を受けて情報転送バスを有効化して情報をバス上に送出

する。情報転送時の最初のサイクルで転送制御信号の BS

*

信号をアサートする。このとき,転送語数


9

X 6801 : 1998

が 1-word であるため BUR

*

信号はアサートしない。

[12] RQH

*

 (#1)

及び ET

*

 (#1)

がネゲートしているため,バスハンドラは 1-word 転送で GR

*

 (#1)

をネゲー

トする。なお,スプリット転送方式を採用しているため,上記[7][9]間は他の機能ユニット間でバス

使用可能となる。以下に,STbus の基本動作例(3−サイクル以上の転送時)を示す。

図 4  バス動作プロトコルの概念(3−サイクル以上の転送時:バス幅 バイトで,かつリード動作)

[1]

上図では機能ユニット (#0) が機能ユニット (#1) に対して 1-word の情報転送を行う場合を示してい

る。まずバス使用要求信号 RQL

*

 (#0)

をアサートし,バスハンドラにバス権獲得要求を行う[転送語

数 1-word のため ET

*

 (#0)

はアサートしない。

[2]

バスハンドラは RQL

*

 (#0)

信号が受付け可能になると機能ユニット (#0) に対する GR

*

 (#0)

をアサー

トして機能ユニット (#0) にバス使用権を与える。

[3]

バス使用権を獲得した機能ユニット (#0) は,GR

*

 (#0)

のアサートによって RQL

*

 (#0)

信号をネゲー

トする。

[4]

上記と同時に機能ユニット (#0) は GR

*

 (#0)

を受けて情報転送バスを有効化して情報をバス上に送出

する。情報転送時の最初のサイクルで転送制御信号の BS

*

信号をアサートする。

上記例の場合,転送語数 1-word のため BUR

*

 (#0)

はアサートしない。

[5] RQL

*

 (#0)

及び ET

*

 (#0)

がネゲートされているため,バスハンドラは GR

*

 (#0)

を 1 サイクルでネゲー

トする。

[6]

機能ユニット (#0) の情報に対して 3-word 以上の情報を返送する場合,機能ユニット (#1) は RQH

*

(#1)

をアサートしてバス権獲得要求を行う。複数 word 転送のため ET

*

 (#1)

も同時にアサートする。

[7]

バスハンドラは RQH

*

 (#1)

信号が受付け可能になると機能ユニット (#1) に対するバス使用許可信号

GR

*

 (#1)

をアサートする。

[8]

バス使用権を獲得した機能ユニット (#1) は,GR

*

 (#1)

によって RQH

*

 (#1)

信号をネゲートする。

[9]

上記と同時に機能ユニット (#1) は GR

*

 (#1)

を受けて情報転送バスを有効化して情報をバス上に送出

する。情報転送時の最初のサイクルで転送制御信号の BS

*

信号をアサートする。このとき,転送語数

が 3-word 以上であるため BUR

*

信号をアサートする。


10

X 6801 : 1998

[10]

上記例の場合,3-word 以上の情報転送を行うため,BS

*

と同時に BUR

*

信号をアサートしバースト転送

開始を他の機能ユニットに対して通知する。BUR

*

信号は転送終了の 1 サイクル前にネゲートする。

[11] GR

*

 (#1)

と同時にアサートした ET

*

 (#1)

は転送終了の 2 サイクル前にネゲートすることで,バスハン

ドラに対して事前にバスが開放されることを通知する。

[12]

バスハンドラは ET

*

 (#1)

信号のネゲートを監視し,確認した時点で GR

*

 (#1)

信号をネゲートする。

以下に,バス幅が 4 バイトの場合の動作例(1−サイクル,2−サイクル転送)を参考に示す。

図 5  バス動作プロトコルの概念(1−サイクル,2−サイクル転送時:バス幅 バイトで,かつライト動

作)

情報転送バス幅 4 バイトの場合に,機能ユニット (#0) が機能ユニット (#1) に対して 2-word の情報を

転送する動作は基本的に 8 バイト幅のときと同じである。

ただし情報転送バス幅が 4 バイトのため,8 バイト幅 1 サイクルの情報を 2 サイクルで転送することに

なり上図のようになる。

各信号の変化点に対する解説は,8 バイト仕様時と同じである。

4.2

転送プロトコル

4.2.1

バスオペレーションの種別  STbus におけるバスオペレーションは,次の 4 種類に大別される。

1)

メモリアクセス  任意の機能ユニットが,共有メモリ又は他の任意の機能ユニットの個別メモリへの

リード/ライトを行う場合に使用されるバスオペレーションである。バス基本仕様では転送単位とし

て最大 256 バイトまで任意のバイト数指定が可能である。

2)

制御空間アクセス  任意の機能ユニットで走行するプログラムが,他の任意の機能ユニットの制御空

間にマッピングされたデータを直接リード/ライトする場合に使用されるバスオペレーションである。

バス基本仕様では転送単位として最大 256 バイトまで任意のバイト数指定が可能である。

3)

メッセージ転送  任意の機能ユニットが,他の任意の機能ユニットへメッセージ転送を行う場合に使

用されるバスオペレーションである。

4)

制御レジスタアクセス  任意の機能ユニットで走行するプログラムが,他の任意の機能ユニットの制

御レジスタ類(最大 256 個まで)を 8 バイト以内で直接リード/ライトする場合に使用されるバスオ

ペレーションである。


11

X 6801 : 1998

4.2.2

コマンドフォーマット  情報転送バスは 64 ビット幅(又は 32 ビット幅)でありエンディアンには

ビッグエンディアンを採用して,MSB から AD [00..63]

*

(又は AD [00..31]

*

)の並びとする。

また,情報転送バスはバイト単位に分割し,MSB 側から第 0 バイト∼第 7 バイトとする。

転送される情報は,コマンド,アドレス,データ及びメッセージ通信オペランドの 4 種類に大別される。

情報転送においては,コマンドが最初に相手機能ユニットに送出される。そのフォーマットを

表 に示

す。

表 に具体的に記載されていないが,上述のバイト単位にパリティ 1 ビットが付与される。

表 3  情報転送バスのコマンドフォーマット

第 0 バイト

第 1 バイト

第 2 バイト

第 3 バイト

OPT

0

 OPT

1

 OPT

2

情報転送バスの内容

00

01

……07 08

09

……15

16

17

18

19

20

21 22

23

24

……31

メモリアクセス

0 BMID 0 BSID 0

BT R/W A64

M

NAT

AID

BCT

制御空間アクセス

0 BMID 0 BSID 1

BT R/W A64

0

NAT

AID

BCT

メッセージ転送

0 BMID 1 BSID 0

BT MD

SQ NAT

AID

BCT

制御レジスタアクセス

0 BMID 1 BSID 1

BT R/W

BCT

AID

RA

Reserved

1 BMID 0 BSID 0

BT

* *

*

*

*

  *  * * * * * * * *

Reserved

1 BMID 0 BSID 1

BT

* *

*

*

*

  *  * * * * * * * *

Reserved

1 BMID 1 BSID 0

BT

* *

*

*

*

  *  * * * * * * * *

アンサ

1 BMID 1 BSID 1

BT

ROPT RNAT

RAID

ANS

[略号の説明]

OPT

:Operation Type

BCT

:Byte Count

BMID

:Bus Master ID

MD

:Mode

BSID

:Bus Slave ID

SQ

:Sequence

BT

:Bus Type

RA

:Register Address

R/W

:Read/Write ROPT:Return Operation Type

A64

:64-bit Address Space

RNAT

:Return NAT

M

:Modify RAID:Return Access ID

NAT

:No-Answer Transaction

ANS

:Answer code

AID

:Access ID

*

:Reserved

1)

オペレーションタイプコード  コマンドには,SUT から DUT へのオーダ転送用と DUT から SUT へ

のアンサ転送用の 2 種類がある。コマンドは Reserved も含めて 8 タイプある。これらを総称してオペ

レーションタイプと呼び,情報転送バスの第 0 バイトの bit0,第 1 バイトの bit8 及び第 2 バイトの bit16

の合計 3bit で OPT (Operation Type)  コードを定義する。


12

X 6801 : 1998

表 4  OPT コード定義

OPT

オペレーションタイプ

0

1

2

0

0

0

メモリアクセス

0

0

1

制御空間アクセス

0

1

0

メッセージ転送

0

1

1

制御レジスタアクセス

1

0

0

Reserved

1

0

1

Reserved

1

1

0

Reserved

1

1

1

アンサ

2)

ID (Identifier) 

とパスタイプ (BTBus Type)  コマンド転送の場合,情報転送バスの第 0 バイト,第

1

バイトに BMID (Bus Master Identifier)  ,BSID (Bus Slave Identifier)  が送出される。

第 2 バイトの bit17 は,BT (Bus Type)  を示す。

各フィールドの意味を下記に示す。

BMID (Bus Master Identifier)

バスマスタの機能ユニット ID を示す。7 ビットからなる。

BSID (Bus Slave Identifier)

バススレーブの機能ユニット ID を示す。7 ビットからなる。

BT (Bus Type)

0

:4 バイトバス

1

:8 バイトバス

3)

メモリアクセス  各フィールドの意味を下記に示す。

R/W (Read/Write)

0

:SUT が DUT へ書き込みを行う動作である。

1

:SUT が DUT から読み出しを行う動作である。

A64 (64bit Address Space)

0

:アドレス空間が 32 ビット空間である。

1

:アドレス空間が 64 ビット空間である。

M (Modify)

この信号は TCMP 構成時のプロセッサのキャッシュの一致制御に使用する。

R/W

との組合せによって使用する。

表 に動作を規定する。


13

X 6801 : 1998

表 5  ビットの定義

R/W M(

5

)

バスの動作

0 0

メモリ書き込み動作

 1

キャッシュの無効化指示

1 0

メモリ読み出し動作

 1

メモリ読み出し動作及びキャッシュの無効化指示

R/W

フィールドが “0” で,M フィールドが “1” の場合,BCT フィールドは無効となり,

バス上に転送されるものはコマンド,アドレスだけである。

メモリヘの書き込みも行わない。他の機能ユニットのキャッシュにヒットした場合,キャ

ッシュを無効化する。 
(

5

)

コピーバックキャッシュをサポートしない場合は,M フィールドは “0” とすること。

AID (Access Identifier)

メモリアクセス多重動作を行うための識別子として使用する。

使用用途は複数の DMA ポートの同時動作や,

単一 DMA ポートのパイプライン動作などである。

スプリット転送でのメモリアクセス多重動作の例を

図 に示す。

図 6  パイプライン動作

NAT (No_Answer Transaction)

これから行う転送を突き放し転送(アンサを伴わない転送)によって行うことを指示する。

スレーブ側はこのビットが設定されたコマンド転送に対してアンサ転送を行わない。

コマンド転送時にエラーが発生した場合には,エラーを示すアンサをスレーブからマスタに返

送する。

0

:アンサのある転送

1

:突き放し転送


14

X 6801 : 1998

BCT (Byte Count)

SUT

から DUT へ転送するバイト数(ライト時)

,又は DUT から SUT へ返送するバイト数(リ

ード時)を指定する。

図 7 a)に BCT フィールドの定義を示す。

1

回のバスオペレーションでは,最大 256 バイトまで連続転送が可能である。

t

= “00” のとき,バス上に転送される有効バイト数は BCT の内容に 1 を加えたものと一致しな

ければならない。例えば,t= “00” &n= “00000” の場合は 1 バイト転送であり,t= “00” &n=

“11111”

の場合は 32 バイト転送となる。バイトアラインメントは 8 バイトバスの場合,アドレス

の下位 3 ビットの値と BCT の内容によって実現される。アドレスの下位 3 ビットで決定する第 1

ワードのデータのバイト位置から,BCT で決定するバイト数が有効データとなる。アドレスが 8n

+3 で BCT が t= “00” &n= “11111” &w= “0” (32 バイト転送)の場合の有効データを

図 7 b)

示す。

転送時の各データについては Invalid なものについても正当な parity をつけるようにする。

w

= “1” の場合(一般にブロック転送時に使用する)

,ブロック境界においてラップアラウンド

する。例えば,アドレスが 8n+3 で BCT が t= “00” &n= “11111” &w= “1” の場合,有効データ

図 7 c)に示すとおりである。

図 7  BCT フィールド


15

X 6801 : 1998

4)

制御空間アクセス  各フィールドの意味を下記に示す。

R/W (Read/Write)

:メモリアクセスに同じ。

A64 (64bit Address Space)

:メモリアクセスに同じ。

AID (Access Identifier)

:メモリアクセスに同じ。

NAT (No

−Answer Transaction)

:メモリアクセスに同じ。

BCT (Byte Count)

:メモリアクセスに同じ。

  (BCT とアドレスの関係もメモリアクセスと同じである。

5)

メッセージ転送  各フィールドの意味を下記に示す。

MD (Mode)

:メッセージにおける処理の緊急度の違いを示す。

  0:緊急メッセージ

  1:一般メッセージ

SQ (Sequence)

表 に従ってメッセージの意味を規定する。

表 6  メッセージのシーケンス

SQ

意味

内容

20 21

0 0

Single

メッセージ長が 256 バイト以下であり,1 回のバスオペレーションによ
って転送が終了することを示す。受信側は,本バスオペレーションの
受付けによって,プロセッサにメッセージ受信完了を通知できる。

0 1

First

メッセージ長が 256 バイトを超える場合の最初のバスオペレーション
を示す。受信側は引き続くバスオペレーション受信待機状態に入る。

1 0

Middle

First

又は Middle に継続するメッセージであることを示す。Middle 受信

時に,受信側は次のメッセージ受信待機状態になり,バスオペレーシ

ョンを受信すると BMID,AID が同一であることを確認後,そのバス
オペレーションを受け付け,さらに次のバスオペレーション受信待機
状態に入る。

1 1

Last  First

又は Middle に継続するメッセージであり,受信側の動作は Middle

受信と同様であるが最終メッセージであることを示す。これを受け付
けた場合,プロセッサにメッセージ受信完了を通知できる。

NAT (No

−Answer Transaction)  : メモリアクセスに同じ。

BCT (Byte Count)

: メモリアクセスに同じ。ただし,このコマンドではアドレスは転

送されないため,データの第 1 ワードのバイト 0 より BCT で指

定されたデータが有効となる。

備考  メッセージ転送パラメータ:メッセージ転送パラメータは,メッセージ通信コマンドに継続し

て転送される 8 バイトの付加情報である。オペランドの内容としては,サブシステム間通信を

行う場合のサブシステム ID などがある。詳細内容に関してはユーザ開放とする。

6)

制御レジスタアクセスコマンド  各フィールドの意味を下記に示す。

R/W (Read/Write)

:メモリアクセスに同じ。

BCT (Byte Count)

:転送すべきデータのバイト数を指定する。1 回のバスオペレーシ

ョンで 8 バイトまで指定できる。

バス上に転送される有効バイト数は,BCT の内容に 1 を加えた

ものと一致しなければならない。例えば,BCT=H'7 の場合 8 バイ

ト転送となる。


16

X 6801 : 1998

RA (Register Address)

:レジスタアドレスを指定する。

バイトアラインメントは RA の下位 3 ビットの値と BCT の内容

によって定義される。RA の下位 3 ビットで決定する第 1 ワードの

データのバイト位置から BCT で決定するバイト数が有効データと

なる。

例えば,RA が 8n+3 で BCT が 6(7 バイト転送)の場合の有効

データを

図 に示す。

バイト位置

0 1 2 3 4 5 6 7

データ第 1 ワード I  I  I V

0

V

1

V

2

V

3

V

4

データ第 2 ワード

V

5

V

6

I I I I I I

Vi

:有効

I

:無効

図 8  RA とバイトアラインメント

7)

アンサ  アンサコマンドはアンサ転送において,DUT が SUT に対し最初に返送する情報である。

BMID

及び BSID のペアの組合せはコマンドと同じであるが,バスマスタが DUT であるので,BMID

=DUT の機能ユニット ID,BSID=SUT の機能ユニット ID となる。

各フィールドの意味を下記に示す。

ROPT (Return Operation Type)

SUT

から DUT へオーダ転送された OPT コードを埋め込む。

RNAT (Retum NAT)

オーダ転送で指定された NAT をこのフィールドに埋め込む。

RAID (Retum Access Identifier)

オーダ転送で指定された AID を埋め込む。

ANS (Answer Information)

アンサ情報であり,8 ビットで構成される。オーダ転送において要求された動作の終結状態が

示される。一部のフィールドはバススレーブ側での受信状態を示す情報を規定するために使用さ

れる。それ以外の内容定義はユーザ開放である。

4.2.3

転送シーケンス  このシーケンスは固定的であり,コマンドの種類によってバスの動作シーケンス

が決定される。

以下のシーケンス図中に用いられる枠内記号の意味は,以下のとおりである。

C

o

:オーダコマンド(オーダ転送)

Di

:データ

C

AW

:アンサコマンド(アンサ転送)

A

:アドレス

P

:パラメータ


17

X 6801 : 1998

1)

メモリアクセス

a)

32

ビットアドレッシングの場合 

b)  64

ビットアドレッシングの場合(8-byte バス幅)

2)

制御空間アクセス

a)

32

ビットアドレッシングの場合 


18

X 6801 : 1998

b)  64

ビットアドレッシングの場合(8-byte バス幅)

3)

メッセージ転送

4)

制御レジスタアクセス 

4.3

アービトレーション  STbus のアービトレーションは 3.1  インタフェース信号で示した構成のバス

ハンドラによって行われる集中アービトレーションである。各ユニットからの 2 種のバス使用要求線によ

って,バスハンドラに要求される。バスハンドラはこれらの要求に対し,バス使用許可信号を通知する。

アービトレーション制御信号の取扱いについては,システム構成によって信号変化をスルーで使用する

場合(比較的小さな範囲での制御)と動作クロック単位で信号レベルを確認して制御する場合(広い範囲

にわたる制御)とに分けられる。どちらを採用するかはユーザ依存とする。

優先制御のアルゴリズムに関しては,STbus では規定しない。

4.4

受信状態報告  アンサ転送によって報告される“バススレーブ側における転送データの受信状態”

の情報をこの項で規定する。

アンサ転送によるバススレーブからバスマスタへの状態報告は,オーダ転送に対する状態通知を行うた

めのものであり,以下のようにアンサフィールド内ビットを用いて定義される。


19

X 6801 : 1998

表 7  アンサコードの定義

アンサコードの値

意味付け

ニーモニック

0 1 2 3 4

5 6 7

0 0 0 0 0

0 0 0

No

error

システム管理者用

0

0

0

0

0

1

No error (Lock transfer)

(エラーがない場合)

    0 0 0

0 1 0

Reserved

    1 1 1

1 1 1

Reserved

  1 0 0 0

0 0 0

User

dependent

ユーザ用

⋮⋮

⋮⋮

(エラーがない場合)

    1 1 1

1 1 1

User

dependent

1 0 0 0 0

0 0 0

Hardware

error

システム管理者が使用する

    0 0 0

0 0 1

Illegal

command

エラー規定

    0 0 0

0 1 0

Bus

sequence

error

    0 0 0

0 1 1

Reserved

⋮⋮

⋮⋮

    1 1 1

1 1 1

Reserved

  1 0 0 0

0 0 0

User

dependent

ユーザが使用できる

エラー規定

    1 1 1

1 1 1

User

dependent

1) No

error

2) No

error

 (Lock transfer)

3) Hardware

error

4) Illegal

command

5)  Bus sequence error

DUT

が正しくオダを受信したことを示す。

ロック転送において,DUT が正しくオーダを受信したことを示す。

DUT

側でバス信号のパリティ異常が検出されたことを示す。

オーダ転送の場合,受付け不可能なバスオペレーションを受信したこ
とを示す。例えば,サポートしていない OPT や BT などを受信した場
合に返送される。

SUT

が送出したデータ量とオーダコマンドで指定した転送データ量

に DUT 側で不一致を検出したことを示す。又は,BS

*

が 2 サイクル以

上アサートされたことを示す。

4.5

データ転送  この節では,各バスオペレーションにおける動作内容を規定する。

メモリアクセスのライト動作を例に詳細を説明し,その他のバスオペレーションについては概要だけ説

明する。この節で記述されている動作シーケンスは 32 ビットアドレッシングの場合である。64 ビットア

ドレッシング時のシーケンスはこの節の動作シーケンスと併せて 4.2.3 

転送シーケンスを参照されたい。

なお,この節では正常動作シーケンスについてだけ説明する。転送中の異常動作のシーケンスについて

は 4.8 

異常処理を参照のこと。

4.5.1

メモリアクセス(ライト)  図 にメモリアクセスのライト動作のバスシーケンスを示す。同図の

a)

c)はそれぞれ 1 語メモリライト及び 語メモリライトの突き放しライト形を,b)d)はそれぞれ 1 語メ

モリライト及び 語メモリライトの基本形動作を示している。

システムバスの動作はすべてバスクロックの立ち下がり(図におけるたて点線)に同期して行われる。

図においてはゲート遅延を考慮しているため,バスクロックからずれて示される信号もある。

なお,バスの欄は機能ユニット間のバスにおいて現れる情報のタイミングを示している。

以下では,

図 9 d)語メモリライト(基本動作形)の場合を中心に説明する。

[1]

: 機能ユニット (#0) はメモリアクセス要求が新たに発生すると,RQL

*

 (#0)

をアサートしてバス要求

信号を発行する。


20

X 6801 : 1998

[2] 

 バスハンドラは RQL

*

 (#0)

が受付け可能になると,機能ユニット (#0) に対し GR

*

 (#0)

をアサート

しバス使用権を与える。

[3]

: 機能ユニット (#0) は GR

*

 (#0)

のアサートによって RQL

*

 (#0)

をネゲートする。

[4]

: GR

*

 (#0)

によってバスの使用権を獲得した機能ユニット (#0) は,双方向の情報転送用 AD バス,

BUR

*

及び CSP

*

信号を有効化して,情報を C

O

(コマンド)と A(アドレス)

,Di(データ)の順でバ

ス上へ送出する。

[5]

: 最初の情報の転送と同時に BS

*

(バストランザクションスタート)信号をアサートして必要なバス

オペレーションの開始を他の機能ユニットに対して宣言する。

[6]

: 機能ユニット (#0) は転送すべきデータの 2 サイクル前に転送終了予告信号をネゲートして転送の

終結をバスハンドラに宣言する。

[7]

: 機能ユニット (#0) は転送すべきデータの 1 サイクル前に BUR

*

信号をネゲートして転送の終結を相

手の機能ユニットに宣言する。

[8]

: ET

*

信号のネゲートを検出したバスハンドラは,GR

*

 (#0)

をネゲートして機能ユニット (#0) に対す

るバス使用権を取り上げる。

[9]

: 機能ユニット (#1) は正常なライト完了で機能ユニット (#0) への完了通知のため正常の C

AW

(アン

サ)を準備し,バス使用権獲得のための RQH

*

 (#1)

をアサートする。異常が検出された場合は異常

アンサを準備し,RQH

*

 (#1)

をアサートする。

[10]

: バスハンドラは RQH

*

 (#1)

が受付け可能になると機能ユニット (#1) に対するバス使用許可信号

GR

*

 (#1)

をアサートして機能ユニット (#1) に対してバス使用権を与える。

[11]

: 機能ユニット (#1) は GR

*

 (#1)

によって,RQH

*

 (#1)

をネゲートする。

[12]

: GR

*

 (#1)

によってバス使用権を得た機能ユニット (#1) は,情報転送用 AD バスを有効化し,C

AW

をバス上へ送出する。

[13]

: 機能ユニット (#1) は C

AW

の送出と同時に BUR

*

をネゲートしたまま BS

*

をアサートして転送の開始

と終了を宣言する。

[14]

: 上記の転送の開始・終了を検出したバスハンドラは,GR

*

 (#1)

をネゲートして機能ユニット (#1) に

対するバス使用権を取り上げる。


21

X 6801 : 1998

図 9 a)  語メモリライト(アンサを伴わない転送)


22

X 6801 : 1998

図 9 b)  語メモリライト


23

X 6801 : 1998

図 9 c)  語メモリライト(アンサを伴わない転送)


24

X 6801 : 1998

図 9 d)  語メモリライト


25

X 6801 : 1998

4.5.2

メモリアクセス(リード)  図 10 にメモリアクセスのリード動作のシーケンスを示す。

DUT

に当たる機能ユニットは,自分の個別メモリ内のアドレスのさすメモリ空間からデータをリードす

る動作に入る。

リード動作終了後,DUT は C

AW

(アンサ)に引き続いて D(リードデータ)を SUT へ送出する。

SUT

は C

AW

の内容及びデータをチェックして正常ならばそのリードデータを自分の個別メモリにライト

する動作に入る。ライト完了でメモリアクセスのリード動作は終了する。

C

AW

の内容が異常を示している場合,

及び SUT の個別メモリのライト動作に異常が検出された場合には,

バスエラーとしてプログラムへ通知する。


26

X 6801 : 1998

図 10 a)  語メモリリード


27

X 6801 : 1998

図 10 b)  語メモリリード


28

X 6801 : 1998

4.5.3

制御空間アクセス(ライト)  図 11 に,制御空間アクセスのライト動作のシーケンスを示す。

DUT

に当たる機能ユニットは,自分の個別メモリ内のアドレスのさす制御空間へデータをライトする。

オペレーション終了後,DUT はオペレーションに対する C

AW

(アンサ)を SUT へ返送する。SUT は,

C

AW

の内容をチェックして,正常ならば制御空間アドレスのライト動作を終結する。

もし,異常ならばバスエラーとしてプログラムへ通知する。


29

X 6801 : 1998

図 11  語ライト:制御空間アクセス


30

X 6801 : 1998

4.5.4

制御空間アクセス(リード)  図 12 に制御空間アクセスのリード動作のシーケンスを示す。

DUT

に当たる機能ユニットは,自分の個別メモリ内のアドレスのさす制御空間からデータをリードする

動作に入る。

リード動作完了後,DUT はオペレーションに対する C

AW

(アンサ)に引き続いて,D(データ)を SUT

へ送出する。

SUT

は,C

AW

の内容をチェックして,正常ならリードデータを自分の個別メモリにライトする動作に入

る。

C

AW

の内容が異常に示している場合,

及び SUT の個別メモリのライト動作に異常が検出された場合には,

バスエラーとしてプログラムへ通知する。


31

X 6801 : 1998

図 12  語リード:制御空間アクセス


32

X 6801 : 1998

4.5.5

メッセージ転送  図 13 にメッセージ転送の動作シーケンスを示す。

C

o

(コマンド)内の BSID で指定される DUT は,MD で示される動作に従ってデータをライトする動作

に入る。

ライト動作終了後,DUT はオペレーションに対する C

AW

(アンサ)を返送する。

SUT

は C

AW

の内容をチェックして,正常ならばメッセージ転送動作を終結する。

もし,異常ならばバスエラーとしてプログラムへ通知する。


33

X 6801 : 1998

図 13  語メッセージ転送


34

X 6801 : 1998

4.5.6

制御レジスタアクセス(ライト)  図 14 に,制御レジスタアクセスのライト動作のシーケンスを

示す。

DUT

に当たる機能ユニットは C

o

(コマンド)中の RA で示される制御レジスタに,データの内容をライ

トする。

オペレーション終了後,オペレーションに対する C

AW

(アンサ)を返送する。

SUT

は C

AW

の内容をチェックして,正常なら制御レジスタアクセスのライト動作を終結する。

もし,C

AW

の内容が異常を示していた場合,及び SUT のライトの動作に異常が検出された場合には,バ

スエラーとしてプログラムへ通知する。


35

X 6801 : 1998

図 14  語ライト:制御レジスタアクセス


36

X 6801 : 1998

4.5.7

制御レジスタアクセス(リード)  図 15 に,制御レジスタアクセスのリード動作のシーケンスを

示す。

DUT

に当たる機能ユニットは C

o

(コマンド)中の RA で示される制御レジスタの内容をリードする。

リード動作終了後,オペレーションに対する C

AW

(アンサ)を返送する。

SUT

は C

AW

の内容をチェックして,正常ならリードデータを取り込んで制御レジスタアクセスのリード

動作を終結する。

もし,C

AW

の内容が異常を示していた場合には,バスエラーとしてプログラムへ通知する。


37

X 6801 : 1998

図 15  語リード:制御レジスタアクセス


38

X 6801 : 1998

4.6

ロック動作  STbus は,機能ユニットがバスを排他的かつ連続的に使用するためのロック転送をサ

ポートしている。例えば,ロック転送はテスト&セット動作などで使用される。

図 16 に,ロック転送の動作シーケンスを示す。

同図では,LCK

*

信号がアサート中に,リードバスオペレーションとライトバスオペレーションが引き続

いて行われている例を示している。

ロック転送を行うためにバス使用権を要求するときには,SUT はオーダが 1 サイクルで終了する場合で

も RQL

*

信号と ET

*

信号を同時にアサートしなければならない(

図 16 参照)。

LCK

*

信号は SUT が BS

*

のアサートと同時にアサートすること。LCK

*

のネゲートタイミングはプロセッ

サの排他制御命令の実行終了に依存するため,明らかには規定しない。ただし,SUT の最後のオーダ転送

が完了するまではアサート状態に保たなければならない。これによって,LCK

*

アーサト期間だけバスの排

他性を保証する。

バスハンドラは LCK

*

信号がアサート中は他の機能ユニットによる RQL

*

に対する GR

*

はアサートしない。

ただし,RQH

*

に対する GR

*

はアサートするので,どの機能ユニットもアンサ転送は実行可能である。

受信側機能ユニットがロック転送を認識したことを送信側に知らせるために,ロック転送用アンサコー

ドを設けている(

表 のアンサコード=00000001)。

なお,EM 状態(非共有変更状態)のキャッシュデータに対するロック転送の方法については,

附属書

C

に示す。


39

X 6801 : 1998

図 16  バスロック転送

4.7

キャッシュ関連動作  この節ではコピーバックキャッシュサポートのためのシステムバス上の動作

について規定する。


40

X 6801 : 1998

この節でシステムバス上の動作シーケンスだけ説明する。動作後のキャッシュの状態遷移については,

5. 

キャッシュのコヒーレンシ制御を併せて参照のこと。

4.7.1

キャッシュ無効化指示動作  プロセッサのバスインタフェース制御は,常にメモリへの書き込みコ

マンドをスヌープして書き込みアドレスがキャッシュにヒットした場合,キャッシュの無効化を行う必要

がある。

このため以下の機能が設けられている。

a)

モデファイ付きリード動作  プロセッサが書き込みを行おうとしたメモリのアドレスがプロセッサの

キャッシュに存在しない場合,プロセッサはメモリ読み出しコマンドを発行してデータを読み出した

後,自キャッシュへの書き込みを行う。この場合プロセッサのキャッシュの状態はモデファイ状態と

なるので,他プロセッサのキャッシュを無効化する必要がある。プロセッサがメモリの読み出しコマ

ンドを実行後,b)で説明するキャッシュ無効化のためのメモリへの書き込みコマンドを実行すること

でもこの機能は実現できるが,不要なメモリ書き込みコマンドをシステムバスに送出しなくてよいよ

うに,メモリアクセスコマンドに M ビットが設けられている。

プロセッサは,キャッシュライトミスによってメモリアクセスを行う場合,M ビットを “1” として

メモリ読み出しを行う。

他プロセッサはバスをスヌープし,メモリ読み出しのバスオペレーション時に,M ビットが “1” の

場合アドレスモニタする。このときキャッシュにヒットした場合,キャッシュの該当エントリを無効

化する。

b)

共有未変更状態のキャッシュ無効化指示  機能ユニット内のコピーバックキャッシュに登録されたあ

るブロックが共有未変更 (SU) 状態であるとき,そのブロックの書き換えに伴い,他プロセッサのキ

ャッシュを無効化するため次のコマンドが設けられている。

SU

状態にあるブロックに書き込みを行いたいプロセッサは,メモリ書き込みコマンドにおいて,M

ビットを “1” とし,バス上にコマンド,アドレスだけを送出する。

他プロセッサは,メモリ書き込みコマンドを認識してキャッシュの無効化を行う。

このバスオペレーションは,キャッシュのキャッシュ無効化だけが目的であるので,メモリの書き

込みは行わない。

図 17 にキャッシュ無効化動作のシーケンスを示す。キャッシュ無効化コマンドの場合,特定のバス

スレーブは存在しない。ただし,オーダコマンド,アドレスを転送中にパリティエラーが発生した場

合,バスハンドラが異常を検出する。また,キャッシュ無効化指示コマンドに対して,4.7.2 のリトラ

イ動作が生じた場合は,このキャッシュ無効化動作を中止する。そして再度バスを獲得した後,プロ

セッサで更新された部分を共有メモリに書き込む。


41

X 6801 : 1998

図 17  キャッシュ無効化指示動作


42

X 6801 : 1998

4.7.2

リトライ指示動作  システムバスの負荷を軽減するために,自プロセッサに存在するキャッシュ上

のブロックだけを更新して共有メモリを更新しない場合,当該ブロックに対する他プロセッサや I/O アダ

プタからの読み出しに対して,自プロセッサのキャッシュにヒットすると,読み出しデータを自プロセッ

サから送出する必要がある。

図 18 にリトライ指示動作のシーケンスを示す。

機能ユニット (#0) はキャッシュミスを検出して,メモリに対してブロック読み出しコマンドを発行し

たが,アクセスアドレスが機能ユニット (#1) のキャッシュにヒットし,かつ当該キャッシュ状態が変更

状態 (EM) ,つまり最新のブロックが機能ユニット (#1) のキャッシュにだけ登録されている場合,機能

ユニット (#1) は RTY

*

信号をアサートする。

リトライ信号 RTY

*

はオーダ転送の最初のサイクル(コマンド転送サイクル)から 2 サイクル後のタイ

ミングでアサートされる。

図 18 ではリードオーダに対するリトライ指示動作の例を示した。

ライトスルー動作に対しても,同様の制御を行う。このとき,共有メモリはリード,ライト動作とも行

わない。


43

X 6801 : 1998

図 18  リトライ指示動作


44

X 6801 : 1998

4.7.3

リトライ指示後のコピーバック動作とスチール動作  リトライ信号を受信した送信元の機能ユニ

ット SUT は一定期間コピーバックのための保留期間を経過した後,リトライ動作を行う。このリトライ動

作に先立ち,リトライ信号をアサートした機能ユニットによるコピーバック動作が行われる。

図 19 にリトライ指示後のコピーバック動作のシーケンスを示す。この図ではリトライ信号をアサートし

た機能ユニット (#1) が,1 ブロック(32 バイト)の非共有変更状態 (EM) のキャッシュデータを共有メ

モリへコピーバックする動作が示されている。

また,この図には,機能ユニット (#0) によるスチール動作のタイミングも示されている。スチール動

作に関してはオプションであり,スチール禁止信号 STI

*

を備えたシステムだけ行うことができる。

スチール禁止信号を備えていないシステムの場合,コピーバック後に機能ユニット (#0) が共有メモリ

へ再アクセスを行う。


45

X 6801 : 1998

図 19  リトライ指示後のコピーバック動作とスチール動作


46

X 6801 : 1998

4.7.4

スチール禁止指示動作  スチール動作については,5.で示すように,キャッシュコヒーレンシを維

持するために一定期間禁止される場合がある。

スチール禁止指示の行われる動作シーケンスを

図 20 に示す。

機能ユニット (#0) がリードアクセスを行う。次にアクセス対象アドレスの EM 状態のキャッシュデー

タを保持する機能ユニット (#1) が,リトライ信号 RTY

*

をアサートする。このときスチール禁止信号 STI

*

はアサートされない。

機能ユニット (#1) によるコピーバックが行われる前に,機能ユニット (#2) は同一ブロックのモディフ

ァイ付きリードを行うものと仮定する。

機能ユニット (#1) はリトライ信号をアサートし,同じタイミングでスチール禁止信号 STI

*

をアサート

する。その後,機能ユニット (#1) がコピーバック動作を行う場合は,機能ユニット (#0) はスチール可能

で機能ユニット (#2) はスチール禁止となる。

もし両者のスチールを同時に認めると,同一ブロックに対するキャッシュデータの矛盾が生じることに

なるため,上記シーケンスでは機能ユニット (#2) のアクセスの際,STI

*

信号によってスチール動作の禁止

を通知している。


47

X 6801 : 1998

図 20  スチール禁止指示動作


48

X 6801 : 1998

4.8

異常処理  この項では,アンサによって報告される異常発生時の動作について規定する。

4.8.1

アンサによって報告される異常処理  アンサによる異常報告は,DUT が行う。

バスオペレーションにおいて転送データに異常が検出された場合,DUT はアンサによって異常が発生し

たことを SUT に通知する。

SUT

はそれを受け取り,異常処理を行う。SUT は必要に応じて再送処理をしてもよい。

DUT

が検出する異常は,以下のとおりである(

表 参照)。

・Hardware error

・Illegal command

・Bus sequence error

図 21 に,DUT が異常を検出した場合の動作シーケンスを示す。


49

X 6801 : 1998

図 21  DUT で異常を検出しアンサで応答する場合 


50

X 6801 : 1998

4.8.2

その他の異常処理

1)

GRTOT (Grant Time Out)

  SUT が所定の待ち時間を経過してもバスを獲得できないことを検出した。

図 22 にその動作シーケンスを示す。

図 22  機能ユニット (#0) がタイムアウトを検出したケース

2)

ASTOT (Answer Time Out)

  SUT が所定の待ち時間を経過してもアンサ情報を受信できないことを検

出した。

上記の 1)2)の異常は機能ユニットごとに存在するバスインタフェース制御部 (BIC) によって検出され

る。BIC はそれぞれの異常を何であるか (GRTOT/ASTOT) を登録し,バス動作を異常終結させる。

なお,待ち時間についてはユーザ規定とする。

5.

キャッシュのコヒーレンシ制御  この章では STbus を TCMP(密結合型マルチプロセッサ)のメモリ

バスとして使用する場合の機能ユニット内のキャッシュと共有メモリ間のコヒーレンシ維持動作について

述べる。

キャッシュのコヒーレンシの維持は,32 バイトからなるブロックを単位として行われる。

キャッシュコヒーレンシ制御はオプションであり,ユーザは必ずしもインプリメントしなくてよい。

5.1

キャッシュ制御方式の種類  STbus がサポートするキャッシュの制御方式は,以下の 2 種類である。

1)

ライトスルー[無効 (I) ,共有未変更 (SU) の 2 状態からなる。

プロセッサ又は命令実行部からの書き込みデータを,直接メモリに反映する方式。

2)

コピーバック[無効 (I) ,共有未変更 (SU) ,非共有変更 (EM) の 3 状態からなる。

プロセッサ又は命令実行部からの書き込みデータを,直接共有メモリに反映せず,キャッシュ内だ

けを更新しておく方式。内部状態 3 のキャッシュをサポートする。

STbus

では,上記の 2 種類のキャッシュの混在もサポートする。そのため,ライトスルーキャッシュの

動作の規定にも,コピーバックキャッシュとの混在時のための最小限の規定が追加されている。

5.2

キャッシュデータの属性  各機能ユニットはキャッシュをもつことができる。それぞれのキャッシ

ュは,複数のブロックから構成されている。各ブロックは,以下の属性によって管理されている。

I

: ブロックに登録されたデータが無効であるときの状態。


51

X 6801 : 1998

SU

: ブロックに登録されたデータが共有メモリと一致している状態。複数のキャッシュで同一

のブロックを共有している可能性がある。

EM

: ブロックに登録されたデータが最新のデータであり,共有メモリと内容が一致していない

状態。この状態のブロックはただ一つだけ存在し,他のキャッシュには共有されない。

スプリット転送のシステムバスを用いてコピーバックキャッシュを構築するため,上記のキャッシュブ

ロックの属性に加えて,以下のアクセス途上の過渡状態が定義されている。

I

SU

: リードオーダ発行からアンサを受け取るまでの I⇒SU 遷移途中の過渡状態。

I

EM

: モディファイ付きリードのオーダ発行からアンサを受け取るまでの I⇒EM 遷移途中の過渡

状態。

EM

SU

: 他のプロセッサによるリードアクセスに対して,EM 状態の最新データをプロセッサ内の

キャッシュに保持している場合,他のプロセッサに対するリトライ動作指示後,当該デー

タをコピーバックするまでの EM⇒SU 遷移途中の過渡状態。

EM

I

: 他のプロセッサによるライトアクセスに対して,EM 状態の最新データをプロセッサ内の

キャッシュに保持している場合,他のプロセッサに対するリトライ動作指示後当該データ

をコピーバックするまでの EM⇒I 遷移途中の過渡状態。

5.3

システムバス上の動作  この節ではキャッシュの動作とシステムバス上のコマンドの関係について

述べる。

以下にメモリアクセスコマンド中の R/W と M フィールドの組合せによって実現されるシステムバスコ

マンドの種類を示す。

表 8  システムバスコマンドタイプ

R/W M

バスの動作

0 0

ライトコマンド

 1

キャッシュの無効化指示コマンド (CI)

1 0

リードコマンド

 1

モディファイ付きリードコマンド

備考  キャッシュの無効化指示の動作シーケンスについて

は,

図 17 を参照のこと。

1)

システムバスコマンド送出  システムバス上のコマンドの送出は,CPU の動作に起因する。CPU の動

作とそれぞれのシステムバスコマンドの関係については,

図 23 に示す。

システムバスコマンドは,キャッシュの制御方式又はアクセス領域のキャッシュデータのブロック

の属性の影響を受ける。


52

X 6801 : 1998

(

6

)

リプレース動作:

キャッシュへ新規データを登録するための動作。コピーバックキャッシュでは

EM

属性のデータに対し,新規登録に先立ってコピーバックを行う必要があ

る。

図 23  CPU の動作とシステムバス上のコマンドの関係

2)

システムバスコマンドの受信  キャッシュコヒーレンシを維持するために,他のユニットが送出する

システムバスコマンドを各ユニットは監視する。このような動作をバス・スヌープ動作と呼ぶ。

ライトスルーキャッシュの場合には,以下のような動作を行う。

・ 他のユニットのライトコマンド

⇒  当該ブロック無効化

・ 他のユニットのキャッシュ無効化指示コマンド

⇒  当該ブロック無効化

・ 他のユニットのリードコマンド

⇒  動作なし

・ 他のユニットのモディファイ付きリードコマンド ⇒  当該ブロック無効化


53

X 6801 : 1998

コピーバックキャッシュでは,アクセスされたキャッシュ領域について,自機能ユニット内に EM

属性データをもつ場合や,ちょうど当該領域に対してオーダを送出してアンサ待ちの場合は,リトラ

イ指示やスチール禁止指示(オプション)を行う必要がある。

これらの詳細については,以下の 5.4

リトライ指示動作,5.5 スチール動作で述べる。

5.4

リトライ指示動作  EM 状態のブロックに対して,外部のデバイスがアクセスした場合にそのアクセ

スを一時中断させる動作である。リトライ指示のために専用の信号線 RETRY

*

が用意されている。

RTY

*

信号をアサートする条件は,以下の四つである。

1) EM

状態のキャッシュデータに対して,他の機能ユニットがアクセスした場合。

2)

過渡状態にあるキャッシュデータに対して,他の機能ユニットがアクセスした場合(ただし,I

SU

状態

で他の機能ユニットが同一データをリードするときは除く。

3)

キャッシュ無効化コマンドを受信した他の機能ユニットがバッファフルやパリティエラーを検出した

場合。

4)

バススヌープ動作を実行した他の機能ユニットがバッファフルやパリティエラーを検出した場合。

リトライ指示動作のシーケンスについては

図 18 に示されている。

リトライ指示を受け取ったユニットは,コピーバックの終了後にアクセスを行うために,一定の待ち時

間経過後にリトライ動作を行う。この待ち時間及びリトライ回数の規定はユーザ依存とする。

5.5

スチール動作  スチール動作はスチール禁止信号 STI

*

をサポートするシステムにだけ可能な動作で

ある。スチール機能をサポートしないシステムの場合には,以下の記述は不要とする。

スチール動作を行うことができる機能ユニットは,以下の条件を満たす必要がある。

1)

スチールする以前に当該領域のアクセスにおいて,オーダ送出の 2 サイクル後にリトライ指示を受け

たユニットであること。

2)

リトライ指示を受けたサイクルでスチール禁止信号 STI

*

がアサートされなかったこと。

スチール動作は上記の条件を満たす機能ユニットが,EM 属性のブロックをもつ機能ユニットから共有

メモリに対してコピーバックするとき,システムバス上のコピーバックデータを共有メモリと同時に受信

する動作である。これによって不要なバスアクセスを削減することができる。

リトライ指示後のコピーバック動作とスチール動作のシーケンスについて

図 19 に示されている。

スチール禁止信号がアサートされる条件を,以下に示す。

1)

第 1 の機能ユニットのメモリリードコマンドに対して,第 2 の機能ユニットのリトライ指示動作が行

われて,まだ第 2 の機能ユニットのコピーバックが終了していない状態のブロックに対して,第 3 の

機能ユニットからモディファイ付きリードコマンドが送出されたとき。

2)

メモリライトコマンドに対してリトライ指示動作が行われた場合,まだコピーバック動作が終了して

いない状態のブロックに対して第 3 の機能ユニットからのアクセスが行われたとき。

3)

モディファイ付きリードコマンドのアンサ待ちブロックに対して,他の機能ユニットがアクセスを行

った場合。

4)

メモリリードコマンドのアンサ待ちブロックに対して,他の機能ユニットからモディファイ付きリー

ドコマンドが送出されたとき。

備考  リトライ指示動作は RTY

*

信号のアサートする条件 1)だけの要因でアサートされるわけではな

いので,リトライ指示されたとき必ずしもスチール動作できるわけではない。スチールできな

いときは,一定の待ち時間経過後は自らリトライ動作を行う必要がある。

5.6

キャッシュデータ管理と状態遷移


54

X 6801 : 1998

5.6.1

ライトスルーのキャッシュ  機能ユニット内のキャッシュは共有メモリとのコヒーレンシを保つ

ためにバス,スヌープ機能を備える必要がある。すなわち,メモリを共有するすべての機能ユニットはシ

ステムバス上のコマンドとアドレスのデータを監視して,共有メモリでのデータの更新が行われ,当該ブ

ロックがキャッシュ内に存在していた場合,このエントリを無効化する。

キャッシュ無効化コマンド,モディファイ付きリードコマンドの場合も同様である。

コピーバックキャッシュとの混在時には,最新のデータブロックに対してリード/ライトするために,

リトライ動作をサポートする必要がある。すなわち,アクセス時に RTY

*

信号がアサートされた場合ライ

トスルーキャッシュをもつ機能ユニットはバス上に送出したリード/ライト処理のリトライを行う必要が

ある。

ライトスルーのキャッシュデータは,以下に示す 2 種類のキャッシュ内部状態及び 1 種類の過渡状態で

管理される。

1)

I

(無効)状態  キャッシュ上に最新のデータが登録されていない状態である。この状態のときは,シ

ステムバス上のコマンド/アドレスに対して何ら反応しない。

また,CPU からの書き込み要求に対しては,当該ブロックを読み込むことはない。書き込みデータ

を外部共有メモリにライトするだけである。

システムリセット時には,すべてのブロックはこの状態でなければならない。

2)

SU

(共有未変更)状態  エントリに有効な情報が登録されている状態である。ライトスルーであるの

で,外部の共有メモリと内容は常に一致している。

CPU

からの書き込み要求に対してはキャッシュを書き換えるとともにシステムバスを介して共有

メモリも書き換える。

3)

I

SU

 (I

SU)  の状態  リードミスヒット時のブロック受信待ち状態である。ブロックの属性としてはま

だ I 状態である。システムバス上で同一ブロックに対してアクセスが行われないかどうか監視する必

要がある。他の機能ユニットのリードアクセス以外のすべてのアクセスに対して,リトライ指示を行

う。他の機能ユニットのライトミスヒット時のブロックリードに対してはスチール禁止指示(オプシ

ョン)を行う。

図 24 に STbus のライトスルーキャッシュ一致制御プロトコルを示す。

[1]

: I 状態である。システムバスの任意のコマンドに対して何ら反応しなくてよい。

[2]

: CPU からのリード要求に対して必要な情報がキャッシュに登録されていない場合,リードミスによ

るブロックリードオーダコマンドを発行する。

これによって I

SU

の過渡状態になる。

[3]

: I

SU

状態である。他の機能ユニットがシステムバス上で同じブロックアドレスに対してアクセスしな

いように監視する。もし,リード以外のアクセスが行われた場合はリトライ指示信号をアサートし

て他の機能ユニットのアクセスを一時保留する。

他の機能ユニットのライトミスヒット時のブロックリードに対してはスチール禁止指示(オプシ

ョン)を行う。

[4]

: 共有メモリからのアンサをキャッシュに登録して SU 状態になる。

[5]

: SU 状態である。他の機能ユニットのシステムバスコマンドを監視する必要がある。

他の機能ユニットのリードコマンドやブロックリードコマンドを認めた場合にも SU 状態から遷

移する必要はない。また,自らのライトについてはライトコマンドをシステムバス上に送出する。

送出後の状態も SU のままである。


55

X 6801 : 1998

[6]

: SU 状態のブロックの領域へのライトコマンド,キャッシュ無効化コマンド,モディファイ付きリー

ドコマンドを検出した場合と,CPU からのリード要求によって別のブロックに置き換わった場合,I

状態に遷移する。

図 24  STbus のライトスルーキャッシュ一致制御プロトコル


56

X 6801 : 1998

5.6.2

コピーバックキャッシュ  コピーバックキャッシュでは,共有メモリのデータが機能ユニットで更

新されても,キャッシュだけでデータを更新し,直ちには共有メモリには反映しない。したがってキャッ

シュのコヒーレンシを維持するために,5.4

リトライ指示動作や 5.5 スチール動作(オプション)のキャッ

シュ一致制御プロトコルをサポートする。

コピーバックのキャッシュデータは,以下に示す 3 種類のキャッシュ内部状態及び 4 種類の過渡状態で

管理される。

1)

I

(無効)状態  エントリとして有効な情報が登録されていない状態である。この状態のときは,シス

テムバス上のコマンド/アドレスに対して何ら反応はしない。システムリセット時には,すべてのブ

ロックはこの状態でなければならない。

2)

SU

(共有未変更)状態  エントリに有効な情報が登録されており,外部の共有メモリと内容が一致し

ている状態である。CPU からの読み込み要求の対象領域がこの状態であった場合,システムバスへの

アクセスは行わない。

3)

EM

(非共有変更)状態  エントリとして有効な情報が登録され,外部共有メモリと内容が一致して

いない状態である。この状態では,システムバス上のコマンドを監視し EM 状態のブロックへのライ

トコマンド,リードコマンド,モディファイ付きリードコマンドを検出した場合は,RTY

*

信号をアサ

ートしアクセスを一時中断させ,書き戻しを行わなければならない。

CPU

からの読み込み要求,書き込み要求の対象がこの状態であった場合,システムバスへのアクセ

スは行わない。

CPU

からのアクセスによって,リプレースされる領域がこの状態であった場合は,共有メモリに対

して対象ブロックを書き戻さなければならない。

4)

I

SU

 (I

SU)  の状態  リードミスヒット時のアンサ受信待ち状態である。システムバス上で同一ブロッ

クに対してアクセスが行われていないかどうか監視する。この状態のブロックに対する他の機能ユニ

ットの通常のリードアクセス以外のすべてのアクセスに対して,リトライ指示を行う。

他の機能ユニットのライトミスヒット時のブロックリードに対してはスチール禁止指示(オプショ

ン)を行う。

5)

I

EM

 (I

EM)  の状態  ライトミスヒット時のアンサ受信待ち状態である。システムバス上で同一ブロ

ックに対してアクセスが行われていないかどうか監視する。

この状態のブロックに対する他の機能ユニットのすべてのアクセスに対して,リトライ指示,キャ

ッシュデータのスチール禁止指示(オプション)を行う。

6)

EM

SU

 (EM

SU)  の状態  他の機能ユニットによるリードアクセスに対して,EM 状態の最新データを

機能ユニット内のキャッシュに保持している場合,他の機能ユニットに対するリトライ動作指示をし

てから当該データをコピーバックするまでの過渡状態である。

システムバス上で同一ブロックに対してアクセスが行われていないかどうか監視する必要がある。

他の機能ユニットのすべてのアクセスに対して,リトライ指示を行う。

また,他の機能ユニットのライトミスヒットに対してはコピーバック時のスチール禁止指示(オプ

ション)を行う。

7)

EM

I

 (EM

I)  の状態  他のプロセッサによるライトアクセスに対して,EM 状態の最新データを機能

ユニット内のキャッシュに保持している場合,他の機能ユニットに対するリトライ動作指示をしてか

ら当該データをコピーバックするまでの過渡状態である。

システムバス上で同一ブロックに対してアクセスが行われないかどうか監視する必要がある。


57

X 6801 : 1998

他の機能ユニットのすべてのアクセスに対して,リトライ指示,キャッシュデータのスチール禁止

指示(オプション)を行う。

図 25 に STbus のコピーバックキャッシュ一致制御プロトコルを示す。

[1] 

: I 状態である。システムバスの任意のコマンドに対して何ら反応しなくてよい。

[2] 

: CPU からのリード要求に対して必要な情報がキャッシュに登録されていない場合,リードミスによ

るブロックリードオーダを発行する。これによって I

SU

の過渡状態となる。

[3]

: I

SU

状態である。他の機能ユニットの同一ブロックのアクセスを監視して,もし通常のリード以外の

アクセスが行われた場合は,リトライ指示信号をアサートして他の機能ユニットのアクセスを一時

保留する。他の機能ユニットのライトミスヒット時のブロックリードに対してはスチール禁止指示

(オプション)を行う。

[4]

: 共有メモリからのアンサデータをキャッシュに登録して SU 状態になる。

[5]

: SU 状態である。他の機能ユニットのシステムバスコマンドを監視する。

他の機能ユニットのリードコマンドやブロックリードコマンドを認めた場合にも SU 状態から遷

移しない。

[6]

: システムバス上に,登録されたブロックの領域へのライトコマンド,キャッシュ無効化コマンド,

又はモディファイ付きリードコマンドを検出した場合と CPU からのリード要求によって,別のブ

ロックに置き換わった場合,I 状態に遷移する。

[7]

: CPU からのライト要求に対して必要な情報がキャッシュに登録されていない場合,共有メモリへは

モディファイ付きのリードオーダを発行する。これによって I

EM

状態の過渡状態になる。

[8]

: I

EM

状態である。他の機能ユニットがシステムバス上で同じブロックアドレスに対して,アクセス

しないように監視する。もしアクセスが行われた場合はリトライ指示信号,スチール禁止指示信号

(オプション)をアサートして他の機能ユニットのアクセスを一時保留にする。

[9]

: 共有メモリからのアンサブロックを登録する。読み込んだブロックに対して,CPU からのライトを

反映し,ブロックの状態は EM 状態となる。

[10]

: CPU からのアクセスによって別の領域に置き換えられた場合,他のキャッシュ/入出力装置の共有

メモリへのライトコマンド,モディファイ付きリードコマンドに対して,リトライ指示信号をアサ

ートして中断する。これによって EM

I

の過渡状態になる。

[11]

: EM

I

状態である。他の機能ユニットの同一ブロックのアクセスを監視して,もしアクセスが行われ

た場合はリトライ指示信号をアサートして他の機能ユニットのアクセスを一時保留にする。同時に

スチール禁止指示(オプション)をアサートしてコピーバック動作の際,スチール動作も行われな

いようにする。

[12]

: 共有メモリへのブロックのコピーバックのためのブロックライトコマンドを送出する。キャッシュ

のデータは無効となり,I 状態に遷移する。

[13]

: CPU からのアクセスによって,リプレースされる領域が EM 状態であった場合,共有メモリに対し

て対象ブロックを書き戻さなければならない。これによって EM

SU

の過渡状態になる。

[14]

: 他の機能ユニットからの共有メモリへのリードコマンドに対して,リトライ指示信号をアサートし

て中断する。これによって EM

SU

の過渡状態になる。

[15]

: EM

SU

状態である。他の機能ユニットの同一ブロックのアクセスを監視して,もしアクセスが行わ

れた場合はリトライ指示信号をアサートして他の機能ユニットのアクセスを一時保留する。同時に

他の機能ユニットのモディファイ付きリードコマンドに対してはコピーバック時のスチール禁止


58

X 6801 : 1998

指示(オプション)を行う。

[16]

: 共有メモリへのブロックのコピーバックのためのブロックライトコマンドを送出する。キャッシュ

のブロックは登録されたままであり,SU 状態に遷移する。

[17]

: CPU からの書き込み要求の対象領域が SU であった場合,システムバスにキャッシュ無効化コマン

ド (CI) を発行しなければならない。この場合,ブロックは EM 状態に遷移する。


59

X 6801 : 1998

図 25  STbus のコピーバックキャッシュ一致制御プロトコル


60

X 6801 : 1998

5.7

メモリアクセス時の注意事項  STbus 仕様では,1 バスオペレーションの転送バイト数は 256 バイト

まで可能である。

しかし,システムがキャッシュをサポートする場合は,キャッシュコヒーレンシを維持するため,1 バ

スオペレーションの転送バイト数はキャッシュのブロック長(32 バイト)の影響を受ける。

メモリアクセスを行う場合には,次の制限事項を厳守しなければならない。

1)

1

バスオペレーションにおけるデータ転送長の最大値は,システムのキャッシュのブロックサイズ以

下でなければならない。

2)

メモリアクセスにおいて,メモリアドレスがキャッシュブロックサイズの境界になく,かつメモリア

ドレスと転送長の関係がキャッシュブロックサイズの境界をまたぐ場合には,キャッシュブロックサ

イズ内でラップアラウンドしてデータを転送すること。このとき,4.2.2 で示したバイトアラインメン

トは成立しない(W の値は無効)

3) I/O

アダプタがメモリアクセスを行う場合は,メモリアドレスと転送長の関係がキャッシュブロック

サイズをまたぐことを禁止する。

備考  3)の制限は I/O アダプタの流通性を考慮して STbus の共通仕様として位置付ける。

6.

高信頼化機能  フォールト・トレラントなシステムを構築するために,以下の機能がシステムバスに

必要とされる。

1)

冗長構成

2)

障害検出

3)

障害波及の防止

4)

障害処理・診断のサポート

6.1

冗長構成

1)

パリティの付与  STbus は信号の 1 ビット・エラーを検出するためにパリティをもっている。

コマンド/アドレス/データのマルチプレクスされた情報転送バス AD [00..63]

*

に対してバイト単

位にパリティ信号線 AD [0..7]

*

を付与している。また,制御信号線 BS

*

,BUR

*

に対しても CSP

*

のパリ

ティ信号を付与している。

2)

信号の 重化構成  キャッシュ関連の制御信号 RTY

*

,STI

*

,LCK

*

について,個々の信号に対して 1

ビット・エラーを訂正できる 2 重化構成をとっている。

すなわち,RTY

*

,STI

*

,LCK

*

のベース信号に対して,それぞれのスペア信号線として RTYS

*

,STIS

*

LCKS

*

を備えている。

さらにそれぞれのベース信号とスペア信号で不一致が生じた場合の各信号の意味付けは,

表 に示

すように定義されている。

意味付けは不一致が起きた場合の安全優位性から決定されている。

表 9  ベース信号とスペア信号が不一致した場合の意味付け

(a)

  RTY

and STI

*

の場合

ベース信号

スペア信号

状態

意味付け

0 0

一致

0

:ネゲート

0 1

不一致

1

:アサート

1 0

不一致

1

:アサート

RTY

*

STI

*

1 1

一致

1

:アサート


61

X 6801 : 1998

表 9  (続き) 

(b)

  LCK

*

の場合

ベース信号

スペア信号

状態

意味付け

0 0

一致

0

:ネゲート

0 1

不一致

0

:ネゲート

1 0

不一致

0

:ネゲート

LCK

*

1 1

一致

1

:アサート

6.2

障害検出

1)

アンサによるエラー検出  システムバス上の転送中に検出される異常については,表 に示されてい

るように,以下のものがある。

・ Hardware

error

・ Illegal

command

・  Bus sequence error

これらの異常は DUT によって検出される。

また,異常の際の動作シーケンスについては,4.8.1

アンサによって報告される異常処理を参照のこ

と。

2)

タイムアウトによるエラー検出  タイムアウトによって検出可能なエラーとして,以下のものがある。

・ SUT が一定時間内にバスを獲得できない。

・ SUT が一定時間内に送出済のオーダに対するアンサを獲得できない。

これらの異常の検出は各機能ユニット内のバスインタフェース制御部 (BIC) によって検出される。

また,異常の際の動作シーケンスについては,4.8.2

その他の異常処理を参照のこと。

6.3

障害波及の防止  機能ユニットで発生した障害は,システムバスを経由して他の機能ユニットに波

及するおそれがある。これを防止するために STbus は障害を起こした機能ユニットからのバスアクセスを

禁止する機能(アイソレーション機能)をもつ。アイソレーション機能は,以下のとおりである。

STbus

は,これらの目的のためにシリアルバスを設けてもよい。

・  機能ユニットの障害が検出され,上記シリアルバスにてバスハンドラに通知された場合,バスハン

ドラはその機能ユニットに対して,バス使用許可信号 (GR

*

)

を返送しない。

・  上記シリアルバスにて機能ユニットに対しアイソレーション指示を与えることでバス使用要求を出

力しない。

以上の機能によって,障害機能ユニットのどの信号もバスから電気的に遮断することができる。こうし

て,障害がバスを通して波及するのを防止することができる。

6.4

障害処理・診断のサポート

1)

障害処理  タイムアウト機能で検出されたエラーについては,検出の時点で要因別に細分化されてい

る。ハードウェア又はソフトウェアは,これらの要因に従ってエラーの要因を解析し,障害処理を行

える。

2)

ログアウト情報の収集・故障箇所の診断  エラーが軽度の場合,ハードウェアのリトライ動作で解消

できる場合もある。しかし,軽度のエラーに見えてもシステムに重大な影響を与える場合がある。シ

ステムバス全般の障害を総合的に把握するためには,定期的にログアウト情報の収集を行ったり,ソ

フトウェアによる障害の解析を行うことが必要である。また,重大なエラー発生時には,故障被疑箇

所の診断を行う必要がある。


62

X 6801 : 1998

附属書 A(参考)  性能(推定)

図 A.1  STbus performance 

8-byte バス幅で,かつ 32-bit アドレッシングの場合) 


63

X 6801 : 1998

附属書 B(参考)  ロック転送時のアンサ返送

機能ユニット#0 (FU#0)  が,FU#1 との間でロック転送を実行するとする。

ロック転送中は,当該のロック転送にかかわる転送以外は実行できないため,FU#1 は FU#0 以外への転

送は実行しない。

しかし,

図 B.1 の例では,FU#0 のロック転送に対するアンサを返送できず,デッドロックが生じる。こ

の問題を解決するためにロック中でもアンサに対してバス権を与え,さらにアンサはオーダを追い越せる

よう,送信バッファ制御部を設計する必要がある。

図 B.1  デッドロック問題の例


64

X 6801 : 1998

附属書 C(参考)  ロック転送とコピーバックキャッシュの書き戻し

他ボード内の EM(非共有変更)状態のキャッシュデータに対しロック転送を実行する場合,EM 状態の

キャッシュデータをメモリに書き戻す必要がある。

解決策として,リトライ機能によってロック転送をいったん中断して(ロック信号をいったんネゲート

して)

,その間に書き戻しサイクルを実行し,その後,ロック転送を再開する方法がある。

図 C.1  EM 状態のキャッシュデータへのロック転送方法

JIS

原案作成委員会  構成表

JTC1/SC26

国内対策専門委員会

氏名

所属

(委員長)

脇  村  慶  明

日本電信電話株式会社 NTT ネットワークサービスシステム研究所

(委員)

岡  田  勝  行

日本電信電話株式会社 NTT ネットワークサービスシステム研究所

森      義  一

沖電気工業株式会社電子デバイス事業本部

浪  本  敬  二

株式会社東芝半導体事業本部

川  村  善  久

日本ディジタルイクイップメント株式会社標準化推進室

藤  崎  正  人

日本電気株式会社技術企画部

永  尾  春  樹

日本電気株式会社半導体ソリューション技術本部

中  島  真  人

日本電気株式会社技術企画部

茶  木  英  明

株式会社日立製作所半導体事業部

内  山  邦  男

株式会社日立製作所中央研究所

藤  川      悟

松下電器産業株式会社マルチメディア開発センター

松  井  秀  夫

三菱電機株式会社マイコン ASIC 事業統括部

漆  山      隆

富士通株式会社 LSI 商品事業本部

田  島  守  彦

電子技術総合研究所知能情報部

渡  部  庄  吾

社団法人日本電気計測器工業会技術部

桐  谷  俊  雄

社団法人日本事務機械工業会標準部

永  松  荘  一

通商産業省機械情報産業局電子機器課

安  延      申

通商産業省機械情報産業局情報処理振興課

加  山  英  男

財団法人日本規格協会技術部

橋  爪  邦  隆

工業技術院標準部

(事務局)

東  條  喜  義

社団法人日本電子工業振興協会技術部

安  藤  茂  樹

社団法人日本電子工業振興協会技術部


65

X 6801 : 1998

JTC1/SC26/WG12 (STbus)

国内対策委員会

氏名

所属

(主査)

岡  田  勝  行

日本電信電話株式会社 NTT ネットワークサービスシステム研究所

(委員)

脇  村  慶  明

日本電信電話株式会社 NTT ネットワークサービスシステム研究所

田  原      保

沖電気工業株式会社第一基幹ネットワーク事業部

浪  本  敬  二

株式会社東芝半導体事業本部

加  藤      明

日本電気株式会社交換事業部プロセッサ技術部

中  島  真  人

日本電気株式会社技術企画部標準化推進部

岡  澤  宏  一

株式会社日立製作所オフィスシステム事業部

森      昭  助

富士通株式会社 LSI 商品事業本部第一システム LSI 事業部

藤  川      悟

松下電器産業株式会社マルチメディア開発センター

小  倉  匡  勝

社団法人日本事務機械工業会標準部

漆  山      隆

富士通株式会社 LSI 商品事業本部第一システム LSI ソフトウェア部

杉  森  正  章

工業技術院標準部

(事務局)

東  條  喜  義

社団法人日本電子工業振興協会技術部

安  藤  茂  樹

社団法人日本電子工業振興協会技術部