JP7463855B2 - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP7463855B2
JP7463855B2 JP2020097670A JP2020097670A JP7463855B2 JP 7463855 B2 JP7463855 B2 JP 7463855B2 JP 2020097670 A JP2020097670 A JP 2020097670A JP 2020097670 A JP2020097670 A JP 2020097670A JP 7463855 B2 JP7463855 B2 JP 7463855B2
Authority
JP
Japan
Prior art keywords
data
memory
processor
processing module
processing
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.)
Active
Application number
JP2020097670A
Other languages
English (en)
Other versions
JP2021190002A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2020097670A priority Critical patent/JP7463855B2/ja
Publication of JP2021190002A publication Critical patent/JP2021190002A/ja
Application granted granted Critical
Publication of JP7463855B2 publication Critical patent/JP7463855B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報処理装置及びプログラムに関する。
キャッシュコヒーレンシーを保つための技術が知られている。例えば特許文献1には、共有メモリにおいて書き込み処理が完了していないエリアを管理表に登録し、要求装置からのデータの要求が登録されたエリアに対するものであるか否かに応じて調停バスおよびメモリコントローラのいずれか一方からデータを取得し、このデータを要求装置に転送する技術が記載されている。
特開2016-177751号公報
装置が複数のプロセッサを備える場合、一のプロセッサが他のプロセッサの作成したデータを取得し、このデータを用いて処理を実行することがある。ここで、他のプロセッサの作成したデータがそのキャッシュメモリに記憶されてからメモリに読み込まれるまでの間、キャッシュメモリとメモリとの間でデータの不整合が生じる。この状態において、一のプロセッサがこのデータが記憶されるメモリのアドレスを指定してデータの取得を要求すると、対象のデータとは異なるデータがメモリから取得され、異なるデータを用いて誤った処理が実行されてしまう。
本発明は、メモリへの書き込み処理の状況を管理する管理表を用いてデータの取得先をキャッシュメモリとメモリとの間で切り替える構成に比して、簡易な方法で、他のプロセッサのキャッシュメモリに記憶された対象のデータがメモリに読み込まれる前に、対象のデータとは異なるデータがメモリから取得され、このデータを用いた誤った処理が実行されるのを防ぐことを目的とする。
請求項1に係る発明は、プロセッサを備え、前記プロセッサは、他のプロセッサのキャッシュメモリからメモリに読み込まれた第1データを取得し、前記第1データに前記プロセッサの識別子が付加されていない場合には、前記キャッシュメモリに記憶された第2データを取得し、前記第2データを用いて処理を実行することを特徴とする情報処理装置である。
請求項2に係る発明は、請求項1に記載の情報処理装置において、前記プロセッサは、キャッシュ制御部を経由しない第1通信路を用いて前記第1データを取得し、前記第1データに前記識別子が付加されていない場合には、前記キャッシュ制御部を経由する第2通信路を用いて前記第2データを取得し、前記キャッシュ制御部は、前記プロセッサからの要求に応じて、前記キャッシュメモリから前記第2データを読み出して前記プロセッサに転送することを特徴とする。
請求項3に係る発明は、請求項1に記載の情報処理装置において、前記他のプロセッサは、前記第1データ及び前記第2データの各データに、当該データの転送先の識別子を付加することを特徴とする。
請求項4に係る発明は、請求項3に記載の情報処理装置において、前記他のプロセッサは、前記第1データ及び前記第2データの各データの先頭部に、前記転送先の識別子を付加することを特徴とする。
請求項5に係る発明は、請求項1に記載の情報処理装置において、前記プロセッサは、前記第2データに前記プロセッサの識別子が付加されている場合には、前記第2データを用いて前記処理を実行することを特徴とする。
請求項6に係る発明は、請求項5に記載の情報処理装置において、前記プロセッサは、前記第2データに前記プロセッサの識別子が付加されていない場合には、前記キャッシュメモリから前記メモリに読み込まれた第3データを取得し、前記第2データに代えて前記第3データを用いて前記処理を実行することを特徴とする。
請求項7に係るプログラムは、コンピュータに、他のプロセッサのキャッシュメモリからメモリに読み込まれた第1データを取得するステップと、前記第1データにプロセッサの識別子が付加されていない場合には、前記キャッシュメモリに記憶された第2データを取得するステップと、前記第2データを用いて処理を実行するステップとを実行させるためのプログラムである。
請求項1に係る発明によれば、メモリへの書き込み処理の状況を管理する管理表を用いてデータの取得先をキャッシュメモリとメモリとの間で切り替える構成に比して、簡易な方法で、他のプロセッサのキャッシュメモリに記憶された対象のデータがメモリに読み込まれる前に、対象のデータとは異なるデータがメモリから取得され、このデータを用いた誤った処理が実行されるのを防ぐことができる。
請求項2に係る発明によれば、メモリへの書き込み処理の状況を管理する管理表を用いてデータの取得先をキャッシュメモリとメモリとの間で切り替える構成に比して、簡易な方法で、他のプロセッサのキャッシュメモリに記憶された対象のデータがメモリに読み込まれる前に、対象のデータとは異なるデータがメモリから取得され、このデータを用いた誤った処理が実行されるのを防ぐことができる。
請求項3に係る発明によれば、メモリへの書き込み処理の状況を管理する管理表を用いてデータの取得先をキャッシュメモリとメモリとの間で切り替える構成に比して、簡易な方法で、他のプロセッサのキャッシュメモリに記憶された対象のデータがメモリに読み込まれる前に、対象のデータとは異なるデータがメモリから取得され、このデータを用いた誤った処理が実行されるのを防ぐことができる。
請求項4に係る発明によれば、プロセッサは、第1データを全て取得しなくても、第1データが自分宛のデータであるか否かが分かる。
請求項5に係る発明によれば、プロセッサがメモリから第1データを取得した後、他のプロセッサのキャッシュメモリから第2データを取得するまでの間に、対象のデータが他のプロセッサのキャッシュメモリからメモリに読み込まれ、キャッシュメモリから削除された場合でも、対象のデータとは異なるデータがキャッシュメモリから取得され、このデータを用いた誤った処理が実行されるのを防ぐことができる。
請求項6に係る発明によれば、プロセッサがメモリから第1データを取得した後、他のプロセッサのキャッシュメモリから第2データを取得するまでの間に、対象のデータが他のプロセッサのキャッシュメモリからメモリに読み込まれ、キャッシュメモリから削除された場合でも、対象のデータとは異なるデータがキャッシュメモリから取得され、このデータを用いた誤った処理が実行されるのを防ぐことができる。
請求項7に係る発明によれば、メモリへの書き込み処理の状況を管理する管理表を用いてデータの取得先をキャッシュメモリとメモリとの間で切り替える構成に比して、簡易な方法で、他のプロセッサのキャッシュメモリに記憶された対象のデータがメモリに読み込まれる前に、対象のデータとは異なるデータがメモリから取得され、このデータを用いた誤った処理が実行されるのを防ぐことができる。
制御装置100のハードウェア構成の一例を示す図である。 第1通信路の一例である通信路180を示す図である。 第2通信路の一例である通信路190又は195を示す図である。 処理モジュール120の機能構成の一例を示す図である。 処理モジュール120が取得するデータの構成の一例を示す図である。 制御装置100の動作の一例を示すシーケンスチャートである。 制御装置100の動作の一例を示すシーケンスチャートである。
1.構成
図1は、制御装置100のハードウェア構成の一例を示す図である。制御装置100は、例えばコピー機能、プリント機能、スキャン機能、ファクシミリ機能等の複数の機能を有する画像処理装置のコントローラとして用いられる。制御装置100は、本発明に係る「情報処理装置」の一例である。制御装置100は、CPU(Central Processing Unit)110と、複数の処理モジュール120A・・・120N(以下、総称して「処理モジュール120」という。)と、共有メモリ130と、メモリコントローラ140と、CCI(Cache Coherent Interconnect)150と、内部バス160及び170とを備える。処理モジュール120は、内部バス160及びCCI150を介してCPU110に接続されている。また、処理モジュール120は、内部バス160、内部バス170、及びメモリコントローラ140を介して共有メモリ130に接続されている。CPU110、複数の処理モジュール120、メモリコントローラ140、CCI150、内部バス160及び170は、例えばASIC(application specific integrated circuit)により実現される。
CPU110は、共有メモリ130に記憶されたプログラムを実行することにより、処理モジュール120を制御して各種の処理を行う。例えばCPU110は、処理モジュール120を起動し、処理モジュール120に処理の指示を行う。また、CPU110は、処理モジュール120の処理に用いられるデータを作成する。このデータには、例えばプリントデータやアドレス配列データが含まれる。CPU110は、本発明に係る「他のプロセッサ」の一例である。CPU110は、キャッシュメモリ111を有する。キャッシュメモリ111には、例えばL2キャッシュが用いられる。キャッシュメモリ111には、CPU110により作成されたデータが記憶される。例えばプリントデータが作成された場合、このプリントデータが一画素ずつキャッシュメモリ111に記憶される。キャッシュメモリ111に記憶されたデータは、或るタイミングでフラッシュされる。これにより、キャッシュメモリ111に記憶されたデータが共有メモリ130に読み込まれる。ここで、キャッシュメモリ111に記憶されたデータがフラッシュされるまでの間は、キャッシュメモリ111と共有メモリ130との間でデータの不整合が生じる。
処理モジュール120は、CPU110が作成したデータを用いて処理を行う。例えば複数の処理モジュール120は、それぞれ異なる画像処理を行う複数の画像処理回路である。CPU110が作成したデータに対して一連の複数の画像処理を施す場合、複数の処理モジュール120が協働して、このデータに対して順番に画像処理を施す。処理モジュール120が処理を行う順序は、例えば利用者が利用する画像処理装置の機能やその設定によって決められる。処理モジュール120は、本発明に係る「プロセッサ」の一例である。
共有メモリ130は、制御装置100の各部によって共有される記憶領域であり、各種のデータを記憶する。共有メモリ130には、例えばDDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)が用いられる。共有メモリ130には、CPU110により実行されるプログラムが記憶されている。なお、このプログラムは、図示せぬ外部記憶装置から共有メモリ130に読み込まれてもよい。また、共有メモリ130には、キャッシュメモリ111からデータが読み込まれて記憶される。メモリコントローラ140は、共有メモリ130を制御する。例えばメモリコントローラ140は、共有メモリ130に対してデータの読み書きを行う。
CCI150は、キャッシュコヒーレンス制御を行う。例えばCCI150は、処理モジュール120から要求されたデータがキャッシュメモリ111に存在する場合、キャッシュメモリ111からデータを読み出して、処理モジュール120に転送する。この場合、CCI150は、キャッシュメモリ111を制御して、キャッシュメモリ111に対してデータの読み書きを行う。CCI150は、本発明に係る「キャッシュ制御部」の一例である。一方、CCI150は、処理モジュール120から要求されたデータがキャッシュメモリ111に存在しない場合、メモリコントローラ140に共有メモリ130からのこのデータの取得を要求し、この要求に応じて共有メモリ130から取得されたデータを処理モジュール120に転送する。また、CCI150は、処理モジュール120の要求を調停する。ここでいう「調停」とは、複数の要求を受けて、それらの要求に対して、対象となるデータの所在を特定したり、処理する順序を割当てて各要求の要求元をその要求の処理が実行されるまで待機させたりすることをいう。
処理モジュール120がデータの取得に用いる通信経路には、CCI150を経由しない第1通信路と、CCI150を経由する第2通信路とがある。図2は、第1通信路の一例である通信路180を示す図である。図2に示されるように、通信路180は、処理モジュール120から内部バス160及び170、及びメモリコントローラ140を順番に経由して共有メモリ130に到達し、メモリコントローラ140、内部バス170及び160を順番に経由して処理モジュール120に戻る。図3は、第2通信路の一例である通信路190又は195を示す図である。処理モジュール120から要求されたデータがキャッシュメモリ111に存在する場合には通信路190が用いられる。一方、処理モジュール120から要求されたデータがキャッシュメモリ111に存在しない場合には通信路195が用いられる。図3(a)に示されるように、通信路190は、処理モジュール120から内部バス160及びCCI150を順番に経由してキャッシュメモリ111に到達し、CCI150及び内部バス160を順番に経由して処理モジュール120に戻る。一方、図3(b)に示されるように、通信路195は、通信路190と同様に、処理モジュール120から内部バス160及びCCI150を順番に経由してキャッシュメモリ111に一旦到達した後、CCI150、内部バス170、及びメモリコントローラ140を順番に経由して共有メモリ130に到達し、メモリコントローラ140、内部バス170、CCI150、及び内部バス160を順番に経由して処理モジュール120に戻る。
データの取得に用いられる通信経路には、データの取得にかかる時間が短くなるように第1通信路又は第2通信路のいずれかが予め設定されている。データの取得にかかる時間は、通信路190が最も短く、通信路180が次に短く、通信路195が最も長い。ここで、プリントデータのようにサイズが大きいデータを扱う場合には、予めCCI150を経由しない第1通信路が設定されることが多い。このようなデータを取得する場合には、CCI150がキャッシュメモリ111にアクセスした際に、処理モジュール120から要求されたデータが既に共有メモリ130に読み込まれており、キャッシュメモリ111に存在しないことが多い。この場合には、図3(a)に示される通信路190ではなく、図3(b)に示される通信路195を用いてデータが取得されるため、データの取得にかかる時間が長くなる。一方、予めCCI150を経由しない第1通信路が設定されている場合には、図2に示される通信路180を用いてデータが取得されるため、図3(b)に示される通信路195を用いてデータを取得する場合に比べて、データの取得にかかる時間が短くなる。
図4は、処理モジュール120の機能構成の一例を示す図である。処理モジュール120は、転送制御部121と、処理部122として機能する。転送制御部121は、処理モジュール120とキャッシュメモリ111又は共有メモリ130との間で行われるデータの転送を制御する。転送制御部121には、CPU110を介さずに処理モジュール120と共有メモリ130との間で直接データ転送を行うDMA(Direct Memory Access)コントローラが含まれる。転送制御部121は、コマンド生成部125と、転送部126と、受付部127と、データ判定部128とを有する。コマンド生成部125は、処理部122からの要求に応じて、データの取得を要求するコマンドを生成する。転送部126は、コマンド生成部125が生成したコマンドをCCI150又はメモリコントローラ140に転送する。受付部127は、CCI150又はメモリコントローラ140によりキャッシュメモリ111又共有メモリ130から読み出されて転送されたデータを受け付ける。データ判定部128は、受付部127が受け付けたデータが自処理モジュール120宛のデータであるか否かを判定する。受付部127が受け付けたデータが自処理モジュール120宛のデータである場合、このデータは処理部122に供給される。一方、受付部127が受け付けたデータが自処理モジュール120宛のデータではない場合、例えば受付部127が受け付けたデータは破棄され、処理部122には供給されない。処理部122は、処理に必要なデータを転送制御部121に要求し、この要求に応じて取得されたデータを用いて処理を実行する。
図5は、処理モジュール120が取得するデータの構成の一例を示す図である。このデータは、CPU110により作成される。データには、ヘッダとデータ本体とが含まれる。ヘッダは、CPU110によりデータの先頭に付加される情報であり、本発明に係る「データの先頭部」の一例である。ヘッダには、ヘッダサイズと、識別子と、データカウントとが含まれる。ヘッダサイズは、ヘッダのデータ量を示す。識別子は、データの転送先となる処理モジュール120を一意に識別する情報である。この識別子は、例えば一ワードの文字、数字、又は記号で示される。データの転送先となる処理モジュール120は、例えば一連の複数の画像処理のうち最初に画像処理を行う処理モジュール120である。例えば一連の複数の画像処理が行われる場合、CPU110が作成したデータはまず、これらの画像処理のうち最初の画像処理を行う処理モジュール120に転送される。この場合、最初の画像処理を行う処理モジュール120がデータの転送先となるため、この処理モジュール120の識別子がヘッダに付加される。データカウントは、データセット全体におけるデータの位置を示す。例えばデータがプリントデータである場合、データカウントは、データが属するページ数及びバンド数を示す。なお、データカウントはヘッダに含まれなくてもよい。
2.動作
以下の説明において、CPU110を処理の主体として記載する場合、これは共有メモリ130に記憶されたプログラムと、このプログラムを実行するCPU110との協働により、CPU110が演算を行い又は他のハードウェア要素の動作を制御することにより、処理が行われることを意味する。また、処理モジュール120を処理の主体として記載する場合、これはCPU110の制御の下、処理モジュール120により処理が行われることを意味する。
図6及び図7は、制御装置100の動作の一例を示すシーケンスチャートである。この動作は、例えばCPU110がデータを作成したことを契機として開始される。ここでは、このデータの転送先が処理モジュール120Aであるものとする。この場合、このデータのヘッダには、処理モジュール120Aの識別子が含まれる。なお、CPU110は、このデータの他に、他の処理モジュール120が転送先となるデータを作成してもよい。
ステップS11において、CPU110は、作成したデータを書き込む共有メモリ130の記憶領域を示すアドレスを設定する。ステップS12において、CPU110は処理モジュール120Aがこのデータを取得する際に用いる通信経路を設定する。例えば予めCCI150を経由しない第1通信路が設定されている場合には、この第1通信路が設定される。一方、予めCCI150を経由する第2通信路が設定されている場合には、この第2通信路が設定される。ステップS13において、CPU110は、処理モジュール120Aの転送制御部121を起動し、ステップS11及びS12において設定されたアドレス及び通信経路を処理モジュール120Aに通知する。
ステップS14において、処理モジュール120Aは、CPU110により設定された通信経路を初期通信経路に決定する。例えばCPU110により第1通信路が設定された場合には、この第1通信路が初期通信経路として決定される。一方、CPU110により第2通信路が設定された場合には、この第2通信路が初期通信経路として決定される。ステップS15において、処理モジュール120Aは、初期通信経路がCCI150を経由するか否かを判定する。例えば初期通信経路が第2通信路である場合には、初期通信経路がCCI150を経由すると判定される(ステップS15の判定がYES)。この場合、ステップS16に進み、処理モジュール120Aは、通信路190を用いてCCI150にデータを要求する。例えば処理モジュール120Aにおいて、処理部122は、処理に必要なデータの取得を転送制御部121に要求する。コマンド生成部125は、CPU110により設定されたアドレスを指定して、このアドレスが示す記憶領域に記憶されたデータの取得を要求するコマンドを生成する。転送部126は、通信路190を用いてこのコマンドをCCI150に転送する。このコマンドは、図3(a)に示されるように、内部バス160を経由してCCI150に到達する。
ステップS17において、CCI150は、このコマンドに従って、キャッシュメモリ111にアクセスする。ステップS18において、CCI150は、キャッシュヒットしたか否かを判定する。例えばキャッシュメモリ111は、キャッシュメモリ111に記憶されている各データについて、そのデータが記憶されているキャッシュメモリ111の記憶領域を示すアドレスと、そのデータについて設定された共有メモリ130の記憶領域を示すアドレスとの対応関係を示すアドレス情報を記憶している。このアドレス情報に基づいて、コマンドが指定する共有メモリ130のアドレスに対応するキャッシュメモリ111のアドレスが特定される。このアドレスが示す記憶領域にデータが存在する場合には、キャッシュヒットしたと判定される(ステップS18の判定がYES)。この場合、ステップS22に進み、CCI150は、特定されたアドレスが示すキャッシュメモリ111の記憶領域からデータを読み出し、通信路190を用いて処理モジュール120Aに転送する。このデータは、図3(a)に示されるように、内部バス160を経由して処理モジュール120Aに到達する。
一方、ステップS18において、例えば特定されたアドレスにデータが存在しない場合には、キャッシュヒットしない、すなわちキャッシュミスしたと判定される(ステップS18の判定がNO)。この場合、ステップS19に進み、CCI150は、通信路195を用いて、データの取得を要求するコマンドをメモリコントローラ140に転送する。このコマンドは、例えば図3(b)に示されるように、内部バス170を介してメモリコントローラ140に到達する。
ステップS20において、メモリコントローラ140は、このコマンドに従って、共有メモリ130にアクセスし、コマンドが指定するアドレスが示す記憶領域からデータを読み出す。ステップS21において、メモリコントローラ140は、通信路195を用いて、このデータをCCI150に転送する。このデータは、図3(b)に示されるように、内部バス170を経由してCCI150に到達する。そして、上述したステップS22に進み、メモリコントローラ140から転送されたデータがさらに通信路195を用いて処理モジュール120Aに転送される。このデータは、図3(b)に示されるように、内部バス160を経由して処理モジュール120Aに到達する。
ステップS23において、処理モジュール120Aは、受付部127においてこのデータを受け付ける。これにより、データが取得される。データの転送が完了すると、ステップS24において、処理モジュール120Aは、割り込みによってCPU110にデータの転送完了を通知する。ステップS25において、CPU110は、処理モジュール120Aの転送制御部121の制御を終了する。ステップS26において、処理モジュール120Aは、ステップS23において取得されたデータを用いて処理部122において処理を行う。例えばデータを用いて画像処理が行われる。
一方、上述したステップS15において、例えば初期通信経路が第1通信路である場合、初期通信経路がCCI150を経由しないと判定される(ステップS15の判定がNO)。この場合、図7に示されるステップS31に進み、処理モジュール120Aは、通信路180を用いてメモリコントローラ140にデータのヘッダ部を要求する。例えば処理モジュール120Aにおいて、処理部122は、処理に必要なデータの取得を転送制御部121に要求する。コマンド生成部125は、CPU110により設定されたアドレスを指定して、このアドレスが示す記憶領域に記憶されたデータのヘッダ部の取得を要求するコマンドを生成する。転送部126は、通信路180を用いてこのコマンドをメモリコントローラ140に転送する。このコマンドは、図2に示されるように、内部バス160及び170を経由してメモリコントローラ140に到達する。
ステップS32において、メモリコントローラ140は、このコマンドに従って、共有メモリ130にアクセスし、コマンドが指定するアドレスが示す記憶領域からデータのヘッダ部を読み出す。このデータは、CPU110のキャッシュメモリ111から共有メモリ130に読み込まれたデータであり、本発明に係る「第1データ」の一例である。ここで、CPU110がデータをキャッシュメモリ111から共有メモリ130に読み込んだ後にメモリコントローラ140が共有メモリ130にアクセスした場合には、コマンドが指定するアドレスが示す共有メモリ130の記憶領域には処理モジュール120Aにより要求されたデータが記憶されているため、このデータのヘッダ部が読み出される。一方、CPU110がデータをキャッシュメモリ111から共有メモリ130に読み込む前にメモリコントローラ140が共有メモリ130にアクセスした場合には、コマンドが指定するアドレスが示す共有メモリ130の記憶領域には処理モジュール120Aにより要求されたデータは記憶されていないため、このデータとは異なる他のデータのヘッダ部が読み出される。ステップS33において、メモリコントローラ140は、通信路180を用いてデータのヘッダ部を処理モジュール120Aに転送する。このデータのヘッダ部は、図3(b)に示されるように、内部バス170及び160を経由して処理モジュール120Aに到達する。
ステップS34において、処理モジュール120Aは、受付部127においてこのデータのヘッダ部を受け付ける。これにより、データのヘッダ部が取得される。ステップS35において、処理モジュール120Aは、データ判定部128において、データのヘッダに含まれる識別子に基づいて、このデータが処理モジュール120A宛のデータであるか否かを判定する。例えばヘッダに処理モジュール120Aの識別子が含まれる場合には、このデータは処理モジュール120A宛のデータであると判定される(ステップS35の判定がYES)。この場合、ステップS36に進み、ステップS36~S38において、処理モジュール120Aは、上述したステップS31~S33と同様に、メモリコントローラ140へのアクセスを継続し、残りのデータを取得する。データの転送が完了すると、図6に示されるステップS23に進む。この場合、上述したステップS26では、ステップS38において転送されたデータを用いて処理が行われる。
一方、上述してステップS35において、例えばヘッダに処理モジュール120Aの識別子とは異なる識別子が含まれる場合、すなわちデータに処理モジュール120Aの識別子が付加されていない場合には、このデータは処理モジュール120A宛のデータではないと判定される(ステップS35の判定がNO)。これは、CPU110がキャッシュメモリ111から共有メモリ130にデータを読み込む前にメモリコントローラ140が共有メモリ130にアクセスしたことにより、処理モジュール120Aにより要求されたデータとは異なる他のデータのヘッダが取得されたことを示す。この場合、ステップS39に進み、処理モジュール120Aは、上述したステップS16と同様に、通信路190を用いてCCI150にデータを要求する。このとき、データの取得を要求するコマンドは、図3(a)に示されるように、内部バス160を経由してCCI150に到達する。また、この場合、ステップS34において取得されたデータのヘッダ部は破棄される。
ステップS40において、CCI150は、このコマンドに従って、キャッシュメモリ111にアクセスし、キャッシュメモリ111からデータを読み出す。このデータは、本発明に係る「第2データ」の一例である。ステップS41において、CCI150は、通信路190を用いて、キャッシュメモリ111から読み出したデータを処理モジュール120Aに転送する。このデータは、例えば図3(a)に示されるように、内部バス160を経由して処理モジュール120Aに到達する。データの転送が完了すると、図6に示されるステップS23に進む。この場合、上述したステップS26では、ステップS41において転送されたデータを用いて処理が行われる。
仮に、CPU110のキャッシュメモリ111に記憶されたデータが共有メモリ130に読み込まれる前に、このデータとは異なる他のデータが共有メモリ130から取得された場合に、他のデータを用いて処理が実行されると、誤った処理が実行されることにより不具合が生じてしまう。例えばデータがプリントデータである場合には、対象のデータとは異なる他のデータを用いてプリント処理が行われると、画像にノイズが入り、画像が乱れてしまう。また、データがアドレス値である場合には、対象のデータとは異なる他のデータを用いてデータを取得する処理が行われると、例えば他のデータがアクセス禁止領域のアドレス値を示すときは、アクセス禁止領域からデータを読み出そうとして、制御装置100が停止してしまう虞がある。しかし、上述した実施形態によれば、CPU110のキャッシュメモリ111に記憶されたデータが共有メモリ130に読み込まれる前に、このデータとは異なる他のデータが共有メモリ130から取得された場合にも、このデータに付加された識別子に基づいて自処理モジュール120宛のデータではないと判定されてこのデータを用いた処理が行われないため、他のデータを用いた誤った処理が実行されるのが防止される。また、他のデータを用いた誤った処理が実行されるのを防ぐために、例えば共有メモリ130への書き込み処理の状況を管理する管理表を用いてデータの取得先をキャッシュメモリ111と共有メモリ130との間で切り替える構成も考えられるが、管理表を作成及び更新する手間がかかり、処理も複雑になる。上述した実施形態では、このような管理表を用いずに、データに識別子を付加する簡易な方法で、他のデータを用いた誤った処理が実行されるのが動的に防止される。さらに、識別子がデータのヘッダに付加されるため、データを全て取得しなくても、このデータが自処理モジュール120宛のデータであるか否かが分かる。
3.変形例
上述した実施形態は、本発明の一例である。本発明は、上述した実施形態に限定されない。また、上述した実施形態が以下の例のように変形して実施されてもよい。このとき、以下の2以上の変形例が組み合わせて用いられてもよい。
上述した実施形態において、通信路180を用いて共有メモリ130から取得されたデータが自処理モジュール120宛のデータではない場合に、通信路190を用いてキャッシュメモリ111から取得されたデータについても自処理モジュール120宛のデータであるか否かが判定されてもよい。この場合、上述したステップS36~ステップS38では、まず通信路190を用いてデータのヘッダ部が取得される。続いて、上述したステップS35と同様に、このデータのヘッダに含まれる識別子に基づいて、このデータが自処理モジュール120宛のデータであるか否かが判定される。例えばこのデータのヘッダに自処理モジュール120の識別子が付加されている場合には、自処理モジュール120宛のデータであると判定される。この場合、このデータを用いて処理が行われる。一方、このデータのヘッダに自処理モジュール120の識別子とは異なる識別子が付加されている場合には、自処理モジュール120宛のデータではないと判定される。この場合、このデータが破棄される。また、上述したステップS31~S32と同様に、再び通信路180を用いて共有メモリ130からデータが取得される。このデータは、キャッシュメモリ111から共有メモリ130に読み込まれたデータであり、本発明に係る「第3データ」の一例である。この場合、このデータを用いて処理が行われる。上述したステップS32においてメモリコントローラ140が共有メモリ130にアクセスしてから上述したステップS40においてCCI150がキャッシュメモリ111にアクセスするまでの間に、キャッシュメモリ111がフラッシュされて、キャッシュメモリ111に記憶されたデータが共有メモリ130に読み込まれ、キャッシュメモリ111に記憶されたデータの記憶領域に他のデータが書き込まれる場合がある。この場合、キャッシュメモリ111から処理モジュール120が要求したデータとは異なる他のデータが取得されることになるが、他のデータには自処理モジュール120の識別子とは異なる識別子が付加されている。そのため、キャッシュメモリ111から取得されたデータについても、データに付加された識別子に基づいて自処理モジュール120宛のデータであるか否かを判定することにより、他のデータを用いて誤った処理が実行されるのが防止される。
上述した実施形態において、制御装置100は、画像処理装置のコントローラに限定されない。制御装置100は、コンピュータ内でデータの転送を行う装置であれば、どのような装置であってもよい。また、制御装置100の構成は、上述した実施形態において説明した例に限定されない。例えばCPU110に代えてCPU以外のプロセッサが用いられてもよい。また、処理モジュール120は、CPU等のプロセッサにより実現されてもよい。さらに、CPU110が実行するプログラムは、共有メモリ130とは異なるメモリに記憶されていてもよい。
上記実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス等)を含むものである。上記実施形態において、プロセッサとは処理を実行する主体をいう。例えばASICに含まれる処理を実行する個々の回路もプロセッサに含まれる。
また上記実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記実施形態において記載した順序のみに限定されるものではなく、適宜変更されてもよい。
本発明は、制御装置100において実行されるプログラムとして提供されてもよい。制御装置100は、本発明に係る「コンピュータ」の一例である。このプログラムは、インターネットなどの通信回線を介してダウンロードされてもよいし、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
100:制御装置、110:CPU、111:キャッシュメモリ、120:処理モジュール、121:転送制御部、122:処理部、125:コマンド生成部、126:転送部、127:受付部、128:データ判定部、130:共有メモリ、140:メモリコントローラ、160及び170:内部バス

