JP2008033721A - Dma転送制御装置 - Google Patents

Dma転送制御装置 Download PDF

Info

Publication number
JP2008033721A
JP2008033721A JP2006207744A JP2006207744A JP2008033721A JP 2008033721 A JP2008033721 A JP 2008033721A JP 2006207744 A JP2006207744 A JP 2006207744A JP 2006207744 A JP2006207744 A JP 2006207744A JP 2008033721 A JP2008033721 A JP 2008033721A
Authority
JP
Japan
Prior art keywords
data
transfer
control device
buffer
selector
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
Application number
JP2006207744A
Other languages
English (en)
Inventor
Ryuji Sawai
隆二 澤井
Koji Etani
康治 柄谷
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006207744A priority Critical patent/JP2008033721A/ja
Priority to US11/783,798 priority patent/US7698475B2/en
Priority to CNA2007101020089A priority patent/CN101118524A/zh
Publication of JP2008033721A publication Critical patent/JP2008033721A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

【課題】DMA転送において、データ転送元アドレスとデータ転送先アドレスが、アドレスの位置するバイトアライメントが異なるように設定される場合であっても、高速にデータ転送を行う。
【解決手段】データを一時的に格納する内部メモリ140と、データを一時的に格納するバッファ150と、前記バッファへの入力データ又は前記バッファからの出力データのいずれかをバイト毎に選択するセレクタ160と、データをローテートするローテータ170とを備え、前記内部メモリは転送元からのリードデータを入力とし、前記バッファは前記内部メモリからのデータを入力とし、前記セレクタは前記内部メモリからのデータと前記バッファからのデータとを入力とし、前記ローテータは前記セレクタで選択されたデータを入力とし、前記ローテータからの出力をライトデータとする。
【選択図】図1

Description

