JP2000099448A - ディジタル・デ―タ処理システムにおいて複数のホスト・コンピュ―タ間で記憶サブシステムなどの資源の共用を容易にするためのシステムおよび方法。 - Google Patents

ディジタル・デ―タ処理システムにおいて複数のホスト・コンピュ―タ間で記憶サブシステムなどの資源の共用を容易にするためのシステムおよび方法。

Info

Publication number
JP2000099448A
JP2000099448A JP11185017A JP18501799A JP2000099448A JP 2000099448 A JP2000099448 A JP 2000099448A JP 11185017 A JP11185017 A JP 11185017A JP 18501799 A JP18501799 A JP 18501799A JP 2000099448 A JP2000099448 A JP 2000099448A
Authority
JP
Japan
Prior art keywords
task
microcontroller
command
loop
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11185017A
Other languages
English (en)
Inventor
William F Day
ウィリアム・エフ・デイ
Susan L Copeland
スーザン・エル・コープランド
David A Hill
デヴィド・エイ・ヒル
Mark J Hornacek
マーク・ジェイ・ホーナック
Michael K Hosrom
マイケル・ケイ・ホースロム
Gavin J Kirton
ギャビン・ジェイ・カートン
C Kaiser Paula
ポーラ・シイ・カイザー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000099448A publication Critical patent/JP2000099448A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/437Ring fault isolation or reconfiguration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 ディジタル・データ処理システム内の複数の
ホスト・コンピュータの間での記憶サブシステムなどの
資源の共用を容易にするための新しい改良されたシステ
ムおよび方法を提供する。 【解決手段】 ホスト・プロセッサはループの形のトポ
ロジを有する相互接続を介してドライブ・モジュールに
接続される。相互接続は少なくとも一つの構成可能スイ
ッチを有し、このスイッチは、トポロジにループ全体が
含まれるパススルー・モードか、トポロジにホスト・プ
ロセッサとおそらくは記憶サブシステム内の少なくとも
一つのドライブ・モジュールを含むループの一部が含ま
れるバイパス・モードのいずれかに切り換える。ホスト
・プロセッサは、構成スイッチをパススルー・モードま
たは前記バイパス・モードに選択的に調整して、ループ
により多くのまたはより少ないドライブ・モジュールを
接続することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全般的にはディジ
タル・コンピュータ・システムに関し、具体的には、デ
ィスク記憶装置などの一つまたは複数の資源を、複数の
ホスト・コンピュータの間で選択的に共用できるように
するためのシステムに関する。
【0002】
【従来の技術】ディジタル・データ処理システムには、
処理、記憶、表示、印刷などのために情報を転送できる
ように相互接続された複数の装置が含まれている。多く
の相互接続配置がディジタル・データ処理システムで使
用されている。周知のファイバ・チャネル・プロトコル
を使用して情報が転送される一つ特定の配置では、装置
は、リング・トポロジで接続される。このトポロジで
は、装置DEV(1)が情報を装置DEV(2)に転送
し、以下同様であり、リングの最後の装置DEV(L)
は、最初の装置DEV(1)に情報を転送し、これによ
って、リングが完了する。ファイバ・チャネル・プロト
コルを使用するリング相互接続は、多数の長所を有する
が、最も特筆すべきは、情報を非常に高速に転送でき、
具体的には、ギガビット毎秒の範囲までの速度で転送で
きることである。
【0003】しかし、リング相互接続トポロジの使用に
は、複数の短所がある。短所の一つが、リング相互接続
への装置の追加が困難であり、障害につながる可能性が
あることである。さらに、1台の装置が故障した場合
に、その相互接続を介して転送される情報が、その故障
の原因に応じて停止するか破壊される可能性があり、故
障した特定の装置を突き止め、その装置を分離すること
が困難になる可能性がある。
【0004】
【発明が解決しようとする課題】本発明は、ディジタル
・データ処理システム内の複数のホスト・コンピュータ
の間での記憶サブシステムなどの資源の共用を容易にす
るための新しい改良されたシステムおよび方法を提供す
る。
【0005】
【課題を解決するための手段】手短に言うと、本ディジ
タル・データ処理システムは、複数のドライブ・モジュ
ールを含む記憶サブシステムなどの複数の資源を含む少
なくとも一つのサブシステムと、ホスト・プロセッサと
を備えている。ホスト・プロセッサは、ループの形のト
ポロジを有する相互接続を介してドライブ・モジュール
に接続される。相互接続は、少なくとも一つの構成可能
スイッチを有し、この構成可能スイッチは、トポロジに
ループ全体が含まれるパススルー・モードとするか、ト
ポロジにホスト・プロセッサとおそらくは記憶サブシス
テム内の少なくとも一つのドライブ・モジュールを含む
ループの一部が含まれるバイパス・モードとするか選択
的に構成することができる。ホスト・プロセッサは、構
成スイッチをパススルー・モードまたは前記バイパス・
モードに選択的に調整して、ループにより多くのまたは
より少ないドライブ・モジュールを接続することができ
る。
【0006】一つの態様では、ディスク・モジュールの
それぞれに、さらに、ディスク・モジュールとポート・
バイパス・スイッチが含まれ、このポート・バイパス・
スイッチも、選択的にパススルー・モードまたはバイパ
ス・モードに構成することができ、パススルー・モード
では、相互接続のトポロジにディスク・モジュールが含
まれ、バイパス・モードでは、相互接続のトポロジはド
ライブ・モジュールをバイパスする。ホスト・プロセッ
サは、ディスク・モジュールのポート・バイパス・スイ
ッチを選択的に調整して、より多くのまたはより少ない
ディスク・モジュールをループに接続することができ
る。構成可能スイッチとポート・バイパス・スイッチ
は、サブシステム・コントローラによって直接に制御さ
れる。このサブシステム・コントローラは、ホスト・プ
ロセッサから別のコマンド相互接続を介してスイッチを
制御するためのコマンドを受け取る。
【0007】
【発明の実施の形態】図1は、本発明に従って構成され
たディジタル・コンピュータ・システムを示す図であ
る。図1からわかるように、このシステムには、1実施
例では、2つのファイバ・チャネル(FC)ループであ
るFCループAおよびFCループBとバス150を含む
複数の相互接続を介して、図1では「6パック」200
と表記されている2つのディスク記憶サブシステムを含
むディスク記憶アレイに、ホスト・コンピュータとして
接続された2つのデータ記憶プロセッサ101および1
02が含まれる。ファイバ・チャネル・ループA160
およびファイバ・チャネル・ループB170には、一般
に、通常のFibre Channel Arbitr
ated Loop(FC−AL)接続が含まれる。図
1には、2つのディスク記憶サブシステム(「6パッ
ク」)を含むものとしてディスク記憶アレイが図示され
ているが、本発明に従って構成されるシステムに、一つ
のそのようなディスク記憶サブシステムまたは3台以上
のそのようなディスク記憶サブシステムを含めることが
できることを諒解されたい。さらに、FCループA16
0またはFCループB170もしくはその両方に、ディ
スク記憶サブシステムでない装置をも含めることができ
ることを諒解されたい。
【0008】データ記憶プロセッサ101および102
は、データの記憶と処理のため、および、FCループA
160、FCループB170およびバス150への接続
のためのソフトウェア・モジュールとハードウェア・モ
ジュールを有する汎用コンピュータ・システムである。
DSP101および102のそれぞれには、ホスト中央
処理装置(CPU)103、メモリ104、入出力コン
トローラ108およびファイバ・チャネル・ホスト・ア
ダプタ105が含まれ、これらのすべてがバス151に
よって相互接続される。ファイバ・チャネル・ホスト・
アダプタ105には、ローカルCPU111、コントロ
ーラ(STC)400および2つのファイバ・チャネル
・コントローラ106および107が含まれる。STC
400は、ファイバ・チャネル・ホスト・アダプタ10
5をバス150に接続し、ファイバ・チャネル・コント
ローラ106および107のそれぞれは、ファイバ・チ
ャネル・ホスト・アダプタ105をそれぞれのファイバ
・チャネル・ループFCループA160またはFCルー
プB170に接続する。STC400は、1実施例では
従来のISA(Industry Standard
Architecture)インターフェースである
が、ISAバス153上でブリッジ109を介してバス
151に接続される。
【0009】バス150は、DSP101および102
に配置されたSTC400を、マルチドロップ式にディ
スク記憶サブシステム(6パック)200に接続する。
バス150は、DSP101および102によって制御
されて、FCループA160およびFCループB170
を構成するとともに、図2に関連して下で説明するよう
に、各ディスク記憶サブシステム(6パック)200内
の電子スイッチを制御することによってそれぞれのルー
プへディスク・ドライブ・ポートを切り替える制御経路
となっている。この電子スイッチは、FCループA16
0とFCループB170とをそれぞれ個別に構成して、
複数のモードで動作するように制御することができる。
それらのモードには、下で説明するように、DSP10
1または102が、それぞれのディスク記憶サブシステ
ム(6パック)200のディスク記憶装置のうちのさま
ざまな一つに接続することができるように、各ループが
DSP101および102の間またはさまざまなセグメ
ント内で延びているパススルー・モードを含む
【0010】以下では、図1の左側にあるディスク記憶
サブシステム(6パック)200を、「左側」ディスク
記憶サブシステム(6パック)と呼称し、図1の右側に
あるディスク記憶サブシステム(6パック)200を、
「右側」ディスク記憶サブシステム(6パック)と呼称
する。上で述べたように、FCループA160とFCル
ープB170のそれぞれには、それぞれのFibre
Channel Arbitrated Loopが含
まれる。FCループA160に関連するループ・トポロ
ジを、図1に関連して全般的に説明するが、ここで、F
CループA160の双方が「パススルー」モードに構成
されていると仮定し、FCループB170のループ・ト
ポロジはFCループA160のトポロジに類似している
ので、別々に説明はしない。
【0011】図1のFCループA160を参照すると、
このループには、複数のループ・セグメント161ない
し166が含まれる。パス・スルー・モードでは、デー
タは、次のようにループ・セグメント161ないし16
6を介して転送される。DSP101から始めると、ル
ープ・セグメント161は、FCコントローラ106の
送信器を左側ディスク記憶サブシステム(6パック)2
00の受信器に接続する。データは、左側ディスク記憶
サブシステム(6パック)200を介して転送され、ル
ープ・セグメント162に出力され、ループ・セグメン
ト162は、右側ディスク記憶サブシステム(6パッ
ク)200の受信器に接続される。データは、右側ディ
スク記憶サブシステム(6パック)200を介して転送
され、ループ・セグメント163に出力され、ループ・
セグメント163は、DSP102内に配置されたFC
コントローラ106の受信器に接続され、これによっ
て、DSP101からDSP102まで延びるFCルー
プA160の半分が完了する。DSP102からDSP
101へ延びるFCループA160の帰還経路は、次の
通りである。ループ・セグメント164は、DSP10
2内のFCコントローラ106の送信器を右側ディスク
記憶サブシステム(6パック)200の受信器に接続す
る。データは、右側ディスク記憶サブシステム(6パッ
ク)200を介して転送され、ループ・セグメント16
5に出力され、ループ・セグメント165は、左側ディ
スク記憶サブシステム(6パック)200の受信器に接
続される。データは、左側ディスク記憶サブシステム
(6パック)200を介して転送され、ループ・セグメ
ント166に出力され、ループ・セグメント166は、
DSP101内に配置されたFCコントローラ106の
受信器に接続され、これによって、FCループA160
のループが完了する。
【0012】図1に示されたシステムのFCループB1
70を参照すると、このループには、一連のループ・セ
グメント171ないし176が含まれ、これらは、ルー
プ・セグメント161ないし166に類似した形でそれ
ぞれの装置の間を接続し、FCループA160について
上で説明したものに類似の形でデータ転送用のループを
形成する。
【0013】図2は、図1に示されたシステムに使用さ
れるディスク記憶アレイ内のディスク記憶サブシステム
(6パック)200の機能ブロック図である。ディスク
記憶サブシステム(6パック)200は、「3パック」
と呼ばれる2つのセクションに分割され、各セクション
には、3つのディスク・ドライブ・モジュール202な
いし204または207ないし209と、それぞれのデ
ィスクのセクション・コントローラ装置(STD)30
0が含まれる。ディスク記憶サブシステム(6パック)
200には、下で説明するようにFCループ160およ
び170を構成するために働く6つのファイバ・チャネ
ル構成スイッチ(FCS)201、205、206、2
10、211および212が含まれる。具体的に言う
と、構成スイッチ201、205および206は、FC
ループA160の構成に使用され、構成スイッチ21
0、211および212は、FCループB170の構成
に使用される。
【0014】ドライブ・モジュール202ないし204
および207ないし209のすべてが、全般的に類似し
ているので、符号202によって識別されるものだけを
詳細に示す。ドライブ・モジュール202には、ディス
ク・ドライブ・ユニット217と、2つのドライブポー
ト・バイパス・スイッチ(DS)213および215が
含まれ、ドライブ・スイッチ213および215のそれ
ぞれは、ディスク・ドライブ217をそれぞれFCルー
プ160または170に接続またはそれから切断するよ
うに働く。各STD300は、ドライブ・ポート・バイ
パス・スイッチ213および215を制御して、ディス
ク・ドライブ・モジュールのうちの3つのFCループ1
60または170への接続を制御する働きをする。具体
的に言うと、図2の「左側」のSTD300は、制御接
続(CTL)250を介して、ディスク・ドライブ・モ
ジュール202のドライブ・ポート・スイッチ213お
よび215と、「左側」の3パックの他のディスク・ド
ライブ・モジュール203および204の対応するディ
スク・ポート・スイッチを制御して、これらのディスク
・ドライブ・モジュールのFCループ160または17
0への接続を制御する。同様に、図2の「右側」のST
D300は、制御接続(CTL)251を介して、「右
側」の3パックのディスク・ドライブ・モジュール20
7ないし209のディスク・ポート・スイッチを制御し
て、これらのディスク・ドライブ・モジュールのFCル
ープ160または170への接続を制御する。さらに、
左側のSTD300は、制御接続250を介して、ディ
スク記憶サブシステム(6パック)200を通るFCル
ープA160を構成するように働く構成スイッチ20
1、205および206を制御し、右側のSTD300
は、制御接続251を介して、FCループB170を構
成するように働く構成スイッチ210、211および2
12を制御する。STD300は、DSP101および
102によって供給される構成コマンドに応答して動作
し、この構成コマンドは、下で説明する形でバス150
を介して受信される。
【0015】ディスク記憶サブシステム(6パック)2
00を通るFCループA160の経路を、図2に関連し
て説明する。ディスク記憶サブシステム(6パック)2
00の左側に図示されているループ・セグメント161
および166と、ディスク記憶サブシステム(6パッ
ク)200の右側に図示されているループ・セグメント
162および165は、ディスク記憶サブシステム(6
パック)200をFCループA160に直列に接続する
ための外部接続である。ディスク記憶サブシステム(6
パック)200は、ループ・セグメント161および1
65を介してデータを受信し、ループ・セグメント16
2および166を介してデータを送信する。FCループ
A160がパススルー・モードで構成されている時に
は、構成スイッチ201、205および206はそれぞ
れ、左側のSTD300によってパススルー・モードに
なるようにプログラムされ、(i)DSP101からD
SP102への経路については、(a)構成スイッチ2
01がセグメント161をセグメント252に接続し、
セグメント252がディスク・ドライブ・モジュール2
02にデータを転送するように接続され、各ディスク・
ドライブ・モジュール202および203が、それぞれ
のセグメント255または256を介して次のディスク
・ドライブ・モジュール203または204にデータを
転送し、ディスク・ドライブ・モジュール204が、セ
グメント257を介して構成スイッチ205にデータを
転送し、(b)構成スイッチ205がセグメント257
をセグメント258に接続し、セグメント258が構成
スイッチ206にデータを転送するために接続され、
(c)構成スイッチ206がセグメント258をセグメ
ント162に接続し(ii)DSP102からDSP1
01への経路については、(a)構成スイッチ206が
セグメント165をセグメント259に接続し、セグメ
ント259がディスク・ドライブ・モジュール207に
データを転送するように接続され、各ディスク・ドライ
ブ・モジュール207および208が、それぞれセグメ
ント260または261を介して次のディスク・ドライ
ブ・モジュール208または209にデータを転送し、
ディスク・ドライブ・モジュール209がセグメント2
62を介して構成スイッチ205にデータを転送し、
(b)構成スイッチ205がセグメント262をセグメ
ント263に接続し、セグメント263が構成スイッチ
201にデータを転送するように接続され、(c)構成
スイッチ201が、セグメント263をセグメント16
6に接続するようになっている。
【0016】FCループA160では、左側のSTD3
00が、構成スイッチ201、205および206のそ
れぞれを個別にプログラムして、バイパス・モード
(「ループバック・モード」と称する場合もある)にす
ることができる。構成スイッチ201は、バイパス・モ
ードの時に、セグメント263をセグメント252に接
続し、セグメント161をセグメント252から切断
し、セグメント166をセグメント263から切断す
る。この状態では、DSP101は、FCループA16
0のうちの、データ記憶サブシステム(6パック)20
0、ディスク記憶ユニット(6パック)200とDSP
102の間でFCループA160に接続される他の装
置、およびDSP102自体を含む部分から切断され
る。しかし、構成スイッチ205および206がパスス
ルー・モードであり、データ記憶サブシステム(6パッ
ク)200とDSP102の間の装置の構成スイッチの
どれかがパススルー・モードの場合には、FCループA
160の一部に、DSP102と、データ記憶サブシス
テム(6パック)200内のディスク・ドライブ・モジ
ュール202ないし204および207ないし209の
すべてが含まれる。
【0017】その一方で、構成スイッチ206は、バイ
パス・モードの時に、セグメント258をセグメント2
59に接続する。この状態では、DSP102は、FC
ループA160のうちで、ディスク記憶サブシステム
(6パック)200と、ディスク記憶ユニット(6パッ
ク)200とDSP101との間でFCループAに接続
されている他の装置と、DSP101自体とを含む部分
から切断される。しかし、構成スイッチ201および2
05がパススルー・モードであり、データ記憶サブシス
テム(6パック)200とDSP101の間の装置の構
成スイッチのどれかがパススルー・モードの場合には、
FCループA160の一部に、DSP101と、データ
記憶サブシステム(6パック)200のディスク・ドラ
イブ・モジュール202ないし204および207ない
し209のすべてが含まれる。
【0018】最後に、構成スイッチ205は、バイパス
・モードの時に、セグメント257をセグメント263
に接続し、セグメント262をセグメント258に接続
する。この状態では、DSP101は、FCループA1
60のうちで、右側の3パックを構成するディスク・ド
ライブ・モジュール207ないし209を含む部分から
切断され、DSP102は、FCループA160のうち
で、左側の3パックを構成するディスク・ドライブ・モ
ジュール202ないし204を含む部分から切断され
る。しかし、構成スイッチ201がパススルー・モード
であり、データ記憶サブシステム(6パック)200と
DSP101の間の装置の構成スイッチのどれかがパス
スルー・モードの場合には、FCループA160の一部
に、DSP101とディスク・ドライブ・モジュール2
02ないし204が含まれる。同様に、構成スイッチ2
06がパススルー・モードであり、データ記憶サブシス
テム(6パック)200とDSP102の間の装置の構
成スイッチのどれかがパススルー・モードの場合には、
FCループA160の第2の部分に、DSP102とデ
ィスク・ドライブ・モジュール207ないし209が含
まれる。したがって、構成スイッチ205がバイパス・
モードの時には、FCループA160を2つの別々のフ
ァイバ・チャネル・ループに構成することができる。
【0019】右側のSTD300は、構成スイッチ21
0、211および212をプログラムして、上で構成ス
イッチ201、205および206に関連して説明した
ものに類似した形でFCループB170を構成すること
ができる。
【0020】ディスク・ドライブ・モジュール202の
ドライブポート・バイパス・スイッチ213および21
5のそれぞれは、左側のSTD300によって、パスス
ルー・モードまたはバイパス・モードに個別にプログラ
ムすることができる。ドライブポート・バイパス・スイ
ッチ213および215のそれぞれが、パススルー・モ
ードの時には、ディスク・ドライブ217が、それぞれ
FCループA160またはFCループB170に接続さ
れる。その一方で、ドライブポート・バイパス・スイッ
チ213および215のそれぞれが、バイパス・モード
の時には、ディスク・ドライブ217は、それぞれFC
ループA160またはFCループB170に接続されな
い。具体的に言うと、ドライブポート・バイパス・スイ
ッチ213は、パススルー・モードの時に、セグメント
252をセグメント253に接続し、セグメント253
は、ディスク・ドライブ217のポートA214に接続
され、これによって、セグメント252からディスク・
ドライブ217にデータが転送される。ポートA214
は、セグメント254にも接続され、ドライブポート・
バイパス・スイッチ213は、パススルー・モードの時
に、セグメント254をセグメント255に接続し、こ
れによって、ポートA214からセグメント255およ
びデータ記憶サブシステム(6パック)200内の次の
ディスク・ドライブ・モジュール203へのデータの転
送を容易にする。その一方で、ドライブポート・バイパ
ス・スイッチ213は、バイパス・モードの時に、セグ
メント252をセグメント255に直接に接続し、少な
くともセグメント254をセグメント255から切断
し、その結果、セグメント252からのデータが、セグ
メント255およびデータ記憶サブシステム(6パッ
ク)200内の次のディスク・ドライブ・モジュール2
03に転送されるようになる。同様に、ドライブポート
・バイパス・スイッチ215は、パススルー・モードの
時にはポートB216をFCループB170に接続し
て、ディスク・ドライブ217へのデータの転送を容易
にし、バイパス・モードの時にはポートB216をバイ
パスする。さらに、他のディスク・ドライブ・モジュー
ル203、204および207ないし209の対応する
ドライブポート・バイパス・スイッチ(別々には図示せ
ず)は、同様に動作して、それぞれのディスク・ドライ
ブ(別々には図示せず)を選択的にそれぞれのFCルー
プ160または170に接続またはバイパスする。
【0021】STD300の構造は、全般的に類似して
おり、具体的には図2の左側のSTD300だけを詳細
に説明する。図3は、左側のSTD300の機能ブロッ
ク図である。上で述べたように、左側のSTD300
は、CTL経路250を介して、ディスク・ドライブ・
モジュール202ないし204を含む左側の3パック
と、FCループA160の構成スイッチ201、205
および206を制御する。STD300はSTDマイク
ロコントローラ301によって制御される。STDマイ
クロコントローラ301は、1実施例では、3つの汎用
入出力ポートを備えた汎用マイクロコントローラであ
り、汎用入出力ポートのうちの一つが、インターフェー
ス/バス・エクステンダ307を介してバス150に接
続されて、図5に関連して下で説明するように、DSP
101および102からの情報の受信と、これらへの情
報の転送を容易にするようになっている。
【0022】マイクロコントローラ301は、図9ない
し13に関連して下で詳細に説明する、内部メモリに維
持されるファームウェア・プログラムを実行する。マイ
クロコントローラ301は、接続351、352および
353を介して、ドライブ電源スイッチ302のスイッ
チ0、1および2のスイッチ設定を監視する。マイクロ
コントローラ301は、接続354を介して温度センサ
303によって判定されるディスク記憶サブシステム
(6パック)200のハウジング(別々には図示せず)
内部の容器温度を監視する。STDマイクロコントロー
ラ301は、1組の出力レジスタ308にデータをロー
ドすることによって、構成スイッチ201、205およ
び206とドライブポート・バイパス・スイッチ213
および215の状態を含むさまざまな構成要素を制御す
る。STDコントローラは、接続360を介して、出力
レジスタ308にロードされるデータを、OUT_DA
TA信号の形で供給する。出力レジスタ308は、接続
361を介して供給されるOUT_CTL出力制御信号
によって制御される。STD300には、1組の発光ダ
イオード309も含まれ、発光ダイオード309の状態
は、それぞれ接続362、363および364を介して
出力レジスタ308から制御されて、STD300によ
って制御されるディスク・ドライブ・モジュール202
ないし204の電源状況の視覚的表示をもたらす。さら
に、STDには、経路359を介して出力レジスタ30
8から制御される、温度とスイッチ・バンク304の設
定を表示する表示装置310が含まれる。スイッチ・バ
ンク304は、STD300のアドレスとディスク・ド
ライブ・モジュール202ないし204のアドレスをバ
ス150に供給する。
【0023】ファイバ・チャネル構成スイッチ201、
205および206のそれぞれのモードは、CTL25
0の接続365部分を介して、出力レジスタ308内の
情報によって制御される。ディスク・ドライブ・モジュ
ール202のドライブポート・バイパス・スイッチ21
3および215と、ディスク・ドライブ・モジュール2
03および204の対応するドライブポート・バイパス
・スイッチのモードは、CTL250の接続366部分
を介して供給されるDS_CTLディスク制御信号によ
って、出力レジスタ308から制御される。同様に、ド
ライブ・モジュール202、203および204のドラ
イブ電源は、CTL250の電源制御接続367部分を
介してPWR_CTL電力制御信号を供給する出力レジ
スタ308によって制御される。STD300には、1
組のドライブ状況LED306も含まれ、ドライブ状況
LED306は、それぞれのディスク・ドライブ・モジ
ュール202ないし204のそれぞれのドライブポート
・バイパス・スイッチのそれぞれのモードと、それぞれ
のドライブ・モジュール202、203および204の
動作状況を表示する。それぞれのドライブポート・バイ
パス・スイッチのモードを識別するLED306は、接
続368を介して出力レジスタ308によって制御さ
れ、ディスク・ドライブ・モジュール202ないし20
4の動作状況を識別するLED306は、接続356を
介して受け取られるDRV_STATUSドライブ状況
信号によって制御される。
【0024】マイクロコントローラ301は、1組の入
力レジスタ305を介してディスク・ドライブ・モジュ
ール202ないし204の動作状況を受け取り、監視す
る。入力レジスタ305は、ドライブ・モジュール20
2ないし204のそれぞれから動作状況情報を表すDR
V_STATUSドライブ状況信号を受け取る。入力レ
ジスタ305は、信号線358を介するIN_CTL入
力制御信号の制御の下で、信号線357を介するIN_
DATA入力データ信号としてマイクロコントローラ3
01にこの情報を供給する。入力レジスタ305は、信
号線355を介してスイッチ304のスイッチ設定も受
け取る。
【0025】図4は、DSP101および102に使用
されるSTC400(図1)の機能ブロック図である。
上で示したように、STCは、データ記憶サブシステム
(6パック)200のSTD300にコマンドを転送
し、そこからバス150を介して状況および他の情報を
受け取る。さらに、DSP101および102のSTC
400は、その間で情報を転送して、DSP101とD
SP102の間のFCループ160および170の構成
に関する調整を容易にする。STC400には、マイク
ロコントローラ401、マルチプレクサ/デマルチプレ
クサ402、メモリ403およびバス・インターフェー
ス404が含まれる。マイクロコントローラ401は、
メモリに常駐するファームウェア・プログラムを実行す
る。このファームウェア・プログラムに関連して実行さ
れる動作の詳細は、図6、7および8に関連して下で説
明する。ハンドラ1400(図1)は、ISAバス15
3の制御部分452を介して供給されるSTC_CTL
制御信号によってマイクロコントローラ401を制御す
る。マイクロコントローラ401も、信号線451を介
する送信のためにST_STAT_INT状況割込み信
号を生成して、ハンドラ1400の制御の下での処理の
ためにローカルCPU111に割込みを送ることができ
る。
【0026】マルチプレクサ/デマルチプレクサ402
は、ST_RAM_ACCメモリ・アクセス制御信号の
制御の下で、マイクロコントローラ401とSTC40
0の外部の構成要素、特にファイバ・チャネル・ホスト
・アダプタ105のローカルCPU111によるメモリ
403へのアクセスを選択的に制御する。マイクロコン
トローラ401は、アドレス/データ・バス454を介
して、マルチプレクサ/デマルチプレクサ402の一つ
の入出力端子に接続され、ISAバス153のうちでブ
リッジ109をSTC400に接続する部分453を形
成するアドレス/データ・バス453は、マルチプレク
サ/デマルチプレクサ402の第2の入出力に接続され
る。マルチプレクサ/デマルチプレクサ402の入出力
は、アドレス/データ・バス456を介してメモリ40
3に接続される。マイクロコントローラ401が、たと
えばST_RAM_ACCメモリ・アクセス制御信号を
アサートする時には、マルチプレクサ/デマルチプレク
サは、バス454とバス456の間で信号を結合する。
その場合、マイクロコントローラ401は、マルチプレ
クサ/デマルチプレクサ402がマイクロコントローラ
401からメモリ403に記憶のために転送するメモリ
403内のアドレスを供給することができる。そのアド
レスが、マイクロコントローラ401からのデータが格
納されるメモリ403内の位置を識別する場合には、マ
イクロコントローラ401は、バス454を介してデー
タも転送し、このデータは、マルチプレクサ/デマルチ
プレクサ402がバス456を介してメモリ403に転
送する。その一方で、アドレスが、マイクロコントロー
ラ401へ転送されるデータがあるメモリ403内の位
置を識別する場合には、メモリ403が、バス456を
介してその位置からデータを転送し、そのデータは、マ
ルチプレクサ/デマルチプレクサ402が、バス454
を介してマイクロコントローラ401に転送する。同様
の動作が、マイクロコントローラ401がST_RAM
_ACCメモリ・アクセス制御信号をネゲートした時
に、バス453および456を介するISAバス153
とメモリ403の間でのアドレスとデータの転送に関し
て行われる。
【0027】バス・インターフェース404は、STC
400をバス150にインターフェースするように働
く。マイクロコントローラ401は、信号線450を介
してバス・インターフェース404に接続される。マイ
クロコントローラ401は、信号線450を介してバス
・インターフェース404に情報を転送することによっ
て、それぞれのディスク記憶サブシステム(6パック)
200のSTD300による実行のためのコマンドを含
む情報のバス150を介する転送をイネーブルすること
ができる。同様に、バス・インターフェース404は、
それぞれのディスク記憶サブシステム(6パック)20
0のSTD300から受信した状況情報を含む情報を、
バス150から受信し、信号線450を介してマイクロ
コントローラ401に供給することができる。
【0028】STC400とSTD300は、パケット
の形でバス150を介して情報を転送する。1実施例で
は、バス150は、Philips Semicond
uctor Corporation社によって策定さ
れたI2Cシリアル・データ・バスの形で実施され、そ
の実施例では、バス150を介して転送されるパケット
が、全般的にI2C標準規格に従う。図5は、バス15
0上で転送されるパケット500のフォーマットを示す
図である。パケット500には、「フレーミング状態」
と称する一連のフィールドが含まれ、これには、スター
ト・ビット501、宛先アドレス状態510、送信元ア
ドレス状態520、「opcode」(operati
on code、動作コード)状態530、長さ状態5
40、データ状態550、チェックサム状態560およ
びストップ・ビット503が含まれる。スタート・ビッ
ト501は、パケット500の先頭を識別し、ストップ
・ビットは、パケットの終りを識別する。他の状態51
0、520、530、540、550および560のそ
れぞれには、パラメータ・サブフィールド511および
512(状態510の場合)、521および522(状
態520の場合)、531および532(状態530の
場合)、541および542(状態540の場合)、5
51および561がそれぞれ含まれ、その後に肯定応答
ビット(Aビット)502がある。状態501および5
03の内容と、サブフィールド511、512、52
1、522、531、532、541、551および5
61の内容は、図5では斜線付きで示されているが、送
信元装置によって供給される。その一方で、サブフィー
ルド502の内容は、図5では斜線がなく、宛先装置に
よって供給される。
【0029】パケット500内では、宛先アドレス状態
510(「スレーブ・アドレス」状態とも称する)に、
宛先アドレス(Dadr)サブフィールド511、読取
り・書込みビット(R/W)512および肯定応答サブ
フィールド502が含まれる。送信元アドレス状態52
0には、送信元アドレス(Sadr)サブフィールド5
21、装置/ホスト・ビット、(D/H)ビット522
および肯定応答ビット502が含まれる。D/Hビット
522がセットされている(値「1」に対応する)時に
は、そのパケットは、STD300によって送信され、
D/Hビット522がクリアされている(値「0」に対
応する)時には、そのパケットはSTC400によって
送信されたものである。宛先装置は、前述のAビット5
02の状態を制御する。opcode状態530には、
状況/コマンド・ビット(S/C)531、動作コード
・サブフィールド532および肯定応答ビット502が
含まれる。長さ状態540には、長さサブフィールド5
41と肯定応答ビット502が含まれる。長さサブフィ
ールドに0以外の値が含まれる場合には、データ状態5
50が長さ状態540に続き、データ状態550には、
データ・サブフィールド551と肯定応答ビット502
が含まれる。チェックサム状態560は、長さフィール
ドでパケット500にデータ状態550が含まれること
が示されるかどうかに応じて、データ状態550または
長さ状態540のいずれかに続く。どちらの場合でも、
チェックサム状態560には、チェックサム・サブフィ
ールドと肯定応答ビット502が含まれる。チェックサ
ム状態560の後のストップ・ビット(P)状態503
によって、STバス・パケット500が終了する。
【0030】上で述べたように、パケット500には、
コマンドまたは状況応答のいずれかが含まれる可能性が
ある。DSP101または102のいずれかのファイバ
・チャネル・ホスト・アダプタ105のSTC400
(コマンドの場合)またはディスク記憶アレイ(6パッ
ク)200のSTD300(状況応答の場合)を含む送
信元装置は、バス150のアービトレーションを行い、
宛先装置にパケットを送信する。宛先装置は、Dadr
511フィールドにその装置のアドレスか一般呼出し
(General Call)アドレス(00H)のい
ずれかが含まれる時に、送信元装置からパケットを受信
することができる。コマンド転送を開始した装置をコマ
ンダ(Commander)と呼び、状況応答転送を開
始した装置をレスポンダ(Responder)と呼
ぶ。送信元装置は、コマンダとして一つまたは複数の宛
先装置にコマンドを含むパケットを送信した後に、宛先
装置から状況応答パケットを受信することを期待する。
コマンド・パケットを受け入れた宛先装置は、レスポン
ダになり、正常状況応答または異常状況応答のいずれか
をコマンダに返す。たとえば、STC400は、コマン
ダとレスポンダの両方として動作することができるが、
STD300は、レスポンダとしてのみ動作する。コマ
ンダ(具体的にはマイクロコントローラ401)は、状
況応答を受信した時に、それぞれのハンドラ1400に
よる取出しと処理のために状況情報をメモリ403にロ
ードする。コマンド・パケットの場合、バス150に接
続された装置が、 ・宛先アドレス・サブフィールド511に、バス150
上の宛先自体のアドレスまたは一般呼出しアドレス(0
0H)のどちらかが含まれ、 ・パケットが、上で説明したパケット・フォーマットに
従い、 ・サブフィールドのチェックサムが、その装置によって
生成されたチェックサム値に対応し、 ・パケットに、下で説明するフレーミング・エラーおよ
び転送タイムアウト・エラーが含まれない と判定する場合に、その装置は、宛先装置としてそのパ
ケットを受け入れるが、そうでない場合には、その装置
はそのパケットを破棄する。
【0031】パケットの転送に関連して、複数の種類の
エラー、具体的にはフレーミング・エラーと転送タイム
アウト・エラーが発生する可能性がある。フレーミング
・エラーが発生するのは、Sビット・フレーミング状態
501からパケット転送が開始されるが、パケットの残
りが、図5に関連して上で説明したパケット・フレーミ
ング・シーケンスに従わない時である。転送タイムアウ
ト・エラーが発生するのは、パケット・フレーミング状
態のいずれかが、所定のタイムアウト期間内に完了しな
い時である。パケット転送例外は、次の形で処理され
る。 ・コマンダとして動作している送信元装置は、ストップ
・ビット(P)フレーミング状態503を使用して転送
を打ち切り、所定の遅延時間の後に、コマンド・パケッ
トの送信の再試行を試みる。再試行に関連してエラーが
発生する場合には、送信元装置は、そのコマンド機能を
打切り、エラーを示す状況表示をメモリ403にロード
する。これはハンドラ1400によって処理することが
できる。 ・レスポンダとして動作している送信元装置は、ストッ
プ・ビット(P)フレーミング状態503を使用して転
送を打ち切り、応答パケットの転送を再び試みることは
しない。この例外は、コマンダが応答パケットを待ちな
がらタイムアウト・エラーを検出した時に、コマンダに
よって処理される。 ・コマンダまたはレスポンダとのいずれかとして動作し
ている宛先装置は、ストップ・ビット(P)フレーミン
グ状態503を使用して転送を打ち切り、不完全なパケ
ットを破棄する。
【0032】上で述べたように、DSP101および1
02のファイバ・チャネル・ホスト・アダプタ105の
STC400は、ハンドラ1400からのコマンドに応
答して動作する。1実施例でハンドラ1400によって
供給される可能性があるさまざまな種類のコマンドをこ
れから説明する。一般に、ハンドラ1400は、STC
400による、具体的に言えばマイクロコントローラ4
01による、取出しと実行のために、コマンドをメモリ
403にロードできるようにする。マイクロコントロー
ラ401は、コマンドを実行した後に、メモリ403に
状況表示を格納し、ST_STAT_INT割込み信号
をアサートして、ハンドラ1400の制御の下での処理
を可能にする。ハンドラ1400は、状況表示をメモリ
403から取り出せ、コマンドが完了したかどうかを判
定するために処理できるようにする。さまざまな種類の
コマンドには、以下が含まれる。
【0033】(i)STC INIT(初期設定)コマ
ンド。 これは、STC400が、バス150へのそのインター
フェースをイネーブルし、割当済みでない装置アドレス
についてバス150の走査を開始し、そのアドレスにそ
れ自体を割り当て、バス150に接続されている他の装
置によってどの装置アドレスが使用されているかを判定
するために走査を継続できるようにするコマンドであ
る。マイクロコントローラ401は、コマンドの実行を
完了した時に、状況表示として、そのアドレスに装置が
見つかったか否かに無関係にすべての有効な装置アドレ
スのリストと、それ自体の自己割当したアドレスをロー
ドする。その後、マイクロコントローラは、他のコマン
ドを実行し、バス150からパケットを受信することが
できる。
【0034】(ii)STC ATTN_POLL_S
TART(アテンション・ポーリング開始)コマンド。 これは、STC400が、ハンドラ1400によってメ
モリ403内に供給された装置アドレスのリストにアド
レスが含まれている、バス150に接続された装置のア
テンション・ポーリングを開始できるようにするコマン
ドである。マイクロコントローラ401は、このアドレ
ス・リストを内部メモリに格納し、そのリストが所定の
条件を満たすかどうかを判定する。マイクロコントロー
ラ401は、アドレス・リストが満足であると判定した
場合に、ポーリングを開始し、その後、状況表示とし
て、ポーリングが成功したかどうかに関する表示をロー
ドする。マイクロコントローラ401は、ポーリングが
成功であったと判定した場合に、STC400が、リス
トされた装置のそれぞれにアテンション・コマンドを含
むパケット(すなわち、動作コード532フィールドで
アテンション・コマンドが示されるパケット)をバス1
50を介して送信できるようにし、複数のポーリング条
件のうちのどれかが検出されるまでポーリングを継続す
る。ポーリング条件の例を示す。
【0035】・一般ヘルス・チェック STC400は、特定の宛先アドレスを使用するアテン
ション・コマンドを含むパケットを送信し、そのアドレ
スを有する装置がバス150に接続されていないと判定
するか、そのアドレスを有する装置がバス150に接続
されている場合には、その装置が動作不能でないことを
判定する。 ・装置がアテンションを要求する STC400は、特定の宛先アドレスを使用するアテン
ション・コマンドを含むパケットを送信し、応答パケッ
トから、その装置がアテンションを要求していることを
判定する。レスポンダとしての装置は、状況応答パケッ
ト内でアテンション状況標識をセットすることによっ
て、アテンションを要求していることを示す。たとえ
ば、STD300は、そのドライブ電源スイッチ302
(図3)のうちの一つの遷移を検出した時にこれを行う
可能性があり、この場合、そのスイッチに関するアテン
ション状況標識がセットされる。 ・装置存在監視 STC400は、特定の宛先アドレスを使用するアテン
ション・コマンドを含むパケットを送信し、応答パケッ
トから、そのアドレスを有する装置が存在することを判
定する。これは、たとえば、ポーリング開始後にある装
置がその宛先アドレスに存在するようになった場合を判
定するのに使用することができ、これは、たとえば、ポ
ーリング開始後にバス150に接続された装置の電源が
投入された場合に発生する可能性がある。
【0036】マイクロコントローラ401は、これらの
条件のうちの一つを検出した後に、メモリ403に状況
表示をロードする。マイクロコントローラ401が、こ
れらのポーリング・サービスのいずれかの状況表示をロ
ードした場合、そのアドレスだけについてポーリングが
停止され、これによって、状況のポスティングが繰り返
されないようにする。ハンドラ1400は、このコマン
ドを再発行することによって、特定の装置に関するポー
リングを再びイネーブルすることができるが、これが行
われるのは、一般に、アテンション状況の種類に必要と
みなされる適当な処置を行った後である。
【0037】(iii)STC ATTN_POLL_
STOP(アテンション・ポーリング停止)コマンド。 これは、マイクロコントローラ401が、ATTN_P
OLL_STARTコマンドに応答して開始されたアテ
ンション・ポーリングの正しい停止を開始できるように
するコマンドである。STC400は、現装置アドレス
のポーリングを完了した後に停止し、その後、メモリ4
03に完了状況表示をロードする。
【0038】(iv)SEND USER PACKE
T(ユーザ・パケット送信)コマンド。 これは、マイクロコントローラ401が、ユーザ指定パ
ケット(すなわち、S/Cサブフィールド531とop
codeサブフィールド532からユーザ指定の条件が
示されるパケット)の、バス150に接続された宛先装
置としての別の装置へのバス150を介する送信を開始
できるようにするコマンドである。このコマンドは、た
とえば、異なるDSP101および102のSTC40
0の間の転送や、たとえば、診断目的や、これ以外では
ディスク記憶サブシステム(6パック)200のSTD
300に供給されない種類のコマンドを送信するのに使
用することができる。マイクロコントローラ401は、
レスポンダとしての宛先装置が適当な状況応答パケット
を返した後に、メモリ403に正常完了状況表示をロー
ドする。
【0039】(v)STD INQUIRY(問合せ)
コマンド。 これは、マイクロコントローラ401が、Inquir
yコマンドを含むパケットの、指定されたSTD300
へのバス150を介する送信を開始できるようにするコ
マンドである。STD300は、ファイバ・チャネル構
成スイッチとそれによって制御されるドライブポート・
バイパス・スイッチの現在のモード設定を含むInqu
iry状況応答パケットを返す。STD300は、In
quiry状況応答パケットに、ディスク記憶サブシス
テム(6パック)200内の動作状態および温度と、存
在する各ドライブおよび電源投入状況と、STD300
の一般エラー状況とに関連する状況情報も含める。マイ
クロコントローラ401は、レスポンダから期待される
状況報告パケットを受信した後に、メモリ403に正常
完了状況表示をロードする。
【0040】(vi)複数の他のコマンドが、Mode
Select(モード選択)コマンド・グループを形
成する。このグループのコマンドには、最初のデータ・
サブフィールド551に配置される、Mode Sel
ect機能バイトと称するサブコマンド・フィールドが
含まれ、これによってコマンドの種類が定義される。こ
のグループのコマンドの例を示す。
【0041】(a)STD FCS(ファイバ・チャネ
ル構成スイッチ制御)コマンド。 これは、マイクロコントローラ401が、Mode S
elect機能バイトと共にMode Selectコ
マンドを含むパケットの、指定されたSTD300への
送信を開始できるようにするコマンドである。このコマ
ンドによって、STD300は、FCループA160ま
たはFCループB170を構成するために指定されたS
TD300によって制御されるファイバ・チャネル構成
スイッチ201、205および206または210、2
11および212(図2)をプログラムできるようにな
る。マイクロコントローラ401は、レスポンダである
STD300からMode Select状況応答パケ
ットを受信した後に、正常完了状況表示をメモリ403
にロードする。
【0042】(b)STD DS(ドライブポート・バ
イパス・スイッチ構成)コマンド。 これは、マイクロコントローラ401が、DS Mod
e Select機能バイトと共にMode Sele
ctコマンドを含むパケットの、指定されたSTD30
0装置への送信を開始できるようにするコマンドであ
る。このコマンドによって、STD300は、各ドライ
ブ・モジュールのドライブポート・バイパス・スイッチ
をそれぞれバイパス・モードまたはパススルー・モード
に構成するために、指定されたSTD300によって制
御されるそれぞれのDSスイッチ213および215
(図2)をプログラムできるようになる。マイクロコン
トローラ401は、レスポンダであるSTD300から
Mode Select状況応答パケットを受信した後
に、正常完了状況表示をメモリ403にロードする。
【0043】(c)STD DRIVE POWER
ON/OFF(ドライブ電源オン/オフ)コマンド。 これは、マイクロコントローラ401が、DRIVE
POWER ON/OFF Mode Select機
能バイトと共にMode Selectコマンドを含む
パケットの、指定されたSTD300装置への送信を開
始できるようにするコマンドである。このコマンドによ
って、STD300は、図2に関連して上で説明したよ
うに、指定されたドライブの電源をオンまたはオフにす
ることができるようになる。マイクロコントローラ40
1は、レスポンダであるSTD300からMode S
elect状況応答パケットを受信した後に、正常完了
状況表示をメモリ403にロードする。
【0044】(d)STD FLASH LED(LE
D点滅)コマンド。 これは、マイクロコントローラ401が、Flash
LED Mode Select機能バイトと共にMo
de Selectコマンドを含むパケットの、指定さ
れたSTD300装置への送信を開始できるようにする
コマンドである。このコマンドによって、やはりパケッ
ト内で供給される装置アドレスに関連するドライブ・モ
ジュール202ないし204のうちの一つに関連するL
ED306および309(図3)の点滅がイネーブルま
たはディスエーブルされる。マイクロコントローラ40
1は、レスポンダであるSTD300からMode S
elect状況応答パケットを受信した後に、正常完了
状況表示をメモリ403にロードする。
【0045】(e)STD SENSE(感知)コマン
ド。 これは、マイクロコントローラ401が、SENSE
Mode Select機能バイトと共にMode S
electコマンドを含むパケットの、指定されたST
D300装置への送信を開始できるようにするコマンド
である。このコマンドによって、指定されたSTD30
0が、その動作状況を返す応答パケットを生成できるよ
うになる。マイクロコントローラ401は、レスポンダ
であるSTD300からMode Select状況応
答パケットを受信した後に、正常完了状況表示をメモリ
403にロードする。
【0046】図6ないし図8は、STCのマイクロコン
トローラ401(図3)によって実行される動作を示す
流れ図である。図6および図7は、実行ループ600に
関連して実行される動作を示し、図8は、バス150上
のパケットの送信と受信を制御する状態機械の流れ図で
ある。
【0047】図6を参照すると、まず、リセット信号6
98によって、マイクロコントローラ401が、ファー
ムウェア・リセット状態649に入り、ここでマイクロ
診断テストが実行される。テストに合格した場合、マイ
クロコントローラ401は、ソフトウェアからコマンド
を受け取るためのコンテキストを準備し、ステップ69
9を介して実行ループ600自体に移る。マイクロコン
トローラ401は、実行ループ600で動作している時
に、活動フラグの所定の組の状態を監視する。マイクロ
コントローラ401は、下で説明する他の限定条件と共
に、活動フラグが真であると判定した時に、経路65
0、656、658、659、660、753、661
または662を介して移動して、下で説明するように、
活動フラグに関連するそれぞれのタスクを処理する。
【0048】マイクロコントローラ401が、cmd_
in_csaフラグによって、ハンドラ1400がメモ
リ403にコマンドをロードしたことが示されると判定
した時に、マイクロコントローラ401のファームウェ
アが、経路650に沿って「CSAからCMD(コマン
ド)を取得」タスク601に進む。そのタスク601で
は、マイクロコントローラ401が、メモリ403から
コマンドを取り出し、経路651を介して「CMDを復
号し、判断」タスク602に移動して、コマンドを復号
し、それを実行するためのコンテキストを準備する。マ
イクロコントローラ401は、タスク602でコマンド
をSTC INIT(初期設定)コマンドとして復号し
た場合に、経路654を介してInit_cmdタスク
606に移る。タスク606の処理の際に、マイクロコ
ントローラ401は、上で説明したSTC INITコ
マンド機能を実行し、その後、経路655を介して移動
して実行ループ600に戻る。
【0049】マイクロコントローラ401が、タスク6
02の処理中に、STC INITコマンド以外のコマ
ンドを復号した場合には、マイクロコントローラ401
は、経路652を介してtx_buf_actv判断タ
スク603に移る。マイクロコントローラ401は、S
TC INITコマンドを除くすべてのコマンドの場合
にタスク603に進む。タスク603では、マイクロコ
ントローラ401が、tx_buf_actv(送信バ
ッファ・アクティブ)フラグの状態に応じて、コマンド
を実行するか待ち行列化するかを決定する。マイクロコ
ントローラ401が、タスク603でtx_buf_a
ctvフラグが偽であると判定した場合には、マイクロ
コントローラ401は、経路653を介してパケット作
成タスク604に移って、送信のためにパケットを準備
する。タスク604の後に、マイクロコントローラ40
1は、経路750を介して、図7に示されたxmt_p
kt(パケット送信)タスク701内のタスク702に
進む。
【0050】xmt_pktタスク701には、タスク
702、704および705が含まれ、xmt_pkt
タスク701は、バス150を介するパケット500の
送信を開始するためにマイクロコントローラ401によ
って使用される。タスク702では、マイクロコントロ
ーラ401が、tx_buf_actv(送信バッファ
・アクティブ)フラグをセットし、バス送信状態機械8
48(図8に関連して下で説明する)によって使用され
る送信タイムアウト・タイマ0をイネーブルする。タス
ク702の後に、マイクロコントローラ401は、経路
751を介してタスク704に移る。タスク704で
は、マイクロコントローラ401が、rx_buf_b
sy(受信バッファ・ビジー)フラグの状態を判定す
る。マイクロコントローラ401が、タスク704で、
rx_buf_bsyフラグが偽であると判定したバス
状態機械(図8に関連して下で説明する)が遊休状態で
ある場合、マイクロコントローラ401は、経路752
を介してタスク705に移る。タスク705では、マイ
クロコントローラ401は、「i2c_st」変数にt
x_start_st(送信開始状態)をセットし、こ
れによって、バス状態機械(図8)が、遊休状態802
から経路853を介してtx_start_st状態8
03に移動できるようになる。マイクロコントローラ4
01は、タスク705を完了した時に、経路655を介
して実行ループ600に移動する。
【0051】タスク704に戻って、マイクロコントロ
ーラ401が、このタスクでrx_buf_bsy(受
信バッファ・ビジー)フラグが真であると判定した場合
には、マイクロコントローラ401は、経路655を介
して移動して、実行ループ600に戻る。これが発生す
るのは、図8に示されたバス状態機械の一部である受信
器状態機械849が、バス150からのパケットの受信
を制御して現在ビジーである場合である。受信器状態機
械849は、完了した時に、「i2c_st」変数にt
x_start_stをセットするタスク832を介し
て終了し、その後、経路884を介してtx_star
t_st状態803に移る。
【0052】判断タスク603に戻って、マイクロコン
トローラ401が、そのタスク603で、tx_buf
_actv(送信バッファ・アクティブ)フラグが真で
あると判定した場合には、マイクロコントローラ401
は、経路657を介してCMD待ち行列(コマンド待ち
行列)タスク607に移り、これによって、マイクロコ
ントローラ401は、送信バッファがビジーなのでコマ
ンドの実行を延期することができる。その後、マイクロ
コントローラ401は、655を介して移動して、実行
ループ600に戻る。
【0053】マイクロコントローラ401が、実行ルー
プ600の処理中に、cmd_q_rq(コマンド待ち
行列要求)フラグが真であると判定し(タスク607で
コマンドがコマンド待ち行列にロードされたことが示さ
れる)、tx_buf_bsy(送信バッファ・ビジ
ー)フラグが真であると判定した場合には、マイクロコ
ントローラ401は、経路656を介して「待ち行列か
らCMDを取得」タスク605に移る。タスク605で
は、マイクロコントローラ401が、コマンド待ち行列
からコマンドを取り出し、経路651を介して、上で説
明したCMD復号タスク602に移る。
【0054】マイクロコントローラ401が、実行ルー
プ600の処理中に、attn_resp_rq(アテ
ンション応答要求)フラグ、usr_pkt_resp
_rq(ユーザ・パケット応答要求)フラグまたはat
tn_cmd_rq(アテンション・コマンド要求)フ
ラグが真であり、tx_buf_actvフラグが偽で
あると判定した時には、マイクロコントローラ401
は、それぞれ、経路658、659または660を介し
て、パケット事前作成タスク608に移る。パケット事
前作成タスク608では、マイクロコントローラ401
は、それぞれの活動フラグのためのコンテキストを準備
し、経路653を介して、上で説明したパケット作成タ
スク604に移る。attn_resp_rqフラグが
セットされている場合には、マイクロコントローラ40
1は、STC400がレスポンダとして動作できるよう
にし、コマンダとしてバス150に接続されている別の
装置からのアテンション・コマンド・パケットの受信に
応答して状況応答パケットを返す。usr_pkt_r
esp_rqフラグがセットされている場合には、マイ
クロコントローラ401は、STC400がレスポンダ
として動作できるようにし、コマンダとしてバス150
に接続されている別の装置からのSEND USER
PACKETコマンドの受信に応答して、状況応答パケ
ットを返す。attn_cmd_rqフラグがセットさ
れている場合には、マイクロコントローラ401は、S
TC400がコマンダとして動作できるようにし、ポー
リング・リストの次の装置アドレスにアテンション・コ
マンドを送る。
【0055】パケット転送が完了したことを示すために
送信器状態機械848(図8に図示)によって調整され
るxmt_done(送信終了)フラグがセットされて
いる時には、マイクロコントローラ401は、実行ルー
プ600の処理中に、経路753を介して、図7に示さ
れた「xmt_done xmt_st」(送信終了、
送信状態)タスク710内のタスク712に移る。タス
ク712では、マイクロコントローラ401は、xmt
_doneフラグをリセットし、その後、経路754を
介してコマンダ判断タスク713に移って、STDがコ
マンダとレスポンダのどちらとして動作しているかを判
定する。マイクロコントローラ401は、タスク713
でSTC400がコマンダであると判定した場合に、経
路755を介してtx_buf_stat(送信バッフ
ァ状況)判断タスク714に移って、tx_buf_s
tat(送信バッファ状況)フラグの状況を判定する。
マイクロコントローラ401が、タスク714で、tx
_buf_statフラグが偽であり、パケットがエラ
ーなしで送信されたことが示されると判定した場合に
は、マイクロコントローラ401は、経路756を介し
て「応答を待つ」タスク715に移る。タスク715で
は、マイクロコントローラ401は、送信されたばかり
のパケットに応答して期待される状況応答パケットを待
つコンテキストを準備し、その後、経路655を介して
実行ループ600に戻る。
【0056】タスク714に戻って、マイクロコントロ
ーラ401が、そのタスクでtx_buf_stat
(送信バッファ状況)フラグが真であり、送信エラーが
発生したことが示されると判定した場合、マイクロコン
トローラ401は、経路757を介してretry_e
rr(エラー再試行)判断タスク716に移る。マイク
ロコントローラ401が、タスク716で、retry
_err(エラー再試行)フラグが真であり、パケット
送信を試みる再試行に関連するエラーが示されると判定
した場合には、マイクロコントローラ401は、経路7
59を介して「xmt_pkt異常終了」タスク719
に移り、パケットの送信に関連するコマンド機能の実行
を打ち切り、最終的にメモリ403にロードされ、ハン
ドラ1400によって使用されるためのエラー状況表示
を待ち行列化する。タスク719の後に、マイクロコン
トローラ401は、経路655を介して実行ループ60
0に戻る。
【0057】タスク716に戻って、マイクロコントロ
ーラ401は、そのタスクでretry_errフラグ
が偽であると判定した場合に、経路758を介して「エ
ラー再試行」タスク717に移る。タスク717では、
マイクロコントローラ401は、タイマ0タイマによっ
て決定される所定の遅延期間の後に送信再試行を実行す
るためのコンテキストを準備する。タスク717の後
に、マイクロコントローラ401は、経路655を介し
て実行ループ600に戻る。
【0058】判断タスク713に戻って、マイクロコン
トローラ401は、そのSTC400がレスポンダであ
ると判定した場合に、経路760に沿って「応答を期待
しない」タスク720に移り、そこで、応答パケットを
期待しないようにそれ自体を準備する。その後、マイク
ロコントローラ401は、経路655を介して実行ルー
プ600に戻る。
【0059】マイクロコントローラ401は、実行ルー
プ600を処理している時にタイマ0が満了したと判定
した時に、661を介して「タイマ0タイムアウト」判
断タスク609に移る。タスク609では、マイクロコ
ントローラ401は、タイムアウトの「種類」を判定す
る。マイクロコントローラ401は、タスク609で、
タイムアウトがxmt_st Retry(送信状態再
試行)遅延タイプであると判定した場合に、経路750
を介して、上で説明したxmt_pktタスク701に
移って、前に送信エラーが発生したパケットの再送信を
試みる。マイクロコントローラ401が、タスク609
で、タイムアウトがExpect_resp(応答を期
待する)タイプである(そのSTC400が、コマンダ
として動作しているが、所定のタイムアウト期間内にレ
スポンダとして動作している別の装置から期待される状
況応答パケットを受信しなかった)と判定する場合に
は、マイクロコントローラ401は、経路664を介し
てタスク610に移り、そこでエラー状況タイプ表示を
セットする。タスク610の後に、マイクロコントロー
ラ401は、経路753を介して、上で説明した「xm
t_done xmt_st」タスク710に移る。
【0060】マイクロコントローラ401は、実行ルー
プ600を処理している時にstat_to_csaフ
ラグが真であると判定した時に、経路662に沿って
「状況の待機解除」タスク611に移る。タスク611
の処理で、マイクロコントローラ401は、メモリ40
3に格納するために状況表示を待機解除する。タスク6
11の後に、マイクロコントローラ401は、経路66
3に沿って「st_stat_int点火」タスク61
2に移り、そこで、信号線451(図4)上でST_S
TAT_INT割込み信号をアサートして、状況表示が
メモリ403にロードされたことを示す。
【0061】図8は、リセット状態801、遊休状態8
02、送信器状態機械848および受信器状態機械84
9を含む、バス150を介するパケットの送信および受
信を制御するバス状態機械の流れ図である。図8には、
2種類の動作すなわち、「状態」と「タスク」がある。
「状態」は、状態801および802と送信器状態機械
848および受信器状態機械849の、特定の条件が検
出されるまでの動作の停止を表す。この特定の条件が検
出された後には、状態は次の状態またはタスクの後続動
作に移る。その一方で、「タスク」は、後続動作に無条
件に継続する動作を表す。マイクロコントローラ401
内のs1staレジスタは、STバス・パケット500
のフレーミング状態とエラー状態のそれぞれの種類に関
する前述の83C652仕様に従う特定の割込み状況を
提供する。ファームウェア状態機械は、状態802、8
03、804、805および822のs1sta割込み
を処理し、その後、相互接続によって示されるように、
後続の状態またはタスクに移る。参考のために、割込み
状況(s1sta)レジスタの内容を、相互接続に沿っ
て図示する。以下の文章では、タスクまたは状態の観点
から見たファームウェア状態機械を説明する。
【0062】当初は、リセット信号698(図6)によ
って、バス状態機械がリセット状態801に入ることが
できる。リセット状態801の次に、マイクロコントロ
ーラが、STC INITコマンド(図6)に応答して
Init_cmd(初期設定コマンド)タスク606を
実行する時に、バス状態機械は、経路850に沿ってi
dle_st状態802に移る。
【0063】idle_st状態802から、マイクロ
コントローラ401は、バス150用のシリアル通信ポ
ートをイネーブルし、STC INITコマンド機能を
実行する。マイクロコントローラ401がこのコマンド
を成功裡に完了した場合、バス状態機械は、この状態8
02にとどまり、それ自体を初期化済みモードにする。
その一方で、マイクロコントローラ401がSTC I
NITコマンドを成功裡に完了しない場合には、バス状
態機械は経路851に沿ってファームウェア・リセット
状態801に戻る。初期化済みモードでは、バス状態機
械は、経路853に沿って送信器状態機械848に移っ
てパケットを送信するか、受信器状態機械849に移っ
てパケットを受信するか、852を介して状態802に
戻って、無効状況障害を処理することができる。
【0064】遊休状態802から、バス状態機械は、タ
スク705(図7)の実行中にtx_start_st
(送信スタート状態)フラグがセットされた時に、送信
器状態機械848に移る。tx_start_stフラ
グのセットに応答して、送信器状態機械848は、tx
_start_st状態803に入る。tx_star
t_st状態803に入った後に、送信器状態機械84
8は、「i2c_st」変数にtx_start_st
をセットする。tx_start_st状態803で
は、送信器状態機械848は、バス150が出力送信の
ために使用可能であることを検証し、複数の条件を処理
する。無効状況障害が検出された場合、送信器状態機械
848は、経路854を介してtx_start_st
状態803に戻る。その一方で、バス150のバス受信
器が、サブフィールド511内にSTC400の宛先ア
ドレスを含むパケット500を検出した場合には、送信
器状態機械848は、経路871を介して受信器状態機
械849に進んで、パケット500の受信を可能にす
る。
【0065】送信器状態機械848は、tx_star
t_st(送信開始)状態803で、どちらの条件も存
在しないと判定した場合に、バス150が使用可能であ
ると判定し、フレーミング状態501(図5)のスター
ト・ビットの送信を可能にし、経路855を介してtx
_dadr_st(宛先アドレス送信)状態804に進
む。その一方で、送信器状態機械848は、状態803
で、xmt_pkt(パケット送信)タスク701の処
理中に確立されたタイマ0がタイム・アウトになったと
判定した場合に、経路857に沿ってtx_error
(送信エラー)タスク808に進む。タスク808で
は、送信器状態機械848は、tx_buf_stat
送信バッファ状況フラグを調整して、送信エラーが発生
したことを示す状況を表示する。tx_dadr_st
状態804では、送信器状態機械848は、S1DAT
レジスタ(別々には図示せず)に宛先アドレスをロード
し、それがバス150を介して送信されるのを待つ。状
態804では、送信器状態機械848は複数の条件を処
理する。バス送信器がバス150のアービトレーション
を失った場合には、送信器状態機械848は、経路85
6を介して状態803に戻り、そのステップ803でバ
ス150について再アービトレーションを行う。バス1
50のバス受信器が、サブフィールド511内にSTC
400の宛先アドレスを含むパケット500を検出した
場合には、送信器状態機械848は、経路859に沿っ
て受信器状態機械849に進んで、パケット500の受
信を可能にする。さらに、tx_timeout(送信
タイムアウト)またはtx_error(送信エラー)
が発生した場合には、送信器状態機械848は、経路8
60に沿ってtx_errorタスク808に進んで、
エラーを処理する。tx_errorが発生するのは、
ある状態で無効な状況が検出された時であり、これは、
通常は、上で述べたフレーミング・エラーを示す。
【0066】その一方で、バス送信器がバス150を介
して宛先アドレスを成功裡に送信した場合には、送信器
状態機械は、経路858に沿ってtx_data_st
(データ送信)状態805に進む。tx_data_s
t状態805では、送信器状態機械848は、S1DA
Tレジスタに送信元アドレス・フレーミング状態520
の送信元アドレスをロードし、その後、送信元アドレス
が送信されるのを待つ。tx_data_st状態80
5は、後続のフレーミング状態530ないし560のた
めのデータの送信の処理にも使用される。この状態か
ら、送信器状態機械848は、バス送信器がバス150
のアービトレーションを失った場合には経路856を介
して状態803に戻ることができ、状態803では、送
信器状態機械848がバスに関して再アービトレーショ
ンを行う。送信器状態機械848は、バス送信器がデー
タ・バイトを成功裡に送信し、送信すべきデータがまだ
あると判定された時に、経路861を介して「次データ
・ロード」タスク806に進むことができ、「次データ
・ロード」タスク806では、送信器状態機械848
は、S1DATレジスタに、フレーミング状態530な
いし560を満足する次のデータ・バイトをロードし、
その後、経路862を介して状態805に戻る。状態8
05から、送信器状態機械は、送信器がチェックサム・
データ・バイト(フレーミング状態560)を成功裡に
送信し、パケット送信終了の準備ができた時に、経路8
63を介してタスク807に進んで、tx_buf_s
tat(送信バッファ状況)フラグを調整することもで
きる。タスク807の処理では、送信器状態機械848
は、パケット500がエラーなしで送信されたことを示
す内部状況表示をセットする。タスク807の後に、送
信器状態機械は、経路864を介してtx_stopタ
スク809に進む。
【0067】送信器状態機械848は、tx_stop
タスク809を使用して、Pビット・フレーミング状態
503を用いてパケット500の送信を終了し、後の実
行ループ600の処理中(図6の経路753を参照)に
マイクロコントローラ401によって使用されるxmt
_done_flag(送信終了フラグ)をセットし、
「i2c_st」変数にidle_stをセットする。
タスク809の処理の後に、送信器状態機械は、経路8
83に沿って、バス状態機械のidle_st802に
戻る。
【0068】遊休状態802から、バス状態機械(図
8)は、バス受信器が、サブフィールド511にSTC
400の宛先アドレスを含む宛先アドレス・フレーミン
グ状態510を検出した場合に、経路870に沿って受
信器状態機械849に入ることができる。上で述べたよ
うに、受信器状態機械849には、同一の条件の下で送
信器状態機械848の状態803から経路871に沿っ
て、または、状態804から経路859に沿って入るこ
ともできる。経路870、871および859のすべて
が、rx_rcv_myadr(自アドレス受信)タス
ク820につながっている。タスク820では、受信器
状態機械は、rx_time−outs(受信タイムア
ウト)用にタイマ1をイネーブルし、xmt_pktタ
スク701(図7)の処理中に監視されるrx_buf
_bsy(受信バッファ・ビジー)フラグをセットす
る。その後、受信器状態機械849は、経路872に沿
って、rx_data_st(データ受信)状態822
に進む。
【0069】rx_data_st状態822では、受
信器状態機械849は、データまたはフレームストップ
・ビット(Pビット・フレーミング状態503)が受信
されたことを検証する。この状態822から、受信器状
態機械は、バス受信器が、フレーミング状態520ない
し560から発したデータ・バイトを首尾よく受信した
時に、経路873を介してタスク823に移る。タスク
823では、受信器状態機械849は、S1DATレジ
スタから、STCマイクロコントローラ401のrx_
buf受信バッファ(別々には図示せず)にデータ・バ
イトを転送し、その後、経路874に沿ってrx_da
ta_st状態822に戻る。
【0070】rx_data_st状態822から、受
信器状態機械849は、経路876を介してrx_er
rorタスク829に進むこともできる。これが発生す
るのは、受信器状態機械849が、フレーミング・エラ
ーまたはrx_timeoutエラーのいずれかを検出
した時であり、rx_timeoutエラーは、タスク
820の処理中に確立されたタイマ1がタイム・アウト
になった場合に発生する。rx_errorは、フレー
ミング・エラーの結果であり、これは、パケット転送が
Sビット・フレーミング状態501から開始されたが、
前述のパケット・フレーミング・プロトコルの残りを満
足できなかった時に発生する。rx_timeoutが
発生するのは、パケット・フレーミング状態のうちのど
れかが、タイマ1タイマによって決定される時間期間内
に完了できなかった時である。rx_errorが発生
するのは、前述のtx_errorと同様に、特定の状
態で無効なs1sta状況が検出された時であり、これ
は、前に述べたように、通常はフレーミング・エラーを
示す。rx_errorタスク829の処理で、受信器
状態機械849は、Pビット・フレーミング状態503
を有するパケット受信の受信を打ち切り、状態待ち行列
(stat_q)にエラー状況表示をロードし、sta
t_to_csaフラグをセットし、これによって、マ
イクロコントローラ401が、メモリ403に状況表示
をロードできるようにする。さらに、rx_error
タスク829の処理で、受信器状態機械849は、rx
_buf_bsy(受信バッファ・ビジー)フラグ82
1をリセットする。rx_errorタスク829の後
に、受信器状態機械849は、経路879を介してタス
ク830に進む。
【0071】さらに、rx_data_st状態822
から、受信器状態機械849は、バス受信器がPビット
・フレーミング状態503を検出した時に、経路875
を介してrx_stop(受信器停止)タスク824に
進むこともできる。タスク824の処理で、受信器状態
機械849は、他の装置による使用のためにバス150
を解放する。ステップ824の後に、受信器状態機械8
49は、経路877に沿ってタスク825に進む。
【0072】タスク825の処理で、受信器状態機械8
49は、マイクロコントローラの受信バッファrx_b
ufにロードされた情報を、フォーマットとチェックサ
ムの正しさについて検証する。受信器状態機械は、受信
器状態機械849がエラーを検出した場合に、タスク8
25から経路876を介してrx_errorタスクに
進む。その一方で、受信器状態機械は、受信したパケッ
トのフォーマットが正しく、受信したパケットのチェッ
クサムがパケット内のチェックサムと一致すると判定し
た場合に、受信したパケットの種類を判定し、その判定
結果に基づいて、タスク826、827および828の
うちの一つに進む。
【0073】タスク825の後に、受信器状態機械84
9は、受信したパケットの種類が、ユーザ・パケット・
コマンド、アテンション・コマンドまたは期待される状
況応答パケットのどれであるかに基づいて、それぞれ経
路882、880または878を介して進むことができ
る。タスク827および828の処理では、受信器状態
機械849は、それぞれatt_resp_rq(アテ
ンション応答要求)フラグまたはusr_pkt_re
sp_rq(ユーザ・パケット応答要求)フラグをセッ
トする。これらのフラグは、図6に関連して上で説明し
たように、実行ループ600の処理中にマイクロコント
ローラ401を制御するのに使用される。これらのフラ
グは、それぞれ、ユーザ・パケット・コマンドまたはア
テンション・コマンドが受信されたことを示す。タスク
827または828の後に、受信器状態機械は、経路8
79に沿ってタスク830に進む。
【0074】受信器状態機械849は、受信したパケッ
トが、STC400によって前に送信されたコマンド・
パケットに対する応答である場合に、タスク825から
タスク826へ進む。その場合に、受信器状態機械84
9は、タスク826を使用して、現在アクティブなコマ
ンド転送機能を打ち切り、ハンドラ1400のためにメ
モリ403にロードされる状況表示を生成し、stat
_to_csaフラグをセットする。マイクロコントロ
ーラ401は、図6に関連して上で説明したように、実
行ループ600の処理でstat_to_csaフラグ
を使用する。さらに、受信器状態機械849は、tx_
buf_actv(送信バッファ・アクティブ)、re
try_err(再試行エラー)フラグを含む適当な活
動フラグもリセットし、その後、経路879に沿ってタ
スク830に進む。
【0075】受信器状態機械は、タスク830を使用し
て、バス状態機械の次の状態を決定する。受信器状態機
械849は、tx_buf_actvフラグが偽である
(STC400が送信すべきパケットを有しない)と判
定した場合に、経路881を介してタスク831に進
み、そこから経路883を介してidle_st状態8
02に進むことによって、遊休状態に戻る。その一方
で、tx_buf_actvフラグが真である(STD
が送信すべきパケットを有する)場合には、受信器状態
機械849は、経路882を介してタスク832に進
み、そのタスクから経路884を介して送信器状態機械
848のtx_start_st状態803に進む。
【0076】STD300のマイクロコントローラ30
1(図3)によって実行される動作の詳細を、図9ない
し図13に関連して説明する。図9は、マイクロコント
ローラ301によって実行される電源投入時リセットお
よび実行ループ903の流れ図である。図10は、ST
C400から受信したコマンド・パケットを処理し、バ
ス150を介してSTC400に送信するために応答パ
ケットを生成する、マイクロコントローラ301によっ
て実行されるサブルーチン・タスク1000の流れ図で
ある。図11は、マイクロコントローラ301がドライ
ブ電源スイッチ302のスイッチ0、1および2の状態
変化を処理するタスク1100の流れ図である。図12
は、マイクロコントローラ301によって実行されるタ
イマ割込みサブルーチン1200の流れ図である。図1
3は、単一のバイトが、STDマイクロコントローラ3
01のインターフェースによって受信されるか、これに
よってバス150に送信される時に、マイクロコントロ
ーラ301によって処理される割込みサブルーチン13
00の流れ図である。以下では、マイクロコントローラ
301が、ドライブ・モジュール202ないし204の
ドライバポート・バイパス・スイッチとファイバ・チャ
ネル構成スイッチ201、205および206を制御す
る、図2の左側に示されたSTD300内にあると仮定
する。対応する動作が、右側のSTD300のマイクロ
コントローラ301によって実行されることを諒解され
たい。
【0077】図9は、マイクロコントローラ301によ
って処理される電源投入時リセットおよび実行ループ9
03の流れ図である。当初は、リセット信号950が、
STD300の回路(別々には図示せず)によって生成
され、これによって、マイクロコントローラ301が、
リセット状態900に入ることができ、また、このリセ
ット信号950は、STD300のすべての構成要素を
それぞれの所定の状態にリセットするように働く。その
後、マイクロコントローラ301は、経路956に沿っ
てメモリ・テスト901サブルーチンに進み、そこで、
STDマイクロコントローラ301に対する内部メモリ
・テストが実行される。メモリ・テストに合格した場
合、マイクロコントローラ301は、経路957に沿っ
て初期設定サブルーチン902に進む。メモリ・テスト
に失敗した場合、マイクロコントローラ301は、サブ
ルーチン901を終了せず、このため、それ以降の初期
設定は行われないが、これによって、マイクロコントロ
ーラ301が、ドライブ状況LED306によってエラ
ー状況を提示できるようになる。
【0078】初期設定サブルーチン902の処理では、
マイクロコントローラ301が、下で説明するように内
部状態および状況フラグをセット・アップし、ドライブ
・モジュール202、203および204のドライブ電
源スイッチ302の設定を検査し、その後、スイッチが
オンの位置に設定されているドライブだけに電力を供給
する。サブルーチン902では、マイクロコントローラ
301が、FCループAポート214用のドライブポー
ト・バイパス・スイッチ213とFCループBート21
6用のドライブポート・バイパス・スイッチ215を、
電源がオンのドライブ・モジュールではパススルー・モ
ード、電源がオフのドライブ・モジュールではバイパス
・モードに調整する。同様に、初期設定サブルーチン9
02では、マイクロコントローラ301が、構成スイッ
チ201、205および206をパススルー・モードに
調整できるようにする。マイクロコントローラ301
は、初期設定サブルーチン902の処理を完了した後
に、経路951に沿って実行ループ903に進む。この
時点で、STD300は、バス150からコマンド・パ
ケットを受け入れ、ドライブ電源スイッチ302の条件
の状態変化を監視する準備が調っている。
【0079】実行ループ903の処理では、マイクロコ
ントローラ301は、2つの判断タスク904および9
05を検査し、サービスする。判断タスク904の処理
では、マイクロコントローラ301が、それによって実
行されるコマンドを含むパケットが受信されたかどうか
を判定し、判断タスク905の処理では、マイクロコン
トローラ301が、ドライブ電源スイッチ302の条件
に変化が発生したかどうかを判定する。マイクロコント
ローラ301は、判断タスク904または905で肯定
の判定を行った時に、それぞれのタスク・ハンドラへの
サブルーチン呼出しを実行する。すなわち、マイクロコ
ントローラ301は、タスク904で肯定の判定を行っ
た場合に、図10に流れ図を示されたサブルーチンを処
理する。その一方で、マイクロコントローラ301は、
タスク905で肯定の判定を行った場合に、図11に流
れ図を示されたサブルーチンを処理する。
【0080】具体的に言うと、マイクロコントローラ3
01が、タスク904の処理で肯定の判定を行い、コマ
ンドが受け取られたことが示される時には、マイクロコ
ントローラ301は、経路1050に沿って進んで、図
10に示されたSRVC_I2Cバス・サービス・サブ
ルーチン1000へのサブルーチン呼出しを実行する。
これが行われるのは、受信したパケットに実行すべきコ
マンドが含まれる場合に、図13に示されたSlave
_Rx_Done(スレーブ受信終了)サブルーチンの
処理中にRx_I2C_CMD(コマンド受信)フラグ
がセットされた時である。サブルーチン1000の処理
の後に、マイクロコントローラ301は、経路952に
沿って実行ループ903に戻る。マイクロコントローラ
301は、Rx_I2C_CMD判断タスク904の処
理中に否定の判断を行った場合に、経路952に沿って
判断タスク905に進む。タスク905には、実際に
は、ドライブ電源スイッチ302のドライブ・モジュー
ル202ないし204のそれぞれのドライブ電源スイッ
チをそれぞれがサービスする3つの別々の判断タスクが
含まれる。マイクロコントローラ301は、ドライブ電
源スイッチのうちの一つのスイッチ状態変換を検出した
場合に、経路1151に沿って進んで、それぞれのスイ
ッチについて、図11に示されたSRVC_0−2サブ
ルーチン・タスク1100へのサブルーチン呼出しを実
行する。一つのスイッチについてタスク1100を処理
した後に、マイクロコントローラ301は、経路953
に沿ってタスク905に戻って、次のスイッチをサービ
スする。DRV PWRスイッチ302内のスイッチ
は、連続したドライブ・モジュール204のスイッチの
順序で、マイクロコントローラ301によって検査さ
れ、サービスされる。マイクロコントローラ301は、
ドライブ・モジュール204に関連するスイッチに関す
るタスク905の処理を完了した時に、経路951に沿
って進んで、実行ループ903を継続する。
【0081】図10は、STC400からのコマンド・
パケットが受信され、バス150を介してSTC400
に送信するために応答パケットが生成されるサブルーチ
ン・タスク1000の流れ図である。マイクロコントロ
ーラ301は、図9に示された実行ループ903から経
路1050を介するサブルーチン呼出しによって、タス
ク1000に入る。図10を参照すると、タスク100
0では、マイクロコントローラ301は、まず、「パケ
ット・チェックサム計算」タスク1001を実行して、
受信したパケットのチェックサムを計算し、その結果を
マイクロコントローラ301内の一時記憶レジスタ(別
々には図示せず)に記憶する。その後、マイクロコント
ローラ301は、経路1051に沿って「チェックサム
・エラー」判断タスク1002に進み、受信したパケッ
トのチェックサム(フレーミング状態560参照)がタ
スク1001のチェックサムと異なるかどうかを判定す
る。マイクロコントローラ301は、タスク1002で
肯定の判断を行った場合に、経路1052に沿って「ポ
インタ・リセット」タスク1003に進み、パケットを
破棄し、そのパケットのために確立されたデータ構造を
リセットする。「ポインタ・リセット」タスク1003
の後に、マイクロコントローラ301は、経路952に
沿って進んで、実行ループ903に戻る。
【0082】それに対して、マイクロコントローラ30
1が、タスク1002で否定の判断を行った場合には、
受信したパケットのチェックサムが、計算されたチェッ
クサムと一致している。その場合、マイクロコントロー
ラ301は、経路1053に沿って「不正コマンド」判
断タスク1004に進み、受信したパケットに不正コマ
ンドが含まれるかどうかを判定する。マイクロコントロ
ーラ301は、判断タスク1004で肯定の判断を行っ
た場合に、経路1054に沿って「Nackパケット」
タスク1005に進む。「Nackパケット」タスクで
は、マイクロコントローラ301が、STC400に送
信される否定応答パケットを生成する。タスク1005
の後に、マイクロコントローラ301は、経路1055
に沿って、上で説明した「ポインタ・リセット」タスク
1003に進む。
【0083】マイクロコントローラ301は、「不正コ
マンド」判断タスク1004で否定の判断を行った場合
に、経路1056に沿って「コマンド復号」タスク10
07に進む。タスク1007では、マイクロコントロー
ラ301が、フレーミング状態530からOpcode
フィールドを復号し、これによって、ファームウェア
が、上で説明したように5つのコマンド実行タスクのう
ちの一つに移動する。コマンドの実行では、マイクロコ
ントローラ301は、それぞれのコマンドに適した状況
応答パケットを生成し、チェックサムを生成し、付加
し、マイクロコントローラ301のバス・インターフェ
ースにBus Start(バス開始)を供給し、これ
によって、図13に関連して下で説明するように、バス
150に関するアービトレーションが開始される。マイ
クロコントローラ301は、コマンドがInquiry
コマンドであると判定した場合に、経路1057に沿っ
て「Inquiry応答パケット」タスク1006に進
む。タスク1006を処理した後に、マイクロコントロ
ーラ301は、経路952に沿って実行ループ903に
戻る。マイクロコントローラ301は、コマンドがMo
de Selectコマンドであると判定した場合に、
経路1059に沿って進み、「Mode Select
応答パケット」タスク1009を実行する。タスク10
09を処理した後に、マイクロコントローラ301は、
経路952に沿って実行ループ903に戻る。マイクロ
コントローラ301は、コマンドが不正パケットに含ま
れると判定した場合に、経路1060に沿って「不正コ
マンド応答パケット」タスク1011に進む。タスク1
011を処理した後に、マイクロコントローラ301
は、経路952に沿って実行ループ903に戻る。マイ
クロコントローラ301は、コマンドがMode Se
nseコマンドであると判定した場合に、経路1061
に沿って「Mode Sen応答パケット」タスク10
10に進む。タスク1010を処理した後に、マイクロ
コントローラ301は、経路952に沿って実行ループ
903に戻る。最後に、マイクロコントローラ301
は、コマンドがAttentionコマンドであると判
定した場合に、経路1058に沿って「Send At
tn応答パケット」タスク1008に進む。タスク10
08を処理した後に、マイクロコントローラ301は、
経路952に沿って実行ループ903に戻る。
【0084】図11は、ドライブ電源スイッチ302の
スイッチ0、1および2の状態変化が処理される、タス
ク1100の流れ図である。タスク1100は、基本的
に、それぞれのドライブ・モジュール202ないし20
4のためのドライブ電源スイッチ302のそれぞれのス
イッチ0、1および2をそれぞれがサービスする、3つ
の独立であるが機能的に同一のサブルーチンを表す。タ
スク1100は、マイクロコントローラ301が、スイ
ッチ状態変化を検出できるようにし、スイッチ非バウン
ド化(debouncing)フィルタを提供し、操作
員が考えを変え、スイッチ位置を前の状態に戻すことの
できる遅延時間を提供する。スイッチが、所定の遅延時
間の後に新しい状態のままである場合には、マイクロコ
ントローラ301は、それぞれのドライブ・モジュール
202ないし204への電力を制御し、ATTN_PO
LL_STARTコマンドを含むパケットに応答して、
STC400にアテンション状況を供給する。スイッチ
の状態が、「オン」から「オフ」または「オフ」から
「オン」に変化した時には、マイクロコントローラ30
1は、それに応じてドライブ・モジュールの電源を「オ
フ」または「オン」にし、ドライブ・モジュールの状況
構造体(別々には図示せず)を更新する。マイクロコン
トローラ301は、関連するタイマが満了するまでは、
バックグラウンド・タスクとしてタスク1100を処理
する。
【0085】以下では、ドライブ・モジュール202用
のドライブ電源スイッチに関連してマイクロコントロー
ラ301によって実行される動作を説明する。他のドラ
イブ・モジュール203および204用のドライブ電源
スイッチに関連して実行される動作は、同様である。マ
イクロコントローラ301は、実行ループ903から経
路1151を介する、タスク905でのサブルーチン呼
出しの実行時に、タスク1100に入る。当初、マイク
ロコントローラ301は、「グリッチ除去タイマ」判断
タスク1101を実行する。タスク1101では、スイ
ッチの非バウンド化のためにグリッチ除去遅延時間を設
ける。グリッチ除去遅延時間の終りの前に、マイクロコ
ントローラ301は、タスク905に戻り、そこからグ
リッチ除去判断タスク1101に戻る。マイクロコント
ローラ301は、タスク905で、スイッチが前の状態
に戻ったと判定されるか、グリッチ除去判断タスク11
01で、グリッチ除去遅延時間がタイム・アウトになっ
たと判定されるまで、上の動作を複数回繰り返す。マイ
クロコントローラ301は、グリッチ除去判断タスク1
101でグリッチ除去遅延時間がタイム・アウトになっ
たと判定した場合には、「まだ新しい状態」判断タスク
1103に進む。マイクロコントローラ301が、判断
タスク1103で否定的な判断を行う場合(スイッチの
状態が変化していない場合)、マイクロコントローラ3
01は、経路1153に沿って「フラグ・リセット」タ
スク1102に進み、さまざまなフラグをリセットし、
経路953に沿ってタスク905に戻る。
【0086】それに対して、マイクロコントローラ30
1がタスク1103で肯定の判断を行った場合には、マ
イクロコントローラ301は、経路1154に沿って
「スイッチ・オン/オフ」判断タスク1105に進む。
判断タスク1105で、マイクロコントローラ301
は、スイッチの新しい設定が「オン」位置と「オフ」位
置のどちらであるかを判定する。マイクロコントローラ
301は、設定が「オン」位置であると判定した場合
に、経路1157に沿って進んで、「ドライブ電源投入
タスク」1108を実行する。タスク1108の処理で
は、マイクロコントローラ301は、アテンション状況
ビットをセットし、これが応答パケットでSTC400
に返される。マイクロコントローラ301は、ドライブ
の電源投入に進み、その後、経路953に沿ってタスク
905に戻る。ドライブ・モジュール202は、FCル
ープ160および170を乱さないように、ドライブポ
ート・バイパス・スイッチ213および215をバイパ
ス・モードにした状態で電源を投入される。アテンショ
ン状況ビットを受信した後に、STC400は、適当な
STD DS Mode Selectコマンドを含む
パケットを送信することによって、それぞれのドライブ
ポート・バイパス・スイッチのモードを変更することが
できる。
【0087】マイクロコントローラ301は、判断タス
ク1105の処理で、スイッチ設定が「オフ」であると
判定した場合に、経路1155に沿って「最初の5秒が
イネーブルされているか」判断タスク1106に進む。
判断タスク1106は、5秒タイマをイネーブルするの
に使用され、これによって、操作員に、考えを変え、ス
イッチを「オン」位置に戻す時間を与える。これは、た
とえば、操作員がドライブ電源スイッチの状態を意図せ
ずに変更した場合に有用である。マイクロコントローラ
301は、判断タスク1106で否定の判断を行った場
合に、経路1156に沿って「最初の5秒の遅延をセッ
ト」タスク1104に進み、最初の5秒の遅延のための
タイマを始動する。その後、マイクロコントローラ30
1は、経路953に沿ってタスク905に戻る。
【0088】それに対して、マイクロコントローラ30
1が判断タスク1106で肯定の判断を行った場合に
は、マイクロコントローラ301は、経路1159に沿
って「最初の5秒の遅延が終了したか」判断タスク11
07に進む。判断タスク1107では、マイクロコント
ローラ301が、最初の5秒のタイマが満了したかどう
かを判定し、そうでない場合には、経路953に沿って
タスク905(図9)に戻る。この期間の間にスイッチ
の状態が変化した場合には、マイクロコントローラ30
1は、タスク905および1101を介してタスク11
03に戻った時に、経路1153に沿ってタスク110
2を介してタスク905に戻る。
【0089】それに対して、マイクロコントローラ30
1が判断タスク1107で肯定の判断を行った場合に
は、マイクロコントローラ301は、経路1160に沿
って「アテンション・ビットはセットされているか」判
断タスク1109に進む。判断タスク1109では、S
TC400へのパケットでアテンション・ビットが送信
されたかどうかを検査する。マイクロコントローラ30
1は、判断タスク1109で否定の判断を行った場合
に、経路1161に沿って「アテンション・ビット・セ
ット」タスク1110に進み、マイクロコントローラ3
01に関連するSTD300のアドレスをポーリングす
る時にSTC400が読み取るアテンション・ビットを
セットする。その後、マイクロコントローラ301は、
経路1162に沿って進んで、「第2の5秒の遅延をセ
ット」タスク1111を実行する。タスク1111で
は、マイクロコントローラ301が、もう一つの5秒遅
延タイマを確立して、ハンドラ1400に、アテンショ
ン状況を操作し、ドライブ・モジュールの電源切断の後
にファイバ・チャネル・ループ160または170から
ドライブを分離するなど、所定の処置を行う時間を与え
る。タスク1111の後に、マイクロコントローラ30
1は、経路953を介してタスク905に戻る。
【0090】それに対して、マイクロコントローラ30
1が判断タスク1109で肯定の判定を行った場合に
は、マイクロコントローラ301は、経路1163に沿
って進んで、「第2の5秒の遅延が終了したか」判断タ
スク1112を実行する。マイクロコントローラ301
は、判断タスク1112で否定の判定を行った場合に、
経路1164に沿って「STCからのRx応答か」判断
タスク1113に進む。STCからのRx応答判断タス
ク1113の処理では、マイクロコントローラ301
は、後続の動作を制御する「Rx Response
from STC(STCからのRx応答)」フラグの
状態を判定する。Rx Responsefrom S
TCフラグの状態によって、ハンドラ1400がST4
00をイネーブルして、アテンション状況に応答して
「Drive Power Off」Mode Sel
ectコマンドを送信させたかどうかが示される。この
フラグは、アテンション状況ビットがアクティブである
間に「Drive PowerOff」Mode Se
lectコマンドが復号された時に「Mode Sel
ect応答パケット」タスク1009(図10)によっ
て条件的にセットされる。タスク1113で行われる判
定は、第2の5秒の遅延時間の終りの前にマイクロコン
トローラ301がドライブ・モジュールの電源切断に進
むかどうかを制御するためのものである。したがって、
マイクロコントローラ301は、判断タスク1113で
肯定の判断を行った場合に、経路1166に沿って進ん
で、「ドライブ電源オフ」タスク1114を実行する。
逆に、マイクロコントローラ301が判断タスク111
3で否定の判断を行った場合には、マイクロコントロー
ラ301は、このサブルーチンから経路953を介して
タスク905に戻る。マイクロコントローラ301が、
判断タスク1112で肯定の判断を行った場合には、第
2の5秒の遅延が満了しており、マイクロコントローラ
301は、経路1165に沿って進んで、タスク111
4を実行し、これによって、ドライブ・モジュールの電
源がオフにされ、ドライブ・モジュールのファイバ・チ
ャネル・ドライブポート・バイパス・スイッチ213お
よび215がバイパス・モードに調整され、関連するフ
ラグが調整される。その後、マイクロコントローラ30
1は、このサブルーチンから経路953を介してタスク
905に戻る。
【0091】図12は、タイマ割込みサブルーチン12
00の流れ図である。タイマ割込みサブルーチン120
0の制御の下で、マイクロコントローラ301は、ドラ
イブ・モジュール202、203および204のそれぞ
れのための別々の1秒タイマを確立し、維持し、これら
のタイマは、他のタスクの制御の下での処理に関連して
使用される。マイクロコントローラ301は、STDマ
イクロコントローラ301内に配置されるハードウェア
・タイマおよび割込み論理(別々には図示せず)の制御
の下で、周期的にサブルーチン1200を処理する。ハ
ードウェア・タイマおよび割込み論理からの割込みに応
答して、マイクロコントローラ301は、タイマ割込み
サブルーチン1200の処理を開始する。当初、マイク
ロコントローラ301は、経路1251に沿って「汎用
レジスタ保存」タスク1201に進み、コンテキスト・
レジスタのすべてをスタック(別々には図示せず)に保
存し、その後、経路1252に沿って「タイマ増分」タ
スク1202に進む。タスク1202は、Timer_
Intr1200がアクティブになるたびにマイクロコ
ントローラ301がタイマ・セルを所定の量だけ増分で
きるようにする自由継続タスクである。その後、マイク
ロコントローラ301は、経路1253を介して「1秒
カウントが完了したか」判断タスク1203に進む。判
断タスク1203では、マイクロコントローラ301
が、1秒タイム・カウンタがカウント・アウトになった
かどうかを検査する。マイクロコントローラ301は、
ステップ1203で否定の判断を行った場合に、経路1
262に沿って、タスク1201で保存したレジスタを
マイクロコントローラ301が復元できるようにする
「汎用レジスタ復元」タスク1210に進む。ステップ
1210の後に、マイクロコントローラ301は、割込
みからリターンできるようにするリターン命令1211
を処理する。
【0092】判断タスク1203に戻って、マイクロコ
ントローラ301がそのステップで肯定の判断を行った
場合には、マイクロコントローラ301は、経路125
4から始まる経路に沿って進んで、連続するドライブ活
動判断タスク1204、1207および1209を実行
する。マイクロコントローラ301は、判断タスク12
04、1207および1209に関連して肯定の判断を
行った場合に、それぞれの経路1255、1258およ
び1261に沿って、それぞれのドライブ・タイマ・サ
ービス・タスク1205、1206および1208に進
む。ドライブ・タイマ・サービス・タスク1205、1
206および1208の処理では、マイクロコントロー
ラ301は、それぞれのドライブ・モジュール202、
204または206をサービスする責任を負うサブルー
チンによってイネーブルされたタイマを増分し、関連す
る状況フラグをセットする。タスク1208または、マ
イクロコントローラ301がステップで否定の判断を行
った場合にはタスク1209の後に、マイクロコントロ
ーラ301は、タスク1210に進んで、前に保存した
レジスタを復元し、リターンする。
【0093】図13、14は、単一のバイトが、マイク
ロコントローラ301のインターフェースによってバス
150から受信されたか、マイクロコントローラ301
のインターフェースによってバス150に送信された時
に処理される、割込みサブルーチン1300の流れ図で
ある。割込みサブルーチン1300では、マイクロコン
トローラ301が、STC400からのコマンド・パケ
ットの受信と、STC400への状況応答パケットの送
信を制御する。割込みサブルーチン1300の処理の当
初は、マイクロコントローラ301が、経路1351に
沿って「汎用レジスタ保存」タスク1302に進み、コ
ンテキスト・レジスタのすべてをスタック・メモリに保
存する。その後、マイクロコントローラ301は、経路
1352に沿って「S1STA復号」タスク1301に
進み、S1STAレジスタに格納された状況コードを復
号する。これは、I2C仕様で定義されており、STD
300によって送受信されたパケット500のフレーミ
ング状態およびエラー条件を示す。マイクロコントロー
ラ301は、経路1353に沿って「Valid_S
t」判断タスク1303に進み、S1STAレジスタに
格納された状況コードが有効なコードであるかどうかを
判定する。マイクロコントローラ301は、タスク13
03で否定の判断を行った場合に、経路1363に沿っ
て「Proc_Error_Status」タスク13
04に進み、そのエラー条件を処理し、STD300が
パケット500を送信中であればそれ以降のパケット送
信を停止し、STDがパケット500を受信中であれば
それ以降のパケット受信を打ち切る。その後、マイクロ
コントローラ301は、経路1354に沿って「汎用レ
ジスタ復元」タスク1334に進み、タスク1302で
保存したレジスタを復元する。タスク1334の後に、
マイクロコントローラ301は、経路1385に沿って
リターン命令1335に進み、これによって、マイクロ
コントローラ301は割込みからリターンできるように
なる。
【0094】判断タスク1303に関連して、マイクロ
コントローラ301が、このタスクで肯定の判断を行っ
た(S1STAレジスタ内の状況コードが有効である)
場合、マイクロコントローラ301は、状況コードによ
る決定に従って、複数の経路1355、1356、13
58、1362、1365、1369、1373、13
75、1380、1381または1383のうちの一つ
に沿って進む。マイクロコントローラ301は、S1S
TAレジスタ内の状況コードから、Sビット・フレーミ
ング状態501が発生したことが示されると判定した場
合に、経路1355に沿ってタスク1305に進んで、
STAビットをクリアし、S1DATデータ・レジスタ
にフレーミング状態510の宛先アドレスをロードし、
現在の状態をセットする。その後、マイクロコントロー
ラ301は、経路1354に沿ってタスク1334に進
んで、前に述べたようにレジスタを復元し、割込み処理
からリターンする。
【0095】マイクロコントローラ301が、S1ST
Aの状況コードから、STD300が、パケットの宛先
アドレスを含むパケット500のDadr(宛先アドレ
ス)フレーム状態510を成功裡に送信したことが示さ
れると判定した場合に、マイクロコントローラ301
は、経路1356に沿ってタスク1306に進んで、A
ttempt Counter(試行カウンタ、別々に
は図示せず)をクリアし、次に送信されるフレーミング
状態に応じて、Sadrフレーミング状態520で使用
される送信元アドレスか、フレーミング状態520ない
し550で使用されるデータか、フレーミング状態56
0で使用されるチェックサムのいずれかをS1DATレ
ジスタにロードする。Attempt Counter
は、パケット送信障害が発生した場合にSTD300が
パケット再送信を試みた回数を識別し、試行のたびに増
分される。マイクロコントローラ301は、連続するフ
レーミング状態510ないし560のデータを、送信の
ためにS1DATレジスタに転送する前にその内部メモ
リの連続した位置に記憶するので、タスク1306の後
に、マイクロコントローラ301は、経路1357に沿
ってタスク1307に進んで、現在の状態を更新し、送
信されるパケットの送信バッファ・ポインタを、その内
部メモリの次の位置を指すように増分する。その後、マ
イクロコントローラ301は、経路1354に沿ってタ
スク1334に進んで、レジスタを復元し、割込みから
リターンする。
【0096】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、Dadrフレーミング状
態510の宛先アドレスが肯定応答されなかったことが
示されると判定した場合、マイクロコントローラ301
は、経路1358に沿ってタスク1308に進んで、T
ransmit Attempt(送信試行)カウンタ
を増分する。タスク1308の後に、マイクロコントロ
ーラ301は、経路1359に沿って「最大試行回数」
判断タスク1309に進み、TransmitAtte
mptカウンタによって供給される値が最大送信アカウ
ント値に対応するかどうかを判定する。マイクロコント
ローラ301は、判断タスク1309で肯定の判断を行
った場合に、経路1360に沿ってタスク1310に進
んで、現在の状態を更新し、Tx_Act_Flg(送
信アクティブ・フラグ)と最大試行カウント値をクリア
し、ウォッチ・ドッグ・タイマをリセットし、停止シー
ケンスをバス150に発行できるようにするSTOビッ
トをセットする。その後、マイクロコントローラ301
は、経路1354に沿ってタスク1334に進んで、レ
ジスタを復元し、割込みからリターンする。
【0097】判断タスク1309に戻って、マイクロコ
ントローラ301が、そのステップで否定の判断を行っ
た(Transmit Attemptカウンタによっ
て供給される値が最大送信アカウント値に対応しない)
場合、マイクロコントローラ301は、経路1361に
沿って進んで、タスク1311を実行する。タスク13
11では、マイクロコントローラ301が、現在の状態
を更新し、送信バッファ・ポインタをリセットすること
と、S1DATレジスタに送信バッファ・ポインタによ
って指されるデータをロードすることと、バス送信開始
シーケンスを発行することによって同一のデータをもう
一度再送信する。その後、マイクロコントローラ301
は、経路1354に沿ってタスク1334に進んで、レ
ジスタを復元し、割込みからリターンする。
【0098】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、データ・バイトがバス1
50を介して成功裡に送信されたことが示されると判定
した場合、マイクロコントローラ301は、経路136
2に沿って判断タスク1312に進んで、現在のバイト
・カウントが0と等しいかどうかを判定する。マイクロ
コントローラ301が、判断タスク1312で肯定の判
断を行った場合には、STD300がパケット全体を送
信済みであり、この場合、マイクロコントローラ301
は、経路1367に沿ってタスク1317に進んで、現
在の状態をセットし、Tx_Act_Flg(送信アク
ティブ・フラグ)と最大試行回数カウントをクリアし、
ウォッチ・ドッグ・タイマをリセットし、バス停止シー
ケンスをバス150に発行できるようにするSTOビッ
トをセットする。その後、マイクロコントローラ301
は、経路1354に沿ってタスク1334に進んで、レ
ジスタを復元し、割込みからリターンする。
【0099】マイクロコントローラ301が、判断タス
ク1312で否定の判断を行った場合、STD300
は、パケット全体を送信し終えてはいない。この場合、
マイクロコントローラ301は、経路1364に沿って
タスク1314に進んで、現在のバイト・カウントを減
分する。その後、マイクロコントローラ301は、経路
1356に沿って進んで、上で説明したタスク1306
に移る。
【0100】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、送信したデータ・バイト
が肯定応答されなかったことが示されると判定した場
合、マイクロコントローラ301は、経路1365に沿
ってタスク1315に進んで、Transmit At
temptカウンタを増分する。その後、マイクロコン
トローラ301は、経路1366に沿って「最大試行回
数」判断タスク1316に進んで、Transmit
Attemptカウンタによって供給される値が所定の
値に対応するかどうかを判定する。マイクロコントロー
ラ301は、判断タスク1316で肯定の判断を行った
場合に、経路1367に沿ってタスク1317に進み、
上で説明したように、バス停止シーケンスを可能にする
ためにSTOビットを調整する。その後、マイクロコン
トローラ301は、経路1354に沿ってタスク133
4に進んで、レジスタを復元し、割込みからリターンす
る。
【0101】マイクロコントローラ301が、判断タス
ク1316で否定の判断を行った(Transmit
Attemptカウンタによって供給される値が所定の
値に対応しないと判定した)場合、マイクロコントロー
ラ301は、経路1368に沿ってタスク1318に進
み、現在の状態を更新し、送信バッファ・ポインタをリ
セットし、バス開始シーケンスを再発行して、パケット
を再送信できるようにする。その後、マイクロコントロ
ーラ301は、経路1354に沿ってタスク1334に
進んで、レジスタを復元し、割込みからリターンする。
【0102】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、STD300がバス・パ
ケット500のフレーミング状態のいずれかの送信中に
バス150のアービトレーションを失ったことが示され
ると判定した場合、マイクロコントローラ301は、経
路1369に沿って判断タスク1319に進んで、送信
フラグがセットされ、STD300がアクティブな送信
状態であることが示されるかどうかを判定する。送信フ
ラグは、たとえば、STD300の内部の送信ウォッチ
ドッグ・タイマ(別々には図示せず)によってクリアさ
れた場合に、セットされていない可能性がある。マイク
ロコントローラ301は、判断タスク1319で肯定の
判断を行った場合に、経路1371に沿ってタスク13
21に進んで、現在の状態を更新し、送信中のパケット
の第1バイトのメモリ内の位置を指すように送信バッフ
ァ・ポインタをセットし、バス150上で開始シーケン
スを再発行する。その後、マイクロコントローラ301
は、経路1354に沿ってタスク1334に進んで、レ
ジスタを復元し、割込みからリターンする。
【0103】マイクロコントローラ301が、判断タス
ク1319で否定の判断を行った(送信フラグがクリア
されている)場合、マイクロコントローラ301は、経
路1370に沿ってタスク1320に進んで、現在の状
態を更新し、フラグをクリアする。その後、マイクロコ
ントローラ301は、経路1354に沿ってタスク13
34に進んで、レジスタを復元し、割込みからリターン
する。
【0104】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、経路1373に示されて
いるように、STD300自体のアドレスまたは一般呼
出しアドレスを含んでいた、あるパケットの宛先アドレ
ス・フレーミング状態が受信されたことが示されると判
定した場合、マイクロコントローラ301は、経路13
73に沿ってタスク1322に進んで、受信器バイト・
カウント・レジスタと受信器バッファ・ポインタ・レジ
スタを初期設定し、現在の状態を更新する。その後、マ
イクロコントローラ301は、経路1374に沿ってタ
スク1323に進んで、受信アクティブ・フラグをセッ
トし、受信バッファ・レジスタに最初のバイトをロード
し、受信器バッファ・ポインタを増分する。その後、マ
イクロコントローラ301は、経路1354に沿ってタ
スク1334に進んで、レジスタを復元し、割込みから
リターンする。
【0105】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、STD300自体のアド
レスまたは一般呼出しアドレスがバス150から受信さ
れたので、STD300がパケットの送信中にバス15
0のアービトレーションを失ったことが示されると判定
した場合、マイクロコントローラ301は、経路137
5に沿って判断タスク1324に進んで、STDの送信
器がまだアクティブであるかどうかを判定する。マイク
ロコントローラ301は、判断タスク1324で肯定の
判断を行った場合に、経路1377に沿ってタスク13
26に進んで、送信バッファ・ポインタを再初期設定
し、バス150のバス開始シーケンスを再起動する。そ
の後、マイクロコントローラ301は、経路1373に
沿ってタスク1322に進んで、上で述べたようにパケ
ットを受信する。これに対して、マイクロコントローラ
301が、判断タスク1324で否定の判断を行った場
合には、マイクロコントローラ301は、経路1373
に沿って直接にタスク1322に進んで、上で述べたよ
うにパケットを受信する。
【0106】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、宛先アドレスがSTD3
00の宛先アドレスまたは一般呼出しアドレスであった
パケットに関してデータ・バイトが成功裡に受信された
ことが示されると判定した場合には、マイクロコントロ
ーラ301は、経路1380に沿ってタスク1328に
進んで、現在の状態を更新し、受信したデータ・バイト
を受信バッファにロードし、受信バッファ・ポインタを
増分する。その後、マイクロコントローラ301は、経
路1354に沿ってタスク1334に進んで、レジスタ
を復元し、割込みからリターンする。
【0107】マイクロコントローラ301が、S1ST
Aレジスタの状況コードから、停止条件が受信されたこ
とが示されたと判定した場合、マイクロコントローラ3
01は、経路1381に沿って進んで、Slave_R
x_Doneタスク1331を実行する。タスク133
1では、マイクロコントローラ301が、現在の状態を
更新し、オーバーラン・エラーやアンダーラン・エラー
などのパケット内容のエラーを検査し、タスク904
(図9)で使用されるRX_I2C_CMD(コマンド
受信)フラグをセットし、他の関連する状況フラグを更
新する。その後、マイクロコントローラ301は、経路
1354に沿ってタスク1334に進んで、レジスタを
復元し、割込みからリターンする。
【0108】マイクロコントローラ301が、S1ST
Aレジスタの状況コードが、上に示したもの以外のコー
ドである(バス150に関連するエラー条件が存在する
か、STD300が無効なS1STA状況コードを受信
した場合に発生する可能性がある)と判定した場合、マ
イクロコントローラ301は、経路1383に沿ってタ
スク1332に進む。タスク1332では、マイクロコ
ントローラ301が、バス150のデータ信号線とクロ
ック信号線をネゲートする。さらに、マイクロコントロ
ーラ301は、経路1384に沿ってタスク1333に
進んで、エラー状況ビットをセットし、バス停止シーケ
ンスを送信する。その後、マイクロコントローラ301
は、経路1354に沿ってタスク1334に進んで、レ
ジスタを復元し、割込みからリターンする。
【0109】図15は、ハンドラ1400の制御の下で
ファイバ・チャネル・ホスト・アダプタ105(図1)
によって実行される動作を示す図である。ハンドラ14
00は、具体的には、STC400を制御し、STC4
00を介してSTD300を制御する責任を負う。ハン
ドラ1400は、ファイバ・チャネル・ホスト・アダプ
タ105のメモリ112に常駐し、それぞれのDSP1
01および102のCPU111によって実行される。
ハンドラ1400は、操作員が発行することのできるコ
マンドによって呼び出されるか、ハンドラ1400を介
してSTC400のマイクロコントローラ401を制御
するために働くそれぞれのDSP101または102に
よって処理されるソフトウェアによって呼び出される。
ハンドラ1400に発行されるコマンドによって、上で
説明したように、ファイバ・チャネル・ループ160お
よび170の構成、それぞれのディスクポート・バイパ
ス・スイッチ213および215のモード、ドライブ・
モジュールの電源投入または切断などを制御することが
できる。
【0110】図15は、ハンドラ1400に関連して実
行される動作の流れ図である。ハンドラ1400には、
メイン・タスク1401、Issue_cmd(コマン
ド発行)タスク1409 および割込みハンドラ141
2を含む3つの主要構成要素が含まれる。
【0111】ファイバ・チャネル・ホスト・アダプタ1
05のローカル中央処理装置111は、DSP101お
よび102が初期設定される時に、オペレーティング・
システムの制御の下で、経路1450に沿って、ハンド
ラ1400のメイン・タスク1401を呼び出す。ロー
カル中央処理装置111は、タスク1402を使用し
て、STCマイクロコントローラ401内に配置された
STC_CTL制御レジスタ(別々には図示せず)に値
をロードしてマイクロコントローラ401をリセット
し、メモリ403内でマイクロコントローラ401が状
況情報を記憶する区域をクリアし、ファイバ・チャネル
・ホスト・アダプタ105からそれぞれのDSP101
または102の中央処理装置103への割込みをイネー
ブルする。その後、タスク1402で、ハンドラ140
0は、上で述べたように、ローカル中央処理装置111
がSTD INIT初期設定コマンドをSTC400に
対して発行できるようにする。STD INITコマン
ドを発行する際に、中央処理装置111は、実際にはコ
マンド発行タスク1409を使用する。タスク1402
から、ローカル中央処理装置111は、経路1453に
沿ってコマンド発行タスク1409の判断タスク141
0に進んで、stc_busyフラグがセットされてい
るかどうかを判定する。
【0112】stc_busyフラグは、コマンド発行
タスク1409と割込みハンドラ1412の間の同期化
とフロー制御に使用される。初期設定の後に、stc_
busyフラグは、当初はリセット状態にされる。st
c_busyフラグは、ローカル中央処理装置111が
STC400にコマンドを発行する時に、タスク141
1の制御の下でローカル中央処理装置111によってセ
ットされる。stc_busyフラグは、後程、割込み
ハンドラ1412の処理中に、STC400がローカル
中央処理装置111に割り込んで、コマンドの処理を完
了したことを通知する時に、リセットされる。コマンド
発行タスク1409の処理中に、ローカル中央処理装置
111が、タスク1410で、stc_busyフラグ
がセットされ、STC400が現在コマンドを処理中で
あることが示されると判定した場合、ローカル中央処理
装置111は、STCが前に発行されたコマンドの処理
を完了したことを示すためにstc_busyフラグが
リセットされるまで待機する。ローカル中央処理装置1
11が、タスク1410でstc_busyフラグがセ
ットされていると判定した場合、ローカル中央処理装置
111は、経路1464に沿ってタスク1410に戻
る。したがって、ローカル中央処理装置111は、st
c_busyフラグがセットされている間に、反復して
タスク1410を処理する。
【0113】ローカル中央処理装置111が、タスク1
410の処理で、stc_busyフラグがリセット状
態であると判定した場合、ローカル中央処理装置111
は、経路1454に沿ってタスク1411に進む。タス
ク1411の処理では、ローカル中央処理装置111
が、Acquire_csaタスクを処理し、このタス
クで、ローカル中央処理装置111がISAバス153
を介してSTCのメモリ403にアクセスできるように
するために、マルチプレクサ402がイネーブルされ
る。その動作で、ローカル中央処理装置111は、ST
C_CTL制御信号を調整して、マイクロコントローラ
401が、ST_RAM_ACCメモリ・アクセス制御
信号を調整できるようにして、マルチプレクサ402
が、信号線453と信号線456の間の信号を結合し、
これによって、ローカル中央処理装置111が、メモリ
403にアクセスできるようにする。ローカル中央処理
装置111は、メモリ403へのアクセスを有する時
に、stc_busyフラグをセットする。さらに、タ
スク1411の処理で、ローカル中央処理装置111
は、STC400に対して発行されるコマンドのさまざ
まなフィールドを生成し、それらのコマンドをメモリ4
03にコピーする。その後、ローカル中央処理装置11
1は、STC_CTL制御信号を調整して、マイクロコ
ントローラ401をイネーブルし、マイクロコントロー
ラ401は、ST_RAM_ACC信号を調整して、マ
ルチプレクサ402が信号線454と信号線456の間
で信号を結合できるようにし、これによって、マイクロ
コントローラ401がメモリ403にアクセスできるよ
うにする。さらに、ローカル中央処理装置111は、S
TC_CTL制御信号を調整して、マイクロコントロー
ラ401に割込み、これによって、上で説明したよう
に、マイクロコントローラ401が経路650(図6)
に沿ってその実行ループ600から出られるようにす
る。その後、タスク1409では、ローカル中央処理装
置111が、経路1455に沿ってInquiryコマ
ンド作成タスク1403に戻れるようにする。
【0114】タスク1403で、ローカル中央処理装置
111は、STC400がSTC_INITコマンドの
処理を成功裡に完了したかどうかを判定する。その動作
では、ローカル中央処理装置111が、下で割込みハン
ドラ1412に関連して説明する形で生成される動作終
了状況から、コマンドが成功裡に処理されたことが示さ
れるかどうかを判定する。ローカル中央処理装置111
は、タスク1403で、STC_INITコマンドが成
功裡に処理されたと判定した場合に、STDInqui
ryコマンドを作成し、経路1453に沿って、上で説
明したコマンド発行タスク1409に進んで、上で説明
したようにSTC400にコマンドを発行できるように
する。コマンド発行タスク1409の完了の後に、ロー
カル中央処理装置111は、メイン・タスク1401の
タスク1404に戻る。
【0115】タスク1404で、ローカル中央処理装置
111は、タスク1403に関連して上で説明したもの
に類似の形で、STC400がSTD Inquiry
コマンドを成功裡に完了したかどうかを判定し、肯定の
判断を行った場合には、STC Drive Powe
r−On/Offコマンドを作成し、経路1453に沿
って、上で説明したコマンド発行タスク1409に進ん
で、上で述べたようにコマンドをSTC400に発行で
きるようにする。コマンド発行タスク1409の完了の
後に、ローカル中央処理装置111は、メイン・タスク
1401のタスク1405に戻る。
【0116】タスク1405で、ローカル中央処理装置
111は、タスク1403に関連して上で説明したもの
に類似の形で、STC400がSTC Drive P
ower−On/Offコマンドを成功裡に完了したか
どうかを判定する。ローカル中央処理装置111は、肯
定の判断を行った場合に、STD Start_Att
ention_Pollコマンドを作成し、経路145
3に沿ってコマンド発行タスク1409に進んで、上で
説明したようにSTC400にコマンドを発行できるよ
うにする。コマンド発行タスク1409の完了の後に、
ローカル中央処理装置111は、メイン・タスク140
1のコマンド・ループ1406、具体的にはタスク14
07に戻る。
【0117】タスク1407および1408を含むコマ
ンド・ループ1406では、ローカル中央処理装置11
1が、それぞれのDSP101または102の操作員に
よって、または、それぞれのDSPの中央処理装置10
3によって処理されているプログラムの制御の下でその
中央処理装置103によって、ローカル中央処理装置1
11に送信されたコマンドを処理できるようにする。コ
マンド・ループ1406では、ローカル中央処理装置1
11は、まず、コマンド存在(cmd_presen
t)判断タスク1407を処理して、DSP101また
は102のコマンド待ち行列(別々には図示せず)に、
操作員または他のプログラムによってポストされたコマ
ンドが含まれるかどうかを判定する。ローカル中央処理
装置111は、タスク1407のcmd_presen
tタスクで肯定の判断を行った場合に、経路1451に
沿ってコマンド作成およびコマンド発行タスク1408
に進む。タスク1408では、ローカル中央処理装置1
11は、STC400用のそれぞれのコマンドを作成
し、その後、経路1453に沿ってコマンド発行タスク
1409に進んで、上で説明したようにSTC400に
コマンドを発行できるようにする。コマンド発行タスク
1409の完了の後に、ローカル中央処理装置111
は、メイン・タスク1401のコマンド・ループ140
6、具体的にはタスク1407に戻る。
【0118】コマンド存在タスク1407に戻って、ロ
ーカル中央処理装置111が、タスク1407で否定の
判断を行った場合には、ローカル中央処理装置111
は、経路1452に沿ってタスク1407に戻る。した
がって、ローカル中央処理装置111は、コマンド待ち
行列がコマンドを有するようになるまでコマンド存在タ
スク1407を繰り返し実行し、コマンド待ち行列がコ
マンドを有するようになった後に、タスク1408に進
む。
【0119】割込みハンドラ1412は、STC400
からローカル中央処理装置によって受け取られた割込み
に関連する処理を制御するのに使用される。この割込み
は、STCのマイクロコントローラ401によって、信
号線451(図4)のST_STAT_INT割込み信
号のアサートによって伝えられる。ST_STAT_I
NT信号のアサートに応答して、ローカル中央処理装置
111は、割込みハンドラ1412のAcquire_
csaタスク1413の処理を開始して、マルチプレク
サ402をイネーブルし、ローカル中央処理装置111
がメモリ403にアクセスできるようにする。ローカル
中央処理装置111は、メモリ403にアクセスできる
時に、経路1457に沿ってコマンド復号タスク141
4に進み、コマンド復号タスク1414で、ローカル中
央処理装置111は、完了した発行済コマンドに基づい
てSTCのマイクロコントローラ401によってロード
された状況表示を復号し、状況表示に基づいて分岐す
る。ローカル中央処理装置は、状況表示からコマンドが
成功裡に完了したことが示されると判定した場合に、経
路1460に沿ってコマンド完了タスク1417に進
む。コマンド完了タスク1417では、ローカル中央処
理装置111が、メモリ403内の状況情報をクリア
し、マイクロコントローラ401をイネーブルして、マ
イクロコントローラ401がメモリ403にアクセスで
きるようになるようにマルチプレクサ402を制御す
る。完了したコマンドがSTC INITコマンドの場
合、内部の「成功裡初期設定完了」フラグをセットし
て、上で説明したメイン・タスク1401の制御の下で
STC400に他のコマンドを発行できるようにする。
ローカル中央処理装置111は、STC400が、別の
コマンドを受け取る状態であることを示すためにstc
_busyフラグもクリアし、マイクロコントローラ4
01が、ST_STAT_INT割込み信号をネゲート
するためにイネーブルされる。コマンド完了タスク14
17の後に、ローカル中央処理装置111は、経路14
63に沿って進んで、リターン命令1418を実行し
て、割込みハンドラ1412を終了する。
【0120】ローカル中央処理装置111が、タスク1
414で、状況表示からエラー状態が示されると判定し
た場合、ローカル中央処理装置111は、経路1458
に沿ってエラー処理タスク1415に進んで、エラーを
処理する。タスク1415の後に、ローカル中央処理装
置111は、経路1461に沿って、上で説明したコマ
ンド完了タスク1417に進む。
【0121】最後に、ローカル中央処理装置111が、
タスク1414で、状況表示からアテンション状態が示
されると判定した場合、ローカル中央処理装置111
は、経路1459に沿ってアテンション処理タスク14
16に進んで、アテンション状態を処理する。タスク1
416の後に、ローカル中央処理装置111は、経路1
462に沿って、上で説明したコマンド完了タスク14
17に進む。
【0122】本発明によるシステムは、専用ハードウェ
アまたは汎用コンピュータ・システムもしくはその組合
せから、全体的または部分的に構成することができ、そ
のいずれの部分も、適当なプログラムによって制御でき
ることを諒解されたい。プログラムは、全体的または部
分的に、通常の形でシステムの一部を構成するかシステ
ムに記憶することができ、また、全体的または部分的
に、通常の形でネットワークまたは情報転送のための他
の機構を介してシステムに供給することができる。さら
に、本発明のシステムは、システムに直接に接続される
か、ネットワークまたは情報転送のための他の機構を介
して通常の形でシステムに情報を転送することができる
操作員入力要素(図示せず)を使用して、操作員によっ
て供給される情報によって操作または他の形で制御する
ことができることを諒解されたい。
【0123】前述の説明は、本発明の特定の実施例に制
限されている。しかし、本発明の長所の一部またはすべ
てを達成しながら、本発明に対してさまざまな変更およ
び修正を行うことができることが明白である。これらお
よびそのような他の変更および修正を、本発明の真の趣
旨および範囲に含まれるものとして包含することが、請
求項の目的である。
【図面の簡単な説明】
【図1】本発明に従って構成されたディジタル・コンピ
ュータ・システムの機能ブロック図である。
【図2】図1に示されたシステムで使用されるディスク
記憶サブシステムの内部の詳細を示すブロック図であ
る。
【図3】図1に示されたディスク記憶サブシステムのデ
ィスク記憶モジュールの構成と監視に使用される装置コ
ントローラ(STD)の内部の詳細を示すブロック図で
ある。
【図4】装置コントローラ(STD)を構成し、監視
し、そこから状況情報を受け取るためにディスク記憶サ
ブシステムにコマンドを送る、データ記憶プロセッサ
(DSP)内のコントローラ(STC)の内部の詳細を
示すブロック図である。
【図5】DSPコントローラ(STC)から装置コント
ローラ(STD)へのコマンドの転送と、装置コントロ
ーラ(STD)からDPSコントローラ(STC)への
状況情報の転送に使用される、データ記憶プロセッサ
(DSP)内のコントローラ(STC)とディスク記憶
サブシステム内の装置コントローラ(STD)の間で転
送されるパケットのフォーマットを示す図である。
【図6】STC(図4)によって制御されるマイクロコ
ントローラによって実行される動作の、実行ループに関
連して実行される動作を示す図である。
【図7】STC(図4)によって制御されるマイクロコ
ントローラによって実行される動作の、実行ループに関
連して実行される動作を示す図である。
【図8】STCとSTDを相互接続するバスを介するパ
ケットの送受信を制御する状態機械に関する、STC
(図4)によって制御されるマイクロコントローラによ
って実行される動作の流れ図である。
【図9】装置コントローラ(STD)を制御するマイク
ロコントローラによって実行される、電源投入時リセッ
トと実行ループの流れ図である。
【図10】装置コントローラ(STD)を制御するマイ
クロコントローラによって実行される、STCから受信
したコマンド・パケットの処理と、STCへ送信される
応答パケットの生成を制御するサブルーチン・タスクの
流れ図である。
【図11】装置コントローラ(STD)を制御するマイ
クロコントローラによって実行される、ドライブ電源ス
イッチの状態変化を処理するタスクの流れ図である。
【図12】装置コントローラ(STD)を制御するマイ
クロコントローラによって実行される、タイマ割込みサ
ブルーチンの流れ図である。
【図13】装置コントローラ(STD)を制御するマイ
クロコントローラによって実行される、STDによって
情報が受信されるか、STDによってSTCへ情報が送
信される時に処理される割込みサブルーチンの流れ図で
ある。
【図14】装置コントローラ(STD)を制御するマイ
クロコントローラによって実行される、STDによって
情報が受信されるか、STDによってSTCへ情報が送
信される時に処理される割込みサブルーチンの流れ図で
ある。
【図15】ディスク記憶サブシステムにデータ記憶プロ
セッサ(DSP)を接続するホスト・アダプタを制御す
るハンドラ1400に関連して実行される動作を示す流
れ図である。
【符号の説明】
101 データ記憶プロセッサ(DSP) 102 データ記憶プロセッサ(DSP) 103 ホスト中央処理装置(CPU) 104 メモリ 105 ファイバ・チャネル・ホスト・アダプタ 106 ファイバ・チャネル・コントローラ 107 ファイバ・チャネル・コントローラ 108 入出力コントローラ 109 ブリッジ 111 ローカルCPU 112 メモリ 150 バス 151 バス 153 ISAバス 160 FCループA 170 FCループB
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ウィリアム・エフ・デイ アメリカ合衆国 33071 フロリダ州・コ ーラルスプリングス・サウスウエスト 112ティエイチ テラス・11 (72)発明者 スーザン・エル・コープランド アメリカ合衆国 33324 フロリダ州・プ ランテーション・ノースウエスト 6ティ エイチ コート・7921 (72)発明者 デヴィド・エイ・ヒル アメリカ合衆国 27603 ノースカロライ ナ州・ローリー・ジャクイン レイン・ 8817 (72)発明者 マーク・ジェイ・ホーナック アメリカ合衆国 33330 フロリダ州・ク ーパーシティ・サウスウエスト 115 ア ヴェニュ・5813 (72)発明者 マイケル・ケイ・ホースロム アメリカ合衆国 33027 フロリダ州・ミ ラマー・サウスウエスト 20ティエイチ ストリート・12801 (72)発明者 ギャビン・ジェイ・カートン アメリカ合衆国 33064 フロリダ州・ポ ンパノ ビーチ・ノースイースト 14ティ エイチ アヴェニュ・3721 (72)発明者 ポーラ・シイ・カイザー アメリカ合衆国 33351 フロリダ州・サ ンライズ・ノースウエスト 33アールディ マナー・9731

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 相互接続によって相互接続された複数の
    資源とホスト・プロセッサとを含む少なくとも一つのサ
    ブシステムを含むディジタル・データ処理システムであ
    って、上記相互接続が、ループの形のトポロジを有し、
    上記相互接続が、上記トポロジに上記ループ全体が含ま
    れるパススルー・モードと、上記トポロジに上記ホスト
    ・プロセッサを含む上記ループの一部が含まれるバイパ
    ス・モードとを有するように選択的に構成可能な少なく
    とも一つの構成スイッチを有し、上記ホスト・プロセッ
    サが、上記少なくとも一つの構成スイッチを上記パスス
    ルー・モードまたは前記バイパス・モードに選択的に調
    整するように構成される、前記ディジタル・データ処理
    システム。
  2. 【請求項2】 前記資源のうちの少なくとも一つが、デ
    ィスク記憶装置を含む請求項1に記載のディジタル・デ
    ータ処理システム。
  3. 【請求項3】 前記サブシステムが、上記少なくとも一
    つの構成スイッチを調整するために接続されたサブシス
    テム・コントローラを含み、上記サブシステム・コント
    ローラが、前記ホスト・プロセッサから構成コマンドを
    受け取り、これに応答して、上記構成スイッチを上記パ
    ススルー・モードまたは上記バイパス・モードに調整す
    る請求項1に記載のディジタル・データ処理システム。
  4. 【請求項4】 さらに、上記ホスト・プロセッサと上記
    サブシステム・コントローラとを相互接続するために構
    成されたコマンド相互接続を含み、上記ホスト・プロセ
    ッサが、上記コマンド相互接続を介して上記サブシステ
    ム・コントローラに構成コマンドを送る請求項3に記載
    のディジタル・データ処理システム。
  5. 【請求項5】 上記コマンド相互接続が、シリアル・バ
    スを含む請求項4に記載のディジタル・データ処理シス
    テム。
  6. 【請求項6】 上記コマンド相互接続が、I2Cバスを
    含む請求項5に記載のディジタル・データ処理システ
    ム。
  7. 【請求項7】 上記ホスト・プロセッサが、さらに、上
    記コマンド相互接続を介して状況要求コマンドを送るよ
    うに構成され、上記サブシステム・コントローラが、さ
    らに、そこに状況応答を供給するように構成される請求
    項3に記載のディジタル・データ処理システム。
  8. 【請求項8】 前記サブシステム・コントローラが、上
    記コマンド相互接続を介して上記状況応答を供給するよ
    うに構成される請求項7に記載のディジタル・データ処
    理システム。
  9. 【請求項9】 前記資源のそれぞれが、ポート・バイパ
    ス・スイッチおよび装置を含み、上記ポート・バイパス
    ・スイッチが、上記ループ・トポロジが上記装置を含む
    パススルー・モードと、上記トポロジが上記装置をバイ
    パスするバイパス・モードとを有するように選択的に構
    成可能であり、上記ホスト・プロセッサが、上記資源の
    それぞれの上記ポート・バイパス・スイッチを前記モー
    ドのいずれかに選択的に調整するように構成される請求
    項1に記載のディジタル・データ処理システム。
  10. 【請求項10】 上記ディジタル・データ処理システム
    が、複数のホスト・プロセッサと複数の相互接続とを含
    み、複数の相互接続のそれぞれが、すべてのホスト・プ
    ロセッサと前記少なくとも一つのサブシステムとを含む
    ループの形であり、各相互接続が、少なくとも一つのそ
    れぞれの構成スイッチを有し、各ホスト・プロセッサ
    が、前記複数の相互接続のうちの一つに関連する上記構
    成スイッチを制御するように構成される請求項1に記載
    のディジタル・データ処理システム。
  11. 【請求項11】 前記資源のうちの少なくとも一つが、
    ディスク記憶装置を含む、請求項10に記載のディジタ
    ル・データ処理システム。
  12. 【請求項12】 前記サブシステムが、それぞれが前記
    複数の相互接続のうちの一つに関連する複数のサブシス
    テム・コントローラを含み、各サブシステムが、それに
    関連する上記相互接続に関連する上記少なくとも一つの
    構成スイッチを調整するように構成され、上記サブシス
    テム・コントローラが、前記ホスト・プロセッサから構
    成コマンドを受け取り、これに応答して、それに関連す
    る上記構成スイッチを上記パススルー・モードまたは上
    記バイパス・モードに調整するように構成される、請求
    項1に記載のディジタル・データ処理システム。
  13. 【請求項13】 さらに、上記ホスト・プロセッサと上
    記サブシステム・コントローラとを相互接続するように
    構成されたコマンド相互接続を含み、上記ホスト・プロ
    セッサが、上記コマンド相互接続を介して上記サブシス
    テム・コントローラに構成コマンドを送るように構成さ
    れる、請求項12に記載のディジタル・データ処理シス
    テム。
  14. 【請求項14】 上記ホスト・プロセッサが、さらに、
    上記コマンド相互接続を介して状況要求コマンドを送る
    ように構成され、上記サブシステム・コントローラが、
    さらに、そこに状況応答を供給するように構成される、
    請求項13に記載のディジタル・データ処理システム。
  15. 【請求項15】 前記サブシステム・コントローラが、
    上記コマンド相互接続を介して上記状況応答を供給する
    ように構成される、請求項14に記載のディジタル・デ
    ータ処理システム。
  16. 【請求項16】 前記資源のそれぞれが、前記相互接続
    のそれぞれに関連するポート・バイパス・スイッチと装
    置とを含み、各ポート・バイパス・スイッチが、それぞ
    れの相互接続の上記ループ・トポロジが上記装置を含む
    パススルー・モードと、上記トポロジが上記装置をバイ
    パスするバイパス・モードとを有するように選択的に構
    成可能であり、上記ホスト・プロセッサが、上記資源の
    それぞれの上記ポート・バイパス・スイッチを前記モー
    ドのうちのそれぞれに選択的に調整するように構成され
    る、請求項10に記載のディジタル・データ処理システ
    ム。
