亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

使用多核心處理器的并行處理的制作方法

文檔序號:9422687閱讀:380來源:國知局
使用多核心處理器的并行處理的制作方法
【專利說明】使用多核心處理器的并行處理
[0001]相關(guān)申請交叉引用
[0002]本申請要求2012年12月20號提交的美國臨時申請序列號61/740,374的權(quán)益。
[0003]本申請要求2013年3月5號提交的美國專利申請序列號13/786,144的權(quán)益。
技術(shù)領(lǐng)域
[0004]本發(fā)明大體上涉及并行處理。更具體地,本發(fā)明涉及使用多核心處理器的并行處理。
【背景技術(shù)】
[0005]多核心處理器是具有兩個或多個獨立的實際中央處理單元(稱為“核心”)的單一計算部件,實際中央處理單元是讀取并執(zhí)行程序指令的單元。多核心處理器被用于許多應(yīng)用領(lǐng)域,包括一般用途的、嵌入式的、網(wǎng)絡(luò)、數(shù)字信號處理(DSP),以及圖形。通過使用多核心處理器所取得的性能上的改進在很大程度上取決于所用的軟件算法及其實施。特別是,可能取得的改進被可被同時并行在多個核心上運行的軟件的部分所限制。
[0006]在多核心網(wǎng)絡(luò)處理中,一個關(guān)鍵的挑戰(zhàn)是如何利用這些裝置中所有的核心以獲得最大的網(wǎng)絡(luò)性能,盡管在對稱多處理操作系統(tǒng)中存在固有的性能限制。在當前的多核心網(wǎng)絡(luò)處理器架構(gòu)中,數(shù)據(jù)包的處理是由一個或多個核心處理器完成的。各個核心處理器和核心處理器的各個線程、存儲器管理等之間的同步是通過軟件編程來實現(xiàn)的。此外,當數(shù)據(jù)包的處理從一個核心傳遞到另一個核心時,狀態(tài)或同步信息在核心之間被傳遞或在處理數(shù)據(jù)包的核心的線程之間傳遞。
[0007]大量的資源被消耗在在線程或處理器之間傳遞狀態(tài)/同步信息,從而降低了用于執(zhí)行實際網(wǎng)絡(luò)應(yīng)用相關(guān)的任務(wù)的資源的可用性。因此,傳遞狀態(tài)/同步信息的開銷降低了處理器的效率。
[0008]另外,在現(xiàn)有的結(jié)構(gòu)中,在等待下一個數(shù)據(jù)包到達時,核心處理器不執(zhí)行任何有用的網(wǎng)絡(luò)相關(guān)的操作。核心處理器可以是空閑狀態(tài),直到下一個數(shù)據(jù)包到達核心處理器。在目前具有管線專用核心的陣列的多核心處理器的系統(tǒng)中,多核心處理器被專用核心的性能和管線深度所限制。多核心還受到最慢核心的限制。
[0009]概述
[0010]這里介紹的是使用多核心處理器進行并行處理的方法、系統(tǒng)、范例和結(jié)構(gòu)。所公開的解決方案可以在各種應(yīng)用中被使用,例如通用處理、網(wǎng)絡(luò)處理、存儲系統(tǒng)等。在一實施方式中,上述多核心處理器可以在通信網(wǎng)絡(luò)中被用作(網(wǎng)絡(luò))處理器用于處理數(shù)據(jù)包。該網(wǎng)絡(luò)處理器包括用于原子地(atomically,不可分割地)和并行地處理數(shù)據(jù)的多個多線程核心處理器和多個專用處理器。網(wǎng)絡(luò)處理器通過對數(shù)據(jù)包執(zhí)行一組網(wǎng)絡(luò)操作以處理數(shù)據(jù)包。該組網(wǎng)絡(luò)操作可以是基于應(yīng)用/網(wǎng)絡(luò)協(xié)議,如資源預(yù)留協(xié)議(RSVP)。
[0011]特定的數(shù)據(jù)包是通過單核心處理器和核心處理器的單線程進行處理的。該核心處理器可以請求一個或多個專用處理器以對數(shù)據(jù)包執(zhí)行一組網(wǎng)絡(luò)操作的子集。專用處理器是專門處理特定的一組共享資源的所有的訪問和更新、使得這些共享資源總是原子地被訪問和更新的任何處理元件。該專用處理器可以是專門設(shè)計用于處理狀態(tài)數(shù)據(jù)的某些類型(例如,測量器、隊列、統(tǒng)計數(shù)據(jù)、卷目錄表(VTOC)等)的硬件或已被專用于處理特定的一組共享資源的通用的核心。一個或多個專用處理器通過原子地執(zhí)行一組操作處理數(shù)據(jù)包。也就是說,網(wǎng)絡(luò)處理器確保當特定的數(shù)據(jù)包被處理時,用于處理特定數(shù)據(jù)包的網(wǎng)絡(luò)處理器的共享資源不被網(wǎng)絡(luò)處理器的其它資源使用。在該過程中所涉及的共享資源的鎖定確保了過程的原子性。
[0012]在網(wǎng)絡(luò)處理器內(nèi)的入口模塊分配存儲器用于傳入數(shù)據(jù)包并將該數(shù)據(jù)包存儲在網(wǎng)絡(luò)處理器的存儲器中。對于大小超過緩沖區(qū)大小的數(shù)據(jù)包,入口模塊生成包緩沖區(qū)鏈,其鏈接含有數(shù)據(jù)包的部分的各種緩沖區(qū)。入口模塊將傳入數(shù)據(jù)包添加到輸入隊列,核心處理器中的一個從其中獲得數(shù)據(jù)包用于進一步的處理。在網(wǎng)絡(luò)處理器中的輸出包處理器基于與輸出隊列相關(guān)聯(lián)的服務(wù)質(zhì)量(QoS)將處理過的數(shù)據(jù)包添加到多個輸出隊列中的一個,并基于QoS轉(zhuǎn)發(fā)包含在輸出隊列中的數(shù)據(jù)包到它們的目標地址。
[0013]由于核心處理器的單線程對數(shù)據(jù)包執(zhí)行所有組網(wǎng)絡(luò)操作,沒有狀態(tài)信息或同步信息在處理器之間傳遞,這導(dǎo)致更快和更有效地數(shù)據(jù)包的處理。此外,存儲器讀取和寫入的次數(shù)被最小化以降低由于存儲器讀取和寫入造成的延遲。所討論的方法、系統(tǒng)、結(jié)構(gòu)和范例增加了每包有效操作(EOPP)的數(shù)量,也即,對數(shù)據(jù)包可被執(zhí)行以執(zhí)行應(yīng)用相關(guān)的任務(wù)的指令的數(shù)量。
[0014]本發(fā)明的一些實施方式,除了以上描述的或代替以上描述的,具有其它的方面、元件、特征和步驟。這些潛在的補充和替代將在整個說明書的其余部分中被描述。
【附圖說明】
[0015]圖1是本發(fā)明的一實施方式可以操作的示例性的網(wǎng)絡(luò)處理器。
[0016]圖2示出了由網(wǎng)絡(luò)處理器處理數(shù)據(jù)包的過程的流程圖。
[0017]圖3示出了在核心處理器的單線程中對數(shù)據(jù)包執(zhí)行一組網(wǎng)絡(luò)操作的過程的流程圖。
[0018]圖4示出了在圖1的網(wǎng)絡(luò)處理器中根據(jù)RSVP(RFC 2475)應(yīng)用/網(wǎng)絡(luò)協(xié)議處理數(shù)據(jù)包的流程圖。
[0019]圖5示出了處理輸入數(shù)據(jù)包的過程的流程圖。
[0020]圖6示出了用于表示存儲在圖1的網(wǎng)絡(luò)處理器的存儲器中的數(shù)據(jù)包的結(jié)構(gòu)的例子的框圖。
[0021]圖7示出了將數(shù)據(jù)包存儲在圖1的網(wǎng)絡(luò)處理器的存儲器中的過程的流程圖。
[0022]圖8是用于將數(shù)據(jù)包添加到圖1的網(wǎng)絡(luò)處理器的輸入隊列的過程的流程圖。
[0023]圖9是圖1的網(wǎng)絡(luò)處理器的輸出隊列結(jié)構(gòu)的框圖。
[0024]圖10示出了處理輸出數(shù)據(jù)包的過程的流程圖。
[0025]圖11示出了圖1的網(wǎng)絡(luò)處理器的出口模塊的框圖。
具體實施例
[0026]在本說明書中提到的“一實施方式”、“一種實施方式”,或類似的描述,意味著被描述的特定特征、功能或特性是被包括在本發(fā)明的至少一個實施方式中。在本說明書中出現(xiàn)這樣的短語并不一定都指代相同的實施方式,也不是必然互相排斥的。
[0027]這里介紹的是使用多核心處理器進行并行處理的方法、系統(tǒng)、范例和結(jié)構(gòu)。所公開的解決方案可以在各種應(yīng)用中被使用,例如通用處理、網(wǎng)絡(luò)處理、存儲系統(tǒng)等。在一實施方式中,上述多核心處理器可以在通信網(wǎng)絡(luò)中被用作網(wǎng)絡(luò)處理器用于處理數(shù)據(jù)包。網(wǎng)絡(luò)處理器通過對數(shù)據(jù)包執(zhí)行一組網(wǎng)絡(luò)操作以處理數(shù)據(jù)包。該組網(wǎng)絡(luò)操作可以是基于應(yīng)用/網(wǎng)絡(luò)協(xié)議,如資源預(yù)留協(xié)議(RSVP)。
[0028]特定的數(shù)據(jù)包是通過單核心處理器和核心處理器的單線程進行處理的。核心處理器可以請求一個或多個專用處理器對數(shù)據(jù)包執(zhí)行一組網(wǎng)絡(luò)操作的子集。一個或多個專用處理器通過原子地執(zhí)行一組操作來處理數(shù)據(jù)包。也就是說,網(wǎng)絡(luò)處理器確保當特定數(shù)據(jù)包被處理時,用于處理特定數(shù)據(jù)包的網(wǎng)絡(luò)處理器的共享資源不會被網(wǎng)絡(luò)處理器的其它資源使用。
[0029]在網(wǎng)絡(luò)處理器內(nèi)的入口模塊分配存儲器用于傳入數(shù)據(jù)包并將該數(shù)據(jù)包存儲在網(wǎng)絡(luò)處理器的存儲器中。對于大小超過緩沖區(qū)大小的數(shù)據(jù)包,入口模塊生成包緩沖區(qū)鏈,其鏈接含有數(shù)據(jù)包的部分的各種緩沖區(qū)。入口模塊將傳入數(shù)據(jù)包添加到輸入隊列,核心處理器中的一個從其中獲得數(shù)據(jù)包用于進一步的處理。在網(wǎng)絡(luò)處理器中的輸出包處理器基于與輸出隊列相關(guān)聯(lián)的服務(wù)質(zhì)量(QoS)將處理過的數(shù)據(jù)包添加到多個輸出隊列中的一個,并基于QoS轉(zhuǎn)發(fā)包含在輸出隊列中的數(shù)據(jù)包到它們的目標地址。
[0030]由于核心處理器的單線程對數(shù)據(jù)包執(zhí)行所有組網(wǎng)絡(luò)操作,沒有狀態(tài)信息或同步信息在處理器之間傳遞,這導(dǎo)致更快和更有效的數(shù)據(jù)包的處理。此外,存儲器讀取和寫入的次數(shù)被最小化以降低由于存儲器讀取和寫入造成的延遲。所討論的方法、系統(tǒng)、結(jié)構(gòu)和范例增加了每包有效操作(EOPP)的數(shù)量,也即,對數(shù)據(jù)包可被執(zhí)行以執(zhí)行應(yīng)用相關(guān)的任務(wù)的指令的數(shù)量。
[0031]圖1是示例的網(wǎng)絡(luò)處理器100,在該網(wǎng)絡(luò)處理器100中,本發(fā)明的一實施方式可被操作。來自各種源計算機系統(tǒng)(未示出)的數(shù)據(jù)包經(jīng)由通信網(wǎng)絡(luò)(未示出)被傳送到目標計算機系統(tǒng)(未示出)。該通信網(wǎng)絡(luò)包括各種系統(tǒng),例如路由器(未示出),其便于轉(zhuǎn)發(fā)數(shù)據(jù)包到它們相應(yīng)的目標地址。路由器執(zhí)行操作包括:接收數(shù)據(jù)包,對接收到的數(shù)據(jù)包執(zhí)行錯誤檢查,發(fā)現(xiàn)數(shù)據(jù)包的下一跳地址,對數(shù)據(jù)包分段等,然后包被轉(zhuǎn)發(fā)到它們相應(yīng)的下一跳地址。在一實施方式中,網(wǎng)絡(luò)處理器100可以被用于這樣的路由器以執(zhí)行上面所討論的操作。
[0032]網(wǎng)絡(luò)處理器100包括多個多線程核心處理器,如核心處理器105,多個專用處理器,如專用處理器115,存儲器,如控制存儲器120和數(shù)據(jù)存儲器125,入口模塊130以接收并將傳入數(shù)據(jù)包存儲在存儲器中,以及出口模塊135以轉(zhuǎn)發(fā)處理過的數(shù)據(jù)包到它們的目標地址。內(nèi)部命令網(wǎng)絡(luò)110,如交叉開關(guān),能夠允許在網(wǎng)絡(luò)處理器100中的的各種部件之間的通信。
[0033]核心處理器的每一個處理數(shù)據(jù)包。然而,數(shù)據(jù)包是由單核處理器,如核心處理器105,和由核心處理器105的單線程進行處理。核心處理器105通過對數(shù)據(jù)包執(zhí)行一組網(wǎng)絡(luò)操作處理數(shù)據(jù)包。核心處理器105可請求一個或多個專用處理器以對數(shù)據(jù)包執(zhí)行一組網(wǎng)絡(luò)操作的子集。該一個或多個專用處理器通過原子地執(zhí)行該組網(wǎng)絡(luò)操作的子集處理該數(shù)據(jù)包。也就是說,網(wǎng)絡(luò)處理器100確保當特定的數(shù)據(jù)包通過核心處理器105或?qū)S锰幚砥?15被處理時,用于處理特定數(shù)據(jù)包的網(wǎng)絡(luò)處理器100的共享資源不被網(wǎng)絡(luò)處理器100的其它資源所使用。
[0034]核心處理器和專用處理器并行執(zhí)行一組網(wǎng)絡(luò)操作。對數(shù)據(jù)包執(zhí)行的一組網(wǎng)絡(luò)操作可以是基于應(yīng)用/網(wǎng)絡(luò)協(xié)議,如RSVP。在一實施方式中,RSVP可以是由請求注解(RFC) 2475定義的協(xié)議。在RSVP(RFC2475)中的一組網(wǎng)絡(luò)操作可以包括接收數(shù)據(jù)包、執(zhí)行錯誤處理、執(zhí)行查表操作、測量、生成靜態(tài)、監(jiān)管或擁塞控制、轉(zhuǎn)發(fā)數(shù)據(jù)包到它們的目標地址等。
[0035]在一實施方式中,專用處理器可以執(zhí)行頻繁執(zhí)行的任務(wù),如為數(shù)據(jù)包查找下一跳地址的查表、測量、監(jiān)管、擁塞控制等。核心處理器可以執(zhí)行例如錯誤檢查、監(jiān)督由專用處理器執(zhí)行的操作等的任務(wù)。在一實施方式中,網(wǎng)絡(luò)處理器100可具有用于所識別的網(wǎng)絡(luò)操作的每一個的專用處理器。然而,在另一實施方式中,網(wǎng)絡(luò)處理器100可具有專用處理器執(zhí)行一個以上的網(wǎng)絡(luò)操作。網(wǎng)絡(luò)處理器100確保對數(shù)據(jù)包的某些操作是通過使用與請求對數(shù)據(jù)包進行操作的線程相關(guān)聯(lián)的信號量來原子地執(zhí)行的。
[0036]信號量用于發(fā)信號給目標處理器,例如核心處理器或?qū)S?
當前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1