閃存裝置及其操作的方法
【專利摘要】本發(fā)明涉及一種閃存裝置及其操作方法,該閃存裝置中的邏輯讀取操作時機(jī)可由焊盤串行輸出電路改善,所述焊盤串行輸出電路接收最后指令時脈前的預(yù)解碼指令信號以及預(yù)取邏輯信號,其在所述指令輸入序列的最后時脈中對所述焊盤串行輸出電路中的指令執(zhí)行快速解析。在另一實(shí)施方式中,第一指令的預(yù)解碼以及數(shù)據(jù)預(yù)取可在指令輸入的第4個時脈中執(zhí)行,第二指令的預(yù)解碼可在指令輸入的第7個時脈中執(zhí)行。二元及四元輸入/輸出串行周邊接口的兩種串行協(xié)議接口以及四元周邊接口皆可支持。
【專利說明】閃存裝置及其操作的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種閃存裝置及其操作的方法,且特別是有關(guān)于一種在閃存上的邏輯數(shù)據(jù)讀取的裝置及方法。
【背景技術(shù)】
[0002]由于較少的腳位數(shù)及簡單的接口,單位串行及多位串行閃存已經(jīng)變得普遍。最簡單的接口是一位串行周邊接口(Serial Peripheral Interface, SPI)。一位串行周邊接口通信協(xié)議包含使用者送出8位的指令、地址字節(jié)、以及選擇性的虛擬字節(jié)(drnnrnybytes)給串行周邊接口閃存裝置,并且串行周邊接口閃存裝置將回傳數(shù)據(jù)給使用者作為回應(yīng)。單一的8位指令可識別讀取、抹除/程序化、或另一個適當(dāng)?shù)牟僮鳌τ谝罂焖僮x取效能的高效能系統(tǒng)應(yīng)用,已經(jīng)發(fā)展出例如雙串行周邊接口(SP1-Dual)、四串行周邊接口(SP1-Quad)、以及四元周邊接口 (Quad Peripheral Interface, QPI)的多位串行接口。在四串行周邊接口中,以一次一位的方式串行地提供8位指令,但是所有的后續(xù)欄位(例如地址、選擇性的虛擬字節(jié)、以及數(shù)據(jù))是在4位(四)串行基礎(chǔ)上完成以改善讀取量。在四元周邊接口中,所有的欄位(例如8字節(jié)指令、地址、選擇性的虛擬字節(jié)以及數(shù)據(jù))都是以4位串行完成。以此方式,四元周邊接口于兩個時脈周期提供8位指令,而四串行周邊接口則需要8個時脈周期。各種多位串行快閃接口通信協(xié)議說明于例如由Jigour等人申請的第7558900號美國專利,其發(fā)布于2009年7月7日。
[0003]閃存裝置所執(zhí)行的讀取操作類型典型上包括閃存單元陣列讀取以及邏輯讀取。圖1繪示在典型的閃存中,用以執(zhí)行邏輯讀取的電路方塊示意圖。邏輯電路12從不同的寄存器(例如圖2中的寄存器4)接收邏輯數(shù)據(jù),例如狀態(tài)數(shù)據(jù)、聯(lián)合電子設(shè)備工程委員會(Joint Electron Device Engineering Council, JEDEC)制造商以及部分認(rèn)證數(shù)據(jù)。邏輯電路12也接收串行輸入SI,其包括多個指令以及不同的輸入數(shù)據(jù)。邏輯電路12完全地解碼在第8個時脈上的各個指令,假若所述指令為信號JEDEC、RDSR1或RDSR2時,則分別選擇數(shù)據(jù)JEDECID、SRl或是SR2,并將所選擇的指令以邏輯數(shù)據(jù)L0GICDATA的身分提供至數(shù)據(jù)寄存器14。當(dāng)指令為閃存裝置讀取指令時,數(shù)據(jù)寄存器14也從所述閃存單元陣列中接收陣列數(shù)據(jù)ARRAYDATA?;趤碜赃壿嬰娐?2的輸入信號,例如信號JEDEC、RDSR1以及RDSR2,數(shù)據(jù)寄存器14選擇邏輯數(shù)據(jù)L0GICDATA或是陣列數(shù)據(jù)ARRAYDATA,并且將所選擇數(shù)據(jù)以串行數(shù)據(jù)輸出信號SDOUT/輸出。焊盤串行輸出電路16包括輸出驅(qū)動器,當(dāng)焊盤串行輸出電路16在串行數(shù)據(jù)輸出信號SDOUT/為邏輯數(shù)據(jù)時被信號RDLD所致能,或是在串行數(shù)據(jù)輸出信號SDOUT/為存儲器陣列數(shù)據(jù)時被信號OEIN所致能時,所述輸出驅(qū)動器即輸出串行數(shù)據(jù)輸出信號SDOUT/至封裝的閃存裝置的接觸面,例如鉛、焊盤或是腳位等。焊盤串行輸出電路16是由系統(tǒng)時脈SCK控制,而邏輯電路12以及數(shù)據(jù)寄存器14則由時脈信號CLK所控制,也就是由輸入焊盤電路10所緩沖的系統(tǒng)時脈SCK。
[0004]邏輯電路12的更詳細(xì)細(xì)節(jié)繪示于圖2中。邏輯電路12對串行輸入SI中的指令解碼,并且提供一信號,其可唯一識別邏輯讀取指令、用于讀取數(shù)據(jù)JEDECID的說明性信號JEDEC、用于讀取第一狀態(tài)寄存器的信號RDSRl以及用于讀取第二狀態(tài)寄存器的信號RDSR2。這些信號在組合性邏輯電路24中組合,以獲得象征邏輯數(shù)據(jù)讀取指令的信號RDLD。信號RDLD被施于多工器26的選定輸入,當(dāng)觸發(fā)信號RDLD時,多工器26從其多個數(shù)據(jù)輸入的其中之一選擇邏輯數(shù)據(jù)LOGICDATA,否則即選擇來自于寄存器25的數(shù)據(jù),寄存器25儲存由主陣列感測放大器2接收的閃存陣列數(shù)據(jù)。
[0005]焊盤串行輸出電路16的更詳細(xì)細(xì)節(jié)繪示于圖3中。輸出驅(qū)動器34由時脈信號CLK以及來自D型正反器32的輸出致能信號OE控制。D型正反器32基于施加于輸入端SET的信號RDLD以及施加于輸入端D的信號OEIN而產(chǎn)生輸出致能信號0E。輸入信號OEIN用于陣列讀取。D型正反器32以及輸出驅(qū)動器34皆由時脈信號CLK控制。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的一實(shí)施例提供一種閃存裝置,其具有可回應(yīng)于一組邏輯讀取指令而輸出邏輯數(shù)據(jù)的能力,包括外部信號輸入端、可定址閃存單元陣列、數(shù)據(jù)寄存器、多數(shù)個寄存器以及指令和控制邏輯電路。數(shù)據(jù)寄存器耦接于所述可定址閃存單元陣列,用以接收并儲存來自于所述可定址閃存單元陣列的陣列數(shù)據(jù)。多個寄存器用以儲存邏輯數(shù)據(jù)。指令和控制邏輯電路,包括預(yù)取邏輯電路(pre-fetch logic)以及輸出控制邏輯電路。預(yù)取邏輯電路耦接于所述外部信號輸入端,用以當(dāng)所述外部信號輸入端接收指令的最高有效位的第一部分序列為預(yù)測的特定邏輯數(shù)據(jù)讀取指令時,依據(jù)所述多個邏輯讀取指令的特定其中之一,從所述多個邏輯數(shù)據(jù)寄存器的其中之一預(yù)取邏輯數(shù)據(jù)。輸出控制邏輯電路耦接于所述外部信號輸入端,用以當(dāng)所述外部信號輸入端接收指令的最高有效位的第二部分序列為預(yù)測的所述多數(shù)個邏輯數(shù)據(jù)讀取指令的任意其中之一時,產(chǎn)生預(yù)測的邏輯讀取指令信號。所述閃存裝置更包括焊盤串行輸出電路,其耦接于所述數(shù)據(jù)寄存器、預(yù)取邏輯電路、輸出控制邏輯電路以及外部信號接收端,用以當(dāng)該預(yù)測的邏輯讀取指令信號以及除了所述第一部分序列及第二部分序列之外的部分指令解析收到的所述多個邏輯數(shù)據(jù)讀取指令的任意其中之一時,選擇及輸出來自所述預(yù)取邏輯電路的邏輯數(shù)據(jù)。
[0007]本發(fā)明的另一實(shí)施例提供一種操作閃存裝置的方法,所述閃存裝置具有閃存單元陣列,用以回應(yīng)于具有預(yù)定指令位數(shù)量的邏輯讀取指令,以提供邏輯數(shù)據(jù)至應(yīng)用程序。所述方法包括:接收位數(shù)少于預(yù)定指令位數(shù)量的指令的位序列,所述多個接收的位序列為所述指令的多個最高有效位。在所述閃存裝置的邏輯電路中對所述接收的位序列預(yù)解碼(pre-decoding),以判別所述接收位序列是否匹配對應(yīng)的邏輯讀取指令的位序列。在所述焊盤串行輸出電路中完成對所述指令其余位的解碼,以判別在所述預(yù)解碼的步驟中的匹配是否正確地預(yù)測所述邏輯讀取指令。依據(jù)所述邏輯讀取指令輸出邏輯數(shù)據(jù)。
[0008]本發(fā)明的另一實(shí)施例提供一種操作閃存裝置的方法,所述閃存裝置具有閃存單元陣列,用以回應(yīng)于具有預(yù)定指令位數(shù)量的邏輯讀取指令,以提供邏輯數(shù)據(jù)至應(yīng)用程序,所述方法包括:接收位數(shù)少于預(yù)定指令位數(shù)量的指令的第一位序列,所述多個接收的第一位序列為所述指令的多個最高有效位。在所述閃存裝置的邏輯電路中對所述接收的第一位序列預(yù)解碼,以判別所述接收的第一位序列是否匹配對應(yīng)的邏輯讀取指令的位序列。依據(jù)在所述預(yù)解碼步驟中匹配的所述邏輯讀取指令來預(yù)取邏輯數(shù)據(jù)。接收位數(shù)少于預(yù)定指令位數(shù)量但多于所述第一位序列的指令的第二位序列,所述多個接收的第二位序列為所述指令的多個最高有效位。在所述閃存裝置的邏輯電路中對所述接收的第二位序列預(yù)解碼,以判別所述接收的第二位序列是否匹配對應(yīng)的邏輯讀取指令的位序列。在所述焊盤串行輸出電路中完成對所述指令其余位的解碼,以判別在所述第二序列預(yù)解碼的步驟中的匹配是否正確地預(yù)測所述邏輯讀取指令。輸出在所述預(yù)取步驟中所預(yù)取的邏輯數(shù)據(jù)。在一變化中,最高有效位的所述第一序列以及第二序列為7位。在另一變化中,最高有效位的所述第一部分序列為4位,且最高有效位的所述第二部分序列為7位。
【專利附圖】
【附圖說明】
[0009]圖1是現(xiàn)有技術(shù)中一種閃存裝置的焊盤、邏輯電路以及數(shù)據(jù)寄存器電路的方塊示意圖。
[0010]圖2是圖1中的邏輯電路的細(xì)部方塊示意圖。
[0011]圖3是圖1中的焊盤串行輸出電路的細(xì)部方塊示意圖。
[0012]圖4是繪示圖1中的閃存裝置的失效情形的時序圖。
[0013]圖5是繪示圖4的時序圖的部分的細(xì)部時序圖。
[0014]圖6是一種包括指令預(yù)解碼及數(shù)據(jù)預(yù)取的閃存裝置架構(gòu)的電路示意圖。
[0015]圖7是繪示不同的邏輯讀取指令的數(shù)位表示法的示意圖。
[0016]圖8是繪示包括于圖6中的閃存裝置的操作的不同信號的時序圖。
[0017]圖9是圖6中的閃存裝置的焊盤、邏輯電路以及數(shù)據(jù)寄存器電路的方塊示意圖。
[0018]圖10是圖9中的邏輯電路的細(xì)部方塊示意圖。
[0019]圖11是圖9中的焊盤串行輸出電路的細(xì)部方塊示意圖。
[0020]圖12是一種包括用于QPI模式中的指令預(yù)解碼及數(shù)據(jù)預(yù)取的閃存裝置架構(gòu)的部分電路示意圖。
[0021]圖13是概述圖6的閃存裝置的操作中,使用指令預(yù)解碼以及邏輯數(shù)據(jù)預(yù)取進(jìn)行邏輯數(shù)據(jù)讀取的流程圖。
[0022]圖14是概述閃存裝置的操作中,僅使用7位指令預(yù)解碼以及邏輯數(shù)據(jù)預(yù)取進(jìn)行邏輯數(shù)據(jù)讀取的流程圖。
[0023]其中,附圖標(biāo)記說明如下:
[0024]2、109:主陣列感測放大器
[0025]4、25、107:寄存器
[0026]10、48、134:輸入焊盤電路
[0027]12、54、124:邏輯電路
[0028]14、52、122:數(shù)據(jù)寄存器
[0029]16、46、130、131、132、133:焊盤串行輸出電路
[0030]24、102、108、110:組合性邏輯電路
[0031]26、104、116:多工器
[0032]32、112、114:D 型正反器
[0033]34、118:輸出驅(qū)動器
[0034]40:寫入控制邏輯電路
[0035]42:狀態(tài)寄存器[0036]50、120:指令和控制邏輯電路
[0037]56:高壓產(chǎn)生器
[0038]58:頁面地址閂鎖及計數(shù)器
[0039]60:字節(jié)地址閂鎖及計數(shù)器
[0040]62:安全寄存器
[0041]64:列解碼電路
[0042]64_1:寫入保護(hù)邏輯電路
[0043]66:閃存單元陣列
[0044]68:行解碼電路
[0045]68_1:256字節(jié)頁面緩沖器
[0046]68_2:32感測放大器區(qū)塊
[0047]100:4位預(yù)解碼器
[0048]106:7位預(yù)解碼器
[0049]140、160:流程圖
[0050]141 ?150、161 ?169:步驟
[0051]ARRAYDATA:陣列數(shù)據(jù)
[0052]A1、B1、C1、D1、E1、F1:箭號
[0053]A2、B2、C2、D2:時間點(diǎn)
[0054]CLK:時脈信號
[0055]CLKU CLKj:緩沖時脈輸入腳位
[0056]CS:芯片選擇輸入腳位
[0057]D、SET、SETI’:輸入端
[0058]100、101、102、103:第一?第四輸入/輸出信號線
[0059]JEDEC, RDSRl、RDSR2、RDLD, OEIN、PD4_RDSR1、PD4RDSR2、PD4_JEDEC, PD7_RDSR1、PD7_RDSR2、PD7_JEDEC、SETl、ARRAY READ:信號
[0060]JEDECID、SRl、SR2:數(shù)據(jù)
[0061]LOGICDATA:邏輯數(shù)據(jù)
[0062]OE:輸出致能信號
[0063]PRECMD〈 1: 0>:預(yù)指令信號
[0064]Q:輸出端
[0065]S1:串行輸入
[0066]SDOUT/:串行數(shù)據(jù)輸出信號
[0067]SCK:系統(tǒng)時脈
[0068]SCK’:系統(tǒng)時脈輸入腳位
[0069]SELECT〈1:0>:選擇信號
【具體實(shí)施方式】
[0070]閃存可廣泛地適用于數(shù)位電子裝置及系統(tǒng)中。然而,具有高效能的裝置及系統(tǒng)通常需要閃存操作在較高的頻率。舉例而言,在存儲器讀取的操作情形中,雖然在所述指令后使用虛置時脈(du_y clock)可允許較高頻率的操作,但邏輯讀取操作的速度仍可能出現(xiàn)瓶頸。此問題是因在指令解碼和邏輯電路、數(shù)據(jù)寄存器電路、互聯(lián)內(nèi)部信號線中過多的延遲所造成。
[0071]例如信號JEDEC讀取指令(9Fh)、第一狀態(tài)寄存器讀取指令(信號RDSR105h)以及第二狀態(tài)寄存器讀取指令(信號RDSR235h),其皆為邏輯讀取指令的例子。信號JEDEC讀取指令從所述裝置輸出制造商以及裝置身分字節(jié),用以判斷所述裝置的身分。信號RDSRl以及RDSR2讀取指令分別輸出第一狀態(tài)寄存器以及第二狀態(tài)寄存器的內(nèi)容。
[0072]圖4繪示信號JEDEC、RDSRl以及RDSR2在非常高頻操作中的操作情形,并假設(shè)在所述閃存裝置中沒有其他瓶頸。串行輸入SI包括8個時脈,用以在上升邊緣控制8個指令位,之后接著多個在下降邊緣用于控制數(shù)據(jù)的額外時脈。所述閃存可設(shè)計為使第8個時脈不只在指令的上升邊緣控制其最低有效位(Least Significant Bit,LSB),也在其下降邊緣控制其第I個數(shù)據(jù)位,即最左邊的向下箭頭所指之處。因此,用于完成指令解碼及抓取(fetch)以及輸出數(shù)據(jù)的時序容忍度(timing margin)僅為相當(dāng)短的半周期。
[0073]不幸的是,假設(shè)在所述閃存中沒有其他瓶頸,則當(dāng)操作的頻率提升至一特定點(diǎn)時,所述半周期的時序容忍度是不足的,如同圖5中所繪示。當(dāng)出現(xiàn)許多延遲時,其中較為顯著的延遲以箭號A1、B1、C1、D1及El標(biāo)示。箭號Al標(biāo)示由系統(tǒng)時脈SCK的緩沖所導(dǎo)致的延遲,其使得內(nèi)部時脈信號CLK可以被提供。箭號BI標(biāo)示在所述第8個位到達(dá)后,解碼所述指令以產(chǎn)生信號JEDEC、RDSR1或是RDSR2的延遲。箭號Cl標(biāo)示在邏輯電路12中,在信號JEDEC、RDSRl或是RDSR2產(chǎn)生后選擇適當(dāng)邏輯數(shù)據(jù)的延遲。箭號Dl標(biāo)示在陣列數(shù)據(jù)ARRAYDATA和邏輯數(shù)據(jù)LOGICDATA之間選擇用于輸出串行數(shù)據(jù)輸出信號SDOUT/時,與數(shù)據(jù)寄存器14中的組合性邏輯電路24以及多工器26 (繪示于圖2)中的時脈信號CLK的上升邊緣有關(guān)的延遲。箭號El標(biāo)示延著RDLR信號路徑以及在D型正反器32中的時脈信號CLK的上升邊緣,與用于產(chǎn)生輸出致能信號OE有關(guān)的延遲,其中輸出致能信號OE致能輸出驅(qū)動器34。箭號Fl標(biāo)示整體的延遲,其在此例中為將近整個周期且遠(yuǎn)超過所述半周期的時序容忍度。
[0074]理想的閃存的操作頻率一般而言是較高的。在存儲器陣列讀取操作中,當(dāng)改善的時機(jī)消除瓶頸時,邏輯讀取操作中的時機(jī)延遲可能超過所述半周期的時序容忍度,且成為更高頻率操作中的下一個瓶頸。有利的是,此處的多個實(shí)施方式可用不同的方式改善邏輯讀取操作的時機(jī)。
[0075]邏輯讀取操作的時機(jī)可由焊盤串行輸出電路改善,其在最后一個指令時脈前接收預(yù)解碼指令信號以及預(yù)取邏輯數(shù)據(jù),并且對所述焊盤串行輸出電路的指令輸入序列的最后一個時脈的指令執(zhí)行快速解析(fast resolution),以避免串行邏輯電路延遲、數(shù)據(jù)寄存器延遲以及內(nèi)部信號線延遲。在一 SPI的說明性實(shí)施方式中,指令預(yù)解碼在指令輸入的第7個時脈中完成,且用以產(chǎn)生預(yù)指令(pre-C0_and)信號,所述預(yù)指令信號可預(yù)先提供至所述焊盤串行輸出電路,所述預(yù)解碼指令也可用以預(yù)取邏輯數(shù)據(jù),所述邏輯數(shù)據(jù)可預(yù)先提供至所述焊盤串行輸出電路。在另一 SPI的說明性實(shí)施方式中,指令預(yù)解碼在指令輸入的第4個時脈中完成,用以產(chǎn)生預(yù)指令信號,所述預(yù)指令信號可預(yù)先提供至所述焊盤串行輸出電路,而另一指令預(yù)解碼則在指令輸入的第7個時脈中完成,用以預(yù)取邏輯數(shù)據(jù),所述邏輯數(shù)據(jù)可預(yù)先提供至所述焊盤串行輸出電路。在一 QPI的說明性實(shí)施方式中,指令預(yù)解碼在4位指令輸入的第一個時脈中完成,用以產(chǎn)生預(yù)指令信號,所述預(yù)指令信號可預(yù)先提供至所述四個焊盤串行輸出電路的各個電路,所述預(yù)指令信號也可預(yù)取邏輯數(shù)據(jù),所述邏輯數(shù)據(jù)可預(yù)先提供至所述四個焊盤串行輸出電路的各個電路??焖僦噶罱馕隹稍谒膫€焊盤串行輸出電路的各個電路的指令輸入序列的第2個時脈中完成,所述四個焊盤串行輸出電路各接收所述指令的4個LSB。所述指令預(yù)解碼、邏輯數(shù)據(jù)預(yù)取以及在焊盤串行輸出電路中的快速指令解析的技術(shù)可單獨(dú)或以任意組合使用,以改善邏輯讀取的時機(jī)。[0076]圖6繪示一閃存裝置結(jié)構(gòu)的方塊示意圖,其包括邏輯讀取指令預(yù)解碼、邏輯數(shù)據(jù)預(yù)取以及在焊盤串行輸出電路中的快速指令解析。由于不同的定址、讀取以及寫入電路,閃存單元陣列66可定址用于讀取以及寫入,所述電路包括列解碼電路64以及行解碼電路68,其中,行解碼電路68包括32感測放大器區(qū)塊681以及256字節(jié)頁面緩沖器682,32感測放大器區(qū)塊681用以讀取閃存單元陣列66,256字節(jié)頁面緩沖器682用以寫入閃存單元陣列66。寫入保護(hù)邏輯電路641回應(yīng)于狀態(tài)寄存器42以在特定情形下防止寫入閃存單元陣列66。指令和控制邏輯電路50控制高壓產(chǎn)生器56以及頁面地址閂鎖及計數(shù)器58,其中高壓產(chǎn)生器56以及頁面地址R鎖及計數(shù)器58輪流控制列解碼電路64。指令和控制邏輯電路50也控制字節(jié)地址円鎖及計數(shù)器60,其輪流控制行解碼電路68。指令和控制邏輯電路50包括四個輸入/輸出信號線Ι00-Ι03、緩沖時脈輸入腳位CLKl以及芯片選擇輸入腳位CS。支持SPI和QPI,包括標(biāo)準(zhǔn)SPI指令、雙(dual) SPI指令、四元(quad) SPI指令以及QPI指令。當(dāng)使用「致能QPI (38h)」指令將所述裝置從標(biāo)準(zhǔn)/雙/四元SPI模式切換至QPI模式時,QPI操作即被支持。使用「禁能QPI (FFh)」指令可將所述裝置切回至標(biāo)準(zhǔn)/雙/四元SPI模式。
[0077]指令預(yù)解碼的實(shí)施方式可用三個指令說明,即信號RDSRl (05h)、RDSR2 (35h)以及JEDEC(QFh)。其可加入額外的邏輯數(shù)據(jù)以及邏輯讀取指令,舉例而言,第三狀態(tài)寄存器,但此處所描述的原則仍可應(yīng)用。由于指令位是在時脈的上升邊緣感測,所以任何指令皆可以明確地在第8個時脈的上升邊緣判斷。然而,如同圖7所繪示,信號JEDEC、RDSRl以及RDSR2指令的LSB為相同,即皆為I。因此,在這些指令中,在第7個時脈的上升邊緣可以進(jìn)行明確的判斷。雖然所述8個指令位對于所述指令解碼器仍為未知,但所述指令可由提早一個時脈周期對指令位解析而獲得,即僅基于7個指令位。此外,如同圖7所繪示,這些指令的4個最高有效位(Most Significant Bit, MSB)是不同的。所以,在這些指令中,在第4個時脈的上升邊緣可進(jìn)行明確的判斷,用以從狀態(tài)寄存器42預(yù)取數(shù)據(jù)JEDEC、SR1以及SR2。在所述4個指令位之后的解碼操作可能不會像其他指令一般的明確,但這樣的不明確性可以基于7個位的預(yù)解碼及/或在焊盤串行輸出電路46 (繪示于圖6)執(zhí)行的指令解析而解決。
[0078]圖8是具有4位指令預(yù)解碼以及數(shù)據(jù)預(yù)取、7位指令預(yù)解碼以及在所述焊盤串行輸出電路的指令解析的信號JEDEC、RDSR1和RDSR2指令的時序圖。圖9是繪示圖6中的閃存電路中,用于實(shí)現(xiàn)上述操作的詳細(xì)方塊示意圖。邏輯電路54的細(xì)節(jié)繪示于圖10中,焊盤串行輸出電路46的細(xì)節(jié)繪示于圖11中。
[0079]如圖9所示,系統(tǒng)時脈SCK施于焊盤串行輸出電路46,并且同時施于輸入焊盤電路48,系統(tǒng)時脈SCK緩沖于輸入焊盤電路48且以時脈信號CLK的身份提供。時脈信號CLK施于邏輯電路54以及數(shù)據(jù)寄存器52,所述數(shù)據(jù)寄存器52配置于指令和控制邏輯50 (繪示于圖6)。邏輯電路54也接收邏輯數(shù)據(jù),例如信號JEDEC以及來自狀態(tài)寄存器的狀態(tài)數(shù)據(jù)SRl以及SR2。邏輯電路54額外接收串行輸入SI。[0080]如圖10繪示,邏輯電路54包括4位預(yù)解碼器100,其解碼串行輸入SI的4個MSB,并且若所述4個MSB分別指示為信號RDSR1、RDSR2或JEDEC時,4位預(yù)解碼器100觸發(fā)信號 PD4RDSR1、PD4RDSR2 或 PD4JEDEC。信號 PD4RDSR1、PD4RDSR2 以及 PD4JEDEC 施于組合性邏輯電路102,其產(chǎn)生用于控制多工器104的選擇信號SELECT〈1:0>。制造商和部分標(biāo)識信號JEDEC以及來自狀態(tài)寄存器的狀態(tài)數(shù)據(jù)SRl和SR2以數(shù)據(jù)輸入的身分施于多工器104,這些信號的選擇是基于選擇信號SELECT〈1:0>,并以預(yù)取數(shù)據(jù)信號邏輯數(shù)據(jù)LOGICDATA的身分施于焊盤串行輸出電路46 (繪示于圖9)。因此,如圖8所示,在時間點(diǎn)A2時,邏輯數(shù)據(jù)LOGICDATA可以在第4個時脈的上升邊緣后即提供至焊盤串行輸出電路46。
[0081]圖10繪示邏輯電路54包括7位預(yù)解碼器106,其解碼串行輸入SI的7個MSB,并且若所述7個MSB分別指示為信號RDSRl、RDSR2或JEDEC時,7位預(yù)解碼器106觸發(fā)信號PD7RDSR1、PD7RDSR2 或 PD7JEDEC。信號線 PD7RDSR1、PD7RDSR2 以及 PD7JEDEC 施于組合性邏輯電路108,其產(chǎn)生預(yù)指令信號PRECMD〈1:0>。所述預(yù)指令信號PRECMD〈1:0>可以在時間點(diǎn)B2 (繪示于圖8)提供至焊盤串行輸出電路46,即緩沖時脈信號CLK的第7個時脈的上升邊緣。如圖8所示,預(yù)指令信號PRECMD〈1:0>的值如同所繪示的為O及I。
[0082]如圖11所示,焊盤串行輸出電路46包括組合性邏輯電路110,其接收預(yù)指令信號PRECMD<1:0>以及串行輸入SI,用以在最后一個運(yùn)算碼(opcode)周期中執(zhí)行快速指令解析。預(yù)指令信號PRECMD〈1:0>標(biāo)示所述指令是否為預(yù)期的信號RDSRl、RDSR2、JEDEC或是這些指令以外的指令。組合性邏輯電路110組合預(yù)指令信號PRECMD〈1:0>與所述指令的LSB,以解析所述指令是否確實(shí)為信號RDSRl、RDSR2或JEDEC,并且將此結(jié)果施于D型正反器112的輸入端D,用以在時間點(diǎn)C2 (繪示于圖8)產(chǎn)生輸出至輸入端SET1’,亦即在第8個時脈信號CLK之后的上升邊緣。因此,當(dāng)所述指令為預(yù)期的信號RDSR1、RDSR2或JEDEC,并且所述指令的LSB為I (繪示于圖7)時,信號SETl被觸發(fā)。否則,信號SETl不會被觸發(fā)。
[0083]焊盤串行輸出電路46也包括另一 D型正反器114,其在輸出端Q提供輸出致能訊號OE至輸出驅(qū)動器118。D型正反器114在其輸入端D接收信號0ΕΙΝ,其用于致能陣列讀取。D型正反器114也包括輸入端SET1’以及SET,其分別接收信號SETl和RDLD。當(dāng)信號SETl和RDLD皆為O時,D型正反器114的狀態(tài)以及輸出驅(qū)動器118的致能情形是由用來執(zhí)行陣列讀取的信號OEIN所決定。然而,當(dāng)信號SETl為1,即確認(rèn)應(yīng)執(zhí)行邏輯讀取時,輸出致能訊號OE在時間點(diǎn)D2(繪示于圖8)產(chǎn)生,即在第8個指令時脈的下降邊緣產(chǎn)生。此時機(jī)確保來自輸出驅(qū)動器118的數(shù)據(jù)在第8個指令的時脈下降邊緣為可用的,并可預(yù)期在所述閃存裝置中用于適當(dāng)?shù)牟僮髦小?br>
[0084]串行數(shù)據(jù)輸出信號SDOUT/和邏輯數(shù)據(jù)LOGICDATA施于多工器116的輸入端,并且在以下的方法中擇其一施于輸出驅(qū)動器118的輸入端。信號ARRAY READ與閃存單元陣列66的讀取相關(guān),且在陣列讀取指令解碼前都不會被觸發(fā)。因此,信號ARRAY READ預(yù)設(shè)是不會觸發(fā)的,此使得所述多工器將預(yù)設(shè)為選擇邏輯數(shù)據(jù)LOGICDATA。
[0085]在一些指令組中,無法基于所述指令的7個MSB作出所述指令的明確判斷。舉例而言,信號JEDEC(9Fh或是10011111)即無法基于所述7個MSB與9Eh (10011110)區(qū)隔。類似地,信號RDSRl (05h或00000101)亦無法基于所述7個MSB與04h (00000100)區(qū)隔。當(dāng)無法基于所述7個MSB進(jìn)行明確判斷時,將出現(xiàn)兩種可能的結(jié)果。
[0086]第一個情況以指令9Eh為例。目前9Eh為無效的指令,由于輸出信號JEDEC數(shù)據(jù)不會影響所述閃存且可能會被所述裝置或系統(tǒng)忽略,因此從所述無效的9Eh推測信號JEDEC實(shí)務(wù)上可能不會出現(xiàn)問題。此外,一個精心設(shè)計的系統(tǒng)或裝置不應(yīng)發(fā)布此種無效的指令。因此,當(dāng)因無效指令產(chǎn)生不明確性時,此問題可忽視。盡管如此,對于所述閃存控制系統(tǒng)而言,理想上仍希望能避免將無效的指令誤解為有效的指令。
[0087]第二個情況以指令04h為例。在一些閃存中,目前04h為寫入禁能指令,其被發(fā)布以將所述狀態(tài)寄存器中的寫入致能閂鎖(write enable latch,WEL)位從I重置為O。因此,以電腦程序的觀點(diǎn)而言,04h可以是有效的指令。然而,假若如此的指令被所述閃存控制電路誤解為信號RDSR105h,電腦程序?qū)l(fā)生故障。對于接收這些無法基于其7個MSB進(jìn)行明確判斷的有效指令的閃存而言,理想上希望所述閃存控制系統(tǒng)能夠偵測潛在的錯誤指令以及適當(dāng)?shù)靥幚砥浣獯a。
[0088]焊盤串行輸出電路46中的組合性邏輯電路110在以下的方法中對7位預(yù)解碼進(jìn)行模糊解析。無效指令9Eh以及寫入致能閂鎖指令04h的LSB皆包括一個O。在此情形中,組合性邏輯電路110的輸出端傳輸O至正反器112的輸入端D,使D型正反器112儲存O并使得輸出端Q傳輸O至正反器114的輸入端SET1’,其不覆蓋輸入端D的邏輯值。因此,輸出致能信號OE的任何觸發(fā)(assertion)由輸入端D所控制。
[0089]此處描述的技術(shù)可應(yīng)用于SPI或QPI接口中。圖6中所示的閃存裝置結(jié)構(gòu)可以修改為如圖12所示,用以如同QPI —般支持一位以及多位SPI。
[0090]在一位以及多位SPI接口中,8位指令以一位的串行提供,也就是在8個時脈的各個時脈中各提供一個位。此輸入以串行輸入SI提供。對于多位SPI而言,圖6所示的閃存裝置結(jié)構(gòu)可修改為包括多個焊盤串行輸出電路電路,其數(shù)量等于在一時間點(diǎn)中控制的多個輸出位數(shù)量,并且在每個焊盤串行輸出電路中可執(zhí)行快速指令解析。預(yù)指令信號PRECMD〈1:0>可以具有O、I值以致能各個焊盤串行輸出電路,用以輸出。
[0091]在QPI接口中,8位的指令以4位串行提供,也就是使用兩個時脈個別傳送4個位。對于QPI接口而言,圖6所示的閃存裝置結(jié)構(gòu)可以修改為如圖12所示。指令和控制邏輯區(qū)塊120包括數(shù)據(jù)寄存器122以及邏輯電路124。焊盤串行輸出電路130、131、132以及133可以搭配分別與其連接的輸入/輸出信號線100、101、102以及103使用。此外,邏輯數(shù)據(jù)LOGICDATA的位〈4,0>、〈5,1>、〈6,2>以及〈7,3>可以分別由邏輯電路124傳輸至焊盤串行輸出電路130、131、132以及133,且預(yù)指令信號PRECMD〈1:0>可以由邏輯電路124傳輸至焊盤串行輸出電路130、131、132以及133。串行數(shù)據(jù)輸出信號SDOUT/的位〈4,0>、〈5,1>、〈6,2>以及〈7,3>可以分別由數(shù)據(jù)寄存器122傳輸至焊盤串行輸出電路130、131、132以及133。系統(tǒng)時脈SCK可以傳輸至焊盤串行輸出電路130、131、132以及133。用于QPI的快速指令解析可用以下的方法執(zhí)行。S卩,當(dāng)信號RDSRl、RDSR2以及JEDEC的103至100分別為0101,0101以及1111(圖7)時,預(yù)指令信號PRECMD〈1:0>的O、I值可用于致能焊盤串行輸出電路130、131、132以及133的輸出。
[0092]圖13是繪示使用4位和7位指令預(yù)解碼進(jìn)行邏輯數(shù)據(jù)讀取操作的概括流程圖140。系統(tǒng)時脈SCK緩沖于輸入焊盤電路48以提供緩沖的時脈信號CLK至邏輯電路54以及數(shù)據(jù)寄存器52 (步驟141)。在4個時脈信號CLK控制進(jìn)入指令的4個MSB,且所述4個MSB被邏輯電路54預(yù)解碼(步驟142)之后,在邏輯電路54中根據(jù)在所述4個位中預(yù)解碼的邏輯讀取指令(例如信號JEDEC或是狀態(tài)寄存器中的狀態(tài)數(shù)據(jù)SRl或SR2)預(yù)取邏輯數(shù)據(jù)(步驟143)。所述預(yù)取邏輯數(shù)據(jù)在第8個系統(tǒng)時脈SCK時脈之前提供至焊盤串行輸出電路46 (步驟144)。在7個時脈信號CLK控制進(jìn)入指令的7個MSB,且在邏輯電路54中被預(yù)解碼以產(chǎn)生預(yù)指令信號(步驟145)之后,提供所述預(yù)指令信號至焊盤串行輸出電路46 (步驟146)。所述預(yù)指令信號與在焊盤串行輸出電路46中,用于快速指令解析的LSB(在第8個系統(tǒng)時脈SCK的上升邊緣)結(jié)合,以解決預(yù)解碼指令的模糊性(步驟147)。假若所述指令不為邏輯讀取指令(步驟148中的否),不進(jìn)行邏輯數(shù)據(jù)讀取而繼續(xù)存儲器操作(步驟150)。假若所述指令為邏輯讀取指令(步驟148中的是),所述預(yù)取邏輯數(shù)據(jù)在第8個系統(tǒng)時脈SCK的下降邊緣被選擇,且由系統(tǒng)時脈SCK控制的焊盤串行輸出電路46輸出(步驟149)。
[0093]有利的是,邏輯數(shù)據(jù)、SRl數(shù)據(jù)以及SR2數(shù)據(jù)的其中之一可在第4個時脈即預(yù)取,因此即使在邏輯電路54中執(zhí)行多工,所述的選定數(shù)據(jù)仍具有充足的時間被處理為對于在焊盤串行輸出電路46中的多工器116是可用的。有利的是,邏輯數(shù)據(jù)可在焊盤串行輸出電路46中的多工器116進(jìn)行多工,且由多工器116直接提供至輸出驅(qū)動器118,因而避免信號線及其他傳輸和閘延遲。有利的是,包括多工器116以及輸出驅(qū)動器118的焊盤串行輸出電路46可由系統(tǒng)時脈SCK控制,因而避免時脈緩沖延遲。有利的是,解碼模糊性可在焊盤串行輸出電路46中的組合性邏輯電路110的系統(tǒng)時脈SCK的上升邊緣解決,使得除非所述指令被解析為邏輯讀取指令,否則任何在邏輯讀取指令中被預(yù)取的數(shù)據(jù)皆不會選為輸出驅(qū)動器118的輸入。
[0094]圖14繪示使用7位指令預(yù)解碼的邏輯數(shù)據(jù)讀取操作的概括流程圖160。系統(tǒng)時脈SCK緩沖于輸入焊盤電路48中以提供緩沖的時脈信號CLK至邏輯電路54以及數(shù)據(jù)寄存器52 (步驟161)。在7個時脈信號CLK控制進(jìn)入指令的7個MSB,且所述7個MSB被邏輯電路54預(yù)解碼以產(chǎn)生預(yù)指令信號(步驟162)之后,將所述預(yù)指令信號提供至焊盤串行輸出電路46(步驟163)。此外,邏輯數(shù)據(jù)(例如信號JEDEC或是狀態(tài)寄存器中的狀態(tài)數(shù)據(jù)SRl或SR2)在邏輯電路54中被預(yù)取,此是根據(jù)在所述7個位中預(yù)解碼出哪個邏輯讀取指令(步驟164),并將所述邏輯數(shù)據(jù)提供至焊盤串行輸出電路46 (步驟165)。所述預(yù)指令信號與在焊盤串行輸出電路46中,用于快速指令解析的LSB(在第8個系統(tǒng)時脈SCK的上升邊緣)結(jié)合,以解決預(yù)解碼指令的模糊性(步驟166)。若所述指令不為邏輯讀取指令(步驟167中的否),不進(jìn)行邏輯數(shù)據(jù)讀取而繼續(xù)存儲器操作(步驟169)。假若所述指令為邏輯讀取指令(步驟167中的是),所述預(yù)取邏輯數(shù)據(jù)在第8個系統(tǒng)時脈SCK的下降邊緣被選擇,且由系統(tǒng)時脈SCK控制的焊盤串行輸出電路46輸出(步驟168)。
[0095]本發(fā)明的描述,包括所提出的優(yōu)點(diǎn)及其應(yīng)用僅用以說明,此說明并非用以限定本發(fā)明,故本發(fā)明之保護(hù)范圍當(dāng)視申請權(quán)利要求所界定者為準(zhǔn)。在此所公開的實(shí)施例可能改變及修改,任何所屬【技術(shù)領(lǐng)域】技術(shù)人員研讀本專利文件之后將明了該些實(shí)施例的各種元件的實(shí)際替換及等效。除非另有界定,否則在此所給予的特定數(shù)值僅用以說明,其可依需求而變化。其中,本發(fā)明所提出的各個時間點(diǎn)除非另有明確界定,否則皆非確切時間點(diǎn),且將隨著電路布局、信號線阻抗、以及本領(lǐng)域熟知的其他實(shí)際設(shè)計因素而變化。所參考的某一范圍的各種數(shù)值將包括此范圍內(nèi)的所有數(shù)值。在不脫離本發(fā)明的范圍內(nèi),當(dāng)可進(jìn)行在此所公開的實(shí)施例的這些及其他改變及修改,包含該些實(shí)施例的各種元件的替換及等效。
【權(quán)利要求】
1.一種閃存裝置,其具有能夠回應(yīng)于一組邏輯讀取指令而輸出邏輯數(shù)據(jù)的能力,包括: 外部信號輸入端; 可定址閃存單元陣列; 數(shù)據(jù)寄存器,耦接于該可定址閃存單元陣列,用以接收并儲存來自于該可定址閃存單元陣列的陣列數(shù)據(jù); 多個寄存器,用以儲存邏輯數(shù)據(jù); 指令和控制邏輯電路,包括: 預(yù)取邏輯電路,耦接于該外部信號輸入端,用以當(dāng)該外部信號輸入端接收指令的最高有效位的第一部分序列為預(yù)測的特定邏輯數(shù)據(jù)讀取指令時,依據(jù)該些邏輯讀取指令的特定其中之一,從該邏輯數(shù)據(jù)寄存器的其中之一預(yù)取邏輯數(shù)據(jù); 輸出控制邏輯電路,耦接于該外部信號輸入端,用以當(dāng)該外部信號輸入端接收指令的最高有效位的第二部分序列為預(yù)測的該多個邏輯數(shù)據(jù)讀取指令的任意其中之一時,產(chǎn)生預(yù)測的邏輯讀取指令信號;以及 焊盤串行輸出電路,耦接于該數(shù)據(jù)寄存器、該預(yù)取邏輯電路、該輸出控制邏輯電路以及該外部信號接收端,用以當(dāng)該預(yù)測的邏輯讀取指令信號以及除了該第一部分序列及該第二部分序列之外的部分指令解析收到該些邏輯數(shù)據(jù)讀取指令的任意其中之一時,選擇及輸出來自該預(yù)取邏輯電路的邏輯數(shù)據(jù)。
2.如權(quán)利要求1所述的閃存裝置,其中: 該外部信號輸入端遵守串行周邊接口協(xié)議,并包括串行輸入信號線;以及 該焊盤串行輸出電路遵守串行周邊接口協(xié)議,并包括串行數(shù)據(jù)輸出線。
3.如權(quán)利要求1所述的閃存裝置,其中: 該外部信號輸入端遵守四元周邊接口協(xié)議,并且包括第一串行輸入/輸出信號線、第二串行輸入/輸出信號線、第三串行輸入/輸出信號線以及第四串行輸入/輸出信號線;以及 該焊盤串行輸出電路遵守四元周邊接口協(xié)議,并且包括第一一位焊盤串行輸出電路,其耦接于該第一串行輸入/輸出信號線、第二一位焊盤串行輸出電路,其耦接于該第二串行輸入/輸出信號線、第三一位焊盤串行輸出電路,其耦接于該第三串行輸入/輸出信號線以及第四一位焊盤串行輸出電路,其耦接于該第四串行輸入/輸出信號線。
4.如權(quán)利要求1所述的閃存裝置,其中該第一以及該第二部分序列的最高有效位為7位。
5.如權(quán)利要求4所述的閃存裝置,其中: 該外部信號輸入端遵守串行周邊接口協(xié)議,并且包括串行輸入信號線;以及 該焊盤串行輸出電路遵守串行周邊接口協(xié)議,并且包括串行數(shù)據(jù)輸出線。
6.如權(quán)利要求1所述的閃存裝置,其中: 最聞有效位的該第一部分序列為4位;以及 最聞有效位的該第二部分序列為7位。
7.如權(quán)利要求6所述的閃存裝置,其中: 該外部信號輸入端遵守四元周邊接口協(xié)議,并且包括第一串行輸入/輸出信號線、第二串行輸入/輸出信號線、第三串行輸入/輸出信號線以及第四串行輸入/輸出信號線;以及 該焊盤串行輸出電路遵守四元周邊接口協(xié)議,并且包括第一一位焊盤串行輸出電路,其耦接于該第一串行輸入/輸出信號線、第二一位焊盤串行輸出電路,其耦接于該第二串行輸入/輸出信號線、第三一位焊盤串行輸出電路,其耦接于該第三串行輸入/輸出信號線以及第四一位焊盤串 行輸出電路,其耦接于該第四串行輸入/輸出信號線。
8.如權(quán)利要求1所述的閃存裝置,更包括: 系統(tǒng)時脈輸入信號線,耦接于該焊盤串行輸出電路;以及 輸入焊盤電路,耦接于該系統(tǒng)時脈,用以提供緩沖的時脈信號至該預(yù)取邏輯電路、該輸出控制邏輯電路以及該數(shù)據(jù)寄存器。
9.一種操作閃存裝置的方法,該閃存裝置具有閃存單元陣列,用以回應(yīng)于具有預(yù)定指令位數(shù)量的邏輯讀取指令,以提供邏輯數(shù)據(jù)至應(yīng)用程序,該方法包括: 接收位數(shù)少于預(yù)定指令位數(shù)量的指令的位序列,該些接收的位序列為該指令的多個最聞有效位; 在該閃存裝置的邏輯電路中對該接收的位序列預(yù)解碼,以判別該接收位序列是否匹配對應(yīng)的邏輯讀取指令的位序列; 在該焊盤串行輸出電路中完成對該指令其余位的解碼,以判別在該預(yù)解碼的步驟中的匹配是否正確地預(yù)測該邏輯讀取指令;以及依據(jù)該邏輯讀取指令輸出邏輯數(shù)據(jù)。
10.一種操作閃存裝置的方法,該閃存裝置具有閃存單元陣列,用以回應(yīng)于具有預(yù)定指令位數(shù)量的邏輯讀取指令,以提供邏輯數(shù)據(jù)至應(yīng)用程序,該方法包括: 接收位數(shù)少于預(yù)定指令位數(shù)量的指令的第一位序列,該些接收的第一位序列為該指令的多個最聞有效位; 在該閃存裝置的邏輯電路中對該接收的第一位序列預(yù)解碼,以判別該接收的第一位序列是否匹配對應(yīng)的邏輯讀取指令的位序列; 依據(jù)在該預(yù)解碼步驟中匹配的該邏輯讀取指令來預(yù)取邏輯數(shù)據(jù); 接收位數(shù)少于預(yù)定指令位數(shù)量但多于該第一位序列的指令的第二位序列,該些接收的第二位序列為該指令的多個最高有效位; 在該閃存裝置的邏輯電路中對該接收的第二位序列預(yù)解碼,以判別該接收的第二位序列是否匹配對應(yīng)的邏輯讀取指令的位序列; 在焊盤串行輸出電路中完成對該指令其余位的解碼,以判別在該第二序列預(yù)解碼的步驟中的匹配是否正確地預(yù)測該邏輯讀取指令;以及輸出在該預(yù)取步驟中所預(yù)取的邏輯數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,其中該第一位序列以及該第二位序列為該指令的7個最聞有效位。
12.如權(quán)利要求10所述的方法,其中: 該第一位序列為該指令的4個最聞有效位;以及 該第二位序列為該指令7個最高有效位。
【文檔編號】G11C16/10GK103544991SQ201210241228
【公開日】2014年1月29日 申請日期:2012年7月12日 優(yōu)先權(quán)日:2012年7月12日
【發(fā)明者】陳毓明, 蘇騰, 厲志剛 申請人:華邦電子股份有限公司