(57)【要約】【課題】  ＸＩＰ機能支援を可能にするシリアルフラッシュコントローラ及び該コントローラを有するメモリチップを提供することを目的とする。【解決手段】  本発明による制御装置は、システムインタフェース部から受信される主制御部の命令語によってシリアルフラッシュの指定されたメモリアドレスをアクセスし、主制御部から要求されたデータの読み出しまたは書き込みを行うキャッシュモジュールと、シリアルフラッシュに書き込まれたブートコードを読み出してバッファに格納し、主制御部からブートコードが要求されると、直ちに伝送してシステムブートを実行させるブートローダーが設けられたシリアルフラッシュコントローラと、キャッシュモジュールまたはシリアルフラッシュコントローラとシリアルフラッシュとの間のデータ送受信を処理するフラッシュインタフェース部とを備えることを特徴とする。【選択図】  図２
2004220557.tif 000002
【特許請求の範囲】
【請求項１】
システムインタフェース部から受信される主制御部の命令語によってシリアルフラッシュの指定されたメモリアドレスをアクセスし、前記主制御部から要求されたデータの読み出しまたは書き込みを行うキャッシュモジュールと、
前記シリアルフラッシュに書き込まれたブートコードを読み出してバッファに格納し、前記主制御部からブートコードが要求されると、直ちに伝送してシステムブートを実行させるブートローダーが設けられたシリアルフラッシュコントローラと、
前記キャッシュモジュール及びシリアルフラッシュコントローラとシリアルフラッシュとの間のデータ送受信を処理するフラッシュインタフェース部とを備えることを特徴とするシリアルフラッシュにおけるＸＩＰ実行のための制御装置。
【請求項２】
前記キャッシュモジュールが、
前記主制御部から読出し演算が要求されると、前記シリアルフラッシュにアクセスして指定されたメモリアドレスが属するページを読み出し、読み出されたページから前記メモリアドレスに該当するデータを前記主制御部に伝送するキャッシュコントローラと、
前記キャッシュコントローラの動作制御により、読み出されたページに関する格納情報を書き込むタグ格納部と、
前記読み出されたページを書き込むデータ格納部とを備えることを特徴とする請求項１に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御装置。
【請求項３】
前記キャッシュコントローラが、
前記読出し演算時、前記タグ格納部とデータ格納部を参照して、前記タグ格納部に前記メモリアドレスを含むページが書き込まれていると、前記データ格納部から該当するデータを検出して前記主制御部に伝送する機能をさらに含むことを特徴とする請求項１に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御装置。
【請求項４】
前記シリアルフラッシュコントローラが、
前記主制御部からの要求が予想されるデータを、前記シリアルフラッシュから予め読み出してバッファに格納し、前記主制御部から要求されると、直ちに提供するプレフェッチをさらに備えることを特徴とする請求項１に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御装置。
【請求項５】
前記データ格納部とタグ格納部が、ＳＲＡＭであることを特徴とする請求項１に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御装置。
【請求項６】
シリアルセルタイプのシリアルフラッシュと、
前記シリアルフラッシュにアクセスし、システムの主制御部から要求される演算によりバッファに予め格納されたシステムブートのためのブートコードを直ちに提供し、または指定されたメモリアドレスをアクセスし、該当するデータの読み出しまたは書き込みを行うコントローラとを備えることを特徴とするシリアルフラッシュにおけるＸＩＰ実行のための制御装置を用いたフラッシュメモリチップ。
【請求項７】
前記コントローラが、
システムインタフェース部から受信される主制御部の命令語によってシリアルフラッシュの指定されたメモリアドレスをアクセスし、前記主制御部から要求されたデータの読み出しまたは書き込みを行うキャッシュモジュールと、
前記シリアルフラッシュに書き込まれたブートコードを読み出してバッファに格納し、前記主制御部からブートコードが要求されると、直ちに伝送してシステムブートを実行させるシリアルフラッシュコントローラと、
前記キャッシュモジュール及びシリアルフラッシュコントローラとシリアルフラッシュとの間のデータ送受信を処理するフラッシュインタフェース部とを備えることを特徴とする請求項６に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御装置を用いたフラッシュメモリチップ。
【請求項８】
システムに電源が印加されると、シリアルフラッシュにアクセスし、初期ブートのためのブートコードを読み出してバッファに格納するステップと、
前記ブートコードの格納が完了し、前記システムの主制御部からブートコードが要求されると、前記バッファからブートコードを読み出して伝送し、前記主制御部から要求される演算を処理するステップとを含むことを特徴とするシリアルフラッシュにおけるＸＩＰ実行のための制御方法。
【請求項９】
前記ブートコードを読み出して伝送するステップが、
前記主制御部からブートコード読出し命令語を受信するステップと、
前記受信されたブートコード読出し命令語により、前記バッファに格納されたブートコードを読み出すステップと、
前記読み出されたブートコードを、前記主制御部に伝送するステップとを含むことを特徴とする請求項８に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御方法。
【請求項１０】
前記主制御部のシリアルフラッシュＩＤ読出し要求により伝送されるシリアルフラッシュＩＤ読出し命令語を受信するステップと、
前記受信されたシリアルフラッシュＩＤ読出し命令語により、前記コントローラのキャッシュモジュールから前記シリアルフラッシュにアクセスするステップと、
前記シリアルフラッシュにおいて前記主制御部から要求される前記シリアルフラッシュＩＤが属するページ全体を読み出してバッファに格納し、必要なデータを順次的に伝送するステップとをさらに含むことを特徴とする請求項８に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御方法。
【請求項１１】
前記主制御部の所定のデータ書込み要求により伝送される前記データに対するメモリアドレスと共にデータ書込み命令語を受信するステップと、
前記受信されたデータ書込み命令語により、前記主制御部から伝送されるデータをバッファに格納するステップと、
前記バッファに格納されたデータを、前記シリアルフラッシュのマッピング技法により割り当てられるメモリアドレスに書き込むステップとをさらに含むことを特徴とする請求項８に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御方法。
【請求項１２】
前記主制御部の所定のデータ読出し要求により伝送される前記データに対するメモリアドレスと共に読出し命令語を受信するステップと、
前記受信された読出し命令語により、前記メモリアドレスを前記コントローラのタグ格納部で検索するステップと、
前記検索の結果、前記メモリアドレスが検索されると、前記コントローラのデータ格納部で該当するデータを検出して前記主制御部に伝送するステップと、
前記検索の結果、前記メモリアドレスが検索されないと、前記シリアルフラッシュにアクセスし、前記メモリアドレスが属するページを読み出してバッファに格納し、前記メモリアドレスのデータを検出して前記主制御部に伝送するステップとをさらに含むことを特徴とする請求項８に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御方法。
【請求項１３】
前記シリアルフラッシュにアクセスし、読み出されたページを通じて前記主制御部から要求されたデータを伝送するステップが、
前記読み出されたページに関する格納情報をタグ格納部に書き込み、読み出されたページをデータ格納部に書き込むステップをさらに含むことを特徴とする請求項１２に記載のシリアルフラッシュにおけるＸＩＰ実行のための制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルフラッシュメモリにおける直接実行のための制御装置及びその方法、これを用いたフラッシュメモリチップに関し、特に、所定の格納容量を有するハードウェアコントローラによってシリアルフラッシュメモリに接近し、必要なデータをアクセスしまたは実行させるようにするシリアルフラッシュメモリにおける直接実行のための制御装置及びその方法、これを用いたフラッシュメモリチップに関する。
【背景技術】
【０００２】
一般に、フラッシュメモリは、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）のように一度書き込んだ内容を電源が供給されなくても格納する不揮発性を有するとともに、書込み可能なメモリであり、製造方法により、ビット線と接地線との間にセルがパラレルに配置される構造のパラレルフラッシュメモリ（以下、パラレルフラッシュという）と、シリアルに配置される構造のシリアルフラッシュメモリ（以下、シリアルフラッシュという）に大別される。
【０００３】
パラレルフラッシュは、代表的にＥＥＰＲＯＭ型（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）、ＮＯＲ型、及びＮＯＲ型の変形構造であるＤＩＮＯＲ（Ｄｉｖｉｄｅｄ Ｂｉｔ−ｌｉｎｅ ＮＯＲ）型があり、セル順に関係なく、任意の番地を読み出しまたは書き込む方式（Ｒａｎｄｏｍ Ａｃｃｅｓｓ）でバイト単位のアクセスが可能なデバイスである。
【０００４】
しかし、パラレルフラッシュは、セル毎にビット線のコンタクト電極が必要なので、シリアルフラッシュに比べてセルの面積が大きくなる問題点があった。
【０００５】
シリアルフラッシュは、代表的にＮＡＮＤ型、ＡＮＤ型があり、先ず該当ブロックを選んだ後にシリアルに連結した各セルを読み出す方式であり、ブロックを基本単位としてアクセスされるブロックデバイスである。
【０００６】
シリアルフラッシュにおいてブロックは、一度の消去演算で消すことができる単位を示すものであり、ページは、読出し／書込み演算時に読み出しまたは書き込むことができるデータのサイズを意味する。
【０００７】
このようなシリアルフラッシュは、パラレルフラッシュに比べ、書込み速度が高速であり、比較的安価であり、高容量化しやすいという長所があり、大容量のデータを格納するための用途に広く使われており、バイト単位のアクセスが不可能なため、書き込まれたデータをメインメモリに移さず、直ちに実行できる直接実行（ｅＸｃｕｔｅ Ｉｎ Ｐｌａｃｅ；以下、ＸＩＰという）機能を提供できない。
【０００８】
これにより、通常、シリアルフラッシュは、補助的なデータ格納装置として用い、ＲＯＭにシステムブートのためのブートコードを格納し、またはシリアルフラッシュを分けてブートコードとデータを管理するようにする。
【０００９】
このため、通常、シリアルフラッシュは、補助的なデータ格納装置として用い、ＸＩＰが可能なＮＯＲ型フラッシュメモリやＲＯＭにシステムブートのためのブートコードを格納している。
【００１０】
図１ａは、従来のＮＯＲ型フラッシュメモリを用いたシステムブート過程を示すものであり、図１ｂは、シリアルフラッシュを用いたシステムブート過程を示すものである。
【００１１】
図１ａに示すように、ＮＯＲ型フラッシュメモリはバイト単位のアクセスが可能なため、システムの主制御部におけるシステムブートのためのオペレーティングシステム（ＯＳ）イメージ及びデータを含むＯＳブートコードを、ＮＯＲ型フラッシュメモリから直ちに読み出してシステムブートを実行するようになる。
【００１２】
図１ｂに示すように、シリアルフラッシュはＮＯＲ型フラッシュメモリまたはＲＯＭとは異なり、バイト単位のアクセスが不可能なため、システムブートのためのデータをブートロムのブートローダーから読み出し（１）、シリアルフラッシュからシステムブートの際に要求されるＯＳイメージを含むＯＳブートコードが属するページ全体を読み込み、メインメモリにコピーした後、ＯＳイメージを読み出して主制御部に伝送する（２）。
【００１３】
即ち、システムブートのために主制御部から要求されるＯＳイメージを提供するために、シリアルフラッシュからＯＳブートコードが属するページ全体を読み出してメインメモリに書き込み、ＯＳイメージのみを読み出して主制御部に伝送することにより、主制御部でシステムブート（ＯＳ Ｌｏａｄｉｎｇ）を実行するようにする（３）。
【００１４】
このように、シリアルフラッシュはパラレルフラッシュであるＮＯＲ型フラッシュメモリまたはＲＯＭとは異なり、ＸＩＰが支援されないため、システムブートの際に要求されるＯＳブートコードを実行させるためには、メインメモリに移し実行させなければならないので、実行時間が遅れ、メインメモリに移されたブートコードによってメインメモリで使用可能な格納空間が減るようになる問題点があった。
【００１５】
特に、最近、各種の応用プログラム及び付加機能により、オペレーティングシステム（ＯＳ）のサイズが大きくなりつつあり（例えば、ＷｉｎＣＥの場合、１６〜３２ＭＢ）、シリアルフラッシュから読み出されたブートコードがメインメモリに占める容量がさらに大きくなり、メインメモリの効率を下げる問題点があった。
【００１６】
従って、より安価または同じ価格でさらに多くのメモリ容量を用いてプログラムを格納し、必要に応じて、フラッシュメモリ上で直ちにデータを実行できるようにＸＩＰ機能が支援されるシリアルフラッシュが望まれている。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、上記問題点に鑑みなされたものであり、所定の格納容量を有するシリアルフラッシュコントローラにおいて、シリアルフラッシュにアクセスして必要なデータが属するページ全体を読み込み、主制御部に要求されたデータを伝送しまたは実行させ、シリアルフラッシュにおけるＸＩＰ機能支援を可能にすることを目的とする。
【００１８】
本発明は、ＸＩＰ支援が可能なシリアルフラッシュコントローラとシリアルフラッシュをフラッシュメモリチップに提供することにより、既存のＲＯＭに代えて、フラッシュメモリチップを用いることができるようにすることを他の目的とする。
【課題を解決するための手段】
【００１９】
上記の目的を達成するため、本発明によるシリアルフラッシュにおけるＸＩＰのための制御装置は、システムインタフェース部から受信される主制御部の命令語によってシリアルフラッシュの指定されたメモリアドレスをアクセスし、主制御部から要求されたデータの読み出しまたは書き込みを行うキャッシュモジュールと、シリアルフラッシュに書き込まれたブートコードを読み出してバッファに格納し、主制御部からブートコードが要求されると、直ちに伝送してシステムブートを実行させるブートローダーが設けられたシリアルフラッシュコントローラと、キャッシュモジュールまたはシリアルフラッシュコントローラとシリアルフラッシュとの間のデータ送受信を処理するフラッシュインタフェース部とを備えることを特徴とする。
【００２０】
本発明によるシリアルフラッシュにおけるＸＩＰのための制御方法は、システムに電源が印加されると、シリアルフラッシュにアクセスし、初期ブートのためのブートコードを読み出してバッファに格納するステップと、ブートコードの格納が完了し、システムの主制御部からブートコードが要求されると、バッファからブートコードを読み出して伝送し、前記主制御部から要求される演算を処理するステップとを含むことを特徴とする。
【００２１】
本発明によるシリアルフラッシュにおけるＸＩＰのための制御装置を用いたフラッシュメモリチップは、シリアルセルタイプのシリアルフラッシュと、シリアルフラッシュにアクセスし、システムの主制御部から要求される演算によりバッファに予め格納されたシステムブートのためのブートコードを直ちに提供し、または指定されたメモリアドレスをアクセスし、該当するデータの読み出しまたは書き込みを行うコントローラとを備えることを特徴とする。
【発明の効果】
【００２２】
以上、本発明によると、シリアルフラッシュにアクセスし、必要なページを読み出して主制御部に提供するシリアルフラッシュコントローラによって、シリアルフラッシュにおけるＸＩＰ機能を支援することができる。
【００２３】
また、ＲＯＭまたはＮＯＲ型フラッシュに代えて、ＸＩＰが可能なシリアルフラッシュコントローラを含むシリアルフラッシュメモリチップを用い、同じ価格またはより安価で補助格納空間を提供することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の好ましい実施の形態を、添付図面に基づいて詳しく説明する。
図２は、本発明によるシリアルフラッシュにおけるＸＩＰのための制御装置及びこれに対するシリアルフラッシュアクセス装置を示すものである。
【００２５】
図２に示すように、シリアルフラッシュアクセス装置は、シリアルフラッシュ１００と、シリアルフラッシュ１００に書き込まれたデータを読み出しまたは書き込むための制御命令語を発生させるシステムの主制御部３００と、主制御部３００で発生した制御命令語によりシリアルフラッシュにアクセスして相応する動作制御を行う制御装置（以下、コントローラという）５００とで構成されている。
【００２６】
シリアルフラッシュ１００は、シリアルセルタイプのフラッシュメモリを示すものであり、例えば、シリアルフラッシュ１００のうち、５２８ｂｙｔｅで構成されるＮＡＮＤ型フラッシュの場合は、５１２ｂｙｔｅのデータブロックと１６ｂｙｔｅのスペアブロックからなっている。
【００２７】
このようなシリアルフラッシュのデータブロックは、図２に別途示すように、初期オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ：ＯＳ）のブートのためのブートコードが書き込まれるブート領域（１００ＫＢ）１０１と、オペレーティングシステム及び応用プログラムが書き込まれるオペレーティングシステム領域（２０ＭＢ）１０３と、オペレーティングシステム領域１０３に書き込まれたプログラム実行のためのデータが書き込まれるデータ領域（２０ＭＢ）１０５と、オペレーティングシステムの動作運用過程で発生する信号及びユーザにより入力されるデータが書き込まれるファイルシステム領域（２４ＭＢ）１０７とで構成されている。
【００２８】
図３は、このようなシリアルフラッシュアクセス装置のうち、本発明によるシリアルフラッシュ１００におけるＸＩＰのためのコントローラ５００の構成を概略的に示したブロック図である。
【００２９】
図３に示すように、コントローラ５００は、主制御部３００との信号送受信のためのシステムインタフェース部５１０と、該システムインタフェース部５１０から受信される主制御部３００の命令語により、シリアルフラッシュ１００の指定されたメモリアドレスをアクセスし、前記主制御部３００から要求されたデータの読み出しまたは書き込みを行うキャッシュモジュール（以下、キャッシュという）５３０と、シリアルフラッシュ１００に書き込まれたブートコードを読み出してバッファに格納し、前記主制御部３００からブートコードが要求されると、直ちに伝送してシステムブートを実行させるシリアルフラッシュコントローラ５５０と、前記キャッシュ５３０またはシリアルフラッシュコントローラ５５０とシリアルフラッシュ１００との間のデータ送受信を処理するフラッシュインタフェース部５７０と、シリアルフラッシュアクセスの過程でシリアルフラッシュ１００から読み出したデータを一時仮格納するためのバッファ（図示せず）とで構成されている。
【００３０】
このように構成されるコントローラ５００におけるキャッシュ５３０は、主制御部３００でシリアルフラッシュ１００のデータをより高速にアクセスできるようにするために提供されるものであり、第２階層のキャッシュメモリであるＬ２−Ｃａｃｈｅで構成されている。
【００３１】
このようなキャッシュ５３０は、図３に示すように、キャッシュコントローラ５３１と、タグ格納部５３３と、データ格納部５３５とで構成されている。
【００３２】
キャッシュコントローラ５３１は、主制御部３００から要求される読出しまたは書込み演算命令により、タグ格納部５３３とデータ格納部５３５を参照してシリアルフラッシュ１００が效率よくアクセスされるように処理する。
【００３３】
即ち、主制御部３００から特定のメモリアドレスに対する書込み命令語が受信されると、シリアルフラッシュ１００の該当アドレスにアクセスして、書込み演算が要求されるデータを書き込み、読出し命令語が受信されると、タグ格納部５３３によってデータ格納部５３５に読出しが要求されるデータが格納されているか否かを検索する。
【００３４】
その結果により、データ格納部５３５から該当データを検出して主制御部３００に伝送し、またはシリアルフラッシュ１００にアクセスして該当データが属するページ全体を読み込んでバッファに格納し、要求されたデータを主制御部３００に伝送してタグ格納部５３３とデータ格納部５３５に読み出されたページ及びこれに関する格納情報を書き込む。
【００３５】
タグ格納部５３３は、キャッシュコントローラ５３１によりシリアルフラッシュ１００から読み出されたデータに関する格納情報（例えば、読み出されたページのシリアルフラッシュメモリアドレス、読み出されたページの格納アドレス）を書き込むものであり、スタティックＲＡＭ（ＳＲＡＭ）で構成されている。
【００３６】
データ格納部５３５はキャッシュコントローラ５３１の動作制御により、シリアルフラッシュ１００から読み出されたデータを書き込むものであり、ＳＲＡＭで構成されている。
【００３７】
このようなデータ格納部５３５は、図４に示すように、キャッシュコントローラ５３１によりシリアルフラッシュ１００から読み出されたページを書き込むシリアルフラッシュ１００のアドレスマップで構成されるものであり、キャッシュコントローラ５３１では、データ格納部５３５によりシリアルフラッシュ１００をアクセスして主制御部３００から要求されるデータを提供する。
【００３８】
このようなキャッシュ５３０によって、シリアルフラッシュ１００のアクセス時間を減らし、主制御部３００でのデータの読出しまたは書込み演算によるシリアルフラッシュのアクセスが自由に実行されるようになる。
【００３９】
即ち、一般に、シリアルフラッシュ１００に書き込まれたデータをアクセスするのに必要な時間は、同じページ内に書き込まれたデータである場合は、決まったアクセス時間（約５０ナノ）が所要され、ページが異なる場合は、約１０μｓとかなり長い時間であるが、キャッシュ５３０によってアクセスされたページ及びこれに関する格納情報をタグ格納部５３３とデータ格納部５３５に書き込み、同じページのデータが主制御部３００から要求されるとき、シリアルフラッシュ１００をアクセスせず、データ格納部５３５から要求されるデータを提供することにより、一度アクセスされたデータを效率よく活用してアクセス時間が短くなる。
【００４０】
また、コントローラ５００のシリアルフラッシュコントローラ５５０は、ブートローダー５５１と、プレフェッチ５５３と、エラー検出コード／エラー訂正コード（以下、ＥＤＣ／ＥＣＣという）５５５と、Ｄｅｃｏｍｐ５５７とで構成されている。
【００４１】
ブートローダーは、システムブートを效率よく行わせるためのものであり、電源が印加されると、シリアルフラッシュ１００のブート領域１０１に書き込まれたオペレーティングシステムプログラム及びシステムブートのためのイメージのような初期化コードを読み込んでバッファに格納し、主制御部３００が最初のコードフェッチサイクルを開始し、ブートコード読出しを要求すると、格納された初期化コードを主制御部３００に伝送してブートが開始されるようにする。
【００４２】
プレフェッチ５５３と、ＥＤＣ／ＥＣＣ５５５と、Ｄｅｃｏｍｐ５５７は、コントローラ５００の性能の向上のためのものであり、プレフェッチ５５３は、主制御部３００の読出し要求が予想されるデータをシリアルフラッシュ１００からデータを予め読み込んでバッファに格納し、ＥＤＣ／ＥＣＣ５５５は、送受信されるデータのエラーを検出して訂正し、また、Ｄｅｃｏｍｐ５５７は、システム特性により要求されるデータ圧縮及び圧縮解除を処理する。このＤｅｃｏｍｐ５５７は、システムの特性により設けられるものであり、必要に応じて設けられなくてもよい。
【００４３】
このようなシリアルフラッシュコントローラ５５０によってシステムを初期ブートするとき、主制御部３００で、シリアルフラッシュ１００からブートに必要なデータを読み出し、システムブートが效率よく実行される。
【００４４】
上述した本発明の一実施の形態によるコントローラ５００は、各モジュールが全部ハードウェアで構成されても、一部のモジュールがソフトウェアで構成されても、または全体のモジュールがソフトウェアで構成されてもよい。
【００４５】
従って、本発明の一実施の形態によるシリアルフラッシュにおけるＸＩＰのためのコントローラがハードウェアまたはソフトウェアで構成されることは、本発明の範囲内のものであり、本発明の思想を外れない範囲内で、ソフトウェア及び／またはハードウェアで構成されることによる修正と変更が加えられることは当然である。
【００４６】
このように構成されるシリアルフラッシュ１００におけるＸＩＰのためのコントローラ５００を用いて、コントローラ５００とシリアルフラッシュ１００を共に一つのチップで構成することにより、ＸＩＰ支援が可能なシリアルフラッシュチップになる。
【００４７】
このようなシリアルフラッシュチップを通じて、ユーザは、ＲＯＭまたはＮＯＲ型フラッシュメモリに代えて、シリアルフラッシュ１００を用いることができるようになる。
【００４８】
このように構成されるシリアルフラッシュ１００でのＸＩＰのためのコントローラ５００によるシリアルフラッシュ１００におけるＸＩＰ方法は、図５に示すように行われる。
【００４９】
先ず、システムに電源が印加されると（Ｓ１）、コントローラ５００のブートローダー５５１ではシリアルフラッシュ１００のブート領域１０１にアクセスして初期ブートのためのブートコードを順次的に読み出してバッファに格納する（Ｓ２）。
【００５０】
次に、コントローラ５００では、ブートローダー５５１により読み出されるコードのバッファへの格納が終了したか否かを判別し（Ｓ３）、判別の結果、コード格納が終了していないと、読み出されるコードを継続してバッファに格納し、判別の結果、コード格納が終了していると、主制御部３００から要求される命令語（例えば、特定のアドレスのデータに対する読出しまたは書込み演算制御信号）の処理のために、システムインタフェースモジュール５１０から命令語が受信されたか否かを判別する（Ｓ４）。
【００５１】
判別の結果、主制御部３００から受信される命令語がなければ、命令語受信の有無を判別するルーチンに戻り、受信される命令語があれば、受信された命令語に応じる動作制御によって命令語を処理する（Ｓ５）。
【００５２】
以下、このような動作過程で行われるシリアルフラッシュ１００におけるＸＩＰ方法において、主制御部３００から受信される命令語による動作過程を添付図面を参照して詳述する。
【００５３】
図６は、最初のコードフェッチサイクルによってシステムブートに必要なブートコードデータを読み出すために、ブートリード命令語が主制御部３００から受信された場合の処理過程を示したものである。
【００５４】
図６に示すように、主制御部３００がリセット後、最初のコードフェッチサイクルを開始すると共に、主制御部３００からブートリード命令語が受信されると（Ｓ１１）、コントローラ５００では、シリアルフラッシュ１００から読み出してバッファに格納したブートコードを読み出し（Ｓ１２）、読み出されたブートコードを主制御部３００に伝送する（Ｓ１３）。
【００５５】
図７は、シリアルフラッシュ１００に書き込まれたシリアルフラッシュＩＤ及びシステムで用いられる装置要素（ｄｅｖｉｃｅ）に関する情報を読み出すためのシリアルフラッシュＩＤ読出し命令語が主制御部３００から受信された場合の処理過程を示したものである。
【００５６】
図７に示すように、主制御部３００からシリアルフラッシュＩＤ読出し命令語が受信されると（Ｓ２１）、コントローラ５００では、キャッシュ５３０のキャッシュコントローラ５３１によって、主制御部３００から要求されるシリアルフラッシュＩＤデータを提供するためのシリアルフラッシュＩＤ読出制御動作を行う（Ｓ２２）。
【００５７】
シリアルフラッシュＩＤ読出制御動作は、シリアルフラッシュ１００にアクセスして主制御部３００から要求されるシリアルフラッシュＩＤデータが属するページを読み出し、読み出されたページをバッファに格納する過程で行われる。
【００５８】
このようなキャッシュコントローラ５３１によるシリアルフラッシュＩＤ読出制御動作によって読み出され、バッファに格納されたページを通じて主制御部３００から要求されたシリアルフラッシュＩＤデータを検出し（Ｓ２３）、検出されたシリアルフラッシュＩＤデータを主制御部３００に伝送する（Ｓ２４）。
【００５９】
図８は、シリアルフラッシュ１００に所定のデータを書き込むための書込み命令語が主制御部３００から受信された場合の処理過程を示したものである。
【００６０】
図８に示すように、主制御部３００から所定の論理アドレスと共に書込み命令語が受信されると（Ｓ３１）、コントローラ５００では主制御部３００から伝送されるデータを受信してバッファに格納する（Ｓ３２）。
【００６１】
データの受信が完了すると、シリアルフラッシュのマッピング技法（ｍａｐｐｉｎｇ）により割り当てられる物理アドレスによってデータが書き込まれるメモリアドレスを定め、書込み演算によって変更される論理アドレスと物理アドレスとの間のマッピング情報をマッピングテーブルに書き込むシリアルフラッシュ書込みサイクルの制御動作を行う（Ｓ３３）。
【００６２】
このようなサイクル制御動作によってデータが格納されるアドレスが決定されると、バッファに格納されたデータを読み出して指定されたシリアルフラッシュの物理アドレスに書き込む（Ｓ３４）。
【００６３】
図９は、シリアルフラッシュ１００に書き込まれた所定のデータを読み込むための読出し命令語が主制御部３００から受信された場合の処理過程を示したものである。
【００６４】
図９に示すように、主制御部３００から読出し命令語が受信されると（Ｓ４１）、コントローラ５００では、シリアルフラッシュ１００のマッピングテーブルを参照して主制御部３００から読出し命令語と共に受信される論理アドレスに該当するデータが書き込まれた物理アドレスを検索する。
【００６５】
次に、検索された物理アドレスによってキャッシュ５３０のタグ格納部５３３を参照して、検索された物理アドレスの範囲に該当するページがデータ格納部５３５に格納されているか否かを判別するシリアルフラッシュ読出しサイクルの制御動作を行う（Ｓ４２）。
【００６６】
シリアルフラッシュ読出しサイクルの制御動作によって主制御部３００から読出しが要求されるデータがデータ格納部５３５に格納されていると、データ格納部５３５から該当するデータを検出して主制御部３００に伝送し、データ格納部５３５に格納されていないと、シリアルフラッシュ１００にアクセスして該当する物理アドレスのデータが属するページ全体を読み出す（Ｓ４３）。
【００６７】
キャッシュ５３０のキャッシュコントローラ５３１では、読み出されたページをバッファに格納し（Ｓ４４）、読出しが要求されたデータを検出して主制御部３００に伝送する（Ｓ４５）。
【００６８】
また、読み出されたページ及びこれに関するアドレス情報をタグ格納部５３３とデータ格納部５３５に書き込む（Ｓ４６）。
【００６９】
以下、このような過程で行われる本発明によるシリアルフラッシュ１００におけるＸＩＰ方法を、添付図面を参照して一実施の形態により詳述する。
【００７０】
システムに電源が印加されると、コントローラ５００では、シリアルフラッシュ１００から初期ブートのためのブートコードを読み出してバッファに格納し、主制御部３００で最初のコードフェッチサイクルを開始すると共に、ブートリード命令語が受信されると、バッファに格納されたブートコードを主制御部３００に伝送する。
【００７１】
主制御部３００では、初期ブートコードに含まれた初期化及びＲＯＭコードジャンプ命令語によって初期化を準備する。
【００７２】
初期化の準備を終えた主制御部３００は、シリアルフラッシュ１００のアドレスマップで構成されるタグ格納部５３３を参照してデータ格納部５３５をアクセスすることにより、主制御部３００から要求されるデータをデータバスを介して主制御部３００に伝送し、主制御部３００では、そのデータを直ちに実行してブートを開始する。
【００７３】
このような過程によってコントローラ５００を通じて主制御部３００とシリアルフラッシュ１００との間のインタフェースが行われると、主制御部３００ではシリアルフラッシュ１００に書き込まれたデータをメインメモリを経ずに、直ちにアクセスすることでＸＩＰが可能になる。
【００７４】
即ち、主制御部３００の要請によってコントローラ５００で読出し／書込み／消去／プログラムのような必要な機能を定義し、タグ格納部５３３を参照して、データ格納部５３５に格納された、主制御部３００から読出しが要求されるメモリアドレスと一致するアドレスが書き込まれているかを検索する。
【００７５】
検索の結果、一致すると、データ格納部５３５から該当するデータを読み出して主制御部３００に伝送し、書き込まれていないと、シリアルフラッシュ１００にアクセスして該当するデータが属するページ全体を読み込んでバッファに格納した後、要求されたアドレスのデータを主制御部３００に伝送して読み出されたページをタグ格納部５３３とデータ格納部５３５に書き込む。
【００７６】
以下、このような過程について添付図面を参照して詳述する。
図１０は、主制御部３００から要求されるデータがデータ格納部５３５にない場合の処理過程を示したものである。
【００７７】
図１０に示すように、主制御部３００からシリアルフラッシュ１００の特定のメモリアドレスに対する選択信号と共に読出しが要求されると（１）、コントローラ５００ではタグ格納部５３３から選ばれたメモリアドレスに該当するアドレスのページがデータ格納部５３５に書き込まれているかを検索する（２）。
【００７８】
この実施の形態によって、データ格納部５３５に、該当するデータが属するページが格納されていないので、コントローラ５００では、シリアルフラッシュ１００に、主制御部３００から読出しが要求されたメモリアドレスに対する読出し命令語を伝送し（３）、該当するメモリアドレスが属するページ全体を読み出す（４）。
【００７９】
ページの読出しが完了すると、コントローラ５００では、読み出されたページをバッファに格納し、必要なデータを検出して主制御部３００に伝送し（５）、読出されたページ及びこれに関する格納情報をタグ格納部５３３及びデータ格納部５３５に書き込む（６）。
【００８０】
図１１は、上記過程が繰り返されることによる主制御部３００から要求されるデータがデータ格納部５３５にある場合の処理過程を示したものである。
【００８１】
図１１に示すように、主制御部３００からシリアルフラッシュ１００の特定のメモリアドレスに対する選択信号と共に読出しが要求されると（１）、コントローラ５００では、タグ格納部５３３から選ばれたメモリアドレスに該当するアドレスのページがデータ格納部５３５に書き込まれているかを検索する（２）。
【００８２】
この実施の形態によって、データ格納部５３５に、該当するデータが属するページが格納されているので、コントローラ５００では、タグ格納部５３３において検索された格納情報を参照して、データ格納部５３５から必要なデータを検出する（３）。この検出されたデータは、コントローラ５００により主制御部３００に伝送される（４）。
【００８３】
本発明は、図示のような一実施の形態を参考として説明されているが、これは、例示に過ぎず、当該技術の分野における通常の知識を有する者にとっては、これにより様々な変形及び均等な他の実施の形態が可能であることは当然である。従って、本発明の真の技術的な保護の範囲は、請求の範囲の技術的思想により定められなければならない。
【図面の簡単な説明】
【００８４】
【図１ａ】従来のＮＯＲ型フラッシュメモリを用いたＸＩＰ実行過程を示した図である。
【図１ｂ】従来のシリアルフラッシュを用いたＸＩＰ実行過程を示した図である。
【図２】本発明によるシリアルフラッシュ及びフラッシュメモリアクセス装置の構成を概略的に示したブロック図である。
【図３】本発明によるシリアルフラッシュにおけるＸＩＰのための制御装置の構成を概略的に示したブロック図である。
【図４】図３のデータ格納部の構造を概略的に示した図である。
【図５】本発明によるシリアルフラッシュにおけるＸＩＰのための制御方法に対する処理過程を概略的に示した動作流れ図である。
【図６】図５のＳ５０において主制御部から受信されたブートリード命令語に対する処理過程を示した動作流れ図である。
【図７】図５のＳ５０において主制御部から受信されたシリアルＩＤ読出し命令語に対する処理過程を示した動作流れ図である。
【図８】図５のＳ５０において主制御部から受信された書込み命令語に対する処理過程を示した動作流れ図である。
【図９】図５のＳ５０において主制御部から受信された読出し命令語に対する処理過程を示した動作流れ図である。
【図１０】本発明の一実施の形態による主制御部から要求されるデータがデータ格納部にない場合の処理過程を示した動作流れ図である。
【図１１】本発明の一実施の形態による主制御部から要求されるデータがデータ格納部にある場合の処理過程を示した動作流れ図である。
【符号の説明】
【００８５】
１００  シリアルフラッシュメモリ
１０１  ブート領域
１０３  オペレーティングシステム領域
１０５  データ領域
１０７  ファイルシステム領域
３００  主制御部
５００  フラッシュメモリコントローラ
５１０  システムインタフェース部
５３０  キャッシュメモリモジュール
５３１  キャッシュコントローラ
５３３  タグ格納部
５３５  データ格納部
５５０  シリアルフラッシュコントローラ
５５１  ブートローダー
５５３  プレフェッチ
５５５  ＥＤＣ／ＥＣＣ
５５７  Ｄｅｃｏｍｐ
５７０  フラッシュインタフェース部
【図１ａ】
2004220557.tif 000003
【図１ｂ】
2004220557.tif 000004
【図２】
2004220557.tif 000005
【図３】
2004220557.tif 000006
【図４】
2004220557.tif 000007
【図５】
2004220557.tif 000008
【図６】
2004220557.tif 000009
【図７】
2004220557.tif 000010
【図８】
2004220557.tif 000011
【図９】
2004220557.tif 000012
【図１０】
2004220557.tif 000013
【図１１】
2004220557.tif 000014