(57)【要約】      （修正有）【課題】記憶装置と接続する情報処理装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御する。【解決手段】記憶装置４５０と接続する信号線を介して、記憶装置４５０の状態を設定する第１の設定手段と、制御装置４３０に接続される第１の伝送路を介して、記憶装置４５０の状態を設定する第２の設定手段と、第１の伝送路を介して制御装置に接続されると共に、第２の伝送路を介して演算装置４２０と接続され、第１の伝送路と第２の伝送路とを切り替えて、制御装置４３０あるいは演算装置４２０の一方を、記憶装置４５０と通信可能に接続する切り替え手段４４０と、を備える。【選択図】図４
2012190195.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶装置を制御する制御装置において、
前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する第１の設定手段と、
前記制御装置に接続される第１の伝送路を介して、前記記憶装置の状態を設定する第２の設定手段と、
前記第１の伝送路を介して前記制御装置に接続されると共に、第２の伝送路を介して演算装置と接続され、前記第１の伝送路と前記第２の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する切り替え手段と、
を備える制御装置。
【請求項２】
前記切替手段によって前記第２の伝送路に切り替えられると、前記信号線は、前記演算装置と電気的に独立した状態で、特定のレベルの電位に固定される、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御装置は、前記演算装置と前記制御装置とを通信可能に接続する通信線を介して、前記演算装置から指示を受けると、前記第２の伝送路を前記第１の伝送路に切り替え、
前記指示にしたがって前記記憶装置を特定の状態に設定した後、前記第１の伝送路を前記第２の伝送路に切り替える、
ことを特徴とする請求項１に記載の制御装置。
【請求項４】
前記第１の設定手段は、前記信号線を介して、前記記憶装置に特定の信号を出力し、前記記憶装置を特定の状態に保持する、
ことを特徴とする請求項１に記載の制御装置。
【請求項５】
前記第２の設定手段は、前記第１の伝送路を介して、前記記憶装置の状態を決定するレジスタに特定のデータを書き込み、前記記憶装置を特定の状態に設定する、
ことを特徴とする請求項１に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置を制御する制御装置に関する。
【背景技術】
【０００２】
従来、情報処理装置は、周辺機器などを制御してＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に周辺機器への入出力処理を提供するプログラム群、例えば、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）などを記憶するために、フラッシュメモリなどの不揮発性メモリを備える。
【０００３】
図１は、フラッシュメモリを備える情報処理装置１００の構成例を示す図である。図１に示す情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０と、コントローラ１２０と、バス交換器１３０と、フラッシュメモリ１４０と、を備えている。
【０００４】
ＣＰＵ１１０およびコントローラ１２０は、バス交換器１３０を介してフラッシュメモリ１４０と接続する。バス交換器１３０は、ＣＰＵ１１０−フラッシュメモリ１４０間を接続する通常使用系統と、コントローラ１２０−フラッシュメモリ１４０間を接続する制御系統と、を切り替えることができる。
【０００５】
また、フラッシュメモリ１４０は、フラッシュメモリ１４０を制御するためのインターフェースとして、コントロールレジスタ１４１を備える。コントローラ１２０は、コントロールレジスタ１４１を操作することで、フラッシュメモリ１４０のライトプロテクトや、コントロールレジスタ１４１のライトプロテクトなどを操作することができる。
【０００６】
例えば、フラッシュメモリ１４０のライトプロテクトを設定しようとする場合、コントローラ１２０は、バス交換器１３０に対して所定の操作を行なって、通常使用系統から制御系統に切り替える。そして、コントローラ１２０は、フラッシュメモリ１４０に備えられたコントロールレジスタ１４１のライトプロテクトビットに１を設定する。これにより、フラッシュメモリ１４０への書込みがプロテクトされる。
【０００７】
また、コントロールレジスタ１４１のＣＲＷＰ（Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ  Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）ビットに「１」を設定し、端子／ＷＰ（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）に信号「０」を出力すると、コントロールレジスタ１４１への書込みがプロテクトされる。コントロールレジスタ１４１またはＣＰＵ１１０は、制御系統に含まれる信号線、または通常使用系統に含まれる信号線を利用して、フラッシュメモリ１４０の端子／ＷＰに信号を出力する。
【０００８】
フラッシュメモリ１４０への設定が終了すると、コントローラ１２０からバス交換器１３０に対して所定の操作を行なって、制御系統から通常使用系統に切り替えてから、ＣＰＵ１１０の駆動電源であるシステム電源を投入する。すると、ＣＰＵ１１０はフラッシュメモリ１４０からＢＩＯＳ等を読み出して実行する。その後、周辺機器との入出力処理が可能になると、ＣＰＵ１１０は、記憶装置からＯＳ等を読み出して実行する。
【０００９】
図２は、フラッシュメモリ１４０の端子／ＷＰに入力される信号と、コントロールレジスタ１４１のＣＲＷＰビットの設定と、の組み合わせによるコントロールレジスタ１４１の状態の遷移を示す図である。図２に示すように、端子／ＷＰへの信号が「０」、かつ、コントロールレジスタ１４１のＣＲＷＰビットが「１」に設定されている場合にだけ、コントロールレジスタ１４１はライトプロテクト状態となる。
【００１０】
上記技術に関連して、ユーザがデータをフラッシュメモリ４に書き込むことのできる第１の位置と、データがフラッシュメモリ４に書き込まれることを阻止する第２の位置との間で可動である手動スイッチを備えるフラッシュメモリについて知られている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特表２００３−５２４８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
図１に示した情報処理装置１００において、例えば、ＣＰＵ１１０に電源を投入すると、ＣＰＵ１１０などからノイズが発生する場合がある。この場合、ノイズは、バス交換器１３０を介してフラッシュメモリ１４０へと伝搬する。
【００１３】
このノイズにより、端子／ＷＰへの信号が「０」から「１」に切り替わると、図３に示すように、コントロールレジスタ１４１のライトプロテクトが解除される。この場合、ノイズのパターンによっては、コントロールレジスタ１４１のデータが書き換わり、フラッシュメモリ１４０のライトプロテクトも解除されてしまう。この状態でノイズがフラッシュメモリ１４０に流れ続けると、フラッシュメモリ１４０に記憶しているデータの破壊や、フラッシュメモリ１４０の誤作動を誘発することになる。
【００１４】
本制御装置は、１つの側面では、記憶装置と接続する演算装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御することを目的とする。
【課題を解決するための手段】
【００１５】
本制御装置の１つの観点によれば、本制御装置は、データを記憶する記憶装置を制御する。そして、本制御装置は、以下の構成要素を備える。
第１の設定手段は、前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する。
【００１６】
第２の設定手段は、前記制御装置に接続される第１の伝送路を介して、前記記憶装置の状態を設定する。
切り替え手段は、前記第１の伝送路を介して前記制御装置に接続されると共に、第２の伝送路を介して演算装置と接続され、前記第１の伝送路と前記第２の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する。
【発明の効果】
【００１７】
本制御装置は、１つの態様では、記憶装置と接続する演算装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御することができる。
【図面の簡単な説明】
【００１８】
【図１】フラッシュメモリを備える情報処理装置１００の構成例を示す図である。
【図２】フラッシュメモリ１４０の端子／ＷＰに入力される信号と、コントロールレジスタ１４１のＣＲＷＰビットの設定と、の組み合わせによるコントロールレジスタ１４１の状態の遷移を示す図である。
【図３】ノイズが発生した場合のコントローラ１４１の状態を説明する図である。
【図４】本実施例に係る情報処理装置４００に搭載するシステムボード４１０の構成例を示す図である。
【図５】本実施例で使用するＳＰＩマスタとＳＰＩスレーブを説明する図である。
【図６】図４に示したシステムボード４１０の主要部の具体例を示す図である。
【図７】本実施例で使用するテーブル７００の具体例を示す図である。
【図８】本実施例に係るコントローラ４３０の処理の一例を示すフローチャートである。
【図９】図６に示したシステムボード４１０の変形例を示す図である。
【図１０】図４に示したシステムボード４１０のその他の変形例を示す図である。
【図１１】図１０に示したシステムボード１０００の主要部の具体例を示す図である。
【図１２】図１１に示したシステムボード１０００の処理の一例を示すフローチャートである。
【図１３】図１２に示した処理におけるＣＰＵ４２０およびコントローラ４３０の具体的な処理を説明するフローチャートである。
【図１４】図１３に示した処理における装置間の関係を示す図である。
【発明を実施するための形態】
【００１９】
以下、本実施形態の一例について、図４〜図１４に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、種々変形して実施することができる。
【実施例】
【００２０】
図４は、本実施例に係る情報処理装置４００に搭載するシステムボード４１０の構成例を示す図である。
システムボード４１０は、ＣＰＵ４２０と、コントローラ４３０と、バス交換器４４０と、フラッシュメモリ４５０と、メモリ４６０と、を備える。
【００２１】
ＣＰＵ４２０は、フラッシュメモリ４５０や外部記憶装置４７０などから読み出したプログラムの命令にしたがって、所定の演算などを実行する演算装置である。ＣＰＵ４２０は、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）を利用してフラッシュメモリ４５０とデータ通信を行なうため使用するＳＰＩマスタ４２１を備える。なお、図４では記載を省略しているが、ＳＰＩマスタ４２１はＳＰＩバス４２２と接続している。
【００２２】
コントローラ４３０は、所定のプログラムの命令にしたがって、バス交換器４４０、フラッシュメモリ４５０を操作する演算装置である。コントローラ４３０は、ＳＰＩを利用してフラッシュメモリ４５０とデータ通信を行なうため使用するＳＰＩマスタ４３１を備える。なお、図４では記載を省略しているが、ＳＰＩマスタ４３１はＳＰＩバス４３２と接続している。
また、コントローラ４３０は、フラッシュメモリ４５０の端子／ＷＰと、／ＷＰ制御線で直接接続している。
【００２３】
バス交換器４４０は、ＳＰＩバス４２２を介してＣＰＵ４２０と接続している。また、バス交換器４４０は、ＳＰＩバス４３２を介してコントローラ４３０と接続している。また、バス交換器４４０は、ＳＰＩバス４５３を介してフラッシュメモリ４５０と接続している。
【００２４】
バス交換器４４０は、ＣＰＵ４２０とフラッシュメモリ４５０とを接続する通常使用系統と、コントローラ４３０とフラッシュメモリ４５０とを接続する制御系統と、をコントローラ４３０の指示によって切り替える。
【００２５】
フラッシュメモリ４５０は、データを記憶する不揮発性メモリを含む記憶装置である。フラッシュメモリ４５０は、例えば、ＢＩＯＳなどのデータを記憶することができる。そして、フラッシュメモリ４５０は、ＳＰＩを利用してＣＰＵ４２０やコントローラ４３０とデータ通信を行なうため使用するＳＰＩスレーブ４５１を備える。なお、図４では記載を省略しているが、ＳＰＩスレーブ４５１はＳＰＩバス４５３と接続している。
【００２６】
また、フラッシュメモリ４５０は、フラッシュメモリ４５０を外部から制御するためのインターフェースとして、端子／ＷＰと、コントロールレジスタ４５２と、を備える。図４に示すように、コントロールレジスタ４５２には、ＣＲＷＰビットと、ライトプロテクトビットと、が含まれる。
【００２７】
コントローラ４３０は、端子／ＷＰへの信号と、コントロールレジスタ４５２の設定によって、フラッシュメモリ４５０の状態を制御することができる。例えば、図２に示した、端子／ＷＰへの信号とコントロールレジスタ４５２の設定との組み合わせにしたがって、フラッシュメモリ４５０は状態を遷移する。
【００２８】
ＣＲＷＰビットは、コントロールレジスタ４５２への書込みをプロテクトするためのビットである。ＣＲＷＰビットが「１」に設定され、端子／ＷＰへの信号が「０」の場合、フラッシュメモリ４５０は、コントロールレジスタ４５２への書込みをプロテクトする。
【００２９】
ライトプロテクトビットは、フラッシュメモリ４５０へのデータの書込みをプロテクトするためのビットである。ライトプロテクトビットに「１」が設定されている場合、フラッシュメモリ４５０は、フラッシュメモリ４５０へのデータの書込みをプロテクトする。
【００３０】
コントローラ４３０は、フラッシュメモリ４５０へのＢＩＯＳなどのデータの書込みやアップデートなどの処理を実行する。
また、コントローラ４３０は、情報処理装置４００の主電源投入と同時に起動するので、このタイミングで、フラッシュメモリ４５０へのデータの書込み、コントロールレジスタ４５２への書込みをプロテクト状態に設定することができる。
【００３１】
フラッシュメモリ４５０へのデータの書込み、コントロールレジスタ４５２への書込みをプロテクト状態に設定後、コントローラ４３０は、制御系アクセスバスを通常アクセスバスに切り替えることができる。この場合、フラッシュメモリ４５０を、ＣＰＵ４２０に対して読み出し専用とすることができる。
【００３２】
図５は、本実施例で使用するＳＰＩマスタとＳＰＩスレーブを説明する図である。
ＳＰＩマスタ５１０とＳＰＩスレーブ５２０とは、ＳＰＩバス５３０を介して接続する。
【００３３】
ＳＰＩマスタ５１０は、端子ＳＣＬＫ、ＭＯＳＩ、ＭＯＳＯおよびＳＳを備える。端子ＳＣＬＫは、ＳＰＩスレーブ５２０にクロック信号を送信するための信号線を接続する端子である。端子ＭＯＳＩは、ＳＰＩスレーブ５２０にデータを送信するための信号線を接続する端子である。端子ＭＩＳＯは、ＳＰＩスレーブ５２０からデータを受信するための信号線を接続する端子である。端子ＳＳは、ＳＰＩスレーブ５２０を選択するための信号線を接続する端子である。
【００３４】
ＳＰＩスレーブ５２０も、端子ＳＣＬＫ、ＭＯＳＩ、ＭＯＳＯおよびＳＳを備える。端子ＳＣＬＫは、ＳＰＩマスタ５１０からクロック信号を受信するための信号線を接続する端子である。端子ＭＯＳＩは、ＳＰＩマスタ５１０からデータを受信するための信号線を接続する端子である。端子ＭＩＳＯは、ＳＰＩマスタ５１０にデータを送信するための信号線を接続する端子である。端子ＳＳは、ＳＰＩマスタ５１０がＳＰＩスレーブ５２０を選択するための信号線を接続する端子である。
【００３５】
なお、図５に示したＳＰＩデバイス、すなわち、ＳＰＩマスタ５１０とＳＰＩスレーブ５２０によるデータ通信は、公知の技術であるので、詳細な説明は省略する。
【００３６】
図６は、図４に示したシステムボード４１０の主要部の具体例を示す図である。
ＣＰＵ４２０に備わるＳＰＩマスタ４２１は、信号線ＳＰＩ＿ＤＡＴＡ＿ＯＵＴ、ＳＰＩ＿ＣＬＫ、／ＳＰＩ＿ＣＳ０およびＳＰＩ＿ＤＡＴＡ＿ＩＮを介して、バス交換器４４０と接続している。ＣＰＵ４２０は、ＳＰＩマスタ４２１を操作することにより、ＳＰＩを利用した通信を行なう。
【００３７】
なお、図６では、主要部の接続関係の理解優先のため省略しているが、接続信号線ＳＰＩ＿ＤＡＴＡ＿ＯＵＴ、ＳＰＩ＿ＣＬＫ、／ＳＰＩ＿ＣＳ０およびＳＰＩ＿ＤＡＴＡ＿ＩＮは、それぞれＳＰＩマスタ４２１の端子ＭＯＳＩ、ＳＣＬＫ、ＳＳおよびＭＩＳＯと接続する。
【００３８】
ＣＰＵ４２０は、システム電源により駆動する。システム電源のＣＰＵ４２０への投入は、情報処理装置４００の主電源と接続するスイッチＳＷをＯＦＦからＯＮに切り替えることにより行なうことができる。
【００３９】
コントローラ４３０に備わるＳＰＩマスタ４３１は、信号線ＳＰＩ＿ＤＡＴＡ＿ＯＵＴ、ＳＰＩ＿ＣＬＫ、／ＳＰＩ＿ＣＳ０およびＳＰＩ＿ＤＡＴＡ＿ＩＮを介して、バス交換器４４０と接続している。
【００４０】
また、コントローラ４３０は、信号線／ＳＷ＿ＢＥおよびＳＷ＿ＢＸを介して、バス交換器４４０と接続している。信号線／ＳＷ＿ＢＥおよびＳＷ＿ＢＸは、それぞれバス交換器４４０の端子／ＢＥおよびＢＸと接続している。コントローラ４３０は、後述するように、端子／ＢＥおよびＢＸに出力する信号により、バス交換器４４０を操作することができる。
【００４１】
また、コントローラ４３０は、信号線／ＦＬＡＳＨ＿ＷＰを介して、フラッシュメモリ４５０と接続している。信号線／ＦＬＡＳＨ＿ＷＰは、フラッシュメモリ４５０の端子／ＷＰと接続している。コントローラ４３０は、フラッシュメモリ４５０の端子／ＷＰに出力する信号と、コントロールレジスタ４５２への設定により、フラッシュメモリ４５０の状態、例えば、コントロールレジスタ４５２やメモリ４５９のライトプロテクトの設定・解除、を操作することができる。
【００４２】
なお、図６では、主要部の接続関係の理解優先のため省略しているが、接続信号線ＳＰＩ＿ＤＡＴＡ＿ＯＵＴ、ＳＰＩ＿ＣＬＫ、／ＳＰＩ＿ＣＳ０およびＳＰＩ＿ＤＡＴＡ＿ＩＮは、それぞれＳＰＩマスタ４３１の端子ＭＯＳＩ、ＳＣＬＫ、ＳＳおよびＭＩＳＯと接続する。
【００４３】
コントローラ４３０は、情報処理装置４００の主電源により駆動する。したがって、例えば、情報処理装置４００に主電源が投入されると、コントローラ４３０は、フラッシュメモリ４３２から所定のプログラムを読み出す。そして、コントローラ４３０は、読み出したプログラムの命令にしたがって、処理を開始する。フラッシュメモリ４３２、バス交換器４４０およびフラッシュメモリ４５０も、コントローラ４３０と同様に、情報処理装置４００の主電源により駆動する。
【００４４】
バス交換器４４０は、端子１Ａ１、２Ａ１、３Ａ１、４Ａ１および５Ａ１を備える。端子１Ａ１、２Ａ１、３Ａ１および５Ａ１は、それぞれ、ＣＰＵ４２０に備わるＳＰＩマスタ４２１からの信号線ＳＰＩ＿ＤＡＴＡ＿ＯＵＴ、ＳＰＩ＿ＣＬＫ、／ＳＰＩ＿ＣＳ０およびＳＰＩ＿ＤＡＴＡ＿ＩＮと接続している。
【００４５】
また、バス交換器４４０は、端子１Ａ２、２Ａ２、３Ａ２、４Ａ２および５Ａ２を備える。端子１Ａ２、２Ａ２、３Ａ２、４Ａ２および５Ａ２は、それぞれ、コントローラ４３０に備わるＳＰＩマスタ４３１からの信号線ＳＰＩ＿ＤＡＴＡ＿ＯＵＴ、ＳＰＩ＿ＣＬＫ、／ＳＰＩ＿ＣＳ０およびＳＰＩ＿ＤＡＴＡ＿ＩＮと接続している。
【００４６】
また、バス交換器４４０は、端子１Ｂ１、２Ｂ１、３Ｂ１、４Ｂ１および５Ｂ１と、端子１Ｂ２、２Ｂ２、３Ｂ２、４Ｂ２および５Ｂ２と、を備える。端子１Ｂ１、２Ｂ１、３Ｂ１および５Ｂ１は、それぞれ、フラッシュメモリ４５０に備わる端子Ｄ、Ｃ、／ＳおよびＱと接続している。端子１Ｂ２、２Ｂ２、３Ｂ２、４Ｂ２および５Ｂ２は、本実施例では使用しないので、説明を省略する。
【００４７】
バス交換器４４０は、端子１Ａ１−５Ａ１と端子１Ｂ１−５Ｂ１、すなわち、端子１Ａ１と１Ｂ１、端子２Ａ１と２Ｂ１、端子３Ａ１と３Ｂ１、端子４Ａ１と４Ｂ１および端子５Ａ１と５Ｂ１、を接続することができる。また、バス交換器４４０は、端子１Ａ１−５Ａ１と端子１Ｂ２−５Ｂ２、すなわち、端子１Ａ１と１Ｂ２、端子２Ａ１と２Ｂ２、端子３Ａ１と３Ｂ２、端子４Ａ１と４Ｂ２および端子５Ａ１と５Ｂ２、を接続することができる。
【００４８】
そして、バス交換器４４０は、端子１Ａ１−５Ａ１と端子１Ｂ１−５Ｂ１の接続と、端子１Ａ１−５Ａ１と端子１Ｂ２−５Ｂ２の接続と、を、端子／ＢＥおよびＢＸへの入力信号に応じて切り替える。
【００４９】
同様に、バス交換器４４０は、端子１Ａ２−５Ａ２と端子１Ｂ１−５Ｂ１、すなわち、端子１Ａ２と１Ｂ１、端子２Ａ２と２Ｂ１、端子３Ａ２と３Ｂ１、端子４Ａ２と４Ｂ１および端子５Ａ２と５Ｂ１、を接続することができる。また、バス交換器４４０は、端子１Ａ２−５Ａ２と端子１Ｂ２−５Ｂ２、すなわち、端子１Ａ２と１Ｂ２、端子２Ａ２と２Ｂ２、端子３Ａ２と３Ｂ２、端子４Ａ２と４Ｂ２および端子５Ａ２と５Ｂ２、を接続することができる。
【００５０】
そして、バス交換器４４０は、端子１Ａ２−５Ａ２と端子１Ｂ１−５Ｂ１の接続と、端子１Ａ２−５Ａ２と端子１Ｂ２−５Ｂ２の接続と、を、端子／ＢＥおよびＢＸへの入力信号に応じて切り替える。
【００５１】
バス交換器４４０は、図７に示すテーブル７００にしたがって、端子間の接続を切り替える。
例えば、端子／ＢＥおよびＢＸに「０」が入力されると、バス交換器４４０は、端子１Ａ１−５Ａ１と端子１Ｂ１−５Ｂ１を接続し、端子１Ａ２−５Ａ２と端子１Ｂ２−５Ｂ２を接続する。
【００５２】
また、端子／ＢＥに「０」が入力され、端子ＢＸに「１」が入力されると、バス交換器４４０は、端子１Ａ１−５Ａ１と端子１Ｂ２−５Ｂ２を接続し、端子１Ａ２−５Ａ２と端子１Ｂ１−５Ｂ１を接続する。
【００５３】
フラッシュメモリ４５０は、端子Ｄ、Ｃ、／Ｓ、／ＷＰおよびＱを備える。端子Ｄ、Ｃ、／ＳおよびＱは、それぞれバス交換器４４０の端子１Ｂ１、２Ｂ１、３Ｂ１および５Ｂ１と接続する。また、端子／ＷＰは、コントローラ４３０からの信号線ＦＬＡＳＨ＿ＷＰと接続する。
【００５４】
なお、図６では、主要部の接続関係の理解優先のために省略しているが、端子Ｄ、Ｃ、／ＳおよびＱは、それぞれＳＰＩスレーブ４５１の端子ＭＯＳＩ、ＳＣＬＫ、ＳＳおよびＭＩＳＯと接続する。
【００５５】
また、フラッシュメモリ４５０は、ＳＰＩスレーブ４５１およびコントロールレジスタ４５２に加えて、制御部４５３と、シフトレジスタ４５４と、データバッファ４５５と、アドレスレジスタ４５６と、デコーダ４５７および４５８と、メモリ４５９と、を備える。
【００５６】
制御部４５３は、ＳＰＩスレーブ４５１を利用して、他の装置、例えばＣＰＵ４２０やコントローラ４３０とデータ通信を行なう。そして、制御部４５３は、受信したデータのメモリ４５９への書込み処理や、メモリ４５９からのデータの読み出し処理などを行なう。また、制御部４５３は、コントロールレジスタ４５２への書込み処理や読み込み処理も行なう。
【００５７】
制御部４５３は、端子／ＷＰへの入力信号が「０」、かつ、コントロールレジスタ４５２のＣＲＷＰビットが「１」の場合、コントロールレジスタ４５２への書込みをプロテクトする。
【００５８】
シフトレジスタ４５４は、シリアルデータを所定のビット長のパラレルデータに変換し、所定のビット長のパラレルデータをシリアルデータに変換する。例えば、ＳＰＩスレーブ４５１から入力されたシリアルデータは、シフトレジスタ４５４で所定のビット長のパラレルデータに変換される。
【００５９】
データバッファ４５５は、メモリ４５９へ書き込むデータ、または、メモリ４５９から読み出したデータ、を一時的に記憶する記憶装置である。
アドレスレジスタ４５６は、メモリ４５９へ書き込むデータのアドレス、または、メモリ４５９から読み出すデータのアドレス、を示すアドレスデータを一時的に記憶する記憶装置である。
【００６０】
デコーダ４５７は、アドレスレジスタ４５６に記憶されたアドレスデータをデコードして、例えば、上位アドレスを抽出する。また、デコーダ４５８は、アドレスレジスタ４５６に記憶されたアドレスデータをデコードして、例えば、下位アドレスを抽出する。これら上位アドレスと下位アドレスとによって、メモリ４５９上のデータのアドレスを選択することができる。
【００６１】
メモリ４５９は、不揮発性メモリである。
以上の構成において、制御部４５３は、制御部４５３は、ＳＰＩスレーブ４５１からデータを受信すると、シフトレジスタ４５４により、所定のビット長のデータに変換する。変換したデータに、コントロールレジスタ４５２への書込み命令が含まれる場合、制御部４５３は、端子／ＷＰおよびコントロールレジスタ４５２のＣＲＷＰビットを参照する。端子／ＷＰが「０」かつコントロールレジスタ４５２のＣＲＷＰビットが「１」の場合、制御部４５３は、コントロールレジスタ４５２への書込み処理を抑止する。
【００６２】
また、端子／ＷＰが「１」またはコントロールレジスタ４５２のＣＲＷＰビットが「０」の場合、制御部４５３は、変換したデータをコントロールレジスタ４５２に書き込む処理を行なう。この場合、制御部４５３は、コントロールレジスタ４５２の特定のビットだけを変更することもできる。
【００６３】
また、シフトレジスタ４５４で変換したデータに、コントロールレジスタ４５２の読み出し命令が含まれる場合、制御部４５３は、コントロールレジスタ４５２に格納されているデータを、シフトレジスタ４５４によってシリアルデータに変換する。そして、制御部４５３は、ＳＰＩスレーブ４５１を介して、コントロールレジスタ４５２のデータを出力する。
【００６４】
また、シフトレジスタ４５４で変換したデータに、メモリ４５９への書込み命令が含まれる場合、制御部４５３は、コントロールレジスタ４５２のライトプロテクトビットを参照する。そして、ライトプロテクトビットが「１」の場合、制御部４５３は、メモリ４５９への書込み処理を抑止する。
【００６５】
また、コントロールレジスタ４５２のライトプロテクトビットが「０」の場合、制御部４５３は、変換したデータに含まれるアドレスデータをアドレスレジスタ４５６に格納する。また、制御部４５３は、変換したデータに含まれるデータ部をデータバッファ４５５に格納する。そして、デコーダ４５７および４５８によってデコードされた上位アドレスと下位アドレスとによって特定されるアドレスに、データバッファ４５５に格納したデータを記憶する。
【００６６】
また、シフトレジスタ４５４で変換したデータに、メモリ４５９からの読み出し命令が含まれる場合、制御部４５３は、変換したデータに含まれるアドレスデータをアドレスレジスタ４５６に格納する。そして、デコーダ４５７および４５８によってデコードされた上位アドレスと下位アドレスとによって特定されるアドレスに格納されているデータを、データバッファ４５５に格納する。制御部４５３は、データバッファ４５５に格納したデータを、シフトレジスタ４５４によってシリアルデータに変換する。そして、制御部４５３は、ＳＰＩスレーブ４５１を介して、データを出力する。
【００６７】
以下では、ＣＰＵ４２０−フラッシュメモリ４５０間を接続する通信線であって、ＳＰＩを使用した通信に使用する通信線を、「通常アクセスバス」という。また、コントローラ４３０−フラッシュメモリ４５０間を接続する通信線のうち、ＳＰＩを使用した通信に使用する通信線を、「制御系アクセスバス」という。そして、コントローラ４３０−フラッシュメモリ４５０間を接続する通信線のうち、バス交換器４４０の端子／ＢＥおよびＢＸと接続する信号線と、フラッシュメモリ４５０の端子／ＷＰと接続する信号線と、を含む信号線を、「制御系信号バス」という。
【００６８】
図８は、本実施例に係るコントローラ４３０の処理の一例を示すフローチャートである。
情報処理装置４００に主電源が投入されると、コントローラ４３０は、フラッシュメモリ４３２から読み出したプログラムの命令にしたがって、以下の処理を開始する（ステップＳ８００）。
【００６９】
ステップＳ８０１において、コントローラ４３０は、制御系アクセスバスへの切り替えを行なう。この場合、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「１」を出力することにより、制御系アクセスバスへの切り替え処理を行なうことができる。
【００７０】
ステップＳ８０２において、コントローラ４３０は、制御系アクセスバスを使用して、フラッシュメモリ４５０とデータ通信を行なう。そして、コントローラ４３０は、フラッシュメモリ４５０に対して、コントロールレジスタ４５２のＣＲＷＰビットを「１」に設定するように指示する。すると、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のＣＲＷＰビットに「１」を書き込む処理を行なう。
【００７１】
ステップＳ８０３において、コントローラ４３０は、制御系信号バスの信号線／ＦＬＡＳＨ＿ＷＰを通じて、フラッシュメモリ４５０の端子／ＷＰに「０」を出力する。なお、制御系信号バスの信号線を通じて出力される信号は、主電源が投入されている間、常時その値が保持される。
【００７２】
ステップＳ８０２およびＳ８０３の処理が完了すると、フラッシュメモリ４５０のコントロールレジスタ４５２のライトプロテクトが有効となる。
ステップＳ８０４において、コントローラ４３０は、制御系アクセスバスから通常アクセスバスへの切り替えを行なう。この場合、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「０」を出力することにより、通常アクセスバスへの切り替え処理を行なうことができる。
【００７３】
以上の処理が終了すると、ＣＰＵ４２０は、フラッシュメモリ４５０からデータの読み出しが可能な状態となる。同時に、ＣＰＵ４２０から、フラッシュメモリ４５０のコントロールレジスタ４５２の変更が抑止される。例えば、ステップＳ８０２において、コントロールレジスタ４５２のライトプロテクトビットも「１」に設定しておけば、フラッシュメモリ４５０を、ＣＰＵ４２０からデータの読み出しだけが可能な状態にすることができる。
【００７４】
以上の処理が終了した状態で、システム電源を投入してＣＰＵ４２０を起動する際、システム電源の投入等によりＣＰＵ４２０内等にノイズが発生する場合が考えられる。しかし、フラッシュメモリ４５０の端子／ＷＰは、ＣＰＵ４２０ではなくコントローラ４３０と接続しているので、ＣＰＵ４２０内等で発生したノイズの影響を受けることはない。
【００７５】
その結果、ＣＰＵ４２０が通常アクセスバスを介してフラッシュメモリ４５０と接続した状態で、ＣＰＵ４２０内等でノイズが発生しても、フラッシュメモリ４５０のコントロールレジスタ４５２やメモリ４５９のデータを意図せず書き換えることを防止する。
【００７６】
以上のように、コントローラ４３０は、ＣＰＵ４２０内等で発生するノイズの影響を受けることなく、フラッシュメモリ４５０のライトプロテクト状態を制御することが可能となる。このライトプロテクトには、フラッシュメモリ４５０のＣＲＷＰビットに対するライトプロテクトと、フラッシュメモリ４５０のメモリ４５９に対するライトプロテクトと、を含むことができる。
【００７７】
（変形例）
図９は、図６に示したシステムボード４１０の変形例を示す図である。
コントローラ４３０は、信号線／ＦＬＡＳＨ＿ＷＰを介して、バス交換器４４０の端子４Ａ２と接続している。
バス交換器４４０の端子４Ａ１は、グランドされている。したがって、端子４Ａ１には、常に「０」が入力される。また、バス交換器４４０の端子４Ｂ１は、フラッシュメモリ４５０の端子／ＷＰと接続している。
【００７８】
以上の構成では、例えば、コントローラ４３０がバス交換器４４０の端子／ＢＥおよびＢＸに「０」を出力すると、バス交換器４４０は、端子１Ａ１−５Ａ１と端子１Ｂ１−５Ｂ１を接続する。この場合、ＣＰＵ４２０は、通常アクセスバスを介して、フラッシュメモリ４５０と接続する。
【００７９】
しかし、バス交換器４４０の端子４Ａ１はグランドされているので、端子４Ａ１と接続する端子４Ｂ１から、フラッシュメモリ４５０の端子／ＷＰには、常に「０」が出力される。
【００８０】
この状態で、システム電源を投入してＣＰＵ４２０を起動する際、システム電源の投入等によりＣＰＵ４２０内等にノイズが発生する場合が考えられる。しかし、フラッシュメモリ４５０の端子／ＷＰは、ＣＰＵ４２０と接続されることなくグランドされているので、ＣＰＵ４２０内等で発生したノイズの影響を受けることはない。
【００８１】
その結果、ＣＰＵ４２０が通常アクセスバスを介してフラッシュメモリ４５０と接続した状態で、ＣＰＵ４２０内等でノイズが発生しても、フラッシュメモリ４５０のコントロールレジスタ４５２やメモリ４５９のデータを意図せず書き換えることを防止する。
【００８２】
したがって、コントローラ４３０は、ＣＰＵ４２０内等で発生するノイズの影響を受けない、フラッシュメモリ４５０のライトプロテクトを実現することが可能となる。
【００８３】
（その他の変形例）
図１０は、図４に示したシステムボード４１０の変形例を示す図である。
図１０に示すシステムボード１０００に含まれるＣＰＵ４２０とコントローラ４３０は、専用線等を介して、互いに通信可能に接続する。その他の構成は、図４で説明したので省略する。
【００８４】
図１１は、図１０に示したシステムボード１０００の主要部の具体例を示す図である。
ＣＰＵ４２０とコントローラ４３０とは、互いに専用の通信線１０１０で接続している。この通信線１０１０を介して、ＣＰＵ４２０とコントローラ４３０は、互いに通信を行なう。
【００８５】
コントローラ４３０は、信号線／ＦＬＡＳＨ＿ＷＰを介して、バス交換器４４０の端子４Ａ１および端子４Ａ２と接続している。また、バス交換器４４０の端子４Ｂ１は、フラッシュメモリ４５０の端子／ＷＰと接続している。
【００８６】
コントローラ４３０の信号線／ＦＬＡＳＨ＿ＷＰは、バス交換器４４０の端子４Ａ１および４Ａ２と接続している。したがって、バス交換器４４０が通常アクセスバスに切り替えられても、または、制御系アクセスバスに切り替えられても、コントローラ４３０は、信号線／ＦＬＡＳＨ＿ＷＰを介して、フラッシュメモリ４５０の端子／ＷＰと常に接続している。結果として、図６に示したように、コントローラ４３０とフラッシュメモリ４５０の端子／ＷＰとを直接接続した構成と等価となる。
【００８７】
このように、フラッシュメモリ４５０の端子／ＷＰは、ＣＰＵ４２０ではなくコントローラ４３０と常時接続しているので、ＣＰＵ４２０内等で発生したノイズの影響を受けることはない。
【００８８】
その結果、ＣＰＵ４２０が通常アクセスバスを介してフラッシュメモリ４５０と接続した状態で、ＣＰＵ４２０内等でノイズが発生しても、フラッシュメモリ４５０のコントロールレジスタ４５２やメモリ４５９のデータを意図せず書き換えることを防止する。
【００８９】
したがって、コントローラ４３０は、ＣＰＵ４２０内等で発生するノイズの影響を受けることなく、フラッシュメモリ４５０のライトプロテクト状態を制御することが可能となる。
【００９０】
図１２は、図１１に示したシステムボード１０００の処理の一例を示すフローチャートである。
情報処理装置４００に主電源が投入されると、コントローラ４３０は、フラッシュメモリ４５０を、ライトプロテクト状態に設定する（ステップＳ１２０１ｂ）。なお、この処理は、図８に示した処理と同様なので、詳細な説明は省略する。
【００９１】
ここで、例えば、ユーザがシステム電源を投入すると、ＣＰＵ４２０に電力が供給される。すると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを開始する（ステップＳ１２０１ａ）。例えば、ＣＰＵ４２０は、フラッシュメモリ４５０からＢＩＯＳなどのデータを読み出して実行する。そして、ＣＰＵ４２０は、プログラムの命令にしたがって、周辺機器の初期化などを行なう。
【００９２】
そして、例えば、フラッシュメモリ４５０への書込み処理が必要となった場合、ＣＰＵ４２０は、処理をステップＳ１２０２ａに移行する。そして、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを停止する（ステップＳ１２０２ａ）。
【００９３】
ステップＳ１２０３ａにおいて、ＣＰＵ４２０は、コントローラ４３０に対して、通信線１０１０を通じて、フラッシュメモリ４５０へのアクセス停止を通知する。この通知には、フラッシュメモリ４５０のライトプロテクトを解除する旨の要求を含むことができる。
【００９４】
一方、ＣＰＵ４２０から、フラッシュメモリ４５０へのアクセス停止の通知を受信すると、コントローラ４３０は、フラッシュメモリ４５０のライトプロテクトを解除する（ステップＳ１２０２ｂ）。そして、コントローラ４３０は、ＣＰＵ４２０に対して、通信線１０１０を通じて、ライトプロテクト解除を通知する（ステップＳ１２０３ｂ）。
【００９５】
コントローラ４３０から、フラッシュメモリ４５０のライトプロテクト解除の通知を受けると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを開始する（ステップＳ１２０４ａ）。所定のデータのフラッシュメモリ４５０への書込みが完了すると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを停止する（ステップＳ１２０５ａ）。そして、ＣＰＵ４２０は、コントローラ４３０に対して、通信線１０１０を通じて、フラッシュメモリ４５０へのアクセス停止を通知する（ステップＳ１２０６ａ）。この通知には、フラッシュメモリ４５０のライトプロテクトを設定する旨の要求を含むことができる。
【００９６】
一方、ＣＰＵ４２０から、フラッシュメモリ４５０へのアクセス停止の通知を受信すると、コントローラ４３０は、フラッシュメモリ４５０のライトプロテクトを設定する（ステップＳ１２０４ｂ）。そして、コントローラ４３０は、ＣＰＵ４２０に対して、通信線１０１０を通じて、フラッシュメモリ４５０のライトプロテクト設定完了を通知する（ステップＳ１２０３ｂ）。
【００９７】
コントローラ４３０から、フラッシュメモリ４５０のライトプロテクト設定完了の通知を受けると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを開始する（ステップＳ１２０７ａ）。
【００９８】
図１３は、図１２に示した処理におけるＣＰＵ４２０およびコントローラ４３０の具体的な処理を説明するフローチャートである。
情報処理装置４００に主電源が投入されると、コントローラ４３０は、フラッシュメモリ４３２から読み出したプログラムの命令にしたがって、ステップＳ１３０１〜Ｓ１３０４の処理を行なう。ステップＳ１３０１〜Ｓ１３０４の処理は、図１２に示したＳ１２０１ｂの処理に対応する。なお、このステップＳ１３０１〜Ｓ１３０４の処理の説明は、図８で説明したので省略する。
【００９９】
ここで、例えば、ユーザがシステム電源を投入すると、ＣＰＵ４２０に電力が供給される。すると、ＣＰＵ４２０は、処理をステップＳ１３０５に移行する。そして、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを開始する（ステップＳ１３０５）。フラッシュメモリ４５０へのアクセスを開始すると、ＣＰＵ４２０は、例えば、フラッシュメモリ４５０からＢＩＯＳなどのデータを読み出して実行する。そして、ＣＰＵ４２０は、プログラムの命令にしたがって、周辺機器の初期化などを行なう。
【０１００】
そして、例えば、フラッシュメモリ４５０への書込み処理が必要となった場合、ＣＰＵ４２０は、処理をステップＳ１３０６に移行する。この場合、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを停止する（ステップＳ１３０６）。フラッシュメモリ４５０へのアクセスを停止すると、ＣＰＵ４２０は、コントローラ４３０に対して、通信線１０１０を通じて、フラッシュメモリ４５０へのアクセスを停止したことを通知する（ステップＳ１３０７）。
【０１０１】
ＣＰＵ４２０から、フラッシュメモリ４５０へのアクセスを停止したことを通知されると、コントローラ４３０は、通常アクセスバスから制御系アクセスバスにバスを切り替える（ステップＳ１３０８）。コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「１」を出力することにより、通常アクセスバスから制御系アクセスバスにバスを切り替える。
【０１０２】
制御系アクセスバスにバスを切り替えると、コントローラ４３０は、制御系信号バスの信号線／ＦＬＡＳＨ＿ＷＰを通じて、フラッシュメモリ４５０の端子／ＷＰに「１」を出力する（ステップＳ１３０９）。
【０１０３】
さらに、コントローラ４３０は、フラッシュメモリ４５０に備わるコントロールレジスタ４５２のＣＲＷＰビットを「０」に設定する（ステップＳ１３１０）。具体的には、コントローラ４３０は、フラッシュメモリ４５０に対して、コントロールレジスタ４５２のＣＲＷＰビットを「０」に設定するように指示する。すると、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のＣＲＷＰビットに「０」を書き込む処理を行なう。
【０１０４】
以上の処理が終了すると、コントローラ４３０は、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１３１１）。コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「０」を出力することにより、制御系アクセスバスから通常アクセスバスにバスを切り替える。
【０１０５】
上述したステップＳ１３０８〜Ｓ１３１１の処理が、図１２に示したステップＳ１２０２ｂの処理に対応する。この処理によって、フラッシュメモリ４５０のライトプロテクトが解除される。
【０１０６】
すると、コントローラ４３０は、ＣＰＵ４２０に対して、通信線１０１０を通じて、ライトプロテクト解除を通知する（ステップＳ１３１２）。
コントローラ４３０からライトプロテクト解除の通知を受けると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセス、すなわち、書込み処理を開始する（ステップＳ１３１３）。所定のデータのフラッシュメモリ４５０への書込みが完了すると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを停止する（ステップＳ１３１４）。そして、ＣＰＵ４２０は、コントローラ４３０に対して、通信線１０１０を通じて、フラッシュメモリ４５０へのアクセス停止を通知する（ステップＳ１３１５）。
【０１０７】
ＣＰＵ４２０から、フラッシュメモリ４５０へのアクセスを停止したことを通知されると、コントローラ４３０は、通常アクセスバスから制御系アクセスバスにバスを切り替える（ステップＳ１３１６）。
【０１０８】
制御系アクセスバスにバスを切り替えると、コントローラ４３０は、フラッシュメモリ４５０に備わるコントロールレジスタ４５２のＣＲＷＰビットを「１」に設定する（ステップＳ１３１７）。さらに、コントローラ４３０は、制御系信号バスの信号線／ＦＬＡＳＨ＿ＷＰを通じて、フラッシュメモリ４５０の端子／ＷＰに「０」を出力する（ステップＳ１３１８）。以上の処理が終了すると、コントローラ４３０は、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１３１９）。
【０１０９】
上述したステップＳ１３１６〜Ｓ１３１９の処理が、図１２に示したステップＳ１２０５ｂの処理に対応する。この処理によって、フラッシュメモリ４５０にライトプロテクトが設定される。
【０１１０】
すると、コントローラ４３０は、ＣＰＵ４２０に対して、通信線１０１０を通じて、ライトプロテクトの設定完了を通知する（ステップＳ１３２０）。
コントローラ４３０からライトプロテクトの設定完了の通知を受けると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセス、すなわち、読み込み処理を開始する（ステップＳ１３２１）。また、ＣＰＵ４２０は、フラッシュメモリ４５０への書込み処理が必要となった場合、処理をステップＳ１３０６に移行する。
【０１１１】
図１４は、図１３に示した処理における装置間の関係を示す図である。
情報処理装置４００に主電源が投入されると、コントローラ４３０は、バス交換器４４０を操作して、制御系アクセスバスへの切り替えを行なう（ステップＳ１４０１ｃ）。具体的には、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「１」を出力する。
【０１１２】
すると、バス交換器４４０は、ＣＰＵ４２０の操作にしたがって、制御系アクセスバスにバスを切り替える（ステップＳ１４０１ｄ）。
コントローラ４３０は、ステップＳ１４０１ｃの処理後、一定時間経過すると、処理をステップＳ１４０２ｃに移行する。これは、バス交換器４４０等のハードウェア等の制約に起因する、バス切り替え完了までの時間を確保するためである。
【０１１３】
ステップＳ１４０２ｃにおいて、コントローラ４３０は、制御系アクセスバスを使用して、フラッシュメモリ４５０とデータ通信を行なう。そして、コントローラ４３０は、フラッシュメモリ４５０に対して、コントロールレジスタ４５２の変更を指示する（ステップＳ１４０２ｃ）。具体的には、コントローラ４３０は、コントロールレジスタ４５２のＣＲＷＰビットを「１」に設定するように指示する。また、コントローラ４３０は、コントロールレジスタ４５２のライトプロテクトビットを「１」に設定するように指示することができる。
【０１１４】
コントローラ４３０から指示を受けると、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のＣＲＷＰビットを「１」に設定する（ステップＳ１４０１ｂ）。また、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のライトプロテクトビットを「１」に設定する（ステップＳ１４０１ｂ）。
【０１１５】
コントロールレジスタ４５２の変更が完了すると、コントローラ４３０は、制御系信号バスの信号線／ＦＬＡＳＨ＿ＷＰを通じて、フラッシュメモリ４５０の端子／ＷＰに「０」を出力する（ステップＳ１４０３ｃ）。すると、フラッシュメモリ４５０の端子／ＷＰに入力される信号が確定する（ステップＳ１４０２ｂ）。
【０１１６】
コントローラ４３０は、ステップＳ１４０３ｃの処理後、一定時間経過すると、処理をステップＳ１４０４ｃに移行する。これは、端子／ＷＰに出力される信号のレベルが確定するまでの時間を確保するためである。
【０１１７】
ステップＳ１４０４ｃにおいて、コントローラ４３０は、バス交換器４４０を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１４０４ｃ）。具体的には、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「０」を出力する。
【０１１８】
すると、バス交換器４４０は、ＣＰＵ４２０の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１４０２ｄ）。
以上の処理が完了すると、フラッシュメモリ４５０のコントロールレジスタ４５２のライトプロテクトが有効となる。また、ステップＳ１４０１ｂでライトプロテクトビットが「１」に設定されていれば、フラッシュメモリ４５０のメモリ４５９のライトプロテクトも有効となる。
【０１１９】
ここで、例えば、ユーザがシステム電源を投入すると、ＣＰＵ４２０に電力が供給される。すると、ＣＰＵ４２０は、処理をステップＳ１４０１ａに移行する。そして、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセス、すなわち、読み出し処理を開始する（ステップＳ１４０１ａ）。
【０１２０】
そして、例えば、フラッシュメモリ４５０への書込み処理が必要となった場合、ＣＰＵ４２０は、処理をステップＳ１４０２ａに移行する。この場合、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを停止する（ステップＳ１４０２ａ）。フラッシュメモリ４５０へのアクセスを停止すると、ＣＰＵ４２０は、コントローラ４３０に対して、通信線１０１０を通じて、フラッシュメモリ４５０へのアクセスを停止したことを通知する（ステップＳ１４０３ａ）。
【０１２１】
ＣＰＵ４２０から、フラッシュメモリ４５０へのアクセスを停止したことを通知されると、コントローラ４３０は、バス交換器４４０を操作して、通常アクセスバスから制御系アクセスバスにバスを切り替える（ステップＳ１４０５ｃ）。具体的には、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「１」を出力する。
【０１２２】
すると、バス交換器４４０は、コントローラ４３０の操作にしたがって、通常アクセスバスから制御系アクセスバスにバスを切り替える（ステップＳ１４０３ｄ）。
制御系アクセスバスにバスを切り替えると、コントローラ４３０は、制御系信号バスの信号線／ＦＬＡＳＨ＿ＷＰを通じて、フラッシュメモリ４５０の端子／ＷＰに「１」を出力する（ステップＳ１４０６ｃ）。すると、フラッシュメモリ４５０の端子／ＷＰに入力される信号が確定する（ステップＳ１４０３ｂ）。
【０１２３】
さらに、コントローラ４３０は、制御系アクセスバスを使用して、フラッシュメモリ４５０とデータ通信を行なう。そして、コントローラ４３０は、フラッシュメモリ４５０に対して、コントロールレジスタ４５２の変更を指示する（ステップＳ１４０７ｃ）。具体的には、コントローラ４３０は、コントロールレジスタ４５２のＣＲＷＰビットを「０」に設定するように指示する。また、コントローラ４３０は、コントロールレジスタ４５２のライトプロテクトビットを「０」に設定するように指示することができる。
【０１２４】
コントローラ４３０から指示を受けると、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のＣＲＷＰビットを「０」に設定する（ステップＳ１４０４ｂ）。また、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のライトプロテクトビットを「０」に設定する（ステップＳ１４０４ｂ）。
【０１２５】
以上の処理が終了すると、コントローラ４３０は、バス交換器４４０を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１４０８ｃ）。具体的には、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「０」を出力する。
【０１２６】
すると、バス交換器４４０は、ＣＰＵ４２０の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１４０４ｄ）。
以上の処理が完了すると、フラッシュメモリ４５０のコントロールレジスタ４５２のライトプロテクトが解除される。また、ステップＳ１４０４ｂでライトプロテクトビットが「０」に設定されていれば、フラッシュメモリ４５０のメモリ４５９のライトプロテクトも解除される。
【０１２７】
すると、コントローラ４３０は、ＣＰＵ４２０に対して、通信線１０１０を通じて、ライトプロテクト解除を通知する（ステップＳ１４０９ｃ）。
コントローラ４３０からライトプロテクト解除の通知を受けると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセス、すなわち、書込み処理を開始する（ステップＳ１４０４ａ）。所定のデータのフラッシュメモリ４５０への書込みが完了すると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセスを停止する（ステップＳ１４０５ａ）。そして、ＣＰＵ４２０は、コントローラ４３０に対して、通信線１０１０を通じて、フラッシュメモリ４５０へのアクセス停止を通知する（ステップＳ１４０６ａ）。
【０１２８】
ＣＰＵ４２０から、フラッシュメモリ４５０へのアクセスを停止したことを通知されると、コントローラ４３０は、交換器４４０を操作して、通常アクセスバスから制御系アクセスバスにバスを切り替える（ステップＳ１４１０ｃ）。具体的には、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「１」を出力する。
【０１２９】
すると、バス交換器４４０は、ＣＰＵ４２０の操作にしたがって、通常アクセスバスから制御系アクセスバスにバスを切り替える（ステップＳ１４０５ｄ）。
制御系アクセスバスにバスを切り替えると、コントローラ４３０は、制御系アクセスバスを使用して、フラッシュメモリ４５０とデータ通信を行なう。そして、コントローラ４３０は、フラッシュメモリ４５０に対して、コントロールレジスタ４５２の変更を指示する（ステップＳ１４１１ｃ）。具体的には、コントローラ４３０は、コントロールレジスタ４５２のＣＲＷＰビットを「１」に設定するように指示する。また、コントローラ４３０は、コントロールレジスタ４５２のライトプロテクトビットを「１」に設定するように指示することができる。
【０１３０】
コントローラ４３０から指示を受けると、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のＣＲＷＰビットを「１」に設定する（ステップＳ１４０５ｂ）。また、フラッシュメモリ４５０は、指示にしたがって、コントロールレジスタ４５２のライトプロテクトビットを「１」に設定する（ステップＳ１４０５ｂ）。
【０１３１】
コントロールレジスタ４５２の変更が完了すると、コントローラ４３０は、制御系信号バスの信号線／ＦＬＡＳＨ＿ＷＰを通じて、フラッシュメモリ４５０の端子／ＷＰに「０」を出力する（ステップＳ１４１２ｃ）。すると、フラッシュメモリ４５０の端子／ＷＰに入力される信号が確定する（ステップＳ１４０６ｂ）。
【０１３２】
以上の処理が終了すると、コントローラ４３０は、バス交換器４４０を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１４１３ｃ）。具体的には、コントローラ４３０は、信号線／ＳＷ＿ＢＥを介してバス交換器４４０の端子／ＢＥに「０」を出力し、信号線ＳＷ＿ＢＸを介してバス交換器４４０の端子ＢＸに「０」を出力する。
【０１３３】
すると、バス交換器４４０は、ＣＰＵ４２０の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える（ステップＳ１４０６ｄ）。
以上の処理が完了すると、フラッシュメモリ４５０のコントロールレジスタ４５２のライトプロテクトが有効となる。また、ステップＳ１４０５ｂでライトプロテクトビットが「１」に設定されていれば、フラッシュメモリ４５０のメモリ４５９のライトプロテクトも有効となる。
【０１３４】
すると、コントローラ４３０は、ＣＰＵ４２０に対して、通信線１０１０を通じて、ライトプロテクトの設定完了を通知する（ステップＳ１４１４ｃ）。
コントローラ４３０からライトプロテクトの設定完了の通知を受けると、ＣＰＵ４２０は、フラッシュメモリ４５０へのアクセス、すなわち、読み込み処理を開始する（ステップＳ１４０７ａ）。また、ＣＰＵ４２０は、フラッシュメモリ４５０への書込み処理が必要となった場合、処理をステップＳ１４０２ａに移行する。
【０１３５】
以上に説明したように、システムボード１０００は、ＣＰＵ４２０が、通信線１０１０を介してコントローラ４３０に指示することで、フラッシュメモリ４５０のライトプロテクト状態の設定・解除を、ＣＰＵ４２０が必要なタイミングで実行することが可能となる。
【０１３６】
以上の説明において、コントローラ４３０は、制御装置の一例として挙げられる。フラッシュメモリ４５０は、記憶装置の一例として挙げられる。信号線／ＦＬＡＳＨ＿ＷＰは、制御装置と記憶装置と接続する信号線の一例として挙げられる。ＣＰＵ４２０は、演算装置の一例として挙げられる。
【０１３７】
第１の設定手段、第２の設定手段および切り替え手段は、コントローラ４３０に所定のプログラムを実行させることによって実現することができる。例えば、図８に示したステップＳ８０３の処理などは、第１の設定手段による処理の一例として挙げられる。また、例えば、図８に示したステップＳ８０２の処理などは、第２の設定手段による処理の一例として挙げられる。また、例えば、図８に示したステップＳ８０１やＳ８０４の処理などは、切り替え手段による処理の一例として挙げられる。
【０１３８】
制御系アクセスバスは、制御装置と記憶装置とを通信可能に接続する第１の伝送路の一例として挙げられる。また、通常アクセスバスは、演算装置と記憶装置モリとを通信可能に接続する第２の伝送路の一例として挙げられる。
【０１３９】
以上に説明したように、コントローラ４３０は、フラッシュメモリ４５０と接続するＣＰＵ４２０などで発生するノイズの影響を受けることなく、フラッシュメモリ４５０の状態、例えば、ライトプロテクトの設定・解除などを制御することできる。
【０１４０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
データを記憶する記憶装置を制御する制御装置において、
前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する第１の設定手段と、
前記制御装置に接続される第１の伝送路を介して、前記記憶装置の状態を設定する第２の設定手段と、
前記第１の伝送路を介して前記制御装置に接続されると共に、第２の伝送路を介して演算装置と接続され、前記第１の伝送路と前記第２の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する切り替え手段と、
を備える制御装置。
（付記２）
前記切替手段によって前記第２の伝送路に切り替えられると、前記信号線は、前記演算装置と電気的に独立した状態で、特定のレベルの電位に固定される、
ことを特徴とする付記１に記載の制御装置。
（付記３）
前記制御装置は、前記演算装置と前記制御装置とを通信可能に接続する通信線を介して、前記演算装置から指示を受けると、前記第２の伝送路を前記第１の伝送路に切り替え、
前記指示にしたがって前記記憶装置を特定の状態に設定した後、前記第１の伝送路を前記第２の伝送路に切り替える、
ことを特徴とする付記１に記載の制御装置。
（付記４）
前記第１の設定手段は、前記信号線を介して、前記記憶装置に特定の信号を出力し、前記記憶装置を特定の状態に保持する、
ことを特徴とする付記１に記載の制御装置。
（付記５）
前記第２の設定手段は、前記第１の伝送路を介して、前記記憶装置の状態を決定するレジスタに特定のデータを書き込み、前記記憶装置を特定の状態に設定する、
ことを特徴とする付記１に記載の制御装置。
（付記６）
前記記憶装置は、前記第１の設定手段と前記第２の設定手段との設定によって、その状態が決定される記憶装置である、
ことを特徴とする付記１に記載の制御装置。
【符号の説明】
【０１４１】
４００      情報処理装置
４１０      システムボード
４２０      ＣＰＵ
４２１      ＳＰＩマスタ
４３０      コントローラ
４３１      ＳＰＩマスタ
４４０      バス交換器
４５０      フラッシュメモリ
４５１      ＳＰＩスレーブ
４５２      コントロールレジスタ
【図１】
2012190195.tif 000003
【図２】
2012190195.tif 000004
【図３】
2012190195.tif 000005
【図４】
2012190195.tif 000006
【図５】
2012190195.tif 000007
【図８】
2012190195.tif 000008
【図１０】
2012190195.tif 000009
【図１２】
2012190195.tif 000010
【図１３】
2012190195.tif 000011
【図１４】
2012190195.tif 000012
【図６】
2012190195.tif 000013
【図７】
2012190195.tif 000014
【図９】
2012190195.tif 000015
【図１１】
2012190195.tif 000016