JP6030987B2 - メモリ制御回路 - Google Patents

メモリ制御回路 Download PDF

Info

Publication number
JP6030987B2
JP6030987B2 JP2013076689A JP2013076689A JP6030987B2 JP 6030987 B2 JP6030987 B2 JP 6030987B2 JP 2013076689 A JP2013076689 A JP 2013076689A JP 2013076689 A JP2013076689 A JP 2013076689A JP 6030987 B2 JP6030987 B2 JP 6030987B2
Authority
JP
Japan
Prior art keywords
memory
access
instruction
bank
cpu
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
JP2013076689A
Other languages
English (en)
Other versions
JP2014203148A (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.)
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 JP2013076689A priority Critical patent/JP6030987B2/ja
Priority to US14/242,413 priority patent/US10108249B2/en
Priority to CN201410129073.0A priority patent/CN104102325B/zh
Publication of JP2014203148A publication Critical patent/JP2014203148A/ja
Application granted granted Critical
Publication of JP6030987B2 publication Critical patent/JP6030987B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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
    • 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Description

この発明はメモリ制御回路に関し、たとえば、複数のバンク構成を有する不揮発性メモリの制御に好適に用いられるものである。
全てのメモリに対して電源を供給する従来のメモリ制御回路においては、アクセスしないメモリに対しても均一に電源供給を行うためメモリの消費電力が大きくなるという課題があった。このような課題に対して、メモリをバンクに分割し、メモリ制御回路がアクセスしないメモリバンクに対して電源の供給を抑えるメモリ制御回路が開発されている。
たとえば、特開昭63−026892号公報(特許文献1)に開示されたメモリ装置では、第1および第2のメモリバンクに電源電流制御回路から電源電流が供給される。電源電流制御回路は、操作パネルから受けた信号がノーマルモードであれば第1および第2のメモリバンクの両方に電源電流を供給し、操作パネルから受けた信号がローパワーモードであれば第1のメモリバンクのみへ電源電流を供給する。
特開平07−105686号公報(特許文献2)に開示されたメモリ制御装置では、命令フェッチのために実際にアクセスするメモリアドレスと近い将来にアクセスされると予測されるメモリアドレスに応じたメモリバンクにのみ、給電制御回路の制御によって、主電源回路からの主電源が供給される。他のアクセスしないメモリバンクにはバックアップ電源回路からのバックアップ電源が供給される。ここで、近い将来にアクセスされると予測されるメモリアドレスは、現在のアクセスアドレスに所定のアドレス値増分を加算することによって算出される。
特開2010−15375号公報(特許文献3)に開示されたマイクロコンピュータにおいて、メモリユニットは、動作モードとして通常モードと通常モードより消費電力の少ないスタンバイモードとを含む。メモリ制御回路は、CPUがメモリユニットからフェッチした命令に対して分岐命令を検出し、検出結果に応じてメモリユニットの動作モードを変更する。
特開昭63−026892号公報 特開平07−105686号公報 特開2010−15375号公報
ところで、不揮発性メモリを使用する場合には、アクセス予定のないメモリバンク対しては電源供給を停止しても記憶内容が失われることはない。したがって、各メモリバンクへの電源供給を、電源オフ(OFF)、スタンバイ電圧の供給、および通常電圧の供給(電源オン(ON))の3状態に切り替えることによって消費電力を低減することができる。ところが、従来技術(たとえば、上記の特許文献1〜3)では、各メモリバンクの使用状況に応じて上記の3状態に電源供給を切り替えるための具体的な制御手段について開示されていない。
具体的に、特開昭63−026892号公報(特許文献1)の場合には、使用しないメモリバンクへの電源は遮断され、スタンバイモードが設けられていない。このため、アクセス前にメモリバンクの電源を速やかにオンすることができずにアクセスに時間がかかるため性能が悪くなるという問題がある。さらに、この文献の場合には、メモリバンクの電源制御を操作パネルで行っているため、プログラム実行中にメモリバンクの電源制御を切り替えることができず、しばらくアクセスしないメモリバンクにおいて余分な電力が消費されるという問題がある。
一方、特開平07−105686号公報(特許文献2)の場合には、アクセスしていないメモリバンクにはバックアップ電源が供給され、電源オフの制御はなされない。特開2010−15375号公報(特許文献3)の場合も同様に、動作モードとして通常モードおよびスタンバイモードのみが設けられている。したがって、これらの文献の場合には、アクセス予定のないメモリバンクに対してもスタンバイ電源(バックアップ電源)が供給されるために、余分な電力が消費されるという問題がある。
その他の問題として、従来技術では、将来のメモリアクセスの発生を予測する方法が限られているという問題がある。具体的に、特開平07−105686号公報(特許文献2)の場合には、現在のアクセスアドレスに所定の増分値を加算することによって将来のアクセスアドレスを予測する方法に限定されている。特開2010−15375号公報(特許文献3)の場合には、分岐命令を検出することによって将来のメモリアクセスの発生を予測する方法に限定されている。結果として、従来技術の場合には、アクセスのない期間におけるメモリバンクの電源供給を削減することができないか、またはアクセスする前にメモリバンクの電源を予めオンすることができずにアクセスに時間がかかり性能が悪くなるという問題がある。
したがって、この発明の主たる目的は、不揮発性メモリを制御するメモリ制御回路において、不揮発性メモリに好適な電源制御を行うことによって従来よりもメモリ消費電力を削減することである。
この発明の他の目的は、メモリアクセスの発生を従来よりも的確に予測することによって、メモリアクセスにおいて待ち時間が生じないようにして、メモリのアクセス性能の低下を抑えつつ、メモリの消費電力を削減することである。
一実施の形態のメモリ制御回路は、CPUで動作するプログラムのタスクごとに、CPUが不揮発性メモリに含まれる複数のバンクの動作モード(電源オフ、スタンバイ、および電源オン)を個別に初期設定するための第1のレジスタ群と、命令フェッチのためのアクセスアドレスおよびフェッチされた命令の種類に基づいて、CPUから各バンクへアクセスが発生するか否かを判定するアクセス判定部とを備える。メモリ制御回路は、第1のレジスタ群の設定値およびアクセス判定部の判定結果に基づいて、各バンクの動作モードを切り替える。
上記の実施の形態によれば、不揮発性メモリに好適な電源制御を行うことによって従来よりもメモリ消費電力を削減することができる。
一実施の形態によるマイクロプロセッサの構成を示すブロック図である。 図1のメモリ使用領域指定部およびモード制御部の内部構成の一例を示す図である。 図1の命令アドレス判定部の内部構成の一例を示す図である。 図1の命令デコード判定部の内部構成の一例を示す図である。 図1の分岐判定部の内部構成の一例を示す図である。 各メモリバンクの電源制御設定の例を表形式で示した図である。 メモリバンク2に対する電源制御の例を示すタイミング図である。 メモリ制御回路および各メモリバンクへ供給される電源電圧の変化を示すタイミング図である。 データ(オペランド)アクセスに対するメモリ制御回路の動作例を示すタイミング図である。
以下、一実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰り返さない場合がある。
[マイクロプロセッサの全体構成]
図1は、一実施の形態によるマイクロプロセッサの構成を示すブロック図である。図1を参照して、マイクロプロセッサ1は、CPU(Central Processing Unit)2と、不揮発性メモリ3と、メモリ制御回路4と、電源スイッチ回路5とを含む。
CPU2は、不揮発性メモリ3に格納されたプログラムに含まれる命令(フェッチコードCD)を順次取り込み(命令フェッチ)、取り込んだ命令を実行する。通常、CPU2は、プログラムカウンタと呼ばれるレジスタに格納されたメモリアドレスADを不揮発性メモリ3に出力し、当該メモリアドレスADに格納されている命令が読み出される。さらに、CPU2は、命令中に記載されたオペランドアドレスおよび/またはオペランドデータに応じて、不揮発性メモリ3にデータDTを書き込んだり、不揮発性メモリ3からデータDTを読み出したりする。さらに、CPU2は、メモリアクセス(読み出し、書き込み)のための制御信号CSを出力する。
不揮発性メモリ3は、命令とデータ(オペランドデータ)とを格納する。不揮発性メモリ3は、電源オフ後も記憶を保持することができるので、使用予定のないときに電源をオフすることによって揮発性メモリよりも消費電力を削減することができる。不揮発性メモリ3として、たとえば、MRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistance RAM)、FeRAM(Ferroelectric RAM)が挙げられる。
図1に示すように、不揮発性メモリ3は、N+1個のメモリバンクBK_0〜BK_N+1(総称するときまたは不特定のものを示すとき、メモリバンクBKと記載する)に分割されている。各メモリバンクBKは、電源モード(動作モードとも称する)として、通常電圧Vnが供給される通常モードと、スタンバイ電圧Vsが供給されるスタンバイモードと、電源電圧が遮断される電源遮断モードとを有する。通常電圧Vnはメモリ動作(読み出し/書き込み)が可能なレベルの電圧である。スタンバイ電圧Vsは通常電圧より低い電圧である。したがって、スタンバイモードは、通常モードよりも消費電力が小さくなる。スタンバイ電圧Vsは、スタンバイモードから通常モードに切り替わったとき(すなわち、メモリバンクBKに供給される電源電圧がスタンバイ電圧Vsから通常電圧Vnに変化したとき)、メモリ動作可能となるまでの立ち上がり時間が数十ns程度以内になるように設定される。具体的なスタンバイ電圧Vsの設定値は、メモリデバイスの特性に応じて異なる。
遮断モードから通常モードに切り替わることによって(すなわち、メモリバンクBKに供給される電源電圧が0から通常電圧Vnに増加することによって)、メモリ動作可能となるまでの立ち上り時間は数μs以上かかる。この理由は、メモリが始動するための初期化処理があるからである。スタンバイ電圧Vsを供給することにより、初期化処理をある程度のところまで完了した状態にすることによって、立ち上がり時間を短くすることができる。このように、電源オフの状態ではなくスタンバイ電圧を供給することにすることによって、メモリへのアクセスが速くなり性能の劣化を最小限にとどめることができる。
メモリ制御回路4は、CPU2からのメモリアクセスに応答して、不揮発性メモリ3からの命令またはデータの読み出しの制御と、不揮発性メモリ3へのデータの書き込みの制御とを行う。メモリ制御回路4は、さらに、各メモリバンクBKごとに電源供給の制御(すなわち、上記の通常モード、スタンバイモード、および電源遮断モードの切り替え制御)を行う。メモリ制御回路4の詳細な構成については後述する。
電源スイッチ回路5は、メモリ制御回路4から出力された各メモリバンクBKの電源モードを設定するためのモード信号に応じて、各メモリバンクBKに供給する電源電圧を、通常電圧Vn、スタンバイ電圧Vs、およびオフ状態のいずれかに切り替える。
[メモリ制御回路の構成]
図1を参照して、メモリ制御回路4は、その内部に、メモリ使用領域指定部10と、命令アドレス判定部20と、命令デコード判定部30と、分岐判定部40と、アクセス先判定部50と、データセレクタ部60と、モード制御部70とを含む。命令アドレス判定部20、命令デコード判定部30、および分岐判定部40によって、メモリアクセス判定部80が構成される。メモリアクセス判定部80は、CPU2が命令フェッチする際のアクセスアドレスおよびフェッチされた命令の種類に基づいて、CPU2から各メモリバンクBKへアクセスが発生するか否かを判定する。以下、メモリ制御回路4の各構成要素について順に説明する。
1.メモリ使用領域指定部
メモリ使用領域指定部10は、各メモリバンクBKに供給する電源電圧(すなわち、電源オフ、スタンバイ電圧、および通常電圧)を指定するために、メモリバンクBKごとに設定できる制御レジスタ(図2の11_0〜11_N)を備えている。CPU2は、ソフトウェア処理により、各制御レジスタに対応するメモリバンクの電源電圧を予め設定することができる。
たとえば、CPU2は、ソフトウェア処理により、プログラムタスクごとに実際にメモリアクセスが行う前に当該プログラムタスクでアクセスする予定のメモリバンクBKをスタンバイまたは電源オン(通常電圧)に指定し、アクセスしないメモリバンクBKを電源オフに指定する。アクセスする予定のあるメモリバンクBKを予めスタンバイまたは電源オンに設定しておくことによって、メモリアクセスまでの時間を短縮することができる。アクセスする予定のないメモリバンクBKを電源オフに指定することによって、消費電力を削減することができる。
上記の説明において、ソフトウェア処理とは、たとえば、オペレーティングシステム(OS)を実装するシステムでは、OSのスケジューラが、タスクの順番を定めるときに電源オフ、スタンバイ、または電源オン(通常電圧)を指定する処理を行う。OSを実装しないシステムでは、OSのスケジューラ相当のツールをコンパイラなどで実行した際に、タスクの順番を定めるときに電源オフ、スタンバイ、または電源オンを指定する処理がプログラムに埋め込まれる。
2.命令アドレス判定部
命令アドレス判定部20は、現在の命令フェッチのためのアクセスアドレスを含むメモリバンクに供給する電源をオンする(通常電圧にする)とともに、現在のアクセスアドレスがバンク境界に近づいた際に、次に命令アクセスされるメモリバンクの電源をオンする(通常電圧にする)ために設けられている。さらに、命令アドレス判定部20は、命令アクセス先がバンク境界を跨いだ後に、バンク境界を跨ぐ前にアクセスしていたメモリバンクの電源をスタンバイに戻す。命令アドレス判定部20は、CPU内部のプログラムカウンタが示しているアドレスの検出結果に基づいて上記の判定を行う。命令アドレス判定部20の具体的な構成例は、図3を参照して後述する。
3.命令デコード判定部
命令デコード判定部30は、CPU2がメモリから読み出した命令(フェッチコード)をデコードし、MOV(Move)命令やLOAD命令などメモリにアクセスする命令(以下、「メモリアクセス命令」と称する)をメモリから読み出したか否かを判定する。この結果、命令デコード判定部30によってメモリアクセス命令が検出された場合には、モード制御部70は、アクセス対象のメモリバンクBK、基本的にはメモリ使用領域指定部10によってスタンバイ状態に指定されているメモリバンクの電源をオンにする(通常電圧にする)。デコードした命令がNOP(No Operation)命令または演算命令などメモリにアクセスしない命令(「異メモリアクセス命令」と称する)が続いた際には、モード制御部70は、メモリバンクに供給する電源電圧をスタンバイ電圧に戻す。命令デコード判定部30の具体的な構成例は、図4を参照して後述する。
命令デコード判定部30は、フェッチコードがメモリアクセス命令であるか否かを判定するが、アクセス対象先のメモリバンクBKの判別は行わない。この理由は、アクセス先を判別するためには複雑なデコード回路および演算回路が必要となり、製造コストおよび開発コストが増加するばかりでなく、消費電力がかえって大きくなってしまうからである。
たとえば、フェッチした命令からアクセスアドレスをデコードしてアクセス先のメモリバンクを判別する際に、命令のオペランドとして絶対アドレスの情報が含まれている場合は、比較的容易にアクセス先のメモリバンクを判別することができる。しかし、フェッチした命令に相対アドレスの情報が含まれる場合には、たとえば、現在のアドレスと相対アドレスとを加算するなど本来CPUが行う処理が必要になる。この結果、回路の実装コストが高くなり、消費電力もかえって少なくならない。
なお、本実施の形態の場合には、図2で説明するように、メモリ使用領域指定部10において、命令アクセスおよびデータアクセスを行う可能性のないメモリバンクBKに対応する制御レジスタ11を電源オフに指定することができる。さらに、図4で説明するように、命令デコード判定部30に設けられた制御レジスタ31_0〜31_Nによって、データアクセスを行う可能性のないメモリバンクに対しては命令デコード判定結果に基づいて電源オンへの切り替えを行わないように(常にデータアクセスなしと判定するように)設定できる。これによって、従来よりも消費電力を低減することができる。
4.分岐判定部
分岐判定部40は、CPU2がメモリから読み出した命令(フェッチコード)をデコードし、デコードした命令が分岐命令であるか否かを判定する。この結果、デコードした命令が分岐命令の場合、モード制御部70は、アクセス対象のメモリバンクBK、基本的にはメモリ使用領域指定部10によってスタンバイ状態に指定されているメモリバンクの電源をオンする(通常電圧にする)。分岐判定部40によって分岐命令が判定された後、命令が実行されるまでの時間が経過したら、モード制御部70は、分岐判定部40による判定結果に基づいて電源オンにしているメモリバンクの電源をスタンバイ電圧に戻す。この後は、命令アドレス判定部20による判定結果に基づいて、分岐先のメモリバンクBKに供給される電源電圧が通常電圧Vnとなるように制御される。分岐判定部40の具体的な構成例は、図5を参照して後述する。
分岐判定部40は、命令デコード判定部30の場合と同様の理由で、フェッチコードが分岐命令であるか否かを判定するが、分岐先のメモリバンクの判別は行わない。
なお、本実施の形態の場合には、図2で説明するように、メモリ使用領域指定部10において、命令アクセスおよびデータアクセスを行う可能性のないメモリバンクBKに対応する制御レジスタ11を電源オフに指定することができる。さらに、図5で説明するように、分岐判定部40に設けられた制御レジスタ41_0〜41_Nによって、命令アクセスを行う可能性のないメモリバンクに対しては分岐判定結果に基づいて電源オンへの切り替えを行わないよう(常に命令アクセスなしと判定するように)に設定できる。これによって、従来よりも消費電力を低減することができる。
5.アクセス先判定部
アクセス先判定部50は、CPU2から不揮発性メモリ3に出力されるリクエスト信号と、CPU2が命令アクセスおよびデータアクセスのために不揮発性メモリ3に出力するアクセスアドレスADとを検出する。リクエスト信号は、CPU2から不揮発性メモリ3へのアクセス中(命令アクセスおよびデータアクセスのいずれかがあるとき)にアサートされている。アクセス先判定部50は、リクエスト信号がアサートされているときに、現在のアクセスアドレスに対応するメモリバンクBKに対して、CPU2によるアクセスが発生すると判定する。アクセス先判定部50は、リクエスト信号がネゲートされている場合には、いずれのメモリバンクBKに対してもCPU2によるアクセスはないと判定する。
図1のメモリ制御回路4では、メモリに格納されたデータがCPU2によってアクセスされる場合には、命令デコード判定部30によってデータアクセスが発生することを予測する仕組みとなっている。しかしながら、命令デコード判定部30による予測が外れたときに、アクセス対象のメモリバンクBKの電源がオンされていないとハングアップしてしまう。このハングアップ防止するためにアクセス先判定部50が設けられている。
一方、メモリに格納された命令がCPU2によってアクセスされる場合には、基本的には、命令アドレス判定部20によって現在アクセス中のメモリバンクおよびアクセス予定のメモリバンクの電源がオンされるので、アクセス先判定部50は必要ない。しかしながら、たとえば、図3の制御レジスタ21_0〜21_Nの設定値(アドレス判定イネーブル信号ADENの値)を誤って設定した場合には、ハングアップを防止することができる。
6.データセレクタ部
データセレクタ部60は、CPU2からの読み出し対象となっているメモリバンクの命令およびデータを読み出す。データセレクタ部60は、読み出した命令(フェッチコードCD)およびデータDTをCPU2に出力するとともに、フェッチコードCDを命令デコード判定部30および分岐判定部40にも出力する。
7.モード制御部
モード制御部70は、メモリ使用領域指定部10から、各メモリバンクBKに対する電源指定(電源ON/スタンバイ/電源OFF)を表す制御信号を受けるとともに、命令アドレス判定部20、命令デコード判定部30、および分岐判定部40から、各メモリバンクBKの電源ONを指令する制御信号を受ける。モード制御部70は、さらに、アクセス先判定部50から、各メモリバンクBKごとにCPU2によってアクセスされているか否かを示す制御信号を受ける。モード制御部70は、これらの制御信号に基づいて、メモリバンクBKごとに電源オン、スタンバイ、および電源オフのいずれかを表すモード信号を電源スイッチ回路5に出力する。以下、図2を参照して、モード制御部70の構成例を詳しく説明する。
[メモリ使用領域指定部およびモード制御部の構成例]
図2は、図1のメモリ使用領域指定部およびモード制御部の内部構成の一例を示す図である。
図2を参照して、メモリ使用領域指定部10は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられた制御レジスタ11_0〜11_N(総称する場合または不特定のものを示す場合に制御レジスタ11と記載する)を含む。
各制御レジスタ11は、2ビットの制御データ(スタンバイ指定値Asb、オン指定値Aon)を格納する。各制御レジスタ11において、対応のメモリバンクBKを電源オンに指定する場合には、オン指定値Aonを“1”に設定する(この場合、スタンバイ指定値Asbは“1”、“0”のいずれでもよいが、通常は“0”とする)。対応のメモリバンクBKをスタンバイに指定する場合には、オン指定値Aonを“0”に設定し、スタンバイ指定値Asbを“1”に設定する。対応のメモリバンクBKを電源オフに指定する場合には、オン指定値Aonを“0”に設定し、スタンバイ指定値Asbを“0”に設定する。
モード制御部70は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられたモード信号生成回路71_0〜71_N(総称する場合または不特定のものを示す場合にモード信号生成回路71と記載する)を含む。各モード信号生成回路71は、メモリ使用領域指定部10の対応の制御レジスタ11からスタンバイ指定値Asbおよびオン指定値Aonの入力を受ける。
各モード信号生成回路71は、さらに、命令アドレス判定部20、命令デコード判定部30、および分岐判定部40の各々から判定結果を表す制御信号を受ける。図1で説明したように、命令アドレス判定部20は、CPU2が命令アクセスのために現在アクセスしているメモリバンクBKおよび次にアクセスするメモリバンクBKを判定し、これらのメモリバンクBKに対応するモード信号生成回路71に出力する制御信号を“1”にし、その他のモード信号生成回路71に出力する制御信号を“0”にする。命令デコード判定部30は、フェッチコードがメモリアクセス命令である場合に、各モード信号生成回路71に出力する制御信号を“1”にする。分岐判定部40は、フェッチコードが分岐命令である場合に、各モード信号生成回路71に出力する制御信号を“1”にする。
各モード信号生成回路71は、さらに、アクセス先判定部50から制御信号を受ける。図1で説明したように、アクセス先判定部50は、CPU2が命令アクセスおよびデータアクセスのために不揮発性メモリ3にアクセス中のとき(リクエスト信号がアサートされているとき)、アクセス先のメモリバンクBKに対応するモード信号生成回路71に制御信号“1”を出力し、その他のモード信号生成回路71に制御信号“0”を出力する。
次に、各モード信号生成回路71の具体的な構成例について説明する。図2を参照して、各モード信号生成回路71は、ORゲート72,74と、ANDゲート73,76と、インバータ75とを含む。
ORゲート72は、命令アドレス判定部20、命令デコード判定部30、および分岐判定部40の各々から出力された対応の制御信号を受ける。ORゲート72は、これらの制御信号のOR演算を行い、演算結果をANDゲート73に出力する。
ANDゲート73は、ORゲート72の出力と、メモリ使用領域指定部10の対応の制御レジスタ11に格納されているスタンバイ指定値AsbとのAND演算を行い、演算結果をORゲート74に出力する。
ORゲート74は、ANDゲート73の出力と、アクセス先判定部50から出力された対応の制御信号と、メモリ使用領域指定部10の対応の制御レジスタ11に格納されているオン指定値AonとのOR演算を行い、演算結果をオン信号Sonとして電源スイッチ回路5に出力する。
ANDゲート76は、スタンバイ指定値Asbと、ORゲート74の出力の論理値をインバータ75によって反転させた信号とのAND演算を行い、演算結果をスタンバイ信号Ssbとして電源スイッチ回路5に出力する。
電源スイッチ回路5は、各モード信号生成回路71から受けたオン信号Sonおよびスタンバイ信号Ssbに応じて、各モード信号生成回路71にそれぞれ対応するメモリバンクBKに供給する電源電圧を通常電圧Vn、スタンバイ電圧Vs、およびオフ状態のいずれかに切り替える。具体的に、あるモード信号生成回路71から受けたオン信号Sonが“1”のときは、対応のメモリバンクBKに通常電圧Vnを出力する。電源スイッチ回路5は、あるモード信号生成回路71から受けたオン信号Sonが“0”であり、スタンバイ信号Ssbが“1”のときは、対応のメモリバンクBKにスタンバイ電圧Vsを出力する。電源スイッチ回路5は、あるモード信号生成回路71から受けたオン信号Sonが“0”であり、スタンバイ信号Ssbが“0”のときは、対応のメモリバンクBKへの電源供給を遮断する。
以上のモード制御部70および電源スイッチ回路5の構成によれば、各モード信号生成回路71から電源スイッチ回路5に出力されるオン信号Sonの値およびスタンバイ信号Ssbの値は次のようになる。
(i) メモリ使用領域指定部10の対応の制御レジスタ11に格納されているオン指定値Aonが“1”の場合(通常モードに初期設定されている場合)について説明する。この場合、各判定部20,30,40,50の判定結果によらずにオン信号Sonが“1”になり、スタンバイ信号Ssbが“0”になる。この結果、電源スイッチ回路5から対応のメモリバンクBKに通常電圧Vnが供給される。
(ii) メモリ使用領域指定部10の対応の制御レジスタ11に格納されているオン指定値Aonが“0”であり、スタンバイ指定値Asbが“0”の場合(電源遮断モードに初期設定されている場合)について説明する。この場合、アクセス先判定部50から出力された対応の制御信号が“0”のとき、電源スイッチ回路5に出力するオン信号Sonが“0”になり、スタンバイ信号Ssbが“0”になる。この結果、電源スイッチ回路5から対応のメモリバンクBKへの電源供給が遮断される。命令アドレス判定部20、命令デコード判定部30、および分岐判定部40の少なくとも1つから出力される対応の制御信号が“1”であったとしても、対応のメモリバンクBKの動作モードは、電源遮断モードが維持される。
一方、アクセス先判定部50から出力された対応の制御信号が“1”のとき、オン信号Sonが“1”になり、スタンバイ信号Ssbが“0”になる。この結果、電源スイッチ回路5から対応のメモリバンクBKに通常電圧Vnが供給される。すなわち、アクセス先判定部50から出力された対応の制御信号が“1”のとき、メモリ使用領域指定部10の対応の制御レジスタ11の設定値、各判定部20,30,40の判定結果によらず、対応のメモリバンクBKの動作モードが通常モードに切り替わる。
(iii) メモリ使用領域指定部10の対応の制御レジスタ11に格納されているオン指定値Aonが“0”であり、スタンバイ指定値Asbが“1”の場合(スタンバイモードに初期設定されている場合)について説明する。この場合、命令アドレス判定部20、命令デコード判定部30、分岐判定部40、およびアクセス先判定部50のうち少なくとも1つから出力された対応の制御信号が“1”のとき、オン信号Sonが“1”になり、スタンバイ信号Ssbが“0”になる。この結果、電源スイッチ回路5から対応のメモリバンクBKに通常電圧Vnが供給される(動作モードが通常モードに切り替わる)。一方、上記の各制御信号がいずれも“0”のとき、オン信号Sonが“0”になり、スタンバイ信号Ssbが“1”になる。この結果、電源スイッチ回路5から対応のメモリバンクBKにスタンバイ電圧Vsが供給される。
[命令アドレス判定部の構成例]
図3は、図1の命令アドレス判定部の内部構成の一例を示す図である。図3を参照して、命令アドレス判定部20は、制御レジスタ21_0〜21_Nおよび24と、加算部25と、アクセス先判定部22,23と、命令アドレス判定回路26_0〜26_Nとを含む。
制御レジスタ21_0〜21_N(総称する場合または不特定のものを示す場合、制御レジスタ21と記載する)は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられている。各制御レジスタ21は、対応のメモリバンクBKに対して命令アドレス判定部20による制御を有効にするか無効にするかを設定するための制御値(アドレス判定イネーブル信号ADEN)を保持する。各制御レジスタ21の値は、図1のCPU2によって設定される。
制御レジスタ24は、現在のアクセスアドレスに加算するアドレス増加分を保持する。アドレス増加分は、現在のアクセスアドレスが次にアクセスされるメモリバンクとの境界に近づいたか否かを判断するために用いられる。制御レジスタ24の値は、図1のCPU2によって設定される。加算部25は、現在のアクセスアドレスにアドレス増加分を加算する。
アクセス先判定部22は、入力された現在のアクセスアドレスに基づいてアクセス先のメモリバンクを判別し、現在アクセス中のメモリバンクBKに対応する制御信号を“1”にし、その他のメモリバンクBKに対応する制御信号を“0”にする。アクセス先判定部22から出力されたメモリバンクBK_0〜BK_N用の制御信号は、命令アドレス判定回路26_0〜26_Nにそれぞれ出力される。
アクセス先判定部23は、加算部25の加算結果のアドレス値に対応するメモリバンクを判別し、判別したメモリバンクBKに対応する制御信号を“1”にし、その他のメモリバンクBKに対応する制御信号を“0”にする。アクセス先判定部23から出力されたメモリバンクBK_0〜BK_N用の制御信号は、命令アドレス判定回路26_0〜26_Nにそれぞれ出力される。
命令アドレス判定回路26_0〜26_N(総称する場合または不特定のものを示す場合、命令アドレス判定回路26と記載する)は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられている。各命令アドレス判定回路26は、ORゲート261およびANDゲート262を含む。
ORゲート261は、アクセス判定部22,23の各々から出力された対応の制御信号を受け、これらの制御信号のOR演算を行う。ANDゲート262は、ORゲート261の演算結果と、対応の制御レジスタ21からの制御値ADENとのAND演算を行う。ANDゲート262の演算結果は、アドレス判定結果を示す制御信号として、図2のモード制御部70内の対応するモード信号生成回路71に入力される。
以上の構成によれば、各命令アドレス判定回路26は次のように動作する。
(i) 対応の制御レジスタ21の値が“0”の場合、命令アドレス判定回路26の出力(ANDゲート262の出力)は“0”になる。この場合、対応のメモリバンクBKに対して、命令アドレス判定回路26の判定結果に基づく制御は行われない。
(ii) 対応の制御レジスタ21の値が“1”であり、かつ、アクセス先判定部22,23からそれぞれ出力される対応の制御信号のうち、少なくとも一方が“1”の場合、命令アドレス判定回路26の出力(ANDゲート262の出力)は“1”になる。この結果、図2で説明したように、基本的には、メモリ使用領域指定部10によって電源オフに指定されていない限り、対応するメモリバンクBKに供給される電源電圧は通常電圧Vn(電源オン)になる。上記の場合は、対応のメモリバンクBKが、現在、CPU2によって命令アクセスされているか、もしくは、対応のメモリバンクBKのアドレスが現在のアクセスアドレスに近いために、次に命令アクセスされる場合に相当する。
(iii) 対応の制御レジスタ21の値が“1”であり、かつ、アクセス先判定部22,23からそれぞれ出力される対応の制御信号の両方とも“0”の場合、命令アドレス判定回路26の出力(ANDゲート262の出力)は“0”になる。この場合は、対応のメモリバンクBKは、現在の命令アクセス対象でも、次の命令アクセス対象でもない場合に相当する。対応するメモリバンクBKに供給される電源電圧は通常電圧Vnに切り替わらずに、電源オフまたはスタンバイ電圧Vsが維持される。
[命令デコード判定部の構成例]
図4は、図1の命令デコード判定部の内部構成の一例を示す図である。図4を参照して、命令デコード判定部30は、制御レジスタ31_0〜31_Nと、メモリアクセス命令検出部32と、出力保持部33と、インバータ34と、異メモリアクセス命令検出部35と、命令デコード判定回路36_0〜36_Nとを含む。
制御レジスタ31_0〜31_N(総称する場合または不特定のものを示す場合、制御レジスタ31と記載する)は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられている。各制御レジスタ31は、対応のメモリバンクBKに対して命令デコード判定部30による制御を有効にするか無効にするかを設定するための制御値(デコード判定イネーブル信号DEEN)を保持する。各制御レジスタ31の値は、図1のCPU2によって設定される。
メモリアクセス命令検出部32は、入力されたフェッチコードCDをデコードし、MOV(Move)命令やLOAD命令など、メモリにアクセスする命令(メモリアクセス命令)を検出する。メモリアクセス命令検出部32は、フェッチコードがメモリアクセス命令である場合に“1”を出力し、フェッチコードがメモリアクセス命令でない場合(すなわち、異メモリアクセス命令である場合)に“0”を出力する。
出力保持部33は、メモリアクセス命令を検出後、命令が実行されるまでの間、検出結果の値(“1”または“0”)を保持する。
異メモリアクセス命令検出部35は、メモリアクセス命令検出部32でデコードされたフェッチコードCDが、NOP命令および演算命令などメモリにアクセスしない命令(異メモリアクセス命令)である場合に、異メモリアクセス命令が指定回数連続して続いたか否かを検出する。具体的に、異メモリアクセス命令検出部35は、メモリアクセス命令検出部32の出力の論理値を反転した信号の入力を受ける。たとえば、指定回数を3とすると、異メモリアクセス命令検出部35は、メモリアクセス命令検出部32の検出結果が“0”(すなわち、インバータ34の出力が“1”)となる状態が3回以上連続した場合に“1”を出力し、そうでない場合に“0”を出力する。
命令デコード判定回路36_0〜36_N(総称する場合または不特定のものを示す場合、命令デコード判定回路36と記載する)は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられている。各命令デコード判定回路36は、インバータ361、ANDゲート362,364、ORゲート363、およびレジスタ365を含む。
ANDゲート362は、異メモリアクセス命令検出部35の出力の論理値をインバータ361によって反転した信号と、レジスタ365に保持されている値とのAND演算を行う。ORゲート363は、出力保持部33の出力と、ANDゲート362の演算結果とのOR演算を行う。ANDゲート364は、ORゲート363の演算結果と、対応の制御レジスタ31からの制御値DEENとのAND演算を行う。ANDゲート364の演算結果は、命令デコード判定結果を示す制御信号として、図2のモード制御部70内の対応するモード信号生成回路71に入力される。ANDゲート364の演算結果は、さらに、レジスタ365に保持される。
レジスタ365を設ける理由は、命令デコード判定結果が“1”となった場合には、異メモリアクセス命令検出部35が“1”を出力するまで、判定結果の出力を“1”で維持するためである。命令デコード判定結果の出力値(“1”/“0”)を頻繁に切り替えてしまうと、各メモリバンクBKに供給される電源電圧も頻繁に切り替わる。この結果、余計に電力を消費することになり望ましくない。よって、異メモリアクセス命令検出部35でメモリアクセス命令が指定回数以上連続しないことが判定された場合にのみ、命令デコード判定結果が“0”になる。
以上の構成によれば、各命令デコード判定回路36は次のように動作する。
(i) 対応の制御レジスタ31の値が“0”の場合、命令デコード判定回路36の出力(ANDゲート364の出力)は“0”になる。この場合、対応のメモリバンクBKに対して、命令デコード判定回路36の判定結果に基づく制御は行われない。
(ii) 対応の制御レジスタ31の値が“1”であり、かつ、出力保持部33の出力が“1”(すなわち、フェッチコードがメモリアクセス命令)の場合、命令デコード判定回路36の出力(ANDゲート364の出力)は“1”になる。この結果、図2で説明したように、基本的には、メモリ使用領域指定部10によって電源オフに指定されていない限り、対応するメモリバンクBKに供給される電源電圧は通常電圧Vn(電源オン)になる。
(iii) 対応の制御レジスタ31の値が“1”であり、かつ、出力保持部33の出力が“0”であり、かつ、異メモリアクセス命令検出部35の出力が“1”の場合(異メモリアクセス命令が指定回数以上連続した場合)、命令デコード判定回路36の出力(ANDゲート364の出力)は“0”になる。対応するメモリバンクBKに供給される電源電圧は通常電圧Vnに切り替わらずに、電源オフまたはスタンバイ電圧Vsが維持される。
[分岐判定部の構成例]
図5は、図1の分岐判定部の内部構成の一例を示す図である。図5を参照して、分岐判定部40は、制御レジスタ41_0〜41_Nと、分岐命令検出部42と、出力保持部43と、分岐判定回路44_0〜44_Nとを含む。
制御レジスタ41_0〜41_N(総称する場合または不特定のものを示す場合、制御レジスタ41と記載する)は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられている。各制御レジスタ41は、対応のメモリバンクBKに対して分岐判定部40による制御を有効にするか無効にするかを設定するための制御値(分岐判定イネーブル信号BREN)を保持する。各制御レジスタ41の値は、図1のCPU2によって設定される。
分岐命令検出部42は、入力されたフェッチコードCDをデコードし、分岐命令を検出する。分岐命令検出部42は、フェッチコードが分岐命令である場合に“1”を出力し、フェッチコードが分岐命令でない場合に“0”を出力する。
出力保持部43は、分岐命令を検出後、命令が実行されるまでの間、検出結果の値(“1”または“0”)を保持する。
分岐判定回路44_0〜44_N(総称する場合または不特定のものを示す場合、分岐判定回路44と記載する)は、図1のメモリバンクBK_0〜BK_Nにそれぞれ対応して設けられている。
各分岐判定回路44は、ANDゲート45を含む。ANDゲート45は、出力保持部33の出力と、対応の制御レジスタ41からの制御値BRENとのAND演算を行う。ANDゲート45の演算結果は、分岐判定結果を示す制御信号として、図2のモード制御部70内の対応するモード信号生成回路71に入力される。
以上の構成によれば、各分岐判定回路44は次のように動作する。
(i) 対応の制御レジスタ41の値が“0”の場合、分岐判定回路44の出力(ANDゲート45の出力)は“0”になる。この場合、対応のメモリバンクBKに対して、分岐判定回路44の判定結果に基づく制御は行われない。
(ii) 対応の制御レジスタ41の値が“1”であり、かつ、出力保持部43の出力が“1”(すなわち、フェッチコードが分岐命令)の場合、分岐判定回路44の出力(ANDゲート45の出力)は“1”になる。この結果、図2で説明したように、基本的には、メモリ使用領域指定部10によって電源オフに指定されていない限り、対応するメモリバンクBKに供給される電源電圧は通常電圧Vn(電源オン)になる。
(iii) 対応の制御レジスタ41の値が“1”であり、かつ、出力保持部43の出力が“0”の場合、分岐判定回路44の出力(ANDゲート45の出力)は“0”になる。対応するメモリバンクBKに供給される電源電圧は通常電圧Vnに切り替わらずに、電源オフまたはスタンバイ電圧Vsが維持される。
[メモリ制御回路の動作例]
次に、メモリ制御回路の動作例について説明する。この動作例では、総数5個(N=4)のメモリバンクBK_0〜BK_4が設けられている。以下、メモリバンクBK_0〜BK_4をそれぞれメモリバンク0〜4もしくはバンク0〜4と簡単に記載する場合がある。バンク0と1にはデータ(オペランド)が格納され、バンク2と3には命令が格納され、バンク4にデータと命令の両方が格納されている。
図6は、各メモリバンクの電源制御設定の例を表形式で示した図である。図6を参照して、図2で説明したメモリ使用領域指定部10の制御レジスタ11_0〜11_3は、それぞれ対応するメモリバンク0〜3の使用状況に応じて、スタンバイ(Asb=1、Aon=0)または電源オフ(Asb=0、Aon=0)に設定される。バンク4については常時アクセスされるために、メモリ使用領域指定部10の対応する制御レジスタ11_4は、電源オン(Aon=1)に設定される。図6では、スタンバイをSで表し、電源オフをOFFで表し、電源オンをONで表している。
図3で説明した命令アドレス判定部20の各制御レジスタ21の設定に関して、バンク0,1ではデータアクセスが行われ、命令アクセスは行われないので、対応する制御レジスタ21_0,21_1は“0”に設定される。バンク2,3では命令アクセスが行われるので、対応する制御レジスタ21_2,21_3は“1”に設定される。バンク4は、メモリ使用領域指定部10の制御レジスタ11_4によって電源オンに設定されているので、命令アドレス判定を行う必要がない。したがって、対応する制御レジスタ21_4は“0”に設定される。
図4で説明した命令デコード判定部30の各制御レジスタ31の設定に関して、バンク0,1ではデータアクセスが行われるので、対応する制御レジスタ31_0,31_1は“1”が設定される。バンク2,3では命令アクセスが行われ、データアクセスは行われないので、対応する制御レジスタ31_2,31_3は“0”が設定される。バンク4は、メモリ使用領域指定部10の制御レジスタ11_4によって電源オンに設定されているので、命令デコード判定を行う必要がない。したがって、対応する制御レジスタ21_4は“0”に設定される。
図5で説明した分岐判定部40の各制御レジスタ41の設定に関して、バンク0,1ではデータアクセスが行われ、命令アクセスは行われないので、対応する制御レジスタ41_0,41_1は“0”に設定される。バンク2,3では命令アクセスが行われるので、対応する制御レジスタ41_2,41_3は“1”に設定される。バンク4は、メモリ使用領域指定部10の制御レジスタ11_4によって電源オンに設定されているので、分岐判定を行う必要がない。したがって、対応する制御レジスタ41_4は“0”に設定される。
1.命令アクセスに対する動作例
図7は、メモリバンク2に対する電源制御の例を示すタイミング図である。図7では、上から順に、プログラムを実行した際のソフトウェアの動作(S/W動作)、電源制御を行うためにCPUがバンク2用の制御レジスタに設定した値、メモリ使用領域指定部10および各判定部20,30,40の出力、モード制御部70から出力されたバンク2用のモード信号(オン信号、スタンバイ信号)の値、ならびにバンク2の電源モードが示されている。
図1、図7を参照して、S/W動作では、起動タスクからタスク1〜4を経て退避タスクまで至るプログラムタスクごとに、どのメモリバンクを使用するかをメモリ使用領域指定部10によって指定できる。図7の場合、命令アクセスのために、起動および退避ではバンク4が使用され、タスク1ではバンク2および4が使用され、タスク2および4ではバンク2、3および4が使用され、タスク3ではバンク4が使用される。
図7の例では、最終的にマイクロコンピュータ(マイコン)が一時的に電源をオフして動作を停止する。マイコンが停止する前に、CPU周辺の汎用レジスタのデータをメモリに退避したり、キャッシュを持つマイコンであればキャッシュ内のデータをメモリに退避したりする退避タスクが実行される。
時刻t1より以前では、メモリ制御回路4の電源がオフのため、全ての制御レジスタ(図2〜図5の制御レジスタ11,21,31,41)の値は“0”になっている。時刻t1で電源が投入されることにより、マイコンが起動する。メモリ制御回路4は、リセット解除後に、ハードウェア的に図2のメモリ使用領域指定部10に設けられた制御レジスタ11_0〜11_4を全て電源オンの状態(Aon=“1”、Asb=“0”)に設定する。この結果、図2のモード信号生成回路71_2から出力されるバンク2用のオン信号の論理値は“1”になり、スタンバイ信号Ssbの論理値は“0”になる。これにより、バンク2の電源モードは、通常モード(電源ON)になる。各メモリバンクを通常モードにすることによって、CPU2は、いずれかのメモリバンクに格納されている初期起動のためのプログラムを読み出して実行することができる。
電源オンした後、次の時刻t2において、CPU2はメモリバンク2を起動タスクにおいてはアクセスしないため、CPU2はメモリ使用領域指定部10の対応する制御レジスタ11_2を電源オフ(オン指定値Aon=“0”、スタンバイ指定値Asb=“0”)に設定する。この結果、バンク2に対応する図2のモード信号生成回路71_2から出力されるオン信号Sonおよびスタンバイ信号Ssbはともに“0”になり、バンク2の電源モードは、電源遮断モード(電源OFF)になる。
さらに、図6で説明したように、メモリバンク2は命令を格納しているため、CPU2は、図3の命令アドレス判定部20のバンク2に対応する制御レジスタ21_2を“1”に設定し、図5の分岐判定部40のバンク2に対応する制御レジスタ41_2を“1”に設定する。これによって、これらの判定部20,40のバンク2に対する判定結果は有効になる。一方、メモリバンク2はデータを格納していないため、CPU2は、図4の命令デコード判定部30のバンク2に対応する制御レジスタ31_2を“0”に設定する。これによって、命令デコード判定部30のバンク2に対する判定結果は無効になる。
時刻t5以降のタスク1ではメモリバンク2を使用するため、タスク1の実行前の時刻t3に、CPU2は、図2のメモリ使用領域指定部10の対応する制御レジスタ11_2をスタンバイ(オン指定値Aon=“0”、スタンバイ指定値Asb=“1”)に設定する。この結果、バンク2に対応する図2のモード信号生成回路71_2から出力されるオン信号Sonは“0”になり、スタンバイ信号Ssbは“1”になり、バンク2の電源モードはスタンバイモード(S)になる。
タスク1に移行するにあたり分岐命令が実行されるため、図5の分岐判定部40の分岐命令検出部42は、時刻t4に分岐命令を検出する。この結果、バンク2用の分岐判定回路44_2は、分岐判定結果として“1”を出力する。これによって、バンク2の電源モードは通常モード(電源ON)となる。
時刻t5でタスク1が実行されると、命令フェッチのためのアクセスアドレスがメモリバンク2となるため、図3の命令アドレス判定部20においてバンク2に対応する命令アドレス判定回路26_2は判定結果として“1”を出力する。この結果、バンク2の電源モードは通常モード(電源ON)が維持される。タスク1の実行中(時刻t7まで)はメモリバンク2の命令が読み出され続けるため、図3の命令アドレス判定部20の対応する命令アドレス判定回路26_2は判定結果として“1”を出力する。この結果、バンク2の電源モードは通常モード(電源ON)が維持される。
このようにアクセスするメモリバンクに対して、アクセス前にメモリバンクの電源をスタンバイにし、その後電源ON(通常モード)にしているため、メモリアクセスにおいて待ち時間が生じずに処理性能が低下することなく電源制御を行うことができる。
時刻t7においてタスク2に移行した後、メモリバンク2からメモリバンク3へ命令アクセスが跨る時刻t9の前に(図8の時刻t8)、図3の命令アドレス判定部20のメモリバンク2,3に対応する命令アドレス判定回路26_2,26_3の判定出力は両方とも“1”となる。この結果、メモリバンク2および3の電源モードは両方とも通常モード(電源ON)となる。
命令アクセスがメモリバンク3へ移行した後は(時刻t9以降)、図3の命令アドレス判定部20のメモリバンク2に対応する命令アドレス判定回路26_2の判定結果は“0”となる。この結果、メモリバンク2の電源モードはスタンバイモード(Son=“0”、Ssb=“1”)になる。
時刻t10以降のタスク3においては、CPU2はメモリバンク2へアクセスしない。このため、タスク3に移行時に、CPU2は、図2のメモリ使用領域指定部10の対応する制御レジスタ11_2を電源OFF(Aon=“0”、Asb=“0”)に設定する。この結果、バンク2に対応する図2のモード信号生成回路71_2から出力されるオン信号Sonおよびスタンバイ信号Ssbが共に“0”になり、バンク2の電源モードは電源遮断モード(電源OFF)になる。
次のタスク4(時刻t12以降)ではメモリバンク2が使用されるため、タスク4の実行前の時刻t11に、CPU2は、図2のメモリ使用領域指定部10の対応する制御レジスタ11_2をスタンバイ(オン指定値Aon=“0”、スタンバイ指定値Asb=“1”)に設定する。この結果、バンク2の電源モードはスタンバイモード(オン信号Son=“0”、スタンバイ信号Ssb=“1”)になる。
タスク4を実行中の時刻t13に分岐命令が実行されるため、図5の分岐判定部40の分岐命令検出部42は分岐命令を検出する。この結果、バンク2用の分岐判定回路44_2は、分岐判定結果として“1”を出力する。これによって、バンク2の電源モードは通常モード(電源ON)となる。分岐命令の実行後(時刻t14以降)は、命令フェッチのためのアクセスアドレスがメモリバンク2となるため、図3の命令アドレス判定部20においてバンク2に対応する命令アドレス判定回路26_2は判定結果として“1”を出力する。この結果、バンク2の電源モードは通常モード(電源ON)が維持される。
時刻t15に退避タスクに移行する。退避タスクにおいてはメモリバンク2へアクセスしないため、CPU2は、メモリ使用領域指定部10の対応する制御レジスタ11_2を電源オフ(オン指定値Aon=“0”、スタンバイ指定値Asb=“0”)に設定する。この結果、バンク2に対応する図2のモード信号生成回路71_2から出力されるオン信号Sonおよびスタンバイ信号Ssbはともに“0”になり、バンク2の電源モードは、電源遮断モード(電源OFF)になる。
図8は、メモリ制御回路および各メモリバンクへ供給される電源電圧の変化を示すタイミング図である。図7および図8において、同一時刻の場合には同じ参照符号を付している。
図8を参照して、図1のメモリ制御回路4へは、起動タスクから退避タスクまで通常電圧が供給される(電源ON)。バンク2,3,4については、従来はメモリバンク4のように、常時、通常モード(電源ON)にしていたところを、メモリバンク2および3のようにプログラムタスクごとにアクセスしないメモリバンクは電源遮断モード(電源OFF)にしている。さらに、各バンクがアクセスされる前に、予めスタンバイモードにしておくことによって、メモリアクセスの待ち時間が生じないようにしている。
具体的に、図8の時刻t2で、ソフトウェア制御によってCPU2が図2のメモリ使用領域指定部10の制御レジスタ11_2,11_3を電源オフに設定する。この結果、メモリバンク2および3が電源オフ(電源遮断モード)に切替わる。
時刻t3において、ソフトウェア制御によってCPU2が図2のメモリ使用領域指定部10の制御レジスタ11_2をスタンバイに設定する。この結果、メモリバンク2がスタンバイモード(S)に切り替わる。
時刻t4において、図5の分岐判定部40が分岐命令を検出する。この結果、メモリバンク2が電源オン(通常モード)に切替わる。
時刻t6において、ソフトウェア制御によってCPU2が図2のメモリ使用領域指定部10の制御レジスタ11_3をスタンバイに設定する。この結果、メモリバンク3がスタンバイモード(S)に切り替わる。
時刻t7においてタスク2に移行した後、メモリバンク2からメモリバンク3へ命令アクセスが跨る時刻t9の前に(図8の時刻t8)、図3の命令アドレス判定部20において、メモリバンク2,3に対応する命令アドレス判定回路26_2,26_3の判定出力は両方とも“1”となる。この結果、メモリバンク2および3の電源モードは両方とも通常モード(電源ON)となる。
時刻t9以降、命令フェッチのためのアクセスアドレスはメモリバンク2からメモリバンク3に移る。この結果、図3の命令アドレス判定部20のメモリバンク2に対応する判定回路26_2の判定結果が“0”になる。これによって、メモリバンク2はスタンバイモードになる。判定回路26_3の判定結果は時刻t8から“1”が維持され、これによってメモリバンク3は通常モード(電源オン)が維持される。
時刻t11において、ソフトウェア制御によってCPU2が図2のメモリ使用領域指定部10の制御レジスタ11_2,11_3をスタンバイに設定する。この結果、メモリバンク2,3がスタンバイモード(S)に切り替わる。
時刻t13において、図5の分岐判定部40が分岐命令を検出する。この結果、メモリバンク2が電源オン(通常モード)に切替わる。
時刻t14以降、命令フェッチのためのアクセスアドレスはメモリバンク3からメモリバンク2に移る。この結果、図3の命令アドレス判定部20のメモリバンク3に対応する判定回路26_3の判定結果が“0”になり、メモリバンク2に対応する判定回路26_2の判定結果が“1”になる。これによって、メモリバンク3はスタンバイモードになり、メモリバンク2は通常モード(電源オン)が維持される。
時刻t15において、ソフトウェア制御によってCPU2が図2のメモリ使用領域指定部10の制御レジスタ11_2,11_3を電源オフに設定する。この結果、メモリバンク2,3が電源遮断モード(電源OFF)に切り替わる。
(効果)
以上のように、プログラムタスクごとに命令フェッチのためにアクセスしないメモリバンクの電源がオフされることにより、きめ細かくメモリバンクに供給する電源電圧を切り替えることができ、低消費電力化を図ることができる。
なお、図3の命令アドレス判定部20において、現在のアクセス先アドレスに所定のアドレス増加分を加算したアドレスが、実際にはアクセスしないメモリバンクのアドレスであることがあり得る。この場合、メモリ使用領域指定部10において、当該アクセスしないメモリバンクに対応する制御レジスタ11を予め“0”に設定しておくことによって、アクセスしないメモリバンクの電源を誤ってオンすることを防ぐことができる。
2.データ(オペランド)アクセスに対する動作例
図9は、データ(オペランド)アクセスに対するメモリ制御回路の動作例を示すタイミング図である。データアクセスにおいても命令アクセスと同様に、プログラムタスクごとにどのメモリバンクをアクセスするかを、図2メモリ使用領域指定部10を用いてCPU2がソフトウェア処理により指定する。図9の例では、データアクセスのために、起動タスク(t21〜t26)でバンク4が使用され、タスク1(t26〜t31)でバンク0が使用され、タスク2(t31〜t34)でバンク0,1,4が使用され、タスク4(t36〜t41)でバンク1,4が使用され、退避タスク(t41〜t43)でバンク0,4が使用される。なお、図9においてメモリアクセス命令をMで表し、異メモリアクセス命令をNで表す。
図1、図9を参照して、タスク1ではメモリバンク0を使用するため、タスク1の実行前の時刻t25において、CPU2は図2のメモリ使用領域指定部10の制御レジスタ11_0をスタンバイに設定する。この結果、メモリバンク0の電源モードはスタンバイモード(S)となる。
タスク1の実行中の時刻t27に、図4の命令デコード判定部30のメモリアクセス命令検出部32がメモリアクセス命令を検出すると、メモリバンク0に対応する命令デコード判定回路36_0の判定出力が“1”になる。この結果、メモリバンク0の電源モードが通常モード(電源ON)になる。
その後、時刻t28において、図4の異メモリアクセス命令検出部35が異メモリアクセス命令を連続して検出すると、メモリバンク0に対応する命令デコード判定回路36_0の判定出力が“0”になる。この結果、メモリバンク0の電源モードがスタンバイモード(S)になる。
タスク2では、メモリバンク0とメモリバンク1を使用するため、タスク2の実行前の時刻t30に、CPU2は図2のメモリ使用領域指定部10の制御レジスタ11_0,11_1をスタンバイに設定する。この結果、メモリバンク1の電源モードはスタンバイモードになる。メモリバンク0については、時刻t29においてメモリアクセス命令が検出されたことにより、既に通常モード(電源ON)になっている。
タスク2を実行中の時刻t32に、図4の命令デコード判定部30のメモリアクセス命令検出部32がメモリアクセス命令を検出すると、メモリバンク0,1に対応する命令デコード判定回路36_0,36_1の判定出力が“1”になる。この結果、メモリバンク0,1の電源モードがスタンバイモードから通常モード(電源ON)に切り替わる。
その後、時刻t33において、図4の異メモリアクセス命令検出部35が異メモリアクセス命令を連続して検出すると、メモリバンク0,1に対応する命令デコード判定回路36_0,36_1の判定出力が“0”になる。この結果、メモリバンク0,1の電源モードがスタンバイモード(S)になる。
タスク3では、データのアクセスはないため、CPU2は、図2のメモリ使用領域指定部10の制御レジスタ11_0,11_1を電源オフに設定する。この結果、メモリバンク0,1の電源モードは電源遮断モード(電源OFF)になる。メモリバンク4は命令のアクセスがあるため、図2のメモリ使用領域指定部10の制御レジスタ11_4で指定した電源ONのままとなる。
タスク4では、メモリバンク1を使用するため、タスク1の実行前の時刻t35において、CPU2は図2のメモリ使用領域指定部10の制御レジスタ11_1をスタンバイに設定する。この結果、メモリバンク1の電源モードはスタンバイモード(S)となる。
タスク1の実行中の時刻t37に、図4の命令デコード判定部30のメモリアクセス命令検出部32がメモリアクセス命令を検出すると、メモリバンク1に対応する命令デコード判定回路36_1の判定出力が“1”になる。この結果、メモリバンク1の電源モードが通常モード(電源ON)になる。
その後、時刻t38において、図4の異メモリアクセス命令検出部35が異メモリアクセス命令を連続して検出すると、メモリバンク1に対応する命令デコード判定回路36_1の判定出力が“0”になる。この結果、メモリバンク1の電源モードがスタンバイモード(S)になる。
(効果)
以上のようにプログラムタスクごとに、命令アクセスやデータアクセスをしないメモリバンクの電源がオフされるとともに、命令デコード判定部30によってデータアクセスの発生が予測されることにより、きめ細かくメモリバンクに供給する電源電圧を切り替えることができ、低消費電力化を図ることができる。
したがって、本実施の形態によれば、メモリへの命令アクセスやデータアクセスにおいて、プログラムタスクごとにメモリバンクの電源制御を行うので、従来のメモリバンクに対する電源制御に比べて、きめ細かにメモリの電力を削減することができる。さらには、メモリアクセス前にアクセス先を予測し電源制御を行うため、メモリのアクセス性能の低下を抑えことができる。
[変形例]
図2〜図7の説明において、論理“1”と論理“0”の設定を逆にしてもよい(すなわち、Hアクティブに設定してもLアクティブに設定してもよい)。論理値の設定を逆にした場合には、ORゲートがANDゲートに変更され、ANDゲートがORゲートに変更される。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 マイクロプロセッサ、2 CPU、3 不揮発性メモリ、4 メモリ制御回路、5 電源スイッチ回路、10 メモリ使用領域指定部、11,21,24,31,41 制御レジスタ、20 命令アドレス判定部、30 命令デコード判定部、40 分岐判定部、50 アクセス先判定部、60 データセレクタ部、70 モード制御部、80 メモリアクセス判定部。

Claims (8)

  1. 複数のバンクに区分された不揮発性メモリを制御するメモリ制御回路であって、
    各前記バンクは、動作モードとして、
    CPU(Central Processing Unit)からのアクセスが可能な通常モードと、
    前記通常モードより消費電力の少ないスタンバイモードと、
    電源供給が遮断される遮断モードとを有し、
    前記メモリ制御回路は、
    前記CPUで動作するプログラムのタスクごとに、前記CPUが前記複数のバンクの動作モードを個別に初期設定するための複数の第1の制御値を記憶する第1のレジスタ群と、
    命令フェッチのためのアクセスアドレスおよびフェッチされた命令の種類に基づいて、前記CPUから各前記バンクへアクセスが発生するか否かを判定するアクセス判定部と、
    前記複数の第1の制御値および前記アクセス判定部の判定結果に基づいて、各前記バンクの動作モードを切り替えるモード制御部とを備える、メモリ制御回路。
  2. 前記モード制御部は、
    前記第1のレジスタ群によって前記通常モードに初期設定されたバンクについては、前記アクセス判定部による判定結果によらずに前記通常モードに維持し、
    前記第1のレジスタ群によって前記スタンバイモードに初期設定されたバンクについては、前記アクセス判定部によって前記CPUによるアクセスが発生すると判定されたときに前記通常モードに切り替えるように構成されている、請求項1に記載のメモリ制御回路。
  3. 前記アクセス判定部は、
    命令フェッチのためのアクセスアドレスの検出結果に基づいて前記CPUによるアクセスが発生するバンクを判定する第1の判定部と、
    フェッチされた命令が分岐命令であるか否かを検出し、検出結果に基づいて前記CPUから各前記バンクへアクセスが発生するか否かを判定する第2の判定部と、
    フェッチされた命令が前記不揮発性メモリに格納されたデータをアクセスするメモリアクセス命令であるか否かを検出し、検出結果に基づいて前記CPUから各前記バンクへアクセスが発生するか否かを判定する第3の判定部とを含む、請求項2に記載のメモリ制御回路。
  4. 前記第1の判定部は、現在のアクセスアドレスに対応するバンク、および現在のアクセスアドレスに所定値を加算したアドレスに対応するバンクに対して、前記CPUによるアクセスが発生すると判定する、請求項3に記載のメモリ制御回路。
  5. 前記第3の判定部は、
    フェッチされた命令が前記メモリアクセス命令のとき、各前記バンクに対して前記CPUによるアクセスが発生すると判定し、
    前記メモリアクセス命令と異なる命令が所定回数連続して検出されるまでは、前記CPUによるアクセス発生の判定結果を維持する、請求項3に記載のメモリ制御回路。
  6. 前記第1〜第3の判定部の各々は、前記複数のバンクにそれぞれ対応する複数の第2の制御値を記憶する第2のレジスタ群を含み、
    前記第1〜第3判定部の各々は、
    第2の制御値として第1の論理値が設定されたレジスタに対応するバンクに対しては、前記CPUによるアクセスが発生するか否かの判定を行って判定結果を出力し、
    第2の制御値として第2の論理値が設定されたレジスタに対応するバンクに対しては、
    前記CPUによるアクセスの発生がないとする判定結果を常に出力するように構成されている、請求項3に記載のメモリ制御回路。
  7. 前記CPUは、前記不揮発性メモリのアクセス中にアサートされるリクエスト信号を出力し、
    前記メモリ制御回路は、第4の判定部をさらに備え、
    前記第4の判定部は、前記リクエスト信号と前記CPUが前記不揮発性メモリにアクセスする際のアクセスアドレスとを検出し、前記リクエスト信号がアサートされているときに、現在のアクセスアドレスに対応するバンクに対して、前記CPUによるアクセスが発生すると判定し、
    前記モード制御部は、前記第4の判定部によって前記CPUによるアクセスが発生すると判定されたバンクを、前記第1のレジスタ群の設定値および前記アクセス判定部の判定結果によらず前記通常モードに設定する、請求項2または3に記載のメモリ制御回路。
  8. 前記モード制御部は、前記第1のレジスタ群によって前記遮断モードに初期設定されたバンクについては、前記第4の判定部によって前記CPUによるアクセスが発生しないと判定されたときには、前記アクセス判定部の判定結果によらず前記遮断モードに維持するように構成されている、請求項7に記載のメモリ制御回路。
