具有虚拟体化架构的SRAM及包括其的系统和方法与流程

文档序号:17735515发布日期:2019-05-22 03:09阅读:170来源:国知局
具有虚拟体化架构的SRAM及包括其的系统和方法与流程
本申请要求2017年11月15日提交的印度临时专利申请no.20171040880和2018年11月14日提交的印度专利申请no.20171040880的优先权,其公开内容通过引用整体并入本文。本发明的示例性实施例涉及静态随机存取存储器(sram),更具体地,涉及具有虚拟体化(banking)架构的sram及包括其的系统和方法。
背景技术
:静态随机存取存储器(sram)是一种广泛使用的用于存储数据的半导体器件。sram的性能很大程度上取决于与sram相关联的功耗因数。通过位线充电和位线放电影响sram中的功耗。sram中的输入/输出(io)电路通常包括预充电模块、位线驱动器、读出放大器、列选择电路和存储体(bank)选择电路。io模块内的每个电路占用一个分离的空间。此外,对于每个位线阵列,需要单独的io模块,因为io模块的电路不能在多个位单元(bitcell)阵列之间共享。因此,sram的io电路导致高面积损失(例如,在sram中需要相对大量的空间),并且增加了sram的总成本。在常规方法中,可以通过增加存储体的数量来减少sram的功耗。在这种常规方法中,可以通过复制本地输入/输出(io)块来完成体化(banking)。例如,要构建4-存储体sram,本地io可以重复两次。由于本地io执行多个逻辑操作,io块的复制或重复可能导致sram总成本的急剧增加。技术实现要素:根据示例性实施例,一种使用虚拟体化架构的静态随机存取存储器(sram)系统包括通信地耦合到sram的处理器和设置在sram中并在处理器的控制下操作的多个电路。该多个电路包括划分电路、设置在划分电路中的选择电路以及连接到选择电路的本地输入/输出(io)电路。划分电路被配置为将至少一个存储体至少划分为第一位单元阵列和第二位单元阵列,其中第一位单元阵列和第二位单元阵列中的至少一个包括至少一条位线。选择电路连接在第一位单元阵列和第二位单元阵列之间,并且选择电路根据预定义选择逻辑选择第一位单元阵列和第二位单元阵列之一。本地输入/输出(io)电路连接到选择电路,并根据本地io电路的一个或多个预定义操作产生输出。根据示例性实施例,一种在sram中提供虚拟体化架构的方法包括将至少一个存储体划分为第一位单元阵列和第二位单元阵列,其中第一位单元阵列和第二位单元阵列中的至少一个包括至少一条位线。该方法还包括将包括选择电路的划分电路连接在第一位单元阵列和第二位单元阵列之间,其中选择电路根据预定义选择逻辑选择第一位单元阵列和第二位单元阵列之一。该方法还包括将本地输入/输出(io)电路连接到选择电路,其中本地io电路根据本地io电路的一个或多个预定义操作产生输出。根据示例性实施例,一种sram包括:第一存储体,包括第一位单元阵列和第二位单元阵列;第二存储体,包括第三位单元阵列和第四位单元阵列;以及第一划分电路,包括第一选择电路。第一划分电路连接在第一位单元阵列和第二位单元阵列之间。该sram还包括第二划分电路,其包括第二选择电路。第二划分电路连接在第三位单元阵列和第四位单元阵列之间。第一选择电路根据预定义选择逻辑选择第一位单元阵列或第二位单元阵列之一,并且第二选择电路根据预定义选择逻辑选择第三位单元阵列或第四位单元阵列之一。该sram还包括连接在第一存储体和第二存储体之间的本地输入/输出(io)电路。本地io电路产生sram的输出。输出包括以下中的一项:在读取操作期间基于全局位线的状态产生输出,在写入操作期间将数据放置到全局位线上,或者在发起新操作之前将位线预充电到预定电压电平。根据示例性实施例,一种在sram中执行一个或多个预定义操作的方法包括:在sram中接收用于在sram中执行一个或多个预定义操作的输入,以及通过设置在sram中的选择电路来从多个位单元阵列选择位单元阵列。根据预定义选择逻辑执行对位单元阵列的选择。该方法还包括由本地输入/输出(io)电路根据该选择来执行一个或多个预定义操作。附图说明通过参考附图详细描述本发明的示例性实施例,本发明的以上和其他特征将变得更清楚,其中:图1示出了根据示例性实施例的在静态随机存取存储器(sram)中实现虚拟体化架构的sram系统。图2示出了根据示例性实施例的sram的配置,其中划分模块设置在第一存储体和第二存储体中的每一个的两个或更多个位单元阵列之间。图3示出了根据示例性实施例的具有多存储体架构的sram,其中sram包括本地输入/输出(io)电路和包括选择模块的划分模块。图4示出了根据示例性实施例的sram的划分模块中包括的选择模块。图5示出了根据示例性实施例的包括层级位线的sram。图6示出了针对常规sram和根据示例性实施例的sram的存储器大小相对于动态功耗的图形图示。图7示出了根据示例性实施例的在sram中提供虚拟体化架构的方法。图8示出了根据示例性实施例的在sram中执行一个或多个预定义操作的方法。具体实施方式下文中将参考附图更全面地描述本发明的示例性实施例。贯穿附图,相同附图标记可以表示相同元件。应当理解,除非上下文另有明确说明,否则每个示例性实施例中的特征或方案的描述通常应被视为可用于其他示例性实施例中的其他类似特征或方案。此外,本文中描述的示例性实施例可以体现为分离的示例性实施例或组合的示例性实施例。应当理解,术语“第一”、“第二”、“第三”等在本文中用于将元件彼此区分,但是元件不受这些术语限制。因此,示例性实施例中的“第一”元件可以在另一示例性实施例中被描述为“第二”元件。本发明的示例性实施例提供了一种具有虚拟体化架构的静态随机存取存储器(sram)。示例性实施例可以通过在sram中将位单元阵列分成多个存储体来减少动态功耗。示例性实施例可以进一步降低高速存储器的系统成本,并且可以提供连接在多个存储体之间的选择电路。因此,本文中的示例性实施例提供了一种可以降低动态功耗并且可以减小sram的面积和成本的sram以及包括该sram的系统和方法。根据示例性实施例的所提出的sram系统、方法和sram包括在sram的多存储体中将位线阵列分成二分之一阵列或四分之一阵列。此外,示例性实施例包括在sram的每两个存储体之间设置选择电路。根据示例性实施例的sram系统(在下文中也称为系统)可以实现为处理系统,并且可以在各种计算系统如膝上型计算机、台式计算机、笔记本、工作站、大型计算机、服务器、网络服务器等中实现。应当理解,系统可以由多个用户通过一个或多个用户设备访问,或由驻留在用户设备上的应用访问。用户设备的示例可以包括但不限于便携式计算机、个人数字助理、手持设备和工作站。用户设备可以通过网络通信地耦合到所提出的系统。所提出的系统可以包括至少一个处理器、输入/输出(i/o)接口和存储器。该至少一个处理器可以实现为一个或多个微处理器、微计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除其他能力之外,该至少一个处理器被配置为获取并执行存储器中存储的计算机可读指令。i/o接口可以包括各种软件和硬件接口,例如,web界面、图形用户界面等。i/o接口可以允许系统直接或通过客户端设备与用户交互。此外,i/o接口可以使系统能够与其他计算设备例如web服务器和外部数据服务器通信。i/o接口可以促进各种网络和协议类型内的多种通信,所述网络和协议类型包括有线网络如lan、电缆等以及无线网络如wlan、蜂窝或卫星。i/o接口可以包括一个或多个端口,用于将多个设备彼此连接或连接到另一服务器。存储器可以包括任何计算机可读介质,例如,易失性存储器如静态随机存取存储器(sram)和动态随机存取存储器(dram)和/或非易失性存储器如只读存储器(rom)、可擦除可编程rom、闪存、硬盘、光盘和磁带。存储器可以包括模块和数据。本文中,术语“模块”和“电路”可以互换使用。模块包括执行特定任务或实现特定数据类型的例程、程序、对象、组件、数据结构等。模块可以包括补充系统的应用和功能的程序或编码指令。数据用作用于存储由一个或多个模块所处理、接收和产生的数据的存储库。数据可以包括由于执行一个或多个模块而产生的数据。图1示出了根据示例性实施例的在sram中实现虚拟体化架构的sram系统。参考图1,在示例性实施例中,实现了使用虚拟体化架构的sram系统100。sram系统100包括耦合到sram104的处理器102。sram104包括将由处理器102执行的多个模块。例如,该多个模块在处理器102的控制下操作。该多个模块包括划分模块106,划分模块106被配置为将存储体划分为多个位单元阵列(例如,两个或更多个位单元阵列)。划分模块106包括连接在所述多个位单元阵列之间的一个或多个选择模块108。选择模块108从所述多个位单元阵列中选择一个位单元阵列。该多个模块还包括本地输入/输出(io)模块110,其根据本地io模块110的一个或多个预定义操作产生输出。在示例性实施例中,sram系统100可以包括用作处理器102并且控制该多个模块的控制器或应用处理器之一。sram系统100的示例包括利用sram104的任何系统,例如电视机或无线通信系统。图2示出了根据示例性实施例的sram的配置,其中划分模块设置在第一存储体和第二存储体中的每一个的两个或更多个位单元阵列之间。参考图2,示出了sram104的示例性配置。sram104可以配置为芯片的形式。sram104可以包括位单元阵列中的多个存储体。位单元阵列包括至少一条位线。位线表示全局位线和局部位线中的每一条。全局位线和局部位线中的每一条是至少一个存储体中的每一个和多个位单元阵列中的每一个位单元阵列的一部分。如图2所示,sram104包括第一存储体202(存储体0)和第二存储体204(存储体1)。sram104还包括连接到第一存储体202(存储体0)和第二存储体204(存储体1)中的每一个的本地io模块110。第一存储体202包括第一位单元阵列206(位单元阵列0)和第二位单元阵列208(位单元阵列1)。第二存储体204包括第三位单元阵列210(位单元阵列2)和第四位单元阵列212(位单元阵列3)。图2的示例性实施例中的sram104使得能够在第一存储体202和第二存储体204中的两个或更多个位单元阵列之间共享本地io模块110。尽管图2的示例性实施例示出了两个存储体,但是本发明不限于此。例如,在示例性实施例中,sram104可以包括两个以上的存储体。可以将这两个以上存储体中的每一个转换为至少两个位单元阵列。本地io模块110根据本地io模块110的一个或多个预定义操作产生输出。本地io模块110的该一个或多个预定义操作包括读取操作、写入操作和预充电操作中的至少一个。下面将参考图3进一步详细讨论本地io模块110。划分模块106设置在第一存储体202中的第一位单元阵列206和第二位单元阵列208之间,并且划分模块106设置在第二存储体204中的第三位单元阵列210和第四位单元阵列212之间。划分模块106是通过全局位线连接到第一位单元阵列206和第二位单元阵列208以及第三位单元阵列210和第四位单元阵列212中的每一个的新单元。划分模块106包括一个或多个选择模块108。sram104中的该一个或多个选择模块108的共同存在被称为划分模块106。例如,该一个或多个选择模块108形成划分模块106。基于第一存储体202和第二存储体204中的每一个中的位线的划分,划分模块106将第一存储体202划分为第一位单元阵列206和第二位单元阵列208,并且将第二存储体204划分为第三位单元阵列210和第四位单元阵列212。参考划分模块106,第一存储体202和第二存储体204中的每一个中的位线的大小减小到预定义的比例。在示例中,预定义比例是位线大小的二分之一,或者是位线大小的四分之一。在通过划分模块106对位线进行划分的情况下,还减小了与第一存储体和第二存储体中的每一个的位线相关联的预定义电容值,从而节省了动态功率。划分模块106中的该一个或多个选择模块108被配置为基于预定义选择逻辑电路选择第一存储体202或第二存储体204之一。预定义选择逻辑电路可以包括例如列选择逻辑电路。列选择逻辑电路包括读取列选择逻辑、写入列选择逻辑和位单元阵列选择逻辑中的每一个。基于列地址、位单元阵列的地址以及使能读取操作或写入操作之一的信号中的每一个,选择模块108从第一位单元阵列206和第二位单元阵列208之一选择多条位线中的一条位线,并将该位线连接到全局位线。列选择逻辑由选择模块108与位单元地址一起应用,以连接到全局位线。执行该选择以执行sram104中的读取操作或sram104中的写入操作之一。图3示出了根据示例性实施例的具有多存储体架构的sram,其中sram包括本地io电路和包括选择模块的划分模块。参考图3,在示例性实施例中,示出了包括连接在多个存储体中的两个存储体(例如,存储体0和存储体1)之间的本地io模块110的sram104。如参考图2所述,划分模块106是指一个或多个选择模块108的集合。图3示出了sram302,其中本地io110连接到第一存储体(存储体0)和第二存储体(存储体1)中的每一个。通过在第一存储体(存储体0)中实现第一划分模块106以及在第二存储体(存储体1)中实现第二划分模块106,将sram302变换为sram104。第一存储体(存储体0)包括位单元阵列0、位单元阵列1和两个边缘单元。第二存储体(存储体1)包括位单元阵列2和位单元阵列3以及两个边缘单元。第一划分模块106和第二划分模块106中的每一个包括一个或多个选择模块108。在图3中,sram104通过在多个存储体中的每个存储体之间实现划分模块106来设计,从而避免了本地io模块110的重复。因此,根据示例性实施例,划分模块106的实现节省了成本、面积和功率。参考图4进一步描述划分模块106中的每个选择模块108。图3中所示的本地io模块110包括一个或多个电路。该一个或多个电路可以包括例如位线驱动器、读出放大器、预充电逻辑和存储体选择逻辑。参考图5进一步详细地描述本地io模块110的该一个或多个电路。sram系统100接收关于作为预定义操作的读取操作或写入操作之一的用户输入。在sram104上发起预定义操作之前,预充电逻辑(在图3中示为pch_top和pch_bot)将全局位线和局部位线中的每一条充电到预定义电压电平。根据用户输入,位线驱动器(图3中的bl驱动器)将数据放置在全局位线上。根据对于第一存储体(存储体0)或第二存储体(存储体1)之一的选择来放置数据。存储体选择逻辑例如包括多路复用器,被配置为基于存储体的地址选择第一存储体(存储体0)或第二存储体(存储体1)之一。图3中提到的读出放大器(图3中的读出放大器(senseamp))读出全局位线上的数据并将数据转移到输出。在示例性实施例中,图3中示出的sram302通过使用单个本地io模块110和两个划分模块106(第一存储体(存储体0)中的第一划分模块106和第二存储体(存储体1)中的第二划分模块106)变换为4-存储体sram。例如,该4-存储体sram包括:第一存储体(存储体0),其包括位单元阵列0和位单元阵列1;以及第二存储体(存储体1),其包括位单元阵列2和位单元阵列3。图4示出了根据示例性实施例的sram的划分模块中包括的选择模块。参考图4,在示例性实施例中,选择模块108包括一个或多个选择逻辑。该一个或多个选择逻辑包括具有存储体选择逻辑的列选择逻辑。选择逻辑从多个位单元阵列中选择一个位单元阵列,以执行作为预定义操作的读取操作或写入操作之一。列选择逻辑包括:顶部读取列选择逻辑(rcolsel_top)(参见图3),用于在位线的层级中在读取操作期间从顶侧位单元阵列的多条局部位线中选择一条局部位线;顶部写入列选择逻辑(wcolsel_top)(参见图3),用于在写入操作期间从顶侧位单元阵列中的多条局部位线中选择一条局部位线;底部读取列选择逻辑(rcolsel_bot)(参见图3),用于在读取操作期间从底侧位单元阵列中的多条局部位线中选择一条局部位线;以及底部写入列选择逻辑(wcolsel_bot)(参见图3),用于在写入操作期间从底部位单元阵列的多条局部位线中选择一条局部位线。基于存储体地址,存储体选择逻辑(bnk_sel)选择访问存储体之一(存储体0或存储体1)以执行作为预定义操作的读取操作,或者选择访问存储体之一(存储体0或存储体1)以执行作为预定义操作的写入操作。该一个或多个选择逻辑用于执行sram104中的读取操作或写入操作之一。读取操作和写入操作中的每一个由用户选择,并且由本地io模块110的该一个或多个电路执行。图5示出了根据示例性实施例的具有分层级的局部位线和全局位线的sram104。sram104中的局部位线(示出为blt_t、blc_t、blt_b和blc_b)连接到位单元阵列0、位单元阵列1、位单元阵列2和位单元阵列3(在图5中从下到上)中的每一个。第一存储体(存储体0)和第二存储体(存储体1)中的每一个包括划分模块106。每个划分模块106包括两个选择模块108,其基于列选择逻辑将局部位线连接到全局位线,全局位线示出为存储体1中的gblt_t和gblc_t中的每一个以及存储体0中的gblt_b和gblc_b中的每一个。本地io模块110包括如上所述的位线驱动器(bl_drvr)和读出放大器(sa)电路。在发起读取操作或写入操作之一之前,通过本地io模块110的预充电模块(pch和均衡器模块)将局部位线和全局位线充电到预定义电平。仍然参考图5,在示例性实施例中,如果用户选择写入操作作为预定义操作,则数据来自数据输入(di),并且1位信息的补码进入cdi。在sram104内部产生di的补码(cdi)。位单元阵列0、位单元阵列1、位单元阵列2和位单元阵列3中的每一个的局部位线通过选择模块108连接到全局位线。位线连接到选择模块108的存储体选择逻辑,并选择顶侧存储体(存储体1)或底侧存储体(存储体0)之一来写入数据。如果选择模块108选择底侧存储体(存储体0),则本地io模块110的位线驱动器将数据转移到底侧存储体(存储体0)的全局位线上。在数据转移之后,全局位线连接到选择模块108。由于操作是写入操作,因此选择模块108的wcolsel操作(参见图3)基于对位单元阵列0或位单元阵列1之一的选择将数据转移到连接到位单元阵列的一条或多条位线。然后,位单元阵列0或位单元阵列1之一从全局位线接收数据,并将接收的数据存储在位单元阵列0或位单元阵列1之一中。存储在位单元阵列0或位单元阵列1之一中的数据将被转移到局部位线。从局部位线开始,数据将基于选择模块108的rcolsel和位单元阵列选择被转移到全局位线。然后,全局位线上的数据可以由本地io模块110的读出放大器读出,然后发送到sram104的输出。于是将来自第一存储体(存储体0)或第二存储体(存储体1)之一的数据传递到读出放大器。读出放大器读出数据并将数据转移到sram104的输出中。图5还示出了在位单元阵列0、位单元阵列1、位单元阵列2和位单元阵列3中的每一个之间共享单个本地io模块110。选择模块108的预定义选择逻辑基于预定义选择逻辑实现共享。预定义选择逻辑从位单元阵列之一中的多条位线中选择一条位线,并且本地io模块110对由选择模块108选择的位线执行预定义操作。与常规sram系统和常规sram相比,sram系统100和sram104提供与虚拟体化架构相关联的改进。例如,基于10nm技术的单端口sram设计,sram系统100和sram104可以提供约5%至约15%范围内的动态功率节省,如下表1所示。此外,sram104的虚拟体化架构有助于在对系统成本和系统性能的影响最小的情况下实现低功率系统。实例动态功率的降低面积损失ln101pp_mc_ra1_hs_lvt_4096x80m8b2c115.80%7%ln101pp_mc_ra1_hs_lvt_2048x80m8b2c115.30%12%ln101pp_mc_ra1_hs_lvt_1024x80m8b2c114.10%18%表1图6示出了针对常规sram和根据示例性实施例的sram104的存储器大小(以kb为单位)(在x轴上)相对于动态功率(以μw/mhz为单位)(在y轴上)的图形图示。如图6所示,与常规sram相比,sram104消耗更少的功率。图7示出了根据示例性实施例的在sram中提供虚拟体化架构的方法700。参考图7,所示方法700用于设计sram104。方法700包括将至少一个存储体划分为至少两个位单元阵列(框702)。例如,参考图2,第一存储体202(存储体0)被划分为第一位单元阵列206和第二位单元阵列208,并且第二存储体204(存储体1)被划分为第三位单元阵列210和第四位单元阵列212。至少一个位单元阵列中每一个包括至少一条位线。在框704处,将至少一个划分模块106连接在两个划分的位单元阵列(例如,参考图2,第一存储体202(存储体0)中的第一位单元阵列206和第二位单元阵列208以及第二存储体204(存储体1)中的第三位单元阵列210和第四位单元阵列212)之间。该至少一个划分模块106通过选择模块108根据用户提供的位单元阵列地址选择两个划分的位单元阵列之一。在框706处,将本地io模块110连接到至少一个选择模块108。本地io模块110根据本地io模块110的一个或多个预定义操作产生输出。图8示出了根据示例性实施例的在sram中执行一个或多个预定义操作的方法800。sram可以是例如sram104。在框802处,sram104接收用于在sram104中执行一个或多个预定义操作的输入。在框804处,sram104中的选择模块108从多个位单元阵列中选择一个位单元阵列。根据一个或多个选择逻辑来执行该选择。在框806处,本地io模块110根据该选择来执行一个或多个操作。方法700和800可以用sram系统100和sram104实现。因此,为了便于解释,在此省略先前描述的元件和工艺的进一步描述。本文中公开的示例性实施例可以使用在至少一个硬件设备上运行的至少一个软件程序来实现,并且用于控制示例性实施例的元件。如本发明的领域中通常的做法,以功能块、单元和/或模块来描述并在附图中示出示例性实施例。本领域技术人员应意识到,这些块、单元和/或模块通过诸如逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等电子(或光学)电路来物理实现,其可以使用基于半导体的制造技术或其它制造技术来形成。在块、单元和/或模块由微处理器等实现的情况下,可以使用软件(例如,微代码)对它们进行编程以执行本文中讨论的各种功能,并且可以可选地由固件和/或软件驱动。备选地,每个块、单元和/或模块可以通过专用硬件来实现,或实现为执行一些功能的专用硬件和执行其他功能的处理器(例如,一个或多个经编程的微处理器和相关联的电路)的组合。本领域技术人员应认识到,本发明的方案可以体现为系统、方法或计算机程序产品。从而,本发明的方案可采取全硬件实施例、全软件实施例(包括固件、驻留软件、微代码等)或组合了软硬件方面的实施例的形式,它们都可在本文被统称为“电路”、“模块”或“系统”。此外,本发明的方案可以采用在具有计算机可读程序代码的一个或多个计算机可读介质中包含的计算机程序化产品的形式。本文中,术语“电路”可以指模拟电路或数字电路。在数字电路的情况下,数字电路可以硬连线以执行电路的对应任务,例如执行指令以执行电路的对应任务的数字处理器。这种处理器的示例包括专用集成电路(asic)和现场可编程门阵列(fpga)。尽管已经参考本发明的示例性实施例具体示出和描述了本发明,但是本领域普通技术人员应理解,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,可以进行形式和细节上的多种改变。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1