[發(fā)明專利]堆棧區(qū)域擴(kuò)充的方法、裝置及硬件平臺(tái)有效
| 申請(qǐng)?zhí)枺?/td> | 202011391989.5 | 申請(qǐng)日: | 2020-12-02 |
| 公開(kāi)(公告)號(hào): | CN112631510B | 公開(kāi)(公告)日: | 2023-05-12 |
| 發(fā)明(設(shè)計(jì))人: | 喻安雄 | 申請(qǐng)(專利權(quán))人: | 海光信息技術(shù)股份有限公司 |
| 主分類號(hào): | G06F3/06 | 分類號(hào): | G06F3/06 |
| 代理公司: | 北京蘭亭信通知識(shí)產(chǎn)權(quán)代理有限公司 11667 | 代理人: | 趙永剛 |
| 地址: | 300384 天津市南開(kāi)區(qū)華苑產(chǎn)*** | 國(guó)省代碼: | 天津;12 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 堆棧 區(qū)域 擴(kuò)充 方法 裝置 硬件 平臺(tái) | ||
1.一種堆棧區(qū)域擴(kuò)充的方法,其特征在于,包括:
S1、獲取可用做堆棧的多個(gè)資源塊,所述多個(gè)資源塊中的每個(gè)資源塊作為一個(gè)堆棧區(qū)域使用,其中,所述多個(gè)資源塊包括設(shè)備內(nèi)部隨機(jī)存取存儲(chǔ)器RAM資源中的資源塊和設(shè)備外部RAM資源中的資源塊,且包括高速RAM資源的資源塊和低速RAM資源的資源塊以及多個(gè)離散RAM區(qū)域中的多個(gè)資源塊,從而提供多個(gè)不連續(xù)的堆棧區(qū)域;
S2、將所述多個(gè)堆棧區(qū)域排序,按照所述多個(gè)堆棧區(qū)域?qū)?yīng)的資源塊的存取速度從高到低進(jìn)行排序,或者,按照所述多個(gè)堆棧區(qū)域?qū)?yīng)的資源塊的存取速度并結(jié)合所述資源塊的大小進(jìn)行排序;
S3、按序使用所述多個(gè)堆棧區(qū)域,使用過(guò)程之中,如果當(dāng)前使用的第一堆棧區(qū)域上溢,則切換到所述第一堆棧區(qū)域的下一堆棧區(qū)域,如果當(dāng)前使用的堆棧區(qū)域下溢,則切換到所述第一堆棧區(qū)域的上一堆棧區(qū)域。
2.根據(jù)權(quán)利要求1所述的堆棧區(qū)域擴(kuò)充的方法,其特征在于,步驟S1之前還包括:根據(jù)系統(tǒng)資源,劃分可用作堆棧的至少一個(gè)資源塊。
3.根據(jù)權(quán)利要求1-2任一項(xiàng)所述的堆棧區(qū)域擴(kuò)充的方法,其特征在于,步驟S2還包括:
將完成排序的所述多個(gè)堆棧區(qū)域的操作管理信息存入數(shù)據(jù)結(jié)構(gòu);所述操作管理信息包括所述多個(gè)堆棧區(qū)域的排列順序信息,以及每個(gè)堆棧區(qū)域的地址、大小及當(dāng)該堆棧區(qū)域作為當(dāng)前使用的堆棧區(qū)域工作時(shí)溢出后需要備份的寄存器及其大小,所述溢出包括上溢和下溢;
步驟S3中根據(jù)所述操作管理信息按序使用所述多個(gè)堆棧區(qū)域。
4.根據(jù)權(quán)利要求3所述的堆棧區(qū)域擴(kuò)充的方法,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)包括數(shù)組,所述數(shù)組中各元素的順序與所述多個(gè)堆棧區(qū)域的排列順序一致,所述數(shù)組中的每個(gè)元素包含的信息包括:與所述元素對(duì)應(yīng)的所述堆棧區(qū)域的地址、大小以及當(dāng)所述堆棧區(qū)域溢出后需要備份的各寄存器及其大小。
5.根據(jù)權(quán)利要求4所述的堆棧區(qū)域擴(kuò)充的方法,其特征在于,所述堆棧區(qū)域溢出后需要備份的各寄存器設(shè)置于對(duì)應(yīng)的堆棧區(qū)域的頂部,所述堆棧溢出后需要備份的各寄存器包括:堆棧指針寄存器SP,堆棧計(jì)數(shù)寄存器CNT,堆棧大小寄存器SZ;步驟S3包括:
S31、程序初始化時(shí),初始化所述數(shù)組的索引,使其指向所述數(shù)組的開(kāi)始元素;根據(jù)所述索引從所述數(shù)組中取出一個(gè)元素,然后根據(jù)該元素包含的信息設(shè)置所述堆棧指針寄存器SP的值、所述堆棧大小寄存器SZ的值、所述堆棧計(jì)數(shù)寄存器CNT的值,并使所述堆棧區(qū)域能夠在溢出時(shí)產(chǎn)生中斷;循環(huán)執(zhí)行下述步驟S32-S34,直至程序結(jié)束;
S32、程序執(zhí)行過(guò)程中,如果遇到需要操作所述堆棧指針寄存器SP來(lái)保留堆棧區(qū)域的指令或操作時(shí),在修改所述堆棧指針寄存器SP的值之前,使所述堆棧計(jì)數(shù)寄存器CNT增加與所述指令或操作相應(yīng)的計(jì)數(shù);如果遇到需要操作所述堆棧指針寄存器SP來(lái)釋放堆棧區(qū)域的指令或操作時(shí),在修改所述堆棧指針寄存器SP的值之前,使所述堆棧計(jì)數(shù)寄存器CNT減去與所述指令或操作相應(yīng)的計(jì)數(shù);
S33、當(dāng)所述堆棧計(jì)數(shù)寄存器CNT的值大于等于所述堆棧大小寄存器SZ的值,或者所述堆棧計(jì)數(shù)寄存器CNT的值小于0時(shí),均觸發(fā)中斷,進(jìn)入中斷處理函數(shù),并將所述堆棧計(jì)數(shù)寄存器CNT的值回退到修改之前,并將標(biāo)志寄存器的堆棧標(biāo)志位置至0或1;
S34、所述中斷處理函數(shù)根據(jù)所述標(biāo)志寄存器的堆棧標(biāo)志位判斷為下溢還是上溢;如果為下溢,則進(jìn)行下溢處理,如果為上溢,則進(jìn)行上溢處理。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于海光信息技術(shù)股份有限公司,未經(jīng)海光信息技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011391989.5/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計(jì)算機(jī)能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機(jī)傳送到輸出設(shè)備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計(jì)算機(jī)之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時(shí)間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來(lái)自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機(jī)上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





