使用計(jì)數(shù)器來(lái)跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的備選到達(dá)順序的制作方法
【專利摘要】本發(fā)明公開(kāi)了使用計(jì)數(shù)器來(lái)跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的備選到達(dá)順序的技術(shù)。順序控制器隨著在存儲(chǔ)時(shí)間根據(jù)到達(dá)順序計(jì)數(shù)器設(shè)置的單獨(dú)計(jì)數(shù)器值在至少兩個(gè)隊(duì)列之一中的單獨(dú)條目中存儲(chǔ)每個(gè)接收的事件,其中在存儲(chǔ)接收的事件中的每個(gè)事件之后遞增到達(dá)順序計(jì)數(shù)器并且在溢出時(shí)到達(dá)順序計(jì)數(shù)器繞回到零。順序控制器計(jì)算在隨著來(lái)自至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的活躍第一接下來(lái)?xiàng)l目存儲(chǔ)的第一計(jì)數(shù)器值與隨著來(lái)自至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的活躍第二接下來(lái)?xiàng)l目存儲(chǔ)的第二計(jì)數(shù)器值之間的差值的絕對(duì)值。順序控制器比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定第一計(jì)數(shù)器值是否在第二計(jì)數(shù)器值之前被存儲(chǔ)。
【專利說(shuō)明】使用計(jì)數(shù)器來(lái)跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的備選到達(dá)順序
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例主要地涉及管理隊(duì)列并且具體地涉及在隨著每個(gè)到達(dá)事件存儲(chǔ)來(lái)自計(jì)數(shù)器的計(jì)數(shù)器值以指示到達(dá)順序并且隨著每個(gè)到達(dá)事件遞增計(jì)數(shù)器時(shí)跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序,其中計(jì)數(shù)器在溢出時(shí)繞回到零。
【背景技術(shù)】
[0002]在處置事件流的電子系統(tǒng)中,經(jīng)常對(duì)一個(gè)或者多個(gè)隊(duì)列進(jìn)行定位以存儲(chǔ)事件直至可以處理事件。在向多個(gè)單獨(dú)隊(duì)列中存儲(chǔ)到達(dá)流的事件時(shí),如果指明有序設(shè)置,則可能需要按照事件到達(dá)流的相同順序從隊(duì)列處理事件。
【發(fā)明內(nèi)容】
[0003]鑒于前文,需要一種用于在隨著每個(gè)到達(dá)事件存儲(chǔ)來(lái)自計(jì)數(shù)器的計(jì)數(shù)器值以指示到達(dá)順序并且隨著每個(gè)到達(dá)事件遞增計(jì)數(shù)器時(shí)計(jì)算在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,其中計(jì)數(shù)器在溢出時(shí)繞回到零。
[0004]在一個(gè)實(shí)施例中,一種用于跟蹤在至少兩個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序的方法涉及順序控制器隨著在存儲(chǔ)時(shí)間根據(jù)到達(dá)順序計(jì)數(shù)器設(shè)置的單獨(dú)計(jì)數(shù)器值,在來(lái)自至少兩個(gè)隊(duì)列之一中的多個(gè)條目之中的單獨(dú)條目中存儲(chǔ)每個(gè)接收的事件,其中在存儲(chǔ)接收的事件中的每個(gè)事件之后遞增到達(dá)順序計(jì)數(shù)器,并且在溢出時(shí)到達(dá)順序計(jì)數(shù)器繞回到零。該方法還涉及順序計(jì)數(shù)器計(jì)算在隨著來(lái)自至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的多個(gè)條目之中的活躍第一接下來(lái)?xiàng)l目而存儲(chǔ)的第一計(jì)數(shù)器值與隨著來(lái)自至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的多個(gè)條目之中的活躍第二接下來(lái)?xiàng)l目而存儲(chǔ)的第二計(jì)數(shù)器值之間的差值的絕對(duì)值。該方法涉及順序控制器比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定第一計(jì)數(shù)器值是否按照接收的事件的到達(dá)順序在第二計(jì)數(shù)器值之前被存儲(chǔ)。
[0005]在另一實(shí)施例中,一種用于跟蹤在至少兩個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序的系統(tǒng),包括:在至少一個(gè)硬件部件中實(shí)施的順序控制器,操作用于隨著在存儲(chǔ)時(shí)間根據(jù)到達(dá)順序計(jì)數(shù)器設(shè)置的單獨(dú)計(jì)數(shù)器值、在來(lái)自至少兩個(gè)隊(duì)列之一中的多個(gè)條目之中的單獨(dú)條目中存儲(chǔ)每個(gè)接收的事件,其中在存儲(chǔ)接收的事件中的每個(gè)事件之后遞增到達(dá)順序計(jì)數(shù)器,并且在溢出時(shí)到達(dá)順序計(jì)數(shù)器繞回到零。順序計(jì)數(shù)器操作用于計(jì)算在隨著來(lái)自至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的多個(gè)條目之中的活躍第一接下來(lái)?xiàng)l目而存儲(chǔ)的第一計(jì)數(shù)器值與隨著來(lái)自至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的多個(gè)條目之中的活躍第二接下來(lái)?xiàng)l目而存儲(chǔ)的第二計(jì)數(shù)器值之間的差值的絕對(duì)值。順序控制器操作用于比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定第一計(jì)數(shù)器值是否按照接收的事件的到達(dá)順序在第二計(jì)數(shù)器值之前被存儲(chǔ)。
[0006]在另一實(shí)施例中,一種用于跟蹤在至少兩個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括:在一個(gè)或者多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上存儲(chǔ)的程序指令,用于隨著在存儲(chǔ)時(shí)間根據(jù)到達(dá)順序計(jì)數(shù)器設(shè)置的單獨(dú)計(jì)數(shù)器值、在來(lái)自至少兩個(gè)隊(duì)列之一中的多個(gè)條目之中的單獨(dú)條目中存儲(chǔ)多個(gè)接收的事件中的每個(gè)事件,其中在存儲(chǔ)多個(gè)接收的事件中的每個(gè)事件之后遞增到達(dá)順序計(jì)數(shù)器,并且在溢出時(shí)到達(dá)順序計(jì)數(shù)器繞回到零。該計(jì)算機(jī)程序產(chǎn)品包括:在一個(gè)或者多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上存儲(chǔ)的程序指令,用于計(jì)算在隨著來(lái)自至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的多個(gè)條目之中的活躍第一接下來(lái)?xiàng)l目而存儲(chǔ)的第一計(jì)數(shù)器值與隨著來(lái)自至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的多個(gè)條目之中的活躍第二接下來(lái)?xiàng)l目而存儲(chǔ)的第二計(jì)數(shù)器值之間的差值的絕對(duì)值。該計(jì)算機(jī)程序產(chǎn)品包括:在一個(gè)或者多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上存儲(chǔ)的程序指令,用于比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定第一計(jì)數(shù)器值是否在第二計(jì)數(shù)器值之前被存儲(chǔ)。
【專利附圖】
【附圖說(shuō)明】
[0007]在所附權(quán)利要求中闡述被認(rèn)為是本發(fā)明的一個(gè)或者多個(gè)實(shí)施例的特點(diǎn)的新穎特征。然而在結(jié)合附圖閱讀時(shí)參照對(duì)示例實(shí)施例的以下具體描述將最好地理解本發(fā)明本身的一個(gè)或者多個(gè)實(shí)施例,在附圖中:
[0008]圖1圖示系統(tǒng)的一個(gè)示例的框圖,在該系統(tǒng)中,對(duì)于在多個(gè)隊(duì)列中存儲(chǔ)的事件跟蹤相對(duì)到達(dá)順序;
[0009]圖2圖示用于多隊(duì)列接口的順序控制器的部件的一個(gè)示例的框圖,該多隊(duì)列接口用于處置選擇用于到達(dá)事件的可用隊(duì)列并且跟蹤放置于多個(gè)隊(duì)列之一中的事件的相對(duì)到達(dá)順序;
[0010]圖3圖示隨著每個(gè)隊(duì)列條目而存儲(chǔ)的值的一個(gè)示例的框圖,這些值包括順序計(jì)數(shù)器值和狀態(tài)位;
[0011]圖4圖示用于多隊(duì)列接口的順序控制器的部件的示例的框圖,該多隊(duì)列接口用于處置按照到達(dá)順序從多個(gè)隊(duì)列中對(duì)放置于隊(duì)列之一中的待處理的事件的時(shí)間選擇;
[0012]圖5A、5B和5C圖示順序控制器的一個(gè)示例的框圖,該順序控制器在隨著每個(gè)到達(dá)事件存儲(chǔ)來(lái)自計(jì)數(shù)器的計(jì)數(shù)器值以指示到達(dá)順序并且隨著每個(gè)到達(dá)事件遞增計(jì)數(shù)器時(shí)跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序,其中計(jì)數(shù)器在溢出時(shí)繞回到零;
[0013]圖6圖示順序控制器的一個(gè)示例的框圖的一個(gè)示例,該順序控制器跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序,其中多個(gè)連續(xù)的計(jì)算的絕對(duì)值大于計(jì)數(shù)器中點(diǎn)值;
[0014]圖7A-7B圖示用于跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序的順序控制器的一個(gè)示例的框圖,其中將每個(gè)隊(duì)列的深度設(shè)置成八個(gè)條目;
[0015]圖8圖示其中可以實(shí)施本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的一個(gè)示例的框圖;
[0016]圖9圖示存儲(chǔ)器核控制器的一個(gè)示例的框圖,該存儲(chǔ)器核控制器包括具有多個(gè)隊(duì)列的隊(duì)列接口,事件存儲(chǔ)于這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序;
[0017]圖10圖示用于在具有多個(gè)隊(duì)列的隊(duì)列接口中管理一個(gè)或者多個(gè)計(jì)數(shù)器和一個(gè)或者多個(gè)指針的過(guò)程和程序的高級(jí)邏輯流程圖,事件放置于這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序;
[0018]圖11圖示用于在具有多個(gè)隊(duì)列的隊(duì)列接口中管理傳入事件請(qǐng)求的過(guò)程和程序的高級(jí)邏輯流程圖,事件放置于這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序;以及[0019]圖12圖示用于在具有多個(gè)隊(duì)列的隊(duì)列接口中管理選擇待處理的接下來(lái)事件的過(guò)程和程序的高級(jí)邏輯流程圖,事件放置于這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序。
【具體實(shí)施方式】
[0020]在以下描述中,出于說(shuō)明的目的而闡述許多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。然而本領(lǐng)域技術(shù)人員將清楚,沒(méi)有這些具體細(xì)節(jié)仍然可以實(shí)現(xiàn)本發(fā)明。在其他實(shí)例中,在框圖形式中示出熟知結(jié)構(gòu)和設(shè)備以免不必要地模糊本發(fā)明。
[0021]此外,在以下描述中,出于說(shuō)明的目的而描述許多系統(tǒng)。重要的是注意并且本領(lǐng)域技術(shù)人員將清楚,本發(fā)明可以在多種系統(tǒng)中執(zhí)行,這些系統(tǒng)包括操作任何數(shù)目的不同類型的操作系統(tǒng)的多種計(jì)算機(jī)系統(tǒng)和電子設(shè)備。
[0022]圖1圖示系統(tǒng)的一個(gè)示例的框圖,在該系統(tǒng)中,對(duì)于在多個(gè)隊(duì)列中存儲(chǔ)的事件跟蹤相對(duì)到達(dá)順序。
[0023]在該示例中,接收接口 104從一個(gè)或者多個(gè)設(shè)備接收事件流102。在該示例中,事件流102可以代表在一個(gè)或者多個(gè)時(shí)間段內(nèi)從一個(gè)或者多個(gè)設(shè)備按照特定順序到達(dá)接收接口 104的事件流。在該示例中,接收接口 104標(biāo)識(shí)在事件流102中接收的每個(gè)事件的一個(gè)或者多個(gè)分類并且基于分類從隊(duì)列接口 110中的一個(gè)或者多個(gè)隊(duì)列之中選擇與每個(gè)事件關(guān)聯(lián)的隊(duì)列。在一個(gè)示例中,接收接口 104可以標(biāo)識(shí)事件流102中的每個(gè)事件被分類為讀取請(qǐng)求還是寫(xiě)入請(qǐng)求。
[0024]在該示例中,隊(duì)列接口 110包括深度為N個(gè)條目的隊(duì)列106和深度為M個(gè)條目的隊(duì)列108。在一個(gè)示例中,在隊(duì)列106中僅存儲(chǔ)事件流102中被分類為讀取請(qǐng)求的事件,并且在隊(duì)列108中僅存儲(chǔ)事件流102中被分類為寫(xiě)入請(qǐng)求的事件。在其他實(shí)施例中,隊(duì)列接口 110可以包括單個(gè)隊(duì)列或者可以包括附加隊(duì)列。在一個(gè)實(shí)施例中,隊(duì)列106的深度N個(gè)條目等于隊(duì)列108的深度M個(gè)條目。在另一實(shí)施例中,隊(duì)列106的深度N個(gè)條目不等于隊(duì)列108的深度M個(gè)條目。
[0025]在該示例中,順序控制器112可以向接收接口 104、隊(duì)列接口 110和處理接口 114中的一個(gè)或者多個(gè)接口以及在該一個(gè)或者多個(gè)接口之間發(fā)送控制信號(hào)。在另一實(shí)施例中,可以在一個(gè)或者多個(gè)接口內(nèi)實(shí)施順序控制器112中的一個(gè)或者多個(gè)部件或者可以通過(guò)多個(gè)單獨(dú)的控制器來(lái)實(shí)施順序控制器112。
[0026]在一個(gè)示例中,順序控制器112控制在接收接口 104處在事件流102中接收的事件被拒絕還是被放置于隊(duì)列中。此外,順序控制器112控制選擇非拒絕的事件在隊(duì)列接口110內(nèi)放置于其中的特定隊(duì)列。另外,順序控制器112通過(guò)隨著每個(gè)隊(duì)列中的每個(gè)事件在順序計(jì)數(shù)器寄存器中存儲(chǔ)順序計(jì)數(shù)器值來(lái)控制跟蹤每個(gè)隊(duì)列中的每個(gè)事件的相對(duì)到達(dá)順序,其中計(jì)數(shù)器值由對(duì)于每個(gè)事件到達(dá)而遞增并且在溢出時(shí)繞回到零的到達(dá)順序計(jì)數(shù)器來(lái)設(shè)置。此外,在該示例中,順序控制器112通過(guò)基于向隊(duì)列106和隊(duì)列108中的每個(gè)接下來(lái)活躍事件條目指派的順序計(jì)數(shù)器值而確定順序計(jì)數(shù)器值中的哪個(gè)順序計(jì)數(shù)器值最舊,來(lái)控制從隊(duì)列106和隊(duì)列108之中選擇接下來(lái)活躍事件以由處理接口 114處理,并且標(biāo)記選擇的事件條目為不再活躍。在一個(gè)示例中,順序控制器112通過(guò)計(jì)算在向接下來(lái)兩個(gè)活躍事件指派的順序計(jì)數(shù)器值之間的差值的絕對(duì)值,并且比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定選擇隨著順序計(jì)數(shù)器值中的更小還是更大值存儲(chǔ)的接下來(lái)活躍條目,來(lái)確定向接下來(lái)活躍事件中的每個(gè)事件指派的順序計(jì)數(shù)器值中的哪個(gè)順序計(jì)數(shù)器值是先被存儲(chǔ)的、并且因此是最舊的。具體而言,通過(guò)計(jì)算在向接下來(lái)兩個(gè)活躍事件指派的順序計(jì)數(shù)器值之間的差值的絕對(duì)值并且比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定哪個(gè)計(jì)數(shù)器值是先被存儲(chǔ),可以從隨著事件存儲(chǔ)的順序計(jì)數(shù)器值、但是與順序計(jì)數(shù)器值中所示實(shí)際序列順序獨(dú)立地跟蹤接下來(lái)兩個(gè)活躍事件的到達(dá)順序。
[0027]在該示例中,通過(guò)計(jì)算在向接下來(lái)兩個(gè)活躍事件指派的順序計(jì)數(shù)器值之間的差值的絕對(duì)值并且比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定選擇隨著順序計(jì)數(shù)器值中的更小還是更大值存儲(chǔ)的接下來(lái)活躍條目,可以隨著每個(gè)事件條目?jī)H存儲(chǔ)計(jì)數(shù)器值以跟蹤放置于多個(gè)隊(duì)列中的事件的相對(duì)到達(dá)順序,而無(wú)需計(jì)數(shù)器的溢出的任何附加計(jì)數(shù)并且無(wú)需更大的計(jì)數(shù)器。在一個(gè)示例中,設(shè)置到達(dá)順序計(jì)數(shù)器以計(jì)數(shù)到“2 (N+M)-1”,并且將計(jì)數(shù)器中點(diǎn)值設(shè)置成“N+M”,其中N是隊(duì)列106中的條目深度并且M是隊(duì)列108中的條目深度,并且其中如果絕對(duì)值小于計(jì)數(shù)器中點(diǎn)值則選擇用更小順序計(jì)數(shù)器值指向的條目。在另一示例中,可以將到達(dá)順序計(jì)數(shù)器設(shè)置成不同計(jì)數(shù)、諸如計(jì)數(shù)“4 (N+M)-1 ”,并且可以將計(jì)數(shù)器中點(diǎn)值設(shè)置成到達(dá)順序計(jì)數(shù)器計(jì)數(shù)到的值的不同中點(diǎn)、諸如“2(N+M)”。在另一示例中,可以將計(jì)數(shù)器中點(diǎn)值設(shè)置成在到達(dá)順序計(jì)數(shù)器的中點(diǎn)的范圍內(nèi)的值。在另一示例中,在隊(duì)列接口 110包括多于兩個(gè)隊(duì)列時(shí),可以實(shí)施多個(gè)到達(dá)順序計(jì)數(shù)器,并且可以設(shè)置多個(gè)計(jì)數(shù)器中點(diǎn)值。
[0028]圖2圖示用于多隊(duì)列接口的順序控制器的部件的一個(gè)示例的框圖,該多隊(duì)列接口用于處置選擇用于到達(dá)事件的可用隊(duì)列并且跟蹤放置于多個(gè)隊(duì)列之一中的事件的相對(duì)到達(dá)順序。
[0029]在該示例中,順序控制器112包括用于處置傳入事件流的被設(shè)置用于對(duì)N個(gè)條目進(jìn)行計(jì)數(shù)的N條目隊(duì)列計(jì)數(shù)器204和被設(shè)置用于對(duì)M個(gè)條目進(jìn)行計(jì)數(shù)的M條目隊(duì)列計(jì)數(shù)器206,其中順序控制器112使用N條目隊(duì)列計(jì)數(shù)器204以對(duì)隊(duì)列106中的活躍條目數(shù)目進(jìn)行計(jì)數(shù)并且使用M條目隊(duì)列計(jì)數(shù)器206以對(duì)隊(duì)列108中的活躍條目數(shù)目進(jìn)行計(jì)數(shù)。
[0030]在該示例中,順序控制器112包括用于處置傳入事件流的到達(dá)順序計(jì)數(shù)器202。在一個(gè)示例中,設(shè)置到達(dá)順序計(jì)數(shù)器202以計(jì)數(shù)到等于“2 (N+M)-1”的值,其中N是隊(duì)列106中的條目數(shù)目并且M是隊(duì)列108中的條目數(shù)目。在到達(dá)順序計(jì)數(shù)器202中的計(jì)數(shù)溢出時(shí),到達(dá)順序計(jì)數(shù)器202繞回到零。在該示例中,可以設(shè)置到達(dá)順序計(jì)數(shù)器202以計(jì)數(shù)到備選值。
[0031]在該示例中,接收接口控制器210處置事件流102中的傳入事件。在一個(gè)示例中,接收接口控制器210通過(guò)分類檢測(cè)器212處置事件流102中的傳入事件,該分類檢測(cè)器標(biāo)識(shí)用于每個(gè)事件的特定分類并且選擇與特定分類關(guān)聯(lián)的隊(duì)列。在一個(gè)示例中,隊(duì)列狀態(tài)檢測(cè)器214檢測(cè)來(lái)自N條目隊(duì)列計(jì)數(shù)器204和M條目隊(duì)列計(jì)數(shù)器206之中的用于選擇的隊(duì)列的條目隊(duì)列計(jì)數(shù)器是否指示選擇的隊(duì)列為滿。在該示例中,如果隊(duì)列狀態(tài)檢測(cè)器214檢測(cè)到選擇的隊(duì)列為滿,則滿隊(duì)列處置器216拒絕傳入事件。在一個(gè)示例中,隊(duì)列狀態(tài)檢測(cè)器214通過(guò)檢查用于選擇的隊(duì)列的條目隊(duì)列計(jì)數(shù)器中的計(jì)數(shù)器值是否被設(shè)置成指示所有條目為活躍并且隊(duì)列為滿的值來(lái)高效地檢測(cè)是否可以向選擇的隊(duì)列添加傳入條目。隨著順序控制器112選擇隊(duì)列條目用于由處理接口 114處理,順序控制器112減少與處理的條目所來(lái)自的隊(duì)列關(guān)聯(lián)的條目隊(duì)列計(jì)數(shù)器中的計(jì)數(shù),從而N條目隊(duì)列計(jì)數(shù)器204和M條目隊(duì)列計(jì)數(shù)器206中的每個(gè)條目隊(duì)列計(jì)數(shù)器中的值反映每個(gè)隊(duì)列中的活躍條目的當(dāng)前數(shù)目。
[0032]在該示例中,如果隊(duì)列狀態(tài)檢測(cè)器214檢測(cè)到選擇的隊(duì)列未滿,則打開(kāi)隊(duì)列處置器218控制向來(lái)自隊(duì)列106和隊(duì)列108之中的選擇的隊(duì)列添加傳入事件作為條目,而用于該條目的順序計(jì)數(shù)器值被設(shè)置成在到達(dá)順序計(jì)數(shù)器202中設(shè)置的當(dāng)前計(jì)數(shù)器值,將用于該條目的狀態(tài)位設(shè)置成“活躍”,遞增到達(dá)順序計(jì)數(shù)器202并且遞增來(lái)自N條目隊(duì)列計(jì)數(shù)器204和M條目隊(duì)列計(jì)數(shù)器206之中的用于選擇的隊(duì)列的條目隊(duì)列計(jì)數(shù)器。在該示例中,通過(guò)設(shè)置到達(dá)順序計(jì)數(shù)器202以向上計(jì)數(shù)到“2 (N+M)-1 ”并且通過(guò)隨著順序計(jì)數(shù)器值被設(shè)置成到達(dá)順序計(jì)數(shù)器202中的當(dāng)前到達(dá)順序計(jì)數(shù)器值而存儲(chǔ)每個(gè)事件條目,隨著每個(gè)隊(duì)列中的每個(gè)事件條目而存儲(chǔ)的順序計(jì)數(shù)器值允許順序控制器112即使在到達(dá)順序計(jì)數(shù)器202溢出并且繞回到零時(shí)仍然高效地跟蹤隊(duì)列106和隊(duì)列108中的每個(gè)隊(duì)列中的每個(gè)條目的相對(duì)到達(dá)順序。
[0033]圖3圖示隨著每個(gè)隊(duì)列條目存儲(chǔ)的值的一個(gè)示例的框圖,這些值包括順序計(jì)數(shù)器值和狀態(tài)位。在該示例中,如在標(biāo)號(hào)302所示,隊(duì)列106和隊(duì)列108中的每個(gè)隊(duì)列條目可以包括、但不限于用于存儲(chǔ)事件標(biāo)識(shí)符310的事件寄存器304、用于存儲(chǔ)順序計(jì)數(shù)器值312的具有與到達(dá)順序計(jì)數(shù)器202相同長(zhǎng)度的順序計(jì)數(shù)器寄存器306和用于存儲(chǔ)一位長(zhǎng)度的狀態(tài)位314的狀態(tài)位寄存器308。在該示例中,事件標(biāo)識(shí)符310可以包括一個(gè)或者多個(gè)屬性、諸如事件的開(kāi)始地址、事務(wù)的大小和字節(jié)啟用設(shè)置。在該示例中,順序計(jì)數(shù)器值312可以包括用于指示到達(dá)順序的在到達(dá)時(shí)間的到達(dá)順序計(jì)數(shù)器值。在該示例中,狀態(tài)位314可以包括狀態(tài)位寄存器中設(shè)置的狀態(tài)位,該狀態(tài)位用于指示事件未決或者“活躍”,還是已經(jīng)被處理或者“完成”。在附加或者備選示例中,如在標(biāo)號(hào)302所示每個(gè)隊(duì)列條目可以包括附加或者備選數(shù)據(jù)。
[0034]圖4圖示用于多隊(duì)列接口的順序控制器的部件的一個(gè)示例的框圖,該多隊(duì)列接口用于處置按照到達(dá)順序從多個(gè)隊(duì)列中對(duì)放置于隊(duì)列之一中的待處理的事件的事件選擇。
[0035]在該示例中,順序控制器112管理用于隊(duì)列106和隊(duì)列108中的每個(gè)隊(duì)列的單獨(dú)前指針。在該示例中,前指針402指向隊(duì)列106中的條目,并且前指針404指向隊(duì)列108中的條目。前指針402和前指針404初始地被設(shè)置成零并且指向每個(gè)隊(duì)列中的待處置的接下來(lái)?xiàng)l目。在從隊(duì)列106和隊(duì)列108之一向處理接口 114釋放條目時(shí),將用于隊(duì)列的前指針遞增一個(gè)位置以指向待處置的接下來(lái)?xiàng)l目。在該示例中,如果前指針402或者前指針404中的任一前指針指向條目并且用于該條目的狀態(tài)位被設(shè)置成“完成”,則在隊(duì)列中未留下待處置的條目。
[0036]在該示例中,順序控制器112可以包括用于處置從隊(duì)列106和隊(duì)列108中的事件選擇待處理的接下來(lái)事件的處理接口控制器404。在該示例中,如在標(biāo)號(hào)406所示,處理接口控制器404觸發(fā)隊(duì)列處理選擇器408以確定待處理的接下來(lái)事件。在該示例中,如在標(biāo)號(hào)406所示,一旦隊(duì)列處理選擇器408選擇待處理的事件,處理接口控制器404釋放待處理的選擇的事件,將用于選擇的事件的條目的狀態(tài)位設(shè)置成“完成”,遞增來(lái)自前指針402和前指針404之中的用于選擇的事件隊(duì)列的前指針,并且遞減來(lái)自N條目隊(duì)列計(jì)數(shù)器204和M條目隊(duì)列計(jì)數(shù)器206之中的選擇的事件條目隊(duì)列計(jì)數(shù)器。
[0037]在該示例中,隊(duì)列處理選擇器408可以包括可用條目檢測(cè)器412??捎脳l目檢測(cè)器412檢查向前指針402和前指針404中的每個(gè)前指針指向的條目指派的狀態(tài)位。如在標(biāo)號(hào)414所示,如果前指針402和前指針404 二者都指向各自有狀態(tài)位被設(shè)置成“完成”的條目,則未選擇條目用于處理。如在標(biāo)號(hào)416所示,如果前指針402和前指針404之一指向狀態(tài)位被設(shè)置成“活躍”的條目,則選擇狀態(tài)位被設(shè)置成“活躍”的被指向的條目以用于處理。如在標(biāo)號(hào)418所示,如果前指針402和前指針404 二者各自指向狀態(tài)位被設(shè)置成“活躍”的條目,則觸發(fā)絕對(duì)差值計(jì)算器420。絕對(duì)差值計(jì)算器420如在標(biāo)號(hào)422所示計(jì)算在第一隊(duì)列、前指針條目、順序計(jì)數(shù)器值與第二隊(duì)列、前指針條目、順序計(jì)數(shù)器值之間的差值的絕對(duì)值。在該示例中,計(jì)算的數(shù)字的絕對(duì)值是未考慮符號(hào)的數(shù)字的非負(fù)值。例如“I”的絕對(duì)值是“I”并且“-1”的絕對(duì)值也是“I”。
[0038]在該示例中,絕對(duì)差值比較器430比較絕對(duì)值與計(jì)數(shù)器中點(diǎn)值、諸如“N+M”。如在標(biāo)號(hào)432所示,如果絕對(duì)值小于計(jì)數(shù)器中點(diǎn)值,則選擇具有更小順序計(jì)數(shù)器值的前指針條目。如在標(biāo)號(hào)434所示,如果絕對(duì)值大于或者等于計(jì)數(shù)器中點(diǎn)值,則選擇具有更大順序計(jì)數(shù)器值的前指針條目。
[0039]圖5A、5B和5C圖示順序控制器的一個(gè)示例的框圖,該順序控制器在隨著每個(gè)到達(dá)事件存儲(chǔ)來(lái)自計(jì)數(shù)器的計(jì)數(shù)器值以指示到達(dá)順序并且隨著每個(gè)到達(dá)事件遞增計(jì)數(shù)器時(shí),跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序,其中計(jì)數(shù)器在溢出時(shí)繞回到零。
[0040]在該示例中,如在標(biāo)號(hào)500所示,針對(duì)兩個(gè)隊(duì)列圖示事件流,其中將N設(shè)置成2個(gè)條目的深度并且將M設(shè)置成2個(gè)條目的深度。在該示例中,如在序列502中所示,到達(dá)順序計(jì)數(shù)器、第一隊(duì)列(Ql)前指針、Ql條目隊(duì)列計(jì)數(shù)器、第二隊(duì)列(Q2)前指針和Q2條目隊(duì)列計(jì)數(shù)器都被設(shè)置成“O”。在該示例中,如在隊(duì)列狀態(tài)504中所示,Ql和Q2中的每項(xiàng)的前指針指向設(shè)置成“O”的條目,該條目是每個(gè)隊(duì)列中的第一條目,將用于Ql和Q2中的每項(xiàng)中的每個(gè)條目的順序計(jì)數(shù)器值設(shè)置成“O”,并且將用于Ql和Q2中的每項(xiàng)中的每個(gè)條目的狀態(tài)位設(shè)置成“0”,這是“完成”狀態(tài)位設(shè)置。
[0041]在該示例中,指明Ql用于存儲(chǔ)分類為“讀取”事件的事件,并且指明Q2用于存儲(chǔ)分類為“寫(xiě)入”事件的事件。在該示例中,如在序列506和隊(duì)列狀態(tài)508中所示,事件A到達(dá),該事件被分類為讀取事件并且放置于Ql的第一打開(kāi)隊(duì)列條目中,而Ql條目隊(duì)列計(jì)數(shù)器被遞增到“ I ”,事件A順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“0”,并且事件A狀態(tài)位被設(shè)置成“I”。接著如在序列506和隊(duì)列狀態(tài)508中所示,將到達(dá)順序計(jì)數(shù)器遞增到“1”,并且事件B到達(dá),該事件被分類為寫(xiě)入事件并且放置于Q2的第一打開(kāi)隊(duì)列條目中,而Q2條目隊(duì)列計(jì)數(shù)器被遞增到“ I ”,事件B順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“ I ”并且事件B狀態(tài)位被設(shè)置成“ I ”。接著如在序列506和隊(duì)列狀態(tài)508中所示,將到達(dá)順序計(jì)數(shù)器遞增到“2”,并且事件C到達(dá),該事件被分類為讀取事件并且放置于Ql的接下來(lái)打開(kāi)隊(duì)列條目中,而Ql條目隊(duì)列計(jì)數(shù)器被遞增到“2”,事件C順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“2”,并且事件C狀態(tài)位被設(shè)置成“I”。接著如在序列506和隊(duì)列狀態(tài)508中所示,將到達(dá)順序計(jì)數(shù)器遞增到“3”,并且事件D到達(dá),該事件被分類為寫(xiě)入事件并且放置于Q2的接下來(lái)打開(kāi)隊(duì)列條目中,而Q2條目隊(duì)列計(jì)數(shù)器被遞增到“2”,事件D順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“3”,并且事件D狀態(tài)位被設(shè)置成“I”。接著如在序列506中所示,將到達(dá)順序計(jì)數(shù)器遞增到“4”。
[0042]在該示例中,如在序列510中所示,從均有狀態(tài)位被設(shè)置成“活躍”的、Ql前指針指向的事件A和Q2前指針指向的事件B之中,選擇處理事件A。具體而言,在該示例中,計(jì)算在事件A順序計(jì)數(shù)器“O”與事件B順序計(jì)數(shù)器“ I ”之間的差值的絕對(duì)值,該絕對(duì)值是“ I ”。在該示例中,絕對(duì)值“I”小于“N+M”,后者為“4”,因此選擇具有更小順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“O”的條目A。如在序列510和隊(duì)列狀態(tài)512中所示,將事件A條目狀態(tài)位設(shè)置成“0”,將Ql條目隊(duì)列計(jì)數(shù)器遞減到“ I”,并且Ql前指針被遞增到“ I”并且指向用于事件C的條目。接著如在序列510和隊(duì)列狀態(tài)512中所示,事件E到達(dá),該事件被分類為讀取事件并且放置于Ql中的第一打開(kāi)條目中,而Ql條目隊(duì)列計(jì)數(shù)器被遞增到“2”,事件E順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“4”,并且事件E狀態(tài)位被設(shè)置成“I”。接著如在序列510中所示,將到達(dá)順序計(jì)數(shù)器遞增到“5”。
[0043]在該示例中,如在序列514中所示,從均有狀態(tài)位被設(shè)置成“I”的、Ql前指針指向的事件C和Q2前指針指向的事件B之中,選擇處理事件B。具體而言,在該示例中,計(jì)算在事件B順序計(jì)數(shù)器“ I ”與事件C順序計(jì)數(shù)器“ 2 ”之間的差值的絕對(duì)值,該絕對(duì)值是“ I ”。在該示例中,絕對(duì)值“I”小于“N+M”,后者為“4”,因此選擇具有更小順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“I”的條目B。如在序列514和隊(duì)列狀態(tài)516中所示,將事件B狀態(tài)位設(shè)置成“0”,將Q2條目隊(duì)列計(jì)數(shù)器遞減到“ I ”,并且Q2前指針被遞增到“ I ”并且指向用于事件D的條目。接著如在序列514和隊(duì)列狀態(tài)516中所示,事件F到達(dá),該事件被分類為寫(xiě)入事件并且放置于Q2中的第一打開(kāi)條目中,而Q2條目隊(duì)列計(jì)數(shù)器被遞增回到“2”,事件F順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“5”,并且事件F狀態(tài)位被設(shè)置成“I”。接著如在序列514中所示,將到達(dá)順序計(jì)數(shù)器遞增到“6”。
[0044]在該示例中,如在序列518中所示,從均有狀態(tài)位被設(shè)置成“I”的、Ql前指針指向的事件C和Q2前指針指向的事件D之中,選擇處理事件C。具體而言,在該示例中,計(jì)算在事件C順序計(jì)數(shù)器“2”與事件D順序計(jì)數(shù)器“3”之間的差值的絕對(duì)值,該絕對(duì)值是“I”。在該示例中,絕對(duì)值“I”小于“N+M”,后者為“4”,因此選擇具有更小順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“2”的條目C。如在序列518和隊(duì)列狀態(tài)520中所示,將事件C狀態(tài)位設(shè)置成“0”,將Ql條目隊(duì)列計(jì)數(shù)器遞減到“ I ”,并且Ql前指針被遞增并且溢出到“0”,從而指向用于事件E的條目。接著如在序列518和隊(duì)列狀態(tài)520中所示,事件G到達(dá),該事件被分類為讀取事件并且放置于Ql中的第一打開(kāi)條目中,而Ql條目隊(duì)列計(jì)數(shù)器被遞增回到“2”,事件G順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“6”,并且事件G狀態(tài)位被設(shè)置成“I”。接著如在序列518中所示,將到達(dá)順序計(jì)數(shù)器遞增到“7”。
[0045]在該示例中,如在序列522中所示,從均有狀態(tài)位被設(shè)置成“I”的、Ql前指針指向的事件E和Q2前指針指向的事件D之中,選擇處理事件D。具體而言,在該示例中,計(jì)算在事件D順序計(jì)數(shù)器“3”與事件E順序計(jì)數(shù)器“4”之間的差值的絕對(duì)值,該絕對(duì)值是“I”。在該示例中,絕對(duì)值“I”小于“N+M”,后者為“4”,因此選擇具有更小順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“3”的條目D。如在序列522和隊(duì)列狀態(tài)524中所示,將Q2條目隊(duì)列計(jì)數(shù)器遞減到“ I ”,Q2前指針被遞增并且溢出到“O”,從而指向用于事件F的條目。接著如在序列522和隊(duì)列狀態(tài)524中所示,事件H到達(dá),該事件被分類為寫(xiě)入事件并且放置于Q2中的第一打開(kāi)條目中,而Q2條目隊(duì)列計(jì)數(shù)器被遞增回到“2”,事件H順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“7”,并且事件H狀態(tài)位被設(shè)置成“I”。接著如在序列522中所示,到達(dá)順序計(jì)數(shù)器被遞增并且溢出到“O”。
[0046]在該示例中,如在序列526中所示,從均有狀態(tài)位被設(shè)置成“I”的、Ql前指針指向的事件E和Q2前指針指向的事件F之中,選擇處理事件E。具體而言,在該示例中,計(jì)算在事件E順序計(jì)數(shù)器“4”與事件F順序計(jì)數(shù)器“5”之間的差值的絕對(duì)值,該絕對(duì)值是“I”。在該示例中,絕對(duì)值“I”小于“N+M”,后者為“4”,因此選擇具有更小順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“4”的條目E。如在序列526和隊(duì)列狀態(tài)528中所示,將Ql條目隊(duì)列計(jì)數(shù)器遞減到“1”,并且Ql前指針被遞增到“1”,從而指向用于事件G的條目。接著如在序列526和隊(duì)列狀態(tài)528中所示,事件J到達(dá),該事件被分類為讀取事件并且放置于Ql中的第一打開(kāi)條目中,而Ql條目隊(duì)列計(jì)數(shù)器被遞增回到“2”,事件J順序計(jì)數(shù)器值被設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值“O”,并且事件J狀態(tài)位被設(shè)置成“I”。接著如在序列526中所示,將到達(dá)順序計(jì)數(shù)器遞增到“I”。
[0047]在該示例中,如在序列530中所示,從均有狀態(tài)位被設(shè)置成“I”的、Ql前指針指向的事件G和Q2前指針指向的事件F之中,選擇處理事件F。具體而言,在該示例中,計(jì)算在事件F順序計(jì)數(shù)器“5”與事件G順序計(jì)數(shù)器“6”之間的差值的絕對(duì)值,該絕對(duì)值是“I”。在該示例中,絕對(duì)值“I”小于“N+M”,后者為“4”,因此選擇具有更小順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“5”的條目F。如在序列530和隊(duì)列狀態(tài)532中所示,將事件F狀態(tài)位設(shè)置成“0”,將Q2條目隊(duì)列計(jì)數(shù)器遞減到“ I ”,并且Q2前指針被遞增到“ I ”,從而指向用于事件H的條目。
[0048]在該示例中,如在序列534中所示,從均有狀態(tài)位被設(shè)置成“I”的、Ql前指針指向的事件G和Q2前指針指向的事件H之中,選擇處理事件G。具體而言,在該示例中,計(jì)算在事件G順序計(jì)數(shù)器“6”與事件H順序計(jì)數(shù)器“7”之間的差值的絕對(duì)值,該絕對(duì)值是“ I ”。在該示例中,絕對(duì)值“I”小于“N+M”,后者為“4”,因此選擇具有更小順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“6”的條目G。如在序列534和隊(duì)列狀態(tài)536中所示,將事件G狀態(tài)位設(shè)置成“0”,將Ql條目隊(duì)列計(jì)數(shù)器遞減到“ I ”,并且Ql前指針被遞增并且溢出到“0”,從而指向用于事件J的條目。
[0049]在該示例中,如在序列538中所示,從均有狀態(tài)位被設(shè)置成“I”的、Ql前指針指向的事件J和Q2前指針指向的事件H之中,選擇處理事件H。具體而言,在該示例中,計(jì)算在事件H順序計(jì)數(shù)器“7”與事件J順序計(jì)數(shù)器“O”之間的差值的絕對(duì)值,該絕對(duì)值是“7”。在該示例中,絕對(duì)值“7”大于“N+M”,后者為“4”,因此選擇具有更大順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“7”的條目H。如在序列538和隊(duì)列狀態(tài)540中所示,將事件H狀態(tài)位設(shè)置成“0”,將Q2條目隊(duì)列計(jì)數(shù)器遞減到“0”,并且Q2前指針被遞增并且溢出到“0”,從而指向事件F,該事件已經(jīng)具有設(shè)置成“完成”的狀態(tài)位。
[0050]在該示例中,如在序列542和隊(duì)列狀態(tài)544中所示,選擇處理事件J。具體而言,在該示例中,事件J是前指針被設(shè)置成狀態(tài)位、該狀態(tài)位被設(shè)置成“活躍”的唯一條目,因此選擇處理事件J,將用于事件J的狀態(tài)位設(shè)置成“0”,將Ql條目隊(duì)列計(jì)數(shù)器遞減到“0”,并且將Ql前指針遞增到“I”。如在隊(duì)列狀態(tài)542中所示,Ql前指針和Q2前指針均指向狀態(tài)為“O”的條目,因此在Ql和Q2中無(wú)條目留待處理。
[0051]圖6圖示順序控制器的一個(gè)示例的框圖,該順序控制器用于跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序,其中多個(gè)連續(xù)的計(jì)算的絕對(duì)值大于計(jì)數(shù)器中點(diǎn)值。在該示例中,如在標(biāo)號(hào)600所示,針對(duì)兩個(gè)隊(duì)列圖示事件流,其中將N設(shè)置成2個(gè)條目的深度并且將M設(shè)置成2個(gè)條目的深度。[0052]在該示例中,如在隊(duì)列狀態(tài)602中所示,第一隊(duì)列(Ql)當(dāng)前包括:用于事件A的第一事件條目,而順序計(jì)數(shù)器為“6”并且狀態(tài)位被設(shè)置成“活躍”;以及用于事件B的第二事件條目,而順序計(jì)數(shù)器為“7”并且狀態(tài)位被設(shè)置成“活躍”。此外,如在隊(duì)列狀態(tài)602中所示,第二隊(duì)列(Q2)當(dāng)前包括:用于事件C的第一事件條目,而順序計(jì)數(shù)器為“O”并且狀態(tài)位被設(shè)置成“活躍”;以及用于事件D的第二事件條目,而順序計(jì)數(shù)器為“ I ”并且狀態(tài)位被設(shè)置成“活躍”。在該示例中,Ql前指針指向用于事件A的在Ql中的第一條目,并且Q2前指針指向用于事件C的在Q2中的第一條目。
[0053]在該示例中,如在序列604中所示,從均有狀態(tài)位被設(shè)置成“活躍”的事件A和事件C之中,選擇接下來(lái)處理事件A。具體而言,在該示例中,計(jì)算的絕對(duì)值是在事件A順序計(jì)數(shù)器“6”與事件C順序計(jì)數(shù)器“O”之間的差值的絕對(duì)值,該絕對(duì)值是“6”。在該示例中,絕對(duì)值“6”大于“N+M”,后者為“4”,因此選擇具有更大順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“6”的條目A。在該示例中,如在序列604中所示,將用于事件A的狀態(tài)位設(shè)置成“完成”,并且將Ql前指針遞增到“1”,從而指向事件B,如在序列狀態(tài)606中所示。在該示例中,在隊(duì)列狀態(tài)606中,Ql事件指針指向事件B,并且Q2事件指針指向事件C。
[0054]接著在該示例中,如在序列608中所示,從均有狀態(tài)位被設(shè)置成“活躍”的事件B和事件C之中,選擇接下來(lái)處理事件B。具體而言,在該示例中,計(jì)算的絕對(duì)值是在事件B順序計(jì)數(shù)器“ 7 ”與事件C順序計(jì)數(shù)器“O ”之間的差值的絕對(duì)值,該絕對(duì)值是“ 7 ”。在該示例中,絕對(duì)值“7”大于“N+M”,后者為“4”,因此選擇具有更大順序計(jì)數(shù)器的條目用于處理,這是具有順序計(jì)數(shù)器“7”的條目B。在該示例中,如在序列608中所示,將用于事件B的狀態(tài)位設(shè)置成“完成”,并且Ql前指針被遞增并且繞回到“0”,從而指向“完成”的事件A,如在隊(duì)列狀態(tài)610中所示。
[0055]接著在該示例中,如在序列612中所示,在Ql前指針和Q2前指針之中,僅Q2前指針指向狀態(tài)位被設(shè)置成“活躍”的條目,因此選擇Q2前指針指向的事件C用于處理。在該示例中,如在序列612中所示,將用于事件C的狀態(tài)位設(shè)置成“完成”,并且Q2前指針被遞增到“1”,從而指向事件D,如在隊(duì)列狀態(tài)614中所示。在接下來(lái)周期中,由于Q2前指針仍然是指向活躍條目的唯一指針,所以將選擇事件D用于處理,將用于事件D的狀態(tài)位設(shè)置成“0”,并且Q2前指針將被遞增從而繞回到“O”。
[0056]圖7A-7B圖示用于跟蹤在多個(gè)隊(duì)列中存儲(chǔ)的事件的相對(duì)到達(dá)順序的順序控制器的一個(gè)示例的框圖,其中將每個(gè)隊(duì)列的深度設(shè)置成八個(gè)條目。在該示例中,如在標(biāo)號(hào)700所示,針對(duì)兩個(gè)隊(duì)列圖示事件流,其中將N設(shè)置成八個(gè)條目的深度并且將M設(shè)置成八個(gè)條目的深度。在該示例中,設(shè)置到達(dá)順序計(jì)數(shù)器701以計(jì)數(shù)到上至“2(N+M)-1”的值——該值是31—并且在溢出時(shí)繞回到“ O ”。
[0057]在該示例中,如在序列狀態(tài)702中所示,第一隊(duì)列(Ql)當(dāng)前包括:用于事件A的第一事件條目,而順序計(jì)數(shù)器為“20”并且狀態(tài)位被設(shè)置成“完成”;用于事件B的第二事件條目,而順序計(jì)數(shù)器為“21”并且狀態(tài)位被設(shè)置成“完成”;用于事件C的第三事件條目,而順序計(jì)數(shù)器為“22”并且狀態(tài)位被設(shè)置成“完成”;用于事件D的第四事件條目,而順序計(jì)數(shù)器為“23”并且狀態(tài)位被設(shè)置成“完成”;用于事件E的第五事件條目,而順序計(jì)數(shù)器為“24”并且狀態(tài)位被設(shè)置成“完成”;用于事件F的第六事件條目,而順序計(jì)數(shù)器為“25”并且狀態(tài)位被設(shè)置成“完成”;用于事件G的第七事件條目,而順序計(jì)數(shù)器為“26”并且狀態(tài)位被設(shè)置成“完成”;以及用于事件M的第八事件條目,而順序計(jì)數(shù)器為“O”并且狀態(tài)位被設(shè)置成“活躍”。此外,在該示例中,如在隊(duì)列狀態(tài)702中所示,第二隊(duì)列(Q2)當(dāng)前包括:用于事件H的第一事件條目,而順序計(jì)數(shù)器為“27”并且狀態(tài)位被設(shè)置成“活躍”;用于事件I的第二事件條目,而順序計(jì)數(shù)器為“28”并且狀態(tài)位被設(shè)置成“活躍”;用于事件J的第三事件條目,而順序計(jì)數(shù)器為“29”并且狀態(tài)位被設(shè)置成“活躍”;用于事件K的第四事件條目,而順序計(jì)數(shù)器為“30”并且狀態(tài)位被設(shè)置成“活躍”;用于事件L的第五事件條目,而順序計(jì)數(shù)器為“31”并且狀態(tài)位被設(shè)置成“活躍”;用于事件N的第六事件條目,而順序計(jì)數(shù)器為“ I ”并且狀態(tài)位被設(shè)置成“活躍”;用于事件O的第七事件條目,而順序計(jì)數(shù)器為“2”并且狀態(tài)位被設(shè)置成“活躍”;以及用于事件P的第八事件條目,而順序計(jì)數(shù)器為“3”并且狀態(tài)位被設(shè)置成“活躍”。
[0058]在該示例中,在隊(duì)列狀態(tài)702中,Ql事件指針指向事件M,并且Q2事件指針指向事件H。在該示例中,如在序列704中所示,從各自有狀態(tài)位被設(shè)置成“活躍”的事件M和事件H之中,選擇接下來(lái)處理事件H。具體而言,在該示例中,計(jì)算的絕對(duì)值是在事件M順序計(jì)數(shù)器“O ”與事件H順序計(jì)數(shù)器“ 27 ”之間的差值的絕對(duì)值,該絕對(duì)值是“ 27 ”。在該示例中,絕對(duì)值“27”大于“N+M”,后者是“4”,因此選擇具有更大順序計(jì)數(shù)器的條目用于處理,該條目是具有順序計(jì)數(shù)器“27”的條目H。
[0059]類似地,如在標(biāo)號(hào)706、708、710和712所示,將在事件M之前選擇事件1、J、K和L用于處理,因?yàn)樵诿總€(gè)步驟為指向的順序計(jì)數(shù)器而計(jì)算的絕對(duì)值大于或者等于計(jì)數(shù)器中點(diǎn)值“N+M”。作為序列704、706、708、710和712的結(jié)果,隊(duì)列狀態(tài)從隊(duì)列狀態(tài)702改變成隊(duì)列狀態(tài)714,而Ql前指針仍然指向順序計(jì)數(shù)器為“O”的事件M并且Q2事件指針指向順序計(jì)數(shù)器為“I”的事件N。
[0060]接著如在序列716中所示,選擇處理事件M,因?yàn)樵谑录﨧計(jì)數(shù)器“O”與事件N計(jì)數(shù)器“ I ”之間的差值的絕對(duì)值是“ I ”,該值小于為“ 16”的“N+M”,因此選擇具有更小計(jì)數(shù)器值的事件或者事件M。在該示例中,如在序列716和隊(duì)列狀態(tài)718中所示,將事件M狀態(tài)位設(shè)置成“0”,并且Ql前指針被遞增并且繞回到O。
[0061]接著如在序列720中所示,選擇處理事件N,因?yàn)槭录﨨是前指針指向的具有狀態(tài)位被設(shè)置成活躍的唯一事件。在該示例中,如在序列720和隊(duì)列狀態(tài)720中所示,將事件N狀態(tài)位設(shè)置成“0”,并且Q2前指針被遞增到“6”,從而指向事件O。在接下來(lái)周期中,由于Q2前指針仍然是指向活躍條目的唯一前指針,所以將選擇事件O用于處理,將用于事件O的狀態(tài)位設(shè)置成“0”,并且將Q2前指針遞增到“7”。然后在接下來(lái)周期中,由于Q2前指針仍然是指向活躍條目的唯一前指針,所以將選擇事件P用于處理,將用于事件P的狀態(tài)位設(shè)置成“0”,并且Q2前指針將被遞增從而繞回到“O”并且未留下?tīng)顟B(tài)位被設(shè)置成“ I ”的剩余條目。
[0062]圖8圖示其中可以實(shí)施本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的一個(gè)示例的框圖。可以在由功能部件、諸如參照計(jì)算機(jī)系統(tǒng)800描述的功能部件組成并且可以通信地耦合到網(wǎng)絡(luò)、諸如網(wǎng)絡(luò)802的多種系統(tǒng)和系統(tǒng)組合中實(shí)現(xiàn)本發(fā)明。
[0063]計(jì)算機(jī)系統(tǒng)800包括用于在計(jì)算機(jī)系統(tǒng)800內(nèi)傳送信息的總線822或者其他通信設(shè)備,以及耦合到總線822用于處理信息的至少一個(gè)硬件處理設(shè)備、諸如處理器812??偩€822優(yōu)選地包括由橋接器和適配器連接并且在計(jì)算機(jī)系統(tǒng)800內(nèi)由多個(gè)總線控制器控制的低延時(shí)和更高延時(shí)路徑。在實(shí)施為服務(wù)器或者節(jié)點(diǎn)時(shí),計(jì)算機(jī)系統(tǒng)800可以包括被設(shè)計(jì)用于提高網(wǎng)絡(luò)服務(wù)能力的多個(gè)處理器。在多個(gè)處理器共享總線822時(shí),可以實(shí)施用于管理總線接入和鎖定的附加控制器(未描繪)。
[0064]處理器812可以是至少一個(gè)通用處理器、諸如IBM? PowerPC處理器,該至少一個(gè)通用處理器在正常操作期間在軟件850的控制之下處理數(shù)據(jù),該軟件可以包括從動(dòng)態(tài)存儲(chǔ)設(shè)備如隨機(jī)存取存儲(chǔ)器(RAM) 814、靜態(tài)存儲(chǔ)設(shè)備如只讀存儲(chǔ)器(ROM) 816、數(shù)據(jù)存儲(chǔ)設(shè)備如海量存儲(chǔ)設(shè)備818或者其他數(shù)據(jù)存儲(chǔ)介質(zhì)可訪問(wèn)的應(yīng)用軟件、操作系統(tǒng)、中間件以及其他代碼和計(jì)算機(jī)可執(zhí)行程序中的至少一項(xiàng)。軟件850可以包括但不限于用于控制網(wǎng)絡(luò)內(nèi)的一個(gè)或者多個(gè)系統(tǒng)的代碼、應(yīng)用、協(xié)議、接口和過(guò)程,該一個(gè)或者多個(gè)系統(tǒng)包括但不限于適配器、交換機(jī)、服務(wù)器、群集系統(tǒng)和網(wǎng)格環(huán)境。
[0065]在一個(gè)實(shí)施例中,處理器812執(zhí)行的操作可以控制圖10-圖12的流程圖的操作和這里描述的其他操作。處理器812執(zhí)行的操作可以由軟件850或者其他代碼請(qǐng)求,或者本發(fā)明的一個(gè)實(shí)施例的步驟可以由包含用于執(zhí)行步驟的硬接線邏輯的具體硬件部件執(zhí)行或者由編程的計(jì)算機(jī)部件與定制硬件部件的任何組合執(zhí)行。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)100的一個(gè)或者多個(gè)部件——該一個(gè)或者多個(gè)部件包括但不限于處理器812、RAM814、R0M816、總線822和通信接口 832——或者可以向計(jì)算機(jī)系統(tǒng)100的一個(gè)或者多個(gè)部件中集成的其他部件——該其他部件包括但不限于如圖8中所示存儲(chǔ)器核控制器920——可以包含用于實(shí)施順序控制器112、接收接口 104、隊(duì)列接口 110和處理接口 114并且用于執(zhí)行圖10-圖12的流程圖的操作的硬接線邏輯。
[0066]本領(lǐng)域普通技術(shù)人員將理解,可以體現(xiàn)本發(fā)明的一個(gè)實(shí)施例的諸方面為系統(tǒng)、方法或者計(jì)算機(jī)程序產(chǎn)品。因而,本發(fā)明的一個(gè)實(shí)施例的諸方面可以采用全硬件實(shí)施例、全軟件實(shí)施例(包括固件、常駐軟件、微代碼等)或者包含軟件和硬件方面的實(shí)施例這樣的形式,這些軟件和硬件方面可以都通稱為“電路”、“模塊”或者“系統(tǒng)”。另外,本發(fā)明的一個(gè)實(shí)施例的諸方面可以采用在一個(gè)或者多個(gè)有形計(jì)算機(jī)可讀介質(zhì)中體現(xiàn)的計(jì)算機(jī)程序產(chǎn)品的形式,該一個(gè)或者多個(gè)有形計(jì)算機(jī)可讀介質(zhì)具有在其上體現(xiàn)的計(jì)算機(jī)可讀程序代碼。
[0067]可以利用一個(gè)或者多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以例如是但不限于電子、磁、光、電磁、紅外線或者半導(dǎo)體系統(tǒng)、裝置、設(shè)備或者前述各項(xiàng)的任何適當(dāng)組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更多具體示例(非窮盡列表)將包括以下各項(xiàng):具有一個(gè)或者多個(gè)接線的電連接、便攜計(jì)算機(jī)盤(pán)、硬盤(pán)如海量存儲(chǔ)設(shè)備818、隨機(jī)存取存儲(chǔ)器(RAM)如RAM814、只讀存儲(chǔ)器(ROM) 816、可擦除可編程只讀存儲(chǔ)器(EPROM或者閃存)、光纖、便攜緊致盤(pán)只讀存儲(chǔ)器(CDR0M)、光存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備或者前述各項(xiàng)的任何適當(dāng)組合。在本文的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何可以包含或者存儲(chǔ)用于由指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者與指令執(zhí)行系統(tǒng)、裝置或者設(shè)備結(jié)合使用的程序的有形介質(zhì)。
[0068]計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括例如在基帶中或者作為載波的一部分的、傳播的數(shù)據(jù)信號(hào),該傳播的數(shù)據(jù)信號(hào)具有在其中體現(xiàn)的計(jì)算機(jī)可讀程序代碼。這樣的傳播的信號(hào)可以采用包括但不限于電磁、光或者其任何適當(dāng)組合的多種形式中的任何形式。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以是任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)不是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)并且可以傳送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用的或者與指令執(zhí)行系統(tǒng)、裝置或者設(shè)備結(jié)合使用的程序。[0069]可以使用任何適當(dāng)介質(zhì)來(lái)傳輸在計(jì)算機(jī)可讀介質(zhì)上體現(xiàn)的程序代碼,該介質(zhì)包括但不限于無(wú)線、有線、光纖線纜、射頻(RF)等或者前述各項(xiàng)的任何適當(dāng)組合。
[0070]可以用一種或者多種編程語(yǔ)言的任何組合來(lái)編寫(xiě)用于實(shí)現(xiàn)本發(fā)明的一個(gè)實(shí)施例的操作的計(jì)算機(jī)程序代碼,該一種或者多種編程語(yǔ)言包括諸如Java?、Smalltalk、C++等面向?qū)ο蟮木幊陶Z(yǔ)言以及諸如C編程語(yǔ)言或者類似編程語(yǔ)言這樣的常規(guī)過(guò)程編程語(yǔ)言。程序代碼可以完全在用戶的計(jì)算機(jī)、諸如計(jì)算機(jī)系統(tǒng)800上、部分在用戶的計(jì)算機(jī)上、作為獨(dú)立軟件包、部分在用戶的計(jì)算機(jī)上而部分在遠(yuǎn)程計(jì)算機(jī)上或者完全在遠(yuǎn)程計(jì)算機(jī)或者服務(wù)器、諸如服務(wù)器840上執(zhí)行。在后一種情況下,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任何類型的網(wǎng)絡(luò)如網(wǎng)絡(luò)802、通過(guò)通信接口如網(wǎng)絡(luò)接口 832、通過(guò)可以例如連接到網(wǎng)絡(luò)802的網(wǎng)絡(luò)鏈路連接到用戶的計(jì)算機(jī)。
[0071]在該示例中,網(wǎng)絡(luò)接口 832包括用于通過(guò)鏈路將計(jì)算機(jī)系統(tǒng)800連接到網(wǎng)絡(luò)802并且用于經(jīng)由網(wǎng)絡(luò)802將計(jì)算機(jī)系統(tǒng)800通信地連接到服務(wù)器840或者其他計(jì)算系統(tǒng)的適配器834。雖然未描繪,但是網(wǎng)絡(luò)接口 832可以包括實(shí)現(xiàn)通信的附加軟件、諸如設(shè)備驅(qū)動(dòng)程序、附加硬件和其他控制器。在實(shí)施為服務(wù)器時(shí),計(jì)算機(jī)系統(tǒng)800可以例如包括經(jīng)由多個(gè)外圍部件互連(PCI)總線橋接器可訪問(wèn)的多個(gè)通信接口,這些PCI總線橋接器連接到輸入/輸出控制器。以這一方式,計(jì)算機(jī)系統(tǒng)800允許經(jīng)由多個(gè)單獨(dú)端口的與多個(gè)客戶端的連接,并且每個(gè)端口也可以支持與多個(gè)客戶端的連接。
[0072]以下參照根據(jù)本發(fā)明的實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖圖示和/或框圖描述本發(fā)明的一個(gè)實(shí)施例。本領(lǐng)域普通技術(shù)人員將理解計(jì)算機(jī)程序指令可以實(shí)施流程圖圖示和/或框圖的每個(gè)塊和在流程圖圖示和/或框圖中的塊組合??梢韵蛲ㄓ糜?jì)算機(jī)、專用計(jì)算機(jī)或者其他可編程數(shù)據(jù)處理裝置的處理器提供這些計(jì)算機(jī)程序指令以產(chǎn)生機(jī)器,從而經(jīng)由計(jì)算機(jī)或者其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng)建用于實(shí)施在流程圖和/或框圖的一個(gè)或者多個(gè)塊中指定的功能/動(dòng)作的裝置。
[0073]也可以在計(jì)算機(jī)可讀介質(zhì)中存儲(chǔ)這些計(jì)算機(jī)程序指令,該計(jì)算機(jī)可讀介質(zhì)可以弓I導(dǎo)計(jì)算機(jī)、諸如計(jì)算機(jī)系統(tǒng)800或者其他可編程數(shù)據(jù)處理裝置以特定方式工作,從而在計(jì)算機(jī)可讀介質(zhì)中存儲(chǔ)的指令產(chǎn)生包括指令裝置的制造品,這些指令裝置實(shí)施在流程圖和/或框圖的一個(gè)或者多個(gè)塊中指定的功能/動(dòng)作。
[0074]也可以向計(jì)算機(jī)、諸如計(jì)算機(jī)系統(tǒng)800或者其他可編程數(shù)據(jù)處理裝置上加載計(jì)算機(jī)程序指令以引起一系列操作步驟在計(jì)算機(jī)或者其他可編程裝置上執(zhí)行以產(chǎn)生計(jì)算機(jī)實(shí)施的過(guò)程,從而在計(jì)算機(jī)或者其他可編程裝置上執(zhí)行的指令提供用于實(shí)施在流程圖和/或框圖的一個(gè)或者多個(gè)塊中指定的功能/動(dòng)作的過(guò)程。
[0075]網(wǎng)絡(luò)接口 832、通向網(wǎng)絡(luò)802的網(wǎng)絡(luò)鏈路和網(wǎng)絡(luò)802可以使用輸送數(shù)字?jǐn)?shù)據(jù)流的電、電磁或者光信號(hào)。輸送去往和來(lái)自計(jì)算機(jī)系統(tǒng)800的數(shù)字信號(hào)的、通過(guò)各種網(wǎng)絡(luò)的信號(hào)以及在網(wǎng)絡(luò)802、通向網(wǎng)絡(luò)802的網(wǎng)絡(luò)鏈路和網(wǎng)絡(luò)接口 832上的信號(hào)可以是傳送信息的載波的形式。
[0076]此外,計(jì)算機(jī)系統(tǒng)800可以包括有助于輸入和輸出的多個(gè)外圍部件。這些外圍部件連接到多個(gè)控制器、適配器和擴(kuò)展槽、諸如輸入/輸出(I/O)接口 826,這些控制器、適配器和擴(kuò)展槽耦合到總線822的多級(jí)之一。例如輸入設(shè)備824可以例如包括經(jīng)由I/O接口826在總線822上通信地啟用的控制輸入的麥克風(fēng)、視頻捕獲設(shè)備、圖像掃描系統(tǒng)、鍵盤(pán)、鼠標(biāo)或者其他輸入外圍設(shè)備。此外,例如經(jīng)由I/o接口 826在總線822上通信地啟用的用于控制輸出的輸出設(shè)備820可以例如包括一個(gè)或者多個(gè)圖形顯示設(shè)備、音頻揚(yáng)聲器和觸覺(jué)可檢測(cè)輸出接口,但是也可以包括其他輸出接口。在本發(fā)明的備選實(shí)施例中,可以添加附加或者備選輸入和輸出外圍部件。
[0077]本領(lǐng)域普通技術(shù)人員將理解圖8中描繪的硬件可以變化。另外,本領(lǐng)域普通技術(shù)人員將理解描繪的示例不是為了意味著關(guān)于本發(fā)明的架構(gòu)限制。
[0078]圖9是存儲(chǔ)器核控制器的框圖的一個(gè)示例,該存儲(chǔ)器核控制器包括具有多個(gè)隊(duì)列的隊(duì)列接口,事件放置在這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序。
[0079]在示例中,系統(tǒng)900包括存儲(chǔ)器核控制器920,該存儲(chǔ)器核控制器提供用于將一個(gè)或者多個(gè)設(shè)備、諸如主控設(shè)備910、從屬設(shè)備912和主控設(shè)備914附著和對(duì)接到一個(gè)或者多個(gè)外部存儲(chǔ)器芯片924的機(jī)制。在一個(gè)示例中,主控設(shè)備910、從屬設(shè)備912和主控設(shè)備914可以包括處理器本地總線(PLB)主控、PLB從屬、直接存儲(chǔ)器存取(DMA)主控、DMA從屬和I/O主控中的一項(xiàng)或者多項(xiàng)。在該示例中,仲裁器916與主控設(shè)備910、從屬設(shè)備912和主控設(shè)備914對(duì)接并且管理在設(shè)備中的每個(gè)設(shè)備與存儲(chǔ)器核控制器920之間的通信。在該示例中,在設(shè)備中的每個(gè)設(shè)備與存儲(chǔ)器核控制器920之間的通信可以包括具有寫(xiě)入命令和寫(xiě)入數(shù)據(jù)的寫(xiě)入事件請(qǐng)求以及具有讀取命令和讀取數(shù)據(jù)的讀取事件請(qǐng)求。在該示例中,外部存儲(chǔ)器接口 922在存儲(chǔ)器核控制器920與一個(gè)或者多個(gè)外部存儲(chǔ)器芯片924之間對(duì)接。在一個(gè)示例中,外部存儲(chǔ)器接口 922代表一個(gè)或者多個(gè)雙數(shù)據(jù)速率(DDR)、DDR2和DDR3同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)接口,并且外部存儲(chǔ)器芯片924代表一個(gè)或者多個(gè)DDRSDRAM、DDR2SDRAM和DDR3SDRAM存儲(chǔ)器。外部存儲(chǔ)器接口 922可以包括驅(qū)動(dòng)器和接收器并且可以與在外部存儲(chǔ)器接口 922與外部存儲(chǔ)器芯片924之間的時(shí)鐘緩沖器對(duì)接。在附加或者備選示例中,外部存儲(chǔ)器接口 922可以代表用于一個(gè)或者多個(gè)附加或者備選類型的存儲(chǔ)器的一個(gè)或者多個(gè)接口,并且外部存儲(chǔ)器924可以代表一個(gè)或者多個(gè)附加或者備選類型的存儲(chǔ)器。
[0080]在該示例中,存儲(chǔ)器核控制器920可以通過(guò)管理請(qǐng)求來(lái)自外部存儲(chǔ)器924的數(shù)據(jù)的讀取事件和請(qǐng)求向外部存儲(chǔ)器924寫(xiě)入數(shù)據(jù)的寫(xiě)入事件來(lái)提供在主控設(shè)備910、從屬設(shè)備912和主控設(shè)備914與外部存儲(chǔ)器芯片924之間的橋接器。在一個(gè)示例中,接收器接口104包括解碼器932,該解碼器用于從仲裁器916接收命令、標(biāo)識(shí)每個(gè)命令為讀取命令還是寫(xiě)入命令并且在讀取請(qǐng)求隊(duì)列938中放置標(biāo)識(shí)的讀取命令而在寫(xiě)入請(qǐng)求隊(duì)列936中放置標(biāo)識(shí)的寫(xiě)入命令,其中隊(duì)列接口 110包括讀取請(qǐng)求隊(duì)列938和寫(xiě)入請(qǐng)求隊(duì)列936。在該示例中,處理接口 114包括用于緩沖來(lái)自仲裁器916的寫(xiě)入數(shù)據(jù)的寫(xiě)入緩沖器942、用于緩沖將由仲裁器916讀取的讀取數(shù)據(jù)的讀取緩沖器950、用于執(zhí)行用于仲裁器916的寫(xiě)入控制邏輯的寫(xiě)入控制944、用于執(zhí)行用于仲裁器916的讀取控制邏輯的讀取控制946、用于跟蹤來(lái)自外部存儲(chǔ)器接口 922的返回的讀取數(shù)據(jù)的返回讀取數(shù)據(jù)隊(duì)列948以及用于與外部存儲(chǔ)器接口 922對(duì)接的存儲(chǔ)器接口塊952。
[0081 ] 在該示例中,存儲(chǔ)器芯接口 920包括順序控制器112作為遍及存儲(chǔ)器核控制器920的部件而分布的邏輯,該邏輯用于控制向讀取請(qǐng)求隊(duì)列938和寫(xiě)入請(qǐng)求隊(duì)列936中放入從仲裁器916接收的命令并且用于控制從讀取請(qǐng)求隊(duì)列938和寫(xiě)入請(qǐng)求隊(duì)列936選擇將由外部存儲(chǔ)器接口 922接下來(lái)處理的命令。在一個(gè)示例中,選擇并且向存儲(chǔ)器接口塊952傳遞來(lái)自讀取請(qǐng)求隊(duì)列和寫(xiě)入請(qǐng)求隊(duì)列938的接下來(lái)待處理的命令以用于由外部存儲(chǔ)器接口 922處理。
[0082]圖10圖示用于在具有多個(gè)隊(duì)列的隊(duì)列接口中管理一個(gè)或者多個(gè)計(jì)數(shù)器和一個(gè)或者多個(gè)指針的過(guò)程和程序的高級(jí)邏輯流程圖,事件放置于這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序。在該示例中,該過(guò)程始于塊1000并且隨后繼續(xù)到塊1002。塊1002圖示將每個(gè)隊(duì)列的前指針和條目隊(duì)列計(jì)數(shù)器初始化成“O”并且將隊(duì)列中的所有狀態(tài)位設(shè)置成“完成”。接著,塊1004圖示將到達(dá)順序計(jì)數(shù)器初始化成“O”。隨后,塊1006圖示確定是否選擇來(lái)自多個(gè)隊(duì)列之中的條目用于處理。在塊1006,如果未選擇條目用于處理,則該過(guò)程傳遞到塊1012。塊1012圖示確定是否選擇序列重置。在塊1012,如果選擇序列重置,則該過(guò)程返回到塊1002并且重置指針和計(jì)數(shù)器。在塊1012,如果未選擇序列重置,則該過(guò)程返回到塊1006。
[0083]返回到塊1006,在塊1006,如果選擇條目用于處理,則該過(guò)程傳遞到塊1008。塊1008圖示將用于選擇的條目的狀態(tài)位設(shè)置成“完成”。接著,塊1010圖示遞增選擇的條目隊(duì)列中的前指針以指向隊(duì)列中的接下來(lái)?xiàng)l目,在溢出時(shí)繞回到第一條目,并且該過(guò)程返回到塊1006。
[0084]圖11圖示用于在具有多個(gè)隊(duì)列的隊(duì)列接口中管理傳入事件請(qǐng)求的過(guò)程和程序的高級(jí)邏輯流程圖,事件放置于這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序。在該示例中,該過(guò)程始于塊1100并且隨后繼續(xù)到塊1102。塊1102圖示確定是否檢測(cè)到傳入事件請(qǐng)求。在塊1102,如果檢測(cè)到傳入事件請(qǐng)求,則該過(guò)程傳遞到塊1104。塊1104圖示標(biāo)識(shí)用于傳入事件請(qǐng)求的事件特性。接著,塊1106圖示確定與事件特性關(guān)聯(lián)的事件隊(duì)列是否為滿。在塊1106,如果與事件特性關(guān)聯(lián)的事件隊(duì)列為滿,則該過(guò)程傳遞到塊1108。塊1108圖示拒絕傳入事件請(qǐng)求,并且該過(guò)程結(jié)束。
[0085]返回到塊1106,在塊1106,如果與事件特性關(guān)聯(lián)的事件請(qǐng)求未滿,則該過(guò)程傳遞到塊1110。塊1110圖示遞增用于選擇的隊(duì)列的條目隊(duì)列計(jì)數(shù)器。隨后,塊1112圖示在選擇的事件隊(duì)列中插入用于該事件請(qǐng)求的條目。接著,塊1114圖示將用于此新條目的狀態(tài)位設(shè)置成“活躍”。隨后,塊1116圖示將用于此新條目的計(jì)數(shù)器設(shè)置成當(dāng)前到達(dá)順序計(jì)數(shù)器值。接著,塊1118圖示將到達(dá)順序計(jì)數(shù)器值遞增上至4N-1、然后在溢出時(shí)繞回到0,并且該過(guò)程結(jié)束。
[0086]圖12圖示用于在具有多個(gè)隊(duì)列的隊(duì)列接口中管理選擇待處理的接下來(lái)事件的過(guò)程和程序的高級(jí)邏輯流程圖,事件放置于這些隊(duì)列中并且在這些隊(duì)列中跟蹤事件的相對(duì)到達(dá)順序。在該示例中,該過(guò)程始于塊1200并且隨后繼續(xù)到塊1202。塊1202圖示確定順序控制器是否準(zhǔn)備好選擇待處理的接下來(lái)事件。在塊1202,如果順序控制器準(zhǔn)備好選擇待處理的接下來(lái)事件,則該過(guò)程傳遞到塊1204。塊1204圖示確定每個(gè)隊(duì)列中的前指針指向的條目是否具有設(shè)置成“活躍”的狀態(tài)位。在塊1204,如果每個(gè)隊(duì)列中的前指針指向的條目具有設(shè)置成“活躍”的狀態(tài)位,則該過(guò)程傳遞到塊1220。塊1220圖示確定隊(duì)列之一中的前指針指向的條目之一是否具有設(shè)置成“活躍”的狀態(tài)位。在塊1220,如果隊(duì)列之一中的前指針指向的條目中僅一個(gè)條目具有設(shè)置成“活躍”的狀態(tài)位,則該過(guò)程傳遞到塊1224。塊1224圖示選擇來(lái)自狀態(tài)位被設(shè)置成“活躍”的被指向的條目的事件作為待處理的接下來(lái)事件,并且該過(guò)程結(jié)束。返回到塊1220,在塊1220,如果隊(duì)列中的前指針指向的條目都無(wú)設(shè)置成“活躍”的狀態(tài)位,則該過(guò)程傳遞到塊1222。塊1222圖示設(shè)置在隊(duì)列中無(wú)未決事件的指示符,并且該過(guò)程結(jié)束。
[0087]返回到塊1204,如果每個(gè)隊(duì)列中的前指針指向的條目具有設(shè)置成“活躍”的狀態(tài)位,則該過(guò)程傳遞到塊1206。塊1206圖示計(jì)算在第一隊(duì)列前指針指向的第一順序計(jì)數(shù)器值與第二隊(duì)列前指針指向的第二順序計(jì)數(shù)器之間的差值的絕對(duì)值。接著,塊1208圖示確定絕對(duì)值是否小于“N+M”。在塊1208,如果絕對(duì)值小于“N+M”,則該過(guò)程傳遞到塊1210。塊1210圖示選擇來(lái)自具有更小值的順序計(jì)數(shù)器的、所指向的條目的事件,并且該過(guò)程繼續(xù)到塊1214。返回到塊1208,如果絕對(duì)值不小于“N+M”,則該過(guò)程傳遞到塊1212。塊1212圖示選擇來(lái)自具有更大值的順序計(jì)數(shù)器的、所指向的條目的事件,并且該過(guò)程繼續(xù)到塊1214。
[0088]塊1214圖示將用于選擇的條目的狀態(tài)位設(shè)置成“完成”。接著,塊1216圖示遞增用于選擇的事件隊(duì)列的隊(duì)列指針。隨后,塊1218圖示遞減用于選擇的事件隊(duì)列的條目隊(duì)列計(jì)數(shù)器,并且該過(guò)程結(jié)束。
[0089]圖中的流程圖和框圖舉例說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)方式的架構(gòu)、功能和操作。就這一點(diǎn)而言,在流程圖或者框圖中的每個(gè)塊可以代表代碼模塊、段或者部分,該代碼模塊、段或者部分包括用于實(shí)施指定的邏輯功能的一個(gè)或者多個(gè)可執(zhí)行指令。也應(yīng)當(dāng)注意在一些備選實(shí)現(xiàn)方式中,在塊中指出的功能可以不按圖中指出的順序出現(xiàn)。例如事實(shí)上根據(jù)涉及到的功能可以基本上并行執(zhí)行接連示出的兩個(gè)塊或者有時(shí)可以按相反順序執(zhí)行這些塊。也將注意框圖和/或流程圖圖示的每個(gè)塊以及在框圖和/或流程圖圖示中的塊組合可以由執(zhí)行指定的功能或者動(dòng)作的基于專用硬件的系統(tǒng)實(shí)施或者由專用硬件與計(jì)算機(jī)指令的組合實(shí)施。
[0090]這里所用術(shù)語(yǔ)僅為了描述具體實(shí)施例而未旨在于限制本發(fā)明。如這里所用,除非上下文另有明示,單數(shù)形式“一個(gè)”和“該”旨在于也包括復(fù)數(shù)形式。還將理解術(shù)語(yǔ)“包括”在說(shuō)明書(shū)中使用時(shí)指定存在陳述的特征、整件、步驟、操作、單元和/或部件、但是未排除存在或者添加一個(gè)或者多個(gè)其他特征、整件、步驟、操作、單元、部件和/或其組合。
[0091]所附權(quán)利要求中的所有裝置或者步驟加上功能要素的對(duì)應(yīng)結(jié)構(gòu)、材料、動(dòng)作和等效物旨在于包括用于與如具體要求保護(hù)的其他權(quán)利要求要素組合執(zhí)行該功能的任何結(jié)構(gòu)、材料或者動(dòng)作。已經(jīng)出于示例和描述的目的而呈現(xiàn)本發(fā)明的一個(gè)或者多個(gè)實(shí)施例的描述,但是該描述未旨在于窮舉本發(fā)明或者使本發(fā)明限于公開(kāi)的實(shí)施例。許多修改和變化將為本領(lǐng)域普通技術(shù)人員所清楚而未脫離本發(fā)明的范圍和精神實(shí)質(zhì)。選擇和描述實(shí)施例以便最好地說(shuō)明本發(fā)明的原理和實(shí)際應(yīng)用并且使本領(lǐng)域其他普通技術(shù)人員能夠?qū)τ诰哂腥缗c設(shè)想的特定使用相配的各種修改的各種實(shí)施例理解本發(fā)明。
[0092]盡管已經(jīng)參照一個(gè)或者多個(gè)實(shí)施例具體示出和描述本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解可以在其中進(jìn)行形式和細(xì)節(jié)上的各種改變而未脫離本發(fā)明的精神實(shí)質(zhì)和范圍。
【權(quán)利要求】
1.一種用于跟蹤在至少兩個(gè)隊(duì)列中存儲(chǔ)的多個(gè)事件的相對(duì)到達(dá)順序的方法,所述方法包括: 順序控制器隨著在存儲(chǔ)時(shí)間根據(jù)到達(dá)順序計(jì)數(shù)器設(shè)置的單獨(dú)計(jì)數(shù)器值、在來(lái)自至少兩個(gè)隊(duì)列之一中的多個(gè)條目之中的單獨(dú)條目中存儲(chǔ)多個(gè)接收的事件中的每個(gè)事件,其中在存儲(chǔ)所述多個(gè)接收的事件中的每個(gè)事件之后遞增所述到達(dá)順序計(jì)數(shù)器并且在溢出時(shí)所述到達(dá)順序計(jì)數(shù)器繞回到零; 所述順序控制器計(jì)算在隨著來(lái)自所述至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的所述多個(gè)條目之中的活躍第一接下來(lái)?xiàng)l目而存儲(chǔ)的第一計(jì)數(shù)器值與隨著來(lái)自所述至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的所述多個(gè)條目之中的活躍第二接下來(lái)?xiàng)l目而存儲(chǔ)的第二計(jì)數(shù)器值之間的差值的絕對(duì)值;以及 所述順序控制器比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述順序控制器比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)還包括: 響應(yīng)于所述絕對(duì)值小于所述計(jì)數(shù)器中點(diǎn)值,所述順序控制器選擇所述第一計(jì)數(shù)器值和所述第二計(jì)數(shù)器值中的較小值作為選擇的值; 響應(yīng)于所述絕對(duì)值大于或者等于所述計(jì)數(shù)器中點(diǎn)值,所述順序控制器選擇所述第一計(jì)數(shù)器值和所述第二計(jì)數(shù)器值中的較大值作為所述選擇的值;以及 所述順序控制器選擇隨著所述選擇的值而存儲(chǔ)的特定條目用于接下來(lái)處理。
3.根據(jù)權(quán)利要求2所述的方法,還包括: 響應(yīng)于選擇所述特定條目用于接下來(lái)處理,將隨著所述特定條目而存儲(chǔ)的狀態(tài)位從活躍位設(shè)置成完成位并且遞增指針以指向`具有所述特定條目的、來(lái)自所述至少兩個(gè)隊(duì)列之中的特定隊(duì)列中的接下來(lái)?xiàng)l目。
4.根據(jù)權(quán)利要求1所述的方法,還包括: 所述順序控制器計(jì)算所述計(jì)數(shù)器中點(diǎn)值,所述計(jì)數(shù)器中點(diǎn)值被設(shè)置成所述第一隊(duì)列中的條目數(shù)目加上所述第二隊(duì)列中的條目數(shù)目。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 所述順序控制器在溢出并且繞回到零之前遞增所述到達(dá)順序計(jì)數(shù)器至所述第一隊(duì)列中的條目數(shù)目與所述第二隊(duì)列中的條目數(shù)目求和再減一的最大計(jì)數(shù)器值。
6.根據(jù)權(quán)利要求1所述的方法,還包括: 在所述順序控制器的接收接口處接收所述多個(gè)接收的事件中的每個(gè)事件; 所述順序控制器確定來(lái)自所述多個(gè)接收的事件之中的特定事件的多個(gè)事件分類之中的特定分類; 所述順序控制器確定與所述特定分類關(guān)聯(lián)的、來(lái)自所述至少兩個(gè)隊(duì)列之中的特定隊(duì)列是否為滿; 響應(yīng)于確定所述特定隊(duì)列為滿,所述順序控制器拒絕所述特定事件; 響應(yīng)于確定所述特定隊(duì)列未滿,所述順序控制器隨著在所述到達(dá)順序計(jì)數(shù)器中計(jì)數(shù)到的當(dāng)前值而在所述特定隊(duì)列中存儲(chǔ)所述特定事件;以及 所述順序控制器遞增所述到達(dá)順序計(jì)數(shù)器。
7.根據(jù)權(quán)利要求6所述的方法,其中所述順序控制器確定來(lái)自所述多個(gè)接收的事件之中的特定事件的多個(gè)事件分類之中的特定分類還包括: 所述順序控制器確定來(lái)自包括讀取事件和寫(xiě)入事件的所述多個(gè)事件分類之中的所述特定分類。
8.根據(jù)權(quán)利要求1所述的方法,還包括: 響應(yīng)于所述順序控制器準(zhǔn)備好選擇待處理的接下來(lái)事件,確定來(lái)自所述至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的所述多個(gè)條目之中的第一接下來(lái)?xiàng)l目的第一狀態(tài)位和來(lái)自所述至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的所述多個(gè)條目之中的第二接下來(lái)?xiàng)l目的第二狀態(tài)位是否均被設(shè)置成完成位; 響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位二者均被設(shè)置成所述完成位,則不處理?xiàng)l目; 響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位二者未被設(shè)置成所述完成位,確定是否所述第一狀態(tài)位和所述第二狀態(tài)位中僅一個(gè)狀態(tài)位被設(shè)置成活躍位; 響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位中僅一個(gè)狀態(tài)位被設(shè)置成所述活躍位,選擇特定事件狀態(tài)位被設(shè)置成所述活躍位的、來(lái)自所述第一接下來(lái)?xiàng)l目和所述第二接下來(lái)?xiàng)l目之中的所述特定事件的待處理的所述接下來(lái)事件;以及 響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位二者均被設(shè)置成所述活躍位,所述順序控制器計(jì)算在所述第一計(jì)數(shù)器值與所述第二計(jì)數(shù)器值之間的差值的所述絕對(duì)值并且比較所述絕對(duì)值與所述計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)。
9.根據(jù)權(quán)利要求1所述`的方法,其中所述順序控制器比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)還包括: 所述順序控制器比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以獨(dú)立于與所述第二計(jì)數(shù)器值比較的所述第一計(jì)數(shù)器值的序列順序確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)。
10.一種用于跟蹤在至少兩個(gè)隊(duì)列中存儲(chǔ)的多個(gè)事件的相對(duì)到達(dá)順序的系統(tǒng),所述系統(tǒng)包括: 在至少一個(gè)硬件部件中實(shí)施的順序控制器,操作用于隨著在存儲(chǔ)時(shí)間根據(jù)到達(dá)順序計(jì)數(shù)器設(shè)置的單獨(dú)計(jì)數(shù)器值、在來(lái)自至少兩個(gè)隊(duì)列之一中的多個(gè)條目之中的單獨(dú)條目中存儲(chǔ)多個(gè)接收的事件中的每個(gè)事件,其中在存儲(chǔ)所述多個(gè)接收的事件中的每個(gè)事件之后遞增所述到達(dá)順序計(jì)數(shù)器并且在溢出時(shí)所述到達(dá)順序計(jì)數(shù)器繞回到零; 所述順序控制器操作用于計(jì)算在隨著來(lái)自所述至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的所述多個(gè)條目之中的活躍第一接下來(lái)?xiàng)l目而存儲(chǔ)的第一計(jì)數(shù)器值與隨著來(lái)自所述至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的所述多個(gè)條目之中的活躍第二接下來(lái)?xiàng)l目而存儲(chǔ)的第二計(jì)數(shù)器值之間的差值的絕對(duì)值;并且 所述順序控制器操作用于比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述順序控制器操作用于比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)還包括:所述順序控制器響應(yīng)于所述絕對(duì)值小于所述計(jì)數(shù)器中點(diǎn)值,操作用于選擇所述第一計(jì)數(shù)器值和所述第二計(jì)數(shù)器值中的較小值作為選擇的值; 所述順序控制器響應(yīng)于所述絕對(duì)值大于或者等于所述計(jì)數(shù)器中點(diǎn)值,操作用于選擇所述第一計(jì)數(shù)器值和所述第二計(jì)數(shù)器值中的較大值作為所述選擇的值;并且 所述順序控制器操作用于選擇隨著所述選擇的值而存儲(chǔ)的特定條目用于接下來(lái)處理。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括: 所述順序控制器響應(yīng)于選擇所述特定條目用于接下來(lái)處理,操作用于將隨著所述特定條目而存儲(chǔ)的狀態(tài)位從活躍位設(shè)置成完成位并且遞增指針以指向具有所述特定條目的、來(lái)自所述至少兩個(gè)隊(duì)列之中的特定隊(duì)列中的接下來(lái)?xiàng)l目。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),還包括: 所述順序控制器操作用于計(jì)算所述計(jì)數(shù)器中點(diǎn)值,所述計(jì)數(shù)器中點(diǎn)值被設(shè)置成所述第一隊(duì)列中的條目數(shù)目加上所述第二隊(duì)列中的條目數(shù)目。
14.根據(jù)權(quán)利要求10所述的系統(tǒng),還包括: 所述順序控制器操作用于在溢出并且繞回到零之前遞增所述到達(dá)順序計(jì)數(shù)器至所述第一隊(duì)列中的條目數(shù)目與所述第二隊(duì)列中的條目數(shù)目求和再減一的最大計(jì)數(shù)器值。
15.根據(jù)權(quán)利要求10所述的系統(tǒng),還包括: 所述順序控制器的接收接口操作用于接收所述多個(gè)接收的事件中的每個(gè)事件; 所述順序控制器操 作用于確定來(lái)自所述多個(gè)接收的事件之中的特定事件的、來(lái)自多個(gè)事件分類之中的特定分類; 所述順序控制器操作用于確定與所述特定分類關(guān)聯(lián)的、來(lái)自所述至少兩個(gè)隊(duì)列之中的特定隊(duì)列是否為滿; 所述順序控制器響應(yīng)于確定所述特定隊(duì)列為滿,操作用于拒絕所述特定事件; 所述順序控制器響應(yīng)于確定所述特定隊(duì)列未滿,操作用于隨著在所述到達(dá)順序計(jì)數(shù)器中計(jì)數(shù)到的當(dāng)前值而在所述特定隊(duì)列中存儲(chǔ)所述特定事件;并且所述順序控制器操作用于遞增所述到達(dá)順序計(jì)數(shù)器。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述順序控制器操作用于確定來(lái)自所述多個(gè)接收的事件之中的特定事件的、來(lái)自多個(gè)事件分類之中的特定分類還包括: 所述順序控制器操作用于確定來(lái)自包括讀取事件和寫(xiě)入事件的所述多個(gè)事件分類之中的所述特定分類。
17.根據(jù)權(quán)利要求10所述的系統(tǒng),還包括: 所述順序控制器響應(yīng)于所述順序控制器準(zhǔn)備好選擇待處理的接下來(lái)事件,操作用于確定來(lái)自所述至少兩個(gè)隊(duì)列之中的第一隊(duì)列中的所述多個(gè)條目之中的第一接下來(lái)?xiàng)l目的第一狀態(tài)位和來(lái)自所述至少兩個(gè)隊(duì)列之中的第二隊(duì)列中的所述多個(gè)條目之中的第二接下來(lái)?xiàng)l目的第二狀態(tài)位是否均被設(shè)置成完成位; 所述順序控制器響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位二者均被設(shè)置成所述完成位,操作用于不處理任何條目; 所述順序控制器響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位二者未被設(shè)置成所述完成位,操作用于確定是否所述第一狀態(tài)位和所述第二狀態(tài)位中僅一個(gè)狀態(tài)位被設(shè)置成活躍位;所述順序控制器響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位中僅一個(gè)狀態(tài)位被設(shè)置成所述活躍位,操作用于選擇特定事件狀態(tài)位被設(shè)置成所述活躍位的、來(lái)自所述第一接下來(lái)?xiàng)l目和所述第二接下來(lái)?xiàng)l目之中的所述特定事件的待處理的所述接下來(lái)事件;并且 所述順序控制器響應(yīng)于所述第一狀態(tài)位和所述第二狀態(tài)位二者均被設(shè)置成所述活躍位,操作用于計(jì)算在所述第一計(jì)數(shù)器值與所述第二計(jì)數(shù)器值之間的差值的所述絕對(duì)值并且比較所述絕對(duì)值與所述計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)。
18.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述順序控制器操作用于比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)還包括: 所述順序控制器操作用于比較所述絕對(duì)值與計(jì)數(shù)器中點(diǎn)值以獨(dú)立于與所述第二計(jì)數(shù)器值比較的所述第一計(jì)數(shù)器值的序列順序確定所述第一計(jì)數(shù)器值是否在所述第二計(jì)數(shù)器值之前被存儲(chǔ)。`
【文檔編號(hào)】G06F9/32GK103870245SQ201310576882
【公開(kāi)日】2014年6月18日 申請(qǐng)日期:2013年11月18日 優(yōu)先權(quán)日:2012年12月18日
【發(fā)明者】R·M·丁克簡(jiǎn), L·R·帕克, G·C·阮, B·N·昂 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司