專利名稱:順序數(shù)據(jù)傳輸檢測的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及順序數(shù)據(jù)傳輸?shù)臋z測。
計(jì)算機(jī)處理系統(tǒng)通常連接至一個(gè)或多個(gè)輸入/輸出(“I/O”)裝置。通常,處理器以一列數(shù)據(jù)傳輸?shù)男问较騃/O裝置發(fā)送并從其接收數(shù)據(jù)項(xiàng)目。順序數(shù)據(jù)流是指兩個(gè)或多個(gè)被定址到I/O裝置上的相鄰位置的數(shù)據(jù)傳輸請(qǐng)求,通常是以升序排列。處理數(shù)據(jù)傳輸?shù)男视绊懱幚硐到y(tǒng)的整體性能。
附圖描述
圖1是可實(shí)現(xiàn)順序流檢測進(jìn)程的第一實(shí)施例計(jì)算機(jī)硬件的框圖。
圖2A-2C是表示順序數(shù)據(jù)流檢測進(jìn)程的流程圖。
圖3是可實(shí)現(xiàn)順序數(shù)據(jù)流檢測進(jìn)程的第二實(shí)施例的計(jì)算機(jī)硬件的框圖。
說明參考圖1,示例性計(jì)算機(jī)處理系統(tǒng)100包括具有處理器104和用于儲(chǔ)存機(jī)器可執(zhí)行指令108的存儲(chǔ)器106的個(gè)人計(jì)算機(jī)102。系統(tǒng)100還包括I/O控制器110,通過I/O總線111連接至I/O裝置,如外置存儲(chǔ)器112和盤D1-D5。
數(shù)據(jù)傳輸請(qǐng)求(以下稱為“REQ”)通常由計(jì)算機(jī)102在例如執(zhí)行程序時(shí)產(chǎn)生。如果需要讀取或?qū)懭氲臄?shù)據(jù)被定址到I/O裝置,REQ就被發(fā)送至I/O控制器110(或由處理器104執(zhí)行的I/O子進(jìn)程)。REQ由I/O處理器110處理作為向合適的I/O裝置的I/O傳輸。每一I/O傳輸可包括處理單個(gè)數(shù)據(jù)傳輸請(qǐng)求,或者,在特定情況下I/O傳輸可包括共同處理多個(gè)REQ,下文將會(huì)解釋。
每一由I/O處理器110執(zhí)行的I/O傳輸可要求數(shù)個(gè)操作。例如,這類操作包括為I/O總線111判優(yōu)以及在I/O總線111上發(fā)送命令或地址。其它操作可包括將I/O總線111上的地址發(fā)送至I/O裝置、根據(jù)傳送的數(shù)據(jù)計(jì)算奇偶校驗(yàn)、傳送奇偶校驗(yàn)信息以及接收表示數(shù)據(jù)被發(fā)送到I/O裝置或被其接收的確以。
雖然數(shù)據(jù)的傳送代表著整個(gè)I/O傳輸所需要的時(shí)間的主要部分,I/O傳輸所涉及的許多時(shí)間是由建立事務(wù)的系統(tǒng)開銷所消耗的。如果檢測到順序數(shù)據(jù)流,個(gè)別的REQ可處理為組合I/O傳輸。因此,減少了處理所有個(gè)別REQ所需要的時(shí)間,并且也減少了完成多個(gè)I/O傳輸所用的處理器執(zhí)行周期數(shù)。
參考圖2A-2C,顯示了用于檢測可組合成到I/O裝置的輸入/輸出(I/O)傳輸中的順序數(shù)據(jù)傳輸請(qǐng)求(對(duì)相鄰地址的讀寫)的進(jìn)程10。
以下顯示了示例性順序數(shù)據(jù)流“S1”。該例順序流包括三個(gè)獨(dú)立的READ(讀)命令第一REQ(Read1),指定了起始地址10和塊長度5;第二REQ(Read 2),指定了起始地址15和塊長度20;第三REQ(Read 3),指定了地址35和塊長度10。
S1READ(10,5);塊10-14READ(15,20);塊15-34READ(35,10);塊35-44順序流S1可以作為組合I/O傳輸被處理,組合I/O傳輸即在地址10開始的塊長為35的I/O READ,如下所示。
I/O READ(10,35);組合I/O傳輸,讀地址10-44。
僅當(dāng)進(jìn)程10確定(14)有至少一個(gè)“已知順序流”(即,已檢測到并被指示為已知順序流的先前的順序數(shù)據(jù)流),或者當(dāng)進(jìn)程10確定(16)一個(gè)新REQ跨越了預(yù)定義的“塊邊界地址”時(shí),進(jìn)程10才分析新REQ。進(jìn)程10包括子進(jìn)程50,當(dāng)執(zhí)行該子進(jìn)程50時(shí),可以檢測并指示“已知順序流”。當(dāng)進(jìn)程10確定(16)包括在一個(gè)新REQ的地址范圍內(nèi)的塊地址包括了塊邊界地址時(shí),就執(zhí)行子進(jìn)程50,下文將會(huì)解釋。
進(jìn)程10包括對(duì)進(jìn)程10期間中所使用的變量進(jìn)行初始化(11)。進(jìn)程10將全局?jǐn)?shù)組結(jié)構(gòu)初始化(11),全局?jǐn)?shù)組結(jié)構(gòu)包括至少一個(gè)位置跟蹤器地址和相應(yīng)的位置跟蹤器計(jì)數(shù)器。進(jìn)程10中使用的位置跟蹤器和相應(yīng)跟蹤器計(jì)數(shù)器的總數(shù)可多于一個(gè),因此進(jìn)程10將總計(jì)位置跟蹤器變量初始化等于“I”(11)(I是進(jìn)程10中使用的位置跟蹤器的地址數(shù))。進(jìn)程10也初始化(11)塊邊界長度以及可編程變量“Max Counter(最大計(jì)數(shù))”(由進(jìn)程10的程序員或用戶設(shè)定)。Max Counter(最大計(jì)數(shù))為每一跟蹤器計(jì)數(shù)器值定義了所檢測的順序流可達(dá)到的上限。定義Max Counter是必須的,因?yàn)閷?duì)于每一檢測到的順序“命中”,每一跟蹤器計(jì)數(shù)器遞增,然后對(duì)于每一順序“遺漏”則減1,下文將會(huì)解釋。已檢測順序流繼續(xù)被跟蹤,直到相應(yīng)的跟蹤器計(jì)數(shù)器值遞減到一個(gè)相對(duì)低的數(shù)字為止。因此,例如,設(shè)定Max Counter等于100次順序命中,即為每一跟蹤器計(jì)數(shù)器值定義了上限,并且減少了對(duì)不再具有順序命中的順序流將跟蹤器計(jì)數(shù)器遞減所需要的時(shí)間。
仍參考圖2A,進(jìn)程10接收(12)一個(gè)新REQ,確定(14)是否指示了任何已知順序流,如果指示了已知順序流,則跳(20)至順序流子進(jìn)程20(見圖2B)。如果沒有指示已知順序流,進(jìn)程10就確定(16)該新REQ是否跨越塊邊界地址。如果新REQ跨越了塊邊界地址,則進(jìn)程10就跳(50)至塊邊界子進(jìn)程50(見圖2C)。如果該新REQ沒有跨越塊邊界地址,則進(jìn)程10退出(18),并且該新REQ被正常處理,即,該新REQ不標(biāo)記為順序處理。
已知順序流標(biāo)志在子進(jìn)程50的執(zhí)行過程中被置位(以及清零)。因此,子進(jìn)程20僅在子進(jìn)程50至少執(zhí)行了一次并且已對(duì)已知順序流標(biāo)志置位后才執(zhí)行。因此,子進(jìn)程50會(huì)在子進(jìn)程20之前描述。
子進(jìn)程50(見圖2C)包括對(duì)于各位置跟蹤器(I)重復(fù)I次的循環(huán)(52)。每次通過循環(huán)(52),子進(jìn)程50就確定(54)新REQ是否包括“跨越”位置跟蹤器地址(I)的塊。更詳細(xì)地說,每一位置跟蹤器地址(I)最初被設(shè)定為塊邊界長度的偶數(shù)倍。所述確定(54)包括確定新REQ地址范圍內(nèi)的塊是否也包括位置跟蹤器(I)的塊邊界地址。例如,READ(80,22)包括塊80至塊101的地址范圍,因此跨越了位置跟蹤器地址(I)100。如果子進(jìn)程50確定(54)該新REQ跨越位置跟蹤器(I)地址,子進(jìn)程50就指示(60)一個(gè)順序命中,并將位置跟蹤器計(jì)數(shù)器(I)加1(62)。子進(jìn)程50然后確定(63)位置跟蹤器計(jì)數(shù)器(I)是否大于Min Seq Count(最小順序計(jì)數(shù))。Min SeqCount(最小順序計(jì)數(shù))是一個(gè)可編程變量,用于定義在指示(68)已知順序流之前必須檢測的最小的順序命中數(shù)目。如果子進(jìn)程50確定(63)位置跟蹤器計(jì)數(shù)器(I)大于Min Seq Count(最小順序計(jì)數(shù)),循環(huán)(52)就將位置跟蹤器地址(I)設(shè)定(65)為等于新REQ尋址的最后那個(gè)塊加1(以指向順序數(shù)據(jù)流的下一相鄰地址),并且標(biāo)記(66)用于順序處理的新REQ,指示(68)已知順序流正在被跟蹤,并返回循環(huán)(52)的開始。如果子進(jìn)程50確定位置跟蹤器計(jì)數(shù)器(I)不比Min Seq Count(最小順序計(jì)數(shù))大,則子進(jìn)程50將位置跟蹤器(I)的地址設(shè)定(64)為等于下一邊界地址(位置跟蹤器地址(I)加到塊邊界長度),并返回以重復(fù)循環(huán)(52)。如果在循環(huán)(52)中子進(jìn)程50確定(54)新REQ地址未跨越位置跟蹤器(I)地址,則進(jìn)程50將位置跟蹤器計(jì)數(shù)器(I)減1(56)并返回至循環(huán)(52)的開始。
循環(huán)(52)完成后,子進(jìn)程50確定(70)在循環(huán)(52)過程中是否指示了Seq Hit(順序命中)(通過動(dòng)作(60))。如果指示過Seq Hit(順序命中),則子進(jìn)程50退出(72)。如果子進(jìn)程50確定(70)未指示過Seq Hit(順序命中),則子進(jìn)程50確定(74)小于Min Seq Count(最小順序計(jì)數(shù))的最低的位置跟蹤器計(jì)數(shù)器(I)值,并將相應(yīng)位置跟蹤器地址(I)設(shè)定(78)為等于新REQ跨越的邊界地址加上邊界地址長度。子進(jìn)程50退出(72)。
子進(jìn)程20(見圖2B)包括對(duì)每一位置跟蹤器(I)重復(fù)I次的循環(huán)(21)。子進(jìn)程20采用可編程變量“N”來確定(23)新REQ地址和位置跟蹤器地址之間的最大間距,所述地址仍被標(biāo)記為順序流的一部分。更詳細(xì)地來說,變量N允許一個(gè)輕微“出序”的新REQ地址變成順序流的一部分。例如,等于10的變量N在與當(dāng)前等于60的位置跟蹤器地址比較時(shí)就允許將出序地址70標(biāo)記為進(jìn)行順序處理。
每次通過循環(huán)(21),子進(jìn)程20確定(21)位置跟蹤器(I)是否大于Min Seq Count(最小順序計(jì)數(shù)),如果的確確定位置跟蹤器(I)大于Min SeqCount(最小順序計(jì)數(shù)),子進(jìn)程20就確定(23)新REQ地址是否處于位置跟蹤器地址(I)的N個(gè)塊的范圍之內(nèi),如果是,則進(jìn)程10標(biāo)記(24)該新REQ成順序處理(即,作為順序流的一部分)。當(dāng)位置跟蹤器計(jì)數(shù)器小于等于MaxCounter(最大計(jì)數(shù))時(shí),子進(jìn)程20就將位置跟蹤器計(jì)數(shù)器(I)加1(26)。子進(jìn)程20將位置跟蹤器地址(I)設(shè)定(28)為等于新REQ尋址的最后那個(gè)塊加1,即,設(shè)定位置跟蹤器地址(I)指向位置跟蹤器地址(I)所跟蹤的順序流中下一順序地址。子進(jìn)程20返回至循環(huán)(21)的開始,并重復(fù)確定(22)。如果子進(jìn)程20確定位置跟蹤器計(jì)數(shù)器(I)不比Min Seq Count(最小順序計(jì)數(shù))大,或者子進(jìn)程20確定(23)新REQ地址不處于位置跟蹤器地址(I)的N塊范圍之內(nèi),則子進(jìn)程20將位置跟蹤器計(jì)數(shù)器(I)減1(34)并且返回循環(huán)(21)的開始。
在完成循環(huán)(21)之后,子進(jìn)程20確定(36)新REQ是否已標(biāo)記為用于順序處理(動(dòng)作24),如果新REQ已標(biāo)記為用于順序處理,則進(jìn)程20退出(40)。如果新REQ未標(biāo)記為用于順序處理,進(jìn)程20就為已知順序流更新(38)標(biāo)志,即,確定位置跟蹤器計(jì)數(shù)器(I)中是否有任何大于指定最小數(shù)的值,例如,大于Min Seq Count(最小順序計(jì)數(shù))變量。在更新了(38)已知順序流標(biāo)志之后,子進(jìn)程20跳(39)至子進(jìn)程50。
通常的情況是,計(jì)算機(jī)處理器所產(chǎn)生的大多數(shù)REQ是隨機(jī)REQ(被定址到非順序地址的REQ)。在這種情況下,執(zhí)行進(jìn)程10來檢測順序流有效地減少了用于分析新REQ的處理周期數(shù),因?yàn)閮H當(dāng)進(jìn)程10確定(14)已指示了已知順序流時(shí),或者當(dāng)進(jìn)程10確定(16)新REQ跨越塊邊界地址時(shí),進(jìn)程10才分析新REQ。否則,進(jìn)程10退出(18),因此大多數(shù)新REQ作為個(gè)別I/O傳輸來處理,而無需執(zhí)行任何順序流檢測。
在進(jìn)程10的一個(gè)實(shí)施例中,定義了一個(gè)相對(duì)較大的塊邊界長度,以減少進(jìn)程10所分析的新REQ數(shù),因此減少了用于分析新REQ的處理器執(zhí)行時(shí)間。更詳細(xì)地來說,通過定義相對(duì)較大的塊邊界長度,隨機(jī)REQ不太有可能跨越邊界塊地址,因?yàn)榉沁吔绲刂繁冗吔绲刂范嗟枚唷?br>
在進(jìn)程10的更進(jìn)一步的實(shí)施例中,包括定義塊邊界長度為2的冪,使得塊邊界跨越確定(16)(或確定(50))可以通過對(duì)邊界地址和新REQ地址的最高有效位執(zhí)行邏輯位比較來完成。更詳細(xì)地來說,考慮以下示例,其中塊邊界長度和邊界地址大小以十六進(jìn)制數(shù)來表示采用塊邊界長度為100,以及初始?jí)K邊界地址100,接收到新REQ“READ(FF,2)”。READ(FF,2)覆蓋了從0FF到101的地址范圍,即,具有起始?jí)K0FF以及終止地址塊101。進(jìn)程10將起始地址0FF的最高有效位(MSB)與邊界地址100的MSB進(jìn)行比較(如采用“AND(與)”函數(shù))。在這一情況下,第一比較結(jié)果是“不等于”。下一步,進(jìn)程10將終止地址101的MSB與邊界地址100的MSB進(jìn)行比較。在這一情況下,第二比較結(jié)果是“等于”。由于第一比較結(jié)果是等于并且第二比較結(jié)果是不等于,保證了地址100包含在READ(FF,2)之內(nèi),并且該新REQ跨越了邊界地址100。
測試邊界地址跨越的常規(guī)技術(shù)需要執(zhí)行至少一次除法操作。然而,每一除法操作的執(zhí)行需要多個(gè)處理器周期來完成。例如,采用除操作來確定先前描述的REQ“READ(FF,2)的邊界地址跨越,將如下進(jìn)行READ起始地址0FF除以邊界地址100(0FF/100),第一次除法結(jié)果為0。下一步,READ終止地址101除以邊界地址100(101/100),第二次除法結(jié)果是1。由于第一除結(jié)果(0)不等于第二除結(jié)果(1),因此邊界地址被該新REQ跨越,然而,這一測試邊界跨越的技術(shù)需要執(zhí)行至少兩個(gè)除操作。
通過比較,如上所述,進(jìn)程10通過執(zhí)行邏輯位比較(如“AND(與)”函數(shù),或“EQUAL”/“NOT EQUAL(等于/不等于)”函數(shù))來確定邊界跨越,比傳統(tǒng)執(zhí)行除法函數(shù)的方法能夠更簡單并且更快地執(zhí)行。
可能會(huì)有這一情況,隨機(jī)REQ被產(chǎn)生并被與順序REQ內(nèi)部混合。如果計(jì)算機(jī)處理器從第一個(gè)程序的執(zhí)行切換到第二個(gè)程序的執(zhí)行時(shí)可能會(huì)產(chǎn)生這一情況。同時(shí),可能以內(nèi)部混合方式產(chǎn)生多個(gè)順序流。在一個(gè)實(shí)施例中,進(jìn)程10采用多個(gè)位置跟蹤器及相關(guān)的位置跟蹤器計(jì)數(shù)器來檢測多個(gè)順序數(shù)據(jù)流。
參考圖3,計(jì)算機(jī)102所產(chǎn)生的REQ可以被定址為“邏輯”地址,所述邏輯地址然后由I/O控制器110映射到一個(gè)或多個(gè)輸入/輸出裝置D1-D5中的物理地址或地址范圍。將邏輯地址空間映射到物理地址空間和物理裝置有時(shí)候采用“RAID”映射進(jìn)程來實(shí)現(xiàn),“RAID”是指“廉價(jià)磁盤冗余陣列”,即,根據(jù)特定的RAID進(jìn)程將一個(gè)邏輯地址空間映射到多個(gè)物理裝置。有多個(gè)可用的不同RAID映射進(jìn)程。
圖3顯示了一個(gè)示例性RAID映射進(jìn)程,將一個(gè)數(shù)據(jù)“條”132或134分別分區(qū)為多個(gè)數(shù)據(jù)“條”132a-132e和134a-134e。在該示例中,每個(gè)數(shù)據(jù)條132a-132e以及134a-134e被映射到不同的物理裝置,分別為盤D1-D5。而且,每一條可以包括多個(gè)相鄰的數(shù)據(jù)子塊,如,數(shù)據(jù)條134a包括數(shù)據(jù)子塊140-143,數(shù)據(jù)條134b包括數(shù)據(jù)子塊150-153。因此,如果系統(tǒng)100采用RAID映射進(jìn)程,則到一數(shù)據(jù)條內(nèi)的相鄰子塊的個(gè)別數(shù)據(jù)傳輸將作為組合I/O傳輸被處理。而且,到“跨越”數(shù)據(jù)條邊界但仍處于單個(gè)數(shù)據(jù)條范圍內(nèi)的相鄰子塊的數(shù)據(jù)傳輸將作為組合I/O傳輸被處理(作為示例,子塊143與同一數(shù)據(jù)條134內(nèi)的子塊150相鄰)。作為結(jié)果,提高了I/O控制器110和系統(tǒng)100的性能,因?yàn)镮/O控制器110需要執(zhí)行更少的I/O傳輸。
在某些情況下,進(jìn)程10包括確定組合I/O傳輸是否是“最優(yōu)化尺寸”的?!白顑?yōu)化尺寸”是指基于I/O控制器110所使用的地址映射模式的組合I/O傳輸?shù)淖畲蟪叽纭@?,在某些RAID映射模式中,“最優(yōu)化尺寸”組合的I/O讀將允許組合僅定址單個(gè)數(shù)據(jù)條范圍內(nèi)的子塊的數(shù)據(jù)傳輸。這一情況出現(xiàn)是由于跨越條邊界的組合的讀I/O傳輸對(duì)每一條要求單獨(dú)的I/O傳輸,因此,組合跨越條邊界的數(shù)據(jù)傳輸將不會(huì)必要地改進(jìn)系統(tǒng)性能。作為另一示例,在某些RAID映射處理中,“最優(yōu)化尺寸”的組合寫I/O傳輸將組合定制整個(gè)數(shù)據(jù)條范圍內(nèi)的相鄰子塊的數(shù)據(jù)傳輸。這是由于特定的RAID映射處理包括基于包含在一條內(nèi)的所有數(shù)據(jù)條的糾錯(cuò)碼(ECC)計(jì)算。因此,通過組合跨越一條內(nèi)多個(gè)條邊界的任何相鄰數(shù)據(jù)傳輸,使ECC計(jì)算變得更快,并且避免了在執(zhí)行ECC計(jì)算時(shí)需要讀那些組合的數(shù)據(jù)條。
進(jìn)程10未局限于與圖1和圖4的硬件和軟件來使用。它可以適用于任何計(jì)算或處理環(huán)境。進(jìn)程10可以以硬件、軟件或者兩者的組合來實(shí)現(xiàn)。進(jìn)程10可以用在可編程計(jì)算機(jī)或其它機(jī)器上執(zhí)行的計(jì)算機(jī)程序來實(shí)現(xiàn),每一機(jī)器包括處理器、處理器可讀存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)組件)、至少一個(gè)輸入裝置以及一個(gè)或多個(gè)輸出裝置。每一這類程序可以用高級(jí)程序語言或面向?qū)ο缶幊陶Z言來實(shí)現(xiàn),來與計(jì)算機(jī)系統(tǒng)通信。然而,這些程序可以用匯編語言或者機(jī)器語言來實(shí)現(xiàn)。語言可以是已編譯的或已解釋的語言。
I/O控制器110可以作為計(jì)算機(jī)102的一部分被包括,即,作為同一集成處理器的部分或者作為同一計(jì)算機(jī)機(jī)箱的部分,并可以共享處理器104和存儲(chǔ)器106。機(jī)器可執(zhí)行指令也可以從ROM中執(zhí)行,也可以從ROM移至存儲(chǔ)器106。進(jìn)程10可以在REQ發(fā)送至I/O控制器110之前由計(jì)算機(jī)102執(zhí)行。
本發(fā)明未局限于以上描述的特定實(shí)施例。如,提到了向多個(gè)物理裝置的邏輯到物理地址映射。然而,單個(gè)物理裝置,如磁帶驅(qū)動(dòng)器,可以是邏輯到物理映射的,即,將磁帶介質(zhì)上的不同物理位置映射到邏輯地址空間。而且,即使沒有使用地址映射模式也可以使用進(jìn)程10。我們也提到了“讀”和“寫”命令作為數(shù)據(jù)傳輸請(qǐng)求的示例。然而,“讀”和“寫”命令可以更復(fù)雜,如“帶有校驗(yàn)的寫”,等等。我們提到了“順序”的一個(gè)定義為包括直接在REQ引用的另一數(shù)據(jù)條之前或之后的數(shù)據(jù)條。然而,該“順序”的定義可以延伸至包括數(shù)據(jù)尺寸和配置的更大范圍。作為示例,我們也提到了邊界塊尺寸100。然而,可以使用更大(或小)的塊尺寸。同時(shí),在執(zhí)行進(jìn)程10的過程中可以使用單個(gè)位置跟蹤器地址和關(guān)聯(lián)位置跟蹤器計(jì)數(shù)器。
其它此處未描述的實(shí)施例也包括在一下權(quán)利要求書的范圍之內(nèi)。
權(quán)利要求
1.一種檢測順序數(shù)據(jù)傳輸請(qǐng)求的方法,其特征在于,它包括確定第一數(shù)據(jù)傳輸請(qǐng)求是否跨越邊界地址,如果是,則確定是否可指示所述第一數(shù)據(jù)傳輸請(qǐng)求為可與隨后的數(shù)據(jù)傳輸請(qǐng)求組合的。
2.如權(quán)利要求1所述的方法,其特征在于,它還包括確定先前的數(shù)據(jù)傳輸請(qǐng)求是否已被指示為可組合的,如果已指示為可組合的,則確定新的數(shù)據(jù)傳輸請(qǐng)求被定址到為與所述先前的數(shù)據(jù)傳輸請(qǐng)求相鄰。
3.如權(quán)利要求2所述的方法,其特征在于,所述確定新的數(shù)據(jù)傳輸請(qǐng)求被定址為相鄰包括確定所述新數(shù)據(jù)傳輸請(qǐng)求如同先前數(shù)據(jù)請(qǐng)求被定址到特定的最小塊數(shù)之內(nèi)。
4.如權(quán)利要求2所述的方法,其特征在于,所述特定邊界地址跨越的最小數(shù)目在指示數(shù)據(jù)傳輸請(qǐng)求可組合之前確定。
5.如權(quán)利要求2所述的方法,其特征在于,它還包括定義邊界塊長度;以及在指示第一數(shù)據(jù)傳輸請(qǐng)求可組合之前,確定第一數(shù)據(jù)傳輸請(qǐng)求跨越等于邊界塊長度的倍數(shù)的地址。
6.如權(quán)利要求5所述的方法,其特征在于,它還包括將第一跟蹤地址設(shè)定為等于邊界長度的倍數(shù);確定第二數(shù)據(jù)傳輸請(qǐng)求跨越第一跟蹤地址;以及指示第二數(shù)據(jù)傳輸請(qǐng)求可與隨后的數(shù)據(jù)傳輸請(qǐng)求組合。
7.如權(quán)利要求5所述的方法,其特征在于,所述邊界塊長度包括一個(gè)為2的冪的數(shù),其中,所述確定第一數(shù)據(jù)傳輸請(qǐng)求是否跨越邊界地址包括確定邊界長度的最高有效位是否等于第一數(shù)據(jù)傳輸請(qǐng)求地址的最高有效位。
8.如權(quán)利要求6所述的方法,其特征在于,它還包括跟蹤至少兩個(gè)單獨(dú)的順序流用于順序處理。
9.如權(quán)利要求8所述的方法,其特征在于,所述跟蹤進(jìn)一步包括為每一跟蹤的順序流儲(chǔ)存跟蹤地址和相應(yīng)的跟蹤地址計(jì)數(shù)器值。
10.如權(quán)利要求9所述的方法,其特征在于,它還包括對(duì)每一確定與先前數(shù)據(jù)傳輸請(qǐng)求相鄰的數(shù)據(jù)傳輸請(qǐng)求,將其跟蹤地址計(jì)數(shù)器加1;以及當(dāng)跟蹤地址計(jì)數(shù)器中所對(duì)應(yīng)的一個(gè)大于一特定的最大值時(shí),指示被跟蹤的順序流之一可以被釋放為組合的I/O傳輸。
11.如權(quán)利要求10所述的方法,其特征在于,它還包括為每一確定不與先前數(shù)據(jù)傳輸請(qǐng)求相鄰的數(shù)據(jù)傳輸,將其跟蹤地址計(jì)數(shù)器減一。
12.一種制品,包括存儲(chǔ)機(jī)器可執(zhí)行指令的機(jī)器可讀媒質(zhì),機(jī)器可執(zhí)行指令用于檢測順序的數(shù)據(jù)傳輸請(qǐng)求,所述指令使機(jī)器確定第一數(shù)據(jù)傳輸請(qǐng)求是否跨越邊界地址,并且,如果是,則確定第一數(shù)據(jù)傳輸請(qǐng)求是否可被指示為可與隨后的數(shù)據(jù)傳輸請(qǐng)求組合的。
13.如權(quán)利要求12所述的制品,其特征在于,它進(jìn)一步包括使機(jī)器進(jìn)行以下步驟的指令確定先前的數(shù)據(jù)傳輸請(qǐng)求是否已被指示為可組合,如果已被指示為可組合的,則確定新的數(shù)據(jù)傳輸請(qǐng)求是否被定址為與先前數(shù)據(jù)傳輸請(qǐng)求相鄰。
14.如權(quán)利要求13所述的制品,其特征在于,所述確定新數(shù)據(jù)傳輸請(qǐng)求被定址為相鄰包括確定所述新數(shù)據(jù)傳輸請(qǐng)求如同先前的數(shù)據(jù)傳輸請(qǐng)求被定址在特定最小塊數(shù)的范圍之內(nèi)。
15.如權(quán)利要求13所述的制品,其特征在于,所述特定邊界地址跨越的最小數(shù)目在指示數(shù)據(jù)傳輸請(qǐng)求可組合之前確定。
16.如權(quán)利要求13所述的制品,其特征在于,它還包括指令使機(jī)器定義邊界塊長度;以及在指示第一數(shù)據(jù)傳輸請(qǐng)求可組合之前,確定第一數(shù)據(jù)傳輸請(qǐng)求跨越等于邊界塊長度的倍數(shù)的地址。
17.如權(quán)利要求16所述的制品,其特征在于,它還包括指令使機(jī)器將第一跟蹤地址設(shè)定為等于邊界塊長度;確定第二數(shù)據(jù)傳輸請(qǐng)求跨越第一跟蹤地址;以及指示第二數(shù)據(jù)傳輸請(qǐng)求可與隨后的數(shù)據(jù)傳輸請(qǐng)求組合。
18.如權(quán)利要求16所述的制品,其特征在于,所述邊界長度包括一個(gè)為2的冪的數(shù),其中,確定第一數(shù)據(jù)傳輸請(qǐng)求是否跨越邊界地址包括確定所述邊界塊長度的最高有效位是否等于所述第一數(shù)據(jù)傳輸請(qǐng)求地址的最高有效位。
19.如權(quán)利要求16所述的制品,其特征在于,至少兩個(gè)單獨(dú)的順序流被跟蹤用于順序處理,其中,所述物品進(jìn)一步包括指令使機(jī)器為每一被跟蹤的順序流儲(chǔ)存跟蹤地址和相應(yīng)的跟蹤地址計(jì)數(shù)器值。
20.如權(quán)利要求19所述的制品,其特征在于,它還包括指令使機(jī)器對(duì)每一確定與先前數(shù)據(jù)傳輸請(qǐng)求相鄰的數(shù)據(jù)傳輸請(qǐng)求,將其跟蹤地址計(jì)數(shù)器之一加1;以及當(dāng)所對(duì)應(yīng)的跟蹤地址計(jì)數(shù)器之一大于特定最大值時(shí),指示所跟蹤的一個(gè)順序流可被釋放為組合I/O傳輸。
21.如權(quán)利要求20所述的制品,其特征在于,它還包括指令使機(jī)器對(duì)每一確定不與先前數(shù)據(jù)傳輸請(qǐng)求相鄰的數(shù)據(jù)傳輸請(qǐng)求,將其跟蹤地址計(jì)數(shù)器減1。
全文摘要
一種檢測順序數(shù)據(jù)傳輸請(qǐng)求的方法,包括檢測第一數(shù)據(jù)傳輸請(qǐng)求是否跨越邊界地址,且如果是,則確定第一數(shù)據(jù)傳輸請(qǐng)求是否可指示為可與隨后的數(shù)據(jù)傳輸請(qǐng)求組合。該方法還可包括確定先前的數(shù)據(jù)傳輸請(qǐng)求是否可指示為可組合的請(qǐng)求,且如果已指示為可組合的,則確定新數(shù)據(jù)傳輸請(qǐng)求是編址為與先前的數(shù)據(jù)傳輸請(qǐng)求相鄰。
文檔編號(hào)G06F13/00GK1592882SQ02823207
公開日2005年3月9日 申請(qǐng)日期2002年12月17日 優(yōu)先權(quán)日2001年12月21日
發(fā)明者J·卡瓦羅, S·伊普利托 申請(qǐng)人:英特爾公司