CN101312070A - 降低静态随机访问存储器阵列功率的装置和方法 - Google Patents

降低静态随机访问存储器阵列功率的装置和方法 Download PDF

Info

Publication number
CN101312070A
CN101312070A CNA2007103067003A CN200710306700A CN101312070A CN 101312070 A CN101312070 A CN 101312070A CN A2007103067003 A CNA2007103067003 A CN A2007103067003A CN 200710306700 A CN200710306700 A CN 200710306700A CN 101312070 A CN101312070 A CN 101312070A
Authority
CN
China
Prior art keywords
data value
memory cell
cell rows
polarity
storage unit
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
Application number
CNA2007103067003A
Other languages
English (en)
Other versions
CN101312070B (zh
Inventor
迈克尔·J·李
张家宝
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101312070A publication Critical patent/CN101312070A/zh
Application granted granted Critical
Publication of CN101312070B publication Critical patent/CN101312070B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2227Standby or low power modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System (AREA)

Abstract

提供一种用于减少当访问SRAM阵列时SRAM消耗的功率或能量的机制。提供用于确定正被写入SRAM单元阵列的进入行的极性的逻辑。进一步提供用于将极性值存储在SRAM单元阵列的每行的附加SRAM单元中的逻辑。还提供逻辑,用于如根据每行的附加SRAM单元中存储的极性值所确定的,如果该行包括的0比1多,则读取SRAM单元阵列中的该行的SRAM单元的反相值。还提供逻辑,用于如根据每行的附加SRAM单元中存储的极性值所确定的,向下游逻辑发送有关从行中SRAM单元读取的数据表示真数据值还是它们的互补的信号。

Description

降低静态随机访问存储器阵列功率的装置和方法
技术领域
本申请一般涉及改进的数据处理设备和方法。更具体地,本申请针对一种通过多数评估(majority evaluation)的静态随机访问存储器(SRAM)阵列功率(power)降低的装置和方法。
背景技术
静态随机访问存储器(SRAM)是在现代数据处理设备中使用的一类半导体存储器。术语“静态”表示,不同于需要周期性地刷新的动态RAM(DRAM),SRAM是只要功率保持施加就保持其内容的存储器类型。然而,SRAM不应与只读存储器(ROM)和闪存混淆,因为它是易失性存储器并只有当持续施加功率时才保存数据。术语“随机访问”表示可以以任何顺序写或读存储器中的位置,而不论最后访问的存储位置。
在常规架构中,在形成两个交叉耦合(cross-coupled)的反相器的四个晶体管上存储SRAM单元中的每位。该SRAM单元具有用于表示0和1数据值的两个稳定状态。两个附加的访问晶体管用于在读写操作期间控制对存储单元的访问。这样,典型地需要六个金属氧化物半导体场效应晶体管(MOSFET)来存储一个存储位。
图1是公知的六晶体管(6T)SRAM单元的示例图。由控制两个访问晶体管120和130的字线(WL)110使能对SRAM单元100的访问。两个访问晶体管120和130控制存储单元100是否应连接到位线BL 140和BL’150。位线BL 140和BL’150用于为读写操作两者传送数据。存储单元100进一步包括每个包括两个晶体管(未示出)的两个反相器(inverter)160和170。每个反相器160和170的两个晶体管连同访问晶体管120和130构成6T SRAM单元结构的六个晶体管。包含这样的SRAM单元100的行和列的SRAM存储阵列典型地用于为数据处理设备提供SRAM存储器。
SRAM单元100具有三个可能状态:待命(standby)、读和写。在待命状态,并不声明(assert)沿着字线110的信号。结果,访问晶体管120和130使SRAM单元100从位线BL 140和BL’150断开。只要两个交叉耦合的两个反相器160和170从位线BL 140和BL’150断开,它们就持续互相加强(reinforce)。
在读状态中,将位线BL 140和BL’150预充电到逻辑“1”或高压状态。然后声明沿着字线110的信号,因此使能访问晶体管120和130两者。假设SRAM单元100存储逻辑“1”值为Q,则反相器160和170中的值,即Q和Q’,通过使BL 140停留于其预充电值以及通过访问晶体管130和反相器160的NFET把BL’150放电至逻辑“0”或低压状态而被传送到位线BL 140和BL’150。在BL 140侧,由访问晶体管130和反相器170的PFET把位线BL 140的电压拉向VDD,即逻辑“1”或高压状态。如果SRAM单元的内容是逻辑“0”,即Q=0,将出现相对的情况,其中位线BL’150被拉向逻辑“1”或高压状态,而使位线BL 140放电趋向于逻辑“0”或低压状态。
通过把要写入的值施加到位线BL 140和BL’150而开始写周期。如果0值要被写入SRAM单元100,则向位线施加0值,即设置位线BL’150为逻辑“1”或高压状态以及位线BL 140为逻辑“0”或低压状态。通过反转位线BL 140和BL’150的值可以将1值写入SRAM单元100。然后声明沿着字线110的信号,并将要存储的值锁入SRAM单元100。
应该明白,该技术生效的原因在于,位线输入驱动器被设计得比在SRAM单元100自身中相对弱的晶体管强得多,因此它们可以轻易推翻(override)交叉耦合反相器160和170的先前状态。需要仔细调整SRAM单元100中晶体管的尺寸以确保适当的操作。
如图2所示,另一公知的SRAM单元架构利用八个晶体管,即8T SRAM单元。在该八晶体管SRAM单元结构中,如与关于图1的上述6T SRAM单元等同的方式执行写操作。然而,使用该结构,位线BL 240和BL’250并不用于从SRAM单元200读取值。
相反,为了从8T SRAM单元200读,提供了读位线RBL 280,并将其预充电到逻辑“1”或高压状态。然后,声明读位线260信号,使得对SRAM单元阵列的目标行中的所有SRAM单元200使能读端口rp<n>。根据SRAM单元200内容,读位线RBL 280停留于预充电状态,即逻辑“1”或高压状态,或被放电到逻辑“0”或低压状态。例如,如果SRAM单元200的内容是“1”数据值,则读位线RBL 280被保持于预充电状态。如果SRAM单元200的内容是“0”数据值,则读位线RBL 280被放电到逻辑“0”或低压状态。取决于SRAM单元200可以使读位线RBL 280放电的速度,在声明字线信号之后并在下个预充电脉冲清除读位线RBL 280之前,读位线RBL 280保持目标SRAM单元的值。
在读操作期间对位线充电和放电的操作消耗SRAM阵列中的大量能量。因此,在SRAM阵列得访问期间减少SRAM阵列消耗的能量是有利的。
发明内容
示例性实施例提供用于当访问SRAM阵列时减少SRAM阵列消耗的功率或能量的机制。通过最小化SRAM单元阵列中需要放电并随后预充电的读位线(RBL)的数量而由示例性实施例的机制减少消耗的能量或功率。通过下述电路使得该最小化成为可能,该电路执行每个阵列行的多数功能(majority function),并使用产生的信息来减少SRAM单元阵列中读操作期间所放电的读位线(RBL)的数目。
使用示例性实施例,提供逻辑,用于确定正写入SRAM单元阵列的进入行的极性。进一步提供逻辑用于将极性值存储在SRAM单元阵列每行的附加SRAM单元中。还提供逻辑用于如根据每行的附加SRAM单元中存储的极性值所确定的,如果行包括的0比1多,则读取SRAM单元阵列中行的SRAM单元的反相值。进一步提供逻辑,用于如根据每行附加SRAM单元中存储的极性值所确定的,向下游逻辑发出有关从行中SRAM单元读取的数据表示真数据值或它们的互补的信号。
在一个示例性实施例中,提供极性检测器用于检测写入SRAM单元阵列中的SRAM单元行的大多数数据值是“1”或“0”数据值。如果大多数数据值是“1”数据值,则极性检测器输出“1”极性值,该“1”极性值被存储在行的附加SRAM单元中。如果大多数数据值是“0”数据值,则极性检测器输出“0”极性值,该“0”极性值被存储在行的附加SRAM单元中。
每行的附加SRAM单元进一步在读操作期间向其所相关联的行的SRAM单元提供输入信号。根据在该附加SRAM单元中存储的极性值,由该行的SRAM单元输出真数据值或它们的互补。通过指示输出真数据值或互补是否将导致较低的功率消耗的极性来确定输出真数据值或它们的互补。例如,如果该极性指示在行的SRAM单元中存储了更多的0数据值,则输出互补将需要更少的功率,这是因为不需要使如此多的读位线放电。然而,如果该极性指示在行的SRAM单元中存储了更多的1数据值,则输出真数据值将需要更少的功率,这是因为不需要使如此多的读位线放电。
进一步提供逻辑,其向SRAM单元下游的多路复用器通知由SRAM单元输出互补数据值还是真数据值。该逻辑本质上根据所确定的SRAM单元行的极性向多路复用器提供选择信号。然后,多路复用器选择是输出SRAM单元的实际输出还是SRAM单元的实际输出的互补。
应该理解,根据所确定的SRAM单元行的极性,“实际”数据值可能实际上是真数据值或过去要写入SRAM单元的真数据值的互补。即,如果由于确定极性是“1”值而由SRAM单元输出真数据值,则“实际”数据值是SRAM单元中存储的真数据值。如果由于确定极性是“0”值而由SRAM单元输出真数据值的互补,则“实际”数据值是SRAM单元中存储的真数据值的互补。
因此,取决于SRAM单元的极性,由示例性实施例的机制输出的所选择数据值可以是真数据值或SRAM单元中存储的互补数据值的互补。在任何情况下,选择真数据值作为被作为SRAM阵列的SRAM单元数据值输出的数据值。
在一个示例性实施例中,每行的附加SRAM单元可以向与SRAM单元阵列的每列相关联地提供的极性检测器的多路复用器提供选择信号。这些多路复用器确定是真实数据值还是真数据值的互补被存储在SRAM阵列中的SRAM单元行的SRAM单元中。根据附加SRAM单元中存储的极性值确定发送到极性检测器的多路复用器的选择信号。
选择信号选择在SRAM单元阵列中行的各个SRAM单元中要存储真数据值还是它的互补。在该示例性实施例中,如果大多数数据值是“0”数据值,则极性检测器向多路复用器发送选择信号以选择真数据值的互补来存储在SRAM单元行中的SRAM单元中。如果大多数数据值是“1”数据值,极性检测器向多路复用器发送选择信号以选择真数据值来存储在SRAM单元行中的SRAM单元中。
利用该示例性实施例,SRAM单元本身并不需要任何附加逻辑用于确定是输出真数据值还是真数据值的互补,如上述实施例那样。相反,SRAM单元输出存储在SRAM单元中的任何数据值,因为关于使用真数据值或真数据值的互补的确定是当将数据值写入SRAM单元时由极性检测器确定的。
在SRAM阵列的输出处提供多路复用器,用于选择输出由SRAM单元输出的实际数据值还是由SRAM单元输出的数据值的互补。这些多路复用器的操作类似于之前所述实施例。如果SRAM单元行的极性是“1”,则可以选择由SRAM单元输出的实际数据值,用于由SRAM阵列输出。如果SRAM单元行的极性是“0”,则可以选择由SRAM单元输出的实际数据值的互补,用于由SRAM阵列输出。
在一个示例性实施例中,提供一种从包括多个存储单元的存储阵列读取数据的方法。该方法可以包括:标识要从该存储阵列读取其数据值的存储单元行的极性。该方法还可以包括:根据所标识的极性选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值。可以根据该选择,可以从该存储单元行的存储单元,输出真数据值或互补数据值之一作为从该存储阵列读取的数据。
存储单元行的极性可以表示在该存储单元行中存储的大多数数据值是逻辑1数据值还是逻辑0数据值。如果所述存储单元行的极性表示该存储单元行中存储的大多数数据值是逻辑1数据值,则可以选择该存储单元行中的存储单元的真实数据值,以供该存储阵列输出。如果所述存储单元行的极性表示该存储单元行中存储的大多数数据值是逻辑0数据值,则可以选择该存储单元行中的存储单元的互补数据值,以由该存储阵列输出。
该方法还可以进一步包括:接收要写入该存储单元行的数据值;根据要写入该存储单元行的数据值,确定该存储单元行的极性值。可以与该存储单元行相关联地存储该极性值。该极性值可以用于标识该存储单元行的极性。
该方法可以进一步包括:接收要写入该存储单元行的数据值;根据要写入该存储单元行的数据值,标识该存储单元行的极性值。此外,该方法可以包括:根据该极性值,确定向该存储单元行写入该数据值还是互补数据值;以及根据确定结果,向该存储单元行写入该数据值或互补数据值之一。
根据所标识的极性选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值的操作可以包括:根据所标识的该存储单元行的极性,选择输出由该存储单元输出的实际数据值或由该存储单元输出的实际数据值的互补。根据实际数据值还是实际数据值的互补被写入该存储单元,该实际数据值或该实际数据值的互补可以是该真数据值。
所述存储阵列可以是例如静态随机访问存储器(SRAM)存储阵列。而且,存储单元可以是六晶体管静态随机访问存储器(SRAM)单元或八晶体管SRAM单元之一。存储阵列可以是集成电路芯片的一部分。
在另一示例性实施例中,提供一种存储阵列。该存储阵列可以包括:以具有至少一个存储单元行的阵列配置排列的多个存储单元;标识要从该存储阵列读取其数据值的存储单元行的极性的逻辑。该存储阵列还可以包括:选择逻辑,根据所标识的极性,选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值。此外,该存储阵列可以包括:输出逻辑,根据该选择,输出来自该存储单元行的存储单元的真数据值或互补数据值之一作为从该存储阵列读取的数据。
存储单元行的极性表示在该存储单元行中存储的大多数数据值是逻辑1数据值还是逻辑0数据值。如果所述存储单元行的极性表示该存储单元行中存储的大多数数据值是逻辑1数据值,则该选择逻辑可以选择该存储单元行中的存储单元的真实数据值,以由该存储阵列输出。如果存储单元行的极性表示存储单元行中存储的大多数数据值是逻辑0数据值,则该选择逻辑可以选择该存储单元行中的存储单元的互补数据值,以由该存储阵列输出。
该存储阵列可以进一步包括:接收要写入该存储单元行的数据值的逻辑。此外,该存储阵列可以包括:极性检测逻辑,根据要写入该存储单元行的数据值,确定该存储单元行的极性值。该存储阵列还可以包括:与该存储单元行相关联地存储该极性值的逻辑。该极性值可以用于标识该存储单元行的极性。
该存储阵列可以包括:接收要写入该存储单元行的数据值的逻辑;极性检测逻辑,根据要写入该存储单元行的数据值,标识该存储单元行的极性值。该存储阵列还可以包括:确定逻辑,根据该极性值,确定向该存储单元行写入该数据值还是互补数据值。此外,该存储阵列可以包括:写逻辑,根据确定结果,向该存储单元行写入该数据值或互补数据值之一。
所述选择逻辑可以通过下述操作根据所标识的极性选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值:根据所标识的该存储单元行的极性,选择输出由该存储单元输出的实际数据值或由该存储单元输出的实际数据值的互补。根据真数据值还是真数据值的互补被写入该存储单元,该实际数据值或该实际数据值的互补可以是该真数据值。
存储阵列中的存储单元可以是静态随机访问存储器(SRAM)单元。而且,存储阵列的存储单元可以是六晶体管静态随机访问存储器(SRAM)单元或八晶体管SRAM单元之一。
在另一示例性实施例中,提供一种数据处理设备,包括:处理器以及耦合到该处理器的存储器。该存储器可以包含多个存储单元,该多个存储单元包括至少一个存储单元行。该存储器可以包括下述逻辑:标识要从该存储阵列读取其数据值的存储单元行的极性。此外,该存储器可以包括下述逻辑:根据所标识的极性,选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值;以及根据该选择,输出来自该存储单元行的存储单元的真数据值或互补数据值之一作为从该存储阵列读取的数据。
本发明的这些和其它特点和优点将在本发明的示例性实施例的下面详细描述中描述,或鉴于这些描速而对本领域技术人员变得很明显。
附图说明
结合相应附图参考下面示例性实施例的详细描述,将最好地理解本发明以及用法的优选模式以及其它目的和优点,其中:
图1是已知六晶体管(6T)SRAM单元的示例图;
图2是利用八个晶体管的另一已知SRAM单元架构即8T SRAM单元的示例图;
图3是根据一个示例性实施例的处理器的示例性框图;
图4A、4B、4C、4D是图示SRAM单元阵列的可能配置以图示多数评估的优势的示例图;
图5是根据一个示例性实施例的SRAM单元阵列的示例图;
图6是根据一个示例性实施例的极性检测器的电路的示例图;
图7是根据一个示例性实施例的SRAM单元的电路的示例图;
图8A、8B是根据一个示例性实施例、基于SRAM单元阵列中行的极性控制要写入SRAM单元的数据值的写电路的示例图;
图9是概述根据一个示例性实施例、基于所确定的SRAM单元阵列行的极性从SRAM单元阵列读取数据的示例性操作的流程图;
图10是概述根据一个示例性实施例、基于所确定的SRAM单元阵列行的极性将数据写入SRAM单元阵列的示例性操作的流程图;
图11是已知6T SRAM单元配置的示例图;
图12是根据一个示例性实施例的6T SRAM单元配置的示例图;
图13是图11的已知6T SRAM单元配置使用的已知预充电电路的示例图;
图14是根据一个示例性实施例的图12的6T SRAM单元配置使用的预充电电路的示例图。
具体实施方式
示例性实施例提供通过多数评估的静态随机访问存储器(SRAM)阵列功率降低的装置和方法。取决于其中使用SRAM阵列的数据处理设备,这样的SRAM阵列具有各种用途。然而,作为一个示例,可以在与数据处理设备中的处理器相关联的高速缓存和局部(local)存储器中使用这样的SRAM阵列。
图3是被提供作为其中在处理器的高速缓存和局部存储器中使用SRAM阵列的数据处理环境的一个示例。提供图3仅作为其中可以实施示例性实施例的各个方面的示例性数据处理环境,而不旨在表示或暗示关于其中可以使用示例性实施例的数据处理环境的类型或配置的任何限制。相反,旨在其中可以使用SRAM阵列的任何环境都落入本发明的精神和范围内。
现在参考图3,根据一个示例性实施例提供处理器300的示例性框图。处理器300包括控制器302,其控制指令和数据流入流出处理器300。控制器302向包括L1高速缓存的指令单元304发送控制信号。指令单元304向也包括L1高速缓存的执行单元306发出指令。执行单元306执行指令并保持或向例如L2高速缓存308转发任何产生的数据结果。反之,执行单元306在适当时从L2高速缓存308获取数据。执行单元304当必要时也从L2高速缓存308获取指令。控制器302发送控制信号以控制L2高速缓存308数据的存储或获取。处理器300可以包含未示出的附加组件,并仅仅提供作为处理器的基本代表,而不限制本发明的范围。
处理器300可以经由北桥和存储控制器集线器(north bridge and memorycontroller hub,NB/MCH)310从局部存储器320获取数据/指令。可以把来自局部存储器320的数据/指令加载到L2高速缓存308,以供由控制器302、指令单元304和执行单元306快速而高效的访问。
本领域技术人员应理解,图3中的硬件可以依赖于实施的不同而不同。附加于或取代图3中所述的硬件,可以使用其它内部硬件或外围设备,诸如闪存、等效的非易失性存储器或光盘驱动等。此外,可以把示例性实施例的处理应用于除了之前提及的SMP系统外的多处理器数据处理系统,而不背离本发明的精神和范围。
而且,数据处理系统300可以采取众多不同数据处理系统的任何形式,包括客户端计算设备、服务器计算设备、写字板计算机、膝上型电脑、电话或其它通信设备、个人数字助理(PDA)等。在某些示例性示例中,数据处理系统300可以是配置有闪存以提供用于存储例如操作系统文件和/或用户产生数据的非易失性存储器的便携计算设备。本质上,数据处理系统300可以是任何已知或稍后开发的数据处理系统,而没有结构限制。
可以如稍后描述的使用根据示例性示例的SRAM单元阵列实施L1高速缓存、L2高速缓存308和/或局部存储器320,例如如此后描述。如上所述,SRAM单元阵列中SRAM单元的预充电和放电需要大量的能量消耗。这里的示例性示例通过最小化与SRAM单元阵列中SRAM单元的读和/或写数据相关联的预充电和放电的数量而减少能源消耗。虽然将参考其中提供读位线(RBL)用于从SRAM单元读取数据值的八晶体管SRAM单元架构来描述本示例性实施例,但应该理解示例性实施例不应限制于此。而是,也可以通过使用其它类型的SRAM单元架构实施示例性实施例来获取由示例性实施例的机制获取的优势。
为了更好的理解示例性实施例所用技术用于减少SRAM单元阵列的能量消耗的潜在基础,参考图4A-4D所示的示例性SRAM单元的阵列。图4A-4D中的图并不是SRAM单元阵列的SRAM单元中存储的数据值的可能配置的穷举,而是被选取来图示根据示例性实施例执行多数评估的优势。
在图4A-4D中,每个框表示单个SRAM单元,SRAM单元以行和列排列,如关于SRAM单元阵列所一般公知的那样。图4A-4D所示的示例是5×5SRAM单元阵列,但实际的SRAM单元阵列当然将比图4A-4D所示的包括多得多的SRAM单元。而且,应该理解,后续对这些图和其它SRAM单元图的描述假定预充电高和放电低的实施。然而,本示例性实施例不应限制于此,而是其它示例性实施例可以包括预充电低和放电高的实施。
图4A表示5×5SRAM单元阵列的第一配置,其中每个SRAM单元存储0数据值。在这样的配置中,当读取SRAM单元的数据值时,每个SRAM单元需要使它的读位线(RBL)放电以便读取存储在SRAM单元中的0数据值。单元如此的放电和随后的预充电需要执行大量的功率消耗。因此,减少该功率消耗量是有利的。
图4B表示5×5SRAM单元阵列的第二配置,其中部分SRAM单元阵列,即第一两列被填充以1数据值,以及剩余SRAM单元阵列存储0数据值。在该配置中,5个读位线(RBL)中的三个需要为读操作放电。因此,大量的功率消耗仍存在于该配置中。
图4C表示5×5SRAM单元阵列的第三配置,其中SRAM单元阵列中的所有SRAM单元存储1数据值。该配置需要最少量的功率消耗,这是因为没有读位线(RBL)需要被放电并随后预充电以便执行读操作。因此,在SRAM单元阵列的读操作期间最好尽量接近该配置。
图4D表示5×5SRAM单元阵列的第四配置,其中部分SRAM单元阵列,即第一两列存储0数据值而剩余的SRAM单元阵列存储1数据值。换而言之,图4D的配置是图4B所示的配置的补(complement)。使用该配置,5个读位线(RBL)中只有2个需要为读操作放电。因此,图4D中的该配置需要比图4C所示的配置更多的功率消耗,因为需要放电行的前两个SRAM单元的RBL以便执行SRAM单元阵列行的读操作。然而,图4D中的该配置需要比图4B所示的配置少的功率消耗,因为较少量的RBL必须被放电并随后预充电。
从图4A-4D可以看出如果可以最小化读操作所需的RBL放电数,则可以最小化执行这样的读操作的功率消耗。最小化RBL放电量的一个途径在于减少从SRAM单元阵列中SRAM单元读取0数据值的数量。例如,通过使用根据本示例性实施例的机制的多数评估/编程方案,经编程具有图4B所示配置的SRAM单元阵列可以被读取仿佛其具有如图4D所示的配置。通过这种方式,最小化RBL的放电的数目,导致SRAM单元阵列中功率消耗的最小化。
对于示例性实施例的机制,提供逻辑用于确定SRAM单元阵列中正被写入的进入(incoming)行的极性。进一步提供逻辑用于将极性值存储在SRAM单元阵列每行的附加SRAM单元中。也提供逻辑,用于如根据每行的附加SRAM单元中存储的极性值所确定的,如果行包括的0比1多,则读取SRAM单元阵列中行的SRAM单元的反相值。进一步提供逻辑,用于如根据每行附加SRAM单元中存储的极性值所确定的,信令通知(signal)下游逻辑从该行中的SRAM单元读取的数据是否表示实际数据值或它们的补。
图5是根据一个示例性实施例的SRAM单元阵列的示例图。如图5所示,SRAM单元阵列500包括极性检测器510、被排列为具有列522和行524的阵列的多个SRAM单元520、和一组极性单元530,一个极性单元530用于SRAM单元阵列500中的每行。当数据被写入SRAM单元阵列500时,经由write_data<0:N>线,写线数据具有极性检测器510和位线驱动器(未示出)中的沉汲(sink),所述位线驱动器确定沿着SRAM单元阵列500的每列522的写位线wb1 540和wb1’550传播的wb1<0:n>和wb1’<0:n>。
极性检测器510接收要写入SRAM单元阵列500的行524的数据值,并确定行524的数据值集合是否包含比0更多的逻辑1。如果在要写入行524的数据中有比0更多的逻辑1,则极性检测器510将逻辑1写入与要写入数据的SRAM单元阵列500中的行524对应的极性单元530。如果数据中有比1更多的逻辑0,极性检测器510将逻辑0写入与要写入数据的SRAM单元阵列500中的行524对应的极性单元530。可以把write_enable信号发送到特定行524以使能数据值向特定SRAM单元520和该行524的极性单元530中的写入。
极性单元530有到对应行524的SRAM单元520的两个输出,即polarity<0:n>和polarity_b<0:n>。这些输出连同读使能信号一起确定在SRAM单元520的读位线(read bit line,RBL)上输出SRAM单元520的真数据值或互补数据值。这样,如果polarity<0:n>输出处于逻辑高电平,即逻辑1,表示存储在极性单元530中的极性值是1,并声明了读使能信号,则向SRAM单元520的读位线(RBL)上输出在行524的SRAM单元520中存储的真数据值。如果polarity<0:n>输出处于逻辑低电平,即逻辑0,表示存储在极性单元530中的极性值是0,并声明了读使能信号,则向SRAM单元520的读位线(RBL)上输出在行524的SRAM单元520中存储的互补(complement)数据值。结果,最小化了读操作期间读取的0的数目,因此减少了从SRAM单元阵列500读取数据所需的RBL的放电和预充电的数量。
在读操作期间,以类似于行524的单元520的形式读取行524的极性单元530。为此目的提供了极性读位线(polarity read bit line,pol_rbl)532。行524的极性单元530的值用作多路复用器580、590的选择信号。为SRAM单元阵列500的每列522提供多路复用器580、590。多路复用器580、590根据来自极性单元530的选择信号在读位线(RBL)值或它的反转即互补值之间选择。
即,如果极性单元530中的极性值是0,则SRAM单元520将在其读位线(RBL)560上输出互补数据值。该互补数据值连同反相数据值——该反相数据值在该情况下是真数据值——一起被提供给多路复用器580、590。到多路复用器580、590的选择信号将是逻辑0,因此选择输入到多路复用器580、590的反相数据值为从多路复用器580、590的输出。这样,结果,由多路复用器580、590输出SRAM单元520中存储的真数据值。
如果极性单元530中的极性值是1,则SRAM单元520将在其读位线(RBL)560上输出真数据值。该真数据值连同反相数据值——该反相数据值在该情况下是互补数据值——一起被提供给多路复用器580、590。到多路复用器580、590的选择信号将是逻辑1,因此选择输入到多路复用器580、590的真数据值为从多路复用器580、590的输出。因此,再次,由多路复用器580、590输出SRAM单元520中存储的真数据值。
这样,无论SRAM单元阵列500的行524的极性如何,都由多路复用器580、590输出SRAM单元520的真数据值。取决于哪个选择最小化从行524的SRAM单元520读取数据所需的读位线560的放电数量,通过选择SRAM单元520本身将在它们的读位线560上是否输出真数据值或它的互补而实现本示例性实施例的功率节省。虽然本示例性实施例添加了必须被充电和放电的两个极性读取位线,但与在大型SRAM单元阵列中减少放电和预充电的数量所获取的功率节省相比,这两个极性位线的添加很微小地增加能量消耗。因此,本示例性实施例的机制实现了SRAM单元阵列500的正确操作,同时最小化了SRAM单元阵列500的功率消耗。
图6是根据一个示例性实施例的极性检测器的电路的示例图。如图6所示,极性检测器600由多个PFET 610和NFET 620组成。PFET 610和NFET 620对儿组成并行耦合到write_data线650的反相器660。每个写数据线650包括耦合于反相器630和640之间的反相器660。为说明的目的,假设所有的PFET 610是相同尺寸。而且为说明的目的,假设所有的NFET620是相同尺寸。
各个写数据线的反相器630互相串联地耦合。类似的,各个数据线的反相器640互相串联地耦合。而且,每个系列的反相器630和640耦合到比较器670的相应输入。该比较器接收来自两个系列的反相器630和640的输入,并输出极性信号,用于在与SRAM单元阵列行相关联的对应极性单元中存储极性值。
在操作中,如果write_data值具有逻辑1状态,则反相器630输出逻辑0值,或低电压状态信号。如果write_data值具有逻辑0状态,则反相器630输出逻辑1值,或高电压状态信号。由于反相器660,由反相器640实现相反操作,其当write_data值具有逻辑1状态时输出高压状态信号或逻辑1,当write_data值具有逻辑0状态时输出逻辑0或低压状态信号。
结果,如果write_da ta<0:n>值包含的逻辑1比0多时,到比较器670的非反相(non-inverting)输入即“+”输入具有比反相输入即“-”输入更高的电压。这将导致比较器670的极性输出值是逻辑1或高压状态信号。相反,如果write_data<0:n>值包含的逻辑0比1多时,则到比较器670的非反相输入具有比反相输入更低的电压,结果,比较器670将输出逻辑0或低压状态信号。
该极性检测方案具有两个区域的操作,其中write_data<0:n>具有趋向逻辑0或逻辑1的显著偏压,即与另一个逻辑状态相比,有大量的write_data<0:n>值是一个逻辑状态,或write_data<0:n>具有微小的偏压,即任一个逻辑状态的write_data<0:n>值的数目是大致相同的。如果有显著偏压,则可以快速地执行极性的评估。如果偏压是微小的,则极性的评估可能是缓慢的或甚至不能确定的。然而,在那些情况中,大多数写/评估方案将导致最小的能量节省。
图7是根据一个示例性实施例的SRAM单元的电路的示例图。如图7所示,当与已知SRAM单元配置相比时,图示实施例的SRAM单元700不同在于,其具有包含与(AND)门710和720的两个极性输入,其中来自相应极性单元的极性输入信号和反相极性输入信号和read_enable信号进行与操作。SRAM单元700进一步包括两个读端口,真读端口730和反相或互补读端口740。根据行的极性,如极性单元的极性输入信号所指定的,read_enable信号结合极性输入信号和反相极性输入信号确定向SRAM单元的读位线(RBL)750上输出真或互补数据值。
如果行的极性表示行中有的逻辑1比0多,即极性值是1,则真数据值经由真读端口730被输出到读位线750,因为与门710的输出是逻辑1或高压状态信号以及与门720的输出是逻辑0或低压状态信号。如果行的极性表示行中有的逻辑0比1多,即极性值是0,则互补数据值经由反相或互补读端口740被输出到读位线750,因为与门720的输出是逻辑1或高压状态信号以及与门710的输出是逻辑0或低电压状态信号。
这样,利用上述示例性实施例的机制,每个SRAM单元具有额外的读端口。而且,用于分布polarity和polarity’信号的电路以及额外的字线驱动用于激活额外读端口。可以通过在极性检测器本身中提供下述附加电路而去除这些附加元件,所述附加电路用于确定向SRAM单元阵列中的行的SRAM单元写入真数据值或它的互补。这样,通过在第一位置向SRAM单元写真数据值或它的互补,无需使用图7所示电路确定在读操作期间输出真或互补数据值。
图8A-8B是根据一个示例性实施例的、用于基于SRAM单元阵列中行的极性而控制写到SRAM单元的数据值的写电路的示例图。如图8A-8B所示,可以添加到极性检测器810的附加电路包括多路复用器对儿820和830以及反相器840。多路复用器820和830的输出根据所确定的、写入SRAM单元阵列的数据行的极性而分别提供写位线信号wb1<0:n>和wb1’<0:n>。
利用极性检测器中的附加电路,输入write_data<0:n>信号作为多路复用器830的第一输入以及多路复用器820的第二输入。输入反相的write_data<0:n>信号作为多路复用器830的第二输入以及多路复用器820的第一输入。如以前述方式由极性检测器810所确定的、行的极性用作多路复用器820和830的选择器。这样,如果确定行的极性是逻辑0,则由多路复用器820输出反相的write_data<0:n>值作为wb1<0:n>值,以及由多路复用器830输出真write_data<0:n>值作为wb1’<0:n>值。相反,如果确定行的极性是逻辑1,则由多路复用器820输出真write_data<0:n>值作为wb1<0:n>值以及由多路复用器830输出反相的write_data<0:n>值作为wb1’<0:n>值。
结果,如先前上面参考图5所述的,SRAM单元阵列的SRAM单元可以是常规SRAM单元,其中每列524添加极性单元530和多路复用器580、590,从而提供用于确定输出SRAM单元中存储的数据值的真值或互补的附加逻辑。
图9-10是概述本发明的示例性实施例的示例性操作的流程图。应该理解,流程图说明的每个框和流程图说明中框的组合可以由计算机程序指令实施。可以把这些计算机程序指令提供给处理器或其它可编程数据处理装置以产生机器,从而在处理器或其它可编程数据处理装置上执行的指令产生用于实施一个或多个流程图框中指定的功能的手段(means)。这些计算机程序指令也可以存储在计算机可读存储器或存储介质中,其可以指导处理器或其它可编程数据处理装置以特定形式运作,从而计算机可读存储器或存储介质中存储的指令产生制品,该制品包括实施一个或多个流程图中指定的功能的指令手段。
因此,流程图说明的框支持用于执行指定功能的手段的组合、执行指定功能的步骤的组合、和用于执行指定功能的程序指令手段。也应理解流程图说明中的每个框以及流程图说明中框的组合可以由执行指定功能或步骤的专用硬件计算机系统、或专用硬件以及计算机指令的组合实施。
而且,提供流程图旨在说明本示例性实施例中执行的操作。流程图并不意味着表示或暗示关于特定操作或更具体的,操作顺序的限制。可以修改流程图的操作以适于具体实施,而不背离本发明的精神和范围。
图9是一流程图,概述根据一个示例性实施例的、基于确定的SRAM单元阵列行的极性而从SRAM单元阵列读取数据的示例性操作。应该注意,图9中概述的操作假设,已经诸如以关于图5的所述的方式,在向SRAM单元阵列写数据时确定了SRAM单元阵列中数据行的极性。这样,行的极性被存储在与要从其读数据的行相关联的极性单元中。
而且,应该理解,图9中概述的操作假设如上面图5-7中阐述的示例性实施例。如果使用下述实施例,其中极性检测器包括用于确定向SRAM单元写入真值或互补值的附加电路,诸如图8A-8B中所示,则步骤910-930将不是必要的,因为这些步骤基本上使用图8A-8B的电路在向SRAM单元写数据值时执行。
如图9所示,操作开始于SRAM单元阵列确定要读的行的极性(步骤910)。如果该行的极性表示行中存储的1数据值比0数据值多,则该行的SRAM单元输出在该行的相应SRAM单元中存储的真数据值(步骤920)。如果该行的极性表示行中存储的0数据值比1数据值多,则该行的SRAM单元输出在该行的相应SRAM单元中存储的数据值的互补(步骤930)。
基于所确定的极性,对于行中的每个SRAM单元,输出SRAM单元的实际输出或SRAM单元的输出的互补作为对于该SRAM单元从SRAM单元阵列读取的数据(步骤940)。如果极性是逻辑1,则输出SRAM单元的实际输出作为该SRAM单元的SRAM单元阵列的输出(步骤950)。如果极性是逻辑0,则输出SRAM单元的输出的互补作为该SRAM单元的SRAM单元阵列的输出(步骤960)。然后操作结束。对SRAM单元阵列中的每个读操作重复该操作。
图10是一流程图,概述根据一个示例性实施例的、基于确定的SRAM单元阵列行的极性而将数据写到SRAM单元阵列的示例性操作的流程图。图10中概述的操作假设极性检测器包括用于当写数据时确定要写到SRAM单元阵列的数据行的极性的电路。该电路可以采取例如图8A-8B所示的形式。
如图10所示,操作开始于接收要写入SRAM单元阵列中行的写数据(步骤1010)。基于多数评估确定行的极性以便确定行中是否有更多的1数据值或更多的0数据值(步骤1020)。基于确定的极性,将极性值写到与要写入数据的行相关联的极性单元(步骤1030)。
基于该行的极性,确定要把真数据值或数据值的互补写到该行的每个SRAM单元(步骤1040)。如果行的极性是逻辑1,则对应于写数据输入的真数据值被写到该行的SRAM单元(步骤1050)。如果行的极性是逻辑0,则对应于反相的写数据输入的互补数据值被写到该行的SRAM单元(步骤1060)。然后操作结束。应该理解,如果采用图5-7的示例性实施例,其中在读操作期间而不是写操作期间执行要由SRAM单元输出真或互补数据值的确定,则步骤1040-1060将不是必要的,并实际上将由上面图9中概述的每个读操作执行。
参考8T SRAM单元描述了上面的示例性实施例。应该理解,示例性实施例不限于8T SRAM单元,而可以与其它SRAM单元配置一起使用,而在不背离本发明的精神和范围。例如,示例性实施例的机制也可以与6T SRAM单元一起使用。为了解释常规6T SRAM单元配置和使用示例性实施例的机制的6TSRAM单元配置之间的差别,提供图11和13作为公知6T SRAM单元配置的示例,以及提供图12和14作为在6T SRAM单元配置中本发明的示例性实施例的实施的例子。
图11是公知6T SRAM单元配置的示例图。图11所示的配置基本上与图1所示的相同。关于图11要注意的重要特征在于,公知6T SRAM单元配置不包含用于确定输出SRAM单元中存储的真数据值或真数据值的互补的任何逻辑。公知6T SRAM单元配置只能输出存储在SRAM单元中的真数据值。因此,不具有如示例性实施例中的执行多数评估的能力。
图12是根据一个示例性实施例6T SRAM单元配置的示例图。如图12所示,公知的6T SRAM单元和实施示例性实施例的机制的6T SRAM单元之间的主要差别在于,每个字线的互补字线驱动1210、地址解码信号的输入、读/写信号、和到字线驱动1220以及互补字线驱动1210的极性信号、以及到预充电/评估/写电路1230的极性信号的输入的引入。与如图11所示的公知SRAM单元配置中的两个晶体管相反,字线驱动1220耦合到SRAM单元的仅一个晶体管1225,该SRAM单元耦合到位线bl_hi。互补字线驱动1210耦合到其它晶体管1235,所述其它晶体管1235耦合到位线bl_hi’。
根据输入到字线驱动1220和互补字线驱动1210的极性信号指示的极性值,向晶体管1225和1235分别声明字线信号或互补字线信号。根据晶体管1225或晶体管1235是否停留于预充电高电平,根据所声明的字线或互补字线信号,经由预充电/评估/写电路1230输出存储在SRAM单元中的真数据值或它的互补。
图13是用于图11的公知6T SRAM单元配置的已知预充电/评估/写电路的示例图。图14是根据一个示例性实施例的、用于图12的6T SRAM单元配置的预充电/评估/写电路的示例图。从图13和14的比较清楚看出,图13中所示的已知预充电/评估/写电路和图14所示的示例性实施例的预充电/评估/写电路之间的主要差别在于多路复用器1410和1420的引入。
数据输入信号和反相的数据输入信号被输入到多路复用器1410,以及极性信号作为到多路复用器1410的选择信号。根据SRAM单元行的极性,选择反相的数据输入信号或数据输入信号作为到晶体管1430-1436的声明。多路复用器1420输出与非(NAND)门1440的输出或与非门1450的反相输出的互补作为预充电/评估/写电路的输出。利用上面的电路,可以把示例性实施例的机制的基于多数评估和极性的操作应用于6T SRAM单元和上述8T SRAM单元。
因此,示例性实施例提供一种最小化SRAM单元阵列中功率消耗的机制,诸如可以用在数据处理设备、集成电路设备、数据处理系统等的存储器、高速缓存等中。示例性实施例通过最小化当执行读操作时SRAM单元阵列中读位线的放电数而最小化功率消耗。通过下述电路使得放电的最小化成为可能,该电路用于确定SRAM单元阵列行中存储的数据值的多数极性,以及使用该确定的极性来确定读真数据值或互补数据值的电路将导致更少的必须放电的读位线。
上述电路可以是集成电路芯片设计的一部分。芯片设计可以以图形计算机编程语言创建,并存储在计算机存储介质(诸如盘、带、物理硬盘、或诸如存储访问网络的虚拟硬盘)中。如果设计者不制造芯片或用于制造芯片的照相平版掩模(photolithographic mask),设计者可以由物理装置(例如,通过提供存储设计的物理介质的拷贝)或电的(例如,通过因特网)传送产生的到这样的机构。然后,可以把存储的设计转化为合适的格式(例如,GDSII)用于照相平版掩模的制造,其典型地包括要在晶片上形成的讨论中的芯片设计的备份。照相平版掩模可以用于定义要蚀刻或另外处理的晶片(和/或其上的层)的区域。
产生的集成电路芯片以原晶片形式(即,有多个未打包芯片的单个晶片)如光模具、或以包装形式由制造者分布。在后者的情况中,可以在单个芯片包(诸如塑胶载体,具有附于母板或其它高级载体的引线)或多个包(诸如具有任一或两个表面互连或隐藏互连的陶器载体)中安装芯片。在任何情况下,然后可以把芯片与其它芯片、离散电路组件、和/或其它信号处理设备集成作为(a)诸如母板的中间产品,或(b)最终产品的一部分。最终产品可以是包括集成电路芯片的任何产品,范围从玩具和其它低端应用到具有显示器、键盘或其它输入设备以及中央处理器的高级计算机产品。而且,其中可以提供集成电路芯片的最终产品可以包括游戏机、游戏控制台、手持计算设备、个人数字助理、诸如无线电话等的通信设备、膝上型计算设备、桌上计算设备、服务计算设备、或任何其它计算设备。
本发明的描述为了解释和描述而给出,而并旨在是穷举性的或局限于所公开形式的发明。对本领域技术人员而言许多修改和改变是明显的。选择和描述实施例以便最好的解释本发明的原理、实施的应用,并使本领域其它技术人员明白本发明,以用于适于设想的特定应用的各种修改的各种实施。

Claims (20)

1、一种从包括多个存储单元的存储阵列读取数据的方法,包括:
标识要从该存储阵列读取其数据值的存储单元行的极性;
根据所标识的极性选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值;以及
根据该选择,输出来自该存储单元行的存储单元的真数据值或互补数据值之一作为从该存储阵列读取的数据。
2、如权利要求1所述的方法,其中,所述存储单元行的极性表示在该存储单元行中存储的大多数数据值是逻辑1数据值还是逻辑0数据值。
3、如权利要求2所述的方法,其中,如果所述存储单元行的极性表示该存储单元行中存储的大多数数据值是逻辑1数据值,则选择该存储单元行中的存储单元的真数据值,以由该存储阵列输出。
4、如权利要求2所述的方法,其中,如果所述存储单元行的极性表示该存储单元行中存储的大多数数据值是逻辑0数据值,则选择该存储单元行中的存储单元的互补数据值,以由该存储阵列输出。
5、如权利要求1所述的方法,进一步包括:
接收要写入该存储单元行的数据值;
根据要写入该存储单元行的数据值,确定该存储单元行的极性值;以及
与该存储单元行相关联地存储该极性值,其中该极性值用于标识该存储单元行的极性。
6、如权利要求1所述的方法,其中,所述存储阵列是静态随机访问存储器(SRAM)单元阵列。
7、如权利要求1所述的方法,进一步包括:
接收要写入该存储单元行的数据值;
根据要写入该存储单元行的数据值,标识该存储单元行的极性值;
根据该极性值,确定向该存储单元行写入该数据值还是互补数据值;以及
根据确定结果,向该存储单元行写入该数据值或互补数据值之一。
8、如权利要求7所述的方法,其中,根据所标识的极性选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值的操作包括:根据所标识的该存储单元行的极性,选择输出由该存储单元输出的实际数据值或由该存储单元输出的实际数据值的互补,其中根据真数据值还是真数据值的互补被写入该存储单元,该实际数据值或该实际数据值的互补可以是该真数据值。
9、如权利要求1所述的方法,其中,所述存储单元是六晶体管静态随机访问存储器(SRAM)单元或八晶体管SRAM单元中的一种。
10、如权利要求1所述的方法,其中,所述存储阵列是集成电路芯片的一部分。
11、一种存储阵列,包括:
以具有至少一个存储单元行的阵列配置排列的多个存储单元;
标识要从该存储阵列读取其数据值的存储单元行的极性的逻辑;
选择逻辑,根据所标识的极性,选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值;以及
输出逻辑,根据该选择,输出来自该存储单元行的存储单元的真数据值或互补数据值之一作为从该存储阵列读取的数据。
12、根据权利要求11所述的存储阵列,其中,所述存储单元行的极性表示在该存储单元行中存储的大多数数据值是逻辑1数据值还是逻辑0数据值。
13、如权利要求12所述的存储阵列,其中,如果所述存储单元行的极性表示该存储单元行中存储的大多数数据值是逻辑1数据值,则该选择逻辑选择该存储单元行中的存储单元的真数据值,以由该存储阵列输出。
14、如权利要求12所述的存储阵列,其中,如果所述存储单元行的极性表示该存储单元行中存储的大多数数据值是逻辑0数据值,则该选择逻辑选择该存储单元行中的存储单元的互补数据值,以由该存储阵列输出。
15、如权利要求11所述的存储阵列,进一步包括:
接收要写入该存储单元行的数据值的逻辑;
极性检测逻辑,根据要写入该存储单元行的数据值,确定该存储单元行的极性值;以及
与该存储单元行相关联地存储该极性值的逻辑,其中该极性值用于标识该存储单元行的极性。
16、如权利要求11所述的存储阵列,其中,所述存储阵列中的存储单元是静态随机访问存储器(SRAM)单元。
17、如权利要求11所述的存储阵列,进一步包括:
接收要写入该存储单元行的数据值的逻辑;
极性检测逻辑,根据要写入该存储单元行的数据值,标识该存储单元行的极性值;
确定逻辑,根据该极性值,确定向该存储单元行写入该数据值还是互补数据值;以及
写逻辑,根据确定结果,向该存储单元行写入该数据值或互补数据值之一。
18、如权利要求17所述的存储阵列,其中,所述选择逻辑通过下述操作根据所标识的极性选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值:根据所标识的该存储单元行的极性,选择输出由该存储单元输出的实际数据值或由该存储单元输出的实际数据值的互补,其中根据真数据值还是真数据值的互补被写入该存储单元,该实际数据值或该实际数据值的互补可以是该真数据值。
19、如权利要求11所述的存储阵列,其中,所述存储阵列的存储单元是六晶体管静态随机访问存储器(SRAM)单元或八晶体管SRAM单元之一。
20、一种数据处理设备,包括:
处理器;以及
耦合到该处理器的存储器,其中该存储器包含多个存储单元,该多个存储单元包括至少一个存储单元行,以及其中该存储器包括用于以下的逻辑:
标识要从该存储阵列读取其数据值的存储单元行的极性;
根据所标识的极性,选择输出来自该存储单元行的存储单元的真数据值还是来自该存储单元行的存储单元的互补数据值;以及
根据该选择,输出来自该存储单元行的存储单元的真数据值或互补数据值之一作为从该存储阵列读取的数据。
CN2007103067003A 2006-12-12 2007-11-16 降低静态随机访问存储器阵列功率的装置和方法 Expired - Fee Related CN101312070B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/609,382 US7468929B2 (en) 2006-12-12 2006-12-12 Apparatus for SRAM array power reduction through majority evaluation
US11/609,382 2006-12-12

Publications (2)

Publication Number Publication Date
CN101312070A true CN101312070A (zh) 2008-11-26
CN101312070B CN101312070B (zh) 2012-04-18

Family

ID=39497822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103067003A Expired - Fee Related CN101312070B (zh) 2006-12-12 2007-11-16 降低静态随机访问存储器阵列功率的装置和方法

Country Status (3)

Country Link
US (1) US7468929B2 (zh)
JP (1) JP2008146812A (zh)
CN (1) CN101312070B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826365B (zh) * 2009-01-22 2013-05-08 台湾积体电路制造股份有限公司 具有跟踪改进的sram写能力的功率的负电压发生器
CN108630255A (zh) * 2017-03-17 2018-10-09 爱思开海力士有限公司 半导体存储器件、标志生成电路以及输出半导体器件中的数据的方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070291561A1 (en) * 2006-06-14 2007-12-20 Braceras Geordie M Sense-amplifier assist (saa) with power-reduction technique
IT1396864B1 (it) * 2009-11-17 2012-12-20 Magneti Marelli Spa Metodo per operare una unita' elettronica di controllo durante una fase di calibrazione.
KR20160093430A (ko) * 2015-01-29 2016-08-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 데이터 입출력 방법
US9704568B1 (en) 2016-09-02 2017-07-11 International Business Machines Corporation Reducing SRAM power using strategic data pattern storage
CN110875071B (zh) 2018-08-31 2022-05-10 华为技术有限公司 一种静态随机存储器sram单元以及相关装置
US11664081B2 (en) * 2021-04-15 2023-05-30 Taiwan Semiconductor Manufacturing Company, Ltd. Bit selection for power reduction in stacking structure during memory programming

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366419A (ja) * 2001-06-07 2002-12-20 Mitsubishi Electric Corp データ処理装置およびデータ処理方法
JP4330396B2 (ja) * 2003-07-24 2009-09-16 株式会社ルネサステクノロジ 半導体記憶装置
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826365B (zh) * 2009-01-22 2013-05-08 台湾积体电路制造股份有限公司 具有跟踪改进的sram写能力的功率的负电压发生器
CN108630255A (zh) * 2017-03-17 2018-10-09 爱思开海力士有限公司 半导体存储器件、标志生成电路以及输出半导体器件中的数据的方法
CN108630255B (zh) * 2017-03-17 2022-02-18 爱思开海力士有限公司 半导体存储器件、标志生成电路以及输出半导体器件中的数据的方法

Also Published As

Publication number Publication date
CN101312070B (zh) 2012-04-18
US7468929B2 (en) 2008-12-23
US20080137450A1 (en) 2008-06-12
JP2008146812A (ja) 2008-06-26

Similar Documents

Publication Publication Date Title
CN101312070B (zh) 降低静态随机访问存储器阵列功率的装置和方法
Chen et al. Analysis and optimization strategies toward reliable and high-speed 6T compute SRAM
WO2011069780A1 (en) Cache access memory and method
US7613050B2 (en) Sense-amplifier assist (SAA) with power-reduction technique
US8102728B2 (en) Cache optimizations using multiple threshold voltage transistors
US6282606B1 (en) Dynamic random access memories with hidden refresh and utilizing one-transistor, one-capacitor cells, systems and methods
CN106710625B (zh) 突发模式读可控sram
WO2009052012A1 (en) Selectively-powered memories
US8456945B2 (en) 10T SRAM for graphics processing
Wang et al. Charge recycling 8T SRAM design for low voltage robust operation
Chung et al. Implementation of low-voltage static RAM with enhanced data stability and circuit speed
US7502276B1 (en) Method and apparatus for multi-word write in domino read SRAMs
CN101800074B (zh) 存储器电路及其系统以及存取该存储器电路的方法
US10043572B1 (en) VSS bitcell sleep scheme involving modified bitcell for terminating sleep regions
US5517454A (en) Semiconductor memory device having refresh circuits
US20070223294A1 (en) Fast access memory architecture
Tsai et al. Testing of in-memory-computing memories with 8 T SRAMs
Singhal et al. Comparative study of power reduction techniques for static random access memory
Boumchedda et al. 1.45-fJ/bit access two-port SRAM interfacing a synchronous/asynchronous IoT platform for energy-efficient normally off applications
Apollos Design Principles of SRAM Memory in Nano-CMOS Technologies
EP0851428B1 (en) Conditional restore for execution unit
Challagundla et al. Resonant Compute-In-Memory (rCIM) 10T SRAM Macro for Boolean Logic
CN105474321B (zh) 具有多字线设计的存储器
US11929114B2 (en) Rapid tag invalidation circuit
Chen et al. A 100 MHz SRAM Design in 180 nm Process

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120418

Termination date: 20151116

EXPY Termination of patent right or utility model