專利名稱:帶有存儲(chǔ)器管理單元的微型計(jì)算機(jī)的制作方法
在計(jì)算機(jī)中,隨時(shí)運(yùn)行的程序控制著計(jì)算機(jī),和/或它所包含和與它連接的存儲(chǔ)器和其它外圍設(shè)備。此外,這意味著經(jīng)常被轉(zhuǎn)移給存儲(chǔ)器的地址包含在程序指令中,而與包含該地址的存儲(chǔ)區(qū)是否應(yīng)該提供程序使用無(wú)關(guān)。
因?yàn)榍闆r經(jīng)常不是這樣一以這種方式,其存儲(chǔ)內(nèi)容實(shí)際上是保密的存儲(chǔ)區(qū)可能被調(diào)查清楚一,所以采取了安全措施。
這種安全措施的一種可能是采用存儲(chǔ)器管理單元,下面表示為MMU。在不僅(芯片)制造商程序,而且用戶程序應(yīng)運(yùn)行時(shí),這則可能被濫用,基本采用這種單元。MMU設(shè)置在計(jì)算機(jī)的中央處理器,下面表示為CPU,和將該中央處理器與其它單元,例如存儲(chǔ)器連接的總線之間。
每個(gè)應(yīng)用在MMU中保持一個(gè)登錄,記錄哪個(gè)存儲(chǔ)器包含該應(yīng)用,它開始的地址,多長(zhǎng)以及存在何種存取權(quán)。當(dāng)用戶寫入他的應(yīng)用,或他的程序時(shí),必須在微型計(jì)算機(jī)的存儲(chǔ)器中給出這些數(shù)據(jù)。應(yīng)用程序則含有僅對(duì)存儲(chǔ)區(qū)的存取權(quán),該存儲(chǔ)區(qū)存在于由預(yù)先給出的起始地址和長(zhǎng)度所定義的區(qū)域內(nèi)。因此進(jìn)入MMU的登錄描述了存儲(chǔ)于數(shù)據(jù)存儲(chǔ)段的程序的特征。因此MMU中包含該登錄的區(qū)域被稱為段描述符。
由程序?qū)Φ刂返拿看握{(diào)用均由MMU檢查,并且調(diào)用只有在地址位于被許可的區(qū)域內(nèi)時(shí)才允許,否則程序運(yùn)行出現(xiàn)中斷或出現(xiàn)一條錯(cuò)誤消息。
在存儲(chǔ)器中含有不同用戶的程序情況下,這為有關(guān)的用戶提供了其他用戶不能探查或者甚至改變他們的程序的保證,因?yàn)槊總€(gè)用戶程序只能在寫入程序時(shí)由用戶給出的區(qū)域內(nèi)運(yùn)行。
用戶程序常常包含子程序。在這種情況下,不同的用戶經(jīng)常需要相同的子程序,因此上述的安全措施意味著這些子程序是重復(fù)存在的。這要求不必要的大量存儲(chǔ)空間。
因此在微型計(jì)算機(jī)的存儲(chǔ)區(qū)提供一些子程序庫(kù)是所希望的并且也有意義的,可以由不同的用戶程序?qū)ψ映绦驇?kù)存取,例如,有可能裝有特定的安全措施例如檢查個(gè)人識(shí)別號(hào)碼。
但是,這將再次導(dǎo)致上面提出的問題,即帶有欺詐意圖的用戶可以靠繞過檢查程序隨意存取庫(kù)程序。
因此,本發(fā)明的目的在于提出一種微型計(jì)算機(jī),它允許用戶程序存取庫(kù)程序,但同時(shí)保護(hù)操作。
根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī)本發(fā)明的目的得以實(shí)現(xiàn)。有利的擴(kuò)展在從屬權(quán)利要求中提出。
在根據(jù)本發(fā)明的微型計(jì)算機(jī)中,不可能直接存取一庫(kù)程序。而是,除了MMU段描述符標(biāo)記描述庫(kù)程序之外,在調(diào)用指令中還提出有矢量號(hào)碼。MMU段描述符標(biāo)記可以是例如,一數(shù)字或一名字。
用MMU檢查所給出的矢量號(hào)碼是否實(shí)際存在以及它是否屬于所調(diào)用的庫(kù)程序。如果測(cè)試結(jié)果為正,允許存取起始地址和長(zhǎng)度存儲(chǔ)于MMU段描述符中的矢量存儲(chǔ)區(qū)。直至在該矢量存儲(chǔ)區(qū)內(nèi),它一方面包含矢量號(hào)碼,才出現(xiàn)到庫(kù)程序起始地址的轉(zhuǎn)移地址或轉(zhuǎn)移指令—即矢量—的地址。這有效地防止了用戶可以直接存取庫(kù)程序并且同時(shí)防止有可能繞過安全程序。
下面借助附圖用實(shí)施例更為詳細(xì)地說明本發(fā)明,其中
圖1示意性示出微型計(jì)算機(jī)方框圖,圖2示意性示出用戶程序?qū)MU段描述符內(nèi)容的分配,以及圖3示意性示出一庫(kù)程序被調(diào)用的方式方法。
圖1以高度概括的方式示出微型計(jì)算機(jī)的各組成部分。中央處理器CPU通過地址總線與存儲(chǔ)器管理單元MMU連接。MMU本身與微型計(jì)算機(jī)的內(nèi)部地址總線連接,該地址總線與ROM,RAM和EEPROM存儲(chǔ)器連接并與輸入/輸出單元I/O連接。在微型計(jì)算機(jī)中也可有任何通用的其它單元,但由于它們不涉及本發(fā)明,這里未示出它們??刂瓶偩€和數(shù)據(jù)總線也未示出??傊鶕?jù)本發(fā)明的微型計(jì)算機(jī)應(yīng)該含有所有對(duì)其功能所需要的,在現(xiàn)有技術(shù)中已知的部件。
CPU給MMU施加邏輯地址同時(shí)MMU由此確定物理地址并將其施加給存儲(chǔ)器。為此,MMU,如圖2左側(cè)部分所示,裝有段描述符的存儲(chǔ)位置,它包含分配給應(yīng)用程序A,B的起始地址,長(zhǎng)度和存取權(quán)。MMU此外還將含有一未示出的加法器,以便能夠通過添加用戶程序的起始地址由邏輯地址確定物理地址。作為舉例,兩個(gè)用戶程序A和B的程序段被示出,程序A在地址50,000起始并具有3,500地址的長(zhǎng)度,而程序B在地址120,000起始并具有5,000地址的長(zhǎng)度。
當(dāng)程序A在CPU中運(yùn)行時(shí),與程序的長(zhǎng)度對(duì)應(yīng),0至3499間的地址被調(diào)用。這些邏輯地址被輸給MMU,MMU將起始值50,000與它們相加并將以此獲得的物理地址施加給內(nèi)部地址總線。MMU預(yù)先檢查邏輯地址是否位于對(duì)應(yīng)于存儲(chǔ)在MMU段描述符中長(zhǎng)度的地址范圍內(nèi)。MMU段描述符可被設(shè)計(jì)為例如,一存儲(chǔ)寄存器。為了該項(xiàng)檢查,MMU包含比較器(未示出),一方面,當(dāng)前地址,另一方面,當(dāng)前程序的邊緣地址被施加給它。如果程序調(diào)用一較高或較低地址,則出現(xiàn)中斷或出現(xiàn)一條錯(cuò)誤消息或類似的消息。
MMU段描述符的另一區(qū)域登錄存取權(quán),以便有可能確定是否可以對(duì)特定的地址范圍只讀或讀寫存取。
對(duì)于上述說明,與用戶程序是否保持在RAM,EEPROM或其它類型的存儲(chǔ)器內(nèi),以及應(yīng)由用戶程序從哪些存儲(chǔ)位置存取是無(wú)關(guān)緊要的。
圖3在此示出根據(jù)本發(fā)明的,一已知微型計(jì)算機(jī)的改進(jìn)。這里還提供了所有用戶可以使用的子程序存儲(chǔ)區(qū),也就是說庫(kù)程序存儲(chǔ)區(qū)。任何存儲(chǔ)器均可用于此。
作為舉例,圖3示出庫(kù)程序存儲(chǔ)器中在地址1050和3000的寫程序和擦除程序。
根據(jù)發(fā)明,用戶程序現(xiàn)在不能直接存取這些地址,而在其它情況也還有可能獲得非限定的存取—通過繞過安全措施—這些程序。而是,提供—矢量存儲(chǔ)區(qū),它登錄有矢量號(hào)碼和分配給它們的,作為轉(zhuǎn)移目的地(矢量)1050,3000的庫(kù)程序的起始地址。作為替換,導(dǎo)向子程序的轉(zhuǎn)移指令的地址同樣可以被儲(chǔ)存。此外,子程序的名稱同樣可以被輸入作為標(biāo)識(shí)符,如圖3所示。但,這沒有必要。
用戶沒有發(fā)現(xiàn)庫(kù)程序的實(shí)際物理地址。除了安全方面,這還具有這樣的優(yōu)點(diǎn),這些程序可以,在需要時(shí),由操作系統(tǒng)任意移位,而用戶程序無(wú)需改變。這樣,只有轉(zhuǎn)移地址需要在矢量存儲(chǔ)區(qū)內(nèi)被改變。
如同任何其它程序一樣,每個(gè)庫(kù)程序存儲(chǔ)區(qū)可以進(jìn)入MMU。根據(jù)發(fā)明,每個(gè)庫(kù)程序存儲(chǔ)區(qū)被分配—矢量存儲(chǔ)區(qū),在該存儲(chǔ)區(qū)中將矢量登錄到位于庫(kù)程序存儲(chǔ)區(qū)內(nèi)的庫(kù)程序中。這種登錄通過給出矢量存儲(chǔ)區(qū)的起始地址和長(zhǎng)度完成。
作為替換,矢量存儲(chǔ)區(qū)也可登錄在MMU的段描述符中,在這種情況下庫(kù)程序存儲(chǔ)區(qū)的起始地址和長(zhǎng)度是登錄在段描述符中的。此外,有可能組合矢量存儲(chǔ)區(qū)和庫(kù)程序存儲(chǔ)區(qū),并且有可能在段描述符中給出起始地址和兩個(gè)長(zhǎng)度。
通過給出MMU段描述符標(biāo)記例如庫(kù)程序名稱或號(hào)碼和矢量號(hào)碼,實(shí)現(xiàn)用戶程序調(diào)用庫(kù)程序。MMU則檢查矢量號(hào)碼是否實(shí)際存在于矢量存儲(chǔ)區(qū)中以及所調(diào)用的程序標(biāo)記是否對(duì)應(yīng)于分配給矢量號(hào)碼的登錄。矢量存儲(chǔ)區(qū)中相應(yīng)的地址只有在檢查結(jié)果為正時(shí)才被尋址,并且只有這樣到庫(kù)程序本身的轉(zhuǎn)移才被執(zhí)行。
權(quán)利要求
1.微型計(jì)算機(jī),含有經(jīng)存儲(chǔ)器管理單元(MMU)與地址總線(BUS)相連的中央處理器(CPU),地址總線與至少一個(gè)程序存儲(chǔ)器(ROM,EEPROM)連接,該存儲(chǔ)器含有至少一個(gè)用于用戶程序(A,B)的存儲(chǔ)區(qū),其中,在存儲(chǔ)器管理單元(MMU)中,每個(gè)用戶程序(A或B),被分配一段描述符,在段描述符中儲(chǔ)存至少用戶程序(A或B)的起始地址(ANFA或ANFB),長(zhǎng)度(LA或LB)和存取權(quán)(ZRA或ZRB),并且具有至少一個(gè)另外的庫(kù)程序(WRITE,ERASE)的存儲(chǔ)區(qū)和具有矢量存儲(chǔ)區(qū),其中,存儲(chǔ)器管理單元(MMU)中的段描述符描述了矢量存儲(chǔ)區(qū)和庫(kù)程序存儲(chǔ)區(qū)的分配,其中,至少矢量號(hào)碼(0…n)和分配給該矢量號(hào)碼的矢量(1050,3000)儲(chǔ)存在矢量存儲(chǔ)區(qū),其中,用戶程序(A,B)對(duì)庫(kù)程序(WRITE,ERASE)的調(diào)用必須包含至少M(fèi)MU段描述符標(biāo)記和矢量號(hào)碼(0…n),存儲(chǔ)器管理單元(MMU)為其分配矢量,借助該矢量實(shí)現(xiàn)至所調(diào)用庫(kù)程序(WRITE,ERASE)的轉(zhuǎn)移。
2.根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其特征在于,通過給出MMU段描述符中分配給庫(kù)程序存儲(chǔ)區(qū)的矢量存儲(chǔ)區(qū)的起始地址和長(zhǎng)度,分配矢量存儲(chǔ)區(qū)和庫(kù)程序存儲(chǔ)區(qū)。
3.根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其特征在于,通過給出MMU段描述符中分配給矢量存儲(chǔ)區(qū)的庫(kù)程序存儲(chǔ)區(qū)的起始地址和長(zhǎng)度,分配矢量存儲(chǔ)區(qū)和庫(kù)程序存儲(chǔ)區(qū)。
4.根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其特征在于,通過給出MMU段描述符中分配給矢量存儲(chǔ)區(qū)的庫(kù)程序存儲(chǔ)區(qū)的起始地址和長(zhǎng)度,分配矢量存儲(chǔ)區(qū)和庫(kù)程序存儲(chǔ)區(qū)。
4.根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其特征在于,通過耦合兩個(gè)區(qū)形成一公用存儲(chǔ)區(qū)分配矢量存儲(chǔ)區(qū)和庫(kù)程序存儲(chǔ)區(qū),公用存儲(chǔ)區(qū)由在已分配的MMU段描述符內(nèi)給出起始地址和兩個(gè)長(zhǎng)度數(shù)據(jù)描述。
5.根據(jù)權(quán)利要求1至4之一所述的微型計(jì)算機(jī),其特征在于,矢量由一轉(zhuǎn)移地址構(gòu)成。
6.根據(jù)權(quán)利要求1至4之一所述的微型計(jì)算機(jī),其特征在于,矢量由導(dǎo)向庫(kù)程序的轉(zhuǎn)移指令的地址構(gòu)成。
7.根據(jù)權(quán)利要求1至6之一所述的微型計(jì)算機(jī),其特征在于,矢量號(hào)碼(0…n)由矢量存儲(chǔ)區(qū)中矢量(1050,3000)的相對(duì)位置確定。
8.根據(jù)權(quán)利要求1至6之一所述的微型計(jì)算機(jī),其特征在于,矢量號(hào)碼(0…n)包含大量字節(jié),當(dāng)前矢量通過比較包含在矢量存儲(chǔ)區(qū)內(nèi)的矢量號(hào)碼(0…n)和包含在調(diào)用中的矢量號(hào)碼來確定。
全文摘要
在一應(yīng)運(yùn)行大量用戶程序的微型計(jì)算機(jī)中,MMU確保沒有一個(gè)用戶程序可能存取其它程序。但是,為了能夠使用公用庫(kù)程序,并同時(shí)防止未經(jīng)檢查地進(jìn)入這些程序,提供一矢量存儲(chǔ)區(qū),其中登錄有作為轉(zhuǎn)移目的地(矢量:1050,3000)的庫(kù)程序起始地址。通過給出矢量號(hào)碼(0…n),由此MMU確定矢量存儲(chǔ)區(qū)中相應(yīng)的地址,調(diào)用庫(kù)程序。
文檔編號(hào)G06F21/00GK1250531SQ98803238
公開日2000年4月12日 申請(qǐng)日期1998年2月5日 優(yōu)先權(quán)日1997年3月11日
發(fā)明者H·瑟德拉克, F·-J·布呂克瑪 申請(qǐng)人:西門子公司