(57)【要約】【課題】低消費電力化と電源遮断からの高速復帰を実現する。【解決手段】実施形態に係わるプロセッサは、処理データを制御するコア１２−１、処理データのタグデータを揮発的に記憶するタグエリア１２−２、及び、タグデータを制御するタグコントローラ１２−４を備えるCMOS回路１２と、処理データをキャッシュデータとして不揮発的に記憶するキャッシュデータエリア１３−１及びタグデータを不揮発的に記憶するタグエリア１３−２を備える不揮発メモリ１３とを備える。タグコントローラ１２−４は、タグエリア１２−２，１３−２のうちの１つからタグデータを選択的に取得することにより、キャッシュデータエリア１３−１内に処理データが記憶されているか否かを判定する。【選択図】図１１
2015007896.tif 000002
【特許請求の範囲】
【請求項１】
処理データを制御するコアと、前記処理データのタグデータを揮発的に記憶する第一のタグエリアと、前記タグデータを制御するタグコントローラと、前記処理データをキャッシュデータとして不揮発的に記憶するキャッシュデータエリアと、前記タグデータを不揮発的に記憶する第二のタグエリアとを具備し、
前記タグコントローラは、前記第一及び第二のタグエリアのうちの１つから前記タグデータを選択的に取得することにより、前記キャッシュデータエリア内に前記処理データが記憶されているか否かを判定する
ことを特徴とするプロセッサ。
【請求項２】
前記タグコントローラは、前記タグデータを更新するとき、前記タグデータを前記第一及び第二のタグエリア内に記憶させ、前記処理データのヒット／ミス判定を行うとき、前記第一のタグエリア内の前記タグデータに基づいて前記キャッシュデータエリア内に前記処理データが記憶されているか否かを判定する
ことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記タグコントローラは、前記第一のタグエリア内の前記タグデータを更新するとき、前記第二のタグエリア内の前記タグデータも更新する
ことを特徴とする請求項２に記載のプロセッサ。
【請求項４】
請求項２又は３に記載のプロセッサにおいて、
前記プロセッサの処理待ちが一定期間継続したとき、前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が遮断され、
前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が再投入された後、前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーする
ことを特徴とするプロセッサ。
【請求項５】
前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が再投入された後、前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーし終えるまで、前記第二のタグエリアから前記タグデータを取得する
ことを特徴とする請求項４に記載のプロセッサ。
【請求項６】
前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーし終えた後、前記第一のタグエリアから前記タグデータを取得する
ことを特徴とする請求項５に記載のプロセッサ。
【請求項７】
前記キャッシュデータエリアの電源を監視する監視回路をさらに具備し、
前記タグコントローラは、前記監視回路の出力信号に基づき、前記第一及び第二のタグエリアのうちの１つから前記タグデータを選択的に取得し、
前記監視回路の電源は、前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が遮断された後も、遮断されない
ことを特徴とする請求項４乃至６のいずれか１項に記載のプロセッサ。
【請求項８】
前記タグコントローラは、前記第二のタグエリアから前記第一のタグエリアへの前記タグデータのコピーの状況を記憶するコピーアドレスレジスタを備える
ことを特徴とする請求項４乃至７のいずれか１項に記載のプロセッサ。
【請求項９】
前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーし終える前において、前記タグデータのコピーを中断したうえで前記第二のタグエリアから前記タグデータを取得し、
前記コピーアドレスレジスタは、前記第二のタグエリアから前記第一のタグエリアへのコピーが最後に完了した前記タグデータのアドレスを記憶する
ことを特徴とする請求項８に記載のプロセッサ。
【請求項１０】
前記タグコントローラは、前記第二のタグエリアから前記タグデータを取得した後、前記アドレスに基づき、前記第二のタグエリアから前記第一のタグエリアへの前記タグデータのコピーを再開する
ことを特徴とする請求項９に記載のプロセッサ。
【請求項１１】
前記コア、前記第一のタグエリア、及び、前記タグコントローラは、第１のチップ内に配置され、前記キャッシュデータエリア、及び、前記第二のタグエリアは、第２のチップ内に配置され、前記第１及び第２のチップは、積層される
ことを特徴とする請求項１乃至１０のいずれか１項に記載のプロセッサ。
【請求項１２】
前記キャッシュデータエリア、及び、前記第二のタグエリアは、MRAMを含む
ことを特徴とする請求項１乃至１１のいずれか１項に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、プロセッサに関する。
【背景技術】
【０００２】
単位面積当たりのメモリ容量がSRAMよりも大きいDRAMをキャッシュメモリ（Ｌ２キャッシュ）とすることにより、プロセッサの性能の向上を図る技術が知られている。この技術によれば、CMOSチップとDRAMチップが積層され、キャッシュデータのタグデータ（アドレス情報、履歴など）を記憶するタグデータがCMOSチップ内に記憶される。
【０００３】
しかし、近年のプロセッサは、処理待ちが一定期間継続したときに、電源を遮断することにより消費電力を削減する技術を備える。この場合、CMOSチップとDRAMチップの電源を完全に遮断すると、キャッシュデータ及びタグデータが消失すると共に、電源を再投入した後に、必要なデータを再ロードするための時間が長くなる。
【０００４】
そこで、プロセッサの処理待ちが一定期間継続したときであっても、CMOSチップ内のタグデータを記憶するエリアやDRAMチップの電源については遮断しない、というフローを採用し、キャッシュデータ及びタグデータを保護することも可能である。しかし、この場合には、消費電力が大きくなる問題が発生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２５０５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、電源遮断による低消費電力化を図っても、電源遮断からの復帰を高速に行うことができる技術を提案する。
【課題を解決するための手段】
【０００７】
実施形態によれば、プロセッサは、処理データを制御するコアと、前記処理データのタグデータを揮発的に記憶する第一のタグエリアと、前記タグデータを制御するタグコントローラと、前記処理データをキャッシュデータとして不揮発的に記憶するキャッシュデータエリアと、前記タグデータを不揮発的に記憶する第二のタグエリアとを備え、前記タグコントローラは、前記第一及び第二のタグエリアのうちの１つから前記タグデータを選択的に取得することにより、前記キャッシュデータエリア内に前記処理データが記憶されているか否かを判定する。
【図面の簡単な説明】
【０００８】
【図１】プロセッサの例を示す図。
【図２】プロセッサの例を示す図。
【図３】積層チップの例を示す図。
【図４】積層チップの例を示す図。
【図５】通常動作時のプロセッサを示す図。
【図６】通常動作時のプロセッサを示す図。
【図７】電源遮断時のプロセッサを示す図。
【図８】電源遮断時のプロセッサを示す図。
【図９】電源の再投入後のプロセッサを示す図。
【図１０】電源の再投入後のプロセッサを示す図。
【図１１】キャッシュシステムを示す図。
【図１２】タグコントローラ及びキャッシュロジックの詳細を示す図。
【図１３】タグフローコントローラの動作を示す図。
【図１４】タグフローコントローラの動作を示す図。
【図１５】タグフローコントローラの動作を示す図。
【図１６】タグフローコントローラの動作を示す図。
【図１７】タグフローコントローラの動作を示す図。
【図１８】タグフローコントローラの動作を示す図。
【図１９】監視回路の動作を示す図。
【図２０】キャッシュシステム内の各ブロックの動作を示す図。
【図２１】C-stateの例を示す図。
【図２２】C-stateの例を示す図。
【図２３】C-stateの例を示す図。
【図２４】C-stateの例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施例を説明する。
【００１０】
［概要］  
以下の実施例は、プロセッサのキャッシュシステムに関する。
【００１１】
例えば、プロセッサは、キャッシュデータ（処理データ）を制御するコア及びキャッシュデータのタグデータ（アドレス情報、履歴など）を揮発的に記憶するタグエリアを備えるCMOS回路と、キャッシュデータを記憶するキャッシュデータエリアを備えるキャッシュメモリとを備える。
【００１２】
CMOS回路は、演算処理などを行うロジック回路や、データを記憶するメモリ回路などを含む。キャッシュメモリは、データを記憶するメモリ回路を含む。
【００１３】
例えば、CMOS回路は、第１のチップ内に配置され、キャッシュメモリは、第２のチップ内に配置され、第１及び第２のチップは、互いに積層される。また、CMOS回路及びキャッシュメモリは、１つのチップ（半導体基板）上に混載されていてもよい。
【００１４】
両者を積層するときは、コストの面で有利となり、両者を１つの半導体基板上に混載するときは、動作速度の面で有利となる。いずれを採用するかは、コストと動作速度のバランスを考慮して決定する。
【００１５】
このようなプロセッサにおいて、まず、キャッシュメモリとして不揮発メモリ、例えば、磁気ランダムアクセスメモリ（MRAM）を採用する。この場合、キャッシュデータは、不揮発メモリ内に不揮発的に記憶されるため、例えば、プロセッサの処理待ちが一定期間継続したときに、低消費電力化のために不揮発メモリの電源を遮断しても、キャッシュデータが消失することはない。
【００１６】
しかし、キャッシュデータのタグデータは、CMOS回路内のタグエリア、例えば、SRAM、レジスタ、フリップフロップなど、に揮発的に記憶される。このため、例えば、プロセッサの処理待ちが一定期間継続したときに、低消費電力化のためにCMOS回路の電源を遮断すると、キャッシュデータのタグデータが消失してしまう。
【００１７】
そこで、以下の実施例では、不揮発メモリ内にも、キャッシュデータのタグデータを不揮発的に記憶するタグエリア（レプリカ）を設けることにより、CMOS回路の電源が遮断されても、キャッシュデータのタグデータが消失されないようにする。
【００１８】
また、以上のような構成を採用したことにより、CMOS回路内に、新たに、タグデータを制御するタグコントローラを設ける。タグコントローラは、プロセッサの状態に応じて、CMOS回路内のタグエリア及び不揮発メモリ内のタグエリアのうちの１つからタグデータを選択的に取得する。
【００１９】
即ち、CMOS回路内のタグコントローラは、これら２つのタグエリアの１つから取得するタグデータに基づいて、不揮発メモリ内のキャッシュデータエリア内にキャッシュデータが記憶されているか否かを判定する。
【００２０】
・  通常動作時  
CMOS回路内のタグコントローラは、タグデータを読み出す場合は、CMOS回路内のタグエリアからタグデータを読み出し、そのタグデータに基づいて、不揮発メモリ内のキャッシュデータエリア内にキャッシュデータが記憶されているか否かを判定する。
【００２１】
このように、タグデータを読み出す場合にCMOS回路内のタグエリアからタグデータを読み出すことにより、高速かつ低消費電力のデータ処理が可能になる。
【００２２】
また、CMOS回路内のタグコントローラは、CMOS回路内のタグエリア内のタグデータを更新するときは、不揮発メモリ内のタグエリア内のタグデータも更新する。これにより、CMOS回路及び不揮発メモリの電源が遮断されても、最新のタグデータを保護することが可能になる。
【００２３】
・  電源遮断時  
例えば、プロセッサの処理待ちが一定期間継続したとき、低消費電力化のため、CMOS回路内のコア、タグエリア及びタグコントローラの電源、並びに、不揮発メモリ内のキャッシュデータエリア及びタグエリアの電源が遮断される。また、これら電源が再投入された後、CMOS回路内のタグコントローラは、不揮発メモリからCMOS回路へ、タグデータをコピーする。
【００２４】
従来のプロセッサでは、電源遮断から復帰する際は、タグデータとキャッシュデータの両方をロードする必要がある。一方、本実施形態では、不揮発メモリからCMOS回路へタグデータのみを移動させることで復帰が可能なので、従来のような長時間のデータロードが不要になる。
【００２５】
また、CMOS回路内のコア、タグエリア及びタグコントローラの電源、並びに、不揮発メモリ内のキャッシュデータエリア及びタグエリアの電源が再投入された後にタグデータを読み出す場合、CMOS回路内のタグコントローラは、不揮発メモリからCMOS回路へタグデータの全てをコピーし終えるまでは、不揮発メモリ内のタグエリアからタグデータを取得する。
【００２６】
また、CMOS回路内のタグコントローラは、不揮発メモリからCMOS回路へタグデータの全てをコピーし終えた後は、CMOS回路内のタグエリアからタグデータを取得する。
【００２７】
このように、CMOS回路内のコア、タグエリア及びタグコントローラの電源、並びに、不揮発メモリ内のキャッシュデータエリア及びタグエリアの電源が再投入されてから、不揮発メモリからCMOS回路へのタグデータのコピーが完了するまでのタグデータの取得動作を、コピーの進行状況に応じて変化させることにより、プロセッサ内でのスムーズなデータ処理が可能になる。
【００２８】
尚、以上の動作を具体的にどのような回路を用いて行うかについては、以下の実施例で詳述する。
【００２９】
［実施例］  
図１及び図２は、実施例に係わるプロセッサを示している。
【００３０】
図１は、１つの半導体基板（チップ）１１内に、CMOS回路１２と不揮発メモリ１３とが混載される例である。また、図２は、CMOS回路１２が形成されるチップ１１Ａと不揮発メモリ１３が形成されるチップ１１Ｂとが積層される例である。
【００３１】
不揮発メモリ１３は、例えば、MRAMであり、キャッシュデータエリア１３−１、及び、タグエリア１３−２を備える。キャッシュデータエリア１３−１は、例えば、Ｌ２キャッシュとして機能し、キャッシュデータを不揮発的に記憶する。また、タグエリア（レプリカ）１３−２は、Ｌ２キャッシュ内のキャッシュデータのタグデータを不揮発的に記憶する。
【００３２】
CMOS回路１２は、コア１２−１、タグエリア１２−２、監視回路１２−３、及び、タグコントローラ１２−４を備える。コア１２−１、タグエリア１２−２、監視回路１２−３、及び、タグコントローラ１２−４の電源は、例えば、それぞれ独立に制御可能である。
【００３３】
コア１２−１は、演算器や、Ｌ１キャッシュ（例えば、SRAM）などを含む。また、コア１２−１は、データの演算を実行する。タグエリア１２−２は、例えば、SRAM、レジスタ、フリップフロップなどを備え、Ｌ２キャッシュ内のキャッシュデータのタグデータを揮発的に記憶する。
【００３４】
監視回路１２−３は、CMOS回路１２内のコア１２−１、タグエリア１２−２及びタグコントローラ１２−４の電源、並びに、不揮発メモリ１３内のキャッシュデータエリア１３−１及びタグエリア１３−２の電源を、それぞれ監視する。
【００３５】
従って、監視回路１２−３の電源は、コア１２−１、タグエリア１２−２，１３−２、タグコントローラ１２−４、及び、キャッシュデータエリア１３−１の電源が遮断された後も、遮断されることはない。
【００３６】
タグコントローラ１２−４は、監視回路１２−３の出力信号に基づき、CMOS回路１２内のタグエリア１２−２及び不揮発メモリ１３内のタグエリア１３−２のタグデータの読出しや書込みを制御する。
【００３７】
タグコントローラ１２−４の詳細については、後述する。
【００３８】
尚、図２において、チップ１１Ａ，１１Ｂを積層する例としては、図３に示すように、TSV (Through Silicon Via)１４を用いる例や、図４に示すように、マイクロバンプ１５によるフリップチップボンディングを用いる例などが考えられる。
【００３９】
図５乃至図１０は、プロセッサの状態に応じたタグデータの制御方法を示している。
【００４０】
タグデータは、コア１２−１が要求するデータ（処理データ）がＬ２キャッシュとしてのキャッシュデータエリア１３−１内に存在するか否かを判定するためのデータである。例えば、タグコントローラ１２−４は、タグデータを参照することにより、コア１２−１が要求するデータがキャッシュデータエリア１３−１内に存在するか否かを判定する。
【００４１】
コア１２−１が要求するデータがキャッシュデータエリア１３−１内に存在するという判定がなされたとき、それは、ヒット判定と呼ばれ、逆に、コア１２−１が要求するデータがキャッシュデータエリア１３−１内に存在しないという判定がなされたとき、それは、ミス判定と呼ばれる。
【００４２】
タグコントローラ１２−４がヒット判定を行ったとき、タグコントローラ１２−４は、キャッシュデータエリア１３−１から、コア１２−１が要求するデータを取得する。また、コア１２−１は、演算器などを用いてそのデータを処理する。
【００４３】
一方、タグコントローラ１２−４がミス判定を行ったとき、タグコントローラ１２−４は、メインメモリ（例えば、DRAM）から、コア１２−１が要求するデータを取得する。また、コア１２−１は、演算器などを用いてそのデータを処理する。
【００４４】
尚、コア１２−１で処理するデータ（処理データ）がメインメモリから取得されたときは、そのデータを、Ｌ２キャッシュとしてのキャッシュデータエリア１３−１内に記憶させることにより、その後、そのデータを取得する速度を速くする。
【００４５】
また、キャッシュデータエリア１３−１内に新たなデータを記憶させるとき、新たなデータのアドレスにより指定される、キャッシュデータエリア１３−１内のキャッシュライン内に記憶されていた古いデータを新たなデータに置き換え、かつ、CMOS回路１２内のタグエリア１２−２内のタグデータ及び不揮発メモリ１３内のタグエリア１３−２内のタグデータを更新する。
【００４６】
・  通常動作時  
図５及び図６に示すように、CMOS回路１２内のコア１２−１、タグエリア１２−２、監視回路１２−３、及び、タグコントローラ１２−４は、電源が供給された状態、即ち、アクティブ状態である。また、不揮発メモリ１３内のキャッシュデータエリア１３−１及びタグエリア１３−２も、アクティブ状態である。
【００４７】
CMOS回路１２内のタグコントローラ１２−４は、タグデータを読み出す場合は、CMOS回路１２内のタグエリア１２−２からタグデータを読み出す。また、タグコントローラ１２−４は、そのタグデータに基づいて、不揮発メモリ１３内のキャッシュデータエリア１３−１内に、必要とされるデータが記憶されているか否かを判定する。
【００４８】
また、CMOS回路１２内のタグコントローラ１２−４は、CMOS回路１２内のタグエリア１２−２内のタグデータを更新するとき、不揮発メモリ１３内のタグエリア１３−２内のタグデータも更新する。即ち、２つのタグエリア１２−２，１３−２内のタグデータは、同じ値となるように制御する。
【００４９】
・  電源遮断時  
図７及び図８に示すように、例えば、プロセッサの処理待ちが一定期間継続したとき、低消費電力化のため、CMOS回路１２内のコア１２−１、タグエリア１２−２、及び、タグコントローラ１２−４の電源、並びに、不揮発メモリ１３内のキャッシュデータエリア１３−１及びタグエリア１３−２の電源がそれぞれ遮断される。
【００５０】
ここで、電源が遮断された状態は、ノンアクティブ状態と呼ぶ。
【００５１】
但し、CMOS回路１２内の監視回路１２−３は、電源の再投入を監視するために、電源が供給された状態、即ち、アクティブ状態を保つ。  
この後、図９及び図１０に示すように、例えば、プロセッサの処理待ちが解除され、CMOS回路１２内のコア１２−１、タグエリア１２−２、及び、タグコントローラ１２−４の電源、並びに、不揮発メモリ１３内のキャッシュデータエリア１３−１及びタグエリア１３−２の電源が再投入されると、タグコントローラ１２−４は、不揮発メモリ１３からCMOS回路１２へ、タグデータのコピーを開始する。
【００５２】
また、タグコントローラ１２−４は、不揮発メモリ１３からCMOS回路１２へ、タグデータの全てをコピーし終えるまでは、不揮発メモリ１３内のタグエリア１３−２からタグデータを取得する。
【００５３】
この時、タグコントローラ１２−４は、タグデータのコピーを一時的に中断した後にタグデータを取得し、かつ、タグデータの取得が完了した後にタグデータのコピーを再開する。この動作は、例えば、タグコントローラ１２−４内に、タグデータのコピーの状況を記憶するコピーアドレスレジスタを設けることにより実現可能である。
【００５４】
このコピーアドレスレジスタについては、後述する。
【００５５】
一方、タグコントローラ１２−４は、不揮発メモリ１３からCMOS回路１２へ、タグデータの全てをコピーし終えた後は、CMOS回路１２内のタグエリア１２−２からタグデータを取得する。
【００５６】
尚、本実施例では、２つのタグエリア１２−２，１３−２内のタグデータを更新する必要があるため、例えば、CMOS回路１２内のタグエリア１２−２内のタグデータのみを更新する場合に比べて、タグデータの更新時の消費電力が増大する。
【００５７】
但し、タグデータの更新が行われるのは、ミス判定が行われたときのみである。また、キャッシュシステムにおいては、一般的に、ヒット判定がほとんどであり、ミス判定は稀である。このため、本実施例を採用することによるオーバーヘッド（消費電力の増大）は、プロセッサ全体の消費電力と比べると、非常に小さい。
【００５８】
図１１は、実施例に係わるキャッシュシステムを含む計算機システムを示している。
【００５９】
この計算機システムは、メインメモリ１０とプロセッサ（チップ）１１を含む。メインメモリ１０は、例えば、DRAMチップである。また、プロセッサ１１は、CMOS回路１２と不揮発メモリ１３が混載された混載チップである。
【００６０】
CMOS回路１２内のコア１２−１は、Ｌ１キャッシュ（例えば、SRAM）１６及び演算器１７を含む。即ち、本例のプロセッサ１１は、コア１２−１内に２つの演算器１７が配置されるマルチコアプロセッサである。但し、コアの数は、１つに限られず、複数であってもよい。コア内の演算器の数も、２つに限られず、１つ又は３つ以上であってもよい。
【００６１】
タグエリア１２−２、監視回路１２−３、及び、タグコントローラ１２−４については、既に説明したので、ここでの説明を省略する。
【００６２】
キャッシュロジック１２−５は、ヒット／ミス判定を行う。電源回路１２−６は、コア１２−１、タグエリア１２−２、監視回路１２−３、タグコントローラ１２−４、及び、キャッシュロジック１２−５に、電源電圧を供給する。
【００６３】
不揮発メモリ１３は、キャッシュデータエリア（Ｌ２キャッシュ）１３−１、タグエリア１３−２、及び、電源回路１３−３を含む。電源回路１３−３は、キャッシュデータエリア１３−１及びタグエリア１３−２に、電源電圧を供給する。
【００６４】
そして、コア１２−１、キャッシュロジック１２−５、キャッシュデータエリア１３−１、及び、メインメモリ１０は、データバスにより互いに接続される。また、コア１２−１、タグエリア１２−２，１３−２、タグコントローラ１２−４、キャッシュロジック１２−５、及び、メインメモリ１０は、アドレスバスにより互いに接続される。
【００６５】
監視回路１２−３、電源回路１２−６，１３−３、及び、タグコントローラ１２−４は、制御信号線により互いに接続される。
【００６６】
図１２は、タグコントローラとキャッシュロジックの詳細図である。
【００６７】
タグコントローラ１２−４は、タグフローコントローラ１８、状態判定回路１９、及び、コピーアドレスレジスタ２０を備える。
【００６８】
タグフローコントローラ１８は、タグエリア（揮発タグ）１２−２、タグエリア（不揮発タグ）１３−２、コピーアドレスレジスタ２０、ヒット／ミス判定回路２１、及び、メインメモリ１０間での、タグデータ（アドレス情報など）のやりとりを制御する。
【００６９】
例えば、ヒット／ミス判定時においては、タグフローコンロローラ１８は、プロセッサの状態に応じて、２つのタグエリア１２−２，１３−２のうちの１つからヒット／ミス判定回路２１へ、タグデータを転送する。また、タグデータのコピー時においては、タグフローコンロローラ１８は、タグエリア１３−２からタグエリア１２−２へ、タグデータを転送する。
【００７０】
状態判定回路１９は、監視回路１２−３の出力信号に基づいて、プロセッサの状態を判定する。例えば、状態判定回路１９は、プロセッサが、通常動作状態であるか、電源遮断状態であるか、及び、電源遮断状態からの復帰状態（タグデータのコピーを行っている状態）であるか、を判定する。状態判定回路１９は、例えば、レジスタメモリによって構成することができる。
【００７１】
コピーアドレスレジスタ２０は、タグエリア１３−２からタグエリア１２−２へのタグデータのコピーの状況を記憶する。
【００７２】
例えば、電源遮断状態からの復帰状態において、タグデータの全てのコピーが完了する前にコア１２−１から処理データの要求があったとき、タグフローコントローラ１８は、タグデータのコピーを中断したうえで、タグエリア（不揮発タグ）１３−２からヒット／ミス判定回路２１へ、タグデータを転送する。
【００７３】
また、タグフローコントローラ１８は、タグエリア１３−２からタグエリア１２−２へのコピーが最後に完了したタグデータのアドレスを、コピーアドレスレジスタ２０へ転送する。コピーアドレスレジスタ２０は、このアドレスを記憶する。
【００７４】
タグエリア（不揮発タグ）１３−２からヒット／ミス判定回路２１へ、タグデータが転送された後、タグフローコントローラ１８は、コピーアドレスレジスタ２０に記憶されたアドレスに基づき、タグエリア１３−２からタグエリア１２−２へのタグデータのコピーを再開する。
【００７５】
キャッシュロジック１２−５は、ヒット／ミス判定回路２１、メインメモリデータポート２２、及び、Ｌ２キャッシュデータポート２３を備える。
【００７６】
ヒット／ミス判定回路２１は、タグデータに基づいて、コア１２−１が要求するデータが、キャッシュデータエリア（Ｌ２キャッシュ）１３−１内に記憶されているか否か、を判定する。キャッシュデータエリア１３−１内にコア１２−１が要求するデータが存在するときは、そのデータは、キャッシュデータエリア１３−１から、Ｌ２キャッシュデータポート２３を介して、コア１２−１へ転送される。
【００７７】
また、キャッシュデータエリア１３−１内にコア１２−１が要求するデータが存在しないときは、そのデータは、メインメモリ１０から、メインメモリデータポート２２を介して、コア１２−１へ転送される。
【００７８】
以下、タグフローコントローラ１８の動作を説明する。
【００７９】
まず、図１３に示すように、タグデータの更新命令が発せられたときは、タグエリア（揮発タグ）１２−２内のタグデータと、タグエリア（不揮発タグ）１３−２内のタグデータをそれぞれ更新する。これにより、２つのタグエリア１２−２，１３−２内のタグデータは、同一となる。
【００８０】
次に、図１４に示すように、通常動作時において、タグデータの読み出し命令が発せられたときは、タグエリア（揮発タグ）１２−２からヒット／ミス判定回路２１へ、タグデータを転送する。これは、揮発タグからのデータ読み出しは、不揮発タグからのデータ読み出しに比べて、読み出し遅延と消費電力がそれぞれ小さいからである。
【００８１】
ヒット／ミス判定回路２１は、タグデータに基づいて、ヒット／ミス判定を行う。
【００８２】
ヒット時には、キャッシュデータエリア１３−１からコア１２−１へ、処理データが転送される。また、ミス時には、メインメモリ１０からコア１２−１へ、処理データが転送されると共に、次回からのアクセスを高速化するため、その処理データがキャッシュデータエリア１３−１内に記憶される。
【００８３】
次に、図１５に示すように、電源遮断状態からの復帰状態においては、タグエリア（不揮発タグ）１３−２からタグエリア（揮発タグ）１２−２へ、タグデータのコピーを行う。なぜなら、電源遮断時に揮発タグ内のタグデータが消去されるからである。
【００８４】
また、不揮発タグから揮発タグへのタグデータの全てのコピーを終えるまでは、不揮発タグ内のタグデータを使用する。不揮発タグ内のタグデータを使用することにより、電源が復帰した直後からコアによるデータ処理を再開できる。
【００８５】
但し、タグエリア（不揮発タグ）１３−２を用いた処理よりもタグエリア（揮発タグ）１２−２を用いた処理の方が、一般的に低消費電力かつ高速である。
【００８６】
そこで、図１５に示すように、タグデータの読み出し命令や更新命令が発せられていないときは、タグエリア（不揮発タグ）１３−２からタグエリア（揮発タグ）１２−２へのタグデータのコピーを継続する。
【００８７】
これに対し、図１６に示すように、タグデータの読み出し命令や更新命令が発せられたときは、不揮発タグから揮発タグへのコピーが最後に完了したタグデータのアドレスを、コピーアドレスレジスタ２０内に記憶させた後に、不揮発タグから揮発タグへのタグデータのコピーを、一次的に中断する。
【００８８】
そして、図１７に示すように、タグエリア（不揮発タグ）１３−２からヒット／ミス判定回路２１へ、タグデータを転送する。
【００８９】
また、図１８に示すように、タグデータの読み出し命令に応じてタグデータを読み出した後は、不揮発タグから揮発タグへのタグデータのコピーを再開する。この時、コピーアドレスレジスタ２０内に記憶されたアドレスの次のアドレスから、コピーを再開する。
【００９０】
次に、監視回路の動作を説明する。
【００９１】
監視回路は、プロセッサの動作状態をモニターし、処理待ちが予め決めた時間Ｔ以上になったときに、プロセッサを、順次、低消費電力の状態に移行させる。電力の低減は、例えば、電源電圧を低くしたり、チップ内の回路の一部の電源を遮断したりすることで、実現される。プロセッサ内での消費電力の状態は、例えば、C-Stateで表すことができる。
【００９２】
C0ステートは、プロセッサの消費電力が最も高い状態である。また、C1ステート、C2ステート…という具合に、状態が遷移していくに従って、プロセッサの消費電力が次第に小さくなる。
【００９３】
図１９は、監視回路の動作を示している。
【００９４】
まず、プロセッサに対するデータの処理命令が発せられると、CMOS回路と不揮発メモリの電源が立ち上がる。また、プロセッサのステートを示す値iを0に設定し、待機時間TをTiに設定する（ステップＳＴ１）。
【００９５】
次に、時間T待機する（ステップＳＴ２）。
【００９６】
この後、時間T以上、コアの動作が停止しているか否かを判断する（ステップＳＴ３）。もし、時間T以上、コアの動作が停止していないならば、ステップＳＴ２に戻り、再度、時間T待機する。もし、時間T以上、コアの動作が停止しているならば、ステートiがステートimaxよりも小さいか否かを判定する（ステップＳＴ４）。
【００９７】
ここで、ステートimaxは、最も低消費電力の状態であり、例えば、プロセッサの電源を完全に遮断する状態（監視回路以外の回路の電源を遮断する状態）である。
【００９８】
i≧imaxであるときは、プロセッサの電源を完全に遮断する（ステップＳＴ６）。
【００９９】
i＜imaxであるときは、i=i+1、T=Tiとし、プロセッサ内での消費電力の状態（C-state）を、一段階、下げる。即ち、プロセッサ内での消費電力の状態を、より低消費電力の状態へ移行させる（ステップＳＴ５）。
【０１００】
この後、ステップＳＴ２に戻る。
【０１０１】
以上のように、監視回路は、プロセッサに処理待ちが続いている間、段階的に、プロセッサを低消費電力の状態へ移行させる。
【０１０２】
図２０は、図１１のキャッシュシステム内の各ブロックの動作を示している。
【０１０３】
ここでは、プロセッサに対するデータの処理命令が発せられてから、消費電力が最も低いC-stateへ移行するまで、例えば、監視回路を除くキャッシュシステムの電源が完全に遮断されるまでの、各ブロックの動作を説明する。
【０１０４】
まず、プロセッサの電源が完全に遮断された状態から始める。この状態においても、監視回路１２−１は、アクティブ状態、即ち、電源の監視動作を継続している。
【０１０５】
この状態において、プロセッサに対するデータの処理命令が発せられると、プロセッサに電源が供給され、コア１２−１でのデータ処理が開始される。即ち、タグデータがタグエリア（不揮発タグ）１３−２から取得され、コア１２−１が要求するデータがＬ２キャッシュ内に存在するか否かが判定される。
【０１０６】
また、タグデータの取得が終わると、タグエリア（不揮発タグ）１３−２からタグエリア（揮発タグ）１２−２へのタグデータのコピーが開始される。
【０１０７】
タグデータのコピーが終了した後に、再び、プロセッサに対するデータの処理命令が発せられると、今度は、タグデータがタグエリア（揮発タグ）１２−２から取得され、コア１２−１が要求するデータがＬ２キャッシュ内に存在するか否かが判定される。
【０１０８】
また、タグエリア（不揮発タグ）１３−２内に記憶されたタグデータは、タグエリア（揮発タグ）１２−２内に記憶されたタグデータが更新されるときに更新される。
【０１０９】
そして、これらのデータ処理が終了すると、コア１２−１、タグエリア１２−２，１３−２、及び、キャッシュデータエリア１３−１は、待機状態となる。監視回路１２−３は、プロセッサの状態を監視し、一定時間Ｔ以上、動作を停止しているときは、C-stateを段階的に低下させる。即ち、プロセッサを、順次、消費電力が低い状態に移行させる。
【０１１０】
図２１乃至図２４は、C-stateの例を示している。
【０１１１】
図２１の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、コア及び監視回路に電源が供給される状態であり、C2ステートは、監視回路のみに電源が供給される状態である。
【０１１２】
即ち、C1ステートでは、不揮発メモリ（不揮発タグ及びキャッシュデータエリア）、キャッシュロジック、及び、揮発タグの電源が遮断され、C2ステートでは、監視回路以外の全てのブロックの電源が遮断される。
【０１１３】
図２２の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、コア、キャッシュロジック、揮発タグ、及び、監視回路に電源が供給される状態であり、C2ステートは、コア及び監視回路に電源が供給される状態であり、C3ステートは、監視回路のみに電源が供給される状態である。
【０１１４】
即ち、C1ステートでは、不揮発メモリ（不揮発タグ及びキャッシュデータエリア）の電源が遮断され、C2ステートでは、不揮発メモリ、キャッシュロジック、及び、揮発タグの電源が遮断され、C3ステートでは、監視回路以外の全てのブロックの電源が遮断される。
【０１１５】
図２３の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、キャッシュロジック、揮発タグ、不揮発メモリ（不揮発タグ及びキャッシュデータエリア）、及び、監視回路に電源が供給される状態であり、C2ステートは、監視回路のみに電源が供給される状態である。
【０１１６】
即ち、C1ステートでは、コアの電源が遮断され、C2ステートでは、監視回路以外の全てのブロックの電源が遮断される。
【０１１７】
図２４の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、キャッシュロジック、揮発タグ、不揮発メモリ（不揮発タグ及びキャッシュデータエリア）、及び、監視回路に電源が供給される状態であり、C2ステートは、監視回路及び不揮発メモリに電源が供給される状態であり、C3ステートは、監視回路のみに電源が供給される状態である。
【０１１８】
即ち、C1ステートでは、コアの電源が遮断され、C2ステートでは、コア、キャッシュロジック、及び、揮発タグの電源が遮断され、C3ステートでは、監視回路以外の全てのブロックの電源が遮断される。
【０１１９】
尚、高速復帰の効果は、C-stateの数が多いほど顕著になる。一方、低消費電力の効果は、C-stateの数が少ないほど顕著になる。
【０１２０】
例えば、図２２のC1ステートからの復帰は、図２１のC1ステートからの復帰よりも高速に行うことができる。これは、図２２のC1ステートにおける電源遮断領域が図２１のC1ステートにおける電源遮断領域よりも小さいからである。
【０１２１】
また、図２１のC1ステートの消費電力は、図２２のC1ステートの消費電力よりも小さい。これは、図２１のC1ステートにおける電源遮断領域が図２２のC1ステートにおける電源遮断領域よりも大きいからである。
【０１２２】
同様に、図２４のC2ステートからの復帰は、図２３のC2ステートからの復帰よりも高速に行うことができる。これは、図２４のC2ステートにおける電源遮断領域が図２３のC2ステートにおける電源遮断領域よりも小さいからである。
【０１２３】
また、図２３のC2ステートの消費電力は、図２４のC2ステートの消費電力よりも小さい。これは、図２３のC2ステートにおける電源遮断領域が図２４のC2ステートにおける電源遮断領域よりも大きいからである。
【０１２４】
図２２のC1ステート及び図２４のC2ステートの待機時間（図１９のTiに相当）を短くすれば、図２２及び図２４のC-stateにおいても、低消費電力の効果を図２１及び図２３のC-stateに近づけることができる。
【０１２５】
C-stateの数と各ステートでの待機時間は、プロセッサが実行する処理に応じて適切に設計することが望ましい。
【０１２６】
また、プロセッサ内の複数のブロックに関し、電源を遮断する順番は、適宜、変更することができる。図２１及び図２２のC-stateでは、不揮発メモリの電源を遮断した後に、コアの電源を遮断する。これに対し、図２３及び図２４のC-stateでは、コアの電源を遮断した後に、不揮発メモリの電源を遮断する。
【０１２７】
これらのうち、どちらが適しているかは、コアの復帰時間（オーバーヘッド）と不揮発メモリの復帰時間（オーバーヘッド）とに基づいて決めるのが望ましい。
【０１２８】
例えば、不揮発メモリの復帰時間がコアの復帰時間よりも短いときは、図２１及び図２２に示すように、復帰時間が短い不揮発メモリの電源を先に遮断するのが望ましい。これに対し、コアの復帰時間が不揮発メモリの復帰時間よりも短いときは、図２３及び図２４に示すように、復帰時間が短いコアの電源を先に遮断するのが望ましい。
【０１２９】
本実施例において、不揮発メモリは、キャッシュメモリとして使うため、高速動作が可能なMRAMなどの次世代メモリを採用するのが望ましい。
【０１３０】
［むすび］  
実施形態によれば、電源遮断による低消費電力化を図っても、電源遮断からの復帰を高速に行うことができる。
【０１３１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３２】
１０：  メインメモリ、  １１，１１Ａ，１１Ｂ：  チップ、  １２：  CMOS回路、  １３：  不揮発メモリ、  １２−１：  コア、  １２−２：  タグエリア（揮発タグ）、  １２−３：  監視回路、  １２−４：  タグコントローラ、  １２−５：  キャッシュロジック、  １２−６，１３−３：  電源回路、  １３−１：  キャッシュデータエリア、  １３−２：  タグエリア（不揮発タグ）、  １４：  ＴＳＶ、  １５：  マイクロバンプ、  １６：  Ｌ１キャッシュ、  １７：  演算器、  １８：  タグフローコントローラ、  １９：  状態判定回路、  ２０：  コピーアドレスレジスタ、  ２１：  ヒット／ミス判定回路、  ２２：  メインメモリデータポート、  ２３：  Ｌ２キャッシュデータポート。
【図１】
2015007896.tif 000003
【図２】
2015007896.tif 000004
【図３】
2015007896.tif 000005
【図４】
2015007896.tif 000006
【図５】
2015007896.tif 000007
【図６】
2015007896.tif 000008
【図７】
2015007896.tif 000009
【図８】
2015007896.tif 000010
【図９】
2015007896.tif 000011
【図１０】
2015007896.tif 000012
【図１１】
2015007896.tif 000013
【図１２】
2015007896.tif 000014
【図１３】
2015007896.tif 000015
【図１４】
2015007896.tif 000016
【図１５】
2015007896.tif 000017
【図１６】
2015007896.tif 000018
【図１７】
2015007896.tif 000019
【図１８】
2015007896.tif 000020
【図１９】
2015007896.tif 000021
【図２０】
2015007896.tif 000022
【図２１】
2015007896.tif 000023
【図２２】
2015007896.tif 000024
【図２３】
2015007896.tif 000025
【図２４】
2015007896.tif 000026