本発明は、コンピュータ・システムのバス間でのデータ転送に関する。詳細には、デバイス間でデータを転送するためのダイレクトメモリアクセス(DMA)転送制御装置、バス間でデータを転送するためのバスアダプタ、かかるバスアダプタ又はDMA転送制御装置あるいはその両方を組み込んだコンピュータ・システム、及びバス間でのデータ転送方法に関する。
従来において、CPUを経由させずにデータ転送を転送デバイス間で直接行うDMA転送方法が広く知られており、メモリ同士のデータ転送を両メモリ間で直接行う等において使われている。
DMA転送では、データ転送元アドレス、データ転送先アドレス、データ転送サイズ等の転送に必要な情報をDMA転送制御装置のレジスタ等に設定し、その後CPU等が転送開始を制御することにより転送動作を実行する。転送時にはCPUによる転送制御の必要はないため、CPUを経由する場合に比べて高速にデータ転送を行うことができ、またCPUの負担を減らすことができる。レジスタ等に設定された転送サイズだけ転送が完了したら、DMA転送制御装置の設定によって、DMA転送終了割り込みをアサートする。CPUは、DMA転送終了割り込みを検知すると、DMA転送制御装置のレジスタ等を読み込んで、DMA転送の結果やステータスを監視する。
またDMA転送では、1回のアドレス指定で複数個のバイトデータをまとめて連続的に転送することが可能な、バースト転送を利用する場合が多い。
DMA転送において、データ転送元アドレスとデータ転送先アドレスが、アドレスの位置するバイトアライメントが異なるように設定される場合、リードしたデータをそのままライトのデータとして用いることができなくなる。このため、アドレスに応じて、2回分のリードデータからライトデータを再生成する等の処理が必要となる。
このような課題に対し、ある従来に係る転送制御装置は、リードデータをシフトするためのシフタと、シフトされたバイトの選択的な累積を行い、かつ出力バイトを供給するアキュムレータとを備えている(特許文献1参照)。
この従来技術における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合のバースト転送動作を、図22を用いて説明する。1つのリードデータに対して、2フェーズで転送処理が行われる。第1フェーズでは、リードデータを設定アドレスに応じてシフトし、直ちにライトデータとして出力できるバイトに対しては、アキュムレータへのバイトイネーブル信号を有効にしてアキュムレータへ書き込み、同時にアキュムレータよりライトデータを出力する。第2フェーズでは、第1フェーズにおいてライトデータとして出力されなかったバイトに対して、アキュムレータへのバイトイネーブル信号を有効にしてアキュムレータへ書き込みを行い、データを累積させる。これらのバイトは、次回の第1フェーズにおいて、次のリードデータの一部と共に、ライトデータとして出力される。
特開2000−267989号公報
しかしながら、上記従来の転送制御装置では、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合には、1つのリードデータに対して2フェーズの処理が必要となるために、データの転送速度が低下してしまっていた。
本発明は、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合であっても、転送速度を低下させずに、データ転送を行うことが可能なDMA転送制御装置を提供することを目的とする。
本発明のDMA転送制御装置は、データを一時的に格納する内部メモリと、データを一時的に格納するバッファと、前記バッファへの入力データ又は前記バッファからの出力データのいずれかをバイト毎に選択するセレクタと、データをローテートするローテータとを備え、前記内部メモリと、前記バッファを有する前記セレクタと、前記ローテータとが任意の順序で接続されていることを特徴とする。
具体的な接続としては、前記内部メモリは転送元からのリードデータを入力とし、前記バッファは前記内部メモリからのデータを入力とし、前記セレクタは前記内部メモリからのデータと前記バッファからのデータとを入力とし、前記ローテータは前記セレクタで選択されたデータを入力とすることを特徴とする。
あるいは、前記バッファは転送元からのリードデータを入力とし、前記セレクタは前記転送元からのリードデータと前記バッファからのデータとを入力とし、前記ローテータは前記セレクタで選択されたデータを入力とし、前記内部メモリは前記ローテータからのデータを入力とすることを特徴とする。
あるいは、前記内部メモリは転送元からのリードデータを入力とし、前記ローテータは前記内部メモリからのデータを入力とし、前記バッファは前記ローテータからのデータを入力とし、前記セレクタは前記ローテータからのデータと前記バッファからのデータとを入力とすることを特徴とする。
あるいは、前記ローテータは転送元からのリードデータを入力とし、前記バッファは前記ローテータからのデータを入力とし、前記セレクタは前記ローテータからのデータと前記バッファからのデータとを入力とし、前記内部メモリは前記セレクタで選択されたデータを入力とすることを特徴とする。
あるいは、前記ローテータは転送元からのリードデータを入力とし、前記内部メモリは前記ローテータからのデータを入力とし、前記バッファは前記内部メモリからのデータを入力とし、前記セレクタは前記内部メモリからのデータと前記バッファからのデータとを入力とすることを特徴とする。
あるいは、前記バッファは転送元からのリードデータを入力とし、前記セレクタは前記転送元からのリードデータと前記バッファからのデータとを入力とし、前記内部メモリは前記セレクタで選択されたデータを入力とし、前記ローテータは前記内部メモリからのデータを入力とすることを特徴とする。
本発明のDMA転送制御装置によれば、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合でも、リードデータの一部を、ライトデータとして出力するタイミングと、次のライトデータ生成用に保存するタイミングとが同じであるため、転送速度を低下させずにDMA転送を行うことが可能となる。
また、本発明のDMA転送制御装置において、前記ローテータは、転送元アドレスと転送先アドレスとの差異をローテーション段数決定に用いることを特徴とする。
本発明のDMA転送制御装置によれば、1回のみのローテート動作によって、転送元アドレスから転送先アドレスへのデータアライメント調整が可能となる。
また、本発明のDMA転送制御装置において、前記セレクタは、転送元アドレスと転送先アドレスとの差異を選択決定に用いることを特徴とする。
本発明のDMA転送制御装置によれば、セレクタにおいてライトデータの生成に使われる入力データを的確にバイト毎に選択することが可能となる。
また、本発明のDMA転送制御装置において、転送元へのリードの転送サイズを決定するリードサイズ決定回路と、転送先へのライトの転送サイズを決定するライトサイズ決定回路との少なくとも一方を備えたことを特徴とする。
本発明のDMA転送制御装置によれば、設定された転送サイズだけでなく、その他の要因も考慮することで、転送効率がより向上するような転送サイズを決定することが可能となる。
また、本発明のDMA転送制御装置において、前記リードサイズ決定回路及び前記ライトサイズ決定回路は、転送元アドレスと転送先アドレスとの少なくとも一方を、リードサイズ決定又はライトサイズ決定に利用することを特徴とする。
本発明のDMA転送制御装置によれば、転送元アドレスと転送先アドレスとのアライメントがずれている場合に、転送サイズを調整することで、転送効率を向上させることが可能となる。
また、本発明のDMA転送制御装置において、前記リードサイズ決定回路及び前記ライトサイズ決定回路は、転送元からリードするアドレスからの連続領域サイズと、転送先へライトするアドレスからの連続領域サイズとを、リードサイズ決定又はライトサイズ決定に利用することを特徴とする。
本発明のDMA転送制御装置によれば、連続領域サイズを超えないようにリード転送又はライト転送を調整することで、不連続領域の転送データを扱うための追加回路を必要とせずに、不連続領域のリードデータ又はライトデータ又はその両方に対応したDMA転送を行うことが可能となる。
また、本発明のDMA転送制御装置において、前記ローテータは、転送元からリードするアドレスからの連続領域サイズと、転送先へライトするアドレスからの連続領域サイズとを、ローテーション段数決定に用いることを特徴とする。
また、本発明のDMA転送制御装置において、前記セレクタは、転送元からリードするアドレスからの連続領域サイズと、転送先へライトするアドレスからの連続領域サイズとを選択決定に用いることを特徴とする。
本発明のDMA転送制御装置によれば、不連続領域サイズのリードデータから連続領域のライトデータを生成する、又は連続領域サイズのリードデータから不連続領域のライトデータを生成する、又は不連続領域サイズのリードデータから異なる不連続領域のライトデータを生成することが可能となり、不連続領域のリードデータ又はライトデータに対応したDMA転送を高速に行うことが可能となる。
また、本発明のいくつかのDMA転送制御装置において、データを一時的に格納する第2のバッファと、前記第2のバッファへの入力データ又は前記第2のバッファからの出力データのいずれかをバイト毎に選択する第2のセレクタとを更に備え、前記第2のセレクタからの出力データを前記内部メモリ又は前記ローテータに入力することを特徴とする。
本発明のDMA転送制御装置によれば、リードデータが転送バス幅よりも小さいデータ幅の場合に、前記第2のバッファにリードデータを蓄積してから内部メモリにデータを格納することで、効率良く内部メモリを使用することが可能となる。
また、本発明のいくつかのDMA転送制御装置において、前記セレクタの選択機能及び前記ローテータのローテート機能は、2つの入力データをバイト単位で任意に組み合わせて生成されるデータの中から1つを選択して出力とするセレクタ・ローテータ回路により実現されたことを特徴とする。
本発明のDMA転送制御装置によれば、小規模な回路で選択機能とローテート機能とを実現することができ、回路規模を小さくすることが可能となる。
また、本発明のDMA転送制御装置において、転送元アドレスと転送先アドレスとのアライメントが等しい場合では、前記バッファは使用されないことを特徴とする。
本発明のDMA転送制御装置によれば、アライメントの調整が不要な場合においてバッファを使わなくするよう制御することにより、消費電力を抑えることが可能となる。
なお本発明については、特許請求の範囲の独立項及び従属項で詳細に説明されているが、従属項の特徴の組み合わせを独立項の特徴と適切に組み合わせることが可能であり、特許請求の範囲で明示的に説明されているものに限らない。
以上説明したように、本発明に係るDMA転送制御装置によれば、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合であっても、従来技術と比べて高速にライトデータを生成することができるので、転送速度を低下させずにDMA転送を行うことが可能である。
また、本発明に係るDMA転送制御装置によれば、矩形領域のような不連続領域を含むデータの転送を行う場合であっても、特別な回路を必要とせずに不連続領域の転送データに対応したDMA転送を行うことが可能である。また、不連続領域を含むデータを連続領域のデータや異なる不連続領域を含むデータに変換することも可能であり、高速にDMA転送を行うことが可能である。
以下、本発明におけるDMA転送制御装置の実施の形態を図面に基づいて詳細に説明する。なお、本発明の実施の形態において使用される手法・構成は一例であり、本発明はこれらに限定されるものでない。
《実施の形態1》
図1は、本発明の実施の形態1におけるDMA転送制御装置100の概略構成を示すブロック図である。本実施形態のDMA転送制御装置100は、転送元デバイス又は転送元デバイスが接続されているバスが、バスインタフェースA120と接続されており、転送先デバイス又は転送先デバイスが接続されているバスが、バスインタフェースB130と接続されている。
DMA転送制御装置100は、上記のバスインタフェースA120、バスインタフェースA120から出力されるリードデータ121を入力とする内部メモリ140、内部メモリ140から出力される内部メモリ出力データ141を入力とするバッファ150、内部メモリ出力データ141とバッファ150から出力されるバッファ出力データ151とを入力とするセレクタ160、セレクタ160から出力されるセレクタ出力データ161を入力とするローテータ170、ローテータ170から出力されるローテータ出力データ171を入力とするバスインタフェースB130を有している。
またDMA転送制御装置100は、設定レジスタ110を有しており、転送サイズ111、転送元開始アドレス112、転送先開始アドレス113、転送元連続領域サイズ114、転送先連続領域サイズ115、転送元データ幅116、転送先データ幅117が設定されている。
またDMA転送制御装置100は、リードサイズ決定回路180、ライトサイズ決定回路190を有している。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わないことは明白である。
次に、本実施形態のDMA転送制御装置について、データ転送の流れを説明する。転送元デバイスからバスインタフェースA120を介してリードされたリードデータ121は、バースト転送を行うために一旦内部メモリ140に入れられる。適切なサイズだけデータが内部メモリ140に蓄積されたら、内部メモリ140からデータリードを行う。内部メモリからの出力データは、セレクタ160に入力されると同時に、バッファ150にも入力される。バッファ150では、データを一時的に蓄えたのち、セレクタ160に出力する。セレクタ160では、入力された2つのデータのいずれかを、転送先開始アドレス113の設定値から転送元開始アドレス112の設定値を差し引いた差異に応じてバイト毎に選択する。セレクタからの出力データは、ローテータ170に入力される。ローテータ170では、前述のアドレス差異に応じてローテーション段数を決定し、これに応じて入力データをローテートする。ローテータ出力データは、バスインタフェースB130を通って転送先デバイスに送られる。
転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送(アンアライメント転送)の動作例を、図2を用いて説明する。転送バス幅は8バイトである。また、転送元開始アドレスは下位3ビットの値が3、転送先開始アドレスは下位3ビットの値が5であり、転送元と転送先でアドレスのアライメントが転送バス幅でされておらず、また先頭データの途中のバイトからデータが有効となる。
まず内部メモリ140より、先頭のリードデータ「xxxABCDE」が出力されると、バッファ150とセレクタ160に入力される。セレクタ160では、転送先開始アドレス113の設定値の下位3ビットから、転送元開始アドレス112の設定値の下位3ビットを差し引いた差異に応じてバイト毎に選択する。この例では、差異が2なので、8バイトのうち後ろの2バイトをバッファ出力データ151から選択し、残りは内部メモリ出力データ141から選択する。つまり0バイト目から5バイト目は内部メモリ出力データ141から、6バイト目から7バイト目はバッファ出力データ151から選択されるので、先頭リードデータからは、先頭ライトデータ生成に必要な「xxxABC」のみが選択されて、「DE」は選択されない。セレクタ出力データ161はローテータ170に入力され、前述のアドレス差異だけ右方向にローテートされる。つまり入力された「xxxABCxx」は、右方向にローテートされ、「xxxxxABC」となって出力され、バスインタフェースB130を通って転送先デバイスに送られる。バッファ150に入力された内部メモリ出力データ141は、一時的に格納される。
次のサイクルにおいて、内部メモリ140より次のリードデータ「FGHIJKLM」が出力されると、前回と同様にバッファ150とセレクタ160に入力される。セレクタ160では、前回と同様に6バイト目の箇所で選択されるバイトを分けるので、内部メモリ出力データ141「FGHIJKLM」から「FGHIJK」、バッファ出力データ151から前サイクルのリードデータの一部「DE」が選択され、「FGHIJKDE」がセレクタから出力される。このデータはローテータ170で前回と同様にローテートされ、「DEFGHIJK」となってローテータ出力データ171として出力され、バスインタフェースB130を通って転送先デバイスに送られる。
この動作を繰り返してライトデータの生成を行うことで、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合でも、ライトデータを毎サイクル出力することが可能となり、高速にDMA転送を行うことができる。
なお、転送元アドレスと転送先アドレスとのバイトアライメントが等しい場合では、セレクタ160は、常に内部メモリ出力データ141からの入力データを選択され、ローテータ170では入力データのローテートを行わずにそのまま出力する。バッファ150は使用されないので、クロック供給を制御することで消費電力を抑えることができる。
次に、本実施形態のDMA転送制御装置について、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の発行サイズ調整について説明する。仮に、レジスタに設定された転送サイズ111によってのみリードサイズとライトサイズが決められるとすると、リードとライトで同じ転送回数となるように命令が発行される。しかし転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合では、転送回数がリードとライトで同じであっても、転送に有効なデータサイズが常に同じとは限らない。リードの方がライトよりも有効なデータサイズが少ない場合では、ライトの転送回数よりも多くリードの転送回数を発行してから、ライト命令を発行する必要が生じる。多くのシステムにおいては、バスや転送デバイスのプロトコル等によって、1回の命令でアクセスできる転送回数が規定されている。このような場合は、リード命令を2回実行してからライト命令を発行する必要がある。一例を、図3に示す。図3において、1回の命令でアクセスできる転送回数はバスのプロトコルによって2回までに規定されているとする。このとき、2回目のリードの命令でデータを取得してはじめて、ライトに必要なデータがそろう。つまり、必要なデータがそろってからライト命令を発行するため、転送元アドレスと転送先アドレスとのバイトアライメントが同じ場合と比べて、転送が遅くなる。
そこで本発明のDMA転送制御装置では、上記のような場合において、1回のリード命令が完了したタイミングで、転送回数を1つ減らしたライト転送命令を発行するように調整を行う。この場合の一例を、図4に示す。転送回数の条件は、上記の場合と同じである。ライトの転送回数は本来2回まで発行可能であるが、初回のライトの転送回数を1回とすることで、初回のリードデータ取得後すぐに、ライトデータを書き込むことができる。
このように転送サイズを調整することで、ライトの転送回数を調整しない場合に比べて、ライトデータの到着を早くし、転送を高速化することができる。また早くライトすることで、内部メモリでの過剰なデータ蓄積を防ぎ、内部メモリの空き容量不足によるリードミスを防ぐことができる。
次に、本実施形態のDMA転送制御装置について、不連続領域のデータ転送を行う場合の発行サイズ調整について説明する。不連続領域のデータをリードする場合は、データが不連続となる箇所で転送が分かれるように命令を実行する。つまり、不連続となる箇所までのデータを転送するよう転送サイズを設定して命令を発行し、次の命令は、次の連続領域からデータを転送するようにアドレスやサイズを設定して発行する。不連続領域のリードデータを扱う場合の一例を、図5に示す。1回の命令でアクセスできる転送回数は、バスのプロトコルによって4回までに規定されているとする。このとき、転送サイズ0x13を転送元データ幅0x8バイトで割ることにより、必要なリードの転送回数は3回と算出されるが、連続領域リードサイズが0x0aであるので、これを転送元データ幅0x8バイトで割って算出した2回を、初回のリードの転送回数としてリード命令を発行する。2回目のリード発行では、転送回数は残りの転送サイズ0x09より2回を発行する。なお、アドレスは次の連続領域の先頭を指定して発行する。なお、ライトの発行のタイミングについては、図示の例に限らない。
不連続領域のライトデータを扱う場合でも、同様に発行サイズ調整を行って対応する。図6に、ライトの場合の一例を示す。図6において、1回の命令でアクセスできる転送回数はバスのプロトコルによって4回までに規定されているとする。ライトにおいて転送回数は、転送サイズ0x13を転送元データ幅0x8バイトで割ることにより、必要なライトの転送回数は3回と算出されるが、連続領域ライトサイズが0x0aであるので、これを転送元データ幅0x8バイトで割って算出した2回を、初回のライトの転送回数としてライト命令を発行する。2回目のライト発行では、転送回数は残りの転送サイズ0x09より2回を発行する。なおアドレスは、次の連続領域の先頭を指定して発行する。
不連続領域のリードデータとライトデータを同時に扱う場合の一例を図7に示す。図7において、1回の命令でアクセスできる転送回数はバスのプロトコルによって4回までに規定されているとする。リードデータは、先に説明した不連続領域データをリードする場合の方法により取得する。ライトでは、転送サイズ0x13を転送元データ幅0x8バイトで割ることにより、必要なライトの転送回数は3回と算出されるが、リードの不連続領域に対応するために、連続領域リードサイズが0x0aであるので、これを転送元データ幅0x8バイトで割って算出した2回を、初回のライトの転送回数としてライト命令を発行する。2回目のライト発行では、連続領域ライトサイズ0x0cから前回の転送サイズ0x0aを引いて算出した、残りの連続領域ライトサイズが0x02なので、ライトの不連続領域に対応するためにここでライトデータを区切って、転送回数は1回で発行する。3回目のライトでは、転送サイズ0x13から既に転送を行ったサイズ0x0cを引いた値が0x07であるが、発行アドレスのアライメントにより、転送回数を2回にして発行する。
なお、これらの説明はあくまで一例であり、リードやライトのタイミングや転送回数はこれに限らない。このように転送サイズと転送アドレスを調整することで、不連続領域のデータも、特別な回路を必要とせずに連続領域のデータと同様に扱うことができる。
《実施の形態2》
図8は、本発明の実施の形態2におけるDMA転送制御装置200の概略構成を示すブロック図である。本実施形態のDMA転送制御装置200は、転送元デバイスが接続されているバスが、バスインタフェースA220と接続されており、転送先デバイスが接続されているバスが、バスインタフェースB230と接続されている。
DMA転送制御装置200は、上記のバスインタフェースA220、バスインタフェースA220から出力されるリードデータ221を入力とするバッファ250、リードデータ221とバッファ250から出力されるバッファ出力データ251とを入力とするセレクタ260、セレクタ260から出力されるセレクタ出力データ261を入力とするローテータ270、ローテータ270から出力されるローテータ出力データ271を入力とする内部メモリ240、内部メモリ240から出力される内部メモリ出力データ241を入力とするバスインタフェースB230を有している。
またDMA転送制御装置200は、設定レジスタ210を有しており、転送サイズ211、転送元開始アドレス212、転送先開始アドレス213、転送元連続領域サイズ214、転送先連続領域サイズ215、転送元データ幅216、転送先データ幅217が設定されている。
またDMA転送制御装置200は、リードサイズ決定回路280、ライトサイズ決定回路290を有している。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わないことは明白である。
次に、本実施形態のDMA転送制御装置について、データ転送の流れを説明する。転送元デバイスからバスインタフェースA220を介してリードされたリードデータ221は、セレクタ260に入力されると同時に、バッファ250にも入力される。バッファ250では、データを一時的に蓄えたのち、セレクタ260に出力する。セレクタ260では、入力された2つのデータのいずれかを、転送先開始アドレス213の設定値から転送元開始アドレス212の設定値を差し引いた差異に応じてバイト毎に選択する。セレクタからの出力データは、ローテータ270に入力される。ローテータ270では、前述のアドレス差異に応じてローテーション段数を決定し、これに応じて入力データをローテートする。出力データは、バースト転送のために一旦内部メモリ240に入れられる。適切なサイズだけデータが内部メモリ240に蓄積されたら、内部メモリ240からデータリードを行う。内部メモリからの出力データは、バスインタフェースB230を通って転送先デバイスに送られる。
転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を、図9を用いて説明する。転送バス幅は8バイトである。また、転送元開始アドレスは下位3ビットが3、転送先開始アドレスは下位3ビットが5と、転送元転送先共にアドレスが転送バス幅でアライメントされておらず、先頭データの途中のバイトからデータが有効となる。
まずバスインタフェースA220より、先頭のリードデータ「xxxABCDE」が送られると、バッファ250とセレクタ260に入力される。セレクタ260では、転送先開始アドレス213の設定値の下位3ビットから、転送元開始アドレス212の設定値の下位3ビットを差し引いた差異に応じてバイト毎に選択する。この例では、差異が2なので、8バイトのうち後ろの2バイトをバッファ出力データ251から選択し、残りは内部メモリ出力データ241から選択する。つまり0バイト目から5バイト目は内部メモリ出力データ241、6バイト目から7バイト目はバッファ出力データ251から選択されるので、先頭リードデータからは、先頭ライトデータ生成に必要な「xxxABC」のみが選択されて、「DE」は選択されない。セレクタ出力データ261はローテータ270に入力され、前述のアドレス差異だけ右方向にローテートされる。つまり入力された「xxxABCxx」は、右方向に2つローテートされ、「xxxxxABC」となって出力され、内部メモリ240に送られる。バッファ250に入力されたリードデータ221は、一時的に格納される。
次のサイクルにおいて、バスインタフェースA220より次のリードデータ「FGHIJKLM」が出力されると、前回と同様にバッファ250とセレクタ260に入力される。セレクタ260では、前回と同様に6バイト目の箇所で選択されるバイトを分けるので、内部メモリ出力データ241「FGHIJKLM」から「FGHIJK」、バッファ出力データ251から前サイクルのリードデータの一部「DE」が選択され、「FGHIJKDE」がセレクタから出力される。このデータはローテータ270で前回と同様にローテートされ、「DEFGHIJK」となってローテータ出力データ271として出力され、内部メモリ240に送られる。
この動作を繰り返してリードデータを内部メモリへ取り込むことで、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合でも、リードデータを毎サイクル取り込むことが可能となる。ライトデータも、転送元アドレスに応じて適切なデータが内部メモリに格納されているので、高速にDMA転送を行うことができる。
なお、転送元アドレスと転送先アドレスとのバイトアライメントが等しい場合では、セレクタ260は、常にリードデータ221からの入力データを選択され、ローテータ270では入力データのローテートを行わずにそのまま出力する。バッファ250は使用されないので、クロック供給を制御することで消費電力を抑えることができる。
また、本実施形態のDMA転送制御装置では、発行サイズ調整が可能であるが、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合についてと、不連続領域のデータ転送を行う場合についてと共に、実施の形態1での説明と同様である。
次に、本実施形態のDMA転送制御装置についての、転送バス幅よりも小さいデータ幅でリード転送する場合について説明する。バッファ250では、有効なリードデータのバイトのみバッファに書き込む機能を有しており、どのバイトを書き込むかは、転送元開始アドレスと転送データ幅を用いて決定することができる。有効なリードデータ221を順にバッファ250に蓄積していき、転送バス幅分だけデータがリードされたら、内部メモリ240へ格納する。リードデータが蓄積されるまでは格納は行わない。
動作の例を、図10を用いて説明する。転送元デバイスからのリードデータ221は、初回のリードデータ「xAxxxxxx」がリードされると、バッファ250では下位アドレスが0x1の「A」が書き込まれる。この時に、他のバイトについては書き込みされない。ただし下位アドレスが0x0の「x」の書き込みはどちらでも構わない。次のサイクルにリードデータ「xxBCxxxx」がリードされると、バッファ250には下位アドレスが0x2,0x3の「BC」が書き込まれる。このとき、他のバイトは書き込みされずに以前の値を保持しているので、バッファ250のデータは「xABCxxxx」となる。これを毎サイクル繰り返していくと、バッファ250のデータは「xABCDEFG」となる。次にリードデータ221で「HIxxxxxx」がリードされると、セレクタ260では、転送元開始アドレスと転送先開始アドレスとの差異に基づいて、リードデータ221の「H」と、バッファデータ251の「ABCDEFG」が選択され、「HABCDEFG」が出力される。このセレクタ出力データ261は、ローテータ270に入力される。ローテータ270では、前述のアドレス差異に基づいて入力されるデータをローテートして「ABCDEFGH」が出力されて、このデータが内部メモリ240に格納される。
このようにリードデータを扱うことで、転送バス幅よりも小さいデータ幅でリード転送する場合でも、転送バス幅でまとめて内部メモリに格納することが可能となり、効率良く内部メモリを使用することができる。なお、転送バス幅よりも小さいデータ幅でライト転送する場合については、ライトデータが複数サイクルに分けてライトされるのみで、本DMA転送制御装置内でのデータ転送方法は、転送バス幅と同じデータ幅でライト転送する場合と変わらない。
《実施の形態3》
図11は、本発明の実施の形態3におけるDMA転送制御装置300の概略構成を示すブロック図である。本実施形態のDMA転送制御装置300は、転送元デバイス又は転送元デバイスが接続されているバスが、バスインタフェースA320と接続されており、転送先デバイス又は転送先デバイスが接続されているバスが、バスインタフェースB330と接続されている。
DMA転送制御装置300は、上記のバスインタフェースA320、バスインタフェースA320から出力されるリードデータ321を入力とする内部メモリ340、内部メモリ340から出力される内部メモリ出力データ341を入力とするローテータ370、ローテータ370から出力されるローテータ出力データ371を入力とするバッファ350、ローテータ出力データ371とバッファ350から出力されるバッファ出力データ351とを入力とするセレクタ360、セレクタ360から出力されるセレクタ出力データ361を入力とするバスインタフェースB330を有している。
またDMA転送制御装置300は、設定レジスタ310を有しており、転送サイズ311、転送元開始アドレス312、転送先開始アドレス313、転送元連続領域サイズ314、転送先連続領域サイズ315、転送元データ幅316、転送先データ幅317が設定されている。
またDMA転送制御装置300は、リードサイズ決定回路380、ライトサイズ決定回路390を有している。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わないことは明白である。
次に、本実施形態のDMA転送制御装置について、データ転送の流れを説明する。転送元デバイスからバスインタフェースA320を介してリードされたリードデータ321は、バースト転送を行うために一旦内部メモリ340に入れられる。適切なサイズだけデータが内部メモリ340に蓄積されたら、内部メモリ340からデータリードを行う。内部メモリからの出力データは、ローテータ370に入力される。ローテータ370では、転送先開始アドレス313の設定値から転送元開始アドレス312の設定値を差し引いたアドレス差異に応じてローテーション段数を決定して入力データをローテートする。ローテータ出力データ371は、セレクタ360に入力されると同時に、バッファ350にも入力される。バッファ350では、データを一時的に蓄えたのち、セレクタ360に出力する。セレクタ360では、入力された2つのデータのいずれかを、前述のアドレス差異に応じてバイト毎に選択する。セレクタからの出力データは、バスインタフェースB330を通って転送先デバイスに送られる。
転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を、図12を用いて説明する。転送バス幅は8バイトである。また、転送元開始アドレスは下位3ビットが3、転送先開始アドレスは下位3ビットが5と、転送元転送先共にアドレスが転送バス幅でアライメントされておらず、先頭データの途中のバイトからデータが有効となる。
まずバスインタフェースA320より、リードデータが内部メモリ340に格納される。ライトデータ生成に必要なデータが格納されたら、内部メモリ340からデータをリードする。先頭のリードデータ「xxxABCDE」が出力されると、ローテータ370に入力される。ローテータ370では、転送先開始アドレス313の設定値の下位3ビットから、転送元開始アドレス312の設定値の下位3ビットを差し引いた差異に応じてローテートを行う。この例では、差異が2なので、入力データを右方向に2だけローテートして、「DExxxABC」が出力される。ローテータ出力データ371は、バッファ350とセレクタ360に入力される。セレクタ360では、前述のアドレス差異に応じてバイト毎に選択する。ローテート済みのデータから選択するので、この例ではアドレス差異2より、8バイトのうち前の2バイトをバッファ出力データ351から選択し、残りはローテータ出力データ371から選択する。つまり、0バイト目から1バイト目はバッファ出力データ351、2バイト目から7バイト目はローテータ出力データ371から選択されるので、先頭リードデータからは、先頭ライトデータ生成に必要な「xxxABC」のみが選択されて、「DE」は選択されない。セレクタ出力データ361は、バスインタフェースB330を通って転送先デバイスに送られる。バッファ350に入力されたローテータ出力データ371は、一時的に格納される。
次のサイクルにおいて、内部メモリ340より次のリードデータ「FGHIJKLM」が出力されると、前回と同様にローテータ370でローテートされ、「LMFGHIJK」が出力される。このデータは、バッファ350とセレクタ360に入力される。セレクタ360では、前回と同様に2バイト目の箇所で選択されるバイトを分けるので、ローテータ出力データ371「LMFGHIJK」から「FGHIJK」、バッファ出力データ351から前サイクルのリードデータの一部「DE」が選択され、「DEFGHIJK」がセレクタから出力される。このデータは、バスインタフェースB330を通って転送先デバイスに送られる。
この動作を繰り返してライトデータの生成を行うことで、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合でも、ライトデータを毎サイクル出力することが可能となり、高速にDMA転送を行うことができる。
なお、転送元アドレスと転送先アドレスとのバイトアライメントが等しい場合では、ローテータ370では入力データのローテートを行わずにそのまま出力し、セレクタ360は常にローテータ出力データ371からの入力データを選択する。バッファ350は使用されないので、クロック供給を制御することで消費電力を抑えることができる。
また、本実施形態のDMA転送制御装置では発行サイズ調整が可能であるが、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合についてと、不連続領域のデータ転送を行う場合についてと共に、実施の形態1での説明と同様である。
次に、本実施形態のDMA転送制御装置について、不連続領域サイズを含むデータの効率的な転送方法について説明する。ローテータ370では、不連続領域サイズを含むデータ転送に対応するため、転送元開始アドレスと転送先開始アドレスとの差異だけでなく、連続転送データサイズも考慮してローテーション段数を決定する。またバッファ350は、有効なデータのバイトのみ書き込むことができ、データの蓄積が可能である。
図13では、不連続領域サイズを含むリードデータから、連続領域のライトデータを生成して転送を行う様子を示している。リードデータ321は、不連続データのまま内部メモリ340に格納される。まず内部メモリ340より出力される先頭のリードデータ「xABCDExx」が、ローテータ370に入力される。ローテータ370では、転送先開始アドレス113の設定値の下位3ビットから、転送元開始アドレス112の設定値の下位3ビットを差し引いた差異が4であるので右方向に4つローテートし、ローテータ出力データ371は「DExxxABC」となる。このデータは、バッファ350とセレクタ360に入力される。セレクタ360では、転送先開始アドレスにより、5バイト目の箇所で選択されるバイトが分けられるので、先頭リードデータからは、先頭ライトデータ生成に必要な「ABC」のみが選択される。セレクタ出力データ361は、バスインタフェースB330を通って転送先デバイスに送られる。バッファ350に入力されたローテータ出力データ371は、一時的に格納される。
次のサイクルにおいて、内部メモリ340より次のリードデータ「xFGHIJxx」が、ローテータ370に入力される。ローテーション段数は、前サイクルでの値4に、転送元連続領域サイズ5を加えて9となり、これを転送バス幅8で割った余りの1つだけ、右方向にローテートを行う。ローテータ出力データ371は、「xxFGHIJx」となり、バッファ350とセレクタ360に入力される。バッファ350では、有効バイト「FGHIJ」のみ書き込みを行い、他のバイトのデータはそのまま蓄積されるので、次のサイクルでのバッファ出力データ351は「DEFGHIJx」となる。セレクタ360では、選択バイトの指定に、前サイクルでの5に転送元連続領域サイズの5を加えて10として、これを転送バス幅8で割った余りの2を用い、2バイト目の箇所で選択されるバイトを分けるので、セレクタ出力データ361は、「DEFGHIJx」となる。しかしこのサイクルでは、次のライトデータ生成に必要なリードデータが不足しているので、ライトは行わない。
次のサイクルにおいて、内部メモリ340より次のリードデータ「xKLMNOxx」が、ローテータ370に入力される。ローテーション段数は、前サイクルでの値1に、転送元連続領域サイズ5を加えて6となるので、右方向に6つローテートする。ローテータ出力データ371は、「LMNOxxxK」となり、バッファ350とセレクタ360に入力される。セレクタ360では、前サイクルでの選択バイト箇所2に転送元連続領域サイズ5を加えて7を算出し、7バイト目の箇所で選択されるバイトを分けるので、セレクタ出力データ361は「DEFGHIJK」となる。このデータは、バスインタフェースB330を通って転送先デバイスに送られる。
このようにしてデータを転送することで、不連続領域を含むリードデータであっても、連続領域データや異なる不連続領域を含むデータなど、ライトに適したデータに変換することで、不連続領域のリードデータに対応したDMA転送を高速に行うことができる。また同様の方法により、セレクタでのデータ選択バイトやローテータのローテーション段数を調整することで、不連続領域を含むライトデータ、又はライトデータとリードデータ両方の場合でも転送を行うことができる。
《実施の形態4》
図14は、本発明の実施の形態4におけるDMA転送制御装置400の概略構成を示すブロック図である。本実施形態のDMA転送制御装置400は、転送元デバイス又は転送元デバイスが接続されているバスが、バスインタフェースA420と接続されており、転送先デバイス又は転送先デバイスが接続されているバスが、バスインタフェースB430と接続されている。
DMA転送制御装置400は、上記のバスインタフェースA420、バスインタフェースA420から出力されるリードデータ421を入力とするローテータ470、ローテータ470から出力されるローテータ出力データ471を入力とするバッファ450、ローテータ出力データ471とバッファ450から出力されるバッファ出力データ451とを入力とするセレクタ460、セレクタ460から出力されるセレクタ出力データ461を入力とする内部メモリ440、内部メモリ440から出力される内部メモリ出力データ441を入力とするバスインタフェースB430を有している。
またDMA転送制御装置400は、設定レジスタ410を有しており、転送サイズ411、転送元開始アドレス412、転送先開始アドレス413、転送元連続領域サイズ414、転送先連続領域サイズ415、転送元データ幅416、転送先データ幅417が設定されている。
またDMA転送制御装置400は、リードサイズ決定回路480、ライトサイズ決定回路490を有している。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わないことは明白である。
次に、本実施形態のDMA転送制御装置について、データ転送の流れを説明する。転送元デバイスからバスインタフェースA420を介してリードされたリードデータ421は、ローテータ470に入力される。ローテータ470では、転送先開始アドレス413の設定値から転送元開始アドレス412の設定値を差し引いたアドレス差異に応じてローテーション段数を決定して入力データをローテートする。ローテータ出力データ471は、セレクタ460に入力されると同時に、バッファ450にも入力される。バッファ450では、データを一時的に蓄えたのち、セレクタ460に出力する。セレクタ460では、入力された2つのデータのいずれかを、前述のアドレス差異に応じてバイト毎に選択する。セレクタからの出力データは、バースト転送を行うために一旦内部メモリ440に入れられる。適切なサイズだけデータが内部メモリ440に蓄積されたら、内部メモリ440からデータリードを行う。内部メモリからの出力データは、バスインタフェースB430を通って転送先デバイスに送られる。
転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を、図15を用いて説明する。転送バス幅は8バイトである。また、転送元開始アドレスは下位3ビットが3、転送先開始アドレスは下位3ビットが5と、転送元転送先共にアドレスが転送バス幅でアライメントされておらず、先頭データの途中のバイトからデータが有効となる。
まずバスインタフェースA420より、先頭のリードデータ「xxxABCDE」が出力されると、ローテータ470に入力される。ローテータ470では、転送先開始アドレス413の設定値の下位3ビットから、転送元開始アドレス412の設定値の下位3ビットを差し引いた差異に応じてローテートする。この例では、差異が2なので、入力データを右方向に2だけローテートして、「DExxxABC」が出力される。ローテータ出力データ471は、バッファ450とセレクタ460に入力される。セレクタ460では、前述のアドレス差異に応じてバイト毎に選択する。この例では、8バイトのうち前の2バイトをバッファ出力データ451から選択し、残りはローテータ出力データ471から選択する。つまり0バイト目から1バイト目はバッファ出力データ451、2バイト目から7バイト目はローテータ出力データ471から選択されるので、先頭リードデータからは、先頭ライトデータ生成に必要な「xxxABC」のみが選択されて、「DE」は選択されない。セレクタ出力データ461は、内部メモリ440に格納される。バッファ450に入力されたローテータ出力データ471は、一時的に格納される。
次のサイクルにおいて、バスインタフェースA420より次のリードデータ「FGHIJKLM」が出力されると、前回と同様にローテータ470でローテートされ、「LMFGHIJK」が出力される。このデータは、バッファ450とセレクタ460に入力される。セレクタ460では、前回と同様に2バイト目の箇所で選択されるバイトを分けるので、ローテータ出力データ471「LMFGHIJK」から「FGHIJK」、バッファ出力データ451から前サイクルのリードデータの一部「DE」が選択され、「DEFGHIJK」がセレクタから出力される。このデータは、内部メモリ340に格納される。ライトデータ生成に必要なデータが格納されたら、内部メモリ340からデータをリードし、バスインタフェースB430を通って転送先デバイスに送られる。
この動作を繰り返してライトデータの生成を行うことで、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合でも、ライトデータを毎サイクル出力することが可能となり、高速にDMA転送を行うことができる。
なお、転送元アドレスと転送先アドレスとのバイトアライメントが等しい場合では、ローテータ470では入力データのローテートを行わずにそのまま出力し、セレクタ460は常にローテータ出力データ471からの入力データを選択する。バッファ450は使用されないので、クロック供給を制御することで消費電力を抑えることができる。
また、本実施形態のDMA転送制御装置では、発行サイズ調整が可能であるが、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合についてと、不連続領域のデータ転送を行う場合についてと共に、実施の形態1での説明と同様である。
また、本実施形態のDMA転送制御装置では、転送バス幅よりも小さいデータ幅でのリード転送が可能であるが、動作については実施の形態2での説明と同様である。
また、本実施形態のDMA転送制御装置では、不連続領域サイズを含むデータの効率的な転送方法が可能であるが、動作については実施の形態3での説明と同様である。
《実施の形態5》
図16は、本発明の実施の形態5におけるDMA転送制御装置500の概略構成を示すブロック図である。本実施形態のDMA転送制御装置500は、転送元デバイス又は転送元デバイスが接続されているバスが、バスインタフェースA520と接続されており、転送先デバイス又は転送先デバイスが接続されているバスが、バスインタフェースB530と接続されている。
DMA転送制御装置500は、上記のバスインタフェースA520、バスインタフェースA520から出力されるリードデータ521を入力とするローテータ570、ローテータ570から出力されるローテータ出力データ571を入力とする内部メモリ540、内部メモリ540から出力される内部メモリ出力データ541を入力とするバッファ550、ローテータ出力データ571とバッファ550から出力されるバッファ出力データ551とを入力とするセレクタ560、セレクタ560から出力されるセレクタ出力データ561を入力とするバスインタフェースB530を有している。
またDMA転送制御装置500は、設定レジスタ510を有しており、転送サイズ511、転送元開始アドレス512、転送先開始アドレス513、転送元連続領域サイズ514、転送先連続領域サイズ515、転送元データ幅516、転送先データ幅517が設定されている。
またDMA転送制御装置500は、リードサイズ決定回路580、ライトサイズ決定回路590を有している。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わないことは明白である。
次に、本実施形態のDMA転送制御装置について、データ転送の流れを説明する。転送元デバイスからバスインタフェースA520を介してリードされたリードデータ521は、バースト転送を行うために一旦内部メモリ540に入れられる。適切なサイズだけデータが内部メモリ540に蓄積されたら、内部メモリ540からデータリードを行う。内部メモリからの出力データは、ローテータ570に入力される。ローテータ570では、転送先開始アドレス513の設定値から転送元開始アドレス512の設定値を差し引いたアドレス差異に応じてローテーション段数を決定して入力データをローテートする。ローテータ出力データ571は、セレクタ560に入力されると同時に、バッファ550にも入力される。バッファ550では、データを一時的に蓄えたのち、セレクタ560に出力する。セレクタ560では、入力された2つのデータのいずれかを、前述のアドレス差異に応じてバイト毎に選択する。セレクタからの出力データは、バスインタフェースB530を通って転送先デバイスに送られる。
転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を、図17を用いて説明する。転送バス幅は8バイトである。また、転送元開始アドレスは下位3ビットが3、転送先開始アドレスは下位3ビットが5と、転送元転送先共にアドレスが転送バス幅でアライメントされておらず、先頭データの途中のバイトからデータが有効となる。
まずバスインタフェースA520より、先頭のリードデータ「xxxABCDE」が出力されると、ローテータ570に入力される。ローテータ570では、転送先開始アドレス513の設定値の下位3ビットから、転送元開始アドレス512の設定値の下位3ビットを差し引いた差異に応じてローテートを行う。この例では、差異が2なので、入力データを右方向に2だけローテートして、「DExxxABC」が出力される。ローテータ出力データ571は、内部メモリ540に格納される。次のサイクルにおいて、次のリードデータ「FGHIJKLM」が出力されると、前回と同様にローテータ570でローテートされ、「LMFGHIJK」が出力されて内部メモリ540に格納される。
ライトデータ生成に必要なデータが全て格納されたら、内部メモリ540からデータをリードして、バッファ550とセレクタ560に入力される。セレクタ560では、前述のアドレス差異に応じてバイト毎に選択する。この例では、8バイトのうち前の2バイトをバッファ出力データ551から選択し、残りは内部メモリ出力データ541から選択する。つまり0バイト目から1バイト目はバッファ出力データ551、2バイト目から7バイト目は内部メモリ出力データ541から選択されるので、先頭リードデータからは、先頭ライトデータ生成に必要な「xxxABC」のみが選択されて、「DE」は選択されない。セレクタ出力データ561は、バスインタフェースB530を通って転送先デバイスに送られる。バッファ550に入力された内部メモリ出力データ541は、一時的に格納される。
次のサイクルにおいて、内部メモリ540より次のリードデータ「FGHIJKLM」が出力されると、前回と同様にローテータ570でローテートされ、「LMFGHIJK」が出力される。このデータは、バッファ550とセレクタ560に入力される。セレクタ560では、前回と同様に2バイト目の箇所で選択されるバイトを分けるので、ローテータ出力データ371「LMFGHIJK」から「FGHIJK」、バッファ出力データ551から前サイクルのリードデータの一部「DE」が選択され、「DEFGHIJK」がセレクタから出力される。このデータは、バスインタフェースB530を通って転送先デバイスに送られる。
この動作を繰り返してライトデータの生成を行うことで、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合でも、ライトデータを毎サイクル出力することが可能となり、高速にDMA転送を行うことができる。
なお、転送元アドレスと転送先アドレスとのバイトアライメントが等しい場合では、ローテータ570では入力データのローテートを行わずにそのまま出力し、セレクタ560は常に内部メモリ出力データ541からの入力データを選択する。バッファ550は使用されないので、クロック供給を制御することで消費電力を抑えることができる。
また、本実施形態のDMA転送制御装置では、発行サイズ調整が可能であるが、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合についてと、不連続領域のデータ転送を行う場合についてと共に、実施の形態1での説明と同様である。
《実施の形態6》
図18は、本発明の実施の形態6におけるDMA転送制御装置600の概略構成を示すブロック図である。本実施形態のDMA転送制御装置600は、転送元デバイスが接続されているバスが、バスインタフェースA620と接続されており、転送先デバイスが接続されているバスが、バスインタフェースB630と接続されている。
DMA転送制御装置600は、上記のバスインタフェースA620、バスインタフェースA620から出力されるリードデータ621を入力とするバッファ650、リードデータ621とバッファ650から出力されるバッファ出力データ651とを入力とするセレクタ660、セレクタ660から出力されるセレクタ出力データ661を入力とする内部メモリ640、内部メモリ640から出力される内部メモリ出力データ641を入力とするローテータ670、ローテータ670から出力されるローテータ出力データ671を入力とするバスインタフェースB630を有している。
またDMA転送制御装置600は、設定レジスタ610を有しており、転送サイズ611、転送元開始アドレス612、転送先開始アドレス613、転送元連続領域サイズ614、転送先連続領域サイズ615、転送元データ幅616、転送先データ幅617が設定されている。
またDMA転送制御装置600は、リードサイズ決定回路680、ライトサイズ決定回路690を有している。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わないことは明白である。
次に、本実施形態のDMA転送制御装置について、データ転送の流れを説明する。転送元デバイスからバスインタフェースA620を介してリードされたリードデータ621は、セレクタ660に入力されると同時に、バッファ650にも入力される。バッファ650では、データを一時的に蓄えたのち、セレクタ660に出力する。セレクタ660では、入力された2つのデータのいずれかを、転送先開始アドレス613の設定値から転送元開始アドレス612の設定値を差し引いた差異に応じてバイト毎に選択する。セレクタからの出力データは、バースト転送のために一旦内部メモリ640に入れられる。適切なサイズだけデータが内部メモリ640に蓄積されたら、内部メモリ640からデータリードを行う。内部メモリからの出力データは、ローテータ670に入力される。ローテータ670では、前述のアドレス差異に応じてローテーション段数を決定し、これに応じて入力データをローテートする。出力データは、バスインタフェースB630を通って転送先デバイスに送られる。
転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を、図19を用いて説明する。転送バス幅は8バイトである。また、転送元開始アドレスは下位3ビットが3、転送先開始アドレスは下位3ビットが5と、転送元転送先共にアドレスが転送バス幅でアライメントされておらず、先頭データの途中のバイトからデータが有効となる。
まずバスインタフェースA620より、先頭のリードデータ「xxxABCDE」が送られると、バッファ650とセレクタ660に入力される。セレクタ660では、転送先開始アドレス613の設定値の下位3ビットから、転送元開始アドレス612の設定値の下位3ビットを差し引いた差異に応じてバイト毎に選択する。この例では、差異が2なので、8バイトのうち後ろの2バイトをバッファ出力データ651から選択し、残りはリードデータ621から選択する。つまり0バイト目から5バイト目はリードデータ621、6バイト目から7バイト目はバッファ出力データ651から選択されるので、先頭リードデータからは、先頭ライトデータ生成に必要な「xxxABC」のみが選択されて、「DE」は選択されない。セレクタ出力データ661は内部メモリ640に送られる。バッファ650に入力されたリードデータ621は、一時的に格納される。
次のサイクルにおいて、バスインタフェースA620より次のリードデータ「FGHIJKLM」が出力されると、前回と同様にバッファ650とセレクタ660に入力される。セレクタ660では、前回と同様に6バイト目の箇所で選択されるバイトを分けるので、内部メモリ出力データ641「FGHIJKLM」から「FGHIJK」、バッファ出力データ651から前サイクルのリードデータの一部「DE」が選択され、「FGHIJKDE」がセレクタから出力される。このセレクタ出力データ661は、内部メモリ640に送られる。
適切なサイズだけデータが内部メモリ640に蓄積されたら、内部メモリ640からデータリードを行う。内部メモリ出力データ641は、ローテータ670に入力され、前述のアドレス差異だけ右方向にローテートされる。つまり入力された先頭のリードデータ「xxxABCxx」は、右方向に2つローテートされ、「xxxxxABC」となって出力される。
次のサイクルでは、次の内部メモリ出力データ「FGHIJKDE」が、ローテータ670で前回と同様にローテートされ、「DEFGHIJK」となってローテータ出力データ671として出力され、内部メモリ640に送られる。
この動作を繰り返してライトデータを生成することで、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合でも、リードデータを毎サイクル取り込むことが可能となる。ライトデータも、転送元アドレスに応じて適切なデータが内部メモリに格納されているので、高速にDMA転送を行うことができる。
なお、転送元アドレスと転送先アドレスとのバイトアライメントが等しい場合では、セレクタ660は、常にリードデータ621からの入力データを選択され、ローテータ670では内部メモリ出力データ641のローテートを行わずにそのまま出力する。バッファ650は使用されないので、クロック供給を制御することで消費電力を抑えることができる。
また、本実施形態のDMA転送制御装置では、発行サイズ調整が可能であるが、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合についてと、不連続領域のデータ転送を行う場合についてと共に、実施の形態1での説明と同様である。
また、本実施形態のDMA転送制御装置では、転送バス幅よりも小さいデータ幅でのリード転送が可能であるが、動作については実施の形態2での説明と同様である。
《実施の形態7》
図20は、本発明の実施の形態7におけるDMA転送制御装置700の概略構成を示すブロック図である。本実施形態のDMA転送制御装置700は、転送元デバイス又は転送元デバイスが接続されているバスが、バスインタフェースA720と接続されており、転送先デバイス又は転送先デバイスが接続されているバスが、バスインタフェースB730と接続されている。
DMA転送制御装置700は、上記のバスインタフェースA720、バスインタフェースA720から出力されるリードデータ721を入力とするバッファB752、リードデータ721とバッファB752から出力されるバッファB出力データ753とを入力とするセレクタB762、セレクタBから出力されるセレクタ出力データ763を入力とする内部メモリ740、内部メモリ740から出力される内部メモリ出力データ741を入力とするバッファA750、内部メモリ出力データ741とバッファA出力データ751とを入力とするセレクタA760、セレクタA760から出力されるセレクタA出力データ761を入力とするローテータ770、ローテータ770から出力されるローテータ出力データ771を入力とするバスインタフェースB730を有している。つまり、図20のDMA転送制御装置700は、本発明の実施の形態1におけるDMA転送制御装置100(図1参照)の場合と同様のバッファA750及びセレクタA760に加えて、第2のバッファ及び第2のセレクタとしてバッファB752及びセレクタB762を備えている。
またDMA転送制御装置700は、設定レジスタ710を有しており、転送サイズ711、転送元開始アドレス712、転送先開始アドレス713、転送元連続領域サイズ714、転送先連続領域サイズ715、転送元データ幅716、転送先データ幅717が設定されている。
またDMA転送制御装置700は、リードサイズ決定回路780、ライトサイズ決定回路790を有している。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わない。
また、本実施形態のDMA転送制御装置では、転送元開始アドレスと転送先開始アドレスが異なる場合のデータ転送が可能である。動作については、セレクタB762は、常にリードデータ721からの入力データを選択する以外は、実施の形態1での説明と同様である。
また、本実施形態のDMA転送制御装置では、バッファB752とセレクタB762を用いることで、転送バス幅よりも小さいデータ幅でのリード転送が可能である。この場合のリード動作については、実施の形態2での説明と同様である。
なお、本発明の実施の形態3におけるDMA転送制御装置300(図11参照)にて内部メモリ340の前段又は次段に第2のバッファ及び第2のセレクタを追加することも可能である。同様に、本発明の実施の形態5におけるDMA転送制御装置500(図16参照)にてローテータ570の前段又は次段に第2のバッファ及び第2のセレクタを追加することも可能である。
以上、本発明の実施の形態1〜7を説明してきた。最後に、上記実施の形態1,2,7におけるセレクタ機能とローテータ機能を実現するための回路構成について説明する。
図21は、セレクタ・ローテータ回路800の概略構成を示すブロック図である。図21のセレクタ・ローテータ回路800は、バッファ入力データ801、バッファ出力データ802、ローテーション段数制御信号803を入力とし、セレクタ804を備えており、セレクタ・ローテータ出力データ805を出力とする。
セレクタ804に入力されるデータは、バッファ入力データ801とバッファ出力データ802をバイト毎にいずれかを選択・連結して生成されたデータであり、転送バス幅だけ存在する。これらのデータの中から、ローテーション段数制御信号803に応じて1つのデータを選択して、セレクタ・ローテータ出力データ805として出力する。例えば、ローテーション段数制御信号803が3であった場合、バッファ入力データ801の0バイト目から4バイト目と、バッファ出力データ802の5バイト目から7バイト目とを連結して生成された8バイトのデータが、セレクタ・ローテータ出力データ805として出力される。
図21のセレクタ・ローテータ回路は、上記の実施の形態1,2,7のように、セレクタの出力がローテータの入力と連結されている場合において、セレクタ機能とローテータ機能を実現するための回路として利用することができる。この回路を用いることで、必要な選択機能とローテート機能を小規模な回路で実現することができる。
本発明に係るDMA転送制御装置は、転送元アドレスと転送先アドレスとのバイトアライメントが異なるように設定された場合でも、わずかな回路の追加によって、転送速度を低下させずにDMA転送を行うことができるため、バイトアライメントの違いによる性能低下を気にすることなく、柔軟にアドレス等を設定することができる。DMA転送制御機能を含むバスアダプタにおいても、異なるバイトアライメントを有するような、異なるプロトコルのバス間でデータ転送を行う場合に有効となる。
本発明の実施の形態1におけるDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態1における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態1における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の発行サイズ調整を行わない例を説明するためのタイミングフロー図である。 本発明の実施の形態1における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の発行サイズ調整を行う例を説明するためのタイミングフロー図である。 本発明の実施の形態1における、リード側が不連続領域のデータ転送を行う場合の発行サイズ調整を行う例を説明するためのタイミングフロー図である。 本発明の実施の形態1における、ライト側が不連続領域のデータ転送を行う場合の発行サイズ調整を行う例を説明するためのタイミングフロー図である。 本発明の実施の形態1における、リード側とライト側が不連続領域のデータ転送を行う場合の発行サイズ調整を行う例を説明するためのタイミングフロー図である。 本発明の実施の形態2におけるDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態2における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態2における、転送バス幅よりも小さいデータ幅でリード転送する場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態3におけるDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態3における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態3における、リード側が不連続領域のデータ転送を行う場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態4におけるDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態4における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態5におけるDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態5における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態6におけるDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態6における、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を説明するためのタイミングフロー図である。 本発明の実施の形態7におけるDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態1,2,7におけるセレクタ機能とローテータ機能を実現するためのセレクタ・ローテータ回路の概略構成を示すブロック図である。 従来のデータ転送制御装置の概略構成を示すブロック図と、転送元アドレスと転送先アドレスとのバイトアライメントが異なる場合の転送動作の例を説明するためのタイミングフロー図である。
符号の説明
100,200,300,400,500,600,700 DMA転送制御装置
110,210,310,410,510,610,710 設定レジスタ
111,211,311,411,511,611,711 転送サイズ
112,212,312,412,512,612,712 転送元開始アドレス
113,213,313,413,513,613,713 転送先開始アドレス
114,214,314,414,514,614,714 転送元連続領域サイズ
115,215,315,415,515,615,715 転送先連続領域サイズ
116,216,316,416,516,616,716 転送元データ幅
117,217,317,417,517,617,717 転送先データ幅
120,220,320,420,520,620,720 バスインタフェースA
121,221,321,421,521,621,721 リードデータ
130,230,330,430,530,630,730 バスインタフェースB
140,240,340,440,540,640,740 内部メモリ
141,241,341,441,541,641,741 内部メモリ出力データ
150,250,350,450,550,650 バッファ
151,251,351,451,551,651 バッファ出力データ
160,260,360,460,560,660 セレクタ
161,261,361,461,561,661 セレクタ出力データ
170,270,370,470,570,670,770 ローテータ
171,271,371,471,571,671,771 ローテータ出力データ
180,280,380,480,580,680,780 リードサイズ決定回路
190,290,390,490,590,690,790 ライトサイズ決定回路
750 バッファA
751 バッファA出力データ
752 バッファB
753 バッファB出力データ
760 セレクタA
761 セレクタA出力データ
762 セレクタB
763 セレクタB出力データ
800 セレクタ・ローテータ回路
801 前段バッファ入力データ
802 前段バッファ出力データ
803 ローテーション段数制御信号
804 セレクタ
805 セレクタ・ローテータ出力データ

