(57)【要約】【課題】データ信号の数の増加にともなう調整時間の増加を抑制した上で、演算処理装置とメモリとの間での複数の並列データ信号の遅延のばらつきの調整を行う。【解決手段】演算処理装置は、制御信号端子と、制御信号の指定タイミングで、メモリから３組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、データ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路と、検出された伝送時間差から、所定方向に配列されたデータ端子列それぞれの並列データ信号の伝送時間差を低減するためのタイミング調整量を遅延回路に設定する設定部と、設定部によって設定されるタイミング調整量にしたがって、所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を調整する遅延回路と、を備える。【選択図】図８
2015232741.tif 000002
【特許請求の範囲】
【請求項１】
メモリから制御信号を受信する制御信号端子と、
前記制御信号によって指定されるタイミングで、前記メモリから３組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、
前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路と、
前記両端のデータ端子のそれぞれで検出された並列データ信号の伝送時間差から、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を低減するためのタイミング調整量を前記並列データ信号のそれぞれに対応する遅延回路に設定する設定部と、
前記設定部によって設定されるタイミング調整量にしたがって、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号のそれぞれの伝送時間差を調整する遅延回路と、を備える演算処理装置。
【請求項２】
前記検出回路は、前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれにおいて受信される並列データ信号のそれぞれについて、前記遅延回路で調整された信号が所定の限界値となるタイミング調整量を検出し、
前記設定部は、前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれにおいて受信される並列データ信号のそれぞれについて、前記遅延回路でタイミング調整された信号が前記限界値となるまで前記遅延回路に設定するタイミング調整量を増加させた最大値と前記遅延回路でタイミング調整された信号が前記限界値となるまで前記遅延回路に設定するタイミング調整量を減少させた最小値とを取得し、前記最大値と最小値とから前記タイミング調整量を決定するとともに、前記所定方向に配列されたデータ端子列のうちの両端のデータ端子以外のデータ端子のそれぞれにおいて受信される並列データ信号のそれぞれについて、前記両端のデータ端子で決定されたタイミング調整量から、前記所定方向に配列されたデータ端子列のそれぞれのデータ端子の配置位置にしたがってタイミング調整量を設定する請求項１に記載の演算処理装置。
【請求項３】
メモリと、
前記メモリから制御信号を受信する制御信号端子と、
前記制御信号によって指定されるタイミングで、前記メモリから３組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、
前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路と、
前記両端のデータ端子のそれぞれで検出された並列データ信号の伝送時間差から、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を低減するためのタイミング調整量を前記所定方向に配列されたデータ端子列のそれぞれで受信する並列データ信号のそれぞれに対応する遅延回路に設定する設定部と、
前記設定部によって設定されるタイミング調整量にしたがって、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号のそれぞれの伝送時間差を調整する遅延回路と、を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置および情報処理装置に関するものである。
【背景技術】
【０００２】
情報処理装置のメモリインターフェースとして、例えば、DDR３（Double Data Rate）
等が提案され、メモリとプロセッサとの間のデータ転送は高速化されてきている。図１に、DDR3によるプロセッサとメモリとのインターフェースを例示する。図１で、DDR3 MACROと記載された左側のブロックがDDR3インターフェースを含むメモリコントローラであり、DIMMと記載された右側のブロックがDual Inline Memory Moduleと呼ばれるメモリである
。なお、メモリコントローラは、CPU（Central Processing Unit）等の演算処理装置に含まれることが多い。
【０００３】
DDR3に例示されるようなメモリインターフェースにおいては、以下の手順でデータが授受される。例えば、メモリコントローラからのリード要求（CMD）に応じて、メモリがメ
モリコントローラからのクロック信号（CK）によりデータストローブ信号（DQS）とデー
タストローブ信号（DQS）に同期したデータ信号（DQ）とを生成する。そして、メモリは
データストローブ信号（DQS）に同期してデータ信号（DQ）をメモリインターフェースに
出力する。メモリコントローラは、メモリから受信したデータストローブ信号（DQS）に
含まれる位相情報、例えば、信号のエッジのタイミングを基に望ましいデータ取り込みタイミングを決定し、データ信号を内部に取り込む。図１では、データストローブ信号（DQS）は、遅延回路DL44により９０度位相シフトされてDQS＋９０となり、フリップフロップFF52のクロック端子に入力される。また、９０度位相シフトの後、インバータIV46により位相が反転されたデータストローブ信号（DQS＋９０）は、フリップフロップFF54のクロ
ック端子に入力される。
【０００４】
図２は、メモリコントローラがメモリから受信したデータストローブ信号（DQS）、９
０度位相シフトされたデータストローブ信号（DQS＋９０）、フリップフロップFF52およ
びFF54に入力されるデータ信号（DQ）の関係を示すタイミングチャートである。メモリコントローラは、データ信号（DQ）のパルスの概ね中央付近で、データストローブ信号（DQS＋９０）の立ち上がり信号および立ち下がり信号により、フリップフロップFF52、FF54
にデータ信号（DQ）を取り込むことができる。以下、メモリコントローラが受信するデータストローブ信号（DQS）およびデータ信号（DQ）を受信信号とも呼ぶ。
【０００５】
しかし、データストローブ信号（DQS）およびデータ信号（DQ）がメモリコントローラ
に到着するタイミングは、途中の経路、例えば、メモリコントローラ自身、プリント基板、メモリ素子等での信号の遅延に依存して変動する。また、途中の経路での信号の遅延は、装置動作環境、例えば、温度や電源電圧などの変化により変動する。
【０００６】
そのため、従来の技術では、例えば、受信信号のタイミング変動に追従し、望ましいデータ取り込みタイミングを決定するために、メモリコントローラはリード動作の度にデータストローブ信号（DQS）のタイミングを監視し、受信信号の遅延量（伝送時間差）を調
整し変動分を吸収するなどにより信号受信タイミングの変化に追従するように動作する。例えば、メモリコントローラは、内部クロックとデータストローブ信号（DQS）との位相
差を検知することで、受信信号のタイミングを監視する。
【０００７】
図１の例では、サンプルホールド回路SH56と位相検出器DCS58とは、データストローブ
信号（DQS）と、クロック生成部CL14が生成するクロックCLKとの位相差を検知し、デジタ
ルコードを生成する。遅延回路DL60は、デジタルコードにしたがって、データストローブ信号（DQS）を遅延する。また、遅延回路DL62、DL64は、デジタルコードにしたがって、
それぞれデータ信号（DQ）を遅延する。そして、フリップフロップFF66は、クロックCLK
の立ち上がりエッジで、また、フリップフロップFF68は、クロックCLKの立ち下がりエッ
ジで遅延回路DL62、64からの出力信号であるデータ信号（DQ）を取り込む。セレクタSL31は、クロック（CLK）にしたがって、フリップフロップFF66、FF68の出力信号を交互にフ
リップフロップFF74に出力する。以上のような回路により、メモリコントローラは、データストローブ信号（DQS）に同期してメモリから出力されたデータ信号（DQ）を内部のク
ロックにしたがった信号に変更する。
【０００８】
図３は、低速伝送の場合と高速伝送の場合のそれぞれにおける、メモリコントローラ、伝送路、およびメモリ（DIMM）でのデータ遅延時間を例示する図である。図３に例示のように、高速伝送の場合には、低速伝送の場合に比較し、メモリコントローラ、伝送路、およびメモリ（DIMM）、それぞれのデータ遅延時間が圧縮される。その結果、高速伝送の場合には、メモリコントローラがメモリからデータストローブ信号（DQS）と、データ信号
（DQ）を取り込む際のタイミングのマージンが不足することが想定される。
【０００９】
図４、５は、メモリコントローラがメモリから受信したデータストローブ信号（DQS）
とデータ信号（４ビットDQ0-DQ4）のタイミングを例示する。図４は、比較的低速伝送の
場合のタイミングを例示する。図４のように、比較的低速伝送の場合には、データ信号（DQ0-DQ4）間に遅延差があっても、データストローブ信号DQSと、データ信号（DQ0-DQ4）
とのタイミングを調整することで、適切なデータの取り込みタイミングを設定できる。
【００１０】
一方、図５は、図４と比較して高速伝送の場合を想定する。図５の例では、データストローブ信号DQSの立ち上がりエッジをDQ0とDQ3のパルスの中央付近に設定すると、データ
ストローブ信号DQSの立ち上がりエッジがDQ1に対して遅れたタイミング（パルスの左端）に位置し、DQ2に対して進んだ位置（パルスの右端）に位置している。したがって、図５
の例では、データストローブ信号DQSと、データ信号（DQ0-DQ4）とのタイミングを調整することによっては、適切なデータの取り込みタイミングを設定できない場合も予測される。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−７５６８２号公報
【特許文献２】国際公開第２０１１／０７７５７３号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来技術の複数のデータ信号のタイミングを一括して調整することによっては、適切なデータの取り込みタイミングを設定できない場合も予測される。そのため、複数のデータ信号について、個々にデータ信号の遅延のばらつきをそれぞれ調整することも考えられる。
【００１３】
しかしながら、メモリ上には複数のメモリブロックが搭載され、メモリコントローラを含む演算処理装置とメモリとの間は、複数のメモリブロックから並列にデータを入出力するための多数組の並列データ信号線が設けられている。したがって、演算処理装置とメモリとの間で並列データ信号の遅延のばらつきをそれぞれ調整するためには、データ信号線の数に応じた時間を要する。そこで、実施の形態に開示の１つの側面は、データ信号の数の増加にともなう調整時間の増加を抑制した上で、演算処理装置とメモリとの間での複数のデータ信号の遅延のばらつきの調整を行うことにある。
【課題を解決するための手段】
【００１４】
開示の技術の一側面は、演算処理装置によって例示される。本演算処理装置は、メモリから制御信号を受信する制御信号端子と、制御信号によって指定されるタイミングで、メモリから３組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、を備える。また、本演算処理装置は、所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路を備える。さらに、本演算処理装置は、両端のデータ端子のそれぞれで検出された並列データ信号の伝送時間差から、所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を低減するためのタイミング調整量を並列データ信号のそれぞれに対応する遅延回路に設定する設定部を備える。さらに、本演算処理装置は、設定部によって設定されるタイミング調整量にしたがって、所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号のそれぞれの伝送時間差を調整する遅延回路と、を備える。
【発明の効果】
【００１５】
本演算処理装置によれば、データ信号の数の増加にともなう調整時間の増加を抑制した上で、演算処理装置とメモリとの間での複数のデータ信号の遅延のばらつきを調整できる。
【図面の簡単な説明】
【００１６】
【図１】従来の演算処理装置の構成を例示する図である。
【図２】メモリコントローラがメモリから受信したデータストローブ信号およびデータ信号の関係を示すタイミングチャートである。
【図３】低速伝送の場合と高速伝送の場合のそれぞれにおける、メモリコントローラ、伝送路、およびメモリでのデータ遅延時間を例示する図である。
【図４】メモリコントローラがメモリから受信したデータストローブ信号とデータ信号のタイミングを例示する図である。
【図５】メモリコントローラがメモリから受信したデータストローブ信号とデータ信号のタイミングを例示する図である。
【図６】データ信号を授受するインターフェースを例示する図である。
【図７】CPUチップが形成された半導体ウェハを例示する図である。
【図８】演算処理装置のDDR IFを含む回路構成を例示する図である。
【図９】タイミング観測部／可変遅延設定部の構成の詳細を例示する図である。
【図１０】タイミング調整量の最大値を取得する処理を例示する図である。
【図１１】タイミング調整量の最小値を取得する処理を例示する図である。
【図１２】並列信号間でDDR IFとメモリとの間の伝送時間差を計測し、タイミング調整を行う処理を例示する図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、一実施の形態に係る情報処理装置について説明する。以下の実施の形態の構成は例示であり、本情報処理装置は実施の形態の構成には限定されない。本情報処理装置は、例えば、サーバ、パーソナルコンピュータ等のコンピュータシステムであるが、情報処理装置の形態に制限がある訳ではない。
【００１８】
図６に、本実施の形態に係る情報処理装置においてデータ信号を授受するインターフェースを例示する。図６のように、本情報処理装置はCPU（Central Processing Unit）とメモリ（DIMM）とを有する。CPUは演算処理装置の一例である。CPUには、メモリコントローラとメモリコントローラに接続されるDDR IFとが複数並列に設けられる。また、メモリ上にはSDRAMが複数並列に設けられる。それぞれのDDR IFとSDRAMとは、例えば、データ幅が
４ビット、８ビット等のデータ線で接続される。例えば、DDR IFとSDRAMとの間のデータ
幅をNビットとし、DDR IFとSDRAMの数をそれぞれM個とすると、CPUとメモリ間のデータ線の数は、N×Mとなる。したがって、CPUとメモリとの間で高速伝送がなされた場合、N×M
個のデータ線それぞれに個別の遅延原因により、異なる信号遅延が発生する場合がある。
【００１９】
ところで、図６のCPUとメモリとにおいて、チップの面積はCPUの方がメモリより大きい。したがって、SDRAMからメモリコントローラに至る経路のうち、メモリ内およびメモリ
のSDRAMからDDR IFに至る経路の部分よりも、DDR IFからCPUに至る経路の方が長い。そのため、SDRAMからメモリコントローラに至る経路での信号遅延は、DDR IFからCPUに至る経路での信号遅延が支配的となる。また、図６において、SDRAMに接続するDDR IFは、CPUのチップ内で所定方向、例えば、チップの１つのエッジ方向に等間隔に形成される。
【００２０】
以下、図６に例示されるように、メモリ内の各SDRAMからDDR IFを経由してメモリコン
トローラに至る、データ幅分の伝送路をパスと呼ぶことにする。パスのデータ幅は、図６では４ビットまたは８ビットと例示されている。しかし、本実施の形態において、パスのビット幅が４ビットまたは８ビットに限定される訳ではない。
【００２１】
図６の例では、それぞれのパスが終端するCPUのエッジに、データ端子T1〜TMが例示さ
れている。すなわち、本実施の形態では、１つのデータ端子Tmに並列データ信号を伝送する並列の伝送路が終端するものとする。また、データT1、TMが両端のデータ端子の一例であり、Tmが両端以外のデータ端子の一例である。以下、本実施例では、データ端子に接続される並列の伝送路をパスという。図６では、TM=18のパス、すなわち、データ端子が例
示されている。
【００２２】
図７に、CPUチップが形成された半導体ウェハを例示する。図７のように、複数のCPUチップが１つのウェハ上で2次元状に、例えば、上下左右方向に配列して製造される。ウェ
ハ上の各CPUの物理特性は、製造工程に起因したものが多く、かつ、製造工程に起因した
物理特性は、ウェハ面内の位置に依存して変化するものが多い。さらに、ウェハ面内の位置に依存したCPUの物理特性の変化は、不連続なものは少なく、ウェハ面内の位置に対し
て徐々に変化するものが多い。したがって、例えば、１つのCPUチップ内では、１つのエ
ッジ方向において製造工程に起因した物理特性が変化する場合には、物理特性の変化は線形的な変化としてモデル化、あるいは近似できると考えることができる。
【００２３】
そこで、本演算処理装置は、図６のような演算処理装置の構成において、DDR IFとSDRAMとの間の複数個のパスのうち、上下の両端の２カ所のパスのそれぞれにおいてデータ信
号間の伝送時間差（遅延量）を計測し、遅延回路を用いたタイミング調整量を決定する。また、１つのCPU内で、DDR IFは、１つのエッジ方向に等間隔で配置されることから、本
演算処理装置は、上下の両端の２カ所のパスそれぞれで決定された並列データ信号それぞれのタイミング調整量から、上下の両端の間に等間隔で配置される各DDR IFでの並列データ信号それぞれのタイミング調整量を線形補間して算出する。そして、本演算処理装置は、上下の両端の間に所定間隔で配置される各DDR IFに対して、上記線形補間されたタイミング調整量を各DDR IFに適用して、データ信号のタイミング調整を行う。このような手順により、本演算処理装置は、SDRAMからDDR IFを経由してメモリコントローラに至る全パ
スに対してデータ信号間の伝送時間差を計測し、遅延回路を用いたタイミング調整量を決定する手順よりも短時間で、実効的にタイミング調整を実行できる。
【００２４】
図８に、本実施の形態に係る演算処理装置のDDR IFを含む回路構成を例示する。図８では、演算処理装置のうち、CPUチップ内のDDR IF  ５と、補間設定部２とが例示されてい
る。このうち、補間設定部２は、演算処理装置のCPUチップ内に１つ設けられる。補間設
定部２は、CPUチップ内の複数のDDR IF  ５に対するタイミング調整量を算出し、それぞ
れのDDR IF ５内の遅延回路にタイミング調整量を指示する。演算処理装置のCPUは、所定のROM等に格納されたファームウェア、あるいは、演算処理装置の調整用に設けられる専
用メモリ等のコンピュータプログラムにしたがって、補間設定部としての処理を実行する。ただし、補間設定部２として、専用のハードウェア回路がCPU内に設けられてもよい。
補間設定部２の処理手順についは、図１２を参照して、別途説明する。
【００２５】
図８では、CPU内の複数のDDR IF  ５のうちの１つが例示されている。DDR IF  ５は、
位相調整部３と、位相比較部４と、タイミング観測部／可変遅延設定部１を含む。また、位相調整部３は、タイミング観測部／可変遅延設定部１からのタイミング調整量の設定を受け、データ信号DQｎのそれぞれに個別に遅延を生じさせる遅延回路５１を有している。遅延回路５１が、伝送時間差を調整する遅延回路の一例である。さらに、位相調整部３は、フリップフロップ３１、３３、インバータ３２、データストローブ信号DQSに遅延を生
じさせる遅延回路３４、データ信号DQｎに遅延を生じさせる遅延回路３５、３６を有している。さらに、遅延回路３５、３６の出力は、それぞれフリップフロップ５２、５３に入力され、データ信号DQevenとDQoddが生成される。データストローブ信号DQSが制御信号の一例であり、データ信号DQｎが並列データ信号の一例である。また、図８において、データストローブ信号DQSで示される伝送路の右側エッジの端部が制御信号端子の一例である
。
【００２６】
以上のように、図８において、遅延回路５１からデータ信号DQevenとDQoddが生成され
るまでの回路は、データ信号DQn(n=0〜3)のそれぞれに設けられる。なお、本実施の形態
において、並列データ信号のデータビット幅が４ビットに限定される訳ではない。したがって、タイミング観測部／可変遅延設定部１は、遅延回路５１のそれぞれに個別のタイミング調整量を設定することで、データ信号DQn(n=0〜3)のそれぞれに個別の遅延を生じさ
せ、個別に伝送時間差を調整できる。ここで、伝送時間差は、データ信号DQn(n=0〜3)間
相互の伝送時間差である。ただし、伝送時間差は、データストローブ信号DQSに対する、
データ信号DQn(n=0〜3)それぞれの伝送時間差と考えてもよい。以下、データビット幅分
のデータ信号DQn(n=0〜3)を総称する場合には、単にデータ信号DQnと呼ぶことにする。図８のように、タイミング観測部／可変遅延設定部１は、補完設定部２と連携し、遅延回路５１にタイミング調整量（遅延量の制御値）を設定するとともに、遅延回路５１の後段に接続されるフリップフロップ３１の出力を観測する。そして、タイミング観測部／可変遅延設定部１と補完設定部２とは、遅延回路５１への入力データ信号DQｎのそれぞれがフリップフロップ３１に取り込まれる限界となるタイミング調整量の最大値と最大値とを求め、望ましいタイミング調整量を決定する。望ましいタイミング調整量は、例えば、タイミング調整量の最大値と最大値の中間値である。
【００２７】
位相調整部３のうち、フリップフロップ３１は、データストローブ信号DQSの立ち上が
りエッジで、データ信号DQnを取り込み、遅延回路３５に出力する。一方、インバータ３
２およびフリップフロップ３３は、データストローブ信号DQSの立ち下がりエッジで、デ
ータ信号DQnを取り込み、遅延回路３６に出力する。遅延回路３５、３６は、位相比較部
４から与えられるデジタルコード値にしたがって、データ信号DQｎに遅延を生じさせる。また、遅延回路３４は、位相比較部４から与えられるデジタルコード値にしたがって、データストローブ信号DQSに遅延を生じさせる。
【００２８】
これらの遅延回路３４、３５、３６での信号遅延により、CPU内のクロックCLKとタイミング調整がなされ、フリップフロップ５２、５３を通じて、データ信号DQeven、DQoddが
生成され、メモリからのデータストローブ信号DQSに同期したデータ信号DQｎがCPU内のクロックCLKに同期した信号に変換される。
【００２９】
位相比較部４は、データストローブ信号DQSと、CPU内のクロックCLKとの位相差を比較
し、位相調整部３に指示するタイミング調整量（遅延量の制御値）を示すデジタルコード値を生成する。位相比較部４は、遅延回路４１、ラッチ４２、位相判定部４３および可変位相遅延部４４を有する。遅延回路４１は、データストローブ信号DQSに対して、所定量
の遅延を生じさせ、ラッチ４２に入力する。ラッチ４２は、データストローブ信号DQSと
、クロックCLKとの位相差を示す位相情報を生成する。位相情報としては、データストロ
ーブ信号DQSとクロックCLKとの間の位相情報、および遅延回路４１によって所定遅延量だけ遅延したデータストローブ信号DQSとクロックCLKとの間の位相情報が生成される。位相判定部４３は、２つの位相情報から、遅延回路４１での遅延量を基準にした、データストローブ信号DQSと、クロックCLKとの位相差を判定し、デジタルコード値を生成する。可変遅延制御部４４は、位相判定部４３で生成されたデジタルコード値を位相調整部３に出力する。そして、デジタルコード値は、位相調整部３内の遅延回路３４、３５、３６に設定される。なお、図８で、ラッチ４２に入力される信号ＩＨは、ラッチ４２に２つのＤＱＳを取り込むタイミングを決定するためのラッチ４２のゲーティング端子への制御信号である。ラッチ４２のゲーティング端子への制御信号は、ラッチ４２がアクティブか否かを決定する。信号ＩＨは、デジタルコード値から生成される。
【００３０】
図９に、タイミング観測部／可変遅延設定部１の構成の詳細を例示する。タイミング観測部／可変遅延設定部１は、タイミング観測部１１および可変遅延設定部１２を有する。なお、図８の補間設定部２は、CPUチップ内のエッジ方向に配列したDDR IF  ５のうち、
上下両端のDDR IF  ５のタイミング観測部１１を動作させ、データ信号DQｎの伝送時間差を取得する。
【００３１】
以下の処理では、データストローブ信号DQSに同期して、値１に対応する高電位HのパルスがメモリからDDR IF５に入力されるものとする。なお、値１に対応する高電位Hに対し
て、値０に対応する電位を低電位Lとする。以下、補完設定部２は、上下両端のそれぞれ
のDDR IF  ５のタイミング観測部／可変遅延設定部１と連携して、上下両端のそれぞれのパスの各ビットDQn(n=0〜3)について、それぞれ個別に以下の手順でデータ信号の伝送時
間差を計測する。
【００３２】
まず、タイミング調整量の最大値を取得する処理を例示する。補完設定部２は、可変遅延設定部１２を通じて遅延回路５１にタイミング調整量の初期値（デフォルト値）を設定する。そして、タイミング観測部１１は、フリップフロップ３１の出力信号を観測し、値（H、L）を判定する。観測された値が高電位Hの間、タイミング観測部１１のフラグ設定
部１１２は、フラグをレジスタ１１１に出力しない。補完設定部２は、レジスタ１１１にフラグが設定されるまでの間、可変遅延設定部１２のレジスタ１２１に設定するタイミング調整量を所定の時間間隔で増加していく。したがって、遅延回路５１によるデータ信号DQｎの伝送時間差（例えば、ストローブ信号DQSに対する遅れ）は、徐々に増加する。そ
して、フリップフロップ３１の出力信号が値０（低電位L）になると、タイミング観測部
１１のフラグ設定部１１２は、フラグをレジスタ１１１に出力する。この時点で、データ信号DQｎの伝送時間差のマージンが限界になったということができ、フラグはマージンレスフラグと呼ぶことができる。このようにして、補完設定部２は、フリップフロップ３１の出力において観測された値が低電位Lとなる限界である、タイミング調整量の最大値を
取得する。補完設定部２は、上下両端のそれぞれのDDR IF  ５のパスの各ビットDQn(n=0
〜3)について、タイミング調整量の最大値を取得する。遅延回路３１とタイミング観測部１１とが検出回路の一例である。また、補完設定部２と可変遅延設定部１２とが設定部の一例である。さらに、タイミング調整量の最大値が並列データ信号の伝送時間差の一例である。
【００３３】
図１０に、タイミング調整量の最大値を取得する処理を例示する。図１０の（１）は、例えば、遅延回路５１にタイミング調整量の初期値（デフォルト値）が設定された状態を
例示する。図１０の（１）の状態では、データストローブ信号DQSの立ち上がりエッジに
同期したタイミングで、データ信号DQn（n=0〜3）からは、値１１１１が観測される。一
方、図１０の（２）は、データ信号DQn（n=0〜3）のそれぞれに、同一のタイミング調整
量を設定し、DQ1が低電位Lになった状態を例示する。図１０の（２）の例では、データ信号DQn（n=0〜3）のそれぞれに、同一のタイミング調整量が設定されている。図１０の（
２）の例では、ビットDQ1が最初に値０（低電位L）となっており、データストローブ信号DQSの立ち上がりエッジに同期したタイミングで、データ信号DQn（n=0〜3）の値１０１１が図８のフリップフロップ３１に入力される。このため、タイミング観測部・可変遅延設定部１および補完設定部２は、DQ1で値０（低電位L）を観測する。
【００３４】
ただし、本実施の形態においては、上述のように、タイミング観測部・可変遅延設定部１および補完設定部２は、データ信号DQn（n=0〜3）のそれぞれに、個別にタイミング調
整量を設定し、フリップフロップ３１からの出力信号を監視する。すなわち、本実施の形態においては、タイミング観測部・可変遅延設定部１および補完設定部２は、データ信号DQn（n=0〜3）のそれぞれが低電位Lになるタイミング調整量を個別に取得し、レジスタ１２１に保持する。
【００３５】
タイミング調整量の最小値を取得する場合も処理は、同様である。補完設定部２は、可変遅延設定部１２を通じて遅延回路５１にタイミング調整量の初期値（デフォルト値）を設定する。そして、タイミング観測部１１は、フリップフロップ３１の出力信号を観測し、値（H、L）を判定する。観測された値が高電位Hの間、タイミング観測部１１のフラグ
設定部１１２は、フラグをレジスタ１１１に出力しない。補完設定部２は、レジスタ１１１にフラグが設定されるまでの間、可変遅延設定部１２のレジスタ１２１に設定するタイミング調整量を所定の時間間隔で減少していく。したがって、遅延回路５１によるデータ信号DQｎの伝送時間差（例えば、ストローブ信号DQSに対する遅れ）は、徐々に減少する
。そして、フリップフロップ３１の出力信号が値０（低電位L）になると、タイミング観
測部１１のフラグ設定部１１２は、フラグをレジスタ１１１に出力する。このようにして、補完設定部２は、フリップフロップ３１の出力において観測された値が低電位Lとなる
限界である、タイミング調整量の最小値を取得する。補完設定部２は、上下両端のそれぞれのDDR IF  ５のパスの各ビットDQn(n=0〜3)について、タイミング調整量の最小値を取
得する。タイミング調整量の最小値が並列データ信号の伝送時間差の一例でもある。
【００３６】
図１１に伝送時間差の最小値を取得する処理を例示する。例示する。図１１の（１）は、例えば、遅延回路５１にタイミング調整量の初期値（デフォルト値）が設定された状態を例示する。一方、図１１の（２）は、データ信号DQn（n=0〜3）のそれぞれに、同一の
タイミング調整量を設定し、DQ3が低電位Lになった状態を例示する。すなわち、図１１の（２）の例では、ビットDQ3が最初に値０（低電位L）となっており、データストローブ信号DQSの立ち上がりエッジに同期したタイミングで、データ信号DQn（n=0〜3）の値１１１０が図８のフリップフロップ３１に入力される。このため、タイミング観測部・可変遅延設定部１および補完設定部２は、DQ3で値０（低電位L）を観測する。
【００３７】
ただし、本実施形態においては、上述のように、タイミング観測部・可変遅延設定部１および補完設定部２は、データ信号DQn（n=0〜3）のそれぞれに、個別にタイミング調整
量を設定し、フリップフロップ３１からの出力信号を監視する。すなわち、本実施の形態の処理では、タイミング観測部・可変遅延設定部１および補完設定部２は、データ信号DQn（n=0〜3）のそれぞれが低電位Lになるタイミング調整量を個別に取得する。
【００３８】
図１２に、CPU内で、DDR IFとSDRAMとの間のデータ信号DQｎそれぞれの伝送時間差を計測し、タイミング調整を行う補間設定部２の処理を例示する。図１２の処理では、補完設定部２は、１つのエッジ方向に配列されるDDR IF  ５のうち、両端2か所のDDR IF  ５に
おいて、タイミング調整量の最大値と最小値を測定する。すなわち、補完設定部２は、上下両端のタイミング観測部／可変遅延設定部１を介してデータストローブ信号DQSとデー
タ信号DQｎとの間のタイミング調整量の最大値と最小値を測定する（P1）。測定手順は、図８、９で説明した通りである。
【００３９】
次に、補間設定部２は、P1での測定結果から、CPUチップのエッジ方向に配列されるDDR
IFのうち、両端２か所のDDR IFに対して設けられる遅延回路５１を使用した場合のタイ
ミング調整量を算出する。ここで、タイミング調整量は、例えば、両端２か所のDDR IFのそれぞれのデータ信号DQn(n=0〜3)から取得されたタイミング調整量の最大値と最小値の
中間値とすればよい。そして、補間設定部２は、両端２か所のDDR IFの可変遅延設定部１２にタイミング調整量を設定する（P2）。そして、補間設定部２は、両端２か所のそれぞれのDDR IF  ５に対して設けられる可変遅延設定部１２に、算出したタイミング調整量を、例えば、レジスタ１２１を介して引き渡す。両端２か所のDDR IF  ５においては、可変遅延設定部１２は、補間設定部２からレジスタ１２１を介して引き渡されたタイミング調整量をそれぞれのDDR IF  ５内の遅延回路５１に設定する。
【００４０】
次に、補間設定部２は、P2での両端２か所でのタイミング調整量を基に線形補間し、１つのエッジ方向に配列されるDDR IF  ５のうち、両端以外の箇所でのタイミング調整量を算出する。そして、補間設定部２は、それぞれのDDR IF  ５に対して設けられる可変遅延設定部１２に、算出したタイミング調整量を、レジスタ１２１を介して引き渡す（P3）。各DDR IF  ５においては、可変遅延設定部１２は、補間設定部２からレジスタ１２１を介して引き渡されたタイミング調整量をそれぞれのDDR IF  ５内の遅延回路５１に設定する（P4）。したがって、CPU内で１つのエッジ方向に配列されるDDR IF  ５のそれぞれにお
いて、並列データ信号DQｎのそれぞれに対して、実効的なタイミング調整を実施できる。
【００４１】
以上述べたように、本実施の形態の演算処理装置は、CPUのエッジ方向に配列されたDDR
IF ５のうち、配列の両端のDDR IF ５において、データストローブ信号DQSと並列データ信号DQnそれぞれとの間のタイミング調整量の最大値と最小値を取得する。補間設定部２
は、CPUのエッジ方向に配列されたDDR IF ５のうち、配列の両端のDDR IF ５のそれぞれ
のデータ信号DQnのそれぞれに対して、タイミング調整量の最大値と最小値とから、デー
タストローブ信号DQSとのタイミング調整量を算出する。また、補間設定部２は、CPUのエッジ方向に配列されたDDR IF ５のうち、配列の両端のDDR IF ５に挟まれた、その他のDDR IF ５のそれぞれの並列データ信号DQnそれぞれに対して、データストローブ信号DQSと
のタイミング調整量を線形補間で算出する。そして、補間設定部２は、算出したそれぞれのDDR IF ５におけるそれぞれのデータ信号DQnについてのデータストローブ信号DQSとの
タイミング調整量を、CPUのエッジ方向に配列されたDDR IF ５のそれぞれに引き渡す。その結果、CPU内のそれぞれのDDR IF ５では、補間設定部２によって計算されたタイミング調整量で、遅延回路５１のタイミングが調整される。
【００４２】
CPUチップの物理特性のうち、製造工程起因のものは、ウェハ面内での位置に依存する
ものが多い。したがって、補間設定部２は、配列の両端のDDR IF ５に挟まれた、その他
のDDR IF ５について、タイミング調整量を線形補間で算出することで、ある程度の精度
で、CPUのエッジ方向に配列されたDDR IF ５のタイミング調整量を算出できる。また、この処理おいて、CPU内のタイミング観測部１１は、CPUのエッジ方向に配列されたDDR IF 
５のうち、配列の両端のDDR IF ５において、伝送時間差を観測するので、すべてのDDR IF ５において、伝送時間差を観測する場合に比較して、短時間でデータストローブ信号DQSとデータ信号DQnとの伝送時間差を計測できる。
【００４３】
また、本実施の形態では、補間設定部２とタイミング観測部／可変遅延設定部１は、遅延回路５１に対するタイミング調整量の最大値と最小値をフリップフロップ３１の出力か
ら簡易に測定できる。さらに、補間設定部２は、測定したタイミング調整量の最大値と最小値の中間値を用いることで、望ましいタイミング調整量を決定できる。
【００４４】
したがって、CPU内に設けられた補間設定部２と各DDR IF ５内に設けられたタイミング観測部／可変遅延設定部１は、CPU内のすべてのDDR IF ５の伝送時間差を計測し、タイミング調整する場合と比較して短時間で、タイミング調整を実効的な精度で実行できる。
【００４５】
上記では、配列の両端のDDR IF ５において決定されたタイミング調整量から、配列の
両端のDDR IF ５に挟まれた、その他のDDR IF ５について、タイミング調整量を線形補間で算出した。しかし、本実施の形態でのタイミング調整量を算出する処理は、線形補間に限定される訳ではない。すなわち、補間設定部２は、チップのエッジ方向に配列されたDDR IF ５における位置関係と両端のDDR IF ５において決定されたタイミング調整量とから、両端のDDR IF ５に挟まれた、その他のDDR IF ５について、タイミング調整量を決定すればよい。また、タイミング調整量のチップのエッジ方向に配列されたDDR IF ５の位置
依存性は、線形でなくてもよい。例えば、多項式近似したモデルによって、各配列位置でのタイミング調整量が決定されてもよい。
【００４６】
また、上記実施の形態の演算処理装置では、DDR IFがCPU内で１つのエッジ方向に等間
隔で配置されると想定した。しかし、DDR IFが等間隔に配置されない場合であっても、補間設定部２は、各DDR IFが配置される位置が既知であれば、各DDR IFの位置に応じて、タイミング調整量を決定すればよい。すなわち、補間設定部２は、チップのエッジ方向に配列されたDDR IF ５における位置関係と両端のDDR IF ５において決定されたタイミング調整量とから、両端のDDR IF ５に挟まれた、その他のDDR IF ５について、タイミング調整量を決定すればよい。
【００４７】
さらにまた、上記実施の形態では、CPUとメモリコントローラとが１つのチップに一体
化されている構成を例示した。しかし、CPUとメモリコントローラとがそれぞれ別チップ
でも、上記実施の形態にしたがったタイミング調整は適用可能である。
【符号の説明】
【００４８】
１    タイミング観測部／可変遅延設定部
２    補間設定部
３    位相調整部
４    位相比較部
５    DDR IF
１１    タイミング観測部
１２    可変遅延設定部
３１、３３、５２、５３フリップフロップ
３２    インバータ
３４、３５、３６、５１、遅延回路
【図１】
2015232741.tif 000003
【図２】
2015232741.tif 000004
【図３】
2015232741.tif 000005
【図４】
2015232741.tif 000006
【図５】
2015232741.tif 000007
【図６】
2015232741.tif 000008
【図７】
2015232741.tif 000009
【図８】
2015232741.tif 000010
【図９】
2015232741.tif 000011
【図１０】
2015232741.tif 000012
【図１１】
2015232741.tif 000013
【図１２】
2015232741.tif 000014