JP2006134175A - メモリ転送制御装置及びデータ処理システム - Google Patents

メモリ転送制御装置及びデータ処理システム Download PDF

Info

Publication number
JP2006134175A
JP2006134175A JP2004324080A JP2004324080A JP2006134175A JP 2006134175 A JP2006134175 A JP 2006134175A JP 2004324080 A JP2004324080 A JP 2004324080A JP 2004324080 A JP2004324080 A JP 2004324080A JP 2006134175 A JP2006134175 A JP 2006134175A
Authority
JP
Japan
Prior art keywords
data
bus
data storage
unit
memory
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.)
Withdrawn
Application number
JP2004324080A
Other languages
English (en)
Inventor
Masahiro Ito
正博 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004324080A priority Critical patent/JP2006134175A/ja
Publication of JP2006134175A publication Critical patent/JP2006134175A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 メモリからデータを読み出す際に、その読み出し回数を削減する。
【解決手段】 カレントアドレス計測部216の値と直接入力データ数計測部210の値とに基づいてデータ取り込み方法判定部211がバス動作制御部206を使用すると判定した場合は、バス動作制御部206に対しバス動作開始要求を出し、データ格納制御選択部212によりバスデータ格納制御部207を選択して読み出しデータを格納する。また直接入力部208を使用すると判定した場合は、データ格納制御選択部212により直接入力データ格納制御部209を選択して読み出しデータを格納する。
【選択図】 図2

Description

