(57)【要約】      （修正有）【課題】供給側での製造処理を簡易にしつつ、ユーザ側から所望された仕様を満足するメモリを供給する。【解決手段】メモリコア２２のアドレス空間２００Ｃは、情報格納領域２０１と、コード領域２０２と、非書き込み領域２０３とを有している。情報格納領域２０１にはその第１部分２０１ａにおいて非書き込み領域情報ＷＲＧＮが、第２部分２０１ｂにおいて固定値ＦＸＶＬが、それぞれ書き込まれている。コード領域２０２にはプログラムコードＣＯＤＥが書き込まれている。非書き込み領域情報ＷＲＧＮは非書き込み領域２０３の位置を示し、固定値ＦＸＶＬは非書き込み領域２０３において書き込まれるべき固定された値を示している。ＲＯＭ２は、データ選定部２１３によってメモリコア２２から直接に得られた読み出し原データＤＴＲと固定値ＦＸＶＬとを選択して、読み出しデータＤＴＣとして出力する。【選択図】図１
2008071101.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）いずれも所定のアドレス空間に割り当てられる第１領域及び第２領域と、
固定値及び前記第２領域の位置を指定する領域情報を格納する第３領域と
を有するメモリコアと、
（ｂ）(i)前記領域情報と、前記アドレス空間の物理アドレスと、前記固定値と、前記物理アドレスにおいて前記メモリコアに格納されていたデータである読み出し原データとを入力し、
(ii)前記物理アドレスが前記第２領域外を指定する場合には前記読み出し原データを読み出しデータとして出力し、
(iii)前記物理アドレスが前記第２領域を指定する場合には前記固定値を前記読み出しデータとして出力する、
データ選定部と
を備える記憶装置。
【請求項２】
前記第３領域は前記アドレス空間に割り当てられる、請求項１記載の記憶装置。
【請求項３】
前記第３領域は前記第２領域内に設けられる、請求項２記載の記憶装置。
【請求項４】
前記第３領域は前記メモリコアの前記アドレス空間には割り当てられない、請求項１記載の記憶装置。
【請求項５】
前記第２領域は複数存在し、各々の前記第２領域の位置を指定する前記領域情報と、各々の前記第２領域が指定された場合に前記データ選定部から出力される前記固定値とを、相互に対応づけたテーブルとして前記第３領域において格納する、請求項２乃至請求項４のいずれか一つに記載の記憶装置。
【請求項６】
前記固定値と前記領域情報とを格納するレジスタ
を更に備え、
前記データ選定部には前記レジスタから前記固定値と前記領域情報とが入力される、請求項１乃至請求項５のいずれか一つに記載の記憶装置。
【請求項７】
外部からの論理アドレスを前記物理アドレスに変換するアドレス変換テーブル
を更に備え、
前記メモリコアは、
前記第１領域の不良領域に代替してデータを格納する冗長領域と、
前記不良領域を示す不良アドレスと前記冗長領域を示す冗長アドレスとを対応づけて格納する冗長変換領域と
を前記第２領域において格納し、
前記アドレス変換テーブルは、前記物理アドレスが前記不良アドレスである場合にはこれに代替して前記冗長アドレスを採用し、
前記データ選定部は、前記物理アドレスが前記第２領域を指定する場合であっても前記冗長アドレスである場合には例外的に、前記読み出し原データを前記読み出しデータとして出力する、請求項１乃至請求項５のいずれか一つに記載の記憶装置。
【請求項８】
前記固定値と前記領域情報と前記冗長アドレスを格納するレジスタ
を更に備え、
前記データ選定部には前記レジスタから前記固定値と前記領域情報と前記冗長アドレスが入力される、請求項７記載の記憶装置。
【請求項９】
メモリコアのアドレス空間に割り当てられた領域の位置を示す領域情報と、前記アドレス空間の物理アドレスとを入力し、前記物理アドレスが前記領域情報の示す領域内を指定するか否かを示す制御信号を出力するアドレス比較器と、
固定値と、前記物理アドレスにおいて前記メモリコアに格納されていたデータである読み出し原データとを入力し、前記制御信号に基づいて、前記固定値及び前記読み出し原データのいずれか一方を出力するセレクタと
を備える、データ出力回路。
【請求項１０】
前記固定値と前記領域情報とを格納するレジスタ
を更に備える、請求項９記載のデータ出力回路。
【請求項１１】
外部からの論理アドレスを前記物理アドレスに変換するアドレス変換テーブル
を更に備え、
前記アドレス変換テーブルは、前記物理アドレスが、前記メモリコアの不良領域を示す不良アドレスである場合にはこれに代替して、前記不良領域に代替してデータを格納する冗長領域を示す冗長アドレスを採用し、
前記セレクタは、前記物理アドレスが前記領域情報の示す領域を指定する場合であっても、前記冗長アドレスである場合には例外的に、前記読み出し原データを出力する、請求項９記載のデータ出力回路。
【請求項１２】
前記固定値と前記領域情報と前記冗長アドレスを格納するレジスタ
を更に備え、
前記データ選定部には前記レジスタから前記固定値と前記領域情報と前記冗長アドレスが入力される、請求項１１記載のデータ出力回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はメモリからデータを読み出す技術に関する。
【背景技術】
【０００２】
プログラムコードが書き込まれたＲＯＭ（Read Only Memory）を供給する場合、そのプログラムコード自身のみならず、ＲＯＭ全体に格納されるデータが指定される場合がある。その理由は、例えば、当該ＲＯＭを使用するユーザがアクセスすることが予定されていないメモリ領域からも、データが読み出されることによる不都合を未然に回避するためである。
【０００３】
図１２はプログラムコードが書き込まれるＲＯＭの仕様書１００の一例を概念的に示す図である。仕様書１００においては、プログラムコードＣＯＤＥのみならず、非書き込み領域情報ＷＲＧＮや固定値ＦＸＶＬも指定されていることが多い。非書き込み領域情報ＷＲＧＮはプログラムコードＣＯＤＥが格納されるべきでない領域（以下、「非書き込み領域」と称することもある）を指定する。固定値ＦＸＶＬは非書き込み領域において書き込まれるべき固定された値のデータ、例えば００ＨやＦＦＨ等である。
【０００４】
図１３はアドレス空間２００Ａを例示する概念図である。アドレス空間２００Ａは仕様書１００に忠実に基づいて、データが書き込まれている。具体的には、情報格納領域２０１において非書き込み領域情報ＷＲＧＮが、コード領域２０２においてプログラムコードＣＯＤＥが、非書き込み領域２０３には固定値ＦＸＶＬが、それぞれ書き込まれる。
【０００５】
なお、本件に関連する先行文献として特許文献１，２を挙げる。
【０００６】
【特許文献１】特開２００６−１８４５３号公報
【特許文献２】特開平９−２３１８００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、書き込み型の不揮発性メモリを用いたＲＯＭを供給する側にとっては、固定値ＦＸＶＬの書き込みは製造時間の長期化の原因となるために回避したい処理である。一般的なマスクＲＯＭとは異なり、書き込み型の不揮発性メモリを用いたＲＯＭでは、プログラムコードのサイズが大きいほど出荷時のプログラムコードの書き込みに要する時間が長いからである。また供給前に行うテストにおいても、非書き込み領域２０３の固定値ＦＸＶＬのチェックについても回避したい処理である。
【０００８】
図１４はアドレス空間２００Ｂを例示する概念図である。アドレス空間２００Ｂは非書き込み領域情報ＷＲＧＮや、コード領域２０２においてプログラムコードＣＯＤＥが格納されてはいるが、非書き込み領域２０３には積極的な書き込み処理を行っていない。その結果、非書き込み領域２０３の値は未知の値ＮＣが存在することになる。
【０００９】
他方、ユーザ側では、あくまで仕様書１００に基づいたアドレス空間を有するＲＯＭを所望しているのであり、ユーザ側によるＲＯＭのテストにおいては、例えばチェックサムを採用し、非書き込み領域２０３において固定値ＦＸＶＬが格納されていることを前提としていることも多い。
【００１０】
そこでこの発明は、供給側での製造処理を簡易にしつつ、ユーザ側から所望された仕様を満足するメモリを供給する技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
この発明にかかる記憶装置の第１の態様は、（ａ）いずれも所定のアドレス空間に割り当てられる第１領域及び第２領域と、固定値及び前記第２領域の位置を指定する領域情報を格納する第３領域とを有するメモリコアと、（ｂ）(i)前記領域情報と、前記アドレス空間の物理アドレスと、前記固定値と、前記物理アドレスにおいて前記メモリコアに格納されていたデータである読み出し原データとを入力し、(ii)前記物理アドレスが前記第２領域外を指定する場合には前記読み出し原データを読み出しデータとして出力し、(iii)前記物理アドレスが前記第２領域を指定する場合には前記固定値を前記読み出しデータとして出力する、データ選定部とを備える。
【００１２】
望ましくは前記第３領域は前記アドレス空間に割り当てられ、より望ましくは前記第３領域は前記第２領域内に設けられる、請求項１ａ記載の記憶装置。
【００１３】
あるいは望ましくは前記第３領域は前記メモリコアの前記アドレス空間には割り当てられない。
【００１４】
あるいは望ましくは前記第２領域は複数存在し、各々の前記第２領域の位置を指定する前記領域情報と、各々の前記第２領域が指定された場合に前記データ選定部から出力される前記固定値とを、相互に対応づけたテーブルとして前記第３領域において格納する。
【００１５】
この発明にかかる記憶装置の第２の態様は、その第１の態様であって、前記固定値と前記領域情報とを格納するレジスタを更に備える。そして、前記データ選定部には前記レジスタから前記固定値と前記領域情報とが入力される。
【００１６】
この発明にかかる記憶装置の第３の態様は、その第１の態様であって、外部からの論理アドレスを前記物理アドレスに変換するアドレス変換テーブルを更に備える。そして、前記メモリコアは、前記第１領域の不良領域に代替してデータを格納する冗長領域と、前記不良領域を示す不良アドレスと前記冗長領域を示す冗長アドレスとを対応づけて格納する冗長変換領域とを前記第２領域において格納する。そして、前記アドレス変換テーブルは、前記物理アドレスが前記不良アドレスである場合にはこれに代替して前記冗長アドレスを採用し、前記データ選定部は、前記物理アドレスが前記第２領域を指定する場合であっても前記冗長アドレスである場合には例外的に、前記読み出し原データを前記読み出しデータとして出力する。
【００１７】
この発明にかかる記憶装置の第４の態様は、その第３の態様であって、前記固定値と前記領域情報と前記冗長アドレスを格納するレジスタを更に備える。そして、前記データ選定部には前記レジスタから前記固定値と前記領域情報と前記冗長アドレスが入力される。
【００１８】
この発明にかかるデータ出力回路の第１の態様は、メモリコアのアドレス空間に割り当てられた領域の位置を示す領域情報と、前記アドレス空間の物理アドレスとを入力し、前記物理アドレスが前記領域情報の示す領域内を指定するか否かを示す制御信号を出力するアドレス比較器と、固定値と、前記物理アドレスにおいて前記メモリコアに格納されていたデータである読み出し原データとを入力し、前記制御信号に基づいて、前記固定値及び前記読み出し原データのいずれか一方を出力するセレクタとを備える。
【００１９】
この発明にかかるデータ出力回路の第２の態様は、その第１の態様であって、前記固定値と前記領域情報とを格納するレジスタを更に備える。
【００２０】
この発明にかかるデータ出力回路の第３の態様は、その第１の態様であって、外部からの論理アドレスを前記物理アドレスに変換するアドレス変換テーブルを更に備える。そして前記アドレス変換テーブルは、前記物理アドレスが、前記メモリコアの不良領域を示す不良アドレスである場合にはこれに代替して、前記不良領域に代替してデータを格納する冗長領域を示す冗長アドレスを採用する。そして前記セレクタは、前記物理アドレスが前記領域情報の示す領域を指定する場合であっても、前記冗長アドレスである場合には例外的に、前記読み出し原データを出力する。
【００２１】
この発明にかかるデータ出力回路の第４の態様は、その第３の態様であって、前記固定値と前記領域情報と前記冗長アドレスを格納するレジスタを更に備える。そして前記データ選定部には前記レジスタから前記固定値と前記領域情報と前記冗長アドレスが入力される。
【発明の効果】
【００２２】
この発明にかかる記憶装置の第１の態様によれば、第２領域に格納されている値に拘わらず、記憶装置の外部から第２領域への読み出しに対しては固定値を出力する。よって供給側での製造処理を簡易にしつつ、ユーザ側から所望された仕様を満足することができる。
【００２３】
この発明にかかる記憶装置の第２の態様によれば、物理アドレスが更新されるたびに第３領域から固定値と領域情報と入力する必要が無く、アクセスの著しい遅延を回避する。
【００２４】
この発明にかかる記憶装置の第３の態様によれば、第２領域を利用して冗長機能を有しつつ、記憶装置の外部から第２領域への読み出しに対しては固定値を出力する。
【００２５】
この発明にかかる記憶装置の第４の態様によれば、物理アドレスが更新されるたびにメモリコアから固定値と領域情報と冗長アドレスとを入力する必要が無く、アクセスの著しい遅延を回避する。
【００２６】
この発明にかかるデータ出力回路の第１の態様によれば、メモリコアの読み出しにおいて、物理アドレスが領域情報の示す領域を指定した場合に固定値を出力する。よって供給側でのメモリコアの製造処理を簡易にしつつ、ユーザ側から所望された仕様を満足することができる。
【００２７】
この発明にかかるデータ出力回路の第２の態様によれば、物理アドレスが更新されるたびに第３領域から固定値と領域情報と入力する必要が無く、アクセスの著しい遅延を回避する。
【００２８】
この発明にかかるデータ出力回路の第３の態様によれば、固定値を出力すべき領域を利用して冗長機能を有しつつ、メモリコアの外部から当該領域への読み出しに対しては固定値を出力する。
【００２９】
この発明にかかるデータ出力回路の第４の態様によれば、物理アドレスが更新されるたびにメモリコアから固定値と領域情報と冗長アドレスとを入力する必要が無く、アクセスの著しい遅延を回避する。
【発明を実施するための最良の形態】
【００３０】
第１の実施の形態．
図１はこの発明の第１の実施の形態にかかる、記憶装置たるＲＯＭ２の構造を示すブロック図である。ＲＯＭ２はコントローラ２１とメモリコア２２とを備えている。
【００３１】
メモリコア２２はアドレス空間２００Ｃを用いて示している。アドレス空間２００Ｃは情報格納領域２０１と、コード領域２０２と、非書き込み領域２０３とを有している。情報格納領域２０１にはその第１部分２０１ａにおいて非書き込み領域情報ＷＲＧＮが、第２部分２０１ｂにおいて固定値ＦＸＶＬが、それぞれ書き込まれている。コード領域２０２にはプログラムコードＣＯＤＥが書き込まれている。非書き込み領域２０３に対しては積極的な書き込み処理は行われる必要が無く、未知の値ＮＣが存在する。
【００３２】
非書き込み領域情報ＷＲＧＮは非書き込み領域２０３の位置、具体的にはアドレス空間２００Ｃの物理アドレスを示し、固定値ＦＸＶＬは非書き込み領域２０３において書き込まれるべき固定された値を示している。
【００３３】
コントローラ２１は、ＲＯＭ２の外部から与えられる読み出し命令ＲＣＭＤ及び論理アドレスＡＤＲＬに従ってメモリコア２２にアクセスし、後述するやり方で選定される読み出しデータＤＴＣを出力する、データ出力回路である。
【００３４】
コントローラ２１はアドレス変換テーブル２１１を有しており、これによって論理アドレスＡＤＲＬがメモリコア２２の物理アドレスＡＤＲＰに変換される。
【００３５】
コントローラ２１はレジスタ２１２を有しており、ここには非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬが格納される。
【００３６】
コントローラ２１はデータ選定部２１３を有しており、これによってメモリコア２２から直接に得られた読み出し原データＤＴＲと固定値ＦＸＶＬとを選択して、読み出しデータＤＴＣとして出力する。
【００３７】
データ選定部２１３はアドレス比較器２１３ａとセレクタ２１３ｂとを有している。アドレス比較器２１３ａにはレジスタ２１２から非書き込み領域情報ＷＲＧＮが、アドレス変換テーブル２１１から物理アドレスＡＤＲＰが、それぞれ与えられる。セレクタ２１３ｂには読み出し原データＤＴＲと固定値ＦＸＶＬとが与えられ、そのいずれか一方のみがアドレス比較器２１３ａからの制御信号ＳＥＬに基づいて出力される。
【００３８】
図２は、図１に示されたＲＯＭ２に対して外部からテストされるときのコントローラ２１の動作を示すフローチャートである。ステップＳ１０１において、メモリコア２２から非書き込み領域情報ＷＲＧＮ及び固定値ＦＸＶＬをメモリ２１２へ格納する。次にステップＳ１０２において、ＲＯＭ２の外部から入力された論理アドレスＡＤＲＬが、アドレス変換テーブル２１１を用いて物理アドレスＡＤＲＰに変換される。
【００３９】
次にステップＳ１０３において、物理アドレスＡＤＲＰは非書き込み領域情報ＷＲＧＮが示す非書き込み領域２０３内を指定するか否かが判断される。判断結果が否定的であればプログラムコードＣＯＤＥあるいは非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬが読み出される。
【００４０】
よってステップＳ１０４において、アドレス比較器２１３ａからの制御信号ＳＥＬはセレクタ２１３ｂに対して、読み出し原データＤＴＲを読み出しデータＤＴＣとして出力させる。
【００４１】
他方、ステップＳ１０３の判断結果が肯定的であれば非書き込み領域２０３のデータを読み出すように外部から命令されていることになる。
【００４２】
外部からは、非書き込み領域２０３には固定値ＦＸＶＬが格納されていることが期待されているが、上述のように実際には非書き込み領域２０３には未知の値ＮＣが格納されている。そこでステップＳ１０５において、制御信号ＳＥＬはセレクタ２１３ｂに対して、固定値ＦＸＶＬを読み出しデータＤＴＣとして出力させる。
【００４３】
このようにしてメモリコア２２の非書き込み領域２０３において積極的に固定値ＦＸＶＬを書き込まなくても、ＲＯＭ２の外部から非書き込み領域２０３を読み出す命令が与えられた場合に固定値ＦＸＶＬを出力することができる。よって供給側での製造処理を簡易にしつつ、ユーザ側から所望された仕様を満足することができる。
【００４４】
レジスタ２１２に非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬが格納されことにより、物理アドレスＡＤＲＰへのアクセス毎に、情報格納領域２０１からアドレス比較器２１３ａへと非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬを与える必要が無く、アクセスが著しく遅延することが回避される。よってステップＳ１０４又はステップＳ１０５の実行後に物理アドレスＡＤＲＰが更新されると、処理はステップＳ１０１ではなくステップＳ１０２へと戻ればよい。
【００４５】
もちろん、テストではなく、ＲＯＭ２を実際に、プログラムコードを読み出すために使用する場合であっても、図２のフローチャートを採用することができる。
【００４６】
第２の実施の形態．
第１の実施の形態で示された技術を応用し、非書き込み領域２０３にいわゆる冗長領域を設けることができる。非書き込み領域２０３において実際に格納された値に拘わらずに、ＲＯＭ２は非書き込み領域２０３において固定値ＦＸＶＬが格納されたものとして扱えるからである。
【００４７】
図３はこの発明の第２の実施の形態にかかる記憶装置たるＲＯＭ２の構造を示すブロック図である。第１の実施の形態で示されたブロックがそのまま採用されているが、授受される信号に一部の相違がある。
【００４８】
当該相違の第１として、アドレス空間２００Ｃがアドレス空間２００Ｄに置換されている。アドレス空間２００Ｄでは、非書き込み領域２０３において冗長指定領域２０３ａ、冗長変換領域２０３ｂ、冗長領域２０３ｃが設けられている。
【００４９】
冗長指定領域２０３ａには冗長変換領域２０３ｂの位置、具体的にはアドレス空間２００Ｄにおける物理アドレスを示す冗長指定情報ＦＲＧＮが格納されている。冗長指定領域２０３ａは非書き込み領域２０３の所定の位置、例えば非書き込み領域２０３で最も値が大きな物理アドレスに配置される。
【００５０】
冗長変換領域２０３ｂには、コード領域２０２の不良アドレスＡＤＲＦと、冗長領域２０３ｃを指定する冗長アドレスＡＤＲＣとが対応して格納されている。
【００５１】
冗長領域２０３ｃには、本来不良アドレスＡＤＲＦにおいて格納されるべきであったコードＣＯＤＥＦが格納されている。図３においては不良アドレスＡＤＲＦに対応する不良領域２０２ａが図示されている。
【００５２】
相違の第２として、レジスタ２１２には非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬのみならず、冗長アドレスＡＤＲＣも更に格納される。そしてアドレス比較器２１３ａには非書き込み領域情報ＷＲＧＮのみならず、冗長アドレスＡＤＲＣも更に与えられる。
【００５３】
相違の第３として、アドレス変換テーブルには不良アドレスＡＤＲＦと、冗長アドレスＡＤＲＣとが与えられる。
【００５４】
図４は図３に示されたＲＯＭ２に対して外部からテストするときのコントローラ２１の動作を示すフローチャートである。図２に示されたフローチャートに対し、ステップＳ１０１，Ｓ１０２の間にステップＳ２０２〜Ｓ２０４が、ステップＳ１０３，Ｓ１０５の間にステップＳ２０５が、それぞれ介挿されている。
【００５５】
ステップＳ２０２において、冗長指定情報ＦＲＧＮが冗長変換領域２０３ｂの存在を示しているか否かを判断する。上述のように冗長指定情報ＦＲＧＮは固定された位置に格納されているので、コントローラ２１がステップＳ２０２を判断するときに、冗長指定情報ＦＲＧＮを格納する冗長指定領域２０３ａを指定する物理アドレスＡＤＲＰを別途に知る必要はない。
【００５６】
例えば冗長指定情報ＦＲＧＮが非書き込み領域２０３以外の位置を示していることで冗長変換領域２０３ｂの不在を示すことができ、非書き込み領域２０３内の位置を示していることで冗長変換領域２０３ｂの存在を示すことができる。
【００５７】
ステップＳ２０２の判断結果が否定的であれば、ステップＳ１０２へと処理が進み、その後は第１の実施の形態と同様に処理が進む。ステップＳ２０５が存在するものの、ステップＳ２０２の判断結果が否定的であれば、後述するようにステップＳ２０５の判断結果も否定的となるため、第１の実施の形態と同様の処理が進められる。
【００５８】
ステップＳ２０２の判断結果が肯定的であれば、ステップＳ２０３において、アドレス変換テーブル２１１の修正が行われる。具体的には物理アドレスＡＤＲＰが不良アドレスＡＤＲＦであった場合、これをそのまま用いて不良領域２０２ａにアクセスすることは望ましくない。不良領域２０２ａに代替して冗長領域２０３ｃが採用されているからである。そこで、物理アドレスＡＤＲＰのうち不良アドレスＡＤＲＦについては、これに代替して、冗長領域２０３ｃを指定する冗長アドレスＡＤＲＣを採用する（図中ではこの置換を(if ADRP==ADRF then ADRP=ADRC)として示す）。
【００５９】
そしてステップＳ２０４において、冗長アドレスＡＤＲＣをレジスタ２１２に格納する。ステップＳ２０３，Ｓ２０４はその順序を入れ替えてもよい。
【００６０】
ステップＳ２０２〜Ｓ２０４が実行された後は、ステップＳ２０２の判断結果が否定的である場合と同様に、ステップＳ１０２が実行される。但しステップＳ２０２〜Ｓ２０４が実行された後はステップＳ２０３によってアドレス変換テーブル２１１は修正された後のものとなっている。
【００６１】
ステップＳ１０２が実行された後は、物理アドレスＡＤＲＰを用いてメモリコア２２にアクセスすることになる。ステップＳ２０３によって修正されたアドレス変換テーブル２１１を用いて物理アドレスＡＤＲＰが得られたので、物理アドレスＡＤＲＰとしては不良アドレスＡＤＲＦを採り得ない。よってステップＳ１０３において肯定的な判断がなされた場合、第１の実施の形態と同様にしてステップＳ１０４を実行する。即ち読み出し原データＤＴＲが読み出しデータＤＴＣとして採用される。
【００６２】
他方、ステップＳ１０３において否定的な判断がなされた場合、ＲＯＭ２の外部からは、非書き込み領域２０３に格納されているはずの固定値ＦＸＶＬが期待される場合と、不良アドレスＡＤＲＦに格納されているはずのコードＣＯＤＥＦが期待される場合とがある。前者の場合には第１の実施の形態と同様にしてステップＳ１０５が実行されるべきであるし、後者の場合には冗長領域２０３ｃからコードＣＯＤＥＦを読み出しデータＤＴＣとして採用すべきである。
【００６３】
物理アドレスＡＤＲＰとしては、既に不良アドレスＡＤＲＦに置換して冗長アドレスＡＤＲＣが採用されている。従って冗長アドレスＡＤＲＣに対応する冗長領域２０３ｃからコードＣＯＤＥＦを読み出す場合には、コードＣＯＤＥＦが読み出し原データＤＴＲとして読み出されることになる。
【００６４】
以上のことから、ステップＳ２０５において、物理アドレスＡＤＲＰが冗長アドレスＡＤＲＣに一致しているか否かが判断される。その判断結果が否定的であれば固定値ＦＸＶＬを読み出しデータＤＴＣとすべくステップＳ１０５が実行される。その判断結果が肯定的であればコードＣＯＤＥＦを読み出し原データＤＴＲとして、ひいてはこれを読み出しデータＤＴＣとすべくステップＳ１０４が実行される。
【００６５】
物理アドレスＡＤＲＰが冗長アドレスＡＤＲＣに一致するのは、冗長変換領域２０３ｂが存在している（換言すれば不良アドレスＡＤＲＦが存在する）ことが前提となる。よってステップＳ２０２の判断結果が否定的であれば、前述のようにステップＳ２０５の判断結果も否定的となる。
【００６６】
もちろん、テストではなく、ＲＯＭ２を実際に、プログラムコードを読み出すために使用する場合であっても、図４のフローチャートを採用することができる。
【００６７】
このように非書き込み領域２０３を冗長領域として利用する処理は、不良アドレスＡＤＲＦが存在した場合、これに書き込まれる筈のコードＣＯＤＥＦを、当該不良アドレスＡＤＲＦに置換される冗長アドレスＡＤＲＣに対して書き込む等の処理が必要である。かかる処理について次に説明する。
【００６８】
図５は、メモリコア２２への書き込み処理を示すフローチャートである。ステップＳ３０１において情報格納領域２０１に、非書き込み領域情報ＷＲＧＮ及び固定値ＦＸＶＬを書き込む。情報格納領域２０１の位置はデフォルトとして定まっていることが望ましく、例えば最も値が小さな物理アドレスに配置される。次にステップＳ３０２においてコード領域２０２における物理アドレスＡＤＲＰに所定のコードＣＯＤＥを書き込む。当該物理アドレスＡＤＲＰが不良であるか否かを検出するため、ステップＳ３０３でベリファイ処理を行い、良否を判断する。結果が良好であれば次のコードを書き込むべくステップＳ３０２へと処理が戻る。図５において詳細には示していないが、コード領域２０２の全てに対するコードＣＯＤＥが書き込まれればステップＳ３０２はその後は実行されない。
【００６９】
ステップＳ３０３でのベリファイ処理により、不良と判断された物理アドレスＡＤＲＰを不良アドレスＡＤＲＦとする（ステップＳ３０４）。そして不良アドレスＡＤＲＦに書かれる筈のコードＣＯＤＥをコードＣＯＤＥＦとして、これを格納すべき冗長アドレスＡＤＲＣを冗長領域２０３ｃにおいて設定する（ステップＳ３０５）。冗長領域２０３ｃは例えば非書き込み領域２０３の内、最も物理アドレスが小さい位置に設定される。不良アドレスＡＤＲＦが複数存在することになって冗長領域２０３ｃが拡大する場合には、物理アドレスが大きい方向に順次に拡大される。
【００７０】
そしてステップＳ３０６において、冗長アドレスＡＤＲＣにコードＣＯＤＥＦを書き込む。更に冗長アドレスＡＤＲＣにおいてステップＳ３０３と同様にしてベリファイ処理を行い、良否を判断する。結果が不良であればステップＳ３０８へと進み、書き込み処理を中止する。その他、ステップＳ３０５に戻り、冗長アドレスＡＤＲＣを再設定し直してもよい。その場合には再設定の上限値を予め決めておくことが望ましい。非書き込み領域２０３には冗長領域２０３ｃ以外にも冗長指定領域２０３ａ、冗長変換領域２０３ｂが設定されるので、際限なく冗長アドレスＡＤＲＣを再設定することはできないからである。
【００７１】
ステップＳ３０７の判断が良好であればステップＳ３０９に進み、冗長変換領域２０３ｂにおいて不良アドレスＡＤＲＦと冗長アドレスＡＤＲＣとを対応づけて格納する。冗長変換領域２０３ｂは例えば非書き込み領域２０３のうち、最も値が大きな物理アドレスよりも一つ小さな物理アドレスに配置される。不良アドレスＡＤＲＦが複数存在することになって冗長変換領域２０３ｂが拡大する場合には、物理アドレスが小さい方向に順次に拡大される。
【００７２】
そしてステップＳ３１０において、冗長指定領域２０３ａに冗長変換領域２０３ｂの位置を示す冗長指定情報ＦＲＧＮを格納する。例えば冗長指定領域２０３ａは最も値が大きな物理アドレスに配置される。ステップＳ３１０の実行後はステップＳ３０２に戻り、ステップＳ３０７からステップＳ３０８へと処理が進む場合を除き、コード領域２０２の全てに対するコードＣＯＤＥが書き込まれるまでステップＳ３０２以降の処理が事項される。
【００７３】
上述の書き込み処理により、図３に示されたアドレス空間２００Ｄを得ることができる。そしてメモリコア２２は冗長機能を有しながらも、外部から見たＲＯＭ２としては、非書き込み領域２０３には固定値ＦＸＶＬが書き込まれていると見なされることになる。
【００７４】
ステップＳ２０３においてアドレス変換テーブル２１１が修正され、ステップＳ２０４において冗長アドレスＡＤＲＣがレジスタ２１２に格納されている。よってステップＳ１０４又はステップＳ１０５の実行後に物理アドレスＡＤＲＰが更新される場合には、第１の実施の形態と同様に、処理はステップＳ１０２に戻ればよい。これにより物理アドレスＡＤＲＰへのアクセス毎にメモリコア２２から非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬ、冗長アドレスＡＤＲＣを読み込む必要が無く、アクセスの著しい遅延を回避する。
【００７５】
第３の実施の形態．
プログラムコードが書き込まれるＲＯＭの仕様書１００は、必ずしも図１２に示される様式には限られない。図６は、仕様書１００の他の例を概念的に示す図である。当該仕様書１００においては、単に、論理アドレスと当該論理アドレスに格納されるべきデータ群ＤＡＴＡが指定されている。図７はデータ群ＤＡＴＡの内容を概念的に示す図である。プログラムコードＣＯＤＥ１と固定値群ＶＬ１とがアドレスを異にして配置されている。固定値群ＶＬ１は固定値ＦＸＶＬの集合である。
【００７６】
仕様書１００の様式がこの様な場合、データ群ＤＡＴＡの全体を走査して調べることにより、固定値群ＶＬ１の位置を示す非書き込み領域情報ＷＲＧＮ、及びこれを構成する固定値ＦＸＶＬを得る。
【００７７】
そして仕様書においては非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬを格納するアドレスが指定されていないのであるから、メモリコア２２が割り当てられるアドレス空間において非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬを格納することはできない。
【００７８】
そこで本実施の形態においては、情報格納領域２０１は、非書き込み領域２０３において設ける。図８はメモリコア２２をアドレス空間２００Ｅを用いて示しており、コントローラ２１の構成は第１の実施の形態と同じである。
【００７９】
コード領域２０２と非書き込み領域２０３とがアドレス空間２００Ｅに割り当てられており、情報格納領域２０１がこれらと別途には、アドレス空間２００Ｅに割り当てられるものではない。情報格納領域２０１は非書き込み領域２０３が割り当てられたアドレス空間２００Ｅのアドレスを兼用する。そしてコード領域２０２にプログラムコードＣＯＤＥ１を格納する。これにより、第１の実施の形態と同様にして、ＲＯＭ２の外部から非書き込み領域２０３にアクセスした場合には固定値ＦＸＶＬが、コード領域２０２にアクセスした場合にはプログラムコードＣＯＤＥ１から読み出し原データＤＴＲが、それぞれ読み出しデータＤＴＣとして読み出されることになる。これにより、ＲＯＭ２は図７に示されたデータ群ＤＡＴＡを仕様書１００に従って格納するＲＯＭとして機能する。
【００８０】
第２の実施の形態のように非書き込み領域２０３に冗長領域を設ける場合においても、冗長指定領域２０３ａ、冗長変換領域２０３ｂ、冗長領域２０３ｃ以外の位置に情報格納領域２０１を配置すればよい。
【００８１】
第４の実施の形態．
図９はこの発明の第４の実施の形態にかかる、記憶装置たるＲＯＭ２の構造を示すブロック図である。ＲＯＭ２はコントローラ２１とメモリコア２２とを備えている点で第１の実施の形態と同様であり、コントローラ２１の構成も第１の実施の形態と同一である。
【００８２】
メモリコア２２ではコード領域２０２と非書き込み領域２０３とがアドレス空間２００Ｆに割り当てられており、コード領域２０２にはプログラムコードＣＯＤＥ１が格納されている。情報格納領域２０１はアドレス空間２００Ｆに割り当てられない。但し、コントローラ２１はステップＳ１０１（図２）によって情報格納領域２０１から非書き込み領域情報ＷＲＧＮ、固定値ＦＸＶＬを読み出し、レジスタ２１２へとこれらを格納することができる。この様に、アドレス空間には割り当てられないが、アクセス可能な領域は一般にメモリコアにおいて設けられ、例えばテスト領域と称される。
【００８３】
以上のようにして、第３の実施の形態と同様にして、ＲＯＭ２は図７に示されたデータ群ＤＡＴＡを仕様書１００に従って格納するＲＯＭとして機能する。
【００８４】
第５の実施の形態．
図１０は、データ群ＤＡＴＡにおいて、プログラムコードが存在しない領域が複数存在する場合を概念的に示す図である。データ群ＤＡＴＡにおいて、プログラムコードＣＯＤＥ１、固定値群ＶＬ１、プログラムコードＣＯＤＥ２、固定値群ＶＬ２、プログラムコードＣＯＤＥ３、固定値群ＶＬ３がこの順に連続して配置されている。
【００８５】
この様な場合、情報格納領域２０１には、固定値群ＶＬ１，ＶＬ２，ＶＬ３の位置をそれぞれ示す非書き込み領域情報ＷＲＧＮ１，ＷＲＧＮ２，ＷＲＧＮ３と、固定値群ＶＬ１，ＶＬ２，ＶＬ３を構成する固定値ＦＸＶＬ１，ＦＸＶＬ２，ＦＸＶＬ３とを、相互に対応づけたテーブルを格納すればよい。図１１はこのようなテーブルを概念的に示す図である。
【００８６】
かかるテーブルを格納した情報格納領域２０１は、第１実施の形態及び第２の実施の形態に示されたようにアドレス空間２００Ｃ，２００Ｄに割り当てられてもよいし、第３の実施の形態に示されるように非書き込み領域２０３に設けられてもよいし、第４の実施の形態に示されるようにアドレス空間には割り当てられないが、アクセス可能なメモリコアの領域において設けてもよい。
【００８７】
変形．
上記の実施の形態ではデータ出力回路たるコントローラ２１が、記憶装置たるＲＯＭ２に内蔵されている場合を例にとって説明したが、本発明はかかる態様に限定されはしない。例えばコントローラ２１がメモリコア２２とは別体に設けられてもよい。この場合であっても、当該コントローラ２１は、メモリコア２２の読み出しにおいて、物理アドレスＡＤＲＰが非書き込み領域情報ＷＲＧＮの示す非書き込み領域２０３を指定した場合に、読み出し原データＤＴＲに関わらず、固定値ＦＸＶＬを読み出しデータＤＴＣとして出力する。よって供給側でのメモリコア２２の製造処理を簡易にしつつ、ユーザ側から所望された仕様を満足することができる。
【００８８】
このように、上記実施の形態において示されるコントローラ２１はそれ単体としても本発明に含まれる。
【図面の簡単な説明】
【００８９】
【図１】この発明の第１の実施の形態にかかるＲＯＭの構造を示すブロック図である。
【図２】この発明の第１の実施の形態にかかるＲＯＭの動作を示すフローチャートである。
【図３】この発明の第２の実施の形態にかかるＲＯＭの構造を示すブロック図である。
【図４】この発明の第２の実施の形態にかかるＲＯＭの動作を示すフローチャートである。
【図５】この発明の第２の実施の形態にかかるＲＯＭに書き込みを行うフローチャートである。
【図６】ＲＯＭの仕様書の他の一例を概念的に示す図である。
【図７】データ群の内容を概念的に示す図である。
【図８】この発明の第３の実施の形態にかかるＲＯＭの構造を示すブロック図である。
【図９】この発明の第４の実施の形態にかかるＲＯＭの構造を示すブロック図である。
【図１０】この発明の第５の実施の形態におけるデータ群の内容を概念的に示す図である。
【図１１】この発明の第５の実施の形態におけるテーブルを示す図である。
【図１２】ＲＯＭの仕様書の一例を概念的に示す図である。
【図１３】アドレス空間を示す概念図である。
【図１４】アドレス空間を示す概念図である。
【符号の説明】
【００９０】
２  ＲＯＭ
２１  コントローラ
２１１  アドレス変換テーブル
２１２  レジスタ
２１３  データ選定部
２１３ａ  アドレス比較器
２１３ｂ  セレクタ
２２  メモリコア
【図１】
2008071101.tif 000003
【図２】
2008071101.tif 000004
【図３】
2008071101.tif 000005
【図４】
2008071101.tif 000006
【図５】
2008071101.tif 000007
【図６】
2008071101.tif 000008
【図７】
2008071101.tif 000009
【図８】
2008071101.tif 000010
【図９】
2008071101.tif 000011
【図１０】
2008071101.tif 000012
【図１１】
2008071101.tif 000013
【図１２】
2008071101.tif 000014
【図１３】
2008071101.tif 000015
【図１４】
2008071101.tif 000016