JPH064458A - Dma制御装置 - Google Patents
Dma制御装置Info
- Publication number
- JPH064458A JPH064458A JP4184539A JP18453992A JPH064458A JP H064458 A JPH064458 A JP H064458A JP 4184539 A JP4184539 A JP 4184539A JP 18453992 A JP18453992 A JP 18453992A JP H064458 A JPH064458 A JP H064458A
- Authority
- JP
- Japan
- Prior art keywords
- address
- value
- ring buffer
- data
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
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
(57)【要約】
【目的】 リングバッファに書き込まれたデータを読み
出す場合において、アドレス発生回路からのアドレス値
が、リングバッファの最終アドレスを跳び越えて出力さ
れた時、常に、読出位置が、読出対象データ先頭アドレ
スに戻るようにすること。 【構成】 アドレス発生回路1は、リングバッファに対
して、アドレス初期値から順次増加し、且つ、一定周期
毎に、所定数のアドレスを跳ばしてアドレス値を発生す
る。一方、補正アドレス発生回路10は、上記アドレス
値から、リングバッファの総アドレス数を引き算したア
ドレス値を発生する。上記アドレス発生回路1からのア
ドレス値が、上記リングバッファの最終アドレスを跳び
越えて出力された時、アドレス発生回路1から補正アド
レス発生回路10に切り換えて、アドレス値を出力す
る。
出す場合において、アドレス発生回路からのアドレス値
が、リングバッファの最終アドレスを跳び越えて出力さ
れた時、常に、読出位置が、読出対象データ先頭アドレ
スに戻るようにすること。 【構成】 アドレス発生回路1は、リングバッファに対
して、アドレス初期値から順次増加し、且つ、一定周期
毎に、所定数のアドレスを跳ばしてアドレス値を発生す
る。一方、補正アドレス発生回路10は、上記アドレス
値から、リングバッファの総アドレス数を引き算したア
ドレス値を発生する。上記アドレス発生回路1からのア
ドレス値が、上記リングバッファの最終アドレスを跳び
越えて出力された時、アドレス発生回路1から補正アド
レス発生回路10に切り換えて、アドレス値を出力す
る。
Description
【0001】
【産業上の利用分野】本発明は、メモリと周辺装置との
間のデータ転送を、DMA(Direct MemoryAccess)方
式で行うDMA制御装置に関するものである。
間のデータ転送を、DMA(Direct MemoryAccess)方
式で行うDMA制御装置に関するものである。
【0002】
【従来の技術】メモリと周辺装置との間のデータ転送
を、CPUを介さずに、DMA方式で行うことは、例え
ば、画像処理装置においてよく行われている。
を、CPUを介さずに、DMA方式で行うことは、例え
ば、画像処理装置においてよく行われている。
【0003】図4は、画像処理装置の概要を示すブロッ
ク図である。図4おいて、21は画像メモリ、22はシ
ステムバス、23はイメージバス、24はバス接続器、
30は画像入力部、31,41はDMAC(DMA制御
装置)、40は画像出力部、50はCPUである。画像
入力部30から画像データが入力され、DMAC31に
よって、画像メモリ21にデータ転送される。画像メモ
リ21のデータを出力する際には、DMAC41によっ
て、画像メモリ21から画像出力部40にデータ転送さ
れ、画像記録部(図示せず)に出力される。
ク図である。図4おいて、21は画像メモリ、22はシ
ステムバス、23はイメージバス、24はバス接続器、
30は画像入力部、31,41はDMAC(DMA制御
装置)、40は画像出力部、50はCPUである。画像
入力部30から画像データが入力され、DMAC31に
よって、画像メモリ21にデータ転送される。画像メモ
リ21のデータを出力する際には、DMAC41によっ
て、画像メモリ21から画像出力部40にデータ転送さ
れ、画像記録部(図示せず)に出力される。
【0004】図5は、画像メモリへの画像データの入出
力動作の一例を説明するための図である。図5の横方向
の長さは、時間を示しており、(イ)は画像入力、
(ロ)は画像出力に費やされる時間である。,,・
・・の数字は、それぞれ、入出力する画像データを区別
するために付した番号である。
力動作の一例を説明するための図である。図5の横方向
の長さは、時間を示しており、(イ)は画像入力、
(ロ)は画像出力に費やされる時間である。,,・
・・の数字は、それぞれ、入出力する画像データを区別
するために付した番号である。
【0005】画像データの入出力動作は、入力と出力と
を同時並行的に行うようにしているが、一般に、同じ画
像の場合、画像出力の方が、画像入力より所要時間が短
い。そのため、この例においては、画像入力に画像出力
が追いついてしまわないように、画像入力が1ページ分
終了してから、画像出力を開始し、それと同時に、次の
ページの画像入力を開始するようにしている。すなわ
ち、まず、画像メモリ21に、1ページ目の画像データ
を入力する。それが終了すると、その画像データを
画像出力部40に転送しながら、2ページ目の画像デー
タの入力を行う。以下、同様に画像データ,の入
出力を行う。
を同時並行的に行うようにしているが、一般に、同じ画
像の場合、画像出力の方が、画像入力より所要時間が短
い。そのため、この例においては、画像入力に画像出力
が追いついてしまわないように、画像入力が1ページ分
終了してから、画像出力を開始し、それと同時に、次の
ページの画像入力を開始するようにしている。すなわ
ち、まず、画像メモリ21に、1ページ目の画像データ
を入力する。それが終了すると、その画像データを
画像出力部40に転送しながら、2ページ目の画像デー
タの入力を行う。以下、同様に画像データ,の入
出力を行う。
【0006】一方、従来から、DMAデータ転送に用い
られるバッファメモリとして、リングバッファが使用さ
れている。図6は、リングバッファの動作を説明するた
めの図である。図6において、AS は、リングバッファ
の先頭アドレスを示し、AE は、リングバッファの最終
アドレスを示し、A1 ,A2 及びA3 は、リングバッフ
ァに書き込まれている画像データの各ページの境界のア
ドレスを示している。また、矢印WRは、リングバッフ
ァに現在データを書き込んでいる位置を示しており、矢
印RDは、リングバッファから現在読み出している位置
を示している。リングバッファのアドレス値は、図6の
下方に行くほど大きくなり、上記矢印WR,RDで示さ
れる位置は、時間の経過と共に下方に移動していく。
られるバッファメモリとして、リングバッファが使用さ
れている。図6は、リングバッファの動作を説明するた
めの図である。図6において、AS は、リングバッファ
の先頭アドレスを示し、AE は、リングバッファの最終
アドレスを示し、A1 ,A2 及びA3 は、リングバッフ
ァに書き込まれている画像データの各ページの境界のア
ドレスを示している。また、矢印WRは、リングバッフ
ァに現在データを書き込んでいる位置を示しており、矢
印RDは、リングバッファから現在読み出している位置
を示している。リングバッファのアドレス値は、図6の
下方に行くほど大きくなり、上記矢印WR,RDで示さ
れる位置は、時間の経過と共に下方に移動していく。
【0007】図6の上方から、順次データを書き込んで
いき、(n−1)枚目のデータの次にn枚目のデータを
書き込んでいる途中で、リングバッファの最終アドレス
AEになったとする。そのような場合、アドレスをリン
グバッファの先頭アドレスAS に戻して、そこから続き
のデータを書き込んでいく。図6においては、現在n枚
目のページの書込が終了して、n+1枚目の書込を矢印
WRの位置で行っているところである。
いき、(n−1)枚目のデータの次にn枚目のデータを
書き込んでいる途中で、リングバッファの最終アドレス
AEになったとする。そのような場合、アドレスをリン
グバッファの先頭アドレスAS に戻して、そこから続き
のデータを書き込んでいく。図6においては、現在n枚
目のページの書込が終了して、n+1枚目の書込を矢印
WRの位置で行っているところである。
【0008】なお、このように、最終アドレスAE にな
ると、また先頭アドレスAS に戻って書込を続けるよう
にすると、以前に先頭アドレスAS 付近に書き込まれて
いたデータは、新しいデータを書き込む際に消されるこ
とになる。したがって、書き込みが終わったデータは、
書込位置が、またそのアドレスに戻ってきて、そこに新
しいデータが書き込まれる前に読み出しを行う必要があ
る。そのため、図6の例では、矢印WRで示すデータ書
込位置が移動するのを後から追うような、矢印RDで示
す位置でデータの読み出しを行うようにしている。
ると、また先頭アドレスAS に戻って書込を続けるよう
にすると、以前に先頭アドレスAS 付近に書き込まれて
いたデータは、新しいデータを書き込む際に消されるこ
とになる。したがって、書き込みが終わったデータは、
書込位置が、またそのアドレスに戻ってきて、そこに新
しいデータが書き込まれる前に読み出しを行う必要があ
る。そのため、図6の例では、矢印WRで示すデータ書
込位置が移動するのを後から追うような、矢印RDで示
す位置でデータの読み出しを行うようにしている。
【0009】このようにすれば、データの書き込み及び
読び出しが支障なく行えると共に、使用するメモリ領域
は、リング構造を採用しない場合に比して小さい領域で
済ませることができる。
読び出しが支障なく行えると共に、使用するメモリ領域
は、リング構造を採用しない場合に比して小さい領域で
済ませることができる。
【0010】
(問題点)しかしながら、前記した従来の技術には、リ
ングバッファに書き込まれたデータを、とびとびに読み
出す際に、読み出しアドレスがリングバッファの先頭ア
ドレスに戻った時、データの読み出し位置にずれが生じ
てしまい、正しいデータを読み出せなくなるという問題
点があった。
ングバッファに書き込まれたデータを、とびとびに読み
出す際に、読み出しアドレスがリングバッファの先頭ア
ドレスに戻った時、データの読み出し位置にずれが生じ
てしまい、正しいデータを読み出せなくなるという問題
点があった。
【0011】(問題点の説明)図7は、画像メモリ中の
画像データの一部分を読み出す場合を説明するための図
である。今、画像メモリには、Aのデータが書き込まれ
ており、その内の、Bの部分のデータを読み出すものと
する。Bの部分は、1行当たりLワードあり、Cの部分
は、1行中の残りのMワードで、不要なデータである。
画像データの一部分を読み出す場合を説明するための図
である。今、画像メモリには、Aのデータが書き込まれ
ており、その内の、Bの部分のデータを読み出すものと
する。Bの部分は、1行当たりLワードあり、Cの部分
は、1行中の残りのMワードで、不要なデータである。
【0012】Bの部分のデータを読み出す場合、Lワー
ド読み出したら、Mワード分読み跳ばして次の行に移
り、またLワードを読み出して、Mワード読み跳ばすと
いうように、メモリ中の一部を読み跳ばしてアクセスす
る必要が出てくる。そのメモリが、リングバッファであ
る場合の動作は、次のようになる。
ド読み出したら、Mワード分読み跳ばして次の行に移
り、またLワードを読み出して、Mワード読み跳ばすと
いうように、メモリ中の一部を読み跳ばしてアクセスす
る必要が出てくる。そのメモリが、リングバッファであ
る場合の動作は、次のようになる。
【0013】図8は、画像メモリ中の画像データの一部
分を読み出す場合のリングバッファの動作を説明するた
めの図である。符号は、図6のものに対応し、AT は、
読出対象データ先頭アドレスである。L1 ,L2 ,L3
は、図7におけるBの部分の1行分のデータを示し、M
2 ,M3 は、図7におけるCの部分の1行分のデータを
示している。M1 ,M4 は、図7におけるCの部分の1
行分のデータが、リングバッファの最後部と、先頭部に
分割されて連続的に書き込まれたそれぞれのデータを示
している。
分を読み出す場合のリングバッファの動作を説明するた
めの図である。符号は、図6のものに対応し、AT は、
読出対象データ先頭アドレスである。L1 ,L2 ,L3
は、図7におけるBの部分の1行分のデータを示し、M
2 ,M3 は、図7におけるCの部分の1行分のデータを
示している。M1 ,M4 は、図7におけるCの部分の1
行分のデータが、リングバッファの最後部と、先頭部に
分割されて連続的に書き込まれたそれぞれのデータを示
している。
【0014】リングバッファには、例えば、データL1
のLワードと、データM2 のMワードとを1行分とし
て、各行のデータが順次書き込まれている。それを読み
出す際には、データL1 のLワードを読み出したら、次
のデータM2 のMワードを読み跳ばし、その次のデータ
L2 のLワードを読み出すというような動作を、繰り返
し行う。
のLワードと、データM2 のMワードとを1行分とし
て、各行のデータが順次書き込まれている。それを読み
出す際には、データL1 のLワードを読み出したら、次
のデータM2 のMワードを読み跳ばし、その次のデータ
L2 のLワードを読み出すというような動作を、繰り返
し行う。
【0015】問題は、読み跳ばすべきMワードの途中
で、リングバッファの最終アドレスAE となった場合で
ある。例えば、図8のデータM4 , M1 のように、読み
出し対象データのLワードが書き込まれた後、読み跳ば
すべきデータが(M−α)ワードだけ書き込まれた時点
で、最終アドレスAE になってしまった場合、読み跳ば
すべきデータの残りαワードが、リングバッファの先頭
アドレスAS から順次書き込まれる。そして、その後
に、読出対象となるデータL1 がLワード書き込まれ
る。
で、リングバッファの最終アドレスAE となった場合で
ある。例えば、図8のデータM4 , M1 のように、読み
出し対象データのLワードが書き込まれた後、読み跳ば
すべきデータが(M−α)ワードだけ書き込まれた時点
で、最終アドレスAE になってしまった場合、読み跳ば
すべきデータの残りαワードが、リングバッファの先頭
アドレスAS から順次書き込まれる。そして、その後
に、読出対象となるデータL1 がLワード書き込まれ
る。
【0016】ここで、リングバッファの先頭アドレスA
S の方からみて、最初にある読出対象データの先頭アド
レスAT を、読出対象データ先頭アドレスと言うことに
する。
S の方からみて、最初にある読出対象データの先頭アド
レスAT を、読出対象データ先頭アドレスと言うことに
する。
【0017】そのように書き込まれたデータの読出対象
データのみを読み出す場合、最終アドレス手前の読み出
し対象データL3 をLワード読み出した後、データM4
の読み跳ばしを行っている間に最終アドレスAE を越え
てしまう。その場合、次の読み出しは、本来は、リング
バッファの先頭部分に戻って、読出対象データ先頭アド
レスAT から始めるべきところ、従来のリングバッファ
の読み出し方式では、リングバッファの先頭アドレスA
S から始めることになる。その結果、先頭アドレスAS
からαワードは、本来読み跳ばすべきデータM1 が書き
込まれているが、そのデータM1 を読み出してしまうこ
とになる。その結果、正しいデータ読み出しができなく
なる。 本発明は、以上のような問題点を解決すること
を課題とするものである。
データのみを読み出す場合、最終アドレス手前の読み出
し対象データL3 をLワード読み出した後、データM4
の読み跳ばしを行っている間に最終アドレスAE を越え
てしまう。その場合、次の読み出しは、本来は、リング
バッファの先頭部分に戻って、読出対象データ先頭アド
レスAT から始めるべきところ、従来のリングバッファ
の読み出し方式では、リングバッファの先頭アドレスA
S から始めることになる。その結果、先頭アドレスAS
からαワードは、本来読み跳ばすべきデータM1 が書き
込まれているが、そのデータM1 を読み出してしまうこ
とになる。その結果、正しいデータ読み出しができなく
なる。 本発明は、以上のような問題点を解決すること
を課題とするものである。
【0018】
【課題を解決するための手段】前記課題を解決するた
め、本発明のDMA制御装置では、リングバッファに対
してアドレス値を発生するDMA制御装置であって、該
リングバッファが設定されている範囲内のアドレス値を
初期値とし、順次リングバッファのアドレス信号を発生
するアドレス発生回路と、該アドレス発生回路からのア
ドレス値が、上記リングバッファの最終アドレスより大
となった時、該アドレス値からリングバッファの総アド
レス数を引いたアドレス値で、上記アドレス発生回路を
初期化する補正アドレス発生回路とを設けることとし
た。また、上記アドレス発生回路は、一定の周期毎に、
所定数のアドレスを跳ばしてアドレス値を出力する回路
であることとした。さらに、上記アドレス発生回路に
は、順次アドレス値を増加させ、その値が設定値に達す
るとクリアされると同時に改行信号を発生するカウンタ
と、該改行信号が与えられる度毎に、次行の先頭アドレ
ス値を発生し、その先頭アドレス値と上記カウンタの値
とを加算する回路とを設けることとした。さらにまた、
上記補正アドレス発生回路は、リングバッファの最終ア
ドレスを保持する第1のレジスタと、リングバッファの
先頭アドレスを保持する第2のレジスタと、上記第1の
レジスタの値と第2のレジスタの値との差を出力する減
算器と、アドレス発生回路の出力から上記減算器の出力
を減じた値を出力する回路とを設けることとした。
め、本発明のDMA制御装置では、リングバッファに対
してアドレス値を発生するDMA制御装置であって、該
リングバッファが設定されている範囲内のアドレス値を
初期値とし、順次リングバッファのアドレス信号を発生
するアドレス発生回路と、該アドレス発生回路からのア
ドレス値が、上記リングバッファの最終アドレスより大
となった時、該アドレス値からリングバッファの総アド
レス数を引いたアドレス値で、上記アドレス発生回路を
初期化する補正アドレス発生回路とを設けることとし
た。また、上記アドレス発生回路は、一定の周期毎に、
所定数のアドレスを跳ばしてアドレス値を出力する回路
であることとした。さらに、上記アドレス発生回路に
は、順次アドレス値を増加させ、その値が設定値に達す
るとクリアされると同時に改行信号を発生するカウンタ
と、該改行信号が与えられる度毎に、次行の先頭アドレ
ス値を発生し、その先頭アドレス値と上記カウンタの値
とを加算する回路とを設けることとした。さらにまた、
上記補正アドレス発生回路は、リングバッファの最終ア
ドレスを保持する第1のレジスタと、リングバッファの
先頭アドレスを保持する第2のレジスタと、上記第1の
レジスタの値と第2のレジスタの値との差を出力する減
算器と、アドレス発生回路の出力から上記減算器の出力
を減じた値を出力する回路とを設けることとした。
【0019】
【作 用】アドレス発生回路からのアドレス値が、リ
ングバッファの最終アドレスより大なる値となった時、
該アドレス値からリングバッファの総アドレス数を引い
たアドレス値で、上記アドレス発生回路を初期化するよ
うにした。その結果、リングバッファに書き込まれたデ
ータを読み出す場合において、アドレス発生回路からの
アドレス値が、リングバッファの最終アドレスを跳び越
えて出力されるような場合でも、読出位置が、必ず読出
対象データ先頭アドレスに戻るので、常に正しいデータ
読み出しができる。
ングバッファの最終アドレスより大なる値となった時、
該アドレス値からリングバッファの総アドレス数を引い
たアドレス値で、上記アドレス発生回路を初期化するよ
うにした。その結果、リングバッファに書き込まれたデ
ータを読み出す場合において、アドレス発生回路からの
アドレス値が、リングバッファの最終アドレスを跳び越
えて出力されるような場合でも、読出位置が、必ず読出
対象データ先頭アドレスに戻るので、常に正しいデータ
読み出しができる。
【0020】
(第1実施例)以下、本発明の実施例を図面に基づいて
詳細に説明する。図1は、本発明の第1実施例を示すブ
ロック図である。図1において、1はアドレス発生回
路、2,7,11,12はレジスタ、3,9,20はマ
ルチプレクサ、4はラッチ回路、5,8,15は加算
器、6はカウンタ、10は補正アドレス出力部、16は
比較器である。
詳細に説明する。図1は、本発明の第1実施例を示すブ
ロック図である。図1において、1はアドレス発生回
路、2,7,11,12はレジスタ、3,9,20はマ
ルチプレクサ、4はラッチ回路、5,8,15は加算
器、6はカウンタ、10は補正アドレス出力部、16は
比較器である。
【0021】アドレス発生回路1は、データの先頭部分
が書き込まれている部分のアドレス値を、初期値として
与えられ、それから順次増加させて、リングバッファへ
のアドレス信号を発生する回路である。補正アドレス発
生回路10は、アドレス発生回路からのアドレス値が増
加していって、上記リングバッファの最終アドレスを跳
び越えて出力された時、常に読出対象データ先頭アドレ
スにアクセスできるように、補正したアドレス値を出力
する回路である。そして、アドレス発生回路1の出力
と、補正アドレス発生回路10の出力とは、マルチプレ
クサ20で選択的に切り換えられて、端子Aから出力さ
れる。
が書き込まれている部分のアドレス値を、初期値として
与えられ、それから順次増加させて、リングバッファへ
のアドレス信号を発生する回路である。補正アドレス発
生回路10は、アドレス発生回路からのアドレス値が増
加していって、上記リングバッファの最終アドレスを跳
び越えて出力された時、常に読出対象データ先頭アドレ
スにアクセスできるように、補正したアドレス値を出力
する回路である。そして、アドレス発生回路1の出力
と、補正アドレス発生回路10の出力とは、マルチプレ
クサ20で選択的に切り換えられて、端子Aから出力さ
れる。
【0022】ここで、図7,図8で示したデータをリン
グバッファから画像記録部に転送する場合を例にして、
図1の回路の動作を説明する。まず、アドレス発生回路
の内部の動作を説明する。DMA転送を開始する前に、
予め、DMA転送開始アドレス値(第1ページ第1行の
最初のデータが書き込まれている部分のアドレス値)
を、レジスタ2に入力し、また、連続する2行の先頭番
地のアドレス差(図8におけるL+Mに相当する)を、
レジスタ7に入力し、それらの値を保持させておく。
グバッファから画像記録部に転送する場合を例にして、
図1の回路の動作を説明する。まず、アドレス発生回路
の内部の動作を説明する。DMA転送を開始する前に、
予め、DMA転送開始アドレス値(第1ページ第1行の
最初のデータが書き込まれている部分のアドレス値)
を、レジスタ2に入力し、また、連続する2行の先頭番
地のアドレス差(図8におけるL+Mに相当する)を、
レジスタ7に入力し、それらの値を保持させておく。
【0023】マルチプレクサ3は、ページの先頭で端子
Pから切換信号を受けて、レジスタ2の出力をラッチ回
路4に与える。レジスタ2には、DMA転送開始アドレ
ス値が保持されているので、ラッチ回路4には、DMA
転送が開始される行の先頭アドレス値がラッチされる。
加算器5は、ラッチ回路4の出力とカウンタ6のカウン
ト値とを加算する。カウンタ6は、1ワードの転送終了
毎にカウントアップしていくので、加算器5の出力は、
当該行のアドレスを、順次与えることになる。そして、
カウンタ6が、Lワードカウントすると、改行信号が出
力される。それと同時に、カウンタ6はクリアされ、ラ
ッチ回路4の値も更新される。そうすることにより、そ
の後に続くMワードは、読み跳ばされることになる。
Pから切換信号を受けて、レジスタ2の出力をラッチ回
路4に与える。レジスタ2には、DMA転送開始アドレ
ス値が保持されているので、ラッチ回路4には、DMA
転送が開始される行の先頭アドレス値がラッチされる。
加算器5は、ラッチ回路4の出力とカウンタ6のカウン
ト値とを加算する。カウンタ6は、1ワードの転送終了
毎にカウントアップしていくので、加算器5の出力は、
当該行のアドレスを、順次与えることになる。そして、
カウンタ6が、Lワードカウントすると、改行信号が出
力される。それと同時に、カウンタ6はクリアされ、ラ
ッチ回路4の値も更新される。そうすることにより、そ
の後に続くMワードは、読み跳ばされることになる。
【0024】マルチプレクサ3は、ページの先頭以外で
は、加算器8側に切り換えられるので、ラッチ回路4の
更新後の値は、マルチプレクサ9を介して与えられる一
行前のラッチ回路4の値と、レジスタ7の値とが加算器
8で加算された値となる。そして、レジスタ7には、連
続する2行のアドレス差が保持されているので、加算器
8の出力は、次の行の先頭アドレス値となる。したがっ
て、ラッチ回路4には、順次次の行の先頭アドレス値が
ラッチされていく。
は、加算器8側に切り換えられるので、ラッチ回路4の
更新後の値は、マルチプレクサ9を介して与えられる一
行前のラッチ回路4の値と、レジスタ7の値とが加算器
8で加算された値となる。そして、レジスタ7には、連
続する2行のアドレス差が保持されているので、加算器
8の出力は、次の行の先頭アドレス値となる。したがっ
て、ラッチ回路4には、順次次の行の先頭アドレス値が
ラッチされていく。
【0025】このように、カウンタ6がLワード分のデ
ータ転送をカウントすると、改行信号が出力される。そ
れと同時に、カウンタ6がクリアされると共に、ラッチ
回路4には、マルチプレクサ3から出力されている次の
行の先頭アドレス値がラッチされる。そして、加算器5
で、ラッチ回路4の出力とカウンタ6のカウント値とが
加算され、アドレス信号が生成される。このようにし
て、アドレス発生回路1からは、各行において、Lワー
ド読み出したら、次のMワードを読み跳ばすように、ア
ドレス信号が出力される。
ータ転送をカウントすると、改行信号が出力される。そ
れと同時に、カウンタ6がクリアされると共に、ラッチ
回路4には、マルチプレクサ3から出力されている次の
行の先頭アドレス値がラッチされる。そして、加算器5
で、ラッチ回路4の出力とカウンタ6のカウント値とが
加算され、アドレス信号が生成される。このようにし
て、アドレス発生回路1からは、各行において、Lワー
ド読み出したら、次のMワードを読み跳ばすように、ア
ドレス信号が出力される。
【0026】次に、補正アドレス発生回路10の動作を
説明する。補正アドレス発生回路10のレジスタ11,
12には、それぞれ、メモリ内でリングバッファとして
使用する領域の最終アドレス(図8における最終アドレ
スAE )の値と先頭アドレス(図8における先頭アドレ
スAS )の値とが設定されている。減算器13で、レジ
スタ11,12に設定されている、リングバッファの最
終アドレスの値と先頭アドレスの値との差を算出する。
その値は、リングバッファとして使用されている領域の
総アドレス数にほかならない。
説明する。補正アドレス発生回路10のレジスタ11,
12には、それぞれ、メモリ内でリングバッファとして
使用する領域の最終アドレス(図8における最終アドレ
スAE )の値と先頭アドレス(図8における先頭アドレ
スAS )の値とが設定されている。減算器13で、レジ
スタ11,12に設定されている、リングバッファの最
終アドレスの値と先頭アドレスの値との差を算出する。
その値は、リングバッファとして使用されている領域の
総アドレス数にほかならない。
【0027】減算器14では、ラッチ回路4の出力、即
ち、現在転送されている行の先頭アドレスから上記減算
器13の出力を減算する。さらに、加算器15で、カウ
ンタ6のカウント値を、それに加算している。その加算
器15の出力は、転送アドレスがリングバッファの最終
アドレスを越えて、リングバッファの先頭部分に戻った
時、読出対象データ先頭アドレスAT (図8参照)の値
となる。なお、この点については、後で、さらに説明す
る。
ち、現在転送されている行の先頭アドレスから上記減算
器13の出力を減算する。さらに、加算器15で、カウ
ンタ6のカウント値を、それに加算している。その加算
器15の出力は、転送アドレスがリングバッファの最終
アドレスを越えて、リングバッファの先頭部分に戻った
時、読出対象データ先頭アドレスAT (図8参照)の値
となる。なお、この点については、後で、さらに説明す
る。
【0028】一方、比較器16で、加算器5から出力さ
れているアドレス値を、レジスタ11に設定されている
リングバッファの最終アドレスと比較している。そし
て、該アドレス値がリングバッファの最終アドレスを越
えた時、マルチプレクサ9,20に対して切換信号を出
力する。マルチプレクサ20は、切換信号を受けて、加
算器5からの出力に代えて、加算器15からの出力を端
子Aに出力する。
れているアドレス値を、レジスタ11に設定されている
リングバッファの最終アドレスと比較している。そし
て、該アドレス値がリングバッファの最終アドレスを越
えた時、マルチプレクサ9,20に対して切換信号を出
力する。マルチプレクサ20は、切換信号を受けて、加
算器5からの出力に代えて、加算器15からの出力を端
子Aに出力する。
【0029】また、マルチプレクサ9は、切換信号を受
けて、ラッチ回路4からの出力に代えて、減算器14か
らの出力を加算器8に与える。加算器8は、減算器14
の値と、レジスタ7の値、すなわち、連続する2行の先
頭番地のアドレス差とを加算して、マルチプレクサ3を
介してラッチ回路4に出力する。
けて、ラッチ回路4からの出力に代えて、減算器14か
らの出力を加算器8に与える。加算器8は、減算器14
の値と、レジスタ7の値、すなわち、連続する2行の先
頭番地のアドレス差とを加算して、マルチプレクサ3を
介してラッチ回路4に出力する。
【0030】上記実施例における各部の出力値の関係
を、さらに説明する。図3は、本発明のDMA制御装置
の動作を説明するための図である。符号は、図8のもの
に対応し、AL は、リングバッファの最終アドレスAE
の直前に書き込まれている行の先頭アドレスで、現在、
このアドレスAL を読み出しているものとする。AL-T
は、現在読出中のアドレスAL の値から、リングバッフ
ァとして使用されている領域の総アドレス数を引いた値
に相当するアドレスで、リングバッファの領域外にあ
る。図3では、リングバッファの領域外の部分を、点線
で仮想的に示している。
を、さらに説明する。図3は、本発明のDMA制御装置
の動作を説明するための図である。符号は、図8のもの
に対応し、AL は、リングバッファの最終アドレスAE
の直前に書き込まれている行の先頭アドレスで、現在、
このアドレスAL を読み出しているものとする。AL-T
は、現在読出中のアドレスAL の値から、リングバッフ
ァとして使用されている領域の総アドレス数を引いた値
に相当するアドレスで、リングバッファの領域外にあ
る。図3では、リングバッファの領域外の部分を、点線
で仮想的に示している。
【0031】ここで、リングバッファの先頭アドレスA
S と、上記アドレスAL-T との差を求めると、その差
は、リングバッファの最終アドレスAE とアドレスAL
との差AE −AL と一致する。そのことを、式を使って
次に示す。リングバッファとして使用されている領域の
総アドレス数をTとすると、 AS −AL-T =AS −(AL −T) =AS −{AL −(AE −AS )} =AE −AL そして、AE とAL との間のアドレス数は、L+M−α
であるので、AS とAL-T との間のアドレス数もL+M
−αである。
S と、上記アドレスAL-T との差を求めると、その差
は、リングバッファの最終アドレスAE とアドレスAL
との差AE −AL と一致する。そのことを、式を使って
次に示す。リングバッファとして使用されている領域の
総アドレス数をTとすると、 AS −AL-T =AS −(AL −T) =AS −{AL −(AE −AS )} =AE −AL そして、AE とAL との間のアドレス数は、L+M−α
であるので、AS とAL-T との間のアドレス数もL+M
−αである。
【0032】現在、アドレスAL を読み出しているとこ
ろなので、ラッチ回路4からは、その時点で転送されて
いる行の先頭アドレス値であるアドレスAL の値が出力
されている。その時、減算器14からは、アドレスAL
の値から、リングバッファとして使用されている領域の
総アドレス数を引いた値、すなわち、リングバッファの
領域外のアドレスAL-T の値が出力されている。
ろなので、ラッチ回路4からは、その時点で転送されて
いる行の先頭アドレス値であるアドレスAL の値が出力
されている。その時、減算器14からは、アドレスAL
の値から、リングバッファとして使用されている領域の
総アドレス数を引いた値、すなわち、リングバッファの
領域外のアドレスAL-T の値が出力されている。
【0033】その後、カウンタ6が、Lワード分カウン
トすると、改行信号が出力される。それと同時に、ラッ
チ回路4は、マルチプレクサ3から出力されている次の
行の先頭アドレス値をラッチするが、その値は、アドレ
スAL のアドレス値に行間のアドレス差L+Mを加算し
た値である。しかし、アドレスAL からリングバッファ
の最終アドレスAE までの間には、L+M−αのアドレ
スしか残っていないので、ラッチ回路4の値は、リング
バッファの最終アドレスAE を越える。
トすると、改行信号が出力される。それと同時に、ラッ
チ回路4は、マルチプレクサ3から出力されている次の
行の先頭アドレス値をラッチするが、その値は、アドレ
スAL のアドレス値に行間のアドレス差L+Mを加算し
た値である。しかし、アドレスAL からリングバッファ
の最終アドレスAE までの間には、L+M−αのアドレ
スしか残っていないので、ラッチ回路4の値は、リング
バッファの最終アドレスAE を越える。
【0034】その結果、カウンタ6の値の如何に関わら
ず、加算器5の出力値は、リングバッファの最終アドレ
スAE を越えるので、比較器16が、マルチプレクサ2
0に切換信号を出力し、加算器15の出力の方が端子A
から出力される。その値は、アドレスAL-T のアドレス
値に1行分のアドレスL+Mが加えられた値となるが、
先に説明したように、アドレスAL-T とAS との間のア
ドレス数は、L+M−αであるので、その値は、丁度、
リングバッファの先頭アドレスAS +αとなり、読出対
象データ先頭アドレスAT となる。
ず、加算器5の出力値は、リングバッファの最終アドレ
スAE を越えるので、比較器16が、マルチプレクサ2
0に切換信号を出力し、加算器15の出力の方が端子A
から出力される。その値は、アドレスAL-T のアドレス
値に1行分のアドレスL+Mが加えられた値となるが、
先に説明したように、アドレスAL-T とAS との間のア
ドレス数は、L+M−αであるので、その値は、丁度、
リングバッファの先頭アドレスAS +αとなり、読出対
象データ先頭アドレスAT となる。
【0035】一方、比較器16の切換信号は、マルチプ
レクサ9にも与えられ、それにより、ラッチ回路4の出
力の代わりに、減算器14の出力AL-T が、加算器8に
与えられる。加算器8では、減算器14の出力A
L-T と、レジスタ7の値、すなわち、連続する2行の先
頭番地のアドレス差L+Mとが加算されるが、その値
は、読出対象データ先頭アドレスAT となる。そして、
その読出対象データ先頭アドレスAT が、マルチプレク
サ3を介してラッチ回路4に与えられ、ラッチされる。
レクサ9にも与えられ、それにより、ラッチ回路4の出
力の代わりに、減算器14の出力AL-T が、加算器8に
与えられる。加算器8では、減算器14の出力A
L-T と、レジスタ7の値、すなわち、連続する2行の先
頭番地のアドレス差L+Mとが加算されるが、その値
は、読出対象データ先頭アドレスAT となる。そして、
その読出対象データ先頭アドレスAT が、マルチプレク
サ3を介してラッチ回路4に与えられ、ラッチされる。
【0036】それ以後は、その値を初期値として、アド
レス発生器1からのアドレス値を増加していく。このよ
うに、転送アドレスが、リングバッファの最終アドレス
を越えて、再び、リングバッファの先頭部分に戻る際
に、アドレス発生器1の初期値が設定し直され、アドレ
ス発生回路が初期化される。
レス発生器1からのアドレス値を増加していく。このよ
うに、転送アドレスが、リングバッファの最終アドレス
を越えて、再び、リングバッファの先頭部分に戻る際
に、アドレス発生器1の初期値が設定し直され、アドレ
ス発生回路が初期化される。
【0037】(第2実施例)図2は、本発明の第2実施
例を示すブロック図である。符号は、図1のものに対応
している。アドレス発生回路1については、基本的に、
図1のものと変わりはないので、詳細は省略して示して
いる。
例を示すブロック図である。符号は、図1のものに対応
している。アドレス発生回路1については、基本的に、
図1のものと変わりはないので、詳細は省略して示して
いる。
【0038】減算器13の出力は、図1のものにおける
減算器13の出力と同じく、リングバッファの総アドレ
ス数を表している。ただ、図1の第1実施例では、減算
器14で、各行の先頭アドレスから、減算器13の出力
値(総アドレス数)を減算しているのに対して、第2実
施例では、現在発生中のアドレス値から、減算器13の
出力値を減算している。しかし、各行の先頭アドレスに
対して、カウンタ6の値を加える順と、減算器13の出
力(総アドレス数)を引く順を入れ換えているだけで結
果的には、マルチプレクサ20に入力される値に差異は
なく、第1実施例と同様な効果が得られる。なお、この
第2実施例によれば、第1実施例の場合より、加算器を
1個節約できる。
減算器13の出力と同じく、リングバッファの総アドレ
ス数を表している。ただ、図1の第1実施例では、減算
器14で、各行の先頭アドレスから、減算器13の出力
値(総アドレス数)を減算しているのに対して、第2実
施例では、現在発生中のアドレス値から、減算器13の
出力値を減算している。しかし、各行の先頭アドレスに
対して、カウンタ6の値を加える順と、減算器13の出
力(総アドレス数)を引く順を入れ換えているだけで結
果的には、マルチプレクサ20に入力される値に差異は
なく、第1実施例と同様な効果が得られる。なお、この
第2実施例によれば、第1実施例の場合より、加算器を
1個節約できる。
【0039】
【発明の効果】以上述べた如く、本発明のDMA制御装
置によれば、次のような効果を奏する。アドレス発生回
路からのアドレス値が、リングバッファの最終アドレス
より大なる値になった時、該アドレス値からリングバッ
ファの総アドレス数を引いたアドレス値で、上記アドレ
ス発生回路を初期化するようにした。その結果、リング
バッファに書き込まれたデータを読み出す場合におい
て、アドレス発生回路からのアドレス値が、リングバッ
ファの最終アドレスを跳び越えて出力されたような場合
でも、読出位置が、必ず読出対象データ先頭アドレスに
戻るので、常に正しいデータ読み出しができるようにな
った。
置によれば、次のような効果を奏する。アドレス発生回
路からのアドレス値が、リングバッファの最終アドレス
より大なる値になった時、該アドレス値からリングバッ
ファの総アドレス数を引いたアドレス値で、上記アドレ
ス発生回路を初期化するようにした。その結果、リング
バッファに書き込まれたデータを読み出す場合におい
て、アドレス発生回路からのアドレス値が、リングバッ
ファの最終アドレスを跳び越えて出力されたような場合
でも、読出位置が、必ず読出対象データ先頭アドレスに
戻るので、常に正しいデータ読み出しができるようにな
った。
【図1】 本発明の第1実施例を示すブロック図
【図2】 本発明の第2実施例を示すブロック図
【図3】 本発明のDMA制御装置の動作を説明するた
めの図
めの図
【図4】 画像処理装置の概要を示すブロック図
【図5】 画像メモリへの画像データの入出力動作の一
例を説明するための図
例を説明するための図
【図6】 リングバッファの動作を説明するための図
【図7】 画像メモリ中の画像データの一部分を読み出
す場合を説明するための図
す場合を説明するための図
【図8】 画像メモリ中の画像データの一部分を読み出
す場合のリングバッファの動作を説明するための図
す場合のリングバッファの動作を説明するための図
【符号の説明】 1…アドレス発生回路、2,7,11,12…レジス
タ、3,9,20…マルチプレクサ、4…ラッチ回路、
5,8,15…加算器、6…カウンタ、10…補正アド
レス発生回路、13,14…減算器、16…比較器、5
0…CPU、21…画像メモリ、22…システムバス、
23…イメージバス、24…バス接続器、30…画像入
力部、31,41…DMAC、40…画像出力部
タ、3,9,20…マルチプレクサ、4…ラッチ回路、
5,8,15…加算器、6…カウンタ、10…補正アド
レス発生回路、13,14…減算器、16…比較器、5
0…CPU、21…画像メモリ、22…システムバス、
23…イメージバス、24…バス接続器、30…画像入
力部、31,41…DMAC、40…画像出力部
Claims (4)
- 【請求項1】 リングバッファに対してアドレス値を発
生するDMA制御装置であって、該リングバッファが設
定されている範囲内のアドレス値を初期値とし、順次リ
ングバッファのアドレス信号を発生するアドレス発生回
路と、該アドレス発生回路からのアドレス値が、上記リ
ングバッファの最終アドレスより大となった時、該アド
レス値からリングバッファの総アドレス数を引いたアド
レス値で、上記アドレス発生回路を初期化する補正アド
レス発生回路とを具えることを特徴とするDMA制御装
置。 - 【請求項2】 アドレス発生回路は、一定の周期毎に、
所定数のアドレスを跳ばしてアドレス値を出力する回路
であることを特徴とする請求項1記載のDMA制御装
置。 - 【請求項3】 アドレス発生回路は、順次アドレス値を
増加させ、その値が設定値に達するとクリアされると同
時に改行信号を発生するカウンタと、該改行信号が与え
られる度毎に、次行の先頭アドレス値を発生し、その先
頭アドレス値と上記カウンタの値とを加算する回路とを
具えることを特徴とする請求項2記載のDMA制御装
置。 - 【請求項4】 補正アドレス発生回路は、リングバッフ
ァの最終アドレスを保持する第1のレジスタと、リング
バッファの先頭アドレスを保持する第2のレジスタと、
上記第1のレジスタの値と第2のレジスタの値との差を
出力する減算器と、アドレス発生回路の出力から上記減
算器の出力を減じた値を出力する回路とを具えることを
特徴とする請求項1,請求項2又は請求項3記載のDM
A制御装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4184539A JPH064458A (ja) | 1992-06-18 | 1992-06-18 | Dma制御装置 |
| US08/863,291 US5787497A (en) | 1992-06-18 | 1997-05-27 | Direct memory access control device for a ring buffer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4184539A JPH064458A (ja) | 1992-06-18 | 1992-06-18 | Dma制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH064458A true JPH064458A (ja) | 1994-01-14 |
Family
ID=16154978
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4184539A Pending JPH064458A (ja) | 1992-06-18 | 1992-06-18 | Dma制御装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5787497A (ja) |
| JP (1) | JPH064458A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6629160B1 (en) | 1999-06-16 | 2003-09-30 | Nec Electronics Corporation | Direct memory access controller |
| US7500028B2 (en) | 2003-03-20 | 2009-03-03 | Panasonic Corporation | DMA controller providing for ring buffer and rectangular block transfers |
| US8978504B2 (en) | 2011-10-13 | 2015-03-17 | Kabushiki Kaisha Tokai-Rika-Denki-Seisakusho | Shift device |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001005721A (ja) * | 1999-06-17 | 2001-01-12 | Nec Ic Microcomput Syst Ltd | Dspによるリング・バッファ用メモリ確保によるフィルタ処理方法及びそのフィルタ処理システム |
| US6789183B1 (en) * | 1999-09-28 | 2004-09-07 | Texas Instruments Incorporated | Apparatus and method for activation of a digital signal processor in an idle mode for interprocessor transfer of signal groups in a digital signal processing unit |
| US6584514B1 (en) * | 1999-09-28 | 2003-06-24 | Texas Instruments Incorporated | Apparatus and method for address modification in a direct memory access controller |
| GB2371641B (en) * | 2001-01-27 | 2004-10-06 | Mitel Semiconductor Ltd | Direct memory access controller for circular buffers |
| CN100520754C (zh) * | 2003-03-12 | 2009-07-29 | Nxp股份有限公司 | 用于传送数据的数据处理设备以及方法 |
| US20060075184A1 (en) * | 2004-10-01 | 2006-04-06 | Jen-Ying Chen | Synchronous\asynchronous memory device with single port memory unit |
| FR2913785B1 (fr) * | 2007-03-13 | 2009-06-12 | St Microelectronics Sa | Gestion de memoire tampon circulaire |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4800524A (en) * | 1985-12-20 | 1989-01-24 | Analog Devices, Inc. | Modulo address generator |
| JPH0496163A (ja) * | 1990-08-08 | 1992-03-27 | Nec Corp | Dmaコントローラ |
| JP2692384B2 (ja) * | 1990-12-29 | 1997-12-17 | 日本電気株式会社 | アドレス生成回路 |
| US5463749A (en) * | 1993-01-13 | 1995-10-31 | Dsp Semiconductors Ltd | Simplified cyclical buffer |
-
1992
- 1992-06-18 JP JP4184539A patent/JPH064458A/ja active Pending
-
1997
- 1997-05-27 US US08/863,291 patent/US5787497A/en not_active Expired - Fee Related
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6629160B1 (en) | 1999-06-16 | 2003-09-30 | Nec Electronics Corporation | Direct memory access controller |
| US7500028B2 (en) | 2003-03-20 | 2009-03-03 | Panasonic Corporation | DMA controller providing for ring buffer and rectangular block transfers |
| US8978504B2 (en) | 2011-10-13 | 2015-03-17 | Kabushiki Kaisha Tokai-Rika-Denki-Seisakusho | Shift device |
Also Published As
| Publication number | Publication date |
|---|---|
| US5787497A (en) | 1998-07-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4858107A (en) | Computer device display system using conditionally asynchronous memory accessing by video display controller | |
| EP0887802B1 (en) | Method for operating a memory | |
| US5335235A (en) | FIFO based parity generator | |
| GB2250615A (en) | Direct memory access controller | |
| JPH064458A (ja) | Dma制御装置 | |
| US10225425B2 (en) | Information processing apparatus and method for controlling the same | |
| JP3166447B2 (ja) | 画像処理装置及び画像処理方法 | |
| US5526513A (en) | Memory addressing device | |
| US4800490A (en) | Buffer storage control system having a priority circuit | |
| US6300964B1 (en) | Method and apparatus for storage retrieval of digital image data | |
| US5323488A (en) | Memory access method and circuit in which access timing to a memory is divided into N periods to be accessed from N access request sources | |
| US20020018238A1 (en) | Printer, print control apparatus and method | |
| US5408615A (en) | Direct memory access method and memory control apparatus | |
| JPS5893095A (ja) | メモリアドレス制御装置 | |
| US6195463B1 (en) | Multiresolution image processing and storage on a single chip | |
| JPH0376659A (ja) | サーマルヘッドプリンタ | |
| JPH064398A (ja) | 情報処理装置 | |
| SU1695382A1 (ru) | Запоминающее устройство | |
| JP3323751B2 (ja) | 印刷装置 | |
| JPS6055389A (ja) | 文字図形表示装置 | |
| JPH02187874A (ja) | 画像処理装置 | |
| JP4244619B2 (ja) | 画像データ処理装置 | |
| JPH06324935A (ja) | アドレス発生器およびアドレス発生システム | |
| KR100192960B1 (ko) | 컴퓨터시스템의 디엠에이인터페이스방법 | |
| JPS58143384A (ja) | Crtデイスプレイ装置におけるデ−タのリ−ド/ライト方式 |