本発明は、デバイス間でデータを転送する技術に関する。
従来、2つのデバイスの間でデータの転送を行う場合、CPUがそれぞれのデバイスに直接アクセスして処理を行うと高速に転送することができない。また、2つのデバイスにおける転送速度や転送単位等が異なることが多く、一定時間内に転送動作を完了しなければならない場合もあり、デバイス間を直接接続して転送するには専用のバッファメモリを設ける必要があり、コストアップになる。
そのため、それぞれのデバイスに対して独立に動作する「DMA」機能を設け、共有のメモリ領域に対してDMAで書き込み及び読み出しを行い、デバイス間の転送速度を緩衝し、高速な転送を低コストで実現できるものが提案されている(例えば、特許文献1参照。)。また、一旦共有のメモリ領域に書き込まれたデータは、単なる一時的なものとしてだけでなく、CPUが別の用途に使用することもできる。
このようなシステムは、一般的に図1に示すようなブロックの構成によって実現されている。
図1は、一般的なデバイス間におけるデータ転送システムの構成の一例を示すブロック図である。図1に示すように、1つのシステムバスにCPU100、メモリコントローラ101、DMAコントローラ112、DMAコントローラ122が接続されている。
CPU100は、各種コントローラやシステム全体の制御を行う。メモリコントローラ101はRAM102に対するデータの読み書きを制御する。RAM102はDRAMといったメモリデバイスである。デバイスコントローラ111及び121は、それぞれデバイス110及び120に対するデータの送受信を制御する。そして、DMAコントローラ112及び122は、それぞれデバイスコントローラ111及び121とRAM101との間でDMA転送を行う。
図1に示す構成において、デバイス110からデバイス120へデータ転送する場合、CPU100の制御によってDMAコントローラ112がデバイス110からのデータをRAM102へ書き込む動作と、DMAコントローラ122がデバイス120へのデータをRAM102から読み出す動作が、それぞれのデバイスにおける転送速度に応じて独立に行われる。
特開2002-288116号公報
しかしながら、上記従来の転送処理においては、DMAコントローラ122は、DMAコントローラ112によって書き込まれた量と同じ量のデータをRAM102から読み出さなければならない。そのため、RAM102からの読み出しには、RAM102を構成するメモリデバイスに依存した待ち時間が発生する。この読み出しにおける待ち時間は、デバイス120に対する転送性能だけでなく、待っている間DMAコントローラ122がシステムバスを占有するのでシステム全体の性能にも影響を及ぼすという問題がある。
本発明は上記課題を解決するためになされたもので、メモリからデータを読み出す際に、その読み出し回数を削減することを目的とする。
本発明は、バスに接続され、所定のバスマスターがメモリに書き込むデータを読み出すメモリ転送制御装置であって、読み出しデータを一時的に格納するデータ格納手段と、バス上にトランザクションを発行し、バス動作を制御するバス動作制御手段と、メモリから転送されるデータを格納するバスデータ格納制御手段と、バスマスターからのデータを直接入力する直接入力手段と、前記直接入力手段によって入力されたデータを前記データ格納手段に格納する直接入力データ格納制御手段と、前記データ格納手段に対する格納動作において、前記バスデータ格納制御手段と前記直接入力データ格納制御手段の何れかを選択するデータ格納制御選択手段と、前記直接入力手段によって入力されたデータの数と、前記データ格納手段に格納されたデータの数とを比較して、読み出しデータを取り込むために前記バス動作制御手段と前記直接入力手段のどちらを使用するかを判定する判定手段とを有し、前記判定手段で前記バス動作制御手段を使用すると判定した場合は、前記バス動作制御手段に対しバス動作開始要求を出し、前記データ格納制御選択手段により前記バスデータ格納制御手段を選択して読み出しデータを取り込み、前記判定手段で前記直接入力手段を使用すると判定した場合は、前記データ格納制御選択手段により前記直接入力データ格納制御手段を選択して読み出しデータを取り込むことを特徴とする。
また、本発明は、バスに接続され、所定のバスマスターがメモリに書き込むデータを読み出すメモリ転送制御装置であって、読み出しデータを一時的に格納するデータ格納手段と、バス上にトランザクションを発行し、バス動作を制御するバス動作制御手段と、メモリから転送されるデータを前記データ格納手段に格納するバスデータ格納制御手段と、読み出し対象データを書き込むトランザクションを検出する書き込みトランザクション検出手段と、前記書き込みトランザクション検出手段によって検出された書き込みトランザクションにおける書き込みデータを前記データ格納手段に格納する書き込みデータ格納制御手段と、前記データ格納手段に対する格納動作において、前記バスデータ格納制御手段と前記書き込みデータ格納制御手段の何れかを選択するデータ格納制御選択手段と、前記書き込みトランザクション検出手段によって検出された書き込みトランザクションにおける書き込みデータの数と、前記データ格納手段に格納されたデータの数とを比較して、読み出しデータを取り込むために前記バス動作制御手段と書き込みトランザクション検出手段のどちらを使用するかを判定する判定手段とを有し、前記判定手段で前記バス動作制御手段を使用すると判定した場合は、前記バス動作制御手段に対しバス動作開始要求を出し、前記データ格納制御選択手段により前記バスデータ格納制御手段を選択して読み出しデータを取り込み、前記判定手段で書き込みトランザクション検出手段を使用すると判定した場合は、前記データ格納制御選択手段により前記書き込みデータ格納制御手段を選択して読み出しデータを取り込むことを特徴とする。
本発明によれば、メモリからデータを読み出す際に、その読み出し回数を削減することができるため、データ転送性能及びシステム全体の性能を向上させると共に、消費電力も削減できる。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
図2は、実施例1におけるDMAコントローラの構成の一例を示すブロック図である。図2に示すように、DMAコントローラ200は、レジスタインターフェース(I/F)201、レジスタアクセス制御部202、制御レジスタ203、動作制御部204、バスインターフェース205、バス動作制御部206、バスデータ格納制御部207、直接入力部208、直接入力データ格納制御部209、直接入力データ数計測部210、データ取り込み方法判定部211、データ格納制御選択部212、格納データ数計測部213、データ格納部214、デバイスインターフェース215、カレントアドレス計測部216から構成されている。
ここで、図2に示すDMAコントローラ200の各ブロックについて詳細に説明する。レジスタインターフェース201は、不図示のCPUがDMAコントローラ200の動作制御を行うために制御レジスタ203に対して読み書きを行う入出力部である。レジスタアクセス制御部202は、CPUアクセスにおけるアドレス値のデコード処理を行い、所定のアドレスにマッピングされた制御レジスタ203に対する読み書きを制御する。制御レジスタ203は、DMAコントローラ200の制御用インターフェースとして使用されるレジスタ群である。
図3は、制御レジスタ203の詳細な構成を示すブロック図である。図3に示すように、制御レジスタ203は、DMAコントローラ200の動作モードや動作開始及び停止等を設定するコントロールレジスタ301、DMAを行うメモリ領域の開始アドレスを設定するスタートアドレスレジスタ302、DMAを行うメモリ領域の終了アドレスを設定するエンドアドレスレジスタ303、DMA動作時において転送中のアドレスを示すカレントアドレスレジスタ304等で構成される。
図2に戻り、動作制御部204は、制御レジスタ203に設定された値に従ってDMAコントローラ200における各ブロックの初期化や開始或いは停止等の制御を行う。
バスインターフェース205は、メモリにアクセスするためのバス動作における入出力部である。バス動作制御部206は、データ取り込み方法判定部211からの開始要求に従ってバスにトランザクションを発行し、メモリへアクセスする。バスを使用してメモリから読み出すデータの長さは、直接入力データ数計測部210で計測されている値と格納データ数計測部213で計測されている値の差として認識され、その長さを1回のトランザクションで転送可能な長さに分割してトランザクションを発行する。
また、各トランザクションにおけるアドレス値は、カレントアドレスレジスタ304の値から生成される。トランザクションを発行する際は、データ格納部214にそのトランザクションで転送されるデータ長分の空きがあることを調べ、空きがある状態になるまでそのトランザクションは発行されない。
バスデータ格納制御部207は、バス動作制御部206によって発行されたトランザクションにおいて得られたメモリからの読み出しデータをデータ格納部214へ格納する。直接入力部208は、DMAコントローラ200が読み出し対象とするデータをメモリへ書き込むバスマスターに接続され、そのバスマスターがバストランザクションを発行し、データをメモリに書き込む際に、書き込みデータが直接入力される。
直接入力データ格納制御部209は、直接入力部208から入力されたデータをデータ格納部214に空きがある限り格納する。直接入力データ数計測部210は、直接入力部208から入力されたデータの数を計測する。
データ取り込み方法判定部211は、直接入力データ数計測部210による入力データ数と格納データ数計測部213による格納データ数とを比較する。ここで、入力データ数と格納データ数が一致している場合、データ取り込み方法として直接入力部208を使用すると判定し、データ格納制御選択部212に対してデータ格納部214に対する制御を直接入力データ格納制御部209が行うように選択信号を出力し、バス動作制御部206に対する開始要求を取り下げる。
また、入力データ数が格納データ数より多い場合、データ取り込み方法としてバスインターフェース205を使用すると判定し、データ格納制御選択部212に対してデータ格納部214に対する制御をバスデータ格納制御部207が行うように選択信号を出力し、バス動作制御部206に対する開始要求を出す。
データ格納制御選択部212は、データ取り込み方法判定部211の判定によって生成される選択信号に応じてデータ格納部214に対する制御をバスデータ格納制御部207と直接入力データ格納制御部209との間で切り替える。
格納データ数計測部213は、データ格納部214に格納されたデータの数を計測する。データ格納部214は、所定サイズのFIFOとして構成され、バスインターフェース205又は直接入力部208から取り込まれた読み出しデータを一時的に格納する。
デバイスインターフェース215は、データ格納部214に格納されているデータに対してデバイスコントローラからアクセスするための入出力部である。
カレントアドレス計測部216は、データ格納部214に対してデータが格納されると、格納されたデータ長分カレントアドレスレジスタ304の値を更新する。
ここで、図4に示すタイミングチャートを用いて実施例1におけるDMAコントローラ200の動作について説明する。
尚、実施例1では、直接入力部208に対して4バイト単位のデータが入力され、バスインターフェース208に対して4バイト単位のトランザクションが入力され、データ格納部214のFIFOサイズを8バイトとし、デバイスインターフェース215に対して4バイト単位のデータが出力され、DMA対象となるメモリ領域のスタートアドレス及びエンドアドレスをそれぞれ0x1000番地及び0x2000番地として説明するが、本発明はこれに限定されるものではない。
区間T1において、不図示のCPUが制御レジスタ203のスタートアドレスレジスタ302とエンドアドレスレジスタ303へメモリ領域の設定を行い、コントロールレジスタ301に動作開始の設定を行う。動作開始時において、DMAコントローラ200は、直接入力データ数計測部210と格納データ数計測部213の計測値をそれぞれ“0”に初期化する。そして、データ取り込み方法判定部211は直接入力部208を使用すると判定し、データ格納制御選択部212には、データ格納部214に対して制御を直接入力データ格納制御部209が行うように選択信号を出力し、バス動作制御部206に対する開始要求を出さず、スタートアドレスレジスタ302の値(0x1000)をカレントアドレスレジスタ304へコピーする等の初期化処理を行う。
区間T2において、DMAコントローラ200が読み出し対象とするデータをメモリへ書き込むバスマスターがそのデータをメモリに書き込み始めると、直接入力部208からのデータ入力が開始される。直接入力データ数計測部210で、直接入力部208からのデータ数のカウントアップが開始される。直接入力データ格納制御部209は、データ格納部214にデータが格納可能な状態なのでデータ(DATA0とDATA1)を格納する。これにより、格納データ数計測部213はデータ格納部214に格納されたデータ数のカウントアップを開始する。
カレントアドレス計測部216は、データ格納部214にデータが格納される毎にそのデータ長(4バイト)分カレントアドレスレジスタ304の値を更新する。データ取り込み方法判定部211は、直接入力データ数計測部210及び格納データ数計測部213の計測値を比較し、入力データ数と格納データ数が一致しているので、データ取り込み方法として直接入力部208を使用する状態を保持する。
区間T3において、データ格納部214に格納されたデータ数が8バイトに到達しフル状態となったため、直接入力データ格納制御部209はデータ格納部214に対する格納動作を停止する。これに伴い、格納データ数計測部213も、カウントアップ動作を停止する。直接入力部208からのデータ入力及び直接入力データ数計測部210のカウントアップは、他の状態に関わらず独立して動作する。
データ取り込み方法判定部211は、直接入力データ数計測部210及び格納データ数計測部213の計測値を比較し、入力データ数が格納データ数より多いので、データ取り込み方法としてバスインターフェース205を使用すると判定する。そして、データ格納制御選択部212には、データ格納部214に対する制御をバスデータ格納制御部207が行うように選択信号を出力し、バス動作制御部206に対する開始要求を出す。
バス動作制御部206は、バスを使用しメモリから読み出すデータの長さを、直接入力データ数計測部210及び格納データ数計測部213の計測値の差(8バイト)として認識し、1回のトランザクションが4バイト単位で行われるため、2回のトランザクションに分割してメモリからの読み出しを行う。但し、データ格納部214がフル状態のため、4バイト以上の空きができるまでトランザクションは発行されない。
区間T4において、デバイスコントローラがデバイスインターフェース215によりデータ格納部214のデータを取り出す動作が開始される。データ格納部214は、データが取り出されるとフル状態は解除され、データを格納可能な状態になる。バス動作制御部206は、データ格納部214に4バイト以上の空きができたため、カレントアドレスレジスタ304で示されるアドレス値に従って、アドレス値が0x1008番地で転送長4バイト及びアドレス値が0x100C番地で転送長4バイトのバストランザクションを発行し、それぞれメモリからDATA2及びDATA3を読み出す。そして、1回のバストランザクションが完了すると、バスデータ格納制御部207はメモリから読み出したデータをデータ格納部214へ格納し、格納データ数計測部213がカウントアップ動作を行い、カレントアドレス計測部216は転送長分カレントアドレスレジスタ304の値を更新する。バスインターフェース205からのデータ取り込みは、直接入力データ数計測部210及び格納データ数計測部213の計測値が一致するまで続けられる。
区間T5において、再び直接入力データ数計測部210及び格納データ数計測部213の計測値が一致すると、データ取り込み方法判定部211は直接入力部208を使用すると判定する。そして、データ格納制御選択部212に対してデータ格納部214に対する制御を直接入力データ格納制御部209が行うように選択信号を出力し、バス動作制御部206に対する開始要求を取り下げる。これにより、バス動作制御部206は開始要求が取り下げられたために、読み出し対象データをメモリへ書き込むバスマスターがデータを書き込んでいない領域に対するトランザクションを発行することはない。
デバイスインターフェース215によりデータ格納部214のデータを取り出す動作が並行して行われていると、データ格納部214がフル状態にならず、直接入力部208からのデータ(DATA4、DATA5、DATA6、DATA7)を直接入力データ格納制御部209から全てデータ格納部214に取り込むことができる。
以降、カレントアドレスレジスタ304の値がエンドアドレスレジスタ303の値に到達するまで、データ格納部214の状態に応じて上述した動作が繰り返される。その後、カレントアドレスレジスタ304の値がエンドアドレスレジスタ303の値に到達すると、DMAコントローラ200は動作を停止し、CPUに割り込み通知等を行い、DMA動作が完了したことを通知する。
実施例1によれば、DMAコントローラがメモリからデータを読み出す動作において、メモリからデータを読み出す回数を削減することができる。
次に、図面を参照しながら本発明に係る実施例2について詳細に説明する。実施例2では、実施例1で説明したDMAコントローラを用いたデータ処理システムとして、パーソナルコンピュータ(PC)等のホストコンピュータとそれに接続されるプリンタとで構成される場合を例に説明する。
図5は、実施例2におけるデータ処理システムの構成の一例を示すブロック図である。図5に示すように、PC500とプリンタ510は、USBケーブルで接続されている。USBは高速シリアルバス通信規格であり、様々な機器を接続するためのものとして広く一般的に普及している。
プリンタ510には、実施例1のDMAコントローラを含む半導体集積回路511と、メモリカードスロット等に接続されたメモリカード512と、液晶ディスプレイ等の表示部513と、半導体集積回路511が動作時にワークメモリ領域として使用するDRAM514と、印刷を行う印字ヘッド等の印字部515とが搭載されている。
半導体集積回路511は、プリンタ510全体を制御するCPU520、CPU520の動作プログラム等が格納された不揮発性のROM521、システムバス526の調停や割り込み及びタイマ制御等を行う周辺回路522、表示部513へ表示データを出力する表示コントローラ5323、DRAM514に対してデータの読み書き制御を行うDRAMコントローラ5324、印字部515を制御する印字コントローラ5325、実施例1で説明したDMAコントローラ530及び532、PC500と接続するためのUSBデバイスコントローラ531、メモリカード512とのデータ転送を制御するカードコントローラ533から構成されている。
そして、DMAコントローラ532は、DMA転送でメモリへデータを書き込む際に、システムバス526へ書き込みトランザクションを発行すると同時に、そのデータを直接DMAコントローラ530へ出力するように構成されている。
次に、実施例2におけるデータ処理システムの動作について、プリンタ510からPC500へメモリカード512に保存されている画像ファイルを転送する場合を例に、図4のタイミングチャートと図6のフローチャートを用いて説明する。
図6は、実施例2におけるDMA転送処理を示すフローチャートである。まずステップS601において、PC500からプリンタ510へメモリカード512内に蓄積されたファイルデータに対する転送要求が来ると、CPU520は指定されたファイルデータをメモリカード512から読み出してPC500へ転送するための共有領域をDRAM514上に確保する。
次に、ステップS602において、CPU520は、PC500へDMAでデータ転送するためにUSBデバイスコントローラ531の設定を行う。次に、ステップS603において、CPU520は、DRAM514上に確保された領域に対してDMAで読み出すための設定をDMAコントローラ530に対して行い、DMAコントローラ530のDMA動作を開始する。この状態において、DMAコントローラ530は図4に示す区間T1の状態となり、DMAコントローラ532からの直接入力が開始されるのを待つ。
次に、ステップS604において、CPU520は、メモリカード512からDMAでデータ転送するためにカードコントローラ533の設定を行う。次に、ステップS605において、CPU520は、DRAM514上に確保された領域に対してDMAで書き込むための設定をDMAコントローラ532に対して行い、DMAコントローラ532のDMA動作を開始する。
これにより、DMAコントローラ530は、DMAコントローラ532からの直接入力が開始され、USBデバイスコントローラ531の転送速度、DMAコントローラ532の書き込み速度、DMAコントローラ530に内蔵されるバッファの状態に応じて、区間T2〜T5の状態を繰り返す。
USBデバイスコントローラ531の転送速度がDMAコントローラ532の書き込み速度に対して高速であり、直接入力データをそのまま転送する状態(区間T5)を保って動作すると、DMAコントローラ530がDRAM514からデータを読み出すことが一切なくなる。ここで、DMAコントローラ530に内蔵されるバッファがフル状態(区間T3)になったとしても、システムバス526からDRAM514のデータを読み出し(区間T5)、直接入力データをそのまま転送する状態(区間T5)に戻ることができる。
従って、DRAM514に対する読み出し回数が減り、DRAM514からの読み出し待ち時間が減少するので、PC500に対するUSBの転送性能が向上する。
また、印刷動作中で、印字コントローラ525がシステムバス526に大量のトランザクションを発生している状況であっても、DRAM514への読み出しトランザクションが発生しないため、システム全体としての性能を向上させることができる。
最後に、ステップS606において、CPU520は、割り込み通知等でDMAコントローラ530とDMAコントローラ532のDMA転送が終了するのを待つ。
尚、PC500へのファイル転送後、CPU520は、DRAM514へ書き込まれた画像ファイルデータを表示可能な形式へ変換して表示部513へ出力したり、画像処理、印刷処理を行って印字部515から印刷したりすることができる。
実施例2によれば、本発明に係るDMAコントローラを用いたデータ処理システムにおいて、メモリからデータを読み出す回数を削減することができる。
次に、図面を参照しながら本発明に係る実施例3について詳細に説明する。実施例2では、DMAコントローラ530に対して読み出し対象データをメモリへ書き込むDMAコントローラ532がその書き込みデータを直接出力する機能を有していたが、その機能がない既存のDMAコントローラを使用して本発明のデータ処理システムを実現する場合は、新たにその機能を追加しなければならない。
その際、図7に示すように、既存のDMAコントローラ701自体には機能追加を行わず、そのバス出力信号からバス書き込みを検知し、DMAコントローラ530に直接入力するデータを生成する直接入力データ生成部702を設ける構成としても良い。
このような構成にすることで、既存のDMAコントローラ701を変更することなく、データ処理システムを実現することができる。
尚、実施例2、3では、本発明に係るDMAコントローラを用いたデータ処理システムとして、PC等のホストとそれに接続されるプリンタを例に説明したが、本発明はこれに限定されるものではなく、所定のバスマスターがメモリに書き込むデータを読み出すDMAコントローラを内蔵するものならば、他の周辺装置やホストにも適用可能である。
また、上述した実施例では、DMAコントローラに接続されるデバイスコントローラとしてUSBデバイスコントローラを例に説明したが、本発明はこれに限定されるものではなく、DMA転送可能であれば、他の通信デバイスコントローラや入出力(I/O)デバイスコントローラや画像処理コントローラにも適用可能である。
また、DMAコントローラに読み出し対象データを直接出力するバスマスターとして、カードコントローラに接続されるDMAコントローラを例に説明したが、本発明はこれに限定されるものではなく、読み出し対象データを直接出力するものならば、一般的なバスマスターに適用可能である。
更に、実施例3においては、読み出し対象データを直接出力する機能を有しない一般的なバスマスターにも適用可能である。
以上説明したように、実施例によれば、DMAコントローラがメモリからデータを読み出す動作において、メモリからデータを読み出す回数を削減することができる。
次に、図面を参照しながら本発明に係る実施例4について詳細に説明する。
図8は、実施例4におけるDMAコントローラの構成の一例を示すブロック図である。図8に示すように、DMAコントローラ800は、レジスタインターフェース(I/F)801、レジスタアクセス制御部802、制御レジスタ803、動作制御部804、バスインターフェース805、バス動作制御部806、バスデータ格納制御部807、書き込みトランザクション検出部808、書き込みデータ格納制御部809、書き込みデータ数計測部810、データ取り込み方法判定部811、データ格納制御選択部812、格納データ数計測部813、データ格納部814、デバイスインターフェース815、カレントアドレス計測部816から構成されている。
ここで、図8に示すDMAコントローラ800の各ブロックについて詳細に説明する。レジスタインターフェース801は、不図示のCPUがDMAコントローラ800の動作制御を行うために制御レジスタ803に対して読み書きを行う入出力部である。レジスタアクセス制御部802は、CPUアクセスにおけるアドレス値のデコード処理を行い、所定のアドレスにマッピングされた制御レジスタ803に対する読み書きを制御する。制御レジスタ803は、DMAコントローラ800の制御用インターフェースとして使用されるレジスタ群である。このレジスタ群の構成は、実施例1で用いた図3に示すレジスタ群と同様な構成であり、詳細な説明は省略する。
動作制御部804は、制御レジスタ803に設定された値に従ってDMAコントローラ800における各ブロックの初期化や開始或いは停止等の制御を行う。
バスインターフェース805は、メモリにアクセスするためのバス動作における入出力部である。バス上では、所定のプロトコルに従ってバスマスターとスレーブデバイスとの間でデータ転送を行う一連の処理(トランザクション)が行われる。
1回のトランザクションにおいて、バスマスターは、転送対象領域を示すアドレス値、読み書きを示す転送方向、転送データの長さを出力し、書き込みならば更にデータを出力してスレーブデバイスが受け取る、一方、読み出しならばアドレス値で示されるスレーブデバイスがデータを出力し、バスマスターが受け取る動作が行われる。ここで、バスからバスインターフェース6に入力される情報はバスを使用しているバスマスターとスレーブデバイスの出力が選択されたもの、即ち、バス上で行われているトランザクションの内容そのものであるため、他のバスマスターによって発行されたトランザクションのアドレス値、転送方向、転送長、データ等が含まれている。
バス動作制御部806は、データ取り込み方法判定部811からの開始要求に従ってバスにトランザクションを発行し、メモリへアクセスする。バスを使用してメモリから読み出すデータの長さは、書き込みデータ数計測部810で計測されている値と格納データ数計測部813で計測されている値の差として認識され、その長さを1回のトランザクションで転送可能な長さに分割してトランザクションを発行する。
また、各トランザクションにおけるアドレス値は、カレントアドレスレジスタ304の値から生成される。トランザクションを発行する際は、データ格納部814にそのトランザクションで転送されるデータ長分の空きがあることを調べ、空きがある状態になるまでそのトランザクションは発行されない。
バスデータ格納制御部807は、バス動作制御部806によって発行されたトランザクションにおいて得られたメモリからの読み出しデータをデータ格納部814へ格納する。書き込みトランザクション検出部808は、バス上で他のバスマスターによって発行されるトランザクションのアドレス値と転送方向を調べ、DMAを行うメモリ領域(スタートアドレスレジスタ302とエンドアドレスレジスタ303で設定される領域)に対する書き込みトランザクションを検出し、書き込みデータ格納制御部809と書き込みデータ数計測部810に検出したことを通知する。
書き込みデータ格納制御部809は、書き込みトランザクション検出部808からの通知を受け、検出された書き込みトランザクションにおける書き込みデータをデータ格納部814に空きがある限り格納する。
書き込みデータ数計測部810は、書き込みトランザクション検出部808からの通知を受け、検出された書き込みトランザクションにおける書き込みデータの数を計測する。
データ取り込み方法判定部811は、書き込みデータ数計測部810による書き込みデータ数と格納データ数計測部813による格納データ数とを比較する。ここで、書き込みデータ数と格納データ数が一致している場合、データ取り込み方法として書き込みトランザクション検出部808を使用すると判定し、データ格納制御選択部812に対してデータ格納部814に対する制御を書き込みデータ格納制御部809が行うように選択信号を出力し、バス動作制御部806に対する開始要求を取り下げる。
また、書き込みデータ数が格納データ数より多い場合、データ取り込み方法としてバス動作制御部806を使用すると判定し、データ格納制御選択部812に対してデータ格納部814に対する制御をバスデータ格納制御部807が行うように選択信号を出力し、バス動作制御部806に対する開始要求を出す。
データ格納制御選択部812は、データ取り込み方法判定部811の判定によって生成される選択信号に応じてデータ格納部814に対する制御をバスデータ格納制御部807と書き込みデータ格納制御部809との間で切り替える。
格納データ数計測部813は、データ格納部814に格納されたデータの数を計測する。データ格納部814は、所定のサイズのFIFOとして構成され、バス動作制御部806又は書き込みトランザクション検出部808によって取り込まれた読み出しデータを一時的に格納する。
デバイスインターフェース815は、データ格納部814に格納されているデータに対してデバイスコントローラからアクセスするための入出力部である。
カレントアドレス計測部816は、データ格納部814に対してデータが格納されると、格納されたデータ長分カレントアドレスレジスタ304の値を更新する。
ここで、図9に示すタイミングチャートを用いて実施例4におけるDMAコントローラ800の動作について説明する。
尚、実施例4では、バス上では4バイト単位のトランザクション、データ格納部814のFIFOサイズを8バイトとし、デバイスインターフェース815に対して4バイト単位のデータが出力され、DMA対象となるメモリ領域のスタートアドレス及びエンドアドレスをそれぞれ0x1000番地及び0x2000番地として説明するが、本発明はこれに限定されるものではない。
区間T1において、不図示のCPUが制御レジスタ803のスタートアドレスレジスタ302とエンドアドレスレジスタ303へメモリ領域の設定を行い、コントロールレジスタ301に動作開始の設定を行う。動作開始時において、DMAコントローラ800は、書き込みデータ数計測部810と格納データ数計測部813の計測値をそれぞれ“0”に初期化する。そして、データ取り込み方法判定部811は書き込みトランザクション検出部808を使用すると判定し、データ格納制御選択部812には、データ格納部814に対する制御を書き込みデータ格納制御部809が行うように選択信号を出力し、バス動作制御部806に対する開始要求を出さず、スタートアドレスレジスタ302の値(0x1000)をカレントアドレスレジスタ304へコピーする等の初期化処理を行う。
区間T2において、DMAコントローラ800が読み出し対象とするデータをメモリへ書き込むバスマスターがそのデータをメモリに書き込み始めると、バス上に書き込みトランザクションが発生する。書き込みトランザクション検出部808は、バス上のトランザクションにおけるアドレス値と転送方向(図9におけるトランザクション方向は、Lowが読み出し、Highが書き込みであることを示す)から0x1000から0x2000番地の領域に対する書き込みトランザクションの検出を行い、0x1000番地と0x1004番地に対する書き込みトランザクションが発生したことを書き込みデータ格納制御部809及び書き込みデータ数計測部810へ通知する。書き込みデータ数計測部810は、書き込みトランザクションにおける書き込みデータ数のカウントアップを開始する。また、書き込みデータ格納制御部809は、データ格納部814にデータが格納可能な状態なので書き込みトランザクションにおけるデータ(DATA0とDATA1)を格納する。これにより、格納データ数計測部813は、データ格納部814に格納されたデータ数のカウントアップを開始する。
カレントアドレス計測部816は、データ格納部814にデータが格納される毎にそのデータ長(4バイト)分カレントアドレスレジスタ304の値を更新する。データ取り込み方法判定部811は、書き込みデータ数計測部810及び格納データ数計測部813の計測値を比較し、入力データ数と格納データ数が一致しているので、データ取り込み方法として書き込みトランザクション検出部808を使用する状態を保持する。
区間T3において、データ格納部814に格納されたデータ数が8バイトに到達しフル状態となったため、書き込みデータ格納制御部809は、書き込みトランザクション検出部808からの通知があってもデータ格納部814に対する格納動作は行わない。これに伴い、格納データ数計測部813も、カウントアップ動作を停止する。書き込みトランザクション検出部808の書き込みトランザクション検出動作及び書き込みデータ数計測部810のカウントアップは、他の状態に関わらず独立して動作する。
データ取り込み方法判定部811は、書き込みデータ数計測部810及び格納データ数計測部813の計測値を比較し、書き込みデータ数が格納データ数より多いので、データ取り込み方法としてバス動作制御部806を使用すると判定する。そして、データ格納制御選択部812には、データ格納部814に対する制御をバスデータ格納制御部807が行うように選択信号を出力し、バス動作制御部806に対する開始要求を出す。
バス動作制御部806は、バスを使用しメモリから読み出すデータの長さを、書き込みデータ数計測部810及び格納データ数計測部813の計測値の差(8バイト)として認識し、1回のトランザクションが4バイト単位で行われるため、2回のトランザクションに分割してメモリからの読み出しを行う。但し、データ格納部814がフル状態のため、4バイト以上の空きができるまでトランザクションは発行されない。
区間T4において、デバイスコントローラがデバイスインターフェース815によりデータ格納部814のデータを取り出す動作が開始される。データ格納部814は、データが取り出されるとフル状態は解除され、データを格納可能な状態になる。バス動作制御部806は、データ格納部814に4バイト以上の空きができたため、カレントアドレスレジスタ304で示されるアドレス値に従って、アドレス値が0x1008番地で転送長4バイト及びアドレス値が0x100C番地で転送長4バイトのバストランザクションを発行し、それぞれメモリからDATA2及びDATA3を読み出す。そして、1回のバストランザクションが完了すると、バスデータ格納制御部807はメモリから読み出したデータをデータ格納部814へ格納し、格納データ数計測部813はカウントアップ動作を行い、カレントアドレス計測部816は転送長分カレントアドレスレジスタ304の値を更新する。バスインターフェース805からのデータ取り込みは、書き込みデータ数計測部810及び格納データ数計測部813の計測値が一致するまで続けられる。
区間T5において、再び書き込みデータ数計測部810及び格納データ数計測部813の計測値が一致すると、データ取り込み方法判定部811は書き込みトランザクション検出部808を使用すると判定する。そして、データ格納制御選択部812に対してデータ格納部814に対する制御を書き込みデータ格納制御部809が行うように選択信号を出力し、バス動作制御部806に対する開始要求を取り下げる。バス動作制御部806は、開始要求が取り下げられるため、読み出し対象データをメモリへ書き込むバスマスターがデータを書き込んでいない領域に対するトランザクションを発行することはない。
デバイスインターフェース815によりデータ格納部814のデータを取り出し動作が並行して行われていると、データ格納部814がフル状態にならず、書き込みトランザクション検出部808が検出した0x1010番地から0x101C番地に対する書き込みトランザクションにおけるデータ(DATA4、DATA5、DATA6、DATA7)を書き込みデータ格納制御部809によって全てデータ格納部814に取り込むことができる。
以降、カレントアドレスレジスタ304の値がエンドアドレスレジスタ303の値に到達するまで、データ格納部814の状態に応じて上述した動作が繰り返される。その後、カレントアドレスレジスタ304の値がエンドアドレスレジスタ303の値に到達すると、DMAコントローラ800は動作を停止し、割り込み通知等を行い、CPUにDMA動作が完了したことを通知する。
実施例4によれば、DMAコントローラがメモリからデータを読み出す動作において、メモリからデータを読み出す回数を削減することができる。
次に、図面を参照しながら本発明に係る実施例5について詳細に説明する。実施例4では、書き込みトランザクション検出部808がバス上で他のバスマスターによって発行されるトランザクションのアドレス値と転送方向を調べ、DMAを行うメモリ領域に対する書き込みトランザクションを検出している。しかしながら、アドレス値を使ったトランザクション検出では、例えばアドレス値が32ビットで構成されている場合、DMAを行うメモリ領域の開始アドレス値と終了アドレス値との比較を行う2つの32ビット比較回路が必要となる。
これに対し、バスのプロトコルとしてバスマスターの識別値を使用することも可能で、トランザクションを発行するバスマスターの識別値を得ることができる場合は、その識別値と転送方向からDMAを行うメモリ領域に対する書き込みトランザクションを検出するように構成しても良い。
一般的に、バスに接続されているバスマスターの識別には数ビットの情報があれば十分であり、例えばバスマスター識別値が3ビットで構成されている場合は、1つの3ビット比較回路で済み、回路規模を削減できる。
検出対象となるバスマスターの識別値は、制御レジスタ803に設定用レジスタを設け、CPUが設定する。検出対象となるバスマスターが一つしか存在しない場合は、設定用レジスタを設けずに所定の固定値としても良く、この場合更に回路規模を削減できる。
ここで、図10に示すタイミングチャートを用いて実施例5における書き込みトランザクション検出部808の検出動作について説明する。
この実施例5では、トランザクションを発行するバスマスターの識別値として、DMAコントローラ800の識別値が“1”、DMAコントローラ800が読み出し対象とするデータをメモリへ書き込むバスマスターの識別値が“2”の場合を説明する。また、書き込みトランザクション検出部808は、バス上に発行されるトランザクションにおいて、マスマスター識別値が“2”で、且つ転送方向が書き込みであるトランザクションを検出し、書き込みデータ格納制御部809と書き込みデータ数計測部810へ通知する。これ以外の動作は、実施例4と同じであり、その説明は省略する。
実施例5によれば、DMAコントローラがメモリからデータを読み出す動作において、より少ない回路規模でメモリからデータを読み出す回数を削減することができる。
次に、図面を参照しながら本発明に係る実施例6について詳細に説明する。実施例6では、実施例4で説明したDMAコントローラを用いたデータ処理システムとして、PC等のホストコンピュータとそれに接続されるスキャナ機能及び印刷機能等を有する複合装置とで構成される場合を例に説明する。
図11は、実施例6におけるデータ処理システムの構成の一例を示すブロック図である。図11に示すように、PC1100と複合装置1110は、USBケーブルで接続されている。USBは高速シリアルバス通信規格であり、様々な機器を接続するためのものとして広く一般的に普及している。
複合装置1110には、実施例4のDMAコントローラを含む半導体集積回路1111と、メモリカードスロット等に接続されたメモリカード1112と、液晶ディスプレイ等の表示部1113と、半導体集積回路1111が動作時にワークメモリ領域として使用するDRAM1114と、印刷を行う印字ヘッド等の印字部1115と、CCD等のスキャナセンサー1116とが搭載されている。
半導体集積回路1111は、複合装置1110全体を制御するCPU1120、CPU1120の動作プログラム等が格納された不揮発性のROM1121、システムバス1128の調停や割り込み及びタイマ制御等を行う周辺回路1122、表示部1113へ表示データを出力する表示コントローラ1123、DRAM1114に対してデータの読み書き制御を行うDRAMコントローラ1124、印字部1115を制御する印字コントローラ1125、印字コントローラ1125用のDMAコントローラ1126、バスマスター機能を有し、スキャナ画像処理部1134が生成したデータの印刷用画像処理を行う印刷画像処理部1127、PC1100と接続するためのUSBデバイスコントローラ1131、USBデバイスコントローラ1131用のDMAコントローラ1130、メモリカード1112に対してデータ転送を制御するカードコントローラ1133、カードコントローラ1133用のDMAコントローラ1132、スキャナセンサー1116の制御を行うセンサー制御部1135、バスマスター機能を有し、スキャナセンサー1116から入力されるデータの画像処理を行うスキャナ画像処理部1134から構成されている。
ここで、実施例6におけるデータ処理システムの動作について、複合装置1110からPC1100へメモリカード1112に保存されている画像ファイルを転送する場合を例に、図9のタイミングチャートと図12のフローチャートを用いて説明する。
図12は、実施例6におけるDMA転送処理を示すフローチャートである。ステップS1201において、PC1100から複合装置1110へメモリカード1112内に蓄積されたファイルデータに対する転送要求が来ると、CPU1120は指定されたファイルデータをメモリカード1112から読み出してPC1100へ転送するための共有領域をDRAM1114上に確保する。
次に、ステップS1202において、CPU1120は、PC1100へDMAでデータ転送するためにUSBデバイスコントローラ1131の設定を行う。次に、ステップS1203において、CPU520は、DRAM1114上に確保された領域に対してDMAで読み出すための設定をDMAコントローラ1130に対して行い、DMAコントローラ1130のDMA動作を開始する。この状態において、DMAコントローラ1130は区間T1の状態となり、DMAコントローラ1132がシステムバス1128へ書き込みトランザクションを発行するのを待つ。
次に、ステップS1204において、CPU1120は、メモリカード1112からDMAでデータ転送するためにカードコントローラ1133の設定を行う。次に、ステップS1205において、CPU1120は、DRAM1114上に確保された領域に対してDMAで書き込むための設定をDMAコントローラ1132に対して行い、DMAコントローラ1132のDMA動作を開始する。
これにより、DMAコントローラ1130は、DMAコントローラ1132がシステムバス1128へ発行する書き込みトランザクションの検出を開始し、USBデバイスコントローラ1131の転送速度、DMAコントローラ1132の書き込み速度、DMAコントローラ1130に内蔵されるバッファの状態に応じて、区間T2〜T5の状態を繰り返す。
USBデバイスコントローラ1131の転送速度がDMAコントローラ1132の書き込み速度に対して高速であり、書き込みデータをそのまま転送する状態(区間T5)を保って動作すると、DMAコントローラ1130がDRAM1114からデータを読み出すことが一切なくなる。ここで、DMAコントローラ1130に内蔵されるバッファがフル状態(区間T3)になったとしても、システムバス1128からDRAM1114のデータを読み出し(区間T5)、書き込みデータをそのまま転送する状態(区間T5)に戻ることができる。
従って、DRAM1114に対する読み出し回数が減り、DRAM1114からの読み出し待ち時間が減少するので、PC1100に対するUSBの転送性能が向上する。
また、印刷動作中で、印字コントローラ1125がシステムバスに大量のトランザクションを発生している状況であっても、DRAM1114からの読み出しトランザクションが減少するため、システム全体としての性能を向上させることができる。
最後に、ステップS1206において、CPU1120は、割り込み通知等でDMAコントローラ1130とDMAコントローラ1132のDMA転送が終了するのを待つ。
尚、PC1100へのファイル転送後、CPU1120は、DRAM1114へ書き込まれた画像ファイルデータを表示可能な形式へ変換して表示部1113へ出力したり、画像処理、印刷処理を行って印字部1115から印刷したりすることができる。
また、複合装置1110からPC1100へスキャナセンサー1116で読み取ったスキャナデータを転送する場合においても、DMAコントローラ1130が読み出し対象とするデータをメモリへ書き込みバスマスターがスキャナ画像処理部1134になるだけで、DMAコントローラ1130におけるシステムバスへ発行される書き込みトランザクションの検出動作等に変わりはなく、上述した場合と同じような動作が適用できる。よって、スキャナ画像処理部1134による書き込みデータに対して、DMAコントローラ1130がメモリから読み出すトランザクション回数を削減することができる。
また、PC1100からメモリカード1112へファイルを転送する場合や、スキャナセンサー1116で読み取ったスキャナデータを画像ファイルとして圧縮しメモリカード1112へ保存する場合においても、DMAコントローラ1132を実施例4で説明したDMAコントローラに置き換えることで、実施例6と同様な動作が適用できる。よって、DMAコントローラ1130やスキャナ画像処理部1134による書き込みデータに対して、DMAコントローラ1132がメモリから読み出すトランザクション回数を削減することができる。
更に、スキャナ画像処理部1134が生成する画像ファイルをメモリカード1112へ保存すると同時にPC1100へも転送する場合、DMAコントローラ1130とDMAコントローラ1132の両方が同時に動作しても、それぞれにおけるシステムバスへ発行される書き込みトランザクションの検出動作等に変わりはなく、実施例6と同様な動作が適用できる。よって、スキャナ画像処理部1134による書き込みデータに対して、DMAコントローラ1130とDMAコントローラ1132の同時動作においても、それぞれがメモリから読み出すトランザクション回数を削減することができる。
また、スキャナセンサー1116から読み取った画像を印字部1115で印刷するコピー動作では、DRAM1114上にスキャナ処理データ用と印字データ用のワーク領域を確保し、スキャナセンサー1116から入力されたデータをスキャナ画像処理部1134がDRAM1114のスキャナ処理データ用領域へデータを書き込み、また印刷画像処理部1127がDRAM1114のスキャナ処理データ用領域からデータを読み出して印刷用画像処理結果を再度DRAM1114の印字データ用領域へ書き込み、最後に印字コントローラ1125用のDMAコントローラ1126がDRAM1114の印字データ用領域からデータを読み出して印字部1115へ転送する処理が行われる。
このような場合でも、印刷画像処理部1127に実施例4で説明したDMAコントローラと同様の機能を持たせることで、実施例6と同様な動作が適用できる。よって、スキャナ画像処理部1134による書き込みデータに対して、印刷画像処理部1127がメモリから読み出すトランザクション回数を削減することができる。
更に、DMAコントローラ1126を実施例4で説明したDMAコントローラに置き換えることで、実施例6と同様な動作が適用できる。よって、印刷画像処理部1127による書き込みデータに対して、DMAコントローラ1126がメモリから読み出すトランザクション回数を削減することができる。
また、システムバスのプロトコルとしてバスマスターの識別値も使用し、トランザクションを発行するバスマスターの識別値を得ることができる場合は、実施例4のDMAコントローラの代わりに実施例5で説明したDMAコントローラを使用しても良く、システムバスへ発行される書き込みトランザクションの検出動作がバスマスターの識別値に基づいて行われる部分が異なるだけで、実施例6と同様な動作が適用できる。
実施例6では、システムバス1128に接続されているバスマスターの数は6つ(CPU1120、DMAコントローラ1130、DMAコントローラ1132、スキャナ画像処理部1134、DMAコントローラ1126、印刷画像処理部1127)であるため、識別値として3ビットあれば良く、実施例4のDMAコントローラを使用するより少ない回路規模でメモリから読み出すトランザクション回数を削減することができる。
実施例6によれば、実施例4又は5で説明したDMAコントローラを用いたデータ処理システムにおいて、メモリからデータを読み出す回数を削減することができる。
尚、実施例6では、DMAコントローラを用いたデータ処理システムとして、PC等のホストコンピュータとそれに接続される複合装置を例として説明したが、本発明はこれに限定されるものではなく、所定のバスマスターがメモリに書き込むデータを読み出すDMAコントローラを内蔵するものならば、他の周辺装置やホストにも適用可能である。
また、DMAコントローラに接続されるデバイスコントローラは、各実施例で説明したものに限定されず、DMA転送が可能であれば、他の通信デバイスコントローラやI/Oデバイスコントローラ或いは画像処理コントローラにも適用可能である。
また、DMAコントローラが読み出し対象とするデータメモリへ書き込むバスマスターは、各実施例で説明したものに限定されず、一般的なバスマスターに適用可能であり、そのバスマスターが一つ或いは複数存在しても良い。
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
一般的なデバイス間におけるデータ転送システムの構成の一例を示すブロック図である。 実施例1におけるDMAコントローラの構成の一例を示すブロック図である。 制御レジスタ203の詳細な構成を示すブロック図である。 実施例1におけるDMAコントローラ200の動作を説明するための図である。 実施例2におけるデータ処理システムの構成の一例を示すブロック図である。 実施例2におけるDMA転送処理を示すフローチャートである。 実施例3におけるデータ処理システムの構成の一例を示すブロック図である。 実施例4におけるDMAコントローラの構成の一例を示すブロック図である。 実施例4におけるDMAコントローラ800の動作を説明するための図である。 実施例5におけるDMAコントローラ800の動作を説明するための図である。 実施例6におけるデータ処理システムの構成の一例を示すブロック図である。 実施例6におけるDMA転送処理を示すフローチャートである。
符号の説明
100 CPU
101 メモリコントローラ
102 RAM
110 デバイス
111 デバイスコントローラ
112 DMAコントローラ
120 デバイス
121 デバイスコントローラ
122 DMAコントローラ
200 DMAコントローラ
201 レジスタインターフェース
202 レジスタアクセス制御部
203 制御レジスタ
204 動作制御部
205 バスインターフェース
206 バス動作制御部
207 バスデータ格納制御部
208 直接入力部
209 直接入力データ格納制御部
210 直接入力データ数計測部
211 データ取り込み方法判定部
212 データ格納制御選択部
213 格納データ数計測部
214 データ格納部
215 デバイスインターフェース
216 カレントアドレス計測部
301 コントロールレジスタ
302 スタートアドレスレジスタ
303 エンドアドレスレジスタ
304 カレントアドレスレジスタ
500 PC
510 プリンタ
511 半導体集積回路
512 メモリカード
513 表示部
514 DRAM
515 印字部
520 CPU
521 ROM
522 周辺回路
523 表示コントローラ
524 DRAMコントローラ
525 印字コントローラ
530 DMAコントローラ
531 USBデバイスコントローラ
532 メモリへ書き込むデータを直接出力する機能を有するDMAコントローラ
533 カードコントローラ
701 メモリへ書き込むデータを直接出力する機能を有しないDMAコントローラ
702 直接入力データ生成部

