特許第6018537号(P6018537)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 京セラドキュメントソリューションズ株式会社の特許一覧

<>
  • 特許6018537-画像形成装置 図000002
  • 特許6018537-画像形成装置 図000003
  • 特許6018537-画像形成装置 図000004
  • 特許6018537-画像形成装置 図000005
  • 特許6018537-画像形成装置 図000006
  • 特許6018537-画像形成装置 図000007
  • 特許6018537-画像形成装置 図000008
  • 特許6018537-画像形成装置 図000009
  • 特許6018537-画像形成装置 図000010
  • 特許6018537-画像形成装置 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6018537
(24)【登録日】2016年10月7日
(45)【発行日】2016年11月2日
(54)【発明の名称】画像形成装置
(51)【国際特許分類】
   G06F 9/52 20060101AFI20161020BHJP
   G06F 9/445 20060101ALI20161020BHJP
【FI】
   G06F9/46 472B
   G06F9/06 610K
【請求項の数】1
【全頁数】16
(21)【出願番号】特願2013-93013(P2013-93013)
(22)【出願日】2013年4月25日
(65)【公開番号】特開2014-215832(P2014-215832A)
(43)【公開日】2014年11月17日
【審査請求日】2015年3月18日
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】100110629
【弁理士】
【氏名又は名称】須藤 雄一
(74)【代理人】
【識別番号】100166615
【弁理士】
【氏名又は名称】須藤 大輔
(72)【発明者】
【氏名】新田 健一朗
【審査官】 井上 宏一
(56)【参考文献】
【文献】 特開2010−226283(JP,A)
【文献】 国際公開第2012/132017(WO,A1)
【文献】 国際公開第2012/124078(WO,A1)
【文献】 特開2008−165585(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46 −9/54
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
画像形成部とパネル表示部を備え、
前記画像形成装置は、メモリー排他制御システムを有し、
前記メモリー排他制御システムは、
前記パネル表示部を制御するパネルコントローラーシステムを構成する第1コアと、
前記画像形成部を制御するメインコントローラーシステムを構成する第2コアと、
前記第1コア及び第2コアからアクセス可能な共有領域を有し、前記共有領域に前記第1コア及び前記第2コアの内の何れか一つが取得すると前記第1コア及び前記第2コアの内の他方から取得不能となる排他フラグを保持するRAMと、
前記第1コア及び第2コアの内の何れか一つがアクセス可能なNANDフラッシュとを備えた画像形成装置において
前記第1コア及び前記第2コアのそれぞれはキャッシュを有し、前記キャッシュと前記RAMとの間では、前記キャッシュのフラッシュ及びインバリデート処理により、コヒーレンシーが合わせられてデータ内容が一致させられ
前記第1コア又は第2コアは前記共有領域内の前記排他フラグが取得可能か否かを判断し、取得不能な場合は前記キャッシュの値によってビジーウェイト状態での前記排他フラグに対するループによる監視を行い、取得可能な場合は前記排他フラグを取得し、前記排他フラグを取得した前記第1コア及び前記第2コアの内の何れか一つは前記NANDフラッシュにアクセスし、
前記排他フラグを取得した前記第1コア及び前記第2コアの内の何れか一つは、前記NANDフラッシュへのアクセスが終了すると前記排他フラグを開放し、前記ビジーウェイト状態である前記第1コア及び前記第2コアの内の他方が前記排他フラグを取得し、
前記排他フラグの取得は、Read−Modify−Writeにより、前記排他フラグが「0」になった瞬間に「1」を書き込んで取得を確保した後、前記排他フラグを「0」を書き込むことで開放することにより行われ、かつ、Atomic操作である不可分操作によって行われることで前記排他フラグの情報をRead後、Writeまでの間に、前記第1コア及び前記第2コアの内の他方からのWriteによる不整合が抑制され、
前記NANDフラッシュは、前記パネルコントローラーシステム及び前記メインコントローラーシステムのプログラムとして、パネルコントローラーオペレーティングシステム(OS)、パネル表示制御に必要なパネルアプリケーション、メインコントローラーOS、画像形成制御に必要なメインアプリケーションを保持し、
前記第1コアは、前記パネルコントローラーOS及び前記メインコントローラーOSを起動するブートローダーを構成し、
前記ブートローダーは、(1)前記NANDフラッシュに対する制御を行うデバイスドライバーを備え、前記デバイスドライバーを通じ、前記メインコントローラーOS及び前記パネルコントローラーOSの起動にそれぞれ必要なメイン起動用プログラム及びパネル起動用プログラムを前記NANDフラッシュから前記RAM上に読み込み、(2)このとき、前記パネルアプリケーションも前記パネル起動用プログラムと共に前記RAM上に読み込み、(3)前記第1コア及び前記第2コアに対し、読み込んだ前記パネル起動用プログラム及び前記メイン起動用プログラムによって、それぞれ前記パネルコントローラーOS及び前記メインコントローラーOSの起動処理を行わせ、
前記起動処理は、前記第1コア及び前記第2コアがパネルコントローラーOS及びメインコントローラーOSの初期化を行ってから、前記パネルアプリケーションが前記RAMから、前記メインアプリケーションが前記NANDフラッシュから読み込まれ、
前記パネルコントローラーOSの初期化後、前記第1コアは、前記RAM内の前記パネルアプリケーションを前記RAM上に読み込んで実行し、前記パネルアプリケーションの読み込みに際して前記NANDフラッシュへのアクセスを省略し、
前記第2コアは、前記第1コアでの前記パネルアプリケーションの読み込みに並行して前記メインコントローラーOSの起動処理を行い、前記メインコントローラーOSの初期化後、前記NANDフラッシュにアクセスして前記メインアプリケーションを前記RAM上に読み込んで実行することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリーへのアクセスに対する排他制御を行なう画像形成装置に関する。
【背景技術】
【0002】
近年の電子機器においては、並列処理が可能な複数のコア(演算部)を備えたマルチコアプロセッサーを備えたものがある。マルチコアプロセッサーは、パーソナルコンピューター等の情報処理装置のみならず、コピー機、プリンター、それらの複合機等の画像形成装置にも幅広く適用されている。
【0003】
画像形成装置では、操作状態の表示等を行うパネル表示部を備えるのが一般的であり、その制御用のパネルコントローラーシステムと画像形成制御用のメインコントローラーシステムとをマルチコアプロセッサーの異なるコアに割り当てている。
【0004】
このような画像形成装置においては、メモリーへのアクセスがシングルコアプロセッサーと同様の構成となっていることがある。
【0005】
例えば、一つのフラッシュメモリーにパネルコントローラーシステム及びメインコントローラーシステムで使用するデータを保持し、そのフラッシュメモリーに対して複数のコアが一つのメモリーコントローラーを介してアクセスする。
【0006】
この場合、処理の効率化の観点から、複数のコアによるフラッシュメモリーへのアクセスに対する排他制御が必要となる。
【0007】
しかし、一つのメモリーコントローラーを介して一つのフラッシュメモリーにアクセスする場合は、同時に複数のコアがフラッシュメモリーにアクセスできないので、通常の排他制御を単純に適用することはできない。
【0008】
これに対し、特許文献1には、複数のCPU間での排他制御を考慮する必要がなく、簡単な制御で、不揮発性メモリの消去動作を実施するものが開示されている。
【0009】
しかし、この技術は、複数のフラッシュメモリー及び複数のメモリーコントローラーが必要となり、コスト高や構造が煩雑化するといった問題がある。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2011−159070号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
発明が解決しようとする課題は、複数の演算部が同時にアクセスできないメモリーに対する排他制御を行うことができなかった点である。
【課題を解決するための手段】
【0012】
本発明は、複数の演算部が同時にアクセスできないメモリーに対する排他制御行なうために、画像形成部とパネル表示部を備え、前記画像形成装置は、メモリー排他制御システムを有し、前記メモリー排他制御システムは、前記パネル表示部を制御するパネルコントローラーシステムを構成する第1コアと、前記画像形成部を制御するメインコントローラーシステムを構成する第2コアと、前記第1コア及び第2コアからアクセス可能な共有領域を有し、前記共有領域に前記第1コア及び前記第2コアの内の何れか一つが取得すると前記第1コア及び前記第2コアの内の他方から取得不能となる排他フラグを保持するRAMと、前記第1コア及び第2コアの内の何れか一つがアクセス可能なNANDフラッシュとを備えた画像形成装置において、前記第1コア及び前記第2コアのそれぞれはキャッシュを有し、前記キャッシュと前記RAMとの間では、前記キャッシュのフラッシュ及びインバリデート処理により、コヒーレンシーが合わせられてデータ内容が一致させられ、前記第1コア又は第2コアは前記共有領域内の前記排他フラグが取得可能か否かを判断し、取得不能な場合は前記キャッシュの値によってビジーウェイト状態での前記排他フラグに対するループによる監視を行い、取得可能な場合は前記排他フラグを取得し、前記排他フラグを取得した前記第1コア及び前記第2コアの内の何れか一つは前記NANDフラッシュにアクセスし、前記排他フラグを取得した前記第1コア及び前記第2コアの内の何れか一つは、前記NANDフラッシュへのアクセスが終了すると前記排他フラグを開放し、前記ビジーウェイト状態である前記第1コア及び前記第2コアの内の他方が前記排他フラグを取得し、前記排他フラグの取得は、Read−Modify−Writeにより、前記排他フラグが「0」になった瞬間に「1」を書き込んで取得を確保した後、前記排他フラグを「0」を書き込むことで開放することにより行われ、かつ、Atomic操作である不可分操作によって行われることで前記排他フラグの情報をRead後、Writeまでの間に、前記第1コア及び前記第2コアの内の他方からのWriteによる不整合が抑制され、前記NANDフラッシュは、前記パネルコントローラーシステム及び前記メインコントローラーシステムのプログラムとして、パネルコントローラーオペレーティングシステム(OS)、パネル表示制御に必要なパネルアプリケーション、メインコントローラーOS、画像形成制御に必要なメインアプリケーションを保持し、前記第1コアは、前記パネルコントローラーOS及び前記メインコントローラーOSを起動するブートローダーを構成し、前記ブートローダーは、(1)前記NANDフラッシュに対する制御を行うデバイスドライバーを備え、前記デバイスドライバーを通じ、前記メインコントローラーOS及び前記パネルコントローラーOSの起動にそれぞれ必要なメイン起動用プログラム及びパネル起動用プログラムを前記NANDフラッシュから前記RAM上に読み込み、(2)このとき、前記パネルアプリケーションも前記パネル起動用プログラムと共に前記RAM上に読み込み、(3)前記第1コア及び前記第2コアに対し、読み込んだ前記パネル起動用プログラム及び前記メイン起動用プログラムによって、それぞれ前記パネルコントローラーOS及び前記メインコントローラーOSの起動処理を行わせ、前記起動処理は、前記第1コア及び前記第2コアがパネルコントローラーOS及びメインコントローラーOSの初期化を行ってから、前記パネルアプリケーションが前記RAMから、前記メインアプリケーションが前記NANDフラッシュから読み込まれ、前記パネルコントローラーOSの初期化後、前記第1コアは、前記RAM内の前記パネルアプリケーションを前記RAM上に読み込んで実行し、前記パネルアプリケーションの読み込みに際して前記NANDフラッシュへのアクセスを省略し、前記第2コアは、前記第1コアでの前記パネルアプリケーションの読み込みに並行して前記メインコントローラーOSの起動処理を行い、前記メインコントローラーOSの初期化後、前記NANDフラッシュにアクセスして前記メインアプリケーションを前記RAM上に読み込んで実行することを最も主要な特徴とする。
【発明の効果】
【0013】
本発明によれば、複数の演算部が同時にアクセスできない第2メモリーに対する排他制御を確実に行うことが可能となる。
【図面の簡単な説明】
【0014】
図1】画像形成装置の概略構成を示すブロック図である(実施例1)。
図2図1の画像形成装置に適用されたメモリー排他制御システムを示すブロック図である(実施例1)。
図3図2のメモリー排他制御システムの第1コア及び第2コアとRAMとの関係を示す概念図である(実施例1)。
図4図2のメモリー排他制御システムによるメモリー排他制御時の概念図である(実施例1)。
図5図2のメモリー排他制御システムによるメモリー排他制御を示すフローチャートである(実施例1)。
図6】画像形成装置に適用されるメモリー排他制御システムを示すブロックである(実施例2)。
図7図6のメモリー排他制御システムによるパネルアプリケーションプログラムの読み込みを示す概念図である(実施例2)。
図8図6のメモリー排他制御システムによる読み込みを示す概念図である(実施例2)。
図9図6のメモリー排他制御システムによるブート処理を示すシーケンス図である(実施例2)。
図10】変形例に係るメモリー排他制御システムによるブート処理を示すシーケンス図である(実施例2)。
【発明を実施するための形態】
【0015】
複数の演算部が同時にアクセスできないメモリーに対する排他制御を行うという目的を、複数の演算部からアクセス可能な第1メモリーの共有領域に一の演算部が取得すると他の演算部から取得不能となる排他フラグを保持させ、排他フラグを取得した一の演算部にのみ第2メモリーへアクセスさせることで実現した。
【実施例1】
【0016】
[画像形成装置]
図1は、画像形成装置の概略構成を示すブロック図である。
【0017】
図1の画像形成装置1は、例えばコピー機、プリンター、それらの複合機からなり、画像形成部3とパネル表示部5とを備えている。画像形成部3は、入力されたデータに基づいて用紙上へ画像形成を行うものである。パネル表示部5は、タッチパネル式の液晶画面等からなり、画像形成装置1に対する操作入力や操作状態の表示を行う。
【0018】
この画像形成装置1では、主制御部7、主記憶部9、デバイス制御部11等を備え、画像形成部3及びパネル表示部5が並列制御される構成となっている。
【0019】
主制御部7は、例えばSoC(System-on-a-chip)として構成され、同一の半導体チップ上にプロセッサー13と、拡張バスコントローラー15と、ローカルバスコントローラー17と、RAMコントローラー19とを搭載し、各部がシステムバス21によって接続されている。
【0020】
プロセッサー13は、マルチコアプロセッサーからなり、複数の演算部である第1コア23及び第2コア25を備えている。第1コア23は、プログラムの実行により、パネル表示部5を制御するパネルコントローラーシステムを構成する。第2コア25は、プログラムの実行により、主として画像形成部3を制御するメインコントローラーシステムを構成する。
【0021】
拡張バスコントローラー15は、PCIe(Peripheral Component Interconnect Express)コントローラーであり、デバイス制御部11に対するルートコンプレックスを構成してデータの入出力を行う。
【0022】
ローカルバスコントローラー17は、ローカルバスを制御するコントローラーであり、NANDコントローラー27を有する。NANDコントローラー27は、NANDフラッシュ29に対するデータの読み書きを行うNAND型用のメモリーコントローラーである。
【0023】
RAMコントローラー19は、DDR−SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)コントローラーからなり、RAM(Read only Memory)31に対するデータの入出力を行うDDR−SDRAM用のメモリーコントローラーである。
【0024】
主記憶部9は、第1メモリーであるNANDフラッシュ29、第2メモリーであるRAM31を備えている。
【0025】
NANDフラッシュ29は、NAND型のフラッシュメモリーであり、画像形成装置1の各種の制御用プログラム等を保持している。このNANDフラッシュ29には、NANDコントローラー27を介して単一のコアのみがアクセス可能となっている。つまり、NANDフラッシュ29は、複数のコアが同時にアクセスできないようになっている。
【0026】
NANDフラッシュ29には、パネルコントローラーシステム及びメインコントローラーシステムのプログラムとして、パネルコントローラーオペレーティングシステム(以下、「パネルコントローラーOS」と称する)、パネルアプリケーション(以下、「パネルアプリ」と称する)、メインコントローラーオペレーティングシステム(以下、「メインコントローラーOS」と称する)、メインアプリケーション(以下、「メインアプリ」と称する)が保持されている。
【0027】
RAM31は、DDR−SDRAMからなり、プログラムや各種データを一時的に記憶して作業領域等として用いられる。
【0028】
デバイス制御部11は、ASIC(Application Specific Integrated Circuit)として構成され、拡張バスインターフェース33と、パネルコントローラー35と、ビデオコントローラー37とを備えている。
【0029】
拡張バスインターフェース33は、PCIeバスインターフェースであり、主制御部7側の拡張バスコントローラー15に対するエンドポイントとなってデータの入出力を行う。
【0030】
パネルコントローラー35は、パネルコントローラーシステムの制御によって、入力されたデータに基づくパネル表示部5に対する実際の制御を行う。ビデオコントローラー37は、メインコントローラーシステムの制御によって、入力されたデータに基づく画像形成部3に対する実際の制御を行う。
【0031】
このように本実施例の画像形成装置1では、第1コア23及び第2コア25がパネルコントローラーシステム及びメインコントローラーシステムを構成することで、パネル表示部5及び画像形成部3を並列制御することができる。
【0032】
本実施例の画像形成装置1では、かかる並列制御においてNANDフラッシュ29へのアクセスに対する排他制御を行う。
[メモリー排他制御システム]
図2は、図1の画像形成装置に適用されるメモリー排他制御システムを示すブロック図、図3は、図2のメモリー排他制御システムの第1コア及び第2コアとRAMとの関係を示す概念図、図4は、図2のメモリー排他制御システムによるメモリー排他制御時の概念図である。
【0033】
メモリー排他制御システム39は、図2図4のように、主記憶部9のRAM31に排他フラグ41を保持し、排他フラグ41を取得した第1コア23及び第2コア25の何れか一方のみが主記憶部9のNANDフラッシュ29にアクセス可能となる排他制御を行う。
【0034】
第1コア23は、上述のようにパネルコントローラーシステム43を構成し、パネル表示部5の制御に必要な各種のパネルアプリ45をパネルコントローラーOS47上で動作させる。このパネルコントローラーOS47は、NANDフラッシュ29に対する制御を行うデバイスドライバー49を備える。
【0035】
第2コア25は、上述のようにメインコントローラーシステム51を構成し、画像形成部3の制御に必要な各種のメインアプリ53をメインコントローラーOS55上で動作させる。メインコントローラーOS55も、パネルコントローラーOS47と同様、NANDフラッシュ29に対する制御を行うデバイスドライバー57を備える。
【0036】
これら第1コア23及び第2コア25は、パネルコントローラーOS47及びメインコントローラーOS55のデバイスドライバー49,57を通じ、スピンロックによってRAM31内の排他フラグ41を取得する。
【0037】
RAM31は、パネルコントローラーOS47用のパネルOS領域59、メインコントローラーOS55用のメインOS領域61、パネルコントローラーOS47及びメインコントローラーOS55の共有領域63がマッピングにより割り当てられている(図2及び図3)。このRAM31の共有領域63内に排他フラグ41が保持されている。
【0038】
排他フラグ41は、第1コア23及び第2コア25の一方が取得すると同他方から取得不能となる。具体的には、第1コア23及び第2コア25は、RAM31の共有領域63内の排他フラグ41が取得可能か否かを監視する。取得可能な場合は、図4の第2コア25のように排他フラグ41を取得して、取得不能な場合は、図4の第1コア23のようにビジーウェイト状態となってループによる排他フラグ41の監視を続ける。
【0039】
なお、本実施例では、第1コア23及び第2コア25がそれぞれキャッシュ65,67を有し、キャッシュ65,67の値によってビジーウェイト状態での排他フラグ41に対する監視を行う。このため、キャッシュ65,67とRAM31との間では、コヒーレンシーを合わせる、つまりデータ内容を一致させる必要がある。これは、キャッシュ65,67のフラッシュやインバリデート処理等によって行うことができる。
【0040】
排他フラグ41の取得は、例えばRead-Modify-Writeにより、排他フラグ41が「0」になった瞬間に「1」を書き込んで取得を確保した後、排他フラグ41を「0」を書き込むことで開放する等のようになる。この排他フラグ41の取得はAtomic操作(不可分操作)によって行われ、排他フラグ情報をRead後、Writeまでの間に、他方のコアからのWriteによる不整合を抑制するためである。
【0041】
排他フラグ41を取得した第1コア23及び第2コア25の一方は、NANDフラッシュ29に対するアクセスが可能となる。図4の例では、排他フラグ41を取得した第2コア25がNANDフラッシュ29にアクセスすることができる。
[メモリー排他制御]
以下、本実施例のメモリー排他制御について図5のフローチャートにより説明する。図5のフローチャートは、図2のメモリー排他制御システムによるメモリー排他制御を示す。なお、画像形成装置1及びメモリー排他制御システム39の構成については図1図4を参照する。
【0042】
メモリー排他制御では、まずステップS1において「RAMへのアクセス」が行われる。第1コア23(パネルコントローラーOS47)又は第2コア25(メインコントローラーOS55)は、自身のデバイスドライバー49又は57の制御を通じてRAM31の共有領域63にアクセスする。これによりステップS1が完了してステップS2へ移行する。
【0043】
ステップS2では、「排他フラグ取得可能?」の処理が行われる。この処理では、第1コア23又は第2コア25がRAM31の共有領域63内の排他フラグ41が取得可能か否かを判断する。
【0044】
図4の例では、第2コア25の場合に排他フラグ41が取得可能であり、第1コア23の場合に排他フラグ41が取得不能となっている。
【0045】
排他フラグ41が取得可能な場合はステップS3へ移行し(YES)、取得不能な場合はステップS2の処理を繰り返す(NO)。なお、ステップS2を再度行う場合は、ビジーウェイト状態となっているから、第1コア23又は第2コア25がキャッシュ65又は67に対してループによる排他フラグ41の監視を続ける。
【0046】
ステップS3では、「排他フラグ取得」が行われる。すなわち、第1コア23及び第2コア25の一方は、RAM31の共有領域63内の排他フラグ41の取得を行う。この取得により、第1コア23及び第2コア25の他方は、排他フラグ41の取得が不能となる。
【0047】
図4の例では、第2コア25が排他フラグ41の取得を行い、ステップS2で説明したように第1コア23が排他フラグ41を取得不能となる。
【0048】
こうしてステップS3が完了してステップS4へ移行する。
【0049】
ステップS4では、「NANDフラッシュへのアクセス」が行われる。すなわち、排他フラグ41を取得した第1コア23及び第2コア25の一方は、NANDコントローラー27(図1)を介してNANDフラッシュ29にアクセスする。これにより、第1コア23及び第2コア25の一方は、NANDフラッシュ29に対するデータの読み書きを行うことができる。図4の例では、第2コア25がNANDフラッシュ29にアクセスしてデータの読み書きを行うことになる。
【0050】
こうしてステップS4が完了してステップS5へ移行する。
【0051】
ステップS5では、「排他フラグの開放」を行う。第1コア23及び第2コア25の一方は、NANDフラッシュ29へのアクセスが終了するとRAM31の共有領域63内の排他フラグ41を開放する。これにより、第1コア23及び第2コア25の他方が排他フラグ41を取得できるようになる。図4の例では、ビジーウェイト状態であった第1コア23が排他フラグ41を取得可能となる。
[実施例1の効果]
本実施例のメモリー排他制御システム39は、異なる演算処理が可能な第1コア23及び第2コア25と、第1コア23及び第2コア25からアクセス可能な共有領域63を有するRAM31と、第1コア23及び第2コア25の内の何れか一つがアクセス可能なNANDフラッシュ29とを備え、RAM31が共有領域63に第1コア23及び第2コア25の何れか一方が取得すると同他方から取得不能となる排他フラグ41を保持し、排他フラグ41を取得した第1コア23及び第2コア25の何れか一方のみがNANDフラッシュ29にアクセスする。
【0052】
従って、本実施例では、複数のコアが同時にアクセスできないNANDフラッシュ29に対する排他制御を簡単且つ確実に行うことが可能となる。これにより、NANDフラッシュ29を効率良く使用でき、各コアの待ち時間等も減少することができる。
【実施例2】
【0053】
図6は、画像形成装置に適用されるメモリー排他制御システムを示すブロックである。なお、本実施例は、上記実施例1と基本構成が共通するため、対応する構成部分に同符号又は同符号にAを付加したものを用いて重複した説明を省略する。
【0054】
本実施例のメモリー排他制御システム39Aは、パネルコントローラーOS47及びメインコントローラーOS55の起動時の排他制御を軽減するものである。
【0055】
このメモリー排他制御システム39Aでは、画像形成装置1のシステム起動時に、第1コア23AがNANDフラッシュ29内等のプログラムを実行してブートローダー69を構成する。
【0056】
ブートローダー69は、パネルコントローラーOS47及びメインコントローラーOS55を起動するブート処理を行うものである。ブートローダー69は、NANDフラッシュ29に対する制御を行うデバイスドライバー71を備える。
【0057】
このデバイスドライバー71を通じ、ブートローダー69は、パネルコントローラーOS47及びメインコントローラーOS55の起動に必要なパネル起動用プログラム及びメイン起動用プログラムをNANDフラッシュ29からRAM31上に読み込む。このとき、ブートローダー69は、パネルアプリ45もパネル起動用プログラムと共にRAM31上に読み込む。このパネルアプリ45の読み込みの概念図を図7に示す。
【0058】
なお、パネル起動用プログラムは、パネルカーネルプログラム及びパネルデバイスツリープログラム等であり、メイン起動用プログラムは、メインカーネルプログラム及びメインデバイスツリープログラム等である(図9参照)。
【0059】
ブートローダー69は、第1コア23A及び第2コア25に対し、読み込んだパネル起動用プログラム及びメイン起動用プログラムによってパネルコントローラーOS47及びメインコントローラーOS55の起動を行わせる。
【0060】
この起動としては、第1コア23A及び第2コア25がパネルコントローラーOS47及びメインコントローラーOS55の初期化を行ってからパネルアプリ45及びメインアプリ53の読み込みを行う。パネルアプリ45は、RAM31上から読み込まれ、メインアプリ53は、NANDフラッシュ29から読み込まれる。
【0061】
図8は、RAM及びNANDフラッシュに対する読み込みを示す概念図である。
【0062】
第1コア23Aは、起動したパネルコントローラーOS47によりRAM31に対するデバイスドライバー49Aを備え、RAM31をパネルアプリ45のRAMディスクとして使用する。
【0063】
具体的には、第1コア23Aは、デバイスドライバー49Aの制御を通じ、RAM31内のパネルアプリ45を同RAM31のパネルOSHeap73上に読み込んで実行する。これにより、パネルアプリ45の読み込みに際してNANDフラッシュ29へのアクセスを省略できる。
【0064】
すなわち、パネルコントローラーOS47でのデマンドページングによるNANDアクセスを無くし、メインコントローラOS55にNAND排他待ちが発生しないようにする。
【0065】
この結果、本実施例では、パネルアプリ45の読み込みが、第2コア25でのメインコントローラーOS55の初期化と並行して行われる(図9参照)。なお、第1コア23AがNANDフラッシュ29へアクセスして書き込みを行うこともあるが、その場合にのみ上述の実施例1と同様に排他制御を行えばよい。
【0066】
第2コア25は、起動したメインコントローラーOS55によりNANDフラッシュ29に対するデバイスドライバー57を備え、NANDフラッシュ29にアクセスしてメインアプリ53等の処理に必要なデータをRAM31上のメインOSHeap75に読み込んで実行する。
【0067】
図9は、図6のブートローダーによるブート処理を示すシーケンス図である。
【0068】
図9のように、第1コア23A上で実行されたブートローダー69は、まずメイン起動用プログラムであるメインカーネルプログラム、メインデバイスツリープログラムを順次読み込む(SQ1及びSQ2)。
【0069】
次いで、ブートローダー69は、図7で説明したようにパネルアプリ45をRAM31上に読み込んで保持しておく(SQ3)。
【0070】
次いで、ブートローダー69は、パネル起動用プログラムであるパネルカーネルプログラム、パネルデバイスツリープログラムを順次読み込む(SQ4及びSQ5)。
【0071】
こうしてメイン起動用プログラムとパネル起動用プログラムの読み込みが完了すると、第2コア25上でメインコントローラーOS55を起動させると共に第1コア23A上でパネルコントローラーOS47にジャンプして起動させる(SQ6及びSQ7)。
【0072】
これにより、第1コア23Aは、パネルコントローラーOS47の初期化を行い、第2コア25は、メインコントローラーOS55の初期化を行う(SQ8及びSQ9)。
【0073】
パネルコントローラー35の初期化後は、上述のようにメインコントローラーOS55の初期化と並列して、第1コア23AがRAM31内のパネルアプリ45をRAM31のパネルOSHeap73上に読み込んで実行する(図8参照)。
【0074】
一方、第2コア25は、メインコントローラーOS55の初期化後に上述のようにNANDフラッシュ29にアクセスしてメインアプリ53をRAM31上に読み込んで実行する(SQ10及び図8参照)。
[実施例2の効果]
本実施例のメモリー排他制御システム39では、第1コア23AがNANDフラッシュ29へアクセスし、必要なデータ(パネル起動用プログラム)を読み込んで処理を実行すると共に処理とは分離した他の処理に必要なデータ(パネルアプリ45)を読み込んでRAM31に保持させる。
【0075】
このため、本実施例では、第2コア25がNANDフラッシュ29へアクセスしている間も、第1コア23AがRAM31内に保持したデータによって処理を実行することができる。
【0076】
結果として、本実施例では、第1コア23A及び第2コア25のNANDフラッシュ29へのアクセスに対する排他制御を軽減することができる。同時に、より効率良くNANDフラッシュ29を使用でき、各コアの待ち時間等も減少することができる。
【0077】
本実施例のメモリー排他制御システム39では、第1コア23Aがブートローダー69として機能してNANDフラッシュ29へアクセスし、パネルコントローラーOS47及びメインコントローラーOS55に必要なパネル側及びメイン起動用プログラムを読み込んで起動処理を実行すると共に起動処理とは分離した処理に必要なパネルアプリ45を読み込んでRAM31に保持させる。
【0078】
このため、本実施例では、パネルコントローラーOS47及びメインコントローラーOS55の起動処理においても、排他制御を軽減、より効率の良いNANDフラッシュ29の使用並びに各コアの待ち時間の減少を図ることができ、且つ起動時間の短縮効果もある。
【0079】
特に、本実施例では、パネルアプリ45のRAM31からの読み込みを、第2コア25によるメインコントローラーOS55の初期化と並行して行うことができるので、より確実に排他制御を軽減、効率の良いNANDフラッシュ29の使用、各コアの待ち時間等の減少、並びに起動時間の短縮を図ることが可能となる。
【0080】
その他、本実施例においても、上記実施例1と同様の作用効果を奏することができる。
[変形例]
図9のシーケンスは、図10のように変更することも可能である。図10は、変形例に係るブートローダーによるブート処理を示すシーケンス図である。
【0081】
本変形例では、図10のように、パネルアプリ45及びパネル起動用プログラムの読み込みに並行してメインコントローラーOS55の初期化を行わせる。
【0082】
すなわち、メイン起動用プログラムであるメインカーネルプログラム、メインデバイスツリープログラムを順次読み込むと(SQ1及びSQ2)、メインコントローラーOS55の起動を行う(SQ6)。
【0083】
第2コア25上でメインコントローラーOS55の初期化が行われると(SQ9)、これと並行してパネルアプリ45及びパネル起動用プログラムの読み込みが行われる(SQ3〜SQ5)。
【0084】
メインコントローラーOS55の初期化は、カーネル、各デバイスドライバーの初期化処理が多く実行されるため、NANDフラッシュ29にアクセスしていない非アクセス時間も多く存在する。
【0085】
この非アクセス時間を利用して、第1コア23A上のブートローダー69は、パネルアプリ45及びパネル起動用プログラムをNANDフラッシュ29から効率的に読み込むことができる。
【0086】
この際、ブートローダー69とメインコントローラーOS55との間は、上記実施例1と同様のNANDフラッシュ29のアクセスに対する排他制御を行うことになる。
【0087】
こうしてメインコントローラーOS55の初期化が完了すると、第2コア25は、メインアプリ53の読み込みを行う(SQ10)。一方、第1コア23は、パネルコントローラーOS47にジャンプして起動させ(SQ7)、パネルコントローラーOS47の初期化を行う(SQ8)。
【0088】
かかる変形例では、第1コア23Aがブートローダー69によりメインコントローラーOS55及びパネルコントローラーOS47の起動用プログラムを順次読み込んで起動処理を行わせ、第2コア25が少なくとも第1コア23AでのパネルコントローラーOS47の起動用プログラムの読み込みに並行してメインコントローラーOS55の起動処理を行う。
【0089】
従って、全てのプログラムを読み込んだ後にメイン及びパネル双方のOS47及び55を起動する場合と比較して、メインコントローラOS55の起動待ちによる時間のロスを無くすことができる。
【0090】
すなわち、変形例では、メインコントローラーOS55の起動処理、特に初期化のための非アクセス時間を利用して、第1コア23A上のブートローダー69がパネル起動用プログラムをNANDフラッシュ29から効率的に読み込むことができる。
【0091】
その他、変形例においても、上記実施例2と同様の作用効果を奏することができる。
[その他]
実施例2では、パネルアプリ45をRAM31上に予め読み込んでいたが、これを省略して実施例1と同様にしてブートローダー69とメインコントローラーOS55の起動処理とを並列して行うことも可能である。
【0092】
また、上記実施例では、プロセッサー13を、単一のマルチコアプロセッサーとしていたが、例えば複数のシングルコアプロセッサーやマルチコアプロセッサーを適宜組み合わせた構成とすることも可能である。
【符号の説明】
【0093】
1 画像形成装置
3 画像形成部
5 パネル表示部
23 第1コア(演算部)
25 第2コア(演算部)
29 フラッシュメモリー(第2メモリー)
31 RAM(第1メモリー)
41 排他フラグ
47 パネルコントローラーオペレーティングシステム(第1オペレーティングシステム)
55 メインコントローラーオペレーティングシステム(第2オペレーティングシステム)
63 共有領域
69 ブートローダー
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10