(57)【要約】【課題】消費電力を低減させるとともに、信号品質を維持することが可能なメモリ制御装置及び制御方法を提供すること。【解決手段】本発明の一態様に係るメモリ制御装置は、ＯＤＴ（On Die Termination）機能を有する複数のメモリ素子に接続可能なメモリ制御装置であり、診断装置２、メモリ終端抵抗制御部７、ＥＣＣ回路８を備える。メモリ終端抵抗制御部７は、複数のメモリ素子毎にＯＤＴを使用とするか未使用とするかを制御するためのＯＤＴ制御信号を出力するＥＣＣ回路８は、複数のメモリ素子から送出されるデータのエラーを検出する。診断装置２は、システム運用中において、ＯＤＴ使用状況及びエラーの情報に基づいて、複数のメモリ素子のＯＤＴ使用設定を切り換える。【選択図】図１
2010191761.tif 000002
【特許請求の範囲】
【請求項１】
ＯＤＴ（On Die Termination）機能を有する複数のメモリ素子に接続可能なメモリ制御装置であって、
前記複数のメモリ素子毎にＯＤＴを使用とするか未使用とするかを制御するためのＯＤＴ制御信号を出力するメモリ終端抵抗制御部と、
前記複数のメモリ素子から送出されるデータのエラーを検出するエラー検出部と、
前記複数のメモリのシステム運用中において、前記複数のメモリ素子のＯＤＴ使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のＯＤＴ使用設定を切り換える診断装置と、
を備えるメモリ制御装置。
【請求項２】
前記診断装置は、ＯＤＴ未使用のメモリ素子で訂正可能エラーが発生した場合、当該訂正可能エラーが伝送線路起因のエラーであるか否かを診断し、
前記訂正可能エラーが伝送線路起因のエラーであると判断された場合に、前記メモリ終端抵抗制御部に対し、当該訂正可能エラーが発生したメモリ素子のＯＤＴを使用する設定に切り換えることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記複数のメモリ素子のそれぞれと接続される複数の配線をさらに備え、
前記複数の配線の長さはそれぞれ物理的に異なることを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項４】
ＯＤＴ（On Die Termination）機能を有する複数のメモリ素子の制御方法であって、
前記複数のメモリ素子から送出されるデータのエラーを検出し、
前記複数のメモリのシステム運用中において、前記複数のメモリ素子のＯＤＴ使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のＯＤＴ使用設定を切り換える
制御方法。
【請求項５】
前記ＯＤＴ使用状況が未使用のメモリ素子で訂正可能エラーが発生した場合、当該訂正可能エラーが伝送線路起因のエラーであるか否かを診断し、
前記訂正可能エラーが伝送線路起因のエラーであると判断された場合に、当該訂正可能エラーが発生したメモリ素子のＯＤＴを使用する設定に切り換えることを特徴とする請求項４に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ制御装置及び制御方法に関し、特に、On Die Termination（ＯＤＴ）機能を有する複数のメモリ素子の制御装置及び制御方法に関する。
【背景技術】
【０００２】
メモリインタフェースのデータ転送速度は年々向上しており、今まで気にされていなかったインピーダンス不整合によって発生する電気（反射）ノイズが問題視されている。このノイズを抑えるために伝送線路の末端に終端抵抗を付け、電気ノイズを抑え信号品質を向上させている。
【０００３】
汎用ＳＤＲＡＭのＤＤＲ２以降、メモリ素子に終端抵抗が内蔵されている。内蔵の終端抵抗は外付けの終端抵抗に比べ「オン／オフ」制御が簡単にでき、かつ実装密度も高く出来るという利点を有している。一般的に、ＯＤＴ機能を有するメモリ素子が広く使用されている。
【０００４】
しかしながら、メモリ素子のＯＤＴをオンにすることにより信号品質を向上できるという利点がある反面、多くのメモリ素子のＯＤＴをオンにすることによってメモリ素子の消費電力を増大させるという欠点がある。
【０００５】
上記の問題点を解消するため、特許文献１に記載の半導体記憶装置では、メモリ素子単位でＯＤＴ制御信号を有し、きめ細かなＯＤＴ制御を実現している。これにより、データ転送に影響を及ぼさない範囲で不要なＯＤＴ制御を抑止させ、消費電力を低減させることを可能としている。
【０００６】
しかし、初期化段階でプログラマブルにＯＤＴの未使用を決定したとしても、データ転送の信号品質は転送データのパタンや温度条件等に依存するため、信号品質が初期化時に比べシステム運用状態の方が低下するという欠点がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１０２７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、信号品質が初期化時に比べて、システム運用状態のほうが低下してしまうという問題点がある。
【０００９】
本発明は、このような事情を背景としてなされたものであり、本発明の目的は、消費電力を低減させるとともに、信号品質を維持することが可能なメモリ制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係るメモリ制御装置は、ＯＤＴ（On Die Termination）機能を有する複数のメモリ素子に接続可能なメモリ制御装置であって、前記複数のメモリ素子毎にＯＤＴを使用とするか未使用とするかを制御するためのＯＤＴ制御信号を出力するメモリ終端抵抗制御部と、前記複数のメモリ素子から送出されるデータのエラーを検出するエラー検出部と、前記複数のメモリのシステム運用中において、前記複数のメモリ素子のＯＤＴ使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のＯＤＴ使用設定を切り換える診断装置とを備えるものである。
【００１１】
本発明の他の態様に係る制御方法は、ＯＤＴ（On Die Termination）機能を有する複数のメモリ素子の制御方法であって、前記複数のメモリ素子から送出されるデータのエラーを検出し、前記複数のメモリのシステム運用中において、前記複数のメモリ素子のＯＤＴ使用状況及び前記エラーの情報に基づいて、前記複数のメモリ素子のＯＤＴ使用設定を切り換える。
【発明の効果】
【００１２】
本発明によれば、消費電力を低減させるとともに、信号品質を維持することが可能なメモリ制御装置及び制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係るメモリ制御装置を搭載した半導体記憶装置の構成の一例を示す図である。
【図２】実施の形態１に係るメモリ制御装置のメモリコントローラの構成の一例を示す図である。
【図３】実施の形態１に係るメモリ制御装置のメモリ終端抵抗制御部の構成の一例を示す図である。
【図４】各メモリ素子のＯＤＴ使用／未使用設定の例を示す図である。
【図５】診断装置に格納されるエラー情報の一例を示す図である。
【図６】ＯＤＴ設定動作を説明するためのタイミングチャートである。
【図７】ＯＤＴ設定動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１４】
本発明の実施の形態に係るメモリ制御装置について、図１〜図３を参照して説明する。図１は、本実施の形態に係るメモリ制御装置を搭載した半導体記憶装置の構成の一例を示す図である。図２は、図１に示すメモリコントローラ１の構成の一例を詳細に示す図である。図１に示すように、本実施の形態に係る半導体記憶装置は、メモリコントローラ１、診断装置２、メモリ素子３を備えている。
【００１５】
メモリ素子３は、ＯＤＴ（On Die Termination）機能を有する。本発明は、このＯＤＴ機能を有する複数のメモリ素子３に接続可能なメモリ制御装置に関するものである。メモリコントローラ１は、メモリ終端抵抗制御部７、ＥＣＣ回路８を備える。メモリ制御装置は、診断装置２、メモリ終端抵抗制御部７、ＥＣＣ回路８を含む。
【００１６】
本実施の形態では、メモリ素子３１、・・・、３ｎのｎ個のメモリ素子３が設けられているものとする。メモリコントローラ１とｎ個のメモリ素子３は、それぞれ配線を介して接続されている。メモリコントローラ１とｎ個のメモリ素子３の配線長は、それぞれ異なる。
【００１７】
メモリ終端抵抗制御部７は、ｎ個のメモリ素子３それぞれに対し、ＯＤＴを使用又は未使用とするＯＤＴ信号を送出する。ＥＣＣ回路８は、複数のメモリ素子３から送出されるデータのエラーを検出するエラー検出部である。
【００１８】
診断装置２は、メモリコントローラ１に接続されるｎ個のメモリ素子のＯＤＴ使用状況を管理する。また、診断装置２は、システム運用中に検出された訂正可能エラーの履歴管理を行う。診断装置２は、メモリ素子のＯＤＴ使用状況及び訂正可能エラーの履歴に基づいて、メモリ素子のＯＤＴ使用状態設定値を動的に切り換える。メモリ制御装置の動作については、後に詳述する。
【００１９】
図２に示すように、メモリコントローラ１は、診断インタフェース制御部４、ＣＰＵ（Central Processing Unit）インタフェース制御部５、メモリコマンド制御部６、メモリ終端抵抗制御部７、ＥＣＣ（Error Correcting Code）回路８、メモリデータ制御部９を有している。
【００２０】
診断インタフェース制御部４は、診断装置２からの動作要求を制御する。ＣＰＵインタフェース制御部５は、ＣＰＵからのライト、リードリクエストを受け付ける。メモリコマンド制御部６は、ｎ個のメモリ素子３に対しライト、リードするためのイトデコマンド及びアドレスを送出する。
【００２１】
メモリ終端抵抗制御部７は、メモリ素子３の単位でＯＤＴ信号を有しており、ｎ個のメモリ素子３それぞれのＯＤＴ使用／未使用を制御することができる。これにより、不要なＯＤＴ制御を抑止することができ、消費電力を低減させることができる。
【００２２】
ＥＣＣ回路８は、複数のメモリ素子３から送出されるデータのエラーを検出するエラー検出部である。具体的には、ＥＣＣ回路８は、ライトデータに対しチェックビット生成を行う。また、ＥＣＣ回路８は、リードデータに対しデータ訂正、訂正可能エラー検出、訂正不可能エラー検出、エラー情報保持を行う。
【００２３】
例えば、データをメモリから読み出す際に読み出されたデータから生成されたチェックビットとライトデータに対し生成したチェックビットとを比較する。ＥＣＣ回路８が１ビットのエラーを検出した場合、そのビット位置を特定して、そのエラーを訂正することができる。同時に２ビット以上のエラーが発生した場合は、訂正はできないが、２ビット以上のエラー（訂正不可能エラー）の存在を検出することができる。
【００２４】
メモリデータ制御部９は、ｎ個のメモリ素子３に対しライトデータ送出、及びｎ個のメモリ素子３からのリードデータ受信を行う。図３は、メモリ終端抵抗制御部７の構成の一例を示す図である。図３に示すように、メモリ終端抵抗制御部７は、ＯＤＴ信号生成回路７１及び複数のフリップフロップ（Ｆ／Ｆ）ＲＥＧ１−１、・・・を備えている。
【００２５】
フリップフロップＲＥＧ１−１、ＲＥＧ２−１、・・・、ＲＥＧｎ−１には、診断インタフェース制御部４からの１クロックサイクル分の設定値セット信号が入力される。また、フリップフロップＲＥＧ１−１にはメモリ素子３１設定値が入力され、以降のフリップフロップＲＥＧ２−１、・・・、ＲＥＧｎ−１にはそれぞれのメモリ素子設定値が入力される。
【００２６】
フリップフロップＲＥＧ１−１、ＲＥＧ２−１、・・・、ＲＥＧｎ−１の後段には、それぞれフリップフロップＲＥＧ１−２、ＲＥＧ２−２、・・・、ＲＥＧｎ−２が設けられている。フリップフロップＲＥＧ１−２、ＲＥＧ２−２、・・・、ＲＥＧｎ−２には、ＯＤＴ信号生成回路７１からＮＯＴ回路を介してＯＤＴ信号が入力される。
【００２７】
また、ＯＤＴ信号は、フリップフロップＲＥＧ−ＯＤＴにも入力される。フリップフロップＲＥＧ１−２、ＲＥＧ２−２、・・・、ＲＥＧｎ−２の後段には、それぞれアンド回路を介して、フリップフロップＲＥＧ１−３、ＲＥＧ２−３、・・・、ＲＥＧｎ−３が設けられている。フリップフロップＲＥＧ−ＯＤＴからの出力と、フリップフロップＲＥＧ１−２、・・・、ＲＥＧｎ−２からの出力は、ＡＮＤ回路に入力される。そして、フリップフロップＲＥＧ１−３、・・・、ＲＥＧｎ−３からそれぞれのメモリ素子ＯＤＴ信号が出力される。
【００２８】
ここで、図１に示す半導体記憶装置の動作について説明する。システム初期化時において、ＯＤＴ使用／未使用設定を決定するキャリブレーションが行われる。まず、診断装置２は、診断インタフェース制御部４を介して、メモリコントローラ１とｎ個全てのメモリ素子３との間において、ＯＤＴ未使用の設定をメモリ終端抵抗制御部７に対して行う。なお、メモリコントローラ１とｎ個全てのメモリ素子３との間においてＯＤＴ使用の設定を行って、キャリブレーションを行ってもよい。
【００２９】
次に、診断インタフェース制御部４を介し、メモリコマンド制御部６に対してライトコマンドを実行し、その後リードコマンドを同一アドレス番地に対して実行する。メモリデータ制御部９は、各メモリ素子３からのリードデータと期待値との比較を行い、メモリ素子３毎のキャリブレーション結果を、診断インタフェース制御部４を介して診断装置２へ報告する。
【００３０】
診断装置２は、その報告結果からメモリ終端抵抗制御部７に対しＯＤＴ使用／未使用の設定を行う。本実施の形態においては、設定値がＯＤＴ未使用の場合０、ＯＤＴ使用の場合１とする。図４に、各メモリ素子３のＯＤＴ使用／未使用設定の例を示す。
【００３１】
図４に示す例では、１番目、２番目・・・のメモリ素子はＯＤＴ未使用でインピーダンスをマッチングすることができＯＫであるため、０が設定される。また、ｎ番目のメモリ素子はＯＤＴ未使用でインピーダンスをマッチングすることができずＮＧであるため、ＯＤＴ使用設定とする１が設定される。診断装置２は、この各メモリ素子３のＯＤＴ使用／未使用の設定値を診断プログラムエリアに格納する。
【００３２】
その後、システム運用状態に入る。メモリコントローラ１では、ＣＰＵからのリクエストをＣＰＵインタフェース制御部５にて受け付ける。ライトリクエスト時では、メモリコマンド制御部６は、１対ｎ接続されたｎ個のメモリ素子３に対し、ライトコマンド及びアドレスを送出する。ライトデータは、ＥＣＣ回路８からメモリデータ制御部９を介して、ｎ個のメモリ素子３に送出される。また、メモリ終端抵抗制御部７からは、キャリブレーション時にＯＤＴ使用設定対象（設定値＝１）となったメモリ素子３のみにＯＤＴ信号が送出される。
【００３３】
リードリクエスト時には、メモリコマンド制御部６は、１対ｎ接続されたｎ個のメモリ素子３に対し、リードコマンド及びアドレスを送出する。ｎ個のメモリ素子３からのリードデータはメモリデータ制御部９で受付けられ、ＥＣＣ回路８を通りＣＰＵインタフェース制御部５からＣＰＵへ送出される。
【００３４】
リード動作時において、ＥＣＣ回路８で訂正可能エラーを検出した場合には、診断インタフェース制御部４を介して診断装置２に報告が行われる。報告を受付けた診断装置２は、ＥＣＣ回路８に保持されたエラー情報（エラーブロック、シンドローム、エラーアドレス）の採取を行う。
【００３５】
診断装置２は、エラー情報のエラーブロックから、どこのメモリ素子３で訂正可能エラーが発生したかを判断することができる。そして、診断装置２は、メモリ素子３の単位でエラー情報を診断プログラムエリアに格納する。この一連の動作は、その後訂正可能エラーが発生するたびに繰返し行われ、メモリ素子３の単位でエラー情報の履歴管理が行われる。
【００３６】
図５に、診断装置２に格納されるエラー情報の一例を示す。図５に示すように、診断装置２では、例えば、メモリ素子３の単位にＯＤＴ使用状態（ＯＤＴ）、回数、シンドローム、エラーアドレス情報の履歴管理が行われる。図５に示す例では、メモリ素子３１はＯＤＴ未使用状態であるが、同一シンドローム、同一エラーアドレスで２回のエラーが発生している。このため、メモリ素子３１のエラーは、訂正可能エラーであり、メモリセル故障による障害と判断できる。
【００３７】
これに対し、メモリ素子３２はＯＤＴ未使用状態であり、シンドローム、エラーアドレスともに異なるエラーが発生している。このため、メモリ素子３２のエラーは、伝送線路起因の障害と判断できる。
【００３８】
システム運用中に診断プログラムにて、特定のメモリ素子３がＯＤＴ未使用状態で、伝送線路起因の障害と判断した場合は、診断装置２からメモリ終端抵抗制御部７に対して、動的にＯＤＴ未使用からＯＤＴ使用設定に切り替えを行う。図５に示した例では、メモリ素子３２が切り替えとなる。
【００３９】
ここで、図３及び図６を参照してＯＤＴ設定の動作について説明する。図６は、ＯＤＴ設定動作を説明するためのタイミングチャートである。図６に示すように、タイミングＴ１において、メモリ終端抵抗制御部７は、診断インタフェース制御部４から１クロックサイクル分の設定値セット信号と、これと同じタイミングでメモリ素子３２設定値（＝１）を受信する。
【００４０】
このとき、その他のメモリ素子の設定値は現状の設定値と変わらず、診断インタフェース制御部４から送出される。フリップフロップＲＥＧ２−１は、タイミングＴ２でメモリ素子３２の設定値「１」を取り込み、次のタイミングＴ３でフリップフロップＲＥＧ２−２に対し送出する。
【００４１】
フリップフロップＲＥＧ２−２は、ＯＤＴ信号生成回路７１から出力されるＯＤＴ信号が「０」のときのみ取り込みを行い、以降ホールド状態となる。従って、タイミングＴ３にてフリップフロップＲＥＧ２−２は、「１」を取り込み、タイミングＴ４以降ホールド状態となる。
【００４２】
そして、タイミングＴ５でフリップフロップＲＥＧ−ＯＤＴが「１」となると、その後のタイミングＴ６でメモリ素子３２ＯＤＴ信号が「１」となる。これにより、メモリ素子３２に対するＯＤＴ信号はイネーブル状態となり、メモリ素子３２のＯＤＴが使用可能状態となる。
【００４３】
また、図７に、ＯＤＴ信号が「１」の状態のタイミングで、メモリ終端抵抗制御部７が設定値セット信号とメモリ素子３２設定値を受信した例を示す。この場合、ＯＤＴ信号が「１」であるため、フリップフロップＲＥＧ２−２には取り込まれない。
【００４４】
タイミングＴ５でＯＤＴ信号が「０」に切り替わった後、タイミングＴ６でフリップフロップＲＥＧ２−２に取り込まれる。このため、メモリ素子３２に対するＯＤＴ信号が中途半端な出力になることを防ぐことができる。
【００４５】
なお、上述の説明では、ライト時のＯＤＴ制御について説明しているが、これに限られるものではない。リード時のメモリコントローラ１内のＯＤＴ制御についてもメモリ終端抵抗制御部７と同様な回路を持つことにより動的にＯＤＴの切り替えが可能となる。
【００４６】
以上説明したように、本発明によれば、メモリコントローラ１がメモリ素子３の単位にＯＤＴ信号を有しているので、メモリ素子単位のＯＤＴ制御ができることである。また、診断装置２の診断プログラムエリア内にメモリ素子単位のＯＤＴキャリブレーション結果及びメモリ素子単位との訂正可能エラー情報を保持している。このため、診断装置２が、当該訂正可能エラーが、伝送線起因の障害であると判断することができる。
【００４７】
従って、システム運用中にＯＤＴ未使用のメモリ素子で訂正可能エラーが発生し、診断プログラムにて伝送線路起因のエラーと判断した場合には、診断装置からメモリコントローラに対し、対象となるメモリ素子のＯＤＴを使用する設定に動的に切り替えることが可能となる。これにより、転送信号の品質を向上させ、以降の訂正可能エラーの発生を防ぎ、品質を向上させることが可能となる。
【００４８】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００４９】
１  メモリコントローラ
２  診断装置
３  メモリ素子
４  診断インタフェース制御部
５  ＣＰＵインタフェース制御部
６  メモリコマンド制御部
７  メモリ終端抵抗制御部
８  ＥＣＣ回路
９  メモリデータ制御部
３１、・・・、３ｎ  メモリ素子
７１  ＯＤＴ信号生成回路
ＲＥＧ１−１、・・・、ＲＥＧｎ−１  フリップフロップ（Ｆ／Ｆ）
ＲＥＧ  フリップフロップ
【図１】
2010191761.tif 000003
【図２】
2010191761.tif 000004
【図３】
2010191761.tif 000005
【図４】
2010191761.tif 000006
【図５】
2010191761.tif 000007
【図６】
2010191761.tif 000008
【図７】
2010191761.tif 000009