Claims (7)

  1. プロセッサを備え、
    前記プロセッサは、
    共有メモリにアクセスし、他のプロセッサのキャッシュメモリから前記共有メモリに読み込まれた第1データを取得し、
    前記第1データに前記プロセッサの識別子が付加されていない場合には、前記キャッシュメモリに記憶された第2データを取得し、
    前記第2データを用いて処理を実行する
    ことを特徴とする情報処理装置。
  2. 前記プロセッサは、
    キャッシュ制御部を経由しない第1通信路を用いて前記第1データを取得し、
    前記第1データに前記識別子が付加されていない場合には、前記キャッシュ制御部を経由する第2通信路を用いて前記第2データを取得し、
    前記キャッシュ制御部は、前記プロセッサからの要求に応じて、前記キャッシュメモリから前記第2データを読み出して前記プロセッサに転送する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記他のプロセッサは、前記第1データ及び前記第2データの各データに、当該データの転送先の識別子を付加する
    ことを特徴とする請求項1に記載の情報処理装置。
  4. 前記他のプロセッサは、前記第1データ及び前記第2データの各データの先頭部に、前記転送先の識別子を付加する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記プロセッサは、前記第2データに前記プロセッサの識別子が付加されている場合には、前記第2データを用いて前記処理を実行する
    ことを特徴とする請求項1に記載の情報処理装置。
  6. 前記プロセッサは、
    前記第2データに前記プロセッサの識別子が付加されていない場合には、共有メモリにアクセスし、前記キャッシュメモリから前記共有メモリに読み込まれた第3データを取得し、
    前記第2データに代えて前記第3データを用いて前記処理を実行する
    ことを特徴とする請求項5に記載の情報処理装置。
  7. コンピュータは、プロセッサを備え、
    前記プロセッサに、
    共有メモリにアクセスし、他のプロセッサのキャッシュメモリから共有メモリに読み込まれた第1データを取得するステップと、
    前記第1データに前記プロセッサの識別子が付加されていない場合には、前記キャッシュメモリに記憶された第2データを取得するステップと、
    前記第2データを用いて処理を実行するステップと
    を実行させるためのプログラム。
