[發(fā)明專利]一種寄存器分配方法、系統(tǒng)及處理器有效
| 申請?zhí)枺?/td> | 201210410331.3 | 申請日: | 2012-10-24 |
| 公開(公告)號: | CN102968379A | 公開(公告)日: | 2013-03-13 |
| 發(fā)明(設(shè)計)人: | 姜軍;顧龍;錢宏;馬曉東;肖謙 | 申請(專利權(quán))人: | 無錫江南計算技術(shù)研究所 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 駱蘇華 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 寄存器 分配 方法 系統(tǒng) 處理器 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,更具體地說,涉及一種寄存器分配方法、系統(tǒng)及處理器。
背景技術(shù)
寄存器是處理器內(nèi)部重要的數(shù)據(jù)存儲資源,是匯編程序員能直接使用的硬件資源之一。由于寄存器的存取速度比內(nèi)存快,所以,在用匯編語言編寫程序時,要盡可能充分利用寄存器的存儲功能。寄存器一般用來保存程序的中間結(jié)果(即變量),為隨后的指令快速提供操作數(shù),從而避免把中間結(jié)果直接存入內(nèi)存,再讀取內(nèi)存的操作。然而由于寄存器的個數(shù)和容量都有限,不可能把所有中間結(jié)果都存儲在寄存器中,所以,要對寄存器進(jìn)行適當(dāng)?shù)恼{(diào)度,由此寄存器分配技術(shù)應(yīng)運(yùn)而生。
目前,寄存器分配大都是針對傳統(tǒng)處理器,遵循寄存器(顯式)→高速緩沖存儲器cache(隱式)→內(nèi)存(顯式)的基本存儲結(jié)構(gòu),變量優(yōu)先分配至寄存器,此處的變量包括向量變量和標(biāo)量變量,當(dāng)寄存器的可用存儲空間用完,寄存器存在變量溢出時,變量將溢出到寄存器外部,保存到內(nèi)存中;這使得內(nèi)存中所保存的變量的數(shù)量較多,極易產(chǎn)生大量的訪存操作,增加了程序的運(yùn)行時間,進(jìn)而使得處理器的運(yùn)行效率降低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種寄存器分配方法、系統(tǒng)及處理器,以解決現(xiàn)有的寄存器分配方式使得內(nèi)存中所保存的變量的數(shù)量較多,極易產(chǎn)生大量的訪存操作,增加了程序的運(yùn)行時間,進(jìn)而使得處理器的運(yùn)行效率降低的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:
一種寄存器分配方法,基于一種處理器,所述處理器包括:向量寄存器,由至少一個存儲器組成的存儲器組,和內(nèi)存,所述存儲器組的讀取速度快于內(nèi)存的讀取速度;所述方法包括:
判斷所述向量寄存器中是否存在能夠存儲當(dāng)前變量的可用存儲空間;
若是,在所述可用存儲空間中,為當(dāng)前變量分配對應(yīng)的存儲空間,將所述當(dāng)前變量保存入所分配的存儲空間中;
若否,判斷所述存儲器組中是否存在能夠存儲當(dāng)前變量的可用存儲空間;
若是,依據(jù)所述存儲器組中各存儲器的讀取速度,將當(dāng)前變量保存入存在可用存儲空間且讀取速度最快的存儲器中;
若否,將當(dāng)前變量保存入內(nèi)存中。
其中,所述判斷向量寄存器中是否存在能夠存儲當(dāng)前變量的可用存儲空間包括:
判斷當(dāng)前變量的類型;
若當(dāng)前變量為向量變量、且所述向量寄存器中不存在可用存儲空間,則所述向量寄存器中不存在能夠存儲當(dāng)前變量的可用存儲空間;
若當(dāng)前變量為向量變量、且所述向量寄存器中存在可用存儲空間,則所述向量寄存器中存在能夠存儲當(dāng)前變量的可用存儲空間;
若當(dāng)前變量為標(biāo)量變量、且所述向量寄存器中的低位存儲空間及高位存儲空間不存在可用存儲空間,則所述向量寄存器中不存在能夠存儲當(dāng)前變量的可用存儲空間;
若當(dāng)前變量為標(biāo)量變量、且所述向量寄存器中的低位存儲空間或高位存儲空間存在可用存儲空間,則所述向量寄存器中存在能夠存儲當(dāng)前變量的可用存儲空間。
其中,當(dāng)前變量為標(biāo)量變量、且所述向量寄存器中的高位存儲空間存在可用存儲空間時,所述為當(dāng)前變量分配對應(yīng)的存儲空間,將所述當(dāng)前變量保存入所分配的存儲空間中包括:
在所述向量寄存器中的高位存儲空間中,為當(dāng)前變量分配對應(yīng)的空閑的存儲空間,將所述當(dāng)前變量保存入所分配的所述向量寄存器中的空閑的高位存儲空間中。
其中,所述存儲器組包括:第一存儲器和第二存儲器,所述第一存儲器的讀取速度快于所述第二存儲器的讀取速度;當(dāng)?shù)谝淮鎯ζ骷暗诙鎯ζ骶嬖谀軌虼鎯Ξ?dāng)前變量的可用存儲空間時,所述依據(jù)所述存儲器組中各存儲器的讀取速度,將當(dāng)前變量保存入存在可用存儲空間且讀取速度最快的存儲器中包括:
依據(jù)第一存儲器和第二存儲器的讀取速度,將當(dāng)前變量保存入存在可用存儲空間且讀取速度最快的第一存儲器中;
當(dāng)?shù)谝淮鎯ζ鞑淮嬖谀軌虼鎯Ξ?dāng)前變量的可用存儲空間,且第二存儲器存在能夠存儲當(dāng)前變量的可用存儲空間時,所述依據(jù)所述存儲器組中各存儲器的讀取速度,將當(dāng)前變量保存入存在可用存儲空間且讀取速度最快的存儲器中包括:
將當(dāng)前變量保存入存在可用存儲空間的第二存儲器中。
其中,所述存儲器組包括:局部存儲器;所述判斷所述存儲器組中是否存在能夠存儲當(dāng)前變量的可用存儲空間包括:
判斷所述局部存儲器內(nèi)是否存在能夠重用的已分配存儲空間;
若是,則所述局部存儲器內(nèi)存在能夠存儲當(dāng)前變量的可用存儲空間;
若否,判斷所述局部存儲器內(nèi)是否存在未分配的存儲空間;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于無錫江南計算技術(shù)研究所,未經(jīng)無錫江南計算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210410331.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





