(57)【特許請求の範囲】
【請求項１】
不揮発性メモリアレイ内の選択されたメモリバンクをイネーブルするための不揮発性メモリチップイネーブル符号化方法であって、前記不揮発性メモリアレイは複数のチップイネーブル出力線を含むメモリコントローラに動作的に結合され、前記チップイネーブル符号化方法は
各々が別個のバンクイネーブル入力線を有する複数のメモリバンクを与えるステップと、
前記メモリバンクの１つにブートコードを記憶するステップと、
前記チップイネーブル出力線のうち１つのみでチップイネーブル信号をアサートし、それによって前記メモリバンクのうちの前記１つをイネーブルし、前記ブートコードを検索するステップと、さらに
前記メモリコントローラに結合されたメモリバンクの、前記ブートコードに含まれる構成情報によって示される数に依存し、
前記メモリバンクの数が前記メモリコントローラのチップイネーブル出力線の合計数未満またはそれに等しい構成において、一度に１つのチップイネーブル出力線でのみチップイネーブル信号がアサートされるように、お互いに排他的な関係で前記メモリコントローラからの前記複数のチップイネーブル出力線を駆動し、それによって前記不揮発性メモリアレイ内の他のいずれかのメモリバンクをイネーブルし、別個のチップイネーブル出力は、単一のバンクをイネーブルするための専用のものであるステップか、または
前記メモリバンクの数が前記メモリコントローラのチップイネーブル出力線の合計数よりも大きい構成において、一度に１つより多いチップイネーブルがアサートされるように前記メモリコントローラからの前記複数のチップイネーブル出力線を駆動し、それによってイネーブルされる前記不揮発性メモリアレイ内のメモリバンクに関する符号化された情報を与えるステップのいずれかを含む、方法。
【請求項２】
前記メモリコントローラに結合されたメモリバンクの数を示す少なくとも１ビットのデータを構成レジスタ内に記憶するさらなるステップを含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１ビットのデータは前記ブートコードから引出される、請求項２に記載の方法。
【請求項４】
前記符号化された情報を外部デコーダの入力線に与えるさらなるステップを含む、請求項１に記載の方法。
【請求項５】
前記デコーダの出力線から前記不揮発性メモリアレイの選択されたメモリバンクにバンクイネーブル出力信号を与えるさらなるステップを含む、請求項４に記載の方法。
【請求項６】
コンピュータシステムであって、
複数のチップイネーブル出力線を含むメモリコントローラと、
複数のメモリバンクを含む不揮発性メモリアレイとを含み、前記メモリバンクの１つはシステムブート中前記マイクロプロセッサに転送されるよう構成されるブートコードを含み、前記メモリバンクの各々はバンクイネーブル入力線を含み、前記メモリコントローラの前記複数のチップイネーブル出力線に結合された複数の入力線を有し、かつ各々が前記メモリバンクの別個のバンクイネーブル入力線に結合された複数の出力線を有するデコーダを含み、
前記メモリコントローラはシステムブート中前記複数のチップイネーブル出力線のうちの予め定められた１つでチップイネーブル信号をアサートし、前記メモリバンクの前記１つをイネーブルするよう構成されるチップイネーブルアドレスエンコーダを含み、ブートコードに含まれる構成情報によって示されるメモリバンク数を参照し、該メモリバンク数に依存した結果として、システムブートの後で前記チップイネーブルアドレスエンコーダは前記チップイネーブル出力線の１つより多くでチップイネーブル信号を同時にアサートし、前記不揮発性メモリアレイ内の別のメモリバンクをイネーブルするよう構成される、コンピュータシステム。
【請求項７】
前記メモリコントローラに結合されたマイクロプロセッサをさらに含む、請求項６に記載のコンピュータシステム。
【請求項８】
前記デコーダは前記チップイネーブル出力線の１つより多くでアサートされた前記チップイネーブル信号を受信するように構成され、かつ前記アサートされたチップイネーブル信号の受信に応答して、前記デコーダの出力線で信号をアサートするように構成され、それによって前記不揮発性メモリアレイ内の前記別のメモリバンクをイネーブルするよう構成される、請求項６に記載のコンピュータシステム。
【請求項９】
前記メモリコントローラはさらに前記チップイネーブルアドレスエンコーダに結合された構成レジスタを含む、請求項６に記載のコンピュータシステム。
【請求項１０】
前記構成レジスタは前記コンピュータシステムに接続されたメモリバンクの数を示す値を記憶するよう構成される、請求項９に記載のコンピュータシステム。
【請求項１１】
前記チップイネーブルアドレスエンコーダは前記構成レジスタ内に記憶された前記値に依存して前記チップイネーブル出力線を駆動するよう構成される、請求項１０に記載のコンピュータシステム。
【請求項１２】
前記メモリコントローラは前記マイクロプロセッサと前記不揮発性メモリアレイとの間のデータおよびアドレス信号の転送を調整するよう構成されるインタフェースおよび制御回路をさらに含む、請求項６に記載のコンピュータシステム。
【請求項１３】
前記チップイネーブルアドレスエンコーダは、第１の数のメモリバンクが前記コンピュータシステムに接続されていることを前記構成レジスタが示す場合には、前記チップイネーブルアドレスエンコーダがお互いに排他的な関係で前記チップイネーブル出力線を駆動するよう構成されるようにプログラム可能であり、かつ前記チップイネーブルアドレスエンコーダは、第２の数のメモリバンクが前記コンピュータシステムに接続されていることを前記構成レジスタが示す場合には、１つより多いチップイネーブル信号が一度にアサートされるように前記チップイネーブル出力線を駆動するよう構成される、請求項１０に記載のコンピュータシステム。
【請求項１４】
前記マイクロプロセッサおよび前記メモリコントローラは共通の集積回路チップ上で製作される、請求項７に記載のコンピュータシステム。
【請求項１５】
メモリコントローラであって、
マイクロプロセッサと不揮発性メモリアレイとの間のデータおよびアドレス信号の転送を調整するよう構成されるインタフェースおよび制御回路と、
前記インタフェースおよび制御回路に結合され、前記不揮発性メモリアレイ内に与えられたメモリバンクの数を示す値を記憶するよう構成される構成レジスタと、さらに
前記構成レジスタに結合されたチップイネーブルアドレスエンコーダとを含み、前記チップイネーブルアドレスエンコーダは複数のチップイネーブル出力線を含み、前記チップイネーブルアドレスエンコーダは、第１の数のメモリバンクが前記不揮発性メモリアレイ内に与えられていることを前記構成レジスタが示せば、前記チップイネーブル出力線で所与のときに１つのチップイネーブル信号のみがアサートされるようにチップイネーブル出力線が駆動され、かつ第２の数のメモリバンクが前記不揮発性メモリアレイ内に与えられていることを前記構成レジスタが示せば、１つより多いチップイネーブル信号が一度に前記チップイネーブル出力線でアサートされるようにチップイネーブル出力線が駆動されるようにプログラム可能であり、メモリバンクの数を示す前記値は、前記メモリバンクのうちの１つに記憶されるブートコードの実行に応答して前記構成レジスタ内に記憶される、メモリコントローラ。
【請求項１６】
前記構成レジスタは前記メモリコントローラのパワーアップ時にデフォルト値を含む、請求項１５に記載のメモリコントローラ。
【請求項１７】
前記チップイネーブルアドレスエンコーダは、前記デフォルト値が前記構成レジスタ内に記憶されている場合には、一度に１つのチップイネーブル出力線のみでチップイネーブル信号をアサートするよう構成される、請求項１６に記載のメモリコントローラ。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明はコンピュータシステムに関し、より特定的に、不揮発性メモリの個々のバンクを選択するためにメモリコントローラによって使用されるチップイネーブル符号化方法に関する。
【０００２】
【関連技術の説明】
大半のコンピュータシステムはＲＯＭまたはフラッシュメモリにソフトウェアコードを含み、それによりシステムはパワーアップ時にディスクからオペレーティングシステムソフトウェアを読出すことができる。このソフトウェアコードはしばしばブートストラップコードまたはブートコードと呼ばれ、ディスクからオペレーティングシステムにロードするプロセスは「システムをブートする」と呼ばれる。ブートコードは典型的にはオペレーティングシステムを読出すのに十分なソフトウェアしか含まず、一般にディスクの特定のトラック上に記憶される。オペレーティングシステムソフトウェア自体はより一般的な読出および書込アクセスを実行する能力を与える。典型的なコンピュータシステムはＢＩＯＳ（基本入力／出力システム）ＲＯＭと呼ばれる専用ＲＯＭ集積回路チップを含み、これはブートコードおよび付加的なサブルーチンの集合（ＢＩＯＳコードと呼ばれる）を含み、システムに標準的なソフトウェアインタフェースを与える。
【０００３】
読出専用メモリの価格が低く、電力消費が少ないために、ＲＯＭ集積回路もワードプロセッシングプログラムなどのユーザソフトウェア、およびオペレーティングシステムソフトウェアにとって人気のある記憶媒体になっている。これはポータブルコンピュータシステム内のアプリケーションに特に当てはまる。そのようなユーザソフトウェアを記憶するために使用される読出専用メモリは典型的には容量が非常に大きく（ＢＩＯＳ  ＲＯＭの容量と比較して）、メモリコントローラを介して選択的にアクセスされる１つ以上のＲＯＭバンクとしてしばしば配列される。このユーザＲＯＭのメモリ容量は特定のユーザの要求に合うように典型的には可変であり、ＢＩＯＳコード内で特定される。
【０００４】
ＢＩＯＳ  ＲＯＭサブシステムはパワーアップ時で、かつシステム構成より前（つまり、システムがブートされる以前）にアクセスされなければならないので、かつユーザＲＯＭサブシステムはシステム構成の前には不確定なサイズ（少なくとも、メモリコントローラに関する限り）を有し、システム構成ルーチンが実効を完了した後にのみアクセス可能であるので、２つのメモリサブシステムは典型的には全く別個に処理されてきた。結果として、別個の集積回路チップが２つメモリサブシステムのために使用され、それによってコンピュータシステムの全体のコスト、重量およびサイズを増大させてきた。
【０００５】
【発明の概要】
上に概略を示した問題はこの発明に従う不揮発性メモリチップイネーブル符号化方法およびコンピュータシステムによって大部分解決される。このチップイネーブル符号化方法により共通の不揮発性メモリアレイ内にブートコードおよびユーザアプリケーションソフトウェアを記憶することができる。このチップイネーブル符号化方法によりさらに可変数のメモリバンクが不揮発性メモリアレイ内に設けられ、システムはメモリアレイ構成がファームウェアによって選択される前にパワーアップし、かつブートコードを実行することができる。
【０００６】
一実施例において、メモリコントローラは複数のＲＯＭバンクを選択的にイネーブルするための４つのチップイネーブル出力線を含む。ＲＯＭバンクの１つはシステムブート中にシステムマイクロプロセッサによって実行されるブートコードを含む。ユーザが４つのＲＯＭバンクからなるＲＯＭアレイを要求すれば、別のチップイネーブル出力線が各ＲＯＭバンクに接続される。ユーザが代わりにたとえば８つのＲＯＭバンクからなるＲＯＭアレイを要求すれば、４つのチップイネーブル出力線に外部デコーダが接続される。この構成において、デコーダの各出力線はＲＯＭバンクのそれぞれのバンクイネーブル入力線に結合される。いずれの構成においても、チップイネーブル線はシステムブート中相互に排他的な関係で駆動され、（ＲＯＭバンクの１つに記憶された）ブートコードをアクセスする。ブートコードはシステム内に接続されたＲＯＭバンクの数を示す構成情報を含む。この構成情報はメモリコントローラの構成レジスタに記憶される。その後、メモリコントローラのチップイネーブル出力線におけるチップイネーブル信号の符号化はその構成情報に依存する。４つのＲＯＭバンクのみがコンピュータシステムに接続される構成に対して、チップイネーブル出力線はエンコーダによって相互に排他的な関係で駆動され、チップイネーブル信号が一度にチップイネーブル出力線のうちの１つのみでアサートされるようにする。８つのＲＯＭバンクがコンピュータシステムに接続される構成に対して、チップイネーブル出力線はチップイネーブル信号が一度に１つより多いチップイネーブル出力線でアサートされ得るように駆動される。
【０００７】
大まかにいうと、この発明は不揮発性メモリアレイ内で選択されたメモリバンクをイネーブルするためのメモリチップイネーブル符号化方法を意図するものである。不揮発性メモリアレイは複数のチップイネーブル出力線を含むメモリコントローラに動作的に結合される。このチップイネーブル符号化方法は、各々が別個のバンクイネーブル入力線を有する複数のメモリバンクを与えるステップと、メモリバンクの１つにブートコードを記憶するステップと、チップイネーブル出力線の１つのみでチップイネーブル信号をアサートし、それによってブートコードを検索するステップとを含む。この方法はさらに、メモリコントローラに結合されたメモリバンクの数に依存して、チップイネーブル信号が一度に１つのチップイネーブル出力線でのみアサートされ、それによって不揮発性メモリアレイ内の選択されたメモリバンクをイネーブルするように複数のチップイネーブル出力線を相互に排他的な関係で駆動するか、または１つより多いチップイネーブル信号が一度にアサートされ、それによってイネーブルされる不揮発性メモリアレイ内のメモリバンクに関する符号化された情報を与えるように複数のチップイネーブル出力線を駆動するステップのいずれかを含む。
【０００８】
この発明はさらに複数のチップイネーブル出力線を含むメモリコントローラ、および複数のメモリバンクを含む不揮発性メモリアレイを含むコンピュータシステムを意図するものである。メモリバンクの１つはシステムブート中にマイクロプロセッサに転送されることが可能なブートコードを含み、メモリバンクの各々はバンクイネーブル入力線を含む。このコンピュータシステムはさらにメモリコントローラの複数のチップイネーブル出力線に結合された複数の入力線を有し、かつ各々がメモリバンクの別個のバンクイネーブル入力線に結合された複数の出力線を有するデコーダをさらに含む。メモリコントローラはシステムブート中複数のチップイネーブル出力線のうちの予め定められた１つでチップイネーブル信号をアサートすることが可能なチップイネーブルエンコーダを含み、メモリバンクのうちの１つをイネーブルする。システムブート後、チップイネーブルアドレスエンコーダは一度に１つより多いチップイネーブル出力線でチップイネーブル信号を同時にアサートすることができ、不揮発性メモリアレイ内の別のメモリバンクをイネーブルする。
【０００９】
この発明は最後にマイクロプロセッサと不揮発性メモリアレイとの間のデータおよびアドレス信号の転送を調整するためのインタフェースおよび制御回路と、インタフェースおよび制御回路に結合され、不揮発性メモリアレイ内に与えられたメモリバンクの数を表わす値を記憶するための構成レジスタと、構成レジスタに結合されたチップイネーブルアドレスエンコーダとを含むメモリコントローラを意図するものであり、チップイネーブルアドレスエンコーダは複数のチップイネーブル出力線を含む。チップイネーブルアドレスエンコーダは、構成レジスタが第１の数のメモリバンクが不揮発性メモリアレイ内に与えられることを示せば、１つのチップイネーブル信号のみがチップイネーブル出力線で所与の時間にアサートされるようにチップイネーブル出力線が駆動されるようにプログラム可能である。構成レジスタが第２の数のメモリバンクが不揮発性メモリアレイ内に与えられることを示せば、チップイネーブル出力線は１つより多いチップイネーブル信号が所与の時間にチップイネーブル出力線でアサートされるように駆動される。
【００１０】
この発明の他の目的および利点は以下の詳細な説明を読み、添付の図面を参照することによって明らかになるであろう。
【００１１】
この発明はさまざまな修正および代替の形式の余地があるが、その具体的な実施例は図面で例として示され、ここに詳細に説明される。しかしながら、図面およびそれに対する詳細な説明はこの発明を開示された特定の形式に限定しようとするものではなく、それどころかこの発明は前掲の特許請求の範囲によって規定されるこの発明の精神および範囲内にあるすべての修正、均等物および代替物を含むことが意図される。
【００１２】
【好ましい実施例の説明】
ここで図面を参照して、図１はこの発明に従う不揮発性メモリチップイネーブル符号化方法を使用するコンピュータシステム１００のブロック図である。コンピュータシステム１００はメモリコントローラ１０４に結合されたマイクロプロセッサ（ＣＰＵ）１０２を含む。メモリコントローラ１０４に結合された４つのＲＯＭバンク１０６−１０９からなるＲＯＭアレイ１０５がさらに示される。
【００１３】
マイクロプロセッサ１０２は、３２ビットデータビットＬＤ［３１：０］、および３２ビットアドレスバスＬＤ［３１：０］を含むローカルバス、ならびに制御バス１１０を経て、データ、アドレスおよび制御信号をメモリコントローラ１０４に与える。マイクロプロセッサ１０２は、たとえば、モデル８０４８６マイクロプロセッサの代表的な例である。しかしながら、他の特定的なマイクロプロセッサがコンピュータシステム１００内で代わりに使用され得ることが理解される。
【００１４】
メモリコントローラ１０４はマイクロプロセッサ１０２とＲＯＭアレイ１０５との間のデータ、アドレスおよび制御信号の転送を調整するインタフェースおよび制御回路１１２を含む。メモリアドレスバスＭＡ［１８：０］およびメモリデータバスＭＤ［３１：０］はＲＯＭバンク１０６−１０９に結合され、アドレシングおよびデータ信号をＲＯＭアレイ１０５へ、およびそれから与える。読出および書込制御線などの様々な他の制御線がインタフェースおよび制御回路１１２とＲＯＭアレイ１０５との間にさらに結合され得るが、図を明瞭にするために図１には示されていない。なお、インタフェースおよび制御回路１１２は様々な特定の回路構成を使用して実現され、代表的な回路構成は既知の先行技術の多くの文献で見られる。さらに、好ましい実施例において、マイクロプロセッサ１０２およびメモリコントローラ１０４は単一の集積プロセッサチップ上で製作される。
【００１５】
メモリコントローラ１０４はまたチップイネーブルアドレスエンコーダ１１４および構成レジスタ１１６を含む。以下からよく理解されるように、チップイネーブルアドレスエンコーダはコンピュータシステム１００のそれぞれのＲＯＭバンクをイネーブルするための、ＣＥ０、ＣＥ１、ＣＥ２およびＣＥ３と符号が付された１組のチップイネーブル出力線を含む。以下により詳細に説明されるように、メモリコントローラ１０４に結合されたＲＯＭバンクの数を示すデータのビット（または複数のビット）を記憶するための構成レジスタ１１６が設けられる。
【００１６】
ＲＯＭバンク１０６−１０９の各々はそれぞれ別個のＲＯＭバンクイネーブル入力線１２０−１２３を含む。この実施例では、各ＲＯＭバンク１０６−１０９は５００キロバイトの３２ビットデータを記憶することが可能である。応じて、各ＲＯＭバンク１０６−１０９は１組のアドレス入力線ＭＡ［１８：０］および１組のデータ出力線ＭＤ［３１：０］を含む。
【００１７】
図２はＲＯＭバンク１０６および１０７の内部構成を示すブロック図である。図２に示されるように、ＲＯＭバンク１０６は４つのＲＯＭチップ２００−２０３を含み、ＲＯＭバンク１０７はＲＯＭチップ２０４−２０７を含む。各ＲＯＭチップ２００−２０７は５００キロバイトの８ビットデータを記憶することが可能である。ＲＯＭチップ２００−２０３のチップイネーブル入力線はＲＯＭバンクイネーブル入力線１２０に結合され、ＲＯＭチップ２０４−２０７のチップイネーブル入力線はＲＯＭバンクイネーブル入力線１２１に接続される。ＲＯＭバンク１０８および１０９は同様に構成される。
【００１８】
再び図１を参照して、コンピュータシステム１００はＲＯＭバンク１０６−１０９の１つがコンピュータシステム１００のパワーアップ時にマイクロプロセッサ１０２によってアクセスされるブートコードを含むように実現される。図１の実施例では、ＲＯＭバンク１０９がこのブートコードを含む。
【００１９】
図３はチップイネーブルアドレスエンコーダ１１４によって実現され、ＲＯＭバンク１０６−１０９の各々をアクセスするＲＯＭチップイネーブル符号化を示す表である。なお、ＲＯＭチップイネーブル符号化はチップイネーブル信号ＣＥ０−ＣＥ３の１つがローにアサートされ、それぞれのＲＯＭバンク１０６−１０９をイネーブルするように実現される。たとえば、ＲＯＭバンク１０６をイネーブルするために、チップイネーブル信号ＣＥ０がチップイネーブルアドレスエンコーダ１１４によってローにアサートされる。同様に、チップイネーブル信号ＣＥ１はイネーブルＲＯＭバンク１０７によってローにアサートされるなどである。
【００２０】
したがって、再び図１を参照して、コンピュータシステム１００のパワーアップ時に、マイクロプロセッサ１０２は、メモリ読出サイクルを実行し、かつ予め規定されたアドレス値（つまり、ブートコードの出発アドレス）を有するアドレス線ＬＡ［３１：０］で駆動することによって、ＲＯＭバンク１０９に記憶されたブートコードをアクセスする。一実施例において、このブートコードはＦＦＦＦＦＦＦ０（ＨＥＸ）の出発アドレスで記憶される。このアドレス信号に応答して、チップイネーブルアドレスエンコーダ１１４はチップイネーブル信号ＣＥ３をローにアサートし、それによってこの信号はＲＯＭバンク１０９をイネーブルし、ブートコードの第１のバイトが読出されかつ実行されることを可能にする。ブートコードの後続のバイトも後続のサイクルの間に同様に読出される。なお、ブートコードが読出されているとき、チップイネーブルアドレスエンコーダ１１４の他のチップイネーブル出力線（つまり、ＣＥ０−ＣＥ２）はハイにデアサートされる。
【００２１】
ＲＯＭアレイ１０５からアクセスされたブートコードの中には、コンピュータシステム１００に接続されたＲＯＭバンクの数を示す構成情報がある。この構成情報は、パワーアップ時に、メモリコントローラ１０４がそれに接続されたバンクの数を認識していないので、与えられる。もし構成情報があれば、マイクロプロセッサ１０２はブート手順の間この構成情報を構成レジスタ１１６内に記憶させる。以下でよりよく理解されるように、チップイネーブルアドレスエンコーダ１１４はその後この構成情報に従ってチップイネーブル信号ＣＥ０−ＣＥ３を駆動する。なお、構成レジスタ１１６はデフォルト数のＲＯＭバンクを示す値を始めに含み得る。好ましい実施例において、構成レジスタ１１６は始めに４つのＲＯＭバンクを示すデフォルト値を含む。具体的には、好ましい実施例において、構成レジスタ１１６のビットはパワーアップ時にローにセットされ、４つのメモリバンクがシステムに接続されることを示す。ブートコードによりこのデフォルト値が変更されない限り、チップイネーブルアドレスエンコーダは４つのＲＯＭバンクがシステムに接続されているものとする。
【００２２】
このように、図１の構成に対して、ブートコードがＲＯＭバンク１０９からアサートされると、構成レジスタ１１６内の値は、実際４つのバンクのＲＯＭがコンピュータシステム１００に接続されているので、変わらない。ブートサブルーチンの終了に続いて、マイクロプロセッサ１０２はシステム設計者によって選択された特定のメモリマッピングに従ってアドレスバスを駆動することによって、ＲＯＭバンク１０６−１０９内の選択されたメモリ場所をアクセスすることができる。一実施例において、ＲＯＭバンク１０６はＦＦ７ＦＦＦＦ０からＦＦ９ＦＦＦＥＦ（ＨＥＸ）の範囲のアドレス値を記憶するようにシステム内にマッピングされ、ＲＯＭバンク１０７はＦＦ９ＦＦＦ０からＦＦＢＦＦＦＥＦＦの範囲のアドレス値を記憶するようにマッピングされ、ＲＯＭバンク１０８はＦＦＢＦＦＦＦ０からＦＦ０ＦＦＦＥＦの範囲のアドレス値を記憶するようにマッピングされ、ＲＯＭバンク１０９はＦＦ０ＦＦＦＦ０からＦＦＦＦＦＦＦＦの範囲のアドレス値を記憶するようにマッピングされる。したがって、アドレシング信号（ＬＡ［３１：１９］）の上位１３ビットに依存して、チップイネーブルアドレスエンコーダ１１４はハイにデアサートされたチップイネーブル信号ＣＥ０−ＣＥ３のすべてを保持するか（もしアドレスがＲＯＭバンク１０６−１０９の１つによってマッピングされた範囲内でなければ）、または信号ＣＥ０−ＣＥ３の１つを駆動して対応のＲＯＭバンク１０６−１０９をイネーブルする。なお、この動作モード中、構成レジスタ１１６の内部ビットによって決定されるように、チップイネーブルアドレスエンコーダ１１４は一度に１つのチップイネーブル信号のみがアサートされ得るように互いに排他的な態様でチップイネーブル信号ＣＥ０−ＣＥ３を駆動する。さらに、チップイネーブル信号ＣＥ０−ＣＥ３をローにアサートさせるアドレシング信号（ＬＡ［３１：１９］）の上位１３ビットの特定の値は使用さる特定のメモリマッピングスキームに依存し、システムごとに異なり得る。
【００２３】
次に図４を参照して、４つではなく８つのＲＯＭバンク４０１−４０８を含む、類似のコンピュータシステム４００のブロック図が示される。このコンピュータシステム４００はさらにメモリコントローラ１０４とＲＯＭバンク４０１−４０８との間に結合されたデコーダ４１０を含む。なお、図４のマイクロプロセッサ１０２およびメモリコントローラ１０４は図１に示されたものと同一である。同様に、各ＲＯＭバンク４０１−４０８は図１の対応のＲＯＭバンクと同一である。
【００２４】
この実施例では、ＲＯＭバンク４０８はコンピュータシステム４００のためのブートコードを含む。したがって、コンピュータシステム４００のパワーアップ時に、マイクロプロセッサ１０２は読出サイクルを実行し、かつ予め特定されたブートコードメモリ場所を有するアドレス線ＬＡ［３１：０］を駆動することによって、再びブートコードをアクセスする。なお、ブートコードのためのこの予め特定されたメモリ場所は図１の構成に関して上に特定されたものと同一である。また、コンピュータシステム４００の初期のパワーアップ中に、メモリコントローラ１０４はそれに接続されたＲＯＭバンクの数を認識していない。アドレス線ＬＡ［３１：０］上で駆動されたブートコードアドレスに応答して、チップイネーブルアドレスエンコーダ１１４は、図１の構成に対して行なったようにチップイネーブル信号ＣＥ０をローに駆動する。しかしながら、この構成において、デコーダ４１０はアサートされたチップイネーブル信号ＣＥ０を受取り、その結果ＲＯＭバンク４０８のＲＯＭバンクイネーブル入力線４２７をローに駆動する。なお、この時点で、チップイネーブル信号ＣＥ１、ＣＥ２およびＣＥ３は以前としてハイにデアサートされる。それによってマイクロプロセッサ１０２にはインタフェースおよび制御回路１１２を介して第１のバイトのブートコードが与えられ、同様のサイクルがマイクロプロセッサ１０２によって実行され、ブートコードの残りを含む連続のメモリ場所をアクセスする。
【００２５】
ブートコードによって誘発された動作の１つの結果として、コンピュータシステム４００に結合されたＲＯＭバンクの数（つまり、８）を示す値が構成レジスタ１１６に記憶される。好ましい実施例において、構成レジスタ１１６の内部ビットはハイに設定され、８つのＲＯＭバンクの接続を示す。コンピュータシステム４００の後続の動作中、かつこの内部ビットの設定に応答して、チップイネーブルアドレスエンコーダ１１４は図５の表に従ってチップイネーブル出力信号ＣＥ０−ＣＥ３を符号化する。この動作モード中、チップイネーブルアドレスエンコーダ１１４は構成レジスタ１１６によってプログラムされ、チップイネーブル信号ＣＥ０−ＣＥ３のうちの１つより多くのものを一度にアサートし、選択されたＲＯＭバンク４０１−４０８をイネーブルする。たとえば、図５に示されるように、アドレシング信号ＬＡ［３１：１９］の上位１３ビットがＲＯＭバンク６（つまり、ＲＯＭバンク４０７）内にマッピングされたアドレス値を含めば、チップイネーブルアドレスエンコーダはチップイネーブル信号ＣＥ１およびＣＥ２をハイに保持しながら、チップイネーブル信号ＣＥ０およびＣＥ３をローに駆動する。同様に、アドレシング信号ＬＡ［３１：１９］がＲＯＭバンク３（つまり、ＲＯＭバンク４０４）にマッピングされた値を含めば、チップイネーブル信号ＣＥ０およびＣＥ１はローに駆動され、一方チップイネーブル信号ＣＥ２およびＣＥ３はハイに保持される。
【００２６】
図１および図４のメモリコントローラ１０４ならびにコンピュータシステム１００および４００の結果として、ブートコードならびにユーザソフトウェアおよびオペレーティングシステムなどの他のソフトウェアの双方を記憶するために共通のＲＯＭアレイが使用され得る。このメモリコントローラはプログラム可能なチップイネーブルアドレスエンコーダを含み、このエンコーダは、システム構成に先立って、メモリコントローラのチップイネーブル出力線を、１つのチップイネーブル信号のみがブートコードをアクセスするためにアサートされるように、お互いに排他的な関係で駆動する。その後、チップイネーブル信号の符号化はそれに接続されたＲＯＭバンクの数を示す構成ビットに依存する。コンピュータシステムおよびメモリコントローラはシステム設計の柔軟性を与え（つまり、様々な数のＲＯＭバンクがそれに接続されることを可能にすることによって）、一方集積回路上に組込まれるチップイネーブル出力線の数を最小限にする。集積回路上に設けられるチップイネーブル出力線の数を最小限にすることによって、集積回路の全ピン総数は減り、それによって全体のコストを下げる。
【００２７】
なお、上述の不揮発性メモリチップイネーブル符号化方法は、同時係属中の同一譲受人に譲渡された、マクドナルド（MacDonald ）他による、「コンピュータシステム、メモリコントローラ、およびメモリコントローラを動作するための方法」と題された、本出願と同日に提出された出願によって教示されるメモリコントローラとともに実現され得る。この特許出願はその全体を引用によりここに援用する。
【００２８】
上述の開示を完全に理解してしまえば、当業者には様々な変形例および修正が明らかになるであろう。たとえば、図１および図４のものと異なるメモリ容量を有するＲＯＭバンクを使用することができるし、（図５のものではない）異なった特定の符号化値を使用して様々なＲＯＭバンクをマッピングおよびイネーブルすることができる。加えて、上に示された実施例は４つまたは８つのＲＯＭバンクを含むが、より多いまたはより少ない数のＲＯＭバンクも同様に接続され得る。さらに、フラッシュメモリデバイスなどの他のタイプの不揮発性メモリを、ＲＯＭバンク１０６−１０９および４０１−４０８のうちの１つより多いものの代わりに使用できる。前掲の特許請求の範囲はそのようなすべての変形例および修正を含むものと解釈されることが意図される。
【図面の簡単な説明】
【図１】この発明に従う４つのバンクの読出専用メモリに接続されたメモリコントローラを含むコンピュータシステムのブロック図である。
【図２】各メモリバンク内に組込まれたＲＯＭ集積回路チップの構成を示すブロック図である。
【図３】図１のコンピュータシステムのためのＲＯＭチップイネーブル符号化を示すチャートである。
【図４】この発明に従う８つのバンクの読出専用メモリに接続されたメモリコントローラを含むコンピュータシステムのブロック図である。
【図５】図４のコンピュータシステムのためのＲＯＭチップイネーブル符号化を示すチャートである。
【符号の説明】
１００  コンピュータシステム
１０２  マイクロプロセッサ
１０４  メモリコントローラ
１０５  ＲＯＭアレイ
１０６  ＲＯＭバンク
１０７  ＲＯＭバンク
１０８  ＲＯＭバンク
１０９  ＲＯＭバンク
【図１】
0003670041.tif 000002
【図２】
0003670041.tif 000003
【図３】
0003670041.tif 000004
【図４】
0003670041.tif 000005
【図５】
0003670041.tif 000006