(57)【特許請求の範囲】
【請求項１】
素子（１００）のタイミングを最適化する方法であって：
（ａ）遅延発生器に遅延値を提供する段階；
（ｂ）前記遅延値に基づいて、前記遅延発生器によって変更素子制御信号を生成する段階；
（ｃ）前記変更素子制御信号を用い、オンチップ確認回路（１１０，４０４）を用いて前記素子を検査し、前記素子（１００）が機能し得る素子であるか否かについて判定を行う段階；
（ｄ）前記遅延発生器に新たな遅延値を提供する段階であって、該新たな遅延値は、前記遅延値とは異なりかつ前記遅延値と交換される、段階；および
（ｅ）段階（ｂ）ないし（ｄ）を繰り返し、前記素子（１００）に対して最適遅延値を決定する段階；
を具備することを特徴とする方法。
【請求項２】
素子（１００）のタイミングを最適化する方法であって、素子（１００）の機能性を確認するために用いられる前記素子（１００）内部の回路（１１０，４０４）すなわち確認回路を用い、該確認回路（１１０，４０４）は、前記素子（１００）が所定の素子基準を満たす場合に有効信号を発生し、前記方法は：
（ａ）可変遅延コントローラの遅延値を最大遅延値に設定する段階であって、該最大遅延値は、前記可変遅延コントローラによって表わすことができる最長可能遅延である、段階；
（ｂ）前記可変遅延コントローラを用い、素子制御信号のアクティブ・エッジを遅延値だけ遅延させることによって、変更素子制御信号を生成する段階；
（ｃ）前記変更素子制御信号を用い、前記確認回路（１１０，４０４）を用いることによって前記素子を検査し、前記素子（１００）が機能し得るか否かについて判定を行い、前記有効信号が発生した場合、前記素子（１００）が機能し得ると判定する段階；
（ｄ）前記遅延値を減少させて新たな遅延値を生成する段階であって、前記新たな遅延値は前記遅延値とは異なりかつ前記遅延値と交換される、段階；
（ｅ）前記有効信号が、前記素子（１００）が機能し得る状態にないことを示すまで、段階（ｂ）ないし（ｄ）を繰り返す段階；および
（ｆ）前記遅延値を増大させ、最適遅延値を確立する段階；
を具備することを特徴とする方法。
【請求項３】
素子（１００）のタイミングを最適化する方法であって、素子の機能性を確認するために用いられる前記素子（１００）内部の回路（１１０，４０４）すなわち確認回路を用い、該確認回路（１１０，４０４）は、前記素子（１００）が所定の素子基準を満たす場合に有効信号を発生し、前記方法は：
（ａ）可変遅延コントローラの遅延値を最少遅延値に設定する段階であって、該最少遅延値は、前記可変遅延コントローラによって表わすことができる最短可能遅延である、段階；
（ｂ）前記可変遅延コントローラを用い、素子制御信号のアクティブ・エッジを前記遅延値だけ遅延させることによって、変更素子制御信号を生成する段階；
（ｃ）前記変更素子制御信号を用い、前記確認回路（１１０，４０４）を用いることによって、前記素子を検査し、前記素子（１００）が機能し得るか否かについて判定し、前記有効信号が発生した場合、前記素子（１００）が機能し得ると判定する段階；
（ｄ）前記遅延値を増大させて新たな遅延値を生成する段階であって、前記新たな遅延値は前記遅延値とは異なりかつ前記遅延値と交換される、段階；
（ｅ）前記有効信号が、前記素子（１００）が機能し得る状態にないことを示すまで、段階（ｂ）ないし（ｄ）を繰り返す段階；および
（ｆ）前記遅延値を減少させ、最適遅延値を確立する段階；
を具備することを特徴とする方法。
【請求項４】
データ処理素子（１００）のタイミングを最適化する装置であって：
コンピュータの命令を実行する中央演算装置（ＣＰＵ）；
ＢＩＳＴを実行する内蔵自己検査（ＢＩＳＴ）素子（１１０，４０４）であって、前記ＣＰＵおよび前記データ処理素子（１００）の少なくとも一部に結合され、前記データ処理素子（１００）の少なくとも一部の機能性を判定し、前記データ処理素子（１００）の少なくとも一部が機能し得る場合、有効信号を生成する前記ＢＩＳＴ素子（１１０，４０４）；
可変遅延コントローラ（１２５）を有し、ＣＰＵに結合され、素子制御信号を受信する遅延発生器（１２０）であって、前記可変遅延コントローラ（１２５）は、前記遅延発生器（１２０）に対する遅延値を指定し、前記可変遅延コントローラ（１２５）の遅延値に基づいて、前記素子制御信号の少なくとも一部を前記遅延発生器（１２０）により遅延し、変更素子制御信号を生成する遅延発生器（１２０）；ならびに
前記ＣＰＵ，前記ＢＩＳＴ素子（１００，４０４），および前記遅延発生器（１２０）に結合され、前記コンピュータ命令をメモリ（４１０）に格納し、データを前記メモリ（４１０）に格納するメモリ・ユニット（４１０）であって、前記コンピュータ命令が：
前記可変遅延コントローラ（１２５）をある遅延値に設定するコンピュータ命令；
ＢＩＳＴを実行し、前記変更素子制御信号が前記有効信号を生成するか否かについて判定を行なうコンピュータ命令；
前記可変遅延コントローラ（１２５）を、新たな遅延値を有するように設定するコンピュータ命令；および
ＢＩＳＴを実行するコンピュータ命令を繰り返し、前記可変遅延コントローラ（１２５）を設定し、かつ最適遅延値が決定されるまで繰り返すコンピュータ命令；
を具備する、前記メモリ・ユニット（４１０）；
を具備することを特徴とする装置。
【請求項５】
素子（１００，４００）のタイミングを最適化する装置であって：
初期化ＢＩＳＴ信号を受信するように結合されているＢＩＳＴコントローラ（１１０，４０４）であって、該ＢＩＳＴコントローラは、前記素子（１００，４００）の少なくとも一部の機能性を判定し、かつ前記素子（１３０，４０８）の前記少なくとも一部が機能し得る場合に有効信号を生成し、前記初期化ＢＩＳＴ信号の受信時に、前記ＢＩＳＴコントローラ（１１０，４０４）は、前記素子（１３０，４０８）の少なくとも一部に検査シーケンスを適用し、前記素子（１３０，４０８）の少なくとも一部から検査結果を受信し、該検査結果を予測検査結果と比較し、前記素子（１３０，４０８）の前記少なくとも一部が機能し得るか否かについて判定を行うＢＩＳＴコントローラ（１１０，４０４）；および
可変遅延コントローラ（１２５，４０７）を有する遅延発生器（１２０，４０６）であって、該遅延発生器（１２０，４０６）は、前記初期化ＢＩＳＴ信号を供給し、前記ＢＩＳＴコントローラ（１１０，４０４）および少なくとも１つの素子制御信号に結合され、前記可変遅延コントローラ（１２５，４０７）は前記遅延発生器（１２０，４０６）に対する遅延値を指定し、前記可変遅延コントローラ（１２５，４０７）の前記遅延値に基づいて、素子制御信号の少なくとも一部を前記遅延発生器（１２０，４０６）によって遅延させ、変更素子制御信号を生成し、そして前記初期化ＢＩＳＴ信号は前記変更素子制御信号の生成時に供給される、遅延発生器（１２０，４０６）；
を具備することを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に半導体素子の検査に関し、更に特定すれば、オンチップ確認回路(on-chip verification circuitry)を用いた半導体素子の最適化に関するものである。
【０００２】
【従来の技術】
マイクロプロセッサ，マイクロコントローラ，およびメモリのような最近の半導体素子は、タイミング信号によって制御される。タイミング信号は、通常、当該素子が受信する外部クロック信号を基準とする。通常、所与の素子内のイベントは、タイミング信号の立ち上がりエッジおよび／または立ち下がりエッジによって制御される。加えて、素子の性能は、多くの場合、エッジによって起動されるイベントに基づいて制限される。例えば、ある素子のデータ経路に関連するラッチは、タイミング信号およびデータ経路間に特定の「セットアップ」時間を有する場合がある。素子の機能性(functionality) を保証するためには、このセットアップ時間を確認する必要がある。
【０００３】
【発明が解決しようとする課題】
半導体素子の性能は、プロセス，温度，および電圧変動と共に変動するので、半導体供給者は、可能な素子条件全体にわたる機能性を保証するために、マージンを指定する必要がある。このようなマージンを設けると、性能および消費電力に関して満足が得られる最適な半導体素子性能を得ることができない。例えば、タイミング信号を発生する基となるクロック周波数を指定することは一般的であるが、最悪事態の環境における動作を保証するために十分遅くなっている。このために、通常の動作状態における素子の性能が制限されることになる。更に、素子の性能が制限されると、それらを用いるシステムの性能も制限されてしまう。したがって、半導体素子の全体的な性能を向上させることができれば、望ましいであろう。
【０００４】
【課題を解決するための手段】
本発明のオンチップ最適化回路は、動作において、タイミング信号のアクティブ・エッジを遅延させる量を示す遅延値を受信または発生する。この遅延値に基づいて、タイミング信号のアクティブ・エッジを変化させることにより、変更素子タイミングを形成する。変更素子タイミングを用い、オンチップ確認回路を用いて素子を検査し、その機能性を判定する。この検査に基づいて、最適な遅延値が見出されたか否かについて判定を行う。最適な遅延値が決定されなかった場合、新たな遅延値を用いて、新たな変更素子タイミングを生成する。この機能性検査および判定シーケンスは、最適値が判定されるまで繰り返される。
【０００５】
【発明の実施の形態】
図１は、本発明による半導体素子１００をブロック図形態で示す。半導体素子１００は、オンチップ最適化回路１０５，および半導体素子１３０の部分も含む。チップ最適化回路１０５は、この半導体素子１３０の部分に結合されている。動作において、オンチップ最適化回路１０５は、素子１３０から素子制御信号１３１、即ち、タイミング信号を受信する。これらのタイミング信号は、通常、外部クロックのようなインターフェース信号１３５の１つを基準とするが、オンチップ最適化回路１０５内のみで発生することも可能である。素子１３０からのタイミング信号に基づいて、オンチップ最適化回路１０５は、変更素子制御信号１２１、即ち、変更素子タイミングを素子１３０に供給する。加えて、オンチップ確認回路１１０は、この変更素子制御信号１２１に基づいて、半導体素子１３０の部分が機能し得るか否かについて判定を行う。好適実施例では、素子制御信号１３１は、変更素子制御信号１２１の発生に対して、一定の基準を与える。
【０００６】
確認回路１１０の検査結果に基づいて、オンチップ最適化回路１０５は、改善した信号がシステム性能に関して一層最適となるような、変更素子制御信号１２１の改善が得られたか否かについて判定を行う方法について素子制御信号１３１を更に改善する。尚、半導体素子１００においては、素子制御信号１３１および変更素子制御信号１２１双方とも、素子部分１３０を最適化回路１０５に接続するように示されていることを注記しておく。非最適化動作の間、素子制御信号１３１を用いて素子部分１３０に対する制御を行うことは、当業者には理解されよう。最適化の間、素子制御信号１３１はオンチップ最適化回路１０５によって受信され、オンチップ最適化回路１０５は、素子制御信号１３１の代わりに、変更素子制御信号１２１を供給して素子１３０を制御する。非最適化動作の間、オンチップ最適化回路１０５は素子制御信号１３１を利用する際、変更素子制御信号１２１を通じて、単に素子制御信号１３１をオンチップ最適化回路１０５に通過させることも可能である。
【０００７】
図１において、オンチップ最適化回路１０５は、更に、遅延発生器１２０に結合されたチップ確認回路１１０を含む。遅延発生器１２０は、更に、可変遅延コントローラ１２５を含む。本実施例では、チップ確認回路１１０は、半導体素子１３０の前述の部分の検査を実施し、監視するために必要な回路を与え、一方遅延発生器１２０は素子制御信号１３１を変更し、変更素子制御信号１２１を生成する。遅延発生器１２０については、図２を参照しながら更に詳しく論ずることにする。
【０００８】
動作において、半導体素子１００に対する最適性能点(optimal performance point) を判定する際、チップ確認回路１１０は遅延値を遅延発生器１２０に供給する。一方、素子制御信号１３１は、遅延発生器１２０によって受信され、かつ変更を受け、変更素子制御信号１２１を発生する。この変更素子制御信号１２１は、次に半導体素子１３０の部分に供給される。並行して、チップ確認回路１１０は、半導体素子１３０の部分からの素子信号１３２を監視する。素子信号１３２に基づいて、チップ確認回路１１０は、変更素子制御信号１２１によって、半導体素子１３０の部分から有効な応答が得られるか否かについて判定を行う。有効な応答が受信された場合、半導体素子１３０の部分は機能し得ると判定される。
【０００９】
他の実施例では、チップ確認回路１１０が制御回路も含み、チップ確認回路１１０は、複数の素子制御信号１３１を表わす素子制御信号１３１を受信する。各素子制御信号１３１は、遅延発生器１２０で変更することにより、１つ以上の変更素子制御信号１２１を供給することができる。これによって、チップ確認回路１１０は、制御信号間に特定のタイミング関係を指定し、最適性能点を判定することが可能となる。
【００１０】
最適性能点は、半導体素子毎に異なることは、当業者には理解されよう。加えて、何が「最適な」性能を構成するかは、ユーザによって変わり得る。例えば、あるユーザは第２信号を犠牲にしてでも第１信号の最適化を図りたい場合がある。逆に、他のユーザは、第１信号を犠牲にして第２信号の最適化を図りたい場合もあろう。更に他の最適化には、電力のために速度を犠牲にすることも考えられる。
【００１１】
本発明によれば、チップ確認回路１１０は、内蔵自己検査（ＢＩＳＴ：built-in self test）回路を内部に含む。ＢＩＳＴ回路は当技術では既知であり、特定の素子に対してチップ上に集積されている。ＢＩＳＴは、その特定の素子に自己検査処理を実行する。しかしながら、ＢＩＳＴ回路には半導体素子の最適動作点を判定する機能はない。したがって、ＢＩＳＴが既に存在する場合、素子の最適性能タイミングを達成するために必要とされる追加回路は最少で済む。
【００１２】
図２は、図１の遅延発生器１２０の可変遅延コントローラ１２５を実施する回路６００の一実施例を示す。遅延発生器６００は、ＡＮＤゲート６０２，６０６，結合ＡＮＤ／ＯＲゲート６０３，６０４，６０５，および遅延レジスタ６１０で構成されている。ＡＮＤゲート６０２，６０６は、各々、第１入力，第２入力，および出力を有する。結合ＡＮＤ／ＯＲゲート６０３，６０４，６０５は、各々、第１ＡＮＤ入力，第２ＡＮＤ入力，ＡＮＤ出力，ＡＮＤ出力に結合されている第１ＯＲ入力，第２ＯＲ入力，およびＯＲ出力を有する。ＡＮＤ６０２の出力は、６０３の第２ＯＲ入力に接続されている。６０３のＯＲ出力は、６０４の第２ＯＲ入力に接続されている。６０４のＯＲ出力は、６０５の第２ＯＲ入力に接続されている。６０５のＯＲ出力は、ＡＮＤ６０６の第２入力に接続されている。素子制御信号１３１は、ＡＮＤ６０２，６０６の第１入力，および結合ＡＮＤ／ＯＲゲート６０３，６０４，６０５の第１ＡＮＤ入力によって受信される。
【００１３】
４つの論理素子６０２，６０３，６０４，６０５の各々は、遅延レジスタ６１０内に対応する位置を有する。ＡＮＤ６０２の第２入力は、遅延レジスタ６１０のビットＤ３のビット値を受信するように接続されている。６０３の第２ＡＮＤ入力は、遅延レジスタ６１０のビットＤ２のビット値を受信するように接続されている。６０４の第２ＡＮＤ入力は、遅延レジスタ６１０のビットＤ１のビット値を受信するように接続されている。６０５のゲートの第２入力は、遅延レジスタ６１０のビットＤ０に接続されている。尚、例示の目的のために４ビット制御レジスタを用いているが、あらゆるビット数でも実施可能であることは理解されよう。更に、図示した実施例では、遅延発生器は、可変遅延コントローラ６００以外の回路を有さないことも注記しておく。本発明の他の実施例では、インターフェース回路のような種々の機能を遅延発生器１２０に含ませることも可能である。
【００１４】
本実施例では、チップ確認回路１１０は、遅延レジスタ６１０にある値を書き込む。この遅延レジスタ値は、素子制御信号１３１の立ち上がりエッジのタイミングを制御するために用いられる。実際には、図３に示すように、これが素子制御信号１３１の正パルスを減少させる。他の実施例では、増分または変化信号（図示せず）に基づいて、遅延レジスタを自動的に更新することも可能である。かかる実施例では、あるアルゴリズムを用いて次の値を書き込む。かかるアルゴリズムは、遅延レジスタ１６０を通じてビット値をシフトする程度の簡単なものとすることができる。
【００１５】
図３は、可変遅延コントローラ６００の動作を強調する一連の波形を示し、素子制御信号１３１は、元の立ち上がりエッジを有するものとして示されている。遅延レジスタ６１０が％００００の二進値を有する場合（％は二進数を表わす）、可変遅延コントローラ６００は、パルスを有さない変更素子制御信号１２１を生成する。これが発生するのは、論理素子６０２ないし６０５がそれらの出力に論理レベル０を発生し、レジスタ値を０とするからである。その結果、ＡＮＤ６０６は、その第２入力に論理レベル０を受信し、その出力に論理レベル０を発生する。通常の動作では、値％００００は用いられることはない。したがって、最少の遅延を発生するためには、レジスタ値は％０００１でなければならない。これは、図３の変更素子制御信号１２１の遅延レジスタ値（Ｄ）＝％０００１の波形に示されている。
【００１６】
Ｄ＝％０００１の場合、図２の遅延レジスタ６１０のビットＤ０は、結合ＡＮＤ／ＯＲゲート６０５の第１ＡＮＤ入力に１を供給する。６０５のＡＮＤ部分は、その第１入力において、素子制御信号１３１からの論理レベル０を受信している限り、論理レベル０をそのＯＲ部分に供給する。先に論じたように、ビットＤ１，Ｄ２，Ｄ３は全て０であるので、論理素子６０２ないし６０４は、それらの出力に論理レベル０を発生し、ＮＯＲ部分６０５の第２入力に、論理レベル０を受信させる。素子制御信号１３１が論理レベル・ハイに遷移すると、ＡＮＤ部分６０５は論理レベルがハイの出力を生成する。一方、ＯＲ部分６０５は論理レベル・ハイに遷移し、これがＡＮＤ６０６の第２入力に受信される。ほぼ同時に、ＡＮＤ６０６への第１入力が、素子制御信号１３１からの論理レベル・ハイを受信する。これによって、実際に、変更素子制御信号１２１がＡＮＤゲート６０６の出力に生成される。
【００１７】
ＡＮＤゲート６０６を通過する際の遅延部分は無視でき、６０５を通過する際の遅延は有限であると仮定すると、素子制御信号１３１の元のエッジは位置ＥＤＧＥ０にシフトされる。ＥＤＧＥ０および元のエッジ間の差は、論理部分６０５を通過する際の遅延を表わす有限時間量を表わす。同様に、遅延レジスタ６１０の値が％００１０の場合、論理部分６０４は、ＡＮＤ／ＯＲ６０５からの１つを含む、２つの有限遅延を有するアクティブ・エッジを発生し、ＯＲ部分６０５の第２入力に論理１を供給し、第２有限遅延を与える。注記すべきは、％００１０の遅延値の効果は、２つの有限遅延値が認識されることである。したがって、図３に表わすように、％００１０の遅延値は、ＥＤＧＥ１として立ち上がりエッジを生成し、このために、生成される素子制御信号１３１パルスは小さくなる。
【００１８】
同様に、遅延値％０１００は更に短いパルスを生成し、％１０００の値は、図示の実施例では、単なるスパイクを生成するのみである。このスパイクは、立ち上がりエッジが立ち下がりエッジとして同じ位置で移動したという状況を表わす。スパイクによって表される信号は、その信号が実際に存在する可能性もしない可能性もあり、これは未定義の結果を発生するため、通常動作の間では望ましくない。
【００１９】
図２および図３の例は、本発明による一実施例に過ぎない。図示の実施例では、遅延レジスタ６１０の１つのビットを、アクティブな１状態で表わさなければならない。図示の実施例では、遅延レジスタ６１０の多数のビットがアクティブ１状態を含み、最下位ビット即ち最も右側のビットのみが制御を行う。例えば、値％０００１，％００１１，％１１１１は全て同じ遅延を生成する。しかしながら、図２に示す例では、値％０００１は、余分な論理部分の遷移がないので、最も電力消費が少ない。
【００２０】
遅延レジスタに％００１１のようなあらゆる値を含ませておき、デコーダが、例えば％０１００のような、適切な情報を論理部分６０２，６０３，６０４，６０５に供給するような方式を書くことも可能であることは理解されよう。加えて、遅延発生器６００は、立ち上がりエッジに対して立ち下がりエッジを発生させるようにも設計可能であることも理解されよう。他の実施例では、遅延発生器６００は、立ち上がりエッジおよび立ち下がりエッジのいずれかまたは双方の移動を、互いに独立して行えるように設計するこも可能である。更に他の実施例では、遅延レジスタ６００は位相ロック・ループ技法を用いることも可能であり、この場合、遅延レジスタ６１０内の値は、素子制御信号１３１に対する所望の周波数または位相関係を表わすことも理解されよう。更に他の実施例では、これら可能な遅延発生器の組み合わせの使用も可能であることも理解されよう。更に他の実施例では、遅延以外の素子制御信号１３１の部分、例えば、信号電圧遷移幅(signal voltge swing) を変更することが可能であり、遅延発生器６００によって、立ち上がりまたは立ち下がり回数を変更することも可能であることも理解されよう。
【００２１】
図示の実施例では、素子制御信号１３１は、変更素子制御信号１２１の発生の基準として作用する。したがって、信号１３１の立ち上がりおよび立ち下がりエッジは、信号１２１の発生を制御する。例えば、信号１２１の立ち下がりエッジは信号１３１の立ち下がりエッジに関係し、一方、信号１２１の立ち上がりエッジは信号１３１の立ち上がりエッジおよび遅延値に関係する。通常、信号１３１のパルス幅は最大遅延値変更子(maximum delay value modifier)よりも長い。これによって、パルスの発生を保証する。遅延が信号１３１のパルス幅に等しい場合、望ましくないスパイクが発生する可能性がある。遅延値が１３１のパルス幅よりも大きい場合、ロー信号を維持することが望ましい。
【００２２】
図４は、素子２００の部分を示し、図１の半導体素子１３０の具体的な実施態様である。この素子２００の部分は、本発明の更に別の例に用いられるメモリ素子の部分を表わす。素子２００は、ビット・セル２１２，２１４，２６２，２６４，２７２，２７４，センス・アンプ２１６，２１８，およびマルチプレクサ２２０で構成されている。
【００２３】
ビット・セル２１２，２６２，２７２は、ＢＬ１と称される第１ビット線，および* ＢＬ１と称される第２ビット線（接頭辞「* 」を有する信号は、同一名称の信号の逆を表わす）に接続されている。ビット・セル２１４，２６４，２７４は、ＢＬ２と称される第２ビット線，および* ＢＬ２と称される反転第２ビット線に接続されている。ビット・セル２１２，２１４は、ワード線２２２に結合されている。ビット・セル２６２，２６４は、ワード線２２４に結合されている。ビット・セル２７２，２７４はワード線２２６に結合されている。センス・アンプ２１６は、ＢＬ１および* ＢＬ１を受信するように結合されている。センス・アンプ２１８は、ＢＬ２および* ＢＬ２を受信するように結合され、マルチプレクサ２２０はセンス・アンプ２１６からの出力信号，およびセンス・アンプ２１８からの出力信号を受信するように結合され、データ出力２２８と称される信号を生成する。
【００２４】
例示の目的のために、メモリ２００は、ビット線をロー電位からＶｄｄに駆動するものとするが、このメモリは逆の場合でも動作可能であることは理解されよう。動作において、リード・サイクルの間、各ビット・セル２１２，２１４，２６２，２６４，２７２，２７４は、単一ビットの情報を表わす電荷を含み、これは論理ハイ値または論理ロー値のいずれかを表わす。アサートされたワード線２２２は、ビット・セル２１４が読み出される。ワード線２２２がアサートされると、ビット・セル２１２，２１４によって検出され、ビット・セルの各々に、格納されている電荷に基づいて当該ビット線および反転ビット線(bit line bar line) を駆動させる。したがって、所与の論理レベルを示すためには、ビット・セル２１４は、* ＢＬ１を放電しつつＢＬ１を充電し、逆に、反対の論理レベルを示すためには、ビット・セル２１４はＢＬ１を放電しつつ* ＢＬ１を充電する。同時に、ビット・セル２１４がそのビット線の充電／放電を行っている間、ビット・セル２１２は、それ自体に格納されている電荷に基づいて、ビット線ＢＬ２，* ＢＬ２を駆動する。
【００２５】
尚、ビット・セル２１４によってビット線に駆動される論理レベル・ハイおよび論理レベル・ローは、素子毎に異なる可能性があること、ならびにビット線および反転ビット線は、それらの間に検出可能な差が生ずるように駆動されることが鍵となる特徴であることは理解されよう。センス・アンプ２１８が検出し、実際の論理レベルを判定するのは、この検出可能な差である。
【００２６】
ビット線が充電された結果として、センス・アンプ２１６，２１８は、ビット・セル２１２，２１４それぞれが置かれている論理レベル状態を判定する。これらの論理レベル値は、マルチプレクサ２２０に提示される。図示しない回路によって、ビット・セル２１２または２１４のどちらに格納されている値をマルチプレクサの出力が反映しているのかを判定する。
【００２７】
図５は、メモリ回路２００の動作を更に詳細に示すタイミング図である。第１波形は、幅が４Ｎのパルスを生成するワード線信号（ＷＬ）を示す。Ｎは任意の時間値である。ワード線信号がアクティブになると、即ち、図５ではハイになると、ＢＬと称される第２波形において、代表的なビット線が充電されることが示されている。これは、ビット・セル２１２のようなビット・セルがＢＬ１または* ＢＬ１を充電することを表わす。同様に、ワード線の正パルスの立ち下がりエッジの前の時点３１４において、代表的なビット線が完全に充電されたことを示す。この立ち下がりエッジは、ビット線信号上の時点３１６において表されている。図５のタイミング表現は、例示の目的のためのものであり、本発明を限定する意味はない。尚、図５に示すように、メモリのビット線は完全には充電または放電しないのが一般的であることは理解されよう。
【００２８】
同様に、ＷＬの後続の立ち上がりエッジに続いて、ビット線が完全に放電される。ＢＬは、ワード線の第２正パルスの立ち下がりエッジよりもかなり前の時点３１８において完全に放電されることが示されている。図示のように、各パルスの立ち上がりエッジに対して、ＢＬは３Ｎを時間単位として充電し、一方ＢＬは２Ｎを時間単位として完全に放電する。
【００２９】
図示の例では、完全充電点は、アクティブ・パルスの終端より１Ｎ時間単位前に発生する。図１を再度参照し、４Ｎのパルスを有するワード線が素子制御信号１３１であると仮定すると、チップ確認回路１１０は、３Ｎのパルスを有する変更素子制御信号１２１は、部分１３０、またはこの例ではメモリ部分２００によって受信されるように、遅延発生器１２０に遅延を与えることを指示可能である。この実施例では、移動するのは、図２および図３の例に示すような立ち上がりエッジではなく、立ち下がりエッジである。
【００３０】
ワード線が３Ｎ時間単位の正パルス値を有する場合、ビット線は充電され続け時点３１４における立ち下がりエッジの時点において完全充電となることがわかる。加えて、ワード線の第２クロック・パルスにの立ち下がりエッジ上の点３２０において、ビット線は完全に放電される。その結果、メモリ部分２００の機能性は、図１のチップ確認回路１１０によって、機能し得ると判定されることになる。
【００３１】
次に、遅延発生器１２０によって生成された２Ｎの正パルスを有するワード線を示す。この場合、時点３１２においてワード線の立ち下がりエッジが発生したときに、ビット線は未だ完全に充電されていないことが示されている。これは、素子の特性および仕様に応じて、機能性に影響を与える場合も与えない場合もある。完全に充電されたビット線が必要な場合、幅が２Ｎのワード線では、素子の障害を発生する。再度図１を参照すると、オンチップ最適化回路１０５が遅延値を変化させ、素子制御信号１３１によって表されるワード線の正の幅を２Ｎ時間単位に狭めた場合、オンチップ確認回路１１０は障害を検出し、それによって、パルス幅を狭める最適化レベルを越えたことがわかる。
【００３２】
通常、図４のセンス・アンプは部分的に充電されたビット線を検出することが可能である。したがって、ビット線を完全に充電する必要がない場合もある。この状況では、２時間単位(2 time units)の幅を有するパルスの方が適切であり、ビット線を完全に充電させないことによって、一層の電力節約が可能となる。例えば、時点３１２における充電値を時点３１６における最大充電値よりも１０％低くすると、毎秒数百万本のビット線に充電が行われる場合、１０％までの電力節約を得ることができる。
【００３３】
図５の波形ＷＬ（３Ｎ）に関しては、ビット線は２時間単位後に完全に充電されるので、素子の性能に関する問題を発生することはないことが示されている。図５のタイミング図は、いかにしてクロック・エッジを移動させ最適な性能を判定することによって、図４のメモリ素子部分２００を最適化できるかを示す。（この状況では、最適な性能とは、できるだけ短いパルスで機能動作を可能にすることと定義する。）この例では、更に、ビット線を完全に充電する必要がない場合に、いかにして所与のパルス幅によって消費電力を削減可能とするかについても示した。また、パルス幅が狭くなっているので、全体としてクロック・レートを高めることも可能であり、所与の時間内におけるアクセス回数が増え、素子レベルだけでなく、最新のデスク・トップ・コンピュータの場合のように、システム・レベルにおいても、素子性能の一層の最適化が可能であることも注記しておくべきであろう。
【００３４】
メモリ部分２００に関する説明では、図５のビット線タイミングに照準を当てたが、本発明は、最適な時点にセンス・アンプをオンとし、ビット・レベルを検出した後にこれをオフにすることも可能である点は理解されよう。これによって、一層の電力節約が可能となる。
【００３５】
図６は、本発明による半導体素子４００を示す。半導体素子４００は、半導体素子４０８の部分，およびチップ最適化回路１０５’から成る。チップ最適化回路１０５’は、ＣＰＵ４０２，チップ確認回路４０４，遅延発生器４０６，およびメモリ４１０で構成されている。ＣＰＵ４０２は、INITIATE OPTIMIZATION SIGNAL（最適化信号初期化）を受信し、遅延発生器４０６およびチップ確認回路４０４に結合されており、有効信号の受信を含む。チップ確認回路４０４は、半導体素子４０８の部分に結合されている。メモリ４１０は、ＣＰＵ４０２および遅延発生器４０６に結合されている。遅延発生器４０６は、半導体素子４０８の部分から素子制御信号１３１を受信し、この半導体素子４０８の部分に、変更素子制御信号１２１を供給するように結合されている。更に、半導体素子４００は、外部からINTERFACE SIGNALS を受信するように結合されている。
【００３６】
部分４０８は、図１の部分１３０と類似しており、遅延発生器４０６は図１の遅延発生器１２０と類似している。図１の１１０のチップ確認回路は全体として確認を行うが、図６の実施例は、ＣＰＵ４０２およびメモリ４１０と協同してチップ確認機能を実施する。このため、ＣＰＵ４０２は、チップ上のタイミング変化の効果を判定することができる。本発明の一実施例では、ＣＰＵ４０２は、図１のチップ確認回路１１０によって提供されるチップ確認機能全てを行うことも可能である。かかる構成では、ＣＰＵ４０２は、メモリ４１０のある位置に遅延値を書き込む。メモリ４１０は揮発性メモリでも不揮発性メモリでもよい。遅延発生器４０６はこの位置にアクセスし、先に論じたように、変更素子制御信号１２１を発生する。ＣＰＵ４０２およびオンチップ確認回路４０４からの結果は、素子のタイミングをいかに最適化するかを判定するために用いることができる。図７は、本発明による方法５００を示す。ステップ５１１から開始し、図１または図６に示したような、オンチップ確認回路を内蔵する素子を用意する。次に、ステップ５１２において、遅延値を供給する。この遅延値は、ユーザが供給するか、あるいはオンチップ制御回路（図示せず）によって発生することを注記しておく。好適実施例では、オンチップ制御回路は遅延発生器１２０の一部とするか、あるいは別個の制御ブロック（図示せず）とする。制御機能はチップ確認回路１１０内に設けることも可能であるが、その際、ＢＩＳＴ回路のような確認回路が既に存在したり、別個に用いられる場合、そのに一部に変更が必要となる。図示のフローにおける遅延値は、最適素子性能を判定するための開始点となる。次に、ステップ５１３において、遅延値に基づいて、変更素子タイミングを供給する。この変更素子タイミングは、図３のタイミングと同等でもよい。次に、ステップ５１４において、変更タイミングに基づいて、オンチップ確認回路を用いて素子の検査を行う。
【００３７】
次に、ステップ５３０において、最適遅延値が決定されたか否かについて判定を行う。既に論じたように、最適遅延値は素子によって異なり、ユーザによって決定され供給される。一例として、最適遅延値は、最適タイミングが２つのエッジ間に最も狭いパルス幅を生成するように指定すればよい。最適遅延値が決定されていないと判定されたなら、フローはステップ５１６に進み、ステップ５１３の遅延値を、新しい遅延値で置き換える。次に、フローはステップ５１３に進み、ステップ５１３，５１４，５３０，５１６を含むループが形成される。このループは、最適遅延値が満たされたときを判定するのに役立つ。ステップ５３０において最適遅延値が見出されたことが判定された場合、フローはステップ５１７に進む。ステップ５１７において、最適遅延値をセーブする。先に論じたように、この遅延値は、揮発性メモリまたは不揮発性メモリにセーブすることができる。不揮発性メモリに格納された場合、この値は今後の使用のために格納することができ、電源投入時にフロー５００を繰り返す必要性をなくすことが可能となる。逆に、揮発性メモリを使用する場合、値は素子の電力サイクルの残りの間使用可能である。尚、ステップ５１７において、電流値に基づいて最適値を生成しなければならない場合もあり、これを行う際、通常詳しい機能確認をしないことを注記しておく。次に、ステップ５１８において、セーブされた最適遅延値を用いて、素子を動作させる。
【００３８】
ステップ５１３において供給される変更システム・タイミングは、最初は最も弱い値(least aggressive value)として開始することができ、以後システムが故障するまで増加させていくことは、当業者には理解されよう。尚、最も強い値とは、素子が障害を発生する可能性が最も高い値であることを注記しておく。これによって、最適値が識別されることを保証する。同様に、初期変更タイミングを最も強い値とし、以後システムが合格するまで、低下させることも可能である。更に他の実施態様では、遅延値を増大および減少させ、最適値が確認されるまで、最適値のいずれかの側で変更タイミングを「跳ね返らせる(bounce)」ことによって、最適な位置を繰り返し判定することも可能である。最適タイミングを識別する他の実施態様も存在すること、およびここに提示する特定例に本発明を限定する意図はないことは認められよう。
【００３９】
図８は、本発明による方法５５０を示す。方法５５０は、以下に示す点を除いて方法５００と同様である。方法５５０では、ステップ５１１の次に、ステップ５３１を挿入し、セーブされた最適遅延値が存在するか否かについて判定を行う。真の場合、フローはステップ５１８におけるフローの終点に進み、この値を用いて処理を続ける。虚の場合、フローは、図７を参照して先に論じたように、ステップ５１２に進む。
【００４０】
以上の説明から、オンチップ確認回路を用いることによって、素子のタイミングを最適化することができ、したがって、広い動作マージンを用いて仕様に依存する必要性がなくなったことは明白であろう。最適化された素子タイミングを与えることにより、当該素子を用いるシステムの最適化も可能となる。これらのシステムは、最適化された部品を中心に設計することができ、あるいは個々の素子の最適化条件によってシステム全体をどのように構成するかを指定するように、自己構成(self-configure)を行う設計も可能である。例えば、素子の構成に基づき、システムは最大クロック・レートを決定し、システムの機能性を保証することができる。更に、システムは、素子およびシステムを周期的に最適化し直すように規定し、動作状態の変化による障害または規格から外れた挙動を防止することも可能である。加えて、本発明は、最少のテスタによる介在で自動的に高速ソーティング(speed sorting) を行うために用いることも可能である。これによって、高速ソーティングが望ましい場合にテスタ時間を短縮することができ、テスタは遅延レジスタ６１０を読み取り、最適な速度を判定するだけでよい。
【００４１】
現在ＢＩＳＴを使用している素子については、素子の障害を判定するためにＢＩＳＴ機能を用いることができるので、本発明は最少のオーバーヘッドを追加するだけで済む。したがって、性能を最大に高めつつ、最少の素子コストを実現することができる。
【００４２】
以上特定の実施例を参照しながら本発明について例示しかつ説明したが、更に別の変更や改善も当業者には想起されよう。例えば、図２の遅延発生器６００は、各段６０２ないし６０５に対して共通の遅延値を有するものとして説明したが、実際には、必要であれば各段に異なる遅延を持たせるように設計することも可能である。更に、本発明は、単一の最適化の定義、または最適化を達成するときを判定する手段には限定されないことも理解されよう。例えば、最大遅延値を最初に用い、その後障害が発生するまで減少させることも可能であり、あるいは遅延値を長くまたは短くなるように変化させることにより、最適な処理性能が得られる遅延を判定することも可能である。更に別の例として、チップ確認回路１１０が、遅延値のような制御機能を遅延発生器１２０に提供するものとして説明したが、この制御機能を遅延発生器ブロック１２０内に保持したり、オンチップ最適化回路１０５の別個の制御ブロックに保持することも可能である。したがって、本発明は、ここに例示した特定の形態に限定される訳ではなく、特許請求の範囲は、本発明の範囲および精神から逸脱しない全ての変更に及ぶことは理解されよう。
【図面の簡単な説明】
【図１】本発明の素子１００を示すブロック図。
【図２】本発明による遅延発生器を示すブロック論理図。
【図３】図２の遅延発生器の信号波形間の関係を示す波形図。
【図４】メモリ素子２００の一部を示すブロック図。
【図５】図４の素子２００の信号波形間の関係を示す波形図。
【図６】本発明による素子４００を示すブロック図。
【図７】本発明による方法５００を示すフロー・チャート。
【図８】本発明による方法５５０を示すフロー・チャート。
【符号の説明】
１００    半導体素子
１０５    オンチップ最適化回路
１０５’    チップ最適化回路
１１０    チップ確認回路
１２０    遅延発生器
１２１    変更素子制御信号
１２５    可変遅延コントローラ
１３０    半導体素子
１３１    素子制御信号
１３２    素子信号
２００    メモリ素子
２１２，２１４，２６２，２６４，２７２，２７４    ビット・セル
２１６，２１８    センス・アンプ
２２０    マルチプレクサ
４００    半導体素
４０２    ＣＰＵ
４０４    チップ確認回路
４０６    遅延発生器
４０８    半導体素子の部分
４１０    メモリ
６００    遅延発生器
６０２，６０６    ＡＮＤゲート
６０３，６０４，６０５    結合ＡＮＤ／ＯＲゲート
６１０    遅延レジスタ
【図１】
0003684295.tif 000002
【図２】
0003684295.tif 000003
【図３】
0003684295.tif 000004
【図４】
0003684295.tif 000005
【図５】
0003684295.tif 000006
【図６】
0003684295.tif 000007
【図７】
0003684295.tif 000008
【図８】
0003684295.tif 000009