説明

メモリ制御装置及び制御方法

【課題】消費電力を低減させるとともに、信号品質を維持することが可能なメモリ制御装置及び制御方法を提供すること。
【解決手段】本発明の一態様に係るメモリ制御装置は、ODT(On Die Termination)機能を有する複数のメモリ素子に接続可能なメモリ制御装置であり、診断装置2、メモリ終端抵抗制御部7、ECC回路8を備える。メモリ終端抵抗制御部7は、複数のメモリ素子毎にODTを使用とするか未使用とするかを制御するためのODT制御信号を出力するECC回路8は、複数のメモリ素子から送出されるデータのエラーを検出する。診断装置2は、システム運用中において、ODT使用状況及びエラーの情報に基づいて、複数のメモリ素子のODT使用設定を切り換える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はメモリ制御装置及び制御方法に関し、特に、On Die Termination(ODT)機能を有する複数のメモリ素子の制御装置及び制御方法に関する。
【背景技術】
【0002】
メモリインタフェースのデータ転送速度は年々向上しており、今まで気にされていなかったインピーダンス不整合によって発生する電気(反射)ノイズが問題視されている。このノイズを抑えるために伝送線路の末端に終端抵抗を付け、電気ノイズを抑え信号品質を向上させている。
【0003】
汎用SDRAMのDDR2以降、メモリ素子に終端抵抗が内蔵されている。内蔵の終端抵抗は外付けの終端抵抗に比べ「オン/オフ」制御が簡単にでき、かつ実装密度も高く出来るという利点を有している。一般的に、ODT機能を有するメモリ素子が広く使用されている。
【0004】
しかしながら、メモリ素子のODTをオンにすることにより信号品質を向上できるという利点がある反面、多くのメモリ素子のODTをオンにすることによってメモリ素子の消費電力を増大させるという欠点がある。
【0005】
上記の問題点を解消するため、特許文献1に記載の半導体記憶装置では、メモリ素子単位でODT制御信号を有し、きめ細かなODT制御を実現している。これにより、データ転送に影響を及ぼさない範囲で不要なODT制御を抑止させ、消費電力を低減させることを可能としている。
【0006】
しかし、初期化段階でプログラマブルにODTの未使用を決定したとしても、データ転送の信号品質は転送データのパタンや温度条件等に依存するため、信号品質が初期化時に比べシステム運用状態の方が低下するという欠点がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−102706号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1では、信号品質が初期化時に比べて、システム運用状態のほうが低下してしまうという問題点がある。
【0009】
本発明は、このような事情を背景としてなされたものであり、本発明の目的は、消費電力を低減させるとともに、信号品質を維持することが可能なメモリ制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の一態様に係るメモリ制御装置は、ODT(On Die Termination)機能を有する複数のメモリ素子に接続可能なメモリ制御装置であって、前記複数のメモリ素子毎にODTを使用とするか未使用とするかを制御するためのODT制御信号を出力するメモリ終端抵抗制御部と、前記複数のメモリ素子から送出されるデータのエラーを検出するエラー検出部と、前記複数のメモリのシステム運用中において、前記複数のメモリ素子のODT使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のODT使用設定を切り換える診断装置とを備えるものである。
【0011】
本発明の他の態様に係る制御方法は、ODT(On Die Termination)機能を有する複数のメモリ素子の制御方法であって、前記複数のメモリ素子から送出されるデータのエラーを検出し、前記複数のメモリのシステム運用中において、前記複数のメモリ素子のODT使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のODT使用設定を切り換える。
【発明の効果】
【0012】
本発明によれば、消費電力を低減させるとともに、信号品質を維持することが可能なメモリ制御装置及び制御方法を提供することができる。
【図面の簡単な説明】
【0013】
【図1】実施の形態1に係るメモリ制御装置を搭載した半導体記憶装置の構成の一例を示す図である。
【図2】実施の形態1に係るメモリ制御装置のメモリコントローラの構成の一例を示す図である。
【図3】実施の形態1に係るメモリ制御装置のメモリ終端抵抗制御部の構成の一例を示す図である。
【図4】各メモリ素子のODT使用/未使用設定の例を示す図である。
【図5】診断装置に格納されるエラー情報の一例を示す図である。
【図6】ODT設定動作を説明するためのタイミングチャートである。
【図7】ODT設定動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【0014】
本発明の実施の形態に係るメモリ制御装置について、図1〜図3を参照して説明する。図1は、本実施の形態に係るメモリ制御装置を搭載した半導体記憶装置の構成の一例を示す図である。図2は、図1に示すメモリコントローラ1の構成の一例を詳細に示す図である。図1に示すように、本実施の形態に係る半導体記憶装置は、メモリコントローラ1、診断装置2、メモリ素子3を備えている。
【0015】
メモリ素子3は、ODT(On Die Termination)機能を有する。本発明は、このODT機能を有する複数のメモリ素子3に接続可能なメモリ制御装置に関するものである。メモリコントローラ1は、メモリ終端抵抗制御部7、ECC回路8を備える。メモリ制御装置は、診断装置2、メモリ終端抵抗制御部7、ECC回路8を含む。
【0016】
本実施の形態では、メモリ素子31、・・・、3nのn個のメモリ素子3が設けられているものとする。メモリコントローラ1とn個のメモリ素子3は、それぞれ配線を介して接続されている。メモリコントローラ1とn個のメモリ素子3の配線長は、それぞれ異なる。
【0017】
メモリ終端抵抗制御部7は、n個のメモリ素子3それぞれに対し、ODTを使用又は未使用とするODT信号を送出する。ECC回路8は、複数のメモリ素子3から送出されるデータのエラーを検出するエラー検出部である。
【0018】
診断装置2は、メモリコントローラ1に接続されるn個のメモリ素子のODT使用状況を管理する。また、診断装置2は、システム運用中に検出された訂正可能エラーの履歴管理を行う。診断装置2は、メモリ素子のODT使用状況及び訂正可能エラーの履歴に基づいて、メモリ素子のODT使用状態設定値を動的に切り換える。メモリ制御装置の動作については、後に詳述する。
【0019】
図2に示すように、メモリコントローラ1は、診断インタフェース制御部4、CPU(Central Processing Unit)インタフェース制御部5、メモリコマンド制御部6、メモリ終端抵抗制御部7、ECC(Error Correcting Code)回路8、メモリデータ制御部9を有している。
【0020】
診断インタフェース制御部4は、診断装置2からの動作要求を制御する。CPUインタフェース制御部5は、CPUからのライト、リードリクエストを受け付ける。メモリコマンド制御部6は、n個のメモリ素子3に対しライト、リードするためのイトデコマンド及びアドレスを送出する。
【0021】
メモリ終端抵抗制御部7は、メモリ素子3の単位でODT信号を有しており、n個のメモリ素子3それぞれのODT使用/未使用を制御することができる。これにより、不要なODT制御を抑止することができ、消費電力を低減させることができる。
【0022】
ECC回路8は、複数のメモリ素子3から送出されるデータのエラーを検出するエラー検出部である。具体的には、ECC回路8は、ライトデータに対しチェックビット生成を行う。また、ECC回路8は、リードデータに対しデータ訂正、訂正可能エラー検出、訂正不可能エラー検出、エラー情報保持を行う。
【0023】
例えば、データをメモリから読み出す際に読み出されたデータから生成されたチェックビットとライトデータに対し生成したチェックビットとを比較する。ECC回路8が1ビットのエラーを検出した場合、そのビット位置を特定して、そのエラーを訂正することができる。同時に2ビット以上のエラーが発生した場合は、訂正はできないが、2ビット以上のエラー(訂正不可能エラー)の存在を検出することができる。
【0024】
メモリデータ制御部9は、n個のメモリ素子3に対しライトデータ送出、及びn個のメモリ素子3からのリードデータ受信を行う。図3は、メモリ終端抵抗制御部7の構成の一例を示す図である。図3に示すように、メモリ終端抵抗制御部7は、ODT信号生成回路71及び複数のフリップフロップ(F/F)REG1−1、・・・を備えている。
【0025】
フリップフロップREG1−1、REG2−1、・・・、REGn−1には、診断インタフェース制御部4からの1クロックサイクル分の設定値セット信号が入力される。また、フリップフロップREG1−1にはメモリ素子31設定値が入力され、以降のフリップフロップREG2−1、・・・、REGn−1にはそれぞれのメモリ素子設定値が入力される。
【0026】
フリップフロップREG1−1、REG2−1、・・・、REGn−1の後段には、それぞれフリップフロップREG1−2、REG2−2、・・・、REGn−2が設けられている。フリップフロップREG1−2、REG2−2、・・・、REGn−2には、ODT信号生成回路71からNOT回路を介してODT信号が入力される。
【0027】
また、ODT信号は、フリップフロップREG−ODTにも入力される。フリップフロップREG1−2、REG2−2、・・・、REGn−2の後段には、それぞれアンド回路を介して、フリップフロップREG1−3、REG2−3、・・・、REGn−3が設けられている。フリップフロップREG−ODTからの出力と、フリップフロップREG1−2、・・・、REGn−2からの出力は、AND回路に入力される。そして、フリップフロップREG1−3、・・・、REGn−3からそれぞれのメモリ素子ODT信号が出力される。
【0028】
ここで、図1に示す半導体記憶装置の動作について説明する。システム初期化時において、ODT使用/未使用設定を決定するキャリブレーションが行われる。まず、診断装置2は、診断インタフェース制御部4を介して、メモリコントローラ1とn個全てのメモリ素子3との間において、ODT未使用の設定をメモリ終端抵抗制御部7に対して行う。なお、メモリコントローラ1とn個全てのメモリ素子3との間においてODT使用の設定を行って、キャリブレーションを行ってもよい。
【0029】
次に、診断インタフェース制御部4を介し、メモリコマンド制御部6に対してライトコマンドを実行し、その後リードコマンドを同一アドレス番地に対して実行する。メモリデータ制御部9は、各メモリ素子3からのリードデータと期待値との比較を行い、メモリ素子3毎のキャリブレーション結果を、診断インタフェース制御部4を介して診断装置2へ報告する。
【0030】
診断装置2は、その報告結果からメモリ終端抵抗制御部7に対しODT使用/未使用の設定を行う。本実施の形態においては、設定値がODT未使用の場合0、ODT使用の場合1とする。図4に、各メモリ素子3のODT使用/未使用設定の例を示す。
【0031】
図4に示す例では、1番目、2番目・・・のメモリ素子はODT未使用でインピーダンスをマッチングすることができOKであるため、0が設定される。また、n番目のメモリ素子はODT未使用でインピーダンスをマッチングすることができずNGであるため、ODT使用設定とする1が設定される。診断装置2は、この各メモリ素子3のODT使用/未使用の設定値を診断プログラムエリアに格納する。
【0032】
その後、システム運用状態に入る。メモリコントローラ1では、CPUからのリクエストをCPUインタフェース制御部5にて受け付ける。ライトリクエスト時では、メモリコマンド制御部6は、1対n接続されたn個のメモリ素子3に対し、ライトコマンド及びアドレスを送出する。ライトデータは、ECC回路8からメモリデータ制御部9を介して、n個のメモリ素子3に送出される。また、メモリ終端抵抗制御部7からは、キャリブレーション時にODT使用設定対象(設定値=1)となったメモリ素子3のみにODT信号が送出される。
【0033】
リードリクエスト時には、メモリコマンド制御部6は、1対n接続されたn個のメモリ素子3に対し、リードコマンド及びアドレスを送出する。n個のメモリ素子3からのリードデータはメモリデータ制御部9で受付けられ、ECC回路8を通りCPUインタフェース制御部5からCPUへ送出される。
【0034】
リード動作時において、ECC回路8で訂正可能エラーを検出した場合には、診断インタフェース制御部4を介して診断装置2に報告が行われる。報告を受付けた診断装置2は、ECC回路8に保持されたエラー情報(エラーブロック、シンドローム、エラーアドレス)の採取を行う。
【0035】
診断装置2は、エラー情報のエラーブロックから、どこのメモリ素子3で訂正可能エラーが発生したかを判断することができる。そして、診断装置2は、メモリ素子3の単位でエラー情報を診断プログラムエリアに格納する。この一連の動作は、その後訂正可能エラーが発生するたびに繰返し行われ、メモリ素子3の単位でエラー情報の履歴管理が行われる。
【0036】
図5に、診断装置2に格納されるエラー情報の一例を示す。図5に示すように、診断装置2では、例えば、メモリ素子3の単位にODT使用状態(ODT)、回数、シンドローム、エラーアドレス情報の履歴管理が行われる。図5に示す例では、メモリ素子31はODT未使用状態であるが、同一シンドローム、同一エラーアドレスで2回のエラーが発生している。このため、メモリ素子31のエラーは、訂正可能エラーであり、メモリセル故障による障害と判断できる。
【0037】
これに対し、メモリ素子32はODT未使用状態であり、シンドローム、エラーアドレスともに異なるエラーが発生している。このため、メモリ素子32のエラーは、伝送線路起因の障害と判断できる。
【0038】
システム運用中に診断プログラムにて、特定のメモリ素子3がODT未使用状態で、伝送線路起因の障害と判断した場合は、診断装置2からメモリ終端抵抗制御部7に対して、動的にODT未使用からODT使用設定に切り替えを行う。図5に示した例では、メモリ素子32が切り替えとなる。
【0039】
ここで、図3及び図6を参照してODT設定の動作について説明する。図6は、ODT設定動作を説明するためのタイミングチャートである。図6に示すように、タイミングT1において、メモリ終端抵抗制御部7は、診断インタフェース制御部4から1クロックサイクル分の設定値セット信号と、これと同じタイミングでメモリ素子32設定値(=1)を受信する。
【0040】
このとき、その他のメモリ素子の設定値は現状の設定値と変わらず、診断インタフェース制御部4から送出される。フリップフロップREG2−1は、タイミングT2でメモリ素子32の設定値「1」を取り込み、次のタイミングT3でフリップフロップREG2−2に対し送出する。
【0041】
フリップフロップREG2−2は、ODT信号生成回路71から出力されるODT信号が「0」のときのみ取り込みを行い、以降ホールド状態となる。従って、タイミングT3にてフリップフロップREG2−2は、「1」を取り込み、タイミングT4以降ホールド状態となる。
【0042】
そして、タイミングT5でフリップフロップREG−ODTが「1」となると、その後のタイミングT6でメモリ素子32ODT信号が「1」となる。これにより、メモリ素子32に対するODT信号はイネーブル状態となり、メモリ素子32のODTが使用可能状態となる。
【0043】
また、図7に、ODT信号が「1」の状態のタイミングで、メモリ終端抵抗制御部7が設定値セット信号とメモリ素子32設定値を受信した例を示す。この場合、ODT信号が「1」であるため、フリップフロップREG2−2には取り込まれない。
【0044】
タイミングT5でODT信号が「0」に切り替わった後、タイミングT6でフリップフロップREG2−2に取り込まれる。このため、メモリ素子32に対するODT信号が中途半端な出力になることを防ぐことができる。
【0045】
なお、上述の説明では、ライト時のODT制御について説明しているが、これに限られるものではない。リード時のメモリコントローラ1内のODT制御についてもメモリ終端抵抗制御部7と同様な回路を持つことにより動的にODTの切り替えが可能となる。
【0046】
以上説明したように、本発明によれば、メモリコントローラ1がメモリ素子3の単位にODT信号を有しているので、メモリ素子単位のODT制御ができることである。また、診断装置2の診断プログラムエリア内にメモリ素子単位のODTキャリブレーション結果及びメモリ素子単位との訂正可能エラー情報を保持している。このため、診断装置2が、当該訂正可能エラーが、伝送線起因の障害であると判断することができる。
【0047】
従って、システム運用中にODT未使用のメモリ素子で訂正可能エラーが発生し、診断プログラムにて伝送線路起因のエラーと判断した場合には、診断装置からメモリコントローラに対し、対象となるメモリ素子のODTを使用する設定に動的に切り替えることが可能となる。これにより、転送信号の品質を向上させ、以降の訂正可能エラーの発生を防ぎ、品質を向上させることが可能となる。
【0048】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0049】
1 メモリコントローラ
2 診断装置
3 メモリ素子
4 診断インタフェース制御部
5 CPUインタフェース制御部
6 メモリコマンド制御部
7 メモリ終端抵抗制御部
8 ECC回路
9 メモリデータ制御部
31、・・・、3n メモリ素子
71 ODT信号生成回路
REG1−1、・・・、REGn−1 フリップフロップ(F/F)
REG フリップフロップ

