JP5254449B2 - 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム - Google Patents

不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム Download PDF

Info

Publication number
JP5254449B2
JP5254449B2 JP2011527130A JP2011527130A JP5254449B2 JP 5254449 B2 JP5254449 B2 JP 5254449B2 JP 2011527130 A JP2011527130 A JP 2011527130A JP 2011527130 A JP2011527130 A JP 2011527130A JP 5254449 B2 JP5254449 B2 JP 5254449B2
Authority
JP
Japan
Prior art keywords
symbol
host
host device
nonvolatile memory
boot code
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.)
Active
Application number
JP2011527130A
Other languages
English (en)
Other versions
JPWO2011070747A1 (ja
Inventor
昌之 外山
正 小野
伸一郎 西岡
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2011527130A priority Critical patent/JP5254449B2/ja
Publication of JPWO2011070747A1 publication Critical patent/JPWO2011070747A1/ja
Application granted granted Critical
Publication of JP5254449B2 publication Critical patent/JP5254449B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ホスト装置と1以上の不揮発性記憶装置とを含んで構成され、ホスト装置の指示に不揮発性記憶装置が応答してデータの書き込みおよび/または読み出しを行う記憶システムに関し、特にホスト装置が不揮発性記憶装置に保持したブートコードを読み出す方法に関する。
従来から、ホスト装置と1以上の不揮発性記憶装置を接続し、ホスト装置の発行するコマンドに不揮発性記憶装置が応答して各種通信を行う記憶システムが知られている。このような記憶システムにおいて、システム起動時にホスト装置は当該記憶システムに接続された不揮発性記憶装置から当該記憶システムを起動するためのブートコードと呼ばれるプログラムを読み出す処理が必要である。このようなプログラムは、従来、NOR型フラッシュメモリに保持されていたが、近年、NAND型フラッシュメモリやNAND型フラッシュメモリを用いた不揮発性記憶装置の大容量化・低コスト化に伴い、ブートコードをこのようなNAND型フラッシュメモリやNAND型フラッシュメモリを用いた不揮発性記憶装置に保持し、システム起動時に読み出すことが行われるようになっている。通常、NAND型フラッシュメモリやNAND型フラッシュメモリを用いた不揮発性記憶装置では、コマンドを用いてデータの読み出しや書き込みを行うが、ブートコードの読み出しは、システム起動時のソフトが起動していない状態で行う必要がある。このため、記憶システムにおいて、ブートコードをできるだけ簡便な方法で読み出すことが必要となる。
例えば、特許文献1には、SD/MMCインタフェースを持つデバイスに対して、SD/MMCインタフェースのコマンド用信号線を用いて、起動時にブートコードを読み出す技術が開示されている。
特表2009-524139号公報
近年、ホスト装置の備える端子数が増加しており、不揮発性記憶装置を含む複数のデバイスをチェーン接続、リング接続、あるいはハブ接続により接続し、ホスト装置の端子数を増やすことなく構成した記憶システムが必要となっている。このようなシステムでは、不揮発性記憶装置に加え無線LAN装置など各種ネットワーク装置やI/O装置が接続される。また、扱うデータ量の増大と高ビットレート化に伴い、ホスト装置と不揮発性記憶装置とのインタフェースも従来のシングルエンド方式用のインタフェースではなく、差動シリアル方式を用いてデータの送受信を行うためのインタフェースが採用されることが多くなってきている。
しかし、特許文献1に開示された従来技術では、SD/MMCインタフェースを用いるため、複数のデバイスを接続することができない。また、上記従来技術では、差動シリアル方式でデータの転送を行う場合に必要となる、差動シリアルインタフェースの起動や、受信データとクロックの同期確立などの処理も考慮されていないため、高速なインタフェースを備えるホスト装置と不揮発性記憶装置とを複数接続した記憶システムに、上記従来技術を適用することができない。
本発明は、以上の問題点を解決し、ホスト装置と1以上の不揮発性記憶装置とを含む記憶システムにおいて、ホスト装置が簡便な方法で不揮発性記憶装置のブートコードを読み出すことが可能な、不揮発性記憶装置、ホスト装置および記憶システムを提供することを目的とする。
第1の発明は、ホスト装置との間でデータの送受信を行う不揮発性記憶装置であって、1または複数の不揮発性メモリと、コントローラ部と、を備える。
コントローラ部は、不揮発性メモリのデータの読み出しおよび/または書き込みを制御する。
コントローラ部は、ホストIF部と、メモリ制御部とを含む。
メモリ制御部は、不揮発性メモリからホスト装置のブートコードを読み出す。
ホストIF部は、
(1)ホスト装置からインタフェースの起動を指示する信号であるインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信し、
(2)インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第1のシンボルを受信した場合、受信したのと同じ第1のシンボルをホスト装置へ送信し、
(3)第1のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
この不揮発性記憶装置では、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信された信号と同じ信号をホスト装置に送信するだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、個々の不揮発性記憶装置は、上記と同様の処理を行うだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
したがって、この不揮発性記憶装置を、ホスト装置と1以上の不揮発性記憶装置とを含む記憶システムに用いることで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。
なお、「インタフェース起動信号」とは、不揮発性記憶装置のインタフェース起動処理を行うための信号であり、不揮発性記憶装置は、インタフェース起動信号を受信することで、インタフェース起動処理を実行し、外部(例えば、ホスト装置や自装置以外の不揮発性記憶装置)とのデータ通信が可能な状態にする。
また、「同じ」信号(あるいはシンボル)とは、その信号(あるいはシンボル)が搬送する論理的な情報が同一であることをいい、例えば、第1のシンボルと同じシンボルとは、第1のシンボルが同期用コードとBoot要求コードからなる場合、当該同期用コードとBoot要求コードが同一であることを意味する。
第2の発明は、第1の発明であって、ホストIF部は、ホスト装置から第1のシンボルを受信した場合、該受信した第1のシンボルと同じまたは異なる同期シンボルをホスト装置へ送信し、同期シンボル送信後にホスト装置からアイドルシンボルを受信すると、ホスト装置へアイドルシンボルを送信する。
コントローラ部は、ホストIF部がアイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする。
ホストIF部は、ホストIF部がアイドルシンボル送信し、コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
この不揮発性記憶装置では、第1のシンボルを受信した場合に、アイドルシンボルをホスト装置へ送信し、さらに、ホスト装置からアイドルシンボルを受信した場合、自装置(不揮発性記憶装置)がアイドル状態となるように制御される。これにより、この不揮発性記憶装置では、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードをホスト装置へ送信することができる。したがって、確実かつ適切に、不揮発性記憶装置からホスト装置へブートコードを送信することができる。
なお、「アイドル状態」とは、起動処理が完了し、利用可能であるが何の処理も実行されていない状態をいう。
第3の発明は、第1または第2の発明であって、ホストIF部は、ホスト装置が送信したデータを8b/10b復号化して受信し、ホスト装置へデータを8b/10b符号化して送信するものである。
そして、ホストIF部は、
(1)ホスト装置から受信データとして同期コードを含むシンボルを受信すると、受信データと受信データを受信するためのクロック信号の位相を合わせて同期を確立させ、
(2)クロック信号と受信データとの同期を確立させた後に、ホスト装置から同期コードを含む第1のシンボルを受信すると、受信したのと同じ第1のシンボルをホスト装置へ送信し、当該第1のシンボルの送信後、メモリ制御部が不揮発性メモリから読み出したブートコードをホスト装置へ送信する。
これにより、この不揮発性記憶装置では、8b/10b符号を用いて、簡単に、同期確立処理を行うことができる。
第4の発明は、第1から第3のいずれかの発明であって、ホストIF部は、所定のサイズのデータを送信したらブートコードの送信を終了する。
第5の発明は、第1から第4のいずれかの発明であって、ホストIF部は、ブートコードのデータを所定の長さのブロック単位で分割して送信する。
第6の発明は、第の発明であって、ホストIF部は、自装置がブートコードを保持しない場合は、受信した同期コードを含む第1のシンボルをそのまま送信する。
コントローラ部は、ホストIF部が、自装置がブートコードを保持しない場合であって、受信した同期コードを含む第1のシンボルをそのまま送信した場合、自装置の状態がアイドル状態のまま保持されるように、当該自装置を制御する、
なお、「送信する」とは、目的の装置(例えば、ホスト装置)へ向かってデータを送信することを含む概念であり、例えば、目的の装置までの通信経路の途中に、目的外の装置があり、その装置を経由して、目的の装置にデータを送信することを含む概念である。
また、「そのまま送信する」とは、受信したデータ(信号)と同一のデータ(信号)を、自装置(不揮発性記憶装置)の外部に送信することを含む概念である。
第7の発明は、1または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムのホスト装置であって、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置IF部と、を備える。
不揮発性記憶装置IF部は、
(1)インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信し、
(2)インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第1のシンボルを不揮発性記憶装置へ送信し、
(3)不揮発性記憶装置から、不揮発性記憶装置へ送信した第1のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信する。
このホスト装置では、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信した信号と同じ信号を不揮発性記憶装置から受信することで、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、ホスト装置は、個々の不揮発性記憶装置に対して、上記と同様の処理を行うだけでよいので、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
したがって、このホスト装置を、ホスト装置と1以上の不揮発性記憶装置とを含む記憶システムに用いることで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。
第8の発明は、第7の発明であって、不揮発性記憶装置IF部が、第1のシンボルを不揮発性記憶装置へ送信した場合であって、不揮発性記憶装置IF部が、不揮発性記憶装置から、送信した第1のシンボルと同一のデータを受信した場合、あるいは、送信した第1のシンボルに応答するデータを受信した場合、
(1)不揮発性記憶装置IF部は、不揮発性記憶装置へアイドルシンボルを送信し、
(2)制御部は、不揮発性記憶装置IF部がアイドルシンボルを送信し不揮発性記憶装置からアイドルシンボルを受信した場合、ホスト装置の状態をアイドル状態にする。
(3)不揮発性記憶装置IF部は、不揮発性記憶装置IF部がアイドルシンボルを送信し、制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信する。
このホスト装置では、第1のシンボルを不揮発性記憶装置へ送信し、不揮発性記憶装置からアイドルシンボルを受信すると、自装置(ホスト装置)をアイドル状態となるように制御される。これにより、このホスト装置では、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードを不揮発性記憶装置から受信することができる。したがって、このホスト装置では、確実かつ適切に、不揮発性記憶装置から送信されてくるブートコードを受信することができる。
第9の発明は、ホスト装置と1または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムである。
前記ホスト装置は、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置IF部と、を備える。
前記不揮発性記憶装置は、1または複数の不揮発性メモリと、不揮発性メモリのデータの読み出しおよび/または書き込みを制御するコントローラ部と、を備える。
前記コントローラ部は、ホストIF部と、不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含む。
そして、この記憶システムは、以下の処理を行う。
(H1)不揮発性記憶装置IF部は、インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信する。
(S1)ホストIF部は、ホスト装置からインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信する。
(H2)不揮発性記憶装置IF部は、インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第1のシンボルを不揮発性記憶装置へ送信する。
(S2)ホストIF部は、インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第1のシンボルを受信した場合、受信したのと同じ第1のシンボルをホスト装置へ送信する。
(S3)ホストIF部は、第1のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
(H3)不揮発性記憶装置IF部は、不揮発性記憶装置から、不揮発性記憶装置へ送信した第1のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信する。
この記憶システムでは、インタフェース起動処理およびブートコード読み出し処理のいずれにおいても、ホスト装置から送信された信号と同じ信号をホスト装置に送信するだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。そして、複数の不揮発性記憶装置がホスト装置と接続されている記憶システムにおいても、個々の不揮発性記憶装置は、上記と同様の処理を行うだけで、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を開始させることができる。
したがって、この記憶システムでは、ホスト装置と1以上の不揮発性記憶装置とを含む場合であっても、簡単かつ適切に、インタフェース起動処理およびブートコード読み出し処理を行うことができる。
第10の発明は、第9の発明であって、以下の処理を行う。
(HH1)不揮発性記憶装置IF部は、第1のシンボルを不揮発性記憶装置へ送信する。
(SS1)ホストIF部は、ホスト装置から第1のシンボルを受信した場合、該受信した第1のシンボルと同じまたは異なる同期シンボルをホスト装置へ送信する。
(HH2)不揮発性記憶装置IF部が、不揮発性記憶装置から、送信した第1のシンボルと同一のデータを受信した場合、あるいは、送信した第1のシンボルに応答するデータを受信した場合、不揮発性記憶装置IF部は、不揮発性記憶装置へアイドルシンボルを送信する。
(HH3)ホスト装置の制御部は、不揮発性記憶装置IF部がアイドルシンボルを送信した後、ホスト装置の状態をアイドル状態にする。
(SS2)ホストIF部は、ホスト装置へ同期シンボル送信後にホスト装置からアイドルシンボルを受信すると、ホスト装置へアイドルシンボルを送信する。
(SS3)不揮発性記憶装置のコントローラ部は、ホストIF部がアイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする。
この記憶システムでは、第1のシンボルを受信した場合に、ホスト装置をアイドル状態にするためのアイドルシンボルをホスト装置へ送信し、自装置(不揮発性記憶装置)もアイドル状態となるように制御される。これにより、この記憶システムでは、簡単な方法で、ホスト装置および不揮発性記憶装置の両方をアイドル状態にし、ブートコードを送信する準備を行うことができる。
第11の発明は、第10の発明であって、ホストIF部は、ホストIF部がアイドルシンボル送信し、コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、メモリ制御部が読み出したブートコードをホスト装置へ出力する。
不揮発性記憶装置IF部は、不揮発性記憶装置IF部がアイドルシンボルを送信し、制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信する。
これにより、この記憶システムでは、ホスト装置および不揮発性記憶装置の両方がアイドル状態になっている状態から、ブートコードをホスト装置へ送信することができる。さらに、この記憶システムでは、ホスト装置が、ブートコードの受信状況を示すステータス情報を、不揮発性記憶装置へ送信するので、ブートコードが正しく不揮発性記憶装置からホスト装置へ送信されたか否かを知ることができる(例えば、このステータスを使って、ブートコードの再送処理等を行うこともできる)。
したがって、この記憶システムでは、確実かつ適切に、不揮発性記憶装置からホスト装置へブートコードを送信することができる。
第12の発明は、第9から第11のいずれかの発明であって、不揮発性記憶装置は、所定サイズのデータを送信するとブートコードの送信を終了し、ホスト装置は、所定のサイズのブートコードデータを受信すると、不揮発性記憶装置のブートコードの送信が終了したと判断する。
第13の発明は、第9から第11のいずれかの発明であって、ホスト装置は、不揮発性記憶装置がブートコードのデータを所定の長さのブロック単位で送信した場合、該ブートコードのデータを受信する。
第14の発明は、第9から第11のいずれかの発明であって、不揮発性記憶装置は、ブートコードを保持しない場合は、受信した同期コードを含む第1のシンボルをそのまま送信する。
ホスト装置は、所定の回数または所定の時間同期コードを含む第1のシンボルを送信した後、ブートコードのデータを受信しない場合、不揮発性記憶装置がブートコードを保持しないと判定する。
第15の発明は、第14の発明であって、第1のシンボルは、ブートデバイス識別子を含む。
ホスト装置は、同期コードを含む第1のシンボルに、ブートコードを出力する不揮発性記憶装置を指定するブートデバイス識別子を付加して送信する。
不揮発性記憶装置は、第1のブートデバイスフラグ情報と第2のブートデバイスフラグ情報とを格納する格納部を備え、同期コードを含む第1のシンボルを受信すると、受信した同期コードを含む第1のシンボルに含まれるブートデバイス識別子に基づいてブートコードを送信するか否かを判定する。
第16の発明は、第9から第15のいずれかの発明であって、ホスト装置と1または複数の不揮発性記憶装置とは、リング接続される。
第17の発明は、第9から第15のいずれかの発明であって、ホスト装置と1または複数の不揮発性記憶装置とは、ハブを介してハブ接続される。
第18の発明は、ホスト装置と1または複数の不揮発性記憶装置との間でのデータ通信方法であって、ホスト装置の全部又は一部を制御する制御部と、不揮発性記憶装置IF部と、を備える前記ホスト装置と、1または複数の不揮発性メモリと、ホストIF部と、不揮発性メモリのデータの読み出しおよび/または書き込みを制御するコントローラ部であって、前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含むコントローラ部と、を備える1または複数の不揮発性記憶装置と、の間のデータ通信方法である。
このデータ通信方法は、以下のステップを備える。
(H1)不揮発性記憶装置IF部が、インタフェースの起動を指示する信号であるインタフェース起動信号を不揮発性記憶装置へ送信するステップ。
(S1)ホストIF部が、ホスト装置からインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号をホスト装置へ送信するステップ。
(H2)不揮発性記憶装置IF部が、インタフェース起動信号の送信後、ホスト装置からブートコードの読み出しを指示する第1のシンボルを不揮発性記憶装置へ送信するステップ。
(S2)ホストIF部が、インタフェース起動信号をホスト装置へ送信した後に、ホスト装置からブートコードの読み出しを指示する第1のシンボルを受信した場合、受信したのと同じ第1のシンボルをホスト装置へ送信するステップ。
(S3)ホストIF部が、第1のシンボルをホスト装置に送信した後、メモリ制御部が読み出したブートコードをホスト装置へ出力するステップ。
(H3)不揮発性記憶装置IF部が、不揮発性記憶装置から、不揮発性記憶装置へ送信した第1のシンボルと同じデータを受信した後、不揮発性記憶装置が送信したブートコードを受信するステップ。
これにより、第9の発明と同様の効果を奏するデータ通信方法を実現することができる。
第19の発明は、第18の発明のデータ通信方法をコンピュータに実行させるためのプログラムである。
これにより、第9の発明と同様の効果を奏するデータ通信方法をコンピュータに実行させるプログラムを実現することができる。
本発明によれば、ホスト装置と1以上の不揮発性記憶装置を含む記憶システムにおいて、ホスト装置が簡便な仕組みで不揮発性記憶装置からブートコードを読み出すことが可能なホスト装置、不揮発性記憶装置および記憶システムを提供することができる。
第1実施形態に係る記憶システムの構成を説明する図 第1実施形態に係る記憶システムの通常の起動シーケンスおよびブートコード読み出しシーケンスを説明する図 第1実施形態に係る記憶システムのブートコード読み出しシーケンスを説明する図 第1実施形態に係る記憶システムのブートコード出力を停止する処理を説明する図 第1実施形態に係る記憶システムのブートコードのデータフォーマットを説明する図 第2実施形態に係る記憶システムのホスト装置と不揮発性記憶装置の接続形態を説明する図 第2実施形態に係るホスト装置と不揮発性記憶装置がリング接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図 第2実施形態に係るホスト装置と不揮発性記憶装置がチェーン接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図 第2実施形態に係るホスト装置と不揮発性記憶装置がハブ接続された場合の、記憶システムのブートコード読み出しシーケンスを説明する図 第1〜3実施形態に係る記憶システムにおいて、ホスト装置が発行する同期コードを含む第1および第2のシンボルの構成を説明する図 第3実施形態に係る不揮発性記憶装置が保持するブートデバイスフラグを説明する図 第3実施形態に係る記憶システムのブートコード読み出しシーケンス(ブート要求コードのIDが0の場合)を説明する図 第3実施形態に係る記憶システムのブートコード読み出しシーケンス(ブート要求コードのIDが1の場合)を説明する図 第1実施形態に係る記憶システムの別のブートコード読み出しシーケンスを説明する図 第1実施形態に係る記憶システムのブートコードのデータフォーマットを説明する図 第2実施形態に係る記憶システムにおける、ブートコードを保持するデバイスの接続位置を説明する図
以下、本発明の実施形態について、図面を参照しながら説明する。なお、説明中で同じ符号、記号、数字は特に説明が無い限り同じ構成要素を示すものとする。
[第1実施形態]
<1.1:記憶システムの構成>
図1は、第1実施形態に係る記憶システム1000の構成を示すブロック図である。図1に示すように、記憶システム1000は、ホスト装置2と不揮発性記憶装置1とで構成される。ホスト装置2と不揮発性記憶装置1とは、(1)クロックCLK、(2)ホスト装置2から不揮発性記憶装置1へデータを送る信号線DAT0、および(3)不揮発性記憶装置1からホスト装置2へデータを送る信号線DAT1を用いて、コマンドや応答、データの送受信を行う。なお、図1において、本発明の説明に不要な要素は図示していない。
記憶システム1000では、CLK、DAT0、DAT1により送受信される信号(データ)は、差動シリアル伝送方式を用いて伝送される。なお、CLK、DAT0、DAT1により送受信される信号は、シングルエンド方式を用いて通信することも可能である。記憶システム1000において、データを送る信号線の数はDAT0、DAT1の2本に限定されず、より多くの信号線を用いることもよく、より多くの信号線を用いることで、より高速な通信が可能となる。ホスト装置2から不揮発性記憶装置1へ送るデータの信号線の数と不揮発性記憶装置1からホスト装置2へ送るデータの信号線の数とは同じであっても異なっていてもよい。
(1.1.1:ホスト装置の構成)
ホスト装置2は、図1に示すように、全体を制御するCPU22と、ROM25と、RAM26と、主記憶部23と、周辺回路24と、不揮発性記憶装置IF部21と、を含んで構成される。これらは同じ半導体LSIとして実現しても、異なる半導体LSIで実現してもよく、さらにハードウェアとソフトウェアを組み合わせて実現してもよい。
不揮発性記憶装置IF部21は、不揮発性記憶装置1と、クロック信号伝送路CLK、データ伝送路DAT0、データ伝送路DAT1を用いて通信を行う機能を有している。さらに、不揮発性記憶装置IF部21は、不揮発性記憶装置1からシステム起動時にブートコードを読み出す制御を行うブート制御部25を備える。
ブート制御部25は、ハードウェアで実現してもよく、あるいはハードウェアと、ハードウェアに対してブートコード読み出し制御を行う簡便なソフトウェアとの組み合わせで実現してもよい。
なお、ホスト装置2の各機能部は、図1に示すように、バスにより接続されるものであってもよく、また、ホスト装置2の各機能部の全部または一部が、直接接続されるものであってもよい。
(1.1.2:不揮発性記憶装置の構成)
不揮発性記憶装置1は、コントローラ部11と、1以上の不揮発性メモリ12と、を含んで構成される。
コントローラ部11は、ホストIF部111と、メモリ制御部112と、を含む。
メモリ制御部112は、図1に示すように、CPUやROM/RAM、不揮発性メモリとの間でデータの転送を行うためのバッファやシーケンサを含んで構成される。これらは、同じ半導体LSIとして実現しても、異なる半導体LSIで実現してもよく、さらにハードウェアとソフトウェアを組み合わせて実現してもよい。
ホストIF部111は、ホスト装置2と、クロック信号伝送路CLK,データ伝送路DAT0、データ伝送路DAT1を用いて通信を行う機能を有している。また、ホストIF部111は、ホスト装置2からの指示に応じて不揮発性メモリ12に保持するブートコードをホスト装置2へ転送するブート制御部113を含んで構成される。
なお、不揮発性記憶装置1の備えるクロック信号伝送路CLK、データ伝送路DAT0、データ伝送路DAT1は1組でもよく、あるいは、不揮発性記憶装置1が後述するチェーン接続を実現可能な場合には、クロック信号伝送路CLK、データ伝送路DAT0、データ伝送路DAT1を2組備えてもよい。
また、クロック信号伝送路CLKについては、図1では、データ伝送路DAT0およびデータDAT1とは異なる端子により接続される伝送路としているが、これに限定されることはなく、例えば、記憶システム1000において、信号線(例えば、データ伝送路DAT0および/またはデータDAT1)で伝送される信号(データ)にクロック信号を重畳して伝送するエンベデッドクロック伝送方式を用いることもでき、その場合には、クロック信号伝送路CLKおよび当該クロック信号伝送路CLK用の端子は不要である。
また、本実施形態に係る不揮発性記憶装置1は、図1に示すように、ブートコードを不揮発性メモリ12に保持するが、これに限定されることはなく、例えば、メモリ制御部112やホストIF部111に設けたROMやフラッシュメモリなど別のメモリ(例えば、不揮発性メモリ)にブートコードを保持するようにしてもよい。
なお、説明便宜のため、第1実施形態に係るホスト装置2と不揮発性記憶装置1とは、データを8b/10b変換して送信するものとする。すなわち、ホスト装置2と不揮発性記憶装置1とは、送信するデータを8ビット毎に10ビットのコードに符号化して送信する。このような変換は、例えば、ANSI INCITS 230−1994で定義されており、10ビットのコードには、8ビットのデータ0x00〜0xFFを表すための256通りのDコードのほかに、Kコードと呼ばれる制御用のコードも規定されている。Kコードは、例えば、データブロックの先頭や最後を現す特別なシンボルや、後述する同期確立用として使用される。
<1.2:記憶システムの動作>
以上のように構成された記憶システム1000の動作について、以下、説明する。
(1.2.1:通常の起動シーケンス)
まず、記憶システム1000における通常の起動シーケンスについて、説明する。
図2A(a)は、第1実施形態に係る記憶システム1000における、ホスト装置2と不揮発性記憶装置1との間の通常の起動シーケンスを説明する図である。
(時刻T21からの処理):
図2A(a)において、ホスト装置2は、時刻T21において、CLK線(クロック信号伝送路CLK)にクロックを供給すると共に、信号線(データ伝送路)DAT0を用いてIF起動信号S21を不揮発性記憶装置1へ送る。なお、IF起動信号S21は、信号線DAT0をロー(論理値が0)固定(ローレベルを示す電圧値に固定)やハイ(論理値が1)固定(ハイレベルを示す電圧値に固定)として、ホスト装置2から不揮発性記憶装置1へ通知してもよく、あるいは何らかのパターン(パターン信号)をホスト装置2から不揮発性記憶装置1へ送るようにしてもよい。パターン(パターン信号)を送る場合には、所定のパターンを繰り返し送るようにしてもよい。また、その場合に信号線の値が変わる周期はクロック信号伝送路CLKで供給されるクロック信号の周波数(クロック周波数)と同じでもよく、あるいは、クロック周波数より速くても遅くてもよい(クロック周波数の周期より速い周期で信号線の値が変化するものであってもよく、あるいは、クロック周波数の周期より遅い周期で信号線の値が変化するものであってもよい)。
不揮発性記憶装置1は、ホスト装置2からIF起動信号S21を受信したことを検出すると、信号線(データ伝送路)DAT1を用いて、ホスト装置2へIF起動信号S22を送る。ここで、IF起動信号S22は、ホスト装置2が送ったIF起動信号S21と同じであってもよいし異なっていてもよい。
(時刻T22からの処理):
ホスト装置2は、不揮発性記憶装置1からIF起動信号S22を受信すると、時刻T22において、同期シンボルS23を、信号線DAT0を用いて、不揮発性記憶装置1に送信する。ここで、同期シンボルS23は、不揮発性記憶装置1がクロック線CLKで伝送されるクロック信号とデータ線DAT0で伝送される信号(データ)との位相を合わせて正しくデータを受信することができるようにするための同期確立に用いられ、同期シンボルS23は、例えば、Kコードの1つであるコンマ符号(例えばK28.5、001111 1010または110000 0101)である。あるいは、同期シンボルS23は、コンマ符号を含む1つまたは複数のコードで構成されるシンボルであってもよい。同期シンボルS23は、不揮発性記憶装置1が同期を確立するのに十分な、所定の回数だけ繰り返し送信される。
不揮発性記憶装置1は、同期シンボルS23を受信し、クロック線CLKで伝送されるクロック信号とデータ線DAT0で伝送される信号(データ)との位相を合わせて正しくデータを受信できるようになると、データ線DAT1を用いて同期シンボルS24をホスト装置2へ送る。同期シンボルS24は、ホスト装置2が、データ線DAT1で伝送される信号(データ)と、データ線DAT1で伝送される信号(データ)を受信するホスト装置2内部のクロック信号と、の位相を合わせて正しくデータを受信するために使用される。同期シンボルS24は、ホスト装置2が送る同期シンボルS23と同じでもよく、あるいは、複数のコードで構成する場合には、同期シンボルS23と異なる構成でもよい。ただし、同期確立のためのコード、例えば、コンマ符号が含まれることは、同期シンボルS23も同期シンボルS24も同じである。
(時刻T24からの処理):
ホスト装置2は、不揮発性記憶装置1が送った同期シンボルS24を受信すると、時刻T24で、データ線DAT0を用いて、アイドル状態を示すアイドルシンボルS25を、不揮発性記憶装置1に送る。アイドルシンボルS25は、任意のコードであるが、ホスト装置2および不揮発性記憶装置1が同期確立状態を維持できるよう、同期確立のためのコンマ符号などのコードを含むことも可能である。
(時刻T25からの処理):
不揮発性記憶装置1は、アイドルシンボルS25を受信すると、時刻T25において、データ線DAT1を用いて、ホスト装置2へアイドルシンボルS26を送る。アイドルシンボルS26は、アイドルシンボルS25と同じであってもよいし、異なっていてもよい。
このようにして、記憶システム1000では、ホスト装置2と不揮発性記憶装置1とがお互いに同期を確立した後に、アイドルシンボルを送ると、通常の起動シーケンスが完了し、以降、ホスト装置2と不揮発性記憶装置1とは、コマンドや応答、データを用いた通信を行うことができるようになる。
(1.2.2:ブートコード読み出しシーケンス)
次に、記憶システム1000におけるブートコード読み出しシーケンスについて、説明する。
図2A(b)は、第1実施形態に係る記憶システム1000における、ホスト装置2と不揮発性記憶装置1との間のブートコードの読み出し開始シーケンスを説明する図である。なお、図2A(b)では図2A(a)と同じ要素は同じ番号を用いて表している。
(時刻T26からの処理):
図2A(b)において、ホスト装置2は、時刻T26において、CLK線にクロック信号を供給すると共に、データ線DAT0を用いて、IF起動信号S21を不揮発性記憶装置1へ送る。
不揮発性記憶装置1は、IF起動信号S21を受信したことを検出すると、データ線DAT1を用いて、ホスト装置2へIF起動信号S22を送る。
(時刻T27からの処理):
ホスト装置2は、不揮発性記憶装置1からIF起動信号S22を受信すると、時刻T27において、同期コードを含む第1のシンボルS27を、データ線DAT0を用いて、不揮発性記憶装置1へ送信する。ここで、第1のシンボルS27は、不揮発性記憶装置1に対して、不揮発性メモリ12に保持するブートコードを、データ線DAT1を用いて出力させる指示のためのシンボルであり、不揮発性記憶装置1がブートコードの出力を終了するまで繰り返し送信される。なお、第1のシンボルの送信は、不揮発性記憶装置1がブートコードの出力を開始したら終了してもよく、あるいは所定の回数(例えば、256回、1000回など)や所定の時間(例えば、10ms、200msなど)送信したら終了するようにしてもよい。この場合、ホスト装置2は、所定の回数または所定の時間、第1のシンボルS27を送信した後、不揮発性記憶装置1からブートコードのデータを受信しない場合、不揮発性記憶装置1がブートコードを保持しないか、あるいは、エラー等により不揮発性記憶装置1がブートコードを出力できないと判定する。
(時刻T28からの処理):
不揮発性記憶装置1は、ホスト装置2から第1のシンボルS27を受信すると、時刻T28において、第2のシンボルS28をホスト装置2へ送信する。そして、不揮発性記憶装置1は、ブートコードを出力する準備ができると、時刻T29において、ブートコードをブートコード出力シンボルに続いてホスト装置2へ出力する。
ホスト装置2は、不揮発性記憶装置1からブートコードを受信すると、受信したブートコードを主記憶部23に展開する。そして、ホスト装置2は、主記憶部23で展開したコードを処理することで、以降のシステム起動処理を行う。
なお、不揮発性記憶装置1が送信する同期コードを含む第2のシンボルS28は、ホスト装置2が送るシンボルS27と同じであってもよいし、異なっていてもよいが、シンボルS27、シンボルS28とも同期確立のためのコードを含んで構成される。
また、別の一例として、記憶システム1000において、例えば、図2Bに示すようにして、ブートコード読み出しシーケンスを行うようにしてもよい。この場合の処理について、図2Bを用いて、説明する。
図2Bは、第1実施形態に係る記憶システム1000における、ホスト装置2と不揮発性記憶装置1との間のブートコードの読み出し開始シーケンスを説明する図である。なお、図2Bでは図2Aと同じ要素は同じ番号を用いて表している。
(時刻T201からの処理):
図2Bにおいて、ホスト装置2は、時刻T201において、CLK線にクロック信号を供給すると共に、データ線DAT0を用いて、IF起動信号S21を不揮発性記憶装置1へ送る。
不揮発性記憶装置1は、IF起動信号S21を受信したことを検出すると、データ線DAT1を用いて、ホスト装置2へIF起動信号S22を送る。
(時刻T202からの処理):
ホスト装置2は、不揮発性記憶装置1からIF起動信号S22を受信すると、時刻T202において、同期コードを含む第1のB同期シンボル(BSYN1)S210を、データ線DAT0を用いて、不揮発性記憶装置1へ送信する。
ここで、第1のB同期シンボル(BSYN1)S210は、不揮発性記憶装置1に対して、不揮発性メモリ12に保持するブートコードを、データ線DAT1を用いて出力させる指示のためのシンボルであり、不揮発性記憶装置1から第2のB同期シンボル(BSYN2)S211の受信が確認されるまで、繰り返し送信される。
なお、第1のB同期シンボル(BSYN1)S210は、同期コードを含むシンボルであり、第1のシンボルS27と同じシンボルであってもよく、あるいは、異なるシンボルであってもよい。
また、第2のB同期シンボル(BSYN2)S211は、第1のB同期シンボル(BSYN1)S210と同一のシンボルであってもよく、また、異なるシンボルであってもよい。また、第2のB同期シンボル(BSYN2)S211は、同期コードを含むシンボルであり、第2のシンボルS28と同じシンボルであってもよく、あるいは、異なるシンボルであってもよい。
(時刻T203からの処理):
不揮発性記憶装置1は、ホスト装置2から第1のB同期シンボルS210を受信すると、時刻T203において、第2のB同期シンボルS211をホスト装置2へ送信する。
(時刻T204からの処理):
そして、ホスト装置2は、不揮発性記憶装置1から第2のB同期シンボルS211を受信すると、時刻T204において、アイドルシンボルS25を不揮発性記憶装置1へ送信する。
そして、不揮発性記憶装置1は、ホスト装置2からアイドルシンボルS25を受信すると、ホスト装置2へアイドルシンボルS26を送信する。
(時刻T205からの処理):
ホスト装置2は、時刻T205において、不揮発性記憶装置1からアイドルシンボルS26を受信すると、不揮発性記憶装置1からブートコードが送信されるのを待つ状態にし、アイドルシンボルS25を不揮発性記憶装置1へ送信し続ける。
不揮発性記憶装置1は、ブートコードの送信準備を行い、ブートコードの送信準備ができるまで、アイドルシンボルS26をホスト装置2へ送信し続ける。
(時刻T206からの処理):
不揮発性記憶装置1は、ブートコードの送信準備ができると、時刻T206において、ホスト装置2に対して、信号線DAT1を用いて、フロー制御の開始を要求するシンボルREQ(図2B(b)のシンボルS201)を送信する。その後、不揮発性記憶装置1は、ホスト装置2に対して、信号線DAT1を用いて、アイドルシンボルS26を送信する。
(時刻T207からの処理):
ホスト装置2は、不揮発性記憶装置1からのデータ受信準備ができたら、時刻T207において、信号線DAT0を用いて、不揮発性記憶装置1へシンボルRDY(図2B(b)のシンボルS202)を送信する。その後、ホスト装置2は、不揮発性記憶装置1に対して、信号線DAT0を用いて、アイドルシンボルS25を送信する。
(時刻T208からの処理):
不揮発性記憶装置1は、ホスト装置2からシンボルRDYを受信したら、時刻T208にデータ線DAT1を用いて、ブートコードをホスト装置2へ送信する。その後、不揮発性記憶装置1は、ホスト装置2に対して、信号線DAT1を用いて、アイドルシンボルS26を送信する。
なお、時刻T206からT207の間、ホスト装置2は、アイドルシンボルS25を、不揮発性記憶装置1へ送信し続ける。
(時刻T209からの処理):
図2B(b)に示すように、時刻T209において、ホスト装置2は、不揮発性記憶装置1に対して、信号線DAT0を用いて、ステータスシンボルS204(シンボルSTAT)を送信する。このステータスシンボルS204は、ホスト装置2が、不揮発性記憶装置1から送信されたブートコードを正しく受信されたか否かを示す情報を含んでいる。なお、ステータスシンボルS205には、ホスト装置2が、不揮発性記憶装置1から送信されたブートコードを正しく受信できなかったというエラーがあった場合、再度、不揮発性記憶装置1がブートコードを送信することで、当該エラーのリカバリー(回復)が可能か否かを示す情報を含むようにしてもよい(例えば、ホスト装置2が不揮発性記憶装置1から受信したデータにおいて、伝送路でのビット化けによりCRCエラーが発生しているような場合、再度、不揮発性記憶装置1がホスト装置2へデータ送信することで、正常に、データ送信が行うことができる可能性が高い。このようなエラーが上記で説明したリカバリー(回復)可能なエラーの一例である。)このように、リカバリー(回復)可能なエラーが発生している場合、記憶システム1000において、図2B(b)の時刻T206〜時刻T210の処理を、再度、実行するようにすることができる。このようにすることで、ホスト装置2は、より確実に、ブートコードを不揮発性記憶装置1から受信することができる。
ホスト装置2は、ステータスシンボルS204を不揮発性記憶装置1へ送信した後、アイドルシンボルS25を不揮発性記憶装置1へ送信する。
なお、記憶システム1000において、時刻T206〜時刻210の処理を所定回繰り返すようにしてもよい。例えば、16KBのブートコードを、不揮発性記憶装置1からホスト装置2へ送信する場合、2KBずつに分割したブートコードを送信する処理(時刻T206〜時刻210の処理)を、8回繰り返すようにすればよい。
以上のように、記憶システム1000において、REQシンボル(シンボルS201)およびRDYシンボル(シンボルS202)を用いてホスト装置2と不揮発性記憶装置1との間のフロー制御(ハンドシェーク通信によるフロー制御)を行い、さらに、不揮発性記憶装置1からホスト装置2へ送信されるブートコードを、ホスト装置2が正常に受信したか否かを示すステータスを、ホスト装置2から不揮発性記憶装置1へ返すことで(ハンドシェーク通信を行うことで)、より確実に、ブートコードを不揮発性記憶装置1からホスト装置2へ送信することができる。
なお、図2A(b)では、ホスト装置2は、IF起動信号を送信した後、第1のシンボルS27を不揮発性記憶装置1へ送信する場合を例示しているが、これに限定されることはなく、例えば、図9に示すように、通常の起動シーケンスを行った後に、第1のシンボルを不揮発性記憶装置1へ送るようにしてもよい。
(時刻T91からの処理):
すなわち、図9に示すように、ホスト装置2は、時刻T91において、不揮発性記憶装置1に対してクロック供給を開始すると共に、IF起動信号S21を不揮発性記憶装置1へ送信する。
不揮発性記憶装置1は、ホスト装置2からIF起動信号S21を受信すると、IF起動信号S22をホスト装置2へ送信する。
(時刻T92からの処理):
時刻T92において、ホスト装置2は、不揮発性記憶装置1からのIF起動信号S22を受信すると、同期シンボルS23を繰り返し不揮発性記憶装置1へ送信する。
不揮発性記憶装置1は、同期シンボルS23を受信し、データ線DAT0のデータを正しく受信できるようになると、時刻T93において、同期シンボルS24をホスト装置2へ送る。
(時刻T94からの処理):
ホスト装置2は、不揮発性記憶装置1から同期シンボルS24を受信し、DAT1のデータを正しく受信できるようになると、時刻T94において、第1のシンボルS27を不揮発性記憶装置1へ送信する。
(時刻T95からの処理):
不揮発性記憶装置1は、ホスト装置2から第1のシンボルS27を受信すると、時刻T95において、第2のシンボルS28をホスト装置2へ送信した後、ブートコードを送信する準備ができると、第2のシンボルに引き続いてブートコードをホスト装置2へ送信する。
上記のようにして、記憶システム1000において、ホスト装置2が通常の起動シーケンスを行った後に、第1のシンボルS27を不揮発性記憶装置1へ送るようにしてもよい。
次に、図3を用いて、ホスト装置2が不揮発性記憶装置1からのブートコードの出力を停止する処理について、説明する。
図3は、ホスト装置2が不揮発性記憶装置1からのブートコードの出力を停止する処理を説明する図である。
図3(a)に示すように、時刻T31において、ホスト装置2がデータ線DAT0でアイドルシンボルS25を不揮発性記憶装置1へ送ると、不揮発性記憶装置1は、ホスト装置2が送ったアイドルシンボルを受信、認識して、時刻T32において、ブートコードの出力を停止し、データ線DAT1でアイドルシンボルS26をホスト装置2へ送信する。
また、図3(b)に示すように、時刻T33において、ホスト装置2がデータ線DAT0で停止シンボルS30を不揮発性記憶装置1へ送ると、不揮発性記憶装置1は、ホスト装置2が送った停止シンボルを受信、認識して、時刻T34において、ブートコードの出力を停止し、データ線DAT1でアイドルシンボルS26をホスト装置2へ送信する。
また、図3(c)に示すよう、時刻T35において、不揮発性記憶装置1は、所定のサイズのブートコードのデータをホスト装置2へ送信し終わると、データ線DAT1でアイドルシンボルS26をホスト装置2へ送信する。
ホスト装置2は、不揮発性記憶装置1が送ったアイドルシンボルS26を受信、認識すると、データ線DAT0でアイドルシンボルS25を不揮発性記憶装置1へ送信する。
本実施形態に係る不揮発性記憶装置1は、図3(a)〜(c)の全ての場合にブートコード出力を停止してもよく、あるいは図3(a)〜(c)のいずれかの場合(いずれか2つの場合を含む。)にブートコード出力を停止するようにしてもよい。
また、図3(c)の場合において、不揮発性記憶装置1は、ホスト装置2へ、ブートコードのデータを全て出力するようにしてもよいし、あるいは、予め出力するサイズを標準化して定め、その定めたサイズのブートコードのデータを出力するようにしてもよい。あるいは、ホスト装置2が不揮発性記憶装置1へブートコードを書き込む際に、出力するデータサイズを設定できるようにしておくことも可能である。
(1.2.3:第1のシンボル、第2のシンボルのフォーマット)
次に、記憶システム1000において、ホスト装置2が不揮発性記憶装置1へ送信する第1のシンボル、および、不揮発性記憶装置1がホスト装置2へ送信する第2のシンボルのフォーマットについて、説明する。
図7は、本実施形態に係るホスト装置2および不揮発性記憶装置1が送信する第1のシンボルおよび第2のシンボルのフォーマットを説明する図である。
図7に示すように、本実施形態に係る第1のシンボルおよび第2のシンボルは、同期用コードを含んで構成される。
図7(a)の例では、第1のシンボルおよび第2のシンボルは、それぞれ、2つのコードで構成される。1つは、コンマ符号などの同期用コードである。もう一つは、Boot要求コードである。Boot要求コードは、8b/10b変換したコードが使用され、Kコードを用いるか、あるいは、0x0〜0xFFのいずれかを8b/10b変換したDコードが用いられる。なお、Boot要求コードとして用いるコードは、不揮発性記憶装置1がブートコード読み出し指示を識別できる任意のコードが使用可能である。
図7(b)の例では、第1のシンボルおよび第2のシンボルは、それぞれ、同期用コードおよびN個(Nは自然数)のBoot要求コードで構成される。Boot要求コード1〜Nは、それぞれ異なるコードであってもよく、同じコードであってもよい。また、Boot要求コード1〜Nとして、Kコードを用いてもよく、また、0x0〜0xFFのいずれかを8b/10b変換したDコードを用いてもよい。
また、図7(c)の例では、第1のシンボルおよび第2のシンボルは、それぞれ、同期用コードとBoot要求コードとで構成される。そして、図7(c)に示すように、Boot要求コードとして、複数のコード1〜Nが用いられる。この場合、異なるBoot要求コード1〜Nを含む第1のシンボルおよび第2のシンボルが送信される。Boot要求コード1〜Nは、それぞれ異なるコードであってもよいし、同じコードであってもよい。また、Boot要求コード1〜Nとして、Kコードを用いてもよいし、0x0〜0xFFのいずれかを8b/10b変換したDコードを用いてもよい。
上記のように、第1のシンボルおよび第2のシンボルに同期用コードを付加するのは、ブートコード読み出しの処理の中で、ホスト装置2および不揮発性記憶装置1がデータ線DAT0で通信される信号(データ)、および、データ線DAT1で通信される信号(データ)を正しく受信するための同期確立を同時に行うためである。
図7(a)〜(c)に示したいずれの場合も、第1のシンボルおよび第2のシンボルは、所定の回数、繰り返し送信されてもよい。すなわち、ホスト装置2は、第1のシンボルを少なくとも不揮発性記憶装置1がブートコードを出力し始めるまで繰り返し不揮発性記憶装置1へ送信してもよい。また、不揮発性記憶装置1は、第1のシンボルをホスト装置2から受信した後、ブートコードをホスト装置2へ送信するまで第2のシンボルをホスト装置2へ送信してもよい。また、Boot要求コードは、図7(d−1)に示すように、一つのコードでもよく、図7(d−2)に示すように、識別子IDを含むものであってもよい。
(1.2.4:データ出力方式)
次に、記憶システム1000において、不揮発性記憶装置1がデータ線DAT1でブートコードを送信するときの送信方式(データ出力方式)について、説明する。
図4は、不揮発性記憶装置1がデータ線DAT1でブートコードをホスト装置2へ送信するときの送信方式を説明する図である。
図4(a)は、不揮発性記憶装置1がブートコードのデータを区切りなく連続的にホスト装置2へ送信する場合を示しており、図4(b)は、不揮発性記憶装置1がブートコードを所定の長さdlen単位で区切ってブロック単位でホスト装置2へ送信する場合を示している。本実施形態に係る不揮発性記憶装置1は、図4(a)、(b)のいずれかの方式でブートコードを送信するものであってもよく、あるいは両方の方式で送信することができるものであってもよい。不揮発性記憶装置1が両方の方式により送信できる場合、ホスト装置2は、予め不揮発性記憶装置1に対して図4(a)、(b)のどちらの方式でデータを送信するかを指示しておく。
ブロックの長さdlenは、例えば、512バイトや1Kバイトなどであり、標準化された固定値でもよく、あるいはホスト装置2が予め不揮発性記憶装置1に設定しておいてもよい。なお、データ出力方式やブロック長をホスト装置2が予め設定する場合は、不揮発性記憶装置1は、設定された情報を不揮発な領域に保持しておく。
図10は、不揮発性記憶装置1が出力するデータのフォーマットを説明するための図である。
図10(a)に示すように、データは、Startシンボル1001と、ヘッダ1002と、ペイロード1003と、CRC1004と、Endシンボル1005とで構成される。Startシンボル1001、Endシンボル1005には、Kコードを含むシンボルが使用される。ヘッダ1002には、送信元や送信先のID、データ種別などが含まれる。ペイロード1003は、データの本体である。CRC1004は、ヘッダ1002、ペイロード1003の伝送路上でのエラーを検出するためのコードである。データのフォーマットは、図10(b)に示すように、ヘッダが無いフォーマットや、図10(c)に示すように、CRCも付加せず、Startシンボル1001、ペイロード1003、Endシンボル1005のみから構成されるフォーマットとしてもよい。
以上、図面を用いて説明したように、第1実施形態に係る記憶システム1000では、ホスト装置2が第1のシンボルを不揮発性記憶装置1へ送信してブートコードの読み出しを指示すると、不揮発性記憶装置1は、第2のシンボルをホスト装置2へ送信し、ホスト装置2へブートコードを送信する準備ができると、続いてデータを出力する(ホスト装置2へ送信する)。記憶システム1000において、第1のシンボルおよび第2のシンボルは、コンマ符号などのKコードを用いた同期確立用の同期用コードを含むため、ブートコード読み出し処理と合わせてホスト装置2、不揮発性記憶装置1が受信データの同期確立を行うことができる。このため、記憶システム1000では、簡便な仕組みでホスト装置2が不揮発性記憶装置1からブートコードを読み出すことができる。
[第2実施形態]
次に、第2実施形態について、説明する。
<2.1:ホスト装置と不揮発性記憶装置の接続形態>
図5は、第2実施形態に係る記憶システムにおけるホスト装置2と不揮発性記憶装置1a〜1cの接続形態を説明する図である。図5において、(a)はリング接続、(b)はチェーン接続、(c)はハブ3を介したハブ接続を示している。いずれの場合も、ホスト装置2では、信号線DAT0でデータを送信し、信号線DAT1でデータを受信する。また、不揮発性記憶装置1a〜1cでは、データ線DAT0でデータを受信し、データ線DAT1でデータを送信する。なお、図5(b)のチェーン接続の場合のみ、後段の不揮発性記憶装置との間で信号の伝送をするためのDAT0出力(信号線DAT0へデータを出力するための出力端子(出力インタフェース))、DAT1入力(信号線DAT0からデータを入力するための入力端子(入力インタフェース))が不揮発性記憶装置には存在する。
なお、図5において、クロック線CLKは図示されていないが、前述したとおり、独立した端子を用いてクロック線CLKが接続されるように、ホスト装置と各不揮発性記憶装置を接続してもよく、また、エンベデッドクロック方式を用いてホスト装置から各不揮発性記憶装へクロック信号を供給するようにしてもよい。また、本実施形態の記憶システムには、不揮発性記憶装置以外にWLANなど各種ネットワーク装置やIO装置も接続可能であり、その接続個数も限定されるものではない。以下の説明では、説明便宜のため、不揮発性記憶装置1bがブートコードを保持しているとする。
<2.2:ブートコード読み出しシーケンス>
次に、本実施形態の記憶システムにおけるブートコード読み出しシーケンスについて、説明する。
(2.2.1:リング接続でのブートコード読み出しシーケンス)
まず、本実施形態の記憶システムがリング接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
図6Aは、本実施形態の記憶システムにおいて、ホスト装置2と不揮発性記憶装置1a〜1cとがリング接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
図6Aに示すように、ホスト装置2は、IF起動信号を送信してIF(インタフェース)を起動した後、同期コードを含む第1のシンボルS61を不揮発性記憶装置へ送信する。第1のシンボルS61は、上記において、図7を用いて説明したいずれかのコードである。
不揮発性記憶装置1aは、ブートコードを保持していないため、受信した第1のシンボルS61を、そのまま次のデバイス(不揮発性記憶装置1b)へ送信する。
不揮発性記憶装置1bは、不揮発性記憶装置1aから第1のシンボルS61を受信すると、第2のシンボルS62を(不揮発性記憶装置1cへ)送信し、ブートコードを出力する準備が出来ると、続けてブートコードS63を(不揮発性記憶装置1cへ)出力する。
不揮発性記憶装置1cは、ブートコードを保持しないため、不揮発性記憶装置1bから受信した第2のシンボルS62およびブートコードS63をそのままホスト装置2へ送信する。
このようにして、本実施形態の記憶システム(リング接続形態)では、ホスト装置2は不揮発性記憶装置1bが送信した第2のシンボルS62とブートコードS63を受信し、システムの起動処理を行うことができる。
なお、図6Aでは第1のシンボルS61および第2のシンボルS62は、1つしか図示していないが、図2Aおよび図2Bを用いて説明したのと同様のシーケンスが実行されるように、繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図3、4および10を用いて説明したのと同様である。
(2.2.2:チェーン接続)
次に、本実施形態の記憶システムがチェーン接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
図6Bは、本実施形態の記憶システムにおいて、ホスト装置2と不揮発性記憶装置1a〜1cとがチェーン接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
図6Bに示すように、ホスト装置2は、IF起動信号を送信してIF(インタフェース)を起動した後、第1のシンボルS61を不揮発性記憶装置1aに送信する。第1のシンボルS61は、上記で図7を用いて説明したいずれかのコードである。
不揮発性記憶装置1aは、ブートコードを保持していないため、ホスト装置2から受信した第1のシンボルS61を、そのまま次のデバイス(不揮発性記憶装置1b)へ送信する。
不揮発性記憶装置1bは、不揮発性記憶装置1aから第1のシンボルS61を受信すると、第2のシンボルS62を不揮発性記憶装置1aに送信し、ブートコードを出力する準備が出来ると、続けてブートコードS63を不揮発性記憶装置1aに出力する。このとき不揮発性記憶装置1cへは第2のシンボルおよびブートコードを送信しない。
不揮発性記憶装置1aは、不揮発性記憶装置1bから受信した第2のシンボルS62およびブートコードS63をそのままホスト装置2へ送信する。
このようにして、本実施形態の記憶システム(チェーン接続形態)では、ホスト装置2は、不揮発性記憶装置1bが送信した第2のシンボルS62とブートコードS63を受信し、システムの起動処理を行うことができる。
なお、図6Bでは、第1のシンボルおよび第2のシンボルは1つしか図示していないが、上記で図2を用いて説明したのと同様に、第1のシンボルおよび第2のシンボルは繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図3、4および10を用いて説明したのと同様である。
(2.2.3:ハブ接続)
次に、本実施形態の記憶システムがハブ接続形態を取る場合のブートコード読み出しシーケンスについて、説明する。
図6Cは、本実施形態の記憶システムにおいて、ホスト装置2と不揮発性記憶装置1a〜1cとがハブ3を介してハブ接続された場合の、ブートコード読み出しシーケンスを説明するための図である。
図6Cに示すように、ホスト装置2は、IF起動信号を、ハブ3を介して各不揮発性記憶装置へ送信してIF(インタフェース)を起動した後、第1のシンボルS61を、ハブを介して各不揮発性記憶装置へ送信する。第1のシンボルS61は、上記で図7を用いて説明したいずれかのコードである。
ハブ3は、不揮発性記憶装置1a〜1cへ、ホスト装置2から受信した第1のシンボルS61を送信する。
不揮発性記憶装置1a、1cは、ブートコードを保持しないため、ハブ3から受信した第1のシンボルS61を、そのままハブ3へ送信する。
不揮発性記憶装置1bは、第1のシンボルS61を受信すると、第2のシンボルS62をハブ3へ送信し、ブートコードを出力する準備が出来ると、続けてブートコードS63をハブ3へ出力する。
ハブ3は、不揮発性記憶装置1bから受信した第2のシンボルS62とブートコードS63をホスト装置2へ送信する。
このようにして、本実施形態の記憶システム(ハブ接続形態)では、ホスト装置2は不揮発性記憶装置1bが送信した第2のシンボルS62とブートコードS63を受信し、システムの起動処理を行うことができる。
なお、図6Cでは、第1のシンボル及び第2のシンボルは1つしか図示していないが、上記で図2を用いて説明したのと同様に、第1のシンボル及び第2のシンボルは繰り返し送信される。また、ブートコードの送信の終了処理や、データのフォーマットは、図3、4および10を用いて説明したのと同様である。
また、図6Cでは、ブートコードを保持しない不揮発性記憶装置1a,1cは、受信した第1のシンボルをそのまま出力する場合について説明したが、これに限定されることはなく、例えば、ブートコードを保持しない不揮発性記憶装置が第1のシンボルを受信しても、何も出力しないようにしてもよい。あるいは、ハブ3に予めブートコードを保持する不揮発性記憶装置が接続されたポートを指定しておき、ハブ3は、ホスト装置2から受信した第1のシンボルを、当該予め指定されたポートに基づいて、ブートコードを保持する不揮発性記憶装置のみに送信するようにしてもよい。
また、図6A、図6Bでは、不揮発性記憶装置1bがブートコードを保持するとして説明したが、リング接続およびチェーン接続の場合は、図11(a),(b)に示すように、ホスト装置2の受信端(信号線DAT1の入力端子(入力インタフェース))に最も近い不揮発性記憶装置(図11(a)の不揮発性記憶装置1cおよび図11(b)の不揮発性記憶装置1aがこれに該当。)に保持することが望ましい。すなわち、リング接続の場合は、図11(a)に示すように、不揮発性記憶装置1cがブートコードを保持するのが好ましく、チェーン接続の場合は、図11(b)に示すように、不揮発性記憶装置1aがブートコードを保持することが好ましい。このようにすることで、ホスト装置の受信する第2のシンボルおよびブートコードの伝送経路が最短となり、記憶システムにおいて、信号品質を高めることができ、好適である。
以上、図面を用いて説明したように、第2実施形態に係る記憶システムでは、ホスト装置が第1のシンボルを送信してブートコードの読み出しを指示すると、(1)ブートコードを保持しない不揮発性記憶装置は、受信した第1のシンボル、第2のシンボルまたはブートコードデータをそのまま送信し、(2)ブートコードを保持する不揮発性記憶装置は、第2のシンボルを送信した後、ブートコードを送信する準備ができると、続いてデータを出力する。このようにすることで、第2実施形態に係る記憶システムでは、接続形態がリング接続、チェーン接続およびハブ接続のいずれの接続形態であっても、ホスト装置、不揮発性記憶装置個々の動作を、第1実施形態に係る記憶システムのホスト装置、不揮発性記憶装置と同様の動作にすることができる。その結果、第2実施形態の記憶システムでは、ホスト装置と複数の不揮発性記憶装置とをどのように接続した場合であっても、簡便な仕組みで、かつ、効率良く、ホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。
[第3実施形態]
次に、第3実施形態について、説明する。
図8A〜Cは、第3実施形態に係る記憶システムにおけるホスト装置2と不揮発性記憶装置1a〜1cとの動作を説明するための図である。図8A〜Cにおいて、不揮発性記憶装置1aおよび1bがブートコードを保持するものとする。
<3.1:不揮発性記憶装置の構成>
まず、本実施形態の記憶システムの不揮発性記憶装置の構成について、説明する。
図8Aは、本実施形態に係る不揮発性記憶装置の構成を説明するための図である。
図8Aに示すように、不揮発性記憶装置1a〜1cは、それぞれ、第1のブートデバイスフラグ81、および、第2のブートデバイスフラグ82を保持している。
不揮発性記憶装置1aは、第2のブートデバイスフラグ82が「1」となっており、不揮発性記憶装置1bは、第1のブートデバイスフラグ81が「1」となっている。また、不揮発性記憶装置1cは、ブートコードを保持しておらず、第1のブートデバイスフラグ、第2のブートデバイスフラグともに「0」である。これらのフラグは、ブートコードを保持する不揮発性記憶装置が複数存在する場合に、ブートコードを送信する不揮発性記憶装置を識別するために使用する。なお、フラグは2つに限定されず、システムに含まれるブートコードを保持するデバイスの数だけ持つことができる。また、フラグは、ビット単位のフラグに限定されることはなく、例えば、4ビットのフラグを規定して、最大16個の不揮発性記憶装置を識別するようにし、当該4ビットのフラグにより、ブートコードを保持する不揮発性記憶装置を識別するようにしてもよい(例えば、16個の不揮発性記憶装置#0〜#15に、それぞれ、ID0x0〜0xF(4ビットのフラグによるID)を割り当て、例えば、不揮発性記憶装置#2のブートコードを読み出す場合、ブート要求コードに「0x2」を設定することで、不揮発性記憶装置#2からブートコードを読み出すことができる)。また当該フラグは予め設定される不揮発な情報であり、不揮発性記憶装置では不揮発性メモリ12やその他ROM、EEPROMなどに保持してもよく、あるいは端子で設定するようにしてもよい。
<3.2:ブート要求コードの構成>
次に、本実施形態におけるブート要求コードについて、説明する。
図7(d−2)は、本実施形態に係るホスト装置が送信する第1のシンボル中のBoot要求コードを説明するための図である。図7(d−2)では、第1のシンボルは、Dコードを用いて表され、一部に識別子IDを含む。
<3.3:ブートコード読み出しシーケンス>
次に、本実施形態の記憶システムにおけるブートコード読み出しシーケンスについて、説明する。
図8B、図8Cは、本実施形態に係る記憶システムにおけるブートコード読み出しシーケンスを説明するための図である。
まず、図8Bの場合について、説明する。
図8Bに示すように、ホスト装置2は、第1のシンボルS81を不揮発性記憶装置1aに送信する。このとき、Boot要求コードのIDには、第1のブートデバイスを示す“0”が設定されているので、第1のブートデバイスフラグが”1”である不揮発性記憶装置1bは、図8Bに示すように、第2のシンボルS82に続いて、ブートコードS83を送信する。
なお、第1のブートデバイスフラグが”0”である不揮発性記憶装置1a、1cは、受信した第1のシンボルS81、第2のシンボルS82,ブートコードS83をそのまま送信する。
次に、図8Cの場合について、説明する。
図8Cに示すように、ホスト装置2は、第1のシンボルS84を不揮発性記憶装置1aへ送信する。このとき、Boot要求コードのIDには、第2のブートデバイスを示す“1”が設定されているので、第2のブートデバイスフラグが”1”である不揮発性記憶装置1aは、図8Cに示すように、第2のシンボルS85に続いて、ブートコードS86を送信する。
なお、第2のブートデバイスフラグが”0”である不揮発性記憶装置1b、1cは、受信した第2のシンボルS85、ブートコードS86をそのまま送信する。
以上、図面を用いて説明したように、第3実施形態に係る記憶システムでは、ホスト装置が第1のシンボルを送信するときに、Boot要求コードに識別子IDをつけて送信し、不揮発性記憶装置は、(1)当該識別子IDが自身のブートデバイスフラグの設定と一致している場合、保持するブートコードを送信し、(2)それ以外の場合、受信した第1のシンボル、第2のシンボル、ブートコードをそのまま送信する。
このように、本実施形態の記憶システムでは、複数の不揮発性記憶装置がブートコードを保持する場合でも、各不揮発性記憶装置にはブートデバイスフラグが設定されているので、ホスト装置は、識別子IDを第1のシンボルに付加することで、所望の不揮発性記憶装置からブートコードを読み出すことができる。したがって、本実施形態の記憶システムでは、ホスト装置と複数の不揮発性記憶装置とを接続した場合であっても、簡便な仕組みで、ホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。
[他の実施形態]
以上、図面を用いて本発明の実施形態を説明したが、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。例えば、第1のシンボルおよび第2のシンボルは、同期確立用コードを含むものであれば、Boot要求コードとして、不揮発性記憶装置がブートコード読み出しを認識することができる任意のコードを使用することができる。
また、記憶システムにおいて、不揮発性記憶装置の数は、1以上の任意の数が可能であり、1対1接続の場合でも、複数の不揮発性記憶装置が接続される場合(1対N接続の場合)でも同様の処理でブートコードを読み出すことが可能である。さらに、複数の不揮発性記憶装置の接続形態は、上記で説明した内容に限られるものではなく、様々な接続形態が可能である。
なお、上記実施形態で説明したホスト装置および不揮発性記憶装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係るホスト装置および不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blue−ray Disc)、半導体メモリを挙げることができる。
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
また、上記実施形態において、ホスト装置と不揮発性記憶装置とは、別装置である場合について説明したが、これに限定されることはなく、ホスト装置と不揮発性記憶装置とは、1つの装置内に構成されるものであってもよい。また、ホスト装置は、ホストモジュールを含む概念であり、不揮発性記憶装置は、不揮発性記憶モジュールを含む概念である。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明によると、ホスト装置と複数の不揮発性記憶装置で構成される記憶システムにおいて、ホスト装置と複数の不揮発性記憶装置とを接続した簡便な仕組みでホスト装置が不揮発性記憶装置からブートコードを読み出すことができる。本発明を適用することで、例えば、ホスト装置としてのシステムLSIと、不揮発性記憶装置としてのIOデバイスやメモリ装置とを複数接続して構成する記憶システムにおいて、ブートコード読み出しを効率的に行うことができる。したがって、本発明は、記憶システム関連分野において、有用であり、当該分野において、実施することができる。
1000 記憶システム
1 不揮発性記憶装置
2 ホスト装置
3 ハブ
11 コントローラ部
12 不揮発性メモリ
111 ホストIF部
112 メモリ制御部
1a、1b、1c 不揮発性記憶装置
21 記憶装置IF部
22 CPU
23 主記憶
24 周辺回路
25 ブート制御部
81 第1のブートデバイスフラグ
82 第2のブートデバイスフラグ

Claims (19)

  1. ホスト装置との間でデータの送受信を行う不揮発性記憶装置であって、
    1または複数の不揮発性メモリと、
    前記不揮発性メモリのデータの読み出しおよび/または書き込みを制御するコントローラ部と、
    を備え、
    前記コントローラ部は、
    ホストIF部と、
    前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、
    を含み、
    前記ホストIF部は、
    (1)前記ホスト装置からインタフェースの起動を指示する信号であるインタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信し、
    (2)前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第1のシンボルを受信した場合、受信したのと同じ第1のシンボルを前記ホスト装置へ送信し、
    (3)前記第1のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力する、
    不揮発性記憶装置。
  2. 前記ホストIF部は、
    前記ホスト装置から前記第1のシンボルを受信した場合、該受信した第1のシンボルと同じまたは異なる同期シンボルを前記ホスト装置へ送信し、
    前記同期シンボル送信後に前記ホスト装置からアイドルシンボルを受信すると、前記ホスト装置へアイドルシンボルを送信し、
    前記コントローラ部は、
    前記ホストIF部が前記アイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にし、
    前記ホストIF部は、
    前記ホストIF部が前記アイドルシンボル送信し、前記コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力する、
    請求項1に記載の不揮発性記憶装置
  3. 前記ホストIF部は、
    前記ホスト装置が送信したデータを8b/10b復号化して受信し、ホスト装置へデータを8b/10b符号化して送信するものであり、
    (1)前記ホスト装置から受信データとして同期コードを含むシンボルを受信すると、前記受信データと前記受信データを受信するためのクロック信号の位相を合わせて同期を確立させ、
    (2)前記クロック信号と前記受信データとの同期を確立させた後に、前記ホスト装置から同期コードを含む第1のシンボルを受信すると、受信したのと同じ第1のシンボルを前記ホスト装置へ送信し、当該第1のシンボルの送信後、前記メモリ制御部が前記不揮発性メモリから読み出したブートコードをホスト装置へ送信する、
    請求項1または2に記載の不揮発性記憶装置。
  4. 前記ホストIF部は、所定のサイズのデータを送信したらブートコードの送信を終了する、
    請求項1から3のいずれかに記載の不揮発性記憶装置。
  5. 前記ホストIF部は、ブートコードのデータを所定の長さのブロック単位で分割して送信する、
    請求項1から4のいずれかに記載の不揮発性記憶装置。
  6. 前記ホストIF部は、自装置がブートコードを保持しない場合は、受信した前記同期コードを含む第1のシンボルをそのまま送信し、
    前記コントローラ部は、前記ホストIF部が、自装置がブートコードを保持しない場合であって、受信した前記同期コードを含む第1のシンボルをそのまま送信した場合、自装置の状態がアイドル状態のまま保持されるように、当該自装置を制御する、
    請求項に記載の不揮発性記憶装置。
  7. 1または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムのホスト装置であって、
    ホスト装置の全部又は一部を制御する制御部と、
    不揮発性記憶装置IF部と、
    を備え、
    前記不揮発性記憶装置IF部は、
    (1)インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信し、
    (2)前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第1のシンボルを前記不揮発性記憶装置へ送信し、
    (3)前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第1のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信する、
    ホスト装置。
  8. 前記不揮発性記憶装置IF部が、前記第1のシンボルを不揮発性記憶装置へ送信した場合であって、
    前記不揮発性記憶装置IF部が、前記不揮発性記憶装置から、送信した前記第1のシンボルと同一のデータを受信した場合、あるいは、送信した前記第1のシンボルに応答するデータを受信した場合、
    (1)前記不揮発性記憶装置IF部は、前記不揮発性記憶装置へアイドルシンボルを送信し、
    (2)前記制御部は、前記不揮発性記憶装置IF部がアイドルシンボルを送信し前記不揮発性記憶装置からアイドルシンボルを受信した場合、ホスト装置の状態をアイドル状態にし、
    (3)前記不揮発性記憶装置IF部は、前記制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、前記ブートコードの受信状況を示すステータス情報を、前記不揮発性記憶装置へ送信する、
    請求項7に記載のホスト装置。
  9. ホスト装置と1または複数の不揮発性記憶装置との間でデータの送受信を行う記憶システムであって、
    前記ホスト装置は、
    ホスト装置の全部又は一部を制御する制御部と、
    不揮発性記憶装置IF部と、
    を備え、
    前記不揮発性記憶装置は、
    1または複数の不揮発性メモリと、
    前記不揮発性メモリのデータの読み出しおよび/または書き込みを制御するコントローラ部と、
    を備え、
    前記コントローラ部は、
    ホストIF部と、
    前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、
    を含み、
    (H1)前記不揮発性記憶装置IF部は、インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信し、
    (S1)前記ホストIF部は、前記ホスト装置から前記インタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信し、
    (H2)前記不揮発性記憶装置IF部は、前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第1のシンボルを前記不揮発性記憶装置へ送信し、
    (S2)前記ホストIF部は、前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第1のシンボルを受信した場合、受信したのと同じ第1のシンボルを前記ホスト装置へ送信し、
    (S3)前記ホストIF部は、前記第1のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力し、
    (H3)前記不揮発性記憶装置IF部は、前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第1のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信する、
    記憶システム。
  10. (HH1)前記不揮発性記憶装置IF部は、前記第1のシンボルを不揮発性記憶装置へ送信し
    (SS1)前記ホストIF部は、前記ホスト装置から前記第1のシンボルを受信した場合、該受信した第1のシンボルと同じまたは異なる同期シンボルを前記ホスト装置へ送信し、
    (HH2)前記不揮発性記憶装置IF部が、前記不揮発性記憶装置から、送信した前記第1のシンボルと同一のデータを受信した場合、あるいは、送信した前記第1のシンボルに応答するデータを受信した場合、前記不揮発性記憶装置IF部は、前記不揮発性記憶装置へアイドルシンボルを送信し、
    (HH3)前記ホスト装置の前記制御部は、前記不揮発性記憶装置IF部がアイドルシンボルを送信した後、前記ホスト装置の状態をアイドル状態にし、
    (SS2)前記ホストIF部は、前記ホスト装置へ前記同期シンボル送信後に前記ホスト装置からアイドルシンボルを受信すると、前記ホスト装置へアイドルシンボルを送信し、
    (SS3)前記不揮発性記憶装置の前記コントローラ部は、前記ホストIF部が前記アイドルシンボル送信した後に、不揮発性記憶装置の状態をアイドル状態にする、
    請求項9に記載の記憶システム。
  11. 前記ホストIF部は、
    前記ホストIF部が前記アイドルシンボル送信し、前記コントローラ部が不揮発性記憶装置の状態をアイドル状態にした後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力し、
    前記不揮発性記憶装置IF部は、
    前記不揮発性記憶装置IF部がアイドルシンボルを送信し、前記制御部がホスト装置の状態をアイドル状態にした後、ブートコードを受信し、
    前記ブートコードの受信状況を示すステータス情報を、前記不揮発性記憶装置へ送信する、
    請求項10に記載の記憶システム。
  12. 前記不揮発性記憶装置は、所定サイズのデータを送信すると前記ブートコードの送信を終了し、
    前記ホスト装置は、所定のサイズのブートコードデータを受信すると、前記不揮発性記憶装置のブートコードの送信が終了したと判断する、
    請求項9から11のいずれかに記載の記憶システム。
  13. 前記ホスト装置は、前記不揮発性記憶装置が前記ブートコードのデータを所定の長さのブロック単位で送信した場合、該ブートコードのデータを受信する、
    請求項9から11のいずれかに記載の記憶システム。
  14. 前記不揮発性記憶装置は、ブートコードを保持しない場合は、受信した同期コードを含む第1のシンボルをそのまま送信し、
    前記ホスト装置は、所定の回数または所定の時間同期コードを含む第1のシンボルを送信した後、前記ブートコードのデータを受信しない場合、前記不揮発性記憶装置がブートコードを保持しないと判定する、
    請求項9から11のいずれかに記載の記憶システム。
  15. 前記第1のシンボルは、ブートデバイス識別子を含み、
    前記ホスト装置は、
    前記同期コードを含む第1のシンボルに、前記ブートコードを出力する前記不揮発性記憶装置を指定する前記ブートデバイス識別子を付加して送信し、
    前記不揮発性記憶装置は、
    第1のブートデバイスフラグ情報と第2のブートデバイスフラグ情報とを格納する格納部を備え、
    前記同期コードを含む第1のシンボルを受信すると、前記受信した同期コードを含む第1のシンボルに含まれる前記ブートデバイス識別子に基づいてブートコードを送信するか否かを判定する、
    請求項14に記載の記憶システム。
  16. 前記ホスト装置と前記1または複数の不揮発性記憶装置とは、リング接続される、
    請求項9から15のいずれかに記載の記憶システム。
  17. 前記ホスト装置と前記1または複数の不揮発性記憶装置とは、ハブを介してハブ接続される、
    請求項9から15のいずれかに記載の記憶システム。
  18. ホスト装置と1または複数の不揮発性記憶装置との間でのデータ通信方法であって、
    前記ホスト装置の全部又は一部を制御する制御部と、
    不揮発性記憶装置IF部と、
    を備える前記ホスト装置と、
    1または複数の不揮発性メモリと、
    ホストIF部と、
    前記不揮発性メモリのデータの読み出しおよび/または書き込みを制御するコントローラ部であって、前記不揮発性メモリから前記ホスト装置のブートコードを読み出すメモリ制御部と、を含むコントローラ部と、
    を備える前記1または複数の不揮発性記憶装置と、
    の間のデータ通信方法であって、
    (H1)前記不揮発性記憶装置IF部が、インタフェースの起動を指示する信号であるインタフェース起動信号を前記不揮発性記憶装置へ送信するステップと、
    (S1)前記ホストIF部が、前記ホスト装置から前記インタフェース起動信号を受信すると、受信したのと同じインタフェース起動信号を前記ホスト装置へ送信するステップと、
    (H2)前記不揮発性記憶装置IF部が、前記インタフェース起動信号の送信後、前記ホスト装置からブートコードの読み出しを指示する第1のシンボルを前記不揮発性記憶装置へ送信するステップと、
    (S2)前記ホストIF部が、前記インタフェース起動信号を前記ホスト装置へ送信した後に、前記ホスト装置からブートコードの読み出しを指示する第1のシンボルを受信した場合、受信したのと同じ第1のシンボルを前記ホスト装置へ送信するステップと、
    (S3)前記ホストIF部が、前記第1のシンボルを前記ホスト装置に送信した後、前記メモリ制御部が読み出したブートコードを前記ホスト装置へ出力するステップと、
    (H3)前記不揮発性記憶装置IF部が、前記不揮発性記憶装置から、前記不揮発性記憶装置へ送信した第1のシンボルと同じデータを受信した後、前記不揮発性記憶装置が送信したブートコードを受信するステップと、
    を備えるデータ通信方法。
  19. 請求項18に記載のデータ通信方法をコンピュータに実行させるためのプログラム。
JP2011527130A 2009-12-07 2010-12-01 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム Active JP5254449B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011527130A JP5254449B2 (ja) 2009-12-07 2010-12-01 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009277277 2009-12-07
JP2009277277 2009-12-07
PCT/JP2010/007007 WO2011070747A1 (ja) 2009-12-07 2010-12-01 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム
JP2011527130A JP5254449B2 (ja) 2009-12-07 2010-12-01 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2011070747A1 JPWO2011070747A1 (ja) 2013-04-22
JP5254449B2 true JP5254449B2 (ja) 2013-08-07

Family

ID=44145310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011527130A Active JP5254449B2 (ja) 2009-12-07 2010-12-01 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム

Country Status (3)

Country Link
US (1) US8464020B2 (ja)
JP (1) JP5254449B2 (ja)
WO (1) WO2011070747A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220010424A (ko) * 2020-07-17 2022-01-25 웨스턴 디지털 테크놀로지스, 인코포레이티드 메모리 디바이스들의 병렬 부트 실행

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101910972B (zh) * 2008-02-29 2013-03-20 松下电器产业株式会社 主装置用接口装置、附属装置用接口装置、主装置、附属装置、通信***、以及接口电压切换方法
US8245024B2 (en) 2009-08-21 2012-08-14 Micron Technology, Inc. Booting in systems having devices coupled in a chained configuration
US8738775B1 (en) 2011-12-20 2014-05-27 Amazon Technologies, Inc. Managing resource dependent workflows
US8788663B1 (en) 2011-12-20 2014-07-22 Amazon Technologies, Inc. Managing resource dependent workflows
US8656002B1 (en) 2011-12-20 2014-02-18 Amazon Technologies, Inc. Managing resource dependent workflows
US9158583B1 (en) 2011-12-20 2015-10-13 Amazon Technologies, Inc. Management of computing devices processing workflow stages of a resource dependent workflow
US9152461B1 (en) * 2011-12-20 2015-10-06 Amazon Technologies, Inc. Management of computing devices processing workflow stages of a resource dependent workflow
US9152460B1 (en) 2011-12-20 2015-10-06 Amazon Technologies, Inc. Management of computing devices processing workflow stages of a resource dependent workflow
US9128761B1 (en) 2011-12-20 2015-09-08 Amazon Technologies, Inc. Management of computing devices processing workflow stages of resource dependent workflow
JP2014179066A (ja) * 2013-02-14 2014-09-25 Panasonic Corp ストレージ制御装置、ストレージシステム、およびストレージ制御方法
US9557802B2 (en) * 2013-08-01 2017-01-31 Mediatek Inc. Method of controlling SDIO device and related SDIO system and SDIO device
KR102536637B1 (ko) * 2018-03-29 2023-05-26 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102560251B1 (ko) * 2018-06-20 2023-07-26 삼성전자주식회사 반도체 장치 및 반도체 시스템
JP2022529111A (ja) * 2019-04-15 2022-06-17 コヴィディエン リミテッド パートナーシップ ロボットカートアームのアセンブリ識別のためのシステムおよび方法
US11551731B2 (en) 2020-05-28 2023-01-10 Stmicroelectronics International N.V. Memory circuit arrangement for accurate and secure read

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009016832A1 (ja) * 2007-07-31 2009-02-05 Panasonic Corporation 不揮発性記憶装置および不揮発性記憶システム
JP2009524139A (ja) * 2006-01-17 2009-06-25 ノキア コーポレイション Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234052B2 (en) * 2002-03-08 2007-06-19 Samsung Electronics Co., Ltd System boot using NAND flash memory and method thereof
KR100448905B1 (ko) 2002-07-29 2004-09-16 삼성전자주식회사 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치
DE10306149B4 (de) * 2003-02-14 2007-08-30 Infineon Technologies Ag Verfahren zum Zuweisen von Speicheranordnungs-Adressen, Pufferbaustein und Speichermodul
US7484052B2 (en) * 2005-05-03 2009-01-27 International Business Machines Corporation Distributed address arbitration scheme for symmetrical multiprocessor system
KR101173539B1 (ko) * 2006-02-15 2012-08-14 삼성전자주식회사 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법
KR100880379B1 (ko) 2006-05-25 2009-01-23 삼성전자주식회사 외부로부터 제공받는 부트 코드로 부팅되는 정보기기시스템
KR100799687B1 (ko) 2006-09-19 2008-02-01 삼성전자주식회사 비휘발성 메모리를 공유하는 두 개 이상의 콘트롤러를내장한 시스템
US7650459B2 (en) * 2006-12-21 2010-01-19 Intel Corporation High speed interface for non-volatile memory
KR101395778B1 (ko) 2007-03-14 2014-05-19 삼성전자주식회사 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
US7818509B2 (en) * 2007-10-31 2010-10-19 International Business Machines Corporation Combined response cancellation for load command
JP2010140266A (ja) 2008-12-11 2010-06-24 Toshiba Corp 電子デバイスシステムと電子デバイス

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524139A (ja) * 2006-01-17 2009-06-25 ノキア コーポレイション Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス
WO2009016832A1 (ja) * 2007-07-31 2009-02-05 Panasonic Corporation 不揮発性記憶装置および不揮発性記憶システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220010424A (ko) * 2020-07-17 2022-01-25 웨스턴 디지털 테크놀로지스, 인코포레이티드 메모리 디바이스들의 병렬 부트 실행
KR102621493B1 (ko) 2020-07-17 2024-01-04 웨스턴 디지털 테크놀로지스, 인코포레이티드 메모리 디바이스들의 병렬 부트 실행

Also Published As

Publication number Publication date
US20110276748A1 (en) 2011-11-10
JPWO2011070747A1 (ja) 2013-04-22
US8464020B2 (en) 2013-06-11
WO2011070747A1 (ja) 2011-06-16

Similar Documents

Publication Publication Date Title
JP5254449B2 (ja) 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム
JP4896450B2 (ja) 記憶装置
JP4870368B2 (ja) 集積回路カードシステム及びメモリカード並びにその制御方法
KR101911059B1 (ko) Ufs 인터페이스의 테스트 방법 및 이의 테스트 방법으로 테스트를 수행하는 메모리 장치
USRE49682E1 (en) System, device, and method for initializing a plurality of electronic devices using a single packet
US9063849B2 (en) Different types of memory integrated in one chip by using a novel protocol
EP2124155A2 (en) Information processing apparatus, information processing system, method of processing information, and computer program
KR20180127710A (ko) 메모리 모듈 및 이를 포함하는 메모리 시스템
JP4739349B2 (ja) マルチメディア・カード・インターフェース方法、コンピュータ・プログラム及び装置
JP2006190132A (ja) 制御プログラムダウンロード装置
US20230169028A1 (en) Bridge device and data storage system
KR20080078977A (ko) Mmc 또는 sd 프로토콜을 사용하는 다수의 메모리장치들을 인터페이스하는 방법 및 시스템
US20080114935A1 (en) Memory Card System and Method Transmitting Host Identification Information Thereof
US9348774B2 (en) Controller-opaque communication with non-volatile memory devices
US10658046B2 (en) Memory device and method for operating the same
TW201921260A (zh) 在i3c多線匯流排上之奇偶校驗位元位置
US20160055853A9 (en) Method for processing sound data and circuit therefor
EP3392778A1 (en) Communication device, communication method, program, and communication system
US9377957B2 (en) Method and apparatus for latency reduction
JP2007079660A (ja) メモリカード用入出力装置及びその制御方法
JP2018073438A (ja) 半導体記憶装置
JP2001357023A (ja) 半導体集積回路及びそれに内蔵された不揮発性メモリへの書き込み方法
US9620230B2 (en) Memory device that performs an advance reading operation
US20120124272A1 (en) Flash memory apparatus
KR101345437B1 (ko) 칩들간의 통신을 위한 인터페이스 장치 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130417

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250