Claims (17)

  1. 転送元から転送先へのダイレクトメモリアクセス(DMA)転送を行うDMA転送制御装置であって、
    データを一時的に格納する内部メモリと、
    データを一時的に格納するバッファと、
    前記バッファへの入力データ又は前記バッファからの出力データのいずれかをバイト毎に選択するセレクタと、
    データをローテートするローテータとを備え、
    前記内部メモリと、前記バッファを有する前記セレクタと、前記ローテータとが任意の順序で接続されていることを特徴とするDMA転送制御装置。
  2. 請求項1記載のDMA転送制御装置において、
    前記内部メモリは転送元からのリードデータを入力とし、
    前記バッファは前記内部メモリからのデータを入力とし、
    前記セレクタは前記内部メモリからのデータと前記バッファからのデータとを入力とし、
    前記ローテータは前記セレクタで選択されたデータを入力とすることを特徴とするDMA転送制御装置。
  3. 請求項1記載のDMA転送制御装置において、
    前記バッファは転送元からのリードデータを入力とし、
    前記セレクタは前記転送元からのリードデータと前記バッファからのデータとを入力とし、
    前記ローテータは前記セレクタで選択されたデータを入力とし、
    前記内部メモリは前記ローテータからのデータを入力とすることを特徴とするDMA転送制御装置。
  4. 請求項1記載のDMA転送制御装置において、
    前記内部メモリは転送元からのリードデータを入力とし、
    前記ローテータは前記内部メモリからのデータを入力とし、
    前記バッファは前記ローテータからのデータを入力とし、
    前記セレクタは前記ローテータからのデータと前記バッファからのデータとを入力とすることを特徴とするDMA転送制御装置。
  5. 請求項1記載のDMA転送制御装置において、
    前記ローテータは転送元からのリードデータを入力とし、
    前記バッファは前記ローテータからのデータを入力とし、
    前記セレクタは前記ローテータからのデータと前記バッファからのデータとを入力とし、
    前記内部メモリは前記セレクタで選択されたデータを入力とすることを特徴とするDMA転送制御装置。
  6. 請求項1記載のDMA転送制御装置において、
    前記ローテータは転送元からのリードデータを入力とし、
    前記内部メモリは前記ローテータからのデータを入力とし、
    前記バッファは前記内部メモリからのデータを入力とし、
    前記セレクタは前記内部メモリからのデータと前記バッファからのデータとを入力とすることを特徴とするDMA転送制御装置。
  7. 請求項1記載のDMA転送制御装置において、
    前記バッファは転送元からのリードデータを入力とし、
    前記セレクタは前記転送元からのリードデータと前記バッファからのデータとを入力とし、
    前記内部メモリは前記セレクタで選択されたデータを入力とし、
    前記ローテータは前記内部メモリからのデータを入力とすることを特徴とするDMA転送制御装置。
  8. 請求項1記載のDMA転送制御装置において、
    前記ローテータは、転送元アドレスと転送先アドレスとの差異をローテーション段数決定に用いることを特徴とするDMA転送制御装置。
  9. 請求項1記載のDMA転送制御装置において、
    前記セレクタは、転送元アドレスと転送先アドレスとの差異を選択決定に用いることを特徴とするDMA転送制御装置。
  10. 請求項1記載のDMA転送制御装置において、
    転送元へのリードの転送サイズを決定するリードサイズ決定回路と、転送先へのライトの転送サイズを決定するライトサイズ決定回路との少なくとも一方を更に備えたことを特徴とするDMA転送制御装置。
  11. 請求項10記載のDMA転送制御装置において、
    前記リードサイズ決定回路及び前記ライトサイズ決定回路は、転送元アドレスと転送先アドレスとの少なくとも一方を、リードサイズ決定又はライトサイズ決定に利用することを特徴とするDMA転送制御装置。
  12. 請求項10記載のDMA転送制御装置において、
    前記リードサイズ決定回路及び前記ライトサイズ決定回路は、転送元からリードするアドレスからの連続領域サイズと、転送先へライトするアドレスからの連続領域サイズとを、リードサイズ決定又はライトサイズ決定に利用することを特徴とするDMA転送制御装置。
  13. 請求項4又は5に記載のDMA転送制御装置において、
    前記ローテータは、転送元からリードするアドレスからの連続領域サイズと、転送先へライトするアドレスからの連続領域サイズとを、ローテーション段数決定に用いることを特徴とするDMA転送制御装置。
  14. 請求項4又は5に記載のDMA転送制御装置において、
    前記セレクタは、転送元からリードするアドレスからの連続領域サイズと、転送先へライトするアドレスからの連続領域サイズとを選択決定に用いることを特徴とするDMA転送制御装置。
  15. 請求項2、4、6のうちいずれか1項に記載のDMA転送制御装置において、
    データを一時的に格納する第2のバッファと、
    前記第2のバッファへの入力データ又は前記第2のバッファからの出力データのいずれかをバイト毎に選択する第2のセレクタとを更に備え、
    前記第2のセレクタからの出力データを前記内部メモリ又は前記ローテータに入力することを特徴とするDMA転送制御装置。
  16. 請求項2又は3に記載のDMA転送制御装置において、
    前記セレクタの選択機能及び前記ローテータのローテート機能は、2つの入力データをバイト単位で任意に組み合わせて生成されるデータの中から1つを選択して出力とするセレクタ・ローテータ回路により実現されたことを特徴とするDMA転送制御装置。
  17. 請求項1記載のDMA転送制御装置において、
    転送元アドレスと転送先アドレスとのアライメントが等しい場合では、前記バッファは使用されないことを特徴とするDMA転送制御装置。