JP11185017A 1998-06-30 1999-06-30 ディジタル・デ―タ処理システムにおいて複数のホスト・コンピュ―タ間で記憶サブシステムなどの資源の共用を容易にするためのシステムおよび方法。 Pending JP2000099448A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/107,070 1998-06-30
US09/107,070 US6356984B1 (en) 1998-06-30 1998-06-30 Digital data processing system having a data bus and a control bus

Publications (1)

Publication Number Publication Date
JP2000099448A true JP2000099448A (ja) 2000-04-07

Family

ID=22314682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11185017A Pending JP2000099448A (ja) 1998-06-30 1999-06-30 ディジタル・デ―タ処理システムにおいて複数のホスト・コンピュ―タ間で記憶サブシステムなどの資源の共用を容易にするためのシステムおよび方法。

Country Status (4)

Country Link
US (1) US6356984B1 (ja)
EP (1) EP0969629A3 (ja)
JP (1) JP2000099448A (ja)
KR (1) KR20000006576A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293595A (ja) * 2004-04-02 2005-10-20 Seagate Technology Llc 多数パスの冗長ストーレジ・システム構造及び方法
WO2017104440A1 (ja) 2015-12-16 2017-06-22 ソニー株式会社 通信装置、通信方法、プログラム、および通信システム
WO2017183482A1 (en) 2016-04-22 2017-10-26 Sony Semiconductor Solutions Corporation Communication device, communication method, program, and communication system
WO2017183483A1 (en) 2016-04-22 2017-10-26 Sony Semiconductor Solutions Corporation Communication apparatus, communication method, program, and communication system
WO2017199761A1 (en) 2016-05-18 2017-11-23 Sony Corporation Communication device, communication method, program, and communication system
WO2017199760A1 (en) 2016-05-18 2017-11-23 Sony Corporation Communication apparatus, communication method, program, and communication system
WO2017199763A1 (en) 2016-05-18 2017-11-23 Sony Semiconductor Solutions Corporation Communication device and communication system
WO2017199759A1 (en) 2016-05-18 2017-11-23 Sony Corporation Communication apparatus, communication method, program, and communication system
US9960981B2 (en) 2015-10-08 2018-05-01 Sony Corporation Communication device, communication method, program, and communication system
WO2018150868A1 (ja) 2017-02-14 2018-08-23 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
US10805043B2 (en) 2015-07-31 2020-10-13 Sony Corporation Data transmission apparatus and data transmission method, reception device and reception method, program, and data transmission system

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4294142B2 (ja) * 1999-02-02 2009-07-08 株式会社日立製作所 ディスクサブシステム
US6647433B1 (en) * 2000-08-14 2003-11-11 Hewlett-Packard Development Company, L.P. Architecture and related methods facilitating secure port bypass circuit settings
US6725315B2 (en) * 2000-12-22 2004-04-20 Nortel Networks Limited System and method to efficiently move data from one data bus to another data bus in a network switch
US6934785B2 (en) * 2000-12-22 2005-08-23 Micron Technology, Inc. High speed interface with looped bus
US6763409B1 (en) * 2001-01-31 2004-07-13 Hewlett-Packard Development Company, L.P. Switch-on-the-fly GBIC disk channel adapter and disk channel system
JP3536829B2 (ja) * 2001-06-14 2004-06-14 日本電気株式会社 Fc−alシステムのリンク診断方法及び装置
US7185062B2 (en) * 2001-09-28 2007-02-27 Emc Corporation Switch-based storage services
JP3722429B2 (ja) * 2002-01-17 2005-11-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 外部記憶装置、制御装置、外部記憶システム、制御方法、プログラム、及び記録媒体
JP2005518589A (ja) * 2002-02-22 2005-06-23 レクサー メディア,インク. インジケータライトが一体化されたリムーバブル記憶媒体
JP4219610B2 (ja) * 2002-04-23 2009-02-04 株式会社日立製作所 ディスクサブシステム装置
US20040076428A1 (en) * 2002-05-20 2004-04-22 The Boeing Company Form existing fibers into a fibre channel-arbitrated loop
US6961786B2 (en) * 2002-09-25 2005-11-01 Lsi Logic Corporation Fiber loop linking/detecting
US6981111B1 (en) * 2003-03-31 2005-12-27 Emc Corporation Data storage system
US7421520B2 (en) * 2003-08-29 2008-09-02 Aristos Logic Corporation High-speed I/O controller having separate control and data paths
US7721024B2 (en) * 2003-11-12 2010-05-18 Dell Products L.P. System and method for exiting from an interrupt mode in a multiple processor system
US7581122B2 (en) * 2004-06-29 2009-08-25 Broadcom Corporation Power supply integrated circuit with feedback control
US7707434B2 (en) * 2004-06-29 2010-04-27 Broadcom Corporation Power control bus for carrying power control information indicating a power supply voltage variability
JP2006072717A (ja) * 2004-09-02 2006-03-16 Hitachi Ltd ディスクサブシステム
US8312454B2 (en) * 2006-08-29 2012-11-13 Dot Hill Systems Corporation System administration method and apparatus
JP5068086B2 (ja) * 2007-02-16 2012-11-07 株式会社日立製作所 記憶制御装置
US8473647B2 (en) * 2007-09-17 2013-06-25 Apple Inc. Methods and apparatus for decreasing power consumption and bus activity
CN101131570B (zh) * 2007-09-18 2011-06-08 重庆川仪自动化股份有限公司 冗余切换控制方法及其控制电路
CN102761646B (zh) * 2011-04-26 2014-12-10 深圳富泰宏精密工业有限公司 双模手机的命令交互纠错系统及方法
KR102636962B1 (ko) 2022-04-25 2024-02-15 상신전자(주) 에나멜 피복 전선 레이저 탈피 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4090035A (en) * 1975-12-17 1978-05-16 Martin Marietta Corporation Line access module
US5249164A (en) * 1990-06-27 1993-09-28 Koz Mark C Digital color tv for personal computers
US5535035A (en) * 1994-09-15 1996-07-09 International Business Machines Corporation Optical fiber ring communications system and communications method
US5602462A (en) * 1995-02-21 1997-02-11 Best Power Technology, Incorporated Uninterruptible power system
US5729763A (en) * 1995-08-15 1998-03-17 Emc Corporation Data storage system
US5768551A (en) * 1995-09-29 1998-06-16 Emc Corporation Inter connected loop channel for reducing electrical signal jitter
GB2318262B (en) * 1996-10-08 2000-11-08 Ibm Bypass circuit for data processing system
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
AU4600497A (en) * 1996-11-14 1998-06-03 Data General Corporation Dynamically upgradeable disk array system and method
US6055228A (en) * 1996-12-23 2000-04-25 Lsi Logic Corporation Methods and apparatus for dynamic topology configuration in a daisy-chained communication environment

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293595A (ja) * 2004-04-02 2005-10-20 Seagate Technology Llc 多数パスの冗長ストーレジ・システム構造及び方法
US10805043B2 (en) 2015-07-31 2020-10-13 Sony Corporation Data transmission apparatus and data transmission method, reception device and reception method, program, and data transmission system
US9960981B2 (en) 2015-10-08 2018-05-01 Sony Corporation Communication device, communication method, program, and communication system
KR20180066049A (ko) 2015-10-08 2018-06-18 소니 주식회사 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
US10116542B2 (en) 2015-10-08 2018-10-30 Sony Corporation Communication device, communication method, program, and communication system
KR20180096580A (ko) 2015-12-16 2018-08-29 소니 주식회사 통신 장치, 통신 방법, 프로그램 및 통신 시스템
WO2017104440A1 (ja) 2015-12-16 2017-06-22 ソニー株式会社 通信装置、通信方法、プログラム、および通信システム
WO2017183482A1 (en) 2016-04-22 2017-10-26 Sony Semiconductor Solutions Corporation Communication device, communication method, program, and communication system
WO2017183483A1 (en) 2016-04-22 2017-10-26 Sony Semiconductor Solutions Corporation Communication apparatus, communication method, program, and communication system
US10824582B2 (en) 2016-04-22 2020-11-03 Sony Semiconductor Solutions Corporation Communication apparatus, communication method, program, and communication system
DE112017002127T5 (de) 2016-04-22 2019-01-03 Sony Semiconductor Solutions Corporation Kommunikationsvorrichtung, Kommunikationsverfahren, Programm und Kommunikationssystem
WO2017199763A1 (en) 2016-05-18 2017-11-23 Sony Semiconductor Solutions Corporation Communication device and communication system
US10721022B2 (en) 2016-05-18 2020-07-21 Sony Semiconductor Solutions Corporation Communication apparatus, communication method, program, and communication system
WO2017199759A1 (en) 2016-05-18 2017-11-23 Sony Corporation Communication apparatus, communication method, program, and communication system
KR20190008196A (ko) 2016-05-18 2019-01-23 소니 주식회사 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
KR20190008198A (ko) 2016-05-18 2019-01-23 소니 주식회사 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
KR20190008855A (ko) 2016-05-18 2019-01-25 소니 주식회사 통신 장치, 통신 방법, 프로그램, 및 통신 시스템
US11791934B2 (en) 2016-05-18 2023-10-17 Sony Group Corporation Communication device, communication method, program, and communication system
US10892852B2 (en) 2016-05-18 2021-01-12 Sony Corporation Communication apparatus, communication method, program, and communication system
US10740172B2 (en) 2016-05-18 2020-08-11 Sony Corporation Communication apparatus, communication method, program, and communication system
WO2017199760A1 (en) 2016-05-18 2017-11-23 Sony Corporation Communication apparatus, communication method, program, and communication system
WO2017199761A1 (en) 2016-05-18 2017-11-23 Sony Corporation Communication device, communication method, program, and communication system
WO2018150868A1 (ja) 2017-02-14 2018-08-23 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
US10942885B2 (en) 2017-02-14 2021-03-09 Sony Semiconductor Solutions Corporation Communicating apparatus, communication method, program, and communication system
KR20190113772A (ko) 2017-02-14 2019-10-08 소니 세미컨덕터 솔루션즈 가부시키가이샤 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템

