欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

MLCSTT?MRAM數(shù)據(jù)寫入方法及裝置、數(shù)據(jù)讀取方法及裝置與流程

文檔序號:12609540閱讀:294來源:國知局
MLC STT?MRAM數(shù)據(jù)寫入方法及裝置、數(shù)據(jù)讀取方法及裝置與流程
本發(fā)明屬于存儲器領(lǐng)域,尤其涉及一種MLCSTT-MRAM數(shù)據(jù)寫入方法及裝置、數(shù)據(jù)讀取方法及裝置。
背景技術(shù)
:MLC是Multi-levelCell(多級單元)的簡稱,即在一個存儲器單元格中存放兩個及兩個以上的比特,而STT-MRAM是Spin-TransferTorqueMagneticRandomAccessMemory(自旋磁存儲器)的簡稱。MLCSTT-MRAM中的數(shù)據(jù)時存儲于MTJ中,全稱是magnetictunnelingjunction(磁隧道結(jié))。MLCSTT-MRAM的設(shè)計(jì)主要有兩種,一種是平行MTJ設(shè)計(jì),另一種是連續(xù)MTJ設(shè)計(jì)。由于平行MTJ設(shè)計(jì)的STT-MRAM在能耗以及可靠性上都要優(yōu)于連續(xù)MTJ設(shè)計(jì)的STT-MRAM,所以大多數(shù)的研究都集中于前者上。平行MTJ由固定磁化方向的referencelayer(參考層)以及可變磁化方向的freelayer(自由層)組成,而自由層又分為harddomain(硬區(qū)域)與softdomain(軟區(qū)域)。MTJ的電阻狀態(tài)是通過改變施加于其中的電流方向進(jìn)而改變自由層的磁化方向來改變的。自由層中軟區(qū)域的磁化方向可以通過施加較小的電流來改變;而改變硬區(qū)域的磁化方向時,由于施加的電流較大,軟區(qū)域的磁化方向也會被一同改變?yōu)榕c硬區(qū)域相同的磁化方向。一般規(guī)定兩個區(qū)域磁化方向相同的兩種狀態(tài)為“00”與“11”,分別對應(yīng)電阻最小與電阻最大的兩個狀態(tài);而兩區(qū)域磁化方向不同的狀態(tài)為“10”與“01”,“10”的電阻較“01”大。一般地,當(dāng)寫入新數(shù)據(jù)時,會采取讀后寫的策略,即將舊數(shù)據(jù)讀出,對比新舊數(shù)據(jù),然后按照寫策略寫入。當(dāng)數(shù)據(jù)相同時,則不需要替換舊數(shù)據(jù);當(dāng)只有軟區(qū)域的數(shù)據(jù)不同而需要更改時,則只需要對MTJ施加一個較小的正向或反向電流,來改變軟區(qū)域的磁化方向;而當(dāng)硬區(qū)域的數(shù)據(jù)不相同時,如果新數(shù)據(jù)是“00”或者“11”,那么只需要對MTJ施加一個較大的正向或反向電流,使硬區(qū)域與軟區(qū)域的磁化方向相同,而如果新數(shù)據(jù)是“01”或者“10”時,則需要兩步,第一步施加較大的電流,改變MTJ狀態(tài)為“00”或“11”,第二步施加較小的電流,改變軟區(qū)域的磁化方向。所以,只改變軟區(qū)磁化狀態(tài)所需要的能量相較改變硬區(qū)域磁化狀態(tài)的能耗要小的多。目前對STT-MRAM能耗優(yōu)化大多采用制造工藝的改進(jìn)與提升的方法,該方法需要時間的積累,這個過程可能會持續(xù)很長時間;其次,還有采用硬件電路實(shí)現(xiàn)針對于某種非易失性存儲器的編寫策略,該方法是利用存儲器的某些特性來針對存儲器本身所做的優(yōu)化;還有通過軟件實(shí)現(xiàn)數(shù)據(jù)的編解碼,對寫入的數(shù)據(jù)進(jìn)行優(yōu)化。但是,上述方法僅僅是考慮了單一因素來優(yōu)化STT-MRAM能耗,優(yōu)化的效率以及效果差。技術(shù)實(shí)現(xiàn)要素:為了解決現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明提供一種MLCSTT-MRAM數(shù)據(jù)寫入方法及裝置、數(shù)據(jù)讀取方法及裝置。本發(fā)明可以大大減少M(fèi)LCSTT-MRAM數(shù)據(jù)寫入和讀取時的能耗。為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種MLCSTT-MRAM數(shù)據(jù)寫入方法,包括:步驟a:將新數(shù)據(jù)從緩存器傳輸至MLCSTT-MRAM的寫隊(duì)列中等待寫入;步驟b:通過比較新舊數(shù)據(jù),獲得寫入MLCSTT-MRAM時的每種數(shù)據(jù)狀態(tài)改變單元格硬區(qū)域磁化狀態(tài)的數(shù)量與未改變硬區(qū)域磁化狀態(tài)的數(shù)量,進(jìn)而得到相應(yīng)的映射類型;步驟c:篩選出需要改變MLCSTT-MRAM硬區(qū)域磁化狀態(tài)數(shù)量最少的映射類型為重映射方式,并利用重映射方式對新數(shù)據(jù)進(jìn)行數(shù)值重映射;步驟d:根據(jù)相應(yīng)寫策略,將重映射后得到的數(shù)據(jù)和映射類型一起寫入MLCSTT-MRAM中。所述步驟b中獲得寫入MLCSTT-MRAM時的每種數(shù)據(jù)狀態(tài)改變單元格硬區(qū)域磁化狀態(tài)的數(shù)量,需要獲得八個數(shù)值,分別是寫入新數(shù)據(jù)的數(shù)據(jù)狀態(tài)‘00’、‘01’、‘10’和‘11’時改變的硬區(qū)域磁化狀態(tài)的數(shù)量與未改變的數(shù)量。通過獲得這八個數(shù)值,可以分析得到交換某兩個狀態(tài)后,總體要改變的硬磁化區(qū)域狀態(tài)數(shù)量是否減少,比如寫入狀態(tài)‘00’時,其總量為6,硬磁化區(qū)域改變的數(shù)量為4,未改變的數(shù)量為2,,而寫入總數(shù)為8的狀態(tài)‘11’時,硬磁化區(qū)域改變的數(shù)量為5,未改變的數(shù)量為3,那么若未交換兩種狀態(tài),硬磁化區(qū)域改變的數(shù)量為4+5=9個,而通過狀態(tài)重映射將兩種數(shù)據(jù)狀態(tài)交換后,硬磁化區(qū)域改變的數(shù)量則為2+3=5個,明顯少于未交換前的9個。在所述步驟b中,假設(shè)互換新數(shù)據(jù)中左位不相同的兩個數(shù)據(jù)狀態(tài),計(jì)算互換后總的硬區(qū)域磁化狀態(tài)的數(shù)量的變化,如果減少,那么該互換是可進(jìn)行,否則,該互換不可進(jìn)行。在所述步驟b中,將新數(shù)據(jù)中左位不同的數(shù)據(jù)狀態(tài)互換,總共有四種情況:‘00’與‘10’;‘00’與‘11’;‘01’與‘10’;‘01’與‘11’。其中,‘00’與‘10’互換,‘01’與‘11’互換不相互沖突;同樣地,‘01’與‘10’互換,‘00’與‘11’互換不相互沖突。所以,將不沖突的互換分到同一組,四組互換可以分為兩組,通過比較這兩組最終可以減少的硬區(qū)域磁化狀態(tài)的數(shù)量,挑選出減少硬區(qū)域磁化狀態(tài)數(shù)量較多的一組,生成映射類型,并根據(jù)映射類型對新數(shù)據(jù)進(jìn)行重映射。在所述步驟d中,按照寫策略,如果新舊數(shù)據(jù)相同,則不需要改變磁隧道結(jié)的狀態(tài)。如果只有軟區(qū)域的磁化狀態(tài)需要改變,那么只對MTJ施加較小的電流,如果軟區(qū)域的數(shù)據(jù)由“0”變“1”,那么施加反向的電流,否則施加正向的電流;如果硬區(qū)域的狀態(tài)需要改變,且新數(shù)據(jù)是“00”或者“11”,那么寫“00”則對MTJ施加正向電流,寫“11”施加反向電流;如果硬區(qū)域的狀態(tài)需要改變,且新數(shù)據(jù)是“01”或者“10”,則需要進(jìn)行兩步寫:第一步施加正向或者反向電流使MTJ中的數(shù)據(jù)變?yōu)椤?0”或者“11”,第二步按照改變軟區(qū)域磁化狀態(tài)的方式對MTJ施加電流。一種MLCSTT-MRAM數(shù)據(jù)寫入裝置,包括:數(shù)據(jù)傳輸部,其用于將新數(shù)據(jù)從緩存器傳輸至MLCSTT-MRAM的寫隊(duì)列中等待寫入;映射類型獲取部,其用于通過比較新舊數(shù)據(jù),獲得寫入MLCSTT-MRAM時的每種數(shù)據(jù)狀態(tài)改變單元格硬區(qū)域磁化狀態(tài)的數(shù)量與未改變硬區(qū)域磁化狀態(tài)的數(shù)量,進(jìn)而得到相應(yīng)的映射類型;數(shù)據(jù)映射部,其用于篩選出需要改變MLCSTT-MRAM硬區(qū)域磁化狀態(tài)數(shù)量最少的映射類型為重映射方式,并利用重映射方式對新數(shù)據(jù)進(jìn)行數(shù)值重映射;寫策略部,其用于根據(jù)相應(yīng)寫策略,將重映射后得到的數(shù)據(jù)和映射類型一起寫入MLCSTT-MRAM中。所述映射類型獲取部還包括硬區(qū)域磁化狀態(tài)的數(shù)量獲取模塊,其用于分別寫入新數(shù)據(jù)的數(shù)據(jù)狀態(tài)‘00’、‘01’、‘10’和‘11’,得到改變的硬區(qū)域磁化狀態(tài)的數(shù)量。假設(shè)互換新數(shù)據(jù)中左位不相同的兩個數(shù)據(jù)狀態(tài),計(jì)算互換后總的硬區(qū)域磁化狀態(tài)的數(shù)量的變化,如果減少,那么該互換是可進(jìn)行,否則,該互換不可進(jìn)行。一種MLCSTT-MRAM數(shù)據(jù)讀取方法,包括:步驟A:將需要讀取得的數(shù)據(jù)從MLCSTT-MRAM內(nèi)存中讀出并傳送到讀隊(duì)列,所述需要讀取得的數(shù)據(jù)包括重映射的數(shù)據(jù)與映射類型;步驟B:根據(jù)映射類型的信息,對重映射的數(shù)據(jù)進(jìn)行反向重映射,獲取相應(yīng)的原數(shù)據(jù);其中,所述原數(shù)據(jù)由所述的MLCSTT-MRAM數(shù)據(jù)寫入方法寫入MLCSTT-MRAM內(nèi)存。一種MLCSTT-MRAM數(shù)據(jù)讀取裝置,包括:數(shù)數(shù)據(jù)讀出部,其用于將需要讀取得的數(shù)據(jù)從MLCSTT-MRAM內(nèi)存中讀出并傳送到讀隊(duì)列,所述需要讀取得的數(shù)據(jù)包括重映射的數(shù)據(jù)與映射類型;反向重映射部,其用于根據(jù)映射類型的信息,對重映射的數(shù)據(jù)進(jìn)行反向重映射,獲取相應(yīng)的原數(shù)據(jù);其中,所述原數(shù)據(jù)由所述的MLCSTT-MRAM數(shù)據(jù)寫入方法寫入MLCSTT-MRAM內(nèi)存。本發(fā)明的有益效果為:(1)本發(fā)明在某一寫策略的基礎(chǔ)上,對新寫入的數(shù)據(jù)進(jìn)行優(yōu)化,通過與未經(jīng)優(yōu)化的數(shù)據(jù)進(jìn)行對比發(fā)現(xiàn),經(jīng)過優(yōu)化后的數(shù)據(jù)再寫入到存儲器中,可以大大減少寫入時的能耗。由于改變MLCSTT-MRAM的硬磁化區(qū)域的磁化狀態(tài)較改變軟磁化區(qū)域的磁化狀態(tài)會消耗更多的能量,特別地,當(dāng)寫入數(shù)據(jù)狀態(tài)‘01’與‘10’時,需要兩步,即先將數(shù)據(jù)狀態(tài)寫為‘00’(當(dāng)要寫入的數(shù)據(jù)狀態(tài)為‘01’時)或‘11’(當(dāng)要寫入的數(shù)據(jù)狀態(tài)為‘10’時),之后再改變軟磁化區(qū)域狀態(tài),會消耗比改變硬磁化區(qū)域磁化狀態(tài)得到‘00’與‘11’時更多的能量。通過狀態(tài)重映射之后,將硬磁化區(qū)域磁化狀態(tài)改變的數(shù)量減少,并且由于數(shù)據(jù)的隨機(jī)性與數(shù)據(jù)的局部性原理,軟磁化區(qū)域改變的數(shù)量在絕大部分情況下不會超過硬磁化區(qū)域減少數(shù)量的兩倍,而硬磁化區(qū)域狀態(tài)改變時消耗的能量則是軟磁化區(qū)域狀態(tài)改變時消耗能量的兩倍以上,所以本策略可以減少整體的寫入能耗。(2)本發(fā)明還提供了MLCSTT-MRAM數(shù)據(jù)寫入裝置,能夠結(jié)合硬件電路和軟件編解碼方法來實(shí)現(xiàn)針對于某種非易失性存儲器的編寫策略,進(jìn)而達(dá)到對寫入的數(shù)據(jù)進(jìn)行優(yōu)化。(3)本發(fā)明是在針對數(shù)據(jù)的優(yōu)化策略,并不涉及存儲器本身,由于數(shù)據(jù)本身具有局部性原理,所以在減少硬磁化區(qū)域改變數(shù)量的同時,整體的寫入量并沒有增加,并且由于寫數(shù)據(jù)狀態(tài)‘01’與‘10’時需要兩步才能寫入,相當(dāng)于兩次寫,所以一定程度上減少了寫次數(shù),增加了設(shè)備的使用壽命。附圖說明圖1編解碼數(shù)據(jù)流圖。圖2(a)計(jì)算n1X→00電路圖。圖2(b)計(jì)算n0X→00電路圖。圖3MappingType獲取算法實(shí)現(xiàn)電路。圖4(a)邏輯運(yùn)算部件I內(nèi)部結(jié)構(gòu)。圖4(b)邏輯運(yùn)算部件II內(nèi)部結(jié)構(gòu)。圖4(c)邏輯運(yùn)算部件III內(nèi)部結(jié)構(gòu)。圖4(d)邏輯運(yùn)算部件IV內(nèi)部結(jié)構(gòu)。其中,1.讀隊(duì)列,2.寫隊(duì)列,3.可編程四路數(shù)據(jù)選擇器,4.計(jì)數(shù)器,5.MappingType獲取算法部件,6.寫策略部件,7.Cache,8.非易失性存儲器,9.或門,10.與門,11.10位數(shù)值加法運(yùn)算器,12.邏輯運(yùn)算部件I,13.邏輯運(yùn)算部件II,14.9位數(shù)值比較器,15.邏輯運(yùn)算部件III,16.邏輯運(yùn)算部件IV。具體實(shí)施方式下面結(jié)合附圖與實(shí)施例對本發(fā)明做進(jìn)一步說明:在滿足經(jīng)過解碼后與原數(shù)據(jù)一樣的前提下:MLCSTT-MRAM數(shù)據(jù)的編碼及寫入步驟為:1)新數(shù)據(jù)從緩存中寫回到主存,首先會被傳輸?shù)綄戧?duì)列中等待寫入,要寫入的數(shù)據(jù)寬度為一個緩存行大小。當(dāng)寫隊(duì)列中的某一數(shù)據(jù)要寫入內(nèi)存時,內(nèi)存控制器會先讀取相應(yīng)地址的舊數(shù)據(jù),進(jìn)而與要寫入的新數(shù)據(jù)進(jìn)行比較。2)通過比較新舊數(shù)據(jù),獲得寫入每種數(shù)據(jù)狀態(tài)改變單元格硬區(qū)域磁化狀態(tài)的數(shù)量與未改變單元格硬區(qū)域磁化狀態(tài)的數(shù)量,需要獲得八個數(shù)值,分別是寫入新數(shù)據(jù)的數(shù)據(jù)狀態(tài)‘00’、‘01’,‘10’,‘11’時改變的硬區(qū)域磁化狀態(tài)的數(shù)量,以及未改變的硬區(qū)域磁化狀態(tài)的數(shù)量。假設(shè)互換新數(shù)據(jù)中左位不相同的兩個數(shù)據(jù)狀態(tài),比如將數(shù)據(jù)狀態(tài)‘00’與數(shù)據(jù)狀態(tài)‘11’互換,計(jì)算互換后總的硬區(qū)域磁化狀態(tài)的數(shù)量的變化,如果減少,那么該互換是可以進(jìn)行的,否則,該互換就不可進(jìn)行。將左位不同的數(shù)據(jù)狀態(tài)互換,那么總共有四種情況:‘00’與‘10’;‘00’與‘11’;‘01’與‘10’;‘01’與‘11’。其中,‘00’與‘10’互換,‘01’與‘11’互換不相互沖突;同樣地,‘01’與‘10’互換,‘00’與‘11’互換不相互沖突。所以,我們將不沖突的互換分到同一組,四組互換可以分為兩組,通過比較這兩組最終可以減少的硬區(qū)域磁化狀態(tài)的數(shù)量,挑選出減少硬區(qū)域磁化狀態(tài)數(shù)量較多的一組,并通過算法生成映射類型,將映射類型以及新數(shù)據(jù)輸送到可編程四路數(shù)據(jù)選擇器將新數(shù)據(jù)進(jìn)行重映射。3)在編碼后的數(shù)據(jù)寫入內(nèi)存時,按照寫策略,如果新舊數(shù)據(jù)相同,則不需要改變MTJ的狀態(tài);如果只有軟區(qū)域的磁化狀態(tài)需要改變,那么只對MTJ施加電流,如果軟區(qū)域的數(shù)據(jù)由“0”變“1”,那么施加反向的電流,否則施加正向的電流;如果硬區(qū)域的狀態(tài)需要改變,且新數(shù)據(jù)是“00”或者“11”,那么寫“00”則對MTJ施加正向電流,寫“11”施加反向電流;如果硬區(qū)域的狀態(tài)需要改變,且新數(shù)據(jù)是“01”或者“10”,則需要進(jìn)行兩步寫:第一步施加正向或者反向電流使MTJ中的數(shù)據(jù)變?yōu)椤?0”或者“11”,第二步按照改變軟區(qū)域磁化狀態(tài)的方式對MTJ施加電流。MLCSTT-MRAM數(shù)據(jù)的讀出并解碼的步驟為:有讀指令到來時,將需要取得的數(shù)據(jù)從內(nèi)存中讀出并傳送到讀隊(duì)列,數(shù)據(jù)中包括重映射的數(shù)據(jù)與MappingType。根據(jù)MappingType的信息,對重映射的數(shù)據(jù)進(jìn)行反向重映射,得到原數(shù)據(jù),再將原數(shù)據(jù)傳送到進(jìn)程中使用。其中,算法1描述了數(shù)據(jù)的編碼寫入過程,算法2描述了算法的讀出解碼過程。在編碼部分,最為關(guān)鍵的一點(diǎn)在于獲取新數(shù)據(jù)的重映射方式以及對應(yīng)的映射類型。由于改變自由層中硬區(qū)域的磁化狀態(tài)要比改變軟區(qū)域的磁化狀態(tài)耗費(fèi)能量更多,如果新數(shù)據(jù)中寫入某一數(shù)據(jù)狀態(tài)時改變的硬區(qū)域磁化狀態(tài)更多,即改變的硬區(qū)域磁化狀態(tài)數(shù)量大于新數(shù)據(jù)中該數(shù)據(jù)狀態(tài)數(shù)量的二分之一,比如舊數(shù)據(jù)為“00-00-11-00”,而新數(shù)據(jù)為“11-10-11-11”,那么寫入新數(shù)據(jù)中的狀態(tài)“11”時改變硬區(qū)域的磁化狀態(tài)數(shù)量為2,其原因是:舊數(shù)據(jù)為“00-00-11-00”,新數(shù)據(jù)為“11-10-11-11”,寫入新數(shù)據(jù)時,從D0位(最左邊)開始,第一個‘11’時,對應(yīng)的舊數(shù)據(jù)為‘00’,此時寫‘11’時需要改變硬磁化區(qū)域狀態(tài)(硬磁化區(qū)域狀態(tài)由‘0’變‘1’);寫第二個‘11’對應(yīng)的舊數(shù)據(jù)為‘11’,因?yàn)樾屡f狀態(tài)相同,此時不需要對這個‘11’進(jìn)行寫入;第三個‘11’對應(yīng)的舊數(shù)據(jù)為‘00’,所以寫入該‘11’也需要改變相應(yīng)的單元格中MTJ的硬區(qū)域的磁化狀態(tài)。所以寫入新數(shù)據(jù)中的‘11’時,有兩個(從左邊數(shù)第一個與第四個)需要改變硬區(qū)域的磁化狀態(tài)。而如果將新數(shù)據(jù)中“00”與“11”互換,那么經(jīng)過重映射后的數(shù)據(jù)變?yōu)椤?0-10-00-00”,此時寫入重映射數(shù)據(jù)的中的“00”,硬區(qū)域磁化狀態(tài)改變的數(shù)量為1,這樣,寫入時所消耗的能量就會減少。所有的重映射方式如表1所示。表1重映射方式以及對應(yīng)的MappingType這些重映射方式都燒到了可編程四路數(shù)據(jù)選擇器中,選擇出相應(yīng)的MappingType,并將該MappingType傳輸?shù)剿械目删幊趟穆窋?shù)據(jù)選擇器中,同時根據(jù)要寫入的新數(shù)據(jù),選擇出重映射后的數(shù)據(jù)。比如,經(jīng)過算法3后,選擇出MappingType為“0100”,新數(shù)據(jù)為“11-00-01-10”,那么會有四個可編程四路數(shù)據(jù)選擇器中分別對四個2位數(shù)據(jù)進(jìn)行重映射,‘11’重映射為‘11’,‘00’重映射為‘10’,‘01’重映射為‘01’,‘10’重映射為‘00’。為了判斷新數(shù)據(jù)中哪兩種狀態(tài)需要互換,需要計(jì)算分別寫入寫數(shù)據(jù)的每種狀態(tài)硬區(qū)域磁化狀態(tài)改變以及不改變的數(shù)量,記n0X→00為寫入新數(shù)據(jù)中的狀態(tài)‘00’時不需要改變硬區(qū)域磁化狀態(tài)的數(shù)量,即要寫入狀態(tài)‘00’的單元格原狀態(tài)為‘00’或者‘01’;n1X→00為寫入新數(shù)據(jù)中的狀態(tài)‘0’時需要改變硬區(qū)域磁化狀態(tài)的數(shù)量,單元格原狀態(tài)為‘10’或者‘11’。相應(yīng)的還有n0X→01、n0X→10、n0X→11、n1X→01、n1X→10、n1X→11。在MappingType獲取算法中,不會產(chǎn)生沖突的交換被分到同一組,比如將與分到一組,和分到另一組。如果將新數(shù)據(jù)某兩個狀態(tài)交換,比如將‘01’與‘11’交換,那么交換后需要改變的硬區(qū)域磁化狀態(tài)的數(shù)量為n1X→01+n0X→11-n1X→11-n0X→01。如果此數(shù)量不大于零,表示將新數(shù)據(jù)中的“01”與“11”交換后,并不會減少硬區(qū)域磁化狀態(tài)改變的數(shù)量,所以此交換將不會進(jìn)行,并且在算法的第二步中用0代替此數(shù)量,表示不進(jìn)行此交換。比較兩組交換最終可以減少的硬區(qū)域磁化狀態(tài)改變的數(shù)量,來確定哪一組更合適交換。通過MappingType獲取算法第3步到第6步,以及算法第8步到第11步,來確定與狀態(tài)‘00’以及狀態(tài)“01”交換的狀態(tài),并得到MT1與MT2。設(shè)置的MappingType高兩位表示與狀態(tài)‘00’交換的狀態(tài),如果不產(chǎn)生交換,那么高兩位用“00”表示,如果數(shù)據(jù)狀態(tài)‘10’與數(shù)據(jù)狀態(tài)‘00’交換,那么MappingType的高兩位為‘01’,如果是數(shù)據(jù)狀態(tài)‘11’與數(shù)據(jù)狀態(tài)‘00’交換,那么MappingType的高兩位為‘11’,也就是MappingType的高兩位數(shù)據(jù)就是算法中得到的MT1,MappingType的低兩位數(shù)據(jù)即MappingType獲取算法中得到的MT2。最后MappingType獲取算法的第12步通過MT1與MT2得到MappingType。圖1是編解碼數(shù)據(jù)流圖。在編碼寫入部分,分為五個執(zhí)行步驟。其具體過程為:Cache中的數(shù)據(jù)寫回并存于寫隊(duì)列中。在新數(shù)據(jù)寫入前將舊數(shù)據(jù)讀出并傳輸?shù)阶x隊(duì)列,并利用要寫入的新數(shù)據(jù)與舊數(shù)據(jù),通過計(jì)數(shù)器計(jì)算n1X→00等8個數(shù)值。將n1X→00等8個數(shù)值傳輸入MappingType獲取算法部件并獲取相應(yīng)的MappingType??删幊趟穆窋?shù)據(jù)選擇器會根據(jù)MappingType將新數(shù)據(jù)的數(shù)值重映射。重映射后得到的數(shù)據(jù)以及得到的MappingType經(jīng)過寫策略部件后根據(jù)相應(yīng)的寫策略寫入非易失性存儲器。通過上述5個步驟,將新數(shù)據(jù)編碼并寫入的非易失性存儲器中。在讀出解碼部分,只要分為兩個個執(zhí)行步驟。其具體過程為:將要讀出的數(shù)據(jù)讀出并傳輸?shù)阶x隊(duì)列中??删幊趟穆窋?shù)據(jù)選擇器會根據(jù)MappingType將舊數(shù)據(jù)的數(shù)值反向重映射,并傳輸?shù)竭M(jìn)程中。本發(fā)明還提供了一種MLCSTT-MRAM數(shù)據(jù)寫入裝置,包括:數(shù)據(jù)傳輸部,其用于將新數(shù)據(jù)從緩存器傳輸至MLCSTT-MRAM的寫隊(duì)列中等待寫入;映射類型獲取部,其用于通過比較新舊數(shù)據(jù),獲得寫入MLCSTT-MRAM時的每種數(shù)據(jù)狀態(tài)改變單元格硬區(qū)域磁化狀態(tài)的數(shù)量與未改變硬區(qū)域磁化狀態(tài)的數(shù)量,進(jìn)而得到相應(yīng)的映射類型;數(shù)據(jù)映射部,其用于篩選出需要改變MLCSTT-MRAM硬區(qū)域磁化狀態(tài)數(shù)量最少的映射類型為重映射方式,并利用重映射方式對新數(shù)據(jù)進(jìn)行數(shù)值重映射;寫策略部,其用于根據(jù)相應(yīng)寫策略,將重映射后得到的數(shù)據(jù)和映射類型一起寫入MLCSTT-MRAM中。本發(fā)明的映射類型獲取部和數(shù)據(jù)映射部共同構(gòu)成如圖2中的編碼器,其中,映射類型獲取部包括計(jì)算器,其用于計(jì)算并獲取寫入新數(shù)據(jù)的數(shù)據(jù)狀態(tài)‘00’、‘01’、‘10’和‘11’時改變的硬區(qū)域磁化狀態(tài)的數(shù)量。映射類型獲取部包括MappingType獲取算法部件,其用于篩選出需要改變MLCSTT-MRAM硬區(qū)域磁化狀態(tài)數(shù)量最少的映射類型為重映射方式;四路數(shù)據(jù)選擇器,其用于利用重映射方式對新數(shù)據(jù)進(jìn)行數(shù)值重映射。本發(fā)明還提供了一種MLCSTT-MRAM數(shù)據(jù)讀取裝置,包括:數(shù)據(jù)讀出部,其用于將需要讀取得的數(shù)據(jù)從MLCSTT-MRAM內(nèi)存中讀出并傳送到讀隊(duì)列,所述需要讀取得的數(shù)據(jù)包括重映射的數(shù)據(jù)與映射類型;反向重映射部,其用于根據(jù)映射類型的信息,對重映射的數(shù)據(jù)進(jìn)行反向重映射,得到原數(shù)據(jù),再將原數(shù)據(jù)傳送至進(jìn)程中使用。其中,反向重映射部為如圖2中譯碼器,其中譯碼器采用四路數(shù)據(jù)選擇器來實(shí)現(xiàn)。圖2(a)中,一種用于計(jì)算n1X→00的電路設(shè)計(jì),為了方便展示,假設(shè)要寫入的數(shù)據(jù)為8位(實(shí)際要寫入的數(shù)據(jù)長度為cacheline的大小,為512位),新數(shù)據(jù)中通過每兩位高位與低位或后非,可以得到新數(shù)據(jù)中狀態(tài)“00”的位圖,比如新數(shù)據(jù)為“00-10-00-11”,那么每兩位高低與低位相或,可以得到“0-1-0-1”,之后對此數(shù)據(jù)取反得到“1-0-1-0”,這樣就將新數(shù)據(jù)中狀態(tài)“00”的位置通過1標(biāo)記出來。相似地,新數(shù)據(jù)中的狀態(tài)“01”可以通過每兩位中高位取反后再與低位相與來的到“01”的位圖,新數(shù)據(jù)中的狀態(tài)“10”的位圖可以通過每兩位中低位取反后再與高位相與得到,新數(shù)據(jù)中的狀態(tài)“11”的位圖可以通過每兩位中低位與高位直接相與得到。為了得到n1X→00,還需要知道舊數(shù)據(jù)中狀態(tài)“10”以及“11”的位圖,那么可以直接取舊數(shù)據(jù)中每兩位的高位,之后將新數(shù)據(jù)中“00”的位圖與舊數(shù)據(jù)中“1X”的位圖相與,就得到了“1X→00”的位圖,之后統(tǒng)計(jì)其中“1”的數(shù)量即可。圖2(b)中,一種用于計(jì)算n0X→00的電路設(shè)計(jì),這里與圖2(a)不同的是取得的舊數(shù)據(jù)每兩位的高位后,要取反得到舊數(shù)據(jù)中“0X”的位圖。圖3中,一種用于獲取MappingType的算法實(shí)現(xiàn)電路。由于每次寫入到內(nèi)存的數(shù)據(jù)大小為512個比特,所以n1X→00等8個數(shù)中,最大的為256且有且只有一個,最小的為0,那么其中任意兩個數(shù)相加減,最大為256,最小為-256,所以部件11采用10位數(shù)值加法運(yùn)算器,并且參與相加的數(shù)都采用補(bǔ)碼形式。這樣,n1X→00+n0X→10-n1X→10-n0X→00、n1X→01+n0X→11-n1X→11-n0X→01、n1X→00+n0X→11-n1X→11-n0X→00與n1X→01+n0X→10-n1X→10-n0X→01可以同時經(jīng)過兩步運(yùn)算得出,得到的四個數(shù)值經(jīng)過部件12,邏輯運(yùn)算部件I,如果數(shù)值小于0,此時該數(shù)值的d9位為1,那么該數(shù)值經(jīng)過部件12后,會生成全0的9位數(shù)值,否則,數(shù)值不變。經(jīng)過部件12處理后的四個數(shù)值,再經(jīng)過10位數(shù)值加法器得到兩個數(shù)值,這兩個數(shù)值就是兩個交換組分別可以減少的硬區(qū)域磁化狀態(tài)改變的數(shù)量。這兩個值再經(jīng)過部件14,9位數(shù)值比較器的比較,如果相等,那么P=Q端會輸出低電平,P>Q端輸出高電平;如果左側(cè)數(shù)值大于右側(cè),那么P>Q端輸出低電平,P=Q端會輸出高電平;如果右側(cè)數(shù)值大于左側(cè),那么P>Q與P=Q端都會輸出高電平。那么這兩個輸出端相與,如果輸出為低電平,表示P≥Q,否則表示P<Q,那么輸出為低電平時,左側(cè)的交換組被選中,否則右側(cè)的交換組被選中。邏輯運(yùn)算部件I12輸出的9位數(shù)值,經(jīng)過邏輯運(yùn)算部件II13,邏9位數(shù)值相或,如果該數(shù)值是個大于等于0的數(shù)值,那么9位數(shù)值至少有一個為1,那么邏輯運(yùn)算部件II13輸出為1,表示該交換可以進(jìn)行;如果等于零,那么9位數(shù)值全部為0,該部件輸出為0,那么該交換不可被執(zhí)行。邏輯運(yùn)算部件III15與邏輯運(yùn)算部件IV16通過ABC的數(shù)值來生成MT1與MT2,賦值表如表2與表3所示。通過該表設(shè)計(jì)得到如圖4(c)與圖4(d)的設(shè)計(jì)電路。表2獲取MT1賦值表表3獲取MT2賦值表ABCMT2001/000011/01111/000011/0101上述雖然結(jié)合附圖對本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
崇仁县| 太仆寺旗| 鸡东县| 托里县| 齐齐哈尔市| 循化| 易门县| 兴安县| 六枝特区| 岫岩| 顺平县| 鹤壁市| 隆子县| 黄平县| 米林县| 镇沅| 广宗县| 襄城县| 敦化市| 游戏| 江北区| 蕉岭县| 三原县| 汶川县| 五家渠市| 东乡族自治县| 西充县| 山丹县| 道孚县| 垦利县| 新沂市| 大方县| 塔河县| 永靖县| 天峨县| 鹰潭市| 邹平县| 福建省| 宽城| 金坛市| 西乌|