專利名稱:在面向?qū)ο蟮南到y(tǒng)中的位置特定的信息分配的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在面向?qū)ο蟮南到y(tǒng)中的信息分配。特別地,本發(fā)明涉及用于JavaTM虛擬機(jī)的位置特定信息分配技術(shù)。
面向?qū)ο蟮恼Z(yǔ)言的基本思想是將數(shù)據(jù)和在數(shù)據(jù)上運(yùn)算的方法(或函數(shù))組合為一個(gè)稱之為對(duì)象的單獨(dú)的單元。一個(gè)對(duì)象的函數(shù)一般提供唯一的方式來(lái)訪問(wèn)被該對(duì)象所封裝的數(shù)據(jù)。通過(guò)向?qū)ο蟀l(fā)送一個(gè)信息、指示對(duì)象調(diào)用由該信息所指定的方法,來(lái)訪問(wèn)數(shù)據(jù)。
在面向?qū)ο蟮恼Z(yǔ)言中,有效的信息分配是至關(guān)重要的。這是因?yàn)樾畔⒎峙涫敲嫦驅(qū)ο蟪绦蛑幸豁?xiàng)頻率很高的操作,并且是在運(yùn)行時(shí)執(zhí)行的;因此,應(yīng)使其盡可能地快。然而,信息分配遠(yuǎn)不是一個(gè)微不足道的操作。與在運(yùn)行之前就可以確定一個(gè)函數(shù)的地址的過(guò)程程序設(shè)計(jì)語(yǔ)言(例如,C程序設(shè)計(jì)語(yǔ)言)不同,面向?qū)ο蟮恼Z(yǔ)言必須在運(yùn)行時(shí)確定處理已經(jīng)被分配給接收器對(duì)象的信息的方法,并且可能要進(jìn)行大范圍的搜索。
為了更好地理解信息分配的復(fù)雜性,
圖1顯示了一個(gè)包括每一類方法的類分級(jí)結(jié)構(gòu)。類分級(jí)結(jié)構(gòu)1在其根部包括一個(gè)定義了兩個(gè)虛擬函數(shù)foo()和bar()的父類A3。虛擬函數(shù)是可以在父類中定義并在子類中重新定義的函數(shù)。類B5和類C7繼承父類A的數(shù)據(jù)和方法。如圖所示,類B并沒(méi)有重新定義虛擬函數(shù)foo和bar中的任一個(gè)。但類C重新定義了虛擬函數(shù)foo。當(dāng)類C的對(duì)象被請(qǐng)求調(diào)用方法foo時(shí),調(diào)用的方法將是由類C定義的方法,而不是由父類A定義的方法。類D9和E11也重新定義了方法foo。
由于通常不可能靜態(tài)地確定一個(gè)對(duì)象的類,所以在信息分配期間,在運(yùn)行時(shí)執(zhí)行對(duì)正確方法的搜索。有許多已知的技術(shù)用于實(shí)現(xiàn)方法分配。例如,圖2顯示了一內(nèi)聯(lián)高速緩存。假定方法51最初如下所示<pre listing-type="program-listing"><![CDATA[main(){…x.foo();…}]]></pre>因此,該方法主要包括語(yǔ)句x.foo(),以調(diào)用對(duì)象x的方法foo。
在運(yùn)行期間,在調(diào)用處理該方法的方法之前,系統(tǒng)必須確定對(duì)象x屬于哪個(gè)類。應(yīng)用一內(nèi)聯(lián)高速緩存,系統(tǒng)第一次確定對(duì)象x所屬的類,并將對(duì)此類的方法的直接調(diào)用寫入計(jì)算機(jī)代碼。
假設(shè)對(duì)象x是類A中的一個(gè)成員,將調(diào)用x.foo()改為直接調(diào)用A::foo()。箭頭指定類A53的一個(gè)方法foo。由于對(duì)象x可能不是每次都屬于類A,則用一個(gè)序言(prolog)55確認(rèn)對(duì)象x處于正確的類,該序言由表達(dá)式x=A表示,表明如果對(duì)象x的類等于類A則為確定。對(duì)象的類可以從一個(gè)存儲(chǔ)在該對(duì)象中的值來(lái)確定。如果對(duì)象處于正確的類,則執(zhí)行到處理該信息的方法代碼57的跳轉(zhuǎn)。
回到序言55,如果對(duì)象不是屬于類A,則調(diào)用一個(gè)方法查找程序,以便于確定正確的方法。一旦找到正確的方法,系統(tǒng)就用對(duì)該方法的直接調(diào)用更新信息分配(或調(diào)用)位置。此外,系統(tǒng)更新序言,以指定新的類。例如,假設(shè)系統(tǒng)第一次遇到x.foo(),對(duì)象x為類A,并且數(shù)據(jù)結(jié)構(gòu)如圖2所示被修改。
一旦數(shù)據(jù)結(jié)構(gòu)如圖所示被修改,如果對(duì)象x為類A,對(duì)x.foo()的后續(xù)調(diào)用將明顯地更加有效。然而,如果對(duì)象x接下來(lái)為類B,則序言55調(diào)用一個(gè)方法查找程序來(lái)尋找方法,我們假設(shè)其確定現(xiàn)在的對(duì)象x為類B。再參看圖1,可以看到,用于類B的方法foo是與在類A中定義的方法foo相同的方法(即,類B沒(méi)有重新定義虛擬函數(shù)foo)。因此,在方法51中的信息分配將變?yōu)锽::foo(),在序言55中的條件將變?yōu)閤=B。
如果在一個(gè)調(diào)用位置條的對(duì)象保持相同的類,則一個(gè)內(nèi)聯(lián)高速緩存可以是一種實(shí)現(xiàn)信息分配的有效方式。然而,如果該對(duì)象是多類的,則系統(tǒng)繼續(xù)調(diào)用方法查找程序,并修改調(diào)用位置和序言。因此,此系統(tǒng)實(shí)際上是不夠有效的。
用于實(shí)現(xiàn)信息分配的另一種技術(shù)是使用一個(gè)如圖3所示的多形內(nèi)聯(lián)高速緩存。與前面相同,方法101最初包括一個(gè)方法分配x.foo()。應(yīng)用一個(gè)多形內(nèi)聯(lián)高速緩存產(chǎn)生一個(gè)能夠?yàn)椴煌慕邮掌黝愋蛨?zhí)行信息分配的殘樁(stub)103。最初的信息分配用一個(gè)對(duì)多形內(nèi)聯(lián)高速緩存殘樁103的調(diào)用被重寫。每次遇到一個(gè)新的接收器類型時(shí),將一個(gè)語(yǔ)句加到殘樁上。如圖所示,至此已經(jīng)遇到了三種不同的接收器類型。如果該接收器類型已經(jīng)遇到過(guò),則為該接收器類型調(diào)用方法以處理該信息。否則,調(diào)用方法查找程序來(lái)確定處理該信息的合適的方法。一般會(huì)將一個(gè)新的語(yǔ)句加到殘樁103上,以便處理每個(gè)新的接收器類型。
由于多形內(nèi)聯(lián)高速緩存能夠處理多種接收器類型,因此它比內(nèi)聯(lián)高速緩存更靈活。然而,多形內(nèi)聯(lián)高速緩存的一個(gè)缺陷是隨著遇到的接收器類型的增多,殘樁繼續(xù)增長(zhǎng),從而在執(zhí)行信息分配時(shí)會(huì)變得越來(lái)越不夠有效。例如,在找到處理信息的正確的方法之前,系統(tǒng)可能需要通過(guò)多個(gè)if語(yǔ)句。
圖4顯示了另一種被稱作為散列法的信息分配技術(shù)。在散列法中,在方法151中的最初的信息分配x.foo()利用一個(gè)對(duì)散列函數(shù)153的調(diào)用被重寫。散列函數(shù)將接收器類型和信息散列,以形成一個(gè)散列密鑰,該散列密鑰一般為進(jìn)入一個(gè)散列表155的索引。散列表包括一個(gè)索引157、接收器類型159、信息161和方法163。一旦散列函數(shù)散列在散列表155的一行中,則從散列表的列159和161中檢索出接收器類型和信息。如果在調(diào)用位置處的接收器類型和信息與散列表的行中的接收器類型和信息相匹配,則調(diào)用在散列表155的列163中所指定的方法。否則,調(diào)用一個(gè)方法查找程序以找到正確的方法。一般地,然后將這個(gè)新方法加到散列表中。
雖然散列法是我們至此所描述的最靈活的信息分配技術(shù),但它比其他技術(shù)在計(jì)算和存儲(chǔ)上更加密集。我們已經(jīng)描述的這些信息分配技術(shù)的另一個(gè)缺陷是沒(méi)有一種技術(shù)是位置特定的。換句話說(shuō),沒(méi)有一種信息分配技術(shù)提供了在不同的調(diào)用位置以不同的方式處理信息分配的靈活性。
因此,需要有在速度和計(jì)算機(jī)代碼大小上都為高效的位置特定的信息分配。此外,還需要有靈活的并且可以適應(yīng)面向?qū)ο蟮某绦虻膱?zhí)行的位置特定的信息分配。
本發(fā)明的實(shí)施例提供了在速度和計(jì)算機(jī)代碼大小上都為高效的有創(chuàng)造性的位置特定的信息分配技術(shù)。通過(guò)提供位置特定的信息分配技術(shù),可以為每個(gè)信息分配位置提供最優(yōu)化的信息分配。因此,不是試圖尋求一種對(duì)所有位置都有效的信息分配技術(shù),而是可以將該技術(shù)調(diào)節(jié)到更好地適應(yīng)特定的位置。下面描述本發(fā)明的幾個(gè)實(shí)施例。
在一個(gè)實(shí)施例中,本發(fā)明提供了一種在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的方法。在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存一個(gè)預(yù)測(cè)的接收器類型。然后將信息發(fā)送給該接收器對(duì)象。一旦接收器對(duì)象接收到該信息,則確認(rèn)此接收器對(duì)象的類型是保存的預(yù)測(cè)接收器類型。一般地,用一個(gè)在信息分配指令之前的傳送指令將預(yù)測(cè)的接收器類型保存在一個(gè)寄存器中。
在另一個(gè)實(shí)施例中,本發(fā)明提供了一種在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的方法。在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存一個(gè)預(yù)測(cè)的接收器類型。然后將信息發(fā)送給該接收器對(duì)象。一旦接收器對(duì)象接收到該信息,則確認(rèn)該接收器對(duì)象的類型是保存的預(yù)測(cè)接收器類型。如果該接收器對(duì)象不是保存的預(yù)測(cè)接收器類型,則將預(yù)測(cè)接收器類型變?yōu)樵摻邮掌鲗?duì)象的類型,調(diào)用一個(gè)方法查看程序來(lái)獲得新方法,并且改變位置以調(diào)用該新方法。
在另一個(gè)實(shí)施例中,本發(fā)明提供了一種為一個(gè)面向?qū)ο蟮某绦驅(qū)崿F(xiàn)信息分配的方法。在一個(gè)特定位置執(zhí)行第一信息分配技術(shù),以便向接收器對(duì)象分配信息。在程序執(zhí)行期間,動(dòng)態(tài)地確定在該特定位置是否需要第二信息分配技術(shù)。如果需要第二信息分配技術(shù),則在該特定位置執(zhí)行第二信息分配技術(shù),以便向接收器對(duì)象分配信息。在最佳實(shí)施例中,如果在特定位置已將信息分配到多于預(yù)定數(shù)目的不同接收器類型,則確定需要第二信息分配技術(shù)。
通過(guò)下面參考附圖對(duì)本發(fā)明的詳細(xì)說(shuō)明,本發(fā)明的其他特征和優(yōu)點(diǎn)將變得更加明顯。
圖1顯示了在一個(gè)面向?qū)ο蟮沫h(huán)境中的包括虛擬函數(shù)的類的類分級(jí)結(jié)構(gòu)。
圖2顯示了用于面向?qū)ο蟮男畔⒎峙涞膬?nèi)聯(lián)高速緩存技術(shù)。
圖3顯示了用于面向?qū)ο蟮男畔⒎峙涞亩嘈蝺?nèi)聯(lián)高速緩存技術(shù)。
圖4顯示了用于面向?qū)ο蟮男畔⒎峙涞纳⒘蟹夹g(shù)。
圖5顯示了可以用于執(zhí)行本發(fā)明的一個(gè)實(shí)施例的軟件的計(jì)算機(jī)系統(tǒng)的一個(gè)例子。
圖6顯示了圖5中計(jì)算機(jī)系統(tǒng)的系統(tǒng)方框圖。
圖7顯示了一個(gè)Java源代碼程序是如何執(zhí)行的。
圖8顯示了用于面向?qū)ο蟮男畔⒎峙涞奈恢锰囟▋?nèi)聯(lián)高速緩存技術(shù)的一個(gè)實(shí)施例。
圖9顯示了用于面向?qū)ο蟮男畔⒎峙涞奈恢锰囟▋?nèi)聯(lián)高速緩存技術(shù)的一個(gè)實(shí)施例的高級(jí)流程圖。
圖10顯示了位置特定信息分配技術(shù)的一個(gè)實(shí)施例的高級(jí)流程圖。
圖11顯示了動(dòng)態(tài)地確定在一個(gè)特定位置是否需要另一個(gè)信息分配技術(shù)的流程圖。
圖12顯示了應(yīng)用NOP指令對(duì)遇到的不同接收器類型的數(shù)目計(jì)數(shù)的位置特定信息分配技術(shù)的一個(gè)實(shí)施例。
定義函數(shù)-一個(gè)軟件程序(也被稱為子程序、過(guò)程、成員函數(shù)和方法)。
信息分配-一個(gè)確定處理已經(jīng)被發(fā)送給在面向?qū)ο蟮沫h(huán)境中的對(duì)象的方法的過(guò)程。
接收器對(duì)象(或接收程序)-在一個(gè)面向?qū)ο蟮沫h(huán)境中的信息所發(fā)送到的對(duì)象。
接收器類型-接收器對(duì)象所屬的類。
調(diào)用位置(或位置)-在一個(gè)程序中將信息分配到一個(gè)對(duì)象的位置或區(qū)域。
概述在下面的說(shuō)明中,將參考為一個(gè)JavaTM虛擬機(jī)設(shè)計(jì)的最佳實(shí)施例說(shuō)明本發(fā)明。特別地,將說(shuō)明針對(duì)IBM個(gè)人計(jì)算機(jī)的例子。但本發(fā)明并不限于任何特定的語(yǔ)言、計(jì)算機(jī)結(jié)構(gòu)或?qū)S霉ぞ?。因此,下面?duì)實(shí)施例的說(shuō)明是出于例示的目的,而不是為了限制。
圖5顯示了可以用于執(zhí)行本發(fā)明的一個(gè)實(shí)施例的軟件的計(jì)算機(jī)系統(tǒng)的一個(gè)例子。圖5顯示的計(jì)算機(jī)系統(tǒng)301包括顯示器303、屏幕305、機(jī)箱307、鍵盤309和鼠標(biāo)311。鼠標(biāo)311可以具有一個(gè)或多個(gè)與圖形用戶界面交互的按鈕。機(jī)箱307罩蓋著一個(gè)CD-ROM驅(qū)動(dòng)器313、系統(tǒng)存儲(chǔ)器和一個(gè)硬盤驅(qū)動(dòng)器(參看圖6),該硬盤驅(qū)動(dòng)器可以用于存儲(chǔ)和檢索包含實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)代碼、本發(fā)明使用的數(shù)據(jù)等的軟件程序。雖然CD-ROM315在這里顯示為一個(gè)典型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),也可以使用其他的計(jì)算機(jī)可讀介質(zhì),包括軟盤、磁帶、閃速存儲(chǔ)器、系統(tǒng)存儲(chǔ)器和硬盤驅(qū)動(dòng)器。另外,在載波中(例如,在一個(gè)網(wǎng)絡(luò)例如因特網(wǎng)中)包含的數(shù)據(jù)信號(hào)也可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
圖6顯示了用于執(zhí)行本發(fā)明的一個(gè)實(shí)施例的軟件的計(jì)算機(jī)系統(tǒng)301的系統(tǒng)方框圖。與在圖5中一樣,計(jì)算機(jī)系統(tǒng)301包括監(jiān)視器303、鍵盤309和鼠標(biāo)311。計(jì)算機(jī)系統(tǒng)301還包括子系統(tǒng),例如中央處理器351、系統(tǒng)存儲(chǔ)器353、固定存儲(chǔ)器355(例如硬盤驅(qū)動(dòng)器)、可移動(dòng)存儲(chǔ)器57(例如CD-ROM驅(qū)動(dòng)器)、顯示適配器359、聲卡361、揚(yáng)聲器363、以及網(wǎng)絡(luò)接口365。其他適于本發(fā)明使用的計(jì)算機(jī)系統(tǒng)可以包括更多或更少的子系統(tǒng)。例如,另一個(gè)計(jì)算機(jī)系統(tǒng)包括不止一個(gè)處理器351(即,一個(gè)多處理器系統(tǒng))或一個(gè)高速緩存。
計(jì)算機(jī)系統(tǒng)301的系統(tǒng)總線結(jié)構(gòu)由箭頭367表示。然而,這些箭頭只是顯示用于連接子系統(tǒng)的任一種互連方案。例如,可以應(yīng)用一個(gè)本地總線將中央處理器連到系統(tǒng)存儲(chǔ)器和顯示適配器。圖6中顯示的計(jì)算機(jī)系統(tǒng)301只是一個(gè)適于本發(fā)明使用的計(jì)算機(jī)系統(tǒng)的例子。也可以使用其他具有不同的子系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī)結(jié)構(gòu)。
JavaTM程序設(shè)計(jì)語(yǔ)言是由Sun Microsystems開(kāi)發(fā)的。一般將以Java程序設(shè)計(jì)語(yǔ)言編寫的計(jì)算機(jī)程序編譯成可以由一個(gè)Java虛擬機(jī)執(zhí)行的字節(jié)代碼或Java虛擬機(jī)指令。字節(jié)代碼存儲(chǔ)在輸入給Java虛擬機(jī)的類文件中用于解釋。圖7顯示了由解釋程序(interpreter)、即Java虛擬機(jī)執(zhí)行一段簡(jiǎn)單Java源代碼的過(guò)程。
Java源代碼401包括用Java編寫的典型的Hello World程序。然后將源代碼輸入到一個(gè)將源代碼編譯成字節(jié)代碼的字節(jié)代碼編譯器403。當(dāng)這些字節(jié)代碼將由一個(gè)軟件仿真計(jì)算機(jī)來(lái)執(zhí)行時(shí),它們是虛擬機(jī)指令。一般地,虛擬機(jī)指令是通用的(即,不是為任何專門的微計(jì)算機(jī)或計(jì)算機(jī)結(jié)構(gòu)而設(shè)計(jì)的),但這不是必須的。字節(jié)代碼編譯器輸出一個(gè)包括Java程序的字節(jié)代碼的Java類文件405。
將Java類文件輸入Java虛擬機(jī)407。Java虛擬機(jī)是解碼并執(zhí)行Java類文件中的字節(jié)代碼的解釋程序。Java虛擬機(jī)是一個(gè)解釋程序,但由于它以軟件來(lái)仿真微計(jì)算機(jī)或計(jì)算機(jī)結(jié)構(gòu)(例如,微計(jì)算機(jī)或計(jì)算機(jī)結(jié)構(gòu)可以不存在于硬件中),所以通常稱之為虛擬機(jī)。為了提高Java虛擬機(jī)的執(zhí)行速度,方法可以被編譯成本機(jī)指令,以便更快地執(zhí)行。在下面對(duì)最佳實(shí)施例的說(shuō)明中,將用編譯來(lái)表示將Java虛擬機(jī)指令翻譯為本機(jī)指令的過(guò)程。
本發(fā)明提供了一種用于實(shí)現(xiàn)在面向?qū)ο蟓h(huán)境中的信息分配的位置特定的內(nèi)聯(lián)高速緩存技術(shù)。接收器類型信息存儲(chǔ)在調(diào)用位置,這樣允許每個(gè)調(diào)用位置可以根據(jù)調(diào)用位置的運(yùn)行特性而改變。這不僅使得信息分配更為有效,而且更為靈活。
圖8顯示了依據(jù)本發(fā)明的一個(gè)實(shí)施例的位置特定的內(nèi)聯(lián)高速緩存技術(shù)。如同上面在發(fā)明背景技術(shù)中所描述的,方法51最初包括一個(gè)用于分配的信息x.foo()。當(dāng)此信息第一次被分配時(shí),系統(tǒng)可以調(diào)用一個(gè)方法查找程序來(lái)確定合適的處理該信息的方法的位置?;蛘?,系統(tǒng)可以在運(yùn)行之前執(zhí)行一個(gè)靜態(tài)分析,以便確定哪一個(gè)有可能是正確的方法。
一旦應(yīng)用一個(gè)位置特定的內(nèi)聯(lián)高速緩存確定了將要處理信息的對(duì)象的類,則在調(diào)用位置產(chǎn)生一個(gè)指令來(lái)存儲(chǔ)接收器類型或類。然后用一個(gè)對(duì)要處理該信息的特定方法的調(diào)用來(lái)重寫信息分配。于是,信息分配變成兩條指令,一個(gè)存儲(chǔ)接收器類型,另一個(gè)調(diào)用合適的方法。
如圖所示,方法451包括將類A的一個(gè)id存儲(chǔ)進(jìn)一個(gè)專用寄存器的移動(dòng)指令。該寄存器被稱為一個(gè)專用寄存器僅僅出于識(shí)別的目的。重要的是如果使用一個(gè)寄存器,那么在別的情況下在這個(gè)調(diào)用位置則不能使用該寄存器。盡管使用寄存器可以提供最高效的執(zhí)行速度,但也可以使用其他的存儲(chǔ)裝置。例如,接收器類型可以存儲(chǔ)在系統(tǒng)存儲(chǔ)器中,或者作為一個(gè)參數(shù)傳送給信息處理方法。
一旦存儲(chǔ)了接收器類型,進(jìn)行一個(gè)到處理表示為A::foo()的信息的方法453的調(diào)用。序言455檢驗(yàn)對(duì)象x是否是從專用寄存器檢索出的存儲(chǔ)的接收器類型。在顯示的例子中,類A是存儲(chǔ)的接收器類型。因此,如果對(duì)象x是屬于類A的,則跳轉(zhuǎn)到A::foo()的方法代碼457。否則,調(diào)用方法查找程序來(lái)找出合適的方法處理該信息。然后,可以更新調(diào)用位置,以保存對(duì)象x的接收器類型和對(duì)由方法查找程序找到的方法的調(diào)用。
因此,存儲(chǔ)在調(diào)用位置的接收器類型是預(yù)測(cè)的接收器類型。正是系統(tǒng)預(yù)測(cè)的接收器類型將會(huì)是下一個(gè)接收信息的對(duì)象的接收器類型。如果預(yù)測(cè)的接收器類型與對(duì)象的接收器類型相匹配,則信息分配更加有效。另外,每個(gè)信息分配位置具有特定于該調(diào)用位置的存儲(chǔ)的接收器類型信息,另一個(gè)位置將不會(huì)重寫存儲(chǔ)的接收信息。
圖9顯示了用于信息分配的位置特定的內(nèi)聯(lián)高速緩存技術(shù)的一個(gè)實(shí)施例的流程圖。在步驟501,在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存預(yù)測(cè)的接收器類型。在最佳實(shí)施例中,通過(guò)應(yīng)用一個(gè)將接收器類型放在寄存器中的移動(dòng)指令來(lái)保存接收器類型。但也可以應(yīng)用其他的對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)是公知的保存接收器類型的方法,包括使用系統(tǒng)存儲(chǔ)器或參數(shù)傳遞。
在步驟503,將信息發(fā)送給接收器對(duì)象。該信息是由一個(gè)對(duì)處理該信息的方法的直接調(diào)用來(lái)發(fā)送,而不是應(yīng)用一個(gè)方法查找程序。
一旦接收器對(duì)象接收了該信息,則在步驟505確認(rèn)接收器對(duì)象是保存的預(yù)測(cè)接收器類型。在最佳實(shí)施例中,這種確認(rèn)是在方法的序言中執(zhí)行的(參見(jiàn)圖8)。在步驟507,如果接收器對(duì)象是與保存的預(yù)測(cè)接收器類型相同的類型,則在步驟509執(zhí)行處理該信息的方法。步驟509可以包括執(zhí)行到處理該信息的方法代碼的開(kāi)始的跳轉(zhuǎn)。
如果接收器對(duì)象不是與保存的預(yù)測(cè)接收器類型相同的類型,則在步驟511將在調(diào)用位置的預(yù)測(cè)接收器類型變?yōu)榻邮掌鲗?duì)象的接收器類型。在步驟513調(diào)用方法查找程序以獲得一個(gè)新的方法。所采用的方法查找程序可以是任何對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)是公知的查找程序,包括分配表檢索和虛擬函數(shù)表。方法查找程序提供出合適的方法來(lái)處理該信息。然后在步驟515將在調(diào)用位置的信息分配改變到由方法查找程序返回的方法。
舉例來(lái)說(shuō),假設(shè)在圖8中,對(duì)象x屬于類A,則存儲(chǔ)在方法451的調(diào)用位置的預(yù)測(cè)接收器類型屬于類A。但是,如果對(duì)象x接著是屬于類B的,則序言455可以修改移動(dòng)指令,以便將類B作為預(yù)測(cè)接收器類型存儲(chǔ)在專用寄存器中。另外,將修改信息分配,以調(diào)用由方法查找程序返回的方法。從而將更有效地分配在該調(diào)用位置的針對(duì)一個(gè)類B的接收器對(duì)象的后續(xù)的信息分配。
在圖9中,在改變?cè)谠撐恢玫姆椒ǖ牟襟E515之后,執(zhí)行該方法。執(zhí)行該方法的步驟實(shí)際上可以在步驟513或其他位置就開(kāi)始。因此,在所示的流程圖中,可以根據(jù)不偏離本發(fā)明的精神的特定實(shí)施重新安排、增加和刪除步驟。
如上所述,提供了一種位置特定的內(nèi)聯(lián)高速緩存技術(shù),該技術(shù)在一個(gè)調(diào)用位置保存預(yù)測(cè)的接收器類型。通過(guò)在調(diào)用位置保存預(yù)測(cè)的接收器類型,信息分配變得更為有效,并且更為靈活。例如,在每個(gè)調(diào)用位置的操作可以相互隔離,以使得一個(gè)調(diào)用位置不會(huì)改變另一個(gè)調(diào)用位置的設(shè)置。
位置特定的信息分配本發(fā)明提供了一種位置特定的信息分配技術(shù),能夠靈活地允許在每個(gè)位置應(yīng)用不同的信息分配技術(shù)。另外,在一個(gè)調(diào)用位置應(yīng)用的信息分配技術(shù)可以在運(yùn)行時(shí)隨時(shí)間改變。一旦確定在一個(gè)特定位置需要一個(gè)新的或不同的信息分配技術(shù),則為在該特定調(diào)用位置的使用設(shè)置新的信息分配技術(shù)。于是,信息分配不僅在調(diào)用位置上變得更加靈活,在程序執(zhí)行期間的不同時(shí)間的調(diào)用時(shí)應(yīng)用的信息分配技術(shù)上也變得更加靈活。
圖10顯示了位置特定的信息分配的一個(gè)實(shí)施例的高級(jí)流程圖。在步驟511,在一個(gè)專用信息分配位置執(zhí)行一第一信息分配技術(shù)。第一信息分配技術(shù)可以是現(xiàn)有技術(shù)中已知的任何一種信息分配技術(shù)。第一信息分配技術(shù)最好是依據(jù)本發(fā)明的一種技術(shù)。例如,第一信息分配技術(shù)可以是上面所說(shuō)的位置特定的內(nèi)聯(lián)高速緩存的一個(gè)實(shí)施例。第一信息分配技術(shù)可以在運(yùn)行之前靜態(tài)地確定,也可以在運(yùn)行期間動(dòng)態(tài)地確定。
在步驟553,系統(tǒng)在運(yùn)行期間動(dòng)態(tài)地確定在該特定位置是否需要一第二信息分配技術(shù)??梢詰?yīng)用任何方法來(lái)確定第二信息分配技術(shù)時(shí)所需要的。例如,一旦在該調(diào)用位置遇到的不同接收器類型的數(shù)目超過(guò)了一個(gè)閾值,則需要轉(zhuǎn)向一個(gè)不同的信息分配技術(shù)。另外,可以計(jì)算方法查找程序被調(diào)用的頻率,如果此頻率過(guò)高,則有必要使用一個(gè)新的信息分配。
總之,一旦確定需要一第二信息分配技術(shù),則在步驟555在該特定位置執(zhí)行第二信息分配技術(shù)。用于切換到新的信息分配技術(shù)的方法一般取決于該新技術(shù)本身。既然已經(jīng)描述了高級(jí)流程,下面將更加詳細(xì)地討論動(dòng)態(tài)地確定是否需要一第二信息分配技術(shù)的步驟的一個(gè)實(shí)施例。
圖11顯示了動(dòng)態(tài)地確定是否需要一第二信息分配技術(shù)的一個(gè)實(shí)施例。第一和第二信息分配技術(shù)的標(biāo)記表示為在一個(gè)特定調(diào)用位置一個(gè)信息分配技術(shù)可以切換到另一個(gè)的通用的指示。然而,本發(fā)明并不僅限于兩種技術(shù),也可以有利地運(yùn)用到三個(gè)或更多的技術(shù)上。因此,第一和第二的標(biāo)記并不是本發(fā)明僅限于兩種信息分配技術(shù)的指示。
在圖11中所示的實(shí)施例依賴于在一個(gè)特定調(diào)用位置遇到的不同接收器類型的數(shù)目,將其作為何時(shí)應(yīng)該改變信息分配的一個(gè)指示。例如,可以將一個(gè)位置特定的內(nèi)聯(lián)高速緩存一直使用到在該調(diào)用位置遇到了五個(gè)不同的接收器類型。當(dāng)在該上下文中使用了不同的接收器類型時(shí),這意味著已經(jīng)有五個(gè)預(yù)測(cè)接收器類型與實(shí)際的接收器類型不同的實(shí)例。這將意味著方法查找程序已經(jīng)被調(diào)用了大約五次,存儲(chǔ)在調(diào)用位置的預(yù)測(cè)接收器類型已經(jīng)改變。例如,在類A和B的接收器對(duì)象之間變換五次的調(diào)用位置可以被計(jì)為五個(gè)不同的接收器類型。
雖然在每個(gè)調(diào)用位置可以使用一個(gè)專用的接收器類型計(jì)數(shù)器,但這需要使用存儲(chǔ)器和計(jì)算機(jī)代碼來(lái)保持計(jì)數(shù)器。在最佳實(shí)施例中,在處理該信息的方法之前將計(jì)數(shù)器實(shí)施為多個(gè)空操作(NOP)指令。如同下面將參考圖12要詳細(xì)說(shuō)明的,在方法之前實(shí)施的NOP指令數(shù)表示已經(jīng)遇到的不同接收器類型的數(shù)目。
參考圖11,該流程圖假設(shè)方法查找程序已經(jīng)被調(diào)用,否則,更有可能的是,當(dāng)前的信息分配技術(shù)正在有效地執(zhí)行。在步驟601,系統(tǒng)將信息分配到在處理該信息的方法之前的NOP指令。系統(tǒng)通過(guò)確定在方法之前執(zhí)行了多少個(gè)NOP指令來(lái)對(duì)不同接收器類型的數(shù)目進(jìn)行計(jì)數(shù)。一般地,通過(guò)從包括任何序言的實(shí)際方法的地址中減去為該位置將信息分配到的地址來(lái)確定該計(jì)數(shù)值。
在步驟605,將計(jì)數(shù)值與一預(yù)定數(shù)進(jìn)行比較。預(yù)定數(shù)是在需要切換到一個(gè)不同的信息分配計(jì)數(shù)之前在一個(gè)調(diào)用位置可以遇到的不同接收器類型的數(shù)目。預(yù)定數(shù)可以被靜態(tài)地確定或在運(yùn)行期間動(dòng)態(tài)地計(jì)算出來(lái)。
在步驟607,如果計(jì)數(shù)值比預(yù)定數(shù)大,則在步驟609切換到第二信息分配技術(shù)。如果計(jì)數(shù)值小于或等于預(yù)定數(shù),這表明在目前還不需要切換到第二信息分配技術(shù)。一個(gè)例子將有助于顯示NOP指令是如何被用作為一個(gè)計(jì)數(shù)器的。
圖12顯示了NOP指令是如何被用作為一個(gè)在一個(gè)特定調(diào)用位置已經(jīng)遇到的不同接收器類型的數(shù)目的計(jì)數(shù)器的。如前所述,所顯示的方法651帶有一個(gè)位置特定的內(nèi)聯(lián)高速緩存。方法653處理該信息,但是,在方法之前有一個(gè)具有多個(gè)NOP指令的NOP部分655??梢詫OP指令選擇為不作任何處理并且不會(huì)特別影響方法的操作速度。在其他的實(shí)施例中也可以采用其他的指令來(lái)代替NOP指令。
NOP部分655在方法653的序言657和方法代碼659之前。NOP部分由預(yù)定數(shù)目的NOP指令組成,一般是與在到一個(gè)不同的信息分配技術(shù)的切換被啟動(dòng)之前在一個(gè)調(diào)用位置遇到的不同接收器類型的數(shù)目相同的數(shù)目。每次在序言657調(diào)用方法查找程序時(shí),用對(duì)象x的接收器類型修正移動(dòng)指令。此外,將后續(xù)的信息分配(例如,A::foo())改變到在由方法查找程序找到的新方法的NOP部分655中的NOP指令中的一個(gè)。
如圖所示,信息分配指向在方法653之前的第三個(gè)NOP指令。如果序言657確定對(duì)象x不是類A,則序言計(jì)算在調(diào)用位置的特定地址和方法653的開(kāi)始之間的差別,這可以在運(yùn)行期間由多種已知方法來(lái)得到。該差別或計(jì)數(shù)值表示在該特定調(diào)用位置已經(jīng)遇到的不同接收器類型的數(shù)目。如果計(jì)數(shù)值大于一預(yù)定數(shù),則序言657可以切換在該調(diào)用位置使用的信息分配技術(shù)。
在一個(gè)方法之前采用NOP指令容易實(shí)施、快捷,并且不需要過(guò)多的計(jì)算機(jī)代碼來(lái)保持計(jì)數(shù)器。此外,在NOP部分655中的NOP指令可以由多個(gè)不同的調(diào)用位置來(lái)引用而不會(huì)相互影響。
第一信息分配技術(shù)被顯示為位置特定的內(nèi)聯(lián)高速緩存。第二信息分配技術(shù)可以是多形內(nèi)聯(lián)高速緩存或散列技術(shù),其中每個(gè)技術(shù)都是用來(lái)處理多個(gè)接收器類型的。當(dāng)然,在可以用于本發(fā)明的信息分配技術(shù)上并沒(méi)有限制。這里已經(jīng)描述了特定的信息分配技術(shù)以幫助讀者理解。
如上所述,提供了一種位置特定的信息分配技術(shù),在認(rèn)為需要時(shí)允許在一個(gè)特定調(diào)用位置使用一個(gè)新的信息分配技術(shù)。通過(guò)允許每個(gè)調(diào)用位置在需要時(shí)切換信息調(diào)用技術(shù),信息調(diào)用可以變得更為有效和靈活。此外,在每個(gè)調(diào)用位置的操作可以彼此隔離,以使得一個(gè)調(diào)用位置不會(huì)改變另一個(gè)調(diào)用位置的設(shè)置。
結(jié)論雖然上面對(duì)本發(fā)明的最佳實(shí)施例作了充分地說(shuō)明,但也可以應(yīng)用其改變、修改和替代。可以證明,通過(guò)對(duì)上述的實(shí)施例作適當(dāng)?shù)男薷?,同樣也可以?shí)現(xiàn)本發(fā)明。例如,可以有用地將位置特定的信息分配技術(shù)運(yùn)用到面向?qū)ο蟮恼Z(yǔ)言上而不會(huì)偏離本發(fā)明的精神。因此,不應(yīng)該將上面的說(shuō)明看作為對(duì)本發(fā)明的范圍的限制,本發(fā)明的范圍應(yīng)視附帶的權(quán)利要求而定。
權(quán)利要求
1.在一個(gè)計(jì)算機(jī)系統(tǒng)中,一種在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的方法,包括在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存一個(gè)預(yù)測(cè)接收器類型;將信息發(fā)送給接收器對(duì)象;以及在接收器對(duì)象接收到信息時(shí),確認(rèn)該接收器對(duì)象是保存的預(yù)測(cè)接收器類型。
2.如權(quán)利要求1所述的方法,其特征在于保存一個(gè)預(yù)測(cè)接收器類型包括將預(yù)測(cè)的接收器類型存儲(chǔ)進(jìn)一個(gè)寄存器。
3.如權(quán)利要求2所述的方法,其特征在于在信息被分配的位置之前應(yīng)用一個(gè)移動(dòng)指令將預(yù)測(cè)接收器類型存儲(chǔ)進(jìn)該存儲(chǔ)器。
4.如權(quán)利要求1所述的方法,其特征在于保存一個(gè)預(yù)測(cè)接收器類型包括將預(yù)測(cè)的接收器類型存儲(chǔ)進(jìn)一個(gè)存儲(chǔ)器單元。
5.如權(quán)利要求1所述的方法,其特征在于保存一個(gè)預(yù)測(cè)接收器類型包括將預(yù)測(cè)的接收器類型作為信息的一個(gè)參數(shù)傳遞給接收器對(duì)象。
6.如前面任何一個(gè)權(quán)利要求所述的方法,還包括如果接收器對(duì)象不是所保存的預(yù)測(cè)接收器類型,則將預(yù)測(cè)接收器類型改變?yōu)榻邮掌鲗?duì)象的類型。
7.如前面任何一個(gè)權(quán)利要求所述的方法,還包括調(diào)用一個(gè)方法查找程序,來(lái)從方法查找程序中獲得一個(gè)新的方法。
8.如權(quán)利要求7所述的方法,還包括改變位置以調(diào)用新方法。
9.如前面任何一個(gè)權(quán)利要求所述的方法,其特征在于確認(rèn)接收器對(duì)象包括獲得接收器對(duì)象的接收器類型;以及將接收器對(duì)象的接收器類型與保存的預(yù)測(cè)接收器類型進(jìn)行比較。
10.如權(quán)利要求9所述的方法,還包括如果接收器類型與保存的預(yù)測(cè)接收器類型不相同,則將預(yù)測(cè)接收器類型改變?yōu)榻邮掌鲗?duì)象的接收器類型。
11.如權(quán)利要求9和10中的任何一個(gè)所述的方法,還包括如果接收器對(duì)象的接收器類型與保存的預(yù)測(cè)接收器類型不相同,則調(diào)用一方法查找程序。
12.如權(quán)利要求11所述的方法,還包括從方法查找程序中獲得一個(gè)新方法。
13.如權(quán)利要求12所述的方法,還包括改變位置以調(diào)用新方法。
14.一種在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的計(jì)算機(jī)程序產(chǎn)品,包括在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存一個(gè)預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;將信息發(fā)送給接收器對(duì)象的計(jì)算機(jī)代碼;在接收器對(duì)象接收到信息時(shí)確認(rèn)該接收器對(duì)象是保存的預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;以及一個(gè)存儲(chǔ)計(jì)算機(jī)代碼的計(jì)算機(jī)可讀介質(zhì)。
15.如權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于計(jì)算機(jī)可讀介質(zhì)是從包括CD-ROM、軟盤、磁帶、閃速存儲(chǔ)器、系統(tǒng)存儲(chǔ)器、硬盤驅(qū)動(dòng)器、以及包含在一個(gè)載波中的數(shù)據(jù)信號(hào)的組中選擇出來(lái)的。
16.一個(gè)在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的計(jì)算機(jī)系統(tǒng),包括執(zhí)行計(jì)算機(jī)代碼的處理器;在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存一個(gè)預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;將信息發(fā)送給接收器對(duì)象的計(jì)算機(jī)代碼;在接收器對(duì)象接收到信息時(shí)確認(rèn)該接收器對(duì)象是保存的預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;以及一個(gè)為處理器存儲(chǔ)計(jì)算機(jī)代碼用于執(zhí)行的計(jì)算機(jī)可讀介質(zhì)。
17.在一個(gè)計(jì)算機(jī)系統(tǒng)中,一種在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的方法,包括在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存一個(gè)預(yù)測(cè)接收器類型;將信息發(fā)送給接收器對(duì)象;在接收器對(duì)象接收到信息時(shí),確認(rèn)該接收器對(duì)象是保存的預(yù)測(cè)接收器類型;如果接收器對(duì)象不是所保存的預(yù)測(cè)接收器類型,則將預(yù)測(cè)接收器類型改變?yōu)榻邮掌鲗?duì)象的類型;如果接收器對(duì)象不是所保存的預(yù)測(cè)接收器類型,調(diào)用一個(gè)方法查找程序,來(lái)獲得一個(gè)新的方法;以及改變位置以調(diào)用新方法。
18.如權(quán)利要求17所述的方法,其特征在于保存一個(gè)預(yù)測(cè)接收器類型包括下列選擇之一將預(yù)測(cè)的接收器類型移進(jìn)一個(gè)寄存器,將預(yù)測(cè)的接收器類型存儲(chǔ)進(jìn)一個(gè)寄存器,以及將預(yù)測(cè)的接收器類型作為信息的一個(gè)參數(shù)傳遞給接收器對(duì)象。
19.如權(quán)利要求17和18中的任何一個(gè)所述的方法,其特征在于確認(rèn)接收器對(duì)象包括獲得接收器對(duì)象的接收器類型;以及將接收器對(duì)象的接收器類型與保存的預(yù)測(cè)接收器類型進(jìn)行比較。
20.一種在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的計(jì)算機(jī)程序產(chǎn)品,包括在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置處保存一個(gè)預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;將信息發(fā)送給接收器對(duì)象的計(jì)算機(jī)代碼;在接收器對(duì)象接收到信息時(shí)確認(rèn)該接收器對(duì)象是保存的預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;如果接收器對(duì)象不是所保存的預(yù)測(cè)接收器類型則將預(yù)測(cè)接收器類型改變?yōu)榻邮掌鲗?duì)象的類型的計(jì)算機(jī)代碼;如果接收器對(duì)象不是所保存的預(yù)測(cè)接收器類型則調(diào)用一個(gè)方法查找程序來(lái)獲得一個(gè)新方法的計(jì)算機(jī)代碼;以及改變位置以調(diào)用新方法的計(jì)算機(jī)代碼;以及一個(gè)存儲(chǔ)計(jì)算機(jī)代碼的計(jì)算機(jī)可讀介質(zhì)。
21.如權(quán)利要求20所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于計(jì)算機(jī)可讀介質(zhì)是從包括CD-ROM、軟盤、磁帶、閃速存儲(chǔ)器、系統(tǒng)存儲(chǔ)器、硬盤驅(qū)動(dòng)器、以及包含在一個(gè)載波中的數(shù)據(jù)信號(hào)的組中選擇出來(lái)的。
22.一個(gè)在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)信息分配的計(jì)算機(jī)系統(tǒng),包括執(zhí)行計(jì)算機(jī)代碼的處理器;在一個(gè)信息被分配到一個(gè)接收器對(duì)象的位置保存一個(gè)預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;將信息發(fā)送給接收器對(duì)象的計(jì)算機(jī)代碼;在接收器對(duì)象接收到信息時(shí)確認(rèn)該接收器對(duì)象是保存的預(yù)測(cè)接收器類型的計(jì)算機(jī)代碼;如果接收器對(duì)象不是所保存的預(yù)測(cè)接收器類型則將預(yù)測(cè)接收器類型改變?yōu)榻邮掌鲗?duì)象的類型的計(jì)算機(jī)代碼;如果接收器對(duì)象不是所保存的預(yù)測(cè)接收器類型則調(diào)用一個(gè)方法查找程序來(lái)獲得一個(gè)新方法的計(jì)算機(jī)代碼;改變位置以調(diào)用新方法的計(jì)算機(jī)代碼;以及一個(gè)為處理器存儲(chǔ)計(jì)算機(jī)代碼用于執(zhí)行的計(jì)算機(jī)可讀介質(zhì)。
23.在一個(gè)計(jì)算機(jī)系統(tǒng)中,一種為一個(gè)面向?qū)ο蟮某绦驅(qū)崿F(xiàn)信息分配的方法,包括在一特定位置執(zhí)行一第一信息分配技術(shù),以便將信息分配到接收器對(duì)象;在程序執(zhí)行期間動(dòng)態(tài)地確定在該特定位置是否需要一第二信息分配技術(shù);以及如果需要第二信息分配技術(shù),則在該特定位置執(zhí)行第二信息分配技術(shù),以便將信息分配到接收器對(duì)象。
24.如權(quán)利要求23所述的方法,其特征在于在程序執(zhí)行期間確定是否需要一第二信息分配技術(shù)包括確定該特定位置是否已經(jīng)將信息分配到多于一第一預(yù)定數(shù)目的不同接收器類型。
25.如權(quán)利要求24所述的方法,還包括,保持第一分配技術(shù)已將信息分配到的不同接收器類型的計(jì)數(shù)。
26.如權(quán)利要求23-25中的任何一個(gè)所述的方法,其特征在于第一信息分配技術(shù)在程序執(zhí)行之前被靜態(tài)地確定。
27.如權(quán)利要求23-25中的任何一個(gè)所述的方法,其特征在于第一信息分配技術(shù)是內(nèi)聯(lián)高速緩存。
28.如權(quán)利要求23-27中的任何一個(gè)所述的方法,其特征在于第二信息分配技術(shù)是從多形內(nèi)聯(lián)高速緩存和散列法中選擇的。
29.一個(gè)為一個(gè)面向?qū)ο蟮某绦驅(qū)崿F(xiàn)信息分配的計(jì)算機(jī)系統(tǒng),包括執(zhí)行計(jì)算機(jī)代碼的處理器;在一特定位置執(zhí)行一第一信息分配技術(shù)以便將信息分配到接收器對(duì)象的計(jì)算機(jī)代碼;在程序執(zhí)行期間動(dòng)態(tài)地確定在該特定位置是否需要一第二信息分配技術(shù)的計(jì)算機(jī)代碼;以及如果需要第二信息分配技術(shù)則在該特定位置接著執(zhí)行第二信息分配技術(shù)、以便將信息分配到接收器對(duì)象的計(jì)算機(jī)代碼;以及一個(gè)為處理器存儲(chǔ)計(jì)算機(jī)代碼用于執(zhí)行的計(jì)算機(jī)可讀介質(zhì)。
全文摘要
這里提供了用于在一個(gè)面向?qū)ο蟮沫h(huán)境中實(shí)現(xiàn)位置特定的信息分配的系統(tǒng)和方法。將接收器類型信息保存在一個(gè)信息分配位置,以便提供位置特定的信息分配。通過(guò)允許信息分配可以在不同的調(diào)用位置變化,面向?qū)ο蟮南到y(tǒng)會(huì)變得更為有效和靈活。
文檔編號(hào)G06F9/44GK1233797SQ9812435
公開(kāi)日1999年11月3日 申請(qǐng)日期1998年10月5日 優(yōu)先權(quán)日1997年10月6日
發(fā)明者R·格里瑟梅爾, U·赫爾茨勒 申請(qǐng)人:太陽(yáng)微系統(tǒng)有限公司