存儲器輸出頁面零數(shù)據(jù)的方法及存儲器的制造方法
【專利摘要】本發(fā)明公開了一種存儲器輸出頁面零數(shù)據(jù)的方法,包括:獲取頁面的虛擬地址;查找與頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng);若TLB命中,則判斷頁面中預(yù)定的頁面區(qū)域是否全為0數(shù)據(jù);若頁面區(qū)域全為0數(shù)據(jù),則向外輸出0數(shù)據(jù)或向寄存器發(fā)送置0信號,以使接收頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為0。由于本發(fā)明避免了從緩存中讀取頁面區(qū)域的零數(shù)據(jù),而是直接輸出0數(shù)據(jù)至及寄存器或?qū)⒓拇嫫髦?,這大大提高了存儲器的讀取速度。
【專利說明】存儲器輸出頁面零數(shù)據(jù)的方法及存儲器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子存儲【技術(shù)領(lǐng)域】,具體涉及一種存儲器輸出頁面零數(shù)據(jù)的方法及存儲器。
【背景技術(shù)】
[0002]在電子存儲【技術(shù)領(lǐng)域】中,典型的單核心處理器的存儲器可以分為一級緩存(Llcache)、二級緩存(L2cache)、內(nèi)存和磁盤幾個層次,其訪問速度依次遞減,容量依次遞增。為了使存儲器能夠支持更大的容量需求,業(yè)界提出了虛擬存儲器的技術(shù),即在存儲器中增加虛擬存儲器,虛擬存儲器通過“虛擬地址-物理地址”的映射表(又稱頁表),來實(shí)現(xiàn)比物理存儲器(即內(nèi)存)容量更大的虛擬存儲。
[0003]在采用虛擬存儲器技術(shù)之后,處理器在進(jìn)行存儲器數(shù)據(jù)訪問時,需要先通過虛擬存儲器將虛擬地址轉(zhuǎn)換成物理地址,然后用物理地址訪問緩存和內(nèi)存。如圖1所示,圖1表示了存儲器的讀訪問過程,其中緩存的索引一般為虛擬地址的部分字段。具體的,存儲器的讀訪問處理過程如下:輸入虛擬地址,將虛擬地址與旁路轉(zhuǎn)換緩沖(Translationlookaside buffer, TLB) 101中的虛擬地址標(biāo)記中的地址進(jìn)行比較,若TLB命中,則TLBlOl將虛擬地址轉(zhuǎn)換為物理地址,并將物理地址和一級緩存102包含的一級緩存標(biāo)記(Llcache-tag)中的地址進(jìn)行比較,若命中,則從一級緩存數(shù)據(jù)中獲得需要的數(shù)據(jù)。當(dāng)一級緩存未命中,則需要對二級緩存進(jìn)行訪問,若二級緩存也未命中,則需要對內(nèi)存進(jìn)行訪問。
[0004]在對現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),虛擬存儲的頁面中,零頁占所有頁面的比例大。雖然零頁數(shù)據(jù)全為0,但是傳統(tǒng)的存儲器訪問并沒有對零頁數(shù)據(jù)進(jìn)行特殊處理,仍然需要從緩存或內(nèi)存中讀取,讀取零頁數(shù)據(jù)的速度與讀取其他頁面數(shù)據(jù)的速度相當(dāng),并無讀取速度上的優(yōu)勢。因此,如果能夠提高零頁數(shù)據(jù)的讀取速度,將大大提升整體的數(shù)據(jù)讀取效率。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種存儲器輸出頁面零數(shù)據(jù)的方法及存儲器,可以提高頁面零數(shù)據(jù)的讀取速度。
[0006]本發(fā)明實(shí)施例提供的一種存儲器輸出頁面零數(shù)據(jù)的方法,包括:
[0007]獲取頁面的虛擬地址;
[0008]查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng);
[0009]若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù),若所述頁面區(qū)域全為O數(shù)據(jù),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0010]本發(fā)明實(shí)施例提供的一種存儲器,包括:
[0011]獲取單元,用于獲取頁面的虛擬地址;
[0012]查找單元,用于查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng);[0013]判斷單元,用于若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù);
[0014]輸出單元,用于若所述頁面區(qū)域全為O數(shù)據(jù),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0015]本發(fā)明實(shí)施例還提供了一種存儲器,包括旁路轉(zhuǎn)換緩沖TLB和與所述TLB連接的高速緩沖存儲器,
[0016]所述TLB設(shè)有用于輸出第一信號的第一輸出端和用于輸出第二信號的第二輸出端,所述第一信號用于表示所述TLB是否命中,所述第二信號用于表示訪問的頁面中的預(yù)定大小的頁面區(qū)域是否全為O數(shù)據(jù);
[0017]所述TLB的第一輸出端和所述TLB的第二輸出端分別連接門電路的第一輸入端和所述門電路的第二輸入端,所述門電路的輸出端連接數(shù)據(jù)選擇器的數(shù)據(jù)選擇輸入端,所述高速緩沖存儲器的數(shù)據(jù)輸出端連接所述數(shù)據(jù)選擇器的數(shù)據(jù)輸入端;
[0018]所述門電路輸出端用于當(dāng)所述第一輸入端輸入的第一信號表不所述TLB命中時,而且當(dāng)所述第二輸入端輸入的第二信號表示訪問的頁面中的預(yù)定大小的頁面區(qū)域全為O數(shù)據(jù)時,所述門電路輸出端向所述數(shù)據(jù)選擇器的數(shù)據(jù)選擇輸入端輸出有效選擇信號,以使所述數(shù)據(jù)選擇器的數(shù)據(jù)輸出端輸出O數(shù)據(jù)。
[0019]實(shí)施例中,在所述TLB命中后,以及當(dāng)所訪問的頁面中的預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性表示所述頁面區(qū)域全為O數(shù)據(jù),則直接從數(shù)據(jù)輸出端輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為0,而沒有繼續(xù)從緩存中讀取所述頁面區(qū)域的O數(shù)據(jù)。由于無需讀取緩存中的數(shù)據(jù),直接輸出O數(shù)據(jù)至及寄存器或?qū)⒓拇嫫髦?,這大大提高了頁面的讀取速度。
【專利附圖】
【附圖說明】
[0020]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0021]圖1是現(xiàn)有的訪問存儲器的不意圖;
[0022]圖2是實(shí)施例1提供的一種存儲器輸出頁面零數(shù)據(jù)的方法的流程示意圖;
[0023]圖3是實(shí)施例2提供的一種存儲器輸出頁面零數(shù)據(jù)的方法的流程示意圖;
[0024]圖4是實(shí)施例3提供的一種存儲器輸出頁面零數(shù)據(jù)的方法的流程示意圖;
[0025]圖5是實(shí)施例3提供的一種存儲器輸出頁面零數(shù)據(jù)的方法的程序處理流程示意圖;
[0026]圖6是實(shí)施例4提供的一種存儲器輸出頁面零數(shù)據(jù)的方法的流程示意圖;
[0027]圖7是實(shí)施例5提供的一種存儲器的結(jié)構(gòu)示意圖;
[0028]圖8是實(shí)施例6提供的一種存儲器的結(jié)構(gòu)示意圖;
[0029]圖9是實(shí)施例7提供的一種存儲器的結(jié)構(gòu)示意圖;
[0030]圖10是實(shí)施例8提供的一種存儲器的結(jié)構(gòu)示意圖;
[0031]圖11是實(shí)施例9提供的一種存儲器的結(jié)構(gòu)示意圖;[0032]圖12是實(shí)施例10提供的一種存儲器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]實(shí)施例1
[0035]本發(fā)明實(shí)施例公開了一種存儲器輸出頁面零數(shù)據(jù)的方法,流程圖如圖2所示,包括:
[0036]201、獲取頁面的虛擬地址,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0037]處理器接收到應(yīng)用程序發(fā)來的虛擬地址后,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0038]202、若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)。
[0039]若查找到與所述虛擬地址相對應(yīng)的TLB表項(xiàng),即所述TLB命中,則可以對所述頁面中預(yù)定的頁面區(qū)域是否全為O進(jìn)行判斷。所述預(yù)定的頁面區(qū)域可為預(yù)定大小的頁面區(qū)域,如二分之一頁、四分之一頁或者八分之一頁,或者更細(xì)粒度的頁面區(qū)域,當(dāng)然,還可以是整個頁面。
[0040]203、若所述頁面區(qū)域全為O數(shù)據(jù),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0041]若查詢到的所述頁面區(qū)域包含的數(shù)據(jù)全為0,則無需將虛擬地址轉(zhuǎn)換成物理地址,以及從一級緩存讀取所述頁面區(qū)域的數(shù)據(jù),而是直接在數(shù)據(jù)輸出端生成O數(shù)據(jù),并向外輸出O數(shù)據(jù),即直接向目標(biāo)寄存器返回O數(shù)據(jù),或者將用于接收所述頁面區(qū)域數(shù)據(jù)的寄存器直接置為O。
[0042]由于省卻了訪問緩存的過程,因此,本實(shí)施例方法提高了讀取零數(shù)據(jù)頁面區(qū)域的速度,從而提高了讀取頁面的速度。
[0043]實(shí)施例2
[0044]本發(fā)明實(shí)施例公開了一種存儲器輸出頁面零數(shù)據(jù)的方法,流程圖如圖3所示,包括:
[0045]301、獲取頁面的虛擬地址,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0046]處理器接收到應(yīng)用程序發(fā)來的虛擬地址后,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0047]302、若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù),以及判斷所述頁面是否為只讀頁面。
[0048]所述預(yù)定的頁面區(qū)域可為二分之一頁、四分之一頁或者八分之一頁,或者更細(xì)粒度的頁面區(qū)域,當(dāng)然,還可以是整個頁面。
[0049]303、若所述頁面區(qū)域全為O數(shù)據(jù),而且所述頁面為只讀頁面,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0050]在上述實(shí)施例中,由于O數(shù)據(jù)并非從緩存或內(nèi)存中讀取,而是從存儲器的輸出端直接生成并輸出O數(shù)據(jù),因此,對該頁面區(qū)域難以進(jìn)行寫操作,為了避免寫操作情況的發(fā)生,本發(fā)明實(shí)施例即僅當(dāng)訪問只讀頁面的O數(shù)據(jù)頁面區(qū)域時,向外直接輸出O數(shù)據(jù)。由于省卻了訪問緩存的過程,因此,本實(shí)施例方法提高了讀取零數(shù)據(jù)頁面區(qū)域的速度,從而提高了讀取頁面的速度。
[0051]為了更好的解決本發(fā)明技術(shù)問題,在本實(shí)施例的基礎(chǔ)上,還可以采取以下進(jìn)一步措施。
[0052]在所述獲取頁面的虛擬地址的步驟之前,本實(shí)施例方法還可以包括以下步驟:在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性;檢測所述頁面是否為只讀頁面,以及檢測所述頁面中預(yù)定的頁面區(qū)域是否為全為O數(shù)據(jù);若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài)。
[0053]因此,判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)以及判斷所述頁面是否為只讀頁面只需查看零頁屬性是否為有效狀態(tài)即可得到判斷結(jié)果。具體的,該判斷步驟包括:查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性;若查詢到的所述零頁屬性置為有效狀態(tài),則判斷所述頁面區(qū)域全為O數(shù)據(jù),而且所述頁面為只讀頁面。
[0054]簡而言之,當(dāng)查詢到所述零頁屬性為有效狀態(tài)時,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0055]此外,在本實(shí)施例中,為了節(jié)約TLB的資源,可以在所述TLB的保留位中設(shè)置所述零頁屬性。若所述TLB中沒有多余的保留位,則可以添加位數(shù),以設(shè)置頁面區(qū)域的零頁屬性。
[0056]實(shí)施例3
[0057]本發(fā)明實(shí)施例公開了一種存儲器輸出頁面零數(shù)據(jù)的方法,流程圖如圖4所示,包括:
[0058]401、獲取頁面的虛擬地址,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0059]處理器接收到應(yīng)用程序發(fā)來的虛擬地址后,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0060]402、若所述TLB命中,則判斷所述頁面是否為只讀零頁。
[0061]具體的,即判斷所述頁面的整個頁面是否全為O數(shù)據(jù),而且判斷所述頁面是否為只讀頁面。當(dāng)所述頁面全為O數(shù)據(jù),而且所述頁面為只讀頁面時,則判斷所述頁面為只讀零頁。
[0062]403、若判斷所述頁面為只讀零頁,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0063]本實(shí)施例是針對訪問的頁面為只讀零頁(全頁數(shù)據(jù)都為O的只讀頁面)的情況進(jìn)行說明。應(yīng)用本實(shí)施例方法,當(dāng)所訪問的頁面為只讀零頁時,無需從緩存讀取數(shù)據(jù),直接輸出零數(shù)據(jù),或者將用于存儲所述頁面的寄存器置為0,提高了零頁的讀取速度。
[0064]在本實(shí)施例中,由于O數(shù)據(jù)并非從緩存或內(nèi)存中讀取,因此,對該頁面難以進(jìn)行寫操作,為了避免寫操作情況的發(fā)生,本發(fā)明實(shí)施例僅將只讀頁面中的O數(shù)據(jù)向外直接輸出。[0065]以下結(jié)合圖5,對本實(shí)施例進(jìn)行進(jìn)一步的說明。
[0066]本實(shí)施例方法的處理流程可以包括:
[0067]501、開始存儲器的讀操作。
[0068]502、判斷TLB是否命中。
[0069]若TLB命中,則實(shí)施步驟503 ;
[0070]若TLB未命中,則返回步驟501。
[0071]503、判斷頁面是否為只讀零頁。
[0072]若頁面的零頁屬性為有效狀態(tài),則表示所述頁面為只讀零頁。
[0073]若判斷頁面為只讀零頁,則實(shí)施步驟504:輸出O數(shù)據(jù)或?qū)⒛繕?biāo)寄存器置O。這里的目標(biāo)寄存器為存儲器讀操作的目的端,即用于存儲該頁面的寄存器。
[0074]若判斷頁面不為只讀零頁,則實(shí)施步驟505:依據(jù)現(xiàn)有的TLB命中后的處理方法處理。例如,將虛擬地址轉(zhuǎn)換為物理地址,將物理地址與一級緩存標(biāo)記進(jìn)行比較,若命中,讀取一級緩存中的頁面數(shù)據(jù)等。
[0075]為了更好的解決本發(fā)明技術(shù)問題,在本實(shí)施例的基礎(chǔ)上,還可以采取以下進(jìn)一步措施。
[0076]在所述獲取頁面的虛擬地址的步驟之前,本實(shí)施例方法還可以包括以下步驟:在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性;檢測所述頁面是否為只讀零頁;若所述頁面為只讀零頁,則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài)。
[0077]此外,還需說明的是,檢測所述頁面是否為只讀零頁可以分為檢測所述頁面是否為只讀頁面和檢測所述頁面是否為零頁。在所述檢測所述頁面是否為只讀頁面的步驟之后,若所述頁面為非只讀頁面,則將所述零頁屬性置為無效狀態(tài);在所述檢測所述頁面是否為零頁的步驟之后,若所述頁面不為零頁,則將所述零頁屬性置為無效狀態(tài)。簡而言之,當(dāng)檢測所述頁面不為零頁時,將所述零頁屬性置為無效狀態(tài)。
[0078]因此,判斷所述頁面是否為只讀零頁,只需查看零頁屬性是否為有效狀態(tài)即可得到判斷結(jié)果。具體的,該判斷步驟包括:查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性;若查詢到的所述零頁屬性置為有效狀態(tài),則判斷所述頁面為只讀零頁。
[0079]因此,當(dāng)查詢到所述零頁屬性為有效狀態(tài)時,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0080]此外,若查詢到的所述零頁屬性為無效狀態(tài),則從所述頁面的存儲區(qū)域中讀取所述頁面數(shù)據(jù),并向外輸出。具體的,可以從所述TLB中讀取與所述虛擬地址對應(yīng)的物理地址,以及根據(jù)所述物理地址從高速緩沖存儲器中讀取所述頁面區(qū)域的數(shù)據(jù),并向外輸出。
[0081]優(yōu)選的,在本發(fā)明中,當(dāng)所述頁面為只讀零頁時,可以將所述頁面對應(yīng)的零頁屬性置為0,所述O表示所述零頁屬性為有效狀態(tài),因此,若查詢到的所述頁面對應(yīng)的零頁屬性設(shè)為0,則向外輸出O數(shù)據(jù)或?qū)⑾蚣拇嫫靼l(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0082]在本實(shí)施例中,為了節(jié)約TLB的資源,可以在所述TLB的保留位中設(shè)置所述零頁屬性。若所述TLB中沒有多余的保留位,則可以添加位數(shù),以設(shè)置頁面區(qū)域的零頁屬性。
[0083]在本實(shí)施例中,一個零頁屬性不僅可以對應(yīng)一個頁面,還可以與多個頁面對應(yīng)。例如,在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與至少兩個頁面對應(yīng)的共享零頁屬性;以及檢測所述至少兩個頁面是否為只讀零頁,若所述至少兩個頁面都為只讀零頁,則將所述至少兩個頁面共同對應(yīng)的零頁屬性置為有效狀態(tài)。
[0084]因此,步驟403可以包括:當(dāng)查詢到所述頁面對應(yīng)的共享零頁屬性為有效狀態(tài)時,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0085]這里需要指出的是,若其中的部分頁面不為只讀零頁,則該零頁屬性設(shè)置為無效狀態(tài)。由于多個頁面共享零頁屬性,節(jié)約了 TLB中的位資源。
[0086]此外,還需說明的是,在本實(shí)施例中,由于零頁數(shù)據(jù)并不是從緩存或內(nèi)存中讀取,而是直接生成并輸出零數(shù)據(jù),因此,對于只讀零頁而言,可以不在緩存或內(nèi)存中保存,從而提高緩存或內(nèi)存的空間利用率。
[0087]實(shí)施例4
[0088]本發(fā)明實(shí)施例公開了一種存儲器輸出頁面零數(shù)據(jù)的方法,流程圖如圖6所示,包括:
[0089]601、在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性。
[0090]可以在TLB的保留位中設(shè)置頁面區(qū)域?qū)?yīng)的零頁屬性,若沒有保留位,可以添加位數(shù),以設(shè)置頁面區(qū)域?qū)?yīng)的零頁屬性。預(yù)定的頁面區(qū)域可以為預(yù)定大小的頁面區(qū)域,如二分之一、四分之一或者八分之一等大小的頁面。
[0091]具體的,可以在與所述頁面區(qū)域?qū)?yīng)的零頁屬性中設(shè)置編碼,所述編碼對應(yīng)所述頁面中的一個頁面區(qū)域。
[0092]602、檢測所述頁面是否為只讀頁面,以及檢測所述頁面中預(yù)定的頁面區(qū)域是否為全為O數(shù)據(jù),若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài)。
[0093]以下以預(yù)定大小的頁面區(qū)域?yàn)樗姆种豁撁鏋槔M(jìn)行說明。一個頁面包含四個四分之一頁面,按照順序可以分為第一個四分之一頁面、第二個四分之一頁面、第三個四分之一頁面、第四個四分之一頁面。所述編碼即是對這四個四分之一頁面進(jìn)行劃分,每個編碼對應(yīng)一個四分之一頁面。該編碼可以為獨(dú)熱編碼,可以分別用“1000”、“0100”、“0010”、“0001”表示第一至第四個四分之一頁,同時獨(dú)熱編碼的有效位為1,所述I表示所述獨(dú)熱編碼對應(yīng)的頁面區(qū)域包含的數(shù)據(jù)全為0,即表示零頁屬性置為有效狀態(tài)。
[0094]此外,還需說明的是,在所述檢測所述頁面是否為只讀頁面的步驟之后,若所述頁面為非只讀頁面,則將所述零頁屬性置為無效狀態(tài);以及在所述檢測所述頁面中預(yù)定的頁面區(qū)域是否為全為O數(shù)據(jù)的步驟之后,若所述頁面區(qū)域不全為O數(shù)據(jù),則將所述零頁屬性置為無效狀態(tài)。
[0095]603、獲取頁面的虛擬地址,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0096]處理器接收到應(yīng)用程序發(fā)來的虛擬地址后,查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng)。
[0097]604、若所述TLB命中,則查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性。
[0098]具體的,在所述TLB命中后,根據(jù)所述頁面的頁內(nèi)偏移地址,確定被訪問的所述頁面區(qū)域。例如,預(yù)定大小的頁面區(qū)域?yàn)樗姆种豁?,則根據(jù)業(yè)內(nèi)偏移地址的高兩位判斷訪問的是頁面中的第四個四分之一頁面。
[0099]在確定被訪問的所述頁面區(qū)域之后,可以在TLB中查詢設(shè)置有與確定的頁面區(qū)域?qū)?yīng)的編碼的零頁屬性。例如,在確定被訪問的頁面區(qū)域是第四個四分之一頁面之后,查詢設(shè)置有與該第四個四分之一頁面對應(yīng)的編碼的零頁屬性。
[0100]605、若查詢到的所述零頁屬性為有效狀態(tài),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0101]例如,若查詢到的頁面區(qū)域?qū)?yīng)的獨(dú)熱編碼的有效位為1,則所述向外輸出對應(yīng)于所述頁面區(qū)域的O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0102]此外,若查詢到的所述零頁屬性為無效狀態(tài),則從所述頁面的存儲區(qū)域中讀取所述頁面數(shù)據(jù),并向外輸出。具體的,可以從所述TLB中讀取與所述虛擬地址對應(yīng)的物理地址,以及根據(jù)所述物理地址從高速緩沖存儲器中讀取所述頁面區(qū)域的數(shù)據(jù),并向外輸出。
[0103]在本實(shí)施例中,一個零頁屬性可以不僅對應(yīng)一個頁面區(qū)域,還可以與多個頁面區(qū)域?qū)?yīng)。例如,在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與至少兩個頁面區(qū)域?qū)?yīng)的零頁屬性;以及檢測所述至少兩個頁面區(qū)域分別所在的頁面是否都為只讀頁面而且所述至少兩個頁面區(qū)域所包含的數(shù)據(jù)是否全為0,若所述至少兩個頁面區(qū)域分別所在的頁面都為只讀頁面,而且所述至少兩個頁面區(qū)域包含的數(shù)據(jù)全為0,則將所述至少兩個頁面區(qū)域?qū)?yīng)的共享零頁屬性置為有效狀態(tài)。這里需要指出的是,當(dāng)部分頁面區(qū)域不為只讀頁面的區(qū)域或者包含非O數(shù)據(jù),則該零頁屬性設(shè)置為無效狀態(tài)。由于多個頁面區(qū)域共享零頁屬性,節(jié)約了 TLB中的位資源。
[0104]因此,步驟604可以包括:若所述TLB命中,查詢與所述頁面區(qū)域?qū)?yīng)的共享零頁屬性;若查詢到的所述共享零頁屬性置為有效狀態(tài),向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0105]這里還需說明的是,在實(shí)施例1至4中,在判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)之后,若所述頁面區(qū)域全為O數(shù)據(jù),則停止在高速緩沖存儲器中查找所述頁面區(qū)域的數(shù)據(jù)。由于不從高速緩沖存儲器中讀取頁面區(qū)域的數(shù)據(jù),而是向外直接輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為0,因此,可以停止在高速緩沖存儲器中查找所述頁面區(qū)域數(shù)據(jù)的操作,以節(jié)約能耗。
[0106]實(shí)施例5
[0107]如圖7所示,本發(fā)明實(shí)施例提供了一種存儲器,包括:
[0108]獲取單元701,用于獲取頁面的虛擬地址;
[0109]查找單元702,用于查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng);
[0110]判斷單元703,用于若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù);
[0111]輸出單元704,用于若所述頁面區(qū)域全為O數(shù)據(jù),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0112]本實(shí)施例中,所述預(yù)定大小的頁面區(qū)域可為二分之一頁、四分之一頁或者八分之一頁,或者更細(xì)粒度的頁面區(qū)域,當(dāng)然,還可以是整個頁面。所述輸出單元704并不從緩存或內(nèi)存中讀取所述頁面區(qū)域的O數(shù)據(jù),而是直接向外輸出0,從而提高頁面的讀取速度。[0113]實(shí)施例6
[0114]如圖8所示,本發(fā)明實(shí)施例提供了一種存儲器,包括:
[0115]獲取單元801,用于獲取頁面的虛擬地址;
[0116]查找單元802,用于查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng);
[0117]判斷單元803,用于若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù),以及判斷所述頁面是否為只讀頁面;
[0118]輸出單元804,用于若判斷所述頁面區(qū)域全為O數(shù)據(jù),而且所述頁面為只讀頁面,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0119]優(yōu)選的,所述頁面中預(yù)定的頁面區(qū)域?yàn)樗鲰撁娴恼麄€頁面。
[0120]優(yōu)選的,所述存儲器還包括設(shè)置單元805和檢測單元806,所述設(shè)置單元805用于在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性;所述檢測單元806用于檢測所述頁面是否為只讀頁面,以及檢測所述頁面中預(yù)定的頁面區(qū)域是否為全為O數(shù)據(jù),若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài);所述判斷單元包括查詢子單元和判斷子單元,所述查詢子單元用于查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性;所述判斷子單元用于若查詢到的所述零頁屬性置為有效狀態(tài),則判斷所述頁面區(qū)域全為O數(shù)據(jù),而且所述頁面為只讀頁面。
[0121]優(yōu)選的,所述設(shè)置單元805還用于在所述TLB的保留位中設(shè)置所述零頁屬性。
[0122]優(yōu)選的,所述存儲器還包括關(guān)閉單元807,所述關(guān)閉單元807用于在所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)的步驟之后,若所述頁面區(qū)域全為O數(shù)據(jù),停止在高速緩沖存儲器中查找所述頁面區(qū)域的數(shù)據(jù)。
[0123]實(shí)施例7
[0124]如圖9所示,本發(fā)明實(shí)施例提供了一種存儲器,包括:
[0125]獲取單元901,用于獲取頁面的虛擬地址;
[0126]查找單元902,用于查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng);
[0127]判斷單元903,用于若所述TLB命中,則判斷所述頁面是否為只讀零頁;
[0128]輸出單元904,用于若判斷所述頁面為只讀零頁,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0129]優(yōu)選的,所述存儲器還包括設(shè)置單元905和檢測單元906,所述設(shè)置單元905用于在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性;所述檢測單元906用于檢測所述頁面是否為只讀零頁,若所述頁面為只讀零頁,則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài)。所述判斷單元903包括查詢子單元908,所述查詢子單元908用于查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性;所述輸出單元904用于若查詢到的所述零頁屬性置為有效狀態(tài),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0130]優(yōu)選的,所述設(shè)置單元905進(jìn)一步用于在所述TLB的保留位中設(shè)置所述零頁屬性。
[0131]優(yōu)選的,所述設(shè)置單元905還用于在所述TLB中設(shè)置與至少兩個頁面對應(yīng)的共享零頁屬性;[0132]所述檢測單元906還用于檢測所述至少兩個頁面是否為只讀零頁,若所述至少兩個頁面都為只讀零頁,則將所述至少兩個頁面共同對應(yīng)的零頁屬性置為有效狀態(tài);
[0133]所述判斷單元903還用于查詢與所述頁面對應(yīng)的共享零頁屬性;若查詢到的所述共享零頁屬性置為有效狀態(tài),向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0134]優(yōu)選的,所述存儲器還包括關(guān)閉單元907,所述關(guān)閉單元907用于在所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)的步驟之后,若所述頁面區(qū)域全為O數(shù)據(jù),停止在高速緩沖存儲器中查找所述頁面區(qū)域的數(shù)據(jù)。
[0135]實(shí)施例8
[0136]如圖10所示,本發(fā)明實(shí)施例提供了一種存儲器,包括:
[0137]設(shè)置單元1005,用于在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性;
[0138]檢測單元1006,用于檢測所述頁面是否為只讀頁面,以及檢測所述頁面中預(yù)定的頁面區(qū)域是否為全為O數(shù)據(jù),若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài);
[0139]獲取單元1001,用于獲取頁面的虛擬地址;
[0140]查找單元1002,用于查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng);
[0141]判斷單元1003,所述判斷單元1003包括查詢子單元1008,所述查詢子單元1008用于查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性;
[0142]輸出單元1004,用于若查詢到的所述零頁屬性為有效狀態(tài),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
[0143]優(yōu)選的,所述設(shè)置單元1005進(jìn)一步用于在所述TLB的保留位中設(shè)置所述零頁屬性。
[0144]優(yōu)選的,所述檢測單元1006還用于在所述獲取頁面的虛擬地址的步驟之前,在所述零頁屬性中設(shè)置與所述頁面區(qū)域?qū)?yīng)的編碼;
[0145]所述查詢子單元1008還用于根據(jù)所述頁面的頁內(nèi)偏移地址,確定被訪問的所述頁面區(qū)域,以及在確定被訪問的所述頁面區(qū)域之后,查詢設(shè)置有與確定的頁面區(qū)域?qū)?yīng)的編碼的零頁屬性。
[0146]優(yōu)選的,所述編碼為獨(dú)熱編碼。
[0147]優(yōu)選的,所述檢測單元1006還用于在所述獲取頁面的虛擬地址的步驟之前,檢測所述頁面是否為只讀頁面,以及檢測所述頁面是否全為O數(shù)據(jù),若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),將所述頁面區(qū)域?qū)?yīng)的零頁屬性中的獨(dú)熱編碼的有效位設(shè)為
1
[0148]優(yōu)選的,所述設(shè)置單元1005還用于在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與至少兩個頁面區(qū)域?qū)?yīng)的共享零頁屬性;
[0149]所述檢測單元1006還用于檢測所述至少兩個頁面區(qū)域分別所在的頁面是否都為只讀頁面,以及檢測所述至少兩個頁面區(qū)域包含的數(shù)據(jù)是否全為O數(shù)據(jù),若所述至少兩個頁面區(qū)域分別所在的頁面都為只讀頁面,而且所述至少兩個頁面區(qū)域包含的數(shù)據(jù)全為0,則將所述至少兩個頁面區(qū)域?qū)?yīng)的共享零頁屬性置為有效狀態(tài);[0150]所述查詢子單元1008還用于查詢與所述頁面區(qū)域?qū)?yīng)的共享零頁屬性;
[0151]所述輸出單元1004還用于若查詢到的所述共享零頁屬性置為有效狀態(tài),向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
[0152]優(yōu)選的,所述存儲器還包括關(guān)閉單元1007,所述關(guān)閉單元1007用于在所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)的步驟之后,若所述頁面區(qū)域全為O數(shù)據(jù),停止在高速緩沖存儲器中查找所述頁面區(qū)域的數(shù)據(jù)。
[0153]實(shí)施例9
[0154]如圖11所示,本發(fā)明實(shí)施例提供了一種存儲器,包括旁路轉(zhuǎn)換緩沖TLB1101和與所述TLB連接的高速緩沖存儲器1102,所述TLB1101設(shè)有用于輸出第一信號的第一輸出端和用于輸出第二信號的第二輸出端,所述第一信號用于表不所述TLB1101是否命中,所述第二信號用于表示訪問的頁面中的預(yù)定大小的頁面區(qū)域是否全為O數(shù)據(jù);
[0155]所述TLB1101的第一輸出端和所述TLB1101的第二輸出端分別連接門電路1103的第一輸入端和所述門電路1103的第二輸入端,所述門電路1103的輸出端連接數(shù)據(jù)選擇器1104的數(shù)據(jù)選擇輸入端,所述高速緩沖存儲器1102的數(shù)據(jù)輸出端連接所述數(shù)據(jù)選擇器1104的數(shù)據(jù)輸入端;
[0156]所述門電路1103輸出端用于當(dāng)所述第一輸入端輸入的第一信號表不所述TLB1101命中時,而且當(dāng)所述第二輸入端輸入的第二信號表示訪問的頁面中的預(yù)定大小的頁面區(qū)域全為O數(shù)據(jù)時,所述門電路1103輸出端向所述數(shù)據(jù)選擇器1104的數(shù)據(jù)選擇輸入端輸出有效選擇信號,以使所述數(shù)據(jù)選擇器的數(shù)據(jù)輸出端輸出O數(shù)據(jù)。
[0157]例如,所述門電路1103可以為與門電路1103。當(dāng)所述TLB1101向與門電路1103輸入有效信號O和有效命中信號0,則與門電路1103輸出有效選擇信號seio,所述數(shù)據(jù)選擇器1104在接收到selO后,直接O數(shù)據(jù)輸出。因此,在讀取零頁數(shù)據(jù)時,可以不從緩存或內(nèi)存中讀取,而是由所述數(shù)據(jù)選擇器1104直接生成O數(shù)據(jù)輸出,從而提高讀取零頁數(shù)據(jù)的速度。在本實(shí)施例中,selO信號是在TLB1101命中及訪問的頁面的預(yù)定大小的頁面區(qū)域全為O產(chǎn)生的,所述預(yù)定大小的頁面區(qū)域可為二分之一頁、四分之一頁或者八分之一頁,或者更細(xì)粒度的頁面區(qū)域,當(dāng)然,還可以是整個頁面。selO信號用于控制所述數(shù)據(jù)選擇器1104的數(shù)據(jù)輸出,當(dāng)與門電路1103輸出的不是selO信號,則數(shù)據(jù)選擇器1104可以選擇高速緩沖存儲器1102輸出的數(shù)據(jù)。
[0158]實(shí)施例10
[0159]如圖12所示,本發(fā)明實(shí)施例提供了一種存儲器,包括旁路轉(zhuǎn)換緩沖TLB1201和高速緩沖存儲器1202,所述TLB1201設(shè)有用于輸出第一信號的第一輸出端和用于輸出第二信號的第二輸出端,所述第一信號用于表不所述TLB1201是否命中,所述第二信號用于表不訪問的頁面中的預(yù)定大小的頁面區(qū)域是否全為O數(shù)據(jù);
[0160]所述TLB1201的第一輸出端和所述TLB1201的第二輸出端分別連接門電路1203的第一輸入端和所述門電路1203的第二輸入端,所述門電路1203的輸出端連接數(shù)據(jù)選擇器1204的數(shù)據(jù)選擇輸入端,所述高速緩沖存儲器1202的數(shù)據(jù)輸出端連接所述數(shù)據(jù)選擇器1204的數(shù)據(jù)輸入端;
[0161]所述門電路1203輸出端用于當(dāng)所述第一輸入端輸入的第一信號表不所述TLB1201命中時,而且當(dāng)所述第二輸入端輸入的第二信號表示訪問的頁面中的預(yù)定大小的頁面區(qū)域全為O數(shù)據(jù)時,向所述數(shù)據(jù)選擇器1204的數(shù)據(jù)選擇輸入端輸出有效選擇信號,以使所述數(shù)據(jù)選擇器的數(shù)據(jù)輸出端輸出O數(shù)據(jù)。
[0162]所述數(shù)據(jù)選擇器1204的數(shù)據(jù)輸出端用于當(dāng)所述的數(shù)據(jù)選擇輸入端輸入所述門電路1203輸出的所述有效選擇信號時,輸出O數(shù)據(jù)。
[0163]優(yōu)選的,所述門電路1203為與門電路。例如,當(dāng)所述第一信號有效時,所述第一信號表示所述TLB1201命中,當(dāng)所述第二信號有效時,所述第二信號表示訪問的頁面中的預(yù)定大小的頁面區(qū)域全為O數(shù)據(jù),當(dāng)所述與門電路的第一輸入端和第二輸入端分別輸入有效的第一信號和有效的第二信號時,則所述與門電路的輸出端輸出有效選擇信號。
[0164]優(yōu)選的,所述門電路1203輸出端連接門控時鐘電路1205的輸入端,所述門控時鐘電路1205的輸出端連接所述高速緩沖存儲器1202的門控時鐘信號輸入端,所述門控時鐘電路1205的輸出端用于當(dāng)所述門電路1203輸出端輸出所述有效選擇信號時,向所述高速緩沖存儲器1202輸入用于表示表示停止所述高速緩沖存儲器工作的信號;
[0165]所述門控時鐘電路的輸出端還連接所述TLB的門控時鐘信號的輸入端,所述門控時鐘電路的輸出端還用于當(dāng)所述門電路輸出端輸出所述有效選擇信號時,向所述TLB輸入用于表示停止從所述TLB的存儲陣列中讀取物理地址的信號。
[0166]在本實(shí)施例中,當(dāng)所述TLB1201向所述與門電路輸入有效信號和有效命中信號,則所述與門電路輸出有效選擇信號selO,所述數(shù)據(jù)選擇器1204在接收到selO后,直接O數(shù)據(jù)輸出。因此,在讀取零頁數(shù)據(jù)時,可以不從緩存或內(nèi)存中讀取,因此,selO此時可以作為門控時鐘關(guān)閉所述高速緩沖存儲器1202中用于讀取訪問頁面數(shù)據(jù)的單元以及所述TLB1201中用于向緩存讀取數(shù)據(jù)的單元,以節(jié)省能耗。
[0167]優(yōu)選的,所述門電路1203輸出端還連接寄存器(未在圖12示出)的輸入端,所述門電路1203輸出端用于向所述寄存器輸入所述有效選擇信號,以使所述寄存器將用于接收所述頁面區(qū)域數(shù)據(jù)的存儲區(qū)域置為O。
[0168]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(ROM, Read Only Memory)、隨機(jī)存取記憶體(RAM, RandomAccess Memory)、磁盤或光盤等。
[0169]以上對本發(fā)明實(shí)施例所提供的一種存儲器輸出頁面零數(shù)據(jù)的方法及存儲器進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,包括: 獲取頁面的虛擬地址; 查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng); 若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù); 若所述頁面區(qū)域全為O數(shù)據(jù),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
2.根據(jù)權(quán)利要求1所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,還包括:若所述TLB命中,則判斷所述頁面是否為只讀頁面; 所述向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號的步驟包括:在判斷所述頁面區(qū)域是否全為O數(shù)據(jù)之后,以及在判斷所述頁面是否為只讀頁面之后,若判斷所述頁面區(qū)域全為O數(shù)據(jù),而且所述頁面為只讀頁面,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
3.根據(jù)權(quán)利要求2所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,所述頁面中預(yù)定的頁面區(qū)域?yàn)樗鲰撁娴恼麄€頁面。
4.根據(jù)權(quán)利要求2或3所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,還包括:在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性; 檢測所述頁面是否為只讀頁面,以及檢測所述頁面中預(yù)定的頁面區(qū)域是否為全為O數(shù)據(jù),若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài); 所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)以及判斷所述頁面是否為只讀頁面的步驟包括: 查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性; 若查詢到的所述零頁屬性置為有效狀態(tài),則判斷所述頁面區(qū)域全為O數(shù)據(jù),而且所述頁面為只讀頁面。
5.根據(jù)權(quán)利要求4所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,所述在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性的步驟具體為:在所述TLB的保留位中設(shè)置所述零頁屬性。
6.根據(jù)權(quán)利要求3所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,所述方法還包括: 在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與至少兩個頁面對應(yīng)的共享零頁屬性,以及檢測所述至少兩個頁面是否為只讀零頁,若所述至少兩個頁面都為只讀零頁,則將所述至少兩個頁面共同對應(yīng)的零頁屬性置為有效狀態(tài); 所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)以及判斷所述頁面是否為只讀頁面的步驟包括: 查詢與所述頁面對應(yīng)的共享零頁屬性; 若查詢到的所述共享零頁屬性置為有效狀態(tài),向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
7.根據(jù)權(quán)利要求4所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,所述在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性的步驟包括:在所述零頁屬性中設(shè)置與所述頁面區(qū)域?qū)?yīng)的編碼; 所述查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性的步驟包括: 根據(jù)所述頁面的頁內(nèi)偏移地址,確定被訪問的所述頁面區(qū)域; 在確定被訪問的所述頁面區(qū)域之后,查詢設(shè)置有與確定的頁面區(qū)域?qū)?yīng)的編碼的零頁屬性。
8.根據(jù)權(quán)利要求7所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,所述編碼為獨(dú)熱編碼。
9.根據(jù)權(quán)利要求8所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于, 所述將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài)的步驟包括:將所述頁面區(qū)域?qū)?yīng)的零頁屬性中的獨(dú)熱編碼的有效位設(shè)為I。
10.根據(jù)權(quán)利要求7所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,所述在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性的步驟包括:在所述TLB中設(shè)置與至少兩個頁面區(qū)域?qū)?yīng)的共享零頁屬性; 檢測所述至少兩個頁面區(qū)域分別所在的頁面是否都為只讀頁面,以及檢測所述至少兩個頁面區(qū)域包含的數(shù)據(jù)是否全為0,若所述至少兩個頁面區(qū)域分別所在的頁面都為只讀頁面,而且所述至少兩個頁面區(qū)域包含的數(shù)據(jù)全為0,則將所述至少兩個頁面區(qū)域?qū)?yīng)的共享零頁屬性置為有效狀態(tài); 所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)以及判斷所述頁面是否為只讀頁面的步驟包括: 查詢與所述頁面區(qū)域?qū)?yīng)的共享零頁屬性; 若查詢到的所述共享零頁屬性置為有效狀態(tài),向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
11.根據(jù)權(quán)利要求1或2所述的存儲器輸出頁面零數(shù)據(jù)的方法,其特征在于,還包括:在所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)的步驟之后,若所述頁面區(qū)域全為O數(shù)據(jù),則停止在高速緩沖存儲器中查找所述頁面區(qū)域的數(shù)據(jù)。
12.—種存儲器,包括: 獲取單元,用于獲取頁面的虛擬地址; 查找單元,用于查找與所述頁面的虛擬地址相應(yīng)的旁路轉(zhuǎn)換緩沖TLB表項(xiàng); 判斷單元,用于若所述TLB命中,則判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù);輸出單元,用于若所述頁面區(qū)域全為O數(shù)據(jù),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
13.根據(jù)權(quán)利要求12所述的存儲器,其特征在于, 所述判斷單元還用于若所述TLB命中,則判斷所述頁面是否為只讀頁面; 所述輸出單元還用于在判斷所述頁面區(qū)域是否全為O數(shù)據(jù)之后,以及在判斷所述頁面是否為只讀頁面之后,若所述頁面區(qū)域全為O數(shù)據(jù),而且所述頁面為只讀頁面,則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
14.根據(jù)權(quán)利要求13所述的存儲器,其特征在于,所述頁面中預(yù)定的頁面區(qū)域?yàn)樗鲰撁娴恼麄€頁面。
15.根據(jù)權(quán)利要求13或14所述的存儲器,其特征在于,還包括設(shè)置單元和檢測單元, 所述設(shè)置單元用于在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與頁面中預(yù)定的頁面區(qū)域?qū)?yīng)的零頁屬性; 所述檢測單元用于在所述獲取頁面的虛擬地址的步驟之前,檢測所述頁面是否為只讀頁面,以及檢測所述頁面中預(yù)定的頁面區(qū)域是否為全為O數(shù)據(jù),若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),則將所述頁面區(qū)域?qū)?yīng)的零頁屬性置為有效狀態(tài); 所述判斷單元包括查詢子單元,所述查詢子單元用于查詢與所述頁面區(qū)域?qū)?yīng)的零頁屬性; 所述輸出單元還用于若查詢到的所述零頁屬性置為有效狀態(tài),則向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面區(qū)域數(shù)據(jù)的寄存器的存儲位置為O。
16.根據(jù)權(quán)利要求15所述的存儲器,其特征在于,所述設(shè)置單元進(jìn)一步用于在所述TLB的保留位中設(shè)置所述零頁屬性。
17.根據(jù)權(quán)利要求14所述的存儲器,其特征在于, 所述設(shè)置單元還用于在所述TLB中設(shè)置與至少兩個頁面對應(yīng)的共享零頁屬性; 所述檢測單元還用于檢測所述至少兩個頁面是否為只讀零頁,若所述至少兩個頁面都為只讀零頁,則將所述至少兩個頁面共同對應(yīng)的零頁屬性置為有效狀態(tài); 所述判斷單元包括查詢子單元,所述查詢子單元用于查詢與所述頁面對應(yīng)的共享零頁屬性; 所述輸出單元還用于若查詢到的所述共享零頁屬性置為有效狀態(tài),向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
18.根據(jù)權(quán)利要求15所述的存儲器,其特征在于,所述檢測單元還用于在所述獲取頁面的虛擬地址的步驟之前,在所述零頁屬性中設(shè)置與所述頁面區(qū)域?qū)?yīng)的編碼; 所述查詢子單元還用于根據(jù)所述頁面的頁內(nèi)偏移地址,確定被訪問的所述頁面區(qū)域,以及在確定被訪問的所述頁面區(qū)域之后,查詢設(shè)置有與確定的頁面區(qū)域?qū)?yīng)的編碼的零頁屬性。
19.根據(jù)權(quán)利要求18所述的存儲器,其特征在于,所述編碼為獨(dú)熱編碼。
20.根據(jù)權(quán)利要求19所述的存儲器,其特征在于,所述檢測單元還用于在所述獲取頁面的虛擬地址的步驟之前,檢測所述頁面是否為只讀頁面,以及檢測所述頁面是否全為O數(shù)據(jù),若所述頁面為只讀頁面,而且所述頁面區(qū)域全為O數(shù)據(jù),將所述頁面區(qū)域?qū)?yīng)的零頁屬性中的獨(dú)熱編碼的有效位設(shè)為I。
21.根據(jù)權(quán)利要求18所述的存儲器,其特征在于, 所述設(shè)置單元還用于在所述獲取頁面的虛擬地址的步驟之前,在所述TLB中設(shè)置與至少兩個頁面區(qū)域?qū)?yīng)的共享零頁屬性; 所述檢測單元還用于檢測所述至少兩個頁面區(qū)域分別所在的頁面是否都為只讀頁面,以及檢測所述至少兩個頁面區(qū)域包含的數(shù)據(jù)是否全為O數(shù)據(jù),若所述至少兩個頁面區(qū)域分別所在的頁面都為只讀頁面,而且所述至少兩個頁面區(qū)域包含的數(shù)據(jù)全為0,則將所述至少兩個頁面區(qū)域?qū)?yīng)的共享零頁屬性置為有效狀態(tài); 所述查詢子單元還用于查詢與所述頁面區(qū)域?qū)?yīng)的共享零頁屬性; 所述輸出單元還用于若查詢到的所述共享零頁屬性置為有效狀態(tài),向外輸出O數(shù)據(jù)或向寄存器發(fā)送置O信號,以使接收所述頁面數(shù)據(jù)的寄存器的存儲位置為O。
22.根據(jù)權(quán)利要求12或13所述的存儲器,其特征在于,還包括關(guān)閉單元,所述關(guān)閉單元用于在所述判斷所述頁面中預(yù)定的頁面區(qū)域是否全為O數(shù)據(jù)的步驟之后,若所述頁面區(qū)域全為O數(shù)據(jù),停止在高速緩沖存儲器中查找所述頁面區(qū)域的數(shù)據(jù)。
23.一種存儲器,包括旁路轉(zhuǎn)換緩沖TLB和與所述TLB連接的高速緩沖存儲器,其特征在于, 所述TLB設(shè)有用于輸出第一信號的第一輸出端和用于輸出第二信號的第二輸出端,所述第一信號用于表示所述TLB是否命中,所述第二信號用于表示訪問的頁面中的預(yù)定大小的頁面區(qū)域是否全為O數(shù)據(jù); 所述TLB的第一輸出端和所述TLB的第二輸出端分別連接門電路的第一輸入端和所述門電路的第二輸入端,所述門電路的輸出端連接數(shù)據(jù)選擇器的數(shù)據(jù)選擇輸入端,所述高速緩沖存儲器的數(shù)據(jù)輸出端連接所述數(shù)據(jù)選擇器的數(shù)據(jù)輸入端; 所述門電路輸出端用于當(dāng)所述第一輸入端輸入的第一信號表不所述TLB命中時,而且當(dāng)所述第二輸入端輸入的第二信號表示訪問的頁面中的預(yù)定大小的頁面區(qū)域全為O數(shù)據(jù)時,向所述數(shù)據(jù)選擇器的數(shù)據(jù)選擇輸入端輸出有效選擇信號,以使所述數(shù)據(jù)選擇器的數(shù)據(jù)輸出端輸出O數(shù)據(jù)。
24.根據(jù)權(quán)利要求23所述的存儲器,其特征在于,所述門電路為與門電路。
25.根據(jù)權(quán)利要求23或24所述的存儲器,其特征在于,所述門電路輸出端連接門控時鐘電路的輸入端,所述門控時鐘電路的輸出端連接所述高速緩沖存儲器的門控時鐘信號輸入端,所述門控時鐘電路的輸出端用于當(dāng)所述門電路輸出端輸出所述有效選擇信號時,向所述高速緩沖存儲器輸入用于表示停止所述高速緩沖存儲器工作的信號;所述門控時鐘電路的輸出端還連接所述TLB的門控時鐘信號的輸入端,所述門控時鐘電路的輸出端還用于當(dāng)所述門電路輸出端輸出所述有效選擇信號時,向所述TLB輸入用于表示停止從所述TLB的存儲陣列中讀取物理地址的信號。
26.根據(jù)權(quán)利要求23所述的存儲器,其特征在于,所述門電路輸出端還連接寄存器的輸入端,所述門電路輸出端用于向所述寄存器輸入所述有效選擇信號,以使所述寄存器將用于接收所述頁面區(qū)域數(shù)據(jù)的存儲區(qū)域置為O。
【文檔編號】G06F12/08GK103942156SQ201310019840
【公開日】2014年7月23日 申請日期:2013年1月18日 優(yōu)先權(quán)日:2013年1月18日
【發(fā)明者】劉月吉, 侯銳, 江濤, 張乾龍 申請人:華為技術(shù)有限公司, 中國科學(xué)院計算技術(shù)研究所