本發(fā)明的實施例一般涉及存儲器設備,并且更特別地涉及將內(nèi)部錯誤校正位暴露為元數(shù)據(jù)位的存儲器。
版權(quán)通知/許可
本專利文檔的公開內(nèi)容的部分可能包含受到版權(quán)保護的某些材料。版權(quán)所有人對任何人對如其在專利與商標局文件或記錄中出現(xiàn)的專利文檔或?qū)@_內(nèi)容的再現(xiàn)沒有異議,但是以其他方式在任何情況保留所有版權(quán)權(quán)利。版權(quán)通知適用于如以下所描述的和在隨附于此的附圖中的所有數(shù)據(jù),以及以下描述的任何軟件:Copyright ? 2014,Intel Corporation,版權(quán)所有。
背景技術(shù):
計算設備使用存儲器設備來存儲數(shù)據(jù)和代碼以供處理器運行其操作。隨著存儲器設備在大小方面的減小和在密度方面的增加,它們在處理期間經(jīng)歷更多錯誤,稱為良率問題。因此,存儲器設備經(jīng)歷越來越多的位故障,甚至在現(xiàn)代處理技術(shù)的情況下。為了減輕位故障,現(xiàn)代存儲器提供內(nèi)部錯誤校正機制,諸如ECC(錯誤校正碼)。存儲器設備在內(nèi)部生成ECC數(shù)據(jù),并且在存儲器設備處內(nèi)部使用ECC數(shù)據(jù)。存儲器設備內(nèi)的內(nèi)部錯誤校正可以附加于使用在存儲器設備與存儲器控制器之間的數(shù)據(jù)交換中的無論什么系統(tǒng)范圍的錯誤校正或錯誤減輕。將理解到,存儲器設備內(nèi)的ECC的應用要求附加的邏輯以計算ECC和將其應用于校正數(shù)據(jù)位。還將理解到,在存儲器設備內(nèi)部的ECC的應用要求在與存儲器控制器或存儲器設備外部的其它組件交換數(shù)據(jù)時實時地計算和應用ECC。這樣的實時要求可以將延遲引入數(shù)據(jù)交換中。
附圖說明
以下描述包括具有通過本發(fā)明的實施例的實現(xiàn)的示例的方式給出的圖示的附圖的討論。附圖應當通過示例的方式而非通過限制的方式來理解。如本文所使用的,對一個或多個“實施例”的引用要被理解為描述包括在本發(fā)明的至少一個實現(xiàn)中的特定特征、結(jié)構(gòu)和/或特性。因此,在本文中出現(xiàn)的諸如“在一個實施例中”或“在可替換的實施例中”之類的短語描述本發(fā)明的各種實施例和實現(xiàn),并且不一定全部是指相同的實施例。然而,它們也不一定相互排斥。
圖1是具有存儲器設備的系統(tǒng)的實施例的框圖,所述存儲器設備可以暴露內(nèi)部錯誤校正位以供外部存儲器控制器使用。
圖2是具有存儲器設備的系統(tǒng)的實施例的框圖,所述存儲器設備可以暴露內(nèi)部錯誤校正位以供外部存儲器控制器使用。
圖3是其中存儲器控制器使來自多個存儲器設備的內(nèi)部錯誤校正位成群的系統(tǒng)的實施例的框圖。
圖4是其中存儲器控制器與存儲器設備對接以用于元數(shù)據(jù)交換的系統(tǒng)和引腳分配(pinout)表的實施例的框圖。
圖5是用于在存儲器控制器與存儲器設備之間對接以交換元數(shù)據(jù)的過程的實施例的流程圖。
圖6是其中可以實現(xiàn)被暴露為元數(shù)據(jù)位的內(nèi)部位的計算系統(tǒng)的實施例的框圖。
圖7是其中可以實現(xiàn)被暴露為元數(shù)據(jù)位的內(nèi)部位的移動設備的實施例的框圖。
以下是某些細節(jié)和實現(xiàn)的描述,包括附圖的描述,其可以描繪以下描述的實施例中的一些或全部,以及討論本文所提出的發(fā)明概念的其它潛在實施例或?qū)崿F(xiàn)。
具體實施方式
如本文所描述的,存儲器設備暴露內(nèi)部錯誤校正位以供外部存儲器控制器用作元數(shù)據(jù)位?,F(xiàn)代存儲器設備設計(諸如DRAM(動態(tài)隨機存取存儲器)設計)使用內(nèi)部錯誤校正以補償良率問題。在一個實施例中,存儲器設備可以暴露內(nèi)部錯誤校正位以允許存儲器控制器執(zhí)行錯誤校正。在一個實施例中,存儲器設備可以暴露內(nèi)部錯誤校正位以允許存儲器控制器出于除了數(shù)據(jù)信號的錯誤校正之外的目的而將所述位用作元數(shù)據(jù)。在其中存儲器控制器利用內(nèi)部錯誤校正位來執(zhí)行錯誤校正的一個實施例中,存儲器設備可以每事務讀取/寫入128位并且交換8位以用于錯誤校正。因此,存儲器子系統(tǒng)可以使用136/128漢明碼(每128個數(shù)據(jù)位8個專用位)來提供單個錯誤校正(SEC)。在一個實施例中,存儲器子系統(tǒng)可以提供附加的元數(shù)據(jù)位以用于錯誤校正,其可以提供執(zhí)行SECDED(單個錯誤校正,雙錯誤檢測)所需要的9位。
在一個實施例中,存儲器設備被配置成是雙模態(tài)的。在第一模式中,存儲器設備在存儲器設備處應用內(nèi)部錯誤校正位以用于內(nèi)部錯誤校正。這樣的模式將與存儲器設備傳統(tǒng)上如何進行操作一致。在第二模式中,存儲器設備向存儲器控制器暴露內(nèi)部錯誤校正位以允許存儲器控制器使用該數(shù)據(jù)。因此,將理解到,在第二模式中,存儲器控制器是由內(nèi)部錯誤校正位表示的元數(shù)據(jù)的消費者。存儲器設備和存儲器控制器可以經(jīng)由數(shù)個不同技術(shù)中的任何一個來交換元數(shù)據(jù)。在一個實施例中,存儲器設備和存儲器控制器經(jīng)由數(shù)據(jù)交換上的額外的突發(fā)來交換元數(shù)據(jù)。這樣的方案將降低系統(tǒng)帶寬并且可能不是針對所有實現(xiàn)的最佳方案。在一個實施例中,存儲器設備和存儲器控制器經(jīng)由添加到存儲器封裝的額外引腳或連接器來交換元數(shù)據(jù)。將理解到,這樣的方案增加封裝和其它制造成本,以及增加系統(tǒng)板上的布線要求。在一個實施例中,存儲器設備和存儲器控制器在重新目的化的現(xiàn)有引腳或連接器上交換元數(shù)據(jù)。例如,系統(tǒng)可以在讀取或?qū)懭氩僮髌陂g未使用的信號線上發(fā)送數(shù)據(jù)。作為另一示例,系統(tǒng)可以被配置成消除特定功能以有利于使用元數(shù)據(jù),并且因而重新目的化可能在讀取或?qū)懭氩僮髌陂g使用的引腳。
在一個實施例中,存儲器子系統(tǒng)利用來自存儲器設備的內(nèi)部位在存儲器控制器處執(zhí)行錯誤校正。這樣的實現(xiàn)提供相對于在存儲器設備內(nèi)部的錯誤校正位的傳統(tǒng)使用的某些優(yōu)點。例如,存儲器控制器處的錯誤校正可以消除在存儲器設備或DRAM自身內(nèi)具有ECC邏輯的需要。這樣的實現(xiàn)還允許存儲器控制器執(zhí)行錯誤校正計算,而不是存儲器設備。存儲器控制器可以在使數(shù)據(jù)排成隊以供寫入之前以較緩慢的速度執(zhí)行錯誤校正位計算,這降低在寫入時的針對存儲器設備的定時要求。同樣地,在讀取時,存儲器設備可以簡單地訪問和發(fā)送錯誤校正位,存儲器控制器可以使用比在存儲器設備上典型發(fā)現(xiàn)的更快的晶體管來計算該錯誤校正位并且執(zhí)行關(guān)于數(shù)據(jù)的錯誤校正,所述存儲器設備否則將需要在發(fā)送數(shù)據(jù)之前執(zhí)行所述操作。
在本文中參照不同接口的存儲器設備。將理解到,接口類型是指可以由存儲器設備驅(qū)動的數(shù)據(jù)信號線的數(shù)目。x16存儲器設備是指具有16位寬數(shù)據(jù)I/O(輸入/輸出)接口的設備。類似地,存儲器設備可以具有x32接口或x64接口(分別是指具有32位或64位寬數(shù)據(jù)I/O接口的設備)。其它常見存儲器設備配置包括x8和x4設備。
對存儲器設備的參照可以適用于不同存儲器類型。存儲器設備一般是指易失性存儲器技術(shù)。易失性存儲器是如果去往設備的功率中斷則其狀態(tài)(以及因而存儲在其上的數(shù)據(jù))是不確定的存儲器。非易失性存儲器或儲存器保持其狀態(tài),即便功率中斷(經(jīng)受長時間段內(nèi)的降級)。動態(tài)易失性存儲器要求刷新存儲在設備中的數(shù)據(jù)以維持狀態(tài)。動態(tài)易失性存儲器的一個示例包括DRAM(動態(tài)隨機存取存儲器),或者某種變型,諸如同步DRAM(SDRAM)。如本文所描述的存儲器子系統(tǒng)可以與數(shù)個存儲器技術(shù)兼容,諸如DDR3(雙數(shù)據(jù)速率版本3,由JEDEC(聯(lián)合電子設備工程會議)在2007年6月27日原始發(fā)布,當前處于發(fā)行本21)、DDR4(DDR版本4,在2012年9月由JEDEC公布的最初規(guī)范)、LPDDR3(低功率DDR版本3,JEDEC的JESD209-3B,2013年8月)、LPDDR4(低功率雙數(shù)據(jù)速率(LPDDR)版本4,JESD209-4,由JEDEC在2014年8月原始公布)、WIO2(寬I/O 2(WideIO2)、JESD229-2,由JEDEC在2014年8月原始公布)、HBM DRAM(高帶寬存儲器,JESD235,由JEDEC在2013年10月原始公布)和/或其它,以及基于這樣的規(guī)范的派生物或擴展的技術(shù)。
圖1是具有存儲器設備的系統(tǒng)的實施例的框圖,所述存儲器設備可以暴露內(nèi)部錯誤校正位以供外部存儲器控制器使用。系統(tǒng)100包括計算設備中的存儲器子系統(tǒng)的元件。主機110表示運行操作系統(tǒng)(OS)和應用的主機計算平臺。OS和應用運行導致存儲器訪問的操作。主機110包括處理器或處理單元,其可以是單核或多核處理器。系統(tǒng)100可以實現(xiàn)為SOC或者利用獨立組件實現(xiàn)。
存儲器控制器112表示響應于由(一個或多個)處理器運行操作而生成存儲器訪問命令的控制邏輯。在一個實施例中,系統(tǒng)100包括多個存儲器控制器。在一個實施例中,系統(tǒng)100包括每通道一個或多個存儲器控制器,其中一個通道耦合以訪問數(shù)個存儲器設備。每一個通道是去往存儲器的獨立訪問路徑,因此,多個不同的存儲器訪問可以在不同通道上并行發(fā)生。在一個實施例中,存儲器控制器112是主機110的部分,諸如實現(xiàn)在與主機處理器相同的管芯或封裝空間上的邏輯。
存儲器設備120表示用于系統(tǒng)100的存儲器資源。存儲器設備120均包括多個存儲器陣列122。存儲器陣列122表示其中存儲器設備120存儲數(shù)據(jù)位的邏輯。存儲器設備120均包括模式邏輯126。模式邏輯126可以是指存儲器設備內(nèi)存儲配置設置的模式寄存器或其它機制。在一個實施例中,在模式邏輯126內(nèi)設置用于特定存儲器設備的實現(xiàn)?;谀J竭壿?26中的設置,存儲器設備120可以被配置成關(guān)于錯誤校正在兩個不同模式之一中操作。在第一模式中,存儲器設備120基于本地存儲的錯誤校正位在內(nèi)部應用錯誤校正。在內(nèi)部應用錯誤校正可以使得存儲器設備120能夠解決縮放問題,諸如刷新定時、VRT(變量保留時間)或其它縮放問題。在第二模式中,存儲器設備120向存儲器控制器112暴露錯誤校正位。暴露錯誤校正位可以是指允許存儲器控制器122寫入內(nèi)部錯誤校正位和向存儲器控制器112發(fā)送內(nèi)部錯誤校正位。
在一個實施例中,存儲器設備120包括ECC 124,其表示實現(xiàn)錯誤校正的邏輯和存儲器。因此,ECC 124表示存儲器設備120生成和使用內(nèi)部錯誤校正位的能力。如本文所描述的,存儲器設備120向存儲器控制器112暴露ECC 124,諸如經(jīng)由并聯(lián)到在存儲器控制器112與存儲器設備120之間共享的數(shù)據(jù)接口的接口。將理解到,ECC 124可以針對通過存儲器控制器112的存儲器訪問引入讀取和寫入等待時間。當存儲器設備120僅經(jīng)由ECC 124在內(nèi)部應用錯誤校正時,錯誤校正邏輯可以通過在飛行中計算和校正和/或通過推測性地使用錯誤校正數(shù)據(jù)而引入讀取等待時間。
在一個實施例中,ECC 124的錯誤校正邏輯可以在其中存儲器控制器112計算和使用錯誤校正位的模式期間是空閑的。在一個實施例中,這樣的模式是可用于存儲器設備120的僅有模式,并且存儲器設備可以被設計和制造而沒有內(nèi)部錯誤校正邏輯,其否則將用于計算ECC和/或執(zhí)行錯誤校正。因此,在一個實施例中,ECC 124可以僅表示用于內(nèi)部錯誤校正位的儲存器,以及與存儲器控制器112交換這樣的位所必要的邏輯,但是沒有否則在內(nèi)部使用所述位的邏輯。
在一個實施例中,存儲器設備120包括雙模態(tài)操作,其包括僅在內(nèi)部使用ECC 124的第一模式,和向存儲器控制器112暴露ECC 124的第二模式。在第一模式中,在寫入期間,存儲器設備120可以接收或累積數(shù)據(jù)(例如128位),經(jīng)由ECC 124在接收的位上生成ECC碼,并且寫入數(shù)據(jù)和額外的位(例如8位)二者。在第二模式中,在寫入期間,存儲器控制器112在內(nèi)部生成元數(shù)據(jù)并且將其連同數(shù)據(jù)一起發(fā)送至存儲器設備120。如果元數(shù)據(jù)是ECC數(shù)據(jù),則控制器可以在將數(shù)據(jù)標記為對調(diào)度準備就緒之前離線計算ECC。寫入數(shù)據(jù)不是等待時間敏感的,并且因此這樣的操作不招致性能損失。在第一模式中,在讀取期間,存儲器設備120預取數(shù)據(jù)(例如128位),并且生成針對所預取的數(shù)據(jù)的ECC,比較所生成的ECC與所存儲的ECC,并且在向存儲器控制器112發(fā)送數(shù)據(jù)之前利用ECC 124校正單個錯誤。在第二模式中,在讀取期間,存儲器設備120經(jīng)由ECC 124訪問ECC數(shù)據(jù),并且將其作為元數(shù)據(jù)發(fā)送至存儲器控制器112。存儲器控制器112在內(nèi)部使用該元數(shù)據(jù)。如果元數(shù)據(jù)是ECC數(shù)據(jù),則控制器在內(nèi)部計算ECC,將其與所接收到的ECC比較,并且相應地校正數(shù)據(jù)。如果元數(shù)據(jù)是非錯誤校正數(shù)據(jù),則存儲器控制器112將該數(shù)據(jù)用于其他目的。
在一個實施例中,來自存儲器設備120的ECC 124的內(nèi)部錯誤校正位可以提供在讀取-修改-寫入(RMW)或部分寫入操作中的用途。在一個實施例中,存儲器設備120不需要在內(nèi)部執(zhí)行RMW計算操作,但是RMW計算操作可以在向存儲器設備102傳送數(shù)據(jù)之前發(fā)生在存儲器控制器112內(nèi)。在第一模式中,存儲器設備120將預取數(shù)據(jù)并且將其與部分寫入數(shù)據(jù)合并。存儲器設備120然后將經(jīng)由ECC 124計算ECC并且將數(shù)據(jù)和ECC寫入到(一個或多個)存儲器陣列122。在第二模式中,存儲器控制器112可以合并數(shù)據(jù)并且計算針對它的ECC??商鎿Q地,存儲器控制器112可以使ECC過時并且將其寫有“非有效”值。
將理解到,多個存儲器設備120可以連接到相同的存儲器控制器112。系統(tǒng)100可以包括連接到主機110的多個存儲器控制器112(未具體示出)。在一個實施例中,在存儲器控制器112與存儲器設備120之間交換的元數(shù)據(jù)用于ECC。在這樣的實現(xiàn)中,存儲器控制器112可以包括ECC邏輯,并且每通道操作邏輯一次以用于存儲器訪問,而不是在每一個存儲器設備120中具有ECC邏輯的多個實例。
圖2是具有存儲器設備的系統(tǒng)的實施例的框圖,所述存儲器設備暴露內(nèi)部錯誤校正位以供外部存儲器控制器用于錯誤校正。系統(tǒng)200可以是圖1的系統(tǒng)100的一個示例。具體地,系統(tǒng)200被配置成使存儲器控制器210執(zhí)行錯誤校正操作而不是使存儲器設備220執(zhí)行所述操作。存儲器控制器210表示控制對存儲器設備220的存儲器訪問的邏輯。在一個實施例中,存儲器控制器210包括ECC讀取邏輯212和ECC寫入邏輯214。
存儲器設備220包括數(shù)據(jù)儲存器222,其表示存儲器設備220中的存儲空間,其中存儲器設備寫入從存儲器控制器210接收到的數(shù)據(jù)并且訪問所存儲的數(shù)據(jù)以發(fā)送至存儲器控制器210。在一個實施例中,存儲器設備210包括ECC儲存器224,其表示其中存儲器設備220存儲ECC或其它錯誤校正數(shù)據(jù)的存儲空間。ECC儲存器224可以據(jù)說表示其中存儲器設備220存儲內(nèi)部錯誤校正位的位置。在一個實施例中,ECC儲存器224是數(shù)據(jù)儲存器222的部分,諸如特殊指定的地址范圍。在其中ECC儲存器224是數(shù)據(jù)儲存器222的部分的一個實施例中,系統(tǒng)可以增加頁面大小以存儲ECC數(shù)據(jù)。例如,系統(tǒng)可以將頁面大小從1024字節(jié)增加至1088字節(jié)。在一個實施例中,存儲器設備220包括用于ECC儲存器224的寄存器或一些其它的分離的存儲位置。
在一個實施例中,存儲器設備220包括ECC邏輯226。ECC邏輯226表示存儲器設備用于計算錯誤校正的邏輯。ECC邏輯226可以表示存儲器設備內(nèi)的邏輯,其控制從在存儲器設備220內(nèi)在內(nèi)部到在存儲器控制器210處在外部應用錯誤校正。在一個實施例中,存儲器設備220不包括ECC邏輯226,至少就執(zhí)行ECC計算或其它操作的邏輯而言。存儲器設備220包括用于交換錯誤校正元數(shù)據(jù)的與存儲器控制器210的接口,其可以包括連接器和控制接口的邏輯。
對于讀取存儲器訪問操作,ECC讀取邏輯212使得存儲器控制器210能夠從ECC儲存器224接收內(nèi)部錯誤校正位并且計算錯誤校正和校正從數(shù)據(jù)儲存器222取回的數(shù)據(jù)中的錯誤。因此,存儲器控制器210可以利用存儲在存儲器設備220處的錯誤校正數(shù)據(jù)(內(nèi)部錯誤校正位)校正錯誤而不是使存儲器設備執(zhí)行錯誤校正。這樣的操作可以改進讀取等待時間。
對于寫入存儲器訪問操作,ECC寫入邏輯214使得存儲器控制器210能夠在存儲器控制器處計算錯誤校正數(shù)據(jù)并且向存儲器設備220發(fā)送錯誤校正數(shù)據(jù)以供與該數(shù)據(jù)一起存儲。這樣的操作可以改進寫入等待時間。將理解到,“內(nèi)部錯誤校正位”可以是指由存儲器控制器210計算的錯誤校正數(shù)據(jù),因為其將與傳統(tǒng)上用于內(nèi)部錯誤校正的錯誤校正機制一起存儲在存儲器設備220中。對于由ECC寫入邏輯214計算的錯誤校正元數(shù)據(jù),存儲器設備220將錯誤校正數(shù)據(jù)存儲在ECC儲存器224中,并且取回它以用于對與寫入操作相關(guān)聯(lián)的相同存儲器位置的讀取訪問。對于部分寫入或RMW,ECC寫入邏輯214使得存儲器控制器210能夠從數(shù)據(jù)儲存器222讀取數(shù)據(jù)、修改數(shù)據(jù)、計算錯誤校正和寫回具有適當?shù)腻e誤校正的數(shù)據(jù)。
圖3是其中存儲器控制器使來自多個存儲器設備的內(nèi)部錯誤校正位成群的系統(tǒng)的實施例的框圖。系統(tǒng)300可以是依照圖1的系統(tǒng)100或圖2的系統(tǒng)200的系統(tǒng)的一個示例。系統(tǒng)300包括存儲器控制器310,其控制針對存儲器設備320的存儲器訪問操作。在一個實施例中,存儲器設備320表示存儲器隊列(rank)。將理解到,存儲器隊列是指并聯(lián)成群在一起的多個設備,其在存儲器訪問操作上被一起選擇和訪問。
每一個存儲器設備320包括內(nèi)部錯誤校正位322。依照本文所描述的任何實施例,每一個存儲器設備320可以向存儲器控制器310暴露內(nèi)部位322。在一個實施例中,系統(tǒng)300使多個存儲器設備320的所有內(nèi)部位322成群在一起。因此,系統(tǒng)300允許更多的數(shù)據(jù)位作為元數(shù)據(jù)來交換。在使用用于ECC的元數(shù)據(jù)的情況下,使用來自多個存儲器設備320的內(nèi)部位322可以提供更強的錯誤校正。存儲器控制器310包括組合來自多個存儲器設備320的內(nèi)部位322的元數(shù)據(jù)邏輯312。元數(shù)據(jù)邏輯312表示存儲器控制器310中的邏輯(硬件和/或軟件),其使得存儲器控制器310能夠與存儲器設備320發(fā)送和接收作為元數(shù)據(jù)的內(nèi)部位322。在一個實施例中,元數(shù)據(jù)邏輯312組合來自多個存儲器設備320的內(nèi)部位以增加可用的元數(shù)據(jù)的位數(shù)。
在其中存儲器設備320執(zhí)行內(nèi)部錯誤校正的傳統(tǒng)實現(xiàn)中,將理解到,存儲器設備320將需要以高時鐘速度預取數(shù)據(jù)并且執(zhí)行錯誤校正操作。高時鐘速度需要足以允許存儲器設備及時執(zhí)行操作以在讀取時向存儲器控制器310發(fā)送數(shù)據(jù)或者在寫入時存儲數(shù)據(jù)。在一個實施例中,存儲器設備320可以在向存儲器控制器310暴露內(nèi)部位322時以較緩慢的時鐘預取數(shù)據(jù)。此外,存儲器控制器310的元數(shù)據(jù)邏輯312可以以較緩慢的時鐘在元數(shù)據(jù)上操作。
假定在一個示例中存儲器設備320執(zhí)行128位的數(shù)據(jù)的內(nèi)部預取,而同時讀取/寫入數(shù)據(jù)是64位。通過組合來自兩個存儲器設備320(兩個不同高速緩存行)的數(shù)據(jù),存儲器控制器310可以交換128位的數(shù)據(jù)的完整帶寬。在一個實施例中,元數(shù)據(jù)邏輯312基于內(nèi)部位322而計算ECC,并且可以計算針對兩個高速緩存行一起的ECC。對于x8設備,存儲器控制器310可以向兩個存儲器設備320中的每一個交換4位的元數(shù)據(jù)。
在一個實施例中,元數(shù)據(jù)邏輯312在用于ECC的額外數(shù)據(jù)突發(fā)中傳送元數(shù)據(jù)。在這樣的實現(xiàn)中,存儲器設備320可以在第一突發(fā)上傳送讀取元數(shù)據(jù),并且元數(shù)據(jù)邏輯312可以在最后突發(fā)上傳送寫入元數(shù)據(jù)。通過在第一突發(fā)上發(fā)送讀取元數(shù)據(jù)并且在最后突發(fā)上發(fā)送寫入元數(shù)據(jù),元數(shù)據(jù)邏輯312可以放松寫入期間針對ECC的計算,并且在讀取期間執(zhí)行早期檢測。
圖4是其中存儲器控制器與存儲器設備對接以用于元數(shù)據(jù)交換的系統(tǒng)和引腳分配表的實施例的框圖。系統(tǒng)400可以是依照圖1的系統(tǒng)100、圖2的系統(tǒng)200和/或圖3的系統(tǒng)300的系統(tǒng)的一個示例。存儲器控制器410是依照本文所描述的任何實施例的存儲器控制器。存儲器設備430是依照本文所描述的任何實施例的存儲器設備。
存儲器設備430包括內(nèi)部位432,其表示存儲和管理存儲器設備430內(nèi)的內(nèi)部錯誤校正機制的使用的儲存器和/或邏輯。在一個實施例中,存儲器設備430向存儲器控制器410暴露內(nèi)部位432,以使得存儲器控制器能夠?qū)?nèi)部位用作元數(shù)據(jù)。存儲器控制器410包括元數(shù)據(jù)邏輯412,其表示使得存儲器控制器410能夠與存儲器設備430交換內(nèi)部位432的硬件和/或軟件。
存儲器控制器410包括一個或多個硬件I/O接口組件,在存儲器設備430處具有對應I/O接口。例如,存儲器控制器包括C/A(標記為CA)接口422,在存儲器設備430處具有對應C/A接口442。接口元件422和442表示命令/地址總線,存儲器控制器410通過所述命令/地址總線向存儲器設備430發(fā)送命令,所述命令包括存儲器訪問命令。存儲器控制器410包括DQ接口424,在存儲器設備430處具有對應DQ接口444。DQ接口424和444表示數(shù)據(jù)總線,存儲器控制器和存儲器設備通過所述數(shù)據(jù)總線交換數(shù)據(jù)。在一個實施例中,存儲器控制器410包括DM接口,在存儲器設備430處具有對應DM接口446。DM接口426和446表示直接存儲器接口。接口(422至442、424至444和426至446)中的每一個可以被視為分離的I/O接口,或者可以被視為設備之間的單個接口的部分。
在一個實施例中,存儲器控制器410和存儲器設備430如下傳送數(shù)據(jù)。存儲器控制器410通過CA接口422、442向存儲器設備430發(fā)送存儲器訪問命令。存儲器設備430接收和解碼命令。對于寫入,存儲器控制器410還發(fā)送要通過DQ接口424、444寫入的數(shù)據(jù)。在一個實施例中,存儲器控制器410還經(jīng)由元數(shù)據(jù)邏輯412計算并且通過DM接口426、446與寫入數(shù)據(jù)一起發(fā)送元數(shù)據(jù)。存儲器設備430接收寫入數(shù)據(jù)和寫入元數(shù)據(jù),并且存儲兩個數(shù)據(jù)集合,(一個或多個)存儲器陣列中的DQ數(shù)據(jù)和作為內(nèi)部位432的寫入元數(shù)據(jù)。在一個實施例中,內(nèi)部位432可以被存儲為DQ數(shù)據(jù)旁邊的(一個或多個)主存儲器陣列的部分。在一個實施例中,內(nèi)部位432可以實現(xiàn)為(一個或多個)單獨的位。對于讀取,存儲器設備430接收和解碼命令和地址。存儲器設備從(一個或多個)存儲器陣列預取數(shù)據(jù)并且通過DQ接口444、424發(fā)送數(shù)據(jù)。存儲器設備430還訪問內(nèi)部位432并且通過DM接口446、426發(fā)送所述位作為讀取元數(shù)據(jù)。
將理解到,其它引腳可以用于傳送元數(shù)據(jù)。例如,DQ接口424、444可以包括用于傳送元數(shù)據(jù)的一個或多個附加引腳和信號線。在另一實施例中,在存儲器控制器410與存儲器設備430之間的接口中可以存在一個或多個其它引腳,其可以針對存儲器設備430用于暴露內(nèi)部位432并且針對存儲器控制器410用于訪問內(nèi)部位432。被選擇傳送元數(shù)據(jù)的接口可以是否則對于讀取或?qū)懭氩僮鞑换顒拥囊_或信號線。引腳或信號線可以可替換地在讀取或?qū)懭肫陂g服務不同目的并且被重新目的化。
在一個實施例中,存儲器控制器410和存儲器設備430可以此外或可替換地使用DBI接口(未示出)以交換元數(shù)據(jù)。將理解到,數(shù)據(jù)交換發(fā)生在傳送時段的突發(fā)內(nèi),所述傳送時段是特定讀取/寫入事務或操作的所有部分。元數(shù)據(jù)可以同樣在具有數(shù)個不同選項中的任何一個的突發(fā)中來發(fā)送。表格450說明針對存儲器設備430的不同配置的傳送選項。將理解到,表格450是說明性而非限制性的。表格450具體地說明用于傳送128位的數(shù)據(jù)和8位的元數(shù)據(jù)的若干配置。例如,具有x16接口寬度與BL8的突發(fā)長度的配置、具有x32接口寬度與BL4的突發(fā)長度的配置和具有x64接口寬度與BL2的突發(fā)長度的配置。
在一個實施例中,對于x16配置,系統(tǒng)400可以通過單個引腳或連接器DM[x]傳送元數(shù)據(jù)位0至7。在這樣的配置中,不使用其它引腳DM[y, z, w]。在x16配置中,系統(tǒng)400還可以通過總共八個DM引腳的任何二進制組合傳送元數(shù)據(jù)位。例如,系統(tǒng)400可以通過DM[x]傳送元數(shù)據(jù)位0至3和通過DM[y]傳送元數(shù)據(jù)位4至7。在這樣的示例中,將理解到,引腳將不通過最后四個突發(fā)來傳送元數(shù)據(jù),即便系統(tǒng)將通過那些突發(fā)傳送數(shù)據(jù)。作為另一示例,系統(tǒng)400可以通過DM[x]傳送元數(shù)據(jù)位0和1,通過DM[y]傳送2和3,通過DM[z]傳送4和5,并且通過DM[w]傳送6和7。在八個DM引腳的情況下,將理解到,八個引腳中的每一個可以用于在單個突發(fā)期間發(fā)送單個位。在這樣的示例中,單個突發(fā)可以是第一或最后突發(fā)。
在x32配置中,系統(tǒng)400可以依照類似的選項傳送8個元數(shù)據(jù)位。在一個示例中,系統(tǒng)400可以通過DM[x]傳送元數(shù)據(jù)位0至3并且通過DM[y]傳送元數(shù)據(jù)位4至7。在這樣的示例中,將理解到,引腳將不通過最后兩個突發(fā)傳送元數(shù)據(jù)。作為另一示例,系統(tǒng)400可以通過DM[x]傳送元數(shù)據(jù)位0和1,通過DM[y]傳送2和3,通過DM[z]傳送4和5,并且通過DM[w]傳送6和7,其中每一個引腳對于最后兩個突發(fā)是空閑的。在x32配置中,系統(tǒng)400還可以利用8個傳送信號線或引腳在單個突發(fā)中傳送所有元數(shù)據(jù)位。類似地,在x64配置中,系統(tǒng)400可以通過DM[x]傳送元數(shù)據(jù)位0和1,通過DM[y]傳送2和3,通過DM[z]傳送4和5,并且通過DM[w]傳送6和7。在x642配置中,系統(tǒng)400還可以利用8個傳送信號線或引腳在單個突發(fā)中傳送所有元數(shù)據(jù)位。
圖5是用于在存儲器控制器與存儲器設備之間對接以針對不同帶寬的總線來交換數(shù)據(jù)的過程的實施例的流程圖。過程500表示存儲器設備通過其向存儲器控制器暴露內(nèi)部錯誤校正位和/或存儲器控制器訪問存儲器設備的內(nèi)部錯誤校正位的過程中的操作。在一個實施例中,存儲器設備可以是雙模態(tài)的,并且系統(tǒng)確定存儲器設備處于第一還是第二模式中,502。在一個實施例中,存儲器設備被設計或配置成具有總是暴露內(nèi)部錯誤校正位的單個模式。
如果存儲器設備處于第一模式,504第一分支,則存儲器設備生成內(nèi)部錯誤校正位,506,并且在內(nèi)部使用內(nèi)部錯誤校正位,508。因此,存儲器設備并不向外部存儲器控制器暴露內(nèi)部錯誤校正位。如果存儲器設備處于第二模式,504第二分支,則存儲器設備暴露內(nèi)部錯誤校正位以供存儲器控制器使用,510。
存儲器控制器生成和發(fā)送與通過主機的操作有關(guān)的存儲器訪問命令,512。存儲器設備接收和解碼存儲器訪問命令,514。如果所述命令是讀取,516讀取分支,則存儲器設備讀取內(nèi)部錯誤校正位并且提取由命令指示的數(shù)據(jù),518。存儲器設備將作為元數(shù)據(jù)的內(nèi)部錯誤校正位與數(shù)據(jù)一起發(fā)送到存儲器控制器,520。如以上所討論的,存在存儲器設備可以以其向存儲器控制器傳送元數(shù)據(jù)位的多個不同方式。與存儲器設備將所述位用于內(nèi)部錯誤校正相比,存儲器控制器在更低的時間約束下使用元數(shù)據(jù),522。
如果所述命令是寫入,516寫入分支,則存儲器控制器生成元數(shù)據(jù)位并且將元數(shù)據(jù)與數(shù)據(jù)一起發(fā)送到存儲器設備,524。同樣,存在存儲器控制器可以以其向存儲器設備傳送元數(shù)據(jù)的許多不同方式。存儲器設備寫入數(shù)據(jù)并且存儲和/或解碼從存儲器控制器接收到的元數(shù)據(jù),526。在讀取或?qū)懭氲娜我磺闆r下,元數(shù)據(jù)可以用于在存儲器控制器而不是存儲器設備處的錯誤校正的目的和/或可以用于非錯誤校正目的。
參照存儲器控制器和存儲器設備來描述過程500。如以上所討論的,在一個實施例中,存儲器設備可以是耦合到存儲器控制器的多個存儲器設備之一。多個存儲器設備可以并聯(lián)耦合到存儲器控制器,并且存儲器控制器組合來自多個不同設備的元數(shù)據(jù)。在組合的情境中,存儲器控制器可以將來自一個存儲器設備的元數(shù)據(jù)視為所計算的總的元數(shù)據(jù)位的一部分。例如,存儲器控制器可以生成作為錯誤校正或其它元數(shù)據(jù)的多于八位的元數(shù)據(jù),并且存儲和從并聯(lián)耦合的多個存儲器設備(諸如在存儲器隊列中)取回元數(shù)據(jù)。在這樣的實現(xiàn)中,過程500中的通過存儲器控制器的操作將包括與更多設備交換的元數(shù)據(jù)。在過程500中的通過存儲器設備的操作可以由多個存儲器設備執(zhí)行。
圖6是其中可以實現(xiàn)對接到不同帶寬的數(shù)據(jù)總線的公共管芯的計算系統(tǒng)的實施例的框圖。系統(tǒng)600表示依照本文所描述的任何實施例的計算設備,并且可以是膝上型計算機、臺式計算機、服務器、游戲或娛樂控制系統(tǒng)、掃描儀、復印機、打印機、路由或交換設備或其它電子設備。系統(tǒng)600包括處理器620,其提供針對系統(tǒng)600的處理、操作管理和對指令的運行。處理器620可以包括任何類型的微處理器、中央處理單元(CPU)、處理核或其它處理硬件以提供針對系統(tǒng)600的處理。處理器620控制系統(tǒng)600的總體操作,并且可以是或包括,一個或多個可編程通用或?qū)S梦⑻幚砥?、?shù)字信號處理器(DSP)、可編程控制器、專用集成電路(ASIC)、可編程邏輯器件(PLD)等,或者這樣的設備的組合。
存儲器子系統(tǒng)630表示系統(tǒng)600的主存儲器,并且提供針對要由處理器620執(zhí)行的代碼或要在運行例程中使用的數(shù)據(jù)值的臨時存儲。存儲器子系統(tǒng)630可以包括一個或多個存儲器設備,諸如只讀存儲器(ROM)、閃速存儲器、一個或多個種類的隨機存取存儲器(RAM)或其它存儲器設備或這樣的設備的組合。除其它之外,存儲器子系統(tǒng)630尤其存儲和主控操作系統(tǒng)(OS)636以提供用于在系統(tǒng)600中運行指令的軟件平臺。此外,存儲并且運行來自存儲器子系統(tǒng)630的其它指令638以提供系統(tǒng)600的邏輯和處理。OS 636和指令638由處理器620運行。存儲器子系統(tǒng)730包括存儲器設備632,其中它存儲數(shù)據(jù)、指令、程序或其它項目。在一個實施例中,存儲器子系統(tǒng)包括存儲器控制器634,其是生成命令和向存儲器設備632發(fā)布命令的存儲器控制器。將理解到,存儲器控制器634可以是處理器620的物理部分。
處理器620和存儲器子系統(tǒng)630耦合到總線/總線系統(tǒng)610??偩€610是表示通過適當?shù)臉蚪悠?、適配器和/或控制器連接的任何一個或多個分離的物理總線、通信線路/接口和/或點對點連接的抽象。因此,總線610可以包括例如以下中的一個或多個:系統(tǒng)總線、外圍組件互連(PCI)總線、超傳輸或工業(yè)標準架構(gòu)(ISA)總線、小型計算機系統(tǒng)接口(SCSI)總線、通用串行總線(USB)或電氣和電子工程師(IEEE)協(xié)會標準1394總線(通常稱為“火線”)??偩€610的總線還可以對應于網(wǎng)絡接口650中的接口。
系統(tǒng)600還包括耦合到總線610的一個或多個輸入/輸出(I/O)接口640、網(wǎng)絡接口650、一個或多個內(nèi)部大容量存儲設備660和外圍接口670。I/O接口640可以包括一個或多個接口組件,用戶通過所述一個或多個接口組件與系統(tǒng)600交互(例如視頻、音頻和/或字母數(shù)字對接)。在一個實施例中,I/O接口640可以包括向用戶提供輸出的高清晰度(HD)顯示器。高清晰度可以是指具有近似100PPI(像素每英寸)或更大的像素密度的顯示,并且可以包括諸如全HD(例如1080P)、視網(wǎng)膜顯示、4K(超高清晰度或UHD)或其它之類的格式。高清晰度還可以是指具有與像素顯示器相當?shù)囊曈X質(zhì)量的投影的顯示(例如頭部安裝的顯示器)。網(wǎng)絡接口650為系統(tǒng)600提供通過一個或多個網(wǎng)絡與遠程設備(例如服務器、其它計算設備)通信的能力。網(wǎng)絡接口650可以包括以太網(wǎng)適配器、無線互連組件、USB(通用串行總線)或其它基于有線或無線標準的或?qū)S械慕涌凇?/p>
儲存器660可以是或包括用于以非易失性方式存儲大量數(shù)據(jù)的任何常規(guī)的介質(zhì),諸如一個或多個磁性、固態(tài)或基于光學的盤或組合。儲存器660以持久性狀態(tài)保存代碼或指令和數(shù)據(jù)662(即盡管到系統(tǒng)600的功率中斷也保留值)。儲存器660可以一般地被視為“存儲器”,盡管存儲器630是向處理器620提供指令的運行或操作存儲器。存儲器630可以包括易失性存儲器(即如果到系統(tǒng)600的功率中斷則數(shù)據(jù)的值或狀態(tài)是不確定的),而儲存器660是非易失性的。
外圍接口670可以包括以上未具體提到的任何硬件接口。外設一般是指獨立連接到系統(tǒng)600的設備。從屬連接是這樣的連接,在該連接中系統(tǒng)600提供其上運行操作并且用戶與其進行交互的軟件和/或硬件平臺。
在一個實施例中,系統(tǒng)600包括元數(shù)據(jù)邏輯680,其使得存儲器設備632和存儲器控制器634能夠在讀取或?qū)懭胧聞掌陂g交換元數(shù)據(jù)。存儲器設備632向存儲器控制器634暴露內(nèi)部錯誤校正位。在一個實施例中,存儲器控制器634生成和消費元數(shù)據(jù),所述元數(shù)據(jù)存儲在存儲器設備632中。內(nèi)部錯誤校正位可以由存儲器控制器用于在降低的定時約束下在存儲器控制器處的錯誤校正。存儲器控制器還可以或可替換地將元數(shù)據(jù)用于除錯誤校正之外的某事。存儲器子系統(tǒng)630可以包括多個存儲器設備632,其可以并聯(lián)耦合到存儲器控制器634以允許對更多的元數(shù)據(jù)位的存儲器控制器訪問。
圖7是其中可以實現(xiàn)對接到不同帶寬的數(shù)據(jù)總線的公共管芯的移動設備的實施例的框圖。設備700表示移動計算設備,諸如計算平板電腦、移動電話或智能電話、啟用無線使的電子閱讀器、可穿戴計算設備或其它移動設備。將理解到,一般地示出某些組件,并且在設備700中未示出這樣的設備的所有組件。
設備700可以包括處理器710,其執(zhí)行設備700的主要處理操作。處理器710可以包括一個或多個物理設備,諸如微處理器、應用處理器、微控制器、可編程邏輯器件或其它處理部件。由處理器710執(zhí)行的處理操作包括其上運行應用和/或設備功能的操作平臺或操作系統(tǒng)的運行。處理操作包括涉及與人類用戶或與其它設備的I/O(輸入/輸出)的操作、涉及功率管理的操作和/或涉及將設備700連接到另一設備的操作。處理操作還可以包括涉及音頻I/O和/或顯示I/O的操作。
在一個實施例中,設備700包括音頻子系統(tǒng)720,其表示與向計算設備提供音頻功能相關(guān)聯(lián)的硬件(例如音頻硬件和音頻電路)和軟件(例如驅(qū)動器、編解碼器)組件。音頻功能可以包括揚聲器和/或耳機輸出,以及麥克風輸入。用于這樣的功能的設備可以集成到設備700中,或者連接到設備700。在一個實施例中,用戶通過提供由處理器710接收和處理的音頻命令來與設備700交互。
顯示子系統(tǒng)730表示針對用戶提供與計算設備交互的視覺和/或觸覺顯示的硬件(例如顯示設備)和軟件(例如驅(qū)動器)組件。顯示子系統(tǒng)730包括顯示接口732,其包括用于向用戶提供顯示的特定屏幕或硬件設備。在一個實施例中,顯示接口732包括與處理器710分離以執(zhí)行涉及顯示的至少一些處理的邏輯。在一個實施例中,顯示子系統(tǒng)730包括向用戶提供輸出和輸入二者的觸摸屏設備。在一個實施例中,顯示子系統(tǒng)730包括向用戶提供輸出的高清晰度(HD)顯示器。高清晰度可以是指具有近似100 PPI(像素每英寸)或更大的像素密度的顯示,并且可以包括諸如全HD(例如1080P)、視網(wǎng)膜顯示、4K(超高清晰度或UHD)或其它之類的格式。
I/O控制器740表示涉及與用戶的交互的硬件設備和軟件組件。I/O控制器740可以操作成管理作為音頻子系統(tǒng)720和/或顯示子系統(tǒng)730的部分的硬件。此外,I/O控制器740說明用于連接到設備700的附加設備的連接點,用戶通過其可以與系統(tǒng)交互。例如,可以附連到設備700的設備可以包括麥克風設備、揚聲器或立體聲系統(tǒng)、視頻系統(tǒng)或其它顯示設備、鍵盤或小鍵盤設備或供特定應用使用的其它I/O設備,諸如讀卡器或其它設備。
如以上所提到的,I/O控制器740可以與音頻子系統(tǒng)720和/或顯示子系統(tǒng)730交互。例如,通過麥克風或其它音頻設備的輸入可以提供用于設備700的一個或多個應用或功能的輸入或命令。此外,可以取代于或附加于顯示輸出而提供音頻輸出。在另一示例中,如果顯示子系統(tǒng)包括觸摸屏,則顯示設備還充當輸入設備,其可以至少部分地由I/O控制器740來管理。還可以存在設備700上的附加按鈕或開關(guān)以提供由I/O控制器740管理的I/O功能。
在一個實施例中,I/O控制器740管理諸如加速度計、攝像機、光傳感器或其它環(huán)境傳感器、陀螺儀、全球定位系統(tǒng)(GPS)或可以包括在設備700中的其它硬件之類的設備。輸入可以是直接用戶交互的部分,以及向系統(tǒng)提供環(huán)境輸入以影響其操作(諸如對噪聲過濾、調(diào)節(jié)顯示器以用于亮度檢測、應用攝像機的閃光燈或其它特征)。在一個實施例中,設備700包括功率管理750,其管理電池功率使用、電池的充電和涉及功率節(jié)約操作的特征。
存儲器子系統(tǒng)760包括用于在設備700中存儲信息的(一個或多個)存儲器設備762。存儲器子系統(tǒng)760可以包括非易失性(如果到存儲器設備的功率中斷,狀態(tài)不改變)和/或易失性(如果到存儲器設備的供電中斷,狀態(tài)不確定)存儲器設備。存儲器760可以存儲應用數(shù)據(jù)、用戶數(shù)據(jù)、音樂、照片、文檔或其它數(shù)據(jù),以及涉及系統(tǒng)700的應用和功能的運行的系統(tǒng)數(shù)據(jù)(無論長期還是臨時)。在一個實施例中,存儲器子系統(tǒng)760包括存儲器控制器764(其還可以被視為系統(tǒng)700的控制的部分,并且可以潛在地被視為處理器710的部分)。存儲器控制器764包括生成命令和向存儲器設備762發(fā)布命令的調(diào)度器。
連接性770包括使得設備700能夠與外部設備通信的硬件設備(例如無線和/或有線連接器和通信硬件)和軟件組件(例如驅(qū)動器、協(xié)議棧)。設備可以是分離的設備,諸如其它計算設備、無線接入點或基站以及諸如耳機、打印機或其它設備之類的外設。
連接性770可以包括多個不同類型的連接性。為了一般化,設備700被圖示有蜂窩連接性772和無線連接性774。蜂窩連接性772一般是指由無線運營商提供的蜂窩網(wǎng)絡連接性,諸如經(jīng)由GSM(全球移動通信系統(tǒng))或變型或派生物、CDMA(碼分多址)或變型或派生物、TDM(時分復用)或變型或派生物、LTE(長期演進——還稱為“4G”)或其它蜂窩服務標準來提供。無線連接性774是指不是蜂窩的無線連接性,并且可以包括個域網(wǎng)(諸如藍牙)、局域網(wǎng)(諸如WiFi)和/或廣域網(wǎng)(諸如WiMax)或其它無線通信。無線通信是指通過使用借由非固體介質(zhì)的經(jīng)調(diào)制電磁輻射來傳送數(shù)據(jù)。有線通信通過固體通信介質(zhì)發(fā)生。
外圍連接780包括硬件接口和連接器,以及做出外圍連接的軟件組件(例如驅(qū)動器、協(xié)議棧)。將理解到,設備700可以既是到其它計算設備的外圍設備(“去往”782)又是具有連接到它的外圍設備(“來自”784)。設備700通常具有“塢接”連接器以連接到其它計算設備以用于諸如管理(例如下載和/或上傳、改變、同步)設備700上的內(nèi)容之類的目的。此外,塢接連接器可以允許設備700連接到某些外設,其允許設備700控制例如到影音或其它系統(tǒng)的內(nèi)容輸出。
除了專有塢接連接器或其它專有連接硬件之外,設備700還可以經(jīng)由常見或基于標準的連接器做出外圍連接780。常見類型可以包括通用串行總線(USB)連接器(其可以包括數(shù)個不同的硬件接口中的任何一個)、包括MiniDisplayPort(MDP)的DisplayPort、高清晰度多媒體接口(HDMI)、火線或其它類型。
在一個實施例中,系統(tǒng)700包括元數(shù)據(jù)邏輯766,其使得存儲器設備762和存儲器控制器764能夠在讀取或?qū)懭胧聞掌陂g交換元數(shù)據(jù)。存儲器設備762向存儲器控制器764暴露內(nèi)部錯誤校正位。在一個實施例中,存儲器控制器764生成和消費元數(shù)據(jù),所述元數(shù)據(jù)存儲在存儲器設備762中。內(nèi)部錯誤校正位可以由存儲器控制器用于在降低的定時約束下在存儲器控制器處的錯誤校正。存儲器控制器還可以或可替換地將元數(shù)據(jù)用于除錯誤校正之外的某事。存儲器子系統(tǒng)760可以包括多個存儲器設備762,其可以并聯(lián)耦合到存儲器控制器764以允許對更多的元數(shù)據(jù)位的存儲器控制器訪問。
在一個方面中,一種用于對接存儲器設備和存儲器控制器的方法包括:確定存儲器設備處于第一模式還是第二模式;以及在第一模式中,僅在存儲器設備處在內(nèi)部應用內(nèi)部錯誤校正位;以及在第二模式中,向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位以供外部存儲器控制器使用。
在一個實施例中,向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位包括為存儲器控制器暴露內(nèi)部錯誤校正位以與存儲器設備交換非錯誤校正信息。在一個實施例中,向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位包括為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤而不是存儲器設備在內(nèi)部校正錯誤。在一個實施例中,為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤進一步包括,在第二模式中:響應于讀取請求,在存儲器設備處在內(nèi)部生成內(nèi)部錯誤校正位;以及向存儲器控制器發(fā)送內(nèi)部錯誤校正位以供存儲器控制器基于內(nèi)部錯誤校正位向數(shù)據(jù)位應用錯誤校正。在一個實施例中,為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤進一步包括,在第二模式中:結(jié)合寫入請求而接收由存儲器控制器計算的錯誤校正位;以及在存儲器設備處在內(nèi)部存儲錯誤校正位。在一個實施例中,為存儲器控制器暴露內(nèi)部錯誤校正位包括在信號線上與存儲器控制器交換內(nèi)部錯誤校正位,所述信號線否則對于讀取和寫入是不活動的。在一個實施例中,為存儲器控制器暴露內(nèi)部錯誤校正位進一步包括:作為多個不同存儲器設備之一,向存儲器控制器暴露內(nèi)部錯誤校正位,以增加可用于存儲器控制器的元數(shù)據(jù)位的數(shù)目。
在一個方面中,一種與存儲器子系統(tǒng)中的存儲器控制器對接的存儲器設備包括:存儲數(shù)據(jù)的多個存儲器單元;內(nèi)部錯誤校正硬件,包括與存儲器單元分離的存儲內(nèi)部錯誤校正位的儲存器;以及確定存儲器設備處于第一模式還是第二模式的邏輯,其中在第一模式中,邏輯僅用內(nèi)部錯誤校正硬件在內(nèi)部應用錯誤校正位,并且其中在第二模式中,邏輯通過作為元數(shù)據(jù)位向存儲器控制器暴露內(nèi)部錯誤校正位以供存儲器控制器使用。
在一個實施例中,所述邏輯向存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位以供存儲器控制器與存儲器設備交換非錯誤校正信息。在一個實施例中,所述邏輯向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位以供存儲器控制器校正錯誤而不是存儲器設備在內(nèi)部校正錯誤。在一個實施例中,所述邏輯暴露內(nèi)部錯誤校正位以供存儲器控制器校正錯誤包括,錯誤校正邏輯響應于讀取請求而生成內(nèi)部錯誤校正位,并且所述邏輯發(fā)送內(nèi)部錯誤校正位以使存儲器控制器基于內(nèi)部錯誤校正位而向數(shù)據(jù)位應用錯誤校正。在一個實施例中,所述邏輯暴露內(nèi)部錯誤校正位以供存儲器控制器校正錯誤包括,所述邏輯結(jié)合寫入請求而接收由存儲器控制器計算的錯誤校正位,并且在與存儲器單元分離的儲存器中在內(nèi)部存儲錯誤校正位。在一個實施例中,所述邏輯在信號線上與存儲器控制器交換內(nèi)部錯誤校正位,所述信號線否則對于讀取和寫入是不活動的。
在一個方面中,一種具有存儲器子系統(tǒng)的電子設備包括:存儲器控制器;與存儲器控制器對接的存儲器設備,存儲器設備包括存儲數(shù)據(jù)的多個存儲器單元;內(nèi)部錯誤校正硬件,包括與存儲器單元分離以存儲內(nèi)部錯誤校正位的儲存器;以及確定存儲器設備處于第一模式還是第二模式的邏輯,其中在第一模式中,所述邏輯僅用內(nèi)部錯誤校正硬件在內(nèi)部應用錯誤校正位,并且其中在第二模式中,所述邏輯通過作為元數(shù)據(jù)位而向存儲器控制器暴露內(nèi)部錯誤校正位以供存儲器控制器使用;以及觸摸屏顯示器,其耦合成基于從存儲器設備訪問的數(shù)據(jù)而生成顯示。
在一個實施例中,所述邏輯向存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位以供存儲器控制器與存儲器設備交換非錯誤校正信息。在一個實施例中,所述邏輯向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位以供存儲器控制器校正錯誤而不是存儲器設備在內(nèi)部校正錯誤。在一個實施例中,所述邏輯暴露內(nèi)部錯誤校正位以供存儲器控制器校正錯誤包括,錯誤校正邏輯響應于讀取請求而生成內(nèi)部錯誤校正位,并且所述邏輯發(fā)送內(nèi)部錯誤校正位以使存儲器控制器基于內(nèi)部錯誤校正位而向數(shù)據(jù)位應用錯誤校正。在一個實施例中,所述邏輯暴露內(nèi)部錯誤校正位以供存儲器控制器校正錯誤包括,所述邏輯結(jié)合寫入請求而接收由存儲器控制器計算的錯誤校正位,并且在與存儲器單元分離的儲存器中在內(nèi)部存儲錯誤校正位。在一個實施例中,所述邏輯在信號線上與存儲器控制器交換內(nèi)部錯誤校正位,所述信號線否則對于讀取和寫入是不活動的。在一個實施例中,存儲器設備是與存儲器控制器對接的多個存儲器設備之一,并且進一步包括,存儲器控制器包括交換來自多個不同存儲器設備的內(nèi)部錯誤校正位以增加可用于存儲器控制器的元數(shù)據(jù)位的數(shù)目的邏輯。
在一個方面中,一種包括具有存儲在其上的內(nèi)容的計算機可讀存儲介質(zhì)的制造品,所述內(nèi)容在被運行時執(zhí)行用于在存儲器子系統(tǒng)中對接的操作,包括:確定存儲器設備處于第一模式還是第二模式;以及在第一模式中,僅在存儲器設備處在內(nèi)部應用內(nèi)部錯誤校正位;以及在第二模式中,向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位以供外部存儲器控制器使用。
在一個實施例中,用于向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位的內(nèi)容包括用于為存儲器控制器暴露內(nèi)部錯誤校正位以與存儲器設備交換非錯誤校正信息的內(nèi)容。在一個實施例中,用于向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位的內(nèi)容包括用于為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤而不是存儲器設備在內(nèi)部校正錯誤的內(nèi)容。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤的內(nèi)容進一步包括,在第二模式中,用于以下的內(nèi)容:響應于讀取請求而在存儲器設備處在內(nèi)部生成內(nèi)部錯誤校正位;并且向存儲器控制器發(fā)送內(nèi)部錯誤校正位以供存儲器控制器基于內(nèi)部錯誤校正位向數(shù)據(jù)位應用錯誤校正。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤的內(nèi)容進一步包括,在第二模式中,用于以下的內(nèi)容:結(jié)合寫入請求而接收由存儲器控制器計算的錯誤校正位;并且在存儲器設備處在內(nèi)部存儲錯誤校正位。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位的內(nèi)容包括用于在信號線上與存儲器控制器交換內(nèi)部錯誤校正位的內(nèi)容,所述信號線否則對于讀取和寫入是不活動的。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位的內(nèi)容進一步包括用于作為多個不同存儲器設備之一向存儲器控制器暴露內(nèi)部錯誤校正位以增加可用于存儲器控制器的元數(shù)據(jù)位的數(shù)目的內(nèi)容。
在一個方面中,一種與存儲器子系統(tǒng)中的存儲器控制器對接的裝置包括:用于確定存儲器設備處于第一模式還是第二模式的部件;以及用于在第一模式中僅在存儲器設備處在內(nèi)部應用內(nèi)部錯誤校正位的部件;以及用于在第二模式中向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位以供外部存儲器控制器使用的部件。
在一個實施例中,用于向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位的部件包括用于為存儲器控制器暴露內(nèi)部錯誤校正位以與存儲器設備交換非錯誤校正信息的部件。在一個實施例中,用于向外部存儲器控制器暴露內(nèi)部錯誤校正位作為元數(shù)據(jù)位的部件包括用于為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤而不是存儲器設備在內(nèi)部校正錯誤的部件。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤的部件進一步包括,在第二模式中,用于以下的部件:響應于讀取請求而在存儲器設備處在內(nèi)部生成內(nèi)部錯誤校正位;并且向存儲器控制器發(fā)送內(nèi)部錯誤校正位以供存儲器控制器基于內(nèi)部錯誤校正位而向數(shù)據(jù)位應用錯誤校正。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位以校正錯誤的部件進一步包括,在第二模式中,用于以下的部件:結(jié)合寫入請求而接收由存儲器控制器計算的錯誤校正位;并且在存儲器設備處在內(nèi)部存儲錯誤校正位。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位的部件包括用于在信號線上與存儲器控制器交換內(nèi)部錯誤校正位的部件,所述信號線否則對于讀取和寫入是不活動的。在一個實施例中,用于為存儲器控制器暴露內(nèi)部錯誤校正位的部件進一步包括用于作為多個不同存儲器設備之一向存儲器控制器暴露內(nèi)部錯誤校正位以增加可用于存儲器控制器的元數(shù)據(jù)位的數(shù)目的部件。
如本文所圖示的流程圖提供各種過程動作的序列的示例。流程圖可以指示要由軟件或固件例程運行的操作,以及物理操作。在一個實施例中,流程圖可以圖示有限狀態(tài)機(FSM)的狀態(tài),所述有限狀態(tài)機可以以硬件和/或軟件來實現(xiàn)。盡管以特定順序或次序示出,但是除非另行指定,否則可以修改動作的次序。因此,所圖示的實施例應當僅被理解為示例,并且過程可以以不同的次序執(zhí)行,并且一些動作可以并行執(zhí)行。此外,可以在各種實施例中省略一個或多個動作;因此,并非所有動作在每一個實施例中都是所必需的。其它過程流是可能的。
在本文描述各種操作或功能的程度上,它們可以被描述或定義為軟件代碼、指令、配置和/或數(shù)據(jù)。內(nèi)容可以是可直接執(zhí)行的(“對象”或“可執(zhí)行”形式)、源代碼或差異代碼(“增量(delta)”或“補丁”代碼)。本文所描述的實施例的軟件內(nèi)容可以經(jīng)由具有存儲在其上的內(nèi)容的制造品來提供,或者經(jīng)由操作通信接口以經(jīng)由通信接口發(fā)送數(shù)據(jù)的方法來提供。機器可讀存儲介質(zhì)可以使機器執(zhí)行所描述的功能或操作,并且包括以可由機器(例如計算設備、電子系統(tǒng)等)訪問的形式存儲信息的任何機構(gòu),諸如可記錄/非可記錄介質(zhì)(例如只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁盤存儲介質(zhì)、光學存儲介質(zhì)、閃速存儲器設備等)。通信接口包括對接到任何硬連線、無線、光學等介質(zhì)以向另一設備進行通信的任何機構(gòu),諸如存儲器總線接口、處理器總線接口、因特網(wǎng)連接、盤控制器等。通信接口可以通過提供配置參數(shù)和/或發(fā)送信號來進行配置以使通信接口準備好提供描述軟件內(nèi)容的數(shù)據(jù)信號。通信接口可以經(jīng)由發(fā)送至通信接口的一個或多個命令或信號來訪問。
本文所描述的各種組件可以是用于執(zhí)行所描述的操作或功能的部件。本文所描述的每一個組件包括軟件、硬件或這些的組合。組件可以實現(xiàn)為軟件模塊、硬件模塊、特殊目的硬件(例如專用硬件、專用集成電路(ASIC)、數(shù)字信號處理器(DSP)等)、嵌入式控制器、硬連線電路等。
除了本文所描述的之外,可以在不脫離其范圍的情況下對本發(fā)明的所公開的實施例和實現(xiàn)做出各種修改。因此,本文中的說明和示例應當以說明性而非限制性含義來解釋。本發(fā)明的范圍應當僅通過參考隨附權(quán)利要求來衡量。