(57)【要約】【課題】周波数変調を行うことなく、タイミング設計を容易に行えるようにする。【解決手段】ライトデータキュー２０１は、バーストライトを行うときに、ライトデータ群を保持する。ライトデータ生成回路３０１は、ライトデータ群の各ビートのデータが２種類のデータのみから構成されている場合に、２種類のデータを一方のデータと他方のデータとに分割する。ライトデータ生成回路３０１は、一方のデータと他方のデータとをデータ信号６０１として個別にメモリデバイス９００に送信する。マスク信号生成回路３０２は、判定フラグ信号５０２、５０２の結果に基づいて、ライトデータ生成回路３０１により送信されたデータの一部をマスクするためのマスク信号を生成してメモリデバイス９００に送信する。このように２回のバーストライトを行い、そのバーストライトにおける有効ビットをマスク信号６０２で指定する。【選択図】図１
2008015699.tif 000002
【特許請求の範囲】
【請求項１】
バーストライトを行うことが可能であり、書き込みのマスク制御をビート毎に行うことが可能であるメモリコントローラであって、メモリデバイスを制御するメモリコントローラにおいて、
前記バーストライトを行うときに、ライトデータ群を保持する保持手段と、
前記ライトデータ群の各ビートのデータが２種類のデータのみから構成されている場合に、それら２種類のデータを一方のデータと他方のデータとに分割する分割手段と、
前記分割手段により分割された一方のデータでのバーストライトと、他方のデータでのバーストライトとの２回のバーストライトを行うバーストライト手段と、
前記バーストライト手段によりバーストライトされるデータの一部をマスクするためのマスク信号を生成するマスク信号生成手段とを有し、
前記バーストライト手段によりバーストライトされるデータの有効ビットが、前記マスク信号生成手段により生成されたマスク信号に基づいて指定されるようにすることで要求メモリアドレスに対するデータの書き込みを実現することを特徴とするメモリコントローラ。
【請求項２】
前記２種類のデータの組み合わせは、互いに全ビットが反転されたデータであることを特徴とする請求項１に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＭＩ(Electro Magnetic Interference、電磁妨害)や、同時スイッチングノイズ（ＳＳＯ：Simultaneous Switching Output noise）を抑制する技術に関する。
【背景技術】
【０００２】
半導体プロセスの向上により、ＬＳＩの集積度や動作周波数は飛躍的に向上している。このＬＳＩを使用した機器の処理能力も飛躍的に向上している。
ＬＳＩの動作周波数の向上により、ＬＳＩの電磁放射も大きくなり、ＥＭＩ（electro magnetic interference）の対策が困難になってきている。ＬＳＩの動作周波数が高くなると、クロック信号に含まれる高調波成分が大きくなり、高調波成分の放射が増大する。
【０００３】
ＥＭＩの対策として、スペクトラム拡散クロックジェネレータ、ＳＳＣＧ（Spread Spectrum Clock Generator）が使用されている。
ＳＳＣＧは、ＬＳＩのクロック周波数を僅かに変動させて発振させる（周波数変調を行う）ことによって、ＥＭＩのピークを低く抑える働きをする。
【０００４】
また、ＬＳＩの動作周波数の向上に伴い、ＬＳＩにおける信号の品質、いわゆるシグナル・インテグリティーをいかに確保するかが重要になっている。
ＬＳＩチップ上のトランジスタがスイッチングすると、電源／グラウンド配線に高周波電流が流れる。この結果、電源／グラウンド配線に雑音（ノイズ）が発生する。いわゆる電源バウンス及びグラウンドバウンスである。このノイズはスイッチングするトランジスタの数に比例して大きくなる。
ＬＳＩチップに集積された数多くのトランジスタが同時にスイッチングすることによって生じる大きな電源バウンスやグラウンドバウンスを同時スイッチグノイズ（ＳＳＯノイズ）と呼んでいる。
【０００５】
【特許文献１】特開平１１−３０１０１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ＬＳＩの動作周波数と集積度との向上により、ノイズは増加している。その一方で、ＬＳＩの電源電圧の低下と動作周波数の向上とによりノイズマージンが減少している。
しかしながら、周波数変調を行ってＥＭＩの対策を行う従来の方法では、ＥＭＩに対する充分な効果を得ようとして周波数変調を大きくすると、発振の安定化が損なわれてしまう。従って、ＤＤＲ−ＳＤＲＡＭといった高速のメモリアクセスを実現するデバイスの制御等を行うためのタイミング設計が困難になるという問題がある。
【０００７】
本発明は、このような問題点に鑑みてなされたものであり、周波数変調を行うことなく、タイミング設計を容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は上記問題を解決するために、バーストライトを行うことが可能であり、書き込みのマスク制御をビート毎に行うことが可能であるメモリコントローラであって、メモリデバイスを制御するメモリコントローラにおいて、前記バーストライトを行うときに、ライトデータ群を保持する保持手段と、前記ライトデータ群の各ビートのデータが２種類のデータのみから構成されている場合に、それら２種類のデータを一方のデータと他方のデータとに分割する分割手段と、前記分割手段により分割された一方のデータでのバーストライトと、他方のデータでのバーストライトとの２回のバーストライトを行うバーストライト手段とを有し、前記バーストライト手段によりバーストライトされるデータの一部をマスクするためのマスク信号を生成するマスク信号生成手段とを有し、前記バーストライト手段によりバーストライトされるデータの有効ビットが、前記マスク信号生成手段により生成されたマスク信号に基づいて指定されるようにすることで要求メモリアドレスに対するデータの書き込みを実現することを特徴とするメモリコントローラ等を提供する。
【発明の効果】
【０００９】
本発明によれば、ライトデータ群の各ビートのデータが２種類のデータのみから構成されており、好ましくはそれら２種類のデータの組み合わせが全ビット反転したものである場合に、ライトデータをマスク信号で制御する。このため、バーストライト時に同時に変化する信号数を減らし、ノイズを減らすことが可能となる。その結果、周波数変調を行うことなく、タイミング設計を容易に行うことが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下に、図面を参照しながら、本発明の一実施形態について説明する。
図１は、本実施形態のメモリコントローラの構成の一例を示した図である。
図２は、メモリコントローラが出力するコマンド、データ、及びマスク信号の波形（メモリコントローラの出力信号）と、データが切り替わるときに発生するノイズ量とを示した図である。
【００１１】
図１において、１００はメモリコントローラである。２００はデータ判定回路である。
２０１は、バーストライトのライトデータ群を保持するライトデータキューである。
２０２、２０３は、ライトデータ群と比較するデータパターンである。データパターンの指定方法や数は任意である。本実施形態のメモリコントローラ１００は、データパターン設定用レジスタを有し、データパターン２０２、２０３は、システムの起動直後に設定されるものとする。
【００１２】
２０４は、ライトデータキュー２０１内のライトデータ群と、データパターン２０２とを比較するデータ比較回路である。データ比較回路２０４は、ライトデータキュー２０１内のライトデータ群と、データパターン２０２とが一致すると判定フラグ信号５０２をセットする。
２０５は、ライトデータキュー２０１内のライトデータ群と、データパターン２０３とを比較するデータ比較回路である。データ比較回路２０５は、ライトデータキュー２０１内のライトデータ群と、データパターン２０３とが一致すると判定フラグ信号５０３をセットする。
【００１３】
３００はデータ制御回路である。
３０１はライトデータ生成回路である。ライトデータ生成回路３０１は、判定フラグ信号５０２、５０３の何れかがセットされた場合に、ライトデータキュー２０１から受け取ったデータ信号５０１に基づいて、ライトデータキュー２０１で保持されているライトデータ群を分割する。そして、ライトデータ生成回路３０１は、分割したライトデータ群に基づくデータ信号６０１を出力する。ライトデータ生成回路３０１は、２種類のデータから構成されるライトデータ群のうち、一方のデータでのバーストライトと、他方のデータでのバーストライトとの２回のバーストライトを行う。また、ライトデータ生成回路３０１は、判定フラグ信号５０２、５０３の何れもがセットされなかった場合には、ライトデータ群５０１を分割することなく、１回のバーストライトを行う。
３０２は、判定フラグ信号５０２、５０３の何れかがセットされた場合に、どの判定フラグ信号がセットされているかによって、マスク信号６０２を生成するマスク信号生成回路である。
【００１４】
４００はコマンド制御回路である。
４０１は、判定フラグ信号５０２、５０３の何れかがセットされた場合に、受け取ったコマンド（ライトコマンド）信号８０２を保持し、保持したコマンド信号に基づくコマンド信号６０３を２回繰り返して発行するコマンド生成回路である。
【００１５】
５０１は、ライトデータキュー２０１のライトデータ群をライトデータ生成回路３０１へ送信するためのデータ信号である。
５０２は、データ比較回路２０４の比較結果をライトデータ生成回路３０１、マスク信号生成回路３０２、及びコマンド生成回路４０１へ伝達する判定フラグ信号である。
５０３は、データ比較回路２０５の比較結果をライトデータ生成回路３０１、マスク信号生成回路３０２、及びコマンド生成回路４０１へ伝達する判定フラグ信号である。
【００１６】
６０１は、ライトデータ生成回路３０１で生成されたライトデータをメモリデバイス９００へ出力するためのデータ信号である。ここではデータ信号６０１が８ビット幅の信号であるものとする。
６０２は、マスク信号生成回路３０２で生成されたマスク信号をメモリデバイス９００へ出力するためのマスク信号である。ここでは８ビットのデータに対して１ビットのマスク信号６０２があるものとする。
６０３は、コマンド生成回路４０１で生成されたコマンドをメモリデバイス９００へ出力するコマンド信号である。
【００１７】
８０１は、メモリコントローラ１００に入力されたライトデータ群をライトデータキュー２０１に送信するためのデータ信号である。
８０２は、メモリコントローラ１００に入力されたコマンドをコマンド制御回路４００に送信するためのコマンド信号である。
９００は、メモリコントローラ１００に接続されたメモリデバイスである。
【００１８】
メモリコントローラ１００からメモリデバイス９００へバーストライトを行う場合の動作を以下に説明する。
データ信号８０１に基づいてライトデータ群がライトデータキュー２０１にライトされる。本実施形態では、１バイトのデータの４ビートのバーストを想定する。また、コマンド信号８０２に基づいてライトのコマンドがコマンド制御回路４００に入力される。
データ比較回路２０４は、ライトデータキュー２０１にライトされたライト要求データである４つの１バイトのデータ（１バイトデータ×４）と、データパターン２０２とを比較する。これらが一致する場合、データ比較回路２０４は、判定フラグ信号５０２をセットする。例えば、ライト要求データが0xFF、0x00、0xFF、0x00であり、データパターン２０２が0xFF、0x00、0xFF、0x00であったとすると、データ比較回路２０４は判定フラグ信号５０２をセットする。
【００１９】
データ比較回路２０５は、ライトデータキュー２０１にライトされたライト要求データと、データパターン２０３とを比較する。これらが一致する場合、データ比較回路２０５は、判定フラグ信号５０３をセットする。例えば、ライト要求データが0xFF、0x00、0xFF、0x00であり、データパターン２０３が0x00、0xFF、0x00、0xFFであったとすると、データ比較回路２０５は判定フラグ信号５０３をセットしない。
【００２０】
判定フラグ信号５０２がセットされ、判定フラグ信号５０３がセットされていない状態であると、コマンド生成回路４０１は、コマンド信号８０２に含まれるライトコマンドを保持する。また、コマンド生成回路４０１は、そのライトコマンドに基づくコマンド信号６０３をメモリデバイス９００に出力する。ここで出力されるコマンドは、図２の１つ目のライトコマンド（Ｗ）に相当する。
【００２１】
ライトデータ生成回路３０１は、データ信号５０１に含まれるライトデータ群を受け取り、判定フラグ信号５０２がセットされていることを受けて、２つのデータを生成する。
ここで生成される２つのデータはライトデータ群を構成する２種類のデータである。ライトデータ生成回路３０１は、まず、１ビート目のデータを１つ目のデータとして設定し、次に２ビート目のデータが１つ目のデータと異なっていれば、２ビート目のデータを２つ目のデータとして設定する。
一方、２ビート目のデータが１つ目のデータと一致していた場合、ライトデータ生成回路３０１は、１つ目のデータを３ビート目、４ビート目と順番に比較し、１つ目のデータと異なるデータを見つけたところで、そのデータを２つ目のデータとして設定する。
【００２２】
ここでは、１つ目のデータとして0xFFが設定され、２つ目のデータとして、0x00が設定される。
次に、データ信号６０１として４ビートのデータ（0xFF）を出力する。ここで出力されるデータは、図２の１つ目のデータに相当する。
【００２３】
マスク生成回路３０２は、判定フラグ信号５０２がセットされていることを受けて、１つ目のライトデータ（0xFF）に対して１ビート目と３ビート目とのデータを有効にし、２ビート目と４ビート目とを無効にするマスク信号（0101）を生成する。そしてマスク生成回路３０２は、生成したマスク信号６０２をメモリデバイス９００に出力する。
ここで出力されるマスク信号６０２は、図２の１つ目の４ビートのデータの転送時のマスク信号に相当する。
【００２４】
１つ目の４ビートのデータの転送が完了すると、コマンド生成回路４０１は保持していたライトコマンドを再度発行する。ここで発行されるライトコマンドは、図２の２つ目のライトコマンド（Ｗ）に相当する。
ライトデータ生成回路３０１は、生成した２つ目のデータ（0x00）をデータ信号６０１として４ビートで出力する。ここで出力されるデータは、図２の２つ目のデータに相当する。
【００２５】
マスク生成回路３０２は、２つ目のデータに対して２ビート目と４ビート目とのデータを有効にし、１ビート目と３ビート目とを無効にするマスク信号（1010）を生成する。そしてマスク生成回路３０２は、生成したマスク信号６０２をメモリデバイス９００に出力する。
ここで出力されるマスク信号６０２は、図２の２つ目の４ビートのデータの転送時のマスク信号に相当する。
【００２６】
以上述べたように、ライトデータキュー２０１は、バーストライトを行うときに、ライトデータ群を保持する。ライトデータ生成回路３０１は、ライトデータ群の各ビートのデータが２種類のデータのみから構成されている場合に、それら２種類のデータを一方のデータと他方のデータとに分割する。ライトデータ生成回路３０１は、一方のデータと、他方のデータとをデータ信号６０１として個別にメモリデバイス９００に送信する。マスク信号生成回路３０２は、判定フラグ信号５０２、５０２の結果に基づいて、ライトデータ生成回路３０１により送信されたデータの一部をマスクするためのマスク信号６０２を生成してメモリデバイス９００に送信する。
このように本実施形態では、２回のバーストライトを行い、その有効ビットをマスク信号６０２で指定することにより、正しくライト動作を実行することができる。従って、同時に変化する信号数を減らし、ノイズを減らすことが可能となる。その結果、周波数変調を行うことなく、タイミング設計を容易に行うことが可能となる。
【００２７】
図３は、従来のメモリコントローラが出力するコマンド、データ、及びマスク信号の波形（メモリコントローラの出力信号）と、データが切り替わるときに発生するノイズ量とを示した図である。図２と図３とから明らかなように、本実施形態の手法（図２）では、１度に切り替わる信号線の数を減らしているので、従来の手法（図３）と比較して、ノイズ量が減少する。
【００２８】
（本発明の他の実施形態）
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給してもよい。そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００２９】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。また、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００３０】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでない。そのプログラムコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００３１】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードに備わるＣＰＵが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
また、供給されたプログラムコードがコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいて機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００３２】
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施形態を示し、メモリコントローラの構成の一例を示した図である。
【図２】本発明の実施形態を示し、メモリコントローラの出力信号とノイズ量との一例を表した図である。
【図３】従来の技術を示し、メモリコントローラの出力信号とノイズ量とを示した図である。
【符号の説明】
【００３４】
１００  メモリコントローラ
２００  データ判定回路
２０１  ライトデータキュー
２０２、２０３  データパターン
２０４、２０５  データ比較回路
３００  データ制御回路
３０１  ライトデータ生成回路
３０２  マスク信号生成回路
４００  コマンド制御回路
４０１  コマンド生成回路
５０１  データ信号
５０２、５０３  判定フラグ信号
６０１  データ信号
６０２  マスク信号
６０３  コマンド信号
８０１  データ信号
８０２  コマンド信号
９００  メモリデバイス
【図１】
2008015699.tif 000003
【図２】
2008015699.tif 000004
【図３】
2008015699.tif 000005