JPH09305530A - Dmaコントローラ - Google Patents
DmaコントローラInfo
- Publication number
- JPH09305530A JPH09305530A JP12203296A JP12203296A JPH09305530A JP H09305530 A JPH09305530 A JP H09305530A JP 12203296 A JP12203296 A JP 12203296A JP 12203296 A JP12203296 A JP 12203296A JP H09305530 A JPH09305530 A JP H09305530A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cpu
- input
- array
- address
- 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
- 238000003491 array Methods 0.000 abstract description 2
- 230000008859 change Effects 0.000 description 30
- 238000000034 method Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- RRLHMJHRFMHVNM-BQVXCWBNSA-N [(2s,3r,6r)-6-[5-[5-hydroxy-3-(4-hydroxyphenyl)-4-oxochromen-7-yl]oxypentoxy]-2-methyl-3,6-dihydro-2h-pyran-3-yl] acetate Chemical compound C1=C[C@@H](OC(C)=O)[C@H](C)O[C@H]1OCCCCCOC1=CC(O)=C2C(=O)C(C=3C=CC(O)=CC=3)=COC2=C1 RRLHMJHRFMHVNM-BQVXCWBNSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【課題】 データ配列の異なるCPUに基づいて設計さ
れた入出力装置で処理されるデータを、それとは異なる
種類のCPUによって正しく処理することが可能なDM
Aコントローラを提供する。 【解決手段】 DMAコントローラ6は、自己のシステ
ムのインテル系CPU1と異なる方式のモトローラ系C
PUに対して設計された入出力装置(読取装置7、パソ
コン13など)との間でデータ転送を行う場合、当該入
出力装置から供給されるデータ、若しくは、メモリから
当該入出力装置に供給されるデータの配列を変更する配
列変更回路9を有する。配列変更回路9は、ワード転送
の際に、当該データの上位バイトと下位バイトを入れ換
える。また、バイト転送の際には、EXOR回路15を
介してアドレスを指定することによりデータを書き込
み、又は、読み出すメモリ上のアドレス奇数アドレスと
偶数アドレスとで入れ替えてデータ転送を行わせる。
れた入出力装置で処理されるデータを、それとは異なる
種類のCPUによって正しく処理することが可能なDM
Aコントローラを提供する。 【解決手段】 DMAコントローラ6は、自己のシステ
ムのインテル系CPU1と異なる方式のモトローラ系C
PUに対して設計された入出力装置(読取装置7、パソ
コン13など)との間でデータ転送を行う場合、当該入
出力装置から供給されるデータ、若しくは、メモリから
当該入出力装置に供給されるデータの配列を変更する配
列変更回路9を有する。配列変更回路9は、ワード転送
の際に、当該データの上位バイトと下位バイトを入れ換
える。また、バイト転送の際には、EXOR回路15を
介してアドレスを指定することによりデータを書き込
み、又は、読み出すメモリ上のアドレス奇数アドレスと
偶数アドレスとで入れ替えてデータ転送を行わせる。
Description
【0001】
【発明の属する技術分野】本発明は、DMA(ダイレク
トメモリアクセス)コントローラに関する。
トメモリアクセス)コントローラに関する。
【0002】
【従来の技術】CPUを含む制御ユニットとこれに接続
された入出力装置との間で高速にデータ転送を行う方式
としてDMA方式が知られている。通常の入出力制御
(いわゆるプログラム制御)では、入出力プログラムに
従ってCPUと入出力装置との間でデータの転送を行
う。従って、例えば磁気ディスクのように高速に大量の
データを転送する能力のある装置との間で入出力を行う
場合には、転送に時間を要するとともにデータの転送中
はCPUが転送処理にかかりきりになり、CPUの利用
効率が悪い。DMA方式では、CPUによる制御は入出
力の開始と終了のときのみとし、一度データの転送が開
始されればその後はCPUに関係なく、メモリと入出力
装置との間で直接データ転送を行う。
された入出力装置との間で高速にデータ転送を行う方式
としてDMA方式が知られている。通常の入出力制御
(いわゆるプログラム制御)では、入出力プログラムに
従ってCPUと入出力装置との間でデータの転送を行
う。従って、例えば磁気ディスクのように高速に大量の
データを転送する能力のある装置との間で入出力を行う
場合には、転送に時間を要するとともにデータの転送中
はCPUが転送処理にかかりきりになり、CPUの利用
効率が悪い。DMA方式では、CPUによる制御は入出
力の開始と終了のときのみとし、一度データの転送が開
始されればその後はCPUに関係なく、メモリと入出力
装置との間で直接データ転送を行う。
【0003】DMA方式においてはDMAコントローラ
が使用される。DMAコントローラはCPUに代わって
入出力のデータ転送を制御する回路である。DMAコン
トローラは通常複数のチャンネルを有しており、各チャ
ンネル毎に入出力装置と接続される。DMAコントロー
ラとCPUとはバスを共有しており、DMAコントロー
ラが起動された状態にて入出力装置の制御回路からDM
Aコントローラを介してDMA処理のためのバス開放要
求が出されると、CPUは実行中の処理が終了した時点
でバスを開放し、バスの使用権をDMAコントローラに
与える。これに応答して、DMAコントローラがバスを
使用して入出力装置との間でデータの転送を行う。一回
のDMA要求により実行されるデータ転送の時間(以
下、「DMAサイクル」という。)は決まっており、入
出力装置は、目的のバイト数のデータ転送処理が完了す
るまで、繰り返しDMA処理のためのバス開放要求を出
力する。DMAコントローラにより単位DMAサイクル
のデータ転送処理が終了すると、DMAコントローラは
バスの使用権をCPUに戻し、CPUはバスを使用して
処理を再開する。DMA処理のためのバス開放要求があ
る周期で連続的に出力されている場合には、それらに対
するDMA処理を継続的に行うことになる。
が使用される。DMAコントローラはCPUに代わって
入出力のデータ転送を制御する回路である。DMAコン
トローラは通常複数のチャンネルを有しており、各チャ
ンネル毎に入出力装置と接続される。DMAコントロー
ラとCPUとはバスを共有しており、DMAコントロー
ラが起動された状態にて入出力装置の制御回路からDM
Aコントローラを介してDMA処理のためのバス開放要
求が出されると、CPUは実行中の処理が終了した時点
でバスを開放し、バスの使用権をDMAコントローラに
与える。これに応答して、DMAコントローラがバスを
使用して入出力装置との間でデータの転送を行う。一回
のDMA要求により実行されるデータ転送の時間(以
下、「DMAサイクル」という。)は決まっており、入
出力装置は、目的のバイト数のデータ転送処理が完了す
るまで、繰り返しDMA処理のためのバス開放要求を出
力する。DMAコントローラにより単位DMAサイクル
のデータ転送処理が終了すると、DMAコントローラは
バスの使用権をCPUに戻し、CPUはバスを使用して
処理を再開する。DMA処理のためのバス開放要求があ
る周期で連続的に出力されている場合には、それらに対
するDMA処理を継続的に行うことになる。
【0004】
【発明が解決しようとする課題】DMA処理によりメモ
リに書き込まれたデータは、CPUによる演算、データ
の加工等に供される。この場合、CPUは、メモリ内の
データをCPU内部のレジスタに読み込み、所定の演算
等を施し、その結果を再びメモリに出力する。このよう
にして得られたデータは、メモリから読み出され、入出
力装置等の他の構成部分へ供給される。現在、16ビッ
トのプロセッサとしては開発メーカー等に依存する複数
のタイプのものが汎用されているが、タイプの違うCP
Uではデータの処理動作等に相違がある。例えば、イン
テル系のプロセッサとモトローラ系のプロセッサでは、
メモリに記憶されたデータに演算を施すために内部レジ
スタにデータを読み込む場合、データの配列が異なって
しまうという問題がある。16ビットプロセッサでは、
ワード(即ち、2バイト)単位でデータを扱う場合とバ
イト単位で扱う場合があるが、インテル系のプロセッサ
とモトローラ系のプロセッサでは上位1バイトと下位1
バイトの配列が逆になってしまう。
リに書き込まれたデータは、CPUによる演算、データ
の加工等に供される。この場合、CPUは、メモリ内の
データをCPU内部のレジスタに読み込み、所定の演算
等を施し、その結果を再びメモリに出力する。このよう
にして得られたデータは、メモリから読み出され、入出
力装置等の他の構成部分へ供給される。現在、16ビッ
トのプロセッサとしては開発メーカー等に依存する複数
のタイプのものが汎用されているが、タイプの違うCP
Uではデータの処理動作等に相違がある。例えば、イン
テル系のプロセッサとモトローラ系のプロセッサでは、
メモリに記憶されたデータに演算を施すために内部レジ
スタにデータを読み込む場合、データの配列が異なって
しまうという問題がある。16ビットプロセッサでは、
ワード(即ち、2バイト)単位でデータを扱う場合とバ
イト単位で扱う場合があるが、インテル系のプロセッサ
とモトローラ系のプロセッサでは上位1バイトと下位1
バイトの配列が逆になってしまう。
【0005】これをより具体的に説明する。例えば、図
3に示すような16ビットの信号がシステムに入力され
たとする。この信号はシリアル/パラレル変換され、メ
モリ(RAM)内に図4(A)のような配列で記憶され
る。なお、図4(A)に示す「n番地」、「n+2番
地」「n+4番地」、...の表示は、ワード(16ビ
ット)単位でデータを取り扱う場合に、プログラム上で
指定するためのデータ格納アドレスを示すものであっ
て、通常、下位バイト(偶数アドレス、A0=0)の番
地を指定することにより、上位バイト(奇数アドレス、
A0=1)のデータとともに、ワード単位でデータの書
き込み或いは読み出しが実行される。例えば、プログラ
ム上で「n番地」を指定したワード単位の命令が実行さ
れる場合には、「n番地(偶数番地)」と「n+1番地
(奇数番地)」とを対象として、計16ビットのデータ
の書き込み或いは読み出しが同時に実行される。従っ
て、データの書き込み或いは読み出しをワード単位で連
続的に行う場合には、「n番地」、「n+2番地」とい
うように、指定アドレスが2番地ずつ加算されていくこ
とになる。ここで、例えば、モトローラ系のCPUによ
りRAM内のデータを処理する場合、データはそのまま
の配列でCPU内のレジスタに取り込まれる。しかし、
インテル系のCPUによりRAM内のデータを演算する
場合、RAM内のデータの上位バイトと下位バイトが入
れ替えられた形でCPU内のレジスタに取り込みが行わ
れる(図4(B)参照)。従って、図3のような配列で
供給されたデータをインテル系のCPUで演算する場合
には、上位バイトと下位バイトが入れ替わったデータを
演算することになり、正しい演算が行えない。
3に示すような16ビットの信号がシステムに入力され
たとする。この信号はシリアル/パラレル変換され、メ
モリ(RAM)内に図4(A)のような配列で記憶され
る。なお、図4(A)に示す「n番地」、「n+2番
地」「n+4番地」、...の表示は、ワード(16ビ
ット)単位でデータを取り扱う場合に、プログラム上で
指定するためのデータ格納アドレスを示すものであっ
て、通常、下位バイト(偶数アドレス、A0=0)の番
地を指定することにより、上位バイト(奇数アドレス、
A0=1)のデータとともに、ワード単位でデータの書
き込み或いは読み出しが実行される。例えば、プログラ
ム上で「n番地」を指定したワード単位の命令が実行さ
れる場合には、「n番地(偶数番地)」と「n+1番地
(奇数番地)」とを対象として、計16ビットのデータ
の書き込み或いは読み出しが同時に実行される。従っ
て、データの書き込み或いは読み出しをワード単位で連
続的に行う場合には、「n番地」、「n+2番地」とい
うように、指定アドレスが2番地ずつ加算されていくこ
とになる。ここで、例えば、モトローラ系のCPUによ
りRAM内のデータを処理する場合、データはそのまま
の配列でCPU内のレジスタに取り込まれる。しかし、
インテル系のCPUによりRAM内のデータを演算する
場合、RAM内のデータの上位バイトと下位バイトが入
れ替えられた形でCPU内のレジスタに取り込みが行わ
れる(図4(B)参照)。従って、図3のような配列で
供給されたデータをインテル系のCPUで演算する場合
には、上位バイトと下位バイトが入れ替わったデータを
演算することになり、正しい演算が行えない。
【0006】このような観点から、通常、システムは使
用するCPUの方式に応じたデータ配列でデータを取り
扱うように設計される。実際には、モトローラ系のCP
Uを使用する場合にはデータは図4(A)のような配列
でRAM内に供給されるようにシステムが設計され、イ
ンテル系のCPUを使用する場合にはデータは図4
(A)と上位、下位バイトが逆になるような配列でRA
Mに供給されるようにシステムが設計される。
用するCPUの方式に応じたデータ配列でデータを取り
扱うように設計される。実際には、モトローラ系のCP
Uを使用する場合にはデータは図4(A)のような配列
でRAM内に供給されるようにシステムが設計され、イ
ンテル系のCPUを使用する場合にはデータは図4
(A)と上位、下位バイトが逆になるような配列でRA
Mに供給されるようにシステムが設計される。
【0007】しかし、場合によっては、異なるCPUを
使用するように設計されていた複数のシステムを一体化
して、1つのCPUの管理下で両方のシステムの機能を
実現できるようにしたいという要求がある。このような
場合、一方の方式のCPUの動作に適合するように他方
のシステムを設計し直し、ソフトウェアを作り直すこと
は時間とコストを要する。従って、可能な限り既存のシ
ステムの根本的な設計変更をせずに、複数のシステムを
一体化できることが望まれる。具体的には、インテル系
のCPUについて設計されたシステムとモトローラ系の
CPUについて設計されたシステムを一体化し、インテ
ル系のCPU1つで全体を制御したいという場合があ
る。この場合、モトローラ系のCPUについて設計され
ているシステムで処理されるデータをそのままインテル
系のCPUで処理しようとすると、前述のようにCPU
内へのデータの読み込みの際などにデータの配列が相違
するため、目的の演算、処理等を行うことができないと
いう不具合が生じる。
使用するように設計されていた複数のシステムを一体化
して、1つのCPUの管理下で両方のシステムの機能を
実現できるようにしたいという要求がある。このような
場合、一方の方式のCPUの動作に適合するように他方
のシステムを設計し直し、ソフトウェアを作り直すこと
は時間とコストを要する。従って、可能な限り既存のシ
ステムの根本的な設計変更をせずに、複数のシステムを
一体化できることが望まれる。具体的には、インテル系
のCPUについて設計されたシステムとモトローラ系の
CPUについて設計されたシステムを一体化し、インテ
ル系のCPU1つで全体を制御したいという場合があ
る。この場合、モトローラ系のCPUについて設計され
ているシステムで処理されるデータをそのままインテル
系のCPUで処理しようとすると、前述のようにCPU
内へのデータの読み込みの際などにデータの配列が相違
するため、目的の演算、処理等を行うことができないと
いう不具合が生じる。
【0008】本発明は、以上の点に鑑みてなされたもの
であり、データ配列の異なるCPUに基づいて設計され
たシステムで処理されるデータを、それとは異なる種類
のCPUによって正しく処理することが可能なDMAコ
ントローラを提供することを課題とする。
であり、データ配列の異なるCPUに基づいて設計され
たシステムで処理されるデータを、それとは異なる種類
のCPUによって正しく処理することが可能なDMAコ
ントローラを提供することを課題とする。
【0009】
【課題を解決するための手段】上記の課題を解決するた
め、請求項1記載の発明は、CPU及びメモリを含む制
御部と入出力部との間でデータ転送を行うDMAコント
ローラにおいて、前記入出力部から出力されるデータを
前記メモリに転送し、前記メモリから読み出されたデー
タを前記入出力部へ転送する転送回路を有し、前記転送
回路は、前記入出力部又は前記メモリから出力されたデ
ータの配列を変更する配列変更回路を有するように構成
する。
め、請求項1記載の発明は、CPU及びメモリを含む制
御部と入出力部との間でデータ転送を行うDMAコント
ローラにおいて、前記入出力部から出力されるデータを
前記メモリに転送し、前記メモリから読み出されたデー
タを前記入出力部へ転送する転送回路を有し、前記転送
回路は、前記入出力部又は前記メモリから出力されたデ
ータの配列を変更する配列変更回路を有するように構成
する。
【0010】上記のように構成されたDMAコントロー
ラによれば、配列変更回路は転送すべきデータの配列を
変更して転送する。また、請求項2記載の発明によれ
ば、請求項1記載のDMAコントローラにおいて、前記
配列変更回路は、前記入出力部又は前記メモリから出力
されたデータの上位数ビットと下位数ビットを入れ換え
るように構成する。
ラによれば、配列変更回路は転送すべきデータの配列を
変更して転送する。また、請求項2記載の発明によれ
ば、請求項1記載のDMAコントローラにおいて、前記
配列変更回路は、前記入出力部又は前記メモリから出力
されたデータの上位数ビットと下位数ビットを入れ換え
るように構成する。
【0011】上記のように構成された配列変更回路によ
れば、入出力部又はメモリから出力されたデータは、配
列変更回路により、上位数ビットと下位数ビットが入れ
替えられて転送される。
れば、入出力部又はメモリから出力されたデータは、配
列変更回路により、上位数ビットと下位数ビットが入れ
替えられて転送される。
【0012】また、請求項3記載の発明は、請求項2記
載のDMAコントローラにおいて、前記配列変更回路
は、前記CPUから出力される指定信号に基づいて、入
力されるデータ又は前記入力されるデータの上位数ビッ
トと下位数ビットを入れ換えたデータのいずれか一方を
選択的に出力する選択回路であるように構成する。
載のDMAコントローラにおいて、前記配列変更回路
は、前記CPUから出力される指定信号に基づいて、入
力されるデータ又は前記入力されるデータの上位数ビッ
トと下位数ビットを入れ換えたデータのいずれか一方を
選択的に出力する選択回路であるように構成する。
【0013】上記のように構成されたDMAコントロー
ラによれば、選択回路はCPUからの指定信号に基づい
て、配列変換回路に入力されるデータのそのままのデー
タと上位数ビットと下位数ビットを入れ換えたデータの
いずれか一方を選択的に出力する。
ラによれば、選択回路はCPUからの指定信号に基づい
て、配列変換回路に入力されるデータのそのままのデー
タと上位数ビットと下位数ビットを入れ換えたデータの
いずれか一方を選択的に出力する。
【0014】また、請求項4記載の発明は、請求項1記
載のDMAコントローラにおいて、前記配列変更回路
は、前記データをメモリに書き込むアドレス又は前記メ
モリから前記データを読み出すアドレスを変更するよう
に構成する。
載のDMAコントローラにおいて、前記配列変更回路
は、前記データをメモリに書き込むアドレス又は前記メ
モリから前記データを読み出すアドレスを変更するよう
に構成する。
【0015】上記のように構成されたDMAコントロー
ラによれば、データの転送の際、前記データをメモリに
書き込むアドレス又は前記メモリから前記データを読み
出すアドレスが変更される。
ラによれば、データの転送の際、前記データをメモリに
書き込むアドレス又は前記メモリから前記データを読み
出すアドレスが変更される。
【0016】また、請求項5記載の発明は、請求項4記
載のDMAコントローラにおいて、前記配列変更回路
は、前記CPUから出力される指定信号に基づいて、前
記メモリに供給されるアドレス信号の最下位ビットを反
転させる回路であるように構成する。
載のDMAコントローラにおいて、前記配列変更回路
は、前記CPUから出力される指定信号に基づいて、前
記メモリに供給されるアドレス信号の最下位ビットを反
転させる回路であるように構成する。
【0017】上記のように構成されたDMAコントロー
ラによれば、データ転送の際、CPUから出力される指
定信号に基づいて、前記メモリに供給されるアドレス信
号の最下位ビットが反転される。
ラによれば、データ転送の際、CPUから出力される指
定信号に基づいて、前記メモリに供給されるアドレス信
号の最下位ビットが反転される。
【0018】また、請求項6記載の発明は、請求項1乃
至5のいずれかに記載のDMAコントローラにおいて、
前記CPUは、メモリからCPU内部のレジスタにワー
ド単位でデータを取り込む場合に、上位バイトと下位バ
イトの配列が入れ替わって取り込まれる方式のものであ
るように構成する。
至5のいずれかに記載のDMAコントローラにおいて、
前記CPUは、メモリからCPU内部のレジスタにワー
ド単位でデータを取り込む場合に、上位バイトと下位バ
イトの配列が入れ替わって取り込まれる方式のものであ
るように構成する。
【0019】上記のように構成されたDMAコントロー
ラによれば、メモリからCPU内部のレジスタにワード
単位でデータを取り込む場合に、上位バイトと下位バイ
トの配列が入れ替わって取り込まれる場合であっても、
配列変更回路により上位バイトと下位バイトのデータ配
列が変更される。
ラによれば、メモリからCPU内部のレジスタにワード
単位でデータを取り込む場合に、上位バイトと下位バイ
トの配列が入れ替わって取り込まれる場合であっても、
配列変更回路により上位バイトと下位バイトのデータ配
列が変更される。
【0020】
【発明の実施の形態】以下、図面を参照して本発明の好
適な実施の形態について説明する。図1は、本発明の実
施形態にかかるDMAコントローラを適用したファクシ
ミリ装置の制御部の構成、及び、その入出力装置との関
係の構成を示すブロック図である。なお、図1におい
て、CPU1は、インテル系のプロセッサとし、記録装
置8の制御系はインテル系のCPUのデータ処理方式に
対応して設計されているものとする。また、読取装置7
及びパソコン13の制御系はモトローラ系のCPUのデ
ータ処理方式に対応して設計されているものとする。
適な実施の形態について説明する。図1は、本発明の実
施形態にかかるDMAコントローラを適用したファクシ
ミリ装置の制御部の構成、及び、その入出力装置との関
係の構成を示すブロック図である。なお、図1におい
て、CPU1は、インテル系のプロセッサとし、記録装
置8の制御系はインテル系のCPUのデータ処理方式に
対応して設計されているものとする。また、読取装置7
及びパソコン13の制御系はモトローラ系のCPUのデ
ータ処理方式に対応して設計されているものとする。
【0021】図1に示すように、ファクシミリ装置の制
御部100は、バス4に接続されたCPU1、ROM
2、RAM3、モデム5及びDMAコントローラ6を備
える。DMAコントローラ6が起動状態にあるとき、R
AM3はアドレスカウンタ14を始めとしてEXOR
(排他的論理和)回路15及びラッチ回路16からなる
アドレス制御部によって番地が指定される。DMAコン
トローラ6は、アドレスカウンタ14等からなるアドレ
ス制御部の他に、転送サイクルを設定し、且つカウント
するためのサイクルカウンタ制御部、或いは、DMA起
動状態にあるとき、I/O(入出力)制御部18からの
データ転送要求に基づいてDMA処理を実行するべく、
CPU1に対してバスの開放要求(BUS REQUEST )を出
したりするタイミング制御部が設けられるとともに、本
実施形態においては、図2に示される配列変更回路9が
設けられている。DMAコントローラ6の配列変更回路
9は、I/O制御部18に設けられたレジスタ10、シ
リアル/パラレル変換器11を介して読取装置7と接続
され、また、レジスタ12、パラレル/シリアル変換器
19を介してパソコン13と接続されるとともに、レジ
スタ20を介して記録装置8に接続されている。なお、
I/O制御部18は、この他の入力装置のためのレジス
タが備えられているが、ここではその説明は省略する。
配列変更回路9は、CPU1から出力される配列変更指
示データD2 をラッチするラッチ回路17と接続されて
いる。なお、上記アドレス制御部におけるEXOR回路
15及びラッチ回路16は配列変更回路として機能す
る。
御部100は、バス4に接続されたCPU1、ROM
2、RAM3、モデム5及びDMAコントローラ6を備
える。DMAコントローラ6が起動状態にあるとき、R
AM3はアドレスカウンタ14を始めとしてEXOR
(排他的論理和)回路15及びラッチ回路16からなる
アドレス制御部によって番地が指定される。DMAコン
トローラ6は、アドレスカウンタ14等からなるアドレ
ス制御部の他に、転送サイクルを設定し、且つカウント
するためのサイクルカウンタ制御部、或いは、DMA起
動状態にあるとき、I/O(入出力)制御部18からの
データ転送要求に基づいてDMA処理を実行するべく、
CPU1に対してバスの開放要求(BUS REQUEST )を出
したりするタイミング制御部が設けられるとともに、本
実施形態においては、図2に示される配列変更回路9が
設けられている。DMAコントローラ6の配列変更回路
9は、I/O制御部18に設けられたレジスタ10、シ
リアル/パラレル変換器11を介して読取装置7と接続
され、また、レジスタ12、パラレル/シリアル変換器
19を介してパソコン13と接続されるとともに、レジ
スタ20を介して記録装置8に接続されている。なお、
I/O制御部18は、この他の入力装置のためのレジス
タが備えられているが、ここではその説明は省略する。
配列変更回路9は、CPU1から出力される配列変更指
示データD2 をラッチするラッチ回路17と接続されて
いる。なお、上記アドレス制御部におけるEXOR回路
15及びラッチ回路16は配列変更回路として機能す
る。
【0022】RAM3は、種々の演算、制御などを実行
する際のデータの一時的な記憶装置として機能する。R
OM2は、種々のプログラムを記憶し、CPU1はそれ
らのプログラムを実行することにより種々の処理を実行
する。DMAコントローラ6におけるアドレスカウンタ
14は、DMA起動時にCPU1から与えられたスター
トアドレスを始点に、アドレス値をカウントしてRAM
3のアドレスを指定するアドレス信号A0−A23 を出力す
る。CPU1は、DMA起動信号Sd を送出することに
より、DMAコントローラ6を起動するに先立って、バ
イト転送用の配列変更指示データD1 をラッチ回路16
へ供給する。配列変更指示データD1 は、配列変更を伴
うバイト転送を行う場合には「1」となり、ワード転送
を行う場合、若しくは、配列変更を伴わないバイト転送
を行う場合には「0」となる。ラッチ回路16は、この
配列変更指示データD1 をラッチし、EXOR回路15
へ供給する。EXOR回路15は、ラッチ回路16の出
力及びアドレス信号の最下位バイトであるA0の排他的論
理和を演算し、RAM3へアドレス信号A0として供給す
る。なお、アドレス信号A1−A23 は、アドレスカウンタ
14から直接RAM3へ供給される。
する際のデータの一時的な記憶装置として機能する。R
OM2は、種々のプログラムを記憶し、CPU1はそれ
らのプログラムを実行することにより種々の処理を実行
する。DMAコントローラ6におけるアドレスカウンタ
14は、DMA起動時にCPU1から与えられたスター
トアドレスを始点に、アドレス値をカウントしてRAM
3のアドレスを指定するアドレス信号A0−A23 を出力す
る。CPU1は、DMA起動信号Sd を送出することに
より、DMAコントローラ6を起動するに先立って、バ
イト転送用の配列変更指示データD1 をラッチ回路16
へ供給する。配列変更指示データD1 は、配列変更を伴
うバイト転送を行う場合には「1」となり、ワード転送
を行う場合、若しくは、配列変更を伴わないバイト転送
を行う場合には「0」となる。ラッチ回路16は、この
配列変更指示データD1 をラッチし、EXOR回路15
へ供給する。EXOR回路15は、ラッチ回路16の出
力及びアドレス信号の最下位バイトであるA0の排他的論
理和を演算し、RAM3へアドレス信号A0として供給す
る。なお、アドレス信号A1−A23 は、アドレスカウンタ
14から直接RAM3へ供給される。
【0023】また、CPU1は、DMAコントローラ6
を起動するに先立ってワード転送用の配列変更指示デー
タD2 をラッチ回路17に供給する。配列変更指示データ
D2は、配列変更を伴うワード転送を行う場合には
「1」となり、バイト転送を行う場合、若しくは、配列
変更を伴わないワード転送を行う場合には「0」とな
る。ラッチ回路17は、この配列変更データD2 をラッ
チし、選択信号Ss として配列変更回路9へ供給する。
を起動するに先立ってワード転送用の配列変更指示デー
タD2 をラッチ回路17に供給する。配列変更指示データ
D2は、配列変更を伴うワード転送を行う場合には
「1」となり、バイト転送を行う場合、若しくは、配列
変更を伴わないワード転送を行う場合には「0」とな
る。ラッチ回路17は、この配列変更データD2 をラッ
チし、選択信号Ss として配列変更回路9へ供給する。
【0024】記録装置8は、ファクシミリに設けられた
プリンタ部であり、モデム20により受信したデータ、
或いは読取装置7から出力されたデータ等をDMAコン
トローラ6、I/O制御部18のレジスタ部20を介し
て受け取り、記録紙に記録する。なお、記録装置8は、
前述のようにインテル系のCPUに対応して設計されて
いるので、DMA転送を行う際にデータ配列の変更は必
要としない。
プリンタ部であり、モデム20により受信したデータ、
或いは読取装置7から出力されたデータ等をDMAコン
トローラ6、I/O制御部18のレジスタ部20を介し
て受け取り、記録紙に記録する。なお、記録装置8は、
前述のようにインテル系のCPUに対応して設計されて
いるので、DMA転送を行う際にデータ配列の変更は必
要としない。
【0025】一方、読取装置7は、送信原稿を読み取る
装置であり、読み取られたデータはI/O制御部18の
シリアル/パラレル変換器11によりパラレルデータに
変換され、レジスタ10に一時的に記憶された後、配列
変更回路9へ入力される。また、パソコン13は、モデ
ム20により受信されたデータを内部のメモリに記憶す
るために使用される。なお、パソコンに記憶されたデー
タは必要に応じて記録装置により印刷を行う等の処理を
行うために読み出すことができるが、本実施形態では説
明の便宜上パソコンへ13へのデータ転送のみについて
説明する。パソコン13と配列変更回路9との間には、
データを一時的に記憶するためのレジスタ12及びパラ
レル/シリアル変換器19が設けられている。なお、前
述のように、読取装置7及びパソコン13の入出力制御
はともにモトローラ系のCPUに対応して設計されてお
り、CPU1はそのままのデータ配列で処理をすること
ができないため、配列変更回路9を介してデータの入出
力を行う際に配列変更を行う必要がある。
装置であり、読み取られたデータはI/O制御部18の
シリアル/パラレル変換器11によりパラレルデータに
変換され、レジスタ10に一時的に記憶された後、配列
変更回路9へ入力される。また、パソコン13は、モデ
ム20により受信されたデータを内部のメモリに記憶す
るために使用される。なお、パソコンに記憶されたデー
タは必要に応じて記録装置により印刷を行う等の処理を
行うために読み出すことができるが、本実施形態では説
明の便宜上パソコンへ13へのデータ転送のみについて
説明する。パソコン13と配列変更回路9との間には、
データを一時的に記憶するためのレジスタ12及びパラ
レル/シリアル変換器19が設けられている。なお、前
述のように、読取装置7及びパソコン13の入出力制御
はともにモトローラ系のCPUに対応して設計されてお
り、CPU1はそのままのデータ配列で処理をすること
ができないため、配列変更回路9を介してデータの入出
力を行う際に配列変更を行う必要がある。
【0026】配列変更回路9の具体的な構成を図2 に示
す。図示のように、配列変更回路9は、レジスタ10に
接続されたセレクタ21と、レジスタ12、20に接続
されたセレクタ22と、バス4に接続されたバッファ部
23とを備える。セレクタ21の入力端子X0−X15 に
は、読取装置7からの16ビットのデータがそのまま入
力されており、入力端子Y0−Y15 には読取装置7からの
16ビットのデータの上位8 ビットと下位8ビットが入
れ換えられて入力されている。セレクタ21は、ラッチ
回路17から供給される選択信号Ss が「1」の場合に
は入力端子Y0−Y15 の入力を出力し、選択信号が「0」
の場合には入力端子X0−X15 の入力を出力する。また、
セレクタ22の入力端子X0−X15 には、バス4からの1
6ビットのデータがそのまま入力されており、入力端子
Y0−Y15 にはバス4からの16ビットのデータの上位8
ビットと下位8ビットが入れ換えられて入力されてい
る。セレクタ22は、選択信号Ss が「1」の場合には
入力端子Y0−Y15 の入力を出力し、選択信号が「0」の
場合には入力端子X0−X15 の入力を出力する。
す。図示のように、配列変更回路9は、レジスタ10に
接続されたセレクタ21と、レジスタ12、20に接続
されたセレクタ22と、バス4に接続されたバッファ部
23とを備える。セレクタ21の入力端子X0−X15 に
は、読取装置7からの16ビットのデータがそのまま入
力されており、入力端子Y0−Y15 には読取装置7からの
16ビットのデータの上位8 ビットと下位8ビットが入
れ換えられて入力されている。セレクタ21は、ラッチ
回路17から供給される選択信号Ss が「1」の場合に
は入力端子Y0−Y15 の入力を出力し、選択信号が「0」
の場合には入力端子X0−X15 の入力を出力する。また、
セレクタ22の入力端子X0−X15 には、バス4からの1
6ビットのデータがそのまま入力されており、入力端子
Y0−Y15 にはバス4からの16ビットのデータの上位8
ビットと下位8ビットが入れ換えられて入力されてい
る。セレクタ22は、選択信号Ss が「1」の場合には
入力端子Y0−Y15 の入力を出力し、選択信号が「0」の
場合には入力端子X0−X15 の入力を出力する。
【0027】次に、具体的な動作について説明する。ま
ず、I/O制御部18は、各種の入出力装置(読取装置
7、パソコン13、記録装置8など)が所定の動作を開
始するに伴って、データをDMA転送によりRAM3に
転送したり、或いは、その逆にRAM3からデータを受
け取ったりする場合、CPU1に対して割込み信号を出
力することによりDMAの起動を要求する。すると、C
PU1は、予めプログラムされている所定の割り込み処
理を実行することによって、DMA転送を開始すべきR
AM3のスタートアドレス(先頭番地)、転送サイクル
数、さらには転送モード等をDMAコントローラ6に送
り、アドレスカウンタ14及びサイクルカウンタを所定
値に設定したりして、DMA転送のための準備動作を行
う。その後、CPU1は、DMAコントローラ6に対し
てDMA起動信号Sd を出力する。なお、このDMA起
動信号Sd を始めとして、CPU1からDMAコントロ
ーラ6に対して出力される各信号は、バス4を介して供
給されるものであるが、図1では信号の流れを容易に理
解できるようにするためバス4と区別して表示してい
る。
ず、I/O制御部18は、各種の入出力装置(読取装置
7、パソコン13、記録装置8など)が所定の動作を開
始するに伴って、データをDMA転送によりRAM3に
転送したり、或いは、その逆にRAM3からデータを受
け取ったりする場合、CPU1に対して割込み信号を出
力することによりDMAの起動を要求する。すると、C
PU1は、予めプログラムされている所定の割り込み処
理を実行することによって、DMA転送を開始すべきR
AM3のスタートアドレス(先頭番地)、転送サイクル
数、さらには転送モード等をDMAコントローラ6に送
り、アドレスカウンタ14及びサイクルカウンタを所定
値に設定したりして、DMA転送のための準備動作を行
う。その後、CPU1は、DMAコントローラ6に対し
てDMA起動信号Sd を出力する。なお、このDMA起
動信号Sd を始めとして、CPU1からDMAコントロ
ーラ6に対して出力される各信号は、バス4を介して供
給されるものであるが、図1では信号の流れを容易に理
解できるようにするためバス4と区別して表示してい
る。
【0028】DMA起動信号Sd に基づいて起動状態と
なったDMAコントローラ6は、その後、I/O制御部
18からデータ転送のリクエストがある都度、CPU1
に対してバス4の開放要求(BUS REQUEST )を出し、C
PU1からバスを開放した旨の応答信号(BUS ACKNOWLE
DGE )があるのに基づいて、DMA処理を1サイクルず
つ順次実行する。具体的には、アドレスカウンタ14に
よって指定されるRAM3のアドレス部分に格納されて
いるデータをI/O制御部18の所定のレジスタに転送
し、或いは、I/O制御部18の所定のレジスタに格納
されているデータをアドレスカウンタ14によって指定
されるRAM3のアドレス部分に書き込む。そして、一
回のデータ転送が終了する毎にアドレスカウンタ14の
カウント値を進めるとともに、サイクルカウンタをデク
リメントする。以下、同様の動作を繰り返し、サイクル
カウンタの値が「0」になった時点でDMAの処理を終
了する。
なったDMAコントローラ6は、その後、I/O制御部
18からデータ転送のリクエストがある都度、CPU1
に対してバス4の開放要求(BUS REQUEST )を出し、C
PU1からバスを開放した旨の応答信号(BUS ACKNOWLE
DGE )があるのに基づいて、DMA処理を1サイクルず
つ順次実行する。具体的には、アドレスカウンタ14に
よって指定されるRAM3のアドレス部分に格納されて
いるデータをI/O制御部18の所定のレジスタに転送
し、或いは、I/O制御部18の所定のレジスタに格納
されているデータをアドレスカウンタ14によって指定
されるRAM3のアドレス部分に書き込む。そして、一
回のデータ転送が終了する毎にアドレスカウンタ14の
カウント値を進めるとともに、サイクルカウンタをデク
リメントする。以下、同様の動作を繰り返し、サイクル
カウンタの値が「0」になった時点でDMAの処理を終
了する。
【0029】ところで、制御装置100が行うDMAに
よるデータ転送としては、ワード転送とバイト転送があ
る。ワード転送とは目的のデータを1ワード(2バイ
ト)毎に転送する方法であり、バイト転送とは目的のデ
ータを1バイト毎に転送する方法である。制御装置10
0は、いずれの転送方法を行うかによって動作が異な
る。
よるデータ転送としては、ワード転送とバイト転送があ
る。ワード転送とは目的のデータを1ワード(2バイ
ト)毎に転送する方法であり、バイト転送とは目的のデ
ータを1バイト毎に転送する方法である。制御装置10
0は、いずれの転送方法を行うかによって動作が異な
る。
【0030】まず、ワード転送時の動作について説明す
る。配列変更を伴うワード転送時には、CPU1はDM
Aコントローラ6を起動する(起動信号Sd を送る)前
に、配列変更指示データD1 を「0」とし、配列変更指
示データD2 を「1」とする。これにより、ラッチ回路
16は「0」をラッチし、ラッチ回路17は「1」をラ
ッチする。この場合、配列変更指示データD1 は「0」
であるので、EXOR回路15はアドレスカウンタ14が出
力するアドレス信号A0をそのままRAMに供給する。よ
って、後述するRAM3のアドレスの変換は行われな
い。
る。配列変更を伴うワード転送時には、CPU1はDM
Aコントローラ6を起動する(起動信号Sd を送る)前
に、配列変更指示データD1 を「0」とし、配列変更指
示データD2 を「1」とする。これにより、ラッチ回路
16は「0」をラッチし、ラッチ回路17は「1」をラ
ッチする。この場合、配列変更指示データD1 は「0」
であるので、EXOR回路15はアドレスカウンタ14が出
力するアドレス信号A0をそのままRAMに供給する。よ
って、後述するRAM3のアドレスの変換は行われな
い。
【0031】まず、この状態で、例えば読取装置7によ
って読み取ったデータをDMAによりRAM3に転送す
る場合を考える。この場合、ラッチ回路17は「1」を
ラッチしているので、同ラッチ回路17は「1」の選択
信号Ss を配列変更回路9のセレクタ21及び22に供
給する。読取装置7は、送信原稿をラインイメージセン
サにより読み取り、所定のしきい値を用いて2値化して
例えば図3に示すような読み取りデータを生成して出力
する。シリアル/パラレル変換器11は、この読み取り
データを16ビット単位のパラレルデータに変換する。
レジスタ10はこれを一時的に記憶し、DMA実行時に
配列変更回路9へ供給する。配列変更回路9では、選択
信号Ss が「1」であることから、セレクタ21が入力
端子Y0−Y15 の入力データを出力する。入力端子Y0−Y1
5 には、読み取りデータXD0 −XD15が、上位バイトと下
位バイトが入れ換えられた形で入力されているので、配
列変更回路9は、上位バイトと下位バイトが入れ換えら
れた読み取りデータをDMAコントローラ6を介してバ
ス4へ供給する。コントローラ6は、開放されたバス4
を利用して該読み取りデータをRAM3へ転送する。こ
のようにしてRAM3内に記憶された読取データは上位
バイトと下位バイトが入れ換えられているので、CPU
1はワード単位で内部レジスタにデータを取り込み、演
算とうの処理を行う場合に正しい演算を行うことができ
る。
って読み取ったデータをDMAによりRAM3に転送す
る場合を考える。この場合、ラッチ回路17は「1」を
ラッチしているので、同ラッチ回路17は「1」の選択
信号Ss を配列変更回路9のセレクタ21及び22に供
給する。読取装置7は、送信原稿をラインイメージセン
サにより読み取り、所定のしきい値を用いて2値化して
例えば図3に示すような読み取りデータを生成して出力
する。シリアル/パラレル変換器11は、この読み取り
データを16ビット単位のパラレルデータに変換する。
レジスタ10はこれを一時的に記憶し、DMA実行時に
配列変更回路9へ供給する。配列変更回路9では、選択
信号Ss が「1」であることから、セレクタ21が入力
端子Y0−Y15 の入力データを出力する。入力端子Y0−Y1
5 には、読み取りデータXD0 −XD15が、上位バイトと下
位バイトが入れ換えられた形で入力されているので、配
列変更回路9は、上位バイトと下位バイトが入れ換えら
れた読み取りデータをDMAコントローラ6を介してバ
ス4へ供給する。コントローラ6は、開放されたバス4
を利用して該読み取りデータをRAM3へ転送する。こ
のようにしてRAM3内に記憶された読取データは上位
バイトと下位バイトが入れ換えられているので、CPU
1はワード単位で内部レジスタにデータを取り込み、演
算とうの処理を行う場合に正しい演算を行うことができ
る。
【0032】次に、CPU1により何らかの処理が施さ
れたRAM3内のデータをDMAによりパソコン13へ
転送する処理について説明する。この場合は、CPU1
による処理後のデータであるので、CPU1に対応した
データ配列でRAM3内に記憶されていることになる。
この場合も、配列を変更する必要があるのでCPU1は
配列変更指示データD1 を「0」、配列変更指示データ
D2 を「1」として、DMA起動信号Sd を出力する。
従って、配列変更回路9内のセレクタ21には、「1」
の選択信号Ss が供給されることになる。DMAコント
ローラ6は、開放されたバス4を利用してDMAにより
RAM3内のデータを読み出し、そのデータを配列変更
回路9に供給する。配列変更回路9内のセレクタ22
は、選択信号「1」を入力されているので、入力端子Y0
−Y15 の入力信号、即ち、RAM3からの出力データの
上位バイトと下位バイトが入れ替えられたデータをレジ
スタ12へ出力する。レジスタ12は、このデータを一
時的に保持し、パラレル/シリアル変換器19によりシ
リアルデータに変換してパソコンへ供給する。なお、こ
の場合、パソコン13へはシリアルインターフェースを
介してデータが供給される。このように、CPU1の処
理が施されたRAM3内のデータはインテル系のCPU
1に対応したデータ配列を有しているが、モトローラ系
のCPUに対応して制御系が設計されたパソコン13へ
入力される前に、配列変更回路により上位バイトと下位
バイトの入れ換えが行われる。従って、パソコン13で
は、自己のシステム設計に適合した配列のデータを受け
取ることになり、正しい処理を行うことが可能となる。
れたRAM3内のデータをDMAによりパソコン13へ
転送する処理について説明する。この場合は、CPU1
による処理後のデータであるので、CPU1に対応した
データ配列でRAM3内に記憶されていることになる。
この場合も、配列を変更する必要があるのでCPU1は
配列変更指示データD1 を「0」、配列変更指示データ
D2 を「1」として、DMA起動信号Sd を出力する。
従って、配列変更回路9内のセレクタ21には、「1」
の選択信号Ss が供給されることになる。DMAコント
ローラ6は、開放されたバス4を利用してDMAにより
RAM3内のデータを読み出し、そのデータを配列変更
回路9に供給する。配列変更回路9内のセレクタ22
は、選択信号「1」を入力されているので、入力端子Y0
−Y15 の入力信号、即ち、RAM3からの出力データの
上位バイトと下位バイトが入れ替えられたデータをレジ
スタ12へ出力する。レジスタ12は、このデータを一
時的に保持し、パラレル/シリアル変換器19によりシ
リアルデータに変換してパソコンへ供給する。なお、こ
の場合、パソコン13へはシリアルインターフェースを
介してデータが供給される。このように、CPU1の処
理が施されたRAM3内のデータはインテル系のCPU
1に対応したデータ配列を有しているが、モトローラ系
のCPUに対応して制御系が設計されたパソコン13へ
入力される前に、配列変更回路により上位バイトと下位
バイトの入れ換えが行われる。従って、パソコン13で
は、自己のシステム設計に適合した配列のデータを受け
取ることになり、正しい処理を行うことが可能となる。
【0033】一方、RAM3内のデータをDMAにより
記録装置8へ転送する場合には、CPU1は配列変更指
示データD1 、D2 をいずれも「0」として、DMAコ
ントローラ6にDMA起動信号Sd を出力する。従っ
て、配列変更回路9内のセレクタ22には、「0」の選
択信号Ss が供給されるので、入力端子X0−X15 の入力
信号、即ち、RAM3からの出力データがそのままの配
列でレジスタ20に格納されることになり、データの上
位バイトと下位バイトの入れ換えは行われない。これ
は、前述のように、記録装置の制御系は、CPU1と同
じインテル系のCPUに対応して設計されているため、
データの配列変更が不要だからである。従って、バス4
を利用してDMAコントローラ6により転送されたデー
タは、RAM3に格納されていた配列のままで記録装置
8へ供給される。以上のようにして、DMAによるRA
M3と読取り装置7、パソコン13又は記録装置8との
間のデータ転送が行われる。
記録装置8へ転送する場合には、CPU1は配列変更指
示データD1 、D2 をいずれも「0」として、DMAコ
ントローラ6にDMA起動信号Sd を出力する。従っ
て、配列変更回路9内のセレクタ22には、「0」の選
択信号Ss が供給されるので、入力端子X0−X15 の入力
信号、即ち、RAM3からの出力データがそのままの配
列でレジスタ20に格納されることになり、データの上
位バイトと下位バイトの入れ換えは行われない。これ
は、前述のように、記録装置の制御系は、CPU1と同
じインテル系のCPUに対応して設計されているため、
データの配列変更が不要だからである。従って、バス4
を利用してDMAコントローラ6により転送されたデー
タは、RAM3に格納されていた配列のままで記録装置
8へ供給される。以上のようにして、DMAによるRA
M3と読取り装置7、パソコン13又は記録装置8との
間のデータ転送が行われる。
【0034】続いて、バイト転送時の動作を説明する。
バイト転送時には、16ビット(2バイト)のデータの
うち、上位又は下位の1バイトを単位としてデータが転
送される。よって、配列変更回路9を利用して上位バイ
トと下位バイトのデータを入れ換えるのではなく、1バ
イトのデータはそのままのビット配列で転送することと
し、RAM3内の書き込み又は読み出しアドレスの入れ
替え、具体的には奇数アドレスと偶数アドレスとの入れ
替えを行ってやる。このアドレスの入れ替えを行うのが
EXOR回路15である。即ち、アドレスの配列変更を
伴うバイト転送時には、CPU1は、DMAコントロー
ラ6を起動する前に配列変更指示データD1 を「1」と
し、配列変更指示データD2 を「0」とする。これによ
り、ラッチ回路16は「1」をラッチし、ラッチ回路1
7は「0」をラッチする。よって、ラッチ回路17は、
「0」の選択信号Ss を配列変更回路9に供給するの
で、配列変更回路9は転送データの上位バイトと下位バ
イトの入れ換えを行わず、そのままデータを出力する。
一方、ラッチ回路16の出力は「1」であるので、EXO
R回路15はアドレスカウンタ14が出力するアドレス
信号A0を反転させてRAM3へ供給する。図4(A)か
ら分かるように、アドレス信号の最下位ビットA0を反転
させると、アドレスカウンタ14によって指定するアド
レスは奇数アドレスが偶数アドレスに、偶数アドレスが
奇数アドレスに入れ替わることになる。よって、RAM
3はアドレスカウンタ14により指定されたDMA転送
のスタートアドレスが、例えば「n番地」であるとする
と、「n+1番地」、「n番地」、「n+3番地」、
「n+2番地」の順で、データの書き込み又は読み出し
が行われることになる。
バイト転送時には、16ビット(2バイト)のデータの
うち、上位又は下位の1バイトを単位としてデータが転
送される。よって、配列変更回路9を利用して上位バイ
トと下位バイトのデータを入れ換えるのではなく、1バ
イトのデータはそのままのビット配列で転送することと
し、RAM3内の書き込み又は読み出しアドレスの入れ
替え、具体的には奇数アドレスと偶数アドレスとの入れ
替えを行ってやる。このアドレスの入れ替えを行うのが
EXOR回路15である。即ち、アドレスの配列変更を
伴うバイト転送時には、CPU1は、DMAコントロー
ラ6を起動する前に配列変更指示データD1 を「1」と
し、配列変更指示データD2 を「0」とする。これによ
り、ラッチ回路16は「1」をラッチし、ラッチ回路1
7は「0」をラッチする。よって、ラッチ回路17は、
「0」の選択信号Ss を配列変更回路9に供給するの
で、配列変更回路9は転送データの上位バイトと下位バ
イトの入れ換えを行わず、そのままデータを出力する。
一方、ラッチ回路16の出力は「1」であるので、EXO
R回路15はアドレスカウンタ14が出力するアドレス
信号A0を反転させてRAM3へ供給する。図4(A)か
ら分かるように、アドレス信号の最下位ビットA0を反転
させると、アドレスカウンタ14によって指定するアド
レスは奇数アドレスが偶数アドレスに、偶数アドレスが
奇数アドレスに入れ替わることになる。よって、RAM
3はアドレスカウンタ14により指定されたDMA転送
のスタートアドレスが、例えば「n番地」であるとする
と、「n+1番地」、「n番地」、「n+3番地」、
「n+2番地」の順で、データの書き込み又は読み出し
が行われることになる。
【0035】I/O制御部18に接続された読取装置7
以外の読取装置から1バイト毎に入力されるデータは、
配列変更回路9に入力され、DMAコントローラ6は開
放されたバス4を利用してRAM3へデータの転送を行
う。ここで、アドレス信号A0が反転されているので、該
データは奇数アドレスと偶数アドレスへの書き込み順序
が入れ替わって書き込まれる。従って、CPU1がその
データをワード単位で内部レジスタに取り込み、演算等
の処理を行う場合に、モトローラ系CPUに対して設計
された入力装置からのデータをもとに、正しいデータ処
理を行うことができる。一方、CPU1が演算等を行っ
た結果のデータをワード、バイト単位で所定の出力装置
へDMA転送する場合には、DMAコントローラ6は奇
数アドレスと偶数アドレスとが入れ替わった順序でRA
M3からデータを読み出し、所定の出力装置へ出力す
る。従って、読み出されたデータは、モトローラ系CP
Uに対応して設計された出力装置の制御系のデータ配列
と適合する。なお、インテル系CPUに設計されたその
他の出力装置に対してDMA転送を行う転送の場合は、
CPU1は並列変更指示データD1 、D2 いずれもを
「0」とするので、EXOR回路15によるアドレスの
入れ替えは行われず、CPU1がRAM3に書き込んだ
データ配列のまま一バイト単位で出力装置へ転送され
る。例えば、図4(A)の例では、「n番地」、「n+
1番地」、「n+2番地」、「n+3番地」の順にデー
タ転送される。
以外の読取装置から1バイト毎に入力されるデータは、
配列変更回路9に入力され、DMAコントローラ6は開
放されたバス4を利用してRAM3へデータの転送を行
う。ここで、アドレス信号A0が反転されているので、該
データは奇数アドレスと偶数アドレスへの書き込み順序
が入れ替わって書き込まれる。従って、CPU1がその
データをワード単位で内部レジスタに取り込み、演算等
の処理を行う場合に、モトローラ系CPUに対して設計
された入力装置からのデータをもとに、正しいデータ処
理を行うことができる。一方、CPU1が演算等を行っ
た結果のデータをワード、バイト単位で所定の出力装置
へDMA転送する場合には、DMAコントローラ6は奇
数アドレスと偶数アドレスとが入れ替わった順序でRA
M3からデータを読み出し、所定の出力装置へ出力す
る。従って、読み出されたデータは、モトローラ系CP
Uに対応して設計された出力装置の制御系のデータ配列
と適合する。なお、インテル系CPUに設計されたその
他の出力装置に対してDMA転送を行う転送の場合は、
CPU1は並列変更指示データD1 、D2 いずれもを
「0」とするので、EXOR回路15によるアドレスの
入れ替えは行われず、CPU1がRAM3に書き込んだ
データ配列のまま一バイト単位で出力装置へ転送され
る。例えば、図4(A)の例では、「n番地」、「n+
1番地」、「n+2番地」、「n+3番地」の順にデー
タ転送される。
【0036】以上説明したように、本発明によれば、D
MAによるワード転送時には配列変更回路9によってデ
ータの上位バイトと下位バイトを入れ換えることができ
るので、読取装置7及びパソコン13等の入出力装置の
制御系がCPU1と異なるタイプのCPUに対応するデ
ータ配列でデータを扱うように設計されている場合で
も、CPU1によりそのような配列のデータを処理する
ことが可能となる。また、DMAによるバイト転送の場
合には、EXOR回路15によってRAM3のアドレス
を入れ替えることができるので、1バイト単位のデータ
を奇数アドレスと偶数アドレスとに書き込む或いは読み
出す順序が入れ替わってデータ転送が行われることにな
り、同様に異なるCPUに対応した配列のデータの処理
が可能となる。従って、すでに設計されたシステムを部
分的に組合せて使用して新たなシステムを構成する際
に、異なるタイプのCPUを使用する場合でも、新たに
システム全体の設計やソフトウェアの開発を行う必要が
なくなる。その結果、既存のシステムを利用して効率的
に新たなシステムを構成することが可能となる。
MAによるワード転送時には配列変更回路9によってデ
ータの上位バイトと下位バイトを入れ換えることができ
るので、読取装置7及びパソコン13等の入出力装置の
制御系がCPU1と異なるタイプのCPUに対応するデ
ータ配列でデータを扱うように設計されている場合で
も、CPU1によりそのような配列のデータを処理する
ことが可能となる。また、DMAによるバイト転送の場
合には、EXOR回路15によってRAM3のアドレス
を入れ替えることができるので、1バイト単位のデータ
を奇数アドレスと偶数アドレスとに書き込む或いは読み
出す順序が入れ替わってデータ転送が行われることにな
り、同様に異なるCPUに対応した配列のデータの処理
が可能となる。従って、すでに設計されたシステムを部
分的に組合せて使用して新たなシステムを構成する際
に、異なるタイプのCPUを使用する場合でも、新たに
システム全体の設計やソフトウェアの開発を行う必要が
なくなる。その結果、既存のシステムを利用して効率的
に新たなシステムを構成することが可能となる。
【0037】なお、上述の実施形態では、CPUのタイ
プが一致する記録装置8等の入出力装置についても配列
変更回路9介してDMA転送を行うようにしているが、
これに限定されることなく、例えば、CPUのタイプが
一致する入出力装置に対しては配列変更回路9を介在さ
せることなくDMA転送を行う回路構成としてもよい。
プが一致する記録装置8等の入出力装置についても配列
変更回路9介してDMA転送を行うようにしているが、
これに限定されることなく、例えば、CPUのタイプが
一致する入出力装置に対しては配列変更回路9を介在さ
せることなくDMA転送を行う回路構成としてもよい。
【0038】
【発明の効果】請求項1記載の発明によれば、例えば、
入出力部が制御部のCPUと異なるCPUに対応して設
計されている場合に、配列変更回路がデータ配列の変更
をするので、異なるCPUに対応して設計されたシステ
ムを一体化して新たなシステムを容易に構成することが
可能となる。
入出力部が制御部のCPUと異なるCPUに対応して設
計されている場合に、配列変更回路がデータ配列の変更
をするので、異なるCPUに対応して設計されたシステ
ムを一体化して新たなシステムを容易に構成することが
可能となる。
【0039】また、請求項2及び3記載の発明によれ
ば、配列変更回路はデータの上位数ビットと下位数ビッ
トを入れ換えるのみであるので、簡易な回路でデータ配
列の変更が可能となる。
ば、配列変更回路はデータの上位数ビットと下位数ビッ
トを入れ換えるのみであるので、簡易な回路でデータ配
列の変更が可能となる。
【0040】また、請求項4及び5記載の発明によれ
ば、配列変更回路はデータが書き込まれ又は読み出され
るメモリ上のアドレスを変更するのみであるので、単純
な構成で、しかも実際のデータに処理を施すことなくデ
ータ配列の変更が可能となる。
ば、配列変更回路はデータが書き込まれ又は読み出され
るメモリ上のアドレスを変更するのみであるので、単純
な構成で、しかも実際のデータに処理を施すことなくデ
ータ配列の変更が可能となる。
【0041】また、請求項6記載の発明によれば、メモ
リからCPU内部のレジスタにワード単位でデータを取
り込む場合に、上位バイトと下位バイトの配列が入れ替
わって取り込まれる場合であっても、上位バイトと下位
バイトのデータ配列が変更されるので、CPU内で正し
い演算を行うことが可能となる。
リからCPU内部のレジスタにワード単位でデータを取
り込む場合に、上位バイトと下位バイトの配列が入れ替
わって取り込まれる場合であっても、上位バイトと下位
バイトのデータ配列が変更されるので、CPU内で正し
い演算を行うことが可能となる。
【図1】本発明の実施形態にかかるファクシミリ装置の
制御部の構成及び入出力装置との関係を示すブロック図
である。
制御部の構成及び入出力装置との関係を示すブロック図
である。
【図2】図1に示す配列変更回路の回路構成を示す図で
ある。
ある。
【図3】RAMに転送されるデータの例を示す図であ
る。
る。
【図4】RAMに転送されるデータの配置を示す図であ
る。
る。
1…CPU 3…RAM 5…モデム 6…DMAコントローラ 7…読取装置 8…記録装置 9…配列変更回路 13…パソコン 14…アドレスカウンタ 15…EXOR回路 21、22…セレクタ
Claims (6)
- 【請求項1】 CPU及びメモリを含む制御部と入出力
部との間でデータ転送を行うDMAコントローラにおい
て、 前記入出力部から出力されるデータを前記メモリに転送
し、前記メモリから読み出されたデータを前記入出力部
へ転送する転送回路を有し、 前記転送回路は、前記入出力部又は前記メモリから出力
されたデータの配列を変更する配列変更回路を有するこ
とを特徴とするDMAコントローラ。 - 【請求項2】 前記配列変更回路は、前記入出力部又は
前記メモリから出力されたデータの上位数ビットと下位
数ビットを入れ換えることを特徴とする前記請求項1記
載のDMAコントローラ。 - 【請求項3】 前記配列変更回路は、前記CPUから出
力される指定信号に基づいて、入力されるデータ又は前
記入力されるデータの上位数ビットと下位数ビットを入
れ換えたデータのいずれか一方を選択的に出力する選択
回路であることを特徴とする請求項2記載のDMAコン
トローラ。 - 【請求項4】 前記配列変更回路は、前記データをメモ
リに書き込むアドレス又は前記メモリから前記データを
読み出すアドレスを変更することを特徴とする請求項1
記載のDMAコントローラ。 - 【請求項5】 前記配列変更回路は、前記CPUから出
力される指定信号に基づいて、前記メモリに供給される
アドレス信号の最下位ビットを反転させる回路であるこ
とを特徴とする請求項4記載のDMAコントローラ。 - 【請求項6】 前記CPUは、メモリからCPU内部の
レジスタにワード単位でデータを取り込む場合に、上位
バイトと下位バイトの配列が入れ替わって取り込まれる
方式のものであることを特徴とする請求項1乃至5のい
ずれかに記載のDMAコントローラ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12203296A JPH09305530A (ja) | 1996-05-16 | 1996-05-16 | Dmaコントローラ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12203296A JPH09305530A (ja) | 1996-05-16 | 1996-05-16 | Dmaコントローラ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09305530A true JPH09305530A (ja) | 1997-11-28 |
Family
ID=14825913
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP12203296A Pending JPH09305530A (ja) | 1996-05-16 | 1996-05-16 | Dmaコントローラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09305530A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010287128A (ja) * | 2009-06-12 | 2010-12-24 | Toshiba Corp | コントローラ、記憶媒体、及び情報制御方法 |
| JP2011516978A (ja) * | 2008-04-01 | 2011-05-26 | アップル インコーポレイテッド | 任意の処理機能を有する中央dma |
| US8566485B2 (en) | 2005-09-29 | 2013-10-22 | Apple Inc. | Data transformation during direct memory access |
-
1996
- 1996-05-16 JP JP12203296A patent/JPH09305530A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8566485B2 (en) | 2005-09-29 | 2013-10-22 | Apple Inc. | Data transformation during direct memory access |
| JP2011516978A (ja) * | 2008-04-01 | 2011-05-26 | アップル インコーポレイテッド | 任意の処理機能を有する中央dma |
| JP2010287128A (ja) * | 2009-06-12 | 2010-12-24 | Toshiba Corp | コントローラ、記憶媒体、及び情報制御方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5423009A (en) | Dynamic sizing bus controller that allows unrestricted byte enable patterns | |
| CA1241766A (en) | Communication controller using multiported random access memory | |
| US4485438A (en) | High transfer rate between multi-processor units | |
| US6216191B1 (en) | Field programmable gate array having a dedicated processor interface | |
| JP2001142842A (ja) | Dmaハンドシェークプロトコル | |
| JPH06175918A (ja) | データプロセツサ | |
| JP2004171209A (ja) | 共有メモリデータ転送装置 | |
| JP2002140289A (ja) | 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション | |
| US4835684A (en) | Microcomputer capable of transferring data from one location to another within a memory without an intermediary data bus | |
| JP2001092772A (ja) | 同期固定レイテンシループを使用するデータバス | |
| JP6602579B2 (ja) | 半導体装置およびシステム | |
| US5845145A (en) | System for generating and sending a critical-world-first data response packet by creating response packet having data ordered in the order best matching the desired order | |
| JP3619532B2 (ja) | 半導体集積回路装置 | |
| JPH05219080A (ja) | データ通信ネットワークおよびトークン・リング調停方法 | |
| KR970003321B1 (ko) | 코프로세서 지정 시스템 | |
| CN101118526A (zh) | 用于控制猝发存储器存取的存储器接口及其控制方法 | |
| US6738837B1 (en) | Digital system with split transaction memory access | |
| JP2001084229A (ja) | Simd型プロセッサ | |
| JP2004118252A (ja) | 半導体データ処理装置 | |
| JPH09305530A (ja) | Dmaコントローラ | |
| CN115328832B (zh) | 一种基于pcie dma的数据调度系统与方法 | |
| US6681273B1 (en) | High performance, variable data width FIFO buffer | |
| KR960001023B1 (ko) | 이기종 버스시스템에서의 버스 공유방법 및 버스 스와핑장치 | |
| WO2001025941A1 (en) | Multiprocessor computer systems with command fifo buffer at each target device | |
| JPH0227696B2 (ja) | Johoshorisochi |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Effective date: 20060208 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060214 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060711 |