JP2006207744A 2006-07-31 2006-07-31 Dma転送制御装置 Pending JP2008033721A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006207744A JP2008033721A (ja) 2006-07-31 2006-07-31 Dma転送制御装置
US11/783,798 US7698475B2 (en) 2006-07-31 2007-04-12 DMA transfer control apparatus for performing direct memory access transfer from a transfer source to a transfer destination
CNA2007101020089A CN101118524A (zh) 2006-07-31 2007-04-26 直接存储器存取传输控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006207744A JP2008033721A (ja) 2006-07-31 2006-07-31 Dma転送制御装置

Publications (1)

Publication Number Publication Date
JP2008033721A true JP2008033721A (ja) 2008-02-14

Family

ID=38987721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006207744A Pending JP2008033721A (ja) 2006-07-31 2006-07-31 Dma転送制御装置

Country Status (3)

Country Link
US (1) US7698475B2 (ja)
JP (1) JP2008033721A (ja)
CN (1) CN101118524A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194828A (ja) * 2011-03-17 2012-10-11 Pfu Ltd Dma装置、情報処理装置、及びデータ転送方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205521A (ja) * 2008-02-28 2009-09-10 Fujitsu Ltd データ転送装置
US9128699B2 (en) * 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8205025B2 (en) * 2009-08-12 2012-06-19 Globalspec, Inc. Efficient buffered reading with a plug-in for input buffer size determination
GB2505446B (en) 2012-08-30 2014-08-13 Imagination Tech Ltd Memory address generation for digital signal processing
US10825526B1 (en) * 2019-06-24 2020-11-03 Sandisk Technologies Llc Non-volatile memory with reduced data cache buffer
CN111159075B (zh) * 2019-12-31 2021-11-05 成都海光微电子技术有限公司 数据传输方法和数据传输装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267989A (ja) * 1999-02-03 2000-09-29 Sun Microsyst Inc バス間でのデータのアラインメント
JP2000267987A (ja) * 1999-02-03 2000-09-29 Sun Microsyst Inc ダイレクト・メモリ・アクセス制御

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067321A (ja) * 2001-08-28 2003-03-07 Hitachi Ltd データ転送装置及び該データ転送装置内に具備されるアライナ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267989A (ja) * 1999-02-03 2000-09-29 Sun Microsyst Inc バス間でのデータのアラインメント
JP2000267987A (ja) * 1999-02-03 2000-09-29 Sun Microsyst Inc ダイレクト・メモリ・アクセス制御
US6363438B1 (en) * 1999-02-03 2002-03-26 Sun Microsystems, Inc. Method of controlling DMA command buffer for holding sequence of DMA commands with head and tail pointers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194828A (ja) * 2011-03-17 2012-10-11 Pfu Ltd Dma装置、情報処理装置、及びデータ転送方法

