(57)【特許請求の範囲】
【請求項１】
データ処理システムであって：
ページ・セレクタ；
第１共通アドレス空間マップを共有する第１メモリ、第２メモリ、第３メモリ、および第４メモリ；
メモリ制御レジスタの仮想集合として、プログラミング・モデル内に現れる第２共通アドレス空間マップを共有する第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合；
を具備し、
前記ページ・セレクタが第１の値を有する場合に前記第１メモリおよび前記第１メモリ制御レジスタ集合が選択され、
前記ページ・セレクタが第２の値を有する場合に前記第２メモリおよび前記第２メモリ制御レジスタ集合が選択され、
前記ページ・セレクタが第３の値を有する場合に前記第３メモリおよび前記第１メモリ制御レジスタ集合が選択され、
前記ページ・セレクタが第４の値を有する場合に前記第４メモリおよび前記第２メモリ制御レジスタ集合が選択され、
前記ページ・セレクタにより選択された前記第１乃至第４メモリの各々は、前記ページ・セレクタの値によらず、前記第１及び第２メモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応する選択されたメモリ制御レジスタ集合のビットに基づきプログラムまたは消去される
ことを特徴とするデータ処理システム。
【請求項２】
データ処理システムであって：
ページ・セレクタ；
第１共通アドレス空間マップを共有する第１メモリおよび第２メモリ；
メモリ制御レジスタの仮想集合として、プログラミング・モデル内に現れる第２共通アドレス空間マップを共有する第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合；
を具備し、
前記ページ・セレクタが第１の値を有する場合に前記第１メモリおよび前記第１メモリ制御レジスタ集合が選択され、
前記ページ・セレクタが第２の値を有する場合に前記第２メモリおよび前記第２メモリ制御レジスタ集合が選択され、
前記ページ・セレクタは１バイトのページ選択レジスタであり、
前記ページ・セレクタにより選択された前記第１及び第２メモリの各々は、前記ページ・セレクタの値によらず、前記第１及び第２メモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応する選択されたメモリ制御レジスタ集合のビットに基づきプログラムまたは消去される
ことを特徴とするデータ処理システム。
【請求項３】
データ処理システムであって：
ページ・セレクタ；
第１共通アドレス空間マップを共有する第１メモリおよび第２メモリ；
メモリ制御レジスタの仮想集合として、プログラミング・モデル内に現れる第２共通アドレス空間マップを共有する第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合；
を具備し、
前記ページ・セレクタが第１の値を有する場合に前記第１メモリおよび前記第１メモリ制御レジスタ集合が選択され、
前記ページ・セレクタが第２の値を有する場合に前記第２メモリおよび前記第２メモリ制御レジスタ集合が選択され、
前記第１メモリ制御レジスタ集合および前記第２メモリ制御レジスタ集合は各々４バイトのサイズであり、
前記ページ・セレクタにより選択された前記第１及び第２メモリの各々は、前記ページ・セレクタの値によらず、前記第１及び第２メモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応する選択されたメモリ制御レジスタ集合のビットに基づきプログラムまたは消去される
ことを特徴とするデータ処理システム。
【請求項４】
データ処理システムであって：
ページ・セレクタ；
第１共通アドレス空間マップを共有する第１メモリおよび第２メモリ；
第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合であって、メモリ制御レジスタの仮想集合として、プログラミング・モデル内に現れる第２共通アドレス空間マップを共有するオーバーレイド・レジスタと、アドレスが重複しないメモリ・レジスタ集合を有する非オーバーレイド・レジスタとを各々有する、前記第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合；
を具備し、
前記ページ・セレクタが第１の値を有する場合に前記第１メモリおよび前記第１メモリ制御レジスタ集合が選択され、
前記ページ・セレクタが第２の値を有する場合に前記第２メモリおよび前記第２メモリ制御レジスタ集合が選択され、
前記第１メモリ制御レジスタ集合および前記第２メモリ制御レジスタ集合の各々の前記非オーバーレイド・レジスタは第３アドレス空間マップへとメモリ・マッピングされ、
前記ページ・セレクタにより選択された前記第１及び第２メモリの各々は、前記ページ・セレクタの値によらず、前記第１及び第２メモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応する選択されたメモリ制御レジスタ集合のビットに基づきプログラムまたは消去される
ことを特徴とするデータ処理システム。
【請求項５】
複数のメモリをプログラミング／消去する方法であって：
Ａ）ページ・セレクタを初期値に初期化する段階；
Ｂ）前記ページ・セレクタによって複数のメモリ制御レジスタ集合から選択された選択メモリ制御レジスタ集合をプログラミングする段階；
Ｃ）前記ページ・セレクタによって複数のメモリ・ページから選択された選択メモリ・ページをプログラミング／消去する段階；
Ｄ）前記ページ・セレクタを他の値に設定する段階；および
前記複数のメモリ・ページにおける更なるページがプログラミングされ／消去されるべき間に前記段階（Ｂ），（Ｃ）および（Ｄ）を反復する段階；
を具備し、
前記複数のメモリ・ページの各々は第１共通アドレス空間枠にマッピングされ、
前記複数のメモリ制御レジスタ集合の各々は仮想集合のメモリ制御レジスタとしてプログラミング・モデルに現れる第２共通アドレス空間枠にマッピングされ、
前記複数のメモリ・ページの各々は前記複数のメモリ制御レジスタ集合の１つに対応し、
前記複数のメモリ・ページの内の第１の複数のメモリ・ページは前記複数のメモリ制御レジスタ集合の内の第１の集合に対応し、かつ
前記複数のメモリ・ページの内の前記第１の複数のメモリ・ページから区別される前記複数のメモリ・ページの内の第２の複数のメモリ・ページは前記複数のメモリ制御レジスタ集合の内の第２の集合に対応し、
前記ページ・セレクタにより選択された前記複数のメモリ・ページの各々は、前記ページ・セレクタの値によらず、前記複数のメモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応する選択されたメモリ制御レジスタ集合のビットに基づきプログラムまたは消去される
ことを特徴とする方法。
【請求項６】
複数のメモリをプログラミング／消去する方法であって：
Ａ）ページ・セレクタを初期値に初期化する段階；
Ｂ）前記ページ・セレクタによって複数のメモリ制御レジスタ集合から選択された選択メモリ制御レジスタ集合をプログラミングする段階；
Ｃ）前記ページ・セレクタによって複数のメモリ・ページから選択された選択メモリ・ページをプログラミング／消去する段階；
Ｄ）前記ページ・セレクタを他の値に設定する段階；および
前記複数のメモリ・ページにおける更なるページがプログラミングされ／消去されるべき間に前記段階（Ｂ），（Ｃ）および（Ｄ）を反復する段階；
を具備し、
前記複数のメモリ・ページの各々は第１共通アドレス空間枠にマッピングされ、
前記複数のメモリ制御レジスタ集合の各々は仮想集合のメモリ制御レジスタとしてプログラミング・モデルに現れる第２共通アドレス空間枠にマッピングされ、
前記複数のメモリ・ページの各々は前記複数のメモリ制御レジスタ集合の１つに対応し、
前記複数のメモリ制御レジスタ集合の各々は前記複数のメモリ・ページの内の別個のメモリ・ページに対応し、
前記ページ・セレクタにより選択された前記複数のメモリ・ページの各々は、前記ページ・セレクタの値によらず、前記複数のメモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応する選択されたメモリ制御レジスタ集合のビットに基づきプログラムまたは消去される
ことを特徴とする方法。
【請求項７】
データ処理システムであって：
プロセッサ；
ページ選択レジスタ；
前記プロセッサに結合されかつ前記ページ選択レジスタによって制御されるメモリ管理インタフェース；
前記メモリ管理インタフェースに結合された第１メモリおよび第２メモリであって、前記第１メモリの第１ページおよび前記第２メモリの第１ページは前記プロセッサに対して仮想メモリ・ページとして現れる、前記第１メモリおよび前記第２メモリ；および
前記プロセッサに対して共通アドレス空間枠にマッピングされた仮想集合のメモリ制御レジスタとして現れる第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合であって、
前記ページ選択レジスタが第１の値を有する場合、前記第１メモリの前記第１ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第１メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られ、
前記ページ選択レジスタが第２の値を有する場合、前記第２メモリの前記第１ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第２メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られ、
前記ページ選択レジスタは１バイトのレジスタであり、
前記第１メモリ制御レジスタ集合、前記第２メモリ制御レジスタ集合、および前記仮想集合のメモリ制御レジスタは各々サイズが４バイトであり、
前記第１メモリおよび前記第２メモリはフラッシュ・メモリであり、かつ
前記第１メモリの前記第１ページ、前記第２メモリの前記第１ページ、かつ前記仮想メモリ・ページは各々１６キロバイトのページである、
前記第１メモリ制御レジスタ集合および前記第２メモリ制御レジスタ集合、
を具備し、
前記ページ選択レジスタにより選択された前記第１メモリの第１ページ及び第２メモリの第１ページの各々は、前記ページ選択レジスタの値によらず、前記第１及び第２のメモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応するメモリ制御レジスタ集合のビットに基づきプログラムまたは消去されることを特徴とするデータ処理システム。
【請求項８】
データ処理システムであって：
プロセッサ；
ページ選択レジスタ；
前記プロセッサに結合されかつ前記ページ選択レジスタによって制御されるメモリ管理インタフェース；
前記メモリ管理インタフェースに結合された第１メモリおよび第２メモリであって、前記第１メモリの第１ページおよび前記第２メモリの第１ページは前記プロセッサに対して仮想メモリ・ページとして現れる、前記第１メモリおよび前記第２メモリ；および
前記プロセッサに対して共通アドレス空間枠にマッピングされた仮想集合のメモリ制御レジスタとして現れる第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合であって、
前記ページ選択レジスタが第１の値を有する場合、前記第１メモリの前記第１ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第１メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られ、
前記ページ選択レジスタが第２の値を有する場合、前記第２メモリの前記第１ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第２メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られ、
前記第１メモリの第２ページおよび前記第２メモリの第２ページは前記プロセッサに対して前記仮想メモリ・ページとして現れ、
前記ページ選択レジスタが第３の値を有する場合、前記第１メモリの前記第２ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第１メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られ、
前記ページ選択レジスタが第４の値を有する場合、前記第２メモリの前記第２ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第２メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られる、前記第１メモリ制御レジスタ集合および前記第２メモリ制御レジスタ集合；
を具備し、
前記ページ選択レジスタにより選択された前記第１及び第２メモリの第１及び第２ページの各々は、前記ページ選択レジスタの値によらず、前記第１及び第２のメモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応するメモリ制御レジスタ集合のビットに基づきプログラムまたは消去されることを特徴とするデータ処理システム。
【請求項９】
データ処理システムであって：
プロセッサ；
ページ選択レジスタ；
前記プロセッサに結合されかつ前記ページ選択レジスタによって制御されるメモリ管理インタフェース；
前記メモリ管理インタフェースに結合された第１メモリおよび第２メモリであって、前記第１メモリの第１ページおよび前記第２メモリの第１ページは前記プロセッサに対して仮想メモリ・ページとして現れる、前記第１メモリおよび前記第２メモリ；および
前記プロセッサに対して共通アドレス空間枠にマッピングされた仮想集合のメモリ制御レジスタとして現れる第１メモリ制御レジスタ集合および第２メモリ制御レジスタ集合であって、
前記ページ選択レジスタが第１の値を有する場合、前記第１メモリの前記第１ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第１メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られ、
前記ページ選択レジスタが第２の値を有する場合、前記第２メモリの前記第１ページは前記プロセッサによって前記仮想メモリ・ページとして見られ、かつ前記第２メモリ制御レジスタ集合は前記プロセッサによって前記仮想集合のメモリ制御レジスタとして見られ、
前記第１メモリの前記第１ページは前記プロセッサによって前記仮想メモリ・ページから別個にマッピングされた第２仮想メモリ・ページとしても見られる、
前記第１メモリ制御レジスタ集合および前記第２メモリ制御レジスタ集合；
を具備し、
前記ページ選択レジスタにより選択された前記第１メモリの第１ページ及び第２メモリの第１の各々は、前記ページ選択レジスタの値によらず、前記第１及び第２のメモリ制御レジスタ集合に対する一定のアドレス範囲を利用して、対応するメモリ制御レジスタ集合のビットに基づきプログラムまたは消去されることを特徴とするデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に、データ処理システムに関し、更に特定すれば、プログラマブル・メモリを有するページ化データ処理システム(paged data processing system)に関するものである。
【０００２】
【従来の技術】
図１は、典型的なマイクロコントローラまたはマイクロプロセッサ・システムを示すブロック図である。システム１０は、双方向バス上でメモリ管理インターフェース１４と通信を行う、中央演算装置（ＣＰＵ）１２を有する。一方、メモリ管理インターフェース（ＭＭＩ）１４は、ＣＰＵ１２の指揮の下で、ＦＬＡＳＨ１６，ＲＡＭ１７，およびＥＥＰＲＯＭ１８といったメモリと双方向バス上で通信する。
【０００３】
図２は、図１に示すシステムにおける物理メモリおよびレジスタの典型的なメモリ・アドレス・マップを示す図である。メモリ・アドレス・マップ２０は、図１に示すメモリ１６，１７，１８のプログラマの視点である。これは、メモリ管理インターフェース１４によって制御される。メモリ・アドレス・マップの左側軸に沿って、６４キロバイト（ＫＢ）アドレス範囲の最上位の＄００００から最下位の＄ＦＦＦＦにまで及ぶ、一連の１６進バイト・アドレスがある。下位のメモリは、レジスタおよびＲＡＭ２２である。これに続いて、ＥＥＰＲＯＭ２４がある。１６進数の＄４０００から、固定マップＦＬＡＳＨ２８が始まり、それに続いてページ化ＦＬＡＳＨ３０，３１，３２，３３，３４，３５，３６，３７があり、それに続いて、１６進数の＄Ｃ０００から開始し＄ＦＦＦＦにまで及ぶ固定マップＦＬＡＳＨ３８の別のバンクがある。第２の固定マップＦＬＡＳＨ３８は、割り込みおよびリセット・ベクトルを収容する。図２には、８ページのページ化ＦＬＡＳＨ３０，３１，３２，３３，３４，３５，３６，３７が示されており、各々＄８０００ないし＄ＢＦＦＦまでの範囲の同じアドレス・ベースを共有する。
【０００４】
図３は、従来技術において利用されているプログラマブル・メモリのページ・マッピング方式を示す図である。４つのメモリ５０，５１，５２，５３が、＄８０００ないし＄ＢＦＦＦまでのアドレス空間を共有する。４つのメモリ５０，５１，５２，５３の各々は、アドレス＄００Ｆ０ないし＄００ＦＦに位置する、対応するアドレス・レジスタ集合４０，４１，４２，４３を有する。また、ページ選択レジスタ（ＰＰＡＧＥ）４４を利用して、メモリ５０，５１，５２，５３のページから１つを選択する。即ち、ページ選択レジスタ４４が値＄００を含む場合、第１メモリ５０を選択する。ページ選択レジスタ４４が値＄０１を含む場合、第２メモリ５１を選択する。ページ選択レジスタ４４が値＄０２を含む場合、第３メモリ５２を選択する。ページ選択レジスタ４４が値＃０３を含む場合、第４メモリ５３を選択する。アドレス＄００Ｆ０から開始する第１レジスタ集合４０は、第１メモリ５０をプログラムする際に利用する。＄００Ｆ４から開始する第２レジスタ集合４１は、第２メモリ５１をプログラムする際に利用する。＄００Ｆ８から開始する第３レジスタ集合４２は、第３メモリ５２をプログラムする際に利用する。最後に、＄００ＦＣから開始する第４レジスタ集合４３は、第４メモリ５３をプログラムする際に利用する。  図４および図５を併せて、限られたレジスタ集合を有するアーキテクチャにおいて、従来技術のアーキテクチャを利用してＦＬＡＳＨメモリの４つのモジュールをプログラミングする場合を示すフロー・チャートを形成する。このアルゴリズムは、ステップ６１から開始し、ページ選択レジスタ（ＰＰＡＧＥ）４４を＄００の値にセットする。次に、ステップ６２において、枠内のＦＬＡＳＨメモリの先頭における点にレジスタＹをセットする。次に、ステップ６３において、外側のループに入り、ブロックをＲＡＭにダウンロードすることから開始する。これに続いて、ステップ６４において、ＸレジスタをＲＡＭブロックの先頭にセットする。次に、ステップ６５において、内部ループに入り、ワードＲＡＭを第１ＦＬＡＳＨページ（ＰＰＡＧＥ＝＄００）にプログラムすることから開始する。次いで、ステップ６６において、ＸおよびＹレジスタを増分し、ステップ６７において、ブロックが終了しているか否かについて判断する。ステップ６７においてブロックが完了していない限り、ステップ６５から開始して内部ループを繰り返す。その他の場合、ステップ６８において、枠が終了しているか否かについて判断する。ステップ６８において枠が終了していない限り、外側のループを繰り返し、ステップ６３から開始する。逆に、ステップ６８において枠が終了している場合、ＦＬＡＳＨの第１ページに対するプログラミングが完了する。この後に、ページ＄０１  ５１，Ｓ０２  ５２，＄０３  ５３に対する同一のコードが続く。尚、ページ・プログラミングは、４回同じことが繰り返されることを注記しておく。これは、主に、４つのメモリ・モジュール５０，５１，５２，５３の各々が対応するレジスタ集合４０，４１，４２，４３を有するという事実によるものである。したがって、第１メモリ・プログラミング・レジスタ集合４０を用いて第１メモリ５０をプログラムし���第２メモリ・プログラミング・レジスタ集合４１を用いて第２メモリ５１をプログラムする等となる。
【０００５】
【発明が解決しようとする課題】
図４および図５に示すようなプログラミングにおけるオーバーヘッドを減少させることができれば有利であろう。各メモリ５０，５１，５２，５３に対応するプログラム・レジスタ４０，４１，４２，４３を用いると、その結果、プログラミング・モジュールの非効率性を招くことになる。
【０００６】
【発明の実施の形態】
本発明の特徴および利点は、添付図面と関連付けた以下の詳細な説明から、一層明確に理解されよう。図面において、同様の参照番号は同様の部分および対  応する部分を引用するものとする。
【０００７】
以下の説明においては、本発明の完全な理解が得られるように、具体的なワードまたはバイト長のように、数多くの具体的な詳細を明記する。しかしながら、本発明はかかる具体的な詳細を用いなくても実施可能であることは、当業者には明白であろう。また、場合によっては、回路をブロック図形態で示し、不要な詳細の中で本発明が不明瞭とならないようにしている。タイミングの検討等に関する詳細は、かかる詳細が本発明の完全な理解を得るのには不要であり、かつ関連技術における当業者の知識の範囲に該当する限りは、省略することとした。
【０００８】
「バス」という用語は、データ，アドレス，制御，またはステータスのような１つ以上の種々の形式の情報を転送する際に用いることができる、複数の信号または導体を意味するために用いることとする。「アサート」および「ニゲート」という用語は、信号，ステータス・ビット，または同様の機構をその論理真から論理偽状態にすることをそれぞれ意味する場合に用いることとする。論理真状態が論理レベル１である場合、論理偽状態は論理レベル０となる。論理真状態が論理レベル０である場合、論理偽状態は論理レベル１となる。明細書および図面において、１６進数の値は、ドル符号（「＄」）を前に付けることによって示してある。したがって、＄０００Ｆは、「Ｆ」の１６進数値を表し、十進数の１５と同等である。
【０００９】
図３に示すように、多数のメモリ制御レジスタ４０，４１，４２，４３を対応するメモリ・アレイ５０，５１，５２，５３と論理的に結合することによって、プログラミング・モデルを大幅に簡略化する。一意のメモリ・アドレスを有する各メモリ制御レジスタの代わりに、メモリ制御レジスタを重複させ、共通の仮想アドレスを共有する。これによって、メモリ・アレイをＣＰＵマップ内に配置する同じマッピング制御が、関連するブロック・プログラミング・レジスタもＣＰＵマップ内に配置することが可能となる。新たなメモリを選択する毎に、関連するプログラミング・レジスタのブロックも、仮想メモリ・マップ内に配置される。プログラミング・レジスタは、常に仮想アドレス内に配置される。ユーザには、プログラマブル・メモリ・アレイ全体に関連する１つのプログラミング・レジスタのブロックがあるように見える。このようにして、新たなメモリ・アレイがメモリ・マップ内に導入される毎に、プログラミング・アルゴリズムを変更する必要性をなくした。
【００１０】
図６は、本発明によるプログラマブル・メモリのページ・マッピング方式を示すメモリ・マップ図である。８つのメモリ９０，９１，９２，９３，９４，９５，９６，９７が示されており、各々＄８０００ないし＄ＢＦＦＦまでの同じ仮想メモリ・アドレス枠を共有する。ページ選択レジスタ（ＰＰＡＧＥ）４４（図３参照）を＄００ないし＄０７までの範囲の値にセットすることによって、いずれの一時点においても８つのメモリ・ページの内どれが可視かについて制御する。８つのメモリ・ページの各々は、対応するメモリ・レジスタ集合８０，８１，８２，８３，８４，８５，８６，８７によって制御される。これらは全て、アドレス＄００Ｆ４から開始しアドレス００Ｆ７までに及ぶ範囲に重複されている。メモリ・ページの場合と同様、メモリ・レジスタも、ページ選択レジスタ（ＰＰＡＧＥ）４４を＄００ないし＄０７の範囲の値にセットすることによって選択する。したがって、ページ選択レジスタ（ＰＰＡＧＥ）４４を＄００の値にセットした場合、メモリ９０の第１ページ９０が第１ページ・レジスタ集合８０と共に選択される。他の７つの対応するレジスタ集合およびメモリ・ページのセットについても同様である。ここで注記すべきは、８つのメモリ・ページおよび８つの対応するレジスタ集合が例示されていることである。しかしながら、それ以上または以下のメモリおよび対応するレジスタ集合も、このアーキテクチャを用いて実施可能であることは理解されよう。
【００１１】
図７は、図６に示したページ・マッピング技法を利用したメモリのプログラミングを示すフロー・チャートである。このアルゴリズムを開始すると、まずステップ７０において、ページ選択レジスタ（ＰＰＡＧＥ）４４を＄００の値にセットする。すると、外側のループに入り、ステップ７１において、枠内のＦＬＡＳＨメモリの先頭における点に、Ｙレジスタを初期化する。次に中間ループに入り、ステップ７２において、１つのブロックをＲＡＭにダウンロードする。これに続いて、ステップ７３において、ＸレジスタをＲＡＭブロックの先頭における点にセットする。次いで、内側ループに入り、ステップ７４においてワードＲＡＭをＦＬＡＳＨにプログラムすることから開始する。これは、メモリ・プログラミング・レジスタ８０，８１，８２，８３，８４，８５，８６，８７を利用する。ステップ７５において、ＸレジスタおよびＹレジスタを増分し、ステップ７６において、現ブロックが終了しているか否かについて判断する。ステップ７６において現ブロックが終了していない場合、ステップ７４から開始して内側ループを繰り返す。逆に、ステップ７６においてブロックが終了している場合、ステップ７７において、現在の枠が終了したか否かについて判断する。ステップ７７において現在の枠が終了している場合、ステップ７２から開始して中間ループを繰り返す。逆に、ステップ７７において現在の枠が終了している場合、中間ループを終了させ、ステップ７８において、メモリ・ページ選択レジスタ（ＰＰＡＧＥ）４４を増分する。次に、ステップ７９において、全てのモジュールまたはメモリのプログラムが行われたか否かについて判断する。ステップ７９において全てのモジュールまたはメモリのプログラムが未だ終わっていない場合、ステップ７１から開始して外側ループを繰り返す。逆に、ステップ７９において全てのモジュールまたはメモリのプログラムが終了していた場合、プログラミングは完了する。図４および図５と図７との間には大きな相違があることを注記しておく。図７の外側ループは、プログラムまたは消去するメモリ・ページ毎に異なるメモリ・プログラミング・レジスタ４０，４１，４２，４３を利用する必要性のために、図４および図５では、４つの別個のコード・ピース(pieces of code)に展開されることになる。本発明の場合、図７に示すプログラミングに表すように、ステップ７４において一定のアドレスを利用しつつ、ステップ７８においてページ選択レジスタ（ＰＰＡＧＥ）４４を増分することが可能である。
【００１２】
図８は、本発明の代替実施例の物理メモリおよびレジスタのメモリ・アドレス・マップを示す図である。図６の場合と同様、８つのメモリ・ページ１１０，１１１，１１２，１１３，１１４，１１５，１１６，１１７が示されている。しかしながら、これら８つのメモリ・ページは、物理的に４つのメモリ・アレイとして組織されている。この場合、２つの１６Ｋメモリ・ページが、１つの３２Ｋメモリ・アレイを構成する。４つのメモリ・アレイ１２０，１２２，１２４，１２６に対応して、４つのメモリ・プログラミング・レジスタ１００，１０２，１０４，１０６が示されている。第１メモリ・アレイ１２０は、＄００の値によって選択される第１メモリ・ページ１１０，および＄０１の値によって選択される第２メモリ・ページ１１１を含む。同様に、第２メモリ・アレイ１２２は、＄０２の値を有する第３メモリ・ページ１１２および＄０３の値を有する第４メモリ・ページ１１３によってマップされる。他の４つのメモリ・ページ１１４，１１５，１１６，１１７および２つのメモリ・アレイ１２４，１２６についても同様である。したがって、＄００に等しいページ選択値を含むページ選択レジスタ（ＰＰＡＧＥ）４４は、第１プログラミング・レジスタ集合１００，および第１メモリ・アレイ１２０内の第１ページ１１０を選択する。＄０１のページ選択値もまた、第１プログラミング・レジスタ集合１００を選択するが、このときは、第１メモリ・アレイ１２０の第２ページ１１１を選択する。同様に、＄０２に等しいページ選択値は、第２メモリ・プログラミング・レジスタ集合１０２，および第２メモリ・アレイ１２２内の第１ページ１１２を選択する。同様に、＄０３に等しいページ選択値は、第２メモリ・プログラミング・レジスタ集合１０２，および第２メモリ・アレイ１２２の第２ページ１１３を選択する。これは、第３および第４メモリ・プログラミング・レジスタ集合１０４，１０６、ならびに第３メモリ・アレイ１２４および第４メモリ・アレイ１２６についても繰り返される。
【００１３】
フラッシュ・ページ６（ＰＰＡＧＥ＝＄０６）１１６が、メモリ・アドレス＄４０００から＄７ＦＦＦまでに、追加的にマップされている。同様に、フラッシュ・ページ７（ＰＰＡＧＥ＝＄０７）１１７が、＄Ｃ０００から＄ＦＦＦＦまでにマップされる。これによって、２つのページをプログラムする必要がある場合にこれら２つのページを、他のメモリ・ページと同様に扱うことが可能となるが、加えてこれらのページを常に物理メモリ空間内で見えるようにしておくことが可能となる。
【００１４】
図９は、本発明の第２の代替実施例の物理メモリおよびレジスタのメモリ・アドレス・マップを示す図である。図８の場合と同様、４つのメモリ・アレイ１２０，１２２，１２４，１２６を、８つのメモリ・ページ１１０，１１１，１１２，１１３，１１４，１１５，１１６，１１７にマップする。４つのメモリ・アレイ１２０，１２２，１２４，１２６の各々は、対応する重複メモリ・レジスタ集合１３０，１３２，１３４，１３６を有する。これらは、メモリ・マップ・アドレス＄００ＥＣないし＄００ＥＦにまで及ぶ。加えて、４つのメモリ・アレイ１２０，１２２，１２４，１２６の各々は、＄００Ｆ０ないし＄００ＦＦにまで及び、重複しない４バイト・メモリ・レジスタ集合１３１，１３３，１３５，１３７を有する。第２メモリ・プログラミング・レジスタ集合１３１，１３３，１３５，１３７は、１つのプログラミング・レジスタ集合に対して一定の可視性を、更に他の集合１３０，１３２，１３４，１３６に対してオーバーレイド・アクセス(overlaid access) を与える。尚、この実施例では、２つの異なるレジスタ集合を示すことに注意されたい。しかしながら、これらを重複して実施することが可能である。したがって、第１の非オーバーレイド・レジスタ１３１は、ＰＰＡＧＥ＝＄００によって選択されるオーバーレイド・レジスタ１３０をアドレスすることができる。
【００１５】
図１０は、本発明の別の代替実施例の物理メモリおよびレジスタのメモリ・アドレス・マップを示す図である。この図１０は、図８に示したようなメモリ・アレイおよびメモリ・ページのみを示す。メモリ・アレイ１２０，１２２，１２４，１２６の各々に対する８Ｋのブート部は、対応するメモリ・レジスタ１００，１０２，１０４，１０６から制御することができる。ＦＥＥＭＣＲレジスタ（以下を参照）のＢＯＯＴＰビットは、このブート・エリアを消去およびプログラミングから締め出すことを可能にする。第４メモリ・アレイ１２６および第８ページ１１７内のブート部は、システム・メモリ・ページの＄Ｅ０００ないし＄ＦＦＦＦにまで及ぶ、システム・ブート・エリアならびに割り込みおよびリセット・ベクトル・エリア内にマップされる。ＢＯＯＴＰビットは、このメモリ・エリアを保護するために用いられることが考えられる。
【００１６】
表Ｔ−１は、図６に示すメモリ制御レジスタ８０，８１，８２，８３，８４，８５，８６，８７の内容を示す。この表に続いて、表Ｔ−１に示すレジスタのレジスタ・ビットについて、更に詳しく説明する。尚、表に示すビットは例示の目的のためのものであることを注記しておく。本発明の他の実施例は他のレジスタ・コンフィギュレーションを用いる場合もあることは理解されよう。
【００１７】
【表１】
0004664453.tif 000002
ＦＥＥＬＣＫ（＄００Ｆ４）−フラッシュＥＥＰＲＯＭロック制御レジスタ：
ＬＯＣＫ（ビット０）−ロック・レジスタ・ビット
ＦＥＥＭＣＲレジスタへの書き込みをイネーブル／ディゼーブルする。
ＦＥＥＭＣＲ（＄００Ｆ５）−フラッシュＥＥＰＲＯＭモジュール・テスト・レジスタ：        ＢＯＯＴＰ（ビット０）−ブート保護
ブート・ブロック消去／プログラムをイネーブル／ディゼーブルする。
ＦＥＥＴＳＴ（＄００Ｆ６）：フラッシュＥＥＰＲＯＭモジュール・テスト・レジスタ：        ＭＷＰＲ（ビット０）−多ワード・プログラミング
多（３２）ワード・プログラミングをイネーブル／ディゼーブルする。
【００１８】
ＳＴＲＥ（ビット１）−スペア行イネーブル
イネーブル／ディゼーブルはテスト行である。
【００１９】
ＶＴＣＫ（ビット２）−ＶT チェック・テスト・イネーブル
ＶFPピンを用いてＶT テストをイネーブル／ディゼーブルする。
【００２０】
ＦＤＩＳＶＦＰ（ビット３）−ディゼーブル・ステータスＶFP電圧ロック低ＶFPに対する自動ＬＡＴロックをイネーブル／ディゼーブルする。
【００２１】
ＦＥＮＬＶ（ビット４）−イネーブル低電圧
基準回路内の低電圧トランジスタをイネーブル／ディゼーブルする。
【００２２】
ＨＶＴ（ビット５）−応力テスト高電圧レベル
応力テストの間の高電圧の有無
ＧＡＤＲ（ビット６）−ゲート／ドレイン応力検査選択
ゲートまたはドレイン応力検査回路を選択する。
【００２３】
ＦＳＴＥ（ビット７）−応力テスト・イネーブル
ゲート／ドレイン応力テスト回路をイネーブル／ディゼーブルする。
ＦＥＥＣＴＬ（＄００Ｆ７）−フラッシュＥＥＰＲＯＭ制御レジスタ：
ＥＮＰＥ（ビット０）−イネーブル・プログラミング／消去
フラッシュへのプログラム／消去電圧をイネーブル／ディゼーブルする。
【００２４】
ＬＡＴ（ビット１）−ラッチ制御
プログラミング・ラッチをイネーブル／ディゼーブルする。
【００２５】
ＥＲＡＳ（ビット２）−消去制御
プログラミング／消去のために構成されたフラッシュ。
【００２６】
ＳＶＦＰ（ビット３）−ステータスＶFP電圧
正常プログラミング・レベルより高い／低いＶFPピン
ＦＥＥＳＷＡＩ（ビット）４−待機制御におけるフラッシュＥＥＰＲＯＭ停止
待機モードにある場合、ホールトをイネーブル／ディゼーブルする。
【００２７】
表Ｔ−２は、ＥＮＰＥ，ＬＡＴ，およびＥＲＡＳビットのメモリ・アレイ・リードに対する効果を纏めたものである。
【００２８】
【表２】
0004664453.tif 000003
当業者は、本発明の精神から逸脱することなく、変更や変形が可能であることを認めよう。したがって、本発明は、特許請求の範囲に該当するような変形および変更全てを包含することを意図するものである。
【００２９】
番号や記号を付した請求項の構成要素および段階は、読みやすさや理解を助けるためのものに過ぎない。したがって、番号付けおよび／または記号付け自体は、特許請求の範囲における構成要素および／または段階の順序を示すことを意図するものではなく、そのように解釈すべきではない。
【図面の簡単な説明】
【図１】典型的なマイクロコントローラまたはマイクロプロセッサ・システムを示すブロック図。
【図２】図１に示すシステムにおける物理メモリおよびレジスタの典型的なメモリ・アドレス・マップを示す図。
【図３】従来技術において利用されているプログラマブル・メモリに対するページ・マッピング方式を示す図。
【図４】図５と共に、限られたレジスタの集合を有するアーキテクチャにおいて、従来技術のアーキテクチャを利用してＦＬＡＳＨメモリの４つのモジュールをプログラミングする場合を示すフロー・チャート。
【図５】図４と共に、限られたレジスタの集合を有するアーキテクチャにおいて、従来技術のアーキテクチャを利用してＦＬＡＳＨメモリの４つのモジュールをプログラミングする場合を示すフロー・チャート。
【図６】本発明によるプログラマブル・メモリの物理メモリおよびレジスタのメモリ・アドレス・マップを示す図。
【図７】図６に示すページ・マッピング技法を利用したメモリのプログラミングを示すフロー・チャート。
【図８】図６に示す本発明の代替実施例の、物理メモリおよびレジスタのメモリ・アドレス・マップを示す図。
【図９】図６に示す本発明の代替実施例の、物理メモリおよびレジスタのメモリ・アドレス・マップを示す図。
【図１０】図６に示す本発明の代替実施例の、物理メモリおよびのメモリ・アドレス・マップを示す図。
【符号の説明】
１０    システム
１２    中央演算装置（ＣＰＵ）
１４    メモリ管理インターフェース
１６    ＦＬＡＳＨ
１７    メモリ
１８    ＥＥＰＲＯＭメモリ
２０    メモリ・アドレス・マップ
２４    ＥＥＰＲＯＭ
２８    ＦＬＡＳＨ
３０，３１，３２，３３，３４，３５，３６，３７    ページ化ＦＬＡＳＨ
３８    固定マップＦＬＡＳＨ
４０，４１，４２，４３    メモリ制御レジスタ
４４    ページ選択レジスタ（ＰＰＡＧＥ）
５０，５１，５２，５３    メモリ
８０，８１，８２，８３，８４，８５，８６，８７    メモリ・レジスタ集合
９０，９１，９２，９３，９４，９５，９６，９７    メモリ
１００，１０２，１０４，１０６    メモリ・プログラミング・レジスタ
１１０，１１１，１１２，１１３，１１４，１１５，１１６，１１７    メモリ・ページ１２０，１２２，１２４，１２６    メモリ・アレイ
１３０，１３２，１３４，１３６    メモリ・レジスタ集合
１３１，１３３，１３５，１３７    第２メモリ・レジスタ集合
【図１】
0004664453.tif 000004
【図２】
0004664453.tif 000005
【図３】
0004664453.tif 000006
【図４】
0004664453.tif 000007
【図５】
0004664453.tif 000008
【図６】
0004664453.tif 000009
【図７】
0004664453.tif 000010
【図８】
0004664453.tif 000011
【図９】
0004664453.tif 000012
【図１０】
0004664453.tif 000013