JP2006195810A - メモリコントローラおよび高速データ転送方法 - Google Patents
メモリコントローラおよび高速データ転送方法 Download PDFInfo
- Publication number
- JP2006195810A JP2006195810A JP2005007868A JP2005007868A JP2006195810A JP 2006195810 A JP2006195810 A JP 2006195810A JP 2005007868 A JP2005007868 A JP 2005007868A JP 2005007868 A JP2005007868 A JP 2005007868A JP 2006195810 A JP2006195810 A JP 2006195810A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data
- memory
- timing
- external
- 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.)
- Pending
Links
Images
Abstract
【課題】
メモリアクセスのタイミングを制御することで、メモリアクセスにおけるオーバヘッドを軽減してデータ転送の高速化を行うメモリコントローラおよび高速データ転送方法を提供する。
【解決手段】
CPU101からのデータを転送するシステムバスB01のバス幅とSDRAM105をコントロールLSI104に接続するメモリバスB05のバス幅の違いを吸収する一時保管回路であるFIFO部110を設け、タイミング制御部113からコマンド制御部114へのCPUスタート信号に基づいてFIFO部110に格納されたデータをバースト転送する。
【選択図】図1
メモリアクセスのタイミングを制御することで、メモリアクセスにおけるオーバヘッドを軽減してデータ転送の高速化を行うメモリコントローラおよび高速データ転送方法を提供する。
【解決手段】
CPU101からのデータを転送するシステムバスB01のバス幅とSDRAM105をコントロールLSI104に接続するメモリバスB05のバス幅の違いを吸収する一時保管回路であるFIFO部110を設け、タイミング制御部113からコマンド制御部114へのCPUスタート信号に基づいてFIFO部110に格納されたデータをバースト転送する。
【選択図】図1
Description
本発明は、高速データ転送を実現するメモリコントローラおよび高速データ転送方法に関し、特に、バースト転送が可能なメモリへのアクセスにかかるオーバヘッドを軽減してデータ転送の高速化を行うメモリコントローラおよび高速データ転送方法に関する。
近年、パーソナルコンピュータの処理性能や記憶領域が飛躍的に向上しているため、本来、周辺機器で行う処理をパーソナルコンピュータ上で行うような構成が可能となっている。そのため、周辺装置に搭載するCPU(Central Processing Unit:中央演算装置)の処理能力を低くすることができ、これによって、周辺機器の低コストを実現することができる。
しかしながら、接続された周辺機器に大容量のデータを送信した場合には周辺機器におけるCPUの処理能力を超えてしまい、機能停止や不安定な状態に陥ってしまう可能性が高くなる。また、周辺機器によっては入出力データを一括して送信しなければならないものがあり、通信におけるバス幅を同等以上にする必要がある。
この問題に対応した従来技術として特許文献1に開示されたものがある。この特許文献1に開示された従来技術では、CPUにおるデータの書込み又は読み出しサイクル別にデータの一部をI/Oバッファに一時保存しておき、この保存データと残りのデータを一括してI/Oデバイスに書込み又は読み出すことにより、CPUのデータバス幅がI/Oデバイスのレジスタ幅よりも小さい場合にもI/Oデバイスを1回アクセスすることでデータを転送できるようにしている。
特開2000−132501
しかしながら、特許文献1に示された従来技術においては、CPUのデータバス幅がI/Oデバイスのレジスタ幅よりも小さい場合により高速にデータを転送できるようにした技術ではあるが、データ転送における過程の中でCPUで処理するデータをI/Oバッファに一時的に保存するためデータの入出力にかかる時間が必要となり、オーバーヘッド時間を軽減できていないという問題がある。
そこで、本発明は、メモリアクセスのタイミングを制御することで、メモリアクセスにおけるオーバヘッドを軽減してデータ転送の高速化を行うメモリコントローラおよび高速データ転送方法を提供することを目的とする。
上記目的を達成するため、請求項1の発明は、外部素子との接続を実現するシステムバスのバス幅とバースト転送が可能なメモリとの接続を実現するメモリバスのバス幅が異なるメモリコントローラにおいて、前記システムバスを介してデータを受信し、受信したデータを一時的に格納する一時格納手段と、前記一時格納手段による前記データの格納タイミングに基づき、前記メモリへの書込みタイミングを制御するタイミング制御手段と、前記タイミング制御手段により制御されたメモリへのアクセスタイミングでデータを前記メモリへバースト転送する第1のデータ転送手段とを具備することを特徴とする。
また、請求項2の発明は、請求項1の発明において、前記一時格納手段は、前記受信したデータを先入れ先出しによって格納するFIFO格納手段を具備し、前記第1のデータ転送手段は、前記FIFO格納手段により格納された順にデータを転送することを特徴とする。
また、請求項3の発明は、請求項1の発明において、前記タイミング制御手段は、前記メモリへ送出するデータの書込みを可能とするアクティブコマンドからデータの書込みを行うライトコマンドまでの時間を算出する時間算出手段を具備し、前記第1のデータ転送手段は、前記時間算出手段により算出された時間に基づいてデータ転送を行うことを特徴とする。
また、請求項4の発明は、バス幅の異なる複数の外部バスによって外部素子が接続され、該外部バスのバス幅がバースト転送可能なメモリを接続するメモリバスのバス幅と少なくとも1つ同じであるメモリコントローラにおいて、前記メモリバスとの通信を実現する前記外部バスを特定する外部バス特定手段と、前記外部バス特定手段により特定された前記外部バスのバス幅が前記メモリバスのバス幅と等しいか判断する判断手段と、前記判断手段により異なると判断されたバス幅を持つ前記外部バスからのデータを前記一時的に格納し、前記判断手段により等しいと判断されたバス幅を持つ前記外部バスからのデータを前記メモリにバースト転送する第2のデータ転送手段と、前記データ転送手段により一時的に格納されたデータのバースト転送タイミングを最適化する転送タイミング制御手段を具備することを特徴とする。
また、請求項5の発明は、請求項4の発明において、前記転送タイミング制御手段は、前記一時的に格納されたデータの転送開始を示すスタート信号を前記判断手段により等しいバス幅を持つ外部素子からのデータ転送の完了を示すプレチャージコマンド直後に発信することを特徴とする。
また、請求項6の発明は、外部素子との接続を実現するシステムバスのバス幅とバースト転送が可能なメモリとの接続を実現するメモリバスのバス幅が異なるメモリコントローラにおける高速データ転送方法において、前記システムバスを介してデータを受信し、受信したデータを一時格納手段で一時的に格納し、前記一時格納手段による前記データの格納タイミングに基づき、前記メモリへの書込みタイミングをタイミング制御手段で制御し、前記タイミング制御手段により制御されたメモリへのアクセスタイミングでデータを前記メモリへバースト転送することを特徴とする。
また、請求項7の発明は、バス幅の異なる複数の外部バスによって外部素子が接続され、該外部バスのバス幅がバースト転送可能なメモリを接続するメモリバスのバス幅と少なくとも1つ同じであるメモリコントローラにおける高速データ転送において、前記メモリバスとの通信を実現する前記外部バスを外部バス特定手段で特定し、前記外部バス特定手段により特定された前記外部バスのバス幅が前記メモリバスのバス幅と等しいか判断手段で判断し、前記判断手段により異なると判断されたバス幅を持つ前記外部バスからのデータを前記一時的に格納し、前記判断手段により等しいと判断されたバス幅を持つ前記外部バスからのデータを第2のデータ転送手段で前記メモリにバースト転送し、前記データ転送手段により一時的に格納されたデータのバースト転送タイミングを最適化することを特徴とする。
本発明によれば、CPUなどの外部素子からメモリへのデータ格納のタイミングを制御することによりデータの書き込みを指示するCPUスタート信号の発信タイミングを制御するように構成したので、メモリアクセスにかかるオーバヘッドを最小限に抑制することができ、高速データ転送が可能になるという効果を奏する。
以下、本発明に係わるメモリコントローラおよび高速データ転送方法の一実施例を添付図面を参照して詳細に説明する。
なお、本願発明のメモリコントローラをプリンタに搭載した実施例を以下に示す。
図1は、この発明に係わるメモリコントローラおよび高速データ転送方法を適用して構成した機器のシステム構成図である。
図1には、メモリコントローラの周辺構成として、CPU(Central Processing Unit:中央演算装置)101、USB(Universal Serial Bus:シリアル通信バス)インターフェース102、プリンタエンジン103、プリンタコントロールLSI(Large Scale Integration:大規模集積回路)104、SDRAM(Synchronous Dynamic Random Access Memory:高速メモリ)105を含んだ構成を示している。
CPU101、USBインターフェース102、プリンタエンジン103、SDRAM105は、プリンタコントロールLSI104に接続された構成をしており、CPU101とSDRAM105はプリンタコントロールLSI104とそれぞれシステムバス、メモリバスによって接続されている。また、USBインターフェース102とプリンタエンジン103は、外部バスによって接続されている。
このときのシステムバスは、データの格納位置を示すアドレスと転送するデータ自身とで時分割で共用しており、そのバス幅は32bitとする。さらに、1回のアドレス指定で複数のデータをまとめて連続的に転送するバースト転送時のバースト長は、8バーストとする。
CPU101は、プリンタにおける主制御を行う。
USBインターフェース102は、USB規格により接続された外部装置との通信を実現する。
プリンタエンジン103は、印刷出力を行う印刷出力部などの駆動部を示し、CPU101により印刷制御された印刷データの印刷出力を実現する。
プリンタコントロールLSI104は、CPU制御部106、USB制御部107、画像処理制御部108、メモリコントローラ109を具備して構成される。
CPU制御部106は、CPU101により制御された信号に基づいてプリンタコントロールLSI104内のアクセス制御を行う。
例えば、CPUによって指定されたSDRAM105のアドレスをデコードするデコード時間やSDRAM105へのアクセスタイミングを考慮してアクセス開始するなどの制御を行う。
USB制御部107は、USBインターフェース102とのデータの送受信を行い、CPU101を介さずにUSBインターフェース102に接続された外部装置とメモリとの間でデータをやりとりするDMA(Direct Memory Access:ダイレクトメモリ転送)によって書き込むことができる。
画像処理制御部108は、SDRAM105に格納された印刷データの画像処理を行い、該印刷データをプリンタエンジン103に対して上記DMAによって転送する。
メモリコントローラ109は、CPU制御部106によりアクセス制御されたデータやUSB制御部107により制御された外部装置からのデータ、そして印刷出力を行うために画像処理制御部108に転送するデータなどをメモリに記憶したり、メモリから取り出したりするなどSDRAM105に記憶されたデータの制御を行う。
例えば、印刷要求を受け付けて画像処理制御部108が直接、SDRAM105に記憶された印刷データをメモリコントローラ109を介して取得し、プリンタエンジン103に出力する。データをSDRAM105に記憶したり取得したりするなどの制御を行う。
メモリコントローラ109は、FIFO(First-In First-Out:先入れ先出し法)部110、アドレスデコード部111、セレクタ112、タイミング制御部113、コマンド制御部114を具備して構成されている。
FIFO部110は、入力元と出力先のバス幅の違いによるデータ転送レートの違いを吸収し、これらの接続を実現するためのデータの一時的な保管回路である。出力先のバス幅に合わせたデータ量を入力元から入力された順序にしたがって処理する。
アドレスデコード部111は、バスマスタであるCPU制御部106、USB制御部107、画像処理制御部108からのアドレスを抜き出し、抜き出したアドレスをデコードする。このとき各バスマスタからのスタート信号をトリガにしてデコードを開始し、SDRAM105へのCS(Chip Select:チップセレクト)信号の選択を行う。
セレクタ112は、アクセス中のバスマスタの種類を検出することにより、そのバスマスタとのバス幅によってFIFO部110と送受信を行うか直接送受信を行うかを選択する。
タイミング制御部113は、各バスマスタ(CPU制御部106、USB制御部107、画像処理制御部108)からのアクセス状況を把握し、起動信号であるスタート信号を出力する。例えば、CPU制御部106からのアクセス時には「CPUスタート信号」を出力し、USB制御部107からのアクセス時には「USBスタート信号」を出力し、画像処理制御部108からのアクセス時には「画像処理スタート信号」を出力する。
すなわち、FIFO部110とSDRAM105のアクセスタイミングを考慮し、メモリアクセスのスタートタイミングを制御することができる。
コマンド制御部114は、タイミング制御部113からのCPUスタート信号、USBスタート信号、画像処理スタート信号を受け付け、信号の種類に応じたメモリコマンドを生成し、SDRAM105に対して送出する。
これによりメモリコントローラ109は、各バスマスタからのメモリアクセスを制御することができる。
SDRAM105は、画像処理が行われる印刷データを記憶しておく。タイミング制御部113から送出されてくるいずれかのスタート信号に基づいてコマンド制御部114で生成したメモリコマンドに基づくアドレスのデータを取り出し可能とする。
このような構成によると、メモリアクセスにおけるアクセスタイミングを統一することができ、オーバヘッドを軽減することができる。
図2は、本発明に係わるメモリコントローラおよび高速データ転送方法を適用したタイミングチャートを示す図である。
図2において、システムクロック(SYSCLK)としてT1〜T19まで刻まれており、クロック単位でデータ通信が行われる。図1に示す32ビットのバス幅を持つシステムバスB01、同じく32ビットのバス幅を持つCPUメモリデータバスB02、FIFO部100のそれぞれにおけるタイミングチャートが示されており、FIFO部110に格納されたデータはCPUスタート信号を受信したタイミングでFIFO部110からSDRAM105に対して書込みが可能となる。このときのFIFO部110はシステムバスB01のバス幅(32ビット)とメモリバスB05のバス幅(64ビット)の違いを吸収するために設けられており、FIFO部110に全てのデータがそろうタイミングでSDRAM105にデータの書込みを終了するようにCPUスタート信号を送信する。
図2に示すようにシステムクロックT1のタイミングでシステムバスB01上をヘッダー(Acpu)が送られ、T2〜T9のタイミングにそれぞれD1〜D8のデータがバースト転送される。続いて、CPUメモリデータバスB02にはT2のタイミングでヘッダー(Acpu)が送られ、T3〜T10のタイミングにそれぞれD1〜D8のデータが同様にバースト転送される。
このとき、FIFO部の1つ目の格納領域(FIFO1)には、T5〜T12の間、D1、D2のデータが格納された状態になり、また、2つ目の格納領域(FIFO2)には、T7〜T12の間、D3、D4のデータが格納された状態になる。また、同様に、3つ目の格納領域(FIFO3)には、T9〜T12の間、D5、D6のデータが格納された状態になり、4つ目の格納領域(FIFO4)には、T11とT12の間、D7、D8のデータが格納された状態になる。
これらシステムバスB01、CPUメモリデータバスB02、FIFO部110でのタイミングチャートに基づいてそれぞれのシステムに応じたCPUスタート信号を送信するタイミングを示す。
まず、図2の201に示したFIFO部110にそろうタイミングを計算し、CPUスタート信号を送信するシステムでは、FIFO部110に全てのデータが格納されるタイミングを計算する。図に示す例では、T12のタイミングに全てのデータがFIFO部110に格納される。
すなわち、メモリバスB05のバス幅(64ビット)とシステムバスB01のバス幅(32ビット)乃至CPUメモリデータバスB02のバス幅(32ビット)とを考慮してT12のタイミングで全てのデータ(D1〜D8)がSDRAM105に書き込まれるようにタイミング制御を行う。この場合、システムバスB01乃至CPUメモリデータバスB02のバス幅が32ビットであるのに対して、メモリバスB05のバス幅が64ビットであるため、メモリバスB05では、システムバスB01乃至CPUメモリデータバスB02でデータを送るのに要した半分の時間でデータを送ることができる。図2に示す例では、32ビット幅のシステムバスB01、CPUメモリデータバスB02でD1〜D8の8つの32ビットを1ワードとしたデータを送るのに要した時間がT2〜T9の8クロックであるのに対して、64ビット幅のメモリバスB05では半分の4クロックで送ることができる。
これらのことから、T12のタイミングでD1〜D8の8つの32ビットを1ワードとしたデータを書き込むには、4クロック前のT9のタイミングで送信を開始すればよいことがわかる。
データをSDRAM105への書込み開始を示すメモリコマンドのWRコマンドは、データを送るクロックタイミングで送信すればよいため、データの送信開始タイミングであるT9のタイミングに送る。さらにSDRAM105への書込みを可能とするACTコマンドは、WRコマンドの2クロック前に送信するためT7のタイミングで送信する。またさらに、T7のタイミングでACTコマンドを発行するにはその直前のクロックであるT6のタイミングでCPUスタート信号を送信すればよい。
以上のことからCPUスタート信号をT6のタイミングで送信することによってFIFO部110に送られてくるタイミングとメモリバスB05でSDRAM105に書き込まれるタイミングとが一致し、メモリへのデータ書込みにおけるオーバヘッドを最小限に軽減することができる。
次に、図2の202に示したメモリコマンドのACTコマンドの発行からWRコマンドの発行までに2クロック以上必要なシステムにおけるCPUスタート信号の送信タイミングを求める。
メモリコマンドの書込み開始を示すWRコマンドの発行タイミングを算出するまでの過程は、上記201に示すシステムと同じであるが、ACTコマンドを発行してからWRコマンドを発行するまでに2クロック必要であるので、WRコマンドをT9のタイミングで発行するためにはT6のタイミングでACTコマンドを発行する必要がある。さらにT6のタイミングでACTコマンドを発行するには、その直前のT5のタイミングでCPUスタート信号を送信する必要がある。よってこのようなシステムでは、T12のタイミングでデータをそろえるためにはT5のタイミングでCPUスタート信号を送信する。
このようにシステム固有のタイミングを考慮してCPUスタート信号を送信することができるので、ACTコマンドからWRコマンドまでの時間を多く必要とするシステムにおいて、よりオーバヘッドを軽減することができる。
なお、ACTコマンドの発行からWRコマンドの発行までに要する時間が2クロックであるシステムにおいて説明したが、2クロックに限定されることなく、システムの発行までに要する時間に応じてタイミングを制御することができる。
次に、メモリコマンドのACTコマンドの発行からWRコマンドの発行までに2クロック以上必要であり、かつ、CPU制御部106からSDRAM105に書き込むアドレス情報をメモリコントローラ109が受信し、どの素子に対して読み出しや書込みを行うのかを指定するチップセレクト信号のデコード時間が1クロック以上必要なシステムにおけるCPUスタート信号の送信タイミングを求める。
メモリコマンドのACTコマンドの発行からWRコマンドの発行までに2クロック以上必要な場合のCPUスタート信号の送信タイミングは、上記よりT5のタイミングと算出することができる。そして、チップセレクト信号のデコード時間が1クロック必要であるため、T5のタイミングよりも更に1クロック分、先にCPUスタート信号を送信する。すなわちT4のタイミングでCPUスタート信号を送信する。
これによって、ACTコマンドの発行からWRコマンドの発行までに2クロック要し、さらにチップセレクト信号のデコード時間が1クロック必要なシステムにおいてもその必要なクロックを考慮してCPUスタート信号を送信することができるため、さらなるオーバヘッドの軽減が図れる。
以上に示すそれぞれ送信タイミングが異なるシステムにおいて、データの書込みタイミングを合わせることができるためオーバヘッドが軽減される。これによって、バーストアクセスが可能なSDRAM105への高速データ転送が行われる。
図3は、本発明に係わるメモリコントローラおよび高速データ転送方法を適用した他のタイミングチャートを示す図である。
図3には、SDRAM105へのアクセス要求を行うバスマスタとしてCPU101、画像処理制御部108があり、その画像処理制御部108がSDRAM105に直接アクセスする(DMA:Direct Memory Access)ために接続された画像処理メモリデータバスB04のバス幅は64ビットであってこのバス幅はメモリバスB05のバス幅と同じである。
CPU101からSDRAM105へのアクセスと画像処理制御部108からSDRAM105へのアクセスが競合した場合におけるCPUスタート信号の送信タイミングを示す図である。
図2に示すのと同様、T3のタイミングでCPUからヘッダー(Acpu)が送られてきて、T4〜T11のタイミングにそれぞれのデータ(D1〜D8)がバースト転送される。続いて、CPUメモリデータバスB02にT4のタイミングからT12のタイミングでデータがバースト転送される。
このとき、FIFO部の1つ目の格納領域(FIFO1)には、T7〜T14の間、D1、D2のデータが格納された状態になり、また、2つ目の格納領域(FIFO2)には、T9〜T14の間、D3、D4のデータが格納された状態になる。また、同様に、3つ目の格納領域(FIFO3)には、T11〜T14の間、D5、D6のデータが格納された状態になり、4つ目の格納領域(FIFO4)には、T13とT14の間、D7、D8のデータが格納された状態になる。
またさらに、画像処理制御部108からもT2のタイミングでビデオデータのヘッダー(Avideo)が送られてくる。続いて64ビットを1ワードとしたデータをT3のタイミングからT6のタイミングでバースト転送する。これは、画像処理メモリデータバスB04のバス幅が64ビットであるため、32ビットを1ワードとした8つのデータは、T3からT6までの4クロックで転送(送信)することができる。
このようにシステムバスB01と画像処理メモリデータバスB04それぞれからデータの送信があった場合、先行して送出されてきた画像処理メモリデータバスB04からのデータをSDRAM105に書き込む処理を優先して行い、その後にシステムバスB01から送信されてきたデータを書き込む処理を行う。
まず、画像処理メモリデータバスB04のデータをSDRAM105に書き込むために画像処理スタート信号を送信するタイミングを求め、次にシステムバスB01のデータの書込みを行うためのCPUスタート信号を送信するタイミングを求める。
画像処理メモリデータバスB04のデータをT8のタイミングでデータが揃うようにするためには4クロック前のT5にデータの送信を開始すればよい。つまり、T5のタイミングでメモリコマンドのWRコマンドを送信する。この場合、上記にも示すようにメモリへの書込み可能状態を示すACTコマンドをWRコマンドの2クロック前に送信することからT3のタイミングで送信することになる。そして、その直前のT2のタイミングで画像処理スタート信号を送信すれば、T8のタイミングでデータが揃うことになる。また、T8のタイミングでデータが書き込まれた後のT9のタイミングにデータの終了を示すPREコマンドを送信することによって画像処理制御部からのデータ転送の終わりを判断する。
PREコマンドが送信されると画像処理制御部108からのデータ転送が終了したと判断されるので、次にCPUスタート信号を送信することによってシステムバスB01のデータをSDRAM105に対して書込み処理を行う。この際の書込み処理の処理内容は、図2に示す書込み処理と同じである。
これによって、画像処理制御部108とCPU101からSDRAM105へのアクセスが競合した場合であってもオーバヘッドを軽減したデータ転送が可能となる。
図4は、従来技術におけるCPU101からメモリへのアクセスタイミングを示すタイミングチャート図である。
図4において、システムクロック(SYSCLK)としてT1〜T19まで刻まれており、クロック単位でデータ通信が行われる。また、タイミングチャートの項目としてシステムバスB01、CPUメモリデータバスB02、FIFO部10(1〜4)、CPUスタート信号、メモリコマンド、メモリバスB05が示されている。このとき、システムバスB01およびCPUメモリデータバスB02のバス幅は32ビット幅であり、メモリバスB05のバス幅は64ビット幅である。これは、1クロック当りに送信することができるビット数を示している。
システムバスB01は図1に示すようにCPU101からプリンタコントロールLSI104のCPU制御部106とを接続したバスであり、CPU101からの処理内容をCPU制御部106に伝える。また、CPUメモリデータバスB02は、プリンタコントロールLSI104内でアクセス制御を行うCPU制御部106からFIFO部110に対してデータを送出する。
図4のタイミングチャートに示された項目としてシステムバスB01を流れるデータ、CPUメモリデータバスB02を流れるデータ、FIFO部110におけるデータ、CPUスタート信号、メモリコマンド、メモリバスB05を流れるデータが示されている。
システムバスB01のタイミングチャートとして、1クロック目に示すヘッダー(Acpu)と2クロック目から9クロック目までの各クロックに示した32ビットを1ワードとしたデータ(D1〜D8)が流れると、続いてCPUメモリデータバスB02のタイミングチャートとして2クロック目に示すヘッダー(Acpu)と3クロック目から10クロック目までのデータ(D1〜D8)が流れる。
このとき、FIFO部の1つ目の格納領域(FIFO1)には、5クロック目から12クロック目でD1、D2のデータが格納された状態になり、また、2つ目の格納領域(FIFO2)には、7クロック目から12クロック目でD3、D4のデータが格納された状態になる。
また同様に、3つ目の格納領域(FIFO3)には、9クロック目から12クロック目でD5、D6のデータが格納された状態になり、4つ目の格納領域(FIFO4)には、11クロック目から12クロック目でD7、D8のデータが格納された状態になる。
そして、FIFO4にデータが格納されると同時にタイミング制御部113からCPUスタート信号が発信され、信号を受信したコマンド制御部114は、メモリコマンドとしてSDRAM105にデータの書込みが可能になったことを示すACTコマンドを送信する。これによって、メモリは書込み可能な状態になる。
このときのCPUスタート信号は、CPUアクセスのバス幅の差によるオーバヘッドによってビデオなどのDMA(Direct Memory Access:ダイレクトメモリ転送)が遅延されることがないようにするため、全てのデータ(D1〜D8)がそろうまでCPUのメモリアクセスをスタートさせることができない。
FIFO部110へのデータ格納が終了すると(12クロック目)、同時にメモリコマンドはWRコマンドをSDRAM105に送信し、FIFO部110に格納されたD1〜D8をメモリバスB05に流す。このとき、メモリバスB05はシステムバスB01乃至CPUメモリデータバスB02の2倍のバス幅である64ビットであるため、システムバスB01、CPUメモリデータバスB02の2クロック分のデータを1クロックで送信することができる。
すなわち、1クロック単位で32ビットを1ワードとしたデータを2つ送信することができるため、13クロック目で送信を開始したデータは16クロック目で送信を終了する。そして、17クロック目に全てのデータがSDRAM105に送信したことを示すPREコマンドを送る。これによってCPU101からメモリ(SDRAM105)への書込みが行われたことになる。
図4に示す従来技術では、CPU101からSDRAM105への書込みにかかる時間は17クロックを必要とすることになる。それに対して、本願発明では、図2に示すように13クロックで書込みが終了する。
以上の処理によって、本発明のメモリコントローラおよび高速データ転送方法によって、メモリアクセスのタイミングを統一することができ、メモリアクセス時のオーバヘッドを軽減することができる。
これにより、SDRAMなどのメモリのバス幅に対してバス幅の小さいCPUが搭載されたプリンタにおいて、データの高速転送が可能となる。
従って、本発明を適用することにより、CPUからメモリへのアクセス時のタイミングを制御することにより、CPUの処理能力の小さい電子機器においてもデータの高速転送が可能になるという効果を期待できる。
さらに、高速で低価格な電子機器を提供可能であるという効果をも期待できる。
本発明は、上記し、且つ図面に示す実施例に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
本発明は、CPUのバス幅に対してバス幅の大きいメモリが接続されたメモリコントローラおよび高速データ転送方法に適用可能であり、特に、バーストアクセスが可能なSDRAMが搭載された場合にそのSDRAMへのアクセスタイミングを制御することにより高速データ転送するのに有用である。
101 CPU
102 USBインターフェース
103 エンジン
104 プリンタコントロールLSI
105 SDRAM
106 CPU制御部
107 USB制御部
108 画像処理制御部
109 メモリコントローラ
110 FIFO部
111 アドレスデコード部
112 セレクタ
113 タイミング制御部
114 コマンド制御部
102 USBインターフェース
103 エンジン
104 プリンタコントロールLSI
105 SDRAM
106 CPU制御部
107 USB制御部
108 画像処理制御部
109 メモリコントローラ
110 FIFO部
111 アドレスデコード部
112 セレクタ
113 タイミング制御部
114 コマンド制御部
Claims (7)
- 外部素子との接続を実現するシステムバスのバス幅とバースト転送が可能なメモリとの接続を実現するメモリバスのバス幅が異なるメモリコントローラにおいて、
前記システムバスを介してデータを受信し、受信したデータを一時的に格納する一時格納手段と、
前記一時格納手段による前記データの格納タイミングに基づき、前記メモリへの書込みタイミングを制御するタイミング制御手段と、
前記タイミング制御手段により制御されたメモリへのアクセスタイミングでデータを前記メモリへバースト転送する第1のデータ転送手段と
を具備することを特徴とするメモリコントローラ。 - 前記一時格納手段は、
前記受信したデータを先入れ先出しによって格納するFIFO格納手段を具備し、
前記第1のデータ転送手段は、
前記FIFO格納手段により格納された順にデータを転送する
ことを特徴とする請求項1記載のメモリコントローラ。 - 前記タイミング制御手段は、
前記メモリへ送出するデータの書込みを可能とするアクティブコマンドからデータの書込みを行うライトコマンドまでの時間を算出する時間算出手段
を具備し、
前記第1のデータ転送手段は、
前記時間算出手段により算出された時間に基づいてデータ転送を行う
ことを特徴とする請求項1記載のメモリコントローラ。 - バス幅の異なる複数の外部バスによって外部素子が接続され、該外部バスのバス幅がバースト転送可能なメモリを接続するメモリバスのバス幅と少なくとも1つ同じであるメモリコントローラにおいて、
前記メモリバスとの通信を実現する前記外部バスを特定する外部バス特定手段と、
前記外部バス特定手段により特定された前記外部バスのバス幅が前記メモリバスのバス幅と等しいか判断する判断手段と、
前記判断手段により異なると判断されたバス幅を持つ前記外部バスからのデータを前記一時的に格納し、前記判断手段により等しいと判断されたバス幅を持つ前記外部バスからのデータを前記メモリにバースト転送する第2のデータ転送手段と、
前記データ転送手段により一時的に格納されたデータのバースト転送タイミングを最適化する転送タイミング制御手段
を具備することを特徴とするメモリコントローラ。 - 前記転送タイミング制御手段は、
前記一時的に格納されたデータの転送開始を示すスタート信号を前記判断手段により等しいバス幅を持つ外部素子からのデータ転送の完了を示すプレチャージコマンド直後に発信する
ことを特徴とする請求項4記載のメモリコントローラ。 - 外部素子との接続を実現するシステムバスのバス幅とバースト転送が可能なメモリとの接続を実現するメモリバスのバス幅が異なるメモリコントローラにおける高速データ転送方法において、
前記システムバスを介してデータを受信し、受信したデータを一時格納手段で一時的に格納し、
前記一時格納手段による前記データの格納タイミングに基づき、前記メモリへの書込みタイミングをタイミング制御手段で制御し、
前記タイミング制御手段により制御されたメモリへのアクセスタイミングでデータを前記メモリへバースト転送する
ことを特徴とするメモリコントローラにおける高速データ転送方法。 - バス幅の異なる複数の外部バスによって外部素子が接続され、該外部バスのバス幅がバースト転送可能なメモリを接続するメモリバスのバス幅と少なくとも1つ同じであるメモリコントローラにおける高速データ転送において、
前記メモリバスとの通信を実現する前記外部バスを外部バス特定手段で特定し、
前記外部バス特定手段により特定された前記外部バスのバス幅が前記メモリバスのバス幅と等しいか判断手段で判断し、
前記判断手段により異なると判断されたバス幅を持つ前記外部バスからのデータを前記一時的に格納し、前記判断手段により等しいと判断されたバス幅を持つ前記外部バスからのデータを第2のデータ転送手段で前記メモリにバースト転送し、
前記データ転送手段により一時的に格納されたデータのバースト転送タイミングを最適化する
ことを特徴とするメモリコントローラにおける高速データ転送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005007868A JP2006195810A (ja) | 2005-01-14 | 2005-01-14 | メモリコントローラおよび高速データ転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005007868A JP2006195810A (ja) | 2005-01-14 | 2005-01-14 | メモリコントローラおよび高速データ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006195810A true JP2006195810A (ja) | 2006-07-27 |
Family
ID=36801850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005007868A Pending JP2006195810A (ja) | 2005-01-14 | 2005-01-14 | メモリコントローラおよび高速データ転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006195810A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017504120A (ja) * | 2014-01-24 | 2017-02-02 | クアルコム,インコーポレイテッド | ダイナミックランダムアクセスメモリ(dram)インターフェースのためのシリアルデータ伝送 |
-
2005
- 2005-01-14 JP JP2005007868A patent/JP2006195810A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017504120A (ja) * | 2014-01-24 | 2017-02-02 | クアルコム,インコーポレイテッド | ダイナミックランダムアクセスメモリ(dram)インターフェースのためのシリアルデータ伝送 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0993680B1 (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
US20040107265A1 (en) | Shared memory data transfer apparatus | |
US20020184453A1 (en) | Data bus system including posted reads and writes | |
KR100375233B1 (ko) | 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러 | |
US6584512B1 (en) | Communication DMA device for freeing the data bus from the CPU and outputting divided data | |
JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
US7310717B2 (en) | Data transfer control unit with selectable transfer unit size | |
US8769167B2 (en) | Channel device, information processing system and data transfer method | |
US20050188128A1 (en) | Data transfer apparatus | |
JP2006195810A (ja) | メモリコントローラおよび高速データ転送方法 | |
US20020188771A1 (en) | Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof | |
JPH0553902A (ja) | メモリ制御回路 | |
JP4125933B2 (ja) | 共通メモリを備えたプロセッサシステム | |
JP3206656B2 (ja) | バス上でのプリフェッチ装置およびプリフェッチ方法 | |
JP2003085125A (ja) | メモリ制御器及びメモリ制御方法 | |
KR100690597B1 (ko) | 이중모드 직접메모리접근을 지원하는 중앙처리장치를이용한 단일모드 직접메모리접근 구현 방법 | |
KR100662275B1 (ko) | 단일 번지 모드를 사용한 dma 전송 장치 | |
KR100606698B1 (ko) | 인터페이스 장치 | |
JPH0351943A (ja) | 高速バスと低速バスのバスライン共用化方式 | |
JP4496923B2 (ja) | 共有メモリシステム | |
JP2009059155A (ja) | Usbホストコントローラ装置 | |
JP2006155220A (ja) | 半導体集積回路及びそのアクセス制御方法 | |
JP2001256169A (ja) | データ転送制御システム及び装置 | |
KR20050067324A (ko) | 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법 | |
JPS6269347A (ja) | ダイレクトメモリアクセスコントロ−ラ |