(57)【要約】  メモリ(14)をテストする方法は、テストアドレス(46)のような複数のアドレスを生成し(62、66)、複数のアドレス各々の中身にアクセスしてそれらをストレージ回路(32、34)に保存し(64、68)、複数のアドレスについてテストを実行し(70)、アクセスアドレスをスヌープ回路(36)に送ることでメモリテスト回路にアクセスし(84、86)、複数のアドレスの内の少なくとも1つにアクセスアドレスが合致しているか否かを判定し、それに応じて少なくとも1つのヒットインジケータ(52、54)を生成し(88)、スヌープミスインジケータ(27)を生成し(92)、それがミスを示しているか否かを判定し、ミスを示していた場合、アクセスアドレスに応じてメモリにアクセスし(96)、ミスを示していなかった場合、ストレージ回路の内の選択された部分に相互接続マスタ(12)のスヌープデータを格納する、或いは相互接続マスタに対するストレージ回路の選択された部分からスヌープデータを読み取る(98)。
2012524334.tif 000002
【特許請求の範囲】
【請求項１】
メモリを検査する方法であって、
第1のアドレスを検査アドレス(AUT)として生成するステップと、
前記メモリにおける前記AUTの内容にアクセスし、該内容を検査アドレス(AUT)レジスタに保存するステップと、
前記メモリの一部に対応する複数のアドレスを生成するステップと、
前記メモリにおける前記複数のアドレス各々の内容にアクセスし、該内容を複数のレジスタに保存するステップと、
前記AUT及び前記複数のアドレスについて前記メモリのメモリ検査を実行するステップと、
相互接続マスタにおけるアクセスアドレスを生成するステップと、
メモリ検査回路のスヌープ処理回路において前記アクセスアドレスを受信するステップと、
前記アクセスアドレスが前記AUTに合致するか否かを判定し、該判定に応じて第1のヒットインジケータを生成するステップと、
前記アクセスアドレスが前記複数のアドレスの内の少なくとも1つに合致するか否かを判定し、該判定に応じて複数のヒットインジケータを生成するステップと、
スヌープ処理回路においてスヌープミスインジケータを生成するステップと、
前記アクセスアドレスが前記AUT及び前記複数のアドレスの少なくとも1つに合致していないことに起因して前記スヌープミスインジケータがミスを示しているか否かを判定するステップと、
前記スヌープミスインジケータがミスを示していた場合に、前記アクセスアドレスに応じて前記メモリにアクセスするステップと、
前記スヌープミスインジケータがミスを示していなかった場合、前記AUTレジスタ及び前記複数のレジスタから成る群に属しかつ前記第1のヒットインジケータ及び前記複数のヒットインジケータの少なくとも1つに基づいて選択することに決定された選択レジスタに、前記相互接続マスタからのスヌープデータを保存する、或いは前記AUTレジスタ及び前記複数のレジスタより成る群から選択されたレジスタから前記相互接続マスタへの前記スヌープデータの読み取りを行うステップと
を有する、メモリを検査する方法。
【請求項２】
前記複数のアドレスが前記AUTのエイリアスであり、前記複数のレジスタがエイリアスレジスタである、請求項1記載の方法。
【請求項３】
前記メモリの検査を実行した後に前記AUTレジスタ及び前記複数のレジスタの内容を前記メモリに書き込むステップを更に有する請求項1記載の方法。
【請求項４】
前記スヌープ処理回路において前記アクセスアドレスを受信すること、
前記アクセスアドレスが前記AUTに合致するか否かを判定すること、
前記アクセスアドレスが前記複数のアドレスの内の少なくとも1つに合致するか否かを判定すること、
前記スヌープ処理回路においてスヌープミスインジケータを生成すること、
前記スヌープミスインジケータがミスを示していた場合に、前記アクセスアドレスに応じて前記メモリにアクセスすること、及び
前記スヌープミスインジケータがミスを示していなかった場合に、前記選択レジスタに前記接続マスタからのスヌープデータを保存すること、或いは前記選択されたレジスタから前記相互接続マスタへの前記スヌープデータの読み取りを行うことの全てが、
前記AUT及び前記複数のアドレスについて前記メモリを検査している最中に前記メモリにおいて実行される、請求項1記載の方法。
【請求項５】
前記メモリにおける前記AUTの内容にアクセスする際に、前記メモリにおける前記AUTの内容を読み取り、前記メモリにおける前記複数のアドレス各々の内容にアクセスする際に、前記メモリにおける前記複数のアドレス各々の内容を読み取る、請求項1記載の方法。
【請求項６】
前記相互接続マスタにおける前記アクセスアドレスを生成する前記ステップが、前記相互接続マスタにおけるソフトウェアの実行中に前記メモリにアクセスした際に行われる、請求項1記載の方法。
【請求項７】
前記スヌープ処理回路において前記アクセスアドレスを受信する前記ステップにおいて、
前記メモリのインタフェース回路内の前記アクセスアドレスを、システム相互接続を通じて、プロセッサである前記相互接続マスタから受信し、
前記インタフェース回路から前記スヌープ処理回路へ前記アクセスアドレスを提供する、請求項1記載の方法。
【請求項８】
前記メモリにおいて次のアドレスを検査すべきか否かの判定に応じて、前記AUTとして次のアドレスを生成するステップを更に有する、請求項1記載の方法。
【請求項９】
前記スヌープミスインジケータを生成することが、前記第1のヒットインジケータ及び前記複数のヒットインジケータに基づいている、請求項1記載の方法。
【請求項１０】
メモリを検査する方法であって、
前記メモリの一部に対応する複数のアドレスを生成するステップと、
前記メモリの前記複数のアドレス各々の内容を読み取り、前記複数のアドレス各々の該内容をストレージ回路に保存するステップと、
前記複数のアドレスについてメモリ検査を実行するステップと
を有し、前記複数のアドレスについて前記メモリ検査を実行する最中に、当該方法は、
相互接続マスタにより生成されかつ前記メモリ内の或るアドレスロケーションに対応するアクセスアドレスを、メモリ検査回路内のスヌープ処理回路に送信することで、前記メモリ検査回路にアクセスするステップと、
前記アクセスアドレスが前記複数のアドレスの少なくとも1つに合致するか否かを判定し、該判定に応じてスヌープミスインジケータを生成するステップであって、該スヌープミスインジケータは、前記アクセスアドレスが前記複数のアドレスの少なくとも1つに合致していなかった場合にミスであることを示す、ステップと、
前記スヌープミスインジケータがミスを示していた場合、前記アクセスアドレスに応じて前記メモリにアクセスするステップと、
前記スヌープミスインジケータがミスを示していなかった場合において、前記アクセスアドレスが書込アクセスに対応していた場合に、前記相互接続マスタが前記ストレージ回路の内の選択された部分へ書込データを保存し、或いは前記ストレージ回路の内の選択された前記部分から前記相互接続マスタへ読取データを提供するステップと
を有し、前記ストレージ回路の内の選択された前記部分は、前記複数のアドレスの内のどれが前記アクセスアドレスに合致しているかに基づいて選択されている、メモリを検査する方法。
【請求項１１】
前記複数のアドレスが、検査アドレス(AUT)及び該AUTのエイリアスである少なくとも1つのアドレスを含む、請求項10記載の方法。
【請求項１２】
前記ストレージ回路が、検査アドレス(AUT)レジスタ及び少なくとも1つのエイリアスレジスタを含む、請求項11記載の方法。
【請求項１３】
前記メモリの検査を実行した後に前記ストレージ回路の内容を前記メモリに書き込むステップを更に有する請求項12記載の方法。
【請求項１４】
前記相互接続マスタによるソフトウェアの実行中に前記相互接続マスタにより前記アクセスアドレスが生成される、請求項10記載の方法。
【請求項１５】
前記スヌープミスインジケータを生成することが少なくとも1つのヒットインジケータに基づいている、請求項10記載の方法。
【請求項１６】
検査アドレス(AUT)の内容及びメモリの一部の内容を保存するストレージ回路とスヌープ処理回路とを有する装置であって、前記スヌープ処理回路は、
前記メモリ内の或るアドレスロケーションに対応するアクセスアドレスを相互接続マスタから受信し、内容が前記ストレージ回路に保存されている前記AUT及び前記メモリの一部のアドレスから成る群中の少なくとも1つに前記アクセスアドレスが合致するか否かを判定し、前記の判定に応じて少なくとも1つのヒットインジケータを生成する複数の比較器と、
内容が前記ストレージ回路に保存されている前記AUT及び前記メモリの一部のアドレスの少なくとも1つに前記アクセスアドレスが合致していなかった場合、ミスであることを示すスヌープミスインジケータを生成するミス判定回路と、
前記スヌープミスインジケータがミスを示していなかった場合において、前記少なくとも1つのヒットインジケータに基づいて、前記相互接続マスタから前記ストレージ回路の内の選択された部分への書込データの保存を実行し、或いは前記ストレージ回路の内の選択された前記部分から前記相互接続マスタへのデータの提供を実行するスヌープデータセレクタと
を有する装置。
【請求項１７】
前記メモリの前記一部のアドレスは前記AUTのエイリアスであり、前記ストレージ回路は、前記AUTの内容を保存する検査アドレス(AUT)レジスタと前記メモリの前記一部の内容を保存する少なくとも1つのエイリアスレジスタとを有する、請求項16記載の装置。
【請求項１８】
前記複数の比較器が、前記アクセスアドレスは前記AUTに合致しているか否かを判定するAUT比較器と、前記アクセスアドレスは前記AUTの何れかのエイリアスに合致しているか否かを判定する少なくとも1つのエイリアス比較器とを有する、請求項17記載の装置。
【請求項１９】
当該装置が、前記AUTを受信し、前記AUTの内容を前記AUTレジスタに保存し、前記AUTに対応する前記メモリ内のメモリロケーションについて及び前記メモリの一部についてメモリ検査を実行し、該検査を実行した後に前記ストレージ回路の内容を前記メモリに書き込む検査制御回路を更に有する、請求項17記載の装置。
【請求項２０】
前記複数の比較器が前記アクセスアドレスを前記相互接続マスタから受信し、前記ミス判定回路が前記スヌープミスインジケータを生成し、前記データが前記ストレージ回路の選択された前記部分に保存される或いは前記ストレージ回路の選択された前記部分から提供されることが、前記検査制御回路による前記メモリ検査の実行と少なくとも一部同時に行われる、請求項19記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される発明は一般にデータ処理システムに関連し、特にスヌープ方式によるメモリテストに関連する。
【背景技術】
【０００２】
メモリの検査は適切な動作を保証する際に重要である。今日の多くのデータ処理システムでは、メモリ検査を実行するテストソフトウェアが使用されている。しかしながらこの種のメモリ検査は、メモリ検査を実行しつつ他のソフトウェアアプリケーションを使用することを妨げている。これは、メモリテストが実行可能である時点を制限している。また、本質的にメモリ検査はメモリ内容を変更することを要する。通常のシステム動作の最中にメモリ検査を行う場合、その予備的なテスト内容(pre-test  content)は、検査の後、動作を継続する前に、復元又は再構築される必要がある。これは非常に時間のかかる作業であり、しばしば実現可能ではない。  
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の課題は、メモリ検査を効率的に行うことが可能な方法及び装置を提供することである。
【課題を解決するための手段】
【０００４】
開示される発明の一形態による方法は、
メモリを検査する方法であって、
第1のアドレスを検査アドレス(AUT)として生成するステップと、
前記メモリにおける前記AUTの内容にアクセスし、該内容を検査アドレス(AUT)レジスタに保存するステップと、
前記メモリの一部に対応する複数のアドレスを生成するステップと、
前記メモリにおける前記複数のアドレス各々の内容にアクセスし、該内容を複数のレジスタに保存するステップと、
前記AUT及び前記複数のアドレスについて前記メモリのメモリ検査を実行するステップと、
相互接続マスタにおけるアクセスアドレスを生成するステップと、
メモリ検査回路のスヌープ処理回路において前記アクセスアドレスを受信するステップと、
前記アクセスアドレスが前記AUTに合致するか否かを判定し、該判定に応じて第1のヒットインジケータを生成するステップと、
前記アクセスアドレスが前記複数のアドレスの内の少なくとも1つに合致するか否かを判定し、該判定に応じて複数のヒットインジケータを生成するステップと、
スヌープ処理回路においてスヌープミスインジケータを生成するステップと、
前記アクセスアドレスが前記AUT及び前記複数のアドレスの少なくとも1つに合致していないことに起因して前記スヌープミスインジケータがミスを示しているか否かを判定するステップと、
前記スヌープミスインジケータがミスを示していた場合に、前記アクセスアドレスに応じて前記メモリにアクセスするステップと、
前記スヌープミスインジケータがミスを示していなかった場合、前記AUTレジスタ及び前記複数のレジスタから成る群に属しかつ前記第1のヒットインジケータ及び前記複数のヒットインジケータの少なくとも1つに基づいて選択することに決定された選択レジスタに、前記相互接続マスタからのスヌープデータを保存する、或いは前記AUTレジスタ及び前記複数のレジスタより成る群から選択されたレジスタから前記相互接続マスタへの前記スヌープデータの読み取りを行うステップと
を有する、メモリを検査する方法である。
【図面の簡単な説明】
【０００５】
【図１】本発明の一形態によるデータ処理システムを示すブロック図。
【図２】本発明の一形態による図1のメモリテスト回路の一部を示すブロック図。
【図３】本発明の一形態による図2のAUT比較器の一部を概略的に示す図。
【図４】本発明の一形態による図2のエイリアス比較器の一部を概略的に示す図。
【図５】本発明の一形態による図2のエイリアス比較器の一部を概略的に示す図。
【図６】本発明の一形態による図2のミス判定回路の一部を概略的に示す図。
【図７】図1のメモリをテストする本発明の一形態による方法を示す図。
【図８】本発明の一形態によるアクセスアドレスのスヌープ方法を示す図。
【発明を実施するための形態】
【０００６】
以下、本発明を一実施形態により説明するが、本発明は図示の形態に限定されず、図中同様な参照符号は同様な要素を示す。図中の要素は簡明化の観点から描かれており、必ずしも寸法を描いたものではない点に留意を要する。
【０００７】
以下に説明する様々な実施形態は、メモリにアクセスするデータ処理システムにおけるデータ処理動作を継続して実行している間に生じるメモリ検査を可能にする。そのようなデータ処理動作は、例えば、プロセッサにおけるソフトウェアの実行や、ダイレクトメモリアクセスデバイス動作等のようなデータ処理システムにおける処理であるがこれらに限定されない。一実施例において、検査されるメモリにアクセスすることを要するデータ処理動作にとって透明又はトランスペアレント(transparent)であるメモリ検査を実行するために、ハードウェアメモリ内蔵検査機能(Memory-Built-In-Self-Test:  MBIST)が使用される。一実施例において、メモリの特定の部分が検査される場合、先ずその部分がレジスタ又は他の何らかの保存回路にコピーされる。メモリにアクセスするデータ処理動作の最中に、スヌープ手段(snooping  mechanism)を使用して、データ処理システムにおけるデータ処理動作で必要なメモリアクセスリクエストが、現在検査されているメモリの中でその部分に対応する時点を判定する。その場合、メモリにアクセスするのではなく、レジスタを用いてメモリアクセスは応答することができる。しかしながら、メモリアクセスが、現在検査されているメモリ中のその部分に対応していないと判定された場合、メモリアクセスはメモリにそのままアクセスすることで応答できる。
【０００８】
更に、一実施例において、メモリの特定のアドレスロケーションが検査される場合において、1つ以上の他のアドレスがそのアドレスに対するエイリアス(alias)でありそのアドレスとともに検査されるべき場所において不具合が生じるかもしれない。一実施例において、1つ以上のアドレスエイリアスは、検査されるアドレスと比較してアドレスの1ビットを反転させることで、検査されるアドレスに関連づけられる(具体例については後述する)。従って一実施例において、スヌープ方式でレジスタに保存されるように選択された特定のメモリ部分は、検査されるメモリ中のアドレスロケーションに対応するだけでなく、そのアドレスにおいて1ビット反転したアドレスにも対応する。このようにして、スヌープ方式でレジスタに保存するのに必要なメモリ量が削減される。すなわち、最も可能性の高いアドレスエイリアスに対するメモリ検査を制限することで、通常は工場の外又は起動時に限って行われるブランケットテスト(blanket  testing)を回避し、メモリの通常動作の最中におけるメモリ検査を改善する。
【０００９】
本願において使用されるように、「バス」という用語は、データ、アドレス、制御情報又は状態等のような1つ以上の様々なタイプの情報を通信するのに使用される複数の信号又は導体を指すように使用される。本願において言及される導体は、単独の導体、複数の導体、単一方向の導体又は双方向性の導体を指すように説明又は使用される。しかしながら、別の実施例においては別の導体が使用されてもよい。例えば、双方向性の導体の代わりに単一方向性の導体が使用されてもよいし、或いはその逆でもよい。また、複数の導体が、複数の信号をシリアルに又は時間分割多重方式で通信する単独の導体で置換されてもよい。同様に、複数の信号を伝送する単独の導体が、それらの信号の各部分を伝送する個々の導体に分割されてもよい。従って信号を伝送する多くの選択肢が存在する。
【００１０】
本願において、「アサート」、「設定」及び「ネゲート」(又は「デアサート」又は「クリア」)等の用語は、信号、ステータスビット又は関連する装置を論理的に真の状態又は論理的に偽の状態にする際に場合に使用される。論理的に真の状態が論理レベル1であった場合、論理的に負の状態は論理レベル0である。或いは、論理的に真の状態が論理レベル0であった場合、論理的に負の状態は論理レベル1である。
【００１１】
本願において説明される各信号は正論理又は負論理により設計され、否定論理は信号名に付するバー又はその名称に続く星印(*)により表現可能である。負論理信号の場合、信号はアクティブローであり、論理的に真の状態は論理レベル0に対応する。正論理信号の場合、信号はアクティブハイであり、論理的に真の状態は論理レベル1に対応する。本願において説明される任意の信号が負論理信号又は正論理信号で設計可能であることに留意を要する。従って代替実施例において正論理信号で設計されている信号が負論理信号として実現されてもよいし、負論理信号として設計されている信号が正論理信号として実現されてもよい。
【００１２】
本願において、バスの導体又は値のビット位置を示すために括弧が使用される。例えば、「バス60[7:0]」又は「バス60の導体[7:0]」は、バス60の8つの低次の導体を示し、「アドレスビット[7:0]」又は「アドレス[7:0]」はアドレス値の8つの低次ビットを示す。数字に先行する記号「$」は、その数字が16進又は16進表記で表現されていることを示す。数字に先行する記号「%」は、その数字が2進又はバイナリ表記で表現されていることを示す。
【実施例１】
【００１３】
図1は、本発明の一形態によるデータ処理システム10のブロック図を示す。システム10は、プロセッサ12、メモリ14、メモリ検査回路16、他のモジュール20及びシステム相互接続手段18を含む。プロセッサ12、メモリ14及び他のモジュール20(存在する場合)はシステム相互接続手段18に双方向通信可能に結合される。メモリ14は、インタフェース回路22を含み、メモリ検査回路16に双方向通信可能に結合される。メモリ14のインタフェース回路22は、リード/ライト(R/W)インジケータ29及びアクセスアドレス25をメモリ検査回路16に提供する。メモリ検査回路16はスヌープミスインジケータ27をインタフェース回路22に提供し、インタフェース回路22はスヌープデータ23をメモリ検査回路16と双方向に通信する。一実施例において、プロセッサ12は汎用プロセッサ又はディジタル信号プロセッサのような上記委のデータ処理動作を行うことが可能な任意の装置であり、相互接続マスタとして言及されてもよい。或いは、プロセッサ12はダイレクトメモリアクセス(DMA)コントローラ等のような他の任意のタイプの相互接続マスタであってもよい。図示の例ではただ1つのプロセッサしか描かれていないが、当業者は、説明される実施例は複数のプロセッサを有するシステムにも適用可能であり、そのような複数のプロセッサの1つ以上がメモリ14にアクセスできることを、認めるであろう。他のモジュール20は他の相互接続マスタ、他のメモリ、周辺装置、入力/出力(I/O)装置等を有する。或いは他のモジュール20は存在しなくてもよい。1つのメモリしか描かれていないが、当業者は、メモリ14と同様な形式で検査及びスヌープされる追加的なメモリが存在してもよいことを、認めるであろう。更に、メモリ14は読み書き可能な任意の形式とすることができる。
【００１４】
図1には示されていない追加的な機能ブロックがシステム相互接続手段18に結合されていてもよいことに留意を要する。一実施例において、システム相互接続手段18は、システムの各ブロックに結合される複数の導体を有するバスとして実現されてもよい。別の実施例において、システム相互接続手段18は、システムブロック同士を同時に通信できるようにする従来の「クロスバー」形式のバスであってもよい。別の実施例において、システム相互接続手段18はアドバンストハイパフォーマンスバス(AHB)であってもよい。AHBはARMLtdカンパニーにより公表されているAMBA仕様バージョン2に導入されているバスプロトコルである。更に別の実施例において、システム相互接続手段18は他のタイプのシステム相互接続手段18であってもよい。
【００１５】
動作の際、プロセッサ12は、読取アクセス、書込アクセス又は読取及び書込双方のアクセスの際にメモリ14にアクセスするデータ処理動作(例えば、ソフトウェアを実行すること)を行うことが可能である。プロセッサ12は当該技術分野で既知の動作を行い、この点について更には説明しない。プロセッサ12がメモリ14にアクセスしなければならない場合(読取又は書込アクセスを行う場合)、プロセッサ12はアクセス要求信号を生成し、そのアクセス要求信号をシステム相互接続手段18を通じてメモリ14に提供する。アクセス要求信号は、メモリ14内のアドレスロケーションに対応するアクセスアドレスと、アクセス要求が読取アクセスであるか又は書込アクセスの要求であるかを示すリード/ライト(R/W)インジケータとを含んでいる。アクセス要求信号が書込アクセス要求に対応していた場合、プロセッサ12はアクセス要求の一部として書き込みデータも提供する。このアクセス要求はメモリ14内のインタフェース回路22により受信される。プロセッサ12からのアクセス要求に応答して、インタフェース回路22はメモリ検査回路16と通信し、アクセス要求が、メモリ検査回路16により現在検査されている最中のアドレスロケーションに対応しているか否かを判定し、それに応じて応答する。一実施例において、インタフェース回路22は、アクセス要求信号中のアクセスアドレスをアクセスアドレスとしてプロセッサ12からメモリ検査回路16へ通知し、アクセスアドレス25に対応するR/Wインジケータ29をメモリ検査回路16に提供する。アクセスアドレス25が現在検査されている最中のアドレスロケーションに対応する場合、(R/Wインジケータ29が読取アクセスを示していた場合)(メモリ14ではなく)メモリ検査回路16がスヌープデータ(snooped  data)23として読取データをインタフェース回路22に返すことができ、或いは(R/Wインジケータ29が書込アクセスを示していた場合)、インタフェース回路22からスヌープデータ23として書込データを受信できる。従ってスヌープデータ23はアクセスアドレス25が読取アクセス又は書込アクセスに対応しているか否かに応じてメモリ検査回路16へ又はメモリ検査回路16から提供可能である。読取アクセスの場合、インタフェース回路22はスヌープデータ23をプロセッサ12に通知することができる。一方、アクセスアドレス25が現在検査されている最中のアドレスロケーションに対応していなかった場合、メモリ14はプロセッサ12からのアクセス要求に応答し、従来技術と同様に、書き込みデータを受信する又は読み取りデータを提供することができる。メモリ検査回路16によるスヌープ処理の更なる詳細については図2-6及び8を参照しながら後述する。
【００１６】
また、メモリ検査回路16はメモリ14に相互通信可能に結合され、メモリ14に関するメモリ検査を実行する。このメモリ検査の詳細については図2及び図7を参照しながら後述する。
【００１７】
図2は、本発明の一形態によるメモリ検査回路16の一部に関するブロック図を示す。図2はアドレスアンダーテスト(AUT)レジスタ又は検査アドレスレジスタ32、1つ以上のレジスタ34、検査制御回路30及びスヌープ処理回路36を示す。検査制御回路30はAUTレジスタ32及びレジスタ34の各々に双方向通信可能に結合され、スヌープ処理回路36にも結合されている。スヌープ処理回路36はAUTレジスタ32及びレジスタ34に双方向通信可能に結合されている。一実施例において、レジスタ34は0ないしN-1のN個のエイリアスレジスタ(alias  register)を含み、Nは0より大きな任意の整数である。従って一実施例においてレジスタ34はエイリアスレジスタとして言及されてもよい。スヌープ処理回路36はAUT比較器38、ミス判定回路42、エイリアス比較器(0:N-1)40、及びスヌープデータセレクタ(選択器)44を含む。AUT比較器38及びエイリアス比較器(0:N-1)40の各々はアクセスアドレス25を受信する。AUT比較器38は検査制御回路30からのアドレスアンダーテスト(AUT)又は検査アドレス51も受信し、エイリアス比較器(0:N-1)40は検査制御回路30からのエイリアスアドレス(alias  address)47を受信する。代替実施例において、エイリアス比較器(0:N-1)40は、図示とは異なりAUT51を受信し、それによりエイリアスアドレス47を推測してもよい。AUT比較器38はヒットインジケータ52をミス判定回路42及びスヌープデータセレクタ44に提供し、エイリアス比較器(0:N-1)40はヒットインジケータ(0:N-1)54をミス判定回路42及びスヌープデータセレクタ44に提供する。ミス判定回路42はスヌープミスインジケータ27をインタフェース回路22及びスヌープデータセレクタ44に提供する。スヌープデータセレクタ44は、ヒットインジケータ52及びヒットインジケータ54を受信し、AUTレジスタ32及びレジスタ34の各々に双方向通信可能に結合され、スヌープデータ23を双方向に通信する。スヌープデータセレクタ44はR/Wインジケータ29を受信する。検査制御回路は検査アドレス46をメモリ14に提供する。検査制御回路30は検査データ48及び検査制御信号50をメモリ14と通信する。
【００１８】
動作の際、検査制御回路30はAUTレジスタ32及びレジスタ34を使用してメモリ14の一部分を検査する。スヌープ処理回路36は、検査制御回路30がメモリ14の検査を継続している最中に、たとえ検査中の部分であったとしても、システム10内のどこか(例えば、プロセッサ12)で実行するデータ処理動作がメモリ14にアクセスし続けることを可能にする。スヌープ処理回路36は、ダイレクトメモリアクセス(DMA)処理部のような他の相互接続マスタがメモリ14にアクセスしている最中でも、メモリ14のメモリ検査を継続できるようにする。従って一実施例においてメモリ検査回路16は、メモリ14の検査を目立たないようにし、通常の動作中に他の相互接続マスタによるメモリ14へのアクセスに及ぼす影響を最小限にする。
【００１９】
先ず、検査制御回路30の処理は図7のフローチャートを参照しながら具体的に説明される。図7は、メモリ14をテストする本発明の一形態による方法を示すフロー60を示す。図7において、フロー60はブロック62から始まり、第1アドレスがAUT51として生成される。従って一実施例において検査制御回路30はAUT51を生成し、AUT51はメモリ14内の検査されるアドレスロケーションに対応する。検査制御回路30はAUT51をスヌープ処理回路36に提供する。図7において、フローはブロック64に進み、AUT51の中身(内容又はコンテンツ)がメモリ14から読み取られ、AUTレジスタ32に保存される。従ってAUTレジスタ32はAUT51で指定されているメモリ14の内容を保存しており、そのロケーションの検査の際にそのロケーションの元の値を保存する。
【００２０】
次にフローはブロック66に進み、メモリ14の一部に対応する複数のアドレスが生成される。この複数のアドレスは検査制御回路30により生成可能である。一実施例において、生成される複数のアドレスはAUT51のアドレスエイリアスに対応する。すなわち一実施例において複数のアドレスの各アドレスはAUT51に関連している。例えば、一実施例において複数のアドレスの各アドレスは、AUT51に対して1ビット反転されたアドレスを有する。従って、AUT51がNビットアドレスであった場合、N個のアドレスの各々はAUT51の1ビットを反転した異なるアドレスを有するように生成可能である。一実施例において、これらのエイリアスアドレスはメモリ検査に使用される。なぜなら、アドレスがフェイル(fail)であった場合又は適切でない場合、通常それは1つのアドレスビットに起因するからである。従ってアドレスアンダーテスト(検査中のアドレス)と1ビットしか相違しないこれら全てのアドレスを検査することで、メモリ14に対するほぼ完全な検査を達成できる。複数の生成されたアドレスはエイリアスアドレス47としてエイリアス比較器(0:N-1)40に提供される。
【００２１】
例えば、AUT51が%00110001のような8ビットアドレスであった場合、AUT51のこの値に対する複数のエイリアスアドレスは:
%00110000(AUT51の最終ビットに関し、最終ビットが反転されている)、
%00110011(AUT51の最後から2番目に関し、最後から2番目のビットが反転されている)、
%00110101(AUT51の最後から3番目に関し、最後から3番目のビットが反転されている)、
%00111001(AUT51の最後から4番目に関し、最後から4番目のビットが反転されている)、
%00100001(AUT51の最後から5番目に関し、最後から5番目のビットが反転されている)、
%00010001(AUT51の最後から6番目に関し、最後から6番目のビットが反転されている)、
%01110001(AUT51の最後から7番目に関し、最後から7番目のビットが反転されている)、及び
%10110001(AUT51の最後から8番目に関し、最後から8番目のビットが反転されている)を含む。従って、複数のエイリアスアドレスの各々はAUT51と1ビットしか相違しないことに留意を要する。
【００２２】
図7を参照するに、フローはブロック66からブロック68に進み、ブロック66で生成された複数のアドレス各々の内容がメモリ14から読み取られ、レジスタ34の中の対応するレジスタに保存又は格納される。従ってAUT51が8ビットアドレスである上記の例の場合、8つのエイリアスアドレス各々の内容がメモリ14から読み取られ、レジスタ34の中の対応するレジスタに保存される。例えば、%00110001のAUT値の場合、
%00110000のロケーションにおけるメモリ14の内容がエイリアスレジスタ0に保存され、
%00110011のロケーションにおけるメモリ14の内容がエイリアスレジスタ1に保存され、
%00110101のロケーションにおけるメモリ14の内容がエイリアスレジスタ2に保存され、以下同様である。この例の場合、レジスタ34は8つのエイリアスレジスタ(エイリアスレジスタ0ないしエイリアスレジスタ7)を含む。
【００２３】
図7を更に参照するに、フローはブロック70に進み、AUT51及び生成された複数のアドレス(例えば、エイリアスアドレス)についてメモリ検査がメモリ14において実行される。検査制御回路30は、検査データ48、検査制御情報50及び検査アドレス46を必要に応じてメモリ14と通信して検査を実行し、当該技術分野で既知の任意の検査方法がメモリロケーションを検査する際に使用されてよい(検査前にそのロケーションにあった元の内容はAUT32及びレジスタ34に保存されている)。例えば、検査制御回路30はこれらのロケーションを検査する際にAUT51及びエイリアスアドレス47の各アドレスを通じてサイクリックに循環してもよい。或いは他の検査アルゴリズムが使用されてもよい。そしてフローはブロック71に進み、AUTレジスタ32及びレジスタ34の内容がメモリ14の各自対応するロケーションに書き戻される。従ってAUT51及び複数の生成されたアドレスに保存されたメモリ14の一部分について検査が完了した場合、検査制御回路30は、AUTレジスタ32及びレジスタ34に保存したメモリ14の元の値を復元する。そしてフローは判定ブロック72に進み、メモリ14の中で検査すべき更なるアドレスが残っているか否かを判定する。残っていなかった場合、フロー60は終了する。残っていた場合、フロー60はブロック74に進み、AUT51として次のアドレスが生成され、フローはブロック64に戻る。従って一実施例において検査制御回路30はAUT51について新たな値及びメモリ14に対応する複数の新たなアドレスを生成する。検査及び復元の処理が上述したように反復される。
【００２４】
メモリ14の任意の部分が検査制御回路30により検査できることに留意を要する。検査制御回路30は検査アドレス46の任意の値を選択してよい。また、検査制御回路30は、上述したようなエイリアスアドレスを要しない複数のアドレスについて任意のアドレスを生成してもよい。その場合、複数のアドレスは依然として比較器(0:N-1)40に提供される(エイリアスアドレス47であったもの)。従ってレジスタ32及び34は検査されるメモリ14の任意の部分を保持するのに使用可能である(メモリ14内の1つ以上のアドレスロケーションに対応する)。例えば、レジスタ32、34は、各アドレスが単に連続している又は先行するアドレスから一定の距離だけ離れているようなメモリの特定の範囲内の内容を保存するのに使用可能である。或いは、それら(レジスタ)は、アドレスではなく例えば最近アクセスしたアドレスのような時間に関連づけられてもよいし、或いはアクセス頻度又は誤り頻度のような統計値に関連づけられてもよい。また、メモリ14の検査はシステム10の通常動作中の何時行われてもよい。検査は周期的に実行されてもよいし、或いはアイドル時間中に実行されてもよい。メモリ14の特定の部分の検査は様々な期間の間に継続的に実行されてもよい。更に様々なイベントがメモリ14の特定の検査を引き起こしてもよい(契機、起因、動機づけ又はトリガとなってもよい)。
【００２５】
次に、図8及び図3-6を参照しながらスヌープ処理回路36の動作を説明する。スヌープ処理回路36は、メモリ14がプロセッサ12のような相互接続マスタからアクセスできるようにしつつ、(例えば、AUT51及び対応するエイリアスアドレス47の場所のような)メモリ14の一部分を検査できるようにする。例えば、プロセッサ12から受信した現在のアクセスアドレス(アクセスアドレス25)が検査されるメモリ14の部分の何らかのアドレスを合致していた場合、スヌープ処理回路36は、それが読み取りアクセスであった場合、合致するアドレスに対応するレジスタ32又は34の中の何れかの中の適切な読み取りデータをプロセッサ12に提供し、或いはそれが書き込みアクセスであった場合、合致するアドレスに対応するレジスタ32又は34の何れかに書き込むデータをプロセッサ12から受信することができる(その書き込みデータは図7のブロック71において検査制御回路30によりメモリ14に後に復元される)。
【００２６】
図8は本発明の一形態によるスヌープ処理回路36の動作を示すフローチャート80を示す。フローチャート80はメモリ14の検査の最中に実行可能であることに留意を要する(例えば、図7のフロー80の最中や、フロー60と少なくとも一部が同時に行われてもよい)。フロー80はブロック82から始まり、プロセッサ12はプロセッサ12におけるデータ処理の実行中(例えば、ソフトウェアの実行中)にメモリ14にアクセスするためのアクセスアドレス25を生成し、そのアクセスアドレスをシステム相互接続手段18に提供する。フローはブロック84に進み、メモリ14のインタフェース回路22がアクセスアドレス25を受信し、フローはブロック86に進み、インタフェース回路22がアクセスアドレス25をスヌープ処理回路36に提供する。
【００２７】
次にフローはブロック88に進み、スヌープ処理回路36が、アクセスアドレス25はAUT51に合致するか否かを判定し、それに応じてヒットインジケータ54を生成する。例えば、図2において、AUT比較38は検査制御回路30からAUT51を受信し、インタフェース回路22を通じてアクセスアドレス25を受信し、それらを比較して2つのアドレスが合致するか否かを判定する。合致していた場合、ヒットインジケータ52は合致を示すようにアサートされる(設定される)。合致していなかった場合、ヒットインジケータ52は合致が生じていないことを示すようにネゲートされる(すなわち、ミスが生じていることが設定される)。ヒットインジケータ52はミス判定回路42に提供される。AUT比較器38の一例が図3に示されている。一実施例において複数の排他的NOR(XNOR)ゲートが使用され、XNORゲートの各々がAUT51の1ビット及びアクセスアドレス25の1ビットを受信している。従って一実施例において、AUT51のビット0ないしN-1を第1の入力でそれぞれ受信し、アクセスアドレス25のビット0ないしN-1を第2の入力でそれぞれ受信するN個のXNORゲートが存在する。XNORゲート全ての出力はN入力ANDゲートに提供され、ヒットインジケータ52を出力する。従って全てのアドレスビットが合致していた場合、ヒットインジケータ52がアサートされる。しかしながらAUT51及びアクセスアドレス25の内の1つ以上のアドレスビットが合致していなかった場合、1つ以上のXNORゲートの出力はネゲートされ、ヒットインジケータ52はネゲートされる。ヒットインジケータ52を生成するAUT比較器38を実現する任意の論理設計が使用されてよいことに留意を要する。
【００２８】
図8を参照するに、フローはブロック88からブロック90に進み、スヌープ処理回路36はアクセスアドレス25が生成された複数のアドレス(例えば、エイリアスアドレス47)の内の何れかに合致するか否かを判定し、それに応じてヒットインジケータ[0:N-1]54を生成する。例えば図2の例の場合、エイリアス比較器(0:N-1)は、生成された複数のアドレス(エイリアスアドレス47)を検査制御回路30から受信し、インタフェース回路22を介してアクセスアドレス25を受信し、生成されたエイリアスアドレス47のエイリアスアドレス各々をアクセスアドレス25と比較し、何れかのエイリアスアドレスがアクセスアドレス25に合致しているか否かを判定し、その判定に応じてヒットインジケータ[0:N-1]54を提供する。各々の比較において、エイリアス比較器(0:N-1)はヒットインジケータ[0:N-1]54の内の対応するものを提供し、全てのヒットインジケータ54がミス判定回路54に提供される。例えば、上記の例の場合のようにアクセスアドレス25がNビットアドレスであった場合、検査制御回路30はN個のエイリアスアドレスを生成する(エイリアスアドレス0ないしエイリアスアドレスN)。N個のエイリアスアドレス25の内の何れかがアクセスアドレス25に合致していた場合、ヒットインジケータ[0:N-1]54の内の対応するヒットインジケータがアサートされる。
【００２９】
図4及び図5は、本発明の一形態によるエイリアス比較器(0:N-1)の一部を示す。図4はヒットインジケータ[1]54がどのように生成されるかの一例を示し、図5はヒットインジケータ[2]54がどのように生成されるかの一例を示す。図4はN-1個のXNORゲートと1つの排他的OR(XOR)ゲートとを含む例を示し、AUT51のビット0ないしN-1を第1の入力でそれぞれ受信し、アクセスアドレス25のビット0ないしN-1を第2の入力でそれぞれ受信する様子を示す。図4に示す例の場合、1つのXORゲートが入力のアドレスビット1を受信するよう結合されている(例えば、AUT51[1]及びアクセスアドレス25[1])。全てのXNORゲート及びXORゲートの出力はN入力ANDゲートに与えられ、ヒットインジケータ[1]54がANDゲートの出力において与えられエイリアスアドレス1(エイリアスアドレスの元の内容はレジスタ34のエイリアスレジスタ1に保存されている)がアクセスアドレス25に合致しているか否かを示す。目下の例の場合、エイリアスアドレス1はAUT51に対応しているが、アドレスビット1(AUT51[1])は反転されていることに留意を要する。従ってAUT51[0及び2:N-1]がアクセスアドレス25[0及び2:N-1]に合致している場合及びAUT51[1]がアクセスアドレス25[1]に関して反転されている場合、ヒットインジケータ[1]54がアサートされる。しかしながら、エイリアスアドレス1及びアクセスアドレス25の間でビット1以外の1つ以上のアドレスビットが合致していなかった場合、或いはアドレスビット1が反転したものでなかった場合、1つ以上のXNORゲート又は1つのXORゲートの出力はネゲートされ、ヒットインジケータ[1]54がネゲートされる。図5はN-1個のXNORゲート及び1つのXORゲートを含む例を示し、エイリアスアドレス2のビット0ないしN-1を第1の入力においてそれぞれ受信し、アクセスアドレス25のビット0ないしN-1を第2の入力においてそれぞれ受信している。図5に示す例の場合、図4に示す例と同様にXORゲートがビット2に関連している。従ってXORゲートは入力のアドレスビット2(AUT51[2]及びアクセスアドレス25[2])を受信するように結合されている。全てのXNORゲート及びXORゲートの出力はN入力ANDゲートに与えられ、ヒットインジケータ[2]54がANDゲートの出力において提供され、エイリアスアドレス2がアクセスアドレス25に合致するか否かを示す(エイリアスアドレスの元の内容はレジスタ34のエイリアスレジスタ2に保存されている)。目下の例の場合エイリアスアドレス2はAUT51に対応するがAUT51[2]のアドレスビット2は反転されていることに留意を要する。従ってAUT51[0:1及び3:N-1]がアクセスアドレス25[0:1及び3:N-1]に合致する場合であって、AUT51[2]がアクセスアドレス25[2]に関して反転されている場合、ヒットインジケータ[2]54がアサートされる。しかしながら、エイリアスアドレス2及びアクセスアドレス25の間でビット2以外の1つ以上のアドレスビットが合致していなかった場合、或いはアドレスビット2が反転したものでなかった場合、1つ以上のXNORゲート又は1つのXORゲートの出力はネゲートされ、ヒットインジケータ[2]54がネゲートされる。
【００３０】
ヒットインジケータ[0及び3:N-1]の各々を生成する際に同じ論理設計が使用されてもよい。代替実施例において、ヒットインジケータ52を生成するAUT比較器38を実現する任意の論理設計が使用されてよいこと、及びヒットインジケータ54を生成する比較器40を実現する任意の論理設計が使用されてよいことに留意を要する。例えば、図4及び図5に示す例の場合において、AUT51がエイリアス比較器40に入力として提供されてもよく、エイリアスアドレス1及びエイリアスアドレス2を比較40による比較の際に明示的に提供するのではなく、XORゲートがエイリアスアドレスの特定のビットを反転する処理に使用されてもよい。その場合、図2においてエイリアスアドレス47の代わりにAUT51が検査制御回路30からエイリアス比較器40に提供されてよいことに留意を要する。しかしながら代替例において、エイリアス比較器40はエイリアスアドレス0-エイリアスアドレス1(エイリアスアドレスとして)の各々を受信し、各エイリアスアドレスをアクセスアドレス25と直接比較する。この場合、図4において、XNORゲートのみが使用され、各XNORゲートはエイリアスアドレス1のビット0ないしN-1(エイリアスアドレス1[0:N-1])を第1の入力でそれぞれ受信し、アクセスアドレス25のビット0ないしN-1を第2の入力でそれぞれ受信する。同様に、図5の代替例において、XNORゲートのみが使用され、各XNORゲートはエイリアスアドレス2のビット0ないしN-1(エイリアスアドレス2[0:N-1])を第1の入力でそれぞれ受信し、アクセスアドレス25のビット0ないしN-1を第2の入力でそれぞれ受信する。或いは他の論理設計を使用してヒットインジケータ54を生成してもよい。
【００３１】
図8を参照するに、フローはブロック90から92に進み、スヌープ処理回路36は、ヒットインジケータ52及びヒットインジケータ54に基づいてスヌープミスインジケータ27を生成する。一実施例において、全くヒットが生じなかった場合(アクセスアドレス25がAUT51に合致せず、かつエイリアスアドレス47のどれにも合致しなかった場合)、ミスを示す(合致が生じていないことを示す)スヌープミスインジケータ27がアサートされる。ヒットが生じた場合(アクセスアドレス25がAUT51に合致した場合、又は何れかのエイリアスアドレス47に合致した場合)、スヌープミスインジケータ27はネゲートされ、ヒットが生じていること(合致が生じていること)を示す。従ってミス判定回路42はヒットインジケータ52及びヒットインジケータ54を受信し、それに応じてスヌープミスインジケータ27を生成し、そのインジケータをメモリ14のインタフェース回路22に提供する。図6はミス判定回路42の一例を示し、ヒットインジケータ52及びヒットインジケータ[0:N-1]54各々を受信するN+1個のNORゲートを含む例を示す。これらの入力の何れかがアサートされていた場合、スヌープミスインジケータ27はネゲートされ、生じている合致を表現する。しかしながら全ての入力がネゲートされていた場合、スヌープミスインジケータ27がアサートされ、合致は一切生じていないことを表現する。或いはミス判定回路42を実現する任意の論理設計が使用されてもよい。例えばミスインジケータは必ずしもヒットインジケータから生成されなくてもよい。
【００３２】
図8を参照するに、フローはブロック92から判定ブロック94に進み、スヌープミスインジケータ27がミスを示しているか否かが判定される。ミスを示していた場合、フローはブロック96に進み、メモリ14はアクセスアドレス25に応じてアクセスされる。すなわち、スヌープミスインジケータ27がミスを示していた場合、合致は一切生じておらず、アクセスアドレス25は現在検査されている最中ではないメモリ14のアドレスロケーションに対応するので、メモリ14は読み取りデータを提供できる又は書き込みデータを受信できる。しかしながらスヌープミスインジケータ27がミスを示していなかった場合、フローは判定ブロック94からブロック98に進み、アクセスアドレス25に対応する読み取りデータを提供する又は書き込みデータを受信するために、ヒットインジケータ52及び54に対応するレジスタ34の何れか又はレジスタ32の内容が使用される。アクセスアドレス25が書込アクセスアドレスであった場合(何れであるかはR/Wインジケータ29により示されている)、スヌープデータ23(プロセッサ12による書込アクセスリクエストとともに書き込みデータが提供される)は、ヒットインジケータ52及び54のアサートされたヒットインジケータに対応するAUTレジスタ32及びレジスタ34の中の選択されたレジスタに保存される。アクセスアドレスが読み取りアクセスアドレス(何れであるかはR/Wインジケータ29により示されている)であった場合、読み取りアクセスリクエストに応じて、スヌープデータ23は選択されたレジスタからプロセッサ12へ読み取りデータとして提供される。選択されるレジスタは、AUT51又はエイリアスアドレス47の何れがアクセスアドレス25に合致しているか(すなわち、何れのアドレスがヒットをもたらしているか)に基づいて選択される。従って図2の例においてスヌープデータセレクタ44は、スヌープヒットに応答して、読み取りアクセスの場合、レジスタ32又はレジスタ34からプロセッサ12へ相互接続回路22を介してデータをスヌープデータ23として適切にルーティングすることができ、書込アクセスの場合はレジスタ32又はレジスタ34の適切なレジスタへスヌープデータ23をルーティングすることができる。一実施例において、スヌープデータセレクタ44は、スヌープミスインジケータ27がネゲートされていること(スヌープヒットを示していること)に応答して、ヒットインジケータ52及びヒットインジケータ54を使用して、レジスタ32又はレジスタ34の内のどれがスヌープヒットに対応しているかを判定する。例えば、アクセスアドレス25がAUT51に合致していたことに起因してヒットインジケータがアサートされた場合、AUTレジスタ32がヒットに対応し、R/Wインジケータが書込を示していた場合はスヌープデータ23がAUTレジスタ32にルーティングされ、あるいはR/Wインジケータが読込を示していた場合はAUT32の中身がスヌープデータ23としてスヌープデータセレクタ44によって提供される。例えば、何れかのヒットインジケータ(0:N-1)がアサートされていた場合、エイリアスレジスタ(0:N-1)の内の対応するものがヒットに対応し、R/Wインジケータ29が書込を示していた場合、スヌープデータ23がエイリアスレジスタ(0:N-1)の内の対応するものにルーティングされ、R/Wインジケータ29が読込を示していた場合、エイリアスレジスタ(0:N-1)の内の対応するものの中身がスヌープデータ23としてスヌープデータセレクタ44により提供される。
【００３３】
図8のフロー80はシステム10の中で図7のフロー60と同時に実行されてもよいことに留意を要する。すなわち、検査制御回路30がメモリ14(又はシステム10の他の任意のメモリ)内の特定のメモリロケーションの検査を行っている場合でさえ、プロセッサ12(又は他の任意の相互接続されたマスタ)はアクセスアドレスを生成し続けることができ、そのアクセスアドレスについて、同時に検査されている最中の特定の同じメモリロケーションをアドレス指定できる。AUT比較器38、エイリアス比較器40及びミス判定回路42は、アクセスアドレス25がAUTに合致しておらず且つ何れのエイリアスアドレスにも合致していなかった場合にミスを示すスヌープミスインジケータ27を出力する論理ブロックに統合されてもよいことに留意を要する。例えば一実施例においてヒットインジケータ52又はヒットインジケータ54が明示的に生成されなくてもよい。また、スヌープミスインジケータはスヌープヒットインジケータおして実現されてもよいし、或いはスヌープヒット/ミスインジケータとして実現されてもよい。
【００３４】
スヌープ処理回路36はテストされている最中にメモリ14を使用可能にすることに留意を要する。すなわち、プロセッサ12又は他の何らかの相互接続マスタ(例えば、DMA)が、検査されている最中のメモリ14内の特定のメモリロケーションに対するアクセスリクエストを生成していた場合、スヌープ処理回路36はレジスタ32又はレジスタ34の内の何れかによりそのアクセスリクエストに応じることができる。アクセスリクエストが、現在検査されている最中ではないメモリ14のメモリロケーションに関するものであった場合、メモリ14はそのアクセスリクエストに応じることができる。従ってレジスタ32、レジスタ34及びスヌープ処理回路36を通じて、検査されている部分にアクセスすることを要する動作に対して最小限の影響とともに、メモリ14を検査することが可能である。更に、スヌープ処理回路36のようなスヌープ処理回路は、システム10内の任意の数のメモリについて使用可能であり、単独のメモリとともに使用する例に限定されないことに留意を要する。
【００３５】
一実施例において、メモリ14は(スヌープミスインジケータ27が事実上ミスを示すようになるまで応答を待つのではなく)アクセスアドレスと同時に応答してもよい。その場合、スヌープミスインジケータ27はインタフェース回路22により使用され、応答が正しいか否かを検査する。例えば、読取アドレスの場合において、スヌープミスインジケータ27がスヌープヒットを示していた場合、インタフェース回路22は、(そのメモリロケーションが検査されている最中であるので)メモリ14が読み取りデータに応答して別のデータ(、(元のデータではないデータ)を提供することを知っており且つスヌープデータ23が正しい読み取りデータであることを知っている。書込アクセスの場合において、スヌープミスインジケータ27がスヌープヒットを示していた場合、インタフェース回路22は、メモリの検査により破壊されるのでメモリにデータを書き込むことができないことを知っており且つ書き込みデータはスヌープデータ23としてレジスタ32、34の内の適切なレジスタに提供されるべきことを知っている。
【００３６】
本発明を実現する装置は、多くの部分に関し、当該技術分野で既知の電子部品及び回路により形成されるので、上述したように必要と思われる範囲を超えて回路を詳細には説明しない。これは本発明の理解及び前提となる概念の理解にとっても相応しいことであり、かつ本発明の教示内容を曖昧にしないようにするためでもある。
【００３７】
上記の実施形態は多種多様な情報処理システムを用いて適切に実現可能である。例えば図1、図2及びその説明は例示的な情報処理アーキテクチャを議論していたが、その例示的なアーキテクチャは本発明の様々な形態を議論するのに有用な参考を提供するために過ぎないものである。当然に、そのようなアーキテクチャは説明の便宜上簡明化されており、本発明により使用されてもよい多種多様な適切なアーキテクチャの内の一例に過ぎない。論理ブロック同士の間の境界は単なる説明の便宜上のものに過ぎず、代替実施形態においては複数のブロックが統合されてもよいし、或いは代替的に様々な論理ブロック又は回路要素に機能を分散させてもよいことを当業者は認めるであろう。
【００３８】
従って、本願において説明されているアーキテクチャは単なる一例に過ぎず、実際には同様な機能を発揮できる多種多様なアーキテクチャが実現可能であることを、理解すべきである。抽象的ではあるが依然として明確な意味において、同一の機能を達成する任意の要素又は要素の配置は、所望の機能が達成されるように有効に「関連」づけられている。従って特定の機能を実現するように結合されている任意の2つの要素は、アーキテクチャ又は内部要素によらず、所望の機能が達成されるように互いに「関連」付けられている。同様に、そのように関連づけられた任意の2つの要素は互いに「動作可能に接続」或いは「動作可能に結合」され、所望の機能を達成する。
【００３９】
例えば、一実施例において、システム10に例示された要素は1つの集積回路に設けられた回路でもよいし、或いは同じ装置の中に設けられた回路でもよい。或いはシステム10は任意の数の集積回路を含んでもよいし、或いは互いに相互接続された任意の数の個別素子を含んでいてもよい。例えば、メモリ14は、プロセッサ12と同じ集積回路上にあってもよいし、別個の集積回路上にあってもよいし、システム10の他の要素から別個独立した他の周辺素子又はスレーブ素子の中にあってもよい。他のモジュール20は別個の集積回路又は装置に設けられていてもよい。
【００４０】
更に当業者は上記の動作機能同士の間の境界が単なる例示に過ぎないことを理解しているであろう。複数の動作の処理が1つの処理に統合されてもよいし、及び/又は1つの処理が追加的な複数の処理に分散されてもよい。更に代替実施例において特定の動作に関する複数のインスタンスが使用されてもよく、他の実施形態において処理の順序は異なっていてもよい。
【００４１】
一実施例においてシステム10はパーソナルコンピュータシステムのようなコンピュータシステムである。他の実施形態においては他の形式のコンピュータシステムが使用されてもよい。コンピュータシステムは、独立したコンピュータ処理能力を1人以上のユーザに与えるように設計可能な情報処理システムである。コンピュータシステムは、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、ノートパッド、パーソナルディジタルアシスタント、電子ゲーム、車両組み込みシステム、その他の内蔵システム、セルラ電話及び他の様々な無線装置等のような多種多様な形態に見受けられるものでよいが、これらに限定されない。典型的なコンピュータシステムは少なくとも1つの処理ユニット、関連するメモリ及び多数の入力/出力(I/O)装置を有する。
【００４２】
コンピュータシスステムは、プログラムに従って情報を処理し、I/O装置を通じて結果の出力情報を提供する。プログラムは特定のアプリケーションプログラム及び/又はオペレーティングシステムのような命令のリストである。コンピュータプログラムは典型的にはコンピュータ読取可能な媒体に内的に保存され、或いはコンピュータ読取可能な伝送媒体を通じてコンピュータシステムに送信される。コンピュータプロセスは、典型的には、実行(処理)プログラム又は一部のプログラム、現在のプログラム値及び状態情報、及び/又はプロセスを管理するオペレーティングシステムにより使用されるリソースを含む。親プロセスは他の子プロセスを生じ、親プロセスの全体的な機能の実行を支援する。親プロセスは子プロセスを個別に生成し、親プロセスの全体的な機能の一部を実行するように子プロセスを生成するので、子プロセス(及び孫プロセス等)により実行される機能はしばしば親プロセスにより実行されるものとして説明されてもよい。
【００４３】
本発明は特定の実施例を参照しながら説明されてきたが、様々な修正例及び変形例が添付の特許請求の範囲に記載された本発明の範囲から逸脱することなくなされてもよい。従って明細書及び図面は限定的な意味ではなく例示的に解釈されなければならず、そのような変形例は本発明の範囲内に包含されるように意図されている。特定の実施例に関連して説明された利点、効果又は手段は何れも、特許請求の範囲の全部又は一部にとって重要な、必須の又は本質的な特徴又は要素として解釈されてはならない。
【００４４】
本願において使用されている「結合され」という要素は直接的な結合や機械的な結合に限定して解釈されてはならない。
【００４５】
更に、本願において使用されている「或る」又は「ある」という用語は1つ又は1つより多い数について使用される。特許請求の範囲における「少なくとも1つ」及び「1つ以上」のような前置きの言葉は、不定の「或る」又は「ある」により規定される他の請求項における前置きは、そのような構成要素を含む何らかの特定の請求項を、そのような要素を1つしか含まない発明に限定するように解釈されてはならず、同一の請求項が「1つ以上の」又は「少なくとも1つ」及び「或る」又は「ある」のような不定の用語を含んでいる場合であってもそのように解釈してはならない。同様なことが限定的な用語についても成立する。
【００４６】
断りがない限り、「第1」及び「第2」のような用語はそのような用語が言及している要素同士を任意に区別するために使用されている。すなわち、これらの用語はそれらの要素の時間的な又はその他の優先順位を必ずしも示すものではない。
【００４７】
以下、本発明の実施形態を例示的に列挙する。
【００４８】
［第1項]
メモリを検査する方法であって、
第1のアドレスを検査アドレス(AUT)として生成するステップと、
前記メモリにおける前記AUTの内容にアクセスし、該内容を検査アドレス(AUT)レジスタに保存するステップと、
前記メモリの一部に対応する複数のアドレスを生成するステップと、
前記メモリにおける前記複数のアドレス各々の内容にアクセスし、該内容を複数のレジスタに保存するステップと、
前記AUT及び前記複数のアドレスについて前記メモリのメモリ検査を実行するステップと、
相互接続マスタにおけるアクセスアドレスを生成するステップと、
メモリ検査回路のスヌープ処理回路において前記アクセスアドレスを受信するステップと、
前記アクセスアドレスが前記AUTに合致するか否かを判定し、該判定に応じて第1のヒットインジケータを生成するステップと、
前記アクセスアドレスが前記複数のアドレスの内の少なくとも1つに合致するか否かを判定し、該判定に応じて複数のヒットインジケータを生成するステップと、
スヌープ処理回路においてスヌープミスインジケータを生成するステップと、
前記アクセスアドレスが前記AUT及び前記複数のアドレスの少なくとも1つに合致していないことに起因して前記スヌープミスインジケータがミスを示しているか否かを判定するステップと、
前記スヌープミスインジケータがミスを示していた場合に、前記アクセスアドレスに応じて前記メモリにアクセスするステップと、
前記スヌープミスインジケータがミスを示していなかった場合、前記AUTレジスタ及び前記複数のレジスタから成る群に属しかつ前記第1のヒットインジケータ及び前記複数のヒットインジケータの少なくとも1つに基づいて選択することに決定された選択レジスタに、前記相互接続マスタからのスヌープデータを保存する、或いは前記AUTレジスタ及び前記複数のレジスタより成る群から選択されたレジスタから前記相互接続マスタへの前記スヌープデータの読み取りを行うステップと
を有する、メモリを検査する方法。
【００４９】
［第2項]
前記複数のアドレスが前記AUTのエイリアスであり、前記複数のレジスタがエイリアスレジスタである、第1項記載の方法。
【００５０】
［第3項]
前記メモリの検査を実行した後に前記AUTレジスタ及び前記複数のレジスタの内容を前記メモリに書き込むステップを更に有する第1項記載の方法。
【００５１】
［第4項]
前記スヌープ処理回路において前記アクセスアドレスを受信すること、
前記アクセスアドレスが前記AUTに合致するか否かを判定すること、
前記アクセスアドレスが前記複数のアドレスの内の少なくとも1つに合致するか否かを判定すること、
前記スヌープ処理回路においてスヌープミスインジケータを生成すること、
前記スヌープミスインジケータがミスを示していた場合に、前記アクセスアドレスに応じて前記メモリにアクセスすること、及び
前記スヌープミスインジケータがミスを示していなかった場合に、前記選択レジスタに前記接続マスタからのスヌープデータを保存すること、或いは前記選択されたレジスタから前記相互接続マスタへの前記スヌープデータの読み取りを行うことの全てが、
前記AUT及び前記複数のアドレスについて前記メモリを検査している最中に前記メモリにおいて実行される、第1項記載の方法。
【００５２】
［第5項]
前記メモリにおける前記AUTの内容にアクセスする際に、前記メモリにおける前記AUTの内容を読み取り、前記メモリにおける前記複数のアドレス各々の内容にアクセスする際に、前記メモリにおける前記複数のアドレス各々の内容を読み取る、第1項記載の方法。
【００５３】
［第6項]
前記相互接続マスタにおける前記アクセスアドレスを生成する前記ステップが、前記相互接続マスタにおけるソフトウェアの実行中に前記メモリにアクセスした際に行われる、第1項記載の方法。
【００５４】
［第7項]
前記スヌープ処理回路において前記アクセスアドレスを受信する前記ステップにおいて、
前記メモリのインタフェース回路内の前記アクセスアドレスを、システム相互接続を通じて、プロセッサである前記相互接続マスタから受信し、
前記インタフェース回路から前記スヌープ処理回路へ前記アクセスアドレスを提供する、第1項記載の方法。
【００５５】
［第8項]
前記メモリにおいて次のアドレスを検査すべきか否かの判定に応じて、前記AUTとして次のアドレスを生成するステップを更に有する、第1項記載の方法。
【００５６】
［第9項]
前記スヌープミスインジケータを生成することが、前記第1のヒットインジケータ及び前記複数のヒットインジケータに基づいている、第1項記載の方法。
【００５７】
［第10項]
メモリを検査する方法であって、
前記メモリの一部に対応する複数のアドレスを生成するステップと、
前記メモリの前記複数のアドレス各々の内容を読み取り、前記複数のアドレス各々の該内容をストレージ回路に保存するステップと、
前記複数のアドレスについてメモリ検査を実行するステップと
を有し、前記複数のアドレスについて前記メモリ検査を実行する最中に、当該方法は、
相互接続マスタにより生成されかつ前記メモリ内の或るアドレスロケーションに対応するアクセスアドレスを、メモリ検査回路内のスヌープ処理回路に送信することで、前記メモリ検査回路にアクセスするステップと、
前記アクセスアドレスが前記複数のアドレスの少なくとも1つに合致するか否かを判定し、該判定に応じてスヌープミスインジケータを生成するステップであって、該スヌープミスインジケータは、前記アクセスアドレスが前記複数のアドレスの少なくとも1つに合致していなかった場合にミスであることを示す、ステップと、
前記スヌープミスインジケータがミスを示していた場合、前記アクセスアドレスに応じて前記メモリにアクセスするステップと、
前記スヌープミスインジケータがミスを示していなかった場合において、前記アクセスアドレスが書込アクセスに対応していた場合に、前記相互接続マスタが前記ストレージ回路の内の選択された部分へ書込データを保存し、或いは前記ストレージ回路の内の選択された前記部分から前記相互接続マスタへ読取データを提供するステップと
を有し、前記ストレージ回路の内の選択された前記部分は、前記複数のアドレスの内のどれが前記アクセスアドレスに合致しているかに基づいて選択されている、メモリを検査する方法。
【００５８】
［第11項]
前記複数のアドレスが、検査アドレス(AUT)及び該AUTのエイリアスである少なくとも1つのアドレスを含む、第10項記載の方法。
【００５９】
［第12項]
前記ストレージ回路が、検査アドレス(AUT)レジスタ及び少なくとも1つのエイリアスレジスタを含む、第11項記載の方法。
【００６０】
［第13項]
前記メモリの検査を実行した後に前記ストレージ回路の内容を前記メモリに書き込むステップを更に有する第12項記載の方法。
【００６１】
［第14項]
前記相互接続マスタによるソフトウェアの実行中に前記相互接続マスタにより前記アクセスアドレスが生成される、第10項記載の方法。
【００６２】
［第15項]
前記スヌープミスインジケータを生成することが少なくとも1つのヒットインジケータに基づいている、第10項記載の方法。
【００６３】
［第16項]
検査アドレス(AUT)の内容及びメモリの一部の内容を保存するストレージ回路とスヌープ処理回路とを有する装置であって、前記スヌープ処理回路は、
前記メモリ内の或るアドレスロケーションに対応するアクセスアドレスを相互接続マスタから受信し、内容が前記ストレージ回路に保存されている前記AUT及び前記メモリの一部のアドレスから成る群中の少なくとも1つに前記アクセスアドレスが合致するか否かを判定し、前記の判定に応じて少なくとも1つのヒットインジケータを生成する複数の比較器と、
内容が前記ストレージ回路に保存されている前記AUT及び前記メモリの一部のアドレスの少なくとも1つに前記アクセスアドレスが合致していなかった場合、ミスであることを示すスヌープミスインジケータを生成するミス判定回路と、
前記スヌープミスインジケータがミスを示していなかった場合において、前記少なくとも1つのヒットインジケータに基づいて、前記相互接続マスタから前記ストレージ回路の内の選択された部分への書込データの保存を実行し、或いは前記ストレージ回路の内の選択された前記部分から前記相互接続マスタへのデータの提供を実行するスヌープデータセレクタと
を有する装置。
【００６４】
［第17項]
前記メモリの前記一部のアドレスは前記AUTのエイリアスであり、前記ストレージ回路は、前記AUTの内容を保存する検査アドレス(AUT)レジスタと前記メモリの前記一部の内容を保存する少なくとも1つのエイリアスレジスタとを有する、第16項記載の装置。
【００６５】
［第18項]
前記複数の比較器が、前記アクセスアドレスは前記AUTに合致しているか否かを判定するAUT比較器と、前記アクセスアドレスは前記AUTの何れかのエイリアスに合致しているか否かを判定する少なくとも1つのエイリアス比較器とを有する、第17項記載の装置。
【００６６】
［第19項]
当該装置が、前記AUTを受信し、前記AUTの内容を前記AUTレジスタに保存し、前記AUTに対応する前記メモリ内のメモリロケーションについて及び前記メモリの一部についてメモリ検査を実行し、該検査を実行した後に前記ストレージ回路の内容を前記メモリに書き込む検査制御回路を更に有する、第17項記載の装置。
【００６７】
［第20項]
前記複数の比較器が前記アクセスアドレスを前記相互接続マスタから受信し、前記ミス判定回路が前記スヌープミスインジケータを生成し、前記データが前記ストレージ回路の選択された前記部分に保存される或いは前記ストレージ回路の選択された前記部分から提供されることが、前記検査制御回路による前記メモリ検査の実行と少なくとも一部同時に行われる、第19項記載の方法。
【図１】
2012524334.tif 000003
【図２】
2012524334.tif 000004
【図３】
2012524334.tif 000005
【図４】
2012524334.tif 000006
【図５】
2012524334.tif 000007
【図６】
2012524334.tif 000008
【図７】
2012524334.tif 000009
【図８】
2012524334.tif 000010
【国際調査報告】
2012524334.tif 000011
2012524334.tif 000012