(57)【要約】ホスト装置と１以上の不揮発性記憶装置で構成される記憶システムにおいて、ホスト装置のＣＰＵを動作させるブートコードを、ＣＰＵが起動する前に接続された不揮発性記憶装置からホスト装置が読み出す必要があるが、これを簡便な方法で行うことが要求される。ホスト装置（２）は、同期コードを含む第１のシンボルを不揮発性記憶装置（１）へ送る。不揮発性記憶装置（１）は、ホスト装置（２）からの第１のシンボルを受信すると、受信したのと同一の第１のシンボルをホスト装置（２）へ送信した後、ブートコードをホスト装置（２）へ送信する。これにより、ホスト装置（２）は、簡便な方法で、不揮発性記憶装置１からブートコードを読み出すことができる。
2011070747.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置との間でデータの送受信を行う不揮発性記憶装置であって、
１または複数の不揮発性メモリと、
前記不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部と、
を備え、
前記コントローラ部は、
ホストＩＦ部と、
前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、
を含み、
前記ホストＩＦ部は、
（１）前記ホスト装置からインタフェースの起動を指示する信号であるインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信し、
（２）前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルを前記ホスト装置へ送信し、
（３）前記第１のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力する、
不揮発性記憶装置。
【請求項２】
前記ホストＩＦ部は、
前記ホスト装置から前記第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルを前記ホスト装置へ送信し、
前記同期シンボル送信後に前記ホスト装置からアイドルシンボルを受信すると、前記ホスト装置へアイドルシンボルを送信し、
前記コントローラ部は、
前記ホストＩＦ部が前記アイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にし、
前記ホストＩＦ部は、
前記ホストＩＦ部が前記アイドルシンボル送信し、前記コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力する、
請求項１に記載の不揮発性記憶装置
【請求項３】
前記ホストＩＦ部は、
前記ホスト装置が送信したデータを８ｂ／１０復号化して受信し、ホスト装置へデータを８ｂ／１０ｂ符号化して送信するものであり、
（１）前記ホスト装置から受信データとして同期コードを含むシンボルを受信すると、前記受信データと前記受信データを受信するためのクロック信号の位相を合わせて同期を確立させ、
（２）前記クロック信号と前記受信データとの同期を確立させた後に、前記ホスト装置から同期コードを含む第１のシンボルを受信すると、受信したのと同じ第１のシンボルを前記ホスト装置へ送信し、当該第１のシンボルの送信後、前記メモリ制御部が前記不揮発性メモリから読み出したブートコードをホスト装置へ送信する、
請求項１から３のいずれかに記載の不揮発性記憶装置。
【請求項４】
前記ホストＩＦ部は、所定のサイズのデータを送信したらブートコードの送信を終了する、
請求項１から３のいずれかに記載の不揮発性記憶装置。
【請求項５】
前記ホストＩＦ部は、ブートコードのデータを所定の長さのブロック単位で分割して送信する、
請求項１から４のいずれかに記載の不揮発性記憶装置。
【請求項６】
前記ホストＩＦ部は、自装置がブートコードを保持しない場合は、受信した前記同期コードを含む第１のシンボルをそのまま送信し、
前記コントローラ部は、前記ホストＩＦ部が、自装置がブートコードを保持しない場合であって、受信した前記同期コードを含む第１のシンボルをそのまま送信した場合、自装置の状態がアイドル状態のまま保持されるように、当該自装置を制御する、
請求項１から５のいずれかに記載の不揮発性記憶装置。
【請求項７】
１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムのホスト装置であって、
ホスト装置の全部又は一部を制御する制御部と、
不揮発性記憶装置ＩＦ部と、
を備え、
前記不揮発性記憶装置ＩＦ部は、
（１）インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信し、
（２）前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを前記不揮発性記憶装置へ送信し、
（３）前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信する、
ホスト装置。
【請求項８】
前記不揮発性記憶装置ＩＦ部が、前記第１のシンボルを不揮発性記憶装置へ送信した場合であって、
前記不揮発性記憶装置ＩＦ部が、前記不揮発性記憶装置から、送信した前記第１のシンボルと同一のデータを受信した場合、あるいは、送信した前記第１のシンボルに応答するデータを受信した場合、
（１）前記不揮発性記憶装置ＩＦ部は、前記不揮発性記憶装置へアイドルシンボルを送信し、
（２）前記制御部は、前記不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し前記不揮発性記憶装置からアイドルシンボルを受信した場合、ホスト装置の状態をアイドル状態にし、
（３）前記不揮発性記憶装置ＩＦ部は、前記制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、前記ブートコードの受信状況を示すステータス情報を、前記不揮発性記憶装置へ送信する、
請求項７に記載のホスト装置。
【請求項９】
ホスト装置と１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムであって、
前記ホスト装置は、
ホスト装置の全部又は一部を制御する制御部と、
不揮発性記憶装置ＩＦ部と、
を備え、
前記不揮発性記憶装置は、
１または複数の不揮発性メモリと、
前記不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部と、
を備え、
前記コントローラ部は、
ホストＩＦ部と、
前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、
を含み、
（Ｈ１）前記不揮発性記憶装置ＩＦ部は、インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信し、
（Ｓ１）前記ホストＩＦ部は、前記ホスト装置から前記インタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信し、
（Ｈ２）前記不揮発性記憶装置ＩＦ部は、前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを前記不揮発性記憶装置へ送信し、
（Ｓ２）前記ホストＩＦ部は、前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルを前記ホスト装置へ送信し、
（Ｓ３）前記ホストＩＦ部は、前記第１のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力し、
（Ｈ３）前記不揮発性記憶装置ＩＦ部は、前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信する、
記憶システム。
【請求項１０】
（ＨＨ１）前記不揮発性記憶装置ＩＦ部は、前記第１のシンボルを不揮発性記憶装置へ送信し
（ＳＳ１）前記ホストＩＦ部は、前記ホスト装置から前記第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルを前記ホスト装置へ送信し、
（ＨＨ２）前記不揮発性記憶装置ＩＦ部が、前記不揮発性記憶装置から、送信した前記第１のシンボルと同一のデータを受信した場合、あるいは、送信した前記第１のシンボルに応答するデータを受信した場合、前記不揮発性記憶装置ＩＦ部は、前記不揮発性記憶装置へアイドルシンボルを送信し、
（ＨＨ３）前記ホスト装置の前記制御部は、前記不揮発性記憶装置ＩＦ部がアイドルシンボルを送信した後、前記ホスト装置の状態をアイドル状態にし、
（ＳＳ２）前記ホストＩＦ部は、前記ホスト装置へ前記同期シンボル送信後に前記ホスト装置からアイドルシンボルを受信すると、前記ホスト装置へアイドルシンボルを送信し、
（ＳＳ３）前記不揮発性記憶装置の前記コントローラ部は、前記ホストＩＦ部が前記アイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする、
請求項９に記載の記憶システム。
【請求項１１】
前記ホストＩＦ部は、
前記ホストＩＦ部が前記アイドルシンボル送信し、前記コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力し、
前記不揮発性記憶装置ＩＦ部は、
前記不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し、前記制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、
前記ブートコードの受信状況を示すステータス情報を、前記不揮発性記憶装置へ送信する、
請求項１０に記載の記憶システム。
【請求項１２】
前記不揮発性記憶装置は、所定サイズのデータを送信すると前記ブートコードの送信を終了し、
前記ホスト装置は、所定のサイズのブートコードデータを受信すると、前記不揮発性記憶装置のブートコードの送信が終了したと判断する、
請求項９から１１のいずれかに記載の記憶システム。
【請求項１３】
前記ホスト装置は、前記不揮発性記憶装置が前記ブートコードのデータを所定の長さのブロック単位で送信した場合、該ブートコードのデータを受信する、
請求項９から１１のいずれかに記載の記憶システム。
【請求項１４】
前記不揮発性記憶装置は、ブートコードを保持しない場合は、受信した同期コードを含む第１のシンボルをそのまま送信し、
前記ホスト装置は、所定の回数または所定の時間同期コードを含む第１のシンボルを送信した後、前記ブートコードのデータを受信しない場合、前記不揮発性記憶装置がブートコードを保持しないと判定する、
請求項９から１１のいずれかに記載の記憶システム。
【請求項１５】
前記第１のシンボルは、ブートデバイス識別子を含み、
前記ホスト装置は、
前記同期コードを含む第１のシンボルに、前記ブートコードを出力する前記不揮発性記憶装置を指定する前記ブートデバイス識別子を付加して送信し、
前記不揮発性記憶装置は、
第１のブートデバイスフラグ情報と第２のブートデバイスフラグ情報とを格納する格納部を備え、
前記同期コードを含む第１のシンボルを受信すると、前記受信した同期コードを含む第１のシンボルに含まれる前記ブートデバイス識別子に基づいてブートコードを送信するか否かを判定する、
請求項９から１４のいずれかに記載の記憶システム。
【請求項１６】
前記ホスト装置と前記１または複数の不揮発性記憶装置とは、リング接続される、
請求項９から１５のいずれかに記載の記憶システム。
【請求項１７】
前記ホスト装置と前記１または複数の不揮発性記憶装置とは、ハブを介してハブ接続される、
請求項９から１５のいずれかに記載の記憶システム。
【請求項１８】
ホスト装置と１または複数の不揮発性記憶装置との間でのデータ通信方法であって、
前記ホスト装置の全部又は一部を制御する制御部と、
不揮発性記憶装置ＩＦ部と、
を備える前記ホスト装置と、
１または複数の不揮発性メモリと、
ホストＩＦ部と、
前記不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部であって、前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含むコントローラ部と、
を備える前記１または複数の不揮発性記憶装置と、
の間のデータ通信方法であって、
（Ｈ１）前記不揮発性記憶装置ＩＦ部が、インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信するステップと、
（Ｓ１）前記ホストＩＦ部が、前記ホスト装置から前記インタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信するステップと、
（Ｈ２）前記不揮発性記憶装置ＩＦ部が、前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを前記不揮発性記憶装置へ送信するステップと、
（Ｓ２）前記ホストＩＦ部が、前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルを前記ホスト装置へ送信するステップと、
（Ｓ３）前記ホストＩＦ部が、前記第１のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力するステップと、
（Ｈ３）前記不揮発性記憶装置ＩＦ部が、前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信するステップと、
を備えるデータ通信方法。
【請求項１９】
請求項１８に記載のデータ通信方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置と１以上の不揮発性記憶装置とを含んで構成され、ホスト装置の指示に不揮発性記憶装置が応答してデータの書き込みおよび／または読み出しを行う記憶システムに関し、特にホスト装置が不揮発性記憶装置に保持したブートコードを読み出す方法に関する。
【背景技術】
【０００２】
従来から、ホスト装置と１以上の不揮発性記憶装置を接続し、ホスト装置の発行するコマンドに不揮発性記憶装置が応答して各種通信を行う記憶システムが知られている。このような記憶システムにおいて、システム起動時にホスト装置は当該記憶システムに接続された不揮発性記憶装置から当該記憶システムを起動するためのブートコードと呼ばれるプログラムを読み出す処理が必要である。このようなプログラムは、従来、ＮＯＲ型フラッシュメモリに保持されていたが、近年、ＮＡＮＤ型フラッシュメモリやＮＡＮＤ型フラッシュメモリを用いた不揮発性記憶装置の大容量化・低コスト化に伴い、ブートコードをこのようなＮＡＮＤ型フラッシュメモリやＮＡＮＤ型フラッシュメモリを用いた不揮発性記憶装置に保持し、システム起動時に読み出すことが行われるようになっている。通常、ＮＡＮＤ型フラッシュメモリやＮＡＮＤ型フラッシュメモリを用いた不揮発性記憶装置では、コマンドを用いてデータの読み出しや書き込みを行うが、ブートコードの読み出しは、システム起動時のソフトが起動していない状態で行う必要がある。このため、記憶システムにおいて、ブートコードをできるだけ簡便な方法で読み出すことが必要となる。【０００３】
例えば、特許文献１には、ＳＤ／ＭＭＣインタフェースを持つデバイスに対して、ＳＤ／ＭＭＣインタフェースのコマンド用信号線を用いて、起動時にブートコードを読み出す技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００９-５２４１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、ホスト装置の備える端子数が増加しており、不揮発性記憶装置を含む複数のデバイスをチェーン接続、リング接続、あるいはハブ接続により接続し、ホスト装置の端子数を増やすことなく構成した記憶システムが必要となっている。このようなシステムでは、不揮発性記憶装置に加え無線ＬＡＮ装置など各種ネットワーク装置やＩ／Ｏ装置が接続される。また、扱うデータ量の増大と高ビットレート化に伴い、ホスト装置と不揮発性記憶装置とのインタフェースも従来のシングルエンド方式用のインタフェースではなく、差動シリアル方式を用いてデータの送受信を行うためのインタフェースが採用されることが多くなってきている。
しかし、特許文献１に開示された従来技術では、ＳＤ／ＭＭＣインタフェースを用いるため、複数のデバイスを接続することができない。また、上記従来技術では、差動シリアル方式でデータの転送を行う場合に必要となる、差動シリアルインタフェースの起動や、受信データとクロックの同期確立などの処理も考慮されていないため、高速なインタフェースを備えるホスト装置と不揮発性記憶装置とを複数接続した記憶システムに、上記従来技術を適用することができない。【０００６】
本発明は、以上の問題点を解決し、ホスト装置と１以上の不揮発性記憶装置とを含む記憶システムにおいて、ホスト装置が簡便な方法で不揮発性記憶装置のブートコードを読み出すことが可能な、不揮発性記憶装置、ホスト装置および記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の発明は、ホスト装置との間でデータの送受信を行う不揮発性記憶装置であって、１または複数の不揮発性メモリと、コントローラ部と、を備える。
コントローラ部は、不揮発性メモリのデータの読み出しおよび／または書き込みを制御する。
コントローラ部は、ホストＩＦ部と、メモリ制御部とを含む。
メモリ制御部は、不揮発性メモリからホスト装置のブートコードを読み出す。
ホストＩＦ部は、
（１）ホスト装置からインタフェースの起動を指示する信号であるインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信し、
（２）インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルをホスト装置へ送信し、
（３）第１のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。【０００８】
この不揮発性記憶装置では、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信された信号と同じ信号をホスト装置に送信するだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、個々の不揮発性記憶装置は、上記と同様の処理を行うだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
したがって、この不揮発性記憶装置を、ホスト装置と１以上の不揮発性記憶装置とを含む記憶システムに用いることで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。【０００９】
なお、「インタフェース起動信号」とは、不揮発性記憶装置のインタフェース起動処理を行うための信号であり、不揮発性記憶装置は、インタフェース起動信号を受信することで、インタフェース起動処理を実行し、外部（例えば、ホスト装置や自装置以外の不揮発性記憶装置）とのデータ通信が可能な状態にする。
また、「同じ」信号（あるいはシンボル）とは、その信号（あるいはシンボル）が搬送する論理的な情報が同一であることをいい、例えば、第１のシンボルと同じシンボルとは、第１のシンボルが同期用コードとＢｏｏｔ要求コードからなる場合、当該同期用コードとＢｏｏｔ要求コードが同一であることを意味する。
第２の発明は、第１の発明であって、ホストＩＦ部は、ホスト装置から第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルをホスト装置へ送信し、同期シンボル送信後にホスト装置からアイドルシンボルを受信すると、ホスト装置へアイドルシンボルを送信する。【００１０】
コントローラ部は、ホストＩＦ部がアイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする。
ホストＩＦ部は、ホストＩＦ部がアイドルシンボル送信し、コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
この不揮発性記憶装置では、第１のシンボルを受信した場合に、アイドルシンボルをホスト装置へ送信し、さらに、ホスト装置からアイドルシンボルを受信した場合、自装置（不揮発性記憶装置）がアイドル状態となるように制御される。これにより、この不揮発性記憶装置では、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードをホスト装置へ送信することができる。したがって、確実かつ適切に、不揮発性記憶装置からホスト装置へブートコードを送信することができる。【００１１】
なお、「アイドル状態」とは、起動処理が完了し、利用可能であるが何の処理も実行されていない状態をいう。
第３の発明は、第１または第２の発明であって、ホストＩＦ部は、ホスト装置が送信したデータを８ｂ／１０ｂ復号化して受信し、ホスト装置へデータを８ｂ／１０ｂ符号化して送信するものである。
そして、ホストＩＦ部は、
（１）ホスト装置から受信データとして同期コードを含むシンボルを受信すると、受信データと受信データを受信するためのクロック信号の位相を合わせて同期を確立させ、
（２）クロック信号と受信データとの同期を確立させた後に、ホスト装置から同期コードを含む第１のシンボルを受信すると、受信したのと同じ第１のシンボルをホスト装置へ送信し、当該第１のシンボルの送信後、メモリ制御部が不揮発性メモリから読み出したブートコードをホスト装置へ送信する。【００１２】
これにより、この不揮発性記憶装置では、８ｂ／１０ｂ符号を用いて、簡単に、同期確立処理を行うことができる。
第４の発明は、第１から第３のいずれかの発明であって、ホストＩＦ部は、所定のサイズのデータを送信したらブートコードの送信を終了する。
第５の発明は、第１から第４のいずれかの発明であって、ホストＩＦ部は、ブートコードのデータを所定の長さのブロック単位で分割して送信する。
第６の発明は、第１から第５のいずれかの発明であって、ホストＩＦ部は、自装置がブートコードを保持しない場合は、受信した同期コードを含む第１のシンボルをそのまま送信する。
コントローラ部は、ホストＩＦ部が、自装置がブートコードを保持しない場合であって、受信した同期コードを含む第１のシンボルをそのまま送信した場合、自装置の状態がアイドル状態のまま保持されるように、当該自装置を制御する、
なお、「送信する」とは、目的の装置（例えば、ホスト装置）へ向かってデータを送信することを含む概念であり、例えば、目的の装置までの通信経路の途中に、目的外の装置があり、その装置を経由して、目的の装置にデータを送信することを含む概念である。【００１３】
また、「そのまま送信する」とは、受信したデータ（信号）と同一のデータ（信号）を、自装置（不揮発性記憶装置）の外部に送信することを含む概念である。
第７の発明は、１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムのホスト装置であって、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置ＩＦ部と、を備える。
不揮発性記憶装置ＩＦ部は、
（１）インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信し、
（２）インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第１のシンボルを不揮発性記憶装置へ送信し、
（３）不揮発性記憶装置から、不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信する。【００１４】
このホスト装置では、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信した信号と同じ信号を不揮発性記憶装置から受信することで、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、ホスト装置は、個々の不揮発性記憶装置に対して、上記と同様の処理を行うだけでよいので、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
したがって、このホスト装置を、ホスト装置と１以上の不揮発性記憶装置とを含む記憶システムに用いることで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。【００１５】
第８の発明は、第７の発明であって、不揮発性記憶装置ＩＦ部が、第１のシンボルを不揮発性記憶装置へ送信した場合であって、不揮発性記憶装置ＩＦ部が、不揮発性記憶装置から、送信した第１のシンボルと同一のデータを受信した場合、あるいは、送信した第１のシンボルに応答するデータを受信した場合、
（１）不揮発性記憶装置ＩＦ部は、不揮発性記憶装置へアイドルシンボルを送信し、
（２）制御部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し不揮発性記憶装置からアイドルシンボルを受信した場合、ホスト装置の状態をアイドル状態にする。
（３）不揮発性記憶装置ＩＦ部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し、制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信する。【００１６】
このホスト装置では、第１のシンボルを不揮発性記憶装置へ送信し、不揮発性記憶装置からアイドルシンボルを受信すると、自装置（ホスト装置）をアイドル状態となるように制御される。これにより、このホスト装置では、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードを不揮発性記憶装置から受信することができる。したがって、このホスト装置では、確実かつ適切に、不揮発性記憶装置から送信されてくるブートコードを受信することができる。
第９の発明は、ホスト装置と１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムである。
前記ホスト装置は、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置ＩＦ部と、を備える。【００１７】
前記不揮発性記憶装置は、１または複数の不揮発性メモリと、不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部と、を備える。
前記コントローラ部は、ホストＩＦ部と、不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含む。
そして、この記憶システムは、以下の処理を行う。
（Ｈ１）不揮発性記憶装置ＩＦ部は、インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信する。
（Ｓ１）ホストＩＦ部は、ホスト装置からインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信する。
（Ｈ２）不揮発性記憶装置ＩＦ部は、インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第１のシンボルを不揮発性記憶装置へ送信する。
（Ｓ２）ホストＩＦ部は、インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルをホスト装置へ送信する。
（Ｓ３）ホストＩＦ部は、第１のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
（Ｈ３）不揮発性記憶装置ＩＦ部は、不揮発性記憶装置から、不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信する。【００１８】
この記憶システムでは、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信された信号と同じ信号をホスト装置に送信するだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、個々の不揮発性記憶装置は、上記と同様の処理を行うだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
したがって、この記憶システムでは、ホスト装置と１以上の不揮発性記憶装置とを含む場合であっても、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。【００１９】
第１０の発明は、第９の発明であって、以下の処理を行う。
（ＨＨ１）不揮発性記憶装置ＩＦ部は、第１のシンボルを不揮発性記憶装置へ送信する。
（ＳＳ１）ホストＩＦ部は、ホスト装置から第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルをホスト装置へ送信する。
（ＨＨ２）不揮発性記憶装置ＩＦ部が、不揮発性記憶装置から、送信した第１のシンボルと同一のデータを受信した場合、あるいは、送信した第１のシンボルに応答するデータを受信した場合、不揮発性記憶装置ＩＦ部は、不揮発性記憶装置へアイドルシンボルを送信する。
（ＨＨ３）ホスト装置の制御部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信した後、ホスト装置の状態をアイドル状態にする。
（ＳＳ２）ホストＩＦ部は、ホスト装置へ同期シンボル送信後にホスト装置からアイドルシンボルを受信すると、ホスト装置へアイドルシンボルを送信する。
（ＳＳ３）不揮発性記憶装置のコントローラ部は、ホストＩＦ部がアイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする。【００２０】
この記憶システムでは、第１のシンボルを受信した場合に、ホスト装置をアイドル状態にするためのアイドルシンボルをホスト装置へ送信し、自装置（不揮発性記憶装置）もアイドル状態となるように制御される。これにより、この記憶システムでは、簡単な方法で、ホスト装置および不揮発性記憶装置の両方をアイドル状態にし、ブートコードを送信する準備を行うことができる。
第１１の発明は、第１０の発明であって、ホストＩＦ部は、ホストＩＦ部がアイドルシンボル送信し、コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
不揮発性記憶装置ＩＦ部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し、制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信する。【００２１】
これにより、この記憶システムでは、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードをホスト装置へ送信することができる。さらに、この記憶システムでは、ホスト装置が、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信するので、ブートコードが正しく不揮発性記憶装置からホスト装置へ送信されたか否かを知ることができる（例えば、このステータスを使って、ブートコードの再送処理等を行うこともできる）。
したがって、この記憶システムでは、確実かつ適切に、不揮発性記憶装置からホスト装置へブートコードを送信することができる。
第１２の発明は、第９から第１１のいずれかの発明であって、不揮発性記憶装置は、所定サイズのデータを送信するとブートコードの送信を終了し、ホスト装置は、所定のサイズのブートコードデータを受信すると、不揮発性記憶装置のブートコードの送信が終了したと判断する。【００２２】
第１３の発明は、第９から第１１のいずれかの発明であって、ホスト装置は、不揮発性記憶装置がブートコードのデータを所定の長さのブロック単位で送信した場合、該ブートコードのデータを受信する。
第１４の発明は、第９から第１１のいずれかの発明であって、不揮発性記憶装置は、ブートコードを保持しない場合は、受信した同期コードを含む第１のシンボルをそのまま送信する。
ホスト装置は、所定の回数または所定の時間同期コードを含む第１のシンボルを送信した後、ブートコードのデータを受信しない場合、不揮発性記憶装置がブートコードを保持しないと判定する。
第１５の発明は、第９から第１４のいずれかの発明であって、第１のシンボルは、ブートデバイス識別子を含む。【００２３】
ホスト装置は、同期コードを含む第１のシンボルに、ブートコードを出力する不揮発性記憶装置を指定するブートデバイス識別子を付加して送信する。
不揮発性記憶装置は、第１のブートデバイスフラグ情報と第２のブートデバイスフラグ情報とを格納する格納部を備え、同期コードを含む第１のシンボルを受信すると、受信した同期コードを含む第１のシンボルに含まれるブートデバイス識別子に基づいてブートコードを送信するか否かを判定する。
第１６の発明は、第９から第１５のいずれかの発明であって、ホスト装置と１または複数の不揮発性記憶装置とは、リング接続される。
第１７の発明は、第９から第１５のいずれかの発明であって、ホスト装置と１または複数の不揮発性記憶装置とは、ハブを介してハブ接続される。【００２４】
第１８の発明は、ホスト装置と１または複数の不揮発性記憶装置との間でのデータ通信方法であって、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置ＩＦ部と、を備える前記ホスト装置と、１または複数の不揮発性メモリと、ホストＩＦ部と、不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部であって、前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含むコントローラ部と、を備える１または複数の不揮発性記憶装置と、の間のデータ通信方法である。
このデータ通信方法は、以下のステップを備える。
（Ｈ１）不揮発性記憶装置ＩＦ部が、インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信するステップ。
（Ｓ１）ホストＩＦ部が、ホスト装置からインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信するステップ。
（Ｈ２）不揮発性記憶装置ＩＦ部が、インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第１のシンボルを不揮発性記憶装置へ送信するステップ。
（Ｓ２）ホストＩＦ部が、インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルをホスト装置へ送信するステップ。
（Ｓ３）ホストＩＦ部が、第１のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力するステップ。
（Ｈ３）不揮発性記憶装置ＩＦ部が、不揮発性記憶装置から、不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信するステップ。【００２５】
これにより、第９の発明と同様の効果を奏するデータ通信方法を実現することができる。
第１９の発明は、第１８の発明のデータ通信方法をコンピュータに実行させるためのプログラムである。
これにより、第９の発明と同様の効果を奏するデータ通信方法をコンピュータに実行させるプログラムを実現することができる。
【発明の効果】
【００２６】
本発明によれば、ホスト装置と１以上の不揮発性記憶装置を含む記憶システムにおいて、ホスト装置が簡便な仕組みで不揮発性記憶装置からブートコードを読み出すことが可能なホスト装置、不揮発性記憶装置および記憶システムを提供することができる。
【図面の簡単な説明】
【００２７】
【図１】第１実施形態に係る記憶システムの構成を説明する図
【図２Ａ】第１実施形態に係る記憶システムの通常の起動シーケンスおよびブートコード読み出しシーケンスを説明する図
【図２Ｂ】第１実施形態に係る記憶システムのブートコード読み出しシーケンスを説明する図
【図３】第１実施形態に係る記憶システムのブートコード出力を停止する処理を説明する図
【図４】第１実施形態に係る記憶システムのブートコードのデータフォーマットを説明する図
【図５】第２実施形態に係る記憶システムのホスト装置と不揮発性記憶装置の接続形態を説明する図
【図６Ａ】第２実施形態に係るホスト装置と不揮発性記憶装置がリング接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図
【図６Ｂ】第２実施形態に係るホスト装置と不揮発性記憶装置がチェーン接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図
【図６Ｃ】第２実施形態に係るホスト装置と不揮発性記憶装置がハブ接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図
【図７】第１〜３実施形態に係る記憶システムにおいて、ホスト装置が発行する同期コードを含む第１および第２のシンボルの構成を説明する図
【図８Ａ】第３実施形態に係る不揮発性記憶装置が保持するブートデバイスフラグを説明する図
【図８Ｂ】第３実施形態に係る記憶システムのブートコード読み出しシーケンス（ブート要求コードのＩＤが０の場合）を説明する図
【図８Ｃ】第３実施形態に係る記憶システムのブートコード読み出しシーケンス（ブート要求コードのＩＤが１の場合）を説明する図
【図９】第１実施形態に係る記憶システムの別のブートコード読み出しシーケンスを説明する図
【図１０】第１実施形態に係る記憶システムのブートコードのデータフォーマットを説明する図
【図１１】第２実施形態に係る記憶システムにおける、ブートコードを保持するデバイスの接続位置を説明する図
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態について、図面を参照しながら説明する。なお、説明中で同じ符号、記号、数字は特に説明が無い限り同じ構成要素を示すものとする。
［第１実施形態］
＜１．１：記憶システムの構成＞
図１は、第１実施形態に係る記憶システム１０００の構成を示すブロック図である。図１に示すように、記憶システム１０００は、ホスト装置２と不揮発性記憶装置１とで構成される。ホスト装置２と不揮発性記憶装置１とは、（１）クロックＣＬＫ、（２）ホスト装置２から不揮発性記憶装置１へデータを送る信号線ＤＡＴ０、および（３）不揮発性記憶装置１からホスト装置２へデータを送る信号線ＤＡＴ１を用いて、コマンドや応答、データの送受信を行う。なお、図１において、本発明の説明に不要な要素は図示していない。
【００２９】
記憶システム１０００では、ＣＬＫ、ＤＡＴ０、ＤＡＴ１により送受信される信号（データ）は、差動シリアル伝送方式を用いて伝送される。なお、ＣＬＫ、ＤＡＴ０、ＤＡＴ１により送受信される信号は、シングルエンド方式を用いて通信することも可能である。記憶システム１０００において、データを送る信号線の数はＤＡＴ０、ＤＡＴ１の２本に限定されず、より多くの信号線を用いることもよく、より多くの信号線を用いることで、より高速な通信が可能となる。ホスト装置２から不揮発性記憶装置１へ送るデータの信号線の数と不揮発性記憶装置１からホスト装置２へ送るデータの信号線の数とは同じであっても異なっていてもよい。
（１．１．１：ホスト装置の構成）
ホスト装置２は、図１に示すように、全体を制御するＣＰＵ２２と、ＲＯＭ２５と、ＲＡＭ２６と、主記憶部２３と、周辺回路２４と、不揮発性記憶装置ＩＦ部２１と、を含んで構成される。これらは同じ半導体ＬＳＩとして実現しても、異なる半導体ＬＳＩで実現してもよく、さらにハードウェアとソフトウェアを組み合わせて実現してもよい。
【００３０】
不揮発性記憶装置ＩＦ部２１は、不揮発性記憶装置１と、クロック信号伝送路ＣＬＫ、データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１を用いて通信を行う機能を有している。さらに、不揮発性記憶装置ＩＦ部２１は、不揮発性記憶装置１からシステム起動時にブートコードを読み出す制御を行うブート制御部２５を備える。
ブート制御部２５は、ハードウェアで実現してもよく、あるいはハードウェアと、ハードウェアに対してブートコード読み出し制御を行う簡便なソフトウェアとの組み合わせで実現してもよい。
なお、ホスト装置２の各機能部は、図１に示すように、バスにより接続されるものであってもよく、また、ホスト装置２の各機能部の全部または一部が、直接接続されるものであってもよい。
【００３１】
（１．１．２：不揮発性記憶装置の構成）
不揮発性記憶装置１は、コントローラ部１１と、１以上の不揮発性メモリ１２と、を含んで構成される。
コントローラ部１１は、ホストＩＦ部１１１と、メモリ制御部１１２と、を含む。
メモリ制御部１１２は、図１に示すように、ＣＰＵやＲＯＭ／ＲＡＭ、不揮発性メモリとの間でデータの転送を行うためのバッファやシーケンサを含んで構成される。これらは、同じ半導体ＬＳＩとして実現しても、異なる半導体ＬＳＩで実現してもよく、さらにハードウェアとソフトウェアを組み合わせて実現してもよい。
ホストＩＦ部１１１は、ホスト装置２と、クロック信号伝送路ＣＬＫ，データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１を用いて通信を行う機能を有している。また、ホストＩＦ部１１１は、ホスト装置２からの指示に応じて不揮発性メモリ１２に保持するブートコードをホスト装置２へ転送するブート制御部１１３を含んで構成される。
【００３２】
なお、不揮発性記憶装置１の備えるクロック信号伝送路ＣＬＫ、データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１は１組でもよく、あるいは、不揮発性記憶装置１が後述するチェーン接続を実現可能な場合には、クロック信号伝送路ＣＬＫ、データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１を２組備えてもよい。
また、クロック信号伝送路ＣＬＫについては、図１では、データ伝送路ＤＡＴ０およびデータＤＡＴ１とは異なる端子により接続される伝送路としているが、これに限定されることはなく、例えば、記憶システム１０００において、信号線（例えば、データ伝送路ＤＡＴ０および／またはデータＤＡＴ１）で伝送される信号（データ）にクロック信号を重畳して伝送するエンベデッドクロック伝送方式を用いることもでき、その場合には、クロック信号伝送路ＣＬＫおよび当該クロック信号伝送路ＣＬＫ用の端子は不要である。
【００３３】
また、本実施形態に係る不揮発性記憶装置１は、図１に示すように、ブートコードを不揮発性メモリ１２に保持するが、これに限定されることはなく、例えば、メモリ制御部１１２やホストＩＦ部１１１に設けたＲＯＭやフラッシュメモリなど別のメモリ（例えば、不揮発性メモリ）にブートコードを保持するようにしてもよい。
なお、説明便宜のため、第１実施形態に係るホスト装置２と不揮発性記憶装置１とは、データを８ｂ／１０ｂ変換して送信するものとする。すなわち、ホスト装置２と不揮発性記憶装置１とは、送信するデータを８ビット毎に１０ビットのコードに符号化して送信する。このような変換は、例えば、ＡＮＳＩ  ＩＮＣＩＴＳ  ２３０−１９９４で定義されており、１０ビットのコードには、８ビットのデータ０ｘ００〜０ｘＦＦを表すための２５６通りのＤコードのほかに、Ｋコードと呼ばれる制御用のコードも規定されている。Ｋコードは、例えば、データブロックの先頭や最後を現す特別なシンボルや、後述する同期確立用として使用される。
【００３４】
＜１．２：記憶システムの動作＞
以上のように構成された記憶システム１０００の動作について、以下、説明する。
（１．２．１：通常の起動シーケンス）
まず、記憶システム１０００における通常の起動シーケンスについて、説明する。
図２Ａ（ａ）は、第１実施形態に係る記憶システム１０００における、ホスト装置２と不揮発性記憶装置１との間の通常の起動シーケンスを説明する図である。
（時刻Ｔ２１からの処理）：
図２Ａ（ａ）において、ホスト装置２は、時刻Ｔ２１において、ＣＬＫ線（クロック信号伝送路ＣＬＫ）にクロックを供給すると共に、信号線（データ伝送路）ＤＡＴ０を用いてＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送る。なお、ＩＦ起動信号Ｓ２１は、信号線ＤＡＴ０をロー（論理値が０）固定（ローレベルを示す電圧値に固定）やハイ（論理値が１）固定（ハイレベルを示す電圧値に固定）として、ホスト装置２から不揮発性記憶装置１へ通知してもよく、あるいは何らかのパターン（パターン信号）をホスト装置２から不揮発性記憶装置１へ送るようにしてもよい。パターン（パターン信号）を送る場合には、所定のパターンを繰り返し送るようにしてもよい。また、その場合に信号線の値が変わる周期はクロック信号伝送路ＣＬＫで供給されるクロック信号の周波数（クロック周波数）と同じでもよく、あるいは、クロック周波数より速くても遅くてもよい（クロック周波数の周期より速い周期で信号線の値が変化するものであってもよく、あるいは、クロック周波数の周期より遅い周期で信号線の値が変化するものであってもよい）。
【００３５】
不揮発性記憶装置１は、ホスト装置２からＩＦ起動信号Ｓ２１を受信したことを検出すると、信号線（データ伝送路）ＤＡＴ１を用いて、ホスト装置２へＩＦ起動信号Ｓ２２を送る。ここで、ＩＦ起動信号Ｓ２２は、ホスト装置２が送ったＩＦ起動信号Ｓ２１と同じであってもよいし異なっていてもよい。
（時刻Ｔ２２からの処理）：
ホスト装置２は、不揮発性記憶装置１からＩＦ起動信号Ｓ２２を受信すると、時刻Ｔ２２において、同期シンボルＳ２３を、信号線ＤＡＴ０を用いて、不揮発性記憶装置１に送信する。ここで、同期シンボルＳ２３は、不揮発性記憶装置１がクロック線ＣＬＫで伝送されるクロック信号とデータ線ＤＡＴ０で伝送される信号（データ）との位相を合わせて正しくデータを受信することができるようにするための同期確立に用いられ、同期シンボルＳ２３は、例えば、Ｋコードの１つであるコンマ符号（例えばＫ２８．５、００１１１１  １０１０または１１００００  ０１０１）である。あるいは、同期シンボルＳ２３は、コンマ符号を含む１つまたは複数のコードで構成されるシンボルであってもよい。同期シンボルＳ２３は、不揮発性記憶装置１が同期を確立するのに十分な、所定の回数だけ繰り返し送信される。
【００３６】
不揮発性記憶装置１は、同期シンボルＳ２３を受信し、クロック線ＣＬＫで伝送されるクロック信号とデータ線ＤＡＴ０で伝送される信号（データ）との位相を合わせて正しくデータを受信できるようになると、データ線ＤＡＴ１を用いて同期シンボルＳ２４をホスト装置２へ送る。同期シンボルＳ２４は、ホスト装置２が、データ線ＤＡＴ１で伝送される信号（データ）と、データ線ＤＡＴ１で伝送される信号（データ）を受信するホスト装置２内部のクロック信号と、の位相を合わせて正しくデータを受信するために使用される。同期シンボルＳ２４は、ホスト装置２が送る同期シンボルＳ２３と同じでもよく、あるいは、複数のコードで構成する場合には、同期シンボルＳ２３と異なる構成でもよい。ただし、同期確立のためのコード、例えば、コンマ符号が含まれることは、同期シンボルＳ２３も同期シンボルＳ２４も同じである。
（時刻Ｔ２４からの処理）：
ホスト装置２は、不揮発性記憶装置１が送った同期シンボルＳ２４を受信すると、時刻Ｔ２４で、データ線ＤＡＴ０を用いて、アイドル状態を示すアイドルシンボルＳ２５を、不揮発性記憶装置１に送る。アイドルシンボルＳ２５は、任意のコードであるが、ホスト装置２および不揮発性記憶装置１が同期確立状態を維持できるよう、同期確立のためのコンマ符号などのコードを含むことも可能である。
（時刻Ｔ２５からの処理）：
不揮発性記憶装置１は、アイドルシンボルＳ２５を受信すると、時刻Ｔ２５において、データ線ＤＡＴ１を用いて、ホスト装置２へアイドルシンボルＳ２６を送る。アイドルシンボルＳ２６は、アイドルシンボルＳ２５と同じであってもよいし、異なっていてもよい。
【００３７】
このようにして、記憶システム１０００では、ホスト装置２と不揮発性記憶装置１とがお互いに同期を確立した後に、アイドルシンボルを送ると、通常の起動シーケンスが完了し、以降、ホスト装置２と不揮発性記憶装置１とは、コマンドや応答、データを用いた通信を行うことができるようになる。
（１．２．２：ブートコード読み出しシーケンス）
次に、記憶システム１０００におけるブートコード読み出しシーケンスについて、説明する。
図２Ａ（ｂ）は、第１実施形態に係る記憶システム１０００における、ホスト装置２と不揮発性記憶装置１との間のブートコードの読み出し開始シーケンスを説明する図である。なお、図２Ａ（ｂ）では図２Ａ（ａ）と同じ要素は同じ番号を用いて表している。
（時刻Ｔ２６からの処理）：
図２Ａ（ｂ）において、ホスト装置２は、時刻Ｔ２６において、ＣＬＫ線にクロック信号を供給すると共に、データ線ＤＡＴ０を用いて、ＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送る。
【００３８】
不揮発性記憶装置１は、ＩＦ起動信号Ｓ２１を受信したことを検出すると、データ線ＤＡＴ１を用いて、ホスト装置２へＩＦ起動信号Ｓ２２を送る。
（時刻Ｔ２７からの処理）：
ホスト装置２は、不揮発性記憶装置１からＩＦ起動信号Ｓ２２を受信すると、時刻Ｔ２７において、同期コードを含む第１のシンボルＳ２７を、データ線ＤＡＴ０を用いて、不揮発性記憶装置１へ送信する。ここで、第１のシンボルＳ２７は、不揮発性記憶装置１に対して、不揮発性メモリ１２に保持するブートコードを、データ線ＤＡＴ１を用いて出力させる指示のためのシンボルであり、不揮発性記憶装置１がブートコードの出力を終了するまで繰り返し送信される。なお、第１のシンボルの送信は、不揮発性記憶装置１がブートコードの出力を開始したら終了してもよく、あるいは所定の回数(例えば、２５６回、１０００回など)や所定の時間（例えば、１０ｍｓ、２００ｍｓなど）送信したら終了するようにしてもよい。この場合、ホスト装置２は、所定の回数または所定の時間、第１のシンボルＳ２７を送信した後、不揮発性記憶装置１からブートコードのデータを受信しない場合、不揮発性記憶装置１がブートコードを保持しないか、あるいは、エラー等により不揮発性記憶装置１がブートコードを出力できないと判定する。
（時刻Ｔ２８からの処理）：
不揮発性記憶装置１は、ホスト装置２から第１のシンボルＳ２７を受信すると、時刻Ｔ２８において、第２のシンボルＳ２８をホスト装置２へ送信する。そして、不揮発性記憶装置１は、ブートコードを出力する準備ができると、時刻Ｔ２９において、ブートコードをブートコード出力シンボルに続いてホスト装置２へ出力する。
【００３９】
ホスト装置２は、不揮発性記憶装置１からブートコードを受信すると、受信したブートコードを主記憶部２３に展開する。そして、ホスト装置２は、主記憶部２３で展開したコードを処理することで、以降のシステム起動処理を行う。
なお、不揮発性記憶装置１が送信する同期コードを含む第２のシンボルＳ２８は、ホスト装置２が送るシンボルＳ２７と同じであってもよいし、異なっていてもよいが、シンボルＳ２７、シンボルＳ２８とも同期確立のためのコードを含んで構成される。
また、別の一例として、記憶システム１０００において、例えば、図２Ｂに示すようにして、ブートコード読み出しシーケンスを行うようにしてもよい。この場合の処理について、図２Ｂを用いて、説明する。
図２Ｂは、第１実施形態に係る記憶システム１０００における、ホスト装置２と不揮発性記憶装置１との間のブートコードの読み出し開始シーケンスを説明する図である。なお、図２Ｂでは図２Ａと同じ要素は同じ番号を用いて表している。
（時刻Ｔ２０１からの処理）：
図２Ｂにおいて、ホスト装置２は、時刻Ｔ２０１において、ＣＬＫ線にクロック信号を供給すると共に、データ線ＤＡＴ０を用いて、ＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送る。
【００４０】
不揮発性記憶装置１は、ＩＦ起動信号Ｓ２１を受信したことを検出すると、データ線ＤＡＴ１を用いて、ホスト装置２へＩＦ起動信号Ｓ２２を送る。
（時刻Ｔ２０２からの処理）：
ホスト装置２は、不揮発性記憶装置１からＩＦ起動信号Ｓ２２を受信すると、時刻Ｔ２０２において、同期コードを含む第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０を、データ線ＤＡＴ０を用いて、不揮発性記憶装置１へ送信する。
ここで、第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０は、不揮発性記憶装置１に対して、不揮発性メモリ１２に保持するブートコードを、データ線ＤＡＴ１を用いて出力させる指示のためのシンボルであり、不揮発性記憶装置１から第２のＢ同期シンボル（ＢＳＹＮ２）Ｓ２１１の受信が確認されるまで、繰り返し送信される。
【００４１】
なお、第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０は、同期コードを含むシンボルであり、第１のシンボルＳ２７と同じシンボルであってもよく、あるいは、異なるシンボルであってもよい。
また、第２のＢ同期シンボル（ＢＳＹＮ２）Ｓ２１１は、第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０と同一のシンボルであってもよく、また、異なるシンボルであってもよい。また、第２のＢ同期シンボル（ＢＳＹＮ２）Ｓ２１１は、同期コードを含むシンボルであり、第２のシンボルＳ２８と同じシンボルであってもよく、あるいは、異なるシンボルであってもよい。
（時刻Ｔ２０３からの処理）：
不揮発性記憶装置１は、ホスト装置２から第１のＢ同期シンボルＳ２１０を受信すると、時刻Ｔ２０３において、第２のＢ同期シンボルＳ２１１をホスト装置２へ送信する。
（時刻Ｔ２０４からの処理）：
そして、ホスト装置２は、不揮発性記憶装置１から第２のＢ同期シンボルＳ２１１を受信すると、時刻Ｔ２０４において、アイドルシンボルＳ２５を不揮発性記憶装置１へ送信する。
【００４２】
そして、不揮発性記憶装置１は、ホスト装置２からアイドルシンボルＳ２５を受信すると、ホスト装置２へアイドルシンボルＳ２６を送信する。
（時刻Ｔ２０５からの処理）：
ホスト装置２は、時刻Ｔ２０５において、不揮発性記憶装置１からアイドルシンボルＳ２６を受信すると、不揮発性記憶装置１からブートコードが送信されるのを待つ状態にし、アイドルシンボルＳ２５を不揮発性記憶装置１へ送信し続ける。
不揮発性記憶装置１は、ブートコードの送信準備を行い、ブートコードの送信準備ができるまで、アイドルシンボルＳ２６をホスト装置２へ送信し続ける。
（時刻Ｔ２０６からの処理）：
不揮発性記憶装置１は、ブートコードの送信準備ができると、時刻Ｔ２０６において、ホスト装置２に対して、信号線ＤＡＴ１を用いて、フロー制御の開始を要求するシンボルＲＥＱ（図２Ｂ（ｂ）のシンボルＳ２０１）を送信する。その後、不揮発性記憶装置１は、ホスト装置２に対して、信号線ＤＡＴ１を用いて、アイドルシンボルＳ２６を送信する。
（時刻Ｔ２０７からの処理）：
ホスト装置２は、不揮発性記憶装置１からのデータ受信準備ができたら、時刻Ｔ２０７において、信号線ＤＡＴ０を用いて、不揮発性記憶装置１へシンボルＲＤＹ（図２Ｂ（ｂ）のシンボルＳ２０２）を送信する。その後、ホスト装置２は、不揮発性記憶装置１に対して、信号線ＤＡＴ０を用いて、アイドルシンボルＳ２５を送信する。
（時刻Ｔ２０８からの処理）：
不揮発性記憶装置１は、ホスト装置２からシンボルＲＤＹを受信したら、時刻Ｔ２０８データ線ＤＡＴ１を用いて、ブートコードをホスト装置２へ送信する。その後、不揮発性記憶装置１は、ホスト装置２に対して、信号線ＤＡＴ１を用いて、アイドルシンボルＳ２６を送信する。
【００４３】
なお、時刻Ｔ２０６からＴ２０７の間、ホスト装置２は、アイドルシンボルＳ２５を、不揮発性記憶装置１へ送信し続ける。
（時刻Ｔ２０９からの処理）：
図２Ｂ（ｂ）に示すように、時刻Ｔ２０９において、ホスト装置２は、不揮発性記憶装置１に対して、信号線ＤＡＴ０を用いて、ステータスシンボルＳ２０４（シンボルＳＴＡＴ）を送信する。このステータスシンボルＳ２０４は、ホスト装置２が、不揮発性記憶装置１から送信されたブートコードを正しく受信されたか否かを示す情報を含んでいる。なお、ステータスシンボルＳ２０５には、ホスト装置２が、不揮発性記憶装置１から送信されたブートコードを正しく受信できなかったというエラーがあった場合、再度、不揮発性記憶装置１がブートコードを送信することで、当該エラーのリカバリー（回復）が可能か否かを示す情報を含むようにしてもよい（例えば、ホスト装置２が不揮発性記憶装置１から受信したデータにおいて、伝送路でのビット化けによりＣＲＣエラーが発生しているような場合、再度、不揮発性記憶装置１がホスト装置２へデータ送信することで、正常に、データ送信が行うことができる可能性が高い。このようなエラーが上記で説明したリカバリー（回復）可能なエラーの一例である。）このように、リカバリー（回復）可能なエラーが発生している場合、記憶システム１０００において、図２Ｂ（ｂ）の時刻Ｔ２０６〜時刻Ｔ２１０の処理を、再度、実行するようにすることができる。このようにすることで、ホスト装置２は、より確実に、ブートコードを不揮発性記憶装置１から受信することができる。
【００４４】
ホスト装置２は、ステータスシンボルＳ２０４を不揮発性記憶装置１へ送信した後、アイドルシンボルＳ２５を不揮発性記憶装置１へ送信する。
なお、記憶システム１０００において、時刻Ｔ２０６〜時刻２１０の処理を所定回繰り返すようにしてもよい。例えば、１６ＫＢのブートコードを、不揮発性記憶装置１からホスト装置２へ送信する場合、２ＫＢずつに分割したブートコードを送信する処理（時刻Ｔ２０６〜時刻２１０の処理）を、８回繰り返すようにすればよい。
以上のように、記憶システム１０００において、ＲＥＱシンボル（シンボルＳ２０１）およびＲＤＹシンボル（シンボルＳ２０２）を用いてホスト装置２と不揮発性記憶装置１との間のフロー制御（ハンドシェーク通信によるフロー制御）を行い、さらに、不揮発性記憶装置１からホスト装置２へ送信されるブートコードを、ホスト装置２が正常に受信したか否かを示すステータスを、ホスト装置２から不揮発性記憶装置１へ返すことで（ハンドシェーク通信を行うことで）、より確実に、ブートコードを不揮発性記憶装置１からホスト装置２へ送信することができる。
【００４５】
なお、図２Ａ（ｂ）では、ホスト装置２は、ＩＦ起動信号を送信した後、第１のシンボルＳ２７を不揮発性記憶装置１へ送信する場合を例示しているが、これに限定されることはなく、例えば、図９に示すように、通常の起動シーケンスを行った後に、第１のシンボルを不揮発性記憶装置１へ送るようにしてもよい。
（時刻Ｔ９１からの処理）：
すなわち、図９に示すように、ホスト装置２は、時刻Ｔ９１において、不揮発性記憶装置１に対してクロック供給を開始すると共に、ＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送信する。
不揮発性記憶装置１は、ホスト装置２からＩＦ起動信号Ｓ２１を受信すると、ＩＦ起動信号Ｓ２２をホスト装置２へ送信する。
（時刻Ｔ９２からの処理）：
時刻Ｔ９２において、ホスト装置２は、不揮発性記憶装置１からのＩＦ起動信号Ｓ２２を受信すると、同期シンボルＳ２３を繰り返し不揮発性記憶装置１へ送信する。
【００４６】
不揮発性記憶装置１は、同期シンボルＳ２３を受信し、データ線ＤＡＴ０のデータを正しく受信できるようになると、時刻Ｔ９３において、同期シンボルＳ２４をホスト装置２へ送る。
（時刻Ｔ９４からの処理）：
ホスト装置２は、不揮発性記憶装置１から同期シンボルＳ２４を受信し、ＤＡＴ１のデータを正しく受信できるようになると、時刻Ｔ９４において、第１のシンボルＳ２７を不揮発性記憶装置１へ送信する。
（時刻Ｔ９５からの処理）：
不揮発性記憶装置１は、ホスト装置２から第１のシンボルＳ２７を受信すると、時刻Ｔ９５において、第２のシンボルＳ２８をホスト装置２へ送信した後、ブートコードを送信する準備ができると、第２のシンボルに引き続いてブートコードをホスト装置２へ送信する。
【００４７】
上記のようにして、記憶システム１０００において、ホスト装置２が通常の起動シーケンスを行った後に、第１のシンボルＳ２７を不揮発性記憶装置１へ送るようにしてもよい。
次に、図３を用いて、ホスト装置２が不揮発性記憶装置１からのブートコードの出力を停止する処理について、説明する。
図３は、ホスト装置２が不揮発性記憶装置１からのブートコードの出力を停止する処理を説明する図である。
図３（ａ）に示すように、時刻Ｔ３１において、ホスト装置２がデータ線ＤＡＴ０でアイドルシンボルＳ２５を不揮発性記憶装置１へ送ると、不揮発性記憶装置１は、ホスト装置２が送ったアイドルシンボルを受信、認識して、時刻Ｔ３２において、ブートコードの出力を停止し、データ線ＤＡＴ１でアイドルシンボルＳ２６をホスト装置２へ送信する。
【００４８】
また、図３（ｂ）に示すように、時刻Ｔ３３において、ホスト装置２がデータ線ＤＡＴ０で停止シンボルＳ３０を不揮発性記憶装置１へ送ると、不揮発性記憶装置１は、ホスト装置２が送った停止シンボルを受信、認識して、時刻Ｔ３４において、ブートコードの出力を停止し、データ線ＤＡＴ１でアイドルシンボルＳ２６をホスト装置２へ送信する。
また、図３（ｃ）に示すよう、時刻Ｔ３５において、不揮発性記憶装置１は、所定のサイズのブートコードのデータをホスト装置２へ送信し終わると、データ線ＤＡＴ１でアイドルシンボルＳ２６をホスト装置２へ送信する。
ホスト装置２は、不揮発性記憶装置１が送ったアイドルシンボルＳ２６を受信、認識すると、データ線ＤＡＴ０でアイドルシンボルＳ２５を不揮発性記憶装置１へ送信する。
本実施形態に係る不揮発性記憶装置１は、図３（ａ）〜（ｃ）の全ての場合にブートコード出力を停止してもよく、あるいは図３（ａ）〜（ｃ）のいずれかの場合（いずれか２つの場合を含む。）にブートコード出力を停止するようにしてもよい。
【００４９】
また、図３（ｃ）の場合において、不揮発性記憶装置１は、ホスト装置２へ、ブートコードのデータを全て出力するようにしてもよいし、あるいは、予め出力するサイズを標準化して定め、その定めたサイズのブートコードのデータを出力するようにしてもよい。あるいは、ホスト装置２が不揮発性記憶装置１へブートコードを書き込む際に、出力するデータサイズを設定できるようにしておくことも可能である。
（１．２．３：第１のシンボル、第２のシンボルのフォーマット）
次に、記憶システム１０００において、ホスト装置２が不揮発性記憶装置１へ送信する第１のシンボル、および、不揮発性記憶装置１がホスト装置２へ送信する第２のシンボルのフォーマットについて、説明する
図７は、本実施形態に係るホスト装置２および不揮発性記憶装置１が送信する第１のシンボルおよび第２のシンボルのフォーマットを説明する図である。
【００５０】
図７に示すように、本実施形態に係る第１のシンボルおよび第２のシンボルは、同期用コードを含んで構成される。
図７（ａ）の例では、第１のシンボルおよび第２のシンボルは、それぞれ、２つのコードで構成される。１つは、コンマ符号などの同期用コードである。もう一つは、Ｂｏｏｔ要求コードである。Ｂｏｏｔ要求コードは、８ｂ／１０ｂ変換したコードが使用され、Ｋコードを用いるか、あるいは、０ｘ０〜０ｘＦＦのいずれかを８ｂ／１０ｂ変換したＤコードが用いられる。なお、Ｂｏｏｔ要求コードとして用いるコードは、不揮発性記憶装置１がブートコード読み出し指示を識別できる任意のコードが使用可能である。
図７（ｂ）の例では、第１のシンボルおよび第２のシンボルは、それぞれ、同期用コードおよびＮ個（Ｎは自然数）のＢｏｏｔ要求コードで構成される。Ｂｏｏｔ要求コード１〜Ｎは、それぞれ異なるコードであってもよく、同じコードであってもよい。また、Ｂｏｏｔ要求コード１〜Ｎとして、Ｋコードを用いてもよく、また、０ｘ０〜０ｘＦＦのいずれかを８ｂ／１０ｂ変換したＤコードを用いてもよい。
【００５１】
また、図７（ｃ）の例では、第１のシンボルおよび第２のシンボルは、それぞれ、同期用コードとＢｏｏｔ要求コードとで構成される。そして、図７（ｃ）に示すように、Ｂｏｏｔ要求コードとして、複数のコード１〜Ｎが用いられる。この場合、異なるＢｏｏｔ要求コード１〜Ｎを含む第１のシンボルおよび第２のシンボルが送信される。Ｂｏｏｔ要求コード１〜Ｎは、それぞれ異なるコードであってもよいし、同じコードであってもよい。また、Ｂｏｏｔ要求コード１〜Ｎとして、Ｋコードを用いてもよいし、０ｘ０〜０ｘＦＦのいずれかを８ｂ／１０ｂ変換したＤコードを用いてもよい。
上記のように、第１のシンボルおよび第２のシンボルに同期用コードを付加するのは、ブートコード読み出しの処理の中で、ホスト装置２および不揮発性記憶装置１がデータ線ＤＡＴ０で通信される信号（データ），および、データ線ＤＡＴ１で通信される信号（データ）を正しく受信するための同期確立を同時に行うためである。
【００５２】
図７（ａ）〜（ｃ）に示したいずれの場合も、第１のシンボルおよび第２のシンボルは、所定の回数、繰り返し送信される。すなわち、ホスト装置２は、第１のシンボルを少なくとも不揮発性記憶装置１がブートコードを出力し始めるまで繰り返し不揮発性記憶装置１へ送信する。また、不揮発性記憶装置１は、第１のシンボルをホスト装置２から受信した後、ブートコードをホスト装置２へ送信するまで第２のシンボルをホスト装置２へ送信する。また、Ｂｏｏｔ要求コードは、図７（ｄ−１）に示すように、一つのコードでもよく、図７（ｄ−２）に示すように、識別子ＩＤを含むものであってもよい。
（１．２．４：データ出力方式）
次に、記憶システム１０００において、不揮発性記憶装置１がデータ線ＤＡＴ１でブートコードを送信するときの送信方式（データ出力方式）について、説明する。
【００５３】
図４は、不揮発性記憶装置１がデータ線ＤＡＴ１でブートコードをホスト装置２へ送信するときの送信方式を説明する図である。
図４（ａ）は、不揮発性記憶装置１がブートコードのデータを区切りなく連続的にホスト装置２へ送信する場合を示しており、図４（ｂ）は、不揮発性記憶装置１がブートコードを所定の長さｄｌｅｎ単位で区切ってブロック単位でホスト装置２へ送信する場合を示している。本実施形態に係る不揮発性記憶装置１は、図４（ａ）、（ｂ）のいずれかの方式でブートコードを送信するものであってもよく、あるいは両方の方式で送信することができるものであってもよい。不揮発性記憶装置１が両方の方式により送信できる場合、ホスト装置２は、予め不揮発性記憶装置１に対して図４（ａ），（ｂ）のどちらの方式でデータを送信するかを指示しておく。
【００５４】
ブロックの長さｄｌｅｎは、例えば、５１２バイトや１Ｋバイトなどであり、標準化された固定値でもよく、あるいはホスト装置２が予め不揮発性記憶装置１に設定しておいてもよい。なお、データ出力方式やブロック長をホスト装置２が予め設定する場合は、不揮発性記憶装置１は、設定された情報を不揮発な領域に保持しておく。
図１０は、不揮発性記憶装置１が出力するデータのフォーマットを説明するための図である。
図１０（ａ）に示すように、データは、Ｓｔａｒｔシンボル１００１と、ヘッダ１００２と、ペイロード１００３と、ＣＲＣ１００４と、Ｅｎｄシンボル１００５とで構成される。Ｓｔａｒｔシンボル１００１、Ｅｎｄシンボル１００５には、Ｋコードを含むシンボルが使用される。ヘッダ１００２には、送信元や送信先のＩＤ、データ種別などが含まれる。ペイロード１００３は、データの本体である。ＣＲＣ１００４は、ヘッダ１００２、ペイロード１００３の伝送路上でのエラーを検出するためのコードである。データのフォーマットは、図１０（ｂ）に示すように、ヘッダが無いフォーマットや、図１０（ｃ）に示すように、ＣＲＣも付加せず、Ｓｔａｒｔシンボル１００１、ペイロード１００３、Ｅｎｄシンボル１００５のみから構成されるフォーマットとしてもよい。
【００５５】
以上、図面を用いて説明したように、第１実施形態に係る記憶システム１０００では、ホスト装置２が第１のシンボルを不揮発性記憶装置１へ送信してブートコードの読み出しを指示すると、不揮発性記憶装置１は、第２のシンボルをホスト装置２へ送信し、ホスト装置２へブートコードを送信する準備ができると、続いてデータを出力する（ホスト装置２へ送信する）。記憶システム１０００において、第１のシンボルおよび第２のシンボルは、コンマ符号などのＫコードを用いた同期確立用の同期用コードを含むため、ブートコード読み出し処理と合わせてホスト装置２、不揮発性記憶装置１が受信データの同期確立を行うことができる。このため、記憶システム１０００では、簡便な仕組みでホスト装置２が不揮発性記憶装置１からブートコードを読み出すことができる。
［第２実施形態］
次に、第２実施形態について、説明する。
【００５６】
＜２．１：ホスト装置と不揮発性記憶装置の接続形態＞
図５は、第２実施形態に係る記憶システムにおけるホスト装置２と不揮発性記憶装置１ａ〜１ｃの接続形態を説明する図である。図５において、（ａ）はリング接続、（ｂ）はチェーン接続、（ｃ）はハブ３を介したハブ接続を示している。いずれの場合も、ホスト装置２では、信号線ＤＡＴ０でデータを送信し、信号線ＤＡＴ１でデータを受信する。また、不揮発性記憶装置１ａ〜１ｃでは、データ線ＤＡＴ０でデータを受信し、データ線ＤＡＴ１でデータを送信する。なお、図５（ｃ）のチェーン接続の場合のみ、後段の不揮発性記憶装置との間で信号の伝送をするためのＤＡＴ０出力（信号線ＤＡＴ０へデータを出力するための出力端子（出力インタフェース））、ＤＡＴ１入力（信号線ＤＡＴ０からデータを入力するための入力端子（入力インタフェース））が不揮発性記憶装置には存在する。
【００５７】
なお、図５において、クロック線ＣＬＫは図示されていないが、前述したとおり、独立した端子を用いてクロック線ＣＬＫが接続されるように、ホスト装置と各不揮発性記憶装置を接続してもよく、また、エンベデッドクロック方式を用いてホスト装置から各不揮発性記憶装へクロック信号を供給するようにしてもよい。また、本実施形態の記憶システムには、不揮発性記憶装置以外にＷＬＡＮなど各種ネットワーク装置やＩＯ装置も接続可能であり、その接続個数も限定されるものではない。以下の説明では、説明便宜のため、不揮発性記憶装置１ｂがブートコードを保持しているとする。
＜２．２：ブートコード読み出しシーケンス＞
次に、本実施形態の記憶システムにおけるブートコード読み出しシーケンスについて、説明する。
【００５８】
（２．２．１：リング接続でのブートコード読み出しシーケンス）
まず、本実施形態の記憶システムがリング接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
図６Ａは、本実施形態の記憶システムにおいて、ホスト装置２と不揮発性記憶装置１ａ〜１ｃとがリング接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
図６Ａに示すように、ホスト装置２は、ＩＦ起動信号を送信してＩＦ（インタフェース）を起動した後、同期コードを含む第１のシンボルＳ６１を不揮発性記憶装置へ送信する。第１のシンボルＳ６１は、上記において、図７を用いて説明したいずれかのコードである。
【００５９】
不揮発性記憶装置１ａは、ブートコードを保持していないため、受信した第１のシンボルＳ６１を、そのまま次のデバイス（不揮発性記憶装置１ｂ）へ送信する。
不揮発性記憶装置１ｂは、不揮発性記憶装置１ａから第１のシンボルＳ６１を受信すると、第２のシンボルＳ６２を（不揮発性記憶装置１ｃへ）送信し、ブートコードを出力する準備が出来ると、続けてブートコードＳ６３を（不揮発性記憶装置１ｃへ）出力する。
不揮発性記憶装置１ｃは、ブートコードを保持しないため、不揮発性記憶装置１ｂから受信した第２のシンボルＳ６２およびブートコードＳ６３をそのままホスト装置２へ送信する。
このようにして、本実施形態の記憶システム（リング接続形態）では、ホスト装置２は不揮発性記憶装置１ｂが送信した第２のシンボルＳ６２とブートコードＳ６３を受信し、システムの起動処理を行うことができる。
【００６０】
なお、図６Ａでは第１のシンボルＳ６１および第２のシンボルＳ６２は、１つしか図示していないが、図２Ａおよび図２Ｂを用いて説明したのと同様のシーケンスが実行されるように、繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図３、４および１０を用いて説明したのと同様である。
（２．２．２：チェーン接続）
次に、本実施形態の記憶システムがチェーン接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
図６Ｂは、本実施形態の記憶システムにおいて、ホスト装置２と不揮発性記憶装置１ａ〜１ｃとがチェーン接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
【００６１】
図６Ｂに示すように、ホスト装置２は、ＩＦ起動信号を送信してＩＦ（インタフェース）を起動した後、第１のシンボルＳ６１を不揮発性記憶装置１ａに送信する。第１のシンボルＳ６１は、上記で図７を用いて説明したいずれかのコードである。
不揮発性記憶装置１ａは、ブートコードを保持していないため、ホスト装置２から受信した第１のシンボルＳ６１を、そのまま次のデバイス（不揮発性記憶装置１ｂ）へ送信する。
不揮発性記憶装置１ｂは、不揮発性記憶装置１ａから第１のシンボルＳ６１を受信すると、第２のシンボルＳ６２を不揮発性記憶装置１ａに送信し、ブートコードを出力する準備が出来ると、続けてブートコードＳ６３を不揮発性記憶装置１ａに出力する。このとき不揮発性記憶装置１ｃへは第２のシンボルおよびブートコードを送信しない。
【００６２】
不揮発性記憶装置１ａは、不揮発性記憶装置１ｂから受信した第２のシンボルＳ６２およびブートコードＳ６３をそのままホスト装置２へ送信する。
このようにして、本実施形態の記憶システム（チェーン接続形態）では、ホスト装置２は、不揮発性記憶装置１ｂが送信した第２のシンボルＳ６２とブートコードＳ６３を受信し、システムの起動処理を行うことができる。
なお、図６Ｂでは、第１のシンボルおよび第２のシンボルは１つしか図示していないが、上記で図２を用いて説明したのと同様に、第１のシンボルおよび第２のシンボルは繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図３、４および１０を用いて説明したのと同様である。
（２．２．３：ハブ接続）
次に、本実施形態の記憶システムがハブ接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
【００６３】
図６Ｃは、本実施形態の記憶システムにおいて、ホスト装置２と不揮発性記憶装置１ａ〜１ｃとがハブ３を介してハブ接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
図６Ｃに示すように、ホスト装置２は、ＩＦ起動信号を、ハブ３を介して各不揮発性記憶装置へ送信してＩＦ（インタフェース）を起動した後、第１のシンボルＳ６１を、ハブを介して各不揮発性記憶装置へ送信する。第１のシンボルＳ６１は、上記で図７を用いて説明したいずれかのコードである。
ハブ３は、不揮発性記憶装置１ａ〜１ｃへ、ホスト装置２から受信した第１のシンボルＳ６１を送信する。
不揮発性記憶装置１ａ、１ｃは、ブートコードを保持しないため、ハブ３から受信した第１のシンボルＳ６１を、そのままハブ３へ送信する。
【００６４】
不揮発性記憶装置１ｂは、第１のシンボルＳ６１を受信すると、第２のシンボルＳ６２をハブ３へ送信し、ブートコードを出力する準備が出来ると、続けてブートコードＳ６３をハブ３へ出力する。
ハブ３は、不揮発性記憶装置１ｂから受信した第２のシンボルＳ６２とブートコードＳ６３をホスト装置２へ送信する。
このようにして、本実施形態の記憶システム（ハブ接続形態）では、ホスト装置２は不揮発性記憶装置１ｂが送信した第２のシンボルＳ６２とブートコードＳ６３を受信し、システムの起動処理を行うことができる。
なお、図６Ｃでは、第１のシンボル及び第２のシンボルは１つしか図示していないが、上記で図２を用いて説明したのと同様に、第１のシンボル及び第２のシンボルは繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図３、４および１０を用いて説明したのと同様である。
【００６５】
また、図６Ｃでは、ブートコードを保持しない不揮発性記憶装置１ａ，１ｃは、受信した第１のシンボルをそのまま出力する場合について説明したが、これに限定されることはなく、例えば、ブートコードを保持しない不揮発性記憶装置が第１のシンボルを受信しても、何も出力しないようにしてもよい。あるいは、ハブ３に予めブートコードを保持する不揮発性記憶装置が接続されたポートを指定しておき、ハブ３は、ホスト装置２から受信した第１のシンボルを、当該予め指定されたポートに基づいて、ブートコードを保持する不揮発性記憶装置のみに送信するようにしてもよい。
また、図６Ａ、図６Ｂでは、不揮発性記憶装置１ｂがブートコードを保持するとして説明したが、リング接続およびチェーン接続の場合は、図１１（ａ），（ｂ）に示すように、ホスト装置２の受信端（信号線ＤＡＴ１の入力端子（入力インタフェース））に最も近い不揮発性記憶装置（図１１（ａ）の不揮発性記憶装置１ｃおよび図１１（ｂ）の不揮発性記憶装置１ａがこれに該当。）に保持することが望ましい。すなわち、リング接続の場合は、図１１（ａ）に示すように、不揮発性記憶装置１ｃがブートコードを保持するのが好ましく、チェーン接続の場合は、図１１（ｂ）に示すように、不揮発性記憶装置１ａがブートコードを保持することが好ましい。このようにすることで、ホスト装置の受信する第２のシンボルおよびブートコードの伝送経路が最短となり、記憶システムにおいて、信号品質を高めることができ、好適である。
【００６６】
以上、図面を用いて説明したように、第２実施形態に係る記憶システムでは、ホスト装置が第１のシンボルを送信してブートコードの読み出しを指示すると、（１）ブートコードを保持しない不揮発性記憶装置は、受信した第１のシンボル、第２のシンボルまたはブートコードデータをそのまま送信し、（２）ブートコードを保持する不揮発性記憶装置は、第２のシンボルを送信した後、ブートコードを送信する準備ができると、続いてデータを出力する。このようにすることで、第２実施形態に係る記憶システムでは、接続形態がリング接続、チェーン接続およびハブ接続のいずれの接続形態であっても、ホスト装置、不揮発性記憶装置個々の動作を、第１実施形態に係る記憶システムのホスト装置、不揮発性記憶装置と同様の動作にすることができる。その結果、第２実施形態の記憶システムでは、ホスト装置と複数の不揮発性記憶装置とをどのように接続した場合であっても、簡便な仕組みで、かつ、効率良く、ホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。
【００６７】
［第３実施形態］
次に、第３実施形態について、説明する。
図８Ａ〜Ｃは、第３実施形態に係る記憶システムにおけるホスト装置２と不揮発性記憶装置１ａ〜１ｃとの動作を説明するための図である。図８Ａ〜Ｃにおいて、不揮発性記憶装置１ａおよび１ｂがブートコードを保持するものとする。
＜３．１：不揮発性記憶装置の構成＞
まず、本実施形態の記憶システムの不揮発性記憶装置の構成について、説明する。
図８Ａは、本実施形態に係る不揮発性記憶装置の構成を説明するための図である。
図８Ａに示すように、不揮発性記憶装置１ａ〜１ｃは、それぞれ、第１のブートデバイスフラグ８１、および、第２のブートデバイスフラグ８２を保持している。
【００６８】
不揮発性記憶装置１ａは、第２のブートデバイスフラグ８２が「１」となっており、不揮発性記憶装置１ｂは、第１のブートデバイスフラグ８１が「１」となっている。また、不揮発性記憶装置１ｃは、ブートコードを保持しておらず、第１のブートデバイスフラグ、第２のブートデバイスフラグともに「０」である。これらのフラグは、ブートコードを保持する不揮発性記憶装置が複数存在する場合に、ブートコードを送信する不揮発性記憶装置を識別するために使用する。なお、フラグは２つに限定されず、システムに含まれるブートコードを保持するデバイスの数だけ持つことができる。また、フラグは、ビット単位のフラグに限定されることはなく、例えば、４ビットのフラグを規定して、最大１６個の不揮発性記憶装置を識別するようにし、当該４ビットのフラグにより、ブートコードを保持する不揮発性記憶装置を識別するようにしてもよい（例えば、１６個の不揮発性記憶装置＃０〜＃１５に、それぞれ、ＩＤ０ｘ０〜０ｘＦ（４ビットのフラグによるＩＤ）を割り当て、例えば、不揮発性記憶装置＃２のブートコードを読み出す場合、ブート要求コードに「０ｘ２」を設定することで、不揮発性記憶装置＃２からブートコードを読み出すことができる）。また当該フラグは予め設定される不揮発な情報であり、不揮発性記憶装置では不揮発性メモリ１２やその他ＲＯＭ、ＥＥＰＲＯＭなどに保持してもよく、あるいは端子で設定するようにしてもよい。
【００６９】
＜３．２：ブート要求コードの構成＞
次に、本実施形態におけるブート要求コードについて、説明する。
図７（ｄ−２）は、本実施形態に係るホスト装置が送信する第１のシンボル中のＢｏｏｔ要求コードを説明するための図である。図７（ｄ−２）では、第１のシンボルは、Ｄコードを用いて表され、一部に識別子ＩＤを含む。
＜３．３：ブートコード読み出しシーケンス＞
次に、本実施形態の記憶システムにおけるブートコード読み出しシーケンスについて、説明する。
図８Ｂ、図８Ｃは、本実施形態に係る記憶システムにおけるブートコード読み出しシーケンスを説明するための図である。
【００７０】
まず、図８Ｂの場合について、説明する。
図８Ｂに示すように、ホスト装置２は、第１のシンボルＳ８１を不揮発性記憶装置１ａに送信する。このとき、Ｂｏｏｔ要求コードのＩＤには、第１のブートデバイスを示す“０”が設定されているので、第１のブートデバイスフラグが”１”である不揮発性記憶装置１ｂは、図８Ｂに示すように、第２のシンボルＳ８２に続いて、ブートコードＳ８３を送信する。
なお、第１のブートデバイスフラグが”０”である不揮発性記憶装置１ａ、１ｃは、受信した第１のシンボルＳ８１、第２のシンボルＳ８２，ブートコードＳ８３をそのまま送信する。
次に、図８Ｃの場合について、説明する。
【００７１】
図８Ｃに示すように、ホスト装置２は、第１のシンボルＳ８４を不揮発性記憶装置１ａへ送信する。このとき、Ｂｏｏｔ要求コードのＩＤには、第２のブートデバイスを示す“１”が設定されているので、第２のブートデバイスフラグが”１”である不揮発性記憶装置１ａは、図８Ｃに示すように、第２のシンボルＳ８５に続いて、ブートコードＳ８６を送信する。
なお、第２のブートデバイスフラグが”０”である不揮発性記憶装置１ｂ、１ｃは、受信した第２のシンボルＳ８５、ブートコードＳ８６をそのまま送信する。
以上、図面を用いて説明したように、第３実施形態に係る記憶システムでは、ホスト装置が第１のシンボルを送信するときに、Ｂｏｏｔ要求コードに識別子ＩＤをつけて送信し、不揮発性記憶装置は、（１）当該識別子ＩＤが自身のブートデバイスフラグの設定と一致している場合、保持するブートコードを送信し、（２）それ以外の場合、受信した第１のシンボル、第２のシンボル、ブートコードをそのまま送信する。
【００７２】
このように、本実施形態の記憶システムでは、複数の不揮発性記憶装置がブートコードを保持する場合でも、各不揮発性記憶装置にはブートデバイスフラグが設定されているので、ホスト装置は、識別子ＩＤを第１のシンボルに付加することで、所望の不揮発性記憶装置からブートコードを読み出すことができる。したがって、本実施形態の記憶システムでは、ホスト装置と複数の不揮発性記憶装置とを接続した場合であっても、簡便な仕組みで、ホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。
［他の実施形態］
以上、図面を用いて本発明の実施形態を説明したが、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。例えば、第１のシンボルおよび第２のシンボルは、同期確立用コードを含むものであれば、Ｂｏｏｔ要求コードとして、不揮発性記憶装置がブートコード読み出しを認識することができる任意のコードを使用することができる。
【００７３】
また、記憶システムにおいて、不揮発性記憶装置の数は、１以上の任意の数が可能であり、１対１接続の場合でも、複数の不揮発性記憶装置が接続される場合（１対Ｎ接続の場合）でも同様の処理でブートコードを読み出すことが可能である。さらに、複数の不揮発性記憶装置の接続形態は、上記で説明した内容に限られるものではなく、様々な接続形態が可能である。
なお、上記実施形態で説明したホスト装置および不揮発性記憶装置において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００７４】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【００７５】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係るホスト装置および不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【００７６】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕｅ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
また、上記実施形態において、ホスト装置と不揮発性記憶装置とは、別装置である場合について説明したが、これに限定されることはなく、ホスト装置と不揮発性記憶装置とは、１つの装置内に構成されるものであってもよい。また、ホスト装置は、ホストモジュールを含む概念であり、不揮発性記憶装置は、不揮発性記憶モジュールを含む概念である。
【００７７】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【００７８】
本発明によると、ホスト装置と複数の不揮発性記憶装置で構成される記憶システムにおいて、ホスト装置と複数の不揮発性記憶装置とを接続した簡便な仕組みでホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。本発明を適用することで、例えば、ホスト装置としてのシステムＬＳＩと、不揮発性記憶装置としてのＩＯデバイスやメモリ装置とを複数接続して構成する記憶システムにおいて、ブートコード読み出しを効率的に行うことができる。したがって、本発明は、記憶システム関連分野において、有用であり、当該分野において、実施することができる。
【符号の説明】
【００７９】
１０００  記憶システム
１  不揮発性記憶装置
２  ホスト装置
３  ハブ
１１  コントローラ部
１２  不揮発性メモリ
１１１  ホストＩＦ部
１１２  メモリ制御部
１ａ、１ｂ、１ｃ  不揮発性記憶装置
２１  記憶装置ＩＦ部
２２  ＣＰＵ
２３  主記憶
２４  周辺回路
２５  ブート制御部
８１  第１のブートデバイスフラグ
８２  第２のブートデバイスフラグ
【図１】
2011070747.tif 000003
【図２Ａ】
2011070747.tif 000004
【図２Ｂ】
2011070747.tif 000005
【図３】
2011070747.tif 000006
【図４】
2011070747.tif 000007
【図５】
2011070747.tif 000008
【図６Ａ】
2011070747.tif 000009
【図６Ｂ】
2011070747.tif 000010
【図６Ｃ】
2011070747.tif 000011
【図７】
2011070747.tif 000012
【図８Ａ】
2011070747.tif 000013
【図８Ｂ】
2011070747.tif 000014
【図８Ｃ】
2011070747.tif 000015
【図９】
2011070747.tif 000016
【図１０】
2011070747.tif 000017
【図１１】
2011070747.tif 000018
【手続補正書】
【提出日】平成23年6月27日(2011.6.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホスト装置との間でデータの送受信を行う不揮発性記憶装置であって、
１または複数の不揮発性メモリと、
前記不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部と、
を備え、
前記コントローラ部は、
ホストＩＦ部と、
前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、
を含み、
前記ホストＩＦ部は、
（１）前記ホスト装置からインタフェースの起動を指示する信号であるインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信し、
（２）前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルを前記ホスト装置へ送信し、
（３）前記第１のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力する、
不揮発性記憶装置。
【請求項２】
前記ホストＩＦ部は、
前記ホスト装置から前記第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルを前記ホスト装置へ送信し、
前記同期シンボル送信後に前記ホスト装置からアイドルシンボルを受信すると、前記ホスト装置へアイドルシンボルを送信し、
前記コントローラ部は、
前記ホストＩＦ部が前記アイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にし、
前記ホストＩＦ部は、
前記ホストＩＦ部が前記アイドルシンボル送信し、前記コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力する、
請求項１に記載の不揮発性記憶装置
【請求項３】
前記ホストＩＦ部は、
前記ホスト装置が送信したデータを８ｂ／１０復号化して受信し、ホスト装置へデータを８ｂ／１０ｂ符号化して送信するものであり、
（１）前記ホスト装置から受信データとして同期コードを含むシンボルを受信すると、前記受信データと前記受信データを受信するためのクロック信号の位相を合わせて同期を確立させ、
（２）前記クロック信号と前記受信データとの同期を確立させた後に、前記ホスト装置から同期コードを含む第１のシンボルを受信すると、受信したのと同じ第１のシンボルを前記ホスト装置へ送信し、当該第１のシンボルの送信後、前記メモリ制御部が前記不揮発性メモリから読み出したブートコードをホスト装置へ送信する、
請求項１または２に記載の不揮発性記憶装置。
【請求項４】
前記ホストＩＦ部は、所定のサイズのデータを送信したらブートコードの送信を終了する、
請求項１から３のいずれかに記載の不揮発性記憶装置。
【請求項５】
前記ホストＩＦ部は、ブートコードのデータを所定の長さのブロック単位で分割して送信する、
請求項１から４のいずれかに記載の不揮発性記憶装置。
【請求項６】
前記ホストＩＦ部は、自装置がブートコードを保持しない場合は、受信した前記同期コードを含む第１のシンボルをそのまま送信し、
前記コントローラ部は、前記ホストＩＦ部が、自装置がブートコードを保持しない場合であって、受信した前記同期コードを含む第１のシンボルをそのまま送信した場合、自装置の状態がアイドル状態のまま保持されるように、当該自装置を制御する、
請求項１から５のいずれかに記載の不揮発性記憶装置。
【請求項７】
１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムのホスト装置であって、
ホスト装置の全部又は一部を制御する制御部と、
不揮発性記憶装置ＩＦ部と、
を備え、
前記不揮発性記憶装置ＩＦ部は、
（１）インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信し、
（２）前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを前記不揮発性記憶装置へ送信し、
（３）前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信する、
ホスト装置。
【請求項８】
前記不揮発性記憶装置ＩＦ部が、前記第１のシンボルを不揮発性記憶装置へ送信した場合であって、
前記不揮発性記憶装置ＩＦ部が、前記不揮発性記憶装置から、送信した前記第１のシンボルと同一のデータを受信した場合、あるいは、送信した前記第１のシンボルに応答するデータを受信した場合、
（１）前記不揮発性記憶装置ＩＦ部は、前記不揮発性記憶装置へアイドルシンボルを送信し、
（２）前記制御部は、前記不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し前記不揮発性記憶装置からアイドルシンボルを受信した場合、ホスト装置の状態をアイドル状態にし、
（３）前記不揮発性記憶装置ＩＦ部は、前記制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、前記ブートコードの受信状況を示すステータス情報を、前記不揮発性記憶装置へ送信する、
請求項７に記載のホスト装置。
【請求項９】
ホスト装置と１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムであって、
前記ホスト装置は、
ホスト装置の全部又は一部を制御する制御部と、
不揮発性記憶装置ＩＦ部と、
を備え、
前記不揮発性記憶装置は、
１または複数の不揮発性メモリと、
前記不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部と、
を備え、
前記コントローラ部は、
ホストＩＦ部と、
前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、
を含み、
（Ｈ１）前記不揮発性記憶装置ＩＦ部は、インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信し、
（Ｓ１）前記ホストＩＦ部は、前記ホスト装置から前記インタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信し、
（Ｈ２）前記不揮発性記憶装置ＩＦ部は、前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを前記不揮発性記憶装置へ送信し、
（Ｓ２）前記ホストＩＦ部は、前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルを前記ホスト装置へ送信し、
（Ｓ３）前記ホストＩＦ部は、前記第１のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力し、
（Ｈ３）前記不揮発性記憶装置ＩＦ部は、前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信する、
記憶システム。
【請求項１０】
（ＨＨ１）前記不揮発性記憶装置ＩＦ部は、前記第１のシンボルを不揮発性記憶装置へ送信し、
（ＳＳ１）前記ホストＩＦ部は、前記ホスト装置から前記第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルを前記ホスト装置へ送信し、
（ＨＨ２）前記不揮発性記憶装置ＩＦ部が、前記不揮発性記憶装置から、送信した前記第１のシンボルと同一のデータを受信した場合、あるいは、送信した前記第１のシンボルに応答するデータを受信した場合、前記不揮発性記憶装置ＩＦ部は、前記不揮発性記憶装置へアイドルシンボルを送信し、
（ＨＨ３）前記ホスト装置の前記制御部は、前記不揮発性記憶装置ＩＦ部がアイドルシンボルを送信した後、前記ホスト装置の状態をアイドル状態にし、
（ＳＳ２）前記ホストＩＦ部は、前記ホスト装置へ前記同期シンボル送信後に前記ホスト装置からアイドルシンボルを受信すると、前記ホスト装置へアイドルシンボルを送信し、
（ＳＳ３）前記不揮発性記憶装置の前記コントローラ部は、前記ホストＩＦ部が前記アイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする、
請求項９に記載の記憶システム。
【請求項１１】
前記ホストＩＦ部は、
前記ホストＩＦ部が前記アイドルシンボル送信し、前記コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力し、
前記不揮発性記憶装置ＩＦ部は、
前記不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し、前記制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、
前記ブートコードの受信状況を示すステータス情報を、前記不揮発性記憶装置へ送信する、
請求項１０に記載の記憶システム。
【請求項１２】
前記不揮発性記憶装置は、所定サイズのデータを送信すると前記ブートコードの送信を終了し、
前記ホスト装置は、所定のサイズのブートコードデータを受信すると、前記不揮発性記憶装置のブートコードの送信が終了したと判断する、
請求項９から１１のいずれかに記載の記憶システム。
【請求項１３】
前記ホスト装置は、前記不揮発性記憶装置が前記ブートコードのデータを所定の長さのブロック単位で送信した場合、該ブートコードのデータを受信する、
請求項９から１１のいずれかに記載の記憶システム。
【請求項１４】
前記不揮発性記憶装置は、ブートコードを保持しない場合は、受信した同期コードを含む第１のシンボルをそのまま送信し、
前記ホスト装置は、所定の回数または所定の時間同期コードを含む第１のシンボルを送信した後、前記ブートコードのデータを受信しない場合、前記不揮発性記憶装置がブートコードを保持しないと判定する、
請求項９から１１のいずれかに記載の記憶システム。
【請求項１５】
前記第１のシンボルは、ブートデバイス識別子を含み、
前記ホスト装置は、
前記同期コードを含む第１のシンボルに、前記ブートコードを出力する前記不揮発性記憶装置を指定する前記ブートデバイス識別子を付加して送信し、
前記不揮発性記憶装置は、
第１のブートデバイスフラグ情報と第２のブートデバイスフラグ情報とを格納する格納部を備え、
前記同期コードを含む第１のシンボルを受信すると、前記受信した同期コードを含む第１のシンボルに含まれる前記ブートデバイス識別子に基づいてブートコードを送信するか否かを判定する、
請求項９から１４のいずれかに記載の記憶システム。
【請求項１６】
前記ホスト装置と前記１または複数の不揮発性記憶装置とは、リング接続される、
請求項９から１５のいずれかに記載の記憶システム。
【請求項１７】
前記ホスト装置と前記１または複数の不揮発性記憶装置とは、ハブを介してハブ接続される、
請求項９から１５のいずれかに記載の記憶システム。
【請求項１８】
ホスト装置と１または複数の不揮発性記憶装置との間でのデータ通信方法であって、
前記ホスト装置の全部又は一部を制御する制御部と、
不揮発性記憶装置ＩＦ部と、
を備える前記ホスト装置と、
１または複数の不揮発性メモリと、
ホストＩＦ部と、
前記不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部であって、前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含むコントローラ部と、
を備える前記１または複数の不揮発性記憶装置と、
の間のデータ通信方法であって、
（Ｈ１）前記不揮発性記憶装置ＩＦ部が、インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信するステップと、
（Ｓ１）前記ホストＩＦ部が、前記ホスト装置から前記インタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信するステップと、
（Ｈ２）前記不揮発性記憶装置ＩＦ部が、前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを前記不揮発性記憶装置へ送信するステップと、
（Ｓ２）前記ホストＩＦ部が、前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルを前記ホスト装置へ送信するステップと、
（Ｓ３）前記ホストＩＦ部が、前記第１のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力するステップと、
（Ｈ３）前記不揮発性記憶装置ＩＦ部が、前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信するステップと、
を備えるデータ通信方法。
【請求項１９】
請求項１８に記載のデータ通信方法をコンピュータに実行させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置と１以上の不揮発性記憶装置とを含んで構成され、ホスト装置の指示に不揮発性記憶装置が応答してデータの書き込みおよび／または読み出しを行う記憶システムに関し、特にホスト装置が不揮発性記憶装置に保持したブートコードを読み出す方法に関する。
【背景技術】
【０００２】
従来から、ホスト装置と１以上の不揮発性記憶装置を接続し、ホスト装置の発行するコマンドに不揮発性記憶装置が応答して各種通信を行う記憶システムが知られている。このような記憶システムにおいて、システム起動時にホスト装置は当該記憶システムに接続された不揮発性記憶装置から当該記憶システムを起動するためのブートコードと呼ばれるプログラムを読み出す処理が必要である。このようなプログラムは、従来、ＮＯＲ型フラッシュメモリに保持されていたが、近年、ＮＡＮＤ型フラッシュメモリやＮＡＮＤ型フラッシュメモリを用いた不揮発性記憶装置の大容量化・低コスト化に伴い、ブートコードをこのようなＮＡＮＤ型フラッシュメモリやＮＡＮＤ型フラッシュメモリを用いた不揮発性記憶装置に保持し、システム起動時に読み出すことが行われるようになっている。通常、ＮＡＮＤ型フラッシュメモリやＮＡＮＤ型フラッシュメモリを用いた不揮発性記憶装置では、コマンドを用いてデータの読み出しや書き込みを行うが、ブートコードの読み出しは、システム起動時のソフトが起動していない状態で行う必要がある。このため、記憶システムにおいて、ブートコードをできるだけ簡便な方法で読み出すことが必要となる。
【０００３】
例えば、特許文献１には、ＳＤ／ＭＭＣインタフェースを持つデバイスに対して、ＳＤ／ＭＭＣインタフェースのコマンド用信号線を用いて、起動時にブートコードを読み出す技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００９-５２４１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、ホスト装置の備える端子数が増加しており、不揮発性記憶装置を含む複数のデバイスをチェーン接続、リング接続、あるいはハブ接続により接続し、ホスト装置の端子数を増やすことなく構成した記憶システムが必要となっている。このようなシステムでは、不揮発性記憶装置に加え無線ＬＡＮ装置など各種ネットワーク装置やＩ／Ｏ装置が接続される。また、扱うデータ量の増大と高ビットレート化に伴い、ホスト装置と不揮発性記憶装置とのインタフェースも従来のシングルエンド方式用のインタフェースではなく、差動シリアル方式を用いてデータの送受信を行うためのインタフェースが採用されることが多くなってきている。
【０００６】
しかし、特許文献１に開示された従来技術では、ＳＤ／ＭＭＣインタフェースを用いるため、複数のデバイスを接続することができない。また、上記従来技術では、差動シリアル方式でデータの転送を行う場合に必要となる、差動シリアルインタフェースの起動や、受信データとクロックの同期確立などの処理も考慮されていないため、高速なインタフェースを備えるホスト装置と不揮発性記憶装置とを複数接続した記憶システムに、上記従来技術を適用することができない。
【０００７】
本発明は、以上の問題点を解決し、ホスト装置と１以上の不揮発性記憶装置とを含む記憶システムにおいて、ホスト装置が簡便な方法で不揮発性記憶装置のブートコードを読み出すことが可能な、不揮発性記憶装置、ホスト装置および記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の発明は、ホスト装置との間でデータの送受信を行う不揮発性記憶装置であって、１または複数の不揮発性メモリと、コントローラ部と、を備える。
【０００９】
コントローラ部は、不揮発性メモリのデータの読み出しおよび／または書き込みを制御する。
【００１０】
コントローラ部は、ホストＩＦ部と、メモリ制御部とを含む。
【００１１】
メモリ制御部は、不揮発性メモリからホスト装置のブートコードを読み出す。
【００１２】
ホストＩＦ部は、
（１）ホスト装置からインタフェースの起動を指示する信号であるインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信し、
（２）インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルをホスト装置へ送信し、
（３）第１のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
【００１３】
この不揮発性記憶装置では、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信された信号と同じ信号をホスト装置に送信するだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、個々の不揮発性記憶装置は、上記と同様の処理を行うだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
【００１４】
したがって、この不揮発性記憶装置を、ホスト装置と１以上の不揮発性記憶装置とを含む記憶システムに用いることで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。
【００１５】
なお、「インタフェース起動信号」とは、不揮発性記憶装置のインタフェース起動処理を行うための信号であり、不揮発性記憶装置は、インタフェース起動信号を受信することで、インタフェース起動処理を実行し、外部（例えば、ホスト装置や自装置以外の不揮発性記憶装置）とのデータ通信が可能な状態にする。
【００１６】
また、「同じ」信号（あるいはシンボル）とは、その信号（あるいはシンボル）が搬送する論理的な情報が同一であることをいい、例えば、第１のシンボルと同じシンボルとは、第１のシンボルが同期用コードとＢｏｏｔ要求コードからなる場合、当該同期用コードとＢｏｏｔ要求コードが同一であることを意味する。
【００１７】
第２の発明は、第１の発明であって、ホストＩＦ部は、ホスト装置から第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルをホスト装置へ送信し、同期シンボル送信後にホスト装置からアイドルシンボルを受信すると、ホスト装置へアイドルシンボルを送信する。
【００１８】
コントローラ部は、ホストＩＦ部がアイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする。
【００１９】
ホストＩＦ部は、ホストＩＦ部がアイドルシンボル送信し、コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
【００２０】
この不揮発性記憶装置では、第１のシンボルを受信した場合に、アイドルシンボルをホスト装置へ送信し、さらに、ホスト装置からアイドルシンボルを受信した場合、自装置（不揮発性記憶装置）がアイドル状態となるように制御される。これにより、この不揮発性記憶装置では、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードをホスト装置へ送信することができる。したがって、確実かつ適切に、不揮発性記憶装置からホスト装置へブートコードを送信することができる。
【００２１】
なお、「アイドル状態」とは、起動処理が完了し、利用可能であるが何の処理も実行されていない状態をいう。
【００２２】
第３の発明は、第１または第２の発明であって、ホストＩＦ部は、ホスト装置が送信したデータを８ｂ／１０ｂ復号化して受信し、ホスト装置へデータを８ｂ／１０ｂ符号化して送信するものである。
【００２３】
そして、ホストＩＦ部は、
（１）ホスト装置から受信データとして同期コードを含むシンボルを受信すると、受信データと受信データを受信するためのクロック信号の位相を合わせて同期を確立させ、
（２）クロック信号と受信データとの同期を確立させた後に、ホスト装置から同期コードを含む第１のシンボルを受信すると、受信したのと同じ第１のシンボルをホスト装置へ送信し、当該第１のシンボルの送信後、メモリ制御部が不揮発性メモリから読み出したブートコードをホスト装置へ送信する。
【００２４】
これにより、この不揮発性記憶装置では、８ｂ／１０ｂ符号を用いて、簡単に、同期確立処理を行うことができる。
【００２５】
第４の発明は、第１から第３のいずれかの発明であって、ホストＩＦ部は、所定のサイズのデータを送信したらブートコードの送信を終了する。
【００２６】
第５の発明は、第１から第４のいずれかの発明であって、ホストＩＦ部は、ブートコードのデータを所定の長さのブロック単位で分割して送信する。
【００２７】
第６の発明は、第１から第５のいずれかの発明であって、ホストＩＦ部は、自装置がブートコードを保持しない場合は、受信した同期コードを含む第１のシンボルをそのまま送信する。
【００２８】
コントローラ部は、ホストＩＦ部が、自装置がブートコードを保持しない場合であって、受信した同期コードを含む第１のシンボルをそのまま送信した場合、自装置の状態がアイドル状態のまま保持されるように、当該自装置を制御する、
なお、「送信する」とは、目的の装置（例えば、ホスト装置）へ向かってデータを送信することを含む概念であり、例えば、目的の装置までの通信経路の途中に、目的外の装置があり、その装置を経由して、目的の装置にデータを送信することを含む概念である。
【００２９】
また、「そのまま送信する」とは、受信したデータ（信号）と同一のデータ（信号）を、自装置（不揮発性記憶装置）の外部に送信することを含む概念である。
【００３０】
第７の発明は、１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムのホスト装置であって、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置ＩＦ部と、を備える。
【００３１】
不揮発性記憶装置ＩＦ部は、
（１）インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信し、
（２）インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第１のシンボルを不揮発性記憶装置へ送信し、
（３）不揮発性記憶装置から、不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信する。
【００３２】
このホスト装置では、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信した信号と同じ信号を不揮発性記憶装置から受信することで、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、ホスト装置は、個々の不揮発性記憶装置に対して、上記と同様の処理を行うだけでよいので、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
【００３３】
したがって、このホスト装置を、ホスト装置と１以上の不揮発性記憶装置とを含む記憶システムに用いることで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。
【００３４】
第８の発明は、第７の発明であって、不揮発性記憶装置ＩＦ部が、第１のシンボルを不揮発性記憶装置へ送信した場合であって、不揮発性記憶装置ＩＦ部が、不揮発性記憶装置から、送信した第１のシンボルと同一のデータを受信した場合、あるいは、送信した第１のシンボルに応答するデータを受信した場合、
（１）不揮発性記憶装置ＩＦ部は、不揮発性記憶装置へアイドルシンボルを送信し、
（２）制御部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し不揮発性記憶装置からアイドルシンボルを受信した場合、ホスト装置の状態をアイドル状態にする。
（３）不揮発性記憶装置ＩＦ部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し、制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信する。
【００３５】
このホスト装置では、第１のシンボルを不揮発性記憶装置へ送信し、不揮発性記憶装置からアイドルシンボルを受信すると、自装置（ホスト装置）をアイドル状態となるように制御される。これにより、このホスト装置では、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードを不揮発性記憶装置から受信することができる。したがって、このホスト装置では、確実かつ適切に、不揮発性記憶装置から送信されてくるブートコードを受信することができる。
【００３６】
第９の発明は、ホスト装置と１または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムである。
【００３７】
前記ホスト装置は、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置ＩＦ部と、を備える。
【００３８】
前記不揮発性記憶装置は、１または複数の不揮発性メモリと、不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部と、を備える。
【００３９】
前記コントローラ部は、ホストＩＦ部と、不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含む。
【００４０】
そして、この記憶システムは、以下の処理を行う。
（Ｈ１）不揮発性記憶装置ＩＦ部は、インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信する。
（Ｓ１）ホストＩＦ部は、ホスト装置からインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信する。
（Ｈ２）不揮発性記憶装置ＩＦ部は、インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第１のシンボルを不揮発性記憶装置へ送信する。
（Ｓ２）ホストＩＦ部は、インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルをホスト装置へ送信する。
（Ｓ３）ホストＩＦ部は、第１のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
（Ｈ３）不揮発性記憶装置ＩＦ部は、不揮発性記憶装置から、不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信する。
【００４１】
この記憶システムでは、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信された信号と同じ信号をホスト装置に送信するだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、個々の不揮発性記憶装置は、上記と同様の処理を行うだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
【００４２】
したがって、この記憶システムでは、ホスト装置と１以上の不揮発性記憶装置とを含む場合であっても、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。
【００４３】
第１０の発明は、第９の発明であって、以下の処理を行う。
（ＨＨ１）不揮発性記憶装置ＩＦ部は、第１のシンボルを不揮発性記憶装置へ送信する。
（ＳＳ１）ホストＩＦ部は、ホスト装置から第１のシンボルを受信した場合、該受信した第１のシンボルと同じまたは異なる同期シンボルをホスト装置へ送信する。
（ＨＨ２）不揮発性記憶装置ＩＦ部が、不揮発性記憶装置から、送信した第１のシンボルと同一のデータを受信した場合、あるいは、送信した第１のシンボルに応答するデータを受信した場合、不揮発性記憶装置ＩＦ部は、不揮発性記憶装置へアイドルシンボルを送信する。
（ＨＨ３）ホスト装置の制御部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信した後、ホスト装置の状態をアイドル状態にする。
（ＳＳ２）ホストＩＦ部は、ホスト装置へ同期シンボル送信後にホスト装置からアイドルシンボルを受信すると、ホスト装置へアイドルシンボルを送信する。
（ＳＳ３）不揮発性記憶装置のコントローラ部は、ホストＩＦ部がアイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする。
【００４４】
この記憶システムでは、第１のシンボルを受信した場合に、ホスト装置をアイドル状態にするためのアイドルシンボルをホスト装置へ送信し、自装置（不揮発性記憶装置）もアイドル状態となるように制御される。これにより、この記憶システムでは、簡単な方法で、ホスト装置および不揮発性記憶装置の両方をアイドル状態にし、ブートコードを送信する準備を行うことができる。
【００４５】
第１１の発明は、第１０の発明であって、ホストＩＦ部は、ホストＩＦ部がアイドルシンボル送信し、コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
【００４６】
不揮発性記憶装置ＩＦ部は、不揮発性記憶装置ＩＦ部がアイドルシンボルを送信し、制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信する。
【００４７】
これにより、この記憶システムでは、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードをホスト装置へ送信することができる。さらに、この記憶システムでは、ホスト装置が、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信するので、ブートコードが正しく不揮発性記憶装置からホスト装置へ送信されたか否かを知ることができる（例えば、このステータスを使って、ブートコードの再送処理等を行うこともできる）。
【００４８】
したがって、この記憶システムでは、確実かつ適切に、不揮発性記憶装置からホスト装置へブートコードを送信することができる。
【００４９】
第１２の発明は、第９から第１１のいずれかの発明であって、不揮発性記憶装置は、所定サイズのデータを送信するとブートコードの送信を終了し、ホスト装置は、所定のサイズのブートコードデータを受信すると、不揮発性記憶装置のブートコードの送信が終了したと判断する。
【００５０】
第１３の発明は、第９から第１１のいずれかの発明であって、ホスト装置は、不揮発性記憶装置がブートコードのデータを所定の長さのブロック単位で送信した場合、該ブートコードのデータを受信する。
【００５１】
第１４の発明は、第９から第１１のいずれかの発明であって、不揮発性記憶装置は、ブートコードを保持しない場合は、受信した同期コードを含む第１のシンボルをそのまま送信する。
【００５２】
ホスト装置は、所定の回数または所定の時間同期コードを含む第１のシンボルを送信した後、ブートコードのデータを受信しない場合、不揮発性記憶装置がブートコードを保持しないと判定する。
【００５３】
第１５の発明は、第９から第１４のいずれかの発明であって、第１のシンボルは、ブートデバイス識別子を含む。
【００５４】
ホスト装置は、同期コードを含む第１のシンボルに、ブートコードを出力する不揮発性記憶装置を指定するブートデバイス識別子を付加して送信する。
【００５５】
不揮発性記憶装置は、第１のブートデバイスフラグ情報と第２のブートデバイスフラグ情報とを格納する格納部を備え、同期コードを含む第１のシンボルを受信すると、受信した同期コードを含む第１のシンボルに含まれるブートデバイス識別子に基づいてブートコードを送信するか否かを判定する。
【００５６】
第１６の発明は、第９から第１５のいずれかの発明であって、ホスト装置と１または複数の不揮発性記憶装置とは、リング接続される。
【００５７】
第１７の発明は、第９から第１５のいずれかの発明であって、ホスト装置と１または複数の不揮発性記憶装置とは、ハブを介してハブ接続される。
【００５８】
第１８の発明は、ホスト装置と１または複数の不揮発性記憶装置との間でのデータ通信方法であって、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置ＩＦ部と、を備える前記ホスト装置と、１または複数の不揮発性メモリと、ホストＩＦ部と、不揮発性メモリのデータの読み出しおよび／または書き込みを制御するコントローラ部であって、前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含むコントローラ部と、を備える１または複数の不揮発性記憶装置と、の間のデータ通信方法である。
【００５９】
このデータ通信方法は、以下のステップを備える。
（Ｈ１）不揮発性記憶装置ＩＦ部が、インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信するステップ。
（Ｓ１）ホストＩＦ部が、ホスト装置からインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信するステップ。
（Ｈ２）不揮発性記憶装置ＩＦ部が、インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第１のシンボルを不揮発性記憶装置へ送信するステップ。
（Ｓ２）ホストＩＦ部が、インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第１のシンボルを受信した場合、受信したのと同じ第１のシンボルをホスト装置へ送信するステップ。
（Ｓ３）ホストＩＦ部が、第１のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力するステップ。
（Ｈ３）不揮発性記憶装置ＩＦ部が、不揮発性記憶装置から、不揮発性記憶装置へ送信した第１のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信するステップ。
【００６０】
これにより、第９の発明と同様の効果を奏するデータ通信方法を実現することができる。
【００６１】
第１９の発明は、第１８の発明のデータ通信方法をコンピュータに実行させるためのプログラムである。
【００６２】
これにより、第９の発明と同様の効果を奏するデータ通信方法をコンピュータに実行させるプログラムを実現することができる。
【発明の効果】
【００６３】
本発明によれば、ホスト装置と１以上の不揮発性記憶装置を含む記憶システムにおいて、ホスト装置が簡便な仕組みで不揮発性記憶装置からブートコードを読み出すことが可能なホスト装置、不揮発性記憶装置および記憶システムを提供することができる。
【図面の簡単な説明】
【００６４】
【図１】第１実施形態に係る記憶システムの構成を説明する図
【図２Ａ】第１実施形態に係る記憶システムの通常の起動シーケンスおよびブートコード読み出しシーケンスを説明する図
【図２Ｂ】第１実施形態に係る記憶システムのブートコード読み出しシーケンスを説明する図
【図３】第１実施形態に係る記憶システムのブートコード出力を停止する処理を説明する図
【図４】第１実施形態に係る記憶システムのブートコードのデータフォーマットを説明する図
【図５】第２実施形態に係る記憶システムのホスト装置と不揮発性記憶装置の接続形態を説明する図
【図６Ａ】第２実施形態に係るホスト装置と不揮発性記憶装置がリング接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図
【図６Ｂ】第２実施形態に係るホスト装置と不揮発性記憶装置がチェーン接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図
【図６Ｃ】第２実施形態に係るホスト装置と不揮発性記憶装置がハブ接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図
【図７】第１〜３実施形態に係る記憶システムにおいて、ホスト装置が発行する同期コードを含む第１および第２のシンボルの構成を説明する図
【図８Ａ】第３実施形態に係る不揮発性記憶装置が保持するブートデバイスフラグを説明する図
【図８Ｂ】第３実施形態に係る記憶システムのブートコード読み出しシーケンス（ブート要求コードのＩＤが０の場合）を説明する図
【図８Ｃ】第３実施形態に係る記憶システムのブートコード読み出しシーケンス（ブート要求コードのＩＤが１の場合）を説明する図
【図９】第１実施形態に係る記憶システムの別のブートコード読み出しシーケンスを説明する図
【図１０】第１実施形態に係る記憶システムのブートコードのデータフォーマットを説明する図
【図１１】第２実施形態に係る記憶システムにおける、ブートコードを保持するデバイスの接続位置を説明する図
【発明を実施するための形態】
【００６５】
以下、本発明の実施形態について、図面を参照しながら説明する。なお、説明中で同じ符号、記号、数字は特に説明が無い限り同じ構成要素を示すものとする。
【００６６】
［第１実施形態］
＜１．１：記憶システムの構成＞
図１は、第１実施形態に係る記憶システム１０００の構成を示すブロック図である。図１に示すように、記憶システム１０００は、ホスト装置２と不揮発性記憶装置１とで構成される。ホスト装置２と不揮発性記憶装置１とは、（１）クロックＣＬＫ、（２）ホスト装置２から不揮発性記憶装置１へデータを送る信号線ＤＡＴ０、および（３）不揮発性記憶装置１からホスト装置２へデータを送る信号線ＤＡＴ１を用いて、コマンドや応答、データの送受信を行う。なお、図１において、本発明の説明に不要な要素は図示していない。
【００６７】
記憶システム１０００では、ＣＬＫ、ＤＡＴ０、ＤＡＴ１により送受信される信号（データ）は、差動シリアル伝送方式を用いて伝送される。なお、ＣＬＫ、ＤＡＴ０、ＤＡＴ１により送受信される信号は、シングルエンド方式を用いて通信することも可能である。記憶システム１０００において、データを送る信号線の数はＤＡＴ０、ＤＡＴ１の２本に限定されず、より多くの信号線を用いることもよく、より多くの信号線を用いることで、より高速な通信が可能となる。ホスト装置２から不揮発性記憶装置１へ送るデータの信号線の数と不揮発性記憶装置１からホスト装置２へ送るデータの信号線の数とは同じであっても異なっていてもよい。
【００６８】
（１．１．１：ホスト装置の構成）
ホスト装置２は、図１に示すように、全体を制御するＣＰＵ２２と、ＲＯＭ２５と、ＲＡＭ２６と、主記憶部２３と、周辺回路２４と、不揮発性記憶装置ＩＦ部２１と、を含んで構成される。これらは同じ半導体ＬＳＩとして実現しても、異なる半導体ＬＳＩで実現してもよく、さらにハードウェアとソフトウェアを組み合わせて実現してもよい。
【００６９】
不揮発性記憶装置ＩＦ部２１は、不揮発性記憶装置１と、クロック信号伝送路ＣＬＫ、データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１を用いて通信を行う機能を有している。さらに、不揮発性記憶装置ＩＦ部２１は、不揮発性記憶装置１からシステム起動時にブートコードを読み出す制御を行うブート制御部２５を備える。
【００７０】
ブート制御部２５は、ハードウェアで実現してもよく、あるいはハードウェアと、ハードウェアに対してブートコード読み出し制御を行う簡便なソフトウェアとの組み合わせで実現してもよい。
【００７１】
なお、ホスト装置２の各機能部は、図１に示すように、バスにより接続されるものであってもよく、また、ホスト装置２の各機能部の全部または一部が、直接接続されるものであってもよい。
【００７２】
（１．１．２：不揮発性記憶装置の構成）
不揮発性記憶装置１は、コントローラ部１１と、１以上の不揮発性メモリ１２と、を含んで構成される。
【００７３】
コントローラ部１１は、ホストＩＦ部１１１と、メモリ制御部１１２と、を含む。
【００７４】
メモリ制御部１１２は、図１に示すように、ＣＰＵやＲＯＭ／ＲＡＭ、不揮発性メモリとの間でデータの転送を行うためのバッファやシーケンサを含んで構成される。これらは、同じ半導体ＬＳＩとして実現しても、異なる半導体ＬＳＩで実現してもよく、さらにハードウェアとソフトウェアを組み合わせて実現してもよい。
【００７５】
ホストＩＦ部１１１は、ホスト装置２と、クロック信号伝送路ＣＬＫ，データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１を用いて通信を行う機能を有している。また、ホストＩＦ部１１１は、ホスト装置２からの指示に応じて不揮発性メモリ１２に保持するブートコードをホスト装置２へ転送するブート制御部１１３を含んで構成される。
【００７６】
なお、不揮発性記憶装置１の備えるクロック信号伝送路ＣＬＫ、データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１は１組でもよく、あるいは、不揮発性記憶装置１が後述するチェーン接続を実現可能な場合には、クロック信号伝送路ＣＬＫ、データ伝送路ＤＡＴ０、データ伝送路ＤＡＴ１を２組備えてもよい。
【００７７】
また、クロック信号伝送路ＣＬＫについては、図１では、データ伝送路ＤＡＴ０およびデータＤＡＴ１とは異なる端子により接続される伝送路としているが、これに限定されることはなく、例えば、記憶システム１０００において、信号線（例えば、データ伝送路ＤＡＴ０および／またはデータＤＡＴ１）で伝送される信号（データ）にクロック信号を重畳して伝送するエンベデッドクロック伝送方式を用いることもでき、その場合には、クロック信号伝送路ＣＬＫおよび当該クロック信号伝送路ＣＬＫ用の端子は不要である。
【００７８】
また、本実施形態に係る不揮発性記憶装置１は、図１に示すように、ブートコードを不揮発性メモリ１２に保持するが、これに限定されることはなく、例えば、メモリ制御部１１２やホストＩＦ部１１１に設けたＲＯＭやフラッシュメモリなど別のメモリ（例えば、不揮発性メモリ）にブートコードを保持するようにしてもよい。
【００７９】
なお、説明便宜のため、第１実施形態に係るホスト装置２と不揮発性記憶装置１とは、データを８ｂ／１０ｂ変換して送信するものとする。すなわち、ホスト装置２と不揮発性記憶装置１とは、送信するデータを８ビット毎に１０ビットのコードに符号化して送信する。このような変換は、例えば、ＡＮＳＩ  ＩＮＣＩＴＳ  ２３０−１９９４で定義されており、１０ビットのコードには、８ビットのデータ０ｘ００〜０ｘＦＦを表すための２５６通りのＤコードのほかに、Ｋコードと呼ばれる制御用のコードも規定されている。Ｋコードは、例えば、データブロックの先頭や最後を現す特別なシンボルや、後述する同期確立用として使用される。
【００８０】
＜１．２：記憶システムの動作＞
以上のように構成された記憶システム１０００の動作について、以下、説明する。
【００８１】
（１．２．１：通常の起動シーケンス）
まず、記憶システム１０００における通常の起動シーケンスについて、説明する。
【００８２】
図２Ａ（ａ）は、第１実施形態に係る記憶システム１０００における、ホスト装置２と不揮発性記憶装置１との間の通常の起動シーケンスを説明する図である。
（時刻Ｔ２１からの処理）：
図２Ａ（ａ）において、ホスト装置２は、時刻Ｔ２１において、ＣＬＫ線（クロック信号伝送路ＣＬＫ）にクロックを供給すると共に、信号線（データ伝送路）ＤＡＴ０を用いてＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送る。なお、ＩＦ起動信号Ｓ２１は、信号線ＤＡＴ０をロー（論理値が０）固定（ローレベルを示す電圧値に固定）やハイ（論理値が１）固定（ハイレベルを示す電圧値に固定）として、ホスト装置２から不揮発性記憶装置１へ通知してもよく、あるいは何らかのパターン（パターン信号）をホスト装置２から不揮発性記憶装置１へ送るようにしてもよい。パターン（パターン信号）を送る場合には、所定のパターンを繰り返し送るようにしてもよい。また、その場合に信号線の値が変わる周期はクロック信号伝送路ＣＬＫで供給されるクロック信号の周波数（クロック周波数）と同じでもよく、あるいは、クロック周波数より速くても遅くてもよい（クロック周波数の周期より速い周期で信号線の値が変化するものであってもよく、あるいは、クロック周波数の周期より遅い周期で信号線の値が変化するものであってもよい）。
【００８３】
不揮発性記憶装置１は、ホスト装置２からＩＦ起動信号Ｓ２１を受信したことを検出すると、信号線（データ伝送路）ＤＡＴ１を用いて、ホスト装置２へＩＦ起動信号Ｓ２２を送る。ここで、ＩＦ起動信号Ｓ２２は、ホスト装置２が送ったＩＦ起動信号Ｓ２１と同じであってもよいし異なっていてもよい。
（時刻Ｔ２２からの処理）：
ホスト装置２は、不揮発性記憶装置１からＩＦ起動信号Ｓ２２を受信すると、時刻Ｔ２２において、同期シンボルＳ２３を、信号線ＤＡＴ０を用いて、不揮発性記憶装置１に送信する。ここで、同期シンボルＳ２３は、不揮発性記憶装置１がクロック線ＣＬＫで伝送されるクロック信号とデータ線ＤＡＴ０で伝送される信号（データ）との位相を合わせて正しくデータを受信することができるようにするための同期確立に用いられ、同期シンボルＳ２３は、例えば、Ｋコードの１つであるコンマ符号（例えばＫ２８．５、００１１１１  １０１０または１１００００  ０１０１）である。あるいは、同期シンボルＳ２３は、コンマ符号を含む１つまたは複数のコードで構成されるシンボルであってもよい。同期シンボルＳ２３は、不揮発性記憶装置１が同期を確立するのに十分な、所定の回数だけ繰り返し送信される。
【００８４】
不揮発性記憶装置１は、同期シンボルＳ２３を受信し、クロック線ＣＬＫで伝送されるクロック信号とデータ線ＤＡＴ０で伝送される信号（データ）との位相を合わせて正しくデータを受信できるようになると、データ線ＤＡＴ１を用いて同期シンボルＳ２４をホスト装置２へ送る。同期シンボルＳ２４は、ホスト装置２が、データ線ＤＡＴ１で伝送される信号（データ）と、データ線ＤＡＴ１で伝送される信号（データ）を受信するホスト装置２内部のクロック信号と、の位相を合わせて正しくデータを受信するために使用される。同期シンボルＳ２４は、ホスト装置２が送る同期シンボルＳ２３と同じでもよく、あるいは、複数のコードで構成する場合には、同期シンボルＳ２３と異なる構成でもよい。ただし、同期確立のためのコード、例えば、コンマ符号が含まれることは、同期シンボルＳ２３も同期シンボルＳ２４も同じである。
（時刻Ｔ２４からの処理）：
ホスト装置２は、不揮発性記憶装置１が送った同期シンボルＳ２４を受信すると、時刻Ｔ２４で、データ線ＤＡＴ０を用いて、アイドル状態を示すアイドルシンボルＳ２５を、不揮発性記憶装置１に送る。アイドルシンボルＳ２５は、任意のコードであるが、ホスト装置２および不揮発性記憶装置１が同期確立状態を維持できるよう、同期確立のためのコンマ符号などのコードを含むことも可能である。
（時刻Ｔ２５からの処理）：
不揮発性記憶装置１は、アイドルシンボルＳ２５を受信すると、時刻Ｔ２５において、データ線ＤＡＴ１を用いて、ホスト装置２へアイドルシンボルＳ２６を送る。アイドルシンボルＳ２６は、アイドルシンボルＳ２５と同じであってもよいし、異なっていてもよい。
【００８５】
このようにして、記憶システム１０００では、ホスト装置２と不揮発性記憶装置１とがお互いに同期を確立した後に、アイドルシンボルを送ると、通常の起動シーケンスが完了し、以降、ホスト装置２と不揮発性記憶装置１とは、コマンドや応答、データを用いた通信を行うことができるようになる。
【００８６】
（１．２．２：ブートコード読み出しシーケンス）
次に、記憶システム１０００におけるブートコード読み出しシーケンスについて、説明する。
【００８７】
図２Ａ（ｂ）は、第１実施形態に係る記憶システム１０００における、ホスト装置２と不揮発性記憶装置１との間のブートコードの読み出し開始シーケンスを説明する図である。なお、図２Ａ（ｂ）では図２Ａ（ａ）と同じ要素は同じ番号を用いて表している。
（時刻Ｔ２６からの処理）：
図２Ａ（ｂ）において、ホスト装置２は、時刻Ｔ２６において、ＣＬＫ線にクロック信号を供給すると共に、データ線ＤＡＴ０を用いて、ＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送る。
【００８８】
不揮発性記憶装置１は、ＩＦ起動信号Ｓ２１を受信したことを検出すると、データ線ＤＡＴ１を用いて、ホスト装置２へＩＦ起動信号Ｓ２２を送る。
（時刻Ｔ２７からの処理）：
ホスト装置２は、不揮発性記憶装置１からＩＦ起動信号Ｓ２２を受信すると、時刻Ｔ２７において、同期コードを含む第１のシンボルＳ２７を、データ線ＤＡＴ０を用いて、不揮発性記憶装置１へ送信する。ここで、第１のシンボルＳ２７は、不揮発性記憶装置１に対して、不揮発性メモリ１２に保持するブートコードを、データ線ＤＡＴ１を用いて出力させる指示のためのシンボルであり、不揮発性記憶装置１がブートコードの出力を終了するまで繰り返し送信される。なお、第１のシンボルの送信は、不揮発性記憶装置１がブートコードの出力を開始したら終了してもよく、あるいは所定の回数(例えば、２５６回、１０００回など)や所定の時間（例えば、１０ｍｓ、２００ｍｓなど）送信したら終了するようにしてもよい。この場合、ホスト装置２は、所定の回数または所定の時間、第１のシンボルＳ２７を送信した後、不揮発性記憶装置１からブートコードのデータを受信しない場合、不揮発性記憶装置１がブートコードを保持しないか、あるいは、エラー等により不揮発性記憶装置１がブートコードを出力できないと判定する。
（時刻Ｔ２８からの処理）：
不揮発性記憶装置１は、ホスト装置２から第１のシンボルＳ２７を受信すると、時刻Ｔ２８において、第２のシンボルＳ２８をホスト装置２へ送信する。そして、不揮発性記憶装置１は、ブートコードを出力する準備ができると、時刻Ｔ２９において、ブートコードをブートコード出力シンボルに続いてホスト装置２へ出力する。
【００８９】
ホスト装置２は、不揮発性記憶装置１からブートコードを受信すると、受信したブートコードを主記憶部２３に展開する。そして、ホスト装置２は、主記憶部２３で展開したコードを処理することで、以降のシステム起動処理を行う。
【００９０】
なお、不揮発性記憶装置１が送信する同期コードを含む第２のシンボルＳ２８は、ホスト装置２が送るシンボルＳ２７と同じであってもよいし、異なっていてもよいが、シンボルＳ２７、シンボルＳ２８とも同期確立のためのコードを含んで構成される。
【００９１】
また、別の一例として、記憶システム１０００において、例えば、図２Ｂに示すようにして、ブートコード読み出しシーケンスを行うようにしてもよい。この場合の処理について、図２Ｂを用いて、説明する。
【００９２】
図２Ｂは、第１実施形態に係る記憶システム１０００における、ホスト装置２と不揮発性記憶装置１との間のブートコードの読み出し開始シーケンスを説明する図である。なお、図２Ｂでは図２Ａと同じ要素は同じ番号を用いて表している。
（時刻Ｔ２０１からの処理）：
図２Ｂにおいて、ホスト装置２は、時刻Ｔ２０１において、ＣＬＫ線にクロック信号を供給すると共に、データ線ＤＡＴ０を用いて、ＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送る。
【００９３】
不揮発性記憶装置１は、ＩＦ起動信号Ｓ２１を受信したことを検出すると、データ線ＤＡＴ１を用いて、ホスト装置２へＩＦ起動信号Ｓ２２を送る。
（時刻Ｔ２０２からの処理）：
ホスト装置２は、不揮発性記憶装置１からＩＦ起動信号Ｓ２２を受信すると、時刻Ｔ２０２において、同期コードを含む第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０を、データ線ＤＡＴ０を用いて、不揮発性記憶装置１へ送信する。
【００９４】
ここで、第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０は、不揮発性記憶装置１に対して、不揮発性メモリ１２に保持するブートコードを、データ線ＤＡＴ１を用いて出力させる指示のためのシンボルであり、不揮発性記憶装置１から第２のＢ同期シンボル（ＢＳＹＮ２）Ｓ２１１の受信が確認されるまで、繰り返し送信される。
【００９５】
なお、第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０は、同期コードを含むシンボルであり、第１のシンボルＳ２７と同じシンボルであってもよく、あるいは、異なるシンボルであってもよい。
【００９６】
また、第２のＢ同期シンボル（ＢＳＹＮ２）Ｓ２１１は、第１のＢ同期シンボル（ＢＳＹＮ１）Ｓ２１０と同一のシンボルであってもよく、また、異なるシンボルであってもよい。また、第２のＢ同期シンボル（ＢＳＹＮ２）Ｓ２１１は、同期コードを含むシンボルであり、第２のシンボルＳ２８と同じシンボルであってもよく、あるいは、異なるシンボルであってもよい。
（時刻Ｔ２０３からの処理）：
不揮発性記憶装置１は、ホスト装置２から第１のＢ同期シンボルＳ２１０を受信すると、時刻Ｔ２０３において、第２のＢ同期シンボルＳ２１１をホスト装置２へ送信する。
（時刻Ｔ２０４からの処理）：
そして、ホスト装置２は、不揮発性記憶装置１から第２のＢ同期シンボルＳ２１１を受信すると、時刻Ｔ２０４において、アイドルシンボルＳ２５を不揮発性記憶装置１へ送信する。
【００９７】
そして、不揮発性記憶装置１は、ホスト装置２からアイドルシンボルＳ２５を受信すると、ホスト装置２へアイドルシンボルＳ２６を送信する。
（時刻Ｔ２０５からの処理）：
ホスト装置２は、時刻Ｔ２０５において、不揮発性記憶装置１からアイドルシンボルＳ２６を受信すると、不揮発性記憶装置１からブートコードが送信されるのを待つ状態にし、アイドルシンボルＳ２５を不揮発性記憶装置１へ送信し続ける。
【００９８】
不揮発性記憶装置１は、ブートコードの送信準備を行い、ブートコードの送信準備ができるまで、アイドルシンボルＳ２６をホスト装置２へ送信し続ける。
（時刻Ｔ２０６からの処理）：
不揮発性記憶装置１は、ブートコードの送信準備ができると、時刻Ｔ２０６において、ホスト装置２に対して、信号線ＤＡＴ１を用いて、フロー制御の開始を要求するシンボルＲＥＱ（図２Ｂ（ｂ）のシンボルＳ２０１）を送信する。その後、不揮発性記憶装置１は、ホスト装置２に対して、信号線ＤＡＴ１を用いて、アイドルシンボルＳ２６を送信する。
（時刻Ｔ２０７からの処理）：
ホスト装置２は、不揮発性記憶装置１からのデータ受信準備ができたら、時刻Ｔ２０７において、信号線ＤＡＴ０を用いて、不揮発性記憶装置１へシンボルＲＤＹ（図２Ｂ（ｂ）のシンボルＳ２０２）を送信する。その後、ホスト装置２は、不揮発性記憶装置１に対して、信号線ＤＡＴ０を用いて、アイドルシンボルＳ２５を送信する。
（時刻Ｔ２０８からの処理）：
不揮発性記憶装置１は、ホスト装置２からシンボルＲＤＹを受信したら、時刻Ｔ２０８にデータ線ＤＡＴ１を用いて、ブートコードをホスト装置２へ送信する。その後、不揮発性記憶装置１は、ホスト装置２に対して、信号線ＤＡＴ１を用いて、アイドルシンボルＳ２６を送信する。
【００９９】
なお、時刻Ｔ２０６からＴ２０７の間、ホスト装置２は、アイドルシンボルＳ２５を、不揮発性記憶装置１へ送信し続ける。
（時刻Ｔ２０９からの処理）：
図２Ｂ（ｂ）に示すように、時刻Ｔ２０９において、ホスト装置２は、不揮発性記憶装置１に対して、信号線ＤＡＴ０を用いて、ステータスシンボルＳ２０４（シンボルＳＴＡＴ）を送信する。このステータスシンボルＳ２０４は、ホスト装置２が、不揮発性記憶装置１から送信されたブートコードを正しく受信されたか否かを示す情報を含んでいる。なお、ステータスシンボルＳ２０５には、ホスト装置２が、不揮発性記憶装置１から送信されたブートコードを正しく受信できなかったというエラーがあった場合、再度、不揮発性記憶装置１がブートコードを送信することで、当該エラーのリカバリー（回復）が可能か否かを示す情報を含むようにしてもよい（例えば、ホスト装置２が不揮発性記憶装置１から受信したデータにおいて、伝送路でのビット化けによりＣＲＣエラーが発生しているような場合、再度、不揮発性記憶装置１がホスト装置２へデータ送信することで、正常に、データ送信が行うことができる可能性が高い。このようなエラーが上記で説明したリカバリー（回復）可能なエラーの一例である。）このように、リカバリー（回復）可能なエラーが発生している場合、記憶システム１０００において、図２Ｂ（ｂ）の時刻Ｔ２０６〜時刻Ｔ２１０の処理を、再度、実行するようにすることができる。このようにすることで、ホスト装置２は、より確実に、ブートコードを不揮発性記憶装置１から受信することができる。
【０１００】
ホスト装置２は、ステータスシンボルＳ２０４を不揮発性記憶装置１へ送信した後、アイドルシンボルＳ２５を不揮発性記憶装置１へ送信する。
【０１０１】
なお、記憶システム１０００において、時刻Ｔ２０６〜時刻２１０の処理を所定回繰り返すようにしてもよい。例えば、１６ＫＢのブートコードを、不揮発性記憶装置１からホスト装置２へ送信する場合、２ＫＢずつに分割したブートコードを送信する処理（時刻Ｔ２０６〜時刻２１０の処理）を、８回繰り返すようにすればよい。
【０１０２】
以上のように、記憶システム１０００において、ＲＥＱシンボル（シンボルＳ２０１）およびＲＤＹシンボル（シンボルＳ２０２）を用いてホスト装置２と不揮発性記憶装置１との間のフロー制御（ハンドシェーク通信によるフロー制御）を行い、さらに、不揮発性記憶装置１からホスト装置２へ送信されるブートコードを、ホスト装置２が正常に受信したか否かを示すステータスを、ホスト装置２から不揮発性記憶装置１へ返すことで（ハンドシェーク通信を行うことで）、より確実に、ブートコードを不揮発性記憶装置１からホスト装置２へ送信することができる。
【０１０３】
なお、図２Ａ（ｂ）では、ホスト装置２は、ＩＦ起動信号を送信した後、第１のシンボルＳ２７を不揮発性記憶装置１へ送信する場合を例示しているが、これに限定されることはなく、例えば、図９に示すように、通常の起動シーケンスを行った後に、第１のシンボルを不揮発性記憶装置１へ送るようにしてもよい。
（時刻Ｔ９１からの処理）：
すなわち、図９に示すように、ホスト装置２は、時刻Ｔ９１において、不揮発性記憶装置１に対してクロック供給を開始すると共に、ＩＦ起動信号Ｓ２１を不揮発性記憶装置１へ送信する。
【０１０４】
不揮発性記憶装置１は、ホスト装置２からＩＦ起動信号Ｓ２１を受信すると、ＩＦ起動信号Ｓ２２をホスト装置２へ送信する。
（時刻Ｔ９２からの処理）：
時刻Ｔ９２において、ホスト装置２は、不揮発性記憶装置１からのＩＦ起動信号Ｓ２２を受信すると、同期シンボルＳ２３を繰り返し不揮発性記憶装置１へ送信する。
【０１０５】
不揮発性記憶装置１は、同期シンボルＳ２３を受信し、データ線ＤＡＴ０のデータを正しく受信できるようになると、時刻Ｔ９３において、同期シンボルＳ２４をホスト装置２へ送る。
（時刻Ｔ９４からの処理）：
ホスト装置２は、不揮発性記憶装置１から同期シンボルＳ２４を受信し、ＤＡＴ１のデータを正しく受信できるようになると、時刻Ｔ９４において、第１のシンボルＳ２７を不揮発性記憶装置１へ送信する。
（時刻Ｔ９５からの処理）：
不揮発性記憶装置１は、ホスト装置２から第１のシンボルＳ２７を受信すると、時刻Ｔ９５において、第２のシンボルＳ２８をホスト装置２へ送信した後、ブートコードを送信する準備ができると、第２のシンボルに引き続いてブートコードをホスト装置２へ送信する。
【０１０６】
上記のようにして、記憶システム１０００において、ホスト装置２が通常の起動シーケンスを行った後に、第１のシンボルＳ２７を不揮発性記憶装置１へ送るようにしてもよい。
【０１０７】
次に、図３を用いて、ホスト装置２が不揮発性記憶装置１からのブートコードの出力を停止する処理について、説明する。
【０１０８】
図３は、ホスト装置２が不揮発性記憶装置１からのブートコードの出力を停止する処理を説明する図である。
【０１０９】
図３（ａ）に示すように、時刻Ｔ３１において、ホスト装置２がデータ線ＤＡＴ０でアイドルシンボルＳ２５を不揮発性記憶装置１へ送ると、不揮発性記憶装置１は、ホスト装置２が送ったアイドルシンボルを受信、認識して、時刻Ｔ３２において、ブートコードの出力を停止し、データ線ＤＡＴ１でアイドルシンボルＳ２６をホスト装置２へ送信する。
【０１１０】
また、図３（ｂ）に示すように、時刻Ｔ３３において、ホスト装置２がデータ線ＤＡＴ０で停止シンボルＳ３０を不揮発性記憶装置１へ送ると、不揮発性記憶装置１は、ホスト装置２が送った停止シンボルを受信、認識して、時刻Ｔ３４において、ブートコードの出力を停止し、データ線ＤＡＴ１でアイドルシンボルＳ２６をホスト装置２へ送信する。
【０１１１】
また、図３（ｃ）に示すよう、時刻Ｔ３５において、不揮発性記憶装置１は、所定のサイズのブートコードのデータをホスト装置２へ送信し終わると、データ線ＤＡＴ１でアイドルシンボルＳ２６をホスト装置２へ送信する。
【０１１２】
ホスト装置２は、不揮発性記憶装置１が送ったアイドルシンボルＳ２６を受信、認識すると、データ線ＤＡＴ０でアイドルシンボルＳ２５を不揮発性記憶装置１へ送信する。
【０１１３】
本実施形態に係る不揮発性記憶装置１は、図３（ａ）〜（ｃ）の全ての場合にブートコード出力を停止してもよく、あるいは図３（ａ）〜（ｃ）のいずれかの場合（いずれか２つの場合を含む。）にブートコード出力を停止するようにしてもよい。
【０１１４】
また、図３（ｃ）の場合において、不揮発性記憶装置１は、ホスト装置２へ、ブートコードのデータを全て出力するようにしてもよいし、あるいは、予め出力するサイズを標準化して定め、その定めたサイズのブートコードのデータを出力するようにしてもよい。あるいは、ホスト装置２が不揮発性記憶装置１へブートコードを書き込む際に、出力するデータサイズを設定できるようにしておくことも可能である。
【０１１５】
（１．２．３：第１のシンボル、第２のシンボルのフォーマット）
次に、記憶システム１０００において、ホスト装置２が不揮発性記憶装置１へ送信する第１のシンボル、および、不揮発性記憶装置１がホスト装置２へ送信する第２のシンボルのフォーマットについて、説明する。
図７は、本実施形態に係るホスト装置２および不揮発性記憶装置１が送信する第１のシンボルおよび第２のシンボルのフォーマットを説明する図である。
【０１１６】
図７に示すように、本実施形態に係る第１のシンボルおよび第２のシンボルは、同期用コードを含んで構成される。
【０１１７】
図７（ａ）の例では、第１のシンボルおよび第２のシンボルは、それぞれ、２つのコードで構成される。１つは、コンマ符号などの同期用コードである。もう一つは、Ｂｏｏｔ要求コードである。Ｂｏｏｔ要求コードは、８ｂ／１０ｂ変換したコードが使用され、Ｋコードを用いるか、あるいは、０ｘ０〜０ｘＦＦのいずれかを８ｂ／１０ｂ変換したＤコードが用いられる。なお、Ｂｏｏｔ要求コードとして用いるコードは、不揮発性記憶装置１がブートコード読み出し指示を識別できる任意のコードが使用可能である。
【０１１８】
図７（ｂ）の例では、第１のシンボルおよび第２のシンボルは、それぞれ、同期用コードおよびＮ個（Ｎは自然数）のＢｏｏｔ要求コードで構成される。Ｂｏｏｔ要求コード１〜Ｎは、それぞれ異なるコードであってもよく、同じコードであってもよい。また、Ｂｏｏｔ要求コード１〜Ｎとして、Ｋコードを用いてもよく、また、０ｘ０〜０ｘＦＦのいずれかを８ｂ／１０ｂ変換したＤコードを用いてもよい。
【０１１９】
また、図７（ｃ）の例では、第１のシンボルおよび第２のシンボルは、それぞれ、同期用コードとＢｏｏｔ要求コードとで構成される。そして、図７（ｃ）に示すように、Ｂｏｏｔ要求コードとして、複数のコード１〜Ｎが用いられる。この場合、異なるＢｏｏｔ要求コード１〜Ｎを含む第１のシンボルおよび第２のシンボルが送信される。Ｂｏｏｔ要求コード１〜Ｎは、それぞれ異なるコードであってもよいし、同じコードであってもよい。また、Ｂｏｏｔ要求コード１〜Ｎとして、Ｋコードを用いてもよいし、０ｘ０〜０ｘＦＦのいずれかを８ｂ／１０ｂ変換したＤコードを用いてもよい。
【０１２０】
上記のように、第１のシンボルおよび第２のシンボルに同期用コードを付加するのは、ブートコード読み出しの処理の中で、ホスト装置２および不揮発性記憶装置１がデータ線ＤＡＴ０で通信される信号（データ）、および、データ線ＤＡＴ１で通信される信号（データ）を正しく受信するための同期確立を同時に行うためである。
【０１２１】
図７（ａ）〜（ｃ）に示したいずれの場合も、第１のシンボルおよび第２のシンボルは、所定の回数、繰り返し送信されてもよい。すなわち、ホスト装置２は、第１のシンボルを少なくとも不揮発性記憶装置１がブートコードを出力し始めるまで繰り返し不揮発性記憶装置１へ送信してもよい。また、不揮発性記憶装置１は、第１のシンボルをホスト装置２から受信した後、ブートコードをホスト装置２へ送信するまで第２のシンボルをホスト装置２へ送信してもよい。また、Ｂｏｏｔ要求コードは、図７（ｄ−１）に示すように、一つのコードでもよく、図７（ｄ−２）に示すように、識別子ＩＤを含むものであってもよい。
【０１２２】
（１．２．４：データ出力方式）
次に、記憶システム１０００において、不揮発性記憶装置１がデータ線ＤＡＴ１でブートコードを送信するときの送信方式（データ出力方式）について、説明する。
【０１２３】
図４は、不揮発性記憶装置１がデータ線ＤＡＴ１でブートコードをホスト装置２へ送信するときの送信方式を説明する図である。
【０１２４】
図４（ａ）は、不揮発性記憶装置１がブートコードのデータを区切りなく連続的にホスト装置２へ送信する場合を示しており、図４（ｂ）は、不揮発性記憶装置１がブートコードを所定の長さｄｌｅｎ単位で区切ってブロック単位でホスト装置２へ送信する場合を示している。本実施形態に係る不揮発性記憶装置１は、図４（ａ）、（ｂ）のいずれかの方式でブートコードを送信するものであってもよく、あるいは両方の方式で送信することができるものであってもよい。不揮発性記憶装置１が両方の方式により送信できる場合、ホスト装置２は、予め不揮発性記憶装置１に対して図４（ａ）、（ｂ）のどちらの方式でデータを送信するかを指示しておく。
【０１２５】
ブロックの長さｄｌｅｎは、例えば、５１２バイトや１Ｋバイトなどであり、標準化された固定値でもよく、あるいはホスト装置２が予め不揮発性記憶装置１に設定しておいてもよい。なお、データ出力方式やブロック長をホスト装置２が予め設定する場合は、不揮発性記憶装置１は、設定された情報を不揮発な領域に保持しておく。
【０１２６】
図１０は、不揮発性記憶装置１が出力するデータのフォーマットを説明するための図である。
【０１２７】
図１０（ａ）に示すように、データは、Ｓｔａｒｔシンボル１００１と、ヘッダ１００２と、ペイロード１００３と、ＣＲＣ１００４と、Ｅｎｄシンボル１００５とで構成される。Ｓｔａｒｔシンボル１００１、Ｅｎｄシンボル１００５には、Ｋコードを含むシンボルが使用される。ヘッダ１００２には、送信元や送信先のＩＤ、データ種別などが含まれる。ペイロード１００３は、データの本体である。ＣＲＣ１００４は、ヘッダ１００２、ペイロード１００３の伝送路上でのエラーを検出するためのコードである。データのフォーマットは、図１０（ｂ）に示すように、ヘッダが無いフォーマットや、図１０（ｃ）に示すように、ＣＲＣも付加せず、Ｓｔａｒｔシンボル１００１、ペイロード１００３、Ｅｎｄシンボル１００５のみから構成されるフォーマットとしてもよい。
【０１２８】
以上、図面を用いて説明したように、第１実施形態に係る記憶システム１０００では、ホスト装置２が第１のシンボルを不揮発性記憶装置１へ送信してブートコードの読み出しを指示すると、不揮発性記憶装置１は、第２のシンボルをホスト装置２へ送信し、ホスト装置２へブートコードを送信する準備ができると、続いてデータを出力する（ホスト装置２へ送信する）。記憶システム１０００において、第１のシンボルおよび第２のシンボルは、コンマ符号などのＫコードを用いた同期確立用の同期用コードを含むため、ブートコード読み出し処理と合わせてホスト装置２、不揮発性記憶装置１が受信データの同期確立を行うことができる。このため、記憶システム１０００では、簡便な仕組みでホスト装置２が不揮発性記憶装置１からブートコードを読み出すことができる。
【０１２９】
［第２実施形態］
次に、第２実施形態について、説明する。
【０１３０】
＜２．１：ホスト装置と不揮発性記憶装置の接続形態＞
図５は、第２実施形態に係る記憶システムにおけるホスト装置２と不揮発性記憶装置１ａ〜１ｃの接続形態を説明する図である。図５において、（ａ）はリング接続、（ｂ）はチェーン接続、（ｃ）はハブ３を介したハブ接続を示している。いずれの場合も、ホスト装置２では、信号線ＤＡＴ０でデータを送信し、信号線ＤＡＴ１でデータを受信する。また、不揮発性記憶装置１ａ〜１ｃでは、データ線ＤＡＴ０でデータを受信し、データ線ＤＡＴ１でデータを送信する。なお、図５（ｂ）のチェーン接続の場合のみ、後段の不揮発性記憶装置との間で信号の伝送をするためのＤＡＴ０出力（信号線ＤＡＴ０へデータを出力するための出力端子（出力インタフェース））、ＤＡＴ１入力（信号線ＤＡＴ０からデータを入力するための入力端子（入力インタフェース））が不揮発性記憶装置には存在する。
【０１３１】
なお、図５において、クロック線ＣＬＫは図示されていないが、前述したとおり、独立した端子を用いてクロック線ＣＬＫが接続されるように、ホスト装置と各不揮発性記憶装置を接続してもよく、また、エンベデッドクロック方式を用いてホスト装置から各不揮発性記憶装へクロック信号を供給するようにしてもよい。また、本実施形態の記憶システムには、不揮発性記憶装置以外にＷＬＡＮなど各種ネットワーク装置やＩＯ装置も接続可能であり、その接続個数も限定されるものではない。以下の説明では、説明便宜のため、不揮発性記憶装置１ｂがブートコードを保持しているとする。
【０１３２】
＜２．２：ブートコード読み出しシーケンス＞
次に、本実施形態の記憶システムにおけるブートコード読み出しシーケンスについて、説明する。
【０１３３】
（２．２．１：リング接続でのブートコード読み出しシーケンス）
まず、本実施形態の記憶システムがリング接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
【０１３４】
図６Ａは、本実施形態の記憶システムにおいて、ホスト装置２と不揮発性記憶装置１ａ〜１ｃとがリング接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
【０１３５】
図６Ａに示すように、ホスト装置２は、ＩＦ起動信号を送信してＩＦ（インタフェース）を起動した後、同期コードを含む第１のシンボルＳ６１を不揮発性記憶装置へ送信する。第１のシンボルＳ６１は、上記において、図７を用いて説明したいずれかのコードである。
【０１３６】
不揮発性記憶装置１ａは、ブートコードを保持していないため、受信した第１のシンボルＳ６１を、そのまま次のデバイス（不揮発性記憶装置１ｂ）へ送信する。
【０１３７】
不揮発性記憶装置１ｂは、不揮発性記憶装置１ａから第１のシンボルＳ６１を受信すると、第２のシンボルＳ６２を（不揮発性記憶装置１ｃへ）送信し、ブートコードを出力する準備が出来ると、続けてブートコードＳ６３を（不揮発性記憶装置１ｃへ）出力する。
【０１３８】
不揮発性記憶装置１ｃは、ブートコードを保持しないため、不揮発性記憶装置１ｂから受信した第２のシンボルＳ６２およびブートコードＳ６３をそのままホスト装置２へ送信する。
【０１３９】
このようにして、本実施形態の記憶システム（リング接続形態）では、ホスト装置２は不揮発性記憶装置１ｂが送信した第２のシンボルＳ６２とブートコードＳ６３を受信し、システムの起動処理を行うことができる。
【０１４０】
なお、図６Ａでは第１のシンボルＳ６１および第２のシンボルＳ６２は、１つしか図示していないが、図２Ａおよび図２Ｂを用いて説明したのと同様のシーケンスが実行されるように、繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図３、４および１０を用いて説明したのと同様である。
【０１４１】
（２．２．２：チェーン接続）
次に、本実施形態の記憶システムがチェーン接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
【０１４２】
図６Ｂは、本実施形態の記憶システムにおいて、ホスト装置２と不揮発性記憶装置１ａ〜１ｃとがチェーン接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
【０１４３】
図６Ｂに示すように、ホスト装置２は、ＩＦ起動信号を送信してＩＦ（インタフェース）を起動した後、第１のシンボルＳ６１を不揮発性記憶装置１ａに送信する。第１のシンボルＳ６１は、上記で図７を用いて説明したいずれかのコードである。
【０１４４】
不揮発性記憶装置１ａは、ブートコードを保持していないため、ホスト装置２から受信した第１のシンボルＳ６１を、そのまま次のデバイス（不揮発性記憶装置１ｂ）へ送信する。
【０１４５】
不揮発性記憶装置１ｂは、不揮発性記憶装置１ａから第１のシンボルＳ６１を受信すると、第２のシンボルＳ６２を不揮発性記憶装置１ａに送信し、ブートコードを出力する準備が出来ると、続けてブートコードＳ６３を不揮発性記憶装置１ａに出力する。このとき不揮発性記憶装置１ｃへは第２のシンボルおよびブートコードを送信しない。
【０１４６】
不揮発性記憶装置１ａは、不揮発性記憶装置１ｂから受信した第２のシンボルＳ６２およびブートコードＳ６３をそのままホスト装置２へ送信する。
【０１４７】
このようにして、本実施形態の記憶システム（チェーン接続形態）では、ホスト装置２は、不揮発性記憶装置１ｂが送信した第２のシンボルＳ６２とブートコードＳ６３を受信し、システムの起動処理を行うことができる。
【０１４８】
なお、図６Ｂでは、第１のシンボルおよび第２のシンボルは１つしか図示していないが、上記で図２を用いて説明したのと同様に、第１のシンボルおよび第２のシンボルは繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図３、４および１０を用いて説明したのと同様である。
【０１４９】
（２．２．３：ハブ接続）
次に、本実施形態の記憶システムがハブ接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
【０１５０】
図６Ｃは、本実施形態の記憶システムにおいて、ホスト装置２と不揮発性記憶装置１ａ〜１ｃとがハブ３を介してハブ接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
【０１５１】
図６Ｃに示すように、ホスト装置２は、ＩＦ起動信号を、ハブ３を介して各不揮発性記憶装置へ送信してＩＦ（インタフェース）を起動した後、第１のシンボルＳ６１を、ハブを介して各不揮発性記憶装置へ送信する。第１のシンボルＳ６１は、上記で図７を用いて説明したいずれかのコードである。
【０１５２】
ハブ３は、不揮発性記憶装置１ａ〜１ｃへ、ホスト装置２から受信した第１のシンボルＳ６１を送信する。
【０１５３】
不揮発性記憶装置１ａ、１ｃは、ブートコードを保持しないため、ハブ３から受信した第１のシンボルＳ６１を、そのままハブ３へ送信する。
【０１５４】
不揮発性記憶装置１ｂは、第１のシンボルＳ６１を受信すると、第２のシンボルＳ６２をハブ３へ送信し、ブートコードを出力する準備が出来ると、続けてブートコードＳ６３をハブ３へ出力する。
【０１５５】
ハブ３は、不揮発性記憶装置１ｂから受信した第２のシンボルＳ６２とブートコードＳ６３をホスト装置２へ送信する。
【０１５６】
このようにして、本実施形態の記憶システム（ハブ接続形態）では、ホスト装置２は不揮発性記憶装置１ｂが送信した第２のシンボルＳ６２とブートコードＳ６３を受信し、システムの起動処理を行うことができる。
【０１５７】
なお、図６Ｃでは、第１のシンボル及び第２のシンボルは１つしか図示していないが、上記で図２を用いて説明したのと同様に、第１のシンボル及び第２のシンボルは繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図３、４および１０を用いて説明したのと同様である。
【０１５８】
また、図６Ｃでは、ブートコードを保持しない不揮発性記憶装置１ａ，１ｃは、受信した第１のシンボルをそのまま出力する場合について説明したが、これに限定されることはなく、例えば、ブートコードを保持しない不揮発性記憶装置が第１のシンボルを受信しても、何も出力しないようにしてもよい。あるいは、ハブ３に予めブートコードを保持する不揮発性記憶装置が接続されたポートを指定しておき、ハブ３は、ホスト装置２から受信した第１のシンボルを、当該予め指定されたポートに基づいて、ブートコードを保持する不揮発性記憶装置のみに送信するようにしてもよい。
【０１５９】
また、図６Ａ、図６Ｂでは、不揮発性記憶装置１ｂがブートコードを保持するとして説明したが、リング接続およびチェーン接続の場合は、図１１（ａ），（ｂ）に示すように、ホスト装置２の受信端（信号線ＤＡＴ１の入力端子（入力インタフェース））に最も近い不揮発性記憶装置（図１１（ａ）の不揮発性記憶装置１ｃおよび図１１（ｂ）の不揮発性記憶装置１ａがこれに該当。）に保持することが望ましい。すなわち、リング接続の場合は、図１１（ａ）に示すように、不揮発性記憶装置１ｃがブートコードを保持するのが好ましく、チェーン接続の場合は、図１１（ｂ）に示すように、不揮発性記憶装置１ａがブートコードを保持することが好ましい。このようにすることで、ホスト装置の受信する第２のシンボルおよびブートコードの伝送経路が最短となり、記憶システムにおいて、信号品質を高めることができ、好適である。
【０１６０】
以上、図面を用いて説明したように、第２実施形態に係る記憶システムでは、ホスト装置が第１のシンボルを送信してブートコードの読み出しを指示すると、（１）ブートコードを保持しない不揮発性記憶装置は、受信した第１のシンボル、第２のシンボルまたはブートコードデータをそのまま送信し、（２）ブートコードを保持する不揮発性記憶装置は、第２のシンボルを送信した後、ブートコードを送信する準備ができると、続いてデータを出力する。このようにすることで、第２実施形態に係る記憶システムでは、接続形態がリング接続、チェーン接続およびハブ接続のいずれの接続形態であっても、ホスト装置、不揮発性記憶装置個々の動作を、第１実施形態に係る記憶システムのホスト装置、不揮発性記憶装置と同様の動作にすることができる。その結果、第２実施形態の記憶システムでは、ホスト装置と複数の不揮発性記憶装置とをどのように接続した場合であっても、簡便な仕組みで、かつ、効率良く、ホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。
【０１６１】
［第３実施形態］
次に、第３実施形態について、説明する。
【０１６２】
図８Ａ〜Ｃは、第３実施形態に係る記憶システムにおけるホスト装置２と不揮発性記憶装置１ａ〜１ｃとの動作を説明するための図である。図８Ａ〜Ｃにおいて、不揮発性記憶装置１ａおよび１ｂがブートコードを保持するものとする。
【０１６３】
＜３．１：不揮発性記憶装置の構成＞
まず、本実施形態の記憶システムの不揮発性記憶装置の構成について、説明する。
【０１６４】
図８Ａは、本実施形態に係る不揮発性記憶装置の構成を説明するための図である。
【０１６５】
図８Ａに示すように、不揮発性記憶装置１ａ〜１ｃは、それぞれ、第１のブートデバイスフラグ８１、および、第２のブートデバイスフラグ８２を保持している。
【０１６６】
不揮発性記憶装置１ａは、第２のブートデバイスフラグ８２が「１」となっており、不揮発性記憶装置１ｂは、第１のブートデバイスフラグ８１が「１」となっている。また、不揮発性記憶装置１ｃは、ブートコードを保持しておらず、第１のブートデバイスフラグ、第２のブートデバイスフラグともに「０」である。これらのフラグは、ブートコードを保持する不揮発性記憶装置が複数存在する場合に、ブートコードを送信する不揮発性記憶装置を識別するために使用する。なお、フラグは２つに限定されず、システムに含まれるブートコードを保持するデバイスの数だけ持つことができる。また、フラグは、ビット単位のフラグに限定されることはなく、例えば、４ビットのフラグを規定して、最大１６個の不揮発性記憶装置を識別するようにし、当該４ビットのフラグにより、ブートコードを保持する不揮発性記憶装置を識別するようにしてもよい（例えば、１６個の不揮発性記憶装置＃０〜＃１５に、それぞれ、ＩＤ０ｘ０〜０ｘＦ（４ビットのフラグによるＩＤ）を割り当て、例えば、不揮発性記憶装置＃２のブートコードを読み出す場合、ブート要求コードに「０ｘ２」を設定することで、不揮発性記憶装置＃２からブートコードを読み出すことができる）。また当該フラグは予め設定される不揮発な情報であり、不揮発性記憶装置では不揮発性メモリ１２やその他ＲＯＭ、ＥＥＰＲＯＭなどに保持してもよく、あるいは端子で設定するようにしてもよい。
【０１６７】
＜３．２：ブート要求コードの構成＞
次に、本実施形態におけるブート要求コードについて、説明する。
【０１６８】
図７（ｄ−２）は、本実施形態に係るホスト装置が送信する第１のシンボル中のＢｏｏｔ要求コードを説明するための図である。図７（ｄ−２）では、第１のシンボルは、Ｄコードを用いて表され、一部に識別子ＩＤを含む。
【０１６９】
＜３．３：ブートコード読み出しシーケンス＞
次に、本実施形態の記憶システムにおけるブートコード読み出しシーケンスについて、説明する。
【０１７０】
図８Ｂ、図８Ｃは、本実施形態に係る記憶システムにおけるブートコード読み出しシーケンスを説明するための図である。
【０１７１】
まず、図８Ｂの場合について、説明する。
【０１７２】
図８Ｂに示すように、ホスト装置２は、第１のシンボルＳ８１を不揮発性記憶装置１ａに送信する。このとき、Ｂｏｏｔ要求コードのＩＤには、第１のブートデバイスを示す“０”が設定されているので、第１のブートデバイスフラグが”１”である不揮発性記憶装置１ｂは、図８Ｂに示すように、第２のシンボルＳ８２に続いて、ブートコードＳ８３を送信する。
【０１７３】
なお、第１のブートデバイスフラグが”０”である不揮発性記憶装置１ａ、１ｃは、受信した第１のシンボルＳ８１、第２のシンボルＳ８２，ブートコードＳ８３をそのまま送信する。
【０１７４】
次に、図８Ｃの場合について、説明する。
【０１７５】
図８Ｃに示すように、ホスト装置２は、第１のシンボルＳ８４を不揮発性記憶装置１ａへ送信する。このとき、Ｂｏｏｔ要求コードのＩＤには、第２のブートデバイスを示す“１”が設定されているので、第２のブートデバイスフラグが”１”である不揮発性記憶装置１ａは、図８Ｃに示すように、第２のシンボルＳ８５に続いて、ブートコードＳ８６を送信する。
【０１７６】
なお、第２のブートデバイスフラグが”０”である不揮発性記憶装置１ｂ、１ｃは、受信した第２のシンボルＳ８５、ブートコードＳ８６をそのまま送信する。
【０１７７】
以上、図面を用いて説明したように、第３実施形態に係る記憶システムでは、ホスト装置が第１のシンボルを送信するときに、Ｂｏｏｔ要求コードに識別子ＩＤをつけて送信し、不揮発性記憶装置は、（１）当該識別子ＩＤが自身のブートデバイスフラグの設定と一致している場合、保持するブートコードを送信し、（２）それ以外の場合、受信した第１のシンボル、第２のシンボル、ブートコードをそのまま送信する。
【０１７８】
このように、本実施形態の記憶システムでは、複数の不揮発性記憶装置がブートコードを保持する場合でも、各不揮発性記憶装置にはブートデバイスフラグが設定されているので、ホスト装置は、識別子ＩＤを第１のシンボルに付加することで、所望の不揮発性記憶装置からブートコードを読み出すことができる。したがって、本実施形態の記憶システムでは、ホスト装置と複数の不揮発性記憶装置とを接続した場合であっても、簡便な仕組みで、ホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。
【０１７９】
［他の実施形態］
以上、図面を用いて本発明の実施形態を説明したが、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。例えば、第１のシンボルおよび第２のシンボルは、同期確立用コードを含むものであれば、Ｂｏｏｔ要求コードとして、不揮発性記憶装置がブートコード読み出しを認識することができる任意のコードを使用することができる。
【０１８０】
また、記憶システムにおいて、不揮発性記憶装置の数は、１以上の任意の数が可能であり、１対１接続の場合でも、複数の不揮発性記憶装置が接続される場合（１対Ｎ接続の場合）でも同様の処理でブートコードを読み出すことが可能である。さらに、複数の不揮発性記憶装置の接続形態は、上記で説明した内容に限られるものではなく、様々な接続形態が可能である。
【０１８１】
なお、上記実施形態で説明したホスト装置および不揮発性記憶装置において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
【０１８２】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１８３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１８４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
【０１８５】
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０１８６】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係るホスト装置および不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【０１８７】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０１８８】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕｅ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０１８９】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０１９０】
また、上記実施形態において、ホスト装置と不揮発性記憶装置とは、別装置である場合について説明したが、これに限定されることはなく、ホスト装置と不揮発性記憶装置とは、１つの装置内に構成されるものであってもよい。また、ホスト装置は、ホストモジュールを含む概念であり、不揮発性記憶装置は、不揮発性記憶モジュールを含む概念である。
【０１９１】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【０１９２】
本発明によると、ホスト装置と複数の不揮発性記憶装置で構成される記憶システムにおいて、ホスト装置と複数の不揮発性記憶装置とを接続した簡便な仕組みでホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。本発明を適用することで、例えば、ホスト装置としてのシステムＬＳＩと、不揮発性記憶装置としてのＩＯデバイスやメモリ装置とを複数接続して構成する記憶システムにおいて、ブートコード読み出しを効率的に行うことができる。したがって、本発明は、記憶システム関連分野において、有用であり、当該分野において、実施することができる。
【符号の説明】
【０１９３】
１０００  記憶システム
１  不揮発性記憶装置
２  ホスト装置
３  ハブ
１１  コントローラ部
１２  不揮発性メモリ
１１１  ホストＩＦ部
１１２  メモリ制御部
１ａ、１ｂ、１ｃ  不揮発性記憶装置
２１  記憶装置ＩＦ部
２２  ＣＰＵ
２３  主記憶
２４  周辺回路
２５  ブート制御部
８１  第１のブートデバイスフラグ
８２  第２のブートデバイスフラグ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2011070747.tif 000019
【図２Ａ】
2011070747.tif 000020
【図３】
2011070747.tif 000021
【図４】
2011070747.tif 000022
【図５】
2011070747.tif 000023
【図６Ａ】
2011070747.tif 000024
【図６Ｂ】
2011070747.tif 000025
【図６Ｃ】
2011070747.tif 000026
【図７】
2011070747.tif 000027
【図８Ａ】
2011070747.tif 000028
【図８Ｂ】
2011070747.tif 000029
【図８Ｃ】
2011070747.tif 000030
【図９】
2011070747.tif 000031
【図１０】
2011070747.tif 000032
【図１１】
2011070747.tif 000033
【図２Ｂ】
2011070747.tif 000034
【国際調査報告】
2011070747.tif 000035
2011070747.tif 000036
2011070747.tif 000037
2011070747.tif 000038