JP3986950B2 - Cpuおよびこれを備えた情報処理装置、cpuの制御方法 - Google Patents

Cpuおよびこれを備えた情報処理装置、cpuの制御方法 Download PDF

Info

Publication number
JP3986950B2
JP3986950B2 JP2002340055A JP2002340055A JP3986950B2 JP 3986950 B2 JP3986950 B2 JP 3986950B2 JP 2002340055 A JP2002340055 A JP 2002340055A JP 2002340055 A JP2002340055 A JP 2002340055A JP 3986950 B2 JP3986950 B2 JP 3986950B2
Authority
JP
Japan
Prior art keywords
external memory
cache
cpu
data
access
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.)
Expired - Fee Related
Application number
JP2002340055A
Other languages
English (en)
Other versions
JP2004178016A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2002340055A priority Critical patent/JP3986950B2/ja
Priority to US10/719,814 priority patent/US7266641B2/en
Publication of JP2004178016A publication Critical patent/JP2004178016A/ja
Application granted granted Critical
Publication of JP3986950B2 publication Critical patent/JP3986950B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、CPU(Central Processing Unit)に対する電力供給を停止することなく、外部メモリに対する供給電力を削減して、CPU全体の消費電力を低減することが可能なCPUおよびこれを備えた情報処理装置、CPUの制御方法に関するものである。
【0002】
【従来の技術】
従来、例えば、PC(Personal Computer)のような情報処理装置において、CPUの外部に備えられる外部メモリなどを停止して省電力化を図ることが提案されている。
【0003】
ここで、PCが備えているCPUの内部には、キャッシュと呼ばれる高速小容量のメモリが備えられている。一方、CPUの外部には、DRAMのような低速大容量の外部メモリが設けられている。
【0004】
そして、CPUは、キャッシュと外部メモリとを適宜使い分けて各処理を行っており、例えば、通常はキャッシュだけを書き換え、必要に応じてキャッシュの書き換えられた内容を外部メモリに反映させる、いわゆるライトバック制御を行う。
【0005】
このようなライトバック制御を行うCPUを備えた情報処理装置の一例としては、レジューム時に必要なプログラムを予めCPUのキャッシュにロードしておき、復帰時に外部メモリが使用可能になったことのチェックを、外部のハードウェアではなくキャッシュに書き込まれたプログラムを用いて処理を行うことで、消費電力を抑えることが可能な情報処理装置が提案されている(特許文献1参照)。
【0006】
同様に、ダイナミック素子の内部状態をスタティック素子に退避して電源を切断し、次の電源投入時に退避した内部状態を復元してレジューム機能を実現する情報処理装置が提案されている(特許文献2参照)。
【0007】
【特許文献1】
特開平11−272347号公報(公開日:1999年10月8日)
【0008】
【特許文献2】
特開平6−230845号公報(公開日:1994年8月19日)
【0009】
【発明が解決しようとする課題】
しかしながら、上記従来の情報処理装置は、消費電力を削減するためのレジューム時に外部メモリ等に対する電力供給を停止しているものの、CPUが処理を行う場合には、外部メモリへのアクセスが必要となる。このため、レジューム時から通常の処理動作時に移行する際には、再度外部メモリを立ち上げる必要があるため、迅速な処理ができないとともに、レジューム時にのみ外部メモリへの電力供給を停止するため、十分に消費電力の低減を図ることができないという問題がある。
【0010】
すなわち、上記従来の情報処理装置では、レジュームモードへの移行の際に、復帰用のデータの退避や、復帰時の外部メモリが使用可能であるか否かのチェックを目的としてキャッシュを使用している。よって、何れの情報処理装置においても、タスクの処理等の動作は、ダイナミック素子や外部メモリの復帰後に開始される。したがって、レジューム時以外には常に外部メモリが起動していることになるため、十分に消費電力の低減を図ることができない。
【0011】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、外部メモリを使用せずにCPU内部で処理を行うことで、迅速な処理が可能になるとともに、外部メモリに対する電力供給を停止し、消費電力を低減することができるCPUおよびこれを備えた情報処理装置、CPUの制御方法を提供することにある。
【0012】
【課題を解決するための手段】
本発明のCPUは、上記の課題を解決するために、内部にキャッシュを備えており、上記キャッシュに対してデータの書き換えを行うとともに、この書き換えたデータを所望のタイミングで外部メモリに反映させるライトバック制御を行うCPUにおいて、処理するタスクの必要メモリ量に応じて、上記キャッシュだけにアクセスしてタスクの処理が可能であるか否かを判定し、該処理が可能である場合には、上記外部メモリに対するアクセスを禁止する制御手段を備えていることを特徴としている。
【0013】
上記の構成によれば、CPU内に備えられているキャッシュだけを用いてタスクの処理を行うことができる状態においては、外部メモリへのアクセスを禁止しているため、外部メモリに対する電力供給を停止させて消費電力を削減できる。
【0014】
すなわち、通常、ライトバック制御を行うCPUでは、所定のタイミングで、データ等が書き込まれたキャッシュから外部メモリに対して該データ等の書き込みを行うが、本発明のCPUでは、一定条件下において、キャッシュへのアクセスが可能な状態のまま、外部メモリへのアクセスを禁止している。
【0015】
例えば、処理するタスクの必要メモリ量が比較的小さく、キャッシュの残り容量だけでタスクの処理を継続させることが可能である場合には、外部メモリに対するアクセスを禁止するとともに、キャッシュだけにアクセスしてタスクの処理を行う。
【0016】
このように、キャッシュだけにアクセスしてタスクの処理が可能な状態においては、外部メモリへのアクセスを禁止しているため、アクセス禁止期間中には、外部メモリに対する電力供給を停止する、あるいは低消費電力モードに切り替える等の措置を取ることができ、結果として、本発明のCPUを備えた情報処理装置の消費電力を削減することができる。
【0017】
また、本発明のCPUでは、以上のように、キャッシュのみで行える処理は外部メモリを使用せずに処理を行い、できる限り外部メモリを使用しないようにすることで、外部メモリに供給する電力消費量を削減している。これにより、レジューム時にのみ外部メモリに対する電力供給を停止させる従来の情報処理装置と比較して、外部メモリに対する電力供給停止期間を長くでき、より効果的に消費電力を削減できる。
【0018】
さらに、キャッシュよりも低速な外部メモリに対するアクセス回数を従来よりも減らし、高速アクセスが可能なキャッシュを用いて処理を行うため、迅速な処理が可能になる。
【0019】
なお、上記キャッシュは、プログラムコード等を記憶している命令キャッシュ、データ等を記憶しているデータキャッシュおよびこれらを補完するために設けられている2次キャッシュ等を含んでいる。
【0020】
上記制御手段は、上記キャッシュの残り容量および/または処理するタスクの必要メモリ量を検出することがより好ましい。
【0021】
これにより、例えば、キャッシュの残り容量とタスクの必要メモリ量とを検出して両者を比較することで、キャッシュのみを用いて該タスクの処理を行うことが可能であるか否かを判定できる。
【0022】
このとき、判定の結果が「可能」であった場合には、外部メモリに対するアクセスを禁止するとともに電力供給を停止する。一方、判定の結果が「不可能」であった場合には、そのまま外部メモリにアクセスしてライトバック制御を行い、キャッシュの残り容量を増やすことができる。
【0023】
また、キャッシュの残り容量が殆どないことが検出された場合には、タスクの必要メモリ量を検出することなく、外部メモリにアクセスしてライトバック制御を行い、キャッシュの残り容量を増やすことができる。
【0024】
上記外部メモリに対するアクセスが禁止されている状態において、上記制御手段が、上記キャッシュだけでは処理が不可能と判断した場合、あるいはキャッシュミスが発生した場合には、上記外部メモリに対するアクセス禁止を解除することがより好ましい。
【0025】
これにより、外部メモリに対するアクセス禁止状態において、アクセス禁止を解除することで、ライトバック制御を行って、キャッシュ内のデータ等を外部メモリに書き込むことができるため、外部メモリに書き込まれたデータ等をキャッシュから消去して、キャッシュの残り容量を増加させることができる。
【0026】
そして、キャッシュの残り容量がタスクの処理に充分な容量まで増加した場合、あるいは外部メモリからキャッシュに必要なデータ等が書き込まれた後には、再度、キャッシュだけでタスクの処理を行うとともに、外部メモリに対するアクセスを禁止して消費電力を削減することが可能になる。
【0027】
また、このようなキャッシュだけにアクセスして処理を行うモードから、キャッシュに加えて外部メモリに対してもアクセスして処理を行うモードへの移行を、処理を停止させることなく、処理を継続したまま行うことができため、迅速な処理が可能になる。
【0028】
なお、上記キャッシュミスとは、読みに行ったデータがキャッシュ内に存在しなかった場合をいう。
【0029】
内部クロックのクロック周波数を制御するクロック制御手段を備えており、該クロック制御手段は、上記外部メモリに対するアクセスが禁止された場合には、上記クロック周波数を変化させることがより好ましい。
【0030】
これにより、例えば、外部メモリへのアクセスが禁止されている場合、すなわち、高速アクセスが可能なキャッシュのみにアクセスして処理を行っている場合には、クロック周波数を低くすることにより、CPUの消費電力を削減することができる。
【0031】
なお、このようにクロック周波数を低くした場合には処理速度が低下することが考えられるが、キャッシュは高速アクセスが可能であるため、処理速度をそれほど落とさずに処理を行うことが可能である。
【0032】
また、キャッシュのみで処理を行う場合において、高速アクセスが可能なキャッシュを用いているため、クロック周波数を高めることで、さらに高速処理が可能になる。
【0033】
上記制御手段は、上記キャッシュ内における不要なデータを格納しているアドレスを検出し、該検出されたアドレスに対応するキャッシュ領域を解放することがより好ましい。
【0034】
これにより、例えば、処理の終了したタスク専用のプログラム、データの領域、スタックの不要なデータ等を格納しているアドレスを検出し、このデータ等に対応するキャッシュ領域を、データが書き込まれていない領域とみなして解放することにより、実質的にキャッシュの空き容量を増やすことができるため、キャッシュを有効に利用できる。
【0035】
さらに、キャッシュ内の不要になったデータ等については、外部メモリへのライトバックを行う必要はないため、上記のように該データ等のメモリ領域を開放することで、無駄なライトバックが行われることを防止できる。
【0036】
電源投入後の初期動作時においては、所望のプログラムおよびデータを上記外部メモリから上記キャッシュに読み込んだ上で、上記外部メモリへのアクセスを禁止することがより好ましい。
【0037】
これにより、初期動作時に、外部メモリから所望のプログラムおよびデータを読み込んでいるため、キャッシュには動作に必要な情報が読み込まれているととともに、残り容量が比較的多い状態となっている。
【0038】
よって、CPUが備えているキャッシュのみにアクセスして処理を行うことができるとともに、外部メモリへのアクセスを禁止して外部メモリに対する電力供給を停止することで、初期動作時から消費電力を削減した状態にできる。
【0039】
上記制御手段は、タスクの状況が変化する際に、上記外部メモリに対するアクセスが必要か否かについての判断を行うことがより好ましい。
【0040】
これにより、OS等によって管理されているタスクの状況が変化した場合には、外部メモリへのアクセスが必要になる可能性が生じるため、その時点で外部メモリを使用する必要があるか否かについて判断し、外部メモリが必要な場合には、実際にアクセスが発生する前に外部メモリを起動することができるため、外部メモリの起動待ち時間を短縮して、処理を迅速に行うことができる。
【0041】
また、タスクの状況の変化に応じて判断するため、オーバヘッドを大きくしなくても、外部メモリへのアクセスが必要であるか否かの判断が可能になる。
【0042】
さらに、例えば、一定期間ごとに外部メモリが必要か否かのチェックを行う場合と比較して、外部メモリへのアクセスが可能であるか否かのチェックの回数を少なくすることができる。
【0043】
上記制御手段は、上記キャッシュ内のプログラムおよびデータについて、パージされたか否かについて判定し、パージされていない場合には、上記プログラムおよびデータを上記外部メモリから読み込む処理を行わないことがより好ましい。
【0044】
これにより、キャッシュ内に書き込まれたプログラムやデータについて、これらがパージされていない場合には、該プログラム等はキャッシュ内に残っているため、キャッシュのみで処理を行うモードに移行する場合に必要なプログラム等を、新たに外部メモリから読み込む処理を省略して、無駄な処理を減らすことができる。
【0045】
すなわち、外部メモリへのアクセスを禁止してキャッシュだけで動作するモードへ移行する際には、外部メモリからキャッシュに対して、キャッシュだけで動作するために必要なプログラム等をキャッシュへ書き込む必要がある。しかし、当該プログラム等がパージされていない場合には、既にキャッシュ内に存在しているため、再度外部メモリから同じプログラム等を読み出す必要はない。
【0046】
そこで、本発明のCPUは、キャッシュ内のプログラム等がパージされたか否かを判定し、必要なプログラム等だけを外部メモリから読み出すことで、外部メモリに対する不要なアクセスを省くことができる。
【0047】
本発明の情報処理装置は、上記の課題を解決するために、上記CPUと、外部メモリと、該外部メモリへ電力を供給する電源供給手段とを備えた情報処理装置において、上記電源供給手段は、上記外部メモリへのアクセスが禁止されている場合には、該外部メモリへの電力供給を停止することを特徴としている。
【0048】
上記の構成によれば、外部メモリへのアクセスが禁止されている場合、すなわちCPUが内部に備えているキャッシュに対してアクセスするだけで処理を継続できる場合には、外部メモリへの電力供給を停止することで、情報処理装置の消費電力を削減できる。
【0049】
上記外部メモリは、複数のモジュールを含んでおり、上記制御手段は、上記モジュールごとに電力供給の制御を行うことがより好ましい。
【0050】
これにより、外部メモリが、例えば、RAM、ROM等の複数のモジュールからなる場合には、このモジュールの性質に応じて電力供給を制御することで、さらに効率的に情報処理装置の消費電力を低減できる。
【0051】
例えば、キャッシュのみにアクセスして処理を行うモードに移行する際の、プログラムやデータをキャッシュに読み込む場合には、ROMだけを起動して電力供給を行う。一方、処理中にデータが満杯になった場合には、RAMだけを起動して電力供給を行う。
【0052】
このように、各モジュールの性質および状況に応じて、外部メモリに対する電力供給を細かく制御することで、より効果的に情報処理装置の消費電力を削減することができる。
【0053】
本発明のCPUの制御方法は、上記の課題を解決するために、内部に備えたキャッシュに対してデータの書き換えを行うとともに、この書き換えたデータを所望のタイミングで外部メモリに反映させるライトバック制御を行うCPUの制御方法において、処理するタスクの必要メモリ量に応じて、上記キャッシュだけにアクセスしてタスクの処理が可能であるか否かを判定し、該処理が可能であると判定した場合には、上記外部メモリに対するアクセスを禁止することを特徴としている。
【0054】
上記の制御方法によれば、CPU内に備えられているキャッシュだけを用いてタスクの処理を行うことができる状態においては、外部メモリへのアクセスを禁止しているため、外部メモリに対する電力供給を停止させて消費電力を削減できる。
【0055】
すなわち、通常、ライトバック制御を行うCPUでは、所定のタイミングで、データ等が書き込まれたキャッシュから外部メモリに対して該データ等の書き込みを行うが、本発明のCPUの制御方法では、一定条件下において、キャッシュへのアクセスが可能な状態のまま、外部メモリへのアクセスを禁止している。
【0056】
例えば、処理するタスクの必要メモリ量が比較的小さく、キャッシュの残り容量だけでタスクの処理を継続させることが可能である場合には、外部メモリに対するアクセスを禁止するとともに、キャッシュだけにアクセスしてタスクの処理を行う。
【0057】
このように、キャッシュへのアクセスだけでタスクの処理が可能な状態においては、外部メモリへのアクセスを禁止しているため、アクセス禁止期間中には、外部メモリに対する電力供給を停止する、あるいは低消費電力モードに切り替える等の措置を取ることができる。よって、結果として、本発明のCPUの制御方法を採用した情報処理装置の消費電力を削減することができる。
【0058】
また、本発明のCPUの制御方法では、以上のように、キャッシュのみで行える処理は外部メモリを使用せずに処理を行い、できる限り外部メモリを使用しないようにすることで、外部メモリに供給する電力消費量を削減している。これにより、レジューム時にのみ外部メモリに対する電力供給を停止させる従来の情報処理装置と比較して、外部メモリに対する電力供給停止期間を長くでき、より効果的に消費電力を削減できる。
【0059】
さらに、キャッシュよりも低速な外部メモリに対するアクセス回数を従来よりも減らし、高速アクセスが可能なキャッシュを用いて処理を行うため、迅速な処理が可能になる。
【0060】
【発明の実施の形態】
本発明のCPUおよびこれを備えた情報処理装置、CPUの制御方法の一実施形態について、図1〜図7に基づいて説明すれば以下の通りである。
【0061】
PC(Personal Computer、情報処理装置)1は、図2に示すように、CPU(Central Processing Unit)10、電源20、外部ROM(Read Only Memory)(外部メモリ、モジュール)30、および外部RAM(Random Access Memory)(外部メモリ、モジュール)40を備えている。
【0062】
これらの各部材は、システムバス(System-bus)50を介して接続されている。また、PC1は、さらに図示しない入力部としてのキーボード、および表示部としてのディスプレイを備えている。
【0063】
CPU10は、PC1の動作制御を行う。なお、CPU10の詳細な構成については、図1を用いて後段にて詳述する。
【0064】
電源(電源供給手段)20は、PC1の本体およびPC1が備えている各部材への電力供給を行うものであり、電源管理部21を備えている。
【0065】
電源管理部21は、電力供給線22を介して各部材に対して電力を供給しており、CPU10からの制御信号に応じて、外部ROM30および外部RAM40に対する電力供給を停止したり、再開したりする。
【0066】
外部ROM30および外部RAM40は、CPU10の外部に備えられた、CPU10の動作に必要な情報等を格納するための記憶装置である。
【0067】
外部ROM30は、固定的にデータを保持できる一方、CPU10からの新たな書き込みはできない記憶装置である。
【0068】
外部RAMは40、CPU10からの書き込みは可能であるが、固定的にデータを保持することはできない記憶装置である。
【0069】
CPU10は、このような両記憶装置の性質の違いによって、適宜、外部ROM30と外部RAM40とを使い分けて使用している。
【0070】
例えば、外部ROM30には、図2に示すように、プログラムのデータとパラメータ(固定データ)とが記録されている。また、外部RAM40には、CPU10における処理中に、グローバル変数、ローカル変数、スタックデータなどが記録される。
【0071】
ここで、CPU10の詳細な構成について、図1を用いて以下で説明する。
【0072】
CPU10は、図1に示すように、バスインターフェース11、制御ユニット12、命令キャッシュ(キャッシュ)13a、データキャッシュ(キャッシュ)13b、2次キャッシュ(キャッシュ)13c、命令デコーダ14、演算ユニット15およびレジスタ群16を備えている。
【0073】
このCPU10は、図2に示す外部メモリとしての外部ROM30または外部RAM40からバスインターフェース11を介してデータを取得し、プログラムの命令を解読して、演算またはデータ転送などの命令を実行する。
【0074】
バスインターフェース11は、データバス11a、アドレスバス11b、制御信号(線)11cからなる、図2に示すシステムバス50によって、データのやりとりを行う。
【0075】
制御ユニット12は、CPU10が備えている各部材の動作制御を行っており、CPU10において処理するタスクの必要メモリ量を見積もることができる。また、制御ユニット12は、内部クロック制御部(クロック制御手段)17、MMU(Memory Management Unit:メモリ管理装置)18、Mフラグ19a、Pフラグ19bを備えている。
【0076】
内部クロック制御部17は、クロックを生成し、CPU10の全体の処理をこのクロックに従って行わせており、生成するクロック周波数を変化させることができる。
【0077】
MMU18は、命令に応じてメモリのアドレスを生成、供給するものである。
【0078】
Mフラグ19a、Pフラグ19bについては、後段にて詳述する。
【0079】
命令デコーダ14は、CPU10内で発生した命令(コード)を解読するためのものであり、解読後、制御ユニット12、演算ユニット15等によって、データのやり取りや演算が行われる。なお、ここでのデータのやり取りについては、必要なデータが外部メモリ(外部ROM30、外部RAM40)に記録されている場合もある。
【0080】
命令キャッシュ13aおよびデータキャッシュ13bは、CPU10の内部に備えられている高速アクセスが可能な記憶装置である。
【0081】
命令キャッシュ13aは、プログラムのコードを格納するためのキャッシュである。CPU10において実行される命令は、命令キャッシュ13aに格納された外部メモリに格納されたプログラムが、命令キャッシュ13aから読み出し、解読されて実行される。
【0082】
データキャッシュ13bは、CPU10が命令を実行する際に処理の対象となる変数が格納されるキャッシュである。
【0083】
この命令キャッシュ13aおよびデータキャッシュ13bは、一般的に、1次キャッシュと呼ばれ、例えば、16Kバイト程度の格納領域を有している。命令キャッシュ13aおよびデータキャッシュ13bには、キャッシュ毎に、キャッシュ上における変数の格納場所と外部メモリのアドレスを対応づける図示しないTAGや、タスク(プロセス)ごとの論理アドレスと物理アドレスとを対応づけるための、TLB(Translation Look-aside Buffer)が備えられている。
【0084】
2次キャッシュ13cは、1次キャッシュ(命令キャッシュ13a、データキャッシュ13b)を補完するために備えられており、1次キャッシュの容量が満杯の場合に1次キャッシュに入りきらないデータ等を格納する、1次キャッシュよりも低速であるが、外部メモリよりも高速アクセスが可能な記憶装置である。
【0085】
このように、命令キャッシュ13aおよびデータキャッシュ13bを補完する2次キャッシュ13cを備えていることで、キャッシュ13a〜13cの記憶容量を増大させ、より外部メモリを使用する回数を減らすことができる。
【0086】
レジスタ群16は、命令を実行する際にデータが格納される記憶装置であって、プログラムによって操作参照可能なものと、演算ユニット15が処理中のデータを格納する場合のように直接操作できないものとがある。
【0087】
プログラムによって操作参照可能なレジスタには、処理の対象となる変数やアドレスなどを格納する汎用レジスタと、スタックポインタ(以下、SPと示す)のような用途が特定されたレジスタとがある。
【0088】
SPは、主として、サブルーチンコール(関数呼び出し)の際の引数や戻り番地などを格納するために利用されるスタック領域の使用済み領域と未使用領域の境界のアドレスを保持している。
【0089】
次に、以上のような構成のCPU10による処理について、図3(a)および図3(b)を用いて説明する。
【0090】
なお、図3(a)には、これらキャッシュの使用状況の時間変化に応じたMフラグ、Pフラグの状況についても示している。
【0091】
まず、Mフラグ、Pフラグについて説明する。
【0092】
Mフラグは、外部メモリへのアクセスが許可されているか、禁止されているかを示すフラグであって、本実施形態においては、Mフラグの値が「1」の場合には、外部メモリにアクセスして情報を反映させることが可能であることを指し、一方、Mフラグの値が「0」の場合には、外部メモリへのアクセスが禁止されたことを指す。
【0093】
このように、制御ユニットは、Mフラグを用いて、外部メモリ(外部ROM30、外部RAM40)へのアクセス禁止、解除を行う。
【0094】
例えば、キャッシュ13a〜13cが一杯でデータを書き込む余裕がない場合や、キャッシュ13a〜13cに参照すべきデータが無い場合には、Mフラグ「1」を入力して外部メモリへのアクセスを行う。また、処理によってはメモリが大量に必要となるため、始めから外部メモリを立ち上げておけばよい。なお、Mフラグの値の設定処理については後段にて説明する。
【0095】
本実施形態においては、例えば、簡単な処理のみを行う場合には、初めに必要な情報をキャッシュ13a〜13cに読み込むことによって、外部メモリを不要にし、外部メモリへのアクセスを禁止できる。なお、これらのキャッシュのデータは、最終的には必要に応じて外部メモリへと書き出される。
【0096】
Pフラグは、キャッシュ13a〜13cに備えられているデータが破壊されているか否かを判定するためのフラグである。具体的には、Pフラグが「0」の場合にはキャッシュ13a〜13c内のデータが破壊されていないことを示し、「1」の場合にはデータが破壊されていることを示す。
【0097】
例えば、キャッシュ13a〜13cの容量が満杯となり、キャッシュ13a〜13cに記録されている情報を外部RAM40に退避させて他のデータ等を上書きする場合には、所定の時点でこの退避させた情報をキャッシュ13a〜13cに記録しなおす必要がある。また、外部RAM40に退避させなくとも、例えば、外部ROM30に記録されているデータの場合には、単にキャッシュ13a〜13cの中のデータをパージしてもよい。このような場合には、データ等が破壊されているため、外部ROM30あるいは外部RAM40からのデータ等の再読み込みが必要となる。
このように、データ等の破壊、パージの有無および再読み込みの要否について、Pフラグによって判定できる。すなわち、データの破壊がなされた場合には、Pフラグの値を「1」とし、これに応じて再読み込みを行う。一方、データの破壊がなされていない場合には、Pフラグの値を「0」とし、そのまま処理を行う。
【0098】
ここで、命令キャッシュ13aとデータキャッシュ13bとMフラグ、Pフラグとを用いた実際のCPU10の動作について、図3(a)、図3(b)を用いて説明する。
【0099】
命令キャッシュ13aは、図3(a)に示すように、命令キャッシュ13a中で使用されている領域における占有面積に応じて幅を変えてタスクごとに示している。
【0100】
また、データキャッシュ13bについては、データキャッシュ13b中で使用されている領域における占有面積に応じて幅を変えて変数ごとに示している。
【0101】
ここで、図3(a)に示すグローバル変数とは、いろいろなタスクにおいて共通して用いられる変数を意味する。ここでは、TLB等のシステムが利用する領域も確保されているものとする。一方、ローカル変数とは、一つのタスク毎に用いられる変数を意味する。これらの変数は、それぞれのキャッシュのメモリ領域中において固定的に割り当てられる。
【0102】
また、図3(a)に示すスタックとは、関数などの実行中に、処理に応じてテンポラリに、すなわち動的に、メモリ領域が割り当てられる領域に相当する。なお、このスタックの領域は、タスクごとに割り当てられるメモリ領域について、模式的に全タスク分に相当する領域を示したものである。
【0103】
また、図3(b)は、図3(a)に続く状態の一例を示したものである。
【0104】
図3(a)、図3(b)に示すように、一つのプログラム(タスク)を実行する場合に、どの部分が命令キャッシュ13aに読み込まれるかということは、予め決められている。また、プログラム中のどの変数がデータキャッシュ13bに読み込まれるかということも、予め決められている。
【0105】
本実施形態のCPU10は、図3(a)に示すように、起動の直後には、タスク0〜2が命令キャッシュに読み込まれる。また、これらのタスクに対応する変数が、データキャッシュに読み込まれる。なお、上記タスク0〜2は、例えば、画面の制御、通信の制御といったCPU10の基本的な処理を行うものである。
【0106】
一方、その後に起動されるタスク3・4は、基本的な処理以外の、何らかの付加的な処理を行うものである。
【0107】
タスク3の起動要求に応じて、Mフラグが「1」となる。これは、タスク3の処理を行うために必要なコード、データ等を外部メモリから読み込むためである。読み込みによって、命令キャッシュ13aとデータキャッシュ13bとにそれぞれメモリ領域が確保される。そして、読み込み完了後には、Mフラグが「0」となる。タスク3が終了すると、命令キャッシュ13aとデータキャッシュ13bとに確保されていたメモリ領域が解放される。
【0108】
また、タスク4の起動要求の際にも、同様にMフラグが「1」となってデータ等の読み込みが行われ、その後、Mフラグが「0」となる。
【0109】
ここで、図3(a)において斜線で示したように、タイミングT1において、各タスクによるスタック使用量が、データキャッシュ13bの記憶容量を越えてしまい、容量不足となる場合がある。この場合には、Mフラグを「1」とし、スタックに記憶されていた情報を外部メモリなどに退避させる。すなわち、例えば、外部RAM40を用いて、各キャッシュ13a〜13cと外部メモリとを一体のメモリとして用いるようにする。なお、この場合には、Pフラグを「1」として、このような退避が行われたことを判定可能とする。
【0110】
この後、タスク4の処理が終了すると、図3(b)に示すように、命令キャッシュ13aとデータキャッシュ13bとに確保されていた、タスク4に対応する領域、変数領域およびスタック領域は解放される。これによって、退避されていた情報の再読み込みがなされて、起動後と同様に、MフラグとPフラグとがともに「0」となる。
【0111】
また、起動後から実行されているタスク0〜2において、あるタイミングにおいてタスク2の実行が本格化すると、図3(b)の斜線部として示すように、タイミングT2において、タスク2によるプログラムおよびデータの使用の増加が見込まれる。この場合には、Mフラグを「1」として、スタックに記憶されていた情報を外部メモリなどに退避させ、キャッシュ13a〜13cと外部メモリとを一体のメモリとして用いるようにする。また、Pフラグを「1」として、このようなキャッシュ13a〜13cのコード、データ等が破壊されたことを認識可能とする。
【0112】
そして、タイミングT3にてタスク2の実行が通常に戻ると、命令キャッシュとデータキャッシュとに確保されていた、タスク2のプログラム領域、変数領域およびスタック領域は解放される。
【0113】
これにより、外部メモリからキャッシュ13a〜13cへ、退避させた情報の再読み込みを行い、その後、起動直後と同様に、MフラグとPフラグとがともに「0」となる。
【0114】
以上のように、本実施形態のCPU10は、外部メモリへのアクセスが必要な場合には、Mフラグを「1」として外部メモリへのアクセスを行うことで、処理を継続したまま外部メモリへのアクセスを可能とし、キャッシュ13a〜13cと外部メモリとを一体のメモリとして用いることができる。
【0115】
さらに、このような外部メモリへのアクセスにより、キャッシュ13a〜13cからデータ等が退避された場合には、Pフラグを「1」とすることで、キャッシュ13a〜13c内のデータ等が破壊されていることを認識できる。これにより、タスクが終了してキャッシュ13a〜13c内に空き容量ができた場合には、そのPフラグに対応するデータ等について再読み込みを行うことで、再度キャッシュ13a〜13cのみを用いた処理が可能になる。
【0116】
次に、データキャッシュ13b内におけるスタック領域の使用状況について、図4(a)〜図4(e)を用いて説明する。
【0117】
なお、スタック領域は、タスクごとに、図4(a)〜図4(e)に示すような使用状態となっており、ボトムからSP(Stack Pointer:スタックポインタ)までが各タスクに対応する使用領域に相当する。
【0118】
タスク開始前またはタスク終了後においては、図4(a)に示すように、使用領域は少ないため、SPが低い位置にある。そして、タスクの処理の進行に従って、順次スタック領域が使用されてSPの位置が上昇し、図4(b)〜図4(e)に示すような状態となる。
【0119】
タスクが終了した場合には、図4(f)に示すプログラムに従って、図4(e)の状態から順次スタック領域が解放され、図4(a)の状態に戻るようになっているが、これについては後段にて詳述する。
【0120】
ここでさらに、本実施形態のCPU10による処理について、図5(a)〜図7(b)に示すフローチャートに基づいて説明すれば、以下の通りである。
【0121】
先ず、CPU10による、外部メモリに対するアクセスを禁止する処理について説明する。
【0122】
なお、以下に示す処理は、CPU10の起動時、タスクの処理が終了した後、または必要なデータを外部メモリから読み出した後、例えば、図3に示すタスク3の起動要求によって読み込んだ後、などに行われる。
【0123】
ステップ(以下、Sと示す)1においては、動作をリセットするか否かを判定する。例えば、CPU10の起動時には動作をリセットしてS3に進む。リセットしない場合にはS2に進む。
【0124】
S2においては、Pフラグが「0」であるか(オフであるか)否かが判定され、例えば、図3に示すタスク3の起動要求時には、Pフラグは「0」であるためS7に進む。また、例えば、図3に示すタイミングT3のような、斜線状態の終了後には、Pフラグは「1」であるためS3に進む。
【0125】
S3においては、S2においてPフラグが「1」と判定されているので、例えば、キャッシュ13a〜13cから退避させたプログラム、あるいは単にキャッシュ13a〜13cから消去した所定のプログラムについて、外部ROM30から命令キャッシュに取り込む。
【0126】
S4においては、読み込んだプログラムに対応するデータをデータキャッシュ13bへ取り込む。
【0127】
S5においては、データキャッシュ13bに変数領域の割り当てを行う。
【0128】
なお、S3〜S5において、必要なデータ等を再読み込みした場合には、S6においてPフラグを「0」に戻す。
【0129】
S7においては、S1〜S6までの処理により、必要なデータがキャッシュ13a〜13cの内部にある、または外部メモリからキャッシュ13a〜13cに再読み込みが行われた状態であるため、Mフラグを「0」に戻し、S8において外部メモリに対するアクセスを禁止し、処理を終了する。
【0130】
このように、外部メモリに対するアクセスを禁止し、その後の処理をキャッシュ13a〜13cのみを用いて行うことで、外部メモリへの電力供給を停止することができるため、PC1の消費電力を削減できる。なお、外部RAM40については、データを保持したまま低消費電力モードへ移行することで、PC1の消費電力を削減するようにしてもよい。
【0131】
なお、キャッシュ13a〜13cのみを用いて処理を行う場合には、高速処理が可能であるため、上記内部クロック制御部17のクロック周波数を低下させた場合でもある程度の処理速度が得られる。このため、クロック周波数を低下することで、CPU10の消費電力を低減できる。逆に、キャッシュ13a〜13cのみを用いて処理を行う場合において、クロック周波数を高くすることにより、より高速処理が可能になる。
【0132】
また、このようなCPU10の起動時(初期動作時)においては、所望のプログラムおよびデータを外部メモリからキャッシュ13a〜13cに読み込んだ上で、外部メモリへのアクセスを禁止することが好ましい。
【0133】
これにより、初期動作時においては、キャッシュ13a〜13cのみを用いた処理が可能になり、立ち上げ時から消費電力を削減できる。
【0134】
次に、図5(b)を用いて、本実施形態のCPU10によるタスク開始時の処理について説明する。
【0135】
S9においては、今から処理を開始するタスクの処理に、外部メモリが必要であるか否かについて判定する。このような、外部メモリの要否については、それぞれのタスクごとに個別に判断される。
【0136】
例えば、図3(a)に示すタスク0〜2においては、キャッシュ13a〜13cのみで処理が可能であり、外部メモリは不要であるので、S11へ進む。
【0137】
一方、図3(a)に示すタスク4や、図3(b)に示すタスク2では、処理が本格化してキャッシュ13a〜13cの残り容量が少なくなり、外部メモリが必要となっているため、S10へ進み、S10において外部メモリが起動される。
【0138】
S11においては、タスクの処理が開始される。
【0139】
S12においては、その時点におけるキャッシュ13a〜13cの使用状態によって、キャッシュ13a〜13cの残りの領域のみで十分か、または外部メモリが必要であるか否かについて判定される。
【0140】
例えば、図3(a)に示すタスク3については、外部メモリが不要であるため、S13に進み、図5(a)に示す外部メモリアクセス禁止モードに移行した後、処理を終了する。一方、例えば、図3(a)に示すタスク4のように、処理途中においてキャッシュ13a〜13cの残り容量が少なくなり、外部メモリが必要となった場合には、図5(a)に示す外部メモリアクセス禁止モードへ移行することなく、そのまま処理を終了する。
【0141】
次に、図5(c)を用いて、外部メモリを初期化する処理について説明する。
【0142】
なお、図5(b)のS10における外部メモリ起動の動作は、外部メモリへ起動指示を行い、図5(c)に示す外部メモリ初期化完了の割り込みを受けることを含んでいるものとする。
【0143】
本実施形態のCPU10は、図5(c)に示すように、この割り込みを受けた後に、S14においてMフラグを「1」にしてから、図5(b)のS11においてタスク処理を開始する。これは、S10において外部メモリへの起動指示を行った場合でも、外部メモリが直ぐに初期化されて使用可能となる訳ではなく、例えば、リフレッシュ処理のような初期化処理が必要となるからである。したがって、CPU10は、初期化完了の割り込みを受けた後、Mフラグを「1」としている。
【0144】
なお、CPU10は、自分のプログラムを実行するのみではなく、外部からの処理要求(刺激)(割り込み)に応じて処理をするような仕組みを持っている。例えば、キーボードへの入力が、CPU10への割り込み指示として実現されている場合には、CPU10によるキーボードの監視が不要となり、処理が容易になる。
【0145】
ここで、キャッシュ13a〜13c内にヒープ領域を確保した場合の処理について、図5(d)を用いて説明する。
【0146】
まず、キャッシュ13a〜13cにヒープ領域を確保する場合には、S15において、キャッシュ13a〜13cの容量が超過しているか否かについて判定する。ここで、超過していない場合にはS17へ進み、超過している場合には、S16において外部メモリを起動する。そして、S17においては、メモリアロケートを行い、ヒープ領域を確保した後、処理を終了する。
【0147】
このように、タスクの処理中において、キャッシュ13a〜13c内にヒープ領域を確保する場合には、キャッシュ13a〜13cの容量が超過状態となっているか否かについて判定する。ここで、超過状態である場合には、外部メモリへのアクセスが発生する前に外部メモリを起動することで、外部メモリの立ち上がり待ち時間を短縮できる。
【0148】
さらに、あるタスクの処理中に別のタスクの処理が開始された場合の処理について、図5(e)を用いて説明する。
【0149】
図5(e)に示すように、別タスクの処理が開始されると、S18において子タスクが生成され、S19において別タスクの処理が本格化したか否かについて判定する。
【0150】
ここで、処理が本格化していない場合には、図5(b)に示す単独のタスクを処理する工程へ進む。一方、S19において別タスクの処理が本格化した場合には、この時点において外部メモリを起動する。そして、S20において外部メモリを起動した後、S21においてタスクの処理を開始する。
【0151】
これにより、外部メモリが必要となってから外部メモリを立ち上げる場合と比較して、事前に外部メモリを立ち上げることができるため、立ち上がりまでの待ち時間を短縮して迅速な処理が可能になる。
【0152】
また、図5(d)、図5(e)に示すように、タスクの状況が変化する際に、外部メモリへのアクセスが必要か否かの判断を行うことで、外部メモリへのアクセスが必要になってから起動する場合と比較して、事前に外部メモリを起動することができるため、外部メモリへのアクセスを迅速に行うことができる。
【0153】
次に、図4(e)に示すように、空き容量が少なくなったデータキャッシュ13bを解放する際の処理について、図6(a)を用いて説明する。
【0154】
なお、この処理は、上述した図4(e)〜図4(a)に示した、データキャッシュ13b内におけるスタック領域に関する関数呼び出しからの戻り動作に相当する。
【0155】
また、以下では、説明の便宜上、図1に示した2次キャシュ13cがないものとして説明する。実際の処理においては、データキャッシュ13bの空き容量が少なくなった場合には、2次キャッシュ13cに必要なデータ等を格納して処理を行うため、データキャッシュ13bのみが容量超過したからといって、外部メモリへのアクセス禁止を解除するものではない。
【0156】
ここで、データキャッシュ13bは、図4(e)に示すように、ほとんど空き容量がない状態となっているものとする。
【0157】
S30においては、次の命令が、BP(Base Pointer)をSPとするという内容であるか否かについて判定し、データキャッシュ13b内を解放する方向に処理が進んでいることを確認する。
【0158】
ここで、「No」である場合には再びS30へ戻り、「Yes」の場合にはデータキャッシュ13b内を解放する方向に処理が進んでいるものと認識し、BPをSPとする処理を行って、図4(d)に示すような状態となる。
【0159】
S31においては、SPの値(x)を所定のレジスタに退避させ、S32において、次の命令が「RETURN」であるか否かを判定することで、データキャッシュ13b内を解放する方向に処理が進んでいるか否かを判定する。
【0160】
ここで、次の命令が「RETURN」である場合には、図4(c)に示す「戻り番地」を除去した状態となる。一方、次の命令が「RETURN」でない場合には、戻り動作ではないと判断してS32に戻る。
【0161】
S33においては、次の命令がSPに関係するものであるか否かについて判定し、関係する場合にはS33を繰り返す。一方、SPに関係しない場合には、S34に進んで、SPの値が先ほど退避した(X)の値よりも大きいか否かについて判定する。
【0162】
ここで、SPの値が(x)よりも小さい場合、例えば、戻った後すぐに別の関数を呼び出した場合等、においては、S30に戻る。一方、SPの値が(x)よりも大きい場合には、データキャッシュ13b内に充分な空き容量が形成されたことが認識できるため、S35へ進む。
【0163】
S35においては、データキャッシュ13bのスタック領域のSP未満のアドレスを、未書き込み状態に変更する。
【0164】
これにより、データキャッシュ13b内の領域を、図4(c)に示す状態から、図4(b)に示す状態を経て、図4(a)に示すような解放された状態にすることができる。
【0165】
続いて、S36において、全て未書き込み状態となったデータキャッシュ13bのブロックを解放した後、S30に戻る。
【0166】
以上のように、図6(a)に示すフローチャートに従って処理を行うことにより、データキャッシュ13b内の領域を、図4(e)に示す状態から図4(a)に示す状態へと戻すことができ、一括して未使用になったデータキャッシュ13b中の領域を解放できる。
【0167】
ここで、本実施形態のCPU10は、ライトバック制御を行っているため、キャッシュ13a〜13c中に記録された情報は、適宜外部メモリへと反映される。このため、キャッシュ13a〜13c中に記録された情報は、反映される前に消去されることがないように、一旦記録されるとメモリ領域を使用したままとなる。なお、スタック領域に記録されたデータ等については、外部メモリへ反映させる必要はないことから、キャッシュ13a〜13c内の不要なデータ等が格納されたアドレスを検出して、対応するキャッシュ領域を解放することで、外部メモリに対する無駄なライトバックが行われることを防止できる。
【0168】
つぎに、タスクが終了した時のCPU10の処理について、図6(b)を用いて説明する。
【0169】
S37においては、タスク終了処理を行うと、処理が終了したタスクの不要なデータ等を格納したアドレスを検出し、対応するキャッシュ13a〜13c内の領域を解放するために、以下のような処理が進められる。
【0170】
すなわち、先ず、S38において、データキャッシュ13bのスタック領域の全アドレスを、未書き込み状態に変更する。
【0171】
続いて、S39において、命令キャッシュ13aの使用領域の全ブロックを解放し、S40において、データキャッシュ13bのローカル変数の全アドレスを未書き込み状態に変更する。
【0172】
S41においては、データキャッシュ13bのローカル変数の全ブロックを解放する。
【0173】
以上の処理の後に、S42において、Mフラグが「0」であるか否かが判定され、ここで、Mフラグが「0」である場合には処理を終了する。一方、Mフラグが「0」でない場合には、S43に進む。
【0174】
S43においては、残りのタスクで外部メモリが必要であるか否かが判定される。ここで、外部メモリが必要である場合には処理を終了し、外部メモリが必要でない場合にはS44に進み、再度、図5(a)に示した外部メモリ停止モードへ移行する。
【0175】
以上のように、本実施形態のCPU10は、外部メモリへのアクセス禁止モードへ移行することで、外部メモリに対する電力供給を停止したり、低消費電力モードに移行したりする等して、PC1の消費電力を削減することができる。また、処理を継続したまま、外部メモリアクセス禁止モード、外部メモリアクセス許可モードの切り替えを行うことができる。さらに、外部メモリへのアクセスが必要な場合には、Mフラグを「1」として、外部メモリへのアクセス禁止を解除してライトバック制御を行い、キャッシュ13a〜13c内のデータ等を外部メモリに書き込むことができるため、外部メモリに書き込まれたデータ等をキャッシュ13a〜13cから消去して、キャッシュ13a〜13cの残り容量を増加させ、キャッシュ13a〜13cを効率よく利用できる。
【0176】
次に、データキャッシュ13bに記憶されたデータ等を、外部メモリに対してライトバックする動作について、図7(a)を用いて説明する。
【0177】
なお、ライトバックとは、キャッシュ13a〜13cに蓄積された情報を所定のタイミングで外部メモリへと反映させる処理をいう。
【0178】
CPU10の処理速度は、外部メモリへの書き込み速度よりも速いため、CPU10が処理を行うたびに、外部メモリに反映させるべき情報が蓄積されていく。そこで、本実施形態のCPU10においては、適宜タイミングを図って、以下に説明する処理を行うことにより、データキャッシュ13bの情報を外部メモリへと反映させている。
【0179】
S50においては、Mフラグが「0」であるか否かが判定される。Mフラグが「0」でない場合には、外部メモリへのアクセス禁止が解除された状態であるため、S56に進む。一方、Mフラグが「0」である場合には、S51に進み、キャッシュ13a〜13cの空き容量が少ない状態であるか否かについて判定を行う。
【0180】
S51においてキャッシュ13a〜13cの空き容量が少なくない場合には、CPU10は処理を終了する。一方、キャッシュ13a〜13cの空き容量が少ない場合には、S52に進み、外部メモリが起動中であるか否かを判定する。
【0181】
ここで、外部メモリが起動中である場合にはS54に進み、外部メモリが起動中でない場合にはS53に進み、外部メモリを起動した後、S54に進む。
【0182】
S54においては、外部メモリの起動が完了したか否かに関する外部メモリ初期化完了の割り込みが入るまで待機する。ここで、割り込みが入った場合には、図5(c)を用いて説明したように、Mフラグが「1」となる。そこで、S55においては、外部メモリの起動が完了したことを確認するために、Mフラグが「0」であるか否かを判定して、Mフラグが「0」でない場合にのみS56に進み、Mフラグが「0」の場合にはS55を繰り返すようにしている。
【0183】
そして、外部メモリの起動完了を確認した後、S56において、データキャッシュ13bの内容を外部メモリに反映させる。
【0184】
S57においては、データキャッシュ13bにおいて、外部メモリに反映させたデータ等が格納された領域のブロックを解放する。
【0185】
このようにデータキャッシュ13bから外部メモリへライトバックが行われ、データキャッシュ13b内における対応する領域を他のデータのために利用すべくメモリ領域のブロックを解放することができる。
【0186】
そして、それまでデータキャッシュ13b内で保持していたデータ等がパージされているため、外部メモリからデータキャッシュ13b内に書き戻すことができるように、S58において、Pフラグを「1」としてパージされたことを認識できるようにした後、処理を終了する。
【0187】
以上の動作によって、データキャッシュ13bの内容を外部メモリに反映させる、いわゆるライトバック制御を行うとともに、Pフラグを「1」とすることで、データキャッシュ13b内のデータ等がパージされたことを認識でき、必要な場合には、外部メモリへライトバックしたデータ等を書き戻すことができる。
【0188】
一方、Pフラグが「0」である場合には、キャッシュ13a〜13c内のデータ等はパージされていないデータ等が検出されたことを意味する。よって、Pフラグが「0」である場合には、キャッシュ13a〜13c内に存在する同じデータ等の外部メモリからの書き戻しを防止して、無駄な処理が行われることを防止できる。
【0189】
次に、キャッシュミスの場合の動作について、図7(b)を用いて説明する。
【0190】
なお、キャッシュミスとは、初めからキャッシュ13a〜13bに格納されていないと分かっていて外部メモリにデータを読みに行く図5(b)のS10のようなステップとは異なり、必要なデータをキャッシュ13a〜13bに読みにいったが、キャッシュ13a〜13c内に存在しなかった場合をいう。
【0191】
先ず、S59において、Mフラグが「0」であるか否かを判定する。
【0192】
ここで、Mフラグが「0」でない場合には、外部メモリがアクセス可能な状態であるため、S64に進む。
【0193】
一方、Mフラグが「0」である場合には、S60において、外部メモリが起動中であるか否かについて判定する。外部メモリが起動中の場合には、S62に進む。ここで、外部メモリが起動中でない場合には、S61において外部メモリを起動する。
【0194】
S62においては、外部メモリを起動した後、外部メモリ初期化完了の割り込みが入るまで待機する。ここで、割り込みが入った場合には、外部メモリへのアクセス禁止が解除され、Mフラグが「1」となる。そこで、S63においては、Mフラグが「0」であるか否かを判定して、Mフラグが「0」でない場合にのみS64に進み、Mフラグが「0」の場合にはS63を繰り返すようにしている。これにより、外部メモリの起動が完了するまで待機することができる。
【0195】
S64では、データキャッシュ13bの残り容量が少ない状態であるか否かについて判定を行う。キャッシュ13bの残り容量が充分ある場合にはS69に進む。
【0196】
一方、データキャッシュ13bの残り容量が少ない場合には、S65に進み、ライトバックが必要であるか否かについて判定を行う。
【0197】
ここで、ライトバックが不要である場合にはS67に進み、一方、ライトバックを行ってデータキャッシュ13bの空き容量を確保する必要がある場合には、S66において、データキャッシュ13bから外部メモリへのライトバックを行う。
【0198】
S67においては、例えば、ライトバックやその他の処理によって、不要となったデータ等に対応するデータキャッシュ13b内のブロックを解放する。
【0199】
S68においては、Pフラグを「1」とし、データキャッシュ13b内のデータ等がパージされたことを認識できるようにする。
【0200】
S69においては、外部メモリから所望のデータ等をデータキャッシュ13bへ取り込んだ後、処理を終了する。
【0201】
以上のように、本実施形態のCPU10は、予めキャッシュにロードしたプログラムと、キャッシュで利用可能なアドレス空間に割り付けた変数とを用いて、できる限り外部メモリにアクセスすることなく、内部のキャッシュ13a〜13cだけを用いて処理を進める。そして、キャッシュ13a〜13cだけでは処理しきれずに、外部メモリが必要になった時点で、それまでの処理を継続しつつ、外部メモリを起動している。
【0202】
これにより、外部メモリに対するアクセス禁止期間をできる限り長くして、省電力化を図るとともに、外部メモリを用いずにキャッシュ13a〜13cだけで処理を進めることで、高速処理を実現したCPU10およびそれを備えたPC1を提供できる。
【0203】
本発明のCPUの制御方法は、以上のように、図5(a)〜図7(b)に示すフローチャートに従ってCPU10を制御することにより、できる限りキャッシュ13a〜13cのみを用いて処理を行うとともに、外部メモリへのアクセスを禁止することで、外部メモリへの電力供給を停止する、あるいは低消費電力モードへ移行する等して、PC1の電力消費量を削減できる。
【0204】
なお、本実施形態のCPU10では、キャッシュ13a〜13cの記憶容量が満杯であるか否かについて判定し、外部メモリへのアクセス禁止モードへ移行するか否かを決定する例を挙げて説明したが、本発明はこれに限定されるものではない。例えば、キャッシュ13a〜13cにおける空き容量を検出し、これと処理を行うタスクの必要メモリ量とを比較して、外部メモリへのアクセスが必要であるか否かを決定してもよい。
【0205】
ただし、本実施形態のようにキャッシュ13a〜13cの空き容量だけを検出して判断することで、空き容量が満杯である場合にはタスクの必要メモリ量とは無関係に外部メモリへのアクセスが必要となるため、外部メモリへのアクセスの必要性の有無を認識できる。
【0206】
また、本実施形態のCPU10では、外部メモリへのアクセス禁止状態を「Mフラグ」を用いて設定し、キャッシュ13a〜13c内のデータ等がパージされたか否かを「Pフラグ」を用いて認識していたが、このようなフラグの使用は本発明を実施するための一つの手段として例示したものであり、本発明はこれに限定されるものではない。
【0207】
また、本実施形態の PC1は、上述したように、外部ROM30、外部RAM40とともに、電源20を備えている。これにより、キャッシュ13a〜13cだけを用いてタスクの処理が可能な場合、すなわち、外部メモリへのアクセスが禁止されている場合には、電源20から外部ROM30および外部RAM40に対する電源供給を停止して、PC1の消費電力を削減できる。
【0208】
また、本実施形態のPC1は、上述したように、外部メモリとして、外部ROm30と外部RAM40とを備えており、両方の記憶装置の特性に応じて両者を使い分けている。これにより、本実施形態のCPU10によって処理を行うことにより、より効果的にPC1の消費電力を低減することができる。
【0209】
なお、本発明のCPUは、2次キャッシュ、3次キャッシュ等の設置により将来的にキャッシュの容量が増大してきた場合には、低消費電力化、高速処理を実現するCPUとして特に有効である。
【0210】
【発明の効果】
本発明のCPUは、以上のように、処理するタスクの必要メモリ量に応じて、上記キャッシュだけにアクセスしてタスクの処理が可能であるか否かを判定し、該処理が可能である場合には、上記外部メモリに対するアクセスを禁止する制御手段を備えている構成である。
【0211】
それゆえ、CPU内に備えられているキャッシュだけを用いてタスクの処理を行うことができる状態においては、外部メモリへのアクセスを禁止しているため、外部メモリに対する電力供給を停止する、あるいは低消費電力モードに切り替える等の措置を取ることができ、結果として、本発明のCPUを備えた情報処理装置の消費電力を削減することができるという効果を奏する。
【0212】
さらに、キャッシュよりも低速な外部メモリに対するアクセス回数を従来よりも減らし、高速アクセスが可能なキャッシュを用いて処理を行うため、迅速な処理が可能になる。
【0213】
上記制御手段は、上記キャッシュの残り容量および/または処理するタスクの必要メモリ量を検出することがより好ましい。
【0214】
それゆえ、例えば、キャッシュの残り容量とタスクの必要メモリ量とを検出して両者を比較することで、キャッシュのみを用いて該タスクの処理を行うことが可能であるか否かを判定できるという効果を奏する。
【0215】
上記外部メモリに対するアクセスが禁止されている状態において、上記制御手段が、上記キャッシュだけでは処理が不可能と判断した場合、あるいはキャッシュミスが発生した場合には、上記外部メモリに対するアクセス禁止を解除することがより好ましい。
【0216】
それゆえ、外部メモリに対するアクセス禁止状態において、アクセス禁止を解除することで、ライトバック制御を行って、キャッシュ内のデータ等を外部メモリに書き込むことができるため、外部メモリに書き込まれたデータ等をキャッシュから消去して、キャッシュの残り容量を増加させることができるという効果を奏する。
【0217】
内部クロックのクロック周波数を制御するクロック制御手段を備えており、該クロック制御手段は、上記外部メモリに対するアクセスが禁止された場合には、上記クロック周波数を変化させることがより好ましい。
【0218】
それゆえ、例えば、外部メモリへのアクセスが禁止されている場合、すなわち、高速アクセスが可能なキャッシュのみにアクセスして処理を行っている場合には、クロック周波数を低くすることにより、CPUの消費電力を削減することができるという効果を奏する。
【0219】
上記制御手段は、上記キャッシュ内における不要なデータを格納しているアドレスを検出し、該検出されたアドレスに対応するキャッシュ領域を解放することがより好ましい。
【0220】
それゆえ、例えば、処理の終了したタスク専用のプログラム、データの領域、スタックの不要なデータ等を格納したアドレスを検出し、このデータ等に対応するキャッシュ領域を、データが書き込まれていない領域とみなして解放することにより、実質的にキャッシュの空き容量を増やすことができるため、キャッシュを有効に利用できるという効果を奏する。
【0221】
電源投入後の初期動作時においては、所望のプログラムおよびデータを上記外部メモリから上記キャッシュに読み込んだ上で、上記外部メモリへのアクセスを禁止することがより好ましい。
【0222】
それゆえ、CPUが備えているキャッシュのみにアクセスして処理を行うことができるとともに、外部メモリへのアクセスを禁止して外部メモリに対する電力供給を停止することで、初期動作時から消費電力を削減した状態にできるという効果を奏する。
【0223】
上記制御手段は、タスクの状況が変化する際に、上記外部メモリに対するアクセスが必要か否かについての判断を行うことがより好ましい。
【0224】
それゆえ、OS等によって管理されているタスクの状況が変化した場合には、外部メモリへのアクセスが必要になる可能性が生じるため、その時点で外部メモリを使用する必要があるか否かについて判断し、外部メモリが必要な場合には、実際にアクセスが発生する前に外部メモリを起動することができるため、外部メモリの起動待ち時間を短縮して、処理を迅速に行うことができるという効果を奏する。
【0225】
上記制御手段は、上記キャッシュ内のプログラムおよびデータについて、パージされたか否かについて判定し、パージされていない場合には、上記プログラムおよびデータを上記外部メモリから読み込む処理を行わないことがより好ましい。
【0226】
それゆえ、キャッシュ内に書き込まれたプログラムやデータについて、これらがパージされていない場合には、該プログラム等はキャッシュ内に残っているため、キャッシュのみで処理を行うモードに移行する場合に必要なプログラム等を、新たに外部メモリから読み込む処理を省略して、無駄な処理を減らすことができるという効果を奏する。
【0227】
本発明の情報処理装置は、以上のように、上記電源供給手段は、上記外部メモリへのアクセスが禁止されている場合には、該外部メモリへの電力供給を停止する構成である。
【0228】
それゆえ、外部メモリへのアクセスが禁止されている場合、すなわちCPUが内部に備えているキャッシュに対してアクセスするだけで処理を継続できる場合には、外部メモリへの電力供給を停止することで、情報処理装置の消費電力を削減できるという効果を奏する。
【0229】
上記外部メモリは、複数のモジュールを含んでおり、上記制御手段は、上記モジュールごとに電力供給の制御を行うことがより好ましい。
【0230】
それゆえ、外部メモリが、例えば、RAM、ROM等の複数のモジュールからなる場合には、このモジュールの性質に応じて電力供給を制御することで、さらに効率的に情報処理装置の消費電力を低減できるという効果を奏する。
【0231】
本発明のCPUの制御方法は、以上のように、処理するタスクの必要メモリ量に応じて、上記キャッシュだけにアクセスしてタスクの処理が可能であるか否かを判定し、該処理が可能であると判定した場合には、上記外部メモリに対するアクセスを禁止する制御方法である。
【0232】
それゆえ、CPU内に備えられているキャッシュだけを用いてタスクの処理を行うことができる状態においては、外部メモリへのアクセスを禁止しているため、外部メモリに対する電力供給を停止させて消費電力を削減できるという効果を奏する。
【0233】
さらに、キャッシュよりも低速な外部メモリに対するアクセス回数を従来よりも減らし、高速アクセスが可能なキャッシュを用いて処理を行うため、迅速な処理が可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態にかかるCPUの内部構造を示すブロック図である。
【図2】図1のCPUと外部メモリとを備えたPCの構成を示すブロック図である。
【図3】(a)は、命令キャッシュ、データキャッシュにおける使用状況(既使用容量)の時間変化を模式的に示すタイミングチャートであり、(b)は、(a)に示すタイミングチャートに続く状態の一例を示すタイミングチャートである。
【図4】(a)〜(e)は、タスク開始前またはタスク終了後におけるスタックの使用状態を示す図であり、(f)は、この場合の実際のプログラムを示す図である。
【図5】(a)〜(e)は、図1のCPUによる処理を示すフローチャートである。
【図6】(a)・(b)は、データキャッシュ解放、タスク終了時のCPUの処理を示すフローチャートである。
【図7】(a)・(b)は、データキャッシュライトバック、キャッシュミス発生時のCPUの処理を示すフローチャートである。
【符号の説明】
1 PC(情報処理装置)
10 CPU
11 バスインターフェース
12 制御ユニット(制御手段)
13a 命令キャッシュ(キャッシュ)
13b データキャッシュ(キャッシュ)
13c 2次キャッシュ(キャッシュ)
14 命令デコーダ
15 演算ユニット
16 レジスタ群
17 内部クロック制御部(内部クロック制御手段)
18 MMU
19a Mフラグ
19b Pフラグ
20 電源(電源供給手段)
21 電源管理部
22 電力供給線
30 外部ROM(外部メモリ)
40 外部RAM(外部メモリ)
50 システムバス

