JP2022122677A - 情報処理装置および情報処理装置の制御方法 - Google Patents
情報処理装置および情報処理装置の制御方法 Download PDFInfo
- Publication number
- JP2022122677A JP2022122677A JP2021020060A JP2021020060A JP2022122677A JP 2022122677 A JP2022122677 A JP 2022122677A JP 2021020060 A JP2021020060 A JP 2021020060A JP 2021020060 A JP2021020060 A JP 2021020060A JP 2022122677 A JP2022122677 A JP 2022122677A
- Authority
- JP
- Japan
- Prior art keywords
- command
- holding
- information processing
- type
- image data
- 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
- 238000000034 method Methods 0.000 title claims description 31
- 230000010365 information processing Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1817—Buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/126—Job scheduling, e.g. queuing, determine appropriate device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1268—Job submission, e.g. submitting print job order or request not the print data itself
- G06F3/1272—Digital storefront, e.g. e-ordering, web2print, submitting a job from a remote submission screen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1822—Analysing the received data before processing
- G06K15/1823—Analysing the received data before processing for evaluating the resources needed, e.g. rasterizing time, ink, paper stock
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Facsimiles In General (AREA)
- Software Systems (AREA)
Abstract
【課題】 OSのキューを介さずにコマンドを送信した場合でも、ストレージ装置のキューにおいて画像データ以外を読み書きするコマンドと一緒に処理の順番を待つことになる。ストレージ装置のキューに格納されている処理待ちのコマンドが多い場合には読み書き速度が大きく低下する。【解決手段】 本発明は、画像データを記憶可能な不揮発性の記憶手段と、前記記憶手段に実行させるコマンドを生成する制御手段と、前記制御手段によって生成されたコマンドを保持する保持手段を有する情報処理装置であって、前記記憶手段は、前記保持手段によって保持されたコマンドを取得し、前記保持手段は、画像データに関する第1種類のコマンドを保持する第1保持手段と、画像データに関しない第2種類のコマンドを保持する第2保持手段と、を含むことを特徴とする。【選択図】 図7
Description
本発明は、情報処理装置および情報処理装置の制御方法に関する。
コンピュータ装置がデジタルデータの保存に使用するストレージ装置は、通常CPUからストレージ装置へ送信されるコマンドによって制御、読み書きが実現される。従来のストレージ装置はコマンドを一度に一つしか受け付けできない構成が一般的であった。そのためコンピュータ装置で複数の処理が同時並行的に動作する場合、同時に発生したストレージ装置への読み書き要求は、OSに対応するRAMのキュー(OSキュー)に格納しておき、一つずつ処理する仕組みが用いられてきた。こうしたOSキューの仕組みは一般的にはOSの機能として備えられている。
一方、画像形成装置はスキャナ装置で読み取ったデジタル画像やプリンタ装置で印刷するデジタル画像などの画像データをストレージ装置であるハードディスクやSSD(Solid State Drive)に対して読み書きする。
例えば文書のコピー機能ではスキャナ装置で読み取った画像データをストレージ装置に書き込んでおき、画像データをストレージ装置から読み出しながらプリンタ装置でプリントすることで文書のコピーを実現する。
一般的に画像形成装置はコピー機能に限らず様々な機能を備えており、複数の機能が同時並行的に動作することも一般的となっている。そうした機能の中には動作時に画像データ以外でストレージ装置へのデータの読み書きを行うものもある。このように、機能が複数同時に動作した場合にはストレージ装置への読み書きが競合する。
ここで上述のようにOSキューにコマンドを格納しておき、一つずつ処理すると、画像データ以外のデータのストレージ装置への読み書きと画像データの読み書きが競合した場合、両方の読み書き要求がRAMのキューに格納されて処理の順番を待つことになる。このため画像データの読み書き速度が一定とならず競合の状況によって読み書き速度が大きく変動してしまうおそれがあった。画像データの読み書き速度が大きく変動すると、例えばプリンタ装置の印刷速度が変動してしまうおそれがあった。
画像形成装置のジョブ実行速度を安定させるには画像データの読み書きをできるだけ一定の速度で実現することが重要となる。
例えば特許文献1では、画像データの読み書き時にOSキューを介さないことでストレージ装置への読み書き競合時の画像データ読み書き速度の低下を防ぐ技術が説明されている。
近年のストレージ装置では例えばNVMExpress規格に準拠したSSDのように、性能向上のために一度に複数のコマンドを受け付け可能としたものがある。NVMExpress規格に準拠したSSDでは、従来のストレージ装置と異なるキューの仕組みを備えている。具体的には、コマンドは、OSキューを介して、SSDがコマンドを取得するためのRAMの送信キューに保持される。そして、SSDは、送信キューに保持された複数のコマンドを取得する。
特許文献1の技術では画像データを読み書きするためのコマンドはOSキューを介さずに優先的にストレージ装置へ送信することでストレージ装置の読み書きが競合しても画像データの読み書き速度の変動を防ぐようになっていた。
しかし、ストレージ装置に上記異なるキューの仕組みが機能として備わっている場合、OSキューを介さずにコマンドを送信した場合でも、送信キューに保持される。そのため、送信キューにおいて画像データ以外を読み書きするコマンドと一緒に処理の順番を待つことになる。このような構成によればストレージ装置の送信キューに格納されている処理待ちの、画像データ以外を読み書きするコマンドが多い場合には読み書き速度が大きく低下する。
本発明は、画像データを記憶可能な不揮発性の記憶手段と、前記記憶手段に実行させるコマンドを生成する制御手段と、前記制御手段によって生成されたコマンドを保持する保持手段を有する情報処理装置であって、前記記憶手段は、前記保持手段によって保持されたコマンドを取得し、前記保持手段は、画像データに関する第1種類のコマンドを保持する第1保持手段と、画像データに関しない第2種類のコマンドを保持する第2保持手段と、を含むことを特徴とする。
本発明によれば、ストレージ装置の送信キューに格納されている処理待ちの、画像データ以外を読み書きするコマンドが多い場合であっても読み書き速度が大きく低下することを抑制することが出来る。
添付図面を参照して本発明の各実施例を詳しく説明する。なお、以下の実施例は特許請求の範囲に係る発明を限定するものではなく、また各実施例で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。本実施形態では、情報処理装置の一例として画像処理装置を用いて説明するがこれに限らない。
(実施例1)
以下、本実施例を実施するための形態について図面を用いて説明する。図1は本実施例を適用した画像形成装置のブロック図である。本実施例の画像形成装置1は以下から構成される。
以下、本実施例を実施するための形態について図面を用いて説明する。図1は本実施例を適用した画像形成装置のブロック図である。本実施例の画像形成装置1は以下から構成される。
スキャナ装置106は、原稿から光学的に画像を読み取りデジタル画像に変換する。プリンタ装置107は、デジタル画像を紙媒体に出力する。操作部109は、本装置の操作を行なう。SSD105は、各種ファームウェアおよびデジタル画像等を記憶可能である不揮発性の半導体記憶装置である。そして、コントローラ100は、これらと接続され各モジュールに指示を出す事により画像形成装置上でジョブを実行する。
画像形成装置1はLAN108経由で外部のコンピュータからデジタル画像の入出力、ジョブの発行や機器の遠隔管理等も行なうことが可能である。
コントローラ100はいわゆる汎用的なコンピュータシステムである。全体を制御するCPU101、BIOSと呼ばれる初期プログラムが含まれるブートROM102、CPU101が主記憶メモリとして使用するRAM103を備え、これらが内部バス104を通して接続される。
これらに加えて内部バス104にはPCI Expressインターフェース111が接続されている。PCI Expressインターフェース111はPCI Express規格に準拠した各種ハードウェアを接続するためのバスインターフェースである。コントローラ100にはPCI Expressインターフェース111を介してSSD105および画像処理プロセッサ114が接続されている。
画像処理プロセッサ114はリアルタイムデジタル画像処理を行なうためのASIC (Application Specific Integrated Circuit)である。スキャナインターフェース112を介してスキャナ装置106が、プリンタインターフェース113を介してプリンタ装置107が接続される。
本実施例のSSD105はPCI Express規格のバスでコントローラ100に接続された大容量かつ高速読み書き可能なSSDであり、業界標準のNVMExpress規格に準拠している。SSD105は主にCPU101で実行するプログラムの保管や、ジョブ実行時の画像データの格納に用いられる。
さらに、コントローラ100には操作部インターフェース120を通して操作部109が接続される。操作部109は利用者に各種情報を表示するためのLCDパネル110および各種操作を行うための非図示の操作スイッチを備える。また、コントローラ100はLANインターフェース116を介してLAN108と接続可能である。
図2は本実施例の特徴となるストレージ装置の制御に関連した部分に着目してコントローラ100のより詳細な構成を説明するブロック図である。尚、図2ではストレージ装置の制御に関連しない部分については記載を省略している。
SSD105はCPU101から送信されるコマンドに基づいてSSD105の動作を制御するコントローラ回路であるSSDコントローラ201を備える。SSDコントローラ201はコマンドに基づいてFLASH(登録商標)メモリ203を読み書きすることによりSSD105としての動作を実現している。本実施例のSSDコントローラ201は業界標準であるNVMExpress規格の定める仕様に準拠しており、PCI Express規格のバスによってPCI Expressインターフェース111に接続される。
またSSDコントローラ201は、SSDコントローラ201の制御や動作設定を行うためにCPU101がアクセスすることが可能な制御レジスタ202を備える。図2では説明の簡単化のため制御レジスタ202は単一のレジスタのように図示されているが、実際には複数のレジスタから構成されていてもよく本実施例の構成はこれに限定されるものではない。
SSDコントローラ201はCPU101からのコマンドを実行完了した場合など、CPU101に対して何らかの通知を行う必要がある場合にはPCI Expressインターフェース111を介して割り込み信号222をCPU101に送る。
FLASHメモリ203はいわゆる不揮発メモリであり、SSD105がストレージ装置として使用される際の実際のデータの記録場所として使用される。本実施例のFLASHメモリ203内には、ファイルシステム領域204および画像データ領域205という用途の異なる記憶領域が存在する。ファイルシステム領域204は後述のファイルシステム210により管理されている記憶領域であり、CPU101が実行する各種プログラムコードやフォントデータ、画面表示の各国語翻訳データなど様々なデータの保管場所として使用されている。
画像データ領域205はジョブ実行の際に画像データの格納場所として使用される記憶領域であり、ファイルシステム210による管理がされておらず、画像データだけを読み書きする特別な記録領域となっている。
尚、これらの記憶領域は後述のOS209によってソフトウェア的にデータの格納場所を区別することによって実現されており、ハードウェア的には区別されていない。言い換えればSSDコントローラ201はファイルシステム領域204と画像データ領域205の存在を認識しておらず、CPU101からの制御が無い限り記憶領域ごとに動作を変えることは無い。
RAM103は、画像形成装置1の動作中にCPU101が実行する各種プログラムやSSD105の制御に関連した各種情報が格納される揮発性の半導体記憶装置である。
アプリケーションプログラム206は実行可能プログラムであり、CPU101がアプリケーションプログラム206を実行することによりコントローラ100を制御し、画像形成装置1の様々な機能を実現する。アプリケーションプログラム206はSSD105のファイルシステム領域204に保存されており、画像形成装置1の起動時にRAM103にロードされてCPU101で実行される。
本実施例のアプリケーションプログラム206はコピー機能プログラム207とWebサーバプログラム208を含む。
コピー機能プログラム207は画像形成装置1のコピー機能を実現するプログラムである。スキャナ装置106で原稿を読み取って生成した画像データを画像データ領域205に書き込み、画像データ領域205内の画像データを読み出しながらプリンタ装置107で用紙にプリントすることでコピージョブの実行を実現する。コピー機能プログラム207は基本的に画像データのみを扱う。
Webサーバプログラム208はLAN108を介した外部のコンピュータから画像形成装置1へのWebブラウザを用いた通信を処理するプログラムであり、画像形成装置1のLAN108経由の遠隔管理を実現するプログラムである。Webサーバプログラム208は外部のコンピュータからの通信に応答する際、画面表示の各国語翻訳データなど様々なデータをファイルシステム領域204から読み出す。Webサーバプログラム208は基本的に画像データを扱わない。
尚、本実施例ではコピー機能プログラム207およびWebサーバプログラム208はアプリケーションプログラム206の中に含まれる一機能として図示したが、この構成はあくまで一例である。それぞれ独立して動作する別個のプログラムであってもよい。
また、これらのプログラムによって実現される機能は画像形成装置1の機能の一例として示したに過ぎない。画像形成装置1は例えばFAX機能などこれ以外の機能を有していてもよく、アプリケーションプログラム206はそれらを実現するためのプログラムをさらに含んでいてもよい。本実施例は図示した構成に限定されるものではない。
OS209はコントローラ100のハードウェアをCPU101で制御するためのオペレーティングシステムである。アプリケーションプログラム206がSSD105を読み書きする際は、OS209の機能を呼び出すことで読み書きが実現される。本実施例のOS209にはファイルシステム210およびデバイスドライバ211が組み込まれている。
ファイルシステム210はストレージ装置の記憶領域を管理し、ファイルとして各種データを読み書き可能にする機能を提供するプログラムである。アプリケーションプログラム206が行うSSD105に対する通常のデータ読み書きにはファイルシステム210が提供する機能が利用される。
デバイスドライバ211はNVMExpress規格に準拠したSSDを制御する機能をもつプログラムであり、OS209に組み込まれてSSD105を制御する役割を果たす。ファイルシステム210を利用したSSD105への読み書きでは、ファイルシステム210からデバイスドライバ211に対して読み書き要求が発行され、デバイスドライバ211がそれを処理することで読み書きが実現される。
また本実施例のデバイスドライバ211はファイルシステム210を介さず画像データをSSD105に対して直接読み書きするための直接アクセス機能を提供している。コピー機能プログラム207が画像データをSSD105に対して読み書きする場合にはこの直接アクセス機能が利用される。
同一の記憶領域に対して2つの読み書き方法を提供することはプログラムの複雑性を高め好ましくないため、本実施例では読み書き方法毎に記憶領域をソフトウェア的に分けている。ファイルシステム210の機能を用いて読み書きする領域はファイルシステム領域204、デバイスドライバ211の直接アクセス機能を用いてアクセスする領域は画像データ領域205としている。
OSリクエストキュー212はファイルシステム210からデバイスドライバ211に対して発行されたSSD105への読み書き要求を複数保持可能なメモリ領域である。本実施例の画像形成装置1は複数の機能を同時並行的に実行可能であり、かつWebサーバプログラム208はLAN108を介して複数の外部のコンピュータから同時に通信を受ける場合もある。こうした理由によりファイルシステム210は同時に複数の読み書き要求を発行する場合があり、それを保持しておくメモリ領域が必要となっている。後述のようにSSDコントローラ201は複数のコマンドを受け付けることができるが、受け付けることができるコマンドの数が有限であるため、それを超える分の読み書き要求はOSリクエストキュー212に留め置かれる。
Adminキュー213はCPU101がSSD105を制御するために、NVMExpress規格に準拠したコマンドをSSDコントローラ201との間で送受信するために用いるメモリ領域である。CPU101がSSDコントローラ201へ発行するコマンドは全てRAM103内に割り当てられたメモリ領域を介して伝達される。Adminキュー213はコマンドの送信に用いるサブミッションキュー216とコマンド実行結果の受信に用いるコンプリーションキュー217から構成される。
図3はSSD105におけるサブミッションキューとコンプリーションキューの役割について説明する模式図である。まずCPU101がSSD105に発行するコマンドをサブミッションキューに格納する。
次にSSDコントローラ201がサブミッションキューからコマンドを取り出し処理する。そしてSSDコントローラ201はコマンドの実行に成功したか失敗したかなどの情報をコマンド実行結果としてコンプリーションキューに格納する。最後にCPU101がコンプリーションキューからコマンド実行結果を取り出してコマンドの実行が完了する。
この時、CPU101は先にサブミッションキューに格納したコマンドの実行結果がSSDコントローラ201によってコンプリーションキューに格納されるのを待たずに新たなコマンドをサブミッションキューに格納してよい。SSDコントローラ201はサブミッションキューに格納された複数のコマンドを受け付けることができる。しかしSSDコントローラ201のハードウェア的な制約によりサブミッションキューに格納できるコマンド数には上限があり、それを超えた数のコマンドをCPU101は格納してはならない。
NVM Express規格に準拠するSSD105では、SSD105自体の初期化や設定を行うコマンドとデータ読み書きのコマンドとは異なるキューを用いてやり取りする仕様となっている。Adminキュー213はSSD105自体の初期化や設定を行うコマンドのために使用される。データ読み書きのコマンドは、後述の画像I/Oキュー214あるいは汎用I/Oキュー215を用いてやり取りされる。NVM Express規格に準拠するSSD105では、データ読み書きのコマンドのために使用するキューはSSDコントローラ201を設定することにより複数使用することができる。
図2の説明に戻る。画像I/Oキュー214と汎用I/Oキュー215は異なる種類のコマンドを保持する。
まず画像I/Oキュー214はCPU101が画像データのための読み書きコマンドをSSD105との間でやり取りするために用いるメモリ領域である。具体的には、スキャナ装置106によって生成した画像データやプリンタ装置107において用紙に印刷をする画像データのSSD105における読み書きを行う。画像I/Oキュー214はサブミッションキュー216およびコンプリーションキュー219から構成される保持部として機能する。
汎用I/Oキュー215はCPU101が画像データ以外のデータのための読み書きコマンドをSSD105との間でやり取りするために用いるメモリ領域である。具体的には、例えば、RUIの操作に基づくSSD105へのデータの読み書きなどである。汎用I/Oキュー215はサブミッションキュー220およびコンプリーションキュー221から構成される保持部として機能する。
これらのサブミッションキューとコンプリーションの役割についてはAdminキュー213と同様である。このような複数のプログラムあるいはメモリ領域の間で、SSD105を読み書きする要求がどのように伝達されていくのかを示した模式図が図4である。
本実施例では画像データを読み書きする際の伝達経路と画像データ以外を読み書きする際の伝達経路の2つの伝達経路がある。2つの伝達経路のどちらが選択されるかは、アプリケーションプログラム206がSSD105を読み書きするためにOS209内のどの機能を呼び出すかによって決定される。
まず前者の画像データを読み書きする際の読み書き要求の伝達経路を説明する。これは図4の左側に示された経路である。
画像形成装置1のコピー機能が動作した時、CPU101で実行されるコピー機能プログラム207はデバイスドライバ211の提供する直接アクセス機能を呼び出して、デバイスドライバ211に対して画像データの読み書き要求を直接伝達する。CPU101で実行されるデバイスドライバ211は、コピー機能プログラム207からの要求に基づいてNVM Express規格で定められたコマンドを画像I/Oキュー214に格納し、コマンドはSSD105へ伝達される。
次に後者の画像データ以外を読み書きする際の読み書き要求の伝達経路を説明する。これは図4の右側に示された経路である。画像形成装置1の遠隔管理機能が動作した時、CPU101で動作するWebサーバプログラム208はファイルシステム210を呼び出してファイルの読み書きを要求する。
CPU101で動作するファイルシステム210はSSD105に対する読み書き要求をOSリクエストキュー212に格納する。するとCPU101で動作するデバイスドライバ211がOSリクエストキュー212から読み書き要求を取り出し、取り出した要求に基づいてNVM Express規格で定められたコマンドを汎用I/Oキューに215に格納する。これによりコマンドはSSD105へ伝達される。
上述のように、本実施例の画像形成装置1では画像データのための読み書きコマンドと、それ以外のデータのための読み書きコマンドとで別々のキューを用いた構成をとる。このような構成をとる効果について説明する模式図が図5である。
まず従来の構成について説明する。図5(a)および図5(b)は画像データのための読み書きコマンドとそれ以外のデータのための読み書きコマンドが同一のキューを利用した場合を示している。具体的には、画像I/Oキューと汎用I/Oキューの区別がなく、一つのキューを用いる。画像形成装置1では複数の機能が同時に動作する場合があり、複数の機能か同時並行的にSSD105への読み書きが発生して、読み書きが競合する場合がある。
競合が発生しない状態で画像データを読み書きしようとしたケースを表したのが図5(a)である。図5(a)のようにサブミッションキューに格納されたコマンドが画像データを読み書きするコマンドだけの場合、コマンドが実行完了するまでの時間は短くなる。
しかし競合が発生した状態では図5(b)に示すように、多数のコマンドがサブミッションキュー内で実行の順番待ちとなり、コマンドが実行完了するまでの時間が非常に長くなる。
つまり、同一のキューを使う場合はSSD105への読み書きの競合の有無によって画像データの読み書き速度が大きく変動することを意味する。画像データの読み書き速度が大きく変動すると、プリント速度など画像形成装置1のジョブ実行速度が状況次第で変動してしまう可能性がある。
一方、本実施例の構成である図5(c)は画像データのための読み書きコマンドとそれ以外のデータのための読み書きコマンドが別々のキューを利用した場合を示している。SSD105への読み書きが競合していても、画像データのための読み書きコマンドとそれ以外のデータのための読み書きコマンドは図5(c)のように別々のキューに格納されて処理の順番を待つ。SSDコントローラ201が2つのサブミッションキューから公平に一つずつコマンドを取り出して処理した場合、競合が発生していても画像データを読み書きするコマンドが実行されるまでの時間はあまり長くならない。
さらに、NVM Express規格に準拠したSSD(NVMESSD)の中にはサブミッションキューに対して優先度を設定できるものもある。その場合は画像I/Oキュー214に高い優先度を設定することでSSDコントローラ201に画像データの読み書きコマンドを先に処理させることができ、競合が発生しても競合無しの場合と変わらない速度で画像データを読み書きできる。
このように別々のキューを用いることで画像データの読み書き速度の変動を低減し、ジョブ実行速度が状況次第で変動してしまうことを防止できる。
本実施例の構成の具体的な実現方法について、以降で図面を用いて説明する。
図6は本実施例のコントローラ100の起動時におけるCPU101のSSD105に対する初期設定動作について説明したフローチャートである。尚、本実施例のコントローラ100の起動動作は画像形成装置1の電源がオンされた際にCPU101がブートROM102に格納された初期プログラムであるBIOSを実行し、SSD105からOS209をRAM103にロードすることで行われる。なおここではSSD105の起動時初期化動作についてのみ説明する。
図6はOS209がRAM103にロードされた後、起動時に一度だけ実行されるSSD105を初期設定するためのフローである。CPU101はOS209内のデバイスドライバ211を実行することによってこのフローを実行する。
まずS601においてCPU101はAdminキュー213を使用可能とするための設定をSSD105に対して行う。CPU101はPCI Expressインターフェース111を通じてSSDコントローラ201の制御レジスタ202にアクセスする。そして、RAM103内のサブミッションキュー216およびコンプリーションキュー217として利用するメモリ領域の番地を登録する。これ以降、SSDコントローラ201がPCI Expressインターフェース111を介してサブミッションキュー216およびコンプリーションキュー217を読み書きできるようになり、Adminキュー213が使用可能となる。
次にS602においてCPU101はSSD105に対してキューのアービトレーションを設定する。NVM Express規格に準拠したSSDではサブミッションキューに優先度を設定して動作させることができるが、そうする場合はあらかじめキューのアービトレーションを設定しておく必要がある。CPU101は制御レジスタ202にアクセスし、アービトレーションメカニズムにWeighted Round Robin with Urgent Priority Classを設定する。尚、サブミッションキューに優先度を設定して動作させない場合も本実施例は有効である。その場合はアービトレーションメカニズムにRound Robinを設定する。ただしより良い効果を得るには優先度を設定して動作させることが望ましい。
S603においてCPU101はSSD105に対して使用するI/Oキューの数を設定する。NVM Express規格に準拠したSSDでは複数のI/Oキューを使用してコマンドをやり取りすることが可能である。そのためにCPU101はAdminキューを介してSSD105に対してSet Featuresコマンドを送信し、「Number of Queues」設定値を設定する。サブミッションキューの数とコンプリーションキューの数を別々に設定できるが、本実施例では例として同数の2を設定する。
S604において、CPU101は画像I/Oキュー214を使用可能に設定する。まずCPU101はAdminキュー213を介してSSD105に対してCreate I/O Completion Queueコマンドを送信する。そしてコンプリーションキュー219のメモリ番地をSSDコントローラ201に通知してコンプリーションキュー219を使用可能にする。さらにCPU101はAdminキュー213を介してSSD105に対してCreate I/O Submission Queueコマンドを送信する。そしてCPU101は、コンプリーションキュー219の識別子とサブミッションキュー218のメモリ番地を通知してサブミッションキュー218を使用可能にする。この際にサブミッションキュー218に設定する優先度も通知する。設定する優先度はサブミッションキュー220よりも高い優先度ならば何でもよい。これにより画像I/Oキュー214が使用可能となる。そしてS605において、CPU101は汎用I/Oキュー215を使用可能に設定する。
まずCPU101はAdminキュー213を介してSSD105に対してCreate I/O Completion Queueコマンドを送信する。そしてコンプリーションキュー221のメモリ番地をSSDコントローラ201に通知してコンプリーションキュー221を使用可能にする。さらにCPU101はAdminキュー213を介してSSD105に対してCreate I/O Submission Queueコマンドを送信する。コンプリーションキュー221の識別子とサブミッションキュー220のメモリ番地を通知してサブミッションキュー220を使用可能にする。この際にサブミッションキュー220に設定する優先度も通知する。設定する優先度はサブミッションキュー218よりも低い優先度ならば何でもよい。これにより汎用I/Oキュー215が使用可能となる。
上記のように設定されたSSD105のSSDコントローラ201が画像形成装置1の動作中にどのような動作を行うのか説明するのが図7である。図7はCPU101から送信されたSSD105に対する読み書きのコマンドを受けてSSDコントローラ201が実行する動作を説明したフローチャートである。
サブミッションキューに対して優先度を設定して動作させるように設定された場合には、SSDコントローラ201は図7(a)のフローを実行する状態となる。
S701においてSSDコントローラ201は画像I/Oキュー214に未処理のコマンドが格納されているかどうか確認する。格納されていた場合にSSDコントローラ201はS702に進む。格納されていなかった場合にSSDコントローラ201はS703に進む。
S702においてSSDコントローラ201は画像I/Oキュー214に格納されているコマンドを一つ処理する。コマンド処理の詳細については後述の図7(c)で説明する。画像I/Oキュー214におけるコマンド処理を終えるとSSDコントローラ201はS701に戻る。
S703においてSSDコントローラ201は汎用I/Oキュー215に未処理のコマンドが格納されているかどうか確認する。格納されていた場合にSSDコントローラ201はS704に進む。格納されていなかった場合にSSDコントローラ201はS701に戻る。
S704においてSSDコントローラ201は汎用I/Oキュー215に格納されているコマンドを一つ処理する。汎用I/Oキュー215におけるコマンド処理を終えるとSSDコントローラ201はS701に戻る。
図7(c)はコマンド処理の詳細を説明したフローチャートであり、このフローは画像I/Oキュー214に対して処理する場合と汎用I/Oキュー215に対して処理する場合とで共通である。以降のフローにおけるサブミッションキューは218または220、コンプリーションキュー219または212はであり、それぞれ処理対象が画像I/Oキュー214の場合と汎用I/Oキュー215の場合とで対応したものを指す。
まずS721においてSSDコントローラ201はサブミッションキューから未処理のコマンドを取り出す。次にS722においてSSDコントローラ201はFLASHメモリ203に対する読み書きを実行する。取り出したコマンドがWriteコマンドだった場合はコマンドのパラメータに基づきFLASHメモリ203に対するデータの書き込みを実行し、Readコマンドだった場合はFLASHメモリ203からのデータ読み出しを実行する。
そしてS723においてSSDコントローラ201はS722におけるコマンドの実行結果をコンプリーションキューに格納する。実行結果にはFLASHメモリ203の読み書きに成功したか否かなどの情報が含まれる。
最後にS724においてSSDコントローラ201はPCI Expressインターフェース111を通じてCPU101に対して割り込み信号222を通知する。コマンドが実行完了し、コンプリーションキューに実行結果が格納されたことを割り込み信号222によりCPU101に対して通知する。
以上のステップでコマンド処理のフローは終了し、SSDコントローラ201は元のフローに戻る。
一方、サブミッションキューに対して優先度を設定せずに動作させるように設定された場合にSSDコントローラ201が実行するフローを説明したのが図7(b)である。この場合にSSDコントローラ201は図7(a)のフローにかえて図7(b)を実行する。なお、ここでは、優先度を設定しない場合に、画像I/Oキュー214の未処理コマンドの有無を先に確認する例を示すが、汎用I/Oキュー215の未処理コマンドを先に確認してもよい。
S711においてSSDコントローラ201は画像I/Oキュー214に未処理のコマンドが格納されているかどうか確認する。格納されていた場合にSSDコントローラ201はS712に進む。格納されていなかった場合にSSDコントローラ201はS713に進む。
S712においてSSDコントローラ201は画像I/Oキュー214に格納されているコマンドを一つ処理する。コマンド処理を終えるとSSDコントローラ201はS713へ進む。
S713においてSSDコントローラ201は汎用I/Oキュー215に未処理のコマンドが格納されているかどうか確認する。格納されていた場合にSSDコントローラ201はS714に進む。格納されていなかった場合にSSDコントローラ201はS711に戻る。S714においてSSDコントローラ201は汎用I/Oキュー215に格納されているコマンドを一つ処理する。コマンド処理を終えるとSSDコントローラ201はS711に戻る。
図7(a)のフローでは画像I/Oキュー214に未処理コマンドがある間はそれが先に処理されるのに対し、図7(b)のフローでは画像I/Oキュー214と汎用I/Oキュー215の両方に未処理コマンドがある場合は交互にコマンドが処理される。
図8は画像形成装置1の動作中におけるデバイスドライバ211の動作を説明したフローチャートである。CPU101がデバイスドライバ211を実行することによって以下のフローが実行される。
まずS801においてCPU101は割り込み信号222が通知されたかどうかを判断する。通知されていた場合はSSD105に対して送信済みのコマンドが実行完了していることを意味し、CPU101はS808へ進み、通知されていなかった場合にCPU101はS802へ進む。
次にS802においてCPU101は、アプリケーションプログラム206によりデバイスドライバ211が提供する上述の直接アクセス機能が呼び出されているかどうかを判断する。呼び出されている場合、つまりコピー機能プログラム207がジョブ実行のために画像データをSSD105に対して読み書きしようとしている場合には、CPU101はS803へ進む。呼び出されていなかった場合にはCPU101はS804へ進む。
S803においてCPU101は、直接アクセス機能を通じた画像データ読み書きの要求に基づいてNVM Express規格で定義されたSSD105を読み書きするためのコマンドを画像I/Oキュー214に格納する。
CPU101は、コマンドをサブミッションキュー218に格納し、メモリ領域内に新しく格納されたコマンドの格納位置を制御レジスタ202に書きこむことにより通知する。
これによりSSDコントローラ201がコマンドの格納を認識する状態となる。尚、画像形成装置の場合は画像データを扱う処理というのはプリンタ装置やスキャナ装置を稼働させる処理であるため並行動作に制限がある。このため、サブミッションキュー218に空きが無くなる可能性は事実上考えずともよい。画像I/Oキュー214へのコマンド格納後、CPU101はS801へ戻る。
S804においてCPU101はOSリクエストキュー212にSSD105に対する読み書き要求が格納されているかどうかを確認する。格納されていた場合にCPU101はS805へ進み、格納されていなかった場合はS801へ戻る。
S805においてCPU101はサブミッションキューに新しいコマンドを格納できる空き領域があるかどうかを確認する。これは制御レジスタ202を参照することで判断できる。空きがある場合にはCPU101はS806へ進み、無い場合にはS801へ戻る。
S806において、つまりOSリクエストキュー212に読み書き要求が格納されておりかつサブミッションキュー220に空きがある場合にCPU101はOSリクエストキュー212からSSD105に対する読み書き要求を取り出し、S807へ進む。
S807においてCPU101は先のS806でOSリクエストキュー212から取り出した読み書き要求に基づいてNVM Express規格で定義されたSSD105を読み書きするためのコマンドを汎用I/Oキュー215に格納する。CPU101はコマンドをサブミッションキュー220に格納し、メモリ領域内に新しく格納されたコマンドの格納位置を制御レジスタ202に書きこむことにより通知する。その後、CPU101はS801へ戻る。
一方、S808において、つまりS801で割り込み信号222が通知されていた場合にCPU101はまずコンプリーションキュー219にコマンドの実行結果が格納されているかどうかを確認する。実行結果が格納されているかどうかは制御レジスタ202を参照することで判別できる。格納されていた場合にCPU101はS809へ進み、格納されていなかった場合はS810へ進む。
S809においてCPU101はコンプリーションキュー219からコマンドの実行結果を取り出し、S810へ進む。
S810においてCPU101はコンプリーションキュー221にコマンドの実行結果が格納されているかどうかを確認する。格納されていた場合にCPU101はS811へ進み、格納されていなかった場合はS801へ戻る。
S811においてCPU101はコンプリーションキュー221からコマンドの実行結果を取り出し、S801へ戻る。
以上のように、本実施例で説明した画像形成装置によれば、コマンドを受け付けるキューの仕組みが備わっているストレージ装置を画像形成装置で用いる場合でも画像データの読み書き速度の変動を少なくすることができる。これによりジョブ実行の速度が変動すること抑え、画像形成装置の動作速度を安定させることができる。
尚、本実施例ではストレージ装置としてNVM Express規格に準拠したSSDを用いることとしたが、この構成はあくまで一例であって本実施例はこれに限定されるものではない。ストレージ装置の機能として複数のコマンドを受け付けるキューの機能を提供しており、かつ複数のキューを利用できる構成のストレージ装置であれば本実施例は適用可能である。
本実施例ではコントローラ100のPCI Expressインターフェース111にSSD105が直接接続されている構成としているが、この構成も一例である。PCI Expressインターフェース111とSSD105の間にPCI Express規格に準拠した装置間を中継する何らかのブリッジ装置を挟む構成でもよく、本実施例はこの構成に限定されるものではない。
また、本実施例では画像I/Oキューと汎用I/Oキューの2つのI/Oキューを用いることとしていたが、この構成は一例である。画像データ以外の読み書きのためのI/Oキューを2つ以上用意する構成や、逆に画像データのためのI/Oキューを複数用いる構成としてもよく、本実施例はこの構成に限定されるものではない。ただし画像形成装置として画像データの読み書き時間の変動を少なくすることを優先する観点からは画像データ以外に用いるI/Oキューは少ない数であることが望ましい。
加えて、本実施例ではデバイスドライバ211は直接アクセス機能からの要求か否かに基づいて画像データへのアクセスか否かを判別し、コマンド送信に用いるI/Oキューを選択する構成としていたが、この構成も一例である。例えば、SSD105内の読み書き対象となる領域がファイルシステム領域204なのかそれとも画像データ領域205なのかに基づいて画像データへのアクセスか否かを判別する構成であってもよい。また、本実施例はこの構成にも限定されない。
(その他の実施形態)
以上、本発明の様々な例と実施形態を示して説明したが、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
以上、本発明の様々な例と実施形態を示して説明したが、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 CPU
103 RAM
105 SSD
214 画像I/O
215 汎用I/O
103 RAM
105 SSD
214 画像I/O
215 汎用I/O
Claims (20)
- 画像データを記憶可能な不揮発性の記憶手段と、前記記憶手段に実行させるコマンドを生成する制御手段と、前記制御手段によって生成されたコマンドを保持する保持手段を有する情報処理装置であって、
前記記憶手段は、前記保持手段によって保持されたコマンドを取得し、
前記保持手段は、画像データに関する第1種類のコマンドを保持する第1保持手段と、画像データに関しない第2種類のコマンドを保持する第2保持手段と、を含むことを特徴とする情報処理装置。 - 前記記憶手段は、前記第2保持手段に保持された前記第2種類のコマンドよりも前記第1保持手段に保持された前記第1種類のコマンドの少なくとも1つを優先して取得することを特徴とする請求項1に記載の情報処理装置。
- 前記制御手段は、前記第2保持手段よりも前記第1保持手段を優先する設定を前記記憶手段に設定することを特徴とする請求項2に記載の情報処理装置。
- 前記第1保持手段が前記第1種類のコマンドを複数保持する状態で、
前記記憶手段は、前記第1保持手段が保持した前記複数の第1種類のコマンドの全てを取得してから、前記第2保持手段に前記第2種類のコマンドが保持されているか否か確認することを特徴とする請求項2または3に記載の情報処理装置。 - 前記第2保持手段に前記第2種類のコマンドが保持されていることによって、前記記憶手段は前記第2保持手段から前記第2種類のコマンドを取得することを特徴とする請求項4に記載の情報処理装置。
- 前記第2種類のコマンドは、異なる情報処理装置で前記情報処理装置を操作する際に用いるRUIによる操作を受け付けることによって生じたコマンドであることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
- 画像データを用紙に印刷するプリンタを有し、
前記第1種類のコマンドは、前記プリンタで用いる画像データを前記記憶手段から読み出すためのコマンドであることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。 - 原稿を読み取って、画像データを生成するスキャナを有し、
前記第1種類のコマンドは、前記スキャナによって生成された画像データを前記記憶手段に書き込むためのコマンドであることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。 - 前記保持手段は、揮発性の記憶手段であることを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
- 前記不揮発性の記憶手段は、NVMESSDであることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
- 画像データを記憶可能な不揮発性の記憶装置と、前記記憶装置に実行させるコマンドを生成する制御装置を有する情報処理装置の制御方法であって、
画像データに関する第1種類のコマンドを第1保持部に保持し、且つ、画像データに関しない第2種類のコマンドを保持する第2保持部に保持するステップと、
前記第2保持部に保持された前記第2種類のコマンドよりも前記第1保持部に保持された前記第1種類のコマンドの少なくとも1つを優先して実行するステップと、を有することを特徴とする情報処理装置の制御方法。 - 前記第2保持部よりも前記第1保持部を優先する設定を前記記憶装置に設定するステップを有することを特徴とする請求項11に記載の情報処理装置の制御方法。
- 前記第1保持部が前記第1種類のコマンドを複数保持する状態で、
前記第1保持部が保持した前記複数の第1種類のコマンドの全てを前記記憶装置が取得してから、前記第2保持部に前記第2種類のコマンドが保持されているか否か確認するステップを有することを特徴とする請求項11または12に記載の情報処理装置の制御方法。 - 前記第1保持部が前記第1種類のコマンドを複数保持する状態で、
前記第1保持部が保持した前記複数の第1種類のコマンドの一つを前記記憶装置が取得してから、前記第2保持部に前記第2種類のコマンドが保持されているか否かを確認するステップを有することを特徴とする請求項11に記載の情報処理装置の制御方法。 - 前記第2保持部に前記第2種類のコマンドが保持されていることによって、前記第2保持部から前記第2種類のコマンドを取得するステップを有することを特徴とする請求項13または14に記載の情報処理装置の制御方法。
- 前記第2種類のコマンドは、異なる情報処理装置で前記情報処理装置を操作する際に用いるRUIによる操作を受け付けることによって生じたコマンドであることを特徴とする請求項11乃至15のいずれか1項に記載の情報処理装置の制御方法。
- 画像データを用紙に印刷するプリンタを有し、
前記第1種類のコマンドは、前記プリンタで用いる画像データを前記記憶装置から読み出すためのコマンドであることを特徴とする請求項11乃至16のいずれか1項に記載の情報処理装置の制御方法。 - 原稿を読み取って、画像データを生成するスキャナを有し、
前記第1種類のコマンドは、前記スキャナによって生成された画像データを前記記憶装置に書き込むためのコマンドであることを特徴とする請求項11乃至17のいずれか1項に記載の情報処理装置の制御方法。 - 揮発性の記憶装置を有し、
前記揮発性の記憶装置は、前記第1保持部と前記第2保持部を有することを特徴とする請求項11乃至18のいずれか1項に記載の情報処理装置の制御方法。 - 前記不揮発性の記憶装置は、NVMESSDであることを特徴とする請求項11乃至19のいずれか1項に記載の情報処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021020060A JP2022122677A (ja) | 2021-02-10 | 2021-02-10 | 情報処理装置および情報処理装置の制御方法 |
US17/590,453 US11829670B2 (en) | 2021-02-10 | 2022-02-01 | Information processing apparatus and control method for information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021020060A JP2022122677A (ja) | 2021-02-10 | 2021-02-10 | 情報処理装置および情報処理装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022122677A true JP2022122677A (ja) | 2022-08-23 |
Family
ID=82703817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021020060A Pending JP2022122677A (ja) | 2021-02-10 | 2021-02-10 | 情報処理装置および情報処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11829670B2 (ja) |
JP (1) | JP2022122677A (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090018712A1 (en) * | 2007-07-13 | 2009-01-15 | Jerry Richard Duncan | Method and system for remotely monitoring and controlling a vehicle via a virtual environment |
JP5340058B2 (ja) | 2009-06-30 | 2013-11-13 | キヤノン株式会社 | 画像処理装置、その制御方法及びプログラム |
US9317204B2 (en) * | 2013-11-14 | 2016-04-19 | Sandisk Technologies Inc. | System and method for I/O optimization in a multi-queued environment |
JP7251131B2 (ja) * | 2018-12-17 | 2023-04-04 | コニカミノルタ株式会社 | 一体型装置、ワークフロー実行制御システム、it処理装置、プログラム |
-
2021
- 2021-02-10 JP JP2021020060A patent/JP2022122677A/ja active Pending
-
2022
- 2022-02-01 US US17/590,453 patent/US11829670B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11829670B2 (en) | 2023-11-28 |
US20220253318A1 (en) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8373870B2 (en) | Information processing apparatus and control method thereof | |
US9507611B2 (en) | Electronic apparatus, control device, control method, and computer readable medium | |
JP2023168372A (ja) | アプリケーションプログラム | |
JP5078671B2 (ja) | 情報処理装置、情報処理システム及び情報処理方法 | |
JP6876235B2 (ja) | 電子装置及び画像処理装置 | |
US8526039B2 (en) | Image processing apparatus, and control method thereof and program | |
JP2022122677A (ja) | 情報処理装置および情報処理装置の制御方法 | |
US9354834B2 (en) | Printing with virtual printer | |
JP2816184B2 (ja) | 印刷制御装置 | |
JPH1078856A (ja) | 優先度別割り込み印刷方法およびシステム | |
US11687287B2 (en) | Control apparatus and information processing system | |
JP2016224560A (ja) | マルチチップシステム、及びその制御方法 | |
US11842066B2 (en) | Control apparatus and information processing system for providing a bridge apparatus between a host controller and a non-volatile storage medium to encrypt and decrypt data | |
JP6115253B2 (ja) | プリントシステム、スプールサーバ、スプール方法、及びプログラム | |
JP2008250659A (ja) | 情報処理システム | |
JP2008250658A (ja) | 情報処理装置および情報処理プログラム | |
JP2792216B2 (ja) | プリンタ装置 | |
JP5580584B2 (ja) | 印刷制御装置、印刷制御装置の制御方法、およびプログラム | |
JP2022067916A (ja) | 制御装置および制御装置の制御方法 | |
JP3248796B2 (ja) | ネットワークプリンタシステム | |
JPH11203059A (ja) | 画像入出力処理装置および画像入出力処理装置のメモリアクセス方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP2008221831A (ja) | 画像形成装置及びその印刷制御方法 | |
JPS6029861A (ja) | 周辺装置インタ−フエイス | |
JP2006252482A (ja) | 装置の起動方法及び画像形成装置 | |
JP2002073301A (ja) | 情報処理システム及び方法、プリンタ装置、並びにコンピュータが読出し可能なプログラムを格納した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20231213 |