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

在單計算機(jī)上可在同一時刻執(zhí)行多道程序的方法及計算機(jī)的制作方法

文檔序號:6408407閱讀:293來源:國知局
專利名稱:在單計算機(jī)上可在同一時刻執(zhí)行多道程序的方法及計算機(jī)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)技術(shù)范疇中的計算機(jī)體系結(jié)構(gòu)技術(shù)領(lǐng)域。具體說是一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī)。
背景技術(shù)
最早的計算機(jī)是由著名數(shù)學(xué)家馮.偌依曼等人在1946年總結(jié)并明確提出來的,因此經(jīng)常稱之為馮.偌依曼結(jié)構(gòu)計算機(jī)。馮.偌依曼結(jié)構(gòu)計算機(jī)的發(fā)明奠定了現(xiàn)代計算機(jī)發(fā)展的基礎(chǔ),有著十分重大的意義。
按照馮.偌依曼計算機(jī)原理設(shè)計的計算機(jī)在體系結(jié)構(gòu)上的特點有許多的歸納與總結(jié)。但本發(fā)明作者認(rèn)為馮.偌依曼結(jié)構(gòu)計算機(jī)在體系結(jié)構(gòu)上的最重要的特點是面向單道程序執(zhí)行的體系結(jié)構(gòu),即在任何時刻,都僅有而且僅能有一道程序在計算機(jī)中執(zhí)行。
在現(xiàn)代計算機(jī)的實際應(yīng)用中,一個用戶在一臺計算機(jī)(PC)上調(diào)用多個應(yīng)用、運行多道程序的情況比比皆是在用編輯器編寫某個文檔的同時,從網(wǎng)上下載一個、甚至同時下載多個圖片、也許還在播放著一段音樂、防病毒程序正在實時監(jiān)控、敲擊鍵盤、移動鼠標(biāo)等。為滿足該用戶的需求,一個PC不得不花費大量的時間用于在所有這些程序之間頻繁地來回切換,至使系統(tǒng)的總體性能大大降低。所有這一切都是由于根據(jù)馮.偌依曼計算機(jī)原理設(shè)計的馮.偌依曼結(jié)構(gòu)計算機(jī)不能在同一時刻在同一臺計算機(jī)上同時并行地執(zhí)行多道程序。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī),其特征在于在任一臺該類計算機(jī)上能夠在同一時刻并行地執(zhí)行多道程序。
如上所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī),其特征在于為每一道程序引入了一個程序執(zhí)行驅(qū)動裝置,從而多個程序執(zhí)行驅(qū)動裝置可在同一臺該類計算機(jī)上相互獨立地管理與控制多道程序在同一時刻并行地執(zhí)行。注,組成一道程序的多道程序或子程序亦可有各自的程序執(zhí)行驅(qū)動裝置。
每道程序在生成可執(zhí)行代碼的同時,生成了該道程序的程序執(zhí)行驅(qū)動裝置。一個程序執(zhí)行驅(qū)動裝置至少包含有用于說明與定義該道程序?qū)傩蕴卣饕约肮芾砼c控制該道程序執(zhí)行所需要的全部相關(guān)信息。
新型計算機(jī)的基本構(gòu)成1、系統(tǒng)的硬件部分至少由下述部件組成一個或多個可并行工作的存儲部件,如程序存儲部件、數(shù)據(jù)存儲部件、寄存器組等,一個或多個可并行工作的操作控制部件,如控制部件、“譯碼”部件、算術(shù)/邏輯運算部件、外部設(shè)備部件等,一個或多個可并行工作的在部件間起連接作用的連通部件,如總線及其控制部件等。上述各類部件通常有一個輸入緩存裝置與一個輸出緩存裝置。注●系統(tǒng)中的所有部件可按請求/服務(wù)的方式工作收到請求后,即輸入緩存非空時,啟動完成指定的服務(wù),結(jié)果存入輸出緩存。
●如某被請求服務(wù)的部件重復(fù)設(shè)置了多個,則可任選一個閑者。如果全忙,則等其閑。
●系統(tǒng)中的部件分為獨占型與非獨占型。對于獨占型部件,或由系統(tǒng)預(yù)設(shè)或在第一次請求服務(wù)時申請。預(yù)設(shè)或申請的結(jié)果保存到該道程序?qū)?yīng)的程序執(zhí)行驅(qū)動裝置的某些項目中。
2、系統(tǒng)的軟件部分至少由一個類似于現(xiàn)代計算機(jī)系統(tǒng)中的操作系統(tǒng)的系統(tǒng)管理程序所組成。該系統(tǒng)管理程序存放在某個存儲部件中,至少具有程序調(diào)度的功能,并至少維護(hù)著一個稱為程序調(diào)度表的數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)在初啟時就將系統(tǒng)管理程序的程序執(zhí)行驅(qū)動裝置加載到系統(tǒng)的某操作控制部件中去,稱為激活或活化該程序執(zhí)行驅(qū)動裝置。該程序執(zhí)行驅(qū)動裝置將驅(qū)動系統(tǒng)管理程序逐個激活多個用戶程序的程序執(zhí)行驅(qū)動裝置。此后,各用戶程序的程序執(zhí)行驅(qū)動裝置將相互獨立地在同一時刻驅(qū)動各自的用戶程序在同一臺上述計算機(jī)中同時并行地執(zhí)行。
新型計算機(jī)的工作方法,即程序執(zhí)行驅(qū)動裝置驅(qū)動程序執(zhí)行的方法1、一道程序一旦生成了可執(zhí)行代碼及其程序執(zhí)行驅(qū)動裝置,系統(tǒng)管理程序就將該道程序的程序執(zhí)行驅(qū)動裝置寫入到它的程序調(diào)度表中。此時,該程序存放在某個存儲部件中并處于等待執(zhí)行狀態(tài)。
2、該道程序一旦滿足被調(diào)入執(zhí)行的各項條件,系統(tǒng)管理程序就將激活或活化該道程序的程序執(zhí)行驅(qū)動裝置。此后,該道程序進(jìn)入執(zhí)行狀態(tài),并在它的程序執(zhí)行驅(qū)動裝置的管理與控制下獨立地執(zhí)行。
3、程序執(zhí)行驅(qū)動裝置依據(jù)它所保存的該道程序的駐存信息(如程序存儲部件號、部件內(nèi)地址PC等)控制到相應(yīng)的存儲部件去取當(dāng)前要執(zhí)行的指令。
4、指令取出后,該程序執(zhí)行驅(qū)動裝置即控制到某操作控制部件對已取出的指令進(jìn)行“譯碼”。并據(jù)此,控制到相應(yīng)的存儲部件去取操作數(shù)、控制到相應(yīng)的操作控制部件完成指定的處理,以及控制將處理的結(jié)果寫回到相應(yīng)的存儲部件中去。注●此處的“譯碼”與傳統(tǒng)的譯碼有些許差別,詳見后續(xù)章節(jié)。
●取出后的指令、指令“譯碼”的結(jié)果、取出的操作數(shù)、以及操作的結(jié)果均被暫時地保存在該程序執(zhí)行驅(qū)動裝置的某些單元中。
5、最后,在該程序執(zhí)行驅(qū)動裝置將它所保存的屬于程序駐存信息類中的PC項按當(dāng)前指令規(guī)定的方式進(jìn)行修正后,轉(zhuǎn)步驟3以控制執(zhí)行本道程序的下一條指令。
6、至少在下述情況下,系統(tǒng)管理程序?qū)⑿遁d某道程序的程序執(zhí)行驅(qū)動裝置1)執(zhí)行到該道程序的結(jié)束指令這將導(dǎo)致PM置相應(yīng)的結(jié)束標(biāo)志并激活系統(tǒng)管理程序的程序執(zhí)行驅(qū)動裝置驅(qū)動系統(tǒng)管理程序?qū)υ摰莱绦蜻M(jìn)行相應(yīng)的結(jié)束處理,最終從程序調(diào)度表中刪除該道程序的程序執(zhí)行驅(qū)動裝置。2)當(dāng)某個程序執(zhí)行驅(qū)動裝置驅(qū)動的某道程序執(zhí)行完當(dāng)前指令后滿足被中斷的條件這將導(dǎo)致PM置相應(yīng)中斷標(biāo)志后保存該程序執(zhí)行驅(qū)動裝置相應(yīng)單元的內(nèi)容,并啟動系統(tǒng)管理程序的中斷處理例程,即將該例程的程序執(zhí)行驅(qū)動裝置置入PM的輸入隊列;由該程序執(zhí)行驅(qū)動裝置驅(qū)動中斷處理例程去完成有關(guān)的中斷處理工作該中斷處理例程將把被中斷的程序的程序執(zhí)行驅(qū)動裝置寫回到系統(tǒng)的程序調(diào)度表中,然后再根據(jù)調(diào)度規(guī)則選擇和激活下一道程序的程序執(zhí)行驅(qū)動裝置以執(zhí)行該道程序。
很明顯,依據(jù)本發(fā)明提出的計算機(jī)工作方法設(shè)計的一類新型的計算機(jī)可實現(xiàn)指令級的并行。事實上,在同一時刻在同一臺該類新型計算機(jī)上多個程序執(zhí)行驅(qū)動裝置相互獨立地管理與控制著多道程序同時并行地執(zhí)行。
在依據(jù)本發(fā)明提出的計算機(jī)工作方法設(shè)計的一類新型的計算機(jī)中可實現(xiàn)指令級的資源共享。系統(tǒng)中的任何部件,如果當(dāng)前未被占用,都可被任意一道程序的程序執(zhí)行驅(qū)動裝置驅(qū)動的當(dāng)前指令所使用。
在依據(jù)本發(fā)明提出的計算機(jī)工作方法設(shè)計的一類新型的計算機(jī)中,活化程序執(zhí)行驅(qū)動裝置的個數(shù)僅與系統(tǒng)提供資源的總量成正比。在系統(tǒng)資源足夠多的條件下,活化程序執(zhí)行驅(qū)動裝置的數(shù)量可足夠的大,即系統(tǒng)可支持足夠多道的程序在同一時刻在同一臺計算機(jī)上同時并行地執(zhí)行。注,當(dāng)?shù)却龍?zhí)行的程序總數(shù)超過系統(tǒng)允許的最大值時,可采用中斷切換技術(shù)使所有的程序都有機(jī)會執(zhí)行。
依據(jù)本發(fā)明提出的計算機(jī)工作方法設(shè)計的一類新型的計算機(jī)與傳統(tǒng)的多計算機(jī)系統(tǒng)、多處理機(jī)系統(tǒng)、以及多處理器系統(tǒng)等有著本質(zhì)的不同,也與采用其它并行處理技術(shù)(如重疊技術(shù)、先行控制技術(shù)、多操作部件技術(shù)、流水線技術(shù)、超流水線技術(shù)、超長指令字技術(shù)、超標(biāo)量技術(shù)、多線程技術(shù)等)的計算機(jī)系統(tǒng)有著本質(zhì)的不同。特別值得指出的是依據(jù)本發(fā)明提出的計算機(jī)工作方法設(shè)計的一類新型的計算機(jī)與傳統(tǒng)的多計算機(jī)系統(tǒng)的差別在于存在許多這樣的情況多道程序只能在一臺計算機(jī)上執(zhí)行而不能分配給多個計算機(jī)執(zhí)行,如鼠標(biāo)、鍵盤、顯示等系統(tǒng)程序、病毒監(jiān)控等程序與使用該臺計算機(jī)的用戶程序就不能分配給多個計算機(jī)執(zhí)行而只能在一臺計算機(jī)上執(zhí)行。在這種情況下,傳統(tǒng)的多計算機(jī)系統(tǒng)只好采用中斷切換方式將多道程序轉(zhuǎn)換成一道“宏”程序在一臺計算機(jī)上執(zhí)行。而在依據(jù)本發(fā)明提出的計算機(jī)工作方法設(shè)計的一類新型的計算機(jī)中,
上述各道程序均可在同一時刻在單臺計算機(jī)上并行地執(zhí)行。


