CN100456211C - 基于请求的低功耗指令存储器 - Google Patents
基于请求的低功耗指令存储器 Download PDFInfo
- Publication number
- CN100456211C CN100456211C CNB2007100345717A CN200710034571A CN100456211C CN 100456211 C CN100456211 C CN 100456211C CN B2007100345717 A CNB2007100345717 A CN B2007100345717A CN 200710034571 A CN200710034571 A CN 200710034571A CN 100456211 C CN100456211 C CN 100456211C
- Authority
- CN
- China
- Prior art keywords
- instruction
- memory
- request
- address
- read
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于请求的低功耗指令存储器,它的脉冲生成器采用基于请求的存储时钟生成逻辑,分别根据读、写请求生成存储体的读脉冲时钟pulse、写脉冲时钟pulse,并产生读hold和写hold控制读地址生成器和写地址生成器,读地址生成器和写地址生成器分别用于存储体读地址和写地址的生成,指令装载模块负责与系统外部全频数据的交互,并进行指令拼接,完成拼接指令到基于请求存储的半频双体指令存储器的传输,指令读取模块用于提供半频双体指令存储器到全频指令流水线的高速指令传输,双体指令存储器用于存储指令,它每行存储两个连续的指令包,每次读/写双体指令存储器以两个包为单位。本发明具有功耗低、主频高、吞吐率高、控制简单等优点。
Description
技术领域
本发明主要涉及到微处理器中存储器的设计领域,特指一种基于请求的低功耗指令存储器。
背景技术
随着集成电路规模的剧增,功耗日渐成为集成电路设计的瓶颈,因此低功耗设计成为了微处理器设计所追求的重要目标和基本要求。在当今主流微处理器中,为了解决处理器与主存之间巨大的速度差距,都采用了片内存储技术,容量达兆级,如IntelItanium2片内存储器容量为3.288兆,包括16KB ICache、16KB DCache、256KB L2Cache和3M L3Cache。如此大容量的片内存储器所带来的功耗已成为微处理器功耗的重要来源,因此降低片内存储器功耗是实现处理器低功耗设计的重要保证。
通常情况下,片内存储器由SRAM组成,数据存取访问受全局时钟信号控制。当有读/写请求访问片内存储器时,片内存储器在全局时钟的控制下完成数据的存取操作;当没有读/写请求时,片内存储器虽不完成数据存取,但电路上仍在全局时钟控制下进行信号翻转,而此时的翻转是完全不必要的,会导致较大的功耗开销。为了减少这些不必要的片内存储器功耗开销,一般采用门控时钟作为存储器的时钟信号。门控时钟由存储器的读写请求同全局时钟信号进行逻辑与产生,这样既保证了读/写请求时数据的存取操作,又保证了无请求时信号的不翻转,极大地降低了存储功耗。但是由于门控时钟的产生源仍来自全局时钟,因此这种方式下的存储访问工作频率同全局时钟控制下的存储访问工作频率一样,受限于SRAM的访问时间。尽管SRAM相对于其它类型存储器,速度更快、访问时间更短,一般为纳秒(ns)级,但从实际应用看,仍不能满足高主频处理器流水线对存储访问延迟的要求,如千兆赫兹的流水线,其时钟周期只有1个纳秒,比SRAM的访问延迟要小1~2倍。门控时钟片内存储设计虽然解决了存储器设计的低功耗问题,但是无法克服频率的限制。因此如何克服SRAM访问延迟对处理器频率的影响以及实现片内存储器设计的低功耗是微处理器设计必须解决的问题。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种功耗低、主频高、吞吐率高、控制简单的基于请求的低功耗指令存储器。
为解决上述技术问题,本发明提出的解决方案为:一种基于请求的低功耗指令存储器,其特征在于:它包括脉冲生成器、读地址生成器、写地址生成器、指令装载模块、指令读取模块与双体指令存储器,所述脉冲生成器采用了基于请求的存储时钟生成逻辑,分别根据读、写请求生成存储体的读脉冲时钟pulse、写脉冲时钟pulse,同时为了保证基于请求存储的正确性,脉冲生成器还产生读hold以及写hold来控制读地址生成器和写地址生成器,读地址生成器和写地址生成器分别用于存储体读地址和写地址的生成,指令装载模块负责与系统外部全频数据的交互,同时进行指令拼接,完成拼接指令到基于请求存储的双体指令存储器的传输,指令读取模块用于提供双体指令存储器到全频指令流水线的高速指令传输,双体指令存储器用于指令的存储,双体指令存储器的每行存储两个连续的指令包,每次读/写双体指令存储器以两个包为单位。
所述双体指令存储器的读/写地址、写数据、读/写使能采用了保持逻辑实现,保持逻辑的地址触发器、数据触发器和使能触发器在脉冲生成器给出的hold控制下保持需访问的存储体地址、数据和使能,从而保证基于请求存储的正确性。
所述指令装载模块设置了双缓冲,其目的为了保证双体指令存储器到全频指令流水线的高速指令传输,弥补基于请求存储技术的半频存储吞吐率,双缓冲的每个半缓冲由两个缓存构成,共四个缓存,分别标示为缓存1、缓存2、缓存3、缓存4,每个缓存有数据和有效位val组成,半缓冲中的缓存3、缓存4用于与外部全频系统进行指令交互,半缓冲中的缓存1、缓存2用于指令拼接,启动双体指令存储器写操作,4个缓存都工作在全频。
与现有技术相比,本发明的优点就在于:
1、功耗低。本发明采用基于请求的低功耗存储设计技术,由读/写请求产生的脉冲作为存储器的时钟信号。与全局时钟存储访问相比,基于请求的存储设计保证了仅在存储器需要读/写的时候才进行信号翻转,精确了存取操作,避免了不必要的信号翻转引起的动态功耗,从而极大地降低了存储功耗;与全局门控时钟存储访问相比,由读/写请求产生的单脉冲存储时钟频率为门控时钟的一半,因此基于请求的存储设计技术不但继承了门控设计中依赖请求产生功耗的低功耗特性,又在此基础上通过降低存储时钟频率进一步减少了存储功耗。
2、主频高。基于请求存储设计访问频率的降低缓解了存储体SRAM访问时间对微处理器高主频设计的限制,允许SRAM访问时间增大到原先的2倍,使得SRAM不再成为高主频设计的时序瓶颈。反过来说,如果其它因素不成为微处理器高主频设计的时序瓶颈,那么采用基于请求的低功耗存储技术设计的微处理器主频将提高2倍。
3、吞吐率高。采用基于请求的存储技术的指令存储器工作在半频。为了保证半频存储访问时高的指令吞吐率,指令存储器采用双体存储。指令存入时,采用双缓冲机制,实现了存储延迟的重叠;指令读取时,每次读取两个指令包给全频系统流水线,保证了全频系统每拍都能处理指令,从而确保半频指令存储器达到了全频访问的效果。
4、控制简单。存储的半频为系统主频的提高提供了可能,但需解决与系统全频间的数据传输。基于请求的存储设计产生的半频存储时钟依赖于全频请求。当请求、数据、地址就绪时,固定在下一个周期生成半频时钟。这种固定时序保证了任何时候给出的全频存储请求都位于与之对应的半频存储时钟上升沿的前一拍。与系统外部分别提供两个独立的全频和半频时钟相比,基于请求存储设计的固定时序使得控制简单,无需考虑全频请求是位于半频时钟上升沿还是下降沿的复杂情况。
本发明已成功应用于国防科技大学计算机学院设计并实现的高性能微处理器YeS64中。YeS64采用半定制设计。在半定制电路中,一个2048x128的存储体在0.13um工艺下访问时间达2.18ns,已成为YeS64高主频的受限因素。但采用基于请求的低功耗存储设计,不但使存储访问不再成为主频的时序瓶颈,而且有效的降低了功耗。同时双体的指令存储技术也保证了高的指令吞吐率。经YeS64样片测试,该发明能在YeS64处理器中正确有效的执行。
附图说明
图1是3种存储时序图;
图2是本发明基于请求的存储逻辑图;
图3是本发明的指令存储器逻辑框图;
图4是本发明的指令存储器写逻辑图;
图5是本发明的指令存储器读逻辑图。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
本发明的一种基于请求的低功耗指令存储器,它包括脉冲生成器301、读地址生成器302、写地址生成器303、指令装载模块304、指令读取模块305与双体指令存储器306,所述脉冲生成器采用了基于请求的存储时钟生成逻辑,分别根据读、写请求生成存储体的读脉冲时钟pulse、写脉冲时钟pulse、同时为了保证基于请求存储的正确性,脉冲生成器还产生读hold以及写hold来控制读地址生成器302和写地址生成器303,读地址生成器302和写地址生成器303分别用于存储体读地址和写地址的生成,指令装载模块304负责与系统外部全频数据的交互,同时进行指令拼接,完成拼接指令到基于请求存储的双体指令存储器的传输,指令读取模块305用于提供双体指令存储器到全频指令流水线的高速指令传输,双体指令存储器306用于指令的存储,双体指令存储器的每行存储两个连续的指令包,每次读/写双体指令存储器以两个包为单位。双体指令存储器306的读/写地址、写数据、读/写使能的逻辑原理如图2中保持逻辑211所示,保持逻辑211的地址触发器205、数据触发器204和使能触发器203在脉冲生成器301给出的hold控制下保持需访问的存储体地址、数据和使能,从而保证基于请求存储的正确性。指令装载模块304设置了双缓冲,其有效地保证了基于请求存储的半频存储吞吐率,双缓冲的每个半缓冲由两个缓存构成,共四个缓存,分别标示为缓存1、缓存2、缓存3、缓存4,每个缓存有数据和有效位val组成,半缓冲中的缓存3、缓存4用于与外部全频系统进行指令交互,半缓冲中的缓存1、缓存2用于指令拼接,启动双体指令存储器写操作,4个缓存都工作在全频。
本发明的存储器主要是采用基于读/写请求产生的脉冲时钟代替传统的全局时钟或门控时钟进行存储体访问。基于读/写请求产生的脉冲时钟频率为全局时钟的一半。为了保证半频存储访问的吞吐率,本发明的存储器采用双体结构。同时为了保证基于读/写请求半频存储访问时数据读写的匹配以及电路建立时间和保持时间的要求,本发明设置了保持逻辑以保证存储地址和数据的有效性。本发明基于请求的低功耗存储器结构既适用于数据存储器,也适用于指令存储器。为了保证高的流水吞吐率,本发明中存储器的双体结构更适合于连续访问的数据存储。相比而言,指令存储器具有很好的连续访问特性。
在本发明中,基于请求的存储逻辑为:
本发明采用基于请求的存储设计技术,其存储逻辑包括存储时钟生成逻辑和使能、地址、数据保持逻辑两部分。存储时钟生成逻辑由脉冲生成器301构成,用于生成存储体的访问时钟,存储体访问时钟的有无依赖于请求。使能、地址、数据保持逻辑由保持逻辑211构成,用于维持有效的使能、地址、数据,保证基于请求存储访问的使能、地址、数据建立时间和保持时间的要求。
在本发明中,存储时钟逻辑为:本发明采用基于请求的存储设计技术。请求信号在全局时钟的控制下打入触发器,触发器的输出作为存储体访问的时钟。当请求信号无效时,触发器的输出始终保持低电平,不提供时钟给存储体,保证了不必要的信号翻转引起的动态功耗不会发生;当请求信号有效时,触发器的输出产生从低到高的脉冲作为存储体访问时钟处理存储请求。由于脉冲是通过全局时钟打入触发器产生的,因此脉冲信号的工作频率为全局时钟的一半。采用这种基于请求的存储时钟,一方面降低了存储功耗,一方面缓解了存储体访问时间对微处理器高主频设计的限制。
在本发明中,使能、地址、数据保持逻辑为:本发明采用基于请求的存储设计技术,其存储体工作在半频,存储的请求、地址、数据工作在全频。因此需要解决半频存储读/写时全频使能、地址、数据的匹配以及半频存储读/写时使能、地址、数据建立时间和保持时间的要求。当存储的请求、地址、数据就绪时,请求在全频时钟控制下产生了存储时钟,同时使能、地址、数据也在同一时钟控制下被更新,此时用产生的存储时钟去采样使能、地址、数据,在电路上可能产生两种行为,一种采样到了未更新前真正要进行存储访问的使能、地址、数据,另一种则采样到了已更新的错误使能、地址、数据。为此,基于请求的存储设计必须从逻辑上解决半频存储访问使能、地址、数据的正确性。因此本发明设置了一个保持信号,在产生存储时钟的同时,用该保持信号控制要进行存储访问的使能、地址、数据,使其维持原值,不接收更新的使能、地址、数据。这样在存储访问时,全频使能、地址、数据在半频存储时钟上升沿的前后都保持稳定,各维持一个全频周期。通过使能、地址、数据的维持保证了存储数据的正确性,也满足了使能、地址、数据建立时间和保持时间的要求。本发明中可使用脉冲存储时钟生成电路中触发器的站前信号作为保持信号。在脉冲生成的前一拍,存储的请求、地址、数据就绪,产生了保持信号,在下一拍产生存储脉冲时钟时,使能、地址、数据也在上拍生成的保持信号的控制下维持了待存储的使能、地址、数据值,实现了基于请求存储的正确性。
在本发明中,指令存储器结构为:
本发明中指令存储器采用基于请求的低功耗设计技术,工作频率为系统时钟的一半,这意味着每两拍完成一次数据传输。为了弥补半频存储的性能损失,本发明的指令存储器采用双体结构。指令存储器的每行存储两个连续的指令包,每次读/写指令存储器以两个包为单位。两个周期处理两个数据同系统时钟每周期处理一个数据达到了同样的效果。
采用基于请求的指令存储技术后,为了保证外部全频数据到半频存储的高传输率,指令存储器设置了指令装载部件,指令装载部件采用双缓冲机制,一个缓冲用于指令存储器与外部的交互,接收连续的全频指令数据,一个缓冲用于连续指令数据的拼接,构成双指令包完成一次双体指令存储器的数据写入。通过指令装载的双缓冲机制,流水状况下,每个全频周期都能从外部接收一个指令数据,而不会因为指令存储器的写工作在半频影响数据传输性能。
同样采用基于请求的指令存储技术后,为了保证半频存储到外部全频数据的高传输率,指令存储器设置了指令读取部件,指令读取部件内含指令缓冲器,对于一次存储读出的两个连续指令包,一个包直接送往全频执行流水线处理,另一个包则缓存在指令缓冲器中,下一拍提供给全频执行流水线。这样全频执行流水线每周期都能处理一个指令,而不会因为指令存储器的读工作在半频影响程序执行性能。
以具体实施例为例,如图1所示是3种存储时序图。该时序图对全局时钟存储器、门控时钟存储器及基于请求的脉冲存储器进行了比较。图中T1表示建立时间,T2表示维持时间,T3表示访问时间。在全局时钟存储器中,每个时钟周期都处理地址/数据,而不论请求信号是否有效。因此当系统时钟第3个上升沿到达时,虽然请求信号无效,但地址/数据在时钟控制下仍然造成了不必要的动态翻转,表现为全局时钟存储波形图中第3个的数据访问是不定的;在门控时钟存储器中,当全局时钟上升沿到达同时请求信号有效时,才处理地址/数据。在门控时钟存储波形图中表现为系统时钟第3个上升沿到达时,由于请求信号无效,门控时钟为低电平,存储体不翻转,Q2继续保持两个时钟周期,从而避免了不必要的动态功耗;在基于请求的脉冲时钟存储器中,当请求信号无效时,存储体的脉冲时钟为低电平,存储体不翻转;当请求信号有效时,才产生脉冲时钟进行存储,从而继承了门控时钟依赖请求的低功耗特性。同时基于请求生成的脉冲时钟其工作频率是门控时钟的一半,因此更进一步地降低了功耗。但是正是由于基于请求的脉冲时钟工作在半频,因此需要硬件逻辑保证存储的正确性,若无硬件逻辑支持则当请求产生脉冲时钟信号时数据已被刷新从而造成存储错误,为此引入保持信号,它为脉冲时钟信号的前一拍信号,由它维持地址/数据的有效性。
图2是本发明基于请求的存储逻辑图。包括存储时钟生成逻辑和使能、地址、数据保持逻辑两部分。图中脉冲生成器301构成存储时钟生成逻辑,包括与门201、非门202和触发器206,触发器206的输出提供存储体时钟。图中保持逻辑211完成使能、地址、数据的保持,包括多路选择器207、208、209和触发器203、204、205,其中207、203用于使能保持、208、204用于数据保持、209和205用于地址保持,触发器203的输出提供存储体使能,触发器204的输出提供存储体数据,触发器205的输出提供存储体地址。有了存储的地址、数据、使能和时钟即可进行存储体访问。下面以一个具体的存储请求为实例介绍基于请求的存储逻辑。触发器203、204、205、206工作在统一的全频时钟下,初始时都处于低电平。当有一个新的存储请求Req时,与之对应的数据、地址也准备就绪,分别位于207、208、209单元的输入,此时由于触发器205为低电平,与门201保证了hold信号为低,从而在全频时钟上升沿到达时,触发器203、204、205将接收207、208、209单元选出的新的Req请求、数据和地址。当触发器203的请求信号Req_out有效时,与门201的两输入均为高电平,使得触发器206站前信号hold为高,在下一个全频时钟上升沿时,触发器206将hold高电平打入传给输出信号pulse,触发器206的pulse由低跳转为高。当pulse为高时,又通过非门202控制与门201逻辑,使得hold信号又变为低电平。那么在接下来的全频时钟上升沿到达时,触发器206采样hold的值,pulse信号又跳转为低电平,若此时后续新的请求Req_out有效,则hold信号又在后续新请求和pulse的控制下跳转为高电平,依次反复,从而生成周期为系统时钟周期两倍的脉冲信号作为存储时钟。但是当请求信号Req_out无效时,与门201控制hold信号始终为低,触发器206采样得到的pulse的值也始终为低,从而可实现无请求无存储时钟的低功耗设计。
有了基于请求产生的存储时钟,存储体还必须考虑基于请求的存储逻辑中存储时钟与存储的使能、数据、地址的对应。基于请求产生的存储时钟由触发器206提供,工作在半频,而使能、数据、地址由触发器203、204、205提供,工作在全频。由图2逻辑可知,触发器206产生的存储时钟依赖于触发器203,相对于触发器203、204、205时序晚一个全频周期。如果对触发器203、204、205提供的存储使能、数据、地址不做处理,而让其接收新的值,那么当用触发器206提供的存储时钟去采样时,电路上可能会由于建立时间和保持时间的违反采样到已更新的错误值。为此基于请求的存储逻辑要有相应的硬件保护,保证触发器206提供的脉冲存储时钟采样前后使能、地址、数据保持不变。为了使存储使能、地址、数据保持不变,硬件逻辑使用了保持信号hold,hold信号是触发器206的栈前信号。当触发器203的请求信号Req_out有效时,hold信号为高,存储使能、地址、数据保存在触发器203、204、205中,待下一个全频时钟上升沿到达时,触发器206产生从低到高的脉冲存储时钟沿,与此同时使用hold信号控制207、208、209单元选择触发器203、204、205已保存的值再次打入触发器203、204、205。这样就保证了用触发器206产生的脉冲存储时钟沿采样触发器203、204、205的使能、地址、数据正确。通过hold信号的保持作用,一方面保证了使用基于请求的脉冲存储时钟存储数据的正确性。另一方面由于hold对使能、地址、数据的保持使得存储使能、地址、数据在半频脉冲存储时钟上升沿的前后都保持稳定,满足了电路建立时间和保持时间的要求。
图3是本发明的指令存储器逻辑框图。大体分为五部分:脉冲生成器301、地址生成器302和303、指令装载模块304、指令读取模块305与双体指令存储器306。脉冲生成器301根据读写请求分别生成存储体的读脉冲时钟pulse/写脉冲时钟pulse、读hold/写hold。地址生成器包括读地址生成器302和写地址生成器303两部分,分别用于存储体读地址和写地址的控制。指令装载模块304负责与系统外部全频数据的交互,同时进行指令拼接,完成拼接指令到双体指令存储器的传输。指令读取模块305用于提供双体指令存储器到全频指令流水线的高速指令传输。双体指令存储器306用于指令的存储,双体指令存储器的每行存储两个连续的指令包,每次读/写双体指令存储器以两个包为单位。本发明的指令存储器可同时支持存储体的读写,从而有效地隐藏了存储延迟。
图4是本发明的指令存储器写逻辑图,其存储体写入逻辑采用了图2所述的基于请求存储的存储设计技术,包括脉冲生成器301、写地址生成器303、指令装载模块304。脉冲生成器301提供存储器写时钟、写地址生成器303提供存储器写地址、指令装载模块304提供存储器写数据和写使能。指令存储模块采用基于请求的存储设计后,将工作在半频,这意味着每两拍完成一次数据传输。为了弥补半频存储的性能损失,指令存储器采用双体存储。为此指令存入双体指令存储器之前要经指令装载模块304进行拼接。为了隐藏存储延迟,提高流水吞吐率,指令装载模块304设置了双缓冲,双缓冲的每个半缓冲由两个缓存构成,共四个缓存,分别标示为缓存1、缓存2、缓存3、缓存4,每个缓存有数据和有效位val组成。半缓冲中的缓存3、缓存4用于与外部全频系统进行指令交互,半缓冲中的缓存1、缓存2用于指令拼接,启动双体指令存储器写操作。4个缓存都工作在全频。
下面以一个实例介绍本发明的指令存储器写入过程。复位时,MPC为0。当系统外部加载一块连续指令到指令存储器时,先通过写地址生成器303记录初始MPC,初始MPC的高位(除去最低位)来指示双体指令存储器中存储的初始位置,初始MPC的最低位来指示初始地址的奇偶,MPC在无存储器写请求时(Req_out无效时)保持原值。接着指令以流水的方式打入缓存3、缓存4,第一拍缓存3接收指令,第二拍缓存4接收指令,待缓存3、缓存4的指令都有效时,将指令一起打入缓存1、缓存2,与此同时可并行接收系统外部新的指令。当缓存1、缓存2的指令都有效时,Req_out有效,有效的Req_out通过脉冲生成器301生成pulse写存储时钟,同时由hold信号来维持缓存1、缓存2的指令和val信号(缓存的指令和val分别提供存储器的写数据和写使能),hold信号也用于写地址生成器303的MPC值的维持和更新,在Req_out有效的第一拍hold为高维持MPC,在Req_out有效的第二拍hold为低更新MPC,这样保证了半频指令存储体写操作的正确性。另外,对于指令块初始装载和结束两种边缘情况,分别用Load_Val和EOS信号进行控制启动第一次和最后一次存储体写入操作,用MPC的最低位表征指令的奇偶,控制边缘情况的双包对齐。本发明指令存储器写逻辑的双缓冲结构能有效地隐藏存储延迟,在流水情况下,可达到无停顿处理。
图5是本发明的指令存储器读逻辑图,其存储体读取逻辑采用了图2所述的基于请求存储的存储设计技术,包括脉冲生成器301、读地址生成器302、指令读取模块305。脉冲生成器301提供存储器读时钟、读地址生成器302提供存储器读地址、指令读取模块305提供双体指令存储器到全频指令流水线的高速指令传输。图中触发器、缓存器、奇偶位、MPC都是D触发器,工作在全频。当要访问指令存储器时,请求Req打入触发器,与之对应的访问地址打入奇偶位和MPC。其中MPC存放地址高位(最低位除外),用于指示指令存储器的读地址,奇偶位存放地址最低位,用于表征双体指令存储器中每次访问的两个指令包哪个有效。当触发器输出Req_out变为高后,MPC也保存了存储体的访问地址,待下一个全频时钟上升沿到达时产生指令存储体的读时钟,同时用hold信号保持访问请求Req_out和访问地址MPC,从而保证了基于请求的指令存储体读访问正确。
由于基于请求的指令存储器工作在半频,因此对于某请求Req_out有效时,两拍后可得到访问结果——1个双指令包。对于访问得到的双指令包,第一拍将双指令包中的低指令,即偶地址指令送往指令流水线译码执行,同时将双指令包中的高指令,即奇地址指令打入缓存器,待第二拍半频指令存储器无法提供指令时,由缓存器将缓存的奇地址指令送往指令流水线译码执行。通过这种方式,在流水情况下,全频指令流水线每拍都能处理一个指令,而不会因为存储体的半频访问产生等待。另外,对于访问得到的双指令包的有效性可通过访问时的奇偶位锁存两拍的信息控制,若锁存两拍的奇偶位为0,则表示访问得到的双指令包都有效,若锁存两拍的奇偶位为1,则表示访问得到的双指令包中仅奇地址指令有效。
指令存储器访问得到的指令送往全频指令流水线后,由指令流水线译码执行。当译码出的指令为分支指令,需作废流水线中后续指令,以新的跳转地址重新取指执行,这种机制对指令存储器和指令流水线都工作在全频下容易处理,但对指令存储器工作在半频、指令流水线工作在全频,就要分两种情况。当译码得出的分支指令为双指令包中偶地址指令时,给出的跳转地址正好位于产生的脉冲时钟的前两拍,因此有一拍的时间将跳转地址打入MPC,由MPC下拍提供存储访问地址。当译码得出的分支指令为双指令包中奇地址指令时,给出的跳转地址正好位于产生的脉冲时钟的前一拍,为了避免等待,直接将跳转地址旁路作为存储器访问地址,同时也将跳转地址打入MPC,下一拍MPC在hold的控制下保持。通过对这两种情况的处理,就可有效解决基于请求存储的指令存储器与全频指令流水线的高速指令传输。
Claims (3)
1、一种基于请求的低功耗指令存储器,其特征在于:它包括脉冲生成器(301)、读地址生成器(302)、写地址生成器(303)、指令装载模块(304)、指令读取模块(305)与双体指令存储器(306),所述脉冲生成器(301)采用了基于请求的存储时钟生成逻辑,分别根据读、写请求生成存储体的读脉冲时钟pulse、写脉冲时钟pulse、同时为了保证基于请求存储的正确性,脉冲生成器还产生读hold以及写hold来控制读地址生成器(302)和写地址生成器(303),读地址生成器(302)和写地址生成器(303)分别用于存储体读地址和写地址的生成,指令装载模块(304)负责与系统外部全频数据的交互,同时进行指令拼接,完成拼接指令到基于请求存储的双体指令存储器的传输,指令读取模块(305)用于提供双体指令存储器到全频指令流水线的高速指令传输,双体指令存储器(306)用于指令的存储,双体指令存储器的每行存储两个连续的指令包,每次读/写双体指令存储器以两个包为单位。
2、根据权利要求1所述的基于请求的低功耗指令存储器,其特征在于:所述双体指令存储器(306)的读时钟和写时钟与脉冲生成器(301)相连,读地址与读地址生成器(302)相连,写地址与写地址生成器(303)相连,写数据、写使能与指令装载模块(304)相连,读数据与指令读取模块(305)相连,其中存储体时钟逻辑结构根据请求产生存储体访问时钟,保持逻辑(211)的地址触发器(205)、数据触发器(204)和使能触发器(203)在脉冲生成器(301)给出的hold控制下保持需访问的存储体地址、数据和使能,从而保证基于请求存储的正确性。
3、根据权利要求1或2所述的基于请求的低功耗指令存储器,其特征在于:所述指令装载模块(304)设置了双缓冲,其目的为了保证双体指令存储器到全频指令流水线的高速指令传输,弥补基于请求存储技术的半频存储吞吐率,双缓冲的每个半缓冲由两个缓存构成,共四个缓存,分别标示为缓存1、缓存2、缓存3、缓存4,每个缓存有数据和有效位val组成,半缓冲中的缓存3、缓存4用于与外部全频系统进行指令交互,半缓冲中的缓存1、缓存2用于指令拼接,启动双体指令存储器写操作,4个缓存都工作在全频。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100345717A CN100456211C (zh) | 2007-03-19 | 2007-03-19 | 基于请求的低功耗指令存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100345717A CN100456211C (zh) | 2007-03-19 | 2007-03-19 | 基于请求的低功耗指令存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101021743A CN101021743A (zh) | 2007-08-22 |
CN100456211C true CN100456211C (zh) | 2009-01-28 |
Family
ID=38709531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100345717A Expired - Fee Related CN100456211C (zh) | 2007-03-19 | 2007-03-19 | 基于请求的低功耗指令存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100456211C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681447B (zh) * | 2011-03-16 | 2016-02-03 | 上海华虹集成电路有限责任公司 | 降低多管脚微控制器静态和动态功耗的方法及微控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1229946A (zh) * | 1998-01-22 | 1999-09-29 | 日本电气株式会社 | 指令存储器电路 |
CN1293405A (zh) * | 1999-10-19 | 2001-05-02 | 摩托罗拉公司 | 包含双读端口的嵌入式mram |
WO2002027451A2 (en) * | 2000-09-26 | 2002-04-04 | Sun Microsystems, Inc. | Method and apparatus for reducing power consumption |
WO2003077094A2 (en) * | 2002-03-08 | 2003-09-18 | Freescale Semiconductor, Inc. | Low power system and method for a data processing system |
-
2007
- 2007-03-19 CN CNB2007100345717A patent/CN100456211C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1229946A (zh) * | 1998-01-22 | 1999-09-29 | 日本电气株式会社 | 指令存储器电路 |
CN1293405A (zh) * | 1999-10-19 | 2001-05-02 | 摩托罗拉公司 | 包含双读端口的嵌入式mram |
WO2002027451A2 (en) * | 2000-09-26 | 2002-04-04 | Sun Microsystems, Inc. | Method and apparatus for reducing power consumption |
WO2003077094A2 (en) * | 2002-03-08 | 2003-09-18 | Freescale Semiconductor, Inc. | Low power system and method for a data processing system |
Also Published As
Publication number | Publication date |
---|---|
CN101021743A (zh) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105339908B (zh) | 用于支持持久存储器的方法和装置 | |
US8667368B2 (en) | Method and apparatus for reading NAND flash memory | |
US9343127B1 (en) | Memory device having an adaptable number of open rows | |
CN107305781B (zh) | 存储器装置、存储器系统和控制存储器装置的方法 | |
US20210073152A1 (en) | Dynamic page state aware scheduling of read/write burst transactions | |
CN102866957B (zh) | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
JP5431003B2 (ja) | リコンフィギュラブル回路及びリコンフィギュラブル回路システム | |
CN105814560A (zh) | 用于实现高吞吐量键-值存储的存储器设置 | |
CN114490460B (zh) | 一种用于asic的flash控制器及其控制方法 | |
US9641464B2 (en) | FIFO buffer system providing same clock cycle response to pop commands | |
CN110334040A (zh) | 一种星载固态存储系统 | |
US11935601B2 (en) | Bit line sensing circuit comprising a sample and hold circuit | |
CN110322914A (zh) | 非易失性文件更新介质 | |
CN110018791A (zh) | 基于ssd soc的功耗管理控制方法和系统 | |
CN100456211C (zh) | 基于请求的低功耗指令存储器 | |
CN103019657B (zh) | 支持数据预取与重用的可重构系统 | |
Akesson et al. | Automatic generation of efficient predictable memory patterns | |
US7403446B1 (en) | Single late-write for standard synchronous SRAMs | |
CN113220616B (zh) | 一种基于fpga的从sdram到mram的接口转换系统及方法 | |
CN101699391B (zh) | 提高Java处理器取指令带宽的字节码缓冲装置及使用方法 | |
CN109062843A (zh) | 一种基于iic总线的数据存储方法及系统 | |
CN101697146B (zh) | 嵌入式处理器片内指令和数据推送装置 | |
US7330991B2 (en) | Method and/or apparatus for paging to a dynamic memory array | |
CN108241428A (zh) | 电子器件及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090128 Termination date: 20110319 |