新四季網

增加處理器中存儲器的方法

2023-09-20 23:07:50

專利名稱:增加處理器中存儲器的方法
技術領域:
本發明涉及一種增加處理器中存儲器的方法,特別涉及一種增加處理器中內部數據存儲器的堆棧存儲器的方法。
背景技術:
MCS(Micro Computer System)是Intel公司對微處理器的總稱,而其所開發的MCS-31/32及51/52系列的處理器更是普遍地應用在工業界中。一般而言,微處理器只含有少量的存儲器以及輸入輸出點,以MCS-51系列的單晶片為例,它有4K字節的程序存儲器、128位元組的數據存儲器以及32條輸入輸出點,MCS-52系列的處理器則是將程序存儲器增加為8K字節,以及將數據存儲器增加為256位元組,而MCS-31/32及51/52系列的處理器同樣使用一個8位的中央處理單元。程序存儲器用來存放使用者所撰寫的程序,屬於只讀存儲器(ROM),數據存儲器則是隨機存取存儲器(RAM),可供中央處理單元運作時讀取或寫入數據,通常是用來當程序執行時暫時存放數據的寄存器。
請參考圖1,圖1為已知MCS-51系列的處理器其內部數據存儲器12的示意圖。內部數據存儲器12為堆棧存儲器、數據存儲器及寄存器存儲器所共用,堆棧地址、數據地址及寄存器地址都是8位的地址,處理器的中央處理單元所執行的也是8位的指令集,在存取內部數據存儲器12時,8位的指令及8位的地址輸入一存儲器地址產生器14後,輸出存儲器地址來存取內部數據存儲器12。MCS-51系列的處理器其內部數據存儲器的容量是128位元組,MCS-52系列的處理器其內部數據存儲器的容量則是256位元組,而MCS-51/52系列的處理器其外部數據存儲器同樣最大可擴充至64K字節。一般來說,使用者可採用直接定址法或間接定址法來存取內部數據存儲器12,直接定址法是將數據存儲器其中一個地址的內容取出作運算,並放入寄存器中,而間接定址法是使用寄存器作為指針,再取得該指針內的值。內部數據存儲器12可劃分下列幾個部分,第一,地址00H-1FH為寄存器庫,此地址共32位元組被分成4個工作寄存器庫(Register Bank),每一個寄存器庫內含有8個寄存器,寄存器庫中的數據可採直接或間接定址法來存取。第二,地址20H-2FH為位定址區,地址20H-2FH共有16位元組,也就是128個位,使用者可利用位運算的指令,直接對位定址區中的位做運算。第三,地址30H-7FH為一般用途區,此區域可供使用者規劃,通常堆棧(stack)即設在此區域,只要將堆棧指針(stack pointer)指到此區即可。第四,地址80H-FFH亦為一般用途區,此區域只存在於MCS-52系列的處理器中,採用間接定址法來存取數據。
請參考圖2,圖2為已知內部數據存儲器12使用兩個堆棧的示意圖。內部數據存儲器12的使用配置如圖所示,一部分作為寄存器及數據的儲存,一部分提供堆棧使用。如上所述,通常堆棧會設在內部數據存儲器12的一般用途區之中,將堆棧指針指向一般用途區的一個位置作為堆棧的起始位置,這個堆棧通常是用來存放呼叫子程序的程序計數,或者是使用者自定的數據。然而很多程序在呼叫子程序時,可能會需要傳參數,這時必須使用另一個堆棧來儲存參數,一般都是使用參數指針(parameter pointer)由內部數據存儲器12的最高地址開始向下數,由於兩個堆棧必須共用有限的存儲器空間,所以使用者在設計程序時需注意兩個堆棧的使用數量,否則很有可能造成數據的錯誤。
由上述可知,已知的MCS-51/52系列的處理器僅提供有限的內部數據存儲器12,而且堆棧存儲器、數據存儲器及寄存器存儲器必須共用這個內部數據存儲器。然而由於系統的發展日益複雜,所需的堆棧存儲器與數據存儲器都大量的增加,雖然數據存儲器12可以利用外部數據存儲器來作擴充,但是堆棧存儲器的大小卻還是受限於處理器所提供的內部數據存儲器。由於堆棧存儲器的大小受到限制,如此一來,複雜的程序常會有堆棧存儲器不夠使用的情形發生,因為程序在呼叫子程序時,必須使用堆棧來記錄,但是受限於堆棧存儲器的大小,程序中便只能呼叫一定數量的子程序,再者,若是子程序中需要傳參數,更是需要使用大量的堆棧。然而由於MCS-51/52的指令即為八位長度,在其指令集的限制下,僅使用一個字節(八位)來表示其內部存儲器位置,故其內部存儲器大小始終受限於256位元組(二的八次方)。在堆棧存儲器的大小無法擴充的情況下,程序設計者在撰寫程序必須注意使用的堆棧數量,使得程序的開發更加困難。

