(57)【要約】【課題】従来の半導体装置では、ハンドシェイク制御により動作する論理回路とマクロとの動作サイクルが長くなる問題があった。【解決手段】本発明にかかる半導体装置の一態様は、論理回路１０と、論理回路１０が出力する制御信号に応じて論理回路１０とのデータの送受信を行い、自マクロ内におけるデータ処理状況に応じて論理回路１０に次命令の発行の許可を知らせる命令発行制御信号ＣＣＮＴ１、ＣＣＮＴｍ、ＣＣＮＴｎを送信する複数のマクロ１１、１ｍ、１ｎと、を有し、複数のマクロ１１、１ｍ、１ｎは、それぞれ、論理回路１０から自マクロへの制御信号の信号遅延時間に応じて命令発行制御信号ＣＣＮＴ１、ＣＣＮＴｍ、ＣＣＮＴｎをデータ処理の完了前に出力し、論理回路１０は、命令発行制御信号ＣＣＮＴ１、ＣＣＮＴｍ、ＣＣＮＴｎに応じて次命令を指示する制御信号を出力する。【選択図】図１
2011159223.tif 000002
【特許請求の範囲】
【請求項１】
論理回路と、
前記論理回路が出力する制御信号に応じて前記論理回路とのデータの送受信を行い、自マクロ内におけるデータ処理状況に応じて前記論理回路に次命令の発行の許可を知らせる命令発行制御信号を送信する複数のマクロと、を有し、
前記複数のマクロは、それぞれ、前記論理回路から自マクロへの前記制御信号の信号遅延時間に応じて前記命令発行制御信号を前記データ処理の完了前に出力し、
前記論理回路は、前記命令発行制御信号に応じて次命令を指示する前記制御信号を出力する半導体装置。
【請求項２】
前記複数のマクロは、前記信号遅延時間がないとした場合に出力される前記命令発行制御信号から前記信号遅延時間に相当する前倒し量を減じた時点に最も近いタイミングで変化するマクロ内で用いられるマクロ内信号を選択して前記命令発行制御信号として出力する請求項１に記載の半導体装置。
【請求項３】
前記複数のマクロは、自マクロが前記命令発行制御信号として用いる前記マクロ内信号を記憶する命令設定回路を有する請求項２に記載の半導体装置。
【請求項４】
前記複数のマクロは、異なる前記マクロ内信号を前記命令発行制御信号に設定する複数の設定値を有し、
前記論理回路は、前記複数のマクロのうちテスト対象とするテスト対象マクロに対して前記複数の設定値のうちいずれか１つを選択するテスト信号を出力し、
前記テスト対象マクロは、前記テスト信号に応じた設定値に基づきテスト命令発行制御信号を出力し、
前記論理回路は、前記制御信号を出力してから前記テスト命令発行制御信号が到達するまでの時間を判定し、
前記複数のマクロは、それぞれ、前記論理回路から前記制御信号が出力されてから前記命令発行制御信号が前記論理回路に到達するまでの時間が所定の範囲内となる設定値を前記判定の結果に基づき保持する請求項２又は３に記載の半導体装置。
【請求項５】
前記命令発行制御信号は、データの書き込み処理の完了を通知する信号とデータの読み出し処理の完了を通知する信号との少なくとも一方を含む請求項１乃至４のいずれか１項に記載の半導体装置。
【請求項６】
前記複数のマクロは、前記論理回路により利用されるメモリマクロである請求項１乃至５のいずれか１項に記載の半導体装置。
【請求項７】
論理回路と、前記論理回路が出力する制御信号に応じて前記論理回路とのデータの送受信を行い、自マクロ内におけるデータ処理状況に応じて前記論理回路に次命令の発行の許可を知らせる命令発行制御信号を前記論理回路に送信する複数のマクロと、を有する半導体装置におけるハンドシェイク制御のタイミング設定方法であって、
前記論理回路は、前記複数のマクロのうちテスト対象とするテスト対象マクロに対してテスト信号を出力し、
前記テスト対象マクロは、前記テスト信号に応じて複数の設定値のうちいずれか１つを選択し、
前記テスト対象マクロは、マクロ内において用いられるマクロ内信号のうち選択した設定値に関連付けられた信号をテスト命令発行制御信号として出力し、
前記論理回路は、前記制御信号を出力してから前記テスト命令発行制御信号が到達するまでの時間を判定し、
前記複数のマクロは、それぞれ、前記論理回路から前記制御信号が出力されてから前記命令発行制御信号が前記論理回路に到達するまでの時間が所定の範囲内となる設定値を前記判定の結果に基づき保持するハンドシェイク制御のタイミング設定方法。
【請求項８】
前記複数のマクロは、前記論理回路により利用されるメモリマクロである請求項７に記載のハンドシェイク制御のタイミング設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びそのハンドシェイク制御のタイミング設定方法に関し、特に論理回路により利用される複数のマクロを有し、当該複数のマクロと論理回路とがハンドシェイク制御を行うことで通信を行う半導体装置及びそのハンドシェイク制御のタイミング設定方法に関する。
【背景技術】
【０００２】
近年、ネットワークのブロードバンド化とＷｅｂアプリケーションの高度化から配信されるデータが大容量となり、Ｗｅｂベースのアプリケーションを処理するシステムの負荷が高まっている。
【０００３】
そこで、高度化するアプリケーションを処理するシステムでは、大容量かつ高速なデータ処理に対応するため、同一基板上に論理回路と大容量の記憶装置とを搭載した半導体装置が用いられている。ここで、このような用途で用いられる記憶装置は、メモリマクロと呼ばれる回路ブロックを複数個配置することで実現されている。また、メモリマクロを搭載した半導体装置は、メモリマクロと論理回路との間に追加情報を交信させることによって、メモリマクロの性能を向上させるハンドシェイク制御が行なわれている。
【０００４】
しかし、システムが大規模化していくと、半導体装置では、メモリマクロの搭載数が多くなるため、メモリマクロの配置位置によっては、論理回路とメモリマクロとの間の配線遅延に起因してメモリマクロの動作特性を十分に生かしきれない問題が生じる。このようなことから、高度化するアプリーションを処理するシステムに用いられる半導体装置ではメモリマクロをハンドシェイクする制御の効率をさらに向上させることが必要とされている。そこで、特許文献１に記憶装置と論理回路との間に追加情報を交信させることによって埋め込みメモリマクロ性能を向上させる技術の一例が記載されている。
【０００５】
ここで、ハンドシェイク制御を特許文献１の記載に基づき説明する。メモリマクロと論理回路は、システムデータインターロック信号を介してハンドシェイク手順により互いに通信を行う。例えば、読み取りサイクル中においては、メモリマクロはシステムデータインターロック信号を利用して、メモリマクロが出力したデータがいつ有効であるかを論理回路に知らせる。また、書き込みサイクル中においては、メモリマクロはシステムデータインターロック信号を利用して、いつデータが書き込まれたかを論理回路に知らせる。そして、論理回路はその後、記憶装置に対してシステムデータインターロック信号をリセットするように指示し、直ちに新たな読み取りまたは書き込みサイクルを開始する。
【０００６】
続いて、図１０に特許文献１に記載の半導体装置のブロック図を示す。図１０に示すように、半導体装置は、共通の基板（図示せず）上に構成された論理回路１１０と記憶装置１１２を有する。２個の回路１１０、１１２は、１セットの入力と出力（Ｉ／Ｏ）を備えるインターフェースを介して互いに通信する。
【０００７】
図１０に示すＩ／Ｏは、マクロセレクトＭＳＮ１１６、ページセレクトＰＧＮ１１８、ライトイネーブルＷＮ１２０、データインＤＩ１２２、データアウトＤＯ１２４、システムデータインターロック信号ＤＤＬ／ＳＤＩ１２６を含む。
【０００８】
最初の５個の信号（ＭＳＮ、ＰＧＮ、ＷＮ、ＤＩ、ＤＯ）は、１サブセットのより完全な標準インターフェースであり、このインターフェースは、複数の追加のデータ入力線（ＤＩ１２２に相当する）と、複数の追加のデータ出力線（ＤＯ１２４に相当する）と、アドレス線とを含んでいる。これら線は、デバイス中にも見いだされるが、それらの働きは周知であり特許文献１においても変わらないので図示しない。
【０００９】
システムデータインターロック信号ＤＤＬ／ＳＤＩ１２６は、従来技術のインターフェースにはない追加の線であり、この情報を提供し利用するために論理回路と記憶装置に対して適切な変更が加えられるならば、性能改善を可能にするのはこの追加線であるライトイネーブル線（ＷＮ）１２０は、記憶装置１１２に対する入力で、このサイクルが書き込み動作か、それとも読み取り動作かを記憶装置に知らせるために論理回路によって利用される。
【００１０】
書き込み動作中、論理回路は１ビットのデータをデータ入力線ＤＩ１２２上に出力する。典型的には、単に１ビットのデータではなく、１ブロックのデータをＤＩ２２上に書き込むことができるように多数の追加のデータ入力線が存在する。論理回路はまた、データがアドレス線（図示せず）上に格納される際のアドレスを指定する働きをする。
【００１１】
読み取り動作中、論理回路は１データビットをデータ出力線ＤＯ１２４（およびＤＯ１２４に相当する追加的のデータ出力）から読み取る。論理回路は更に、データがアドレス線（図示せず）上で検索される際のアドレスを指定する働きをする。マクロセレクト信号（ＭＳＮ）１１６は、記憶装置１２に対する入力であり、新たな読み取りまたは書き込み動作が開始中であることを論理回路が知らせることを可能にする。論理回路は、ライトイネーブル線ＷＮを正確にセットし（読み取りまたは書き込みサイクルであるということを記憶装置１１２に知らせるために）、アドレス線上に正確なアドレスを出力し、さもなければ、ＭＳＮ線の状態を変化させる前に新たなサイクルを準備し新たなサイクルを開始する働きをする。
【００１２】
従来技術の構成では、論理回路の設計者は、ＭＳＮ信号を使用して新たな読み取りまたは書き込みサイクルをスタートする前に、記憶装置の指定アクセス時間を待機することが要求されていた。記憶装置の設計者は、読み取り動作の間有効なデータがデータ出力で利用可能であるようにし、またはＭＳＭが新たなサイクルの開始を知らせた後に、規定アクセス時間内に書き込み動作が首尾良く完了するようにする責任があった。
【００１３】
論理回路はＤＤＬ／ＳＤＩシステムデータインターロック信号をモニターする。この信号は、記憶装置からの出力（内部記憶装置インターロック信号から導かれる）であり、読み取り動作、さらに望ましくは書き込み動作が、いつ首尾良く完了したかを知らせる。ＤＤＬ／ＳＤＩが状態を変化させると、論理回路は新たなサイクルに取りかかることができる。
【００１４】
図１２は、従来の使用に好適な記憶装置１１２の一部のブロック図を示す。記憶装置内に格納されるそれぞれの２進ビットデータは"レギュラーセル"（Regular Cell）と表記された別個のメモリセル内に格納される。メモリセルは行列に配列される。従って、メモリセル２００は、図１２の最上行と最右列に配置される。メモリセル２０２は、メモリセル２００と同じ行であるが、隣の列に配置される。メモリセル２０４は、メモリセル２００と同じ列であるが、異なる行に配置される。
【００１５】
図１２は、３個の行と４個の列を図示したものであるが、大きな記憶装置ではと列の数は相当大きくなることは理解されるであろう。例えば、現代の記憶置は、１個の行に２，０００個のセルを有することができる。読み取り動作中、アドレス内の高位ビットは、所期のデータを含む行を識別するためにローカルワードデコーダ２１２によってデコードされる。この例として、これが第１番目の行であると仮定する。第１番目の行は、メモリセル２００、２０２、２０６、２０８と、ローカルワードデコーダ２１２から最も遠い位置の最も左側に配置されたインターロックダミーメモリセル２１０とを含む。
【００１６】
ＭＳＮ信号の動作によって、センスアンプ２１４、２１６、２１８、２２０、２２２は、ローカルワードデコーダ２１２によってデコードされたアドレスの高位ビットによって識別される行のデータを読み取る。このようにして、センスアンプ２１４、２１６、２１８、２２０、２２２は、それに対応するメモリセル２００、２０２、２０６、２０８、２１０を読み取る。レギュラーメモリセル２００からのデータは、レギュラーメモリセル２０２、２０６、２０８からのデータがそれらの対応するセンスアンプに到達する前にセンスアンプ２１４に到達する。
【００１７】
しかしながら、インターロックダミーセル２１０に対応するセンスアンプ２２２は、最後に、しかも他の全てのレギュラーセルが読み取られそれらの対応センスアンプの全てが状態を変化させて対応レギュラーセルのデータとマッチングした後に、状態を変化させる。
【００１８】
インターロックダミーセル２１０内に格納されたデータは、ダミーセルが読み取られるときにセンスアンプ２２２の状態が常に変化するように選択された所定のデータビットである。センスアンプ２２２が状態を変化させると、他のセンスアンプの全てが有効データを含んでいることがわかる。この時点で、センスアンプは対応するアドレス行内にデータを保持する一種の内部レジスタとして作用する。先に示したように、内部レジスタは２０４８ビットのデータを含むことができる。
【００１９】
しかし、典型的には、記憶装置は２０４８個のデータ出力を含むことはなく、２５６個以下の出力を含むだけでよい。列デコーダ２２４、２２６、２２８、２３０は、アドレスの下位ビットをデコードし、選択された行の１サブセットのメモリセルを選択するために使用される。１行に２５６個のデータ出力と２０４８個のレギュラーメモリセルとが存在する場合には、２０４８個のセンスアンプが存在する（インターロックダミーセル２１０とその対応するセンスアンプ２２２は数えない）。しかし、各列デコーダは８個の別々のセンスアンプに接続され、２５６個の列デコーダしか存在しない。
【００２０】
アドレスの下位ビットは、どのセンスアンプが列デコーダを介して選択されるかを決定し、この選択が行われた後にデジタル２次センスアンプ２３２、２３４、２３６、２３８はその選択されたデータをプリデータ線２４０、２４２、２４４、２４６を介してレジスタ２４８へ転送する。
【００２１】
インターロックダミーセルを含む列のセンスアンプ２２２に接続された列デコーダ２５０は、実際には列デコード作用を行わない。そのかわり、列デコーダ２５０は、信号をセンスアンプ２２２からデジタル２次センスアンプ２５２へ送る際の遅れが列デコーダ２２４〜２３０により引き起こされる遅れと実質的に同一となるように、列デコーダ２２４〜１３０と実質的に同一に製作される。
【００２２】
このようにして、デジタル２次センスアンプ２５２からの出力は、レジスタ２４８が、いつ首尾よくロードされたかを指示する。レジスタ２４８に非常に近接して配置された行からのデータは、ＤＤＬ／ＳＤＩ線の早期の遷移を引き起こすが、遠い行に配置されたデータは更に長くかかることになる。ＤＤＬ／ＳＤＩ線２５４は、データ線２４０〜２４６に対応するが、ダミーデータセルからのダミーデータを運ぶため、しばしばダミーデータ線と称される。
【００２３】
線２５４はＤＬ／ＳＤＩと表記されているが、この線上の２進信号は、図１０の線１２６上を論理回路へ転送されるシステムデータインターロック信号を生成する前に、更に追加的な処理を受けることがあることを理解すべきである。
【００２４】
図１１において、ＭＳＮ信号は参照番号１２８で示した時刻に状態を変化させ、新たなマクロサイクルにおける読み取り動作の開始を知らせる。この時刻に先立って、論理回路はアドレス線上に読み取られるべきアドレスを出力し終わり、ライトイネーブル信号ＷＮをハイにセットし終わる（時刻１３０で）。ライトイネーブル信号ＷＮのハイは、これが読み取り動作であって、書き込み動作ではないことを示している。
【００２５】
時刻１２８にＭＳＮ信号の状態の変化を検出すると、記憶装置１１２はアクセスされるべきメモリアドレスを決定し、ロケーションからデータを検索し、検索されたデータを時刻１３２にデータ出力線ＤＯ上に出力する。後まもなく、データがデータ出力線ＤＯで有効になったことを記憶装置が判断すると、記憶装置はＤＤＬ／ＳＤＩ線１２６上のシステムデータインターロック信号の状態を変化させる。これは時刻１３４に行われる。
【００２６】
システムデータインターロック信号は、データが現在有効であってデータ出力線ＤＯから安全に読み取ることができることを論理回路１０に知らせる。従来の実施例によっては、システムデータインターロック信号は、例えばダミーデータ線信号のように、従来のインターロック記憶デバイスの読み取り動作をモニターするために使用される単一のインターロック信号から導くことができる。
【００２７】
システムデータインターロック信号は先に述べたように一連のカスケードされたインターロック信号のうちの最後のインターロック信号から導くことができる。更に、信号を幾分処理したり、更に遅らせたり、他の従来のインターロック信号を組み合わせ変形したりして、最終的なシステムデータインターロック信号を生成させることも可能である。
【００２８】
マクロ設計者がどのようにしてＤＤＬ／ＳＤＩシステムデータインターロック信号を作り出すかに関わりなく、システムデータインターロック信号が状態を変化させると、出力データが有効で、論理回路がデータの読み取りに取りかかって新たな読み取りサイクルを開始することができることを論理回路に指示する。
【００２９】
データ入力信号およびライトイネーブルＷＮ信号部分中のスラッシュは、単に記憶装置がこれら時刻においてこれら線上の信号状態に関して配慮していないということを示すものにすぎない。
【００３０】
時刻１３６において、論理回路は、ライトイネーブル信号ＷＮがハイで、新しいアドレスがアドレス線上に出力されることを保証する。この時点で論理回路は、新しい読み取り動作をまさに開始しようとしている。この読み取り動作は、全く新しいデータブロックを読み取る新しいマクロサイクルの代わりに、新しいデータページを読み取る新たなページサイクルとなる。
【００３１】
図１１において、新しいデータページの読み取りは、ＰＧＮの状態を変化させることによって時刻１３８に開始される。時刻１２８で開始されるマクロサイクル中、記憶装置はデータ出力で出力可能なデータ量よりも大きなデータブロックを検索する。このページサイクルにおいて、この大きなデータブロックの他のサブセット／ページが出力される。
【００３２】
論理回路は、アドレス線上の下位ビットを変更し、新しいデータページの読み取りサイクルのためにＷＮ線をセットアップすることを必要とするのみである。もし相当異なるメモリロケーションにあるデータを読み取る必要がある場合には、論理回路はアドレス線上の高位ビットを変更しなければならず、読み取りサイクルはＭＳＮを介して新たなマクロサイクルをスタートさせることによって開始される。
【００３３】
線１１８上のページセレクト信号ＰＧＮが、時刻１３８で状態を変化させると、記憶装置は、１４０に示すようにＤＤＬ／ＳＤＩ信号をリセットする。これがシステムデータインターロック線をリセットすることによって、時刻１４２での次の遷移が、線１２４上のＤＯデータ出力線上へ有効なデータが再び出力されたことを論理回路に知らせることができる。
【００３４】
図１１には示されてはいないが、ページセレクトＰＧＮ線をセットおよびリセットし、正確なアドレス信号とＷＮ信号とが存在するようにすることによって、記憶装置から追加的なデータページを読み出すことができる。ＰＧＮが状態を変化させることによって、時刻１３８におけるように新たなページサイクルを知らせるときには常に、ＤＤＬ／ＳＤＩ信号がリセットされる（時刻１４０におけるように）。各場合において、論理回路は、ＤＤＬ／ＳＤＩ信号が再び状態を変化させ（時刻１３４と１４２におけるように）、出力データが現在有効で論理回路の動作が進行することが可能なことを知らせるまで待機する。
【００３５】
もし非常に大きなデータブロックが順次読み取られている最中であれば、データブロック全体が、ＰＧＮ信号のサイクルとアドレスの下位ビットの変更とによって、ページ毎に読み取られる。最終的に、論理回路は時刻１２８で開始されたマクロサイクル中にまだ検索が完了していないデータを読み取る必要がある。この時点で、新たなデータを検索するために新たなマクロサイクルを開始しなければならない。新たなデータは一度に１ページ読み取ることができる。
【００３６】
マクロサイクルを終了させるために、ＭＳＮ、ＰＧＮ、ＤＤＬ／ＳＤＩは全てリセットされる。参照番号１４４、１４６で示された時刻で、ＭＳＮとＰＧＮ信号は状態を変化させる。時刻１４８でＤＤＬ／ＳＤＩインターロック信号は、ＭＳＮとＰＧＮのリセットに応答してリセットされる。
【００３７】
つまり、特許文献１に記載の半導体装置は、記憶装置における読み出し又は書き込み処理が完了し、データが有効になった時点においてインターロック信号を生成する。そして記憶装置を制御する論理回路に当該インターロック信号を伝達する。これにより、特許文献１に記載の半導体装置では、論理回路の待ち時間を抑制してシステムの効率化を実現する。
【先行技術文献】
【特許文献】
【００３８】
【特許文献１】特開２０００−３５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００３９】
しかしながら、特許文献１に記載の半導体装置では、論理回路から記憶装置に対して発行される次の命令は、インターロック信号が論理回路に伝達された後になる。このとき、論理回路と記憶装置との間の配線距離が長くなると、当該配線による信号遅延によりインターロック信号が論理回路に到達するまでに大きな遅延時間が生じる。そのため、特許文献１に記載の半導体装置では、配線遅延によってハンドシェイク処理に遅延が生じ、動作サイクルが長くなる問題がある。
【課題を解決するための手段】
【００４０】
本発明にかかる半導体装置の一態様は、論理回路と、前記論理回路が出力する制御信号に応じて前記論理回路とのデータの送受信を行い、自マクロ内におけるデータ処理状況に応じて前記論理回路に次命令の発行の許可を知らせる命令発行制御信号を送信する複数のマクロと、を有し、前記複数のマクロは、それぞれ、前記論理回路から自マクロへの制御信号の信号遅延時間に応じて前記命令発行制御信号を前記データ処理の完了前に出力し、前記論理回路は、前記命令発行制御信号に応じて次命令を指示する前記制御信号を出力する。
【００４１】
本発明にかかる半導体装置におけるハンドシェイク制御のタイミング設定方法の一態様は、論理回路と、前記論理回路が出力する制御信号に応じて前記論理回路とのデータの送受信を行い、自マクロ内におけるデータ処理状況に応じて前記論理回路に次命令の発行の許可を知らせる命令発行制御信号を前記論理回路に送信する複数のマクロと、を有する半導体装置におけるハンドシェイク制御のタイミング設定方法であって、前記論理回路は、前記複数のマクロのうちテスト対象とするテスト対象マクロに対してテスト信号を出力し、前記テスト対象マクロは、前記テスト信号に応じて複数の設定値のうちいずれか１つを選択し、前記テスト対象マクロは、マクロ内において用いられるマクロ内信号のうち選択した設定値に関連付けられた信号をテスト命令発行制御信号として出力し、前記論理回路は、前記制御信号を出力してから前記テスト命令発行制御信号が到達するまでの時間を判定し、前記複数のマクロは、それぞれ、前記論理回路から前記制御信号が出力されてから前記命令発行制御信号が前記論理回路に到達するまでの時間が所定の範囲内となる設定値を前記判定の結果に基づき保持する。
【００４２】
本発明にかかる半導体装置及びそのハンドシェイク制御のタイミング設定方法は、論理回路とマクロとを接続する配線により生じる信号遅延を考慮して命令発行制御信号を前倒しで出力する。これにより、論理回路が制御信号を出力してからマクロが出力した命令発行制御信号が論理回路に到達するまでの時間を論理回路とマクロとの間の配線距離によらず所定の範囲内とすることができる。
【発明の効果】
【００４３】
本発明にかかる半導体装置及びそのハンドシェイク制御のタイミング設定方法によれば、論理回路とマクロとの距離に起因する遅延時間の影響によらず論理回路の動作サイクルを設定し、半導体装置の動作速度を向上させることができる。
【図面の簡単な説明】
【００４４】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２】実施の形態１にかかるメモリマクロのブロック図である。
【図３】実施の形態１にかかる半導体装置の第１のメモリマクロの動作を示すタイミングチャートである。
【図４】実施の形態１にかかる半導体装置の第ｍのメモリマクロの動作を示すタイミングチャートである。
【図５】実施の形態１にかかる半導体装置の第ｎのメモリマクロの動作を示すタイミングチャートである。
【図６】実施の形態１にかかる半導体装置における設定値の決定処理を示すフローチャートである。
【図７】実施の形態１にかかる半導体装置におけるテスト信号と当該テスト信号に対応付けられる設定値との関係を示す表である。
【図８】実施の形態１にかかる半導体装置におけるテスト信号の値を変化させた場合にメモリマクロが出力する命令発行制御信号の変化の様子を示すタイミングチャートである。
【図９】実施の形態１にかかる半導体装置における動作判定の例を示す表である。
【図１０】特許文献１に記載の半導体装置のブロック図である。
【図１１】特許文献１に記載の半導体装置の読取り動作中の埋め込みメモリマクロデバイスの様々な時刻において選択された信号を示すタイミングチャートである。
【図１２】特許文献１に記載の記憶装置の一部を示すブロック図である。
【発明を実施するための形態】
【００４５】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。以下の説明では、データの処理を行う論理回路と当該論理回路によって利用されるマクロとを有する半導体装置について説明する。ここで、本実施の形態では、マクロの一例としてメモリマクロについて説明する。しかし、本発明において対象とするマクロは、メモリマクロに限らず、論理回路との間でハンドシェイク制御により通信を行うマクロ全般を含むものである。なお、ハンドシェイク制御とは、論理回路がマクロからの応答を待って次命令を出力する制御のことを言う。また、ハンドシェイク制御のタイミング設定とは、１回のハンドシェイク制御にかかる時間の設定のことを言う。
【００４６】
図１に実施の形態１にかかる半導体装置１のブロック図を示す。図１に示すように、半導体装置１は、論理回路１０、第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ、第ｎのメモリマクロ１ｎを有する。本実施の形態では、論理回路１０及びメモリマクロが１つの半導体基板上に形成されているものとする。なお、ｍ及びｎは、メモリマクロの番号を示すものであり、メモリマクロの個数に応じた整数の値となる。ｍ及びｎは、以下の説明においても同様の意味で用いる。また、図１においては３つのメモリマクロを示したが、半導体装置１は図示しない多数のメモリマクロを有するものとする。また、以下の説明では、構成要素名又は信号名に付す符号にｉを加えたものを場合に応じて用いる。このｉは、メモリマクロの番号を示す整数であり、１、ｍ、ｎを含むものとする。
【００４７】
論理回路１０は、半導体装置１においてデータの処理を行うものである。また、論理回路１０は、複数のメモリマクロを利用するために利用するメモリマクロを制御する制御信号を出力する。図１に示す例では、制御信号は、マクロ選択信号ＭＳ、出力制御信号ＯＥ、書き込み制御信号ＷＥ、アドレス信号ＡＤＤを含む。また、本実施の形態では、論理回路１０は、後述するハンドシェイク制御のタイミング設定処理において用いるテスト信号を出力する。本実施の形態では、ハンドシェイク制御のタイミング設定処理において４つの設定値についてテストを行うために、テスト信号は、２つのテスト信号（例えば、テスト信号ＴＥＳＴ１、ＴＥＳＴ２）を含むものとする。
【００４８】
また、論理回路１０は、メモリマクロが出力する命令発行制御信号ＣＣＮＴｉに応じて次命令を指示する制御信号を出力する。また、論理回路１０は、制御信号を出力するタイミングを命令発行制御信号ＣＣＮＴｉに応じて決定する。
【００４９】
また、論理回路１０は、メモリマクロが出力するデータ制御信号ＤＣＮＴｉにより指定される取り込み有効時間にメモリマクロが出力するデータＤＯｉを取り込む。
【００５０】
第１のメモリマクロ１１は、論理回路１０と配線距離がＬとなる位置に配置される。第ｍのメモリマクロ１ｍは、論理回路１０と配線距離がＬ＋αとなる位置に配置される。第ｎのメモリマクロ１ｎは、論理回路１０と配線距離がＬ＋βとなる位置に配置される。ここで、各メモリマクロと論理回路との配線距離の関係はＬ＜Ｌ＋α＜Ｌ＋βであるものとする。
【００５１】
そして、第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ、第ｎのメモリマクロ１ｎは、それぞれ、論理回路１０が出力する制御信号に応じて論理回路１０とのデータの送受信を行う。また、第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ、第ｎのメモリマクロ１ｎは、それぞれ、自マクロ内におけるデータ処理状況に応じて論理回路に次命令の発行の許可を知らせる命令発行制御信号ＣＣＮＴｉを論理回路１０に送信する。
【００５２】
このとき、本実施の形態では、第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ、第ｎのメモリマクロ１ｎは、それぞれ、論理回路１０から自マクロへの制御信号の信号遅延時間に応じて命令発行制御信号ＣＣＮＴｉをマクロ内のデータ処理の完了前に出力する。また、第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ、第ｎのメモリマクロ１ｎは、それぞれ、信号遅延時間がないとした場合に出力される命令発行制御信号ＣＣＮＴｉから信号遅延時間の２倍に相当する前倒し量を減じた時点に最も近いタイミングで変化するマクロ内で用いられるマクロ内信号（本実施の形態では、センスイネーブル信号ＳＥｉ、ワード選択信号ＷＯＲＤｉ、プリチャージ制御信号ＰＲＥｉ、カラムスイッチ選択信号ＹＳＷｉ）を選択して命令発行制御信号ＣＣＮＴｉとして出力する。
【００５３】
第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ、第ｎのメモリマクロ１ｎは、それぞれ同一の機能を有するものである。そこで、第１のメモリマクロ１１を例にメモリマクロの機能を説明する。第１のメモリマクロ１１は、マクロ選択信号ＭＳが第１のメモリマクロ１１の有効を示す場合に停止状態から動作状態に移行する。第１のメモリマクロ１１は、出力制御信号ＯＥがデータの読み出しを指示する場合、アドレス信号ＡＤＤにより指定されたメモリセルに保持されているデータを出力データＤＯ１として出力する。また、第１のメモリマクロ１１は、出力データＤＯ１の取り込み有効期間を示すデータ制御信号ＤＣＮＴ１を出力する。第１のメモリマクロ１１は、書き込み制御信号ＷＥがデータの書き込みを指示する場合、アドレス信号ＡＤＤにより指定されたメモリセルに論理回路１０が出力する入力データＤＩ１を格納する。
【００５４】
第１のメモリマクロ１１は、内部において書き込み処理又は読み出し処理が完了したことに応じて命令発行制御信号ＣＣＮＴ１を出力する。なお、本実施の形態では、命令発行制御信号ＣＣＮＴ１は、メモリマクロ内の処理の完了を論理回路１０に通知するものであるが、メモリマクロ内の処理が完了した時点で出力されるものではない。つまり、本実施の形態では、命令発行制御信号ＣＣＮＴ１は、メモリマクロ内の処理の完了前にメモリマクロから出力される場合がある。この命令発行制御信号ＣＣＮＴ１の出力タイミングについては後述する。また、第１のメモリマクロ１１は、読み出し処理を行う場合に内部のメモリセルから読み出したデータが確定したこと論理回路に通知するデータ制御信号ＤＣＮＴ１を出力する。
【００５５】
ここで、第１のメモリマクロ１１の詳細な回路について説明する。第１のメモリマクロ１１の詳細なブロック図を図２に示す。図２に示すように、メモリブロック２０、命令発行回路３０を有する。そして、メモリブロック２０は、ロウ制御回路２１、カラム制御回路２２、ロウデコーダ２３、カラムデコーダ２４、メモリセルアレイ２５、入出力制御回路２６を有する。
【００５６】
ロウ制御回路２１は、マクロ選択信号ＭＳとアドレス信号ＡＤＤが入力される。ロウ制御回路２１は、マクロ選択信号ＭＳが第１のメモリマクロ１１の有効を示す場合に停止状態から動作状態に移行する。そして、ロウ制御回路２１は、動作状態において、アドレス信号ＡＤＤからメモリセルアレイ２５内の処理対象セルの行番号を抽出すると共にメモリセルアレイ２５の活性が開始されることを示すロウ活性信号ＲＡＳ１を出力し、当該処理対象セルの行番号を指定するワード選択信号ＷＯＲＤ１とセンスアンプを動作状態に移行させるセンスイネーブル信号ＳＥ１を出力する。また、ロウ制御回路２１には、カラム制御回路２２が出力するプリチャージ制御信号ＰＲＥ１が入力される。ロウ制御回路２１は、メモリセルアレイ２５の読み出し、書き込み動作を行う場合にロウ活性信号ＲＡＳ１とプリチャージ制御信号ＰＲＥ１とに応じて処理対象セルを活性化するワード選択信号ＷＯＲＤ１及びセンスイネーブル信号ＳＥ１を出力する。
【００５７】
カラム制御回路２２は、マクロ選択信号ＭＳとアドレス信号ＡＤＤが入力される。カラム制御回路２２は、マクロ選択信号ＭＳとロウ活性信号ＲＡＳ１が第１のメモリマクロ１１の有効を示す場合に停止状態から動作状態に移行する。そして、カラム制御回路２２は、動作状態において、アドレス信号ＡＤＤからメモリセルアレイ２５内の処理対象セルの列番号を抽出し、当該処理対象セルの列番号を指定するカラムスイッチ選択信号ＹＳＷ１を出力する。また、カラム制御回路２２は、メモリセルアレイ２５において列方向に配列されるメモリセルを接続するビット線対をメモリセルアレイ２５への書き込み処理前及び読み出し処理前にプリチャージ電圧とするプリチャージ期間を指定するプリチャージ制御信号ＰＲＥ１を出力する。また、カラム制御回路２２には、ロウ制御回路２１が出力するセンスイネーブル信号ＳＥ１が入力される。カラム制御回路２２は、メモリセルアレイ２５の読み出し、書き込み動作を行う場合にセンスイネーブル信号ＳＥ１に応じて活性化する処理対象セルが接続されるビット線対とＩ／Ｏバス線対とを接続するカラムスイッチ選択信号ＹＳＷ１を出力する。
【００５８】
ロウデコーダ２３は、ワード選択信号ＷＯＲＤ１に基づきメモリセルアレイ２５の処理対象セルを活性化する。また、ロウデコーダ２３は、入出力制御回路２６に配置されるセンスアンプをセンスイネーブル信号ＳＥ１に応じて活性化する。
【００５９】
カラムデコーダ２４は、プリチャージ制御信号ＰＲＥ１に基づきメモリセルアレイ２５のビット線対をプリチャージ電圧にする。また、カラムデコーダ２４は、カラムスイッチ選択信号ＹＳＷ１に基づき処理対象セルが接続されるビット線対をＩ／Ｏバス線対に接続する。なお、Ｉ／Ｏバス線対は、入出力制御回路２６に配置されるデータアンプと接続される。
【００６０】
メモリセルアレイ２５は、データを格納するメモリセルが格子状に配置される。入出力制御回路２６は、データアンプとライトアンプとが配置される。データアンプは処理対象セルから読み出したデータを出力データＤＯ１として出力する。また、ライトアンプは、論理回路から出力される入力データＤＩ１を処理対象セルに書き込む。
【００６１】
命令発行回路３０は、命令設定回路３１、選択回路３２、３３を有する。命令設定回路３１は、命令発行制御信号ＣＣＮＴ１としてセンスイネーブル信号ＳＥ１、ワード選択信号ＷＯＲＤ１、プリチャージ制御信号ＰＲＥ１、カラムスイッチ選択信号ＹＳＷ１のいずれを用いるかを指定する複数の設定値を保持する。また、命令設定回路３１は、テスト信号ＴＥＳＴ１、ＴＥＳＴ２に応じて保持している複数の設定値のいずれか１つに応じた選択信号を出力する。なお、命令設定回路３１は、初期状態においてテスト信号ＴＥＳＴ１、ＴＥＳＴ２により出力する設定値を選択すること可能であるが、第１のメモリマクロ１１がいずれの設定値を用いるかが確定した後は、テスト信号ＴＥＳＴ１、ＴＥＳＴ２によらず固定した設定値を出力する。このとき、命令設定回路３１は、設定値の固定手段として、例えば、ヒューズ回路、不揮発性メモリ等を用いる。メモリマクロがいずれの設定値を用いるかを決定する処理については後述する。
【００６２】
選択回路３２は、命令設定回路３１が出力する選択信号に応じてセンスイネーブル信号ＳＥ１、ワード選択信号ＷＯＲＤ１、プリチャージ制御信号ＰＲＥ１、カラムスイッチ選択信号ＹＳＷ１のいずれか１つを選択して命令発行制御信号ＣＣＮＴ１として出力する。また、選択回路３２は、マクロ選択信号ＭＳがイネーブル信号として入力される。選択回路３２は、マクロ選択信号ＭＳの立ち上がりエッジに応じて出力する命令発行制御信号ＣＣＮＴ１の論理レベルをリセットし、マクロ選択信号ＭＳの立ち下がりエッジに応じて選択したマクロ内信号を命令発行制御信号ＣＣＮＴ１として出力する。
【００６３】
なお、本実施の形態では、選択回路３２には、４つの選択信号が与えられる。そして、４つの選択回路のうちいずれか１つが有効状態（例えば、ハイレベル）とされ、他の選択信号は無効状態（例えば、ロウレベル）とされる。本実施の形態では、４つの選択信号は、センスイネーブル信号ＳＥ１を選択することを指定するＳＥＳＥ１と、ワード選択信号ＷＯＲＤ１を選択することを指定するＷＲＳＥ１と、プリチャージ制御信号ＰＲＥ１を選択することを指定するＰＲＳＥ１と、カラムスイッチ選択信号ＹＳＷ１を選択することを指定するＹＳＷＳ１とにより構成される。また、選択回路３２では、ワード選択信号ＷＯＲＤ１とセンスイネーブル信号ＳＥ１とが入力される端子は、反転入力端子となっている。これは、想定される制御信号の信号遅延時間に近いタイミングのマクロ内信号の変化がワード選択信号ＷＯＲＤ１とセンスイネーブル信号ＳＥ１との立ち下がりエッジに近いためである。つまり、命令発行制御信号ＣＣＮＴ１として用いる信号は、マクロ内信号であるが、マクロ内信号をそのまま命令発行制御信号ＣＣＮＴ１として用いるか、マクロ内信号の反転信号を命令発行制御信号ＣＣＮＴ１として用いるか、は製品仕様に応じて適宜選択できる。
【００６４】
選択回路３３は、選択信号に応じてセンスイネーブル信号ＳＥ１、ワード選択信号ＷＯＲＤ１、プリチャージ制御信号ＰＲＥ１、カラムスイッチ選択信号ＹＳＷ１のいずれか１つを選択してデータ制御信号ＤＣＮＴ１として出力する。また、選択回路３３は、マクロ選択信号ＭＳがイネーブル信号として入力される。選択回路３３は、マクロ選択信号ＭＳの立ち上がりエッジに応じて出力するデータ制御信号ＤＣＮＴ１の論理レベルをリセットし、マクロ選択信号ＭＳの立ち下がりエッジに応じて選択したマクロ内信号を命令発行制御信号ＣＣＮＴ１として出力する。
【００６５】
なお、本実施の形態では、選択回路３３に与えられる選択信号は、プリチャージ制御信号ＰＲＥ１を指定するＰＲＳＥ１が固定的に有効状態（例えば、ハイレベル）とされ、他の選択信号は固定的に無効状態（例えば、ロウレベル）とされる。つまり、本実施の形態における選択回路３３は、プリチャージ制御信号ＰＲＥ１をデータ制御信号ＤＣＮＴ１として出力する。なお、選択回路３３においても、選択信号を命令設定回路３１により与えても良い。
【００６６】
ここで、本実施の形態にかかる半導体装置１の動作について説明する。まず、半導体装置１では、論理回路１０と複数のメモリマクロ（第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ、第ｎのメモリマクロ１ｎ）との距離がメモリマクロ毎に異なる。そのため、論理回路１０が出力した制御信号がメモリマクロに到達するまでの時間がメモリマクロ毎に異なる。以下の説明では、制御信号がメモリマクロに到達するまでの時間を信号遅延時間と称す。また、以下の動作例では、タイミングｔ１〜ｔ１１が示されるが隣り合うタイミングの間を単位時間とし、当該単位時間を１タイミングと称す。
【００６７】
そのため、本実施の形態では、第１のメモリマクロ１１、第ｍのメモリマクロ１ｍ及び第ｎのメモリマクロ１ｎは、それぞれ、異なる設定値に基づき動作する。例えば、第１のメモリマクロ１１は、信号遅延時間が実質的にゼロであるため第１の設定値（例えば、プリチャージ制御信号ＰＲＥ１を指定する設定値）に基づき命令発行制御信号ＣＣＮＴ１を出力する。第ｍのメモリマクロは、信号遅延時間が第１のメモリマクロ１ｍよりも大きいため、第３の設定値（例えば、ワード選択信号ＷＯＲＤ１を指定する設定値）に基づき命令発行制御信号ＣＣＮＴｍを出力する。第ｎのメモリマクロ１ｎは、第ｍのメモリマクロ１ｍよりも信号遅延時間が大きいため、第４の設定値（例えば、カラムスイッチ選択信号ＹＳＷ１を指定する設定値）に基づき命令発行制御信号ＣＣＮＴｎを出力する。
【００６８】
そこで、以下の説明では、メモリマクロ毎に半導体装置１の動作を説明する。また、以下の説明では、論理回路１０がメモリマクロに対して読み出し処理を指示する例を説明する。つまり、以下の説明では、論理回路１０が出力する出力制御信号ＯＥはハイレベルであり、書き込み制御信号ＷＥはロウレベルである。
【００６９】
まず、図３に第１のメモリマクロ１１を利用する場合の半導体装置１の動作を示すタイミングチャートを示す。この場合、タイミングｔ１において論理回路１０からマクロ選択信号ＭＳが出力される。また、論理回路１０は、マクロ選択信号ＭＳが出力されるタイミングｔ１の時点においてアドレス信号ＡＤＤとしてアドレスＡ１を出力する。そして、マクロ選択信号ＭＳとアドレス信号ＡＤＤは、信号遅延時間なくタイミングｔ１で第１のメモリマクロ１１に到達する。
【００７０】
そして、第１のメモリマクロ１１では、マクロ選択信号ＭＳの立ち上がりエッジに応じて、ロウ活性信号ＲＡＳ１が立ち上がり、タイミングｔ２でワード選択信号ＷＯＲＤ１が立ち上がる。これにより、処理対象セルが配置されるメモリセルアレイ２５の行が決定される。また、タイミングｔ２とｔ３との間でセンスイネーブル信号ＳＥ１が立ち上がる。これにより、処理対象セルが接続されるビット線対に対応して設けられるセンスアンプが活性化される。さらに、タイミングｔ４でカラムスイッチ選択信号ＹＳＷ１が立ち上がる。これにより、処理対象セルが接続されるビット線対とＩ／Ｏバス線対とが接続される。なお、第１のメモリマクロ１１では、実質的なデータ読み処理が開始されるワード選択信号ＷＯＲＤ１の立ち上がりの前（例えば、タイミングｔ１とｔ２の間）にプリチャージ制御信号ＰＲＥ１が立ち下がることでプリチャージ動作が完了する。
【００７１】
次いで、タイミングｔ４の後から出力データＤＯ１が出力される。この出力データＤＯ１は、タイミングｔ５とｔ６との間でカラムスイッチ選択信号ＹＳＷ１が立ち下がった後においても値が維持される。一方、第１のメモリマクロ１１内では、タイミングｔ６においてワード選択信号ＷＯＲＤ１が立ち下がる。また、タイミングｔ６とｔ７との間でセンスイネーブル信号ＳＥ１が立ち下がる。その後、第１のメモリマクロ１１は、タイミングｔ７とｔ８との間でプリチャージ制御信号ＰＲＥ１が立ち上がり、ロウ活性信号ＲＡＳ１が立ち下がる。そして、次の動作サイクルに備えたプリチャージ動作が行われる。
【００７２】
ここで、第１のメモリマクロ１１は、第１の設定値に基づき動作しているため、命令発行制御信号ＣＣＮＴ１としてプリチャージ制御信号ＰＲＥ１を出力する。そのため、タイミングｔ７とｔ８との間のプリチャージ制御信号ＰＲＥ１の立ち上がりに応じて、第１のメモリマクロ１１は、命令発行制御信号ＣＣＮＴ１を立ち上げる。また、第１のメモリマクロ１１は、データ制御信号ＤＣＮＴ１としてプリチャージ制御信号ＰＲＥ１を出力する。そのため、タイミングｔ７とｔ８との間のプリチャージ制御信号ＰＲＥ１の立ち上がりに応じてデータ制御信号ＤＣＮＴ１が立ち上がる。
【００７３】
そして、出力データＤＯ１、命令発行制御信号ＣＣＮＴ１及びデータ制御信号ＤＣＮＴ１は、信号遅延時間なく論理回路１０に到達する。そして、論理回路１０は、命令発行制御信号ＣＣＮＴ１の立ち上がりに応じて、タイミングｔ１１で次の制御信号を出力する（マクロ選択信号ＭＳを立ち上げる）。また、命令発行制御信号ＣＣＮＴ１及びデータ制御信号ＤＣＮＴ１は、それぞれタイミングｔ１１において第１のメモリマクロ１１に到達したマクロ選択信号ＭＳの立ち上がりに応じて立ち下がる。また、論理回路１０は、タイミングｔ７とｔ８との間でデータ制御信号ＤＣＮＴ１が立ち上がった時点で出力データＤＯ１を取り込む。
【００７４】
図３に示す例では、論理回路１０がマクロ選択信号ＭＳにより現時点での制御信号を出力してから、第１のメモリマクロ１１が出力した命令発行制御信号ＣＣＮＴ１が論理回路１０に到達するまでに第１の期間ＴＭＧ１（６．５タイミング）を要する。
【００７５】
次いで、図４に第ｍのメモリマクロ１ｍを利用する場合の半導体装置１の動作を示すタイミングチャートを示す。この場合、タイミングｔ１において論理回路１０からマクロ選択信号ＭＳが出力される。また、論理回路１０は、マクロ選択信号ＭＳが出力されるタイミングｔ１の時点においてアドレス信号ＡＤＤとしてアドレスＡ１を出力する。そして、マクロ選択信号ＭＳとアドレス信号ＡＤＤは、１タイミングの信号遅延時間を経てタイミングｔ２で第ｍのメモリマクロ１ｍに到達する。
【００７６】
そして、第ｍのメモリマクロ１ｍでは、タイミングｔ２におけるマクロ選択信号ＭＳの立ち上がりエッジに応じて、ロウ活性信号ＲＡＳｍが立ち上がり、タイミングｔ３でワード選択信号ＷＯＲＤｍが立ち上がる。これにより、処理対象セルが配置されるメモリセルアレイ２５の行が決定される。また、タイミングｔ３とｔ４との間でセンスイネーブル信号ＳＥｍが立ち上がる。これにより、処理対象セルが接続されるビット線対に対応して設けられるセンスアンプが活性化される。さらに、タイミングｔ５でカラムスイッチ選択信号ＹＳＷｍが立ち上がる。これにより、処理対象セルが接続されるビット線対とＩ／Ｏバス線対とが接続される。なお、第ｍのメモリマクロ１ｍでは、実質的なデータ読み処理が開始されるワード選択信号ＷＯＲＤｍの立ち上がりの前（例えば、タイミングｔ２とｔ３の間）にプリチャージ制御信号ＰＲＥｍが立ち下がることでプリチャージ動作が完了する。
【００７７】
次いで、タイミングｔ５の後から出力データＤＯｍが出力される。この出力データＤＯｍは、タイミングｔ６とｔ７との間でカラムスイッチ選択信号ＹＳＷｍが立ち下がった後においても値が維持される。一方、第ｍのメモリマクロ１ｍ内では、タイミングｔ７においてワード選択信号ＷＯＲＤｍが立ち下がる。また、タイミングｔ７とｔ８との間でセンスイネーブル信号ＳＥｍが立ち下がる。その後、第ｍのメモリマクロ１ｍは、タイミングｔ８とｔ９との間でプリチャージ制御信号ＰＲＥｍが立ち上がり、ロウ活性信号ＲＡＳｍが立ち下がる。そして、次の動作サイクルに備えたプリチャージ動作が行われる。
【００７８】
ここで、第ｍのメモリマクロ１ｍは、第３の設定値に基づき動作しているため、命令発行制御信号ＣＣＮＴｍとしてワード選択信号ＷＯＲＤｍの反転論理信号を出力する。そのため、タイミングｔ７のワード選択信号ＷＯＲＤｍの立ち下がりに応じて、第ｍのメモリマクロ１ｍは、命令発行制御信号ＣＣＮＴｍを立ち上げる。また、第ｍのメモリマクロ１ｍは、データ制御信号ＤＣＮＴｍとしてプリチャージ制御信号ＰＲＥｍを出力する。そのため、タイミングｔ８とｔ９との間のプリチャージ制御信号ＰＲＥｍの立ち上がりに応じてデータ制御信号ＤＣＮＴｍが立ち上がる。
【００７９】
そして、出力データＤＯｍ、命令発行制御信号ＣＣＮＴｍ及びデータ制御信号ＤＣＮＴｍは、１タイミングの遅延時間を経てタイミングｔ８で論理回路１０に到達する。そして、論理回路１０は、命令発行制御信号ＣＣＮＴｍの立ち上がりに応じて、タイミングｔ１１で次の制御信号を出力する（マクロ選択信号ＭＳを立ち上げる）。また、命令発行制御信号ＣＣＮＴｍ及びデータ制御信号ＤＣＮＴｍは、それぞれタイミングｔ１２において第ｍのメモリマクロ１ｍに到達したマクロ選択信号ＭＳの立ち上がりに応じて立ち下がる。また、論理回路１０は、タイミングｔ９とｔ１０との間でデータ制御信号ＤＣＮＴｍが立ち上がった時点で出力データＤＯｍを取り込む。
【００８０】
図４に示す例では、論理回路１０がマクロ選択信号ＭＳにより現時点での制御信号を出力してから、第ｍのメモリマクロ１ｍが出力した命令発行制御信号ＣＣＮＴｍが論理回路１０に到達するまでに第２の期間ＴＭＧ２（７タイミング）を要する。
【００８１】
次いで、図５に第ｎのメモリマクロ１ｎを利用する場合の半導体装置１の動作を示すタイミングチャートを示す。この場合、タイミングｔ１において論理回路１０からマクロ選択信号ＭＳが出力される。また、論理回路１０は、マクロ選択信号ＭＳが出力されるタイミングｔ１の時点においてアドレス信号ＡＤＤとしてアドレスＡ１を出力する。そして、マクロ選択信号ＭＳとアドレス信号ＡＤＤは、２タイミングの信号遅延時間を経てタイミングｔ３で第ｎのメモリマクロ１ｎに到達する。
【００８２】
そして、第ｎのメモリマクロ１ｎでは、タイミングｔ３におけるマクロ選択信号ＭＳの立ち上がりエッジに応じて、ロウ活性信号ＲＡＳｎが立ち上がり、タイミングｔ４でワード選択信号ＷＯＲＤｎが立ち上がる。これにより、処理対象セルが配置されるメモリセルアレイ２５の行が決定される。また、タイミングｔ４とｔ５との間でセンスイネーブル信号ＳＥｎが立ち上がる。これにより、処理対象セルが接続されるビット線対に対応して設けられるセンスアンプが活性化される。さらに、タイミングｔ６でカラムスイッチ選択信号ＹＳＷｎが立ち上がる。これにより、処理対象セルが接続されるビット線対とＩ／Ｏバス線対とが接続される。なお、第ｎのメモリマクロ１ｎでは、実質的なデータ読み処理が開始されるワード選択信号ＷＯＲＤｎの立ち上がりの前（例えば、タイミングｔ３とｔ４の間）にプリチャージ制御信号ＰＲＥｎが立ち下がることでプリチャージ動作が完了する。
【００８３】
次いで、タイミングｔ６の後から出力データＤＯｎが出力される。この出力データＤＯｎは、タイミングｔ７とｔ８との間でカラムスイッチ選択信号ＹＳＷｎが立ち下がった後においても値が維持される。一方、第ｎのメモリマクロ１ｎ内では、タイミングｔ８においてワード選択信号ＷＯＲＤｎが立ち下がる。また、タイミングｔ８とｔ９との間でセンスイネーブル信号ＳＥｎが立ち下がる。その後、第ｎのメモリマクロ１ｎは、タイミングｔ９とｔ１０との間でプリチャージ制御信号ＰＲＥｎが立ち上がり、ロウ活性信号ＲＡＳｎが立ち下がる。そして、次の動作サイクルに備えたプリチャージ動作が行われる。
【００８４】
ここで、第ｎのメモリマクロ１ｎは、第４の設定値に基づき動作しているため、命令発行制御信号ＣＣＮＴｎとしてカラムスイッチ選択信号ＹＳＷｎを出力する。そのため、タイミングｔ６のカラムスイッチ選択信号ＹＳＷｎの立ち上がりに応じて、第ｎのメモリマクロ１ｎは、命令発行制御信号ＣＣＮＴｎを立ち上げる。また、第ｎのメモリマクロ１ｎは、データ制御信号ＤＣＮＴｎとしてプリチャージ制御信号ＰＲＥｎを出力する。そのため、タイミングｔ９とｔ１０との間のプリチャージ制御信号ＰＲＥｎの立ち上がりに応じてデータ制御信号ＤＣＮＴｎが立ち上がる。
【００８５】
そして、出力データＤＯｎ、命令発行制御信号ＣＣＮＴｎ及びデータ制御信号ＤＣＮＴｎは、２タイミングの遅延時間を経てタイミングｔ８で論理回路１０に到達する。そして、論理回路１０は、命令発行制御信号ＣＣＮＴｎの立ち上がりに応じて、タイミングｔ１１で次の制御信号を出力する（マクロ選択信号ＭＳを立ち上げる）。また、命令発行制御信号ＣＣＮＴｎ及びデータ制御信号ＤＣＮＴｎは、それぞれタイミングｔ１３において第ｎのメモリマクロ１ｎに到達したマクロ選択信号ＭＳの立ち上がりに応じて立ち下がる。また、論理回路１０は、タイミングｔ１１とｔ１２との間でデータ制御信号ＤＣＮＴｎが立ち上がった時点で出力データＤＯｎを取り込む。
【００８６】
図５に示す例では、論理回路１０がマクロ選択信号ＭＳにより現時点での制御信号を出力してから、第ｎのメモリマクロ１ｎが出力した命令発行制御信号ＣＣＮＴｎが論理回路１０に到達するまでに第３の期間ＴＭＧ３（７タイミング）を要する。
【００８７】
上記説明より、本実施の形態では、論理回路が出力する制御信号が自メモリマクロに到達するまでの信号遅延時間に応じて、メモリマクロが命令発行制御信号ＣＣＮＴｉを信号遅延時間がない場合に対して前倒して出力する。本実施の形態では、メモリマクロが命令発行制御信号ＣＣＮＴｉを出力するタイミングの前倒し量をテストにより決定する。そこで、命令発行制御信号ＣＣＮＴｉを出力するタイミングの前倒し量を決定するためのテストフローについて以下で説明する。なお、本テストフローが本発明におけるハンドシェイク制御のタイミング設定方法に相当するものである。
【００８８】
まず、命令発行制御信号ＣＣＮＴｉを出力するタイミングの前倒し量を決定するためのテストフローを示すフローチャートを図６に示す。図６に示す、本テストでは、テスト対象とするテスト対象マクロを設定する（ステップＳ１）。このステップＳ１では、例えば、第１のメモリマクロ１１を選択する。続いて、論理回路１０により生成されるテスト信号ＴＥＳＴ１、ＴＥＳＴ２を初期設定する（ステップＳ２）。この初期化では、テスト信号ＴＥＳＴ１、ＴＥＳＴ２を共にロウレベル（例えば０）として第１の設定値（設定値指定番号＝０）を指定する状態にする。
【００８９】
次いで、テスト対象マクロにデータを書き込み（ステップＳ３）、その後、書き込んだデータを読み出す（ステップＳ４）。そして、論理回路１０は、当該テスト対象マクロの動作判定を行う（ステップＳ５）。この動作判定では、論理回路１０が制御信号（例えば、マクロ選択信号ＭＳ）を出力してからテスト対象マクロが出力した命令発行制御信号ＣＣＮＴｉが論理回路１０に到達するまでの時間が所定の範囲内にあるか否かを判定する。
【００９０】
そして、ステップＳ５において、動作判定結果が良品と判断された場合、当該判定結果として用いた設定値を半導体装置１とは別に記憶部Ｍ１に格納する。また、ステップＳ５において、動作判定結果が良品と判断された場合、ステップＳ６の処理に進む。一方、ステップＳ５において、動作判定結果が不良と判断された場合、記憶部Ｍ１に判定結果を書き込むことなく、設定値指定番号が最大値を超えているか否かを論理回路１０は判断する（ステップＳ６）。そして、設定値指定番号が最大値を超えていない場合、設定値指定番号を１加算して（ステップＳ７）、再度ステップＳ３〜Ｓ６の処理を行う。
【００９１】
一方、ステップＳ６において、設定値指定番号が最大値を超えていると判断された場合、全てのテスト対象マクロのテストが完了したか否かが論理回路１０において判断される（ステップＳ８）。そして、ステップＳ８において未テストのテスト対象マクロがあると判断された場合、テスト対象マクロを指定する番号に１を加算して（ステップＳ９）次のテスト対象マクロを指定し、ステップＳ２〜Ｓ６の処理を実行する。一方、ステップＳ８において、全てのテスト対象マクロのテストが完了したと判断された場合、その後の動作において用いる設定値のテスト対象マクロへの書き込みを行う（ステップＳ１０）。このステップＳ１０での書き込み処理では、記憶部Ｍ１に格納されている動作判定結果を元に書き込むべき設定値が決定される。この書き込み処理が完了するとテストが終了する。
【００９２】
ここで、テスト信号ＴＥＳＴ１、ＴＥＳＴ２と当該テスト信号に対応付けられる設定値との関係を図７に示す。本実施の形態では、メモリマクロが第１〜第４の設定値を有しているものとする。そこで、図７では、第１〜第４の設定値と当該設定値が指定された場合のテスト信号とマクロ内信号が示されている。
【００９３】
図７に示すように、第１の設定値を指定する場合、テスト信号ＴＥＳＴ１、ＴＥＳＴ２は、０、０である。また、第１の設定値では、選択信号としてＰＲＳＥ１が有効になっており、その他の選択信号（ＳＥＳＥ１、ＷＲＳＥ１、ＹＳＷＳ１）は無効になっている。また、当該選択信号に対応して、プリチャージ制御信号ＰＲＥ１が選択状態となっており、センスイネーブル信号ＳＥ１、ワード選択信号ＷＯＲＤ１及びカラムスイッチ選択信号ＹＳＷ１が非選択状態となっている。これにより、第１の設定値が選択された場合には、命令発行制御信号ＣＣＮＴ１としてプリチャージ制御信号ＰＲＥ１が出力される。また、この第１の設定値は、命令発行制御信号ＣＣＮＴ１の出力タイミングの前倒し量が論理回路１０の動作サイクルの０％であることを指定するものである。
【００９４】
また、第２の設定値を指定する場合、テスト信号ＴＥＳＴ１、ＴＥＳＴ２は、１、０である。また、第２の設定値では、選択信号としてＳＥＳＥ１が有効になっており、その他の選択信号（ＰＲＳＥ１、ＷＲＳＥ１、ＹＳＷＳ１）は無効になっている。また、当該選択信号に対応して、センスイネーブル信号ＳＥ１が選択状態となっており、プリチャージ制御信号ＰＲＥ１、ワード選択信号ＷＯＲＤ１及びカラムスイッチ選択信号ＹＳＷ１が非選択状態となっている。これにより、第２の設定値が選択された場合には、命令発行制御信号ＣＣＮＴ１としてセンスイネーブル信号ＳＥ１が出力される。また、この第２の設定値は、命令発行制御信号ＣＣＮＴ１の出力タイミングの前倒し量が論理回路１０の動作サイクルの５％であることを指定するものである。
【００９５】
また、第３の設定値を指定する場合、テスト信号ＴＥＳＴ１、ＴＥＳＴ２は、０、１である。また、第３の設定値では、選択信号としてＷＲＳＥ１が有効になっており、その他の選択信号（ＰＲＳＥ１、ＳＥＳＥ１、ＹＳＷＳ１）は無効になっている。また、当該選択信号に対応して、ワード選択信号ＷＯＲＤ１が選択状態となっており、プリチャージ制御信号ＰＲＥ１、センスイネーブル信号ＳＥ１及びカラムスイッチ選択信号ＹＳＷ１が非選択状態となっている。これにより、第３の設定値が選択された場合には、命令発行制御信号ＣＣＮＴ１としてワード選択信号ＷＯＲＤ１が出力される。また、この第３の設定値は、命令発行制御信号ＣＣＮＴ１の出力タイミングの前倒し量が論理回路１０の動作サイクルの１０％であることを指定するものである。
【００９６】
また、第４の設定値を指定する場合、テスト信号ＴＥＳＴ１、ＴＥＳＴ２は、１、１である。また、第４の設定値では、選択信号としてＹＳＷＳ１が有効になっており、その他の選択信号（ＰＲＳＥ１、ＳＥＳＥ１、ＷＲＳＥ１）は無効になっている。また、当該選択信号に対応して、カラムスイッチ選択信号ＹＳＷ１が選択状態となっており、プリチャージ制御信号ＰＲＥ１、センスイネーブル信号ＳＥ１及びワード選択信号ＷＯＲＤ１が非選択状態となっている。これにより、第４の設定値が選択された場合には、命令発行制御信号ＣＣＮＴ１としてカラムスイッチ選択信号ＹＳＷ１が出力される。また、この第４の設定値は、命令発行制御信号ＣＣＮＴ１の出力タイミングの前倒し量が論理回路１０の動作サイクルの２０％であることを指定するものである。
【００９７】
また、テスト信号ＴＥＳＴ１、ＴＥＳＴ２の値を変化させた場合にメモリマクロが出力する命令発行制御信号ＣＣＮＴ１の変化の様子を示すタイミングチャートを図８に示す。図８に示すタイミングチャートは、第１のメモリマクロ１１の動作例を示すものである。図８に示すように、論理回路１０の動作サイクルは、マクロ選択信号ＭＳの立ち上がりから、次のマクロ選択信号ＭＳの立ち上がりの期間を１サイクルとして規定される。また、図８に示す例では、メモリマクロからのデータの読み出し処理のみを示した。
【００９８】
そして、図８に示す例では、サイクル０においてテスト信号ＴＥＳＴ１、ＴＥＳＴ２を０、０として第１の設定値を指定し、サイクル１においてテスト信号ＴＥＳＴ１、ＴＥＳＴ２を１、０として第２の設定値を指定し、サイクル２においてテスト信号ＴＥＳＴ１、ＴＥＳＴ２を０、１として第３の設定値を指定し、サイクル３においてテスト信号ＴＥＳＴ１、ＴＥＳＴ２を１、１として第４の設定値を指定する。これにより、第１のメモリマクロ１１が出力する命令発行制御信号ＣＣＮＴ１の出力タイミングの前倒し量は、サイクル０、サイクル１、サイクル２、サイクル３の順で大きくなる。
【００９９】
また、図９にステップＳ５の動作判定の例を示す。図９に示すように、テストフローでは、テスト信号ＴＥＳＴ１、ＴＥＳＴ２を変更することで、テストで利用する設定値を選択し、選択した設定値による判定結果により、その後利用する設定値を決定する。
【０１００】
図９に示す例では、第１のメモリマクロ１１は、ＴＥＳＴ１、ＴＥＳＴ２が０、０のとき、すなわち第１の設定値を選択している場合に良品として判定される。そのため、第１のメモリマクロ１１に対しては、設定値として第１の設定値を利用することが決定される。第ｍのメモリマクロ１ｍは、ＴＥＳＴ１、ＴＥＳＴ２が０、１のとき、すなわち第３の設定値を選択している場合に良品として判定される。そのため、第ｍのメモリマクロ１ｍに対しては、設定値として第３の設定値を利用することが決定される。第ｎのメモリマクロ１ｎは、ＴＥＳＴ１、ＴＥＳＴ２が１、１のとき、すなわち第４の設定値を選択している場合に良品として判定される。そのため、第ｎのメモリマクロ１ｎに対しては、設定値として第４の設定値を利用することが決定される。
【０１０１】
上記説明より、本実施の形態にかかる半導体装置１は、論理回路１０とメモリマクロとの間に生じる信号遅延時間に応じて、メモリマクロが命令発行制御信号ＣＣＮＴｉを出力するタイミングを処理完了時よりも前倒して出力する。これにより、半導体装置１は、制御信号を出力してから命令発行制御信号を受信するまでの時間をメモリマクロとの距離に関わらず一定に保つことができる。従って、半導体装置１では、信号遅延時間に起因する論理回路の動作サイクルのばらつきを抑制し、一定の動作サイクルで動作することができる。つまり、半導体装置１では、動作サイクルの時間が長くなることを防止できるため、動作速度の向上を実現することができる。
【０１０２】
また、半導体装置１では、命令発行制御信号ＣＣＮＴｉとして出力する信号を、すでにマクロ内で利用されているマクロ内信号から選択する。これにより、半導体装置１では、異なるタイミングで出力される命令発行制御信号ＣＣＮＴｉのために別途信号を生成する事なく、また、新たな回路の追加も必要としない。従って、半導体装置１では、このよう制御を行うことによる回路規模の増大を極めて小さくすることができる。
【０１０３】
また、本実施の形態にかかる半導体装置１では、命令発行制御信号の出力タイミングを当該半導体装置の状態に応じて設定するテスト手段（論理回路１０が出力するテスト信号と当該テスト信号に応じて設定を変更するマクロ内の命令設定回路３１）を有する。そして、当該テスト手段により半導体装置１の特性に応じたマクロ毎の設定値を設定する。これにより、半導体装置１では、半導体装置１の製造工程において生じたばらつきによらず、一定の性能を確保することが可能になる。
【０１０４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【０１０５】
ＡＤＤ    アドレス信号
ＭＳ    マクロ選択信号
ＯＥ    出力制御信号
ＷＥ    書き込み制御信号
ＴＥＳＴ１、ＴＥＳＴ２    テスト信号
ＤＯ１、ＤＯｍ、ＤＯｎ    出力データ
ＤＩ１、ＤＩｍ、ＤＩｎ    入力データ
ＣＣＮＴ１、ＣＣＮＴｍ、ＣＣＮＴｎ    命令発行制御信号
ＤＣＮＴ１、ＤＣＮＴｍ、ＤＣＮＴｎ    データ制御信号
ＷＯＲＤ１、ＷＯＲＤｍ、ＷＯＲＤｎ    ワード選択信号
ＰＲＥ１、ＰＲＥｍ、ＰＲＥｎ    プリチャージ制御信号
ＳＥ１、ＳＥｍ、ＳＥｎ    センスイネーブル信号
ＹＳＷ１、ＹＳＷｍ、ＹＳＷｎ    カラムスイッチ選択信号
ＲＡＳ１、ＲＡＳｍ、ＲＡＳｎ    ロウ活性信号
１    半導体装置
１０    論理回路
１１、１ｍ、１ｎ    メモリマクロ
１２    記憶装置
２０    メモリブロック
２１    ロウ制御回路
２２    カラム制御回路
２３    ロウデコーダ
２４    カラムデコーダ
２５    メモリセルアレイ
２６    入出力制御回路
３０    命令発行回路
３１    命令設定回路
３２、３３    選択回路
【図１】
2011159223.tif 000003
【図２】
2011159223.tif 000004
【図３】
2011159223.tif 000005
【図４】
2011159223.tif 000006
【図５】
2011159223.tif 000007
【図６】
2011159223.tif 000008
【図７】
2011159223.tif 000009
【図８】
2011159223.tif 000010
【図９】
2011159223.tif 000011
【図１０】
2011159223.tif 000012
【図１１】
2011159223.tif 000013
【図１２】
2011159223.tif 000014