JP5653177B2 - メモリインターフェース回路及び半導体装置 - Google Patents

メモリインターフェース回路及び半導体装置 Download PDF

Info

Publication number
JP5653177B2
JP5653177B2 JP2010247398A JP2010247398A JP5653177B2 JP 5653177 B2 JP5653177 B2 JP 5653177B2 JP 2010247398 A JP2010247398 A JP 2010247398A JP 2010247398 A JP2010247398 A JP 2010247398A JP 5653177 B2 JP5653177 B2 JP 5653177B2
Authority
JP
Japan
Prior art keywords
value
delay
latch
delay value
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010247398A
Other languages
English (en)
Other versions
JP2012098996A (ja
Inventor
英生 望月
英生 望月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010247398A priority Critical patent/JP5653177B2/ja
Priority to US13/272,856 priority patent/US8315109B2/en
Publication of JP2012098996A publication Critical patent/JP2012098996A/ja
Priority to US13/617,421 priority patent/US8406065B2/en
Priority to US13/779,293 priority patent/US9053764B2/en
Application granted granted Critical
Publication of JP5653177B2 publication Critical patent/JP5653177B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Description

本発明はメモリインターフェース回路及び半導体装置に関し、特に通常のメモリアクセス動作中にタイミング調整を行うメモリインターフェース回路及び半導体装置に関する。
近年のコンピュータシステムでは、処理の増大に対応するため、SDRAM(Synchronous Dynamic Random Access Memory)が用いられている。具体的には、DDR(Double-Data-Rate)2−SDRAMやDDR3−SDRAMなどの高速メモリデバイスが登場している。例えば、DDR3−SDRAMでは、ストローブ信号の立ち上がり又は立下りに同期して、データ信号の入力又は出力が行われる。
このようなメモリデバイスを搭載したシステムでは、システム系の温度変化や電圧変化などの状態変化に伴い、ストローブ信号とデータ信号との間に、タイミングのずれが生じる。このタイミングのずれにより、データ信号を正しく取得できない自体が発生してしまう。そのため、DDR3−SDRAMなどでは、書き込みや読み出しなどの通常のメモリアクセス動作を停止し、ストローブ信号とデータ信号との間のタイミング調整を行うキャリブレーション動作が頻繁に実行される。ところが、キャリブレーション動作が実行されている際には、データの書き込み/読み出しを行えないので、データの高速入出力の妨げとなってしまう。
このような問題に対して、通常のメモリアクセス動作中にストローブ信号とデータ信号との間のタイミング調整を行うメモリインターフェースが提案されている(特許文献1)。図24は、通常のメモリアクセス動作中にストローブ信号とデータ信号との間のタイミング調整を行うメモリインターフェースの例を示す機能ブロック図である。
メモリシステム1100は、メモリデバイス1101およびメモリインターフェース1102から構成される。メモリデバイス1101とメモリインターフェース1102は少なくとも、データ信号線1112とストローブ信号線1113により接続される。
メモリデバイス1101は、ストローブ信号の立ち上がりエッジまたは立下りエッジのいずれか一方でデータをラッチするSDR(Single Data Rate)−SDRAMでもよく、また、ストローブ信号の立ち上がりエッジおよび立下りエッジの両方でデータをラッチするDDR(Double Data Rate)−SDRAMでもよい。
以下では、簡明のため、ストローブ信号の立ち上がりエッジまたは立下りエッジの一方に関係する構成および動作について説明する。
データ信号線1112は、メモリインターフェース1102からメモリデバイス1101に書き込むデータ、およびメモリデバイス1101から読み出すデータを転送するのに使用され、一般的には双方向の信号線である。図24ではデータ信号線は1本であるが、ストローブ信号線1113に対応する複数のデータ信号線で構成されていてもかまわない。
ストローブ信号線1113は、メモリインターフェース1102からメモリデバイス1101にデータを書き込む場合に、メモリインターフェース1102からメモリデバイス1101へのライトストローブ信号を出力するために使用される。逆に、メモリインターフェース1102がメモリデバイス1101からデータを読み出す場合には、メモリデバイス1101からメモリインターフェース1102へのリードストローブ信号を出力するために使用され、一般的には双方向の信号線である。
メモリインターフェース1102は、第一のデータラッチ部1103、第一の可変遅延部1104、第一の遅延制御部1105、第二のデータラッチ部1106、第二の可変遅延部1107、第二の遅延制御部1108、比較器1109、遅延判定部1110、トグル検出器1111、方向制御部1114を含む。
メモリデバイス1101にDDR−SDRAMを用いる場合は、メモリインターフェース1102におけるこれらの構成要素を、1本のストローブ信号線1113に対して、ストローブ信号の立ち上がりエッジおよび立下りエッジのそれぞれに対応して2組設けることにより、ストローブ信号の立ち上がりエッジおよび立下りエッジのそれぞれについて独立にタイミング調整を行うことができる。
データ信号線1112は前述のとおり、一般的に双方向信号であるので、その場合、方向制御部1114を用いて、応用装置からライトデータ1115を転送する方向と、第一のデータラッチ部1103および第二のデータラッチ部1106へリードデータを転送する方向に制御される。
応用装置は、メモリインターフェース1102を介してメモリデバイス1101を利用する回路であり、本発明では応用装置の機能を限定しない。応用装置は、メモリインターフェース1102から、リードデータ1116を受け取る。応用装置は、一例としてCPU(Central Processing Unit)であってもよい。
第一のデータラッチ部1103は、第一の可変遅延部1104を通じて遅延されたストローブ信号線1113から伝わったストローブ信号を用いて、方向制御部1114を通じて伝わったデータをラッチする。ラッチした情報は、応用装置に伝わり使用されるだけでなく、比較器1109に送られる。
第二のデータラッチ部1106は、第二の可変遅延部1107を通じて遅延されたストローブ信号線1113から伝わったストローブ信号を用いて、方向制御部1114を通じて伝わったデータをラッチする。ラッチした情報は、比較器1109に送られ、さらにトグル検出器1111にも送られる。
第一の可変遅延部1104は、データ信号線1112および方向制御部1114を通じて第一のデータラッチ部1103に送られるデータ信号に対する、ストローブ信号線1113を通じて伝わるストローブ信号のタイミングの調整を行う。第一の可変遅延部1104は遅延量を変更可能な遅延ラインを含んでいる。これによりタイミング調整を行うことができる。
第二の可変遅延部1107は、データ信号線1112および方向制御部1114を通じて第二のデータラッチ部1106に送られるデータ信号に対する、ストローブ信号線1113を通じて伝わるストローブ信号のタイミングの調整を行う。可変遅延部1107は遅延量を変更可能な遅延ラインを含んでいる。これによりタイミング調整を行うことができる。
第一の遅延制御部1105は、遅延判定部1110から送られる遅延設定量から、第一の可変遅延部1104に内蔵される遅延ラインの調整量を計算し、第一の可変遅延部1104に設定を行う。
第二の遅延制御部1108は、遅延判定部1110から送られる遅延設定量から、第二の可変遅延部1107に内蔵される遅延ラインの調整量を計算し、第二の可変遅延部1107に設定を行う。
比較器1109は、第一のデータラッチ部1103でラッチしたデータの値と、第二のデータラッチ部1106でラッチしたデータの値の比較を行い、一致しているかしていないかの結果を遅延判定部1110に送る。
遅延判定部1110は、比較器1109からの結果と、その時の第一の遅延制御部1105の遅延設定量と、第二の遅延制御部1108の遅延設定量を記録する。この記録から第一の遅延制御部1105と第二の遅延制御部1108の適切な遅延設定量を更新し、設定を行う。
このメモリシステム1100は、予めキャリブレーションされた第一のデータラッチ部1103が、第一の可変遅延部1104を介して遅延したストローブ信号に同期して、リードデータをラッチする。一方、第二のデータラッチ部1106は、第二の可変遅延部1107を介して遅延したストローブ信号に同期して、リードデータをラッチする。そして、第一のデータラッチ部1103の出力がトグルしたタイミングで、第一のデータラッチ部1103の出力値と第2の第二のデータラッチ部1106とを比較する。
第一のデータラッチ部1103の出力値と第二のデータラッチ部1106が一致する場合には、第二の可変遅延部1107における遅延量を、第二の遅延制御部1108を介して、第一の可変遅延部1104における遅延量に対して差が広がるように調整する。この調整動作は、第一のデータラッチ部1103の出力値と第二のデータラッチ部1106とが一致しなくなるまで行われる。これにより、第一のデータラッチ部1103の出力値及び第二のデータラッチ部1106の出力値の一致/不一致の境界となる遅延量を知ることができる。
第一のデータラッチ部1103の出力値と第二のデータラッチ部1106の出力値が一致しない場合には、第二の可変遅延部1107における遅延量を、第二の遅延制御部1108を介して、第一の可変遅延部1104における遅延量に対して差が小さくなるように調整する。この調整動作は、第1のデータラッチの出力値と第二のデータラッチ部1106の出力値とが一致するまで行われる。これにより、第一のデータラッチ部1103の出力値及び第二のデータラッチ部1106の出力値の一致/不一致の境界となる遅延量を知ることができる。
そして、第一のデータラッチ部1103及び第二のデータラッチ部1106の出力値の一致/不一致の境界となる遅延量に対して、安全余裕を加味した遅延量を算出される。DRAMにおいて一般的に行われるリフレッシュ中に、第一の遅延制御部1105を介して、この安全余裕を加味した遅延量を第一の可変遅延部1104に設定する。これにより、第一の可変遅延部1104に設定する遅延量を更新できる。その結果、キャリブレーション動作を繰り返すことなく、ストローブ信号とデータ信号との間のタイミング調整を行うことができるとしている。
また、位相インターポレータを用いることにより、ストローブ信号とデータ信号との間のタイミング調整を行うメモリシステムが提案されている(特許文献2)。
特開2010−86415号公報 特開2010−26896号公報
ところが、特許文献1に開示されるようなメモリインターフェースでは、第一の可変遅延部1104の遅延量を調整するためだけのブロックが存在する。すなわち、第二のデータラッチ部1106、第二の可変遅延部1107、第二の遅延制御部1108、比較器1109、遅延判定部1110及びトグル検出器1111は、第一の可変遅延部1104の遅延量の調整にのみ機能し、データの書き込み/読み出しには寄与しない。換言すれば、特許文献1に開示されるようなメモリインターフェースを採用するならば、データの書き込み/読み出しには寄与しないブロックを組み込まなければならない。その結果、メモリインターフェースの回路規模が増大してしまう。よって、メモリシステムの小型化の実現を妨げる原因となる。
また、特許文献2に開示されたメモリシステムにおいても、同様に、データの書き込み/読み出しには寄与しない位相インターポレータを組み込まなければならない。従って、上述のメモリインターフェースと同様の問題が生じる。
本発明の一態様であるメモリインターフェース回路は、ライト時に外部から受け取ったライトデータをメモリデバイスへ出力するデータ出力バッファと、ライト時に外部から受け取ったクロック信号の位相を遅らせたライトストローブ信号を、ストローブ信号出力バッファを介して前記メモリデバイスへ出力する書き込み遅延調整装置と、前記クロック信号に同期して、前記外部からの前記ライトデータをラッチする第1のラッチと、リード時に前記メモリデバイスから受け取ったリードデータを出力するデータ入力バッファと、リード時にストローブ信号入力バッファを介して前記メモリデバイスから受け取ったリードストローブ信号の位相を遅らせた遅延リードストローブ信号を出力し、ライト時に前記ストローブ信号入力バッファを介して前記ストローブ信号出力バッファからループバックされたライトストローブ信号を遅延させた遅延ライトストローブ信号を出力する読み出し遅延調整装置と、リード時に前記データ入力バッファからの前記リードデータを前記遅延リードストローブ信号に同期してラッチし、ライト時に前記データ入力バッファを介して前記データ出力バッファからループバックされた前記ライトデータを前記遅延ライトストローブ信号に同期してラッチする第2のラッチと、ライト時に前記第1のラッチの出力と前記第2のラッチの出力とを比較し、比較結果を比較結果信号として出力する比較器と、前記ライトストローブ信号又は前記リードストローブ信号を遅延させるために前記読み出し遅延調整装置に設定される遅延値が格納されたレジスタ部と、前記比較結果信号に応じて、前記レジスタ部に格納された前記遅延値を更新するレジスタ制御部と、前記レジスタ制御部により制御され、前記レジスタ部に格納された前記遅延値を前記読み出し遅延調整装置に設定する遅延選択部と、を備えるものである。
このメモリインターフェース回路は、前記ライトデータをループバックさせることにより、リード時に前記読み出し遅延調整装置に設定するリード時遅延値を、ライト時に最適化することができる。そのため、ライト時又はリード時などにおける通常のメモリアクセス動作を中断して、頻繁にキャリブレーション動作を行う必要が無い。また、ライト時のループバック動作を利用しているので、キャリブレーション動作にしか用いられない余分な回路を設ける必要が無い。その結果、通常のメモリアクセスを中断することなくストローブ信号とデータ信号との間のタイミング調整することができる、小型のメモリインターフェース回路を実現することができる。
本発明によれば、通常のメモリアクセスを中断することなくストローブ信号とデータ信号との間のタイミング調整することができる、小型のメモリインターフェース回路を提供することができる。
実施の形態1にかかるメモリインターフェース回路100を含む半導体装置120の構成を示す回路ブロック図である。 実施の形態1にかかるレジスタファイル45の値tA〜tDと比較器41のループバックテスト時の比較結果との関係を示す図である。 実施の形態1にかかるメモリインターフェース回路100の動作を示すフローチャートである。 実施の形態1の初期化フェーズ200における動作を示すフローチャートである。 実施の形態1の第1の初期化処理300における動作を示すフローチャートである。 実施の形態1の第1の初期化処理300における信号のタイミング例を示すタイミングチャートである。 実施の形態1の第2の初期化処理400における動作を示すフローチャートである。 実施の形態1の第2の初期化処理400における信号のタイミング例を示すタイミングチャートである。 実施の形態1の第3の初期化処理500における動作を示すフローチャートである。 実施の形態1の第1のフェーズ201の動作を示すフローチャートである。 実施の形態1の第2のフェーズ202の動作を示すフローチャートである。 実施の形態1の第3のフェーズ203の動作を示すフローチャートである。 実施の形態1の第4のフェーズ204の動作を示すフローチャートである。 実施の形態2にかかるメモリインターフェース回路140を含む半導体装置150の構成を示す回路ブロック図である。 実施の形態2にかかるメモリインターフェース回路140の動作を示すフローチャートである。 実施の形態2の初期化フェーズ210における動作を示すフローチャートである。 実施の形態2の第1の初期化処理310における動作を示すフローチャートである。 実施の形態2の第1の初期化処理310における信号のタイミング例を示すタイミングチャートである。 実施の形態2の第1のフェーズ211の動作を示すフローチャートである。 実施の形態2の第2のフェーズ212の動作を示すフローチャートである。 実施の形態3にかかるメモリインターフェース回路160を含む半導体装置170の構成を示す回路ブロック図である。 実施の形態3にかかるメモリインターフェース回路160の動作を示すフローチャートである。 実施の形態4にかかるメモリシステム1000の構成を示すブロック図である。 通常のメモリアクセス動作中にストローブ信号とデータ信号との間のタイミング調整を行うメモリインターフェースの例を示す機能ブロック図である。
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
実施の形態1
まず、実施の形態1にかかるメモリインターフェース回路について説明する。実施の形態1では、DDR3−SDRAMが用いられる場合を例として説明する。図1は、実施の形態1にかかるメモリインターフェース回路100を含む半導体装置120の構成を示す回路ブロック図である。半導体装置120は、メモリインターフェース回路100及び外部回路110を有する。半導体装置120は、外部のメモリデバイス130と接続され、メモリコントローラとして機能する。上述の通り、本実施の形態では、DDR3−SDRAMがメモリデバイス130として用いられる。メモリインターフェース回路100は、外部回路110とメモリデバイス130との間のデータのやり取りを仲介する。
続いて、メモリインターフェース回路100の構成について、詳細に説明する。ライトデータ出力バッファ21の入力は、ライトデータ信号線51を介して、外部回路110と接続される。ライトデータ出力バッファ21の出力は、リードデータ入力バッファ22の入力及びデータ端子61と接続される。データ端子61は、単数又は複数のデータ信号線71を介して、メモリデバイス130と接続される。リードデータ入力バッファ22の出力は、リードデータラッチ11の入力と接続される。リードデータラッチ11の出力は、リードデータ信号線52を介して、外部回路110と接続される。
書き込み遅延調整装置(Write Delay−Locked Loop、以下WDLLと表記)31の入力は、クロック信号線53を介して、外部回路110と接続される。WDLL31の出力は、ストローブ信号出力バッファ23の入力と接続される。ストローブ信号出力バッファ23の出力は、ストローブ信号入力バッファ24の入力及びストローブ端子62と接続される。ストローブ端子62は、単数又は複数のストローブ信号線72を介して、メモリデバイス130と接続される。ストローブ信号入力バッファ24の出力は、読み出し遅延調整装置(Read Delay−Locked Loop、以下RDLLと表記)32の入力と接続される。RDLL32の出力は、リードデータラッチ11のイネーブル入力と接続される。
WDLL31は、入力されるクロック信号CLKの位相を90°遅らせたライトストローブ信号WDQSを出力する。RDLL32は、入力される信号の位相を遅らせた信号を出力する。
期待値取得用ラッチ12の入力は、ライトデータ信号線51を介して、外部回路110と接続される。期待値取得用ラッチ12のイネーブル入力は、クロック信号線53を介して、外部回路110と接続される。
比較器41は、2つの入力を有する。比較器41の一方の入力は、リードデータラッチ11の出力(結果値val1)と接続される。比較器41の他方の入力は、期待値取得用ラッチ12の出力(期待値val2)と接続される。比較器41の比較結果は、比較結果信号46として、レジスタ制御部42に出力される。レジスタ制御部42は、比較結果信号46又は遅延制御信号線54を介して入力される遅延制御信号DCSに応じて、レジスタ部43又は遅延選択部44に制御信号を出力する。
レジスタ部43には、レジスタファイル45が格納されている。レジスタファイル45は、ループバック左Fail確定値tA、ループバック左開口部tB、ループバック右開口部tC、ループバック右Fail確定値tD、左開口部推定値tE、右開口部推定値tF及びリード時遅延値tGの各値を含んでいる。これらの値の役割及び決定方法については、後述する。これらのレジスタファイル45の値tA〜tGは、レジスタ制御部42からの制御信号S1により、初期化され、又は更新される。また、外部回路110は、レジスタファイル45の値tA〜tGを監視するため、遅延値モニタ信号線55を介して、レジスタファイル45の値tA〜tGを遅延値モニタ信号DMSとして読み出す。
遅延選択部44は、レジスタ制御部42からの制御信号S2に応じて、レジスタ部43からレジスタファイル45の値tA〜tGのいずれかを読み出す。そして、読み出した値を、RDLL32の遅延量として設定する。RDLL32は、遅延選択部44によって設定された遅延量(レジスタファイル45の値tA〜tGのいずれか)を、RDLL32に入力される信号に与える。
続いて、メモリインターフェース回路100のライト時及びリード時の動作の概要について説明する。まず、リード時について説明する。リード時には、メモリデバイス130からリードデータ入力バッファ22へ、リードデータRDが出力される。リードデータRDは、データレートと同じ周波数にて読み出される。また、リードデータRDは、例えばバースト長が8のデータ信号として出力される。
また、ストローブ信号入力バッファ24を介して、メモリデバイス130からRDLL32へ、リードストローブ信号RDQSが供給される。リードストローブ信号RDQSは、データレートと同じ周波数にて供給される。また、リードストローブ信号RDQSは、例えば差動リードストローブ信号として供給される。図1においては、説明の便宜のため、リードストローブ信号RDQSを1本の信号として表示している。
RDLL32は、リードストローブ信号RDQSにリード時遅延値tGを与えた、遅延リードストローブ信号RDQS_dを、リードデータラッチ11へ出力する。この際、RDLL32には、前もってリード時遅延値tGが設定されている。
リードデータラッチ11は、遅延リードストローブ信号RDQS_dに同期して、リードデータRDをラッチする。そして、リードデータラッチ11は、ラッチしたリードデータRDを外部回路110へ出力する。これにより、メモリデバイス130からデータが読み出される。
次いで、ライト時について説明する。ライト時には、ライトデータ出力バッファ21を介して、外部回路110からメモリデバイス130へライトデータWDが供給される。また、外部回路110からWDLL31へ、クロック信号CLKが供給される。WDLL31は、クロック信号CLKの位相を90°遅らせた信号を、ライトストローブ信号WDQSとしてメモリデバイス130へ出力する。ライトデータWDは、ライトストローブ信号WDQSに同期してメモリデバイス130に書き込まれる。
また、ライトデータWDは、リードデータ入力バッファ22を介して、リードデータラッチ11へループバックされる。ライトストローブ信号WDQSは、ストローブ信号入力バッファ24を介して、RDLL32へ入力される。RDLL32は、ライトストローブ信号WDQSに対して、レジスタファイル45の値tA〜tFのいずれかの遅延を与えることにより、遅延ライトストローブ信号WDQS_dを生成する。遅延ライトストローブ信号WDQS_dはリードデータラッチ11へ出力される。
リードデータラッチ11は、遅延ライトストローブ信号WDQS_dに同期して、ループバックされたライトデータWDをラッチする。そして、リードデータラッチ11は、ラッチしたライトデータWDを、結果値val1として、比較器41へ出力する。
さらに、期待値取得用ラッチ12が、クロック信号CLKに同期してライトデータWDをラッチする。そして、期待値取得用ラッチ12は、ラッチしたライトデータWDを、期待値val2として、比較器41へ出力する。
比較器41は、結果値val1と期待値val2とを比較する。これにより、結果値val1と期待値val2とが一致する(以下、PASSと表記する)か、あるいは結果値val1と期待値val2とが一致しない(以下、FAILと表記する)か、が判断される。比較器41は、比較結果信号46を、レジスタ制御部42へ出力する。レジスタ制御部42は、比較結果信号46に応じて、レジスタ部43及び遅延選択部44を操作することにより、RDLL32に設定する遅延値を決定する。
すなわち、メモリインターフェース回路100は、ループバックされたライトデータWDの値(結果値val1)と、ループバックを受けないライトデータWD(期待値val2)と、を比較する。この比較は同じデータ同士を比較しているので、結果値val1と期待値val2とは、本来一致するはずである。ところが、ループバックされたライトデータWDは、リードデータ入力バッファ22からリードデータラッチ11までの経路を余計に伝搬しなければならない。
ところが、半導体装置120の温度変化などにより、このリード時の経路の状態は変化する。この変化により、リードデータラッチ11のラッチタイミングがずれてしまう場合が有る。すなわち、RDLL32から供給される遅延リードストローブ信号RDQS_dの位相が適切でない場合が生じる。この場合には、RDLL32に設定する遅延値を調整し、適切な遅延リードストローブ信号RDQS_dを供給すればよい。つまり、メモリインターフェース回路100は、結果値val1と期待値val2との比較結果(ループバック動作時の比較結果)に応じて、RDLL32に設定する遅延値を調整することが可能である。なお、RDLL32の遅延値の調整は、ライトデータWDだけでなく、ライトデータWDと同じ経路を介して供給されるテストデータを用いることも可能である。
次に、実施の形態1にかかるレジスタファイルの値tA〜tGの役割について説明する。まず、レジスタファイル45の値tA〜tDについて説明する。レジスタファイル45の値tA〜tDは、メモリインターフェース回路100における、ライト時のライトデータWDのループバック動作(以下、ループバックテスト)により設定される値である。
図2は、レジスタファイル45の値tA〜tDと比較器41のループバックテスト時の比較結果との関係を示す図である。図2に示すように、ループバックテスト時のRDLL32に設定する遅延値に応じて、比較器41の比較結果は変動する。区間D3は、ループバックテストを複数回行っても、全ての回において、結果値val1と期待値val2とが一致する結果(以下、ALL−PASSと表記する)が得られる遅延値の区間である。つまり、区間D3内の遅延値をRDLL32に設定してループバック動作を複数回行うと、全てPASSとなる。
ここで、ループバックテストの結果について説明する。以下では、DDR3−SDRAMにおいて、ライトデータWDがバースト長8のデータ信号として供給される場合を例として説明する。バースト長8のデータ信号は、連続する8ビットのデータにより構成される。比較器41は、8ビットのそれぞれのビットについて、結果値val1と期待値val2とを比較する。よって、比較器41は、8ビットのデータに対して、8回の比較動作を行う。
また、バースト長8のデータを1セットとすると、ライトデータ供給時には、複数セットのデータが供給される。例えば、4セットのデータが供給される場合には、比較器41は、(バースト長)×(セット数)=8×4=32ビットのそれぞれのビットについて、結果値val1と期待値val2とを比較する。よって、比較器41は、供給された32ビットのデータに対して、32回の比較動作を行う。
すなわち、比較器41は、供給されるライトデータWDのそれぞれのビットに対して、結果値val1と期待値val2とを比較する。上述の例のように、ライトデータWDのビット数が32ビットである場合、ALL−PASSとは、32回の比較動作の全てにおいて、結果値val1と期待値val2とが一致する場合を意味する。
同様に、32回の比較動作の全てにおいて、結果値val1と期待値val2とが不一致となる場合を、以下ではALL−FAILとする。また、ALL−PASSの近傍領域において32回の比較動作を行った結果、少なくとも1回の比較結果がFAILとなり、その他の比較結果がPASSとなる場合を、ONE−FAILとする。さらに、ALL−FAILの近傍領域において32回の比較動作を行った結果、少なくとも1回の比較結果がPASSとなり、他の比較結果がFAILとなる場合、ONE−PASSとする。
なお、上述の例ではライトデータWDがバースト長8のデータ信号として供給される場合について説明した。しかしながら、ライトデータWDの供給形態はこの例に限られるものではない。すなわち、ライトデータWDは、任意のバースト長で供給することが可能である。また、供給されるデータのセット数も、任意の数とすることが可能である。さらに、上述の例は、ライトデータWDだけでなく、ライトデータWDと同じ経路を介して供給されるテストデータ及びリードデータRDに適用することが可能である。
区間D1及びD5は、ループバックテストを複数回行った場合に、全ての回において、結果値val1と期待値val2とが一致しない結果の比較結果が得られる遅延値の区間である。つまり、区間D1又はD5内の遅延値をRDLL32に設定してループバック動作を複数回行うと、全てFAILとなる。
区間D2及びD4は、ループバックテストを複数回行った場合に、PASS及びFAILの双方の比較結果が得られる遅延値の区間である。つまり、区間D2又はD4内の遅延値をRDLL32に設定してループバック動作を複数回行うと、PASSとなることもあれば、FAILとなることもある。区間D2及びD4は、比較結果に偶然性が作用する区間である。この偶然性は、主としてジッタによる信号の揺らぎが原因である。
ループバック左Fail確定値tAは、区間D1における最大の遅延値である。すなわち、ループバック動作時のRDLL32に、ループバック左Fail確定値tAを遅延値として設定すると、比較器41の比較結果はALL−FAILとなる。従って、RDLL32にループバック左Fail確定値tAよりも1ステップ遅い遅延値を設定すると、もはやALL−FAILの比較結果を得ることはできない。なお、ここでいう1ステップとは、RDLL32に設定する遅延値の最小の調整ピッチを意味する。
ループバック左開口部tBは、区間D3における最小の遅延値である。すなわち、ループバック動作時のRDLL32に、ループバック左開口部tBを遅延値として設定すると、比較器41の比較結果はALL−PASSとなる。従って、RDLL32にループバック左開口部tBよりも1ステップ早い遅延値を設定すると、もはやALL−PASSの比較結果を得ることはできない。
ループバック右開口部tCは、区間D3における最大の遅延値である。すなわち、ループバック動作時のRDLL32に、ループバック右開口部tCを遅延値として設定すると、比較器41の比較結果はALL−PASSとなる。従って、RDLL32にループバック右開口部tCよりも1ステップ遅い遅延値を設定すると、もはやALL−PASSの比較結果を得ることはできない。
ループバック右Fail確定値tDは、区間D5における最小の遅延値である。すなわち、ループバック動作時のRDLL32に、ループバック右Fail確定値tDを遅延値として設定すると、比較器41の比較結果はALL−FAILとなる。従って、RDLL32にループバック右Fail確定値tDよりも1ステップ早い遅延値を設定すると、もはやALL−FAILの比較結果を得ることはできない。
続いて、左開口部推定値tE及び右開口部推定値tFについて説明する。左開口部推定値tE及び右開口部推定値tFは、通常のキャリブレーションを行うことにより設定される値である。すなわち、テストデータを予め書き込み、書き込んだテストデータを読み出す動作を行う。そして、書き込んだテストデータと、読み出したデータと、を比較することで、左開口部推定値tE及び右開口部推定値tFが決定される。
具体的には、書き込んだテストデータを読み出す際、リードデータラッチ11は、RDLL32から供給される遅延リードストローブ信号RDQS_dに同期して、読み出したテストデータをラッチする。このとき、RDLL32に設定する遅延値に応じて、比較器41の比較結果は変動する。すなわち、RDLL32に設定される遅延値が適正範囲内であれば、キャリブレーションを何度行っても、比較結果はALL−PASSとなる。一方、RDLL32に設定される遅延値が適正範囲外であれば、比較結果がFAILとなる場合が生じる。
左開口部推定値tEは、キャリブレーション動作においてALL−PASSの結果が得られる最小の遅延値である。すなわち、キャリブレーション動作時のRDLL32に、左開口部推定値tEを遅延値として設定すると、比較器41の比較結果はALL−PASSとなる。
右開口部推定値tFは、ALL−PASSの結果が得られる最大の遅延値である。すなわち、キャリブレーション動作時のRDLL32に、右開口部推定値tFを遅延値として設定すると、比較器41の比較結果はALL−PASSとなる。
すなわち、左開口部推定値tE及び右開口部推定値tFは、メモリデバイス130からデータを適切に読み出すことができる遅延値の下限及び上限を示している。このことは、リードデータRDの読み出し時(リード時)についても同様に成り立つ。従って、換言すれば、左開口部推定値tE及び右開口部推定値tFは、メモリデバイス130からリードデータRDを適切に読み出すことができる遅延値の下限及び上限を示している。
続いて、リード時遅延値tGについて説明する。リード時遅延値tGは、左開口部推定値tE及び右開口部推定値tFに基づいて算出される値である。本実施の形態では、リード時遅延値tGは、左開口部推定値tE及び右開口部推定値tFの中間値が設定される。従って、リード時のRDLL32にリード時遅延値tGを設定することで、適切にリードデータRDを読み出すことが可能となる。
ところが、半導体装置120の信号伝達特性は、半導体装置120やメモリデバイス130などの温度変化などの状態変化により影響を受ける。この影響により、半導体装置120の信号伝達特性が変動するため、状態変化が起こる環境下で適切なリードデータRDの読み出しを継続するには、リード時遅延値tGを適宜調整することが必要になる。
メモリインターフェース回路100では、リード時遅延値tGを調整するために、ライト時のループバックテストにより、tA〜tDを決定する。そして、tA〜tDの値に基づいて、左開口部推定値tE及び右開口部推定値tFを推定する。つまり、ライト時のループバックテストに基づいて、リード時遅延値tGが逐次更新されてゆく。
次に、レジスタファイルの値tA〜tGの決定方法について、詳細に説明する。図3は、実施の形態1にかかるメモリインターフェース回路100の動作を示すフローチャートである。図3に示すように、メモリインターフェース回路100の動作は、初期化フェーズ200と通常動作フェーズ(第1〜第4のフェーズ201〜204)に大別される。初期化フェーズ200においては、レジスタファイルの値tA〜tGの初期値設定が行われる。通常動作フェーズ(第1〜第4のフェーズ201〜204)では、通常のデータの書き込み及び読み出しが行われる。加えて、通常動作フェーズ(第1〜第4のフェーズ201〜204)では、データの書き込み時(ライト時)に、レジスタファイルの値tA〜tGの調整が行われる。なお、第1〜4のフェーズ201〜204は、ループ処理として実行される。
まず、初期化フェーズ200について説明する。図4は、初期化フェーズ200における動作を示すフローチャートである。図4に示すように、初期化フェーズ200では、第1の初期化処理300、第2初期化処理400及び第3の初期化処理500が行われる。
第1の初期化処理300について説明する。図5は、第1の初期化処理300における動作を示すフローチャートである。第1の初期化処理300では、ループバック左Fail確定値tA及びループバック左開口部tBの初期値が設定される。初期化フェーズ200が開始される間には、半導体装置120はリセット状態となっている。この状態で、レジスタ制御部42はリセット状態の解除を待つ(フェーズ301)。
リセット状態が解除されると、レジスタ制御部42は、レジスタファイル45に、tA〜tGの仮初期値を設定する(フェーズ302)。ここで、tA〜tGの仮初期値は、予め決めておいた任意の値とすることができる。また、tA〜tGの仮初期値は、レジスタ制御部42が、入力される遅延制御信号DCSに応じて決定してもよい。その後、第1のバッファ制御信号SB1により、ライトデータ出力バッファ21、ストローブ信号出力バッファ23を有効化する。第2のバッファ制御信号SB2により、リードデータ入力バッファ22、ストローブ信号入力バッファ24を有効化する。ライトデータ出力バッファ21、リードデータ入力バッファ22、ストローブ信号出力バッファ23及びストローブ信号入力バッファ24は、第1の初期化処理300及び第2初期化処理400を通じて、有効化されたまま保持される。
続いて、ループバック左開口部tBの初期値を設定する処理が行われる。レジスタ制御部42は、遅延制御信号DCSに応じて遅延選択部44を操作し、レジスタファイル45から読み出したループバック左開口部tBの仮初期値を、RDLL32の遅延値として設定する。そして、外部回路110から、ライトデータ信号線51を介して、任意のテストデータが供給される。テストデータは、ライトデータWD又はリードデータRDと同様に、所定のバースト長を有するバーストデータとして供給される。さらに、テストデータは、順次供給されるN(Nは、2以上の整数)組のバーストデータとして供給される。テストデータは、ライトデータ出力バッファ21、リードデータ入力バッファ22を通じて、リードデータラッチ11にループバックされる。同時に、テストデータは、期待値取得用ラッチ12にも入力される。すなわち、RDLL32にループバック左開口部tBを設定した状態において、ループバックテストを実行する。
リードデータラッチ11は、RDLL32からの遅延リードストローブ信号RDQS_dに同期して、ループバックされたテストデータをラッチする。そして、リードデータラッチ11は、ラッチしたデータを、結果値val1として、比較器41へ出力する。
期待値取得用ラッチ12は、クロック信号CLKに同期して、テストデータをラッチする。そして、期待値取得用ラッチ12は、ラッチしたデータを、期待値val2として、比較器41へ出力する。
比較器41は、結果値val1と期待値val2とを比較する。比較器41は、N組のバーストデータに対して、N回の比較を繰り返し、N通りの比較結果を出力する。なお、繰り返しの回数Nは、ジッタ成分による比較結果の不安定性を反映できるならば、任意の回数でよい(フェーズ303)。
レジスタ制御部42は、比較器41の比較結果を評価する。N回の比較動作の結果がALL−PASSである場合には、レジスタ制御部42は、レジスタファイル45のループバック左開口部tBの値を、仮初期値に対して1ステップ早い値に更新する(フェーズ304)。そして、ループバック左開口部tBの値を更新した後は、再度フェーズ303へ戻る。フェーズ303に戻ると、レジスタ制御部42は、更新されたループバック左開口部tBの値を、RDLL32の遅延値として設定する。つまり、N回の比較結果のうち少なくとも1つがFAILとなる遅延値が見つかるまで、フェーズ303及びフェーズ304が繰り返し実行される。これにより、ループバック左開口部tBの初期値として、区間D3における最小の遅延値を設定することができる。
なお、ループバック左開口部tBの仮初期値に対して、ONE−FAILの比較結果が得られる場合が有り得る。この場合、ループバック左開口部tBの仮初期値は、早すぎる値に設定されていると推定できる。よって、ループバック左開口部tBの仮初期値に、より遅い値を設定して、第1の初期化処理300をやり直す。これにより、ループバック左開口部tBの初期値を適切に設定することができる。
また、ループバック左開口部tBの値を、RDLL32に設定可能な最小の値まで早めてもALL−PASSの比較結果しか得られない場合について検討する。この場合、RDLL32に設定可能な最小の値を、ループバック左開口部tBの値として設定することが可能である。さらに、繰り返し回数やテストデータを変更して、第1の初期化処理300をやり直すこともできる。
続いて、ループバック左Fail確定値tAの初期値を設定する処理が行われる。レジスタ制御部42は、遅延制御信号DCSに応じて遅延選択部44を操作し、レジスタファイル45から読み出したループバック左Fail確定値tAの仮初期値を、RDLL32の遅延値として設定する。この状態において、比較器41は、フェーズ303と同様に、順次供給されるN組のバーストデータ(テストデータ)について比較動作を行う(フェーズ305)。すなわち、RDLL32にループバック左Fail確定値tAを設定した状態において、ループバックテストを実行する。
レジスタ制御部42は、比較器41の比較結果を評価する。N回の比較動作の結果のうち少なくとも1つがPASSとなる場合には、レジスタ制御部42は、レジスタファイル45のループバック左Fail確定値tAの値を、仮初期値に対して1ステップ早い値に更新する(フェーズ306)。そして、ループバック左Fail確定値tAの値を更新した後は、再度フェーズ305へ戻る。フェーズ305に戻ると、レジスタ制御部42は、更新されたループバック左Fail確定値tAの値を、RDLL32の遅延値として設定する。つまり、N回の比較結果がALL−FAILとなる遅延値が見つかるまで、フェーズ305及びフェーズ306が繰り返し実行される。これにより、ループバック左Fail確定値tAとして、区間D1における最大の遅延値を設定することができる。
ここで、第1の初期化処理300においてRDLL32に設定する遅延値について考察する。ここでは、リードデータラッチ11は、遅延ライトストローブ信号WDQS_dが遷移するタイミング(立ち上がり/立ち下がり)で、ループバックされたテストデータをラッチするもとのとする。図6は、第1の初期化処理300における信号のタイミング例を示すタイミングチャートである。ループバック左Fail確定値tA及びループバック左開口部tBの初期値を決定するには、図6に示すように、本来はクロック信号CLKの立ち上がりタイミングT1付近を探索する必要がある。しかし、遅延ライトストローブ信号WDQS_dは、RDLL32でライトストローブ信号WDQSを遅延させることにより生成されたものである。また、ライトストローブ信号WDQSは、WDLL31により、クロック信号CLKに対して90°遅延している。RDLL32でライトストローブ信号WDQSの位相を早めることは物理的に不可能であるので、このままではタイミングT1付近での探索を行うことはできない。
そのため、RDLL32では、ライトストローブ信号WDQSの位相を大きく遅延させ、クロック信号CLKに対してほぼ1周期遅れの遅延ライトストローブ信号WDQS_dを生成する。これにより、遅延ライトストローブ信号WDQS_dの立ち上がりをタイミングT1付近に位置させることができる。その結果、リードデータラッチ11は、タイミングT1付近で、ループバックされたテストデータDataをラッチすることができる。つまり、ループバック左Fail確定値tA及びループバック左開口部tBは、270°前後の比較的大きな値を有することとなる。
次いで、第2の初期化処理400について説明する。図7は、第2の初期化処理400における動作を示すフローチャートである。まず、ループバック右開口部tCの初期値を設定する処理が行われる。レジスタ制御部42は、遅延制御信号DCSに応じて遅延選択部44を操作し、レジスタファイル45から読み出したループバック右開口部tCの仮初期値を、RDLL32の遅延値として設定する。この状態おいて、比較器41は、第1の初期化処理300のフェーズ303と同様に、順次供給されるN組のバーストデータ(テストデータ)について比較動作を行う(フェーズ401)。すなわち、RDLL32にループバック右開口部tCを設定した状態において、ループバックテストを実行する。
レジスタ制御部42は、比較器41の比較結果を評価する。N回の比較動作の結果がALL−PASSである場合には、レジスタ制御部42は、レジスタファイル45のループバック右開口部tCの値を、仮初期値に対して1ステップ遅い値に更新する(フェーズ402)。そして、ループバック右開口部tCの値を更新した後は、再度フェーズ401へ戻る。フェーズ401に戻ると、レジスタ制御部42は、更新されたループバック右開口部tCの値を、RDLL32の遅延値として設定する。つまり、N回の比較動作の結果がONE−FAILとなる遅延値が見つかるまで、フェーズ401及びフェーズ402が繰り返し実行される。これにより、ループバック右開口部tCとして、区間D3における最大の遅延値を設定することができる。
なお、ループバック右開口部tCの仮初期値に対して、ONE−FAILの比較結果が得られる場合が有り得る。この場合、ループバック右開口部tCの仮初期値は、遅すぎる値に設定されていると推定できる。よって、ループバック右開口部tCの仮初期値に、より早い値を設定して、第2の初期化処理400をやり直す。これにより、ループバック右開口部tCの初期値を適切に決定することができる。
続いて、まず、ループバック右Fail確定値tDの初期値を設定する処理が行われる。レジスタ制御部42は、遅延制御信号DCSに応じて遅延選択部44を操作し、レジスタファイル45から読み出したループバック右Fail確定値tDの仮初期値を、RDLL32の遅延値として設定する。この状態おいて、比較器41は、フェーズ401と同様に、順次供給されるN組のバーストデータ(テストデータ)について比較動作を行う(フェーズ403)。すなわち、RDLL32にループバック右Fail確定値tDを設定した状態において、ループバックテストを実行する。
レジスタ制御部42は、比較器41の比較結果を評価する。N回の比較動作の結果がONE−PASSである場合には、レジスタ制御部42は、レジスタファイル45のループバック右Fail確定値tDの値を、仮初期値に対して1ステップ遅い値に更新する(フェーズ404)。そして、ループバック右Fail確定値tDの値を更新した後は、再度フェーズ403へ戻る。フェーズ403に戻ると、レジスタ制御部42は、更新されたループバック右Fail確定値tDの値を、RDLL32の遅延値として設定する。つまり、N回の比較動作の結果がALL−FAILとなる遅延値が見つかるまで、フェーズ403及びフェーズ404が繰り返し実行される。これにより、ループバック右Fail確定値tDとして、区間D5における最小の遅延値を設定することができる。
ここで、第2の初期化処理400においてRDLL32に設定する遅延値について考察する。ここでは、リードデータラッチ11は、遅延ライトストローブ信号WDQS_dが遷移するタイミング(立ち上がり/立ち下がり)で、ループバックされたテストデータをラッチするもとのとする。図8は、第2の初期化処理400における信号のタイミング例を示すタイミングチャートである。ループバック右開口部tC及びループバック右Fail確定値tDの初期値を決定するには、図8に示すように、本来はクロック信号CLKの立ち下がりタイミングT2付近を探索する必要がある。ここで、遅延ライトストローブ信号WDQS_dは、RDLL32でライトストローブ信号WDQSを遅延させることにより生成されたものである。また、ライトストローブ信号WDQSは、WDLL31により、クロック信号CLKに対して90°遅延している。よって、RDLL32において、ライトストローブ信号WDQSの位相をさらに遅延させることにより、遅延ライトストローブ信号WDQS_dの立ち上がりを、タイミングT2付近に位置させることができる。その結果、リードデータラッチ11は、タイミングT2付近で、ループバックされたテストデータDataをラッチすることができる。
つまり、ループバック右開口部tC及びループバック右Fail確定値tDは、90°前後の値を有することとなる。従って、本構成では、ループバック右開口部tC及びループバック右Fail確定値tDの値は、ループバック左Fail確定値tA及びループバック左開口部tBと比較して、小さな値が設定されることとなる。
次いで、第3の初期化処理500について説明する。図9は、第3の初期化処理500における動作を示すフローチャートである。第3の初期化処理500では、外部回路110から供給されるテストデータを、メモリデバイス130に書き込む。この際、書き込む対象となるデータを期待値として予めラッチしておく。その後、書き込んだデータを読み出す。この際、読み出したデータを、期待値と比較するデータとしてラッチする。そして、比較器41において、2つのラッチデータを比較することを特徴とする。
まず、左開口部推定値tEの初期値を設定する処理が行われる。まず、半導体装置120は、テストデータのライト動作を行う。よって、第1のバッファ制御信号SB1により、ライトデータ出力バッファ21及びストローブ信号出力バッファ23を有効化する。第2のバッファ制御信号SB2により、リードデータ入力バッファ22及びストローブ信号入力バッファ24を無効化する。
そして、外部回路110は、ライトデータ出力バッファ21へテストデータを出力する。メモリデバイス130は、ストローブ信号線72を介して供給されるライトストローブ信号WDQSに応じて、テストデータが書き込まれる。同時に、テストデータは、期待値取得用ラッチ12にも供給される。期待値取得用ラッチ12は、クロック信号CLKに同期して、テストデータを期待値val2としてラッチする。
次いで、半導体装置120は、テストデータのリード動作を行う。よって、第2のバッファ制御信号SB2により、リードデータ入力バッファ22及びストローブ信号入力バッファ24を有効化する。第1のバッファ制御信号SB1により、ライトデータ出力バッファ21及びストローブ信号出力バッファ23を無効化する。
レジスタ制御部42は、遅延制御信号DCSに応じて遅延選択部44を操作し、レジスタファイル45から読み出した左開口部推定値tEの仮初期値を、RDLL32の遅延値として設定する。そして、メモリインターフェース回路は、データ信号線71を介して、メモリデバイス130に書き込まれたテストデータが供給される。テストデータはリードデータRDと同様に、所定のバースト長を有するバーストデータとして供給される。さらに、テストデータは、順次供給されるN組のバーストデータとして供給される。
読み出されたテストデータは、リードデータ入力バッファ22を通じて、リードデータラッチ11に供給される。リードデータラッチ11は、RDLL32から供給される遅延リードストローブ信号RDQS_dに同期して、読み出されたテストデータを結果値val1としてラッチする。
比較器41は、結果値val1と期待値val2とを比較する。比較器41は、N組のテストデータに対してN回の比較を繰り返し、N通りの比較結果を出力する(フェーズ501)。
N回の比較動作の結果がALL−PASSである場合には、レジスタ制御部42は、レジスタファイル45の左開口部推定値tEの値を、仮初期値に対して1ステップ早い値に更新する(フェーズ502)。そして、左開口部推定値tEの値を更新した後は、再度フェーズ501へ戻る。フェーズ501に戻ると、レジスタ制御部42は、更新された左開口部推定値tEの値を、RDLL32の遅延値として設定する。つまり、N回の比較動作の結果がONE−FAILとなる遅延値が見つかるまで、フェーズ501及びフェーズ502が繰り返し実行される。これにより、左開口部推定値tEとして、区間D3における最小の遅延値を設定することができる。
なお、左開口部推定値tEの仮初期値に対して、ONE−FAILの比較結果が得られる場合が有り得る。この場合、ループバック右開口部tCの場合と同様の対処をとることができる。すなわち、左開口部推定値tEの仮初期値として、より速い値を設定する。そして、第3の初期化処理500をやり直すことにより、左開口部推定値tEの初期値を適切に決定することができる。
続いて、右開口部推定値tFの初期値を設定する処理が行われる。レジスタ制御部42は、遅延選択部44を制御して、レジスタファイル45の右開口部推定値tFの仮初期値を、RDLL32に設定する。この状態において、比較器41は、フェーズ501と同様に、順次供給されるN組のテストデータについて比較動作を行う(フェーズ503)。
N回の比較動作がALL−PASSである場合には、レジスタ制御部42は、レジスタファイル45の右開口部推定値tFの値を、仮初期値に対して1ステップ遅い値に更新する(フェーズ504)。そして、右開口部推定値tFの値を更新した後は、再度フェーズ503へ戻る。レジスタ制御部42は、更新された右開口部推定値tFの値を、RDLL32の遅延値として設定する。つまり、N回の比較動作の結果がONE−FAILとなる遅延値が見つかるまで、フェーズ503及びフェーズ504が繰り返し実行される。これにより、右開口部推定値tFとして、区間D3における最大の遅延値を設定することができる。
その後、レジスタ制御部42は、通常のリード時に用いるリード時遅延値tGの初期値を算出する(フェーズ505)。この際算出されるリード時遅延値tGは、以下の式(1)で表される。

tG=(tE+tF)/2 ・・・(1)

以上をもって、初期化フェーズ200が終了する。これにより、レジスタファイル45の値tA〜tGの初期値が設定される。
ここで、第3の初期化処理500においてRDLL32に設定する遅延値について考察する。左開口部推定値tEは、第1の初期化処理300における場合と同様に、比較的大きな値が設定される。右開口部推定値tFは、第2の初期化処理400における場合と同様に、左開口部推定値tEと比較して、小さな値が設定される。
次に、通常動作フェーズ(第1〜4のフェーズ201〜204)について説明する。第1〜4のフェーズ201〜204についてはループ処理が行われるが、以下では説明の明確化のため、初期化フェーズ200完了直後の場合について説明する。
第1のフェーズ201について説明する。図10は、第1のフェーズ201の動作を示すフローチャートである。まず、外部回路110において、半導体装置120に対するライト動作の要求の有無が判断される(フェーズ601)。判断結果は、遅延制御信号DCSにより、外部回路110からレジスタ制御部42へ伝達される。
ライト動作の要求が無いと判断した場合、すなわちリード時には、レジスタ制御部42は、遅延選択部44を制御して、RDLL32にリード時遅延値tGの初期値を設定する。よって、リードデータRDには、RDLL32により、リード時遅延値tGの初期値に対応する遅延が付加される(フェーズ602)。すなわち、リード時遅延値tGを用いた、通常のリード動作が実行される。
一方、ライト動作の要求が有ると判断した場合、すなわちライト時には、ループバックテストを行う。レジスタ制御部42は、遅延選択部44を制御して、レジスタファイル45のループバック左Fail確定値tAの初期値をRDLL32に設定する。そして、第1のバッファ制御信号SB1により、ライトデータ出力バッファ21、ストローブ信号出力バッファ23を有効化する。第2のバッファ制御信号SB2により、リードデータ入力バッファ22、ストローブ信号入力バッファ24を有効化する。なお、第1〜4のフェーズ201〜204のライト時には、ライトデータ出力バッファ21、リードデータ入力バッファ22、ストローブ信号出力バッファ23及びストローブ信号入力バッファ24は有効化された状態で保持される。
その後、ライトデータWDが、外部回路110からメモリインターフェース回路100に供給される。ライトデータWDは、メモリデバイス130に書き込まれるとともに、期待値取得用ラッチ12により期待値val2としてラッチされる。また、ライトデータWDは、リードデータラッチ11にループバックされる。ループバックされたリードデータRDは、結果値val1としてラッチされる。比較器41は、結果値val1と期待値val2とを比較する。比較器41は、複数のライトデータに対して比較を繰り返す。(フェーズ603)。
続いて、レジスタ制御部42は、比較結果を参照する。このとき、RDLL32にはループバック左Fail確定値tAの初期値が設定されているので、比較結果はALL−FAILとなると仮定することができる。しかし、半導体装置120の特性やジッタの変動により、比較結果がALL−FAILではなく、ONE−PASSとなる場合が生じる。比較結果がONE−PASSとなった場合には、上述の仮定は否定される。なお、ライトデータWDに変化が無い場合についても、ONE−PASSの結果が得られる場合がある。この場合にも、上述の仮定が否定される結果が得られる。
上述の仮定が否定される場合について検討する。この場合、半導体装置120の特性変動により、ループバック左Fail確定値tAが、初期値よりも早い値にシフトしてしまったことが推測できる。その結果、ループバック左開口部tBも、同様に初期値より早い値にシフトしてしまったと推測できる。そこで、ONE−PASSの比較結果が得られる場合には、レジスタ制御部42は、ループバック左開口部tBの値を、1ステップ早い値に更新する(フェーズ604)。その後、ループバック左開口部tBが妥当であるかを確認するため、第2のフェーズ202のステップ202bへ進む。
一方、上記仮定の通り、ALL−FAILの比較結果が得られる場合には、ループバック左Fail確定値tA及びループバック左開口部tBの値をそのまま保持する。その後、第2のフェーズ202のステップ202aへ進む。
次に、第2のフェーズ202について説明する。図11は、第2のフェーズ202の動作を示すフローチャートである。まず、第1のフェーズ601による仮定が正しい場合に対応する、ステップ202aから開始されるフェーズ701〜704について説明する。フェーズ701及び702は、フェーズ601及び602とそれぞれ同じであるので、説明を省略する。
半導体装置120に対するライト動作の要求が有ると判断した場合、すなわちライト時には、ループバックテストを行う。レジスタ制御部42は、遅延選択部44を制御して、第1のフェーズ201においてそのまま保持されたループバック左開口部tBの初期値を、RDLL32に設定する。そして、第1のバッファ制御信号SB1により、ライトデータ出力バッファ21、ストローブ信号出力バッファ23を有効化する。第2のバッファ制御信号SB2により、リードデータ入力バッファ22、ストローブ信号入力バッファ24を有効化する。
それと同時に、ライトデータWDが、外部回路110からメモリインターフェース回路100に供給される。ライトデータWDは、メモリデバイス130に書き込まれるとともに、期待値取得用ラッチ12により期待値val2としてラッチされる。また、ライトデータWDは、リードデータラッチ11にループバックされる。ループバックされたリードデータRDは、結果値val1としてラッチされる。比較器41は、結果値val1と期待値val2とを比較する。比較器41は、複数のライトデータに対して比較を繰り返す。(フェーズ703)。
続いて、レジスタ制御部42は、比較結果を参照する。このとき、RDLL32にはループバック左開口部tBの初期値が設定されている。よって、比較器41における比較結果は、ALL−PASSとなると仮定することができる。しかし、半導体装置120の特性やジッタの変動により、比較結果がALL−PASSではなく、ONE−FAILとなる場合が生じる。比較結果がONE−FAILとなった場合には、上述の仮定は否定される。
上述の仮定が否定される場合について検討する。この場合、半導体装置120の特性変動により、ループバック左開口部tBが、初期値よりも遅い値にシフトしてしまったことが推測できる。その結果、左開口部推定値tEも、同様に初期値より遅い値にシフトしてしまったと推測できる。そこで、ONE−FAILの比較結果が得られる場合には、ループバック左開口部tBの値を、1ステップ遅い値に更新する。これにより、ループバック左開口部tBが決定される。また、ループバック左開口部tBに連動して、左開口部推定値tEにも同様の変動が生じているものと推定することができる。従って、左開口部推定値tEの値も、1ステップ遅い値に更新する(フェーズ704)。
この際、第1のフェーズ201のフェーズ603におけるループバック左Fail確定値tAについてのループバックテストではALL−FAILの結果が得られているので、ループバック左Fail確定値tAの値は一応正しいものとして、そのまま保持する。なお、ループバック左Fail確定値tAの値が早い値にシフトしていたとしても、通常動作フェーズを繰り返すことで是正される。つまり、フェーズ603→ステップ202a→フェーズ701→フェーズ703→フェーズ704の手順が繰り換えされ、その結果、ループバック左開口部tBは、フェーズ703においてALL−PASSとなるループバック左開口部tBに収束する。また、ループバック左Fail確定値tAの値が遅い値にシフトしていたとしても、通常動作フェーズを繰り返すことで是正される。つまり、フェーズ603→フェーズ604→ステップ202b→フェーズ705→フェーズ707→フェーズ709の手順が繰り換えされ、その結果、ループバック左Fail確定値tAは、フェーズ603においてALL−FAILとなる値に収束する。但し、フェーズ704において、ループバック左開口部tBに連動してループバック左Fail確定値tAの値を1ステップ遅らせても、通常動作フェーズを繰り返して得られる効果は同等である。
一方、上記仮定の通り、ALL−PASSの比較結果が得られる場合には、ループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEの値をそのまま保持する。その後、第3のフェーズ203へ進む。
次いで、第1のフェーズ201による仮定が誤りであった場合に対応する、ステップ202bから開始されるフェーズ705〜709について説明する。フェーズ705及び706は、フェーズ601及び602とそれぞれ同じであるので、説明を省略する。
半導体装置120に対するライト動作の要求が有ると判断した場合、すなわちライト時には、ループバックテストを行う。レジスタ制御部42は、遅延選択部44を制御して、レジスタファイル45のループバック左開口部tBの値をRDLL32に設定する。この際設定されるループバック左開口部tBの値は、第1のフェーズで初期値から1ステップ早められた値である。また、フェーズ703と同様に、ライトデータ出力バッファ21、リードデータ入力バッファ22、ストローブ信号出力バッファ23及びストローブ信号入力バッファ24を有効化する。
それと同時に、ライトデータWDが、外部回路110からメモリインターフェース回路100に供給される。ライトデータWDは、メモリデバイス130に書き込まれるとともに、期待値取得用ラッチ12により期待値val2としてラッチされる。また、ライトデータWDは、リードデータラッチ11にループバックされる。ループバックされたリードデータRDは、結果値val1としてラッチされる。比較器41は、結果値val1と期待値val2とを比較する。比較器41は、複数のライトデータに対して比較を繰り返す。(フェーズ707)。
続いて、レジスタ制御部42は、比較結果を参照する。このとき、RDLL32には初期値から1ステップ早められたループバック左開口部tBが設定されている。よって、比較結果は、ALL−PASSとなると仮定することができる。しかし、半導体装置120の特性やジッタの変動により、比較器41における比較結果がALL−PASSではなく、ONE−FAILとなる場合が生じる。比較結果がONE−FAILとなった場合には、上述の仮定は否定される。
上述の仮定が否定される場合について検討する。この場合、ループバック左開口部tBは、本来設定されるべき値よりも早い値であると推測できる。つまり、第1のフェーズ201で行われたループバック左開口部tBを1ステップ早める処置は、ジッタによる偶然性が影響した処置であり、妥当でないと判断できる。よって、第1のフェーズ201の処理を取り消すため、レジスタ制御部42は、ループバック左開口部tBの値を1ステップ遅い値に更新する。すなわち、ループバック左開口部tBは初期値に戻される(フェーズ708)。
なお、上述の通り、ライトデータWDに変化が無い場合についても、第1のフェーズ201による仮定が誤りであると判断される場合がある。この場合でも、第1のフェーズ201で行われた処理を取り消すため、レジスタ制御部42は、ループバック左開口部tBの値を1ステップ遅い値に更新する。従って、ライトデータWDに起因する仮定検証の不備についても是正を図ることができる。
一方、上記仮定が正しい場合について検討する。この場合、第1のフェーズ201で行われた、ループバック左開口部tBを1ステップ早める処置は妥当であったと判断できる。よって、ループバック左開口部tBを1ステップ早めた処置に対応させるため、ループバック左Fail確定値tA及び左開口部推定値tEの値を、1ステップ早い値に更新する(フェーズ709)。これにより、ループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEを適切な値に設定することができる。
次に、第3のフェーズ203について説明する。図12は、第3のフェーズ203の動作を示すフローチャートである。フェーズ801及び802は、フェーズ601及び602とそれぞれ同じであるので、説明を省略する。
半導体装置120に対するライト動作の要求が有ると判断した場合、すなわちライト時には、ループバックテストを行う。レジスタ制御部42は、遅延選択部44を制御して、ループバック右Fail確定値tDの初期値を、RDLL32に設定する。そして、第1のバッファ制御信号により、ライトデータ出力バッファ21、ストローブ信号出力バッファ23を有効化する。第2のバッファ制御信号により、リードデータ入力バッファ22、ストローブ信号入力バッファ24を有効化する。
それと同時に、ライトデータWDが、外部回路110からメモリインターフェース回路100に供給される。ライトデータWDは、メモリデバイス130に書き込まれるとともに、期待値取得用ラッチ12により期待値val2としてラッチされる。また、ライトデータWDは、リードデータラッチ11にループバックされる。ループバックされたリードデータRDは、結果値val1としてラッチされる。比較器41は、結果値val1と期待値val2とを比較する。比較器41は、複数のライトデータに対して比較を繰り返す。(フェーズ803)。
続いて、レジスタ制御部42は、比較結果を参照する。このとき、RDLL32にはループバック右Fail確定値tDの初期値が設定されている。よって、比較器41における比較結果は、ALL−FAILとなると仮定することができる。しかし、半導体装置120の特性やジッタの変動により、比較器41における比較結果がALL−FAILではなく、ONE−PASSとなる場合が生じる。比較結果がONE−PASSとなった場合には、上述の仮定は否定される。なお、ライトデータWDに変化が無い場合についても、ONE−PASSの結果が得られる場合がある。この場合にも、上述の仮定が否定される結果が得られる。
上述の仮定が否定される場合について検討する。この場合、半導体装置120の特性変動により、ループバック右Fail確定値tDは、初期値よりも遅い値にシフトしてしまったことが推測できる。その結果、ループバック右開口部tCも、同様に初期値よりも遅い値にシフトしてしまったと推測できる。そこで、ONE−PASSの比較結果が得られる場合には、ループバック右開口部tCの値を、1ステップ遅い値に更新する(フェーズ804)。その後、ループバック右Fail確定値tDの値が妥当であるかを確認するため、第4のフェーズ204のステップ204bへ進む。
一方、上記仮定の通り、ALL−FAILの比較結果が得られる場合には、ループバック右Fail確定値tDを初期値のまま保持する。その後、第4のフェーズ204のステップ204aへ進む。
次に、第4のフェーズ204について説明する。図13は、第4のフェーズ204の動作を示すフローチャートである。まず、第3のフェーズ203による仮定が正しい場合に対応する、ステップ204aから開始するフェーズ901〜904について説明する。フェーズ901及び902は、フェーズ601及び602とそれぞれ同じであるので、説明を省略する。
半導体装置120に対するライト動作の要求が有ると判断した場合、すなわちライト時には、ループバックテストを行う。レジスタ制御部42は、遅延選択部44を制御して、第3のフェーズ203でそのまま保持されたループバック右開口部tCの初期値を、RDLL32に設定する。そして、第1のバッファ制御信号SB1により、ライトデータ出力バッファ21、ストローブ信号出力バッファ23を有効化する。第2のバッファ制御信号SB2により、リードデータ入力バッファ22、ストローブ信号入力バッファ24を有効化する。
それと同時に、ライトデータWDが、外部回路110からメモリインターフェース回路100に供給される。ライトデータWDは、メモリデバイス130に書き込まれるとともに、期待値取得用ラッチ12により期待値val2としてラッチされる。また、ライトデータWDは、リードデータラッチ11にループバックされる。ループバックされたリードデータRDは、結果値val1としてラッチされる。比較器41は、結果値val1と期待値val2とを比較する。比較器41は、複数のライトデータに対して比較を繰り返す(フェーズ903)。
続いて、レジスタ制御部42は、比較結果を参照する。このとき、RDLL32にはループバック右開口部tCの初期値が設定されている。よって、比較器41における比較結果は、ALL−PASSとなると仮定することができる。しかし、半導体装置120の特性やジッタの変動により、比較器41における比較結果がALL−PASSではなく、ONE−FAILとなる場合が生じる。比較結果がONE−FAILとなった場合には、上述の仮定は否定される。
上述の仮定が否定される場合について検討する。この場合、半導体装置120の特性変動により、ループバック右開口部tCが、初期値よりも早い値にシフトしてしまったことが推測できる。その結果、右開口部推定値tFも、同様に初期値より早い値にシフトしてしまったと推測できる。そこで、ONE−FAILの比較結果が得られる場合には、ループバック右開口部tC及び右開口部推定値tFの値を、1ステップ早い値に更新する(フェーズ904)。その後、フェーズ910へ進む。
この際、第3のフェーズ203のフェーズ803におけるループバック右Fail確定値tDについてのループバックテストではALL−FAILの結果が得られているので、ループバック右Fail確定値tDの値は一応正しいものとして、そのまま保持する。なお、ループバック右Fail確定値tDの値が早い値にシフトしていたとしても、通常動作フェーズを繰り返すことで是正される。つまり、フェーズ803→ステップ204a→フェーズ901→フェーズ903→フェーズ904の手順が繰り換えされ、その結果、ループバック右開口部tCは、フェーズ903においてALL−PASSとなるループバック右開口部tCに収束する。また、ループバック右Fail確定値tDの値が遅い値にシフトしていたとしても、通常動作フェーズを繰り返すことで是正される。つまり、フェーズ803→フェーズ804→ステップ204b→フェーズ905→フェーズ907→フェーズ909の手順が繰り換えされ、その結果、ループバック右Fail確定値tDは、フェーズ803においてALL−FAILとなる値に収束する。但し、フェーズ904において、ループバック右開口部tCに連動してループバック右Fail確定値tDの値を1ステップ遅らせても、通常動作フェーズを繰り返して得られる効果は同等である。
一方、上記仮定の通り、ALL−PASSの比較結果が得られる場合には、ループバック右開口部tC及び右開口部推定値tFの値は適切であると判断することができる。従って、ループバック右Fail確定値tD、ループバック右開口部tC及び右開口部推定値tFをそのまま保持する。その後、フェーズ910へ進む。
次いで、第3のフェーズ203による仮定が誤りである場合に対応する、フェーズ905〜909について説明する。フェーズ905及び906は、フェーズ601及び602とそれぞれ同じであるので、説明を省略する。
半導体装置120に対するライト動作の要求が有ると判断した場合、すなわちライト時には、ループバックテストを行う。レジスタ制御部42は、遅延選択部44を制御して、レジスタファイル45のループバック右開口部tCの値をRDLL32に設定する。この際設定されるループバック右開口部tCの値は、第3のフェーズ203で初期値から1ステップ遅くされた値である。また、フェーズ703と同様に、ライトデータ出力バッファ21、リードデータ入力バッファ22、ストローブ信号出力バッファ23及びストローブ信号入力バッファ24を有効化する。
それと同時に、ライトデータWDが、外部回路110からメモリインターフェース回路100に供給される。ライトデータWDは、メモリデバイス130に書き込まれるとともに、期待値取得用ラッチ12により期待値val2としてラッチされる。また、ライトデータWDは、リードデータラッチ11にループバックされる。ループバックされたリードデータRDは、結果値val1としてラッチされる。比較器41は、結果値val1と期待値val2とを比較する。比較器41は、複数のライトデータに対して比較を繰り返す(フェーズ907)。
続いて、レジスタ制御部42は、比較結果を参照する。このとき、RDLL32には初期値から1ステップ遅くされたループバック右開口部tCが設定されている。よって、比較器41における比較結果は、ALL−PASSとなると仮定することができる。しかし、半導体装置120の特性やジッタの変動により、比較器41における比較結果がALL−PASSではなく、ONE−FAILとなる場合が生じる。比較結果がONE−FAILとなった場合には、上述の仮定は否定される。
上述の仮定が否定される場合について検討する。この場合、ループバック右開口部tCは、本来設定されるべき値よりも遅い値であると推測できる。つまり、第3のフェーズ203で行われた、ループバック右開口部tCを1ステップ遅くする処置は、ジッタによる偶然性が影響した処置であり、妥当でないと判断できる。よって、第3のフェーズ203で行われた処理を取り消すため、レジスタ制御部42は、ループバック右開口部tCの値を1ステップ早い値に更新する。すなわち、ループバック右開口部tCは初期値に戻される(フェーズ908)。その後、フェーズ910へ進む。
なお、上述の通り、ライトデータWDに変化が無い場合についても、第3のフェーズ203による仮定が誤りであると判断される場合がある。この場合でも、第3のフェーズ203で行われた処理を取り消すため、レジスタ制御部42は、ループバック右開口部tCの値を1ステップ早い値に更新する。従って、ライトデータWDに起因する仮定検証の不備についても是正を図ることができる。
一方、上記仮定が正しい場合について検討する。この場合、第3のフェーズ203で行われた、ループバック右開口部tCを1ステップ遅くする処置は妥当であったと判断できる。よって、ループバック右開口部tCを1ステップ遅くする処置に対応させるため、ループバック右Fail確定値tD及び右開口部推定値tFの値を、1ステップ遅い値に更新する。また、ループバック左開口部tBに連動して、左開口部推定値tEにも同様の変動が生じているものと推定することができる。従って、左開口部推定値tEの値も、1ステップ遅い値に更新する(フェーズ909)。これにより、ループバック右開口部tC、ループバック右Fail確定値tD及び右開口部推定値tFを適切な値に設定することができる。その後、フェーズ910へ進む。
最後に、第4のフェーズで設定した最新の左開口部推定値tE及び右開口部推定値tFの値と上述の式(1)とに基づき、リード時遅延値tGを算出する(フェーズ910)。
以上のステップを経て、ライト時に供給されるライトデータをループバックすることにより、メモリインターフェース回路100は、リード時遅延値tGを最適の値に維持することが可能となる。従って、メモリインターフェース回路100を用いる場合には、リードデータのタイミングキャリブレーションを行うための期間を設ける必要がない。すなわち、メモリインターフェース回路100は、通常のライト動作中にリードデータのタイミングキャリブレーションを併せて実行するため、メモリデバイスを高速に駆動することが可能となる。
本構成によれば、図24に示すメモリシステム1100の様に、リードデータのラッチタイミングを行うためにのみ用いる回路を設ける必要がない。そのため、本構成によれば、通常のメモリインターフェースと比べて、小型の回路規模を有するメモリインターフェース回路を実現することができる。
また、高速インターフェースデバイスでは、特性変動を抑制することが必要である。そのため、データの書き込み/読み出しに関与するラッチ等の機能ブロックを構成するトランジスタには、大きな面積を有するトランジスタが用いられる。その結果、図24に示すメモリシステム1100のように、第二のデータラッチ部1106などの大規模なブロックを有する場合には、回路面積が大きくなる。一方、本構成によれば、このような大規模なブロックを設ける必要がないので、回路規模抑制の観点から更に有利である。
もっとも、本構成では、レジスタ部を設けなければならない。しかし、レジスタ部43は単に値tA〜tGを保持すれば足りるので、小規模な回路構成(例えば、nmオーダー)で実現することができる。これに対し、第二のデータラッチ部1106などの大規模なブロックについては、例えばμmオーダーの回路規模を有する。従って、レジスタ部43を設けたとしても、回路規模抑制の妨げとなることは無い。従って、メモリインターフェース回路100にレジスタ部43を設けたとしても、従来の構成と比べて、十分に回路規模を削減することが可能となる。
さらに、図24に示すメモリシステム1100では、第一のデータラッチ部1103、第一の可変遅延部1104及び第一の遅延制御部1105で構成される系と、第二のデータラッチ部1106、第二の可変遅延部1107及び第二の遅延制御部1108で構成される系と、の特性を一致させる必要が有る。ところが、これらのブロックは物理的に分離して形成されるので、現実には2つの系の特性を厳密に合わせることはできない。そのため、メモリシステム1100においてタイミング調整を行ったとしても、2つの系の特性のずれにより、長結果の信頼性に問題が有る恐れがある。本構成では、第二のデータラッチ部1106、第二の可変遅延部1107及び第二の遅延制御部1108で構成される系に相当するブロックを設ける必要が無いので、上記の問題を考慮する必要が無い。
さらに、図24に示すメモリシステム1100では、リードデータのトグルを検出する必要がある。そのため、メモリデバイス1101にデータが書き込まれていない場合や、トグルが無いデータについては、タイミング調整を行うことができない。そのため、別途データのトグルが無い場合の対策が必要となる。一方、本構成では、ライトデータを用いてループバックテストを行うので、メモリデバイスにデータが書き込まれていない場合や、トグルが無いデータしか得られない場合を考慮する必要が無い点で有利である。
本構成においては、初期化フェーズ中に、レジスタファイル45の各値の初期値設定が行われる。この際、メモリインターフェース回路100には、外部回路110からテストデータが供給される。このテストデータは、メモリデバイス130にも出力される。しかし、初期化フェーズ中にはメモリデバイス(DDR3−SDRAM)は、書き込み禁止状態となっているため、メモリデバイスにはテストデータは書き込まれない。この書き込み禁止状態の制御については、DDR3−SDRAMの標準規格において定められている。
換言すれば、メモリインターフェース回路100が組み込まれた半導体装置120のデータ端子61及びストローブ端子62は、初期化フェーズ中でも電圧が変動する。データ端子61及びストローブ端子62の電圧は、テスタなどにより容易に観測することができる。一方、通常のメモリコントローラにおいては、初期化フェーズなどの、ライト時/リード時以外の場合に、データ端子61又はストローブ端子62の電圧が変動することは無い。従って、ライト時及びリード時以外の場合に、データ端子又はストローブ端子の電圧を観測することにより、半導体装置内にメモリインターフェース回路100が組み込まれているか否かを識別することが可能である。
実施の形態2
次に、実施の形態2にかかるメモリインターフェース回路について説明する。図14は、実施の形態2にかかるメモリインターフェース回路140を含む半導体装置150の構成を示す回路ブロック図である。半導体装置150は、半導体装置120のメモリインターフェース回路100を、メモリインターフェース回路140に置き換えた構成を有する。その他の半導体装置150の構成は、半導体装置120と同様であるので、説明を省略する。
実施の形態1にかかるメモリインターフェース回路100では、ループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEに大きな値を設定しなければならない。そうすると、RDLL32の回路規模が大きくなってしまう。これに対し、本実施の形態にかかるメモリインターフェース回路140は、RDLL32に設定するループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEを、メモリインターフェース回路100と比較して小さくできることが特徴である。
メモリインターフェース回路140は、メモリインターフェース回路100の比較器41を、シフト機能付き比較器47に置き換えた構成を有する。シフト機能付き比較器47は、期待値val2に対する結果値val1の比較タイミングをシフトさせる機能を有する。具体的には、シフト機能付き比較器47は、例えば遅延制御信号DCSに応じて、リードデータラッチ11がラッチした結果値val1を1/2サイクル(180°)遅らせたシフト結果値val1_180と、期待値取得用ラッチ12がラッチした期待値val2と、を比較する。メモリインターフェース回路140のその他の構成は、メモリインターフェース回路100と同様であるので、説明を省略する。
続いて、メモリインターフェース回路140の動作について説明する。図15は、実施の形態2にかかるメモリインターフェース回路140の動作を示すフローチャートである。図15に示すメモリインターフェース回路140の動作は、メモリインターフェース回路100の初期化フェーズ200、第1のフェーズ201及び第2のフェーズ202を、それぞれ初期化フェーズ210、第1のフェーズ211及び第2のフェーズ212に置換したものである。
初期化フェーズ210について説明する。図16は、初期化フェーズ210における動作を示すフローチャートである。図16に示すように、初期化フェーズ210は、メモリインターフェース回路100の第1の初期化処理300を、第1の初期化処理310に置き換えたものである。以下では、相違点である第1の初期化処理310について説明する。
図17は、第1の初期化処理310における動作を示すフローチャートである。第1の初期化処理310は、メモリインターフェース回路100のフェーズ303及びフェーズ305を、フェーズ313及びフェーズ315に置き換えたものである。フェーズ313及びフェーズ315では、RDLL32は、ライトストローブ信号WDQSの位相を約90°遅らせる。図18は、第1の初期化処理310における信号のタイミング例を示すタイミングチャートである。RDLL32により、遅延ライトストローブ信号WDQS_dの立ち上がり(タイミングT4)は、ライトストローブ信号WDQSの立ち上がり(タイミングT3)から90°遅れる。
この状態で、シフト機能付き比較器47は、上述の半サイクル遅れの比較動作を行う。つまり、シフト機能付き比較器47は、タイミングT5のタイミングでラッチされた値を、結果値val1として比較動作を行う。これにより、ループバック左Fail確定値tA、ループバック左開口部tBの初期値の探索が可能となる。この場合、ループバック左Fail確定値tA、ループバック左開口部tBは、90°前後の値となる。第1の初期化処理310におけるその他の動作については、第1の初期化処理300と同様であるので、説明を省略する。
次いで、第1のフェーズ211について説明する。図19は、第1のフェーズ211における動作を示すフローチャートである。第1のフェーズ211は、メモリインターフェース回路100の第1のフェーズ201のフェーズ603を、フェーズ613に置き換えたものである。フェーズ613では、第1の初期化処理310のフェーズ313及びフェーズ315と同様に、シフト機能付き比較器47による半サイクル遅れの比較動作が行われる。従って、この場合も、ループバック左Fail確定値tA、ループバック左開口部tBは、90°前後の値となる。第1のフェーズ211におけるその他の動作については、第1のフェーズ201と同様であるので、説明を省略する。
次いで、第2のフェーズ212について説明する。図20は、第2のフェーズ212における動作を示すフローチャートである。第2のフェーズ212は、メモリインターフェース回路100の第2のフェーズ202のフェーズ703及び707を、それぞれフェーズ713及び717に置き換えたものである。フェーズ713及び717では、第1の初期化処理310のフェーズ313及びフェーズ315と同様に、シフト機能付き比較器47による半サイクル遅れの比較動作が行われる。従って、この場合も、ループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEは、90°前後の値となる。第1のフェーズ212におけるその他の動作については、第2のフェーズ202と同様であるので、説明を省略する。
すなわち、本構成によれば、ループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEの値を、実施の形態1にかかるメモリインターフェース回路100と比べて、小さくすることができる。その結果、RDLL32の回路面積を抑制し、メモリインターフェース回路140を小型化することが可能となる。
実施の形態3
次に、実施の形態3にかかるメモリインターフェース回路について説明する。図21は、実施の形態3にかかるメモリインターフェース回路160を含む半導体装置170の構成を示す回路ブロック図である。半導体装置170は、半導体装置120のメモリインターフェース回路100を、メモリインターフェース回路160に置き換えた構成を有する。その他の半導体装置170の構成は、半導体装置120と同様であるので、説明を省略する。
メモリインターフェース回路160は、メモリインターフェース回路100のWDLL31を、バイパス機能付きWDLL33に置き換えた構成を有する。また、レジスタファイル45をレジスタファイル48に置き換えている。バイパス機能付きWDLL33は、遅延制御信号DCSに応じて、クロック信号CLKをそのままバイパスして出力する機能を有する。
レジスタファイル48は、レジスタファイル45と比べて、右開口部推定値の初期値tHが追加されている。
続いて、実施の形態3にかかるメモリインターフェース回路160の動作について説明する。図22は、実施の形態3にかかるメモリインターフェース回路160の動作を示すフローチャートである。初期化フェーズ220では、第2の初期化処理400及び第3の初期化処理500が行われる。すなわち、メモリインターフェース回路160は、メモリインターフェース回路100と比較して、第1の初期化処理300が省略される。
初期化フェーズ220の終了後、レジスタ制御部42は、レジスタ部43を制御して、右開口部推定値tFの初期値を、右開口部推定値の初期値tHとして記憶させる(フェーズ205)。
その後、メモリインターフェース回路100と同様に、第3のフェーズ203及び第4のフェーズ204を行う。すなわち、メモリインターフェース回路160は、メモリインターフェース回路100と比較して、第1のフェーズ201及び第2のフェーズ202が省略される。尚、第3のフェーズ203及び第4のフェーズ204は、右開口部推定値の初期値tHは初期値から変化しないとの仮定の下で行われる。
続いて、レジスタ制御部42は、第3のフェーズ203及び第4のフェーズ204を通じて求めた最新の右開口部推定値tFの値と、右開口部推定値の初期値tHと、を比較する(フェーズ206)。これにより、レジスタ制御部42は、右開口部推定値tFの値が、右開口部推定値の初期値tHから、何ステップ乖離しているかを判断する。ここで、レジスタ制御部42には、判断の基準となる基準ステップ数Mが予め設定されている。
右開口部推定値の初期値tHからの右開口部推定値tFの値の乖離量がMステップよりも小さい場合には、第3のフェーズ203に戻り、処理を繰り返す。一方、右開口部推定値の初期値tHからの右開口部推定値tFの値の乖離量がMステップ以上である場合には、フェーズ207に進む。
フェーズ207では、レジスタ制御部42は、外部回路110がメモリインターフェース回路の初期化を許可するかどうかを照会する。初期化が許可されない場合には、第3のフェーズに戻り、処理を繰り返す。初期化が許可される場合には、初期化フェーズ210に戻り、初期化を実行する。
メモリインターフェース回路160では、開口部の右側の境界に着目し、通常のメモリアクセス動作中における遅延量の変化を、初期値と比較する。そして、比較結果が許容範囲(すなわち、初期値からの遅延量の乖離がMステップよりも小さい)内に収まるか否かを監視する。その結果、比較結果が許容範囲外にあると判断した場合に、キャリブレーションを行うものである。
なお、リード時遅延値tGを算出するには、左開口部推定値tEを決定することが必要である。左開口部推定値tEを決定するには、例えば、実施の形態1にかかる初期化フェーズ200を実行することにより可能である。この際、左開口部推定値tEを決定するには、ループバック左Fail確定値tA、ループバック左開口部tBを決定することが必要である。しかし、初期化フェーズ中は、ライトデータを利用する必要がないので、ライトストローブ信号を自由に生成してもよい。
すなわち、ループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEを決定する際には、バイパス機能付きWDLL33により、クロック信号CLKの位相を遅らせることなく、そのままライトストローブ信号WDQSとして出力することができる。この場合、ループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEを探索するためには、RDLL32は、ライトストローブ信号WDQSにわずかな遅延量を与えるだけでよい。従って、RDLL32に設定される遅延量を、実施の形態1と比べて、大きく抑制することができる。
本構成によれば、大きな値を設定しなければならないループバック左Fail確定値tA、ループバック左開口部tB及び左開口部推定値tEを取り扱う必要が無い。従って、実施の形態2と同様に、RDLL32の回路規模を抑制することが可能となる。
実施の形態4
次に、実施の形態4にかかるメモリシステム1000について説明する。図23は、実施の形態4にかかるメモリシステム1000の構成を示すブロック図である。メモリシステム1000は、半導体装置190とメモリデバイス130とを有する。メモリシステム1000は、半導体装置190が組み込まれた応用装置として構成される。
半導体装置190は、メモリインターフェース回路180及び外部回路110を有する。外部回路110は、制御回路111及びCPU112を有する。また、外部回路110には、制御回路111及びその他の機能ブロック113が搭載されてもよい。メモリインターフェース回路180には、上述のメモリインターフェース回路100、140及び160のいずれかが用いられる。
CPU112は、半導体装置190全体の動作を制御する。制御回路111は、メモリインターフェース回路180及びメモリデバイス130を制御するのと同時に、これらの状態を監視している。
制御回路111は、メモリインターフェース回路180及びメモリデバイス130の状態を監視して、キャリブレーションのやり直しが必要であるか否かを判断する。具体的には、遅延値モニタ信号DMSを用いて、レジスタファイルの値を監視する。そして、レジスタファイルの値が基準範囲を逸脱した場合には、制御回路111は、CPU112へ割り込み信号114を出力し、CPU112に対して割り込み処理要求を行う。
CPU112は、割り込み信号114を受け取ると、CPU112内のメモリ空間から、キャリブレーションのためのメモリ空間を割り当てる。CPU112は、メモリバンド幅が足りない場合には、一時的に機能を制限することで使用しているメモリバンド幅を削り、制御回路111に間欠キャリブレーション要求を出す。
間欠キャリブレーション要求を受けた制御回路111は、メモリアクセスが無い時に、実施の形態1における初期化フェーズ200と同様の手順で、メモリインターフェース回路180の初期化(間欠キャリブレーション)を実行する。
制御回路111は、遅延値モニタ信号DMSを通じて、メモリインターフェース回路180の間欠キャリブレーションの終了を検出する。検出後、制御回路111は間欠キャリブレーションの終了を、割り込み信号114によりCPU112へ通知する。
CPU112は、間欠キャリブレーション終了の通知を受けたら、間欠キャリブレーションに割り当てていたメモリ空間を開放する。その後、CPU112は、通常動作に復帰する。
すなわち、本構成によれば、メモリインターフェース回路180の状態に応じて、メモリインターフェース回路180を適宜初期化することが可能である。これにより、温度などの状態変化が激しい場合でも、その変化に追随した動作を行うことができる。
なお、本構成では、メモリシステム1000から一時的にメモリ空間とメモリバンド幅を切り離して間欠キャリブレーションをしている。よって、間欠キャリブレーション中は一時的に処理能力が低下するものの、メモリアクセス動作を妨げることは無い。従って、メモリアクセスの高速化を犠牲にすることなく、メモリアクセス動作を安定化させることが可能である。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、WDLL及びRDLLは、適宜遅延値を調整可能であるならば、DLL以外の他のブロックに置き換えることが可能である。
また、実施の形態4にかかる半導体装置190を組み込むのはメモリシステムに限られず、メモリシステム以外の他の応用装置に組み込むことができるのは勿論である。
CLK クロック信号
D1〜D5 区間
DCS 遅延制御信号
DMS 遅延値モニタ信号
Data テストデータ
M 基準ステップ数
RD リードデータ
RDQS リードストローブ信号
RDQS_d 遅延リードストローブ信号
S1、S2 制御信号
SB1、SB2 バッファ制御信号
WD ライトデータ
WDQS ライトストローブ信号
WDQS_d 遅延ライトストローブ信号
tA ループバック左Fail確定値確定値
tB ループバック左開口部
tC ループバック右開口部
tD ループバック右Fail確定値確定値
tE 左開口部推定値
tF 右開口部推定値
tG リード時遅延値
tH 右開口部推定値の初期値
val1 結果値
val1_180 シフト結果値
val2 期待値
11 リードデータラッチ
12 期待値取得用ラッチ
21 ライトデータ出力バッファ
22 リードデータ入力バッファ
23 ストローブ信号出力バッファ
24 ストローブ信号入力バッファ
31、33 書き込み遅延調整装置(WDLL)
32 読み出し遅延調整装置(RDLL)
41 比較器
42 レジスタ制御部
43 レジスタ部
44 遅延選択部
45 レジスタファイル
46 比較結果信号
47 シフト機能付き比較器
48 レジスタファイル
51 ライトデータ信号線
52 リードデータ信号線
53 クロック信号線
54 遅延制御信号線
55 遅延値モニタ信号線
61 データ端子
62 ストローブ端子
71 データ信号線
72 ストローブ信号線
100、140、160、180 メモリインターフェース回路
110 外部回路
111 制御回路
113 機能ブロック
114 割り込み信号
120、140、170、190 半導体装置
130 メモリデバイス
200、210、220 初期化フェーズ
201 第1のフェーズ
202 第2のフェーズ
203 第3のフェーズ
204 第4のフェーズ
300、310 第1の初期化処理
400 第2の初期化処理
500 第3の初期化処理
1000、1100 メモリシステム
1101 メモリデバイス
1102 メモリインターフェース
1103 第一のデータラッチ部
1104 第一の可変遅延部
1105 第一の遅延制御部
1106 第二のデータラッチ部
1107 第二の可変遅延部
1108 第二の遅延制御部
1109 比較器
1110 遅延判定部
1111 トグル検出器
1112 データ信号線
1113 ストローブ信号線
1114 方向制御部
1115 ライトデータ
1116 リードデータ

Claims (15)

  1. ライト時に外部から受け取ったライトデータをメモリデバイスへ出力するデータ出力バッファと、
    ライト時に外部から受け取ったクロック信号の位相を遅らせたライトストローブ信号を、ストローブ信号出力バッファを介して前記メモリデバイスへ出力する書き込み遅延調整装置と、
    前記クロック信号に同期して、前記外部からの前記ライトデータをラッチする第1のラッチと、
    リード時に前記メモリデバイスから受け取ったリードデータを出力するデータ入力バッファと、
    リード時にストローブ信号入力バッファを介して前記メモリデバイスから受け取ったリードストローブ信号の位相を遅らせた遅延リードストローブ信号を出力し、ライト時に前記ストローブ信号入力バッファを介して前記ストローブ信号出力バッファからループバックされたライトストローブ信号を遅延させた遅延ライトストローブ信号を出力する読み出し遅延調整装置と、
    リード時に前記データ入力バッファからの前記リードデータを前記遅延リードストローブ信号に同期してラッチし、ライト時に前記データ入力バッファを介して前記データ出力バッファからループバックされた前記ライトデータを前記遅延ライトストローブ信号に同期してラッチする第2のラッチと、
    ライト時に前記第1のラッチの出力と前記第2のラッチの出力とを比較し、比較結果を比較結果信号として出力する比較器と、
    前記ライトストローブ信号又は前記リードストローブ信号を遅延させるために前記読み出し遅延調整装置に設定される遅延値が格納されたレジスタ部と、
    前記比較結果信号に応じて、前記レジスタ部に格納された前記遅延値を更新するレジスタ制御部と、
    前記レジスタ制御部により制御され、前記レジスタ部に格納された前記遅延値を読み出し、読み出した前記遅延値を前記読み出し遅延調整装置に設定する遅延選択部と、を備える、
    メモリインターフェース回路。
  2. 前記比較器は、複数の前記ライトデータに対応した複数の比較動作を行い、複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致するか否か、又は一致しないか否かを判断することを特徴とする、
    請求項1に記載のメモリインターフェース回路。
  3. 前記レジスタ部に格納された前記遅延値は初期化動作により初期化され、
    前記初期化動作時に、前記レジスタ制御部は、前記リードデータのラッチタイミングを調整するキャリブレーション動作を行うことにより、前記第2のラッチが前記リードデータを適正にラッチできる最も遅いタイミングに対応する第1の遅延値を決定し、
    前記初期化動作後のライト時に
    前記レジスタ制御部は、前記複数の比較結果に基づいて前記第1の遅延値を更新し、
    リード時には、前記遅延選択部は、前記レジスタ部に格納された前記第1の遅延値を読み出し、読み出した前記第1の遅延値に対応した遅延値を前記読み出し遅延調整装置に設定する、
    請求項1又は2に記載のメモリインターフェース回路。
  4. 前記レジスタ制御部は、
    前記初期化動作時に、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する最も遅いタイミングに対応する遅延値である第2の遅延値を決定し、
    前記初期化動作後のライト時における当該メモリインターフェース回路の状態変化による前記第2の遅延値の変動を検出し、
    前記第2の遅延値の変動に連動して前記第1の遅延値を変化させることを特徴とする、
    請求項3に記載のメモリインターフェース回路。
  5. 前記レジスタ制御部は、
    前記初期化動作時に、
    前記第2の遅延値に対応するタイミングよりも遅く、かつ、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致しない最も早いタイミングに対応する遅延値である第3の遅延値を決定し、
    前記初期化動作後のライト時に、
    前記第3の遅延値を前記読み出し遅延調整装置に設定して前記複数の比較動作を行い、前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する比較結果が1以上存在する場合には前記第2の遅延値を1ステップ遅い値に更新し、
    前記第2の遅延値を更新した場合には、更新された前記第2の遅延値を前記読み出し遅延調整装置に設定して前記複数の比較動作を行い、前記第1のラッチの出力値と前記第2のラッチの出力値とが一致しない比較結果が1以上存在する場合には前記第2の遅延値を1ステップ早い値に更新し、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する場合には前記第1の遅延値及び前記第3の遅延値を1ステップ遅い値に更新し、
    前記第2の遅延値を更新しなかった場合には、前記第2の遅延値を前記読み出し遅延調整装置に設定して前記複数の比較動作を行い、前記第1のラッチの出力値と前記第2のラッチの出力値とが一致しない比較結果が1以上存在する場合には前記第1の遅延値及び前記第2の遅延値を1ステップ早い値に更新し、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する場合には前記第1〜3の遅延値をそのまま保持することを特徴とする、
    請求項4に記載のメモリインターフェース回路。
  6. 前記レジスタ制御部は、
    前記初期化動作時に、前記レジスタ制御部は、前記リードデータのラッチタイミングを調整するキャリブレーション動作を行うことにより、前記第2のラッチが前記リードデータを適正にラッチできる最も早いタイミングに対応する第4の遅延値を決定し、
    前記第1の遅延値及び前記第4の遅延値に応じてリード時遅延値の初期値を決定し、
    前記初期化動作後のライト時に
    前記レジスタ制御部は、前記複数の比較結果に基づいて前記第4の遅延値を更新し、
    リード時には、前記遅延選択部は、前記レジスタ部に格納された前記第4の遅延値を読み出し、読み出した前記第1及び第4の遅延値に対応した遅延値を前記読み出し遅延調整装置に設定する、
    請求項3乃至5のいずれか一項に記載のメモリインターフェース回路。
  7. 前記レジスタ制御部は、
    前記初期化動作時に、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する最も早いタイミングに対応する遅延値である第5の遅延値を決定し、
    前記初期化動作後のライト時における当該メモリインターフェース回路の状態変化による前記第5の遅延値の変動を検出し、
    前記第5の遅延値の変動に連動して前記第4の遅延値を変化させることを特徴とする、
    請求項6に記載のメモリインターフェース回路。
  8. 前記レジスタ制御部は、
    前記初期化動作時に、
    前記第5の遅延値に対応するタイミングよりも早く、かつ、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致しない最も遅いタイミングに対応する遅延値である第6の遅延値を決定し、
    前記初期化動作後のライト時に、
    前記第6の遅延値を前記読み出し遅延調整装置に設定して前記複数の比較動作を行い、前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する比較結果が1以上存在する場合には前記第5の遅延値を1ステップ早い値に更新し、
    前記第5の遅延値を更新した場合には、更新された前記第5の遅延値を前記読み出し遅延調整装置に設定して前記複数の比較動作を行い、前記第1のラッチの出力値と前記第2のラッチの出力値とが一致しない比較結果が1以上存在する場合には前記第5の遅延値を1ステップ遅い値に更新し、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する場合には前記第4の遅延値及び前記第6の遅延値を1ステップ早い値に更新し、
    前記第5の遅延値を更新しなかった場合には、前記第5の遅延値を前記読み出し遅延調整装置に設定して前記複数の比較動作を行い、前記第1のラッチの出力値と前記第2のラッチの出力値とが一致しない比較結果が1以上存在する場合には前記第4の遅延値及び前記第5の遅延値を1ステップ遅い値に更新し、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する場合には前記第4〜6の遅延値をそのまま保持することを特徴とする、
    請求項7に記載のメモリインターフェース回路。
  9. 前記比較器は、前記第1のラッチの出力値と前記第2のラッチの出力値を前記遅延ライトストローブ信号の半サイクルだけタイミングを遅らせた値とを比較し、
    前記遅延選択部が前記遅延調整装置に設定する遅延値は、前記比較器が前記第2のラッチの出力値のタイミングを遅らせることなく、前記第1のラッチの出力値と前記第2のラッチの出力値とを比較する場合と比較して、前記遅延ライトストローブ信号の半サイクルだけタイミングを早めた値である、
    請求項1に記載のメモリインターフェース回路。
  10. 前記レジスタ制御部は、
    前記初期化動作時に、前記リードデータのラッチタイミングを調整するキャリブレーション動作を行うことにより、前記第2のラッチが前記リードデータを適正にラッチできる最も早いタイミングに対応する第4の遅延値を決定することを特徴とする、
    請求項に記載のメモリインターフェース回路。
  11. 前記レジスタ制御部は、
    更新された前記第4の遅延値と前記第4の遅延値の初期値とを比較し、更新された前記第4の遅延値と前記第4の遅延値の初期値とが所定の値以上乖離している場合には外部の制御回路へ信号を出力し、
    外部の制御回路は、前記信号に応じて前記レジスタ部を制御することにより、前記第4〜6の遅延値を初期化することを特徴とする、
    請求項10に記載のメモリインターフェース回路。
  12. 前記初期化動作時に、
    前記書き込み遅延調整装置は、前記クロック信号をそのまま前記ライトストローブ信号として出力し、
    前記第4の遅延値は、当該第4の遅延値を前記読み出し遅延調整装置に設定して前記複数の比較動作を行った場合に、前記複数の比較結果の全てにおいて前記第1のラッチの出力値と前記第2のラッチの出力値とが一致する最も早いタイミングに対応する値であることを特徴とする、
    請求項11に記載のメモリインターフェース回路。
  13. ード時の前記遅延値は、前記第1の遅延値及び前記第4の遅延値の中間値であることを特徴とする、
    請求項6乃至8及び10乃至12のいずれか一項に記載のメモリインターフェース回路。
  14. 請求項3乃至8及び10乃至13のいずれか一項に記載のメモリインターフェース回路と、
    前記メモリインターフェース回路を制御する制御回路と、
    前記メモリインターフェース回路及び制御回路を制御するCPUと、を備え、
    前記制御回路は、前記レジスタ制御部から出力される遅延値モニタ信号により前記レジスタ部に格納された前記遅延値を監視し、前記レジスタ部に格納された前記遅延値が予め定められた基準値よりも大きくなった場合には、前記CPUに割り込み信号を出力し、
    前記CPUは、前記割り込み信号を受け取ると、前記メモリデバイスのアクセス要求が無い時に前記制御回路に対して初期化動作要求を行い、
    前記制御回路は、前記初期化動作要求に応じて前記レジスタ制御部に遅延制御信号を出力することにより、前記メモリインターフェース回路に前記初期化動作を行わせることを特徴とする、
    半導体装置。
  15. 請求項14に記載の前記半導体装置が組み込まれたことを特徴とする、
    応用装置。
JP2010247398A 2010-11-04 2010-11-04 メモリインターフェース回路及び半導体装置 Active JP5653177B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010247398A JP5653177B2 (ja) 2010-11-04 2010-11-04 メモリインターフェース回路及び半導体装置
US13/272,856 US8315109B2 (en) 2010-11-04 2011-10-13 Memory interface circuit and semiconductor device
US13/617,421 US8406065B2 (en) 2010-11-04 2012-09-14 Memory interface circuit and semiconductor device
US13/779,293 US9053764B2 (en) 2010-11-04 2013-02-27 Memory interface circuit and semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010247398A JP5653177B2 (ja) 2010-11-04 2010-11-04 メモリインターフェース回路及び半導体装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014233242A Division JP2015035229A (ja) 2014-11-18 2014-11-18 半導体装置

Publications (2)

Publication Number Publication Date
JP2012098996A JP2012098996A (ja) 2012-05-24
JP5653177B2 true JP5653177B2 (ja) 2015-01-14

Family

ID=46019510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010247398A Active JP5653177B2 (ja) 2010-11-04 2010-11-04 メモリインターフェース回路及び半導体装置

Country Status (2)

Country Link
US (3) US8315109B2 (ja)
JP (1) JP5653177B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065372A (ja) * 2011-09-16 2013-04-11 Elpida Memory Inc 半導体装置およびそれを利用した情報処理システム
JP6546067B2 (ja) * 2015-11-04 2019-07-17 ファナック株式会社 メモリ素子の動作マージン確認装置及び動作マージン確認方法
JP6832777B2 (ja) * 2017-03-31 2021-02-24 ルネサスエレクトロニクス株式会社 半導体装置
JP2019057341A (ja) * 2017-09-20 2019-04-11 東芝メモリ株式会社 半導体記憶装置
US10437514B2 (en) * 2017-10-02 2019-10-08 Micron Technology, Inc. Apparatuses and methods including memory commands for semiconductor memories
US10467158B2 (en) 2017-11-29 2019-11-05 Micron Technology, Inc. Apparatuses and methods including memory commands for semiconductor memories
US10836400B2 (en) 2017-12-19 2020-11-17 Micron Technology, Inc. Implementing safety measures in applications
JP2019160238A (ja) 2018-03-16 2019-09-19 東芝メモリ株式会社 メモリインタフェース及びメモリシステム
KR102621098B1 (ko) * 2018-07-23 2024-01-04 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN111028873B (zh) * 2019-12-19 2022-03-01 西安紫光国芯半导体有限公司 一种用于dram物理接口的自适应读通路延迟计算方法及电路
JP7504006B2 (ja) * 2020-11-20 2024-06-21 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100500929B1 (ko) * 2002-11-27 2005-07-14 주식회사 하이닉스반도체 지연 고정 루프 회로
JP4785465B2 (ja) * 2005-08-24 2011-10-05 ルネサスエレクトロニクス株式会社 インタフェース回路及び半導体装置
JP4428319B2 (ja) * 2005-08-30 2010-03-10 エルピーダメモリ株式会社 半導体記憶装置およびバンク・リフレッシュ方法
JP4878215B2 (ja) * 2006-05-26 2012-02-15 ルネサスエレクトロニクス株式会社 インタフェース回路及びメモリ制御装置
JP2008210487A (ja) * 2007-02-28 2008-09-11 Fujitsu Ltd Ddr−sdramインターフェース回路、その試験方法、およびその試験システム
JP2010026896A (ja) 2008-07-23 2010-02-04 Nec Electronics Corp メモリシステム、及び、メモリエラー要因特定方法
JP2010079520A (ja) * 2008-09-25 2010-04-08 Ricoh Co Ltd メモリモジュールのコントローラ及びメモリモジュールのコントローラの制御方法
JP2010086415A (ja) 2008-10-01 2010-04-15 Panasonic Corp メモリインターフェース

Also Published As

Publication number Publication date
US9053764B2 (en) 2015-06-09
US8406065B2 (en) 2013-03-26
JP2012098996A (ja) 2012-05-24
US20130170304A1 (en) 2013-07-04
US20130010545A1 (en) 2013-01-10
US20120113729A1 (en) 2012-05-10
US8315109B2 (en) 2012-11-20

Similar Documents

Publication Publication Date Title
JP5653177B2 (ja) メモリインターフェース回路及び半導体装置
US9977077B1 (en) Self-test solution for delay locked loops
JP4450586B2 (ja) 半導体集積回路
US7816941B2 (en) Circuit and method for controlling termination impedance
US7672191B2 (en) Data output control circuit
KR100910852B1 (ko) 반도체 메모리 소자
JP2010182149A (ja) メモリ制御装置、及びメモリ制御方法
US8788780B2 (en) Signal restoration circuit, latency adjustment circuit, memory controller, processor, computer, signal restoration method, and latency adjustment method
WO2010038422A1 (ja) メモリインターフェース
KR20140080382A (ko) 파라미터를 제어할 수 있는 테스트를 수행하는 반도체메모리장치 및 반도체시스템
JP5807952B2 (ja) メモリコントローラ及びメモリ制御方法
US20110051531A1 (en) Data output control circuit of a double data rate (ddr) synchronous semiconductor memory device responsive to a delay locked loop (dll) clock
US8582376B2 (en) Timing adjustment circuit for a memory interface and method of adjusting timing for memory interface
KR20140026179A (ko) 반도체 장치의 도메인 크로싱 회로
US8050374B2 (en) Semiconductor memory device capable of controlling tAC timing and method for operating the same
JP5005928B2 (ja) インタフェース回路及びそのインタフェース回路を備えた記憶制御装置
US20150146477A1 (en) Semiconductor device
JP2012248088A (ja) メモリアクセス回路及びメモリシステム
JP2009117020A (ja) 半導体メモリ装置
JP2015035229A (ja) 半導体装置
JP5332671B2 (ja) メモリ制御装置及びその制御信号出力タイミングの調整方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141021

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141118

R150 Certificate of patent or registration of utility model

Ref document number: 5653177

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350