專利名稱:半導體存儲器以及半導體存儲器的操作方法
技術領域:
本發(fā)明涉及具有需要刷新操作的動態(tài)存儲器單元的半導體存儲器及其操作方法。
背景技術:
近來,被稱作偽SRAM的半導體存儲器已經(jīng)為人所注意。偽SRAM具有DRAM存儲器單元,其作為自動執(zhí)行存儲器單元的內(nèi)部刷新操作的SRAM進行操作。因為動態(tài)存儲器單元具有小尺寸,位成本低,因此可以開發(fā)具有大容量的偽SRAM。
然而,由于偽SRAM利用在存儲器單元的電容器中積累的電荷來存儲數(shù)據(jù),所以在電荷泄露之類的條件下數(shù)據(jù)可能丟失。為免于此,偽SRAM需要每隔預定的時間段執(zhí)行刷新操作。該刷新操作讀出存儲在一條位線上的存儲器單元中的數(shù)據(jù),放大該位線上的數(shù)據(jù),然后將數(shù)據(jù)重寫入存儲器單元。
用于執(zhí)行刷新操作的刷新請求的產(chǎn)生并沒顧及外部訪問請求。因此,刷新操作可能與訪問操作沖突。為了具有SRAM接口,偽SRAM需要在即使發(fā)生沖突時也要相對于外部系統(tǒng)隱藏刷新操作。近來,為了隱藏刷新操作,所提出的半導體存儲器中存儲了糾錯代碼和寫數(shù)據(jù)(例如,參見日本未經(jīng)審查專利申請公開No.2003-52186)。半導體存儲器使用糾錯代碼重新產(chǎn)生讀數(shù)據(jù),而不用在刷新操作下從存儲塊中讀出數(shù)據(jù)。此外,讀請求不與刷新請求沖突,從而不需要在讀周期中包括刷新操作時間。這樣,讀周期可以等效于SRAM。
此外,由于偽SRAM需要刷新操作,所以與存儲器單元具有鎖存功能的SRAM相比,其在待機周期期間的功耗大。待機期間消耗的功率具有DC分量和AC分量。DC分量作為漏電流分量,指的是由于內(nèi)部電路(具體而言,電源電路)而有意流動的電流和晶體管的關斷電流。除此之外,DC分量取決于半導體工藝和電路構(gòu)造,從而毫無疑問,在偽SRAM和SRAM之間存在差異。
偽SRAM待機期間消耗的電流的AC分量主要是由刷新操作引起的電流。為此,刷新操作電流的減小對減小AC分量來說是有效的。近來,為了減小刷新操作電流,所提出的半導體存儲器中存儲了寫數(shù)據(jù)和糾錯代碼。半導體存儲器利用糾錯代碼實質(zhì)上改進存儲器單元的數(shù)據(jù)保持特性,并且延長刷新間隔,進而減小刷新操作電流(例如,參見日本未經(jīng)審查專利申請公開No.5-41084,日本未經(jīng)審查專利申請公開No.2002-56671,以及日本未經(jīng)審查專利申請公開No.2003-59290)。
然而,在上述傳統(tǒng)偽SRAM中使用的糾錯方法中,僅能減小讀周期時間或減小待機電流。具體而言,讀周期時間(AC特性)可以等效于SRAM,而待機電流(DC特性)不能等效于SRAM。或者,待機電流可以等效于SRAM,而讀周期時間不能等效于SRAM。換句話說,還沒有實現(xiàn)偽SRAM與SRAM完全兼容。結(jié)果,難以為了降低成本而以下述方式操作系統(tǒng),其中系統(tǒng)中嵌入的SRAM被簡單地替代以偽SRAM。
下面列出與本發(fā)明有關的現(xiàn)有技術文件(專利文獻)(1)日本未經(jīng)審查專利申請公開No.2003-51186(2)日本未經(jīng)審查專利申請公開No.5-41084(3)日本未經(jīng)審查專利申請公開No.2002-56671(4)日本未經(jīng)審查專利申請公開No.2003-59290發(fā)明內(nèi)容因此,本發(fā)明的一個目的是提供一種偽SRAM,該偽SRAM能夠在不延長訪問周期時間的條件下隱藏刷新操作以及減小待機時間段期間的功耗。
本發(fā)明的另一目的是提供一種與SRAM完全兼容的偽SRAM。
根據(jù)本發(fā)明的半導體存儲器的一個方面,多個數(shù)據(jù)塊具有存儲信息數(shù)據(jù)的存儲器單元。多個代碼塊具有存儲代碼數(shù)據(jù)的存儲器單元,代碼數(shù)據(jù)用來對存儲在數(shù)據(jù)塊中的數(shù)據(jù)解碼。刷新控制電路輸出刷新請求信號,以順序執(zhí)行數(shù)據(jù)塊和代碼塊上的刷新操作。數(shù)據(jù)添加電路將要從刷新塊中讀出的多種類型期望數(shù)據(jù)分別添加到從其它塊中讀出的數(shù)據(jù)上,進而產(chǎn)生多個讀數(shù)據(jù)串。這里,刷新塊是數(shù)據(jù)塊和代碼塊中無法被刷新操作讀出的塊。
糾錯電路檢測讀數(shù)據(jù)串的錯誤,并且將錯誤檢測結(jié)果中的最可靠結(jié)果設為真。此外,糾錯電路糾正與真錯誤檢測結(jié)果相對應的一個讀數(shù)據(jù)串的錯誤。代碼數(shù)據(jù)例如是水平/垂直奇偶校驗碼或提取的漢明碼,并且代碼數(shù)據(jù)的最小漢明距離是4或更大值。
這樣,通過比較期望數(shù)據(jù)一部分的多個讀數(shù)據(jù)串的錯誤檢測結(jié)果來檢測出真錯誤,以及通過基于真錯誤來糾正在一個塊處實際產(chǎn)生的錯誤,可以相對于外部系統(tǒng)隱藏刷新操作,同時完成糾錯。此外,可以在不與讀請求沖突的條件下隱藏刷新操作,從而可以防止讀周期時間被拉長(AC特性的改進)。
利用糾錯功能,可以糾正由例如具有最小保有數(shù)據(jù)時間或短數(shù)據(jù)保持時間的存儲器單元所產(chǎn)生的錯誤。因此,可以延長刷新請求間隔以及減少待機時問段期間的功耗(DC特性的改進)。具體而言,即使當每個存儲器單元的刷新間隔被設置為長于最差存儲器單元的數(shù)據(jù)保持時間時,也不會發(fā)生錯數(shù)據(jù)被讀取的可能性。因此,當本發(fā)明例如應用于偽SRAM時,AC特性和DC特性都可以等效于SRAM或更好。換句話說,可以為用戶提供與SRAM完全兼容的偽SRAM。用戶僅通過將系統(tǒng)中嵌入的SRAM改換為本發(fā)明的偽SRAM就可以降低成本。
根據(jù)本發(fā)明的半導體存儲器的另一方面,刷新控制電路順序輸出刷新請求信號到數(shù)據(jù)塊和代碼塊,以執(zhí)行數(shù)據(jù)塊和代碼塊中任何一個上的刷新操作。通過僅在一個塊中執(zhí)行響應于刷新請求的刷新操作,可以方便地恢復無法被刷新操作讀出的數(shù)據(jù)。
根據(jù)本發(fā)明的半導體存儲器的另一方面,訪問控制電路響應于讀命令而輸出讀請求信號,以讀取到除刷新塊之外的數(shù)據(jù)塊和代碼塊。換句話說,刷新塊不執(zhí)行讀操作。為此,可以防止刷新請求和讀請求之間的沖突,并且防止讀訪問時間的增加。此外,可以利用訪問控制電路方便地控制讀操作。
根據(jù)本發(fā)明的半導體存儲器的另一方面,訪問控制電路響應于寫命令而輸出寫請求信號,以對數(shù)據(jù)塊和代碼塊進行寫入。當刷新請求信號和寫請求信號彼此沖突時,數(shù)據(jù)塊和代碼塊的每個塊控制電路執(zhí)行刷新操作,然后執(zhí)行寫操作。為此,可以確保寫數(shù)據(jù)能夠被寫入到刷新塊。
根據(jù)本發(fā)明的半導體存儲器的另一方面,作為寫命令的最小供應間隔的外部寫周期時間可以被設置為長于作為每個塊的寫操作時間的內(nèi)部寫周期時間。為此,塊控制電路可以逐漸恢復寫操作的延遲,即使是在連續(xù)供應的寫請求信號之間產(chǎn)生刷新請求時也是如此。換句話說,可以確保寫數(shù)據(jù)能夠被寫入到刷新塊。
根據(jù)本發(fā)明的半導體存儲器的另一方面,在從一個刷新塊的最終刷新請求信號切換到下一刷新塊的切換時間段之間,可以插入n個外部寫周期時間,并且可以執(zhí)行n次寫操作和一次刷新操作。例如,切換時間段可以設置為至少(Tcyc/δ)×Tcyc,其中δ是外部寫周期時間Tcyc和內(nèi)部寫周期時間之間的差。為此,由于某個塊的刷新請求而延遲的寫操作可以在該塊的刷新塊時間段內(nèi)完成。在從刷新塊切換到一般塊后,不存在未完成的與刷新塊期間供應的寫請求相對應的寫操作。為此,對于除刷新塊之外的塊,可以防止由于刷新操作和寫操作之間的沖突而使讀操作延遲,并且可以防止讀訪問時間拉長。
根據(jù)本發(fā)明的半導體存儲器的另一方面,代碼塊被形成來代替用于消除缺陷的列冗余電路和行冗余電路中的至少一個。從有缺陷的存儲器單元讀出的錯誤數(shù)據(jù)可以利用糾錯電路來糾正。由于不需要形成冗余電路,所以可以減小芯片尺寸。
根據(jù)本發(fā)明的半導體存儲器的另一方面,糾錯電路從讀數(shù)據(jù)串中選擇較少錯誤的讀數(shù)據(jù)串作為真。例如,糾錯電路檢測“沒有錯誤”、“任何數(shù)據(jù)塊中的單個位錯誤”、“任何代碼塊中的單個位錯誤(代碼錯誤)”以及“兩個或更多位錯誤”中的一個,并且以沒有錯誤>單個位錯誤>代碼錯誤>兩個或更多位錯誤的優(yōu)先級排列錯誤決定。此外,糾錯電路將具有較高優(yōu)先級的項設置為真。為此,可以方便地提供糾錯電路的錯誤決定邏輯。
根據(jù)本發(fā)明的半導體存儲器的另一方面,當糾錯電路檢測到不能被糾正的錯誤時,糾錯電路輸出錯誤信號到錯誤終端。例如,當檢測到“兩個或更多位錯誤”,糾錯電路輸出錯誤信號。利用該錯誤信號,訪問半導體存儲器的外部系統(tǒng)可以執(zhí)行避免錯誤的操作,例如請求重試讀操作以及刪除數(shù)據(jù)。這樣,可以提高系統(tǒng)的可靠性。
根據(jù)本發(fā)明的半導體存儲器的另一方面,重寫控制電路可以在數(shù)據(jù)塊和代碼塊中重寫由糾錯電路糾正的數(shù)據(jù)。當存儲器單元中的數(shù)據(jù)被電源噪聲和暫時性錯誤損壞時,通過寫入正確的數(shù)據(jù),可以提高系統(tǒng)的可靠性。
根據(jù)本發(fā)明的半導體存儲器的另一方面,分別形成與輸入和輸出信息數(shù)據(jù)的多個數(shù)據(jù)終端相對應的數(shù)據(jù)塊。為此,可以在同時輸入和輸出半導體存儲器的數(shù)據(jù)單元中糾正錯誤。這樣,可以方便地提供讀數(shù)據(jù)的糾錯邏輯,并且方便地產(chǎn)生代碼數(shù)據(jù),進而可以防止讀周期時間和寫周期時間增加。
根據(jù)本發(fā)明的半導體存儲器的另一方面,被同時供應給輸入和輸出信息數(shù)據(jù)的多個數(shù)據(jù)終端的寫數(shù)據(jù)被寫入到一部分數(shù)據(jù)塊中。在寫操作期間,糾錯電路通過使用來自數(shù)據(jù)塊和代碼塊的讀數(shù)據(jù)來解碼信息數(shù)據(jù),并且通過利用寫數(shù)據(jù)替換一部分解碼信息數(shù)據(jù)來產(chǎn)生數(shù)據(jù)串。糾錯電路從重寫數(shù)據(jù)串確定新代碼數(shù)據(jù),并且將重寫數(shù)據(jù)串和新代碼數(shù)據(jù)寫入到數(shù)據(jù)塊和代碼塊中。通過增加信息數(shù)據(jù)的位數(shù),可以相對于信息數(shù)據(jù)的位數(shù)來相對減少代碼數(shù)據(jù)的位數(shù)。這樣,可以相對于數(shù)據(jù)塊數(shù)目來相對減少代碼塊的數(shù)目,進而減小芯片尺寸。
圖1是根據(jù)本發(fā)明第一實施例的框圖;圖2是圖1所示的數(shù)據(jù)控制電路的詳細框圖;圖3是圖1所示的刷新控制電路的操作的時序圖;
圖4是圖1所示的刷新控制電路的操作的詳細時序圖;圖5是根據(jù)本發(fā)明第一實施例的讀操作的總的時序圖;圖6是根據(jù)本發(fā)明第一實施例的寫操作的總的時序圖;圖7是根據(jù)本發(fā)明第一實施例的奇偶校驗碼產(chǎn)生規(guī)則的示例性圖表;圖8是圖2所示的錯誤決定電路的總的流程圖;圖9是圖2所示的糾錯電路的操作的總的示例性圖表;圖10是根據(jù)本發(fā)明第一實施例的讀操作示例的時序圖;圖11是根據(jù)本發(fā)明第一實施例的讀操作另一示例的時序圖;圖12是本發(fā)明第二實施例的框圖;圖13是圖12所示的數(shù)據(jù)控制電路的詳細框圖;圖14是圖13所示的糾錯電路的RTL描述的示例性圖表;圖15是從圖14的RTL描述邏輯合成的電路圖;圖16是圖13所示的校正子(syndrome)產(chǎn)生電路的RTL描述的示例性圖表;圖17是圖13所示的編碼電路的RTL描述的示例性圖表;圖18是圖12所示的數(shù)據(jù)控制電路的糾錯操作的示例性圖表;圖19是圖12所示的數(shù)據(jù)控制電路的另一糾錯操作的示例性圖表;圖20是根據(jù)本發(fā)明第三實施例的半導體存儲器的框圖;圖21是根據(jù)本發(fā)明第四實施例的半導體存儲器的框圖;圖22是圖21所示的數(shù)據(jù)控制電路的詳細框圖;圖23是根據(jù)本發(fā)明第五實施例的半導體存儲器的框圖;圖24是圖23所示的偽SRAM的寫操作的時序圖。
具體實施例方式
下面將參考附圖來說明本發(fā)明的實施例。在附圖中,雙圓圈表示外部終端。在附圖中,由粗體線表示的信號線包括多條線路。粗體線所連接的塊部分包括多個電路。對于通過外部終端供應的信號,使用了等同于終端名稱的代碼。對于傳送信號的信號線,使用了等同于信號名稱的代碼。信號名稱末端綴有的“z”表示正邏輯。
圖1示出了根據(jù)本發(fā)明第一實施例的半導體存儲器。該半導體存儲器是使用CMOS工藝在硅襯底上形成的時鐘同步型的同步偽SRAM。
偽SRAM具有地址緩沖器10、數(shù)據(jù)控制電路12、數(shù)據(jù)輸入/輸出緩沖器14、命令緩沖器16、訪問控制電路18、刷新控制電路20、時鐘緩沖器22和存儲器核心24。
存儲器核心24具有數(shù)據(jù)塊MBD0-15、代碼塊MBE0-7和塊控制電路BCNT。數(shù)據(jù)塊MBD0-15被分別對應于數(shù)據(jù)終端DQ15-0而形成,并且分別保持通過數(shù)據(jù)終端DQ15-0供應的信息數(shù)據(jù)(下文中也簡稱為數(shù)據(jù))。代碼塊MBE0-7分別保持由數(shù)據(jù)塊MBD0-15保有的數(shù)據(jù)產(chǎn)生的8位糾錯代碼的每個位。糾錯代碼被用作對數(shù)據(jù)塊中存儲的信息數(shù)據(jù)進行解碼的代碼數(shù)據(jù)。此外,盡管沒有詳細示出,存儲器核心24具有用于去除字線單元中的缺陷的行冗余電路和用于去除位線單元中的缺陷的列冗余電路。
塊控制電路BCNT被形成為分別對應于塊MBD0-15和MBE0-7并且控制這些塊的操作。當同時接收到寫請求信號和更新請求信號(refd[15:0]和refe[7:0]中的任何一個)時,塊控制電路BCNT僅在插入了刷新操作的時間段期間順序輸出對應的寫請求信號(wrd[15:0]和wde[7:0]中的任何一個)。
數(shù)據(jù)塊MBD0-15和代碼塊MBE0-7具有彼此相同的設置,并且具有相同的存儲容量。塊MBD0-15和MBE0-7中的每一個具有動態(tài)存儲器單元以及連接到動態(tài)存儲器單元的字線和位線。存儲器單元具有將數(shù)據(jù)邏輯值作為電荷進行保持的電容器和將該電容器連接到位線的傳送晶體管(transfer transistor)。傳送晶體管的柵極連接到字線。此外,根據(jù)本實施例,如下文描述的圖7所示,水平/垂直奇偶校驗碼被用作糾錯代碼。
地址緩沖器10通過地址終端AD接收地址信號AD。偽SRAM使用地址非復用型,其中一次接收行地址信號和列地址信號。行地址信號被用來在塊MBD0-15和MBE0-7的每一個中選擇字線。列地址信號被用來在塊MBD0-15和MBE0-7的每一個中選擇位線。
時鐘緩沖器22通過時鐘終端CLK接收時鐘信號CLK,并且輸出所接收的信號作為內(nèi)部時鐘信號ICLK。時鐘信號CLK例如是安裝了偽SRAM的系統(tǒng)板的系統(tǒng)時鐘。內(nèi)部時鐘信號ICLK被供應到偽SRAM中需要同步時鐘的電路。
盡管沒有詳細示出,刷新控制電路20具有定時器、計數(shù)器、移位寄存器和刷新請求產(chǎn)生電路。定時器與內(nèi)部時鐘信號ICLK同步操作,并且產(chǎn)生周期性信號(脈沖信號)。定時器的周期等同于刷新請求的產(chǎn)生間隙。計數(shù)器進行與來自定時器的周期性信號同步的計數(shù)操作,并且產(chǎn)生刷新地址信號REFAD。在刷新操作期間,刷新地址信號REFAD被輸出以選擇字線。當計數(shù)器循環(huán)一圈時,計數(shù)器的位數(shù)被設置為塊MBD0-15和MBE0-7中的所有字線被選定的數(shù)目。
移位寄存器具有級聯(lián)在一起的24個鎖存器,并且最后級的鎖存器的輸出被反饋回初始級處的鎖存器的輸入。在重置加電期間,一個鎖存器被設置為高電平而其它鎖存器被設置為低電平。移位寄存器對計數(shù)器的每次溢出進行移位,并且從鎖存器分別輸出刷新點信號refpointd[15:0]和refpointe[7:0],以指示進行刷新操作的塊MBD0-15和MBE0-7。換句話說,移位寄存器逐個地順序激活刷新點信號refpointd[15:0]和refpointe[7:0]。為此,塊MBD0-15和MBE0-7中只有一個作為刷新塊順序操作,進而執(zhí)行刷新操作。刷新請求產(chǎn)生電路在刷新點信號refpointd[15:0]和refpointe[7:0]的激活時間段期間與周期性信號同步,并且輸出與刷新點信號refpointd[15:0]和refpointe[7:0]分別對應的刷新請求信號refd[15:0]和refe[7:0]。
命令緩沖器16通過命令終端CMD接收命令信號CMD,并且輸出所接收的命令信號CMD到訪問控制電路18。命令信號CMD是用來控制偽SRAM操作的信號,諸如芯片使能信號/CE、輸出使能信號/OE和寫使能信號/WE。作為通過命令終端CMD供應的命令,提供有用于執(zhí)行寫操作的寫命令和用于執(zhí)行讀操作的讀命令。
訪問控制電路18對命令信號CMD進行解碼,并且取決于解碼結(jié)果輸出用于執(zhí)行讀操作的讀請求信號rdd[15:0]和rde[7:0]以及寫請求信號wrd[15:0]和wde[7:0]。然而,訪問控制電路18響應于刷新點信號refpointd[15:0]和refpointe[7:0]中任何一個的激活而屏蔽對應的讀請求信號(rdd[15:0]和rde[7:0]中任何一個)的輸出。換句話說,讀操作在刷新塊處被禁止,并且在其它塊處被執(zhí)行。刷新塊的讀操作總是被禁止,從而訪問控制單元18的讀控制可以被簡單地執(zhí)行。
數(shù)據(jù)輸入/輸出緩沖器14在寫操作期間輸出通過數(shù)據(jù)終端DQ15-0接收到的數(shù)據(jù)信號作為輸入數(shù)據(jù)DIN[15:0],并且在讀操作期間輸出從數(shù)據(jù)控制電路12供應的輸出數(shù)據(jù)DOUT[15:0]到數(shù)據(jù)終端DQ15-0。
數(shù)據(jù)控制電路12在寫操作期間向存儲器核心24輸出輸入數(shù)據(jù)DIN[15:0]作為寫數(shù)據(jù)wdat[15:0],同時向存儲器核心24輸出從輸入數(shù)據(jù)DIN[15:0]產(chǎn)生的糾錯代碼(寫代碼數(shù)據(jù))wecc[7:0]。此外,數(shù)據(jù)控制電路12在讀操作期間接收從存儲器核心24讀取的讀數(shù)據(jù)rdat[15:0]和糾錯代碼(讀代碼數(shù)據(jù))recc[7:0],并且對要從刷新塊中讀出(但將不讀出)的數(shù)據(jù)的一個位進行解碼。同時,數(shù)據(jù)控制電路12對來自具有較差數(shù)據(jù)保持特性且其中丟失了數(shù)據(jù)的存儲器單元的讀數(shù)據(jù)(1位)進行解碼。糾錯后的讀數(shù)據(jù)被輸出作為輸出數(shù)據(jù)DOUT[15:0]。
此外,寫請求信號wrd[15:0]、讀請求信號rdd[15:0]、刷新點信號refpointd[15:0]、刷新請求信號refd[15:0]、寫數(shù)據(jù)wdat[15:0]、、讀數(shù)據(jù)rdat[15:0]、輸入數(shù)據(jù)DIN[15:0]和輸出數(shù)據(jù)DOUT[15:0]的位數(shù)分別對應于數(shù)據(jù)塊MBD15-0的塊數(shù)目。與此相同,寫請求信號wde[7:0]、讀請求信號rde[7:0]、刷新點信號refpointe[7:0]、刷新請求信號refe[7:0]、糾錯代碼wecc[7:0]和糾錯代碼recc[7:0]的位數(shù)分別對應于代碼塊MBE7-0的塊數(shù)目。
圖2示出了圖1中所示的詳細數(shù)據(jù)控制電路12。
數(shù)據(jù)控制電路12具有數(shù)據(jù)糾正部件12a,用于對來自存儲器核心24的讀數(shù)據(jù)rdat[15:0]和recc[7:0]糾錯;以及數(shù)據(jù)編碼部件12b,用于從輸入數(shù)據(jù)DIN[15:0]產(chǎn)生到存儲器核心24的糾錯代碼。數(shù)據(jù)糾正單元12a具有數(shù)據(jù)添加電路26和糾錯電路12c。糾錯電路12c具有編碼電路28和30、錯誤決定電路32和34、以及錯誤解碼電路36。數(shù)據(jù)編碼部件12b具有編碼電路38。
數(shù)據(jù)添加電路26分別產(chǎn)生讀數(shù)據(jù)rdat0[15:0]和rdat1[15:0],其中假設來自作為不能執(zhí)行讀操作的刷新塊進行操作的數(shù)據(jù)塊(MBD0-15之一)的讀數(shù)據(jù)為“邏輯1”和“邏輯0”?;蛘撸瑪?shù)據(jù)添加電路26產(chǎn)生讀數(shù)據(jù)recc0[7:0]和recc1[7:0],其中假設來自作為不能執(zhí)行讀操作的刷新塊進行操作的代碼塊(MBE0-7之一)的糾錯代碼為“邏輯1”和“邏輯0”。換句話說,數(shù)據(jù)添加電路26將要從刷新塊讀取的數(shù)據(jù)添加到來自其它塊的讀數(shù)據(jù)上作為期望數(shù)據(jù)“邏輯1”或“邏輯0”,并且產(chǎn)生讀數(shù)據(jù)串rdat0[15:0]和recc0[7:0]以及讀數(shù)據(jù)串rdat1[15:0]和recc1[7:0]。
編碼電路28從讀數(shù)據(jù)rdat0[15:0](信息數(shù)據(jù)串)產(chǎn)生糾錯代碼rrecc0[7:0](第一代碼數(shù)據(jù))。編碼電路30從讀數(shù)據(jù)rdat1[15:0](信息數(shù)據(jù)串)產(chǎn)生糾錯代碼rrecc1[7:0](第二代碼數(shù)據(jù))。
錯誤決定電路32通過比較糾錯代碼rrecc0[7:0]和糾錯代碼recc0[7:0]來確定是否存在錯誤以及錯誤的類型,并且輸出決定結(jié)果作為比較結(jié)果信號res0。錯誤決定電路34通過比較糾錯代碼rrecc1[7:0]和糾錯代碼recc1[7:0]來確定是否存在錯誤以及錯誤的類型,并且輸出決定結(jié)果作為比較結(jié)果信號res1。比較結(jié)果信號res0和res1指示匹配(無錯誤)、ECC錯誤(代碼塊MBD中的單個位錯誤;代碼錯誤)、單個位錯誤(數(shù)據(jù)塊MBE中的單個位錯誤)以及兩個或更多位錯誤中的一種。下面將參考圖8和圖9詳細描述錯誤項。
錯誤解碼電路36根據(jù)比較結(jié)果信號res0和res1所指示的錯誤的內(nèi)容來確定比較結(jié)果信號res0和res1哪個為真,根據(jù)所確定的比較結(jié)果信號res0和res1來糾正讀數(shù)據(jù)錯誤,并且輸出數(shù)據(jù)作為輸出數(shù)據(jù)[15:0]。輸出數(shù)據(jù)[15:0]通過數(shù)據(jù)終端DQ15-0被輸出到偽SRAM的外部。當比較結(jié)果信號res0被確定為真時,要從刷新塊讀出的數(shù)據(jù)是“邏輯0”。當比較結(jié)果信號res1被確定為真時,要從刷新塊讀出的數(shù)據(jù)是“邏輯1”。
數(shù)據(jù)編碼部件12b的編碼電路38從輸入數(shù)據(jù)[15:0](寫數(shù)據(jù))產(chǎn)生糾錯代碼wecc[7:0],并且與寫數(shù)據(jù)wdat[15:0]一起輸出到存儲器核心24。
圖3示出了圖1所示的刷新控制電路20的操作。
刷新控制電路20順序激活刷新點信號refpointd[15:0]和refpointe[7:0]。每個刷新點信號refpointd[15:0]和refpointe[7:0]的激活間隔(例如,刷新點信號refpointd
的激活間隔T1)被設置為長于最差存儲器單元的數(shù)據(jù)保持時間。數(shù)據(jù)保持時間指的是存儲器單元能夠保持數(shù)據(jù)而不丟失數(shù)據(jù)的時間。
激活間隔T1還對應于每個存儲器單元的刷新間隔。為此,根據(jù)實施例,當執(zhí)行刷新操作時,最差存儲器單元已經(jīng)丟失了數(shù)據(jù)。然而,丟失的數(shù)據(jù)可以使用數(shù)據(jù)控制電路12的糾錯功能來解碼。為此,存儲器單元的刷新間隔可以設置得更長,并且刷新請求間隔和刷新操作間隔可以設置得更長。這樣,待機時間段的功耗可以被降低。
圖4示出了圖1所示的刷新控制電路20的詳細操作。圖4的波形對應于圖3中的點劃線所指示的區(qū)域。
例如,在刷新點信號refpointe[7]的激活間隔T2期間,刷新控制電路20將對應數(shù)據(jù)塊MBD7的刷新請求信號refe[7]激活到高電平預定次數(shù)。如此,響應于刷新請求的刷新操作僅在與激活的刷新點信號refpointe(或refpointd)相對應的塊MBE(或MBD)中執(zhí)行。換句話說,在同時訪問的24個塊MBD15-0和MBE7-0中,僅有一個塊總是作為刷新塊來執(zhí)行刷新操作。
刷新請求信號refe[7]的激活次數(shù)是刷新塊MBE的所有存儲器單元所需的數(shù)目。例如,當為每個刷新請求選擇一條字線時,激活次數(shù)等同于每個塊的字線數(shù)目。刷新點信號refpointd[15:0]和refpointe[7:0]可以從刷新塊的最后刷新請求信號refd(或refe)的輸出切換到下一刷新塊的第一刷新請求信號refd(或refe)的輸出。從最后刷新請求信號的輸出到刷新點信號切換的間隔T3是當刷新請求和寫請求彼此沖突時的處理所需要的。將參考下面圖示的圖6來描述間隔T3。
圖5示出了根據(jù)本發(fā)明第一實施例的讀操作概述。圖5的波形對應于圖4中的點劃線所指示的區(qū)域。
在該示例中,偽SRAM依次接收命令終端CMD處的讀命令,并且依次執(zhí)行讀操作。圖1所示的訪問控制電路18屏蔽對應讀請求信號rdd[15:0]和rde[7:0]的輸出,并被刷新點信號refpointd[15:0]和refpointe[7:0]之一所激活。為此,在刷新塊中,沒有執(zhí)行讀操作而僅執(zhí)行刷新操作。使用來自其它塊的讀數(shù)據(jù)對要從沒有執(zhí)行讀操作的刷新塊中讀取的數(shù)據(jù)進行解碼。為此,讀操作將不會因為刷新操作而被延遲。換句話說,刷新操作可以很好地相對于外部隱藏起來而不會引起讀訪問時間變長。
圖6示出了根據(jù)本發(fā)明第一實施例的寫操作概述。
在該示例中,偽SRAM依次接收命令終端CMD處的寫命令,并且依次執(zhí)行寫操作。塊MBD15-0和MBE7-0分別產(chǎn)生響應于寫請求信號wrd[15:0]和wre[7:0]的寫信號wrz,并且執(zhí)行寫操作。寫信號wrz的高電平時間段指示塊MBD15-0和MBE7-0的寫操作時間。
響應于寫請求的寫操作是在所有塊MBD15-0和MBE7-0中執(zhí)行的。因為這個原因,產(chǎn)生了刷新請求(refd或refe)和寫請求(wrd或wre)之間的沖突。當刷新請求和寫請求彼此沖突時(圖6中的(a)),圖1中示出的訪問控制電路18首先執(zhí)行刷新操作。在完成刷新操作之后,訪問控制電路18順序執(zhí)行與等待的寫請求相對應的寫操作(圖6中的(b))。
寫命令的最小供應間隔(wrd的輸出間隔;外部寫周期時間)被設計為長于存儲器核心24的寫操作時間(wrz的最小輸出間隔;內(nèi)部寫周期時間)。為此,與刷新操作的中斷同時發(fā)生的寫操作的延遲可以通過依次執(zhí)行預定數(shù)目的讀操作來恢復。在本示例中,在從某個刷新塊的最后刷新請求信號refd(或refe)切換到下一刷新塊的切換時間T4之間,可以插入外部寫周期時間8次,并且可以執(zhí)行一次刷新操作和8次寫操作。切換時間T4指的是直到與刷新操作的中斷同時發(fā)生的寫操作的延遲被恢復時的恢復時間。為此,即使當依次供應寫命令時,刷新塊的寫操作也一定能夠在該刷新塊被切換之前完成。
這樣,緊跟在從刷新塊到一般數(shù)據(jù)塊或代碼塊的切換之后,即使當讀命令被供應時,也可以防止讀數(shù)據(jù)的輸出被延遲。換句話說,可以防止讀訪問時間和讀周期時間由于寫操作而被拉長。此外,切換時間T4被設置為(Tcyce/δ)×Tcyce或更大,其中假定δ指的是外部寫周期時間Tcyce和內(nèi)部寫周期時間Tcyci之間的差。
此外,可以設計切換時間T4使得滿足下述等式(1)。當切換時間T4可以被設置為長于內(nèi)部寫周期時間Tcyci時,差δ將是可忽略的。因為這個原因,外部寫周期時間Tcyce可以被設為幾乎等于內(nèi)部寫周期時間Tcyci。換句話說,在寫操作之前執(zhí)行刷新操作沒有任何訪問代價。
(T4/Tcyci)-(T4/(Tcyci+δ))≥Tcyci(1)圖7示出了根據(jù)本發(fā)明第一實施例的奇偶校驗碼的產(chǎn)生規(guī)則。
根據(jù)本實施例,具有最小漢明距離“4”的水平/垂直奇偶校驗碼被用作糾錯代碼。奇偶校驗可以是偶數(shù)奇偶校驗或奇數(shù)奇偶校驗。代碼可以糾正單個位錯誤,同時可以檢測雙位錯誤。
當對應于數(shù)據(jù)塊MBD0-15中相同地址的數(shù)據(jù)以四行四列示出時,數(shù)據(jù)塊MBD0-15可以分別以行地址L1至L0和列地址C1至C0來表示。例如,數(shù)據(jù)塊MBD0可以以L1-L0=“00”、C1-C0=“00”來表示,而數(shù)據(jù)塊MBD10可以以L1-L0=“10”、C1-C0=“10”來表示例如,在代碼塊MBE0中,存儲了具有行地址L0為“0”的數(shù)據(jù)塊MBD0-3、8-11的奇偶校驗碼(奇偶校驗碼LP0)。在代碼塊MBE1中,存儲了具有行地址L0為“1”的數(shù)據(jù)塊MBD4-7、12-15的奇偶校驗碼(奇偶校驗碼LP1)。在代碼塊MBE2中,存儲了具有行地址L1為“0”的數(shù)據(jù)塊MBD0-5的奇偶校驗碼(奇偶校驗碼LP2)。在代碼塊MBE3中,存儲了具有行地址L1為“1”的數(shù)據(jù)塊MBD8-15的奇偶校驗碼(奇偶校驗碼LP3)。
與此相同,在代碼塊MBE4中,存儲了具有列地址C0為“0”的數(shù)據(jù)塊MBD0、4、8、12、2、6、10、14的奇偶校驗碼(奇偶校驗碼CP0)。在代碼塊MBE5中,存儲了具有列地址C0為“1”的數(shù)據(jù)塊MBD1、5、9、13、3、7、11、15的奇偶校驗碼(奇偶校驗碼CP1)。在代碼塊MBE6中,存儲了具有列地址C1為“0”的數(shù)據(jù)塊MBD0、4、8、12、1、5、9、13的奇偶校驗碼(奇偶校驗碼CP2)。在代碼塊MBE7中,存儲了具有列地址C1為“1”的數(shù)據(jù)塊MBD2、6、10、14、3、7、11、15的奇偶校驗碼(奇偶校驗碼CP3)。
當解碼的信息數(shù)據(jù)是16位(本實施例)、32位、64位、128位和256位時,上述水平/垂直奇偶校驗碼需要分別是8位、10位、12位、14位和16位。換句話說,當信息位是2的n次冪時,代碼數(shù)據(jù)需要是2n位。考慮到此,當解碼的信息數(shù)據(jù)是16位、32位、64位、128位和256位時,一般水平/垂直奇偶校驗碼需要分別是8位、12位、16位、24位和32位。為此,具體而言當信息數(shù)據(jù)是32位或更多時,上述水平/垂直奇偶校驗碼可以將代碼塊的數(shù)目減少到少于一般水平/垂直奇偶校驗碼的數(shù)目。
圖8示出了圖2所示的錯誤決定電路32和34的操作概述。這里,取決于從數(shù)據(jù)塊MBD0-7讀取的數(shù)據(jù),從代碼塊MBE0-7讀取的糾錯代碼recc
指的是lp
和cp
,而由圖2所示的編碼電路28(30)產(chǎn)生的糾錯代碼rrecc0
(或rrecc1
)指的是LP
和CP
。
首先,在步驟S10,分別比較cp
和CP
以及l(fā)p
和LP
。當cp
和CP
以及1p
和LP
完全匹配時,確定沒有錯誤,從而處理前進到步驟S20。當cp
和CP
以及1p
和LP
中至少一個不匹配時,確定為“存在錯誤”,處理前進到步驟S30。在步驟S20,輸出比較結(jié)果信號res0(或res1)=“1000”,其指示沒有錯誤,處理結(jié)束。
在步驟S30,確定是否滿足下列所有等式(2)-(5)。當滿足所有等式時,確定為“單個位錯誤”,處理前進到步驟S50。當不滿足等式中的任何一個時,確定為“兩個或更多位錯誤”,處理前進到步驟S40。在步驟S40,輸出比較結(jié)果信號res0(或res1)=“0001”,其指示“兩個或更多位錯誤”,處理結(jié)束。
cp
+cp[1]+CP
+CP[1]=1(2)cp[2]+cp[3]+CP[2]+CP[3]=1(3)lp
+lp[1]+LP
+LP[1]=1(4)lp[2]+lp[3]+LP[2]+LP[3]=1(5)在步驟S50,分別比較cp
和CP
以及l(fā)p
和LP
。在所比較的8個位中,對于只有1位不匹配的情形,確定為“ECC代碼錯誤”,處理前進到步驟S60。對于其它情形,確定為單個位錯誤,處理前進到步驟S70。在步驟S60處,輸出比較結(jié)果信號res0(或res1)=“0100”,其指示ECC代碼錯誤,處理結(jié)束。在步驟S70,輸出比較結(jié)果信號res0(或res1)=“00100”,其指示單個位錯誤,處理結(jié)束。
圖9示出了圖2所示的錯誤解碼電路36的概述。
錯誤解碼電路36從錯誤決定電路32和34接收比較結(jié)果信號res0和res1。如圖8所示,取決于錯誤內(nèi)容,比較結(jié)果信號res0和res1指示二進制“1000(沒有錯誤)”、“0100(ECC錯誤;代碼塊的單個位錯誤)”、“0010(單個位錯誤;數(shù)據(jù)塊的單個位錯誤)”和“0001(兩個或更多位錯誤)”中的一個。
圖9中的(a)、(b)和(c)示出了下述情形,其中數(shù)據(jù)塊MBD0-15之一作為刷新塊進行操作,并且要從刷新塊讀取的數(shù)據(jù)是“邏輯0”。對于圖9中的(a),當讀操作沒有錯誤時,指示來自刷新塊的讀數(shù)據(jù)為“邏輯0”的比較結(jié)果信號res0表示沒有錯誤,而指示來自刷新塊的讀數(shù)據(jù)為“邏輯1”的比較結(jié)果信號res1表示單個位錯誤(只有刷新塊錯誤)。
對于圖9中的(b),當對于讀操作在除刷新塊之外的任何數(shù)據(jù)塊MBD0-15中存在單個位錯誤時,比較結(jié)果信號res0指示單個位錯誤,而比較結(jié)果信號res1指示兩個或更多位錯誤(數(shù)據(jù)塊的1位和刷新塊的1位中的錯誤)。對于圖9中的(c),當對于讀操作在代碼塊MBE0-7之一中存在單個位錯誤時,比較結(jié)果信號res0指示ECC錯誤,而比較結(jié)果信號res1指示兩個或更多位錯誤(ECC錯誤和刷新塊的單個位錯誤)。
圖9中的(d)、(e)和(f)示出了下述情形,其中數(shù)據(jù)塊MBD0-15之一作為刷新塊進行操作,并且要從刷新塊讀取的數(shù)據(jù)是“邏輯1”。對于圖9中的(d)、(e)和(f),要從刷新塊讀取的數(shù)據(jù)的邏輯值與圖9中的(a)、(b)和(c)相反。為此,比較結(jié)果信號res0和res1與圖9中的(a)、(b)和(c)相反。
圖9中的(g)、(h)和(i)示出了下述情形,其中代碼塊MBE0-7之一作為刷新塊進行操作,并且要從刷新塊讀取的數(shù)據(jù)是“邏輯0”。對于圖9中的(g),當讀操作沒有錯誤時,指示來自刷新塊的讀數(shù)據(jù)為“邏輯0”的比較結(jié)果信號res0表示沒有錯誤,而指示來自刷新塊的讀數(shù)據(jù)為“邏輯1”的比較結(jié)果信號res1表示ECC錯誤(只有刷新塊錯誤)。
對于圖9中的(h),當對于讀操作在除刷新塊之外的任何數(shù)據(jù)塊MBD0-15中存在單個位錯誤時,比較結(jié)果信號res0指示單個位錯誤,而比較結(jié)果信號res1指示兩個或更多位錯誤(數(shù)據(jù)塊的單個位錯誤和刷新塊的單個位錯誤)。對于圖9中的(i),當對于讀操作在除刷新塊之外的代碼塊MBE0-7之一中存在單個位錯誤時,比較結(jié)果信號res0指示ECC錯誤,而比較結(jié)果信號res1指示兩個或更多位錯誤(ECC錯誤和刷新塊的單個位錯誤)。
圖9中的(j)、(k)和(l)示出了下述情形,其中代碼塊MBE0-7之一作為刷新塊進行操作,并且要從刷新塊讀取的數(shù)據(jù)是“邏輯1”。對于圖9中的(j)、(k)和(l),要從刷新塊讀取的數(shù)據(jù)的邏輯值與圖9中的(g)、(h)和(i)相反。為此,比較結(jié)果信號res0和res1與圖9中的(g)、(h)和(i)相反。
錯誤解碼電路36采用比較結(jié)果信號res0和res1之一作為真實錯誤,并且基于結(jié)果來糾正錯誤。這里,糾錯電路36具有下述的錯誤決定優(yōu)先級沒有錯誤>ECC錯誤>單個位錯誤>兩個或更多位錯誤。換句話說,比較結(jié)果信號中具有較少錯誤的一個被認為是真的。為此,對于圖9中的(a)、(d)、(g)和(j),確定沒有錯誤。對于圖9中的(b)、(e)、(h)和(k),確定單個位錯誤。對于圖9中的(c)、(f)、(i)和(l),確定ECC錯誤。
錯誤解碼電路36將與具有較高優(yōu)先級的比較結(jié)果信號res0和res1相對應的邏輯值作為要從刷新塊讀取的數(shù)據(jù)的邏輯值,并且將其作為輸出數(shù)據(jù)DOUT[15:0]輸出。具體而言,當res0具有比res1更高的優(yōu)先級時,對應于刷新塊的輸出數(shù)據(jù)DOUT的位被設置為“邏輯0”。當res1具有比res0更高的優(yōu)先級時,對應于刷新塊的輸出數(shù)據(jù)DOUT的位被設置為“邏輯1”。
此外,當錯誤解碼電路36確定在數(shù)據(jù)塊MBD0-15之一中存在單個位錯誤時,錯誤解碼電路36糾正該錯誤。具有錯誤的數(shù)據(jù)塊MBD0-15(產(chǎn)生單個位錯誤的錯誤地址)是通過將糾錯代碼recc
分配給下述等式(6)和(7)而確定的。例如,在(L1,L0)=“01”,(C1,C0)=“11”的情形下,錯誤塊是數(shù)據(jù)塊MBD7,如圖7所示。這里,錯誤解碼電路36將從數(shù)據(jù)塊MBD7讀取的數(shù)據(jù)的邏輯值翻轉(zhuǎn),進而輸出到數(shù)據(jù)輸出緩沖器14。此外,根據(jù)本實施例,糾錯后的數(shù)據(jù)沒有被寫入塊。這是因為單個位錯誤和ECC錯誤與存儲器單元的物理缺陷或數(shù)據(jù)保持時間的缺乏有關。對于這類錯誤,即使正確數(shù)據(jù)被寫入存儲器單元,也會再次產(chǎn)生錯誤,所以處理時間是無用的。
(L1,L0)=(lp[3]+LP[3],1p[1]+LP[1]) (6)(C1,C0)=(cp[3]+CP[3],cp[1]+CP[1]) (7)圖10示出了根據(jù)本發(fā)明第一實施例的讀操作示例(仿真結(jié)果)。
在該示例中,數(shù)據(jù)塊MBD10作為刷新塊進行操作(圖10中的(a))。偽SRAM讀取從“0”至“F”16進制數(shù)形式的行地址MBAD以及讀命令RDZ,順序接收它們作為地址,并且依次執(zhí)行讀操作(圖10中的(b))。
在由讀地址“0”、“1”、“2”...“D”、“E”和“F”所指示的數(shù)據(jù)塊MBD0-15的存儲器單元中,16進制數(shù)“0000”、“1111”、“2222”...“DDDD”、“EEEE”和“FFFF”已經(jīng)被寫入。在由讀地址“0”、“1”、“2”...“D”、“E”和“F”所指示的代碼塊MBE0-7的存儲器單元中,16進制數(shù)“00”已經(jīng)被寫入。然而,在該示例中,單個位錯誤(ECC錯誤)是在代碼塊MBE6中產(chǎn)生的,從而讀數(shù)據(jù)recc[7:0]變?yōu)?6進制數(shù)形式的“40”(圖10中的(c))。此外,對于實際不同地址的讀操作,很少在代碼塊MBE6中連續(xù)產(chǎn)生單個位錯誤。
在讀地址“2”的讀操作期間,圖1所示的刷新控制電路20輸出刷新請求信號refd[10](圖10中的(d))。存儲器核心24響應于刷新請求信號refd[10],并且執(zhí)行數(shù)據(jù)塊MBD10的刷新操作。
來自作為刷新塊進行操作的數(shù)據(jù)塊MBD10的數(shù)據(jù)沒有被讀取,從而讀數(shù)據(jù)rdat[15:0]的第十位例如被讀取為“邏輯0”。為此,當?shù)谑坏钠谕凳恰斑壿?”時(例如,“4444”、“5555”等),就產(chǎn)生了刷新塊的讀錯誤。此時,錯誤解碼電路36接收指示兩個或更多位錯誤的比較結(jié)果信號res0(“0001”)以及指示ECC錯誤的比較結(jié)果信號res1(“0100”),確定比較結(jié)果信號res1的優(yōu)先級更高,并且檢測ECC錯誤的產(chǎn)生(圖10中的(e)和(f))。
此外,錯誤解碼電路36具有比較結(jié)果信號res1的較高優(yōu)先級,從而要從刷新塊讀取的數(shù)據(jù)的邏輯值被確定為“邏輯1”,并且一個假定標志ASMFLG被設置為“邏輯1”(圖10中的(g)和(h))。假定標志ASMFLG是在錯誤解碼電路36中使用的內(nèi)部信號。在設置假定標志ASMFLG的條件下,輸出數(shù)據(jù)[15:0]的第十位被設置為“邏輯1”。換句話說,產(chǎn)生了來自沒有執(zhí)行讀操作的刷新塊的數(shù)據(jù)。
而且,當讀數(shù)據(jù)rdat[15:0]的第十位的期望值是“邏輯0”時(例如,“0000”、“1111”、“2222”、“3333”等),將不產(chǎn)生刷新塊的讀錯誤。此時,錯誤解碼電路36接收指示ECC錯誤的比較結(jié)果信號res0(“0100”)和指示兩個或更多位錯誤的比較結(jié)果信號res1(“0001”),確定比較結(jié)果信號res0具有更高優(yōu)先級,并且檢測ECC錯誤的產(chǎn)生(圖10中的(i)、(j)和(k))。
此外,由于比較結(jié)果信號res0具有更高優(yōu)先級,所以錯誤解碼電路36確定要從刷新塊讀取的數(shù)據(jù)的邏輯值為“邏輯0”,并且將假定標志ASMFLG設置為“邏輯0”(圖10中的(l)、(m)和(n))。在設置假定標志ASMFLG的條件下,輸出數(shù)據(jù)[15:0]的第十位被設置為“邏輯0”。換句話說,重新產(chǎn)生了來自沒有執(zhí)行讀操作的刷新塊的數(shù)據(jù)。
圖11示出了根據(jù)本發(fā)明第一實施例的讀操作的另一示例(仿真結(jié)果)。這里將省略圖10中示出的操作的詳細描述。
在該示例中,如圖10所示,偽SRAM讀取從“0”至“F”16進制數(shù)形式的行地址MBAD以及讀命令RDZ,順序接收它們作為地址,并且依次執(zhí)行讀操作(圖11中的(a))。刷新塊在連續(xù)的讀操作期間從數(shù)據(jù)塊MBD10切換到數(shù)據(jù)塊MBD11(圖11中的(b))。圖10中示出了已經(jīng)寫入數(shù)據(jù)塊MBD0-15和代碼塊MBE0-7的數(shù)據(jù)。在該示例中,產(chǎn)生了數(shù)據(jù)塊MBD12的單個位錯誤,并且對于每個讀操作讀數(shù)據(jù)rdat[15:0]的第十二位被改變。此外,對于實際不同地址的讀操作,很少在代碼塊MBD12中連續(xù)產(chǎn)生單個位錯誤。
來自作為刷新塊進行操作的數(shù)據(jù)塊MBD10的數(shù)據(jù)沒有被讀取,從而讀數(shù)據(jù)rdat[15:0]的第十位例如被讀取為“邏輯0”。類似地,來自作為刷新塊進行操作的數(shù)據(jù)塊MBD11的數(shù)據(jù)沒有被讀取,從而讀數(shù)據(jù)rdat[15:0]的第十一位例如被讀取為“邏輯1”。
與和圖10相同的方式,數(shù)據(jù)控制電路12的錯誤決定電路32和34從讀數(shù)據(jù)rdat[15:0]和糾錯代碼recc[7:0]產(chǎn)生比較結(jié)果信號res0和res1。比較結(jié)果信號res0和res1指示數(shù)據(jù)塊的單個位錯誤(“0010”)或兩個或更多位錯誤(“0001”)。錯誤解碼電路36基于比較結(jié)果信號res0和res1重新產(chǎn)生不能被刷新操作讀取的數(shù)據(jù)。此外,錯誤解碼電路36從糾錯代碼recc[7:0]確定其中產(chǎn)生單個位錯誤的塊地址(如上面的等式6和7所示),并且翻轉(zhuǎn)讀自該塊地址的數(shù)據(jù)。換句話說,在數(shù)據(jù)塊MBD12處產(chǎn)生的單個位錯誤被糾正。
根據(jù)本實施例,偽SRAM包括數(shù)據(jù)添加電路26和糾錯電路12c,數(shù)據(jù)添加電路26將要從刷新塊讀取的期望數(shù)據(jù)(邏輯1、邏輯0)分別添加到要從其它塊讀取的數(shù)據(jù),進而產(chǎn)生兩個讀數(shù)據(jù)串rdat0和rdat1;糾錯電路12c檢測讀數(shù)據(jù)串rdat0和rdat1的每個錯誤,并且將它們中最可靠的錯誤檢測結(jié)果視為真。為此,刷新操作可以相對于訪問偽SRAM的系統(tǒng)隱藏起來,同時,可以糾正除刷新塊之外的其他塊中產(chǎn)生的單個位錯誤。這是利用具有最小距離“4”的水平/垂直奇偶校驗碼來實現(xiàn)的。
刷新操作可以被隱藏而不與讀操作沖突,從而讀周期時間可以防止被拉長。此外,刷新請求間隔可以延長,進而待機時間段期間的功耗可以減少。因此,在AC和DC特性方面,偽SRAM可以被配置成等效于SRAM。換句話說,可以向用戶提供與SRAM完全兼容的偽SRAM。用戶僅僅通過將系統(tǒng)中嵌入的SRAM改換為本發(fā)明的偽SRAM,就可以降低成本。
利用刷新控制電路20輸出的刷新點信號refpointd[15:0]和refpointd[7:0],僅僅數(shù)據(jù)塊MBD0-15和代碼塊MBE0-7中的一個被設置為刷新塊。不能被刷新操作讀取的數(shù)據(jù)通常是一個位,從而可以利用數(shù)據(jù)添加電路26和糾錯電路12c來對不能被刷新操作讀取的數(shù)據(jù)進行簡單的解碼。
訪問控制電路18不輸出讀請求信號rdd和rde到刷新塊,從而刷新塊不管是否正在執(zhí)行刷新操作都不執(zhí)行讀操作。為此,可以簡單地控制塊控制電路BCNT的讀取。
當刷新請求信號refd(或refe)和寫請求信號wrd(或wre)彼此沖突時,塊控制電路BCNT執(zhí)行刷新操作,然后執(zhí)行寫操作。為此,寫數(shù)據(jù)wdat(或wecc)肯定可以寫入到刷新塊。
外部寫周期時間Tcyce是寫命令的最小供應間隔,其被設置為長于內(nèi)部寫周期時間Tcyci。具體而言,在8個外部寫周期時間Tcyce期間,可以執(zhí)行一次刷新操作和八次寫操作。為此,可以逐漸恢復由刷新操作的優(yōu)先級引起的寫操作的延遲。換句話說,寫數(shù)據(jù)肯定可以寫入刷新塊。
此外,在從刷新塊的最終刷新請求信號切換到下一刷新塊的切換時間段期間,外部寫周期時間Tcyce可以被插入8次。為此,對于某一塊在被刷新請求延遲的寫操作中,該塊在刷新塊之間被完成。因此,可以防止由于刷新塊中的寫操作的延遲而使讀操作延遲,并且還可以防止由于刷新操作和寫操作的沖突導致的讀訪問的增加。
糾錯電路12c檢測四類錯誤項(沒有錯誤、任何數(shù)據(jù)塊的單個位錯誤、任何代碼塊的單個位錯誤以及兩個或更多位錯誤),并且將具有較高優(yōu)先級的錯誤項視為真。為此,糾錯電路12c可以以簡化邏輯來配置。
所形成的數(shù)據(jù)塊MBD0-15分別對應于數(shù)據(jù)終端DQ0-15,從而可以一次糾正在作為偽SRAM輸入和輸出的數(shù)據(jù)單元中的錯誤。這樣,可以方便地提供用于糾錯讀數(shù)據(jù)和產(chǎn)生編碼數(shù)據(jù)的邏輯,進而可以防止讀周期時間和寫周期時間增加。
圖12示出了根據(jù)本發(fā)明第二實施例的半導體存儲器。與第一實施例中相同的電路和信號具有相同的標號,并且將省略對它們的詳細描述。
本實施例的半導體存儲器是使用CMOS工藝在硅襯底上形成的時鐘同步型偽SRAM。換句話說,偽SRAM沒有用于接收時鐘信號的時鐘終端。此外,根據(jù)本實施例,如圖13和14所示,提取的漢明碼被用作糾錯代碼。提取的漢明碼的最小漢明距離是“4”,并且可以同時提供單個位錯誤檢測和雙位錯誤檢測。
偽SRAM具有數(shù)據(jù)控制電路12A、訪問控制電路18A、刷新控制電路20A和存儲器核心24A,代替第一實施例中的數(shù)據(jù)控制電路12、訪問控制電路18、刷新控制電路20和存儲器核心24。此外,偽SRAM還包括用于產(chǎn)生時鐘信號OSC的振蕩器40A。
存儲器核心24A具有分別對應于數(shù)據(jù)終端DQ0-15的16個數(shù)據(jù)塊MBD0-15、分別保持六位糾錯代碼的每一位的6個代碼塊MBE0-5、以及塊控制電路BCNT。數(shù)據(jù)塊MBD0-15和代碼塊MBE0-5的安排和存儲容量與第一實施例相同。換句話說,MBD0-15和代碼塊MBE0-5中的每個具有動態(tài)存儲器單元、以及連接到動態(tài)存儲器單元的字線和位線。
當解碼的信息數(shù)據(jù)是16位(本實施例)、32位、64位、128位和256位時,提取的漢明碼需要分別是6位、7位、8位、9位和10位。換句話說,當信息位是2的n次冪時,代碼數(shù)據(jù)需要是n+2位。為此,提取的漢明碼具有比上述水平/垂直奇偶校驗碼更高的編碼比率,并且可以減少代碼塊MBE的數(shù)目。此外,可以減少代碼塊MBE中布置的信號線。這樣,可以減小偽SRAM的芯片尺寸。
在加電之后,振蕩器40A以預定周期自振產(chǎn)生時鐘信號OSC。根據(jù)本實施例,時鐘信號OSC的頻率被設置為等于第一實施例的時鐘信號CLK的頻率。
刷新控制電路20A等同于第一實施例的刷新控制電路20,除了輸出刷新點信號refpoint[21:0]和刷新請求信號ref[21:0]來代替刷新點信號refpointd[15:0]和refpointe[7:0]以及刷新請求信號refd[15:0]和refe[7:0]。換句話說,刷新控制電路20A具有定時器、計數(shù)器、移位寄存器、以及與時鐘信號OSC同步操作的刷新請求產(chǎn)生電路。移位寄存器具有22個級聯(lián)的鎖存器,并且最后級鎖存器的輸出被饋送到初始級鎖存器的輸入。移位寄存器對每個計數(shù)器溢出進行移位操作,并且從鎖存器中輸出用于指示執(zhí)行刷新操作的塊MBD0-15和MBE0-5的刷新點信號refpoint[21:0]。由刷新點信號refpoint[21:0]選擇的塊MBD0-15和MBE0-5之一作為執(zhí)行刷新操作的刷新塊進行操作。在刷新點信號refpoint[21:0]的激活時間段期間,刷新請求產(chǎn)生電路輸出與周期性信號同步的對應刷新請求信號ref[21:0]。
刷新控制電路20A的操作等同于圖3和4所示的情形,除了它們具有不同的信號名稱。換句話說,每個刷新點信號refpoint[21:0]的激活間隔T1(對應于每個存儲器單元的刷新間隔)被設置為長于最差存儲器單元的存儲器保持時間。當刷新操作被執(zhí)行時,最差存儲器單元已經(jīng)丟失了數(shù)據(jù)。然而,利用數(shù)據(jù)控制電路12A的糾錯功能來對丟失的數(shù)據(jù)解碼。這樣,以與第一實施例相同的方式,可以減少待機時間段期間的功耗。
訪問控制電路18A對命令信號CMD解碼,并且取決于解碼結(jié)果輸出用于執(zhí)行讀操作的讀請求信號rd[21:0]或?qū)懻埱笮盘杦r[21:0]。然而,當刷新點信號refpoint[21:0]中的任何一個被激活時,訪問控制電路18A屏蔽對應讀請求信號rd[21:0]的任何輸出。此外,當刷新請求信號ref[21:0]中任何一個被接收時,訪問控制電路18A通過僅延遲插入刷新操作的時間段來順序輸出對應寫請求信號wr[21:0]中的任何一個。
數(shù)據(jù)控制電路12A在寫操作期間輸出輸入數(shù)據(jù)DIN[15:0],并且將其作為數(shù)據(jù)wdat[21:0]輸出到存儲器核心24A。寫數(shù)據(jù)wdat[21:0]的較高6位[21:16]是從輸入數(shù)據(jù)DIN[15:0]產(chǎn)生的糾錯代碼(寫代碼數(shù)據(jù))。此外,數(shù)據(jù)控制電路12在讀操作期間接收讀自存儲器核心24的讀數(shù)據(jù)rdat[21:0],并且糾正來自具有沒有被刷新操作讀取的數(shù)據(jù)以及數(shù)據(jù)保持特性很差的數(shù)據(jù)的存儲器核心的讀數(shù)據(jù)錯誤,并且將讀數(shù)據(jù)作為輸出數(shù)據(jù)DOUT[15:0]輸出。讀數(shù)據(jù)rdat[21:0]的較高6位[21:16]是讀自代碼塊MBE21-16的糾錯數(shù)據(jù)(讀代碼數(shù)據(jù))。此外,當在讀操作期間檢測到不能被糾正的兩個或更多位錯誤時,數(shù)據(jù)控制電路12A輸出ECC錯誤信號ECCERR到錯誤終端。
此外,寫請求信號wr[21:0]、讀請求信號rd[21:0]、刷新點信號refpoint[21:0]、刷新請求信號ref[21:0]、寫數(shù)據(jù)wdat[21:0]和讀數(shù)據(jù)rdat[21:0]的位分別對應于數(shù)據(jù)塊MBD15-0和代碼塊MBE21-16。輸入數(shù)據(jù)DIN[15:0]和輸出數(shù)據(jù)DOUT[15:0]的位分別對應于數(shù)據(jù)塊MBD15-0的塊數(shù)目。
圖13示出了圖12所示的詳細數(shù)據(jù)控制電路12A。數(shù)據(jù)控制電路12A具有數(shù)據(jù)糾正部件12d和數(shù)據(jù)編碼部件12e,數(shù)據(jù)糾正部件12d糾正來自存儲器核心24A的讀數(shù)據(jù);數(shù)據(jù)編碼部件12e從寫數(shù)據(jù)產(chǎn)生到存儲器核心24A的糾錯代碼。數(shù)據(jù)糾正部件12d具有數(shù)據(jù)添加電路42和糾錯電路12f。糾錯電路12f具有校正子產(chǎn)生電路44和46、錯誤決定電路48和50、以及錯誤解碼電路52。數(shù)據(jù)解碼部件12e具有編碼電路54A。
數(shù)據(jù)添加電路42產(chǎn)生讀數(shù)據(jù)串code0[21:0]和code1[21:0],其中假設來自作為不能執(zhí)行讀操作的刷新塊進行操作的塊(MBD0-15和MBE0-5中的任何一個)的讀數(shù)據(jù)為“邏輯1”和“邏輯0”。數(shù)據(jù)添加電路42使用刷新點信號refpoint[21:0]來確定刷新塊。換句話說,數(shù)據(jù)添加電路42將要從刷新塊讀取的數(shù)據(jù)添加到來自其它塊的讀數(shù)據(jù)上作為期望數(shù)據(jù)“邏輯1”或“邏輯0”,并且產(chǎn)生讀數(shù)據(jù)串code0[21:0]和code1[21:0]。
校正子產(chǎn)生電路44從讀數(shù)據(jù)code0[21:0]產(chǎn)生校正子syn0[5:0]。此外,校正子產(chǎn)生電路44使用所產(chǎn)生的校正子syn0[5:0]確定錯誤的類型,并且輸出比較結(jié)果信號res0。校正子產(chǎn)生電路46從讀數(shù)據(jù)code1[21:0]產(chǎn)生校正子syn1[5:0]。此外,校正子產(chǎn)生電路46使用所產(chǎn)生的校正子syn1[5:0]確定錯誤的類型,并且輸出比較結(jié)果信號res1。比較結(jié)果信號res0和res1的定義基本等同于第一實施例。然而,在本實施例中,沒有提供“ECC錯誤”。為此,錯誤確定的優(yōu)先級如下所示沒有錯誤>單個位錯誤>兩個或更多位錯誤。
錯誤決定電路48通過使用校正子syn0[5:0]來確定錯誤塊和錯誤的類型,并且糾正讀數(shù)據(jù)code0[21:0]的錯誤。糾正后的22位讀數(shù)據(jù)作為糾正代碼ccode0[21:0]被輸出。糾正后的22位讀數(shù)據(jù)中與存儲器塊MBD15-0相對應的較低16位作為輸出數(shù)據(jù)dout0[15:0]被輸出。此外,當檢測到兩個或更多位錯誤時,錯誤決定電路48輸出錯誤標志信號errflg_2bO。
錯誤決定電路50是與錯誤決定電路48相同的電路。錯誤決定電路50使用校正子syn1[5:0]來確定錯誤塊和錯誤的類型,糾正讀數(shù)據(jù)code1[21:0]的錯誤,并且輸出糾正代碼ccode1[21:0]、輸出數(shù)據(jù)dout1[15:0]以及錯誤標志信號errflg_2b1。
錯誤解碼電路52根據(jù)比較結(jié)果信號res0和res1所指示的錯誤內(nèi)容來確定錯誤決定電路48、50中哪一個為真,并且輸出從所確定的錯誤決定志信號errflg_2b0(或errflg_2b1)以及糾正代碼ccode0[21:0](或ccode[21:0])作為輸出數(shù)據(jù)DOUT[15:0]、ECC錯誤信號ECCERR和糾正代碼ccode[21:0]。輸出數(shù)據(jù)DOUT[15:0]和ECC錯誤信號ECCERR通過數(shù)據(jù)終端DQ15-0和錯誤終端ECCERR被輸出到偽SRAM的外部。本實施例中未使用的糾正代碼ccode[21:0]是當產(chǎn)生錯誤的存儲器單元的數(shù)據(jù)被重寫時使用的重寫數(shù)據(jù)。
數(shù)據(jù)編碼部件12e的編碼電路54A從輸入數(shù)據(jù)DIN[15:0](寫數(shù)據(jù))產(chǎn)生糾錯代碼wdata[21:16],并且輸出糾錯代碼wdata[21:16]和寫數(shù)據(jù)wdat[15:0]到存儲器核心24A。
圖14至圖17示出了圖13所示的數(shù)據(jù)控制電路12A的一部分的電路塊的RTL描述和邏輯合成結(jié)果。術語“校正子”對應于圖13示出的“syn”。
圖14示出了圖13所示的錯誤決定電路48和50的RTL描述。圖15示出了圖14的RTL描述的邏輯合成結(jié)果。圖16示出了圖13所示的校正子產(chǎn)生電路44和46的校正子產(chǎn)生單元的RTL描述。圖17示出了圖13所示的數(shù)據(jù)編碼部件12e的編碼電路54A的RTL描述。
圖18示出了圖12所示的數(shù)據(jù)控制電路12A的糾錯操作。
在附圖中,塊D0-D15和塊P0-P5分別對應于圖12所示的數(shù)據(jù)塊MBD0-15和代碼塊MBE16-21。對于塊D0-D15和P0-P5的位地址E1-E22,校正子位以和一般漢明碼相同的方式被分配給錯誤地址,如圖18所示。
在本示例中,數(shù)據(jù)塊MBD10(塊D10)作為刷新塊操作。為此,讀數(shù)據(jù)rdat中與塊D10相對應的位不是一致的,以便被大陰影框所環(huán)繞。圖13所示的數(shù)據(jù)控制電路12A的數(shù)據(jù)添加電路42產(chǎn)生讀數(shù)據(jù)code0,其中“邏輯0”被添加到與塊D10相對應的位,并且產(chǎn)生讀數(shù)據(jù)code1,其中“邏輯1”被添加到與塊D10相對應的位。
校正子產(chǎn)生電路44從讀數(shù)據(jù)code0產(chǎn)生校正子syn0[5:0]。校正子syn0[5:0]的所有位S5-0是“邏輯0”,從而校正子產(chǎn)生電路44輸出指示沒有錯誤的比較結(jié)果信號res0(“1000”)。校正子產(chǎn)生電路46從讀數(shù)據(jù)code1產(chǎn)生校正子syn1[5:0]。校正子syn1[5:0]的最高位S5是“邏輯1”,校正子產(chǎn)生電路46輸出指示單個位錯誤的比較結(jié)果信號res1(“0010”)。
來自校正子產(chǎn)生電路44的校正子syn0[5:0]指示沒有錯誤,從而錯誤決定電路48輸出與讀數(shù)據(jù)code0[21:0]的數(shù)據(jù)塊MBD15-0相對應的位作為輸出數(shù)據(jù)dout0[15:0]。來自校正子產(chǎn)生電路46的校正子syn1[5:0]指示單個位錯誤,從而錯誤決定電路50將校正子syn1[5:0]的較低5位(“01111”=十進制數(shù)“15”)作為錯誤地址(“E15”=MBD10)。錯誤決定電路50將從讀數(shù)據(jù)code1[21:0]的數(shù)據(jù)塊MBD10讀取的數(shù)據(jù)的邏輯翻轉(zhuǎn),并且輸出與數(shù)據(jù)塊MBD15-0相對應的位作為輸出數(shù)據(jù)dout1[15:0]。
錯誤解碼電路52確定錯誤決定電路48的輸出被來自校正子產(chǎn)生電路44和46的比較結(jié)果信號res0(沒有錯誤)和res1(單個位錯誤)所糾正。錯誤解碼電路52輸出從錯誤決定電路48輸出的輸出數(shù)據(jù)dout[15:0]和錯誤標志信號errflg_2b0(指示沒有錯誤)作為輸出數(shù)據(jù)DOUT[15:0]和ECC錯誤信號ECCERR(指示沒有錯誤)。
圖19示出了圖12所示的數(shù)據(jù)控制電路12A的另一糾錯操作。這里將省略與圖18相同技術與操作的詳細描述。
在該示例中,以與圖18相同的方式,數(shù)據(jù)塊MBD10(塊D10)作為刷新塊操作。此外,在附圖中,在數(shù)據(jù)塊MBD1(塊D1)處產(chǎn)生單個位錯誤,如框結(jié)構(gòu)所示。
數(shù)據(jù)控制電路12A的數(shù)據(jù)添加電路42產(chǎn)生讀數(shù)據(jù)code0,其中“邏輯0”被添加到與塊D10相對應的位,并且產(chǎn)生讀數(shù)據(jù)code1,其中“邏輯1”被添加到與塊D10相對應的位。
校正子產(chǎn)生電路44和46分別從讀數(shù)據(jù)code0和code1產(chǎn)生校正子syn0[5:0]和syn1[5:0]。校正子syn0[5:0]的最高位S5是“邏輯1”,從而校正子產(chǎn)生電路44輸出指示單個位錯誤的比較結(jié)果信號res0(“0010”)。校正子syn1[5:0]的最高位S5是“邏輯0”,并且位S4-0中至少一個是“邏輯1”,從而校正子產(chǎn)生電路46輸出指示兩個或更多位錯誤的比較結(jié)果信號res1(“0001”)。
來自校正子產(chǎn)生電路44的校正子syn0[5:0]指示單個位錯誤,從而錯誤決定電路48將校正子syn0[5:0]的較低5位(“00101”=十進制數(shù)“5”)作為錯誤地址(“E5”=MBD1)。錯誤決定電路48翻轉(zhuǎn)讀自數(shù)據(jù)塊MBD1的“邏輯1”,并且輸出與讀數(shù)據(jù)code0[21:0]的數(shù)據(jù)塊MBD15-0相對應的位作為輸出數(shù)據(jù)dout0[15:0]。來自校正子產(chǎn)生電路46的校正子syn1[5:0]指示兩個或更多位錯誤,從而錯誤決定電路50原樣輸出與讀數(shù)據(jù)code1[21:0]的數(shù)據(jù)塊MBD15-0相對應的位作為輸出數(shù)據(jù)dout1[15:0],而不執(zhí)行糾錯。此外,錯誤決定電路50將錯誤標志信號errflg_2b1激活到高電平。
錯誤解碼電路52確定錯誤決定電路48的輸出被來自校正子產(chǎn)生電路44和46的比較結(jié)果信號res0(單個位錯誤)和res1(兩個或更多位錯誤)所糾正。錯誤解碼電路52輸出從錯誤決定電路48輸出的輸出數(shù)據(jù)dout0[15:0]口錯誤標志信號errflg_2bO(指示沒有錯誤)作為輸出數(shù)據(jù)[15:0]和ECC錯誤信號ECCERR(指示沒有錯誤)。
在本實施例中,可以實現(xiàn)與上述第一實施例相同的效果。此外,根據(jù)本實施例,提取的漢明碼被用作代碼數(shù)據(jù),從而代碼數(shù)據(jù)的位數(shù)可以被減少。這樣,與第一實施例相比,代碼塊MBE的數(shù)目可以減少兩個,進而偽SRAM的芯片尺寸可以被減小。
此外,當糾錯電路12f檢測到不能被糾正的“兩個或更多位錯誤”時,糾錯電路12f輸出ECC錯誤信號ECCERR。利用ECC錯誤信號ECCERR,訪問偽SRAM的外部系統(tǒng)可以執(zhí)行為避免錯誤而進行的操作,例如重試讀操作以及刪除數(shù)據(jù)。這樣,系統(tǒng)的可靠性可以被提高。
圖20示出了根據(jù)本發(fā)明第三實施例的半導體存儲器。與第一和第二實施例等同的電路與信號具有相同的標號,并且這里省略了對它們的詳細描述。
本實施例的半導體存儲器是使用CMOS工藝在硅襯底上形成的時鐘非同步型偽SRAM。此外,根據(jù)本實施例,提取的漢明碼被用作糾錯代碼。提取的漢明碼的最小漢明距離是“4”,并且可以同時提供單個位錯誤的糾正和雙位錯誤的檢測。
偽SRAM具有存儲器核心24B和振蕩器40B來代替第二實施例的存儲器核心24A和振蕩器40A。其它的配置與第二實施例的基本相同。
存儲器核心24B等同于第二實施例的存儲器核心24A,除了形成了用來消除字線中的缺陷的行冗余電路和用來消除位線中的缺陷的列冗余電路。
振蕩器40B自振產(chǎn)生時鐘信號OSC,該時鐘信號OSC具有比第二實施例更短的周期。為此,由刷新控制電路20A輸出的每個刷新點信號refpoint[21:0]的激活間隔和刷新請求信號ref[21:0]的產(chǎn)生間隔比第二實施例中的短。具體而言,每個刷新點信號refpoint[21:0]的激活間隔T1(對應于每個存儲器單元的刷新間隔)被設置為比最差存儲器單元的數(shù)據(jù)保持時間短。為此,包括最差存儲器單元的所有存儲器單元可以通過執(zhí)行刷新操作一直保持數(shù)據(jù)。數(shù)據(jù)控制電路12A的糾錯功能被用來消除制造工藝所產(chǎn)生的存儲器核心的缺陷。換句話說,代碼塊MBE0-5代替行冗余電路和列冗余電路工作。
在本實施例中,可以實現(xiàn)與上述第一和第二實施例相同的效果。此外,根據(jù)本實施例,形成代碼塊MBE0-5來代替行冗余電路和列冗余電路,從而從由于制造工藝而產(chǎn)生的壞存儲器單元讀取的出錯數(shù)據(jù)可以利用糾錯電路來糾正。因為不需要形成冗余電路,所以可以減小芯片尺寸。
圖21示出了根據(jù)本發(fā)明第四實施例的半導體存儲器。與第一和第二實施例等同的電路與信號具有相同的標號,并且這里省略了對它們的詳細描述。
本實施例的半導體存儲器是使用CMOS工藝在硅襯底上形成的時鐘非同步型偽SRAM。此外,根據(jù)本實施例,提取的漢明碼被用作糾錯代碼。提取的漢明碼的最小漢明距離是“4”,并且可以同時提供單個位錯誤的糾正和雙位錯誤的檢測。
偽SRAM具有如第三實施例中的數(shù)據(jù)控制電路12C、訪問控制電路18C和振蕩器40B,來代替第二實施例中的數(shù)據(jù)控制電路12A、訪問控制電路18A和振蕩器40A。
數(shù)據(jù)控制電路12C具有當在讀操作期間檢測到可糾正的錯誤(單個位錯誤)時,將糾正后的數(shù)據(jù)重寫到存儲器核心24A的功能。當數(shù)據(jù)控制電路12C重寫糾正后的數(shù)據(jù)到存儲器核心24A時,訪問控制電路18C輸出寫請求信號wr[21:0]。
圖22示出了圖21所示的詳細數(shù)據(jù)控制電路12C。
數(shù)據(jù)控制電路12C具有數(shù)據(jù)編碼部件12g來代替第二實施例的數(shù)據(jù)編碼部件12e。數(shù)據(jù)糾正部件12d的設置與第二實施例的相同。數(shù)據(jù)編碼部件12g具有編碼電路54A和選擇器56B。選擇器56B輸出下述數(shù)據(jù)作為寫數(shù)據(jù)wdat[21:0],其中所述數(shù)據(jù)是由編碼電路54A編碼的輸入數(shù)據(jù)DIN[15:0]。此外,當在讀操作期間產(chǎn)生單個位錯誤時,選擇器56B輸出來自數(shù)據(jù)糾正單元12d的錯誤解碼電路52的糾正代碼ccode[21:0]以作為寫數(shù)據(jù)wdat[21:0]輸出。換句話說,在讀操作期間,選擇器56B充當重寫控制電路,以將糾錯電路12f所糾正的數(shù)據(jù)重寫到數(shù)據(jù)塊MBD和代碼塊MBE。
在本實施例中,可以實現(xiàn)與上述第一和第二實施例相同的效果。此外,根據(jù)本實施例,由糾錯電路12f糾正的數(shù)據(jù)可以被選擇器56B重寫到數(shù)據(jù)塊MBD和代碼塊MBE。為此,當被電源噪聲和暫時性錯誤損壞的存儲器單元中的數(shù)據(jù)被讀出時,正確的數(shù)據(jù)可以被重寫到存儲器單元,從而可以提高偽SRAM的可靠性。
圖23示出了根據(jù)本發(fā)明第五實施例的半導體存儲器。與第一和第二實施例等同的電路與信號具有相同的標號,并且這里省略了對它們的詳細描述。
本實施例的半導體存儲器是使用CMOS工藝在硅襯底上形成的時鐘非同步型偽SRAM。此外,根據(jù)本實施例,提取的漢明碼被用作糾錯代碼。提取的漢明碼的最小漢明距離是“4”,并且可以同時提供單個位錯誤的糾正和雙位錯誤的檢測。
偽SRAM具有數(shù)據(jù)控制電路12D、訪問控制電路18D、刷新控制電路20D、振蕩器40D和存儲器核心24D,來代替第二實施例的數(shù)據(jù)控制電路12A、訪問控制電路18A、刷新控制電路20A、振蕩器40A和存儲器核心24A。
存儲器核心24D具有64個數(shù)據(jù)塊MBD[63:0]和8個代碼塊MBE[7:0]。根據(jù)本實施例,數(shù)據(jù)塊MBD[63:0]的數(shù)目被設計成數(shù)據(jù)終端DQ[15:0]數(shù)目的四倍。為此,由于在一次寫操作中僅有寫數(shù)據(jù)被供應到數(shù)據(jù)終端[15:0],所以不會產(chǎn)生代碼數(shù)據(jù)。因此,在開始寫操作期間,需要從數(shù)據(jù)塊MBD[63:0]和代碼塊MBE[7:0]對數(shù)據(jù)控制電路12D進行讀取。然而,用于產(chǎn)生代碼數(shù)據(jù)的信息數(shù)據(jù)的位數(shù)增加,從而代碼塊MBE的數(shù)目可以相對減少。具體而言,在提取的漢明碼的情形中,當信息位是2的n次冪時,代碼數(shù)據(jù)僅n+2位就足夠了。這樣,代碼塊[BE的相對數(shù)目可以被顯著減少,進而可以防止偽SRAM芯片尺寸的增加。
在讀操作期間,當存在可以在讀操作期間在讀數(shù)據(jù)rdat[71:0]中糾正的錯誤(單個位錯誤)時,數(shù)據(jù)控制電路12D糾正該錯誤。而且,數(shù)據(jù)控制電路12D根據(jù)供應到地址終端AD的行地址的較低位選擇與數(shù)據(jù)塊MBD0-63中的16個數(shù)據(jù)塊相對應的讀數(shù)據(jù),并且輸出所選擇的數(shù)據(jù)作為輸出數(shù)據(jù)DOUT[15:0]。在讀操作期間,當在讀數(shù)據(jù)rdat[71:0]中有不能被糾正的錯誤(兩個或更多位錯誤)時,數(shù)據(jù)控制電路12D輸出ECC錯誤信號ECCERR到ECC終端。
在寫操作期間,數(shù)據(jù)控制電路12D從數(shù)據(jù)塊MBD0-63和代碼塊MBE0-7讀取數(shù)據(jù),并且當存在錯誤時解碼信息數(shù)據(jù)。然后,數(shù)據(jù)控制電路12D將與解碼的信息數(shù)據(jù)中的寫數(shù)據(jù)DIN[15:0]相對應的位改變?yōu)閷憯?shù)據(jù)DIN[15:0],進而產(chǎn)生重寫數(shù)據(jù)串。而且,數(shù)據(jù)控制電路12D從重寫數(shù)據(jù)串確定新的代碼數(shù)據(jù),并且將重寫數(shù)據(jù)串和新代碼數(shù)據(jù)分別寫入數(shù)據(jù)塊MBD0-63和代碼塊MBE0-7。與此類似,根據(jù)本實施例,偽SRAM在開始寫操作期間執(zhí)行讀操作以從存儲器核心24A讀取數(shù)據(jù)。
訪問控制電路18D與數(shù)據(jù)控制電路12D的操作相匹配,并且輸出讀請求信號rd[71:0]和寫請求信號wr[71:0]。具體而言,在寫操作期間,讀請求信號rd[71:0]和寫請求信號wr[71:0]被順序輸出。
刷新控制電路20D順序輸出刷新點信號refpoint[71:0]和刷新請求信號ref[71:0]。刷新控制電路20D的操作等同于第二實施例的刷新控制電路20A的操作,除了輸出信號的位數(shù)增加。振蕩器40D輸出的時鐘信號OSC的頻率對應于刷新點信號refpoint[71:0]的位數(shù),并且被設置為高于第二實施例中的時鐘信號頻率。
圖24示出了圖23所示的偽SRAM的寫操作。
在寫操作期間,首先,未被示出的字線被激活,從而在代碼塊MBE和數(shù)據(jù)塊MBD的每一個中,數(shù)據(jù)被從存儲器單元讀取到互補位線BL和/BL的任何一個中(圖24中的(a))。接下來,傳感放大器被激活,并且位線BL和/BL之間的電壓差被放大(圖24中的(b))。然后,列切換信號CSW被激活,并且放大后的數(shù)據(jù)作為讀數(shù)據(jù)rdat[63:0]被傳輸?shù)綌?shù)據(jù)控制電路12D(圖24中的(c))。數(shù)據(jù)控制電路12D糾正讀數(shù)據(jù)rdat[63:0]的錯誤。然后,數(shù)據(jù)控制電路12D將從數(shù)據(jù)塊MBD讀取的8位數(shù)據(jù)切換到被供應給數(shù)據(jù)終端DQ7-0的寫數(shù)據(jù)DIN[7:0](圖24中的(d))。
然后,數(shù)據(jù)控制電路12D使用切換后的寫數(shù)據(jù)產(chǎn)生新代碼數(shù)據(jù)(圖24中的(e))。而且,切換后的寫數(shù)據(jù)和新代碼數(shù)據(jù)作為寫數(shù)據(jù)wdat[63:0]被順序?qū)懭氲酱a塊MBE和數(shù)據(jù)塊MBD(圖24中的(f)和(g))。然后,字線被去激活,位線BL和/BL被預充電,從而完成寫操作(圖24中的(h)和(i))。
在該示例中,在代碼塊MBE和數(shù)據(jù)塊MBD中,寫數(shù)據(jù)過程中的列切換信號csw的定時、字線的去激活定時、以及位線BL和/BL的預充電開始定時是不同的。然而,這些定時對于代碼塊MBE和數(shù)據(jù)塊MBD可以是相同的。
在本實施例中,可以實現(xiàn)與上述第一和第二實施例相同的效果。此外,根據(jù)本發(fā)明,用于存儲信息數(shù)據(jù)的數(shù)據(jù)塊的數(shù)目增加,從而代碼數(shù)據(jù)的位數(shù)相對于信息數(shù)據(jù)的位數(shù)會減少。這樣,代碼塊的數(shù)目相對于數(shù)據(jù)塊的數(shù)目可以減少,進而偽SRAM的芯片尺寸可以減小。
此外,結(jié)合本發(fā)明上下文描述的上述實施例被應用于偽SRAM芯片。然而,本發(fā)明可應用的實施例不限于此。例如,本發(fā)明還可以應用于系統(tǒng)LSI中嵌入的偽SRAM核。
本發(fā)明不限于上述實施例,在不脫離本發(fā)明的精神和范圍的條件下可以作出多種修改。可以對所有或部分組件作出各種改進。
工業(yè)實用性本發(fā)明的半導體存儲器可以相對于外部系統(tǒng)隱藏刷新操作,而不用拉長讀周期時間,并且同時可以實現(xiàn)讀數(shù)據(jù)串的糾錯。通過利用糾錯功能來糾正由具有短數(shù)據(jù)保持時間的存儲器單元產(chǎn)生的錯誤,可以延長刷新請求間隔并且可以降低待機時間段期間的功耗。因此,當本發(fā)明例如被應用于偽SRAM時,AC和DC特性都可以等同于SRAM或更好。換句話說,可以向用戶提供與SRAM完全兼容的偽SRAM。用戶可以僅僅通過將系統(tǒng)中嵌入的SRAM改換為應用了本發(fā)明的偽SRAM來降低成本。
根據(jù)本發(fā)明的半導體存儲器,通過僅在一個塊中執(zhí)行響應于刷新請求的刷新操作,可以方便地恢復不能被刷新操作讀出的數(shù)據(jù)。
根據(jù)本發(fā)明的半導體存儲器,可以防止刷新請求和讀請求之間的沖突,并且可以防止讀訪問時間的增加。此外,可以利用訪問控制電路方便地控制讀操作。
根據(jù)本發(fā)明的半導體存儲器,當刷新請求信號和寫請求信號彼此沖突時,寫操作相對于刷新操作被延遲執(zhí)行。通過如此處理,確保了寫數(shù)據(jù)可以被寫入刷新塊。
本發(fā)明的半導體存儲器可以逐漸恢復寫操作的延遲,即使刷新請求是在連續(xù)供應的寫請求信號之間產(chǎn)生的也是如此。
根據(jù)本發(fā)明的半導體存儲器,可以防止讀操作因刷新操作和寫操作之間的沖突而被延遲,并且可以防止讀訪問時間被拉長。
根據(jù)本發(fā)明的半導體存儲器,形成代碼塊來代替冗余電路。由于不需要形成冗余電路,所以可以減小芯片尺寸。
根據(jù)本發(fā)明的半導體存儲器,糾錯電路從讀數(shù)據(jù)串中選擇具有較少錯誤的讀數(shù)據(jù)串作為真。為此,可以很容易提供糾錯電路的錯誤決定邏輯。
在本發(fā)明的半導體存儲器中,利用錯誤信號,訪問半導體存儲器的外部系統(tǒng)可以執(zhí)行避免錯誤的操作,例如請求重試讀操作以及刪除數(shù)據(jù)。這樣,可以提高系統(tǒng)的可靠性。
在本發(fā)明的半導體存儲器中,當存儲器單元的數(shù)據(jù)被電源噪聲和暫時性錯誤所損壞時,通過寫入正確數(shù)據(jù),可以提高半導體存儲器的可靠性。
根據(jù)本發(fā)明的半導體存儲器,分別對應于輸入和輸出信息數(shù)據(jù)的多個數(shù)據(jù)終端而形成數(shù)據(jù)塊。為此,錯誤可以同時在輸入和輸出到半導體存儲器的數(shù)據(jù)單元中被糾正。這樣,可以很容易提供讀數(shù)據(jù)的糾錯邏輯,并且很容易產(chǎn)生代碼數(shù)據(jù),進而,可以防止讀周期時間和寫周期時間增加。
根據(jù)本發(fā)明的半導體存儲器,通過增加信息數(shù)據(jù)的位數(shù),可以相對于信息數(shù)據(jù)的位數(shù)來相對減少代碼數(shù)據(jù)的位數(shù)。這樣,可以相對于數(shù)據(jù)塊的數(shù)目來相對減少代碼塊的數(shù)目,進而減小芯片尺寸。
權利要求
1.一種半導體存儲器,包括多個數(shù)據(jù)塊,具有存儲信息數(shù)據(jù)的存儲器單元;多個代碼塊,具有存儲代碼數(shù)據(jù)的存儲器單元,所述代碼數(shù)據(jù)用來對所述數(shù)據(jù)塊中存儲的數(shù)據(jù)進行解碼;刷新控制電路,所述刷新控制電路輸出刷新請求信號以順序執(zhí)行所述數(shù)據(jù)塊和所述代碼塊上的刷新操作;數(shù)據(jù)添加電路,所述數(shù)據(jù)添加電路將要從刷新塊讀取的多種類型期望數(shù)據(jù)分別添加到從其它塊讀取的數(shù)據(jù),進而產(chǎn)生多個讀數(shù)據(jù)串,所述刷新塊沒有被所述數(shù)據(jù)塊和所述代碼塊的刷新操作所讀?。灰约凹m錯電路,所述糾錯電路檢測所述讀數(shù)據(jù)串的錯誤,將錯誤檢測結(jié)果中的最可靠結(jié)果設置為真,并且糾正對應于真錯誤檢測結(jié)果的一個讀數(shù)據(jù)串的錯誤。
2.如權利要求1所述的半導體存儲器,其中所述刷新控制電路向所述數(shù)據(jù)塊和所述代碼塊順序輸出所述刷新請求信號,以便執(zhí)行所述數(shù)據(jù)塊和所述代碼塊的任一塊上的刷新操作。
3.如權利要求1所述的半導體存儲器,還包括訪問控制電路,所述訪問控制電路響應于讀命令而輸出讀請求信號,以讀取除所述刷新塊之外的所述數(shù)據(jù)塊和所述代碼塊。
4.如權利要求1所述的半導體存儲器,還包括訪問控制電路,所述訪問控制電路響應于寫命令而輸出寫請求信號,以對所述數(shù)據(jù)塊和所述代碼塊進行寫入,其中所述數(shù)據(jù)塊和所述代碼塊的每個塊包括塊控制電路,所述塊控制電路當所述刷新請求信號和所述寫請求信號彼此沖突時執(zhí)行刷新操作,然后執(zhí)行寫操作。
5.如權利要求4所述的半導體存儲器,其中作為寫命令的最小供應間隔的外部寫周期時間被設置為長于作為所述每個塊的寫操作時間的內(nèi)部寫周期時間。
6.如權利要求5所述的半導體存儲器,其中,在從一個刷新塊的最終刷新請求信號切換到下一刷新塊的切換時間段期間,可以插入n個所述外部寫周期時間,并且可以執(zhí)行一次刷新操作和n次寫操作。
7.如權利要求6所述的半導體存儲器,其中所述切換時間段被設置為至少是(Tcyc/δ)×Tcyc,其中δ是外部寫周期時間Tcyc和內(nèi)部寫周期時間之間的差。
8.如權利要求1所述的半導體存儲器,其中所述代碼塊被形成來代替用于消除缺陷的冗余電路。
9.如權利要求8所述的半導體存儲器,其中所述代碼塊被形成來代替用于消除字線單元中的缺陷的行冗余電路。
10.如權利要求8所述的半導體存儲器,其中所述代碼塊被形成來代替用于消除位線單元中的缺陷的列冗余電路。
11.如權利要求1所述的半導體存儲器,其中所述數(shù)據(jù)添加電路產(chǎn)生兩個讀數(shù)據(jù)串,其中假定來自刷新塊的讀數(shù)據(jù)的邏輯為邏輯1和邏輯0。
12.如權利要求11所述的半導體存儲器,其中所述糾錯電路從所述讀數(shù)據(jù)串中選擇具有最少錯誤的讀數(shù)據(jù)串作為真。
13.如權利要求12所述的半導體存儲器,其中所述糾錯電路檢測“沒有錯誤”、“一些數(shù)據(jù)塊中的單個位錯誤”、“作為代碼塊中單個位錯誤的代碼錯誤”、以及“兩個或更多位錯誤”中的一個,以沒有錯誤>代碼錯誤>單個位錯誤>兩個或更多位錯誤來排列錯誤決定的優(yōu)先級,以及將具有較高優(yōu)先級的項設置為真。
14.如權利要求13所述的半導體存儲器,還包括錯誤終端,所述錯誤終端當所述糾錯電路檢測到“兩個或更多位錯誤”時,輸出錯誤信號。
15.如權利要求12所述的半導體存儲器,其中所述糾錯電路檢測“沒有錯誤”、“數(shù)據(jù)塊和代碼塊的任何一塊中的單個位錯誤”、以及“兩個或更多位錯誤”中的一個,以沒有錯誤>單個位錯誤>兩個或更多位錯誤來排列錯誤決定的優(yōu)先級,以及將具有較高優(yōu)先級的項設置為真。
16.如權利要求1所述的半導體存儲器,還包括錯誤終端,所述錯誤終端當所述糾錯電路檢測到不能被糾正的錯誤時,輸出錯誤信號。
17.如權利要求1所述的半導體存儲器,還包括重寫控制電路,所述重寫控制電路在所述數(shù)據(jù)塊和所述代碼塊中重寫由所述糾錯電路糾正的數(shù)據(jù)。
18.如權利要求1所述的半導體存儲器,還包括輸入和輸出所述信息數(shù)據(jù)的多個數(shù)據(jù)終端,其中所述數(shù)據(jù)塊是分別對應于所述數(shù)據(jù)終端而形成的。
19.如權利要求1所述的半導體存儲器,還包括輸入和輸出所述信息數(shù)據(jù)的多個數(shù)據(jù)終端,其中同時供應到所述數(shù)據(jù)終端的寫數(shù)據(jù)被寫入到所述數(shù)據(jù)塊的一部分中,以及所述糾錯電路在寫操作期間利用來自所述數(shù)據(jù)塊和所述代碼塊的數(shù)據(jù)對所述信息數(shù)據(jù)解碼,通過用所述寫數(shù)據(jù)代替一部分解碼后的信息數(shù)據(jù)來產(chǎn)生重寫數(shù)據(jù)串,從所述重寫數(shù)據(jù)串確定新代碼數(shù)據(jù),并且將所述重寫數(shù)據(jù)串和所述新代碼數(shù)據(jù)寫入所述數(shù)據(jù)塊和所述代碼塊。
20.如權利要求1所述的半導體存儲器,其中每個存儲器單元的刷新間隔被設置為長于最差存儲器單元的數(shù)據(jù)保持時間。
21.如權利要求1所述的半導體存儲器,其中所述糾錯電路包括第一編碼電路,所述第一編碼電路從添加期望數(shù)據(jù)邏輯0的信息數(shù)據(jù)串產(chǎn)生第一代碼數(shù)據(jù);第二編碼電路,所述第二編碼電路從添加期望數(shù)據(jù)邏輯1的信息數(shù)據(jù)串產(chǎn)生第二代碼數(shù)據(jù);第一錯誤決定電路,所述第一錯誤決定電路通過比較所述第一代碼數(shù)據(jù)和從所述代碼塊讀取的代碼數(shù)據(jù),來判定錯誤;第二錯誤決定電路,所述第二錯誤決定電路通過比較所述第二代碼數(shù)據(jù)和從所述代碼塊讀取的代碼數(shù)據(jù),來判定錯誤;以及錯誤解碼電路,所述錯誤解碼電路基于真決定結(jié)果來糾正錯誤,其中假定所述第一和第二錯誤決定電路的最可靠決定結(jié)果為真。
22.如權利要求1所述的半導體存儲器,其中所述糾錯電路包括編碼電路,所述編碼電路從讀自所述數(shù)據(jù)塊的信息數(shù)據(jù)串產(chǎn)生代碼數(shù)據(jù);第一錯誤決定電路,所述第一錯誤決定電路比較所產(chǎn)生的代碼數(shù)據(jù)和添加期望數(shù)據(jù)邏輯0的代碼數(shù)據(jù)串,從而確定錯誤;第二錯誤決定電路,所述第二錯誤決定電路比較所產(chǎn)生的代碼數(shù)據(jù)和添加期望數(shù)據(jù)邏輯1的代碼數(shù)據(jù)串,從而確定錯誤;以及錯誤解碼電路,所述錯誤解碼電路基于真決定結(jié)果來糾正錯誤,其中假定所述第一和第二錯誤決定電路的最可靠決定結(jié)果為真。
23.如權利要求1所述的半導體存儲器,其中所述糾錯電路包括第一校正子產(chǎn)生電路,所述第一校正子產(chǎn)生電路從添加期望數(shù)據(jù)邏輯0的讀數(shù)據(jù)串產(chǎn)生第一校正子;第二校正子產(chǎn)生電路,所述第二校正子產(chǎn)生電路從添加期望數(shù)據(jù)邏輯1的讀數(shù)據(jù)串產(chǎn)生第二校正子;第一錯誤決定電路,所述第一錯誤決定電路使用所述第一校正子檢測是否存在錯誤并檢測錯誤地址;第二錯誤決定電路,所述第二錯誤決定電路使用所述第二校正子檢測是否存在錯誤并檢測錯誤地址;以及錯誤解碼電路,所述錯誤解碼電路基于真決定結(jié)果來糾正錯誤,其中假定所述第一和第二錯誤決定電路的最可靠決定結(jié)果為真。
24.如權利要求1所述的半導體存儲器,其中所述代碼數(shù)據(jù)的最小漢明距離是4或更大值。
25.如權利要求24所述的半導體存儲器,其中所述代碼數(shù)據(jù)是水平/垂直奇偶校驗碼。
26.如權利要求24所述的半導體存儲器,其中所述代碼數(shù)據(jù)是提取的漢明碼。
27.一種操作具有多個數(shù)據(jù)塊、多個代碼塊和刷新控制電路的半導體存儲器的方法,其中,所述多個數(shù)據(jù)塊具有存儲信息數(shù)據(jù)的存儲器單元;所述多個代碼塊具有存儲代碼數(shù)據(jù)的存儲器單元,所述代碼數(shù)據(jù)用來對所述數(shù)據(jù)塊中存儲的數(shù)據(jù)進行解碼;所述刷新控制電路輸出刷新請求信號以順序執(zhí)行所述數(shù)據(jù)塊和所述代碼塊上的刷新操作,所述方法包括下述步驟通過將要從刷新塊讀取的多種類型期望數(shù)據(jù)分別添加到從其它塊讀取的數(shù)據(jù)來產(chǎn)生多個讀數(shù)據(jù)串,所述刷新塊是所述數(shù)據(jù)塊和所述代碼塊中的一個塊,其不能被所述刷新操作所讀?。粰z測所述讀數(shù)據(jù)串的錯誤,并且將錯誤檢測結(jié)果中的最可靠結(jié)果設置為真;以及糾正與被視為真的錯誤檢測結(jié)果相對應的一個讀數(shù)據(jù)串的錯誤。
28.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟向所述數(shù)據(jù)塊和所述代碼塊順序輸出刷新請求信號,以便執(zhí)行所述數(shù)據(jù)塊和所述代碼塊的任一塊上的刷新操作。
29.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟響應于讀命令而輸出讀請求信號,以讀取除所述刷新塊之外的所述數(shù)據(jù)塊和所述代碼塊。
30.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟響應于寫命令而輸出寫請求信號,以對所述數(shù)據(jù)塊和所述代碼塊進行寫入,其中當所述刷新請求信號和所述寫請求信號彼此沖突時,所述數(shù)據(jù)塊和所述代碼塊的每個塊執(zhí)行刷新操作,然后執(zhí)行寫操作。
31.如權利要求30所述的操作半導體存儲器的方法,其中作為寫命令的最小供應間隔的外部寫周期時間被設置為長于作為所述每個塊的寫操作時間的內(nèi)部寫周期時間。
32.如權利要求31所述的操作半導體存儲器的方法,其中,在從一個刷新塊的最終刷新請求信號切換到下一刷新塊的切換時間段期間,可以插入n個所述外部寫周期時間,并且可以執(zhí)行一次刷新操作和n次寫操作。
33.如權利要求32所述的操作半導體存儲器的方法,其中所述切換時間段被設置為至少是(Tcyc/δ)×Tcyc,其中δ是外部寫周期時間Tcyc和內(nèi)部寫周期時間之間的差。
34.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟產(chǎn)生兩個讀數(shù)據(jù)串,其中假定來自所述刷新塊的讀數(shù)據(jù)的邏輯為邏輯1和邏輯0。
35.如權利要求34所述的操作半導體存儲器的方法,還包括下述步驟從所述讀數(shù)據(jù)串中選擇具有最少錯誤的讀數(shù)據(jù)串作為真。
36.如權利要求35所述的操作半導體存儲器的方法,還包括下述步驟檢測“沒有錯誤”、“一些數(shù)據(jù)塊中的單個位錯誤”、“作為代碼塊中單個位錯誤的代碼錯誤”、以及“兩個或更多位錯誤”中的一個;以沒有錯誤>代碼錯誤>單個位錯誤>兩個或更多位錯誤來排列錯誤決定的優(yōu)先級;以及將具有較高優(yōu)先級的項設置為真。
37.如權利要求36所述的操作半導體存儲器的方法,還包括下述步驟當所述糾錯電路檢測到“兩個或更多位錯誤”時,輸出錯誤信號。
38.如權利要求35所述的操作半導體存儲器的方法,還包括下述步驟檢測“沒有錯誤”、“數(shù)據(jù)塊和代碼塊的任何一塊中的單個位錯誤”、以及“兩個或更多位錯誤”中的一個;以沒有錯誤>單個位錯誤>兩個或更多位錯誤來排列錯誤決定的優(yōu)先級;以及將具有較高優(yōu)先級的項設置為真。
39.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟當所述糾錯電路檢測到不能被糾正的錯誤時,輸出錯誤信號。
40.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟在所述數(shù)據(jù)塊和所述代碼塊中重寫由所述糾錯電路糾正的數(shù)據(jù)。
41.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟利用所述數(shù)據(jù)塊和所述代碼塊的數(shù)據(jù)對所述信息數(shù)據(jù)解碼;通過用寫數(shù)據(jù)代替一部分解碼后的信息數(shù)據(jù)來產(chǎn)生重寫數(shù)據(jù)串;從所述重寫數(shù)據(jù)串確定新代碼數(shù)據(jù),以及通過將所述重寫數(shù)據(jù)串和所述新代碼數(shù)據(jù)分別寫入所述數(shù)據(jù)塊和所述代碼塊,將同時供應到數(shù)據(jù)終端的寫數(shù)據(jù)寫入到所述數(shù)據(jù)塊的一部分中,其中所述數(shù)據(jù)終端輸入/輸出信息數(shù)據(jù),所述步驟是在寫操作期間發(fā)生的。
42.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟其中每個存儲器單元的刷新間隔被設置為長于最差存儲器單元的數(shù)據(jù)保持時間。
43.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟從添加期望數(shù)據(jù)邏輯0的信息數(shù)據(jù)串產(chǎn)生第一代碼數(shù)據(jù);從添加期望數(shù)據(jù)邏輯1的信息數(shù)據(jù)串產(chǎn)生第二代碼數(shù)據(jù);通過比較所述第一代碼數(shù)據(jù)和從所述代碼塊讀取的代碼數(shù)據(jù)來判定錯誤;通過比較所述第二代碼數(shù)據(jù)和從所述代碼塊讀取的代碼數(shù)據(jù)來判定錯誤;以及基于真決定結(jié)果來糾正錯誤,其中假定所述第一和第二錯誤決定電路的最可靠決定結(jié)果為真。
44.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟從讀自所述數(shù)據(jù)塊的信息數(shù)據(jù)串產(chǎn)生代碼數(shù)據(jù);比較所產(chǎn)生的代碼數(shù)據(jù)和添加期望數(shù)據(jù)邏輯0的代碼數(shù)據(jù)串,從而確定錯誤;比較所產(chǎn)生的代碼數(shù)據(jù)和添加期望數(shù)據(jù)邏輯1的代碼數(shù)據(jù)串,從而確定錯誤;以及基于真決定結(jié)果來糾正錯誤,其中假定所述第一和第二錯誤決定電路的最可靠決定結(jié)果為真。
45.如權利要求27所述的操作半導體存儲器的方法,還包括下述步驟從添加期望數(shù)據(jù)邏輯0的讀數(shù)據(jù)串產(chǎn)生第一校正子;從添加期望數(shù)據(jù)邏輯1的讀數(shù)據(jù)串產(chǎn)生第二校正子;使用所述第一校正子檢測是否存在錯誤并檢測錯誤地址;使用所述第二校正子檢測是否存在錯誤并檢測錯誤地址;以及基于真決定結(jié)果來糾正錯誤,其中假定所述第一和第二錯誤決定電路的最可靠決定結(jié)果為真。
46.如權利要求27所述的操作半導體存儲器的方法,其中所述代碼數(shù)據(jù)的最小漢明距離是4或更大值。
47.如權利要求46所述的操作半導體存儲器的方法,其中所述代碼數(shù)據(jù)是水平/垂直奇偶校驗碼。
48.如權利要求46所述的操作半導體存儲器的方法,其中所述代碼數(shù)據(jù)是提取的漢明碼。
全文摘要
數(shù)據(jù)添加電路將要從刷新塊讀取的多種類型期望數(shù)據(jù)分別添加到從其它塊讀取的數(shù)據(jù),以產(chǎn)生多個讀數(shù)據(jù)串。糾錯電路檢測每個讀數(shù)據(jù)串的錯誤,并且將錯誤檢測結(jié)果中最可靠的結(jié)果設置為真。糾錯電路基于真錯誤檢測結(jié)果對要從刷新塊讀取的數(shù)據(jù)進行解碼。而且,糾錯電路糾正對應于真錯誤檢測結(jié)果的讀數(shù)據(jù)串的錯誤。從而,在不延長讀周期時間的條件下,可以隱藏刷新操作,并且同時可以糾正錯誤。通過糾正從時間保持特性很差的存儲器單元讀取的數(shù)據(jù)錯誤,可以延長刷新請求間隔,進而可以降低待機期間的功耗。
文檔編號G11C11/401GK1771565SQ0382647
公開日2006年5月10日 申請日期2003年8月18日 優(yōu)先權日2003年8月18日
發(fā)明者江渡聰 申請人:富士通株式會社