一種新型的stt-mram緩存設計方法
【專利摘要】一種新型的STT-MRAM緩存設計方法,該方法有三大步驟。本發明利用MTJ尺寸與寫入電流和寫入能耗的關系,設計了一種新型的STT-MRARM緩存結構,分別用不同尺寸的MTJ存儲單元實現L1Cache和L2Cache。與只用一種尺寸的MTJ存儲單元相比,降低了寫入能耗,提升了性能。與SRAM和STT-MRAM混合的結構相比,顯著降低了靜態功耗。由于L1Cache是用小尺寸的MTJ存儲單元構成,面積更小,存儲密度更高,Cache的缺失率(missrate)顯著低于SRAM?Cache,提高了訪存性能。此外,該發明只采用STT-MRAM生產工藝,提高了芯片良率,降低了生產成本。
【專利說明】—種新型的STT-MRAM緩存設計方法
【技術領域】
[0001]本發明利用STT-MRAM存儲器件替代傳統的SRAM器件作為芯片的緩存,提出了一種新型的STT-MRAM緩存(Cache)設計方法,降低芯片功耗,提升芯片性能。屬于非易失性存儲器設計【技術領域】。
【背景技術】
[0002]隨著片上晶體管集成密度的不斷提高,多核處理器開始獲得廣泛應用。例如IBMPower7, Intel的酷睿系列處理器以及Tilera公司的Tile-GX系列處理器等。雖然多核處理器極大提升了計算機的性能,它需要大容量片上緩存的支持以解決“存儲墻”瓶頸。目前工業界普遍采用隨機靜態存儲器(SRAM)作為片上緩存(Cache)。為了降低處理器功耗,片上供電電壓不斷降低。SRAM中的晶體管亞閾值漏電流顯著增加,導致芯片的靜態功耗急劇增大,而且隨著器件工藝尺寸的不斷減小,該問題會變的愈加嚴重。
[0003]近年來,研究人員提出了自旋轉移力矩磁性存儲技術(STT-MRAM)。與SRAM相比,該技術具有如下優勢:
[0004]1.STT-MRAM利用磁性隧道結(MTJ)存儲數據,是一種非揮發性存儲器件,即使斷電,數據也不會丟失;
[0005]2.STT-MRAM利用磁性材料而非電荷存儲數據,幾乎沒有漏電流,具有極低的靜態功耗;
[0006]3.STT-MRAM存儲單元的面積為SRAM的1/4,同樣的面積可以集成更大容量的片上緩存,可以顯著提高系統的性能。
[0007]因此,許多研究人員提出利用STT-MRAM替代SRAM作為片上緩存。然而簡單的直接替換,芯片的性能和功耗不一定會降低。這是因為要往STT-MRAM的存儲單元中寫入數據,需要一個較大的電流(幾十微安至幾百微安),和較長的時間(一般為十幾到幾十納秒),遠遠高于SRAM的寫入電流和時間。片上緩存與處理器核心的數據交互最為頻繁。如果程序執行的過程中,需要頻繁寫數據到緩存中,寫功耗和寫延遲會非常大,有可能抵消掉采用STT-MRAM所帶來的好處。
[0008]為了解決上述問題,研究人員和設計者提出采用SRAM和STT-MRAM并存的混合存儲結構。對于需要頻繁進行數據寫入的Cache用SRAM存儲,其它Cache用STT-MRAM存儲。盡管這些技術可以在一定程度上提升芯片的性能,同時與完全用SRAM實現的Cache相比,降低了靜態功耗,但也存在如下問題。
[0009]第一,SRAM和STT-MRAM的生產工藝不同,將它們集成同一個芯片上,會降低芯片良率,增加生產成本;
[0010]第二,SRAM的存在會增大芯片的靜態功耗;
[0011]第三,如何確定STT-MRAM和SRAM各自的容量也是一個難以解決的問題,因為不同的應用和程序,訪存的行為不同,因而很難有一個普遍有效的解決方案。
【發明內容】
[0012]1.發明目的:本發明的目的是提供了一種新型的STT-MRAM緩存設計方法,避免了SRAM帶來的靜態功耗問題,同時可以顯著提升處理器的性能。
[0013]2.技術方案:一般的,片上多核處理器包含有多級Cache。上一級的Cache的容量更小,但要求訪問速度更快。而STT-MRAM存儲單元的寫入電流、寫入時間和磁性隧道結尺寸的關系可用如下公式刻畫:
【權利要求】
1.一種新型的STT-MRAM緩存設計方法,其特征在于:該方法具體步驟如下: 步驟一:在芯片制造過程中,針對物理版圖中L1STT-MRAM部分,采用小尺寸的MTJ生產工藝;針對物理版圖中L2STT-MRAM部分采用正常尺寸的MTJ生產工藝; 步驟二:芯片工作時,訪存指令執行時,處理器向LlCache發出物理地址,LI的標記表項與物理地址的對應部分進行比較,如果比較命中,則不需要訪問L2Cache ;如果是讀操作,則STT-MRAM的讀能耗與SRAM相差不大;如果是寫操作,則由于LlCache的STT-MRAM尺寸較小,寫能耗得到顯著降低,同時由于相同面積內集成更多數目的小尺寸MTJ,LlCache的容量更大,較少了 LlCache的缺失率,提高了處理器性能; 步驟三:如果訪問LlCache不命中,需要將L2Cache中的數據復制到LlCache中;如果LlCache已滿,需要將某些LlCache中的數據替換出來;如果被替換的數據沒有被修改,則不需要復制到L2Cache中;如果已經被修改,則需要將該數據寫入L2Cache中;由于LlCache的容量比較大,所以處理器與L2Cache的交互次數顯著減少,避免寫較大尺寸的L2Cache帶來的性能損失和能耗開銷。
【文檔編號】G06F12/08GK103810118SQ201410072210
【公開日】2014年5月21日 申請日期:2014年2月28日 優先權日:2014年2月28日
【發明者】成元慶, 郭瑋, 趙巍勝, 張有光 申請人:北京航空航天大學