發明內容
因此本發明的主要目的是提供一種增加處理器上的存儲器的方法,以解決上述問題。
為實現上述目的,本發明提供一種增加處理器上的存儲器的方法,該處理器上設有一中央處理單元及一固定存儲器,該方法包含(a)在該處理器上提供一擴充存儲器;(b)使用一地址延伸器以增加位的方式延伸數據地址以及寄存器地址;以及(c)使用一堆棧指針產生器以增加位的方式延伸堆棧地址,使該處理器可存取大於其指令集位限制的存儲器,在堆棧地址大於該固定存儲器的範圍時對增加的位產生進位,並將超出該固定存儲器的範圍的堆棧數據存取於該擴充存儲器。而在步驟(c)中,還包含提供一高位堆棧地址,在堆棧地址大於該固定存儲器的範圍時,使用該高位堆棧地址來儲存該增加位產生的進位。


圖1為已知MCS-51系列的處理器其內部數據存儲器的示意圖。
圖2為已知內部數據存儲器使用兩個堆棧的示意圖。
圖3為本發明處理器的內部數據存儲器的示意圖。
圖4為本發明內部數據存儲器配置的示意圖。
圖5為本發明內部數據存儲器使用兩個堆棧的示意圖。
附圖標號說明12內部數據存儲器 14存儲器地址產生器22內部數據存儲器 24固定存儲器26擴充存儲器 28地址延伸器30堆棧指針產生器具體實施方式
請參考圖3,圖3為本發明處理器的內部數據存儲器22的示意圖。內部數據存儲器22包含一固定存儲器24以及一擴充存儲器26,在一塊較大的存儲器中,可分配一個區域作為固定存儲器24(通常為256個字節),固定存儲器24之外的其它區域則作為擴充存儲器26。由於存儲器的容量變大,需要較多的位來作定址,而處理器的中央處理單元僅能處理8位的指令集,在不改變指令集的情況下,中央處理單元所傳出的原始地址先經由一地址延伸器28在原始地址之前增加適當的位來延伸地址數據,延伸後的地址再由存儲器地址產生器14轉換為存儲器地址,如此,中央處理單元便可以存取較大的數據存儲器。然而,受限於中央處理單元8位的指令集,最多只能表示到FFH,所以最多只能存取256位元組的存儲器大小,換句話說,中央處理單元還是只能在固定存儲器24的範圍內存取數據,而固定存儲器24由堆棧、數據以及寄存器共同使用,但是由於堆棧特殊的處理方式,可以使用擴充存儲器26。堆棧處理方式的特性就是先進後出,也就是存入堆棧中的數據必須等到下一筆存入堆棧中的數據被取出後才會被取出使用,而最後一筆存入堆棧中的數據則會最先被取出的數據,在此情況下,只要提供一塊夠大的存儲器空間,則堆棧內就可以不斷的存入數據。堆棧運作時是使用一堆棧指針來指向一個存儲器地址作為堆棧的起始位置,已知的堆棧指針受限於8位的大小,最多只能表示到FFH,若此時再存入一筆數據至堆棧中,則堆棧指針變成0,則數據便會覆蓋到堆棧起始地址的數據,所以本發明使用一堆棧指針產生器30來延伸堆棧指針的位,使堆棧指針儲存的地址能夠經由存儲器地址產生器14轉換為可以存取較大存儲器的地址,最重要的是,當堆棧指針已經指到FFH而又有下一筆數據需存入堆棧時,堆棧指針產生器30會產生進位儲存於一高位堆棧地址,再將高位堆棧地址合併於堆棧指針之中,經由存儲器地址產生器14轉換為存儲器的地址後,堆棧便可以使用擴充存儲器26來儲存下一筆數據。由於一般存取堆棧數據,並不需要任意指定地址存取,而是由推入,推出(PUSH,POP)指令循序存取,故擴充的堆棧地址可以不表現在堆棧指位器(STACKPOINTER),也因此,不需修改現有的MCS指令集。
請參考圖4,圖4為本發明內部數據存儲器22配置的示意圖。內部數據存儲器22在增加後可分成兩個部分,第一個部分是原始大小的固定存儲器24,第二個部分是增加後的擴充存儲器26。數據存儲器及寄存器存儲器只使用固定存儲器24的空間,而堆棧存儲器通過堆棧指針產生器30及高位堆棧地址在固定存儲器24空間不足時可以使用擴充存儲器26的空間來儲存數據。所以在配置存儲器空間時,由於數據存儲器及寄存器存儲器只能共用固定存儲器24的空間,若是需要較大的數據存儲器及寄存器存儲器空間,可將堆棧指針儘量設在高位,最高可設在FFH的地址,而不超過FFH的原因是為了不改變處理器的指令集。如此,數據存儲器及寄存器存儲器就幾乎可以使用全部的固定存儲器24空間,而堆棧存儲器則因為堆棧指針產生器30及高位堆棧地址可以使用擴充存儲器26來儲存數據。
請參考圖5,圖5為本發明內部數據存儲器22使用兩個堆棧的示意圖。使用者在撰寫程序時常會使用到兩個堆棧,堆棧指針所指的這個堆棧通常是用來存放呼叫子程序的程序計數,或者是使用者自定的數據,而參數指針所指的這個堆棧則是用來存放程序在呼叫子程序時所需要傳的參數。若使用者需要兩個較大容量的堆棧,但是又不希望改變處理器的指令集,可將堆棧指針設定在一個不超過FFH的地址(這是為了不影響原有的指令與架構),而將參數指針設在堆棧指針相鄰低位的地址。堆棧指針由設定的地址向上遞增,因為有堆棧指針產生器30及高位堆棧地址,這個堆棧容量的限制為擴充存儲器26的大小,參數指針由設定的地址向下遞減,直到數據存儲器及寄存器存儲器使用的區域為止。
由上述可知,本發明增加處理器的內部數據存儲器22,使得內部數據存儲器22的可用空間除了原有的固定存儲器24之外,多出了一塊擴充存儲器26,加上使用地址延伸器28在原始地址之前增加適當的位數,經過存儲器地址產生器14轉換後,處理器的中央處理單元便可存取較大的數據存儲器,但受限於中央處理單元僅能處理8位的指令集,所以數據存儲器及寄存器存儲器仍然只能使用固定存儲器24的空間,而由於堆棧運作的特性,在存入堆棧數據超出固定存儲器24範圍時,使用堆棧指針產生器30對增加的位產生進位,並將進位數據儲存於高位堆棧地址,再合併於堆棧指針之中,如此堆棧就可以使用擴充存儲器26來儲存數據。而上述實施例中亦提供較佳的存儲器配置方式,在不改變處理器的指令集的情況下,最高可將堆棧指針設定在FFH的地址,如此數據存儲器及寄存器存儲器可使用幾乎全部的固定存儲器24空間,而堆棧存儲器的空間則視擴充存儲器26的大小而定。若使用者需用到第二個堆棧來儲存程序所傳的參數,可將參數指針設定在堆棧指針相鄰低位的地址,參數指針會由設定的地址向下遞減,使用固定存儲器24中剩餘的空間。
相較於已知技術,本發明提供一種增加處理器的內部數據存儲器的方法,已知的處理器僅提供有限的內部數據存儲器,而且堆棧存儲器、數據存儲器及寄存器存儲器必須共用這個內部數據存儲器。雖然數據存儲器可以利用外部數據存儲器來作擴充,但是堆棧存儲器的大小卻還是受限於處理器所提供的內部數據存儲器,而有堆棧存儲器不夠使用的情形發生,更何況很多複雜的程序常需要使用到兩個堆棧存儲器。本發明增加處理器的內部存儲器,並使用堆棧指針產生器及高位堆棧地址來處理增加的堆棧數據,使得堆棧可以存取擴充存儲器,以解決堆棧存儲器不夠使用的情形。
以上所述僅為本發明的較佳實施例,凡依本發明權利要求所做的均等變化與修飾,均應屬本發明專利的涵蓋範圍。
權利要求
1.一種增加一處理器上的存儲器的方法,該處理器上設有一中央處理單元及一固定存儲器,該方法包含(a)在該處理器上提供一擴充存儲器;(b)使用一地址延伸器以增加位的方式延伸數據地址以及寄存器地址;以及(c)使用一堆棧指針產生器以增加位的方式延伸堆棧地址,使該處理器可存取大於其指令集位限制的存儲器,於堆棧地址大於該固定存儲器的範圍時對增加的位產生進位,並將超出該固定存儲器的範圍的堆棧數據存取於該擴充存儲器。
2.如權利要求1所述的方法,其在步驟(c)中,還包含提供一高位堆棧地址,在堆棧地址大於該固定存儲器的範圍時,使用該高位堆棧地址來儲存該增加位產生的進位。
3.如權利要求1所述的方法,其中該處理器為MCS系列的處理器。
4.如權利要求1所述的方法,其中該中央處理單元處理8位的指令集。
5.如權利要求1所述的方法,其中該固定存儲器以及該擴充存儲器存在於同一塊存儲器之中。
6.如權利要求5所述的方法,其中該固定存儲器的大小為256位元組。
7.如權利要求1所述的方法,其中數據、寄存器以及堆棧共用該固定存儲器。
8.如權利要求1所述的方法,其中該擴充存儲器僅供堆棧使用。
9.一種實施權利要求1所述的方法的晶片。
全文摘要
一種增加處理器上的存儲器的方法,使得該處理器能存取大於其指令位數所能表達的存儲器大小。該處理器上設有一中央處理單元及一固定存儲器。該方法包含於該處理器上提供一擴充存儲器,使用一地址延伸器以增加位的方式延伸數據地址以及寄存器地址,以及使用一堆棧指針產生器以增加位的方式延伸堆棧地址,在堆棧地址大於該固定存儲器的範圍時對增加的位產生進位,並將超出該固定存儲器的範圍的堆棧數據存取於該擴充存儲器。
文檔編號G06F12/00GK1534484SQ0310852
公開日2004年10月6日 申請日期2003年3月28日 優先權日2003年3月28日
發明者杜立群, 陳炳盛, 曾寶慶, 郭弘政 申請人:聯發科技股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