Claims (11)

  1. 内部にキャッシュを備えており、上記キャッシュに対してデータの書き換えを行うとともに、この書き換えたデータを所望のタイミングで外部メモリに反映させるライトバック制御を行うCPUにおいて、
    処理するタスクの必要メモリ量に応じて、上記キャッシュだけにアクセスしてタスクの処理が可能であるか否かを判定し、該処理が可能である場合には、上記外部メモリに対するアクセスを禁止する制御手段を備えていることを特徴とするCPU。
  2. 上記制御手段は、上記キャッシュの残り容量および/または処理するタスクの必要メモリ量を検出することを特徴とする請求項に記載のCPU。
  3. 上記外部メモリに対するアクセスが禁止されている状態において、上記制御手段が、上記キャッシュだけでは処理が不可能と判断した場合、あるいはキャッシュミスが発生した場合には、上記外部メモリに対するアクセス禁止を解除することを特徴とする請求項2に記載のCPU。
  4. 内部クロックのクロック周波数を制御するクロック制御手段を備えており、
    該クロック制御手段は、上記外部メモリに対するアクセスが禁止された場合には、上記クロック周波数を変化させることを特徴とする請求項1〜3の何れか1項に記載のCPU。
  5. 上記制御手段は、上記キャッシュ内における不要なデータを格納しているアドレスを検出し、該検出されたアドレスに対応するキャッシュ領域を解放することを特徴とする請求項1〜4の何れか1項に記載のCPU。
  6. 電源投入後の初期動作時においては、所望のプログラムおよびデータを上記外部メモリから上記キャッシュに読み込んだ上で、上記外部メモリへのアクセスを禁止することを特徴とする請求項1〜5の何れか1項に記載のCPU。
  7. 上記制御手段は、タスクの状況が変化する際に、上記外部メモリに対するアクセスが必要か否かについての判断を行うことを特徴とする請求項1〜6の何れか1項に記載のCPU。
  8. 上記制御手段は、上記キャッシュ内のプログラムおよびデータについて、パージされたか否かについて判定し、パージされていない場合には、上記プログラムおよびデータを上記外部メモリから読み込む処理を行わないことを特徴とする請求項1〜7の何れか1項に記載のCPU。
  9. 請求項1〜8の何れか1項に記載のCPUと、外部メモリと、該外部メモリへ電力を供給する電源供給手段とを備えた情報処理装置において、
    上記電源供給手段は、上記外部メモリへのアクセスが禁止されている場合には、該外部メモリへの電力供給を停止することを特徴とする情報処理装置。
  10. 上記外部メモリは、複数のモジュールを含んでおり、
    上記制御手段は、上記モジュールごとに電力供給の制御を行うことを特徴とする請求項9に記載の情報処理装置。
  11. 内部に備えたキャッシュに対してデータの書き換えを行うとともに、この書き換えたデータを所望のタイミングで外部メモリに反映させるライトバック制御を行うCPUの制御方法において、
    処理するタスクの必要メモリ量に応じて、上記キャッシュだけにアクセスしてタスクの処理が可能であるか否かを判定し、該処理が可能であると判定した場合には、上記外部メモリに対するアクセスを禁止することを特徴とするCPUの制御方法。