Also Published As

Publication number Publication date
CN101118524A (zh) 2008-02-06
US20080028108A1 (en) 2008-01-31
US7698475B2 (en) 2010-04-13

Similar Documents

Publication Publication Date Title
JP4550439B2 (ja) Ecc制御装置
KR101105489B1 (ko) Nand 플래시 메모리의 커맨드 기반 제어
TWI379302B (en) High speed interface for non-volatile memory
JP2008033721A (ja) Dma転送制御装置
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
JP5431003B2 (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路システム
US10282343B2 (en) Semiconductor device
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
US20050160202A1 (en) Direct memory access device
US6330631B1 (en) Data alignment between buses
JP2007034392A (ja) 情報処理装置及びデータ処理方法
US20080101374A1 (en) Packet fifo
JP2009009186A (ja) Dma転送制御装置及びdma転送方法
US7774583B1 (en) Processing bypass register file system and method
JP2005275538A (ja) ダイレクトメモリアクセス制御装置および方法
US6360307B1 (en) Circuit architecture and method of writing data to a memory
JP2002342262A (ja) ダイレクトメモリアクセス制御装置およびダイレクトメモリアクセス制御方法
JP6004463B2 (ja) 記憶装置及びその制御方法
US20070022224A1 (en) Memory data transfer method and system
JP2005293596A (ja) データ要求のアービトレーション
JP2007140858A (ja) メモリアクセス方法及びメモリアクセス装置
JP2018120448A (ja) 演算処理装置および情報処理システム
US6421280B1 (en) Method and circuit for loading data and reading data
JP3467188B2 (ja) 多重化バスの順序保証システム
JP2005209224A (ja) ダイレクトメモリアクセス装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120117