JP2009199384A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2009199384A JP2009199384A JP2008040883A JP2008040883A JP2009199384A JP 2009199384 A JP2009199384 A JP 2009199384A JP 2008040883 A JP2008040883 A JP 2008040883A JP 2008040883 A JP2008040883 A JP 2008040883A JP 2009199384 A JP2009199384 A JP 2009199384A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- cache
- stored
- area
- 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.)
- Pending
Links
- 230000006870 function Effects 0.000 claims abstract description 10
- 238000013500 data storage Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 238000003672 processing method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
【課題】処理の高速化を図ることができるデータ処理装置を提供すること。
【解決手段】演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備え、上記レジスタキャッシュは、レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを記憶する機能を有すると共に、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する機能を有する。
【選択図】図1
【解決手段】演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備え、上記レジスタキャッシュは、レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを記憶する機能を有すると共に、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する機能を有する。
【選択図】図1
Description
本発明は、データ処理装置にかかり、特に、マイクロプロセッサに搭載されたレジスタに入出力されるデータを処理するデータ処理装置に関する。
プロセッサは、データを保持するレジスタを備えており、当該マイクロプロセッサの実行時の性能を向上させるためには、レジスタの容量を増大することが有効である。ところが、プロセッサが複数のタスクを切り替えながら実行するマルチタスク環境下では、レジスタの状態をキャッシュメモリに記録するために要する時間が相対的に長くなる傾向にある。また、近年では、1つのCPUダイに複数のCPUコアを搭載するマルチコアプロセッサが増加している。しかしながら、このような場合には、コアを跨いだコンテキスト切り替えが発生した場合、レジスタに比べて低速なキャッシュメモリや外部メモリを経由して転送が行われるため、効率向上の阻害要因となっている。
これに対し、特許文献1では、上記アクセス時間に低減を図るべく、プロセッサにメモリよりも高速アクセス可能なメモリであるレジスタ退避用スタックを備えている。これにより、レジスタの内容の退避と復帰を高速に行っている。
一方で、タイムシェアリングシステムにおいては、特定タスクによるプロセッサ利用の独占(スタベーション)を避けるため、優先順位が高いタスクが存在している状況で、優先順位の低いタスクに対してプロセッサの割り当て時間(タイムクォンタム)を意図的に割り当てることがある(エージング)。ところが、上述したスタックメモリを用いた先入れ後出し(FILO/スタック)のコンテキスト切り替えでは、エージングを行うことができないため、選択的にコンテキスト切り替えを行うことができない。従って、結果として、処理の高速化を図ることができない、という問題があった。そして、このことは、マルチコアプロセッサにおいて、コアを跨いだコンテキスト切り替えが発生した場合には、処理の遅延が顕著である。
このため、本発明の目的は、上述した課題である、処理の高速化を図ることができるデータ処理装置を提供する、ことにある。
そこで、本発明の一形態であるデータ処理装置は、
演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備え、
上記レジスタキャッシュは、レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを記憶する機能を有すると共に、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する機能を有する、という構成を採る。
演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備え、
上記レジスタキャッシュは、レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを記憶する機能を有すると共に、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する機能を有する、という構成を採る。
また、本発明の他の形態であるデータ処理方法は、
演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備えたデータ処理装置におけるデータ処理方法であって、
レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータをレジスタキャッシュに記憶し、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する、
という構成を採る。
演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備えたデータ処理装置におけるデータ処理方法であって、
レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータをレジスタキャッシュに記憶し、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する、
という構成を採る。
本発明は、以上のように構成されることにより、レジスタから出力されたデータを、キャッシュメモリよりも高速アクセス可能なレジスタキャッシュから所望のデータを復元させることができ、処理の高速化を図ることができる、という優れた効果を有する。
本発明は、演算器とレジスタとを備えたマイクロプロセッサの処理をより高速にするものであり、特に、演算器及びレジスタにより構成されたコアを複数備えたマルチコアプロセッサに好適である。
そして、本発明の一形態であるデータ処理装置は、
演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備え、
上記レジスタキャッシュは、レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを記憶する機能を有すると共に、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する機能を有する、
という構成を採っている。
演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりもレジスタに対して高速にアクセス可能なレジスタキャッシュと、演算器がキャッシュメモリに対してアクセスしていないときにレジスタキャッシュに記憶されたデータをキャッシュメモリに記憶するメモリバスアービタと、レジスタに対するデータの入出力を制御する制御部と、を備え、
上記レジスタキャッシュは、レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを記憶する機能を有すると共に、レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択してレジスタに復元する機能を有する、
という構成を採っている。
上記発明によると、まず、演算器にて処理されるレジスタに格納されたデータは、メモリバスアービタを介してキャッシュメモリに退避されるか、あるいは、当該キャッシュメモリよりも高速にアクセス可能なレジスタキャッシュに記憶される。なお、レジスタキャッシュに記憶されたデータは、メモリバスアービタによって演算器がキャッシュメモリに対してアクセスしていないときに当該キャッシュメモリに記憶される。
そして、上記レジスタキャッシュは、レジスタに格納されているデータの書き出し要求があると、当該レジスタから出力されたデータを記憶する。その後、レジスタキャッシュは、レジスタへのデータの復元要求があると、当該復元要求されたデータがレジスタキャッシュ内に記憶されているか否かを検索し、該当するデータがあると、かかるデータを選択してレジスタに復元する。
以上により、演算器は、レジスタから出力されたデータを、キャッシュメモリを介することなく、当該キャッシュメモリよりも高速アクセス可能なレジスタキャッシュから所望のデータを復元させることができる。従って、処理の高速化を図ることができる。特に、演算器とレジスタとによって構成されるコアを複数装備したマルチコアプロセッサに適用することで、コア間を跨ぐデータの移動がレジスタキャッシュを介して実行されるため、処理のさらなる高速化を実現できる。
そして、具体的には、上記レジスタキャッシュは、レジスタから出力されたデータを記憶するキャッシュ領域と、当該各キャッシュ領域にそれぞれ対応するタグ領域と、を有しており、書き出し要求時に、レジスタから出力されたデータをキャッシュ領域に記憶すると共に、当該キャッシュ領域に対応するタグ領域に当該データを特定するデータ特定情報を記憶する機能と、復元要求時に、タグ領域に記憶されたデータ特定情報に基づいて当該復元要求されたデータが記憶されたキャッシュ領域を選択して、当該キャッシュ領域内のデータをレジスタに復元する機能を有する、という構成を採る。
また、上記レジスタキャッシュは、書き出し要求時に、指定された書き出し先アドレス情報をデータ特定情報としてタグ領域に記憶し、復元要求時に、指定された復元要求アドレス情報と一致する書き出し先アドレス情報が記憶されたタグ領域に対応するキャッシュ領域を選択して当該キャッシュ領域内のデータをレジスタに復元する、という構成を採る。
さらに、上記レジスタキャッシュは、書き出し要求時に、レジスタから出力されたデータを記憶したキャッシュ領域に対応するタグ領域にデータ記憶フラグを記憶し、復元要求時に、データ記憶フラグが設定されているタグ領域に記憶されたデータ特定情報に基づいて当該復元要求されたデータが記憶されたキャッシュ領域を選択する、という構成を採る。そして、上記タグ領域は、例えば、リングバッファである。
このように、レジスタキャッシュ内に記憶するデータを、当該データを特定するデータ特定情報を格納するタグを用いて管理することで、スタックメモリ方式とは異なり、任意のデータを選択して復元することが容易となる。
さらに、具体的には、上記レジスタキャッシュは、レジスタから出力されるデータを次に記憶するキャッシュ領域に対応するタグ領域を指定する出力先ポインタと、復元要求時に当該復元要求されたデータに対応するデータ特定情報が記憶されているか否かを検索する対象となるタグ領域を指定する検索対象ポインタと、を有し、復元要求時に、各タグ領域上を検索対象ポインタを走査させて、当該各タグ領域内に復元要求されたデータに対応するデータ特定情報が記憶されているか否かを検索する。
そして、上記レジスタキャッシュは、復元要求時に、出力先ポインタが指定する次の前記タグ領域から検索対象ポインタを走査して、各タグ領域内に復元要求されたデータに対応するデータ特定情報が記憶されているか否かを検索する。あるいは、レジスタキャッシュは、タグ領域のうちデータ特定情報が最も早く記憶されたタグ領域を指定するデータ記憶ポインタを有しており、復元要求時に、データ記憶ポインタが指定するタグ領域から検索対象ポインタを走査して、各タグ領域内に復元要求されたデータに対応するデータ特定情報が記憶されているか否かを検索する、という構成を採る。
このとき、上記レジスタキャッシュは、出力先ポインタあるいはデータ記憶ポインタが指定するタグ領域を追い越すまで検索対象ポインタを走査して、各タグ領域内に復元要求されたデータに対応するデータ特定情報が記憶されているか否かを検索する、という構成を採る。このようにすることで、データの検索をさらに高速に実現できる。
以下、本発明の具体的な構成及び動作を、実施形態にて説明する。なお、実施形態では、本発明であるデータ処理装置が2つのコアを有するマルチコアプロセッサである場合を例示して説明するが、コアの数は2つに限定されず、それ以上であってもよく、あるいは、1つのコアのみのプロセッサに適用してもよい。また、実施形態では、レジスタに入出力されるデータの一例として、コンテキストを例示しているが、これに限定されず、いかなるデータであってもよい。
<実施形態1>
本発明の第1の実施形態を、図1乃至図14を参照して説明する。図1は、データ処理装置の構成を示すブロック図である。図2乃至図4は、レジスタキャッシュバンクの構成を示す概略図である。図5乃至図8は、データ処理装置の動作を示すフローチャートである。図9乃至図14は、レジスタキャッシュバンクの具体的な構成及び動作を示す図である。
本発明の第1の実施形態を、図1乃至図14を参照して説明する。図1は、データ処理装置の構成を示すブロック図である。図2乃至図4は、レジスタキャッシュバンクの構成を示す概略図である。図5乃至図8は、データ処理装置の動作を示すフローチャートである。図9乃至図14は、レジスタキャッシュバンクの具体的な構成及び動作を示す図である。
[構成]
図1に示すように、本実施形態におけるデータ処理装置は、コアAとコアBとを備えたマルチコアプロセッサである。具体的に、データ処理装置は、発信器100と、制御回路101と、演算器102及びレジスタ103を有するCPUコアAと、演算器104及びレジスタ105を有するCPUコアBと、レジスタキャッシュバンク106と、メモリバスアービタ107と、を備えている。なお、上記発信器100は、本装置の外部に設けられていてもよい。また、本装置の外部に、メモリバスアービタ107を介してキャッシュメモリ108が接続されている。
図1に示すように、本実施形態におけるデータ処理装置は、コアAとコアBとを備えたマルチコアプロセッサである。具体的に、データ処理装置は、発信器100と、制御回路101と、演算器102及びレジスタ103を有するCPUコアAと、演算器104及びレジスタ105を有するCPUコアBと、レジスタキャッシュバンク106と、メモリバスアービタ107と、を備えている。なお、上記発信器100は、本装置の外部に設けられていてもよい。また、本装置の外部に、メモリバスアービタ107を介してキャッシュメモリ108が接続されている。
そして、上記発信器101からの信号は、当該発信器101に設けられた出力端子1より出力され、制御回路101の入力端子2、CPUコアA,Bにそれぞれ内蔵されている各レジスタ103,105の各入力端子3,3’、レジスタキャッシュバンク106の入力端子8、メモリバスアービタ107の入力端子14、にそれぞれ供給される。これにより、上記各回路は、発信器100からのクロック信号に同期して動作する。
上記レジスタ103,105は、各レジスタが装備されているCPUコアA,Bの演算器102,104がそれぞれ演算を行うときに用いられるデータを保存する。
上記制御回路101(制御部)は、上記レジスタ103,104に対するデータの入出力を制御する。具体的には、レジスタ103,105のデータを、レジスタキャッシュバンク106またはキャッシュメモリ108のどちらに書き出すかを制御する書き出し先制御信号と、書き出し先アドレスを指定する書き出し先アドレス信号とを、出力端子5から出力する。すると、制御回路101の出力端子5より出力された書き出し先制御信号と、書き出し先アドレス信号とは、メモリバスアービタ107の入力端子13と、レジスタキャッシュバンク106の入力端子7と、にそれぞれ入力される。
また、各レジスタ103,105に格納されているデータは、各出力端子6,6’より出力され、メモリバスアービタ107の入力端子12と、レジスタキャッシュバンク106の入力端子10と、に入力される。
そして、上記レジスタキャッシュバンク106は、その入力端子7に、制御回路101からの書き出し先制御信号により、書き出し先がレジスタキャッシュバンクである旨の信号を入力されると、当該信号が入力されたタイミングで入力端子10に入力されているレジスタから出力されたデータを、レジスタキャッシュバンク106内に保存する。なお、レジスタ103,105とレジスタキャッシュバンク106とは、十分に高速なバス、つまり、キャッシュメモリ108にアクセスするよりも高速なバスで接続されている。
また、レジスタキャッシュバンク106は、それ固有のアルゴリズムにより入力されたデータを管理し、レジスタ103,105からのデータが記録しきれなくなると、キャッシュメモリ108に出力していない未出力のデータをキャッシュメモリ108に出力するまで待機する。なお、上述したレジスタキャッシュバンク106の動作は、予め組み込まれた回路によって実現されたり、あるいは、プログラムが組み込まれることによって実現されてもよい。
また、メモリバスアービタ107は、CPUコアA,Bとキャッシュメモリ108との帯域に余裕ができ次第、つまり、CPUコアA,Bがキャッシュメモリ108にアクセスしていないときに、レジスタキャッシュバンク106に記憶されている上記未出力データを、キャッシュメモリ108に出力する。
ここで、上記CPUコアA,Bは、現在の動作状況を保存・復元するために、全てのレジスタの内容をキャッシュメモリ108に出力する命令が実装される場合がある。この命令による処理に対して、上記レジスタキャッシュバンク106は、全てのレジスタ103,105の内容を一時的に記録する。そして、レジスタキャッシュバンク106は、記録した全てのレジスタ103,105からのデータを、制御回路101あるいはレジスタ103,105がメモリバスアービタ107にデータを出力していない間に、キャッシュメモリ108に出力する。
また、上述したように、メモリバスアービタ107は、制御回路101あるいはレジスタ103,105からキャッシュメモリ108への入出力がある場合には、その動作を優先して実行する。一方で、それ以外の場合には、レジスタキャッシュバンク106に記憶されている未出力データを、キャッシュメモリ108に出力するよう作動する。
このようにして、レジスタキャッシュバンク106に記憶されたレジスタ103,105から出力されたデータは、制御回路101、レジスタ103,105の動作とは独立して、キャッシュメモリ108に出力される。
次に、上記レジスタキャッシュバンク106の構成について、図2乃至図4を参照して説明する。まず、図2に示すように、レジスタキャッシュバンク106は、レジスタから出力されたデータを保存する「レジスタキャッシュ」(0〜7)(キャッシュ領域)、各レジスタキャッシュに対応して用意され当該各レジスタキャッシュの有効/無効とキャッシュ先のアドレスを保持する「タグ」(0〜7)(タグ領域)、を有する。また、レジスタから出力されるデータを次に書き込むレジスタキャッシュに対応するタグをポイント(指定)する「カウンタ1」(出力先ポインタ)、キャッシュメモリ108またはメインメモリに書き出しが完了している最新のタグをポイントしている「カウンタ2」(書き出し完了ポインタ)、レジスタキャッシュバンク106からレジスタ103,105へ復元するデータを記憶しているレジスタキャッシュを検索するために走査するタグをポイントする「カウンタ3」(検索対象ポインタ)、を有する。ここで、上記タグは、リングバッファの形態を採っている。但し、タグは、必ずしもリングバッファ形態であることに限定されず、例えば、タグとレジスタキャッシュが関連付けられた構成であってもよく、さらには、必ずしもタグとレジスタキャッシュとを有していることにも限定されない。
そして、かかる構成のレジスタキャッシュバンク106は、以下のように作動するよう構成されている。ここで、上述したように、発信器100の出力端子1から出力されたクロックパルス信号に同期して、制御回路101の出力端子5からは、キャッシュメモリ108に書き出すデータの出力元を制御する信号が出力される。この出力端子5からの信号は、レジスタキャッシュバンク106の入力端子7とメモリバスアービタ107の入力端子13に入力されることで、キャッシュメモリ108に書き出されるデータの出力元が、レジスタ103,105かレジスタキャッシュバンク106かが決定される。つまり、レジスタ103,105から出力されるデータの書き出し先が、レジスタキャッシュバンク106であるか、キャッシュメモリ108であるか、を指定する書き出し要求が出力される。また、制御回路101の出力端子5から出力されているデータの書き出し先アドレス情報は、レジスタキャッシュバンク106の入力端子7とメモリバスアービタ107の入力端子13に入力され、その内容は、キャッシュメモリ108にデータを書き出す際に、書き出し先アドレス情報(データ特定情報)として利用される。
このように、制御回路101からレジスタキャッシュバンク106を書き出し先として指定する書き出し要求が出された場合には、レジスタキャッシュバンク106は、レジスタ103,105からのデータを所定のレジスタキャッシュに記憶すると共に、このレジスタキャッシュに対応するタグに、「書き出し先アドレス」とデータが記憶されている旨を表すフラグとなる「有効」を記憶する。このとき、具体的には、「カウンタ1」で指定されているタグに、上記「書き出し先アドレス」と「有効」を記憶し、当該タグに対応するレジスタキャッシュに、レジスタ103,105からのデータを記憶する。そして、「カウンタ1」を一つ先のタグに進める。
また、レジスタキャッシュバンク106は、レジスタキャッシュに記憶されているデータがいっぱいになると、上述したようにメモリバスアービタ107によって、レジスタキャッシュに記憶されているデータをキャッシュメモリ108に書き出す。そして、「カウンタ2」に、書き出しが完了したレジスタキャッシュに対応するタグを指定するよう設定する。
また、レジスタキャッシュバンク106は、制御回路101から、レジスタ103,105へのデータの復元要求があると、当該復元要求にかかるデータをレジスタキャッシュ106内から選択して、レジスタ103,105にロードして復元する機能を有する。具体的には、復元するデータを特定するアドレスとなる復元要求アドレスを受けると、「カウンタ3」を「カウンタ1」が指すタグの1つ先のタグを指定するよう設定し、このタグからタグ番号が増える順にタグを走査して、復元対象となるデータが格納されているレジスタキャッシュに対応するタグを検索する。なお、タグ番号7の次は、タグ番号0に戻って走査する。そして、各タグに対して、タグ内のフラグが「有効」であるか否かを調べ、「有効」であるタグ内に、復元要求アドレスと一致する書き出し先アドレスが存在するタグに対応するレジスタキャッシュに格納されたデータを選択する。そして、選択したデータを、レジスタ103,105に復元する。なお、「カウンタ3」にてタグを走査して検索する処理は、例えば、目的のデータが選択されるまで、あるいは、「カウンタ1」を指すタグを追い越すまで、順番にタグを走査して行われる。但し、上述した走査は、必ずしも上述したように「カウンタ1」の1つ先のタグから開始されることに限定されず、いかなるタグから行ってもよく、また、いかなる順番で検索を行ってもうよい。
[動作]
次に、上述したデータ処理装置の動作を、図2乃至図8を参照して説明する。図2乃至図4は、レジスタキャッシュバンク106の動作を説明する図であり、図5乃至図8は、各構成の動作を示すフローチャートである。
次に、上述したデータ処理装置の動作を、図2乃至図8を参照して説明する。図2乃至図4は、レジスタキャッシュバンク106の動作を説明する図であり、図5乃至図8は、各構成の動作を示すフローチャートである。
まず、図2は、レジスタキャッシュバンク106の初期状態を図示したものである。そして、上述したように、制御回路101からの書き出し要求があると、レジスタキャッシュバンク106のカウンタ1が指すタグが「無効」になっているレジスタキャッシュに(図6のステップS11でNo)、レジスタ103,105から出力されたデータを記憶する(図6のステップS12)。つまり、図2の例では、カウンタ1が指すタグ0に対応するレジスタキャッシュ0にデータを記憶し、そのタグのフラグを「有効」に更新する(図6のステップS13)。そして、その後、図3に示すように、カウンタ1を1つ先に進める(図6のステップS14)。一方、カウンタ1が指すタグのフラグが「有効」になっている場合には(図6のステップS11でYes)、レジスタキャッシュがいっぱいになっている可能性があるため、レジスタキャッシュの内容をキャッシュメモリ108に出力する(図6のステップS15)。
なお、上述したようにレジスタキャッシュバンク106からキャッシュメモリ108にデータを出力するときの動作は、例えば、図7のようになる。つまり、データがいっぱいになった場合には、カウンタ2が指すタグのフラグが「有効」であるかを調べ、「有効」であるタグに対応するレジスタキャッシュ内のデータを(図7のステップS21でYes)、キャッシュメモリ108に出力する(図7のステップS22)。そして、このレジスタキャッシュに対応するタグのフラグを「無効」に更新し(図7のステップS23)、図4に示すように、カウンタ2を1つ進める(図7のステップS24)。
また、上記レジスタキャッシュバンク106からキャッシュメモリ108へのデータの出力は、メモリバスアービタ107によって行われるが、このメモリバスアービタ107の動作を図5に示す。まず、上述した制御回路101からの指令により、レジスタ103,105からキャッシュメモリ108に書き出すデータがある場合には(図5のステップS1でYes)、当該レジスタ103,105からのデータをキャッシュメモリ108に出力する(図5のステップS2)。一方、レジスタ103,105からキャッシュメモリ108に書き出すデータがないときに(図5のステップS1でNo)、レジスタキャッシュバンク106からキャッシュメモリ108に出力するデータがある場合には(図5のステップS3でYes)、当該レジスタキャッシュバンク106からデータをキャッシュメモリ108に出力する(図5のステップS4)。
次に、制御回路101あるいはCPUコアA,Bから、データの復元要求があった場合について説明する。まず、レジスタキャッシュバンク106は、カウンタ3にカウンタ1の先のタグのデータをコピーする(図8のステップS31)。そして、カウンタ3が指すタグのフラグが「有効」であるか否かを調べ(図8のステップS32)、「有効」であるタグに対して(図8のステップS32でYes)、当該タグに記憶されている書き出し先アドレスと、復元要求にかかるデータを特定する復元要求アドレスとが一致するか否かを調べる(図8のステップS33)。このとき、一致しない場合には(図8のステップS33でNo)、カウンタ3を1つ進めて(図8のステップS34)、上述同様に、次のタグの内容を調べる。そして、アドレスが一致するタグがあると(図8のステップS33でYes)、そのタグに対応するレジスタキャッシュに記憶されているデータを、レジスタ103,105に出力して復元する(図8のステップS36)。一方、復元要求にかかるデータがレジスタキャッシュバンク106に存在しない場合には(図8のステップS32でNo)、キャッシュメモリ108あるいはメインメモリから復元要求にかかるデータを読み出して、レジスタ103,105に復元する(図8のステップS35)。
[動作の具体例]
次に、CPUコアA,Bで実行されるコンテキストが切り替わるときの動作を、図9乃至図14を参照して説明する。
次に、CPUコアA,Bで実行されるコンテキストが切り替わるときの動作を、図9乃至図14を参照して説明する。
まず、レジスタキャッシュバンク106の初期状態を図9に示す。この状態では、レジスタキャッシュは空であり、タグのフラグも全て「無効」となっている。
そして、今、CPUコアAまたはCPUコアBで実行されているコンテキストがWであり、コンテキストの切り替えが発生したとする。具体的に、コンテキストがWからXに変化したとき、コンテキストXのレジスタ103,105のデータは、出力端子6または6’からレジスタキャッシュバンク106の入力端子10とメモリバスアービタ107の入力端子12に入力される。ここで、制御回路101の出力端子5から、レジスタ103,105のデータ出力先がレジスタキャッシュバンク106である旨と、書き出し先アドレスとが、レジスタキャッシュバンク106の入力端子7とメモリバスアービタ107の入力端子13に出力されていることとする。すると、レジスタ103,105のデータは、レジスタキャッシュバンク106のカウンタ1が指し示すタグに対応するレジスタキャッシュにコピーされ、タグに書き出し先アドレスを記録してタグが「有効」であるフラグをセットする。これにより、図10に示すように、タグ0には、上記レジスタ103,105から出力されたデータの書き出し先アドレスと、当該タグ0が「有効」である旨のフラグが記憶され、また、カウンタ1が次のタグであるタグ1に進む。
その後、CPUコアA又はCPUコアBのコンテキストがXからさらにYに切り替わると、上述同様の処理が実行され、図11に示すように、タグ1に、「有効」のフラグと書き出し先アドレスが記憶される。そして、カウンタ1が次のタグであるタグ2に進む。さらに、CPUコアA又はCPUコアBのコンテキストがYからZに切り替わると、上述同様の処理が実行され、図12に示すように、タグ2に、「有効」のフラグと書き出し先アドレスが記憶される。そして、カウンタ1が次のタグであるタグ3に進む。このように、コンテキストが切り替わり、レジスタ103,105からデータの出力がある度に、上記動作を繰り返す。
その後、CPUコアA又はCPUコアBのコンテキストがコンテキストYに切り替わり、データの復元要求があると、まず、図13に示すように、カウンタ3にカウンタ1の次のタグのデータがコピーされる。その後、カウンタ3の指し示すタグの有効・無効をチェックし、「有効」であれば、当該タグに格納されている書き出し先アドレスが復元要求されたコンテキストYの復元要求アドレスと一致するかどうかチェックする。このとき、タグ内の書き出し先アドレスが復元要求されたコンテキストYの復元要求アドレスと一致しない場合には、図14に示すように、カウンタ3を1つ進めて、再度タグの有効・無効とアドレスのチェックを行う。そして、タグが有効でアドレスが一致しているタグが見つかると、当該タグに対応するレジスタキャッシュのデータを選択して、出力端子9からレジスタ103,105の入力端子4または4’にロードする。なお、上記タグの走査は、タグとアドレスが一致するか、カウンタ3がカウンタ1を追い越すまで行われる。そして、アドレスが一致するタグが見つからなかった場合には、レジスタキャッシュバンク106上に復元要求にかかるコンテキストがキャッシュされていないものとして、キャッシュメモリ108やメインメモリからレジスタにデータをロードする。
以上のように、本発明によると、演算器102,104は、レジスタ103,105から出力されたデータを、キャッシュメモリ108を介することなく、当該キャッシュメモリ108よりも高速アクセス可能なレジスタキャッシュバンク106から所望のデータを復元させることができる。従って、処理の高速化を図ることができる。特に、上述したようなCPUコアを複数装備したマルチコアプロセッサに適用することで、コア間を跨ぐデータの移動が、高速アクセス可能なレジスタキャッシュバンク106を介して実行されるため、処理のさらなる高速化を実現できる。さらに、レジスタキャッシュバンク106内で、レジスタキャッシュに格納するデータをタグを用いて管理することで、スタックメモリ方式とは異なり、任意のデータを選択して復元することが容易となる。
ここで、上述したレジスタキャッシュバンク106に、高速なメモリ、マルチポートRAM、非同期回路などを用いることで、より一層の高速化や低電力化を図ることができる。加えて、上記発信器100を外部に設置したり複数個設置したりすることでも、より一層の高速化や低電力化を図ることができる。
また、上記では、「カウンタ3」にて「カウンタ1」の次のタグを指定して、このタグから走査を開始する場合を例示したが、これに限定されない。例えば、現在「有効」となっているタグのうち、最も早く「有効」となったタグを記憶する「カウンタ4」(データ記憶ポインタ)をレジスタキャッシュバンク106に実装し、当該「カウンタ4」に「カウンタ3」を当てて、タグの走査を開始してもよい。例えば、「カウンタ4」は、カウンタ2の一つ先のタグを指定することで、現在記憶しているもののうち、最も早く「有効」となったタグを記憶することができる。そして、この場合には、「カウンタ3」が「カウンタ4」を追い越すまで検索が実行される。
本発明は、マルチコアプロセッサをはじめ、種々のプロセッサに利用することができ、産業上の利用可能性を有する。
100 発信器
101 制御回路
102,104 演算器
103,105 レジスタ
106 レジスタキャッシュバンク
107 メモリバスアービタ
108 キャッシュメモリ
A,B CPUコア
101 制御回路
102,104 演算器
103,105 レジスタ
106 レジスタキャッシュバンク
107 メモリバスアービタ
108 キャッシュメモリ
A,B CPUコア
Claims (12)
- 演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりも前記レジスタに対して高速にアクセス可能なレジスタキャッシュと、前記演算器が前記キャッシュメモリに対してアクセスしていないときに前記レジスタキャッシュに記憶されたデータを前記キャッシュメモリに記憶するメモリバスアービタと、前記レジスタに対するデータの入出力を制御する制御部と、を備え、
前記レジスタキャッシュは、前記レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを記憶する機能を有すると共に、前記レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択して前記レジスタに復元する機能を有する、
ことを特徴とするデータ処理装置。 - 前記レジスタキャッシュは、前記レジスタから出力されたデータを記憶するキャッシュ領域と、当該各キャッシュ領域にそれぞれ対応するタグ領域と、を有しており、
前記書き出し要求時に、前記レジスタから出力されたデータを前記キャッシュ領域に記憶すると共に、当該キャッシュ領域に対応する前記タグ領域に当該データを特定するデータ特定情報を記憶する機能と、
前記復元要求時に、前記タグ領域に記憶された前記データ特定情報に基づいて当該復元要求されたデータが記憶された前記キャッシュ領域を選択して、当該キャッシュ領域内のデータを前記レジスタに復元する機能を有する、
ことを特徴とする請求項1記載のデータ処理装置。 - 前記レジスタキャッシュは、前記書き出し要求時に、指定された書き出し先アドレス情報を前記データ特定情報として前記タグ領域に記憶し、前記復元要求時に、指定された復元要求アドレス情報と一致する前記書き出し先アドレス情報が記憶された前記タグ領域に対応する前記キャッシュ領域を選択して当該キャッシュ領域内のデータを前記レジスタに復元する、
ことを特徴とする請求項2記載のデータ処理装置。 - 前記レジスタキャッシュは、前記書き出し要求時に、前記レジスタから出力されたデータを記憶した前記キャッシュ領域に対応する前記タグ領域にデータ記憶フラグを記憶し、前記復元要求時に、前記データ記憶フラグが設定されている前記タグ領域に記憶された前記データ特定情報に基づいて当該復元要求されたデータが記憶された前記キャッシュ領域を選択する、
ことを特徴とする請求項2又は3記載のデータ処理装置。 - 前記タグ領域は、リングバッファである、
ことを特徴とする請求項2,3又は4記載のデータ処理装置。 - 前記レジスタキャッシュは、前記レジスタから出力されるデータを次に記憶する前記キャッシュ領域に対応する前記タグ領域を指定する出力先ポインタと、前記復元要求時に当該復元要求されたデータに対応する前記データ特定情報が記憶されているか否かを検索する対象となる前記タグ領域を指定する検索対象ポインタと、を有し、
前記復元要求時に、前記各タグ領域上を前記検索対象ポインタを走査させて、当該各タグ領域内に復元要求されたデータに対応する前記データ特定情報が記憶されているか否かを検索する、
ことを特徴とする請求項2,3,4又は5記載のデータ処理装置。 - 前記レジスタキャッシュは、前記復元要求時に、前記出力先ポインタが指定する次の前記タグ領域から前記検索対象ポインタを走査して、前記各タグ領域内に復元要求されたデータに対応する前記データ特定情報が記憶されているか否かを検索する、
ことを特徴とする請求項6記載のデータ処理装置。 - 前記レジスタキャッシュは、前記タグ領域のうち前記データ特定情報が最も早く記憶された前記タグ領域を指定するデータ記憶ポインタを有しており、前記復元要求時に、前記データ記憶ポインタが指定する前記タグ領域から前記検索対象ポインタを走査して、前記各タグ領域内に復元要求されたデータに対応する前記データ特定情報が記憶されているか否かを検索する、
ことを特徴とする請求項6記載のデータ処理装置。 - 前記レジスタキャッシュは、前記出力先ポインタあるいは前記データ記憶ポインタが指定する前記タグ領域を追い越すまで前記検索対象ポインタを走査して、前記各タグ領域内に復元要求されたデータに対応する前記データ特定情報が記憶されているか否かを検索する、
ことを特徴とする請求項7又は8記載のデータ処理装置。 - 前記演算器及び前記レジスタにより構成されたコアを複数備えた、
ことを請求項1,2,3,4,5,6,7,8又は9記載のデータ処理装置。 - 演算器と、当該演算器にて処理されるデータを格納するレジスタと、当該レジスタに格納されているデータの退避先となるキャッシュメモリよりも前記レジスタに対して高速にアクセス可能なレジスタキャッシュと、前記演算器が前記キャッシュメモリに対してアクセスしていないときに前記レジスタキャッシュに記憶されたデータを前記キャッシュメモリに記憶するメモリバスアービタと、前記レジスタに対するデータの入出力を制御する制御部と、を備えたデータ処理装置におけるデータ処理方法であって、
前記レジスタに格納されているデータの書き出し要求に応じて当該レジスタから出力されたデータを前記レジスタキャッシュに記憶し、前記レジスタへのデータの復元要求に応じてレジスタキャッシュ内に記憶されたデータのうち当該復元要求されたデータを選択して前記レジスタに復元する、
ことを特徴とするデータ処理方法。 - 前記書き出し要求時に、前記レジスタから出力されたデータを前記レジスタキャッシュ内に設けられたキャッシュ領域に記憶すると共に、当該キャッシュ領域に対応して前記レジスタキャッシュ内に設けられた前記タグ領域に当該データを特定するデータ特定情報を記憶し、
前記復元要求時に、前記タグ領域に記憶された前記データ特定情報に基づいて当該復元要求されたデータが記憶された前記キャッシュ領域を選択して、当該キャッシュ領域内のデータを前記レジスタに復元する、
ことを特徴とする請求項11記載のデータ処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008040883A JP2009199384A (ja) | 2008-02-22 | 2008-02-22 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008040883A JP2009199384A (ja) | 2008-02-22 | 2008-02-22 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009199384A true JP2009199384A (ja) | 2009-09-03 |
Family
ID=41142803
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008040883A Pending JP2009199384A (ja) | 2008-02-22 | 2008-02-22 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009199384A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013516006A (ja) * | 2009-12-29 | 2013-05-09 | エンパイア テクノロジー ディベロップメント エルエルシー | エネルギー効率のよいマルチコアプロセッサのための共用メモリ |
| JP2013532331A (ja) * | 2010-06-29 | 2013-08-15 | インテル・コーポレーション | 第1コア型と第2コア型を結合することにより電力性能効率を改善させる装置、方法及びシステム |
| CN105677580A (zh) * | 2015-12-30 | 2016-06-15 | 杭州华为数字技术有限公司 | 访问缓存的方法和装置 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08320825A (ja) * | 1995-05-25 | 1996-12-03 | Hitachi Ltd | データ処理装置 |
| JP2001209577A (ja) * | 1999-11-16 | 2001-08-03 | Matsushita Electric Ind Co Ltd | 情報記録再生装置 |
| JP2003330797A (ja) * | 2002-05-16 | 2003-11-21 | Sony Corp | 記憶装置、記録及び/又は再生装置、情報記憶システム、記憶方法、プログラム、記録媒体 |
| JP2005129168A (ja) * | 2003-10-24 | 2005-05-19 | Ricoh Co Ltd | 情報記録装置と情報記録方法とプログラム |
| JP2005284646A (ja) * | 2004-03-29 | 2005-10-13 | Toshiba Corp | マイクロプロセッサ |
| JP2006099335A (ja) * | 2004-09-29 | 2006-04-13 | Seiko Epson Corp | コンテキスト処理装置 |
| JP2006139495A (ja) * | 2004-11-11 | 2006-06-01 | Seiko Epson Corp | 演算処理装置 |
| JP2007213486A (ja) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | タイマ管理装置及びタイマ管理方法 |
-
2008
- 2008-02-22 JP JP2008040883A patent/JP2009199384A/ja active Pending
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08320825A (ja) * | 1995-05-25 | 1996-12-03 | Hitachi Ltd | データ処理装置 |
| JP2001209577A (ja) * | 1999-11-16 | 2001-08-03 | Matsushita Electric Ind Co Ltd | 情報記録再生装置 |
| JP2003330797A (ja) * | 2002-05-16 | 2003-11-21 | Sony Corp | 記憶装置、記録及び/又は再生装置、情報記憶システム、記憶方法、プログラム、記録媒体 |
| JP2005129168A (ja) * | 2003-10-24 | 2005-05-19 | Ricoh Co Ltd | 情報記録装置と情報記録方法とプログラム |
| JP2005284646A (ja) * | 2004-03-29 | 2005-10-13 | Toshiba Corp | マイクロプロセッサ |
| JP2006099335A (ja) * | 2004-09-29 | 2006-04-13 | Seiko Epson Corp | コンテキスト処理装置 |
| JP2006139495A (ja) * | 2004-11-11 | 2006-06-01 | Seiko Epson Corp | 演算処理装置 |
| JP2007213486A (ja) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | タイマ管理装置及びタイマ管理方法 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013516006A (ja) * | 2009-12-29 | 2013-05-09 | エンパイア テクノロジー ディベロップメント エルエルシー | エネルギー効率のよいマルチコアプロセッサのための共用メモリ |
| US9367462B2 (en) | 2009-12-29 | 2016-06-14 | Empire Technology Development Llc | Shared memories for energy efficient multi-core processors |
| JP2013532331A (ja) * | 2010-06-29 | 2013-08-15 | インテル・コーポレーション | 第1コア型と第2コア型を結合することにより電力性能効率を改善させる装置、方法及びシステム |
| CN105677580A (zh) * | 2015-12-30 | 2016-06-15 | 杭州华为数字技术有限公司 | 访问缓存的方法和装置 |
| CN105677580B (zh) * | 2015-12-30 | 2019-04-12 | 杭州华为数字技术有限公司 | 访问缓存的方法和装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8195845B2 (en) | Memory system having high data transfer efficiency and host controller | |
| KR100278328B1 (ko) | 캐시 미스 버퍼 | |
| US9043806B2 (en) | Information processing device and task switching method | |
| KR100955433B1 (ko) | 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법 | |
| US7953953B2 (en) | Method and apparatus for reducing page replacement time in system using demand paging technique | |
| KR102454695B1 (ko) | 캐시 장치, 캐시, 시스템, 데이터 처리 방법, 장치 및 매체 | |
| JP2002287959A (ja) | ロード・ストアキュー | |
| US10191846B2 (en) | Cache memory for particular data | |
| JP2009199384A (ja) | データ処理装置 | |
| CN103049324A (zh) | 一种基于优先级位图的AUTOSAR NvM读写任务的管理方法 | |
| JP2010061620A (ja) | Dma装置及びdma転送方法 | |
| US20240345774A1 (en) | Information processing system | |
| JP2006039968A (ja) | アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法 | |
| CN102385555A (zh) | 一种缓存系统和数据缓存的方法 | |
| EP3588319B1 (en) | Memory module | |
| CN119441114A (zh) | 一种信息同步方法及装置 | |
| JPH05143451A (ja) | データ処理装置 | |
| JP2007286990A (ja) | キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム | |
| JP2009032085A (ja) | データ処理システム | |
| US20080195805A1 (en) | Micro Controller Unit System Including Flash Memory and Method of Accessing the Flash Memory By the Micro Controller Unit | |
| JP2003177960A (ja) | 演算装置及び記憶装置 | |
| JPH04266140A (ja) | アドレス変換バッファ装置 | |
| CN120803967A (zh) | 地址管理的命令处理方法、装置、电子设备及存储介质 | |
| JP2001022581A (ja) | データ処理装置及びコンピュータ読み取り可能な記憶媒体 | |
| JP2010205088A (ja) | ベクトル処理装置、及びベクトル処理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100618 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100809 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100817 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101214 |