(57)【要約】【課題】構成の複雑化を抑制しつつ、デバイス毎に固有のＩＤを付与可能な半導体装置及びホスト機器を提供すること。【解決手段】半導体装置３は、受信したパケットのコマンドを解析してパケットによって指定される処理を決定するデコーダ７と、パケット内の情報に応じて固有のデバイス番号を生成する生成回路８と、生成された固有のデバイス番号を保持するレジスタ９と、パケット内の情報を更新して出力する更新回路１０と、を各々が備える第１デバイス４−１及び第２デバイス４−２を具備し、第２デバイス４−２は、第１デバイス４−１において情報が更新されたパケットを受信すると共に、第２デバイス４−２の生成回路８−１は、第１デバイス４−１と異なるデバイス番号を生成する。【選択図】図１
2011090349.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットのコマンドを解析して前記パケットによって指定される処理を決定するデコーダと、前記パケット内の情報に応じて固有のデバイス番号を生成する生成回路と、生成された前記固有のデバイス番号を保持するレジスタと、前記パケット内の情報を更新して出力する更新回路と、を各々が備える第１デバイス及び第２デバイスを具備し、
前記第２デバイスは、前記第１デバイスにおいて前記情報が更新された前記パケットを受信すると共に、前記第２デバイスの前記生成回路は、前記第１デバイスと異なる前記デバイス番号を生成する
ことを特徴とする半導体装置。
【請求項２】
前記パケットは、前記デバイス番号の初期値とデバイス数を示すパラメータを含み、
前記第１デバイスは、受信した前記パケットの前記初期値の値がゼロの場合、ゼロを除く任意のデバイス番号を決定して、決定した前記デバイス番号を前記レジスタに設定し、前記パケット内の前記初期値を前記決定した前記デバイス番号に更新すると共に、前記デバイス数を、インクリメントした値に更新し、
受信した前記パケットの前記初期値の値がゼロでない場合の前記第１デバイス、及び前記第２デバイスは、前記パケット内の前記初期値と前記デバイス数を元に、事前に定められた演算を行って、ゼロを除くデバイス番号を算出して、これを前記レジスタに設定し、前記パケット内の前記初期値を更新することなく、前記デバイス数を、インクリメントした値に更新する
ことを特徴とする請求項１記載の半導体装置。
【請求項３】
受信した前記パケットの前記初期値の値がゼロでない場合の前記第１デバイス、及び前記第２デバイスのデバイス番号は、受信した前記パケット内の前記初期値と前記デバイス数とを加算した値である
ことを特徴とする請求項２記載の半導体装置。
【請求項４】
前記パケットは、前記デバイス番号の初期値と最終値とを示すパラメータを含み、
前記第１、第２デバイスは、前記初期値と前記最終値との少なくともいずれか一方の値に基づいて、自らが前記パケットを最初に受け取ったデバイスであるか否かを判断し、
前記パケットを最初に受け取ったと判断した場合に、前記デバイス番号を任意に決定する、または前記初期値に応じて前記デバイス番号を決定する
ことを特徴とする請求項１記載の半導体装置。
【請求項５】
前記パケットは、前記デバイス番号の初期値と最終値とを示すパラメータを含み、
前記第１デバイスは、受信した前記パケットの前記最終値の値がゼロの場合、ゼロを除く任意のデバイス番号を決定して、決定した前記デバイス番号を前記レジスタに設定し、前記パケット内の前記初期値及び最終値を前記決定した前記デバイス番号に更新し、
受信した前記パケットの前記最終値の値がゼロでない場合の前記第１デバイス、及び前記第２デバイスは、前記パケット内の前記初期値及び／または前記最終値を元に、ゼロを除くデバイス番号を算出して、これを前記レジスタに設定し、前記パケット内の前記初期値を更新することなく、前記最終値を、前記算出した前記デバイス番号に更新する
ことを特徴とする請求項１記載の半導体装置。
【請求項６】
複数のデバイスが接続され得るホスト機器であって、前記ホスト機器は、
デバイス番号の初期値及びデバイス数を所定の値に設定した第１パケットを第１デバイスに発行すると共に、該第１パケットに対する応答を前記第１デバイスから受信することなく、最終デバイスから、前記初期値及び前記デバイス数の修正された最終パケットを受信し、
前記最終パケット内の修正された前記初期値及び前記デバイス数から、接続されている前記デバイスの数及び前記デバイスに割り付けられたデバイス番号を認識する
ことを特徴とするホスト機器。
【請求項７】
前記ホスト機器は、前記最終パケット内の修正された前記初期値を前記第１デバイスの前記デバイスＩＤとして認識し、
前記最終パケット内の修正された前記初期値と前記デバイス数とに基づいて、前記複数デバイスの前記デバイス番号を算出する
ことを特徴とする請求項６記載のホスト機器。
【請求項８】
複数のデバイスが接続され得るホスト機器であって、前記ホスト機器は、
デバイス番号の初期値及び最終値の値に設定した第１パケットを第１デバイスに発行すると共に、該第１パケットに対する応答を前記第１デバイスから受信することなく、最終デバイスから、前記初期値及び前記最終値の修正された最終パケットを受信し、
前記最終パケット内の修正された前記初期値及び前記最終値から、接続されている前記デバイスの数及び前記デバイスに割り付けられたデバイス番号を認識する
ことを特徴とするホスト機器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は半導体装置及びホスト機器に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリを用いたメモリシステムとして、ＳＤTMカードが知られている。また、ＳＤカードとホスト機器との間のインターフェースとしては、ＳＤインターフェースが知られている。ＳＤインターフェースでは、デバイスを選択するアドレス（relative card address：ＲＣＡ）によって、複数のデバイスを１つのバスに接続出来る（例えば特許文献１参照）。
【０００３】
しかしながら、上記従来の方法であると、１つのホスト機器でより多くのデバイスを制御しようとすると、ホスト機器の構成、設計が複雑化すると共に、デバイスのアドレスが重複するおそれがある、という問題があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６，８２０，１４８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は、構成の複雑化を抑制しつつ、デバイス毎に固有のＩＤを付与可能な半導体装置及びホスト機器を提供する。
【課題を解決するための手段】
【０００６】
この発明の一態様に係る半導体装置は、受信したパケットのコマンドを解析して前記パケットによって指定される処理を決定するデコーダと、前記パケット内の情報に応じて固有のデバイス番号を生成する生成回路と、生成された前記固有のデバイス番号を保持するレジスタと、前記パケット内の情報を更新して出力する更新回路と、を各々が備える第１デバイス及び第２デバイスを具備し、前記第２デバイスは、前記第１デバイスにおいて前記情報が更新された前記パケットを受信すると共に、前記第２デバイスの前記生成回路は、前記第１デバイスと異なる前記デバイス番号を生成する。
【０００７】
更にこの発明の一態様に係るホスト機器は、複数のデバイスが接続され得るホスト機器であって、前記ホスト機器は、デバイス番号の初期値及びデバイス数を所定の値に設定した第１パケットを第１デバイスに発行すると共に、該第１パケットに対する応答を前記第１デバイスから受信することなく、最終デバイスから、前記初期値及び前記デバイス数の修正された最終パケットを受信し、前記最終パケット内の修正された前記初期値及び前記デバイス数から、接続されている前記デバイスの数及び前記デバイスに割り付けられたデバイス番号を認識する。
【発明の効果】
【０００８】
この発明によれば、構成の複雑化を抑制しつつ、デバイス毎に固有のＩＤを付与可能な半導体装置及びホスト機器を提供できる。
【図面の簡単な説明】
【０００９】
【図１】この発明の第１実施形態に係る半導体システムのブロック図。
【図２】第１実施形態に係るフレームフォーマットの概念図。
【図３】第１実施形態に係るホスト機器の動作を示すフローチャート。
【図４】第１実施形態に係るデバイスの動作を示すフローチャート。
【図５】第１の実施形態に係る半導体システムのブロック図。
【図６】この発明の第２実施形態に係るメモリシステムのブロック図。
【図７】第２実施形態に係る半導体システムのブロック図。
【図８】第２実施形態に係る半導体システムのブロック図。
【図９】第２実施形態に係る半導体システムのブロック図。
【図１０】この発明の第３実施形態に係るメモリシステムのブロック図。
【図１１】第１乃至第３実施形態に係るホスト機器のブロック図。
【図１２】第１乃至第３実施形態の変形例に係るフレームフォーマットの概念図。
【図１３】第１乃至第３実施形態の変形例に係るデバイスの動作を示すフローチャート。
【図１４】第１乃至第３実施形態の変形例に係る半導体システムのブロック図。
【図１５】第１乃至第３実施形態の変形例に係るフレームフォーマットの概念図。
【発明を実施するための形態】
【００１０】
以下、この発明の実施形態のいくつかを、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。ただし、図面は模式的なものであり、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることはもちろんである。
【００１１】
また、以下に示す各実施形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１２】
また、本発明の各実施形態における各機能ブロックは、ハードウェア、コンピュータソフトウェア、のいずれかまたは両者の組み合わせとして実現することができる。このため、各ブロックは、これらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明される。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、様々な方法でこれらの機能を実現し得るが、そのような実現を決定することは本発明の範疇に含まれるものである。
【００１３】
［第１の実施形態］  
この発明の第１の実施形態に係る半導体装置及びホスト機器について説明する。図１は、本実施形態に係る半導体装置及びホスト機器を備えた半導体システムの一例を示すブロック図である。
【００１４】
＜半導体システムの構成について＞  
図示するように半導体システム１は、ホスト機器２と半導体装置３とを備えている。  
ホスト機器１および各電子デバイスは、ホスト機器１は、少なくともひとつの入力ポートと、出力ポートで構成され、このポートを介してホスト機器１は、半導体装置３の動作を制御して、半導体システム１の動作を司る。例えば、各ポートは、ＬＶＤＳ（low voltage differential Signaling）方式などによる作動ペアで構成される。
【００１５】
ホスト機器２は、コマンドやデータを含むパケットを組み立てて、これを半導体装置３へ送信して、半導体装置３の動作を制御する。また、半導体装置３から送信されたパケットを受信して、受信したパケットに応じて動作を行う。
【００１６】
半導体装置３は、複数の電子デバイス４を備えている。図１では一例として、３つの電子デバイス４を含む場合を例示している。以下では、３つの電子デバイス４を区別して呼ぶ際には、それぞれ電子デバイス４−１〜４−３と呼ぶ。
【００１７】
本例では、電子デバイス４の各々は入力信号ピン５、出力信号ピン６、パケットデコーダ７、演算モジュール８、レジスタ９、及びパケット更新回路１０を備えている。これらについても電子デバイス４−１〜４−３毎に区別して呼ぶ際には、それぞれ入力信号ピン５−１〜５−３、出力信号ピン６−１〜６−３、パケットデコーダ７−１〜７−３、演算モジュール８−１〜８−３、レジスタ９−１〜９−３、及びパケット更新回路１０−１〜１０−３と呼ぶ。
【００１８】
複数の信号で構成される入力信号ピン５は、少なくとも１つの入力ポートとして機能し、外部から与えられるパケットを受信する。そして受信したパケットをパケットデコーダ７へ転送する。
【００１９】
パケットデコーダ７は、入力信号ピン５から転送されたパケットを解析可能に構成されている。パケットデコーダ７は、パケットヘッダ内のコマンド番号により、パケットの種類を識別する。そしてパケットデコーダ７は、パケットの種類に応じて必要な演算を行うよう、演算モジュール８に命令する。また必要であれば、受信したパケットを更新するよう、パケット更新回路１０に命令する。
【００２０】
演算モジュール８は、パケットデコーダ７の命令に応じて、必要な演算を実行可能に構成されている。演算内容の一例はデバイスＩＤの算出である。そしてデバイスＩＤを算出した際には、これをレジスタ９に保持させる。デバイスＩＤとは、各電子デバイス４固有の番号であり、デバイスＩＤによってホスト機器２は各電子デバイス４を識別可能となる。またパケットデコーダ７は、受信したパケットがブロードキャストでない場合（例えばユニキャストまたはマルチキャスト）、パケット内に宛先情報として含まれるデバイスＩＤと、レジスタ９内のデバイスＩＤとを比較することで、このパケットが自身宛てであるか否かを判断出来る。
【００２１】
パケット更新回路１０は、受信したパケットのペイロードの内容を更新して、複数の信号で構成され且つ少なくとも１つの出力ポートとして機能する出力信号ピン６から、外部にパケットを出力する。例えば演算モジュール８においてデバイスＩＤが算出される場合には、その算出結果に応じてペイロードの内容を更新する。
【００２２】
上記構成を有する３つの電子デバイス４−１〜４−３は、図１に示すようにホスト機器２に対してリング接続（またはチェーン接続とも呼ぶ）されている。すなわち、ホスト機器２から送信されたパケットは、まず電子デバイス４−１で受信され、その後電子デバイス４−１から電子デバイス４−２に転送され、更に電子デバイス４−２から電子デバイス４−３に転送され、電子デバイス４−３の出力信号ピン６−３から出力されるパケットがホスト機器２に返される。なお、図１の半導体装置３は、後述する図６のような電子デバイス４−１〜４−３及びハブ１２で構成される場合も含まれる。
【００２３】
＜パケットの構成について＞  
次に、上記パケットの構成について説明する。図２はパケットの概念図であり、一例として、各電子デバイス４のデバイスＩＤを特定する際に発行されるパケットを示している。
【００２４】
図示するように、パケット１１は大まかにはパケットヘッダとペイロードとを含んでいる。パケットのうちペイロードは、送信すべき内容となる正味のデータ部分であり、パケットヘッダはその付加情報である。
【００２５】
パケットヘッダは、少なくともフィールド１１−１、１１−２を含む。フィールド１１−１には、当該パケットの宛先となるデバイスＩＤが格納される。またフィールド１１−２にはコマンド番号が格納され、当該パケットに対して行うべき動作がこのコマンド番号によって指定される。図２では図示を省略しているが、パケットヘッダにはこれらのフィールドの他、パケットの送信元となるデバイスＩＤ（またはホスト機器２のＩＤ）や、パケットのサイズ等の情報を格納するフィールドがあっても良い。
【００２６】
ペイロードは、送信すべき内容によって種々のデータを格納する。デバイスＩＤを特定する際に発行されるパケットでは、少なくともフィールド１１−３、１１−４を含む。フィールド１１−３は、開始デバイスＩＤ（start device number）を示すフィールドであり、この値はホスト機器２からパケットを最初に受信した電子デバイス４が決定する。フィールド１１−４は、電子デバイス４の数を格納する。パケットが各電子デバイス４を転々とする過程で、フィールド１１−４の値がインクリメントされることで、ホスト機器２は電子デバイス４の総数を認識出来る。また、ホスト機器２は、フィールド１１−３、１１−４の値から、各電子デバイス４のデバイスＩＤを特定出来る。本動作については以下で詳述する。
【００２７】
また、フィールド１１−４は、電子デバイス４の数以外にも、最終デバイス番号(last device number)を表示しても良い。最終デバイス番号と最初のデバイス番号が分かれば、デバイス数は引き算で計算できるので、本実施形態と同様に扱うことができる。最終デバイス番号情報がパケットに含まれる場合については、本実施形態とは別に、後に説明する。
【００２８】
＜ホスト機器２の動作について＞  
次に、電子デバイス４のデバイスＩＤの特定時における、上記構成のホスト機器２の動作について、図３を用いて説明する。図３は、デバイスＩＤ特定時におけるホスト機器２の動作を示すフローチャートである。
【００２９】
図示するように、ホスト機器２はまず、デバイスＩＤを特定するためのパケットを組み立てる（ステップＳ１０）。すなわち、パケットヘッダのコマンド番号（フィールド１１−２）にデバイスＩＤを特定するためのコマンド（以下、これを初期化コマンドと呼ぶ）をセットし、ペイロードの開始デバイスＩＤ（フィールド１１−３）とデバイス数（フィールド１１−４）の値として初期値（本実施形態ではゼロ）をセットする。
【００３０】
そしてホスト機器２は、ステップＳ１０で組み立てたパケットを電子デバイス４へ送信する（ステップＳ１１）。パケットがブロードキャストで送信されるか、またはユニキャスト（またはマルチキャスト）で送信されるかは、コマンド毎に予め決められている。初期化コマンドは、ブロードキャストコマンドである。従って、パケットヘッダのフィールド１１−１における宛先は無視され、図１の接続関係の場合には、パケットはリング接続の最初の電子デバイス４−１に送信される。なおブロードキャストの場合には、パケットの宛先を示すフィールド１１−１は無視される。
【００３１】
その後ホスト機器２は、リング接続の最後の電子デバイス４−３からパケットを受信する（ステップＳ１２）。するとホスト機器２は、受信したパケット内の最初のデバイスＩＤ（フィールド１１−３）とデバイス数（フィールド１１−４）を読み取る（ステップＳ１３）。フィールド１１−３の値は、リング接続の最初の電子デバイス４−１のデバイスＩＤであり、フィールド１１−４の値は、リング接続された電子デバイス４−１〜４−３の総数（本例では３個）である。
【００３２】
次にホスト機器２は、フィールド１１−３、１１−４の値を用いて、予め定められた演算を行って、各電子デバイス４−２、４−３のデバイスＩＤと全デバイス数を把握する（ステップＳ１４）。識別可能なデバイス数は、デバイスＩＤフィールドのビット数で決定される。予め定められた演算とは、電子デバイス４−２、４−３が開始デバイスＩＤに対して自身のＩＤを算出するルールであり、例えばデバイス数だけインクリメントすることである。従って、例えば、電子デバイス４−３から受信したパケットにおける開始デバイスＩＤの値が“ｎ（ｎは自然数）”であれば、電子デバイス４−１のデバイスＩＤは“ｎ”、電子デバイス４−２のデバイスＩＤは“ｎ＋１”、電子デバイス４−３のデバイスＩＤは“ｎ＋２”であることが分かる。
【００３３】
そしてホスト機器２は、ステップＳ１４で得られたデバイスＩＤを用いて、以降、電子デバイス４−１〜４−３の各々を管理する。その後、このデバイスＩＤを用いて各電子デバイス４−１〜４−３と通信し、電子デバイス４−１〜４−３の種類（例えばメモリであるかＩ／Ｏ機器であるか、またはカードデバイスであるか等）を把握して、初期化を完了する。
【００３４】
＜電子デバイス４の動作について＞  
次に、電子デバイス４の動作について、図４を用いて説明する。図４は、初期化コマンドを含むパケットを受信した際の電子デバイス４の動作を示すフローチャートであり、電子デバイス４−１〜４−３に共通するフローチャートである。
【００３５】
図示するように電子デバイス４は、入力信号ピン５でパケットを受信する（ステップＳ２０）。そしてパケットデコーダ７は、受信したパケットのフィールド１１−２のコマンド番号からこのパケットが初期化コマンドを含むことを認識すると、演算モジュール８に対して自身のデバイスＩＤの算出を命令する。
【００３６】
命令を受けた演算モジュール８は、受信したパケットのフィールド１１−３の値（開始デバイスＩＤ）が、ホスト機器２によって設定された所定の値（本実施形態ではゼロ）であるか否かを確認する（ステップＳ２１）。もしゼロであれば（ステップＳ２２、ＹＥＳ）、演算モジュール８は、ゼロ以外の任意の番号を自身のデバイスＩＤに決定すると共に、フィールド１１−３の値（開始デバイスＩＤ）を、決定したデバイスＩＤに更新するよう、パケット更新回路１０に命令する。これによりパケット更新回路１０は、フィールド１１−３を更新する。なお、ゼロ以外の番号を使用する理由は、ゼロはホスト機器２のデバイスＩＤとして割り当てられているからである。
【００３７】
他方、フィールド１１−３の値がホスト機器２によって設定された所定の値でなければ（ステップＳ２２、ＮＯ）、フィールド１１−３の値はそのままとする（ステップＳ２４）。すなわち、演算モジュール８はパケット更新回路１０に対してフィールド１１−３の値の更新を命令しない。そして、フィールド１１−３を用いて予め定められた演算を行って、自身のデバイスＩＤを算出する（ステップＳ２５）。本ステップＳ２５における演算は、図３のステップＳ１４で行われた演算と同じであり、例えばフィールド１１−３（開始デバイスＩＤ）を、フィールド１１−４（デバイス数）に応じた回数だけインクリメントすることである。
【００３８】
その後演算モジュール８は、ステップＳ２３またはＳ２５で決定された自身のデバイスＩＤを、レジスタ９に格納する（ステップＳ２６）。
【００３９】
更に、パケットデコーダ７または演算モジュール８の命令に従い、パケット更新回路１０は、受信したパケットのフィールド１１−４の値を更新（インクリメント）する。そしてパケット更新回路１０は、フィールド１１−４、またはフィールド１１−３と１１−４の両方が更新されたパケットを出力する。
【００４０】
＜半導体システム１の動作について＞  
次に、電子デバイス４のデバイスＩＤの特定時における、半導体システム１全体の動作について、図５を用いて説明する。図５は、半導体システム１のブロック図である。図中において、各機器間の矢印の横に付記した四角印はパケットのペイロードの内容を示し、左側がフィールド１１−３（開始デバイスＩＤ）であり、右側がフィールド１１−４（デバイス数）である。
【００４１】
図示するように、まずホスト機器２から、初期化コマンドを含むパケットがブロードキャストされる。この際、パケットのフィールド１１−３、１１−４の値は、ホスト機器２によって設定された所定の値（ゼロ）である（図３のステップＳ１０、Ｓ１１）。このパケットは、まず電子デバイス４−１で受信される。
【００４２】
電子デバイス４−１では、フィールド１１−３の値が“０”であるので（図４のステップＳ２２、ＹＥＳ）、任意の番号を自身のデバイスＩＤに決定する。図５の例では“５”である。そしてフィールド１１−３を“０”から“５”に更新し（同図ステップＳ２３）、フィールド１１−４の値をインクリメントして“０”から“１”に更新して（同図ステップＳ２７）、これを出力する。
【００４３】
電子デバイス４−１から出力されたパケットは、次に電子デバイス４−２で受信される。電子デバイス４−２では、フィールド１１−３の値が“０”でないので（図４のステップＳ２２、ＮＯ）、予め定められた演算方法により、自身のデバイスＩＤを算出する（同図ステップＳ２５）。すなわち、フィールド１１−３の値をフィールド１１−４の値だけインクリメントすることで、自身のデバイスＩＤを“５”＋“１”＝“６”に決定する。そしてフィールド１１−３の値はそのままに（同図ステップＳ２４）、フィールド１１−４の値をインクリメントして“１”から“２”に更新して（同図ステップＳ２７）、これを出力する。
【００４４】
電子デバイス４−２から出力されたパケットは、次に電子デバイス４−３で受信される。やはりフィールド１１−３の値が“０”でないので（図４のステップＳ２２、ＮＯ）、電子デバイス４−３は、予め定められた演算方法により自身のデバイスＩＤを算出する（同図ステップＳ２５）。すなわち、フィールド１１−３の値をフィールド１１−４の値だけインクリメントすることで、自身のデバイスＩＤを“５”＋“１”＋“１”＝“７”に決定する。そしてフィールド１１−３の値はそのままに（同図ステップＳ２４）、フィールド１１−４の値をインクリメントして“２”から“３”に更新して（同図ステップＳ２７）、これを出力する。
【００４５】
電子デバイス４−３から出力されたパケットは、ホスト機器２で受信される。このパケットは、フィールド１１−３の値が“５”、フィールド１１−４の値が“３”である。従ってホスト機器は、電子デバイス４−１のデバイスＩＤが“５”であり、電子デバイス４の総数が“３”であることを把握出来る（図３のステップＳ１３）。そしてホスト機器２は、リング接続の２番目の電子デバイス４−２のデバイスＩＤが、電子デバイス４−１のデバイスＩＤ“５”を“１”だけインクリメントした“６”であることを把握し、リング接続の３番目の電子デバイス４−３のデバイスＩＤが、電子デバイス４−１のデバイスＩＤ“５”を“２”だけインクリメントした“７”であることを把握する（ステップＳ１４）。
【００４６】
その後は、ホスト機器２は、電子デバイス４−１〜４−３をそれぞれ“５”〜“７”のデバイスＩＤにより管理する。すなわち、例えば電子デバイス４−２に対してデータを送信する場合には、パケットの宛先としてフィールド１１−１にデバイスＩＤ＝“６”をセットする。すると、電子デバイス４−２では、受信したパケットのフィールド１１−１の値とレジスタ９の値とが一致するので、これが自身宛のパケットであると判断出来る。他方、電子デバイス４−１、４−２では、受信したパケットのフィールド１１−１の値とレジスタ９内の値とが一致しないので、これが自身宛のパケットでは無いことが分かる。なお、電子デバイス４が送信元となってホスト機器２へパケットを送信する際には、その宛先として、フィールド１１−１にはデバイスＩＤ＝“０”がセットされる。
【００４７】
また、電子デバイス４間でのパケットの送受信も可能である。例えばホスト機器２が電子デバイス４−１に対して、電子デバイス４−３へのデータの転送を命令する場合、パケットのフィールド１１−１にはデバイスＩＤ＝“５”がセットされる。またペイロードとして、転送すべきデータと、その宛先となるデバイスＩＤ＝“７”がセットされる。これを受信した電子デバイス４−３は、フィールド１１−１にデバイスＩＤ＝“７”をセットし、ペイロードに転送すべきデータをセットしたパケットを送信する。すると、このパケットは電子デバイス４−３において受信されることが出来る。
【００４８】
＜効果＞  
以上のように、この発明の第１の実施形態に係る半導体装置及びホスト機器であると、構成の複雑化を抑制しつつ、デバイス毎に固有のＩＤを付与出来る。本効果につき、以下説明する。
【００４９】
従来、複数の電子デバイスを同一のバスに接続する方法は種々、知られている。しかしながらホストが制御して固有番号を設定する従来の方法であると、各電子デバイスを識別するためには、電子デバイス毎に異なる信号線を用意し、各信号線を用いて電子デバイスとホスト機器とを接続するか、または識別用のＩＤを生成するための追加信号が必要となり、構成が複雑化するという問題があった。そして近年では、より多くの内蔵デバイスを１つのホスト機器に接続したいという要求が高まっている。従って、例えば内蔵デバイス毎に信号線を用意する方法では、構成がより複雑化すると共に、非効率的であるという問題がある。
【００５０】
また背景技術で述べた通り、ＳＤインターフェースでは、ＲＣＡを用いることによって、１つのバスに複数のデバイスを接続することが可能である。ＲＣＡを要求するコマンドは、ＳＤインターフェースではコマンドＣＭＤ３として用意されている。ＣＭＤ３が発行されると、電子デバイスはＲＣＡを生成して、これをホスト機器に送信する。しかしながら、各電子デバイスは、他の電子デバイスのＲＣＡを考慮することなく、ランダムにＲＣＡを生成する。ＲＣＡは例えば１６ビットの値であり、接続される電子デバイス数が多くなければ、電子デバイス間でＲＣＡが重複する可能性は小さい。しかしその可能性はゼロでは無いので、ホスト機器は、各電子デバイスが発行したＲＣＡが電子デバイス間で重複していないか否かを確認する必要がある。そして重複していれば再度、ＲＣＡを生成し直すよう、電子デバイスに命令する必要がある。
【００５１】
この点、本実施形態に係る構成であると、上記従来の問題を解消出来る。まず、ホスト機器２は各電子デバイス４のデバイスＩＤを要求するパケットをブロードキャストする。このパケットは、各電子デバイス４においてそれぞれのデバイスＩＤが発行されつつ、接続順に順次、電子デバイス４間を転送される。従って、電子デバイス毎に信号線を用意する必要は無く、ホスト機器は少なくとも１つの出力ポートと１つの入力ポートとを有していれば良い。よって、構成を簡略化出来る。
【００５２】
また、電子デバイス４毎に異なるデバイスＩＤを設定可能である。これは、電子デバイス４を通過する度に、パケット内におけるデバイスＩＤに関する情報が更新されるからである。具体的には、パケットをホスト機器２から最初に受信した電子デバイス４−１は、自身のデバイスＩＤを任意で決定する。そして、自身のデバイスＩＤに関する情報（デバイスＩＤとデバイス数）をパケット内に格納して、次の電子デバイス４−２に転送する。次にパケットを受信する電子デバイス４−２は、受信したパケットから、電子デバイス４−１のデバイスＩＤを知ることが出来る。従って電子デバイス４−２は、電子デバイス４−１のデバイスＩＤにつき所定の演算を行うことで、電子デバイス４−１とは異なるデバイスＩＤを、自身のデバイスＩＤとして設定出来る。
【００５３】
このことは、それ以降の電子デバイス４−３でも同様である。すなわち電子デバイス４−３が受信するパケットには、電子デバイス４−１のデバイスＩＤと、電子デバイス４−３に至る間に通過した電子デバイス数とが格納されている。従って電子デバイス４−３は、電子デバイス４−１、４−２のデバイスＩＤを把握出来る。よって電子デバイス４−３は、電子デバイス４−１、４−２と異なるデバイスＩＤを、自身のデバイスＩＤとして設定出来る。
【００５４】
その結果、各電子デバイス４は、互いに異なるデバイスＩＤを設定出来る。よって、ホスト機器２は、デバイスＩＤの重複の有無を確認する必要が無く、初期化動作を簡略化出来る。
【００５５】
また、ホスト機器２は、初期化コマンドを含むパケットに対する応答は、最後の電子デバイス４−３から受信するのみであり、その他の電子デバイス４−１、４−２からは何らの応答を受信する必要が無い。これは、デバイスＩＤの重複を防止出来るため、初期化動作にあたって各電子デバイス４−１〜４−３との個々の通信を必要としないからである。つまり、ホスト機器２の処理を簡略化出来る。その結果、ホスト機器２における図３の処理は、ハードウェアによって実現することが容易となる。従って、初期化処理を高速化出来る。
【００５６】
これは次のような理由による。ソフトウェアで処理を行う場合には、例えば半導体システム１に対する電源投入時において、ＯＳ（operating system）等の起動を待つ必要がある。ＯＳの起動完了後、初期化処理のプログラムを読み出して、図３の処理が行われる。しかし、ハードウェアで図３の処理を行う場合には、ＯＳ等の起動を待つ必要が無い。よってホスト機器２は、高速に各電子デバイス４のデバイスＩＤを把握出来る。
【００５７】
［第２の実施形態］  
次に、この発明の第２の実施形態に係る半導体装置及びホスト機器について説明する。本実施形態は、上記第１の実施形態において、電子デバイス４の種々の接続方法に関するものである。以下では、第１の実施形態と同じ点についての説明は省略する。
【００５８】
＜第１の接続例＞  
上記第１の実施形態では、図１に示すように電子デバイス４がリング接続されている場合を例に説明した。しかし、本実施形態の第１の接続例として示すように、ハブを用いても良い。図６は、本実施形態の第１の接続例に係る半導体システム１の一例を示すブロック図である。
【００５９】
図示するように半導体システム１は、ホスト機器２、電子デバイス４−１〜４−３、及びハブ１２を備えている。例えば、ハブ１２は４つのポートＰ１〜Ｐ４を備え、ポートＰ１〜Ｐ４の順にパケットを転送する。ハブ１２のポートＰ１にホスト機器２が接続され、ポートＰ２〜Ｐ４に電子デバイス４−１〜４−３がそれぞれ接続されている。ホスト機器２及び電子デバイス４の構成及び動作は、第１の実施形態で説明した通りである。図６の四角印は、第１の実施形態の図５と同様に、ペイロードのフィールド１１−３（開始デバイスＩＤ）とフィールド１１−４（デバイス数）を示す。
【００６０】
図６の構成における初期化動作時のパケットの流れについて、引き続き図６を参照しつつ説明する。ホスト機器２は、フィールド１１−２に初期化コマンドをセットし、フィールド１１−３、１１−４にそれぞれ初期値（ゼロ）をセットしたパケットをブロードキャストする。ハブ１２は、ホスト機器２から受信したパケットを電子デバイス４−１に転送する。
【００６１】
電子デバイス４−１は、自身のデバイスＩＤを“５”に設定し、フィールド１１−３、１１−４の値をそれぞれ“５”、“１”に更新したパケットをハブ１２へ返す。
【００６２】
次にハブ１２は、電子デバイス４−１から受信したパケットを、電子デバイス４−２へ転送する。電子デバイス４−２は、自身のデバイスＩＤを“５”からインクリメントした“６”に設定する。そしてフィールド１１−４の値を“２”に更新したパケットをハブ１２へ返す。
【００６３】
次にハブ１２は、電子デバイス４−２から受信したパケットを、電子デバイス４−３へ転送する。電子デバイス４−３は、自身のデバイスＩＤを“５”から“２”だけインクリメントした“７”に設定する。そしてフィールド１１−４の値を“３”に更新したパケットをハブ１２に返す。
【００６４】
最後にハブ１２は、電子デバイス４−３から受信したパケットを、ホスト機器２へ返す。このとき、パケットのフィールド１１−３、１１−４の値はそれぞれ“５”、“３”である。
【００６５】
＜第２の接続例＞  
次に、第２の接続例について図７を用いて説明する。図７は、第２の接続例に係る半導体システム１のブロック図である。本例は、二段ハブ接続に関するものである。
【００６６】
図示するように半導体システム１は、ホスト機器２、電子デバイス４−１〜４−５、及びハブ１２−１、１２−２を備えている。例えば、ハブ１２−１、１２−２はそれぞれ、４つのポートＰ１〜Ｐ４を備え、ポートＰ１〜Ｐ４の順にパケットを転送する。ハブ１２−１のポートＰ１にはホスト機器２が接続され、ポートＰ２、Ｐ４に電子デバイス４−１、４−５が接続され、ポートＰ３にハブ１２−２のポートＰ１が接続されている。またハブ１２−２のポートＰ２〜Ｐ４には、それぞれ電子デバイス４−２〜４−４が接続されている。ホスト機器２及び電子デバイス４の構成及び動作は、第１の実施形態で説明した通りである。図６の四角印は、第１の実施形態の図５と同様に、ペイロードのフィールド１１−３（デバイスＩＤの初期値）とフィールド１１−４（デバイス数）を示す。
【００６７】
図７の構成における初期化動作時のパケットの流れについて、引き続き図７を参照しつつ説明する。ホスト機器２は、フィールド１１−２に初期化コマンドをセットし、フィールド１１−３、１１−４にそれぞれ初期値（ゼロ）をセットしたパケットをブロードキャストする。ハブ１２−１は、ホスト機器２から受信したパケットを電子デバイス４−１に転送する。
【００６８】
電子デバイス４−１は、自身のデバイスＩＤを“５”に設定し、フィールド１１−３、１１−４の値をそれぞれ“５”、“１”に更新したパケットをハブ１２へ返す。
【００６９】
次にハブ１２−１は、電子デバイス４−１から受信したパケットを、ハブ１２−２に転送する。引き続きハブ１２−２は、ハブ１２−１から受信したパケットを電子デバイス４−２へ転送する。電子デバイス４−２は、自身のデバイスＩＤを“５”からインクリメントした“６”に設定する。そしてフィールド１１−４の値を“２”に更新したパケットをハブ１２−２へ返す。
【００７０】
次にハブ１２−２は、電子デバイス４−２から受信したパケットを、電子デバイス４−３へ転送する。電子デバイス４−３は、自身のデバイスＩＤを“５”から“２”だけインクリメントした“７”に設定する。そしてフィールド１１−４の値を“３”に更新したパケットをハブ１２−２に返す。
【００７１】
引き続きハブ１２−２は、電子デバイス４−３から受信したパケットを、電子デバイス４−４へ転送する。電子デバイス４−４は、自身のデバイスＩＤを“５”から“３”だけインクリメントした“８”に設定する。そしてフィールド１１−４の値を“４”に更新したパケットをハブ１２−２に返す。
【００７２】
電子デバイス４−４からパケットを受信したハブ１２−２は、これをハブ１２−１に返す。するとハブ１２−１は、ハブ１２−２から受信したパケットを、電子デバイス４−５に転送する。電子デバイス４−５は、自身のデバイスＩＤを“５”から“４”だけインクリメントした“９”に設定する。そしてフィールド１１−４の値を“５”に更新したパケットをハブ１２−１に返す。
【００７３】
最後にハブ１２−１は、電子デバイス４−５から受信したパケットを、ホスト機器２へ返す。このとき、パケットのフィールド１１−３、１１−４の値はそれぞれ“５”、“５”である。
【００７４】
＜第３の接続例＞  
次に第３の接続例について説明する。図８は、第３の接続例に係る半導体システム１のブロック図である。本例は、第１の接続例として説明した図６の構成において、電子デバイス４−２が無い場合に関する。
【００７５】
図示するように、電子デバイス４−１が自身のデバイスＩＤとして“８”を設定したとすると、ハブ１２が電子デバイス４−１から受信するパケットのフィールド１１−３、１１−４の値はそれぞれ“８”、“１”である。
【００７６】
ハブ１２は、電子デバイス４−１から受信したパケットをポートＰ３から送信するが、ポートＰ３に電子デバイスは接続されていない。従って、送信したパケットがそのままポートＰ３に返される。従ってハブ１２は、返されたパケットを次に電子デバイス４−３に転送する。  
その後の動作は第１の接続例と同じである。
【００７７】
リング接続では、電子デバイス４−１から電子デバイス４−３は取り外せないので、エンベディドシステム（embedded system）向けであるが、その構成でリムーバブルデバイス（removable device）をサポートするために、ハブ１２を持つことで、電子デバイス４−４をリムーバブルカードとして構成することが可能となる。ハブ１２は、電子デバイス４−４が接続されていない場合、入力ポートからのパケットをそのまま出力ポートに出力する。
【００７８】
＜第４の接続例＞  
次に第４の接続例について説明する。図９は、第４の接続例に係る半導体システム１のブロック図である。本例は、第１の実施形態で説明した図１の接続例に、更にハブ１２を組み合わせたものである。
【００７９】
図示するように、ハブは電子デバイス４−３とホスト機器２との間に接続され、いずれかのポートに電子デバイス４−４が接続されている。
【００８０】
ハブ１２が電子デバイス４−３から受信するパケットのフィールド１１−３、１１−４の値は、それぞれ“５”、“３”である。するとハブ１２は、このパケットを電子デバイス４−４へ転送する。そしてハブ１２は、電子デバイス４−４から、フィールド１１−４の値が“４”に更新されたパケットを受信し、これをホスト機器２へ返す。
【００８１】
＜効果＞  
以上のように、上記第１の実施形態で説明した構成は、リング接続だけでなく、ハブ接続の場合にも適用可能であり、第１の実施形態で説明した効果が得られる。なお、パケットがホスト機器２からブロードキャストされた際に、これを電子デバイス４に転送する機能は、ハブ１２がもともと有する機能である。従ってホスト機器２は、複数の電子デバイス４の接続関係を把握している必要は無い。
【００８２】
［第３の実施形態］  
次に、この発明の第３の実施形態に係る半導体装置及びホスト機器について説明する。本実施形態は、上記第１、第２の実施形態の具体例に係るものである。以下では、第１の実施形態と同様の点についての説明は省略する。
【００８３】
図１０は、本実施形態に係るメモリシステムの一例を示すブロック図である。図示するようにメモリシステム２０は、ホストコントローラ２１、カードスロット２２、ＣＰＵ（central processing unit）２３、システムメモリ２４、電子デバイス４−１〜４−４、及びハブ１２を備えている。
【００８４】
ＣＰＵ２３は、メモリシステム２０の動作全体を司り、図示せぬＲＯＭ（read only memory）に格納されているプログラム等に従って動作する。システムメモリ２４は、ＣＰＵ２３が各種のデータを一時的に保存しておくために用いられ、また実行可能なプログラムを実行するために用いられる。
【００８５】
ホストコントローラ２１は、上記第１、第２の実施形態で説明したホスト機器２に相当する。ホストコントローラ２１は、このホストコントローラ２１に接続され得るデバイス（要素）と通信するのに必要な様々なハードウェア、ソフトウェア、取り決め等を含んでいる。具体的には、ホストコントローラ２１は、電子デバイス４と複数の信号線を介した通信が可能になるように構成されている。信号線には例えば、パケットを転送する信号線、クロックを転送する信号線、及び電源線等が含まれる。ホストコントローラ２１の一部の機能は、これらの信号線を予め設定された規定に従って、出力したり、取り込んだりする。より具体的には、信号線を介して供給される信号を解析し、この信号から予め設定されたビットパターンを認識し、この信号の中からコマンドを取り込む。また、同様に、所定のビットパターンを認識して、信号の中からデータを取り込む。ホストコントローラ２１において定義されているコマンドには、様々なものが用意されている。ホストコントローラ２１は、このような機能を実現できるように、例えばソフトウェアによる制御により実行されるＣＰＵの機能の一部や、半導体チップとして実現することができる。
【００８６】
ホストコントローラ２１は、より具体的には、パケットを転送する信号線及びクロックを転送する信号線をサポートしている。すなわちホストコントローラ２１は、これらを用いて、データの転送を行えるように構成されている。さらに具体的には、ホストコントローラ２１は、例えばＳＤインターフェースを制御できるように構成されている。
【００８７】
電子デバイス４−１〜４−４は、メモリシステム２０に内蔵されたデバイスである。電子デバイス４−１〜４−４として、ホストコントローラ２１を介してＣＰＵ２３と通信可能に構成されているあらゆるタイプのデバイスを用いることができ、例えば、メモリデバイス、無線ＬＡＮ（local area network）デバイス等が該当する。電子デバイス４−１〜４−４として用いることが可能なデバイスの主たる部分は、各電子デバイス４−１〜４−４の機能に応じて公知の技術によって実現できる。電子デバイス４−１〜４−４は、ＳＤカード等のポータブルデバイスにおいて封止される半導体チップを利用して実現することができる。
【００８８】
電子デバイス４−１〜４−４は、それぞれ電子デバイス４−１〜４−４の主たる機能（例えばメモリ機能、無線ＬＡＮ機能等）を実行するためのデバイス部２６−１〜２６−４を有する。更に電子デバイス４−１〜４−４は、それぞれコントローラ（デバイスコントローラ）２５−１〜２５−４を備えている。各コントローラ２５−１〜２５−４は、ＣＰＵ２３と、ホストコントローラ２１を介して、インターフェースを用いて通信可能に構成されている。すなわち、このようなインターフェースをサポートするためのハードウェアおよびソフトウェア構成を含んでいる。
【００８９】
ホストコントローラ２１がＳＤインターフェースをサポートしている場合、コントローラ２５−１〜２５−４もＳＤインターフェースをサポートするように構成されている。コントローラ２５−１〜２５−４は、デバイス部２６−１〜２６−４から独立したＣＰＵ及び／または半導体チップとして実現してもよい。または、コントローラ２５−１〜２５−４とデバイス部２６−１〜２６−４とがそれぞれ一体となった半導体チップとして実現してもよい。
【００９０】
各コントローラ２５−１〜２５−４はそれぞれ、第１の実施形態で説明した入力信号ピン５、出力信号ピン６、パケットデコーダ７、演算モジュール８、レジスタ９、及びパケット更新回路１０を備えている。以下では、コントローラ２５−１〜２５−４の各々が備える入力信号ピン５、出力信号ピン６、パケットデコーダ７、演算モジュール８、レジスタ９、及びパケット更新回路１０を、互いに区別する場合には、入力信号ピン５−１〜５−４、出力信号ピン６−１〜６−４、パケットデコーダ７−１〜７−４、演算モジュール８−１〜８−４、レジスタ９−１〜９−４、及びパケット更新回路１０−１〜１０−４と呼ぶ。なお図１０では、これらの構成要素のうちレジスタ９−１〜９−４のみ図示している。
【００９１】
電子デバイス４−１、４−２は、メモリデバイスである。この電子デバイス４−１、４−２は、デバイス部２６−１としてＮＡＮＤ型フラッシュメモリを含んでいる。ＮＡＮＤ型フラッシュメモリは、記憶領域として、複数のページから構成される。各ページは、直列接続された複数のメモリセルトランジスタを含んでいる。各メモリセルトランジスタは、いわゆるスタックゲート構造型のＭＯＳトランジスタからなる。スタックゲート構造のＭＯＳトランジスタは、トンネル絶縁膜、電荷蓄積層（例えば浮遊ゲート電極）、電極間絶縁膜、及び制御ゲート電極が順次積層されたゲート電極と、ソース／ドレイン拡散層とを含む。各メモリセルトランジスタは、電荷蓄積層に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。そして、メモリのセンスアンプ、電位発生回路等を含む制御回路は、メモリセルトランジスタに多ビットのデータを書き込み、多ビットのデータを読み出すことが可能な構成を有している。データの書き込みおよび読み出しは、ページ単位で行なわれる。また、データの消去は複数のページからなるブロック単位で行なわれる。
【００９２】
また電子デバイス４−３、４−４は、例えばＳＤ ＩＯデバイスであり、デバイス部２６−３、２６−４として、例えば無線ＬＡＮ機能等を有する。
【００９３】
カードスロット２２は、このカードスロット２２がサポートするメモリシステムおよびその他デバイスを含む、リムーバブルなカード型の電子デバイス４−５（以下、カードデバイス４−５と呼ぶ）が抜き差しできるように構成されている。
【００９４】
カードスロット２２は、これらカードデバイス４−５と接続される端子を有しており、インターフェース中の各ラインと、これらに対応する端子とが接続される。ホストコントローラ２１がＳＤインターフェースをサポートしている場合、ＳＤインターフェースに必要な端子がカードスロット２２に設けられる。
【００９５】
カードデバイス４−５には、ＳＤメモリカード及びＳＤ ＩＯカード等、ＳＤインターフェースを介してホストコントローラ２１と通信可能なあらゆるカードデバイスが含まれる。図１０の例では、カードデバイス４−５はＳＤメモリカードである。カードデバイス４−５は、電子デバイス４−１〜４−４と同様にコントローラ２５−５及びデバイス部２６−５を備えている。
【００９６】
コントローラ２５−５は、第１の実施形態で説明した入力信号ピン５、出力信号ピン６、パケットデコーダ７、演算モジュール８、レジスタ９、及びパケット更新回路１０を備えている。以下では、コントローラ２５−５が備える入力信号ピン５、出力信号ピン６、パケットデコーダ７、演算モジュール８、レジスタ９、及びパケット更新回路１０を、電子デバイス４−１〜４−４のコントローラ２５−１〜２５−４と区別する場合には、入力信号ピン５−５、出力信号ピン６−５、パケットデコーダ７−５、演算モジュール８−５、レジスタ９−５、及びパケット更新回路１０−５と呼ぶ。また図１０では、これらの要素のうちレジスタ９−５のみ図示している。
【００９７】
またデバイス部２６−５は、ＮＡＮＤ型フラッシュメモリを含んでいる。デバイス部２６−５の構成は、デバイス部２６−１、２６−２と同様である。
【００９８】
上記ホストコントローラ２１、電子デバイス４−１〜４−４、ハブ１２、及びスロット２２の接続関係は、第２の実施形態で説明した図９とほぼ同様である。すなわち、ホスト機器２から送信されたパケットは、まず電子デバイス４−１で受信され、その後電子デバイス４−１から電子デバイス４−２に転送され、更に電子デバイス４−２から電子デバイス４−３に転送され、更に電子デバイス４−３から電子デバイス４−４に転送され、電子デバイス４−４の出力信号ピン６−４から出力されるパケットがハブ１２に与えられる。
【００９９】
ハブ１２は、電子デバイス４−４から転送されたパケットを、必要に応じてカードスロット２２に転送し、これによりパケットが、カードスロット２２に挿入されたカードデバイス４−５に与えられる。そして、カードデバイス４−５の出力信号ピン６−５から出力されるパケット、及び／または電子デバイス４−４の出力信号ピン６−４から出力されるパケットは、ハブ１２を介してホストコントローラ２１に返される。
【０１００】
電子デバイス４−１〜４−５のデバイスＩＤ特定時には、パケットはコントローラ２１から電子デバイス４−１、４−２、４−３、４−４、ハブ１２、カードデバイス４−５、ハブ１２、及びホストコントローラ２１の順に、順次転送される。図１０において、各機器間の矢印の横に付記した四角印は、デバイスＩＤ特定時におけるパケットのペイロードの内容を示し、左側がフィールド１１−３（開始デバイスＩＤ）であり、右側がフィールド１１−４（デバイス数）である。また、レジスタ９−１〜９−５に記載されている数字が、各電子デバイスのデバイスＩＤである。
【０１０１】
すなわち、電子デバイス４−１が自身のデバイスＩＤを“５”に設定したとすると、電子デバイス４−１から出力されるパケットのフィールド１１−３、１１−４はそれぞれ“５”、“１”である。従って、電子デバイス４−２のデバイスＩＤは“６”となり、電子デバイス４−２から出力されるパケットのフィールド１１−３、１１−４はそれぞれ“５”、“２”である。すると、電子デバイス４−３のデバイスＩＤは“７”となり、電子デバイス４−３から出力されるパケットのフィールド１１−３、１１−４はそれぞれ“５”、“３”である。次に、電子デバイス４−４のデバイスＩＤは“８”となり、電子デバイス４−４から出力されるパケットのフィールド１１−３、１１−４はそれぞれ“５”、“４”である。電子デバイス４−４から出力されるパケットは、ハブ１２及びカードスロット２２を介してカードデバイス４−５に与えられる。そしてカードデバイス４−５のデバイスＩＤは“９”となり、カードデバイス４−５から出力されるパケットのフィールド１１−３、１１−４はそれぞれ“５”、“５”である。このパケットが、カードスロット２２及びハブ１２を介してホストコントローラ２１に返される。
【０１０２】
以上の動作が、ホストコントローラ２１から各電子デバイス４−１〜４−５に与えられるクロックに同期して実行される。
【０１０３】
以上のように、この発明の第１乃至第３の実施形態に係る半導体装置３であると、受信したパケットのコマンドを解析してこのパケットによって指定される処理を決定するデコーダ７と、このパケット内の情報に応じて固有のデバイス番号を生成する生成回路８と、生成された固有のデバイス番号を保持するレジスタ９と、パケット内の情報を更新して出力する更新回路１０と、を各々が備える第１デバイス４−１及び第２デバイス４−２を具備する。そして第２デバイス４−２は、第１デバイス４−１において情報が更新されたパケットを受信すると共に、第２デバイス４−２の生成回路８−２は、第１デバイス４−１と異なる前記デバイス番号を生成する。
【０１０４】
また、この発明の第１乃至第３の実施形態に係るホスト機器２（及びホストコントローラ２１）であると、複数のデバイス４に接続され得るホスト機器２であって、ホスト機器２は、デバイス番号の初期値（開始デバイスＩＤ：フィールド１１−３）及びデバイス数（フィールド１１−４）をゼロに設定した第１パケットを第１デバイス４−１に発行すると共に、該第１パケットに対する応答を第１デバイス４−１から受信することなく、初期値（フィールド１１−３）及びデバイス数（フィールド１１−４）の修正された第２パケットを第２デバイス（図１の例では電子デバイス４−３）から受信し、第２パケット内の修正された初期値（フィールド１１−３）及びデバイス数（フィールド１１−４）から、接続されているデバイス４の数及びデバイス４に割り付けられたデバイス番号を認識する。
【０１０５】
すなわち、デバイス４のデバイスＩＤを決定する際、ホスト機器２で発行されたパケットは、複数のデバイス４間を順次転々とする。この際、パケットを受け取ったデバイス４は、パケット内の情報に基づいて自身のデバイスＩＤを決定すると共に、パケット内の情報を自身のデバイスＩＤに関連した情報に更新しつつ、且つこのパケットに対する応答をホスト機器２に返すことなく、次のデバイス４へと転送する。そして最後のデバイス４が、パケットをホスト機器２へ返す。
【０１０６】
言い換えれば、ホスト機器２が発行したパケットは、デバイス４を順次通過して、最終的にホスト機器２に返ってくる。しかし、この際、返ってきたパケットにおけるペイロードは、最初にデバイスＩＤの決定のために発行したパケットとは異なる内容の値を有している。
【０１０７】
以上の構成によりホスト機器２は、より簡便な構成にて、デバイス４毎に固有のＩＤを付与することが可能となる。上記構成は、例えば高速シリアル伝送を行うメモリデバイスに適用することで、大きな効果が得られる。
【０１０８】
なお、上記説明した第１乃至第３の実施形態は、本発明を実施するための構成例に過ぎず、種々の変形が可能である。例えば、図４のステップＳ２５において用いる演算方法として、上記実施形態では１ずつインクリメントする場合を例に説明した。しかし、演算方法はこれに限られるものでは無く、２ずつインクリメントする場合や、演算モジュール８その他の関数を保持し、この関数を用いてデバイスＩＤを算出する場合であっても良い。すなわち、ホスト機器２と電子デバイス４とで共通の演算ルールであれば、限定されるものでは無い。
【０１０９】
また、図４のステップＳ２３において、デバイスＩＤの任意の番号が、“０”以外である場合を例に説明した。例えばデバイスＩＤが４ビットであり、且つデバイスＩＤの演算方法がインクリメントであった場合には、デバイスＩＤの値は“０”〜“１５”まで表現可能である。このうち、“０”はホスト機器２のＩＤとして割り当てられるので、最大で１５個の電子デバイス４を接続することが出来る。そして、ある電子デバイス４のデバイスＩＤが“１５”であった場合には、これをインクリメントすると“０”に戻るが、これはホスト機器２のＩＤであるので、次の電子デバイス４のデバイスＩＤは“０”ではなく、更にインクリメントして“１”となる。
【０１１０】
なお、実装によってはホスト機器２のＩＤは“０”には限られず、他の値であっても良い。電子デバイス４に割り当てられるデバイスＩＤは、ホスト機器２のＩＤと同一でなければ良い。
【０１１１】
また上記実施形態では、図４のステップＳ２３において、最初の電子デバイス４−１は、自身のデバイスＩＤを任意に選択する場合を例に説明した。しかし、ホスト機器２が指定する場合であっても良い。すなわち、ホスト機器２は、ペイロードに電子デバイス４−１のデバイスＩＤを格納してパケット１１を組み立てて、これをブロードキャストする。そしてこのパケット１１を受信した電子デバイス４−１は、ペイロード内のデバイスＩＤを読み出して、これを自身のデバイスＩＤに設定する。このような方法を採用しても良い。
【０１１２】
但し、従来のＳＤメモリカードで使用されているＲＣＡは、ランダムに生成される。従って、従来のＳＤインターフェースとの親和性という観点では、ステップＳ２３におけるデバイスＩＤもランダムに生成されることが好ましい。また、上記実施形態で説明したデバイスＩＤの設定方法はＲＣＡの使用を排除するものでは無く、同時にＲＣＡを使用しても良い。
【０１１３】
また、上記実施形態で説明した図３乃至図４の動作は、半導体システム１やメモリシステム２０に対する電源投入時に行うことが出来る。そのほかに、電子デバイス４のいずれかがホスト機器２から取り外された場合や、逆に追加された場合も、デバイスＩＤを設定しなおす必要があるので、図３乃至図４の動作を行うことが出来る。
【０１１４】
更に、電子デバイス４はＳＤメモリカード、ＵＨＳ（ultra high speed）−IIカード、及びＳＤ ＩＯデバイスなどのＳＤインターフェースを有するデバイスであっても良いし、その他のデバイスであっても良い。また電子デバイス４がメモリデバイスである場合、そのメモリ構造はＮＡＮＤ型フラッシュメモリに限らず、ＮＯＲ型フラッシュメモリや、フラッシュメモリ以外の半導体メモリであっても良い。
【０１１５】
またホスト機器２（及びホストコントローラ２１）の動作は、ハードウェアやソフトウェアによって実行可能である。図１１は、ホスト機器２のハードウェア構成の一例を示すブロック図である。図示するようにホスト機器２は、入力信号ピン３０、出力信号ピン３１、入出力信号ピン３２、パケットデコーダ３３、演算モジュール３４、メモリ３５、及びパケット更新回路パケット生成部３６を備えている。
【０１１６】
入力信号ピン３０は、少なくとも１つの入力ポートとして機能し、電子デバイス４から与えられるパケットを受信する。そして受信したパケットをパケットデコーダ３３へ転送する。
【０１１７】
パケットデコーダ３３は、入力信号ピン３０から転送されたパケットを解析可能に構成されている。パケットデコーダ３３は、パケットヘッダ内コマンド番号により、電子デバイス４が求める処理を識別する。そしてパケットデコーダ３３は、要求された処理に応じて必要な演算を行うよう、演算モジュール３４に命令する。
【０１１８】
演算モジュール３４は、パケットデコーダ３３の命令に応じて、必要な演算を実行可能に構成されている。演算内容の一例はデバイスＩＤの算出であり、電子デバイス４と同様の演算ルールを保持する。そして、電子デバイス４から受信したパケットのペイロードの情報から、ホスト機器２に接続された全電子デバイス４のデバイスＩＤを得る。得られたデバイスＩＤは、メモリ３５に保持される。
【０１１９】
入出力信号ピン３２は、上位レイヤへ信号を送信し、または上位レイヤから信号を受信する。
【０１２０】
パケット生成部３６は、上位レイヤからの要求に応じて、コマンドやデータを含むパケットを組み立てる。その際、パケットの宛先となる電子デバイス４のデバイスＩＤをメモリ３５から読み出す。そして組み立てたパケットを、出力信号ピン３１から電子デバイス４へ送信する。電源投入時などに各電子デバイス４のデバイスＩＤを特定するためのパケット１１も、パケット生成部３６において生成される。メモリ３５は、各コマンドがブロードキャストであるか否かの情報等を有していても良い。
【０１２１】
ホスト機器２は、以上のようなハードウェア構成を有していても良い。勿論、パケットデコーダ３３、演算モジュール３４、及びパケット生成部３６は、ＣＰＵ等のプロセッサであっても良い。そして、例えばメモリ３５に保持されたプログラムを実行することで、プロセッサがパケットデコーダ３３、演算モジュール３４、及びパケット生成部３６として機能し、図３に示すステップを実行する場合であっても良い。
【０１２２】
このことは電子デバイス４においても同様であり、パケットデコーダ７、演算モジュール８、及びパケット更新回路１０の機能をＣＰＵ等のプロセッサが担っても良い。この場合も同様に、電子デバイス４に保持されるプログラムを実行することで、プロセッサが、パケットデコーダ７、演算モジュール８、及びパケット更新回路１０として機能し、図４（または後述する図１３）のステップが実行されて良い。
【０１２３】
また、上記説明において、パケット１１は、デバイス数（フィールド１１−４）の代わりに、最終デバイス番号（last device No.：フィールド１１−５）を含んでいても良い。図１２は、この場合のパケット１１の構造を示す模式図である。最終デバイス番号は、当該パケットが最後に通過した電子デバイス４のデバイスＩＤの値である。
【０１２４】
図１２のパケットを用いる場合であっても、ホスト機器２及び電子デバイス４の動作は、ほぼ第１の実施形態と同様である。図１３は、電子デバイス４の動作を示すフローチャートである。電子デバイス４の動作において、第１の実施形態で説明した図４と異なる点は、ステップＳ２６の後、最終デバイス番号（フィールド１１−５）に、自身のデバイスＩＤをセットする点である（ステップＳ３０）。その他は第１の実施形態と同様である。
【０１２５】
ホスト機器２の動作は図３とほぼ同様であるが、ステップＳ１３では、開始デバイス番号と最終デバイス番号とを読み取る。そして、これらの少なくともいずれかに基づいて、電子デバイス４の総数と、各電子デバイス４のデバイスＩＤを算出する。
【０１２６】
図１４は、図１２のパケットを用いた場合の半導体システム１のブロック図である。図５と同様に、図中において各機器間の矢印の横に付記した四角印はパケットのペイロードの内容を示し、左側がフィールド１１−３（開始デバイスＩＤ）であり、右側がフィールド１１−５（最終デバイスＩＤ）である。
【０１２７】
図示するように、まずホスト機器２から発行されたパケットのフィールド１１−３、１１−５の値は、ホスト機器２によって設定された所定の値（ゼロ）である。このパケットが電子デバイス４−１で受信されると、電子デバイス４−１は自身のデバイスＩＤを“５”に決定する。そしてこの値をフィールド１１−３、１１−５の両方にセットする。
【０１２８】
電子デバイス４−１から出力されたパケットは、次に電子デバイス４−２で受信される。電子デバイス４−２では、フィールド１１−３（及び／またはフィールド１１−５）の値に基づき、予め定められた演算方法により、自身のデバイスＩＤを“６”に決定する。そしてフィールド１１−３の値はそのままに、フィールド１１−５の値を自身のデバイスＩＤである“６”に更新して、これを出力する。電子デバイス４−３も同様に、自身のデバイスＩＤをフィールド１１−５にセットする。
【０１２９】
以上の結果、ホスト機器２が電子デバイス４−３から受信するパケットは、フィールド１１−３の値が“５”、フィールド１１−５の値が“７”である。従ってホスト機器は、電子デバイス４−１、４−３のデバイスＩＤが“５”、“７”であることを把握する。また、デバイスＩＤの演算方法（例えばインクリメント）から、電子デバイス４の総数が３個（＝最終デバイスＩＤ−開始デバイスＩＤ＋１）であることと、各電子デバイス４のデバイスＩＤとを把握出来る。
【０１３０】
以上のような方法を用いても良い。なお、この場合でも、各電子デバイス４のデバイスＩＤとしては、ホスト機器２に割り当てられた値（例えば“０”）を除く値である。なお、開始デバイスＩＤの最初の値（パケット１１を最初に受信した電子デバイス４−１が任意に設定する値）が“１”であれば、デバイス数（フィールド１１−４）は最終デバイスＩＤであると見なすことが出来る。また図１５の模式図に示すように、パケット１１のペイロードは、開始デバイスＩＤ（フィールド１１−３）、デバイス数（フィールド１１−４）、及び最終デバイスＩＤ（フィールド１１−５）を含んでいても良い。図１５の例では、パケット１１のペイロードは、開始デバイスＩＤ、最終デバイスＩＤ、及びデバイス数の順に、情報を保持する。この場合、各電子デバイス４の動作は図４及び図１３との組み合わせであり、フィールド１１−４、１１−５と、必要であればフィールド１１−３を更新する。またホスト機器２は、フィールド１１−３〜１１−５の少なくともいずれかに基づいて、電子デバイス４の総数と、各デバイスＩＤとを把握する。
【０１３１】
また上記実施形態では、図４のステップＳ２１において、電子デバイス４がパケット１１のペイロードの開始デバイスＩＤ（フィールド１１−３）の値を確認し、それがゼロであった場合（ステップＳ２２、ＹＥＳ）に、自身のデバイスＩＤを任意の値に設定する場合を例に説明した。しかし、任意のデバイスＩＤの設定方法、言い換えれば、自身がホスト機器２から最初にパケット１１を受信した電子デバイスであるか否かを判断する方法には、種々の方法を用いることが出来る。
【０１３２】
例えば、最終デバイスＩＤ（またはデバイス数）が“０”であるか否かによって判断しても良い。すなわち、パケット１１を受信した電子デバイス４は、図４のステップＳ２１において、最終デバイスＩＤ（フィールド１１−５）またはデバイス数（フィールド１１−４）の値がゼロであるか否かを判断する。前述の通り、開始デバイスＩＤの最初の値（パケット１１を最初に受信した電子デバイス４−１が任意に設定する値）が“１”であれば、デバイス数と最終デバイスＩＤとは同義である。最終デバイスＩＤまたはデバイス数がゼロであれば（ステップＳ２２、ＹＥＳ）、電子デバイス４は自身のデバイスＩＤとして任意の値をセットする。ゼロでなければ（ステップＳ２２、ＮＯ）、ステップＳ２４に進む。
【０１３３】
つまり、電子デバイス４は、自らが先頭デバイス、すなわち、ホスト機器２により発行されたパケット１１を最初に受信した電子デバイスであるか否かの判断は、パケット１１内の開始デバイスＩＤ（フィールド１１−３）及び／または最終デバイスＩＤ（フィールド１１−５）の値を見て判断出来る。例えば、開始デバイスＩＤまたは最終デバイスＩＤが“０”であれば、自身が先頭デバイスであると判断し、自らのデバイスＩＤを生成する。“０”で無ければ、自身は先頭デバイスではないと判断する。
【０１３４】
また、ステップＳ２４において開始デバイスＩＤの最初の値を決定する方法については、ホスト機器２が番号を指定する方法と、電子デバイス４が決める方法の二通りが考えられる。まず、受信したパケット１１のフィールド１１−３（開始デバイスＩＤ）の値が特定の値の場合、電子デバイス４が任意の値を生成して、これを自身（電子デバイス４−１）のデバイスＩＤとする。他方、フィールド１１−３の値が特定の値で無い場合には、電子デバイス４は、所定の関数を実行して自身のデバイスＩＤを設定する。この関数がインクリメントである場合は、フィールド１１−３の値に“１”が加算された値が、自身のデバイスＩＤとなる。すなわち、言い換えれば電子デバイス４は、パケット１１内の開始デバイスＩＤと最終デバイスＩＤとの少なくともいずれか一方の値に基づいて、自らがパケット１１を最初に受け取ったデバイスであるかを判断し、最初に受け取ったと判断した場合に、自身のデバイス番号を任意に、または開始デバイスＩＤに応じて決定することが出来る。
【０１３５】
更に、上記実施形態では、種々のフローチャートを用いて動作を説明した。しかし、各フローチャートは一例に過ぎず、可能な限り、ステップの入れ替えが可能であり、また複数のステップは同時に実行可能であり、また場合によっては幾つかのステップを省略しても良い。
【０１３６】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【符号の説明】
【０１３７】
１…半導体システム、２…ホスト機器、３…半導体装置、４−１〜４−５…電子デバイス、５−１〜５−３、３０…入力信号ピン、６−１〜６−３、３１…出力信号ピン、７−１〜７−３、３３…パケットデコーダ、８−１〜８−３、３４…演算モジュール、９−１〜９−５…レジスタ、１０−１〜１０−３…パケット更新回路、１１…パケット、１１−１〜１１−５…フィールド、１２、１２−１、１２−２…ハブ、２０…メモリシステム、２１…コントローラ、２２…カードスロット、２３…ＣＰＵ、２４…システムメモリ、２５−１〜２５−５…コントローラ、２６−１〜２６−５…デバイス部、３０…パケット生成部、３２…入出力ピン、３５…メモリ
【図１】
2011090349.tif 000003
【図２】
2011090349.tif 000004
【図３】
2011090349.tif 000005
【図４】
2011090349.tif 000006
【図５】
2011090349.tif 000007
【図６】
2011090349.tif 000008
【図７】
2011090349.tif 000009
【図８】
2011090349.tif 000010
【図９】
2011090349.tif 000011
【図１０】
2011090349.tif 000012
【図１１】
2011090349.tif 000013
【図１２】
2011090349.tif 000014
【図１３】
2011090349.tif 000015
【図１４】
2011090349.tif 000016
【図１５】
2011090349.tif 000017