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