两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

使用數(shù)據(jù)隨機(jī)存取存儲器的微控制器的強(qiáng)制頁面分頁方法

文檔序號:6651207閱讀:253來源:國知局
專利名稱:使用數(shù)據(jù)隨機(jī)存取存儲器的微控制器的強(qiáng)制頁面分頁方法
本申請是1997年7月3日提交的名稱為“使用數(shù)據(jù)隨機(jī)存取存儲器的微控制器的強(qiáng)制零頁分頁方法”、申請?zhí)枮?8/887876、的美國專利申請的部分繼續(xù),該發(fā)明專利申請轉(zhuǎn)讓給與本申請相同的受讓人,因此該申請與本發(fā)明至少有一個(gè)共同的發(fā)明人。
本發(fā)明一般涉及微處理器,更具體地講,是涉及微處理器的隨機(jī)存取存儲器的分頁方法(paging scheme),該方法使用戶能夠在微處理器的隨機(jī)存取存儲器中對任何頁面進(jìn)行選擇并且還能夠直接存儲特殊功能寄存器或寄存器變量,而不需要修改當(dāng)前指令的頁面選擇寄存器。
目前的各種微控制器,包括PIC微控制器,都利用隨機(jī)存取存儲器(RAM)分頁方法尋址所有的數(shù)據(jù)存儲器。這種方法極其麻煩之處在于,它需要若干個(gè)指令,來確保用戶在RAM中寫入或讀出正確的地址。該方法還使C語言編譯程序的工作變得復(fù)雜,因?yàn)镃語言編譯程序(C-compiler)必須跟蹤當(dāng)前RAM中所選擇頁面。當(dāng)處理中斷時(shí),這種方法會出現(xiàn)更多問題。
在傳統(tǒng)的微控制器結(jié)構(gòu)中,用增加操作碼字段處理較大的地址,能解決頁面尋址的問題。但是,增加操作碼字段不利之處在于,它會增加微控制器的大小,并因此增加微處理器的總的成本。另外一種緩解RAM分頁問題的方法是對每個(gè)存儲組(bank)或頁面中的所有的特殊功能和寄存器專用的存儲器空間進(jìn)行映射。這種方法浪費(fèi)了RAM寶貴的空間,因?yàn)槊總€(gè)被映射的位置在每個(gè)存儲組中都占用一個(gè)RAM通用位置。如果該微控制器具有8個(gè)頁面,則RAM的7個(gè)位置被浪費(fèi)了。
因此,需要提供一種改進(jìn)的微控制器結(jié)構(gòu)和分頁方法。改進(jìn)的微控制器結(jié)構(gòu)和分頁方法必須允許直接訪問特殊功能寄存器。改進(jìn)的微控制器結(jié)構(gòu)和分頁方法必須允許直接訪問特殊功能寄存器,而不用修改正在被微控制器使用的當(dāng)前指令的頁面選擇寄存器。改進(jìn)的微控制器結(jié)構(gòu)和分頁方法還必須允許直接訪問特殊功能寄存器,而不增加微控制器的大小。
按照本發(fā)明的一個(gè)實(shí)施例,本發(fā)明的一個(gè)目的是提供一種改進(jìn)的微控制器結(jié)構(gòu)和分頁方法。
本發(fā)明的另一個(gè)目的是提供一種改進(jìn)的微控制器結(jié)構(gòu)和分頁方法,允許直接訪問特殊功能寄存器,而不修改微控制器正在執(zhí)行的當(dāng)前指令的頁面選擇寄存器。
本發(fā)明的再一個(gè)目的就是提供一種改進(jìn)的微控制器結(jié)構(gòu)和分頁方法,允許直接訪問特殊功能寄存器,而不用增加微控制器的大小。
在一個(gè)實(shí)施例中,本發(fā)明提供了一種用于使用數(shù)據(jù)隨機(jī)存取存儲器的微控制器的分頁方法,該方法能在該隨機(jī)存取存儲器中跟蹤當(dāng)前選擇的地址。該方法包括這一步驟在微控制器的每個(gè)操作碼指令中設(shè)一專用位。當(dāng)該位被設(shè)置時(shí),該位強(qiáng)制數(shù)據(jù)訪問發(fā)生在隨機(jī)存取存儲器中用于存儲特殊功能寄存器和通用寄存器的部分,而不影響微控制器的當(dāng)前操作。即使當(dāng)該位被設(shè)置時(shí),該專用位也不會修改當(dāng)前選擇的存儲在微控制器當(dāng)前使用的頁面選擇寄存器中的地址。該方法還可以包括以下各步驟將隨機(jī)存取存儲器的整個(gè)地址范圍線性化;并且將隨機(jī)存取存儲器中的一專用地址段給特殊功能寄存器和通用寄存器專用。被專用地址段可以是存儲器中的任何頁。這是本發(fā)明的一個(gè)有用的特性,因?yàn)樵撎匦允估绫仨毨么鎯ζ鞯膶S貌糠?例如,第一頁(0)或最后頁(f))的程序能夠使用。
按照另一個(gè)實(shí)施例,本發(fā)明提供一種具有強(qiáng)制頁面結(jié)構(gòu)的微控制器。該微控制器具有隨機(jī)存取存儲器,該存儲器具有整個(gè)線性化的地址范圍。隨機(jī)存取存儲器被分為多個(gè)頁面,其中一個(gè)頁面被專用于特殊功能寄存器和通用寄存器。在微控制器中的每個(gè)操作碼指令中的專用位被用于強(qiáng)制數(shù)據(jù)訪問發(fā)生在隨機(jī)存取存儲器中用于保存特殊功能寄存器和通用寄存器的頁面。該專用位的設(shè)置將既不影響微控制器當(dāng)前的操作,也不會修改當(dāng)前選擇的存儲在微控制器當(dāng)前正在使用的頁面選擇寄存器中的地址。
通過以下如附圖所示對本發(fā)明的各優(yōu)選實(shí)施例進(jìn)行詳細(xì)描述,本發(fā)明的上述和其它目的、特性和優(yōu)點(diǎn)將變得清楚。


