| 【発明の名称】 |
データ転送装置 |
| 【発明者】 |
【氏名】森下 昭彦
|
| 【要約】 |
【課題】1つのデータ(例えば画像データ)をメモリから読み出す期間やメモリに書き込む期間の時間短縮を図ることにより、単一のメモリでも高速にDMA転送できるデータ転送装置を提供すること。
【解決手段】アドレス指定部21〜23と信号出力部24とアドレス変更部25とを備える。アドレス指定部は、メモリのアドレスのうち、1回のDMA転送に関わる1つのアドレスを指定する。信号出力部は、転送元からメモリへのDMA転送時には上記1つのアドレスにデータを書き込むタイミングを指定する第1信号、メモリから転送先へのDMA転送時には上記1つのアドレスからデータを読み出すタイミングを指定する第2信号を出力する。アドレス変更部は、1回のDMA転送に要する期間内であって、第1信号または第2信号の出力後に、上記1つのアドレスを次回のDMA転送に関わるアドレスに変更する。 |
【特許請求の範囲】
【請求項1】 転送元からメモリへのデータのDMA転送と該メモリから転送先へのデータのDMA転送とを行うデータ転送装置において、前記メモリのアドレスのうち、1回のDMA転送に関わる1つのアドレスを指定するアドレス指定部と、前記転送元から前記メモリへのDMA転送時には前記アドレス指定部によって指定されるアドレスにデータを書き込むタイミングを指定する第1信号、前記メモリから前記転送先へのDMA転送時には前記指定されるアドレスからデータを読み出すタイミングを指定する第2信号を出力する信号出力部と、前記1回のDMA転送に要する期間内であって、前記信号出力部からの前記第1信号または前記第2信号の出力が終了した後に、前記アドレス指定部によって指定されるアドレスを次回のDMA転送に関わるアドレスに変更するアドレス変更部とを備えたことを特徴とするデータ転送装置。 【請求項2】 請求項1に記載のデータ転送装置において、前記アドレス指定部は、互いに異なる値を保持する第1カウンタと第2カウンタとを有し、かつ、前記転送元から前記メモリへのDMA転送時には前記第1カウンタ、前記メモリから前記転送先へのDMA転送時には前記第2カウンタを選択するカウンタ選択部を有し、該カウンタ選択部によって選択された前記第1カウンタまたは前記第2カウンタの値を用いて前記メモリのアドレスを指定するものであり、前記アドレス変更部は、前記信号出力部からの前記第1信号の出力が終了した後に前記第1カウンタの値を変更し、前記第2信号の出力が終了した後に前記第2カウンタの値を変更することを特徴とするデータ転送装置。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、データをDMA転送するデータ転送装置に関する。 【0002】 【従来の技術】従来より、システム全体の監視や制御を行うCPUを介さずに、専用のハードウエア(例えばロジックLSI)を介してデータ転送するDMA(Direct MemoryAccess)転送方式が知られている。このDMA転送方式によれば、CPUを介してデータ転送する方式に比べて高速にデータ転送できる。また、データ転送中にCPUが別の処理を実行できるという利点もある。 【0003】このようなDMA転送方式は、各種の画像処理装置にも採用されている。例えばフィルムスキャナなどの画像入力装置では、イメージセンサから出力されてA/D変換された画像データがメモリにDMA転送され(メモリへの書き込み)、メモリ内の画像データが外部のコンピュータにDMA転送される(メモリからの読み出し)。 【0004】ところで、画像入力装置には、画像の所定範囲(例えば1ライン分)の画像データを全て外部のコンピュータに読み出し終えるまでの時間(読み取り時間)を短縮することが望まれている。そして近年、メモリを2つ設けることが提案された。メモリを2つ設けたDMA転送方式の画像入力装置30では、図9に示すように、イメージセンサとA/D変換器とを有する画像入力部31からの画像データが一方のメモリ32に書き込まれている間に、並行して、他方のメモリ33内の画像データが外部に読み出される。このように、メモリ32への書き込みとメモリ33からの読み出しとを同時に行うことにより、読み取り時間を短縮できる。なお、読み書きの並行処理は、CPU34からDMA転送の指示を受けたのち、専用のハードウエア35が実行する。 【0005】 【発明が解決しようとする課題】しかしながら、画像入力装置には、読み取り時間を短縮するだけでなく、画像の階調数や解像度を上げることも望まれている。 【0006】階調数を上げるためには画像データのビット数を増やさなければならず、結果として、専用のハードウエア(35)とメモリ(32,33)との間の配線数を増やす必要が出てくる。また、解像度を上げるためにはイメージセンサの画素数を増やさなければならず、結果として、画像データの数が増え、読み取り時間も長くなってしまう。この場合、読み取り時間を短縮するために2つの画像データを同時に転送しようとすると、専用のハードウエア(35)とメモリ(32,33)との間の配線数を増やさなければならない。何れにしても、配線数が増えると、配線経路が複雑化すると共に配線長が長くなるため、製造コストが上昇し、高速クロック駆動への耐ノイズ性が低下するという問題も生じてしまう。耐ノイズ性の低下を防ぐために、隣り合う配線どうしの間隔を広げたり、隣り合う配線の間にグランド線を配置したりする方策が考えられるが、基板の大型化は避けられない。また、耐ノイズ性の低下防止の効果も充分ではなかった。 【0007】このように、2つのメモリ32,33を設けたDMA転送方式の画像入力装置30において、画像の階調数や解像度を上げようとすると、様々な別の問題が発生してしまう。このため、DMA転送方式の画像入力装置においては、メモリの数を1つにすることが望まれる。しかし、ただ単にメモリの数を1つにすると、画像データのメモリへの書き込みとメモリからの読み出しとを交互に行わなければならず、読み取り時間が極端に遅くなってしまう。 【0008】ちなみに、従来のDMA転送方式の画像入力装置では、メモリ内の1つの画像データを外部に読み出す際、専用のハードウエアが、外部からの読み出し要求を待って、まず読み出し対象の画像データが格納されているアドレスを決定し、その後、決定したアドレスとリード信号とをメモリに出力する。メモリに1つの画像データを書き込む場合も同様であり、専用のハードウエアが、書き込み要求を待ってアドレスを決定し、その後、決定したアドレスとライト信号とをメモリに出力する。 【0009】本発明の目的は、1つのデータ(例えば画像データ)をメモリから読み出す期間やメモリに書き込む期間の時間短縮を図ることにより、単一のメモリでも高速にDMA転送できるデータ転送装置を提供することにある。 【0010】 【課題を解決するための手段】本発明のデータ転送装置は、転送元からメモリへのデータのDMA転送と該メモリから転送先へのデータのDMA転送とを行うデータ転送装置において、アドレス指定部と、信号出力部と、アドレス変更部とを備えたものである。アドレス指定部は、メモリのアドレスのうち、1回のDMA転送に関わる1つのアドレスを指定する。信号出力部は、転送元からメモリへのDMA転送時には、アドレス指定部によって指定されるアドレスにデータを書き込むタイミングを指定する第1信号を出力する。また、信号出力部は、メモリから転送先へのDMA転送時には、アドレス指定部によって指定されるアドレスからデータを読み出すタイミングを指定する第2信号を出力する。アドレス変更部は、1回のDMA転送に要する期間内であって、信号出力部からの第1信号または第2信号の出力が終了した後に、アドレス指定部によって指定されるアドレスを次回のDMA転送に関わるアドレスに変更する。 【0011】このデータ転送装置では、1回のDMA転送に要する期間内であって、第1信号または第2信号の出力が終了した後に、次回のDMA転送に関わるアドレスを次回のDMA転送の開始に先立って決定しておくため、次回のDMA転送の開始が指示された後でアドレスを決定する必要はなく、直ぐにデータのDMA転送を開始することができる。 【0012】 【発明の実施の形態】以下、図面を用いて本発明の実施形態を詳細に説明する。本発明の実施形態は、請求項1,請求項2に対応する。本実施形態のフィルムスキャナ10は、図1に示すように、フィルム原稿(不図示)に写し込まれている画像を読み取って、その画像データを外部のコンピュータに出力したり、逆にコンピュータから画像データを取り込んだりする機能を備えた装置である。 【0013】また、フィルムスキャナ10は、内部における画像データの転送に、DMA転送方式を採用した装置である。すなわち、フィルムスキャナ10では、システム全体の監視や制御を行うCPU12を介さずに、専用のハードウエアであるデータ処理部13(データ転送装置)を介して画像データのDMA転送が行われる。ここで、フィルムスキャナ10の概略構成と、画像データのDMA転送とについて説明する。 【0014】フィルムスキャナ10の内部には、上記したCPU12とデータ処理部13の他、画像入力部11と、メモリ14と、入出力インターフェース(I/F)15とが設けられている。フィルムスキャナ10は、入出力I/F15を介して外部のコンピュータに接続されている。フィルムスキャナ10における画像データのDMA転送には3通りある。1つ目は、画像入力部11内のイメージセンサ(不図示)から出力されてA/D変換された画像データのメモリ14へのDMA転送である。2つ目は、メモリ14に格納された画像データの入出力I/F15へのDMA転送である。3つ目は、外部のコンピュータから入出力I/F15に取り込まれた画像データのメモリ14へのDMA転送である。何れにしても、1回のDMA転送によって1つの画像データが転送される。 【0015】上記3つのDMA転送のうち2つ目と3つ目は、外部のコンピュータからの転送要求に応じて実行される。外部のコンピュータからの転送要求は入出力I/F15を介してCPU12に送られ、要求の内容が2つ目のDMA転送を示すのか3つ目のDMA転送を示すのかを判断される。この判断の結果は、CPU12からデータ処理部13へ出力される。 【0016】さて、本実施形態のフィルムスキャナ10の特徴は、上記した3つのDMA転送を行うデータ処理部13にある。データ処理部13は、上記したように専用のハードウエアであり、ロジックLSI(大規模集積回路)にて構成される。次に、フィルムスキャナ10の内部に設けられたデータ処理部13の詳細な構成と、DMA転送時に画像データが読み書きされるメモリ14とについて説明する。 【0017】データ処理部13には、画像入力部11からの画像データに対して補正計算(欠陥補正処理、ガンマ補正処理、補間処理などの補正処理の計算)を行う加工処理部16と、CPU12からの指示を受けて画像データの転送方向を制御する入出力制御部18と、アドレス制御部17とが設けられる。さらに、アドレス制御部17には、図2に示すように、メモリ14のアドレスを指定するための値を保持するライト用アドレスカウンタ21およびリード用アドレスカウンタ22と、ライト用アドレスカウンタ21またはリード用アドレスカウンタ22の値をアドレス信号としてメモリ14に出力するカウンタセレクタ23と、メモリ14に画像データを書き込むタイミングを指定するライト信号(第1信号)またはメモリ14から画像データを読み出すタイミングを指定するリード信号(第2信号)を出力する信号出力回路24と、加工処理部16や入出力制御部18からの指示を受けてカウンタセレクタ23および信号出力回路24に指示を出す判断回路25とが設けられる。判断回路25は、ライト用アドレスカウンタ21およびリード用アドレスカウンタ22のインクリメントも行う。 【0018】上記したライト用アドレスカウンタ21は請求項の「第1カウンタ」に対応し、リード用アドレスカウンタ22は「第2カウンタ」に対応し、カウンタセレクタ23は「カウンタ選択部」に対応し、信号出力回路24は「信号出力部」に対応し、判断回路25は「アドレス変更部」に対応する。 【0019】メモリ14は、画像データを一時的に保管するための読み書き可能な半導体メモリ(RAM)であり、図3に示すように、2つの領域(第1領域14a,第2領域14b)に分けられている。第1領域14aおよび第2領域14bは各々、上記画像入力部11内のイメージセンサの1ライン分に相当する画像データを格納できる容量を持つ。第1領域14aには(0000)h〜(0FFF)hのアドレスが付けられ、第2領域14bには(1000)h〜(1FFF)hのアドレスが付けられている。 【0020】次に、フィルムスキャナ10における画像データのDMA転送動作を説明する。フィルムスキャナ10に電源が投入されると、CPU12は、フィルムスキャナ10を初期化する。アドレス制御部17の初期化は入出力制御部18を介して行われる。アドレス制御部17の初期化により、ライト用アドレスカウンタ21およびリード用アドレスカウンタ22は初期値に設定される。 【0021】具体的には、ライト用アドレスカウンタ21の値がメモリ14の第1領域14aの第1アドレス(0000)hに相当する値に設定され、リード用アドレスカウンタ22の値が第2領域14bの第1アドレス(1000)hに相当する値に設定される。フィルムスキャナ10の電源投入直後は、メモリ14の第1領域14aにも第2領域14bにも画像データは存在しない。 【0022】(画像入力部からメモリへのDMA転送)まず初めに、図4のタイミングチャートを用い、上記した1つ目のDMA転送について説明する。ここでは、画像入力部11(転送元)からの画像データがメモリ14の第1領域14aに連続的にDMA転送される場合を説明する。このDMA転送に先立って、上記の初期化により、ライト用アドレスカウンタ21は第1領域14aの第1アドレス(0000)hの値に設定され、リード用アドレスカウンタ22は第2領域14bの第1アドレス(1000)hの値に設定されている(図4のタイミングt0)。 【0023】CPU12は、画像入力部11(イメージセンサ,A/D変換器)を制御してフィルム原稿(不図示)の画像を読み取らせると共に、データ処理部13の加工処理部16に対して加工処理の開始を指示する。画像入力部11は、画像を読み取った結果として、複数(1ライン分)の画像データを順に加工処理部16へ転送する。加工処理部16では、画像入力部11からの画像データに対して順に補正計算(濃度調整など)を行っていく。 【0024】加工処理部16に対して加工処理の開始を指示すると同時に、CPU12は、データ処理部13の入出力制御部18に対し、「画像入力部11からメモリ14へのDMA転送」を指示する。これを受けて、入出力制御部18は、アドレス制御部17の判断回路25に対し、メモリ14への画像データの書き込み指示を出す。そして、判断回路25は、カウンタセレクタ23に対し、ライト用アドレスカウンタ21の選択を指示する。これにより、カウンタセレクタ23からメモリ14には、ライト用アドレスカウンタ21の値(0000)hがアドレス信号として出力される(タイミングt1)。 【0025】一方、加工処理部16は、第1の画像データに対する加工処理が終わると、加工処理済の画像データをメモリ14への書き込みデータとしてデータバスに出力する(タイミングt2)。また、加工処理部16は、第1の画像データに対する加工処理が終わった時点で、アドレス制御部17の判断回路25に対し、加工処理の終了を知らせる信号(メモリ14への書き込み指示)を出力する。 【0026】そして、判断回路25は、加工処理部16からの書き込み指示(加工処理の終了を知らせる信号)と入出力制御部18からの書き込み指示とが揃った時点で、信号出力回路24に対し、メモリ14への書き込みを指示する。これを受けて、信号出力回路24は、メモリ14に対してライト信号を出力する(タイミングt3)。その結果、メモリ14には、ライト信号が出力されている間のアドレス信号に基づいて、加工処理済の第1の画像データが第1領域14aの第1アドレス(0000)hに書き込まれる。 【0027】判断回路25は、信号出力回路24からのライト信号の出力が終了した直後(タイミングt4)、ライト用アドレスカウンタ21をインクリメントする。これにより、ライト用アドレスカウンタ21の値は1つ増加し、第1領域14aの第2アドレス(0001)hに相当する値となる。加工処理部16では、加工処理済の第1の画像データをデータバスに出力した後、第2の画像データに対する加工処理を開始する。そして、加工処理済の第2の画像データを書き込みデータとしてデータバスに出力する(タイミングt5)と共に、アドレス制御部17の判断回路25に対して書き込み指示(加工処理の終了を知らせる信号)を出力する。 【0028】このとき既に、判断回路25は、入出力制御部18からの書き込み指示を受けており、加工処理部16からの書き込み指示(加工処理の終了を知らせる信号)と入出力制御部18からの書き込み指示とが揃ったため、信号出力回路24に対し、メモリ14への書き込み指示を出す。そして、信号出力回路24からメモリ14に対しライト信号が出力され(タイミングt6)、加工処理済の第2の画像データが第1領域14aの第2アドレス(0001)hに書き込まれる。 【0029】そして、判断回路25は、信号出力回路24からのライト信号の出力が終了した直後(タイミングt7)、ライト用アドレスカウンタ21をインクリメントする。これにより、ライト用アドレスカウンタ21の値は1つ増加し、第1領域14aの第3アドレス(0002)hに相当する値となる。このようにして、加工処理部16における加工処理が終わる度に上記動作が繰り返され、メモリ14の第1領域14aへ加工処理済の画像データが順に書き込まれていく。また、ライト用アドレスカウンタ21は、信号出力回路24からライト信号が出力される度にインクリメントされていく。 【0030】なお、ライト用アドレスカウンタ21のインクリメントにより、ライト用アドレスカウンタ21の値が第1領域14aの最終アドレス(0FFF)hから第2領域14bの第1アドレス(1000)hに設定されると、判断回路25は、リード用アドレスカウンタ22の値を第1領域14aの第1アドレス(0000)hに設定する。 【0031】そして、上記動作と同様に、加工処理済の画像データが第2領域14bにも順に書き込まれ、ライト用アドレスカウンタ21はライト信号が出力される度にインクリメントされていく。 (メモリから入出力I/FへのDMA転送)次に、図5のタイミングチャートを用い、上記した2つ目のDMA転送について説明する。ここでは、メモリ14の第1領域14aに格納された画像データが入出力I/F15(転送先)に連続的にDMA転送される場合を説明する。 【0032】このDMA転送に先立って、ライト用アドレスカウンタ21は第2領域14bの第1アドレス(1000)hの値に設定され、リード用アドレスカウンタ22は第1領域14aの第1アドレス(0000)hの値に設定される(図5のタイミングt10)。上記したように、「メモリ14から入出力I/F15へのDMA転送」は、外部のコンピュータからの転送要求に応じて実行される。つまり、外部からの要求の内容はCPU12で判断され、この場合には「メモリ14から入出力I/F15へのDMA転送」を指示する信号がCPU12からデータ処理部13の入出力制御部18に出力される。 【0033】また、入出力制御部18には、入出力I/F15からの要求信号も入力される(タイミングt11)。入出力制御部18は、入出力I/F15からの要求信号とCPU12からの「メモリ14から入出力I/F15へのDMA転送」指示とを受け、入出力I/F15に対して回答信号を出力する(タイミングt12)と共に、アドレス制御部17の判断回路25に対し、メモリ14からの画像データの読み出しを指示する。 【0034】判断回路25は、まず、カウンタセレクタ23に対し、リード用アドレスカウンタ22の選択を指示する。これにより、カウンタセレクタ23からメモリ14には、リード用アドレスカウンタ22の値(0000)hがアドレス信号として出力される。次いで判断回路25は、入出力制御部18からの読み出し指示に基づいて、信号出力回路24に対し、メモリ14からの画像データの読み出しを指示する。これを受けて、信号出力回路24は、メモリ14に対してリード信号を出力する(タイミングt13)。 【0035】その結果、リード信号が出力されている間のアドレス信号に基づいて、第1領域14aの第1アドレス(0000)hに格納されている画像データがデータバスに読み出される(読み出しデータ)。判断回路25は、信号出力回路24からのリード信号の出力が終了した直後(タイミングt14)、リード用アドレスカウンタ22をインクリメントする。これにより、リード用アドレスカウンタ22の値は1つ増加し、第1領域14aの第2アドレス(0001)hに相当する値となる。 【0036】一方、メモリ14からデータバスに読み出された画像データは、データ処理部13の入出力制御部18に転送され、入出力制御部18から入出力I/F15へのライト信号と共に、入出力I/F15へ出力される。その後、入出力制御部18は、入出力I/F15に対する回答信号を非アクティブにする(タイミングt15)。 【0037】これを受けて、入出力I/F15が次の要求信号を入出力制御部18に出力する(タイミングt16)ことにより、上記と同様に、アドレス制御部17の信号出力回路24からメモリ14にリード信号が出力され(タイミングt17)、このとき既にカウンタセレクタ23から出力されているアドレス信号に基づいて、第1領域14aの第2アドレス(0001)hに格納されている画像データが読み出される。 【0038】そして、判断回路25は、信号出力回路24からのリード信号の出力が終了した直後(タイミングt18)、リード用アドレスカウンタ22をインクリメントする。これにより、リード用アドレスカウンタ22の値は1つ増加し、第1領域14aの第3アドレス(0002)hに相当する値となる。このようにして、入出力I/F15から要求信号が出力される度に上記動作が繰り返され、第1領域14aから画像データが順に読み出されていく。また、リード用アドレスカウンタ22は、信号出力回路24からリード信号が出力される度にインクリメントされていく。 【0039】なお、リード用アドレスカウンタ22のインクリメントにより、リード用アドレスカウンタ22の値が第1領域14aの最終アドレス(0FFF)hから第2領域14bの第1アドレス(1000)hに設定されると、判断回路25は、ライト用アドレスカウンタ21の値を第1領域14aの第1アドレス(0000)hに設定する。 【0040】そして、上記動作と同様に、第2領域14bからも画像データが順に読み出され、リード用アドレスカウンタ22はリード信号が出力される度にインクリメントされていく。 (画像入力部からメモリへ、メモリから入出力I/FへのDMA転送)次に、図6のタイミングチャートおよび図7のフローチャートを用い、画像入力部11(転送元)からメモリ14の第2領域14bに画像データを書き込みながら、第1領域14aの画像データを入出力I/F15(転送先)に読み出すDMA転送を説明する。第2領域14bへの書き込みが連続的に行われ、第1領域14aからの読み出しがランダムに行われる書き込み優先処理の例を説明する。 【0041】このDMA転送に先立って、ライト用アドレスカウンタ21は第2領域14bの第1アドレス(1000)hの値に設定され、リード用アドレスカウンタ22は第1領域14aの第1アドレス(0000)hの値に設定される(図6のタイミングt20,図7のステップS1)。CPU12は、画像入力部11を制御して画像を読み取らせると共に、加工処理部16に対して加工処理の開始を指示し、入出力制御部18に対して「画像入力部11からメモリ14へのDMA転送」を指示する。 【0042】このとき、入出力制御部18に対して入出力I/F15から要求信号が入力されていない(ステップS2がN)ため、入出力制御部18は、判断回路25に対し、メモリ14への画像データの書き込み指示を出す。そして、判断回路25は、カウンタセレクタ23に対し、ライト用アドレスカウンタ21の選択を指示する。これにより、メモリ14には、ライト用アドレスカウンタ21の値(1000)hがアドレス信号として出力される(タイミングt21)。 【0043】一方、加工処理部16は、第1の画像データに対する加工処理が終わると、加工処理済の画像データをデータバスに出力する(タイミングt22)と共に、判断回路25に対してメモリ14への書き込み指示(加工処理の終了を知らせる信号)を出力する(ステップS3がY)。判断回路25は、加工処理部16からの書き込み指示(加工処理の終了を知らせる信号)と入出力制御部18からの書き込み指示とが揃った時点で、信号出力回路24に対し、第1の画像データのメモリ14への書き込みを指示する。これを受けて、信号出力回路24は、メモリ14に対してライト信号を出力する(タイミングt23,ステップS4)。 【0044】その結果、メモリ14には、ライト信号が出力されている間のアドレス信号に基づいて、加工処理済の第1の画像データが第2領域14bの第1アドレス(1000)hに書き込まれる。判断回路25は、信号出力回路24からのライト信号の出力が終了した直後(タイミングt24)、ライト用アドレスカウンタ21をインクリメントする(ステップS5)。これにより、ライト用アドレスカウンタ21の値は1つ増加し、第2領域14bの第2アドレス(1001)hに相当する値となる。 【0045】このとき、入出力制御部18に対して入出力I/F15から要求信号Aが入力される(ステップS2がY)と、判断回路25に対して加工処理部16から書き込み指示(加工処理の終了を知らせる信号)が入力されてない(ステップS6がN)ため、入出力制御部18は、入出力I/F15に対して回答信号を出力する(タイミングt25)と共に、判断回路25に対し、メモリ14からの画像データの読み出し指示を出す。 【0046】そして、判断回路25はまず、カウンタセレクタ23に対し、リード用アドレスカウンタ22の選択を指示する。これにより、カウンタセレクタ23からメモリ14には、リード用アドレスカウンタ22の値(0000)hがアドレス信号として出力される。次いで判断回路25は、入出力制御部18からの読み出し指示に基づいて、信号出力回路24に対し、メモリ14からの読み出しを指示する。これを受けて、信号出力回路24は、メモリ14に対してリード信号を出力する(タイミングt26,ステップS7)。 【0047】その結果、リード信号が出力されている間のアドレス信号に基づいて、第1領域14aの第1アドレス(0000)hに格納されている画像データが読み出される。判断回路25は、信号出力回路24からのリード信号の出力が終了した直後(タイミングt27)、リード用アドレスカウンタ22をインクリメントする。(ステップS8)これにより、リード用アドレスカウンタ22の値は1つ増加し、第1領域14aの第2アドレス(0001)hに相当する値となる。 【0048】また、書き込み優先処理のため、判断回路25は、リード用アドレスカウンタ22に対するインクリメントと同時に、カウンタセレクタ23に対しライト用アドレスカウンタ21の選択を指示する。これにより、メモリ14には、ライト用アドレスカウンタ21の値(1001)hがアドレス信号として出力される。一方、メモリ14から読み出された画像データは、読み出しデータとしてデータ処理部13の入出力制御部18に転送され、入出力制御部18から入出力I/F15へのライト信号と共に入出力I/F15へ出力される。その後、入出力制御部18は、入出力I/F15に対する回答信号を非アクティブにする(タイミングt28)。 【0049】このような画像データの読み出し期間(タイミングt24〜t28)、すなわち、要求信号の入力から回答信号が非アクティブになるまでの期間と並行して、加工処理部16では、第2の画像データに対する加工処理を行っている。また、判断回路25は、リード用アドレスカウンタ22のインクリメント(タイミングt27,ステップS8)が終了した後には、加工処理部16からの書き込み指示(加工処理の終了を知らせる信号)を受け付け可能な状態になっている。 【0050】このため、入出力制御部18から入出力I/F15への回答信号が非アクティブになった(タイミングt28)後、次の要求信号が入出力I/F15から入出力制御部18に入力される前(ステップS2がN)に、加工処理部16から判断回路25に書き込み指示(加工処理の終了を知らせる信号)が出力され(ステップS3がY)、加工処理済の第2の画像データがデータバスに出力される(タイミングt29)と、判断回路25は、入出力制御部18からの書き込み指示を信号出力回路24に出力する。 【0051】そして、上記したステップS4と同様にして、信号出力回路24からメモリ14に対しライト信号が出力され(タイミングt30)、加工処理済の第2の画像データが第2領域14bの第2アドレス(1001)hに書き込まれる。その後、判断回路25は、上記したステップS5と同様にして、信号出力回路24からのライト信号の出力が終了した直後(タイミングt31)、ライト用アドレスカウンタ21をインクリメントする。これにより、ライト用アドレスカウンタ21の値は1つ増加し、第2領域14bの第3アドレス(1002)hに相当する値となる。 【0052】第2の画像データをメモリ14に書き込んでいる最中(タイミングt30〜t31)に、入出力I/F15から入出力制御部18に要求信号Bが発生していたとすると、判断回路25は、ライト用アドレスカウンタ21のインクリメント(タイミングt31,ステップS5)が終了した後に、入出力制御部18からの読み出し指示を受ける(ステップS2がY)。 【0053】この時点において加工処理部16は、未だ第3の画像データに対する加工処理を行っている最中である。したがって、加工処理部16からの書き込み指示(加工処理の終了を知らせる信号)は、未だ判断回路25に入力されていない(ステップS6がN)。このため、判断回路25は、カウンタセレクタ23に対してリード用アドレスカウンタ22の選択を指示する。これにより、メモリ14には、リード用アドレスカウンタ22の値(0001)hがアドレス信号として出力される(タイミングt32)。 【0054】次いで、判断回路25は、入出力制御部18からの読み出し指示を信号出力回路24に出力する。これを受けて、信号出力回路24は、メモリ14に対してリード信号を出力する(タイミングt33,ステップS7)。その結果、第1領域14aの第2アドレス(0001)hに格納されている画像データが読み出される。判断回路25は、信号出力回路24からのリード信号の出力が終了した直後(タイミングt34)、リード用アドレスカウンタ22をインクリメントする(ステップS8)。これにより、リード用アドレスカウンタ22の値は1つ増加し、第1領域14aの第3アドレス(0002)hに相当する値となる。 【0055】また、書き込み優先処理のため、判断回路25は、リード用アドレスカウンタ22に対するインクリメントと同時に、カウンタセレクタ23に対しライト用アドレスカウンタ21の選択を指示する。これにより、メモリ14には、ライト用アドレスカウンタ21の値(1002)hがアドレス信号として出力される。 【0056】一方、メモリ14から読み出された画像データは、読み出しデータとしてデータ処理部13の入出力制御部18に転送され、入出力制御部18から入出力I/F15へのライト信号と共に入出力I/F15へ出力される。その後、入出力制御部18は、入出力I/F15に対する回答信号を非アクティブにする(タイミングt35)。 【0057】上記の画像データの読み出し期間と並行して、加工処理部16では、第3の画像データに対する加工処理を行っている。また、判断回路25は、リード用アドレスカウンタ22のインクリメント(タイミングt34,ステップS8)が終了した後には、加工処理部16からの書き込み指示(加工処理の終了を知らせる信号)を受け付け可能な状態になっている。 【0058】このため、入出力制御部18から入出力I/F15への回答信号が非アクティブになった(タイミングt35)後、加工処理部16から判断回路25に書き込み指示(加工処理の終了を知らせる信号)が出力され、加工処理済の第3の画像データがデータバスに出力される。したがって、回答信号が非アクティブになった(タイミングt35)後、続けて入出力I/F15から入出力制御部18に要求信号Cが入力された場合(ステップS2がY)、すでに、加工処理部16から判断回路25に書き込み指示(加工処理の終了を知らせる信号)が出力され(ステップS6がY)、加工処理済の第3の画像データがデータバスに出力されているため、書き込み優先処理によって、判断回路25は、入出力制御部18からの書き込み指示を信号出力回路24に出力する。 【0059】そして、信号出力回路24からメモリ14に対しライト信号が出力され(タイミングt36,ステップS9)、加工処理済の第3の画像データが第2領域14bの第3アドレス(1002)hに書き込まれる。 【0060】その後、判断回路25は、信号出力回路24からのライト信号の出力が終了した直後(タイミングt37)、ライト用アドレスカウンタ21をインクリメントする(ステップS10)。これにより、ライト用アドレスカウンタ21の値は1つ増加し、第2領域14bの第4アドレス(1003)hに相当する値となる。また、判断回路25は、ライト用アドレスカウンタ21のインクリメント(タイミングt37,ステップS10)が終了した直後、カウンタセレクタ23に対してリード用アドレスカウンタ22の選択を指示する。これにより、メモリ14には、リード用アドレスカウンタ22の値(0002)hがアドレス信号として出力される。 【0061】次いで、判断回路25は、入出力制御部18からの読み出し指示を信号出力回路24に出力する。これを受けて、信号出力回路24は、メモリ14に対してリード信号を出力する(タイミングt38,ステップS11)。その結果、第1領域14aの第3アドレス(0002)hに格納されている画像データが読み出される。 【0062】判断回路25は、信号出力回路24からのリード信号の出力が終了した直後(タイミングt39)、リード用アドレスカウンタ22をインクリメントする。(ステップS12)これにより、リード用アドレスカウンタ22の値は1つ増加し、第1領域14aの第4アドレス(0003)hに相当する値となる。また、書き込み優先処理のため、判断回路25は、リード用アドレスカウンタ22に対するインクリメントと同時に、カウンタセレクタ23に対しライト用アドレスカウンタ21の選択を指示する。これにより、メモリ14には、ライト用アドレスカウンタ21の値(1003)hがアドレス信号として出力される。 【0063】一方、メモリ14から読み出された画像データは、読み出しデータとしてデータ処理部13の入出力制御部18に転送され、入出力制御部18から入出力I/F15へのライト信号と共に入出力I/F15へ出力される。その後、入出力制御部18は、入出力I/F15に対する回答信号を非アクティブにする(タイミングt40)。 【0064】このようにして、画像入力部11からメモリ14の第2領域14bに画像データを優先的に書き込みながら、入出力I/F15から要求信号が出力される度に上記動作が繰り返され、第1領域14aの画像データが順に読み出されていく。また、ライト用アドレスカウンタ21は、信号出力回路24からライト信号が出力される度にインクリメントされ、リード用アドレスカウンタ22は、リード信号が出力される度にインクリメントされていく。 【0065】(入出力I/FからメモリへのDMA転送)最後に、図8のタイミングチャートを用い、上記した3つ目のDMA転送について説明する。ここでは、外部のコンピュータから入出力I/F15(転送元)に取り込まれた画像データがメモリ14の第1領域14aに連続的にDMA転送される場合を説明する。 【0066】このDMA転送に先立って、ライト用アドレスカウンタ21は第1領域14aの第1アドレス(0000)hの値に設定され、リード用アドレスカウンタ22は第2領域14bの第1アドレス(1000)hの値に設定される(図8のタイミングt50)。上記したように、「入出力I/F15からメモリ14へのDMA転送」は、外部のコンピュータからの転送要求に応じて実行される。つまり、外部からの要求の内容はCPU12で判断され、この場合には「入出力I/F15からメモリ14へのDMA転送」を指示する信号がCPU12からデータ処理部13の入出力制御部18に出力される。 【0067】また、入出力制御部18には、入出力I/F15からの要求信号も入力される(タイミングt51)。入出力制御部18は、入出力I/F15からの要求信号とCPU12からの「入出力I/F15からメモリ14へのDMA転送」指示とを受け、入出力I/F15に対して回答信号を出力する(タイミングt52)と共に、リード信号を出力する(タイミングt53)。これにより、外部のコンピュータからの画像データは、入出力I/F15から入出力制御部18に読み出される。 【0068】また、入出力制御部18は、判断回路25に対して、メモリ14への画像データの書き込みを指示する。そして、判断回路25は、カウンタセレクタ23に対し、ライト用アドレスカウンタ21の選択を指示する。これにより、カウンタセレクタ23からメモリ14には、ライト用アドレスカウンタ21の値(0000)hがアドレス信号として出力される(タイミングt54)。 【0069】次いで判断回路25は、入出力制御部18からの書き込み指示に基づいて、信号出力回路24に対し、メモリ14への画像データの書き込みを指示する。これを受けて、信号出力回路24は、メモリ14に対してライト信号を出力する(タイミングt55)。その結果、メモリ14には、ライト信号が出力されている間のアドレス信号に基づいて、第1領域14aの第1アドレス(0000)hに外部からの第1の画像データが書き込まれる。 【0070】判断回路25は、信号出力回路24からのライト信号の出力が終了した直後(タイミングt56)、ライト用アドレスカウンタ21をインクリメントする。これにより、ライト用アドレスカウンタ21の値は1つ増加し、第1領域14aの第2アドレス(0001)hに相当する値となる。その後、入出力制御部18は、入出力I/F15に対する回答信号を非アクティブにする。 【0071】これを受けて、入出力I/F15が次の要求信号を入出力制御部18に出力する(タイミングt57)ことにより、上記と同様に、入出力制御部18から入出力I/F15にリード信号が出力されて外部の画像データが入出力制御部18に読み出される(タイミングt58)。次いで、信号出力回路24からメモリ14にライト信号が出力され(タイミングt59)、このとき既にカウンタセレクタ23から出力されているアドレス信号に基づいて、第1領域14aの第2アドレス(0001)hに外部からの第2の画像データが書き込まれる。 【0072】そして、判断回路25は、信号出力回路24からのライト信号の出力が終了した直後(タイミングt60)、ライト用アドレスカウンタ21をインクリメントする。これにより、ライト用アドレスカウンタ21の値は1つ増加し、第1領域14aの第3アドレス(0002)hに相当する値となる。このようにして、入出力I/F15から要求信号が出力される度に上記動作が繰り返され、第1領域14aに外部からの画像データが順に書き込まれていく。また、ライト用アドレスカウンタ21は、信号出力回路24からライト信号が出力される度にインクリメントされていく。 【0073】以上説明したように、本実施形態のフィルムスキャナ10によれば、1つの画像データのDMA転送に要する期間(例えば図4のt2〜t5,図5のt11〜t16,図8のt51〜t57)内であって、ライト信号の出力が終了した後(例えば図4のt4,図8のt56)に、ライト用アドレスカウンタ21をインクリメントし、リード信号の出力が終了した後(例えば図5のt14)に、リード用アドレスカウンタ22をインクリメントするので、1つの画像データのDMA転送に要する時間を短縮することができる。 【0074】ここで、従来のDMA転送方式のように、加工処理部16や入出力制御部18からの指示を待って、判断回路25がライト用アドレスカウンタ21,リード用アドレスカウンタ22をインクリメントする場合を考えてみる。この場合、判断回路25では、加工処理部16や入出力制御部18からの指示を受け取ると、まずライト用アドレスカウンタ21またはリード用アドレスカウンタ22をインクリメントし、その後、カウンタセレクタ23および信号出力回路24に指示を出すことになる。このため、加工処理部16,入出力制御部18の指示を受け取ってから、カウンタセレクタ23,信号出力回路24に指示を出すまでに時間が掛かってしまう。さらに、この判断回路25では、カウンタセレクタ23,信号出力回路24に指示を出した後は、加工処理部16,入出力制御部18からの「次の指示待ち状態」となる。 【0075】本実施形態のフィルムスキャナ10では、信号出力回路24からライト信号またはリード信号が出力された後、従来のDMA転送方式で発生してしまう判断回路25の上記「次の指示待ち状態」を有効利用して、判断回路25が予めライト用アドレスカウンタ21,リード用アドレスカウンタ22をインクリメントするため、判断回路25が加工処理部16,入出力制御部18の指示を受け取ってからカウンタセレクタ23,信号出力回路24に指示を出すまでの時間をほぼ無くすことができる。 【0076】したがって、本実施形態のフィルムスキャナ10では、1つの画像データのDMA転送に要する時間を確実に短縮することができる。このため、単一のメモリ14であっても、画像の所定範囲(1ライン分)の画像データを全て外部のコンピュータに読み出し終えるまでの読み取り時間を確実に短縮できる。さらに、単一のメモリ14によってフィルムスキャナ10を構成するため、従来のように2つのメモリを設けた場合に比べて、画像データのビット数やイメージセンサの画素数を増やした場合におけるデータ処理部13とメモリ14との間の配線数の増加を低く抑えることができる。このため、配線経路が複雑化することや、配線長が長くなることを回避でき、製造コストの上昇も低く抑えることができる。また、高速クロック駆動への耐ノイズ性の低下も回避できる。 【0077】したがって、本実施形態のフィルムスキャナ10によれば、画像の読み取り時間を短縮できるだけでなく、画像データのビット数の増加により画像の階調数を上げたり、イメージセンサの画素数の増加により解像度を上げたりすることも可能となる。 【0078】また、ライト用アドレスカウンタ21,リード用アドレスカウンタ21を用いて、メモリ14のアドレスを指定するための値を保持する構成としたので、フィルムスキャナ10における画像データのDMA転送動作が途中で停止されても、ライト用アドレスカウンタ21の値,リード用アドレスカウンタ21の値を確保しておくことにより、何時でも転送作業を再開できる。 【0079】なお、上記した実施形態では、画像入力装置の一例としてフィルムスキャナ10を説明したが、本発明は、フラットベッドスキャナやデジタルカメラなど、イメージセンサやA/D変換器を有する画像入力装置であれば全てに適用できる。さらに、上記した実施形態では、画像データをDMA転送する装置(データ処理部13)について説明したが、本発明は、画像データ以外のデータをDMA転送する装置にも適用できる。例えば、計測機器の内部において計測データをDMA転送する装置や、コンピュータの内部において有限要素法による解析データをDMA転送する装置、GPS(Global Positioning System)の内部において位置データをDMA転送する装置に、本発明を適用することが考えられる。 【0080】 【発明の効果】以上説明したように、本発明のデータ転送装置では、1回のDMA転送に要する期間内であって、第1信号(ライト信号)または第2信号(リード信号)の出力が終了した後に、次回のDMA転送に関わるアドレスを次回のDMA転送の開始に先立って決定しておくため、直ぐにデータのDMA転送を開始することができ、単一のメモリでもDMA転送の高速化が図られる。
|
| 【出願人】 |
【識別番号】000004112 【氏名又は名称】株式会社ニコン
|
| 【出願日】 |
平成12年10月2日(2000.10.2) |
| 【代理人】 |
【識別番号】100072718 【弁理士】 【氏名又は名称】古谷 史旺
|
| 【公開番号】 |
特開2002−108803(P2002−108803A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−302428(P2000−302428) |
|