【特許請求の範囲】
【請求項1】
ODT(On Die Termination)機能を有する複数のメモリ素子に接続可能なメモリ制御装置であって、
前記複数のメモリ素子毎にODTを使用とするか未使用とするかを制御するためのODT制御信号を出力するメモリ終端抵抗制御部と、
前記複数のメモリ素子から送出されるデータのエラーを検出するエラー検出部と、
前記複数のメモリのシステム運用中において、前記複数のメモリ素子のODT使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のODT使用設定を切り換える診断装置と、
を備えるメモリ制御装置。
【請求項2】
前記診断装置は、ODT未使用のメモリ素子で訂正可能エラーが発生した場合、当該訂正可能エラーが伝送線路起因のエラーであるか否かを診断し、
前記訂正可能エラーが伝送線路起因のエラーであると判断された場合に、前記メモリ終端抵抗制御部に対し、当該訂正可能エラーが発生したメモリ素子のODTを使用する設定に切り換えることを特徴とする請求項1に記載のメモリ制御装置。
【請求項3】
前記複数のメモリ素子のそれぞれと接続される複数の配線をさらに備え、
前記複数の配線の長さはそれぞれ物理的に異なることを特徴とする請求項1又は2に記載のメモリ制御装置。
【請求項4】
ODT(On Die Termination)機能を有する複数のメモリ素子の制御方法であって、
前記複数のメモリ素子から送出されるデータのエラーを検出し、
前記複数のメモリのシステム運用中において、前記複数のメモリ素子のODT使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のODT使用設定を切り換える
制御方法。
【請求項5】
前記ODT使用状況が未使用のメモリ素子で訂正可能エラーが発生した場合、当該訂正可能エラーが伝送線路起因のエラーであるか否かを診断し、
前記訂正可能エラーが伝送線路起因のエラーであると判断された場合に、当該訂正可能エラーが発生したメモリ素子のODTを使用する設定に切り換えることを特徴とする請求項4に記載の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate