JPH05108544A - ダイレクト・メモリ・アクセス装置及びそのデータ転送方法 - Google Patents
ダイレクト・メモリ・アクセス装置及びそのデータ転送方法Info
- Publication number
- JPH05108544A JPH05108544A JP26950891A JP26950891A JPH05108544A JP H05108544 A JPH05108544 A JP H05108544A JP 26950891 A JP26950891 A JP 26950891A JP 26950891 A JP26950891 A JP 26950891A JP H05108544 A JPH05108544 A JP H05108544A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- transfer
- bits
- storing
- 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
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】 従来よりも高速でデータ転送することができ
るようにする。 【構成】 現在転送を行なっているデータとその1つ前
のアドレスのデータとをそれぞれカレントデータ・レジ
スタ2とプレビアスデータ・レジスタ1に記憶し、その
レジスタ2からレジスタ1へデータを移すだけで、転送
元エリアの同じアドレスのデータを2回読み出さなくて
済むようにし、これらの両レジスタ1,2内のデータ
を、セレクタ3a,3b,3cを複数段重ねて構成した
シフトゲート3によって連続して0〜7ビットの間の所
要ビット数だけシフトさせ、ANDゲート7及びORゲ
ート10を通して転送先エリアに書き込む。転送境界で
は、マスクデータ・レジスタ5及びデスティネーション
・プレビアスデータ・レジスタ6を使用して、マスク処
理及びOR書き込みを行なう。
るようにする。 【構成】 現在転送を行なっているデータとその1つ前
のアドレスのデータとをそれぞれカレントデータ・レジ
スタ2とプレビアスデータ・レジスタ1に記憶し、その
レジスタ2からレジスタ1へデータを移すだけで、転送
元エリアの同じアドレスのデータを2回読み出さなくて
済むようにし、これらの両レジスタ1,2内のデータ
を、セレクタ3a,3b,3cを複数段重ねて構成した
シフトゲート3によって連続して0〜7ビットの間の所
要ビット数だけシフトさせ、ANDゲート7及びORゲ
ート10を通して転送先エリアに書き込む。転送境界で
は、マスクデータ・レジスタ5及びデスティネーション
・プレビアスデータ・レジスタ6を使用して、マスク処
理及びOR書き込みを行なう。
Description
【0001】
【産業上の利用分野】この発明は、レーザプリンタを始
めとするページプリンタ等の出力装置において、印字さ
れるべきドットパターンを展開する際に用いられるダイ
レクト・メモリ・アクセス装置(以下「DMA装置」と
略称する)及びそのデータ転送方法に関する。
めとするページプリンタ等の出力装置において、印字さ
れるべきドットパターンを展開する際に用いられるダイ
レクト・メモリ・アクセス装置(以下「DMA装置」と
略称する)及びそのデータ転送方法に関する。
【0002】
【従来の技術】レーザプリンタ等においては、フォント
のビットイメージを記憶しているメモリであるフォント
ROMと、印字されるべきドットパターンを記憶するた
めのメモリであるRAMとを有し、このフォントROM
から印字すべき文字のフォントのビットイメージデータ
をRAMのスキャンバッファと呼ばれる所定領域に転送
して文字のビットイメージを展開する。そのため、上記
フォントROM及びRAMをCPUを介さずに直接アク
セスして、高速でデータの転送を行なうDMA装置を備
えているものが多い。
のビットイメージを記憶しているメモリであるフォント
ROMと、印字されるべきドットパターンを記憶するた
めのメモリであるRAMとを有し、このフォントROM
から印字すべき文字のフォントのビットイメージデータ
をRAMのスキャンバッファと呼ばれる所定領域に転送
して文字のビットイメージを展開する。そのため、上記
フォントROM及びRAMをCPUを介さずに直接アク
セスして、高速でデータの転送を行なうDMA装置を備
えているものが多い。
【0003】従来、このようなDMA装置によってデー
タの転送を行なうに際しては、転送元のメモリ領域のス
タートアドレス(先頭番地)とエンドアドレス(末尾番
地)又はその領域の大きさ、及び転送先のメモリ領域の
スタートアドレスを指定していた。それ故、必然的に転
送されるデータはバイト単位になる。レーザプリンタに
おけるDMA転送は、前述のようにフォントのビットイ
メージをRAM上のスキャンバッファに展開する際に使
用される。フォントの大きさは文字によって多少異なる
が、通常の大きさのフォントなら約30dot×50dotの
大きさである。
タの転送を行なうに際しては、転送元のメモリ領域のス
タートアドレス(先頭番地)とエンドアドレス(末尾番
地)又はその領域の大きさ、及び転送先のメモリ領域の
スタートアドレスを指定していた。それ故、必然的に転
送されるデータはバイト単位になる。レーザプリンタに
おけるDMA転送は、前述のようにフォントのビットイ
メージをRAM上のスキャンバッファに展開する際に使
用される。フォントの大きさは文字によって多少異なる
が、通常の大きさのフォントなら約30dot×50dotの
大きさである。
【0004】例として、図5に示すような20dot×2
0dotの転送元エリア11のビットイメージデータを、
図6に示すような20dot×20dotの転送先エリア(デ
スティネーション・エリア)12に転送する場合につい
て、従来のDMA装置によるデータ転送方法を図7によ
って説明する。
0dotの転送元エリア11のビットイメージデータを、
図6に示すような20dot×20dotの転送先エリア(デ
スティネーション・エリア)12に転送する場合につい
て、従来のDMA装置によるデータ転送方法を図7によ
って説明する。
【0005】なお、この例では転送元エリア11はa番
地から始まり、a+59番地で終わるが、図5で右側の
列にあたるa+2+3n(n=0〜19)番地は4ビッ
トだけがこのエリア内にあり、他の番地は1バイト(8
ビット)全てがこのエリア内にある。一方、転送先エリ
ア12はb番地で始まり、b+59番地で終わるが、図
6で中央の列にあたるb+1+3n(n=0〜19)番
地だけが1バイト(8ビット)全てがこのエリア内にあ
り、左側の列にあたるb+3n番地及び右側の列にあた
るb+2+3n番地(いずれもn=0〜19)はいずれ
も6ビットだけがこのエリア内にある。
地から始まり、a+59番地で終わるが、図5で右側の
列にあたるa+2+3n(n=0〜19)番地は4ビッ
トだけがこのエリア内にあり、他の番地は1バイト(8
ビット)全てがこのエリア内にある。一方、転送先エリ
ア12はb番地で始まり、b+59番地で終わるが、図
6で中央の列にあたるb+1+3n(n=0〜19)番
地だけが1バイト(8ビット)全てがこのエリア内にあ
り、左側の列にあたるb+3n番地及び右側の列にあた
るb+2+3n番地(いずれもn=0〜19)はいずれ
も6ビットだけがこのエリア内にある。
【0006】この場合図7に示すように、まず転送元エ
リア11のa番地のデータを読み出し(1リード)、そ
のデータを16ビットのシフトレジスタ13に入れる。
そこで2ビット右へシフト(2クロック)した後、その
上位1バイトのデータを、転送先エリア12のb番地の
データを読み出した後、そのデータとORをとってb番
地に書き込む(1リード,1ライト)。
リア11のa番地のデータを読み出し(1リード)、そ
のデータを16ビットのシフトレジスタ13に入れる。
そこで2ビット右へシフト(2クロック)した後、その
上位1バイトのデータを、転送先エリア12のb番地の
データを読み出した後、そのデータとORをとってb番
地に書き込む(1リード,1ライト)。
【0007】次に、転送元エリア11のa番地とa+1
番地のデータを読み出し(2リード)、その各データを
16ビットのシフトレジスタ13の上位1バイトと下位
1バイトにそれぞれ入れる。そこで2ビット右へシフト
(2クロック)した後、その下位バイトのデータを転送
先エリア12のb+1番地に書き込む(1ライト)。
番地のデータを読み出し(2リード)、その各データを
16ビットのシフトレジスタ13の上位1バイトと下位
1バイトにそれぞれ入れる。そこで2ビット右へシフト
(2クロック)した後、その下位バイトのデータを転送
先エリア12のb+1番地に書き込む(1ライト)。
【0008】その後、転送元エリア11のa+1番地と
a+2番地のデータを読み出し(2リード)、その各デ
ータを16ビットのシフトレジスタ13の上位1バイト
と下位1バイトにそれぞれ入れる。そこで2ビット右へ
シフト(2クロック)した後、その下位2ビットをゼロ
にするようにマスクし(1リード,1ライト)、転送先
エリア12のb+2番地にそこから読み出したデータと
ORをとって書き込む(1リード,1ライト)。
a+2番地のデータを読み出し(2リード)、その各デ
ータを16ビットのシフトレジスタ13の上位1バイト
と下位1バイトにそれぞれ入れる。そこで2ビット右へ
シフト(2クロック)した後、その下位2ビットをゼロ
にするようにマスクし(1リード,1ライト)、転送先
エリア12のb+2番地にそこから読み出したデータと
ORをとって書き込む(1リード,1ライト)。
【0009】このようにして1行のデータ転送を行な
い、これを20回繰り返して20行すなわち20dot×
20dotのデータ転送を完了する。なお、シフトレジス
タ13によるデータのシフトは、転送元エリアと転送先
エリアの各先頭番地のエリア内のビツト数の相違に応じ
て行なう必要があり、上記の例では2ビットのシフトで
あるが、各場合により0〜7ビットのいずれかとなる。
い、これを20回繰り返して20行すなわち20dot×
20dotのデータ転送を完了する。なお、シフトレジス
タ13によるデータのシフトは、転送元エリアと転送先
エリアの各先頭番地のエリア内のビツト数の相違に応じ
て行なう必要があり、上記の例では2ビットのシフトで
あるが、各場合により0〜7ビットのいずれかとなる。
【0010】
【発明が解決しようとする課題】しかしながら、このよ
うな従来のDMA装置によるデータ転送方法では、転送
元エリアの同じ番地を2度リードしなくてはならないの
で時間がかかる。また、シフトレジスタもクロック同期
のものなので、シフトするビット数に比例した時間がか
かる。さらに、転送境界においてはデータのマスク操作
とOR書き込み操作の両方が必要になる等の問題があっ
た。
うな従来のDMA装置によるデータ転送方法では、転送
元エリアの同じ番地を2度リードしなくてはならないの
で時間がかかる。また、シフトレジスタもクロック同期
のものなので、シフトするビット数に比例した時間がか
かる。さらに、転送境界においてはデータのマスク操作
とOR書き込み操作の両方が必要になる等の問題があっ
た。
【0011】したがって、上述の例では1行のデータ転
送につき、8リード,4ライト,6クロック(nビット
のシフトを行なう場合:3nクロック)の時間を要する
ことになっていた。この発明は上記の点に鑑みてなされ
たものであり、従来よりも高速でデータ転送することが
できるDMA装置及びそのデータ転送方法を提供するこ
とを目的とする。
送につき、8リード,4ライト,6クロック(nビット
のシフトを行なう場合:3nクロック)の時間を要する
ことになっていた。この発明は上記の点に鑑みてなされ
たものであり、従来よりも高速でデータ転送することが
できるDMA装置及びそのデータ転送方法を提供するこ
とを目的とする。
【0012】
【課題を解決するための手段】この発明は上記の目的を
達成するため、現在転送を行なっているデータを記憶す
るカレントデータ・レジスタと、該データの1つ前のア
ドレスのデータを記憶するプレビアスデータ・レジスタ
と、これらの両レジスタ内のデータを連続して0〜7ビ
ットの間の任意のビツト数だけシフトさせるセレクタを
複数段重ねて構成したシフトゲートと、転送境界におい
てデータのマスクを行なうためのマスクデータ・レジス
タと、予め読み出した転送先データを保存するためのレ
ジスタとを備えたDMA装置を提供する。
達成するため、現在転送を行なっているデータを記憶す
るカレントデータ・レジスタと、該データの1つ前のア
ドレスのデータを記憶するプレビアスデータ・レジスタ
と、これらの両レジスタ内のデータを連続して0〜7ビ
ットの間の任意のビツト数だけシフトさせるセレクタを
複数段重ねて構成したシフトゲートと、転送境界におい
てデータのマスクを行なうためのマスクデータ・レジス
タと、予め読み出した転送先データを保存するためのレ
ジスタとを備えたDMA装置を提供する。
【0013】また、現在転送を行なっているデータと該
データの1つ前のアドレスのデータとをそれぞれレジス
タに記憶させ、その両レジスタ内のデータをセレクタを
複数段重ねて構成したシフトゲートによって所要のビッ
ト数だけシフトさせ、その1バイトのデータを転送先に
転送し、転送境界においては、予めレジスタに記憶させ
たマスクデータによって上記シフトさせた1バイトのデ
ータの一部をマスクし、予め転送先から読み出してレジ
スタに保存した1バイトのデータとオアをとって転送先
に書き込むようにしたDMA装置によるデータ転送方法
も提供する。
データの1つ前のアドレスのデータとをそれぞれレジス
タに記憶させ、その両レジスタ内のデータをセレクタを
複数段重ねて構成したシフトゲートによって所要のビッ
ト数だけシフトさせ、その1バイトのデータを転送先に
転送し、転送境界においては、予めレジスタに記憶させ
たマスクデータによって上記シフトさせた1バイトのデ
ータの一部をマスクし、予め転送先から読み出してレジ
スタに保存した1バイトのデータとオアをとって転送先
に書き込むようにしたDMA装置によるデータ転送方法
も提供する。
【0014】
【作用】この発明による上記DMA装置を使用すれば、
この発明による上記データ転送方法を容易に実施するこ
とができる。そして、現在転送を行なっているデータと
その1つ前のアドレスのデータとをそれぞれカレントデ
ータ・レジスタとプレビアスデータ・レジスタに記憶す
ることにより、カレントデータ・レジスタからプレビア
スデータ・レジスタへデータを移すだけで、転送元エリ
アの同じアドレスのデータを2回読み出さなくて済み、
これらの両レジスタ内のデータを、セレクタを複数段重
ねて構成したシフトゲートによって連続して0〜7ビッ
トの間の所要ビット数だけシフトさせることにより、シ
フトするビット数に係わらず最小限の時間(1回に1ク
ロック)でシフトさせることができる。
この発明による上記データ転送方法を容易に実施するこ
とができる。そして、現在転送を行なっているデータと
その1つ前のアドレスのデータとをそれぞれカレントデ
ータ・レジスタとプレビアスデータ・レジスタに記憶す
ることにより、カレントデータ・レジスタからプレビア
スデータ・レジスタへデータを移すだけで、転送元エリ
アの同じアドレスのデータを2回読み出さなくて済み、
これらの両レジスタ内のデータを、セレクタを複数段重
ねて構成したシフトゲートによって連続して0〜7ビッ
トの間の所要ビット数だけシフトさせることにより、シ
フトするビット数に係わらず最小限の時間(1回に1ク
ロック)でシフトさせることができる。
【0015】また、予め転送先の1バイトのデータを読
み出してレジスタに保存することと、シフトされた1バ
イトのデータの一部をマスクするためのデータをマスク
データ・レジスタに予め記憶させておくことにより、転
送境界において必要なマスク操作及びOR書き込み操作
も高速で実行できる。このように、データ転送のための
一連の操作を高速で処理することができる。
み出してレジスタに保存することと、シフトされた1バ
イトのデータの一部をマスクするためのデータをマスク
データ・レジスタに予め記憶させておくことにより、転
送境界において必要なマスク操作及びOR書き込み操作
も高速で実行できる。このように、データ転送のための
一連の操作を高速で処理することができる。
【0016】
【実施例】以下この発明の実施例を図面を参照して具体
的に説明する。図1はこの発明によるDMA装置の要部
構成例を示すブロック図であり、現在転送しているデー
タの1つ前のアドレスのデータを記憶するためのプレビ
アスデータ・レジスタ1(図中では「レジスタ」を「re
g.」と略記している)と、現在転送しているデータを記
憶するためカレントデータ・レジスタ2と、これらの両
レジスタ1,2内のデータを連続して0〜7ビットの間
の任意のビット数だけシフトさせるためにセレクタを3
段重ねて構成したシフトゲート3と、そのシフト量を記
憶するためのコントロール・レジスタ4とを備えてい
る。
的に説明する。図1はこの発明によるDMA装置の要部
構成例を示すブロック図であり、現在転送しているデー
タの1つ前のアドレスのデータを記憶するためのプレビ
アスデータ・レジスタ1(図中では「レジスタ」を「re
g.」と略記している)と、現在転送しているデータを記
憶するためカレントデータ・レジスタ2と、これらの両
レジスタ1,2内のデータを連続して0〜7ビットの間
の任意のビット数だけシフトさせるためにセレクタを3
段重ねて構成したシフトゲート3と、そのシフト量を記
憶するためのコントロール・レジスタ4とを備えてい
る。
【0017】さらに、転送領域の境界にまたがる1バイ
トのデータを転送する際に、所定のエリア外にはみ出す
一部のビットをマスクするためのマスクデータを記憶す
るマスクデータ・レジスタ5と、同様に転送領域の境界
にまたがる1バイトのデータ転送する時に転送先データ
を転送前に読み出して記憶しておくためのデスティネー
ション・プレビアスデータ・レジスタ(DPD reg. )
6と、ANDゲート7,8、NOTゲート9,及びOR
ゲート10によって構成される。
トのデータを転送する際に、所定のエリア外にはみ出す
一部のビットをマスクするためのマスクデータを記憶す
るマスクデータ・レジスタ5と、同様に転送領域の境界
にまたがる1バイトのデータ転送する時に転送先データ
を転送前に読み出して記憶しておくためのデスティネー
ション・プレビアスデータ・レジスタ(DPD reg. )
6と、ANDゲート7,8、NOTゲート9,及びOR
ゲート10によって構成される。
【0018】シフトゲート3を構成する各セレクタ3
a,3b,3cは、それぞれ図2に示すように2つの入
力を2個のANDゲート31,32に各々入力させ、選
択信号を一方のANDゲート32には直接、他方のAN
Dゲート31にはNOTゲート34を介して反転させて
与えることにより、選択信号に応じていずれか一方の入
力を選択して、ORゲート33を介して出力するように
したゲート回路群を所要の出力ビット数分だけ組み合わ
せて構成される。
a,3b,3cは、それぞれ図2に示すように2つの入
力を2個のANDゲート31,32に各々入力させ、選
択信号を一方のANDゲート32には直接、他方のAN
Dゲート31にはNOTゲート34を介して反転させて
与えることにより、選択信号に応じていずれか一方の入
力を選択して、ORゲート33を介して出力するように
したゲート回路群を所要の出力ビット数分だけ組み合わ
せて構成される。
【0019】そして、いずれも選択信号が“1”のとき
は入力2を選択するのでシフトし、“0”のときは入力
1を選択するのでシフトしない。また、セレクタ3aは
4ビットのシフトを、セレクタ3bは2ビットのシフト
を、セレクタ3cは1ビットのシフトを選択信号が
“1”のときに行なえるように、ゲート回路群の個数と
その各入力の組み合わせを設定している。したがってこ
のシフトゲート3は、3重のセレクタ3a,3b,3c
を各選択信号により単独あるいは組み合わせてシフト動
作させることにより、0〜7ビットの任意のビット数の
シフトを、1クロックで各セレクタのゲート遅延時間だ
けで行なうことができる。
は入力2を選択するのでシフトし、“0”のときは入力
1を選択するのでシフトしない。また、セレクタ3aは
4ビットのシフトを、セレクタ3bは2ビットのシフト
を、セレクタ3cは1ビットのシフトを選択信号が
“1”のときに行なえるように、ゲート回路群の個数と
その各入力の組み合わせを設定している。したがってこ
のシフトゲート3は、3重のセレクタ3a,3b,3c
を各選択信号により単独あるいは組み合わせてシフト動
作させることにより、0〜7ビットの任意のビット数の
シフトを、1クロックで各セレクタのゲート遅延時間だ
けで行なうことができる。
【0020】この図1に示したDMA装置によるデータ
転送方法を、前述した従来例と同様に、図5に示した2
0dot×20dotの転送元エリア11のビットイメージデ
ータを、図6に示した20dot×20dotの転送先エリア
(デスティネーション・エリア)12に1行分転送する
場合の例で説明する。なお、全てのデータを転送するた
めには、アドレスを制御するレジスタを設けて、転送元
アドレスはアップカウントで、転送先アドレスは行毎に
定数を加算しながらアドレスを変化させて実行すればよ
い。
転送方法を、前述した従来例と同様に、図5に示した2
0dot×20dotの転送元エリア11のビットイメージデ
ータを、図6に示した20dot×20dotの転送先エリア
(デスティネーション・エリア)12に1行分転送する
場合の例で説明する。なお、全てのデータを転送するた
めには、アドレスを制御するレジスタを設けて、転送元
アドレスはアップカウントで、転送先アドレスは行毎に
定数を加算しながらアドレスを変化させて実行すればよ
い。
【0021】まず、初期設定としてプレビアスデータ・
レジスタ1に「00」を、マスクデータ・レジスタ5に
はマスクしないのでFF(H)(“11111111”)
を、コントロール・レジスタ4にシフト量(この場合は
2ビット)を入力しておく。そして、始めに転送元エリ
ア11(図5)のa番地のデータを読み出し(1リー
ド)、そのデータをカレントデータ・レジスタ2に入
れ、シフトゲート3におけるセレクタ3bの選択信号の
みを“1”にすることによって、2ビット右へシフトさ
せ(1クロック)、ANDゲート7及びORゲート10
を通して転送先エリア12のb番地に書き込む(1ライ
ト)。この操作では全てゲートのみを通ってデータを処
理するために、ゲート遅延時間だけで実行できる。
レジスタ1に「00」を、マスクデータ・レジスタ5に
はマスクしないのでFF(H)(“11111111”)
を、コントロール・レジスタ4にシフト量(この場合は
2ビット)を入力しておく。そして、始めに転送元エリ
ア11(図5)のa番地のデータを読み出し(1リー
ド)、そのデータをカレントデータ・レジスタ2に入
れ、シフトゲート3におけるセレクタ3bの選択信号の
みを“1”にすることによって、2ビット右へシフトさ
せ(1クロック)、ANDゲート7及びORゲート10
を通して転送先エリア12のb番地に書き込む(1ライ
ト)。この操作では全てゲートのみを通ってデータを処
理するために、ゲート遅延時間だけで実行できる。
【0022】次に、カレントデータ・レジスタ2に入っ
ていたデータをプレビアスデータ・レジスタ1に移動さ
せる(1クロック)。この動作は1クロックで終了す
る。そして、転送元エリア11のa+1番地のデータを
読み出して(1リード)カレントデータ・レジスタ2に
入力し、シフトゲート3によって前述と同様に2ビット
右へシフトさせ(1クロック)、ANDゲート7及びO
Rゲート10を通して転送先エリア12のb+1番地に
書き込む(1ライト)。
ていたデータをプレビアスデータ・レジスタ1に移動さ
せる(1クロック)。この動作は1クロックで終了す
る。そして、転送元エリア11のa+1番地のデータを
読み出して(1リード)カレントデータ・レジスタ2に
入力し、シフトゲート3によって前述と同様に2ビット
右へシフトさせ(1クロック)、ANDゲート7及びO
Rゲート10を通して転送先エリア12のb+1番地に
書き込む(1ライト)。
【0023】再び、カレントデータ・レジスタ2に入っ
ていたデータをプレビアスデータ・レジスタ1に移動さ
せた(1クロック)後、転送元エリア11のa+2番地
のデータを読み出して(1リード)カレントデータ・レ
ジスタ2に入力し、シフトゲート3によって前述と同様
に2ビット右へシフトさせる(1クロック)。
ていたデータをプレビアスデータ・レジスタ1に移動さ
せた(1クロック)後、転送元エリア11のa+2番地
のデータを読み出して(1リード)カレントデータ・レ
ジスタ2に入力し、シフトゲート3によって前述と同様
に2ビット右へシフトさせる(1クロック)。
【0024】これは転送境界のデータとなるので、マス
クデータ・レジスタを設定し(1ライト)、デスティネ
ーション・プレビアスデータ・レジスタ6に転送先エリ
アのb+2番地のデータを予め読み出して記憶させる
(1リード)。そして、シフトゲート3を通過した1バ
イトのデータを、ANDゲート7及びORゲート10を
通してマスク及びOR処理を行なって、転送先エリア1
2のb+2番地に書き込む(1ライト)。
クデータ・レジスタを設定し(1ライト)、デスティネ
ーション・プレビアスデータ・レジスタ6に転送先エリ
アのb+2番地のデータを予め読み出して記憶させる
(1リード)。そして、シフトゲート3を通過した1バ
イトのデータを、ANDゲート7及びORゲート10を
通してマスク及びOR処理を行なって、転送先エリア1
2のb+2番地に書き込む(1ライト)。
【0025】図5,図6に示す例では、下位2ビットの
データを書き変えないようにするため、“111111
00”をマスクデータ・レジスタ5に設定する。このマ
スクデータとシフトゲート3を通過した転送すべき1バ
イトのデータとをANDゲート7でアンドをとるので、
その下位2ビツトは必ず“00”になる。
データを書き変えないようにするため、“111111
00”をマスクデータ・レジスタ5に設定する。このマ
スクデータとシフトゲート3を通過した転送すべき1バ
イトのデータとをANDゲート7でアンドをとるので、
その下位2ビツトは必ず“00”になる。
【0026】一方、マスクデータ・レジスタ5のマスク
データをNOTゲート9で反転した“0000001
1”とデスティネーション・プレビアスデータ・レジス
タ6に記憶した転送先のb+2番地のデータとを、AN
Dゲート8でアンドをとるので、そのデータは下位2ビ
ットだけがそのまま残り、上位6ビットは全て“0”に
なる。このデータとANDゲート7を通過したデータと
のオアをORゲート10でとるので、転送先エリア12
のb+2番地に書き込むデータは、上位6ビットが転送
元のデータで、下位2ビットは転送先のb+2番地のエ
リア12外のデータが残る。
データをNOTゲート9で反転した“0000001
1”とデスティネーション・プレビアスデータ・レジス
タ6に記憶した転送先のb+2番地のデータとを、AN
Dゲート8でアンドをとるので、そのデータは下位2ビ
ットだけがそのまま残り、上位6ビットは全て“0”に
なる。このデータとANDゲート7を通過したデータと
のオアをORゲート10でとるので、転送先エリア12
のb+2番地に書き込むデータは、上位6ビットが転送
元のデータで、下位2ビットは転送先のb+2番地のエ
リア12外のデータが残る。
【0027】このように、この実施例によれば、現在転
送を行なっているデータとその1つ前のアドレスのデー
タとをそれぞれカレントデータ・レジスタ2とプレビア
スデータ・レジスタ1に記憶することにより、カレント
データ・レジスタ2からプレビアスデータ・レジスタ1
へデータを移すだけで、転送元エリア11の同じアドレ
スのデータを2回読み出さなくて済み、これらの両レジ
スタ1,2内のデータを連続して、シフトゲート3によ
って1クロックで所要ビット数だけシフトさせることが
できる。
送を行なっているデータとその1つ前のアドレスのデー
タとをそれぞれカレントデータ・レジスタ2とプレビア
スデータ・レジスタ1に記憶することにより、カレント
データ・レジスタ2からプレビアスデータ・レジスタ1
へデータを移すだけで、転送元エリア11の同じアドレ
スのデータを2回読み出さなくて済み、これらの両レジ
スタ1,2内のデータを連続して、シフトゲート3によ
って1クロックで所要ビット数だけシフトさせることが
できる。
【0028】また、転送境界においては、マスクデータ
・レジスタ5にマスクデータを設定し、転送先の書き込
むべき番地の1バイトのデータを予め読み出してデステ
ィネーション・プレビアスデータ・レジスタ6に記憶さ
せることにより、転送境界において必要なマスク操作及
びOR書き込み操作も高速で実行できる。したがって、
上記の例では1行のデータ転送につき、4リード,4ラ
イト,5クロックの所要時間で済み、図7で説明した従
来例の場合の8リード,4ライト,6クロック(nビッ
トのシフトを行なう場合:3nクロック)に比べて速い
ことが明らかである。
・レジスタ5にマスクデータを設定し、転送先の書き込
むべき番地の1バイトのデータを予め読み出してデステ
ィネーション・プレビアスデータ・レジスタ6に記憶さ
せることにより、転送境界において必要なマスク操作及
びOR書き込み操作も高速で実行できる。したがって、
上記の例では1行のデータ転送につき、4リード,4ラ
イト,5クロックの所要時間で済み、図7で説明した従
来例の場合の8リード,4ライト,6クロック(nビッ
トのシフトを行なう場合:3nクロック)に比べて速い
ことが明らかである。
【0029】図3はこの発明によるDMA装置を備えた
レーザプリンタのブロック構成図である。このレーザプ
リンタは、プリンタコントローラ20と、このプリンタ
コントローラ20からビデオデータを受けて印字を行な
うエンジン19と、操作パネル18とからなる。17は
このプリンタの上位装置であるホスト装置である。
レーザプリンタのブロック構成図である。このレーザプ
リンタは、プリンタコントローラ20と、このプリンタ
コントローラ20からビデオデータを受けて印字を行な
うエンジン19と、操作パネル18とからなる。17は
このプリンタの上位装置であるホスト装置である。
【0030】プリンタコントローラ20は、ホスト装置
17から画像データを受信すると、操作パネル18又は
ホスト装置17からのコマンドにより選択されたエミュ
レーションに従って、受信した画像データをイメージデ
ータ(図形又は文字列等)に変換してメモリに一時格納
する。その後、そのイメージデータを順次呼出し、ビデ
オデータとしてエンジン19に送出して印字動作を行な
わせる。
17から画像データを受信すると、操作パネル18又は
ホスト装置17からのコマンドにより選択されたエミュ
レーションに従って、受信した画像データをイメージデ
ータ(図形又は文字列等)に変換してメモリに一時格納
する。その後、そのイメージデータを順次呼出し、ビデ
オデータとしてエンジン19に送出して印字動作を行な
わせる。
【0031】このプリンタコントローラ20は、CPU
21,プログラムROM22,フォントROM23,R
AM24,及びDMA装置25と、ホストインタフェー
ス(以下インタフェースをI/Fと略称する)26,パ
ネルI/F27,及びエンジンI/F28の各I/Fか
ら構成されている。
21,プログラムROM22,フォントROM23,R
AM24,及びDMA装置25と、ホストインタフェー
ス(以下インタフェースをI/Fと略称する)26,パ
ネルI/F27,及びエンジンI/F28の各I/Fか
ら構成されている。
【0032】CPU21は、プログラムROM22のプ
ログラムと操作パネル18からのモード指示、及びホス
ト装置(ホストマシン)17からのコマンドによってプ
リンタコントローラ20全体を制御する中央処理装置で
ある。プログラムROM22は、このプリンタコントロ
ーラ20の制御プログラムを格納しているリードオンリ
・メモリ、フォントROM23は、印刷に必要な文字等
のフォントのパターンデータを記憶したリードオンリ・
メモリである。
ログラムと操作パネル18からのモード指示、及びホス
ト装置(ホストマシン)17からのコマンドによってプ
リンタコントローラ20全体を制御する中央処理装置で
ある。プログラムROM22は、このプリンタコントロ
ーラ20の制御プログラムを格納しているリードオンリ
・メモリ、フォントROM23は、印刷に必要な文字等
のフォントのパターンデータを記憶したリードオンリ・
メモリである。
【0033】RAM24は、CPU21が使用するワー
クメモリ,入力データを蓄積するインプットバッファ,
ページデータ作成用のページバッファ,イメージデータ
作成用のビットマップメモリ,ダウンロードフォント用
のメモリ等に使用するランダムアクセス・メモリであ
る。
クメモリ,入力データを蓄積するインプットバッファ,
ページデータ作成用のページバッファ,イメージデータ
作成用のビットマップメモリ,ダウンロードフォント用
のメモリ等に使用するランダムアクセス・メモリであ
る。
【0034】DMA装置25は、フォントROM23と
RAM24とを直接アクセスして、フォントROM23
から印字すべき文字のフォントのビットイメージデータ
をRAM24のスキャンバッファ領域に転送し、文字の
ビットイメージを展開する高速データ転送装置であり、
この発明に係るものである。
RAM24とを直接アクセスして、フォントROM23
から印字すべき文字のフォントのビットイメージデータ
をRAM24のスキャンバッファ領域に転送し、文字の
ビットイメージを展開する高速データ転送装置であり、
この発明に係るものである。
【0035】エンジンI/F28は、実際に印字を行な
うエンジン19とコマンド及びステータスや印字データ
の通信を行なうためのインタフェース、パネルI/F2
7は、使用者に現在のプリンタの状態を知らせたりモー
ド指示を行なったりする操作パネル18と、コマンドや
ステータスの通信を行なうインタフェースである。ホス
トI/F26は、ホスト装置17と通信を行なうインタ
フェースであり、通常はセントロニクスI/FやRS2
32Cが使用される。
うエンジン19とコマンド及びステータスや印字データ
の通信を行なうためのインタフェース、パネルI/F2
7は、使用者に現在のプリンタの状態を知らせたりモー
ド指示を行なったりする操作パネル18と、コマンドや
ステータスの通信を行なうインタフェースである。ホス
トI/F26は、ホスト装置17と通信を行なうインタ
フェースであり、通常はセントロニクスI/FやRS2
32Cが使用される。
【0036】図4にDMA装置の構成例を示すが、デー
タバス・バッファ251,リード・ライト・ロジック2
52,制御ロジック253,及びバッファ254がバス
ライン255で接続されて構成されている。そして、制
御ロジック253内に、モードセット・レジスタ等を有
すると共に、図1に示したこの発明により追加した各種
レジスタ、すにわちプレビアスデータ・レジスタ1,カ
レントデータ・レジスタ2,コントロール・レジスタ
4,マスクデータ・レジスタ5,デスティネーション・
プレビアスデータ・レジスタ6と、各種ゲート、すなわ
ちシフトゲート3,ANDゲート7,8,NOTゲート
9,及びORゲート10を設けている。
タバス・バッファ251,リード・ライト・ロジック2
52,制御ロジック253,及びバッファ254がバス
ライン255で接続されて構成されている。そして、制
御ロジック253内に、モードセット・レジスタ等を有
すると共に、図1に示したこの発明により追加した各種
レジスタ、すにわちプレビアスデータ・レジスタ1,カ
レントデータ・レジスタ2,コントロール・レジスタ
4,マスクデータ・レジスタ5,デスティネーション・
プレビアスデータ・レジスタ6と、各種ゲート、すなわ
ちシフトゲート3,ANDゲート7,8,NOTゲート
9,及びORゲート10を設けている。
【0037】
【発明の効果】以上説明してきたように、この発明のD
MA装置及びそのデータ転送方法によれば、転送元エリ
アから転送先エリアへ1バイトずつデータを転送する際
に、同じ番地のデータを2回読み出す必要がなくなり、
読み出したデータのシフトもそのシフトビット数に係わ
らず最短時間で行なうことができ、転送境界において必
要なマスク及びOR書き込みの処理も高速で行なえるの
で、従来よりも高速でデータ転送することができる。
MA装置及びそのデータ転送方法によれば、転送元エリ
アから転送先エリアへ1バイトずつデータを転送する際
に、同じ番地のデータを2回読み出す必要がなくなり、
読み出したデータのシフトもそのシフトビット数に係わ
らず最短時間で行なうことができ、転送境界において必
要なマスク及びOR書き込みの処理も高速で行なえるの
で、従来よりも高速でデータ転送することができる。
【図1】この発明によるDMA装置の要部構成例を示す
ブロック図である。
ブロック図である。
【図2】図1におけるセレクタの構成単位となるゲート
回路群の論理回路図である。
回路群の論理回路図である。
【図3】この発明によるDMA装置を備えたレーザプリ
ンタのブロック構成図である。
ンタのブロック構成図である。
【図4】図3におけるDMA装置の構成例を示すブロッ
ク図である。
ク図である。
【図5】DMA装置によるデータ転送例を説明するため
のROM内の転送元エリアの一例を示す説明図である。
のROM内の転送元エリアの一例を示す説明図である。
【図6】同じくRAM内の転送先エリアの一例を示す説
明図である。
明図である。
【図7】従来のDMA装置により1行(20ドット)の
データを転送する場合の手順の例を示す説明図である。
データを転送する場合の手順の例を示す説明図である。
1 プレビアスデータ・レジスタ 2 カレントデー
タ・レジスタ 3 シフトゲート 4 コントロール
・レジスタ 5 マスクデータ・レジスタ 6 デスティネーション・プレビアスデータ・レジスタ 7,8 ANDゲート 9 NOTゲート
10 ORゲート 11 転送元エリア 12 転送先エリア(デスティ
ネーション・エリア) 20 プリンタコントローラ 23 フォントR
OM 24 RAM 25 DMA装置 2
53 制御ロジック
タ・レジスタ 3 シフトゲート 4 コントロール
・レジスタ 5 マスクデータ・レジスタ 6 デスティネーション・プレビアスデータ・レジスタ 7,8 ANDゲート 9 NOTゲート
10 ORゲート 11 転送元エリア 12 転送先エリア(デスティ
ネーション・エリア) 20 プリンタコントローラ 23 フォントR
OM 24 RAM 25 DMA装置 2
53 制御ロジック
Claims (2)
- 【請求項1】 フォントのビットイメージを記憶してい
るメモリと印字されるべきドットパターンを記憶するた
めのメモリとを直接アクセスし、前記ビットイメージの
データをバイト単位で転送して前記ドットパターンを記
憶するためのメモリの所定領域に文字のビットイメージ
を展開するダイレクト・メモリ・アクセス装置であっ
て、 現在転送を行なっているデータを記憶するカレントデー
タ・レジスタと、該データの1つ前のアドレスのデータ
を記憶するプレビアスデータ・レジスタと、これらの両
レジスタ内のデータを連続して0〜7ビットの間の任意
のビット数だけシフトさせるセレクタを複数段重ねて構
成したシフトゲートと、転送境界においてデータのマス
クを行なうためのマスクデータ・レジスタと、予め読み
出した転送先データを保存するためのレジスタとを備え
たことを特徴とするダイレクト・メモリ・アクセス装
置。 - 【請求項2】 フォントのビットイメージを記憶してい
るメモリと印字されるべきドットパターンを記憶するた
めのメモリとを直接アクセスし、前記ビットイメージの
データをバイト単位で転送して前記ドットパターンを記
憶するためのメモリの所定領域に文字のビットイメージ
を展開するダイレクト・メモリ・アクセス装置によるデ
ータ転送方法であって、 現在転送を行なっているデータと該データの1つ前のア
ドレスのデータとをそれぞれレジスタに記憶させ、その
両レジスタ内のデータをセレクタを複数段重ねて構成し
たシフトゲートによって所要のビット数だけシフトさ
せ、その1バイトのデータを転送先に転送し、 転送境界においては、予めレジスタに記憶させたマスク
データによって前記シフトさせた1バイトのデータの一
部をマスクし、予め転送先から読み出してレジスタに保
存した1バイトのデータとオアをとって前記転送先に書
き込むことを特徴とするデータ転送方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26950891A JPH05108544A (ja) | 1991-10-17 | 1991-10-17 | ダイレクト・メモリ・アクセス装置及びそのデータ転送方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26950891A JPH05108544A (ja) | 1991-10-17 | 1991-10-17 | ダイレクト・メモリ・アクセス装置及びそのデータ転送方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05108544A true JPH05108544A (ja) | 1993-04-30 |
Family
ID=17473398
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP26950891A Pending JPH05108544A (ja) | 1991-10-17 | 1991-10-17 | ダイレクト・メモリ・アクセス装置及びそのデータ転送方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05108544A (ja) |
-
1991
- 1991-10-17 JP JP26950891A patent/JPH05108544A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0378651B2 (ja) | ||
| JPH05108544A (ja) | ダイレクト・メモリ・アクセス装置及びそのデータ転送方法 | |
| JPH0628022B2 (ja) | 文字図形出力装置 | |
| JPS6057593B2 (ja) | 文字パタ−ン処理方式 | |
| JP2617252B2 (ja) | プリンタ | |
| JP2854301B2 (ja) | メモリアクセス回路 | |
| JP2898000B2 (ja) | 文字データ展開処理装置 | |
| US6014225A (en) | Frame buffer control method and circuit | |
| JP2771350B2 (ja) | 画像処理装置 | |
| JP2808105B2 (ja) | フオント描画装置 | |
| JPS61149365A (ja) | デ−タ制御装置 | |
| JP3039554B2 (ja) | メモリアクセス回路及び出力装置 | |
| JPH04265767A (ja) | 文字展開制御方式 | |
| JPS62138971A (ja) | デ−タ処理装置 | |
| JPH0426137B2 (ja) | ||
| JPS59139432A (ja) | イメージメモリへのパターン展開装置 | |
| JPS6383824A (ja) | プリンタ制御装置 | |
| JPH01106281A (ja) | 画像データ処理装置 | |
| JPH0457197B2 (ja) | ||
| JPS62191919A (ja) | デ−タ処理装置 | |
| JPS60178072A (ja) | 電子機器 | |
| JPH0195063A (ja) | 出力データ回転方式 | |
| JPS6218275A (ja) | 印字制御装置 | |
| JPH08324033A (ja) | ラインプリンタおよびラインプリンタを備えるコンピュータシステムおよびラインプリンタの制御方法 | |
| JPH0784076B2 (ja) | 印字データ制御回路 |