説明

ダイナミックデータストローブ検出

【課題】データストローブ信号がデータの捕獲について有効であるときを決定するための技術を提供する。
【解決手段】一実施形態において、データストローブ信号に基づきメモリからデータを捕獲するための初期時間値を決定するように構成されたメモリインターフェイス回路を備えた装置が開示される。ある実施形態では、メモリインターフェイス回路は、メモリから既知の値を読み取ることによりこの初期時間値を決定する。一実施形態では、メモリインターフェイス回路は、更に、データを捕獲するための調整された時間値を決定するように構成され、ここで、メモリインターフェイス回路は、初期時間値を使用してデータストローブ信号をサンプリングすることによりその調整された時間値を決定するように構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、プロセッサに関し、より詳細には、プロセッサをメモリとインターフェイスすることに関する。
【背景技術】
【0002】
プロセッサとメモリとの間でデータが送信されるとき、バスの電圧が実際のデータ値に対応するときを指示し、そしてバスからのデータ値の捕獲を整合するために、データストローブ信号(時々DQSとも称される)がデータ信号と共に与えられる。書き込み動作においては、プロセッサのメモリコントローラインターフェイスが、メモリに書き込まれるデータに対してデータストローブ信号を発生するという役割を果たす。読み取り動作においては、メモリが、読み取られるデータに対してデータストローブ信号を発生する。
【0003】
データストローブ信号は、典型的に、同じ両方向性バスラインを経て送信される。従って、DQS信号ラインは、読み取り動作の実行と書き込み動作の実行との間で浮動する(即ち、3状態で動作する)ことが許される。データストローブ信号が有効になる前に受信者がデータの捕獲を試みた場合には、信号ラインの3状態値がデータの誤った捕獲を引き起こすことがある。更に、DQS信号の初期サイクルの後に受信者がデータの捕獲をスタートする場合には、全てのデータが捕獲されるのではない。
【発明の概要】
【0004】
本開示は、データストローブ信号がデータの捕獲について有効であるときを決定するための技術について述べる。
【0005】
一実施形態において、メモリとの書き込み動作及び読み取り動作の実行を容易にするように構成されたメモリインターフェイス回路(例えば、メモリPHY)を備えたプロセッサが開示される。読み取り動作の間に、メモリインターフェイス回路は、メモリにより与えられるデータストローブ信号に基づいてデータのビットをラッチすることによりメモリバスから受け取られるデータを捕獲する。無効データを捕獲する機会を減少するために、メモリインターフェイス回路は、一実施形態では、既知の値に対しメモリへ読み取り要求を送信する校正を遂行する(例えば、プロセッサ及びメモリの初期化中に、メモリのための自動リフレッシュモードを出た後、等に)。次いで、ビットの捕獲を開始し、それらを記憶されたコピー値と比較して、バス上のデータが有効となってデータストローブ信号も有効であることを指示するときを決定する。一実施形態において、メモリインターフェイス回路は、データストローブ信号が有効になったときを決定できるまでに複数の読み取り動作を遂行するように構成される(例えば、読み取り要求を送信した3.5クロックサイクル後)。別の実施形態では、メモリインターフェイス回路は、単一の読み取り要求を送信し、そしてストローブ信号のレートより高いレートでデータのビットを捕獲して(例えば、DQSの1/4サイクルごとに)、信号が有効になったときを決定する。
【0006】
ある実施形態では、メモリインターフェイス回路は、データストローブ信号をサンプルして、データストローブ信号が有効であるときを決定する更に別の校正も遂行するように構成される。次いで、メモリインターフェイス回路は、この決定に基づきデータのビットをラッチするときを調整する。一実施形態では、メモリインターフェイス回路は、メモリから既知の値を読み取ることで決定された初期時間値に基づいてデータストローブ信号をサンプリングすべきときを決定するように構成される。ある実施形態では、メモリインターフェイス回路は、データストローブ信号を周期的に再サンプリングし、プロセス、電圧及び温度(PVT)の変化によるストローブ信号変動のタイミングとしてマイナー調整を行う。
【図面の簡単な説明】
【0007】
【図1】2つの読み取り動作のタイミング特性を示す一対のタイミング図である。
【図2】1つ以上のメモリモジュールに結合された集積回路の一実施形態を示すブロック図である。
【図3】メモリモジュールに結合されたメモリPHYの一実施形態を示すブロック図である。
【図4】メモリPHYにおける校正ユニットの一実施形態を示すブロック図である。
【図5A】メモリPHYにおけるデータバッファの実施形態を示すブロック図である。
【図5B】メモリPHYにおけるデータバッファの実施形態を示すブロック図である。
【図6】データストローブ信号が有効であるときを決定するための方法の一実施形態を示すフローチャートである。
【図7】データストローブ信号が有効であるときを決定するための方法の別の実施形態を示すフローチャートである。
【図8】規範的なシステムのブロック図である。
【発明を実施するための形態】
【0008】
本明細書は、「1つの実施形態」又は「一実施形態」への言及を含む。「1つの実施形態において」又は「一実施形態において」という句が現れたときには、必ずしも同じ実施形態を指していない。本開示と矛盾しない適当な仕方で特定の特徴、構造又は特性を組み合わせることができる。
【0009】
用語:次の段落は、本開示(請求の範囲を含む)に見られる用語の定義及び/又は状況を述べる。
【0010】
「備える(comprising)」:この用語は、制限のないものである。特許請求の範囲に使用されるとき、この用語は、付加的な構造又は段階を排除するものではない。「・・・1つ以上のプロセッサユニットを備えた装置」と表現される請求項について考える。このような請求項は、装置が付加的なコンポーネント(例えば、ネットワークインターフェイスユニット、グラフィック回路、等)を含むことを排除するものではない。
【0011】
「構成される(configured to)」:種々のユニット、回路又は他のコンポーネントは、1つ又は複数のタスクを遂行するように「構成される」と述べられ又は請求される。このような状況において、「構成される」は、ユニット/回路/コンポーネントが動作中にそれらのタスクを遂行する構造(例えば、回路)を含むことを指示することによって構造を暗示するのに使用される。従って、ユニット/回路/コンポーネントは、指定のユニット/回路/コンポーネントが現在動作していない(例えば、オンではない)ときでもタスクを遂行するように構成されると言うことができる。「構成される」という語と共に使用されるユニット/回路/コンポーネントは、ハードウェア、例えば、回路、動作を具現化するように実行できるプログラムインストラクションを記憶するメモリ、等を含む。ユニット/回路/コンポーネントが1つ以上のタスクを遂行するように「構成される」ことを表現することは、そのユニット/回路/コンポーネントに対して35U.S.C.§112、第6節を引用しないことが明確に意図される。更に、「構成される」は、係争中のタスクを遂行できる仕方で動作するようにソフトウェア及び/又はファームウェア(例えば、FPGA又はソフトウェアを実行する汎用プロセッサ)により操作される一般的構造(例えば、一般的回路)を含むことができる。又、「構成される」は、1つ以上のタスクを実施又は遂行する装置(例えば、集積回路)を製造するように製造プロセス(例えば、半導体製造設備)を適応させることも含む。
【0012】
「第1(first)」、「第2(second)」、等:ここに使用するこれらの語は、名詞に先行する表示として使用されるもので、順序付けの形式(例えば、空間的、時間的、論理的、等)を意味していない。例えば、8つの処理要素又はコアを有するプロセッサでは、「第1」及び「第2」の処理要素という語は、8つの処理要素のうちの任意の2つを指すのに使用される。換言すれば、「第1」及び「第2」の処理要素は、論理的な処理要素0及び1に限定されない。
【0013】
「基づく(based on)」:ここで使用するこの語は、決定に影響する1つ以上のファクタを説明するのに使用される。この語は、決定に影響する付加的なファクタを排除するものではない。即ち、決定は、これらのファクタのみに基づいてもよいし、又はこれらのファクタに少なくとも一部分基づいてもよい。「Bに基づいてAを決定する」という句について考える。Bは、Aの決定に影響するファクタであるが、このような句は、Cにも基づいてAを決定することを排除するものではない。他の例では、Aは、Bのみに基づいて決定されてもよい。
【0014】
「データストローブ信号(data strobe signal)」:この語は、この技術において通常の受け容れられた意味を有し、有効なデータが送信されることを指示するために1つ以上のデータ信号に関連して駆動される信号を含む。ストローブ信号は、典型的に、データ信号と同様の位相及び周波数を有し、データ信号からデータを捕獲するのに使用される。
【0015】
図1を参照すれば、2つの読み取り動作に対して考えられるタイミング特性を示す一対のタイミング図110A及び110Bが描かれている。図示したように、各図110は、クロック信号CK(差動信号対CK_t及びCK_cで表された)と、コマンド信号[CMD]と、データストローブ信号DQS(差動信号対DQS_c及びDQS_tで表された)と、データ信号DQとを含む。クロック信号CKは、集積回路とメモリとの間の種々の動作のタイミングを整合するのに使用される。コマンド信号[CMD]は、種々の動作(例えば、読み取りのための行及び列アドレスストローブ、等)をメモリに行わせるためにメモリ物理的インターフェイス回路(PHY)によって発生される。データストローブ信号DQSは、データ信号DQが有効なデータ(ビットD1、D2、D3、等として示す)を有するときに振動する信号である。
【0016】
両読み取り動作において、メモリPHYは、時間T0にCMD信号を経てメモリへ読み取りコマンドを送信することで開始する。次いで、メモリは、次の1つ以上のクロックサイクル中にデータを検索し、そして要求されたデータをメモリPHYへ返送する。メモリがデータの供給を開始すると、メモリは、DQSを低へ駆動し、次いで、バスにわたってビットが駆動されるときにDQSを振動させる。図110Aでは、メモリは、T2の後にDQSを低へ駆動し、そしてT3の後にDQSの振動を開始する。図110Bでは、メモリは、T3の後にDQSを低へ駆動し、そしてT4の後に振動を開始する。DQSが振動するときに、メモリPHYは、一実施形態において、下降縁104でスタートするDQSの下降縁でDQのビットをラッチする。
【0017】
このような実施形態において全てのデータを正しく捕獲するために、メモリPHYは、DQSの第1の完全な下降(即ち、浮動値から論理的0への下降102ではなく、論理的1から論理的0への下降104)の間にデータのラッチを開始しなければならない。この下降時又はその前に(例えば、102A又はその前に)データの第1ビットがラッチされた場合には、DQSの浮動状態で無効ビットがラッチされることがある。104Aの後に第1ビットがラッチされた場合には、最初のビットD1が捕獲されない。種々の実施形態において、メモリPHYは、DQSが有効になるまで、例えば、下降102の後の時間まで、DQSをゲートする(例えば、それが捕獲DQラッチを駆動するのを防止する)ことによりデータが捕獲されるときをコントロールすることができる。従って、図110Aでは、メモリPHYは、データの全てのビットを正しく捕獲するために、期間120A内にDQSをアンゲート(即ち、それを捕獲ラッチへ供給)しなければならない。
【0018】
種々のメモリ規格は、データが正しく捕獲されるよう保証するために読み取りコマンドが発行された後にDQSが有効となるときについて遅延期間を指定する。この遅延期間の一例が、図110A及び110Bに、T0における読み取りコマンドのスタートから3つのCKサイクル遅延として示されている。両図110A及び110Bにおいて、DQSは、この3サイクル期間の後に有効となるが(この遅延の終了とDQS振動の開始との間の時間をtDQSCKと称することに注意されたい)、この期間を定義することは、DQSがT3において浮動している図110Bに示すようにこの期間の終了にDQSが有効になることを保証するものではない。例えば、図110Aにおいて、メモリPHYがT3にDQSをアンゲートする場合には、DQSが浮動せず、メモリPHYは、データを正しく捕獲しない。しかしながら、図110Bにおいて、DQSは、T3の後の期間130中に浮動する。DQSが期間130中にメモリPHYにおける捕獲ラッチを駆動することが許される場合には、無効データが捕獲されることがある。しかしながら、DQSが期間120B中にアンゲートされる場合には、データが正しく捕獲されねばならない。
【0019】
以下に述べるように、種々の実施形態では、集積回路は、種々の技術を使用し、データを捕獲するためにデータストローブ信号を使用していつ開始すべきか決定することができる。例えば、このような回路は、種々の技術を使用して、両期間120A及び120B内の時間値を決定し、そしてその時間値に基づいてデータの捕獲を開始することができる。
【0020】
図2を参照すれば、システム10のブロック図が示されている。ここに示す実施形態では、システム10は、外部メモリモジュール240A−240Bに結合された集積回路(IC)200を備えている。集積回路200は、1つ以上の処理コア210A−210B、メモリコントローラ220、及び1つ以上のメモリ物理的インターフェイス回路(PHY)230A−230Bを備えている。メモリコントローラ220は、各相互接続部212A及び212Bを経てコア210A及び210Bに結合されると共に、各相互接続部222A及び222Bを経てメモリPHY230に結合される。メモリPHYは、各相互接続部232A及び232Bを経てメモリモジュール240A及び240Bに結合される。
【0021】
コア210は、一実施形態において、データの読み取り及び書き込み要求を発生するように構成される。コア210は、インストラクションセットアーキテクチャーを実施し、そしてそのインストラクションセットアーキテクチャーに定義されたインストラクションを実行するように構成される。コア210は、スカラー、スーパースカラー、パイプライン、スーパーパイプライン、無秩序、秩序、推論的、非推論的、等、又はその組み合わせを含めて、任意のマイクロアーキテクチャーを使用する。コア210は、回路を含み、そして任意であるが、マイクロコード化技術を実施する。コア210は、1つ以上のキャッシュレベルを含む。1つ以上のコア210が、フレームバッファへ表示されるべきオブジェクトをレンダリングするよう構成されたグラフィックコントローラを実施してもよい。
【0022】
メモリコントローラ220は、一実施形態では、コア210によって発生された要求を処理し、そしてそれに対応するコマンドをメモリモジュール240へ発生して、種々のメモリ動作を遂行するように構成される。又、メモリコントローラ220は、(図8に関連して述べるもののような)種々の周辺装置、ネットワーク装置、記憶装置、I/O装置、等の他のソースからの要求も処理する。メモリコントローラ220は、変換構造、ページウォークユニット、等のバーチャルメモリを実施するための種々の構造を含む。一実施形態では、メモリコントローラ220は、モジュール240にリフレッシュコマンドを発生することによりメモリモジュール240のリフレッシュを容易にするように構成される。
【0023】
メモリPHY230は、一実施形態において、IC200とメモリモジュール240との低レベル物理的インターフェイスを取り扱ってデータの交換を容易にするように構成される。例えば、メモリPHY230は、信号のタイミング、同期DRAMメモリへの適切なクロッキング、等の役割を果たす。メモリPHY230は、集積回路200内に供給されるクロックにロックし、そしてメモリモジュール240により使用される対応クロック(例えば、上述したクロック信号CK)を発生するように構成される。メモリPHY230は、メモリコントローラ220からメモリモジュール240へコマンドを中継するように構成される。又、メモリPHY230は、メモリコントローラ220からコマンドを受け取り、そしてメモリモジュール240へ1つ以上の対応信号(例えば、CMD、DQS、DQ、等)を発生するようにも構成される。
【0024】
メモリモジュール240は、ダイナミックランダムアクセスメモリ装置(DRAM)、同期DRAM(SDRAM)、倍データレート(DDR、DDR2、DDR3、等)SDRAM(mDDR3、等のSDRAMの移動バージョン、及び/又はLPDDR2、LPDDR3、等のSDRAMの低電力バージョンを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)、等の任意の形式のメモリである。1つ以上のメモリ装置が回路板に結合されて、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)、等のメモリモジュールを形成する。或いは又、装置が集積回路200と共にチップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成でマウントされてもよい。
【0025】
種々の実施形態において、メモリPHY230は、データストローブ信号DQSに基づいてメモリモジュール240から受け取られたデータDQを捕獲するように構成される。DQSが有効であるときにデータが捕獲されるよう保証するために、メモリPHY230は、一実施形態では、メモリモジュール240へ対応コマンドを送信した後にDQSが有効となったときを決定する校正プロセスを遂行するように構成される。以下に述べるように、一実施形態において、この校正プロセスは、メモリから既知の値を読み取り、そしてその時点でDQSが有効であることを指示する値を正しく捕獲できるときを決定することを含む。ある実施形態では、この校正プロセスは、更に、DQSを周期的にサンプリングして、DQSのタイミングをより正確に決定しそしてその後のタイミング変化を検出することを含む。
【0026】
図3を参照すれば、メモリモジュール240に結合されたメモリPHY230の一実施形態が描かれている。ここに示す実施形態では、メモリPHY230は、マスター遅延ロックループ(DLL)304、1つ以上のデータバッファ310A及び310B、遅延ユニット320、ゲート330、及び校正ユニット340を備えている。又、メモリモジュール240は、テスト値記憶装置350も備えている。
【0027】
マスターDLL304は、一実施形態では、受信したマスタークロック信号302を、PHY230の種々のユニットに供給して、種々の動作の遂行を整合するように構成される。一実施形態において、マスターDLL304は、更に、信号302に基づきメモリモジュール240のためのクロック信号CKを発生するように構成される。ある実施形態では、信号CKは、メモリモジュール240が倍データレート(DDR)メモリである場合には、信号302の2倍のレートを有する。
【0028】
データバッファ310は、一実施形態では、メモリモジュール240から受け取ったデータDQを、メモリコントローラ220に与えることができるまで、捕獲してバッファするように構成される。種々の実施形態では、データバッファ310は、データストローブ信号DQSに基づき(例えば、DQSの各下降(又は上昇)縁の際に)データDQのビットをラッチするように構成される。以下に述べるように、校正ユニット340は、一実施形態では、バッファ310からのビットを捕獲して、DQSのタイミング特性を決定する。データバッファ310は、図5A及び5Bに関連して以下に詳細に説明する。
【0029】
遅延ユニット320は、一実施形態では、ゲート330を動作することによってデータバッファ310がDQSを受信するときをコントロールするように構成される。ここに示す実施形態では、遅延ユニットニット320は、コマンドCMDがメモリモジュール240へ送信されて以来適当な遅延322(例えば、クロック信号302の3.5サイクル)が経過した後にゲート330をオープンするべく捕獲スタート信号324をアサートするように構成される。一実施形態では、遅延ユニット320は、遅延ロックループを使用して実施される。種々の実施形態では、捕獲スタート信号324のアサーションは、DQSの到着に基づいて(即ち、DQSが有効になったとき)タイミング合わせされる。例えば、上述した図110A及び110Bにおいて、遅延ユニット320は、期間120A及び120Bのオーバーラップ中にゲート330をオープンして、DQSがバッファ310を駆動するようにさせて、データを捕獲するように構成される。上述したように、DQSの第1の下降縁の後に捕獲スタート324がアサートされた場合には、バッファ310が、全てのDQビットを正確に捕獲しないことがある。同様に、DQSが浮動であるとき捕獲スタート324がアサートされた場合には、バッファ310が、偽のDQS縁で無効データを捕獲することがある。
【0030】
校正ユニット340は、一実施形態において、DQSがおそらく有効になるときを決定し、そして遅延ユニット320が適当な期間中に捕獲スタート330をアサートするように遅延値322の遅延調整342を行うよう構成される。種々の実施形態において、校正ユニット340は、メモリモジュール240からテスト値を読み取りそしてバッファ310がビットを捕獲するときにそれらを分析することにより、遅延ユニット320のための遅延値322を決定する。校正ユニット340は、捕獲したビットストリームにおいて捕獲したテスト値352を確認すると、この期間中にDQSが有効であることを決定することができる。校正ユニット340は、それに応じて遅延ユニット320の遅延値322を調整する。ある実施形態では、校正ユニット340は、複数の読み取り動作から捕獲したデータを分析することにより遅延値322を決定し、各読み取り動作のためのデータは、各々異なる遅延値322を使用して捕獲される。校正ユニット340は、テスト値の正しい捕獲を生じる遅延値322を決定するまで異なる遅延値322をテストし続ける。他の実施形態では、校正ユニット340は、単一の読み取り動作のみからデータを分析してもよく、この場合、データは、DQSより高いレートで(例えば、DQSの1/4サイクルごとに)捕獲され、データが正しく且つDQSが有効になったときを決定する。ある実施形態では、遅延値322を決定するのに使用されるテスト値は、最初に、メモリに書き込まれ、そしてその後に読み取られる。他の実施形態では、テスト値は、メモリモジュール240の専用部分に記憶され、例えば、永久的にハードコード化される。
【0031】
テスト値記憶装置350は、一実施形態において、アクセス可能なテスト値を専用に記憶するモジュール240の一部分である。ある実施形態では、記憶装置350は、既知のテスト値を返送するアクセス可能なレジスタを含む。例えば、メモリモジュール240がLPDDR規格を実施する1つの実施形態において、記憶装置350は、モードレジスタ読み取り(MRR)コマンドに応答して既知のデータパターンを返送するモードレジスタ(MR)32及び40を含む。一実施形態において、校正ユニット340は、メモリモジュール240へ読み取り要求を直接発生して、それが記憶装置350からテスト値を返送するようにさせる。別の実施形態では、それに代わって、校正ユニット340は、メモリコントローラ220が読み取りコマンドを発生する(例えば、読み取りインストラクション344により)ようにさせ、メモリPHY230がそれをテスト値としてメモリモジュール240へ中継する。
【0032】
ある実施形態では、既知の値を読み取ることにより決定された遅延値322は、データが一貫して正しく捕獲されることを保証するに充分なほど正確でないことがある(又は既知の値を読み取る時間を考慮すると、ある場合には、種々のタイミング制約のために実現可能なオプションでないことがある)。種々の実施形態において、校正ユニット340は、以前に決定された遅延値322を、DQSをサンプリングするための初期時間値として使用して、それが有効になったときを決定するように構成される。一実施形態では、校正ユニット340がDQSをサンプリングするとき、DQSの第1の完全な下降(又は上昇)クロック縁を識別し、そしてそれに応じて遅延値322を調整するように試みる。ある実施形態では、校正ユニット340は、通常の/機能的な読み取り動作(即ち、既知のテスト値に対するものではない読み取り動作)の実行中にこの調整された遅延値322を決定する。
【0033】
校正ユニット340は、いつ既知の値を読み取るべきか又はDQSをサンプルすべきであるかを種々の基準に基づいて決定する。一実施形態では、校正ユニット340は、メモリPHY230及びメモリモジュール240がスタート時に初期化されたときに(例えば、一実施形態では、マスターDLL304からクロック信号がアサートされた後に)既知の値を読み取って校正を遂行する(即ち、「既知値の校正」を遂行する)。(1つの実施形態では、メモリコントローラ220は、校正ユニット340がこの初期校正を遂行するようにさせ、校正ユニット340は、次いで、その後の校正を遂行すべきときをそれ自身で決定する。ある実施形態では、校正ユニット340は、メモリモジュール240が自動リフレッシュモードを出た後、低電力モードを出た後、所定時間が経過した後、等に既知値の校正を遂行してもよい。ある実施形態では、校正ユニット340は、(例えば、より正確な遅延値322を決定するために)既知値の校正を遂行するたびにDQSをサンプリングして校正を遂行してもよい(即ち、「サンプリング校正」を遂行してもよい)。ある実施形態では、校正ユニット340は、サンプリング校正を周期的に遂行してもよい(例えば、特定の期間が経過した後に)。
【0034】
図4を参照すれば、校正ユニット340の一実施形態が示されている。ここに示す実施形態では、校正ユニット340は、比較ユニット410、サンプルユニット420、及び1つ以上のタイマー430を備えている。
【0035】
比較ユニット410は、一実施形態において、既知値の校正の遂行を容易にするように構成される。ここに示す実施形態では、比較ユニット410は、バッファ310によって捕獲されたビットを、記憶されたテスト値412(例えば、MR32及びMR40により返送されるパターンのような記憶装置350における値のコピー)と比較して、捕獲されたテスト値352を識別する。比較ユニット410は、次いで、捕獲されたテスト値352をいつ識別するかに基づいて遅延値414を決定する。ある実施形態では、比較ユニット410は、複数の読み取り動作から捕獲されたビットを比較して、値352を識別すると共に、遅延値414を決定するように構成される。他の実施形態では、比較ユニット410は、単一の読み取り動作のみから捕獲されたビットを比較して、値352を識別すると共に、遅延値を決定するように構成される。このような実施形態では、ビットは、DQSのレートより高いレートで(例えば、DQSの1/4サイクルごとに)捕獲され、従って、複数の読み取り動作は不要である。ここに示す実施形態では、比較ユニット410は、DQSのサンプリングを容易にするために値414を与える。別の実施形態では、校正ユニット340が値414を遅延値322として直接使用して、遅延調整342を遂行する。
【0036】
サンプリングユニット420は、一実施形態では、サンプリング校正の遂行を容易にするように構成される。種々の実施形態において、サンプリングユニット420は、到来するDQSをサンプリングして、DQS上昇縁及び下降縁の所定のパターンをチェックし、DQSが有効になるときを決定するように構成される。一実施形態において、サンプリングユニット420は、少なくとも1/16サイクルごとのレートでサンプリングを行う(例えば、1/16 tCK位相シフトクロックがオーバーサンプリングDLLにより発生される)。上述したように、一実施形態において、サンプリングユニット420は、通常の読み取り動作中にDQSをサンプリングするように構成され、別の実施形態では、サンプリングユニット420は、既知値の校正中にDQSをサンプリングする。ここに示す実施形態では、校正ユニット340は、サンプリングユニット420により決定された遅延値に基づき遅延ユニット342の調整342を遂行する(ある実施形態では、サンプリングユニット420により決定された遅延値は、そのユニット420により使用される高いサンプリングレートのために、値414より正確である)。上述したように、種々の実施形態では、遅延調整342は、DQSがおそらく有効となる窓の中間に捕獲スタート324のアサーションを位置付けるように遂行される。
【0037】
タイマー430は、一実施形態において、既知値の校正及び/又はサンプリング校正をいつ行うべきか決定するために校正ユニット340により使用される。上述したように、ある実施形態では、校正ユニット340は、初期化の後(例えば、システムブートアップ中)、DRAM自己リフレッシュモードを出た後、等に既知値の校正を遂行し、そしてその直後にサンプリング校正を遂行するように構成される。ある実施形態では、校正ユニット340は、更に、サンプリング校正を周期的に遂行する。種々の実施形態において、そのような校正が最後に行われたときを追跡するためにタイマー430が使用される。例えば、各タイマー430には、リセット時にスタート値がロードされ、そして校正後に同じスタート値が再ロードされる。一実施形態では、タイマー430が第1のスレッシュホールドに到達すると、校正ユニット340は、次に得られる読み取りでサンプリング校正を遂行することを決定する。読み取りが生じる前にタイマー430が第2のスレッシュホールドに到達すると、校正ユニット340は、メモリコントローラ220に、読み取りコマンドを発生してその読み取り動作中にDQSをサンプリングするように命令する。校正ユニット340がサンプリング校正を完了することができず(例えば、次の読み取りが充分直ちに生じないか、又はDQSが有効になるときを校正ユニット340が決定できず)、そしてタイマー430が第3のスレッシュホールドに到達する場合には、校正ユニット340は、既知値の校正を遂行することを決定する。ある実施形態では、タイマー430は、メモリPHY230によりコントロールされるメモリランクごとに各タイマー430を含む。
【0038】
図5Aを参照すれば、データバッファ310の一実施形態が示されている。ここに示す実施形態では、バッファ310は、読み取り/書き込みポインタ先入れ先出し(FIFO)バッファとして構成される。図示されたように、バッファ310は、ラッチ510A−D(例えば、DQフリップ・フロップ)、コントロールユニット520、及びマルチプレクサ(MUX)530を含む。
【0039】
一実施形態において、ラッチ510A−Dは、メモリモジュール240から受け取ったデータDQのビットを、メモリコントローラ220へ送ることができるまで、記憶するように構成される。通常の動作中に(即ち、遅延値322が決定されていないとき)、一実施形態では、コントロールユニット520は、各受信ビットDQに対してラッチを選択し、そしてその選択されたラッチをDQSに基づいてクロックする(即ち、ラッチがビットを捕獲及び記憶するようにさせる)。コントロールユニット520は、次いで、バッファ310からの読み取り中にMUX530を使用することによりラッチ510の出力を選択する。書き込み及び読み取りを追跡するために、コントロールユニット520は、書き込まれ及び読み取られる最後のラッチ(又は書き込まれ及び読み取られる次のラッチ)を指示する捕獲及び再捕獲カウンタ522を維持する。従って、一実施形態では、コントロールロジック520は、ビットがラッチされるときにDQSの下降(又は上昇)縁で捕獲カウンタをインクリメントし、そしてビットが読み込まれるときにクロック信号302の下降(又は上昇)縁で再捕獲カウンタをインクリメントする。
【0040】
一実施形態において、遅延値322が決定されると、コントロールユニット520は、その捕獲及び再捕獲カウンタ522をインクリメントせず、むしろ、同じラッチ510がテスト値のビットを捕獲するようにさせる。上述したように、種々の実施形態では、捕獲ユニット340(例えば、ここに示す実施形態では、特に、比較ユニット410)は、ラッチ510の出力をサンプリングしてビットの比較を遂行するように構成される。上述したように、ある実施形態では、校正ユニット340は、DQSのレートより高いレートで出力をサンプリングするように構成され(例えば、少なくともDQSの1/4サイクルごとに)、他の実施形態では、ユニット340は、DQSの各サイクル中に単一ビットをサンプリングする。
【0041】
図5Bを参照すれば、データバッファ310の別の実施形態が示されている。ここに示す実施形態では、バッファ310は、シフトレジスタFIFOバッファとして構成される。図示されたように、バッファ310は、ラッチ550A−D及びゲート560を備えている。通常の読み取り動作中に、ラッチ550は、一実施形態では、データDQのビットが1つのラッチ550から次のラッチへシフトされるときDQSによりクロックされる。しかしながら、ここに示す実施形態では、テスト値が読み取られるときに、ゲート560がクローズされ、DQSはラッチ550Aしか駆動せず、そしてビットは、その後のラッチ550B−550Dへとシフトされない。次いで、比較ユニット410は、初期ラッチ550Aのみの出力をサンプリングするように構成される。
【0042】
図6を参照すれば、データストローブ信号が有効であるときを決定するための方法600のフローチャートが示されている。方法600は、メモリPHY230のようなメモリインターフェイス回路によって遂行される方法の一実施形態である。ある実施形態では、方法600は、メモリPHY230の初期化中(例えば、IC200をブートする間)、メモリのためのリフレッシュモードを出た後、等に遂行される。多くの場合、方法600を遂行することで、無効データを捕獲するおそれが低減される。
【0043】
ステップ610において、メモリPHY230は、データ値についての読み取り要求をメモリ(例えば、メモリモジュール240)へ送信する。一実施形態において、データ値は、メモリの専用部分(例えば、レジスタMR32又はMR40)に記憶されたテスト値である。別の実施形態では、データ値がメモリに事前に書き込まれる。一実施形態では、メモリPHY230は、要求を発生(即ち、発行)せず、むしろ、メモリコントローラ(例えば、メモリコントローラ220)がデータ要求を発行するようにさせる。
【0044】
ステップ620において、メモリPHY230は、データ値の捕獲を遂行する(例えば、バス232から)。一実施形態において、メモリPHY230は、捕獲されたデータ値を正しいコピー(例えば、テスト値412の1つ)と比較し、データ値が正しく捕獲されたかどうか決定する。ある実施形態では、メモリPHY230は、ステップ620の間に、同じ読み取り要求に対して複数の捕獲(例えば、少なくとも4つ)を遂行し、各捕獲が各時間値(例えば、遅延値322の異なる潜在値)に関連するようにする。
【0045】
ステップ630において、メモリPHY230は、データストローブ信号(例えば、DQS)に基づいてデータをいつ捕獲すべきか決定するための時間値を決定する。一実施形態では、その決定された時間値は、メモリへの読み取り要求の発行と、メモリによるデータストローブ信号の駆動との間の期間を表わす値(例えば、遅延値322)である。一実施形態では、異なる各時間値についてステップ620において複数の捕獲が行われた場合に、メモリPHY230は、各時間値の1つを、決定された初期時間値として選択する。従って、種々の実施形態では、時間値は、データストローブ信号がおそらく有効になる窓の中間に(例えば、上述した期間120Aと120Bとの重畳域内に)ある場合に選択される。一実施形態では、選択された値は、次いで、(例えば、ゲート330をコントロールすることにより)メモリからデータを後で捕獲するのに使用される。
【0046】
ある実施形態では、方法600は、次に述べる方法700に関連して遂行される。
【0047】
図7を参照すれば、データストローブ信号が有効であるときを決定するための別の方法700のフローチャートが示されている。方法700は、メモリPHY230のようなメモリインターフェイス回路により遂行される方法の一実施形態である。多くの場合、方法700を遂行することで、無効データを捕獲するおそれが低減される。
【0048】
ステップ710において、メモリPHY230は、メモリからデータを捕獲するための初期時間値をデータストローブ信号に基づいて決定する。ある実施形態では、ステップ710は、上述した方法600を遂行することを含む。
【0049】
ステップ720において、メモリPHY230は、データストローブ信号をサンプリングするために初期時間値(ステップ710で決定されるか又はステップ720の以前の実行中に決定された)を使用することにより、調整された時間値を決定する。一実施形態では、メモリPHY230は、データストローブ信号の単一サイクル内に(例えば、1サイクルの1/16ごとに)データストローブ信号の複数のサンプリングを遂行する。ある実施形態では、メモリPHY230は、バッファ内のラッチ(例えば、ラッチ510A又は550A)の出力をサンプリングして、複数のサンプルを得る。上述したように、一実施形態では、メモリPHY230は、データストローブ信号をサンプリングし、データストローブ信号が有効となったときを指示する所定のパターン(例えば、DQS上昇縁及び下降縁の)をチェックする。メモリPHY230は、次いで、この調整された時間値を使用して、メモリから受け取られるデータを捕獲する。
【0050】
種々の実施形態では、メモリPHY230は、データストローブ信号の調整を考慮するためにステップ720を周期的に遂行し続ける。ステップ720をいつ再遂行すべきか決定するために、メモリPHY230は、一実施形態では、(例えば、ステップ720の以前の遂行で決定された)時間の最後の再検出が遂行されたときを指示するカウンタ(例えば、1つ以上のタイマー430)を維持し、そしてカウンタの満了時に別の再検出を遂行する。
【0051】
規範的なコンピュータシステム
図8を参照すれば、システム850(ある実施形態では、上述したシステム10を実施するのに使用される)の一実施形態のブロック図が示されている。ここに示す実施形態では、システム850は、外部メモリ852に結合された集積回路200の少なくとも1つの例を含む。外部メモリ852は、図2を参照して上述したメインメモリサブシステムを形成する(例えば、外部メモリ852は、メモリモジュール240を含む)。集積回路200は、1つ以上の周辺装置854及び外部メモリ852に結合される。電源856も設けられ、これは、集積回路858に供給電圧を供給すると共に、メモリ852及び/又は周辺装置854に1つ以上の供給電圧を供給する。ある実施形態では、集積回路200の2つ以上の例が含まれてもよい(及び2つ以上の外部メモリ852も含まれてもよい)。
【0052】
メモリ852は、任意の形式のメモリ、例えば、ダイナミックランダムアクセスメモリ(DRAM)、同期DRAM(SDRAM)、倍データレート(DDR、DDR2、DDR3、等)SDRAM(mDDR3等のSDRAMの移動バージョン、及び/又はLPDDR2等のSDRAMの低電力バージョンを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)、等である。1つ以上のメモリ装置が回路基板に結合されて、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)、等を形成する。或いは又、装置が集積回路200と共に、チップオンチップ構成、パッケージオンパッケージ構成又はマルチチップモジュール構成でマウントされてもよい。
【0053】
周辺装置854は、システム850の形式に基づいて望ましい回路を含む。例えば、一実施形態では、システム850は、移動装置(例えば、パーソナルデジタルアシスタント(PDA)、スマートホン、等)であり、そして周辺装置854は、wifi、Bluetooth(登録商標)、セルラー、グローバルポジショニングシステム、等の種々の形式のワイヤレス通信のための装置を含む。又、周辺装置854は、RAM記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含めて、付加的な記憶装置も含む。又、周辺装置854は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置を含む。他の実施形態では、システム850は、任意の形式のコンピューティングシステム(例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップ、等)である。
【0054】
特定の実施形態について以上に述べたが、これらの実施形態は、本開示の範囲を限定するものではなく、どこでも、特定の特徴に関して単一の実施形態のみが説明されている。本開示に述べられた特徴は、特に指示のない限り、例示に過ぎず、それに限定されるものではない。以上の説明は、本開示の利益を得る当業者に明らかとなる代替え物、変更及び等効物を網羅することが意図される。
【0055】
本開示の範囲は、(明示的又は暗示的に)ここに述べる特徴又は特徴の組み合わせ、又はそれを一般化したものを、それがここに述べる問題のいずれか又は全部を軽減するか否かに関わらず、包含する。従って、そのような特徴の組み合わせに対する本出願(又はその優先権を主張する出願)の手続き中に新規請求項が形成されることがある。特に、特許請求の範囲を参照すれば、従属請求項からの特徴を独立請求項の特徴と組み合わせることができ、又、各独立請求項からの特徴を、特許請求の範囲に単に列挙された特定の組み合わせでない適当な仕方で組み合わせることができる。
【符号の説明】
【0056】
10:システム
110A、110B:タイミング図
200:集積回路(IC)
210A、B:コア
212A、B:相互接続部
220:メモリコントローラ
222A、B:相互接続部
230A、B:メモリ物理的インターフェイス回路(PHY)
232A、B:相互接続部
240A、B:メモリモジュール
304:マスター遅延ロックループ(DLL)
310A、B:データバッファ
320:遅延ニット
330:ゲート
340:校正ユニット
350:テスト値記憶装置

【特許請求の範囲】
【請求項1】
データストローブ信号に基づいてメモリからデータを捕獲するための初期時間値を決定するように構成されたメモリインターフェイス回路を備え、
前記メモリインターフェイス回路は、データを捕獲するための調整された時間値を決定するように構成され、更に、前記メモリインターフェイス回路は、前記初期時間値を使用して前記データストローブ信号をサンプリングすることによって前記調整された時間値を決定するように構成された、装置。
【請求項2】
前記メモリインターフェイス回路は、
前記メモリからの既知の値の捕獲を遂行し、
前記既知の値が正しく捕獲されたかどうかに基づき前記初期時間値を決定する、
ように構成され、前記初期時間値は、前記メモリへの読み取り要求の発行と、前記メモリによる前記データストローブ信号の駆動との間の期間を表わす値である、請求項1に記載の装置。
【請求項3】
前記メモリインターフェイス回路は、
前記既知の値の単一の読み取り動作に応答して複数の捕獲を遂行し、各捕獲は、各時間値に関連したものであり、更に、
各時間値の1つを決定された初期時間値として選択する、
ように構成された請求項2に記載の装置。
【請求項4】
前記メモリインターフェイス回路に結合されたメモリコントローラを更に備え、前記メモリインターフェイス回路は、このメモリコントローラが読み取り要求を発行するようにさせるよう構成された、請求項2に記載の装置。
【請求項5】
前記メモリインターフェイス回路は、
前記データストローブ信号の単一サイクル内に前記データストローブ信号の複数のサンプルを得、
前記調整された時間値を使用して、前記データストローブ信号がいつデータの捕獲を行えることが許されるか決定する、
ように構成された請求項1に記載の装置。
【請求項6】
前記メモリインターフェイス回路は、前記メモリのリフレッシュ動作に応答して複数のサンプルを得るように構成された、請求項5に記載の装置。
【請求項7】
前記メモリインターフェイス回路は、データを捕獲するための調整された時間値の決定を周期的に遂行するように構成された、請求項1に記載の装置。
【請求項8】
前記メモリインターフェイス回路は、読み取り動作の遂行中に前記調整された時間値を決定するように構成された、請求項1に記載の装置。
【請求項9】
前記メモリインターフェイス回路は、
データを捕獲するための時間値の最後の決定が遂行されたときを指示するカウンタを維持し、
前記カウンタの満了時に時間値の決定を遂行する、
ように構成された請求項1に記載の装置。
【請求項10】
前記メモリインターフェイス回路は、そのメモリインターフェイス回路と前記メモリとの間に結合されたバスからデータを捕獲するように構成されたバッファを備え、更に、前記メモリインターフェイス回路は、複数のサンプルを得るために前記バッファ内のラッチの出力をサンプリングするように構成された、請求項1に記載の装置。
【請求項11】
前記メモリインターフェイス回路は、バスからデータを捕獲するように構成されたラッチを備え、更に、前記メモリインターフェイス回路は、前記データストローブ信号がそのラッチに与えられるときを前記初期時間値に基づきコントロールするように構成された、請求項1に記載の装置。
【請求項12】
メモリインターフェイス回路がデータ値に対して読み取り要求をメモリへ送信する段階と、
前記メモリインターフェイス回路がデータストローブ信号の単一のサイクル中に前記データ値の複数のサンプルを得る段階と、
前記複数のサンプルに基づき、前記メモリインターフェイス回路が、メモリからデータを捕獲するために前記データストローブ信号が有効になるときを決定する段階と、
を備えた方法。
【請求項13】
前記メモリインターフェイス回路は、そのメモリインターフェイス回路と前記メモリとの間に結合されたバスからデータを捕獲するように構成されたバッファを備え、更に、前記メモリインターフェイス回路は、複数のサンプルを得るために前記バッファ内のラッチの出力をサンプリングするように構成された、請求項12に記載の方法。
【請求項14】
前記複数のサンプルは、メモリのリフレッシュ動作に応答して得られる、請求項12に記載の方法。
【請求項15】
前記複数のサンプルは、少なくとも4つのサンプルを含む、請求項12に記載の方法。
【請求項16】
メモリがデータ値に対してメモリインターフェイス回路から読み取り要求を受信する段階と、
前記メモリが前記データ値を前記メモリインターフェイス回路へ送信する段階と、
を備え、前記メモリインターフェイス回路は、データストローブ信号の単一のサイクル中に前記データ値の複数のサンプルを得るように構成され、そして前記メモリインターフェイス回路は、前記複数のサンプルに基づき、前記メモリからデータを捕獲するために前記データストローブ信号が有効になるときを決定するように構成される、方法。
【請求項17】
前記メモリは、前記メモリの専用部分に少なくとも2つのテスト値を記憶するように構成され、そして前記メモリインターフェイス回路は、前記送信されたデータ値の捕獲されたバージョンを前記少なくとも2つの値のうちの一方の値のコピーと比較して、前記送信されたデータ値の捕獲されたバージョンが正しく捕獲されたかどうか決定するように構成された、請求項16に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−58209(P2013−58209A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−213127(P2012−213127)
【出願日】平成24年9月7日(2012.9.7)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】