IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

<>
  • 特許-情報処理装置、及びプログラム 図1
  • 特許-情報処理装置、及びプログラム 図2
  • 特許-情報処理装置、及びプログラム 図3
  • 特許-情報処理装置、及びプログラム 図4
  • 特許-情報処理装置、及びプログラム 図5
  • 特許-情報処理装置、及びプログラム 図6
  • 特許-情報処理装置、及びプログラム 図7
  • 特許-情報処理装置、及びプログラム 図8
  • 特許-情報処理装置、及びプログラム 図9
  • 特許-情報処理装置、及びプログラム 図10
  • 特許-情報処理装置、及びプログラム 図11
  • 特許-情報処理装置、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】情報処理装置、及びプログラム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20240521BHJP
   G06F 15/167 20060101ALI20240521BHJP
【FI】
G06F12/00 564A
G06F12/00 580
G06F15/167 610Z
【請求項の数】 6
(21)【出願番号】P 2020051605
(22)【出願日】2020-03-23
(65)【公開番号】P2021149848
(43)【公開日】2021-09-27
【審査請求日】2023-02-28
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】ヌデ島 正起
(72)【発明者】
【氏名】橋本 貴之
(72)【発明者】
【氏名】高澤 大樹
【審査官】松平 英
(56)【参考文献】
【文献】特開2011-134057(JP,A)
【文献】米国特許出願公開第2020/0051204(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00-12/128
13/16-13/18
15/16-15/177
G06T 1/00-1/40
3/00-5/50
G11C11/56
16/00-17/18
29/00-29/56
(57)【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
メモリに記憶された、時系列で処理をされるべき複数のデータにパイプライン方式で前記処理を行う複数のモジュールの各々が、前記複数のデータのうちの一のデータに前記処理を行うときの、前記メモリへのアクセスでの第1の帯域幅を監視し、
前記複数のモジュールのうち、前記第1の帯域幅が最も大きい第1のモジュールと最も小さいモジュールの比率が所定の閾値を超えている場合に、前記第1のモジュールが前記一のデータに続く他のデータに前記処理を行うときの、前記メモリへのアクセスでの第2の帯域幅を、前記第1のモジュールが前記一のデータに前記処理を行うときの、前記メモリへのアクセスでの前記第1の帯域幅より減少させる、
情報処理装置。
【請求項2】
前記プロセッサは、
前記第1のモジュールの前記第2の帯域幅の減少を、
前記第1のモジュールが前記処理に用いるクロックの個数を増加させることにより行う、
請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記第1のモジュールの前記第2の帯域幅の減少を、
前記第1のモジュールが前記処理に用いるクロックの周波数を低下させることにより行う、
請求項1に記載の情報処理装置。
【請求項4】
前記プロセッサは、
前記第1のモジュールの前記第2の帯域幅が、前記複数のモジュールのうち、前記第1の帯域幅が前記第1のモジュールの前記第1の帯域幅より小さい第2のモジュールの前記第1の帯域幅に近付くまで、前記第1のモジュールの前記第2の帯域幅の減少を繰り返す、
請求項1から請求項3までのいずれか1項に記載の情報処理装置。
【請求項5】
前記プロセッサは、
前記第1のモジュールの前記第2の帯域幅が、前記複数のモジュールのうち、前記第1の帯域幅が最も小さい第2のモジュールの前記第1の帯域幅に近付くまで、前記第1のモジュールの前記第2の帯域幅の減少を繰り返す、
請求項1から請求項4までのいずれか1項に記載の情報処理装置。
【請求項6】
コンピュータに、
メモリに記憶された、時系列で処理をされるべき複数のデータにパイプライン方式で前記処理を行う複数のモジュールの各々が、前記複数のデータのうちの一のデータに前記処理を行うときの、前記メモリへのアクセスでの第1の帯域幅を監視し、
前記複数のモジュールのうち、前記第1の帯域幅が最も大きい第1のモジュールと最も小さいモジュールの比率が所定の閾値を超えている場合に、前記第1のモジュールが前記一のデータに続く他のデータに前記処理を行うときの、前記メモリへのアクセスでの第2の帯域幅を、前記第1のモジュールが前記一のデータに前記処理を行うときの、前記メモリへのアクセスでの前記第1の帯域幅より減少させる、処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、及びプログラムに関する。
【背景技術】
【0002】
特許文献1は、メモリ装置を開示する。特許文献1のメモリ装置は、メモリと、ライト要求またはリード要求を出力するモジュールと、前記メモリを制御するメモリコントローラと、バッファとからなる。前記メモリコントローラは、キューと、ピーク管理部と、アビ-タとを備える。前記キューは、前記モジュールのリード要求またはライト要求を蓄える。前記ピーク管理部は、前記キューに蓄えられたリード要求またはライト要求が予め設定したピーク値を超過するか否かを監視する。前記アビ-タは、前記ピーク管理部が前記超過を検出しない場合は、前記ライト要求またはリード要求に対するアービトレーションを行い、前記ピーク管理部が前記超過を検出した場合は、前記キューに蓄えられたライト要求に基づいてライトデータを前記バッファに書き込み処理させる。
【0003】
特許文献2は、スケジューリング方法を開示する。特許文献2のスケジューリング方法は、バスを介してデータ転送を実行する複数のプロセッサを用いることによって複数の処理を特定の時間間隔内に実行するためのスケジューリング方法である。特許文献2のスケジューリング方法は、入力ステップと、実行ステップとを具備する。入力ステップでは、前記複数の処理それぞれの実行に要する時間を示すコスト情報、および前記複数の処理それぞれが必要とするデータ転送バンド幅を示すバンド幅情報を入力する。実行ステップでは、前記複数の処理が前記特定の時間間隔内に実行され、且つ前記複数の処理の中で必要とするデータ転送バンド幅が大きい上位少なくとも2つの処理の実行期間が互いに重複しないように、前記入力されたコスト情報およびバンド幅情報に基づいて、前記複数の処理それぞれが実行されるプロセッサと前記複数の処理それぞれの実行開始タイミングとを決定するスケジューリング処理を実行する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2007-108996号公報
【文献】特開2005-100264号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理装置を構成する複数のモジュールは、メモリに格納されているデータにアクセスしつつ、パイプライン方式で、前記データに各モジュールの処理を行う。
【0006】
例えば、1つのモジュールが処理を行うべきデータの大きさが変動すると、前記1つのモジュールが前記メモリへのアクセスのために使用する帯域幅が、前記1つのモジュールが使用する見込みであると想定されていた帯域幅より増大することがある。
【0007】
しかし、前記複数のモジュールがアクセスのために使用することができる、前記メモリの帯域幅には、上限がある。従って、上記した、前記1つのモジュールの帯域幅の増大に起因して、他のモジュールは、前記メモリへのアクセスのための帯域幅を確保することができなくなる。その結果として、前記パイプライン方式の下での、前記複数のモジュールの全体としての処理が、遅延することになる。
【0008】
本発明の目的は、1つのモジュールがメモリへのアクセスのために使用する帯域幅が変化しても、他のモジュールが前記メモリへのアクセスのための帯域幅を確保しない場合と比較して、他のモジュールが前記メモリへのアクセスのために使用する帯域幅への影響を低減することができる情報処理装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記した課題を解決すべく、第1態様に係る情報処理装置は、プロセッサを備え、前記プロセッサは、メモリに記憶された、時系列で処理をされるべき複数のデータにパイプライン方式で前記処理を行う複数のモジュールの各々が、前記複数のデータのうちの一のデータに前記処理を行うときの、前記メモリへのアクセスでの第1の帯域幅を監視し、前記複数のモジュールのうち、前記第1の帯域幅が最も大きい第1のモジュールと最も小さいモジュールの比率が所定の閾値を超えている場合に、前記第1のモジュールが前記一のデータに続く他のデータに前記処理を行うときの、前記メモリへのアクセスでの第2の帯域幅を、前記第1のモジュールが前記一のデータに前記処理を行うときの、前記メモリへのアクセスでの前記第1の帯域幅より減少させる。
【0010】
第2態様に係る情報処理装置は、第1態様に係る情報処理装置において、前記プロセッサは、前記第1のモジュールの前記第2の帯域幅の減少を、前記第1のモジュールが前記処理に用いるクロックの個数を増加させることにより行う。
【0011】
第3態様に係る情報処理装置は、第1態様に係る情報処理装置において、前記プロセッサは、前記第1のモジュールの前記第2の帯域幅の減少を、前記第1のモジュールが前記処理に用いるクロックの周波数を低下させることにより行う。
【0012】
第4態様に係る情報処理装置は、第1態様から第3態様までのいずれかの態様に係る情報処理装置において、前記プロセッサは、前記第1のモジュールの前記第2の帯域幅が、前記複数のモジュールのうち、前記第1の帯域幅が前記第1のモジュールの前記第1の帯域幅より小さい第2のモジュールの前記第1の帯域幅に近付くまで、前記第1のモジュールの前記第2の帯域幅の減少を繰り返す。
【0013】
第5態様に係る情報処理装置は、第1態様から第4態様までのいずれかの態様に係る情報処理装置において、前記プロセッサは、前記第1のモジュールの前記第2の帯域幅が、前記複数のモジュールのうち、前記第1の帯域幅が最も小さい第2のモジュールの前記第1の帯域幅に近付くまで、前記第1のモジュールの前記第2の帯域幅の減少を繰り返す。
【0014】
第6態様に係るプログラムは、コンピュータに、メモリに記憶された、時系列で処理をされるべき複数のデータにパイプライン方式で前記処理を行う複数のモジュールの各々が、前記複数のデータのうちの一のデータに前記処理を行うときの、前記メモリへのアクセスでの第1の帯域幅を監視し、前記複数のモジュールのうち、前記第1の帯域幅が最も大きい第1のモジュールと最も小さいモジュールの比率が所定の閾値を超えている場合に、前記第1のモジュールが前記一のデータに続く他のデータに前記処理を行うときの、前記メモリへのアクセスでの第2の帯域幅を、前記第1のモジュールが前記一のデータに前記処理を行うときの、前記メモリへのアクセスでの前記第1の帯域幅より減少させる。
【発明の効果】
【0015】
第1態様に係る情報処理装置、及び第6態様に係るプログラムによれば、1つのモジュールがメモリへのアクセスのために使用する帯域幅が変化しても、他のモジュールが前記メモリへのアクセスのための帯域幅を確保しない場合と比較して、他のモジュールが前記メモリへのアクセスのために使用する帯域幅への影響を低減することができる。
【0016】
第2態様に係る情報処理装置によれば、前記第1のモジュールのためのクロックの動作を変更することなく、前記第1のモジュールの帯域幅を減少させることができる。
【0017】
第3態様に係る情報処理装置によれば、前記第1のモジュールの動作を変更することなく、前記第1のモジュールの帯域幅を減少させることができる。
【0018】
第4態様に係る情報処理装置によれば、前記第1のモジュールによる前記他のデータのための第2の帯域幅を、前記第2のモジュールによる前記一のデータのための第1の帯域幅に近似させることができる。
【0019】
第5態様に係る情報処理装置によれば、前記第1の帯域幅が最も大きい前記第1のモジュールによる前記他のデータのための第2の帯域幅を、前記第1の帯域幅が最も小さい前記第2のモジュールによる前記一のデータのための第1の帯域幅に近似させる。これにより、前記第1の帯域幅が最も小さくないモジュールを基準とすることに比較して、前記第1のモジュールの第2の帯域幅をより一層、減少させることができる。
【図面の簡単な説明】
【0020】
図1】実施形態の情報処理装置JSの接続関係を示す。
図2】実施形態の情報処理装置JSの具体的な構成を示す。
図3】実施形態の情報処理装置JSの抽象的な構成を示す。
図4】実施形態の情報処理装置JSの機能ブロック図である。
図5】実施形態の頁画像PG及び分割画像BGを示す。
図6】実施形態の第1のモジュールMD(1)~第5のモジュールMD(5)の基本動作を示す。
図7】実施形態の情報処理装置JSの動作を示すフローチャートである。
図8】実施形態の情報処理装置JSの動作を示すタイムチャートである。
図9】実施形態の所要時間SJ及び帯域幅THテーブルTBLを示す。
図10】実施形態の情報処理装置JSの帯域幅を示すタイムチャートである。
図11】比較例の情報処理装置の動作を示すタイムチャートである。
図12】比較例の情報処理装置の帯域幅を示すタイムチャートである。
【発明を実施するための形態】
【0021】
〈実施形態〉
本発明に係る情報処理装置の実施形態について説明する。
【0022】
〈情報処理装置JSの外部との接続関係〉
図1は、実施形態の情報処理装置JSの接続関係を示す。
【0023】
実施形態の情報処理装置JSは、図1に示されるように、スキャナSC及びプリンタPRに接続されている。情報処理装置JSは、スキャナSCから、スキャナSCにより走査された、A4サイズ等の頁画像PG(図5を参照して後述。)の入力を受け、前記頁画像PGに画像処理を行い、前記画像処理が行われた頁画像PGを、プリンタPRへ出力する。
【0024】
〈情報処理装置JSの具体的な構成〉
図2は、実施形態の情報処理装置JSの具体的な構成を示す。
【0025】
実施形態の情報処理装置JSは、図2に示されるように、管理ユニットKUと、第1のモジュールMD(1)~第5のモジュールMD(5)と、メモリユニットMUと、を含む。情報処理装置JSの内部にある第1のモジュールMD(1)~第5のモジュールMD(5)、及びメモリユニットMU、並びに、情報処理装置JSの外部にあるスキャナSC(図1に図示。)、及びプリンタPR(図1に図示。)は、図2に示されるように、バスBSを介して相互に接続されている。
【0026】
管理ユニットKUは、第1のモジュールMD(1)~第5のモジュールMD(5)の動作を監視し、かつ、制御する。
【0027】
第1のモジュールMD(1)~第5のモジュールMD(5)は、それぞれ、第1のクロックCLK1~第5のクロックCLK5に基づき、動作する。第1のモジュールMD(1)~第5のモジュールMD(5)は、バスBS経由でスキャナSCから頁画像PGの入力を受け、頁画像PGに画像処理(例えば、画像の圧縮拡張)を行い、画像処理が行われた頁画像PGをバスBS経由でプリンタPRへ出力する。具体的には、第1のモジュールMD(1)~第5のモジュールMD(5)は、時系列で前記画像処理をされるべき、上記した頁画像PGを構成する第1の分割画像BG(1)~第8の分割画像BG(8)(図5を参照して後述。)に、パイプライン方式で前記画像処理を行う。
【0028】
ここで、第1の分割画像BG(1)~第8の分割画像BG(8)は、『複数のデータ』の一例である。
【0029】
メモリユニットMUには、バスBS経由でスキャナSCから入力された、第1の分割画像BG(1)~第8の分割画像BG(8)が記憶される。
【0030】
第1のモジュールMD(1)~第5のモジュールMD(5)は、第1の分割画像BG(1)~第8の分割画像BG(8)に画像処理を行うときに、メモリユニットMUへアクセスする。より具体的には、第1のモジュールMD(1)~第5のモジュールMD(5)は、画像処理を行う前に、メモリユニットMUから第1の分割画像BG(1)~第8の分割画像BG(8)を読み出し、また、画像処理を行った後、メモリユニットMUへ第1の分割画像BG(1)~第8の分割画像BG(8)を書き込む。
【0031】
メモリユニットMUからは、バスBS経由でプリンタPRへ、画像処理が行われた第1の分割画像BG(1)~第8の分割画像BG(8)が、出力される。
【0032】
メモリユニットMUは、例えば、DDR SDRAM(Double Data Rate Static Random Access Memory)である。
【0033】
第1の分割画像BG(1)~第8の分割画像BG(8)は、『データ』の一例である。メモリユニットMUは、『メモリ』の一例である。
【0034】
〈情報処理装置JSの抽象的な構成〉
図3は、実施形態の情報処理装置JSの抽象的な構成を示す。実施形態の情報処理装置JSは、図1に示されるように、入力部1と、CPU2(Central Processing Unit)と、出力部3と、記憶媒体4と、メモリ5と、を含む。
【0035】
入力部1は、例えば、キーボード、マウス、タッチパネル、通信ユニットから構成される。
【0036】
CPU2は、『プロセッサ』の一例であり、ソフトウェアに従ってハードウェアを動作させる、よく知られたコンピュータの中核である。
【0037】
出力部3は、例えば、プリンタ、液晶モニター、通信ユニットから構成される。記憶媒体4は、例えば、ハードディスクドライブ(HDD:Hard Disk Drive)、ソリッドステートドライブ(SSD:Solid State Drive)、ROM(Read Only Memory)から構成される。メモリ5は、例えば、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)から構成される。
【0038】
記憶媒体4は、プログラムPRGを記憶する。プログラムPRGは、情報処理装置JSが実行すべき処理の内容を規定する命令群である。
【0039】
メモリ5は、所要時間・帯域幅テーブルTBL(図9にも図示。)を記憶する。所要時間・帯域幅テーブルTBLについては、後述する。
【0040】
〈情報処理装置JSの機能〉
図4は、実施形態の情報処理装置JSの機能ブロック図である。
【0041】
情報処理装置JSは、図4に示されるように、初期設定・変数更新部11と、測定部12と、特定部13と、比較部14と、減速部15と、制御部16と、記憶部17と、を含む。
【0042】
情報処理装置JSにおける、ハードウェアの構成と機能的構成との関係については、以下のとおりである。記憶媒体4(記憶部17の一部の機能を実現する。)に記憶されたプログラムPRGに基づき、管理ユニットKUであるCPU2が制御する下で、第1のモジュールMD(1)~第5のモジュールMD(5)は、第1の分割画像BG(1)~第8の分割画像BG(8)への画像処理を、メモリユニットMUであるメモリ5(記憶部17の他の一部の機能を実現する。)を用いつつ実行する。管理ユニットKUであるCPU2は、また、制御部16として、必要に応じて、入力部1及び出力部3の動作を制御することにより、初期設定・変数更新部11、測定部12、特定部13、比較部14、及び、減速部15の各部の機能を実現する。各部の機能については、後述する。
【0043】
〈頁画像PGと分割画像BG〉
図5は、実施形態の頁画像PG及び分割画像BGを示す。
【0044】
頁画像PGは、上記したように、また、図5に示されるように、例えば、A4サイズの画像である。頁画像PGは、第1のモジュールMD(1)~第5のモジュールMD(5)の画像処理の観点から、図5に示されるように、第1の分割画像BG(1)~第8の分割画像BG(8)に分割される。第1の分割画像BG(1)~第8の分割画像BG(8)は、第1のモジュールMD(1)~第5のモジュールMD(5)の各々が画像処理を行う一単位(一纏まり)である。
【0045】
〈第1のモジュールMD(1)~第5のモジュールMD(5)の基本動作〉
図6は、実施形態の第1のモジュールMD(1)~第5のモジュールMD(5)の基本動作を示す。
【0046】
第1の分割画像BG(1)~第8の分割画像BG(8)は、図6に示されるように、時系列で画像処理を施される。
【0047】
第1のモジュールMD(1)~第5のモジュールMD(5)は、パイプライン方式で、第1の分割画像BG(1)~第8の分割画像BG(8)に画像処理を行う。
【0048】
より詳しくは、図6に示されるように、例えば、第1のモジュールMD(1)は、まず、第1の分割画像BG(1)~第8の分割画像BG(8)のうち、第1の分割画像BG(1)に画像処理を行う。第1のモジュールMD(1)は、次に、画像処理が行われた第1の分割画像BG(1)を、第1のモジュールMD(1)に引き続いて画像処理を行うべき第2のモジュールMD(2)に引き渡す。第1のモジュールMD(1)は、次に、第1の分割画像BG(1)に引き続いて画像処理を行うべき第2の分割画像BG(2)に画像処理を行う。
【0049】
〈実施形態の動作〉
図7は、実施形態の情報処理装置JSの動作を示すフローチャートである。
【0050】
図8は、実施形態の情報処理装置JSの動作を示すタイムチャートである。
【0051】
以下、実施形態の情報処理装置JSの動作について、図7のフローチャート、及び、図8のタイムチャートを参照して説明する。
【0052】
以下では、説明及び理解を容易にすべく、第1のモジュールMD(1)~第5のモジュールMD(5)を「モジュールMD(s)」(sは、変数)で表し、また、第1の分割画像BG(1)~第8の分割画像BG(8)を「分割画像BG(t)」(tは、変数)で表す。
【0053】
ステップS1:情報処理装置JSでは、管理ユニットKU(図2に図示。)であるCPU2(図3に図示。)は、初期設定・変数更新部11(図4に図示。)として、初期設定を行う。CPU2は、具体的には、s=1、及び、t=1を設定する。
【0054】
ステップS2:ステップS1で初期設定が終了すると、管理ユニットKUであるCPU2は、測定部12(図4に図示。)として、モジュールMD(s)が、分割画像BG(t)に画像処理を行うために、メモリユニットMUを使用する所要時間SJを測定する。
【0055】
CPU2は、例えば、図8に示されるように、モジュールMD(1)である第1のモジュールMD(1)が、分割画像BG(1)である第1の分割画像BG(1)に画像処理を行うために、メモリユニットMUを使用する所要時間SJ(図6に図示。)を測定する。
【0056】
ここで、所要時間SJは、モジュールMD(s)の各々がメモリユニットMUにアクセスする、単位時間当たりの帯域幅THであると換言できる。所要時間SJが短いほど、即ち、画像処理を速く行うほど、帯域幅THは、大きく、反対に、所要時間SJが長いほど、即ち、画像処理を遅く行うほど、帯域幅THは、小さい。
【0057】
図9は、実施形態の所要時間SJ及び帯域幅THのテーブルTBLを示す。
【0058】
CPU2は、第1のモジュールMD(1)~第5のモジュールMD(5)毎に測定された所要時間SJ、及び、所要時間SJから換算される帯域幅THを、所要時間・帯域幅テーブルTBLの形式で、メモリ5(図4に図示。)に格納する。これにより、CPU2は、第1のモジュールMD(1)~第5のモジュールMD(5)がメモリユニットMUにアクセスするときの帯域幅THを監視する。
【0059】
ステップS3:ステップS2で、モジュールMD(s)が、分割画像BG(t)に画像処理を行うためにメモリユニットMUにアクセスする所要時間SJが測定されると、CPU2は、比較部14(図4に図示。)として、s=5であるか否かを判断する。
【0060】
s=5であるとき、処理は、「YES」を経て、ステップS4へ進む。他方で、s=5でないとき、より正確には、s<5であるとき、処理は、「NO」を経て、ステップS10へ進む。
【0061】
ステップS4:ステップS3で、s=5であると判断されると、CPU2は、特定部13(図4に図示。)として、所要時間・帯域幅テーブルTBL(図9に図示。)を参照して、所要時間SJが最も短いモジュールMD(s)、換言すれば、帯域幅THが最も大きいモジュールMD(s)を特定する。
【0062】
詳しくは、t=1であることを想定すると、ステップS3でs=5であることから、ステップS2で、第1のモジュールMD(1)~第5のモジュールMD(5)の各々が、第1の分割画像BG(1)への画像処理のためにメモリユニットMUにアクセスする所要時間SJの測定が終了している。
【0063】
より詳しくは、第1のモジュールMD(1)が第1の分割画像BG(1)への画像処理のためにメモリユニットMUにアクセスする所要時間SJ1(図示無し。)、第2のモジュールMD(2)が第1の分割画像BG(1)への画像処理のためにメモリユニットMUにアクセスする所要時間SJ2(図示無し。)、第3のモジュールMD(3)が第1の分割画像BG(1)への画像処理のためにメモリユニットMUにアクセスする所要時間SJ3(図示無し。)、第4のモジュールMD(4)が第1の分割画像BG(1)への画像処理のためにメモリユニットMUにアクセスする所要時間SJ4(図示無し。)、及び、第5のモジュールMD(5)が第1の分割画像BG(1)への画像処理のためにメモリユニットMUにアクセスする所要時間SJ5(図示無し。)の測定が終了している。
【0064】
加えて、所要時間SJ1~SJ5に対応する帯域幅TH1~TH5(図示無し。)の算出も終了している。
【0065】
ここで、図8に示されるように、第1の分割画像BG(1)の所要時間SJ1~SJ5のうち、所要時間SJ5が最も短いと想定する。
【0066】
CPU2は、上記した所要時間SJ1~SJ5のうち、所要時間SJ5に対応する第5のモジュールMD(5)を「所要時間SJが最も短い(帯域幅THが最も大きい)モジュールMD(fast)」であると位置付ける。
【0067】
ステップS5:ステップS4で、モジュールMD(fast)が特定されると、CPU2は、特定部13として、所要時間・帯域幅テーブルTBL(図9に図示。)を参照して、ステップS4での動作とは対照的に、所要時間SJが最も長いモジュールMD(s)、換言すれば、帯域幅THが最も狭いモジュールMD(s)を特定する。
【0068】
詳しくは、上記と同様に、t=1であることを想定すると、ステップS3でs=5であることから、ステップS2で、第1のモジュールMD(1)~第5のモジュールMD(5)の各々が、第1の分割画像BG(1)への画像処理のためにメモリユニットMUを使用する所要時間SJ1~SJ5の測定が終了している。
【0069】
加えて、所要時間SJ1~SJ5に対応する帯域幅TH1~TH5の算出も終了している。
【0070】
ここで、図8に示されるように、第1の分割画像BG(1)の所要時間SJ1~SJ5のうち、所要時間SJ3が最も長いと想定する。
【0071】
CPU2は、上記した所要時間SJ1~SJ5のうち、所要時間SJ3に対応する第3のモジュールMD(3)を「所要時間SJが最も長い(帯域幅THが最も小さい)モジュールMD(slow)」であると位置付ける。
【0072】
ステップS6:CPU2は、比較部14(図4に図示。)として、モジュールMD(fast)とモジュールMD(slow)との比率が、所定の閾値を超えているか否かを比較する。
【0073】
前記比率が前記閾値を超えていると判断されるとき、処理は、「YES」を経て、ステップS7へ進む。他方で、前記比率が前記閾値を超えていないと判断されるとき、処理は、「NO」を経て、ステップSS8へ進む。
【0074】
ステップS7:ステップS6で、モジュールMD(fast)とモジュールMD(slow)との比率が、上記の閾値を超えていると判断されると、CPU2は、減速部15(図4に図示。)として、モジュールMD(fast)が、分割画像BG(t)に引き続く分割画像BG(t+1)を処理する動作を遅らせることを設定する。換言すれば、CPU2は、モジュールMD(fast)が分割画像BG(t+1)を処理するときの帯域幅THを減少させることを設定する。
【0075】
ここで、分割画像BG(t)は、『一のデータ』の一例であり、分割画像BG(t+1)は、『他のデータ』の一例である。また、モジュールMD(fast)が分割画像BG(t)を処理するときの帯域幅は、『第1の帯域幅』の一例であり、モジュールMD(fast)が分割画像BG(t+1)を処理するときの帯域幅は、『第2の帯域幅』の一例である。
【0076】
詳しくは、t=1であることを想定すると、CPU2は、モジュールMD(fast)である第5のモジュールMD(5)が、第1の分割画像BG(1)に引き続く第2の分割画像BG(2)に行うであろう画像処理の動作を、第1の分割画像BG(1)に行った画像処理の動作に比して減速させることを設定する。
【0077】
CPU2は、上記した、第5のモジュールMD(5)による第2の分割画像BG(2)への画像処理の動作を減速させることを、例えば、以下のように実現する。
【0078】
CPU2は、第1の分割画像BG(1)に画像処理を行うときに要した第5のクロックCLK5(図2に図示。)のクロックの個数(例えば、4個)よりも、例えば、1つのクロックの分だけ増加させたクロックの個数(例えば、5個)を用いて、第2の分割画像BG(2)の画像処理を行わせる。
【0079】
CPU2は、また、第2の分割画像BG(2)に画像処理を行うときに用いる第5のクロックCLK5の周波数を、第1の分割画像BG(1)に画像処理を行うときに用いた第5のクロックCLK5の周波数よりも低下させる。
【0080】
ステップS8:ステップS7で、モジュールMD(fast)が分割画像BG(t+1)を処理する動作を遅らせることが設定されると、CPU2は、初期設定・変数更新部11として、変数sを設定し、また、変数tを更新する。CPU2は、具体的には、s=1に設定し、かつ、t=t+1に更新する。
【0081】
ステップS9:ステップS8で、変数sが設定され、また、変数tが更新されると、CPU2は、比較部14として、t>8であるか否かを判断する。
【0082】
t>8であると判断されると、換言すれば、第1の分割画像BG(1)~第8の分割画像BG(8)の全てについて、第1のモジュールMD(1)~第5のモジュールMD(5)による画像処理が終了したと判断されると、処理は、「YES」を経て終了する。
【0083】
他方で、t>8でないと判断されると、換言すれば、第1の分割画像BG(1)~第8の分割画像BG(8)のうちの1つ以上が、第1のモジュールMD(1)~第5のモジュールMD(5)の全てによる画像処理が未了であると判断されると、処理は、「NO」を経てステップS2へ戻る。
【0084】
処理が、ステップS2に戻った後に、再び、ステップS7に至ったときには、CPU2は、モジュールMD(fast)である第5のモジュールMD(5)による、第2の分割画像BG(2)に引き続く第3の分割画像BG(3)への画像処理の動作を遅らせる。
【0085】
ステップS7でモジュールMD(fast)である第5のモジュールMD(5)による画像処理を遅らせることを、t=1→2→3→4→、、、、毎に繰り返すことにより、モジュールMD(fast)である第5のモジュールMD(5)の所要時間SJ5が徐々に長くなり、換言すれば、帯域幅TH5が徐々に小さくなる。上記した繰り返しにより、第5のモジュールMD(5)の所要時間SJ5は、第3のモジュールMD(3)の所要時間SJ3に徐々に近付き、換言すれば、第5のモジュールMD(5)の帯域幅TH5は、第3のモジュールMD(3)の帯域幅TH3に徐々に近付くことになる。
【0086】
ステップS10:ステップS3で、s<5であると判断され、「NO」を経てステップS10に至ると、CPU2は、初期設定・変数更新部11として、変数sを更新する。具体的には、CPU2は、s=s+1に更新する。
【0087】
〈実施形態と比較例との対比〉
図10は、実施形態の情報処理装置JSの帯域幅を示すタイムチャートである。
【0088】
図11は、比較例の情報処理装置の動作を示すタイムチャートである。
【0089】
図12は、比較例の情報処理装置の帯域幅を示すタイムチャートである。
【0090】
実施形態の情報処理装置JSでは、第1のモジュールMD(1)~第5のモジュールMD(5)が、図7のフローチャートに沿って動作する。これにより、上記したように、また、図8に示されるように、モジュールMD(fast)である第5のモジュールMD(5)による第1の分割画像BG(1)の所要時間SJ5、第2の分割画像BG(2)の所要時間SJ5、、、及び、第8の分割画像BG(8)の所要時間SJ5は、時間の経過と共に遅くなる。
【0091】
換言すれば、図10に示されるように、モジュールMD(fast)である第5のモジュールMD(5)による第1の分割画像BG(1)の帯域幅TH5、第5のモジュールMD(5)による第2の分割画像BG(2)の帯域幅TH5、、、、及び、第5のモジュールMD(5)による第8の分割画像BG(8)の帯域幅TH5は、時間の経過と共に小さくなる。
【0092】
上記したように、第5のモジュールMD(5)の帯域幅TH5が時間の経過と共に小さくなることにより、他の第1のモジュールMD(1)~第4のモジュールMD(4)が、それぞれ、メモリユニットMUでの帯域幅TH1~TH4を確保することが不可能である、または、困難であるという事態が回避される。その結果、例えば、情報処理装置JSがプリンタPRへ提供すべき頁画像PG、正確には、第1の分割画像BG(1)~第8の分割画像BG(8)のうちのいずれかが、いわゆるアンダーラン(印刷に必要な量のデータが供給されないこと)になり、プリンタPRが、頁画像PGを印刷することができなくなるという事態が回避される。
【0093】
上記した実施形態の情報処理装置JSの動作とは対照的に、比較例の情報処理装置では、第1のモジュールMD(1)~第5のモジュールMD(5)が、図7のフローチャートに沿って動作しない。これにより、図11に示されるように、モジュールMD(fast)である第5のモジュールMD(5)による第1の分割画像BG(1)の所要時間SJ5、第2の分割画像BG(2)の所要時間SJ5、、、及び、第8の分割画像BG(8)の所要時間SJ5は、時間が経過しても何ら変化しない。
【0094】
換言すれば、図12に示されるように、モジュールMD(fast)である第5のモジュールMD(5)による第1の分割画像BG(1)の帯域幅TH5、第5のモジュールMD(5)による第2の分割画像BG(2)の帯域幅TH5、、、、及び、第5のモジュールMD(5)による第8の分割画像BG(8)の帯域幅TH5は、時間が経過しても何ら変化しない。
【0095】
その結果、比較例の情報処理装置では、プリンタへの頁画像PGについてアンダーランが発生するという事態が回避されない。
【0096】
〈実施形態の変形例〉
上記したステップS5で、CPU2は、所要時間SJが最も長い(帯域幅THが最も小さい)モジュールMD(slow)を特定することに代えて、以下のような特定を行った上で処理を進めても良い。即ち、上記したステップS4で特定されたモジュールMD(fast)である第5のモジュールMD(5)との比較で、所要時間SJが短い(帯域幅THが小さい)モジュールMD(s)を特定した上で、ステップS7以後の処理を、前記特定されたモジュールMD(s)に基づき、進めても良い。
【0097】
〈プロセッサ、プログラムの補足説明〉
上記した実施形態において、プロセッサとは、広義的なプロセッサを指す。汎用的なプロセッサ(例えば、CPU: Central Processing Unit等)に加えて、専用のプロセッサ(例えば、GPU: Graphics Processing Unit、ASIC: Application Specific Integrated Circuit、FPGA: Field Programmable Gate Array、プログラマブル論理デバイス等)を含む。
【0098】
上記した実施形態において、プロセッサの動作は、1つのプロセッサによって実現されてもよく、また、複数のプロセッサの協働によって実現されてもよい。また、プロセッサの各動作の順序は、上記した実施形態における順序に限定されず、適宜変更してもよい。
【0099】
上記した実施形態において、プログラムPRGは、記憶媒体4に予め記憶(インストール)されていることに代えて、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録されて提供されてもよく、ネットワークを介して外部装置からダウンロードされてもよい。
【符号の説明】
【0100】
JS 情報処理装置
SC スキャナ
PR プリンタ
KU 管理ユニットKU
MD(1)~MD(5) 第1のモジュール~第5のモジュール
MU メモリユニット
BS バス
CLK1~CL5 第1のクロック~第5のクロック
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12