JP5411530B2 - 並列処理プロセッサシステム - Google Patents

並列処理プロセッサシステム Download PDF

Info

Publication number
JP5411530B2
JP5411530B2 JP2009051287A JP2009051287A JP5411530B2 JP 5411530 B2 JP5411530 B2 JP 5411530B2 JP 2009051287 A JP2009051287 A JP 2009051287A JP 2009051287 A JP2009051287 A JP 2009051287A JP 5411530 B2 JP5411530 B2 JP 5411530B2
Authority
JP
Japan
Prior art keywords
processing
memory
shared memory
processor system
processor
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.)
Expired - Fee Related
Application number
JP2009051287A
Other languages
English (en)
Other versions
JP2010205083A (ja
Inventor
秀療 富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009051287A priority Critical patent/JP5411530B2/ja
Priority to US12/712,128 priority patent/US8397033B2/en
Publication of JP2010205083A publication Critical patent/JP2010205083A/ja
Priority to US13/784,738 priority patent/US20130179644A1/en
Application granted granted Critical
Publication of JP5411530B2 publication Critical patent/JP5411530B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Memory System (AREA)

Description

本発明は、複数のプロセッサを備え、処理対象のデータを各プロセッサで並列処理する並列処理プロセッサシステムに関する。より具体的には、本発明は、各プロセッサの命令キャッシュ容量を低減しながらパフォーマンスを維持できる並列処理プロセッサシステムに関する。
MFP (Multi Functional Peripheral) のコントローラにおいては、画像の読み取り・記録・プリント・通信・FAXなどの処理のハードウェアロジックを個別に用意し、MFPで要求される機能を実現している。しかし、機能毎に回路を用意していては、機能を維持しながらコントローラをコストダウンすることが難しい。
機能を維持しながらのコストダウンは、同時に動作しない画像処理を、プログラマブルなハードウェアで実装することで可能である。プログラマブルなハードウェアとして、DSP (Digital Signal Processor) やリコンフィギュラブルプロセッサ、コンフィギュラブルプロセッサが挙げられる。ここでは、一例として複数のDSPを用いてファームウェアを切り替えることによりコストダウンを実現することを考える。
それぞれ異なる画像処理を割り当てられた複数のDSPを接続して、同一画像領域に対して一連の複数種別の画像処理を順番に施す構成をパイプライン構成と呼ぶ。パイプライン構成をとると、DSP間の処理時間の差によりボトルネックとなるDSPが存在してしまい、十分なスループットが得られない。
この問題を回避するためには、各DSPの処理時間を等しくするようにDSPをカスタマイズすればよい。
しかし、ある処理に対してカスタマイズを行うと、ファームウェアを切り替えて実行する際に他のファームウェアでも同じようなカスタマイズを行うことが難しくなってしまう。
また、別の手段としてDSP間の負荷の調整を行う技術も存在するが(例えば特許文献1参照。)、調整にオーバーヘッドがかかり、スループットの向上が難しく、制御が複雑になるため、好ましい解ではない。さらにパイプライン構成は、DSPの数を減らしてコストダウンしたり、数を増やして性能を向上させるといったスケーラビリティのある構成の変更が難しいという問題もある。
これらのことから、処理対象の画像データを分割し、分割された各画像データを異なるDSPに割り当てて、パイプライン構成では異なるDSPで実行していた複数の処理を各DSPで実行するデータ並列処理構成が、パイプライン構成よりも好適である。本明細書では、複数のDSPを用いて、処理対象の画像データを分割し、分割された各画像データに対して各DSPで一連の処理を並列に行う構成をデータ並列処理構成と呼ぶ。
特開2006−133839号公報
処理すべき画像データを分割して複数のDSPでデータ並列処理を行う構成をとると、各DSPが実行するプログラムの容量が大きくなるため、パイプライン構成に比べて、同一容量の命令キャッシュでは、キャッシュミスの確率が大きくなってしまう。キャッシュミスが発生すると、DSPからメインメモリへのアクセスが発生する。メインメモリは、DSPが搭載されているチップ外のDRAM (Dynamic Random Access Memory) などである。
チップ外のDRAMでは、1ワードのリード/ライトに20〜30クロックが必要となるため、キャッシュミス時のレイテンシが非常に大きくなりDSPの処理性能に大きく影響する。一方、各DSPが割り当てられた処理を全て格納する容量を持つ命令キャッシュを実装すると、命令キャッシュの容量が大きくなり、回路面積が増加する。
キャッシュミス時のレイテンシを小さくするために、2次キャッシュを用いる方法がある。2次キャッシュとは、1次キャッシュよりもレイテンシが大きくDRAMよりもレイテンシが小さいプロセッサ専用の記憶装置である。2次キャッシュを用いることで、上述の課題を解決することができるが、以下の問題がある。
・キャッシュにはデータを格納する回路の他にタグと呼ばれる回路が必要になるため回路規模が大きい。
・キャッシュの入れ換えはキャッシュラインと呼ばれる単位で行われるため効率がよくない。
本発明では、2次キャッシュを用いることを要さずDSP間で共有するSRAM (Static Random Access Memory) などの共有メモリを用いることにより、上述の課題を解決する。共有メモリでは、タグが必要なく、キャッシュライン単位ではない書き換えが可能である。
本発明では、複数のプロセッサでデータ並列処理を行う構成において、命令キャッシュ容量を低減しながら所望のパフォーマンスを得る構成を提供することを目的とする。
本発明の一側面によれば、複数のプロセッサを備え、メインメモリから読み出したデータを前記複数のプロセッサによって並列処理する並列処理プロセッサシステムであって、それぞれがプロセッサと、該プロセッサによって実行されるプログラムの少なくとも一部の命令を保持するキャッシュとを含む、複数のプロセッサエレメントと、各プロセッサとの間のレイテンシが前記メインメモリと各プロセッサとの間のレイテンシよりも小さいメモリであって、前記メインメモリから転送された前記プログラムを記憶し、前記複数のプロセッサエレメントによって共有される共有メモリと、前記キャッシュにおいてキャッシュミスが発生した場合、前記共有メモリに記憶されているプログラムを用いて当該キャッシュを更新する更新手段と、前記メインメモリと前記共有メモリとの間の転送を制御する転送制御手段と、同期信号に応答して、前記転送制御手段に対して前記共有メモリのプログラムの書き換えを要求する同期制御手段とを有することを特徴とする並列処理プロセッサシステムが提供される。
本発明によれば、処理するデータを複数のプロセッサで並列処理する構成において、パフォーマンスを維持したまま命令キャッシュ容量を低減できる。
また、本発明によれば、共有メモリにプログラムの全てが格納できない場合でも同期制御部を設けることによりパフォーマンスを維持したまま命令キャッシュ容量を低減できる。
実施形態における画像処理装置のハードウェア構成を示すブロック図。 第1の実施形態における画像処理装置におけるコントローラ部の概略ブロック図。 第1の実施形態における画像処理装置の動作を示すフローチャート。 第1の実施形態における並列処理プロセッサシステムの動作を示すフローチャート。 第1の実施形態におけるタイルデータ・ファームウェアのデータフローの概念図。 第1の実施形態における共有メモリ・命令キャッシュの内容の推移の概念図。 第2の実施形態における画像処理装置におけるコントローラ部の概略ブロック図。 第2の実施形態における画像処理装置の動作を示すフローチャート。 第2の実施形態における並列処理プロセッサシステムの動作を示すフローチャート。 第2の実施形態における並列処理プロセッサシステムの動作を示すフローチャート。 第2の実施形態における共有メモリ・命令キャッシュの内容の推移の概念図。
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、かかる実施形態は本発明の実施に有利な具体例を示すにすぎない。また、以下の実施形態の中で説明されている特徴の組み合わせの全てが本発明の課題解決手段として必須のものであるとは限らない。
<第1の実施形態>
図1は、本発明の並列処理プロセッサシステムを含む画像処理装置のハードウェア構成を示したブロック図である。本実施形態における画像処理装置はコピー機能、プリンタ機能、FAX機能、スキャナ機能を具備したMFPを想定しており、コントローラ部101、UI部102、プリンタ部103、スキャナ部104、メモリ部105、通信IF部106を含む構成である。
以下、各部の概略について説明する。
コントローラ部101は、画像処理装置全体の制御をつかさどる部分である。コントローラ部101はプリンタ部103やスキャナ部104をはじめとする各ブロックと電気的に接続されており、高度な機能を実現するための制御を行っている。詳細については後述する。
UI部102は、ユーザが画像処理装置を操作するためのユーザインタフェース(UI)を提供する。UI部102は例えば液晶タッチパネルで構成され、ユーザから画像処理装置に対しての動作指示を受け付けたり、印刷する画像のプレビューを表示したりする。
プリンタ部103は、電気的な画像信号を記録紙上に可視像としてプリントするブロックであり、例えばレーザビームプリンタやインクジェットプリンタにより構成される。
スキャナ部104は、原稿画像を光学的に読み取って電気的な画像信号に変換するブロックである。
メモリ部105は、例えばDDR−SDRAMやHDDなどのメモリデバイスで構成される。このメモリ部105はメインメモリとして機能するもので、画像データを一時的に格納するだけでなく、画像処理装置の機能を実現するためにコントローラ部101が使用する制御プログラムやデータなどを格納する。
通信IF部106は外部機器とのデータの送受を行うブロックであり、インターネットやLANに接続したり、公衆電話回線に接続してFAX通信を行ったり、USBインタフェースによりPC(Personal Computer)と接続したりする。
図2にコントローラ部101の概略ブロック図を示す。コントローラ部101は、CPU (Central Processing Unit) 201、I/O制御部202、並列処理プロセッサシステム203、データバス204を包含している。I/O制御部202は、メモリ部105や通信IF部106とコントローラ部101とのデータ転送を制御し、DMA (Direct Memory Access) 機能を有している。本実施形態では、コントローラ部101に並列処理プロセッサシステム203を1つ含む構成としているが、複数含む構成でも可能である。CPU201、I/O制御部202、並列処理プロセッサシステム203は、データバス204を介して接続されている。
並列処理プロセッサシステム203は、DSP301、命令キャッシュ302、画像用ローカルメモリ303、共有メモリ304、データバス305を包含する。DSP301・命令キャッシュ302・画像用ローカルメモリ303を、プロセッサエレメント(PE)と呼ぶ。本実施形態では、並列処理プロセッサシステム203にPE1、PE2、PE3の3つのプロセッサエレメントが含まれる構成としているが、プロセッサエレメントの個数は3に限らない。また、本実施形態の各DSP301は同じ処理性能を持つものとする。
並列処理プロセッサシステム203では、所定の単位に分割された各画像データを1つのPEの画像用ローカルメモリ303に格納し、その画像に対して同一PEの命令キャッシュ内の命令に従って同一PEのDSP301で処理を行う。共有メモリ304には、複数のPEのDSP301が実行するプログラム命令であるファームウェアを格納する。共有メモリ304にデータではなく命令を格納する利点として、DSP301からの書込みアクセスが発生しないため、アクセスが集中しにくい点が挙げられる。共有メモリ304にアクセスが集中すると、それがボトルネックとなり、処理性能が低下してしまう。共有メモリ304はDSP301からのレイテンシがメモリ部105よりも小さく、動作周波数が高いため、DSP301はファームウェアの高速な読出しが可能である。
ファームウェアを切り替える際には、転送制御手段としてのI/O制御部202がメモリ部105に格納されたファームウェアを共有メモリ304にDMA転送する。DSP301、共有メモリ304はデータバス305を介して接続されている。
本実施形態の画像処理装置では、並列処理プロセッサシステム203は読み取り画像処理・記録画像処理・通信画像処理などを行う。
読み取り画像処理はスキャナ部104から受信した画像データにシェーディング補正等を施し、MTF補正、色変換処理、フィルタ処理、ガンマ処理等の各種画像処理を行う。
記録画像処理は読み取り画像処理された画像データに対して2値化処理、中間調処理、そしてRGBtoCMYK等色変換処理を行い中間調画像に変換する。さらに、記録解像度にあわせて解像度変換し、画像の変倍、スムージング、濃度補正等の各種画像処理を施して高精細な画像データに変換しレーザビームプリンタ等に出力する。
通信画像処理は読み取った画像を通信性能に合わせて解像度変換、色変換をしたり、通信により受け取った画像を記録性能に合わせて解像度変換等をしたりする。本実施形態では、例えば、読み取り画像処理・記録画像処理のファームウェア容量を16KB未満、共有メモリ304の容量を16KBとする。また、命令キャッシュ302の容量を4KBとする。命令キャッシュ302はDSP301によって実行されるプログラムの少なくとも一部の命令を保持できればよく、命令キャッシュ302の容量はプログラム全体のサイズよりも大幅に小さくてよい。
図3は、本実施形態における画像処理装置の動作を示すフローチャートである。本実施形態では、画像データがスキャナ部104から取り込まれてプリンタ部103に出力されるまでの処理における並列処理プロセッサシステム203の動作に関して詳しく述べる。
まず、スキャナ部104で画像データの取り込みを行い(S101)、メモリ部105に画像データを転送する(S102)。
次に、コントローラ部101の並列処理プロセッサシステム203に読み取り画像処理ファームウェアを転送し(S103)、並列処理プロセッサシステム203で読み取り画像処理を行う(S104)。
さらに、並列処理プロセッサシステム203に記録画像処理ファームウェアを転送し(S105)、並列処理プロセッサシステム203で記録画像処理を実行する(S106)。
最後に、プリンタ部103へデータバス204を介して画像データを転送する(S107)。S104、S106については詳しくは後述する。S103、S105では、例えばI/O制御部202により共有メモリ304へ画像処理ファームウェアが転送される。
S104、S106における並列処理プロセッサシステム203の動作を、図4のフローチャートを用いて説明する。図4では、単一のDSP301の動作について記述しているが並列処理プロセッサシステム203に含まれる全てのDSP301が同様の動作を並列に実行する。
処理が開始されると、DSP301がメモリ部105から処理する所定のサイズの画像データ(以下「タイルデータ」という。)を読み出し、画像用ローカルメモリ303に格納する(S201)。
次に、DSP301がファームウェアを実行し(S202)、命令キャッシュ302でキャッシュミスが発生したか否かの判定が行われる(S203)。キャッシュミスが発生した場合、共有メモリ304に記憶されているプログラムを用いて当該命令キャッシュ302の更新を行う(S204)。具体的には例えば、DSP301がアクセスしたアドレスに対応する共有メモリ304の内容を命令キャッシュ302にコピーすることにより上記更新が行われる。
前述したように、従来の構成においては、キャッシュミスが発生すると、DSP301からチップ外のメインメモリであるメモリ部105へのアクセスが発生していた。これに対し、本実施形態では、DSPとの間のレイテンシがメモリ部105より小さい共有メモリ304にアクセスして命令キャッシュの更新を行う。このため、処理速度の点で従来法に比べて有利である。
キャッシュミスが発生していなければ、タイルデータに対する全ての画像処理が実行されたか否かの判定が行われる(S205)。
S205において、全ての画像処理が完了していなければ、S202へ戻ってDSP301によるファームウェアの実行が引き続き行われる。一方、全ての画像処理が完了していれば処理済みのタイルデータを画像用ローカルメモリ303からメモリ部105に書き戻す(S206)。
次に、全ての画像データに対する処理が完了しているか否かの判定が行われる(S207)。完了していなければ、S201へ戻ってメモリ部105から次のタイルデータを読み出して画像用ローカルメモリ303に格納し、完了していれば処理完了となる。
図4のフローチャートにおける、タイルデータ・ファームウェアのデータフローの概念図を図5に示す。
メモリ部105に、画像データ401、ファームウェア402が格納されている。画像データ401をタイル1/2/3に分割し、DSP1/2/3が処理する。図5において、各矢印に付されているステップ番号は図3、図4のフローチャートのステップ番号に一致する。
本実施形態における処理経過に伴う、共有メモリ・命令キャッシュの内容の推移について読み取り画像処理を行うフローを例に説明する。図6はその概念図である。
並列処理プロセッサシステム203では、タイルデータを画像用ローカルメモリ303に格納した後、画素単位の複数種別の画像処理をタイルデータ内の全ての画素に対して行う。以上を全ての画像データに対して行う。
まず、読み取り画像処理ファームウェアが、共有メモリ304に転送(S103)される(501)。
DSP301がファームウェアの実行を開始(S202)すると、命令キャッシュ302には読み取り画像処理ファームウェアが格納されていないためキャッシュミスが発生(S203)する。このとき、共有メモリ304に格納されているファームウェアの一部(MTF補正処理部)が命令キャッシュ302にコピー(S204)される(502)。
MTF補正処理がタイルデータ内の全ての画素に対して行われている間はキャッシュミスは発生しない。MTF補正処理がタイルデータ内の全ての画素に対して終了すると、キャッシュミスが発生し、共有メモリ304に格納されているファームウェアの別の一部である色変換処理部が命令キャッシュ302にコピーされる(503)。これらをガンマ補正処理完了まで繰り返し、ガンマ補正処理が完了すると処理済みのタイルデータをメモリ部105に書き戻す。
全ての画像データに対して処理が行われていなければ、次のタイルデータを読み出して画像用ローカルメモリ303に格納し、処理を継続する。
共有メモリ304のレイテンシについて述べる。
メインメモリとしてメモリ部105にDDR−SDRAMを搭載した場合、データバス204やDDR−SDRAMのレイテンシに依存するが、1ワードのリード/ライトに20〜30クロックが必要となる。共有メモリ304をDSP301から数クロックのレイテンシとなるように配置すればキャッシュミス時のレイテンシは5分の1程度に削減される。
以上の処理により、処理する画像データを複数のDSPで並列処理する構成において、命令キャッシュ容量を低減しつつ所望のパフォーマンスを得ることができる。
<第2の実施形態>
以下、添付図面を参照して、第2の実施形態について詳細に説明する。
本実施形態における画像処理装置のハードウェア構成は図1と同一である。また、コントローラ部101の構成も図2と基本的に同じである。
図7に本実施形態における並列処理プロセッサシステム203の概略ブロック図を示す。図7では、図2と同じ構成要素には同じ符号を付している。図示のように、本実施形態の並列処理プロセッサシステムはDSP間の同期を制御する同期制御部306を更に備える構成としている。本実施形態では、同期信号としてDSPからの割り込み信号を用いることとする。
同期制御部306は、DSP301から同期信号を受信すると共有メモリ304内のファームウェア書き換えを、例えば転送制御手段としてのI/O制御部202に指示する。本実施形態では、読み取り画像処理・記録画像処理のファームウェア容量が8KB以上16KB未満、共有メモリ304の容量を8KBとする。また、命令キャッシュ302の容量を4KBとする。
図8は、本実施形態における画像処理装置の動作を示すフローチャートである。ここでは、画像データがスキャナ部104から取り込まれて読み取り画像処理が行われるまでの処理における並列処理プロセッサシステムの動作に関して詳しく述べる。
まず、スキャナ部104で画像データの取り込みを行い(S301)、メモリ部105に画像データを転送する(S302)。
次に、読み取り画像処理ファームウェアの内、MTF補正処理部と色変換処理部を並列処理プロセッサシステム203に転送し(S303)、並列処理プロセッサシステム203で読み取り画像処理を行う(S304)。
S304については詳しくは後述する。S303では、I/O制御部202により共有メモリ304へ画像処理ファームウェアが転送される。
図9、10は、本実施形態における並列処理プロセッサシステム203の動作を示すフローチャートである。図9は、DSP301を主体としたフローチャートであり、図10は、同期制御部306を主体としたフローチャートである。
まず図9に関して説明する。各DSP301による読み取り画像処理では、各タイルデータに対してMTF補正処理、色変換処理、フィルタ処理、ガンマ補正処理が順に行われるものとする。画像処理ファームウェア全体は、共有メモリ304の容量を超えるので同時に格納することができない。このため、ある時点では、MTF補正処理部と色変換処理部とを共有メモリ304に格納し、DSP301はMTF補正処理、色変換処理を実行する。別の時点では、フィルタ処理部とガンマ補正処理部とを共有メモリ304に格納し、DSP301はフィルタ処理、ガンマ補正処理を実行する。
処理が開始されると、メモリ部105からタイルデータを読み出し、画像用ローカルメモリ303に格納する(S401)。
次に、DSP301がファームウェアを実行し(S402)、キャッシュミスが発生したか否かの判定が行われる(S403)。キャッシュミスが発生した場合、命令キャッシュ302の更新(S404)が行われる。この際、命令キャッシュの更新はDSP301がアクセスしたアドレスに該当する領域の共有メモリ304の内容を命令キャッシュにコピーすることで実現する。キャッシュミスが発生していなければ、ガンマ補正処理が終了したか否かの判定が行われる(S405)。ガンマ補正処理が終了していなければ色変換処置が終了したか否かの判定が行われる(S406)。
S405において、ガンマ補正処理が終了していれば、現在のタイルデータに対する一連の読み取り画像処理が完了しているので、処理済みのタイルデータを画像用ローカルメモリ303からメモリ部105に書き戻す(S407)。S406において、色変換処理が終了していなければ、S402へ戻って引き続きDSP301が現在のファームウェアを実行し、色変換処理が終了していれば割り込みを既に出力しているかの判定がなされる(S408)。
S408において割り込みを出力していれば、S402へ戻って引き続きDSP301がファームウェアを実行し、出力していなければ同期制御部306へ割り込みを出力する(S409)。その後、制御を同期制御部306に移行し(A)、スタンバイ状態となる。
S407において、タイルデータを画像用ローカルメモリ303からメモリ部105に書き戻した後、全ての画像データに対する処理が終了したかの判定がなされる(S410)。S410において、全ての画像データに対する処理が終了していれば処理完了となり、終了していなければ同期制御部306へ割り込みを出力し(S411)、制御を同期制御部306に移行し(B)、スタンバイ状態となる。
次に図10について説明する。
同期制御部306は、処理が開始されると割り込み待ち状態となる(S412)。上記したAもしくはBにより割り込みを通知された同期制御部306は、DSP301の割り込みを解除する(S413)。
次に、全てのDSPからの割り込みを受信したかの判定がなされ(S414)、受信していなければ割り込み待ちとなり、受信していれば割り込み要因がAかBの判定がなされる(S415)。全てのDSPからの割り込みを受信すれば、共有メモリ304に現在格納されているファームウェアによる処理が全てのDSPで終了し、処理の同期が取れたことになる。そこで次の処理を行うために、共有メモリ304に新たなファームウェアを転送して内容を書き換える。
S415において割り込み要因がAであれば、1つのタイルデータに対する一連の処理のうち色変換処理まで完了した状態であるので、続いて同一のタイルデータに対してフィルタ処理・ガンマ補正処理を行う必要がある。そこで、同期制御部306はこれに応答して、I/O制御部202に対し共有メモリ304へフィルタ処理・ガンマ補正処理のファームウェアの転送を要求する。I/O制御部202はこの要求に応答して、共有メモリ304にフィルタ処理・ガンマ補正処理のファームウェアを転送し(S416)、DSP301を起動し(S417)、DSP301に制御を移行する(C)。
一方、S415において割り込み要因がBであれば、1つのタイルデータに対する一連の処理が全て完了した状態であるので、続いて新たなタイルデ-タに対してMTF補正処理・色変換処理を行う必要がある。そこで、共有メモリ304にMTF補正処理・色変換処理のファームウェアを転送し(S418)、DSP301を起動し(S419)、DSP301に制御を移行する(D)。
Cにより起動したDSP301は、同一のタイルデータを対象として、新たに転送されたフィルタ処理・ガンマ補正処理のファームウェアの実行(S402)から処理を再開する。一方、Dにより起動したDSP301は、メモリ部105から新たなタイルデータを読み出して画像用ローカルメモリ303へ格納する処理(S401)から処理を開始する。そして、新たなタイルデータを対象として、新たに転送されたMTF補正処理・色変換処理のファームウェアを実行する(S402)。
本実施形態における処理経過に伴う、共有メモリ・命令キャッシュの内容の推移について説明する。図11はその概念図である。
並列処理プロセッサシステム203では、タイルデータを画像用ローカルメモリ303に読み出した後、画素単位の複数種別の画像処理をタイルデータ内の全ての画素に対して行う。以上を全ての画像データに対して行う。
まず、読み取り画像処理ファームウェアの内、MTF補正処理部と色変換処理部が、共有メモリ304に転送(S303)される(601)。
DSP301がファームウェアの実行を開始(S402)すると、命令キャッシュ302にはMTF補正処理部と色変換処理部のファームウェアが格納されていないためキャッシュミスが発生(S403)する。このとき、共有メモリ304に格納されているファームウェアの一部(MTF補正処理部)が命令キャッシュ302にコピー(S404)される(602)。
MTF補正処理がタイルデータ内の全ての画素に対して行われている間はキャッシュミスは発生しない。MTF補正処理がタイルデータ内の全ての画素に対して終了すると、キャッシュミスが発生し、色変換処理部が共有メモリ304から命令キャッシュ302にコピーされる(603)。
色変換処理が終了すると、同期制御部306によってフィルタ処理・ガンマ補正処理のファームウェアが共有メモリ304に転送され(S416)、共有メモリ・キャッシュは604のようになる。
DSP301がファームウェアの実行を再開(S402)すると、キャッシュにはフィルタ処理・ガンマ補正処理のファームウェアは格納されていないためキャッシュミスが発生(S403)する。このとき、共有メモリ304に格納されているファームウェアの一部(フィルタ処理部)が命令キャッシュ302にコピー(S404)される(605)。
これらをガンマ補正処理完了まで繰り返し、ガンマ補正処理が完了すると、処理済みのタイルデータをメモリ部105に書き戻す。
全ての画像データに対して処理が行われていなければ、次のタイルデータを読み出して画像用ローカルメモリ303に格納し、処理を継続する。
以上の処理により、処理対象の画像データを所定単位に分割し複数のDSPで並列処理を実施する構成において、共有メモリにファームウェアの全てが格納できない場合でも同期制御部を設けることにより命令キャッシュ容量を低減しつつ所望のパフォーマンスを達成できる。
本発明は上述の実施形態には限定されない。例えば、処理対象は画像データに限らず、音声データなどでも適用可能である。
その他の実施形態として、DSPの処理性能に差があるときは、処理速度が速いDSPに優先的にタイルデータを割り当てて処理の高速化を図ることも可能である。
その他の実施形態として、DSP間で同期制御を行い、かつDSPの処理性能に差がある場合に、DSPの処理速度に応じてタイルデータの大きさを変化させ処理時間を均一にすることも可能である。
その他の実施形態として、画像用ローカルメモリを持たずメモリ部に格納された画像に対してDSPが処理を行う構成も可能である。

Claims (10)

  1. 複数のプロセッサを備え、メインメモリから読み出したデータを前記複数のプロセッサによって並列処理する並列処理プロセッサシステムであって、
    それぞれがプロセッサと、該プロセッサによって実行されるプログラムの少なくとも一部の命令を保持するキャッシュとを含む、複数のプロセッサエレメントと、
    各プロセッサとの間のレイテンシが前記メインメモリと各プロセッサとの間のレイテンシよりも小さいメモリであって、前記メインメモリから転送された前記プログラムを記憶し、前記複数のプロセッサエレメントによって共有される共有メモリと、
    記キャッシュにおいてキャッシュミスが発生した場合、前記共有メモリに記憶されているプログラムを用いて当該キャッシュを更新する更新手段と、
    前記メインメモリと前記共有メモリとの間の転送を制御する転送制御手段と、
    同期信号に応答して、前記転送制御手段に対して前記共有メモリのプログラムの書き換えを要求する同期制御手段と、
    を有することを特徴とする並列処理プロセッサシステム。
  2. 記キャッシュの容量は前記共有メモリの容量よりも小さいことを特徴とする請求項1に記載の並列処理プロセッサシステム。
  3. 前記更新手段は、前記キャッシュにおいてキャッシュミスが発生した場合に、前記プロセッサがアクセスしたアドレスに対応する前記共有メモリの内容を当該キャッシュにコピーすることにより、前記更新を行うことを特徴とする請求項1に記載の並列処理プロセッサシステム。
  4. 前記同期制御手段は、前記共有メモリに前記プログラムの全てを格納できない場合に、前記プロセッサが出力した同期信号に応答して、前記転送制御手段に対して前記共有メモリのプログラムの書き換えを要求することを特徴とする請求項1に記載の並列処理プロセッサシステム。
  5. 前記複数のプロセッサの各々が、前記共有メモリに現在格納されているプログラムの実行が完了すると前記同期信号を出力し、前記同期制御手段が、前記複数のプロセッサの全てから前記同期信号が出力されたことに応答して、前記共有メモリのプログラムの書き換えを要求することを特徴とする請求項に記載の並列処理プロセッサシステム。
  6. 前記複数のプロセッサエレメントのそれぞれは、前記メインメモリから読み出された処理対象のデータを格納するローカルメモリを更に含むことを特徴とする請求項1に記載の並列処理プロセッサシステム。
  7. 前記共有メモリは、前記メインメモリよりも高い周波数で動作することを特徴とする請求項1乃至6のいずれか1項に記載の並列処理プロセッサシステム。
  8. 前記転送制御手段は、前記プログラムを、DMA転送により前記メインメモリから前記共有メモリに転送することを特徴とする請求項1乃至7のいずれか1項に記載の並列処理プロセッサシステム。
  9. 前記複数のプロセッサのうちの少なくとも1つは、前記データに対するシェーディング補正、MTF補正、色変換処理、フィルタ処理、ガンマ処理のうちの少なくともいずれかの処理を実行することを特徴とする請求項1乃至8のいずれか1項に記載の並列処理プロセッサシステム。
  10. 前記複数のプロセッサのうちの少なくとも1つは、前記データに対する2値化処理、中間調処理、色変換処理、解像度変換処理、変倍処理、スムージング、濃度補正のうちの少なくともいずれかの処理を実行することを特徴とする請求項1乃至8のいずれか1項に記載の並列処理プロセッサシステム。
JP2009051287A 2009-03-04 2009-03-04 並列処理プロセッサシステム Expired - Fee Related JP5411530B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009051287A JP5411530B2 (ja) 2009-03-04 2009-03-04 並列処理プロセッサシステム
US12/712,128 US8397033B2 (en) 2009-03-04 2010-02-24 Parallel processing processor system
US13/784,738 US20130179644A1 (en) 2009-03-04 2013-03-04 Parallel processing processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009051287A JP5411530B2 (ja) 2009-03-04 2009-03-04 並列処理プロセッサシステム

Publications (2)

Publication Number Publication Date
JP2010205083A JP2010205083A (ja) 2010-09-16
JP5411530B2 true JP5411530B2 (ja) 2014-02-12

Family

ID=42679240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009051287A Expired - Fee Related JP5411530B2 (ja) 2009-03-04 2009-03-04 並列処理プロセッサシステム

Country Status (2)

Country Link
US (2) US8397033B2 (ja)
JP (1) JP5411530B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8427660B2 (en) * 2010-03-23 2013-04-23 Fuji Xerox Co., Ltd. Image processing apparatus, image forming apparatus, and computer readable medium storing program
KR101754998B1 (ko) 2011-01-27 2017-07-06 삼성전자주식회사 멀티 코어 시스템 및 멀티 코어 시스템에서의 데이터 병렬 처리 방법
JP5834672B2 (ja) * 2011-09-16 2015-12-24 株式会社リコー 画像処理装置、画像処理方法、画像形成装置、プログラムおよび記録媒体
JP6099418B2 (ja) * 2013-02-01 2017-03-22 ルネサスエレクトロニクス株式会社 半導体装置及びそのデータ処理方法
US20150007078A1 (en) * 2013-06-28 2015-01-01 Sap Ag Data Displays in a Tile-Based User Interface
JP6287571B2 (ja) * 2014-05-20 2018-03-07 富士通株式会社 演算処理装置、情報処理装置、及び、演算処理装置の制御方法
CN105812605B (zh) 2015-01-21 2020-05-01 佳能株式会社 信息处理装置及信息处理装置的控制方法
US9743238B2 (en) 2015-02-13 2017-08-22 Qualcomm Incorporated Proximity based device usage
JP2017220802A (ja) * 2016-06-07 2017-12-14 住友電気工業株式会社 光トランシーバ
CN109766139B (zh) * 2018-12-13 2023-02-14 平安普惠企业管理有限公司 配置文件的配置方法及装置
JP7452309B2 (ja) * 2020-07-28 2024-03-19 セイコーエプソン株式会社 画像処理装置および画像処理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
JP3820645B2 (ja) * 1996-09-20 2006-09-13 株式会社日立製作所 マルチプロセッサシステム
JPH11203200A (ja) * 1998-01-12 1999-07-30 Sony Corp 並列プロセッサおよびメモリ制御方法
JP2001051898A (ja) * 1999-08-05 2001-02-23 Hitachi Ltd 階層キャッシュメモリのデータ参照方法、および、階層キャッシュメモリを含むデータ処理装置
US6638226B2 (en) * 2001-09-28 2003-10-28 Teratech Corporation Ultrasound imaging system
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
JP4457577B2 (ja) * 2003-05-19 2010-04-28 日本電気株式会社 マルチプロセッサシステム
US7136967B2 (en) * 2003-12-09 2006-11-14 International Business Machinces Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
JP2006133839A (ja) * 2004-11-02 2006-05-25 Seiko Epson Corp 画像処理装置、印刷装置および画像処理方法
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
US7702888B2 (en) * 2007-02-28 2010-04-20 Globalfoundries Inc. Branch predictor directed prefetch

Also Published As

Publication number Publication date
JP2010205083A (ja) 2010-09-16
US20130179644A1 (en) 2013-07-11
US8397033B2 (en) 2013-03-12
US20100228920A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
JP5411530B2 (ja) 並列処理プロセッサシステム
JP5600517B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2018050198A (ja) 画像処理装置、その制御方法、及びプログラム
JP2010039767A (ja) 組込みシステム
US20130073773A1 (en) Access control apparatus, image forming apparatus, and access control method
JP2009223792A (ja) 画像処理装置
JP5989616B2 (ja) 画像形成装置、及び画像形成方法
JP6357804B2 (ja) 画像処理装置、集積回路、及び画像形成装置
WO2019114044A1 (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
US9667531B2 (en) Image processing apparatus and control method
JP2014225089A (ja) 演算装置
US20160154603A1 (en) Data transfer control device, apparatus including the same, and data transfer control method
JP6033183B2 (ja) 画像形成装置、及び画像形成装置の起動方法
JPH09259075A (ja) Dmaコントローラ
JP2004118300A (ja) Dmaコントローラ
US9197782B2 (en) Image processing device and image processing method
JP7081477B2 (ja) 画像処理装置、画像処理装置の制御方法、およびプログラム
JP2011068012A (ja) 情報処理装置、その制御方法およびプログラム
JP4516336B2 (ja) 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体
JP2014154000A (ja) メモリ制御装置、その制御方法、および制御プログラム
JP2011013812A (ja) メモリシステム
JP5989924B2 (ja) 画像形成装置及び画像形成方法
JP2020145582A (ja) 情報処理装置、その制御方法、及びプログラム
JP4743110B2 (ja) データ処理装置
JP2009026269A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130723

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131108

R151 Written notification of patent or utility model registration

Ref document number: 5411530

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees