説明

プロセッサシステム

【課題】メインメモリから同じデータを2度読み出さない形で画像処理を実行可能な、大容量のキャッシュメモリを内蔵させることなく低消費電力で実現できるプロセッサシステムを、提供する。
【解決手段】プロセッサシステム10は、或るブロックのデータの掃き出し時にそのデータの書戻要求を発行するキャッシュメモリ12と、キャッシュメモリ12からの書戻要求に基づき、再度キャッシュメモリ12内に読み込ませることが必要なデータをローカルメモリ14上に用意し、キャッシュメモリ12からのリード要求にローカルメモリ14上のデータを利用して応答するインターコネクト13とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュメモリを内蔵したプロセッサシステムに関する。
【背景技術】
【0002】
周知のように、デジタルカメラ等では、キャッシュメモリを内蔵したプロセッサシステムにより、撮像結果(画像データ)に対して画像処理が行われるようになっている。
【0003】
そして、そのようなプロセッサシステムは、画像処理時にメインメモリから同じデータを2度読み出さなくて済む容量のキャッシュメモリを備えていることが望ましいのであるが、近年、画像処理対象の画像データの縦・横方向のピクセル数が極めて多くなってきている。そして、製造コスト等の観点から、プロセッサシステムに内蔵できるキャッシュメモリのサイズにも制限があるため、従来の構成(プロセッサとキャッシュメモリとインタフェース回路からなる構成)を採用したままでは、画像処理時にメインメモリから同じデータを2度読み出さなくて済むプロセッサシステムを製造することが困難になってきている。結果として、同じデータを複数回、メインメモリから読み出すため、全体として消費電力が増加してしまっている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7−200399号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
そこで、本発明の課題は、メモリから同じデータを2度読み出さない形で画像処理を実行可能なプロセッサシステムであって、大容量のキャッシュメモリを内蔵させることなく低消費電力を実現できるプロセッサシステムを、提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、開示の技術の一態様の,メモリと接続されるプロセッサシステムは、メモリ上の画像データに対して所定内容の画像処理を行うためのプロセッサと、プロセッサと接続された,所定サイズのデータを記憶するための複数のブロックを有するキャッシュメモリと、ローカルメモリと、メモリへのインタフェース回路としての機能を有する,ローカルメモリ及びキャッシュメモリに接続されたインターコネクトとを備えた構成であって、キャッシュメモリとして、データを記憶しているブロックに新たなデータを記憶する前に、そのブロック上のデータ、当該データのアドレスを、それぞれ、掃出データ、掃出アドレスとしてインターコネクトに通知する機能を有するものが採用され、インターコネクトとして、キャッシュメモリから掃出データ及び掃出アドレスが通知される度に、通知された掃出アドレスに基づき、通知された掃出データが、画像処理により再度参照されるデータであるか否かを判別し、そうであると判別した場合には、その掃出データを、当該掃出アドレスから所定のアルゴリズムにて求めたアドレスのデータとしてローカルメモリに格納する機能、及び、メモリに記憶されている読出対象データのアドレスである読出アドレスがキャッシュメモリから通知される度に、その読出アドレスに基づき、読出対象データがローカルメモリに格納されているか否かを判別し、読出対象データがローカルメモリに格納されていると判別した場合には、読出アドレスから所定のアルゴリズムにて求めたアドレスのデータをローカルメモリから読み出してキャッシュメモリに返送し、読出対象データがローカルメモリに格納されていないと判別した場合には、読出アドレスのデータをメモリから読み出してキャッシュメモリに返送するデータ返送機能を有
するものが採用された構成を有する。
【0007】
また、上記課題を解決するために、開示の技術の他の態様の,メモリと接続されるプロセッサシステムは、メモリ上の画像データに対して所定内容の画像処理を行うためのプロセッサと、プロセッサと接続された,所定サイズのデータを記憶するための複数のブロックを有するキャッシュメモリと、ローカルメモリと、メモリへのインタフェース回路としての機能を有する,ローカルメモリ及びキャッシュメモリに接続されたインターコネクトとを備えた構成であって、インターコネクトとして、メモリに記憶されている読出対象データのアドレスである読出アドレスがキャッシュメモリから通知される度に、その読出アドレスに基づき、読出対象データがローカルメモリに格納されているか否かを判別する機能、読出対象データがローカルメモリに格納されていると判別した場合に、読出アドレスから所定のアルゴリズムにて求めたアドレスのデータをローカルメモリから読み出してキャッシュメモリに返送する機能、及び、読出対象データがローカルメモリに格納されていないと判別した場合に、読出アドレスのデータをメモリから読み出してキャッシュメモリに返送すると共に、当該データが、画像処理により2度以上参照されるデータであった場合には、そのデータを、読出アドレスから所定のアルゴリズムにて求めたアドレスのデータとしてローカルメモリに格納するデータ返送機能を有するものが採用された構成を有する。
【図面の簡単な説明】
【0008】
【図1】第1実施形態に係るプロセッサシステムの構成及び使用形態の説明図。
【図2】第1実施形態に係るプロセッサシステム内のインターコネクトが実行するリード要求応答処理の流れ図。
【図3】第1実施形態に係るプロセッサシステム内のインターコネクトが実行するライト要求応答処理の流れ図。
【図4】第1実施形態に係るプロセッサシステム内のプロセッサが実行する画像処理の内容の説明図。
【図5】第1実施形態に係るプロセッサシステムの内部動作の説明図。
【図6A】第1実施形態に係るプロセッサシステム内のキャッシュメモリ、ローカルメモリの画像処理時の状態の説明図。
【図6B】第1実施形態に係るプロセッサシステム内のキャッシュメモリ、ローカルメモリの画像処理時の状態の説明図。
【図6C】第1実施形態に係るプロセッサシステム内のキャッシュメモリ、ローカルメモリの画像処理時の状態の説明図。
【図6D】第1実施形態に係るプロセッサシステム内のキャッシュメモリ、ローカルメモリの画像処理時の状態の説明図。
【図6E】第1実施形態に係るプロセッサシステム内のキャッシュメモリ、ローカルメモリの画像処理時の状態の説明図。
【図7A】第1実施形態に係るプロセッサシステムの,画像処理時における動作内容の説明図。
【図7B】従来システムの,画像処理時における動作内容の説明図。
【図8】第2実施形態に係るプロセッサシステムの構成及び使用形態の説明図。
【図9】第2実施形態に係るプロセッサシステム内のインターコネクトが実行するリード要求応答処理の流れ図。
【図10】第2実施形態に係るプロセッサシステム内のキャッシュメモリ、ローカルメモリの画像処理時の状態の説明図。
【図11A】第2実施形態に係るプロセッサシステムの、画像処理時における動作内容の説明図。
【図11B】第2実施形態に係るプロセッサシステムの、画像処理時における動作内容の説明図。
【図12】第2実施形態に係るプロセッサシステムの、画像処理時における動作内容の説明図。
【図13】第3実施形態に係るプロセッサシステムの構成及び使用形態の説明図。
【図14】第3実施形態に係るプロセッサシステム内のプロセッサが実行する画像処理の内容の説明図。
【図15】第3実施形態に係るプロセッサシステム内のインターコネクトが実行するリード要求応答処理の流れ図。
【図16】第3実施形態に係るプロセッサシステム内のインターコネクトが実行するライト要求応答処理の流れ図。
【発明を実施するための形態】
【0009】
以下、発明者らが開発した3種のプロセッサシステム(以下、第1〜第3実施形態に係るプロセッサシステムと表記する)について、図面を参照して詳細に説明する。
【0010】
《第1実施形態》
図1に示してあるように、第1実施形態に係るプロセッサシステム10は、メインメモリ50と接続されて使用されるLSI(large-scale integration)であり、プロセッサ
11、キャッシュメモリ12、インターコネクト13及びローカルメモリ14を備えている。
【0011】
メインメモリ50は、横(幅)方向のピクセル数が4096個、縦(高さ)方向のピクセル数が任意数(図では、2048個)の画像データ51(イメージセンサによる撮像結果等)が書き込まれるメモリである。
【0012】
ローカルメモリ14は、16KB(16×1024バイト)の記憶容量を有するRAM(Random Access Memory)である。
【0013】
キャッシュメモリ12は、16KBの記憶容量を有するキャッシュメモリである。このキャッシュメモリ12は、既存のキャッシュメモリを、通常動作モードと画像処理用動作モードとで動作可能なように改良したものとなっている。なお、このキャッシュメモリ12の元となったキャッシュメモリは、LRU(Least Recently Used)方式でブロックを入
れ替える、アドレスが“4096・N”(Nは任意の整数)異なる5データを同時に記憶できるセットアソシエイティブ方式のキャッシュメモリである。
【0014】
具体的な回路構成の説明は省略するが、キャッシュメモリ12は、プロセッサ11がデータを書き込める先頭アドレスレジスタ、末尾アドレスレジスタ及び動作モード指定用レジスタを備えている。
【0015】
キャッシュメモリ12が備える先頭アドレスレジスタ、末尾アドレスレジスタは、それぞれ、画像データ51の先頭アドレス、画像データ51の末尾アドレスがプロセッサ11により設定されるレジスタである。以下、これらのレジスタの設定値を境界としたアドレス範囲(つまり、画像データ51が記憶されているアドレス範囲)のことを、指定アドレス範囲と表記する。
【0016】
動作モード指定用レジスタは、その設定値が、第1指定値(動作モード指定用レジスタの初期値)である場合にキャッシュメモリ12が通常動作モードで動作し、その設定値が、第2指定値である場合にキャッシュメモリ12が画像処理用動作モードで動作するレジスタである。
【0017】
通常動作モードは、キャッシュメモリ12が、キャッシュメモリ12の元となったキャ
ッシュメモリと同機能のユニットとして動作する動作モードである。
【0018】
画像処理用動作モードは、キャッシュメモリ12が以下の機能を有するユニットとして動作する動作モードである。
【0019】
(a)指定アドレス範囲外のデータについてのプロセッサ11からのアクセス要求/インターコネクト13からのアクセス応答は、通常動作モード時と同等の振る舞いをする。
(b)指定アドレス範囲内のデータについてのプロセッサ11からのリード要求に対しては、通常のキャッシュメモリと同様に応答。ただし、リード要求に対する応答処理中に、或るブロック上のデータを掃き出す必要が生じた場合には、常に(当該ブロック上のデータが書き換えられていてもいなくても)、当該ブロック上のデータのメインメモリへ書戻要求(通常のライト要求)を発行。
【0020】
インターコネクト13は、既存のインターコネクトに、先頭アドレスレジスタ、末尾アドレスレジスタ及び動作モード指定用レジスタ等を追加したユニットである。なお、既存のインターコネクトとは、キャッシュメモリ12からのアクセス要求にローカルメモリ14を利用することなく応答するユニットのことである。
【0021】
インターコネクト13の動作モード指定用レジスタは、キャッシュメモリ12の動作モード指定用レジスタと同様に、その設定値が第1指定値/第2指定値である場合にインターコネクト13が通常動作モード/画像処理用動作モードで動作するレジスタである。
【0022】
インターコネクト13の通常動作モードは、キャッシュメモリ12の通常動作モードと同様に、インターコネクト13が、既存のインターコネクトと同機能のユニットとして動作する動作モードである。
【0023】
インターコネクト13の画像処理用動作モードは、インターコネクト13が、以下の機能を有するユニットとして動作する動作モードである。なお、以下の説明において、指定アドレス範囲とは、キャッシュメモリ12に関する指定アドレス範囲と同様に、インターコネクト13内の先頭/末尾アドレスレジスタに設定されている2アドレスを境界としたアドレス範囲のことである。
【0024】
(1)キャッシュメモリ12からのアクセス要求が、指定アドレス範囲外のデータの読み出し/書き込みを要求するものであった場合には、そのアクセス要求で要求されている処理をそのまま実行。
(2)キャッシュメモリ12からのアクセス要求が、指定アドレス範囲内のデータについてのリード要求であった場合には、そのリード要求に対して図2に示した手順のリード要求応答処理を実行。
(3)キャッシュメモリ12からのアクセス要求が、指定アドレス範囲内のデータについてのライト要求であった場合には、そのライト要求に対して図3に示した手順のライト要求応答処理を実行。
【0025】
なお、これらの応答処理の内容については後ほど説明するが、各流れ図中における“80”は、キャッシュメモリ12のブロックサイズが256バイトである場合の値(キャッシュメモリ12のブロックサイズに応じて適切な値が変わる値)である。
【0026】
プロセッサ11(図1)は、図示せぬ不揮発性記憶装置〔本実施形態では、プロセッサシステム10と接続されるROM(Read Only Memory)〕上の画像処理プログラムや他のプログラムに従って各種処理を行うユニットである。
【0027】
不揮発性記憶装置上の画像処理プログラムは、『画像データ51中の5ピクセル×5ピクセル分のデータ(マトリックス状に並んだ25個のピクセルに関するデータ)毎に処理結果データを生成する画像処理』をプロセッサ11に実行させるプログラムである。
【0028】
この画像処理プログラムは、図4に模式的に示したような内容/手順の画像処理をプロセッサ11に実行させるものとなっている。すなわち、画像処理プログラムは、画像データ51中の各25個(5×5個)のピクセルデータを特定位置(例えば、中心位置)に関するピクセルデータのアドレスの昇順に処理していく画像処理をプロセッサ11に実行させるものとなっている。なお、画像処理プログラムがプロセッサ11に実行させる画像処理は、25個のピクセルデータの処理結果(本実施形態では、1個のピクセルデータ)をメインメモリ50の画像データ51の記憶に使用されていない記憶領域に記憶する処理である。
【0029】
さらに、画像処理プログラムは、プロセッサ11に、初期化処理、動作モード変更処理、画像処理、動作モード復帰処理を、この順に実行させるものとなっている。
【0030】
画像処理プログラムに従いプロセッサ11が実行する初期化処理は、キャッシュメモリ12の状態を、全ブロック(キャッシュライン)に有意なデータが記憶されていない状態とする処理である。動作モード変更処理は、キャッシュメモリ12内及びインターコネクト13内の先頭アドレスレジスタ、末尾アドレスレジスタ、動作モード指定用レジスタに、それぞれ、画像データ51の先頭アドレス、画像データ51の末尾アドレス、第2指定値を設定する処理である。動作モード復帰処理は、キャッシュメモリ12内及びインターコネクト13内の動作モード指定用レジスタに、第1指定値を設定する処理である。
【0031】
以下、インターコネクト13が実行するリード要求応答処理及びライト要求応答処理の内容を、プロセッサシステム10の全体的な動作と共に、説明する。
【0032】
既に説明した事項から明らかなように、プロセッサシステム10は、画像データ51に対する画像処理が行われている間、キャッシュメモリ12及びインターコネクト13が画像処理用動作モードで動作するシステムである。また、画像処理用動作モードで動作しているキャッシュメモリ12が、プロセッサ11からの,画像データ51中のデータのリード要求に対して行う処理は、データの掃き出し時に常に書戻要求を発行することを除けば、通常のキャッシュメモリが行う処理と同じものである。さらに、プロセッサ11は、図4に示した内容/手順の画像処理をキャッシュメモリ12の初期化後に開始するものとなっている。
【0033】
従って、プロセッサ11による画像処理の開始後、画像データ51中の図5に網掛けを付して示してある64個のブロックデータ(256バイトのデータ)がキャッシュメモリ12内にキャッシュされるまでは、書戻要求が出力されることなく、画像処理が進行することになる。
【0034】
そして、ブロックデータ"B4-12"の読み込み時に、ブロックデータ"B0-0"についての書
戻要求が初めて発行される。また、その後、新たなブロックデータがキャッシュメモリ12内に読み込まれる度に、キャッシュメモリ12内への読み込み順通りに各ブロックデータについての書戻要求が発行されることになる。
【0035】
キャッシュメモリ12が発行する書戻要求は、そのアドレスが指定アドレス範囲内にあるデータについてのライト要求である。そのため、各書戻要求に対しては、ライト要求応答処理(図3)が行われる。
【0036】
このライト要求応答処理は、キャッシュメモリ12から掃き出されたブロックデータ(書戻要求で書き戻しが要求されているブロックデータ)を、ローカルメモリ14の特定の記憶領域(ブロックデータのアドレスから一意に定まる記憶領域)に記憶する処理である。また、ライト要求応答処理は、画像処理に再度使用される,ローカルメモリ14に記憶されていないブロックデータのみを、ローカルメモリ14に記憶する処理となっている。
【0037】
具体的には、ライト要求応答処理(図3)時には、まず、処理すべき書戻要求(以下、処理対象書戻要求と表記する)中の書込アドレスに基づき、書込LMアドレス及びLwを算出する処理(ステップS201)が行われる。
【0038】
このステップS201の処理で算出される書込LMアドレス、Lwは、書込アドレスと以下の関係を有する値である。
書込LMアドレス = 書込アドレス mod 16・1024 …(1)
Lw = INT(書込アドレス/4096) …(2)
【0039】
なお、(1)式における“16・1024”は、ローカルメモリ14のバイト単位の記憶容量である。また、(2)式における“4096”は、画像データ51の1行分のデータサイズ(単位はバイト)である。
【0040】
ステップS201の処理後には、“Lw=0”が成立しているか否かが判断される(ステップS202)。そして、“Lw=0”が成立していた場合(ステップS202;YES)には、処理対象書戻要求でメインメモリ50への書き戻しが要求されているデータ(以下、書込要求データと表記する)が破棄されて(図示せず)、このライト要求応答処理が終了される。
【0041】
すなわち、プロセッサ11が実行する画像処理の内容(図4)から明らかなように、第0行目のブロックデータは、画像処理に再度使用されることがないデータとなっている。そのため、キャッシュメモリ12から掃き出されたブロックデータが第0行目のブロックデータであった場合(“Lw=0”が成立していた場合:ステップS202;YES)には、当該ブロックデータが破棄される。
【0042】
一方、“Lw=0”が成立していなかった場合(ステップS202;NO)には、“cnt>80”が成立しているか否かが判断される(ステップS203)。そして、“cnt>80”が成立していた場合(ステップS203;YES)には、“書込アドレス>最大アドレス”が成立しているか否かが判断される(ステップS204)。
【0043】
なお、cntとは、画像処理開始後のリード要求応答処理の実行回数(後述する図2のステップS102で“1”インクリメントされる、初期値が“0”の値)のことである。また、最大アドレスとは、ローカルメモリ14上に記憶されているブロックデータのアドレスの最大値(後述するステップS207の処理で書込アドレスが設定されるレジスタの値)のことである。
【0044】
ステップS203及びS204の判断は、今回の書込要求データがローカルメモリ14上に既に記憶されているものであるか否かを判断するために行われているものである。
【0045】
“cnt>80”が成立していなかった場合(ステップS203;NO)には、書込要求データを、ローカルメモリ14の書込LMアドレスにて識別される記憶領域に記憶する処理(ステップS205)が行われる。なお、ローカルメモリ14の書込LMアドレスにて識別される記憶領域とは、ローカルメモリ14の,先頭アドレスが書込LMアドレスと一致する連続した256バイトの記憶領域のことである。
【0046】
このステップS205の処理後には、“書込アドレス>最大アドレス”が成立しているか否かが判断される(ステップS206)。そして、“書込アドレス>最大アドレス”が成立していた場合(ステップS206;YES)には、その時点における書込アドレスの値を最大アドレスとして記憶する処理(ステップS207)が行われてから、ライト要求応答処理が終了される。一方、“書込アドレス>最大アドレス”が成立していなかった場合(ステップS206;NO)には、即座に(ステップS207の処理が行われることなく)、ライト要求応答処理が終了される。
【0047】
“cnt>80 and 書込アドレス>最大アドレス”が成立していた場合(ステップS
203;YES、ステップS204;YES)には、ステップS205と同内容の処理がステップS208にて行われた後に、ステップS207以降の処理が行われる。また、“cnt>80 and 書込アドレス≦最大アドレス”が成立していた場合(ステップS20
3;YES、ステップS204;NO)には、書込要求データが破棄されて(図示せず)、ライト要求応答処理が終了される。
【0048】
次に、リード要求応答処理(図2)の内容を説明する。
【0049】
既に説明した事項から明らかなように、リード要求応答処理は、キャッシュメモリ12が発行する,画像データ51中の各ブロックデータについてのリード要求に対して行われる処理である。
【0050】
このリード要求応答処理時には、まず、キャッシュメモリ12からのリード要求(以下、処理対象リード要求と表記する)中の読出アドレスに基づき、読出LMアドレス及びLrを算出する処理(ステップS101)が行われる。
【0051】
このステップS101の処理で算出される読出LMアドレス及びLrは、読出アドレスと以下の関係を有する値である。
読出LMアドレス = 読出アドレス mod 16・1024 …(3)
Lr = INT(読出アドレス/4096) …(4)
【0052】
ステップS101の処理後には、cnt値に“1”が加算(ステップS102)されてから、“cnt>80”が成立しているか否かが判断される(ステップS103)。そして、“cnt>80”が成立していた場合(ステップS103;YES)には、“読出アドレス≦最大アドレス”が成立しているか否かが判断される(ステップS104)。
【0053】
“読出アドレス≦最大アドレス”が成立していた場合(ステップS104;YES)には、読出LMアドレスに基づき、ローカルメモリ14から読出要求データを読み出してキャッシュメモリ12に返送する処理(ステップS105)が行われる。より具体的には、ローカルメモリ14の、先頭アドレスが読出LMアドレスと一致する連続した256バイトの記憶領域上のデータを読み出して、読み出したデータを読出要求データとしてキャッシュメモリ12に返送する処理(ステップS105)が行われる。
【0054】
また、“cnt>80”が成立していなかった場合(ステップS103;NO)と、“読出アドレス≦最大アドレス”が成立していなかった場合(ステップS104;NO)とには、読出要求データをメインメモリ50から読み出してキャッシュメモリ12に返送する処理(ステップS106)が行われる。
【0055】
ここで、図6A〜図6Eを用いて、上記した、画像処理時におけるプロセッサシステム10の各部の動作を、さらに具体的に説明しておくことにする。なお、図6A〜図6Eに
おいて、網掛けを付してあるブロックデータがキャッシュメモリ12内に読み込まれているブロックデータである。[Bn-m]と表記してあるブロックデータは、キャッシュメモリ12内に最も最近読み込まれたブロックデータである。ハッチングを付してあるブロックデータは、新たなブロックデータの読み込みのためにキャッシュメモリ12から掃き出されたブロックデータ(書戻要求が発行されたブロックデータ)である。また、<<Bn-m>>と表記してあるブロックデータは、ローカルメモリ14からキャッシュメモリ12内に読み込まれたブロックデータである。
【0056】
既に説明したように、キャッシュメモリ12が書戻要求を初めて発行するのは、ブロックデータ"B4-12"の読み込み時である。そして、当該書戻要求は、ブロックデータ"B0-0"
の書き戻しを要求するものであり、ライト要求応答処理は、行番号が“0”のブロックデータについての書戻要求を受け取った場合、当該ブロックデータを破棄する処理となっている。従って、ブロックデータ"B4-12"の読み込み時に掃き出されるブロックデータ"B0-0は、図6Aに模式的に示したように、ローカルメモリ12上に記憶されることなく破棄されることになる。
【0057】
その後のブロックデータ"B0-13"〜"B4-13"の読み込み時には、キャッシュメモリ12から、ブロックデータ"B1-0"〜"B4-0"、"B0-0"が掃き出される。なお、画像データ51中の,最初の5行分の画像データに対する画像処理が完了するまでは、“cnt>80 and
読出アドレス≦最大アドレス”(図2参照)が成立する(TRUEとなる)ことはない。そのため、ブロックデータ"B4-15"までの各ブロックデータは、メインメモリ50から読
み出されることになる。
【0058】
ブロックデータ"B0-13"〜"B3-13"の読み込み時に掃き出されるブロックデータ"B1-0"〜"B4-0"は、いずれも、行番号が“0”ではないブロックデータである。そして、各ブロックデータの掃き出し時のcnt値は80以下であり、ブロックデータのローカルメモリ14への書込アドレス(書込LMアドレス)は、『書込LMアドレス = 書込アドレス mod 16・1024』により求められている。従って、ブロックデータ"B1-0"〜"B4-0"は
、図6Bに模式的に示したような形で、ローカルメモリ14上に記憶されることになる。
【0059】
また、ブロックデータB4-13"の読み込み時に掃き出されるブロックデータ"B0-1"の行番号は“0”である。従って、ブロックデータ"B0-1"は、ローカルメモリ14上に記憶されない(破棄される)ことになる。
【0060】
その後のブロックデータ"B0-14"〜"B4-14"の読み込み時(図6C)にも、キャッシュメモリ12から掃き出された、行番号が“0”ではないブロックデータ"B1-1"〜"B4-1"のみがローカルメモリ12上に記憶されることになる。また、ブロックデータ"B0-15"〜"B4-15"の読み込み時(図6D)にも、キャッシュメモリ12から掃き出された、行番号が“0”ではないブロックデータ"B1-2"〜"B4-2"のみがローカルメモリ14上に記憶されることになる。
【0061】
さて、ブロックデータ"B0-15"のキャッシュメモリ12内への読み込みが完了すると、
cnt値が、80となる。
【0062】
従って、その後の、ブロックデータ"B1-0"〜"B5-0"の読み込み時(図2参照)には、“読出アドレス≦最大アドレス”が成立しているか否かが判断されることになる。そして、ブロックデータ"B1-0"〜"B4-0"の読み込み時における最大アドレスは、ブロックデータ"B4-2"のアドレス(<ブロックデータ"B1-0"〜"B4-0"のアドレス)であるため、ブロックデータ"B1-0"〜"B4-0"は、図6Eに模式的に示したように、いずれも、ローカルメモリ14から読み出されることになる。
【0063】
また、ブロックデータ"B4-0"の読み込み(含む、ブロックデータ"B4-3"の掃き出し)が完了すると、最大アドレスは、ブロックデータ"B4-3"のアドレスとなる。このアドレスは、ブロックデータ"B5-0"のアドレスよりも小さなアドレスであるため、ブロックデータ"B5-0"は、メインメモリ50から読み出されることになる。
【0064】
以上の説明から明らかなように、本実施形態に係るプロセッサシステム10は、図7Aに模式的に示した如く、容量不足によりキャッシュメモリ12から掃き出された、画像処理に再度使用されるブロックデータ(図では、"B1-0")のキャッシュメモリ12内への再読込が、ローカルメモリ14から行われる構成を有している。
【0065】
そして、本プロセッサシステム10のキャッシュメモリ12内にローカルメモリ14から読み込まれる各ブロックデータは、ローカルメモリ12関連の構成・機能を備えないプロセッサシステム(従来システムと表記する)では、図7Bに模式的に示してあるように、メインメモリから読み込まれるものである。また、メインメモリからデータの読み込みよりもシステム内に設けられているメモリ(ローカルメモリ14)からのデータの読み込みの方が短時間・低消費電力で完了する。
【0066】
従って、プロセッサシステム10は、メインメモリ12から同じデータが2度読み出さないものであるが故に、画像処理が、従来システムよりも短時間・低消費電力で完了するシステムとなっていることになる。
【0067】
また、従来システムを、プロセッサシステム10に改良するのに必要なゲート数は、従来システムのキャッシュメモリの大容量化に必要とされるゲート数よりも少なくて済む。また、内部ローカルメモリはキャッシュメモリよりも低速なRAMを利用しても前述の効果が得られる。従って、プロセッサシステム10は、従来システムのキャッシュメモリを大容量化する場合よりも、安価に製造できるシステムとなっていることにもなる。
【0068】
《第2実施形態》
図8に、第2実施形態に係るプロセッサシステム20の構成及び使用形態を示す。
【0069】
以下、上記したプロセッサシステム10と異なっている部分を中心に、本プロセッサシステム20の構成及び動作を説明する。
【0070】
このプロセッサシステム20は、プロセッサシステム10内のキャッシュメモリ12、インターコネクト13を、それぞれ、キャッシュメモリ22、インターコネクト23に置換したシステム(LSI)である。
【0071】
キャッシュメモリ22は、キャッシュメモリ12から、書戻要求を発行する機能を取り除いたユニット(キャッシュメモリ)である。
【0072】
インターコネクト23は、画像処理用動作モード時に以下の機能を有するユニットとして動作するように、インターコネクト13を変形/改良したユニットである。
【0073】
(1)キャッシュメモリ22からのアクセス要求が、指定アドレス範囲外のアドレスのデータの読み出し/書き込みを要求するものであった場合には、そのアクセス要求で要求されている処理をそのまま実行。
(2)キャッシュメモリ22からのアクセス要求が、指定アドレス範囲内のアドレスのデータについてのリード要求であった場合には、そのリード要求に対して図9に示した手順のリード要求応答処理を実行。
【0074】
なお、この図9のリード要求応答処理中の“80”(ステップS303)も、図2のリード要求応答処理中の“80”(ステップS103)と同様に、キャッシュメモリ22のブロックサイズが256バイトである場合の値(キャッシュメモリ22のブロックサイズに応じて適切な値が変わる値)である。
【0075】
すなわち、本プロセッサシステム20は、キャッシュメモリ22が発行する各ブロックデータについてのリード要求に対して、以下の手順のリード要求処理が行われるシステムとなっている。
【0076】
リード要求応答処理時には、まず、キャッシュメモリ22からのリード要求(以下、処理対象リード要求と表記する)中の読出アドレスに基づき、LMアドレス及びLrを算出する処理(ステップS301)が行われる。
【0077】
このステップS301の処理で算出されるLMアドレス、Lwは、読出アドレスと以下の関係を有する値である。
LMアドレス = 読出アドレス mod 16・1024 …(5)
Lr = INT(読出アドレス/4096) …(6)
【0078】
ステップS301の処理後には、cnt値に“1”が加算(ステップS302)されてから、“cnt>80”が成立しているか否かが判断される(ステップS303)。そして、“cnt>80”が成立していなかった場合(ステップS303;NO)には、読出要求データをメインメモリ50から読み出してキャッシュメモリ22に返送する処理(ステップS306)が行われる。
【0079】
ステップS306の処理後には、“Lr=0”が成立しているか否かが判断される(ステップS307)。そして、“Lr=0”が成立していた場合(ステップS307:YES)には、リード要求応答処理が終了される。
【0080】
一方、“Lr=0”が成立していなかった場合(ステップS307:NO)には、メインメモリ50から読み出した読出要求データ(以下、読出データと表記する)を、ローカルメモリ14のLMアドレスにて識別される記憶領域に記憶する処理(ステップS308)が行われる。なお、ローカルメモリ14のLMアドレスにて識別される記憶領域とは、先頭アドレスがLMアドレスと一致する連続した256バイトの記憶領域のことである。
【0081】
その後、“LMアドレス>最大アドレス”が成立しているか否かが判断され(ステップS309)、LMアドレス>最大アドレス”が成立していなかった場合(ステップS309;NO)には、リード要求応答処理が終了される。また、“LMアドレス>最大アドレス”が成立していた場合(ステップS309;YES)には、その時点におけるLMアドレスの値を最大アドレスとして記憶する処理(ステップS310)が行われるから、リード要求処理が終了される。
【0082】
一方、“cnt>80”が成立していた場合(ステップS303;YES)には、“読出アドレス≦最大アドレス”が成立しているか否かが判断される(ステップS304)。そして、“読出アドレス≦最大アドレス”が成立していなかった場合(ステップS304;NO)には、ステップS306からの処理が行われる。また、“読出アドレス≦最大アドレス”が成立していた場合(ステップS304;YES)には、ローカルメモリ14のLMアドレスにて識別される記憶領域から読出要求データを読み出してキャッシュメモリ22に返送する処理(ステップS305)が行われる。
【0083】
要するに、本プロセッサシステム20は、80個目までの各ブロックデータは、メインメモリ50からキャッシュメモリ22に読み込まれるシステムであると共に、80個目までの第0行目以外の各ブロックデータは、ローカルメモリ14にも記憶されるシステムとなっている。
【0084】
そして、キャッシュメモリ22、ローカルメモリ14は、いずれも、16KBの記憶容量を有するものであるため、80個目のブロックデータ"B4-15"のキャッシュメモリへの
読み込みが完了した際、プロセッサシステム20のキャッシュメモリ22、ローカルメモリ14は、図10に示したような状態を取っていることになる。
【0085】
そして、この後、ブロックデータ"B1-0"〜"B4-0"がキャッシュメモリ22内に読み込まれることになるが、これらのブロックデータの読み込み時における最大アドレスは、ブロックデータ"B4-15"のアドレスとなっている。
【0086】
従って、ブロックデータ"B1-0"〜"B4-0"については、ステップS304で“YES”側への分岐が行われる結果として、図11Aに模式的に示してあるように、ローカルメモリ14から読み出されてキャッシュメモリ22に記憶されることになる。
【0087】
また、ブロックデータ"B5-0"については、ステップS304で“NO”側への分岐が行われる結果として、図11Bに模式的に示してあるように、メインメモリ50から読み出されてキャッシュメモリ22に記憶されることになる。また、メインメモリ50から読み出されたブロックデータ"B5-0"が、その後の画像処理に使用されないブロックデータ"B1-0"の代わりにローカルメモリ14に記憶されることにもなる。
【0088】
以上の説明から明らかなように、このプロセッサシステム20も、図12に模式的に示した如く、容量不足によりキャッシュメモリ12から掃き出された、画像処理に再度使用されるブロックデータ(図では、"B1-0")のキャッシュメモリ12内への再読込が、ローカルメモリ14から行われる構成を有している。
【0089】
従って、本実施形態に係るプロセッサシステム20も、上記したプロセッサシステム10と同様に、従来システムよりも画像処理が短時間で完了する、従来システムのキャッシュメモリを大容量化する場合よりも、安価に製造できるシステムとなっていると言うことが出来る。
【0090】
《第3実施形態》
図13に、第3実施形態に係るプロセッサシステム30の構成及び使用形態を示す。
【0091】
図示してあるように、第3実施形態に係るプロセッサシステム30は、メインメモリ50と接続されて使用されるLSIであり、プロセッサ31、キャッシュメモリ32、インターコネクト33及びローカルメモリ34を備えている。
【0092】
メインメモリ50は、横方向のピクセル数が640個、縦方向のピクセル数が任意数(図では、480個)の画像データ52(イメージセンサによる撮像結果等)が書き込まれるメモリである。
【0093】
プロセッサ31は、図示せぬ不揮発性記憶装置〔本実施形態では、プロセッサシステム30と接続されるROM〕上の画像処理プログラムや他のプログラムに従って各種処理を行うユニットである。
【0094】
このプロセッサ31が実行する画像処理プログラムは、プロセッサ11が実行する画像
処理プログラムと本質的には同じものである。ただし、プロセッサ31が実行する画像処理プログラムは、図14に模式的に示したような内容/手順の画像処理をプロセッサ31に実行させるものとなっている。すなわち、画像処理プログラムは、画像データ52中の各5×7個のピクセルデータを特定位置に関するピクセルデータのアドレスの昇順に処理していく画像処理をプロセッサ31に実行させるものとなっている。
【0095】
ローカルメモリ34は、3840(=6×640)バイトの記憶容量を有するRAMである。
【0096】
キャッシュメモリ32は、3840バイトの記憶容量を有するキャッシュメモリである。このキャッシュメモリ32は、上記したキャッシュメモリ12と、記憶容量及びブロックサイズ(本実施形態では、64バイト)のみが異なるものとなっている。
【0097】
インターコネクト33は、インターコネクト13を、リード要求応答処理、ライト要求応答処理として、それぞれ、図15、図16に示した手順の処理を行うように改良したユニットである。
【0098】
すなわち、インターコネクト33が実行するリード要求応答処理、ライト要求応答処理は、それぞれ、インターコネクト13が実行するリード要求応答処理(図2)、ライトド要求応答処理(図3)と本質的には同内容の処理となっている。
【0099】
ただし、インターコネクト33が実行するリード要求応答処理は、ステップS101に相当するステップS401の処理時に、『読出アドレス mod 3840』、『INT(読
出アドレス/640)』が、それぞれ、書込アドレス、Lwとして算出されるもの(図示略)となっている。
【0100】
さらに、インターコネクト33が実行するリード要求応答処理は、ステップS103に相当するステップS403の処理(判断)時に、“cnt>80”ではなく、“cnt>70”〔70=7×640/64〕が成立しているか否かが判断される処理となっている。
【0101】
また、インターコネクト33が実行するライト要求応答処理(図15)は、ステップS201に相当するステップS501の処理時に、『書込アドレス mod 3840』、『I
NT(書込アドレス/640)』がそれぞれ、書込アドレス、Lwとして算出されるもの(図示略)となっている。さらに、インターコネクト33が実行するライト要求応答処理は、ステップS203に相当するステップS503の処理(判断)時に、“cnt>80”ではなく、“cnt>70”が成立しているか否かが判断される処理となっている。
【0102】
詳細説明は省略するが、このプロセッサシステム30でも、容量不足によりキャッシュメモリ32から掃き出された、画像処理に再度使用されるブロックデータのキャッシュメモリ32内への再読込がローカルメモリ34から行われることになる。
【0103】
従って、本プロセッサシステム30も、従来システム(実行する画像処理の内容、画像データ52のサイズ等が等しいもの)よりも画像処理が短時間で完了する、従来システムのキャッシュメモリを大容量化する場合よりも、安価に製造できるシステムとなっていることになる。
【符号の説明】
【0104】
10、20、30 プロセッサシステム
11,31 プロセッサ
12,22,32 キャッシュメモリ
13,23,33 インターコネクト
14,34 ローカルメモリ
50 メインメモリ
51、52 画像データ

