JP2017021399A - 半導体装置及びキャッシュメモリ制御方法 - Google Patents

半導体装置及びキャッシュメモリ制御方法 Download PDF

Info

Publication number
JP2017021399A
JP2017021399A JP2015135916A JP2015135916A JP2017021399A JP 2017021399 A JP2017021399 A JP 2017021399A JP 2015135916 A JP2015135916 A JP 2015135916A JP 2015135916 A JP2015135916 A JP 2015135916A JP 2017021399 A JP2017021399 A JP 2017021399A
Authority
JP
Japan
Prior art keywords
cache memory
data
memory
control circuit
output
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.)
Granted
Application number
JP2015135916A
Other languages
English (en)
Other versions
JP6478843B2 (ja
Inventor
直 石川
Nao Ishikawa
直 石川
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2015135916A priority Critical patent/JP6478843B2/ja
Priority to US15/155,797 priority patent/US20170010830A1/en
Publication of JP2017021399A publication Critical patent/JP2017021399A/ja
Priority to US16/256,728 priority patent/US20190155740A1/en
Application granted granted Critical
Publication of JP6478843B2 publication Critical patent/JP6478843B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

Abstract

【課題】消費電力を効果的に削減すること。【解決手段】本発明に係る半導体装置(1)は、第1のキャッシュメモリ(20)と、第1のキャッシュメモリ(20)よりも消費電力が大きい第2のキャッシュメモリ(30)と、第2のキャッシュメモリ(30)よりも消費電力が大きいメインメモリを備える。第1のキャッシュメモリ(20)及び第2のキャッシュメモリ(30)のそれぞれの容量は、第1のキャッシュメモリ(20)、第2のキャッシュメモリ(30)及びメインメモリのそれぞれの電流値を、それぞれのヒット率に応じて調整した値の合計値が、所定の電流閾値以下となるように決定されている。【選択図】図1

Description

本発明は、半導体装置及びキャッシュメモリ制御方法に関し、例えばキャッシュメモリを備えた半導体装置に関する。
マイクロコンピュータには、メインメモリにアクセスする際に大きなウエイトが発生する場合、性能を向上させるために、バスマスタ(例えばCPU(Central Processing Unit))とメインメモリとの間にキャッシュメモリを配置する。キャッシュメモリは、速度(ウエイト数)と容量(面積、コスト)の間にトレードオフの関係がある。キャッシュメモリは、高速・小容量のキャッシュメモリと、低速・大容量のキャッシュメモリを直列に接続することで階層化される。この場合におけるキャッシュメモリの容量は、コスト当たりの性能が最高となるように決定される。
特許文献1には、高速小容量キャッシュの高速アクセス性能と低速大容量キャッシュの高ヒット率とを最大限に活用することを目的としたキャッシュメモリ装置が開示されている。このキャッシュメモリ装置では、演算制御部から仮想アドレスによるロードリクエストが発行されると、高速小容量仮想キャッシュ及びTLB(Translation Look-aside Buffer:アドレス変換バッファ)がアクセスされる。高速小容量仮想キャッシュがヒットした場合、ヒットしたエントリのデータがセレクタにより選択されて演算制御部に出力される。高速小容量仮想キャッシュがミスヒットした場合、TLBを用いて変換された物理アドレスにより低速大容量物理キャッシュがアクセスされる。低速大容量物理キャッシュがヒットした場合、ヒットしたエントリのデータがセレクタにより選択されて演算制御部に出力される。
特許文献2には、上位メモリ及び下位メモリよりなる階層化メモリの制御を合理化し、上位メモリによる無駄な電力消費を削減することを目的とした情報処理装置が開示されている。この情報処理装置では、プロセッサの高速動作時には、CPUコアが情報出力の要求をキャッシュメモリとMMUの両方に同時発行するように制御し、プロセッサの低速動作時には、MMUのみに情報出力の要求を発行する。
しかしながら、特許文献1に開示のキャッシュメモリ装置は、高速アクセス性能の向上と高ヒット率を目的としたものであるが、消費電力の削減を図るための技術は開示されていない。また、特許文献2に開示の情報処理装置は、プロセッサの低速動作時に下記メモリへの要求のみを発行することで低消費電力化を図っているが、プロセッサの低速動作時のみに消費電力が削減されるものである。そのため、消費電力の削減効果は限定的であるという問題がある。
特開平5−35589号公報 特開平11−143776号公報
上述したように、特許文献1及び特許文献2に開示の技術では、消費電力を効果的に削減することができていないという問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、第1のキャッシュメモリ及び第2のキャッシュメモリのそれぞれの容量が、第1のキャッシュメモリ、第2のキャッシュメモリ及びメインメモリのそれぞれの電流値を、それぞれのヒット率に応じて調整した値の合計値が、所定の電流閾値以下となるように決定されるものである。
前記一実施の形態によれば、消費電力を効果的に削減することができる。
実施の形態1に係る半導体装置の構成を示すブロック図である。 第1及び第2のキャッシュメモリの容量と、面積の関係を示す図である。 第1及び第2のキャッシュメモリの容量と、電流の関係を示す図である。 実施の形態1に係る第1及び第2のキャッシュメモリの詳細構成を示すブロック図である。 実施の形態1に係る第1及び第2のキャッシュメモリにおいて処理される信号のタイミングチャートである。 実施の形態1に係る半導体装置の動作を示すフローチャートである。 実施の形態2に係る半導体装置の構成を示すブロック図である。 実施の形態2に係る第2のキャッシュメモリにおいて処理される信号のタイミングチャートである。 実施の形態2に係る半導体装置の動作を示すフローチャートである。 実施の形態3に係る第1及び第2のキャッシュメモリの詳細構成を示すブロック図である。 実施の形態3に係る第2のキャッシュメモリにおいて処理される信号のタイミングチャートである。
以下、図面を参照しながら、好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値などは、実施の形態の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項などについては、適宜、省略及び簡略化がなされている。
<実施の形態1>
図1を参照して、実施の形態1に係る半導体装置1の構成について説明する。図1は、実施の形態1に係る半導体装置1の構成を示すブロック図である。
図1に示すように、半導体装置1は、CPUコア10と、第1のキャッシュメモリ20と、第2のキャッシュメモリ30と、ROM(Read Only Memory)40とを有する。
CPUコア10は、ROM40に格納されたデータを読み出し、読み出したデータに基づいて処理を実行する演算回路である。例えば、CPUコア10は、ROM40に格納されたプログラムを読み出し、読み出したプログラムを実行することで、その処理を実行する。CPUコア10は、ROM40から読み出そうとしたデータのコピーが第1のキャッシュメモリ20又は第2のキャッシュメモリ30に格納されている場合、ROM40に代えて第1のキャッシュメモリ20又は第2のキャッシュメモリ30からそのコピーされたデータを読み出す。
第1のキャッシュメモリ20は、ROM40に記憶されているデータのコピーが一時的に格納される記憶回路である。第1のキャッシュメモリ20は、第2のキャッシュメモリ30及びROM40よりも上位レベルのメモリである。第1のキャッシュメモリ20は、第2のキャッシュメモリ30及びROM40よりも容量(記憶できるデータ量)が小さい。第1のキャッシュメモリ20は、第2のキャッシュメモリ30及びROM40よりも、消費電力が小さく、同一面積当たりに記憶できるデータ量も少ない。第1のキャッシュメモリ20は、CPUコア10からのデータに対するアクセス速度が、第2のキャッシュメモリ30と同等であるが、ROM40よりも速い。
第1のキャッシュメモリ20は、タグメモリ21と、データメモリ22とを有する。タグメモリ21は、データメモリ22に格納されているデータのコピー元のデータのROM40におけるアドレスが格納される。データメモリ22は、ROM40に記憶されているデータがコピーされたデータが格納される。第1のキャッシュメモリ20は、CPUコア10から読み出しが要求されたROM40のデータのコピーが自身に格納されている場合、そのコピーされたデータをCPUコア10に出力する。
より具体的には、データメモリ22は、複数のエントリを有する。データメモリ22の複数のエントリのそれぞれは、ROM40における異なるアドレスのデータのコピーを格納することが可能である。タグメモリ21は、データメモリ22が有する複数のエントリのそれぞれに対応する複数のエントリを有する。タグメモリ21の複数のエントリのそれぞれは、そのエントリに対応するデータメモリ22のエントリに格納されるデータのコピー元のデータのROM40におけるアドレスが格納される。
CPUコア10は、データのROM40におけるアドレスを指定して、データの読み出しを要求する。第1のキャッシュメモリ20は、CPUコア10からデータの読み出しの要求があった場合、タグメモリ21が有する複数のエントリから、CPUコア10から指定されたアドレスと一致するアドレスを検索する。第1のキャッシュメモリ20は、CPUコア10から指定されたアドレスと一致するアドレスを検出した場合(第1のキャッシュメモリ20がヒットした場合)、その検出したアドレスが格納されたエントリに対応するデータメモリ22のエントリに格納されたデータをCPUコア10に出力する。これにより、CPUコア10は、ROM40に代えて、ROM40よりも高速な第1のキャッシュメモリ20からデータを読み出すことができる。
第2のキャッシュメモリ30は、ROM40に記憶されているデータのコピーが一時的に格納される記憶回路である。第2のキャッシュメモリ30は、第1のキャッシュメモリ20よりも下位レベルのメモリであり、ROM40よりも上位レベルのメモリである。第2のキャッシュメモリ30は、第1のキャッシュメモリ20よりも容量(記憶できるデータ量)が大きく、ROM40よりも容量が小さい。第2のキャッシュメモリ30は、第1のキャッシュメモリ20よりも、消費電力が大きく、同一面積当たりに記憶できるデータ量も多い。一方で、第2のキャッシュメモリ30は、ROM40よりも、消費電力が小さく、同一面積当たりに記憶できるデータ量も少ない。第2のキャッシュメモリ30は、CPUコア10からのデータに対するアクセス速度が、第1のキャッシュメモリ20と同一であるが、ROM40よりも速い。
第2のキャッシュメモリ30は、タグメモリ31と、データメモリ32とを有する。タグメモリ31は、データメモリ32に格納されているデータのコピー元のデータのROM40におけるアドレスが格納される。データメモリ32は、ROM40に記憶されているデータがコピーされたデータが格納される。第2のキャッシュメモリ30は、CPUコア10から読み出しが要求されたROM40のデータのコピーが自身に格納されている場合、そのコピーされたデータをCPUコア10に出力する。
より具体的には、第2のキャッシュメモリ30のタグメモリ31及びデータメモリ32も、第1のキャッシュメモリ20のタグメモリ21及びデータメモリ22と同様に、複数のエントリを有する。タグメモリ31及びデータメモリ32のそれぞれのエントリに格納される内容も、それらを利用した第2のキャッシュメモリ30の動作についても、第1のキャッシュメモリ20について説明した内容と同様であるため、その説明は省略する。
ここで、第2のキャッシュメモリ30は、タグメモリ31に対するアドレス検索を、第1のキャッシュメモリ20によるタグメモリ21に対するアドレス検索と並列に行う。ただし、第2のキャッシュメモリ30は、CPUコア10から指定されたアドレスと一致するアドレスを検出した場合(第2のキャッシュメモリ30がヒットした場合)であっても、第1のキャッシュメモリ20がCPUコア10から指定されたアドレスと一致するアドレスを検出しなかった場合(第1のキャッシュメモリ20がミスヒットした場合)のみに、CPUコア10にデータを出力する。これにより、CPUコア10は、第1のキャッシュメモリ20がミスヒットした場合であっても、ROM40に代えて、ROM40よりも高速な第2のキャッシュメモリ30からデータを読み出すことができる。
なお、CPUコア10は、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のいずれもミスヒットした場合は、ROM40からデータを読み出す。
ROM40は、CPUコア10がその処理の実行に利用する各種データが格納される記憶回路である。このデータは、例えば、上述したようにCPUコア10が実行するプログラムが含まれる。ROM40は、メインメモリとして機能する。ROM40は、例えば、フラッシュメモリであってもよい。
続いて、図2及び図3を参照して、実施の形態1に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の容量の決定方法について説明する。図2は、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの容量と、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの面積の合計との関係を示す表である。図3は、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの容量と、第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40のそれぞれの電流値の合計との関係を示す表である。
ここで、本実施の形態1では、第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40のそれぞれについて、速度(CPUコア10からのデータに対するアクセス速度)、面積(1Kバイト当たりの面積)、及び、電流のそれぞれが、以下の通りである例について説明する。なお、より具体的には、電流は、連続してデータへのアクセスが発生した場合における平均消費電流を示している。この平均消費電流は、例えば、いくつかのベンチマークプログラムにより、事前に第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40のそれぞれの消費電力の評価を行うことで得るようにすればよい。
・第1のキャッシュメモリ20
速度:0ウエイト、面積:1.0um/Kバイト、電流:0.1mA
・第2のキャッシュメモリ30
速度:0ウエイト、面積:0.1um/Kバイト、電流:1mA
・ROM40
速度:8ウエイト、面積:0.01um/Kバイト、電流:10mA
このように、メモリは、単位容量当たりの面積と、消費電力とがトレードオフの関係にある。本実施の形態1では、この関係を考慮して、面積(=コスト)当たりの消費電力を最小化するように、メモリ構成が最適化されている。
図2は、第1のキャッシュメモリ20の容量が、0バイト、32バイト、64バイト、128バイト、256バイト、及び、512バイトの場合と、第2のキャッシュメモリ30の容量が、0バイト、1000バイト、2000バイト、4000バイト、8000バイトの場合との組み合わせのそれぞれについて、第1のキャッシュメモリ20と第2のキャッシュメモリ30の合計面積を示している。
この合計面積は、第1のキャッシュメモリ20と第2のキャッシュメモリ30のそれぞれについて、上述した1Kバイト当たりの面積に対して容量(Kバイト単位)を乗算した結果となる値を合計することで算出することができる。その結果、第1のキャッシュメモリ20の容量と第2のキャッシュメモリ30の容量の組み合わせのそれぞれについて、図2に示すように合計面積が得られる。
図3は、第1のキャッシュメモリ20の容量が、0バイト、32バイト、64バイト、128バイト、256バイト、及び、512バイトの場合と、第2のキャッシュメモリ30の容量が、0バイト、1000バイト、2000バイト、4000バイト、8000バイトの場合との組み合わせのそれぞれについて、第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40の合計電流を示している。この合計電流は、次式(1)によって算出されている。
合計電流 =
第1のキャッシュメモリ20の電流×第1のキャッシュメモリ20のヒット率A +
第2のキャッシュメモリ30の電流×第2のキャッシュメモリ30のヒット率B +
ROM40の電流×ROM40のヒット率(1−A−B) ・・・ (1)
なお、第1のキャッシュメモリ20のヒット率は、第1のキャッシュメモリ20の容量が大きくなるに従って大きくなる。第2のキャッシュメモリ30のヒット率は、第2のキャッシュメモリ30の容量が大きくなるに従って大きくなる。ROM40のヒット率は、第1のキャッシュメモリ20及び第2のキャッシュメモリ30の容量が小さくなる(ヒット率が小さくなる)に従って大きくなる。
この場合に、面積要求が0.8um以下であり、かつ、電流要求が0.9mA以下であるものとする。これらの要求を満たす構成は、以下の2つの組み合わせとなる。
{第1のキャッシュメモリ20の容量、第2のキャッシュメモリ30の容量}
={256バイト、4Kバイト}、{512バイト、2Kバイト}
よって、この場合には、この2つの組み合わせのうち、いずれかの組み合わせとなるように、第1のキャッシュメモリ20の容量と第2のキャッシュメモリ30の容量が決定される。
続いて、図4を参照して、実施の形態1に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の詳細構成について説明する。図4は、実施の形態1に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の詳細構成を示すブロック図である。
第1のキャッシュメモリ20は、タグメモリ21及びデータメモリ22の他に、タグ制御回路23と、データ入出力制御回路24とを有する。なお、図4では、第1のキャッシュメモリ20が2wayセットアソシアティブ方式を採用したキャッシュメモリである例について示している。
タグメモリ21は、上述したように、複数のエントリを有している。図4では、1way当たりのエントリ数が128である例について示している。よって、way数は2であるため、エントリ数は、全体で128×2個となる。1way当たりの128個のエントリのそれぞれは、CPUコア10が指定する32ビット(0ビット目〜31ビット目)のROM40のアドレスのうち、3ビット目〜9ビット目がとり得る値のそれぞれに対応付けられている。すなわち、CPUコア10から指定された32ビットのROM40のアドレスのうち、3ビット目〜9ビット目は、いわゆるエントリアドレスに相当する。また、タグメモリ21は、同一のエントリアドレスに対応するエントリを2つ(way数)有することになる。
データメモリ22は、上述したように、複数のエントリを有している。データメモリ22も、タグメモリ21と同様に、エントリ数が128×2個である。また、データメモリ22が有する複数のエントリのそれぞれは、上述したように、タグメモリ21が有する複数のエントリのそれぞれに対応する。すなわち、タグメモリ21のエントリに対応するデータメモリ22のエントリは、ROM40において、そのタグメモリ21のエントリで特定されるアドレスに記憶されたデータのコピーが格納されている。
タグメモリ21のエントリのそれぞれは、LRU(Least Recently Used)ビットが格納される領域と、Validビットが格納される領域と、ROM40のアドレスのうちの10ビット目〜17ビット目の値(いわゆるフレームアドレス)が格納される領域とを含んでいる。
LRUビットは、同一のエントリアドレスで特定される2つのエントリのうち、最後にアクセスされてからの時間が最も長いデータ(最古にアクセスされたデータ)が格納されるエントリを示すデータである。例えば、LRUビットは、2つのエントリのうち、最後にアクセスされてからの時間が最も長いデータが格納されるエントリは“1”を示し、最後にアクセスされてからの時間が最も長くない(最古にアクセスされていない)データが格納されるエントリは“0”を示す。
Validビットは、そのValidビットが格納されるエントリに対応するデータメモリ22のエントリに格納されるデータが有効であるか無効であるかを示すデータである。例えば、Validビットは、データメモリ22のデータが有効である場合には、該データが有効であること(例えば“1”)を示し、データメモリ22のデータが無効である場合には、該データが無効であること(例えば“0”)を示す。
フレームアドレスは、上述したように、そのフレームアドレスが格納されるエントリに対応するデータメモリ22のエントリに格納されるデータのコピー元のデータのROM40におけるアドレスのうち、0ビット目〜17ビット目の値を示す。よって、CPUコア10が指定する32ビットのROM40のアドレスのうち、0ビット目〜17ビット目の値が、エントリアドレスによって特定されたエントリに格納されたフレームアドレスと一致する場合、そのCPUコア10が指定したROM40のアドレスのデータのコピーがデータメモリ22に格納されていることになる。
タグ制御回路23は、(1)ROM領域判定、(2)アドレス比較、(3)Vビット制御、(4)LRU制御などのタグメモリ21に関する制御を行う。
(1)ROM領域判定
タグ制御回路23は、CPUコア10から指定された32ビットのROM40のアドレスのうち、18ビット目〜31ビット目の値に基づいて、ROM40のアドレスが指定されているか否かを判定する。例えば、ROM40のアドレスが、0000−0000h〜000F−FFFFhにマッピングされている場合、タグ制御回路23は、18ビット目〜31ビット目の値のうち、上位16ビットがオール0であるか否かを判定する。上位16ビットがオール0である場合、タグ制御回路23は、ROM40のアドレスが指定されていると判定する。一方、上位16ビットがオール0でない場合、タグ制御回路23は、ROM40のアドレスが指定されていないと判定する。タグ制御回路23は、ROM40のアドレスが指定されていると判定した場合、次に説明する(2)アドレス比較を行う。一方、タグ制御回路23は、ROM40のアドレスが指定されていないと判定した場合、(2)アドレス比較は行わない。
(2)アドレス比較
タグ制御回路23は、CPUコア10から指定された32ビットのROM40のアドレスのうち、エントリアドレスで特定される2つのエントリに格納されたフレームアドレスと、CPUコア10から指定された32ビットのROM40のアドレスにおけるフレームアドレスとを比較する。例えば、CPUコア10から指定されたROM40のアドレスにおけるエントリアドレスをタグメモリ21に入力することで、タグメモリ21がそのエントリアドレスに対応する2つのエントリに格納されたデータをタグ制御回路23に出力する。タグ制御回路23は、タグメモリ21から出力されたデータに基づいてアドレス比較を行う。
比較したアドレスが一致する場合、タグ制御回路23は、CPUコア10から指定されたROM40のアドレスのデータのコピーがデータメモリ22に格納されている(第1のキャッシュメモリ20がヒットした)と判定する。この場合、タグ制御回路23は、データの出力を指示するデータ制御情報をデータ入出力制御回路24に出力すると共に、ヒットしたことを示すヒット情報を第2のキャッシュメモリ30のデータ入出力制御回路34に出力する。このデータ制御情報は、CPUコア10から指定されたROM40のアドレスにおけるフレームアドレスと一致するフレームアドレスが格納されたエントリに対応するデータメモリ22のエントリを示す。
一方、比較したアドレスが一致しない場合、タグ制御回路23は、CPUコア10から指定されたROM40のアドレスのデータのコピーがデータメモリ22に格納されていない、即ちミスヒットしたと判定する。この場合、タグ制御回路23は、データの出力を指示するデータ制御情報をデータ入出力制御回路24に出力せず、ヒットしなかった(ミスヒットした)ことを示すヒット情報を第2のキャッシュメモリ30のデータ入出力制御回路34に出力する。
(3)Vビット制御
タグ制御回路23は、データ入出力制御回路24がデータメモリ22のいずれかのエントリにROM40のデータのコピーを格納した場合、そのエントリに対応するタグメモリ21のエントリにおけるValidビットを有効である旨を示すように更新する。また、タグ制御回路23は、データメモリ22のいずれかのエントリに格納されるROM40のデータのコピーが無効化された場合、そのエントリに対応するタグメモリ21のエントリにおけるValidビットを無効である旨を示すように更新する。
(4)LRU制御
タグ制御回路23は、データメモリ22のいずれかのエントリに格納されるデータがアクセスされた場合、そのエントリに対応するタグメモリ21のエントリにおけるLRUビットを、最後にアクセスされてからの時間が最も長いことを示すように更新し、そのエントリと同一のエントリアドレスに対応する他のwayのエントリにおけるLRUビットを、最後にアクセスされてからの時間が最も長くないことを示すように更新する。
データ入出力制御回路24は、タグ制御回路23からのデータ制御情報に応じて、そのデータ制御情報で示されるエントリに格納されたROM40のデータのコピーをデータメモリ22から取得し、取得したデータを選択回路50に出力する。
第2のキャッシュメモリ30は、タグメモリ31及びデータメモリ32の他に、タグ制御回路43と、データ入出力制御回路34とを有する。なお、図4では、第2のキャッシュメモリ30も、第1のキャッシュメモリ20と同様に、2wayセットアソシアティブ方式を採用したキャッシュメモリである例について示している。
タグメモリ31、データメモリ32、タグ制御回路33、及び、データ入出力制御回路34の動作内容については、上述したタグメモリ21、データメモリ22、タグ制御回路23、及び、データ入出力制御回路24の動作内容と同様であるため、その説明を省略する。
ただし、タグ制御回路33は、タグ制御回路23と異なり、ヒット情報を出力しない。また、データ入出力制御回路34は、データ入出力制御回路24と異なり、タグ制御回路43からデータ制御情報が出力されている場合であっても、タグ制御回路23からヒットしなかったことを示すヒット情報が出力されている場合には、データメモリ22からデータを取得して選択回路50に出力する動作は実行しない。
選択回路50は、第1のキャッシュメモリ20のデータ入出力制御回路24から出力されるデータと、第2のキャッシュメモリ30のデータ入出力制御回路34から出力されるデータのうち、いずれか一方のデータを選択的に、データバスを介してCPUコア10に出力する。
選択回路50は、第1のキャッシュメモリ20がヒットした場合には、データ入出力制御回路24から出力されるデータを選択してCPUコア10に出力する。選択回路50は、第1のキャッシュメモリ20がミスヒットし、かつ、第2のキャッシュメモリ30がヒットした場合には、データ入出力制御回路34から出力されたデータを選択してCPUコア10に出力する。CPUコア10は、ROM40のデータの読み出しとして、この出力されたデータを取得する。
また、この場合には、データ入出力制御回路24は、データ入出力制御回路34から出力されたデータを、データメモリ22に格納する。このデータは、そのデータのアドレスにおけるエントリアドレスに対応するデータメモリ22のエントリに格納される。また、このデータは、エントリアドレスに対応する2つのエントリのうち、Validビットが無効を示すタグメモリ21のエントリ、もしくは、Validビットが有効を示すが、LRUビットが最後にアクセスされてからの時間が最も長いことを示すタグメモリ21のエントリに対応するデータメモリ22のエントリに選択的に格納される。
このときに、タグ制御回路23は、データを格納したエントリに対応するタグメモリ21のそれぞれのエントリのデータを更新する。より具体的には、タグ制御回路23は、Validビットが無効を示している場合には、有効を示すように変更する。タグ制御回路23は、LRUビットを最後にアクセスされてからの時間が最も長くないことを示す値に変更すると共に、同一のエントリアドレスに対応する他のwayのエントリにおけるLRUビットを最後にアクセスされてからの時間が最も長いことを示す値に変更する。また、タグ制御回路23は、フレームアドレスを、そのデータのコピー元のデータのROM40におけるアドレスのうち、10ビット目〜17ビット目の値に変更する。
一方、第1のキャッシュメモリ20及び第2のキャッシュメモリ30の両方がミスヒットした場合には、CPUコア10は、ROM40からデータを読み出す。すなわち、ROM40は、CPUコア10から指定されたアドレスに格納されるデータをCPUコア10に出力する。CPUコア10は、ROM40から出力されたデータを取得する。
また、この場合には、データ入出力制御回路24及びデータ入出力制御回路34のそれぞれは、そのROM40から読み出されたデータを、メモリバスを介して取得し、データメモリ22及びデータメモリ32のそれぞれに格納する。このときに、タグ制御回路23及びタグ制御回路33のそれぞれは、データを格納したエントリに対応するタグメモリ21及びタグメモリ31のそれぞれのエントリのデータを更新する。
データメモリ22、32においてデータを格納するエントリの選択方法、及び、タグメモリ21、31におけるエントリの更新内容については、上述した内容と同様であるため、その説明を省略する。
続いて、図5を参照して、実施の形態1に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の動作方式について説明する。図5は、実施の形態1に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30において処理される信号(情報)のタイミングチャートである。なお、以下、図5に示す動作方式を「第1の方式」とも呼ぶ。
CPUコア10は、ROM40のデータを読み出す場合、読み出し要求を出力する。この読み出し要求は、ROM40からのデータの読み出しを要求する情報であり、そのデータのアドレスを示すアドレス情報が含まれる。上述したように、第1のキャッシュメモリ20及び第2のキャッシュメモリ30は、CPUコア10からの読み出し要求を0ウエイトで処理する。すなわち、図5に示すように、CPUコア10からの読み出し要求の出力に応じて、その読み出し要求が出力されたクロックサイクルの次のクロックサイクルで要求されたデータをCPUコア10に出力することができる。なお、ROM40は、CPUコア10からの読み出し要求を8ウエイトで処理するものであるため、その読み出し要求が出力されたクロックサイクルの9つ後のクロックサイクルで要求されたデータをCPUコア10に出力することになる。
1つ目のクロックサイクル:
図5に示すように、CPUコア10から読み出し要求が出力されたタイミングを1つ目のクロックサイクルとする。この場合、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のタグ制御回路23、33のそれぞれは、この1つ目のクロックサイクルで、タグメモリ21からの読み出し要求に含まれるアドレス情報が示すアドレスに対応するエントリを検索し、その検索結果に応じて、データ制御情報及びヒット情報をデータ入出力制御回路24、34のそれぞれに出力する(以下、「エントリ検索動作」とも呼ぶ)。
2つ目のクロックサイクル:
2つ目のクロックサイクルでは、第1のキャッシュメモリ20のデータ入出力制御回路24は、タグ制御回路23からデータ制御情報が出力された場合、そのデータ制御情報が示すエントリに格納されたデータを取得し、選択回路50に出力する。第2のキャッシュメモリ30のデータ入出力制御回路34は、タグ制御回路23からヒットしなかったことを示すヒット情報が出力され、かつ、タグ制御回路33からデータ制御情報が出力された場合、そのデータ制御情報が示すエントリに格納されたデータをデータメモリ32から取得し、選択回路50に出力する。一方、データ入出力制御回路34は、タグ制御回路23からヒットしたことを示すヒット情報が出力された場合、タグ制御回路33からデータ制御情報が出力されたとしても、データメモリ32からデータの取得及び出力の動作(以下、「データ出力動作」とも呼ぶ)を抑止する。
続いて、図6を参照して、実施の形態1に係る半導体装置1の動作について説明する。図6は、実施の形態1に係る半導体装置1の動作を示すフローチャートである。
CPUコア10は、ROM40のデータを読み出す場合、読み出し要求を出力する(S1)。タグ制御回路23及びタグ制御回路33のそれぞれは、並列に、読み出し要求に含まれるアドレス情報が示すアドレスに基づいて、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれからデータを検索する(S2、S3)。より具体的には、上述したように、タグ制御回路23及びタグ制御回路33のそれぞれは、タグメモリ21及びタグメモリ31のそれぞれから、アドレス情報が示すアドレスにおけるフレームアドレスと一致するフレームアドレスを示すエントリを検索する。
タグ制御回路23が、フレームアドレスが一致するエントリを検出し、ヒットしたと判定した場合(S4:Yes)、タグ制御回路23は、ヒットしたことを示すヒット情報をデータ入出力制御回路34に出力することで、データ入出力制御回路34によるデータ出力動作を抑止する(S5)。また、この場合、タグ制御回路23は、データ制御情報をデータ入出力制御回路24に出力する。データ入出力制御回路24は、タグ制御回路23からのデータ制御情報に応じて、データメモリ22からデータを取得し、選択回路50を介してCPUコア10に出力する(S6)。
タグ制御回路23が、フレームアドレスが一致するエントリを検出できず、ミスヒットしたと判定し(S4:No)、かつ、タグ制御回路33が、フレームアドレスが一致するエントリを検出し、ヒットしたと判定した場合(S7:Yes)、タグ制御回路23は、ヒットしなかったことを示すヒット情報をデータ入出力制御回路34に出力している。また、タグ制御回路33は、データ制御情報をデータ入出力制御回路34に出力している。そのため、データ入出力制御回路34は、タグ制御回路33からのデータ制御情報に応じて、データメモリ32からデータを取得し、選択回路50を介してCPUコア10に出力する(S8)。
タグ制御回路23が、フレームアドレスが一致するエントリを検出できず、ミスヒットしたと判定し(S4:No)、かつ、タグ制御回路33もフレームアドレスが一致するエントリを検出できず、ミスヒットしたと判定した場合(S7:No)、ROM40は、読み出し要求に含まれるアドレス情報が示すアドレスのデータをCPUコア10に出力する(S9)。
CPUコア10は、データ入出力制御回路24、データ入出力制御回路34及びROM40のいずれかから出力されたデータを取得する(S10)。これにより、CPUコア10によるデータの読み出しが完了する。
以上に説明したように、本実施の形態1では、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの容量は、第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40(メインメモリ)のそれぞれの電流値を、それぞれのヒット率に応じて調整した値の合計値が、所定の電流閾値以下となるように決定されている。
2つのキャッシュメモリを組み合わせたメモリ構成を構築する場合には、コスト当たりの速度を最適化することが一般的である。それに対し、本実施の形態1では、第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40(メインメモリ)のそれぞれの電流値を、それぞれのヒット率に応じて調整した値の合計値が、所定の電流閾値以下となるように、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの容量を決定するようにしている。これによれば、半導体装置1の消費電力を効果的に削減することができる。
また、本実施の形態1では、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの容量は、さらに、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの面積の合計値が、所定の面積閾値以下となるように決定されている。これによれば、面積(コスト)当たりの消費電力を削減することができる。言い換えると、面積(コスト)及び消費電力を最小化することができる。
また、本実施の形態1では、CPUコア10(上位装置)からデータの読み出しが要求されたときに、第1のキャッシュメモリ20がヒットした場合、タグ制御回路23は、第2のキャッシュメモリ30の少なくとも一部の動作を停止させるようにしている。より具体的には、少なくとも一部の動作の停止として、第2のキャッシュメモリ30のデータ入出力制御回路34(出力制御回路)によるデータの出力を抑止するようにしている。これによれば、不要な第2のキャッシュメモリ30の動作を抑止して、半導体装置1の消費電力を削減することができる。
<実施の形態2>
続いて、実施の形態2について説明する。以下の実施の形態2の説明では、上述した実施の形態1と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。図7を参照して、実施の形態2に係る半導体装置2の構成について説明する。図7は、実施の形態2に係る半導体装置2の構成を示すブロック図である。
図7に示すように、実施の形態2に係る半導体装置2は、実施の形態1に係る半導体装置1と同様に、CPUコア10と、第1のキャッシュメモリ20と、第2のキャッシュメモリ30と、ROM40とを有する。
ただし、本実施の形態2に係る半導体装置2では、実施の形態1に係る半導体装置1と異なり、第1のキャッシュメモリ20がヒットした場合に、第2のキャッシュメモリ30のデータ入出力制御回路34によるデータ出力動作のみを抑止するのではなく、さらに、その前段階のタグ制御回路33によるエントリ検索動作においても、ヒットを判定した以降の動作を抑止する。
ここで、実施の形態1では、より具体的には、タグメモリ31は、フリップフロップ(FF)で構成されており、データメモリ32は、SRAM(Static Random Access Memory)で構成されている。そのため、エントリの検索を高速に行うことができる。一方で、本実施の形態2では、タグメモリ31とデータメモリ32の両方をSRAMで構成している。そのため、タグ制御回路33によるエントリの検索は、実施の形態1と比較して低速となるが、タグメモリ31のエントリ数を増加させて、第2のキャッシュメモリ30を大容量化することができる。
なお、第1のキャッシュメモリ20のタグメモリ21は、フリップフロップで構成されており、第1のキャッシュメモリ20のデータメモリ22は、SRAMで構成されている。すなわち、タグ制御回路33によるエントリの検索は、タグ制御回路23によるエントリの検索よりも低速である。
そのため、本実施の形態2では、タグ制御回路23による第1のキャッシュメモリ20がヒットしたか否かの判定が、タグ制御回路33による第2のキャッシュメモリ30がヒットしたか否かの判定よりも早く行われる。言い換えると、タグ制御回路23による判定結果が得られたときには、タグ制御回路33は、第2のキャッシュメモリ30がヒットしたか否かの判定(タグメモリ31におけるエントリを検索)を実行途中である。よって、本実施の形態2では、上述したように、タグ制御回路23によって第1のキャッシュメモリ20がヒットしたと判定した場合に、それ以降のタグ制御回路33によるエントリ検索動作を抑止することで、データの出力動作も抑止する。
なお、本実施の形態2に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の詳細構成については、図4に示した実施の形態1に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の詳細構成と同様であるため、その説明を省略する。ただし、本実施の形態2では、実施の形態1と異なり、上述したように、タグ制御回路23が、ヒット情報をデータ入出力制御回路34に代えてタグ制御回路33に出力する。
続いて、図8を参照して、実施の形態2に係る第2のキャッシュメモリ30の動作方式について説明する。図8は、実施の形態2に係る第2のキャッシュメモリ30において処理される信号(情報)のタイミングチャートである。なお、以下、図8に示す動作方式を「第2の方式」とも呼ぶ。
上述したように、本実施の形態2では、実施の形態1と比較して、第2のキャッシュメモリ30によるエントリ検索動作が低速である。よって、図8に示す第2の方式は、図5に示した第1の方式と異なり、第2のキャッシュメモリ30のタグ制御回路33が、2つ目のクロックサイクルでデータ制御情報を出力する。そのため、第1のキャッシュメモリ20のタグ制御回路23が、1つ目のクロックサイクルでヒット情報を出力することで、第2のキャッシュメモリ30のタグ制御回路33によるエントリ検索動作を停止して、データ制御情報の出力を抑止することができる。
なお、第2の方式であっても、タグ制御回路33は、2クロックサイクルで、データ制御情報に応じて、データメモリ32からデータを取得し、CPUコア10に出力する。よって、第2の方式により動作する場合であっても、タグ制御回路33は、CPUコア10からの読み出し要求を0ウエイトで処理する。
なお、第1のキャッシュメモリ20の動作方式については、図5に示した第1の方式であるため、その説明を省略する。
続いて、図9を参照して、実施の形態2に係る半導体装置2の動作について説明する。図9は、実施の形態2に係る半導体装置2の動作を示すフローチャートである。
本実施の形態2に係る半導体装置2の動作は、図6に示した実施の形態1に係る半導体装置1の動作と異なり、ステップS6に代えて、ステップS11を有する。すなわち、タグ制御回路23がヒットしたと判定した場合(S4:Yes)、タグ制御回路23は、ヒットしたことを示すヒット情報をタグ制御回路33に出力することで、タグ制御回路33による以降のエントリ検索動作と、データ入出力制御回路34によるデータ出力動作を抑止する(S11)。他の動作については、実施の形態1と同様であるため、その説明を省略する。
以上に説明したように、本実施の形態2では、CPUコア10(上位装置)からデータの読み出しが要求されたときに、第1のキャッシュメモリ20がヒットした場合、タグ制御回路23は、第2のキャッシュメモリ30の少なくとも一部の動作を停止させるようにしている。より具体的には、少なくとも一部の動作の停止として、第2のキャッシュメモリ30のタグ制御回路33(検索回路)によるデータの検索を抑止するようにしている。これによれば、そのデータの検索後に行われるデータの出力も抑止することができるため、半導体装置1の消費電力をより削減することができる。
<実施の形態3>
続いて、実施の形態3について説明する。以下の実施の形態3の説明では、上述した実施の形態1と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。実施の形態3に係る半導体装置3の構成については、図1に示した実施の形態1に係る半導体装置1の構成と同様であるため、その説明を省略する。
ただし、実施の形態1、2では、CPUコア10、第1のキャッシュメモリ20及び第2のキャッシュメモリ30の動作周波数が同一とされていたが、実施の形態3では、第2のキャッシュメモリ30の動作周波数が、CPUコア10及び第1のキャッシュメモリ20の動作周波数よりも低い場合における動作を示すものである。これによれば、第2のキャッシュメモリ30の消費電力を、より削減することができる。本実施の形態3では、第2のキャッシュメモリ30の動作周波数が、CPUコア10及び第1のキャッシュメモリ20の動作周波数の1/2である例について説明する。なお、CPUコア10及び第1のキャッシュメモリ20の動作周波数に対する、第2のキャッシュメモリ30の動作周波数の割合は、この例に限られない。CPUコア10及び第1のキャッシュメモリ20の動作周波数よりも低いのであれば、他の割合を採用するようにしてもよい。
続いて、図10を参照して、実施の形態3に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の詳細構成について説明する。図10は、実施の形態3に係る第1のキャッシュメモリ20及び第2のキャッシュメモリ30の詳細構成を示すブロック図である。
CPUコア10は、図5及び図8に示したように、CPUコア10の動作クロックの1クロックサイクル(1つ目のクロックサイクル)の間だけ読み出し要求(アドレス情報)を出力する。しかし、本実施の形態3では、実施の形態1と比較して、上述したように、第2のキャッシュメモリ30の動作周波数が、CPUコア10及び第1のキャッシュメモリ20の動作周波数の1/2である。そのため、第2のキャッシュメモリ30は、その読み出し要求が出力されるクロックサイクルの2倍となる2クロックサイクル(1つ目及び2つ目のクロックサイクル)の間、エントリ検索動作を行う。よって、実施の形態1の第2のキャッシュメモリ30の構成のままでは、2クロックサイクルで、タグ制御回路23が、読み出しが期待されるアドレス情報(1クロックサイクルのアドレス情報)とは異なるアドレス情報の出力を受けることで、エントリの検索が正常に行われなくなってしまう可能性がある。
そこで、本実施の形態3に係る第2のキャッシュメモリ30は、実施の形態1に係る第2のキャッシュメモリと比較して、さらに、アクセス要求保存用バッファ35を有している。アクセス要求保存用バッファ35は、CPUコア10から出力されたアドレス情報を保持し、保持したアドレス情報を、CPUコア10によるアドレス情報の出力終了後も、第2のキャッシュメモリ30の内部に対して出力し続ける。例えば、上述したように、CPUコア10が1つ目のクロックサイクルでアドレス情報の出力を終了してしまう場合には、アクセス要求保存用バッファ35は、2つ目のクロックサイクルにおいても、保持したアドレス情報をタグメモリ31及びタグ制御回路33に出力する。これによれば、タグ制御回路23が、読み出しが期待されるアドレス情報の参照を継続可能となる。すなわち、アクセス要求保存用バッファ35がアドレス情報を保持して出力するクロックサイクル数は、CPUコア10から読み出し要求(アドレス情報)が出力されているクロックサイクルを含めて、次のように定めればよい。
アクセス要求保存用バッファ35がアドレス情報を保持・出力するクロックサイクル数
= CPUコア10が読み出し要求(アドレス情報)を出力するクロックサイクル数
× (CPUコア10の動作周波数 / 第2のキャッシュメモリ30の動作周波数)
続いて、図11を参照して、実施の形態3に係る第2のキャッシュメモリ30の動作について説明する。図11は、実施の形態3に係る第2のキャッシュメモリ30において処理される信号(情報)のタイミングチャートを示す図である。なお、図11におけるクロックは、CPUコア10及び第1のキャッシュメモリ20の動作クロックを示している。
1つ目のクロックサイクル:
CPUコア10は、ROM40のデータを読み出す場合、読み出し要求を出力する。第2のキャッシュメモリ30のアクセス要求保存用バッファ35は、その読み出し要求に含まれるアドレス情報を格納する。なお、第1のキャッシュメモリ20のタグ制御回路23及び第2のキャッシュメモリ30のタグ制御回路33は、その読み出し要求に含まれるアドレス情報に基づいて、エントリ検索動作を行う。
2つ目のクロックサイクル:
CPUコア10は、読み出し要求の出力を終了する。また、第1のキャッシュメモリ20のタグ制御回路23は、エントリ検索動作を終了する。第2のキャッシュメモリ30のアクセス要求保存用バッファ35は、1つ目のクロックサイクルで格納したアドレス情報をタグメモリ31及びタグ制御回路33に出力する。これにより、第2のキャッシュメモリ30のタグ制御回路33は、2つ目のクロックサイクルでも、エントリ検索動作を継続することになるが、アクセス要求保存用バッファ35から出力されるアドレス情報に基づいて、正常にエントリ検索動作を継続することが可能となる。タグ制御回路33は、ヒットした場合に、データ制御情報をデータ入出力制御回路34に出力する。
3つ目のクロックサイクル及び4つ目のクロックサイクル:
データ入出力制御回路34は、タグ制御回路33からデータ制御情報が出力された場合、そのデータ制御情報で指定されたエントリに格納されたデータをデータメモリ32から取得し、選択回路50に出力する。
<実施の形態3の変形例>
上述した実施の形態3では、第2のキャッシュメモリ30の動作周波数が、CPUコア10及び第1のキャッシュメモリ20の動作周波数よりも低い場合に、アクセス要求保存用バッファ35を利用することで、第2のキャッシュメモリ30が正常なアドレス情報の認識を継続可能としているが、これに限られない。
例えば、第2のキャッシュメモリ30のタグ制御回路33は、第1のキャッシュメモリ20のタグ制御回路23からミスしたことを示すヒット情報が入力された場合に、読み出し要求の出力の継続を要求する要求情報をCPUコア10に出力するようにしてもよい。そして、CPUコア10は、タグ制御回路33からの要求情報に応じて、さらにもうタグ制御回路33がエントリ検索動作を終了するまでのクロックサイクルの間、アドレス情報の出力を継続するようにしてもよい。
以上に説明したように、本実施の形態3では、第2のキャッシュメモリ30の動作周波数は、CPUコア10(上位装置)及び第1のキャッシュメモリ20の動作周波数よりも低速である。そして、第2のキャッシュメモリ30は、CPUコア10による読み出し要求の出力の終了後にも、タグ制御回路33(検索回路)がアドレス情報を利用可能とするために、アドレス情報を保持するアクセス要求保存用バッファ35を有している。これによれば、第2のキャッシュメモリ30の動作周波数を下げることで、より消費電力を低減することができると共に、動作が低速な第2のキャッシュメモリ30の検索動作を正常に行うことができる。
なお、以上の各実施の形態1〜3の説明では、説明の簡略化のため、CPUコア10からデータの読み出しを要求する例のみについて説明したが、当然に、CPUコア10からデータの書き込みを要求するようにしてもよい。この場合、CPUコア10は、アドレス情報と書き込むデータとを含む情報である書き込み要求を出力する。第1のキャッシュメモリ20及び第2のキャッシュメモリ30のタグ制御回路23、33は、書き込み要求に含まれるアドレス情報が示すアドレスについて、上述と同様に、エントリ検索を行う。そして、データ入出力制御回路24、34は、タグ制御回路23、33から出力されたデータ制御情報が示すデータメモリ22、32のエントリに、書き込み要求に含まれるデータを格納する。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
上述した各実施の形態1〜3では、第1のキャッシュメモリ20と第2のキャッシュメモリ30の容量を、式(1)に基づいて決定する例について説明したが、これに限られない。第1のキャッシュメモリ20及び第2のキャッシュメモリ30のそれぞれの容量は、第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40のそれぞれの電流値を、それぞれのヒット率に応じて調整した値の合計値が、所定の電流閾値以下となるように決定されるのであれば、他の方法で決定してもよい。例えば、第1のキャッシュメモリ20、第2のキャッシュメモリ30及びROM40のそれぞれの電流値に対して、それぞれのヒット率に比例する値を乗算した結果として得られた値の合計値が、所定の電流閾値以下となるように決定してもよい。
また、上述した各実施の形態1〜3では、データメモリ22、32においてデータを格納するエントリを選択するアルゴリズムとして、LRUを使用した例について説明したが、これに限られない。データメモリ22、32においてデータを格納するエントリを選択するアルゴリズムとして、LFU(Least Frequently Used)を採用してもよい。この場合、タグメモリ21、31は、LRUビットに代えて、データがアクセスされた頻度を示すLFU情報が格納される。
また、上述した各実施の形態1〜3では、第1のキャッシュメモリ20及び第2のキャッシュメモリ30のway数が2つである例について説明したが、他のway数を採用してもよい。
1、2、3 半導体装置
10 CPUコア
20 第1のキャッシュメモリ
21、31 タグメモリ
22、32 データメモリ
23、33 タグ制御回路
24、34 データ入出力制御回路
30 第2のキャッシュメモリ
35 アクセス要求保存用バッファ
40 ROM
50 選択回路

Claims (13)

  1. 第1のキャッシュメモリと、
    前記第1のキャッシュメモリよりも消費電力が大きい第2のキャッシュメモリと、
    前記第2のキャッシュメモリよりも消費電力が大きいメインメモリと、を備え、
    前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれの容量は、前記第1のキャッシュメモリ、前記第2のキャッシュメモリ及び前記メインメモリのそれぞれの電流値を、それぞれのヒット率に応じて調整した値の合計値が、所定の電流閾値以下となるように決定されている、
    半導体装置。
  2. 前記第2のキャッシュメモリは、前記第1のキャッシュメモリよりも同一の容量に対する面積が小さく、
    前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれの容量は、さらに、前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれの面積の合計値が、所定の面積閾値以下となるように決定されている、
    請求項1に記載の半導体装置。
  3. 前記合計値は、前記第1のキャッシュメモリ、前記第2のキャッシュメモリ、及び、前記メインメモリのそれぞれの電流値と、それぞれのヒット率との乗算結果の合計値である、
    請求項1に記載の半導体装置。
  4. 前記第2のキャッシュメモリは、前記第1のキャッシュメモリよりも下位レベルのメモリであり、
    前記半導体装置は、さらに、上位装置からデータの読み出しが要求されたときに、前記第1のキャッシュメモリがヒットした場合、前記第2のキャッシュメモリの少なくとも一部の動作を停止させる制御回路を備えた、
    請求項1に記載の半導体装置。
  5. 前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれは、
    前記上位装置からデータの読み出しが要求された場合に、当該読み出しが要求されたデータを検索する検索回路と、
    前記検索回路によって検出されたデータを、前記上位装置に出力する出力制御回路と、を有し、
    前記制御回路は、前記少なくとも一部の動作の停止として、前記第2のキャッシュメモリの出力制御回路による前記データの出力を抑止する、
    請求項4に記載の半導体装置。
  6. 前記第1のキャッシュメモリの検索回路と、前記第2のキャッシュメモリの検索回路は、前記上位装置からデータの読み出しが要求されたクロックサイクルで検索結果を前記出力制御回路に通知する、
    請求項5に記載の半導体装置。
  7. 前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれは、
    前記上位装置からデータの読み出しが要求された場合に、当該読み出しが要求されたデータを検索する検索回路と、
    前記検索回路によって検出されたデータを、前記上位装置に出力する出力制御回路と、を有し、
    前記制御回路は、前記少なくとも一部の動作の停止として、前記第2のキャッシュメモリの検索回路による前記データの検索を抑止する、
    請求項4に記載の半導体装置。
  8. 前記第1のキャッシュメモリの検索回路は、前記上位装置からデータの読み出しが要求されたクロックサイクルで検索結果を前記出力制御回路に通知し、
    前記第2のキャッシュメモリの検索回路は、前記上位装置からデータの読み出しが要求されたクロックサイクルよりも後のクロックサイクルで検索結果を前記出力制御回路に通知する、
    請求項7に記載の半導体装置。
  9. 前記第1のキャッシュメモリ及び第2のキャッシュメモリのそれぞれは、
    上位装置からデータの読み出し要求が出力された場合に、当該読み出し要求に含まれるアドレス情報が示すデータのアドレスに基づいて、データを検索する検索回路と、
    前記検索回路によって検出されたデータを、前記上位装置に出力する出力制御回路と、を有し、
    前記第2のキャッシュメモリの動作周波数は、前記上位装置及び前記第1のキャッシュメモリの動作周波数よりも低速であり、
    前記第2のキャッシュメモリは、さらに、前記上位装置による読み出し要求の出力の終了後にも、前記検索回路が前記アドレス情報を利用可能とするために、前記アドレス情報を保持するバッファを有する、
    請求項1に記載の半導体装置。
  10. 前記第1のキャッシュメモリ及び第2のキャッシュメモリのそれぞれは、データの読み出しを要求する上位装置に対して0ウエイトで動作する、
    請求項1に記載の半導体装置。
  11. 上位装置からデータの読み出しが要求されたときに、第1のキャッシュメモリがヒットしたか否かを判定する判定ステップと、
    前記第1のキャッシュメモリがヒットしたと判定した場合、前記第1のキャッシュメモリよりも下位レベルの第2のキャッシュメモリの少なくとも一部の動作を停止させる停止ステップと、
    を備えたキャッシュメモリ制御方法。
  12. 前記キャッシュメモリ制御方法は、さらに、
    前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれが、前記上位装置からのデータの読み出しの要求に応じて、読み出しが要求されたデータを検索する検索ステップと、
    前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれが、前記検索によってデータが検出された場合に、当該検出されたデータを前記上位装置に出力する出力ステップと、を備え、
    前記停止ステップでは、前記少なくとも一部の動作の停止として、前記第2のキャッシュメモリによる前記データの出力を抑止する、
    請求項11に記載のキャッシュメモリ制御方法。
  13. 前記キャッシュメモリ制御方法は、さらに、
    前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれが、前記上位装置からのデータの読み出しの要求に応じて、読み出しが要求されたデータを検索する検索ステップと、
    前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのそれぞれが、前記検索によってデータが検出された場合に、当該検出されたデータを前記上位装置に出力する出力ステップと、を備え、
    前記停止ステップでは、前記少なくとも一部の動作の停止として、前記第2のキャッシュメモリによる前記データの検索を抑止する、
    請求項11に記載のキャッシュメモリ制御方法。
JP2015135916A 2015-07-07 2015-07-07 半導体装置及びキャッシュメモリ制御方法 Active JP6478843B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015135916A JP6478843B2 (ja) 2015-07-07 2015-07-07 半導体装置及びキャッシュメモリ制御方法
US15/155,797 US20170010830A1 (en) 2015-07-07 2016-05-16 Semiconductor Device and Cache Memory Control Method
US16/256,728 US20190155740A1 (en) 2015-07-07 2019-01-24 Semiconductor device and cache memory control method for reducing power consumption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015135916A JP6478843B2 (ja) 2015-07-07 2015-07-07 半導体装置及びキャッシュメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2017021399A true JP2017021399A (ja) 2017-01-26
JP6478843B2 JP6478843B2 (ja) 2019-03-06

Family

ID=57730951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015135916A Active JP6478843B2 (ja) 2015-07-07 2015-07-07 半導体装置及びキャッシュメモリ制御方法

Country Status (2)

Country Link
US (2) US20170010830A1 (ja)
JP (1) JP6478843B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020030696A (ja) * 2018-08-23 2020-02-27 日本電信電話株式会社 プロセッサ、多階層キャッシュメモリの制御方法、及び多階層キャッシュメモリの制御プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929759B2 (en) 2017-04-06 2021-02-23 AIBrain Corporation Intelligent robot software platform
US10839017B2 (en) * 2017-04-06 2020-11-17 AIBrain Corporation Adaptive, interactive, and cognitive reasoner of an autonomous robotic system utilizing an advanced memory graph structure
US11151992B2 (en) 2017-04-06 2021-10-19 AIBrain Corporation Context aware interactive robot
US10810371B2 (en) 2017-04-06 2020-10-20 AIBrain Corporation Adaptive, interactive, and cognitive reasoner of an autonomous robotic system
US10963493B1 (en) 2017-04-06 2021-03-30 AIBrain Corporation Interactive game with robot system
JP7306109B2 (ja) * 2019-06-26 2023-07-11 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置および省電力制御方法
US20220197707A1 (en) * 2020-12-17 2022-06-23 EMC IP Holding Company LLC System and method for efficient data collection based on data access pattern for reporting in large scale multi tenancy environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5235533A (en) * 1975-09-13 1977-03-18 Fujitsu Ltd Buffer memory system
JP2002007373A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd 半導体装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226722B1 (en) * 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US6321296B1 (en) * 1998-08-04 2001-11-20 International Business Machines Corporation SDRAM L3 cache using speculative loads with command aborts to lower latency
US8683129B2 (en) * 2010-10-21 2014-03-25 Oracle International Corporation Using speculative cache requests to reduce cache miss delays

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5235533A (en) * 1975-09-13 1977-03-18 Fujitsu Ltd Buffer memory system
JP2002007373A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd 半導体装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
渡辺 信太: ""組み込みアプリケーションを対象とした2階層キャッシュメモリにおけるキャッシュ/バス構成最適化手法"", DAシンポジウム 2010 論文集, JPN6018042409, 26 August 2010 (2010-08-26), JP, pages 57 - 62 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020030696A (ja) * 2018-08-23 2020-02-27 日本電信電話株式会社 プロセッサ、多階層キャッシュメモリの制御方法、及び多階層キャッシュメモリの制御プログラム
JP7142289B2 (ja) 2018-08-23 2022-09-27 日本電信電話株式会社 プロセッサ、多階層キャッシュメモリの制御方法、及び多階層キャッシュメモリの制御プログラム

Also Published As

Publication number Publication date
US20170010830A1 (en) 2017-01-12
US20190155740A1 (en) 2019-05-23
JP6478843B2 (ja) 2019-03-06

Similar Documents

Publication Publication Date Title
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US8719509B2 (en) Cache implementing multiple replacement policies
KR101563659B1 (ko) 집성된 소페이지들을 사용한 페이지 사이즈 확장
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US20050071601A1 (en) Apparatus and method for pre-fetching page data using segment table data
JP7340326B2 (ja) メンテナンス動作の実行
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
US20160140042A1 (en) Instruction cache translation management
US9317448B2 (en) Methods and apparatus related to data processors and caches incorporated in data processors
JP2012533135A (ja) Tlbプリフェッチング
JPH06110781A (ja) キャッシュメモリ装置
US20200250098A1 (en) Cache access detection and prediction
JPWO2010035426A1 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
EP3553665B1 (en) Non-volatile memory access method, device, and system
CN106066831B (zh) 存储器管理
US11803482B2 (en) Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
TWI518585B (zh) 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法
CN107870867B (zh) 32位cpu访问大于4gb内存空间的方法与装置
US20210042120A1 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
CN109983538B (zh) 存储地址转换
JP2007280421A (ja) データ処理装置
US11003591B2 (en) Arithmetic processor, information processing device and control method of arithmetic processor
CN107870870B (zh) 访问超过地址总线宽度的内存空间

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190205

R150 Certificate of patent or registration of utility model

Ref document number: 6478843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150