制御装置
【課題】記憶装置と接続する情報処理装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御する。
【解決手段】記憶装置450と接続する信号線を介して、記憶装置450の状態を設定する第1の設定手段と、制御装置430に接続される第1の伝送路を介して、記憶装置450の状態を設定する第2の設定手段と、第1の伝送路を介して制御装置に接続されると共に、第2の伝送路を介して演算装置420と接続され、第1の伝送路と第2の伝送路とを切り替えて、制御装置430あるいは演算装置420の一方を、記憶装置450と通信可能に接続する切り替え手段440と、を備える。
【解決手段】記憶装置450と接続する信号線を介して、記憶装置450の状態を設定する第1の設定手段と、制御装置430に接続される第1の伝送路を介して、記憶装置450の状態を設定する第2の設定手段と、第1の伝送路を介して制御装置に接続されると共に、第2の伝送路を介して演算装置420と接続され、第1の伝送路と第2の伝送路とを切り替えて、制御装置430あるいは演算装置420の一方を、記憶装置450と通信可能に接続する切り替え手段440と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶装置を制御する制御装置に関する。
【背景技術】
【0002】
従来、情報処理装置は、周辺機器などを制御してOS(Operating System)に周辺機器への入出力処理を提供するプログラム群、例えば、BIOS(Basic Input/Output System)などを記憶するために、フラッシュメモリなどの不揮発性メモリを備える。
【0003】
図1は、フラッシュメモリを備える情報処理装置100の構成例を示す図である。図1に示す情報処理装置100は、CPU(Central Processing Unit)110と、コントローラ120と、バス交換器130と、フラッシュメモリ140と、を備えている。
【0004】
CPU110およびコントローラ120は、バス交換器130を介してフラッシュメモリ140と接続する。バス交換器130は、CPU110−フラッシュメモリ140間を接続する通常使用系統と、コントローラ120−フラッシュメモリ140間を接続する制御系統と、を切り替えることができる。
【0005】
また、フラッシュメモリ140は、フラッシュメモリ140を制御するためのインターフェースとして、コントロールレジスタ141を備える。コントローラ120は、コントロールレジスタ141を操作することで、フラッシュメモリ140のライトプロテクトや、コントロールレジスタ141のライトプロテクトなどを操作することができる。
【0006】
例えば、フラッシュメモリ140のライトプロテクトを設定しようとする場合、コントローラ120は、バス交換器130に対して所定の操作を行なって、通常使用系統から制御系統に切り替える。そして、コントローラ120は、フラッシュメモリ140に備えられたコントロールレジスタ141のライトプロテクトビットに1を設定する。これにより、フラッシュメモリ140への書込みがプロテクトされる。
【0007】
また、コントロールレジスタ141のCRWP(Control Register Write Protect)ビットに「1」を設定し、端子/WP(Write Protect)に信号「0」を出力すると、コントロールレジスタ141への書込みがプロテクトされる。コントロールレジスタ141またはCPU110は、制御系統に含まれる信号線、または通常使用系統に含まれる信号線を利用して、フラッシュメモリ140の端子/WPに信号を出力する。
【0008】
フラッシュメモリ140への設定が終了すると、コントローラ120からバス交換器130に対して所定の操作を行なって、制御系統から通常使用系統に切り替えてから、CPU110の駆動電源であるシステム電源を投入する。すると、CPU110はフラッシュメモリ140からBIOS等を読み出して実行する。その後、周辺機器との入出力処理が可能になると、CPU110は、記憶装置からOS等を読み出して実行する。
【0009】
図2は、フラッシュメモリ140の端子/WPに入力される信号と、コントロールレジスタ141のCRWPビットの設定と、の組み合わせによるコントロールレジスタ141の状態の遷移を示す図である。図2に示すように、端子/WPへの信号が「0」、かつ、コントロールレジスタ141のCRWPビットが「1」に設定されている場合にだけ、コントロールレジスタ141はライトプロテクト状態となる。
【0010】
上記技術に関連して、ユーザがデータをフラッシュメモリ4に書き込むことのできる第1の位置と、データがフラッシュメモリ4に書き込まれることを阻止する第2の位置との間で可動である手動スイッチを備えるフラッシュメモリについて知られている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特表2003−524842号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
図1に示した情報処理装置100において、例えば、CPU110に電源を投入すると、CPU110などからノイズが発生する場合がある。この場合、ノイズは、バス交換器130を介してフラッシュメモリ140へと伝搬する。
【0013】
このノイズにより、端子/WPへの信号が「0」から「1」に切り替わると、図3に示すように、コントロールレジスタ141のライトプロテクトが解除される。この場合、ノイズのパターンによっては、コントロールレジスタ141のデータが書き換わり、フラッシュメモリ140のライトプロテクトも解除されてしまう。この状態でノイズがフラッシュメモリ140に流れ続けると、フラッシュメモリ140に記憶しているデータの破壊や、フラッシュメモリ140の誤作動を誘発することになる。
【0014】
本制御装置は、1つの側面では、記憶装置と接続する演算装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御することを目的とする。
【課題を解決するための手段】
【0015】
本制御装置の1つの観点によれば、本制御装置は、データを記憶する記憶装置を制御する。そして、本制御装置は、以下の構成要素を備える。
第1の設定手段は、前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する。
【0016】
第2の設定手段は、前記制御装置に接続される第1の伝送路を介して、前記記憶装置の状態を設定する。
切り替え手段は、前記第1の伝送路を介して前記制御装置に接続されると共に、第2の伝送路を介して演算装置と接続され、前記第1の伝送路と前記第2の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する。
【発明の効果】
【0017】
本制御装置は、1つの態様では、記憶装置と接続する演算装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御することができる。
【図面の簡単な説明】
【0018】
【図1】フラッシュメモリを備える情報処理装置100の構成例を示す図である。
【図2】フラッシュメモリ140の端子/WPに入力される信号と、コントロールレジスタ141のCRWPビットの設定と、の組み合わせによるコントロールレジスタ141の状態の遷移を示す図である。
【図3】ノイズが発生した場合のコントローラ141の状態を説明する図である。
【図4】本実施例に係る情報処理装置400に搭載するシステムボード410の構成例を示す図である。
【図5】本実施例で使用するSPIマスタとSPIスレーブを説明する図である。
【図6】図4に示したシステムボード410の主要部の具体例を示す図である。
【図7】本実施例で使用するテーブル700の具体例を示す図である。
【図8】本実施例に係るコントローラ430の処理の一例を示すフローチャートである。
【図9】図6に示したシステムボード410の変形例を示す図である。
【図10】図4に示したシステムボード410のその他の変形例を示す図である。
【図11】図10に示したシステムボード1000の主要部の具体例を示す図である。
【図12】図11に示したシステムボード1000の処理の一例を示すフローチャートである。
【図13】図12に示した処理におけるCPU420およびコントローラ430の具体的な処理を説明するフローチャートである。
【図14】図13に示した処理における装置間の関係を示す図である。
【発明を実施するための形態】
【0019】
以下、本実施形態の一例について、図4〜図14に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、種々変形して実施することができる。
【実施例】
【0020】
図4は、本実施例に係る情報処理装置400に搭載するシステムボード410の構成例を示す図である。
システムボード410は、CPU420と、コントローラ430と、バス交換器440と、フラッシュメモリ450と、メモリ460と、を備える。
【0021】
CPU420は、フラッシュメモリ450や外部記憶装置470などから読み出したプログラムの命令にしたがって、所定の演算などを実行する演算装置である。CPU420は、SPI(Serial Peripheral Interface)を利用してフラッシュメモリ450とデータ通信を行なうため使用するSPIマスタ421を備える。なお、図4では記載を省略しているが、SPIマスタ421はSPIバス422と接続している。
【0022】
コントローラ430は、所定のプログラムの命令にしたがって、バス交換器440、フラッシュメモリ450を操作する演算装置である。コントローラ430は、SPIを利用してフラッシュメモリ450とデータ通信を行なうため使用するSPIマスタ431を備える。なお、図4では記載を省略しているが、SPIマスタ431はSPIバス432と接続している。
また、コントローラ430は、フラッシュメモリ450の端子/WPと、/WP制御線で直接接続している。
【0023】
バス交換器440は、SPIバス422を介してCPU420と接続している。また、バス交換器440は、SPIバス432を介してコントローラ430と接続している。また、バス交換器440は、SPIバス453を介してフラッシュメモリ450と接続している。
【0024】
バス交換器440は、CPU420とフラッシュメモリ450とを接続する通常使用系統と、コントローラ430とフラッシュメモリ450とを接続する制御系統と、をコントローラ430の指示によって切り替える。
【0025】
フラッシュメモリ450は、データを記憶する不揮発性メモリを含む記憶装置である。フラッシュメモリ450は、例えば、BIOSなどのデータを記憶することができる。そして、フラッシュメモリ450は、SPIを利用してCPU420やコントローラ430とデータ通信を行なうため使用するSPIスレーブ451を備える。なお、図4では記載を省略しているが、SPIスレーブ451はSPIバス453と接続している。
【0026】
また、フラッシュメモリ450は、フラッシュメモリ450を外部から制御するためのインターフェースとして、端子/WPと、コントロールレジスタ452と、を備える。図4に示すように、コントロールレジスタ452には、CRWPビットと、ライトプロテクトビットと、が含まれる。
【0027】
コントローラ430は、端子/WPへの信号と、コントロールレジスタ452の設定によって、フラッシュメモリ450の状態を制御することができる。例えば、図2に示した、端子/WPへの信号とコントロールレジスタ452の設定との組み合わせにしたがって、フラッシュメモリ450は状態を遷移する。
【0028】
CRWPビットは、コントロールレジスタ452への書込みをプロテクトするためのビットである。CRWPビットが「1」に設定され、端子/WPへの信号が「0」の場合、フラッシュメモリ450は、コントロールレジスタ452への書込みをプロテクトする。
【0029】
ライトプロテクトビットは、フラッシュメモリ450へのデータの書込みをプロテクトするためのビットである。ライトプロテクトビットに「1」が設定されている場合、フラッシュメモリ450は、フラッシュメモリ450へのデータの書込みをプロテクトする。
【0030】
コントローラ430は、フラッシュメモリ450へのBIOSなどのデータの書込みやアップデートなどの処理を実行する。
また、コントローラ430は、情報処理装置400の主電源投入と同時に起動するので、このタイミングで、フラッシュメモリ450へのデータの書込み、コントロールレジスタ452への書込みをプロテクト状態に設定することができる。
【0031】
フラッシュメモリ450へのデータの書込み、コントロールレジスタ452への書込みをプロテクト状態に設定後、コントローラ430は、制御系アクセスバスを通常アクセスバスに切り替えることができる。この場合、フラッシュメモリ450を、CPU420に対して読み出し専用とすることができる。
【0032】
図5は、本実施例で使用するSPIマスタとSPIスレーブを説明する図である。
SPIマスタ510とSPIスレーブ520とは、SPIバス530を介して接続する。
【0033】
SPIマスタ510は、端子SCLK、MOSI、MOSOおよびSSを備える。端子SCLKは、SPIスレーブ520にクロック信号を送信するための信号線を接続する端子である。端子MOSIは、SPIスレーブ520にデータを送信するための信号線を接続する端子である。端子MISOは、SPIスレーブ520からデータを受信するための信号線を接続する端子である。端子SSは、SPIスレーブ520を選択するための信号線を接続する端子である。
【0034】
SPIスレーブ520も、端子SCLK、MOSI、MOSOおよびSSを備える。端子SCLKは、SPIマスタ510からクロック信号を受信するための信号線を接続する端子である。端子MOSIは、SPIマスタ510からデータを受信するための信号線を接続する端子である。端子MISOは、SPIマスタ510にデータを送信するための信号線を接続する端子である。端子SSは、SPIマスタ510がSPIスレーブ520を選択するための信号線を接続する端子である。
【0035】
なお、図5に示したSPIデバイス、すなわち、SPIマスタ510とSPIスレーブ520によるデータ通信は、公知の技術であるので、詳細な説明は省略する。
【0036】
図6は、図4に示したシステムボード410の主要部の具体例を示す図である。
CPU420に備わるSPIマスタ421は、信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INを介して、バス交換器440と接続している。CPU420は、SPIマスタ421を操作することにより、SPIを利用した通信を行なう。
【0037】
なお、図6では、主要部の接続関係の理解優先のため省略しているが、接続信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INは、それぞれSPIマスタ421の端子MOSI、SCLK、SSおよびMISOと接続する。
【0038】
CPU420は、システム電源により駆動する。システム電源のCPU420への投入は、情報処理装置400の主電源と接続するスイッチSWをOFFからONに切り替えることにより行なうことができる。
【0039】
コントローラ430に備わるSPIマスタ431は、信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INを介して、バス交換器440と接続している。
【0040】
また、コントローラ430は、信号線/SW_BEおよびSW_BXを介して、バス交換器440と接続している。信号線/SW_BEおよびSW_BXは、それぞれバス交換器440の端子/BEおよびBXと接続している。コントローラ430は、後述するように、端子/BEおよびBXに出力する信号により、バス交換器440を操作することができる。
【0041】
また、コントローラ430は、信号線/FLASH_WPを介して、フラッシュメモリ450と接続している。信号線/FLASH_WPは、フラッシュメモリ450の端子/WPと接続している。コントローラ430は、フラッシュメモリ450の端子/WPに出力する信号と、コントロールレジスタ452への設定により、フラッシュメモリ450の状態、例えば、コントロールレジスタ452やメモリ459のライトプロテクトの設定・解除、を操作することができる。
【0042】
なお、図6では、主要部の接続関係の理解優先のため省略しているが、接続信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INは、それぞれSPIマスタ431の端子MOSI、SCLK、SSおよびMISOと接続する。
【0043】
コントローラ430は、情報処理装置400の主電源により駆動する。したがって、例えば、情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ432から所定のプログラムを読み出す。そして、コントローラ430は、読み出したプログラムの命令にしたがって、処理を開始する。フラッシュメモリ432、バス交換器440およびフラッシュメモリ450も、コントローラ430と同様に、情報処理装置400の主電源により駆動する。
【0044】
バス交換器440は、端子1A1、2A1、3A1、4A1および5A1を備える。端子1A1、2A1、3A1および5A1は、それぞれ、CPU420に備わるSPIマスタ421からの信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INと接続している。
【0045】
また、バス交換器440は、端子1A2、2A2、3A2、4A2および5A2を備える。端子1A2、2A2、3A2、4A2および5A2は、それぞれ、コントローラ430に備わるSPIマスタ431からの信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INと接続している。
【0046】
また、バス交換器440は、端子1B1、2B1、3B1、4B1および5B1と、端子1B2、2B2、3B2、4B2および5B2と、を備える。端子1B1、2B1、3B1および5B1は、それぞれ、フラッシュメモリ450に備わる端子D、C、/SおよびQと接続している。端子1B2、2B2、3B2、4B2および5B2は、本実施例では使用しないので、説明を省略する。
【0047】
バス交換器440は、端子1A1−5A1と端子1B1−5B1、すなわち、端子1A1と1B1、端子2A1と2B1、端子3A1と3B1、端子4A1と4B1および端子5A1と5B1、を接続することができる。また、バス交換器440は、端子1A1−5A1と端子1B2−5B2、すなわち、端子1A1と1B2、端子2A1と2B2、端子3A1と3B2、端子4A1と4B2および端子5A1と5B2、を接続することができる。
【0048】
そして、バス交換器440は、端子1A1−5A1と端子1B1−5B1の接続と、端子1A1−5A1と端子1B2−5B2の接続と、を、端子/BEおよびBXへの入力信号に応じて切り替える。
【0049】
同様に、バス交換器440は、端子1A2−5A2と端子1B1−5B1、すなわち、端子1A2と1B1、端子2A2と2B1、端子3A2と3B1、端子4A2と4B1および端子5A2と5B1、を接続することができる。また、バス交換器440は、端子1A2−5A2と端子1B2−5B2、すなわち、端子1A2と1B2、端子2A2と2B2、端子3A2と3B2、端子4A2と4B2および端子5A2と5B2、を接続することができる。
【0050】
そして、バス交換器440は、端子1A2−5A2と端子1B1−5B1の接続と、端子1A2−5A2と端子1B2−5B2の接続と、を、端子/BEおよびBXへの入力信号に応じて切り替える。
【0051】
バス交換器440は、図7に示すテーブル700にしたがって、端子間の接続を切り替える。
例えば、端子/BEおよびBXに「0」が入力されると、バス交換器440は、端子1A1−5A1と端子1B1−5B1を接続し、端子1A2−5A2と端子1B2−5B2を接続する。
【0052】
また、端子/BEに「0」が入力され、端子BXに「1」が入力されると、バス交換器440は、端子1A1−5A1と端子1B2−5B2を接続し、端子1A2−5A2と端子1B1−5B1を接続する。
【0053】
フラッシュメモリ450は、端子D、C、/S、/WPおよびQを備える。端子D、C、/SおよびQは、それぞれバス交換器440の端子1B1、2B1、3B1および5B1と接続する。また、端子/WPは、コントローラ430からの信号線FLASH_WPと接続する。
【0054】
なお、図6では、主要部の接続関係の理解優先のために省略しているが、端子D、C、/SおよびQは、それぞれSPIスレーブ451の端子MOSI、SCLK、SSおよびMISOと接続する。
【0055】
また、フラッシュメモリ450は、SPIスレーブ451およびコントロールレジスタ452に加えて、制御部453と、シフトレジスタ454と、データバッファ455と、アドレスレジスタ456と、デコーダ457および458と、メモリ459と、を備える。
【0056】
制御部453は、SPIスレーブ451を利用して、他の装置、例えばCPU420やコントローラ430とデータ通信を行なう。そして、制御部453は、受信したデータのメモリ459への書込み処理や、メモリ459からのデータの読み出し処理などを行なう。また、制御部453は、コントロールレジスタ452への書込み処理や読み込み処理も行なう。
【0057】
制御部453は、端子/WPへの入力信号が「0」、かつ、コントロールレジスタ452のCRWPビットが「1」の場合、コントロールレジスタ452への書込みをプロテクトする。
【0058】
シフトレジスタ454は、シリアルデータを所定のビット長のパラレルデータに変換し、所定のビット長のパラレルデータをシリアルデータに変換する。例えば、SPIスレーブ451から入力されたシリアルデータは、シフトレジスタ454で所定のビット長のパラレルデータに変換される。
【0059】
データバッファ455は、メモリ459へ書き込むデータ、または、メモリ459から読み出したデータ、を一時的に記憶する記憶装置である。
アドレスレジスタ456は、メモリ459へ書き込むデータのアドレス、または、メモリ459から読み出すデータのアドレス、を示すアドレスデータを一時的に記憶する記憶装置である。
【0060】
デコーダ457は、アドレスレジスタ456に記憶されたアドレスデータをデコードして、例えば、上位アドレスを抽出する。また、デコーダ458は、アドレスレジスタ456に記憶されたアドレスデータをデコードして、例えば、下位アドレスを抽出する。これら上位アドレスと下位アドレスとによって、メモリ459上のデータのアドレスを選択することができる。
【0061】
メモリ459は、不揮発性メモリである。
以上の構成において、制御部453は、制御部453は、SPIスレーブ451からデータを受信すると、シフトレジスタ454により、所定のビット長のデータに変換する。変換したデータに、コントロールレジスタ452への書込み命令が含まれる場合、制御部453は、端子/WPおよびコントロールレジスタ452のCRWPビットを参照する。端子/WPが「0」かつコントロールレジスタ452のCRWPビットが「1」の場合、制御部453は、コントロールレジスタ452への書込み処理を抑止する。
【0062】
また、端子/WPが「1」またはコントロールレジスタ452のCRWPビットが「0」の場合、制御部453は、変換したデータをコントロールレジスタ452に書き込む処理を行なう。この場合、制御部453は、コントロールレジスタ452の特定のビットだけを変更することもできる。
【0063】
また、シフトレジスタ454で変換したデータに、コントロールレジスタ452の読み出し命令が含まれる場合、制御部453は、コントロールレジスタ452に格納されているデータを、シフトレジスタ454によってシリアルデータに変換する。そして、制御部453は、SPIスレーブ451を介して、コントロールレジスタ452のデータを出力する。
【0064】
また、シフトレジスタ454で変換したデータに、メモリ459への書込み命令が含まれる場合、制御部453は、コントロールレジスタ452のライトプロテクトビットを参照する。そして、ライトプロテクトビットが「1」の場合、制御部453は、メモリ459への書込み処理を抑止する。
【0065】
また、コントロールレジスタ452のライトプロテクトビットが「0」の場合、制御部453は、変換したデータに含まれるアドレスデータをアドレスレジスタ456に格納する。また、制御部453は、変換したデータに含まれるデータ部をデータバッファ455に格納する。そして、デコーダ457および458によってデコードされた上位アドレスと下位アドレスとによって特定されるアドレスに、データバッファ455に格納したデータを記憶する。
【0066】
また、シフトレジスタ454で変換したデータに、メモリ459からの読み出し命令が含まれる場合、制御部453は、変換したデータに含まれるアドレスデータをアドレスレジスタ456に格納する。そして、デコーダ457および458によってデコードされた上位アドレスと下位アドレスとによって特定されるアドレスに格納されているデータを、データバッファ455に格納する。制御部453は、データバッファ455に格納したデータを、シフトレジスタ454によってシリアルデータに変換する。そして、制御部453は、SPIスレーブ451を介して、データを出力する。
【0067】
以下では、CPU420−フラッシュメモリ450間を接続する通信線であって、SPIを使用した通信に使用する通信線を、「通常アクセスバス」という。また、コントローラ430−フラッシュメモリ450間を接続する通信線のうち、SPIを使用した通信に使用する通信線を、「制御系アクセスバス」という。そして、コントローラ430−フラッシュメモリ450間を接続する通信線のうち、バス交換器440の端子/BEおよびBXと接続する信号線と、フラッシュメモリ450の端子/WPと接続する信号線と、を含む信号線を、「制御系信号バス」という。
【0068】
図8は、本実施例に係るコントローラ430の処理の一例を示すフローチャートである。
情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ432から読み出したプログラムの命令にしたがって、以下の処理を開始する(ステップS800)。
【0069】
ステップS801において、コントローラ430は、制御系アクセスバスへの切り替えを行なう。この場合、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力することにより、制御系アクセスバスへの切り替え処理を行なうことができる。
【0070】
ステップS802において、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452のCRWPビットを「1」に設定するように指示する。すると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットに「1」を書き込む処理を行なう。
【0071】
ステップS803において、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する。なお、制御系信号バスの信号線を通じて出力される信号は、主電源が投入されている間、常時その値が保持される。
【0072】
ステップS802およびS803の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが有効となる。
ステップS804において、コントローラ430は、制御系アクセスバスから通常アクセスバスへの切り替えを行なう。この場合、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力することにより、通常アクセスバスへの切り替え処理を行なうことができる。
【0073】
以上の処理が終了すると、CPU420は、フラッシュメモリ450からデータの読み出しが可能な状態となる。同時に、CPU420から、フラッシュメモリ450のコントロールレジスタ452の変更が抑止される。例えば、ステップS802において、コントロールレジスタ452のライトプロテクトビットも「1」に設定しておけば、フラッシュメモリ450を、CPU420からデータの読み出しだけが可能な状態にすることができる。
【0074】
以上の処理が終了した状態で、システム電源を投入してCPU420を起動する際、システム電源の投入等によりCPU420内等にノイズが発生する場合が考えられる。しかし、フラッシュメモリ450の端子/WPは、CPU420ではなくコントローラ430と接続しているので、CPU420内等で発生したノイズの影響を受けることはない。
【0075】
その結果、CPU420が通常アクセスバスを介してフラッシュメモリ450と接続した状態で、CPU420内等でノイズが発生しても、フラッシュメモリ450のコントロールレジスタ452やメモリ459のデータを意図せず書き換えることを防止する。
【0076】
以上のように、コントローラ430は、CPU420内等で発生するノイズの影響を受けることなく、フラッシュメモリ450のライトプロテクト状態を制御することが可能となる。このライトプロテクトには、フラッシュメモリ450のCRWPビットに対するライトプロテクトと、フラッシュメモリ450のメモリ459に対するライトプロテクトと、を含むことができる。
【0077】
(変形例)
図9は、図6に示したシステムボード410の変形例を示す図である。
コントローラ430は、信号線/FLASH_WPを介して、バス交換器440の端子4A2と接続している。
バス交換器440の端子4A1は、グランドされている。したがって、端子4A1には、常に「0」が入力される。また、バス交換器440の端子4B1は、フラッシュメモリ450の端子/WPと接続している。
【0078】
以上の構成では、例えば、コントローラ430がバス交換器440の端子/BEおよびBXに「0」を出力すると、バス交換器440は、端子1A1−5A1と端子1B1−5B1を接続する。この場合、CPU420は、通常アクセスバスを介して、フラッシュメモリ450と接続する。
【0079】
しかし、バス交換器440の端子4A1はグランドされているので、端子4A1と接続する端子4B1から、フラッシュメモリ450の端子/WPには、常に「0」が出力される。
【0080】
この状態で、システム電源を投入してCPU420を起動する際、システム電源の投入等によりCPU420内等にノイズが発生する場合が考えられる。しかし、フラッシュメモリ450の端子/WPは、CPU420と接続されることなくグランドされているので、CPU420内等で発生したノイズの影響を受けることはない。
【0081】
その結果、CPU420が通常アクセスバスを介してフラッシュメモリ450と接続した状態で、CPU420内等でノイズが発生しても、フラッシュメモリ450のコントロールレジスタ452やメモリ459のデータを意図せず書き換えることを防止する。
【0082】
したがって、コントローラ430は、CPU420内等で発生するノイズの影響を受けない、フラッシュメモリ450のライトプロテクトを実現することが可能となる。
【0083】
(その他の変形例)
図10は、図4に示したシステムボード410の変形例を示す図である。
図10に示すシステムボード1000に含まれるCPU420とコントローラ430は、専用線等を介して、互いに通信可能に接続する。その他の構成は、図4で説明したので省略する。
【0084】
図11は、図10に示したシステムボード1000の主要部の具体例を示す図である。
CPU420とコントローラ430とは、互いに専用の通信線1010で接続している。この通信線1010を介して、CPU420とコントローラ430は、互いに通信を行なう。
【0085】
コントローラ430は、信号線/FLASH_WPを介して、バス交換器440の端子4A1および端子4A2と接続している。また、バス交換器440の端子4B1は、フラッシュメモリ450の端子/WPと接続している。
【0086】
コントローラ430の信号線/FLASH_WPは、バス交換器440の端子4A1および4A2と接続している。したがって、バス交換器440が通常アクセスバスに切り替えられても、または、制御系アクセスバスに切り替えられても、コントローラ430は、信号線/FLASH_WPを介して、フラッシュメモリ450の端子/WPと常に接続している。結果として、図6に示したように、コントローラ430とフラッシュメモリ450の端子/WPとを直接接続した構成と等価となる。
【0087】
このように、フラッシュメモリ450の端子/WPは、CPU420ではなくコントローラ430と常時接続しているので、CPU420内等で発生したノイズの影響を受けることはない。
【0088】
その結果、CPU420が通常アクセスバスを介してフラッシュメモリ450と接続した状態で、CPU420内等でノイズが発生しても、フラッシュメモリ450のコントロールレジスタ452やメモリ459のデータを意図せず書き換えることを防止する。
【0089】
したがって、コントローラ430は、CPU420内等で発生するノイズの影響を受けることなく、フラッシュメモリ450のライトプロテクト状態を制御することが可能となる。
【0090】
図12は、図11に示したシステムボード1000の処理の一例を示すフローチャートである。
情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ450を、ライトプロテクト状態に設定する(ステップS1201b)。なお、この処理は、図8に示した処理と同様なので、詳細な説明は省略する。
【0091】
ここで、例えば、ユーザがシステム電源を投入すると、CPU420に電力が供給される。すると、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1201a)。例えば、CPU420は、フラッシュメモリ450からBIOSなどのデータを読み出して実行する。そして、CPU420は、プログラムの命令にしたがって、周辺機器の初期化などを行なう。
【0092】
そして、例えば、フラッシュメモリ450への書込み処理が必要となった場合、CPU420は、処理をステップS1202aに移行する。そして、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1202a)。
【0093】
ステップS1203aにおいて、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する。この通知には、フラッシュメモリ450のライトプロテクトを解除する旨の要求を含むことができる。
【0094】
一方、CPU420から、フラッシュメモリ450へのアクセス停止の通知を受信すると、コントローラ430は、フラッシュメモリ450のライトプロテクトを解除する(ステップS1202b)。そして、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクト解除を通知する(ステップS1203b)。
【0095】
コントローラ430から、フラッシュメモリ450のライトプロテクト解除の通知を受けると、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1204a)。所定のデータのフラッシュメモリ450への書込みが完了すると、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1205a)。そして、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する(ステップS1206a)。この通知には、フラッシュメモリ450のライトプロテクトを設定する旨の要求を含むことができる。
【0096】
一方、CPU420から、フラッシュメモリ450へのアクセス停止の通知を受信すると、コントローラ430は、フラッシュメモリ450のライトプロテクトを設定する(ステップS1204b)。そして、コントローラ430は、CPU420に対して、通信線1010を通じて、フラッシュメモリ450のライトプロテクト設定完了を通知する(ステップS1203b)。
【0097】
コントローラ430から、フラッシュメモリ450のライトプロテクト設定完了の通知を受けると、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1207a)。
【0098】
図13は、図12に示した処理におけるCPU420およびコントローラ430の具体的な処理を説明するフローチャートである。
情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ432から読み出したプログラムの命令にしたがって、ステップS1301〜S1304の処理を行なう。ステップS1301〜S1304の処理は、図12に示したS1201bの処理に対応する。なお、このステップS1301〜S1304の処理の説明は、図8で説明したので省略する。
【0099】
ここで、例えば、ユーザがシステム電源を投入すると、CPU420に電力が供給される。すると、CPU420は、処理をステップS1305に移行する。そして、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1305)。フラッシュメモリ450へのアクセスを開始すると、CPU420は、例えば、フラッシュメモリ450からBIOSなどのデータを読み出して実行する。そして、CPU420は、プログラムの命令にしたがって、周辺機器の初期化などを行なう。
【0100】
そして、例えば、フラッシュメモリ450への書込み処理が必要となった場合、CPU420は、処理をステップS1306に移行する。この場合、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1306)。フラッシュメモリ450へのアクセスを停止すると、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセスを停止したことを通知する(ステップS1307)。
【0101】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1308)。コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力することにより、通常アクセスバスから制御系アクセスバスにバスを切り替える。
【0102】
制御系アクセスバスにバスを切り替えると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「1」を出力する(ステップS1309)。
【0103】
さらに、コントローラ430は、フラッシュメモリ450に備わるコントロールレジスタ452のCRWPビットを「0」に設定する(ステップS1310)。具体的には、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452のCRWPビットを「0」に設定するように指示する。すると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットに「0」を書き込む処理を行なう。
【0104】
以上の処理が終了すると、コントローラ430は、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1311)。コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力することにより、制御系アクセスバスから通常アクセスバスにバスを切り替える。
【0105】
上述したステップS1308〜S1311の処理が、図12に示したステップS1202bの処理に対応する。この処理によって、フラッシュメモリ450のライトプロテクトが解除される。
【0106】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクト解除を通知する(ステップS1312)。
コントローラ430からライトプロテクト解除の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、書込み処理を開始する(ステップS1313)。所定のデータのフラッシュメモリ450への書込みが完了すると、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1314)。そして、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する(ステップS1315)。
【0107】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1316)。
【0108】
制御系アクセスバスにバスを切り替えると、コントローラ430は、フラッシュメモリ450に備わるコントロールレジスタ452のCRWPビットを「1」に設定する(ステップS1317)。さらに、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する(ステップS1318)。以上の処理が終了すると、コントローラ430は、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1319)。
【0109】
上述したステップS1316〜S1319の処理が、図12に示したステップS1205bの処理に対応する。この処理によって、フラッシュメモリ450にライトプロテクトが設定される。
【0110】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクトの設定完了を通知する(ステップS1320)。
コントローラ430からライトプロテクトの設定完了の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、読み込み処理を開始する(ステップS1321)。また、CPU420は、フラッシュメモリ450への書込み処理が必要となった場合、処理をステップS1306に移行する。
【0111】
図14は、図13に示した処理における装置間の関係を示す図である。
情報処理装置400に主電源が投入されると、コントローラ430は、バス交換器440を操作して、制御系アクセスバスへの切り替えを行なう(ステップS1401c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力する。
【0112】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスにバスを切り替える(ステップS1401d)。
コントローラ430は、ステップS1401cの処理後、一定時間経過すると、処理をステップS1402cに移行する。これは、バス交換器440等のハードウェア等の制約に起因する、バス切り替え完了までの時間を確保するためである。
【0113】
ステップS1402cにおいて、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452の変更を指示する(ステップS1402c)。具体的には、コントローラ430は、コントロールレジスタ452のCRWPビットを「1」に設定するように指示する。また、コントローラ430は、コントロールレジスタ452のライトプロテクトビットを「1」に設定するように指示することができる。
【0114】
コントローラ430から指示を受けると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットを「1」に設定する(ステップS1401b)。また、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のライトプロテクトビットを「1」に設定する(ステップS1401b)。
【0115】
コントロールレジスタ452の変更が完了すると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する(ステップS1403c)。すると、フラッシュメモリ450の端子/WPに入力される信号が確定する(ステップS1402b)。
【0116】
コントローラ430は、ステップS1403cの処理後、一定時間経過すると、処理をステップS1404cに移行する。これは、端子/WPに出力される信号のレベルが確定するまでの時間を確保するためである。
【0117】
ステップS1404cにおいて、コントローラ430は、バス交換器440を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1404c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力する。
【0118】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1402d)。
以上の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが有効となる。また、ステップS1401bでライトプロテクトビットが「1」に設定されていれば、フラッシュメモリ450のメモリ459のライトプロテクトも有効となる。
【0119】
ここで、例えば、ユーザがシステム電源を投入すると、CPU420に電力が供給される。すると、CPU420は、処理をステップS1401aに移行する。そして、CPU420は、フラッシュメモリ450へのアクセス、すなわち、読み出し処理を開始する(ステップS1401a)。
【0120】
そして、例えば、フラッシュメモリ450への書込み処理が必要となった場合、CPU420は、処理をステップS1402aに移行する。この場合、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1402a)。フラッシュメモリ450へのアクセスを停止すると、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセスを停止したことを通知する(ステップS1403a)。
【0121】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、バス交換器440を操作して、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1405c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力する。
【0122】
すると、バス交換器440は、コントローラ430の操作にしたがって、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1403d)。
制御系アクセスバスにバスを切り替えると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「1」を出力する(ステップS1406c)。すると、フラッシュメモリ450の端子/WPに入力される信号が確定する(ステップS1403b)。
【0123】
さらに、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452の変更を指示する(ステップS1407c)。具体的には、コントローラ430は、コントロールレジスタ452のCRWPビットを「0」に設定するように指示する。また、コントローラ430は、コントロールレジスタ452のライトプロテクトビットを「0」に設定するように指示することができる。
【0124】
コントローラ430から指示を受けると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットを「0」に設定する(ステップS1404b)。また、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のライトプロテクトビットを「0」に設定する(ステップS1404b)。
【0125】
以上の処理が終了すると、コントローラ430は、バス交換器440を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1408c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力する。
【0126】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1404d)。
以上の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが解除される。また、ステップS1404bでライトプロテクトビットが「0」に設定されていれば、フラッシュメモリ450のメモリ459のライトプロテクトも解除される。
【0127】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクト解除を通知する(ステップS1409c)。
コントローラ430からライトプロテクト解除の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、書込み処理を開始する(ステップS1404a)。所定のデータのフラッシュメモリ450への書込みが完了すると、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1405a)。そして、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する(ステップS1406a)。
【0128】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、交換器440を操作して、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1410c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力する。
【0129】
すると、バス交換器440は、CPU420の操作にしたがって、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1405d)。
制御系アクセスバスにバスを切り替えると、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452の変更を指示する(ステップS1411c)。具体的には、コントローラ430は、コントロールレジスタ452のCRWPビットを「1」に設定するように指示する。また、コントローラ430は、コントロールレジスタ452のライトプロテクトビットを「1」に設定するように指示することができる。
【0130】
コントローラ430から指示を受けると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットを「1」に設定する(ステップS1405b)。また、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のライトプロテクトビットを「1」に設定する(ステップS1405b)。
【0131】
コントロールレジスタ452の変更が完了すると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する(ステップS1412c)。すると、フラッシュメモリ450の端子/WPに入力される信号が確定する(ステップS1406b)。
【0132】
以上の処理が終了すると、コントローラ430は、バス交換器440を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1413c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力する。
【0133】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1406d)。
以上の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが有効となる。また、ステップS1405bでライトプロテクトビットが「1」に設定されていれば、フラッシュメモリ450のメモリ459のライトプロテクトも有効となる。
【0134】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクトの設定完了を通知する(ステップS1414c)。
コントローラ430からライトプロテクトの設定完了の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、読み込み処理を開始する(ステップS1407a)。また、CPU420は、フラッシュメモリ450への書込み処理が必要となった場合、処理をステップS1402aに移行する。
【0135】
以上に説明したように、システムボード1000は、CPU420が、通信線1010を介してコントローラ430に指示することで、フラッシュメモリ450のライトプロテクト状態の設定・解除を、CPU420が必要なタイミングで実行することが可能となる。
【0136】
以上の説明において、コントローラ430は、制御装置の一例として挙げられる。フラッシュメモリ450は、記憶装置の一例として挙げられる。信号線/FLASH_WPは、制御装置と記憶装置と接続する信号線の一例として挙げられる。CPU420は、演算装置の一例として挙げられる。
【0137】
第1の設定手段、第2の設定手段および切り替え手段は、コントローラ430に所定のプログラムを実行させることによって実現することができる。例えば、図8に示したステップS803の処理などは、第1の設定手段による処理の一例として挙げられる。また、例えば、図8に示したステップS802の処理などは、第2の設定手段による処理の一例として挙げられる。また、例えば、図8に示したステップS801やS804の処理などは、切り替え手段による処理の一例として挙げられる。
【0138】
制御系アクセスバスは、制御装置と記憶装置とを通信可能に接続する第1の伝送路の一例として挙げられる。また、通常アクセスバスは、演算装置と記憶装置モリとを通信可能に接続する第2の伝送路の一例として挙げられる。
【0139】
以上に説明したように、コントローラ430は、フラッシュメモリ450と接続するCPU420などで発生するノイズの影響を受けることなく、フラッシュメモリ450の状態、例えば、ライトプロテクトの設定・解除などを制御することできる。
【0140】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
データを記憶する記憶装置を制御する制御装置において、
前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する第1の設定手段と、
前記制御装置に接続される第1の伝送路を介して、前記記憶装置の状態を設定する第2の設定手段と、
前記第1の伝送路を介して前記制御装置に接続されると共に、第2の伝送路を介して演算装置と接続され、前記第1の伝送路と前記第2の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する切り替え手段と、
を備える制御装置。
(付記2)
前記切替手段によって前記第2の伝送路に切り替えられると、前記信号線は、前記演算装置と電気的に独立した状態で、特定のレベルの電位に固定される、
ことを特徴とする付記1に記載の制御装置。
(付記3)
前記制御装置は、前記演算装置と前記制御装置とを通信可能に接続する通信線を介して、前記演算装置から指示を受けると、前記第2の伝送路を前記第1の伝送路に切り替え、
前記指示にしたがって前記記憶装置を特定の状態に設定した後、前記第1の伝送路を前記第2の伝送路に切り替える、
ことを特徴とする付記1に記載の制御装置。
(付記4)
前記第1の設定手段は、前記信号線を介して、前記記憶装置に特定の信号を出力し、前記記憶装置を特定の状態に保持する、
ことを特徴とする付記1に記載の制御装置。
(付記5)
前記第2の設定手段は、前記第1の伝送路を介して、前記記憶装置の状態を決定するレジスタに特定のデータを書き込み、前記記憶装置を特定の状態に設定する、
ことを特徴とする付記1に記載の制御装置。
(付記6)
前記記憶装置は、前記第1の設定手段と前記第2の設定手段との設定によって、その状態が決定される記憶装置である、
ことを特徴とする付記1に記載の制御装置。
【符号の説明】
【0141】
400 情報処理装置
410 システムボード
420 CPU
421 SPIマスタ
430 コントローラ
431 SPIマスタ
440 バス交換器
450 フラッシュメモリ
451 SPIスレーブ
452 コントロールレジスタ
【技術分野】
【0001】
本発明は、記憶装置を制御する制御装置に関する。
【背景技術】
【0002】
従来、情報処理装置は、周辺機器などを制御してOS(Operating System)に周辺機器への入出力処理を提供するプログラム群、例えば、BIOS(Basic Input/Output System)などを記憶するために、フラッシュメモリなどの不揮発性メモリを備える。
【0003】
図1は、フラッシュメモリを備える情報処理装置100の構成例を示す図である。図1に示す情報処理装置100は、CPU(Central Processing Unit)110と、コントローラ120と、バス交換器130と、フラッシュメモリ140と、を備えている。
【0004】
CPU110およびコントローラ120は、バス交換器130を介してフラッシュメモリ140と接続する。バス交換器130は、CPU110−フラッシュメモリ140間を接続する通常使用系統と、コントローラ120−フラッシュメモリ140間を接続する制御系統と、を切り替えることができる。
【0005】
また、フラッシュメモリ140は、フラッシュメモリ140を制御するためのインターフェースとして、コントロールレジスタ141を備える。コントローラ120は、コントロールレジスタ141を操作することで、フラッシュメモリ140のライトプロテクトや、コントロールレジスタ141のライトプロテクトなどを操作することができる。
【0006】
例えば、フラッシュメモリ140のライトプロテクトを設定しようとする場合、コントローラ120は、バス交換器130に対して所定の操作を行なって、通常使用系統から制御系統に切り替える。そして、コントローラ120は、フラッシュメモリ140に備えられたコントロールレジスタ141のライトプロテクトビットに1を設定する。これにより、フラッシュメモリ140への書込みがプロテクトされる。
【0007】
また、コントロールレジスタ141のCRWP(Control Register Write Protect)ビットに「1」を設定し、端子/WP(Write Protect)に信号「0」を出力すると、コントロールレジスタ141への書込みがプロテクトされる。コントロールレジスタ141またはCPU110は、制御系統に含まれる信号線、または通常使用系統に含まれる信号線を利用して、フラッシュメモリ140の端子/WPに信号を出力する。
【0008】
フラッシュメモリ140への設定が終了すると、コントローラ120からバス交換器130に対して所定の操作を行なって、制御系統から通常使用系統に切り替えてから、CPU110の駆動電源であるシステム電源を投入する。すると、CPU110はフラッシュメモリ140からBIOS等を読み出して実行する。その後、周辺機器との入出力処理が可能になると、CPU110は、記憶装置からOS等を読み出して実行する。
【0009】
図2は、フラッシュメモリ140の端子/WPに入力される信号と、コントロールレジスタ141のCRWPビットの設定と、の組み合わせによるコントロールレジスタ141の状態の遷移を示す図である。図2に示すように、端子/WPへの信号が「0」、かつ、コントロールレジスタ141のCRWPビットが「1」に設定されている場合にだけ、コントロールレジスタ141はライトプロテクト状態となる。
【0010】
上記技術に関連して、ユーザがデータをフラッシュメモリ4に書き込むことのできる第1の位置と、データがフラッシュメモリ4に書き込まれることを阻止する第2の位置との間で可動である手動スイッチを備えるフラッシュメモリについて知られている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特表2003−524842号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
図1に示した情報処理装置100において、例えば、CPU110に電源を投入すると、CPU110などからノイズが発生する場合がある。この場合、ノイズは、バス交換器130を介してフラッシュメモリ140へと伝搬する。
【0013】
このノイズにより、端子/WPへの信号が「0」から「1」に切り替わると、図3に示すように、コントロールレジスタ141のライトプロテクトが解除される。この場合、ノイズのパターンによっては、コントロールレジスタ141のデータが書き換わり、フラッシュメモリ140のライトプロテクトも解除されてしまう。この状態でノイズがフラッシュメモリ140に流れ続けると、フラッシュメモリ140に記憶しているデータの破壊や、フラッシュメモリ140の誤作動を誘発することになる。
【0014】
本制御装置は、1つの側面では、記憶装置と接続する演算装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御することを目的とする。
【課題を解決するための手段】
【0015】
本制御装置の1つの観点によれば、本制御装置は、データを記憶する記憶装置を制御する。そして、本制御装置は、以下の構成要素を備える。
第1の設定手段は、前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する。
【0016】
第2の設定手段は、前記制御装置に接続される第1の伝送路を介して、前記記憶装置の状態を設定する。
切り替え手段は、前記第1の伝送路を介して前記制御装置に接続されると共に、第2の伝送路を介して演算装置と接続され、前記第1の伝送路と前記第2の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する。
【発明の効果】
【0017】
本制御装置は、1つの態様では、記憶装置と接続する演算装置などで発生するノイズの影響を受けることなく、記憶装置の状態を制御することができる。
【図面の簡単な説明】
【0018】
【図1】フラッシュメモリを備える情報処理装置100の構成例を示す図である。
【図2】フラッシュメモリ140の端子/WPに入力される信号と、コントロールレジスタ141のCRWPビットの設定と、の組み合わせによるコントロールレジスタ141の状態の遷移を示す図である。
【図3】ノイズが発生した場合のコントローラ141の状態を説明する図である。
【図4】本実施例に係る情報処理装置400に搭載するシステムボード410の構成例を示す図である。
【図5】本実施例で使用するSPIマスタとSPIスレーブを説明する図である。
【図6】図4に示したシステムボード410の主要部の具体例を示す図である。
【図7】本実施例で使用するテーブル700の具体例を示す図である。
【図8】本実施例に係るコントローラ430の処理の一例を示すフローチャートである。
【図9】図6に示したシステムボード410の変形例を示す図である。
【図10】図4に示したシステムボード410のその他の変形例を示す図である。
【図11】図10に示したシステムボード1000の主要部の具体例を示す図である。
【図12】図11に示したシステムボード1000の処理の一例を示すフローチャートである。
【図13】図12に示した処理におけるCPU420およびコントローラ430の具体的な処理を説明するフローチャートである。
【図14】図13に示した処理における装置間の関係を示す図である。
【発明を実施するための形態】
【0019】
以下、本実施形態の一例について、図4〜図14に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、種々変形して実施することができる。
【実施例】
【0020】
図4は、本実施例に係る情報処理装置400に搭載するシステムボード410の構成例を示す図である。
システムボード410は、CPU420と、コントローラ430と、バス交換器440と、フラッシュメモリ450と、メモリ460と、を備える。
【0021】
CPU420は、フラッシュメモリ450や外部記憶装置470などから読み出したプログラムの命令にしたがって、所定の演算などを実行する演算装置である。CPU420は、SPI(Serial Peripheral Interface)を利用してフラッシュメモリ450とデータ通信を行なうため使用するSPIマスタ421を備える。なお、図4では記載を省略しているが、SPIマスタ421はSPIバス422と接続している。
【0022】
コントローラ430は、所定のプログラムの命令にしたがって、バス交換器440、フラッシュメモリ450を操作する演算装置である。コントローラ430は、SPIを利用してフラッシュメモリ450とデータ通信を行なうため使用するSPIマスタ431を備える。なお、図4では記載を省略しているが、SPIマスタ431はSPIバス432と接続している。
また、コントローラ430は、フラッシュメモリ450の端子/WPと、/WP制御線で直接接続している。
【0023】
バス交換器440は、SPIバス422を介してCPU420と接続している。また、バス交換器440は、SPIバス432を介してコントローラ430と接続している。また、バス交換器440は、SPIバス453を介してフラッシュメモリ450と接続している。
【0024】
バス交換器440は、CPU420とフラッシュメモリ450とを接続する通常使用系統と、コントローラ430とフラッシュメモリ450とを接続する制御系統と、をコントローラ430の指示によって切り替える。
【0025】
フラッシュメモリ450は、データを記憶する不揮発性メモリを含む記憶装置である。フラッシュメモリ450は、例えば、BIOSなどのデータを記憶することができる。そして、フラッシュメモリ450は、SPIを利用してCPU420やコントローラ430とデータ通信を行なうため使用するSPIスレーブ451を備える。なお、図4では記載を省略しているが、SPIスレーブ451はSPIバス453と接続している。
【0026】
また、フラッシュメモリ450は、フラッシュメモリ450を外部から制御するためのインターフェースとして、端子/WPと、コントロールレジスタ452と、を備える。図4に示すように、コントロールレジスタ452には、CRWPビットと、ライトプロテクトビットと、が含まれる。
【0027】
コントローラ430は、端子/WPへの信号と、コントロールレジスタ452の設定によって、フラッシュメモリ450の状態を制御することができる。例えば、図2に示した、端子/WPへの信号とコントロールレジスタ452の設定との組み合わせにしたがって、フラッシュメモリ450は状態を遷移する。
【0028】
CRWPビットは、コントロールレジスタ452への書込みをプロテクトするためのビットである。CRWPビットが「1」に設定され、端子/WPへの信号が「0」の場合、フラッシュメモリ450は、コントロールレジスタ452への書込みをプロテクトする。
【0029】
ライトプロテクトビットは、フラッシュメモリ450へのデータの書込みをプロテクトするためのビットである。ライトプロテクトビットに「1」が設定されている場合、フラッシュメモリ450は、フラッシュメモリ450へのデータの書込みをプロテクトする。
【0030】
コントローラ430は、フラッシュメモリ450へのBIOSなどのデータの書込みやアップデートなどの処理を実行する。
また、コントローラ430は、情報処理装置400の主電源投入と同時に起動するので、このタイミングで、フラッシュメモリ450へのデータの書込み、コントロールレジスタ452への書込みをプロテクト状態に設定することができる。
【0031】
フラッシュメモリ450へのデータの書込み、コントロールレジスタ452への書込みをプロテクト状態に設定後、コントローラ430は、制御系アクセスバスを通常アクセスバスに切り替えることができる。この場合、フラッシュメモリ450を、CPU420に対して読み出し専用とすることができる。
【0032】
図5は、本実施例で使用するSPIマスタとSPIスレーブを説明する図である。
SPIマスタ510とSPIスレーブ520とは、SPIバス530を介して接続する。
【0033】
SPIマスタ510は、端子SCLK、MOSI、MOSOおよびSSを備える。端子SCLKは、SPIスレーブ520にクロック信号を送信するための信号線を接続する端子である。端子MOSIは、SPIスレーブ520にデータを送信するための信号線を接続する端子である。端子MISOは、SPIスレーブ520からデータを受信するための信号線を接続する端子である。端子SSは、SPIスレーブ520を選択するための信号線を接続する端子である。
【0034】
SPIスレーブ520も、端子SCLK、MOSI、MOSOおよびSSを備える。端子SCLKは、SPIマスタ510からクロック信号を受信するための信号線を接続する端子である。端子MOSIは、SPIマスタ510からデータを受信するための信号線を接続する端子である。端子MISOは、SPIマスタ510にデータを送信するための信号線を接続する端子である。端子SSは、SPIマスタ510がSPIスレーブ520を選択するための信号線を接続する端子である。
【0035】
なお、図5に示したSPIデバイス、すなわち、SPIマスタ510とSPIスレーブ520によるデータ通信は、公知の技術であるので、詳細な説明は省略する。
【0036】
図6は、図4に示したシステムボード410の主要部の具体例を示す図である。
CPU420に備わるSPIマスタ421は、信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INを介して、バス交換器440と接続している。CPU420は、SPIマスタ421を操作することにより、SPIを利用した通信を行なう。
【0037】
なお、図6では、主要部の接続関係の理解優先のため省略しているが、接続信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INは、それぞれSPIマスタ421の端子MOSI、SCLK、SSおよびMISOと接続する。
【0038】
CPU420は、システム電源により駆動する。システム電源のCPU420への投入は、情報処理装置400の主電源と接続するスイッチSWをOFFからONに切り替えることにより行なうことができる。
【0039】
コントローラ430に備わるSPIマスタ431は、信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INを介して、バス交換器440と接続している。
【0040】
また、コントローラ430は、信号線/SW_BEおよびSW_BXを介して、バス交換器440と接続している。信号線/SW_BEおよびSW_BXは、それぞれバス交換器440の端子/BEおよびBXと接続している。コントローラ430は、後述するように、端子/BEおよびBXに出力する信号により、バス交換器440を操作することができる。
【0041】
また、コントローラ430は、信号線/FLASH_WPを介して、フラッシュメモリ450と接続している。信号線/FLASH_WPは、フラッシュメモリ450の端子/WPと接続している。コントローラ430は、フラッシュメモリ450の端子/WPに出力する信号と、コントロールレジスタ452への設定により、フラッシュメモリ450の状態、例えば、コントロールレジスタ452やメモリ459のライトプロテクトの設定・解除、を操作することができる。
【0042】
なお、図6では、主要部の接続関係の理解優先のため省略しているが、接続信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INは、それぞれSPIマスタ431の端子MOSI、SCLK、SSおよびMISOと接続する。
【0043】
コントローラ430は、情報処理装置400の主電源により駆動する。したがって、例えば、情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ432から所定のプログラムを読み出す。そして、コントローラ430は、読み出したプログラムの命令にしたがって、処理を開始する。フラッシュメモリ432、バス交換器440およびフラッシュメモリ450も、コントローラ430と同様に、情報処理装置400の主電源により駆動する。
【0044】
バス交換器440は、端子1A1、2A1、3A1、4A1および5A1を備える。端子1A1、2A1、3A1および5A1は、それぞれ、CPU420に備わるSPIマスタ421からの信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INと接続している。
【0045】
また、バス交換器440は、端子1A2、2A2、3A2、4A2および5A2を備える。端子1A2、2A2、3A2、4A2および5A2は、それぞれ、コントローラ430に備わるSPIマスタ431からの信号線SPI_DATA_OUT、SPI_CLK、/SPI_CS0およびSPI_DATA_INと接続している。
【0046】
また、バス交換器440は、端子1B1、2B1、3B1、4B1および5B1と、端子1B2、2B2、3B2、4B2および5B2と、を備える。端子1B1、2B1、3B1および5B1は、それぞれ、フラッシュメモリ450に備わる端子D、C、/SおよびQと接続している。端子1B2、2B2、3B2、4B2および5B2は、本実施例では使用しないので、説明を省略する。
【0047】
バス交換器440は、端子1A1−5A1と端子1B1−5B1、すなわち、端子1A1と1B1、端子2A1と2B1、端子3A1と3B1、端子4A1と4B1および端子5A1と5B1、を接続することができる。また、バス交換器440は、端子1A1−5A1と端子1B2−5B2、すなわち、端子1A1と1B2、端子2A1と2B2、端子3A1と3B2、端子4A1と4B2および端子5A1と5B2、を接続することができる。
【0048】
そして、バス交換器440は、端子1A1−5A1と端子1B1−5B1の接続と、端子1A1−5A1と端子1B2−5B2の接続と、を、端子/BEおよびBXへの入力信号に応じて切り替える。
【0049】
同様に、バス交換器440は、端子1A2−5A2と端子1B1−5B1、すなわち、端子1A2と1B1、端子2A2と2B1、端子3A2と3B1、端子4A2と4B1および端子5A2と5B1、を接続することができる。また、バス交換器440は、端子1A2−5A2と端子1B2−5B2、すなわち、端子1A2と1B2、端子2A2と2B2、端子3A2と3B2、端子4A2と4B2および端子5A2と5B2、を接続することができる。
【0050】
そして、バス交換器440は、端子1A2−5A2と端子1B1−5B1の接続と、端子1A2−5A2と端子1B2−5B2の接続と、を、端子/BEおよびBXへの入力信号に応じて切り替える。
【0051】
バス交換器440は、図7に示すテーブル700にしたがって、端子間の接続を切り替える。
例えば、端子/BEおよびBXに「0」が入力されると、バス交換器440は、端子1A1−5A1と端子1B1−5B1を接続し、端子1A2−5A2と端子1B2−5B2を接続する。
【0052】
また、端子/BEに「0」が入力され、端子BXに「1」が入力されると、バス交換器440は、端子1A1−5A1と端子1B2−5B2を接続し、端子1A2−5A2と端子1B1−5B1を接続する。
【0053】
フラッシュメモリ450は、端子D、C、/S、/WPおよびQを備える。端子D、C、/SおよびQは、それぞれバス交換器440の端子1B1、2B1、3B1および5B1と接続する。また、端子/WPは、コントローラ430からの信号線FLASH_WPと接続する。
【0054】
なお、図6では、主要部の接続関係の理解優先のために省略しているが、端子D、C、/SおよびQは、それぞれSPIスレーブ451の端子MOSI、SCLK、SSおよびMISOと接続する。
【0055】
また、フラッシュメモリ450は、SPIスレーブ451およびコントロールレジスタ452に加えて、制御部453と、シフトレジスタ454と、データバッファ455と、アドレスレジスタ456と、デコーダ457および458と、メモリ459と、を備える。
【0056】
制御部453は、SPIスレーブ451を利用して、他の装置、例えばCPU420やコントローラ430とデータ通信を行なう。そして、制御部453は、受信したデータのメモリ459への書込み処理や、メモリ459からのデータの読み出し処理などを行なう。また、制御部453は、コントロールレジスタ452への書込み処理や読み込み処理も行なう。
【0057】
制御部453は、端子/WPへの入力信号が「0」、かつ、コントロールレジスタ452のCRWPビットが「1」の場合、コントロールレジスタ452への書込みをプロテクトする。
【0058】
シフトレジスタ454は、シリアルデータを所定のビット長のパラレルデータに変換し、所定のビット長のパラレルデータをシリアルデータに変換する。例えば、SPIスレーブ451から入力されたシリアルデータは、シフトレジスタ454で所定のビット長のパラレルデータに変換される。
【0059】
データバッファ455は、メモリ459へ書き込むデータ、または、メモリ459から読み出したデータ、を一時的に記憶する記憶装置である。
アドレスレジスタ456は、メモリ459へ書き込むデータのアドレス、または、メモリ459から読み出すデータのアドレス、を示すアドレスデータを一時的に記憶する記憶装置である。
【0060】
デコーダ457は、アドレスレジスタ456に記憶されたアドレスデータをデコードして、例えば、上位アドレスを抽出する。また、デコーダ458は、アドレスレジスタ456に記憶されたアドレスデータをデコードして、例えば、下位アドレスを抽出する。これら上位アドレスと下位アドレスとによって、メモリ459上のデータのアドレスを選択することができる。
【0061】
メモリ459は、不揮発性メモリである。
以上の構成において、制御部453は、制御部453は、SPIスレーブ451からデータを受信すると、シフトレジスタ454により、所定のビット長のデータに変換する。変換したデータに、コントロールレジスタ452への書込み命令が含まれる場合、制御部453は、端子/WPおよびコントロールレジスタ452のCRWPビットを参照する。端子/WPが「0」かつコントロールレジスタ452のCRWPビットが「1」の場合、制御部453は、コントロールレジスタ452への書込み処理を抑止する。
【0062】
また、端子/WPが「1」またはコントロールレジスタ452のCRWPビットが「0」の場合、制御部453は、変換したデータをコントロールレジスタ452に書き込む処理を行なう。この場合、制御部453は、コントロールレジスタ452の特定のビットだけを変更することもできる。
【0063】
また、シフトレジスタ454で変換したデータに、コントロールレジスタ452の読み出し命令が含まれる場合、制御部453は、コントロールレジスタ452に格納されているデータを、シフトレジスタ454によってシリアルデータに変換する。そして、制御部453は、SPIスレーブ451を介して、コントロールレジスタ452のデータを出力する。
【0064】
また、シフトレジスタ454で変換したデータに、メモリ459への書込み命令が含まれる場合、制御部453は、コントロールレジスタ452のライトプロテクトビットを参照する。そして、ライトプロテクトビットが「1」の場合、制御部453は、メモリ459への書込み処理を抑止する。
【0065】
また、コントロールレジスタ452のライトプロテクトビットが「0」の場合、制御部453は、変換したデータに含まれるアドレスデータをアドレスレジスタ456に格納する。また、制御部453は、変換したデータに含まれるデータ部をデータバッファ455に格納する。そして、デコーダ457および458によってデコードされた上位アドレスと下位アドレスとによって特定されるアドレスに、データバッファ455に格納したデータを記憶する。
【0066】
また、シフトレジスタ454で変換したデータに、メモリ459からの読み出し命令が含まれる場合、制御部453は、変換したデータに含まれるアドレスデータをアドレスレジスタ456に格納する。そして、デコーダ457および458によってデコードされた上位アドレスと下位アドレスとによって特定されるアドレスに格納されているデータを、データバッファ455に格納する。制御部453は、データバッファ455に格納したデータを、シフトレジスタ454によってシリアルデータに変換する。そして、制御部453は、SPIスレーブ451を介して、データを出力する。
【0067】
以下では、CPU420−フラッシュメモリ450間を接続する通信線であって、SPIを使用した通信に使用する通信線を、「通常アクセスバス」という。また、コントローラ430−フラッシュメモリ450間を接続する通信線のうち、SPIを使用した通信に使用する通信線を、「制御系アクセスバス」という。そして、コントローラ430−フラッシュメモリ450間を接続する通信線のうち、バス交換器440の端子/BEおよびBXと接続する信号線と、フラッシュメモリ450の端子/WPと接続する信号線と、を含む信号線を、「制御系信号バス」という。
【0068】
図8は、本実施例に係るコントローラ430の処理の一例を示すフローチャートである。
情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ432から読み出したプログラムの命令にしたがって、以下の処理を開始する(ステップS800)。
【0069】
ステップS801において、コントローラ430は、制御系アクセスバスへの切り替えを行なう。この場合、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力することにより、制御系アクセスバスへの切り替え処理を行なうことができる。
【0070】
ステップS802において、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452のCRWPビットを「1」に設定するように指示する。すると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットに「1」を書き込む処理を行なう。
【0071】
ステップS803において、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する。なお、制御系信号バスの信号線を通じて出力される信号は、主電源が投入されている間、常時その値が保持される。
【0072】
ステップS802およびS803の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが有効となる。
ステップS804において、コントローラ430は、制御系アクセスバスから通常アクセスバスへの切り替えを行なう。この場合、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力することにより、通常アクセスバスへの切り替え処理を行なうことができる。
【0073】
以上の処理が終了すると、CPU420は、フラッシュメモリ450からデータの読み出しが可能な状態となる。同時に、CPU420から、フラッシュメモリ450のコントロールレジスタ452の変更が抑止される。例えば、ステップS802において、コントロールレジスタ452のライトプロテクトビットも「1」に設定しておけば、フラッシュメモリ450を、CPU420からデータの読み出しだけが可能な状態にすることができる。
【0074】
以上の処理が終了した状態で、システム電源を投入してCPU420を起動する際、システム電源の投入等によりCPU420内等にノイズが発生する場合が考えられる。しかし、フラッシュメモリ450の端子/WPは、CPU420ではなくコントローラ430と接続しているので、CPU420内等で発生したノイズの影響を受けることはない。
【0075】
その結果、CPU420が通常アクセスバスを介してフラッシュメモリ450と接続した状態で、CPU420内等でノイズが発生しても、フラッシュメモリ450のコントロールレジスタ452やメモリ459のデータを意図せず書き換えることを防止する。
【0076】
以上のように、コントローラ430は、CPU420内等で発生するノイズの影響を受けることなく、フラッシュメモリ450のライトプロテクト状態を制御することが可能となる。このライトプロテクトには、フラッシュメモリ450のCRWPビットに対するライトプロテクトと、フラッシュメモリ450のメモリ459に対するライトプロテクトと、を含むことができる。
【0077】
(変形例)
図9は、図6に示したシステムボード410の変形例を示す図である。
コントローラ430は、信号線/FLASH_WPを介して、バス交換器440の端子4A2と接続している。
バス交換器440の端子4A1は、グランドされている。したがって、端子4A1には、常に「0」が入力される。また、バス交換器440の端子4B1は、フラッシュメモリ450の端子/WPと接続している。
【0078】
以上の構成では、例えば、コントローラ430がバス交換器440の端子/BEおよびBXに「0」を出力すると、バス交換器440は、端子1A1−5A1と端子1B1−5B1を接続する。この場合、CPU420は、通常アクセスバスを介して、フラッシュメモリ450と接続する。
【0079】
しかし、バス交換器440の端子4A1はグランドされているので、端子4A1と接続する端子4B1から、フラッシュメモリ450の端子/WPには、常に「0」が出力される。
【0080】
この状態で、システム電源を投入してCPU420を起動する際、システム電源の投入等によりCPU420内等にノイズが発生する場合が考えられる。しかし、フラッシュメモリ450の端子/WPは、CPU420と接続されることなくグランドされているので、CPU420内等で発生したノイズの影響を受けることはない。
【0081】
その結果、CPU420が通常アクセスバスを介してフラッシュメモリ450と接続した状態で、CPU420内等でノイズが発生しても、フラッシュメモリ450のコントロールレジスタ452やメモリ459のデータを意図せず書き換えることを防止する。
【0082】
したがって、コントローラ430は、CPU420内等で発生するノイズの影響を受けない、フラッシュメモリ450のライトプロテクトを実現することが可能となる。
【0083】
(その他の変形例)
図10は、図4に示したシステムボード410の変形例を示す図である。
図10に示すシステムボード1000に含まれるCPU420とコントローラ430は、専用線等を介して、互いに通信可能に接続する。その他の構成は、図4で説明したので省略する。
【0084】
図11は、図10に示したシステムボード1000の主要部の具体例を示す図である。
CPU420とコントローラ430とは、互いに専用の通信線1010で接続している。この通信線1010を介して、CPU420とコントローラ430は、互いに通信を行なう。
【0085】
コントローラ430は、信号線/FLASH_WPを介して、バス交換器440の端子4A1および端子4A2と接続している。また、バス交換器440の端子4B1は、フラッシュメモリ450の端子/WPと接続している。
【0086】
コントローラ430の信号線/FLASH_WPは、バス交換器440の端子4A1および4A2と接続している。したがって、バス交換器440が通常アクセスバスに切り替えられても、または、制御系アクセスバスに切り替えられても、コントローラ430は、信号線/FLASH_WPを介して、フラッシュメモリ450の端子/WPと常に接続している。結果として、図6に示したように、コントローラ430とフラッシュメモリ450の端子/WPとを直接接続した構成と等価となる。
【0087】
このように、フラッシュメモリ450の端子/WPは、CPU420ではなくコントローラ430と常時接続しているので、CPU420内等で発生したノイズの影響を受けることはない。
【0088】
その結果、CPU420が通常アクセスバスを介してフラッシュメモリ450と接続した状態で、CPU420内等でノイズが発生しても、フラッシュメモリ450のコントロールレジスタ452やメモリ459のデータを意図せず書き換えることを防止する。
【0089】
したがって、コントローラ430は、CPU420内等で発生するノイズの影響を受けることなく、フラッシュメモリ450のライトプロテクト状態を制御することが可能となる。
【0090】
図12は、図11に示したシステムボード1000の処理の一例を示すフローチャートである。
情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ450を、ライトプロテクト状態に設定する(ステップS1201b)。なお、この処理は、図8に示した処理と同様なので、詳細な説明は省略する。
【0091】
ここで、例えば、ユーザがシステム電源を投入すると、CPU420に電力が供給される。すると、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1201a)。例えば、CPU420は、フラッシュメモリ450からBIOSなどのデータを読み出して実行する。そして、CPU420は、プログラムの命令にしたがって、周辺機器の初期化などを行なう。
【0092】
そして、例えば、フラッシュメモリ450への書込み処理が必要となった場合、CPU420は、処理をステップS1202aに移行する。そして、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1202a)。
【0093】
ステップS1203aにおいて、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する。この通知には、フラッシュメモリ450のライトプロテクトを解除する旨の要求を含むことができる。
【0094】
一方、CPU420から、フラッシュメモリ450へのアクセス停止の通知を受信すると、コントローラ430は、フラッシュメモリ450のライトプロテクトを解除する(ステップS1202b)。そして、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクト解除を通知する(ステップS1203b)。
【0095】
コントローラ430から、フラッシュメモリ450のライトプロテクト解除の通知を受けると、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1204a)。所定のデータのフラッシュメモリ450への書込みが完了すると、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1205a)。そして、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する(ステップS1206a)。この通知には、フラッシュメモリ450のライトプロテクトを設定する旨の要求を含むことができる。
【0096】
一方、CPU420から、フラッシュメモリ450へのアクセス停止の通知を受信すると、コントローラ430は、フラッシュメモリ450のライトプロテクトを設定する(ステップS1204b)。そして、コントローラ430は、CPU420に対して、通信線1010を通じて、フラッシュメモリ450のライトプロテクト設定完了を通知する(ステップS1203b)。
【0097】
コントローラ430から、フラッシュメモリ450のライトプロテクト設定完了の通知を受けると、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1207a)。
【0098】
図13は、図12に示した処理におけるCPU420およびコントローラ430の具体的な処理を説明するフローチャートである。
情報処理装置400に主電源が投入されると、コントローラ430は、フラッシュメモリ432から読み出したプログラムの命令にしたがって、ステップS1301〜S1304の処理を行なう。ステップS1301〜S1304の処理は、図12に示したS1201bの処理に対応する。なお、このステップS1301〜S1304の処理の説明は、図8で説明したので省略する。
【0099】
ここで、例えば、ユーザがシステム電源を投入すると、CPU420に電力が供給される。すると、CPU420は、処理をステップS1305に移行する。そして、CPU420は、フラッシュメモリ450へのアクセスを開始する(ステップS1305)。フラッシュメモリ450へのアクセスを開始すると、CPU420は、例えば、フラッシュメモリ450からBIOSなどのデータを読み出して実行する。そして、CPU420は、プログラムの命令にしたがって、周辺機器の初期化などを行なう。
【0100】
そして、例えば、フラッシュメモリ450への書込み処理が必要となった場合、CPU420は、処理をステップS1306に移行する。この場合、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1306)。フラッシュメモリ450へのアクセスを停止すると、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセスを停止したことを通知する(ステップS1307)。
【0101】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1308)。コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力することにより、通常アクセスバスから制御系アクセスバスにバスを切り替える。
【0102】
制御系アクセスバスにバスを切り替えると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「1」を出力する(ステップS1309)。
【0103】
さらに、コントローラ430は、フラッシュメモリ450に備わるコントロールレジスタ452のCRWPビットを「0」に設定する(ステップS1310)。具体的には、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452のCRWPビットを「0」に設定するように指示する。すると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットに「0」を書き込む処理を行なう。
【0104】
以上の処理が終了すると、コントローラ430は、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1311)。コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力することにより、制御系アクセスバスから通常アクセスバスにバスを切り替える。
【0105】
上述したステップS1308〜S1311の処理が、図12に示したステップS1202bの処理に対応する。この処理によって、フラッシュメモリ450のライトプロテクトが解除される。
【0106】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクト解除を通知する(ステップS1312)。
コントローラ430からライトプロテクト解除の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、書込み処理を開始する(ステップS1313)。所定のデータのフラッシュメモリ450への書込みが完了すると、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1314)。そして、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する(ステップS1315)。
【0107】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1316)。
【0108】
制御系アクセスバスにバスを切り替えると、コントローラ430は、フラッシュメモリ450に備わるコントロールレジスタ452のCRWPビットを「1」に設定する(ステップS1317)。さらに、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する(ステップS1318)。以上の処理が終了すると、コントローラ430は、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1319)。
【0109】
上述したステップS1316〜S1319の処理が、図12に示したステップS1205bの処理に対応する。この処理によって、フラッシュメモリ450にライトプロテクトが設定される。
【0110】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクトの設定完了を通知する(ステップS1320)。
コントローラ430からライトプロテクトの設定完了の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、読み込み処理を開始する(ステップS1321)。また、CPU420は、フラッシュメモリ450への書込み処理が必要となった場合、処理をステップS1306に移行する。
【0111】
図14は、図13に示した処理における装置間の関係を示す図である。
情報処理装置400に主電源が投入されると、コントローラ430は、バス交換器440を操作して、制御系アクセスバスへの切り替えを行なう(ステップS1401c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力する。
【0112】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスにバスを切り替える(ステップS1401d)。
コントローラ430は、ステップS1401cの処理後、一定時間経過すると、処理をステップS1402cに移行する。これは、バス交換器440等のハードウェア等の制約に起因する、バス切り替え完了までの時間を確保するためである。
【0113】
ステップS1402cにおいて、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452の変更を指示する(ステップS1402c)。具体的には、コントローラ430は、コントロールレジスタ452のCRWPビットを「1」に設定するように指示する。また、コントローラ430は、コントロールレジスタ452のライトプロテクトビットを「1」に設定するように指示することができる。
【0114】
コントローラ430から指示を受けると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットを「1」に設定する(ステップS1401b)。また、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のライトプロテクトビットを「1」に設定する(ステップS1401b)。
【0115】
コントロールレジスタ452の変更が完了すると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する(ステップS1403c)。すると、フラッシュメモリ450の端子/WPに入力される信号が確定する(ステップS1402b)。
【0116】
コントローラ430は、ステップS1403cの処理後、一定時間経過すると、処理をステップS1404cに移行する。これは、端子/WPに出力される信号のレベルが確定するまでの時間を確保するためである。
【0117】
ステップS1404cにおいて、コントローラ430は、バス交換器440を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1404c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力する。
【0118】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1402d)。
以上の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが有効となる。また、ステップS1401bでライトプロテクトビットが「1」に設定されていれば、フラッシュメモリ450のメモリ459のライトプロテクトも有効となる。
【0119】
ここで、例えば、ユーザがシステム電源を投入すると、CPU420に電力が供給される。すると、CPU420は、処理をステップS1401aに移行する。そして、CPU420は、フラッシュメモリ450へのアクセス、すなわち、読み出し処理を開始する(ステップS1401a)。
【0120】
そして、例えば、フラッシュメモリ450への書込み処理が必要となった場合、CPU420は、処理をステップS1402aに移行する。この場合、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1402a)。フラッシュメモリ450へのアクセスを停止すると、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセスを停止したことを通知する(ステップS1403a)。
【0121】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、バス交換器440を操作して、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1405c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力する。
【0122】
すると、バス交換器440は、コントローラ430の操作にしたがって、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1403d)。
制御系アクセスバスにバスを切り替えると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「1」を出力する(ステップS1406c)。すると、フラッシュメモリ450の端子/WPに入力される信号が確定する(ステップS1403b)。
【0123】
さらに、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452の変更を指示する(ステップS1407c)。具体的には、コントローラ430は、コントロールレジスタ452のCRWPビットを「0」に設定するように指示する。また、コントローラ430は、コントロールレジスタ452のライトプロテクトビットを「0」に設定するように指示することができる。
【0124】
コントローラ430から指示を受けると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットを「0」に設定する(ステップS1404b)。また、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のライトプロテクトビットを「0」に設定する(ステップS1404b)。
【0125】
以上の処理が終了すると、コントローラ430は、バス交換器440を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1408c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力する。
【0126】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1404d)。
以上の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが解除される。また、ステップS1404bでライトプロテクトビットが「0」に設定されていれば、フラッシュメモリ450のメモリ459のライトプロテクトも解除される。
【0127】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクト解除を通知する(ステップS1409c)。
コントローラ430からライトプロテクト解除の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、書込み処理を開始する(ステップS1404a)。所定のデータのフラッシュメモリ450への書込みが完了すると、CPU420は、フラッシュメモリ450へのアクセスを停止する(ステップS1405a)。そして、CPU420は、コントローラ430に対して、通信線1010を通じて、フラッシュメモリ450へのアクセス停止を通知する(ステップS1406a)。
【0128】
CPU420から、フラッシュメモリ450へのアクセスを停止したことを通知されると、コントローラ430は、交換器440を操作して、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1410c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「1」を出力する。
【0129】
すると、バス交換器440は、CPU420の操作にしたがって、通常アクセスバスから制御系アクセスバスにバスを切り替える(ステップS1405d)。
制御系アクセスバスにバスを切り替えると、コントローラ430は、制御系アクセスバスを使用して、フラッシュメモリ450とデータ通信を行なう。そして、コントローラ430は、フラッシュメモリ450に対して、コントロールレジスタ452の変更を指示する(ステップS1411c)。具体的には、コントローラ430は、コントロールレジスタ452のCRWPビットを「1」に設定するように指示する。また、コントローラ430は、コントロールレジスタ452のライトプロテクトビットを「1」に設定するように指示することができる。
【0130】
コントローラ430から指示を受けると、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のCRWPビットを「1」に設定する(ステップS1405b)。また、フラッシュメモリ450は、指示にしたがって、コントロールレジスタ452のライトプロテクトビットを「1」に設定する(ステップS1405b)。
【0131】
コントロールレジスタ452の変更が完了すると、コントローラ430は、制御系信号バスの信号線/FLASH_WPを通じて、フラッシュメモリ450の端子/WPに「0」を出力する(ステップS1412c)。すると、フラッシュメモリ450の端子/WPに入力される信号が確定する(ステップS1406b)。
【0132】
以上の処理が終了すると、コントローラ430は、バス交換器440を操作して、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1413c)。具体的には、コントローラ430は、信号線/SW_BEを介してバス交換器440の端子/BEに「0」を出力し、信号線SW_BXを介してバス交換器440の端子BXに「0」を出力する。
【0133】
すると、バス交換器440は、CPU420の操作にしたがって、制御系アクセスバスから通常アクセスバスにバスを切り替える(ステップS1406d)。
以上の処理が完了すると、フラッシュメモリ450のコントロールレジスタ452のライトプロテクトが有効となる。また、ステップS1405bでライトプロテクトビットが「1」に設定されていれば、フラッシュメモリ450のメモリ459のライトプロテクトも有効となる。
【0134】
すると、コントローラ430は、CPU420に対して、通信線1010を通じて、ライトプロテクトの設定完了を通知する(ステップS1414c)。
コントローラ430からライトプロテクトの設定完了の通知を受けると、CPU420は、フラッシュメモリ450へのアクセス、すなわち、読み込み処理を開始する(ステップS1407a)。また、CPU420は、フラッシュメモリ450への書込み処理が必要となった場合、処理をステップS1402aに移行する。
【0135】
以上に説明したように、システムボード1000は、CPU420が、通信線1010を介してコントローラ430に指示することで、フラッシュメモリ450のライトプロテクト状態の設定・解除を、CPU420が必要なタイミングで実行することが可能となる。
【0136】
以上の説明において、コントローラ430は、制御装置の一例として挙げられる。フラッシュメモリ450は、記憶装置の一例として挙げられる。信号線/FLASH_WPは、制御装置と記憶装置と接続する信号線の一例として挙げられる。CPU420は、演算装置の一例として挙げられる。
【0137】
第1の設定手段、第2の設定手段および切り替え手段は、コントローラ430に所定のプログラムを実行させることによって実現することができる。例えば、図8に示したステップS803の処理などは、第1の設定手段による処理の一例として挙げられる。また、例えば、図8に示したステップS802の処理などは、第2の設定手段による処理の一例として挙げられる。また、例えば、図8に示したステップS801やS804の処理などは、切り替え手段による処理の一例として挙げられる。
【0138】
制御系アクセスバスは、制御装置と記憶装置とを通信可能に接続する第1の伝送路の一例として挙げられる。また、通常アクセスバスは、演算装置と記憶装置モリとを通信可能に接続する第2の伝送路の一例として挙げられる。
【0139】
以上に説明したように、コントローラ430は、フラッシュメモリ450と接続するCPU420などで発生するノイズの影響を受けることなく、フラッシュメモリ450の状態、例えば、ライトプロテクトの設定・解除などを制御することできる。
【0140】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
データを記憶する記憶装置を制御する制御装置において、
前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する第1の設定手段と、
前記制御装置に接続される第1の伝送路を介して、前記記憶装置の状態を設定する第2の設定手段と、
前記第1の伝送路を介して前記制御装置に接続されると共に、第2の伝送路を介して演算装置と接続され、前記第1の伝送路と前記第2の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する切り替え手段と、
を備える制御装置。
(付記2)
前記切替手段によって前記第2の伝送路に切り替えられると、前記信号線は、前記演算装置と電気的に独立した状態で、特定のレベルの電位に固定される、
ことを特徴とする付記1に記載の制御装置。
(付記3)
前記制御装置は、前記演算装置と前記制御装置とを通信可能に接続する通信線を介して、前記演算装置から指示を受けると、前記第2の伝送路を前記第1の伝送路に切り替え、
前記指示にしたがって前記記憶装置を特定の状態に設定した後、前記第1の伝送路を前記第2の伝送路に切り替える、
ことを特徴とする付記1に記載の制御装置。
(付記4)
前記第1の設定手段は、前記信号線を介して、前記記憶装置に特定の信号を出力し、前記記憶装置を特定の状態に保持する、
ことを特徴とする付記1に記載の制御装置。
(付記5)
前記第2の設定手段は、前記第1の伝送路を介して、前記記憶装置の状態を決定するレジスタに特定のデータを書き込み、前記記憶装置を特定の状態に設定する、
ことを特徴とする付記1に記載の制御装置。
(付記6)
前記記憶装置は、前記第1の設定手段と前記第2の設定手段との設定によって、その状態が決定される記憶装置である、
ことを特徴とする付記1に記載の制御装置。
【符号の説明】
【0141】
400 情報処理装置
410 システムボード
420 CPU
421 SPIマスタ
430 コントローラ
431 SPIマスタ
440 バス交換器
450 フラッシュメモリ
451 SPIスレーブ
452 コントロールレジスタ
【特許請求の範囲】
【請求項1】
データを記憶する記憶装置を制御する制御装置において、
前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する第1の設定手段と、
前記制御装置に接続される第1の伝送路を介して、前記記憶装置の状態を設定する第2の設定手段と、
前記第1の伝送路を介して前記制御装置に接続されると共に、第2の伝送路を介して演算装置と接続され、前記第1の伝送路と前記第2の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する切り替え手段と、
を備える制御装置。
【請求項2】
前記切替手段によって前記第2の伝送路に切り替えられると、前記信号線は、前記演算装置と電気的に独立した状態で、特定のレベルの電位に固定される、
ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記制御装置は、前記演算装置と前記制御装置とを通信可能に接続する通信線を介して、前記演算装置から指示を受けると、前記第2の伝送路を前記第1の伝送路に切り替え、
前記指示にしたがって前記記憶装置を特定の状態に設定した後、前記第1の伝送路を前記第2の伝送路に切り替える、
ことを特徴とする請求項1に記載の制御装置。
【請求項4】
前記第1の設定手段は、前記信号線を介して、前記記憶装置に特定の信号を出力し、前記記憶装置を特定の状態に保持する、
ことを特徴とする請求項1に記載の制御装置。
【請求項5】
前記第2の設定手段は、前記第1の伝送路を介して、前記記憶装置の状態を決定するレジスタに特定のデータを書き込み、前記記憶装置を特定の状態に設定する、
ことを特徴とする請求項1に記載の制御装置。
【請求項1】
データを記憶する記憶装置を制御する制御装置において、
前記記憶装置と接続する信号線を介して、前記記憶装置の状態を設定する第1の設定手段と、
前記制御装置に接続される第1の伝送路を介して、前記記憶装置の状態を設定する第2の設定手段と、
前記第1の伝送路を介して前記制御装置に接続されると共に、第2の伝送路を介して演算装置と接続され、前記第1の伝送路と前記第2の伝送路とを切り替えて、前記制御装置あるいは前記演算装置の一方を、前記記憶装置と通信可能に接続する切り替え手段と、
を備える制御装置。
【請求項2】
前記切替手段によって前記第2の伝送路に切り替えられると、前記信号線は、前記演算装置と電気的に独立した状態で、特定のレベルの電位に固定される、
ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記制御装置は、前記演算装置と前記制御装置とを通信可能に接続する通信線を介して、前記演算装置から指示を受けると、前記第2の伝送路を前記第1の伝送路に切り替え、
前記指示にしたがって前記記憶装置を特定の状態に設定した後、前記第1の伝送路を前記第2の伝送路に切り替える、
ことを特徴とする請求項1に記載の制御装置。
【請求項4】
前記第1の設定手段は、前記信号線を介して、前記記憶装置に特定の信号を出力し、前記記憶装置を特定の状態に保持する、
ことを特徴とする請求項1に記載の制御装置。
【請求項5】
前記第2の設定手段は、前記第1の伝送路を介して、前記記憶装置の状態を決定するレジスタに特定のデータを書き込み、前記記憶装置を特定の状態に設定する、
ことを特徴とする請求項1に記載の制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図8】
【図10】
【図12】
【図13】
【図14】
【図6】
【図7】
【図9】
【図11】
【図2】
【図3】
【図4】
【図5】
【図8】
【図10】
【図12】
【図13】
【図14】
【図6】
【図7】
【図9】
【図11】
【公開番号】特開2012−190195(P2012−190195A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−52243(P2011−52243)
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]