圖1是本發(fā)明的一種實施方案的體系結(jié)構(gòu)的原理性示意框圖;圖2是本發(fā)明的上述實施方案中的程序執(zhí)行驅(qū)動裝置的配送部件的結(jié)構(gòu)框圖;圖3是本發(fā)明的上述實施方案中的配送部件的連通網(wǎng)絡(luò)裝置的交叉互連設(shè)計方式的結(jié)構(gòu)框圖;圖4是本發(fā)明的上述實施方案中的配送部件的連通網(wǎng)絡(luò)裝置的多總線互連設(shè)計方式的結(jié)構(gòu)框圖;圖5是本發(fā)明的上述實施方案的工作流程圖;具體實施方式
依據(jù)本發(fā)明提出的計算機(jī)工作方法可設(shè)計出一類新型結(jié)構(gòu)的計算機(jī)(以下簡稱L結(jié)構(gòu)計算機(jī))。圖1是其中一種實施方案的體系結(jié)構(gòu)的原理性示意框圖。鑒于本文的目的在于闡述L結(jié)構(gòu)計算機(jī)的技術(shù)原理而不是設(shè)計一臺實用的L結(jié)構(gòu)計算機(jī),因此對該原理性體系結(jié)構(gòu)示意框圖作了許多的簡化與省略,如省略了時鐘部分、總線部分等;I/O接口及外部設(shè)備部分也僅僅是象征性的說明。
出于同樣的原因,本文亦僅設(shè)計了一個十分簡化的指令系統(tǒng)。第20-21頁。
L結(jié)構(gòu)計算機(jī)系統(tǒng)的一個最重要的特征在于為每一道程序引入了一個程序執(zhí)行驅(qū)動裝置用于驅(qū)動程序的執(zhí)行。在本示例中,程序執(zhí)行驅(qū)動裝置被設(shè)計成為由一組信息單元組成的信息塊。在系統(tǒng)硬件的支持下,這些信息單元組,即程序執(zhí)行驅(qū)動裝置,按照當(dāng)前所攜帶的指令的操作碼的要求逐次前往相應(yīng)的各功能部件對指令的操作數(shù)進(jìn)行指定的功能操作,如取操作、運算操作、存操作等。程序執(zhí)行驅(qū)動裝置的組成如下所示

在本示例中,一個程序執(zhí)行驅(qū)動裝置由30個單元組成,各組成單元的定義與說明如下所示。
單元0-單元6運行時工作單元用于本道程序在執(zhí)行過程中存放臨時/中間結(jié)果。其中0號單元(稱為NEXT單元)是本程序執(zhí)行驅(qū)動裝置當(dāng)前將要前往請求服務(wù)的功能部件的編號;1-6號單元依當(dāng)前所驅(qū)動的指令的不同而不同,其具體用法在描述各部件功能時有詳細(xì)的說明。特別需要指出的是單元1有時被用作ΔPC單元,當(dāng)ΔPC=0時表示當(dāng)前指令是一條END指令,當(dāng)ΔPC=1時表示當(dāng)前指令是一條非轉(zhuǎn)移型指令,當(dāng)ΔPC>1或ΔPC<0時表示當(dāng)前指令是一條轉(zhuǎn)移型指令。
單元7程序存儲部件的部件編號(MPno)用于存放本道程序駐存的程序存儲部件的部件編號。
單元8程序存儲部件的部件個數(shù)(MPnu)當(dāng)一道程序所需要占用的程序空間大于一個程序存儲部件的容量時,可按順序存放在鄰接的多個連續(xù)的程序存儲部件中。程序存儲部件個數(shù)單元用于存放本道程序所占用的連續(xù)的程序存儲部件的個數(shù)。如果MPnu的值大于1,則MPno的值是第一個程序存儲部件的部件編號。
單元9程序存儲部件的部件內(nèi)地址(PC)用于存放本道程序當(dāng)前執(zhí)行指令的程序存儲部件的部件內(nèi)地址。
單元10數(shù)據(jù)存儲部件的部件編號(MDno)用于存放本道程序所占用的數(shù)據(jù)存儲部件的部件編號。
單元11數(shù)據(jù)存儲部件部件個數(shù)(MDnu)當(dāng)一道程序所需要占用的數(shù)據(jù)空間大于一個數(shù)據(jù)存儲部件的容量時,可按順序占用鄰接的多個連續(xù)的數(shù)據(jù)存儲部件。數(shù)據(jù)存儲部件個數(shù)單元用于存放本道程序所占用的連續(xù)的數(shù)據(jù)存儲部件的個數(shù)。如果MDnu的值大于1,則MDno的值是第一個數(shù)據(jù)存儲部件的部件編號;單元12執(zhí)行指令條數(shù)(Ins)用于記錄本道程序本次調(diào)入后累計執(zhí)行的指令條數(shù)。本參數(shù)在本實施例中用在中斷處理中作為中斷條件。
單元13程序道號(PrNo)當(dāng)兩道以上正在執(zhí)行的程序共同存放在同一個程序存儲部件中時,用本參數(shù)標(biāo)識各道程序。
單元14-單元2916個通用寄存器(R0-R15)在本實施例中,將16個通用寄存器(R0…R15)設(shè)計成為程序執(zhí)行驅(qū)動裝置的組成部分。
在傳統(tǒng)計算機(jī)中,寄存器組通常被設(shè)計成為一種硬件部件,由硬件的存儲電器裝置和讀/寫電器裝置構(gòu)成。為區(qū)別起見,稱此種寄存器組設(shè)計方式為固定式寄存器組設(shè)計方式。對于L結(jié)構(gòu)計算機(jī),寄存器組可按固定式硬件方式進(jìn)行設(shè)計。然而在本實施例中,寄存器組被設(shè)計成為程序執(zhí)行驅(qū)動裝置的一個組成部分、且隨著程序執(zhí)行驅(qū)動裝置來往于各部件之間。稱此種寄存器組設(shè)計方式為動態(tài)寄存器組設(shè)計方式。這樣設(shè)計的最大好處是不僅消除了讀/寫寄存器所花費的傳送時間,而且也消除了各道程序同時訪問寄存器組時造成的等待延時。
圖1列出了本發(fā)明的上述實施例的系統(tǒng)各硬件功能部件。這些功能部件的主要功能及其輸入/輸出的程序執(zhí)行驅(qū)動裝置的內(nèi)容如下所述。
1、存儲功能部件1)部件1稱為程序存儲部件MP,用于提供有關(guān)讀/寫程序存儲部件的服務(wù)。可設(shè)置多個可獨立并行工作的MP部件。每個MP部件的主要功能如下●MP維護(hù)著一個輸入隊列,所有請求本MP處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中。MP也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù)。
●讀請求如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是讀操作,則從該程序執(zhí)行驅(qū)動裝置中取出該道程序的部件內(nèi)地址PC送MP的地址寄存器,并啟動MP的讀操作讀取該道程序的當(dāng)前指令;讀出的指令寫入到當(dāng)前的程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中;置程序執(zhí)行驅(qū)動裝置的NEXT單元為IT;然后將其寫入到MP的輸出隊列中。
●寫請求如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是讀操作,需完成的操作與數(shù)據(jù)存儲部件的寫操作類似,此處予以省略。
●重復(fù)上述處理過程;如果本MP的輸入隊列為空或輸出隊列為滿;則進(jìn)行一次空操作。
●在MP部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示。

其中0號單元中的MPr表示目的部件是MP且要求進(jìn)行“讀”操作;注,限于篇幅,凡當(dāng)前未涉及到的程序執(zhí)行驅(qū)動裝置的組成單元,如單元1至單元6,均予以省缺,以下相同。
●在MP部件的輸出隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示。其中1號單元中的I為讀出的當(dāng)前指令,如LDIR0,C。

注,在本實施例中略去了如何將程序本身寫入程序存儲部件的過程,也因此略去了有關(guān)的程序執(zhí)行驅(qū)動裝置組成單元的內(nèi)容;事實上,該過程與將數(shù)據(jù)寫入相應(yīng)的數(shù)據(jù)存儲部件的過程類似。
2)部件2稱為數(shù)據(jù)存儲部件MD,用于提供有關(guān)讀/寫數(shù)據(jù)存儲部件的服務(wù)。可設(shè)置多個可獨立并行工作的MD部件。每個MD部件的主要功能如下●MD維護(hù)著一個輸入隊列,所有請求本MD處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中。MD也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù)。
●讀操作如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是讀操作,則從該程序執(zhí)行驅(qū)動裝置中取出該讀操作的部件內(nèi)地址送MD的地址寄存器,并啟動MD的讀操作讀取相應(yīng)存儲單元的內(nèi)容;讀出的數(shù)據(jù)寫入到當(dāng)前的程序執(zhí)行驅(qū)動裝置的某單元中;置NEXT單元為PM;置ΔPC單元為1;然后將其寫入到MD的輸出隊列中。
●寫操作如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是寫操作,則從該程序執(zhí)行驅(qū)動裝置中取出該寫操作的數(shù)據(jù)及部件內(nèi)地址分別送MD的數(shù)據(jù)寄存器和地址寄存器,并啟動MD的寫操作將數(shù)據(jù)寫入到相應(yīng)的MD存儲單元中去;置NEXT單元為PM;置ΔPC單元為1;然后將其寫入到MD的輸出隊列中。
●重復(fù)上述處理過程,如果本MD的輸入隊列為空或輸出隊列為滿;則進(jìn)行一次空操作。
●在MD部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容可參見IT部件的輸出隊列中發(fā)往MD的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容。
●在MD部件的輸出隊列中發(fā)往PM的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示

其中1號單元為PC,當(dāng)前指令的當(dāng)前值是1。
2、操作功能部件1)部件3稱為程序管理部件PM,用于提供有關(guān)管理程序執(zhí)行驅(qū)動裝置運行的服務(wù)??稍O(shè)置多個可獨立并行工作的PM部件。每個PM部件的主要功能如下●PM維護(hù)著一個輸入隊列,所有請求本PM處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中。PM也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù)。
●啟動一個程序執(zhí)行驅(qū)動裝置的運行系統(tǒng)管理程序激活一道程序的程序執(zhí)行驅(qū)動裝置實際上就是將該道程序的程序執(zhí)行驅(qū)動裝置寫入PM的輸入隊列。當(dāng)PM處理到該程序執(zhí)行驅(qū)動裝置時,將其NEXT單元置為MP(取指令),然后將其寫入到PM的輸出隊列中。
●繼續(xù)一個程序執(zhí)行驅(qū)動裝置的運行每個程序執(zhí)行驅(qū)動裝置驅(qū)動一道程序的當(dāng)前指令執(zhí)行的最后一步是返回到PM。如果當(dāng)前指令不是一條結(jié)束指令,則PM將控制該驅(qū)動器繼續(xù)運行進(jìn)行單元9 單元9+單元1,即PC PC+ΔPC;置NEXT單元為MP;然后將其寫入到PM的輸出隊列中。
●中斷一個程序執(zhí)行驅(qū)動裝置的運行當(dāng)某個程序執(zhí)行驅(qū)動裝置驅(qū)動的某道程序執(zhí)行到當(dāng)前指令滿足被中斷的條件時,PM置相應(yīng)的中斷標(biāo)志、保存該程序執(zhí)行驅(qū)動裝置相應(yīng)單元的內(nèi)容、并啟動系統(tǒng)管理程序的中斷處理例程,即將該例程的程序執(zhí)行驅(qū)動裝置置入PM的輸入隊列,由該程序執(zhí)行驅(qū)動裝置驅(qū)動中斷處理例程去完成有關(guān)的中斷處理工作。該中斷處理例程將把被中斷的程序的程序執(zhí)行驅(qū)動裝置寫回到系統(tǒng)的程序調(diào)度表中,然后再根據(jù)調(diào)度規(guī)則選擇和激活下一道程序的程序執(zhí)行驅(qū)動裝置以執(zhí)行該道程序。
●終止一個程序執(zhí)行驅(qū)動裝置的運行當(dāng)某道程序執(zhí)行到一條結(jié)束指令時,PM將通過采用刪除該道程序的程序執(zhí)行驅(qū)動裝置的方式來終止該道程序的執(zhí)行。注,該道程序在執(zhí)行結(jié)束指令前,須執(zhí)行一條或多條資源釋放型指令。
●重復(fù)上述處理過程;如果本PM的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作。
●在PM部件的輸入隊列中接收到的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示

其中1號單元為PC,其值或是0或是1或是轉(zhuǎn)移的偏移量。
●在PM部件的輸出隊列中發(fā)往MP部件的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示

其中0號單元中的MPr表示目的部件是MP且要求進(jìn)行“讀”操作;2)部件4稱為指令格式轉(zhuǎn)換部件IT,用于提供有關(guān)指令譯碼和指令格式轉(zhuǎn)換的服務(wù)。可設(shè)置多個可獨立并行工作的IT部件。每個IT的主要功能如下●IT維護(hù)著一個輸入隊列,所有請求本IT處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中。IT也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù)。
●對于請求指令格式轉(zhuǎn)換的程序執(zhí)行驅(qū)動裝置,IT將對該程序執(zhí)行驅(qū)動裝置中存放的當(dāng)前指令進(jìn)行格式轉(zhuǎn)換,并據(jù)此設(shè)置NEXT等單元,然后將其寫入到IT的輸出隊列中。
●重復(fù)上述處理過程;如果本IT的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作。
●在IT部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示。其中1號單元中的I為讀出的當(dāng)前指令,如LDIR0,C。

●在IT部件的輸出隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容根據(jù)當(dāng)前指令I(lǐng)的不同而不同,如下所示。
由IT發(fā)往PM的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容LDI Rd,C

其中1號單元為PC,當(dāng)前指令的當(dāng)前值是1。
MV Rd,Rs

其中1號單元為PC,當(dāng)前指令的當(dāng)前值是1。
Δ由IT發(fā)往MD的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容LD Rd,Rs

其中0號單元中的MDr表示目的部件是MD且要求進(jìn)行“讀”操作;2,3號單元中的[Rd]與[Rs]表示寄存器Rd與寄存器Rs中的內(nèi)容。
STI Rd,C

其中0號單元中的MDIw表示目的部件是MD且要求進(jìn)行“立即數(shù)寫”操作;2號單元中的[Rd]表示寄存器Rd中的內(nèi)容。
ST Rd,Rs

其中0號單元中的MDw表示目的部件是MD且要求進(jìn)行“寫”操作;2,3號單元中的[Rd]與[Rs]表示寄存器Rd與寄存器Rs中的內(nèi)容。
Δ由IT發(fā)往ALU的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容ADDI Rd,C

其中0號單元中的ALUI+表示目的部件是ALU且要求進(jìn)行“立即數(shù)的加”操作。對于SUBI,MULI,DIVI等指令,其相應(yīng)的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容與此類似,僅是0號單元分別置為是ALUI-、ALUI*、ALUI÷。
ADD Rd,Rs1,Rs2

其中0號單元中的ALU+表示目的部件是ALU且要求進(jìn)行“加”操作;SUB,MUL,DIV等與此類似。
JEQI Rs,C

其中0號單元中的ALUIj表示目的部件是ALU且要求進(jìn)行“立即數(shù)的轉(zhuǎn)移判斷”操作;JNEI等與此類似。
JEQ Rs1,Rs2

其中0號單元中的ALUj表示目的部件是ALU且要求進(jìn)行“轉(zhuǎn)移判斷”操作;JNE等與此類似。
SLT Rd,Rs1,Rs2

