特開2016-143422(P2016-143422A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アトメル コーポレイションの特許一覧

<>
  • 特開2016143422-シリアルデバイスの構成 図000006
  • 特開2016143422-シリアルデバイスの構成 図000007
  • 特開2016143422-シリアルデバイスの構成 図000008
  • 特開2016143422-シリアルデバイスの構成 図000009
  • 特開2016143422-シリアルデバイスの構成 図000010
  • 特開2016143422-シリアルデバイスの構成 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2016-143422(P2016-143422A)
(43)【公開日】2016年8月8日
(54)【発明の名称】シリアルデバイスの構成
(51)【国際特許分類】
   G06F 13/38 20060101AFI20160711BHJP
   G06F 13/40 20060101ALI20160711BHJP
【FI】
   G06F13/38 320A
   G06F13/38 350
   G06F13/40 310
【審査請求】未請求
【請求項の数】23
【出願形態】OL
【全頁数】14
(21)【出願番号】特願2016-15928(P2016-15928)
(22)【出願日】2016年1月29日
(31)【優先権主張番号】14/612,042
(32)【優先日】2015年2月2日
(33)【優先権主張国】US
(71)【出願人】
【識別番号】516030476
【氏名又は名称】アトメル コーポレイション
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100088694
【弁理士】
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100196612
【弁理士】
【氏名又は名称】鎌田 慎也
(72)【発明者】
【氏名】ダニエル ハーフェール
(72)【発明者】
【氏名】リチャード ヴィー デ カロ
【テーマコード(参考)】
5B077
【Fターム(参考)】
5B077AA02
5B077NN02
(57)【要約】      (修正有)
【課題】シリアルデバイスを構成するためのシステム、方法、回路、デバイス及びコンピュータ可読媒体を提供する。
【解決手段】デバイスが、シリアルバスからの第1及び第2の要求を受け取るための入力部と、入力部に結合され、第1及び第2の要求のいずれかが構成モード要求であるかどうかを判定するように構成されたデコーダと、デコーダに結合されたコントローラとを備える。コントローラは、第1の要求が構成モード要求であるとの判定に応答して、シリアルバスから取得した構成データを構成ブロックにプログラムし、構成データに従ってデバイスの挙動を変化させ、第2の要求が構成モード要求ではないとの判定に応答して、第2の要求に従ってデバイスに対する1又は複数の動作を実行する。
【選択図】図3
【特許請求の範囲】
【請求項1】
シリアルバスからの第1及び第2の要求を受け取るための入力部と、
前記入力部に結合され、前記第1及び第2の要求のいずれかが構成モード要求であるかどうかを判定するように構成されたデコーダと、
前記デコーダに結合されたコントローラと、
を備えたデバイスであって、
前記コントローラは、
前記第1の要求が構成モード要求であるとの判定に応答して、前記シリアルバスから取得した構成データを構成ブロックにプログラムし、前記構成データに従ってデバイスの動作を変更し、及び、
前記第2の要求が構成モード要求ではないとの判定に応答して、前記第2の要求に従って前記デバイスに対する1又は複数の動作を実行するように構成される、デバイス。
【請求項2】
前記構成ブロックを含むメモリアレイをさらに備え、前記要求が構成要求でない場合、前記コントローラは、前記要求に従って前記メモリアレイに対する1つ又は複数のメモリ動作を実行する、請求項1に記載のデバイス。
【請求項3】
前記構成ブロックは、前記デバイスを構成するための第1の構成データを記憶するベース構成レジスタと、前記メモリアレイの1又は複数のメモリゾーンに対応する1又は複数の追加レジスタとをさらに含み、前記1又は複数の追加レジスタは、対応する前記1又は複数のメモリゾーンの書き込み保護スキームを規定する第2の構成データを記憶する、請求項2に記載のデバイス。
【請求項4】
供給電圧と、前記コントローラとに結合されたセンサをさらに備え、前記センサは、前記構成ブロック内の構成データに基づいて、前記デバイスの低電圧状態を感知するように構成される、請求項2に記載のデバイス。
【請求項5】
前記コントローラに結合された書き込み保護制御モジュールをさらに備え、前記書き込み保護制御部は、前記構成ブロック内の前記構成データに従って、前記メモリアレイに対する書き込み保護をアサートするように構成される、請求項2に記載のデバイス。
【請求項6】
前記構成ブロックは、前記シリアルバスを介して別のデバイスにデバイス状態をレポートするように構成される、請求項1に記載のデバイス。
【請求項7】
前記デバイス状態は、前記メモリアレイに対するメモリアクセス動作、誤り訂正動作、及び単調なカウンタを用いた全期間誤り訂正イベントのカウントのうちの少なくとも1つの状態を示す、請求項6に記載のデバイス。
【請求項8】
前記シリアルバスは、インター・インテグレイテッド・サーキット(I2C)バスプロトコルに準拠する、請求項1に記載のデバイス。
【請求項9】
デバイスの構成方法であって、
前記デバイスにより、シリアルバスからの第1及び第2の要求を受け取るステップと、
デコーダ回路により、前記第1及び第2の要求のいずれかが構成モード要求であるかどうかを判定するステップと、
前記第1の要求が構成モード要求であるとの判定に応答して、前記デバイスのコントローラにより、前記シリアルバスから取得した構成データを構成ブロックにプログラムし、前記デバイスのコントローラにより、前記構成データに従って前記デバイスの動作を変更するステップと、
前記第2の要求が構成モード要求でないとの判定に応答して、前記デバイスのコントローラにより、前記第2の要求に従って1又は複数の動作を実行するステップと、
を含む方法。
【請求項10】
前記デバイスのコントローラにより、前記要求に従って前記デバイスのメモリアレイに対する1又は複数のメモリ動作を実行するステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記メモリアレイの前記構成ブロックのベースレジスタに、前記デバイスを構成するための第1の構成データを記憶し、前記メモリアレイの1又は複数のメモリゾーンに対応する前記デバイスの1又は複数の追加レジスタに、前記1又は複数のメモリゾーンの書き込み保護スキームを規定する第2の構成データを記憶するステップをさらに含む、請求項10に記載の方法。
【請求項12】
前記デバイスのセンサにより、前記デバイスの低電圧状態を判定するステップと、
前記デバイスのコントローラにより、前記構成ブロックにおける構成データを用いて前記デバイスに対する低電圧ロックアウトを実行するステップと、をさらに含む請求項10に記載の方法。
【請求項13】
前記構成ブロックは、前記シリアルバスを介して別のデバイスにデバイス状態をレポートするように構成される、請求項9に記載の方法。
【請求項14】
前記デバイス状態は、メモリアクセス動作、誤り訂正動作、及び全期間誤り訂正イベントのカウントのうちの少なくとも1つの状態を示す、請求項13に記載の方法。
【請求項15】
前記デバイスの書き込み保護制御モジュールにより、前記構成ブロック内の構成データに従って、前記メモリアレイに対する書き込み保護をアサートするステップをさらに含む、請求項10に記載の方法。
【請求項16】
前記シリアルバスは、インター・インテグレイテッド・サーキット(I2C)バスプロトコルに準拠する、請求項9に記載の方法。
【請求項17】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、デバイスの1又は複数のプロセッサによって実行された時に、前記デバイスの1又は複数のプロセッサに、
前記デバイスにより、シリアルバスからの第1及び第2の要求を受け取ることと、
デコーダ回路により、前記第1及び第2の要求のいずれかが構成モード要求であるかどうかを判定することと、
前記第1の要求が構成モード要求であるとの判定に応答して、前記デバイスのコントローラにより、前記シリアルバスから取得した構成データを構成ブロックにプログラムし、前記デバイスのコントローラにより、前記構成データに従って前記デバイスの動作を変更することと、
前記第2の要求が構成モード要求でないとの判定に応答して、前記デバイスのコントローラにより、前記第2の要求に従って1又は複数の動作を実行することと、
を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項18】
前記動作は、前記デバイスのコントローラにより、前記要求に従って前記デバイスのメモリアレイに対する1又は複数のメモリ動作を実行することをさらに含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記動作は、前記メモリアレイの前記構成ブロックのベースレジスタに、前記デバイスを構成するための第1の構成データを記憶し、前記メモリアレイの1又は複数のメモリゾーンに対応する前記デバイスの1又は複数の追加レジスタに、前記1又は複数のメモリゾーンの書き込み保護スキームを規定する第2の構成データを記憶することをさらに含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記デバイスのセンサにより、前記デバイスの低電圧状態を判定することと、
前記デバイスの1又は複数のプロセッサにより、前記構成ブロックにおける構成データを用いて前記デバイスに対する低電圧ロックアウトを実行することと、をさらに含む請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項21】
前記構成ブロックは、前記シリアルバスを介して別のデバイスにデバイス状態をレポートするように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項22】
前記デバイス状態は、メモリアクセス動作又は誤り訂正動作の状態を示す、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項23】
前記デバイスの書き込み保護制御モジュールにより、前記構成ブロック内の構成データに従って、前記メモリアレイに対する書き込み保護をアサートすることをさらに含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にシリアルデバイスを構成することに関する。
【背景技術】
【0002】
インター・インテグレイテッド・サーキット(I2C)バスは、しばしば低速周辺機器(例えば、シリアルメモリデバイス)をコンピュータマザーボード及び埋め込みシステムに取り付けるために使用される、マルチマスター、マルチスレーブ、シングルエンドシリアルコンピュータバスである。I2Cプロトコルは、周辺装置の内部動作(internal behavior)を変える機構を提供せず、このため異なるアプリケーションに合わせて異なるバージョンのシリアルデバイスが製造される。
【発明の概要】
【課題を解決するための手段】
【0003】
シリアルデバイスを構成するためのシステム、方法、回路、デバイス及びコンピュータ可読媒体を開示する。
【0004】
いくつかの実装では、デバイスが、シリアルバスからの第1及び第2の要求を受け取るための入力部と、入力部に結合され、第1及び第2の要求のいずれかが構成モード(コンフィギュレーションモード)要求であるかどうかを判定するように構成されたデコーダと、デコーダに結合されたコントローラとを備え、コントローラは、第1の要求が構成モード要求であるとの判定に応答して、シリアルバスから取得した構成データを構成ブロックにプログラムし、構成データに従ってデバイスの動作(behavior)を変更し、第2の要求が構成モード要求ではないとの判定に応答して、第2の要求に従ってデバイスに対する1又は複数の動作を実行するように構成される。
【0005】
いくつかの実装では、方法が、デバイスにより、シリアルバスからの第1及び第2の要求を受け取るステップと、デコーダ回路により、第1及び第2の要求のいずれかが構成モード要求であるかどうかを判定するステップと、第1の要求が構成モード要求であるとの判定に応答して、デバイスのコントローラにより、シリアルバスから取得した構成データを構成ブロックにプログラムし、デバイスのコントローラにより、構成データに従ってデバイスの動作を変更するステップと、第2の要求が構成モード要求でないとの判定に応答して、デバイスのコントローラにより、第2の要求に従って1又は複数の動作を実行するステップと、を含む。
【0006】
いくつかの実装では、非一時的コンピュータ可読記憶媒体が命令を記憶し、この命令は、デバイスの1又は複数のプロセッサによって実行された時に、デバイスの1又は複数のプロセッサに、デバイスにより、シリアルバスからの第1及び第2の要求を受け取ることと、デコーダ回路により、第1及び第2の要求のいずれかが構成モード要求であるかどうかを判定することと、第1の要求が構成モード要求であるとの判定に応答して、デバイスのコントローラにより、シリアルバスから取得した構成データを構成ブロックにプログラムし、デバイスのコントローラにより、構成データに従ってデバイスの動作を変更することと、第2の要求が構成モード要求でないとの判定に応答して、デバイスのコントローラにより、第2の要求に従って1又は複数の動作を実行することとを含む動作を実行させる。
【図面の簡単な説明】
【0007】
図1】構成モードを有するシリアルメモリデバイスの概念ブロック図である。
図2A】シリアルメモリデバイスに書き込むための書き込み送信シーケンスの例を示す図である。
図2B】シリアルメモリデバイスに書き込むための書き込み送信シーケンスの例を示す図である。
図2C】シリアルメモリデバイスを読み取るための読み取り送信シーケンスの例を示す図である。
図2D】シリアルメモリデバイスを読み取るための読み取り送信シーケンスの例を示す図である。
図3】シリアルメモリデバイスを構成する処理例のフロー図である。
【発明を実施するための形態】
【0008】
以下の説明は、シリアルデバイスの内部動作を変化させる構成モードを含むシリアルデバイスの例である。この例におけるシリアルデバイスは、マスターデバイスがI2Cプロトコルを用いてシリアルバスを介してアクセスする電気的消去可能プログラム可能リードオンリメモリ(EEPROM)デバイスである。開示する実装は、シリアルデバイスの内部動作を変化させる要望が存在するあらゆるシリアルデバイス又はシリアルプロトコルに適合することができる。
【0009】
シリアルデバイスのアーキテクチャ例
図1は、構成モードを有するシリアルメモリデバイス100の概念的ブロック図である。いくつかの実装では、シリアルメモリデバイス100が、メモリアレイ101、開始/終了検出器102、書き込み保護制御モジュール103、パワーオンリセット(POR)生成器104、メモリシステム制御モジュール(MSCM)105、高電圧生成回路106、入力/出力制御モジュール107、アドレスレジスタ及びカウンタ108、ハードウェアアドレス比較器109、及びセンサ113を含むことができる。
【0010】
メモリアレイ101は、EEPROMのビットで構成される。メモリアレイ101に対しては、カラムデコーダ114及びローデコーダ115を用いてデータの書き込み及び読み取りが行われる。EEPROMは、電力の除去後にデータが保持されることを意味する不揮発性記憶デバイスである。メモリアレイ101は、以下で詳細に説明するように複数のメモリゾーンに分割することができる。
【0011】
開始/終了検出器102は、データライン(SDA)及びクロックライン(SCL)の状態をモニタして開始信号及び終了信号を探す。SDA及びSCLは、シリアルバスを含む。I2Cプロトコルでは、開始及び終了が、SCLがhighである時のSDAラインの変化として定められる。
【0012】
書き込み保護制御部103は、書き込み保護入力(WPピン)の状態をモニタし、この状態をMSCM105に伝える。MSCM105は、WP入力を用いて、メモリアレイ101に対する所与の書き込み動作を許可すべきか、それとも停止すべきかを決定する。
【0013】
POR生成器104は、シリアルメモリデバイス100が誤った状態にパワーアップするのを防ぐ回路である。POR生成器104は、シリアルメモリデバイス100内の様々な回路を安全なデフォルト状態に設定するために使用される。POR生成器104は、供給電圧VCCの状態をモニタする。POR生成器104は、シリアルメモリデバイス100の他の回路が正確に機能するのに安全なVCCレベルにおいて、シリアルメモリデバイス100のリセット及びリセット解除を行うように設計される。
【0014】
MSCM105は、状態機械(図示せず)を用いてシリアルメモリデバイス100の機能を制御する。MSCM105は、シリアルメモリデバイス100内の他の回路から入力を受け取って、様々なイベントに対してシリアルメモリデバイス100がいかに反応すべきか、それとも反応すべきでないかを決定する。
【0015】
高電圧生成回路106は、メモリアレイ101の周囲の復号回路(ローデコーダ、カラムデコーダ)によって利用されるVCCレベル入力を(単複の)さらに高いレベルに増加させる。書き込み及び消去メモリアレイ101は、VCCによって供給される電圧よりも高い電圧を必要とする。
【0016】
入力/出力制御モジュール107は、SDAラインからシリアルメモリデバイス100に流入する電流ビット、及びシリアルメモリデバイス100がSDAライン上でシフトアウトする電流ビットを受け取る。発信データは、データレジスタ110からSDAラインにシフトされる。受信データは、SDAラインからラッチインされ、データレジスタ110に送られる。
【0017】
アドレスレジスタ及びカウンタ108は、現在アクセスされているメモリアドレスを維持して後続のメモリアクセス動作のための次のポインタアドレス(N+1)を示すレジスタを含む。
【0018】
ハードウェアアドレス比較器109は、ハードウェアアドレスピン(A0、A1及びA2)の状態をモニタする。これらの状態はMSCM105に送られ、MSCM105は、これらの値をデバイス100の初期アクセス中にSDAバス上でラッチインされた値と比較して、シリアルバス上のプロトコルがデバイス100のためのものであるかどうかを判定する。
【0019】
マスターデバイス(図示せず)は、I2Cプロトコルに従って、メモリアレイ101に対する書き込み又は読み取りを行うためのメモリアクセスコマンド(読み取り要求又は書き込み要求)をシリアルメモリデバイス100に送信することができる。書き込み要求の場合、マスターデバイスは、START信号の後に、シリアルバス上でメモリデバイス100のアドレスと方向ビットクリア(書き込み)とを送信し、その後に2バイトのメモリアドレスを送信する。その後、マスターデバイスは、メモリアレイ101に書き込むべき2バイトのメモリアドレスから開始するデータバイトをシリアルメモリデバイス100に送信した後にSTOP信号を送信する。複数のバイトを書き込む場合、これらのバイトは、同じnバイトページ(例えば、32バイトページ)内に存在する。シリアルメモリデバイス100は、これらのバイトをメモリアレイ101に保存している間、マスターデバイス又は他のマスターデバイスからのさらなるI2C要求に応答しない。
【0020】
読み取り要求の場合、マスターデバイスは、START信号の後、メモリデバイス100のアドレスと方向ビットクリア(書き込み)とを書き込み、その後に2バイトのメモリデータアドレスを書き込む。次に、マスターデバイスは、START信号の繰り返しと共に、メモリデバイス100のアドレスと方向ビットセット(読み取り)とを送信する。次に、シリアルメモリデバイス100は、特定のメモリアドレスから開始するデータバイトで応答する。マスターデバイスは、最後のバイトを除く各バイトを読み取った後にACKを発行し、その後にSTOP信号を発行する。シリアルメモリデバイス100は、各データバイトが転送された後にアドレスを増分する。マルチバイト読み取りでは、1つの組み合わせメッセージを用いてメモリアレイ101の内容全体を読み出すことができる。
【0021】
構成モード
いくつかの実装では、シリアルメモリデバイス100が、外部の高電圧(例えば、10V+)を必要とせずに書き込み要求によってデバイスの特定の動作を変更させることができる構成モードをシリアルメモリデバイス100上に実装するように構成される。構成モードで変更させることができるデバイスの動作のいくつかの例としては、以下に限定されるわけではないが、メモリアレイの保護、現在の構成のロック(lock current configuration)、ハードウェアアドレスピンの無効化、構成モードの無効化、低電圧ロックアウト(UVLO)制御、及びデバイス状態のレポートが挙げられる。いくつかの実装では、図2A及び図2Bを参照して説明するような選択されたシリアルプロトコル(例えば、I2C)を用いて書き込み要求中にプログラムできる、メモリアレイ101の一部に存在する構成ブロック112によって構成モードが実装される。いくつかの実装では、構成ブロック112が、デバイスが実行すべきアプリケーションに依存する1又は複数の構成レジスタ(configuration register)を含むことができる。いくつかの実装では、1又は複数の構成レジスタが、nビット(例えば、16ビット)の不揮発性読み取り/書き込みレジスタである。
【0022】
メモリアレイ保護機能は、レガシー保護モード又は強化保護モードに合わせて設定することができる。レガシー保護モードでは、メモリアレイ全体を書き込み保護することができる。強化保護モードでは、メモリアレイがメモリゾーンに分割され、各メモリゾーンは、そのメモリゾーンの書き込み保護(WP)ピンアサーションに応答するように設定することも、又はそのメモリゾーンに対して恒久的に読み取り専用に(WPピンアサーションに応答しないように)設定することもできる、対応するレジスタを有する。現在の構成ロック機能は、構成ブロックへの新たな書き込みを無効にするように設定することができる。ハードウェアアドレスピンの無効化機能は、シリアルメモリデバイス100がシリアルバス上の全ての考えられるハードウェアアドレス位置に応答するように設定することができる。構成モードの無効化機能は、シリアルメモリデバイス100を構成モードにするバス上の書き込み要求に対する応答を無効にすることにより、シリアルメモリデバイス100上の構成モードを恒久的に無効にするように設定することができる。
【0023】
UVLO制御機能は、供給電圧によって満たされない場合に設定方法に応じて様々なデバイス機能(例えば、メモリアレイ101に対する読み取り又は書き込み要求のロックアウト)を関与又は解除させる供給電圧検出閾値を構成ブロック112内の1又は複数のレジスタに読み込むことによって実装することができる。いくつかの実装では、電圧源VCCとMSCM105との間にセンサ113(例えば、電圧比較器)が結合される。供給電圧VCCが供給電圧検出閾値(例えば、構成ブロック112に記憶され、MSCM105によってセンサ113に提供されるユーザプログラム可能な値)未満に低下した場合、シリアルメモリデバイス100はUVLO制御モードに入る。いくつかの実装では、センサ113をPOR生成器104に含めることができる。閾値の感度レベル(例えば、プログラム可能なレベル数)は、様々なアプリケーションニーズを満たすように設計によって異なることができる。
【0024】
デバイス状態レポート機能は、構成ブロック112の1又は複数のレジスタを用いて様々なデバイス状態をレポートすることができる。デバイス状態のいくつかの例としては、以下に限定されるわけではないが、シリアルメモリデバイス100がビジー(例えば、読み取り又は書き込みビジー)の時、対応準備ができている時、又は別様に対応できない時にレポートすることが挙げられる。いくつかの実装では、例えば最後に行った読み取り又は書き込み動作がシリアルメモリデバイス100の誤り訂正機構を呼び出したか、それともシリアルメモリデバイス100の全期間にわたる誤り訂正イベントの数を追跡する単調なカウンタの状態を読み取ったかをレポートするなどの、誤り訂正エンジン状態をレポートすることができる。これらの機能を実装するために必要なレジスタ(例えば、構成ブロック112内の8ビットレジスタ)の数は、実装する機能の数に依存する。例えば、UVLO制御機能は、単一の専用8ビットレジスタを用いて実装することができる。また、図2A及び図2Bを参照して以下で説明するように、適切なゾーン保護レジスタの数は、メモリアレイ101のサイズ又はメモリゾーンのサイズによって決まる。
【0025】
構成モードにおける読み取り/書き込み送信シーケンス(transmission sequence)例
図2A及び図2Bに、シリアルメモリデバイス100に構成モードを実装するシリアルバスプロトコルの書き込み送信シーケンス例を示す。図示の例では、シリアルバスプロトコルがI2Cである。この動作例は、アプリケーションに応じて他のシリアルバスプロトコルにも適合することができる。
【0026】
いくつかの実装では、構成ブロック112内のレジスタへのアクセスが、メモリアレイ101へのアクセスに使用されるアドレスバイトとは異なるデバイスアドレスバイトを用いて行われる。あらゆるデバイスアドレスの16進値を使用することができるが、シリアルバス上の他のデバイスアドレスと衝突しない値を選択することが望ましい。ファームウェア内のデバイスアドレスの4つの最上位ビット(MSB)は、柔軟性を最大にするように変更することができる。シリアルメモリデバイス(例えば、EEPROMデバイス)では、衝突の可能性を低減するために、他のシリアルメモリデバイスが他の目的で使用しているという理由でデバイスアドレス6hをデフォルトとすることができる。ファームウェアを変更すると、アプリケーション内でシステム衝突が起きた場合にこれを避ける必要がある時に、例えばメーカーがシリアルメモリデバイスを変更できるようになる。
【0027】
マスターデバイスによってシリアルバス上でデバイスアドレスバイトが送信された後、次のプロトコル例は、フォーマット<デバイスアドレス+レジスタアドレス+レジスタデータ(読み取り/書き込み)>、又はフォーマット<デバイスアドレス+レジスタデータ(読み取り/書き込み)>のいずれかに従うことができる。他方のフォーマットに優先する一方のフォーマットの選択は、アプリケーションによって使用される構成ブロック112内の構成レジスタの数に依存することができる。構成ブロック112内で使用されるレジスタが1つ又は2つしか存在しない実装例では、<デバイスアドレス+レジスタデータ(読み取り/書き込み)>フォーマットを使用することができ、この場合、全てのバストランザクションにおいて構成レジスタの内容全体を用いて読み取り又は書き込みを行うことができる。構成レジスタの数が多い(例えば、2つよりも多い)場合には、<デバイスアドレス+レジスタアドレス+レジスタデータ(読み取り/書き込み)>を用いて、バストランザクションのサイズを最小化して所望のレジスタ内容への素早いアクセスを可能にすることができる。
【0028】
図2A図2Dを参照すると、いくつかの実装では、上述した2つのプロトコルフォーマット例の一方を用いて構成ブロック112内の1又は複数のレジスタに1又は複数の書き込み要求をプログラムするnバイト(例えば、4バイト)の送信シーケンスで構成ブロック112にアクセスすることができる。構成ブロック112内の1又は複数のレジスタの読み取りは、最初に「ダミー」書き込みシーケンスを含むアドレスレジスタにアドレスポインタを設定することによって行うことができる。図2Aには、プロトコルフォーマット例<デバイスアドレス+レジスタデータ(書き込み)>を用いた書き込み送信シーケンスを示しており、図2Bには、プロトコルフォーマット例<デバイスアドレス+レジスタアドレス+レジスタデータ(書き込み)>を用いた書き込み送信シーケンスを示しており、図2Cには、プロトコルフォーマット例<デバイスアドレス+レジスタデータ(読み取り)>を用いた読み取り送信シーケンスを示しており、図2Dには、プロトコルフォーマット例<デバイスアドレス+レジスタアドレス+レジスタデータ(読み取り)>を用いた読み取り送信シーケンスを示している。
【0029】
書き込み送信シーケンスは、マスターデバイスによって生成されたシリアルバス上のSTART信号後の、マスターデバイスによってSDAライン上にシフトされたデバイスアドレスバイトから開始する。デバイスアドレスバイトは、ビット<0110>(6h)から開始した後に、図1に示すシリアルメモリデバイス100のA2、A1、A0ピンの状態値に一致する3つのハードウェアアドレスビット<A210>が続く。最下位ビット(LSB)は、読み取り又は書き込み要求を示す方向ビットである。送信シーケンス内の各ビットは、SDAライン上でSCLパルス毎に1ビットずつシリアルに送信される。ハードウェアアドレスピンの一部が存在しないデバイスでは、ハードウェアアドレスビットが送信シーケンス内で論理「0」になる。論理「0」は、構成ブロック112に対する読み取り及び書き込みの両方のための方向に使用される。読み取りの場合、論理「0」を「ダミー」書き込み送信シーケンスの一部として用いてアドレスレジスタ108内にアドレスポインタを設定することができる。
【0030】
書き込み送信シーケンス内の次のn個のバイトは、実装するプロトコルフォーマットによって決まる。処理すべき構成レジスタの数が多い場合には、図2B及び図2Dを参照しながら説明するプロトコル例を実装することが望ましいと考えられる。この場合、デバイスアドレスバイトが送信された後の送信シーケンス内の次のn個のバイトは、n個の構成レジスタアドレスバイトである。最後に、最終バイトは、(単複の)読み出されるデータワードバイト又は書き込まれる(単複の)データワードバイトである。この(単複の)データワードバイトは構成データを含み、例えば表Iに示すように定めることができる。
【0031】
処理すべき構成レジスタの数が少ない(例えば、構成レジスタが3未満の)場合には、図2A及び図2Cを参照しながら説明するプロトコル例を実装することが望ましいと考えられる。この場合、デバイスアドレスバイトが送信された後の送信シーケンス内の次のn個のバイトは、(単複の)読み出されるデータワードバイト又は(単複の)書き込まれるデータワードバイトである。読み取りの場合、レジスタを連続的に読み取ることができ、レジスタの状態は、各読み取りイベント毎に更新される。
【0032】
以下の表Iに構成データの例を示す。
【0033】
この構成例では、アドレス0004hから開始するデータは、メモリアレイ101が論理的に分割された16Kbのメモリゾーンに対応する。メモリゾーンは、1から始まるカウントで列挙することができる。例えば、64Kbデバイスは4つのメモリゾーンを有し、表Iの内容全体を実装した場合、これらのメモリゾーンの動作は、アドレス0004h、0005h、0006h及び0007hの値に依存する。以下の表IIに、各実装密度でのメモリゾーンの数を示す。
表II−(64Kb/ゾーンに基づく)各実装密度でのメモリゾーンの数の例
【0034】
表Iの構成例では、ゾーン保護レジスタが、00h、F0h、0Fh及びFFhという4つの可能な値を有する。ゾーン保護レジスタは、対応するメモリゾーンの動作を変更するようにプログラムすることができる。1又は複数のゾーン保護レジスタは、WPピンの対応するゾーンへの影響を制御すること、又は対応するメモリゾーンが読み取り専用に設定されているか否かをレポートすることに専念することができる。ゾーン保護レジスタの量が減少するように、1又は複数のゾーン保護レジスタは、WP入力値及び読み取り専用制御値の両方を同じバイトでレポートすることができる。いくつかの実装では、ゾーン保護レジスタの上位ニブルが、対応するメモリゾーンのハードウェア保護動作を制御することができる。ゾーン保護レジスタの下位ニブルは、対応するメモリゾーンを読み取り専用に設定しておくかどうかを制御することができる。以下の表IIIは、WP入力の影響及び読み取り専用状態が同じバイトに含まれる実装における各ゾーン保護レジスタの動作を定めるものである。
表III−ゾーン保護レジスタ構成の例
【0035】
構成モードの処理例
図3は、シリアルバスを構成する処理の例300のフロー図である。いくつかの実装では、処理300が、シリアルバスから要求を受け取る(302)ことによって開始することができる。シリアルデバイスは、例えばシリアルメモリデバイスとすることができ、バスは、I2Cバスとすることができる。この要求は、シリアルバス上でマスターデバイスから送信されたnバイト(例えば、4バイト)の送信シーケンスを含むことができる。構成ブロックは、メモリアレイに実装され、1又は複数の構成読み取り/書き込みレジスタを含むことができる。
【0036】
処理300は、この要求が構成ブロックの読み取り又は書き込みの要求であると判定すること(304)によって続行することができる。例えば、マスターデバイスによって送信される送信シーケンスは、シリアルデバイスが構成ブロックに対する読み取り又は書き込みを識別するために使用できるビットの組を含むデバイスアドレスバイトを含むことができる。
【0037】
処理300は、構成ブロックに構成データをプログラムすること(306)によって続行することができる。例えば、構成ブロックには、デバイスアドレスバイトの後に構成レジスタの2バイトのメモリアドレスバイトが存在することができる。メモリアドレスバイトの後には、構成データを含むデータバイトが存在することができる。
【0038】
処理300は、構成データに従ってデバイスの動作を変更させること(308)によって続行することができる。例えば、コントローラ(状態機械)が構成ブロックから構成データを読み取り、構成データに従ってシリアルデバイスの動作を変更させる動作を行うことができる。構成モードで変更させることができるデバイスの動作のいくつかの例としては、以下に限定されるわけではないが、メモリアレイの保護、現在の構成のロック、ハードウェアアドレスピンの無効化、構成モードの無効化、低電圧ロックアウト(UVLO)制御、及びデバイス状態のレポート(例えば、進行中の書き込み又は誤り訂正)が挙げられる。
【0039】
本文書は多くの特定の実装の詳細を含むが、これらの詳細は、特許請求できる対象の範囲を限定するものとして解釈すべきではなく、むしろ特定の実施形態に固有の特徴の説明として解釈すべきである。本明細書において別個の実施形態の文脈で説明したいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で説明した様々な特徴を、複数の実施形態で別個に又はいずれかの好適な下位の組み合わせで実装することもできる。さらに、上記ではいくつかの組み合わせで機能するものとして特徴を説明し、最初はこのように特許請求していることもあるが、場合によっては、特許請求する組み合わせから生じる1又は複数の特徴をこれらの組み合わせから削除することもでき、特許請求する組み合わせの対象を下位の組み合わせ又は下位の組み合わせの変形例とすることもできる。
図1
図2A
図2B
図2C
図2D
図3