(57)【要約】【課題】ＡＳＩＣ３０により構成された各処理Ｐ１〜Ｐ５を第１のＣＰＵ２０と第２のＣＰＵ２２との間で共通に使用する。【解決手段】プリンタは、第１のＣＰＵ２０と第２のＣＰＵ２２とを備えており、これら第１のＣＰＵ２０と第２のＣＰＵ２２は、ハードウェア資源としてＡＳＩＣ３０により構成された各処理Ｐ１〜Ｐ５を共通に起動して、使用する。１つの処理、例えば、ＪＰＥＧ解凍処理Ｐ１を第１のＣＰＵ２０が起動して、実行している場合は、このＪＰＥＧ解凍処理Ｐ１を第２のＣＰＵ２２が起動することはできない。【選択図】  図１
2004322598.tif 000002
【特許請求の範囲】
【請求項１】
各種のデータ処理を行う、１つの第１のＣＰＵと、
同様に、各種のデータ処理を行う、少なくとも１つの第２のＣＰＵと、
前記第１のＣＰＵと前記第２のＣＰＵの双方からアクセス可能なメモリと、
前記第１のＣＰＵと前記第２のＣＰＵの双方から起動され、前記メモリに格納されているデータを読み出して、このデータに対して定められた処理をハードウェア的に実行し、実行後のデータを再び前記メモリに格納する、ハードウェア処理部であって、前記第１のＣＰＵ又は前記第２のＣＰＵの一方から起動され、その処理を実行している間は、他方のＣＰＵからの起動を受け付けないように構成されている、ハードウェア処理部と、
を備えることを特徴とするプリンタ。
【請求項２】
前記第１のＣＰＵと前記第２のＣＰＵは、前記ハードウェア処理部が読み出すデータが格納されている前記メモリ内の位置を、前記ハードウェア処理部に指定して、前記ハードウェア処理部を起動する、ことを特徴とする請求項１に記載のプリンタ。
【請求項３】
前記ハードウェア処理部は、
処理すべき前記データが格納されている前記メモリ内の先頭アドレスを格納するための、第１レジスタと、
処理すべき前記データが格納されている前記メモリ内の終端アドレスを格納するための、第２レジスタと、
を備えることを特徴とする請求項２に記載のプリンタ。
【請求項４】
前記第１のＣＰＵ及び前記第２のＣＰＵも、前記メモリに格納されている前記データを読み出して、所定の処理をソフトウェア的に実行し、実行後のデータを再び前記メモリに格納する、ことを特徴とする請求項１乃至請求項３のいずれかに記載のプリンタ。
【請求項５】
特定の処理については、前記第１のＣＰＵ又は前記第２のＣＰＵが固定的に実行するように定められている、ことを特徴とする請求項４に記載のプリンタ。
【請求項６】
各種のデータ処理を行う、１つの第１のＣＰＵと、
同様に、各種のデータ処理を行う、少なくとも１つの第２のＣＰＵと、
前記第１のＣＰＵと前記第２のＣＰＵの双方からアクセス可能なメモリと、
前記第１のＣＰＵと前記第２のＣＰＵの双方から起動され、前記メモリに格納されているデータを読み出して、このデータに対して定められた処理をハードウェア的に実行し、実行後のデータを再び前記メモリに格納する、ハードウェア処理部であって、前記第１のＣＰＵ又は前記第２のＣＰＵの一方から起動され、その処理を実行している間は、他方のＣＰＵからの起動を受け付けないように構成されている、ハードウェア処理部と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタ及び情報処理装置に関し、特に、複数のＣＰＵを備えるプリンタ及び情報処理装置に関する。
【０００２】
【従来の技術】
１つのプリンタが、プリンタ機能とスキャナ機能の双方を有しており、プリンタに関する処理と、スキャナに関する処理とをともに実行するタイプのプリンタが存在する（例えば、特許文献１参照）。このようなプリンタでは、１つのＣＰＵがスキャナに関する処理が定義されたＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  ＩＣ）を制御するとともに、プリンタに関する処理が定義されたＡＳＩＣを制御する。
【０００３】
【特許文献１】
特開２００２−１１８７０１号
【０００４】
【発明が解決しようとする課題】
しかしながら、プリンタ側で行われる制御が複雑になるにつれて、１つのＣＰＵでは負荷が重すぎる場合も生ずる。このような場合には、１つのプリンタに２つのＣＰＵを搭載し、処理の分散化を図ることが望ましい。
【０００５】
しかし、２つのＣＰＵが搭載されると、２つのＣＰＵが別々にメモリをアクセスしたり、ＡＳＩＣを制御して起動をかけたりすることとなる。このため、メモリアクセスやＡＳＩＣの管理が適正に行われる必要がある。
【０００６】
そこで本発明は、前記課題に鑑みてなされたものであり、複数のＣＰＵが１つのハードウェア資源を共通に使用する場合に、適切にその管理がなされるプリンタ及び情報処理装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記課題を解決するため、本発明に係るプリンタは、各種のデータ処理を行う、１つの第１のＣＰＵと、同様に、各種のデータ処理を行う、少なくとも１つの第２のＣＰＵと、前記第１のＣＰＵと前記第２のＣＰＵの双方からアクセス可能なメモリと、前記第１のＣＰＵと前記第２のＣＰＵの双方から起動され、前記メモリに格納されているデータを読み出して、このデータに対して定められた処理をハードウェア的に実行し、実行後のデータを再び前記メモリに格納する、ハードウェア処理部であって、前記第１のＣＰＵ又は前記第２のＣＰＵの一方から起動され、その処理を実行している間は、他方のＣＰＵからの起動を受け付けないように構成されている、ハードウェア処理部と、を備えることを特徴とする。
【０００８】
この場合、前記第１のＣＰＵと前記第２のＣＰＵは、前記ハードウェア処理部が読み出すデータが格納されている前記メモリ内の位置を、前記ハードウェア処理部に指定して、前記ハードウェア処理部を起動するようにしてもよい。
【０００９】
この場合、前記ハードウェア処理部は、処理すべき前記データが格納されている前記メモリ内の先頭アドレスを格納するための、第１レジスタと、処理すべき前記データが格納されている前記メモリ内の終端アドレスを格納するための、第２レジスタと、を備えるようにしてもよい。
【００１０】
また、前記第１のＣＰＵ及び前記第２のＣＰＵも、前記メモリに格納されている前記データを読み出して、所定の処理をソフトウェア的に実行し、実行後のデータを再び前記メモリに格納するようにしてもよい。
【００１１】
この場合、特定の処理については、前記第１のＣＰＵ又は前記第２のＣＰＵが固定的に実行するように定められているようにしてもよい。
【００１２】
本発明に係る情報処理装置は、各種のデータ処理を行う、１つの第１のＣＰＵと、同様に、各種のデータ処理を行う、少なくとも１つの第２のＣＰＵと、前記第１のＣＰＵと前記第２のＣＰＵの双方からアクセス可能なメモリと、前記第１のＣＰＵと前記第２のＣＰＵの双方から起動され、前記メモリに格納されているデータを読み出して、このデータに対して定められた処理をハードウェア的に実行し、実行後のデータを再び前記メモリに格納する、ハードウェア処理部であって、前記第１のＣＰＵ又は前記第２のＣＰＵの一方から起動され、その処理を実行している間は、他方のＣＰＵからの起動を受け付けないように構成されている、ハードウェア処理部と、を備えることを特徴とする。
【００１３】
【発明の実施の形態】
本実施形態に係るプリンタは、２つのＣＰＵを備えており、この２つのＣＰＵが１つのＡＳＩＣと１つのメモリとを共有するとともに、その管理を適切に行うようにしたものである。より詳しくを、以下に説明する。
【００１４】
図１は、本実施形態に係るプリンタの制御部の構造を説明するブロック図である。この図１に示すように、本実施形態に係るプリンタの制御部は、制御用ＬＳＩ１０により構成されている。
【００１５】
制御用ＬＳＩ１０は、システム・オン・チップと呼ばれ、１つのチップの中に２つのＣＰＵとＡＳＩＣとその周辺回路が形成されている。本実施形態においては、制御用ＬＳＩ１０は、第１のＣＰＵ２０と、第２のＣＰＵ２２と、ＡＳＩＣ３０と、印刷エンジン４０と、ＳＤＲＡＭコントローラ５０と、スキャナコントローラ６０と、インターフェース７０、８０を備えて構成されている。
【００１６】
第１のＣＰＵ２０は、インターフェース７０を介して、ＳＤＲＡＭコントローラ５０に接続されており、このＳＤＲＡＭコントローラ５０を介して、この制御用ＬＳＩ１０の外部に設けられているローカルＳＤＲＡＭ１００にアクセスする。第２のＣＰＵ２２も、インターフェース７０を介して、ＳＤＲＡＭコントローラ５０に接続されており、このＳＤＲＡＭコントローラ５０を介して、この制御用ＬＳＩ１０の外部に設けられているローカルＳＤＲＡＭ１００にアクセスする。
【００１７】
本実施形態においては、第１のＣＰＵ２０とインターフェース７０との間は、３２ビットバスで接続されており、第２のＣＰＵ２２とインバータ７０との間も、３２ビットバスで接続されており、インターフェース７０とＳＤＲＡＭコントローラ５０との間は、１２８ビットバスで接続されている。このため、インターフェース７０は、バス速度の違いを吸収して、ＣＰＵ２０、２２とＳＤＲＡＭコントローラ５０とが適切に接続されるように制御する。
【００１８】
また、第１のＣＰＵ２０は、第１のＣＰＵ専用のＣＰＵ用ＳＤＲＡＭ１１０にも、接続されている。第１のＣＰＵ２０が、ローカルＳＤＲＡＭ１００にアクセスするか、それとも、ＣＰＵ用ＳＤＲＡＭ１１０にアクセスするかは、処理の内容により定まっている。
【００１９】
第２のＣＰＵ２２は、第２のＣＰＵ専用のＣＰＵ用ＳＤＲＡＭ１１２にも、接続されている。第２のＣＰＵ２２が、ローカルＳＤＲＡＭ１００にアクセスするか、それとも、ＣＰＵ用ＳＤＲＡＭ１１２にアクセスするかは、処理の内容により定まっている。
【００２０】
また、第１のＣＰＵ２０はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１４にも接続されており、第２のＣＰＵ２２はＲＯＭ１１６にも接続されている。これらＲＯＭ１１４、１１６には、例えば、ＡＰＦ（Ａｕｔｏ  Ｐｈｏｔｏ  Ｆｉｎｅ）処理プログラムが格納されており、ＣＰＵ２０、２２がこのＡＰＦ処理プログラムを読み込んで実行することにより、ＡＰＦ処理が実現される。
【００２１】
さらに、ＣＰＵ２０、２２は、インターフェース７０、８０を介して、ＡＳＩＣ３０に接続されている。ＡＳＩＣ３０では、複数の処理が、ハードウェアを用いて実現されている。詳しくは後述するが、本実施形態においては、ＡＳＩＣ３０により、ＪＰＥＧ解凍処理と、リサイズ処理と、色変換処理と、並べ替え処理と、ヘッドコントロール処理などの処理が、実現されている。
【００２２】
ＡＳＩＣ３０は、印刷エンジン４０を介して、モータ駆動部１２０とヘッド駆動部１３０とを制御することにより、印刷の実行を管理する。また、ＡＳＩＣ３０は、ＳＤＲＡＭコントローラ５０に接続されており、このＳＤＲＡＭコントローラ５０を介して、ローカルＳＤＲＡＭ１００にアクセスする。
【００２３】
ＡＳＩＣ３０は、スキャナコントローラ６０にも接続されている。スキャナコントローラ６０は、スキャナ１４０の動作を制御する。すなわち、本実施形態に係るプリンタは、プリンタ機能とスキャナ機能とを有するマルチファンクションプリンタである。このスキャナコントローラ６０も、ＳＤＲＡＭコントローラ５０に接続されており、このＳＤＲＡＭコントローラ５０を介して、ローカルＳＤＲＡＭ１００にアクセスする。
【００２４】
図２は、このプリンタで印刷処理を行う場合のＡＳＩＣ３０とローカルＳＤＲＡＭ１００との間のデータの流れを説明する図である。この図２では、画像データに対してＡＰＦ処理を施して、印刷する場合の処理を示している。
【００２５】
図２に示すように、本実施形態に係るＡＳＩＣ３０では、少なくとも、ＪＰＥＧ解凍処理Ｐ１と、リサイズ処理Ｐ２と、色変換処理Ｐ３と、並べ替え処理Ｐ４と、ヘッドコントロール処理Ｐ５とを、ハードウェア的に実現している。また、本実施形態においては、これらの各処理の起動と終了は、ＣＰＵ２０、２２により管理されている。さらに、第１のＣＰＵ２０及び第２のＣＰＵ２２は、ＡＰＦ処理をソフトウェア的に実現する。
【００２６】
図２に示すように、例えば、第１のＣＰＵ２０は、ハードディスクやメモリカードから、デジタルカメラ等で撮像した画像データを取り込んで、ローカルＳＤＲＡＭ１００に格納する。この図２の例では、画像データは、ＪＰＥＧ圧縮されており、ＪＰＥＧデータＤ０として格納される。
【００２７】
この状態で、ＣＰＵ２０がローカルＳＤＲＡＭ１００内のＪＰＥＧデータＤ０の位置を指定して、ＪＰＥＧ解凍処理Ｐ１を起動すると、このＪＰＥＧ解凍処理Ｐ１は、指定されたローカルＳＤＲＡＭ１００の位置からＪＰＥＧデータＤ０を読み出して、解凍処理を行い、ＲＧＢデータを生成する。そして、ＪＰＥＧ解凍処理Ｐ１は、このＲＧＢデータＤ１をローカルＳＤＲＡＭ１００に格納する。また、ＪＰＥＧ解凍処理Ｐ１は、処理が終了したことを、起動をかけた第１のＣＰＵ２０に通知するとともに、ＲＧＢデータＤ１を格納した位置を、第１のＣＰＵ２０に通知する。
【００２８】
続いて、例えばＣＰＵ２０は、ローカルＳＤＲＡＭ１００からＲＧＢデータＤ１を読み出して、ＡＰＦ処理を実行する。このＡＰＦ処理により、ＲＧＢデータの明るさや、コントラスト等が自動的に補正され、印刷した際の画質の向上が図られる。ＣＰＵ２０は、このＡＰＦ処理後のＲＧＢデータＤ２を、ローカルＳＤＲＡＭ１００に格納する。
【００２９】
続いて、ＣＰＵ２０が、ローカルＳＤＲＡＭ１００内のＲＧＢデータＤ２の位置を指定して、リサイズ処理Ｐ２を起動すると、このリサイズ処理Ｐ２は、指定されたローカルＳＤＲＡＭ１００の位置からＲＧＢデータＤ２を読み出して、リサイズ（サイズの調整）を行い、リサイズ後のＲＧＢデータＤ３を、ローカルＳＤＲＡＭ１００に格納する。また、リサイズ処理Ｐ２は、処理が終了したことを、起動をかけた第１のＣＰＵ２０に通知するとともに、ＲＧＢデータＤ３を格納した位置を、第１のＣＰＵ２０に通知する。
【００３０】
続いて、ＣＰＵ２０が、ローカルＳＤＲＡＭ１００内のＲＧＢデータＤ３の位置を指定して、色変換処理Ｐ３を起動すると、この色変換処理Ｐ３は、リサイズ後のＲＧＢデータＤ３を指定されたローカルＳＤＲＡＭ１００の位置から読み出して、色変換処理を行い、ＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）の印刷２値データＤ６に変換する。色変換処理Ｐ３では、この色変換の処理において、必要に応じて、ローカルＳＤＲＡＭ１００に格納されているルックアップテーブルＤ４を参照する。また、色変換処理Ｐ３は、色変換の処理をしている間に必要となるワークエリアを、色変換誤差バッファＤ５として、ローカルＳＤＲＡＭ１００に確保している。そして、色変換処理Ｐ３は、生成された印刷２値データＤ６を、ローカルＳＤＲＡＭ１００に格納する。また、色変換処理Ｐ３は、処理が終了したことを、起動をかけた第１のＣＰＵ２０に通知するとともに、印刷２値データＤ６を格納した位置を、第１のＣＰＵ２０に通知する。
【００３１】
続いて、ＣＰＵ２０が、ローカルＳＤＲＡＭ１００内の印刷２値データＤ６の位置を指定して、並べ替え処理Ｐ４を起動すると、この並べ替え処理Ｐ４は、印刷２値データＤ６を指定されたローカルＳＤＲＡＭ１００の位置から読み出して、印刷ヘッドのインクノズルの並びに合わせてデータの順番の並べ替えを行い、ヘッドイメージデータＤ７を生成する。そして、並べ替え処理Ｐ４は、このヘッドイメージデータＤ７を、ローカルＳＤＲＡＭ１００に格納する。このヘッドイメージデータＤ７を格納する領域は、一般に、ヘッドイメージバッファと呼ばれている。また、並べ替え処理Ｐ４は、処理が終了したことを、起動をかけた第１のＣＰＵ２０に通知するとともに、ヘッドイメージデータＤ７を格納した位置を、第１のＣＰＵ２０に通知する。
【００３２】
続いて、ＣＰＵ２０が、ローカルＳＤＲＡＭ１００内のヘッドイメージデータＤ７の位置を指定して、ヘッドコントロール処理Ｐ５を起動すると、このヘッドコントロール処理Ｐ５は、指定されたローカルＳＤＲＡＭ１００の位置からヘッドイメージデータＤ７を読み出して、印刷ヘッドへ転送する。具体的には、印刷ヘッドに設けられているＲＡＭに、このヘッドイメージデータＤ７を転送する。印刷ヘッドは、このＲＡＭからヘッドイメージデータＤ７を読み出して、印刷を行うこととなる。指定された領域のデータの印刷が終了した場合には、ヘッドコントロール処理Ｐ５は、処理が終了したことを、起動をかけた第１のＣＰＵ２０に通知する。
【００３３】
以上のような流れで、印刷が実行されるが、これらの各処理Ｐ１〜Ｐ５は、ＣＰＵ２０からの起動指令により並列に起動され、実行され得る。すなわち、１つの画像データを印刷する際には、その画像データが複数に分割されて、各処理Ｐ１〜Ｐ５が実行され、その際には、異なる処理がＡＳＩＣ３０内で並列に実行される。例えば、ＪＰＥＧ解凍処理Ｐ１が実行されている間に、色変換処理Ｐ３が並列に実行されるなどである。このため、ローカルＳＤＲＡＭ１００へのアクセスが各処理Ｐ１〜Ｐ５の間で競合する場合もあり得る。例えば、ＪＰＥＧ解凍処理Ｐ１がローカルＳＤＲＡＭ１００からＪＰＥＧデータＤ０を読み出している間に、色変換処理Ｐ３がＲＧＢデータＤ３を読み出そうとする場合もある。このような場合の調停も、ＳＤＲＡＭコントローラ５０が行う。
【００３４】
また、図２の例では、第１のＣＰＵ２０が印刷処理を実行する場合を例に説明したが、第２のＣＰＵ２２でも、同様に、印刷処理を実行することができる。この場合、第１のＣＰＵ２０により起動された各処理Ｐ１〜Ｐ５と、第２のＣＰＵ２２により起動された各処理Ｐ１〜Ｐ５とが、並行して実行されることとなる。より正確には、各処理Ｐ１〜Ｐ５は、それぞれ、１つのＣＰＵからの起動しか受け付けられないので、ＣＰＵ２０、２２は、起動されていない処理Ｐ１〜Ｐ５を選択して、起動をかけ、全体として２つのＣＰＵ２０、２２が印刷処理を並行して実行していることとなる。
【００３５】
図３は、ＡＳＩＣ３０の処理Ｐ１〜Ｐ５のそれぞれに設けられたレジスタの構成を示す図である。この図３に示すように、各処理Ｐ１〜Ｐ５は、ＡＳＩＣ３０内に、起動レジスタＲＧ１と、処理ライン数レジスタＲＧ２と、読み出しアドレスレジスタＲＧ３と、エンドアドレスレジスタＲＧ４とが、設けられている。起動レジスタＲＧ１は、その処理が起動されていない場合には０が格納されている。そして、第１のＣＰＵ２０がこの処理を起動する場合には、第１のＣＰＵ２０が起動レジスタＲＧ１に１を書き込み、第２のＣＰＵ２２がこの処理を起動する場合には、第２のＣＰＵ２０が起動レジスタＲＧ１に２を書き込む。つまり、各処理は、起動レジスタＲＧ１に、１又は２が書き込まれることにより、起動される。
【００３６】
また逆に、起動レジスタＲＧ１に１又は２が書き込まれているということは、その処理が起動中であることを意味している。例えば、起動レジスタＲＧ１に１が格納されている場合、第２のＣＰＵ２２はこの処理を起動することができない。そして、各処理は、自らの処理が終了した時点で、この起動レジスタＲＧ１に１が格納されているか、それとも２が格納されているかで、起動をかけたＣＰＵを特定することができるので、この起動をかけたＣＰＵに対して、処理の終了を通知する。また、処理が終了した時点で、各処理は起動レジスタＲＧ１を０に戻す。
【００３７】
処理ライン数レジスタＲＧ２は、ＣＰＵ２０、２２が、その処理を起動する場合に、何ライン分のデータを処理するかを指定するレジスタである。例えば、１０ライン分のデータにＪＰＥＧ処理を施したい場合には、ＣＰＵ２０、２２は、ＪＰＥＧ解凍処理Ｐ１の処理ライン数レジスタＲＧ２に１０を格納する。
【００３８】
読み出しアドレスレジスタＲＧ３は、ＣＰＵ２０、２２が、その処理を施したいデータが格納されているローカルＳＤＲＡＭ１００のアドレスの先頭アドレスを指定するレジスタである。例えば、ローカルＳＤＲＡＭ１００のアドレス１２３４番地にＪＰＥＧ解凍処理Ｐ１を施したいＪＰＥＧデータの先頭がある場合には、ＣＰＵ２０、２２は、ＪＰＥＧ解凍処理Ｐ１の読み出しアドレスレジスタＲＧ３に、１２３４を格納する。
【００３９】
エンドアドレスレジスタＲＧ４は、ＣＰＵ２０、２２が、その処理を施したいデータが格納されているローカルＳＤＲＡＭ１００のアドレスの最終アドレスを指定するレジスタである。例えば、ローカルＳＤＲＡＭ１００のアドレス５６７８番地にＪＰＥＧ解凍処理Ｐ１を施したいＪＰＥＧデータの終端がある場合には、ＣＰＵ２０、２２は、ＪＰＥＧ解凍処理Ｐ１のエンドアドレスレジスタＲＧ４に、５６７８を格納する。
【００４０】
図４は、本実施形態に係るローカルＳＤＲＡＭ１００のバンク構成を示す図である。この図４に示すように、本実施形態に係るローカルＳＤＲＡＭ１００は、バンク１〜バンク４の４つのバンクで構成されている。ローカルＳＤＲＡＭ１００においては、同一バンクに連続してアクセスする場合には、禁止期間経過後でなければならないという制約がある。本実施形態では、この制約を加味して、各処理Ｐ１〜Ｐ５のローカルＳＤＲＡＭ１００に対するアクセスの優先順位を決定する。
【００４１】
図５は、本実施形態に係る各処理Ｐ１〜Ｐ５の優先順位に関する優先順位テーブルＴＢ１０の一例を示す図である。この優先順位テーブルＴＢ１０は、禁止期間内に同一バンクへのアクセスがあった場合に、ＳＤＲＡＭコントローラ５０が参照するテーブルである。
【００４２】
この図５に示すように、本実施形態では、各処理Ｐ１〜Ｐ５のリードとライトは、別々に優先順位が定められている。これは、同じ処理でも、ＳＤＲＡＭ１００に対するリードとライトでは、優先順位が異なるためである。
【００４３】
本実施形態では、最も高い優先順位に、ヘッドコントロール処理Ｐ５のリードが割り当てられている。これは、ヘッドコントロール処理Ｐ５により印刷ヘッドを駆動した印刷が一旦開始されると、途中で印刷ヘッドを止めることができないため、ヘッドイメージデータＤ７は最優先で印刷ヘッドに転送する必要があるからである。このため、ヘッドコントロール処理Ｐ５のリードの優先順位は、最も高い優先順位に固定されている。
【００４４】
このヘッドコントロール処理Ｐ５のリードの次の優先順位に、ＪＰＥＧ解凍処理Ｐ１のリードが割り当てられており、次にリサイズ処理Ｐ２のリードが割り当てられており、次にＪＰＥＧ解凍処理Ｐ１のリードが割り当てられている。このように、各処理のリードとライトにそれぞれ優先順位が割り当てられている。
【００４５】
ヘッドコントロール処理Ｐ５のリード以外の処理は、１回、ＳＤＲＡＭ１００へのアクセスする権利が割り当てられると、優先順位が最下位に移動する。例えば、ＪＰＥＧ解凍処理Ｐ１のリード処理に、ＳＤＲＡＭ１００をアクセスする権利が与えられると、動作期間（３サイクル）に、禁止期間（２サイクル）を加えた５サイクルの期間だけ、優先順位が最下位に移動する。そして、５サイクルの期間経過後に、元の優先順位の位置に戻る。
【００４６】
したがって、この５サイクルの間に、例えばＪＰＥＧ解凍処理Ｐ１が今アクセスしているバンクと同じバンクをアクセスしようとした場合には、ＪＰＥＧ解凍処理Ｐ１のアクセスの優先順位は最下位に移動しているため、ＳＤＲＡＭ１００へのアクセス要求がある処理の中で最も優先順位の高い処理に、ＳＤＲＡＭ１００へアクセスする権利が与えられることとなる。
【００４７】
図６は、本実施形態に係る各処理Ｐ１〜Ｐ５の優先順位に関する優先順位初期テーブルＴＢ２０の一例を示す図である。この優先順位初期テーブルＴＢ２０は、このプリンタに予め登録されている各処理Ｐ１〜Ｐ５の優先順位を固定的に保持しているテーブルである。したがって、この優先順位初期テーブルＴＢ２０は、このプリンタの電源がオフにされても保持される。この優先順位初期テーブルＴＢ２０は、ＳＤＲＡＭ１００への禁止期間内での同一バンクに対するアクセスではない場合に、参照されるテーブルである。
【００４８】
この図６に示すように、本実施形態に係る優先順位初期テーブルＴＢ２０では、最も高い優先順位に、ヘッドコントロール処理Ｐ５のリードが割り当てられており、次の優先順位に、ＪＰＥＧ解凍処理Ｐ１のリードが割り当てられており、次にリサイズ処理Ｐ２のリードが割り当てられており、次にＪＰＥＧ解凍処理Ｐ１のリードが割り当てられている。優先順位初期テーブルＴＢ２０においては、これらの優先順位は固定的なものであり変動しない。
【００４９】
これら図５に示した優先順位テーブルＴＢ１０と図６に示した優先順位初期テーブルＴＢ２０は、ＳＤＲＡＭコントローラ５０内に形成され、保持されている。
【００５０】
さらに、本実施形態においては、第１のＣＰＵ２０と第２のＣＰＵ２２との間で、実行すべき処理を移送することができる。例えば、このプリンタの性質上、第１のＣＰＵ２０の負荷が大きく、第２のＣＰＵ２２の負荷が小さい場合、上述したＡＰＦ処理は、必ず第２のＣＰＵ２２で実行するようにすることができる。このように、ＣＰＵ２０、２２の負荷が平均化するようにして、プリンタの処理速度の向上を図ることができる。
【００５１】
図２における印刷処理から、ＡＰＦ処理を省いた場合の処理フローを、図７に示す。このＡＰＦ処理は、画像データに対して施すかどうかをユーザが指定する選択的な処理である。このため、画像データにＡＰＦ処理を施さない場合もあるのである。
【００５２】
図７に示すように、ＡＰＦ処理を施さない場合、ＣＰＵ２０は、ローカルＳＤＲＡＭ１００に格納されているＲＧＢデータＤ２の先頭アドレスと終端アドレスとを、読み出しアドレスレジスタＲＧ３とエンドアドレスレジスタＲＧ４とに格納して、リサイズ処理Ｐ２を起動する。これにより、ＡＰＦ処理を省いて、リサイズ処理Ｐ２を実行することができる。
【００５３】
以上のように、本実施形態に係るプリンタによれば、ハードウェア的に構成された各処理Ｐ１〜Ｐ５を、複数のＣＰＵ２０、２２により選択的に起動させることができるので、ハードウェア資源を有効に活用することができる。
【００５４】
また、複数のＣＰＵ２０、２２の負荷に応じて、特定の処理を他方のＣＰＵで固定的に実行することにしておけば、もう一方のＣＰＵの負荷を軽減することができる。
【００５５】
さらに、本実施形態に係るプリンタは、ＳＤＲＡＭ１００へのアクセスにあたり、アクセスの禁止期間内に同一バンクへのアクセス要求があった場合には、ＳＤＲＡＭ１００へのアクセスを要求している他の処理を優先してＳＤＲＡＭ１００へアクセスする権利を認めることとしたので、ＳＤＲＡＭ１００へのアクセスを効率的に制御することができる。このため、ＳＤＲＡＭ１００への全体的なアクセス時間を短くすることができる。
【００５６】
また、リアルタイム性が強く要求されるヘッドコントロール処理Ｐ５のリード処理に関しては、最優先にＳＤＲＡＭ１００へのアクセスを認めるようにしたので、ＳＤＲＡＭ１００へのアクセスの優先順位を動的に変更したとしても、プリンタの動作に何ら問題が生じないようにすることができる。
【００５７】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態においては、１つのプリンタに２つのＣＰＵ２０、２２を設けることとしたが、３つ、４つ…等の複数のＣＰＵを設けるようにしてもよい。
【００５８】
また、本発明はプリンタに限らず、複数のＣＰＵとこれらのＣＰＵにより起動されるハードウェア資源とを有する情報処理装置に適用することができる。
【００５９】
【発明の効果】
以上説明したように、本発明によれば、複数のＣＰＵが１つのハードウェア資源を共通に使用する場合に、適切にその管理をすることができる。
【図面の簡単な説明】
【図１】本実施形態に係るプリンタの制御部の構成を説明するブロック図である。
【図２】本実施形態に係るプリンタで印刷処理をする場合のデータの流れの代表例を示す図である（ＡＰＦ処理をする場合）。
【図３】ＡＳＩＣにより構成された各処理が備えるレジスタ構成を示す図である。
【図４】本実施形態に係るローカルＳＤＲＡＭのバンク構成を示す図である。
【図５】本実施形態に係る優先順位テーブルの一例を示す図である。
【図６】本実施形態に係る優先順位初期テーブルの一例を示す図である。
【図７】本実施形態に係るプリンタで印刷処理をする場合のデータの流れの代表例を示す図である（ＡＰＦ処理をしない場合）。
【符号の説明】
１０  制御用ＬＳＩ
２０  第１のＣＰＵ
２２  第２のＣＰＵ
３０  ＡＳＩＣ
４０  印刷エンジン
５０  ＳＤＲＡＭコントローラ
６０  スキャナコントローラ
７０、８０  インターフェース
１００  ローカルＳＤＲＡＭ
１１０  ＣＰＵ用ＳＤＲＡＭ
１２０  モータ駆動部
１３０  ヘッド駆動部
１４０  スキャナ
【図１】
2004322598.tif 000003
【図２】
2004322598.tif 000004
【図３】
2004322598.tif 000005
【図４】
2004322598.tif 000006
【図５】
2004322598.tif 000007
【図６】
2004322598.tif 000008
【図７】
2004322598.tif 000009