(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、データストローブ信号を用いてデータの送受信を行う場合には、データストローブ信号を生成するための生成回路や、クロックとデータストローブ信号との位相を調整するためのタイミング調整回路が必要となるため、回路設計が複雑化するとともに、製造コスト及び回路規模が増大する。また、メモリシステムの実使用時にはこれらの回路のキャリブレーションが必要となる場合があるため、製造効率が低下する。
【0006】
本発明はかかる事情に鑑みて成されたものであり、ホスト装置とそれに接続されるメモリ装置とを備えるメモリシステムにおいて、両装置間の高速化通信を低コストかつ簡易に実現することが可能なメモリシステムを得ることを目的とするものである。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係るメモリシステムは、ホスト装置と、前記ホスト装置に接続されるメモリ装置と、を備え、前記ホスト装置は、第1のクロックに同期して前記メモリ装置へのコマンド送信を制御する送信制御回路と、第2のクロックに同期して前記メモリ装置からのデータ受信を制御する受信制御回路と、
前記送信制御回路及び前記受信制御回路を制御する主制御回路と、を有し、前記メモリ装置は、データが格納されたメモリアレイと、前記メモリアレイへのアクセスを制御する制御回路と、を有し、前記送信制御回路は、第1のクロックを前記制御回路に送信し、前記制御回路は、前記送信制御回路から受信した第1のクロックを第2のクロックとして前記受信制御回路に送信
し、前記主制御回路は、前記ホスト装置と前記メモリ装置との間の伝搬遅延量に基づいて、所定の補正値を決定し、前記送信制御回路は、前記主制御回路から入力された前記補正値に基づいて、前記メモリ装置からのデータ受信が開始されてから当該データ受信が完了するまでの第1のクロックのサイクル数を補正することを特徴とするものである。
【0008】
第1の態様に係るメモリシステムによれば、メモリ装置の制御回路は、ホスト装置の送信制御回路から受信した第1のクロックをフィードバックすることにより、第2のクロックとしてホスト装置の受信制御回路に送信する。そして、受信制御回路は、フィードバックされた第2のクロックに同期してメモリ装置からのデータ受信を制御する。従って、第1及び第2のクロックとは別のデータストローブ信号を新たに生成する必要がないため、データストローブ信号の生成回路やタイミング調整回路の実装を省略でき、その結果、ホスト装置とメモリ装置との間の高速化通信を低コストかつ簡易に実現することが可能となる。また、第1のクロックを第2のクロックとしてフィードバックしているため、メモリアレイから読み出したデータを第2のクロックに同期してメモリ装置からホスト装置に送信する際に、配線遅延及びバッファ遅延に伴う伝搬遅延量を第2のクロックとデータとで実質的に相殺でき、その結果、データの損失を防止することが可能となる。
また、第1の態様に係るメモリシステムによれば、ホスト装置の主制御回路は、ホスト装置とメモリ装置との間の伝搬遅延量に基づいて所定の補正値を決定し、送信制御回路は、当該補正値に基づいて、メモリ装置からのデータ受信が開始されてからデータ受信が完了するまでの第1のクロックのサイクル数を補正する。このように、不定の伝搬遅延量から決定された補正値に基づいて、通信プロトコルで規定された固定サイクル数を補正することにより、固定サイクル数を過不足なく確保でき、その結果、システムを正常に動作させることが可能となる。
【0011】
本発明の第
2の態様に係るメモリシステムは、第
1の態様に係るメモリシステムにおいて特に、前記送信制御回路は、第1のクロックのサイクル数をカウントする第1のカウンタを含み、前記受信制御回路は、第2のクロックのサイクル数をカウントする第2のカウンタを含み、前記主制御回路は、前記メモリ装置へのコマンド送信が完了してから、前記メモリ装置からReady信号を受信するまでの前記第1のカウンタのカウント値と、前記メモリ装置から最初のBusy信号を受信してから、前記メモリ装置からReady信号を受信するまでの前記第2のカウンタのカウント値とに基づいて、前記補正値を決定することを特徴とするものである。
【0012】
第
2の態様に係るメモリシステムによれば、主制御回路は、メモリ装置へのコマンド送信が完了してから、メモリ装置からReady信号を受信するまでの第1のカウンタのカウント値と、メモリ装置から最初のBusy信号を受信してから、メモリ装置からReady信号を受信するまでの第2のカウンタのカウント値とに基づいて、補正値を決定する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量と、メモリアレイからのデータの読み出しに伴う不定のBusyサイクル数とに基づいて、補正値を正確に決定できるため、固定サイクル数を高精度に補正することが可能となる。
【0013】
本発明の第
3の態様に係るメモリシステムは、第
1の態様に係るメモリシステムにおいて特に、前記送信制御回路は、第1のクロックのサイクル数をカウントする第1のカウンタを含み、前記主制御回路は、前記メモリ装置へのコマンド送信が完了してから、前記メモリ装置から最初のBusy信号を受信するまでの前記第1のカウンタのカウント値に基づいて、前記補正値を決定することを特徴とするものである。
【0014】
第
3の態様に係るメモリシステムによれば、主制御回路は、メモリ装置へのコマンド送信が完了してから、メモリ装置から最初のBusy信号を受信するまでの第1のカウンタのカウント値に基づいて、補正値を決定する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量に基づいて補正値を簡易に決定することが可能となる。また、Busyサイクルの完了を待つことなく早期に補正値を決定できるため、補正値が異常値である場合に早期にエラー処理を開始することが可能となる。さらに、第2のカウンタが不要になるとともに、第1のカウンタのカウント値を削減できるため、全体としてホスト装置の回路規模を削減することが可能となる。
【発明の効果】
【0015】
本発明によれば、ホスト装置とメモリ装置との間の高速化通信を低コストかつ簡易に実現することが可能なメモリシステムを得ることができる。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0018】
図1は、本発明の実施の形態に係るメモリシステム1の構成を示す図である。
図1に示すようにメモリシステム1は、ホスト装置2と、ホスト装置2に着脱自在に接続される半導体メモリ等のメモリ装置3とを備えて構成されている。
【0019】
ホスト装置2は、CPU11、内部メモリ12、及びメモリコントローラ13を備えている。メモリコントローラ13は、主制御回路21、送信制御回路22、及び受信制御回路23を有している。送信制御回路22は、クロックC1に同期してメモリ装置3へのコマンドS5の送信を制御する。受信制御回路23は、クロックC2に同期してメモリ装置3からのデータS6の受信を制御する。主制御回路21は、送信制御回路22及び受信制御回路23を制御する。
図1に示すように、送信制御回路22はアクセス生成回路31及び送信カウンタ32を有しており、受信制御回路23は同期回路41及び受信カウンタ42を有している。
【0020】
主制御回路21、アクセス生成回路31、送信カウンタ32、同期回路41、及び受信カウンタ42には、共通の基準クロックC0が入力される。アクセス生成回路31は、基準クロックC0に基づいてクロックC1を生成する。例えば、基準クロックC0を分周することにより、基準クロックC0の4サイクルを1サイクルとするクロックC1を生成する。
【0021】
メモリ装置3は、コンテンツデータ等の任意のデータS6が格納されたメモリアレイ52と、メモリアレイ52へのアクセスを制御する制御回路51とを有している。
【0022】
以下、メモリアレイ52に格納されているデータS6をメモリ装置3からホスト装置2に読み出す処理を例にとり、メモリシステム1の動作を説明する。以下の例では、通信プロトコルによってコマンド長が8バイト、読み出しデータ長が512バイトに固定され、レイテンシ方式としてReady/Busy方式が採用されたメモリシステムを前提とする。
【0023】
図2は、メモリシステム1の読み出し動作を示すタイミングチャートである。CPU11は、アドレス情報及び読み出しサイズ等を含む読み出しコマンドを、主制御回路21に入力する。主制御回路21は、入力された読み出しコマンドをデコードすることにより、コマンドデータS1と、アクセス情報及びアクセス開始フラグを含む制御信号S2とを、アクセス生成回路31に入力する。
【0024】
アクセス生成回路31は、入力されたアクセス情報に基づいて、メモリ装置3にアクセスするためのアクセス制御信号S4を生成し、当該アクセス制御信号S4をメモリ装置3に送信する。また、アクセス生成回路31は、上記の通り基準クロックC0に基づいてクロックC1を生成し、当該クロックC1をメモリ装置3に送信する。さらに、アクセス生成回路31は、入力されたコマンドデータS1に基づいてコマンドS5を生成し、当該コマンドS5をクロックC1に同期してメモリ装置3に送信する。本実施の形態の例では、コマンド長が8バイトであり、クロックC1の1サイクルで1バイトのデータ転送が行われるため、クロックC1の8サイクルに相当する固定長の期間P1(
図2)が、コマンド送信期間となる。アクセス生成回路31は、コマンドS5の最終バイト(第8バイト)の送信が完了すると、送信カウンタ32にカウント動作を開始させ、送信カウンタ32は以後のクロックC1のサイクル数をカウントする。
【0025】
メモリ装置3の制御回路51は、ホスト装置2から受信したクロックC1をホスト装置2にフィードバックすることにより、クロックC1と同一周波数のクロックC2をホスト装置2に送信する。また、制御回路51は、受信したコマンドS5をデコードすることによって、メモリアレイ52から所望のデータS6を読み出す。制御回路51は、メモリアレイ52からのデータS6の読み出し処理が完了するまでは、Busy信号をホスト装置2に送信する。そして、読み出し処理が完了するとReady信号を送信し、Ready信号に続けてデータS6を送信する。Busy信号、Ready信号、及びデータS6の送信は、クロックC2に同期して行われる。
【0026】
図2を参照して、ホスト装置2がコマンドS5の最終バイトの送信を完了してから、Ready信号の受信を完了するまでの期間P2が、Ready/Busy期間となる。また、Ready/Busy期間P2に続く期間P3が、ホスト装置2がメモリ装置3からデータS6を受信するデータ受信期間となる。本実施の形態の例では、読み出しデータ長が512バイトであり、クロックC2の1サイクルで1バイトのデータ転送が行われるため、クロックC2の512サイクルに相当する固定長の期間P3がデータ受信期間となる。但し、後述するように、クロックC1に関するデータ受信期間P3のサイクル数は補正される。
【0027】
ホスト装置2とメモリ装置3との間でコマンド及びデータの送受信を行う場合には、両装置間の配線遅延とメモリ装置3の入出力バッファのバッファ遅延とに起因して、不定長の伝搬遅延が発生する。そして、高周波のクロックC1,C2を用いて高速化通信を行う場合には、その伝搬遅延量がクロックC1,C2の1サイクルよりも大きくなる。
図2に示すように、コマンドS5の最終バイトの送信が完了してから、先頭のBusy信号の受信を開始するまでの間に、クロックC1,C2の1サイクルを超える伝搬遅延PDが発生している。伝搬遅延PDの遅延量は不定であり、また、Busy信号が継続するサイクル数も不定であるため、Ready/Busy期間P2は不定長となる。
【0028】
図1を参照して、ホスト装置2の受信制御回路23は、メモリ装置3から順に送信されたBusy信号、Ready信号、及びデータS6をクロックC2に同期して受信し、これらの信号及びデータを主制御回路21に入力する。また、同期回路41は、Busy信号を受信する毎に、Busy信号を基準クロックC0で同期化することによって同期信号S7を生成し、当該同期信号S7を主制御回路21に入力する。また、同期回路41は、先頭のBusy信号を受信すると、受信カウンタ42にカウント動作を開始させ、受信カウンタ42は以後の同期信号S7のサイクル数をカウントする。
【0029】
主制御回路21は、受信制御回路23からReady信号が入力されると、その時点でのカウント値S3,S8を送信カウンタ32及び受信カウンタ42からそれぞれ取得する。そして、カウント値S3からカウント値S8を減算することによって遅延サイクル補正値を算出し、当該遅延サイクル補正値をアクセス情報としてアクセス生成回路31に入力する。また、主制御回路21は、受信制御回路23からReady信号が入力されることにより、Ready/Busy期間P2を終了し、続けてデータ受信期間P3に移行する。
【0030】
アクセス生成回路31は、入力された遅延サイクル補正値に基づいて、データ受信期間のサイクル数を補正する。本実施の形態の例では、読み出しデータ長が512バイトであり、クロックC1の1サイクルで1バイトのデータ転送が行われるため、本来は、Ready/Busy期間P2が終了してからクロックC1が512サイクル進行した時点が、データ受信期間P3の終点となる。アクセス生成回路31は、通信プロトコルで規定されたデータ受信期間のサイクル数(この例では512サイクル)から、入力された遅延サイクル補正値に相当するサイクル数を減算することにより、データ受信期間P3のサイクル数を補正する。例えば、遅延サイクル補正値が「2サイクル」である場合には、データ受信期間P3の終点は、Ready/Busy期間P2が終了してからクロックC1が510(=512−2)サイクル進行した時点となる。
【0031】
補正後のデータ受信期間P3において、主制御回路21は、受信制御回路23から順に入力されたデータS6をCPU11に転送する。
【0032】
このように本実施の形態に係るメモリシステム1によれば、メモリ装置3の制御回路51は、ホスト装置2の送信制御回路22から受信したクロックC1(第1のクロック)をフィードバックすることにより、クロックC2(第2のクロック)としてホスト装置2の受信制御回路23に送信する。そして、受信制御回路23は、フィードバックされたクロックC2に同期してメモリ装置3からのデータ受信を制御する。従って、クロックC1,C2とは別のストローブ信号を新たに生成する必要がないため、データストローブ信号の生成回路やタイミング調整回路の実装を省略でき、その結果、ホスト装置2とメモリ装置3との間の高速化通信を低コストかつ簡易に実現することが可能となる。また、クロックC1をクロックC2としてフィードバックしているため、メモリアレイ52から読み出したデータS6をクロックC2に同期してメモリ装置3からホスト装置2に送信する際に、配線遅延及びバッファ遅延に伴う伝搬遅延量をクロックC2とデータS6とで実質的に相殺でき、その結果、データの損失を防止することが可能となる。
【0033】
また、ホスト装置2の主制御回路21は、ホスト装置2とメモリ装置3との間の伝搬遅延量に基づいて遅延サイクル補正値を算出し、送信制御回路22は、当該遅延サイクル補正値に基づいて、メモリ装置3からのデータ受信が開始されてからデータ受信が完了するまでのクロックC1のサイクル数(つまりデータ受信期間P3の終点)を補正する。このように、不定の伝搬遅延量から算出された遅延サイクル補正値に基づいて、通信プロトコルで規定された固定サイクル数を補正することにより、固定サイクル数を過不足なく確保でき、その結果、システムを正常に動作させることが可能となる。
【0034】
また、主制御回路21は、メモリ装置3へのコマンドS5の送信が完了してから、メモリ装置3からReady信号を受信するまでの送信カウンタ32(第1のカウンタ)のカウント値S3と、メモリ装置3から最初のBusy信号を受信してから、メモリ装置3からReady信号を受信するまでの受信カウンタ42(第2のカウンタ)のカウント値S8とに基づいて、遅延サイクル補正値を算出する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量と、メモリアレイ52からのデータS6の読み出しに伴う不定のBusyサイクル数とに基づいて、遅延サイクル補正値を正確に算出できるため、データ受信期間P3の固定サイクル数を高精度に補正することが可能となる。
【0035】
<変形例>
図3は、本実施の形態の変形例に係るメモリシステム1の構成を示す図である。
図1に示した構成から受信カウンタ42が省略されている。
図4は、メモリシステム1の読み出し動作を示すタイミングチャートである。
【0036】
アクセス生成回路31は、コマンドS5の最終バイト(第8バイト)の送信が完了すると、送信カウンタ32にカウント動作を開始させ、送信カウンタ32は以後のクロックC1のサイクル数をカウントする。
【0037】
主制御回路21は、受信制御回路23から先頭のBusy信号が入力されると、その時点でのカウント値S3を送信カウンタ32から取得する。そして、カウント値S3で示されるサイクル数を遅延サイクル補正値として決定し、当該遅延サイクル補正値をアクセス情報としてアクセス生成回路31に入力する。
【0038】
アクセス生成回路31は、通信プロトコルで規定されたデータ受信期間のサイクル数(この例では512サイクル)から、入力された遅延サイクル補正値に相当するサイクル数を減算することにより、データ受信期間P3のサイクル数を補正する。例えば、遅延サイクル補正値が「2サイクル」である場合には、データ受信期間P3の終点は、Ready/Busy期間P2が終了してからクロックC1が510(=512−2)サイクル進行した時点となる。
【0039】
このように本変形例に係るメモリシステム1によれば、主制御回路21は、メモリ装置3へのコマンドS5の送信が完了してから、メモリ装置3から最初のBusy信号を受信するまでの送信カウンタ32のカウント値S3に基づいて、遅延サイクル補正値を決定する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量に基づいて遅延サイクル補正値を簡易に決定することが可能となる。また、Ready/Busy期間P2の完了を待つことなく早期に遅延サイクル補正値を決定できるため、遅延サイクル補正値が異常値である場合に早期にエラー処理を開始することが可能となる。さらに、受信カウンタ42が不要になるとともに、送信カウンタ32のカウント値を削減できるため、全体としてホスト装置2の回路規模を削減することが可能となる。