JP4398066B2 - メモリ制御方法、sdram制御方法及びメモリシステム - Google Patents
メモリ制御方法、sdram制御方法及びメモリシステム Download PDFInfo
- Publication number
- JP4398066B2 JP4398066B2 JP2000158101A JP2000158101A JP4398066B2 JP 4398066 B2 JP4398066 B2 JP 4398066B2 JP 2000158101 A JP2000158101 A JP 2000158101A JP 2000158101 A JP2000158101 A JP 2000158101A JP 4398066 B2 JP4398066 B2 JP 4398066B2
- Authority
- JP
- Japan
- Prior art keywords
- sdram
- timing
- state
- data
- clock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Description
【発明の属する技術分野】
本発明は、マスクROM(Read Only Memory)やSDRAM(Synchronous Dynamic Random Access Memory)等のメモリ制御方法及びSDRAM制御方法とメモリシステムに関するものである。
【0002】
【従来の技術】
記憶内容を保持するために、一定時間内にリフレッシュ動作(再書込み)を行う必要のあるRAMをDRAM(Dynamic Random Access Memory)という。このDRAMは構造が単純で高集積化、大容量化がしやすく、容量当たりの製造コストが低いという利点があることから、現在、最も多く使われ、生産されている半導体メモリで、主に、コンピュータの主記憶やRAMディスク等で多用されている。
【0003】
DRAMは、キャパシタの充放電を記憶原理としているため、時間が経つと自然放電によって電圧が下がり、メモリ内容が失われてしまう。このため、キャパシタの電荷の状態を維持するためには、リフレッシュ動作を絶えず行わなければならない。リフレッシュ動作中にはアクセスができないため、その分、SRAMよりも読書きのスピードが低くなる。
【0004】
そこで、DRAMの高速化が従来から考えられてきており、EDO(Extended Data Out)RAMもその1つであるが、現在はSDRAM等が主流となっている。
このSDRAMは、従来のDRAMと異なり、システム(CPU,MPU)を動かしていシステムクロックとメモリの外部バスの動作が同期していることに特徴がある。内部でデータを次々に転送して途切れさせないパイプライン方式を採用しているので、1クロック毎にデータ転送を要求するバーストモードの動作が高速化される。
【0005】
ところで従来、このようなSDRAMの制御には、専用のデータバスが用いられている。通常、SDRAMのリードデータは、データの出力保持を行わず1つのクロックの立上がりエッジに合わせて出力されることと、SDRAMのデータ書込みにおいては、SDRAMに対するライトコマンドを取り込むクロックエッジ(立上がり)に合わせて書込みデータがデータバス上に存在しなければならないが、その際のコマンド発行と書込みデータの同期をとることを容易にするからである。
【0006】
従来、SDRAMは、このような専用のデータバスを用いて次のように制御されている。すなわち、リードアクセスではクロックに同期したデータがSDRAMから出力されてSDRAMに接続された制御LSIにおいてラッチを行って内部へ読出しデータとして取り込まれ、また、ライトアクセスではコマンドとデータが制御LSIから出力されて同期クロックの立上がりでSDRAMがデータを取り込むという制御方法が採られている。
【0007】
【発明が解決しようとする課題】
しかしながら上記従来技術では、上述したように専用のデータバスが必要であることから、SDRAMに接続された制御LSIにはそのデータバスの本数分、余計にピンが必要になり、より大きい制御LSIパッケージが要求され、制御LSI自体のコストアップになるという問題点があった。
【0008】
また、専用のデータバスによる接続のため、他のバスへデータを転送する際、制御LSIの双方向バス入力部において、入力バッファの遅延、F/Fによるラッチサイクルの時間が必要となり、この時間分、転送にタイムラグが発生するという問題点もあった。
【0009】
更に、より遅いクロックに同期したターゲットデバイスに対してDMA転送を行う場合、制御LSI内部にバスの本数分の同期回路が必要となり、制御LSIの規模そのものが大きくなるという問題点もあった。
本発明は、上記従来技術の問題点を解消すべくなされたものである。
【0010】
【課題を解決するための手段】
本発明は、上述課題を解決するため次の構成を採用する。
〈構成1〉
SDRAM又はSマスクROMからなるメモリと、このメモリの制御回路のクロック周期と異なるクロック周期で動作する周辺回路とが混在するシステムにおけるメモリ制御方法において、上記メモリのクロックイネーブル信号の制御により上記周辺回路のクロックの立上がりに同期させて上記メモリからデータを読み出すように制御することで、上記メモリのデータバスと上記周辺回路のデータバスとを共用化した。
【0011】
〈構成2〉
構成1に記載のメモリ制御方法において、上記周辺回路との間でDMA転送可能である場合に、周辺回路からのDMAアクセスに対してアドレス応答信号とデータ応答信号をずらして出力するように制御することで、周辺回路のクロックの毎サイクル連続アクセスを可能にした。
【0012】
〈構成3〉
構成1に記載のメモリ制御方法において、周辺回路のクロックの状態を監視しつつ書込みコマンドを発行し、周辺回路の読出しデータに同期させてSDRAMへデータを書き込むように制御する。
〈構成4〉
クロック同期式のメモリと、該メモリに対するデータの読み書きを制御する制御回路と、上記メモリに対応する第1のクロックとは異なる周期を持つ第2のクロックに基づいて動作する周辺回路とを有し、上記メモリのデータバスと上記周辺回路のデータバスとが共通に接続されたメモリシステムにおいて、上記制御回路は、上記メモリに対して上記第1のクロックを出力するか否か制御するためのクロックイネーブル信号及び上記第2のクロックに基づいて、上記第2のクロックに同期させて上記メモリからデータを読み出すことを特徴とする。
【0013】
【発明の実施の形態】
以下、本発明の具体例につき図面を用いて説明する。
《具体例1》
〈具体例1の構成〉
図1は本発明によるメモリ制御方法、ここではSDRAM制御方法の具体例1を示すブロック図である。
この図1において、SDRAM4はSDRAM制御LSI3により制御されてターゲットデバイス(LSI等)5との間でデータが読書きされるようになされている。
【0014】
上記制御LSI3はSDRAM制御部1、DMA制御部2及びクロック分周回路6を備えてなり、この制御LSI3にはマスタクロックAが入力され、このマスタクロックAは制御LSI3内の各部に与えられるようになされている。
制御LSI3内に入力されたマスタクロックAは、SDRAMクロックLとして制御LSI3から出力されてSDRAM4へ入力されるように、また、クロック分周回路6へ入力されたマスタクロックAは、分周されスレーブクロックMとして出力されてターゲットデバイス5へ入力されるようになされている。
【0015】
制御LSI3、SDRAM4及びターゲットデバイス5にはデータバスHが接続され、双方向のデータのやり取りが可能になされている。
DMA制御部2から延出するアドレスバスC、DMA制御部2から出力される、アドレスバスC上に有効な値が出力中であることを示すアドレスストローブ信号B及び連続アクセスイネーブル信号DはSDRAM制御部1に入力されるようになされている。また、DMA制御部2から出力される、データバスH上に有効な値が出力中であることを示すデータストローブ信号Gはターゲットデバイス5へ入力されるようになされている。なお本具体例1は、ライトアクセスについては直接関係しないのでリードライト切替えの信号についての説明を省略する。
【0016】
上記SDRAM制御部1は、アドレスデコーダ7、ステートマシン8、ステートシフタ9及びステートデコーダ10を備え、上記アドレスバスC及びアドレスストローブ信号Bはアドレスデコーダ7へ入力されるようになされている。DMA制御部2から出力される連続アクセスイネーブル信号Dはステートマシン8へ入力されるようになされている。
【0017】
アドレスデコーダ7はアクセス開始の検出、ページヒット判定及びSDRAMアドレスKへの変換を行うものである。アドレスデコーダ7から出力されるアクセス開始の検出を示す有効アクセス信号N及びページヒット判定結果を示すページヒット信号Oはステートマシン8へ入力され、アドレスデコーダ7から出力されるSDRAMアドレスKはSDRAM4へ入力されるようになされている。SDRAMアドレスKのデコードに関しては、出力されるSDRAM制御信号(SDRAMコマンド,SDRAMイネーブル信号、ここではSDRAMコマンド)Iに合わせて行アドレスと列アドレスに切り替えられるが、これについては本具体例に直接関係しないのでその説明を省略する。
【0018】
ステートマシン8は入力信号に応答してステートPを遷移させるもので、ステートマシン8から出力されるステートPがステートシフタ9及びステートデコーダ10へ入力されるよう、同シフタ9及びデコーダ10に接続されている。
【0019】
ステートシフタ9は、リードアクセス時に発行したリードアクセスに対して、データがCASレーテンシのサイクル分、遅延して出力されることに対応するため、ステートPでのリードコマンド出力ステートをサイクル単位で遅延させ、適切なタイミングでデータ応答信号Eとクロックサスペンド信号Qをアサートさせるように構成されている。
ステートシフタ9から出力されるデータ応答信号EはアクセスのホストであるDMA制御部2へ入力され、同じくクロックサスペンド信号Qはステートデコーダ10へ入力されるようになされている。
【0020】
ステートデコーダ10はステートPに従い、適切な外部出力を行うものである。このステートデコーダ10から出力されるアドレスを取り込んだことを示すアドレス応答信号FはアクセスのホストであるDMA制御部2へ入力され、同じくSDRAM制御信号I及びクロックイネーブル信号JはSDRAM4へ入力されるようになされている。
【0021】
〈具体例1の動作〉
次に、上述具体例1の動作について図2〜図7を併用して説明する。
図2は具体例1におけるステートマシン8の状態遷移図、図3は読出し位相合わせ対応を表にして示す図である。図4〜図7は各々具体例1の動作を説明するためのタイムチャートで、このうち図4はSDRAM初期状態からのシンプルリードアクセスを、図5はSDRAM初期状態からの連続リードアクセスを、図6はSDRAMページヒット時のリードアクセスを説明するためのタイムチャートである。
【0022】
まず、図4に示すSDRAM初期状態からのシンプルリードアクセスについて述べる。
設定条件としては、SDRAM4デバイス毎の「ACT」コマンドから「READ」(リード;読出し)コマンドまでの最小サイクルtRCDが3、「PRE」コマンドから「ACT」コマンドまでの最小サイクルtRPが3、「READ」コマンド受信から対応するデータが出力されるまでのサイクル数CASレーテンシが2であるものとする。また、マスタクロックの周期はSDRAM4のアクセスタイムよりも大きいものとする。
【0023】
図4中、タイミングa1において、DMA制御部2がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがネゲートされる。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
タイミングa2において、ステートマシン8は有効アクセス信号Nのアサートを検出し、ステートPを「IDLE」から「ACTIVE」へ遷移させる。
【0024】
タイミングa3において、ステートデコーダ10はステートPが「ACTIVE」であることを検出し、SDRAM制御信号Iへ「ACT」コマンドを出力する。このタイミングa3で出力されたコマンドは、タイミングa4においてSDRAM4に取り込まれる。
タイミングa3において、ステートマシン8はtRCDのサイクル分のウェイトを挿入するため、ステートPを「ACTIVE」から「tRCD_WAIT」へ遷移させる。
【0025】
タイミングa5において、規定のtRCDのサイクル数が経過して、ステートマシン8ではステートPを本来「READ」へ遷移させる状態となるが、その際のスレーブクロックMの値がHレベルであり、CASレーテンシの値が偶数(位相不一致)であるため、ステートPを「PHASE」へ遷移させ、スレーブクロックMとの位相を合わせるため、1ウェイトを挿入する。「READ」へ遷移する前に「PHASE」へ遷移するかの判断を図3にまとめてある。図3において、位相不一致の場合に「PHASE」へ遷移して位相合わせを行う。
【0026】
ステートマシン8は次のクロックの立上がりで「PHASE」状態から無条件で「READ」へ遷移する。また、ステートデコーダ10はステートPが「READ」であるタイミングと同一タイミングでアドレス応答信号Fをアサートする。
【0027】
タイミングa6において、ステートデコーダ10はステートPが「READ」であることを検出し、SDRAM制御信号Iへ「READ」コマンドを出力する。このタイミングa6で出力された「READ」コマンドは、タイミングa7においてSDRAM4に取り込まれる。
またタイミングa6において、DMA制御部2はアドレス応答信号Fを検出することにより、アドレスバスCへの有効値出力を停止し、アドレスストローブ信号Bをネゲートする。
【0028】
更にタイミングa6において、ステートシフタ9がステート「READ」のシフト結果として、クロックサスペンド信号Qをアサートする。このクロックサスペンド信号Qのアサートは1サイクルでネゲートする。ステートデコーダ10はアサートされたクロックサスペンド信号Qを検出することにより、SDRAM4において、タイミングa8で受け取れるようにクロックイネーブル信号Jをネゲートする。
【0029】
タイミングa8において、SDRAM4はクロックイネーブル信号Jのネゲートを検出し、SDRAM4によるクロックサスペンド開始エントリが行われる。
同時に、SDRAM4はCASレーテンシのタイミングでデータが受け取れるようにデータバスHへの出力を開始する。
SDRAM4によるデータ出力はタイミングa8からSDRAM4のアクセスタイム以降に有効値が出力される。
【0030】
タイミングa9において、ステートシフタ9はスレーブクロックMに同期して出力されるSDRAM4の出力データに合わせてデータ応答信号Eをアサートする。DMA制御部2はSDRAM制御部1から出力されるデータ応答信号Eをデータストローブ信号Gに変換して出力し、ターゲットデバイス5に対して有効データ出力中であることを通知する。
【0031】
タイミングa10はタイミングa7からCASレーテンシ分のサイクルであり、SDRAM4から出力されたデータバスH上のデータが有効であることを保証される。
また、タイミングa10において、エントリされたクロックサスペンドが開始され、SDRAM4内部でのクロックが停止される。したがって、本来タイミングa10からSDRAM4のデータホールドタイムをおいて閉じられる出力データが、タイミングa10でのSDRAMクロックLの立上がりが無視され、そのため、データバスHへのデータ出力状態が保持される。
同じタイミングa10において、SDRAM4はクロックイネーブル信号Jのアサートを検出し、SDRAM4によるクロックサスペンド終了エントリが行われる。
【0032】
タイミングa11において、SDRAM4はタイミングa10で行われたクロックサスペンド終了エントリにより、SDRAM4内部のクロックが再開し、SDRAM4のデータホールドタイムをおいてデータバスHへのデータ出力が停止する。
【0033】
タイミングa13において、ステートシフタ9はデータ応答信号Eをネゲートする。
タイミングa14において、ターゲットデバイス5はデータストローブ信号Gのアサートを検出し、データバスH上にあるSDRAM4から出力されたデータをターゲットデバイス5の内部へ取り込む。
以上の動作により、データバスH上にスレーブクロックM周期でのSDRAMデータを出力することができる。
【0034】
次に、図5に示すSDRAM初期状態からの連続リードアクセスについて述べる。設定条件は、図4の場合と同一である。
図5中、タイミングb1からb5の遷移条件,動作は図4におけるタイミングa1からa5の場合と同一である。
【0035】
タイミングb6において、DMA制御部2はアドレス応答信号Fのアサートを検出するが、連続したアクセスを継続するため、アドレスストローブ信号Bのアサートを継続した上で、アドレスバスCへの出力を次のアドレスに切り替える。ステートマシン8は連続アクセスイネーブル信号Dがアサートされているため、ステートPの「READ」ステートを維持する。ステートデコーダ10はステートPが「READ」を維持するため、アドレス応答信号Fのアサートも維持される。
またタイミングb6において、ステートシフタ9から連続アクセスイネーブル信号Dがネゲート時と同様に、クロックサスペンド信号Qがアサートされる。
【0036】
タイミングb7において、ステートデコーダ10はクロックサスペンド信号Qのアサートを検出する。SDRAM4において、クロックイネーブル信号Jがネゲートされた次のサイクルは入力コマンドを無視されるため、その際にアドレスが更新しないように、アドレス応答信号Fをネゲートする。
【0037】
タイミングb8において、SDRAM4が最初のコマンドを受信する。
タイミングb9において、SDRAM4はクロックイネーブル信号Jのネゲートを検出し、SDRAM4によるクロックサスペンド開始エントリが行われる。同時に、SDRAM4はCASレーテンシのタイミングでデータが受け取れるようにデータバスHへの出力を開始する。
SDRAM4によるデータ出力はタイミングb9からSDRAM4のアクセスタイム以降に有効値が出力される。
【0038】
タイミングb10において、ステートシフタ9はスレーブクロックMに同期して出力されるSDRAM4の出力データに合わせてデータ応答信号Eをアサートする。DMA制御部2はSDRAM制御部1から出力されるデータ応答信号Eをデータストローブ信号Gに変換して出力し、ターゲットデバイス5に対して有効データ出力中であることを通知する。
またタイミングb10において、同時に、DMA制御部2はアドレス応答信号Fのアサートを検出し、アドレスを更新する。ここで、DMA制御部2は次のアドレスが連続アクセスの最後であるため、連続アクセスイネーブル信号Dをネゲートする。
【0039】
タイミングb11はタイミングb8からCASレーテンシ分のサイクルであり、SDRAM4から出力されたデータバスH上のデータが有効であることを保証される。
また、タイミングb11において、エントリされたクロックサスペンドが開始され、SDRAM4内部でのクロックが停止される。したがって、本来タイミングb11からSDRAM4のデータホールドタイムをおいて閉じられる出力データが、タイミングb11でのSDRAMクロックLの立上がりが無視され、そのため、データバスHへのデータ出力状態が保持され、この状態において入力コマンドも無視される。
同じタイミングb11において、SDRAM4はクロックイネーブル信号Jのアサートを検出し、SDRAM4によるクロックサスペンド終了エントリが行われる。
【0040】
タイミングb12において、SDRAM4はタイミングb11で行われたクロックサスペンド終了エントリにより、SDRAM4内部のクロックが再開し、SDRAM4のデータホールドタイムをおいてデータバスHへのデータ出力が停止する。
同じタイミングb12において、クロックイネーブル信号Jのネゲートが検出され、タイミングb9と同様にSDRAM4によるクロックサスペンド開始エントリが行われる。
【0041】
タイミングb13において、DMA制御部2はアドレス応答信号Fのアサートを検出するが、最後のアドレスに対する応答のため、アドレスバスCへの有効値出力を停止し、アドレスストローブ信号Bをネゲートする。
ステートマシン8は連続アクセスイネーブル信号Dのネゲートを検出し、ステートPを「READ」から次のアクセス待ちである「NEXT_WAIT」へ遷移する。
【0042】
タイミングb14において、ターゲットデバイス5はデータストローブ信号Gのアサートを検出し、データバスH上にあるSDRAM4から出力された最初のデータをターゲットデバイス5の内部へ取り込む。
【0043】
タイミングb15において、クロックイネーブル信号Jのネゲートが検出され、タイミングb9,b12と同様にSDRAM4によるクロックサスペンド開始エントリが行われる。
【0044】
タイミングb16において、ターゲットデバイス5はデータストローブ信号Gのアサートを検出し、データバスH上にあるSDRAM4から出力された2つめのデータをターゲットデバイス5の内部へ取り込む。
【0045】
タイミングb17においては、タイミングb15と同様である。
タイミングb18において、ターゲットデバイス5はデータストローブ信号Gのアサートを検出し、データバスH上にあるSDRAM4から出力された3つめのデータをターゲットデバイス5の内部へ取り込む。
【0046】
以上の動作により、データバスH上にスレーブクロックM周期でのSDRAMデータを連続で出力することができる。
【0047】
次に、図6に示すSDRAMページヒット時のリードアクセスについて述べる。設定条件は、図4の場合と同一である。
図6中、タイミングc1において、DMA制御部2がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがネゲートされる。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0048】
タイミングc2において、ステートマシン8は有効アクセス信号Nのアサートを検出する。この際、ステートマシン8はステートPが「NEXT_WAIT」であり、ページヒット信号Oを参照する。
この場合、入力されたアドレスが前回のアクセス時のアドレスと同じページ内であるため、ページヒット信号Oはアサートとなっており、また、このタイミングc2ではスレーブクロックMがLレベル(位相一致)であり、図3からステートPは「PHASE」を経由せずに「READ」へ遷移する。
また、ステートデコーダ10はステートPが「READ」であるタイミングと同一タイミングでアドレス応答信号Fをアサートする。
【0049】
タイミングc3において、ステートデコーダ10はステートPが「READ」であることを検出し、SDRAM制御信号Iへ「READ」コマンドを出力する。このタイミングc3で出力された「READ」コマンドは、タイミングc4においてSDRAM4に取り込まれる。
このタイミングc3において、連続アクセスイネーブル信号Dはネゲートであるので、ステートマシン8はステートPを「READ」から「NEXT_WAIT」へ遷移させ、次のアクセスに対して待機する。
【0050】
タイミングc4以降の動作は、図4に示すタイムチャートのタイミングa7以降の動作と同様になる。タイミングc3において、連続アクセスイネーブル信号Dがアサートされていた場合には、以降の動作は図5に示すタイムチャートのタイミングb6以降の動作と同様になる。
【0051】
次に、図7に示すSDRAMページミスヒット時のリードアクセスについて述べる。設定条件は、図4の場合と同一である。
図7中、タイミングd1において、DMA制御部2がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがアサートされる。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0052】
タイミングd2において、ステートマシン8は有効アクセス信号Nのアサートを検出する。この際、ステートマシン8はステートPが「NEXT_WAIT」であり、ページヒット信号Oを参照する。
この場合、入力されたアドレスが前回のアクセス時のアドレスと異なるページであるため、ページヒット信号Oはネゲートとなっており、ステートマシン8はステートPを「PRECHARGE」へ遷移させる。
【0053】
タイミングd3において、ステートデコーダ10はステートPが「PRECHARGE」であることを検出し、SDRAM制御信号Iへ「PRE」コマンドを出力する。このタイミングd3で出力された「PRE」コマンドは、タイミングd4においてSDRAM4に取り込まれ、これにより、SDRAM4は「ACTIVE」コマンドで設定されたRowアドレスをクリアし、SDRAM内部ステートマシンが「IDLE」状態となる。
【0054】
このタイミングd3において、ステートマシン8はステートPをtRPのサイクル分のウェイトを挿入するため、「PRECHARGE」から「tRP_WAIT」へ遷移させる。
tRPのサイクル数経過後、ステートマシン8はステートPを「tRP_WAIT」から「ACTIVE」へ遷移させる。
【0055】
タイミングd5において、ステートデコーダ10はステートPが「ACTIVE」であることを検出し、SDRAM制御信号Iへ「ACT」コマンドを出力する。このタイミングd3で出力された「ACT」コマンドは、タイミングd4においてSDRAM4に取り込まれる。
【0056】
タイミングd5以降の動作は、図4に示すタイムチャートのタイミングa3以降の動作と同様になる。タイミングd5において、連続アクセスイネーブル信号Dがアサートされていた場合には、以降の動作は図5に示すタイムチャートのタイミングb3以降の動作と同様になる。
【0057】
〈具体例1の効果〉
上述具体例1によれば、ステートシフタ9にリードコマンドに同期したクロックサスペンド信号Qを設け、ステートマシン8のステートPに位相合わせのための「PHASE」を追加することにより、DMA転送における、スレーブクロックMに同期したターゲットデバイス5に対するデータ供給をSDRAM制御部1の制御のみで実現可能としたので、SDRAM4の専用データバスを用意する必要なくなるという効果が得られる。
【0058】
また、クロックサスペンド信号Qのアサートを1サイクル毎に切り替えるようにしたので、スレーブクロックMに同期したターゲットデバイス5に対してセットアップ時間に余裕のあるデータを供給することができるという効果が得られる。
【0059】
更にデータバスHをSDRAM4とターゲットデバイス5で共有するようにしたので、SDRAM4のリードデータを一旦、制御LSI3で取り込んだ上でターゲットデバイス5へ供給する必要がなくなり、SDRAM4のコマンド応答からターゲットデバイス5へのデータ供給までの時間を最短とすることができるという効果が得られる。
【0060】
《具体例2》
〈具体例2の構成〉
図8は本発明によるSDRAM制御方法の具体例2を示すブロック図である。
この図8において、SDRAM4はSDRAM制御LSI3により制御されてターゲットデバイス(LSI等)5との間でデータが読書きされるようになされている。
【0061】
上記制御LSI3はSDRAM制御部1、DMA制御部2及びクロック分周回路6を備えてなり、この制御LSI3にはマスタクロックAが入力され、このマスタクロックAは制御LSI3内の各部に与えられるようになされている。
制御LSI3内に入力されたマスタクロックAは、SDRAMクロックLとして制御LSI3から出力されてSDRAM4へ入力されるように、また、クロック分周回路6へ入力されたマスタクロックAは、分周されスレーブクロックMとして出力されてターゲットデバイス5へ入力されるようになされている。
【0062】
制御LSI3、SDRAM4及びターゲットデバイス5にはデータバスHが接続され、双方向のデータのやり取りが可能になされている。
DMA制御部2から延出するアドレスバスC、DMA制御部2から出力される、アドレスバスC上に有効な値が出力中であることを示すアドレスストローブ信号B、連続アクセスイネーブル信号D及び書込みデータ出力中を示すデータストローブ信号RはSDRAM制御部1に入力されるようになされている。また、DMA制御部2から出力される、データ出力を引き伸ばすデータサスペンド信号Tはターゲットデバイス5へ入力されるようになされている。
【0063】
ターゲットデバイス5から出力されるデータ応答信号SはデータバスH上に有効な値を出力中であることを示す。データサスペンド信号Tのアサート中において、このデータ応答信号Sはアサートを継続し、データバスHへの出力を継続するようになされている。
【0064】
上記SDRAM制御部1は、アドレスデコーダ7、ステートマシン8及びステートデコーダ10を備え、上記アドレスバスC及びアドレスストローブ信号Bはアドレスデコーダ7へ入力されるようになされている。DMA制御部2から出力される連続アクセスイネーブル信号D及び書込みデータ出力中を示すデータストローブ信号Rはステートマシン8へ入力されるようになされている。
【0065】
アドレスデコーダ7はアクセス開始の検出、ページヒット判定とSDRAMアドレスKへの変換を行うものである。アドレスデコーダ7から出力されるアクセス開始の検出を示す有効アクセス信号N及びページヒット判定結果を示すページヒット信号Oはステートマシン8へ入力され、アドレスデコーダ7から出力されるSDRAMアドレスKはSDRAM4へ入力されるようになされている。SDRAMアドレスKのデコードに関しては、出力されるSDRAM制御信号(SDRAMコマンド,SDRAMイネーブル信号、ここではSDRAMコマンド)Iに合わせて行アドレスと列アドレスに切り替えられるが、これについては本具体例に直接関係しないのでその説明を省略する。
【0066】
ステートマシン8は入力信号に応答してステートPを遷移させるもので、ステートマシン8から出力されるステートPがステートデコーダ10へ入力されるよう、同デコーダ10に接続されている。
【0067】
ステートデコーダ10はステートPに従い、適切な外部出力を行うものである。ステートデコーダ10から出力されるアドレスを取り込んだことを示すアドレス応答信号F及びデータの書込みを取り込んだことを示すデータ応答信号SはアクセスのホストであるDMA制御部2へ入力され、ステートデコーダ10から出力されるSDRAM制御信号IはSDRAM4へ入力されるようになされている。
【0068】
〈具体例2の動作〉
次に、上述具体例2の動作について図9〜図13を併用して説明する。
図9は具体例1におけるステートマシン8の状態遷移図である。図10〜図13は各々具体例2の動作を説明するためのタイムチャートで、このうち図10はSDRAM初期状態からのシンプルライトアクセスを、図11はSDRAM初期状態からの連続ライトアクセスを、図12はSDRAMページヒット時のシンプルライトアクセスを、図13はSDRAMページミスヒット時のライトアクセスを説明するためのタイムチャートである。
【0069】
まず、図10に示すSDRAM初期状態からのシンプルライトアクセスについて述べる。
設定条件としては、SDRAM4デバイス毎の「ACT」コマンドから「WRIT」(ライト;書込み)コマンドまでの最小サイクルtRCDが3、「PRE」コマンドから「ACT」コマンドまでの最小サイクルtRPが3であるものとする。
【0070】
図10中、タイミングe1において、DMA制御部2がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがネゲートされる。同時に、DMA制御部2はターゲットデバイス5に対してデータサスペンド信号Tをアサートする。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0071】
タイミングe2において、ステートマシン8は有効アクセス信号Nのアサートを検出し、ステートPを「IDLE」から「ACTIVE」へ遷移させる。
タイミングe3において、ステートデコーダ10はステートPが「ACTIVE」であることを検出し、SDRAM制御信号Iへ「ACT」コマンドを出力する。このタイミングe3で出力された「ACT」コマンドは、タイミングe5においてSDRAM4に取り込まれる。
またタイミングe3において、ステートマシン8はtRCDのサイクル分のウェイトを挿入するため、ステートPを「ACTIVE」から「tRCD_WAIT」へ遷移させる。
【0072】
タイミングe4において、ターゲットデバイス5は出力データの準備が完了し、データ応答信号Sをアサートする。
タイミングe6において、規定のtRCDのサイクル数が経過して、ステートマシン8ではステートPを本来「WRIT」へ遷移させる状態となるが、その際のスレーブクロックMの値がLレベルであるため、ステートPを「PHASE」へ遷移させ、1ウェイトを挿入してスレーブクロックMとの位相合わせを行う。
【0073】
ステートマシン8はタイミングe7で「PHASE」状態から、この場合、ライトアクセスであるので「WRIT」へ遷移する。また、ステートデコーダ10はステートPが「WRIT」であるタイミングと同一タイミングでアドレス応答信号Fをアサートする。
【0074】
タイミングe8において、ステートデコーダ10はステートPが「WRIT」であることを検出し、SDRAM制御信号Iへ「WRIT」コマンドを出力する。このタイミングe8で出力された「WRIT」コマンドは、タイミングe9においてSDRAM4に取り込まれる。
タイミングe10において、ターゲットデバイス5はデータサスペンド信号Tのネゲートを検出し、出力データの保持を停止し、データの出力を終了する。
【0075】
次に、図11に示すSDRAM初期状態からの連続ライトアクセスについて述べる。設定条件は、図10の場合と同一である。
図11中、タイミングf1からf7の遷移条件,動作は図10におけるタイミングe1からe7の場合と同一である。
【0076】
タイミングf8において、ステートマシン8は連続アクセスイネーブル信号Dのアサートを検出し、ステートPを「WRIT」から「PHASE」へ遷移する。またタイミングf8において、ステートデコーダ10はステートPが「WRIT」であることを検出し、SDRAM制御信号Iへ「WRIT」コマンドを出力する。このタイミングf8で出力された「WRIT」コマンドは、タイミングf10においてSDRAM4に取り込まれる。
タイミングf9においては、タイミングf7と同様に動作し、ステートPは「PHASE」から「WRIT」へ遷移する。
【0077】
タイミングf11において、DMA制御部2はアドレス応答信号Fのアサートを検出し、アドレスバスCの値は次のアドレスへ遷移する。またタイミングf11において、ステートマシン8はステートPを「WRIT」から「PHASE」へ遷移させる。
ステートデコーダ10はステートPが「WRIT」であることを検出し、SDRAM制御信号Iへ「WRIT」コマンドを出力する。このタイミングf11で出力された「WRIT」コマンドは、タイミングf14においてSDRAM4に取り込まれる。
【0078】
タイミングf12において、ターゲットデバイス5はデータサスペンド信号Tのネゲートを検出し、データバスHへの出力データ値は次のデータへ遷移する。
以降、f9からf12と同様の繰り返しにより、スレーブクロックMの毎サイクルのデータをSDRAM4へ書き込むことができる。
【0079】
次に、図12に示すSDRAMページヒット時のシンプルライトアクセスについて述べる。設定条件は、図10の場合と同一である。
図12中、タイミングg1において、DMA制御部2がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがネゲートされる。同時に、DMA制御部2はターゲットデバイス5に対してデータサスペンド信号Tをアサートする。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0080】
タイミングg2において、ステートマシン8は有効アクセス信号Nのアサートを検出する。この際、ステートマシン8はステートPが「NEXT_WAIT」であり、ページヒット信号Oを参照する。
【0081】
この場合、入力されたアドレスが前回のアクセス時のアドレスと同じページ内であるため、ページヒット信号Oはアサートとなっており、また、このタイミングc2ではスレーブクロックMがHレベルである。したがって「WRIT」ステートへ遷移できるが、ターゲットデバイス5が出力するデータ応答信号Sから生成されるデータストローブ信号Rがネゲートであり、書込みデータが存在しないと判断し、書込みデータが準備できるまでステートPを「DATA_WAIT」へ遷移する。
【0082】
タイミングg3において、ターゲットデバイス5がデータの準備が完了し、データバスHへデータを出力すると共にデータ応答信号Sをアサートする。DMA制御部2はデータ応答信号Sのアサートをデータストローブ信号Rへ変換し、SDRAM制御部1へ書込みデータがデータバスH上に存在することを通知する。タイミングg4において、ステートマシン8はデータストローブ信号Rのアサートを検出するとステートPを「DATA_WAIT」から「WRIT」へ遷移させる。
【0083】
タイミングg5において、ステートデコーダ10はステートPが「WRIT」であることを検出し、SDRAM制御信号Iへ「WRIT」コマンドを出力する。このタイミングg5で出力された「WRIT」コマンドは、タイミングg6においてSDRAM4に取り込まれる。
このタイミングg5において、連続アクセスイネーブル信号Dはネゲートであるので、ステートマシン8はステートPを「WRIT」から「NEXT_WAIT」へ遷移させ、次のアクセスに対して待機する。
【0084】
タイミングg5以降の動作は、図10に示すタイムチャートのタイミングe8以降の動作と同様になる。タイミングg5において、連続アクセスイネーブル信号Dがアサートされていた場合には、以降の動作は図11に示すタイムチャートのタイミングf10以降の動作と同様になる。
【0085】
次に、図13に示すSDRAMページミスヒット時のライトアクセスについて述べる。設定条件は、図10の場合と同一である。
図13中、タイミングh1において、DMA制御部2がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがアサートされる。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0086】
タイミングh2において、ステートマシン8は有効アクセス信号Nのアサートを検出する。この際、ステートマシン8はステートPが「NEXT_WAIT」であり、ページヒット信号Oを参照する。
この場合、入力されたアドレスが前回のアクセス時のアドレスと異なるページであるため、ページヒット信号Oはネゲートとなっており、ステートマシン8はステートPを「PRECHARGE」へ遷移させる。
【0087】
タイミングh3において、ステートデコーダ10はステートPが「PRECHARGE」であることを検出し、SDRAM制御信号Iへ「PRE」コマンドを出力する。このタイミングh3で出力された「PRE」コマンドは、タイミングh5においてSDRAM4に取り込まれ、これにより、SDRAM4は「ACTIVE」コマンドで設定されたRowアドレスをクリアし、SDRAM内部ステートマシンが「IDLE」状態となる。
【0088】
このタイミングh3において、ステートマシン8はステートPをtRPのサイクル分のウェイトを挿入するため、「PRECHARGE」から「tRP_WAIT」へ遷移させる(タイミングh4)。
tRPのサイクル数経過後、ステートマシン8はステートPを「tRP_WAIT」から「ACTIVE」へ遷移させる(タイミングh6)。
【0089】
タイミングh7において、ステートデコーダ10はステートPが「ACTIVE」であることを検出し、SDRAM制御信号Iへ「ACT」コマンドを出力する。このタイミングh7で出力された「ACT」コマンドは、タイミングh8においてSDRAM4に取り込まれる。
【0090】
タイミングh8以降の動作は、図10に示すタイムチャートのタイミングe5以降の動作と同様になる。タイミングh7において、連続アクセスイネーブル信号Dがアサートされていた場合には、以降の動作は図11に示すタイムチャートのタイミングf5以降の動作と同様になる。
【0091】
〈具体例2の効果〉
上述具体例2によれば、ステートマシン8にスレーブクロックMの値による遷移条件を加えたことにより、DMA転送において、スレーブクロックMに同期したターゲットデバイス5からのデータ供給に対してコマンド発行を同期化させることがSDRAM制御部1の制御のみで実現可能としたので、データ拡張やクロック同期回路を別個に設ける必要がなくなるという効果が得られる。
【0092】
また、ステートマシン8において、「WRIT」ステートと「PHASE」ステートを交互に繰り返すようにしたので、スレーブクロックMに合わせた連続データを的確にSDRAM4へ書き込むことができるという効果が得られる。
【0093】
更に、サスペンド信号Tを設けるようにしたので、SDRAM制御部1において、書込み準備が完了する前にターゲットデバイス5がデータの出力を開始した場合、そのデータの出力タイミングを延ばし、SDRAM制御部1と転送開始のタイミングを合わせることができるため、連続転送時に書き込むべきデータの箇所がずれることがないという効果が得られる。
【0094】
《具体例3》
〈具体例3の構成〉
図14は本発明によるSDRAM制御方法の具体例3を示すブロック図である。
この図14において、SDRAM4はSDRAM制御LSI3により制御されてDMAデバイス(LSI等)11との間でデータが読書きされるようになされている。
【0095】
上記制御LSI3はSDRAM制御部1及びクロック分周回路6を備えてなり、この制御LSI3にはマスタクロックAが入力され、このマスタクロックAは制御LSI3内の各部に与えられるようになされている。
制御LSI3内に入力されたマスタクロックAは、SDRAMクロックLとして制御LSI3から出力されてSDRAM4へ入力されるように、また、クロック分周回路6へ入力されたマスタクロックAは、分周されスレーブクロックMとして出力されてDMAデバイス11へ入力されるようになされている。
【0096】
制御LSI3、SDRAM4及びDMAデバイス11にはデータバスHが接続され、双方向のデータのやり取りが可能になされている。
DMAデバイス11から延出するアドレスバスC、このアドレスバスC上に有効な値が出力中であることを示すアドレスストローブ信号B、連続アクセスイネーブル信号D及び書込みデータ出力中を示すデータストローブ信号RはSDRAM制御部1に入力されるようになされている。
【0097】
上記SDRAM制御部1は、アドレスデコーダ7、ステートマシン8及びステートデコーダ10を備え、上記アドレスバスC及びアドレスストローブ信号Bはアドレスデコーダ7へ入力されるようになされている。DMA制御部2から出力される連続アクセスイネーブル信号D及び書込みデータ出力中を示すデータストローブ信号Rはステートマシン8へ入力されるようになされている。
【0098】
アドレスデコーダ7はアクセス開始の検出、ページヒット判定とSDRAMアドレスKへの変換を行うものである。アドレスデコーダ7から出力されるアクセス開始の検出を示す有効アクセス信号N及びページヒット判定結果を示すページヒット信号Oはステートマシン8へ入力され、アドレスデコーダ7から出力されるSDRAMアドレスKはSDRAM4へ入力されるようになされている。SDRAMアドレスKのデコードに関しては、出力されるSDRAM制御信号(SDRAMコマンド,SDRAMイネーブル信号、ここではSDRAMコマンド)Iに合わせて行アドレスと列アドレスに切り替えられるが、これについては本具体例に直接関係しないのでその説明を省略する。
【0099】
ステートマシン8は入力信号に応答してステートPを遷移させるもので、ステートマシン8から出力されるステートPがステートデコーダ10へ入力されるよう、同デコーダ10に接続されている。
【0100】
ステートデコーダ10はステートPに従い、適切な外部出力を行うものである。ステートデコーダ10から出力されるアドレスを取り込んだことを示すアドレス応答信号F及びデータの書込みを取り込んだことを示すデータ応答信号EはアクセスのホストであるDMAデバイス11へ入力され、ステートデコーダ10から出力されるSDRAM制御信号IはSDRAM4へ入力されるようになされている。
【0101】
〈具体例3の動作〉
次に、上述具体例3の動作について図15〜図19を併用して説明する。
図15は具体例3におけるステートマシン8の状態遷移図である。図16〜図19は各々具体例3の動作を説明するためのタイムチャートで、このうち図16はSDRAM初期状態からのシンプルライトアクセスを、図17はSDRAM初期状態からの連続ライトアクセスを、図18はSDRAMページヒット時のシンプルライトアクセスを、図19はSDRAMページミスヒット時のライトアクセスを説明するためのタイムチャートである。
【0102】
まず、図16に示すSDRAM初期状態からのシンプルライトアクセスについて述べる。
設定条件としては、SDRAM4デバイス毎の「ACT」コマンドから「WRIT」コマンドまでの最小サイクルtRCDが3、「PRE」コマンドから「ACT」コマンドまでの最小サイクルtRPが3であるものとする。
【0103】
図16中、タイミングi1において、DMAデバイス11がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがネゲートされる。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0104】
タイミングi2において、ステートマシン8は有効アクセス信号Nのアサートを検出し、ステートPを「IDLE」から「ACTIVE」へ遷移させる。
タイミングi3において、ステートデコーダ10はステートPが「ACTIVE」であることを検出し、SDRAM制御信号Iへ「ACT」コマンドを出力する。このタイミングi3で出力された「ACT」コマンドは、タイミングi4においてSDRAM4に取り込まれる。
タイミングi3において、ステートマシン8はtRCDのサイクル分のウェイトを挿入するため、ステートPを「ACTIVE」から「tRCD_WAIT」へ遷移させる。
【0105】
タイミングi5において、規定のtRCDのサイクル数が経過して、スレーブクロックMの値がLレベルであるため、位相合わせの必要はないと判断し、ステートマシン8はステートPを「tRCD_WAIT」から「SLAVE_ACK」へ遷移させる。
このタイミングi5において、スレーブクロックMの値がHレベルであった場合、ステートマシン8は「SLAVE_ACK」へ遷移させる前に「PHASE」ステートへ遷移させ、1サイクルのウェイトを挿入する。
【0106】
ステートデコーダ10はステートPが「SLAVE_ACK」、又は「WRIT」の場合、アドレス応答信号Fをアサートすることにより、スレーブクロックMに合わせたアドレス応答信号を生成することができる。また、ステートデコーダ10はデータ応答信号EをスレーブクロックMの単位で1サイクル分遅延させて出力する。
【0107】
タイミングi6において、ステートマシン8はステートPを無条件で「SLAVE_ACK」から「WRIT」へ遷移させる。
タイミングi7において、ステートデコーダ10はステートPが「WRIT」であることを検出し、SDRAM制御信号Iへ「WRIT」コマンドを出力する。このタイミングi7で出力された「WRIT」コマンドは、タイミングi9においてSDRAM4に取り込まれる。
【0108】
タイミングi8において、DMAデバイス11はアドレス応答信号Fのアサートを検出し、アドレスの出力を停止し、アドレスストローブ信号Bをネゲートする。
タイミングi10において、DMAデバイス11はデータ応答信号Eのアサートを検出し、データの出力を停止し、データストローブ信号Rをネゲートする。
【0109】
次に、図17に示すSDRAM初期状態からの連続ライトアクセスについて述べる。設定条件は、図16の場合と同一である。
タイミングj1からj6の遷移条件,動作はタイムチャート9におけるタイミングi1からi6の場合と同一である。
【0110】
タイミングj7において、ステートマシン8は連続アクセスイネーブル信号Dのアサートを検出し、ステートPを「WRIT」から「SLAVE_ACK」へ遷移する。またタイミングj7において、ステートデコーダ10はステートPが「WRIT」であることを検出し、SDRAM制御信号Iへ「WRIT」コマンドを出力する。このタイミングj7で出力された「WRIT」コマンドは、タイミングj9においてSDRAM4に取り込まれる。
【0111】
タイミングj7において、ステートデコーダ10はステートPが「WRIT」から「SLAVE_ACK」への遷移であり、アドレス応答信号Fのアサート条件を満たすため、アドレス応答信号Fのアサートは継続される。
【0112】
タイミングj8において、DMAデバイス11はアドレス応答信号Fのアサートを検出し、アドレスバスCの値を次のアドレスへ遷移させる。
以降、j6からj8と同様の繰り返しにより、スレーブクロックMの毎サイクルのデータをSDRAM4へ書き込むことができる。
【0113】
次に、図18に示すSDRAMページヒット時のシンプルライトアクセスについて述べる。設定条件は、図16の場合と同一である。
図18中、タイミングk1において、DMAデバイス11がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがネゲートされる。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0114】
タイミングk2において、ステートマシン8は有効アクセス信号Nのアサートを検出する。この際、ステートマシン8はステートPが「NEXT_WAIT」であり、ページヒット信号Oを参照する。
この場合、入力されたアドレスが前回のアクセス時のアドレスと同じページ内であるため、ページヒット信号Oはアサートとなっており、また、このタイミングk2ではスレーブクロックMがHレベルである。したがって、ステートPを「PHASE」へ遷移させ、スレーブクロックMとの位相を合わせるため、1ウェイトを挿入する。
【0115】
タイミングk3において、ステートマシン8はステートPを無条件で「PHASE」から「SLAVE_ACK」へ遷移させる。これにより、ステートデコーダ10において、アドレス応答信号Fがアサートされる。
タイミングk4において、ステートマシン8はステートPを無条件で「SLAVE_ACK」から「WRIT」へ遷移させる。
【0116】
タイミングk5において、ステートデコーダ10はステートPが「WRIT」であることを検出し、SDRAM制御信号Iへ「WRIT」コマンドを出力する。このタイミングk5で出力された「WRIT」コマンドは、タイミングk7においてSDRAM4に取り込まれる。
【0117】
タイミングk6において、DMAデバイス11はアドレス応答信号Fのアサートを検出し、アドレスの出力を停止し、アドレスストローブ信号Bをネゲートする。またタイミングk6において、連続アクセスイネーブル信号Dはネゲートであるので、ステートマシン8はステートPを「WRIT」から「NEXT_WAIT」へ遷移させ、次のアクセスに対して待機する。
【0118】
タイミングk6以降の動作は、図16に示すタイムチャートのタイミングi8以降の動作と同様になる。タイミングk5において、連続アクセスイネーブル信号Dがアサートされていた場合には、以降の動作は図17に示すタイムチャートのタイミングj7以降の動作と同様になる。
【0119】
次に、図19に示すSDRAMページミスヒット時のライトアクセスについて述べる。設定条件は、図16の場合と同一である。
図19中、タイミングm1において、DMAデバイス11がアクセスを開始することによりアドレスバスCに有効アドレスが出力され、アドレスストローブ信号Bがアサートされ、連続アクセスイネーブル信号Dがアサートされる。
アドレスデコーダ7は、アドレスバスC(の出力状態)とアドレスストローブ信号Bのアサートから(、アドレスバスCへの出力内容が)SDRAM4に対するアドレスであると認識すると有効アクセス信号Nをアサートする。
【0120】
タイミングm2において、ステートマシン8は有効アクセス信号Nのアサートを検出する。この際、ステートマシン8はステートPが「NEXT_WAIT」であり、ページビット信号Oを参照する。
この場合、入力されたアドレスが前回のアクセス時のアドレスと異なるページであるため、ページヒット信号Oはネゲートとなっており、ステートマシン8はステートPを「PRECHARGE」へ遷移させる。
【0121】
タイミングm3において、ステートデコーダ10はステートPが「PRECHARGE」であることを検出し、SDRAM制御信号Iへ「PRE」コマンドを出力する。このタイミングm3で出力された「PRE」コマンドは、タイミングm4においてSDRAM4に取り込まれ、これにより、SDRAM4は「ACTIVE」コマンドで設定されたRowアドレスをクリアし、SDRAM内部ステートマシンが「IDLE」状態となる。
【0122】
このタイミングm3において、ステートマシン8はステートPをtRPのサイクル分のウェイトを挿入するため、「PRECHARGE」から「tRP_WAIT」へ遷移させる。
tRPのサイクル数経過後、ステートマシン8はステートPを「tRP_WAIT」から「ACTIVE」へ遷移させる(タイミングm5)。
【0123】
タイミングm6において、ステートデコーダ10はステートPが「ACTIVE」であることを検出し、SDRAM制御信号Iへ「ACT」コマンドを出力する。このタイミングm6で出力された「ACT」コマンドは、タイミングm7においてSDRAM4に取り込まれる。
【0124】
タイミングm7以降の動作は、図16に示すタイムチャートのタイミングi4以降の動作と同様になる。タイミングm6において、連続アクセスイネーブル信号Dがアサートされていた場合には、以降の動作は図17に示すタイムチャートのタイミングj3以降の動作と同様になる。
【0125】
〈具体例3の効果〉
上述具体例3によれば、書込み時にもデータ応答信号Eを設け、ステートデコーダ10にアドレス応答信号Fに対してスレーブクロックMの1サイクル分データ応答信号Eの出力タイミングを遅らせる機能を追加し、ステートマシン8に「SLAVE_ACK」ステートを追加するようにしたので、周期が2倍のスレーブクロックMからのDMAライトアクセスに対して、スレーブクロックM、毎サイクルの書込みができるという効果が得られる。
【0126】
また、アドレス応答の後にデータ応答を行う動作により、アドレス値をライトコマンド発行時に参照し、SDRAM4へ遅延して到達したコマンドデータ書込み時にデータが供給されることとなり、アドレス,データ共、SDRAM制御部1内部へ保持する必要がなくなり、回路規模を小さくすることができる。
【0127】
更に、スレーブクロックM同期のDMAデバイス11内のDMAコントローラからの転送速度を最大値にすることができるため、DMAデバイス11等の低速クロックデバイスによるシステム全体のスループット低下を抑えることができるという効果が得られる。
【0128】
なお、上述具体例1〜3ではアクセスの種類(読出しアクセス、書込みアクセス)やホストデバイス(ターゲットデバイス5、DMAデバイス11等)の種類により各々別個に説明したが、各具体例における動作毎にアクセスモード信号を用意することにより、混在したアクセスやホストデバイスの種類に対応することができる。
【0129】
また、具体例1ではSDRAM4に対する読出しアクセスについて説明したが、SDRAM4をS(Synchronous)マスクROM(SマスクROM)に置き換えることにより、そのようなROMに対する読出しアクセスにも具体例1を適用することができる。
【0130】
更に、具体例3ではアドレス応答信号Fとデータ応答信号Eをスレーブクロック1サイクル分だけ遅延させて出力していたが、このアドレス応答信号Fとデータ応答信号Eを同一タイミングとしてもよい。これによれば、転送速度を低下させるがSDRAM4への書込みデータのセットアップ時間マージンを多くとることができる。
【図面の簡単な説明】
【図1】本発明方法の具体例1を示すブロック図である。
【図2】具体例1におけるステートマシンの状態遷移図である。
【図3】読出し位相合わせ対応を表にして示す図である。
【図4】具体例1の動作(SDRAM初期状態からのシンプルリードアクセス)を説明するためのタイムチャートである。
【図5】具体例1の動作(SDRAM初期状態からの連続リードアクセス)を説明するためのタイムチャートである。
【図6】具体例1の動作(SDRAMページヒット時のリードアクセス)を説明するためのタイムチャートである。
【図7】具体例1の動作(SDRAMページミスヒット時のリードアクセス)を説明するためのタイムチャートである。
【図8】本発明方法の具体例2を示すブロック図である。
【図9】具体例2におけるステートマシンの状態遷移図である。
【図10】具体例2の動作(SDRAM初期状態からのシンプルライトアクセス)を説明するためのタイムチャートである。
【図11】具体例2の動作(SDRAM初期状態からの連続ライトアクセス)を説明するためのタイムチャートである。
【図12】具体例2の動作(SDRAMページヒット時のシンプルライトアクセス)を説明するためのタイムチャートである。
【図13】具体例2の動作(SDRAMページミスヒット時のライトアクセス)を説明するためのタイムチャートである。
【図14】本発明方法の具体例3を示すブロック図である。
【図15】具体例3におけるステートマシンの状態遷移図である。
【図16】具体例3の動作(SDRAM初期状態からのシンプルライトアクセス)を説明するためのタイムチャートである。
【図17】具体例3の動作(SDRAM初期状態からの連続ライトアクセス)を説明するためのタイムチャートである。
【図18】具体例3の動作(SDRAMページヒット時のシンプルライトアクセス)を説明するためのタイムチャートである。
【図19】具体例3の動作(SDRAMページミスヒット時のライトアクセス)を説明するためのタイムチャートである。
【符号の説明】
1 SDRAM制御部(SDRAM Controller)
2 DMA制御部(DMA Controller)
3 SDRAM制御LSI3(SDRAM Control LSI)
4 SDRAM(SDRAM)
5 ターゲットデバイス(Target Device)
6 クロック分周回路(Clock Divider)
7 アドレスデコーダ(Address Decoder)
8 ステートマシン(State Machine)
9 ステートシフタ(State Shifter)
10 ステートデコーダ(State Decoder)
11 DMAデバイス(DMA Device)
A マスタクロック(Master Clock)
B アドレスストローブ信号(Address Storobe)
C アドレスバス(Address Bus)
D 連続アクセスイネーブル信号(Burst Access)
E データ応答信号(Data Acknowledge)
F アドレス応答信号(Address Acknowledge)
G データストローブ信号(Data Storobe)
H データバス(Data Bus)
I SDRAM制御信号(SDRAM Control Signal)(SDRAMコマンド(SDRAM Command),SDRAMイネーブル信号(SDRAM Chip Enable))
J クロックイネーブル信号(Clock Enable)
K SDRAMアドレス(SDRAM Address)
L SDRAMクロック(SDRAM Clock)
M スレーブクロック(Slave Clock)
N 有効アクセス信号(Available Access)
O ページヒット信号(Page Hit)
P ステート(State Machine)
Q クロックサスペンド信号(Clock Suspend)
R データストローブ信号(Data Storobe)
S データ応答信号(Data Acknowledge)
T データサスペンド信号(Data Suspend)
Claims (4)
- SDRAM又はSマスクROMからなるメモリと、このメモリの制御回路のクロック周期と異なるクロック周期で動作する周辺回路とが混在するシステムにおけるメモリ制御方法において、
前記メモリのクロックイネーブル信号の制御により前記周辺回路のクロックの立上がりに同期させて前記メモリからデータを読み出すように制御することで、前記メモリのデータバスと前記周辺回路のデータバスとを共用化したことを特徴とするメモリ制御方法。 - 請求項1に記載のメモリ制御方法において、前記周辺回路との間でDMA転送可能である場合に、周辺回路からのDMAアクセスに対してアドレス応答信号とデータ応答信号をずらして出力するように制御することで、周辺回路のクロックの毎サイクル連続アクセスを可能にしたことを特徴とするメモリ制御方法。
- 請求項1に記載のメモリ制御方法において、周辺回路のクロックの状態を監視しつつ書込みコマンドを発行し、周辺回路の読出しデータに同期させてSDRAMへデータを書き込むように制御することを特徴とするSDRAM制御方法。
- クロック同期式のメモリと、該メモリに対するデータの読み書きを制御する制御回路と、前記メモリに対応する第1のクロックとは異なる周期を持つ第2のクロックに基づいて動作する周辺回路とを有し、前記メモリのデータバスと前記周辺回路のデータバスとが共通に接続されたメモリシステムにおいて、
前記制御回路は、前記メモリに対して前記第1のクロックを出力するか否か制御するためのクロックイネーブル信号及び前記第2のクロックに基づいて、前記第2のクロックに同期させて前記メモリからデータを読み出すことを特徴とするメモリシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000158101A JP4398066B2 (ja) | 2000-05-29 | 2000-05-29 | メモリ制御方法、sdram制御方法及びメモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000158101A JP4398066B2 (ja) | 2000-05-29 | 2000-05-29 | メモリ制御方法、sdram制御方法及びメモリシステム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001337861A JP2001337861A (ja) | 2001-12-07 |
JP2001337861A5 JP2001337861A5 (ja) | 2006-10-19 |
JP4398066B2 true JP4398066B2 (ja) | 2010-01-13 |
Family
ID=18662625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000158101A Expired - Fee Related JP4398066B2 (ja) | 2000-05-29 | 2000-05-29 | メモリ制御方法、sdram制御方法及びメモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4398066B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007097006A1 (ja) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | パケット送出制御装置および方法 |
-
2000
- 2000-05-29 JP JP2000158101A patent/JP4398066B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001337861A (ja) | 2001-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI474178B (zh) | 動態資料選通偵測 | |
US7085906B2 (en) | Memory device | |
US7716443B2 (en) | Apparatus and method for controlling memory interface | |
US8018791B2 (en) | Circuit, system and method for controlling read latency | |
JP5955323B2 (ja) | 構成可能な電力状態をもつダイナミックramphyインタフェース | |
KR100503850B1 (ko) | 기록 회복 시간을 입력 클럭의 함수로 설정하기 위한프로그래밍 매커니즘을 포함하는 클럭 메모리 디바이스 | |
JPH10207771A (ja) | メモリ動作短縮方法 | |
KR101536019B1 (ko) | 고속 dram에서 신호들을 처리하기 위한 시스템 및 방법 | |
US8069303B2 (en) | Method and apparatus for controlling memory precharge operation | |
JP3266127B2 (ja) | 同期式半導体記憶装置 | |
US6243768B1 (en) | Method and apparatus for controlling data transfer between a synchronous DRAM-type memory and a system bus | |
JPH11224221A (ja) | メモリ制御装置および方法 | |
US7180822B2 (en) | Semiconductor memory device without decreasing performance thereof even if refresh operation or word line changing operation occur during burst operation | |
JPH09180438A (ja) | メモリ制御装置 | |
US5926828A (en) | Method and apparatus for controlling data transfer between a synchronous DRAM-type memory and a system bus | |
JP4398066B2 (ja) | メモリ制御方法、sdram制御方法及びメモリシステム | |
US6775718B2 (en) | DMA control system enabling flyby transfer to synchronous memory | |
JP2011118932A (ja) | マイクロコンピュータ | |
US7103707B2 (en) | Access control unit and method for use with synchronous dynamic random access memory device | |
JP2009217310A (ja) | メモリアクセス方法及びメモリアクセス装置 | |
JP4633334B2 (ja) | 情報処理装置およびメモリアクセス調停方法 | |
JP3489497B2 (ja) | メモリコントローラ | |
JP2001014213A (ja) | マイクロコンピュータおよびマイクロコンピュータを用いたシステム | |
JP2004318500A (ja) | メモリ回路 | |
JP2003122623A (ja) | 書き込みコマンド高速送信のためのグラフィックスコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060830 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091005 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091020 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091022 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121030 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121030 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131030 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |