TWI537980B - 用於寫入經遮罩資料至緩衝器之裝置及方法 - Google Patents

用於寫入經遮罩資料至緩衝器之裝置及方法 Download PDF

Info

Publication number
TWI537980B
TWI537980B TW103144359A TW103144359A TWI537980B TW I537980 B TWI537980 B TW I537980B TW 103144359 A TW103144359 A TW 103144359A TW 103144359 A TW103144359 A TW 103144359A TW I537980 B TWI537980 B TW I537980B
Authority
TW
Taiwan
Prior art keywords
data
mask
data blocks
multiplexer
bits
Prior art date
Application number
TW103144359A
Other languages
English (en)
Other versions
TW201532070A (zh
Inventor
帕塔薩拉斯 葛傑帕斯
大衛R 布朗
Original Assignee
美光科技公司
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 美光科技公司 filed Critical 美光科技公司
Publication of TW201532070A publication Critical patent/TW201532070A/zh
Application granted granted Critical
Publication of TWI537980B publication Critical patent/TWI537980B/zh

Links

Classifications

    • 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/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1009Data masking during input/output

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

用於寫入經遮罩資料至緩衝器之裝置及方法
本發明之實施例大致係關於半導體器件領域。更具體地,本發明之實施例可提供用於將經遮罩資料寫入至一緩衝器之一或多種技術及器件。
電腦系統通常用於數種組態中以提供多種運算功能。被分派開發電腦系統及系統組件之任務之設計工程師通常考慮處理速度、系統靈活性及大小約束。電腦系統通常包含可用以儲存資料(例如,程式及使用者資料)且可由其他系統組件(諸如處理器或周邊器件)存取之多個記憶體器件。此等記憶體器件可包含揮發性及非揮發性記憶體器件。
通常,諸如一動態隨機存取記憶體(DRAM)之一記憶體器件包含分為複數個記憶體庫或其他劃分之一記憶體陣列。基於藉由記憶體器件在操作期間接收之定址資訊,資料可儲存至記憶體陣列之適當庫中且可從其中讀出。例如,在DRAM之操作期間,可將一啟動(例如,主動)命令發送至記憶體陣列。啟動命令啟動記憶體陣列之一列。此外,可將一行選擇命令發送至記憶體陣列。行選擇命令選擇記憶體陣列之一行。在啟動列及選擇行的情況下,可自記憶體陣列之選定記憶體單元擷取資料。
在某些架構中,一記憶體器件或一記憶體器件之一部分可用作為一緩衝器。在將資料寫入至緩衝器中時,其可有益於在不使用列、行及/或庫選擇信號的情況下寫入資料。因此,資料按一預定順序供應及寫入至記憶體器件。接著,可按相同預定順序自記憶體器件讀取資料,因此維持一先進先出(FIFO)順序。然而,當待寫入至記憶體器件之資料包含經遮罩資料及未經遮罩資料時,經遮罩資料將被忽視且不被寫入至記憶體器件。不幸地,傳統記憶體架構無法在遮罩非待寫入之資料的同時,按一預定順序順暢寫入至用作為一緩衝器之一記憶體器件。
因此,本發明之實施例可針對上文陳述之問題之一或多者。
10‧‧‧系統
12‧‧‧處理器
14‧‧‧狀態機引擎
16‧‧‧記憶體
18‧‧‧外部儲存器
20‧‧‧編譯器
22‧‧‧輸入器件
24‧‧‧输出器件/顯示器
26‧‧‧網路介面器件
28‧‧‧第三代雙倍資料速率(DDR3)匯流排介面
30‧‧‧有限狀態機(FSM)晶格
32‧‧‧資料緩衝器
33‧‧‧指令緩衝器
34‧‧‧程序緩衝器
36‧‧‧排間(IR)匯流排及程序緩衝器介面
38‧‧‧解壓縮器
40‧‧‧壓縮器
41‧‧‧狀態向量系統
42‧‧‧狀態向量快取記憶體
44‧‧‧狀態向量記憶體緩衝器
46‧‧‧狀態向量中間輸入緩衝器
48‧‧‧狀態向量中間輸出緩衝器
50‧‧‧匹配結果記憶體
52‧‧‧匹配緩衝器
54‧‧‧控制及狀態暫存器
56‧‧‧還原及程式緩衝器
58‧‧‧保存及修復映射緩衝器
60‧‧‧資料輸入/輸出節點(DQ)
61‧‧‧記憶體
62‧‧‧資料遮罩節點(DM)
64‧‧‧資料介面
66‧‧‧經修改資料字組(DW)介面
68‧‧‧經修改資料遮罩(DM)介面
70‧‧‧輸入/輸出(I/O)閘控資料遮罩(DM)遮罩邏輯
72‧‧‧介面
74‧‧‧記憶體陣列
76‧‧‧記憶體庫
78‧‧‧記憶體庫
80‧‧‧記憶體庫
82‧‧‧記憶體庫
84‧‧‧第一資料輸入/輸出節點(DQ)(DQ0)
86‧‧‧第二資料輸入/輸出節點(DQ)(DQ1)
88‧‧‧最後資料輸入/輸出節點(DQ)(DQX)
90‧‧‧緩衝器
92‧‧‧串列轉並列轉換器
96‧‧‧並列資料遮罩(DM)資料介面
98‧‧‧多工器(MUX)
100‧‧‧資料字組(DW)介面
102‧‧‧資料字組(DW)介面
104‧‧‧資料字組(DW)介面
106‧‧‧輸出
108‧‧‧輸出
110‧‧‧輸出
112‧‧‧計數器
114‧‧‧資料匯流排
116‧‧‧多工器(MUX)
118‧‧‧鎖存器件
120‧‧‧全域輸入/輸出(GIO)驅動器
122‧‧‧方法
124‧‧‧方塊
126‧‧‧方塊
128‧‧‧方塊
130‧‧‧方塊
132‧‧‧方塊
134‧‧‧方塊
136‧‧‧方塊
138‧‧‧方塊
140‧‧‧方塊
圖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)、DDR2 SDRAM、DDR3 SDRAM等等。記憶體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。
諸如狀態向量記憶體緩衝器44、狀態向量中間輸入緩衝器46及狀態向量中間輸出緩衝器48之額外緩衝器可結合狀態向量快取記憶體42利用以適應狀態向量之快速擷取及儲存,同時透過狀態機引擎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之DQ 60及DM 62。在圖解說明之實施例中,DQ 60包含一第一DQ(DQ0)84、一第二DQ(DQ1)86及額外DQ直至一最後DQ(DQX)88,其中X+1表示記憶體61之DQ 60之總數目。
此外,資料介面64包含緩衝器90(例如,用以將輸入電壓位準轉換為互補性金屬氧化物半導體(CMOS)電壓位準)及用以將由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(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。
在此實例中,並列DM資料內之一遮罩位元「1」可指示對應資料將經遮罩,且並列DM資料內之一遮罩位元「0」可指示對應資料將未經遮罩,然而,在其他實例中,並列DM資料內之一遮罩位元「1」可指示對應資料將未經遮罩,且並列DM資料內之一遮罩位元「0」可指示對應資料將經遮罩。此外,在此實例中,並列DM資料之最低有效位元可對應於DW0,而並列DM資料之最高有效位元可對應於DW7。在其他實例中,並列DM資料之最低有效位元可對應於DW7,而並列DM資料之最高有效位元可對應於DW0。因此,表2圖解說明基於此實例中之並列DM資料之遮罩位元,哪些DW經遮罩及哪些DW未經遮罩。
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之實例中所圖解說明,將未經遮罩DW分組至DW0至DW3,而將經遮罩DW分組至DW4至DW7。此外,將DM資料之未遮罩位元分組至位元0至3,且將DM資料之遮罩位元分組至位元4至7。因此,經修改DM資料之遮罩位元仍對應於經修改DW資料之DW,其指示哪些DW經遮罩及哪些DW未經遮罩。如表3中所使用,多個「X」符號表示由DW4至DW7提供之資料之一「不理會(don't care)」狀態。
如上文所論述,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之記憶體位置之總數目。
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之DM資料圖解說明,對於所接收之第二組DW,僅DW4及DW5經遮罩。如下文所示,表6圖解說明基於此實例中之並列DM資料之遮罩位元,哪些DW經遮罩及哪些DW未經遮罩。
如表7之實例中所圖解說明,將未經遮罩DW分組至DW0至DW5,而將經遮罩DW分組至DW6至DW7。此外,將DM資料之未遮罩位元分組至位元0至5,且將DM資料之遮罩位元分組至位元6至7。因此,經修改DM資料之遮罩位元仍對應於經修改DW資料之DW,其指示哪些DW經遮罩及哪些DW未經遮罩。如表7中所使用,多個「X」符號表示由DW6至DW7提供之資料之一「不理會」狀態。
繼續表5至表7中圖解說明之實例,輸出計數可對應於在接收經修改DM資料之前之一十進位值「4」,且輸出計數可對應於在計數經修改DM資料之未遮罩位元之數目之後之一十進位值「10」,如表8中所圖解說明。表8亦圖解說明哪個MUX處理一特定DW。
在某些實施例中,各MUX 116亦可接收經修改DM資料。在此等實施例中,各MUX 116可不一定接收輸出計數且各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。因此,經遮罩資料及/或未經遮罩資料之一組合可順暢寫入至操作為一緩衝器之一記憶體器件。
雖然本發明可具有各種修改及替代形式,但是已在圖式中藉由實例展示且在本文中詳細描述特定實施例。然而,應瞭解,本發明並不旨在限於所揭示之特定形式。實情係,本發明涵蓋落於如藉由下列 隨附申請專利範圍定義之本發明之精神及範疇內之所有修改、等效物及替代。
60‧‧‧資料輸入/輸出節點(DQ)
61‧‧‧記憶體
62‧‧‧資料遮罩節點(DM)
64‧‧‧資料介面
66‧‧‧經修改資料字組(DW)介面
68‧‧‧經修改資料遮罩(DM)介面
70‧‧‧輸入/輸出(I/O)閘控資料遮罩(DM)遮罩邏輯
72‧‧‧介面
74‧‧‧記憶體陣列
84‧‧‧第一資料輸入/輸出節點(DQ)(DQ0)
86‧‧‧第二資料輸入/輸出節點(DQ)(DQ1)
88‧‧‧最後資料輸入/輸出節點(DQ)(DQX)
90‧‧‧緩衝器
92‧‧‧串列轉並列轉換器
96‧‧‧並列資料遮罩(DM)資料介面
98‧‧‧多工器(MUX)
100‧‧‧資料字組(DW)介面
102‧‧‧資料字組(DW)介面
104‧‧‧資料字組(DW)介面
106‧‧‧輸出
108‧‧‧輸出
110‧‧‧輸出
112‧‧‧計數器
114‧‧‧資料匯流排
116‧‧‧多工器(MUX)
118‧‧‧鎖存器件
120‧‧‧全域輸入/輸出(GIO)驅動器

Claims (30)

  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之裝置,其中該狀態機包括具有該記憶體陣列之一匹配緩衝器。
TW103144359A 2013-12-18 2014-12-18 用於寫入經遮罩資料至緩衝器之裝置及方法 TWI537980B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/133,272 US9135984B2 (en) 2013-12-18 2013-12-18 Apparatuses and methods for writing masked data to a buffer

Publications (2)

Publication Number Publication Date
TW201532070A TW201532070A (zh) 2015-08-16
TWI537980B true TWI537980B (zh) 2016-06-11

Family

ID=53369289

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103144359A TWI537980B (zh) 2013-12-18 2014-12-18 用於寫入經遮罩資料至緩衝器之裝置及方法

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)

* Cited by examiner, † Cited by third party
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

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
WO1999019805A1 (en) 1997-10-10 1999-04-22 Rambus Incorporated Method and apparatus for two step memory write operations
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 주식회사 하이닉스반도체 반도체 메모리 장치 및 그 데이터 마스크 방법
US8196009B2 (en) * 2008-06-18 2012-06-05 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code
KR101223537B1 (ko) * 2010-10-29 2013-01-21 에스케이하이닉스 주식회사 반도체 메모리 장치

Also Published As

Publication number Publication date
US20150170731A1 (en) 2015-06-18
CN105830160A (zh) 2016-08-03
CN105830160B (zh) 2018-02-09
WO2015094721A2 (en) 2015-06-25
US9135984B2 (en) 2015-09-15
TW201532070A (zh) 2015-08-16
WO2015094721A3 (en) 2015-08-13

Similar Documents

Publication Publication Date Title
TWI625631B (zh) 用於提供藉由狀態機器引擎所接收之資料之方法及裝置
TWI486810B (zh) 在狀態機晶格中之計數器操作
TWI515668B (zh) 用於一狀態機中偵測之方法及系統
US11706020B2 (en) Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms
US11403044B2 (en) Method and apparatus for performing multi-object transformations on a storage device
TWI569206B (zh) 用於狀態機引擎之結果產生
TWI489779B (zh) 狀態機晶格中之布林邏輯
TWI492062B (zh) 用於程式化狀態機引擎之方法與裝置
TWI600295B (zh) 用於在狀態機中路由之方法及系統
US11775320B2 (en) Overflow detection and correction in state machine engines
TWI537980B (zh) 用於寫入經遮罩資料至緩衝器之裝置及方法
TWI488110B (zh) 狀態機引擎及其方法
US10515135B1 (en) Data format suitable for fast massively parallel general matrix multiplication in a programmable IC
US10789182B2 (en) System and method for individual addressing
TW201419146A (zh) 用於處理狀態機引擎所接收之資料之方法及系統
US10146555B2 (en) Adaptive routing to avoid non-repairable memory and logic defects on automata processor
TWI836132B (zh) 儲存系統以及用於動態地擴縮儲存系統的排序操作的方法
TW201419158A (zh) 用於使用狀態機引擎中之狀態向量資料之方法及系統
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
WO2020073801A1 (zh) 一种3d图像处理中数据读写方法及***、存储介质及终端
US20220261257A1 (en) Systems and devices for accessing a state machine
US20200082898A1 (en) Multi-lvel memory hierarchy