JP2002340055A 2002-11-22 2002-11-22 Cpuおよびこれを備えた情報処理装置、cpuの制御方法 Expired - Fee Related JP3986950B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002340055A JP3986950B2 (ja) 2002-11-22 2002-11-22 Cpuおよびこれを備えた情報処理装置、cpuの制御方法
US10/719,814 US7266641B2 (en) 2002-11-22 2003-11-21 CPU, information processing device including the CPU, and controlling method of CPU

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002340055A JP3986950B2 (ja) 2002-11-22 2002-11-22 Cpuおよびこれを備えた情報処理装置、cpuの制御方法

Publications (2)

Publication Number Publication Date
JP2004178016A JP2004178016A (ja) 2004-06-24
JP3986950B2 true JP3986950B2 (ja) 2007-10-03

Family

ID=32321937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002340055A Expired - Fee Related JP3986950B2 (ja) 2002-11-22 2002-11-22 Cpuおよびこれを備えた情報処理装置、cpuの制御方法

Country Status (2)

Country Link
US (1) US7266641B2 (ja)
JP (1) JP3986950B2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9701960D0 (en) * 1997-01-30 1997-03-19 Sgs Thomson Microelectronics A cache system
TWI343531B (en) * 2003-12-19 2011-06-11 Oce Tech Bv Erasing a stored information pattern on a storage medium
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8416251B2 (en) 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US7869835B1 (en) * 2005-03-02 2011-01-11 Nvidia Corporation Method and system for pre-loading and executing computer instructions within the cache memory
US20060265555A1 (en) * 2005-05-19 2006-11-23 International Business Machines Corporation Methods and apparatus for sharing processor resources
US8250348B2 (en) * 2005-05-19 2012-08-21 International Business Machines Corporation Methods and apparatus for dynamically switching processor mode
JP2007058593A (ja) * 2005-08-24 2007-03-08 Sharp Corp 情報処理装置
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US7412570B2 (en) * 2005-11-15 2008-08-12 Sun Microsystems, Inc. Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state
US7958312B2 (en) * 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7873788B1 (en) 2005-11-15 2011-01-18 Oracle America, Inc. Re-fetching cache memory having coherent re-fetching
US7934054B1 (en) 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
US7516274B2 (en) * 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7647452B1 (en) 2005-11-15 2010-01-12 Sun Microsystems, Inc. Re-fetching cache memory enabling low-power modes
JP4328334B2 (ja) 2006-03-13 2009-09-09 パナソニック株式会社 半導体集積回路装置
US8429634B2 (en) 2006-07-26 2013-04-23 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, memory circuit, and machine language program generation device, and method for operating semiconductor device and memory circuit
JP4808108B2 (ja) * 2006-08-29 2011-11-02 パナソニック株式会社 プロセッサシステム
JP5022715B2 (ja) * 2007-01-23 2012-09-12 三洋電機株式会社 携帯用音楽プレーヤ
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
JP4667443B2 (ja) * 2007-11-21 2011-04-13 パナソニック株式会社 半導体集積回路装置
US20090150479A1 (en) * 2007-12-07 2009-06-11 Peter Eberlein Web Feeds for Work List Publishing
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
KR101244795B1 (ko) * 2008-07-23 2013-03-18 마이크로 모우션, 인코포레이티드 외부 메모리 액세스 제어를 갖는 처리 시스템
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
JP5316148B2 (ja) * 2009-03-24 2013-10-16 富士通セミコンダクター株式会社 情報処理装置およびデータ修復方法
JP2011022746A (ja) * 2009-07-15 2011-02-03 Renesas Electronics Corp キャッシュメモリのデータ入れ替え方法
JP4800415B2 (ja) 2009-08-17 2011-10-26 富士通株式会社 中継装置、macアドレス検索方法
US20110161592A1 (en) * 2009-12-31 2011-06-30 Nachimuthu Murugasamy K Dynamic system reconfiguration
JP2012018700A (ja) * 2011-10-25 2012-01-26 Renesas Electronics Corp 演算処理装置、および記憶システム
WO2013101122A1 (en) 2011-12-29 2013-07-04 Intel Corporation Secure error handling
US9396117B2 (en) 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
JP5902208B2 (ja) * 2012-02-14 2016-04-13 ルネサスエレクトロニクス株式会社 データ処理装置
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
JP5787852B2 (ja) * 2012-09-07 2015-09-30 株式会社東芝 制御装置、情報処理装置、制御方法およびプログラム
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
JP2014013605A (ja) * 2013-09-18 2014-01-23 Micro Motion Inc 外部メモリーへのアクセスを制御する処理システム
US9568986B2 (en) 2013-09-25 2017-02-14 International Business Machines Corporation System-wide power conservation using memory cache
US9342134B2 (en) * 2013-09-27 2016-05-17 Intel Corporation Power consumption reduction in a computing device
JP5715670B2 (ja) * 2013-10-10 2015-05-13 キヤノン株式会社 通信装置
US20150293752A1 (en) * 2014-04-11 2015-10-15 Pradeep Varma Unrestricted, Fully-Source-Preserving, Concurrent, Wait-Free, Synchronization-Free, Fully-Error-Handling Frontend With Inline Schedule Of Tasks And Constant-Space Buffers
JP5755789B2 (ja) * 2014-10-06 2015-07-29 株式会社東芝 制御装置、制御方法およびプログラム
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
JPH06230845A (ja) 1993-02-08 1994-08-19 Fujitsu Ltd レジューム方式
AU3313795A (en) * 1994-10-14 1996-04-26 Compaq Computer Corporation Circuit for placing a cache memory into low power mode in response to special bus cycles
JPH11272347A (ja) 1998-03-24 1999-10-08 Toshiba Corp 情報処理装置、及びこの情報処理装置に於けるサスペンド/レジューム方法
JPH11317000A (ja) * 1998-04-30 1999-11-16 Toshiba Corp ディスク記憶装置及び同装置における電力供給制御方法
US6105141A (en) * 1998-06-04 2000-08-15 Apple Computer, Inc. Method and apparatus for power management of an external cache of a computer system