Also Published As

Publication number Publication date
EP0969629A3 (en) 2000-12-13
US6356984B1 (en) 2002-03-12
EP0969629A2 (en) 2000-01-05
KR20000006576A (ko) 2000-01-25

Similar Documents

Publication Publication Date Title
JP2000099448A (ja) ディジタル・デ―タ処理システムにおいて複数のホスト・コンピュ―タ間で記憶サブシステムなどの資源の共用を容易にするためのシステムおよび方法。
US6473857B1 (en) Centralized boot
US7739432B1 (en) Command switching for multiple initiator access to a SATA drive
EP0341710B1 (en) Atomic sequence for phase transitions
US8032793B2 (en) Method of controlling information processing system, information processing system, direct memory access control device and program
US7480840B2 (en) Apparatus, system, and method for facilitating port testing of a multi-port host adapter
JPS61288246A (ja) 多重ポ−ト通信システム
US20080163005A1 (en) Error injection in pci-express devices
JPH04218861A (ja) 多重クラスタ信号プロセッサ
KR910007643B1 (ko) 펜디드 버스를 이용하는 인터럽트를 제공하기 위한 장치 및 방법
JPH0450623B2 (ja)
KR19990067763A (ko) 유에스비 등시 데이타를 전송 및 수신하는 장치 및 방법
EP1966710B1 (en) Integrated circuit capable of independently operating a plurality of communication channels
WO2006114822A1 (ja) Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
JP4498389B2 (ja) マルチ・ノードコンピュータシステム
EP1305718B1 (en) Method and apparatus for connecting single master devices to a multimaster wired-and bus environment
JPH0442698B2 (ja)
US6412068B1 (en) Card management bus and method
US5805791A (en) Method and system for detection of and graceful recovery from a peripheral device fault
US7336700B2 (en) System bus transceiver interface
EP3748496A1 (en) Parallel processing apparatus
JP2002116998A (ja) 周辺機器内蔵型usbコントローラ
JPS61131060A (ja) ネツトワーク制御システム
EP2764438B1 (en) Connection method
EP2019359B1 (en) Information processing apparatus including transfer device for transferring requests