トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 データ読み出し方法、メモリコントローラ及び半導体集積回路装置
【発明者】 【氏名】熊澤 誠

【要約】 【課題】周囲状況の変化やクロック周波数の変化に因らず安定に外部に接続した装置からの信号をクロック信号に同期してデータを取り込むことができるメモリコントローラを提供すること。

【解決手段】メモリコントローラ21の制御回路22は、タイミング較正処理において、メモリにリードコマンドを発行し、遅延データ選択回路25は、較正信号CALに応答して実施するタイミング較正処理において、リードコマンドに応答したメモリ1からの入力信号を入力し、該信号を機能マクロが取り込み可能なタイミングで出力するためのタイミング情報を記憶し、通常動作時にタイミング情報に基づいてメモリ1からの入力信号に基づくリードデータRDATA−7:0の出力タイミングを調整して機能マクロに出力する。
【特許請求の範囲】
【請求項1】 メモリコントローラを介して外部メモリから内部回路へデータを読み出すデータ読み出し方法であって、前記メモリにデータを読み出すための読み出し信号を出力し、該信号に応答したメモリが出力する読み出しデータを入力し、該読み出しデータを前記内部回路が取り込み可能なタイミングで出力するためのタイミング情報を記憶するタイミング較正処理を実施し、前記メモリコントローラは、通常動作時に前記タイミング情報に基づいて前記メモリからの読み出しデータを前記内部回路に出力することを特徴とするデータ読み出し方法。
【請求項2】 前記タイミング較正処理において、前記メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成し、該複数の遅延信号から前記内部クロック信号に基づいて前記内部回路の取り込みタイミングに適した遅延信号を検出して前記タイミング情報として記憶し、前記メモリコントローラは、通常動作時に前記タイミング情報に基づいて前記複数の遅延信号のうちの1つを選択して前記内部回路へ出力することを特徴とする請求項1記載のデータ読み出し方法。
【請求項3】 前記タイミング較正処理において、前記内部クロック信号をカウントし、前記メモリへの読み出し信号を出力してから前記内部クロック信号に同期して前記読み出しデータが期待値と一致するまでのカウント値を前記タイミング情報として記憶し、前記メモリコントローラは、通常動作時に前記タイミング情報に基づいて前記内部回路が前記読み出しデータを取り込むタイミングを示す受け取り信号を出力することを特徴とする請求項1記載のデータ読み出し方法。
【請求項4】 前記タイミング較正処理において、期待値の第1データを前記メモリの所定の第1アドレスに書き込むとともに、前記期待値と異なる第2データを前記所定アドレスの前後の第2及び第3アドレスに書き込み、前記第2アドレスから前記第3アドレスまで連続して読み出しを行い、第1アドレスの読み出し信号を出力し、前記メモリから読み出された前記第1データに基づいて前記タイミング情報を記憶することを特徴とする請求項1〜3のうちの何れか一項記載のデータ読み出し方法。
【請求項5】 内部回路とともに1つの半導体チップ上に搭載され、外部に接続されたメモリから読み出したデータを内部クロック信号に同期して取り込む内部回路に出力するメモリコントローラにおいて、前記メモリにデータを読み出すための読み出し信号を前記メモリへ出力する制御回路と、前記読み出し信号に応答したメモリが出力するデータを入力し、該データを前記内部回路が取り込み可能なタイミングで出力するためのタイミング情報を記憶し、通常動作時に前記タイミング情報に基づいて前記メモリからの読み出しデータを前記内部回路に出力する遅延データ選択回路を備えたことを特徴とするメモリコントローラ。
【請求項6】 前記遅延データ選択回路は、前記メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成する遅延器と、前記複数の遅延信号と期待値とを比較し、前記期待値と一致する遅延信号から前記内部回路の取り込みタイミングに最適な遅延信号を検出して検出信号を出力し、該検出信号に基づく検出終了信号を出力する最適データ検出回路と、前記複数の遅延信号から前記検出信号に対応する信号を選択して前記読み出しデータとして出力する選択回路と、前記検出終了信号に応答して前記最適データ検出回路の少なくとも一部の動作を停止する制御回路と、を備えたことを特徴とする請求項5記載のメモリコントローラ。
【請求項7】 前記制御回路は、カウンタと記憶回路とを備え、該カウンタは、前記較正信号に応答して、前記タイミング較正処理時に前記内部クロック信号をアップカウントするとともに該カウント値を前記検出終了信号に応答して前記記憶回路に出力し、通常動作時にコマンド出力信号に応答して前記記憶回路から読み出したカウント値から前記内部クロック信号をダウンカウントするとともに該カウント値が所定値と一致するときに前記受け取り信号を出力することを特徴とする請求項6記載のメモリコントローラ。
【請求項8】 期待値の第1データを前記メモリの所定の第1アドレスに書き込むとともに、前記期待値と異なる第2データを前記所定アドレスの前後の第2及び第3アドレスに書き込み、前記第2アドレスから前記第3アドレスまで連続して読み出しを行い、第1アドレスの読み出し信号を出力し、前記遅延データ選択回路は、前記メモリから読み出された前記第1データに基づいて前記タイミング情報を記憶することを特徴とする請求項5〜7のうちの何れか一項記載のメモリコントローラ。
【請求項9】 請求項5〜8のうちの何れか一項記載のメモリコントローラを備えたことを特徴とする半導体集積回路装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明はデータ読み出し方法、メモリコントローラ及び半導体集積回路装置に関するものである。
【0002】近年、半導体集積回路装置は、その動作速度の高速化とともに低消費電力化が進められている。このような半導体集積回路装置とともに使用される半導体記憶装置の動作速度を高速化するために、外部クロックに同期して動作する半導体記憶装置(メモリ)が使用され、半導体集積回路装置にはそのメモリに対して書き込み/読み出しを行う機能マクロとともに、それらを制御する制御回路(メモリコントローラ)が搭載される。メモリからのデータを取り込むタイミングは、周囲状況の変動やアクセスクロックの周波数の変更により変化する。そのため、このような半導体集積回路装置において、メモリからの読み出しの安定化が求められている。
【0003】
【従来の技術】従来、図12に示すように、メモリ1が接続された半導体集積回路装置(LSI)2のチップ上には、CPU3と、メモリ1をアクセスする周辺回路等の内部回路としての機能マクロ4と、そのアクセスを制御する制御回路(メモリコントローラ)5が搭載されている。
【0004】メモリコントローラ5と外部接続されたメモリ1は所定の信号を送受するように、LSIの内部配線と外部配線により接続されている。機能マクロ4は、メモリコントローラ5に対し、アクセス方法を決定するリードライト信号W/R、アクセス要求のためのリクエスト信号REQ、ライトデータWDATA7:0(7:0は、7〜0を示す)、及びアドレス信号A22:0を出力し、メモリコントローラ5は機能マクロ4に対し、リードデータRDATA7〜0とその出力タイミング(機能マクロにとっては入力タイミング)であるアクノリッジ信号ACKを出力する。
【0005】図13は、従来のメモリコントローラ5のブロック回路図を示す。メモリコントローラ5は、制御回路11、出力バッファ12、入力バッファ13、フリップフロップ14を含む。
【0006】制御回路11は、リードライト信号W/Rに基づいて、出力データと入力データが衝突しないようにスリーステートバッファである出力バッファ12を制御する。また、制御回路11は、クロック信号CLK_CONに基づいて生成した内部クロック信号ICLKをフリップフロップ14に出力する。フリップフロップ14は、内部クロック信号ICLKに応答して入力バッファ13からの入力データをラッチし、そのラッチした入力データをリードデータRDATA7:0として図12の機能マクロ4に出力する。更に、制御回路11は、アクノリッジ信号ACKを出力する。
【0007】図14は、キャスレイテンシ(CL)が2に設定されたメモリ1(DRAM)からデータを読み出す場合のタイミング図である。尚、図では、メモリ1とメモリコントローラ5の間で授受される各種信号のタイミングを、それぞれの端子におけるレベルの変化として表し、各種信号を端子の符号を用いて説明する。
【0008】タイミング(−1)でリクエスト信号REQを受け取ったメモリコントローラ5は、クロック信号CLK_CONの立ち上がりに応答してT1サイクルで最初のリードコマンド(RD1)が発行される。メモリ1は、クロック信号CLK_DRやリードコマンドRD1等を受け取り、リードコマンドRD1に応答してリードアドレスBA1のデータ(D1)をデータ信号D_DRとしてクロック信号CLK_DRの立ち上がりから出力の動作に必要な時間tACだけ遅れて出力する。メモリコントローラ5は、データ信号D_CONによりデータD1を受け取る。
【0009】LSI2の内部配線及びそのLSI2とメモリ1とを接続する外部配線は、メモリコントローラ5からメモリ1への各信号に第1遅延時間tD1の遅れを生じさせ、メモリ1からメモリコントローラ5への各信号に第2遅延時間tD2の遅れを生じさせる。
【0010】クロック信号CLK_CONの周期が、第1及び第2遅延時間tD1,tD2に比べて十分に大きい場合、メモリコントローラは2クロック遅れのT3サイクルからデータ信号D_CON(データD1)を取り込めるため、それに合わせてアクノリッジ信号ACKをアサートする。機能マクロ4は、アクノリッジ信号ACKがアサートされると、内部クロック信号ICLKの立ち上がりに応答してデータD1を取り込む。
【0011】CPU3は、LSI2の動作状態等に基づいて、モード切替信号MODEを出力する。機能マクロ間及びメモリコントローラ5は、動作クロックの周波数を低くする。これにより、LSI2の消費電力が低減される。
【0012】
【発明が解決しようとする課題】ところで、LSI2は、更なる動作速度の高速化が求められ、それに対応してクロック信号CLK_CON,CLK_DR,ICLKの周波数が高くなる。これに対し、第1及び第2遅延時間tD1,tD2はLSI2及びメモリ1の配置及び接続配線により決定される。このため、図15に示すように、データ(D_CON)を取り込めるのはT4サイクル以降になるので、制御回路11は、アクノリッジ信号ACKのアサートを1クロック遅らせる必要がある。
【0013】上記第1及び第2遅延時間tD1,tD2は、使用環境の温度変化や製造バラツキにより変動する。遅延時間tD1,tD2が大きくなった場合や、更にクロック信号CLK_CONの周波数が高くなった場合には、図16に示すように、データ(D_CON)の変化点がメモリコントローラの内部クロック信号ICLKの変化点と時間的に近くなることがある。これにより、内部クロック信号ICLKの立ち上がりに対してデータ信号D_CONのセットアップ時間を規定時間だけ確保することができなくなり、データを各サイクルで安定して取り込むことができないという問題がある。
【0014】図17に示すように、更に配線遅延時間tD1,tD2が大きくなるかクロック信号CLK_CONの周波数が高くなった場合には、T5サイクル以降でデータを安定して取り込める。しかし、図15のアクノリッジ信号ACKのタイミングでは、データD1を取り込むことができないため、データを安定して取り込めるように、アクノリッジ信号ACKをアサートするタイミングを変更しなければならないという問題がある。
【0015】このように、配線遅延時間の変動やクロック信号の周波数変更に対するデータの取り込み点(ACK信号をアサートする)タイミングは、従来CPU3によるメモリコントローラ5内部のレジスタ設定やスイッチの切り替え等により行われてきた。
【0016】しかしながら、データ(D_CON)の出力タイミングは、(チップ、使用環境)温度や製造バラツキによりダイナミック(動的)に、また不規則に変化する。このため、配線遅延時間tD1,tD2や、パワーセーブ等の目的でUP/DOWNされるCLK_CONの周波数の変化に対して常に最適な取り込み点(ACK信号をアサートするタイミング)を設定するのは困難であった。
【0017】本発明は上記問題点を解決するためになされたものであって、その目的は周囲状況の変化やクロック周波数の変化に因らず安定に外部に接続した装置からの信号をクロック信号に同期してデータを取り込むことができるデータ読み出し方法、メモリコントローラ及び半導体集積回路装置を提供することにある。
【0018】
【課題を解決するための手段】上記目的を達成するため、請求項1に記載の発明によれば、メモリにデータを読み出すための読み出し信号を出力し、該信号に応答したメモリが出力する読み出しデータを入力し、該読み出しデータを内部回路が取り込み可能なタイミングで出力するためのタイミング情報を記憶するタイミング較正処理を実施し、メモリコントローラは、通常動作時にタイミング情報に基づいてメモリからの読み出しデータを内部回路に出力する。これにより、内部回路は、安定して読み出しデータが取り込める。
【0019】請求項2に記載の発明によれば、タイミング較正処理において、メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成し、該複数の遅延信号から内部クロック信号に基づいて内部回路の取り込みタイミングに適した遅延信号を検出してタイミング情報として記憶し、メモリコントローラは、通常動作時にタイミング情報に基づいて複数の遅延信号のうちの1つを選択して内部回路へ出力する。
【0020】請求項3に記載の発明によれば、タイミング較正処理において、内部クロック信号をカウントし、メモリへの読み出し信号を出力してから内部クロック信号に同期して読み出しデータが期待値と一致するまでのカウント値をタイミング情報として記憶し、メモリコントローラは、通常動作時にタイミング情報に基づいて内部回路が読み出しデータを取り込むタイミングを示す受け取り信号を出力する。
【0021】請求項4,8に記載の発明によれば、タイミング較正処理において、期待値の第1データをメモリの所定の第1アドレスに書き込むとともに、期待値と異なる第2データを所定アドレスの前後の第2及び第3アドレスに書き込み、第2アドレスから第3アドレスまで連続して読み出しを行い、第1アドレスの読み出し信号を出力し、メモリから読み出された第1データに基づいてタイミング情報を記憶する。これにより、タイミング情報の誤記憶を防止する。
【0022】請求項5に記載の発明によれば、制御回路は、メモリにデータを読み出すための読み出し信号をメモリへ出力し、遅延データ選択回路は、読み出し信号に応答したメモリが出力するデータを入力し、該データを内部回路が取り込み可能なタイミングで出力するためのタイミング情報を記憶し、通常動作時にタイミング情報に基づいてメモリからの読み出しデータを内部回路に出力する。これにより、内部回路は、安定して読み出しデータが取り込める。
【0023】遅延データ選択回路は、請求項6に記載の発明のように、メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成する遅延器と、複数の遅延信号と期待値とを比較し、期待値と一致する遅延信号から内部回路の取り込みタイミングに最適な遅延信号を検出して検出信号を出力し、該検出信号に基づく検出終了信号を出力する最適データ検出回路と、複数の遅延信号から検出信号に対応する信号を選択して読み出しデータとして出力する選択回路と、検出終了信号に応答して最適データ検出回路の少なくとも一部の動作を停止する制御回路と、を備える。
【0024】制御回路は、請求項7に記載の発明のように、カウンタと記憶回路とを備え、該カウンタは、較正信号に応答して、タイミング較正処理時に内部クロック信号をアップカウントするとともに該カウント値を検出終了信号に応答して記憶回路に出力し、通常動作時にコマンド出力信号に応答して記憶回路から読み出したカウント値から内部クロック信号をダウンカウントするとともに該カウント値が所定値と一致するときに受け取り信号を出力する。
【0025】請求項9に記載の発明によれば、半導体集積回路装置には、請求項5〜8のうちの何れか一項記載のメモリコントローラが備えられ、メモリからの読み出しデータを内部回路へ出力する出力タイミングが調整される。
【0026】
【発明の実施の形態】以下、本発明を具体化した一実施の形態を図1〜図7に従って説明する。図1は、本実施形態のメモリコントローラ21のブロック回路図であり、このメモリコントローラ21は、図12のメモリコントローラ5に代えて用いられる。
【0027】メモリコントローラ21は、制御回路22、出力バッファ23、入力バッファ24、遅延データ選択回路25から構成される。制御回路22は、図12の内部回路としての機能マクロ4からクロック信号CLKIN、リードライト信号W/R、リクエスト信号REQ及びアドレス信号A−20:0を入力する。制御回路22は、図12のメモリ1をアクセス(読み出し/書き込み)するために、入力信号に基づいて生成したクロック信号DRAMCLK、コマンドを与えるための各種信号XRAS,XCAS,XWE、アドレス信号BA−11:0を出力する。
【0028】制御回路22は、リードライト信号W/Rに基づいて生成したゲート制御信号WTCTLを出力バッファ23に出力する。出力バッファ23はスリーステートバッファであり、制御信号WTCTLに応答して、メモリ1へデータを書き込む(ライトする)場合には機能マクロ4からのライトデータWDATA7:0を増幅して出力し、メモリ1からデータを読み込む(リードする)場合には出力端子をハイインピーダンスにする。
【0029】入力バッファ24はメモリ1からのデータD−7:0を増幅して遅延データ選択回路25に出力する。制御回路22は、クロック信号CLKINに基づいて生成した内部クロック信号ICLKを遅延データ選択回路25に出力する。また、制御回路22は、LSIの動作開始時や所定時間毎に所定レベル(例えばHレベル)の補正信号CALを遅延データ選択回路25に出力する。更に、制御回路22は、メモリ1に対してリードコマンドを発行する時に同タイミングで遅延データ選択回路25に出力するコマンド発行信号RDをアクティブにする。
【0030】遅延データ選択回路25は、入力バッファ24からの入力信号をリードデータRDATA−7:0として機能マクロ4に出力するともに、アクノリッジ信号ACKをアサートする。遅延データ選択回路25は、補正信号CALに応答してリードデータRDATA−7:0及びアクノリッジ信号ACKのタイミング較正処理を実施する。
【0031】タイミング較正処理において、制御回路22は、予めメモリ1に期待値を持つデータを所定アドレスに書き込む。次に、制御回路22は、補正信号CALを遅延データ選択回路に出力し、メモリ1に所定アドレスに対するリードコマンドを発行し、コマンド発行信号RDをアクティブにする。
【0032】遅延データ選択回路25は、入力バッファ24からの入力信号(メモリ1から読み出された期待値を持つリード信号)から遅延時間の異なる複数の遅延信号を生成する。そして、遅延データ選択回路25は、複数の遅延信号から機能マクロ4の入力タイミングに適した信号を選択するとともに、その選択情報とタイミング情報を記憶する。
【0033】通常動作時に、遅延データ選択回路25は、入力バッファ24からの入力信号から生成した複数の遅延信号のうち、記憶した選択情報に対応する1つの遅延信号をリードデータRDATA−7:0として出力し、記憶したタイミング情報に基づいてアクノリッジ信号ACKをアサートする。
【0034】このように、メモリコントローラ21は、タイミング較正処理を実施して機能マクロ4の入力タイミングに合わせてリードデータRDATA−7:0を出力するとともにアクノリッジ信号ACKをアサートする。従って、タイミング較正処理を適宜実施することで、配線遅延時間の変動やクロック信号の周波数変更に因るリードデータRDATA−7:0及びアクノリッジ信号ACKのタイミングと機能マクロ4の読み取りタイミングの相対的なズレを補正する。これにより、機能マクロ4は、リードデータRDATA−7:0を安定して取り込むことができる。
【0035】次に、遅延データ選択回路25の構成を説明する。図2は、遅延データ選択回路25のブロック回路図である。遅延データ選択回路25は、遅延器31、レジスタ32、最適データ検出回路33、制御回路34、選択回路35から構成される。
【0036】図3に示すように、遅延器31は直列に接続された複数(本実施形態では(n−1)個)の遅延セル311 〜31n-1 から構成されている。各遅延セル311〜31n-1 は、入力信号を所定時間td 遅延させた信号を出力する。
【0037】初段の第1遅延セル311 には信号Sin(入力バッファ24の出力信号であり、8ビットの信号)が入力され、その入力信号Sinは第1の遅延信号SD0 として出力される。そして、第1遅延セル311 の出力信号が第2の遅延信号SD1として出力される。同様に、第2遅延セル312 の出力信号が第3の遅延信号SD2 として出力され、第n-1 遅延セル31n-1 の出力信号が第nの遅延信号SDn-1 として出力される。
【0038】このように、遅延器31は、入力信号Sinに基づいて、入力信号Sinに対する遅延時間がそれぞれ異なるn個の遅延信号SD0 〜SDn-1 を生成し、それら第1〜第n遅延信号SD0 〜SDn-1 を最適データ検出回路33に出力する。
【0039】レジスタ32には、予めメモリ1にセットする期待値が記憶され、その期待値はキャリブレーション時に読み出されて最適データ検出回路33に8ビットの比較信号REFとして入力される。
【0040】図4に示すように、最適データ検出回路33は、n個の一致回路411 〜41n 、(n−2)個のアンド回路421 〜42n-1 、フリップフロップ43、優先回路44、オア回路45から構成される。
【0041】各一致回路411 〜41n はEOR回路であり、2つの入力端子A,Bから入力する8ビットの入力信号をEOR演算し、その演算結果を出力端子Xから1ビットの信号として出力する。
【0042】各一致回路411 〜41n の入力端子Aには遅延信号SD0 〜SDn-1 が入力され、入力端子Bには共通に比較信号REFが入力される。従って、各一致回路411 〜41n は、遅延信号SD0 〜SDn-1 と比較信号REFが一致する場合にHレベルの信号を出力する。
【0043】各遅延信号SD0 〜SDn-1 は、第1遅延信号SD0 から第n遅延信号SDn-1 にかけて遅延時間td だけその立ち上がり及び立ち下がりが遅延している信号である。従って、一致回路411 〜41n は、この順番でHレベル又はLレベルの信号を出力する。
【0044】各アンド回路421 〜42n-1 は3入力アンド回路であり、対応する3つの一致回路の出力信号が入力される。即ち、第1アンド回路421 には、対応する第1〜第3一致回路411 〜413 の出力信号が入力され、第2アンド回路422には、対応する第2〜第4一致回路412 〜414 の出力信号が入力される。そして、第n-2 アンド回路には、対応する第n-2 〜第n 一致回路41n-2 〜41nの出力信号が入力される。各アンド回路421 〜42n-2 の出力信号SA1 〜SAn-2 はフリップフロップ回路43に入力される。
【0045】各アンド回路421 〜42n-1 の出力、例えば、アンド回路423 の出力信号SA3 が「1」となることは、即ち遅延器31の出力信号SD2 ,SD3 ,SD4 が全て期待値と一致していることである。「1」を出力するアンド回路の数は、クロックの周期Tとアンド回路421 〜42n-1 の入力数mと遅延時間td により、td ≧T−mtd >0 のとき;1個、2td ≧T−mtd >td のとき;2個、3td ≧T−mtd >2td のとき;3個、4td ≧T−mtd >3td のとき;4個、5td ≧T−mtd >4td のとき;5個、と概算できる。
【0046】フリップフロップ43はラッチ用クロック信号SCKを入力し、そのラッチ用クロック信号SCKに応答して入力信号SA1 〜SAn-2 をラッチして生成した出力信号をSB1 〜SBn-2 を優先回路44に出力する。
【0047】優先回路44は、入力する信号SB1 〜SBn-2 の数より1つ少ない数のゲート回路441 〜44n-3 から構成され、各ゲート回路441 〜44n-3 は、第1番目からそれぞれに対応する第2〜第n-2 番目までの信号SB1 〜SBn-2 を入力する。即ち、第1ゲート回路441 は第1及び第2番目の信号SB1 ,SB2を入力し、第2ゲート442 は第1〜第3番目の信号SB1 〜SB3 を入力する。
【0048】各ゲート回路441 〜44n-3は、対応する第2〜第n-2 番目の信号SB2 〜SBn-2 と、それより前の信号の反転論理を論理積(AND)演算し、その演算結果に基づく検出信号SL1 〜SLn-2 を出力する。これにより、各ゲート回路441 〜44n-3 は、対応する第2〜第n-2 番目の信号SB2 〜SBn-2 より前の信号がHレベルであれば、Lレベルの検出信号SL1 〜SLn-2 を出力する。例えば、第1ゲート回路441 は、第1及び第2番目の信号SB1 ,SB2 がHレベルの場合にLレベルの検出信号SL2 を出力し、第1番目の信号SB1 がLレベル、第2番目の信号SB2 がHレベルの場合にHレベルの検出信号SL2 を出力する。
【0049】このように、優先回路44は、信号SB1 〜SBn-2 を入力し、それら信号SB1 〜SBn-2 に基づいて、1つの信号のみを優先してHレベルとした検出信号SL1 〜SLn-2 を出力する。優先順位は、入力信号SB1 〜SBn-2 の変化する順番に対応している。即ち、入力信号SB1 〜SBn-2 は、各遅延信号SD0〜SDn-1 のうちの複数の信号が比較信号REFと一致することで、その一致する順番にHレベルとなる。更に、入力信号SB1 〜SBn-2 は、各遅延信号SD0 〜SDn-1 それぞれの遅延時間td とパルス幅との関係により、複数の信号がHレベルとなる。これら複数のHレベルの信号のうち、最も早くHレベルとなった信号を優先し、その優先信号にてHレベルの検出信号を出力する。このことは、複数の遅延信号SD0 〜SDn-1 のうち、入力信号Sinにからの遅れが少ない遅延信号を選択するように、各検出信号SL1 〜SLn-2 を生成する。
【0050】オア回路45は検出信号SL1 〜SLn-2 を入力し、それらの論理和演算した結果に基づく検出終了信号SELを出力する。この検出終了信号SELは、検出信号SL1 〜SLn-2 の何れかがHレベルにて出力されるとHレベルとなる。
【0051】図2の制御回路34は、内部クロック信号ICLK、補正信号CAL、コマンド発行信号RD、検出終了信号SELを入力し、それらに基づいて生成したラッチ用クロック信号SCK、アクノリッジ信号ACKを出力する。
【0052】図5に示すように、制御回路34は、アップ/ダウンカウンタ46と記憶回路47とから構成される。アップ/ダウンカウンタ46は、内部クロック信号ICLK、補正信号CAL、コマンド発行信号RDが入力される。
【0053】カウンタ46は、補正信号CALに基づいて、タイミング較正時にはアップカウンタとして動作し、通常動作時にはダウンカウンタとして動作する。そして、タイミング較正時に、カウンタ46は、コマンド発行信号RDに基づくリードコマンド発行から入力する内部クロック信号ICLKをアップカウントするとともに、クロック信号ICLKをラッチ用クロック信号SCKとして出力する。
【0054】このラッチ用クロック信号SCKによって、図4のフリップフロップ43は、その信号SCK即ち内部クロック信号ICLKに同期して各アンド回路421 〜42n-2 の出力信号SA1 〜SAn-2 をラッチする。そして、検出信号SL1 〜SLn-2 は、内部クロック信号ICLKのタイミングに応じた一つの信号のみがHレベルとして出力され、Hレベルの検出終了信号SELを出力する。
【0055】図5のカウンタ46は、Hレベルの検出終了信号SELに応答してラッチ用クロック信号SCKを停止し、その時のカウント値を記憶回路47に記憶する。図4のフリップフロップ43はそのラッチ用クロック信号SCKに応答してラッチ信号即ち出力信号SB1 〜SBn-2 を保持する。従って、制御回路34は、検出終了信号SELに応答してラッチ用クロック信号SCKを停止することで、最適データ検出回路33のフリップフロップ43のラッチ動作を停止させ、その時の出力信号SB1 〜SBn-2 を記憶させる。
【0056】通常動作時において、カウンタ46は、コマンド発行信号RDに基づくリードコマンド発行から、記憶回路47に記憶したカウント値を読み込み、内部クロック信号ICLKに応答してダウンカウントする。そして、カウンタ46は、カウント値が「0」になるとアクノリッジ信号ACKをアサートする。即ち、カウンタ46は、記憶回路47に記憶したカウント値に基づいて、Hレベルの検出終了信号SELの入力タイミングでアクノリッジ信号ACKをアサートする。
【0057】図2の選択回路35は、第2〜第n-1 番目の遅延信号SD1 〜SDn-2 と、選択回路SL1 〜SLn-2 が入力され、Hレベルの検出信号SL1 〜SLn-2 に対応する遅延信号SD1 〜SDn-2 を選択し、その選択信号を出力信号S1として出力する。例えば、第1検出信号SL1 がHレベルの場合、それに対応する第2番目の遅延信号SD1 を選択してそれを信号S1とする。この信号S1が図1のリードデータRDATA−7:0となる。
【0058】このように、遅延データ選択回路25は、遅延器31にて生成した複数の遅延信号SD0 〜SDn-1 から最適データ検出回路33にて期待値と一致しかつ内部クロック信号ICLKに対応する遅延信号を選択し、それをリードデータRDATA−7:0として出力する。このリードデータRDATA−7:0は、入力信号Sinより遅れ、内部クロック信号ICLKに対応している。従って、内部クロック信号ICLKの周波数が変更されても、それのタイミングこのリードデータRDATA−7:0は対応している。従って、図12の機能マクロ4は、内部クロックICLKにてリードデータRDATA−7:0を安定して取り込める。
【0059】図6は、メモリコントローラ21におけるタイミング較正処理のフローチャートである。先ず、キャリブレーションが開始されると、メモリコントローラ21は、図12のメモリ1の任意のアドレス(BA=N)に期待値(ここではAAhだが、他の値でもよい)を書き込み、その前後のアドレス(BA=N−1,N+1)に期待値の反転(期待値がAAhの場合は55h)を書き込む(ステップ51)。これは、次にこれらライトしたデータをリードした時に、期待値がどのタイミングで出るかを検出し、誤判定を防ぐ。即ち、期待値を書き込んだアドレスの前後のアドレスに期待値と同じデータが記憶されている場合、それを読み出したタイミングに間違えて較正することを防ぐためである。
【0060】次に、メモリコントローラ21は、上記の3つのアドレスにリードコマンドを発行する(ステップ52)。そして、メモリコントローラ21は、図2の最適データ検出回路33からの検出終了信号SELが「1」か否かを判断し(ステップ53)、「1」ではない場合は内部クロック信号ICLKの1周期分を待機(ウエイト)し(ステップ54)、ステップ53に戻る。これは、読み出したデータと期待値が一致するのを待つためである。
【0061】そして、検出終了信号SELが「1」の場合、メモリコントローラ21はその時のリードタイミング(図5のカウンタ46のカウント値)を記憶する(ステップ55)。
【0062】次に、上記のように構成されたメモリコントローラの作用を図7に従って説明する。T1〜T3サイクルにおいてメモリ1にリードコマンドを発行すると、そのメモリ1からリードデータD_DRが出力され、そのデータは第2遅延時間tD2遅れてメモリコントローラ21にリードデータD_CONとして入力される。
【0063】メモリコントローラ21は、このリードデータD_CONを図2の入力信号Sin(図3の遅延信号SD0 )とし、それから遅延時間td ずつ遅延させた複数(図において4つ)の遅延信号SD1 〜SD4 を生成する。これら遅延信号SD0〜SD4 と期待値とを比較し、その比較結果の3つを1つずつずらして論理積(AND)演算して信号SA1 〜SA3 を生成する。
【0064】これら信号SA1 〜SA3 をラッチ用クロック信号SCKによりフリップフロップ43にラッチさせ、優先回路44により検出信号SL1 を生成する。この時、検出信号の論理和である検出終了信号SELにより、選択回路45は遅延信号SD1 を選択してこれを信号S1(リードデータRDATA−7:0)として出力する。
【0065】また、メモリコントローラ21は、カウンタ46のカウント値を記憶し、そのカウント値に基づいて通常動作においてアクノリッジ信号ACKをアサートする。このように出力される信号S1は、内部クロック信号ICLKに対して、少なくともtD のセットアップ、ホールドを保証できるため、リードデータRDATA−7:0を安定に内部クロック信号ICLKで取り込むことができる。
【0066】以上記述したように、本実施の形態によれば、以下の効果を奏する。
(1)メモリコントローラ21の制御回路22は、タイミング較正処理において、メモリ1にリードコマンドを発行し、遅延データ選択回路25は、較正信号CALに応答して実施するタイミング較正処理において、リードコマンドに応答したメモリ1からの入力信号Sinを入力し、該信号Sinを機能マクロ4が取り込み可能なタイミングで出力するためのタイミング情報を記憶し、通常動作時にタイミング情報に基づいてメモリ1からの入力信号Sinに基づくリードデータRDATA−7:0の出力タイミングを調整して機能マクロ4に出力するようにした。この結果、機能マクロ4は、周囲状況の変化やクロック周波数の変化に因らず安定して読み出しデータを取り込むことができる。
【0067】(2)遅延データ選択回路25は、遅延器31、最適データ検出回路33、制御回路34、選択回路35を備える。遅延器31は、メモリ1からの入力信号Sinを遅延させて遅延時間の異なる複数の遅延信号SD0 〜SDn-1 を生成する。最適データ検出回路33は、複数の遅延信号SD0 〜SDn-1 と期待値とを比較し、ラッチ用クロック信号SCKに同期して期待値と一致する遅延信号から機能マクロ4の取り込みタイミングに最適な遅延信号を検出して検出信号SL1 〜SLn-2 を出力し、該検出信号SL1 〜SLn-2 に基づく検出終了信号SELを出力する。選択回路35は、複数の遅延信号から検出信号に対応する信号を選択した信号S1を出力する。制御回路34は、較正信号CALに基づくタイミング較正処理において内部クロック信号ICLKに同期したラッチ用クロック信号SCKを出力するとともに該ラッチ用クロック信号SCKを検出終了信号SELに応答して停止して最適データ検出回路33の動作を停止するようにした。その結果、最適なタイミングを容易に検出することができる。
【0068】(3)制御回路34は、アップ/ダウンカウンタ46と記憶回路47とを備える。カウンタ46は、較正信号CALに応答して、タイミング較正処理時に内部クロック信号ICLKをアップカウントするとともに該カウント値を検出終了信号SELに応答して記憶回路47に出力する。また、カウンタ46は、通常動作時にコマンド出力信号RDに応答して記憶回路47から読み出したカウント値から内部クロック信号ICLKをダウンカウントするとともに該カウント値が「0」になるとアクノリッジ信号ACKを出力するようにした。この結果、機能マクロ4がデータを受け取るためのアクノリッジ信号ACKをデータの出力タイミングに容易に合わせてアサートすることができる。
【0069】(4)メモリコントローラ21は、期待値をメモリ1の所定アドレスに書き込むとともに、その期待値を反転した値を所定アドレスの前後に書き込み、それらを読み出すようにした。その結果、期待値を読み出すタイミングを正確に検出でき、タイミングの誤調整を防止することができる。
【0070】尚、前記実施形態は、以下の態様に変更してもよい。
・上記実施形態において、タイミング較正処理(キャリブレーション)を、LSIの初期化時、所定時間毎、クロック周波数変更時、温度変化検出時等の適宜のタイミングで行うようにしてもよい。
【0071】・上記実施形態では、タイミング較正時にメモリコントローラ21からメモリ1に較正用データを書き込むようにしたが、図8に示すように、メモリ1の記憶領域61に較正用データを保持しておく領域62,63,64を確保してもよい。このようにすれば、図6のステップ51における期待値の書き込みを最初のタイミング較正時のみ行えばよく、任意のタイミングで実行するタイミング較正処理に要する時間を短縮することができる。
【0072】・上記実施形態において、メモリ1にDRAMを用い、定期的にタイミング較正処理を実施する場合、処理毎にロウアドレスを変更してメモリ1をアクセスし、一定期間(DRAMのリフレッシュ時間の規格)内に全てのロウアドレスについてタイミング較正処理を実行する。例えば、図9はロウ数R、カラム数CのDRAMを示し、この場合、毎回ロウアドレスを変えて計R回のキャリブレーションを行う。このことで、メモリ1のリフレッシュを省略できる。なぜなら、一定期間に全てのロウアドレスをアクティブにすることが即ちリフレッシュであるからである。
【0073】・上記実施形態では、メモリ1の入出力単位を8ビット(リードデータRDATA−7:0)とした、8ビット単位でタイミング較正処理を実施したが、1ビット以上の任意のビット単位でタイミング較正処理を実施してもよい。
【0074】・上記実施形態の優先回路44は、フリップフロップ43の出力信号SB1 〜SBn-2 のうち、最も遅延時間の少ない信号を優先するように較正したが、例えば2番目のように任意の信号を優先する優先回路を用いて実施してもよい。このようにすれば、リードデータのマージンを増すことができる。
【0075】・上記実施形態の遅延データ選択回路25の構成を適宜変更しても良い。例えば、図10に示すように構成した遅延データ選択回路71を用いて実施してもよい。この遅延データ選択回路71は、遅延器31、レジスタ32、一致検出回路72、制御回路73、マイコン74、選択回路75から構成される。一致検出回路72は、図11に示すように、図4の優先回路44が省略されている。即ち、一致検出回路72は、遅延器31にて生成した複数の遅延信号SD0 〜SDn-1とレジスタ72からの期待値とが一致するか否かを検出し、その検出信号SB1〜SBn-2 をマイコン74に出力する。また、オア回路45は、検出信号SB1〜SBn-2 を論理和した検出終了信号SELを制御回路73に出力する。
【0076】制御回路73は図5の制御回路34と同様に構成され、検出終了信号SELに応答してラッチ用クロック信号SCKを停止して一致検出回路72の一部(フリップフロップ43)の動作を停止させる。更に、制御回路73は、通常動作時に内部クロック信号ICLKをカウントしてアクノリッジ信号ACKを出力する。
【0077】図10のマイコン74は、検出信号SB1 〜SBn-2 に基づいて、どの遅延時間によるデータを選択するかを判断するプログラムを実行し、その実行結果に基づくセレクト信号を選択回路75に出力する。選択回路75は、セレクト信号に基づいて、入力する遅延信号SD1 〜SDn-2 のうちの1つを選択し、その選択した信号を信号S1として出力する。
【0078】・上記実施形態において、LSIチップ上にCPU3を搭載したが、CPU3が別のチップに搭載されていてもよい。また、機能マクロ4がCPUであってもよい。
【0079】・上記実施形態の補正信号CALを制御回路22以外、例えばCPU3(図12参照)から出力する、LSI2に信号生成回路を備える、LSI2の外部から供給する、等に変更して実施してもよい。
【0080】・上記実施形態の最適データ検出回路33(一致検出回路72)を構成するアンド回路421 〜42n-2 の入力数を変更して実施してもよい。例えば、4入力とすると、対応する4つの遅延信号が期待値と一致する場合にHレベルの信号を出力する。このように入力数を増やせば、保証できるセットアップ、ホールド量も増加させることができる。
【0081】・上記実施形態では、最適データ検出回路33を構成するフリップフロップ43にてアンド回路421 〜42n-2 の出力信号、即ち検出信号SL1 〜SLn-2を保持するようにしたが、例えば図2において最適データ検出回路33と選択回路35の間に検出信号SL1 〜SLn-2 を保持するフリップフロップを設けてもよい。
【0082】・上記実施形態では、最適データ検出回路33のフリップフロップ43に供給するラッチ用クロック信号SCKを最適データ検出後(検出終了信号SELの入力後)は停止するようにしたが、フリップフロップ43と優先回路44の間、又は優先回路44の後段にラッチ回路を設け、フリップフロップ43に内部クロック信号ICLKを供給し、ラッチ回路に検出終了信号SELに基づくラッチ信号を与えて検出信号SL1 〜SLn-2 を保持するようにしても良い。
【0083】・上記実施形態では、レジスタ32に予め期待値を記憶したが、これを例えば図12のCPU3等から記憶させるようにしてもよい。また、期待値及びその反転した値を、メモリコントローラ21がレジスタ32に記憶した期待値を読み出してメモリ1に書き込む、又は例えばCPU3が期待値をメモリ3に書き込むようにしてもよい。
【0084】・上記実施形態において、図2の制御回路は、最適データ検出回路33の少なくとも一部の動作を停止させれば良く、例えば図4の一致回路411 〜41n の動作を停止させるように構成してもよい。また、フリップフロップ43と一致回路411 〜41n の動作を停止させるように構成してもよい。
【0085】以上の様々な実施の形態をまとめると、以下のようになる。
(付記1) メモリコントローラを介して外部メモリから内部回路へデータを読み出すデータ読み出し方法であって、前記メモリにデータを読み出すための読み出し信号を出力し、該信号に応答したメモリが出力する読み出しデータを入力し、該読み出しデータを前記内部回路が取り込み可能なタイミングで出力するためのタイミング情報を記憶するタイミング較正処理を実施し、前記メモリコントローラは、通常動作時に前記タイミング情報に基づいて前記メモリからの読み出しデータを前記内部回路に出力することを特徴とするデータ読み出し方法。
(付記2) 前記タイミング較正処理において、前記メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成し、該複数の遅延信号から前記内部クロック信号に基づいて前記内部回路の取り込みタイミングに適した遅延信号を検出して前記タイミング情報として記憶し、前記メモリコントローラは、通常動作時に前記タイミング情報に基づいて前記複数の遅延信号のうちの1つを選択して前記内部回路へ出力することを特徴とする付記1記載のデータ読み出し方法。
(付記3) 前記タイミング較正処理において、前記内部クロック信号をカウントし、前記メモリへの読み出し信号を出力してから前記内部クロック信号に同期して前記読み出しデータが期待値と一致するまでのカウント値を前記タイミング情報として記憶し、前記メモリコントローラは、通常動作時に前記タイミング情報に基づいて前記内部回路が前記読み出しデータを取り込むタイミングを示す受け取り信号を出力することを特徴とする付記1記載のデータ読み出し方法。
(付記4) 前記タイミング較正処理において、前記メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成し、該複数の遅延信号から前記内部クロック信号に基づいて前記内部回路の取り込みタイミングに適した遅延信号を検出した検出信号と、前記内部クロック信号をカウントし、前記メモリへの読み出し信号を出力してから前記内部クロック信号に同期して前記読み出しデータが期待値と一致するまでのカウント値を前記タイミング情報として記憶し、前記メモリコントローラは、通常動作時に前記タイミング情報に基づいて前記複数の遅延信号のうちの1つを選択して前記内部回路へ出力するとともに、前記タイミング情報に基づいて前記内部回路が前記読み出しデータを取り込むタイミングを示す受け取り信号を出力することを特徴とする付記1記載のデータ読み出し方法。
(付記5) 前記メモリからの入力信号を遅延させて遅延時間が異なる複数の遅延信号を生成し、該複数の遅延信号の値と期待値とを比較し、前記期待値と一致する遅延信号を前記内部クロック信号に同期して取出し、該取り出した複数の遅延信号のうちの1つを優先して検出信号を生成し、該検出信号に対応する前記複数の遅延信号のうちの1つを前記内部回路へ出力することを特徴とする付記1〜4のうちの何れか一項記載のデータ読み出し方法。
(付記6) 前記タイミング較正処理を、初期化時に実施することを特徴とする付記1記載のデータ読み出し方法。
(付記7) 前記タイミング較正処理を、定期的に実施することを特徴とする付記1記載のデータ読み出し方法。
(付記8) 前記タイミング較正処理において、期待値の第1データを前記メモリの所定の第1アドレスに書き込むとともに、前記期待値と異なる第2データを前記所定アドレスの前後の第2及び第3アドレスに書き込み、前記第2アドレスから前記第3アドレスまで連続して読み出しを行い、第1アドレスの読み出し信号を出力し、前記メモリから読み出された前記第1データに基づいて前記タイミング情報を記憶することを特徴とする付記1〜7のうちの何れか一項記載のデータ読み出し方法。
(付記9) 内部回路とともに1つの半導体チップ上に搭載され、外部に接続されたメモリから読み出したデータを内部クロック信号に同期して取り込む内部回路に出力するメモリコントローラにおいて、前記メモリにデータを読み出すための読み出し信号を前記メモリへ出力する制御回路と、前記読み出し信号に応答したメモリが出力するデータを入力し、該データを前記内部回路が取り込み可能なタイミングで出力するためのタイミング情報を記憶し、通常動作時に前記タイミング情報に基づいて前記メモリからの読み出しデータを前記内部回路に出力する遅延データ選択回路を備えたことを特徴とするメモリコントローラ。
(付記10) 前記遅延データ選択回路は、前記メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成する遅延器と、前記複数の遅延信号と期待値とを比較し、前記期待値と一致する遅延信号から前記内部回路の取り込みタイミングに最適な遅延信号を検出して検出信号を出力し、該検出信号に基づく検出終了信号を出力する最適データ検出回路と、前記複数の遅延信号から前記検出信号に対応する信号を選択して出力する選択回路と、前記検出終了信号に応答して前記最適データ検出回路の少なくとも一部の動作を停止する制御回路と、を備えたことを特徴とする付記9記載のメモリコントローラ。
(付記11) 前記制御回路は、カウンタと記憶回路とを備え、該カウンタは、前記較正信号に応答して、タイミング較正処理時に前記内部クロック信号をアップカウントするとともに該カウント値を前記検出終了信号に応答して前記記憶回路に出力し、通常動作時にコマンド出力信号に応答して前記記憶回路から読み出したカウント値から前記内部クロック信号をダウンカウントするとともに該カウント値が所定値と一致するときに前記受け取り信号を出力することを特徴とする付記10記載のメモリコントローラ。
(付記12) 前記最適データ検出回路は、前記複数の遅延信号がそれぞれ入力されるとともに前記期待値が入力される複数の一致回路と、前記複数の一致回路の出力信号を複数入力するアンド回路と、前記ラッチ用クロック信号に基づいて前記各アンド回路の出力信号をラッチするフリップフロップと、前記遅延信号に対応した優先順位にて前記フリップフロップの出力信号のうちの1つを優先して前記複数の検出信号を生成する優先回路と、前記複数の検出信号を論理和演算して前記検出終了信号を生成するオア回路と、を備えたことを特徴とする付記10記載のメモリコントローラ。
(付記13) 前記遅延データ選択回路は、前記メモリからの入力信号を遅延させて遅延時間の異なる複数の遅延信号を生成する遅延器と、前記複数の遅延信号と期待値とを比較し、前記期待値と一致する遅延信号をラッチして複数の検出信号を出力し、該検出信号に基づく検出終了信号を出力する一致検出回路と、前記複数の検出信号から前記内部回路の取り込みタイミングに最適な遅延信号を選択するように生成した選択信号を出力するマイコンと、前記選択信号に応答して前記複数の遅延信号から選択した信号を出力する選択回路と、前記検出終了信号に応答して前記一致検出回路の少なくとも一部の動作を停止する制御回路と、を備えたことを特徴とする付記9記載のメモリコントローラ。
(付記14) 期待値の第1データを前記メモリの所定の第1アドレスに書き込むとともに、前記期待値と異なる第2データを前記所定アドレスの前後の第2及び第3アドレスに書き込み、前記第2アドレスから前記第3アドレスまで連続して読み出しを行い、第1アドレスの読み出し信号を出力し、前記遅延データ選択回路は前記メモリから読み出された前記第1データに基づいて前記タイミング情報を記憶することを特徴とする付記9〜13のうちの何れか一項記載のメモリコントローラ。
(付記15) 付記9〜14のうちの何れか一項記載のメモリコントローラを備えたことを特徴とする半導体集積回路装置。
【0086】
【発明の効果】以上詳述したように、本発明によれば、周囲状況の変化やクロック周波数の変化に因らず安定に外部に接続した装置からの信号をクロック信号に同期してデータを取り込むことができるデータ読み出し方法、メモリコントローラ及び半導体集積回路装置を提供することができる。
【出願人】 【識別番号】000005223
【氏名又は名称】富士通株式会社
【識別番号】000237617
【氏名又は名称】富士通ヴィエルエスアイ株式会社
【出願日】 平成12年10月3日(2000.10.3)
【代理人】 【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣 (外1名)
【公開番号】 特開2002−108693(P2002−108693A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−303554(P2000−303554)