JP2020097670A 2020-06-04 2020-06-04 情報処理装置及びプログラム Active JP7463855B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020097670A JP7463855B2 (ja) 2020-06-04 2020-06-04 情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020097670A JP7463855B2 (ja) 2020-06-04 2020-06-04 情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2021190002A JP2021190002A (ja) 2021-12-13
JP7463855B2 true JP7463855B2 (ja) 2024-04-09

Family

ID=78849683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020097670A Active JP7463855B2 (ja) 2020-06-04 2020-06-04 情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP7463855B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001222466A (ja) 2000-02-10 2001-08-17 Nec Corp マルチプロセッサ・システムと共有メモリ制御システム及び方法並びに記録媒体
JP2008140078A (ja) 2006-11-30 2008-06-19 Toshiba Corp バスブリッジ装置、情報処理装置、およびデータ転送制御方法
JP2011150653A (ja) 2010-01-25 2011-08-04 Renesas Electronics Corp マルチプロセッサシステム
JP2016177752A (ja) 2015-03-23 2016-10-06 富士ゼロックス株式会社 転送装置、転送システムおよびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001222466A (ja) 2000-02-10 2001-08-17 Nec Corp マルチプロセッサ・システムと共有メモリ制御システム及び方法並びに記録媒体
JP2008140078A (ja) 2006-11-30 2008-06-19 Toshiba Corp バスブリッジ装置、情報処理装置、およびデータ転送制御方法
JP2011150653A (ja) 2010-01-25 2011-08-04 Renesas Electronics Corp マルチプロセッサシステム
JP2016177752A (ja) 2015-03-23 2016-10-06 富士ゼロックス株式会社 転送装置、転送システムおよびプログラム

