国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于在硬件中跨多個處理單元/處理器劃分并同步處理任務(wù)的系統(tǒng)和方法

      文檔序號:10573916閱讀:243來源:國知局
      用于在硬件中跨多個處理單元/處理器劃分并同步處理任務(wù)的系統(tǒng)和方法
      【專利摘要】本申請公開在硬件中的共享計數(shù)器資源,諸如寄存器,其中該寄存器表示在命令隊列中存在多少可供一個或多個處理單元訪問的自由空間。在處理單元讀出“預(yù)約”寄存器時,硬件自動使可用自由空間遞減預(yù)配置量(例如,1)并且緊在讀出/預(yù)約之前返回自由空間的值。如果讀出值返回0(或小于預(yù)配置量的數(shù)值),則沒有足夠的自由空間來滿足請求。在沒有足夠空間來滿足請求的情況下,預(yù)約寄存器可以被配置成預(yù)約無論多少可用空間或根本不預(yù)約任何空間。任何數(shù)量的處理單元可以讀出這些寄存器,并且描述在其中輸入隊列和輸出隊列可以經(jīng)由各種處理單元可訪問的多種情形。
      【專利說明】
      用于在硬件中跨多個處理單元/處理器劃分并同步處理任務(wù) 的系統(tǒng)和方法
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明大體涉及負(fù)荷分配的領(lǐng)域。更具體地,本發(fā)明涉及用于在硬件中跨多個處 理單元/處理器劃分并同步處理任務(wù)的系統(tǒng)和方法。
      【背景技術(shù)】
      [0002] 在現(xiàn)有技術(shù)中,確定發(fā)出什么命令的(處理單元的)處理負(fù)荷是相對高的。確定發(fā) 出什么命令的處理負(fù)荷可以被部分或完全地負(fù)荷分流(offload)到多個其它處理單元(例 如,處理器、處理器核或定制的處理電路)。不過,這種負(fù)荷分配導(dǎo)致命令要從多個處理單元 確定。確保模塊命令隊列(FIFO)不溢出變得具有挑戰(zhàn)性,因此,需要在多個處理單元之間同 步。在現(xiàn)有技術(shù)中,使用軟件技術(shù)來執(zhí)行此同步,該軟件技術(shù)諸如至存儲器中的共享可用空 間計數(shù)變量的信號量(semaphore)和互斥(mutex)。不過,這花費另外的處理時間,使得該過 程不是最優(yōu)的。為進一步和解該問題,有可能需要將從命令發(fā)出到執(zhí)行的時間保持最小化, 這往往使命令隊列保持淺的。
      [0003] 本發(fā)明的實施例為對現(xiàn)有系統(tǒng)和方法的改進。

      【發(fā)明內(nèi)容】

      [0004] 在一個實施例中,本發(fā)明提供用于跨多個處理單元劃分并同步處理任務(wù)的系統(tǒng), 其包括:在硬件中實現(xiàn)的輸入隊列;在硬件中實現(xiàn)的輸出隊列;對輸入隊列和輸出隊列具有 訪問權(quán)的第一處理單元;與第一處理單元通信的至少一個第二處理單元;在硬件中實現(xiàn)的 存儲表示在命令隊列中的可用空間的值的預(yù)約寄存器,該預(yù)約寄存器可由第一處理單元和 至少第二處理單元兩者訪問;存儲指令的計算機存儲裝置,該指令在由至少一個第二處理 單元執(zhí)行時,以:訪問該預(yù)約寄存器并讀出存儲的值;確定該讀出值何時指示輸入隊列中的 可用空間以用于第一處理單元發(fā)出命令;通知第一處理單元向該輸入隊列發(fā)出命令;并且 其中第一處理單元接收來自至少第二處理單元的關(guān)于發(fā)出命令的通知、向輸入隊列發(fā)出命 令,并且接收來自輸出隊列的對應(yīng)于該命令的響應(yīng)。
      [0005] 在另一實施例中,本發(fā)明提供用于跨多個處理單元劃分并同步處理任務(wù)的系統(tǒng), 其包括:在硬件中實現(xiàn)的輸入隊列;在硬件中實現(xiàn)的輸出隊列;對輸入隊列和輸出隊列具有 訪問權(quán)的第一處理單元;與輸入隊列通信的至少一個第二處理單元;在硬件中實現(xiàn)的存儲 表示在命令隊列中的可用空間的值的預(yù)約寄存器,該預(yù)約寄存器可由第一處理單元和至少 第二處理單元兩者訪問;存儲指令的計算機存儲裝置,該指令在由至少一個第二處理單元 執(zhí)行時,以:訪問預(yù)約寄存器并讀出存儲的值;確定該讀出值何時指示輸入隊列中的可用空 間以用于第一處理單元發(fā)出命令;向輸入隊列發(fā)出命令;并且其中第一處理單元接收來自 輸出隊列的對應(yīng)于該命令的響應(yīng)。
      [0006] 在另一實施例中,本發(fā)明提供用于跨多個處理單元劃分并同步處理任務(wù)的系統(tǒng), 其包括:在硬件中實現(xiàn)的輸入隊列;在硬件中實現(xiàn)的輸出隊列;對輸入隊列和輸出隊列具有 訪問權(quán)的第一處理單元;與輸入隊列和輸出隊列通信的至少一個第二處理單元;在硬件中 實現(xiàn)的存儲表示在命令隊列中的可用空間的值的預(yù)約寄存器,該預(yù)約寄存器可由第一處理 單元和至少第二處理單元兩者訪問;存儲指令的計算機存儲裝置,該指令在由至少一個第 二處理單元執(zhí)行時,以:訪問預(yù)約寄存器并讀出存儲的值;確定該讀出值何時指示輸入隊列 中的可用空間以用于第一處理單元發(fā)出命令;向輸入隊列發(fā)出命令;并且接收來自輸出隊 列的對應(yīng)于該命令的響應(yīng)。
      【附圖說明】
      [0007] 根據(jù)一個或多個不同的示例,本公開參考附圖來詳細(xì)描述。僅為圖示說明的目的 來提供附圖,并且該附圖只描繪本公開的示例。這些附圖被提供以有利于讀者理解本公開, 并且不應(yīng)被視為對本公開的廣度、范圍或適用性的限制。應(yīng)指出,為清楚和易于圖示說明起 見,這些附圖不必要按比例繪制。
      [0008] 圖1繪出可由多個處理單元訪問本發(fā)明的"預(yù)約"寄存器的非限制性示例。
      [0009] 圖2繪出可由多個處理器訪問本發(fā)明的預(yù)約寄存器的另一非限制性示例。
      [0010] 圖3至圖5繪出用于跨多個處理單元劃分和同步處理任務(wù)的本發(fā)明的各種實施例。
      【具體實施方式】
      [0011] 雖然本發(fā)明在優(yōu)選實施例中被圖示說明和描述,但是本發(fā)明可在許多不同的配置 中實施。本發(fā)明的優(yōu)選實施例在附圖中被繪出并且將在本文中詳細(xì)描述,通過理解,本公開 應(yīng)視為本發(fā)明的原理及其構(gòu)造的相關(guān)功能描述的示例,并不旨在將本發(fā)明限制到所示出的 實施例。本領(lǐng)域的技術(shù)人員將設(shè)想在本發(fā)明的范圍內(nèi)的許多其它可能的變型。
      [0012] 應(yīng)指出,在本描述中,參考"一個實施例"或"實施例"意指被參考的特征被包含在 本發(fā)明的至少一個實施例中。另外,在本描述中單獨參考"一個實施例"不一定指相同的實 施例;然而,正如對于本領(lǐng)域的普通技術(shù)人員來說顯而易見的是,此類實施例不是互相排斥 的,除非另有說明。因此,本發(fā)明可以包含本文描述的實施例的任何種類的組合和/或集成。
      [0013] 本發(fā)明考慮軟件必須向硬件模塊發(fā)出命令的情況。在此情況下,確定發(fā)出什么命 令的處理負(fù)荷是相對高的,并且也可能存在必要的附加后臺任務(wù)。確定發(fā)出什么命令的處 理負(fù)荷可以被部分或完全地負(fù)荷分流到多個其它處理單元(例如,處理器、處理器核或定制 的處理電路)。然而,這種負(fù)荷分配導(dǎo)致命令要從多個處理單元確定。確保模塊命令隊列 (FIFO)不溢出變得具有挑戰(zhàn)性,因此,需要在多個處理單元之間同步。如上所述,在現(xiàn)有技 術(shù)中,該同步使用軟件技術(shù)來執(zhí)行,該軟件技術(shù)諸如至共享可用空間計數(shù)變量的信號量和 互斥。不過,這花費額外的處理時間。為進一步和解該問題,有可能需要使從命令發(fā)出到執(zhí) 行的時間保持最小化,這往往使命令隊列保持淺的。
      [0014] 本發(fā)明提供在硬件中的共享計數(shù)器資源(例如,寄存器),其表示在命令隊列中存 在多少可供一個或多個處理單元訪問的自由空間。圖1繪出可由多個處理單元1到n 104-108訪問本發(fā)明的"預(yù)約(reservation)"寄存器102的非限制性示例。應(yīng)指出,雖然本文的論 述參考處理單元,但是本發(fā)明的教導(dǎo)也等同適用于不同的處理器。例如,圖2繪出可由多個 處理器1到n 204-208訪問本發(fā)明的預(yù)約寄存器202的另一非限制性示例。
      [0015] 在處理單元讀出"預(yù)約"寄存器時,硬件使可用的自由空間自動遞減預(yù)配置量(例 如,1)并且緊跟在讀出/預(yù)約之前返回該自由空間的值。如果該讀出返回〇(或小于預(yù)配置量 的數(shù)值),則沒有足夠的自由空間來滿足請求。在沒有足夠空間來滿足請求的情況下,該預(yù) 約寄存器可以被配置成預(yù)約無論多少可用的空間或者根本不預(yù)約任何空間。有時可以存在 在不實際進行預(yù)約的情況下來測試預(yù)約是否成功,即在預(yù)約寄存器處的"窺視"的需要。該 窺視可以經(jīng)由替代的鏡像的預(yù)約寄存器來實現(xiàn),該鏡像的預(yù)約寄存器對能夠由處理單元讀 出的預(yù)約寄存器的值進行鏡像,但是實際上不預(yù)約,由此該替代寄存器不自動更改可用的 自由空間。任何數(shù)量的處理單元可以讀出這些寄存器(通過使用針對多個處理單元的標(biāo)準(zhǔn) 仲裁,硬件內(nèi)部地同步這些讀出以確保它們不重疊)。因此,存在不"過度預(yù)訂"命令隊列的 保障。在命令被實際發(fā)給預(yù)約之后的隊列時,該命令可以保留在那里直到耗用這些命令的 硬件模塊或?qū)嶓w能夠處理它們,將它們從該隊列移出。在從該隊列移出這些命令后,硬件將 自動遞增該預(yù)約自由空間。該預(yù)約技術(shù)允許在隊列中進行空間預(yù)約和實際向該隊列發(fā)出命 令之間的固定或可變時間延遲,并且允許不同的處理單元進行(多個)判定并隨后發(fā)出(多 個)命令。預(yù)約自由空間不同于命令隊列中的實際實時自由空間,因為空間在被發(fā)出的命令 實際占用之前"被預(yù)約"。
      [0016] 因此,軟件只需要讀出寄存器并檢查進行預(yù)約的返回值并知道該預(yù)約是否成功。 在多個處理單元之間的所有仲裁和互相排斥的任務(wù)在硬件中被處理。不需要處理在共享存 儲器中或以其他方式的共享的可用空間計數(shù)變量的同步化的多個處理單元的軟件開銷。
      [0017] 在一個實施例中,存在連接至模塊的命令隊列的單個處理單元。具有負(fù)責(zé)該硬件 模塊發(fā)出命令并處理來自該模塊的響應(yīng)的單個點(諸如至存儲處理單元的控制接口)是期 望的。然而,確定發(fā)出所有命令或命令的子集的處理負(fù)荷可能是高的。該處理負(fù)荷被置于獨 立的處理單元上。兩個處理單元以某種有效的方式通信(諸如通過共享的存儲器等)。該處 理負(fù)荷的部分要知道存在用于待發(fā)出命令的實際可用空間,因此,除了第一處理單元具有 對可用自由命令隊列空間的可視性以外,該第二處理單元也必須具有可視性。第二處理單 元可以直接發(fā)出其命令或可以向第一處理單元返回其與第一處理單元能夠以其自身發(fā)出 的任何命令排序的判定,但是甚至在此情形中,第一處理單元將不得不為其自身能夠發(fā)出 的那些命令預(yù)約其自己的空間。因此,確定命令的任何處理單元必須在發(fā)出命令或通知判 定的另一處理單元發(fā)出命令之前,首先進行預(yù)約。在命令從供耗用的隊列被實際移出時,該 硬件隨后將在沒有軟件干預(yù)的情況下自動更新預(yù)約的自由空間。在空間被預(yù)約但是以后確 定不使用該空間的情況下(例如,在空間已被預(yù)約后判定不發(fā)出命令),可存在可用于(經(jīng)由 另一寄存器操作)處理單元向池返回預(yù)約的空間使其再次變?yōu)榭捎每臻g的機制。
      [0018] 該機制不需要是"命令"隊列,而是在多個處理單元之間共享的任何資源。例如,該 機制可以用于實現(xiàn)基于硬件的互斥或基于硬件的信號量。該共享資源自身可以在硬件、軟 件或這兩者的組合中實現(xiàn)。雖然在所論述的實施例中的預(yù)約一次預(yù)約隊列中的一項,但這 是沒有必要的,該預(yù)約可以為一些其它數(shù)量(例如,多個命令、被命令耗用的隊列空間的量 或與共享資源相關(guān)的一些其它數(shù)量)。此類其它數(shù)量在本發(fā)明的精神范圍內(nèi)。
      [0019] 在預(yù)約失敗的情況下,可行的是,硬件在內(nèi)部自動地對嘗試進行排隊(例如,標(biāo)記) 并在晚些的時間點處向請求的處理器單元生成中斷以指示其請求隨后是成功的,從而減輕 請求的處理單元不得不輪詢待可用的空間。
      [0020] 在一個實施例中,如圖3所示,本發(fā)明提供用于跨多個處理單元劃分并同步處理任 務(wù)的系統(tǒng),其包括:在硬件314中實現(xiàn)的輸入隊列308;也在硬件314中實現(xiàn)的輸出隊列312; 第一處理單元302,其具有對輸入隊列308 (通過通信鏈路316)和輸出隊列312 (通過通信鏈 路320)的訪問權(quán);與第一處理單元302通信的一個或多個附加的處理單元(例如,處理單元# 2-304至處理單元#n-306)(該通信通過在處理單元#1 302和處理單元#2 304之間的處理器 間通信鏈路326描繪以及通過在處理單元#1 302和處理單元#n 306之間的處理器間通信鏈 路328描繪)(雖然圖3繪出在兩個處理單元之間的簡單化鏈路326或328,但應(yīng)指出,可沿該 路徑設(shè)置其它的部件,其中此類部件不應(yīng)用于限制本發(fā)明的范圍);在硬件314中實現(xiàn)的預(yù) 約寄存器310,其存儲表示輸入隊列308中的可用空間的值,預(yù)約寄存器310可以由第一處理 單元302(通過通信鏈路318)和一個或多個附加的處理單元(例如,處理單元#2-304至處理 單元#n-306)(例如,通過通信鏈路322和324)兩者訪問;存儲指令的計算機存儲裝置,在該 指令由附加的處理單元(例如,處理單元#2-304至處理單元#n-306)中的一個處理單元執(zhí)行 時,以:訪問預(yù)約寄存器310并讀出存儲的值;存儲的值在硬件中自動遞減1以與該讀出相呼 應(yīng)以進行空間預(yù)約300;確定該讀出值何時指示輸入隊列308中的可用空間用于第一處理單 元302發(fā)出命令;通知第一處理單元302向輸入隊列308發(fā)出命令;并且其中,第一處理單元 302接收來自附加的處理單元(例如,處理單元#2-304至處理單元#n-306)中的一個處理單 元關(guān)于發(fā)出命令的通知、向輸入隊列308發(fā)出該命令并從輸出隊列312接收對應(yīng)于該命令的 響應(yīng)。在第一處理單元302判定不發(fā)出命令的情況下(例如,覆寫(override)發(fā)出命令的判 定),通過向被描繪為返回機制334的預(yù)約返回寄存器寫入希望返回的空間的量(即,使預(yù)約 寄存器310遞增這個量),該附加的處理單元將返回先前為該命令預(yù)約的空間。也如圖3所 示,另一附加的處理單元330從輸入隊列308提取該命令,使得該預(yù)約寄存器在硬件332中使 其可用空間自動增加一定的空間量,該空間量基于從輸入隊列移出命令而現(xiàn)在創(chuàng)建。附加 的處理單元330接著執(zhí)行該命令并接著通知輸出隊列312其隨后發(fā)出對第一處理單元302的 響應(yīng)的執(zhí)行。在一個非限制性示例中,該系統(tǒng)被實現(xiàn)為存儲區(qū)域網(wǎng)絡(luò)(SAN)控制器的部分, 從而提供用于該存儲控制器向存儲介質(zhì)裝置發(fā)出的命令的命令隊列。在另一非限制性示例 中,該系統(tǒng)被實現(xiàn)為網(wǎng)絡(luò)附接存儲(network attached storage)(NAS)控制器的部分,從而 提供用于該存儲控制器向存儲介質(zhì)裝置發(fā)出的命令的命令隊列。
      [0021]在一個實施例中,如圖4所示,本發(fā)明提供用于跨多個處理單元劃分并同步處理任 務(wù)的系統(tǒng),其包括:在硬件414中實現(xiàn)的輸入隊列408;也在硬件414中實現(xiàn)的輸出隊列412; 第一處理單元402,其具有對輸入隊列408(通過通信鏈路416)和輸出隊列412(通過通信鏈 路420)的訪問權(quán);可選地與第一處理單元402通信(通過在處理單元#1 402和處理單元#2 404之間的處理器間通信鏈路426描繪以及通過在處理單元#1 402和處理單元#n 406之間 的處理器間通信鏈路428描繪)(雖然圖4繪出在兩個處理單元之間的簡單化鏈路426或428, 但應(yīng)指出,可沿該路徑設(shè)置其它的部件,其中此類部件不應(yīng)用于限制本發(fā)明的范圍)并且對 輸入隊列408(通過通信鏈路436和438)具有訪問權(quán)的一個或多個附加的處理單元(例如,處 理單元#2-404至處理單元#n-406);在硬件414中實現(xiàn)的預(yù)約寄存器410,其存儲表示輸入隊 列408中的可用空間的值,預(yù)約寄存器410可由第一處理單元402(通過通信鏈路418)和一個 或多個附加的處理單元(例如,處理單元#2-404至處理單元#n-406)(例如,通過通信鏈路 422和424)兩者訪問;存儲指令的計算機存儲裝置,在該指令由附加的處理單元(例如,處理 單元#2-404至處理單元#n-406)中的一個處理單元執(zhí)行時,以:訪問預(yù)約寄存器410并讀出 存儲的值;該存儲的值在硬件中自動遞減1以與該讀出相呼應(yīng)以進行空間預(yù)約400;確定該 讀出值何時指示輸入隊列408中的可用空間以發(fā)出命令;向輸入隊列408發(fā)出該命令(這可 以可選地代表第一處理單元402完成或該第一處理單元可以自身通過通信鏈路416發(fā)出該 命令(或另外的命令)到輸入隊列408);并且其中,第一處理單元402從輸出隊列412接收對 應(yīng)于該命令的響應(yīng)。在附加的處理單元(例如,處理單元#2-404至處理單元#n-406)在預(yù)約 空間后判定不發(fā)出命令的情況下,通過向被描繪為返回機制434的預(yù)約返回寄存器寫入希 望返回的空間的量(即,使預(yù)約寄存器410遞增這個量),該附加的處理單元將返回先前為命 令預(yù)約的空間。也如圖4所示,另一附加的處理單元430從輸入隊列408提取該命令,使得該 預(yù)約寄存器在硬件432中使其可用空間自動增加一定的空間量,該空間量基于從該輸入隊 列移出該命令而現(xiàn)在創(chuàng)建。另外的處理單元430執(zhí)行該命令并接著通知輸出隊列412其隨后 發(fā)出對第一處理單元402的響應(yīng)的執(zhí)行。在一個非限制性示例中,該系統(tǒng)被實施為存儲區(qū)域 網(wǎng)絡(luò)(SAN)控制器的部分。在另一非限制性示例中,該系統(tǒng)被實施為網(wǎng)絡(luò)附接存儲(NAS)控 制器的部分。
      [0022]在一個實施例中,如圖5所示,本發(fā)明提供用于跨多個處理單元劃分并同步處理任 務(wù)的系統(tǒng),其包括:在硬件514中實現(xiàn)的輸入隊列508;也在硬件514中實現(xiàn)的輸出隊列512; 第一處理單元502,其具有對輸入隊列508 (通過通信鏈路516)和輸出隊列512 (通過通信鏈 路520)的訪問權(quán);一個或多個附加的處理單元(例如,處理單元#2-504至處理單元#n-506), 其可選地與第一處理單元502通信(通過在處理單元#1 502和處理單元#2 504之間的處理 器間通信鏈路526描繪以及通過在處理單元#1 502和處理單元#n 506之間的處理器間通信 鏈路528描繪)(雖然圖5繪出在兩個處理單元之間的簡單化鏈路526或528,但應(yīng)指出,可沿 該路徑設(shè)置其它的部件,其中此類部件不應(yīng)用于限制本發(fā)明的范圍)并具有對輸入隊列508 (通過通信鏈路536和538)和輸出隊列512(通過通信鏈路540和542)的訪問權(quán);在硬件514中 實現(xiàn)的預(yù)約寄存器510,其存儲表示輸入隊列508中的可用空間的值,預(yù)約寄存器510由第一 處理單元502(通過通信鏈路518)和一個或多個附加的處理單元(例如,處理單元#2-504至 處理單元如-506)(例如,通過通信鏈路522和524)兩者可訪問;存儲指令的計算機存儲裝 置,在該指令由附加的處理單元(例如,處理單元#2-504至處理單元#n-506)中的一個處理 單元執(zhí)行時,以:訪問預(yù)約寄存器510并讀出存儲的值;該存儲的值在硬件中自動遞減1以與 該讀出相呼應(yīng)以進行空間預(yù)約500;確定該讀出值何時指示輸入隊列508中的可用空間以發(fā) 出命令;向輸入隊列508發(fā)出命令(這可選地代表第一處理單元502完成或該第一處理單元 可以自身通過通信鏈路516發(fā)出該命令(或另外的命令)到輸入隊列508中);并且其中,第一 處理單元502或一個或多個附加的處理單元504或506(通過通信鏈路520、540或542)從輸出 隊列512接收對應(yīng)于該命令的響應(yīng)。在附加的處理單元(例如,處理單元#2-504至處理單元# n-506)判定在預(yù)約空間后不發(fā)出命令的情況下,通過向被描繪為返回機制534的預(yù)約返回 寄存器寫入希望返回的空間的量(即,預(yù)約寄存器510遞增這個量),該附加的處理單元將返 回先前為命令預(yù)約的空間。也如圖5所示,另一附加的處理單元530從輸入隊列508提取該命 令,使得該預(yù)約寄存器在硬件532中使其可用空間自動增加一定的空間量,該空間量基于從 該輸入隊列移出該命令而現(xiàn)在形成。附加的處理單元530接著執(zhí)行該命令并接著通知輸出 隊列512其隨后發(fā)出對第一處理單元502的響應(yīng)的執(zhí)行。在一個非限制性示例中,該系統(tǒng)被 實施為存儲區(qū)域網(wǎng)絡(luò)(SAN)控制器的部分。在另一非限制性示例中,該系統(tǒng)被實施為網(wǎng)絡(luò)附 接存儲(NAS)控制器的部分。
      [0023] 上述特征和應(yīng)用可以被實施為軟件過程,所述軟件過程被指定為在計算機可讀存 儲介質(zhì)(也被稱為計算機可讀介質(zhì))上記錄的一組指令。在這些指令由一個或多個處理單元 (例如,一個或多個處理器、處理器核或其它處理單元)執(zhí)行時,這些指令使得該(多個)處理 單元執(zhí)行在該指令中指示的動作。在本公開的范圍內(nèi)的實施例也可以包含有形和/或非暫 時性計算機可讀存儲介質(zhì),用于攜帶或具有在其上存儲的計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)。 此類非暫時性計算機可讀存儲介質(zhì)可以是可以由通用或?qū)S糜嬎銠C(包括任何專用處理器 的功能設(shè)計)訪問的任何可用介質(zhì)。通過示例并且非限制性,此類非暫時性計算機可讀介質(zhì) 可以包含閃存存儲器、1^11、1?(通、££?1?011丄0-1?(通或其它光盤存儲裝置、磁盤存儲裝置或其它 磁存儲設(shè)備,或可以用于以計算機可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)或處理器芯片設(shè)計的形式攜帶或 存儲期望的程序代碼裝置的任何其它媒介。該計算機可讀介質(zhì)不包括以無線方式或通過有 線連接傳送的載波和電信號。
      [0024] 計算機可執(zhí)行指令包含例如,使通用計算機、專用計算機或?qū)S锰幚硌b置執(zhí)行特 定功能或功能組的指令和數(shù)據(jù)。計算機可執(zhí)行指令也包含由處于獨立或網(wǎng)絡(luò)環(huán)境中的計算 機執(zhí)行的程序模塊。通常,程序模塊包含例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)、對象和執(zhí)行具體任務(wù) 或?qū)崿F(xiàn)具體抽象數(shù)據(jù)類型的在專用處理器的設(shè)計中固有的函數(shù)等。計算機可執(zhí)行指令、關(guān) 聯(lián)數(shù)據(jù)結(jié)構(gòu)和程序模塊表示用于執(zhí)行本文公開的方法的步驟的程序代碼裝置的示例。此類 可執(zhí)行指令或關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu)的特定順序表示用于實現(xiàn)在此類步驟中描述的功能的對應(yīng)行 為的示例。
      [0025] 計算機程序(也被稱為程序、軟件、軟件應(yīng)用、腳本或代碼)可以以任何形式的編程 語言編寫,該編程語言包含編譯或解釋性語言、說明性或過程語言,并且該計算機程序可以 以包含作為獨立程序或作為模塊、組件、子例程、對象或適合于在計算環(huán)境中使用的其它單 元的任何形式部署。計算機程序可以對應(yīng)于文件系統(tǒng)中的文件但不必一定對應(yīng)。程序可以 被存儲在保持其它程序或數(shù)據(jù)(例如,在標(biāo)記語言文檔中存儲的一個或多個腳本)的文件的 部分中、專用于正在討論的程序的單個文件中或多個協(xié)調(diào)文件(例如,存儲一個或多個模 塊、子程序或部分代碼的文件)中。計算機程序可以被部署為在一個計算機或多個計算機上 執(zhí)行,該一個計算機或多個計算機位于一個地點或分布在多個地點并通過通信網(wǎng)絡(luò)互連。
      [0026] 以上描述的這些功能可以在數(shù)字電子電路、計算機軟件、固件或硬件中實現(xiàn)。該技 術(shù)可以使用一個或多個計算機程序產(chǎn)品來實現(xiàn)。過程和邏輯流程可以由一個或多個可編程 處理器和由一個或多個可編程邏輯電路執(zhí)行。通用和專用計算裝置和存儲設(shè)備可以通過通 信網(wǎng)絡(luò)互連。
      [0027] 一些實施方式包含電子部件,例如微處理器、在機器可讀或計算機可讀介質(zhì)(可替 代地被稱為計算機可讀存儲介質(zhì)、機器可讀介質(zhì)或機器可讀存儲介質(zhì))中存儲計算機程序 指令的存儲裝置和存儲器。此類計算機可讀介質(zhì)的一些示例包含RAM、R0M、只讀光盤(CD-R0M)、可刻錄光盤(CD-R)、可重寫光盤(CD-RW)、只讀數(shù)字多功能盤(例如,DVD-ROM、雙層 DVD-ROM)、各種可刻錄/可重寫DVD (例如,DVD-RAM、DVD-RW、DVD+RW等)、閃存存儲器(例如, SD卡、迷你 SD卡、微型SD卡等)、磁或固態(tài)硬盤驅(qū)動器、只讀且可刻錄Blu-Ray?光盤、超密 度光盤、任何其它光學(xué)或磁性介質(zhì)以及軟盤。計算機可讀介質(zhì)可以存儲可由至少一個處理 單元執(zhí)行并包含用于執(zhí)行各種操作的指令集的計算機程序。計算機程序或程序代碼的示例 包含例如由編譯器產(chǎn)生的機器代碼以及包含更高級別的代碼的文件,所述更高級別的代碼 使用解釋器通過計算機、電子部件或微處理器來執(zhí)行。
      [0028] 雖然上面的討論主要涉及執(zhí)行軟件的微處理器或多核處理器,但是一些實施方式 由一個或多個集成電路,例如專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)來執(zhí)行。在 一些實施方式中,此類集成電路執(zhí)行被存儲在該電路自身上/內(nèi)的指令。在一些實施方式 中,諸如FPGA、軟件可以被用于描述硬件電路,其示例為FPGA編程文件。此類FPGA編程文件 也可以包含計算機程序、機器代碼、微代碼、固件和其它軟件。FPGA編程文件可以被存儲在 FPGA、ASIC、計算機可讀存儲介質(zhì)、機器可讀介質(zhì)或機器可讀存儲介質(zhì)內(nèi)。
      [0029] 如在本說明書和本申請的任何權(quán)利要求中所使用,術(shù)語"計算機"、"服務(wù)器"、"處 理器"和"存儲器"全部是指電子或其它技術(shù)裝置。這些術(shù)語排除人或人群。出于本說明書的 目的,術(shù)語顯示或展示意指在電子裝置上顯示。如在本說明書和本申請的任何權(quán)利要求中 所使用的,術(shù)語"計算機可讀媒介"和"計算機可讀介質(zhì)"完全限制到以計算機可讀的形式存 儲信息的有形物理對象。這些術(shù)語排除任何無線信號、有線下載信號和任何其它短暫信號。 [0030]本領(lǐng)域中的技術(shù)人員應(yīng)明白,本公開的其它實施例可以在具有許多類型的計算機 系統(tǒng)配置的網(wǎng)絡(luò)計算環(huán)境中實施,該計算機系統(tǒng)配置包含個人計算機、手持式裝置、多處理 器系統(tǒng)、基于ASIC的系統(tǒng)、基于FPGA的系統(tǒng)、基于微處理器的或可編程的消費電子裝置、聯(lián) 網(wǎng)PC、小型計算機、大型計算機等。各實施例也可以在分布式計算環(huán)境中實施,其中各任務(wù) 由本地和遠(yuǎn)程處理裝置來執(zhí)行,該本地和遠(yuǎn)程處理裝置通過通信網(wǎng)絡(luò)(或通過硬連接鏈路、 無線鏈路或通過其組合)被鏈接在一起。在分布式計算環(huán)境中,程序模塊可以被定位在本地 和遠(yuǎn)端存儲器存儲設(shè)備中。
      [0031]應(yīng)理解,在公開的過程中的步驟的任何具體順序或分級結(jié)構(gòu)是示例方法的說明。 應(yīng)理解,基于設(shè)計偏好,在該過程中的步驟的具體順序或分級結(jié)構(gòu)可以被重新安排或所有 示出的步驟被執(zhí)行。該步驟的一些步驟可以同時執(zhí)行。例如,在某些情況下,多任務(wù)和并行 處理可能是有利的。此外,以上示出的各種系統(tǒng)組件的分開不應(yīng)理解為需要此類分開,而應(yīng) 理解為,所述的程序組件和系統(tǒng)通常可以被一起集成到單個軟件產(chǎn)品或封裝到多個軟件產(chǎn) 品中。
      [0032]對這些方面的各種修改將是顯而易見的,并且本文定義的一般原理可以應(yīng)用于其 它方面。因此,隨附的權(quán)利要求并不旨在局限于本文所示的各方面,而是被賦予和書面權(quán)利 要求一致的全部范圍,其中以單數(shù)引用元件不旨在意指"一個并且只有一個"而是應(yīng)為"一 個或多個",除非特別說明。除非另外特別說明,術(shù)語"一些"是指一個或多個。男性代詞(例 如,他的)包括女性和中性(例如,她的和它的),并且反之亦然。如果有的話,標(biāo)題和副標(biāo)題 僅僅出于方便而被使用,并不限制本技術(shù)主題。
      [0033] 短語,例如"方面"并不暗示該方面為本技術(shù)主題必不可少的,或該方面應(yīng)用于本 技術(shù)主題的所有配置。涉及方面的公開可應(yīng)用于所有配置或一個或多個配置。短語,例如方 面可以指一個或多個方面,并且反之亦然。短語,例如"配置"并不暗示此配置為本技術(shù)主題 必不可少的,或此配置應(yīng)用于本技術(shù)主題的所有配置。涉及配置的公開可應(yīng)用于所有配置 或一個或多個配置。短語,例如配置可以指一個或多個配置,并且反之亦然。
      [0034] 上述的各種實施例僅通過圖示說明來提供,并且不應(yīng)解釋為對本公開的范圍的限 制。本領(lǐng)域的技術(shù)人員將很容易認(rèn)識到,可對本文所述的原理進行各種更改和改變,而無需 遵循在本文中示出和描述的示例實施例和應(yīng)用并且不脫離本公開的精神和范圍。
      [0035] 雖然本說明書包含許多【具體實施方式】細(xì)節(jié),但是這些不應(yīng)被解釋為對任何發(fā)明的 范圍或要求保護的范圍的限制,而應(yīng)被解釋為可以針對特定發(fā)明的特定實施例的特征的描 述。在本說明書中在獨立實施例的背景下描述的某些特征也可以結(jié)合單個實施例來實現(xiàn)。 相反,在單個實施例的背景下描述的各種特征也可以在多個實施例中單獨地實現(xiàn)或在任何 合適的子組合中實現(xiàn)。此外,雖然上述的特征可以被描述為在某些組合中起作用并且甚至 初始要求如此,但是在一些情況下,來自要求保護的組合的一個或多個特征可以從該組合 切除,并且要求保護的組合可以針對子組合或子組合的變型。
      [0036] 類似地,雖然各操作在附圖中以特定的順序被描述,但是不應(yīng)理解為要求此類操 作以所示的特定順序或連續(xù)順序執(zhí)行,或全部示出的操作被執(zhí)行,從而實現(xiàn)所期望的結(jié)果。 在某些情況下,多任務(wù)和并行處理可能是有利的。此外,在上述的各實施例中的各種系統(tǒng)組 件的分開不應(yīng)被理解為在所有實施例中需要此類分開,而應(yīng)被理解為,描述的程序組件和 系統(tǒng)通??梢员灰黄鸺稍趩蝹€軟件產(chǎn)品或封裝到多個軟件產(chǎn)品。
      [0037] 如上所述,已描述了本主題的具體實施例,但是其它實施例在隨附權(quán)利要求的范 圍內(nèi)。例如,在權(quán)利要求中描述的動作可以以不同的順序執(zhí)行并且仍然實現(xiàn)所需的結(jié)果。作 為一個示例,在附圖中繪出的過程不一定需要示出的特定順序或連續(xù)順序來實現(xiàn)所需的結(jié) 果。在某些實施方式中,多任務(wù)和并行處理可能是有利的。
      [0038] 結(jié)論
      [0039]在以上實施例中已示出系統(tǒng)和方法。該實施例用于有效實施跨硬件中的多個處理 單元/處理器劃分并同步處理任務(wù)的系統(tǒng)和方法。雖然已經(jīng)示出和描述各種優(yōu)選實施例,但 是應(yīng)理解,并不旨在通過此公開來限制本發(fā)明,而是旨在涵蓋落入本發(fā)明的精神和范圍內(nèi) 的所有修改,如在隨附權(quán)利要求中定義的。例如,本發(fā)明不應(yīng)由軟件/程序、計算環(huán)境或特定 的計算硬件來限制。
      【主權(quán)項】
      1. 一種用于跨多個處理單元劃分并同步處理任務(wù)的系統(tǒng),其包括: 在硬件中實現(xiàn)的輸入隊列; 在硬件中實現(xiàn)的輸出隊列; 對所述輸入隊列和所述輸出隊列具有訪問權(quán)的第一處理單元; 與所述第一處理單元通信的至少一個第二處理單元; 在硬件中實現(xiàn)的預(yù)約寄存器,所述預(yù)約寄存器存儲指示命令隊列中的可用空間的值, 所述預(yù)約寄存器可由所述第一處理單元和所述至少第二處理單元兩者訪問; 存儲指令的計算機存儲裝置,所述指令在由所述至少一個第二處理單元執(zhí)行時: 訪問所述預(yù)約寄存器并讀出所述存儲的值; 確定所述讀出值何時指示在所述輸入隊列中的可用空間以用于所述第一處理單元發(fā) 出命令; 通知所述第一處理單元向所述輸入隊列發(fā)出所述命令;并且 其中所述第一處理單元接收來自所述至少第二處理單元的關(guān)于發(fā)出所述命令的通知、 向所述輸入隊列發(fā)出所述命令并且接收來自所述輸出隊列的對應(yīng)于所述命令的響應(yīng)。2. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述命令隊列是FIFO緩沖器。3. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)是存儲區(qū)域網(wǎng)絡(luò)控制器即SAN控制器的部 分。4. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)是網(wǎng)絡(luò)附接存儲控制器即NAS控制器的部 分。5. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中在向所述至少一個第二處理單元返回所述存儲的 值之前,所述存儲的值被遞減預(yù)定義值。6. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中至少一個第三處理單元執(zhí)行所述命令并通知所述 輸出隊列發(fā)出所述響應(yīng)。7. -種用于跨多個處理單元劃分并同步處理任務(wù)的系統(tǒng),其包括: 在硬件中實現(xiàn)的輸入隊列; 在硬件中實現(xiàn)的輸出隊列; 對所述輸入隊列和所述輸出隊列具有訪問權(quán)的第一處理單元; 與所述輸入隊列通信的至少一個第二處理單元; 在硬件中實現(xiàn)的預(yù)約寄存器,所述預(yù)約寄存器存儲指示命令隊列中的可用空間的值, 所述預(yù)約寄存器可由所述第一處理單元和所述至少第二處理單元兩者訪問; 存儲指令的計算機存儲裝置,所述指令在由所述至少一個第二處理單元執(zhí)行時: 訪問所述預(yù)約寄存器并讀出所述存儲的值; 確定所述讀出值何時指示在所述輸入隊列中的可用空間以用于所述第一處理單元發(fā) 出命令; 向所述輸入隊列發(fā)出所述命令;并且 其中所述第一處理單元接收來自所述輸出隊列的對應(yīng)于所述命令的響應(yīng)。8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述命令隊列是FIFO緩沖器。9. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述系統(tǒng)是存儲區(qū)域網(wǎng)絡(luò)控制器即SAN控制器的部 分。10. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述系統(tǒng)是網(wǎng)絡(luò)附接存儲控制器即NAS控制器的 部分。11. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中在向所述至少一個第二處理單元返回所述存儲的 值之前,所述存儲的值遞減預(yù)定義值。12. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中至少一個第三處理單元執(zhí)行所述命令并通知所述 輸出隊列發(fā)出所述響應(yīng)。13. -種用于跨多個處理單元劃分并同步處理任務(wù)的系統(tǒng),其包括: 在硬件中實現(xiàn)的輸入隊列; 在硬件中實現(xiàn)的輸出隊列; 對所述輸入隊列和所述輸出隊列具有訪問權(quán)的第一處理單元; 與所述輸入隊列和所述輸出隊列通信的至少一個第二處理單元; 在硬件中實現(xiàn)的預(yù)約寄存器,所述預(yù)約寄存器存儲指示命令隊列中的可用空間的值, 所述預(yù)約寄存器可由所述第一處理單元和所述至少第二處理單元兩者訪問; 存儲指令的計算機存儲裝置,所述指令在由所述至少一個第二處理單元執(zhí)行時: 訪問所述預(yù)約寄存器并讀出所述存儲的值; 確定所述讀出值何時指示在所述輸入隊列中的可用空間以用于所述第一處理單元發(fā) 出命令; 向所述輸入隊列發(fā)出所述命令;并且 接收來自所述輸出隊列的對應(yīng)于所述命令的響應(yīng)。14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述命令隊列是FIFO緩沖器。15. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述系統(tǒng)是存儲區(qū)域網(wǎng)絡(luò)控制器即SAN控制器的 任一部分。16. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述系統(tǒng)是網(wǎng)絡(luò)附接存儲控制器即NAS控制器的 部分。17. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中在向所述至少一個第二處理單元返回所述存儲 的值之前,所述存儲的值被遞減預(yù)定義值。18. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中至少一個第三處理單元執(zhí)行所述命令并通知所 述輸出隊列發(fā)出所述響應(yīng)。
      【文檔編號】G06F9/46GK105934744SQ201480073848
      【公開日】2016年9月7日
      【申請日】2014年12月8日
      【發(fā)明人】J·D·比森, J·B·耶茨
      【申請人】并發(fā)投資有限責(zé)任公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1