Claims (7)

  1. バスに接続され、所定のバスマスターがメモリに書き込むデータを読み出すメモリ転送制御装置であって、
    読み出しデータを一時的に格納するデータ格納手段と、
    バス上にトランザクションを発行し、バス動作を制御するバス動作制御手段と、
    メモリから転送されるデータを格納するバスデータ格納制御手段と、
    バスマスターからのデータを直接入力する直接入力手段と、
    前記直接入力手段によって入力されたデータを前記データ格納手段に格納する直接入力データ格納制御手段と、
    前記データ格納手段に対する格納動作において、前記バスデータ格納制御手段と前記直接入力データ格納制御手段の何れかを選択するデータ格納制御選択手段と、
    前記直接入力手段によって入力されたデータの数と、前記データ格納手段に格納されたデータの数とを比較して、読み出しデータを取り込むために前記バス動作制御手段と前記直接入力手段のどちらを使用するかを判定する判定手段とを有し、
    前記判定手段で前記バス動作制御手段を使用すると判定した場合は、前記バス動作制御手段に対しバス動作開始要求を出し、前記データ格納制御選択手段により前記バスデータ格納制御手段を選択して読み出しデータを取り込み、
    前記判定手段で前記直接入力手段を使用すると判定した場合は、前記データ格納制御選択手段により前記直接入力データ格納制御手段を選択して読み出しデータを取り込むことを特徴とするメモリ転送制御装置。
  2. 請求項1記載のメモリ転送制御装置と、前記メモリ転送制御装置が読み出し対象とするデータをメモリへ書き込む際に前記メモリ転送制御装置に対して該データを直接出力するバスマスターとを有することを特徴とするデータ処理システム。
  3. 請求項1記載のメモリ転送制御装置と、前記メモリ転送制御装置が読み出し対象とするデータをメモリへ書き込むバスマスターと、前記バスマスターの書き込み動作を検出し、前記メモリ転送制御装置の直接入力手段に入力されるデータを生成する直接入力データ生成手段とを有することを特徴とするデータ処理システム。
  4. バスに接続され、所定のバスマスターがメモリに書き込むデータを読み出すメモリ転送制御装置であって、
    読み出しデータを一時的に格納するデータ格納手段と、
    バス上にトランザクションを発行し、バス動作を制御するバス動作制御手段と、
    メモリから転送されるデータを前記データ格納手段に格納するバスデータ格納制御手段と、
    読み出し対象データを書き込むトランザクションを検出する書き込みトランザクション検出手段と、
    前記書き込みトランザクション検出手段によって検出された書き込みトランザクションにおける書き込みデータを前記データ格納手段に格納する書き込みデータ格納制御手段と、
    前記データ格納手段に対する格納動作において、前記バスデータ格納制御手段と前記書き込みデータ格納制御手段の何れかを選択するデータ格納制御選択手段と、
    前記書き込みトランザクション検出手段によって検出された書き込みトランザクションにおける書き込みデータの数と、前記データ格納手段に格納されたデータの数とを比較して、読み出しデータを取り込むために前記バス動作制御手段と書き込みトランザクション検出手段のどちらを使用するかを判定する判定手段とを有し、
    前記判定手段で前記バス動作制御手段を使用すると判定した場合は、前記バス動作制御手段に対しバス動作開始要求を出し、前記データ格納制御選択手段により前記バスデータ格納制御手段を選択して読み出しデータを取り込み、
    前記判定手段で書き込みトランザクション検出手段を使用すると判定した場合は、前記データ格納制御選択手段により前記書き込みデータ格納制御手段を選択して読み出しデータを取り込むことを特徴とするメモリ転送制御装置。
  5. 前記書き込みトランザクション検出手段は、前記バスに発行されるトランザクションのアドレス値と転送方向に基づいて前記読み出し対象データを書き込むトランザクションを検出することを特徴とする請求項4記載のメモリ転送制御装置。
  6. 前記書き込みトランザクション検出手段は、前記バスに発行されるトランザクションのバスマスター識別値と転送方向に基づいて前記読み出し対象データを書き込むトランザクションを検出することを特徴とする請求項4記載のメモリ転送制御装置。
  7. 請求項4記載のメモリ転送制御装置と、前記メモリ転送制御装置が読み出し対象とするデータをメモリへ書き込む一以上のバスマスターとを有することを特徴とするデータ処理システム。