JP2013076689A 2013-04-02 2013-04-02 メモリ制御回路 Expired - Fee Related JP6030987B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013076689A JP6030987B2 (ja) 2013-04-02 2013-04-02 メモリ制御回路
US14/242,413 US10108249B2 (en) 2013-04-02 2014-04-01 Memory control circuit
CN201410129073.0A CN104102325B (zh) 2013-04-02 2014-04-02 存储器控制电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013076689A JP6030987B2 (ja) 2013-04-02 2013-04-02 メモリ制御回路

Publications (2)

Publication Number Publication Date
JP2014203148A JP2014203148A (ja) 2014-10-27
JP6030987B2 true JP6030987B2 (ja) 2016-11-24

Family

ID=51622051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013076689A Expired - Fee Related JP6030987B2 (ja) 2013-04-02 2013-04-02 メモリ制御回路

Country Status (3)

Country Link
US (1) US10108249B2 (ja)
JP (1) JP6030987B2 (ja)
CN (1) CN104102325B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632953B2 (en) 2014-06-03 2017-04-25 Qualcomm Incorporated Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers
US9690720B2 (en) 2014-06-03 2017-06-27 Qualcomm Incorporated Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
US9881680B2 (en) * 2014-06-03 2018-01-30 Qualcomm Incorporated Multi-host power controller (MHPC) of a flash-memory-based storage device
KR102347657B1 (ko) * 2014-12-02 2022-01-06 삼성전자 주식회사 전자 장치 및 이의 공유 캐시 메모리 제어 방법
JP6418983B2 (ja) * 2015-03-05 2018-11-07 キヤノン株式会社 メモリのアクセス制御装置、その制御方法、および、プログラム
US9870325B2 (en) * 2015-05-19 2018-01-16 Intel Corporation Common die implementation for memory devices with independent interface paths
CN107346166B (zh) * 2016-05-05 2019-12-03 展讯通信(上海)有限公司 一种访问存储器的方法及内存管理器
JP6808414B2 (ja) * 2016-09-21 2021-01-06 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US10379748B2 (en) * 2016-12-19 2019-08-13 International Business Machines Corporation Predictive scheduler for memory rank switching
US10346345B2 (en) 2017-05-26 2019-07-09 Microsoft Technology Licensing, Llc Core mapping
US10353815B2 (en) 2017-05-26 2019-07-16 Microsoft Technology Licensing, Llc Data security for multiple banks of memory
US10587575B2 (en) 2017-05-26 2020-03-10 Microsoft Technology Licensing, Llc Subsystem firewalls
US10970081B2 (en) 2017-06-29 2021-04-06 Advanced Micro Devices, Inc. Stream processor with decoupled crossbar for cross lane operations
US10564692B2 (en) * 2018-03-27 2020-02-18 Windbond Electronics Corp. Memory device and power reduction method of the same memory device
US10846363B2 (en) 2018-11-19 2020-11-24 Microsoft Technology Licensing, Llc Compression-encoding scheduled inputs for matrix computations
US10620958B1 (en) * 2018-12-03 2020-04-14 Advanced Micro Devices, Inc. Crossbar between clients and a cache
CN109597654B (zh) * 2018-12-07 2022-01-11 湖南国科微电子股份有限公司 寄存器初始化方法、基础配置表的生成方法及嵌入式系统
US11493985B2 (en) * 2019-03-15 2022-11-08 Microsoft Technology Licensing, Llc Selectively controlling memory power for scheduled computations
US20210064119A1 (en) * 2019-08-26 2021-03-04 Micron Technology, Inc. Bank configurable power modes
US11243596B2 (en) 2019-08-26 2022-02-08 Micron Technology, Inc. Architecture-based power management for a memory device
US11487339B2 (en) * 2019-08-29 2022-11-01 Micron Technology, Inc. Operating mode register
US20220004328A1 (en) * 2020-07-01 2022-01-06 Facebook Technologies, Llc Hierarchical power management of memory for artificial reality systems
KR20220032366A (ko) * 2020-09-07 2022-03-15 삼성전자주식회사 가변적인 모드 설정을 수행하는 메모리 장치 및 그 동작방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6326892A (ja) 1986-07-18 1988-02-04 Nec Corp メモリ装置
JPH07105686A (ja) * 1993-10-04 1995-04-21 Oki Electric Ind Co Ltd メモリ制御装置
JPH0863391A (ja) * 1994-08-25 1996-03-08 Ricoh Co Ltd メモリ制御装置
US5805849A (en) * 1997-03-31 1998-09-08 International Business Machines Corporation Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
US6108773A (en) * 1998-03-31 2000-08-22 Ip-First, Llc Apparatus and method for branch target address calculation during instruction decode
US6118719A (en) * 1998-05-20 2000-09-12 International Business Machines Corporation Self-initiated self-refresh mode for memory modules
US6633987B2 (en) * 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system
US6523089B2 (en) * 2000-07-19 2003-02-18 Rambus Inc. Memory controller with power management logic
US7165165B2 (en) * 2004-03-16 2007-01-16 Intel Corporation Anticipatory power control of memory
KR101158154B1 (ko) * 2004-09-22 2012-06-19 에스티 에릭슨 에스에이 메모리 회로 및 데이터 보존 제어 방법
JP2007188171A (ja) * 2006-01-11 2007-07-26 Matsushita Electric Ind Co Ltd メモリコントローラ
US7752468B2 (en) * 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
JP4354001B1 (ja) * 2008-07-03 2009-10-28 Necエレクトロニクス株式会社 メモリ制御回路および集積回路
CN101907918B (zh) * 2009-06-03 2012-06-27 精拓科技股份有限公司 节省待机/关机状态功率消耗的计算机系统及其相关方法
JP5776347B2 (ja) * 2011-06-10 2015-09-09 富士通株式会社 電力制御方法、電子装置、プログラム及びプログラムの生成方法
JP6000708B2 (ja) * 2012-07-20 2016-10-05 キヤノン株式会社 メモリ制御装置および方法

