JP6092019B2 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP6092019B2
JP6092019B2 JP2013132879A JP2013132879A JP6092019B2 JP 6092019 B2 JP6092019 B2 JP 6092019B2 JP 2013132879 A JP2013132879 A JP 2013132879A JP 2013132879 A JP2013132879 A JP 2013132879A JP 6092019 B2 JP6092019 B2 JP 6092019B2
Authority
JP
Japan
Prior art keywords
tag
data
area
controller
cache
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
JP2013132879A
Other languages
English (en)
Other versions
JP2015007896A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013132879A priority Critical patent/JP6092019B2/ja
Priority to US14/208,132 priority patent/US10236062B2/en
Publication of JP2015007896A publication Critical patent/JP2015007896A/ja
Application granted granted Critical
Publication of JP6092019B2 publication Critical patent/JP6092019B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/0081Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a magnetic RAM [MRAM] element or ferromagnetic cell
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Description

実施形態は、プロセッサに関する。
単位面積当たりのメモリ容量がSRAMよりも大きいDRAMをキャッシュメモリ(L2キャッシュ)とすることにより、プロセッサの性能の向上を図る技術が知られている。この技術によれば、CMOSチップとDRAMチップが積層され、キャッシュデータのタグデータ(アドレス情報、履歴など)を記憶するタグデータがCMOSチップ内に記憶される。
しかし、近年のプロセッサは、処理待ちが一定期間継続したときに、電源を遮断することにより消費電力を削減する技術を備える。この場合、CMOSチップとDRAMチップの電源を完全に遮断すると、キャッシュデータ及びタグデータが消失すると共に、電源を再投入した後に、必要なデータを再ロードするための時間が長くなる。
そこで、プロセッサの処理待ちが一定期間継続したときであっても、CMOSチップ内のタグデータを記憶するエリアやDRAMチップの電源については遮断しない、というフローを採用し、キャッシュデータ及びタグデータを保護することも可能である。しかし、この場合には、消費電力が大きくなる問題が発生する。
特開2010−250511号公報
実施形態は、電源遮断による低消費電力化を図っても、電源遮断からの復帰を高速に行うことができる技術を提案する。
実施形態によれば、プロセッサは、処理データを制御するコアと、前記処理データのタグデータを揮発的に記憶する第一のタグエリアと、前記タグデータを制御するタグコントローラと、前記処理データをキャッシュデータとして不揮発的に記憶するキャッシュデータエリアと、前記タグデータを不揮発的に記憶する第二のタグエリアとを備え、前記タグコントローラは、前記第一及び第二のタグエリアのうちの1つから前記タグデータを選択的に取得することにより、前記キャッシュデータエリア内に前記処理データが記憶されているか否かを判定する。
プロセッサの例を示す図。 プロセッサの例を示す図。 積層チップの例を示す図。 積層チップの例を示す図。 通常動作時のプロセッサを示す図。 通常動作時のプロセッサを示す図。 電源遮断時のプロセッサを示す図。 電源遮断時のプロセッサを示す図。 電源の再投入後のプロセッサを示す図。 電源の再投入後のプロセッサを示す図。 キャッシュシステムを示す図。 タグコントローラ及びキャッシュロジックの詳細を示す図。 タグフローコントローラの動作を示す図。 タグフローコントローラの動作を示す図。 タグフローコントローラの動作を示す図。 タグフローコントローラの動作を示す図。 タグフローコントローラの動作を示す図。 タグフローコントローラの動作を示す図。 監視回路の動作を示す図。 キャッシュシステム内の各ブロックの動作を示す図。 C-stateの例を示す図。 C-stateの例を示す図。 C-stateの例を示す図。 C-stateの例を示す図。
以下、図面を参照しながら実施例を説明する。
[概要]
以下の実施例は、プロセッサのキャッシュシステムに関する。
例えば、プロセッサは、キャッシュデータ(処理データ)を制御するコア及びキャッシュデータのタグデータ(アドレス情報、履歴など)を揮発的に記憶するタグエリアを備えるCMOS回路と、キャッシュデータを記憶するキャッシュデータエリアを備えるキャッシュメモリとを備える。
CMOS回路は、演算処理などを行うロジック回路や、データを記憶するメモリ回路などを含む。キャッシュメモリは、データを記憶するメモリ回路を含む。
例えば、CMOS回路は、第1のチップ内に配置され、キャッシュメモリは、第2のチップ内に配置され、第1及び第2のチップは、互いに積層される。また、CMOS回路及びキャッシュメモリは、1つのチップ(半導体基板)上に混載されていてもよい。
両者を積層するときは、コストの面で有利となり、両者を1つの半導体基板上に混載するときは、動作速度の面で有利となる。いずれを採用するかは、コストと動作速度のバランスを考慮して決定する。
このようなプロセッサにおいて、まず、キャッシュメモリとして不揮発メモリ、例えば、磁気ランダムアクセスメモリ(MRAM)を採用する。この場合、キャッシュデータは、不揮発メモリ内に不揮発的に記憶されるため、例えば、プロセッサの処理待ちが一定期間継続したときに、低消費電力化のために不揮発メモリの電源を遮断しても、キャッシュデータが消失することはない。
しかし、キャッシュデータのタグデータは、CMOS回路内のタグエリア、例えば、SRAM、レジスタ、フリップフロップなど、に揮発的に記憶される。このため、例えば、プロセッサの処理待ちが一定期間継続したときに、低消費電力化のためにCMOS回路の電源を遮断すると、キャッシュデータのタグデータが消失してしまう。
そこで、以下の実施例では、不揮発メモリ内にも、キャッシュデータのタグデータを不揮発的に記憶するタグエリア(レプリカ)を設けることにより、CMOS回路の電源が遮断されても、キャッシュデータのタグデータが消失されないようにする。
また、以上のような構成を採用したことにより、CMOS回路内に、新たに、タグデータを制御するタグコントローラを設ける。タグコントローラは、プロセッサの状態に応じて、CMOS回路内のタグエリア及び不揮発メモリ内のタグエリアのうちの1つからタグデータを選択的に取得する。
即ち、CMOS回路内のタグコントローラは、これら2つのタグエリアの1つから取得するタグデータに基づいて、不揮発メモリ内のキャッシュデータエリア内にキャッシュデータが記憶されているか否かを判定する。
・ 通常動作時
CMOS回路内のタグコントローラは、タグデータを読み出す場合は、CMOS回路内のタグエリアからタグデータを読み出し、そのタグデータに基づいて、不揮発メモリ内のキャッシュデータエリア内にキャッシュデータが記憶されているか否かを判定する。
このように、タグデータを読み出す場合にCMOS回路内のタグエリアからタグデータを読み出すことにより、高速かつ低消費電力のデータ処理が可能になる。
また、CMOS回路内のタグコントローラは、CMOS回路内のタグエリア内のタグデータを更新するときは、不揮発メモリ内のタグエリア内のタグデータも更新する。これにより、CMOS回路及び不揮発メモリの電源が遮断されても、最新のタグデータを保護することが可能になる。
・ 電源遮断時
例えば、プロセッサの処理待ちが一定期間継続したとき、低消費電力化のため、CMOS回路内のコア、タグエリア及びタグコントローラの電源、並びに、不揮発メモリ内のキャッシュデータエリア及びタグエリアの電源が遮断される。また、これら電源が再投入された後、CMOS回路内のタグコントローラは、不揮発メモリからCMOS回路へ、タグデータをコピーする。
従来のプロセッサでは、電源遮断から復帰する際は、タグデータとキャッシュデータの両方をロードする必要がある。一方、本実施形態では、不揮発メモリからCMOS回路へタグデータのみを移動させることで復帰が可能なので、従来のような長時間のデータロードが不要になる。
また、CMOS回路内のコア、タグエリア及びタグコントローラの電源、並びに、不揮発メモリ内のキャッシュデータエリア及びタグエリアの電源が再投入された後にタグデータを読み出す場合、CMOS回路内のタグコントローラは、不揮発メモリからCMOS回路へタグデータの全てをコピーし終えるまでは、不揮発メモリ内のタグエリアからタグデータを取得する。
また、CMOS回路内のタグコントローラは、不揮発メモリからCMOS回路へタグデータの全てをコピーし終えた後は、CMOS回路内のタグエリアからタグデータを取得する。
このように、CMOS回路内のコア、タグエリア及びタグコントローラの電源、並びに、不揮発メモリ内のキャッシュデータエリア及びタグエリアの電源が再投入されてから、不揮発メモリからCMOS回路へのタグデータのコピーが完了するまでのタグデータの取得動作を、コピーの進行状況に応じて変化させることにより、プロセッサ内でのスムーズなデータ処理が可能になる。
尚、以上の動作を具体的にどのような回路を用いて行うかについては、以下の実施例で詳述する。
[実施例]
図1及び図2は、実施例に係わるプロセッサを示している。
図1は、1つの半導体基板(チップ)11内に、CMOS回路12と不揮発メモリ13とが混載される例である。また、図2は、CMOS回路12が形成されるチップ11Aと不揮発メモリ13が形成されるチップ11Bとが積層される例である。
不揮発メモリ13は、例えば、MRAMであり、キャッシュデータエリア13−1、及び、タグエリア13−2を備える。キャッシュデータエリア13−1は、例えば、L2キャッシュとして機能し、キャッシュデータを不揮発的に記憶する。また、タグエリア(レプリカ)13−2は、L2キャッシュ内のキャッシュデータのタグデータを不揮発的に記憶する。
CMOS回路12は、コア12−1、タグエリア12−2、監視回路12−3、及び、タグコントローラ12−4を備える。コア12−1、タグエリア12−2、監視回路12−3、及び、タグコントローラ12−4の電源は、例えば、それぞれ独立に制御可能である。
コア12−1は、演算器や、L1キャッシュ(例えば、SRAM)などを含む。また、コア12−1は、データの演算を実行する。タグエリア12−2は、例えば、SRAM、レジスタ、フリップフロップなどを備え、L2キャッシュ内のキャッシュデータのタグデータを揮発的に記憶する。
監視回路12−3は、CMOS回路12内のコア12−1、タグエリア12−2及びタグコントローラ12−4の電源、並びに、不揮発メモリ13内のキャッシュデータエリア13−1及びタグエリア13−2の電源を、それぞれ監視する。
従って、監視回路12−3の電源は、コア12−1、タグエリア12−2,13−2、タグコントローラ12−4、及び、キャッシュデータエリア13−1の電源が遮断された後も、遮断されることはない。
タグコントローラ12−4は、監視回路12−3の出力信号に基づき、CMOS回路12内のタグエリア12−2及び不揮発メモリ13内のタグエリア13−2のタグデータの読出しや書込みを制御する。
タグコントローラ12−4の詳細については、後述する。
尚、図2において、チップ11A,11Bを積層する例としては、図3に示すように、TSV (Through Silicon Via)14を用いる例や、図4に示すように、マイクロバンプ15によるフリップチップボンディングを用いる例などが考えられる。
図5乃至図10は、プロセッサの状態に応じたタグデータの制御方法を示している。
タグデータは、コア12−1が要求するデータ(処理データ)がL2キャッシュとしてのキャッシュデータエリア13−1内に存在するか否かを判定するためのデータである。例えば、タグコントローラ12−4は、タグデータを参照することにより、コア12−1が要求するデータがキャッシュデータエリア13−1内に存在するか否かを判定する。
コア12−1が要求するデータがキャッシュデータエリア13−1内に存在するという判定がなされたとき、それは、ヒット判定と呼ばれ、逆に、コア12−1が要求するデータがキャッシュデータエリア13−1内に存在しないという判定がなされたとき、それは、ミス判定と呼ばれる。
タグコントローラ12−4がヒット判定を行ったとき、タグコントローラ12−4は、キャッシュデータエリア13−1から、コア12−1が要求するデータを取得する。また、コア12−1は、演算器などを用いてそのデータを処理する。
一方、タグコントローラ12−4がミス判定を行ったとき、タグコントローラ12−4は、メインメモリ(例えば、DRAM)から、コア12−1が要求するデータを取得する。また、コア12−1は、演算器などを用いてそのデータを処理する。
尚、コア12−1で処理するデータ(処理データ)がメインメモリから取得されたときは、そのデータを、L2キャッシュとしてのキャッシュデータエリア13−1内に記憶させることにより、その後、そのデータを取得する速度を速くする。
また、キャッシュデータエリア13−1内に新たなデータを記憶させるとき、新たなデータのアドレスにより指定される、キャッシュデータエリア13−1内のキャッシュライン内に記憶されていた古いデータを新たなデータに置き換え、かつ、CMOS回路12内のタグエリア12−2内のタグデータ及び不揮発メモリ13内のタグエリア13−2内のタグデータを更新する。
・ 通常動作時
図5及び図6に示すように、CMOS回路12内のコア12−1、タグエリア12−2、監視回路12−3、及び、タグコントローラ12−4は、電源が供給された状態、即ち、アクティブ状態である。また、不揮発メモリ13内のキャッシュデータエリア13−1及びタグエリア13−2も、アクティブ状態である。
CMOS回路12内のタグコントローラ12−4は、タグデータを読み出す場合は、CMOS回路12内のタグエリア12−2からタグデータを読み出す。また、タグコントローラ12−4は、そのタグデータに基づいて、不揮発メモリ13内のキャッシュデータエリア13−1内に、必要とされるデータが記憶されているか否かを判定する。
また、CMOS回路12内のタグコントローラ12−4は、CMOS回路12内のタグエリア12−2内のタグデータを更新するとき、不揮発メモリ13内のタグエリア13−2内のタグデータも更新する。即ち、2つのタグエリア12−2,13−2内のタグデータは、同じ値となるように制御する。
・ 電源遮断時
図7及び図8に示すように、例えば、プロセッサの処理待ちが一定期間継続したとき、低消費電力化のため、CMOS回路12内のコア12−1、タグエリア12−2、及び、タグコントローラ12−4の電源、並びに、不揮発メモリ13内のキャッシュデータエリア13−1及びタグエリア13−2の電源がそれぞれ遮断される。
ここで、電源が遮断された状態は、ノンアクティブ状態と呼ぶ。
但し、CMOS回路12内の監視回路12−3は、電源の再投入を監視するために、電源が供給された状態、即ち、アクティブ状態を保つ。
この後、図9及び図10に示すように、例えば、プロセッサの処理待ちが解除され、CMOS回路12内のコア12−1、タグエリア12−2、及び、タグコントローラ12−4の電源、並びに、不揮発メモリ13内のキャッシュデータエリア13−1及びタグエリア13−2の電源が再投入されると、タグコントローラ12−4は、不揮発メモリ13からCMOS回路12へ、タグデータのコピーを開始する。
また、タグコントローラ12−4は、不揮発メモリ13からCMOS回路12へ、タグデータの全てをコピーし終えるまでは、不揮発メモリ13内のタグエリア13−2からタグデータを取得する。
この時、タグコントローラ12−4は、タグデータのコピーを一時的に中断した後にタグデータを取得し、かつ、タグデータの取得が完了した後にタグデータのコピーを再開する。この動作は、例えば、タグコントローラ12−4内に、タグデータのコピーの状況を記憶するコピーアドレスレジスタを設けることにより実現可能である。
このコピーアドレスレジスタについては、後述する。
一方、タグコントローラ12−4は、不揮発メモリ13からCMOS回路12へ、タグデータの全てをコピーし終えた後は、CMOS回路12内のタグエリア12−2からタグデータを取得する。
尚、本実施例では、2つのタグエリア12−2,13−2内のタグデータを更新する必要があるため、例えば、CMOS回路12内のタグエリア12−2内のタグデータのみを更新する場合に比べて、タグデータの更新時の消費電力が増大する。
但し、タグデータの更新が行われるのは、ミス判定が行われたときのみである。また、キャッシュシステムにおいては、一般的に、ヒット判定がほとんどであり、ミス判定は稀である。このため、本実施例を採用することによるオーバーヘッド(消費電力の増大)は、プロセッサ全体の消費電力と比べると、非常に小さい。
図11は、実施例に係わるキャッシュシステムを含む計算機システムを示している。
この計算機システムは、メインメモリ10とプロセッサ(チップ)11を含む。メインメモリ10は、例えば、DRAMチップである。また、プロセッサ11は、CMOS回路12と不揮発メモリ13が混載された混載チップである。
CMOS回路12内のコア12−1は、L1キャッシュ(例えば、SRAM)16及び演算器17を含む。即ち、本例のプロセッサ11は、コア12−1内に2つの演算器17が配置されるマルチコアプロセッサである。但し、コアの数は、1つに限られず、複数であってもよい。コア内の演算器の数も、2つに限られず、1つ又は3つ以上であってもよい。
タグエリア12−2、監視回路12−3、及び、タグコントローラ12−4については、既に説明したので、ここでの説明を省略する。
キャッシュロジック12−5は、ヒット/ミス判定を行う。電源回路12−6は、コア12−1、タグエリア12−2、監視回路12−3、タグコントローラ12−4、及び、キャッシュロジック12−5に、電源電圧を供給する。
不揮発メモリ13は、キャッシュデータエリア(L2キャッシュ)13−1、タグエリア13−2、及び、電源回路13−3を含む。電源回路13−3は、キャッシュデータエリア13−1及びタグエリア13−2に、電源電圧を供給する。
そして、コア12−1、キャッシュロジック12−5、キャッシュデータエリア13−1、及び、メインメモリ10は、データバスにより互いに接続される。また、コア12−1、タグエリア12−2,13−2、タグコントローラ12−4、キャッシュロジック12−5、及び、メインメモリ10は、アドレスバスにより互いに接続される。
監視回路12−3、電源回路12−6,13−3、及び、タグコントローラ12−4は、制御信号線により互いに接続される。
図12は、タグコントローラとキャッシュロジックの詳細図である。
タグコントローラ12−4は、タグフローコントローラ18、状態判定回路19、及び、コピーアドレスレジスタ20を備える。
タグフローコントローラ18は、タグエリア(揮発タグ)12−2、タグエリア(不揮発タグ)13−2、コピーアドレスレジスタ20、ヒット/ミス判定回路21、及び、メインメモリ10間での、タグデータ(アドレス情報など)のやりとりを制御する。
例えば、ヒット/ミス判定時においては、タグフローコンロローラ18は、プロセッサの状態に応じて、2つのタグエリア12−2,13−2のうちの1つからヒット/ミス判定回路21へ、タグデータを転送する。また、タグデータのコピー時においては、タグフローコンロローラ18は、タグエリア13−2からタグエリア12−2へ、タグデータを転送する。
状態判定回路19は、監視回路12−3の出力信号に基づいて、プロセッサの状態を判定する。例えば、状態判定回路19は、プロセッサが、通常動作状態であるか、電源遮断状態であるか、及び、電源遮断状態からの復帰状態(タグデータのコピーを行っている状態)であるか、を判定する。状態判定回路19は、例えば、レジスタメモリによって構成することができる。
コピーアドレスレジスタ20は、タグエリア13−2からタグエリア12−2へのタグデータのコピーの状況を記憶する。
例えば、電源遮断状態からの復帰状態において、タグデータの全てのコピーが完了する前にコア12−1から処理データの要求があったとき、タグフローコントローラ18は、タグデータのコピーを中断したうえで、タグエリア(不揮発タグ)13−2からヒット/ミス判定回路21へ、タグデータを転送する。
また、タグフローコントローラ18は、タグエリア13−2からタグエリア12−2へのコピーが最後に完了したタグデータのアドレスを、コピーアドレスレジスタ20へ転送する。コピーアドレスレジスタ20は、このアドレスを記憶する。
タグエリア(不揮発タグ)13−2からヒット/ミス判定回路21へ、タグデータが転送された後、タグフローコントローラ18は、コピーアドレスレジスタ20に記憶されたアドレスに基づき、タグエリア13−2からタグエリア12−2へのタグデータのコピーを再開する。
キャッシュロジック12−5は、ヒット/ミス判定回路21、メインメモリデータポート22、及び、L2キャッシュデータポート23を備える。
ヒット/ミス判定回路21は、タグデータに基づいて、コア12−1が要求するデータが、キャッシュデータエリア(L2キャッシュ)13−1内に記憶されているか否か、を判定する。キャッシュデータエリア13−1内にコア12−1が要求するデータが存在するときは、そのデータは、キャッシュデータエリア13−1から、L2キャッシュデータポート23を介して、コア12−1へ転送される。
また、キャッシュデータエリア13−1内にコア12−1が要求するデータが存在しないときは、そのデータは、メインメモリ10から、メインメモリデータポート22を介して、コア12−1へ転送される。
以下、タグフローコントローラ18の動作を説明する。
まず、図13に示すように、タグデータの更新命令が発せられたときは、タグエリア(揮発タグ)12−2内のタグデータと、タグエリア(不揮発タグ)13−2内のタグデータをそれぞれ更新する。これにより、2つのタグエリア12−2,13−2内のタグデータは、同一となる。
次に、図14に示すように、通常動作時において、タグデータの読み出し命令が発せられたときは、タグエリア(揮発タグ)12−2からヒット/ミス判定回路21へ、タグデータを転送する。これは、揮発タグからのデータ読み出しは、不揮発タグからのデータ読み出しに比べて、読み出し遅延と消費電力がそれぞれ小さいからである。
ヒット/ミス判定回路21は、タグデータに基づいて、ヒット/ミス判定を行う。
ヒット時には、キャッシュデータエリア13−1からコア12−1へ、処理データが転送される。また、ミス時には、メインメモリ10からコア12−1へ、処理データが転送されると共に、次回からのアクセスを高速化するため、その処理データがキャッシュデータエリア13−1内に記憶される。
次に、図15に示すように、電源遮断状態からの復帰状態においては、タグエリア(不揮発タグ)13−2からタグエリア(揮発タグ)12−2へ、タグデータのコピーを行う。なぜなら、電源遮断時に揮発タグ内のタグデータが消去されるからである。
また、不揮発タグから揮発タグへのタグデータの全てのコピーを終えるまでは、不揮発タグ内のタグデータを使用する。不揮発タグ内のタグデータを使用することにより、電源が復帰した直後からコアによるデータ処理を再開できる。
但し、タグエリア(不揮発タグ)13−2を用いた処理よりもタグエリア(揮発タグ)12−2を用いた処理の方が、一般的に低消費電力かつ高速である。
そこで、図15に示すように、タグデータの読み出し命令や更新命令が発せられていないときは、タグエリア(不揮発タグ)13−2からタグエリア(揮発タグ)12−2へのタグデータのコピーを継続する。
これに対し、図16に示すように、タグデータの読み出し命令や更新命令が発せられたときは、不揮発タグから揮発タグへのコピーが最後に完了したタグデータのアドレスを、コピーアドレスレジスタ20内に記憶させた後に、不揮発タグから揮発タグへのタグデータのコピーを、一次的に中断する。
そして、図17に示すように、タグエリア(不揮発タグ)13−2からヒット/ミス判定回路21へ、タグデータを転送する。
また、図18に示すように、タグデータの読み出し命令に応じてタグデータを読み出した後は、不揮発タグから揮発タグへのタグデータのコピーを再開する。この時、コピーアドレスレジスタ20内に記憶されたアドレスの次のアドレスから、コピーを再開する。
次に、監視回路の動作を説明する。
監視回路は、プロセッサの動作状態をモニターし、処理待ちが予め決めた時間T以上になったときに、プロセッサを、順次、低消費電力の状態に移行させる。電力の低減は、例えば、電源電圧を低くしたり、チップ内の回路の一部の電源を遮断したりすることで、実現される。プロセッサ内での消費電力の状態は、例えば、C-Stateで表すことができる。
C0ステートは、プロセッサの消費電力が最も高い状態である。また、C1ステート、C2ステート…という具合に、状態が遷移していくに従って、プロセッサの消費電力が次第に小さくなる。
図19は、監視回路の動作を示している。
まず、プロセッサに対するデータの処理命令が発せられると、CMOS回路と不揮発メモリの電源が立ち上がる。また、プロセッサのステートを示す値iを0に設定し、待機時間TをTiに設定する(ステップST1)。
次に、時間T待機する(ステップST2)。
この後、時間T以上、コアの動作が停止しているか否かを判断する(ステップST3)。もし、時間T以上、コアの動作が停止していないならば、ステップST2に戻り、再度、時間T待機する。もし、時間T以上、コアの動作が停止しているならば、ステートiがステートimaxよりも小さいか否かを判定する(ステップST4)。
ここで、ステートimaxは、最も低消費電力の状態であり、例えば、プロセッサの電源を完全に遮断する状態(監視回路以外の回路の電源を遮断する状態)である。
i≧imaxであるときは、プロセッサの電源を完全に遮断する(ステップST6)。
i<imaxであるときは、i=i+1、T=Tiとし、プロセッサ内での消費電力の状態(C-state)を、一段階、下げる。即ち、プロセッサ内での消費電力の状態を、より低消費電力の状態へ移行させる(ステップST5)。
この後、ステップST2に戻る。
以上のように、監視回路は、プロセッサに処理待ちが続いている間、段階的に、プロセッサを低消費電力の状態へ移行させる。
図20は、図11のキャッシュシステム内の各ブロックの動作を示している。
ここでは、プロセッサに対するデータの処理命令が発せられてから、消費電力が最も低いC-stateへ移行するまで、例えば、監視回路を除くキャッシュシステムの電源が完全に遮断されるまでの、各ブロックの動作を説明する。
まず、プロセッサの電源が完全に遮断された状態から始める。この状態においても、監視回路12−1は、アクティブ状態、即ち、電源の監視動作を継続している。
この状態において、プロセッサに対するデータの処理命令が発せられると、プロセッサに電源が供給され、コア12−1でのデータ処理が開始される。即ち、タグデータがタグエリア(不揮発タグ)13−2から取得され、コア12−1が要求するデータがL2キャッシュ内に存在するか否かが判定される。
また、タグデータの取得が終わると、タグエリア(不揮発タグ)13−2からタグエリア(揮発タグ)12−2へのタグデータのコピーが開始される。
タグデータのコピーが終了した後に、再び、プロセッサに対するデータの処理命令が発せられると、今度は、タグデータがタグエリア(揮発タグ)12−2から取得され、コア12−1が要求するデータがL2キャッシュ内に存在するか否かが判定される。
また、タグエリア(不揮発タグ)13−2内に記憶されたタグデータは、タグエリア(揮発タグ)12−2内に記憶されたタグデータが更新されるときに更新される。
そして、これらのデータ処理が終了すると、コア12−1、タグエリア12−2,13−2、及び、キャッシュデータエリア13−1は、待機状態となる。監視回路12−3は、プロセッサの状態を監視し、一定時間T以上、動作を停止しているときは、C-stateを段階的に低下させる。即ち、プロセッサを、順次、消費電力が低い状態に移行させる。
図21乃至図24は、C-stateの例を示している。
図21の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、コア及び監視回路に電源が供給される状態であり、C2ステートは、監視回路のみに電源が供給される状態である。
即ち、C1ステートでは、不揮発メモリ(不揮発タグ及びキャッシュデータエリア)、キャッシュロジック、及び、揮発タグの電源が遮断され、C2ステートでは、監視回路以外の全てのブロックの電源が遮断される。
図22の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、コア、キャッシュロジック、揮発タグ、及び、監視回路に電源が供給される状態であり、C2ステートは、コア及び監視回路に電源が供給される状態であり、C3ステートは、監視回路のみに電源が供給される状態である。
即ち、C1ステートでは、不揮発メモリ(不揮発タグ及びキャッシュデータエリア)の電源が遮断され、C2ステートでは、不揮発メモリ、キャッシュロジック、及び、揮発タグの電源が遮断され、C3ステートでは、監視回路以外の全てのブロックの電源が遮断される。
図23の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、キャッシュロジック、揮発タグ、不揮発メモリ(不揮発タグ及びキャッシュデータエリア)、及び、監視回路に電源が供給される状態であり、C2ステートは、監視回路のみに電源が供給される状態である。
即ち、C1ステートでは、コアの電源が遮断され、C2ステートでは、監視回路以外の全てのブロックの電源が遮断される。
図24の例では、C0ステートは、プロセッサの全てのブロックに電源が供給される状態であり、C1ステートは、キャッシュロジック、揮発タグ、不揮発メモリ(不揮発タグ及びキャッシュデータエリア)、及び、監視回路に電源が供給される状態であり、C2ステートは、監視回路及び不揮発メモリに電源が供給される状態であり、C3ステートは、監視回路のみに電源が供給される状態である。
即ち、C1ステートでは、コアの電源が遮断され、C2ステートでは、コア、キャッシュロジック、及び、揮発タグの電源が遮断され、C3ステートでは、監視回路以外の全てのブロックの電源が遮断される。
尚、高速復帰の効果は、C-stateの数が多いほど顕著になる。一方、低消費電力の効果は、C-stateの数が少ないほど顕著になる。
例えば、図22のC1ステートからの復帰は、図21のC1ステートからの復帰よりも高速に行うことができる。これは、図22のC1ステートにおける電源遮断領域が図21のC1ステートにおける電源遮断領域よりも小さいからである。
また、図21のC1ステートの消費電力は、図22のC1ステートの消費電力よりも小さい。これは、図21のC1ステートにおける電源遮断領域が図22のC1ステートにおける電源遮断領域よりも大きいからである。
同様に、図24のC2ステートからの復帰は、図23のC2ステートからの復帰よりも高速に行うことができる。これは、図24のC2ステートにおける電源遮断領域が図23のC2ステートにおける電源遮断領域よりも小さいからである。
また、図23のC2ステートの消費電力は、図24のC2ステートの消費電力よりも小さい。これは、図23のC2ステートにおける電源遮断領域が図24のC2ステートにおける電源遮断領域よりも大きいからである。
図22のC1ステート及び図24のC2ステートの待機時間(図19のTiに相当)を短くすれば、図22及び図24のC-stateにおいても、低消費電力の効果を図21及び図23のC-stateに近づけることができる。
C-stateの数と各ステートでの待機時間は、プロセッサが実行する処理に応じて適切に設計することが望ましい。
また、プロセッサ内の複数のブロックに関し、電源を遮断する順番は、適宜、変更することができる。図21及び図22のC-stateでは、不揮発メモリの電源を遮断した後に、コアの電源を遮断する。これに対し、図23及び図24のC-stateでは、コアの電源を遮断した後に、不揮発メモリの電源を遮断する。
これらのうち、どちらが適しているかは、コアの復帰時間(オーバーヘッド)と不揮発メモリの復帰時間(オーバーヘッド)とに基づいて決めるのが望ましい。
例えば、不揮発メモリの復帰時間がコアの復帰時間よりも短いときは、図21及び図22に示すように、復帰時間が短い不揮発メモリの電源を先に遮断するのが望ましい。これに対し、コアの復帰時間が不揮発メモリの復帰時間よりも短いときは、図23及び図24に示すように、復帰時間が短いコアの電源を先に遮断するのが望ましい。
本実施例において、不揮発メモリは、キャッシュメモリとして使うため、高速動作が可能なMRAMなどの次世代メモリを採用するのが望ましい。
[むすび]
実施形態によれば、電源遮断による低消費電力化を図っても、電源遮断からの復帰を高速に行うことができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10: メインメモリ、 11,11A,11B: チップ、 12: CMOS回路、 13: 不揮発メモリ、 12−1: コア、 12−2: タグエリア(揮発タグ)、 12−3: 監視回路、 12−4: タグコントローラ、 12−5: キャッシュロジック、 12−6,13−3: 電源回路、 13−1: キャッシュデータエリア、 13−2: タグエリア(不揮発タグ)、 14: TSV、 15: マイクロバンプ、 16: L1キャッシュ、 17: 演算器、 18: タグフローコントローラ、 19: 状態判定回路、 20: コピーアドレスレジスタ、 21: ヒット/ミス判定回路、 22: メインメモリデータポート、 23: L2キャッシュデータポート。

Claims (12)

  1. 処理データを制御するコアと、前記処理データのタグデータを揮発的に記憶する第一のタグエリアと、前記タグデータを制御するタグコントローラと、前記処理データをキャッシュデータとして不揮発的に記憶するキャッシュデータエリアと、前記タグデータを不揮発的に記憶する第二のタグエリアとを具備し、
    前記タグコントローラは、前記第一及び第二のタグエリアのうちの1つから前記タグデータを選択的に取得することにより、前記キャッシュデータエリア内に前記処理データが記憶されているか否かを判定する
    ことを特徴とするプロセッサ。
  2. 前記タグコントローラは、前記タグデータを更新するとき、前記タグデータを前記第一及び第二のタグエリア内に記憶させ、前記処理データのヒット/ミス判定を行うとき、前記第一のタグエリア内の前記タグデータに基づいて前記キャッシュデータエリア内に前記処理データが記憶されているか否かを判定する
    ことを特徴とする請求項1に記載のプロセッサ。
  3. 前記タグコントローラは、前記第一のタグエリア内の前記タグデータを更新するとき、前記第二のタグエリア内の前記タグデータも更新する
    ことを特徴とする請求項2に記載のプロセッサ。
  4. 請求項2又は3に記載のプロセッサにおいて、
    前記プロセッサの処理待ちが一定期間継続したとき、前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が遮断され、
    前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が再投入された後、前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーする
    ことを特徴とするプロセッサ。
  5. 前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が再投入された後、前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーし終えるまで、前記第二のタグエリアから前記タグデータを取得する
    ことを特徴とする請求項4に記載のプロセッサ。
  6. 前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーし終えた後、前記第一のタグエリアから前記タグデータを取得する
    ことを特徴とする請求項5に記載のプロセッサ。
  7. 前記キャッシュデータエリアの電源を監視する監視回路をさらに具備し、
    前記タグコントローラは、前記監視回路の出力信号に基づき、前記第一及び第二のタグエリアのうちの1つから前記タグデータを選択的に取得し、
    前記監視回路の電源は、前記コア、前記第一及び第二のタグエリア、前記タグコントローラ、並びに、前記キャッシュデータエリアの電源が遮断された後も、遮断されない
    ことを特徴とする請求項4乃至6のいずれか1項に記載のプロセッサ。
  8. 前記タグコントローラは、前記第二のタグエリアから前記第一のタグエリアへの前記タグデータのコピーの状況を記憶するコピーアドレスレジスタを備える
    ことを特徴とする請求項4乃至7のいずれか1項に記載のプロセッサ。
  9. 前記タグコントローラは、前記第二のタグエリア内の前記タグデータを前記第一のタグエリア内にコピーし終える前において、前記タグデータのコピーを中断したうえで前記第二のタグエリアから前記タグデータを取得し、
    前記コピーアドレスレジスタは、前記第二のタグエリアから前記第一のタグエリアへのコピーが最後に完了した前記タグデータのアドレスを記憶する
    ことを特徴とする請求項8に記載のプロセッサ。
  10. 前記タグコントローラは、前記第二のタグエリアから前記タグデータを取得した後、前記アドレスに基づき、前記第二のタグエリアから前記第一のタグエリアへの前記タグデータのコピーを再開する
    ことを特徴とする請求項9に記載のプロセッサ。
  11. 前記コア、前記第一のタグエリア、及び、前記タグコントローラは、第1のチップ内に配置され、前記キャッシュデータエリア、及び、前記第二のタグエリアは、第2のチップ内に配置され、前記第1及び第2のチップは、積層される
    ことを特徴とする請求項1乃至10のいずれか1項に記載のプロセッサ。
  12. 前記キャッシュデータエリア、及び、前記第二のタグエリアは、MRAMを含む
    ことを特徴とする請求項1乃至11のいずれか1項に記載のプロセッサ。
JP2013132879A 2013-06-25 2013-06-25 プロセッサ Active JP6092019B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013132879A JP6092019B2 (ja) 2013-06-25 2013-06-25 プロセッサ
US14/208,132 US10236062B2 (en) 2013-06-25 2014-03-13 Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013132879A JP6092019B2 (ja) 2013-06-25 2013-06-25 プロセッサ

Publications (2)

Publication Number Publication Date
JP2015007896A JP2015007896A (ja) 2015-01-15
JP6092019B2 true JP6092019B2 (ja) 2017-03-08

Family

ID=52111934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013132879A Active JP6092019B2 (ja) 2013-06-25 2013-06-25 プロセッサ

Country Status (2)

Country Link
US (1) US10236062B2 (ja)
JP (1) JP6092019B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823730B2 (en) * 2015-07-08 2017-11-21 Apple Inc. Power management of cache duplicate tags
US10672745B2 (en) * 2016-10-07 2020-06-02 Xcelsis Corporation 3D processor
US10591978B2 (en) * 2017-05-30 2020-03-17 Microsoft Technology Licensing, Llc Cache memory with reduced power consumption mode
KR102475688B1 (ko) * 2018-02-27 2022-12-09 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그것의 동작 방법
US10936493B2 (en) * 2019-06-19 2021-03-02 Hewlett Packard Enterprise Development Lp Volatile memory cache line directory tags

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256735B (en) * 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
CA2072728A1 (en) * 1991-11-20 1993-05-21 Michael Howard Hartung Dual data buffering in separately powered memory modules
JPWO2003042837A1 (ja) 2001-11-16 2005-03-10 株式会社ルネサステクノロジ 半導体集積回路
US7562271B2 (en) * 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
JP4484923B2 (ja) 2007-12-27 2010-06-16 株式会社日立製作所 プロセッサ
JP2010250511A (ja) 2009-04-14 2010-11-04 Kyushu Univ キャッシュメモリ装置
US8495300B2 (en) * 2010-03-03 2013-07-23 Ati Technologies Ulc Cache with reload capability after power restoration
JP2012190359A (ja) * 2011-03-11 2012-10-04 Toshiba Corp キャッシュシステムおよび処理装置
JP5674611B2 (ja) * 2011-09-22 2015-02-25 株式会社東芝 制御システム、制御方法およびプログラム

Also Published As

Publication number Publication date
JP2015007896A (ja) 2015-01-15
US20140379975A1 (en) 2014-12-25
US10236062B2 (en) 2019-03-19

Similar Documents

Publication Publication Date Title
JP6030085B2 (ja) キャッシュメモリおよびプロセッサシステム
JP6092019B2 (ja) プロセッサ
JP4621113B2 (ja) 半導体集積回路装置
JP2010152853A (ja) データ記憶装置
US9229816B2 (en) Hybrid system architecture for random access memory
US20100174933A1 (en) System and Method for Reducing Processor Power Consumption
US10152280B2 (en) Storage device and control method
JP2006221381A (ja) プロセッサシステム、該プロセッサシステムを備えた画像形成装置
JP2010250512A5 (ja)
WO2017023467A1 (en) Method and apparatus for completing pending write requests to volatile memory prior to transitioning to self-refresh mode
US20200278739A1 (en) Dynamic memory power management
US20140013140A1 (en) Information processing apparatus and computer program product
US20190129836A1 (en) Computer processing unit (cpu) architecture for controlled and low power save of cpu data to persistent memory
US10146483B2 (en) Memory system
JP2005157620A (ja) 半導体集積回路
CN101710252A (zh) 一种存储系统的供电方法和供电装置
US9792989B2 (en) Memory system including nonvolatile memory
TW201533657A (zh) 資訊處理系統及記憶體系統
JP2007226632A (ja) マイクロコンピュータ
JPWO2013076913A1 (ja) 仮想計算機システム、仮想計算機システム制御方法、及び仮想計算機システム制御プログラム
JP2016139354A (ja) 情報処理システム
US20160210072A1 (en) Controller and memory system
JPH10187302A (ja) データ記憶システム及び同システムに適用する電力節約方法
US10528275B2 (en) Storage system, storage control device, and method of controlling a storage system
US20170293440A1 (en) Storage device and data saving method in the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170208

R151 Written notification of patent or utility model registration

Ref document number: 6092019

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350