Also Published As

Publication number Publication date
JP2004178016A (ja) 2004-06-24
US20040103253A1 (en) 2004-05-27
US7266641B2 (en) 2007-09-04

Similar Documents

Publication Publication Date Title
JP3986950B2 (ja) Cpuおよびこれを備えた情報処理装置、cpuの制御方法
US5928365A (en) Computer system using software controlled power management method with respect to the main memory according to a program's main memory utilization states
JP5351046B2 (ja) フラッシュメモリシステムの高速起動を容易にする方法およびシステム
US20070038850A1 (en) System boot and resume time reduction method
JP2549034B2 (ja) 記憶装置
US6092159A (en) Implementation of configurable on-chip fast memory using the data cache RAM
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
US7395397B2 (en) Electronic apparatus with page table management of program, data processing method and computer program
US20040148481A1 (en) Method and apparatus for memory management
JP2009211153A (ja) メモリ装置、情報処理装置及び電力制御方法
KR20070060101A (ko) 무선 단말기에서의 비휘발성 메모리 관리 시스템 및 방법
JPH07146820A (ja) フラッシュメモリの制御方法及び、それを用いた情報処理装置
JP2004046324A (ja) 待機モード付情報処理装置およびその待機モード開始方法と待機モード解除方法
US7149844B2 (en) Non-volatile memory device
JP2007011580A (ja) 情報処理装置
KR101472967B1 (ko) 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템
JPH06349286A (ja) フラッシュメモリ用書き込み制御方法および制御装置
JP2004192403A (ja) キャッシュメモリのデータ管理方法、及び情報処理装置
JP3541349B2 (ja) キャッシュメモリ・バックアップシステム
JP2009258925A (ja) 計算機システムおよび計算機システムのメモリ管理方法
JP2004326153A (ja) 消費電力低減装置
JP3956305B2 (ja) 不揮発性半導体記憶装置およびデータ処理装置
JP4334312B2 (ja) 起動時間短縮演算装置およびデータロード方法
JP2002229864A (ja) 半導体装置
JP2000276461A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070619

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070619

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070711

R150 Certificate of patent or registration of utility model

Ref document number: 3986950

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110720

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110720

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120720

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120720

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130720

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees