包括記憶電阻器的內存模塊的制作方法
【專利說明】
【背景技術】
[0001]當計算設備通電時,操作系統可以被啟動并且被用于管理該計算設備的組件,諸如該計算設備的隨機存取存儲器和存儲組件。所述操作系統可以從該計算設備的應用程序和/或組件接收用以讀或寫的命令和/或請求,并且將該命令和/或請求引至主內存和存儲組件。
【附圖說明】
[0002]在附圖中,相似的附圖標記表示相似的組件或方框。下面的詳細描述參考附圖,其中:
[0003]圖1圖示根據一示例的具有包括記憶電阻器的內存模塊、虛擬化模塊和應用程序的計算設備。
[0004]圖2圖示根據一示例管理去往包括記憶電阻器的內存模塊的通信和來自包括記憶電阻器的內存模塊的通信的虛擬化模塊。
[0005]圖3圖示根據一示例管理內存模塊和管理通信的虛擬化模塊。
[0006]圖4是圖示根據一示例的用于管理內存的方法的流程圖。
[0007]圖5是圖示根據另一示例的管理內存的方法的流程圖。
【具體實施方式】
[0008]一種計算設備包括具有記憶電阻器的內存模塊。對于本申請的目的來說,該內存模塊是該計算設備的硬件內存組件,該硬件內存組件包括用于接收和存儲數據和/或信息的記憶電阻器。記憶電阻器是一種非易失性隨機存取存儲器(NVRAM),其在通電(諸如電壓和/或電流)和掉電時保持其電阻狀態。在該內存模塊通電或者不通電的情況下,被加載到記憶電阻器上的信息、指令和/或數據保持在該記憶電阻器上。
[0009]響應于該計算設備通電,可以啟動虛擬化模塊。所述虛擬化模塊管理去往具有記憶電阻器的內存模塊的通信和來自具有記憶電阻器的內存模塊的通信。對于本申請的目的來說,該虛擬化模塊是由該計算設備的處理器、控制器和/或由該計算設備的基本輸入/輸出系統(B1S)啟動的虛擬機。該虛擬化模塊作為計算設備的應用程序和具有記憶電阻器的內存模塊之間的層操作,以管理應用程序和內存模塊之間的通信。在一個示例中,所述虛擬化模塊是由處理器和/或控制器執行的“I類管理程序”。
[0010]該應用程序可以是嘗試與計算設備的內存組件通信的計算設備的操作系統。該內存組件可以是計算設備的主內存(諸如隨機存取存儲器)和/或存儲組件(諸如硬盤驅動器)。在一種實施方式中,該內存組件可以是計算設備上包含的硬件組件。在另一種實施方式中,該內存組件是對操作系統來說被識別為主內存和/或存儲組件的虛擬化內存組件。
[0011]該虛擬化模塊對于從應用程序至內存組件的通信進行檢測。如果檢測到來自應用程序的通信,則虛擬化模塊攔截該通信并且將該通信引至具有記憶電阻器的內存模塊。對于本申請的目的來說,該通信包括用于加載和/或讀取數據的命令和/或請求。虛擬化模塊還接收來自具有記憶電阻器的內存模塊的通信并且將該通信引至應用程序。
[0012]通過使用虛擬化模塊作為應用程序和內存模塊之間的層,應用程序可以嘗試與內存組件通信,而不知道該通信正被引至包括記憶電阻器的內存模塊以及來自包括記憶電阻器的內存模塊。因此,具有記憶電阻器的內存模塊可以在不修改應用程序的體系結構和/或代碼的情況下作為計算設備的主內存和/或存儲組件操作。此外,具有記憶電阻器的內存模塊可以在通電或不通電的情況下保持所接收到的數據。進一步,通過使用虛擬化模塊,由于應用程序與包括記憶電阻器的內存模塊通信,該計算設備的固件和/或組件的驅動程序不被修改。
[0013]圖1圖示根據一示例的具有內存模塊140、虛擬化模塊110和應用程序150的計算設備100。計算設備100可以是臺式機、工作站、服務器和/或一體式系統。在另一實施方式中,計算設備100可以是筆記本、上網本、平板電腦、平板、智能電話、E(電子)閱讀器和/或具有包括記憶電阻器145的內存模塊140的任何其它計算設備。計算設備100包括內存模塊140、虛擬化模塊110、應用程序140和用于虛擬化模塊110和/或計算設備100的組件彼此通信的通信信道150。
[0014]內存模塊140包括用以接收和存儲數據的記憶電阻器(憶阻器)145。該數據可以包括能夠被加載和/或讀取到記憶電阻器145上的文件、指令、命令和/或其它類型的信息。對于本申請的目的來說,記憶電阻器145是一種非易失性隨機存取存儲器(NVRAM),其在通電(諸如電壓和/或電流)和掉電時保持其電阻狀態。因此,在內存模塊140通電或者不通電的情況下,被加載到記憶電阻器145上的信息和/或數據可以保持在記憶電阻器145上。在一種實施方式中,內存模塊140是包括記憶電阻器145在內的平面內存組件。
[0015]內存模塊140由計算設備100的虛擬化模塊110管理。對于本申請的目的來說,虛擬化模塊110是由計算設備100的處理器、控制器和/或由計算設備100的基本輸入/輸出系統(B1S)啟動的虛擬機。虛擬化模塊110作為計算設備100的應用程序150和內存模塊140之間的層操作,并且管理應用程序150和內存模塊140之間的通信。在一種實施方式中,虛擬化模塊110是響應于計算設備100通電而在處理器和/或控制器上執行的“I類管理程序”。
[0016]應用程序150可以是與計算設備100的內存組件通信的計算設備的操作系統。在另一實施方式中,應用程序150可以是由操作系統啟動的應用程序,或者應用程序150可以是計算設備100的固件和/或B1S。對于本申請的目的來說,內存組件包括主內存(諸如隨機存取存儲器)和/或非易失性存儲組件(諸如計算設備100的硬盤驅動器)。在一種實施方式中,內存組件是包括主內存和/或存儲組件的硬件內存組件。在另一實施方式中,內存組件是被識別為包括虛擬主內存和/或虛擬存儲組件的虛擬內存組件。
[0017]當管理應用程序150和內存模塊140之間的通信時,虛擬化模塊110首先對于應用程序150發出至計算設備100的內存組件的通信進行檢測。該通信包括針對內存組件的讀取或寫入數據請求和/或用于管理內存組件上的數據的命令。如果虛擬化模塊110檢測到來自應用程序150的通信,則虛擬化模塊110攔截該通信并且將該通信引至內存模塊140。
[0018]在一種實施方式中,虛擬化模塊110攔截對于主內存(諸如隨機存取存儲器)的通信,并且將該通信引至內存模塊140。對于存儲組件的通信不被虛擬化模塊110攔截并且被存儲組件接收。在另一實施方式中,虛擬化模塊110攔截對于存儲組件(諸如硬盤驅動器)的通信,并且將該通信引至內存模塊140。對于主內存的通信不被攔截并且被傳遞給主內存。在其它一些實施方式中,虛擬化模塊110攔截對于主內存和存儲組件兩者的通信,并且將該通信引至內存模塊140。
[0019]通過將該通信引至內存模塊140,虛擬化模塊110利用內存模塊140作為計算設備100的主內存和/或存儲組件。包括記憶電阻器145的內存模塊140還可以在返回數據時提供通信響應。當內存模塊140提供該通信時,虛擬化模塊110接收來自內存模塊140的通信并且將該通信引至應用程序150。
[0020]如果內存模塊140被用作主內存,則虛擬化模塊110將該通信作為主內存通信提供給應用程序150。在另一實施方式中,如果內存模塊140被用作存儲組件,則虛擬化模塊110將該通信作為存儲組件通信提供給應用程序150。在其它一些實施方式中,如果