(57)【特許請求の範囲】
【請求項１】
制御プログラムに基づいて記憶装置に対する情報の入出力処理を行うプロセッサと、
起動プログラムを格納するフラッシュメモリと、
前記プロセッサと前記フラッシュメモリとを転送対象として、当該転送対象に関する情報を中継するチップセットと、
前記チップセットと前記フラッシュメモリとの間に配置されて情報変換処理を実行する論理制御回路とを備え、
前記フラッシュメモリは、
前記プロセッサのアクセス対象となるフラッシュ領域に対応した物理領域としての複数のバンクと、
前記チップセットの構成に関するデータを格納するバイオス領域と、
起動時の設定・初期化に関するプログラムを格納するブートブロック領域とを備え、
前記ブートブロック領域の論理アドレスは、
前記バイオス領域の論理アドレスに連続したアドレスとして設定され、
前記バイオス領域の物理アドレスは、
前記バイオス領域の論理アドレスとは異なるアドレスであって、前記ブートブロック領域の物理アドレスとは不連続なアドレス又は前記ブートブロック領域の物理アドレスが属するセクタとは異なるセクタに属するアドレスとして設定され、
前記論理制御回路は、
前記チップセットと前記フラッシュメモリとの間で情報の授受を行うときに、両者の論理構成に合わせるための情報変換処理を実行してなり、
前記チップセットからのアクセスに応答して前記フラッシュメモリに対する制御信号を生成する制御レジスタと、
前記チップセットの出力によるシリアルのアドレス信号をパラレルのアドレス信号に変換して前記フラッシュメモリに出力するアドレスレジスタと、
前記チップセットの出力によるシリアルのデータ信号をパラレルのデータ信号に変換して前記フラッシュメモリに出力する第１のデータレジスタと、
前記フラッシュメモリの出力によるパラレルのデータ信号をシリアルのデータ信号に変換して前記チップセットに出力する第２のデータレジスタと、
前記プロセッサからのアクセスに応答して前記バンクの何れかを選択するための切替を指令するバンク切替レジスタと、
前記バンク切替レジスタの指令によるバンクを前記プロセッサのアクセス対象に選択する制御レジスタと、
前記チップセットからのアドレスを判別してアドレス変換の要否を判定する判定器と、
前記判定器からアドレス変換を要するとの判定結果が出力されたときに、前記チップセットからのアドレスのうち前記フラッシュメモリをアクセスするための論理アドレスを物理アドレスに変換するアドレス変換器とを備え、
前記アドレス変換器により変換された物理アドレスに従って前記フラッシュメモリをアクセスしてなる
情報処理装置。
【請求項２】
複数の記憶デバイスを有する記憶装置と、
上位装置からのコマンドに応答して前記記憶装置に対するデータの入出力処理を行うコントローラと、を備え、
前記コントローラは、
前記上位装置との通信を制御するホスト制御部と、
制御プログラムを格納するメモリと、
起動プログラム及び起動時の設定・初期化に関するプログラムを格納するフラッシュメモリと、
前記制御プログラムと起動プログラムに基づいて前記コマンドに応じた処理を実行するとともに、コントローラ全体の動作を制御するプロセッサと、
前記記憶装置に対するアクセスを制御する記憶制御部と、
前記ホスト制御部と前記記憶制御部との間に配置されて、前記プロセッサの処理に伴うデータの転送を制御するデータ転送制御部と、
前記プロセッサとメモリとフラッシュメモリおよびデータ転送制御部を転送対象として、当該転送対象に関するデータを中継するチップセットと、
前記チップセットと前記フラッシュメモリとの間に配置されて、前記チップセットと前記フラッシュメモリ間で情報の授受を行うときに両者の論理構成に合わせるための情報変換処理を実行する論理制御回路とを備え、
前記フラッシュメモリは、
前記プロセッサのアクセス対象となるフラッシュ領域に対応した物理領域としての複数のバンクと、
前記チップセットの構成に関するデータを格納するバイオス領域と、
起動時の設定・初期化に関するプログラムを格納するブートブロック領域とを備え、
前記ブートブロック領域の論理アドレスは、
前記バイオス領域の論理アドレスに連続したアドレスとして設定され、
前記バイオス領域の物理アドレスは、
前記バイオス領域の論理アドレスとは異なるアドレスであって、前記ブートブロック領域の物理アドレスとは不連続なアドレス又は前記ブートブロック領域の物理アドレスが属するセクタとは異なるセクタに属するアドレスとして設定され、
前記論理制御回路は、
前記チップセットからのアクセスに応答して前記フラッシュメモリに対する制御信号を生成する制御レジスタと、
前記チップセットの出力によるシリアルのアドレス信号をパラレルのアドレス信号に変換して前記フラッシュメモリに出力するアドレスレジスタと、
前記チップセットの出力によるシリアルのデータ信号をパラレルのデータ信号に変換して前記フラッシュメモリに出力する第１のデータレジスタと、
前記フラッシュメモリの出力によるパラレルのデータ信号をシリアルのデータ信号に変換して前記チップセットに出力する第２のデータレジスタと、
前記プロセッサからのアクセスに応答して前記バンクの何れかを選択するための切替を指令するバンク切替レジスタと、
前記バンク切替レジスタの指令によるバンクを前記プロセッサのアクセス対象に選択する制御レジスタと、
前記チップセットからのアドレスを判別してアドレス変換の要否を判定する判定器と、
前記判定器からアドレス変換を要するとの判定結果が出力されたときに、前記チップセットからのアドレスのうち前記フラッシュメモリをアクセスするための論理アドレスを物理アドレスに変換するアドレス変換器とを備え、
前記アドレス変換器により変換された物理アドレスに従って前記フラッシュメモリをアクセスしてなる
ストレージシステム。
【請求項３】
制御プログラムに基づいて記憶装置に対する情報の入出力処理を行うプロセッサと、
起動プログラムを格納するフラッシュメモリと、
前記プロセッサと前記フラッシュメモリとを転送対象として、当該転送対象に関する情報を中継するチップセットと、
前記チップセットと前記フラッシュメモリとの間に配置されて情報変換処理を実行する論理制御回路とを備え、
前記プロセッサの処理に従って前記記憶装置をアクセスする情報処理方法において、
前記フラッシュメモリは、
前記プロセッサのアクセス対象となるフラッシュ領域に対応した物理領域としての複数のバンクと、
前記チップセットの構成に関するデータを格納するバイオス領域と、
起動時の設定・初期化に関するプログラムを格納するブートブロック領域とを備え、
前記ブートブロック領域の論理アドレスは、
前記バイオス領域の論理アドレスに連続したアドレスとして設定され、
前記バイオス領域の物理アドレスは、
前記バイオス領域の論理アドレスとは異なるアドレスであって、前記ブートブロック領域の物理アドレスとは不連続なアドレス又は前記ブートブロック領域の物理アドレスが属するセクタとは異なるセクタに属するアドレスとして設定され、
前記論理制御回路は、
制御レジスタが前記チップセットからのアクセスに応答して前記フラッシュメモリに対する制御信号を生成する工程と、
アドレスレジスタが前記チップセットの出力によるシリアルのアドレス信号をパラレルのアドレス信号に変換して前記フラッシュメモリに出力する工程と、
第１のデータレジスタが前記チップセットの出力によるシリアルのデータ信号をパラレルのデータ信号に変換して前記フラッシュメモリに出力する工程と、
第２のデータレジスタが前記フラッシュメモリの出力によるパラレルのデータ信号をシリアルのデータ信号に変換して前記チップセットに出力する工程と、
バンク切替レジスタが前記プロセッサからのアクセスに応答して前記バンクの何れかを選択するための切替を指令する工程と、
制御レジスタが前記バンク切替レジスタの指令によるバンクを前記プロセッサのアクセス対象に選択する工程と、
判定器が前記チップセットからのアドレスを判別してアドレス変換の要否を判定する工程と、
アドレス変換器が前記判定器からアドレス変換を要するとの判定結果が出力されたときに、前記チップセットからのアドレスのうち前記フラッシュメモリをアクセスするための論理アドレスを物理アドレスに変換する工程と、
前記アドレス変換器により変換された物理アドレスに従って前記フラッシュメモリをアクセスする工程とを備える情報処理方法。
【請求項４】
請求項３記載の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークに接続されたストレージシステム等に用いられる情報処理装置の情報処理技術に関する。
【背景技術】
【０００２】
従来、情報処理装置として、プロセッサと、メモリと、インターフェイス制御部と、プロセッサとメモリおよびインターフェイス制御部間の通信を制御するシステム制御部を備え、メモリとシステム制御部との間でデータ転送を行うときに、システム制御部において、データを保護するための誤り検出符号を付加するか否かを、転送対象のデータが読み書きされるメモリのアドレスに基づいて判定し、データを保護するようにしたものが提案されている（特許文献１参照）。
【０００３】
この種の情報処理装置において、制御プログラムを主メモリに格納し、起動プログラムをフラッシュメモリに格納し、プロセッサとフラッシュメモリとの間にチップセットまたはシステムコントローラを配置し、チップセットまたはシステムコントローラによってデータの転送を中継するようにしたものがある。この情報処理装置においては、プロセッサとフラッシュメモリとの間にチップセットまたはシステムコントローラを配置することで、チップセットまたはシステムコントローラはフラッシュメモリを直接アクセスすることができる。
【０００４】
【特許文献１】特開２００７−２０７０６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術においては、プロセッサとフラッシュメモリとの間にチップセットまたはシステムコントローラを配置することで、チップセットまたはシステムコントローラは、フラッシュメモリを直接アクセスすることができるが、プロセッサとチップセットの仕様が変更になった場合、チップセットを単にフラッシュメモリに接続しても、チップセットからフラッシュメモリを直接アクセスすることができない。
【０００６】
そこで、本発明は、チップセットの仕様が変更になっても、チップセットの構成に合わせてフラッシュメモリをアクセスすることができる情報処理装置と情報処理方法およびこの情報処理装置を用いたストレージシステムを提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
前記目的を達成するために、本発明は、チップセットとフラッシュメモリとの間に論理制御回路を配置し、チップセットとフラッシュメモリ間で情報の授受を行うときに、論理制御回路により、チップセットとフラッシュメモリの論理構成に合わせるための情報変換処理を実行するようにしたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、チップセットの構成に合わせてフラッシュメモリをアクセスすることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。図１は、本発明に係る情報処理装置を適用したストレージシステムのブロック構成図である。図１において、ストレージシステム１０は、コントローラ１２、１４、記憶装置１６を備え、各コントローラ１２、１４は、記憶装置１６に接続されているとともに、通信ネットワーク（図示せず）を介してホスト計算機（上位装置）１８、２０に接続されている。
【００１０】
コントローラ１２、１４は、デュアル構成の情報処理装置として、ホスト制御部２２、プロセッサ（CPU）２４、ローカルメモリ２６、チップセット２８、データ転送制御部３０、キャッシュメモリ３２、LAN（Local  Area  Network）コントローラ３４、論理制御回路３６、フラッシュメモリ３８、SAS（Serial  Attached  SCSI）コントローラ４０、エキスパンダ４２を備えて構成されており、ホスト制御部２２がホスト計算機１８、２０に接続され、エキスパンダ４２が記憶装置１６に接続されている。記憶装置１６は、ハードディスクドライブ（HDD）などの不揮発性記憶媒体４４を複数個備えて構成されている。なお、コントローラ１２とコントローラ１４は同一の構成であるため、以下、コントローラ１２についてのみ説明する。
【００１１】
コントローラ１２におけるホスト制御部２２は、ホスト計算機１８との通信を制御するとともに、ホスト計算機１８とコマンドの授受を行うインターフェイスとして構成されている。プロセッサ（CPU）２４は、ローカルメモリ２６に格納された制御プログラムとフラッシュメモリ３８に格納された起動プログラムに基づいてホスト計算機１８からのコマンドに応じた処理を実行するとともに、コントローラ１２全体の動作を制御する。
【００１２】
チップセット２８は、プロセッサ２４、ローカルメモリ２６、フラッシュメモリ３８、データ転送制御部３０を転送対象として、これら転送対象に関するデータを中継する。
【００１３】
データ転送制御部３０は、コントローラ１２とコントローラ１４間のデータ転送とコントローラ１２内の各要素間におけるデータ転送を制御するとともに、プロセッサ２４からの指示にしたがって、ホスト計算機１８から与えられたライトデータをキャッシュメモリ３２に２重書きする機能を備えて構成されている。キャッシュメモリ３２は、データ転送制御部３０によって転送されるデータを一時的に記憶する記憶領域を構成している。
【００１４】
ローカルメモリ２６は、各種制御プログラム（マイクロプログラム）を格納するとともに、ホスト計算機１８から与えられるリードコマンド・ライトコマンドなどの各種コマンドを一時的に保持する記憶領域として構成されている。
【００１５】
SASコントローラ４０とエキスパンダ４２は、記憶装置１６との通信を制御するインターフェイスを構成する通信制御部として、データ転送制御部３０の制御によるデータを記憶装置１６に転送するとともに、記憶装置１６からのデータをデータ転送制御部３０に転送するようになっている。
【００１６】
フラッシュメモリ３８は、起動プログラムとともに、装置立ち上げ時に必要となる各デバイスの初期設定および診断に関するプログラム、例えば、BIOS（Basic  Input/Output  System）に関するプログラム（以下、バイオスに関するプログラムと称する。）を格納している。
【００１７】
論理制御回路３６は、チップセット２８とフラッシュメモリ３８との間に配置されて、チップセット２８とフラッシュメモリ３８間で情報の授受を行うときに、両者の論理に合わせるための情報変換処理を実行するデバイスとして、例えば、PLD（Programmable Logic Device）で構成されている。この論理制御回路３６は、図２に示すように、LPC（Low Pin Count）バスインターフェイス４６と、バス変換器４８と、フラッシュメモリインターフェイス５０と、汎用入出力ポート（General Purpose Input Output）５２で構成されている。
【００１８】
バス変換器４８は、図３に示すように、LPC（Low  Pin  Count）バス/フラッシュバス変換機能を有するデバイスとして、バッファ５４、５６、制御レジスタ５８、アドレスレジスタ６０、第１のデータレジスタ６２、第２のデータレジスタ６４、バッファ６６、６８を備えて構成されている。
【００１９】
制御レジスタ５８は、チップセット２８からLPC（Low  Pin  Count）バス７０、バッファ５４を介して、フラッシュメモリ３８をアクセスするための信号が入力されたときに、フラッシュメモリ３８をリード／ライトアクセスするための制御信号を生成し、制御信号をフラッシュメモリ３８に出力する。
【００２０】
アドレスレジスタ６０は、LPCバス７０からバッファ５４を介して、４ビット×７の信号として、時分割で送られてきたメモリアドレス（シリアルのアドレス信号）を２４ビットのパラレル信号に変換してフラッシュメモリ３８に出力する。
【００２１】
第１のデータレジスタ６２は、LPCバス７０からバッファ５４を介して４ビット×２の信号として、時分割で送られてきたデータ（シリアルのデータ信号）を８ビットのパラレル信号に変換してフラッシュメモリ３８に出力する。
【００２２】
一方、第２のデータレジスタ６４は、フラッシュメモリ３８からバッファ６８を介して送られてきた８ビットのパラレル信号を上位４ビット、下位４ビットに分割し、分割されたシリアルのデータ信号を、バッファ５６を介してLPCバス７０に出力する。
【００２３】
次に、論理制御回路３６を用いて、フラッシュメモリ３８に対してリード/ライトアクセスを行うときの作用を図４のフローチャートにしたがって説明する。まず、チップセット２８から２８ビットのアドレス信号が出力されたときには、バス変換器４８のアドレスレジスタ６０は、チップセット２８から送られてきた２８ビットのアドレス信号を保持する（S１）。このあとバス変換器４８がチップセット２８からライトコマンドを取得したときには、第１のデータレジスタ６２は、チップセット２８から出力された８ビットのデータを保持する（S２）。
【００２４】
このあと、制御レジスタ５８は、フラッシュメモリ３８に対して、ライトアクセスするための制御信号を出力し、アドレスレジスタ６０は、フラッシュメモリ３８に対してアクセス対象を特定するためのアドレス信号を出力し、第１のデータレジスタ６２は、フラッシュメモリ３８に対してライトすべきデータを転送する（S３）。これにより、フラッシュメモリ３８に対するライトアクセスは完了する。
【００２５】
一方、バス変換器４８がリードコマンドを取得したときには、リードコマンドにしたがった処理として、制御レジスタ５８は、フラッシュメモリ３８をリードアクセスするための制御信号をフラッシュメモリ３８に出力し、アドレスレジスタ６０は、アクセス対象を特定するためのアドレス信号をフラッシュメモリ３８に出力する（S４）。
【００２６】
このあと、リードアクセスに伴ったフラッシュメモリ３８から８ビットのデータが出力されると、この８ビットのデータは第２のデータレジスタ６０に入力される（S５）。第２のデータレジスタ６４は、入力されて８ビットのデータを、上位４ビットのデータと下位４ビットのデータに分割し、分割されたデータをバッファ５６を介してチップセット２８に出力する（S６）。これにより、フラッシュメモリ３８に対するリードアクセスは完了する。
【００２７】
本実施例によれば、プロセッサ２４、チップセット２８の仕様の変更に伴ってチップセット２８とフラッシュメモリ３８とを直接接続できない場合でも、チップセット２８とフラッシュメモリ３８との間で情報の授受を行うときに、両者の論理構成に合わせるための情報変換処理を論理制御回路３６で実行するようにしたため、プロセッサ２４はチップセット２８、論理制御回路３６を介してフラッシュメモリ３８をアクセスすることができる。
【００２８】
次に本発明の第２実施例について説明する。
ストレージシステム１０においては、コントローラ１２から記憶装置１６にアクセスするに際して、（a）デバイスの初期設定、（b）デバイスの診断を行うためのプログラムをフラッシュメモリ３８に格納する必要があり、フラッシュメモリ３８としては容量の大きいものが必要となる。この際、フラッシュメモリ３８の容量として、例えば、３２MBのものが必要であっても、チップセット２８からフラッシュメモリ３８にアクセスできる領域が１６MBとなっていた場合、チップセット２８は、下位１６MB領域をアクセスすることは可能であるが、上位１６MB領域については、メモリ空間にマッピングされていないため、アクセスすることは不可能となる。
【００２９】
そこで、本実施例においては、論理制御回路３６にバンク切替機能を付加するとともに、フラッシュメモリ３８として、１６MB＋１６MBの容量を有するものを用い、メモリ空間では１６MB分しか配置できないフラッシュメモリ領域を、３２MB分の領域として、アクセスできるようにしたものである。
【００３０】
具体的には、図５および図６に示すように、フラッシュメモリ３８は、プロセッサ２４のアクセス対象となるフラッシュ領域（１６MB）A１と、フラッシュ領域（１６MB）A１に対応した物理領域として、１６MBのバンクB０と１６MBのバンクB１を備えて構成されている。フラッシュ領域A１は、メインメモリ領域A２のアドレスを「０x００００  ００００」〜「０xFEFF FFFF」としたときに、アドレスとして、「０xFF００  ００００」〜「０xFFFF  FFFF」が割当てられている。各バンクB０、B１に対するアドレスは同じに設定されている。
【００３１】
一方、バス変換器４８には、チップセット２８からLPCバス７０を介して入力されたアクセスに応答して、バンクB０、B１のいずれかを選択するための切替を指令するバンク切替レジスタ７２が付加されているとともに、制御レジスタ５８として、バンク切替レジスタ７２から、バンクB０を選択するための指令が出力されたときに、バンクB０を選択するためのチップセレクト信号CS０をバンクB０に出力し、バンク切替レジスタ７２から、バンクB１を選択するための指令が出力されたときには、バンクB１を選択するためのチップセレクト信号CS１をバンクB１に出力する機能を有するものが用いられている。
【００３２】
次に、本実施例の作用を図７のフローチャートにしたがって説明する。まず、マイクロプロセッサ２４からのアクセスがチップセット２８を介して論理制御回路３６に入力されたときに、論理制御回路３６は、プロセッサ２４からのリード/ライトアクセスを基に１６MB以下の空間にアクセスするか否かを判定し（S１１）、１６MB以下の空間にアクセスするときには、バンク切替レジスタ７２をバンクB０側に設定する（S１２）。これにより、制御レジスタ５８からバンクB０に対してチップセレクト信号CS０が出力され、バンクB０がリード/ライトアクセスされ、このルーチンでの処理を終了する。
【００３３】
一方、１６MB以下の空間にアクセスしないときには、論理制御回路３６は、バンク切替レジスタ７２をバンクB１側に設定する（S１３）。これにより、制御レジスタ５８から、バンクB１にチップセレクタ信号CS１が出力され、バンクB１に対するリード/ライトアクセスが実行され、このルーチンでの処理を終了する。
【００３４】
本実施例によれば、フラッシュメモリ３８を、プロセッサ２４のアクセス対象となるフラッシュ領域（１６MB）A１と、フラッシュ領域（１６MB）A１に対応した物理領域として、１６MBのバンクB０と１６MBのバンクB１を備えたもので構成するとともに、論理制御回路３６にバンク切替機能を付加し、フラッシュ領域（１６MB）A１がアクセスされたときに、バンクB０またはバンクB１のいずれかをアクセスするようにしたため、メモリ空間では１６MB分しか配置できないフラッシュメモリ領域A１を、３２MB分の領域として、アクセスすることができる。
【００３５】
次に、本発明の第３実施例について説明する。本実施例は、フラッシュメモリ３８に、起動プログラムの他に、バイオス（BIOS）プログラムを格納した場合、バイオスプログラムに対して、イレース/ライト処理をセクタごとに実行すると、バイオスプログラムの一部が、そのままではイレースされるので、これを防止するために成されたものである。
【００３６】
具体的には、マイクロプロセッサ２４とチップセット２８の初期設定をバイオスプログラムによって実行するに際して、図８に示すように、フラッシュメモリ３８の論理領域として、ブートブロック領域（先頭アドレス「０xFFFF  ００００」）A１１、メインバイオス領域（先頭アドレス「０xFFF０  ００００」）A１２、リザーブ領域（先頭アドレス「０xFFEF  ００００」）A１３、シャドウバイオス領域（「０xFFE０  ００００」）A１４が割当てられている。
【００３７】
ブートブロック領域A１１は、電源投入時に必要な最小限のデバイスであるプロセッサ２４、チップセット２８の初期化を行うためのプログラムを格納する領域である。メインバイオス領域A１２は、チップセット２８の構成の設定を行うためのプログラムを格納するための領域である。シャドウバイオス領域A１４は、メインバイオス領域A１２が破壊されたときに実行するためのプログラム領域であって、メインバイオス領域A１２と同一のプログラムが格納されている。すなわち、メインバイオス領域A１２とシャドウバイオス領域A１４でバイオスの２重化が施されている。
【００３８】
ブートブロック領域A１１とシャドウバイオス領域A１４は書き換え不要の領域で固定されているが、メインバイオス領域A１２はバイオスのバージョンが更新されることを考慮し、書き換え（サポート）可能な領域とされている。
【００３９】
ここで、ブートブロック領域A１１とメインバイオス領域A１２は互いに連続したアドレス（リニアアドレス）を設定することが必要となっているが、イレース/ライト処理はセクタごとに実行される。このため、例えば、セクタ０（１２８KB）の中に、ブートブロック領域A１１とメインバイオス領域A１２の一部が含まれていると、メインバイオス領域A１２のイレース/ライト処理時に、ブートブロック領域A１１も同時にイレースされてしまう。
【００４０】
そこで、本実施例においては、ブートブロック領域A１１、メインバイオス領域A１２、リザーブ領域A１３、シャドウバイオス領域A１４から構成される論理領域を、ブートブロック領域A２１、リザーブ領域A２２、シャドウバイオス領域A２３、リサーブ領域A２４、メインバイオス領域A２５からなる物理領域に変換するためのアドレス変換機能を論理制御回路３６に付加することとしている。
【００４１】
この際、フラッシュメモリ３８の論理アドレスは、「０xFFE０  ００００」〜「０xFFFF  FFFF」に設定され、この論理アドレスに対応する物理アドレスは、「０xE０００００」〜「０xFFFFFF」に設定されているとともに、チップセット２８からのアドレスのうち２０ビット目が「０」のときには、論理アドレス「０xFFE０  ００００」〜「０xFEF  FFFF」の領域（シャドウバイオス領域Ａ１４、リザーブ領域Ａ１３）が対応し、２０ビット目が「１」のときには、論理アドレス「０xFFF０  ００００」〜「０xFFFF  FFFF」の領域（メインバイオス領域Ａ１２、ブートブロック領域Ａ１１）が対応するようになっている。
【００４２】
また、チップセット２８からのアドレスのうち２０ビット目が「０」のときに、論理アドレスが「０xFFE０００００」〜「０xFFEE  FFFF」でアドレス変換するときには、この論理アドレスは、物理アドレス「０xF00000」〜「０xFEFFFF」に変換され、チップセット２８からのアドレスのうち２０ビット目が「１」のときに、論理アドレスが「０xFFF０  ００００」〜「０xFFFE  FFFF」でアドレス変換するときには、この論理アドレスは、物理アドレス「０xE00000」〜「０xEEFFFF」に変換される。
【００４３】
さらに、物理領域のうち、例えば、セクタ０（１２８KB）に属する領域として、ブートブロック領域A２１、リザーブ領域（空き領域）A２２が割当てられている。また、物理領域のシャドウバイオス領域A２３とリザーブ領域A２４は、論理領域のシャドウバイオス領域A１４とリザーブ領域A１３の一部を含む領域に対応して物理アドレス（「０xF０００００」〜「０xFEFFFF」」）が設定され、物理領域のメインバイオス領域A２５は、論理領域のメインバイオス領域A１２に対応して物理アドレス（「０xE０００００」〜「０xEEFFFF」」）が設定されている。
【００４４】
すなわち、ブートブロック領域Ａ１１の論理アドレス（「０xFFFF  ００００」〜「０xFFFF  FFFF」」）は、メインバイオス領域Ａ１２の論理アドレス（「０xFFF０  ００００」〜「０xFFFE  FFFF」）に連続したアドレス（リニアアドレス）として設定され、メインバイオス領域Ａ２５の物理アドレス（「０xE０００００」〜「０xEEFFFF」」）は、メインバイオス領域Ａ１２の論理アドレス「０xFFF０  ００００」〜「０xFFFE  FFFF」とは異なるアドレスであって、ブートブロック領域Ａ２１の物理アドレス（「０xFF００００」〜「０xFFFFF」）が属するセクタ（セクタ０）とは異なるセクタ、例えば、セクタ１０に属するアドレス、あるいは、ブートブロック領域Ａ２１の物理アドレス（「０xFF００００」〜「０xFFFFF」）とは不連続なアドレスとして設定されている。
【００４５】
一方、論理制御回路３６は、図９に示すように、アドレス変換機能を有するデバイスとして、アンドゲート７４、７６、７８、バンクレジスタ８０、アドレス変換レジスタ８２、セレクタ８４を備えて構成されている。
【００４６】
アンドゲート７４、７６、７８とバンクレジスタ８０およびアドレス変換レジスタ８２は、チップセットからのアドレスを判別してアドレス変換の要否を判定する判定器として構成され、セレクタ８４は、判定器からアドレス変換を要するとの判定結果が出力されたときに、チップセット２８からのアドレスのうちフラッシュメモリ３８をアクセスするための論理アドレスを物理アドレスに変換し、変換された物理アドレスに従ってフラッシュメモリ３８をアクセスするアドレス変換器として構成されている。
【００４７】
論理制御回路３６は、チップセット２８からLPCバス７０を介してメモリアドレス（アドレス信号）が入力されたときに、２８ビット分のアドレス信号を保持し、アドレス２３〜２１ビットが全て“１”か否か、すなわち１６進数で０xEあるいは０xFであるか否かをアンドゲート７４が判定し、アドレス１９〜１６ビットが全て“１”以外、すなわち１６進数で０xF以外であるか否かをアンドゲート７６が判定する。各アンドゲート７４、７６は判定結果が肯定のときには“１”の信号をアンドゲート７８に出力し、それ以外のときには“０”の信号をアンドゲート７８に出力する。
【００４８】
アンドゲート７８は、バンクレジスタ８０がバンクB０側に設定され、且つアドレス変換レジスタ８２から有効（Enable）の信号が出力されているときに、アンドゲート７４、７６から“１”の信号が出力されていることを条件に、“１”の信号をセレクタ８４に出力し、それ以外のときには“０”の信号をセレクタ８４に出力する。セレクタ８４はアンドゲート７８から“１”の信号が出力されたときには、全ての条件が満たされたとして、アドレス２０ビット目の値を反転（例えば、「０」を「１」に、または「１」を「０」に反転）させる。一方、アンドゲート７８から“０”の信号が出力されたときには、条件を満たしていないとして、アドレス２０ビット目の信号をそのままフラッシュメモリ３８に出力する。
【００４９】
次に、具体的な処理内容を図１０のフローチャートにしたがって説明する。まず、論理制御回路３６は、チップセット２８から出力された２８ビット分のアドレスを保持する（S２１）。この後、論理制御回路３６では、アドレス２３〜２１ビットが全て“１”か否かをアンドゲート７４が判定し、アドレス１９〜１６ビットが全て“１”以外か否かをアンドゲート７６が判定する。続いて、論理制御回路３６は、アドレス変換レジスタ８２を“１”に設定し、バンクレジスタ８０をバンクB０側に設定するための処理を行う（S２２）。
【００５０】
このあと論理制御回路３６におけるアンドゲート７８は、４つの条件（（１）アドレス２３〜２１ビットが全て“１”、（２）アドレス１９〜１６ビットが全て“１”以外、（３）アドレス変換レジスタ８２が“１”、（４）バンクレジスタ８０がバンクB０側）を全て満たしているか否かを判定し、判定結果をセレクタ８４に出力する（S２３）。４つの条件を全て満たしているときには、セレクタ８４は、アドレス２０ビット目を反転し（S２４）、反転された信号をフラッシュメモリ３８に出力して、フラッシュメモリ３８をアクセスし（S２５）、このルーチンでの処理を終了する。
【００５１】
例えば、論理アドレスが「０xFFE０  ００００」〜「０xFFEE  FFFF」でアドレス変換するときに、チップセット２８からのアドレスのうち２０ビット目が「１」から「０」に反転したときに、この論理アドレスは、物理アドレス「０xF00000」〜「０xFEFFFF」に変換される。この場合、論理制御回路３６は、フラッシュメモリ３８のリザーブ領域Ａ２２、シャドウバイオス領域Ａ２３をアクセスし、シャドウバイオス領域Ａ２３に対する書換やイレースなどの処理を実行する。このとき、イレースなどの処理がセクタ単位で実行されても、ブートブロック領域Ａ２１は、シャドウバイオス領域Ａ２３とは異なるセクタに属するので、ブートブロック領域Ａ２１に格納されたプログラムなどがイレースされるのを防止できる。
【００５２】
また、論理アドレスが「０xFFF０  ００００」〜「０xFFFE  FFFF」でアドレス変換するときに、チップセット２８からのアドレスのうち２０ビット目が「０」から「１」に反転したときには、この論理アドレスは、物理アドレス「０xE00000」〜「０xEEFFFF」に変換される。この場合、論理制御回路３６は、フラッシュメモリ３８のメインバイオス領域Ａ２５をアクセスし、メインバイオス領域Ａ２５に対する書換やイレースなどの処理を実行する。このとき、イレースなどの処理がセクタ単位で実行されても、ブートブロック領域Ａ２１は、メインバイオス領域Ａ２５とは異なるセクタに属するので、ブートブロック領域Ａ２１に格納されたプログラムなどがイレースされるのを防止できる。
【００５３】
一方、４つの条件を満たしていないときには、セレクタ８４はアドレス２０ビット目をそのままにしてフラッシュメモリ３８に出力し（S２６）、アドレス変換を行うことなく、論理アドレスに従ってフラッシュメモリ３８をアクセスし（S２７）、このルーチンでの処理を終了する。
【００５４】
既述の実施形態によれば、メインバイオス領域Ａ２５を全て書き換えることができるとともに、メインバイオス領域Ａ２５に対してイレースなどの処理をセクタ単位で実行しても、ブートブロック領域Ａ２１を、メインバイオス領域Ａ２５とは異なるセクタに設定したので、ブートブロック領域Ａ２１に格納されたプログラムなどがイレースされるのを防止できる。
【図面の簡単な説明】
【００５５】
【図１】本発明の第１実施例を示すストレージシステムのブロック構成図である。
【図２】論理制御回路のブロック構成図である。
【図３】論理制御回路とフラッシュメモリの関係を説明するためのブロック構成図である。
【図４】フラッシュメモリに対するリード/ライトアクセスを説明するためのフローチャートである。
【図５】メモリ空間におけるフラッシュ領域のマッピング構成図である。
【図６】本発明の第２実施例における論理制御回路とフラッシュメモリとの関係を説明するための構成図である。
【図７】第２実施例の作用を説明するためのフローチャートである。
【図８】バイオス領域におけるリニアアドレスと物理アドレスとの関係を説明するための図である。
【図９】本発明の第３実施例における論理制御回路のブロック構成図である。
【図１０】第３実施例の作用を説明するためのフローチャートである。
【符号の説明】
【００５６】
１０  ストレージシステム、１２、１４  コントローラ、１６  記憶装置、１８、２０  ホスト計算機、２２  ホスト制御部、２４  マイクロプロセッサ、２６  ローカルメモリ、２８  チップセット、３０  データ転送制御部、３２  キャッシュメモリ、３６  論理制御回路、３８  フラッシュメモリ、５８  制御レジスタ、６０  アドレスレジスタ、６２  第１のデータレジスタ、６４  第２のデータレジスタ、７２  バンク切替レジスタ、７４、７６、７８  アンドゲート、８０  バンクレジスタ、８２  アドレス変換レジスタ、８４  セレクタ
【図１】
0005143601.tif 000002
【図２】
0005143601.tif 000003
【図３】
0005143601.tif 000004
【図４】
0005143601.tif 000005
【図５】
0005143601.tif 000006
【図６】
0005143601.tif 000007
【図７】
0005143601.tif 000008
【図８】
0005143601.tif 000009
【図９】
0005143601.tif 000010
【図１０】
0005143601.tif 000011