(57)【要約】【課題】ＤＭＡデータ転送時にどのディスクリプタを使用しているのかを容易に判断できるようにする。【解決手段】ディスクリプタ８の領域８ａはネクストディスクリプタポインタを格納し、それによって次のデータの処理指定をするディスクリプタを指定し、領域８ｂは送信元アドレスを格納し、それによってＤＭＡ転送するデータが格納されたアドレスを指定し、領域８ｃはディスクリプタ有効ビットを格納し、それによってディスクリプタが有効であるか否かを指定し、領域８ｄは割り込みモードや転送バイト数を格納し、それに基づいて割り込みモードや転送バイト数などを指定し、５ＷＯＲＤ目の領域８ｅにＩＤナンバを格納し、そのＩＤナンバによって使用しているディスクリプタを判別することができる。【選択図】　　　図３
2004110159.tif 000002
【特許請求の範囲】
【請求項１】
メモリ上に作成した複数のディスクリプタにそれぞれ格納されたディスクリプタ情報を参照し、各ディスクリプタを順にたどりながらそれぞれのディスクリプタによって指定された格納先からデータを読み出して連続的にデータを転送する制御を行う制御部を有するデータ転送制御装置において、
前記メモリの各ディスクリプタにデバッグにおいて使用したディスクリプタを判別し易くするための個別の識別ナンバを格納する領域を設けたことを特徴とするデータ転送制御装置。
【請求項２】
請求項１記載のデータ転送制御装置において、
前記メモリの各ディスクリプタにそれぞれの機能毎のディスクリプタの使用された順番を判断するための使用履歴ナンバを格納する領域を設けたことを特徴とするデータ転送制御装置。
【請求項３】
請求項２記載のデータ転送制御装置において、
前記制御部に、それぞれ機能毎のディスクリプタの使用された順番を判断するための使用履歴ナンバを加算して保持する手段と、該各手段にそれぞれ保持された各使用履歴ナンバを加算して保持する手段を設け、該手段に保持した使用履歴ナンバを前記使用履歴ナンバを格納する領域に書き込むようにしたことを特徴とするデータ転送制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ダイレクト・メモリ・アクセス（ＤＭＡ）転送方式でデータ転送を行うデータ転送制御装置に関する。
【０００２】
【従来の技術】
従来、複写装置，ファクシミリ装置，プリント装置（プリンタ），画像読取装置（スキャナ）等の画像形成装置等の各種機器において、メモリに対してＤＭＡデータ転送方式でデータの入出力を制御するデータ転送制御装置が用いられている（例えば、特許文献１参照）。
図５は、従来のデータ転送制御装置におけるＤＭＡデータ転送方式の説明図である。
図６は、図５に示した各ディスクリプタのフォーマットを示す説明図である。
図７は、同じ形式で機能の異なる２つのＤＡＭＣを示す説明図である。
【０００３】
従来のデータ転送制御装置は、ＤＭＡ制御装置（ＤＭＡコントローラ：ＤＭＡＣ）とＲＡＭ（メモリ）からなり、図５に示すように、ＲＡＭ２０内には複数のディスクリプタ（ディスクリプタ領域）２１ａ〜２１ｎ（ｎは正の整数）が設けられている。各ディスクリプタ２１ａ〜２１ｎ内は、図６に示すように、「ネクストディスクリプタポインタ」「送信元アドレス」「ディスクリプタ有効ビット」「割り込みモード，転送バイト数」の４ワード（ＷＯＲＤ）で構成されたディスクリプタ情報を格納している。
【０００４】
ＤＭＡコントローラは、ＣＰＵからＤＭＡデータ転送が指示されると、図５に示すように、第１ディスクリプタ２１ａの送信元アドレスと割り込みモード，転送バイト数を読み込み、その送信元アドレスのデータ領域にあるデータ２２ａをデータ転送する。その後、第１ディスクリプタ２１ａのネクストディスクリプタポインタから次のディスクリプタ情報の読み込み先である第２ディスクリプタ２１ｂにアクセスし、その送信元アドレスと割り込みモード，転送バイト数を読み込み、上述と同様にしてデータ２２ｂをデータ転送する。このようにして、第１ディスクリプタ２１ａから最終の第ｎディスクリプタ２１ｎまでチェイン（ｃｈａｉｎ）のようにたどって連続的にデータ転送を行う。
【０００５】
また、図７の（ａ）と（ｂ）に示すように、ＲＡＭに設けられたディスクリプタが４つであって同じ形式であるがその機能がそれぞれ異なる場合がある。同図の（ａ）ではディスクリプタ▲１▼〜▲４▼からなって機能１を有し、同図の（ｂ）ではディスクリプタＡ〜Ｄからなって機能２を有する。
【０００６】
【特許文献１】
特開平１１−２３２２１１号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、従来のデータ転送制御装置では、データをＤＭＡ転送処理する際にどのディスクリプタが使われているのかを判断するためには、各ディスクリプタのチェインのように結びつけているアドレスをたどる必要があり、そのアドレスは大小の比較ではないので、デバッグ時にどのディスクリプタを使用しているのかを判断し難くて効率的でないという問題があった。
また、同じ形式で機能の異なるＤＭＡＣの場合、ディスクリプタの使用順序を判断することができないという問題もあった。
この発明は上記の課題を解決するためになされたものであり、ＤＭＡデータ転送時にどのディスクリプタを使用しているのかを容易に判断できるようにすることを目的とする。
【０００８】
【課題を解決するための手段】
この発明は上記の目的を達成するため、メモリ上に作成した複数のディスクリプタにそれぞれ格納されたディスクリプタ情報を参照し、各ディスクリプタを順にたどりながらそれぞれのディスクリプタによって指定された格納先からデータを読み出して連続的にデータを転送する制御を行う制御部を有するデータ転送制御装置において、上記メモリの各ディスクリプタにデバッグにおいて使用したディスクリプタを判別し易くするための個別の識別ナンバを格納する領域を設けたものである。
【０００９】
また、上記のようなデータ転送制御装置において、上記メモリの各ディスクリプタにそれぞれの機能毎のディスクリプタの使用された順番を判断するための使用履歴ナンバを格納する領域を設けるとよい。
さらに、上記のようなデータ転送制御装置において、上記制御部に、それぞれ機能毎のディスクリプタの使用された順番を判断するための使用履歴ナンバを加算して保持する手段と、その各手段にそれぞれ保持された各使用履歴ナンバを加算して保持する手段を設け、その手段に保持した使用履歴ナンバを上記使用履歴ナンバを格納する領域に書き込むようにするとよい。
【００１０】
【発明の実施の形態】
以下、この発明の実施形態を図面に基づいて具体的に説明する。
図１は、この発明の一実施形態であるデータ転送制御装置の構成を示すブロック図である。
図２は、図１に示したＤＭＡＣ１内の構成を示すブロック図である。
図３は、図１に示したディスクリプタのフォーマットを示す図である。
図４は、各機能毎のディスクリプタに使用履歴ナンバを格納する領域を設けたときのフォーマットを示す図である。
【００１１】
このデータ転送制御装置は、図１に示すように、ＤＭＡ制御装置（ＤＭＡコントローラ：ＤＭＡＣ）１とＲＡＭ（メモリ）２からなり、ＤＭＡＣ１はディスクリプタ制御回路３と加算部４を有し、メモリ２上に作成した複数のディスクリプタにそれぞれ格納されたディスクリプタ情報を参照し、各ディスクリプタを順にたどりながらそれぞれのディスクリプタによって指定された格納先からデータを読み出して連続的にデータを転送する制御を行う制御部の機能を果たす。
【００１２】
加算部４は、図２に示すように、それぞれ機能毎のディスクリプタの使用された順番を判断するための使用履歴ナンバのＶＡＬＩＤリセット信号を加算する加算回路４ａ〜４ｄと、各加算回路４ａ〜４ｄで加算されたＶＡＬＩＤリセット信号をそれぞれ保持するカウントレジスタ５ａ〜５ｄと、各カウントレジスタ５ａ〜５ｄにそれぞれ保持された各使用履歴ナンバのＶＡＬＩＤリセット信号を加算する加算回路６と、加算回路６によって加算された全ＶＡＬＩＤリセット信号の加算値を保持するカウントレジスタ７を有し、そのカウントレジスタ７に保持した全ＶＡＬＩＤリセット信号の加算値をディスクリプタの使用履歴ナンバの格納領域に書き込む。
【００１３】
ディスクリプタ８は、図３に示すように、ネクストディスクリプタポインタを格納する領域８ａ，送信元アドレスを格納する領域８ｂ，ディスクリプタ有効ビットを格納する領域８ｃ，割り込みモード，転送バイト数を格納する領域８ｄ，ＩＤナンバを格納する領域８ｅ，使用履歴ナンバを格納する領域８ｆからなる。すなわち、上記ＩＤナンバを格納する領域８ｅが、メモリの各ディスクリプタにデバッグにおいて使用したディスクリプタを判別し易くするための個別の識別ナンバを格納する領域に相当する。
また、上記使用履歴ナンバを格納する領域８ｆが、メモリの各ディスクリプタにそれぞれの機能毎のディスクリプタの使用された順番を判断するための使用履歴ナンバを格納する領域に相当する。
【００１４】
ディスクリプタ８の１ＷＯＲＤ目はネクストディスクリプタポインタを格納する領域８ａであり、そのネクストディスクリプタポインタによって次のデータの処理指定をするディスクリプタを指定する。２ＷＯＲＤ目は送信元アドレスを格納する領域８ｂであり、その送信元アドレスによってＤＭＡ転送するデータが格納されたアドレスを指定する。３ＷＯＲＤ目はディスクリプタ有効ビットを格納する領域８ｃであり、そのディスクリプタ有効ビットによってディスクリプタが有効であるか否かを指定する。４ＷＯＲＤ目は割り込みモードや転送バイト数を格納する領域８ｄであり、そのデータに基づいて割り込みモードや転送バイト数などを指定する。
【００１５】
また、５ＷＯＲＤ目にＩＤナンバを格納する領域８ｅを新たに設けており、そのＩＤナンバによって使用しているディスクリプタを判別することができ、どのディスクリプタが意図したものであるか明確に区別することができる。
つまり、ディスクリプタとそのディスクリプタが指定するデータのアドレスが連続していないためにデバッグ時に判別し難いため、ディスクリプタにＩＤナンバを格納することにより、どのディスクリプタがどのデータに対応しているか判別し易くなる。
このＩＤナンバの上位何ビットかを機能別ＩＤナンバなどに利用することにより、機能毎に異なったディスクリプタに機能別のＩＤナンバを割り振ることができ、機能毎のディスクリプタとデータの判別も行うことができ、デバッグ時にどの機能のディスクリプタが使用されているのかを判別し易くなる。
【００１６】
さらに、６ＷＯＲＤ目に使用履歴ナンバを格納する領域８ｆを新たに設けており、その使用履歴ナンバは、ＤＭＡＣ１から送られるＶＡＬＩＤリセット信号をＤＭＡＣ１で加算していったものを書き込む領域である。
使用履歴ナンバの格納領域（レジスタ）は、デフォルト「０ｘ００００００００」で「０ｘｆｆｆｆｆｆｆｆ」になると「０」に書き戻される。
ＶＡＬＩＤリセット信号は、そのディスクリプタが使用されるとＤＭＡＣ１から０が書き込まれる。つまり、そのディスクリプタが使用されるとカウントを１つ増やして使用履歴ナンバに書き込む。
そして、この使用履歴ナンバの値によって使用したディスクリプタの順番を知ることができる。
【００１７】
つまり、有効でかつ未使用のディスクリプタはＶＡＬＩＤ　ｂｉｔ＝１、使用後は（ｃｈａｉｎしたとき）使用後ＶＡＬＩＤ　ｂｉｔ＝０と同時に使用ディスクリプタナンバにカウント値を書き込む（ライトする）。
こうして、使用しているディスクリプタの順番を機能が別であっても知ることができる。
【００１８】
このデータ転送制御装置は、各加算回路４ａ〜４ｄがそれぞれ機能毎のディスクリプタの使用された順番を判断するための使用履歴ナンバのＶＡＬＩＤリセット信号を加算すると、それぞれカウントレジスタ５ａ〜５ｄに保持し、加算回路６が各カウントレジスタ５ａ〜５ｄにそれぞれ保持された各使用履歴ナンバのＶＡＬＩＤリセット信号を加算すると、カウントレジスタ７に保持し、そのカウントレジスタ７に保持した全ＶＡＬＩＤリセット信号の加算値をディスクリプタの使用履歴ナンバの格納領域に書き込む。
【００１９】
例えば、図４に示すように、それぞれ異なる機能１と機能２の各ディスクリプタ９と１０にそれぞれ異なる使用履歴ナンバをつけることにより、機能が異なるディスクリプタの使用順序も判別することができる。
また例えば、ＭＡＣの受信と送信を行う際、それぞれの送信ＤＭＡＣ，送信ディスクリプタ，受信ＤＭＡＣ，受信ディスクリプタを用意しなければならない。ここで、機能▲１▼：送信ＤＭＡＣ，機能▲２▼：受信ＤＭＡＣ，送信ディスクリプタ３個，受信ディスクリプタ３個を用意し、そのＭＡＣのデバッグで全２重動作を確認したい場合、送信と受信がランダムにリードライトされていればよいが、通常の方法ではそれを判断することはできない。
【００２０】
そこで、このデータ転送制御装置では、先ほどの使用履歴ナンバを参照すれば、どのようにディスクリプタが使用されてデータのやり取りが行われているかを知ることができる。
また、ＤＭＡＣ１内の機能毎のカウントレジスタを参照すれば、それぞれの機能でのデータのやり取りを知ることができ、アービタの機能を確認することができる。
例えば、機能▲１▼：セントロＤＭＡＣ，機能▲２▼：ＭＡＣ受信ＤＭＡＣをデバッグする際にＤＭＡＣ１内の機能毎のカウントレジスタを読み取ることにより、各機能のデータがどれだけ優先度が高いかを知ることができる。
【００２１】
このデータ転送制御装置は、ディスクリプタにＩＤナンバを付与しているので、デバッグ時にどのディスクリプタがどのデータを有しているなどの判断がつき易くなる。また、そのＩＤナンバは自由に設定できるので、そのディスクリプタのアドレスを書き込んだり、ＩＤナンバを機能ＩＤナンバ，ディスクリプタＩＤナンバなどに分けることによってデバッグの作業でのミスが起こり難くなる。
さらに、ディスクリプタの使用履歴ナンバを付与しているので、どのディスクリプタがいつ使用されているかが判断できるようになる。
したがって、ＤＭＡＣで機能の異なるディスクリプタを扱っても全てのＶＡＬＩＤ信号をインクリメントすることにより、どの機能のどこのディスクリプタが使用されているのかを判断することが容易になる。
さらにまた、各機能毎にレジスタを追加することにより、同時にそれぞれの機能を動作させたときにどの機能がどれだけデータのやり取りをしているかを判断することができる。
【００２２】
【発明の効果】
以上説明してきたように、この発明のデータ転送制御装置によれば、ＤＭＡデータ転送時にどのディスクリプタを使用しているのかを容易に判断することができる。
【図面の簡単な説明】
【図１】この発明の一実施形態であるデータ転送制御装置の構成を示すブロック図である。
【図２】図１に示したＤＭＡＣ１内の構成を示すブロック図である。
【図３】図１に示したディスクリプタのフォーマットを示す図である。
【図４】各機能毎のディスクリプタに使用履歴ナンバを格納する領域を設けたときのフォーマットを示す図である。
【図５】従来のデータ転送制御装置におけるＤＭＡデータ転送方式の説明図である。
【図６】図５に示した各ディスクリプタのフォーマットを示す説明図である。
【図７】同じ形式で機能の異なる２つのＤＡＭＣを示す説明図である。
【符号の説明】
１：ＤＭＡＣ　　　　　　　　２：ＲＡＭ
３：ディスクリプタ制御回路　４：加算部
４ａ〜４ｄ，６：加算回路
５ａ〜５ｄ，７：カウントレジスタ
８：ディスクリプタ
８ａ：ネクストディスクリプタポインタを格納する領域
８ｂ：送信元アドレスを格納する領域
８ｃ：ディスクリプタ有効ビットを格納する領域
８ｄ：割り込みモード，転送バイト数を格納する領域
８ｅ：ＩＤナンバを格納する領域
８ｆ：使用履歴ナンバを格納する領域
９，１０：使用履歴ナンバを格納する領域
【図１】
2004110159.tif 000003
【図２】
2004110159.tif 000004
【図３】
2004110159.tif 000005
【図４】
2004110159.tif 000006
【図５】
2004110159.tif 000007
【図６】
2004110159.tif 000008
【図７】
2004110159.tif 000009