(57)【要約】      （修正有）【課題】ＤＭＡコントローラを切り替える際の、ＤＭＡコントローラの非使用時間を低減できる情報処理装置、データ転送制御方法及びデータ転送制御用プログラムを提供する。【解決手段】情報処理装置（スキャナー１）において、第一処理部は、第一のＤＭＡＣが第二処理部に係るデータ転送を実行中である場合、第二のＤＭＡＣが有する複数のチャネルのうち、ＤＭＡＣの切替のために予約された予約チャネルを除く非予約チャネルを用いて、第二のＤＭＡＣに第一処理部に係るデータ転送を行わせる。第二処理部は、第一のＤＭＡＣによる、第二処理部に係る第一のデータ転送が完了した場合に、第一のＤＭＡＣの使用を終了して、予約チャネル又は非予約チャネルを用いて、第二のＤＭＡＣに第二処理部に係る第二のデータ転送を行わせる。第一処理部は、第二処理部による使用が終了した第一のＤＭＡＣに、第一処理部に係るデータ転送を行わせる。【選択図】図２
2020067887.tif 000002
【特許請求の範囲】
【請求項１】
第一処理部と、第二処理部と、第一のＤＭＡコントローラと、複数のチャネルを有する第二のＤＭＡコントローラと、を備え、
前記第一処理部は、前記第一のＤＭＡコントローラが前記第二処理部に係るデータ転送を実行中である場合、前記第二のＤＭＡコントローラが有する複数のチャネルのうち、ＤＭＡコントローラの切替のために予約された予約チャネルを除く非予約チャネルを用いて、前記第二のＤＭＡコントローラに前記第一処理部に係るデータ転送を行わせ、
前記第二処理部は、前記第一のＤＭＡコントローラによる、該第二処理部に係る第一のデータ転送が完了した場合に、該第一のＤＭＡコントローラの使用を終了して、前記予約チャネル又は前記非予約チャネルを用いて、前記第二のＤＭＡコントローラに該第二処理部に係る第二のデータ転送を行わせ、
前記第一処理部は、前記第二処理部による使用が終了した前記第一のＤＭＡコントローラに、該第一処理部に係るデータ転送を行わせる、
を備える情報処理装置。
【請求項２】
前記第二処理部は、前記第一処理部によって前記予約チャネルが使用されている場合には、前記非予約チャネルを用いて前記第二のＤＭＡコントローラに該第二処理部に係る第二のデータ転送を行わせ、前記第一処理部によって前記予約チャネルが使用されていない場合には、前記予約チャネルを用いて前記第二のＤＭＡコントローラに該第二処理部に係る第二のデータ転送を行わせる、
請求項１に記載の情報処理装置。
【請求項３】
前記第一のＤＭＡコントローラは、前記第二のＤＭＡコントローラよりも高い転送速度を有するＤＭＡコントローラである、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記第二処理部は、前記第一のデータの転送時において優先的に前記第一のＤＭＡコントローラを起動することで、前記第一のデータを該第一のＤＭＡコントローラに転送させる、
請求項３に記載の情報処理装置。
【請求項５】
前記第一のデータ転送は、前記第二処理部によって実行されるプログラムをメモリに読み込む処理である、
請求項１から４の何れか一項に記載の情報処理装置。
【請求項６】
前記予約チャネル及び前記非予約チャネルの夫々に割り当てられるチャネルの数を動的に設定する設定手段を更に備える、
請求項１から５の何れか一項に記載の情報処理装置。
【請求項７】
データ転送状況を監視する監視手段を更に備え、
前記設定手段は、前記データ転送状況に応じてチャネルの割り当て数を設定する、
請求項６に記載の情報処理装置。
【請求項８】
前記監視手段は、前記第二のＤＭＡコントローラのチャネルの利用状況を監視し、
前記設定手段は、前記利用状況に応じてチャネルの割り当て数を設定する、
請求項７に記載の情報処理装置。
【請求項９】
前記監視手段は、前記第二のＤＭＡコントローラの非予約チャネルにおける非使用チャネルの発生状況を監視し、
前記設定手段は、前記発生状況に応じて前記非予約チャネルへの割り当て数を減らす、
請求項８に記載の情報処理装置。
【請求項１０】
前記監視手段は、前記第二のＤＭＡコントローラの非予約チャネルにおける転送待ちの発生状況を監視し、
前記設定手段は、前記発生状況に応じて前記非予約チャネルへの割り当て数を増やす、
請求項８又は９に記載の情報処理装置。
【請求項１１】
第一処理部と、第二処理部と、第一のＤＭＡコントローラと、複数のチャネルを有する第二のＤＭＡコントローラと、を備えるコンピューターにおいて、
前記第一処理部は、前記第一のＤＭＡコントローラが前記第二処理部に係るデータ転送を実行中である場合、前記第二のＤＭＡコントローラが有する複数のチャネルのうち、ＤＭＡコントローラの切替のために予約された予約チャネルを除く非予約チャネルを用いて、前記第二のＤＭＡコントローラに前記第一処理部に係るデータ転送を行わせ、
前記第二処理部は、前記第一のＤＭＡコントローラによる、該第二処理部に係る第一のデータ転送が完了した場合に、該第一のＤＭＡコントローラの使用を終了して、前記予約チャネル又は前記非予約チャネルを用いて、前記第二のＤＭＡコントローラに該第二処理部に係る第二のデータ転送を行わせ、
前記第一処理部は、前記第二処理部による使用が終了した前記第一のＤＭＡコントローラに、該第一処理部に係るデータ転送を行わせる、
データ転送制御方法。
【請求項１２】
第一処理部と、第二処理部と、第一のＤＭＡコントローラと、複数のチャネルを有する第二のＤＭＡコントローラと、を備えるコンピューターにおいて、
前記第一処理部は、前記第一のＤＭＡコントローラが前記第二処理部に係るデータ転送を実行中である場合、前記第二のＤＭＡコントローラが有する複数のチャネルのうち、ＤＭＡコントローラの切替のために予約された予約チャネルを除く非予約チャネルを用いて、前記第二のＤＭＡコントローラに前記第一処理部に係るデータ転送を行わせ、
前記第二処理部は、前記第一のＤＭＡコントローラによる、該第二処理部に係る第一のデータ転送が完了した場合に、該第一のＤＭＡコントローラの使用を終了して、前記予約チャネル又は前記非予約チャネルを用いて、前記第二のＤＭＡコントローラに該第二処理部に係る第二のデータ転送を行わせ、
前記第一処理部は、前記第二処理部による使用が終了した前記第一のＤＭＡコントローラに、該第一処理部に係るデータ転送を行わせるための、
データ転送制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を用いたデータ転送技術に関する。
【背景技術】
【０００２】
従来、複数のプロセッサとＤＭＡコントローラを有する情報処理装置に関し、複数のプロセッサ間でのＤＭＡコントローラ制御パス使用権の調停を不要にし、ＤＭＡ転送の起動に要する時間の短縮化を図ることを目的として、前記複数のプロセッサが、競合することなく前記ＤＭＡコントローラの複数のチャネルにアクセスできるアクセス経路を有することを特徴とする情報処理装置が提案されている（特許文献１を参照）。
【０００３】
また、動作速度等が異なる複数のＤＭＡコントローラを使用する場合に、効率的なデータ転送や、制御信号の容易かつ確実な供給を行うための技術が提案されている（特許文献２及び３を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１３３９６８号公報
【特許文献２】特開２００９−４８４２７号公報
【特許文献３】特開平８−１６６９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、複数のＤＭＡコントローラ（以下、ＤＭＡＣ）を備え、これらを複数の処理部から用いることで、効率的なデータ転送を行う装置がある。しかし、ある処理部がデータ転送に用いるＤＭＡＣを切り替える際には、他の処理部が切り替え先のＤＭＡＣを使用中である場合、当該他の処理部が切り替え先のＤＭＡＣを解放するまで待つ必要があった。このような状況が発生すると、ＤＭＡＣの切り替えが完了するまでデータの転送が行えず、システム全体の処理において遅延が発生するのみならず、複数の処理部の間でＤＭＡＣ切り替えのタイミングを合わせるために、ＤＭＡＣが使用されない非使用時間が長く生じてしまう。
【０００６】
本開示は、上記した問題に鑑み、ＤＭＡコントローラを切り替える際の、ＤＭＡコントローラの非使用時間を低減させることを課題とする。
【課題を解決するための手段】
【０００７】
本開示の一例は、第一処理部と、第二処理部と、第一のＤＭＡコントローラと、複数のチャネルを有する第二のＤＭＡコントローラと、を備え、前記第一処理部は、前記第一のＤＭＡコントローラが前記第二処理部に係るデータ転送を実行中である場合、前記第二のＤＭＡコントローラが有する複数のチャネルのうち、ＤＭＡコントローラの切替のために予約された予約チャネルを除く非予約チャネルを用いて、前記第二のＤＭＡコントローラに前記第一処理部に係るデータ転送を行わせ、前記第二処理部は、前記第一のＤＭＡコントローラによる、該第二処理部に係る第一のデータ転送が完了した場合に、該第一のＤＭＡコントローラの使用を終了して、前記予約チャネル又は前記非予約チャネルを用いて、前記第二のＤＭＡコントローラに該第二処理部に係る第二のデータ転送を行わせ、前記第一処理部は、前記第二処理部による使用が終了した前記第一のＤＭＡコントローラに、該第一処理部に係るデータ転送を行わせる、を備える情報処理装置である。
【０００８】
本開示は、情報処理装置、システム、コンピューターによって実行される方法またはコンピューターに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピューターその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的または化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。
【発明の効果】
【０００９】
本開示によれば、ＤＭＡコントローラを切り替える際の、ＤＭＡコントローラの非使用時間を低減させることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るスキャナーのハードウェア構成を示す図である。
【図２】実施形態に係るスキャナーの機能構成の概略を示す図である。
【図３】実施形態に係るスキャナーにおいて、予約チャネル／非予約チャネルの数を動的に設定する場合のチャネルの利用状況とチャネル数との関係を示す図である。
【図４】実施形態に係る第一のＤＭＡＣ起動処理の流れの概要を示すフローチャートである。
【図５】実施形態に係る第二のＤＭＡＣ起動処理の流れの概要を示すフローチャートである。
【図６】実施形態に係るアプリケーション処理用ＣＰＵによる高速ＤＭＡＣを用いたデータ転送の終了処理の流れの概要を示すフローチャートである。
【図７】実施形態に係るスキャナーにおいてデータ転送を実施した場合の、データ転送の概要を示す概念図である。
【図８】実施形態に係るスキャナーにおいてデータ転送を実施した場合の、データ転送の進行状況を示すチャート（Ａ）である。
【図９】実施形態に係るスキャナーにおいてデータ転送を実施した場合の、データ転送の進行状況を示すチャート（Ｂ）である。
【図１０】実施形態に係るスキャナーにおいてデータ転送を実施した場合の、データ転送の進行状況を示すチャート（Ｃ）である。
【図１１】実施形態に係るスキャナーにおいてデータ転送を実施した場合の、データ転送の進行状況を示すチャート（Ｄ）である。
【発明を実施するための形態】
【００１１】
以下、本開示に係る情報処理装置、方法およびプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、方法およびプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【００１２】
本実施形態では、本開示に係る情報処理装置、方法およびプログラムを、スキャナーとして実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、方法およびプログラムは、ＤＭＡコントローラを用いる技術について広く用いることが可能であり、本開示の適用対象は、本実施形態において示した例に限定されない。
【００１３】
＜システムの構成＞
図１は、本実施形態に係るスキャナー１のハードウェア構成を示す図である。スキャナー１は、ユーザーがセットした、文書、名刺、レシートまたは写真／イラスト等の原稿を撮像することで、画像データを取得する装置であり、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１ａ及び１１ｂ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、記憶装置１４、通信ユニット１５、互いに異なる転送性能（転送速度）を有する２つのＤＭＡＣ１６ａ及び１６ｂ、撮像部１７、原稿を撮像部１７に送るシートフィーダー１８、ユーザーインターフェース（本実施形態では、タッチパネル付ディスプレイ）１９、等を備える撮像装置である。
【００１４】
本実施形態に係るスキャナー１は、無線通信機能を備えることで無線ＬＡＮに接続され、スキャンによって得られた画像データを、無線ＬＡＮ経由で外部の装置に保存する機能を有するスキャナーである。また、本実施形態に係るスキャナー１は、スキャナー１に撮像、文字入出力及び項目選択を含む各種指示を行うためのユーザーインターフェースとして、ユーザーがタッチ操作可能なタッチパネル付ディスプレイ１９を有している。但し、本実施形態に係る方法を採用可能なスキャナーの通信手段およびハードウェア構成等は、本実施形態における例示に限定されない。例えば、本実施形態に係るスキャナー１では、通信ユニット１５として無線ＬＡＮ用の無線通信ユニットが用いられるが、無線通信に用いられる規格は無線ＬＡＮに限定されないし、通信ユニット１５は、有線通信可能なものであってもよい。
【００１５】
画像データ送信の宛先となる外部の装置は、例えば、ユーザーに対して様々なサービスを提供するインターネット上の複数のクラウドサービス（サードパーティーによって提供されるサービスを含む）等のサーバーである。なお、サーバーのハードウェア構成については、図示を省略しているが、クラウドサービスは、サーバーとしての一般的なハードウェア構成を有するコンピューターがクラウド技術を用いて分散配置されたものである。これらのクラウドサービスとしては、例えば、文書管理サービス、名刺管理サービス、レシート管理サービスおよび写真／イラスト管理サービス等が挙げられるが、本実施形態に係るシステムと連携可能なクラウドサービスは、本開示において例示されたクラウドサービスに限定されない。
【００１６】
本実施形態に係るスキャナー１が備える複数のＣＰＵ１１ａ及び１１ｂのうち、シートフィーダー１８のモータ制御や、原稿を撮像して画像データを生成する等のスキャン処理を行うためのＣＰＵを、スキャン処理用ＣＰＵ（第一処理部）１１ａと称し、無線ＬＡＮ接続や、無線ＬＡＮ接続によるモバイル端末やサーバー等の外部装置との通信を行うためのＣＰＵを、アプリケーション処理用ＣＰＵ（第二処理部）１１ｂと称する。
【００１７】
スキャン処理用ＣＰＵ１１ａは、タッチパネル付ディスプレイ１９において所定のユーザー操作が受け付けられると、シートフィーダー１８を制御して原稿を撮像部１７に送り、撮像部１７を制御して原稿を撮像することで、原稿の画像データを取得する。
【００１８】
アプリケーション処理用ＣＰＵ１１ｂは、撮像部１７によって取得された画像データを、ネットワークを介して画像データ処理サーバーに送信する。また、通信ユニット１５からの画像データの送信は、所定のユーザー操作（本実施形態では、タッチパネル付ディスプレイ１９の操作）以外の操作を介させることなく、画像データの取得に続けて実行されてよい。
【００１９】
本実施形態において、各ＣＰＵは、データ転送毎に、所望のＤＭＡＣを用いることが出来る。また、本実施形態では、互いに異なる転送性能（転送速度）を有する２つのＤＭＡＣのうち、比較的高速な転送性能を有するＤＭＡＣを高速ＤＭＡＣ１６ａと称し、比較的低速な転送性能を有するＤＭＡＣを低速ＤＭＡＣ１６ｂと称する。
【００２０】
ここで、スキャナー１の原稿スキャンを高速で行うために、スキャン処理用ＣＰＵ１１ａに高速ＤＭＡＣ１６ａを割り当て、アプリケーション処理用ＣＰＵ１１ｂに低速ＤＭＡＣ１６ｂを割り当てることで、スキャン処理用ＣＰＵ１１ａの画像処理を高速に実施することが考えられる。その一方で、タッチパネル操作やＮＦＣ（Ｎｅａｒ−Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）による認識機能等のより複雑な機能を実装するためにサイズが肥大化したアプリケーション処理用プログラムのロード時間（起動時間）を短縮するために、アプリケーション処理用ＣＰＵ１１ｂに高速ＤＭＡＣ１６ａを割り当てることが考えられる。
【００２１】
しかし、高速ＤＭＡＣ１６ａを、スキャン処理用ＣＰＵ１１ａとアプリケーション処理用ＣＰＵ１１ｂとに同時に割り当てることは困難である。そこで、アプリケーション処理用ＣＰＵ１１ｂでの起動時間の短縮と、スキャン処理用ＣＰＵ１１ａでの画像処理の高速化を両立させるために、スキャン処理用ＣＰＵ１１ａが画像処理を開始するタイミングで、スキャン処理用ＣＰＵ１１ａとアプリケーション処理用ＣＰＵ１１ｂで使用するＤＭＡＣを切り替える方法が考えられるが、この場合、アプリケーション処理用ＣＰＵ１１ｂによる高速ＤＭＡＣ１６ａを使用したデータ転送の完了を待ち合わせる必要性が生じ、この切替のための待ち時間が、アプリケーション処理用ＣＰＵ１１ｂでのＤＭＡ転送時間のオーバーヘッドになる。即ち、単なる切替処理では、高速ＤＭＡＣ１６ａでのデータ転送、低速ＤＭＡＣ１６ｂでのデータ転送ともに非動作な状態で切替を実行する必要があり、この切替処理がＤＭＡ転送動作でのオーバーヘッドになる。
【００２２】
そこで、本実施形態に係るスキャナー１では、低速ＤＭＡＣ１６ｂのチャネルを通常動作用の非予約チャネルと切替用の予約チャネルに分けることで、ＤＭＡＣの非使用状態を必要とせずに、ＤＭＡＣの切り替えを可能とすることとした。以下に、本実施形態に係るスキャナー１が備える具体的な機能の内容、及び処理の流れを説明する。
【００２３】
図２は、本実施形態に係るスキャナー１の機能構成の概略を示す図である。スキャナー１は、記憶装置１４に記録されているプログラムが、ＲＡＭ１３に読み出され、ＣＰＵ１１ａ又は１１ｂによって実行されて、スキャナー１に備えられた各ハードウェアが制御されることで、第一処理部（スキャン処理用ＣＰＵ）１１ａ、第二処理部（アプリケーション処理用ＣＰＵ）１１ｂ、監視部２１ａ、２１ｂ及び設定部２２ａ、２２ｂを備える情報処理装置として機能する。なお、本実施形態では、スキャナー１の備える各機能は、汎用プロセッサであるＣＰＵ１１ａ又は１１ｂによって実行されるが、これらの機能の一部または全部は、１または複数の専用プロセッサによって実行されてもよい。
【００２４】
高速ＤＭＡＣ（第一のＤＭＡコントローラ）１６ａ及び低速ＤＭＡＣ（第二のＤＭＡコントローラ）１６ｂは、何れも複数のチャネル（例えば、８チャネル）を有する。また、本実施形態において、低速ＤＭＡＣ１６ｂが有する複数のチャネルは、ＤＭＡコントローラの切り替えのために予約（ｒｅｓｅｒｖｅ）された予約チャネル（例えば、初期設定においてチャネル４から７の４チャネル）と、当該予約チャネルではない非予約チャネル（例えば、初期設定においてチャネル０から３の４チャネル）とに分けられている。
【００２５】
スキャン処理用ＣＰＵ（第一処理部）１１ａは、高速ＤＭＡＣ１６ａがアプリケーション処理用ＣＰＵ１１ｂに係るデータ転送を実行中である場合、低速ＤＭＡＣ１６ｂが有する複数のチャネルのうち、ＤＭＡコントローラの切り替えのために予約された予約チャネルを除く非予約チャネルを用いて、低速ＤＭＡＣ１６ｂにスキャン処理用ＣＰＵ１１ａに係るデータ転送（本実施形態では、スキャンによって得られた画像データの撮像部１７からＲＡＭ１３への転送）を行わせる。
【００２６】
また、スキャン処理用ＣＰＵ１１ａは、アプリケーション処理用ＣＰＵ１１ｂによる使用が終了した高速ＤＭＡＣ１６ａに、スキャン処理用ＣＰＵ１１ａに係るデータ転送を行わせる。
【００２７】
アプリケーション処理用ＣＰＵ（第二処理部）１１ｂは、高速ＤＭＡＣ１６ａによる、アプリケーション処理用ＣＰＵ１１ｂによって実行されるアプリケーション処理用プログラムをＲＡＭ１３に読み込む処理（第一のデータ転送）が完了した場合に、高速ＤＭＡＣ１６ａの使用を終了して、予約チャネル又は非予約チャネルを用いて、低速ＤＭＡＣ１６ｂにアプリケーション処理用ＣＰＵ１１ｂに係る第二のデータ転送（本実施形態では、スキャン後ＲＡＭ１３に記録された画像データのＲＡＭ１３から通信ユニット１５への転送）を行わせる。
【００２８】
この際、アプリケーション処理用ＣＰＵ１１ｂは、スキャン処理用ＣＰＵ１１ａによって予約チャネルが使用されている場合には、非予約チャネルを用いて低速ＤＭＡＣ１６ｂにアプリケーション処理用ＣＰＵ１１ｂに係る第二のデータ転送を行わせ、スキャン処理用ＣＰＵ１１ａによって予約チャネルが使用されていない場合には、予約チャネルを用いて低速ＤＭＡＣ１６ｂにアプリケーション処理用ＣＰＵ１１ｂに係る第二のデータ転送を行わせる。
【００２９】
また、アプリケーション処理用ＣＰＵ１１ｂは、アプリケーション処理用プログラム（第一のデータ）の転送時において優先的に高速ＤＭＡＣ１６ａを起動することで、アプリケーション処理用プログラムを高速ＤＭＡＣ１６ａに転送させる。
【００３０】
監視部２１ａ、２１ｂ及び設定部２２ａ、２２ｂは、スキャン処理用ＣＰＵ１１ａ及びアプリケーション処理用ＣＰＵ１１ｂの双方に実装される。具体的には、監視部２１ａ及び設定部２２ａはスキャン処理用ＣＰＵ１１ａに実装され、監視部２１ｂ及び設定部２２ｂはアプリケーション処理用ＣＰＵ１１ｂに実装される。スキャナー１の動作中は、低速ＤＭＡＣ１６ｂが割当てられたＣＰＵ側の監視部及び設定部が有効になり、予約チャネル／非予約チャネル数の監視処理、及び共有メモリ（ＲＡＭ１３）における予約チャネル／非予約チャネル数の設定変更を行う。また、予約チャネル／非予約チャネルの数には閾値（上限／下限）が設定され、予約チャネル及び非予約チャネルの何れか一方のチャネルが枯渇することが防止される。
【００３１】
監視部２１ａ、２１ｂは、低速ＤＭＡＣ１６ｂのチャネルの利用状況を監視することで、データ転送状況を監視する。具体的には、監視部２１ａ、２１ｂは、低速ＤＭＡＣ１６ｂの非予約チャネルにおける、非使用チャネルの発生状況、及び転送待ちの発生状況を監視する。
【００３２】
設定部２２ａ、２２ｂは、データ転送状況に応じて、予約チャネル及び非予約チャネルの夫々に割り当てられるチャネルの数を動的に設定する。より具体的には、設定部２２ａ、２２ｂは、監視部２１ａ、２１ｂによって得られた、低速ＤＭＡＣ１６ｂのチャネルの利用状況に応じてチャネルの割り当て数を設定する。ここで、設定部２２ａ、２２ｂは、低速ＤＭＡＣ１６ｂの非予約チャネルにおける、非使用チャネルの発生状況に応じて非予約チャネルへの割り当て数を減らし、低速ＤＭＡＣ１６ｂの非予約チャネルにおける、転送待ちの発生状況に応じて非予約チャネルへの割り当て数を増やす。
【００３３】
図３は、本実施形態に係るスキャナー１において、予約チャネル／非予約チャネルの数を動的に設定する場合のチャネルの利用状況とチャネル数との関係を示す図である。上述の通り、監視部２１ａ、２１ｂは、低速ＤＭＡＣ１６ｂのチャネルの利用状況（具体的には、データの転送量、処理数、非使用チャネルの発生状況、及び転送待ちの発生状況、等）を監視する。ここで、所定の期間内で転送待ちが発生している（処理可能なチャネル数を超えている）場合、監視部２１ａ、２１ｂは、処理待ちが発生していると判断する。これを受けて、設定部２２ａ、２２ｂは、非予約チャネル数を増加させ、予約チャネル数を削減する。図３の例では、非予約チャネル数が４チャネルから６チャネルに変更され、予約チャネル数が４チャネルから２チャネルに変更されている。
【００３４】
一方、所定の期間内で非使用チャネルが発生している場合、監視部２１ａ、２１ｂは、非使用な非予約チャネルが増大していると判断する。これを受けて、設定部２２ａ、２２ｂは、非予約チャネル数を削減し、予約チャネルを増加させる。図３の例では、非予約チャネル数が３チャネルに変更され、予約チャネル数が５チャネルに変更されている。
【００３５】
＜処理の流れ＞
次に、本実施形態に係るスキャナー１によって実行される処理の流れを説明する。なお、以下に説明する処理の具体的な内容および処理順序は、本開示を実施するための一例である。具体的な処理内容および処理順序は、本開示の実施の形態に応じて適宜選択されてよい。
【００３６】
図４は、本実施形態に係る第一のＤＭＡＣ起動処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、スキャン処理用ＣＰＵ（第一処理部）１１ａによって実行される処理であり、スキャン処理用ＣＰＵ１１ａの管理下で転送すべきデータ（プログラムや画像データ）が発生する毎に、当該データの転送のために起動されるＤＭＡＣを決定するために実行される。
【００３７】
ステップＳ１０１では、高速ＤＭＡＣ（第一のＤＭＡコントローラ）１６ａによる転送が必要か否か、が判定される。スキャン処理用ＣＰＵ１１ａは、予め設定された内容に従って、今回転送対象となったデータが、高速ＤＭＡＣ１６ａによる転送が必要なデータであるか否かを判定する。
【００３８】
本実施形態において、判定は、データの種類に基づいて行われる。具体的には、転送対象のデータが撮像部１７からＲＡＭ１３へ送られる画像データである場合、スキャン処理用ＣＰＵ１１ａは、高速ＤＭＡＣ１６ａによる転送が必要なデータであると判定し（ステップＳ１０１のＹＥＳ）、処理はステップＳ１０２へ進む。一方、転送対象のデータがスキャン処理用プログラム（スキャナー１のファームウェア）である場合、スキャン処理用ＣＰＵ１１ａは、高速ＤＭＡＣ１６ａによる転送が不要なデータであると判定し（ステップＳ１０１のＮＯ）、処理はステップＳ１０４へ進む。
【００３９】
なお、本実施形態において、判定は、データの種類に基づいて行われるが、判定は、その他の情報に基づいて行われてもよい。例えば、判定は、転送対象データのデータサイズに基づいて行われてもよい。判定が転送対象データのデータサイズに基づいて行われる場合、例えば、転送対象データのデータサイズと、所定の閾値とを比較する等の方法で、判定を行うことができる。
【００４０】
ステップＳ１０２では、高速ＤＭＡＣ１６ａの使用要求がマークされる。スキャン処理用ＣＰＵ１１ａは、ステップＳ１０１で高速ＤＭＡＣ１６ａによる転送が必要なデータであると判定された場合（ステップＳ１０１のＹＥＳ）、ＲＡＭ１３の所定領域に、スキャン処理用ＣＰＵ１１ａが高速ＤＭＡＣ１６ａの使用を要求していることを示す「使用要求情報」を記録する。その後、処理はステップＳ１０３へ進む。
【００４１】
ステップＳ１０３では、アプリケーション処理用ＣＰＵ（第二処理部）１１ｂが高速ＤＭＡＣ１６ａを使用中であるか否かが判定される。スキャン処理用ＣＰＵ１１ａは、図６を参照して後述する「非使用情報」がＲＡＭ１３の所定領域に記録されているか否かに基づいて、アプリケーション処理用ＣＰＵ１１ｂによる高速ＤＭＡＣ１６ａの使用状況を確認する。確認の結果、高速ＤＭＡＣ１６ａが使用中である場合（ステップＳ１０３のＹＥＳ）、処理はステップＳ１０４へ進む。一方、確認の結果、高速ＤＭＡＣ１６ａが使用中でない場合（ステップＳ１０３のＮＯ）、処理はステップＳ１０５へ進む。
【００４２】
ステップＳ１０４では、低速ＤＭＡＣ１６ｂの起動が行われる。高速ＤＭＡＣ１６ａが使用中である場合（ステップＳ１０３のＹＥＳ）、スキャン処理用ＣＰＵ１１ａは、低速ＤＭＡＣ１６ｂが有する複数のチャネルのうち、非予約チャネルを起動して、低速ＤＭＡＣ１６ｂに転送対象のデータを転送させる。具体的には、本実施形態では、低速ＤＭＡＣ１６ｂのチャネル０から３が非予約チャネルに設定されている場合、スキャン処理用ＣＰＵ１１ａは、チャネル０から３の何れかのチャネルを用いて、低速ＤＭＡＣ１６ｂに転送対象のデータを転送させる。その後、本フローチャートに示された処理は終了する。
【００４３】
ステップＳ１０５及びステップＳ１０６では、高速ＤＭＡＣ１６ａの使用がマークされ、高速ＤＭＡＣ１６ａの起動が行われる。高速ＤＭＡＣ１６ａが使用中でない場合（ステップＳ１０３のＮＯ）、スキャン処理用ＣＰＵ１１ａは、ＲＡＭ１３の所定領域に、スキャン処理用ＣＰＵ１１ａが高速ＤＭＡＣ１６ａを使用中であることを示す「使用中情報」を記録する（ステップＳ１０５）。そして、スキャン処理用ＣＰＵ１１ａは、高速ＤＭＡＣ１６ａを起動して、高速ＤＭＡＣ１６ａに転送対象のデータを転送させる（ステップＳ１０６）。この場合、高速ＤＭＡＣ１６ａのチャネル０から７の何れかのチャネルが用いられる。その後、本フローチャートに示された処理は終了し、以降、スキャン処理用ＣＰＵ１１ａは、高速ＤＭＡＣ１６ａを使用して画像データの転送処理を行う。
【００４４】
図５は、本実施形態に係る第二のＤＭＡＣ起動処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、アプリケーション処理用ＣＰＵ（第二処理部）１１ｂによって実行される処理であり、アプリケーション処理用ＣＰＵ１１ｂの管理下で転送すべきデータ（プログラムや画像データ）が発生する毎に、当該データの転送のために起動されるＤＭＡＣを決定するために実行される。
【００４５】
ステップＳ２０１では、高速ＤＭＡＣ（第一のＤＭＡコントローラ）１６ａによる転送が必要か否か、が判定される。アプリケーション処理用ＣＰＵ１１ｂは、予め設定された内容に従って、今回転送対象となったデータが、高速ＤＭＡＣ１６ａによる転送が必要なデータであるか否かを判定する。なお、図４を用いた第一のＤＭＡＣ起動処理の説明においても述べた通り、本実施形態において、判定に用いられる情報の内容は限定されない。
【００４６】
本実施形態において、判定は、データの種類に基づいて行われる。具体的には、転送対象のデータがアプリケーション処理用プログラム（アプリケーションのファームウェア）である場合、アプリケーション処理用ＣＰＵ１１ｂは、高速ＤＭＡＣ１６ａによる転送が必要なデータであると判定し（ステップＳ２０１のＹＥＳ）、処理はステップＳ２０２へ進む。本実施形態では、アプリケーション処理用プログラムの方がスキャン処理用プログラムに比べてサイズが大きいため、スキャナー１の起動時間を短縮する目的で、アプリケーション処理用プログラムの転送に高速ＤＭＡＣ１６ａが用いられる。一方、転送対象のデータがＲＡＭ１３から通信ユニット１５へ送られる画像データである場合、アプリケーション処理用ＣＰＵ１１ｂは、高速ＤＭＡＣ１６ａによる転送が不要なデータであると判定し（ステップＳ２０１のＮＯ）、処理はステップＳ２０３へ進む。
【００４７】
ステップＳ２０２では、高速ＤＭＡＣ１６ａの起動が行われる。高速ＤＭＡＣ１６ａによる転送が必要なデータであると判定された場合（ステップＳ２０１のＹＥＳ）、アプリケーション処理用ＣＰＵ１１ｂは、高速ＤＭＡＣ１６ａを起動して、高速ＤＭＡＣ１６ａに転送対象のデータを転送させる。この場合、高速ＤＭＡＣ１６ａのチャネル０から７の何れかのチャネルが用いられる。その後、本フローチャートに示された処理は終了する。なお、ここで起動された、アプリケーション処理用ＣＰＵ１１ｂによる高速ＤＭＡＣ１６ａを用いたデータ転送の終了処理は、図６を参照して後述する。
【００４８】
ステップＳ２０３では、高速ＤＭＡＣ１６ａの使用要求がマークされているか否かが判定される。アプリケーション処理用ＣＰＵ１１ｂは、図４を参照して説明した第一のＤＭＡＣ起動処理の「使用要求情報」がＲＡＭ１３の所定領域に記録されているか否かに基づいて、スキャン処理用ＣＰＵ１１ａが高速ＤＭＡＣ１６ａの使用を要求しているか否かを判定する。スキャン処理用ＣＰＵ１１ａが高速ＤＭＡＣ１６ａの使用を要求していない（「使用要求情報」が記録されていない）場合、処理はステップＳ２０５へ進む。一方、スキャン処理用ＣＰＵ１１ａが高速ＤＭＡＣ１６ａの使用を要求している（「使用要求情報」が記録されている）場合、処理はステップＳ２０４へ進む。
【００４９】
ステップＳ２０４では、スキャン処理用ＣＰＵ１１ａが低速ＤＭＡＣ１６ｂの非予約チャネルを使用中であるか否かが判定される。アプリケーション処理用ＣＰＵ１１ｂは、スキャン処理用ＣＰＵ１１ａによる低速ＤＭＡＣ１６ｂの非予約チャネルの使用状況を確認する。確認の結果、非予約チャネルが使用中である場合（ステップＳ２０４のＹＥＳ）、処理はステップＳ２０５へ進む。一方、非予約チャネルが使用中でない場合（ステップＳ２０４のＮＯ）、処理はステップＳ２０６へ進む。
【００５０】
ステップＳ２０５では、低速ＤＭＡＣ１６ｂの予約チャネルの起動が行われる。「使用要求情報」が記録されていない場合（ステップＳ２０３のＮＯ）、又は、非予約チャネルが使用中である場合（ステップＳ２０４のＹＥＳ）、アプリケーション処理用ＣＰＵ１１ｂは、低速ＤＭＡＣ１６ｂの予約チャネル（例えば、チャネル４から７の何れか）を起動して、低速ＤＭＡＣ１６ｂに転送対象のデータを転送させる。但し、「使用要求情報」が記録されていない場合（ステップＳ２０３のＮＯ）、アプリケーション処理用ＣＰＵ１１ｂは、スキャン処理用ＣＰＵ１１ａによる使用要求が発生するまで高速ＤＭＡＣ１６ａを起動する仕様が採用されてもよい。その後、本フローチャートに示された処理は終了する。
【００５１】
ステップＳ２０６では、低速ＤＭＡＣ１６ｂの非予約チャネルの起動が行われる。非予約チャネルが使用中でない場合（ステップＳ２０４のＮＯ）、アプリケーション処理用ＣＰＵ１１ｂは、低速ＤＭＡＣ１６ｂの非予約チャネル（例えば、チャネル０から３の何れか）を起動して、低速ＤＭＡＣ１６ｂに転送対象のデータを転送させる。その後、本フローチャートに示された処理は終了する。
【００５２】
図６は、本実施形態に係るアプリケーション処理用ＣＰＵ１１ｂによる高速ＤＭＡＣ１６ａを用いたデータ転送の終了処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図５のステップＳ２０２において開始されたデータ転送を終了する際に実行される。
【００５３】
アプリケーション処理用ＣＰＵ１１ｂによる高速ＤＭＡＣ１６ａを用いたデータ転送の終了処理では、アプリケーション処理用ＣＰＵ１１ｂによる高速ＤＭＡＣ１６ａの使用状況が監視され、使用が終了した場合に、高速ＤＭＡＣ１６ａの非使用がマークされる。アプリケーション処理用ＣＰＵ１１ｂは、ステップＳ２０２で転送開始された対象データの高速ＤＭＡＣ１６ａによる転送が完了するまで、高速ＤＭＡＣ１６ａによる転送状況を監視することで、高速ＤＭＡＣ１６ａのデータ転送がすべて終了していることを確認する（ステップＳ３０１）。
【００５４】
アプリケーション処理用ＣＰＵ１１ｂによって高速ＤＭＡＣ１６ａが使用中である場合、ステップＳ３０１の処理は繰り返し実行される（ステップＳ３０１のＹＥＳ）。一方、高速ＤＭＡＣ１６ａによる対象データ（本実施形態では、アプリケーション処理用プログラム）の転送終了が検知されると（ステップＳ３０１のＮＯ）、アプリケーション処理用ＣＰＵ１１ｂは、ＲＡＭ１３の所定領域に、アプリケーション処理用ＣＰＵ１１ｂが高速ＤＭＡＣ１６ａを使用していないことを示す「非使用情報」を記録する（ステップＳ３０２）。上述の通り、ここで記録された「非使用情報」の有無は、図４を参照して説明した、第一のＤＭＡＣ起動処理のステップＳ１０３で参照される。その後、本フローチャートに示された処理は終了する。
【００５５】
＜実施例＞
図７は、本実施形態に係るスキャナー１においてデータ転送を実施した場合の、データ転送の概要を示す概念図である。図中の括弧付き数字は、転送処理の種類を示すために付されている。スキャナー１では、起動時に、スキャン処理用ＣＰＵ１１ａによって実行されるスキャン処理用プログラム（スキャナー１のファームウェア）がＲＡＭ１３に読み込まれ（１）、また、アプリケーション処理用ＣＰＵ１１ｂによって実行されるアプリケーション処理用プログラムがＲＡＭ１３に読み込まれる（２）。これらのプログラムがＲＡＭ１３に読み込まれると、スキャン処理用ＣＰＵ１１ａは、スキャン処理用プログラムを実行することで、撮像部１７によってスキャンされた原稿の画像データを、ＲＡＭ１３に読み込む（３ａ）（３ｂ）。また、アプリケーション処理用ＣＰＵ１１ｂは、アプリケーション処理用プログラムを実行することで、ＲＡＭ１３に読み込まれた画像データを通信ユニット１５に読み出し（４ａ）（４ｂ）、無線通信を介して所定のサーバーに送信する。
【００５６】
図８から図１１は、本実施形態に係るスキャナー１においてデータ転送を実施した場合の、データ転送の進行状況を示すチャートである。時間の経過（時刻ｔ０からｔ１１）を示す矢印付きの線ｔより上の部分は、ＤＭＡＣに割り当てられた転送対象データのうち未転送の部分を示し、矢印ｔより下の部分は、ＤＭＡＣに割り当てられた転送対象データのうち転送済の部分を示す。図中に付された括弧付き数字は、転送処理の種類を示すために付されており、図７で転送処理に付された括弧付き数字に対応している。また、図中に実線で示されたブロックは、高速ＤＭＡＣ１６ａによって転送されるデータを示し、破線で示されたブロックは、低速ＤＭＡＣ１６ｂによって転送されるデータを示している。以下、図８から図１１を参照して、時系列に沿って処理の進行状況を説明する。
【００５７】
時刻ｔ０では、アプリケーション処理用ＣＰＵ１１ｂが高速ＤＭＡＣ１６ａを使用してアプリケーション処理用プログラムを転送している（２）。なお、この時点で、スキャン処理用ＣＰＵ１１ａによる低速ＤＭＡＣ１６ｂを使用したスキャン処理用プログラムの転送（１）は、既に終了し、撮像部１７による原稿のスキャン（画像データの生成）が可能な状態となっている。
【００５８】
時刻ｔ１では、ユーザーによるスキャン開始の操作を受けて、スキャン処理用ＣＰＵ１１ａが、低速ＤＭＡＣ１６ｂの非予約チャネルでの画像データｄ１の転送を開始する（３ａ）。また、アプリケーション処理用ＣＰＵ１１ｂは、高速ＤＭＡＣ１６ａを使用したアプリケーション処理用プログラムを転送している（２）。以降、転送される画像データｄ１からｄ３は、例えば、シートフィーダー１８にセットされた３枚の原稿が撮像部１７によってスキャンされることで生成された画像データである。
【００５９】
本実施形態では、低速ＤＭＡＣ１６ｂが有する複数のチャネルを、通常使用するための非予約チャネルと、ＣＰＵがＤＭＡＣを切り替える際に使用するための予約チャネルとに分けている。このため、従来の技術であれば、スキャン処理用ＣＰＵ１１ａが画像データの転送に高速ＤＭＡＣ１６ａを用いたい場合に、アプリケーション処理用プログラムの転送が完了するまで待たなければならなかったところ、本実施形態に係るスキャナー１によれば、アプリケーション処理用プログラムの転送完了を待たずに低速ＤＭＡＣ１６ｂの非予約チャネルを用いて画像データの転送を開始することができる。即ち、本実施形態に係るスキャナー１によれば、起動時のスキャン開始の待ち時間を短縮することが可能となる。
【００６０】
時刻ｔ２では、低速ＤＭＡＣ１６ｂの非予約チャネルにおいて、スキャン処理用ＣＰＵ１１ａによって管理される画像データｄ２の転送待ちが発生する（３ａ）。
【００６１】
時刻ｔ３では、アプリケーション処理用ＣＰＵ１１ｂの高速ＤＭＡＣ１６ａを使用したアプリケーション処理用プログラムの転送（２）が完了する。これに伴って高速ＤＭＡＣ１６ａが非使用状態となるため（ステップＳ３０２を参照）、スキャン処理用ＣＰＵ１１ａは、時刻ｔ２において低速ＤＭＡＣ１６ｂの非予約チャネルで転送待ちをしていた画像データｄ２の転送用ＤＭＡＣを高速ＤＭＡＣ１６ａに切り替える（３ｂ）。そして、高速ＤＭＡＣ１６ａでの画像データｄ２の転送が開始される。更に、転送完了したアプリケーション処理用プログラムの実行を開始したアプリケーション処理用ＣＰＵ１１ｂは、低速ＤＭＡＣ１６ｂの予約チャネルでの画像データｄ１の転送を開始する（４ａ）。
【００６２】
即ち、本実施形態に係るスキャナー１によれば、スキャン処理用ＣＰＵ１１ａが画像データの転送に高速ＤＭＡＣ１６ａを用いたい場合に、アプリケーション処理用プログラムの転送完了を待たずに低速ＤＭＡＣ１６ｂの非予約チャネルを用いて一旦画像データの転送を開始し、その後アプリケーション処理用プログラムの転送完了に伴って、画像データの転送に用いるＤＭＡＣを高速ＤＭＡＣ１６ａに切り替えることができる。これによって、起動時のスキャン開始の待ち時間短縮と、高速な連続スキャンとを両立することが可能となる。
【００６３】
時刻ｔ４では、スキャン処理用ＣＰＵ１１ａによる高速ＤＭＡＣ１６ａでの画像データｄ２の転送（３ｂ）、スキャン処理用ＣＰＵ１１ａによる低速ＤＭＡＣ１６ｂの非予約チャネルでの画像データｄ１の転送（３ａ）、及びアプリケーション処理用ＣＰＵ１１ｂによる低速ＤＭＡＣ１６ｂの予約チャネルでの画像データｄ１の転送（４ａ）が進行する。また、高速ＤＭＡＣ１６ａにはスキャン処理用ＣＰＵ１１ａによる画像データｄ３の転送予約が入り（３ｂ）、低速ＤＭＡＣ１６ｂの予約チャネルにはアプリケーション処理用ＣＰＵ１１ｂによる画像データｄ２の転送予約が入る（４ａ）。
【００６４】
時刻ｔ５では、スキャン処理用ＣＰＵ１１ａの低速ＤＭＡＣ１６ｂの非予約チャネルを使用した画像データｄ１の転送（３ａ）が完了する。これに伴って、低速ＤＭＡＣ１６ｂの非予約チャネルは非使用状態となる。
【００６５】
時刻ｔ６では、スキャン処理用ＣＰＵ１１ａの高速ＤＭＡＣ１６ａを使用した画像データｄ２の転送（３ｂ）が完了する。続いて、スキャン処理用ＣＰＵ１１ａは、高速ＤＭＡＣ１６ａでの画像データｄ３の転送（３ｂ）を開始する。
【００６６】
時刻ｔ７では、アプリケーション処理用ＣＰＵ１１ｂの低速ＤＭＡＣ１６ｂの予約チャネルを使用した画像データｄ１の転送（４ａ）が完了する。続いて、アプリケーション処理用ＣＰＵ１１ｂは、低速ＤＭＡＣ１６ｂの予約チャネルでの画像データｄ２の転送（４ａ）を開始する。更に、アプリケーション処理用ＣＰＵ１１ｂは、低速ＤＭＡＣ１６ｂの非予約チャネルでの画像データｄ３の転送（４ｂ）を開始する。
【００６７】
時刻ｔ８以降は、時刻ｔ６で開始された、スキャン処理用ＣＰＵ１１ａの高速ＤＭＡＣ１６ａでの画像データｄ３の転送（３ｂ）が継続される。高速ＤＭＡＣ１６ａでの画像データｄ３の転送（３ｂ）は、時刻ｔ９で完了する。また、時刻ｔ８以降は、時刻ｔ７で開始された、アプリケーション処理用ＣＰＵ１１ｂの低速ＤＭＡＣ１６ｂの予約チャネルでの画像データｄ２の転送（４ａ）、及びアプリケーション処理用ＣＰＵ１１ｂの低速ＤＭＡＣ１６ｂの非予約チャネルでの画像データｄ３の転送（４ｂ）が継続される。低速ＤＭＡＣ１６ｂでの画像データｄ２及びｄ３の転送（４ａ、４ｂ）は、時刻ｔ１１で完了する。
【００６８】
＜効果＞
本実施形態に係るスキャナー１によれば、上記説明した構成を備えることによって、ＤＭＡＣのチャネルを効率的に利用して、システム全体のスループットを向上させることが可能となる。より具体的には、ＤＭＡＣが有する複数のチャネルを、予約チャネルと非予約チャネルとに分け、ＤＭＡＣの切り替えの際に待ち時間を発生させないようにすることで、ＤＭＡコントローラの非使用時間を低減させることが出来る。更に、予約チャネル／非予約チャネルの数を動的に変更可能とすることで、運用中のデータ転送の効率も向上させることが出来る。
【００６９】
＜バリエーション＞
本実施形態では、互いに異なる転送性能（転送速度）を有する２つのＤＭＡＣを用いる例について説明しているが、情報処理装置に備えられる複数のＤＭＡコントローラは、同一の速度で動作するＤＭＡＣであってもよい。本開示に係る技術によれば、動作速度に差のない複数のＤＭＡコントローラについて適用された場合であっても、ＤＭＡコントローラを切り替える際の、ＤＭＡコントローラの非使用時間を低減させることが可能である。
【００７０】
また、本実施形態では、ＤＭＡＣにデータ転送の割り当てを行う各処理部がＣＰＵである例を説明しているが、各処理部はＤＭＡＣを用いてデータ転送を行う命令主体であればよく、ＣＰＵに限定されない。例えば、各処理部は、単一のＣＰＵにおいて実行される複数のソフトウェアモジュールであってもよい。
【００７１】
また、本実施形態では、スキャナー１の撮像方式として、シートフィーダー１８にセットされた原稿を自動送りしながら撮像する撮像方式を採用したスキャナー１を例示したが、スキャナーの撮像方式は限定されない。例えば、スキャナーは、ユーザーによって読取位置にセットされた原稿を撮像するタイプのものであってもよい。
【符号の説明】
【００７２】
１  スキャナー
【図１】
2020067887.tif 000003
【図２】
2020067887.tif 000004
【図３】
2020067887.tif 000005
【図４】
2020067887.tif 000006
【図５】
2020067887.tif 000007
【図６】
2020067887.tif 000008
【図７】
2020067887.tif 000009
【図８】
2020067887.tif 000010
【図９】
2020067887.tif 000011
【図１０】
2020067887.tif 000012
【図１１】
2020067887.tif 000013