其中0號單元中的ALUslt表示目的部件是ALU且要求進(jìn)行“小于設(shè)置”操作;SLE、SGT、SGE、SEQ、SNE等與此類似。
3)部件5稱為算術(shù)/邏輯運算部件ALU,用于提供有關(guān)算術(shù)/邏輯運算的服務(wù)??稍O(shè)置多個可獨立并行工作的ALU部件。每個ALU部件的主要功能如下●ALU維護(hù)著一個輸入隊列,所有請求本ALU處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中。ALU也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù)。
●在請求ALU進(jìn)行算術(shù)/邏輯運算的服務(wù)之前,程序執(zhí)行驅(qū)動裝置已控制將該指令所需的操作數(shù)準(zhǔn)備好且存放在程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中。ALU對存放在程序執(zhí)行驅(qū)動裝置中的相應(yīng)的操作數(shù)進(jìn)行所要求的算術(shù)/邏輯運算,結(jié)果存放在程序執(zhí)行驅(qū)動裝置的相應(yīng)的單元中;置NEXT單元PM;按指令的規(guī)定置1單元,即ΔPC單元;然后將其寫入到ALU的輸出隊列中。
●重復(fù)上述處理過程;如果本ALU的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作。
●在ALU部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容可參見IT部件的輸出隊列中的發(fā)往ALU的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容。
●在ALU部件的輸出隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示。

