用于将经屏蔽数据写入到缓冲器的设备及方法

文档序号:10475986阅读:431来源:国知局
用于将经屏蔽数据写入到缓冲器的设备及方法
【专利摘要】本发明揭示用于将数据写入到缓冲器的存储器阵列(74)的设备及方法。一种此类设备可包含:多路复用器(98),其接收数据字(DW0到DWX)及数据屏蔽(DM)。所述多路复用器(98)可改变所述数据字(DW0到DWX)的顺序以将经屏蔽的数据字(DW0到DWX)分组在一起及将未经屏蔽的数据字(DW0到DWX)分组在一起。所述多路复用器(98)还可改变所述数据屏蔽(DM)的顺序以将屏蔽位分组在一起及将未屏蔽位分组在一起。所述设备可使用具有所述改变顺序的所述数据字(DW0到DWX)及具有所述改变顺序的所述数据屏蔽(DM)以将数据写入到所述存储器阵列(74)。
【专利说明】
用于将经屏蔽数据写入到缓冲器的设备及方法
技术领域
[0001] 本发明的实施例大体上设及半导体装置领域。更特定来说,本发明的实施例可提 供用于将经屏蔽数据写入到缓冲器的一或多种技术及装置。
【背景技术】
[0002] 计算机系统通常用于众多配置中W提供多种计算功能。被分派开发计算机系统及 系统组件的任务的设计工程师通常考虑处理速度、系统灵活性及大小约束。计算机系统通 常包含可用于存储数据(例如,程序及用户数据)且可由其它系统组件(例如处理器或外围 装置)存取的多个存储器装置。此类存储器装置可包含易失性及非易失性存储器装置。
[0003] 通常,存储器装置(例如动态随机存取存储器(DRAM))包含被分为多个存储器库或 其它划分的存储器阵列。基于由存储器装置在操作期间所接收到的寻址信息,可将数据存 储到存储器阵列的适当库中且可从其中读出所述数据。举例来说,在DRAM的操作期间,可将 激活(例如,有效)命令发送到存储器阵列。激活命令激活存储器阵列的行。此外,可将列选 择命令发送到存储器阵列。列选择命令选择存储器阵列的列。在激活行及选择列的情况下, 可从存储器阵列的所选择存储器单元检索数据。
[0004] 在某些架构中,可将存储器装置或存储器装置的部分用作缓冲器。在将数据写入 到缓冲器时,在不使用行、列及/或库选择信号的情况下写入数据可为有益的。因此,数据按 预定顺序被供应及写入到存储器装置。接着,可按相同预定顺序从存储器装置读取数据,因 此维持先进先出(FIFO)顺序。然而,当待写入到存储器装置的数据包含经屏蔽数据及未经 屏蔽数据时,经屏蔽数据将被忽视且不被写入到存储器装置。不幸地,传统存储器架构无法 在屏蔽非待写入的数据的同时,按预定顺序顺杨地写入到用作缓冲器的存储器装置。
[0005] 因此,本发明的实施例可针对上文陈述的问题中的一或多者。
【附图说明】
[0006] 图1说明根据本发明的实施例的可包含缓冲器的基于处理器的系统的框图;
[0007] 图2说明根据本发明的实施例的可包含缓冲器的状态机引擎的框图;
[000引图3说明根据本发明的实施例的可操作为缓冲器的存储器的框图;
[0009] 图4说明根据本发明的实施例的可操作为缓冲器的存储器的示意图;及
[0010] 图5说明根据本发明的实施例的用于将数据写入到存储器装置的存储器阵列的方 法的流程图。
【具体实施方式】
[0011] 如下文将更详细描述,可使用多路复用器W将未经屏蔽数据分组在一起及选择待 写入到存储器阵列的数据。举例来说,多路复用器可接收数据字(data word)及数据屏蔽 (data mask)。多路复用器可改变数据字的顺序W将经屏蔽数据字分组在一起且将未经屏 蔽数据字分组在一起。多路复用器也可改变数据屏蔽的顺序W将屏蔽位分组在一起且将未 屏蔽位分组在一起。设备可使用具有改变顺序的数据字及具有改变顺序的数据屏蔽w将数 据写入到存储器阵列。举例来说,可将具有改变顺序的数据字及具有改变顺序的数据屏蔽 从多路复用器提供到选择待写入到存储器阵列的数据的额外多路复用器。
[0012]现在将参考所述图式,图1说明整体上由参考数字10指定的基于处理器的系统的 实施例。系统10可为多种类型中的任一者,例如桌上型计算机、膝上型计算机、传呼器、蜂窝 电话、个人记事簿、便携式音频播放器、控制电路、相机等等。系统10还可为网络节点,例如 路由器、服务器或客户端(例如,先前描述的计算机类型中的一者)。系统10可为某个其它种 类的电子装置,例如复印机、扫描仪、打印机、游戏控制台、电视机、机顶视频分配器或记录 系统、电缆箱、个人数字媒体播放器、工厂自动化系统、汽车计算机系统或医疗装置。用于描 述系统的运些各种实例的术语(如本文中使用的许多其它术语)可共享一些参照物,且因而 不应根据所列出的其它项加 W狭义地理解。
[oou]在基于处理器的装置(例如系统10)中,处理器12(例如微处理器)控制系统10中的 系统功能及请求的处理。此外,处理器12可包含共享系统控制的多个处理器。处理器12可直 接或间接禪合到系统10中的元件中的每一者,使得处理器12通过执行可被存储于系统10内 或系统10外部的指令而控制系统10。
[0014] 在所说明的实施例中,系统10包含可在处理器12的控制下操作的状态机引擎14。 然而,在其它实施例中,系统10可不包含状态机引擎14。如本文中所使用,状态机引擎14指 代单个装置(例如,单忍片)。状态机引擎14可采用任何自动机理论。举例来说,状态机引擎 14可采用数个状态机架构中的一者,包含(但不限于)Mealy架构、Moore架构、有限状态机 (FSM)、确定性FSM(DFSM)、位并行状态机(BPSM)等等。虽然可使用多种架构,但出于论述目 的,本申请案引用FSM。然而,所属领域的技术人员应了解,可使用多种状态机架构中的任一 者来采用所描述的技术。
[0015] 如下文将进一步论述,状态机引擎14可包含数个(例如,一或多个)有限状态机 (FSM)晶格(例如,状态机引擎14的核屯、)。出于本申请案的目的,术语"晶格"指代元件(例 如,布尔单元、计数器单元、状态机元件、状态转变元件(STE))的组织框架(例如,路由矩阵、 路由网络、帖)。此外,"晶格"可具有任何合适的形状、结构或层级组织(例如,栅格、立方形、 球形、级联)。每一 FSM晶格可实施各自并行接收及分析相同数据的多个FSM。此外,FSM晶格 可被布置成群组(例如,集群),使得FSM晶格的集群可并行分析相同输入数据。此外,状态机 引擎14的FSM晶格的集群可被布置在层级结构中,其中可将来自层级结构的较低等级上的 状态机晶格的输出用作到较高等级上的状态机晶格的输入。通过经由层级结构使状态机引 擎14的并行FSM晶格的集群串联地级联,可分析(例如,评估、捜索等等)日益复杂的模式。
[0016] 此外,基于状态机引擎14的层级并行配置,可将状态机引擎14用于系统中的利用 高处理速度的复杂数据分析(例如,模式辨识)。例如,本文中描述的实施例可被并入具有千 兆字节/秒的处理速度的系统中。因此,利用状态机引擎14,可迅速分析来自高速存储器装 置或其它外部装置的数据。状态机引擎14可根据若干准则(例如,捜索项)大约同时(例如, 在单个装置循环期间)分析数据流。状态机引擎14的等级上的FSM集群内的FSM晶格中的每 一者可各自大约同时接收来自数据流的相同捜索项,且并行FSM晶格中的每一者可W处理 准则确定所述项是否将状态机引擎14推进到下一状态。状态机引擎14可根据相对较大数目 个准则(例如,大于100个、大于1000个或大于10,000个准则)分析项。因为FSM晶格并行操 作,所w其可将准则应用于具有相对较高带宽的数据流(例如,大于或大体上等于千兆字 节/秒的数据流)而不使数据流减慢。
[0017] 在一个实施例中,状态机引擎14可经配置W辨识(例如,检测)数据流中的大量模 式。例如,可利用状态机引擎14W检测用户或其它实体可能希望分析的多种类型的数据流 中的一或多者中的模式。举例来说,状态机引擎14可经配置W分析经由网络接收到的数据 流,例如经由因特网接收到的封包或经由蜂窝网络接收到的语音或数据。在一个实例中,状 态机引擎14可经配置W分析垃圾邮件或恶意软件的数据流。可将数据流接收为串行数据 流,其中W具有意义的顺序(例如W时间、词汇或语义显著的顺序)接收数据。或者,数据流 可被并行或无序接收,且接着通过(例如)对经由因特网接收到的封包进行重新排序而转换 为串行数据流。在一些实施例中,数据流可串行地呈现项,但可并行接收表达所述项中的每 一者的位。可自系统10外部的源接收数据流,或可通过询问存储器装置(例如存储器16)及 由存储于存储器16中的数据形成数据流而形成数据流。在其它实例中,状态机引擎14可经 配置W辨识拼写某一字词的字符序列、指定基因的遗传基础对(genetic base pair)序列、 形成图像的一部分的图片或视频文件中的位序列、形成程序的一部分的可执行文件中的位 序列或形成歌曲或口语词组的一部分的音频文件中的位序列。待分析的数据流可包含呈二 进制格式或其它格式(例如,十进制、ASCII等等)的多个数据位。所述流可编码具有单个数 字或多个数字(例如,若干二进制数字)的数据。在某些实施例中,待分析的数据流可包含经 屏蔽数据及未经屏蔽数据。在此类实施例中,经屏蔽数据可希望被忽视,而未经屏蔽数据可 希望被分析。
[0018] 如应了解,系统10可包含存储器16。存储器16可包含易失性存储器,例如动态随机 存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步DRAM(SDRAM)、双倍数据速率DRAM (孤R SDRAM)、DDR2SDRAM、孤R3SDRAM等等。存储器16也可包含非易失性存储器,例如只读存 储器(ROM)、PC-RAM、娃-氧化物-氮化物-氧化物-娃(S0N0S)存储器、金属-氧化物-氮化物- 氧化物-娃(MONOS)存储器、基于多晶娃浮动栅的存储器、及/或结合易失性存储器使用的各 种架构的其它类型的快闪存储器(例如,NAND存储器、NOR存储器等等)。存储器16可包含可 提供待由状态机引擎14分析的数据的一或多个存储器装置,例如DRAM装置。如本文中所使 用,术语"提供'一般可指代弓恃、输人、插人、发送、传送、发射、产生、给予、输出、放置、写入 等等。此类装置可称为或包含固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、紧凑式 快闪(CF)卡或任何其它合适的装置。此外,应了解,此类装置可经由任何合适的接口(例如 通用串行总线(USB)、外围组件互连(PCI)、PCIExpress(PCI-E)、小型计算机系统接口 (SCSIKIE邸1394(Firewire)或任何其它合适的接口)禪合到系统10。为促进存储器16(例 如快闪存储器装置)的操作,系统10可包含存储器控制器(未说明)。如应了解,存储器控制 器可为独立装置或其可与处理器12成一体。此外,系统10可包含外部存储装置18,例如磁性 存储装置。外部存储装置也可将输入数据提供到状态机引擎14。
[0019] 系统10可包含数个额外元件。例如,可使用编译器20W配置(例如,编程)状态机引 擎14。输入装置22也可禪合到处理器12W允许用户将数据输入到系统10中。例如,可使用输 入装置22W将数据输入到存储器16中W供状态机引擎14随后分析。例如,输入装置22可包 含按钮、切换元件、键盘、光笔、尖笔、鼠标及/或语音辨识系统。输出装置24(例如显示器)也 可禪合到处理器12。举例来说,显示器24可包含LCD、CRT、L邸及/或音频显示器。所述系统也 可包含用于介接网络(例如因特网)的网络接口装置26,例如网络接口卡(NIC)。如应了解, 取决于系统10的应用,系统10可包含许多其它组件。
[0020] 现在参看图2,说明状态机引擎14的实施例(例如,单忍片上的单个装置)。如先前 所描述,状态机引擎14经配置W经由数据总线接收来自源(例如存储器16)的数据。在所说 明的实施例中,数据可通过总线接口(例如第Ξ代双倍数据速率(DDR3)总线接口28)被发送 到状态机引擎14。孤R3总线接口 28可能够W大于或等于千兆字节/秒的速率交换(例如,提 供及接收)数据。此数据交换速率可大于状态机引擎14分析数据的速率。如应了解,取决于 待分析的数据源,总线接口 28可为用于将往返于数据源的数据交换到状态机引擎14的任何 合适的总线接口,例如NAND快闪接口、外围组件互连(PCI)接口、千兆位媒体独立接口 (GMII)等等。如先前所描述,状态机引擎14包含经配置W分析数据的一或多个FSM晶格30。 每一FSM晶格30可被分为两个半晶格。在所说明的实施例中,每一半晶格可包含24K个STE, 使得晶格30包含48K个STE。晶格30可包括任何可期望数目个STE。此外,虽然仅说明一个FSM 晶格30,但状态机引擎14可包含多个FSM晶格30。
[0021] 可在总线接口 28处接收待分析的数据并通过数个缓冲器及缓冲器接口将数据提 供到FSM晶格30。在所说明的实施例中,数据路径包含数据缓冲器32、指令缓冲器33、过程缓 冲器34及排间(IR(inter-rank))总线及过程缓冲器接口 36。如可了解,数据缓冲器32、指令 缓冲器33、及/或过程缓冲器34可包含存储器阵列。数据缓冲器32经配置W接收并暂时存储 待分析的数据。在一个实施例中,存在两个数据缓冲器32(数据缓冲器A及数据缓冲器B)。可 将数据存储在所述两个数据缓冲器32中的一者中,而从另一数据缓冲器32清空数据W供 FSM晶格30分析。总线接口 28可经配置W将待分析的数据提供到数据缓冲器32直到数据缓 冲器32已满为止。在数据缓冲器32已满之后,总线接口 28可经配置W自由地用于其它用途 (例如,提供来自数据流的其它数据直到数据缓冲器32可用于接收待分析的额外数据)。在 所说明的实施例中,数据缓冲器32可各自为32千字节。指令缓冲器33经配置W经由总线接 口 28接收来自处理器12的指令,例如对应于待分析的数据的指令及对应于配置状态机引擎 14的指令。
[0022] IR总线及过程缓冲器接口 36可促进将数据提供到过程缓冲器34。可使用IR总线及 过程缓冲器接口 36W确保FSM晶格30按顺序处理数据。IR总线及过程缓冲器接口 36可协调 数据、时序数据、封装指令等等的交换,使得正确地接收并分析数据。一般来说,IR总线及过 程缓冲器接口 36允许使用装置排中的多个装置。所述排装置中的多个装置共享数据,使得 所有所述多个装置按正确的顺序接收全部共享数据。举例来说,多个物理装置(例如,状态 机引擎14、忍片、分离装置)可被布置成排且可经由IR总线及过程缓冲器接口 36向彼此提供 数据。出于本申请案的目的,术语"排"指代连接到相同忍片选择的一组状态机引擎14。在所 说明的实施例中,IR总线及过程缓冲器接口 36可包含8位数据总线。
[0023] 在所说明的实施例中,状态机引擎14也包含解压缩器38及压缩器40, W帮助将数 据提供到状态机引擎14且从状态机引擎14提供数据。如可了解,压缩器40及解压缩器38可 使用相同的压缩算法W简化软件及/或硬件设计;然而,压缩器40及解压缩器38也可使用不 同的算法。通过压缩数据,可最小化总线接口28(例如,DDR3总线接口)利用时间。在本实施 例中,可使用压缩器40W压缩状态向量数据、配置数据(例如,编程数据)及由FSM晶格30分 析之后获得的匹配结果数据。在一个实施例中,可停用(例如,关闭)压缩器40及解压缩器 38,使得流动到压缩器40及解压缩器38及/或从压缩器40及解压缩器38流动的数据并未被 修改(例如,未经压缩也未经解压缩)。
[0024] 压缩器40及解压缩器38也可经配置W处置多个数据集且每一数据集可具有变化 长度。通过"填补"压缩数据且包含关于每一压缩区域何时结束的指示符,压缩器40可通过 状态机引擎14提高总体处理速度。
[0025] 状态机引擎14包含状态向量系统41,状态向量系统41具有状态向量高速缓冲存储 器42、状态向量存储器缓冲器44、状态向量中间输入缓冲器46及状态向量中间输出缓冲器 48。如可了解,状态向量高速缓冲存储器42、状态向量存储器缓冲器44、状态向量中间输入 缓冲器46、及/或状态向量中间输出缓冲器48可包含存储器阵列。可使用状态向量系统41W 存储FSM晶格30的多个状态向量,将状态向量移动到状态机引擎14上或从状态机引擎14将 状态向量移出,且将状态向量提供到FSM晶格30 W使FSM晶格30还原到对应于所提供的状态 向量的状态。举例来说,每一状态向量可被暂时存储在状态向量高速缓冲存储器42中。即, 可存储每一 STE的状态,使得所述状态可经还原且随后用于进一步分析,同时释放STEW分 析新数据集(例如,捜索项)。例如,如同典型高速缓冲存储区,状态向量高速缓冲存储器42 允许存储状态向量W供(此处)FSM晶格30快速检索及使用。在所说明的实施例中,状态向量 高速缓冲存储器42可存储多达512个状态向量。每一状态向量包括FSM晶格30的STE的状态 (例如,激活或未经激活)及计数器的动态(例如,当前)计数。
[0026] 如可了解,可在排中的不同状态机引擎14(例如,忍片)之间交换状态向量数据。可 在不同状态机引擎14之间交换状态向量数据W用于W下各种目的,例如:同步化FSM晶格30 的STE的状态及计数器的动态计数;跨多个状态机引擎14执行相同功能;跨多个状态机引擎 14重现结果;跨多个状态机引擎14级联结果;存储用W分析通过多个状态机引擎14级联的 数据的STE的状态的历史及计数器的动态计数等等。此外,应注意,在状态机引擎14内,可使 用状态向量数据W快速地还原状态向量。举例来说,可使用状态向量数据将STE的状态 及计数器的动态计数还原到初始化状态(例如,捜索新捜索项);将STE的状态及计数器的动 态计数还原到先前状态(例如,捜索先前捜索的捜索项);及将STE的状态及计数器的动态计 数改变为经配置用于级联配置(例如,W级联捜索来捜索捜索项)。在某些实施例中,可将状 态向量数据提供到总线接口 28,使得可将状态向量数据提供到处理器12(例如,用于分析状 态向量数据、重配置状态向量数据W应用修改、重配置状态向量数据W提高效率等等)。
[0027] 举例来说,在某些实施例中,状态机引擎14可将经高速缓冲存储的状态向量数据 (例如,由状态向量系统41存储的数据)从FSM晶格30提供到外部装置。外部装置可接收状态 向量数据,修改状态向量数据并将经修改的状态向量数据提供到状态机引擎14W使FSM晶 格30还原(例如,复位、初始化)。因此,外部装置可修改状态向量数据,使得状态机引擎14可 按需要略过(例如,跳过)状态。
[0028] 状态向量高速缓冲存储器42可接收来自任何合适的装置的状态向量数据。举例来 说,状态向量高速缓冲存储器42可接收来自FSM晶格30、另一 FSM晶格30(例如,经由IR总线 及过程缓冲器接口 36)、解压缩器38等等的状态向量。在所说明的实施例中,状态向量高速 缓冲存储器42可经由状态向量存储器缓冲器44接收来自其它装置的状态向量。此外,状态 向量高速缓冲存储器42可将状态向量数据提供到任何合适的装置。举例来说,状态向量高 速缓冲存储器42可将状态向量数据提供到状态向量存储器缓冲器44、状态向量中间输入缓 冲器46及状态向量中间输出缓冲器48。
[0029] 可结合状态向量高速缓冲存储器42利用额外缓冲器(例如状态向量存储器缓冲器 44、状态向量中间输入缓冲器46及状态向量中间输出缓冲器48) W适应状态向量的快速检 索及存储,同时通过状态机引擎14处理具有交错封包的分离数据集。在所说明的实施例中, 状态向量存储器缓冲器44、状态向量中间输入缓冲器46及状态向量中间输出缓冲器48中的 每一者可经配置W暂时存储一个状态向量。可使用状态向量存储器缓冲器44W接收来自任 何合适的装置的状态向量数据并将状态向量数据提供到任何合适的装置。举例来说,可使 用状态向量存储器缓冲器44 W从FSM晶格30、另一FSM晶格30 (例如,经由IR总线及过程缓冲 器接口 36 )、解压缩器38及状态向量高速缓冲存储器42接收状态向量。作为另一实例,可使 用状态向量存储器缓冲器44W将状态向量数据提供到(例如,其它FSM晶格30的)IR总线及 过程缓冲器接口 36、压缩器40及状态向量高速缓冲存储器42。
[0030] 同样地,可使用状态向量中间输入缓冲器46W接收来自任何合适的装置的状态向 量数据并将状态向量数据提供到任何合适的装置。举例来说,可使用状态向量中间输入缓 冲器46W接收来自FSM晶格30(例如,经由IR总线及过程缓冲器接口 36)、解压缩器38及状态 向量高速缓冲存储器42的状态向量。作为另一实例,可使用状态向量中间输入缓冲器46W 将状态向量提供到FSM晶格30。此外,可使用状态向量中间输出缓冲器48W接收来自任何合 适的装置的状态向量并将状态向量提供到任何合适的装置。举例来说,可使用状态向量中 间输出缓冲器48 W接收来自FSM晶格30及状态向量高速缓冲存储器42的状态向量。作为另 一实例,可使用状态向量中间输出缓冲器48 W将状态向量提供到FSM晶格30(例如,经由IR 总线及过程缓冲器接口 36)及压缩器40。
[0031] 一旦由FSM晶格30产生所关注结果,就可将匹配结果存储在匹配结果存储器50中。 举例来说,可将指示匹配(例如,检测到所关注模式)的"匹配向量"存储在匹配结果存储器 50中。举例来说,接着可将匹配结果发送到匹配缓冲器52W经由总线接口 28传输到处理器 12。如先前描述,可压缩匹配结果。如可了解,匹配缓冲器52可包含存储器阵列。
[0032] 也可在状态机引擎14中提供额外寄存器及缓冲器。例如,状态机引擎14可包含控 制及状态寄存器54。此外,可提供还原及程序缓冲器56W最初用于配置FSM晶格30的STE或 在分析期间还原FSM晶格30中的STE的状态。类似地,也可提供保存及修复映射缓冲器58W 存储保存及修复映射W供设定及使用。如可了解,还原及程序缓冲器56及/或保存及修复映 射缓冲器58可包含存储器阵列。
[0033] 现参看图3,说明可操作为缓冲器的存储器61的框图。举例来说,存储器61可操作 为状态机引擎14的缓冲器(例如,数据缓冲器32、匹配缓冲器52、还原及程序缓冲器56、保存 及修复映射缓冲器58等等)。在某些实施例中,存储器61可包含充当缓冲器的存储器16。在 所说明的实施例中,存储器61包含接收待写入到存储器61的串行数据的数据输入/输出节 点化Q) 60。DQ 60的每一数据输入/输出节点化Q)接收串行数据。此外,存储器61可包含任何 合适数目个DQ 60。举例来说,在某些实施例中,存储器61可包含2、4、8、16、32、64或更多个 DQ 60。存储器61还包含数据屏蔽节点(DM)62,数据屏蔽节点(DM)62接收对应于由DQ 60接 收到的串行数据的串行屏蔽数据(下文称为"数据屏蔽"或DM数据)。
[0034] 存储器61可包含用于将由DQ 60接收到的数据写入到存储器阵列的某些电路。举 例来说,电路可经配置W经由DQ 60及DM 62接收串行数据,将串行数据转换为并行数据字 (DW)及并行DM数据,改变DW的顺序W将经屏蔽DW分组在一起及将未经屏蔽DW分组在一起, 改变DM数据的顺序W将屏蔽位分组在一起及将未屏蔽位分组在一起,及使用具有改变顺序 的DW及具有改变顺序的DM数据W基于由电路接收未经屏蔽DW的顺序而仅将未经屏蔽DW写 入到存储器阵列。
[0035] 具体来说,存储器61的电路可包含数据接口 64,数据接口 64接收DQ数据及DM数据, 处理DQ数据及DM数据,且分别在经修改DW接口 66及经修改DM接口 68上输出经修改DW数据及 经修改DM数据。数据接口64将由DQ 60及DM 62接收到的串行数据转换为并行数据。在某些 实施例中,DQ 60中的每一DQ可对应于用W载送单个数据字(DW)的一组并行数据总线。DW中 的每一 DW可包含2、4、8、16、32或更多位,其中每一位被提供在所述组并行数据总线的单独 数据总线上。此外,DM 62可对应于用W载送并行DM数据的一组并行数据总线。
[0036] 在数据接口64将由DQ 60及DM 62接收到的串行数据转换为并行数据(即,DW及并 行DM数据)之后,可使用数据接口 64W改变DW的顺序W通过将经屏蔽DW分组在一起及将未 经屏蔽DW分组在一起而形成经修改DW数据。此外,数据接口 64可改变并行DM数据的顺序W 通过将屏蔽位分组在一起及通过将未屏蔽位分组在一起而形成经修改DM数据。
[0037] 存储器61的电路也可包含输入/输出(I/O)选通DM屏蔽逻辑70,输入/输出(I/O)选 通DM屏蔽逻辑70接收经修改DW数据及经修改DM数据且使用经修改DW数据及经修改DM数据 W在接口 72上提供数据W供存储在存储器阵列74中。如所说明,存储器阵列74包含多个存 储器库76、78、80及82。在某些实施例中,存储器阵列74可包含1、2、4、8、16、32或更多个存储 器库。如应了解,存储器库76、78、80及82中的每一者包含多个存储器单元。如本文中所使 用,嘴路"可指代数据接口 64、10选通DM屏蔽逻辑70、经修改DW接口 66、经修改DM接口 68、数 据总线或其任何组合。
[0038] 参看图4,说明可操作为缓冲器的存储器61的示意图。如上文所论述,存储器61包 含接收待写入到存储器61的串行数据的DQ 60及DM 62。在所说明的实施例中,DQ60包含第 一DQ(DQ0)84、第二DQ(DQ1)86及额外DQ直到最后DQ(DQX)88,其中X+1表示存储器61的DQ 60 的总数目。
[0039] 此外,数据接口 64包含缓冲器90(例如,用W将输入电压电平转换为互补金属氧化 物半导体(CMOS)电压电平)及用W将由DQ 60及DM 62接收到的串行数据转换为并行数据的 串/并转换器92。具体来说,将经串行接收的DQ数据转换为并行DW,且将经串行接收的DM转 换为并行DM数据。此外,经由DW接口 100、102、104及并行DM数据接口 96将DW及并行DM数据并 行提供到多路复用器(MUX)98。使用MUX 98基于并行DM数据中的屏蔽位的顺序来改变DW的 顺序。如所说明,DW包含第一 DW(DWO)、第二DW(DWl)及额外DW直到最后DW(DWX),其中X+1表 示DW的总数目。此外,每一DW对应于一个DQ。如可了解,每一DW接口 100、102、104可包含对应 于DW的大小的数目的数据总线。举例来说,每一DW接口 100、102、104的数据总线的数目可位 2、4、8、16、32、64等等。此外,并行DM数据接口 96包含对应于DW的数目的数据总线的数目。举 例来说,并行DM数据接口 96的数据总线的数目可为4、8、16、32等等。
[0040] 在存储器循环的操作期间,并行DM数据接口96的每一数据总线经配置W载送指示 DW的对应DW经屏蔽或未经屏蔽的单一位。表1提供DW及并行DM数据的实例,所述DW及并行DM 数据可被提供到各自具有八个位宽(例如,八个数据总线)的八个DW接口的存储器61中的 MUX 98〇
[0041] 表 1
[0042]
[0043] 在此实例中,并行DM数据内的屏蔽位"Γ可指示对应数据将被屏蔽,且并行DM数据 内的"0"屏蔽位可指示对应数据将未被屏蔽,然而,在其它实例中,并行DM数据内的屏蔽位 "Γ可指示对应数据将未被屏蔽,且并行DM数据内的屏蔽位"0"可指示对应数据将被屏蔽。 此外,在此实例中,并行DM数据的最低有效位可对应于DW0,而并行DM数据的最高有效位可 对应于DW7。在其它实例中,并行DM数据的最低有效位可对应于DW7,而并行DM数据的最高有 效位可对应于DW0。因此,表2说明基于此实例中的并行DM数据的屏蔽位,哪些DW被屏蔽及哪 些DW未被屏蔽。
[0044] 表 2
[0045]
[0046]
[0047] MUX 98包含经配置W并行接收DW及并行DM数据的多个输入。此夕hMUX 98经配置 W通过将经屏蔽DW分组在一起及通过将未经屏蔽DW分组在一起而改变DW的顺序,及通过将 屏蔽位分组在一起及通过将未屏蔽位分组在一起而改变并行DM数据的顺序。尽管MUX 9則尋 经屏蔽DW分组在一起,然而MUX 98可忽略对应于经屏蔽DW的数据且仅识别相应数据为经屏 蔽数据。
[004引 MUX 98包含多个输出106、108、110,输出106、108、110经配置W将具有改变顺序的 DW作为经修改DW数据输出到经修改DW接口 66,且将具有改变顺序的并行DM数据作为经修改 DM数据输出到经修改DM接口 68。如下文表3中所说明,对于表1及2中说明的先前实例,运意 味着来自表2的第SDW(DW2)、第四DW(DW3)、第六DW(DW5)及第八DW(DW7)将分别被输出为经 修改DW数据中的第一DW(DW0)、第二DW(DW1)、第SDW(DW2)及第四DW(DW3)。如可了解,经修 改DM接口68的每一数据总线经配置W载送指示DW 66的对应DW被屏蔽或未被屏蔽的单一 位。
[0049]表 3 [(K)加 ]
[0051 ]如表3的实例中所说明,将未经屏蔽DW分组到DW0至化W3中,而将经屏蔽DW分组到 DW4至化W7。此外,将DM数据的未屏蔽位分组到位0到3,且将DM数据的屏蔽位分组到位4到7。 因此,经修改DM数据的屏蔽位仍对应于经修改DW数据的DW,其指示哪些DW被屏蔽及哪些DW 未被屏蔽。如表3中所使用,多个"X"符号表示由DW巧ljDW7提供的数据的"不理会(don't carer状态。
[0052] 如上文所论述,I/O选通DM屏蔽逻辑70接收经修改DW数据及经修改DM数据且使用 经修改DW数据及经修改DM数据W在接口 72上提供数据W供存储在存储器阵列74中。具体来 说,I/O选通DM屏蔽逻辑70包含经配置W输出计数的计数器112。计数器112经配置W接收经 修改DM数据且由将DW识别为未经屏蔽(例如,未屏蔽位)的屏蔽位的数目来调整输出计数。 因此,输出计数在接收经修改DM数据之前为第一值,且输出计数在接收经修改DM数据之后 被更新为第二值(例如,第一值加上经修改DM数据的未屏蔽位的数目)。
[0053] 继续表1到3中所说明的实例,输出计数可对应于接收经修改DM数据之前的十进制 值"0",且输出计数可对应于计数经修改DM数据的未屏蔽位的数目之后的十进制值"4",如 表4中所说明。表4还说明哪个MUX处理特定DW,如下文更详细描述。如可了解,计数器112可 包含在从存储器阵列74读取数据之后发生的复位。此外,可将计数器112初始化为0。此外, 可在具有4、8、16、32或更多个数据总线的数据总线114上提供输出计数。在某些实施例中, 计数器112可经配置W计数多达存储器阵列74的存储器位置的总数目。
[0化4] 表4 [0化5]

[0化6] I/O选通DM屏蔽逻辑70包含多个MUX 116,所述多个MUX 116用w按正确预定顺序 将经修改DW数据的DW提供到存储器阵列74(例如,在不指定行、列及/或库地址的情况下,基 于接收未经屏蔽DW的顺序将DW写入到存储器阵列74)。具体来说,每一 MUX 116经配置W接 收DW及输出计数。此外,每一 MUX 116包含唯一识别符,所述唯一识别符指示MUX 116相对于 所有MUX 116的位置。因此,每一 MUX 116可使用输出计数、相应MUX 116的位置及MUX 116的 总数目W确定DW中的哪个DW对应于所述MUX 116及/或选择DW中对应于所述MUX 116的DW。 在某些实施例中,使用MUX 116确定行、列及/或库W至少部分基于MUX 116最后用于写入数 据的行、列及/或库的记录来写入数据。在其它实施例中,使用MUX 116确定行、列及/或库W 至少部分基于输出计数、MUX 116的位置及/或MUX 116的总数目来写入数据。
[0化7] 在一些实施例中,每一MUX 116可比较输出计数与MUX 116相对于其它MUX 116的 位置,且可至少部分基于输出计数与所述位置之间的比较确定DW中对应于MUX 116的DW,如 表4中所展示。此外,比较输出计数与MUX 116的位置可包含计算由将输出计数除WMUX 116 的总数目而得出的余数。举例来说,输出计数可对应于十进制值"29",MUX 116相对于其它 MUX 116的位置可为"3"(例如,MUX 116可为编号"0"到?'的一组MUX 116中的第四个MUX), 且MUX 116的总数目可为"8"。因此,在将输出计数除WMUX 116的总数目时得出余数V (例 如29/8 = 3余数5)。在某些实施例中,可比较余数可'与位置"3" W确定哪个MUX 116应选择 DW0。
[0058] 如可了解,使用当前输出计数确定针对所接收到的下一组DW的数据写入的起点。 在某些实施例中,每一MUX 116可确定MUX 116相对于将接收经修改DW数据的第一DW的另一 MUX 116的位置且可基于相对位置从经修改DW数据选择DW。举例来说,MUX3可在具有位置号 "0"到"7"的总共8个MUX 116中具有位置号"3"。如果输出计数的值为"0",那么MUX3可确定 将在DW3为未经屏蔽的情况下使用其存储来自经修改DW数据(例如,在其中DW包含DW0到DW7 的配置中)的DW3的数据。作为另一实例,如果输出计数的值为"5",那么MUX3可确定其将在 DW6未屏蔽的情况下用W存储来自DW6的数据(且MUX5将确定将在DW0未屏蔽的情况下使用 其存储来自DW0的数据)。作为又一实例,如果输出计数的值为"17",那么MUX1可确定将在 DW0未屏蔽的情况下使用其存储来自DW0的数据且MUX3可确定将在DW2未屏蔽的情况下使用 其存储来自DW2的数据。
[0059] 如上文所描述,表巧Ij4展示针对所接收到的第一组DW的数据写入的实例。下文表5 至化展示针对紧接在第一组DW之后接收到的第二组DW的数据写入的实例。
[0060] 表 5 「00611

[0062] 如表5的DM数据说明,对于所接收到的第二组DW,仅DW4及DW5被屏蔽。如下文所展 示,表6说明基于此实例中的并行DM数据的屏蔽位,哪些DW被屏蔽及哪些DW未被屏蔽。
[0063] 表 6
[0064]
[00 化]
[0066] 如表7的实例中所说明,将未经屏蔽DW分组到DW0至化W5中,而将经屏蔽DW分组到 DW6到DW7。此外,将DM数据的未屏蔽位分组到位0至化中,且将DM数据的屏蔽位分组到位6到7 中。因此,经修改DM数据的屏蔽位仍对应于经修改DW数据的DW,从而指示哪些DW被屏蔽及哪 些DW未被屏蔽。如表7中所使用,多个?'符号表示由DW6到DW7提供的数据的"不理会"状态。
[0067] 表 7 [006引
[0069] 继续表5到7中所说明的实例,输出计数可对应于在接收经修改DM数据之前的十进 制值"4",且输出计数可对应于在计数经修改DM数据的未屏蔽位的数目之后的十进制值 "10",如表8中所说明。表8也说明哪个MUX处理特定DW。
[0070] 表 8
[0071]

[0072] 在某些实施例中,每一MUX 116也可接收经修改DM数据。在此类实施例中,每一MUX 116可不一定接收输出计数且每一 MUX 116可使用内部编程及/或逻辑取代输出计数。如可 了解,MUX 98及/或MUX 116可包含用于在其上存储代码的任何合适的非暂时性有形机器可 读媒体(例如,易失性及/或非易失性存储器)。代码可包含用于使MUX执行其所要功能的指 令。
[0073] MUX 116将所选择数据输出到锁存装置118。每一锁存装置118经配置W接收来自 禪合到锁存装置118的相应MUX 116的所选择DW及接收经修改DM数据。此外,锁存装置118选 择性地启用全局输入/输出(GI0)驱动器120W经由接口 72将数据提供到存储器阵列74。
[0074] 现参看图5,说明用于将数据写入到存储器装置的存储器阵列的方法122的流程 图。在框124处,将提供到存储器61的串行输入数据转换为具有第一组DW及第一DM数据的并 行数据。然后,在框126处,第一MUX(例如,MUX 98)并行接收第一组DW及第一DM数据。如可了 解,第一 DM数据包含多个屏蔽位。多个屏蔽位中的每一屏蔽位对应于第一组DW的相应DW,且 每一屏蔽位识别相应DW被屏蔽或未被屏蔽。
[0075] 接着,在框128处,第一 MUX通过将识别第一组DW的相应一或多个DW为未经屏蔽的 第一 DM数据的屏蔽位中的一或多个屏蔽位分组在一起而形成第二DM数据(例如,经修改DM 数据)。在框130处,第一 MUX通过将对应于第一 DM数据的屏蔽位中的一或多个屏蔽位的第一 组DW的相应一或多个数据字分组在一起而形成第二组DW。然后,在框132处,计数器(例如, 计数器112)计数将第二组DW中的相应一或多个数据字识别为未经屏蔽的第二DM数据的一 或多个屏蔽位的数目。
[0076] 接着,在框134处,计数器使用第二DM数据中的一或多个屏蔽位的数目更新未屏蔽 位的总数目(例如,计数)。在框136处,第二MUX(例如,MUX 116)使用更新前的计数值确定其 相对于待接收第二组DW的第一 DW的第ΞΜυΧ的位置。然后,在框138处,第二MUX选择第二组 DW的DWW使用第二组DW及第二DM数据写入到存储器阵列。接着,在框140处,锁存装置(例 如,锁存装置118)至少部分基于第二DM数据锁存第二组DW的DW。因此,经屏蔽数据及/或未 经屏蔽数据的组合可被顺杨地写入到操作为缓冲器的存储器装置。
[0077] 虽然本发明可具有各种修改及替代形式,但已在图式中通过实例展示且在本文中 详细描述特定实施例。然而,应理解,本发明并不希望被限于所掲示的特定形式。而是,本发 明将涵盖落于如由所附权利要求书所界定的本发明的精神及范围内的所有修改、等效物及 替代。
【主权项】
1. 一种设备,其包括: 多路复用器,其包括: 多个输入,其经配置以接收第一多个数据字及第一数据屏蔽,其中所述第一数据屏蔽 包括第一多个屏蔽位,且其中所述第一多个屏蔽位中的每一屏蔽位对应于所述第一多个数 据字中的相应数据字,且所述第一多个屏蔽位中的每一屏蔽位识别所述第一多个数据字中 的所述相应数据字是否被屏蔽或未被屏蔽;及 多个输出,其经配置以输出第二多个数据字及第二数据屏蔽,其中所述第二数据屏蔽 包括第二多个屏蔽位,且其中所述第二多个屏蔽位中的每一屏蔽位对应于所述第二多个数 据字中的相应数据字,且所述第二多个屏蔽位中的每一屏蔽位识别所述第二多个数据字中 的所述相应数据字是否被屏蔽或未被屏蔽; 其中所述多路复用器经配置以通过将识别所述第一多个数据字中的相应一或多个数 据字为未经屏蔽的所述第一多个屏蔽位中的一或多个屏蔽位分组在一起而形成所述第二 数据屏蔽,且通过将对应于所述第一多个屏蔽位中的所述一或多个屏蔽位的所述第一多个 数据字中的所述相应一或多个数据字分组在一起而形成所述第二多个数据字。2. 根据权利要求1所述的设备,其包括计数器,所述计数器经配置以:输出计数;接收所 述第二数据屏蔽;及通过将所述第二多个数据字中的相应一或多个数据字识别为未经屏蔽 的所述第二多个屏蔽位的屏蔽位的数目来调整所述计数。3. 根据权利要求2所述的设备,其中所述多路复用器包括第一多路复用器,且其中所述 设备进一步包括第二多路复用器,所述第二多路复用器经配置以:接收所述计数及所述第 二多个数据字;且至少部分基于所述计数选择所述第二多个数据字中的对应于所述第二多 路复用器的数据字。4. 根据权利要求3所述的设备,其包括锁存装置,所述锁存装置经配置以:接收来自所 述第二多路复用器的所述第二多个数据字中的所述所选择数据字;接收所述第二数据屏 蔽;且至少部分基于所述第二数据屏蔽输出所述数据字。5. 根据权利要求2所述的设备,其中所述多路复用器包括第一多路复用器,且其中所述 设备进一步包括多个第二多路复用器及多个锁存装置,其中所述多个第二多路复用器中的 每一第二多路复用器经配置以接收所述计数及所述第二多个数据字,且至少部分基于所述 计数选择所述第二多个数据字中的对应于所述第二多路复用器的相应数据字,且其中所述 多个锁存装置中的每一锁存装置经配置以接收来自所述多个第二多路复用器中的相应第 二多路复用器的所述第二多个数据字中的所述相应所选择数据字、接收所述第二数据屏 蔽,且至少部分基于所述第二数据屏蔽输出所述相应所选择数据字。6. 根据权利要求1所述的设备,其中所述多路复用器包括第一多路复用器,且其中所述 设备进一步包括多个第二多路复用器,其中所述多个第二多路复用器中的每一第二多路复 用器经配置以选择所述第二多个数据字中的对应于所述第二多路复用器的相应数据字。7. 根据权利要求6所述的设备,其包括多个锁存装置,其中所述多个锁存装置中的每一 锁存装置经配置以:接收来自所述多个第二多路复用器中的相应第二多路复用器的所述第 二多个数据字中的所述相应所选择数据字;接收所述第二数据屏蔽;及至少部分基于所述 第二数据屏蔽输出所述相应所选择数据字。8. 根据权利要求6所述的设备,其中所述多个第二多路复用器中的每一第二多路复用 器经配置以通过确定所述多个第二多路复用器中的所述第二多路复用器相对于所述多个 第二多路复用器中的待接收所述第二多个数据字中的第一数据字的第三多路复用器的位 置,而选择所述第二多个数据字中的所述相应数据字。9. 一种用于将数据写入到存储器阵列的方法,其包括: 在多路复用器处,接收第一多个数据字及第一数据屏蔽,其中所述第一数据屏蔽包括 第一多个屏蔽位,且其中所述第一多个屏蔽位中的每一屏蔽位对应于所述第一多个数据字 中的相应数据字,且所述第一多个屏蔽位中的每一屏蔽位识别所述第一多个数据字中的所 述相应数据字是否被屏蔽或未被屏蔽; 使用所述多路复用器,通过将将所述第一多个数据字中的相应一或多个数据字识别为 未经屏蔽的所述第一多个屏蔽位中的一或多个屏蔽位分组在一起而形成第二数据屏蔽;及 使用所述多路复用器,通过将对应于所述第一多个屏蔽位中的所述一或多个屏蔽位的 所述第一多个数据字中的所述相应一或多个数据字分组在一起而形成第二多个数据字。10. 根据权利要求9所述的方法,其包括使用计数器计数将所述第二多个数据字中的相 应一或多个数据字识别为未经屏蔽的所述第二多个屏蔽位中的一或多个屏蔽位的数目。11. 根据权利要求10所述的方法,其包括使用所述计数器使用所述第二多个屏蔽位中 的所述一或多个屏蔽位的所述数目更新未屏蔽位的总数目。12. 根据权利要求9所述的方法,其中所述多路复用器包括第一多路复用器,且其中所 述方法进一步包括使用第二多路复用器选择所述第二多个数据字中的数据字来使用所述 第二多个数据字及所述第二数据屏蔽写入到所述存储器阵列。13. 根据权利要求12所述的方法,其中选择所述第二多个数据字中的所述数据字包括: 确定所述第二多路复用器相对于待接收所述第二多个数据字中的第一数据字的第三多路 复用器的位置。14. 根据权利要求9所述的方法,其中所述第二多个数据字中的每一数据字包括四个 位、八个位或十六个位中的一者。15. 根据权利要求9所述的方法,其包括使用锁存装置至少部分基于所述第二数据屏蔽 锁存所述第二多个数据字中的数据字。16. 根据权利要求9所述的方法,其包括将一或多个串行数据输入转换为具有所述第一 多个数据字及所述第一数据屏蔽的并行数据。17. -种设备,其包括: 多路复用器,其经配置以:接收多个数据字及数据屏蔽;改变所述多个数据字中的数据 字的顺序以将经屏蔽数据字分组在一起及将未经屏蔽数据字分组在一起;改变所述数据屏 蔽的所述顺序以将屏蔽位分组在一起及将未屏蔽位分组在一起;输出具有所述改变顺序的 所述多个数据字;及输出具有所述改变顺序的所述数据屏蔽。18. 根据权利要求17所述的设备,其包括计数器,所述计数器经配置以:输出计数;接收 具有所述改变顺序的所述数据屏蔽;及通过所述数据屏蔽的未屏蔽位的数目来调整所述计 数。19. 根据权利要求18所述的设备,其中所述多路复用器包括第一多路复用器,且其中所 述设备进一步包括多个第二多路复用器,其中所述多个第二多路复用器中的每一第二多路 复用器经配置以至少部分基于所述计数选择所述多个数据字中的对应于所述第二多路复 用器的相应数据字。20. -种其上存储有代码的非暂时性有形机器可读媒体,所述代码包括用于以下各种 操作的指令: 在多个多路复用器中的多路复用器处接收计数,其中所述计数对应于在接收多个数据 字之前写入到存储器阵列的数据字的数目; 比较所述计数与所述多路复用器相对于所述多个多路复用器中的其它多路复用器的 位置;及 至少部分基于所述计数与所述位置之间的所述比较选择所述多个数据字中的对应于 所述多路复用器的数据字。21. 根据权利要求20所述的非暂时性有形机器可读媒体,其中包括用于比较所述计数 与所述位置的指令的所述代码包括:用于计算由将所述计数除以所述多个多路复用器中的 多路复用器的总数目得出的余数的指令。22. 根据权利要求20所述的非暂时性有形机器可读媒体,其中所述代码包括用于将所 述数据字提供到锁存装置的指令。23. -种设备,其包括: 状态机,其包括用于写入到存储器阵列的电路,其中所述电路经配置以:接收多个数据 字及一数据屏蔽;改变所述多个数据字中的数据字的顺序,以将经屏蔽的数据字分组在一 起及将未经屏蔽的数据字分组在一起;改变所述数据屏蔽的顺序,以将屏蔽位分组在一起 及将未屏蔽位分组在一起;及使用具有所述改变顺序的所述多个数据字及具有所述改变顺 序的所述数据屏蔽,以基于由所述电路接收所述未经屏蔽数据字的顺序而仅将所述未经屏 蔽数据字写入到所述存储器阵列。24. 根据权利要求23所述的设备,其中所述状态机包括状态机晶格,所述状态机晶格包 括多个状态转变元件,且每一状态转变元件包括多个存储器单元,所述多个存储器单元经 配置以分析数据流的至少一部分且输出所述分析的结果。25. 根据权利要求23所述的设备,其中所述状态机包括具有所述存储器阵列的数据缓 冲器。26. 根据权利要求23所述的设备,其中所述状态机包括具有所述存储器阵列的过程缓 冲器。27. 根据权利要求23所述的设备,其中所述状态机包括具有所述存储器阵列的状态向 量缓冲器。28. 根据权利要求23所述的设备,其中所述状态机包括具有所述存储器阵列的程序缓 冲器。29. 根据权利要求23所述的设备,其中所述状态机包括具有所述存储器阵列的修复缓 冲器。30. 根据权利要求23所述的设备,其中所述状态机包括具有所述存储器阵列的匹配缓 冲器。
【文档编号】G11C7/10GK105830160SQ201480068680
【公开日】2016年8月3日
【申请日】2014年12月5日
【发明人】帕塔萨兰蒂·加亚帕蒂, 大卫·R·布朗
【申请人】美光科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1