Also Published As

Publication number Publication date
JP2021190002A (ja) 2021-12-13

Similar Documents

Publication Publication Date Title
US10719448B2 (en) Cache devices with configurable access policies and control methods thereof
US20110173393A1 (en) Cache memory, memory system, and control method therefor
JP2001167077A (ja) ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US20230195633A1 (en) Memory management device
JPWO2007099643A1 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
US5553270A (en) Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay
JP7463855B2 (ja) 情報処理装置及びプログラム
JPH09179779A (ja) コンピュータシステムおよびデータ転送方法
US5745707A (en) Bus control device for computer system having computer and DMA device
JP5254710B2 (ja) データ転送装置、データ転送方法およびプロセッサ
KR20170119889A (ko) 경량 아키텍쳐를 이용한 에일리어스 메모리 연산 방법
GB2502858A (en) A method of copying data from a first memory location and storing it in a cache line associated with a different memory location
JP2580263B2 (ja) バッファ記憶装置
WO2017216892A1 (ja) データ転送装置及びデータ転送方法
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
JP2008293387A (ja) データ先読み装置、データ処理システム、データ先読み処理プログラム
US7519778B2 (en) System and method for cache coherence
JP7238262B2 (ja) 計算機、半導体装置、及び制御方法
JP4037806B2 (ja) キャッシュメモリ装置
TWI758317B (zh) 用於提供資料存取行為原子集的裝置及方法
JP2006146817A (ja) メモリ制御システム及びメモリ制御装置
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法
US20190286562A1 (en) Information processing apparatus, cache control apparatus and cache control method
KR100636817B1 (ko) 시스템 버스로의 트랜잭션을 줄이기 위한 그래픽처리장치와 이를 구비한 화상형성장치
US7840757B2 (en) Method and apparatus for providing high speed memory for a processing unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240213

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: 20240227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240311

R150 Certificate of patent or registration of utility model

Ref document number: 7463855

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150