CN104102325A - 存储器控制电路 - Google Patents
存储器控制电路 Download PDFInfo
- Publication number
- CN104102325A CN104102325A CN201410129073.0A CN201410129073A CN104102325A CN 104102325 A CN104102325 A CN 104102325A CN 201410129073 A CN201410129073 A CN 201410129073A CN 104102325 A CN104102325 A CN 104102325A
- Authority
- CN
- China
- Prior art keywords
- memory bank
- instruction
- determining unit
- access
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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)
Abstract
通过对非易失性存储器适当地执行功率控制可比过去降低更多的存储器功率消耗。存储器控制电路设置有让CPU为了由CPU执行的程序的每个任务单独地执行包含于非易失性存储器内的多个存储体的操作模式(断电、待机和通电)的初始设定的第一寄存器分组,以及用于根据用于指令取出的访问地址以及所取出指令的类型来确定发生由CPU对其进行的访问的存储体的访问确定单元。存储器控制电路根据第一寄存器分组的设定值以及访问确定单元的确定结果来切换每个存储体的操作模式。
Description
相关申请的交叉引用
在2013年4月2日提交的日本专利申请No.2013-076689的公开内容,包括说明书、附图和摘要,通过引用方式全文并入本文。
技术领域
本发明涉及存储器控制电路,并且被适当地用来控制例如配置有多个存储体的非易失性存储器。
背景技术
在相关技术领域的用于给所有存储器供电的存储器控制电路中,问题在于存储器的功率消耗会变大,因为功率被均等地供应给甚至是没有被访问的存储器。为了处理这样的问题,人们开发出了其中存储器被划分成存储体(bank)的存储器控制电路,并且该存储器控制电路抑制对未被访问的存储体的供电。
例如,在由日本公开的未经审查的专利申请No.昭63(1988)-026892(专利文献1)所公开的存储装置中,供电电流由供电电流控制电路供应给第一及第二存储体。当接收自控制面板的信号为正常模式时,供电电流控制电路对第一及第二存储体两者均供应供电电流,而当接收自控制面板的信号为低功率模式时,仅对第一存储体供应供电电流。
在由日本公开的未经审查的专利申请No.平07(1995)-105686(专利文献2)公开的存储器控制器中,在供电控制电路的控制之下,来自主供电电路的主要功率仅被供应给与为了指令取出而实际访问的存储器地址以及预计将在不久的将来要访问的存储器地址对应的存储体。来自备用供电电路的备用功率被供应给未被访问的其他存储体。在此,预计将在不久的将来要访问的存储器地址通过将规定的地址值增量加上当前访问地址来计算出。
在由日本公开的未经审查的专利申请No.2010-15375(专利文献3)公开的微处理器中,作为操作模式,存储单元具有正常模式以及功率消耗比正常模式小的待机模式。存储器控制电路在CPU已经从存储单元取出的指令当中检测分支指令,并且对应于检测结果来改变存储单元的操作模式。
(专利文献)
(专利文献1)日本公开的未经审查的专利申请No.昭63(1988)-026892
(专利文献2)日本公开的未经审查的专利申请No.平07(1995)-105686
(专利文献3)日本公开的未经审查的专利申请No.2010-15375
发明内容
顺便要提的是,当采用非易失性存储器时,即使停止对没有预定要访问的存储体供电,其存储内容也不会丢失。因此,功率消耗能够通过将对每个存储体的供电切换为断电、供应待机电压和供应正常电压(通电)这三种状态之一来降低。但是,在相关领域的技术(例如,专利文献1-3)中,没有关于用于与每个存储体的操作条件相对应地在这三个状态中切换供电的具体控制装置的公开内容。
特别地,在日本公开的未经审查的专利申请No.昭63(1988)-026892(专利文献1)的情形中,对未使用的存储体的供电被关闭,并且不提供待机模式。因此,问题在于难以在访问之前迅速地接通存储体的电源;因此访问占用时间并且使得性能劣化。而且,在专利文献1的情形中,对存储体的功率控制在控制面板上执行。因此,难以在程序执行期间切换对存储体的功率控制,并且存在着在暂时未被访问的存储体中消耗过量的电功率的问题。
另一方面,在日本公开的未经审查的专利申请No.平07(1995)-105686(专利文献2)的情形中,备用功率被供应给还未访问过的存储体,并且没有控制功率使其关闭。在日本公开的未经审查的专利申请No.2010-15375(专利文献3)的情形中,只有正常模式和待机模式被类似地提供作为操作模式。因此,在这些专利文献的情形中,待机功率(备用功率)同样被供应给没有预定将要访问的存储体。因此,存在着消耗过量的电功率的问题。
作为在相关领域的技术中的其他问题,存在着用于预测未来存储器访问的发生的方法受到限制的的问题。特别地,在日本公开的未经审查的专利申请No.平07(1995)-105686(专利文献2)的情形中,方法被限制于通过将规定的增量值加上当前访问地址来预测未来访问地址的方法。在日本公开的未经审查的专利申请No.2010-15375(专利文献3)的情形中,方法被限制于通过检测分支指令来预测未来存储访问的发生。结果,相关领域的技术具有难以在没有访问的时段内降低对存储体的供电,或者难以在访问之前迅速地接通存储体的电源的问题;因此,访问占用时间并且使得性能劣化。
因此,本发明的主要目的是:通过借助于用于控制非易失性存储器的存储器控制电路来执行对非易失性存储器的适当功率控制而相对于相关领域的技术降低存储器功率消耗。
本发明的另一目的是降低存储器的功率消耗并且同时通过比以前更精确地预测存储器访问的发生以防止存储器访问的延迟时间来抑制存储器的访问性能的下降。
根据本发明的一种实施例的存储器控制电路被配置为具有:用于CPU的第一寄存器分组,用于为由CPU执行的程序的每个任务单独地对包含于非易失性存储器内的多个存储体的操作模式(断电、待机和通电)执行初始设定;以及用于根据用于指令取出的访问地址以及所取指令的类型来确定是否发生由CPU对每个存储体的访问的访问确定单元。存储器控制电路根据第一寄存器分组的设定值以及访问确定单元的确定结果来切换每个存储体的操作模式。
根据该实施例,通过执行对非易失性存储器的适当的功率控制,可以相对于过去而降低存储器功率消耗。
附图说明
图1是示出根据一种实施例的微处理器的配置的框图;
图2是示出图1所示的可使用的存储区分配单元和模式控制器的内部配置的实例的示图;
图3是示出图1所示的指令地址确定单元的内部配置的实例的示图;
图4是示出图1所示的指令解码确定单元的内部配置的实例的示图;
图5是示出图1所示的分支确定单元的内部配置的实例的示图;
图6是示出每个存储体的功率控制设置的实例的表格;
图7是示出对存储体2的功率控制的实例的时序图;
图8是示出对存储器控制电路及每个存储体供应的供电电压的变化的时序图;以及
图9是示出存储器控制电路对数据(操作数)访问的操作实例的时序图。
具体实施方式
在下文,实施例将参照附图更详细地解释。相同的附图标记将附加于相同的或相应的部分,并且关于它的解释在某些情况下将不再重复。
<微处理器的整体配置>
图1是示出根据一种实施例的微处理器的配置的框图。如图1所示,微处理器1包括CPU(中央处理单元)2、非易失性存储器3、存储器控制电路4和电源开关电路5。
CPU2依次取出包含于存储于非易失性存储器3内的程序中的指令(取出码(fetch code)CD)(指令取出),并且执行所取出的指令。通常,CPU2将存储于称为程序计数器的寄存器内的存储器地址AD输出给非易失性存储器3,并且存储于有关的存储器地址AD内的指令被读出。根据指令所描述的操作数地址和/或操作数数据,CPU2将数据DT写入非易失性存储器3内,或者从非易失性存储器3中读出数据DT。而且,CPU2输出用于存储器访问(读和写)的控制信号CS。
非易失性存储器3存储指令和数据(操作数数据)。非易失性存储器3能够保存所存储的数据,即使是断电之后。因此,非易失性存储器3与易失性存储器相比能够通过在没有预定要访问时关闭电源来降低功率消耗。非易失性存储器3可以包括例如MRAM(磁阻式随机存取存储器)、ReRAM(电阻式RAM)和FeRAM(铁电式RAM)。
如图1所示,非易失性存储器3被划分成N+1个存储体BK_0-BK_N(在统称时或者在未指定的一个被提及时,它们被描述为存储体BK)。作为电源模式(也称为操作模式),每个存储体BK都具有其中供应正常电压Vn的正常模式、其中供应待机电压Vs的待机模式,以及其中供电电压被关闭的电源关闭模式。正常电压Vn是具有允许正常的存储器操作(读/写)的电平的电压。待机电压Vs是比正常电压低的电压。因此,在待机模式中,功率消耗变得比在正常模式中的小。待机电压Vs被设立使得当待机模式被切换至正常模式时(也就是,当给存储体BK供应的供电电压由待机电压Vs变为正常电压Vn时),直到存储器操作成为可能时的上升时间可以在大约数十纳秒的范围以内。待机电压Vs的具体设定值根据存储器件的性质而不同。
在关闭模式被切换至正常模式之后(也就是,在给存储体BK供应的供电电压从0上升至正常电压Vn之后),直到存储器操作成为可能时的上升时间要花费若干微秒或更多的时间。这是因为使存储器启动的初始化是必要的。上升时间能够通过供应待机电压Vs并且使初始化达到其中初始化完成至一定程度的状态而缩短。以此方式,通过供应待机电压,而不是切断电源,对存储器的访问会变快并且性能的劣化能够得以最小化。
响应于来自CPU2的存储器访问,存储器控制电路4执行从非易失性存储器3中读出指令或数据的控制,以及将数据写入非易失性存储器3的控制。而且,存储器控制电路4控制着对每个存储体BK的供电(也就是,正常模式、待机模式和电源关闭模式的切换控制)。存储器控制电路4的详细配置将在后面描述。
电源开关电路5将待供应给每个存储体BK的供电电压切换为正常电压Vn、待机电压Vs和关闭状态之一,取决于由存储器控制电路4输出的用于设定每个存储体BK的电源模式的模式信号。
<存储器控制电路的配置>
如图1所示,存储器控制电路4在内部包括可使用存储区分配单元10、指令地址确定单元20、指令解码确定单元30、分支确定单元40、访问目的地确定单元50、数据选择器60和模式控制器70。存储器访问确定单元80被配置为具有指令地址确定单元20、指令解码确定单元30和分支确定单元40。存储器访问确定单元80根据在CPU2执行指令取出时的访问地址以及所取出指令的类型来确定是否发生CPU2对每个存储体BK的访问。在下文,将依次解释存储器控制电路4的每个构件。
1.可使用存储区分配单元
可使用存储区分配单元10设置有能够为每个存储体BK设立的控制寄存器(图2所示的11_0-11_N),以便分配待供应给每个存储体BK的供电电压(也就是,断电、待机电压和正常电压)。CPU2能够通过软件处理预先地设定与每个控制寄存器对应的存储体的供电电压。
例如,在实际为每个程序任务执行存储器访问之前,CPU2通过软件处理将预定将由相关程序任务访问的存储体BK的模式指定为待机模式或通电模式(正常电压),以及将没有预定将要访问的存储体BK的模式指定为断电模式。通过将预定将要访问的存储体BK预先设定为待机模式或通电模式,可以减少在存储器访问之前的时间。通过将没有预定将要访问的存储体BK设定为断电模式,同样可以降低功率消耗。
作为以上所解释的软件处理,例如在以操作系统(OS)实现的系统中,OS的调度器在确定任务的顺序时分配断电模式、待机模式或通电模式(正常电压)。在不以OS实现的系统中,与OS的调度器等效的工具通过编译器等来执行,并且该工具具有用于在确定任务的顺序时分配断电模式、待机模式或通电模式的预埋程序。
2.指令地址确定单元
指令地址确定单元20被设置,以便接通待供应给包含用于当前指令取出的访问地址的存储体的电源(设定为正常电压),并且以便在当前访问地址接近存储体边界时接通随后要对其执行指令访问的存储体的电源(设定为正常电压)。而且,在指令访问目的地已经越过了存储体边界之后,指令地址确定单元20使在越过存储体边界之前已经访问过的存储体的供电返回至待机模式。指令地址确定单元20根据由CPU内的程序计数器指示的地址的检测结果来执行上述确定。指令地址确定单元20的具体配置实例将在后面参照图3来描述。
3.指令解码确定单元
指令解码确定单元30对CPU2已经从存储器中读出的指令进行解码(取出码),并且确定是否已经从存储器中读出了诸如MOV(移动)指令和LOAD(加载)指令之类的用于访问存储器的指令(在下文称为“存储器访问指令”)。结果,当存储器访问指令由指令解码确定单元30检测到时,模式控制器70接通作为访问目标的存储体BK(即基本上为由可使用存储区分配单元10分配为处于待机状态的存储体)的电源(设定为正常电压)。当所解码的指令是一连串NOP(无操作)指令或者诸如操作指令之类的不防问存储器的指令(称为“非存储器访问指令”)时,模式控制器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来描述。
由于与指令解码确定单元30的情形相同的原因,分支确定单元40确定取出码是否是分支指令,但是,它不确定作为分支目的地的存储体。
在本实施例的情形中,如同将要参照图2所解释的,可使用存储区分配单元10能够给与既没有预定对其进行指令访问也没有预定对其进行数据访问的存储体BK对应的控制寄存器11分配断电模式。而且,如同将要参照图5所解释的,设置于分支确定单元40内的控制寄存器41_0-41_N能够根据分支确定结果针对没有预定对其进行指令访问的存储体来设定,以不执行到通电模式的切换(确定始终没有指令访问)。因此,与过去相比,可以减少更多的功率消耗。
5.访问目的地确定单元
访问目的地确定单元50对由CPU2输出到非易失性存储器3的请求信号以及用于指令访问和数据访问的由CPU2输出到非易失性存储器3的访问地址AD进行检测。请求信号由CPU2对非易失性存储器3的访问期间被断言(assert)(当指令访问或数据访问发生时)。访问目的地确定单元50确定:当请求信号被断言时,发生由CPU2对与当前访问地址对应的存储体BK进行的访问。当请求信号被否定(negate)时,访问目的地确定单元50确定不存在由CPU2对任何存储体BK的访问。
在图1所示的存储器控制电路4中,当存储于存储器内的数据被CPU2访问时,配置被设计成使得指令解码确定单元30预测到发生了数据访问。但是,当指令解码确定单元30的预测出错时,如果作为访问目标的存储体BK的电源没有被设定为“接通”,则出现意外停机(hang-up)。为了防止意外停机,提供了访问目的地确定单元50。
另一方面,当存储于存储器内的指令被CPU2访问时,指令地址确定单元20基本上接通当前被访问的存储体以及预定将要访问的存储体的电源。因此,访问目的地确定单元50并不是必要的。但是,例如,当图3所示的控制寄存器21_0-21_N的设定值(地址确定使能信号ADEN的值)被错误设定时,可以使用访问目的地确定单元50来防止意外停机。
6.数据选择器
数据选择器60读取由CPU2定义为读取目标的存储体的指令和数据。数据选择器60将已经被读出的指令(取出码CD)和数据DT输出给CPU2,并且同时,还将取出码CD输出给指令解码确定单元30和分支确定单元40。
7.模式控制器
模式控制器70接收来自可使用存储区分配单元10的用于指示对每个存储体BK的供电分配(通电/待机/断电)的控制信号。它还接收来自指令地址确定单元20、指令解码确定单元30和分支确定单元40的用于指导每个存储体BK的通电的控制信号。而且,模式控制器70接收来自访问目的地确定单元50的用于指示每个存储体BK是否被CPU2访问的控制信号。根据这些控制信号,模式控制器70给电源开关电路5输出用于为每个存储体BK指示通电、待机和断电之一的模式信号。在下文,参照图2,将更详细地解释模式控制器70的配置实例。
<可使用存储区分配单元和模式控制器的配置实例>
图2示出了图1所示的可使用存储区分配单元和模式控制器的内部配置的实例。
如图2所示,可使用存储区分配单元10包括控制寄存器11_0-11_N(在统称时或者在未指定的一个被提及时,它们被描述为控制寄存器11),分别对应于图1所示的存储体BK_0-BK_N而设置。
每个控制寄存器11存储2位的控制数据(待机分配值Asb和通电分配值Aon)。在每个控制寄存器11中,当给相应的存储体BK分配通电时,通电分配值Aon被设定为“1”。(在这种情况下,待机分配值Asb可以是“1”和“0”中的任一个,但是,它通常被设定为“0”)。当给相应的存储体BK分配待机模式时,通电分配值Aon被设定为“0”,并且待机分配值Asb被设定为“1”。当给相应的存储体BK分配断电模式时,通电分配值Aon被设定为“0”,并且待机分配值Asb被设定为“0”。
模式控制器70包括模式信号生成电路71_0-71_N(在统称时或者在未指定的一个被提及时,它们被描述为模式信号生成电路71),分别对应于图1所示的存储体BK_0-BK_N而设置。每个模式信号生成电路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所解释的,当CPU2正为了指令访问和数据访问而访问非易失性存储器3时(当请求信号被断言时),访问目的地确定单元50将控制信号“1”输出到与作为访问目的地的存储体BK对应的模式信号生成电路71,并且将控制信号“0”输出到其他模式信号生成电路71。
然后,下面将解释每个模式信号生成电路71的具体配置实例。如图2所示,每个模式信号生成电路71都包括或门(OR gate)72和74、与门(AND gate)73和76,以及反相器75。
或门72接收由指令地址确定单元20、指令解码确定单元30和分支确定单元40中的每个确定单元的相应地输出的控制信号。或门72对这些控制信号执行或运算,并且将运算结果输出到与门73。
与门73对或门72的输出和存储于可使用存储区分配单元10的相应的控制寄存器11内的待机分配值Asb执行与运算,并且将运算结果输出到或门74。
或门74对与门73的输出、由访问目的地确定单元50相应输出的控制信号以及存储于可使用存储区分配单元10的相应的控制寄存器11内的通电分配值Aon执行或运算,并且将运算结果作为通电信号Son输出到电源开关电路5。
与门76对待机分配值Asb以及通过由反相器75对或门74的输出的逻辑值取反而获得的信号执行与运算,并且将运算结果作为待机信号Ssb输出到电源开关电路5。
响应于接收自每个模式信号生成电路71的通电信号Son和待机信号Ssb,电源开关电路5将待供应给分别与每个模式信号生成电路71对应的存储体BK的供电电压切换为正常电压Vn、待机电压Vs和关闭状态之一。特别地,当接收自某一模式信号生成电路71的通电信号Son为“1”时,电源开关电路5将正常电压Vn输出到相应的存储体BK。当接收自某一模式信号生成电路71的通电信号Son为“0”时,并且当待机信号Ssb为“1”时,电源开关电路5将待机电压Vs输出到相应的存储体BK。当接收自某一模式信号生成电路71的通电信号Son为“0”时,并且当待机信号Ssb为“0”时,电源开关电路5关闭对相应存储体BK的供电。
根据模式控制器70和电源开关电路5的上述配置,由每个模式信号生成电路71输出到电源开关电路5的通电信号Son的值和待机信号Ssb的值如下。
(i)下面解释其中存储于可使用存储区分配单元10的相应的控制寄存器11内的通电分配值Aon为“1”的情形(其中初始设定为正常模式的情形)。在这种情况下,通电信号Son被设定为“1”,并且待机信号Ssb被设定为“0”,不考虑每个确定单元20、30、40和50的确定结果。结果,正常电压Vn由电源开关电路5供应给相应的存储体BK。
(ii)下面解释其中存储于可使用存储区分配单元10的相应的控制寄存器11内的通电分配值Aon为“0”并且待机分配值Asb为“0”的情形(其中初始设定是电源关闭模式的情形)。在这种情况下,当由访问目的地确定单元50相应输出的控制信号为“0”时,待输出到电源开关电路5的通电信号Son被设定为“0”,并且待机信号Ssb被设定为“0”。结果,由电源开关电路5对相应存储体BK的供电被关闭。即使由指令地址确定单元20、指令解码确定单元30和分支确定单元40中的至少一个相应输出的控制信号是“1”,相应存储体BK的操作模式也被保持为电源关闭模式。
另一方面,当由访问目的地确定单元50输出的相应的控制信号是“1”时,通电信号Son被设定为“1”,并且待机信号Ssb被设定为“0”。结果,由电源开关电路5给相应的存储体BK供应正常电压Vn。也就是,当由访问目的地确定单元50输出的相应的控制信号是“1”时,相应存储体BK的操作模式被切换为正常模式,不考虑可使用存储区分配单元10的相应的控制寄存器11的设定值以及每个确定单元20、30和40的确定结果。
(iii)下面解释其中存储于可使用存储区分配单元10的相应的控制寄存器11内的通电分配值Aon为“0”并且待机分配值Asb为“1”的情形(其中初始设定为待机模式的情形)。在这种情况下,当由指令地址确定单元20、指令解码确定单元30、分支确定单元40和访问目的地确定单元50中的至少一个相应输出的控制信号为“1”时,通电信号Son被设定为“1”,并且待机信号Ssb被设定为“0”。结果,正常电压Vn由电源开关电路5供应给相应的存储体BK(操作模式被切换为正常模式)。另一方面,当所有控制信号均为“0”时,通电信号Son被设定为“0”,并且待机信号Ssb被设定为“1”。结果,待机电压Vs由电源开关电路5供应给相应的存储体BK。
<指令地址确定单元的配置实例>
图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保存用于设定是通过指令地址确定单元20来启用还是禁用对相应的存储体BK的控制的控制值(地址确定使能信号ADEN)。每个控制寄存器21的值均由图1所示的CPU2来设定。
控制寄存器24保存被加上当前访问地址的地址增量。地址增量被使用,以便确定当前访问地址是否接近了与下次将要访问的存储体间的边界。控制寄存器24的值由图1所示的CPU2来设定。加法器25将地址增量加上当前访问地址。
访问目的地确定单元22根据所输入的当前访问地址来确定访问目的地的存储体,并且将与当前访问的存储体BK对应的控制信号设定为“1”,并且将与其他存储体对应的控制信号设定为“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都包括或门261和与门262。
或门261接收由每个访问确定单元22和23相应输出的控制信号,并且对这些控制信号执行或运算。与门262对或门261的算法结果以及来自相应的控制寄存器21的控制值ADEN执行与运算。与门262的算法结果被作为用于指示地址确定结果的控制信号输入在图2所示的模式控制器70中的相应的模式信号生成电路71之内。
根据以上描述的配置,每个指令地址确定电路26均操作如下。
(i)在相应的控制寄存器21的值为“0”的情形中,指令地址确定电路26的输出(与门262的输出)被设定为“0”。在这种情况下,对相应的存储体BK不执行基于指令地址确定电路26的确定结果的控制。
(ii)在相应的控制寄存器21的值为“1”的情形中,并且当由访问目的地确定单元22和23相应输出的至少一个控制信号为“1”时,指令地址确定电路26的输出(与门262的输出)被设定为“1”。结果,如同参照图2所解释的,基本上,除非断电模式由可使用存储区分配单元10来分配,否则对相应的存储体BK供应的供电电压被设定为正常电压Vn(通电模式)。以上所描述的情形对应于其中相应的存储体BK当前正由CPU2进行指令访问或者下次将要进行指令访问的情形,因为相应的存储体BK的地址接近于当前访问地址。
(iii)在相应的控制寄存器21的值为“1”并且分别由访问目的地确定单元22和23输出的相应的控制信号均为“0”的情形中,指令地址确定电路26的输出(与门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保存用于设定是由指令解码确定单元30启用还是禁用对相应的存储体BK进行控制的控制值(解码确定使能信号DEEN)。每个控制寄存器31的值均由图1所示的CPU2来设定。
存储器访问指令检测器32对所输入的取出码CD进行解码,并且检测用于访问存储器的指令(存储器访问指令),例如,MOV(移动)指令和LOAD指令。存储器访问指令检测器32在取出码为存储器访问指令时输出“1”,而在取出码不是存储器访问指令时(也就是,当它为非存储器访问指令时)输出“0”。
在检测到存储器访问指令之后,输出保存单元33保存检测结果(“1”或“0”)的值,直到指令被执行。
当由存储器访问指令检测器32解码的取出码CD是将不访问存储器的指令(非存储器访问指令)(例如,NOP指令和操作指令)时,非存储器访问指令检测器35检测出非存储器访问指令是否已经连续地检测到规定的次数。特别地,非存储器访问指令检测器35接收通过对存储器访问指令检测器32的输出的逻辑值求反而获得的信号。例如,假定规定的次数为3,则当其中存储器访问指令检测器32的检测结果为“0”(也就是,反相器34的输出为“1”)的状态继续进行3次或更多时,非存储器访问指令检测器35输出“1”,否则输出“0”。
指令解码确定电路36_0-36_N(在统称时或者在未指定的一个被提及时,它们被描述为指令解码确定电路36)分别对应于图1所示的存储体BK_0-BK_N而设置。每个指令解码确定电路36均包括反相器361、与门362和364、或门363以及寄存器365。
与门362对通过以反相器361对非存储器访问指令检测器35的输出的逻辑值求反而获得的信号以及当前保存于寄存器365内的值执行与运算。或门363对输出保存单元33的输出以及与门362的运算结果执行或运算。与门364对或门363的运算结果以及来自相应的控制寄存器31的控制值DEEN执行与运算。与门364的运算结果被作为用于指示指令解码确定结果的控制信号输入图2所示的模式控制器70中的相应的模式信号生成电路71之内。与门364的运算结果还被保存于寄存器365内。
用于提供寄存器365的原因是:当指令解码确定结果变为“1”时,确定结果的输出被保持于值“1”,直到非存储器访问指令检测器35输出“1”。如果指令解码确定结果的输出值(“1”或“0”)频繁切换,则给每个存储体BK供应的供电电压将会同样频繁改变。结果,所不希望的额外电功率将被消耗。因此,只有当非存储器访问指令检测器35确定存储器访问指令继续进行的次数没有超过规定次数时,指令解码确定结果才被设定为“0”。
根据以上所描述的配置,每个指令解码确定电路36操作如下。
(i)在相应的控制寄存器31的值为“0”的情形中,指令解码确定电路36的输出(与门364的输出)被设定为“0”。在这种情况下,对相应的存储体BK不执行基于指令解码确定电路36的确定结果的控制。
(ii)在相应的控制寄存器31的值为“1”并且输出保存单元33的输出为“1”(也就是,取出码是存储器访问指令)的情形中,指令解码确定电路36的输出(与门364的输出)被设定为“1”。结果,如同参照图2所解释的,基本上,除非断电模式由可使用存储区分配单元10来分配,否则对相应的存储体BK供应的供电电压被设定为正常电压Vn(通电模式)。
(iii)在相应的控制寄存器31的值为“1”,输出保存单元33的输出为“0”并且非存储器访问指令检测器35的输出为“1”的情形中(当非存储器访问指令继续进行超过规定次数时),指令解码确定电路36的输出(与门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均保存用于设定是由分支确定单元40启用还是禁用对相应的存储体BK的控制的控制值(分支确定使能信号BREN)。每个控制寄存器41的值均由图1所示的CPU2来设定。
分支指令检测器42对所输入的取出码CD进行解码以检测分支指令。分支指令检测器42在取出码为分支指令时输出“1”,并且在取出码不是分支指令时输出“0”。
在检测到分支指令之后,输出保存单元43保持检测结果的值(“1”或“0”)直到指令被执行。
分支确定电路44_0-44_N(在统称时或者在未指定的一个被提及时,它们被描述为分支确定电路44)分别对应于图1所示的存储体BK_0-BK_N而设置。
每个分支确定电路44都包括与门45。与门45对输出保存单元33的输出以及来自相应的控制寄存器41的控制值BREN执行与运算。与门45的运算结果被输入图2所示的模式控制器70中的相应的模式信号生成电路71之内,作为用于指示分支确定结果的控制信号。
根据以上描述的配置,每个分支确定电路44都操作如下。
(i)在相应的控制寄存器41的值为“0”的情形中,分支确定电路44的输出(与门45的输出)被设定为“0”。在这种情况下,对相应的存储体BK不执行基于分支确定电路44的确定结果的控制。
(ii)在相应的控制寄存器41的值为“1”并且输出保存单元43的输出为“1”(也就是,取出码是分支指令)的情形中,分支确定电路44的输出(与门45的输出)被设定为“1”。结果,如同参照图2所解释的,基本上,除非断电模式由可使用存储区分配单元10来分配,否则对相应的存储体BK供应的供电电压被设定为正常电压Vn(通电模式)。
(iii)在相应的控制寄存器41的值为“1”并且输出保存单元43的输出为“0”的情形中,分支确定电路44的输出(与门45的输出)被设定为“0”。对相应的存储体BK供应的供电电压没有被切换为正常电压Vn,并且断电或待机电压Vs被保持。
<存储器控制电路的操作实例>
然后,对存储器控制电路的操作实例进行解释。在本操作实例中,假定总共提供5块(N=4)存储体BK_0-BK_4。在下文,存储体BK_0-BK_4在某些情况下将分别简要地描述为存储体(bank)0-4或存储器体(memory bank)0-4。存储体0和1存储数据(操作数),存储体2和3存储指令,而存储体4存储数据和指令两者。
图6是示出每个存储体的功率控制设置的实例的图表。如图6所示,参照图2所解释的可使用存储区分配单元10的控制寄存器11_0-11_3被设定为待机(Asb=1,且Aon=0)或者断电(Asb=0,且Aon=0),取决于各自相应的存储体0-3的操作条件。存储体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操作中,可使用存储区分配单元10可以分配哪个存储体将要用于包括引导任务、任务1-4及排空(evacuation)任务在内的每个程序任务。在图7的情形中,对于指令访问,存储体4被用于引导和排空,存储体2和4被用于任务1,存储体2、3和4被用于任务2和4,而存储体4被用于任务3。
在图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的电源模式变为正常模式(通电)。通过将每个存储体设定为正常模式,CPU2能够读出并执行存储于一个存储体内的初始引导程序。
在电源接通之后的时间t2,CPU2在引导任务中不访问存储体2;因此,CPU2将可使用存储区分配单元10的相应的控制寄存器11_2设定为断电(通电分配值Aon=“0”,且待机分配值Asb=“0”)。结果,由与存储体2对应的图2的模式信号生成电路71_2输出的通电信号Son和待机信号Ssb两者均被设定为“0”,并且存储体2的电源模式变为电源关闭模式(断电)。
而且,如同参照图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的电源模式变为正常模式(通电)。
当任务1在时间t5被执行时,用于指令取出的访问地址变为存储体2。因此,与图3所示的指令地址确定单元20中的存储体2对应的指令地址确定电路26_2输出“1”,作为确定结果。结果,存储体2的电源模式保持正常模式(通电)。在任务1的执行期间(直到时间t7),存储于存储体2内的指令被连续读出;因此,图3所示的指令地址确定单元20的相应的指令地址确定电路26_2输出“1”,作为确定结果。结果,存储体2的电源模式保持正常模式(通电)。
以此方式,对于待访问的存储体,存储体的电源模式在访问之前被设定为待机并且随后变为通电(正常模式)。因此,在存储器访问中不出现延迟时间,并因此可以在处理能力不劣化的情况下执行功率控制。
在时间t7转移至任务2之后,在指令访问从存储体2穿越(cross)至存储体3的时间t9之前(图8的时间t8),分别与图3所示的指令地址确定单元20的存储体2和3对应的指令地址确定电路26_2和26_3两者的确定输出被设定为“1”。结果,存储体2和3的电源模式两者均变为正常模式(通电)。
在指令访问转移至存储体3之后(在时间t9之后),与图3所示的指令地址确定单元20的存储体2对应的指令地址确定电路26_2的确定结果被设定为“0”。结果,存储体2的电源模式变为待机模式(Son=“0”,且Ssb=“1”)。
在时间t10之后的任务3中,CPU2不访问存储体2。因此,在转移至任务3的时间,CPU2将图2所示的可使用存储区分配单元10的相应的控制寄存器11_2设定为断电(Aon=“0”,且Asb=“0”)。结果,由与存储体2对应的图2的模式信号生成电路71_2输出的通电信号Son和待机信号Ssb两者均被设定为“0”,并且存储体2的电源模式变为电源关闭模式(断电)。
在随后的任务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的电源模式变为正常模式(通电)。在分支指令执行之后(在时间t14之后),用于指令取出的访问地址变为存储体2;因此,与图3所示的指令地址确定单元20中的存储体2对应的指令地址确定电路26_2输出“1”,作为确定结果。结果,存储体2的电源模式保持正常模式(通电)。
在时间t15,S/W操作转移至排空任务。在排空任务中,CPU2不访问存储体2。因此,CPU2将可使用存储区分配单元10的相应的控制寄存器11_2的电源模式设定为断电模式(通电分配值Aon=“0”,且待机分配值Asb=“0”)。结果,由与存储体2对应的图2的模式信号生成电路71_2输出的通电信号Son和待机信号Ssb两者均被设定为“0”,并且存储体2的电源模式变为电源关闭模式(断电)。
图8是示出给存储器控制电路和每个存储体供应的供电电压的变化的时序图。在图7和图8中,对相同的时间附上相同的附图标记。
如图8所示,正常电压被供应(通电)给图1所示的存储器控制电路4,从引导任务到排空任务。对于存储体2、3和4,在过去总是如同在存储体4中那样设定为正常模式(通电)。相反,在本发明中,对于每个程序任务,未被访问的存储体被设定为电源关闭模式(断电),如同在存储体2和3的情形中那样。而且,通过在每个存储体被访问之前预先将每个存储体设定为待机模式,可防止存储器访问的延迟时间出现。
特别地,在图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两者均变为正常模式(通电)。
在时间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变为电源关闭模式(断电)。
(效果)如上所述,对于每个程序任务,通过关闭没有为了指令取出而被访问的存储体的电源,可以精细地切换给存储体供应的供电电压,由此获得低功率消耗。
在图3所示的指令地址确定单元20中,通过将规定的地址增量加上当前访问目的地的地址而获得的地址可以是没有实际被访问的存储体的地址。在这种情况下,在可使用存储区分配单元10中,通过预先将与未被访问的存储体对应的控制寄存器11设定为“0”,可以防止未被访问的存储体的电源被错误地设定为接通。
2.数据(操作数)访问操作的实例
图9是示出存储器控制电路的数据(操作数)访问操作实例的时序图。在数据访问中,如同指令访问的情形那样,CPU2通过软件处理借助于图2所示的可使用存储区分配单元10来分配每个程序任务将要访问哪个存储体。在图9所示的实例中,对于数据访问,存储体4被用于引导任务(t21-t26),存储体0被用于任务1(t26-t31),存储体0、1和4被用于任务2(t31-t34),存储体1和4被用于任务4(t36-t41),而存储体0和4被用于排空任务(t41-t43)。在图9中,存储器访问指令以M表示,而非存储器访问指令以N表示。
如图1和图9所示,由于存储体0被用于任务1,因而在任务1执行之前的时间t25,CPU2将图2所示的可使用存储区分配单元10的控制寄存器11_0设定为待机。结果,存储体0的电源模式变为待机模式(S)。
在任务1的执行期间的时间t27,当图4所示的指令解码确定单元30的存储器访问指令检测器32检测到存储器访问指令时,与存储体0对应的指令解码确定电路36_0的确定输出被设定为“1”。结果,存储体0的电源模式变为正常模式(通电)。
随后,在时间t28,当图4所示的非存储器访问指令检测器35连续地检测到非存储器访问指令时,与存储体0对应的指令解码确定电路36_0的确定输出被设定为“0”。结果,存储体0的电源模式变为待机模式(S)。
存储体0和存储体1被用于任务2;因此,在任务2执行之前的时间t30,CPU2将图2所示的可使用存储区分配单元10的控制寄存器11_0和11_1设定为待机。结果,存储体1的电源模式变为待机模式。由于在时间t29已经检测到存储器访问指令,因而存储体0已经被设定为正常模式(通电)。
在任务2执行期间的时间t32,当图4所示的指令解码确定单元30的存储器访问指令检测器32检测到存储器访问指令时,分别与存储体0和1对应的指令解码确定电路36_0和36_1的确定输出被设定为“1”。结果,存储体0和1的电源模式从待机模式变为正常模式(通电)。
随后,在时间t33,当图4所示的非存储器访问指令检测器35连续地检测到非存储器访问指令时,分别与存储体0和1对应的指令解码确定电路36_0和36_1的确定输出被设定为“0”。结果,存储体0和1的电源模式变为待机模式(S)。
在任务3中没有数据访问;因此,CPU2将图2所示的可使用存储区分配单元10的控制寄存器11_0和11_1设定为断电。结果,存储体0和1的电源模式变为电源关闭模式(断电)。存在着对存储体4的指令访问,因此,存储体4保持由图2所示的可使用存储区分配单元10的控制寄存器11_4分配的通电。
存储体1被用于任务4;因此,在任务1执行之前的时间t35,CPU2将图2所示的可使用存储区分配单元10的控制寄存器11_1设定为待机。结果,存储体1的电源模式变为待机模式(S)。
在任务1的执行期间的时间t37,当图4所示的指令解码确定单元30的存储器访问指令检测器32检测到存储器访问指令时,与存储体1对应的指令解码确定电路36_1的确定输出被设定为“1”。结果,存储体1的电源模式变为正常模式(通电)。
随后,在时间t38,当图4所示的非存储器访问指令检测器35连续地检测到非存储器访问指令时,与存储体1对应的指令解码确定电路36_1的确定输出被设定为“0”。结果,存储体1的电源模式变为待机模式(S)。
(效果)如上所述,对于每个程序任务,关闭对其既不执行指令访问也不执行数据访问的存储体的电源,并且由指令解码确定单元30来预测数据访问的发生。因此,可以精细地切换给存储体供应的供电电压,由此获得低功率消耗。
因此,根据本实施例,在对存储器进行的指令访问和数据访问中,为每个程序任务执行存储体的功率控制;因此,与过去对存储体的功率控制相比,可以以精细和具体的方式来降低存储器的电功率。而且,由于访问目的地被预测,并且在存储器访问之前执行功率控制,因而可以抑制存储器的访问性能的劣化。
<修改后的实例>
在图2-图7的解释中,逻辑“1”和逻辑“0”的设置可以反过来(也就是,它可以被设定为“高态(H)”有效或“低态(L)”有效的)。当逻辑值的设置反过来时,或门变为与门,而与门变为或门。
本领域技术人员应当理解,本申请所公开的实施例在全部视角下均为说明性的,而非限制性的。本发明的范围不是由以上给出的解释性描述来说明的,而是由所附权利要求的范围来说明的,并且它意指:各种修改和变更在其属于所述权利要求或其等同物的范围之内时均可以根据设计要求及其他因素而发生。
Claims (8)
1.一种存储器控制电路,用于控制被划分成多个存储体的非易失性存储器,
其中作为操作模式,所述存储体中的每个都具有其中允许由中央处理单元CPU进行的访问的正常模式、其中功率消耗小于所述正常模式的待机模式,以及其中电源被关闭的关闭模式,并且
其中所述存储器控制电路包括:
第一寄存器分组,可操作用于存储由所述CPU为了所述CPU所执行的程序的每个任务而单独执行所述存储体的所述操作模式的初始设定的多个第一控制值;
访问确定单元,可操作用于根据用于指令取出的访问地址以及所取出指令的类型来确定是否发生由所述CPU对每个所述存储体的访问;以及
模式控制器,可操作用于根据所述第一控制值以及所述访问确定单元的确定结果来切换每个所述存储体的所述操作模式。
2.根据权利要求1所述的存储器控制电路,
其中所述模式控制器保持已经由所述第一寄存器分组将其初始设定为所述正常模式的存储体的模式,而不考虑所述访问确定单元的所述确定结果,并且
其中当所述访问确定单元确定发生由所述CPU进行的访问时,所述模式控制器将已经由所述第一寄存器分组将其初始设定为所述待机模式的存储体的模式切换为所述正常模式。
3.根据权利要求2所述的存储器控制电路,
其中所述访问确定单元包括:
第一确定单元,可操作用于根据用于指令取出的访问地址的检测结果来确定发生由所述CPU对其进行的访问的存储体;
第二确定单元,可操作用于检测所取出指令是否是分支指令,并且用于根据检测结果来确定是否发生由所述CPU对每个所述存储体进行的访问;以及
第三确定单元,可操作用于检测所述取出指令是否是用于访问存储于所述非易失性存储器内的数据的存储器访问指令,并且用于根据检测结果来确定是否发生由所述CPU对每个所述存储体进行的访问。
4.根据权利要求3所述的存储器控制电路,
其中所述第一确定单元确定发生由所述CPU对与当前访问地址对应的存储体以及对与通过将规定的值加上所述当前访问地址来给出的地址对应的存储体进行的访问。
5.根据权利要求3所述的存储器控制电路,
其中所述第三确定单元确定在所取出指令是所述存储器访问指令时发生由所述CPU对每个所述存储体进行的访问,并且保持由所述CPU进行的所述访问的确定结果,直到与所述存储器访问指令不同的指令被连续地检测到规定次数。
6.根据权利要求3所述的存储器控制电路,
其中所述第一确定单元、所述第二确定单元及所述第三确定单元中的每个都包括可操作用于存储分别与所述存储体对应的多个第二控制值的第二寄存器分组,
其中关于与其中第一逻辑值已经被设定为所述第二控制值的寄存器对应的存储体,所述第一确定单元、所述第二确定单元及所述第三确定单元中的每个都确定是否发生由所述CPU进行的访问并且输出确定结果,并且关于与其中第二逻辑值已经被设定为所述第二控制值的寄存器对应的存储体,总是输出用于指示没有发生由所述CPU进行的访问的确定结果。
7.根据权利要求2所述的存储器控制电路,
其中所述CPU输出在对所述非易失性存储器的访问期间断言的请求信号,
其中所述存储器控制电路还包括第四确定单元,
其中所述第四确定单元在所述CPU访问所述非易失性存储器时检测所述请求信号和访问地址,并且确定:当所述请求信号被断言时,发生由所述CPU对与当前访问地址对应的存储体进行的访问,并且
其中所述模式控制器将所述第四确定单元已经确定了发生由所述CPU进行的访问的存储体设定为所述正常模式,而不考虑所述第一寄存器分组的设定值以及所述访问确定单元的确定结果。
8.根据权利要求7所述的存储器控制电路,
其中,当所述第四确定单元确定没有发生由所述CPU进行的访问时,所述模式控制器保持已经由所述第一寄存器分组初始设定为所述关闭模式的存储体的模式,而不考虑所述访问确定单元的所述确定结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013-076689 | 2013-04-02 | ||
JP2013076689A JP6030987B2 (ja) | 2013-04-02 | 2013-04-02 | メモリ制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104102325A true CN104102325A (zh) | 2014-10-15 |
CN104102325B CN104102325B (zh) | 2018-05-15 |
Family
ID=51622051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410129073.0A Expired - Fee Related CN104102325B (zh) | 2013-04-02 | 2014-04-02 | 存储器控制电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10108249B2 (zh) |
JP (1) | JP6030987B2 (zh) |
CN (1) | CN104102325B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003948A (zh) * | 2014-12-02 | 2017-08-01 | 三星电子株式会社 | 电子设备及用于控制其可共享的高速缓存存储器的方法 |
CN107346166A (zh) * | 2016-05-05 | 2017-11-14 | 展讯通信(上海)有限公司 | 一种访问存储器的方法及内存管理器 |
CN110310686A (zh) * | 2018-03-27 | 2019-10-08 | 华邦电子股份有限公司 | 存储器元件及其电源控制方法 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
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 |
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 |
US10353815B2 (en) | 2017-05-26 | 2019-07-16 | Microsoft Technology Licensing, Llc | Data security for multiple banks of memory |
US10346345B2 (en) | 2017-05-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Core mapping |
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 |
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 | 삼성전자주식회사 | 가변적인 모드 설정을 수행하는 메모리 장치 및 그 동작방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159004A1 (en) * | 2000-07-19 | 2003-08-21 | Rambus, Inc. | Memory controller with power management logic |
CN101086679A (zh) * | 2006-06-06 | 2007-12-12 | 英特尔公司 | 预测计算平台存储器功率利用率 |
CN101907918A (zh) * | 2009-06-03 | 2010-12-08 | 精拓科技股份有限公司 | 节省待机/关机状态功率消耗的计算机系统及其相关方法 |
US20120179926A1 (en) * | 2008-07-03 | 2012-07-12 | Renesas Electronics Corporation | Memory control circuit and integrated circuit including branch instruction and detection and operation mode control of a memory |
Family Cites Families (12)
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 |
US7165165B2 (en) * | 2004-03-16 | 2007-01-16 | Intel Corporation | Anticipatory power control of memory |
WO2006033070A1 (en) * | 2004-09-22 | 2006-03-30 | Koninklijke Philips Electronics N.V. | Memory control with selective retention |
JP2007188171A (ja) * | 2006-01-11 | 2007-07-26 | Matsushita Electric Ind Co Ltd | メモリコントローラ |
JP5776347B2 (ja) * | 2011-06-10 | 2015-09-09 | 富士通株式会社 | 電力制御方法、電子装置、プログラム及びプログラムの生成方法 |
JP6000708B2 (ja) * | 2012-07-20 | 2016-10-05 | キヤノン株式会社 | メモリ制御装置および方法 |
-
2013
- 2013-04-02 JP JP2013076689A patent/JP6030987B2/ja not_active Expired - Fee Related
-
2014
- 2014-04-01 US US14/242,413 patent/US10108249B2/en not_active Expired - Fee Related
- 2014-04-02 CN CN201410129073.0A patent/CN104102325B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159004A1 (en) * | 2000-07-19 | 2003-08-21 | Rambus, Inc. | Memory controller with power management logic |
CN101086679A (zh) * | 2006-06-06 | 2007-12-12 | 英特尔公司 | 预测计算平台存储器功率利用率 |
US20120179926A1 (en) * | 2008-07-03 | 2012-07-12 | Renesas Electronics Corporation | Memory control circuit and integrated circuit including branch instruction and detection and operation mode control of a memory |
CN101907918A (zh) * | 2009-06-03 | 2010-12-08 | 精拓科技股份有限公司 | 节省待机/关机状态功率消耗的计算机系统及其相关方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003948A (zh) * | 2014-12-02 | 2017-08-01 | 三星电子株式会社 | 电子设备及用于控制其可共享的高速缓存存储器的方法 |
CN107346166A (zh) * | 2016-05-05 | 2017-11-14 | 展讯通信(上海)有限公司 | 一种访问存储器的方法及内存管理器 |
CN107346166B (zh) * | 2016-05-05 | 2019-12-03 | 展讯通信(上海)有限公司 | 一种访问存储器的方法及内存管理器 |
CN110310686A (zh) * | 2018-03-27 | 2019-10-08 | 华邦电子股份有限公司 | 存储器元件及其电源控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140298056A1 (en) | 2014-10-02 |
JP6030987B2 (ja) | 2016-11-24 |
CN104102325B (zh) | 2018-05-15 |
JP2014203148A (ja) | 2014-10-27 |
US10108249B2 (en) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104102325A (zh) | 存储器控制电路 | |
US10817360B2 (en) | Apparatus and methods for debugging on a memory device | |
CN101373427B (zh) | 程序执行控制装置 | |
US9355014B2 (en) | Debug instruction set allocation according to processor operating state | |
US8607228B2 (en) | Virtualizing performance counters | |
GB2514882A (en) | Instruction emulation processors, methods, and systems | |
US20140281398A1 (en) | Instruction emulation processors, methods, and systems | |
US8578136B2 (en) | Apparatus and method for mapping architectural registers to physical registers | |
KR102271992B1 (ko) | 데이터 처리장치 및 추론 벡터 연산의 수행 제어방법 | |
JP2006502488A (ja) | 省電力vliwプロセッサ | |
WO2013101069A1 (en) | Core switching accelaration in asymmetric multiprocessor system | |
KR102594288B1 (ko) | 성능 또는 에너지 소모 특성이 상이한 제1 및 제2 처리 모드를 갖는 처리 파이프라인 | |
CN104899181A (zh) | 用于处理向量操作数的数据处理装置和方法 | |
TW201346567A (zh) | 結構存取處理器、方法、系統及指令 | |
EP2585906B1 (en) | Next-instruction-type field | |
CN105190551A (zh) | 具有存储器区域交换机制的双引导系统 | |
US9690600B2 (en) | Reconfigurable processor and method of operating the same | |
US10409602B2 (en) | Vector operand bitsize control | |
CN105279451B (zh) | 安全领域预测 | |
JP2013161484A (ja) | 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法 | |
KR102379886B1 (ko) | 벡터 명령 처리 | |
JP2013156792A (ja) | マイクロプロセッサ装置 | |
JPH09167090A (ja) | 電子計算機 | |
JP2014106657A (ja) | 情報処理装置 | |
JP2012178099A (ja) | 制御装置およびプログラム変更方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: Tokyo, Japan Applicant after: Renesas Electronics Corporation Address before: Kanagawa, Japan Applicant before: Renesas Electronics Corporation |
|
COR | Change of bibliographic data | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180515 Termination date: 20190402 |