国产精品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ǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的方法和裝置的制造方法

      文檔序號(hào):10475874閱讀:256來(lái)源:國(guó)知局
      用于為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的方法和裝置的制造方法
      【專利摘要】公開(kāi)了一種實(shí)現(xiàn)用于為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的方法和系統(tǒng),包括:由請(qǐng)求者請(qǐng)求預(yù)取作業(yè);確定可以為請(qǐng)求者預(yù)取作業(yè);搜索該作業(yè)以進(jìn)行預(yù)取;并且將找到的作業(yè)預(yù)取到與請(qǐng)求者相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)取作業(yè)時(shí)隙中的一個(gè)時(shí)隙中。
      【專利說(shuō)明】
      用于為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的方法和裝置
      技術(shù)領(lǐng)域
      [0001]本公開(kāi)內(nèi)容涉及網(wǎng)絡(luò)處理器。更具體地,本發(fā)明針對(duì)為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)。
      【背景技術(shù)】
      [0002]網(wǎng)絡(luò)處理器是專門化處理器,常常以集成電路的形式來(lái)實(shí)現(xiàn),集成電路具有被專門設(shè)計(jì)用于處理通過(guò)網(wǎng)絡(luò)接收到的或傳輸?shù)姆纸M數(shù)據(jù)的特征組。使用例如根據(jù)開(kāi)放系統(tǒng)互聯(lián)(OSI)參考模型設(shè)計(jì)的協(xié)議來(lái)傳輸這種分組數(shù)據(jù)。OSI定義七個(gè)網(wǎng)絡(luò)協(xié)議層(L1-7)。物理層(LI)表示實(shí)際接口,將設(shè)備連接到傳輸介質(zhì)的電學(xué)接口和物理接口。數(shù)據(jù)鏈路層(L2)執(zhí)行數(shù)據(jù)幀。網(wǎng)絡(luò)層(L3)將數(shù)據(jù)格式化成分組。傳輸層(L4)處理端到端傳輸。會(huì)話層(L5)管理在各設(shè)備之間的通信,例如無(wú)論通信是半雙工的還是全雙工的。表示層(L6)管理數(shù)據(jù)格式化和表示,例如語(yǔ)法、控制代碼、特殊圖形和字符集。應(yīng)用層(L7)允許例如通過(guò)文件傳輸、電子郵件和本領(lǐng)域普通技術(shù)人員已知的其他通信的在各用戶之間的通信。
      [0003]網(wǎng)絡(luò)處理器可以針對(duì)上層網(wǎng)絡(luò)協(xié)議(例如L4-L7)調(diào)度作業(yè)(即分組處理操作)并對(duì)作業(yè)進(jìn)行排隊(duì)并且被專門用于計(jì)算密集型任務(wù),例如計(jì)算在分組中的整個(gè)有效載荷上的校驗(yàn)和管理TCP分段緩沖,并且一直在每次連接的基礎(chǔ)上維持多個(gè)計(jì)時(shí)器,允許執(zhí)行對(duì)接收到的分組中的上層網(wǎng)絡(luò)協(xié)議的處理從而以線速轉(zhuǎn)發(fā)分組。線速是通過(guò)其發(fā)送和接收數(shù)據(jù)的網(wǎng)絡(luò)的數(shù)據(jù)傳輸率。通過(guò)處理協(xié)議從而以線速來(lái)轉(zhuǎn)發(fā)分組,網(wǎng)絡(luò)服務(wù)處理器不會(huì)減慢網(wǎng)絡(luò)數(shù)據(jù)傳輸率。
      [0004]為了改進(jìn)網(wǎng)絡(luò)處理器效率,經(jīng)由調(diào)度模塊來(lái)調(diào)度多個(gè)核心以執(zhí)行處理。這種網(wǎng)絡(luò)處理器的示例可以在美國(guó)專利n0.7,895,431中找到,其中調(diào)度模塊被公開(kāi)為分組作業(yè)排序模塊。
      [0005]然而,隨著多個(gè)處理器核心的增大的頻率,在與調(diào)度模塊通信中花費(fèi)的時(shí)間量變成對(duì)性能的阻礙。具體地,在處理器請(qǐng)求作業(yè)與得到該作業(yè)之間的延時(shí)可以很長(zhǎng),從而導(dǎo)致很長(zhǎng)的延時(shí)。
      [0006]因此,在本領(lǐng)域中需要一種提供對(duì)上述問(wèn)題以及額外的優(yōu)點(diǎn)的解決方案的方法和
      目.ο

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

      [0007]在本公開(kāi)內(nèi)容的一個(gè)方面中,公開(kāi)了用于為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的方法和實(shí)現(xiàn)該方法的裝置。在從屬權(quán)利要求中公開(kāi)了額外的方面。
      【附圖說(shuō)明】
      [0008]本文描述的前述方面將通過(guò)參考下面的描述在結(jié)合附圖理解時(shí)變得更顯而易見(jiàn),其中:
      [0009]圖1描繪了根據(jù)本公開(kāi)內(nèi)容的方面的網(wǎng)絡(luò)處理器的概念結(jié)構(gòu);
      [0010]圖2a描繪了根據(jù)本公開(kāi)內(nèi)容的方面的使得能夠進(jìn)行為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的過(guò)程的流程圖的第一部分;以及
      [0011]圖2b描繪了根據(jù)本公開(kāi)內(nèi)容的方面的使得能夠進(jìn)行為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的過(guò)程的流程圖的第二部分。
      [0012]任何未引用的箭頭或雙箭頭線指示在所描繪的實(shí)體之間的可能的信息流。附圖標(biāo)記中的符號(hào)“X”指示附圖的元件的實(shí)例。
      【具體實(shí)施方式】
      [0013]除非另行限定,否則本文使用的所有術(shù)語(yǔ)(包括技術(shù)和科學(xué)術(shù)語(yǔ))具有如本發(fā)明所屬的本領(lǐng)域普通技術(shù)人員通常理解的相同的意義。將進(jìn)一步理解,諸如在常用詞典中定義的術(shù)語(yǔ)應(yīng)當(dāng)被解釋為具有與它們?cè)谙嚓P(guān)領(lǐng)域和本公開(kāi)內(nèi)容的背景下的意義一致的意義。
      [0014]如本文中使用的,單數(shù)形式的“一”、“一個(gè)”和“所述”旨在還包括復(fù)數(shù)形式,除非上下文另行清楚指示。還將理解,術(shù)語(yǔ)“包括(comprise)”、“包括(comprises)”和/或“包括(comprising)”當(dāng)在本說(shuō)明書中使用時(shí)詳細(xì)列舉陳述的特征、整數(shù)、步驟、操作、元件和/或部件的存在,但是不排除一個(gè)多個(gè)其他特征、整數(shù)、步驟、操作、元件、部件和/或其組的存在或增加。術(shù)語(yǔ)“和/或”包括相關(guān)聯(lián)的列出的項(xiàng)中的一個(gè)或多個(gè)的任何和全部組合。
      [0015]各種公開(kāi)的方面可以參考一個(gè)或多個(gè)示例性配置來(lái)說(shuō)明。如本文中所使用的,術(shù)語(yǔ)“示例性”是指“用作示例、實(shí)例或圖示”,并且不一定應(yīng)當(dāng)被理解為超過(guò)本文公開(kāi)的其他配置的優(yōu)選或優(yōu)點(diǎn)。
      [0016]在本文中將參考附圖描述本發(fā)明的各個(gè)方面,除非明確指出,否則附圖是本發(fā)明的概念配置的示意性圖示。提供了本公開(kāi)內(nèi)容的各個(gè)方面以使得本領(lǐng)域普通技術(shù)人員能夠?qū)嵺`本發(fā)明。對(duì)在本公開(kāi)內(nèi)容中呈現(xiàn)的各個(gè)方面的修改對(duì)于本領(lǐng)域普通技術(shù)人員而言將變得顯而易見(jiàn),并且本文公開(kāi)的概念可以被擴(kuò)展到其他應(yīng)用。
      [0017]圖1描繪了網(wǎng)絡(luò)處理器100的概念結(jié)構(gòu)。在物理接口單元102處通過(guò)網(wǎng)絡(luò)(未示出)接收分組。物理接口單元102將分組提供給網(wǎng)絡(luò)處理器接口 104。
      [0018]網(wǎng)絡(luò)處理器接口104通過(guò)檢查包含在所接收的分組中的L2網(wǎng)絡(luò)協(xié)議頭中的各個(gè)字段來(lái)執(zhí)行對(duì)所接收的分組的L2網(wǎng)絡(luò)協(xié)議預(yù)處理。在網(wǎng)絡(luò)處理器接口 104已經(jīng)執(zhí)行了 L2網(wǎng)絡(luò)協(xié)議處理之后,將分組轉(zhuǎn)發(fā)到分組輸入單元106。
      [0019]分組輸入單元106執(zhí)行對(duì)包含在所接收的分組中的L3和L4網(wǎng)絡(luò)協(xié)議頭的預(yù)處理,例如針對(duì)傳輸控制協(xié)議(TCP)/用戶數(shù)據(jù)報(bào)協(xié)議(UDP)的校驗(yàn)和檢查。分組輸入單元106將分組數(shù)據(jù)寫入到L2級(jí)緩存108和/或存儲(chǔ)器112。緩存是被實(shí)施為用于臨時(shí)存儲(chǔ)可能被再次使用的數(shù)據(jù)的存儲(chǔ)器塊的部件,使得能夠更快地服務(wù)針對(duì)該數(shù)據(jù)的未來(lái)請(qǐng)求。如果所請(qǐng)求的數(shù)據(jù)被包含在緩存(緩存命中)中,則該請(qǐng)求能夠通過(guò)簡(jiǎn)單地讀取緩存來(lái)服務(wù),這是比較快的。否則(緩存未命中),數(shù)據(jù)必須從其原始存儲(chǔ)位置被重新計(jì)算或提取,這是比較慢的。存儲(chǔ)器112可以包括用于在臨時(shí)或暫時(shí)的基礎(chǔ)上存儲(chǔ)指令和/或數(shù)據(jù)的(一個(gè)或多個(gè))任何物理設(shè)備。預(yù)見(jiàn)到本領(lǐng)域技術(shù)人員已知的任何類型的存儲(chǔ)器。在一方面中,存儲(chǔ)器112在網(wǎng)絡(luò)處理器100的外部,并且經(jīng)由存儲(chǔ)器控制器110來(lái)存取。分組輸入單元106支持可編程緩沖大小并且能夠?qū)⒎纸M數(shù)據(jù)跨多個(gè)緩沖分布以支持大的分組大小。
      [0020]在分組數(shù)據(jù)上需要的任何額外的作業(yè)(即額外的分組處理的另一操作)由運(yùn)行在一個(gè)或多個(gè)處理器核心114上的軟件實(shí)體來(lái)執(zhí)行。盡管僅僅示出了兩個(gè)處理器核心114_1、114_2,本領(lǐng)域普通技術(shù)人員將理解預(yù)見(jiàn)到其他數(shù)量的核心,包括單個(gè)核心。一個(gè)或多個(gè)處理器核心114中的每個(gè)通信耦合到L2緩存108。
      [0021]作業(yè)由調(diào)度、同步和排序(SSO)單元116調(diào)度。一般地,作業(yè)是要執(zhí)行在某種數(shù)據(jù)上的軟件例程或處理程序。關(guān)于SSO單元116,作業(yè)是到存儲(chǔ)器的指針,其中該存儲(chǔ)器包含特定布局。在一方面中,存儲(chǔ)器包括緩存108和/或存儲(chǔ)器112。在一方面中,布局包括存儲(chǔ)要由運(yùn)行在處理器核心114中的一個(gè)或多個(gè)上的軟件實(shí)體處理的、由運(yùn)行在每個(gè)處理器核心114上的分組輸入單元106或軟件實(shí)體初始地創(chuàng)建的數(shù)據(jù)和/或指令的作業(yè)隊(duì)列條目。在一方面中,作業(yè)隊(duì)列條目還可以包括針對(duì)作業(yè)的元數(shù)據(jù)。在另一方面中,元數(shù)據(jù)可以被存儲(chǔ)在作業(yè)隊(duì)列122中。在一方面中,元數(shù)據(jù)可以包括分組指示符、標(biāo)簽和標(biāo)簽類型。
      [0022]本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,SSO單元116包括除了圖1中明確描繪和描述的硬件單元之外的額外的硬件單元和相關(guān)聯(lián)的文本。因此,對(duì)由SSO單元116執(zhí)行的步驟或動(dòng)作取決于SSO單元116的特定實(shí)現(xiàn)方式而由這種額外的硬件單元中的一個(gè)執(zhí)行。
      [0023]組120包括一個(gè)或多個(gè)作業(yè)隊(duì)列121的匯集。盡管僅僅描繪了兩個(gè)組,本領(lǐng)域普通技術(shù)人員將理解預(yù)見(jiàn)到其他數(shù)量的組。每個(gè)組121與至少一個(gè)處理器核心114相關(guān)聯(lián)。當(dāng)前,當(dāng)運(yùn)行在處理器核心114上的軟件實(shí)體或處理器核心114本身請(qǐng)求作業(yè)時(shí),不需要對(duì)不與處理器核心114相關(guān)聯(lián)的組121進(jìn)行判優(yōu),從而改進(jìn)性能。盡管軟件實(shí)體和處理器核心兩者都可以為請(qǐng)求者,但是為了避免不必要的重復(fù),在本公開(kāi)內(nèi)容的剩余部分中僅僅敘述了軟件實(shí)體。
      [0024]因?yàn)樽鳂I(yè)隊(duì)列的數(shù)量與本公開(kāi)內(nèi)容的主體無(wú)關(guān),所以為簡(jiǎn)單起見(jiàn)僅僅示出了單個(gè)作業(yè)隊(duì)列,即準(zhǔn)入隊(duì)列;然而,除了準(zhǔn)入隊(duì)列121之外,組120還可以包括其他隊(duì)列,例如被取消調(diào)度的隊(duì)列、沖突的隊(duì)列。這種隊(duì)列的作用被公開(kāi)在于2014年2月3日提交的WilsonP.Snyder II等人的題目為 “A METHOD AND AN APPARATUS FOR WORK PACKET QUEUING,SCHEDULING,AND ORDERING WITH CONFLICT QUEUING” 的共同待審的專利申請(qǐng)n0.14/170,955 中。
      [0025]準(zhǔn)入隊(duì)列121可以包括至少一個(gè)條目,其包括作業(yè)以及任選的還包括標(biāo)簽和標(biāo)簽類型以使得能夠?qū)⒆鳂I(yè)調(diào)度給一個(gè)或多個(gè)處理器核心114;因此允許在不同的處理器核心114上執(zhí)行不同的作業(yè)。借助于示例,能夠通過(guò)定義從其處理器核心114將接收作業(yè)的分組來(lái)將分組處理從一個(gè)處理器核心流水線輸送到另一個(gè)處理器核心。
      [0026]標(biāo)簽由SSO單元116用于根據(jù)由處理器核心114選擇的標(biāo)簽和標(biāo)簽類型來(lái)對(duì)所調(diào)度的作業(yè)進(jìn)行排序、調(diào)度和同步。標(biāo)簽允許針對(duì)相同流(從源到目的地)的作業(yè)被排序并被同步。標(biāo)簽類型選擇如何對(duì)作業(yè)進(jìn)行同步和排序。存在三種不同的標(biāo)簽類型。保證是經(jīng)排序的,即保證作業(yè)排序,但不保證基元性。這種標(biāo)簽類型可以在分組處理的消除分段階段期間被使用,使得針對(duì)相同分組流的分段被排序。保證是基元(atomic)的,即保證作業(yè)排序和基元性,換言之,當(dāng)兩個(gè)作業(yè)項(xiàng)具有相同的標(biāo)簽時(shí),作業(yè)必須按順序被處理,其中較早的作業(yè)在較晚的作業(yè)能夠開(kāi)始之前完成。這種標(biāo)簽類型可以被用于IPSec處理以提供在使用相同IPSec隧道的各分組之間的同步。因此,IPSec解密利用基元標(biāo)簽類型來(lái)執(zhí)行。不保證未打上標(biāo)簽,即在處理器核心之中的作業(yè)排序,并且標(biāo)簽與該標(biāo)簽類型不相關(guān)。這種標(biāo)簽可以被用于處理不同的分組流,其將可能具有不同的標(biāo)簽,所以將很可能未相對(duì)于彼此被排序和同步,并且能夠在不同的處理器核心114上完全并行地來(lái)運(yùn)行。
      [0027]作業(yè)隊(duì)列條目可以通過(guò)存儲(chǔ)器112中的硬件單元(例如分組輸入單元116)來(lái)創(chuàng)建。添加作業(yè)請(qǐng)求可以之后經(jīng)由添加作業(yè)隊(duì)列118被提交給SSO單元116。備選地,作業(yè)隊(duì)列條目可以被創(chuàng)建并且添加作業(yè)請(qǐng)求可以由在處理器核心114處運(yùn)行的軟件實(shí)體來(lái)提交。在一方面中,作業(yè)隊(duì)列條目被創(chuàng)建并且添加作業(yè)請(qǐng)求在每個(gè)分組到達(dá)后經(jīng)由添加作業(yè)實(shí)體118來(lái)提交。在其他方面中,作業(yè)隊(duì)列條目可以在完成發(fā)送分組、完成對(duì)來(lái)自分組的數(shù)據(jù)的壓縮/解壓縮和/或本領(lǐng)域普通技術(shù)人員已知的其他事件后被創(chuàng)建。
      [0028]在接收到添加作業(yè)請(qǐng)求后,SSO單元116將作業(yè)、與作業(yè)相關(guān)聯(lián)的標(biāo)簽和標(biāo)簽類型添加到與由添加作業(yè)請(qǐng)求指示的組120相對(duì)應(yīng)的準(zhǔn)入隊(duì)列121中。在一方面中,準(zhǔn)入隊(duì)列121可以充溢到緩存108和/或存儲(chǔ)器112。
      [0029]運(yùn)行在處理器核心114上的軟件實(shí)體可以經(jīng)由作業(yè)時(shí)隙結(jié)構(gòu)126從SSO單元116請(qǐng)求作業(yè)。作業(yè)時(shí)隙結(jié)構(gòu)126包括存儲(chǔ)器。如前述所公開(kāi)的,作業(yè)請(qǐng)求指示與處理器核心114相關(guān)聯(lián)的一個(gè)或多個(gè)組;因此,僅僅那些組需要在其中被判優(yōu)。響應(yīng)于請(qǐng)求,得到作業(yè)判優(yōu)器122在與請(qǐng)求處理器核心114相關(guān)聯(lián)的具有準(zhǔn)入隊(duì)列121中的一個(gè)中的作業(yè)的各組120之中進(jìn)行判優(yōu),評(píng)價(jià)在準(zhǔn)入隊(duì)列121的頂部的作業(yè)的標(biāo)簽,選擇準(zhǔn)入隊(duì)列121中的一個(gè)并將該作業(yè)提供到與如前述詳細(xì)公開(kāi)的請(qǐng)求處理器核心114相對(duì)應(yīng)的作業(yè)時(shí)隙結(jié)構(gòu)126中。額外地,得到作業(yè)判優(yōu)器122將與作業(yè)相關(guān)聯(lián)的標(biāo)簽和標(biāo)簽類型提供給存儲(chǔ)器,其是與存儲(chǔ)器以及網(wǎng)絡(luò)處理器100的其他元件接口連接的標(biāo)簽鏈管理器的部分。預(yù)見(jiàn)到本領(lǐng)域技術(shù)人員已知的任何類型的存儲(chǔ)器。在一方面中,存儲(chǔ)器包括內(nèi)容可尋址存儲(chǔ)器(CAM)。標(biāo)簽鏈管理器124因此通過(guò)保持跟蹤與被提供到作業(yè)時(shí)隙結(jié)構(gòu)126中的作業(yè)相對(duì)應(yīng)的標(biāo)簽來(lái)協(xié)助SSO單元116說(shuō)明歸因于排序或基元要求而不能夠被并行處理的作業(yè);因此,知道每個(gè)處理器核心114正在進(jìn)行什么作業(yè)。
      [0030]作業(yè)時(shí)隙結(jié)構(gòu)126中的每個(gè)包括至少兩個(gè)作業(yè)時(shí)隙126X X。作業(yè)時(shí)隙結(jié)構(gòu)126_1中的作業(yè)時(shí)隙中的一個(gè),例如作業(yè)時(shí)隙126_1_1可以包含當(dāng)前在對(duì)應(yīng)的處理器核心114_1中掛起的作業(yè);作業(yè)時(shí)隙中的另一個(gè),例如作業(yè)時(shí)隙126_1_2可以包含被預(yù)取以用于處理的在當(dāng)前掛起的作業(yè)之后開(kāi)始的作業(yè),即在處理器核心114_1處完成作業(yè)時(shí)隙126_1_2中的作業(yè)。因此,處理器核心114_1可以在完成當(dāng)前掛起的作業(yè)的處理之后立即開(kāi)始處理所預(yù)取的作業(yè);因此避免或消除延時(shí)。盡管僅僅示出了一個(gè)所預(yù)取的作業(yè)時(shí)隙,本領(lǐng)域技術(shù)人員將理解預(yù)見(jiàn)到多于一個(gè)所預(yù)取的作業(yè)時(shí)隙。
      [0031]參考圖2,描繪了根據(jù)本公開(kāi)內(nèi)容的方面的使得能夠進(jìn)行為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的過(guò)程的流程圖的第一部分。為了澄清在概念結(jié)構(gòu)的某些元件之間的關(guān)系和在使得能夠進(jìn)行圖1中描繪的為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的過(guò)程的結(jié)構(gòu)的元件之中的信息流,在圖2的描述中對(duì)圖1的結(jié)構(gòu)元件的引用采用了括號(hào)。
      [0032]在步驟202中,運(yùn)行在處理器核心(114)中的一個(gè)上的軟件實(shí)體準(zhǔn)備好獲得作業(yè)以進(jìn)行處理。運(yùn)行在例如處理器核心(114_1)上的軟件實(shí)體發(fā)出經(jīng)由相關(guān)聯(lián)的作業(yè)時(shí)隙結(jié)構(gòu)(126_1)從SSO單元(116)請(qǐng)求作業(yè)的GET_W0RK。如前述所公開(kāi)的,作業(yè)請(qǐng)求指示與處理器核心(114_1)相關(guān)聯(lián)的一個(gè)或多個(gè)組;因此,僅僅那些組需要在其中被判優(yōu)。在一方面中,GET_WORK請(qǐng)求由到輸入/輸出(I/O)地址的加載指令來(lái)啟動(dòng)。在另一方面中,GET_W0RK請(qǐng)求由存儲(chǔ)指令啟動(dòng)并被返回到由處理器核心(114_1)指定的存儲(chǔ)器位置中。該過(guò)程在步驟204中繼續(xù)。在步驟204中,SSO單元(116)通過(guò)確定所有所預(yù)取的作業(yè)時(shí)隙(121_1_2)是否包括所預(yù)取的作業(yè)來(lái)確定所預(yù)取的作業(yè)是否準(zhǔn)備好用于處理器核心(114_1)。在一方面中,SSO單元(116)檢查所有所預(yù)取的作業(yè)時(shí)隙(126_1_2)的內(nèi)容。在另一方面中,SSO單元(116)針對(duì)所有所預(yù)取的作業(yè)時(shí)隙(126 j_2)檢查指示特定所預(yù)取的作業(yè)時(shí)隙(126_1_2)是為空還是不為空的相關(guān)聯(lián)的位。當(dāng)確定是肯定的,即沒(méi)有所預(yù)取的作業(yè)時(shí)隙(126 j_2)是空的,因此包括所預(yù)取的作業(yè)時(shí),該處理在步驟206中繼續(xù);否則,該處理在步驟208中繼續(xù)。
      [0033]在步驟206中,SSO單元(116)提供所預(yù)取的作業(yè)并且當(dāng)與所預(yù)取的作業(yè)相關(guān)聯(lián)的標(biāo)簽和標(biāo)簽類型存在時(shí)還將來(lái)自所預(yù)取的作業(yè)時(shí)隙(126_1_2)的標(biāo)簽和標(biāo)簽類型提供到作業(yè)時(shí)隙(126_1_1),并且刪除所預(yù)取的作業(yè)并且當(dāng)與所預(yù)取的作業(yè)相關(guān)聯(lián)的標(biāo)簽和標(biāo)簽類型存在時(shí)還刪除來(lái)自所預(yù)取的作業(yè)時(shí)隙(126_1_2)的標(biāo)簽和標(biāo)簽類型。該處理在步驟216中繼續(xù)。
      [0034]在步驟216中,作業(yè)時(shí)隙(126_1_1)將作業(yè)提供給處理器。在一方面中,提供對(duì)應(yīng)于將指令加載到輸入/輸出(I/O)地址。
      [0035]在步驟208中,判優(yōu)器(122)通過(guò)確定與處理器核心(114_1)相關(guān)聯(lián)的組(120)中的任何是否具有準(zhǔn)入隊(duì)列(121)中的作業(yè)并且可以因此在判優(yōu)中進(jìn)行競(jìng)投(即參與到判優(yōu)中)來(lái)搜索作業(yè)。得到作業(yè)判優(yōu)器(122)在僅僅具有準(zhǔn)入隊(duì)列(120)中的作業(yè)的組(120)之中進(jìn)行判優(yōu)以選擇一個(gè)組(120),來(lái)自其的作業(yè)將被提供給作業(yè)時(shí)隙(126_1_1)并且最終被提供給運(yùn)行在處理器核心(114_1)上的軟件實(shí)體。本領(lǐng)域普通技術(shù)人員將理解,可以使用由本領(lǐng)域中已知的判優(yōu)器(122)采用的任何判優(yōu),例如循環(huán)制過(guò)程??梢杂膳袃?yōu)器(122)采用的新穎的判優(yōu)被公開(kāi)在于2014年2月3日提交的Wilson P.Snyder II等人的題目為“A METHODAND AN APPARATUS FOR WORK REQUEST ARBITRAT1N IN A NETWORK PROCESSOR” 的共同待審的專利申請(qǐng)n0.14/171,108中。該處理在步驟210中繼續(xù)。
      [0036]在步驟210中,SSO單元(116)確定判優(yōu)器(122)是否找到針對(duì)處理器核心(114_1)的作業(yè)。當(dāng)確定是肯定的時(shí),該處理在步驟212中繼續(xù);否則,該處理在步驟214中繼續(xù)。
      [0037]在步驟212中,判優(yōu)器(122)經(jīng)由SSO單元(116)提供找到的作業(yè),并且的那個(gè)與找到的作業(yè)相關(guān)聯(lián)的標(biāo)簽和標(biāo)簽類型存在時(shí)還將標(biāo)簽和標(biāo)簽類型提供給作業(yè)時(shí)隙(126
      I)。該處理在步驟216中繼續(xù)。
      [0038]在步驟214中,SSO單元(I16)將未找到作業(yè)的指示符提供給處理器核心(I 14 j)。在其中到輸入/輸出(I/o)地址的加載指令被用于GET_W0RK的方面中,指示沒(méi)有作業(yè)的特定數(shù)據(jù)值被返回到加載指令;否則,標(biāo)志被設(shè)置,處理器核心(114 j)可以在稍后的時(shí)間讀取該標(biāo)志。該處理在步驟218中繼續(xù)。
      [0039]在步驟218中,運(yùn)行在處理器核心(114j)上的軟件實(shí)體確定是否已經(jīng)提供了作業(yè)。當(dāng)確定是否定的時(shí),軟件實(shí)體可以進(jìn)入低功率模式,執(zhí)行非作業(yè)相關(guān)的處理,或者可以發(fā)出另一 GET_W0RK請(qǐng)求,如在步驟202中所公開(kāi)的。非作業(yè)相關(guān)的處理包括未經(jīng)由SSO單元(116)處理的任何處理。借助于示例,這種非作業(yè)可以包括用戶處理、內(nèi)核處理或本領(lǐng)域普通技術(shù)人員已知的其他處理。當(dāng)確定是肯定的時(shí),該處理在步驟220中繼續(xù)。
      [0040]在步驟220中,運(yùn)行在處理器核心(114j)上的軟件實(shí)體處理該作業(yè)。這通常涉及使用作業(yè)時(shí)隙(126_lj)中的作業(yè)作為到存儲(chǔ)在緩存(108)和/或存儲(chǔ)器(112)中的作業(yè)隊(duì)列條目的指針。SSO單元(116)確定地址的范圍,其從要從存儲(chǔ)在緩存(108)中的數(shù)據(jù)結(jié)構(gòu)取消引用和讀取的或從存儲(chǔ)器(112)被加載到緩存(108)中的指針開(kāi)始。
      [0041]當(dāng)作業(yè)隊(duì)列條目首次被存取時(shí),讀取作業(yè)隊(duì)列條目歸因于緩存(108)尚未包含指令和/或數(shù)據(jù)的事實(shí)而是緩慢的,并且存取存儲(chǔ)器(112)因?yàn)榇鎯?chǔ)器(112)可能在物理上遠(yuǎn)離網(wǎng)絡(luò)處理器(100)而是緩慢的。然而,預(yù)取增大了取消引用的地址的范圍指示作業(yè)隊(duì)列條目已經(jīng)處于緩存(108)中的可能性,這得到比如前述所公開(kāi)的存儲(chǔ)器(112)更快的存取。該處理在步驟222中繼續(xù)。
      [0042]在步驟222中,為了加速下一作業(yè),運(yùn)行在處理器核心(114j)上的軟件實(shí)體發(fā)出PRE-FETCH_W0RK,經(jīng)由相關(guān)聯(lián)的作業(yè)時(shí)隙結(jié)構(gòu)(126_1)請(qǐng)求要被預(yù)取到SSO單元(116)的作業(yè),...關(guān)于GET_W0RK,處理器核心還可以為請(qǐng)求者。PRE-FETCH_W0RK請(qǐng)求可以在完成當(dāng)前處理的作業(yè)之后被發(fā)出。在一方面中,PRE-FETCH_W0RK請(qǐng)求為到I/O地址的存儲(chǔ)指令。當(dāng)在下面的步驟224-238中所公開(kāi)的預(yù)取過(guò)程由SSO單元(116)執(zhí)行時(shí),在處理器核心(114_1)處運(yùn)行的軟件實(shí)體可以執(zhí)行先前作業(yè)和/或其他處理,例如處理非作業(yè)相關(guān)任務(wù),如前述所公開(kāi)的;因此,改進(jìn)網(wǎng)絡(luò)處理器(100)的效率。
      [0043]如果在處理器核心(I 14_1)處運(yùn)行的軟件實(shí)體在SSO單元(116)完成預(yù)取過(guò)程之前完成這些其他過(guò)程,則軟件實(shí)體可以發(fā)出另一GET_W0RK請(qǐng)求,如在前述步驟202中所公開(kāi)的。如在流程圖和相關(guān)文本中所公開(kāi)的。所請(qǐng)求的作業(yè)和所請(qǐng)求的預(yù)取作業(yè)由SSO單元
      (116)處理。該處理在步驟224中繼續(xù)。
      [0044]在步驟224中,SSO單元(116)通過(guò)確定所有所預(yù)取的作業(yè)時(shí)隙(121_1_2)是否包括所預(yù)取的作業(yè)來(lái)確定額外的作業(yè)是否被接受并且因此是否為處理器核心(114 j)被預(yù)取。在一方面中,SSO單元(116)檢查所有所預(yù)取的作業(yè)時(shí)隙(126_1_2)的內(nèi)容。在另一方面中,SSO單元(I 16)針對(duì)所有所預(yù)取的作業(yè)時(shí)隙(126_1_2)檢查指示特定所預(yù)取的作業(yè)時(shí)隙(126_1_2)是為空還是不為空的相關(guān)聯(lián)的位。當(dāng)確定是肯定的時(shí),該處理在步驟226中繼續(xù);否則,該處理在步驟228中繼續(xù)。
      [0045]在步驟226中,SSO單元(116)完成當(dāng)前過(guò)程。在另一方面中,SSO單元(116)進(jìn)一步生成錯(cuò)誤中斷。將中斷信號(hào)傳送給在網(wǎng)絡(luò)處理器(100)處的軟件實(shí)體,其記錄錯(cuò)誤以指示編程缺陷。在任一方面中,該處理在步驟202中繼續(xù)。
      [0046]在步驟228中,判優(yōu)器(122)通過(guò)如在前述步驟208中公開(kāi)的相同的過(guò)程來(lái)搜索作業(yè)。該處理在步驟230中繼續(xù)。
      [0047]在步驟230中,SSO單元(116)確定判優(yōu)器(122)是否找到針對(duì)處理器核心(114_1)的作業(yè)。當(dāng)確定是否定的時(shí),該處理在步驟231中繼續(xù);否則,該處理在步驟232中繼續(xù)。
      [0048]在步驟231中,SSO單元(116)完成當(dāng)前過(guò)程。該處理在步驟202中繼續(xù)。
      [0049]在步驟232中,判優(yōu)器(122)經(jīng)由SSO單元(116)將找到的作業(yè)提供給預(yù)取作業(yè)時(shí)隙(126_1_2)。在一方面中,預(yù)取作業(yè)可以包括“標(biāo)簽”。該處理在步驟234中繼續(xù)。
      [°05°]在步驟234中,SSO單元(I 16)確定與找到的作業(yè)相關(guān)聯(lián)的標(biāo)簽是否存在。當(dāng)確定是肯定的時(shí),該處理在步驟236中繼續(xù);否則,該處理在步驟238中繼續(xù)。
      [0051]在步驟236中,SSO單元(I 16)將找到的作業(yè)的標(biāo)簽與針對(duì)為相同的處理器核心(114_1)調(diào)度的另一作業(yè)的標(biāo)簽進(jìn)行比較。當(dāng)所述比較指示所預(yù)取的作業(yè)是基元的或相對(duì)應(yīng)另一作業(yè)被排序時(shí),該處理在步驟238中繼續(xù);否則,該處理在步驟231中繼續(xù)。
      [0052]在步驟238中,當(dāng)已經(jīng)處理了在所預(yù)取的作業(yè)之前的所有作業(yè)時(shí),運(yùn)行在處理器核心上的軟件實(shí)體處理該作業(yè)。SSO單元(116)提供所預(yù)取的作業(yè)并且當(dāng)與所預(yù)取的作業(yè)相關(guān)聯(lián)的標(biāo)簽和標(biāo)簽類型存在時(shí)還將來(lái)自所預(yù)取的作業(yè)時(shí)隙(126_1_2)的標(biāo)簽和標(biāo)簽類型提供到作業(yè)時(shí)隙(126 j_l),并且刪除所預(yù)取的作業(yè)并且當(dāng)與所預(yù)取的作業(yè)相關(guān)聯(lián)的標(biāo)簽和標(biāo)簽類型存在時(shí)還刪除來(lái)自所預(yù)取的作業(yè)時(shí)隙(126_1_2)的標(biāo)簽和標(biāo)簽類型。SSO單元(116)確定地址的范圍,其從要從存儲(chǔ)在緩存(108)中的數(shù)據(jù)結(jié)構(gòu)取消引用和讀取的或從存儲(chǔ)器(112)被加載到緩存(108)中的指針開(kāi)始。
      [0053]在一方面中,地址的范圍是物理地址;在另一方面中,地址的范圍是虛擬存儲(chǔ)器地址,其使用請(qǐng)求GET_W0RK或PRE-FETCHffORK的軟件實(shí)體的虛擬存儲(chǔ)器背景來(lái)轉(zhuǎn)化。這在處理器核心(114_1)沒(méi)有意識(shí)到預(yù)取時(shí)發(fā)生。在一方面中,處理器的PRE-FETCH WORK能夠選擇性地使得能夠進(jìn)行該預(yù)取。該處理在步驟202中繼續(xù)。
      [0054]提供了本公開(kāi)內(nèi)容的各個(gè)方面以使得本領(lǐng)域普通技術(shù)人員能夠?qū)嵺`本發(fā)明。對(duì)這些方面的各種修改對(duì)于本領(lǐng)域普通技術(shù)人員而言將是顯而易見(jiàn)的,并且本文公開(kāi)的概念可以被應(yīng)用到其他方面而不脫離本發(fā)明的精神或范圍。因此,本發(fā)明不旨在被限于本文示出的方面,而是被給予本文中公開(kāi)的原理和新穎特征一致的最廣范圍。
      [0055]因此,借助于示例,本領(lǐng)域普通技術(shù)人員將理解,流程圖不是窮舉的,因?yàn)槟承┎襟E可以被添加或者不是必要的和/或可以基于特定實(shí)現(xiàn)方式來(lái)并行地執(zhí)行。
      [0056]結(jié)合在本公開(kāi)內(nèi)容中對(duì)于本領(lǐng)域普通技術(shù)人員已知或稍后出現(xiàn)的各個(gè)方面描述的各個(gè)說(shuō)明性邏輯塊、模塊、電路和算法步驟的所有結(jié)構(gòu)和功能等價(jià)要件通過(guò)引用明確地并入本文并且旨在被權(quán)利要求書包含。這種說(shuō)明性邏輯塊、模塊、電路和算法步驟可以被實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或兩者的組合。
      [0057]本領(lǐng)域技術(shù)人員將理解,信息和信號(hào)可以使用各種不同的科技和技術(shù)來(lái)表示。例如,可以在上述描述中引用的數(shù)據(jù)、指令、命令、信息、信號(hào)、位、符號(hào)和芯片可以由電壓、電流、電磁波、磁場(chǎng)或粒子、光學(xué)場(chǎng)或粒子、或其任何組合。
      [0058]此外,本文公開(kāi)的內(nèi)容都不旨在專用于公眾,無(wú)論這種公開(kāi)內(nèi)容是否明確記載在權(quán)利要求書中。沒(méi)有權(quán)利要求元件要基于35U.S.C.§1 12第六段的規(guī)定來(lái)理解,除非使用詞語(yǔ)“用于...裝置”來(lái)明確記載元件或者在方法權(quán)利要求的情況下使用詞語(yǔ)“用于...步驟”來(lái)記載元件。
      【主權(quán)項(xiàng)】
      1.一種用于為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的方法,包括: 由請(qǐng)求者請(qǐng)求預(yù)取作業(yè); 確定可以為所述請(qǐng)求者預(yù)取作業(yè); 搜索作業(yè)以進(jìn)行預(yù)??;以及 將所找到的作業(yè)提供到與所述請(qǐng)求者相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)取作業(yè)時(shí)隙中的一個(gè)時(shí)隙中。2.根據(jù)權(quán)利要求1所述的方法,其中由請(qǐng)求者請(qǐng)求預(yù)取作業(yè)包括: 在完成當(dāng)前處理的作業(yè)之前請(qǐng)求預(yù)取作業(yè)。3.根據(jù)權(quán)利要求1所述的方法,其中由請(qǐng)求者請(qǐng)求預(yù)取作業(yè)包括: 由處理器核心請(qǐng)求預(yù)取作業(yè)。4.根據(jù)權(quán)利要求1所述的方法,其中由請(qǐng)求者請(qǐng)求預(yù)取作業(yè)包括: 由運(yùn)行在處理器核心上的軟件實(shí)體請(qǐng)求預(yù)取作業(yè)。5.根據(jù)權(quán)利要求1所述的方法,其中確定可以為所述請(qǐng)求者預(yù)取作業(yè)包括: 確定與所述請(qǐng)求者相關(guān)聯(lián)的所述一個(gè)或多個(gè)預(yù)取作業(yè)時(shí)隙中的至少一個(gè)時(shí)隙不包括作業(yè)。6.根據(jù)權(quán)利要求1所述的方法,還包括: 確定所找到的作業(yè)是否包括標(biāo)簽;以及 當(dāng)所述確定是否定時(shí),處理所找到的作業(yè)。7.根據(jù)權(quán)利要求6所述的方法,其中處理所預(yù)取的作業(yè)包括: 將所預(yù)取的作業(yè)從所預(yù)取的作業(yè)時(shí)隙提供到作業(yè)時(shí)隙; 將所預(yù)取的作業(yè)從所預(yù)取的作業(yè)時(shí)隙中刪除。8.根據(jù)權(quán)利要求6所述的方法,其中處理所預(yù)取的作業(yè)還包括: 當(dāng)已經(jīng)處理了所預(yù)取的作業(yè)之前的所有作業(yè)時(shí),處理所預(yù)取的作業(yè)。9.根據(jù)權(quán)利要求6所述的方法,還包括: 當(dāng)所述確定是肯定時(shí),將所述標(biāo)簽與為相同請(qǐng)求者調(diào)度的另一作業(yè)的標(biāo)簽進(jìn)行比較;以及 當(dāng)所述比較指示所預(yù)取的作業(yè)是基元的或經(jīng)排序的時(shí),處理所預(yù)取的作業(yè)。10.根據(jù)權(quán)利要求9所述的方法,還包括: 當(dāng)所述比較指示所預(yù)取的作業(yè)未被打上標(biāo)簽時(shí)請(qǐng)求作業(yè)。11.一種用于為網(wǎng)絡(luò)處理器中的處理器核心預(yù)取并處理作業(yè)的裝置,包括: 請(qǐng)求者,被配置為從調(diào)度、同步和排序單元請(qǐng)求作業(yè)預(yù)?。?所述調(diào)度、同步和排序單元被配置為: 確定可以為所述請(qǐng)求者預(yù)取作業(yè);以及 將由判優(yōu)器找到的所找到的作業(yè)預(yù)取到與所述請(qǐng)求者相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)取作業(yè)時(shí)隙中的一個(gè)時(shí)隙中;以及所述判優(yōu)器被配置為 當(dāng)可以為所述請(qǐng)求者預(yù)取作業(yè)時(shí)搜索作業(yè)以進(jìn)行預(yù)取。12.根據(jù)權(quán)利要求11所述的裝置,其中所述請(qǐng)求者被進(jìn)一步配置為:在完成當(dāng)前處理的作業(yè)之前請(qǐng)求作業(yè)預(yù)取。13.根據(jù)權(quán)利要求11所述的裝置,其中所述請(qǐng)求者包括處理器核心。14.根據(jù)權(quán)利要求11所述的裝置,其中所述請(qǐng)求者包括運(yùn)行在處理器核心上的軟件實(shí)體。15.根據(jù)權(quán)利要求11所述的裝置,其中所述調(diào)度、同步和排序單元通過(guò)被配置為進(jìn)行以下項(xiàng)來(lái)確定可以為所述請(qǐng)求者預(yù)取作業(yè): 確定與所述請(qǐng)求者相關(guān)聯(lián)的所述一個(gè)或多個(gè)預(yù)取作業(yè)時(shí)隙中的至少一個(gè)時(shí)隙不包括作業(yè)。16.根據(jù)權(quán)利要求11所述的裝置,其中所述SSO單元被進(jìn)一步配置為:確定所預(yù)取的作業(yè)是否包括標(biāo)簽并且當(dāng)所述確定是否定時(shí),處理所預(yù)取的作業(yè)。17.根據(jù)權(quán)利要求16所述的裝置,其中所述調(diào)度、同步和排序單元被配置為通過(guò)被配置為進(jìn)行以下各項(xiàng)來(lái)處理所預(yù)取的作業(yè): 將所預(yù)取的作業(yè)提供給一作業(yè)時(shí)隙;以及 將所預(yù)取的作業(yè)從所預(yù)取的作業(yè)時(shí)隙中刪除。18.根據(jù)權(quán)利要求16所述的裝置,其中所述調(diào)度、同步和排序單元被配置為當(dāng)已經(jīng)處理了在所預(yù)取的作業(yè)之前的所有作業(yè)時(shí),處理所提供的所預(yù)取的作業(yè)。19.根據(jù)權(quán)利要求16所述的裝置,其中所述調(diào)度、同步和排序單元被進(jìn)一步配置為: 當(dāng)所述確定是肯定時(shí),將所述標(biāo)簽與為相同請(qǐng)求者調(diào)度的另一作業(yè)的標(biāo)簽進(jìn)行比較;以及 當(dāng)所述比較指示所預(yù)取的作業(yè)是基元的或經(jīng)排序的時(shí)處理所預(yù)取的作業(yè)。20.根據(jù)權(quán)利要求19所述的裝置,其中所述請(qǐng)求者被進(jìn)一步配置為:當(dāng)所述比較指示所預(yù)取的作業(yè)未被打上標(biāo)簽時(shí)請(qǐng)求作業(yè)。
      【文檔編號(hào)】G06F9/46GK105830027SQ201580003167
      【公開(kāi)日】2016年8月3日
      【申請(qǐng)日】2015年2月2日
      【發(fā)明人】W·P·斯奈德二世, R·E·凱斯勒, D·E·德弗, N·D·格迪瓦拉
      【申請(qǐng)人】凱為公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1