圖1是用于微控制器尋址數(shù)據(jù)存儲器的現(xiàn)有技術(shù)分頁方法的簡化的數(shù)據(jù)存儲器圖;圖2是具有強(qiáng)制頁面分頁方法的8位微控制器的簡化數(shù)據(jù)存儲器圖;圖3是16位操作碼指令的簡化圖;圖4是具有強(qiáng)制頁面分頁方法的16位微控制器的簡化數(shù)據(jù)存儲器圖5是12位操作碼指令的簡化圖;圖6是14位操作碼指令的簡化圖。
參照圖1,表示用于微控制器尋址數(shù)據(jù)存儲器的現(xiàn)有技術(shù)的分頁方法10的簡化方框圖。如上所述,所有的特殊功能和寄存器變量12被映射到RAM的第一頁面。但是,因?yàn)樘厥夤δ芗拇嫫?2應(yīng)在任何時(shí)候都是可訪問的,所以特殊功能寄存器12被映射到每個(gè)存儲組(即,存儲組1-7)。這浪費(fèi)了寶貴的RAM空間,因?yàn)槊總€(gè)被映射的位置占用一個(gè)通用RAM位置。
參照圖2,表示具有強(qiáng)制頁面結(jié)構(gòu)的微控制器20。微控制器20利用隨機(jī)存取存儲器(RAM)22來存儲數(shù)據(jù)。RAM22的大小是根據(jù)微控制器20的特定用途確定的。如從圖2所示,RAM22的整個(gè)地址范圍被線性化。通過將該地址范圍線性化,消除了與現(xiàn)有技術(shù)的存儲分組(banking)和頁面位相關(guān)的問題。
但是,一般來說,微控制器20的許多操作碼指令在地址空間上是受限制的。在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,微控制器20是一個(gè)8位PIC微控制器。因此,微控制器20的許多操作碼指令被限制為8位地址。由于這個(gè)原因,線性地址范圍被分解為多個(gè)頁面。如果微控制器20是8位微控制器,則RAM22被分為多個(gè)256字節(jié)的頁面。但是,正如本專業(yè)的技術(shù)人員所理解的,微控制器20可以是16位微控制器或其它大小的微控制器。在微控制器20是16位微控制器的情況下,如圖4所示RAM22可以被分為多個(gè)64K字節(jié)的頁面。但是,本專業(yè)的技術(shù)人員應(yīng)當(dāng)理解,其它的配置也是可能的。
頁面24,以下稱為強(qiáng)制頁面,被用于存儲特殊功能寄存器12(如圖1所示)和通用寄存器14(如圖1所示)。如上所述,寄存器12和14需要在任何時(shí)候都是可訪問的。但是,按照本發(fā)明,任何頁面(例如,(0)到(f))都可以被用于存儲特殊功能寄存器12和通用寄存器14。利用這一特性的一個(gè)可能的例子是在中斷調(diào)用期間。例如,在中斷服務(wù)程序內(nèi)部,用戶不必?fù)?dān)心存儲在頁面選擇寄存器中的地址。為了訪問特殊功能寄存器和/或通用寄存器12和14,用戶只需選擇強(qiáng)制頁位36。在本發(fā)明的優(yōu)選實(shí)施例中,強(qiáng)制頁面24被分為兩個(gè)128字節(jié)的部分。第一個(gè)128字節(jié)部分存儲特殊功能寄存器,而第二個(gè)128字節(jié)部分存儲通用寄存器。在微控制器20是16位微控制器的情況下,強(qiáng)制頁面24可以被分為兩個(gè)32K字節(jié)的部分。如圖4所示,第一個(gè)32K字節(jié)部分存儲特殊功能功能寄存器,而第二個(gè)32K字節(jié)部分存儲通用寄存器。但是,本專業(yè)的技術(shù)人員應(yīng)當(dāng)理解,其它的配置也是可能的。
現(xiàn)在參照圖2和3,為了使得特殊功能寄存器和通用寄存器12和14在任何時(shí)候都可以被訪問,位36在微控制器20的每個(gè)操作碼指令30中專用,當(dāng)設(shè)置強(qiáng)制數(shù)據(jù)訪問時(shí),該位36發(fā)生在例如RAM22的第一頁面24(即,頁面0),或RAM22的最后頁面(即,頁面f)。正如上面指出的,本發(fā)明可以利用可用存儲器(例如,RAM22)中的任何可用頁面來實(shí)現(xiàn)。為了容易實(shí)現(xiàn)這種特性,可以在不同的寄存器中存儲一個(gè)或多個(gè)專用頁面選擇位。
專用位的設(shè)置既不影響微控制器20的當(dāng)前操作,也不修改當(dāng)前選擇的地址,該地址存儲在微控制器20當(dāng)前正在使用的頁面選擇寄存器中。因此,如果設(shè)置了位36,不論用戶在RAM22中任何位置,當(dāng)前的指令將始終對強(qiáng)制頁面(強(qiáng)制數(shù)據(jù)訪問的頁面,如頁面(0)或頁面(f))起作用,該強(qiáng)制頁面存儲特殊功能存儲器和通用寄存器12和14。因而,如果用戶在通用RAM區(qū)(即,除了強(qiáng)制頁面以外的任何頁面)并接收一個(gè)中斷,中斷服務(wù)程序可以在操作碼指令30中設(shè)置專用位36。用戶接著可以對特殊功能寄存器和通用寄存器12和14進(jìn)行處理,而不影響微控制器20所進(jìn)行的別的任何操作。當(dāng)中斷已經(jīng)完成,微控制器20可以返回RAM22中的當(dāng)前地址位置,因?yàn)樵谥袛喾?wù)期間該地址位置并沒有被修改。
在應(yīng)用8位微控制器20的本發(fā)明的優(yōu)選實(shí)施例中,操作碼指令30是16位指令。第一個(gè)8位部分32定義該指令并告訴微控制器20該做什么。第二個(gè)8位部分34定義將要被執(zhí)行的指令的地址。為了當(dāng)設(shè)置專用位36時(shí)不改變存儲在操作碼指令30中地址,專用位36被加到操作碼30的第一個(gè)8位部分32上。
在本發(fā)明的可選第一實(shí)施例中,操作碼指令30′是12位指令,如圖5所示。在這個(gè)實(shí)施例中,第一部分32′是6位寬度,用于定義指令,并告訴微控制器20作什么。第二部分34′是6位寬度并且定義將被執(zhí)行指令的地址。為了當(dāng)設(shè)置專用位36時(shí)不改變存儲在操作碼指令30′中的地址,專用位36被加到操作碼指令30′的第一個(gè)6位部分32′。
在本發(fā)明的可選第二實(shí)施例中,操作碼指令30″是14位指令,如圖6所示。在這個(gè)實(shí)施例中第一部分32″是7位寬度,用于定義指令并告訴微控制器20該做什么。第二部分34″是7位寬度并定義將被執(zhí)行的指令的地址。為了當(dāng)設(shè)置專用位36時(shí)不改變存儲在操作碼指令30″的地址,專用位36被加到操作碼30′的第一個(gè)7位部分32″。正如本專業(yè)的技術(shù)人員所理解的,任意寬度(例如,2的任何倍數(shù))的指令30可以被使用。
在本發(fā)明的優(yōu)選實(shí)施例中,專用位36僅被加到微控制器20的數(shù)值處理操作碼指令上。通過去除微控制器20的若干非數(shù)值處理的操作碼解碼圖(decode map),可以將專用位加到微控制器20的數(shù)值處理操作碼上,而不增加微控制器20的指令解碼圖的大小。
雖然本發(fā)明是參照其優(yōu)選實(shí)施例來描述的,但是本專業(yè)的技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的精神和范圍的情況下,可以對其在形式上和細(xì)節(jié)上進(jìn)行上述和其它修改。
權(quán)利要求
1.一種用于使用數(shù)據(jù)隨機(jī)存取存儲器的微控制器的分頁方法,該方法能在所述隨機(jī)存取存儲器中跟蹤當(dāng)前選擇的地址,并包括以下步驟(a)將所述隨機(jī)存取存儲器的整個(gè)地址范圍線性化;(b)將所述隨機(jī)存取存儲器的所述被線性化的地址范圍劃分為多個(gè)頁面,其中所述多個(gè)頁面中的每個(gè)頁面是從包含大小為256字節(jié)和64K字節(jié)的組中選擇的;(c)所述隨機(jī)存取存儲器的一個(gè)頁面給特殊功能寄存器和通用寄存器專用;并且(d)在所述微控制器的每個(gè)操作碼指令中設(shè)一專用位,當(dāng)設(shè)置強(qiáng)制數(shù)據(jù)訪問發(fā)生在所述專用頁時(shí),不影響所述微控制器當(dāng)前的操作,并且不修改所述當(dāng)前選擇的存儲在所述微控制器正在使用的頁面選擇寄存器中的地址。
2.按照權(quán)利要求1的用于微控制器的分頁方法,其中在所述微控制器的每個(gè)操作碼指令中設(shè)一專用位的所述步驟還包括僅在所述微控制器的數(shù)值處理操作碼指令中設(shè)一專用位的步驟。
3.按照權(quán)利要求2的用于微控制器的分頁方法,其中僅在所述微控制器的數(shù)值處理操作碼指令中設(shè)一專用位的這一步驟還包括從所述微控制器的指令解碼圖中去掉非數(shù)值處理操作碼指令的步驟,以使得僅在所述數(shù)值處理操作碼指令中增加所述專用位,而不增加所述微控制器的所述指令解碼圖的大小。
4.一種具有強(qiáng)制分頁結(jié)構(gòu)的微控制器,包括(a)整個(gè)地址范圍被線性化的系統(tǒng)存儲器,所述系統(tǒng)存儲器被排列為多個(gè)頁面,所述多個(gè)頁面的每個(gè)頁面的大小從包含256字節(jié)和64K字節(jié)的組中選擇,所述多個(gè)頁面的一個(gè)頁面給特殊功能寄存器和通用寄存器專用;并且(b)所述系統(tǒng)存儲器包括多個(gè)操作碼指令,每個(gè)操作碼指令具有一個(gè)專用位,當(dāng)設(shè)置強(qiáng)制數(shù)據(jù)訪問發(fā)生在所述專用頁面上,而不影響所述微控制器的當(dāng)前操作并且不修改當(dāng)前選擇的存儲在所述微控制器正在使用的頁面選擇寄存器中的地址。
5.按照權(quán)利要求4的微控制器,其中所述專用位僅被放置在所述微控制器的數(shù)值處理操作碼指令中。
6.按照權(quán)利要求4的微控制器,其中每個(gè)操作碼指令是12位寬,其第一個(gè)6位用于定義指令,第二個(gè)6位用于定義執(zhí)行該指令的地址,并且專用位被加到第一個(gè)6位上。
7.按照權(quán)利要求4的微控制器,其中每個(gè)操作碼指令是14位寬,其第一個(gè)7位用于定義指令,第二個(gè)7位用于定義執(zhí)行該指令的地址,并且專用位被加到第一個(gè)7位上。
8.按照權(quán)利要求4的微控制器,其中每個(gè)操作碼指令是16位寬,其第一個(gè)8位用于定義指令,第二個(gè)8位用于定義執(zhí)行該指令的地址,并且專用位被加到該第一個(gè)8位上。
全文摘要
一種微控制器結(jié)構(gòu),該結(jié)構(gòu)在操作碼解碼字段中增加專用位,強(qiáng)制數(shù)據(jù)訪問發(fā)生在對應(yīng)該指令的隨機(jī)存取存儲器(RAM)的一個(gè)頁面。這使得用戶可以選擇任何頁面并且還能夠直接訪問位于RAM的預(yù)先定義的頁面上的特殊功能寄存器或寄存器變量。該專用位的設(shè)置既不影響該微控制器的當(dāng)前操作,也不修改當(dāng)前選擇的存儲在微控制器當(dāng)前正在使用的頁面選擇寄存器中的地址。
文檔編號G06F12/02GK1310382SQ01102898
公開日2001年8月29日 申請日期2001年2月22日 優(yōu)先權(quán)日2000年2月25日
發(fā)明者蘭迪·L·雅克 申請人:密克羅奇普技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
炎陵县| 盐池县| 讷河市| 溧阳市| 舞阳县| 连云港市| 阿尔山市| 黄龙县| 翁源县| 芒康县| 大冶市| 凌海市| 祁阳县| 东乡| 华蓥市| 德兴市| 梅河口市| 宝应县| 黄石市| 澄江县| 青田县| 连江县| 宁波市| 二连浩特市| 乐陵市| 两当县| 牡丹江市| 类乌齐县| 东港市| 马鞍山市| 获嘉县| 秦安县| 家居| 惠水县| 广宁县| 县级市| 临桂县| 安远县| 浦县| 峡江县| 长岭县|