IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 富士通株式会社の特許一覧

特開2024-57842トレーニング方法,演算処理装置及びトレーニングプログラム
<>
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図1
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図2
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図3
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図4
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図5
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図6
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図7
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図8
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図9
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図10
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図11
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図12
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図13
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図14
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図15
  • 特開-トレーニング方法,演算処理装置及びトレーニングプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024057842
(43)【公開日】2024-04-25
(54)【発明の名称】トレーニング方法,演算処理装置及びトレーニングプログラム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20240418BHJP
   G11C 7/10 20060101ALI20240418BHJP
   G11C 11/4096 20060101ALI20240418BHJP
   H04L 25/03 20060101ALI20240418BHJP
【FI】
G06F12/00 550K
G11C7/10 460
G11C11/4096 550
G06F12/00 597D
H04L25/03 C
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022164788
(22)【出願日】2022-10-13
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】太田 康公
【テーマコード(参考)】
5B160
5K029
5M024
【Fターム(参考)】
5B160CC00
5K029AA03
5K029DD04
5K029HH05
5K029KK24
5M024AA49
5M024AA93
5M024BB03
5M024BB34
5M024DD35
5M024JJ03
5M024PP01
5M024PP07
(57)【要約】
【課題】精度良くDFE回路のタップ値を短時間で設定する。
【解決手段】Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送において、トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、DFE回路のタップ値との制御結果に基づき、DDR伝送の伝送路で発生するシンボル間干渉値を測定し、測定したシンボル間干渉値に基づき、DFE回路に設定する設定タップ値を算出する。
【選択図】図4
【特許請求の範囲】
【請求項1】
Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送において、
トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、前記DFE回路のタップ値との制御結果に基づき、前記DDR伝送の伝送路で発生するシンボル間干渉値を測定し、
測定した前記シンボル間干渉値に基づき、前記DFE回路に設定する設定タップ値を算出する、
処理をコンピュータが実行する、トレーニング方法。
【請求項2】
前記シンボル間干渉値を測定する処理において、
第1のトレーニングパターンを使用して、前記第1のトレーニングパターンに含まれる所定のビットの判定値が1から0に切り替わる前記電圧参照値を探索し、
前記第1のトレーニングパターンとは異なる第2のトレーニングパターンを使用して、前記第2のトレーニングパターンに含まれる前記所定のビットの判定値が0から1又は1から0に切り替わる前記タップ値を前記シンボル間干渉値として探索し、
前記設定タップ値を算出する処理において、
探索した前記シンボル間干渉値の半分の値を、前記設定タップ値として算出する、
処理を前記コンピュータが実行する、請求項1に記載のトレーニング方法。
【請求項3】
前記シンボル間干渉値を測定する処理は、複数の前記タップ値毎に実行され、
前記第1のトレーニングパターンは、前記複数のタップ値間で異なり、
前記第2のトレーニングパターンは、前記複数のタップ値間で共通である、
請求項2に記載のトレーニング方法。
【請求項4】
前記第1のトレーニングパターンを使用した際に前記電圧参照値を探索できない場合には、前記複数のタップ値のうち探索対象のタップ値以外のタップ値を用いて探索を行い、
前記第2のトレーニングパターンを使用した際に前記シンボル間干渉値を探索できない場合には、前記探索対象のタップ値以外のタップ値を用いて探索を行う、
処理を前記コンピュータが実行する、請求項3に記載のトレーニング方法。
【請求項5】
前記第1のトレーニングパターンを反転させた第3のトレーニングパターンを使用して、前記電圧参照値を探索し、
前記第2のトレーニングパターンを反転させた第4のトレーニングパターンを使用して、前記シンボル間干渉値を探索する、
処理を前記コンピュータが実行する、請求項2~4のいずれか一項に記載のトレーニング方法。
【請求項6】
前記第2のトレーニングパターンを使用して探索した前記シンボル間干渉値と、前記第4のトレーニングパターンを使用して探索した前記シンボル間干渉値との平均値の半分の値を、前記設定タップ値として算出する、
処理を前記コンピュータが実行する、請求項5に記載のトレーニング方法。
【請求項7】
Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送を実行する演算処理装置であって、
トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、前記DFE回路のタップ値との制御結果に基づき、前記DDR伝送の伝送路で発生するシンボル間干渉値を測定し、
測定した前記シンボル間干渉値に基づき、前記DFE回路に設定する設定タップ値を算出する、
プロセッサを備える、演算処理装置。
【請求項8】
Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送において、
トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、前記DFE回路のタップ値との制御結果に基づき、前記DDR伝送の伝送路で発生するシンボル間干渉値を測定し、
測定した前記シンボル間干渉値に基づき、前記DFE回路に設定する設定タップ値を算出する、
処理をコンピュータに実行させる、トレーニングプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トレーニング方法,演算処理装置及びトレーニングプログラムに関する。
【背景技術】
【0002】
Double Data Rate(DDR)伝送においては、伝送速度の向上に伴いReceiver回路にDecision Feedback Equalizer(DFE)回路が搭載されることがある。DFE回路は伝送路のIntersymbol Interference(ISI)を打ち消して伝送マージンを増やすための回路であり、DFEを適切に動かすためには、DFE TAP値を適切に設定する必要がある。DFE TAP値の決め方としては、例えばDFE TAP値をsweepしながら、テストパターンを流しEye marginを測定することで最適なDFE TAP値を求めることができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-119551号公報
【特許文献2】特開2017-060106号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記のような方法の場合、DFE TAP値をsweepする毎に長大なデータパターンを流す必要があるため、最適なDFE TAP値を求めるのに非常に長い時間がかかるおそれがある。
【0005】
1つの側面では、精度良くDFE回路のタップ値を短時間で設定することを目的とする。
【課題を解決するための手段】
【0006】
1つの側面では、Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送において、トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、前記DFE回路のタップ値との制御結果に基づき、前記DDR伝送の伝送路で発生するシンボル間干渉値を測定し、測定した前記シンボル間干渉値に基づき、前記DFE回路に設定する設定タップ値を算出する。
【発明の効果】
【0007】
1つの側面では、精度良くDFE回路のタップ値を短時間で設定することができる。
【図面の簡単な説明】
【0008】
図1】実施形態における演算処理装置のハードウェア構成例を模式的に示すブロック図である。
図2】実施形態におけるトレーニングパターンを例示するテーブルである。
図3】実施形態におけるDFE TAP値のトレーニング処理を説明するフローチャートである。
図4図3に示したTAP決め処理の詳細を説明するフローチャートである。
図5】実施形態におけるトレーニング時のDynamic Random Access Memory(DRAM)入力端子での波形を例示するグラフである。
図6】変形例におけるトレーニングパターンを例示するテーブルである。
図7】変形例におけるトレーニングTAPと使用パターンとの対応を例示するテーブルである。
図8】変形例における図3に示したTAP決め処理の詳細を説明するフローチャートである。
図9】変形例におけるトレーニング時のDRAM入力端子での波形を例示するグラフである。
図10】変形例におけるDFE TAP値のトレーニング処理を説明するフローチャートである。
図11図10に示したTAP1決め処理の詳細を説明するフローチャートである。
図12図10に示したTAP1決め処理の詳細を説明するフローチャートである。
図13図12に示したTAP2の増加処理の詳細を説明するフローチャートである。
図14図10に示したTAP2決め処理の詳細を説明するフローチャートである。
図15図10に示したTAP2決め処理の詳細を説明するフローチャートである。
図16図15に示したTAP1の増加処理の詳細を説明するフローチャートである。
【発明を実施するための形態】
【0009】
〔A〕実施形態
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。以下、各図において同一の符号は同様の機能を有するため、その説明を省略する場合がある。
【0010】
図1は、実施形態における演算処理装置1のハードウェア構成例を模式的に示すブロック図である。
【0011】
演算処理装置1は、Central Processing Unit(CPU)11及びDRAM21を備える。
【0012】
CPU11は、例示的に、種々の制御や演算を行なう処理装置であり、DRAM21に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。
【0013】
なお、種々の機能を実現するためのプログラムは、例えばフレキシブルディスク、CD(CD-ROM、CD-R、CD-RW等)、DVD(DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ(本実施形態ではCPU11)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
【0014】
CPU11において機能を実現する際には、内部記憶装置(本実施形態ではDRAM21)に格納されたプログラムがコンピュータ(本実施形態ではCPU11)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【0015】
CPU11は、例示的に、演算処理装置1全体の動作を制御する。演算処理装置1全体の動作を制御するための装置は、CPU11に限定されず、例えば、MPUやDSP,ASIC,PLD,FPGAのいずれか1つであってもよい。また、演算処理装置1全体の動作を制御するための装置は、CPU,MPU,DSP,ASIC,PLD及びFPGAのうちの2種類以上の組み合わせであってもよい。なお、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称であり、ASICはApplication Specific Integrated Circuitの略称である。また、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
【0016】
図1に示すように、演算処理装置1は、メモリ制御回路111として機能してよい。メモリ制御回路111は、DRMA21へ制御信号及びデータ信号を入力することにより、DRAM21を制御する。
【0017】
DRAM21は、一次記録メモリ又はワーキングメモリとして利用され、制御回路211,DFE回路212,Voltage Reference(VREF)回路213及びメモリセル214としての機能を備えてよい。
【0018】
制御回路211は、CPU11のメモリ制御回路111からの制御信号に基づき、DFE回路212及びVREF回路213を制御する。
【0019】
DFE回路212は、伝送路のISIを打ち消して伝送マージンを増やすための回路であり、CPU11のメモリ制御回路111からのデータ信号及び制御回路211からの信号に基づき、メモリセル214を制御する。
【0020】
VREF回路213は、CPU11のメモリ制御回路111からのデータ信号及び制御回路211からの信号に基づき、メモリセル214に対して一定の電圧を供給する。
【0021】
メモリセル214は、DRAM21において情報を記憶し、読み書きする最小単位となる回路構成である。
【0022】
実施形態における演算処理装置1は、DFE回路212を使用するDDR伝送において、DRAM標準規格で規定されている機能だけを用いて、適切なDFE値を設定する。演算処理装置1は、トレーニングデータパターン,DRAM21のVREF値(別言すれば、電圧参照値)及びDRAM21のDFE TAP値(別言すれば、DFE回路212のタップ値)を適切に制御する。これにより、伝送路で発生するISIを直接測定することを可能とし、短時間で精度の高い適切なDFE TAP値を求める。
【0023】
図2は、実施形態におけるトレーニングパターンを例示するテーブルである。
【0024】
実施形態においては、図2に示すトレーニングパターンを用いて、DFE TAP値のトレーニング処理が実行されてよい。
【0025】
トレーニングパターンは、符号A1に示すパターン#1,#2に対して、符号A2に示すビット番号0~15がそれぞれ対応付けられている。
【0026】
実施形態におけるDFE TAP値のトレーニング処理を、図3に示すフローチャート(ステップS1~S7)に従って説明する。
【0027】
図1に示したメモリ制御回路111は、TAP1を決める(ステップS1)。
【0028】
メモリ制御回路111は、TAP値及びVREF値をリセットする(ステップS2)。
【0029】
メモリ制御回路111は、TAP2を決める(ステップS3)。
【0030】
メモリ制御回路111は、TAP値及びVREF値をリセットする(ステップS4)。
【0031】
メモリ制御回路111は、TAP3を決める(ステップS5)。
【0032】
メモリ制御回路111は、TAP値及びVREF値をリセットする(ステップS6)。
【0033】
メモリ制御回路111は、TAP4を決める(ステップS7)。そして、実施形態におけるDFE TAP値のトレーニング処理は終了する。
【0034】
次に、図2に示したTAP決め処理の詳細を、図3に示すフローチャート(ステップS11~S13)に従って説明する。
【0035】
メモリ制御回路111は、TAP1決めにおいて、図2に示したパターン#1(別言すれば、第1のトレーニングパターン)を流しながらVREF回路213を調整(sweep)することで、bit12の判定値が1から0に切り替わるVREF値(VREF1)を探索する(ステップS11)。
【0036】
メモリ制御回路111は、図2に示したパターン#2(別言すれば、第2のトレーニングパターン)を流しながらTAP1を調整(sweep)することで、bit12の判定値が0から1又は1から0に切り替わるTAP値(ISI1;別言すれば、シンボル間干渉値)を探索する(ステップS12)。
【0037】
メモリ制御回路111は、探索したISI1を半分にすることで、TAP1に設定すべきTAP値を計算する(ステップS13)。そして、TAP決め処理は終了する。
【0038】
なお、TAP2を決める際は判定bitをbit13としてステップS11~S13の処理が実行され、TAP3を決める際は判定bitをbit14としてステップS11~S13の処理が実行され、TAP4を決める際は判定bitをbit15としてステップS11~S13の処理が実行される。
【0039】
なお、図2に示したビットパターンは0と1が反転されたものであってもよい。すなわち、パターン#1(別言すれば、第1のトレーニングパターン)を反転させたパターン(別言すれば、第3のトレーニングパターン)と、パターン#2(別言すれば、第2のトレーニングパターン)を反転させたパターン(別言すれば、第4のトレーニングパターン)が使用されてもよい。この場合には、各ビットにおける判定値の切り替わりが逆になるように探索が行なわれる。
【0040】
また、図2に示したビットパターンによって得られたTAP値と、反転したビットパターンによって得られたTAP値との平均値が設定すべきTAP値とされてよい。これにより、送信データ波形の立ち上がりと立下がりの波形が異なる場合に両波形に同等に適切なDFE TAP値を選択することができる。
【0041】
図5は、実施形態におけるトレーニング時のDRAM入力端子での波形を例示するグラフである。
【0042】
符号B1に示すように、VREF1については、bit12を用いて、パターン#1とパターン#2との差分であるISI1が探索される。符号B2に示すように、VREF2については、bit13を用いて、パターン#1とパターン#2との差分であるISI2が探索される。符号B3に示すように、VREF3については、bit14を用いて、パターン#1とパターン#2との差分であるISI3が探索される。符号B4に示すように、VREF4については、bit15を用いて、パターン#1とパターン#2との差分であるISI4が探索される。
【0043】
〔A-1〕変形例
図6は、変形例におけるトレーニングパターンを例示するテーブルである。
【0044】
送路やDriver,Receiverの特性や設定によっては、VREF値の調整範囲外にVREF1がある場合には、適切にISI1を求めることができなくなり、トレーニングの精度が落ちてしまう。また、ISI1がTAP値のsweep範囲以上に大きい場合、ISI1を測定しきれない場合がある。この場合もトレーニングの精度が落ちてしまう。
【0045】
そこで、変形例では、図6に示すようなトレーニングパターンが用いられてよい。図6に示すトレーニングパターンは、符号C1に示すパターン#0~#4に対して、符号C 2に示すビット番号0~15がそれぞれ対応付けられている。
【0046】
図7は、変形例におけるトレーニングTAPと使用パターンとの対応を例示するテーブルである。
【0047】
図7に示すように、TAP1に対して使用パターン#0,#1が対応付けられ、TAP2に対して使用パターン#0,#2が対応付けられ、TAP3に対して使用パターン#0,#3が対応付けられ、TAP4に対して使用パターン#0,#4が対応付けられている。
【0048】
図8は、変形例における図3に示したTAP決め処理の詳細を説明するフローチャートである。
【0049】
メモリ制御回路111は、VREF調整向けパターンでVREFを調整する(ステップS21)。
【0050】
メモリ制御回路111は、VREF調整の可否を判定する(ステップS22)。
【0051】
VREF調整ができる場合には、メモリ制御回路111は、処理はステップS24へ進む。
【0052】
VREF調整ができない場合には、メモリ制御回路111は、当該TAP以外でOFSETをかける(ステップS23)そして、処理はステップS24へ進む。
【0053】
すなわち、図6に示したパターン#1(別言すれば、第1のトレーニングパターン)を流しながらVREFをsweepすることで、bit14の判定値が1から0に切り替わるVREF値(VREF1)が探索される。このとき、VREF値がVREF1に到達する前に調整範囲を使い切ってしまった場合は、トレーニングTAP以外のTAP(TAP2,TAP3又はTAP4)が使用され、VREF値がVREF1に合わせられる。
【0054】
メモリ制御回路111は、TAP調整向けパターンでTAPを調整する(ステップS24)。
【0055】
メモリ制御回路111は、TAP調整の可否を判定する(ステップS25)。
【0056】
TAP調整ができる場合には、メモリ制御回路111は、処理はステップS27へ進む。
【0057】
TAP調整ができない場合には、メモリ制御回路111は、当該TAP以外でOFSETをかける(ステップS26)そして、処理はステップS27へ進む。
【0058】
すなわち、図6に示したパターン#0(別言すれば、第2のトレーニングパターン)を流しながらTAP1をsweepすることで、bit14の判定値が1から0又は0から1に切り替わるTAP値(ISI1)が測定される。このとき、ISI1を測定しきる前にTAP1の調整範囲を使い切ってしまった場合は、トレーニングTAP以外のTAP(TAP2,TAP3又はTAP4)が使用されISI1が測定される。
【0059】
そして、メモリ制御回路111は、ISI1を半分にすることで、TAP1に設定すべきTAP値を計算し(ステップS27)、変形例におけるTAP1決め処理は終了する。ただし、ステップS23又はS26において、トレーニングTAP以外のTAPも使用して測定した場合は、使用したTAPを含めてTAP値が計算される。
【0060】
図9は、変形例におけるトレーニング時のDRAM入力端子での波形を例示するグラフである。
【0061】
符号E1に示すように、VREF1については、bit14を用いて、パターン#0(別言すれば、第2のトレーニングパターン)とパターン#1(別言すれば、第1のトレーニングパターン)との差分であるISI1が探索される。符号E2に示すように、VREF2については、bit14を用いて、パターン#0とパターン#2(別言すれば、第1のトレーニングパターン)との差分であるISI2が探索される。符号E3に示すように、VREF3については、bit14を用いて、パターン#0とパターン#3(別言すれば、第1のトレーニングパターン)との差分であるISI3が探索される。符号E4に示すように、VREF4については、bit14を用いて、パターン#0とパターン#4(別言すれば、第1のトレーニングパターン)との差分であるISI4が探索される。
【0062】
変形例におけるTAP決め処理においては、図6に示したビットパターンが使用されることで、実施形態における図1に示したビットパターンを使用した場合には使うことのできないトレーニングTAP以外のTAPの使用が可能となる。
【0063】
図1に示した実施形態におけるビットパターンの場合には、トレーニングTAP以外のTAPの極性を決めるbitの電圧レベルが図4に示したステップS11における処理による調整後のVREFのレベルと非常に近接しているため極性が安定しない。なお、極性を決めるbitは、TAP1の場合は判定bitの1bit前、TAP2の場合は判定bitの2bit前、TAP3の場合は判定bitの3bit前、TAP4の場合は判定bitの4bit前である。従って、実施形態では、トレーニングTAP以外のTAPをトレーニングに使用することはできない。
【0064】
一方、変形例におけるビットパターンの場合には、トレーニングTAP以外のTAPの極性を決めるbitの電圧レベルはステップS21~S23における処理による調整後のVREFのレベルから十分に離れている。このため、トレーニングTAP以外のTAPをトレーニングに使用することができる。
【0065】
変形例におけるDFE TAP値のトレーニング処理を、図10に示すフローチャート(ステップS31~S37)に従って説明する。
【0066】
メモリ制御回路111は、TAP1, TAP2以外はOFFとして、TAP1決めを行う(ステップS31)。
【0067】
メモリ制御回路111は、TAP値及びVREF値をリセットする(ステップS32)。
【0068】
メモリ制御回路111は、TAP1, TAP2以外はOFFとして、TAP2決めを行う(ステップS33)。
【0069】
メモリ制御回路111は、TAP値及びVREF値をリセットする(ステップS34)。
【0070】
メモリ制御回路111は、TAP1, TAP3以外はOFFとして、TAP3決めを行う(ステップS35)。
【0071】
メモリ制御回路111は、TAP値及びVREF値をリセットする(ステップS36)。
【0072】
メモリ制御回路111は、TAP1, TAP4以外はOFFとして、TAP4決めを行う(ステップS37)。そして、変形例におけるDFE TAP値のトレーニング処理は終了する。
【0073】
次に、図10に示したTAP1決め処理の詳細を、図11及び図12に示すフローチャート(ステップS41~S61)に従って説明する。
【0074】
図11において、メモリ制御回路111は、パターン#1を繰り返す(ステップS41)。
【0075】
メモリ制御回路111は、bit14の値をn回確認する(ステップS42)。
【0076】
n回の過半数が0である場合には、メモリ制御回路111は、VrefDQ(VREF1)の値を決定し、OFFSET用のTAP2の値を決定する(ステップS43)。そして、処理は図12のステップS48へ進む。
【0077】
一方、n回の過半数が1である場合には、メモリ制御回路111は、VrefDQが振り切れているかを判定する(ステップS44)。
【0078】
VrefDQが振り切れていない場合には、メモリ制御回路111は、VrefDQをHigh側に動かす(ステップS45)。そして、処理はステップS42へ戻る。
【0079】
一方、VrefDQが振り切れている場合には、メモリ制御回路111は、波形が下がるようにTAP2を増加させてsign bit=0とする(ステップS46)。
【0080】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS47)。
【0081】
n回の過半数が1である場合には、処理はステップS46へ戻る。
【0082】
一方、n回の過半数が0である場合には、処理はステップS43へ戻る。
【0083】
図12において、メモリ制御回路111は、パターン#0を繰り返す(ステップS48)。
【0084】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS49)。
【0085】
n回の過半数が0である場合には、メモリ制御回路111は、TAP1が振り切れておりsign bit=1となっているかを判定する(ステップS50)。
【0086】
TAP1が振り切れていない場合には、メモリ制御回路111は、波形が上がるようにTAP1を増加させてsign bit=1のままとする(ステップS51)。
【0087】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS52)。
【0088】
n回の過半数が0である場合には、処理はステップS50へ戻る。
【0089】
一方、n回の過半数が1である場合には、メモリ制御回路111は、TAP1の値を1step減らす(ステップS53)。
【0090】
メモリ制御回路111は、TAP1の値とTAP2の増加分とを足して2で割って設定すべき値とする(ステップS54)。そして、変形例におけるTAP1決め処理の詳細は終了する。
【0091】
ステップS50において、TAP1が振り切れている場合には、メモリ制御回路111は、波形が上がるようにTAP2を増加させる(ステップS55)。
【0092】
メモリ制御回路111は、bit14の値をn回繰り返す(ステップS56)。
【0093】
n回の過半数が0である場合には、処理はステップS55へ戻る。
【0094】
一方、n回の過半数が1である場合には、処理はステップS53へ進む。
【0095】
ステップS49において、n回の過半数が1である場合には、メモリ制御回路111は、TAP1が振り切れておりsign bit=0となっているかを判定する(ステップS57)。
【0096】
TAP1が振り切れていない場合には、メモリ制御回路111は、波形が下がるようにTAP1を増加させてsign bit=0のままとする(ステップS58)。
【0097】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS59)。
【0098】
n回の過半数が1である場合には、処理はステップS57へ戻る。
【0099】
一方、n回の過半数が0である場合には、処理はステップS54へ進む。
【0100】
ステップS57において、TAP1が振り切れている場合には、メモリ制御回路111は、波形が下がるようにTAP2を増加させる(ステップS60)。
【0101】
メモリ制御回路111は、bit14の値をn回確認する(ステップS61)。
【0102】
n回の過半数が1である場合には、処理はステップS61へ戻る。
【0103】
一方、n回の過半数が0である場合には、処理はステップS54へ進む。
【0104】
次に、図12に示したTAP2の増加処理の詳細を、図13に示すフローチャート(ステップS551~S553)に従って説明する。
【0105】
メモリ制御回路111は、VREF決めにTAP2を使用しているかを判定する(ステップS551)。
【0106】
VREF決めにTAP2を使用していない場合には、TAP2を増加させてsign bit=1とする(ステップS552)。そして、変形例におけるTAP2の増加処理の詳細は終了する。
【0107】
一方、VREF決めにTAP2を使用している場合には、sign bit=0のままTAP2を減少させ、TAP値が0になったらsign bit=1とし、TAP値を増加させる(ステップS553)。そして、変形例におけるTAP2の増加処理の詳細は終了する。
【0108】
次に、図10に示したTAP1決め処理の詳細を、図14及び図15に示すフローチャート(ステップS71~S91)に従って説明する。
【0109】
図14において、メモリ制御回路111は、パターン#2を繰り返す(ステップS71)。
【0110】
メモリ制御回路111は、bit14の値をn回確認する(ステップS72)。
【0111】
n回の過半数が0である場合には、メモリ制御回路111は、VrefDQ(VREF1)の値を決定し、OFFSET用のTAP2の値を決定する(ステップS73)。そして、処理は図15のステップS78へ進む。
【0112】
一方、n回の過半数が1である場合には、メモリ制御回路111は、VrefDQが振り切れているかを判定する(ステップS74)。
【0113】
VrefDQが振り切れていない場合には、メモリ制御回路111は、VrefDQをHigh側に動かす(ステップS75)。そして、処理はステップS72へ戻る。
【0114】
一方、VrefDQが振り切れている場合には、メモリ制御回路111は、波形が下がるようにTAP2を増加させてsign bit=0とする(ステップS76)。
【0115】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS77)。
【0116】
n回の過半数が1である場合には、処理はステップS76へ戻る。
【0117】
一方、n回の過半数が0である場合には、処理はステップS73へ戻る。
【0118】
図15において、メモリ制御回路111は、パターン#0を繰り返す(ステップS78)。
【0119】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS79)。
【0120】
n回の過半数が0である場合には、メモリ制御回路111は、TAP2が振り切れておりsign bit=1となっているかを判定する(ステップS80)。
【0121】
TAP2が振り切れていない場合には、メモリ制御回路111は、波形が上がるようにTAP2を増加させてsign bit=1のままとする(ステップS81)。
【0122】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS82)。
【0123】
n回の過半数が0である場合には、処理はステップS80へ戻る。
【0124】
一方、n回の過半数が1である場合には、メモリ制御回路111は、TAP2の値を1step減らす(ステップS83)。
【0125】
メモリ制御回路111は、TAP2の値とTAP1の増加分とを足して2で割って設定すべき値とする(ステップS84)。そして、変形例におけるTAP2決め処理の詳細は終了する。
【0126】
ステップS80において、TAP2が振り切れている場合には、メモリ制御回路111は、波形が上がるようにTAP1を増加させる(ステップS85)。
【0127】
メモリ制御回路111は、bit14の値をn回繰り返す(ステップS86)。
【0128】
n回の過半数が0である場合には、処理はステップS85へ戻る。
【0129】
一方、n回の過半数が1である場合には、処理はステップS83へ進む。
【0130】
ステップS89において、n回の過半数が1である場合には、メモリ制御回路111は、TAP2が振り切れておりsign bit=0となっているかを判定する(ステップS87)。
【0131】
TAP2が振り切れていない場合には、メモリ制御回路111は、波形が下がるようにTAP2を増加させてsign bit=0のままとする(ステップS88)。
【0132】
メモリ制御回路111は、bit 14の値をn回確認する(ステップS89)。
【0133】
n回の過半数が1である場合には、処理はステップS87へ戻る。
【0134】
一方、n回の過半数が0である場合には、処理はステップS84へ進む。
【0135】
ステップS87において、TAP2が振り切れている場合には、メモリ制御回路111は、波形が下がるようにTAP1を増加させる(ステップS90)。
【0136】
メモリ制御回路111は、bit14の値をn回確認する(ステップS91)。
【0137】
n回の過半数が1である場合には、処理はステップS91へ戻る。
【0138】
一方、n回の過半数が0である場合には、処理はステップS84へ進む。
【0139】
次に、図15に示したTAP1の増加処理の詳細を、図16に示すフローチャート(ステップS851~S853)に従って説明する。
【0140】
メモリ制御回路111は、VREF決めにTAP1を使用しているかを判定する(ステップS851)。
【0141】
VREF決めにTAP1を使用していない場合には、TAP1を増加させてsign bit=1とする(ステップS852)。そして、変形例におけるTAP1の増加処理の詳細は終了する。
【0142】
一方、VREF決めにTAP1を使用している場合には、sign bit=0のままTAP1を減少させ、TAP値が0になったらsign bit=1とし、TAP値を増加させる(ステップS853)。そして、変形例におけるTAP1の増加処理の詳細は終了する。
【0143】
なお、変形例において、図6に示したビットパターンは0と1が反転されたものであってもよい。すなわち、パターン#1(別言すれば、第1のトレーニングパターン)を反転させたパターン(別言すれば、第3のトレーニングパターン)と、パターン#2(別言すれば、第2のトレーニングパターン)を反転させたパターン(別言すれば、第4のトレーニングパターン)が使用されてもよい。この場合には、各ビットにおける判定値の切り替わりが逆になるように探索が行なわれる。
【0144】
また、図6に示したビットパターンによって得られたTAP値と、反転したビットパターンによって得られたTAP値との平均値が設定すべきTAP値とされてよい。これにより、送信データ波形の立ち上がりと立下がりの波形が異なる場合に両波形に同等に適切なDFE TAP値を選択することができる。
【0145】
TAP1を決める際のオフセットにはTAP2だけを、TAP2、TAP3、TAP4を決める際のオフセットにはTAP1だけを使用しているが、それぞれトレーニングしているTAP以外のTAPを使用してオフセットをかけ、トレーニングが実施されてよい。これにより、精度の高い調整ができる範囲を広げることができる。
【0146】
トレーニングしているTAP以外のTAPを使用してオフセットをかける処理は、上述したビットパターンを反転させる場合と組み合わされてもよい。また、トレーニングしているTAP以外のTAPを使用してオフセットをかける処理は、図6に示したビットパターンによって得られたTAP値と、反転したビットパターンによって得られたTAP値との平均値が設定すべきTAP値とする場合と組み合わされてもよい。これにより、精度の高い調整ができる範囲をより広げることができる。
【0147】
〔B〕効果
上述した実施形態におけるトレーニング方法,演算処理装置及びトレーニングプログラムによれば、例えば以下の作用効果を奏することができる。
【0148】
メモリ制御回路111は、トレーニングパターンと、DRAM21の電圧参照値と、DFE回路212のタップ値との制御結果に基づき、DDR伝送の伝送路で発生するシンボル間干渉値を測定する。メモリ制御回路111は、測定したシンボル間干渉値に基づき、DFE回路212に設定する設定タップ値を算出する。
【0149】
これにより、DRAM21の標準規格で規定されている機能のみを用いて、精度良くDFE回路212のタップ値を短時間で設定することができる。
【0150】
メモリ制御回路111は、第1のトレーニングパターンを使用して、第1のトレーニングパターンに含まれる所定のビットの判定値が1から0に切り替わる電圧参照値を探索する。メモリ制御回路111は、第1のトレーニングパターンとは異なる第2のトレーニングパターンを使用して、第2のトレーニングパターンに含まれる所定のビットの判定値が0から1又は1から0に切り替わるタップ値をシンボル間干渉値として探索する。メモリ制御回路111は、探索したシンボル間干渉値の半分の値を、設定タップ値として算出する。
【0151】
これにより、より精度良くDFE回路212のタップ値を設定できる。
【0152】
シンボル間干渉値を測定する処理は複数のタップ値毎に実行され、第1のトレーニングパターンは複数のタップ値間で異なり、第2のトレーニングパターンは複数のタップ値間で共通である。メモリ制御回路111は、第1のトレーニングパターンを使用した際に電圧参照値を探索できない場合には、複数のタップ値のうち探索対象のタップ値以外のタップ値を用いて探索を行う。メモリ制御回路111は、第2のトレーニングパターンを使用した際にシンボル間干渉値を探索できない場合には、探索対象のタップ値以外のタップ値を用いて探索を行う。
【0153】
これにより、送路やDriver,Receiverの特性や設定によらず、VREF値の調整範囲外にVREF1がある場合にも、適切にISI1を求めることができ、トレーニングの精度を維持できる。また、ISI1がTAP値のsweep範囲以上に大きい場合にも、ISI1を測定でき、トレーニングの精度を維持できる。
【0154】
メモリ制御回路111は、第1のトレーニングパターンを反転させた第3のトレーニングパターンを使用して、電圧参照値を探索する。メモリ制御回路111は、第2のトレーニングパターンを反転させた第4のトレーニングパターンを使用して、シンボル間干渉値を探索する。メモリ制御回路111は、第2のトレーニングパターンを使用して探索したシンボル間干渉値と、第4のトレーニングパターンを使用して探索したシンボル間干渉値との平均値の半分の値を、設定タップ値として算出する。
【0155】
これにより、送信データ波形の立ち上がりと立下がりの波形が異なる場合に両波形に同等に適切なDFE TAP値を選択することができる。
【0156】
〔C〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0157】
〔D〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【0158】
(付記1)
Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送において、
トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、前記DFE回路のタップ値との制御結果に基づき、前記DDR伝送の伝送路で発生するシンボル間干渉値を測定し、
測定した前記シンボル間干渉値に基づき、前記DFE回路に設定する設定タップ値を算出する、
処理をコンピュータが実行する、トレーニング方法。
【0159】
(付記2)
前記シンボル間干渉値を測定する処理において、
第1のトレーニングパターンを使用して、前記第1のトレーニングパターンに含まれる所定のビットの判定値が1から0に切り替わる前記電圧参照値を探索し、
前記第1のトレーニングパターンとは異なる第2のトレーニングパターンを使用して、前記第2のトレーニングパターンに含まれる前記所定のビットの判定値が0から1又は1から0に切り替わる前記タップ値を前記シンボル間干渉値として探索し、
前記設定タップ値を算出する処理において、
探索した前記シンボル間干渉値の半分の値を、前記設定タップ値として算出する、
処理を前記コンピュータが実行する、付記1に記載のトレーニング方法。
【0160】
(付記3)
前記シンボル間干渉値を測定する処理は、複数の前記タップ値毎に実行され、
前記第1のトレーニングパターンは、前記複数のタップ値間で異なり、
前記第2のトレーニングパターンは、前記複数のタップ値間で共通である、
付記2に記載のトレーニング方法。
【0161】
(付記4)
前記第1のトレーニングパターンを使用した際に前記電圧参照値を探索できない場合には、前記複数のタップ値のうち探索対象のタップ値以外のタップ値を用いて探索を行い、
前記第2のトレーニングパターンを使用した際に前記シンボル間干渉値を探索できない場合には、前記探索対象のタップ値以外のタップ値を用いて探索を行う、
処理を前記コンピュータが実行する、付記3に記載のトレーニング方法。
【0162】
(付記5)
前記第1のトレーニングパターンを反転させた第3のトレーニングパターンを使用して、前記電圧参照値を探索し、
前記第2のトレーニングパターンを反転させた第4のトレーニングパターンを使用して、前記シンボル間干渉値を探索する、
処理を前記コンピュータが実行する、付記2~4のいずれか一項に記載のトレーニング方法。
【0163】
(付記6)
前記第2のトレーニングパターンを使用して探索した前記シンボル間干渉値と、前記第4のトレーニングパターンを使用して探索した前記シンボル間干渉値との平均値の半分の値を、前記設定タップ値として算出する、
処理を前記コンピュータが実行する、付記5に記載のトレーニング方法。
【0164】
(付記7)
Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送を実行する演算処理装置であって、
トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、前記DFE回路のタップ値との制御結果に基づき、前記DDR伝送の伝送路で発生するシンボル間干渉値を測定し、
測定した前記シンボル間干渉値に基づき、前記DFE回路に設定する設定タップ値を算出する、
プロセッサを備える、演算処理装置。
【0165】
(付記8)
前記プロセッサは、
前記シンボル間干渉値を測定する処理において、
第1のトレーニングパターンを使用して、前記第1のトレーニングパターンに含まれる所定のビットの判定値が1から0に切り替わる前記電圧参照値を探索し、
前記第1のトレーニングパターンとは異なる第2のトレーニングパターンを使用して、前記第2のトレーニングパターンに含まれる前記所定のビットの判定値が0から1又は1から0に切り替わる前記タップ値を前記シンボル間干渉値として探索し、
前記設定タップ値を算出する処理において、
探索した前記シンボル間干渉値の半分の値を、前記設定タップ値として算出する、
付記7に記載の演算処理装置。
【0166】
(付記9)
前記シンボル間干渉値を測定する処理は、複数の前記タップ値毎に実行され、
前記第1のトレーニングパターンは、前記複数のタップ値間で異なり、
前記第2のトレーニングパターンは、前記複数のタップ値間で共通である、
付記8に記載の演算処理装置。
【0167】
(付記10)
前記プロセッサは、
前記第1のトレーニングパターンを使用した際に前記電圧参照値を探索できない場合には、前記複数のタップ値のうち探索対象のタップ値以外のタップ値を用いて探索を行い、
前記第2のトレーニングパターンを使用した際に前記シンボル間干渉値を探索できない場合には、前記探索対象のタップ値以外のタップ値を用いて探索を行う、
処理を前記コンピュータが実行する、付記9に記載の演算処理装置。
【0168】
(付記11)
前記プロセッサは、
前記第1のトレーニングパターンを反転させた第3のトレーニングパターンを使用して、前記電圧参照値を探索し、
前記第2のトレーニングパターンを反転させた第4のトレーニングパターンを使用して、前記シンボル間干渉値を探索する、
付記8~10のいずれか一項に記載の演算処理装置。
【0169】
(付記12)
前記プロセッサは、
前記第2のトレーニングパターンを使用して探索した前記シンボル間干渉値と、前記第4のトレーニングパターンを使用して探索した前記シンボル間干渉値との平均値の半分の値を、前記設定タップ値として算出する、
付記11に記載の演算処理装置。
【0170】
(付記13)
Decision Feedback Equalizer(DFE)回路を使用するDouble Data Rate(DDR)伝送において、
トレーニングパターンと、Dynamic Random Access Memory(DRAM)の電圧参照値と、前記DFE回路のタップ値との制御結果に基づき、前記DDR伝送の伝送路で発生するシンボル間干渉値を測定し、
測定した前記シンボル間干渉値に基づき、前記DFE回路に設定する設定タップ値を算出する、
処理をコンピュータに実行させる、トレーニングプログラム。
【0171】
(付記14)
前記シンボル間干渉値を測定する処理において、
第1のトレーニングパターンを使用して、前記第1のトレーニングパターンに含まれる所定のビットの判定値が1から0に切り替わる前記電圧参照値を探索し、
前記第1のトレーニングパターンとは異なる第2のトレーニングパターンを使用して、前記第2のトレーニングパターンに含まれる前記所定のビットの判定値が0から1又は1から0に切り替わる前記タップ値を前記シンボル間干渉値として探索し、
前記設定タップ値を算出する処理において、
探索した前記シンボル間干渉値の半分の値を、前記設定タップ値として算出する、
処理を前記コンピュータに実行させる、付記13に記載のトレーニングプログラム。
【0172】
(付記15)
前記シンボル間干渉値を測定する処理は、複数の前記タップ値毎に実行され、
前記第1のトレーニングパターンは、前記複数のタップ値間で異なり、
前記第2のトレーニングパターンは、前記複数のタップ値間で共通である、
付記14に記載のトレーニングプログラム。
【0173】
(付記16)
前記第1のトレーニングパターンを使用した際に前記電圧参照値を探索できない場合には、前記複数のタップ値のうち探索対象のタップ値以外のタップ値を用いて探索を行い、
前記第2のトレーニングパターンを使用した際に前記シンボル間干渉値を探索できない場合には、前記探索対象のタップ値以外のタップ値を用いて探索を行う、
処理を前記コンピュータに実行させる、付記15に記載のトレーニングプログラム。
【0174】
(付記17)
前記第1のトレーニングパターンを反転させた第3のトレーニングパターンを使用して、前記電圧参照値を探索し、
前記第2のトレーニングパターンを反転させた第4のトレーニングパターンを使用して、前記シンボル間干渉値を探索する、
処理を前記コンピュータに実行させる、付記14~16に記載のトレーニングプログラム。
【0175】
(付記18)
前記第2のトレーニングパターンを使用して探索した前記シンボル間干渉値と、前記第4のトレーニングパターンを使用して探索した前記シンボル間干渉値との平均値の半分の値を、前記設定タップ値として算出する、
処理を前記コンピュータに実行させる、付記17に記載のトレーニングプログラム。
【符号の説明】
【0176】
1 :演算処理装置
11 :CPU
21 :DRAM
111 :メモリ制御回路
211 :制御回路
212 :DFE回路
213 :回路
213 :VREF回路
214 :メモリセル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16