【特許請求の範囲】
【請求項1】
メモリと接続されるプロセッサシステムにおいて、
前記メモリ上の画像データに対して所定内容の画像処理を行うためのプロセッサと、
前記プロセッサと接続された,所定サイズのデータを記憶するための複数のブロックを有するキャッシュメモリと、
ローカルメモリと、
前記メモリへのインタフェース回路としての機能を有する,前記ローカルメモリ及び前記キャッシュメモリに接続されたインターコネクトと、
を備え、
前記キャッシュメモリは、
データを記憶しているブロックに新たなデータを記憶する前に、そのブロック上のデータ、当該データのアドレスを、それぞれ、掃出データ、掃出アドレスとして前記インターコネクトに通知する機能
を有し、
前記インターコネクトは、
前記キャッシュメモリから掃出データ及び掃出アドレスが通知される度に、通知された掃出アドレスに基づき、通知された掃出データが、前記画像処理により再度参照されるデータであるか否かを判別し、そうであると判別した場合には、その掃出データを、当該掃出アドレスから所定のアルゴリズムにて求めたアドレスのデータとして前記ローカルメモリに格納する機能、及び、
前記メモリに記憶されている読出対象データのアドレスである読出アドレスが前記キャッシュメモリから通知される度に、その読出アドレスに基づき、読出対象データが前記ローカルメモリに格納されているか否かを判別し、読出対象データが前記ローカルメモリに格納されていると判別した場合には、読出アドレスから前記所定のアルゴリズムにて求めたアドレスのデータを前記ローカルメモリから読み出して前記キャッシュメモリに返送し、読出対象データが前記ローカルメモリに格納されていないと判別した場合には、読出アドレスのデータを前記メモリから読み出して前記キャッシュメモリに返送するデータ返送機能
を有する
ことを特徴とするプロセッサシステム。
【請求項2】
前記インターコネクトのデータ返送機能が、
掃出データが、前記画像処理により再度参照されるデータであると判別した場合にのみ、その掃出データを、前記ローカルメモリに格納する機能である
ことを特徴とする請求項1に記載のプロセッサシステム。
【請求項3】
メモリと接続されるプロセッサシステムにおいて、
前記メモリ上の画像データに対して所定内容の画像処理を行うためのプロセッサと、
前記プロセッサと接続された,所定サイズのデータを記憶するための複数のブロックを有するキャッシュメモリと、
ローカルメモリと、
前記メモリへのインタフェース回路としての機能を有する,前記ローカルメモリ及び前記キャッシュメモリに接続されたインターコネクトと、
を備え、
前記インターコネクトは、
前記メモリに記憶されている読出対象データのアドレスである読出アドレスが前記キャッシュメモリから通知される度に、その読出アドレスに基づき、読出対象データが前記ローカルメモリに格納されているか否かを判別する機能、
読出対象データが前記ローカルメモリに格納されていると判別した場合に、読出アドレ
スから所定のアルゴリズムにて求めたアドレスのデータを前記ローカルメモリから読み出して前記キャッシュメモリに返送する機能、及び、
読出対象データが前記ローカルメモリに格納されていないと判別した場合に、読出アドレスのデータを前記メモリから読み出して前記キャッシュメモリに返送すると共に、当該データが、前記画像処理により2度以上参照されるデータであった場合には、そのデータを、前記読出アドレスから前記所定のアルゴリズムにて求めたアドレスのデータとして前記ローカルメモリに格納するデータ返送機能
ことを特徴とするプロセッサシステム。
【請求項4】
前記インターコネクトのデータ返送機能が、
前記メモリから読み出したデータが前記画像処理により2度以上参照されるデータである場合にのみ、そのデータを、前記ローカルメモリに格納する機能である
ことを特徴とする請求項3に記載のプロセッサシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図6D】
image rotate

【図6E】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate