用于启用/停用SRAM中的突发模式读取的地址检测器的制作方法

文档序号:11592375阅读:246来源:国知局

本发明涉及静态随机存取存储器(sram)的技术领域,且特定来说,本发明涉及一种sram、sram读取控制器及用于减小sram中的电力消耗的方法。



背景技术:

静态随机存取存储器(sram)是利用锁存以存储每一位的存储器。因为sram是静态的,所以无需周期性地刷新存储器,且因此,其通常比动态随机存取存储器(dram)更快、密度低且更昂贵。归因于sram的速度,sram通常用于需要用于中央处理单元(cpu)、外部突发模式sram高速缓存、硬盘缓冲区、路由器缓冲区、cpu寄存器文件等的快速存储器(例如高速缓存存储器)的计算机应用中。虽然sram较快,但其也消耗大部分系统的电平动态功率。在一些情况中,sram可消耗多达90%的系统电平动态功率。



技术实现要素:

上文提出的问题很大程度上由用于减小静态随机存取存储器(sram)中的电力消耗的系统及方法来解决。在一些实施例中,一种sram包含:被布置为行及列的存储单元阵列及管理从所述存储单元的读取的读取控制器。所述存储单元阵列包含对应于所述行的字线及对应于所述列的位线。所述读取控制器包括预充电电路及地址检测器。所述地址检测器包含第一触发器及比较器。所述第一触发器包含主锁存器及从锁存器。所述第一触发器经配置以接收指示对所述存储单元阵列的第一存储单元的存取请求的第一行地址的第一行地址输入及指示对所述存储单元阵列的第二存储单元的存取请求的第二行地址的第二行地址输入。响应于接收所述第二行地址输入,所述第一主锁存器经配置以存储所述第二行地址输入的第一位,且所述第一从锁存器经配置以存储所述第一行地址输入的第一位。所述比较器经配置以比较所述第一行地址输入与所述第二行地址输入并基于所述比较输出控制信号。所述预充电电路经配置以接收所述控制信号,并基于所述第一行地址输入不同于所述第二行地址输入对所述位线预充电。

另一说明性实施例是一种用于减小sram中的电力消耗的方法。所述方法可包括:接收指示对布置为行及列的存储单元阵列的第一存储单元的存取请求的第一行地址的第一行地址输入。所述方法还可包括:接收指示对所述存储单元阵列的第二存储单元的存取请求的第二行地址的第二行地址输入。所述方法还可包括:响应于接收所述第二行地址输入,将所述第二行地址输入的第一位存储于第一触发器的主锁存器中并将所述第一行地址输入的第一位存储于所述第一触发器的从锁存器中。所述方法还可包括:比较所述第一行地址输入与所述第二行地址输入。所述方法还可包括:基于所述第一行地址输入不同于所述第二行地址输入,对所述存储单元阵列的多个位线预充电。

又一说明性实施例是一种sram读取控制器,其包含第一触发器、第二触发器及比较器。所述第一触发器经配置以存储指示对布置为行及列的存储单元阵列的第一存储单元的存取请求的第一行地址的第一行地址输入及指示对所述存储单元阵列的第二存储单元的存取请求的第二行地址的第二行地址输入。所述第二触发器经配置以存储所述第一及第二行地址输入。所述比较器经配置以比较所述第一及第二行地址输入并基于所述比较输出控制信号。

附图说明

为详细描述各种实例,现将参考附图,其中:

图1展示根据各种实施例的集成电路的框图;

图2展示根据各种实施例的静态随机存取存储器(sram)的框图;

图3展示根据各种实施例的存储单元阵列的框图;

图4展示根据各种实施例的地址检测器的框图;

图5展示根据各种实施例的比较器的电路图;

图6展示根据各种实施例的用于减小sram中的电力消耗的方法的流程图;及

图7展示用于比较第一行地址输入与第二行地址输入的方法的流程图。

符号与术语

贯穿以下描述及权利要求书使用某些术语以指代特定系统组件。如所属领域的技术人员将了解,公司可能使用不同命名来指代组件。此文档并非意图在命名不同但不起作用的组件之间加以区分。在以下论述及权利要求书中,以开放式方式使用术语“包含”及“包括”,且因此其应被解释为意味着“包含(但不限于)”。此外,术语“耦合”意图意味着间接或直接连接。因此,如果第一装置耦合到第二装置,那么所述连接可为通过直接连接,或通过经由其它装置及连接的间接连接。叙述“基于”意图意味着“至少部分基于”。因此,如果x是基于y,那么x可以基于y及任何数目个其它因子。

具体实施方式

以下论述涉及本发明的各种实施例。尽管这些实施例中的一或多者可为优选的,但所揭示的实施例不应被解释或以其它方式被使用为限制包含权利要求书的本发明的范围。另外,所属领域的技术人员将理解,以下描述具有广阔应用,且任一实施例的论述仅意味着是所述实施例的示范,且并非意图暗示包含权利要求书的本发明的范围限于所述实施例。

静态随机存取存储器(sram)是利用锁存以存储每一位的存储器。因为sram是静态的,所以无需周期性地刷新存储器,且因此,其通常比动态随机存取存储器(dram)更快、密度低且比更昂贵。归因于sram的速度,sram通常用于需要用于中央处理单元(cpu)、外部突发模式sram高速缓存、硬盘缓冲区、路由器缓冲区、cpu寄存器文件等的快速存储器(例如高速缓存存储器)的计算机应用中。因此,sram是许多系统的基本构件。虽然sram较快,但其也消耗大部分系统的电平动态功率。在一些情况中,sram可消耗多达90%的系统电平动态功率。因此,需要减小sram的电力消耗。

常规sram设计通常在每一读取存取时对存储器存储阵列的列中的位线的每一差分对预充电。因此,每当将读取存储单元阵列中的存储单元时,启动对位线的预充电。一旦位线在常规sram中被预充电,激活对应于其中待读取存储单元的行的字线。此在含有被读取的存储单元的列中产生差分电压,从而允许读出放大器读取存储单元的内容。如果将读取另一存储单元,那么过程重复开始于对位线预充电。对位线的此重复预充电产生高电力消耗水平。

代替在每一读取时预充电,可选择性地完成每一预充电。当执行线性突发读取使得相同行地址(即,激活相同字线)用于连续读取时可能不对位线预充电。举例来说,在存储单元的第一读取之后,如果待读取的下一存储单元处于相同字线上,但处于存储阵列的不同列中时,可能不执行预充电。然而,在连续读取之前及之后对位线预充电。因此,地址检测器可用于确定行地址是否已从一个读取改变到下一读取。如果行地址已改变,那么对位线启动预充电。如果行地址尚未改变,那么不执行预充电。

常规sram通常包含行地址输入及列地址输入,其用于指示sram请求哪个存储单元存取。常规sram的行地址输入可包含主锁存器,其存储用于所请求的存储单元存取的行地址输入。替代地,多个主锁存器可各自存储用于所请求的存储单元存取的行地址输入的一个位。另外,多数常规sram包含内建自测试(bist)的能力。因此,除主锁存器外,常规sram中可包含用于每一主锁存器的从锁存器。每一对主锁存器及从锁存器可包括触发器。为利用此电路,地址检测器可将当前行地址输入存储到主锁存器中及/或将行地址请求的一个位存储到主锁存器中的每一者中。从锁存器接着可存储前一行存取请求的行地址输入。比较器接着可比较主锁存器中所存储的当前行存取请求与存储于从锁存器中的前一行存取请求。如果当前行存取请求与前一行存取请求相同,那么待读取的下一存储单元处于相同字线上且无需预充电。然而,如果当前行存取请求与前一行地址请求不同,那么待读取的下一存储单元处于不同字线上,且读取控制器可开始对存储阵列的位线预充电。

图1展示根据各种实施例的集成电路100的框图。集成电路100可包含处理器102及sram104,在一些实施例中,sram104可耦合到处理器102。集成电路100还可包含各种额外组件,例如收发器、时钟产生器、端口等等;然而,为清楚起见,已省略这些组件。处理器102可为控制处理器、信号处理器、中央处理器、或任一其它类型的处理器。处理器102可为(例如)通用微处理器、数字信号处理器、微控制器、或经配置以执行用于执行操作的指令的其它适当的装置。处理器架构通常包含执行单元(例如,定点、浮点、整数等)、指令解码、外围设备(例如,中断控制器、计时器、直接存储器存取控制器等)、输入/输出系统(例如,串行端口、并行端口等)及各种其它组件及子系统。

sram104是静态随机存取存储器,其可提供对能够由处理器102处理的数据及/或指令的存储。sram104经设计使得其展现数据残留且利用锁存电路以存储每一数据位。sram104耦合到处理器102,使得处理器102可从sram104读取数据及/或指令及/或将数据及/或指令写入到sram104以用于存储。在一些实施例中,sram104是处理器102的部件,而在替代实施例中,sram104与处理器102不同。此外,集成电路100中可包含多个sram104。

图2展示根据各种实施例的sram104的框图。sram104可包含存储单元阵列202、读取控制器204、列解码器206、及读出放大器208。存储单元阵列202可被布置为存储单元的行及列,有时被称为位单元,每一存储单元存储一个数据位。

图3展示根据各种实施例的存储单元阵列202的框图。存储单元阵列202可包含字线302到312,其对应于存储单元阵列202的行及列322到328。列322到328中的每一者可由位线的差分对组成。举例来说,列322可由位线332到334组成;列324可由位线336到338组成;列326可由位线340到342组成;及列328可由位线344到346组成。存储单元(例如,存储单元352、354及356,其组成存储单元阵列202)在字线302到312中的每一者与列322到328的相交处。

存储阵列202中的存储单元中的每一者(例如,存储单元352、354及356)可经布置以存储单个数据位。在一些实施例中,存储单元中的每一者包括由一对交叉耦合反相器形成的六晶体管(“6t”)sram单元。每一反相器包含p沟道晶体管及n沟道晶体管。第一传递栅极晶体管的源极连接到第一反相器的栅极节点及第二反相器的漏极节点。类似地,第二传递栅极晶体管的源极连接到第二反相器的栅极节点及第一反相器的漏极节点。传递栅极晶体管的栅极连接到共同字线,例如用于存储单元352及354的字线302及用于存储单元356的字线308,而传递栅极晶体管的漏极连接到位线的差分对,例如用于存储单元352及356的位线332及334及用于存储单元354的位线336及338。在替代实施例中,存储阵列202的存储单元可为任一类型的sram位单元,例如,四晶体管(“4t”)sram单元、八晶体管(“8t”)sram单元、十晶体管(“10t”)sram单元或任一其它sram存储单元。

返回图2,读取控制器204耦合到存储单元阵列202且经配置以管理存储单元阵列202中所含的存储单元的读取。读取控制器204可包括预充电电路210及地址检测器212。读取控制器可为任一类型的存储器控制器,其管理从存储单元阵列202进入且进入到存储单元阵列202的数据流。在读取循环开始时,预充电电路210经配置以致使位线的差分对中的每一者(正信号及负信号两者)预充电到共同电压。为了读取存储单元中的任一者,激活对应于待读取的所述存储单元的字线。举例来说,如果将读取存储单元352,那么激活字线302。在一些实施例中,行控制器(未展示)可致使字线被激活。一旦字线被激活,启用来自经激活字线上的存储单元中的每一者的传递栅极晶体管中的每一者。举例来说,如果字线302被激活,那么启用存储单元352及354中的传递栅极晶体管以及用于连接到字线302的任一其它存储单元的传递栅极晶体管。此致使用于连接到存储单元中的每一者的位线的两个差分对中的一者的位线电压基于连接到所述差分对的所述存储单元存储0还是1而下降。举例来说,一旦字线302被激活,沿着位线332或334的电压将基于存储单元352存储0还是1而下降。类似地,沿着位线336或338的电压将基于存储单元354含有0还是1而下降。

列解码器206确定来自图3的列322到328中的哪一者含有待读取的存储单元。更具体来说,列解码器206经配置以从列322到328中的每一者接收输出信号且从对应于被读取的存储单元的列中选择输出信号。输出信号中的每一者对应于位线的差分对中载送的差分电压。举例来说,如果将读取存储单元352,那么列解码器206选择列322及其位线322到334的差分对。读出放大器208接着可感测位线的所选择差分对中的哪一者通过放大具有较高电压,因此确定存储单元存储0还是1。换句话说,读出放大器208经配置以通过感测列电压差分确定所选择的列的状态。继续前一实例,一旦列解码器206选择列322,读出放大器将感测或确定位线322及334中的哪一者具有较高电压。一旦得到确定,将能够确定存储单元352的状态。

读取控制器204接着可识别来自经由相同字线存取的存储单元的连续读取。举例来说,如果来自存储单元352的读取后面紧接着来自处于与存储单元352相同的字线,即字线302上的存储单元354的读取,那么读取控制器204做出此识别。不同于常规sram,如果做出以下识别:由读取控制器204进行来自经由相同字线存取的存储单元的连续读取,那么在这两个读取之间不对位线332到346预充电。因为特定字线的激活针对字线上的存储单元中的每一者产生表示存储单元的每一者中的位的状态的差分,所以对读取相同字线上的其它存储单元来说,预充电是不必要的。因此,在连续读取之前或在连续读取开始时,一旦与连续读取结合可仅对位线332到346预充电。通过减小预充电的数目(即,通过在每个读取之后都不对位线的差分对预充电),减小由sram104消耗的电力。

在读取循环结束时(一旦连续读取结束),预充电电路210经配置以再次致使位线的差分对中的每一者预充电到共同电压。更具体来说,地址检测器212经配置以确定(即,检测)sram104中的任一行地址改变请求。换句话说,地址检测器212经配置以确定请求是否由sram104组成及请求何时由sram104组成以读取存储阵列202中未处于当前读取的字线上的存储单元。一旦地址检测器212检测到行地址改变请求,那么指示已接收到行地址请求的控制信号222被传送到预充电电路210。利用预充电电路210的读取控制器204致使位线332到346的差分对中的每一者预充电以使能够读取不同字线上的存储单元。举例来说,如果存储单元352被读取,那么字线302被激活。然而,如果地址检测器212检测到行地址改变请求,使得存储单元356将被读取,那么需要激活字线306。因为字线306是不同于字线302的字线(处于不同行上),所以预充电电路210致使位线332到346的差分对预充电。因此,读取控制器204可存储哪个字线被最后断言(在此实例中是字线302)的指示。基于当前被断言的或将断言的字线(在此实例中是字线306)不同于最后断言的字线(字线302),预充电电路210致使位线332到346的预充电。

图4展示根据各种实施例的地址检测器212的框图。地址检测器212可包括行地址触发器402及404(其中的每一者可对应于行地址的单个位)及比较器420。触发器402与404之间的省略号指示地址检测器212可支持对应于行地址的位的任一适当数目个触发器,然而为清晰起见仅展示两个触发器。触发器402到404可接收指示将在存储单元阵列202内存取的存储单元的行地址的行地址输入。举例来说,触发器402可接收字线302的行地址的一个位(展示为输入442),且触发器404也可接收字线302的行地址的一个位(展示为输入444),使得存储单元352可被存取及读取(即,第一存取)。触发器402可将待存取的字线的行地址的一个位存储于主锁存器406中,而触发器404可将待存取的字线的行地址的一个位存储于主锁存器410中。

在第一读取循环结束时(即,在指定存储单元已被存取及读取之后),触发器402到404可接收指示接着将存取的存储单元的行地址的第二行地址输入(即,第二存取)。举例来说,触发器402可接收字线306的行地址的一个位(展示为输入442),且触发器404也可接收字线306的行地址的一个位(展示为输入444),使得存储单元356可被存取及读取。触发器402到404将对第二存取请求的存储单元的行地址分别存储于主锁存器406及410中。用于前一读取(即,第一存取)的行地址存储于用于触发器402的从锁存器408及用于触发器404的从锁存器412中。继续前一实例,在接收第二存取请求之后,从锁存器408针对第二读取存取存储字线302的行地址的一个位,且从锁存器412也存储字线302的行地址的一个位。因此,触发器402包括:主锁存器406,其存储当前读取请求的行地址的一个位;及从锁存器408,其存储前一读取请求的行地址的一个位。类似地,触发器404包括:主锁存器410,其存储当前读取请求的行地址的一个位;及从锁存器412,其存储前一读取请求的行地址的一个位。

可为任一类型的信号比较器的比较器420接收主锁存器406及410的内容以及从锁存器408及412的内容。举例来说,在主锁存器406接收用于最近存取请求(例如,第二存取请求)的行地址输入442之后,主锁存器406基于行地址输入442存储特定状态(例如,high或low)。所述状态通过信号432也被提供到比较器420。主锁存器406的前一状态(例如,归因于第一存取请求而被存储于主锁存器406中的状态)接着被存储于从锁存器408中。所述状态通过信号434也被提供到比较器420。以类似方式,主锁存器410接收用于最近存取请求(例如,第二存取请求)的行地址输入444且基于行地址输入444存储特定状态。状态通过信号436也被提供到比较器420。主锁存器410的前一状态(例如,归因于第一存取请求而存储于主锁存器410中的状态)接着被存储于从锁存器412且通过信号438也被提供到比较器420。

在通过信号432到438接收主锁存器406及410以及从锁存器408及412的状态之后,比较器420用于比较所述状态以确定所述状态是否保持相同。换句话说,比较器420比较当前行地址输入442到444与前一行地址输入的状态。比较器420接着可输出由预充电电路210接收到的控制信号222。如果比较器420确定当前行地址输入442到444与前一行地址输入相同,那么比较器420可输出致使预充电电路210不对位线332到346预充电的控制信号222。然而,如果比较器420确定当前行地址输入442到444与前一行地址输入不同,那么比较器420可输出致使预充电电路210对位线332到346预充电的控制信号222。

图5展示根据各种实施例的比较器420的电路图,比较器420可包括异或(xor)门502到504及或非(nor)门506。xor门502可经配置以从触发器402接收信号432到434并对那些信号执行xor操作。更具体来说,xor门502可接收指示主锁存器406的状态的信号432及指示从锁存器408的状态的信号434。如果信号432到434处于相同状态中(即,如果信号432为high且信号434为high,或如果信号432为low且信号434为low),那么xor门502输出xor输出522作为low信号。然而,如果信号432到434处于不同状态中(即,如果信号432为high且信号434为low,或如果信号432为low且信号434为high),那么xor门502输出xor输出522作为high信号。类似地,xor门504可接收指示主锁存器410的状态的信号436及指示从锁存器412的状态的信号438。如果信号436到438处于相同状态中(即,如果信号436为high且信号438为high,或如果信号436为low且信号438为low),那么xor门504输出xor输出524作为low信号。然而,如果信号436到438处于不同状态中(即,如果信号436为high且信号438为low,或如果信号436为low且信号438为high),那么xor门504输出xor输出524作为high信号。

nor门506可经配置以接收xor输出522到524并对那些信号执行nor操作。更具体来说,如果xor输出522到524都为low,那么nor门506输出high控制信号222。然而,在所有其它情况中(即,如果xor输出522到524都为high,如果xor输出522为high且xor输出524为low,或如果xor输出522为low且xor输出524为high),那么nor门506输出low控制信号222。因此,控制信号222仅在主锁存器406的状态等于从锁存器408的状态且主锁存器410的状态等于从锁存器412的状态时为high。因此,high控制信号222可致使预充电电路210不对位线332到346预充电,而low控制信号22可致使预充电电路210对位线332到346预充电。

图6展示根据各种实施例的用于减小sram(例如,sram104)中的电力消耗的方法600的流程图。图7展示根据各种实施例的用于比较第一行地址输入与第二行地址输入的方法700的流程图。尽管为了方便依序描述,但方法600及700中所展示的至少部分动作可以不同次序执行及/或被并行执行。另外,一些实施例可仅执行所展示的一些动作或可执行额外动作。在一些实施例中,方法600及700的至少一些操作以及本文中所描述的其它操作可由sram104及/或由执行存储于非暂时性计算机可读存储媒体中的指令的处理器或状态机实施的读取控制器204执行。

方法600在框602中起始于接收指示对第一存储单元(例如,布置为行及列的存储单元阵列(例如,存储阵列202)的存储单元352)的存取的第一行地址的第一行地址输入。举例来说,地址检测器212可接收对应于对字线302的存取请求的行地址输入以便对存储单元352进行存取。在框604中,方法600继续接收指示对第二存储单元(例如,存储单元阵列的存储单元354或356)的存取请求的第二行地址的第二行地址输入。举例来说,地址检测器212可接收对应于对字线302的存取请求的行地址输入以对存储单元354进行存取或接收对应于对字线306的存取请求的行地址输入以对存储单元356进行存取。

方法600在框606中继续响应于接收所述第二行地址输入,将第二行地址输入的第一位存储于第一触发器(例如,触发器402)的主锁存器(例如,主锁存器406)中,并将第一行地址输入的第一位存储于第一触发器的从锁存器(例如,从锁存器408)中。举例来说,主锁存器406可存储对应于第二存取请求(例如,对字线302的存取请求以对存储单元354进行存取或对字线306的存取请求以对存储单元356进行存取)的行地址输入的一个位,而从锁存器408可响应于接收第二行地址输入存储对应于第一或前一存取请求(例如,对字线302的存取请求以对存储单元352进行存取)的行地址输入的一个位。类似地,在框608中,方法600继续响应于接收第二行地址输入,将第二行地址输入的第二位存储于第二触发器(例如,触发器404)的主锁存器(例如,主锁存器410)中,并将第一行地址输入的第二位存储于第二触发器的从锁存器(例如,从锁存器412)中。

方法600在框610中继续确定第一行地址输入是否与第二行地址输入相同。举例来说,可比较第一行地址输入与第二行地址输入。在框610中,如果确定第一行地址输入与第二行地址输入相同,那么在框612中,方法600继续读取第一存储单元及第二存储单元而无需对存储阵列的位线预充电。举例来说,如果第一行地址输入与第二行地址输入相同,那么驻留在相同字线302上的存储单元352及354被读取而无需在所述读取之间对位线332到346预充电。然而,在框610中,如果确定第一行地址输入与第二行地址输入不相同或不同,那么方法600在框614中继续对存储阵列的位线预充电。举例来说,如果第一行地址输入与第二行地址输入相同,那么驻留在字线302上的存储单元352可被读取,随后对位线332到346预充电。接着驻留在字线306上的存储单元356可被读取。方法接着可以类似方式重复以用于额外存取请求。

图7展示根据各种实施例的比较第一行地址输入与第二行地址输入的方法700的流程图。方法700在框702中起始于对存储于第一触发器(例如,触发器402)的主锁存器(例如,主锁存器406)及从锁存器(例如,从锁存器408)中的位执行xor操作,以产生第一xor输出(例如,xor输出522)。从图6的实例继续,来自用于当前存取请求的行地址输入的位被存储于主锁存器406中,而来自用于前一存取请求的行地址输入的位被存储于从锁存器408中。可由xor门502对那两个位(展示为信号432到434)执行xor操作以产生xor输出522。

类似地,在框704中,方法700继续对存储于第二触发器(例如,触发器404)的主锁存器(例如,主锁存器410)及从锁存器(例如,从锁存器412)中的位执行xor操作以产生第二xor输出(例如,xor输出524)。继续前一实例,来自用于当前存取请求的行地址输入的位被存储于主锁存器410中,而来自用于前一存取请求的行地址输入的位被存储于从锁存器412中。可由xor门504对那两个位(展示为信号436到438)执行xor操作以产生xor输出524。

方法700在框706中继续对第一及第二xor输出执行nor操作以产生控制信号(例如,控制信号222)。举例来说,nor门506可对xor输出522到524执行nor操作以产生控制信号222。high控制信号222可致使预充电电路210不对位线332到346预充电,而low控制信号22可致使预充电电路210对位线332到346预充电。

上文论述是为了说明本发明的原理及各种实施例。所属领域的技术人员在完全了解上述揭示内容之后就将明白众多改变及修改。希望解释以下权利要求书以涵盖所有此类改变及修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1