特開2015-232741(P2015-232741A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧
<>
  • 特開2015232741-演算処理装置および情報処理装置 図000003
  • 特開2015232741-演算処理装置および情報処理装置 図000004
  • 特開2015232741-演算処理装置および情報処理装置 図000005
  • 特開2015232741-演算処理装置および情報処理装置 図000006
  • 特開2015232741-演算処理装置および情報処理装置 図000007
  • 特開2015232741-演算処理装置および情報処理装置 図000008
  • 特開2015232741-演算処理装置および情報処理装置 図000009
  • 特開2015232741-演算処理装置および情報処理装置 図000010
  • 特開2015232741-演算処理装置および情報処理装置 図000011
  • 特開2015232741-演算処理装置および情報処理装置 図000012
  • 特開2015232741-演算処理装置および情報処理装置 図000013
  • 特開2015232741-演算処理装置および情報処理装置 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-232741(P2015-232741A)
(43)【公開日】2015年12月24日
(54)【発明の名称】演算処理装置および情報処理装置
(51)【国際特許分類】
   G06F 12/00 20060101AFI20151201BHJP
【FI】
   G06F12/00 564A
【審査請求】未請求
【請求項の数】3
【出願形態】OL
【全頁数】14
(21)【出願番号】特願2014-118387(P2014-118387)
(22)【出願日】2014年6月9日
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100113608
【弁理士】
【氏名又は名称】平川 明
(74)【代理人】
【識別番号】100105407
【弁理士】
【氏名又は名称】高田 大輔
(72)【発明者】
【氏名】橋本 通高
【テーマコード(参考)】
5B060
【Fターム(参考)】
5B060CC01
(57)【要約】
【課題】データ信号の数の増加にともなう調整時間の増加を抑制した上で、演算処理装置とメモリとの間での複数の並列データ信号の遅延のばらつきの調整を行う。
【解決手段】演算処理装置は、制御信号端子と、制御信号の指定タイミングで、メモリから3組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、データ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路と、検出された伝送時間差から、所定方向に配列されたデータ端子列それぞれの並列データ信号の伝送時間差を低減するためのタイミング調整量を遅延回路に設定する設定部と、設定部によって設定されるタイミング調整量にしたがって、所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を調整する遅延回路と、を備える。
【選択図】図8
【特許請求の範囲】
【請求項1】
メモリから制御信号を受信する制御信号端子と、
前記制御信号によって指定されるタイミングで、前記メモリから3組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、
前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路と、
前記両端のデータ端子のそれぞれで検出された並列データ信号の伝送時間差から、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を低減するためのタイミング調整量を前記並列データ信号のそれぞれに対応する遅延回路に設定する設定部と、
前記設定部によって設定されるタイミング調整量にしたがって、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号のそれぞれの伝送時間差を調整する遅延回路と、を備える演算処理装置。
【請求項2】
前記検出回路は、前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれにおいて受信される並列データ信号のそれぞれについて、前記遅延回路で調整された信号が所定の限界値となるタイミング調整量を検出し、
前記設定部は、前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれにおいて受信される並列データ信号のそれぞれについて、前記遅延回路でタイミング調整された信号が前記限界値となるまで前記遅延回路に設定するタイミング調整量を増加させた最大値と前記遅延回路でタイミング調整された信号が前記限界値となるまで前記遅延回路に設定するタイミング調整量を減少させた最小値とを取得し、前記最大値と最小値とから前記タイミング調整量を決定するとともに、前記所定方向に配列されたデータ端子列のうちの両端のデータ端子以外のデータ端子のそれぞれにおいて受信される並列データ信号のそれぞれについて、前記両端のデータ端子で決定されたタイミング調整量から、前記所定方向に配列されたデータ端子列のそれぞれのデータ端子の配置位置にしたがってタイミング調整量を設定する請求項1に記載の演算処理装置。
【請求項3】
メモリと、
前記メモリから制御信号を受信する制御信号端子と、
前記制御信号によって指定されるタイミングで、前記メモリから3組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、
前記所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路と、
前記両端のデータ端子のそれぞれで検出された並列データ信号の伝送時間差から、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を低減するためのタイミング調整量を前記所定方向に配列されたデータ端子列のそれぞれで受信する並列データ信号のそれぞれに対応する遅延回路に設定する設定部と、
前記設定部によって設定されるタイミング調整量にしたがって、前記所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号のそれぞれの伝送時間差を調整する遅延回路と、を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算処理装置および情報処理装置に関するものである。
【背景技術】
【0002】
情報処理装置のメモリインターフェースとして、例えば、DDR3(Double Data Rate)
等が提案され、メモリとプロセッサとの間のデータ転送は高速化されてきている。図1に、DDR3によるプロセッサとメモリとのインターフェースを例示する。図1で、DDR3 MACROと記載された左側のブロックがDDR3インターフェースを含むメモリコントローラであり、DIMMと記載された右側のブロックがDual Inline Memory Moduleと呼ばれるメモリである
。なお、メモリコントローラは、CPU(Central Processing Unit)等の演算処理装置に含まれることが多い。
【0003】
DDR3に例示されるようなメモリインターフェースにおいては、以下の手順でデータが授受される。例えば、メモリコントローラからのリード要求(CMD)に応じて、メモリがメ
モリコントローラからのクロック信号(CK)によりデータストローブ信号(DQS)とデー
タストローブ信号(DQS)に同期したデータ信号(DQ)とを生成する。そして、メモリは
データストローブ信号(DQS)に同期してデータ信号(DQ)をメモリインターフェースに
出力する。メモリコントローラは、メモリから受信したデータストローブ信号(DQS)に
含まれる位相情報、例えば、信号のエッジのタイミングを基に望ましいデータ取り込みタイミングを決定し、データ信号を内部に取り込む。図1では、データストローブ信号(DQS)は、遅延回路DL44により90度位相シフトされてDQS+90となり、フリップフロップFF52のクロック端子に入力される。また、90度位相シフトの後、インバータIV46により位相が反転されたデータストローブ信号(DQS+90)は、フリップフロップFF54のクロ
ック端子に入力される。
【0004】
図2は、メモリコントローラがメモリから受信したデータストローブ信号(DQS)、9
0度位相シフトされたデータストローブ信号(DQS+90)、フリップフロップFF52およ
びFF54に入力されるデータ信号(DQ)の関係を示すタイミングチャートである。メモリコントローラは、データ信号(DQ)のパルスの概ね中央付近で、データストローブ信号(DQS+90)の立ち上がり信号および立ち下がり信号により、フリップフロップFF52、FF54
にデータ信号(DQ)を取り込むことができる。以下、メモリコントローラが受信するデータストローブ信号(DQS)およびデータ信号(DQ)を受信信号とも呼ぶ。
【0005】
しかし、データストローブ信号(DQS)およびデータ信号(DQ)がメモリコントローラ
に到着するタイミングは、途中の経路、例えば、メモリコントローラ自身、プリント基板、メモリ素子等での信号の遅延に依存して変動する。また、途中の経路での信号の遅延は、装置動作環境、例えば、温度や電源電圧などの変化により変動する。
【0006】
そのため、従来の技術では、例えば、受信信号のタイミング変動に追従し、望ましいデータ取り込みタイミングを決定するために、メモリコントローラはリード動作の度にデータストローブ信号(DQS)のタイミングを監視し、受信信号の遅延量(伝送時間差)を調
整し変動分を吸収するなどにより信号受信タイミングの変化に追従するように動作する。例えば、メモリコントローラは、内部クロックとデータストローブ信号(DQS)との位相
差を検知することで、受信信号のタイミングを監視する。
【0007】
図1の例では、サンプルホールド回路SH56と位相検出器DCS58とは、データストローブ
信号(DQS)と、クロック生成部CL14が生成するクロックCLKとの位相差を検知し、デジタ
ルコードを生成する。遅延回路DL60は、デジタルコードにしたがって、データストローブ信号(DQS)を遅延する。また、遅延回路DL62、DL64は、デジタルコードにしたがって、
それぞれデータ信号(DQ)を遅延する。そして、フリップフロップFF66は、クロックCLK
の立ち上がりエッジで、また、フリップフロップFF68は、クロックCLKの立ち下がりエッ
ジで遅延回路DL62、64からの出力信号であるデータ信号(DQ)を取り込む。セレクタSL31は、クロック(CLK)にしたがって、フリップフロップFF66、FF68の出力信号を交互にフ
リップフロップFF74に出力する。以上のような回路により、メモリコントローラは、データストローブ信号(DQS)に同期してメモリから出力されたデータ信号(DQ)を内部のク
ロックにしたがった信号に変更する。
【0008】
図3は、低速伝送の場合と高速伝送の場合のそれぞれにおける、メモリコントローラ、伝送路、およびメモリ(DIMM)でのデータ遅延時間を例示する図である。図3に例示のように、高速伝送の場合には、低速伝送の場合に比較し、メモリコントローラ、伝送路、およびメモリ(DIMM)、それぞれのデータ遅延時間が圧縮される。その結果、高速伝送の場合には、メモリコントローラがメモリからデータストローブ信号(DQS)と、データ信号
(DQ)を取り込む際のタイミングのマージンが不足することが想定される。
【0009】
図4、5は、メモリコントローラがメモリから受信したデータストローブ信号(DQS)
とデータ信号(4ビットDQ0-DQ4)のタイミングを例示する。図4は、比較的低速伝送の
場合のタイミングを例示する。図4のように、比較的低速伝送の場合には、データ信号(DQ0-DQ4)間に遅延差があっても、データストローブ信号DQSと、データ信号(DQ0-DQ4)
とのタイミングを調整することで、適切なデータの取り込みタイミングを設定できる。
【0010】
一方、図5は、図4と比較して高速伝送の場合を想定する。図5の例では、データストローブ信号DQSの立ち上がりエッジをDQ0とDQ3のパルスの中央付近に設定すると、データ
ストローブ信号DQSの立ち上がりエッジがDQ1に対して遅れたタイミング(パルスの左端)に位置し、DQ2に対して進んだ位置(パルスの右端)に位置している。したがって、図5
の例では、データストローブ信号DQSと、データ信号(DQ0-DQ4)とのタイミングを調整することによっては、適切なデータの取り込みタイミングを設定できない場合も予測される。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2009−75682号公報
【特許文献2】国際公開第2011/077573号
【発明の概要】
【発明が解決しようとする課題】
【0012】
従来技術の複数のデータ信号のタイミングを一括して調整することによっては、適切なデータの取り込みタイミングを設定できない場合も予測される。そのため、複数のデータ信号について、個々にデータ信号の遅延のばらつきをそれぞれ調整することも考えられる。
【0013】
しかしながら、メモリ上には複数のメモリブロックが搭載され、メモリコントローラを含む演算処理装置とメモリとの間は、複数のメモリブロックから並列にデータを入出力するための多数組の並列データ信号線が設けられている。したがって、演算処理装置とメモリとの間で並列データ信号の遅延のばらつきをそれぞれ調整するためには、データ信号線の数に応じた時間を要する。そこで、実施の形態に開示の1つの側面は、データ信号の数の増加にともなう調整時間の増加を抑制した上で、演算処理装置とメモリとの間での複数のデータ信号の遅延のばらつきの調整を行うことにある。
【課題を解決するための手段】
【0014】
開示の技術の一側面は、演算処理装置によって例示される。本演算処理装置は、メモリから制御信号を受信する制御信号端子と、制御信号によって指定されるタイミングで、メモリから3組以上の並列データ信号の組を受信する、所定方向に配列されたデータ端子列と、を備える。また、本演算処理装置は、所定方向に配列されたデータ端子列のうちの両端のデータ端子のそれぞれで受信される並列データ信号の伝送時間差を検出する検出回路を備える。さらに、本演算処理装置は、両端のデータ端子のそれぞれで検出された並列データ信号の伝送時間差から、所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号の伝送時間差を低減するためのタイミング調整量を並列データ信号のそれぞれに対応する遅延回路に設定する設定部を備える。さらに、本演算処理装置は、設定部によって設定されるタイミング調整量にしたがって、所定方向に配列されたデータ端子列のそれぞれにおいて受信される並列データ信号のそれぞれの伝送時間差を調整する遅延回路と、を備える。
【発明の効果】
【0015】
本演算処理装置によれば、データ信号の数の増加にともなう調整時間の増加を抑制した上で、演算処理装置とメモリとの間での複数のデータ信号の遅延のばらつきを調整できる。
【図面の簡単な説明】
【0016】
図1】従来の演算処理装置の構成を例示する図である。
図2】メモリコントローラがメモリから受信したデータストローブ信号およびデータ信号の関係を示すタイミングチャートである。
図3】低速伝送の場合と高速伝送の場合のそれぞれにおける、メモリコントローラ、伝送路、およびメモリでのデータ遅延時間を例示する図である。
図4】メモリコントローラがメモリから受信したデータストローブ信号とデータ信号のタイミングを例示する図である。
図5】メモリコントローラがメモリから受信したデータストローブ信号とデータ信号のタイミングを例示する図である。
図6】データ信号を授受するインターフェースを例示する図である。
図7】CPUチップが形成された半導体ウェハを例示する図である。
図8】演算処理装置のDDR IFを含む回路構成を例示する図である。
図9】タイミング観測部/可変遅延設定部の構成の詳細を例示する図である。
図10】タイミング調整量の最大値を取得する処理を例示する図である。
図11】タイミング調整量の最小値を取得する処理を例示する図である。
図12】並列信号間でDDR IFとメモリとの間の伝送時間差を計測し、タイミング調整を行う処理を例示する図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して、一実施の形態に係る情報処理装置について説明する。以下の実施の形態の構成は例示であり、本情報処理装置は実施の形態の構成には限定されない。本情報処理装置は、例えば、サーバ、パーソナルコンピュータ等のコンピュータシステムであるが、情報処理装置の形態に制限がある訳ではない。
【0018】
図6に、本実施の形態に係る情報処理装置においてデータ信号を授受するインターフェースを例示する。図6のように、本情報処理装置はCPU(Central Processing Unit)とメモリ(DIMM)とを有する。CPUは演算処理装置の一例である。CPUには、メモリコントローラとメモリコントローラに接続されるDDR IFとが複数並列に設けられる。また、メモリ上にはSDRAMが複数並列に設けられる。それぞれのDDR IFとSDRAMとは、例えば、データ幅が
4ビット、8ビット等のデータ線で接続される。例えば、DDR IFとSDRAMとの間のデータ
幅をNビットとし、DDR IFとSDRAMの数をそれぞれM個とすると、CPUとメモリ間のデータ線の数は、N×Mとなる。したがって、CPUとメモリとの間で高速伝送がなされた場合、N×M
個のデータ線それぞれに個別の遅延原因により、異なる信号遅延が発生する場合がある。
【0019】
ところで、図6のCPUとメモリとにおいて、チップの面積はCPUの方がメモリより大きい。したがって、SDRAMからメモリコントローラに至る経路のうち、メモリ内およびメモリ
のSDRAMからDDR IFに至る経路の部分よりも、DDR IFからCPUに至る経路の方が長い。そのため、SDRAMからメモリコントローラに至る経路での信号遅延は、DDR IFからCPUに至る経路での信号遅延が支配的となる。また、図6において、SDRAMに接続するDDR IFは、CPUのチップ内で所定方向、例えば、チップの1つのエッジ方向に等間隔に形成される。
【0020】
以下、図6に例示されるように、メモリ内の各SDRAMからDDR IFを経由してメモリコン
トローラに至る、データ幅分の伝送路をパスと呼ぶことにする。パスのデータ幅は、図6では4ビットまたは8ビットと例示されている。しかし、本実施の形態において、パスのビット幅が4ビットまたは8ビットに限定される訳ではない。
【0021】
図6の例では、それぞれのパスが終端するCPUのエッジに、データ端子T1〜TMが例示さ
れている。すなわち、本実施の形態では、1つのデータ端子Tmに並列データ信号を伝送する並列の伝送路が終端するものとする。また、データT1、TMが両端のデータ端子の一例であり、Tmが両端以外のデータ端子の一例である。以下、本実施例では、データ端子に接続される並列の伝送路をパスという。図6では、TM=18のパス、すなわち、データ端子が例
示されている。
【0022】
図7に、CPUチップが形成された半導体ウェハを例示する。図7のように、複数のCPUチップが1つのウェハ上で2次元状に、例えば、上下左右方向に配列して製造される。ウェ
ハ上の各CPUの物理特性は、製造工程に起因したものが多く、かつ、製造工程に起因した
物理特性は、ウェハ面内の位置に依存して変化するものが多い。さらに、ウェハ面内の位置に依存したCPUの物理特性の変化は、不連続なものは少なく、ウェハ面内の位置に対し
て徐々に変化するものが多い。したがって、例えば、1つのCPUチップ内では、1つのエ
ッジ方向において製造工程に起因した物理特性が変化する場合には、物理特性の変化は線形的な変化としてモデル化、あるいは近似できると考えることができる。
【0023】
そこで、本演算処理装置は、図6のような演算処理装置の構成において、DDR IFとSDRAMとの間の複数個のパスのうち、上下の両端の2カ所のパスのそれぞれにおいてデータ信
号間の伝送時間差(遅延量)を計測し、遅延回路を用いたタイミング調整量を決定する。また、1つのCPU内で、DDR IFは、1つのエッジ方向に等間隔で配置されることから、本
演算処理装置は、上下の両端の2カ所のパスそれぞれで決定された並列データ信号それぞれのタイミング調整量から、上下の両端の間に等間隔で配置される各DDR IFでの並列データ信号それぞれのタイミング調整量を線形補間して算出する。そして、本演算処理装置は、上下の両端の間に所定間隔で配置される各DDR IFに対して、上記線形補間されたタイミング調整量を各DDR IFに適用して、データ信号のタイミング調整を行う。このような手順により、本演算処理装置は、SDRAMからDDR IFを経由してメモリコントローラに至る全パ
スに対してデータ信号間の伝送時間差を計測し、遅延回路を用いたタイミング調整量を決定する手順よりも短時間で、実効的にタイミング調整を実行できる。
【0024】
図8に、本実施の形態に係る演算処理装置のDDR IFを含む回路構成を例示する。図8では、演算処理装置のうち、CPUチップ内のDDR IF 5と、補間設定部2とが例示されてい
る。このうち、補間設定部2は、演算処理装置のCPUチップ内に1つ設けられる。補間設
定部2は、CPUチップ内の複数のDDR IF 5に対するタイミング調整量を算出し、それぞ
れのDDR IF 5内の遅延回路にタイミング調整量を指示する。演算処理装置のCPUは、所定のROM等に格納されたファームウェア、あるいは、演算処理装置の調整用に設けられる専
用メモリ等のコンピュータプログラムにしたがって、補間設定部としての処理を実行する。ただし、補間設定部2として、専用のハードウェア回路がCPU内に設けられてもよい。
補間設定部2の処理手順についは、図12を参照して、別途説明する。
【0025】
図8では、CPU内の複数のDDR IF 5のうちの1つが例示されている。DDR IF 5は、
位相調整部3と、位相比較部4と、タイミング観測部/可変遅延設定部1を含む。また、位相調整部3は、タイミング観測部/可変遅延設定部1からのタイミング調整量の設定を受け、データ信号DQnのそれぞれに個別に遅延を生じさせる遅延回路51を有している。遅延回路51が、伝送時間差を調整する遅延回路の一例である。さらに、位相調整部3は、フリップフロップ31、33、インバータ32、データストローブ信号DQSに遅延を生
じさせる遅延回路34、データ信号DQnに遅延を生じさせる遅延回路35、36を有している。さらに、遅延回路35、36の出力は、それぞれフリップフロップ52、53に入力され、データ信号DQevenとDQoddが生成される。データストローブ信号DQSが制御信号の一例であり、データ信号DQnが並列データ信号の一例である。また、図8において、データストローブ信号DQSで示される伝送路の右側エッジの端部が制御信号端子の一例である
【0026】
以上のように、図8において、遅延回路51からデータ信号DQevenとDQoddが生成され
るまでの回路は、データ信号DQn(n=0〜3)のそれぞれに設けられる。なお、本実施の形態
において、並列データ信号のデータビット幅が4ビットに限定される訳ではない。したがって、タイミング観測部/可変遅延設定部1は、遅延回路51のそれぞれに個別のタイミング調整量を設定することで、データ信号DQn(n=0〜3)のそれぞれに個別の遅延を生じさ
せ、個別に伝送時間差を調整できる。ここで、伝送時間差は、データ信号DQn(n=0〜3)間
相互の伝送時間差である。ただし、伝送時間差は、データストローブ信号DQSに対する、
データ信号DQn(n=0〜3)それぞれの伝送時間差と考えてもよい。以下、データビット幅分
のデータ信号DQn(n=0〜3)を総称する場合には、単にデータ信号DQnと呼ぶことにする。図8のように、タイミング観測部/可変遅延設定部1は、補完設定部2と連携し、遅延回路51にタイミング調整量(遅延量の制御値)を設定するとともに、遅延回路51の後段に接続されるフリップフロップ31の出力を観測する。そして、タイミング観測部/可変遅延設定部1と補完設定部2とは、遅延回路51への入力データ信号DQnのそれぞれがフリップフロップ31に取り込まれる限界となるタイミング調整量の最大値と最大値とを求め、望ましいタイミング調整量を決定する。望ましいタイミング調整量は、例えば、タイミング調整量の最大値と最大値の中間値である。
【0027】
位相調整部3のうち、フリップフロップ31は、データストローブ信号DQSの立ち上が
りエッジで、データ信号DQnを取り込み、遅延回路35に出力する。一方、インバータ3
2およびフリップフロップ33は、データストローブ信号DQSの立ち下がりエッジで、デ
ータ信号DQnを取り込み、遅延回路36に出力する。遅延回路35、36は、位相比較部
4から与えられるデジタルコード値にしたがって、データ信号DQnに遅延を生じさせる。また、遅延回路34は、位相比較部4から与えられるデジタルコード値にしたがって、データストローブ信号DQSに遅延を生じさせる。
【0028】
これらの遅延回路34、35、36での信号遅延により、CPU内のクロックCLKとタイミング調整がなされ、フリップフロップ52、53を通じて、データ信号DQeven、DQoddが
生成され、メモリからのデータストローブ信号DQSに同期したデータ信号DQnがCPU内のクロックCLKに同期した信号に変換される。
【0029】
位相比較部4は、データストローブ信号DQSと、CPU内のクロックCLKとの位相差を比較
し、位相調整部3に指示するタイミング調整量(遅延量の制御値)を示すデジタルコード値を生成する。位相比較部4は、遅延回路41、ラッチ42、位相判定部43および可変位相遅延部44を有する。遅延回路41は、データストローブ信号DQSに対して、所定量
の遅延を生じさせ、ラッチ42に入力する。ラッチ42は、データストローブ信号DQSと
、クロックCLKとの位相差を示す位相情報を生成する。位相情報としては、データストロ
ーブ信号DQSとクロックCLKとの間の位相情報、および遅延回路41によって所定遅延量だけ遅延したデータストローブ信号DQSとクロックCLKとの間の位相情報が生成される。位相判定部43は、2つの位相情報から、遅延回路41での遅延量を基準にした、データストローブ信号DQSと、クロックCLKとの位相差を判定し、デジタルコード値を生成する。可変遅延制御部44は、位相判定部43で生成されたデジタルコード値を位相調整部3に出力する。そして、デジタルコード値は、位相調整部3内の遅延回路34、35、36に設定される。なお、図8で、ラッチ42に入力される信号IHは、ラッチ42に2つのDQSを取り込むタイミングを決定するためのラッチ42のゲーティング端子への制御信号である。ラッチ42のゲーティング端子への制御信号は、ラッチ42がアクティブか否かを決定する。信号IHは、デジタルコード値から生成される。
【0030】
図9に、タイミング観測部/可変遅延設定部1の構成の詳細を例示する。タイミング観測部/可変遅延設定部1は、タイミング観測部11および可変遅延設定部12を有する。なお、図8の補間設定部2は、CPUチップ内のエッジ方向に配列したDDR IF 5のうち、
上下両端のDDR IF 5のタイミング観測部11を動作させ、データ信号DQnの伝送時間差を取得する。
【0031】
以下の処理では、データストローブ信号DQSに同期して、値1に対応する高電位HのパルスがメモリからDDR IF5に入力されるものとする。なお、値1に対応する高電位Hに対し
て、値0に対応する電位を低電位Lとする。以下、補完設定部2は、上下両端のそれぞれ
のDDR IF 5のタイミング観測部/可変遅延設定部1と連携して、上下両端のそれぞれのパスの各ビットDQn(n=0〜3)について、それぞれ個別に以下の手順でデータ信号の伝送時
間差を計測する。
【0032】
まず、タイミング調整量の最大値を取得する処理を例示する。補完設定部2は、可変遅延設定部12を通じて遅延回路51にタイミング調整量の初期値(デフォルト値)を設定する。そして、タイミング観測部11は、フリップフロップ31の出力信号を観測し、値(H、L)を判定する。観測された値が高電位Hの間、タイミング観測部11のフラグ設定
部112は、フラグをレジスタ111に出力しない。補完設定部2は、レジスタ111にフラグが設定されるまでの間、可変遅延設定部12のレジスタ121に設定するタイミング調整量を所定の時間間隔で増加していく。したがって、遅延回路51によるデータ信号DQnの伝送時間差(例えば、ストローブ信号DQSに対する遅れ)は、徐々に増加する。そ
して、フリップフロップ31の出力信号が値0(低電位L)になると、タイミング観測部
11のフラグ設定部112は、フラグをレジスタ111に出力する。この時点で、データ信号DQnの伝送時間差のマージンが限界になったということができ、フラグはマージンレスフラグと呼ぶことができる。このようにして、補完設定部2は、フリップフロップ31の出力において観測された値が低電位Lとなる限界である、タイミング調整量の最大値を
取得する。補完設定部2は、上下両端のそれぞれのDDR IF 5のパスの各ビットDQn(n=0
〜3)について、タイミング調整量の最大値を取得する。遅延回路31とタイミング観測部11とが検出回路の一例である。また、補完設定部2と可変遅延設定部12とが設定部の一例である。さらに、タイミング調整量の最大値が並列データ信号の伝送時間差の一例である。
【0033】
図10に、タイミング調整量の最大値を取得する処理を例示する。図10の(1)は、例えば、遅延回路51にタイミング調整量の初期値(デフォルト値)が設定された状態を
例示する。図10の(1)の状態では、データストローブ信号DQSの立ち上がりエッジに
同期したタイミングで、データ信号DQn(n=0〜3)からは、値1111が観測される。一
方、図10の(2)は、データ信号DQn(n=0〜3)のそれぞれに、同一のタイミング調整
量を設定し、DQ1が低電位Lになった状態を例示する。図10の(2)の例では、データ信号DQn(n=0〜3)のそれぞれに、同一のタイミング調整量が設定されている。図10の(
2)の例では、ビットDQ1が最初に値0(低電位L)となっており、データストローブ信号DQSの立ち上がりエッジに同期したタイミングで、データ信号DQn(n=0〜3)の値1011が図8のフリップフロップ31に入力される。このため、タイミング観測部・可変遅延設定部1および補完設定部2は、DQ1で値0(低電位L)を観測する。
【0034】
ただし、本実施の形態においては、上述のように、タイミング観測部・可変遅延設定部1および補完設定部2は、データ信号DQn(n=0〜3)のそれぞれに、個別にタイミング調
整量を設定し、フリップフロップ31からの出力信号を監視する。すなわち、本実施の形態においては、タイミング観測部・可変遅延設定部1および補完設定部2は、データ信号DQn(n=0〜3)のそれぞれが低電位Lになるタイミング調整量を個別に取得し、レジスタ121に保持する。
【0035】
タイミング調整量の最小値を取得する場合も処理は、同様である。補完設定部2は、可変遅延設定部12を通じて遅延回路51にタイミング調整量の初期値(デフォルト値)を設定する。そして、タイミング観測部11は、フリップフロップ31の出力信号を観測し、値(H、L)を判定する。観測された値が高電位Hの間、タイミング観測部11のフラグ
設定部112は、フラグをレジスタ111に出力しない。補完設定部2は、レジスタ111にフラグが設定されるまでの間、可変遅延設定部12のレジスタ121に設定するタイミング調整量を所定の時間間隔で減少していく。したがって、遅延回路51によるデータ信号DQnの伝送時間差(例えば、ストローブ信号DQSに対する遅れ)は、徐々に減少する
。そして、フリップフロップ31の出力信号が値0(低電位L)になると、タイミング観
測部11のフラグ設定部112は、フラグをレジスタ111に出力する。このようにして、補完設定部2は、フリップフロップ31の出力において観測された値が低電位Lとなる
限界である、タイミング調整量の最小値を取得する。補完設定部2は、上下両端のそれぞれのDDR IF 5のパスの各ビットDQn(n=0〜3)について、タイミング調整量の最小値を取
得する。タイミング調整量の最小値が並列データ信号の伝送時間差の一例でもある。
【0036】
図11に伝送時間差の最小値を取得する処理を例示する。例示する。図11の(1)は、例えば、遅延回路51にタイミング調整量の初期値(デフォルト値)が設定された状態を例示する。一方、図11の(2)は、データ信号DQn(n=0〜3)のそれぞれに、同一の
タイミング調整量を設定し、DQ3が低電位Lになった状態を例示する。すなわち、図11の(2)の例では、ビットDQ3が最初に値0(低電位L)となっており、データストローブ信号DQSの立ち上がりエッジに同期したタイミングで、データ信号DQn(n=0〜3)の値1110が図8のフリップフロップ31に入力される。このため、タイミング観測部・可変遅延設定部1および補完設定部2は、DQ3で値0(低電位L)を観測する。
【0037】
ただし、本実施形態においては、上述のように、タイミング観測部・可変遅延設定部1および補完設定部2は、データ信号DQn(n=0〜3)のそれぞれに、個別にタイミング調整
量を設定し、フリップフロップ31からの出力信号を監視する。すなわち、本実施の形態の処理では、タイミング観測部・可変遅延設定部1および補完設定部2は、データ信号DQn(n=0〜3)のそれぞれが低電位Lになるタイミング調整量を個別に取得する。
【0038】
図12に、CPU内で、DDR IFとSDRAMとの間のデータ信号DQnそれぞれの伝送時間差を計測し、タイミング調整を行う補間設定部2の処理を例示する。図12の処理では、補完設定部2は、1つのエッジ方向に配列されるDDR IF 5のうち、両端2か所のDDR IF 5に
おいて、タイミング調整量の最大値と最小値を測定する。すなわち、補完設定部2は、上下両端のタイミング観測部/可変遅延設定部1を介してデータストローブ信号DQSとデー
タ信号DQnとの間のタイミング調整量の最大値と最小値を測定する(P1)。測定手順は、図8、9で説明した通りである。
【0039】
次に、補間設定部2は、P1での測定結果から、CPUチップのエッジ方向に配列されるDDR
IFのうち、両端2か所のDDR IFに対して設けられる遅延回路51を使用した場合のタイ
ミング調整量を算出する。ここで、タイミング調整量は、例えば、両端2か所のDDR IFのそれぞれのデータ信号DQn(n=0〜3)から取得されたタイミング調整量の最大値と最小値の
中間値とすればよい。そして、補間設定部2は、両端2か所のDDR IFの可変遅延設定部12にタイミング調整量を設定する(P2)。そして、補間設定部2は、両端2か所のそれぞれのDDR IF 5に対して設けられる可変遅延設定部12に、算出したタイミング調整量を、例えば、レジスタ121を介して引き渡す。両端2か所のDDR IF 5においては、可変遅延設定部12は、補間設定部2からレジスタ121を介して引き渡されたタイミング調整量をそれぞれのDDR IF 5内の遅延回路51に設定する。
【0040】
次に、補間設定部2は、P2での両端2か所でのタイミング調整量を基に線形補間し、1つのエッジ方向に配列されるDDR IF 5のうち、両端以外の箇所でのタイミング調整量を算出する。そして、補間設定部2は、それぞれのDDR IF 5に対して設けられる可変遅延設定部12に、算出したタイミング調整量を、レジスタ121を介して引き渡す(P3)。各DDR IF 5においては、可変遅延設定部12は、補間設定部2からレジスタ121を介して引き渡されたタイミング調整量をそれぞれのDDR IF 5内の遅延回路51に設定する(P4)。したがって、CPU内で1つのエッジ方向に配列されるDDR IF 5のそれぞれにお
いて、並列データ信号DQnのそれぞれに対して、実効的なタイミング調整を実施できる。
【0041】
以上述べたように、本実施の形態の演算処理装置は、CPUのエッジ方向に配列されたDDR
IF 5のうち、配列の両端のDDR IF 5において、データストローブ信号DQSと並列データ信号DQnそれぞれとの間のタイミング調整量の最大値と最小値を取得する。補間設定部2
は、CPUのエッジ方向に配列されたDDR IF 5のうち、配列の両端のDDR IF 5のそれぞれ
のデータ信号DQnのそれぞれに対して、タイミング調整量の最大値と最小値とから、デー
タストローブ信号DQSとのタイミング調整量を算出する。また、補間設定部2は、CPUのエッジ方向に配列されたDDR IF 5のうち、配列の両端のDDR IF 5に挟まれた、その他のDDR IF 5のそれぞれの並列データ信号DQnそれぞれに対して、データストローブ信号DQSと
のタイミング調整量を線形補間で算出する。そして、補間設定部2は、算出したそれぞれのDDR IF 5におけるそれぞれのデータ信号DQnについてのデータストローブ信号DQSとの
タイミング調整量を、CPUのエッジ方向に配列されたDDR IF 5のそれぞれに引き渡す。その結果、CPU内のそれぞれのDDR IF 5では、補間設定部2によって計算されたタイミング調整量で、遅延回路51のタイミングが調整される。
【0042】
CPUチップの物理特性のうち、製造工程起因のものは、ウェハ面内での位置に依存する
ものが多い。したがって、補間設定部2は、配列の両端のDDR IF 5に挟まれた、その他
のDDR IF 5について、タイミング調整量を線形補間で算出することで、ある程度の精度
で、CPUのエッジ方向に配列されたDDR IF 5のタイミング調整量を算出できる。また、この処理おいて、CPU内のタイミング観測部11は、CPUのエッジ方向に配列されたDDR IF
5のうち、配列の両端のDDR IF 5において、伝送時間差を観測するので、すべてのDDR IF 5において、伝送時間差を観測する場合に比較して、短時間でデータストローブ信号DQSとデータ信号DQnとの伝送時間差を計測できる。
【0043】
また、本実施の形態では、補間設定部2とタイミング観測部/可変遅延設定部1は、遅延回路51に対するタイミング調整量の最大値と最小値をフリップフロップ31の出力か
ら簡易に測定できる。さらに、補間設定部2は、測定したタイミング調整量の最大値と最小値の中間値を用いることで、望ましいタイミング調整量を決定できる。
【0044】
したがって、CPU内に設けられた補間設定部2と各DDR IF 5内に設けられたタイミング観測部/可変遅延設定部1は、CPU内のすべてのDDR IF 5の伝送時間差を計測し、タイミング調整する場合と比較して短時間で、タイミング調整を実効的な精度で実行できる。
【0045】
上記では、配列の両端のDDR IF 5において決定されたタイミング調整量から、配列の
両端のDDR IF 5に挟まれた、その他のDDR IF 5について、タイミング調整量を線形補間で算出した。しかし、本実施の形態でのタイミング調整量を算出する処理は、線形補間に限定される訳ではない。すなわち、補間設定部2は、チップのエッジ方向に配列されたDDR IF 5における位置関係と両端のDDR IF 5において決定されたタイミング調整量とから、両端のDDR IF 5に挟まれた、その他のDDR IF 5について、タイミング調整量を決定すればよい。また、タイミング調整量のチップのエッジ方向に配列されたDDR IF 5の位置
依存性は、線形でなくてもよい。例えば、多項式近似したモデルによって、各配列位置でのタイミング調整量が決定されてもよい。
【0046】
また、上記実施の形態の演算処理装置では、DDR IFがCPU内で1つのエッジ方向に等間
隔で配置されると想定した。しかし、DDR IFが等間隔に配置されない場合であっても、補間設定部2は、各DDR IFが配置される位置が既知であれば、各DDR IFの位置に応じて、タイミング調整量を決定すればよい。すなわち、補間設定部2は、チップのエッジ方向に配列されたDDR IF 5における位置関係と両端のDDR IF 5において決定されたタイミング調整量とから、両端のDDR IF 5に挟まれた、その他のDDR IF 5について、タイミング調整量を決定すればよい。
【0047】
さらにまた、上記実施の形態では、CPUとメモリコントローラとが1つのチップに一体
化されている構成を例示した。しかし、CPUとメモリコントローラとがそれぞれ別チップ
でも、上記実施の形態にしたがったタイミング調整は適用可能である。
【符号の説明】
【0048】
1 タイミング観測部/可変遅延設定部
2 補間設定部
3 位相調整部
4 位相比較部
5 DDR IF
11 タイミング観測部
12 可変遅延設定部
31、33、52、53フリップフロップ
32 インバータ
34、35、36、51、遅延回路
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12