Also Published As

Publication number Publication date
JP2014203148A (ja) 2014-10-27
CN104102325A (zh) 2014-10-15
US10108249B2 (en) 2018-10-23
US20140298056A1 (en) 2014-10-02
CN104102325B (zh) 2018-05-15

Similar Documents

Publication Publication Date Title
JP6030987B2 (ja) メモリ制御回路
US7711918B2 (en) Apparatus and method for operating flash memory according to priority order
TWI528162B (zh) 電腦系統及其作業系統切換方法
KR101406493B1 (ko) 플래쉬 메모리를 구비한 컴퓨터 및 플래쉬 메모리의구동방법
US20060101299A1 (en) Controller for instruction cache and instruction translation look-aside buffer, and method of controlling the same
JP2006502488A (ja) 省電力vliwプロセッサ
US9329666B2 (en) Power throttling queue
KR102594288B1 (ko) 성능 또는 에너지 소모 특성이 상이한 제1 및 제2 처리 모드를 갖는 처리 파이프라인
US8683249B2 (en) Switching a processor and memory to a power saving mode when waiting to access a second slower non-volatile memory on-demand
US20140013140A1 (en) Information processing apparatus and computer program product
WO2022062580A1 (zh) 一种信号处理器的控制方法、装置、设备以及存储介质
JP4770283B2 (ja) メモリ制御装置及びメモリ制御方法
KR101016132B1 (ko) 에너지 효율적인 레지스터 파일을 제공하는 방법 및 장치
CN101727160B (zh) 协处理器系统工作模式的切换方法和装置及处理器系统
US20070094454A1 (en) Program memory source switching for high speed and/or low power program execution in a digital processor
US20150262696A1 (en) Memory system and control method of memory system
CN110121688B (zh) 判断加载程序的方法以及电子系统
JP3699947B2 (ja) マイクロコントローラ
JP2011070290A (ja) データプロセッサ
JP2006350930A (ja) 制御回路及び情報処理装置
US10877762B2 (en) Microprocessor, power supply control IC, and power supply
KR101236393B1 (ko) 전자장치 및 그 제어방법
JP2005078197A (ja) 省電力制御装置
JP2016110400A (ja) 演算処理装置および演算処理装置の制御方法
JP2012168725A (ja) マルチスレッド・プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161012

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161021

R150 Certificate of patent or registration of utility model

Ref document number: 6030987

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees