(57)【要約】処理システム内のデバイスの設定を検出する方法および装置が記述される。１つの実施形態では、メモリ・デバイスに関連付けられたページ・サイズ・パラメータが識別される。更に、メモリ・デバイスに関連付けられた１または複数の設定パラメータも識別される。このページ・サイズ・パラメータと設定パラメータによって、メモリ・デバイスへのアクセスが可能となる。最後に、ページ・サイズ・パラメータと、１または複数の設定パラメータとに基づいて、メモリ・デバイスからアプリケーション・データをダウンロードする要求が、メモリ・デバイスへ送られる。
2009509269.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・デバイスに関連付けられたページ・サイズ・パラメータを識別することと、
前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別することとを備え、
前記ページ・サイズ・パラメータおよび前記少なくとも１つの設定パラメータは、前記メモリ・デバイスの検出を可能にし、
前記方法は更に、前記ページ・サイズ・パラメータと前記少なくとも１つの設定パラメータとに基づいて、前記メモリ・デバイスからアプリケーション・データをダウンロードする要求を送る方法。
【請求項２】
前記ページ・サイズ・パラメータを識別することは更に、
前記ページ・サイズ・パラメータを検出するために必要とされる予め定めたデータ量を示す自動検出コマンド・シーケンスを、前記メモリ・デバイスに送ることと、
前記メモリ・デバイスから利用可能なページ・データであって、前記予め定めたデータ量を含む前記ページ・データにアクセスすることと
を備える請求項１に記載の方法。
【請求項３】
前記ページ・データは更に、前記メモリ・デバイスの第１のデータ・ページを含む請求項２に記載の方法。
【請求項４】
前記ページ・サイズ・パラメータを識別することは更に、前記ページ・サイズ・パラメータを記憶モジュールに格納することを備える請求項２に記載の方法。
【請求項５】
前記自動検出コマンド・シーケンスを送ることは更に、
前記メモリ・デバイスにページ読取コマンドを送ることと、
前記第１のデータ・ページのページ・アドレス座標を前記メモリ・デバイスへ送ることと、
前記ページ読取コマンドの実行のステータスを予め定めた期間モニタすることと
を備える請求項３に記載の方法。
【請求項６】
前記予め定めた期間は３００ナノ秒である請求項５に記載の方法。
【請求項７】
前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行を開始するのであれば、前記ページ・サイズ・パラメータについて２５６／５１２バイト値を識別し、前記メモリ・デバイスを２５６／５１２バイト・ページ・サイズ・メモリ・デバイスとして識別することを更に備える請求項５に記載の方法。
【請求項８】
前記モニタすることは更に、前記メモリ・デバイスから受け取ったビット信号をモニタすることを備え、
前記ビット信号は、前記ページ読取コマンドの実行の開始を示す請求項５に記載の方法。
【請求項９】
前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行に失敗したのであれば、前記メモリ・デバイスへ読取開始コマンドを送ることと、
前記読取開始コマンドの実行のステータスを、第２の予め定めた期間モニタすることと
を更に備える請求項５に記載の方法。
【請求項１０】
前記メモリ・デバイスが、前記予め定めた期間内に前記読取開始コマンドの実行を開始したのであれば、５１２バイト値よりも多い前記ページ・サイズ・パラメータのための予め定めた値を識別することを更に備える請求項９に記載の方法。
【請求項１１】
前記予め定めた値は、２Ｋバイト値である請求項１０に記載の方法。
【請求項１２】
前記読取開始コマンドの実行のステータスをモニタすることは更に、前記メモリ・デバイスから受け取ったビット信号をモニタすることを備え、
前記ビット信号は、前記読取開始コマンドの実行の開始を示す請求項９に記載の方法。
【請求項１３】
前記メモリ・デバイスにリセット・コマンドを送ることと、
前記リセット・コマンドの実行のステータスをモニタすることと
を更に備える請求項１に記載の方法。
【請求項１４】
前記モニタすることは更に、前記メモリ・デバイスから受け取ったビット信号をモニタすることを備え、
前記ビット信号は、前記リセット・コマンドの実行の完了を示す請求項１３に記載の方法。
【請求項１５】
前記少なくとも１つの設定パラメータを識別することは更に、
前記ページ・データから複数の予め定めたデータ・シーケンスを検索することと、
前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別するために、各データ・シーケンスを復号することと
を備える請求項１に記載の方法。
【請求項１６】
前記少なくとも１つの設定パラメータは更に、前記メモリ・デバイスに関連付けられたインタフェース・バス幅パラメータを備える請求項１に記載の方法。
【請求項１７】
前記ページ・サイズ・パラメータを識別することは更に、前記ページ・サイズ・パラメータが、５１２バイト値を持っているかを判定することを備える請求項２に記載の方法。
【請求項１８】
前記ページ・サイズ・パラメータの５１２バイト値に関連付けられた予め定めた設定をロードすることを更に備える請求項１７に記載の方法。
【請求項１９】
前記ページ・サイズ・パラメータが、５１２バイト値を持っていないのであれば、前記ページ・サイズ・パラメータの検出された値に関連付けられた予め定めた設定をロードすることを更に備える請求項１７に記載の方法。
【請求項２０】
前記アプリケーション・データをダウンロードする要求を送ることは更に、アプリケーション・データをダウンロードする命令をプロセッサ・モジュールから受け取ることを備える請求項１に記載の方法。
【請求項２１】
装置であって、
メモリ・デバイスに関連付けられたページ・サイズ・パラメータを識別し、前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別するコントローラ・モジュールを備え、
前記ページ・サイズ・パラメータおよび前記少なくとも１つの設定パラメータは、前記メモリ・デバイスの検出を可能にし、
前記装置は更に、前記ページ・サイズ・パラメータと前記少なくとも１つの設定パラメータとに基づいて、前記メモリ・デバイスからアプリケーション・データをダウンロードするように前記コントローラ・モジュールに命令するプロセッサ・モジュールであって、前記コントローラ・モジュールに接続されたプロセッサ・モジュールとを備え、
前記コントローラ・モジュールは更に、前記アプリケーション・データをダウンロードする要求を、前記メモリ・デバイスへ送る装置。
【請求項２２】
前記コントローラ・モジュールは更に、前記ページ・サイズ・パラメータを検出するために必要とされる予め定めたデータ量を示す自動検出コマンド・シーケンスを、前記メモリ・デバイスに送り、前記メモリ・デバイスから利用可能なページ・データにアクセスし、
前記ページ・データは、前記予め定めたデータ量を含む請求項２１に記載の装置。
【請求項２３】
前記ページ・データは更に、前記メモリ・デバイスの第１のデータ・ページを含む請求項２２に記載の装置。
【請求項２４】
前記コントローラ・モジュールは更に、前記ページ・サイズ・パラメータを記憶モジュールに格納する請求項２２に記載の装置。
【請求項２５】
前記コントローラ・モジュールは更に、前記メモリ・デバイスにページ読取コマンドを送り、前記第１のデータ・ページのページ・アドレス座標を前記メモリ・デバイスへ送り、前記ページ読取コマンドの実行のステータスを予め定めた期間モニタする請求項２３に記載の装置。
【請求項２６】
前記予め定めた期間は３００ナノ秒である請求項２５に記載の装置。
【請求項２７】
前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行を開始するのであれば、前記コントローラ・モジュールは更に、前記ページ・サイズ・パラメータについて２５６／５１２バイト値を識別し、前記メモリ・デバイスを２５６／５１２バイト・ページ・サイズ・メモリ・デバイスとして識別する請求項２５に記載の装置。
【請求項２８】
前記コントローラ・モジュールは更に、前記メモリ・デバイスから受け取ったビット信号をモニタし、前記ビット信号は、前記ページ読取コマンドの実行の開始を示す請求項２５に記載の装置。
【請求項２９】
前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行に失敗したのであれば、前記コントローラ・モジュールは更に、前記メモリ・デバイスへ読取開始コマンドを送り、前記読取開始コマンドの実行のステータスを、第２の予め定めた期間モニタする請求項２５に記載の装置。
【請求項３０】
前記メモリ・デバイスが、前記予め定めた期間内に前記読取開始コマンドの実行を開始したのであれば、前記コントローラ・モジュールは更に、５１２バイト値よりも多い前記ページ・サイズ・パラメータのための予め定めた値を識別する請求項２９に記載の装置。
【請求項３１】
前記予め定めた値は、２Ｋバイト値である請求項３０に記載の装置。
【請求項３２】
前記コントローラ・モジュールは更に、前記メモリ・デバイスから受け取ったビット信号をモニタし、前記ビット信号は、前記読取開始コマンドの実行の開始を示す請求項２９に記載の装置。
【請求項３３】
前記コントローラ・モジュールは更に、前記メモリ・デバイスにリセット・コマンドを送り、前記リセット・コマンドの実行のステータスをモニタする請求項２１に記載の装置。
【請求項３４】
前記コントローラ・モジュールは更に、前記メモリ・デバイスから受け取ったビット信号をモニタし、前記ビット信号は、前記リセット・コマンドの実行の完了を示す請求項３３に記載の装置。
【請求項３５】
前記コントローラ・モジュールは更に、前記ページ・データから複数の予め定めたデータ・シーケンスを検索し、前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別するために、各データ・シーケンスを復号する請求項２１に記載の装置。
【請求項３６】
前記少なくとも１つの設定パラメータは更に、前記メモリ・デバイスに関連付けられたインタフェース・バス幅パラメータを備える請求項２１に記載の装置。
【請求項３７】
前記コントローラ・モジュールは更に、前記ページ・サイズ・パラメータが、５１２バイト値を持っているかを判定する請求項２２に記載の装置。
【請求項３８】
前記コントローラ・モジュールは更に、前記ページ・サイズ・パラメータの５１２バイト値に関連付けられた予め定めた設定をロードする請求項３７に記載の装置。
【請求項３９】
前記ページ・サイズ・パラメータが、５１２バイト値を持っていないのであれば、前記コントローラ・モジュールは更に、前記ページ・サイズ・パラメータの検出された値に関連付けられた予め定めた設定をロードする請求項３７に記載の装置。
【請求項４０】
装置であって、
メモリ・デバイスに関連付けられたページ・サイズ・パラメータを識別する手段と、
前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別する手段とを備え、
前記ページ・サイズ・パラメータおよび前記少なくとも１つの設定パラメータは、前記メモリ・デバイスの検出を可能にし、
前記装置は更に、前記ページ・サイズ・パラメータと前記少なくとも１つの設定パラメータとに基づいて、前記メモリ・デバイスからアプリケーション・データをダウンロードする要求を送る手段を備える装置。
【請求項４１】
前記ページ・サイズ・パラメータを検出するために必要とされる予め定めたデータ量を示す自動検出コマンド・シーケンスを、前記メモリ・デバイスに送る手段と、
前記メモリ・デバイスから利用可能なページ・データであって、前記予め定めたデータ量を含む前記ページ・データにアクセスする手段と
を更に備える請求項４０に記載の装置。
【請求項４２】
前記ページ・データは更に、前記メモリ・デバイスの第１のデータ・ページを含む請求項４１に記載の装置。
【請求項４３】
前記ページ・サイズ・パラメータを記憶モジュールに格納する手段を更に備える請求項４１に記載の装置。
【請求項４４】
前記メモリ・デバイスにページ読取コマンドを送る手段と、
前記第１のデータ・ページのページ・アドレス座標を前記メモリ・デバイスへ送る手段と、
前記ページ読取コマンドの実行のステータスを予め定めた期間モニタする手段と
を更に備える請求項４２に記載の装置。
【請求項４５】
前記予め定めた期間は３００ナノ秒である請求項４４に記載の装置。
【請求項４６】
前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行を開始するのであれば、前記ページ・サイズ・パラメータについて２５６／５１２バイト値を識別し、前記メモリ・デバイスを２５６／５１２バイト・ページ・サイズ・メモリ・デバイスとして識別する手段を更に備える請求項４４に記載の装置。
【請求項４７】
前記メモリ・デバイスから受け取ったビット信号をモニタする手段を更に備え、前記ビット信号は、前記ページ読取コマンドの実行の開始を示す請求項４４に記載の装置。
【請求項４８】
前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行に失敗したのであれば、
前記メモリ・デバイスへ読取開始コマンドを送る手段と、
前記読取開始コマンドの実行のステータスを、第２の予め定めた期間モニタする手段と
を更に備える請求項４４に記載の装置。
【請求項４９】
前記メモリ・デバイスが、前記予め定めた期間内に前記読取開始コマンドの実行を開始したのであれば、５１２バイト値よりも多い前記ページ・サイズ・パラメータのための予め定めた値を識別する手段を更に備える請求項４８に記載の装置。
【請求項５０】
前記予め定めた値は、２Ｋバイト値である請求項４９に記載の装置。
【請求項５１】
前記メモリ・デバイスから受け取ったビット信号をモニタする手段を更に備え、前記ビット信号は、前記読取開始コマンドの実行の開始を示す請求項４８に記載の装置。
【請求項５２】
前記メモリ・デバイスにリセット・コマンドを送る手段と、
前記リセット・コマンドの実行のステータスをモニタする手段と
を更に備える請求項４０に記載の装置。
【請求項５３】
前記メモリ・デバイスから受け取ったビット信号をモニタする手段を更に備え、
前記ビット信号は、前記リセット・コマンドの実行の完了を示す請求項５２に記載の装置。
【請求項５４】
前記ページ・データから複数の予め定めたデータ・シーケンスを検索する手段と、
前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別するために、各データ・シーケンスを復号する手段と
を更に備える請求項４０に記載の装置。
【請求項５５】
前記少なくとも１つの設定パラメータは更に、前記メモリ・デバイスに関連付けられたインタフェース・バス幅パラメータを備える請求項４０に記載の装置。
【請求項５６】
前記ページ・サイズ・パラメータが、５１２バイト値を持っているかを判定する手段を更に備える請求項４１に記載の装置。
【請求項５７】
前記ページ・サイズ・パラメータの５１２バイト値に関連付けられた予め定めた設定をロードする手段を更に備える請求項５６に記載の装置。
【請求項５８】
前記ページ・サイズ・パラメータが、５１２バイト値を持っていないのであれば、前記ページ・サイズ・パラメータの検出された値に関連付けられた予め定めた設定をロードする手段を更に備える請求項５６に記載の装置。
【請求項５９】
アプリケーション・データをダウンロードする命令をプロセッサ・モジュールから受け取る手段を更に備える請求項４０に記載の装置。
【請求項６０】
処理システムにおいて実行された場合、前記処理システムに対して方法を実行される実行可能な命令を含むコンピュータ読取可能媒体であって、前記方法は、
メモリ・デバイスに関連付けられたページ・サイズ・パラメータを識別することと、
前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別することとを備え、
前記ページ・サイズ・パラメータおよび前記少なくとも１つの設定パラメータは、前記メモリ・デバイスの検出を可能にし、
前記方法は更に、前記ページ・サイズ・パラメータと前記少なくとも１つの設定パラメータとに基づいて、前記メモリ・デバイスからアプリケーション・データをダウンロードする要求を送ることを備えるコンピュータ読取可能媒体。
【請求項６１】
前記ページ・サイズ・パラメータを識別することは更に、
前記ページ・サイズ・パラメータを検出するために必要とされる予め定めたデータ量を示す自動検出コマンド・シーケンスを、前記メモリ・デバイスに送ることと、
前記メモリ・デバイスから利用可能なページ・データであって、前記予め定めたデータ量を含む前記ページ・データにアクセスすることと
を備える請求項６０に記載のコンピュータ読取可能媒体。
【請求項６２】
前記ページ・データは更に、前記メモリ・デバイスの第１のデータ・ページを含む請求項６１に記載のコンピュータ読取可能媒体。
【請求項６３】
前記ページ・サイズ・パラメータを識別することは更に、前記ページ・サイズ・パラメータを記憶モジュールに格納することを備える請求項６１に記載のコンピュータ読取可能媒体。
【請求項６４】
前記自動検出コマンド・シーケンスを送ることは更に、
前記メモリ・デバイスにページ読取コマンドを送ることと、
前記第１のデータ・ページのページ・アドレス座標を前記メモリ・デバイスへ送ることと、
前記ページ読取コマンドの実行のステータスを予め定めた期間モニタすることと
を備える請求項６２に記載のコンピュータ読取可能媒体。
【請求項６５】
前記予め定めた期間は３００ナノ秒である請求項６４に記載のコンピュータ読取可能媒体。
【請求項６６】
前記方法は更に、前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行を開始するのであれば、前記ページ・サイズ・パラメータについて２５６／５１２バイト値を識別し、前記メモリ・デバイスを２５６／５１２バイト・ページ・サイズ・メモリ・デバイスとして識別することを備える請求項６４に記載のコンピュータ読取可能媒体。
【請求項６７】
前記モニタすることは更に、前記メモリ・デバイスから受け取ったビット信号をモニタすることを備え、
前記ビット信号は、前記ページ読取コマンドの実行の開始を示す請求項６４に記載のコンピュータ読取可能媒体。
【請求項６８】
前記方法は更に、
前記メモリ・デバイスが、前記予め定めた期間内に前記ページ読取コマンドの実行に失敗したのであれば、前記メモリ・デバイスへ読取開始コマンドを送ることと、
前記読取開始コマンドの実行のステータスを、第２の予め定めた期間モニタすることと
を備える請求項６４に記載のコンピュータ読取可能媒体。
【請求項６９】
前記方法は更に、前記メモリ・デバイスが、前記予め定めた期間内に前記読取開始コマンドの実行を開始したのであれば、５１２バイト値よりも多い前記ページ・サイズ・パラメータのための予め定めた値を識別することを備える請求項６８に記載のコンピュータ読取可能媒体。
【請求項７０】
前記予め定めた値は、２Ｋバイト値である請求項６９に記載のコンピュータ読取可能媒体。
【請求項７１】
前記読取開始コマンドの実行のステータスをモニタすることは更に、前記メモリ・デバイスから受け取ったビット信号をモニタすることを備え、
前記ビット信号は、前記読取開始コマンドの実行の開始を示す請求項６８に記載のコンピュータ読取可能媒体。
【請求項７２】
前記方法は更に、
前記メモリ・デバイスにリセット・コマンドを送ることと、
前記リセット・コマンドの実行のステータスをモニタすることと
を備える請求項７０に記載のコンピュータ読取可能媒体。
【請求項７３】
前記モニタすることは更に、前記メモリ・デバイスから受け取ったビット信号をモニタすることを備え、
前記ビット信号は、前記リセット・コマンドの実行の完了を示す請求項７２に記載のコンピュータ読取可能媒体。
【請求項７４】
前記少なくとも１つの設定パラメータを識別することは更に、
前記ページ・データから複数の予め定めたデータ・シーケンスを検索することと、
前記メモリ・デバイスに関連付けられた少なくとも１つの設定パラメータを識別するために、各データ・シーケンスを復号することと
を備える請求項６０に記載のコンピュータ読取可能媒体。
【請求項７５】
前記少なくとも１つの設定パラメータは更に、前記メモリ・デバイスに関連付けられたインタフェース・バス幅パラメータを備える請求項６０に記載のコンピュータ読取可能媒体。
【請求項７６】
前記ページ・サイズ・パラメータを識別することは更に、前記ページ・サイズ・パラメータが、５１２バイト値を持っているかを判定することを備える請求項６１に記載のコンピュータ読取可能媒体。
【請求項７７】
前記方法は更に、前記ページ・サイズ・パラメータの５１２バイト値に関連付けられた予め定めた設定をロードすることを備える請求項７６に記載のコンピュータ読取可能媒体。
【請求項７８】
前記方法は更に、前記ページ・サイズ・パラメータが、５１２バイト値を持っていないのであれば、前記ページ・サイズ・パラメータの検出された値に関連付けられた予め定めた設定をロードすることを備える請求項７６に記載のコンピュータ読取可能媒体。
【請求項７９】
前記アプリケーション・データをダウンロードする要求を送ることは更に、アプリケーション・データをダウンロードする命令をプロセッサ・モジュールから受け取ることを備える請求項６０に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、処理システムに関し、更に詳しくは、処理システムにおけるデバイスの設定を検出する方法および装置に関する。
【背景技術】
【０００２】
例えば、モバイル通信デバイスのような計算デバイスにおけるブート・アップ手順および起動手順の一部として、プロセッサは、例えば不揮発性デバイスまたはフラッシュ・メモリ・デバイスのような１または複数のメモリ・デバイスにアクセスし、そのメモリ・デバイス内に格納されたアプリケーション・コードまたはデータをダウンロードする。幾つかのタイプのメモリ・デバイスは、一般に、そのような計算デバイスにおける実装のために利用することが可能であるので、プロセッサは、各メモリ・デバイスの設定を正確かつ効率的に確認する必要がある。検出された設定に基づいて、プロセッサは更に、所要のアプリケーション・コードをダウンロードするコマンドを生成することができる。
【０００３】
プロセッサに接続されたメモリ・デバイスの設定を確認するために、いくつかの実施が提案された。１つの実施では、メモリ・デバイス情報が、組立中にプロセッサ内に格納される。しかしながら、このアプローチは、サポートされるメモリ・デバイスの数を制限するように思われ、プロセッサの寿命中におけるメモリ・デバイスへのアップグレードの導入をより困難にする。
【０００４】
別の実施では、メモリ・デバイス情報が、多くの外部ピンを通ってプロセッサへ提供される。しかしながら、このアプローチは、専用の追加のピンを必要とするので、システムのコストを増加する。また、サポートされるメモリ・デバイスの数を制限するように思われる。
【０００５】
また別の周知の実施では、プロセッサは、例えばバイナリ・サーチのような周知のトライ・アンド・エラーによってメモリ・デバイスの設定を検出するように指示されうる。しかしながら、このアプローチは、ブート・アップ手順および起動手順に割り当てられた時間を増加させるように見え、これにより、システムの性能に悪影響を及ぼす。
【０００６】
したがって、必要なものは、計算デバイス内のプロセッサに接続された多数のメモリ・デバイスの設定の正確かつ効率的な検出のための方法および装置である。
【発明の開示】
【発明の概要】
【０００７】
処理システムにおけるデバイスの設定を検出するための方法および装置が記述される。１つの実施形態では、メモリ・デバイスに関連付けられたページ・サイズ・パラメータが識別される。更に、メモリ・デバイスに関連付けられた１または複数の設定パラメータも識別される。このページ・サイズ・パラメータと設定パラメータとは、メモリ・デバイスへのアクセスを可能にする。最後に、ページ・サイズ・パラメータおよび１または複数の設定パラメータに基づいて、メモリ・デバイスからアプリケーション・データをダウンロードする要求が、メモリ・デバイスに送られる。
【詳細な説明】
【０００８】
図１は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する装置を例示する。図１に例示するように、例えば通信デバイスのような装置１０は、１または複数のメモリ・デバイス３０に接続された例えばマイクロプロセッサのような処理デバイス２０を含む。
【０００９】
１つの実施形態では、処理デバイス２０は更に、プロセッサ・モジュール２４に接続されたコントローラ・モジュール２２を含んでいる。コントローラ・モジュール２２およびプロセッサ・モジュール２４は、以下に更に詳細に説明するように、装置１０内のメモリ・デバイス３０の設定を検出するための動作を実行するように構成されたハードウェア・モジュールおよび／またはソフトウェア・モジュールである。別の実施形態では、コントローラ・モジュール２２およびプロセッサ・モジュール２４は、装置１０内のメモリ・デバイス３０の設定を検出する動作を行なうシングル・プロセッサを形成しうる。
【００１０】
１つの実施形態では、メモリ・デバイス３０は、例えば、シリアル・フラッシュ・メモリ・デバイス（例えば、ＮＡＮＤ／ＯＲＡＮＤ／ＳｕｐｅｒＡＮＤメモリ・デバイス）のような不揮発性メモリ・デバイスである。これらは、処理デバイス２０からコマンドを受け取るとダウンロードされるアプリケーション・データを格納する。あるいは、その他の不揮発性メモリ・デバイスが、装置１０内の処理デバイス２０に接続されうる。
【００１１】
システムの電源がオフされた場合、不揮発性メモリ・コンポーネントおよびモジュールはデータを失わない。不揮発性半導体集積回路としてのフラッシュ・メモリ・デバイスのアーキテクチャは、メモリ・モジュールがめったに書き込まれないが、頻繁に読み取りがなされるという概念に基づく。アプリケーション・データは、対応するアドレスによって定義された特定の位置において、フラッシュ・メモリ・デバイス内３０に存在する。
【００１２】
各メモリ・デバイス３０内の実際のメモリ・モジュールおよび仮想的なメモリ・モジュールは、ページと呼ばれる等しいサイズのブロックへ分割される。１つのメモリ・ページは、１つのロー・アドレスからアクセス可能なビット数を表わす。メモリ・ページはそれぞれページ・サイズを持っている。それは、カラム・アドレスの数に依存する。例えば、１０のカラム・アドレス・ピンを備えたメモリ・デバイスは、１０２４の位置を持っている。
【００１３】
ページ・サイズ・パラメータに加えて、メモリ・デバイス３０はそれぞれ、インタフェース・バス幅パラメータによって特徴付けられる。そのパラメータは、同時に入力またはアクセスされうるデータ・ビットの数を示す。ページ・サイズ・パラメータおよびバス幅パラメータに基づいて、プロセッサは、以下に更に詳細に説明するように、ブート・アップ手順および起動手順中に、各メモリ・デバイス３０のタイプを高い信頼性で識別する。
【００１４】
１つの実施形態では、図１に示すように、コントローラ・モジュール２２は、例えば各メモリ・デバイス３０に関連付けられたページ・サイズ・パラメータおよび／またはインタフェース・バス幅パラメータのようなメモリ・デバイス３０の設定パラメータを格納するためのデータベースのような記憶モジュール２６の保持およびアクセスを行う。あるいは、コントローラ・モジュール２２は、装置１０内の遠隔位置にあるメモリ・デバイス３０に関連付けられたインタフェース・バス幅パラメータおよび／またはページ・サイズ・パラメータを格納する。
【００１５】
図２は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定の検出のための手順を例示する相互作用ブロック図である。図２に例示するように、この手順は、処理デバイス２０内のコントローラ・モジュール２２がメモリ・デバイス３０へリセット・コマンドを送るブロック１０５で始まる。１つの実施形態では、メモリ・デバイス３０は、装置１０の電源投入シーケンスおよびその後の動作中、メモリにアクセスする前に、リセット・コマンドの受取および実行を要求する。あるいは、例えば、メモリ・デバイス３０がＳｕｐｅｒＡＮＤシリアル・フラッシュ・メモリ・デバイスである場合、装置１０がスタンバイ・モードにある時、メモリ・デバイス３０は、リセット・コマンドをサポートしておらず、このコマンドを無視しうる。
【００１６】
ブロック１１０では、メモリ・デバイス３０は、このリセット・コマンドの実行および完了を示す。１つの実施形態では、メモリ・デバイス３０は、コマンド実行のステータスを示すビット信号を送る。コントローラ・モジュール２２は、図４と関連して以下に更に詳しく説明するように、コマンド実行のステータスをモニタし、リセット・コマンド実行の完了を検知する。
【００１７】
次に、ブロック１１５では、コントローラ・モジュール２２はメモリ・デバイス３０に、自動検出コマンド・シーケンスを送り、メモリ・デバイス３０のページ・サイズの読み取りおよび検出に必要な予め定めたデータの量を示す。１つの実施形態では、このリセット・コマンドおよび自動検出コマンドは、メモリ・デバイス３０に連続的に送られる。この自動検出コマンド・シーケンスは、メモリ・デバイス３０と関係するページ・サイズおよびその他のパラメータを検出するために使用されるフローである。図５と関連して以下に更に詳しく示すように、この自動検出シーケンスは、より高い値のページ・サイズを有するその他のフラッシュ・メモリ・デバイスに対する、２５６／５１２バイト・ページ・フラッシュ・メモリ・デバイスの挙動における違いを用いる。
【００１８】
ブロック１２０では、メモリ・デバイス３０が、自動検出コマンド・シーケンスを受け取り、コマンドの実行および完了を示す。１つの実施形態では、メモリ・デバイス３０は、自動検出シーケンス内の各コマンドの実行のステータスを示すビット信号を送る。コントローラ・モジュール２２は、図５と関連して以下に更に詳しく示すように、コマンド実行のステータスをモニタし、自動検出シーケンスの完了を検出する。図５と関連して以下に更に詳しく示すように、コントローラ・モジュール２２は、メモリ・デバイス３０から送られ、自動検出シーケンスに対する応答を示すビット信号に基づいて、メモリ・デバイス３０が、２５６／５１２バイト・ページ・デバイスであるか、または、例えば２Ｋバイト・ページ・デバイスのようなより大きなサイズ・ページ・デバイスであるかを識別する。コマンドの実行が一旦完了すると、メモリ・デバイス３０は、例えば、メモリ・デバイス３０上に存在する内部バッファ内のコントローラ・モジュール２２に対してデータのページを利用可能にする。
【００１９】
ブロック１２５では、図６と関連して以下に更に詳しく示すように、コントローラ・モジュール２２が、利用可能なページ・データにアクセスし、メモリ・デバイス３０のページ・サイズ・パラメータを再び識別する。
【００２０】
ブロック１３０では、コントローラ・モジュール２２が、メモリ・デバイス３０に関連付けられたページ・サイズ・パラメータを、記憶モジュール２６内に格納する。
【００２１】
ブロック１３５では、コントローラ・モジュール２２が、利用可能なページ・データから、予め定めた量のデータを読み取る。ブロック１４０では、コントローラ・モジュール２２が、読み取ったデータに基づいて、メモリ・デバイス３０に関連付けられた１または複数の設定パラメータを検出する。１つの実施形態では、例えば、メモリ・デバイス３０のインタフェース・バス幅パラメータのような設定パラメータを識別するために、コントローラ・モジュール２２が、ページ・データから予め定めた複数のデータ・シーケンスを検索して復号する。代替実施形態では、コントローラ・モジュール２２に対して利用可能とされたページ・データが、セキュリティ上の理由のために暗号化され、更に、コントローラ・モジュール２２またはプロセッサ・モジュール２４が、例えばインタフェース・バス幅パラメータやその他の必要な設定パラメータのような設定パラメータの識別情報の復号を行う前に、データを解読する。
【００２２】
１つの実施形態では、格納されたページ・サイズ・パラメータおよび識別された設定パラメータによって、処理デバイス２０は、メモリ・デバイス３０の設定を確認することができる。代替実施形態では、ページ・データが、例えばメモリ・デバイス３０に接続されたその他の構成要素のようなメモリ・デバイス３０に関連する他の情報を組み込むことができる。
【００２３】
ブロック１４５では、コントローラ・モジュール２２が、記憶モジュール２６内に格納されたページ・サイズ・パラメータを含むページ・データおよび設定パラメータをプロセッサ・モジュール２４に送るか、あるいは、プロセッサ・モジュール２４に対して利用可能にする。ブロック１５０では、プロセッサ・モジュール２４が、コントローラ・モジュール２２に対して、メモリ・デバイス３０からアプリケーション・コードをダウンロードするように命令する。最後に、ブロック１５５では、ページ・サイズ・パラメータおよびインタフェース・バス幅パラメータに基づいて、処理デバイス２０内のコントローラ・モジュール２２が、メモリ・デバイス３０からアプリケーション・コードをダウンロードする要求を送る。
【００２４】
図３は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法を図示するフロー図である。図３の実施形態において例示するように、処理ブロック２１０では、リセット・コマンドが発行され、メモリ・デバイス３０に送られる。処理ブロック２２０では、自動検出コマンド・シーケンスが発行され、メモリ・デバイス３０に送られる。
【００２５】
処理ブロック２３０では、予め定めた量のデータを含んでいるページ・データが、メモリ・デバイス３０においてアクセスされる。処理ブロック２４０では、メモリ・デバイス３０に関連付けられたページ・サイズ・パラメータが、利用可能なページ・データから識別される。
【００２６】
処理ブロック２５０では、メモリ・デバイス３０に関連付けられたページ・サイズ・パラメータが、記憶モジュール２６に格納される。処理ブロック２６０では、例えばメモリ・デバイス３０のインタフェース・バス幅パラメータのように、メモリ・デバイス３０に関連付けられた１または複数の設定パラメータを識別するために、予め定めた多くのデータ・シーケンスが、ページ・データから検索され復号される。
【００２７】
処理ブロック２７０では、メモリ・デバイス３０に関連付けられた設定パラメータが検出される。最後に、処理ブロック２８０では、識別されたページ・サイズ・パラメータと設定パラメータとに基づいて、アプリケーション・コードをダウンロードする要求が、メモリ・デバイス３０へ送られる。
【００２８】
図４は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法におけるリセット・コマンドの実行を図示するフロー図である。図４に例示するように、処理ブロック３１０では、リセット・コマンドの選択が受け取られる。１つの実施形態では、コントローラ・モジュール２２は、メモリ・デバイス３０への更なる送信のために、プロセッサ・モジュール２４からリセット・コマンドの選択を受け取る。
【００２９】
処理ブロック３２０では、リセット・コマンドを送る命令が受け取られる。１つの実施形態では、プロセッサ・モジュール２４は、コントローラ・モジュール２２に対して、リセット・コマンドを発行し、そのリセット・コマンドをメモリ・デバイス３０へ送るように促す。
【００３０】
処理ブロック３３０では、リセット・コマンドが、メモリ・デバイス３０へ送られ、リセット・コマンドの実行のステータスがモニタされる。１つの実施形態では、コントローラ・モジュール２２が、メモリ・デバイス３０へリセット・コマンドを送り、更に、メモリ・デバイス３０によって送られた、リセット・コマンド実行の完了を示すビット信号のアサートまたはデ・アサートをモニタすることによって、メモリ・デバイス３０における実行のステータスをチェックする。
【００３１】
処理ブロック３４０では、リセット・コマンドの実行が完了したかの判定がなされる。リセット・コマンドの実行が完了していない場合、処理ブロック３３０および３４０が繰り返される。
【００３２】
一方、リセット・コマンドの実行が完了している場合、次に、処理ブロック３５０において、実行エラーが存在するかが判定される。もしも実行エラーが存在する場合、処理ブロック３６０において、コントローラ・モジュール２２が、エラー・コマンドを発行し、実行エラーがあったことをプロセッサ・モジュール２４に伝える。一方、リセット・コマンドの実行にエラーがない場合には、手順は、図３に関連して詳細に説明するブロック２２０にジャンプする。
【００３３】
図５は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法における自動検出コマンド・シーケンスの実行を図示するフロー図である。図５に例示するように、図３に関連して詳細に説明したブロック２１０を処理することに続いて、処理ブロック４０５では、自動検出コマンドの選択が受け取られる。１つの実施形態では、コントローラ・モジュール２２は、メモリ・デバイス３０へ更に送るために、プロセッサ・モジュール２４から、コマンドの選択を受け取る。
【００３４】
処理ブロック４１０では、自動検出コマンド・シーケンスを送る命令が受け取られる。１つの実施形態では、プロセッサ・モジュール２４は、コントローラ・モジュール２２に対して、自動検出コマンド・シーケンスを発行し、関連するコマンドをメモリ・デバイス３０へ送るように促す。
【００３５】
処理ブロック４１５では、ページ読取コマンドがメモリ・デバイス３０へ送られ、その後、ページ読取コマンドの実行のステータスがモニタされる。１つの実施形態では、コントローラ・モジュール２２は、メモリ・デバイス３０にページ読取コマンドを送る。
【００３６】
処理ブロック４２０では、ページ・アドレス座標がメモリ・デバイス３０に送られる。１つの実施形態では、コントローラ・モジュール２２が、メモリ・ページの開始のための例えば開始カラム・アドレスおよび開始ロー・アドレスのようなページ・アドレス座標を送る。
【００３７】
処理ブロック４２５では、予め定めた期間、ページ読取コマンドの実行ステータスがモニタされる。１つの実施形態では、コントローラ・モジュール２２が更に、メモリ・デバイス３０によって送られた、ページ読取コマンド実行の開始を示すビット信号のアサートまたはデ・アサートをモニタすることによって、メモリ・デバイス３０におけるページ読取コマンドの実行のステータスをチェックする。１つの実施形態では、予め定めた期間は３００ナノ秒である。あるいは、コントローラ・モジュール２２は、その他の異なる期間、待機し、実行ステータスをモニタするようにプログラムされうる。
【００３８】
処理ブロック４３０では、ページ読取コマンドの実行が開始されたかの判定がなされる。ページ読取コマンドの実行が既に開始したとコントローラ・モジュール２２が検出すると、処理ブロック４６０において、コントローラ・モジュール２２は、メモリ・デバイス３０が、２５６バイト／５１２バイト・ページ・サイズを有するものとして識別する。
【００３９】
１つの実施形態では、コントローラ・モジュール２２が、ページ読取コマンドの実行がまだ開始されていないことを検出すると、処理ブロック４３５において、コントローラ・モジュール２２が、読取開始コマンドをメモリ・デバイス３０へ送る。
【００４０】
処理ブロック４４０では、読取開始コマンドの実行ステータスが、予め定めた期間モニタされる。１つの実施形態では、コントローラ・モジュール２２は更に、メモリ・デバイス３０によって送られた、読取開始コマンドの実行を示すビット信号のアサートまたはデ・アサートをモニタすることによって、メモリ・デバイス３０における読取開始コマンドの実行のステータスをチェックする。１つの実施形態では、予め定めた期間は３００ナノ秒である。あるいは、コントローラ・モジュール２２は、その他の異なる期間、読取開始コマンドの実行をモニタするようにプログラムされうる。
【００４１】
処理ブロック４４５では、ページ読取コマンドの実行が開始されたかの判定がなされる。ページ読取コマンドの実行がまだ開始されていないのであれば、処理ブロック４５０において、コントローラ・モジュール２２が、エラー・コマンドを発行し、プロセッサ・モジュール２４に対して実行エラーを通知する。一方、１つの実施形態では、ページ読取コマンドの実行が開始されていれば、処理ブロック４５５において、コントローラ・モジュール２２が、例えば２Ｋバイト・ページ・サイズのようなより高い値のバイト・ページ・サイズを有するものとしてメモリ・デバイス３０を識別する。
【００４２】
メモリ・デバイス３０のページ・サイズ・パラメータが確認された後、手順は処理ブロック４６５において継続する。このブロックでは、１つの実施形態では、自動検出コマンド・シーケンス実行が完了したかの判定がなされる。別の実施形態では、例えばＳｕｐｅｒＡＮＤフラッシュ・メモリ・デバイスのようなあるシリアル・フラッシュ・メモリ・デバイスの場合、ページ読取を停止し、自動検出コマンド・シーケンスを完了するために、読取停止コマンドが発行されねばならない。
【００４３】
１つの実施形態では、自動検出コマンド・シーケンスの実行が完了した場合、手順は、図３に関連して詳細に説明されるブロック２３０にジャンプする。
【００４４】
図６は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法におけるページ・サイズ・パラメータの識別を図示するフロー図である。図６に例示するように、図３に関連して詳細に説明された処理ブロック２３０の後、処理ブロック５１０では、ページ・サイズ情報が、利用可能なページ・データから検索される。１つの実施形態では、コントローラ・モジュール２２が、メモリ・デバイス３０において利用可能とされたページ・データにアクセスし、メモリ・デバイス３０のページ・サイズに関する追加チェックを行い、それぞれのメモリ・デバイス３０に関連付けられたページ・サイズ・パラメータを検出する。
【００４５】
１つの実施形態では、処理ブロック５２０において、ページ・サイズが、例えば５１２バイトのような予め定めた値に等しいかが判定される。メモリ・デバイスのページ・サイズが、この場合５１２バイトである予め定めた値に等しいとコントローラ・モジュール２２が認識した場合、処理ブロック５３０において、コントローラ・モジュール２２は、５１２バイト・ページ・メモリ・デバイス３０のために設定される。一方、メモリ・デバイス３０に関連付けられたページ・サイズが、例えば２Ｋバイトのように異なる値を有するのであれば、処理ブロック５４０において、コントローラ・モジュール２２は、メモリ・デバイス３０によって利用可能とされたページの適切なバイト値のために設定される。最後に、手順は、図３に関連して詳細に説明されるブロック２５０へジャンプする。
【００４６】
図７は、例えば、機械に対して、上述した方法のうちの何れか１つを実行させる命令のセットが実行されうるコンピュータ・システム６００の典型的形態をした機械のブロック図表示である。他の実施形態では、機械は、ネットワーク・ルータ、ネットワーク・スイッチ、パーソナル・デジタル・アシスタント（ＰＤＡ）、セルラ電話、ウェブ機器、その機械によって講じられる動作を特定する命令のシーケンスを実行することが可能な任意の機械または計算デバイスを備えうる。
【００４７】
コンピュータ・システム６００は、プロセッサ６０２、メイン・メモリ６０４、およびスタティック・メモリ６０６を含んでいる。これらはバス６０８経由で互いに通信する。コンピュータ・システム６００は更に、例えば液晶ディスプレイ（ＬＣＤ）または陰極線管（ＣＲＴ）のようなビデオ・ディスプレイ・ユニット６１０を含みうる。コンピュータ・システム６００は更に、例えばキーボードのような英数字入力デバイス６１２、例えばマウスのようなカーソル制御デバイス６１４、ディスク・ドライブ・ユニット６１６、例えばスピーカのような信号生成デバイス６２０、およびネットワーク・インタフェース・デバイス６２２を含む。
【００４８】
ディスク・ドライブ・ユニット６１６は、その上に、上述した方法の何れか１つまたは全てを組み込んだ命令６２６のセット、すなわちソフトウェアが格納された機械読取可能媒体６２４を含む。ソフトウェア６２６はまた、メイン・メモリ６０４内、および／またはプロセッサ６０２内に、全体または少なくとも一部が存在するように示される。ソフトウェア６２６は更に、ネットワーク・インタフェース・デバイス６２２を経由して送信また受信されうる。
【００４９】
当業者であれば、これら情報および信号が、種々異なった技術や技法を用いて表されることを理解するであろう。例えば、上述した記載の全体で引用されているデータ、指示、命令、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光学場または光学微粒子、あるいはこれら何れかの組み合わせによって表現されうる。
【００５０】
当業者であれば、更に、ここで開示された実施形態に関連して記載された様々な説明的論理ブロック、モジュール、回路、およびアルゴリズム・ステップが、電子工学ハードウェア、コンピュータ・ソフトウェア、あるいはこれらの組み合わせとして実現されることを理解するであろう。ハードウェアとソフトウェアとの相互互換性を明確に説明するために、様々に例示された部品、ブロック、モジュール、回路、およびステップが、それらの機能に関して一般的に記述された。それら機能がハードウェアとして又はソフトウェアとして実現されているかは、特定のアプリケーション及びシステム全体に課せられている設計制約に依存する。当業者であれば、各特定のアプリケーションに応じて変更した方法で上述した機能を実施しうる。しかしながら、この適用判断は、本発明の範囲から逸脱したものと解釈されるべきではない。
【００５１】
ここで開示された実施形態に関連して記述された様々の説明的論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、アプリケーションに固有の集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいはその他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェア部品、又は上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現又は実行されうる。汎用プロセッサとしてマイクロプロセッサを用いることが可能であるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機器を用いることも可能である。プロセッサは、たとえばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに接続された１つ以上のマイクロプロセッサ、またはこのような任意の構成である計算デバイスの組み合わせとして実現することも可能である。
【００５２】
ここで開示された実施形態に関連して記述された方法やアルゴリズムのステップは、ハードウェアによって直接的に、プロセッサによって実行されるソフトウェア・モジュールによって、これらの組み合わせによって具現化される。これらの実施形態は、プロセッサまたは処理コア（例えば、コンピュータのＣＰＵ）の形態で実行されるか、あるいは、機械やコンピュータ読取可能媒体内で実施または実現されるソフトウェア・プログラムとして使用されるか、または、このようなソフトウェア・プログラムをサポートするために使用されうることが理解されるべきである。機械読取可能媒体は、機械（例えば計算機）によって読取可能な形態で情報を格納または送信する任意のメカニズムを含む。例えば、機械読取可能媒体は、ＲＡＭメモリ、フラッシュ・メモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハード・ディスク、リムーバブル・ディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体を含む。典型的な記憶媒体は、プロセッサがそこから情報を読み取り、またそこに情報を書き込むことができるようにプロセッサに結合される。または、記憶媒体はプロセッサに統合されうる。このプロセッサと記憶媒体は、ＡＳＩＣ内に存在することができる。ＡＳＩＣは、ユーザ端末内に存在することもできる。あるいはこのプロセッサと記憶媒体は、ユーザ端末内のディスクリート部品として存在しうる。
【００５３】
開示された実施形態における上述の記載は、当該技術分野におけるいかなる人であっても、本発明の活用または利用を可能とするように提供される。これらの実施形態への様々な変形例もまた、当業者に対しては明らかであって、ここで定義された一般的な原理は、本発明の主旨または範囲を逸脱せずに他の実施形態にも適用されうる。このように、本発明は、ここで示された実施形態に制限されるものではなく、ここで記載された原理と新規の特徴に一致した最も広い範囲に相当するものを意図している。
【図面の簡単な説明】
【００５４】
【図１】図１は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する装置を例示する。
【図２】図２は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定の検出のための手順を例示する相互作用ブロック図である。
【図３】図３は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法を図示するフロー図である。
【図４】図４は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法におけるリセット・コマンドの実行を図示するフロー図である。
【図５】図５は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法における自動検出コマンド・シーケンスの実行を図示するフロー図である。
【図６】図６は、本発明の１つの実施形態に従って、処理システムにおけるデバイスの設定を検出する方法におけるページ・サイズ・パラメータの識別を図示するフロー図である。
【図７】図７は、命令のセットが実行されうるコンピュータ・システムの典型的形態をした機械のブロック図表示である。
【図１】
2009509269.tif 000003
【図２】
2009509269.tif 000004
【図３】
2009509269.tif 000005
【図４】
2009509269.tif 000006
【図５】
2009509269.tif 000007
【図６】
2009509269.tif 000008
【図７】
2009509269.tif 000009
【国際調査報告】
2009509269.tif 000010
2009509269.tif 000011
2009509269.tif 000012