數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及pcm橋的制作方法
【專利摘要】本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及PCM橋,該系統(tǒng)包括:處理器、內(nèi)存控制器、相變存儲器PCM橋以及相變存儲器PCM,處理器通過內(nèi)存控制器與PCM橋相連,PCM橋與PCM相連,PCM中存儲有非易失性的小數(shù)據(jù),PCM橋用于通過內(nèi)存控制器接收來自CPU的用于讀或?qū)懶?shù)據(jù)的第一操作信號,將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或往PCM中寫入小數(shù)據(jù)。本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及PCM橋,利用PCM讀或?qū)懣砂次蛔x或?qū)?,提升了操作效率,增加了系統(tǒng)壽命,加速數(shù)據(jù)訪問的能力。
【專利說明】數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及PCM橋
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)存儲技術(shù),尤其涉及一種數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及PCM 橋。
【背景技術(shù)】
[0002]在傳統(tǒng)NAND閃存NAND Flash構(gòu)成的存儲架構(gòu)中,在存儲系統(tǒng)中數(shù)據(jù)寫入NANDFlash時(shí),NAND Flash需要經(jīng)過讀取到動態(tài)隨機(jī)存取存儲器(Dynamic RandomAccessMemory,以下簡稱:DRAM),在DRAM中修改,然后寫回NAND Flash中的過程;在寫入過程中,兀數(shù)據(jù)Metadata與用戶數(shù)據(jù)Userdata —起寫入到NAND Flash中,兀數(shù)據(jù)Metadata通常存放在NANDMetadata block中,由于兀數(shù)據(jù)Metadata尺寸一般小于基于NAND Flash存儲的文件系統(tǒng)最小塊的大小并且更新頻繁,一方面造成了 NAND Flash的額外管理開銷,另一方面也加重了 NAND Flash的壽命損耗;另外對NAND Flash本身操作也需要先擦除Erase然后才能編程。
[0003]在實(shí)現(xiàn)本發(fā)明實(shí)施例的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中,NAND Flash寫入流程復(fù)雜,不支持直接寫入,需要先讀取到DRAM中修改;元數(shù)據(jù)Matadata頻繁修改會加速損耗NAND Flash壽命,并且元數(shù)據(jù)Matadata多數(shù)是小數(shù)據(jù),小于基于NAND Flash的文件系統(tǒng)最小塊設(shè)備管理尺寸,造成文件系統(tǒng)負(fù)載的浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]本實(shí)施例提供了一種數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及PCM橋,用于解決現(xiàn)有技術(shù)存在著的讀寫NAND Flash造成文件系統(tǒng)負(fù)載浪費(fèi)的問題。
[0005]第一方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲系統(tǒng),包括:
[0006]處理器、內(nèi)存控制器、相變存儲器PCM橋以及相變存儲器PCM ;
[0007]所述處理器通過所述內(nèi)存控制器與所述PCM橋相連,所述PCM橋與所述PCM相連;
[0008]所述PCM中存儲有非易失性的小數(shù)據(jù);
[0009]所述PCM橋用于通過所述內(nèi)存控制器接收來自所述CPU的用于讀或?qū)懶?shù)據(jù)的第一操作信號,將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或往所述PCM中寫入小數(shù)據(jù)。
[0010]結(jié)合第一方面,在第一方面的第一種可能的實(shí)施方式中,所述PCM具體用于存儲經(jīng)常讀或?qū)懙姆且资孕?shù)據(jù)。
[0011 ] 結(jié)合第一方面或第一方面的第一種可能的實(shí)施方式,在第一方面的第二種可能的實(shí)施方式中,所述第一操作信號包括讀信號,所述將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀的第二操作信號以通過所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀包括:
[0012]將所述讀信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀的讀信號以通過所述讀信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀。
[0013]結(jié)合第一方面或第一方面的第一種可能的實(shí)施方式或第一方面的第二種可能的實(shí)施方式,在第一方面的第三種可能的實(shí)施方式中,所述PCM橋還用于:
[0014]通過所述內(nèi)存控制器接收來自所述CPU的用于對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整的調(diào)整信號,所述對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整包括:將所述PCM存儲的使用頻率較低的小數(shù)據(jù)從所述PCM存儲器移出,或者將使用頻率較高的小數(shù)據(jù)移動到所述PCM存儲器;
[0015]將所述調(diào)整信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙恼{(diào)整信號以通過所述調(diào)整信號對所述PCM中的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整。
[0016]結(jié)合第一方面或第一方面的第一種可能的實(shí)施方式或第一方面的第二種可能的實(shí)施方式或第一方面的第三種可能的實(shí)施方式,還包括:
[0017]內(nèi)存,通過所述內(nèi)存控制器與所述處理器相連,用于存儲CPU執(zhí)行程序時(shí)所需的數(shù)據(jù)。
[0018]外設(shè)存儲器,用于通過外設(shè)接口與所述CPU相連;
[0019]所述外設(shè)存儲器存儲有非易失性的大數(shù)據(jù),所述CPU還用于通過所述外設(shè)接口對所述外設(shè)存儲器進(jìn)行讀或?qū)懖僮鳎渲?,所述大?shù)據(jù)為比小數(shù)據(jù)大的數(shù)據(jù)。
[0020]結(jié)合第一方面或第一方面的第一種可能的實(shí)施方式或第一方面的第二種可能的實(shí)施方式或第一方面的第三種可能的實(shí)施方式,所述小數(shù)據(jù)為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種。
[0021]結(jié)合第一方面及第一方面的所有實(shí)施方式,在另一實(shí)施例中,所述小數(shù)據(jù)為大小小于通用flash操作時(shí)的塊操作數(shù)據(jù)。
[0022]結(jié)合第一方面及第一方面的所有實(shí)施方式,在另一實(shí)施例中,所述小數(shù)據(jù)字節(jié)大小小于或等于512字節(jié)。
[0023]第二方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲方法,包括:
[0024]通過與所述PCM橋相連的內(nèi)存控制器接收來自與所述內(nèi)存控制器相連的CPU的用于對與所述PCM橋相連的相變存儲器PCM中存儲的非易失性的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘枺?br>
[0025]將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或往所述PCM中寫入小數(shù)據(jù)。
[0026]在第二方面的第一種實(shí)施方式中,所述小數(shù)據(jù)為被經(jīng)常讀或?qū)懙男?shù)據(jù)。
[0027]結(jié)合第二方面或第二方面的第一種實(shí)施方式,在第二方面的第二種實(shí)施方式中,所述第一操作信號包括讀信號,所述將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀的第二操作信號以通過所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀包括:
[0028]將所述讀信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀的讀信號以通過所述讀信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀。
[0029]結(jié)合第二方面或第二方面的第一種實(shí)施方式或第二方面的第二種實(shí)施方式,在第二方面的第三種實(shí)施方式中,還包括:
[0030]通過所述內(nèi)存控制器接收來自所述CPU的用于對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整的調(diào)整信號,所述對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整包括:將所述PCM存儲的使用頻率較低的小數(shù)據(jù)從所述PCM存儲器移出,或者將使用頻率較高的小數(shù)據(jù)移動到所述PCM存儲器;[0031]將所述調(diào)整信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙恼{(diào)整信號以通過所述調(diào)整信號對所述PCM中的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整。
[0032]結(jié)合第二方面或第二方面的第一種實(shí)施方式或第二方面的第二種實(shí)施方式或第二方面的第三種實(shí)施方式,在第二方面的第四種實(shí)施方式中,還包括:
[0033]通過所述內(nèi)存控制器與處理器相連的內(nèi)存存儲CPU運(yùn)行所需的數(shù)據(jù),以供所述(PU讀或?qū)憟?zhí)行程序所需的數(shù)據(jù);
[0034]外設(shè)存儲器通過外設(shè)接口與所述CPU相連;
[0035]所述外設(shè)存儲器存儲有非易失性的大數(shù)據(jù),所述CPU還用于通過所述外設(shè)接口對所述外設(shè)存儲器進(jìn)行讀或?qū)懖僮鳌?br>
[0036]結(jié)合第二方面或第二方面的第一種實(shí)施方式或第二方面的第二種實(shí)施方式或第二方面的第三種實(shí)施方式或第二方面的第四種實(shí)施方式,所述小數(shù)據(jù)為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種;或者,
[0037]所述小數(shù)據(jù)為小于通用flash操作時(shí)的塊操作數(shù)據(jù);或者,
[0038]所述小數(shù)據(jù)大小為小于或等于512字節(jié)。
[0039]第三方面,本發(fā)明實(shí)施例提供一種PCM橋,包括:
[0040]接收單元,用于通過與所述PCM橋相連的內(nèi)存控制器接收來自與所述內(nèi)存控制器相連的CPU的用于對與所述PCM橋相連的相變存儲器PCM中存儲的非易失性的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘枺?br>
[0041]轉(zhuǎn)化單元,用于將所述接收單元接收的所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘枺?br>
[0042]讀或?qū)憜卧?,用于根?jù)所述轉(zhuǎn)化單元轉(zhuǎn)化的所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或往所述PCM中寫入小數(shù)據(jù)。
[0043]在第三方面的第一種實(shí)施方式中,所述小數(shù)據(jù)為被經(jīng)常讀或?qū)懙男?shù)據(jù)。
[0044]結(jié)合第三方面或第三方面的第一種實(shí)施方式,在第三方面的第二種實(shí)施方式中,所述第一操作信號包括讀信號,所述將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀的第二操作信號以通過所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀包括:
[0045]將所述讀信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀的讀信號以通過所述讀信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀。
[0046]結(jié)合第三方面或第三方面的第一種實(shí)施方式或第三方面的第二種實(shí)施方式,所述小數(shù)據(jù)為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種;或者,
[0047]所述小數(shù)據(jù)為小于通用flash操作時(shí)的塊操作數(shù)據(jù);或者
[0048]所述小數(shù)據(jù)字節(jié)大小為小于等于512字節(jié)。
[0049]本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及PCM橋,處理器通過內(nèi)存控制器與PCM橋相連,PCM橋與PCM相連,PCM中存儲有非易失性的小數(shù)據(jù),PCM橋用于通過內(nèi)存控制器接收來自CPU的用于對PCM存儲的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘?,將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行物理讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)?。?shí)現(xiàn)了利用PCM讀或?qū)懣砂次蛔x或?qū)懙奶匦?,提升了操作效率,增加了系統(tǒng)壽命,加速數(shù)據(jù)訪問的能力。【專利附圖】
【附圖說明】
[0050]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0051]圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖;
[0052]圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖;
[0053]圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例三的結(jié)構(gòu)示意圖;
[0054]圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例四的軟件構(gòu)成結(jié)構(gòu)示意圖;
[0055]圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲方法實(shí)施例一的流程示意圖;
[0056]圖6為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲方法的數(shù)據(jù)寫入流程示意圖;
[0057]圖7為本發(fā)明實(shí)施例提供的PCM橋?qū)嵤├坏慕Y(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0058]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0059]在傳統(tǒng)基于DRAM&Flash/HDD的存儲系統(tǒng)中,存儲器Memory是高速易失性的,存儲器Storage是相對低速非易失的,二者有不可跨越的鴻溝。PCM擁有接近DRAM的讀或?qū)懷舆t和優(yōu)秀的劃等級Scale能力,預(yù)示其容量擴(kuò)展的潛力,并且還具有字節(jié)Byte可變性和非易失性,模糊了存儲器Memory和存儲器Storage的界限。在閃存Flash工藝面臨物理極限,PCM作為最有可能取代閃存Flash的技術(shù),設(shè)計(jì)基于PCM的存儲方案,可以最大化發(fā)揮器件的性能。
[0060]下面結(jié)合附圖詳細(xì)說明本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)存儲方法及PCM橋。
[0061]圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖,如圖1所示,數(shù)據(jù)存儲系統(tǒng)包括處理器11、內(nèi)存控制器12、相變存儲器PCM橋13以及相變存儲器PCM14,其中,
[0062]處理器11通過內(nèi)存控制器12與PCM橋13相連,PCM橋13與PCM14相連,PCM14中存儲有非易失性的小數(shù)據(jù)(非易失性是指下電后數(shù)據(jù)不會消失,仍然保存在存儲器中),PCM橋13用于通過內(nèi)存控制器12接收來自CPU的用于讀或?qū)懶?shù)據(jù)的第一操作信號,將第一操作信號轉(zhuǎn)化成能對PCM14進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM14中的小數(shù)據(jù)進(jìn)行讀或往PCM14中寫入小數(shù)據(jù)。第一操作信號包括讀或?qū)懶盘?,將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)懓?將讀或?qū)懶盘栟D(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙淖x或?qū)懶盘栆酝ㄟ^讀或?qū)懶盘枌CM中的小數(shù)據(jù)進(jìn)行讀或?qū)憽@纾珻PU下發(fā)邏輯寫的第一操作信號,PCM橋通過內(nèi)存控制器接收此第一操作信號,然后將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行物理讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行寫操作。讀操作與此類似,此處不做贅述。
[0063]其中,小數(shù)據(jù)為被經(jīng)常讀或?qū)懙男?shù)據(jù),可根據(jù)不同的情況而定,本實(shí)施例對此不做限制。
[0064]其中,PCM橋還用于通過內(nèi)存控制器接收來自CPU的用于對PCM存儲的小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整的調(diào)整信號,對PCM存儲的小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整包括:將PCM存儲的使用頻率較低的小數(shù)據(jù)從PCM存儲器移出,或者將使用頻率較高的小數(shù)據(jù)移動到PCM存儲器;將調(diào)整信號轉(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙恼{(diào)整信號以通過調(diào)整信號對PCM中的小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整。
[0065]本實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng),處理器通過內(nèi)存控制器與PCM橋相連,PCM橋與PCM相連,PCM中存儲有非易失性的小數(shù)據(jù),PCM橋用于通過內(nèi)存控制器接收來自CPU的用于對PCM存儲的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘枺瑢⒌谝徊僮餍盘栟D(zhuǎn)化成能對PCM進(jìn)行物理讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)?。利用PCM讀或?qū)懣砂次蛔x或?qū)懀枰x或?qū)懙臅r(shí)候,只需要幾位即可,提升了操作效率。同時(shí),由于每次并不需要讀或?qū)懸粋€(gè)塊,從而可以增加壽命,因此實(shí)現(xiàn)提升了操作效率,增加了系統(tǒng)壽命,加速數(shù)據(jù)訪問的能力。
[0066]圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖,如圖2所示,在圖1所示實(shí)施例的基礎(chǔ)上,數(shù)據(jù)存儲系統(tǒng)還包括內(nèi)存15,內(nèi)存15通過內(nèi)存控制器12與處理器11相連,內(nèi)存15用于供CPU讀或?qū)憟?zhí)行程序所需的數(shù)據(jù)。
[0067]作為一種可實(shí)施的方式,數(shù)據(jù)存儲系統(tǒng)還可包括外設(shè)存儲器,外設(shè)存儲器用于通過外設(shè)接口與CPU相連,外設(shè)存儲器存儲有非易失性的大數(shù)據(jù)(比小數(shù)據(jù)大的數(shù)據(jù),如大小超過某個(gè)閾值的數(shù)據(jù),這里的“閾值”大小并不限定,本領(lǐng)域技術(shù)人員可以結(jié)合實(shí)際情況進(jìn)行調(diào)整,例如,可以為512字節(jié),或者更大的字節(jié)數(shù)),CPU還用于通過外設(shè)接口對外設(shè)存儲器進(jìn)行讀或?qū)懖僮?。相比較上述實(shí)施例,非易失性的大數(shù)據(jù)可以存儲在外設(shè)存儲器中,進(jìn)行讀或?qū)懖僮鳌?br>
[0068]上述實(shí)施例中小數(shù)據(jù)為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種,小數(shù)據(jù)為小于通用flash操作時(shí)的塊操作數(shù)據(jù),小數(shù)據(jù)大小為小于等于512字節(jié)。
[0069]下面采用一個(gè)具體的實(shí)施例,對上述系統(tǒng)實(shí)施例的技術(shù)方案進(jìn)行詳細(xì)說明。
[0070]圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例三的結(jié)構(gòu)示意圖,如圖3所示,本實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)包括主機(jī)系統(tǒng)和外設(shè)存儲器,主機(jī)系統(tǒng)的主機(jī)總線適配器與外設(shè)存儲器的主機(jī)適配器之間通過光纖通道協(xié)議(Fibre Channel Protocol,簡稱:FC)、以太網(wǎng)等通信連接。主機(jī)系統(tǒng)包括第一中央處理器CPU,主機(jī)系統(tǒng)中有一個(gè)服務(wù)器機(jī)框,里面有一塊底板,底板上安裝有多核CPU、內(nèi)存、PCM橋等芯片,用于對其他擴(kuò)展卡進(jìn)行控制,實(shí)現(xiàn)主機(jī)的功能;以及連接在第一中央處理器CPU上的主機(jī)存儲模塊,本發(fā)明實(shí)施例中主機(jī)存儲模塊包括有數(shù)個(gè)第一相變存儲器PCM和DRAM,通過內(nèi)存總線與第一中央處理器CPU中的第一內(nèi)存控制器相連,由于PCM與CPU中的第一內(nèi)存控制器相連所以其響應(yīng)及處理速度快,但是其內(nèi)存不是特別大,所以出于內(nèi)存需要,本發(fā)明實(shí)施例中主機(jī)存儲模塊還可包括數(shù)個(gè)相變存儲器雙列直插式存儲模塊PCM DIMM,通過輸入輸出轉(zhuǎn)發(fā)器IOH與第一中央處理器(PU連接,相變存儲器雙列直插式存儲模塊PCM DIMM相比于PCM其響應(yīng)及處理速度慢,但是其有較大的內(nèi)存。因此此處主機(jī)存儲模塊可以針對不同需求設(shè)置包括PCM或/和相變存儲器雙列直插式存儲模塊PCM DIMM。
[0071]外設(shè)存儲器中至少包括外設(shè)硬盤。
[0072]上述提到的數(shù)個(gè)相變存儲器雙列直插式存儲模塊PCM DIMM以外設(shè)組件互連標(biāo)準(zhǔn)快速通道PCIE擴(kuò)展卡的形式,連接在輸入輸出轉(zhuǎn)發(fā)器IOH上,以PCIE擴(kuò)展卡形式,連接在IO Hub上面的PCM DIMM條,可以取代NAND flash,提供更快的讀或?qū)懶阅芎透L的使用壽命。PCM內(nèi)存顆粒包括PCM控制器,PCM控制器也是一個(gè)芯片,如FPGA、ASIC等,通過對這個(gè)芯片進(jìn)行編程來完成接收主機(jī)的讀或?qū)懻埱?,并對PCM芯片進(jìn)行各種訪問及控制;PCM控制器對應(yīng)的芯片可以與各個(gè)PCM都設(shè)置在一個(gè)PCB板上,通過PCB走線相連,最后呈現(xiàn)的是一個(gè)雙列直插式存儲模塊DIMM條形式,可以通過內(nèi)存總線Memory bus直接訪問。本實(shí)施例中也可以將相變存儲器雙列直插式存儲模塊PCM DIMM條和PCM控制器做成一個(gè)PCIE SSD卡,通過PCIE接口與底板相連,作為主機(jī)的數(shù)據(jù)存儲使用,通過PCIE訪問。
[0073]外設(shè)存儲器還包括第二中央處理器CPU,如圖3所示,外設(shè)存儲器中有一個(gè)服務(wù)器機(jī)框,里面有一塊底板,底板上安裝有多核CPU、內(nèi)存、PCM橋等芯片,用于對其他擴(kuò)展卡進(jìn)行控制。第二中央處理器CPU通過輸入輸出轉(zhuǎn)發(fā)器IOH與外設(shè)硬盤連接。
[0074]外設(shè)存儲器還包括多個(gè)第二相變存儲器PCM及DRAM,PCM與DRAM通過內(nèi)存總線與第二中央處理器CPU中的第二內(nèi)存控制器連接,PCM顆粒和控制器連接在內(nèi)存總線Memorybus上,由于PCM掉電數(shù)據(jù)不丟失,可以作為小數(shù)據(jù)存儲,以內(nèi)存的形式訪問,作為服務(wù)器code和元數(shù)據(jù)Metadata存儲。外設(shè)存儲器中的主機(jī)適配器經(jīng)PCIE通過IO Hub中轉(zhuǎn),到PCIE/SAS/SATA接口 NAND SSD及SAS/SATA接口 HDD。外設(shè)存儲器主機(jī)通過Memory控制器讀或?qū)慞CM/DRAM中的小數(shù)據(jù),通過PCIE卡,讀取PCM中的數(shù)據(jù)。
[0075]本實(shí)施例中外設(shè)硬盤包括NAND Flash和/或硬盤驅(qū)動器HDD。
[0076]本發(fā)明實(shí)施例對數(shù)據(jù)存儲流程進(jìn)行了改進(jìn),即區(qū)分大數(shù)據(jù)和小數(shù)據(jù)存儲的架構(gòu)和通道,基于PCM存儲器讀或?qū)懣砂次蛔x或?qū)懙奶攸c(diǎn),對小數(shù)據(jù)存儲和讀或?qū)戇M(jìn)行了優(yōu)化,實(shí)現(xiàn)提升了操作效率,增加了系統(tǒng)壽命,加速數(shù)據(jù)訪問的能力。
[0077]引入PCM作為存儲介質(zhì)后,需要針對PCM字節(jié)可變的特點(diǎn),不同于塊設(shè)備訪問的文件系統(tǒng),設(shè)計(jì)基于字節(jié)訪問的存儲軟件系統(tǒng)。圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲系統(tǒng)實(shí)施例四的軟件構(gòu)成結(jié)構(gòu)示意圖,如圖4所示,在字節(jié)訪問的傳統(tǒng)文件系統(tǒng)中,包含一個(gè)虛擬存儲層,虛擬存儲層有64bit (或更大)的地址空間或者64bit (或更大)的進(jìn)行讀或?qū)懞椭匦路峙涞牡刂房臻g,可進(jìn)行冷熱數(shù)據(jù)層的功能的操作。在虛擬存儲層之下有虛擬PCM存儲層、虛擬Flash存儲層、虛擬HDD存儲層,虛擬PCM存儲層實(shí)現(xiàn)地址空間重新映射,原子級寫操作,原子級寫操作基于CPU的高速緩沖存儲器(Cache Memory,以下簡稱:Cache)大小,做極細(xì)的顆粒度劃分,可以以字節(jié)Byte為單位進(jìn)行讀取和寫入,日志功能和磨損均衡算法,PCM卡上面有多個(gè)PCM顆粒,由PCM控制器控制。
[0078]本發(fā)明實(shí)施例采用了 3級加速的數(shù)據(jù)訪問加速方案,解決了目前業(yè)界針對小數(shù)據(jù)訪問性能降級的難點(diǎn)。
[0079]第一級:中央處理器CPU通過內(nèi)存總線Memory bus連接PCM。PCM中存儲小數(shù)據(jù)和熱點(diǎn)數(shù)據(jù)(Small&Hot data),例如元數(shù)據(jù)Meta data、日志log、小用戶數(shù)據(jù)(small userdata)(利用了 PCM按字節(jié)訪問的形式);[0080]第二級:NAND Flash存放熱點(diǎn)數(shù)據(jù)和大數(shù)據(jù)(Hot&large data),大數(shù)據(jù)熱點(diǎn)遷移加速系統(tǒng)存?。?br>
[0081]第三級:外設(shè)存儲器External Storage中,PCM取代Nor Flash,存放碼Code,數(shù)據(jù)基(Data Base (conf ig data))
[0082]圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲方法實(shí)施例一的流程示意圖,該方法應(yīng)用于相變存儲器PCM橋,如圖5所示,該方法可以包括:
[0083]S501、通過與PCM橋相連的內(nèi)存控制器接收來自與內(nèi)存控制器相連的CPU的用于對與PCM橋相連的相變存儲器PCM中存儲的非易失性的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘枴?br>
[0084]S502、將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行物理讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或往PCM中寫入小數(shù)據(jù)。
[0085]其中,小數(shù)據(jù)為被經(jīng)常讀或?qū)懙男?shù)據(jù),可根據(jù)不同的情況而定,本實(shí)施例對此不做限制。第一操作信號包括讀或?qū)懶盘?,將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)懓?將讀或?qū)懶盘栟D(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙淖x或?qū)懶盘栆酝ㄟ^讀或?qū)懶盘枌CM中的小數(shù)據(jù)進(jìn)行讀或?qū)?。例如,寫操作時(shí),CPU下發(fā)邏輯寫的第一操作信號,PCM橋通過內(nèi)存控制器接收此第一操作信號,然后將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行物理讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行寫操作。讀操作與此類似,此處不做贅述。
[0086]在上述實(shí)施例的基礎(chǔ)上,數(shù)據(jù)存儲方法還可以包括:通過內(nèi)存控制器接收來自CPU的用于對PCM存儲的小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整的調(diào)整信號,對PCM存儲的小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整具體包括:將PCM存儲的使用頻率較低的小數(shù)據(jù)從PCM存儲器移出,或者將使用頻率較高的小數(shù)據(jù)移動到PCM存儲器。將調(diào)整信號轉(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙恼{(diào)整信號以通過調(diào)整信號對PCM中的小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整。
[0087]數(shù)據(jù)存儲方法還可以包括:通過內(nèi)存控制器與處理器相連的內(nèi)存存儲CPU運(yùn)行所需的數(shù)據(jù),以供CPU讀或?qū)憟?zhí)行程序所需的數(shù)據(jù),外設(shè)存儲器通過外設(shè)接口與CPU相連,夕卜設(shè)存儲器存儲有非易失性的大數(shù)據(jù),CPU還用于通過外設(shè)接口對外設(shè)存儲器進(jìn)行讀或?qū)懖僮鳌?br>
[0088]上述實(shí)施例中小數(shù)據(jù)為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種,小數(shù)據(jù)為小于通用flash操作時(shí)的塊操作數(shù)據(jù),小數(shù)據(jù)大小為小于等于512字節(jié)。
[0089]本實(shí)施例提供的數(shù)據(jù)存儲方法,通過與PCM橋相連的內(nèi)存控制器接收來自與內(nèi)存控制器相連的CPU的用于對與PCM橋相連的相變存儲器PCM中存儲的非易失性的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘?。將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行物理讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)憽@肞CM讀或?qū)懣砂次蛔x或?qū)?,需要讀或?qū)懙臅r(shí)候,只需要幾位即可,提升了操作效率。同時(shí),由于每次并不需要讀或?qū)懸粋€(gè)塊,從而可以增加壽命,因此實(shí)現(xiàn)提升了操作效率,增加了系統(tǒng)壽命,加速數(shù)據(jù)訪問的能力。
[0090]下面采用一個(gè)具體的實(shí)施例,對上述方法實(shí)施例的技術(shù)方案進(jìn)行詳細(xì)說明。
[0091]本發(fā)明實(shí)施例中具體的數(shù)據(jù)存儲方法,可以分為兩種情況,一是若判斷獲知待存儲數(shù)據(jù)的數(shù)據(jù)類型為系統(tǒng)文件類型,則直接寫入主機(jī)存儲模塊PCM中;此處系統(tǒng)文件類型包括用戶數(shù)據(jù)metadata類型和/或日志log類型,本發(fā)明實(shí)施例中即文件系統(tǒng)元數(shù)據(jù)Metadata和日志log,全部作為小數(shù)據(jù)寫入PCM中;
[0092]二是若判斷獲知待存儲數(shù)據(jù)的數(shù)據(jù)類型為用戶文件類型,且待存儲數(shù)據(jù)的數(shù)據(jù)大小不超過預(yù)設(shè)的數(shù)據(jù)顆粒度,預(yù)設(shè)的數(shù)據(jù)顆粒度為小于等于512字節(jié)之間,本發(fā)明實(shí)施例中數(shù)據(jù)顆粒度如果不超過預(yù)設(shè)的數(shù)據(jù)顆粒度大小,則寫入主機(jī)存儲模塊,本發(fā)明實(shí)施例中即用戶數(shù)據(jù)user data需要針對數(shù)據(jù)大小進(jìn)行判斷,如果是小數(shù)據(jù)(數(shù)據(jù)尺寸大小根據(jù)CPUcache大小決定),則寫入PCM中;
[0093]若判斷獲知待存儲數(shù)據(jù)的數(shù)據(jù)類型為用戶文件類型,且待存儲數(shù)據(jù)的數(shù)據(jù)大小超過數(shù)據(jù)顆粒度,則寫入外設(shè)硬盤。本發(fā)明實(shí)施例中即用戶數(shù)據(jù)userdata需要針對數(shù)據(jù)大小進(jìn)行判斷,如果是大數(shù)據(jù)(數(shù)據(jù)尺寸大小根據(jù)CPUcache大小決定),則寫入外設(shè)硬盤NANDFlash/HDD 中。
[0094]若判斷獲知待存儲數(shù)據(jù)的數(shù)據(jù)類型為用戶文件類型,且待存儲數(shù)據(jù)的數(shù)據(jù)大小不超過預(yù)設(shè)的數(shù)據(jù)顆粒度,則寫入主機(jī)存儲模塊,本發(fā)明實(shí)施例中即用戶數(shù)據(jù)user data需要針對數(shù)據(jù)大小進(jìn)行判斷,如果是小數(shù)據(jù)(數(shù)據(jù)尺寸大小根據(jù)CPU cache大小決定),則寫入PCM中,此種情況下包括:
[0095]若判斷獲知待存儲數(shù)據(jù)的數(shù)據(jù)類型為用戶文件類型,且待存儲數(shù)據(jù)的數(shù)據(jù)大小不超過預(yù)設(shè)的數(shù)據(jù)顆粒度,則查找待存儲數(shù)據(jù)的原數(shù)據(jù),若在主機(jī)存儲模塊中查找到原數(shù)據(jù),則直接在原數(shù)據(jù)的存儲位置對原數(shù)據(jù)進(jìn)行更新,本發(fā)明實(shí)施例中即用戶數(shù)據(jù)user data如果是小數(shù)據(jù),則需查找此小數(shù)據(jù)的原數(shù)據(jù),若在主機(jī)存儲模塊PCM中查找到原數(shù)據(jù),則直接在原數(shù)據(jù)的存儲位置對原數(shù)據(jù)進(jìn)行更新;若在主機(jī)存儲模塊中沒有查找到原數(shù)據(jù),則在外設(shè)硬盤中查找。
[0096]若在外設(shè)硬盤中查找到原數(shù)據(jù),則將原數(shù)據(jù)讀取到主機(jī)存儲模塊中,并在主機(jī)存儲模塊中對原數(shù)據(jù)進(jìn)行更新,更新之后,還包括:將主機(jī)存儲模塊中存儲的原數(shù)據(jù)標(biāo)記為臟數(shù)據(jù),等待空閑時(shí)擦除,本發(fā)明實(shí)施例中即若在NAND Flash中查找到原數(shù)據(jù),則認(rèn)為是舊數(shù)據(jù)更新,需要將舊數(shù)據(jù)讀取到PCM中,然后標(biāo)記NAND Flash中的數(shù)據(jù)位臟數(shù)據(jù),在NANDFlash空閑時(shí)候擦除,同時(shí)在此搬移過程中,實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)的遷移,如果下一次對此數(shù)據(jù)進(jìn)行更新,可以直接在PCM中命中。若查找不到原數(shù)據(jù),則直接寫入主機(jī)存儲模塊,本發(fā)明實(shí)施例中即若在NAND Flash中查找不到原數(shù)據(jù),則直接寫入PCM中。
[0097]下面結(jié)合圖6詳細(xì)說明數(shù)據(jù)寫入流程,圖6為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲方法的數(shù)據(jù)寫入流程示意圖,如圖6所示,例如預(yù)先將數(shù)據(jù)設(shè)置為64字節(jié),數(shù)據(jù)寫入流程包括以下步驟:
[0098]步驟101、主機(jī)CPU下發(fā)寫入數(shù)據(jù)指令;
[0099]步驟102、主機(jī)CPU根據(jù)基于字節(jié)可變的文件系統(tǒng)判斷數(shù)據(jù)類型,即判斷要寫入的數(shù)據(jù)是文件系統(tǒng)的元數(shù)據(jù)metadata, log,還是用戶數(shù)據(jù)user data,由此決定后面寫入數(shù)據(jù)的流程;
[0100]步驟103、若是元數(shù)據(jù)metadata和log,則會直接寫入第一 PCM中;
[0101]步驟104、若是用戶數(shù)據(jù)User data,則需要進(jìn)一步判斷數(shù)據(jù)的大小尺寸;
[0102]步驟105、判斷數(shù)據(jù)是否大于64Byte,判斷尺寸由文件系統(tǒng)根據(jù)情況設(shè)定,假設(shè)文件系統(tǒng)顆粒度設(shè)置為64Byte ;[0103]步驟106、如果大于64Byte,則認(rèn)為是大數(shù)據(jù),主機(jī)CPU將寫數(shù)據(jù)請求發(fā)送給外設(shè)存儲器CPU,外設(shè)存儲器CPU將數(shù)據(jù)寫入NAND Flash/HDD中;
[0104]步驟107、如果是小于64Byte,則認(rèn)為是小數(shù)據(jù),但是在寫入前,為了保證數(shù)據(jù)一致性,必須對原數(shù)據(jù)進(jìn)行查找;
[0105]步驟108、判斷是否能在第一 PCM中查找到原數(shù)據(jù);
[0106]步驟109、如果能夠在第一 PCM中查找到原數(shù)據(jù),則直接在原數(shù)據(jù)的存儲位置對原數(shù)據(jù)進(jìn)行更新;
[0107]步驟110、如果找不到,則需要在外設(shè)存儲器的NAND Flash中尋找;
[0108]步驟111、判斷是否能在外設(shè)存儲器的NAND Flash中找到原數(shù)據(jù);
[0109]步驟112、如果在外設(shè)存儲器的NAND Flash中找不到原數(shù)據(jù),則認(rèn)為此數(shù)據(jù)是新數(shù)據(jù),在第一 PCM中寫入新的小數(shù)據(jù);
[0110]步驟113、如果能在外設(shè)存儲器的NAND Flash中找到原數(shù)據(jù),則認(rèn)為是舊數(shù)據(jù)更新,需要將舊數(shù)據(jù)讀取到第一 PCM中,然后標(biāo)記外設(shè)存儲器的NANDFlash中的數(shù)據(jù)為臟數(shù)據(jù),在外設(shè)存儲器的NAND Flash空閑時(shí)候擦除,同時(shí)在此搬移過程中,實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)的遷移,如果下一次對此數(shù)據(jù)進(jìn)行更新,可以直接在第一 PCM中命中。
[0111]本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲方法,由于PCM本身的讀性能是NANDFlash的100倍以上,寫入PCM時(shí)候,不需要像NAND Flash —樣要在DRAMBuffer中先讀取再修改,所以本發(fā)明實(shí)施例實(shí)現(xiàn)了小數(shù)據(jù)的優(yōu)化,小數(shù)據(jù)讀或?qū)懠铀伲荒壳白钚碌?0nm的MLC NAND Flash寫入壽命只有幾千次,PCM的寫壽命是NAND的100-1000倍以上,將頻繁更新的小數(shù)據(jù)在PCM中操作,可以對NAND Flash做小數(shù)據(jù)的寫吸收,極大延長存儲系統(tǒng)中NAND Flash的寫入壽命;PCM字節(jié)可變,NAND Flash按照頁page操作,在小數(shù)據(jù)寫入時(shí),數(shù)據(jù)尺寸遠(yuǎn)小于NAND Flash的頁page (2-4K)大小,用PCM可以降低文件系統(tǒng)的負(fù)載payload,加速文件系統(tǒng)運(yùn)行,因此降低了文件系統(tǒng)負(fù)載,提升了系統(tǒng)的運(yùn)行效率。
[0112]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0113]圖7為本發(fā)明實(shí)施例提供的PCM橋?qū)嵤├坏慕Y(jié)構(gòu)示意圖,如圖7所示,PCM橋包括:接收單元20、轉(zhuǎn)化單元21和讀或?qū)憜卧?2,其中,
[0114]接收單元20用于通過與PCM橋相連的內(nèi)存控制器接收來自與內(nèi)存控制器相連的CPU的用于對與PCM橋相連的相變存儲器PCM中存儲的非易失性的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡?br>
一操作信號.[0115]轉(zhuǎn)化單元21用于將接收單元接收的第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙?br>
第二操作信號。
[0116]讀或?qū)憜卧?2用于根據(jù)轉(zhuǎn)化單元轉(zhuǎn)化的第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或往PCM中寫入小數(shù)據(jù)。
[0117]其中,小數(shù)據(jù)為被經(jīng)常讀或?qū)懙男?shù)據(jù),小數(shù)據(jù)可以為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種,小數(shù)據(jù)還可為小于通用flash操作時(shí)的塊操作數(shù)據(jù),小數(shù)據(jù)大小為小于等于512字節(jié),可根據(jù)不同的情況而定,本實(shí)施例對此不做限制。第一操作信號包括讀或?qū)懶盘?,將第一操作信號轉(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^第二操作信號對PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)懓?將讀或?qū)懶盘栟D(zhuǎn)化成能對PCM進(jìn)行讀或?qū)懙淖x或?qū)懶盘栆酝ㄟ^讀或?qū)懶盘枌CM中的小數(shù)據(jù)進(jìn)行讀或?qū)憽?br>
[0118] 最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)存儲系統(tǒng),其特征在于,包括: 處理器、內(nèi)存控制器、相變存儲器PCM橋以及相變存儲器PCM ; 所述處理器通過所述內(nèi)存控制器與所述PCM橋相連,所述PCM橋與所述PCM相連; 所述PCM用于存儲非易失性的小數(shù)據(jù); 所述PCM橋用于通過所述內(nèi)存控制器接收來自所述CPU的用于讀或?qū)懶?shù)據(jù)的第一操作信號,將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或往所述PCM中寫入小數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲系統(tǒng),其特征在于: 所述PCM具體用于存儲被經(jīng)常讀或?qū)懙姆且资孕?shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)存儲系統(tǒng),其特征在于: 所述第一操作信號包括讀或?qū)懶盘?,所述將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)懓? 將所述讀或?qū)懶盘栟D(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙淖x或?qū)懶盘栆酝ㄟ^所述讀或?qū)懶盘枌λ鯬CM中的小數(shù)據(jù)進(jìn)行讀或?qū)憽?br>
4.根據(jù)權(quán)利要求1-3任 一所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述PCM橋還用于: 通過所述內(nèi)存控制器接收來自所述CPU的用于對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整的調(diào)整信號,所述對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整包括:將所述PCM存儲的使用頻率較低的小數(shù)據(jù)從所述PCM存儲器移出,或者將使用頻率較高的小數(shù)據(jù)移動到所述PCM存儲器; 將所述調(diào)整信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙恼{(diào)整信號以通過所述調(diào)整信號對所述PCM中的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整。
5.根據(jù)權(quán)利要求1-4任一所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,還包括: 內(nèi)存,通過所述內(nèi)存控制器與所述處理器相連,用于存儲CPU執(zhí)行程序時(shí)所需的數(shù)據(jù)。
6.根據(jù)權(quán)利要求1-5任一所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,還包括: 外設(shè)存儲器,用于通過外設(shè)接口與所述CPU相連; 所述外設(shè)存儲器存儲有非易失性的大數(shù)據(jù),所述CPU還用于通過所述外設(shè)接口對所述外設(shè)存儲器進(jìn)行讀或?qū)懖僮?,其中,所述大?shù)據(jù)為比小數(shù)據(jù)大的數(shù)據(jù)。
7.根據(jù)權(quán)利要求1-6任一所述的數(shù)據(jù)存儲系統(tǒng),其特征在于: 所述小數(shù)據(jù)為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種。
8.根據(jù)權(quán)利要求1-7任一所述數(shù)據(jù)存儲系統(tǒng),其特征在于: 所述小數(shù)據(jù)為大小小于通用flash操作時(shí)的塊操作數(shù)據(jù)。
9.根據(jù)權(quán)利要求1-8任一所述數(shù)據(jù)存儲系統(tǒng),其特征在于: 所述小數(shù)據(jù)字節(jié)大小小于或等于512字節(jié)。
10.一種數(shù)據(jù)存儲方法,其特征在于,應(yīng)用于相變存儲器PCM橋,包括: 通過與所述PCM橋相連的內(nèi)存控制器接收來自與所述內(nèi)存控制器相連的CPU的用于對與所述PCM橋相連的相變存儲器PCM中存儲的非易失性的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘?將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或往所述PCM中寫入小數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)存儲方法,其特征在于: 所述小數(shù)據(jù)為被經(jīng)常讀或?qū)懙男?shù)據(jù)。
12.根據(jù)權(quán)利要求10或11所述的數(shù)據(jù)存儲方法,其特征在于: 所述第一操作信號包括讀或?qū)懶盘?,所述將所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘栆酝ㄟ^所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或?qū)懓? 將所述讀或?qū)懶盘栟D(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙淖x或?qū)懶盘栆酝ㄟ^所述讀或?qū)懶盘枌λ鯬CM中的小數(shù)據(jù)進(jìn)行讀或?qū)憽?br>
13.根據(jù)權(quán)利要求10-12任一所述的數(shù)據(jù)存儲方法,其特征在于,還包括: 通過所述內(nèi)存控制器接收來自所述CPU的用于對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整的調(diào)整信號,所述對所述PCM存儲的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整包括:將所述PCM存儲的使用頻率較低的小數(shù)據(jù)從所述PCM存儲器移出,或者將使用頻率較高的小數(shù)據(jù)移動到所述PCM存儲器; 將所述調(diào)整信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙恼{(diào)整信號以通過所述調(diào)整信號對所述PCM中的所述小數(shù)據(jù)的存儲位置進(jìn)行調(diào)整。
14.根據(jù)權(quán)利要求10-13任一所述的數(shù)據(jù)存儲方法,其特征在于: 所述小數(shù)據(jù)為大小為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種;或者, 所述小數(shù)據(jù)為大小小于通用flash操作時(shí)的塊操作數(shù)據(jù);或者, 所述小數(shù)據(jù)字節(jié)大小小于或等于512字節(jié)。
15.一種PCM橋,其特征在于,包括: 接收單元,用于通過與所述PCM橋相連的內(nèi)存控制器接收來自與所述內(nèi)存控制器相連的CPU的用于對與所述PCM橋相連的相變存儲器PCM中存儲的非易失性的小數(shù)據(jù)進(jìn)行讀或?qū)懙牡谝徊僮餍盘枺? 轉(zhuǎn)化單元,用于將所述接收單元接收的所述第一操作信號轉(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙牡诙僮餍盘枺? 讀或?qū)憜卧?,用于根?jù)所述轉(zhuǎn)化單元轉(zhuǎn)化的所述第二操作信號對所述PCM中的小數(shù)據(jù)進(jìn)行讀或往所述PCM中寫入小數(shù)據(jù)。
16.根據(jù)權(quán)利要求15所述的PCM橋,其特征在于: 所述小數(shù)據(jù)為被經(jīng)常讀或?qū)懙男?shù)據(jù)。
17.根據(jù)權(quán)利要求15或16所述的PCM橋,其特征在于: 所述第一操作信號包括讀或?qū)懶盘?,所述轉(zhuǎn)化單元具體用于將所述讀或?qū)懶盘栟D(zhuǎn)化成能對所述PCM進(jìn)行讀或?qū)懙淖x或?qū)懶盘栆酝ㄟ^所述讀或?qū)懶盘枌λ鯬CM中的小數(shù)據(jù)進(jìn)行讀或?qū)憽?br>
18.根據(jù)權(quán)利要求15-17任一所述的PCM橋,其特征在于: 所述小數(shù)據(jù)為小的用戶數(shù)據(jù),或者元數(shù)據(jù)metadata,或者系統(tǒng)日志數(shù)據(jù)中的任意一種或多種;或者,所述小數(shù) 據(jù)為大小小于通用flash操作時(shí)的塊操作數(shù)據(jù);或者所述小數(shù)據(jù)字節(jié)大小小于或等于512字節(jié)。
【文檔編號】G06F3/06GK103838676SQ201210478421
【公開日】2014年6月4日 申請日期:2012年11月22日 優(yōu)先權(quán)日:2012年11月22日
【發(fā)明者】許焰, 李挺 申請人:華為技術(shù)有限公司