其中1號單元為PC,其值或是1或是轉(zhuǎn)移的偏移量。
4)部件6稱為外部設(shè)備管理部件PD,用于提供管理外部設(shè)備,如顯示、鍵盤、鼠標(biāo)、打印、通信等設(shè)備,與主機(jī)之間進(jìn)行數(shù)據(jù)輸入/輸出的服務(wù)。
3、部件7稱為程序執(zhí)行驅(qū)動裝置配送部件DU,用于提供將程序執(zhí)行驅(qū)動裝置從一個部件的輸出隊列配送到另一個部件的輸入隊列的運輸與配送服務(wù)??稍O(shè)置多個可獨立并行工作的DU部件。每個DU部件的主要功能如下●DU按預(yù)定的順序逐個查詢各部件組的各部件的輸出隊列是否為非空。對于某非空的輸出隊列,DU從隊中取出一程序執(zhí)行驅(qū)動裝置,并按照此程序執(zhí)行驅(qū)動裝置的NEXT單元所指示的目的部件組編號以及目的部件編號查詢該目的部件組的目的部件的輸入隊列是否為非滿。如果是非滿,則將該程序執(zhí)行驅(qū)動裝置配送到該目的部件組的目的部件的輸入隊列中去。注,以上的處理方式是針對PM、MP和MD而言。對于IT和ALU,只需在該部件中任選一輸入隊列為非滿的部件即可。
●重復(fù)上述處理過程;如果所有部件組的所有部件的輸出隊列全為空,或者雖有輸出隊列為非空,但相對應(yīng)的輸入隊列全為滿,則進(jìn)行一次空操作。
圖1亦給出了本發(fā)明的上述實施例中系統(tǒng)各部件的連接關(guān)系部件1到6分別通過各自的一或兩組信號線將各自的輸入隊列的尾端與輸出隊列的首端連到部件7;圖2是本發(fā)明的上述實施例的部件7的結(jié)構(gòu)框圖。部件7由多個數(shù)據(jù)輸入端口、多個數(shù)據(jù)輸出端口、連通網(wǎng)絡(luò)裝置與控制管理裝置等所組成。部件7的控制管理裝置用于選通的控制與管理,如各端口忙閑的探測、優(yōu)先級的確定、路徑的選擇等。部件7的連通網(wǎng)絡(luò)裝置用于將多個數(shù)據(jù)輸入端口連到多個數(shù)據(jù)輸出端口。該連通網(wǎng)絡(luò)裝置的設(shè)計有多種方法,以下列舉其中較為典型的兩種。
圖3是本發(fā)明的上述實施例中的配送部件的連通網(wǎng)絡(luò)裝置的交叉互連設(shè)計方式的結(jié)構(gòu)框圖。裝置7的連通網(wǎng)絡(luò)裝置采用交叉互連結(jié)構(gòu),任何一個輸入端口都與所有或部分輸出端口相連。
圖4是本發(fā)明的上述實施例中的配送部件的多總線互連設(shè)計方式的結(jié)構(gòu)框圖。裝置7的連通網(wǎng)絡(luò)裝置采用多總線結(jié)構(gòu),所有的輸入端口與輸出端口被分成幾組,分別連到一條總線上;總線與總線之間再交叉互連。
圖5是本發(fā)明的上述實施例的工作流程圖,也是在新型計算機(jī)中程序執(zhí)行驅(qū)動裝置的工作流程圖。其具體步驟如下步驟S1,系統(tǒng)初啟時,至少有一道程序,如系統(tǒng)管理程序,的程序執(zhí)行驅(qū)動裝置存放在某個程序管理部件PM的輸出隊列中;下轉(zhuǎn)步驟S2;步驟S2,當(dāng)某個DU部件檢測到某個PM部件的輸出隊列為非空、且當(dāng)前處于隊首的程序執(zhí)行驅(qū)動裝置的NEXT單元所指向的那個特定的目的MP部件的輸入隊列為非滿時,將該PM部件的輸出隊列隊首的程序執(zhí)行驅(qū)動裝置配送到相應(yīng)的MP部件的輸入隊列中等待該部件的處理;下轉(zhuǎn)步驟S3;步驟S3,當(dāng)某個MP部件檢測到其輸入隊列為非空時,按輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中PC單元所指定的PC地址到它所管理的程序存儲部件中讀取指令,取出的指令存放到該程序執(zhí)行驅(qū)動裝置的1號單元中;如果此時該MP部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;下轉(zhuǎn)步驟S4;步驟S4,當(dāng)某個DU部件檢測到某個MP部件的輸出隊列為非空、且當(dāng)前處于隊首的程序執(zhí)行驅(qū)動裝置的NEXT單元所指向的目的部件是IT、且至少有一個IT部件的輸入隊列為非滿時,將該MP部件的輸出隊列隊首的程序執(zhí)行驅(qū)動裝置配送到相應(yīng)的IT部件的輸入隊列中等待該部件的處理;下轉(zhuǎn)步驟S5;步驟S5,當(dāng)某個IT部件檢測到其輸入隊列為非空時,對輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的指令進(jìn)行指令的格式變換,變換后的結(jié)果存放到該程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中;如果此時該IT部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;下轉(zhuǎn)步驟S6;步驟S6,當(dāng)某個DU部件檢測到某個部件,這里的某個部件是指IT、ALU和MD中的任何一個部件,的輸出隊列為非空、且當(dāng)前處于隊首的程序執(zhí)行驅(qū)動裝置的NEXT單元所指向的目的部件的輸入隊列為非滿時,將該部件的輸出隊列隊首的程序執(zhí)行驅(qū)動裝置配送到相應(yīng)的目的部件的輸入隊列中等待該部件的處理。此時的目的部件有3種,一是某個ALU部件,此時的目的ALU部件可以是任意一個輸出隊列有空位的ALU部件;以下轉(zhuǎn)步驟S7;二是某個MD部件,此時的目的MD部件必須是上述程序執(zhí)行驅(qū)動裝置的NEXT單元所特指的哪個MD部件;以下轉(zhuǎn)步驟S8;最后一個是某個PM部件,此時的目的PM部件必須是上述程序執(zhí)行驅(qū)動裝置的NEXT單元所特指的哪個PM部件;以下轉(zhuǎn)步驟S9;步驟S7,當(dāng)某個ALU部件檢測到其輸入隊列為非空時,按輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的NEXT單元中的命令對該程序執(zhí)行驅(qū)動裝置中的相應(yīng)單元所保存的操作數(shù)進(jìn)行指定的算術(shù)/邏輯運算,運算后的結(jié)果存放到該程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中;如果此時該ALU部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;此時的目的部件是PM部件,下轉(zhuǎn)步驟S6;步驟S8,當(dāng)某個MD部件檢測到其輸入隊列為非空時,按輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的NEXT單元中的讀或?qū)懨钜约霸摮绦驁?zhí)行驅(qū)動裝置中的某單元所指定的部件內(nèi)地址對該程序執(zhí)行驅(qū)動裝置中的某單元的數(shù)據(jù)在它所管理的數(shù)據(jù)存儲部件中進(jìn)行讀/寫操作;如果是讀操作,將讀出的數(shù)據(jù)存放到該程序執(zhí)行驅(qū)動裝置的某單元中;如果此時該MD部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;此時的目的部件是PM部件,下轉(zhuǎn)步驟S6;步驟S9,當(dāng)PM的某個部件檢測到其輸入隊列為非空時,按其輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的命令要求進(jìn)行相應(yīng)的操作1)非END指令,此時ΔPC單元為非0值PM按要求修正其PC等單元的值,結(jié)果存放到該程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中;如果此時該PM部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;下轉(zhuǎn)步驟S2。2)END指令,此時ΔPC單元為0PM置相應(yīng)結(jié)束標(biāo)志,從輸入隊列中刪除該程序執(zhí)行驅(qū)動裝置,激活系統(tǒng)管理程序調(diào)度其它程序執(zhí)行。3)當(dāng)某個程序執(zhí)行驅(qū)動裝置驅(qū)動的某道程序執(zhí)行完當(dāng)前指令后滿足被中斷的條件時PM置相應(yīng)中斷標(biāo)志后保存該程序執(zhí)行驅(qū)動裝置相應(yīng)單元的內(nèi)容,并啟動系統(tǒng)管理程序的中斷處理例程,即將該例程的程序執(zhí)行驅(qū)動裝置置入PM的輸入隊列;由該程序執(zhí)行驅(qū)動裝置驅(qū)動中斷處理例程去完成有關(guān)的中斷處理工作該中斷處理例程將把被中斷的程序的程序執(zhí)行驅(qū)動裝置寫回到系統(tǒng)的程序調(diào)度表中,然后再根據(jù)調(diào)度規(guī)則選擇和激活下一道程序的程序執(zhí)行驅(qū)動裝置以執(zhí)行該道程序。
系統(tǒng)的軟件部分由一道簡化的系統(tǒng)管理程序所組成。為重點說明本發(fā)明的技術(shù)原理,該系統(tǒng)管理程序僅設(shè)置了簡化的程序調(diào)度功能和簡化的中斷處理功能,并為此維護(hù)一張程序調(diào)度表。在系統(tǒng)初啟時,該系統(tǒng)管理程序的程序執(zhí)行驅(qū)動裝置就被加載到系統(tǒng)的PM部件中。該程序執(zhí)行驅(qū)動裝置驅(qū)動系統(tǒng)管理程序逐個激活用戶程序的程序執(zhí)行驅(qū)動裝置。當(dāng)?shù)却龍?zhí)行的程序總數(shù)超過系統(tǒng)允許的最大值時,系統(tǒng)管理程序?qū)⑼ㄟ^中斷機(jī)制切換程序的執(zhí)行。
本文所述僅為本發(fā)明技術(shù)構(gòu)思下的一些基本說明。存在多種依據(jù)本發(fā)明提出的計算機(jī)工作方法設(shè)計計算機(jī)的方式與方法,也存在多種實現(xiàn)程序執(zhí)行驅(qū)動裝置以及實現(xiàn)用程序執(zhí)行驅(qū)動裝置來管理與控制程序執(zhí)行的方式與方法。而依據(jù)本發(fā)明的技術(shù)構(gòu)想所做的任何等效變換,均應(yīng)屬于本發(fā)明的保護(hù)范圍。
本發(fā)明作者為論證本發(fā)明提出的計算機(jī)工作方法以及按此方法設(shè)計計算機(jī)的可行性,分別用C++開發(fā)了兩個模擬系統(tǒng),一是馮.偌依曼結(jié)構(gòu)計算機(jī)系統(tǒng),一是使用本發(fā)明提出的計算機(jī)工作方法的計算機(jī)系統(tǒng),即L結(jié)構(gòu)計算機(jī)系統(tǒng)。兩種計算機(jī)系統(tǒng)采用相同的系統(tǒng)參數(shù),如存儲器讀/寫周期、ALU運算周期等。執(zhí)行100萬條指令的模擬結(jié)果顯示L結(jié)構(gòu)計算機(jī)系統(tǒng)比馮.偌依曼結(jié)構(gòu)計算機(jī)系統(tǒng)快2到10倍,而且進(jìn)一步提高的余地很大。
簡化的指令系統(tǒng)MOVE指令MOV Rd,Rs Rd←RsLOAD指令LD Rd,Rs Rd←DM[Rs]LDI Rd,C Rd←CSTORE指令ST Rd,Rs DM[Rd]←RsSTI Rd,C DM[Rd]←C轉(zhuǎn)移指令 JEQ Rs1,Rs2 IF(Rs1=0)PC←PC+Rs2 ELSE PC←PC+1JNE Rs1,Rs2 IF(Rs1≠0)PC←PC+Rs2 ELSE PC←PC+1JEQI Rs1,CIF(Rs1=0)PC←PC+C ELSE PC←PC+1JNEI Rs1,CIF(Rs1≠0)PC←PC+C ELSE PC←PC+1運算指令A(yù)DD Rd,Rs1,Rs2 Rd←Rs1+Rs2SUB Rd,Rs1,Rs2 Rd←Rs1-Rs2MUL Rd,Rs1,Rs2 Rd←Rs1*Rs2ADDI Rs,CRs←Rs+CSUBI Rs,CRs←Rs-CMULI Rs,CRs←Rs*C邏輯指令OR Rd,Rs1,Rs2 Rd←Rs1 OR Rs2AND Rd,Rs1,Rs2 Rs←Rs1 AND Rs2ORI Rs,C Rs←Rs OR C
ANDI Rs,CRs←Rs AND C設(shè)置指令SLT Rd,Rs1,Rs2 IF(Rs1<Rs2)Rd←1 ELSE Rd←05SLE Rs1,Rs2 IF(Rs1<=Rs2)Rd←1 ELSE Rd←0SGT Rs1,Rs2 IF(Rs1>Rs2)Rd←1 ELSE Rd←0SGE Rd,Rs1,Rs2 IF(Rs1>=Rs2)Rd←1 ELSE Rd←0SEQ Rd,Rs1,Rs2 IF(Rs1=Rs2)Rd←1 ELSE Rd←0SNE Rd Rs1,Rs2 IF(Rs1≠Rs2)Rd←1 ELSE Rd←0資源管理指令GETMD Rd,Rs 申請占用[Rs]個連續(xù)的MD部件,Rd←獲準(zhǔn)的MD部件編號。
GETMDI Rd,C 申請占用C個連續(xù)的MD部件Rd←獲準(zhǔn)的MD部件編號。
RETMD Rs1,Rs2申請釋放由[Rs1]開始的[Rs2]個連續(xù)的MD部件。
GETMDI Rs,C 申請釋放由[Rs1]開始的C個連續(xù)的MD部件。
結(jié)束指令END 程序結(jié)束。
權(quán)利要求
1.一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī),其特征在于,在任一臺該類計算機(jī)上能夠在同一時刻并行地執(zhí)行多道程序。
2.根據(jù)權(quán)利要求1所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī),其特征在于為每一道程序引入了一個程序執(zhí)行驅(qū)動裝置,從而多個程序執(zhí)行驅(qū)動裝置可在同一臺該類計算機(jī)上相互獨立地管理與控制多道程序在同一時刻并行地執(zhí)行。
3.根據(jù)權(quán)利要求1或2所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī),其特征在于每道程序在生成可執(zhí)行代碼的同時,生成了該道程序的程序執(zhí)行驅(qū)動裝置,一個程序執(zhí)行驅(qū)動裝置至少包含有用于說明與定義該道程序?qū)傩蕴卣鳌⒁约肮芾砼c控制該道程序執(zhí)行所需要的全部相關(guān)信息;組成一道程序的多道程序或子程序亦可有各自的程序執(zhí)行驅(qū)動裝置。
4.一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的計算機(jī),其特征在于該類計算機(jī)的基本構(gòu)成是
1)系統(tǒng)的硬件部分至少由下述部件組成一個或多個可并行工作的存儲部件,一個或多個可并行工作的操作控制部件,一個或多個可并行工作的在部件間起連接作用的連通部件;
2)系統(tǒng)的軟件部分至少由一個類似于現(xiàn)代計算機(jī)系統(tǒng)中的操作系統(tǒng)的系統(tǒng)管理程序所組成;該系統(tǒng)管理程序至少具有程序調(diào)度的功能,并至少維護(hù)著一個稱為程序調(diào)度表的數(shù)據(jù)結(jié)構(gòu);系統(tǒng)在初啟時就將系統(tǒng)管理程序的程序執(zhí)行驅(qū)動裝置加載到系統(tǒng)的某操作控制部件中去,稱為激活或活化該程序執(zhí)行驅(qū)動裝置;該程序執(zhí)行驅(qū)動裝置將驅(qū)動系統(tǒng)管理程序逐個激活多個用戶程序的程序執(zhí)行驅(qū)動裝置;此后,各用戶程序的程序執(zhí)行驅(qū)動裝置將相互獨立地在同一時刻驅(qū)動各自的用戶程序在同一臺上述計算機(jī)中同時并行地執(zhí)行。
5.根據(jù)權(quán)利要求1或2或3所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī),其特征在于該類計算機(jī)的工作方法是1)一道程序一旦生成了可執(zhí)行代碼及其程序執(zhí)行驅(qū)動裝置,系統(tǒng)管理程序就將該道程序的程序執(zhí)行驅(qū)動裝置寫入到它的程序調(diào)度表中;此時,該程序存放在某個存儲部件中并處于等待執(zhí)行狀態(tài);2)該道程序一旦滿足被調(diào)入執(zhí)行的各項條件,系統(tǒng)管理程序就將激活或活化該道程序的程序執(zhí)行驅(qū)動裝置;此后,該道程序進(jìn)入執(zhí)行狀態(tài),并在它的程序執(zhí)行驅(qū)動裝置的管理與控制下獨立地執(zhí)行;3)程序執(zhí)行驅(qū)動裝置依據(jù)它所保存的該道程序的駐存信息,如程序存儲部件號、部件內(nèi)地址PC等,控制到相應(yīng)的存儲部件去取當(dāng)前要執(zhí)行的指令;4)指令取出后,該程序執(zhí)行驅(qū)動裝置即控制到某操作控制部件對已取出的指令進(jìn)行“譯碼”;并據(jù)此,控制到相應(yīng)的存儲部件去取操作數(shù)、控制到相應(yīng)的操作控制部件完成指定的處理,以及控制將處理的結(jié)果寫回到相應(yīng)的存儲部件中去;取出后的指令、指令“譯碼”的結(jié)果、取出的操作數(shù)、以及操作的結(jié)果均被暫時地保存在該程序執(zhí)行驅(qū)動裝置的某些單元中;5)最后,在該程序執(zhí)行驅(qū)動裝置將它所保存的屬于程序駐存信息類中的PC項按當(dāng)前指令規(guī)定的方式進(jìn)行修正后,轉(zhuǎn)步驟3以控制執(zhí)行本道程序的下一條指令;6)至少在下述情況下,系統(tǒng)管理程序?qū)⑿遁d某道程序的程序執(zhí)行驅(qū)動裝置(1)執(zhí)行到該道程序的結(jié)束指令這將導(dǎo)致PM置相應(yīng)的結(jié)束標(biāo)志并啟動系統(tǒng)管理程序?qū)υ摰莱绦蜻M(jìn)行相應(yīng)的結(jié)束處理;(2)當(dāng)執(zhí)行完當(dāng)前指令后滿足被中斷的條件這將導(dǎo)致PM置相應(yīng)中斷標(biāo)志、保存該程序執(zhí)行驅(qū)動裝置相應(yīng)單元的內(nèi)容,并啟動系統(tǒng)管理程序的中斷處理例程進(jìn)行有關(guān)的中斷處理。
6.根據(jù)權(quán)利要求4所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的計算機(jī),其特征在于該類計算機(jī)硬件的基本構(gòu)成部件至少包括1)一個或多個可并行工作的存儲部件,包括下述部件●程序存儲部件MP-用于提供有關(guān)讀/寫程序存儲部件的服務(wù),可設(shè)置多個可獨立并行工作的MP部件;●數(shù)據(jù)存儲部件MD-用于提供有關(guān)讀/寫數(shù)據(jù)存儲部件的服務(wù),可設(shè)置多個可獨立并行工作的MD部件;2)一個或多個可并行工作的操作控制部件,至少包括下述部件●程序管理部件PM-用于提供有關(guān)管理程序執(zhí)行驅(qū)動裝置運行的服務(wù),可設(shè)置多個可獨立并行工作的PM部件;●指令格式轉(zhuǎn)換部件IT-用于提供有關(guān)指令譯碼和指令格式轉(zhuǎn)換的服務(wù),可設(shè)置多個可獨立并行工作的IT部件;●算術(shù)/邏輯運算部件ALU-用于提供有關(guān)算術(shù)/邏輯運算的服務(wù),可設(shè)置多個可獨立并行工作的ALU部件;●外部設(shè)備部件PD-用于對外部設(shè)備部件的管理與控制;3)一個或多個可并行工作的在部件間起連接作用的連通部件,即程序執(zhí)行驅(qū)動裝置的配送部件DU-用于提供將程序執(zhí)行驅(qū)動裝置從一個部件的輸出隊列配送到另一個部件的輸入隊列的運輸與配送服務(wù),可設(shè)置多個可獨立并行工作的DU部件;上述各類部件通常有一個輸入緩存裝置與一個輸出緩存裝置,可按請求/服務(wù)的方式工作收到請求后,即輸入緩存非空時,啟動完成指定的服務(wù),結(jié)果存入輸出緩存。
7.根據(jù)權(quán)利要求4或6所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的計算機(jī),其特征在于程序執(zhí)行驅(qū)動裝置被設(shè)計成為由一組信息單元組成的信息塊,在系統(tǒng)硬件的支持下,這些特殊的信息塊,即程序執(zhí)行驅(qū)動裝置,按照當(dāng)前所攜帶的指令的操作碼的要求逐次前往相應(yīng)的各功能部件對指令進(jìn)行相應(yīng)的加工、處理,如取操作、運算操作、存操作等;程序執(zhí)行驅(qū)動裝置的具體組成如下所示
一個程序執(zhí)行驅(qū)動裝置由30個單元組成,各組成單元的定義與說明如下單元0-單元6運行時工作單元用于本道程序在執(zhí)行過程中存放臨時/中間結(jié)果;其中0號單元,稱為NEXT單元,是本程序執(zhí)行驅(qū)動裝置當(dāng)前將要前往請求服務(wù)的功能部件的編號;1-6號單元依當(dāng)前所驅(qū)動的指令的不同而不同,其具體用法在描述各部件功能時有詳細(xì)的說明;單元1有時被用作PC單元,當(dāng)PC=0時表示當(dāng)前指令是一條END指令,當(dāng)PC=1時表示當(dāng)前指令是一條非轉(zhuǎn)移型指令,當(dāng)△PC>1或△PC<0時表示當(dāng)前指令是一條轉(zhuǎn)移型指令;單元7程序存儲部件的部件編號MPno用于存放本道程序駐存的程序存儲部件的部件編號;單元8程序存儲部件的部件個數(shù)MPnu用于存放本道程序所占用的連續(xù)的程序存儲部件的個數(shù);如果MPnu的值大于1,則MPno的值是第一個程序存儲部件的部件編號;單元9程序存儲部件的部件內(nèi)地址PC用于存放本道程序當(dāng)前執(zhí)行指令的程序存儲部件的部件內(nèi)地址;單元10數(shù)據(jù)存儲部件的部件編號MDno用于存放本道程序所占用的數(shù)據(jù)存儲部件的部件編號;單元11數(shù)據(jù)存儲部件的部件個數(shù)MDnu用于存放本道程序所占用的連續(xù)的數(shù)據(jù)存儲部件的個數(shù);如果MDnu的值大于1,則MDno的值是第一個數(shù)據(jù)存儲部件的部件編號;單元12執(zhí)行指令條數(shù)Ins用于記錄本道程序本次調(diào)入后累計執(zhí)行的指令條數(shù);單元13程序道號PrNo當(dāng)兩道以上正在執(zhí)行的程序共同存放在同一個程序存儲部件中時,用本參數(shù)標(biāo)識各道程序;單元14-單元2916個通用寄存器R0-R15。
8.根據(jù)權(quán)利要求4或6或7所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的計算機(jī),其特征在于通用寄存器組不是被設(shè)計成為一個硬件裝置,而是被設(shè)計成為一組流動的信息單元,即程序執(zhí)行驅(qū)動裝置的一個組成部分。
9.根據(jù)權(quán)利要求4或6或7所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的計算機(jī),其特征在于系統(tǒng)各主要硬件功能部件的功能及其輸入/輸出的程序執(zhí)行驅(qū)動裝置的內(nèi)容如下所述;1)存儲功能部件(1)部件1稱為程序存儲部件MP,用于提供有關(guān)讀/寫程序存儲部件的服務(wù),可設(shè)置多個可獨立并行工作的MP部件,每個MP部件的主要工作如下●MP維護(hù)著一個輸入隊列,所有請求本MP處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中,MP也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù);●讀請求如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是讀操作,則從該程序執(zhí)行驅(qū)動裝置中取出該道程序的部件內(nèi)地址PC送MP的地址寄存器,并啟動MP的讀操作讀取該道程序的當(dāng)前指令,讀出的指令寫入到當(dāng)前的程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中,置程序執(zhí)行驅(qū)動裝置的NEXT單元為IT,然后將其寫入到MP的輸出隊列中;●寫請求如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是寫操作,需完成的操作與數(shù)據(jù)存儲部件的寫操作類似,此處予以省略;●重復(fù)上述處理過程,如果本MP的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作;●在MP部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示;
其中0號單元中的MPr表示目的部件是MP且要求進(jìn)行“讀”操作;凡當(dāng)前未涉及到的程序執(zhí)行驅(qū)動裝置的組成單元,如單元1至單元6,均予以省缺,以下相同;●在MP部件的輸出隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示,其中1號單元中的I為讀出的當(dāng)前指令,如LDIR0,C
(2)部件2稱為數(shù)據(jù)存儲部件MD,用于提供有關(guān)讀/寫數(shù)據(jù)存儲部件的服務(wù),可設(shè)置多個可獨立并行工作的MD部件,每個MD部件的主要工作如下●MD維護(hù)著一個輸入隊列,所有請求本MD處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中,MD也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù);●讀操作如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是讀操作,則從該程序執(zhí)行驅(qū)動裝置中取出該讀操作的部件內(nèi)地址送MD的地址寄存器,并啟動MD的讀操作讀取相應(yīng)存儲單元的內(nèi)容,讀出的數(shù)據(jù)寫入到當(dāng)前的程序執(zhí)行驅(qū)動裝置的某單元中,置NEXT單元為PM,置△PC單元為1,然后將其寫入到MD的輸出隊列中;●寫操作如果當(dāng)前隊首的程序執(zhí)行驅(qū)動裝置請求的是寫操作,則從該程序執(zhí)行驅(qū)動裝置中取出該寫操作的數(shù)據(jù)及部件內(nèi)地址分別送MD的數(shù)據(jù)寄存器和地址寄存器,并啟動MD的寫操作將數(shù)據(jù)寫入到相應(yīng)的MD存儲單元中去,置NEXT單元為PM,置△PC單元為1,然后將其寫入到MD的輸出隊列中;●重復(fù)上述處理過程,如果本MD的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作;●在MD部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容可參見IT部件的輸出隊列中發(fā)往MD的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容;●在MD部件的輸出隊列中發(fā)往PM的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示
其中1號單元為△PC,當(dāng)前指令的當(dāng)前值是1;2)操作功能部件(1)部件3稱為程序管理部件PM,用于提供有關(guān)管理程序執(zhí)行驅(qū)動裝置運行的服務(wù),可設(shè)置多個可獨立并行工作的PM部件,每個PM部件的主要功能如下●PM維護(hù)著一個輸入隊列,所有請求本PM處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中,PM也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù);●啟動一個程序執(zhí)行驅(qū)動裝置的運行系統(tǒng)管理程序激活一道程序的程序執(zhí)行驅(qū)動裝置實際上就是將該道程序的程序執(zhí)行驅(qū)動裝置寫入PM的輸入隊列,當(dāng)PM處理到該程序執(zhí)行驅(qū)動裝置時,將其NEXT單元置為MP,然后將其寫入到PM的輸出隊列中;●繼續(xù)一個程序執(zhí)行驅(qū)動裝置的運行每個程序執(zhí)行驅(qū)動裝置驅(qū)動一道程序的當(dāng)前指令執(zhí)行的最后一步是返回到PM,如果當(dāng)前指令不是一條結(jié)束指令,則PM將控制該驅(qū)動器繼續(xù)運行進(jìn)行單元9單元9+單元1,即PC PC+△PC,置NEXT單元為MP,然后將其寫入到PM的輸出隊列中;●中斷一個程序執(zhí)行驅(qū)動裝置的運行當(dāng)某個程序執(zhí)行驅(qū)動裝置驅(qū)動的某道程序執(zhí)行到當(dāng)前指令滿足被中斷的條件時,PM置相應(yīng)的中斷標(biāo)志、保存該程序執(zhí)行驅(qū)動裝置相應(yīng)單元的內(nèi)容、并啟動系統(tǒng)管理程序的中斷處理例程,即將該例程的程序執(zhí)行驅(qū)動裝置置入PM的輸入隊列,由該程序執(zhí)行驅(qū)動裝置驅(qū)動中斷處理例程去完成有關(guān)的中斷處理工作,該中斷處理例程將把被中斷的程序的程序執(zhí)行驅(qū)動裝置寫回到系統(tǒng)的程序調(diào)度表中,然后再根據(jù)調(diào)度規(guī)則選擇和激活下一道程序的程序執(zhí)行驅(qū)動裝置以執(zhí)行該倒程序;●終止一個程序執(zhí)行驅(qū)動裝置的運行當(dāng)某道程序執(zhí)行到一條結(jié)束指令時,PM將通過采用刪除該道程序的程序執(zhí)行驅(qū)動裝置的方式來終止該道程序的執(zhí)行,該道程序在執(zhí)行結(jié)束指令前,須執(zhí)行一條或多條資源釋放型指令;●重復(fù)上述處理過程;如果本PM的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作;●在PM部件的輸入隊列中接收到的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示
其中1號單元為△PC,其值或是0或是1或是轉(zhuǎn)移的偏移量;●在PM部件的輸出隊列中發(fā)往MP部件的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示
其中0號單元中的MPr表示目的部件是MP且要求進(jìn)行“讀”操作;(2)部件4稱為指令格式轉(zhuǎn)換部件IT,用于提供有關(guān)指令譯碼和指令格式轉(zhuǎn)換的服務(wù),可設(shè)置多個可獨立并行工作的IT部件,每個IT的主要功能如下●IT維護(hù)著一個輸入隊列,所有請求本IT處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中,IT也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù);●對于請求指令格式轉(zhuǎn)換的程序執(zhí)行驅(qū)動裝置,IT將對該程序執(zhí)行驅(qū)動裝置中存放的當(dāng)前指令進(jìn)行格式轉(zhuǎn)換,并據(jù)此設(shè)置NEXT等單元,然后將其寫入到IT的輸出隊列中;●重復(fù)上述處理過程;如果本IT的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作;●在IT部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示,其中1號單元中的I為讀出的當(dāng)前指令,如LDIR0,C;
●在IT部件的輸出隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容根據(jù)當(dāng)前指令I(lǐng)的不同而不同,如下所示△由IT發(fā)往PM的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容LDIRd,C
其中1號單元為△PC,當(dāng)前指令的當(dāng)前值是1;MV Rd,Rs
其中1號單元為△PC,當(dāng)前指令的當(dāng)前值是1;△由IT發(fā)往MD的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容LD Rd,Rs
其中0號單元中的MDr表示目的部件是MD且要求進(jìn)行“讀”操作;2,3號單元中的[Rd]與[Rs]表示寄存器Rd與寄存器Rs中的內(nèi)容;STI Rd,C
其中0號單元中的MDIw表示目的部件是MD且要求進(jìn)行“立即數(shù)寫”操作;其中2號單元中的[Rd]表示寄存器Rd中的內(nèi)容;ST Rd,Rs
其中0號單元中的MDw表示目的部件是MD且要求進(jìn)行“寫”操作;2,3號單元中的[Rd]與[Rs]表示寄存器Rd與寄存器Rs中的內(nèi)容;△由IT發(fā)往ALU的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容ADDI Rd,C
其中0號單元中的ALUI+表示目的部件是ALU且要求進(jìn)行“立即數(shù)的加”操作;對于SUBI,MULI,DIVI等指令,其相應(yīng)的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容與此類似,僅是0號單元分別置為是ALUI-、ALUI*、ALUI÷;ADD Rd,Rs1,Rs2
其中0號單元中的ALU+表示目的部件是ALU且要求進(jìn)行“加”操作;SUB,MUL,DIV等與此類似;JEQI Rs,C
其中0號單元中的ALUIj表示目的部件是ALU且要求進(jìn)行“立即數(shù)的轉(zhuǎn)移判斷”操作;JNEI等與此類似;JEQ Rs1,Rs2
其中0號單元中的ALUj表示目的部件是ALU且要求進(jìn)行“轉(zhuǎn)移判斷”操作;JNE等與此類似;SLT Rd,Rs1,Rs2
其中0號單元中的ALUslt表示目的部件是ALU且要求進(jìn)行“小于設(shè)置”操作;SLE、SGT、SGE、SEQ、SNE等與此類似;(3)部件5稱為算術(shù)/邏輯運算部件ALU,用于提供有關(guān)算術(shù)/邏輯運算的服務(wù),可設(shè)置多個可獨立并行工作的ALU部件,每個ALU部件的主要工作如下●ALU維護(hù)著一個輸入隊列,所有請求本ALU處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中,ALU也維護(hù)著一個輸出隊列,所有已處理的程序執(zhí)行驅(qū)動裝置都等待在該隊列中等待DU部件的配送服務(wù);●在請求ALU進(jìn)行算術(shù)/邏輯運算的服務(wù)之前,程序執(zhí)行驅(qū)動裝置已控制將該指令所需的操作數(shù)準(zhǔn)備好且存放在程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中,ALU對存放在程序執(zhí)行驅(qū)動裝置中的相應(yīng)的操作數(shù)進(jìn)行所要求的算術(shù)/邏輯運算,結(jié)果存放在程序執(zhí)行驅(qū)動裝置的相應(yīng)的單元中,置NEXT單元PM,按指令的規(guī)定置1單元,即△PC單元,然后將其寫入到ALU的輸出隊列中;●重復(fù)上述處理過程;如果本ALU的輸入隊列為空或輸出隊列為滿,則進(jìn)行一次空操作;●在ALU部件的輸入隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容可參見IT部件的輸出隊列中的發(fā)往ALU的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容;●在ALU部件的輸出隊列中的程序執(zhí)行驅(qū)動裝置及其組成單元的內(nèi)容如下所示;
其中1號單元為△PC,其值或是1或是轉(zhuǎn)移的偏移量;(4)部件6稱為外部設(shè)備管理部件PD,用于提供管理外部設(shè)備,如顯示、鍵盤、鼠標(biāo)、打印、通信等設(shè)備,與主機(jī)之間進(jìn)行數(shù)據(jù)輸入/輸出的服務(wù);3)部件7稱為程序執(zhí)行驅(qū)動裝置配送部件DU,用于提供將程序執(zhí)行驅(qū)動裝置從一個部件的輸出隊列配送到另一個部件的輸入隊列的運輸與配送服務(wù),可設(shè)置多個可獨立并行工作的DU部件,每個DU部件的主要工作如下●DU按預(yù)定的順序逐個查詢各部件組中的各部件的輸出隊列是否為非空,對于某非空的輸出隊列,DU從隊中取出一程序執(zhí)行驅(qū)動裝置,并按照此程序執(zhí)行驅(qū)動裝置的NEXT單元所指示的目的部件組編號以及目的部件編號查詢該目的部件組中的目的部件的輸入隊列是否為非滿,如果是非滿,則將該程序執(zhí)行驅(qū)動裝置配送到該目的部件組中的目的部件的輸入隊列中去,以上的處理方式是針對PM、MP和MD而言,對于IT和ALU,只需在該部件中任選一輸入隊列為非滿的部件即可;●重復(fù)上述處理過程;如果所有部件組的所有部件的輸出隊列全為空,或者雖有輸出隊列為非空,但相對應(yīng)的輸入隊列全為滿,則進(jìn)行一次空操作。
10.根據(jù)權(quán)利要求4或6或7或9所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的計算機(jī),其特征在于1)各部件之間的連接關(guān)系是部件1到6分別通過各自的一或兩組信號線將各自的輸入隊列的尾端與輸出隊列的首端連到部件7;2)部件7至少由多個數(shù)據(jù)輸入端口、多個數(shù)據(jù)輸出端口、連通網(wǎng)絡(luò)裝置與控制管理裝置所組成;部件7的控制管理裝置用于選通的控制與管理,如各端口忙閑的探測、優(yōu)先級的確定、路徑的選擇等;部件7的連通網(wǎng)絡(luò)裝置用于將多個數(shù)據(jù)輸入端口連到多個數(shù)據(jù)輸出端口,該連通網(wǎng)絡(luò)裝置的設(shè)計有多種方法;3)裝置7的連通網(wǎng)絡(luò)裝置可采用交叉互連的設(shè)計方式任何一個輸入端口都與所有或部分輸出端口相連;4)裝置7的連通網(wǎng)絡(luò)裝置可采用多總線的設(shè)計方式所有的輸入端口與輸出端口被分成幾組,分別連到一條總線上,總線與總線之間再交叉互連。
11.根據(jù)權(quán)利要求1或2或3或5所述的一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法,其特征在于其工作的流程,也是在新型計算機(jī)中程序執(zhí)行驅(qū)動裝置驅(qū)動程序執(zhí)行的工作流程的具體步驟如下步驟S1,系統(tǒng)初啟時,至少有一道程序,如系統(tǒng)管理程序,的程序執(zhí)行驅(qū)動裝置存放在某個程序管理部件PM的輸出隊列中;下轉(zhuǎn)步驟S2;步驟S2,當(dāng)某個DU部件檢測到某個PM部件的輸出隊列為非空、且當(dāng)前處于隊首的程序執(zhí)行驅(qū)動裝置的NEXT單元所指向的那個特定的目的MP部件的輸入隊列為非滿時,將該PM部件的輸出隊列隊首的程序執(zhí)行驅(qū)動裝置配送到相應(yīng)的MP部件的輸入隊列中等待該部件的處理;下轉(zhuǎn)步驟S3;步驟S3,當(dāng)某個MP部件檢測到其輸入隊列為非空時,按輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中PC單元所指定的PC地址到它所管理的程序存儲部件中讀取指令,取出的指令存放到該程序執(zhí)行驅(qū)動裝置的1號單元中;如果此時該MP部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;下轉(zhuǎn)步驟S4;步驟S4,當(dāng)某個DU部件檢測到某個MP部件的輸出隊列為非空、且當(dāng)前處于隊首的程序執(zhí)行驅(qū)動裝置的NEXT單元所指向的目的部件是IT、且至少有一個IT部件的輸入隊列為非滿時,將該MP部件的輸出隊列隊首的程序執(zhí)行驅(qū)動裝置配送到相應(yīng)的IT部件的輸入隊列中等待該部件的處理;下轉(zhuǎn)步驟S5;步驟S5,當(dāng)某個IT部件檢測到其輸入隊列為非空時,對輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的指令進(jìn)行指令的格式變換,變換后的結(jié)果存放到該程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中;如果此時該IT部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;下轉(zhuǎn)步驟S6;步驟S6,當(dāng)某個DU部件檢測到某個部件,這里的某個部件是指IT、ALU和MD中的任何一個部件,的輸出隊列為非空、且當(dāng)前處于隊首的程序執(zhí)行驅(qū)動裝置的NEXT單元所指向的目的部件的輸入隊列為非滿時,將該部件的輸出隊列隊首的程序執(zhí)行驅(qū)動裝置配送到相應(yīng)的目的部件的輸入隊列中等待該部件的處理,此時的目的部件有3種,一是某個ALU部件,此時的目的ALU部件可以是任意一個輸出隊列有空位的ALU部件;以下轉(zhuǎn)步驟S7;二是某個MD部件,此時的目的MD部件必須是上述程序執(zhí)行驅(qū)動裝置的NEXT單元所特指的哪個MD部件;以下轉(zhuǎn)步驟S8;最后一個是某個PM部件,此時的目的PM部件必須是上述程序執(zhí)行驅(qū)動裝置的NEXT單元所特指的哪個PM部件;以下轉(zhuǎn)步驟S9;步驟S7,當(dāng)某個ALU部件檢測到其輸入隊列為非空時,按輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的NEXT單元中的命令對該程序執(zhí)行驅(qū)動裝置中的相應(yīng)單元所保存的操作數(shù)進(jìn)行指定的算術(shù)/邏輯運算,運算后的結(jié)果存放到該程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中;如果此時該ALU部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;此時的目的部件是PM部件,下轉(zhuǎn)步驟S6;步驟S8,當(dāng)某個MD部件檢測到其輸入隊列為非空時,按輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的NEXT單元中的讀或?qū)懨钜约霸摮绦驁?zhí)行驅(qū)動裝置中的某單元所指定的部件內(nèi)地址對該程序執(zhí)行驅(qū)動裝置中的某單元的數(shù)據(jù)在它所管理的數(shù)據(jù)存儲部件中進(jìn)行讀/寫操作;如果是讀操作,將讀出的數(shù)據(jù)存放到該程序執(zhí)行驅(qū)動裝置的某單元中;如果此時該MD部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;此時的目的部件是PM部件,下轉(zhuǎn)步驟S6;步驟S9,當(dāng)PM的某個部件檢測到其輸入隊列為非空時,按其輸入隊列隊首處的程序執(zhí)行驅(qū)動裝置中的命令要求進(jìn)行相應(yīng)的操作1)非END指令,此時△PC單元為非0值PM按要求修正其PC等單元的值,結(jié)果存放到該程序執(zhí)行驅(qū)動裝置的相應(yīng)單元中;如果此時該PM部件的輸出隊列為滿狀態(tài),則等待其空;當(dāng)有空位時,就將處理結(jié)束的程序執(zhí)行驅(qū)動裝置寫入到它的輸出隊列中等待DU的配送處理;下轉(zhuǎn)步驟S2;2)END指令,此時△PC單元為0PM置相應(yīng)結(jié)束標(biāo)志,從輸入隊列中刪除該程序執(zhí)行驅(qū)動裝置,激活系統(tǒng)管理程序調(diào)度下一個等待執(zhí)行的程序進(jìn)入執(zhí)行;3)當(dāng)前指令執(zhí)行結(jié)束后滿足被中斷的條件時PM置相應(yīng)中斷標(biāo)志后保存該程序執(zhí)行驅(qū)動裝置相應(yīng)單元的內(nèi)容,并啟動系統(tǒng)管理程序的中斷處理例程;
全文摘要
本發(fā)明涉及計算機(jī)技術(shù)范疇中的計算機(jī)體系結(jié)構(gòu)技術(shù)領(lǐng)域。具體說是一種在同一時刻在單臺計算機(jī)上能夠并行地執(zhí)行多道程序的方法及使用這種方法的計算機(jī),其特征之一在于該類計算機(jī)能夠在同一時刻在單臺計算機(jī)上同時并行地執(zhí)行多道程序;其特征之二在于為每一道程序引入了一個程序執(zhí)行驅(qū)動裝置,多個程序執(zhí)行驅(qū)動裝置可相互獨立地管理與控制多道程序在上述計算機(jī)中同時并行地執(zhí)行。本發(fā)明可用于指導(dǎo)設(shè)計各類用途的計算機(jī)系統(tǒng)。在該類新型的計算機(jī)中,程序執(zhí)行驅(qū)動裝置的個數(shù)僅與系統(tǒng)提供資源的總量成正比。在系統(tǒng)資源足夠多的條件下,程序執(zhí)行驅(qū)動裝置的數(shù)量可足夠的大,即系統(tǒng)可支持足夠多道的程序在同一時刻在單臺計算機(jī)上同時并行地執(zhí)行。
文檔編號G06F9/44GK1595359SQ200410049759
公開日2005年3月16日 申請日期2004年6月28日 優(yōu)先權(quán)日2004年6月28日
發(fā)明者李曉波 申請人:李曉波
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
郸城县| 且末县| 乌鲁木齐县| 阿勒泰市| 河源市| 红原县| 惠来县| 教育| 彭山县| 弋阳县| 六枝特区| 锡林郭勒盟| 定兴县| 湖州市| 仪征市| 望谟县| 客服| 阳朔县| 双城市| 百色市| 信丰县| 兰坪| 长宁区| 白河县| 勐海县| 界首市| 恩施市| 蒙城县| 商城县| 灌阳县| 蓝山县| 诏安县| 榆中县| 阜宁县| 长沙市| 阿图什市| 梁平县| 海伦市| 洛阳市| 建宁县| 分宜县|