JP2004324080A 2004-11-08 2004-11-08 メモリ転送制御装置及びデータ処理システム Withdrawn JP2006134175A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004324080A JP2006134175A (ja) 2004-11-08 2004-11-08 メモリ転送制御装置及びデータ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004324080A JP2006134175A (ja) 2004-11-08 2004-11-08 メモリ転送制御装置及びデータ処理システム

Publications (1)

Publication Number Publication Date
JP2006134175A true JP2006134175A (ja) 2006-05-25

Family

ID=36727655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004324080A Withdrawn JP2006134175A (ja) 2004-11-08 2004-11-08 メモリ転送制御装置及びデータ処理システム

Country Status (1)

Country Link
JP (1) JP2006134175A (ja)

Similar Documents

Publication Publication Date Title
US6859856B2 (en) Method and system for a compact flash memory controller
KR20100054107A (ko) 인터럽트 검출 장치 및 정보 처리 시스템
US7197590B2 (en) Method and apparatus for connecting LPC bus and serial flash memory
US20070079015A1 (en) Methods and arrangements to interface a data storage device
US7522662B2 (en) Electronic device including image forming apparatus
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
JP2008022373A (ja) 改竄検知情報生成装置、撮像装置、改竄検知情報生成方法、プログラムおよび記憶媒体
US20100153622A1 (en) Data Access Controller and Data Accessing Method
JP2007058787A (ja) ブリッジ及びそのエラー通知方法
US10621082B2 (en) Information processing device that guarantees consistency in access spaces
JP2006134175A (ja) メモリ転送制御装置及びデータ処理システム
KR100606163B1 (ko) 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법
JP2004118825A (ja) メモリバスインタフェース
JP2020204916A (ja) 情報処理装置
US11630790B1 (en) Integrated circuit and interrupt-handling method of sensing device
JP4865213B2 (ja) 割込みコントローラ
US11968469B2 (en) Computing apparatus, image capturing apparatus, control method, and storage medium
JP2003022212A (ja) 双方向ram
JP4538054B2 (ja) データ転送装置および方法
CN116414770A (zh) 片上系统、处理器及指令处理方法
JP2020035337A (ja) ブリッジデバイスとブリッジデバイスの制御方法、ならびに当該ブリッジデバイスを有する情報処理装置
TW538374B (en) Instruction cache device and method using instruction read buffer
JP2006119998A (ja) バス情報収集装置、データ処理装置及びバス情報収集方法
JP2001243170A (ja) データ転送装置
JP2008276650A (ja) 制御コマンド生成装置、情報処理装置、電子機器及びプログラム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080108