非易失性存儲(chǔ)器接口的制作方法
【專利說(shuō)明】非易失性存儲(chǔ)器接口
【背景技術(shù)】
[0001] 計(jì)算設(shè)備可以包括可用于存儲(chǔ)信息的存儲(chǔ)裝置。該信息可以包括例如,數(shù)據(jù)和/ 或可執(zhí)行指令。該存儲(chǔ)裝置可以包括主存儲(chǔ)裝置和輔助存儲(chǔ)裝置。主存儲(chǔ)裝置可以例如為 處理器提供內(nèi)部存儲(chǔ)。輔助存儲(chǔ)裝置可以例如為處理器提供外部存儲(chǔ)。處理器可以經(jīng)由一 個(gè)或多個(gè)總線來(lái)訪問(wèn)存儲(chǔ)裝置。這些總線可以用于在處理器與存儲(chǔ)裝置之間傳遞信息。
【附圖說(shuō)明】
[0002] 并入本說(shuō)明書中并構(gòu)成其一部分的附圖圖示本文描述的一個(gè)或多個(gè)實(shí)施例,并且 連同描述來(lái)解釋這些實(shí)施例。在這些附圖中: 圖1圖示計(jì)算設(shè)備的示例的框圖; 圖2圖示可與事務(wù)關(guān)聯(lián)的階段的示例; 圖3圖不可以與讀事務(wù)關(guān)聯(lián)的時(shí)序圖的不例; 圖4圖不可以與與事務(wù)關(guān)聯(lián)的時(shí)序圖的不例; 圖5A-B圖示可在讀事務(wù)期間由主機(jī)端執(zhí)行的示例動(dòng)作的流程圖; 圖6A-B圖示可在讀事務(wù)期間由客戶端執(zhí)行的示例動(dòng)作的流程圖; 圖7A-B圖示可在寫事務(wù)期間由主機(jī)端執(zhí)行的示例動(dòng)作的流程圖; 圖8A-B圖示可在讀事務(wù)期間由客戶端執(zhí)行的示例動(dòng)作的流程圖;以及 圖9圖示計(jì)算設(shè)備的另一個(gè)示例的框圖。
【具體實(shí)施方式】
[0003] 下文詳細(xì)描述參考了附圖。不同附圖中的相同引用號(hào)可標(biāo)識(shí)相同或相似的元件。 再有,下文詳細(xì)描述并不限制本發(fā)明。
[0004] 計(jì)算設(shè)備可以包括計(jì)算設(shè)備可用來(lái)存儲(chǔ)信息(例如,數(shù)據(jù)、計(jì)算機(jī)可執(zhí)行指令)的 存儲(chǔ)裝置。該存儲(chǔ)裝置可以是易失性和/或非易失性的。易失性存儲(chǔ)裝置可以用于存儲(chǔ)從 計(jì)算設(shè)備移除供電之后可丟失的信息。非易失性存儲(chǔ)裝置可以用于存儲(chǔ)計(jì)算設(shè)備失去供電 之后將續(xù)存(保留)的信息。
[0005] 例如,計(jì)算設(shè)備可以包含中處理單元(CPU)和存儲(chǔ)裝置。該存儲(chǔ)再者可以包括例 如,易失性存儲(chǔ)器和非易失性存儲(chǔ)器(NVM)。易失性存儲(chǔ)裝置可以針對(duì)從計(jì)算設(shè)備移除供電 之后可丟失的信息提供存儲(chǔ)。另一方面,NVM可以針對(duì)從計(jì)算設(shè)備移除供電之后要保留的 信息提供存儲(chǔ)。CPU可以在對(duì)計(jì)算設(shè)備恢復(fù)供電之后從NVM取回所保留的信息。
[0006] 存儲(chǔ)裝置可以包含可用于存儲(chǔ)信息的一個(gè)或多個(gè)存儲(chǔ)器裝置。存儲(chǔ)器裝置可以包 括一個(gè)或多個(gè)陣列,其中陣列可以包括可用將信息存儲(chǔ)在存儲(chǔ)器裝置中的一個(gè)或多個(gè)存儲(chǔ) 器單元。
[0007] 存儲(chǔ)器單元可以與地址關(guān)聯(lián)。可以使用地址來(lái)標(biāo)識(shí)該存儲(chǔ)器單元??梢允褂玫刂?將信息寫入存儲(chǔ)器單元和/或從存儲(chǔ)器單元讀取信息。例如,存儲(chǔ)器裝置中的存儲(chǔ)器單元 可以與特定地址關(guān)聯(lián)(例如,0x100)。寫事務(wù)可以指定地址以及要寫入到存儲(chǔ)器單元的數(shù) 據(jù)??梢允褂玫刂穪?lái)標(biāo)識(shí)存儲(chǔ)器單元,以及可以在標(biāo)識(shí)存儲(chǔ)器單元之后將數(shù)據(jù)寫入該存儲(chǔ) 器單元。
[0008] 可以使用相可包含存儲(chǔ)裝置的設(shè)備發(fā)出命令來(lái)訪問(wèn)(例如,讀、寫)該存儲(chǔ)裝置。命 令可以是可通過(guò)總線傳遞到設(shè)備的事務(wù)的一部分。還可以通過(guò)總線傳遞與命令關(guān)聯(lián)的數(shù) 據(jù)。總線可以包括用于將命令和/或數(shù)據(jù)傳遞到設(shè)備的供應(yīng)(例如,導(dǎo)線)。
[0009] 例如,計(jì)算設(shè)備可以包括CPU和NVM。CPU可以通過(guò)總線耦合到NVM??梢允褂迷?CPU與NVM之間傳遞命令和/或數(shù)據(jù)??偩€可以是例如可以包括可用于傳遞命令和/或數(shù) 據(jù)的一個(gè)或多個(gè)導(dǎo)線的點(diǎn)到點(diǎn)總線。
[0010] 存儲(chǔ)裝置可以包括一個(gè)或多個(gè)存儲(chǔ)模塊。存儲(chǔ)模塊可以包含存儲(chǔ)裝置中包含的一 個(gè)或多個(gè)存儲(chǔ)器裝置。存儲(chǔ)模塊的示例可以包括但不限于,雙列直插式存儲(chǔ)器模塊(DIMM)、 安全數(shù)字(SD)卡、多媒體卡(MMC)、壓縮閃存(CF)卡、存儲(chǔ)棒和單列直插式存儲(chǔ)器模塊 (SIMM)。
[0011] 本文描述的技術(shù)可以在計(jì)算設(shè)備中實(shí)現(xiàn)。可實(shí)現(xiàn)本文描述的技術(shù)的計(jì)算設(shè)備的示 例可以包括但不限于,智能電話、平板電腦、超級(jí)本、膝上型計(jì)算機(jī)、主機(jī)端、服務(wù)器和桌上 型計(jì)算機(jī)。
[0012] 圖1圖示可實(shí)現(xiàn)本文描述的多種技術(shù)的計(jì)算設(shè)備100的示例的框圖。參考圖1,計(jì) 算設(shè)備100可以包括多種組件,例如,易失性存儲(chǔ)器120、處理邏輯130、主機(jī)端控制器(HC) 140和非易失性存儲(chǔ)器150。
[0013] 應(yīng)該注意圖1圖示計(jì)算設(shè)備100的示例實(shí)施例。計(jì)算設(shè)備100的其他實(shí)施例可以 包括比圖1所示的組件更多的組件或更少的組件。再者,這些組件可以按不同于圖1所示 的方式來(lái)安裝。例如,計(jì)算設(shè)備100的實(shí)施例可以包括可用于與如因特網(wǎng)的網(wǎng)絡(luò)通信的通 信接口。再有,應(yīng)該注意計(jì)算設(shè)備100的其他實(shí)施例中包含的多種組件執(zhí)行的功能可以采 用不同于本文描述的方式分布在組件之間。
[0014] 易失性存儲(chǔ)器120可以提供用于計(jì)算設(shè)備100的存儲(chǔ)裝置。該存儲(chǔ)裝置可以用于 存儲(chǔ)信息,例如,數(shù)據(jù)和/或計(jì)算機(jī)可執(zhí)行指令。該存儲(chǔ)裝置可以是可以實(shí)現(xiàn)用于計(jì)算設(shè)備 100的高速緩存存儲(chǔ)器的高速存儲(chǔ)裝置(例如,二級(jí)(L2)高速緩存)。易失性存儲(chǔ)器120可 以包括一個(gè)或多個(gè)裝置,例如,可以用于存儲(chǔ)信息的存儲(chǔ)器裝置。
[0015] 非易失性存儲(chǔ)器150也可以提供用于計(jì)算設(shè)備100的存儲(chǔ)裝置。該存儲(chǔ)裝置可以 例如,比易失性存儲(chǔ)器120慢且具有比易失性存儲(chǔ)器120更高的存儲(chǔ)容量。該存儲(chǔ)裝置可 以用于存儲(chǔ)信息??梢詫⑿畔⒋鎯?chǔ)在非易失性存儲(chǔ)器150中包含的一個(gè)或多個(gè)裝置上。這 些裝置可以包括例如,一個(gè)或多個(gè)存儲(chǔ)器裝置。
[0016] 易失性存儲(chǔ)器裝置可以是在從存儲(chǔ)器裝置移除供電時(shí)可丟失該存儲(chǔ)器裝置中存 儲(chǔ)的信息的存儲(chǔ)器裝置。非易失性存儲(chǔ)器裝置可以是在從存儲(chǔ)器裝置移除供電時(shí)可保留該 存儲(chǔ)器裝置中存儲(chǔ)的信息的存儲(chǔ)器裝置。存儲(chǔ)器裝置的示例包括動(dòng)態(tài)RAM (DRAM)裝置、閃 存裝置、靜態(tài)RAM (SRAM)裝置、零電容器RAM (ZRAM)裝置、雙晶體管RAM (TTRAM)裝置、只 讀存儲(chǔ)器(ROM)裝置、鐵電晶體管RAM (FeTRAM)裝置、磁阻RAM (MRAM)裝置、三維(3D)交 叉點(diǎn)存儲(chǔ)器裝置(例如,相變存儲(chǔ)器(PCM)裝置)、基于納米導(dǎo)線的裝置、電阻式RAM (RRAM) 裝置、串行電可擦寫可編程ROM (SEEPR0M)裝置、自旋轉(zhuǎn)移矩(STT)MRAM裝置和串行閃存裝 置。
[0017] 處理邏輯130可以包括用于解釋、執(zhí)行和/或以其他方式處理信息的邏輯。該信 息可以存儲(chǔ)在例如,易失性存儲(chǔ)器120和/或非易失性存儲(chǔ)器150中。該信息可以包括例 如,數(shù)據(jù)和/或計(jì)算機(jī)可執(zhí)行指令。
[0018] 處理邏輯130可以包括多種多樣化硬件。例如,該硬件可以包括一個(gè)或多個(gè)處理 器、微處理器、場(chǎng)可編程門陣列(FPGA)、專用指令集處理器(ASEP)、專用集成電路(ASIC)、 復(fù)雜可編程邏輯裝置(CPLD)、圖形處理單元(GPU)和/或可以例如解釋、執(zhí)行、操作和/或 以其他方式處理信息的其他類型的處理邏輯的某種組合。處理邏輯130可以包括單個(gè)核或 多個(gè)核。
[0019] 總線160、170、180和190可以是點(diǎn)到點(diǎn)總線。總線160、170、180和190可以包括 可用于在組件之間載送多種信號(hào)的電導(dǎo)體(例如,導(dǎo)線)。這些信號(hào)可以包括,例如,控制信 號(hào)和/或數(shù)據(jù)。例如,總線190可以是可包括可在非易失性存儲(chǔ)器接口(NMI)146與非易失 性存儲(chǔ)器150之間載送信號(hào)的多個(gè)導(dǎo)線的點(diǎn)到點(diǎn)總線。這些信號(hào)可以包括多種控制信號(hào)和 數(shù)據(jù)。這些信號(hào)可以由分開的導(dǎo)線來(lái)載送。例如,第一導(dǎo)線可以用于在匪I 146與非易失 性存儲(chǔ)器之間載送請(qǐng)求和數(shù)據(jù)信息。第二導(dǎo)線可以用于載送可用于獲取(例如,讀、接收)請(qǐng) 求和數(shù)據(jù)信息的選通信息。第三單線可以用于指示非易失性存儲(chǔ)器150是否已獲授權(quán)第一 和第二導(dǎo)線的所有權(quán),以便將信息從非易失性存儲(chǔ)器150傳遞到匪I 146等。
[0020] HC 140可以包括可使信息能夠在計(jì)算設(shè)備100中的多種組件之間傳遞的邏輯。這 些組件可以包括例如,易失性存儲(chǔ)器120、處理邏輯130和/或非易失性存儲(chǔ)器150。可以 通過(guò)總線160、170、180和190在組件之間傳遞信息,這些總線可以將這些組件與HC 140耦 合。
[0021] HC 140可以包括可使信息能夠在計(jì)算設(shè)備100中的多種組件之間傳遞的邏輯。這 些接口可使信息能夠在組件之間交換(例如,傳遞)。這些接口可以包括,例如易失性存儲(chǔ)器 接口(VMI) 142和匪I 146。VMI 142可以用于將處理邏輯130與易失性存儲(chǔ)器120接口。 匪I 146可以用于將處理邏輯130與非易失性存儲(chǔ)器150接口。
[0022] VMI 142可以包含可使信息能夠通過(guò)總線160和170在易失性存儲(chǔ)器120與處理 邏輯130之間通信(例如,傳遞)的邏輯。確切地來(lái)說(shuō),VMI 142可以包含可使信息能夠通過(guò) 總線160在VMI 142與易失性存儲(chǔ)器120之間通信的邏輯。而且,VMI 142可以包含可使信 息能夠通過(guò)總線170在處理邏輯130與VMI 142之間通信的邏輯。該信息可以包括,例如, 命令和/或數(shù)據(jù)。VMI 142中可包含的邏輯的示例可以包括狀態(tài)機(jī)、總線收發(fā)器、寄存器和 /或其他邏輯。
[0023] 匪I 146可以包含可使信息能夠通過(guò)總線180和190在非易失性存儲(chǔ)器150與處 理邏輯130之間通信的邏輯。確切地來(lái)說(shuō),匪I 146可以包含可用于通過(guò)總線180在匪I 146與處理邏輯130之間通信信息的邏輯。而且,匪I 146可以包含可用于通過(guò)總線190在 非易失性存儲(chǔ)器150與匪I 146之間通信信息的邏輯。匪I 146中可包括的匪I 146中可 包含的邏輯可以包括,例如狀態(tài)機(jī)、總線收發(fā)器、寄存器和/或其他邏輯。
[0024] 該信息可以包括,例如,請(qǐng)求和/或數(shù)據(jù)。這些請(qǐng)求可以包括命令信息(例如,讀命 令、寫命令)和/或地址信息(例如,要讀取的地址、要寫入的地址)。該信息可以使用事務(wù)來(lái) 通信。
[0025] 可以使用事務(wù)以通過(guò)總線在兩個(gè)實(shí)體之間通信信息。例如,可以使用事務(wù)通過(guò)總 線190在匪I 146與非易失性存儲(chǔ)器150之間通信信息。使用事務(wù)通信的信息可以包括例 如,請(qǐng)求、數(shù)據(jù)和/或響應(yīng)信息。
[0026] 事務(wù)可以是某種類型的。例如,事務(wù)可以是寫事務(wù)或讀事務(wù)。寫事務(wù)可以用于例 如將信息寫入存儲(chǔ)裝置,如寫入非易失性存儲(chǔ)器150。讀事務(wù)可以用于例如從存儲(chǔ)裝置讀取 信息,如從非易失性存儲(chǔ)器150讀取。
[0027] 事務(wù)可以包括多個(gè)階段。例如,事務(wù)可以包括請(qǐng)求階段、數(shù)據(jù)階段和/或響應(yīng)階 段。階段可以附帶有在該階段期間可在實(shí)體之間傳遞的某些類型的信息。例如,在請(qǐng)求階 段期間,可以在實(shí)體之間傳遞命令和/或地址信息。
[0028] 圖2圖示可與可通過(guò)如總線190的總線在如匪I 146與非易失性存儲(chǔ)器150的實(shí) 體之間傳遞的讀事務(wù)和寫事務(wù)關(guān)聯(lián)的示例階段。參考圖2,參考數(shù)字220包括(1)時(shí)間線和 (2)可以在讀事務(wù)期間傳遞的信息。參考數(shù)字260包括(1)時(shí)間線和(2)可以在可與寫事 務(wù)關(guān)聯(lián)的階段傳遞的信息。
[0029] 讀事務(wù)可以包括請(qǐng)求階段、數(shù)據(jù)階段和響應(yīng)階段。請(qǐng)求階段可以在時(shí)間230a處進(jìn) 行。請(qǐng)求階段可以包括通過(guò)總線在實(shí)體之間傳遞請(qǐng)求240a。請(qǐng)求240a可以包括例如,前導(dǎo) 碼、命令和/或地址。命令可以標(biāo)識(shí)要執(zhí)行的操作(在此示例中為讀操作)。地址可以標(biāo)識(shí) 要讀取的位置。
[0030] 可以使用前導(dǎo)碼來(lái)準(zhǔn)備獲取請(qǐng)求240a。準(zhǔn)備可以包括例如,使用前導(dǎo)碼來(lái)訓(xùn)練從 總線獲取請(qǐng)求240a。前導(dǎo)碼可以包括可以用于執(zhí)行訓(xùn)練的預(yù)定義位序列。
[0031] 例如,假定實(shí)體包括匪I