(57)【要約】【課題】ＦＢＭを高速に作成する。【解決手段】単位サイズのデータ毎のロード／ストアが夫々のメモリ領域内で実行される物理ＦＢＭ格納メモリ領域３３３をＲＡＭ３３０に複数確保し、半導体メモリのメモリセル毎の良／不良情報がテスタからの出力順である論理アドレス順に配列されている論理ＦＢＭ１００の夫々異なる部分に基づいて良／不良情報が半導体メモリのメモリセルの物理的配置に対応する物理アドレス順に配列された物理ＦＢＭ２００を夫々生成し、論理ＦＢＭ１００の夫々異なる部分から生成した物理ＦＢＭ２００を複数の物理ＦＢＭ格納メモリ領域３３３に夫々格納し、複数の物理ＦＢＭ格納メモリ領域３３３に格納されている物理ＦＢＭ２００を夫々出力する。【選択図】図４
2011129218.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリに第１メモリ領域を確保し、半導体メモリのメモリセル毎の良／不良情報がテスタからの出力順である論理アドレス順に配列されている電気テスト結果を前記確保した第１メモリ領域に格納する読み込みステップと、
単位サイズのデータ毎のロード／ストアが夫々のメモリ領域内で実行される第２メモリ領域を前記メインメモリに複数確保し、前記第１メモリ領域に格納されている電気テスト結果の夫々異なる部分に基づいて前記良／不良情報が前記半導体メモリのメモリセルの物理的配置に対応する物理アドレス順に配列されたフェイルビットマップ（ＦＢＭ）を夫々生成し、前記電気テスト結果の夫々異なる部分から生成したＦＢＭを前記複数の第２メモリ領域に夫々格納する変換ステップと、
前記複数の第２メモリ領域に格納されているＦＢＭを夫々出力する出力ステップと、
を含むことを特徴とする不良解析方法。
【請求項２】
半導体メモリのメモリセル毎の良／不良情報がテスタからの出力順である論理アドレス順に配列されている電気テスト結果に基づいて前記良／不良情報が前記半導体メモリのメモリセルの物理的配置に対応する物理アドレス順に配列されたフェイルビットマップ（ＦＢＭ）を作成する不良解析装置であって、
データの書き込みが実行される際、書き込み先のメモリアドレスに格納されているデータを含む所定の単位サイズのデータに対してロード／ストアが実行されるメインメモリと、
外部から入力される電気テスト結果のうちの夫々異なる部分に基づいて夫々ＦＢＭを作成する複数の演算部と、
を備え、
前記複数の演算部は、夫々、
前記メインメモリに第１メモリ領域を確保して前記外部から入力された電気テスト結果を前記確保された第１メモリ領域に格納する読み込み部と、
単位サイズのデータ毎のロード／ストアが夫々のメモリ領域内で実行される第２メモリ領域を前記メインメモリに夫々確保し、前記第１メモリ領域に格納された前記電気テスト結果のうちの自演算部が担当する部分に含まれる前記論理アドレス順で格納されているメモリセル毎の良／不良情報を逐次参照し、前記参照された良／不良情報の論理アドレスに対応する物理アドレスに対応する前記確保された第２メモリ領域のメモリアドレスに前記参照された良／不良情報を逐次書き込むＦＢＭ変換部と、
を備え、前記夫々の第２メモリ領域に書き込まれた良／不良情報の配列の夫々を前記電気テスト結果の複数部分の夫々にかかるＦＢＭとして出力することを特徴とする不良解析装置。
【請求項３】
前記電気テスト結果は複数に分割されており、
前記夫々の読み込み部は、
前記メインメモリに前記電気テスト結果の断片のうちの１つを格納する第１メモリ領域を夫々個別に確保し、前記確保された第１メモリ領域の先頭アドレスと前記第１メモリ領域に格納される前記電気テスト結果の断片を識別するための識別子とを対応付けた論理ＦＢＭインデックスを作成し、
前記夫々のＦＢＭ変換部は、
前記論理ＦＢＭインデックスを参照することによって前記メインメモリにおける前記電気テスト結果のうちの自演算部が担当する部分が格納されている前記第１メモリ領域のメモリアドレスを特定する、
ことを特徴とする請求項２に記載の不良解析装置。
【請求項４】
前記電気テスト結果は複数に分割されており、
前記夫々の読み込み部は、
前記電気テスト結果の断片のうちの１つに含まれる不良情報をカウントするとともに該断片を格納する前記第１メモリ領域を夫々個別に確保し、前記確保された第１メモリ領域の先頭アドレスおよび前記不良情報のカウント値と前記第１メモリ領域に格納される前記電気テスト結果の断片を識別するための識別子とを対応付けた論理ＦＢＭインデックスを作成し、
前記夫々のＦＢＭ変換部は、
前記論理ＦＢＭインデックスに記述されているカウント値に基づいて前記複数の第１メモリ領域のうちの自演算部が担当する部分が格納されている第１メモリ領域には不良情報を含む断片が格納されているか否かを判定し、前記不良情報を含む断片が格納されていた場合、前記論理ＦＢＭインデックスに記述されている先頭アドレスに基づいて自演算部が担当する部分が格納されている前記第１メモリ領域のメモリアドレスを特定する、
ことを特徴とする請求項２に記載の不良解析装置。
【請求項５】
前記夫々の読み込み部は、
前記電気テスト結果の断片が含む不良情報のカウント値がゼロ値であったか否かを判定し、前記カウント値がゼロ値ではなかった場合、該断片を格納するための前記第１メモリ領域を確保し、前記カウント値がゼロ値であった場合、該第１メモリ領域を確保しない、
ことを特徴とする請求項４に記載の不良解析装置。
【請求項６】
複数の演算部と、データの書き込みが実行される際、書き込み先のメモリアドレスに格納されているデータを含む所定の単位サイズのデータに対してロード／ストアが実行されるメインメモリとを備えるコンピュータに実行され、半導体メモリのメモリセル毎の良／不良情報がテスタからの出力順である論理アドレス順に配列されている電気テスト結果に基づいて前記良／不良情報が前記半導体メモリのメモリセルの物理的配置に対応する物理アドレス順に配列されたフェイルビットマップ（ＦＢＭ）を作成することを前記コンピュータに実行させるコンピュータプログラムである不良解析プログラムであって、
前記メインメモリに第１メモリ領域を確保して前記外部から入力された電気テスト結果を前記確保された第１メモリ領域に格納する読み込みスレッドを生成する読み込みスレッド生成手順と、
前記電気テスト結果のうちの夫々異なる部分に基づいて夫々ＦＢＭを作成するための、前記複数の演算部の夫々に実行させる複数のＦＢＭ変換・出力スレッドであって、夫々、単位サイズのデータ毎のロード／ストアが夫々のメモリ領域内で実行される第２メモリ領域を前記メインメモリに夫々確保し、前記第１メモリ領域に格納された前記電気テスト結果のうちの自スレッドが担当する部分に含まれる前記論理アドレス順で格納されているメモリセル毎の良／不良情報を逐次参照し、前記参照された良／不良情報の論理アドレスに対応する物理アドレスに対応する前記確保された第２メモリ領域のメモリアドレスに前記参照された良／不良情報を逐次書き込み、前記第２メモリ領域に書き込まれた良／不良情報の配列を前記電気テスト結果のうちの自スレッドが担当する部分にかかるＦＢＭとして出力する前記ＦＢＭ変換・出力スレッドを複数生成するＦＢＭ変換スレッド生成手順と、
を前記コンピュータに実行させる、
ことを特徴とする不良解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不良解析方法、不良解析装置および不良解析プログラムに関する。
【背景技術】
【０００２】
従来、半導体メモリの製造工程において、半導体メモリのフェイルビットマップ（Ｆａｉｌ  Ｂｉｔ  Ｍａｐ；ＦＢＭ）を用いて不良ビットの箇所（不良メモリセル）を特定する方法がある。ＦＢＭを表示するには、まず、テスタを用いて半導体メモリのメモリセル毎の電気テスト結果を検出する。そして、テスタによる電気テスト結果の収集順に対応する１次元の配列情報（論理ＦＢＭアドレス）をウェハ上の半導体メモリにおけるメモリセルの物理的レイアウトに対応付けられた２次元の座標値（物理ＦＢＭアドレス）に変換することによって、電気テスト結果により判明した不良メモリセルの位置情報を表示装置に表示するのが一般的である（特許文献１参照）。
【０００３】
また、テスタから出力される電気テスト結果は複数に分割されており、電気テスト結果の論理ＦＢＭアドレスと物理ＦＢＭアドレスとを分割された夫々の電気テスト結果毎に対応付ける定義テーブルに基づいて分割された夫々の電気テスト結果から不良ビットの物理的位置を特定する技術がある（特許文献２参照）。
【０００４】
近年、半導体メモリの大容量化は凄まじい勢いで進んでいる。例えばＮＡＮＤフラッシュメモリでは、既に数１０ギガビットの記憶容量を備えた製品の量産が行われており、数年後には記憶容量がテラビットにも達する勢いである。上記した二つの従来技術は、メモリセルの数に比例した計算コストが掛かるものであるため、対象製品のメモリの記憶容量の増加に伴ってＦＢＭを作成するためにかかる処理時間が増大する。ＦＢＭを作成するための処理時間が長くなると言うことは、不良解析の時間がそのまま長くなることを意味している。すなわち、大容量半導体メモリに対応するために、ＦＢＭを作成する処理の高速化は急務である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許３２５６５５５号公報
【特許文献２】特開２００１−３２４５４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、ＦＢＭを高速に作成することができる不良解析方法、不良解析装置および不良解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願発明の一態様によれば、メインメモリに第１メモリ領域を確保し、半導体メモリのメモリセル毎の良／不良情報がテスタからの出力順である論理アドレス順に配列されている電気テスト結果を前記確保した第１メモリ領域に格納する読み込みステップと、単位サイズのデータ毎のロード／ストアが夫々のメモリ領域内で実行される第２メモリ領域を前記メインメモリに複数確保し、前記第１メモリ領域に格納されている電気テスト結果の夫々異なる部分に基づいて前記良／不良情報が前記半導体メモリのメモリセルの物理的配置に対応する物理アドレス順に配列されたフェイルビットマップ（ＦＢＭ）の断片を夫々生成し、前記電気テスト結果の夫々異なる部分から生成したＦＢＭの断片を前記複数の第２メモリ領域に夫々格納する変換ステップと、前記複数の第２メモリ領域に格納されているＦＢＭの断片を夫々出力する出力ステップと、を含むことを特徴とする不良解析方法が提供される。
【０００８】
また、本願発明の一態様によれば、半導体メモリのメモリセル毎の良／不良情報がテスタからの出力順である論理アドレス順に配列されている電気テスト結果に基づいて前記良／不良情報が前記半導体メモリのメモリセルの物理的配置に対応する物理アドレス順に配列されたフェイルビットマップ（ＦＢＭ）を作成する不良解析装置であって、データの書き込みが実行される際、書き込み先のメモリアドレスに格納されているデータを含む所定の単位サイズのデータに対してロード／ストアが実行されるメインメモリと、外部から入力される電気テスト結果のうちの夫々異なる部分に基づいて夫々ＦＢＭを作成する複数の演算部と、を備え、前記複数の演算部は、夫々、前記メインメモリに第１メモリ領域を確保して前記外部から入力された電気テスト結果を前記確保された第１メモリ領域に格納する読み込み部と、単位サイズのデータ毎のロード／ストアが夫々のメモリ領域内で実行される第２メモリ領域を前記メインメモリに夫々確保し、前記第１メモリ領域に格納された前記電気テスト結果のうちの自演算部が担当する部分に含まれる前記論理アドレス順で格納されているメモリセル毎の良／不良情報を逐次参照し、前記参照された良／不良情報の論理アドレスに対応する物理アドレスに対応する前記確保された第２メモリ領域のメモリアドレスに前記参照された良／不良情報を逐次書き込むＦＢＭ変換部と、を備え、前記夫々の第２メモリ領域に書き込まれた良／不良情報の配列の夫々を前記電気テスト結果の複数部分の夫々にかかるＦＢＭとして出力することを特徴とする不良解析装置が提供される。
【０００９】
また、本願発明の一態様によれば、複数の演算部と、データの書き込みが実行される際、書き込み先のメモリアドレスに格納されているデータを含む所定の単位サイズのデータに対してロード／ストアが実行されるメインメモリとを備えるコンピュータに実行され、半導体メモリのメモリセル毎の良／不良情報がテスタからの出力順である論理アドレス順に配列されている電気テスト結果に基づいて前記良／不良情報が前記半導体メモリのメモリセルの物理的配置に対応する物理アドレス順に配列されたフェイルビットマップ（ＦＢＭ）を作成することを前記コンピュータに実行させるコンピュータプログラムである不良解析プログラムであって、前記メインメモリに第１メモリ領域を確保して前記外部から入力された電気テスト結果を前記確保された第１メモリ領域に格納する読み込みスレッドを生成する読み込みスレッド生成手順と、前記電気テスト結果のうちの夫々異なる部分に基づいて夫々ＦＢＭを作成するための、前記複数の演算部の夫々に実行させる複数のＦＢＭ変換・出力スレッドであって、夫々、単位サイズのデータ毎のロード／ストアが夫々のメモリ領域内で実行される第２メモリ領域を前記メインメモリに夫々確保し、前記第１メモリ領域に格納された前記電気テスト結果のうちの自スレッドが担当する部分に含まれる前記論理アドレス順で格納されているメモリセル毎の良／不良情報を逐次参照し、前記参照された良／不良情報の論理アドレスに対応する物理アドレスに対応する前記確保された第２メモリ領域のメモリアドレスに前記参照された良／不良情報を逐次書き込み、前記第２メモリ領域に書き込まれた良／不良情報の配列を前記電気テスト結果のうちの自スレッドが担当する部分にかかるＦＢＭとして出力する前記ＦＢＭ変換・出力スレッドを複数生成するＦＢＭ変換スレッド生成手順と、を前記コンピュータに実行させる、ことを特徴とする不良解析プログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、ＦＢＭを高速に作成することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、論理ＦＢＭと物理ＦＢＭとを説明する図。
【図２】図２は、ＦＢＭ作成を並列処理した場合について説明する図。
【図３】図３は、本発明の第１の実施の形態にかかる不良解析装置の構成を示すブロック図。
【図４】図４は、本発明の第１の実施の形態にかかる不良解析装置の機能部の構成を説明する図。
【図５】図５は、論理ＦＢＭインデックスのデータ構造を説明する図。
【図６】図６は、論理ＦＢＭインデックスの具体例を説明する図。
【図７】図７は、本発明の第１の実施の形態にかかる不良解析方法を説明するフローチャート。
【図８】図８は、論理ＦＢＭ読み込み部の動作を説明するフローチャート。
【図９】図９は、ＦＢＭアドレス変換部および物理ＦＢＭ書き出し部の動作を説明するフローチャート。
【図１０】図１０は、論理ＦＢＭと物理ＦＢＭと論理ＦＢＭインデックスの関係を説明する図。
【図１１】図１１は、実施の形態２の論理ＦＢＭ読み出しスレッドを実行した場合の動作を説明するフローチャート。
【図１２】図１２は、論理ＦＢＭと物理ＦＢＭと論理ＦＢＭインデックスの関係を説明する図。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明の第１の実施の形態にかかる不良解析方法、不良解析装置および不良解析プログラムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１３】
（第１の実施の形態）
本第１の実施の形態では、論理ＦＢＭアドレスを物理ＦＢＭアドレスに変換することによって電気テスト結果からＦＢＭを作成する処理を従来技術に比べて高速に実行するために、マルチコア方式またはマルチプロセッサ方式のコンピュータを用いる。具体的には、論理ＦＢＭアドレスで配列されている電気テスト結果を複数に分割し、分割した夫々の電気テスト結果の配列を夫々変換する。なお、以下では、論理ＦＢＭアドレスで配列されている電気テスト結果を論理ＦＢＭとよび、物理ＦＢＭアドレスに変換されて作成されたＦＢＭを、前記論理ＦＢＭと区別するために、物理ＦＢＭと呼ぶこととする。また、論理ＦＢＭアドレスを物理ＦＢＭアドレスに変換する処理を、ＦＢＭ変換処理と呼ぶこととする。
【００１４】
ここで、従来技術で行われていたＦＢＭ変換処理をマルチコア／マルチプロセッサ方式のコンピュータで実行しようとすると、以下に述べるような問題が生じる。図１および図２を参照して、マルチコア／マルチプロセッサ方式のコンピュータでＦＢＭ変換処理を実行する際に生じる問題を述べる。
【００１５】
図１は、論理ＦＢＭと物理ＦＢＭとを説明する図である。図１紙面上方に論理ＦＢＭ１００、紙面下方に物理ＦＢＭ２００を示している。Ｌｘは論理ＦＢＭアドレスのＸ座標、Ｌｙは論理ＦＢＭアドレスのＹ座標である。Ｐｘは物理ＦＢＭアドレスのＸ座標、Ｐｙは物理ＦＢＭアドレスのＹ座標である。ビット「１」は不良ビットであることを示している。すなわち、論理ＦＢＭ１００は、Ｌｘ＝０、Ｌｙ＝０のビットと、Ｌｘ＝０、Ｌｙ＝４のビットに不良があることを示している。
【００１６】
論理ＦＢＭアドレスと物理ＦＢＭアドレスとの関係は、変換関数（ＦＢＭアドレス変換関数）により定義される。ＦＢＭアドレス変換関数は、通常、製品毎に異なり、例えば論理ＦＢＭに含まれる製品名をもとに一意に対応付けられる。図１の例では、論理ＦＢＭ１００に対してＦＢＭアドレス変換関数Ｐｘ＝Ｌｙ、Ｐｙ＝Ｌｘが適用される。これによって、Ｌｘ＝０、Ｌｙ＝０はＰｘ＝０、Ｐｙ＝０に変換され、Ｌｘ＝０、Ｌｙ＝４はＰｘ＝４、Ｐｙ＝０に変換される。結果として、物理ＦＢＭ２００のように、Ｐｘ＝０、Ｐｙ＝０のビットと、Ｐｘ＝４、Ｐｙ＝０のビットに不良であることが示されることとなる。
【００１７】
図２は、論理ＦＢＭ１００をＬｙ＝０〜３、Ｌｙ＝４〜７、Ｌｙ＝８〜１１、Ｌｙ＝１２〜１５およびＬｙ＝４〜７の４領域に分割し、複数のスレッド（Ｔｈｒｅａｄ−１、Ｔｈｒｅａｄ−２、Ｔｈｒｅａｄ−３、Ｔｈｒｅａｄ−４）で夫々並列処理を行わせた場合について説明する図である。
【００１８】
図２によれば、全て不良なし（Ｐａｓｓ）が設定された初期状態の物理ＦＢＭ２０１に、Ｔｈｒｅａｄ−１が不良ビットＬｘ＝０、Ｌｙ＝０を変換して反映させることによって物理ＦＢＭ２０２が生成され、Ｔｈｒｅａｄ−２が不良ビットＬｘ＝０、Ｌｙ＝４を変換してさらに反映させることによって物理ＦＢＭ２０３が生成されている。物理ＦＢＭ２０３では、図１に示した物理ＦＢＭ２００とは異なり、Ｐｘ＝０、Ｐｙ＝０のビットが誤って０（Ｐａｓｓ）に設定されている。この現象は必ず起こるものではなく、起こる場合と起こらない場合がある。この現象は、Ｔｈｒｅａｄ−１とＴｈｒｅａｄ−２とは互いに非同期で動作するが、夫々のスレッドによる同一バイトへの書き込みが重なったことによって生じる。
【００１９】
より詳しく説明すると、時間ｔ１において、Ｔｈｒｅａｄ−１は物理ＦＢＭ２０１が格納されているメモリ領域（物理ＦＢＭ格納メモリ領域）から不良ビット（Ｌｘ＝０、Ｌｙ＝０）に対応したＰｘ＝０、Ｐｙ＝０を含む１バイト（８ビット）のデータをロードする（図中（１））。この時点で物理ＦＢＭ格納メモリ領域には物理ＦＢＭ２０１が格納されているので、ロードしたデータは全て０である。
【００２０】
時間ｔ２において、Ｔｈｒｅａｄ−１はロードしたデータに不良ビットをセットする。Ｐｘ＝０に相当する左端のビットがセットされる。一方、Ｔｈｒｅａｄ−２は物理ＦＢＭ格納メモリ領域から不良ビット（Ｌｘ＝０、Ｌｙ＝４）に対応したＰｘ＝４、Ｐｙ＝０を含む１バイト（８ビット）のデータをロードする（図中（２））。この時点ではＴｈｒｅａｄ−１が処理したデータは未だ物理ＦＢＭ格納メモリ領域にストアされていないので、Ｔｈｒｅａｄ−２がロードしたデータはＴｈｒｅａｄ−１が時間ｔ１においてロードしたデータと同じで全て０である。
【００２１】
時間ｔ３において、Ｔｈｒｅａｄ−１は処理したデータを物理ＦＢＭ格納メモリ領域にストアする（図中（３））。すなわち、物理ＦＢＭ格納メモリ領域には物理ＦＢＭ２０２が格納されている状態となる。一方、Ｔｈｒｅａｄ−２はロードしたデータに不良ビットをセットする。Ｐｘ＝４に相当する左から５番目のビットがセットされる。
【００２２】
時間ｔ４において、Ｔｈｒｅａｄ−２は処理したデータを物理ＦＢＭ格納メモリ領域にストアする（図中（４））。このストア処理は、Ｔｈｒｅａｄ−１が時間ｔ３にストアしたデータ、すなわち物理ＦＢＭ２０２に対して上書きする形になり、これによって誤ったデータが物理ＦＢＭ２０３として出力されることになる。
【００２３】
これらの現象は、コンピュータがメインメモリを１ビット単位で操作するのではなく、ワード単位で操作することに起因する。なお、ここでは、説明を簡単にするために１ワードを１バイトとしている。
【００２４】
このように、ＦＢＭ変換処理を単純に並列処理化すると、各スレッドが物理ＦＢＭ上の同一バイトに同時にアクセスすることが起こってしまい、誤った物理ＦＢＭを作成しうるという問題があった。これを防ぐためにスレッド間で同期を取り、物理ＦＢＭ格納メモリ領域へのアクセスを排他的に行うようにすると、処理能力の低下を引き起こす。例えば上記の例では、物理ＦＢＭ２０２の状態になるのを待ってＴｈｒｅａｄ−２のロードを開始しなければならなくなり、全ての処理が終わるまでにかかる時間が増大する。本発明の第１の実施の形態では、物理ＦＢＭ格納メモリ領域を分割し、スレッド毎に異なる物理ＦＢＭ格納メモリ領域にアクセスさせ、同一バイトに同時にアクセスする事態の発生を防ぐようにしている。以下に、本発明の第１の実施の形態について説明する。なお、上記説明したＦＢＭ変換処理を単純に並列処理化する技術を、比較例にかかる技術、ということとする。
【００２５】
図３は、本発明の第１の実施の形態にかかる不良解析装置の構成を示すブロック図である。図示するように、不良解析装置３００は、夫々独立にスレッドを実行することができる複数の演算部としてのコア（ここではコアａ〜コアｈの８つ）を備えるマルチコアプロセッサ３１０と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２０と、メインメモリとしてのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｒｅｓｓ  Ｍｅｍｏｒｙ）３３０と、入力部３４０と、表示部３５０とを備えている。マルチコアプロセッサ３１０、ＲＯＭ３２０、ＲＡＭ３３０、入力部３４０および表示部３５０は夫々バスを介して接続されている。
【００２６】
マルチコアプロセッサ３１０は、本実施の形態の不良解析装置３００を実現するコンピュータプログラムである不良解析プログラム３３１を実行する。表示部３５０は、液晶モニタなどの表示装置であり、マルチコアプロセッサ３１０からの指示に基づいて、操作画面などのユーザに対する出力情報を表示する。入力部３４０は、マウスやキーボードを備えて構成され、ユーザからの不良解析装置３００の操作が入力される。入力部３４０へ入力された操作情報は、マルチコアプロセッサ３１０へ送られる。
【００２７】
不良解析プログラム３３１は、ＲＯＭ３２０内に格納されており、バスラインを介してＲＡＭ３３０へロードされる。図３は、不良解析プログラム３３１がＲＡＭ３３０にロードされた状態を示している。マルチコアプロセッサ３１０はＲＡＭ３３０内にロードされた不良解析プログラム３３１を実行する。具体的には、不良解析装置３００では、ユーザによる入力部３４０からの指示入力に従って、マルチコアプロセッサ３１０がＲＯＭ３２０内から不良解析プログラム３３１を読み出してＲＡＭ３３０内のプログラム格納領域に展開する。
【００２８】
テスタが備えるキャプチャメモリの容量が半導体メモリの論理ＦＢＭを一度に生成するには小さすぎるなどの理由により、通常、論理ＦＢＭはテスタによって複数に分割されて出力される。ここではｍ個に分割されていることとする。これらの分割された論理ＦＢＭ（電気テスト結果の断片）は、図示しない外部記憶装置などから夫々入力され、ＲＡＭ３３０内の複数の領域（論理ＦＢＭ格納メモリ領域３３２−１〜論理ＦＢＭ格納メモリ領域３３２−ｍ）に夫々格納される。なお、以下では、論理ＦＢＭ格納メモリ領域３３２−１〜論理ＦＢＭ格納メモリ領域３３２−ｍの全体を示して論理ＦＢＭ格納メモリ領域３３２と表現することもある。
【００２９】
マルチコアプロセッサ３１０は、ＲＡＭ３３０内のプログラム格納領域に展開された不良解析プログラム３３１を実行することによって、自身が備える複数のコアａ〜ｈで並列にＦＢＭ変換処理を実行するための複数（ここではｎ個）のスレッド（後述する物理ＦＢＭ変換・書き出しスレッド）を生成する。夫々のスレッドは、夫々個別に物理ＦＢＭを格納するメモリ領域（物理ＦＢＭ格納メモリ領域３３３−１〜物理ＦＢＭ格納メモリ領域３３３−ｎ）を確保する。なお、以下では、物理ＦＢＭ格納メモリ領域３３３−１〜物理ＦＢＭ格納メモリ領域３３３−ｎの全体を示して物理ＦＢＭ格納メモリ領域３３３と表現することもある。夫々のスレッドは、物理ＦＢＭにおけるＦＢＭ変換処理を実行する箇所を分担し、ＦＢＭ変換処理により個別に生成される分担箇所の物理ＦＢＭを物理ＦＢＭ格納メモリ領域３３３の夫々に格納する。マルチコアプロセッサ３１０は、夫々の物理ＦＢＭ格納メモリ領域に格納された、夫々のスレッドが分担した箇所の物理ＦＢＭを外部記憶装置などに夫々出力する。
【００３０】
なお、不良解析プログラム３３１は、ＲＯＭ３２０ではなく外部記憶装置などの記憶装置に格納しておいてもよい。
【００３１】
なお、第１の実施の形態の不良解析装置３００で実行される不良解析プログラム３３１を、ネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、第１の実施の形態の不良解析装置３００で実行される不良解析プログラム３３１をネットワーク経由で提供または配布するように構成してもよい。また、第１の実施の形態の不良解析プログラム３３１を、ＲＯＭ３２０等に予め組み込んで第１の実施の形態の不良解析装置３００に提供するように構成してもよい。
【００３２】
図４は、マルチコアプロセッサ３１０が不良解析プログラム３３１を実行することによって生成される不良解析装置３００の機能部の構成を説明する図である。図示するように、不良解析装置３００は、論理ＦＢＭ読み込みスレッド生成部４００と、物理ＦＢＭ変換・書き出しスレッド生成部４１０と、ＦＢＭアドレス変換関数４６０とを備えている。
【００３３】
論理ＦＢＭ読み込みスレッド生成部４００は、ｍ個のスレッド（論理ＦＢＭ読み込みスレッド）を生成する。コアａ〜コアｈは、夫々異なる論理ＦＢＭ読み込みスレッドを実行することによって、夫々、複数に分割された論理ＦＢＭ１００（論理ＦＢＭ１００−１〜論理ＦＢＭ１００−ｍ）に対応して論理ＦＢＭ格納メモリ領域３３２（論理ＦＢＭ格納メモリ領域３３２−１〜論理ＦＢＭ格納メモリ領域３３２−ｍ）の夫々を確保し、確保された論理ＦＢＭ格納メモリ領域３３２の夫々に格納するための論理ＦＢＭ読み込み部４２０（論理ＦＢＭ読み込み部４２０−１〜論理ＦＢＭ読み込み部４２０−ｍ）として機能する。なお、論理ＦＢＭ格納メモリ領域３３２−１〜論理ＦＢＭ格納メモリ領域３３２−ｍは、論理ＦＢＭ読み込みスレッド生成部４００が論理ＦＢＭ読み込みスレッドを生成する前あるいは生成した時に夫々確保するようにしてもよい。また、ｍがマルチコアプロセッサ３１０が備えるコアの数より多い場合、論理ＦＢＭ読み込みスレッド生成部４００は、生成した論理ＦＢＭ読み込みスレッドをスレッドキューに蓄積しておき、コアａ〜コアｈは、スレッドキューに蓄積された論理ＦＢＭ読み込みスレッドを逐次実行するように構成してもよい。なお、論理ＦＢＭ１００−１〜論理ＦＢＭ１００−ｍは、ファイル名などから互いに識別可能となっていることとする。
【００３４】
論理ＦＢＭ読み込み部４２０（論理ＦＢＭ読み込み部４２０−１〜論理ＦＢＭ読み込み部４２０−ｍ）は、夫々、自身が読み込んだ論理ＦＢＭ１００（論理ＦＢＭ１００−１〜論理ＦＢＭ１００−ｍ）に含まれる不良ビットの数をカウントする。そして、論理ＦＢＭ読み込み部４２０は、自身が使用する論理ＦＢＭ格納メモリ領域３３２（論理ＦＢＭ格納メモリ領域３３２−１〜論理ＦＢＭ格納メモリ領域３３２−ｍ）の先頭アドレスのポインタおよびカウント値を前記論理ＦＢＭ１００の断片の識別子としてのインデックス番号に対応づける。なお、ここでは、論理ＦＢＭ１００−「ｘ」の「ｘ」をそのままインデックス番号に使用することとする。論理ＦＢＭ読み込み部４２０毎に生成される前記対応付けはテーブル（論理ＦＢＭインデックス４５０）を構成する。論理ＦＢＭインデックス４５０が格納される領域は、マルチコアプロセッサ３１０がアクセス可能な箇所であれば格納箇所はどこでも構わないが、例えばＲＡＭ３３０内に格納されるようにするとよい。
【００３５】
図５は論理ＦＢＭインデックス４５０のデータ構造を説明する図である。図示するように、論理ＦＢＭインデックス４５０は、ポインタと不良ビット数の２要素の組が論理ＦＢＭ分割数であるｍ個含んで構成されている。
【００３６】
図６は、論理ＦＢＭインデックス４５０の具体例を説明する図である。図示するように、ｍ＝４として、インデックスＮｏ．が１、２、３、４、のエントリは、ポインタが夫々「０ｘ７２００００００」、「０ｘ７２００００１０」、「０ｘ７２００００２０」、「０ｘ７２００００３０」であるという情報と、不良ビット数が夫々１、１、０、０であるという情報とを有している。
【００３７】
物理ＦＢＭ変換・書き出しスレッド生成部４１０は、ｎ個の物理ＦＢＭ変換・書き出しスレッドを生成する。コアａ〜コアｈは、物理ＦＢＭ変換・書き出しスレッドを実行することによって、物理ＦＢＭ格納メモリ３３３−１〜物理ＦＢＭ格納メモリ３３３−ｎに分散して格納されている物理ＦＢＭ２００における自身が分担する箇所に対してＦＢＭ変換処理を実行するＦＢＭアドレス変換部４３０（ＦＢＭアドレス変換部４３０−１〜ＦＢＭアドレス変換部４３０−ｎ）、およびＦＢＭ変換処理により生成した物理ＦＢＭ２００（物理ＦＢＭ２００−１〜物理ＦＢＭ２００−ｎ）を外部記憶装置に夫々出力する物理ＦＢＭ書き出し部４４０（物理ＦＢＭ書き出し部４４０−１〜物理ＦＢＭ書き出し部４４０−ｎ）として機能する。ＦＢＭアドレス変換部４３０は、ＦＢＭ変換処理を実行する際、ＦＢＭアドレス変換関数４６０を使用する。なお、ＦＢＭアドレス変換関数４６０は、外部記憶装置などを介して入力されるようにしてもよい。また、ＦＢＭアドレス変換関数４６０は、解析対象となる半導体メモリの製品毎にデータベース化され、ＦＢＭアドレス変換部４３０は、製品名などで該データベースを検索することによって該当するＦＢＭアドレス変換関数４６０を取得するようにしてもよい。
【００３８】
なお、不良解析装置３００から出力されたｎ個に分割された物理ＦＢＭ２００は夫々ＦＢＭ表示装置５００に入力される。ＦＢＭ表示装置５００は、キーボードやマウスなどで構成される入力部５１０と液晶モニタなどの表示装置である表示部５２０とＦＢＭ表示ツール部５３０とを備えている。ＦＢＭ表示ツール部５３０は、物理ＦＢＭ２００−１〜物理ＦＢＭ２００−ｎのうちの、入力部５１０から入力されるユーザによる操作入力により指定された領域の物理ＦＢＭを表示部５２０に表示する。
【００３９】
なお、物理ＦＢＭの分割数（ｎ）は、どのような値であっても構わない。ｎは、マルチコアプロセッサ３１０が備えるコアの数よりも大きい値であっても構わないし、小さい値であっても構わない。ｎがマルチコアプロセッサ３１０が備えるコアの数より大きい場合、論理ＦＢＭ読み込みスレッドの場合と同じく、物理ＦＢＭ変換・書き出しスレッド生成部４１０は生成した物理ＦＢＭ変換・書き出しスレッドをスレッドキューに蓄積し、コアａ〜コアｈはスレッドキューに蓄積されている物理ＦＢＭ変換・書き出しスレッドを逐次実行するような仕組みを備えるようにしてもよい。なお、ＦＢＭ表示装置５００は、ｎの値が大きい方が操作入力により指定された領域を読み出す処理にかかる負荷が軽減され、全体の処理が高速になる。ＦＢＭ表示装置５００が処理を高速に行うための要求に合わせてｎの値を設定するようにしてもよい。
【００４０】
次に、不良解析装置３００を用いて実行される本発明の第１の実施の形態の不良解析方法を説明する。図７は不良解析方法を説明するフローチャートである。まず、論理ＦＢＭ読み込みスレッド生成部４００は、論理ＦＢＭ読み込みスレッドを生成する処理ループ（ステップＳ２〜ステップＳ４）で使用するための変数であるＬｉを１に設定する（ステップＳ１）。なお、Ｌｉを論理ＦＢＭ分割番号ということとする。論理ＦＢＭ分割番号Ｌｉは、１〜ｍの整数の値を取りうる。
【００４１】
そして、論理ＦＢＭ読み込みスレッド生成部４００は、論理ＦＢＭ読み込みスレッドを生成し（ステップＳ２）、該スレッドの実行完了を待たずに次のステップに進む。すなわち、ステップＳ２の後、論理ＦＢＭ読み込みスレッド生成部４００は、論理ＦＢＭ分割番号Ｌｉをインクリメントする（ステップＳ３）。
【００４２】
図８は、生成された論理ＦＢＭ読み込みスレッドが実行されたときの論理ＦＢＭ読み込み部４２０の動作を説明するフローチャートである。なお、ここでは、コアａ〜コアｈのうちの１つが論理ＦＢＭ読み込みスレッドを実行すると、該論理ＦＢＭ読み込みスレッド生成時の論理ＦＢＭ分割番号の値Ｌｉに対応して、論理ＦＢＭ読み込み部４２０−Ｌｉとして機能し、論理ＦＢＭ読み込み部４２０−Ｌｉは、インデックス番号Ｌｉに対応する論理１００の断片、すなわち論理ＦＢＭ１００−Ｌｉを読み込むこととする。
【００４３】
図８に示すように、まず、論理ＦＢＭ読み込み部４２０−Ｌｉは、分割された論理ＦＢＭ１００のひとつである論理ＦＢＭ１００−Ｌｉを論理ＦＢＭ格納メモリ領域３３２−Ｌｉに読み込む（ステップＳ１１）。具体的には、論理ＦＢＭ読み込み部４２０−Ｌｉは、論理ＦＢＭ１００−Ｌｉに含まれている不良ビット数をカウントするとともに論理ＦＢＭ格納メモリ領域３３２−Ｌｉを確保し、確保された論理ＦＢＭ格納メモリ領域３３２−Ｌｉに論理ＦＢＭ１００−Ｌｉを格納する。
【００４４】
そして、論理ＦＢＭ読み込み部４２０−Ｌｉは、論理ＦＢＭインデックスのインデックスＮｏ．＝Ｌｉのポインタに前記論理ＦＢＭ格納メモリ領域３３２−Ｌｉの先頭アドレス、不良ビット数に前記カウントしたカウント値を夫々セットし（ステップＳ１２）、論理ＦＢＭ読み込み部４２０−Ｌｉの動作がリターンとなる。
【００４５】
ステップＳ３の後、論理ＦＢＭ読み込みスレッド生成部４００は、論理ＦＢＭ分割番号Ｌｉが論理ＦＢＭ１００の分割数ｍを超えたか否かを判定する（ステップＳ４）。論理ＦＢＭ分割番号Ｌｉが論理ＦＢＭ１００の分割数ｍを超えていない場合（ステップＳ４、Ｎｏ）、ステップＳ２へ移行する。論理ＦＢＭ分割番号Ｌｉが論理ＦＢＭ１００の分割数ｎを超えた場合（ステップＳ４、Ｙｅｓ）、論理ＦＢＭ読み込みスレッド生成部４００は、生成した全ての論理ＦＢＭ読み込みスレッドの実行終了を待つ（ステップＳ５）。
【００４６】
全ての論理ＦＢＭ読み込みスレッドの実行が終了すると、物理ＦＢＭ変換・書き出しスレッド生成部４１０は、物理ＦＢＭ格納メモリ領域３３３−１〜物理ＦＢＭ格納メモリ領域３３３−ｎに分散して格納されている物理ＦＢＭ２００に対応するＦＢＭアドレス変換関数４６０を読み込む（ステップＳ６）。
【００４７】
そして、物理ＦＢＭ変換・書き出しスレッドを生成するための処理ループ（ステップＳ８〜ステップＳ１０）で使用するための変数であるＰｉを１に設定する（ステップＳ７）。なお、Ｐｉを物理ＦＢＭ分割番号ということとする。物理ＦＢＭ分割番号Ｐｉは、１〜ｎの整数の値を取りうる。
【００４８】
物理ＦＢＭ変換・書き出しスレッド生成部４１０は、物理ＦＢＭ変換・書き出しスレッドを生成し（ステップＳ８）、該スレッドの実行完了を待たずに次のステップに進む。すなわち、ステップＳ８の後、物理ＦＢＭ変換・書き出しスレッド生成部４１０は、物理ＦＢＭ分割番号Ｐｉをインクリメントする（ステップＳ９）。
【００４９】
図９は、生成された物理ＦＢＭ変換・書き出しスレッドが実行されて実現するＦＢＭアドレス変換部４３０および物理ＦＢＭ書き出し部４４０の動作を説明するフローチャートである。なお、ここでは、コアａ〜コアｈのうちの１つが物理ＦＢＭ変換・書き出しスレッドを実行すると、該物理ＦＢＭ変換・書き出しスレッドの生成時の物理ＦＢＭ分割番号の値Ｐｉに対応して、ＦＢＭアドレス変換部４３０−Ｐｉおよび物理ＦＢＭ書き出し部４４０−Ｐｉとして機能するとする。
【００５０】
図９に示すように、まず、ＦＢＭアドレス変換部４３０−Ｐｉは、物理ＦＢＭ格納メモリ領域３３３−Ｐｉの内容を０（Ｐａｓｓ）でクリアする（ステップＳ２１）。具体的には、ＦＢＭアドレス変換部４３０−Ｐｉは、物理ＦＢＭ格納メモリ領域３３３−Ｐｉを確保して、確保した物理ＦＢＭ格納メモリ領域３３３−Ｐｉの内容を全て０とする。これは、たいていのＦＢＭは不良ビット数に対してＰａｓｓ数の方が多いためで、予め多い方の０(Ｐａｓｓ)で物理ＦＢＭ格納メモリ領域３３３−Ｐｉをクリアしておくことで後の処理を軽減するのが目的である。
【００５１】
そして、ＦＢＭアドレス変換部４３０−Ｐｉは、物理ＦＢＭアドレスＰｙに物理ＦＢＭ格納メモリ領域３３３−ＰｉのＹ始点をセットし、物理ＦＢＭアドレスＰｘに物理ＦＢＭ格納メモリ領域３３３−ＰｉのＸ始点をセットする（ステップＳ２２）。
【００５２】
そして、ＦＢＭアドレス変換部４３０−Ｐｉは、Ｐｘ、Ｐｙに対応した論理ＦＢＭ分割番号Ｌｉを求める（ステップＳ２３）。論理ＦＢＭ分割番号Ｌｉはｍおよびｎの値とＦＢＭアドレス変換関数４６０とを使用する事によって求める事が出来る。
【００５３】
そして、ＦＢＭアドレス変換部４３０−Ｐｉは、論理ＦＢＭインデックス４５０のインデックスＮｏ．＝Ｌｉの不良ビット数を確認し、不良ビット数が０であるか否かを判定する（ステップＳ２４）。不良ビット数が０であった場合（ステップＳ２４、Ｙｅｓ）、ステップＳ２５〜ステップＳ２７の処理をスキップして、後述するステップＳ２８へ移行する。
【００５４】
不良ビット数が１以上、すなわち０ではなかった場合（ステップＳ２４、Ｎｏ）、ＦＢＭアドレス変換部４３０−Ｐｉは、ＦＢＭアドレス変換関数４６０を用いて、Ｐｘ、Ｐｙに対応した論理ＦＢＭアドレスＬｘ、Ｌｙを求める（ステップＳ２５）。
【００５５】
そして、ＦＢＭアドレス変換部４３０−Ｐｉは、論理ＦＢＭ格納メモリ領域３３２−Ｌｉ上の前記求めたＬｘ、Ｌｙが指す位置のビットを参照し、ビットの値が１（Ｆａｉｌ）であるか否かを判定する（ステップＳ２６）。Ｌｘ、Ｌｙが指すビットの値が０（Ｐａｓｓ）であった場合（ステップＳ２６、Ｎｏ）、ステップＳ２７の処理をスキップして、後述するステップＳ２８へ移行する。
【００５６】
Ｌｘ、Ｌｙが指すビットの値が１であった場合（ステップＳ２６、Ｙｅｓ）、ＦＢＭアドレス変換部４３０−Ｐｉは、物理ＦＢＭ格納メモリ領域３３３−ＰｉのＰｘ、Ｐｙのビットに１（Ｆａｉｌ）をセットする（ステップＳ２７）。
【００５７】
そして、ＦＢＭアドレス変換部４３０−Ｐｉは、Ｐｘをインクリメントし、Ｐｘが物理ＦＢＭ格納メモリ領域３３３−ＰｉのＸ終点を越えたか否かを判定する（ステップＳ２８）。Ｘ終点を越えていない場合（ステップＳ２８、Ｎｏ）、ステップＳ２３へ移行する。
【００５８】
Ｘ終点を越えた場合（ステップＳ２８、Ｙｅｓ）、ＦＢＭアドレス変換部４３０−Ｐｉは、Ｐｘに物理ＦＢＭ格納メモリ領域３３３−ＰｉのＸ始点を設定する（ステップＳ２９）。
【００５９】
そして、ＦＢＭアドレス変換部４３０−Ｐｉは、Ｐｙをインクリメントし、Ｐｙが物理ＦＢＭ格納メモリ領域３３３−ＰｉのＹ終点を越えたか否かを判定する（ステップＳ３０）。Ｙ終点を越えていない場合（ステップＳ３０、Ｎｏ）、ステップＳ２３へ移行する。
【００６０】
Ｙ終点を越えた場合（ステップＳ３０、Ｙｅｓ）、物理ＦＢＭ書き出し部４４０−Ｐｉは、物理ＦＢＭ格納メモリ領域３３３−Ｐｉに格納されているデータを物理ＦＢＭ２００−Ｐｉとして外部記憶装置などに書き出し（ステップＳ３１）、ＦＢＭアドレス変換部４３０−Ｐｉおよび物理ＦＢＭ書き出し部４４０−Ｐｉの動作がリターンとなる。
【００６１】
ステップＳ９の後、物理ＦＢＭ変換・書き出しスレッド生成部４１０は、物理ＦＢＭ分割番号Ｐｉが物理ＦＢＭ２００の分割数（ｎ）を超えたか否かを判定する（ステップＳ１０）。超えていない場合（ステップＳ１０、Ｎｏ）、ステップＳ８へ移行する。
【００６２】
物理ＦＢＭ分割番号Ｐｉが物理ＦＢＭ２００の分割数（ｎ）を超えた場合（ステップＳ１０、Ｙｅｓ）、物理ＦＢＭ変換・書き出しスレッド生成部４１０は、生成した全ての物理ＦＢＭ変換・書き出しスレッドの実行終了を待ち合わせする（ステップＳ１１）。全ての物理ＦＢＭ変換・書き出しスレッドの実行が終了すると、動作が終了となる。
【００６３】
以上の構成および動作により、並列処理時のデータの誤書き込みの問題が解消される事を図１０を参照して説明する。図１０は本第１の実施の形態における論理ＦＢＭ１００と物理ＦＢＭ２００と論理ＦＢＭインデックス４５０の関係を説明する図である。
【００６４】
図１０において、物理ＦＢＭ格納メモリ領域３３３はＰｘアドレス方向に４つの領域（物理ＦＢＭ格納メモリ領域３３３−１〜物理ＦＢＭ格納メモリ領域３３３−４）に分割されており、また論理ＦＢＭ格納メモリ領域３３２もＬｙ方向に４つの領域（論理ＦＢＭ格納メモリ領域３３２−１〜論理ＦＢＭ格納メモリ領域３３２−４）に分割されている。物理ＦＢＭ２００が４分割されているので、アドレス変換処理は、物理ＦＢＭ格納メモリ領域３３３−１を受け持つ物理ＦＢＭ変換・書き出しスレッドＴｈｒｅａｄ−１と、物理ＦＢＭ格納メモリ領域３３３−２を受け持つ物理ＦＢＭ変換・書き出しスレッドＴｈｒｅａｄ−２と、物理ＦＢＭ格納メモリ領域３３３−３を受け持つ物理ＦＢＭ変換・書き出しスレッドＴｈｒｅａｄ−３と、物理ＦＢＭ格納メモリ領域３３３−４を受け持つ物理ＦＢＭ変換・書き出しスレッドＴｈｒｅａｄ−４の計４スレッドで処理される。
【００６５】
Ｔｈｒｅａｄ−１が物理ＦＢＭアドレスＰｘ＝０、Ｐｙ＝０のビットに１(Ｆａｉｌ）をセットするか否かは、以下のようにして決められる。ＦＢＭアドレス変換関数４６０は、Ｌｘ＝Ｐｙ、Ｌｙ＝Ｐｘとなっており、論理ＦＢＭ格納メモリ領域３３２がＬｙ方向に４等分されており、物理ＦＢＭ格納メモリ領域３３３がＰｘ方向に４等分されているので、インデックスＮｏ．（Ｉｎｘ）＝Ｐｘ／４＋１の関係がある（ただし、小数点以下は切り捨て）。この関係式からＰｘ＝０、Ｐｙ＝０のビットに対応する論理ＦＢＭ１００におけるビットが、インデックスＮｏ．＝１に対応する論理ＦＢＭ格納メモリ領域３３２−１に格納されていることが認識される。なお、ＦＢＭアドレス変換関数４６０はこの関係式をも含むように構成されてもよい。
【００６６】
そして、論理ＦＢＭインデックス４５０のインデックスＮｏ．＝１の不良ビット数が参照され、不良ビット数が１なので、論理ＦＢＭ格納メモリ領域３３２−１が参照される。論理ＦＢＭ格納メモリ領域３３２−１上のアドレスは、ＦＢＭアドレス変換関数４６０のＬｘ＝ＰｙとＬｙ＝Ｐｘとに基づいて論理ＦＢＭアドレスＬｘ＝０、Ｌｙ＝０が求められる。論理ＦＢＭ格納メモリ領域３３２−１のＬｘ＝０、Ｌｙ＝０のビットは１(Ｆａｉｌ）である事から物理ＦＢＭ格納メモリ領域３３３−１のＰｘ＝０、Ｐｙ＝０のビットには１(Ｆａｉｌ）がセットする、と判断される。
【００６７】
Ｐｘ＝０、Ｐｙ＝０のビットにセットされる動作には、物理ＦＢＭ格納メモリ領域３３３−１に格納されているＰｘ＝０、Ｐｙ＝０のビットを含む１バイト（８ビット）に対してロード・ストアする動作が付随する。ここでは、物理ＦＢＭ格納メモリ領域３３３−１からＰｘ＝０、Ｐｙ＝０のビットと、Ｐｘ＝１、Ｐｙ＝０のビットと、Ｐｘ＝２、Ｐｙ＝０のビットと、Ｐｘ＝３、Ｐｙ＝０のビットと、Ｐｘ＝０、Ｐｙ＝１のビットと、Ｐｘ＝１、Ｐｙ＝１のビットと、Ｐｘ＝２、Ｐｙ＝１のビットと、Ｐｘ＝３、Ｐｙ＝１のビットとがロード・ストアされる。
【００６８】
同様に、Ｔｈｒｅａｄ−２によってＰｘ＝０、Ｐｙ＝０のビットに１(Ｆａｉｌ）がセットされる動作が実行される際には、物理ＦＢＭ格納メモリ領域３３３−２からＰｘ＝４、Ｐｙ＝０のビットと、Ｐｘ＝５、Ｐｙ＝０のビットと、Ｐｘ＝６、Ｐｙ＝０のビットと、Ｐｘ＝７、Ｐｙ＝０のビットと、Ｐｘ＝４、Ｐｙ＝１のビットと、Ｐｘ＝５、Ｐｙ＝１のビットと、Ｐｘ＝６、Ｐｙ＝１のビットと、Ｐｘ＝７、Ｐｙ＝１のビットとがロード・ストアされる。
【００６９】
このように、Ｔｈｒｅａｄ−１およびＴｈｒｅａｄ−２は双方とも１バイト毎のメモリアクセスを行うが、Ｔｈｒｅａｄ−１がメモリアクセスする領域とＴｈｒｅａｄ−２がメモリアクセスする領域とが分けられている。つまり、Ｔｈｒｅａｄ−１〜Ｔｈｒｅａｄ−４は、同一バイトに同じタイミングでアクセスする事態が起こらない。したがって、比較例にかかる技術を用いた場合に発生する誤った書き込みが発生しない。
【００７０】
なお、以上の説明においては、ＦＢＭアドレス変換部４３０は、物理ＦＢＭ格納メモリ領域３３３を０（Ｐａｓｓ）でクリアし、論理ＦＢＭ１００に格納されているビットを参照して、参照先が１（Ｆａｉｌ）であった場合、対応する物理ＦＢＭ２００の格納先に１をセットするように説明したが、論理ＦＢＭ１００に格納されているビットが０（Ｐａｓｓ）であった場合、対応する物理ＦＢＭ２００の格納先に０をセットし、論理ＦＢＭ１００に格納されているビットを参照して、参照先が１（Ｆａｉｌ）であった場合、対応する物理ＦＢＭ２００の格納先に１をセットするように構成してもよい。
【００７１】
以上説明したように、本発明の実施の形態によれば、マルチコアプロセッサ３１０が備える複数のコアは、夫々、ＲＡＭ３３０（メインメモリ）に論理ＦＢＭ格納メモリ領域３３２（第１メモリ領域）を確保して外部から入力された論理ＦＢＭ１００（電気テスト結果）を論理ＦＢＭ格納メモリ領域３３２に格納する論理ＦＢＭ読み込み部４２０と、ＲＡＭ３３０に単位サイズ毎のロード／ストアが夫々のメモリ領域内で個別に実行される物理ＦＢＭ格納メモリ領域３３３（第２メモリ領域）を夫々確保し、論理ＦＢＭ格納メモリ領域３３２に格納された電気テスト結果のうちの自コアが担当する部分に含まれる論理アドレス順で格納されているメモリセル毎のビット（良／不良情報）を逐次参照し、参照したビットの論理ＦＢＭアドレス（論理アドレス）に対応する物理ＦＢＭアドレス（物理アドレス）に対応する物理ＦＢＭ格納メモリ領域３３３におけるアドレス（メモリアドレス）に前記参照されたビットを書き込むように構成したので、夫々のコアは夫々個別に確保した物理ＦＢＭ格納メモリ領域３３３にアクセスすることになるので、同一バイトに同じタイミングでアクセスする事態が起こらない。従って、夫々のコアは非同期で夫々自コアが分担する箇所のＦＢＭを作成することができるので、ＦＢＭを高速に作成することができるようになる。
【００７２】
また、論理ＦＢＭ１００は外部から入力された時点で分割されているか、または夫々のコアが分割し、それぞれのコアは、論理ＦＢＭ１００の断片のうちの１つを格納する論理ＦＢＭ格納メモリ領域３３２夫々個別に確保し、確保された論理ＦＢＭ格納メモリ領域３３２の先頭アドレスと論理ＦＢＭ１００の断片を識別するインデックス番号とを対応付けた論理ＦＢＭインデックス４５０を作成し、該論理ＦＢＭインデックス４５０を参照することによってＲＡＭ３３０における自コアが担当する部分が格納されているアドレスを特定するように構成したので、論理ＦＢＭ１００の読み込みにかかる処理時間が短縮されるので、ＦＢＭを高速に作成することができるようになる。
【００７３】
また、夫々のコアは、論理ＦＢＭ１００の断片のうちの１つに含まれる不良ビット（不良情報）をカウントするとともに該断片を格納する論理ＦＢＭ格納メモリ領域３３２を夫々個別に確保し、確保された論理ＦＢＭ格納メモリ領域３３２の先頭アドレスおよび不良ビットのカウント値と論理ＦＢＭ１００の断片を識別するためのインデックス番号とを対応付けた論理ＦＢＭインデックス４５０を作成し、該論理ＦＢＭインデックス４５０に記述されているカウント値に基づいて複数の論理ＦＢＭ格納領域３３２のうちの自コアが担当する部分が格納されている論理ＦＢＭ格納領域３３２には不良ビットを含む断片が格納されているか否かを判定し、不良ビットを含む断片が格納されていた場合、ＲＡＭ３３０における自コアが担当する部分が格納されているアドレスを特定するように構成したので、ＲＡＭ３３０の参照頻度を低減することができるようになる。
【００７４】
また、夫々のコアは、不良ビットのカウント値がゼロ値であったか否かを判定し、カウント値がゼロ値ではなかった場合、論理ＦＢＭ格納メモリ領域３３２を確保し、カウント値がゼロ値であった場合、論理ＦＢＭ格納メモリ領域３３２を確保しないように構成したので、ＲＡＭ３３０の容量リソースを節約することができる。また、不良ビットが含まない論理ＦＢＭ１００の断片の参照を行わないためＦＢＭを高速に作成することができるようになる。
【００７５】
なお、以上の説明においては、論理ＦＢＭ１００は分割された状態で不良解析装置３００に入力される、として説明したが、分割されていない一つのファイルとして入力されても構わない。その場合、論理ＦＢＭ読み込み部４２０−Ｌｉは、論理ＦＢＭ１００のファイルをオープンした後、リードポイントをシークし、目的とする論理ＦＢＭ１００−Ｌｉの領域のみをリードするようにすればよい。
【００７６】
また、不良解析装置３００は、物理ＦＢＭ２００を分割された状態で夫々出力する、として説明したが、分割された物理ＦＢＭ２００−１〜物理ＦＢＭ２００−ｎを１つのファイルに統合し、統合された物理ＦＢＭ２００を出力するようにしてもよい。
【００７７】
また、不良解析装置３００は、演算部としてのコアを複数備える構成としたが、演算部としてのプロセッサを複数備える、いわゆるマルチプロセッサ方式のコンピュータに対しても適用することができる。
【００７８】
（第２の実施の形態）
第１の実施の形態では、論理ＦＢＭ読み込み部４２０は、分割されている論理ＦＢＭ１００が不良ビットを含まない場合であっても、論理ＦＢＭ格納メモリ領域３３２へ格納していた。本発明の第２の実施の形態では、分割されている論理ＦＢＭ１００が不良ビットを含まない場合、該論理ＦＢＭ１００を論理ＦＢＭ格納メモリ領域３３２へ格納しないようにした。
【００７９】
図１１は、コアａ〜コアｈが実施の形態２の論理ＦＢＭ読み出しスレッドを実行した場合の動作を説明するフローチャートである。なお、コアａ〜コアｈが第２の実施の形態の論理ＦＢＭ読み出しスレッドを実行することによって実現する論理ＦＢＭ読み出し部に符号６２０を付すことによって、第１の実施の形態の論理ＦＢＭ読み出し部４２０と区別する。また、第１の実施の形態と同様に、論理ＦＢＭ分割番号の値Ｌｉに対応して論理ＦＢＭ読み出し部６２０−Ｌｉが生成されるものとして説明する。
【００８０】
図１１に示すように、論理ＦＢＭ読み出し部６２０−Ｌｉは、まず、論理ＦＢＭ１００−Ｌｉの不良ビットをカウントし、全ビットＰａｓｓであるか否かを判定する（ステップＳ４１）。全ビットがＰａｓｓであった場合（ステップＳ４１、Ｙｅｓ）、論理ＦＢＭインデックス４５０のインデックスＮｏ．＝Ｌｉのポインタに「Ｎｕｌｌ」を設定するとともに不良ビット数に０を設定し（ステップＳ４２）、動作がリターンとなる。すなわち、論理ＦＢＭ１００−Ｌｉを論理ＦＢＭ格納メモリ領域３３２−Ｌｉに読み込む処理は行わない。
【００８１】
論理ＦＢＭ１００−Ｌｉに１（Ｆａｉｌ）が含まれていた場合（ステップＳ４１、Ｎｏ）、論理ＦＢＭ読み出し部６２０−Ｌｉは、論理ＦＢＭ１００−Ｌｉを論理ＦＢＭ格納メモリ３３２−Ｌｉに読み込み（ステップＳ４３）、論理ＦＢＭインデックスのインデックスＮｏ．＝Ｌｉのポインタに前記論理ＦＢＭ格納メモリ領域３３２−Ｌｉの先頭アドレス、不良ビット数に前記カウントしたカウント値を夫々セットし（ステップＳ４４）、動作がリターンとなる。
【００８２】
図１２は、本第２の実施の形態における論理ＦＢＭ１００と物理ＦＢＭ２００と論理ＦＢＭインデックス４５０の関係を説明する図である。
【００８３】
図１２において、物理ＦＢＭ格納メモリ領域３３３はＰｘアドレス方向に４つの領域（物理ＦＢＭ格納メモリ領域３３３−１〜物理ＦＢＭ格納メモリ領域３３３−４）に分割されており、また論理ＦＢＭ格納メモリ領域３３２もＬｙ方向に４等分に分割されるようになっているが、論理ＦＢＭ格納メモリ領域３３２−３と論理ＦＢＭ格納メモリ領域３３２−４は全ビットＰａｓｓなため領域が確保されていない。また、論理ＦＢＭインデックス４５０には、論理ＦＢＭ格納メモリ領域３３２−３、論理ＦＢＭ格納メモリ領域３３２−４に夫々対応するインデックスＮｏ．＝３およびインデックスＮｏ．＝４のエントリが夫々含まれているが、夫々ポインタの値が「Ｎｕｌｌ」、不良ビット数が０、となっている。
【００８４】
このように、本発明の第２の実施の形態によれば、分割された論理ＦＢＭ１００−Ｌｉに不良ビットが含まれていない場合、この論理ＦＢＭ１００−Ｌｉの読み込み処理を省略でき、また論理ＦＢＭ格納メモリ領域３３２−Ｌｉを確保する必要も無くなるため、第１の実施の形態に比して処理速度の向上とメモリ使用量の低減を図ることができるようになる。
【符号の説明】
【００８５】
１００  論理ＦＢＭ、２００〜２０３  物理ＦＢＭ、３００  不良解析装置、３１０  マルチコアプロセッサ、３２０  ＲＯＭ、３３０  ＲＡＭ、３３１  不良解析プログラム、３３２  論理ＦＢＭ格納メモリ領域、３３３  物理ＦＢＭ格納メモリ領域、３４０  入力部、３５０  表示部、４００  論理ＦＢＭ読み込みスレッド生成部、４１０  物理ＦＢＭ変換・書き出しスレッド生成部、４２０  論理ＦＢＭ読み込み部、４３０  ＦＢＭアドレス変換部、４４０  物理ＦＢＭ書き出し部、４５０  論理ＦＢＭインデックス、４６０  ＦＢＭアドレス変換関数、５００  ＦＢＭ表示装置、５１０  入力部、５２０  表示部、５３０  ＦＢＭ表示ツール部、６２０  論理ＦＢＭ読み出し部。
【図１】
2011129218.tif 000003
【図２】
2011129218.tif 000004
【図３】
2011129218.tif 000005
【図４】
2011129218.tif 000006
【図５】
2011129218.tif 000007
【図６】
2011129218.tif 000008
【図７】
2011129218.tif 000009
【図８】
2011129218.tif 000010
【図９】
2011129218.tif 000011
【図１０】
2011129218.tif 000012
【図１１】
2011129218.tif 000013
【図１２】
2011129218.tif 000014