欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于多任務(wù)系統(tǒng)的存儲(chǔ)器保護(hù)系統(tǒng)的制作方法

文檔序號(hào):6415945閱讀:242來(lái)源:國(guó)知局
專利名稱:用于多任務(wù)系統(tǒng)的存儲(chǔ)器保護(hù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于多任務(wù)系統(tǒng)的存儲(chǔ)器保護(hù)系統(tǒng)。更具體來(lái)說(shuō),本發(fā)明涉及一種防止一個(gè)應(yīng)用程序向存儲(chǔ)第二個(gè)應(yīng)用程序的數(shù)據(jù)的存儲(chǔ)器分段進(jìn)行寫操作的系統(tǒng)。本發(fā)明的存儲(chǔ)器保護(hù)系統(tǒng)也檢測(cè)一個(gè)應(yīng)用程序何時(shí)企圖向第二個(gè)應(yīng)用程序的存儲(chǔ)器分段進(jìn)行寫操作。
多任務(wù)系統(tǒng)在計(jì)算機(jī)領(lǐng)域是普遍為人知曉的。在多任務(wù)系統(tǒng)中,多個(gè)應(yīng)用程序被一個(gè)處理器并行地執(zhí)行。多任務(wù)系統(tǒng)的優(yōu)點(diǎn)是,一個(gè)處理器能同時(shí)執(zhí)行多個(gè)功能,使執(zhí)行多個(gè)功能所需的資源最小化。
典型的多任務(wù)系統(tǒng)需要一個(gè)處理器、一個(gè)與處理器相關(guān)聯(lián)的存儲(chǔ)器、一個(gè)調(diào)度對(duì)應(yīng)用程序的處理和管理對(duì)存儲(chǔ)器的數(shù)據(jù)讀寫的操作系統(tǒng)。系統(tǒng)運(yùn)行多個(gè)應(yīng)用程序。每個(gè)應(yīng)用程序由處理器執(zhí)行預(yù)定的一段時(shí)間。執(zhí)行應(yīng)用程序所產(chǎn)生的結(jié)果被寫到存儲(chǔ)器,存儲(chǔ)起來(lái)供將來(lái)使用。處理器在以后的某個(gè)時(shí)候用該被存儲(chǔ)數(shù)據(jù)恢復(fù)執(zhí)行應(yīng)用程序。多任務(wù)系統(tǒng)中可以包括一個(gè)存儲(chǔ)器保護(hù)方案,以防止第一個(gè)應(yīng)用程序覆寫第二個(gè)應(yīng)用程序的數(shù)據(jù)。不然的話,應(yīng)用程序之一或二者的數(shù)據(jù)就會(huì)出錯(cuò),應(yīng)用程序?qū)⑹ ?br> 多任務(wù)系統(tǒng)的例子是在個(gè)人電腦上運(yùn)行的Windows操作系統(tǒng)。在Windows操作系統(tǒng)中,每個(gè)打開(kāi)的視窗都是當(dāng)前由系統(tǒng)運(yùn)行的一個(gè)不同的軟件應(yīng)用程序。操作系統(tǒng)調(diào)度每個(gè)應(yīng)用程序在中央處理器上的處理時(shí)間,中央處理器以預(yù)定的時(shí)間量執(zhí)行每個(gè)應(yīng)用程序。結(jié)果數(shù)據(jù)被存儲(chǔ)在隨機(jī)存取存儲(chǔ)器(RAM)中供將來(lái)使用。在Windows系統(tǒng)中,操作系統(tǒng)有一個(gè)存儲(chǔ)器管理方案來(lái)防止一個(gè)應(yīng)用程序?qū)?shù)據(jù)寫到RAM中存儲(chǔ)著第二個(gè)應(yīng)用程序的數(shù)據(jù)的位置。
可以用微處理器來(lái)運(yùn)行規(guī)模較小的多任務(wù)系統(tǒng)。規(guī)模較小的多任務(wù)系統(tǒng)的例子是微處理器并行執(zhí)行若干監(jiān)測(cè)流經(jīng)流量計(jì)的液體的不同特性的應(yīng)用程序。這種多任務(wù)系統(tǒng)的操作系統(tǒng)一般局限于能執(zhí)行關(guān)鍵的系統(tǒng)操作,原因是微處理器的功能有限。在這些規(guī)模較小的系統(tǒng)中,一般將與處理器關(guān)聯(lián)的存儲(chǔ)器劃分為若干分段。每個(gè)存儲(chǔ)器分段存儲(chǔ)一個(gè)應(yīng)用程序的數(shù)據(jù),以簡(jiǎn)化操作系統(tǒng)所要求的存儲(chǔ)管理。問(wèn)題是如何防止一個(gè)應(yīng)用程序?qū)?shù)據(jù)寫到存儲(chǔ)第二個(gè)應(yīng)用程序的數(shù)據(jù)的存儲(chǔ)器分段。
為了解決這個(gè)問(wèn)題,有些微處理器提供內(nèi)部或外部存儲(chǔ)器保護(hù)功能來(lái)防止應(yīng)用程序?qū)?shù)據(jù)寫到位于其被分配的存儲(chǔ)器分段以外的地址。然而,具有存儲(chǔ)器保護(hù)特征功能的微處理器一般很貴,具有比較簡(jiǎn)單的微處理器更為復(fù)雜的電路。由于費(fèi)用和設(shè)計(jì)方面的原因,人們可能希望使用價(jià)格更便宜的、沒(méi)有存儲(chǔ)器保護(hù)系統(tǒng)的微處理器。因此,在該領(lǐng)域需要一種費(fèi)用不高、實(shí)現(xiàn)簡(jiǎn)單的方案,用沒(méi)有存儲(chǔ)器保護(hù)特征功能的微處理器提供對(duì)多任務(wù)系統(tǒng)的存儲(chǔ)器保護(hù)。
本發(fā)明涉及用于處理器控制的多任務(wù)系統(tǒng)的存儲(chǔ)器保護(hù)系統(tǒng),它能解決以上和其它問(wèn)題并取得在該領(lǐng)域的進(jìn)步。按照本發(fā)明方法,用由處理器執(zhí)行的軟件與和處理器的外部電路的組合來(lái)提供一種存儲(chǔ)器保護(hù)系統(tǒng)。本發(fā)明提供了一種相對(duì)來(lái)說(shuō)實(shí)現(xiàn)簡(jiǎn)單、費(fèi)用不高的存儲(chǔ)器保護(hù)系統(tǒng),用于不含內(nèi)部存儲(chǔ)器保護(hù)功能的處理器。
多任務(wù)系統(tǒng)包含一個(gè)微處理器、一個(gè)與微處理器關(guān)聯(lián)的存儲(chǔ)器和一個(gè)操作系統(tǒng)。存儲(chǔ)器中的各位置由n個(gè)低位地址位和m個(gè)高位地址位來(lái)定義。存儲(chǔ)器被劃分為若干存儲(chǔ)器分段,每個(gè)分段都由m個(gè)高位地址位的唯一組合來(lái)定義。由處理器執(zhí)行的每個(gè)應(yīng)用程序被分配一個(gè)存儲(chǔ)器分段,存儲(chǔ)該應(yīng)用程序的數(shù)據(jù)。操作系統(tǒng)管理由處理器對(duì)應(yīng)用程序的執(zhí)行。
按照本發(fā)明,存儲(chǔ)器保護(hù)系統(tǒng)包括一個(gè)存儲(chǔ)器地址寄存器、一個(gè)從存儲(chǔ)器寄存器擴(kuò)展到存儲(chǔ)器的高位地址總線、一個(gè)從處理器擴(kuò)展到存儲(chǔ)器的低位地址總線、錯(cuò)誤檢測(cè)電路。存儲(chǔ)器寄存器存儲(chǔ)m位。在應(yīng)用程序被處理器執(zhí)行之前,將代表應(yīng)用程序的存儲(chǔ)器分段的m個(gè)高位地址位寫到存儲(chǔ)器寄存器。在應(yīng)用程序正在執(zhí)行期間,通過(guò)高位地址總線將在存儲(chǔ)器寄存器中存儲(chǔ)的m個(gè)高位地址位傳輸?shù)酱鎯?chǔ)器。從存儲(chǔ)器寄存器傳輸m個(gè)高位地址位,能防止應(yīng)用程序?qū)?shù)據(jù)寫到位于其被分配的存儲(chǔ)器分段以外的地址。
各應(yīng)用程序被編譯,生成讀/寫操作的地址,地址有被設(shè)置等于某常數(shù)的m個(gè)高位地址位(例如全為0)和n個(gè)低位地址位。這m個(gè)高位地址位用于錯(cuò)誤檢測(cè),而n個(gè)低位地址位則指示在分配給應(yīng)用程序的存儲(chǔ)器分段中的一個(gè)存儲(chǔ)位置。
由應(yīng)用程序生成的n個(gè)低位地址位通過(guò)低位地址總線被傳輸?shù)酱鎯?chǔ)器。n個(gè)低位地址位與存儲(chǔ)器寄存器中的m個(gè)高位地址位的組合,指定了在分配給應(yīng)用程序的存儲(chǔ)器分段中的一個(gè)存儲(chǔ)位置。所生成的地址用于執(zhí)行讀/寫操作。
盡管存儲(chǔ)器寄存器中的m個(gè)高位地址位能防止選定的應(yīng)用程序在其被分配的存儲(chǔ)器分段的范圍以外進(jìn)行讀/寫,在一定條件下,選定的應(yīng)用程序也會(huì)試圖在其被分配的存儲(chǔ)器分段的范圍以外進(jìn)行讀/寫。這種條件有一個(gè)就是堆棧溢出錯(cuò)誤。在發(fā)生堆棧溢出錯(cuò)誤時(shí),應(yīng)用程序需要存儲(chǔ)超過(guò)其存儲(chǔ)器分段的容量的數(shù)據(jù)。為了存儲(chǔ)數(shù)據(jù),應(yīng)用程序生成不等于該常量的m個(gè)高位地址位,試圖將數(shù)據(jù)寫到在應(yīng)用程序被分配的存儲(chǔ)器分段的范圍以外的地址。然而,存儲(chǔ)器寄存器中的m個(gè)高位地址位與所生成的n個(gè)低位地址位的組合應(yīng)當(dāng)是應(yīng)用程序被分配的存儲(chǔ)器分段中一個(gè)含有有效數(shù)據(jù)的地址。如果繼續(xù)讀/寫操作,選定應(yīng)用程序的有效數(shù)據(jù)就將出錯(cuò)。
為了防止在應(yīng)用程序被分配的存儲(chǔ)器分段中的有效數(shù)據(jù)的出錯(cuò),錯(cuò)誤檢測(cè)電路要判斷應(yīng)用程序所生成的m個(gè)高位地址位是否等于該常量。如果所生成的m個(gè)高位地址位不等于該常量,本發(fā)明就生成一個(gè)出錯(cuò)信號(hào)。根據(jù)該出錯(cuò)信號(hào)就能停止讀/寫操作,或者由該出錯(cuò)信號(hào)導(dǎo)致一個(gè)出錯(cuò)中斷。
存儲(chǔ)器寄存器中的錯(cuò)誤,可以由操作系統(tǒng)在應(yīng)用程序的執(zhí)行完成之后檢測(cè)。操作系統(tǒng)讀取存儲(chǔ)器寄存器中的m個(gè)高位地址位。將存儲(chǔ)器寄存器中的m個(gè)高位地址位與定義已完成的應(yīng)用程序的存儲(chǔ)器分段的m個(gè)高位地址位作比較。如果已完成的應(yīng)用程序的m個(gè)高位地址位不等于該存儲(chǔ)器寄存器,操作系統(tǒng)就生成一個(gè)出錯(cuò)中斷。這個(gè)檢測(cè)是要保證數(shù)據(jù)沒(méi)有因?yàn)榇鎯?chǔ)器寄存器中的錯(cuò)誤而產(chǎn)生錯(cuò)誤。


圖1是一個(gè)具有本發(fā)明的存儲(chǔ)器保護(hù)特征功能的處理器控制的多任務(wù)系統(tǒng)的可能的典型最佳實(shí)施例的框圖;圖2是一個(gè)具有本發(fā)明的存儲(chǔ)器保護(hù)特征功能的處理器控制的多任務(wù)系統(tǒng)的備選的典型實(shí)施例的框圖;圖3是多任務(wù)系統(tǒng)中劃分成若干分段的存儲(chǔ)器的框圖4是圖1的典型最佳實(shí)施例的操作概括的流程圖;圖5是典型最佳實(shí)施例中準(zhǔn)備執(zhí)行應(yīng)用程序的過(guò)程的流程圖;圖6是典型最佳實(shí)施例中在執(zhí)行應(yīng)用程序期間執(zhí)行一個(gè)讀/寫操作的過(guò)程的流程圖;圖7是典型最佳實(shí)施例中判斷應(yīng)用程序是否生成了無(wú)效地址的過(guò)程的流程圖;圖8是典型最佳實(shí)施例中在應(yīng)用程序的執(zhí)行之后檢測(cè)存儲(chǔ)器寄存器中存儲(chǔ)的m個(gè)高位地址位的變化的過(guò)程的流程圖。
圖1是一個(gè)具有本發(fā)明的存儲(chǔ)器保護(hù)特征功能的處理器控制的多任務(wù)系統(tǒng)100的典型最佳實(shí)施例。處理器101為多個(gè)應(yīng)用程序執(zhí)行指令。指令存儲(chǔ)在只讀存儲(chǔ)器(ROM)150中。處理器101通過(guò)由總線151與ROM150相連的數(shù)據(jù)總線104,從ROM150接受指令。處理器101有一個(gè)關(guān)聯(lián)的存儲(chǔ)器,例如RAM120,用于存儲(chǔ)執(zhí)行這多個(gè)應(yīng)用程序的每個(gè)應(yīng)用程序所需要的數(shù)據(jù)。RAM120中的各地址由m個(gè)高位地址位和n個(gè)低位地址位來(lái)定義。在最佳實(shí)施例中,RAM120是個(gè)64KB的存儲(chǔ)器,不過(guò)本發(fā)明可以調(diào)整到用于任意大小的存儲(chǔ)器。
存儲(chǔ)器寄存器102存儲(chǔ)m位,它由m通道112~114與多路轉(zhuǎn)換器130相連。在最佳實(shí)施例中,存儲(chǔ)器寄存器102是處理器101的內(nèi)部器件。然而,存儲(chǔ)器寄存器102可以是處理器101的外部器件。存儲(chǔ)器寄存器102在通路115上傳播一個(gè)保護(hù)信號(hào),指示是否有應(yīng)用程序或操作系統(tǒng)正在執(zhí)行。在最佳實(shí)施例中,當(dāng)操作系統(tǒng)正在執(zhí)行時(shí),保護(hù)信號(hào)在通路115上是高電平或1。當(dāng)應(yīng)用程序正在執(zhí)行時(shí),保護(hù)信號(hào)在通路115上是低電平或0。在最佳實(shí)施例中,通路115上保護(hù)信號(hào)確定了多路轉(zhuǎn)換器130通過(guò)哪個(gè)通道連接到RAM120。當(dāng)操作系統(tǒng)正在執(zhí)行時(shí),高電平的保護(hù)信號(hào)關(guān)閉出錯(cuò)檢測(cè)電路,以防止生成出錯(cuò)信號(hào)。
當(dāng)通路115上的保護(hù)信號(hào)是低電平時(shí),多路轉(zhuǎn)換器130將存儲(chǔ)器寄存器102出發(fā)的m個(gè)通路112~114分別連接到m個(gè)高位地址線122~124。當(dāng)通路115上的保護(hù)信號(hào)是高電平時(shí),多路轉(zhuǎn)換器130將總線105出發(fā)的m個(gè)通路106~108連接到m個(gè)高位地址線122~124??偩€105與地址總線121分離,作用是通過(guò)通道106~108將m個(gè)高位地址位從處理器101直接提供給多路轉(zhuǎn)換器130。m個(gè)通道109~111從總線105接收m個(gè)高位地址位,將這m個(gè)高位地址位應(yīng)用到多任務(wù)系統(tǒng)100的出錯(cuò)檢測(cè)電路。
數(shù)據(jù)總線104連接處理器101與RAM120,以便在處理器處理器101與RAM120之間傳輸數(shù)據(jù)。由RAM120進(jìn)行的數(shù)據(jù)操作的類型,是由經(jīng)讀/寫通道103從處理器101傳送到RAM120的讀/寫信號(hào)確定的。地址的n個(gè)低位地址位是由處理器101在低位地址總線121上傳送給RAM120的。m個(gè)地址線122~124所代表的高位地址總線從多路轉(zhuǎn)換器130向RAM120提供m高位地址位。在最佳實(shí)施例中,低位地址總線121攜帶地址的13個(gè)低位地址位,高位地址總線則攜帶64KB存儲(chǔ)器的16位地址的3個(gè)高位地址位。然而,n個(gè)低位地址位和m個(gè)高位地址位的數(shù)目,是可以結(jié)合不同的設(shè)計(jì)參數(shù)而改變的。
出錯(cuò)檢測(cè)電路檢測(cè)由處理器101正在執(zhí)行的應(yīng)用程序在其被分配的存儲(chǔ)器分段的范圍之外讀/寫數(shù)據(jù)的企圖。如果應(yīng)用程序確實(shí)試圖在其被分配的存儲(chǔ)器分段的范圍之外讀/寫,出錯(cuò)檢測(cè)電路就生成出錯(cuò)信號(hào)。出錯(cuò)信號(hào)的生成,要么關(guān)閉正在執(zhí)行的操作,要么被傳送到處理器101,后者產(chǎn)生一個(gè)出錯(cuò)中斷,以防止應(yīng)用程序完成該讀/寫操作。
對(duì)軟件應(yīng)用程序的編譯所生成的讀/寫操作的存儲(chǔ)器地址中,有m個(gè)高位地址位,它們等于一個(gè)常量。出錯(cuò)檢測(cè)電路判斷m個(gè)高位地址位是否等于該常量。當(dāng)m個(gè)高位地址位不等于該常量時(shí),該電路就生成一個(gè)出錯(cuò)信號(hào)。
在最佳實(shí)施例中,由應(yīng)用程序生成的m個(gè)高位地址位每個(gè)的常量都是0。出錯(cuò)檢測(cè)電路要檢測(cè)這m位中何時(shí)有的位的值是1。出錯(cuò)檢測(cè)電路包括或門131、133和135,鎖存器132,反相器134?;蜷T131通過(guò)通道109~111從處理器101接收m個(gè)高位地址位,并在通道140上施加一個(gè)信號(hào)。鎖存器132通過(guò)通道140從或門131接收該信號(hào),并通過(guò)通道141接收來(lái)自處理器101的地址有效信號(hào)。如果應(yīng)用程序已經(jīng)生成了一個(gè)存儲(chǔ)器地址,處理器101就向鎖存器141發(fā)送一個(gè)地址有效信號(hào)。鎖存器132通過(guò)通道142向或門133傳播一個(gè)信號(hào)?;蜷T133通過(guò)通道115接收保護(hù)信號(hào)并通過(guò)通道142接收來(lái)自鎖存器132的信號(hào)?;蜷T133的輸出信號(hào)在通道143上被傳播給處理器101。通道147與通道143分離,將或門133發(fā)出的信號(hào)施加到反相器134。反轉(zhuǎn)后的信號(hào)在通道146上被傳播到或門135?;蜷T135接收通道146上的信號(hào)和通道144上的芯片選擇信號(hào)?;蜷T135產(chǎn)生的信號(hào)在通道145上被施加到RAM120。
如果應(yīng)用程序生成了無(wú)效地址,出錯(cuò)檢測(cè)電路就以下面的方式操作?;蜷T131從m個(gè)通道109~111接收信號(hào)。所接收的信號(hào)至少有一個(gè)是表示1的高電平,將高電平信號(hào)在通道140上施加到鎖存器132。通過(guò)通道140接收的高電平選通鎖存器132在通道142上施加低電平信號(hào)?;蜷T133接收通道115上的來(lái)自處理器101的低電平保護(hù)信號(hào)和通道142上的來(lái)自鎖存器的低電平信號(hào)。保護(hù)信號(hào)115是低電平的,表示有應(yīng)用程序正在被處理器101執(zhí)行。該低電平信號(hào)被或門133與低電平的鎖存器信號(hào)進(jìn)行邏輯“或”運(yùn)算。產(chǎn)生的低電平信號(hào)作為低電平的出錯(cuò)信號(hào)在通道143上被傳播到處理器101。通道147與通道143分離,將該低電平信號(hào)施加到反相器134。反相器134發(fā)出的高電平信號(hào)被施加到或門135?;蜷T135通過(guò)通道144接收一個(gè)導(dǎo)致要完成讀/寫操作的低電平的芯片選擇信號(hào)?;蜷T135將該低電平芯片選擇信號(hào)與該高電平信號(hào)進(jìn)行邏輯“或”運(yùn)算。通過(guò)通路145將高電平信號(hào)傳播到RAM120。該高電平信號(hào)能防止該讀/寫操作的完成。
如果應(yīng)用程序生成的地址中沒(méi)有發(fā)生錯(cuò)誤,出錯(cuò)檢測(cè)電路就以下列方式操作。或門131從m個(gè)通道109~111接收信號(hào)。所接收的信號(hào)都是低電平的,將一個(gè)低電平信號(hào)在通道140上施加到鎖存器132。讓鎖存器132通過(guò)通道141接收一個(gè)來(lái)自處理器101的高電平的地址有效信號(hào),使其輸出一個(gè)高電平信號(hào)。低電平信號(hào)是在通道140上接收的,它導(dǎo)致通道142上的信號(hào)保持高電平,表示所生成的地址中沒(méi)有錯(cuò)誤?;蜷T133接收通道115上來(lái)自處理器101的低電平保護(hù)信號(hào)和通道142上來(lái)自鎖存器132的高電平信號(hào)。該低電平保護(hù)信號(hào)115和來(lái)自通道142的該高電平鎖存器信號(hào)被或門133進(jìn)行邏輯“或”運(yùn)算。生成的高電平信號(hào)在通道143上被傳播到處理器101,指示該地址是有效的。通道147與通道143分離,將該高電平信號(hào)施加到反相器134。反相器134發(fā)出的低電平信號(hào)被施加到或門135。或門135通過(guò)通道144接收一個(gè)導(dǎo)致要完成讀/寫操作的低電平的芯片選擇信號(hào)?;蜷T135將該低電平芯片選擇信號(hào)與該低電平信號(hào)進(jìn)行邏輯“或”運(yùn)算。生成的低電平信號(hào)通過(guò)通路145被傳播到RAM120。該低電平信號(hào)允許完成該讀/寫操作。
圖2表示本發(fā)明一個(gè)備選的典型實(shí)施例。多任務(wù)系統(tǒng)200由與多任務(wù)系統(tǒng)100的部件相同的部件組成,除此之外,在出錯(cuò)檢測(cè)電路中或門131之前的位置,增加了一個(gè)定義大于比較器的邏輯單元202和一個(gè)定義小于比較器的邏輯單元203。總線105向出錯(cuò)檢測(cè)電路傳播至少m個(gè)高位地址位。也可以將n個(gè)低位地址位的全部或任意部分傳播到出錯(cuò)檢測(cè)電路。大于比較器202接收通道210上的至少m個(gè)高位地址位,小于比較器203接收通道211上的至少m個(gè)高位地址位存儲(chǔ)器寄存器102發(fā)出的m個(gè)高位地址位在總線213上被傳播到出錯(cuò)檢測(cè)電路。大于比較器202通過(guò)通道214從總線213接收這m個(gè)高位地址位,小于比較器203則通過(guò)通道215從總線213接收這m個(gè)高位地址位。大于比較器202通過(guò)通道205向或門131施加信號(hào),而小于比較器203則通過(guò)通道206向或門131施加信號(hào)。
在該備選實(shí)施例中,由應(yīng)用程序生成的每個(gè)地址的m個(gè)高位地址位,都等于定義存儲(chǔ)該應(yīng)用程序的數(shù)據(jù)的存儲(chǔ)器分段的m個(gè)高位地址位的唯一組合。在備選實(shí)施例中,能生成三類地址,一種是小于應(yīng)用程序存儲(chǔ)器分段中最低地址的地址,一種是位于應(yīng)用程序存儲(chǔ)器分段內(nèi)的地址,一種是大于應(yīng)用程序存儲(chǔ)器分段中最高地址的地址。當(dāng)所生成的地址大于應(yīng)用程序存儲(chǔ)器分段中最高地址或者小于應(yīng)用程序存儲(chǔ)器分段中最低地址時(shí),發(fā)生錯(cuò)誤。
當(dāng)生成的地址小于存儲(chǔ)器分段的最低地址時(shí),出錯(cuò)檢測(cè)電路以下列方式操作。所生成的m個(gè)高位地址位由大于比較器202通過(guò)通道210接收。來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位由大于比較器202通過(guò)通道214接收。大于比較器202將所生成的m個(gè)高位地址位與來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位進(jìn)行比較。所生成的m個(gè)高位地址位小于存儲(chǔ)器寄存器的m個(gè)高位地址位,于是就在通道205上向或門131傳輸一個(gè)低電平信號(hào)。該低電平信號(hào)指示,所生成的m個(gè)高位地址位小于存儲(chǔ)器分段的最高地址,可能是有效地址。所生成的m個(gè)高位地址位由小于比較器203通過(guò)通道211接收。來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位也由小于比較器203通過(guò)通道215接收。小于比較器203將所生成的m個(gè)高位地址位與來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位進(jìn)行比較。所生成的m個(gè)高位地址位小于存儲(chǔ)器寄存器的m個(gè)高位地址位,于是就在通道206上向或門131傳輸一個(gè)高電平信號(hào)。該高電平信號(hào)指示,所生成的m個(gè)高位地址位小于存儲(chǔ)器分段的最低地址,是無(wú)效地址。通道205的高電平信號(hào)與通道204的低電平信號(hào)被或門131進(jìn)行邏輯“或”運(yùn)算。產(chǎn)生的高電平信號(hào)在通道140上傳播,出錯(cuò)檢測(cè)電路的其余部分如圖1中所述的那樣完成針對(duì)出錯(cuò)的操作。
當(dāng)生成的地址大于存儲(chǔ)器分段的最高地址時(shí),出錯(cuò)檢測(cè)電路以下列方式操作。所生成的m個(gè)高位地址位由大于比較器202通過(guò)通道210接收。來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位由大于比較器202通過(guò)通道214接收。大于比較器202將所生成的m個(gè)高位地址位與來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位進(jìn)行比較。所生成的m個(gè)高位地址位大于存儲(chǔ)器寄存器的m個(gè)高位地址位,于是在通道205上向或門131傳輸一個(gè)高電平信號(hào)。該高電平信號(hào)指示,所生成的m個(gè)高位地址位大于存儲(chǔ)器分段的最高地址,是無(wú)效地址。所生成的m個(gè)高位地址位也由小于比較器203通過(guò)通道211接收。來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位由小于比較器203通過(guò)通道215接收。小于比較器203將所生成的m個(gè)高位地址位與來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位進(jìn)行比較。所生成的m個(gè)高位地址位大于存儲(chǔ)器寄存器的m個(gè)高位地址位,于是就在通道206上向或門131傳輸一個(gè)低電平信號(hào)。該低電平信號(hào)指示,所生成的m個(gè)高位地址位大于存儲(chǔ)器分段的最低地址。將通道205的高電平信號(hào)與通道206的低電平信號(hào)進(jìn)行邏輯“或”運(yùn)算。產(chǎn)生的高電平信號(hào)在通道140上傳播,出錯(cuò)檢測(cè)電路的其余部分如圖1中所述的那樣完成針對(duì)出錯(cuò)的操作。
當(dāng)生成的地址大于存儲(chǔ)器分段的最低地址并且小于存儲(chǔ)器分段的最高地址時(shí),出錯(cuò)檢測(cè)電路以下列方式操作。所生成的m個(gè)高位地址位由大于比較器202通過(guò)通道210接收。來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位由大于比較器202通過(guò)通道214接收。大于比較器202將所生成的m個(gè)高位地址位與來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位進(jìn)行比較。所生成的m個(gè)高位地址位小于存儲(chǔ)器寄存器的m個(gè)高位地址位,于是就在通道205上向或門131傳輸一個(gè)低電平信號(hào)。該低電平信號(hào)指示,所生成的m個(gè)高位地址位小于存儲(chǔ)器分段的最高地址,可能是有效地址。所生成的m個(gè)高位地址位也由小于比較器203通過(guò)通道211接收。來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位由小于比較器203通過(guò)通道215接收。小于比較器203將所生成的m個(gè)高位地址位與來(lái)自存儲(chǔ)器寄存器102的m個(gè)高位地址位進(jìn)行比較。所生成的m個(gè)高位地址位小于存儲(chǔ)器寄存器的m個(gè)高位地址位,于是就在通道206上向或門131傳輸一個(gè)低電平信號(hào)。該低電平信號(hào)指示,所生成的m個(gè)高位地址位大于存儲(chǔ)器分段的最低地址,可能是有效地址。將通道205的低電平信號(hào)與通道204的低電平信號(hào)進(jìn)行邏輯“或”運(yùn)算。產(chǎn)生的低電平信號(hào)在通道140上傳播,出錯(cuò)檢測(cè)電路的其余部分如圖1中所述的那樣完成針對(duì)出錯(cuò)的操作。
圖3表示被劃分成若干分段300~307的RAM120。分段200~307每個(gè)都由m個(gè)高位地址位的一個(gè)唯一組合來(lái)定義。m個(gè)位的位數(shù)是由存儲(chǔ)器中的分段的數(shù)目確定的。例如,RAM120容量是64KB,被劃分成8個(gè)分段。m等于3,每個(gè)分段都由3個(gè)高位的唯一組合來(lái)定義。在本例中,分段300~307的高位3位分別是000、001、010、011、100、101、110和111。
多任務(wù)系統(tǒng)100運(yùn)行一個(gè)操作系統(tǒng)和若干由處理器101執(zhí)行的應(yīng)用程序A~G。各個(gè)應(yīng)用程序A~G以及操作系統(tǒng)都在RAM120的分段300~307之一中存儲(chǔ)數(shù)據(jù),如圖3中所示。本發(fā)明要求,每個(gè)應(yīng)用程序被編譯時(shí),生成的數(shù)據(jù)操作的地址的m個(gè)高位地址位要被設(shè)置為常數(shù)。例如,在最佳實(shí)施例中,應(yīng)用程序A~G生成的地址中的m個(gè)高位地址位全為0。本發(fā)明中的操作系統(tǒng)調(diào)度對(duì)本發(fā)明中的應(yīng)用程序A~G的執(zhí)行,能訪問(wèn)整個(gè)存儲(chǔ)器,以便在應(yīng)用程序之間傳輸數(shù)據(jù)。
圖4表示的是按照本發(fā)明的、具有存儲(chǔ)器保護(hù)特征功能的多任務(wù)系統(tǒng)的操作概述。過(guò)程400從步驟401開(kāi)始,操作系統(tǒng)初始化系統(tǒng),以執(zhí)行其中一個(gè)應(yīng)用程序A~G。在步驟402中,由處理器101執(zhí)行一個(gè)選定的應(yīng)用程序,例如應(yīng)用程序A。在步驟403中,操作系統(tǒng)驗(yàn)證存儲(chǔ)器寄存器102中的m個(gè)高位地址位等于應(yīng)用程序A的m個(gè)高位地址位。處理器101每次執(zhí)行一個(gè)應(yīng)用程序A~G時(shí),都要重復(fù)執(zhí)行過(guò)程400。
操作系統(tǒng)在步驟401中執(zhí)行的對(duì)多任務(wù)系統(tǒng)100的初始化,由圖5中的過(guò)程500表示。首先,操作系統(tǒng)在步驟501中選擇一個(gè)要執(zhí)行的應(yīng)用程序,例如應(yīng)用程序A。在步驟502,由操作系統(tǒng)將分配給應(yīng)用程序A去存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器分段的m個(gè)高位地址位寫到存儲(chǔ)器寄存器102。在步驟503,將保護(hù)信號(hào)設(shè)置為低電平,以表示應(yīng)用程序A正在由處理器101執(zhí)行。過(guò)程500然后返回到圖4的過(guò)程400的步驟401。
圖6是表示在過(guò)程400的步驟402中執(zhí)行應(yīng)用程序A的過(guò)程600。過(guò)程600在步驟601以應(yīng)用程序A的執(zhí)行為開(kāi)始。在步驟602,應(yīng)用程序A必須執(zhí)行一個(gè)對(duì)RAM120的讀/寫操作。所生成的地址具有被設(shè)置成常數(shù)的m個(gè)高位地址位。在最佳實(shí)施例中,m個(gè)高位地址位每個(gè)都是0。在步驟604中,將所生成的n個(gè)低位地址位經(jīng)低位地址總線121傳輸?shù)絉AM120。讀/寫操作的地址的m個(gè)高位由存儲(chǔ)器寄存器102通過(guò)通道122~124所代表的高位地址總線接收。
在步驟605中,步驟603中生成的m個(gè)高位地址位由處理器101通過(guò)總線105和通道109~111傳輸?shù)匠鲥e(cuò)檢測(cè)電路。出錯(cuò)檢測(cè)電路判斷所生成的是否是無(wú)效地址。讀/寫操作在步驟606中完成。過(guò)程600在步驟607完成,該步驟判斷應(yīng)用程序的執(zhí)行是否完成。如果應(yīng)用程序的完成沒(méi)有完成,步驟607就從步驟601開(kāi)始重復(fù)過(guò)程600。如果執(zhí)行結(jié)束,過(guò)程600就返回到圖4的過(guò)程400的步驟402。
出錯(cuò)檢測(cè)電路在步驟605接收m個(gè)高位地址位并完成圖7中所示的過(guò)程700。過(guò)程700保護(hù)在為過(guò)程600中正在執(zhí)行的應(yīng)用程序存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器分段中的數(shù)據(jù)。存儲(chǔ)器寄存器102傳輸正在執(zhí)行的應(yīng)用程序的存儲(chǔ)器分段專有的m個(gè)位,以防止有應(yīng)用程序在其存儲(chǔ)器分段范圍以外寫數(shù)據(jù)。在一定條件下,例如發(fā)生堆棧溢出錯(cuò)誤時(shí),應(yīng)用程序會(huì)試圖生成在其存儲(chǔ)器分段范圍以外的地址。然而,該無(wú)效地址的n個(gè)位與存儲(chǔ)器寄存器102的m個(gè)位的組合,產(chǎn)生的是一個(gè)在應(yīng)用程序的存儲(chǔ)器分段內(nèi)部的、可能含有有效數(shù)據(jù)的地址。出錯(cuò)檢測(cè)電路必須檢測(cè)出任何無(wú)效地址并禁止該數(shù)據(jù)操作,以防止應(yīng)用程序的存儲(chǔ)器分段內(nèi)的有效數(shù)據(jù)出錯(cuò)。
過(guò)程700以步驟701開(kāi)始,該步驟判斷n個(gè)高位是否等于該常數(shù)。在最佳實(shí)施例中,應(yīng)用程序所生成的m個(gè)位各為0,出錯(cuò)檢測(cè)電路檢測(cè)不等于0的位。如果該m個(gè)位等于該常數(shù),過(guò)程700就返回圖6所示的過(guò)程600的步驟605。如果該m個(gè)高位地址位不等于該常數(shù),過(guò)程700就在步驟702生成一個(gè)出錯(cuò)信號(hào)。根據(jù)該出錯(cuò)信號(hào),步驟703關(guān)閉芯片選擇信號(hào),以停止該讀/寫操作,防止應(yīng)用程序的存儲(chǔ)器分段內(nèi)的數(shù)據(jù)出錯(cuò)。在最佳實(shí)施例中,步驟701~703是由上文在圖1中所述的出錯(cuò)檢測(cè)電路執(zhí)行的。
在圖7的步驟704中,步驟702中生成的出錯(cuò)信號(hào)被傳輸?shù)教幚砥?01。在步驟706,處理器101接收出錯(cuò)信號(hào)后的響應(yīng)是,要么產(chǎn)生一個(gè)出錯(cuò)中斷,要么設(shè)置一個(gè)出錯(cuò)標(biāo)志。處理器101的如何響應(yīng),是由操作系統(tǒng)決定的,是本發(fā)明的設(shè)計(jì)者的一種設(shè)計(jì)選擇。步驟703和704的錯(cuò)誤恢復(fù)不予討論,因?yàn)殄e(cuò)誤恢復(fù)是本發(fā)明范圍以外的事情。
圖8表示在過(guò)程400的步驟403中由操作系統(tǒng)執(zhí)行的出錯(cuò)檢測(cè)過(guò)程800。首先,在步驟801將保護(hù)信號(hào)設(shè)置為高電平,表示操作系統(tǒng)正在被執(zhí)行。在步驟802,存儲(chǔ)器寄存器102被操作系統(tǒng)讀取。在步驟802,由操作系統(tǒng)將從存儲(chǔ)器寄存器102讀取的m個(gè)高位地址位與已經(jīng)完成的應(yīng)用程序的存儲(chǔ)器分段的m個(gè)高位地址位進(jìn)行比較。如果相比較的m個(gè)高位地址位不相等,就由操作系統(tǒng)在步驟802生成一個(gè)出錯(cuò)信號(hào)。否則,過(guò)程800就返回到圖4的過(guò)程400的步驟403。
本發(fā)明涉及在多任務(wù)系統(tǒng)中提供存儲(chǔ)器保護(hù)。盡管本文舉例說(shuō)明了特定的實(shí)施例,可以預(yù)期,本領(lǐng)域的技術(shù)人員將能在以下權(quán)利要求一無(wú)論是明確提出的或是依據(jù)等同物原則(Doctrine of Equivalents)-的范圍內(nèi)設(shè)計(jì)出可替代的存儲(chǔ)器保護(hù)系統(tǒng)。
權(quán)利要求
1.一種用于防止在與執(zhí)行若干應(yīng)用程序(A-G)的處理器(101)相連的存儲(chǔ)器(120)中存儲(chǔ)的數(shù)據(jù)出錯(cuò)的存儲(chǔ)器保護(hù)系統(tǒng),其中,該若干應(yīng)用程序(A-G)每個(gè)都在存儲(chǔ)器(120)的由m個(gè)高位地址位(0000h-FFFFh)的唯一組合所標(biāo)識(shí)的若干分段(300-307)之一中存儲(chǔ)數(shù)據(jù),該系統(tǒng)具有的特征為一個(gè)存儲(chǔ)器寄存器(102),它接收并存儲(chǔ)標(biāo)識(shí)該若干分段(300-307)中存儲(chǔ)著當(dāng)前正被處理器(101)執(zhí)行的一個(gè)應(yīng)用程序(A-G)的數(shù)據(jù)的一個(gè)分段的m個(gè)高位地址位的唯一組合;一個(gè)低位地址總線(121),它將由處理器(101)生成的n個(gè)低位地址位傳輸給存儲(chǔ)器(120);一個(gè)多路轉(zhuǎn)換器(130),它根據(jù)表示應(yīng)用程序正在被處理器(101)執(zhí)行的第一種信號(hào)而有選擇地傳輸來(lái)自存儲(chǔ)器寄存器(102)的m個(gè)高位地址位,并且根據(jù)接收的表示操作系統(tǒng)正在被處理器(101)執(zhí)行的第二種信號(hào)而有選擇地傳輸由處理器(101)生成的m個(gè)高位地址位;一個(gè)檢測(cè)電路(1 32),它檢測(cè)處理器(101)為進(jìn)行所述數(shù)據(jù)傳輸而生成的地址中的錯(cuò)誤并根據(jù)檢測(cè)到的錯(cuò)誤而生成出錯(cuò)信號(hào)。
2.權(quán)利要求1的系統(tǒng)(100),進(jìn)一步具有的特征為禁止電路(134-135),它根據(jù)所生成的出錯(cuò)信號(hào)來(lái)禁止所述的數(shù)據(jù)傳輸。
3.權(quán)利要求1的系統(tǒng)(100),其中,所述出錯(cuò)信號(hào)從所述檢測(cè)電路(132)被傳輸?shù)剿鎏幚砥?101),后者根據(jù)接收的出錯(cuò)信號(hào)而執(zhí)行一個(gè)出錯(cuò)中斷。
4.權(quán)利要求1的系統(tǒng)(100),其中,所述檢測(cè)電路(132)具有的特征為比較電路(131),它將由所述處理器(101)在執(zhí)行一個(gè)所述應(yīng)用程序期間所生成的m個(gè)高位地址位與標(biāo)識(shí)存儲(chǔ)器中若干分段中存儲(chǔ)當(dāng)前正在執(zhí)行的應(yīng)用程序的數(shù)據(jù)的一個(gè)分段的m個(gè)高位地址位進(jìn)行比較。
5.權(quán)利要求4的系統(tǒng)(200),其中,所述比較電路(202、203和131)從所述存儲(chǔ)器寄存器(102)接收所述m個(gè)高位地址位。
6.權(quán)利要求5的系統(tǒng)(200),其中,所述比較電路(131)在操作系統(tǒng)被執(zhí)行時(shí)關(guān)閉。
7.一種用于防止在與處理器(101)相連的存儲(chǔ)器(120)的若干分段(300-307)中存儲(chǔ)的數(shù)據(jù)出錯(cuò)的方法(400),其中,該若干分段每個(gè)都由m個(gè)高位地址位(0000h-FFFFh)的唯一組合所標(biāo)識(shí),并存儲(chǔ)該若干應(yīng)用程序(A-G)中一個(gè)正在被處理器執(zhí)行的不同應(yīng)用程序的數(shù)據(jù),該方法的特征在于有以下步驟接收(603)為若干應(yīng)用程序中當(dāng)前正被執(zhí)行的一個(gè)應(yīng)用程序生成的m個(gè)高位地址位;在存儲(chǔ)器寄存器中存儲(chǔ)(502)所接收的m個(gè)高位地址位;響應(yīng)為當(dāng)前正被執(zhí)行的若干應(yīng)用程序(A-G)之一執(zhí)行數(shù)據(jù)傳輸?shù)奶幚砥?101)而從存儲(chǔ)器寄存器向存儲(chǔ)器傳輸m個(gè)高位地址位;將由所述處理器(101)為數(shù)據(jù)傳輸而生成的n個(gè)低位地址位傳輸(604)到所述存儲(chǔ)器(120)。檢測(cè)(700)由處理器(101)為數(shù)據(jù)傳輸而生成的地址中的錯(cuò)誤;和根據(jù)檢測(cè)到的錯(cuò)誤而生成(702)一個(gè)出錯(cuò)信號(hào)。
8.權(quán)利要求7的方法(400),進(jìn)一步的特征在于有以下步驟根據(jù)所生成的出錯(cuò)信號(hào)禁止(703)所述的數(shù)據(jù)傳輸。
9.權(quán)利要求7的方法(400),進(jìn)一步的特征在于有以下步驟將出錯(cuò)信號(hào)傳輸(704)到所述處理器(101)。
10.權(quán)利要求9的方法(400),進(jìn)一步的特征在于有以下步驟根據(jù)接收的出錯(cuò)信號(hào)在處理器(101)中生成一個(gè)出錯(cuò)中斷。
11.權(quán)利要求7的方法(400),其中,檢測(cè)(700)錯(cuò)誤的步驟包含的步驟為比較(701)由所述處理器為數(shù)據(jù)傳輸而生成的m個(gè)高位地址位和標(biāo)識(shí)存儲(chǔ)當(dāng)前被執(zhí)行的若干應(yīng)用程序之一的數(shù)據(jù)的若干分段之一的所述m個(gè)高位地址位。
12.權(quán)利要求11的方法(400),其中,檢測(cè)(700)步驟的進(jìn)一步特征在于有以下步驟從存儲(chǔ)所述m個(gè)高位地址位的存儲(chǔ)器寄存器(102)接收m個(gè)高位地址位。
13.權(quán)利要求7的方法(400),進(jìn)一步的特征在于有以下步驟響應(yīng)操作系統(tǒng)的執(zhí)行,傳輸由所述處理器(101)生成的m個(gè)高位地址位。
14.權(quán)利要求13的方法(400),進(jìn)一步的特征在于有以下步驟響應(yīng)操作系統(tǒng)的執(zhí)行,關(guān)閉所述錯(cuò)誤檢測(cè)。
全文摘要
一種用于在多任務(wù)系統(tǒng)中防止當(dāng)前正在運(yùn)行的應(yīng)用程序向存儲(chǔ)著第二個(gè)應(yīng)用程序的數(shù)據(jù)的存儲(chǔ)器分段寫數(shù)據(jù)的存儲(chǔ)器保護(hù)系統(tǒng)。該存儲(chǔ)器保護(hù)系統(tǒng)將定義當(dāng)前正在運(yùn)行的應(yīng)用程序的存儲(chǔ)器分段的m位高位地址從存儲(chǔ)器寄存器傳輸?shù)酱鎯?chǔ)器。存儲(chǔ)器保護(hù)系統(tǒng)檢測(cè)到當(dāng)前正在運(yùn)行的應(yīng)用程序生成無(wú)效地址時(shí),就禁止該數(shù)據(jù)操作,以防止在存儲(chǔ)著當(dāng)前運(yùn)行的應(yīng)用程序的數(shù)據(jù)的存儲(chǔ)器分段中的數(shù)據(jù)出錯(cuò)。系統(tǒng)在應(yīng)用程序完成之后驗(yàn)證存儲(chǔ)器寄存器中的m個(gè)高位地址位等于該完成了的應(yīng)用程序的存儲(chǔ)器分段的m個(gè)高位地址位。
文檔編號(hào)G06F12/14GK1282430SQ98812274
公開(kāi)日2001年1月31日 申請(qǐng)日期1998年12月7日 優(yōu)先權(quán)日1997年12月16日
發(fā)明者A·L·薩姆森, T·C·格林 申請(qǐng)人:微動(dòng)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
增城市| 昆山市| 新化县| 西乌珠穆沁旗| 清水县| 平南县| 安仁县| 资讯 | 垣曲县| 彭山县| 宝应县| 普兰店市| 安庆市| 德庆县| 涪陵区| 工布江达县| 紫金县| 新兴县| 庆云县| 嘉兴市| 西吉县| 美姑县| 龙井市| 健康| 溆浦县| 航空| 绥滨县| 湛江市| 乌鲁木齐市| 丘北县| 海口市| 阿拉善左旗| 大足县| 霍林郭勒市| 松桃| 水富县| 台东市| 乐业县| 忻州市| 吴川市| 彝良县|