(57)【要約】【課題】ＣＰＵとメモリを単一の半導体基板上に形成したマイクロコンピュータ等の半導体装置において、不良ビットの個数が多い場合でも製品として出荷することができ、歩留まりが向上し、救済効率の良い半導体装置の不良ビット回避方法及び半導体装置を提供する。【解決手段】メモリへプログラムを書き込む工程が、前記メモリの不良ビットアドレス情報８を半導体装置からホストコンピュータへ転送する工程と、前記ホストコンピュータ内のリンケージエディタ１１により、前記転送されたアドレス情報８に基づいて前記不良ビットを回避して絶対アドレスを割り当て、ロードモジュールを生成する工程と、生成されたアブソリュートロードモジュール１２を前記メモリへ書き込む工程とを有することを特徴とする。【選択図】　　　　図１
2004038653.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリを単一の半導体基板上に形成した半導体装置において、前記メモリへプログラムを書き込む工程を有し、
前記プログラム書き込み工程は、
前記メモリの不良ビットのアドレス情報を前記半導体装置からホストコンピュータへ転送する工程と、
前記ホストコンピュータ内のリンケージエディタにより、前記転送されたアドレス情報に基づいて前記不良ビットを回避して絶対アドレスを割り当て、ロードモジュールを生成する工程と、
前記生成されたロードモジュールを前記メモリへ書き込む工程とを有することを特徴とする半導体装置の不良ビット回避方法。
【請求項２】
請求項１記載の半導体装置の不良ビット回避方法であって、
前記プログラム書き込み工程は、前記半導体装置が実装基板に実装された状態で実施されることを特徴とする半導体装置の不良ビット回避方法。
【請求項３】
ＣＰＵとメモリを単一の半導体基板上に形成した半導体装置であって、
前記メモリの不良ビットのアドレス情報を記憶する手段と、
前記記憶する手段に記憶された前記メモリの不良ビットのアドレス情報を外部へ転送する手段と、
外部において生成された、前記転送する手段により転送されたアドレス情報に基づいて前記不良ビットを回避して絶対アドレスを割り当てたロードモジュールを前記メモリへ書き込む手段とを有することを特徴とする半導体装置。
【請求項４】
ＣＰＵとメモリを単一の半導体基板上に形成した半導体装置であって、
実行命令のアドレスを保持する第１の手段と、
前記メモリの不良ビットのアドレスを保持する第２の手段と、
前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとを比較する第３の手段と、
前記第３の手段により比較された結果に基づいて、前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとが異なるときは、前記第１の手段に保持されたアドレスを１番地分増加させ、前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとが一致したときには、前記第１の手段に保持されたアドレスを２番地分増加させる第４の手段とを有し、
前記不良ビットを回避して前記メモリへの書き込み及び前記メモリからの読み出しを行うことを特徴とする半導体装置。
【請求項５】
請求項４記載の半導体装置において、
前記不良ビットの複数のアドレスが連続する場合は、前記第４の手段において、前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとが一致したときには、前記第１の手段に保持されたアドレスを２番地分増加させることに代えて、連続する前記不良アドレスの個数に１を加えた番地分前記第１の手段に保持されたアドレスを増加させることを特徴とする半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵとメモリを単一の半導体基板上に形成した半導体装置に関し、特にその装置に内蔵されるメモリの不良ビットを回避する方法に適用して有効な技術に関する。
【０００２】
【従来の技術】
ＣＰＵとメモリを単一の半導体基板上に形成したマイクロコンピュータ等の半導体装置において、それに内蔵されるフラッシュメモリ等のメモリの面積はチップの全体面積に対して大きな割合を占めるため、当該半導体装置の歩留まりに大きく影響を与える。
【０００３】
そのため、歩留まりを向上させる方法として、メモリセルの一部に不良があった場合は、不良ビットを回避して正常なビットへ置き換えることが行われている。
【０００４】
例えば、本発明者が検討した技術として、半導体装置に内蔵されるメモリの不良ビットを回避する方法においては、冗長メモリセルをビット線単位又はワード線単位に設けることが考えられる。
【０００５】
すなわち、仕様メモリ容量から必要とされるビット線又はワード線の本数より、数本（例えば２本）余分にビット線又はワード線を用意しておき、ビット不良が発生した場合、その不良ビットが存在しているビット線又はワード線を正常なビット線又はワード線に置き換えることにより不良ビットを回避する方法がある。
【０００６】
【発明が解決しようとする課題】
ところで、前記のようなマイクロコンピュータ等の半導体装置に内蔵されるメモリの不良ビットを回避する方法の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００７】
例えば、本発明者が本発明の前提として検討した冗長ビット線による不良ビット回避方法の一例を図５に示す。当該方法を採用したメモリは、マイクロコンピュータ等に内蔵されるフラッシュメモリ等であり、メモリセルアレイ１０１と複数（図５では２本）の冗長ビット線１０２などから構成される。
【０００８】
メモリセルアレイ１０１の中に不良ビット１０３（メモリセル）が存在した場合、不良ビット１０３を含むビット線１０４がそのまま正常ビット１０５を含む冗長ビット線１０２に置き換えられる。その結果、不良ビット１０３へのアクセスが回避され、不良ビット１０３を含むメモリ全体が救済されることとなる。
【０００９】
しかしながら、冗長ビット線１０２又は冗長ワード線（図示せず）は、本来、冗長な機能であるため、現実には仕様メモリ容量のビット線１０４又はワード線１０６の本数に対してわずかしか設けることができない。
【００１０】
例えば、１２８ｋバイトのメモリの場合、メモリセルアレイ１０１のビット線１０４の本数１０２４本に対して、冗長ビット線１０２の本数は２本程度である。
【００１１】
そのため、冗長ビット線１０２又は冗長ワード線の本数の分だけしか不良ビット１０３を救済することができない。
【００１２】
例えば、図５に示すように、冗長ビット線１０２の本数が２本の場合、１ビット目の不良ビットと２ビット目の不良ビットは正常ビット１０５に置き換えることが可能だが、メモリセルアレイ１０１の中に３ビット目の不良ビット１０３が存在した場合は、３ビット目の不良ビット１０３は救済することができない。
【００１３】
従って、３ビット以上のわずかの不良ビットがあれば、製品として出荷することができず、この方法による歩留まり向上には限界がある。
【００１４】
また、一つのビット線１０４上に１ビットしか不良がなくても、不良ビットを含むビット線１０４をそっくりそのまま入れ替えることになるので、そのビット線１０４上の他の正常ビットも同時に入れ替えてしまうことになる。従って、この方法は、救済の効率が悪い。
【００１５】
また、不良ビットを回避する他の方法として、メモリにデータを書き込む際に、誤り訂正符号をあらかじめ入れておく方法がある。この方法であれば、メモリに不良ビットがあってもオペレーションコードを実行することができるが、ＣＰＵとメモリとの間にデコーダが必要となり、プログラムの実行速度が遅くなる。また、誤り訂正符号を元のデータに付加する必要があるので、メモリの使用効率が悪くなる。
【００１６】
さらにまた、不良ビットを回避する他の方法としては、ハードディスクドライブ等で行われているように、不良ビットを避けてデータを書き込む方法がある。小型メモリカード等で使用されているフラッシュメモリは、ハードディスクと同じく一般に外部記憶装置として使われることが多い。従って、ＣＰＵが、直接、フラッシュメモリ内のデータを実行命令として実行することはない。この場合は、フラッシュメモリをアクセスするプログラムやＣＰＵ実行プログラムはフラッシュメモリ内にない。従って、あらかじめ、不良ビットをチェックしておき、不良ビットへアクセスしないようにしてフラッシュメモリ内へ、直接、データを書き込むことが可能である。
【００１７】
しかし、マイクロコンピュータ等に内蔵されるフラッシュメモリは、主記憶として使われるため、フラッシュメモリ内のデータは直接実行命令として実行される。そのため、不良ビットを回避してフラッシュメモリへ実行プログラムを格納するためには、あらかじめ、フラッシュメモリの不良ビットをチェックし、プログラム自体が不良ビットを回避するようになっていなければならない。従って、作成したプログラムを直接フラッシュメモリへ書き込むことができない。不良ビットのアドレス及び個数は、デバイスごとに異なるので、このような方法を用いるためには、随時、プログラムの変更が必要となる。
【００１８】
一方、フラッシュメモリ等のメモリを内蔵したマイクロコンピュータのユーザは、そのメモリの仕様容量をすべて使い切ることはなく、通常、数バイトの空き領域が存在する。従って、例えば、２５６ｋバイトのフラッシュメモリの場合、不良ビットの個数が数バイト以下であれば、十分、製品として使用することができる。
【００１９】
そこで、本発明の目的は、ＣＰＵとメモリを単一の半導体基板上に形成したマイクロコンピュータ等の半導体装置において、不良ビットの個数が多い場合でも製品として出荷することができ、歩留まりが向上し、救済効率の良い半導体装置の不良ビット回避方法及び半導体装置を提供するものである。
【００２０】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【００２１】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００２２】
すなわち、本発明による半導体装置の不良ビット回避方法は、ＣＰＵとメモリ（フラッシュメモリ等）を単一の半導体基板上に形成した半導体装置（マイクロコンピュータ等）において、前記メモリへプログラムを書き込む工程が、前記メモリの不良ビットのアドレス情報を前記半導体装置からホストコンピュータへ転送する工程と、前記ホストコンピュータ内のリンケージエディタにより、前記転送されたアドレス情報に基づいて前記不良ビットを回避して絶対アドレスを割り当て、ロードモジュールを生成する工程と、前記生成されたロードモジュールを前記メモリへ書き込む工程とを有することを特徴とするものである。
【００２３】
また、本発明による半導体装置の不良ビット回避方法は、さらに、前記メモリへプログラムを書き込む工程が、前記半導体装置が実装基板に実装された状態（オンボード）で実施されることを特徴とするものである。
【００２４】
また、本発明による半導体装置は、ＣＰＵとメモリ（フラッシュメモリ等）を単一の半導体基板上に形成した半導体装置（マイクロコンピュータ等）であって、前記メモリの不良ビットのアドレス情報を記憶する手段と、前記記憶する手段に記憶された前記メモリの不良ビットのアドレス情報を外部へ転送する手段と、外部において生成された、前記転送する手段により転送されたアドレス情報に基づいて前記不良ビットを回避して絶対アドレスを割り当てたロードモジュールを前記メモリへ書き込む手段とを有することを特徴とするものである。
【００２５】
また、本発明による半導体装置は、ＣＰＵとメモリ（フラッシュメモリ等）を単一の半導体基板上に形成した半導体装置（マイクロコンピュータ等）であって、実行命令のアドレスを保持する第１の手段（プログラムカウンタ等）と、前記メモリの不良ビットのアドレスを保持する第２の手段と、前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとを比較する第３の手段と、前記第３の手段により比較された結果に基づいて、前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとが異なるときは、前記第１の手段に保持されたアドレスを１番地分増加させ、前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとが一致したときには、前記第１の手段に保持されたアドレスを２番地分増加させる第４の手段とを有し、前記不良ビットを回避して前記メモリへの書き込み及び前記メモリからの読み出しを行うことを特徴とするものである。
【００２６】
また、本発明による半導体装置は、前記不良ビットの複数のアドレスが連続する場合は、前記第４の手段において、前記第１の手段に保持されたアドレスと前記第２の手段に保持されたアドレスとが一致したときには、２番地分増加させることに代えて、連続する前記不良アドレスの個数に１を加えた番地分前記第１の手段に保持されたアドレスを増加させることを特徴とするものである。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
【００２８】
（実施の形態１）
図１は本発明の実施の形態１である半導体装置の不良ビット回避方法の工程を示すフロー図、図２（ａ）〜（ｆ）は本実施の形態１において、半導体装置とホストコンピュータとの間のデータの流れを示す図、図３は本実施の形態１において、不良ビットアドレスの回避例を示す図である。
【００２９】
まず、図１及び図２により、本実施の形態１における半導体装置の不良ビット回避方法の一例を説明する。本実施の形態１の方法は、例えば、アセンブラ２によりアセンブリ言語ソースプログラム１からオブジェクトモジュール３を生成する工程、Ｃコンパイラ５によりＣ言語ソースプログラム４からオブジェクトモジュール３を生成する工程、ライブラリアン６によりオブジェクトモジュール３からライブラリ７を生成する工程、不良ビットアドレス情報８を半導体装置１０（マイクロコンピュータ等）からホストコンピュータ９へ転送する工程、リンケージエディタ１１により不良ビットアドレス情報８とオブジェクトモジュール３とライブラリ７とからアブソリュートロードモジュール１２及びリロケータブルロードモジュール１３を生成する工程、半導体装置１０に内蔵されたメモリ１４（フラッシュメモリ等）へアブソリュートロードモジュール１２を書き込む工程１５などから構成されている。
【００３０】
アセンブラ２は、アセンブリ言語で書かれたソースプログラムをオブジェクトプログラムへ翻訳するプログラムである。
【００３１】
Ｃコンパイラ５は、Ｃ言語で書かれたソースプログラムをオブジェクトプログラムへ翻訳するプログラムである。
【００３２】
オブジェクトモジュール３は、オブジェクトプログラムの小さなプログラム単位である。
【００３３】
ライブラリアン６は、オブジェクトモジュール３を統合してライブラリを生成するプログラムである。
【００３４】
不良ビットアドレス情報８は、半導体装置１０に内蔵されているメモリ１４の不良ビットの存在する位置情報であり、半導体装置１０の内部に保存されている。
【００３５】
リンケージエディタ１１は、オブジェクトモジュール３の結合、アドレスの割り当てなどを行い、実行可能なロードモジュールを生成するプログラムである。
【００３６】
アブソリュートロードモジュール１２は、直接実行可能なプログラムであり、半導体装置１０に内蔵されているメモリ１４の絶対アドレスが割り当てられている。
【００３７】
リロケータブルロードモジュール１３は、実行可能なプログラムであるが、半導体装置１０に内蔵されているメモリ１４の相対アドレスが割り当てられているため、メモリ１４のどの場所に置いても実行可能なプログラムである。システムのシミュレーションやデバッグなどに用いられる。
【００３８】
シミュレータ・デバッガ１６は、半導体装置１０を組み込んだシステムのシミュレーションやデバッグなどを行うツールである。
【００３９】
次に、本実施の形態１の方法について、具体的に説明する。
【００４０】
まず、アセンブラ２を実行し、アセンブリ言語で書かれたアセンブリ言語ソースプログラム１を機械語に近いオブジェクトプログラムの小さなプログラム単位であるオブジェクトモジュール３に変換する。
【００４１】
また、同様にして、Ｃコンパイラ５を実行し、Ｃ言語で書かれたＣ言語ソースプログラム４をオブジェクトモジュール３に変換する。
【００４２】
次に、ライブラリアン６を実行し、ライブラリ７を作成し、複数のオブジェクトモジュール３を統合する。
【００４３】
次に、オンボード書き込み工程２９（半導体装置１０が実装基板に実装された状態でのメモリ１４への書き込み）へと進む（図２（ａ）〜（ｆ））。
【００４４】
まず、ホストコンピュータ９には、書き込み制御プログラム１７、新バージョンのオブジェクトモジュール３及びリンケージエディタ１１を用意しておく（図２（ａ））。
【００４５】
書き込み制御プログラム１７は、半導体装置１０に内蔵されたメモリ１４への書き込み動作を制御するためのプログラムである。
【００４６】
半導体装置１０（マイクロコンピュータ等）は、不良ビットアドレス情報８の記憶部、ブートプログラム１８の記憶部、メモリ１４（フラッシュメモリ等）、ＲＡＭ２０、ＳＣＩ１９などを含んでおり、初期状態では、メモリ１４には、旧バージョンのアブソリュートロードモジュール１２ａ又はデータが書かれたままの状態である（図２（ａ））。
【００４７】
ブートプログラム１８は、半導体装置１０に当初から組み込まれているプログラムであり、不良ビットアドレス情報８の転送、書き込み制御プログラム１７の転送、メモリ１４の消去などを行う。ＲＡＭ２０は、ＤＲＡＭ等の主記憶である。ＳＣＩ１９は、シリアルコミュニケーションインターフェース（Ｓｅｒｉａｌ　Ｃｏｍｍｕｎｉｃａｔｉｏｎ　Ｉｎｔｅｒｆａｃｅ）である。
【００４８】
メモリ１４の不良ビットの位置情報である不良ビットアドレス情報８を半導体装置１０の検査時に抽出しておき、あらかじめ、半導体装置１０内の不良ビットアドレス情報８の記憶部へ保存しておく。
【００４９】
次に、ブートプログラム１８を起動し、ＳＣＩ１９を介して、不良ビットアドレス情報８を半導体装置１０からホストコンピュータ９へ転送する（図２（ｂ））。
【００５０】
オンボード書き込み工程２９の時は、ホストコンピュータ９と半導体装置１０との接点ができるため、不良ビットアドレス情報８をホストコンピュータ９へ転送することが可能である。
【００５１】
次に、ホストコンピュータ９内のリンケージエディタ１１を実行し、オブジェクトモジュール３の結合及び絶対アドレスの割り当てを行い、新バージョンのアブソリュートロードモジュール１２ｂを生成する（図２（ｃ））。
【００５２】
この時、半導体装置１０からホストコンピュータ９に転送された不良ビットアドレス情報８に基づいて、不良ビットには絶対アドレスを割り当てないようにする。また、顧客のシミュレーション又はデバッグ等のために、リロケータブルロードモジュール１３も同時に生成する。
【００５３】
次に、ブートプログラム１８を実行し、ＳＣＩ１９を介して、ホストコンピュータ９から半導体装置１０内のＲＡＭ２０へ書き込み制御プログラム１７を転送する。また、ブートプログラム１８の記憶部からＲＡＭ２０へブートプログラム１８を転送する（図２（ｄ））。
【００５４】
次に、ＲＡＭ２０内にあるブートプログラム１８の消去プログラムを実行し、メモリ１４を初期化する（図２（ｅ））。この時、メモリ１４は、ブロックに関係なく、全面消去される。
【００５５】
次に、ＲＡＭ２０内にある書き込み制御プログラム１７を実行し、ＳＣＩ１９を介して、ホストコンピュータ９から半導体装置１０へ新バージョンのアブソリュートロードモジュール１２ｂを転送し、メモリ１４に書き込む（図２（ｆ））。
【００５６】
従って、本実施の形態１によれば、従来のリンケージエディタとオンボード書き込み工程とを組み合わせ、ソフトウェアの改善のみにより、不良ビットにはアドレスを割り当てないようにして、不良ビットへのアクセスを回避することが可能となる。
【００５７】
図３に、数バイトからなるブロックを一単位として、不良ビットを回避してアドレスの割り当てを行った一実施例を示す。
【００５８】
メインプログラム（オブジェクトモジュール）３ａ，サブプログラム１（オブジェクトモジュール）３ｂ，サブプログラム２（オブジェクトモジュール）３ｃには、相対アドレスが割り当てられている。
【００５９】
上記の方法と同様にして、メインプログラム（オブジェクトモジュール）３ａ，サブプログラム１（オブジェクトモジュール）３ｂ，サブプログラム２（オブジェクトモジュール）３ｃについて、オンボード書き込み工程２９を実施し、不良ビットアドレス情報８に基づいて絶対アドレスを割り当て、ロードモジュールを生成し、メモリ１４へアブソリュートロードモジュール１２を書き込む。
【００６０】
その結果、図３に示すように、メインプログラム（アブソリュートロードモジュール）１２ｃ，サブプログラム１（アブソリュートロードモジュール）１２ｄ，サブプログラム２（アブソリュートロードモジュール）１２ｅは、数バイトからなるブロックを一単位として、不良ビットを回避して、メモリ１４の正常ビットのアドレスへ配置されることとなる。
【００６１】
（実施の形態２）
図４は、本発明の実施の形態２である不良ビット回避可能な半導体装置の構成を示す図である。
【００６２】
以下、図４により、本実施の形態２について説明する。
【００６３】
本実施の形態２である不良ビット回避可能な半導体装置（マイクロコンピュータ等）は、例えば、ＣＰＵ２１、アドレスブレーク機能２２、メモリ１４（フラッシュメモリ等）、ＲＡＭ２０などから構成されている。
【００６４】
ＣＰＵ２１は、中央演算処理機能を有し、ＡＬＵ（図示せず）、プログラムカウンタ２３、命令レジスタ２４、デコーダ２５などから構成されている。
【００６５】
アドレスブレーク機能２２は、マイクロコンピュータ等のプログラムデバッグを容易にするものであり、設定されたブレーク条件が成立するとアドレスブレーク割り込み要求２６を発生する。通常のマイクロコンピュータに備えられている機能であり、ＰＣブレークともいわれる。アドレスブレーク機能２２は、アドレスブレーク割り込み要求２６を発生させるためのアドレスを保持するレジスタ、当該レジスタの値とプログラムカウンタ２３の値を比較する比較器などから構成されている。
【００６６】
メモリ１４は、フラッシュメモリ等のメモリから構成されるデータの記憶部であり、不良ビットアドレス情報８、プログラム（ロードモジュール等）等が記憶される。
【００６７】
ＲＡＭ２０は、ＤＲＡＭ等のメモリから構成される半導体装置（マイクロコンピュータ等）の主記憶部である。
【００６８】
次に、本実施の形態２の動作について、説明する。
【００６９】
まず、本実施の形態２である半導体装置の検査時に、不良ビットアドレス情報８を抽出しておき、あらかじめ、メモリ１４内の正常なビットに記憶しておく。
【００７０】
次に、メモリ１４内の正常なビットに記憶されている不良ビットアドレス情報８をアドレスブレーク機能２２内のレジスタへ転送する。
【００７１】
そして、プログラムカウンタ２３に保持されるアドレスとアドレスブレーク機能２２内のレジスタに保持された不良ビットアドレスをアドレスブレーク機能２２内の比較器で常に比較するようにしておく。
【００７２】
その比較の結果、プログラムカウンタ２３のアドレスと不良ビットアドレスが異なるとき、すなわち、メモリ１４内の正常ビットへアクセスするときは、プログラムカウンタ２３のアドレスを１番地分増加させて、次のアドレスをアクセスする。一方、プログラムカウンタ２３のアドレスと不良ビットアドレスが一致したとき、すなわち、メモリ１４内の不良ビットへアクセスしようとしたときは、アドレスブレーク割り込み要求２６を発生させ、プログラムカウンタ２３のアドレスを２番地分増加させて、不良ビットへのアクセスを回避する。
【００７３】
例えば、メモリ１４の２番地が不良ビットである場合、１番地へアクセスされた後、２番地は飛び越されて、３，４番地等がアクセスされる。
【００７４】
また、不良ビットの複数のアドレスが連続する場合は、プログラムカウンタ２３のアドレスと不良ビットアドレスが一致したときには、連続する不良アドレスの個数に１を加えた番地分だけプログラムカウンタ２３のアドレスを増加させて、不良ビットへのアクセスを回避する。
【００７５】
以上のようにして、ＲＡＭ２０内のメモリ書き込みデータは、データバス２８を介して、メモリ１４内の正常ビットに書き込まれる。
【００７６】
従って、本実施の形態２の半導体装置によれば、ハードウェアの改良のみによって、不良ビットを回避して、メモリ１４への書き込み及びメモリ１４からの読み出しが可能となる。
【００７７】
また、前述した実施の形態１のソフトウェア的な改良と比較して、本実施の形態２の場合は、不良ビットを回避した１アドレス単位でのアクセスが可能となり、正常ビットを有効に活用できる。
【００７８】
さらに、従来のホストプログラム又はブートプログラムが、そのまま使用可能である。
【００７９】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８０】
例えば、前記実施の形態においては、主に、メモリ１４がフラッシュメモリ等である場合について説明したが、これに限定されるものではなく、他の種類のメモリについても適用可能であり、特にＥＰＲＯＭ等の不揮発性メモリであれば、有利な効果がある。
【００８１】
【発明の効果】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
（１）冗長メモリセル、冗長ビット線及び冗長ワード線が不要となるので、チップ面積が小さくなる。
（２）従来より多くの不良ビットが存在していても、製品として出荷することが可能となり、歩留まりが向上し、製品単価が下がる。
【図面の簡単な説明】
【図１】本発明の実施の形態１である半導体装置の不良ビット回避方法の工程を示すフロー図である。
【図２】（ａ）〜（ｆ）は、本発明の実施の形態１において、半導体装置とホストコンピュータとの間のデータの流れを示す図であり、それぞれ（ａ）は初期状態、（ｂ）は不良ビットアドレス情報の転送、（ｃ）はリンケージエディタによるプログラムの絶対アドレスの割り当て、（ｄ）は書き込み制御プログラムの転送、（ｅ）はメモリの初期化、（ｆ）はプログラムの書き込みを示す。
【図３】本発明の実施の形態１において、不良ビットアドレスの回避例を示す図である。
【図４】本発明の実施の形態２である不良ビット回避可能な半導体装置の構成を示す図である。
【図５】本発明者が本発明の前提として検討した冗長ビット線による不良ビット回避方法の一例を示す図である。
【符号の説明】
１　アセンブリ言語ソースプログラム
２　アセンブラ
３　オブジェクトモジュール
３ａ　メインプログラム（オブジェクトモジュール）
３ｂ　サブプログラム１（オブジェクトモジュール）
３ｃ　サブプログラム２（オブジェクトモジュール）
４　Ｃ言語ソースプログラム
５　Ｃコンパイラ
６　ライブラリアン
７　ライブラリ
８　不良ビットアドレス情報
９　ホストコンピュータ
１０　半導体装置
１１　リンケージエディタ
１２　アブソリュートロードモジュール
１２ａ　旧バージョンのアブソリュートロードモジュール
１２ｂ　新バージョンのアブソリュートロードモジュール
１２ｃ　メインプログラム（アブソリュートロードモジュール）
１２ｄ　サブプログラム１（アブソリュートロードモジュール）
１２ｅ　サブプログラム２（アブソリュートロードモジュール）
１３　リロケータブルロードモジュール
１４　メモリ
１５　メモリ書き込み
１６　シミュレータ・デバッガ
１７　書き込み制御プログラム
１８　ブートプログラム
１９　ＳＣＩ
２０　ＲＡＭ
２１　ＣＰＵ
２２　アドレスブレーク機能
２３　プログラムカウンタ
２４　命令レジスタ
２５　デコーダ
２６　アドレスブレーク割り込み要求
２７　アドレスバス
２８　データバス
２９　オンボード書き込み工程
３０　不良アドレスブロック
１０１　メモリセルアレイ
１０２　冗長ビット線
１０３　不良ビット
１０４　ビット線
１０５　正常ビット
１０６　ワード線
【図１】
2004038653.tif 000003
【図２】
2004038653.tif 000004
【図３】
2004038653.tif 000005
【図４】
2004038653.tif 000006
【図５】
2004038653.tif 000007