JP3544146B2 - Dma制御付fifo、並びに、それを用いたdma転送システム - Google Patents

Dma制御付fifo、並びに、それを用いたdma転送システム Download PDF

Info

Publication number
JP3544146B2
JP3544146B2 JP13439499A JP13439499A JP3544146B2 JP 3544146 B2 JP3544146 B2 JP 3544146B2 JP 13439499 A JP13439499 A JP 13439499A JP 13439499 A JP13439499 A JP 13439499A JP 3544146 B2 JP3544146 B2 JP 3544146B2
Authority
JP
Japan
Prior art keywords
fifo
dma
data
transfer
output
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
Application number
JP13439499A
Other languages
English (en)
Other versions
JP2000322375A (ja
Inventor
育男 嶋崎
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP13439499A priority Critical patent/JP3544146B2/ja
Publication of JP2000322375A publication Critical patent/JP2000322375A/ja
Application granted granted Critical
Publication of JP3544146B2 publication Critical patent/JP3544146B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、DMA(Direct Memory Access)によるデータ転送を行うシステムに関し、特に同一バス上のDMAC(DMA Controller)とデータバス幅が異なるデバイス間でDMA転送を行う場合に、FIFOを使用した転送方式に関するものである。
【0002】
【従来の技術】
上記のようなFIFO及びDMA転送方式においては、従来は、同一バス上のDMACとデータバス幅が異なるデバイス間でDMA転送を行う場合、2つのバッファメモリを使用して、各バッファメモリに順次データを書込み、その後、同時にそのバッファメモリからデータを読み出すことによって、データバス幅の変換を行っていたが、この方式では、バス幅が広いデータバスのDMA転送に要する時間が長くなってしまい、高速で効率の良いデータ転送を行うことが困難であった。また、異なる2つのバス間でDMA転送を行う時にFIFOを中継する方式があるが、このFIFOは、2つのバス上にそれぞれDMACを必要とするため、本発明のような同一バス上のデバイス間におけるDMA転送の場合には、使用することができない。
【0003】
そして、特開平7−152683号公報には、バス幅が異なるデータバス間に、複数のバッファメモリと、複数のバッファメモリの書込みを制御する書込み制御回路を備え、書込み制御回路によりバス幅が狭い方のデータを複数のバッファメモリに順次書込み、複数のバッファメモリに書込まれたデータが、バス幅の広いデータバスに同時に出力されることを特徴とするバッファメモリ回路が記載されている。
【0004】
また、特開平10−293742号公報には、互いに異なる第1のバスと第2のバスにおいて、FIFOのようなバス中継器を介して接続して、双方向にDMA転送を行うことを特徴とするデータ転送方法及び装置が記載されている。
【0005】
【発明が解決しようとする課題】
本発明の第1の目的は、上記従来技術において、DMA転送を行う場合、バス幅が狭い方のデータを複数のバッファメモリに順次書込んでいる間、バス幅が広いデータバスも、このDMA転送のためにバスを占有しておく必要があり、高速で効率の良いデータ転送が困難であることを鑑みて、DMA制御機能を内蔵したビット幅の変換可能な双方向FIFOを使用することにより、各バスのデータ転送速度の違いを吸収して、高速で効率の良いデータ転送を行うことである。
【0006】
また、第2の目的は、従来技術において、バス幅が狭い方のデータを複数のバッファメモリに順次書込んでいる間、バス幅が広いデータバスにデータを送信することができないことを鑑みて、前記DMA制御機能を内蔵したビット幅の変換可能な双方向FIFOの内部のFIFOブロックを複数で構成して、相互のデータ交換を可能にすることにより、送受信同時動作を行って、より高速で効率の良いデータ転送を行うことである。
【0007】
そして、第3の目的は、上記従来技術において、DMA転送を行う場合、DMACの設定が同じであっても転送を開始するアドレスによっては、転送の最初と最後に半端なバイト数を転送する場合があるため、アドレスの調整を行い、半端なバイト数の転送をなくす必要があったことを鑑みて、DMA制御機能を内蔵したビット幅の変換可能な双方向FIFOを使用し、そのFIFOの転送バイト数を、DMACの転送バースト長に対応してプログラマブルに設定することにより、任意のDMACの転送バースト長に対応することである。
【0008】
さらに、第4の目的は、上記従来技術において、DMA転送を行う場合、任意のバス幅に適したバッファメモリ回路を構成した時、他のバス幅でのデータ転送が困難であることを鑑みて、FIFOのビット幅をプログラマブルに設定可能にすることにより、接続するバス幅を指定する必要がなく、回路変更を行うことなく任意のデータバス間のデータ転送を行うことである。
【0009】
【課題を解決するための手段】
請求項1の発明は、同一バス上のビット幅の異なるデバイス間でDMAによるデータ転送を行うDMA制御付FIFOであって、入力側FIFOと出力側FIFOにそれぞれ複数の同容量のセルを持ち、各セルは接続変更手段を備え、該入力側と出力側の対応するセル同士を接続して、少なくとも入力側FIFOの各セルから出力側FIFOの対応する各セルへデータ転送を可能とする接続と、入力側FIFOと出力側FIFOそれぞれで異なるビット幅でデバイスとデータ転送を可能にする接続とを前記接続変更手段により少なくとも切り換え可能に構成するとともに、前記入力側FIFOと前記出力側FIFOのデータ転送、および前記接続変更手段の切り換えを必要に応じて制御する制御部を備え、前記制御部は、DMA転送要求により送られてきたデータを前記入力側FIFOで受信させ、出力側FIFOが空の場合、前記入力側FIFOにたまったデータを前記出力側FIFOに転送させ、該出力側FIFOからデータをDMA転送で出力させるDMA制御付FIFOに関する。
【0012】
請求項2の発明は、デバイス間でデータをDMA転送するDMAコントローラを有するDMA転送システムにおいて、前記DMAコントローラと前記デバイスを中継する請求項1に記載のDMA制御付FIFOを備え、同一バス上のビット幅の異なるデバイス間でDMA転送するようにしたDMA転送システムである。
【0013】
請求項3の発明は、請求項2に記載のDMA転送システムにおいて、請求項1に記載のDMA制御付FIFOの制御部は、前記DMA制御付FIFOにおける1回のDMA転送で転送されるデータの転送バイト数に基づいて、バースト長の変更をプログラマブルに行うようにしたものである。
【0014】
請求項4の発明は、請求項2に記載したDMA転送システムにおいて、請求項1に記載のDMA制御付FIFOの制御部は、入力側FIFOおよび出力側FIFOの少なくとも一方のデータ転送のビット幅に基づいた信号を出力し、請求項1に記載のDMA制御付FIFOの接続変更手段は、前記信号に基づいて、データ転送のビット幅をプログラマブルに切り換えるようにしたものである。
【0015】
【発明の実施の形態】
この発明の実施例を図面に基づいて説明する。
図1は、本発明のDMA転送システムの一実施例を示すブロック図である。
この図において、101は、このシステムを制御する中央演算処理装置(CPU)である。102は、CPU101と共に、このシステムを構築するシステムコントローラであり、通常、CPUバスインターフェース,メモリデバイスインターフェースを備えており、DMACを内蔵している場合もある。103は、データを記憶しておくメモリであり、通常、DRAMが使用される。
【0016】
104は、DMA転送を制御するDMACである。DMA転送は、このDMAC104がCPU101を介さずに、メモリ103とI/Oデバイス108間のデータ転送を行うことである。105は、32bit幅のデータバスであり、32bitのデータバス幅を持つシステムコントローラ102,メモリ103,DMAC104,DMA制御付FIFO107が接続されている。106は、システムコントローラ102が生成する各種制御信号であり、アドレスバス,RD信号,WR信号,CS信号等から構成されている。
【0017】
107は、内部に2つの32バイトのFIFOとDMA制御機能を含むFIFO制御部を持つDMA制御付FIFOであり、片方のFIFOが32bitデータバス105に、もう片方のFIFOが16bitデータバス109に接続されている。108は、16bitのデータバスと、DMAインターフェースを持つI/Oデバイスである。109は、16bit幅のデータバスであり、16bitのデータバス幅を持つI/Oデバイス108とDMA制御付FIFO107を接続している。
【0018】
110は、DMAC104が、DMA制御付FIFO107との間でDMA転送を行う時に出力する信号(ACK−A)であり、この信号に同期してデータの送受信を行う。111は、DMA制御付FIFO107がDMAC104に対してデータの送受信を要求する信号(REQ−A)である。112は、DMA制御付FIFO107がI/Oデバイス108との間でDMA転送を行う時に出力する信号(ACK−B)であり、この信号に同期してデータの送受信を行う。113は、I/Oデバイス108がDMA制御付FIFO107に対してデータの送受信を要求する信号(REQ−B)である。
【0019】
以上のシステム構成において、DMAC104とI/Oデバイス108間でDMAによるデータ転送を行う場合を想定し、以下にDMA制御付FIFO107を用いたDMA転送方式を詳細に説明する。
【0020】
図2は、図1におけるDMA制御付FIFO107の構成を示すブロック図である。
201は、FIFO−A203,FIFO−B204から構成されるFIFO部であり、FIFO−A203,FIFO−B204は、互いにデータのロードが可能である。FIFO−A203の入力は、32bitデータバス105に接続され、FIFO−A203の出力は、3ステートバッファ210を介して32bitデータバス105に接続されている。
【0021】
また、FIFO−B204の入力は、16bitデータバス109に接続され、FIFO−B204の出力は、3ステートバッファ211を介して16bitデータバス109に接続されている。202は、FIFOコントロールレジスタ205,転送バイト数レジスタ206,転送バイトカウンタA207、及び転送バイトカウンタB208から構成されるFIFO制御部である(詳細は図6を参照)。209は、32bitデータバス105と16bitデータバス109を中継しているバイパススイッチであり、FIFOコントロールレジスタ205にて制御されるBypsOe信号によって、32bitデータバスと16bitデータバスを直結することができる。
【0022】
また、3ステートバッファ210,211のイネーブルラインに、FIFOコントロールレジスタ205にて制御されるBypsOe信号とDir信号を入力することにより、データの転送方向の制御を行う。
【0023】
図3は、図2におけるFIFO部201の内部構成を示すブロック図である。FIFO−A203,FIFO−B204は、32個のラッチからなるメモリセルを8段接続した32バイトのFIFOである。各メモリセルは、セレクタ制御信号によって、データバス幅を8bit,16bit,32bitに変更することができ、またメモリセルの入力を、前段のメモリセルの出力か、受信FIFOからのデータのロードかを切り換えることができる(詳細は図4,図5を参照)。
【0024】
また、各FIFOは、データ転送方向によってラッチタイミングが異なっており、データ転送方向がA→Bの時(Dir=1)は、FIFO−A203は、信号ACK−Aの立ち上がりエッジ、FIFO−B204は、信号ACK−Bの立ち下がりエッジ、データ転送方向がB→Aの時(Dir=0)は、FIFO−A203は、信号ACK−Aの立ち下がりエッジ、FIFO−B204は、信号ACK−Bの立ち上がりエッジによってデータをラッチする。
【0025】
図4は、図3における各メモリセルの内部構造を示すブロック図である。
401は、32個のラッチで構成されたラッチ部であり、ACK−A,/ACK−A(ACK−Aの反転),ACK−B,/ACK−B(ACK−Bの反転)の各信号の立ち上がりエッジにて入力データをラッチする。402は、ラッチ401に入力するデータを選択する入力セレクタ部であり、セレクタ制御信号によって▲1▼〜▲4▼のどのデータをラッチに入力するかを切り換える。403は、ラッチ401から出力するデータの出力先を選択する出力セレクタ部であり、セレクタ制御信号によって▲1▼〜▲4▼のどの出力先にデータを出力するかを切り換える。
【0026】
図5は、セレクタ制御信号の設定による図4のメモリセル内部のラッチ構成パターンを示す図である。
FIFO−A203からFIFO−B204、またはFIFO−B204からFIFO−A203へデータをロードする場合(条件c501)は、入力セレクタ部402及び出力セレクタ部403は、▲1▼が選択され、ラッチ部401の入力には、一方のFIFOからのデータがセットされる。
【0027】
また、FIFOが、32bitデータバスに接続された時に、前段のメモリセルのデータをラッチする場合(条件c502)は、入力セレクタ部402及び出力セレクタ部403は、▲2▼が選択され、ラッチ部401の入力には、前段のメモリセルのデータ(bit(31:0))がセットされる。そして、FIFOが16bitデータバスに接続された時に、前段のメモリセルのデータをラッチする場合(条件c503)は、入力セレクタ部402及び出力セレクタ部403は、▲3▼が選択され、ラッチ部401の(bit(31:24),bit(23:16))の入力には、前段のメモリセルのデータ(bit(15:0))がセットされ、ラッチ部401の(bit(15:8),bit(7:0))の入力には、ラッチ部401の(bit(31:24),bit(23:16))の出力がセットされる。
【0028】
さらに、FIFOが、8bitデータバスに接続された時に、前段のメモリセルのデータをラッチする場合(条件c504)は、入力セレクタ部402及び出力セレクタ部403は、▲4▼が選択され、ラッチ部401の(bit(31:24))の入力には、前段のメモリセルのデータ(bit(7:0))がセットされ、ラッチ部401の(bit(23:16))の入力には、ラッチ部401の(bit(31:24))の出力がセットされ、ラッチ部401の(bit(15:8))の入力には、ラッチ部401の(bit(23:16))の出力がセットされ、ラッチ部401の(bit(7:0))の入力には、ラッチ部401の(bit(15:8))の出力がセットされる。
【0029】
図6は、図2のFIFO制御部の各ブロックの動作内容を説明する図である。FIFOコントロールレジスタ205は、このFIFOの動作モードを決定するレジスタである。転送バイト数レジスタ206は、1回のDMA転送で行うバースト長を設定するレジスタであり、設定された値をもとに、後述する転送バイトカウンタA207,転送バイトカウンタB208を制御して、バースト長の変更をプログラマブルに行う。転送バイトカウンタA207は、DMAC104が出力する信号ACK−Aをカウントするカウンタであり、転送バイトカウンタB208は、このFIFOが出力する信号ACK−Bをカウントするカウンタである。それぞれのカウンタ値を基にFIFO−A,FIFO−Bの状況を判断し、セレクタ制御信号,信号REQ−A、及び信号ACK−Bの出力タイミングを制御する。
【0030】
また、転送バイトカウンタA207,転送バイトカウンタB208の初期値はデータの転送方向によって異なり、FIFOが、データを受信する場合は、受信回数がセットされる。FIFOがデータを送信する場合は、初期値は0であり、FIFOが、一方のFIFOから送信データをロードした時に、送信回数がセットされる。受信回数,送信回数は、転送バイト数レジスタ206の値をもとに設定する。
【0031】
図7は、図1の32bitバス上のDMAC104から16bitバス上のI/Oデバイス108へのDMA転送におけるフローチャートである。
まず、I/Oデバイス108からDMA制御付FIFO107にDMA要求(信号REQ−Bを出力)を行う(ステップS701)。DMA制御付FIFO107は、信号REQ−Bを受信した後、DMAC104にDMA要求(信号REQ−Aを出力)を行う(ステップS702)。
【0032】
信号REQ−Aを受信したDMAC104は、FIFO−A203にDMA転送にてデータを送信する(ステップS703)。FIFO−A203は、1回のDMA転送バースト長分のデータを受信した後、FIFO−B204に受信データをロードする(ステップS704)。FIFO−B204は、データを受け取った後、I/Oデバイス108にDMA転送にてデータを送信する(ステップS705)。FIFO−B204が、I/Oデバイス108にデータを送信しているのと同時に、DMAC104が、FIFO−A203に次のデータを送信する(ステップS701〜703)。
【0033】
図8は、図1のDMAC104からI/Oデバイス108へのDMA転送における32bitデータバスから16bitデータバスへのDMA転送タイミング図である。
まず、初期設定として、転送バイト数レジスタ206を、DMAC104のバースト長の設定に合わせて設定する(この実施例では32バイトに設定する)。
【0034】
また、FIFOコントロールレジスタ205を、FIFOモード切換ビット=0(コンフィグレーションモード)、Dir=1(A→B)、BypsOe=0(バイパスしない)、FIFO−Aビット幅変換=2(32bit幅)、FIFO−Bビット幅変換=1(16bit幅)に設定した後、FIFOモード切換ビットのみ1(動作モード)に設定する。この初期設定にて、このDMA制御付FIFO107は、Ready状態となり、転送バイトカウンタA207、転送バイトカウンタB208のカウント値が、それぞれ8,0にセットされ、I/Oデバイス108から信号REQ−Bのアサートを待つ。
【0035】
タイミングt801で、信号REQ−Bがアサートされ、その時の転送バイトカウンタA207の値が8(FIFO−Aが空の状態)であるので、該FIFOは、DMAC104に対して信号REQ−Aをアサートする(タイミングt802)。信号REQ−Aを受けたDMAC104は、信号ACK−Aに同期して、32bitデータバスにデータを出力する。FIFO−A203は、信号ACK−Aの立ち上がりエッジで、データをラッチし、転送バイトカウンタA207は、−1ディクリメントされ7になる(タイミングt803)。
【0036】
DMAC104は、バースト長が32バイトあるので、信号ACK−Aを合計8回出力する。FIFO−A203は、信号ACK−Aを8回受信するとデータフルの状態になり、転送バイトカウンタA207は0になる(タイミングt804)。転送バイトカウンタA207の値が0になると、その時の転送バイトカウンタB208の値を確認し、1か0であれば、FIFO−B204が空であるということなので、FIFO−B204の各ラッチの入力は、FIFO−A側に切り換えられ、転送バイトカウンタB208の値を16に設定する(タイミングt805)。転送バイトカウンタB208の値が16に設定されたら、信号ACK−Bの立ち下がりエッジで、FIFO−B204は、FIFO−A203のデータをラッチし、16bitデータバスにデータを出力する(タイミングt806)。
【0037】
次の信号ACK−Bの立ち上がりエッジで、転送バイトカウンタA207の値を8にリセットし、FIFO−B204の各ラッチの入力をFIFO−B204の前段側に切り換える(タイミングt807)。転送バイトカウンタA207の値が8(FIFO−Aが空の状態)にリセットされたので、該FIFOは、その時の信号REQ−Bの状態を確認して、もし、まだアサートされていれば、DMAC104に対して信号REQ−Aをアサートする(タイミングt808)。再度、信号REQ−Aを受けたDMAC104は、信号ACK−Aに同期して次のデータを出力する(タイミングt809)。
【0038】
FIFO−A203は、信号ACK−Aを8回受信して転送バイトカウンタA207の値が0(データフルの状態)となるが、この時、転送バイトカウンタB208の値が0ではない(まだFIFO−Bにデータが残っている)ため、FIFO−B204の各ラッチの入力はFIFO−A側に切り換えられない(タイミングt810)。転送バイトカウンタB208の値が1になった時、FIFO−B204の各ラッチの入力は、FIFO−A側に切り換えられ、転送バイトカウンタB208の値を16に設定する(タイミングt811)。転送バイトカウンタB208の値が16に設定されたら、信号ACK−Bの立ち下がりエッジで、FIFO−B204は、FIFO−A203のデータをラッチし、16bitデータバスにデータを出力する(タイミングt812)。
【0039】
次の信号ACK−Bの立ち上がりエッジで、転送バイトカウンタA207の値を8にリセットし、FIFO−B204の各ラッチの入力をFIFO−B204の前段側に切り換える(タイミングt813)。もし、タイミングt811で、転送バイトカウンタA207が0でない(FIFO−A203がフルではない)場合、転送バイトカウンタB208の値は0(FIFO−B204が空の状態)になり、転送バイトカウンタA207が0になるのを待つことになる。タイミングt814からは、以上の繰り返しである。
【0040】
図9は、図1の16bitバス上のI/Oデバイス108から32bitバス上のDMAC104へのDMA転送におけるフローチャートである。
まず、I/Oデバイス108から、DMA制御付FIFO107にDMA要求(信号REQ−Bを出力)を行う(ステップS901)。信号REQ−Bを受信したDMA制御付FIFO107は、I/Oデバイス108からFIFO−B204にDMA転送にてデータを受信する(ステップS902)。FIFO−B204は、1回のDMA転送バースト長分のデータを受信した後、FIFO−A203に受信データをロードする(ステップS903)。FIFO−A203がデータを受け取った後、DMA制御付FIFO107からDMAC104にDMA要求(信号REQ−Aを出力)を行う(ステップS904)。信号REQ−Aを受信したDMAC104は、FIFO−A203からDMA転送にてデータを受信する(ステップS905)。FIFO−A203がDMAC104にデータを送信しているのと同時に、I/Oデバイス108は、FIFO−B204に、次のデータを送信する(ステップS901〜902)。
【0041】
図10は、図1のI/Oデバイス108からDMAC104へのDMA転送における16bitデータバスから32bitデータバスへのDMA転送タイミング図である。
まず、初期設定として、転送バイト数レジスタ206をDMACのバースト長の設定に合わせて設定する(この実施例では32バイトに設定)。また、FIFOコントロールレジスタ205を、FIFOモード切換ビット=0(コンフィグレーションモード),Dir=0(B→A),BypsOe=0(バイパスしない),FIFO−Aビット幅変換=2(32bit幅),FIFO−Bビット幅変換=1(16bit幅)に設定した後、FIFOモード切換ビットのみ1(動作モード)に設定する。
【0042】
この初期設定にて、このDMA制御付FIFO107は、Ready状態となり、転送バイトカウンタA207,転送バイトカウンタB208の初期値が、それぞれ0,16にセットされ、I/Oデバイス108から信号REQ−Bのアサートを待つ。タイミングt1001で、信号REQ−Bがアサートされ、その時の転送バイトカウンタB208の値が16(FIFO−Bが空の状態)であるので、該FIFOは、I/Oデバイス108に対して信号ACK−Bを出力し、信号ACK−Bを受けたI/Oデバイス108は、信号ACK−Bに同期して、16bitデータバスにデータを出力する。
【0043】
FIFO−B204は、信号ACK−Bの立ち上がりエッジでデータをラッチし、転送バイトカウンタB208は、−1ディクリメントされ15になる(タイミングt1002)。DMAC104のバースト長が32バイトであるので、該FIFOは、FIFO−B204がフルになるまで、信号ACK−Bを16回出力し、データを受信する。信号ACK−Bを16回出力すると、転送バイトカウンタB208は0になる(タイミングt1003)。転送バイトカウンタB208が0になると、その時の転送バイトカウンタA207の値を確認し、0であればFIFO−A203が空であるということなので、FIFO−A203の各ラッチの入力は、FIFO−B側に切り換えられ、転送バイトカウンタA207を8に設定する(タイミングt1004)。転送バイトカウンタA207の値が8に設定されたら、該FIFOは、DMAC104に対して信号REQ−Aをアサートする(タイミングt1005)。
【0044】
信号REQ−Aを受けたDMAC104は、信号ACK−Aを出力するので、信号ACK−Aの立ち下がりエッジで、FIFO−A203は、FIFO−B204のデータをラッチし、32bitデータバスにデータを出力する(タイミングt1006)。次の信号ACK−Aの立ち上がりエッジで、転送バイトカウンタB208を16にリセットし、FIFO−A203の各ラッチの入力をFIFO−Aの前段側に切り換える(タイミングt1007)。転送バイトカウンタB208が16(FIFO−B204が空の状態)にリセットされたので、該FIFOは、その時の信号REQ−Bの状態を確認して、もし、まだアサートされていれば、I/Oデバイス108に対して信号ACK−Bを出力して、次のデータを受信する(タイミングt1008)。
【0045】
FIFO−A203は、信号ACK−Aを8回出力して、転送バイトカウンタA207が0(データ空の状態)となるが、この時、転送バイトカウンタB208が0ではない(まだFIFO−B204がデータ受信中)ため、すぐにはFIFO−A203の各ラッチの入力をFIFO−B側に切り換えず、転送バイトカウンタB208が0になるのを待つことになる(タイミングt1009)。以降は、タイミングt1003からの繰り返しである。
【0046】
【発明の効果】
本発明によれば、ビット幅の異なるデバイス間において、このFIFOを中継してDMA転送することにより、それぞれのデバイスの持つビット幅でデータ転送を行うため、狭い方のビット幅に合わせたデータ転送をする必要がなくなり、高速で効率の良いデータ転送が可能となる。
【0047】
そして、内部のFIFOブロックを複数で構成することにより、片方のFIFOがデータを送信している時に、もう片方のFIFOがデータを受信することが可能となるため、より高速な効率の良いデータ転送が可能となる。
【0048】
さらに、FIFOの転送バイト数をプログラマブルに設定可能にすることにより、DMACの任意の転送バースト長の設定に対してDMA転送が可能となる。
【0049】
また、FIFOのビット幅をプログラマブルに設定可能にすることにより、接続するデバイスのビット幅を指定する必要がなく、回路変更を行うことなく任意のデバイス間のDMA転送が可能となる。
【図面の簡単な説明】
【図1】本発明のDMA転送システムの一実施例を示したブロック図である。
【図2】図1におけるDMA制御付FIFOのブロック図である。
【図3】図2におけるDMA制御付FIFOに内蔵されているFIFO部のブロック図である。
【図4】図3におけるFIFO部を構成するメモリセル部の内部構造を示すブロック図である。
【図5】図4におけるFIFO部を構成するメモリセル内部のラッチ構成パターンを示す図である。
【図6】図2におけるDMA制御付FIFOに内蔵されているFIFO制御部を構成する各ブロックの動作内容を示す図である。
【図7】本発明における32bitデータバスから16bitデータバスへのDMA転送処理のフローチャート図である。
【図8】本発明における32bitデータバスから16bitデータバスへのDMA転送を行う場合のタイミング図である。
【図9】本発明における16bitデータバスから32bitデータバスへのDMA転送処理のフローチャート図である。
【図10】本発明における16bitデータバスから32bitデータバスへのDMA転送を行う場合のタイミング図である。
【符号の説明】
101…中央演算処理装置(CPU)、102…システムコントローラ、103…メモリ、104…DMAC、105…32bit幅データバス、106…各種制御信号、107…DMA制御付FIFO、108…I/Oデバイス、109…16bit幅データバス、201…FIFO、202…FIFO制御部、203…FIFO−A、204…FIFO−B、205…FIFOコントロールレジスタ、206…転送バイト数レジスタ、207…転送バイトカウンタA、208…転送バイトカウンタB、209…バイパススイッチ、210,211…3ステートバッファ、401…ラッチ部、402…入力セレクタ部、403…出力セレクタ部。

Claims (4)

  1. 同一バス上のビット幅の異なるデバイス間でDMAによるデータ転送を行うDMA制御付FIFOであって
    入力側FIFOと出力側FIFOにそれぞれ複数の同容量のセルを持ち、各セルは接続変更手段を備え、
    該入力側と出力側の対応するセル同士を接続して、少なくとも入力側FIFOの各セルから出力側FIFOの対応する各セルへデータ転送を可能とする接続と、
    入力側FIFOと出力側FIFOそれぞれで異なるビット幅でデバイスとデータ転送を可能にする接続とを前記接続変更手段により少なくとも切り換え可能に構成するとともに、
    前記入力側FIFOと前記出力側FIFOのデータ転送、および前記接続変更手段の切り換えを必要に応じて制御する制御部を備え、
    前記制御部は、DMA転送要求により送られてきたデータを前記入力側FIFOで受信させ、出力側FIFOが空の場合、前記入力側FIFOにたまったデータを前記出力側FIFOに転送させ、該出力側FIFOからデータをDMA転送で出力させることを特徴とするDMA制御付FIFO。
  2. デバイス間でデータをDMA転送するDMAコントローラを有するDMA転送システムにおいて、前記DMAコントローラと前記デバイスを中継する請求項1に記載のDMA制御付FIFOを備え、同一バス上のビット幅の異なるデバイス間でDMA転送するようにしたことを特徴とするDMA転送システム。
  3. 請求項2に記載のDMA転送システムにおいて、請求項1に記載のDMA制御付FIFOの制御部は、前記DMA制御付FIFOにおける1回のDMA転送で転送されるデータの転送バイト数に基づいて、バースト長の変更をプログラマブルに行うようにしたことを特徴とするDMA転送システム。
  4. 請求項2に記載したDMA転送システムにおいて、請求項1に記載のDMA制御付FIFOの制御部は、入力側FIFOおよび出力側FIFOの少なくとも一方のデータ転送のビット幅に基づいた信号を出力し、請求項1に記載のDMA制御付FIFOの接続変更手段は、前記信号に基づいて、データ転送のビット幅をプログラマブルに切り換えるようにしたことを特徴とするDMA転送システム。
JP13439499A 1999-05-14 1999-05-14 Dma制御付fifo、並びに、それを用いたdma転送システム Expired - Fee Related JP3544146B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13439499A JP3544146B2 (ja) 1999-05-14 1999-05-14 Dma制御付fifo、並びに、それを用いたdma転送システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13439499A JP3544146B2 (ja) 1999-05-14 1999-05-14 Dma制御付fifo、並びに、それを用いたdma転送システム

Publications (2)

Publication Number Publication Date
JP2000322375A JP2000322375A (ja) 2000-11-24
JP3544146B2 true JP3544146B2 (ja) 2004-07-21

Family

ID=15127384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13439499A Expired - Fee Related JP3544146B2 (ja) 1999-05-14 1999-05-14 Dma制御付fifo、並びに、それを用いたdma転送システム

Country Status (1)

Country Link
JP (1) JP3544146B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3759054B2 (ja) 2002-03-01 2006-03-22 Necエレクトロニクス株式会社 バスシステム
JP2004227501A (ja) 2003-01-27 2004-08-12 Yamaha Corp データ転送制御装置および方法
US8407658B2 (en) 2007-02-01 2013-03-26 International Business Machines Corporation Methods, systems, and computer program products for using direct memory access to initialize a programmable logic device

Also Published As

Publication number Publication date
JP2000322375A (ja) 2000-11-24

Similar Documents

Publication Publication Date Title
US6693640B2 (en) Image processing apparatus and image processing system using the apparatus
JPH02227766A (ja) デジタル・コンピユータのデータ転送装置
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
US5721841A (en) Adapter having data aligner including register being loaded to or from memory with an offset in accordance with predetermined network fragmentation parameters
US7484028B2 (en) Burst-capable bus bridges for coupling devices to interface buses
JP3544146B2 (ja) Dma制御付fifo、並びに、それを用いたdma転送システム
JPH04230558A (ja) ダイレクト・メモリ・アクセス装置
KR100348545B1 (ko) 통신 dma 장치
JP2002149591A (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
US5845072A (en) Method and apparatus for parallel and pipelining transference of data between integrated circuits using a common macro interface
KR100642158B1 (ko) 슬레이브 그룹 인터페이스 장치와, 슬레이브 그룹 인터페이스 장치를 통해 버스와 주변 장치를 인터페이스하는 방법 및 시스템
JPH10307787A (ja) バッファメモリ装置
US7519848B2 (en) Data transfer apparatus
JP3659345B2 (ja) バス・システム及び信号伝送方法
JP3269530B2 (ja) シリアル通信システムおよびシリアル通信方法
JPH07271654A (ja) コントローラ
JP3586603B2 (ja) データ転送装置及びデータ転送方法
JPH027212B2 (ja)
JP2000285087A (ja) ノード間データ通信方法
JPH07250102A (ja) データ伝送回路
JP3077992B2 (ja) データ伝送装置
JPS583048A (ja) 共通メモリの制御方式
JPH0635841A (ja) バス制御装置
JPH09259071A (ja) 通信制御装置
JP2009098778A (ja) ハブ装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040209

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: 20040330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040331

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: 20080416

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees