CN105830160B - 用于将经屏蔽数据写入到缓冲器的设备及方法 - Google Patents
用于将经屏蔽数据写入到缓冲器的设备及方法 Download PDFInfo
- Publication number
- CN105830160B CN105830160B CN201480068680.9A CN201480068680A CN105830160B CN 105830160 B CN105830160 B CN 105830160B CN 201480068680 A CN201480068680 A CN 201480068680A CN 105830160 B CN105830160 B CN 105830160B
- Authority
- CN
- China
- Prior art keywords
- data
- mask
- multiplexer
- individual
- word
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1009—Data masking during input/output
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明揭示用于将数据写入到缓冲器的存储器阵列(74)的设备及方法。一种此类设备可包含:多路复用器(98),其接收数据字(DW0到DWX)及数据屏蔽(DM)。所述多路复用器(98)可改变所述数据字(DW0到DWX)的顺序以将经屏蔽的数据字(DW0到DWX)分组在一起及将未经屏蔽的数据字(DW0到DWX)分组在一起。所述多路复用器(98)还可改变所述数据屏蔽(DM)的顺序以将屏蔽位分组在一起及将未屏蔽位分组在一起。所述设备可使用具有所述改变顺序的所述数据字(DW0到DWX)及具有所述改变顺序的所述数据屏蔽(DM)以将数据写入到所述存储器阵列(74)。
Description
技术领域
本发明的实施例大体上涉及半导体装置领域。更特定来说,本发明的实施例可提供用于将经屏蔽数据写入到缓冲器的一或多种技术及装置。
背景技术
计算机***通常用于众多配置中以提供多种计算功能。被分派开发计算机***及***组件的任务的设计工程师通常考虑处理速度、***灵活性及大小约束。计算机***通常包含可用于存储数据(例如,程序及用户数据)且可由其它***组件(例如处理器或***装置)存取的多个存储器装置。此类存储器装置可包含易失性及非易失性存储器装置。
通常,存储器装置(例如动态随机存取存储器(DRAM))包含被分为多个存储器库或其它划分的存储器阵列。基于由存储器装置在操作期间所接收到的寻址信息,可将数据存储到存储器阵列的适当库中且可从其中读出所述数据。举例来说,在DRAM的操作期间,可将激活(例如,有效)命令发送到存储器阵列。激活命令激活存储器阵列的行。此外,可将列选择命令发送到存储器阵列。列选择命令选择存储器阵列的列。在激活行及选择列的情况下,可从存储器阵列的所选择存储器单元检索数据。
在某些架构中,可将存储器装置或存储器装置的部分用作缓冲器。在将数据写入到缓冲器时,在不使用行、列及/或库选择信号的情况下写入数据可为有益的。因此,数据按预定顺序被供应及写入到存储器装置。接着,可按相同预定顺序从存储器装置读取数据,因此维持先进先出(FIFO)顺序。然而,当待写入到存储器装置的数据包含经屏蔽数据及未经屏蔽数据时,经屏蔽数据将被忽视且不被写入到存储器装置。不幸地,传统存储器架构无法在屏蔽非待写入的数据的同时,按预定顺序顺畅地写入到用作缓冲器的存储器装置。
因此,本发明的实施例可针对上文陈述的问题中的一或多者。
发明内容
在一方面中,本申请涉及一种设备。所述设备包括:多路复用器,其包括:多个输入,其经配置以接收第一多个数据字及第一数据屏蔽,其中所述第一数据屏蔽包括第一多个屏蔽位,且其中所述第一多个屏蔽位中的每一屏蔽位对应于所述第一多个数据字中的相应数据字,且所述第一多个屏蔽位中的每一屏蔽位识别所述第一多个数据字中的所述相应数据字是否被屏蔽或未被屏蔽;及多个输出,其经配置以输出第二多个数据字及第二数据屏蔽,其中所述第二数据屏蔽包括第二多个屏蔽位,且其中所述第二多个屏蔽位中的每一屏蔽位对应于所述第二多个数据字中的相应数据字,且所述第二多个屏蔽位中的每一屏蔽位识别所述第二多个数据字中的所述相应数据字是否被屏蔽或未被屏蔽;其中所述多路复用器经配置以通过将识别所述第一多个数据字中的相应一或多个数据字为未经屏蔽的所述第一多个屏蔽位中的一或多个屏蔽位分组在一起而形成所述第二数据屏蔽,且通过将对应于所述第一多个屏蔽位中的所述一或多个屏蔽位的所述第一多个数据字中的所述相应一或多个数据字分组在一起而形成所述第二多个数据字。
在另一方面中,本申请涉及一种用于将数据写入到存储器阵列的方法。所述方法包括:在多路复用器处,接收第一多个数据字及第一数据屏蔽,其中所述第一数据屏蔽包括第一多个屏蔽位,且其中所述第一多个屏蔽位中的每一屏蔽位对应于所述第一多个数据字中的相应数据字,且所述第一多个屏蔽位中的每一屏蔽位识别所述第一多个数据字中的所述相应数据字是否被屏蔽或未被屏蔽;使用所述多路复用器,通过将所述第一多个屏蔽位中的一或多个屏蔽位分组在一起而形成第二数据屏蔽,所述第一多个屏蔽位中的一或多个屏蔽位将所述第一多个数据字中的相应一或多个数据字识别为未经屏蔽;及使用所述多路复用器,通过将对应于所述第一多个屏蔽位中的所述一或多个屏蔽位的所述第一多个数据字中的所述相应一或多个数据字分组在一起而形成第二多个数据字。
在另一方面中,本申请涉及一种设备。所述设备包括:多路复用器,其经配置以:接收多个数据字及数据屏蔽;改变所述多个数据字中的数据字的顺序以将经屏蔽数据字分组在一起及将未经屏蔽数据字分组在一起;改变所述数据屏蔽的顺序以将屏蔽位分组在一起及将未屏蔽位分组在一起;输出具有所述改变顺序的所述多个数据字;及输出具有所述改变顺序的所述数据屏蔽。
在另一方面中,本申请涉及一种其上存储有代码的非暂时性有形机器可读媒体。其中,所述代码包括用于以下各种操作的指令:在多个多路复用器中的多路复用器处接收计数,其中所述计数对应于在接收多个数据字之前写入到存储器阵列的数据字的数目;比较所述计数与所述多路复用器相对于所述多个多路复用器中的其它多路复用器的位置;及至少部分基于所述计数与所述位置之间的所述比较选择所述多个数据字中的对应于所述多路复用器的数据字。
在另一方面中,本申请涉及一种设备。所述设备包括:状态机,其包括用于写入到存储器阵列的电路,其中所述电路经配置以:接收多个数据字及一数据屏蔽;改变所述多个数据字中的数据字的顺序,以将经屏蔽的数据字分组在一起及将未经屏蔽的数据字分组在一起;改变所述数据屏蔽的顺序,以将屏蔽位分组在一起及将未屏蔽位分组在一起;及使用具有所述改变顺序的所述多个数据字及具有所述改变顺序的所述数据屏蔽,以基于由所述电路接收所述未经屏蔽数据字的顺序而仅将所述未经屏蔽数据字写入到所述存储器阵列。
附图说明
图1说明根据本发明的实施例的可包含缓冲器的基于处理器的***的框图;
图2说明根据本发明的实施例的可包含缓冲器的状态机引擎的框图;
图3说明根据本发明的实施例的可操作为缓冲器的存储器的框图;
图4说明根据本发明的实施例的可操作为缓冲器的存储器的示意图;及
图5说明根据本发明的实施例的用于将数据写入到存储器装置的存储器阵列的方法的流程图。
具体实施方式
如下文将更详细描述,可使用多路复用器以将未经屏蔽数据分组在一起及选择待写入到存储器阵列的数据。举例来说,多路复用器可接收数据字(data word)及数据屏蔽(data mask)。多路复用器可改变数据字的顺序以将经屏蔽数据字分组在一起且将未经屏蔽数据字分组在一起。多路复用器也可改变数据屏蔽的顺序以将屏蔽位分组在一起且将未屏蔽位分组在一起。设备可使用具有改变顺序的数据字及具有改变顺序的数据屏蔽以将数据写入到存储器阵列。举例来说,可将具有改变顺序的数据字及具有改变顺序的数据屏蔽从多路复用器提供到选择待写入到存储器阵列的数据的额外多路复用器。
现在将参考所述图式,图1说明整体上由参考数字10指定的基于处理器的***的实施例。***10可为多种类型中的任一者,例如桌上型计算机、膝上型计算机、传呼器、蜂窝电话、个人记事簿、便携式音频播放器、控制电路、相机等等。***10还可为网络节点,例如路由器、服务器或客户端(例如,先前描述的计算机类型中的一者)。***10可为某个其它种类的电子装置,例如复印机、扫描仪、打印机、游戏控制台、电视机、机顶视频分配器或记录***、电缆箱、个人数字媒体播放器、工厂自动化***、汽车计算机***或医疗装置。用于描述***的这些各种实例的术语(如本文中使用的许多其它术语)可共享一些参照物,且因而不应根据所列出的其它项加以狭义地理解。
在基于处理器的装置(例如***10)中,处理器12(例如微处理器)控制***10中的***功能及请求的处理。此外,处理器12可包含共享***控制的多个处理器。处理器12可直接或间接耦合到***10中的元件中的每一者,使得处理器12通过执行可被存储于***10内或***10外部的指令而控制***10。
在所说明的实施例中,***10包含可在处理器12的控制下操作的状态机引擎14。然而,在其它实施例中,***10可不包含状态机引擎14。如本文中所使用,状态机引擎14指代单个装置(例如,单芯片)。状态机引擎14可采用任何自动机理论。举例来说,状态机引擎14可采用数个状态机架构中的一者,包含(但不限于)Mealy架构、Moore架构、有限状态机(FSM)、确定性FSM(DFSM)、位并行状态机(BPSM)等等。虽然可使用多种架构,但出于论述目的,本申请案引用FSM。然而,所属领域的技术人员应了解,可使用多种状态机架构中的任一者来采用所描述的技术。
如下文将进一步论述,状态机引擎14可包含数个(例如,一或多个)有限状态机(FSM)晶格(例如,状态机引擎14的核心)。出于本申请案的目的,术语“晶格”指代元件(例如,布尔单元、计数器单元、状态机元件、状态转变元件(STE))的组织框架(例如,路由矩阵、路由网络、帧)。此外,“晶格”可具有任何合适的形状、结构或层级组织(例如,栅格、立方形、球形、级联)。每一FSM晶格可实施各自并行接收及分析相同数据的多个FSM。此外,FSM晶格可被布置成群组(例如,集群),使得FSM晶格的集群可并行分析相同输入数据。此外,状态机引擎14的FSM晶格的集群可被布置在层级结构中,其中可将来自层级结构的较低等级上的状态机晶格的输出用作到较高等级上的状态机晶格的输入。通过经由层级结构使状态机引擎14的并行FSM晶格的集群串联地级联,可分析(例如,评估、搜索等等)日益复杂的模式。
此外,基于状态机引擎14的层级并行配置,可将状态机引擎14用于***中的利用高处理速度的复杂数据分析(例如,模式辨识)。例如,本文中描述的实施例可被并入具有千兆字节/秒的处理速度的***中。因此,利用状态机引擎14,可迅速分析来自高速存储器装置或其它外部装置的数据。状态机引擎14可根据若干准则(例如,搜索项)大约同时(例如,在单个装置循环期间)分析数据流。状态机引擎14的等级上的FSM集群内的FSM晶格中的每一者可各自大约同时接收来自数据流的相同搜索项,且并行FSM晶格中的每一者可以处理准则确定所述项是否将状态机引擎14推进到下一状态。状态机引擎14可根据相对较大数目个准则(例如,大于100个、大于1000个或大于10,000个准则)分析项。因为FSM晶格并行操作,所以其可将准则应用于具有相对较高带宽的数据流(例如,大于或大体上等于千兆字节/秒的数据流)而不使数据流减慢。
在一个实施例中,状态机引擎14可经配置以辨识(例如,检测)数据流中的大量模式。例如,可利用状态机引擎14以检测用户或其它实体可能希望分析的多种类型的数据流中的一或多者中的模式。举例来说,状态机引擎14可经配置以分析经由网络接收到的数据流,例如经由因特网接收到的封包或经由蜂窝网络接收到的语音或数据。在一个实例中,状态机引擎14可经配置以分析垃圾邮件或恶意软件的数据流。可将数据流接收为串行数据流,其中以具有意义的顺序(例如以时间、词汇或语义显著的顺序)接收数据。或者,数据流可被并行或无序接收,且接着通过(例如)对经由因特网接收到的封包进行重新排序而转换为串行数据流。在一些实施例中,数据流可串行地呈现项,但可并行接收表达所述项中的每一者的位。可自***10外部的源接收数据流,或可通过询问存储器装置(例如存储器16)及由存储于存储器16中的数据形成数据流而形成数据流。在其它实例中,状态机引擎14可经配置以辨识拼写某一字词的字符序列、指定基因的遗传基础对(genetic base pair)序列、形成图像的一部分的图片或视频文件中的位序列、形成程序的一部分的可执行文件中的位序列或形成歌曲或口语词组的一部分的音频文件中的位序列。待分析的数据流可包含呈二进制格式或其它格式(例如,十进制、ASCII等等)的多个数据位。所述流可编码具有单个数字或多个数字(例如,若干二进制数字)的数据。在某些实施例中,待分析的数据流可包含经屏蔽数据及未经屏蔽数据。在此类实施例中,经屏蔽数据可希望被忽视,而未经屏蔽数据可希望被分析。
如应了解,***10可包含存储器16。存储器16可包含易失性存储器,例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步DRAM(SDRAM)、双倍数据速率DRAM(DDR SDRAM)、DDR2SDRAM、DDR3SDRAM等等。存储器16也可包含非易失性存储器,例如只读存储器(ROM)、PC-RAM、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、金属-氧化物-氮化物-氧化物-硅(MONOS)存储器、基于多晶硅浮动栅的存储器、及/或结合易失性存储器使用的各种架构的其它类型的快闪存储器(例如,NAND存储器、NOR存储器等等)。存储器16可包含可提供待由状态机引擎14分析的数据的一或多个存储器装置,例如DRAM装置。如本文中所使用,术语“提供”一般可指代引导、输入、***、发送、传送、发射、产生、给予、输出、放置、写入等等。此类装置可称为或包含固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、紧凑式快闪(CF)卡或任何其它合适的装置。此外,应了解,此类装置可经由任何合适的接口(例如通用串行总线(USB)、***组件互连(PCI)、PCI Express(PCI-E)、小型计算机***接口(SCSI)、IEEE 1394(Firewire)或任何其它合适的接口)耦合到***10。为促进存储器16(例如快闪存储器装置)的操作,***10可包含存储器控制器(未说明)。如应了解,存储器控制器可为独立装置或其可与处理器12成一体。此外,***10可包含外部存储装置18,例如磁性存储装置。外部存储装置也可将输入数据提供到状态机引擎14。
***10可包含数个额外元件。例如,可使用编译器20以配置(例如,编程)状态机引擎14。输入装置22也可耦合到处理器12以允许用户将数据输入到***10中。例如,可使用输入装置22以将数据输入到存储器16中以供状态机引擎14随后分析。例如,输入装置22可包含按钮、切换元件、键盘、光笔、尖笔、鼠标及/或语音辨识***。输出装置24(例如显示器)也可耦合到处理器12。举例来说,显示器24可包含LCD、CRT、LED及/或音频显示器。所述***也可包含用于介接网络(例如因特网)的网络接口装置26,例如网络接口卡(NIC)。如应了解,取决于***10的应用,***10可包含许多其它组件。
现在参看图2,说明状态机引擎14的实施例(例如,单芯片上的单个装置)。如先前所描述,状态机引擎14经配置以经由数据总线接收来自源(例如存储器16)的数据。在所说明的实施例中,数据可通过总线接口(例如第三代双倍数据速率(DDR3)总线接口28)被发送到状态机引擎14。DDR3总线接口28可能够以大于或等于千兆字节/秒的速率交换(例如,提供及接收)数据。此数据交换速率可大于状态机引擎14分析数据的速率。如应了解,取决于待分析的数据源,总线接口28可为用于将往返于数据源的数据交换到状态机引擎14的任何合适的总线接口,例如NAND快闪接口、***组件互连(PCI)接口、千兆位媒体独立接口(GMII)等等。如先前所描述,状态机引擎14包含经配置以分析数据的一或多个FSM晶格30。每一FSM晶格30可被分为两个半晶格。在所说明的实施例中,每一半晶格可包含24K个STE,使得晶格30包含48K个STE。晶格30可包括任何可期望数目个STE。此外,虽然仅说明一个FSM晶格30,但状态机引擎14可包含多个FSM晶格30。
可在总线接口28处接收待分析的数据并通过数个缓冲器及缓冲器接口将数据提供到FSM晶格30。在所说明的实施例中,数据路径包含数据缓冲器32、指令缓冲器33、处理缓冲器34及排间(IR(inter-rank))总线及处理缓冲器接口36。如可了解,数据缓冲器32、指令缓冲器33、及/或处理缓冲器34可包含存储器阵列。数据缓冲器32经配置以接收并暂时存储待分析的数据。在一个实施例中,存在两个数据缓冲器32(数据缓冲器A及数据缓冲器B)。可将数据存储在所述两个数据缓冲器32中的一者中,而从另一数据缓冲器32清空数据以供FSM晶格30分析。总线接口28可经配置以将待分析的数据提供到数据缓冲器32直到数据缓冲器32已满为止。在数据缓冲器32已满之后,总线接口28可经配置以自由地用于其它用途(例如,提供来自数据流的其它数据直到数据缓冲器32可用于接收待分析的额外数据)。在所说明的实施例中,数据缓冲器32可各自为32千字节。指令缓冲器33经配置以经由总线接口28接收来自处理器12的指令,例如对应于待分析的数据的指令及对应于配置状态机引擎14的指令。
IR总线及处理缓冲器接口36可促进将数据提供到处理缓冲器34。可使用IR总线及处理缓冲器接口36以确保FSM晶格30按顺序处理数据。IR总线及处理缓冲器接口36可协调数据、时序数据、封装指令等等的交换,使得正确地接收并分析数据。一般来说,IR总线及处理缓冲器接口36允许使用装置排中的多个装置。所述排装置中的多个装置共享数据,使得所有所述多个装置按正确的顺序接收全部共享数据。举例来说,多个物理装置(例如,状态机引擎14、芯片、分离装置)可被布置成排且可经由IR总线及处理缓冲器接口36向彼此提供数据。出于本申请案的目的,术语“排”指代连接到相同芯片选择的一组状态机引擎14。在所说明的实施例中,IR总线及处理缓冲器接口36可包含8位数据总线。
在所说明的实施例中,状态机引擎14也包含解压缩器38及压缩器40,以帮助将数据提供到状态机引擎14且从状态机引擎14提供数据。如可了解,压缩器40及解压缩器38可使用相同的压缩算法以简化软件及/或硬件设计;然而,压缩器40及解压缩器38也可使用不同的算法。通过压缩数据,可最小化总线接口28(例如,DDR3总线接口)利用时间。在本实施例中,可使用压缩器40以压缩状态向量数据、配置数据(例如,编程数据)及由FSM晶格30分析之后获得的匹配结果数据。在一个实施例中,可停用(例如,关闭)压缩器40及解压缩器38,使得流动到压缩器40及解压缩器38及/或从压缩器40及解压缩器38流动的数据并未被修改(例如,未经压缩也未经解压缩)。
压缩器40及解压缩器38也可经配置以处置多个数据集且每一数据集可具有变化长度。通过“填补”压缩数据且包含关于每一压缩区域何时结束的指示符,压缩器40可通过状态机引擎14提高总体处理速度。
状态机引擎14包含状态向量***41,状态向量***41具有状态向量高速缓冲存储器42、状态向量存储器缓冲器44、状态向量中间输入缓冲器46及状态向量中间输出缓冲器48。如可了解,状态向量高速缓冲存储器42、状态向量存储器缓冲器44、状态向量中间输入缓冲器46、及/或状态向量中间输出缓冲器48可包含存储器阵列。可使用状态向量***41以存储FSM晶格30的多个状态向量,将状态向量移动到状态机引擎14上或从状态机引擎14将状态向量移出,且将状态向量提供到FSM晶格30以使FSM晶格30还原到对应于所提供的状态向量的状态。举例来说,每一状态向量可被暂时存储在状态向量高速缓冲存储器42中。即,可存储每一STE的状态,使得所述状态可经还原且随后用于进一步分析,同时释放STE以分析新数据集(例如,搜索项)。例如,如同典型高速缓冲存储区,状态向量高速缓冲存储器42允许存储状态向量以供(此处)FSM晶格30快速检索及使用。在所说明的实施例中,状态向量高速缓冲存储器42可存储多达512个状态向量。每一状态向量包括FSM晶格30的STE的状态(例如,激活或未经激活)及计数器的动态(例如,当前)计数。
如可了解,可在排中的不同状态机引擎14(例如,芯片)之间交换状态向量数据。可在不同状态机引擎14之间交换状态向量数据以用于以下各种目的,例如:同步化FSM晶格30的STE的状态及计数器的动态计数;跨多个状态机引擎14执行相同功能;跨多个状态机引擎14重现结果;跨多个状态机引擎14级联结果;存储用以分析通过多个状态机引擎14级联的数据的STE的状态的历史及计数器的动态计数等等。此外,应注意,在状态机引擎14内,可使用状态向量数据以快速地还原状态向量。举例来说,可使用状态向量数据以:将STE的状态及计数器的动态计数还原到初始化状态(例如,搜索新搜索项);将STE的状态及计数器的动态计数还原到先前状态(例如,搜索先前搜索的搜索项);及将STE的状态及计数器的动态计数改变为经配置用于级联配置(例如,以级联搜索来搜索搜索项)。在某些实施例中,可将状态向量数据提供到总线接口28,使得可将状态向量数据提供到处理器12(例如,用于分析状态向量数据、重配置状态向量数据以应用修改、重配置状态向量数据以提高效率等等)。
举例来说,在某些实施例中,状态机引擎14可将经高速缓冲存储的状态向量数据(例如,由状态向量***41存储的数据)从FSM晶格30提供到外部装置。外部装置可接收状态向量数据,修改状态向量数据并将经修改的状态向量数据提供到状态机引擎14以使FSM晶格30还原(例如,复位、初始化)。因此,外部装置可修改状态向量数据,使得状态机引擎14可按需要略过(例如,跳过)状态。
状态向量高速缓冲存储器42可接收来自任何合适的装置的状态向量数据。举例来说,状态向量高速缓冲存储器42可接收来自FSM晶格30、另一FSM晶格30(例如,经由IR总线及处理缓冲器接口36)、解压缩器38等等的状态向量。在所说明的实施例中,状态向量高速缓冲存储器42可经由状态向量存储器缓冲器44接收来自其它装置的状态向量。此外,状态向量高速缓冲存储器42可将状态向量数据提供到任何合适的装置。举例来说,状态向量高速缓冲存储器42可将状态向量数据提供到状态向量存储器缓冲器44、状态向量中间输入缓冲器46及状态向量中间输出缓冲器48。
可结合状态向量高速缓冲存储器42利用额外缓冲器(例如状态向量存储器缓冲器44、状态向量中间输入缓冲器46及状态向量中间输出缓冲器48)以适应状态向量的快速检索及存储,同时通过状态机引擎14处理具有交错封包的分离数据集。在所说明的实施例中,状态向量存储器缓冲器44、状态向量中间输入缓冲器46及状态向量中间输出缓冲器48中的每一者可经配置以暂时存储一个状态向量。可使用状态向量存储器缓冲器44以接收来自任何合适的装置的状态向量数据并将状态向量数据提供到任何合适的装置。举例来说,可使用状态向量存储器缓冲器44以从FSM晶格30、另一FSM晶格30(例如,经由IR总线及处理缓冲器接口36)、解压缩器38及状态向量高速缓冲存储器42接收状态向量。作为另一实例,可使用状态向量存储器缓冲器44以将状态向量数据提供到(例如,其它FSM晶格30的)IR总线及处理缓冲器接口36、压缩器40及状态向量高速缓冲存储器42。
同样地,可使用状态向量中间输入缓冲器46以接收来自任何合适的装置的状态向量数据并将状态向量数据提供到任何合适的装置。举例来说,可使用状态向量中间输入缓冲器46以接收来自FSM晶格30(例如,经由IR总线及处理缓冲器接口36)、解压缩器38及状态向量高速缓冲存储器42的状态向量。作为另一实例,可使用状态向量中间输入缓冲器46以将状态向量提供到FSM晶格30。此外,可使用状态向量中间输出缓冲器48以接收来自任何合适的装置的状态向量并将状态向量提供到任何合适的装置。举例来说,可使用状态向量中间输出缓冲器48以接收来自FSM晶格30及状态向量高速缓冲存储器42的状态向量。作为另一实例,可使用状态向量中间输出缓冲器48以将状态向量提供到FSM晶格30(例如,经由IR总线及处理缓冲器接口36)及压缩器40。
一旦由FSM晶格30产生所关注结果,就可将匹配结果存储在匹配结果存储器50中。举例来说,可将指示匹配(例如,检测到所关注模式)的“匹配向量”存储在匹配结果存储器50中。举例来说,接着可将匹配结果发送到匹配缓冲器52以经由总线接口28传输到处理器12。如先前描述,可压缩匹配结果。如可了解,匹配缓冲器52可包含存储器阵列。
也可在状态机引擎14中提供额外寄存器及缓冲器。例如,状态机引擎14可包含控制及状态寄存器54。此外,可提供还原及程序缓冲器56以最初用于配置FSM晶格30的STE或在分析期间还原FSM晶格30中的STE的状态。类似地,也可提供保存及修复映射缓冲器58以存储保存及修复映射以供设定及使用。如可了解,还原及程序缓冲器56及/或保存及修复映射缓冲器58可包含存储器阵列。
现参看图3,说明可操作为缓冲器的存储器61的框图。举例来说,存储器61可操作为状态机引擎14的缓冲器(例如,数据缓冲器32、匹配缓冲器52、还原及程序缓冲器56、保存及修复映射缓冲器58等等)。在某些实施例中,存储器61可包含充当缓冲器的存储器16。在所说明的实施例中,存储器61包含接收待写入到存储器61的串行数据的数据输入/输出节点(DQ)60。DQ 60的每一数据输入/输出节点(DQ)接收串行数据。此外,存储器61可包含任何合适数目个DQ 60。举例来说,在某些实施例中,存储器61可包含2、4、8、16、32、64或更多个DQ 60。存储器61还包含数据屏蔽节点(DM)62,数据屏蔽节点(DM)62接收对应于由DQ 60接收到的串行数据的串行屏蔽数据(下文称为“数据屏蔽”或DM数据)。
存储器61可包含用于将由DQ 60接收到的数据写入到存储器阵列的某些电路。举例来说,电路可经配置以经由DQ 60及DM 62接收串行数据,将串行数据转换为并行数据字(DW)及并行DM数据,改变DW的顺序以将经屏蔽DW分组在一起及将未经屏蔽DW分组在一起,改变DM数据的顺序以将屏蔽位分组在一起及将未屏蔽位分组在一起,及使用具有改变顺序的DW及具有改变顺序的DM数据以基于由电路接收未经屏蔽DW的顺序而仅将未经屏蔽DW写入到存储器阵列。
具体来说,存储器61的电路可包含数据接口64,数据接口64接收DQ数据及DM数据,处理DQ数据及DM数据,且分别在经修改DW接口66及经修改DM接口68上输出经修改DW数据及经修改DM数据。数据接口64将由DQ 60及DM 62接收到的串行数据转换为并行数据。在某些实施例中,DQ 60中的每一DQ可对应于用以载送单个数据字(DW)的一组并行数据总线。DW中的每一DW可包含2、4、8、16、32或更多位,其中每一位被提供在所述组并行数据总线的单独数据总线上。此外,DM 62可对应于用以载送并行DM数据的一组并行数据总线。
在数据接口64将由DQ 60及DM 62接收到的串行数据转换为并行数据(即,DW及并行DM数据)之后,可使用数据接口64以改变DW的顺序以通过将经屏蔽DW分组在一起及将未经屏蔽DW分组在一起而形成经修改DW数据。此外,数据接口64可改变并行DM数据的顺序以通过将屏蔽位分组在一起及通过将未屏蔽位分组在一起而形成经修改DM数据。
存储器61的电路也可包含输入/输出(I/O)选通DM屏蔽逻辑70,输入/输出(I/O)选通DM屏蔽逻辑70接收经修改DW数据及经修改DM数据且使用经修改DW数据及经修改DM数据以在接口72上提供数据以供存储在存储器阵列74中。如所说明,存储器阵列74包含多个存储器库76、78、80及82。在某些实施例中,存储器阵列74可包含1、2、4、8、16、32或更多个存储器库。如应了解,存储器库76、78、80及82中的每一者包含多个存储器单元。如本文中所使用,“电路”可指代数据接口64、IO选通DM屏蔽逻辑70、经修改DW接口66、经修改DM接口68、数据总线或其任何组合。
参看图4,说明可操作为缓冲器的存储器61的示意图。如上文所论述,存储器61包含接收待写入到存储器61的串行数据的DQ60及DM 62。在所说明的实施例中,DQ60包含第一DQ(DQ0)84、第二DQ(DQ1)86及额外DQ直到最后DQ(DQX)88,其中X+1表示存储器61的DQ 60的总数目。
此外,数据接口64包含缓冲器90(例如,用以将输入电压电平转换为互补金属氧化物半导体(CMOS)电压电平)及用以将由DQ60及DM 62接收到的串行数据转换为并行数据的串/并转换器92。具体来说,将经串行接收的DQ数据转换为并行DW,且将经串行接收的DM转换为并行DM数据。此外,经由DW接口100、102、104及并行DM数据接口96将DW及并行DM数据并行提供到多路复用器(MUX)98。使用MUX 98基于并行DM数据中的屏蔽位的顺序来改变DW的顺序。如所说明,DW包含第一DW(DW0)、第二DW(DW1)及额外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等等。
在存储器循环的操作期间,并行DM数据接口96的每一数据总线经配置以载送指示DW的对应DW经屏蔽或未经屏蔽的单一位。表1提供DW及并行DM数据的实例,所述DW及并行DM数据可被提供到各自具有八个位宽(例如,八个数据总线)的八个DW接口的存储器61中的MUX 98。
表1
DW0 | 10111101 |
DW1 | 00110011 |
DW2 | 10111100 |
DW3 | 11000000 |
DW4 | 00000011 |
DW5 | 00111100 |
DW6 | 00001101 |
DW7 | 10000000 |
DM | 01010011 |
在此实例中,并行DM数据内的屏蔽位“1”可指示对应数据将被屏蔽,且并行DM数据内的“0”屏蔽位可指示对应数据将未被屏蔽,然而,在其它实例中,并行DM数据内的屏蔽位“1”可指示对应数据将未被屏蔽,且并行DM数据内的屏蔽位“0”可指示对应数据将被屏蔽。此外,在此实例中,并行DM数据的最低有效位可对应于DW0,而并行DM数据的最高有效位可对应于DW7。在其它实例中,并行DM数据的最低有效位可对应于DW7,而并行DM数据的最高有效位可对应于DW0。因此,表2说明基于此实例中的并行DM数据的屏蔽位,哪些DW被屏蔽及哪些DW未被屏蔽。
表2
DW0 | 10111101 | 被屏蔽 |
DW1 | 00110011 | 被屏蔽 |
DW2 | 10111100 | 未被屏蔽 |
DW3 | 11000000 | 未被屏蔽 |
DW4 | 00000011 | 被屏蔽 |
DW5 | 00111100 | 未被屏蔽 |
DW6 | 00001101 | 被屏蔽 |
DW7 | 10000000 | 未被屏蔽 |
DM | 01010011 |
MUX 98包含经配置以并行接收DW及并行DM数据的多个输入。此外,MUX 98经配置以通过将经屏蔽DW分组在一起及通过将未经屏蔽DW分组在一起而改变DW的顺序,及通过将屏蔽位分组在一起及通过将未屏蔽位分组在一起而改变并行DM数据的顺序。尽管MUX 98将经屏蔽DW分组在一起,然而MUX 98可忽略对应于经屏蔽DW的数据且仅识别相应数据为经屏蔽数据。
MUX 98包含多个输出106、108、110,输出106、108、110经配置以将具有改变顺序的DW作为经修改DW数据输出到经修改DW接口66,且将具有改变顺序的并行DM数据作为经修改DM数据输出到经修改DM接口68。如下文表3中所说明,对于表1及2中说明的先前实例,这意味着来自表2的第三DW(DW2)、第四DW(DW3)、第六DW(DW5)及第八DW(DW7)将分别被输出为经修改DW数据中的第一DW(DW0)、第二DW(DW1)、第三DW(DW2)及第四DW(DW3)。如可了解,经修改DM接口68的每一数据总线经配置以载送指示DW 66的对应DW被屏蔽或未被屏蔽的单一位。
表3
DW0 | 10111100 | 未被屏蔽 |
DW1 | 11000000 | 未被屏蔽 |
DW2 | 00111100 | 未被屏蔽 |
DW3 | 10000000 | 未被屏蔽 |
DW4 | XXXXXXXX | 被屏蔽 |
DW5 | XXXXXXXX | 被屏蔽 |
DW6 | XXXXXXXX | 被屏蔽 |
DW7 | XXXXXXXX | 被屏蔽 |
DM | 11110000 |
如表3的实例中所说明,将未经屏蔽DW分组到DW0到DW3中,而将经屏蔽DW分组到DW4到DW7。此外,将DM数据的未屏蔽位分组到位0到3,且将DM数据的屏蔽位分组到位4到7。因此,经修改DM数据的屏蔽位仍对应于经修改DW数据的DW,其指示哪些DW被屏蔽及哪些DW未被屏蔽。如表3中所使用,多个“X”符号表示由DW4到DW7提供的数据的“不理会(don'tcare)”状态。
如上文所论述,I/O选通DM屏蔽逻辑70接收经修改DW数据及经修改DM数据且使用经修改DW数据及经修改DM数据以在接口72上提供数据以供存储在存储器阵列74中。具体来说,I/O选通DM屏蔽逻辑70包含经配置以输出计数的计数器112。计数器112经配置以接收经修改DM数据且由将DW识别为未经屏蔽(例如,未屏蔽位)的屏蔽位的数目来调整输出计数。因此,输出计数在接收经修改DM数据之前为第一值,且输出计数在接收经修改DM数据之后被更新为第二值(例如,第一值加上经修改DM数据的未屏蔽位的数目)。
继续表1到3中所说明的实例,输出计数可对应于接收经修改DM数据之前的十进制值“0”,且输出计数可对应于计数经修改DM数据的未屏蔽位的数目之后的十进制值“4”,如表4中所说明。表4还说明哪个MUX处理特定DW,如下文更详细描述。如可了解,计数器112可包含在从存储器阵列74读取数据之后发生的复位。此外,可将计数器112初始化为0。此外,可在具有4、8、16、32或更多个数据总线的数据总线114上提供输出计数。在某些实施例中,计数器112可经配置以计数多达存储器阵列74的存储器位置的总数目。
表4
初始计数 | 0 | |
经更新计数 | 4 | |
MUX0 | DW0 | 未被屏蔽 |
MUX1 | DW1 | 未被屏蔽 |
MUX2 | DW2 | 未被屏蔽 |
MUX3 | DW3 | 未被屏蔽 |
MUX4 | XXXXXXXX | 被屏蔽 |
MUX5 | XXXXXXXX | 被屏蔽 |
MUX6 | XXXXXXXX | 被屏蔽 |
MUX7 | XXXXXXXX | 被屏蔽 |
I/O选通DM屏蔽逻辑70包含多个MUX 116,所述多个MUX 116用以按正确预定顺序将经修改DW数据的DW提供到存储器阵列74(例如,在不指定行、列及/或库地址的情况下,基于接收未经屏蔽DW的顺序将DW写入到存储器阵列74)。具体来说,每一MUX 116经配置以接收DW及输出计数。此外,每一MUX 116包含唯一识别符,所述唯一识别符指示MUX 116相对于所有MUX 116的位置。因此,每一MUX 116可使用输出计数、相应MUX 116的位置及MUX 116的总数目以确定DW中的哪个DW对应于所述MUX 116及/或选择DW中对应于所述MUX 116的DW。在某些实施例中,使用MUX 116确定行、列及/或库以至少部分基于MUX 116最后用于写入数据的行、列及/或库的记录来写入数据。在其它实施例中,使用MUX 116确定行、列及/或库以至少部分基于输出计数、MUX 116的位置及/或MUX 116的总数目来写入数据。
在一些实施例中,每一MUX 116可比较输出计数与MUX 116相对于其它MUX 116的位置,且可至少部分基于输出计数与所述位置之间的比较确定DW中对应于MUX 116的DW,如表4中所展示。此外,比较输出计数与MUX 116的位置可包含计算由将输出计数除以MUX 116的总数目而得出的余数。举例来说,输出计数可对应于十进制值“29”,MUX 116相对于其它MUX 116的位置可为“3”(例如,MUX 116可为编号“0”到“7”的一组MUX 116中的第四个MUX),且MUX 116的总数目可为“8”。因此,在将输出计数除以MUX 116的总数目时得出余数“5”(例如29/8=3余数5)。在某些实施例中,可比较余数“5”与位置“3”以确定哪个MUX 116应选择DW0。
如可了解,使用当前输出计数确定针对所接收到的下一组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未屏蔽的情况下用以存储来自DW6的数据(且MUX5将确定将在DW0未屏蔽的情况下使用其存储来自DW0的数据)。作为又一实例,如果输出计数的值为“17”,那么MUX1可确定将在DW0未屏蔽的情况下使用其存储来自DW0的数据且MUX3可确定将在DW2未屏蔽的情况下使用其存储来自DW2的数据。
如上文所描述,表1到4展示针对所接收到的第一组DW的数据写入的实例。下文表5到8展示针对紧接在第一组DW之后接收到的第二组DW的数据写入的实例。
表5
如表5的DM数据说明,对于所接收到的第二组DW,仅DW4及DW5被屏蔽。如下文所展示,表6说明基于此实例中的并行DM数据的屏蔽位,哪些DW被屏蔽及哪些DW未被屏蔽。
表6
DW0 | 11111111 | 未被屏蔽 |
DW1 | 00111111 | 未被屏蔽 |
DW2 | 00001111 | 未被屏蔽 |
DW3 | 00000011 | 未被屏蔽 |
DW4 | 00000000 | 被屏蔽 |
DW5 | 11000000 | 被屏蔽 |
DW6 | 11110000 | 未被屏蔽 |
DW7 | 11111100 | 未被屏蔽 |
DM | 00110000 |
如表7的实例中所说明,将未经屏蔽DW分组到DW0到DW5中,而将经屏蔽DW分组到DW6到DW7。此外,将DM数据的未屏蔽位分组到位0到5中,且将DM数据的屏蔽位分组到位6到7中。因此,经修改DM数据的屏蔽位仍对应于经修改DW数据的DW,从而指示哪些DW被屏蔽及哪些DW未被屏蔽。如表7中所使用,多个“X”符号表示由DW6到DW7提供的数据的“不理会”状态。
表7
DW0 | 11111111 | 未被屏蔽 |
DW1 | 00111111 | 未被屏蔽 |
DW2 | 00001111 | 未被屏蔽 |
DW3 | 00000011 | 未被屏蔽 |
DW4 | 11110000 | 未被屏蔽 |
DW5 | 11111100 | 未被屏蔽 |
DW6 | XXXXXXXX | 被屏蔽 |
DW7 | XXXXXXXX | 被屏蔽 |
DM | 11000000 |
继续表5到7中所说明的实例,输出计数可对应于在接收经修改DM数据之前的十进制值“4”,且输出计数可对应于在计数经修改DM数据的未屏蔽位的数目之后的十进制值“10”,如表8中所说明。表8也说明哪个MUX处理特定DW。
表8
在某些实施例中,每一MUX 116也可接收经修改DM数据。在此类实施例中,每一MUX116可不一定接收输出计数且每一MUX 116可使用内部编程及/或逻辑取代输出计数。如可了解,MUX 98及/或MUX 116可包含用于在其上存储代码的任何合适的非暂时性有形机器可读媒体(例如,易失性及/或非易失性存储器)。代码可包含用于使MUX执行其所要功能的指令。
MUX 116将所选择数据输出到锁存装置118。每一锁存装置118经配置以接收来自耦合到锁存装置118的相应MUX 116的所选择DW及接收经修改DM数据。此外,锁存装置118选择性地启用全局输入/输出(GIO)驱动器120以经由接口72将数据提供到存储器阵列74。
现参看图5,说明用于将数据写入到存储器装置的存储器阵列的方法122的流程图。在框124处,将提供到存储器61的串行输入数据转换为具有第一组DW及第一DM数据的并行数据。然后,在框126处,第一MUX(例如,MUX 98)并行接收第一组DW及第一DM数据。如可了解,第一DM数据包含多个屏蔽位。多个屏蔽位中的每一屏蔽位对应于第一组DW的相应DW,且每一屏蔽位识别相应DW被屏蔽或未被屏蔽。
接着,在框128处,第一MUX通过将识别第一组DW的相应一或多个DW为未经屏蔽的第一DM数据的屏蔽位中的一或多个屏蔽位分组在一起而形成第二DM数据(例如,经修改DM数据)。在框130处,第一MUX通过将对应于第一DM数据的屏蔽位中的一或多个屏蔽位的第一组DW的相应一或多个数据字分组在一起而形成第二组DW。然后,在框132处,计数器(例如,计数器112)计数将第二组DW中的相应一或多个数据字识别为未经屏蔽的第二DM数据的一或多个屏蔽位的数目。
接着,在框134处,计数器使用第二DM数据中的一或多个屏蔽位的数目更新未屏蔽位的总数目(例如,计数)。在框136处,第二MUX(例如,MUX 116)使用更新前的计数值确定其相对于待接收第二组DW的第一DW的第三MUX的位置。然后,在框138处,第二MUX选择第二组DW的DW以使用第二组DW及第二DM数据写入到存储器阵列。接着,在框140处,锁存装置(例如,锁存装置118)至少部分基于第二DM数据锁存第二组DW的DW。因此,经屏蔽数据及/或未经屏蔽数据的组合可被顺畅地写入到操作为缓冲器的存储器装置。
虽然本发明可具有各种修改及替代形式,但已在图式中通过实例展示且在本文中详细描述特定实施例。然而,应理解,本发明并不希望被限于所揭示的特定形式。而是,本发明将涵盖落于如由所附权利要求书所界定的本发明的精神及范围内的所有修改、等效物及替代。
Claims (27)
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.根据权利要求20所述的设备,其中所述状态机包括具有所述存储器阵列的处理缓冲器。
24.根据权利要求20所述的设备,其中所述状态机包括具有所述存储器阵列的状态向量缓冲器,所述状态向量缓冲器用于存储状态向量数据。
25.根据权利要求20所述的设备,其中所述状态机包括具有所述存储器阵列的程序缓冲器。
26.根据权利要求20所述的设备,其中所述状态机包括具有所述存储器阵列的修复缓冲器,所述修复缓冲器用于存储修复映射数据。
27.根据权利要求20所述的设备,其中所述状态机包括具有所述存储器阵列的匹配缓冲器,所述匹配缓冲器用于存储匹配结果。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/133,272 | 2013-12-18 | ||
US14/133,272 US9135984B2 (en) | 2013-12-18 | 2013-12-18 | Apparatuses and methods for writing masked data to a buffer |
PCT/US2014/068871 WO2015094721A2 (en) | 2013-12-18 | 2014-12-05 | Apparatuses and methods for writing masked data to a buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105830160A CN105830160A (zh) | 2016-08-03 |
CN105830160B true CN105830160B (zh) | 2018-02-09 |
Family
ID=53369289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480068680.9A Active CN105830160B (zh) | 2013-12-18 | 2014-12-05 | 用于将经屏蔽数据写入到缓冲器的设备及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9135984B2 (zh) |
CN (1) | CN105830160B (zh) |
TW (1) | TWI537980B (zh) |
WO (1) | WO2015094721A2 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108220B2 (en) * | 2014-05-01 | 2018-10-23 | Wisconsin Alumni Research Foundation | Computer architecture having selectable, parallel and serial communication channels between processors and memory |
GB2528115B (en) * | 2014-07-11 | 2021-05-19 | Advanced Risc Mach Ltd | Dynamic saving of registers in transactions |
US10685142B2 (en) * | 2015-02-02 | 2020-06-16 | Indiana University Research And Technology Corporation | External resource control of mobile devices |
US9570125B1 (en) | 2016-03-15 | 2017-02-14 | Micron Technology, Inc. | Apparatuses and methods for shifting data during a masked write to a buffer |
US10930709B2 (en) | 2017-10-03 | 2021-02-23 | Lockheed Martin Corporation | Stacked transparent pixel structures for image sensors |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999019805A1 (en) * | 1997-10-10 | 1999-04-22 | Rambus Incorporated | Method and apparatus for two step memory write operations |
CN101609418A (zh) * | 2008-06-18 | 2009-12-23 | 英特尔公司 | 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的*** |
CN102467945A (zh) * | 2010-10-29 | 2012-05-23 | 海力士半导体有限公司 | 半导体存储装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9116493D0 (en) * | 1991-07-30 | 1991-09-11 | Inmos Ltd | Read and write circuitry for a memory |
US5896339A (en) * | 1996-09-23 | 1999-04-20 | Micron Technology, Inc. | Multi-bit block write in a random access memory |
GB2335762C (en) | 1998-03-25 | 2008-01-10 | Advanced Risc Mach Ltd | Write buffering in a data processing apparatus |
US6499081B1 (en) | 1999-02-23 | 2002-12-24 | Netlogic Microsystems, Inc. | Method and apparatus for determining a longest prefix match in a segmented content addressable memory device |
US7313639B2 (en) | 2003-01-13 | 2007-12-25 | Rambus Inc. | Memory system and device with serialized data transfer |
GB2414582B (en) | 2003-01-13 | 2007-08-01 | Rambus Inc | Coded write masking |
KR100813533B1 (ko) * | 2006-09-13 | 2008-03-17 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 그 데이터 마스크 방법 |
-
2013
- 2013-12-18 US US14/133,272 patent/US9135984B2/en active Active
-
2014
- 2014-12-05 WO PCT/US2014/068871 patent/WO2015094721A2/en active Application Filing
- 2014-12-05 CN CN201480068680.9A patent/CN105830160B/zh active Active
- 2014-12-18 TW TW103144359A patent/TWI537980B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999019805A1 (en) * | 1997-10-10 | 1999-04-22 | Rambus Incorporated | Method and apparatus for two step memory write operations |
CN101609418A (zh) * | 2008-06-18 | 2009-12-23 | 英特尔公司 | 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的*** |
CN102467945A (zh) * | 2010-10-29 | 2012-05-23 | 海力士半导体有限公司 | 半导体存储装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150170731A1 (en) | 2015-06-18 |
CN105830160A (zh) | 2016-08-03 |
WO2015094721A2 (en) | 2015-06-25 |
US9135984B2 (en) | 2015-09-15 |
TW201532070A (zh) | 2015-08-16 |
TWI537980B (zh) | 2016-06-11 |
WO2015094721A3 (en) | 2015-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915450B2 (en) | Methods and systems for padding data received by a state machine engine | |
US10372653B2 (en) | Apparatuses for providing data received by a state machine engine | |
US9886017B2 (en) | Counter operation in a state machine lattice | |
CN104603741B (zh) | 在模式辨识处理***中用于电力管理的方法及*** | |
CN104487957B (zh) | 用于编程状态机引擎的方法及装置 | |
TWI515668B (zh) | 用於一狀態機中偵測之方法及系統 | |
TWI515669B (zh) | 用於狀態機中資料分析之系統與方法 | |
CN104603742B (zh) | 用于状态机引擎的结果产生 | |
TWI600295B (zh) | 用於在狀態機中路由之方法及系統 | |
CN104583935B (zh) | 状态机引擎中的指令*** | |
CN104011723B (zh) | 状态机晶格中的布尔逻辑 | |
US10929154B2 (en) | Overflow detection and correction in state machine engines | |
CN104487956B (zh) | 用于使用状态机引擎中的状态向量数据的方法及*** | |
CN105830160B (zh) | 用于将经屏蔽数据写入到缓冲器的设备及方法 | |
US20170193351A1 (en) | Methods and systems for vector length management | |
US9570125B1 (en) | Apparatuses and methods for shifting data during a masked write to a buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |