到芯片外輔助執(zhí)行單元的外部輔助執(zhí)行單元接口的制作方法
【專利摘要】在第一可編程芯片中布置的處理核心和在第二可編程芯片中布置的芯片外AXU之間提供外部輔助執(zhí)行單元(AXU)接口,以將AXU與發(fā)出單元、定點(diǎn)執(zhí)行單元和在處理核心中可選的其他功能單元集成。外部AXU接口使得發(fā)出單元能夠以與發(fā)出單元將能夠向在同一芯片上布置的AXU發(fā)出指令幾乎相同的方式向AXU發(fā)出指令。這樣做,可以獨(dú)立于該第一可編程芯片上的處理核心來(lái)設(shè)計(jì)、測(cè)試和驗(yàn)證在該第二可編程芯片上的AXU,由此使得能夠與多個(gè)不同的AXU設(shè)計(jì)結(jié)合來(lái)使用已經(jīng)設(shè)計(jì)、測(cè)試和驗(yàn)證的公共處理核心。
【專利說(shuō)明】到芯片外輔助執(zhí)行單元的外部輔助執(zhí)行單元接口
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明總體上涉及數(shù)據(jù)處理,并且具體地涉及處理器架構(gòu)和其中并入的執(zhí)行單 J Li 〇
【背景技術(shù)】
[0002] 計(jì)算機(jī)和其他可編程電子裝置持續(xù)被融入社會(huì)的每一個(gè)方面。雖然計(jì)算機(jī)曾經(jīng)占 據(jù)了全部場(chǎng)所,但是計(jì)算機(jī)和向這樣的計(jì)算機(jī)供電的集成電路裝置或芯片現(xiàn)在已經(jīng)被最小 化和商品化到甚至在產(chǎn)品和裝置的大多數(shù)日常情況中都可以找到它們的程度。
[0003] 諸如微處理器、微控制器和專用集成電路(ASIC)等的可編程芯片在成本、功耗和 特征尺寸減小的同時(shí)在復(fù)雜度和功率方面持續(xù)增大。雖然計(jì)算機(jī)曾經(jīng)并入了用于處理器、 圖形控制器、協(xié)處理器、存儲(chǔ)器控制器和其他芯片集邏輯的獨(dú)立芯片,但是所有這些類型的 功能單元經(jīng)常被集成到單個(gè)可編程芯片中。而且,一旦已經(jīng)開(kāi)發(fā)、測(cè)試和驗(yàn)證了特定的芯片 設(shè)計(jì),在每單元的基礎(chǔ)上制造成本經(jīng)常較低。
[0004] 因此,與將可編程芯片投入市場(chǎng)相關(guān)聯(lián)的工作和花費(fèi)的極大部分投入于可編程芯 片的初始設(shè)計(jì)、測(cè)試和驗(yàn)證。因?yàn)檫@個(gè)原因,每當(dāng)可能時(shí)使用設(shè)計(jì)再用,使得先前已經(jīng)設(shè)計(jì)、 測(cè)試和驗(yàn)證的諸如特定處理器核心設(shè)計(jì)、功能單元和其他邏輯塊的可編程芯片的部分不需 要從頭開(kāi)始重新創(chuàng)建。
[0005] 然而,即使通過(guò)設(shè)計(jì)再用,將多個(gè)設(shè)計(jì)組件集成為共同設(shè)計(jì)頻繁地要求設(shè)計(jì)和測(cè) 試一些定制邏輯,以確保這些組件一旦被集成到相同的可編程芯片上時(shí)彼此將正確地操 作。例如,現(xiàn)代微處理器通常包括諸如發(fā)出或指令單元、加載/存儲(chǔ)單元、執(zhí)行單元、存儲(chǔ) 器控制器、圖形控制器、高速緩存和其他板載存儲(chǔ)器等的功能單元,并且,這樣的微處理器 的開(kāi)發(fā)經(jīng)常需要相當(dāng)大的開(kāi)發(fā)、測(cè)試和驗(yàn)證工作來(lái)確保所有的功能單元以意圖的方式而操 作。
[0006] 此外,許多微處理器設(shè)計(jì)依賴于可以通過(guò)使用不同的功能單元而擴(kuò)充的基本設(shè) 計(jì),以提供對(duì)于不同的應(yīng)用而優(yōu)化的各種設(shè)計(jì)。例如,可能期望通過(guò)以下來(lái)擴(kuò)充微處理器的 功能:將多個(gè)處理核心集成在一起以促進(jìn)并行處理,并且將各種執(zhí)行單元集成在處理核心 內(nèi)以優(yōu)化該核心來(lái)處理某些類型的工作量。例如,盡管基本的微處理器設(shè)計(jì)經(jīng)常包括具有 向處理整數(shù)運(yùn)算的被稱為定點(diǎn)單元、整數(shù)單元或算術(shù)邏輯單元的執(zhí)行單元發(fā)出指令的發(fā)出 或指令單元的處理核心,但是,另外的執(zhí)行單元、例如浮點(diǎn)執(zhí)行單元、圖形引擎、物理引擎和 加密引擎等可以被并入到該基本設(shè)計(jì)內(nèi),以提供對(duì)于某些應(yīng)用優(yōu)化的專用設(shè)計(jì)。
[0007] 利用在各個(gè)處理核心和可編程芯片中組合不同類型的執(zhí)行單元的能力,提供了用 于開(kāi)發(fā)專用硬件的極大的設(shè)計(jì)靈活性。另一方面,考慮到仍需要相當(dāng)大的先期工作來(lái)設(shè)計(jì)、 測(cè)試和驗(yàn)證被集成到專用可編程芯片內(nèi)的多個(gè)功能單元,仍然存在與將專用可編程芯片投 入市場(chǎng)相關(guān)聯(lián)的相當(dāng)大的成本。
[0008] 關(guān)于可編程芯片的開(kāi)發(fā)已經(jīng)出現(xiàn)的另一個(gè)考慮是不同實(shí)體的所設(shè)計(jì)、開(kāi)發(fā)的功能 單元或否則屬性的集成。消費(fèi)者經(jīng)常依賴于其他實(shí)體來(lái)設(shè)計(jì)他們的可編程芯片,并且設(shè)計(jì) 可編程芯片的實(shí)體和消費(fèi)者兩者專有的設(shè)計(jì)經(jīng)常被一起集成在相同的可編程芯片上,經(jīng)常 導(dǎo)致許可問(wèn)題以及關(guān)于保持一些設(shè)計(jì)的保密特性的擔(dān)憂。
[0009] 因此,在本領(lǐng)域中持續(xù)存在對(duì)于促進(jìn)專用可編程芯片和包含并入這樣的芯片的電 子裝置的開(kāi)發(fā)的方式的極大的需要。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明通過(guò)提供以下方法、設(shè)備和程序產(chǎn)品來(lái)處理與現(xiàn)有技術(shù)相關(guān)聯(lián)的這些和其 他問(wèn)題,該方法、設(shè)備和程序產(chǎn)品利用在第一可編程芯片中布置的處理核心和在第二可編 程芯片中布置的芯片外輔助執(zhí)行單元(AXU)之間的外部AXU接口。該AXU接口將AXU與至 少包括發(fā)出單元和定點(diǎn)執(zhí)行單元的處理核心集成,并且使得發(fā)出單元能夠以與該發(fā)出單元 將能夠向在同一芯片上布置的AXU發(fā)出指令幾乎相同的方式向該AXU發(fā)出指令。這樣做, 可以獨(dú)立于在該第一可編程芯片上的處理核心來(lái)設(shè)計(jì)、測(cè)試和驗(yàn)證在該第二可編程芯片上 的該AXU,由此使能夠與多個(gè)不同的AXU設(shè)計(jì)結(jié)合來(lái)使用已經(jīng)設(shè)計(jì)、測(cè)試和驗(yàn)證的公共處理 核心。
[0011] 與本發(fā)明的一個(gè)方面一致,一種集成電路芯片包括具有發(fā)出單元和定點(diǎn)執(zhí)行單元 的處理核心,其中該發(fā)出單元配置為向該定點(diǎn)執(zhí)行單元發(fā)出指令以由其執(zhí)行。另外,在該集 成電路芯片上布置并且耦合到該發(fā)出單元的外部輔助執(zhí)行單元(AXU)接口邏輯被配置為 接收由該發(fā)出單元發(fā)出的指令,并且通過(guò)外部AXU接口向芯片外AXU發(fā)送該指令以由該芯 片外MU執(zhí)行。
[0012] 與本發(fā)明的另一方面一致,一種集成電路芯片包括芯片外輔助執(zhí)行單元(AXU)和 外部AXU接口邏輯,該外部AXU接口邏輯被配置為將該芯片外AXU耦合到在不同的芯片上 布置的處理核心,該處理核心包括定點(diǎn)執(zhí)行單元和發(fā)出單元,該發(fā)出單元被配置為向該定 點(diǎn)執(zhí)行單元發(fā)出指令以由該定點(diǎn)執(zhí)行單元執(zhí)行。該外部AXU接口邏輯被配置為通過(guò)外部 AXU接口接收由該發(fā)出單元發(fā)出的指令,并且向該芯片外AXU發(fā)送該指令以由其執(zhí)行。
[0013] 在附于此并且形成本發(fā)明的進(jìn)一步的部分的權(quán)利要求中給出了表征本發(fā)明的這 些和其他優(yōu)點(diǎn)和特征。然而,為了更好地理解本發(fā)明和通過(guò)其使用而達(dá)到的優(yōu)點(diǎn)和目標(biāo),應(yīng) 當(dāng)參考附圖和伴隨的描述性內(nèi)容,在其中描述了本發(fā)明的示例性實(shí)施例。
【專利附圖】
【附圖說(shuō)明】
[0014] 圖1是與本發(fā)明的實(shí)施例一致的包括在數(shù)據(jù)處理中可用的示例性計(jì)算機(jī)的示例 性自動(dòng)計(jì)算機(jī)構(gòu)的框圖。
[0015] 圖2是在圖1的計(jì)算機(jī)中實(shí)現(xiàn)的示例性N0C的框圖。
[0016] 圖3是更詳細(xì)地圖示來(lái)自圖2的N0C的節(jié)點(diǎn)的示例性實(shí)現(xiàn)的框圖。
[0017] 圖4是圖示來(lái)自圖2的N0C的IP塊的示例性實(shí)現(xiàn)的框圖。
[0018] 圖5是與本發(fā)明一致的來(lái)自圖2的N0C并且并入了與芯片外的外部輔助執(zhí)行單元 (AXU)的AXU接口的IP塊的框圖。
[0019] 圖6是與本發(fā)明一致的并入了外部AXU接口的另一示例性數(shù)據(jù)處理系統(tǒng)的框圖。
[0020] 圖7是在圖6中提及的外部AXU接口的示例性實(shí)現(xiàn)的框圖。
[0021] 圖8是圖示當(dāng)向芯片外AXU發(fā)送指令時(shí)由圖6的外部AXU接口進(jìn)行的操作的示例 性序列的流程圖。
【具體實(shí)施方式】
[0022] 與本發(fā)明一致的實(shí)施例利用在第一可編程芯片中布置的處理核心和在第二可編 程芯片中布置的芯片外AXU之間的外部輔助執(zhí)行單元(AXU)接口以將AXU與發(fā)出單元、定 點(diǎn)執(zhí)行單元以及可選地在處理核心中的其他功能單元集成。外部AXU接口使得發(fā)出單元能 夠以與發(fā)出單元將能夠向布置在相同芯片上的AXU發(fā)出指令的幾乎相同的方式來(lái)向AXU發(fā) 出指令。這樣做,可以獨(dú)立于在第一可編程芯片上的處理核心來(lái)設(shè)計(jì)、測(cè)試和驗(yàn)證在第二可 編程芯片上的AXU,由此使能夠與多個(gè)不同的AXU設(shè)計(jì)結(jié)合來(lái)使用已經(jīng)設(shè)計(jì)、測(cè)試和驗(yàn)證的 公共處理核心。
[0023] 與本發(fā)明一致的AXU可以并入擴(kuò)充、加速或另外改善處理核心對(duì)于期望的應(yīng)用的 性能的各種類型的功能。例如,AXU可以被實(shí)現(xiàn)為浮點(diǎn)單元(FPU)、壓縮引擎、圖形引擎、 加密引擎、物理引擎、正則表達(dá)式引擎、數(shù)字信號(hào)處理器(DSP)、分組處理器、專有設(shè)計(jì)和/ 或其組合。AXU被布置在與處理核心分離的芯片中,并且可以使用多個(gè)不同硬件設(shè)計(jì)的任 何一個(gè)而實(shí)現(xiàn),該多個(gè)不同硬件設(shè)計(jì)包括例如專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列 (FPGA)、芯片堆棧、定制邏輯、離散組件、傳感器等。
[0024] 外部AXU接口將芯片外AXU與處理核心互連,允許在處理核心中的發(fā)出單元和可 選地在處理核心內(nèi)的另外的功能單元、例如定點(diǎn)執(zhí)行單元、存儲(chǔ)器管理單元、高速緩存單 元、片上加速器、浮點(diǎn)單元、外部1/〇(例如,PCIe、USB、SATA)等之間的通信,由此使得AXU 能夠利用在處理核心中的功能單元,并且能夠與處理核心緊密地集成。AXU接口被配置為 從指令單元向芯片外AXU流動(dòng)(stream)指令,并且在處理核心和芯片外AXU之間傳送架構(gòu) 狀態(tài)信息,由此保持一致的整體架構(gòu)狀態(tài)。然而,與本發(fā)明一致的外部AXU接口可以在處理 核心和外部AXU之間傳送另外的信息,該另外的信息包括例如加載和存儲(chǔ)數(shù)據(jù)、復(fù)位/刷新 (flush)命令、響應(yīng)/完成消息等。
[0025] 與本發(fā)明一致的外部AXU接口在一些實(shí)施例中也可以并入轉(zhuǎn)換邏輯,該轉(zhuǎn)換邏輯 被配置為在處理核心中通常具有的高速域和在處理核心和芯片外AXU之間的較低速通信 鏈路之間相接口。例如,外部AXU接口可以并入支持無(wú)限或不確定的等待時(shí)間的協(xié)議。外部 AXU接口還可以包括步降/步升邏輯以在處理核心中的高頻域和在芯片至芯片接口上的較 低頻域之間相接口,并且外部AXU接口可以包括串行器和/或分組器(packetizer)邏輯, 以轉(zhuǎn)換為通過(guò)芯片至芯片接口的基于串行和/或基于分組的格式,并且外部AXU接口可以 支持可變總線寬度,使得可以在不同的應(yīng)用中使用不同的寬度。
[0026] 其他變型和修改對(duì)于本領(lǐng)域普通技術(shù)人員將是顯然的。因此,本發(fā)明不限于在此 所述的特定實(shí)現(xiàn)方式。
[0027] 硬件和軟件環(huán)塏
[0028] 現(xiàn)在轉(zhuǎn)向附圖,其中,在幾個(gè)附圖中相似的標(biāo)號(hào)表示相似的部分,圖1圖示了與本 發(fā)明的實(shí)施例一致的包括在數(shù)據(jù)處理中可用的示例性計(jì)算機(jī)10的示例性自動(dòng)計(jì)算機(jī)構(gòu)。 圖1的計(jì)算機(jī)10包括至少一個(gè)計(jì)算機(jī)處理器12或'CPU'以及隨機(jī)存取存儲(chǔ)器14('RAM'), 該隨機(jī)存取存儲(chǔ)器14通過(guò)高速存儲(chǔ)器總線16和總線適配器18連接到處理器12和計(jì)算機(jī) 10的其他組件。
[0029] 在RAM14中存儲(chǔ)應(yīng)用程序20,其是用于實(shí)行諸如例如字處理、電子表格、數(shù)據(jù)庫(kù)操 作、視頻游戲、股市模擬、原子的量子過(guò)程模擬或者其他用戶級(jí)應(yīng)用的特定數(shù)據(jù)處理任務(wù)的 用戶級(jí)計(jì)算機(jī)程序指令的模塊。在RAM14中還存儲(chǔ)了操作系統(tǒng)22。結(jié)合本發(fā)明的實(shí)施例可 用的操作系統(tǒng)包括 UNIX?、Linux?、Microsoft Windows XP?、AIX?、IBM 的 i5/0S? 和對(duì)于 本領(lǐng)域技術(shù)人員而言將存在的其他操作系統(tǒng)。在圖1的示例中的操作系統(tǒng)22和應(yīng)用20示 出在RAM14中,但是這樣的軟件的許多組件通常也被存儲(chǔ)在非易失性存儲(chǔ)器中,例如,在盤 驅(qū)動(dòng)器24上。
[0030] 如在以下將變得更明顯的,與本發(fā)明一致的實(shí)施例可以被實(shí)現(xiàn)在芯片上網(wǎng)絡(luò) (N0C)集成電路裝置或芯片內(nèi),并且如此一來(lái),計(jì)算機(jī)10被圖示為包括兩個(gè)示例性N0C :視 頻適配器26和協(xié)處理器28??梢蕴鎿Q地被稱為圖形適配器的N0C視頻適配器26是專門 設(shè)計(jì)用于向諸如顯示屏幕或計(jì)算機(jī)監(jiān)視器的顯示裝置30的圖形輸出的I/O適配器的示例。 N0C視頻適配器26通過(guò)高速視頻總線32、總線適配器18和也是高速總線的前側(cè)總線34連 接到處理器12。N0C協(xié)處理器28通過(guò)總線適配器18和也是高速總線的前側(cè)總線34和36 連接到處理器12。圖1的N0C協(xié)處理器可以被優(yōu)化例如以在主處理器12的要求下加速特 定的數(shù)據(jù)處理任務(wù)。
[0031] 圖1的示例性N0C視頻適配器26和N0C協(xié)處理器28每一個(gè)包括NOC,N0C包括集 成處理器("IP")塊、路由器、存儲(chǔ)器通信控制器和網(wǎng)絡(luò)接口控制器,其細(xì)節(jié)將在下面結(jié)合 圖2-3更詳細(xì)地討論。N0C視頻適配器和N0C協(xié)處理器每一個(gè)對(duì)于使用并行處理并且還需 要對(duì)共享存儲(chǔ)器的快速隨機(jī)存取的程序被優(yōu)化。然而,受益于本公開(kāi)的本領(lǐng)域普通技術(shù)人 員將認(rèn)識(shí)到,可以在除了 N0C裝置和裝置架構(gòu)之外的裝置和裝置架構(gòu)中實(shí)現(xiàn)本發(fā)明。因此, 本發(fā)明不限于在N0C裝置內(nèi)的實(shí)現(xiàn)方式。
[0032] 圖1的計(jì)算機(jī)10包括通過(guò)擴(kuò)展總線40和總線適配器18耦合到處理器12和計(jì)算 機(jī)10的其他組件的盤驅(qū)動(dòng)適配器38。盤驅(qū)動(dòng)適配器38將非易失性數(shù)據(jù)存儲(chǔ)器以盤驅(qū)動(dòng) 器24的形式連接到計(jì)算機(jī)10,并且可以例如使用集成驅(qū)動(dòng)電子('IDE')適配器、小計(jì)算 機(jī)系統(tǒng)接口('SCSI')適配器和對(duì)于本領(lǐng)域技術(shù)人員將存在的其他而實(shí)現(xiàn)。非易失性計(jì)算 機(jī)存儲(chǔ)器也可以實(shí)現(xiàn)為用作對(duì)于本領(lǐng)域技術(shù)人員將存在的光盤驅(qū)動(dòng)器、電可擦除可編程只 讀存儲(chǔ)器(所謂的'EEPR0M'或'快閃'存儲(chǔ)器)和RAM驅(qū)動(dòng)器等。
[0033] 計(jì)算機(jī)10還包括一個(gè)或多個(gè)輸入/輸出('I/O')適配器42,其通過(guò)例如用于控 制向諸如計(jì)算機(jī)顯示屏幕的顯示裝置的輸出的軟件驅(qū)動(dòng)器和計(jì)算機(jī)硬件以及來(lái)自諸如鍵 盤和鼠標(biāo)的用戶輸入裝置44的用戶輸入而實(shí)現(xiàn)面向用戶的輸入/輸出。另外,計(jì)算機(jī)10 包括通信適配器46,用于與其他計(jì)算機(jī)48的數(shù)據(jù)通信以及用于與數(shù)據(jù)通信網(wǎng)絡(luò)50的數(shù)據(jù) 通信??梢酝ㄟ^(guò)RS-232連接、通過(guò)諸如通用串行總線('USB')的外部總線、通過(guò)諸如IP 數(shù)據(jù)通信網(wǎng)絡(luò)的數(shù)據(jù)通信網(wǎng)絡(luò)和以對(duì)于本領(lǐng)域技術(shù)人員將存在的其他方式串行地實(shí)行這 樣的數(shù)據(jù)通信。通信適配器實(shí)現(xiàn)硬件級(jí)數(shù)據(jù)通信,通過(guò)該硬件級(jí)數(shù)據(jù)通信,一個(gè)計(jì)算機(jī)直接 地或通過(guò)數(shù)據(jù)通信網(wǎng)絡(luò)向另一個(gè)計(jì)算機(jī)發(fā)送數(shù)據(jù)通信。適合于在計(jì)算機(jī)10中使用的通信 適配器的示例包括用于有線撥號(hào)通信的調(diào)制解調(diào)器、用于有線數(shù)據(jù)通信網(wǎng)絡(luò)通信的以太網(wǎng) (IEEE802. 3)適配器和用于無(wú)線數(shù)據(jù)通信網(wǎng)絡(luò)通信的802. 11適配器。
[0034] 為了進(jìn)一步的說(shuō)明,圖2闡述了根據(jù)本發(fā)明的實(shí)施例的示例N0C102的功能框圖。 在圖2中的N0C被實(shí)現(xiàn)在'芯片' 100上,即在集成電路上。N0C102包括被分組為互連節(jié)點(diǎn) 的集成處理器('IP')塊104、路由器110、存儲(chǔ)器通信控制器106和網(wǎng)絡(luò)接口控制器108。 每一個(gè)IP塊104通過(guò)存儲(chǔ)器通信控制器106和網(wǎng)絡(luò)接口控制器108適配到路由器110。每 一個(gè)存儲(chǔ)器通信控制器控制在IP塊和存儲(chǔ)器之間的通信,并且每一個(gè)網(wǎng)絡(luò)接口控制器108 控制通過(guò)路由器110在IP塊之間的通信。
[0035] 在N0C102中,每一個(gè)IP塊表示被用作用于N0C內(nèi)的數(shù)據(jù)處理的構(gòu)造塊的同步或 異步邏輯設(shè)計(jì)的可再用單位。術(shù)語(yǔ)'IP塊'有時(shí)被擴(kuò)展為'知識(shí)產(chǎn)權(quán)塊',有效地將IP塊指 定為由一方擁有的、要向半導(dǎo)體電路的其他用戶或設(shè)計(jì)者許可的設(shè)計(jì),即一方的知識(shí)產(chǎn)權(quán)。 然而,在本發(fā)明的范圍內(nèi),不要求IP塊經(jīng)受任何特定的所有權(quán),因此,該術(shù)語(yǔ)在本說(shuō)明書中 總是被擴(kuò)展為'集成處理器塊'。在此指定的IP塊是可以是或可以不是知識(shí)產(chǎn)權(quán)的對(duì)象的 邏輯、單元或芯片布局設(shè)計(jì)的可再用單位。IP塊是可以形成為ASIC芯片設(shè)計(jì)或FPGA邏輯 設(shè)計(jì)的邏輯核心。
[0036] 通過(guò)類推來(lái)描述IP塊的一種方式是IP塊用于N0C設(shè)計(jì):庫(kù)用于計(jì)算機(jī)編程或離 散集成電路組件用于印刷電路板設(shè)計(jì)。在與本發(fā)明的實(shí)施例一致的N0C中,IP塊可以實(shí)現(xiàn) 為一般的門網(wǎng)表(gate netlist)、完整的專用或通用微處理器或者以對(duì)于本領(lǐng)域技術(shù)人員 將存在的其他的方式而實(shí)現(xiàn)。網(wǎng)表是IP塊的邏輯-功能的布爾-代數(shù)表示(門,標(biāo)準(zhǔn)單 元),類似于用于高級(jí)程序應(yīng)用的匯編代碼列表。也可以例如以用諸如Verilog或VHDL的 硬件描述語(yǔ)言描述的可合成形式來(lái)實(shí)現(xiàn)N0C。除了網(wǎng)表和可合成實(shí)現(xiàn)方式,也可以用較低 級(jí)物理描述來(lái)表達(dá)N0C。諸如SERDES、PLL、DAC、ADC等的模擬IP塊元件可以以諸如⑶SII 的晶體管布局格式而分布。有時(shí)也以布局格式來(lái)提供IP塊的數(shù)字元件。還將認(rèn)識(shí)到,IP 塊以及與本發(fā)明一致地實(shí)現(xiàn)的其他邏輯電路可以以例如邏輯定義程序代碼的計(jì)算機(jī)數(shù)據(jù) 文件的形式而分布,該計(jì)算機(jī)數(shù)據(jù)文件以各種詳細(xì)水平定義實(shí)現(xiàn)這樣的邏輯的電路布置的 功能和/或布局。因此,雖然本發(fā)明已經(jīng)并且在下文中還將在全功能集成電路裝置中實(shí)現(xiàn) 的電路布置、使用這樣的裝置的數(shù)據(jù)處理系統(tǒng)以及其他有形的物理硬件電路的上下文中描 述,但是受益于本公開(kāi)的本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,也可以在程序產(chǎn)品內(nèi)實(shí)現(xiàn)本發(fā)明, 并且不管用于分發(fā)程序產(chǎn)品的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的具體類型如何,本發(fā)明等同地適用。 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括但不限于物理可記錄型介質(zhì),比如易失性和非易失性存儲(chǔ) 器裝置、軟盤、硬盤驅(qū)動(dòng)器、⑶-ROM和DVD(除了別的之外)。
[0037] 在圖2的示例中的每一個(gè)IP塊104通過(guò)存儲(chǔ)器通信控制器106適配到路由器110。 每一個(gè)存儲(chǔ)器通信控制器是被適配為提供在IP塊和存儲(chǔ)器之間的數(shù)據(jù)通信的同步和異步 邏輯電路的集合。在IP塊和存儲(chǔ)器之間的這樣的通信的示例包括存儲(chǔ)器加載指令和存儲(chǔ) 器存儲(chǔ)指令。下面參考圖3更詳細(xì)地描述存儲(chǔ)器通信控制器106。每一個(gè)IP塊104還通過(guò) 網(wǎng)絡(luò)接口控制器108適配到路由器110,網(wǎng)絡(luò)接口控制器108控制在IP塊104之間的通過(guò) 路由器110的通信。在IP塊之間的通信的示例包括在并行應(yīng)用和流水線應(yīng)用中的在IP塊 之間的攜帶數(shù)據(jù)的消息和用于處理該數(shù)據(jù)的指令。還在下面參考圖3更詳細(xì)地描述網(wǎng)絡(luò)接 口控制器108。
[0038] 路由器110和在其之間的相應(yīng)鏈路118實(shí)現(xiàn)N0C的網(wǎng)絡(luò)操作。鏈路118可以是在 連接所有路由器的物理并行導(dǎo)線總線上實(shí)現(xiàn)的分組結(jié)構(gòu)。即,每一個(gè)鏈路可以在寬得足以 同時(shí)容納包括所有的頭部信息和有效負(fù)荷數(shù)據(jù)的整個(gè)數(shù)據(jù)切換分組的導(dǎo)線總線上實(shí)現(xiàn)。如 果分組結(jié)構(gòu)包括例如包含8字節(jié)頭部和56字節(jié)的有效負(fù)荷數(shù)據(jù)的64個(gè)字節(jié),則對(duì)著每個(gè) 鏈路的導(dǎo)線總線是64字節(jié)寬,512條導(dǎo)線。另外,每個(gè)鏈路可以是雙向的,使得如果鏈路分 組結(jié)構(gòu)包括64字節(jié),則導(dǎo)線總線實(shí)際上包含在每一個(gè)路由器及其在網(wǎng)絡(luò)中的相鄰者的每 一個(gè)之間的1024條導(dǎo)線。在這樣的實(shí)現(xiàn)方式中,消息可以包括多于一個(gè)分組,但是每一個(gè) 分組將精確地配合導(dǎo)線總線的寬度??商娲兀梢栽趦H寬得足以容納分組的一部分的導(dǎo) 線總線上實(shí)現(xiàn)鏈路,使得分組將被劃分為多個(gè)節(jié)拍(beat),例如使得如果將鏈路實(shí)現(xiàn)為在 寬度上為16字節(jié)或128條導(dǎo)線,則可以將64字節(jié)的分組劃分為四個(gè)節(jié)拍。將理解,不同的 實(shí)現(xiàn)方式可以基于實(shí)際的物理限制以及期望的性能特性來(lái)使用不同的總線寬度。如果在路 由器和導(dǎo)線總線的每一部分之間的連接被稱為端口,則每個(gè)路由器包括5個(gè)端口,對(duì)于在 網(wǎng)絡(luò)上的數(shù)據(jù)傳輸?shù)乃膫€(gè)方向的每一個(gè)方向一個(gè)端口,并且第五端口用于通過(guò)存儲(chǔ)器通信 控制器和網(wǎng)絡(luò)接口控制器將路由器適配到特定的IP塊。
[0039] 每個(gè)存儲(chǔ)器通信控制器106控制在IP塊和存儲(chǔ)器之間的通信。存儲(chǔ)器可以包括 芯片外主RAM112、通過(guò)存儲(chǔ)器通信控制器106直接地連接到IP塊的存儲(chǔ)器114、被使能為 IP塊的芯片上存儲(chǔ)器116、以及芯片上高速緩存。在N0C102中,芯片上存儲(chǔ)器114U16的任 何一個(gè)例如可以被實(shí)現(xiàn)為芯片上高速緩存存儲(chǔ)器。所有這些形式的存儲(chǔ)器可以被布置在相 同的地址空間、物理地址或虛擬地址中,甚至對(duì)于直接地附接到IP塊的存儲(chǔ)器也如此。因 此,存儲(chǔ)器尋址的消息相對(duì)于IP塊可以完全是雙向的,因?yàn)榭梢詮木W(wǎng)絡(luò)上的任何位置處的 任何IP塊直接尋址這樣的存儲(chǔ)器。在IP塊上的存儲(chǔ)器116可以從該IP塊或從N0C中的 任何其他IP塊來(lái)尋址。直接地附接到存儲(chǔ)器通信控制器的存儲(chǔ)器114可以通過(guò)由該存儲(chǔ) 器通信控制器適配到網(wǎng)絡(luò)的IP塊來(lái)尋址,并且也可以從N0C中的任何位置處的任何其他IP 塊來(lái)尋址。
[0040] N0C102包括兩個(gè)存儲(chǔ)器管理單元('MMU')120、122,圖示了與本發(fā)明的實(shí)施例一 致的用于N0C的兩個(gè)替代的存儲(chǔ)器架構(gòu)。MMU120被實(shí)現(xiàn)在IP塊內(nèi),允許在該IP塊內(nèi)的處 理器在虛擬存儲(chǔ)器中操作,同時(shí)允許N0C的整個(gè)其余架構(gòu)在物理存儲(chǔ)器地址空間中操作。 MMU122被實(shí)現(xiàn)在芯片外,通過(guò)數(shù)據(jù)通信端口 124連接到N0C。端口 124包括在N0C和MMU 之間傳導(dǎo)信號(hào)所需的管腳(Pin)和其他互連、以及將消息分組從N0C分組格式轉(zhuǎn)換為外部 MMU122所需的總線格式的足夠的智能。MMU的外部位置意味著在N0C的所有IP塊中的所 有處理器可以在虛擬存儲(chǔ)器地址空間中操作,到芯片外存儲(chǔ)器的物理地址的所有轉(zhuǎn)換由芯 片外MMU122處理。
[0041] 除了通過(guò)使用MMU120U22圖示的兩個(gè)存儲(chǔ)器架構(gòu)之外,數(shù)據(jù)通信端口 126圖示 了能夠在本發(fā)明的實(shí)施例中利用的在N0C中可用的第三存儲(chǔ)器架構(gòu)。端口 126提供了在 N0C102的IP塊104和芯片外存儲(chǔ)器112之間的直接連接。在處理路徑中沒(méi)有MMU的情況 下,該架構(gòu)提供了由N0C的所有IP塊對(duì)于物理地址空間的使用。在雙向地共享地址空間時(shí), N0C的所有IP塊可以通過(guò)經(jīng)過(guò)直接連接到端口 126的IP塊引導(dǎo)的、包括加載和存儲(chǔ)的存儲(chǔ) 器尋址的消息來(lái)訪問(wèn)在地址空間中的存儲(chǔ)器。端口 126包括在N0C和芯片外存儲(chǔ)器112之 間傳導(dǎo)信號(hào)所需的管腳和其他互連、以及將消息分組從N0C分組格式轉(zhuǎn)換為由芯片外存儲(chǔ) 器112所需的總線格式的足夠智能。
[0042] 在圖2的示例中,IP塊之一被指定為主機(jī)接口處理器128。主機(jī)接口處理器128 提供了在N0C和其中可以安裝N0C的主機(jī)計(jì)算機(jī)10之間的接口,并且還向在N0C上的其他 IP塊提供數(shù)據(jù)處理服務(wù),包括例如接收并在N0C的IP塊之間分派來(lái)自主機(jī)計(jì)算機(jī)的數(shù)據(jù)處 理請(qǐng)求。NOC可以例如以上在參考圖1所述的較大計(jì)算機(jī)10上實(shí)現(xiàn)視頻圖形適配器26或 協(xié)處理器28。在圖2的示例中,主機(jī)接口處理器128通過(guò)數(shù)據(jù)通信端口 130連接到該較大 主機(jī)計(jì)算機(jī)。該端口 130包括在N0C和主機(jī)計(jì)算機(jī)之間傳導(dǎo)信號(hào)所需的管腳和其他互連、 以及將消息分組從N0C轉(zhuǎn)換為由主計(jì)算機(jī)10所需的總線格式的足夠的智能。在圖1的計(jì) 算機(jī)中的N0C協(xié)處理器的示例中,這樣的端口提供在N0C協(xié)處理器28的鏈路結(jié)構(gòu)和在N0C 協(xié)處理器28和總線適配器18之間的前側(cè)總線36所需的協(xié)議之間的數(shù)據(jù)通信格式翻譯。
[0043] 圖3接下來(lái)圖示更詳細(xì)地圖示被集體地圖示在132處的N0C102中的在IP塊104、 存儲(chǔ)器通信控制器106、網(wǎng)絡(luò)接口控制器108和路由器110內(nèi)實(shí)現(xiàn)的組件的功能框圖。IP 塊104包括計(jì)算機(jī)處理器134和I/O功能136。在這個(gè)示例中,計(jì)算機(jī)存儲(chǔ)器由IP塊104 中的隨機(jī)存取存儲(chǔ)器('RAM')138的段表示。以上參考圖2所述的存儲(chǔ)器可以占據(jù)物理地 址空間的段,該物理地址空間的在每一個(gè)IP塊上的內(nèi)容是可從N0C中的任何IP塊尋址和 訪問(wèn)的。每個(gè)IP塊中的處理器134、I/O能力136和存儲(chǔ)器138有效地將IP塊實(shí)現(xiàn)為通常 可編程的微計(jì)算機(jī)。然而,如上所述,在本發(fā)明的范圍內(nèi),IP塊通常表示被用作N0C內(nèi)的數(shù) 據(jù)處理的構(gòu)造塊的同步或異步邏輯的可再用單元。因此,將IP塊實(shí)現(xiàn)為通??删幊痰奈⒂?jì) 算機(jī)盡管是出于說(shuō)明的目的而有用的普通實(shí)施例但是不是對(duì)本發(fā)明的限制。
[0044] 在圖3的N0C102中,每個(gè)存儲(chǔ)器通信控制器106包括多個(gè)存儲(chǔ)器通信執(zhí)行引擎 140。使得每個(gè)存儲(chǔ)器通信執(zhí)行引擎140能夠執(zhí)行來(lái)自IP塊104的存儲(chǔ)器通信指令,包括 在網(wǎng)絡(luò)和IP塊104之間的雙向存儲(chǔ)器通信指令流141、142、144。由存儲(chǔ)器通信控制器執(zhí)行 的存儲(chǔ)器通信指令可以不僅源自通過(guò)特定存儲(chǔ)器通信控制器而適配到路由器的IP塊,而 且可以源自在N0C102中的任何位置處的IP塊104。即,在N0C中的任何IP塊可以產(chǎn)生存 儲(chǔ)器通信指令,并且通過(guò)N0C的路由器將該存儲(chǔ)器通信指令發(fā)送到與另一個(gè)IP塊相關(guān)聯(lián)的 另一個(gè)存儲(chǔ)器通信控制器,用于執(zhí)行該存儲(chǔ)器通信指令。這樣的存儲(chǔ)器通信指令可以包括 例如翻譯后備(lookaside)緩沖器控制指令、高速緩存控制指令、屏障指令和存儲(chǔ)器加載 和存儲(chǔ)指令。
[0045] 使得每個(gè)存儲(chǔ)器通信執(zhí)行引擎140能夠與其他存儲(chǔ)器通信執(zhí)行引擎分開(kāi)地并且 并行地執(zhí)行完整的存儲(chǔ)器通信指令。該存儲(chǔ)器通信執(zhí)行引擎實(shí)現(xiàn)對(duì)于存儲(chǔ)器通信指令的同 時(shí)處理能力優(yōu)化的可縮放的存儲(chǔ)器業(yè)務(wù)處理器。存儲(chǔ)器通信控制器106支持全部同時(shí)運(yùn)行 用于同時(shí)執(zhí)行多個(gè)存儲(chǔ)器通信指令的多個(gè)存儲(chǔ)器通信執(zhí)行引擎140。由存儲(chǔ)器通信控制器 106向存儲(chǔ)器通信執(zhí)行引擎140分配新的存儲(chǔ)器通信指令,并且存儲(chǔ)器通信執(zhí)行引擎140可 以同時(shí)接受多個(gè)響應(yīng)事件。在這個(gè)示例中,所有的存儲(chǔ)器通信執(zhí)行引擎140是相同的。因 此,通過(guò)縮放存儲(chǔ)器通信執(zhí)行引擎140的數(shù)量來(lái)實(shí)現(xiàn)縮放可以由存儲(chǔ)器通信控制器106同 時(shí)處理的存儲(chǔ)器通信指令的數(shù)量。
[0046] 在圖3的N0C102中,使得每個(gè)網(wǎng)絡(luò)接口控制器108能夠?qū)⑼ㄐ胖噶顝拿罡袷睫D(zhuǎn) 換為網(wǎng)絡(luò)分組格式用于通過(guò)路由器110在IP塊104之間傳輸。該通信指令可以由IP塊 104或由存儲(chǔ)器通信控制器106以命令格式而形成,并且以命令格式提供到網(wǎng)絡(luò)接口控制 器108。該命令格式可以是符合IP塊104和存儲(chǔ)器通信控制器106的架構(gòu)寄存器文件的原 本格式。網(wǎng)絡(luò)分組格式通常是通過(guò)網(wǎng)絡(luò)的路由器110傳輸所需的格式。每個(gè)這樣的消息由 一個(gè)或多個(gè)網(wǎng)絡(luò)分組構(gòu)成。在網(wǎng)絡(luò)接口控制器中從命令格式轉(zhuǎn)換為分組格式的這樣的通信 指令的示例包括在IP塊和存儲(chǔ)器之間的存儲(chǔ)器加載指令和存儲(chǔ)器存儲(chǔ)指令。這樣的通信 指令還可以包括在并行應(yīng)用中和在流水線應(yīng)用中在IP塊之間發(fā)送攜帶數(shù)據(jù)和用于在IP塊 之間處理該數(shù)據(jù)的指令的消息的通信指令。
[0047] 在圖3的N0C102中,使得每一個(gè)IP塊能夠通過(guò)IP塊的存儲(chǔ)器通信控制器向存儲(chǔ) 器和從存儲(chǔ)器以及然后還通過(guò)其網(wǎng)絡(luò)接口控制器向網(wǎng)絡(luò)發(fā)送基于存儲(chǔ)器地址的通信?;?存儲(chǔ)器地址的通信是由IP塊的存儲(chǔ)器通信控制器的存儲(chǔ)器通信執(zhí)行引擎執(zhí)行的存儲(chǔ)器訪 問(wèn)指令,比如加載指令或存儲(chǔ)指令。這樣的基于存儲(chǔ)器地址的通信通常始發(fā)于IP塊中,以 命令格式而形成,并且被移交到存儲(chǔ)器通信控制器用于執(zhí)行。
[0048] 以消息流量來(lái)執(zhí)行許多基于存儲(chǔ)器地址的通信,因?yàn)橐L問(wèn)的任何存儲(chǔ)器可能位 于物理存儲(chǔ)器地址空間中的任何位置,在芯片上或芯片外,直接地附接到在N0C中的任何 存儲(chǔ)器通信控制器,或者最后通過(guò)N0C的任何IP塊被訪問(wèn)--不管哪個(gè)IP塊始發(fā)了任何 特定的基于存儲(chǔ)器地址的通信。因此,在N0C102中,以消息流量而執(zhí)行的所有基于存儲(chǔ)器 地址的通信從存儲(chǔ)器通信控制器傳遞到相關(guān)聯(lián)的網(wǎng)絡(luò)接口控制器,用于從命令格式轉(zhuǎn)換為 分組格式,并且以消息通過(guò)網(wǎng)絡(luò)而傳輸。在向分組格式的轉(zhuǎn)換中,網(wǎng)絡(luò)接口控制器還依賴于 存儲(chǔ)器地址或要通過(guò)基于存儲(chǔ)器地址的通信而訪問(wèn)的地址來(lái)識(shí)別分組的網(wǎng)絡(luò)地址。用存儲(chǔ) 器地址來(lái)尋址基于存儲(chǔ)器地址的消息。每個(gè)存儲(chǔ)器地址被網(wǎng)絡(luò)接口控制器映射到網(wǎng)絡(luò)地 址,該網(wǎng)絡(luò)地址通常是負(fù)責(zé)某個(gè)范圍的物理存儲(chǔ)器地址的存儲(chǔ)器通信控制器的網(wǎng)絡(luò)位置。 存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)位置自然也是該存儲(chǔ)器通信控制器的相關(guān)聯(lián)的路由器110、 網(wǎng)絡(luò)接口控制器108和IP塊104的網(wǎng)絡(luò)位置。在每個(gè)網(wǎng)絡(luò)接口控制器內(nèi)的指令轉(zhuǎn)換邏輯 150能夠?qū)⒋鎯?chǔ)器地址轉(zhuǎn)換為網(wǎng)絡(luò)地址以用于通過(guò)N0C的路由器傳輸基于存儲(chǔ)器地址的通 信的目的。
[0049] 在從網(wǎng)絡(luò)的路由器110接收到消息流量時(shí),每個(gè)網(wǎng)絡(luò)接口控制器108針對(duì)存儲(chǔ)器 指令而檢查每個(gè)分組。包含存儲(chǔ)器指令的每個(gè)分組被交給與接收網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的 存儲(chǔ)器通信控制器106,存儲(chǔ)器通信控制器106在向IP塊發(fā)送該分組的剩余的有效負(fù)荷以 用于進(jìn)一步的處理之前執(zhí)行該存儲(chǔ)器指令。以這種方式,總是在IP塊開(kāi)始執(zhí)行來(lái)自消息的 取決于特定存儲(chǔ)器內(nèi)容的指令之前準(zhǔn)備存儲(chǔ)器內(nèi)容以支持由該IP塊進(jìn)行的數(shù)據(jù)處理。
[0050] 在圖3的N0C102中,使得每個(gè)IP塊104能夠繞過(guò)其存儲(chǔ)器通信控制器106,并且 通過(guò)IP塊的網(wǎng)絡(luò)接口控制器108直接向網(wǎng)絡(luò)發(fā)送IP塊之間的網(wǎng)絡(luò)尋址的通信146。網(wǎng)絡(luò) 尋址的通信是通過(guò)網(wǎng)絡(luò)地址引導(dǎo)到另一 IP塊的消息。這樣的消息發(fā)送在流水線應(yīng)用中的 工作數(shù)據(jù)、用于在SMD應(yīng)用中的IP塊之間的單個(gè)程序處理的多個(gè)數(shù)據(jù)等,如對(duì)于本領(lǐng)域技 術(shù)人員將存在的。這樣的消息與基于存儲(chǔ)器地址的通信不同在:它們是從開(kāi)始由始發(fā)的IP 塊來(lái)網(wǎng)絡(luò)尋址的,該始發(fā)的IP塊知道該消息通過(guò)N0C的路由器要被引導(dǎo)到的網(wǎng)絡(luò)地址。這 樣的網(wǎng)絡(luò)尋址的通信由IP塊通過(guò)I/O功能136以命令格式直接傳遞到IP塊的網(wǎng)絡(luò)接口控 制器,然后由網(wǎng)絡(luò)接口控制器轉(zhuǎn)換為分組格式,并且通過(guò)N0C的路由器被發(fā)送到另一 IP塊。 這樣的網(wǎng)絡(luò)尋址的通信146是雙向的,取決于它們?cè)谌魏翁囟☉?yīng)用中的使用而可能前進(jìn)到 N0C的每個(gè)IP塊以及從N0C的每個(gè)IP塊前進(jìn)。然而,使得每個(gè)網(wǎng)絡(luò)接口控制器能夠向相 關(guān)聯(lián)的路由器發(fā)送這樣的通信以及從相關(guān)聯(lián)的路由器接收這樣的通信,并且使得每個(gè)網(wǎng)絡(luò) 接口控制器能夠直接向相關(guān)聯(lián)的IP塊發(fā)送這樣的通信以及從相關(guān)聯(lián)的IP塊接收這樣的通 信,繞過(guò)相關(guān)聯(lián)的存儲(chǔ)器通信控制器106。
[0051] 在圖3的示例中的每個(gè)網(wǎng)絡(luò)接口控制器108也被使得能夠?qū)崿F(xiàn)在網(wǎng)絡(luò)上的虛擬信 道,通過(guò)類型來(lái)表征網(wǎng)絡(luò)分組。每個(gè)網(wǎng)絡(luò)接口控制器108包括虛擬信道實(shí)現(xiàn)邏輯148,該虛 擬信道實(shí)現(xiàn)邏輯148根據(jù)類型來(lái)分類每個(gè)通信指令,并且在網(wǎng)絡(luò)分組格式的字段中記錄指 令的類型,然后將該指令以分組形式移交到路由器110用于在NOC上傳輸。通信指令類型 的示例包括:IP塊之間的基于網(wǎng)絡(luò)地址的消息、請(qǐng)求消息、對(duì)于請(qǐng)求消息的響應(yīng)、被引導(dǎo)到 高速緩存的無(wú)效消息;存儲(chǔ)器加載和存儲(chǔ)消息;以及對(duì)于存取加載消息的響應(yīng)等。
[0052] 在圖3的示例中的每個(gè)路由器110包括路由邏輯152、虛擬信道控制邏輯154和虛 擬信道緩沖器156。該路由邏輯通常被實(shí)現(xiàn)為同步和異步邏輯的網(wǎng)絡(luò),該同步和異步邏輯的 網(wǎng)絡(luò)實(shí)現(xiàn)用于在由路由器110、鏈路118和路由器之間的總線形成的網(wǎng)絡(luò)中的數(shù)據(jù)通信的 數(shù)據(jù)通信協(xié)議堆棧。路由邏輯152包括本領(lǐng)域的讀者可以在芯片外網(wǎng)絡(luò)中將其與路由表相 關(guān)聯(lián)的功能,在至少一些實(shí)施例中,路由表被認(rèn)為用在N0C中太慢和麻煩。被實(shí)現(xiàn)為同步和 異步邏輯的網(wǎng)絡(luò)的路由邏輯可以被配置為如單個(gè)時(shí)鐘周期那樣快地做出路由確定。在這個(gè) 示例中的路由邏輯通過(guò)選擇用于轉(zhuǎn)發(fā)在路由器中接收的每個(gè)分組的端口來(lái)路由分組。每個(gè) 分組包含該分組要被路由到的網(wǎng)絡(luò)地址。
[0053] 在以上描述基于存儲(chǔ)器地址的通信中,每個(gè)存儲(chǔ)器地址被描述為由網(wǎng)絡(luò)接口控制 器映射到網(wǎng)絡(luò)地址、即存儲(chǔ)器通信控制器的網(wǎng)絡(luò)位置。存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)位置 自然也是存儲(chǔ)器通信控制器的相關(guān)聯(lián)的路由器110、網(wǎng)絡(luò)接口控制器108和IP塊104的網(wǎng) 絡(luò)位置。因此,在IP塊之間的或基于網(wǎng)絡(luò)地址的通信中,對(duì)于應(yīng)用級(jí)數(shù)據(jù)處理也常見(jiàn)的是, 將網(wǎng)絡(luò)地址看作在由N0C的路由器、鏈路和總線導(dǎo)線形成的網(wǎng)絡(luò)內(nèi)的IP塊的位置。圖2圖 示了這樣的網(wǎng)絡(luò)的一個(gè)組織是行和列的網(wǎng)狀結(jié)構(gòu)(mesh),其中,每個(gè)網(wǎng)絡(luò)地址可以被實(shí)現(xiàn) 為例如用于該網(wǎng)狀結(jié)構(gòu)的每組相關(guān)聯(lián)的路由器、IP塊、存儲(chǔ)器通信控制器和網(wǎng)絡(luò)接口控制 器的唯一標(biāo)識(shí)符或者在該網(wǎng)狀結(jié)構(gòu)中的每個(gè)這樣的組的X、y坐標(biāo)。
[0054] 在圖3的N0C102中,每個(gè)路由器110實(shí)現(xiàn)兩個(gè)或更多的虛擬通信信道,其中,每個(gè) 虛擬通信信道通過(guò)通信類型來(lái)表征。通信指令類型以及因此的虛擬信道類型包括上述的那 些:IP塊之間的基于網(wǎng)絡(luò)地址的消息、請(qǐng)求消息、對(duì)于請(qǐng)求消息的響應(yīng)、被引導(dǎo)到高速緩存 的無(wú)效消息;存儲(chǔ)器加載和存儲(chǔ)消息;以及對(duì)于存儲(chǔ)器加載消息的響應(yīng)等。支持虛擬信道, 在圖3的示例中的每個(gè)路由器110還包括虛擬信道控制邏輯154和虛擬信道緩沖器156。 虛擬信道控制邏輯154對(duì)于每個(gè)接收的分組查看其分配的通信類型,并且將每個(gè)分組放置 在用于該通信類型的外發(fā)的(outgoing)虛擬信道緩沖器中,用于通過(guò)端口發(fā)送到在N0C上 的相鄰路由器。
[0055] 每個(gè)虛擬信道緩沖器156具有有限的存儲(chǔ)空間。當(dāng)在短時(shí)間段中接收到許多分組 時(shí),虛擬信道緩沖器可能填滿--使得不能將更多的分組置于該緩沖器中。在其他協(xié)議中, 將丟棄到達(dá)其緩沖器已滿的虛擬信道的分組。然而,利用總線導(dǎo)線的控制信號(hào)來(lái)使得在此 示例中的每個(gè)虛擬信道緩沖器156能夠通過(guò)虛擬信道控制邏輯來(lái)通知周圍的路由器以暫 停在虛擬信道中的傳輸,即,暫停特定通信類型的分組的傳輸。當(dāng)如此暫停一個(gè)虛擬信道 時(shí),所有其他的虛擬信道不受影響--并且可以繼續(xù)以滿負(fù)荷來(lái)運(yùn)行??刂菩盘?hào)通過(guò)每個(gè) 路由器一路導(dǎo)線傳導(dǎo)(wired)回到每個(gè)路由器的相關(guān)聯(lián)的網(wǎng)絡(luò)接口控制器108。每個(gè)網(wǎng)絡(luò) 接口控制器被配置為在接收到這樣的信號(hào)時(shí)拒絕從其相關(guān)聯(lián)的存儲(chǔ)器通信控制器106或 從其相關(guān)聯(lián)的IP塊104接受對(duì)于被暫停的虛擬信道的通信指令。以這種方式,虛擬信道的 暫停影響實(shí)現(xiàn)虛擬信道的所有硬件,一路回到始發(fā)的IP塊。
[0056] 暫停在虛擬信道中的分組發(fā)送的一個(gè)效果是未曾丟棄任何分組。當(dāng)路由器遇到其 中在諸如例如因特網(wǎng)協(xié)議的一些不可靠的協(xié)議中可能丟棄分組的情況時(shí),在圖3的示例中 的路由器可以通過(guò)它們的虛擬信道緩沖器156和它們的虛擬信道控制邏輯154暫停在虛擬 信道中的所有的分組發(fā)送,直到再次可獲得緩沖器空間,消除了任何丟棄分組的需要。因 此,圖3的N0C可以使用極薄的硬件層來(lái)實(shí)現(xiàn)高度可靠的網(wǎng)絡(luò)通信協(xié)議。
[0057] 圖3的N0C的示例還可以被配置為保持在芯片上和芯片外的存儲(chǔ)器高速緩存之間 的高速緩存一致性。每個(gè)N0C可以支持多個(gè)高速緩存,每個(gè)高速緩存針對(duì)相同的基礎(chǔ)存儲(chǔ) 器地址空間而操作。例如,高速緩存可以由IP塊、由存儲(chǔ)器通信控制器或由在N0C外部的 高速緩存控制器來(lái)控制。在圖2的示例中的芯片上存儲(chǔ)器114、116的任意一個(gè)也可以被實(shí) 現(xiàn)為芯片上高速緩存,并且在本發(fā)明的范圍內(nèi),也可以在芯片外實(shí)現(xiàn)高速緩存存儲(chǔ)器。
[0058] 圖3中所示的每個(gè)路由器110包括五個(gè)端口,四個(gè)端口 158A-D通過(guò)總線導(dǎo)線118 連接到其他路由器,并且第五端口 160通過(guò)網(wǎng)絡(luò)接口控制器108和存儲(chǔ)器通信控制器106 將每個(gè)路由器連接到其相關(guān)聯(lián)的IP塊104。如從在圖2和3中的圖示可以看出的,N0C102 的路由器110和鏈路118形成網(wǎng)狀網(wǎng)絡(luò),垂直和水平鏈路連接每個(gè)路由器中的垂直和水平 端口。在圖3的圖示中,例如,將端口 158AU58C和160稱為垂直端口,并且將端口 158B和 158D稱為水平端口。
[0059] 圖4接下來(lái)以另一種方式圖示與本發(fā)明一致的IP塊104的一個(gè)示例性實(shí)現(xiàn)方式, 其被實(shí)現(xiàn)為處理元件,該處理元件被劃分為指令單元(IU) 162、執(zhí)行單元(XU) 164和輔助執(zhí) 行單元(AXU) 166。在所示的實(shí)現(xiàn)方式中,IU162包括多個(gè)指令緩沖器168,指令緩沖器168 從L1指令高速緩存(iCACHE) 170接收指令。每個(gè)指令緩沖器168專用于多個(gè)、比如四個(gè)對(duì) 稱多線程(SMT)硬件線程之一。有效到真實(shí)(effective-t〇-real)翻譯單元(iERAT) 172 耦合到iCACHE170,并且用于將來(lái)自多個(gè)線程獲取定序器174的指令獲取請(qǐng)求翻譯為真實(shí) 地址以從較低級(jí)存儲(chǔ)器取回指令。每個(gè)線程獲取定序器174專用于特定的硬件線程,并且 用于確保要由相關(guān)聯(lián)的線程執(zhí)行的指令被獲取到iCACHE內(nèi)以分派到適當(dāng)?shù)膱?zhí)行單元。還 如圖4中所示,被獲取到指令緩沖器168內(nèi)的指令還可以由分支預(yù)測(cè)邏輯176監(jiān)視,該分支 預(yù)測(cè)邏輯176向每個(gè)線程獲取定序器174提供線索以最小化由在執(zhí)行線程中的分支導(dǎo)致的 指令高速緩存漏失。
[0060] IU162還包括依賴性/發(fā)出邏輯塊178,其專用于每個(gè)硬件線程,并且被配置為解 決依賴性并且控制指令從指令緩沖器168向XU164的發(fā)出。另外,在所示的實(shí)施例中,在 AXU166中提供獨(dú)立的依賴性/發(fā)出邏輯180,因此使得能夠由不同的線程同時(shí)向XU164和 AXU166發(fā)出獨(dú)立的指令。在一個(gè)替代實(shí)施例中,邏輯180可以被布置在IU162中,或者可以 整體被省略,使得邏輯178向AXU166發(fā)出指令。
[0061] XU164被實(shí)現(xiàn)為定點(diǎn)執(zhí)行單元,其包括耦合到定點(diǎn)邏輯184、分支邏輯186和加載 /存儲(chǔ)邏輯188的一組通用寄存器(GPR) 182。加載/存儲(chǔ)邏輯188耦合到L1數(shù)據(jù)高速緩 存(dCACHE) 190,有效到真實(shí)翻譯由dERAT邏輯192提供。XU164可以被配置為實(shí)際上實(shí)現(xiàn) 任何指令集,例如,32b或64b PowerPC指令集的全部或一部分。
[0062] AXU166操作為包括專用的依賴性/發(fā)出邏輯180連同一個(gè)或多個(gè)執(zhí)行塊194的輔 助執(zhí)行單元。AXU166可以包括任何數(shù)量的執(zhí)行塊,并且可以實(shí)際上實(shí)現(xiàn)任何類型的執(zhí)行單 元,例如浮點(diǎn)單元,或者實(shí)現(xiàn)一個(gè)或多個(gè)專門的執(zhí)行單元,比如加密/解密單元、協(xié)處理器、 向量處理單元、圖形處理單元、XML處理單元等。在所示的實(shí)施例中,AXU166包括到XU164 的高速輔助接口,例如以支持在AXU架構(gòu)狀態(tài)和XU架構(gòu)狀態(tài)之間的直接移動(dòng)。
[0063] 可以經(jīng)由耦合到N0C102的網(wǎng)絡(luò)接口控制器108以結(jié)合圖2在以上所述的方式來(lái) 管理與IP塊104的通信??梢赃B同基于消息的通信一起提供基于地址的通信例如以訪問(wèn) L2高速緩存存儲(chǔ)器。例如,每個(gè)IP塊104可以包括專用的收件箱(in box)和/或發(fā)件箱 (out box),以便處理在IP塊之間的節(jié)點(diǎn)間通信。
[0064] 可以在以上結(jié)合圖1-4所述的硬件和軟件環(huán)境內(nèi)實(shí)現(xiàn)本發(fā)明的實(shí)施例。但是,受 益于本公開(kāi)的本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,可以在多個(gè)不同的環(huán)境中實(shí)現(xiàn)本公開(kāi),并且 可以不脫離本發(fā)明的精神和范圍對(duì)上述的硬件和軟件實(shí)施例做出其他修改。如此,本發(fā)明 不限于在此公開(kāi)的特定硬件和軟件環(huán)境。
[0065] 用于芯片外AXU的外部AXU接口
[0066] 現(xiàn)在轉(zhuǎn)向圖5,該圖圖示了與本發(fā)明一致的實(shí)現(xiàn)外部輔助執(zhí)行單元(AXU)接口的 示例性數(shù)據(jù)處理系統(tǒng)。具體地說(shuō),IP塊200的另一種示例性實(shí)現(xiàn)方式并入了通過(guò)外部AXU 接口 206耦合到芯片外AXU204的芯片上處理元件202。
[0067] 與圖4的IP塊104中的處理元件類似的處理元件202包括指令單元(IU) 208、執(zhí) 行單元(XU) 210和網(wǎng)絡(luò)接口控制器(NIC) 212,并且耦合到N0C214。
[0068] 在所示的實(shí)現(xiàn)方式中,IU208包括從L1指令高速緩存(iCACHE) 218接收指令的多 個(gè)指令緩沖器216。每個(gè)指令緩沖器216專用于多個(gè)、例如四個(gè)對(duì)稱多線程(SMT)硬件線 程之一。有效到真實(shí)翻譯單元(iERAT)220耦合到iCACHE218,并且用于將來(lái)自多個(gè)線程獲 取定序器222的指令獲取請(qǐng)求翻譯為真實(shí)地址以從較低級(jí)存儲(chǔ)器取回指令。每個(gè)線程獲取 定序器222專用于特定的硬件線程,并且用于確保要由相關(guān)聯(lián)的線程執(zhí)行的指令被獲取到 iCACHE內(nèi)以分派到適當(dāng)?shù)膱?zhí)行單元。還如圖5中所示,被獲取到指令緩沖器216內(nèi)的指令 也可以由分支預(yù)測(cè)邏輯224監(jiān)視,該分支預(yù)測(cè)邏輯224向每個(gè)線程獲取定序器222提供線 索以最小化由在執(zhí)行線程中的分支導(dǎo)致的指令高速緩存漏失。IU208還包括依賴性/發(fā)出 邏輯塊228,其專用于每個(gè)硬件線程,并且被配置為解決依賴性并且控制從指令緩沖器216 向XU210的指令的發(fā)出。
[0069] XU210被實(shí)現(xiàn)為定點(diǎn)執(zhí)行單元,其包括耦合到定點(diǎn)邏輯232、分支邏輯234和加載 /存儲(chǔ)邏輯236的一組通用寄存器(GPR) 230。加載/存儲(chǔ)邏輯236耦合到L1數(shù)據(jù)高速緩 存(dCACHE)238,有效到真實(shí)翻譯由dERAT邏輯240提供。XU164可以被配置為實(shí)際上實(shí)現(xiàn) 任何指令集,例如32b或64bPowerPC指令集的全部或一部分。
[0070] 為了提供通過(guò)外部AXU接口 206對(duì)AXU的訪問(wèn),在IP塊200中布置外部AXU接口 控制器242,并且在外部芯片204中布置互補(bǔ)的網(wǎng)絡(luò)AXU接口控制器244,并且該互補(bǔ)的網(wǎng) 絡(luò)AXU接口控制器244與外部AXU246相接口。外部AXU246操作為包括一個(gè)或多個(gè)執(zhí)行塊 248的輔助執(zhí)行單元。AXU246可以包括任何數(shù)量的執(zhí)行塊,并且可以實(shí)際上實(shí)現(xiàn)任何類型 的執(zhí)行單元,例如浮點(diǎn)單元,或者實(shí)現(xiàn)一個(gè)或多個(gè)專門的執(zhí)行單元,比如加密/解密單元、 協(xié)處理器、向量處理單元、圖形處理單元、XML處理單元等。
[0071] 如圖4的IP塊104那樣,可選地,可以為外部AXU246提供獨(dú)立的依賴性/發(fā)出邏 輯250,不管是在外部AXU246(如所示)內(nèi)還是在發(fā)出單元208內(nèi)??商娲?,如圖5中所 示,依賴性/發(fā)出邏輯228可以處理指令向外部AXU246的發(fā)出。AXU特定的依賴性/發(fā)出 邏輯250可以用于例如支持在AXU中的專用微碼或定序器邏輯。
[0072] 在所示的實(shí)施例中,外部AXU接口 206被實(shí)現(xiàn)為到IU208和XU210的高速輔助接 口,例如以支持由IU208向外部AXU246發(fā)出指令以及在AXU架構(gòu)狀態(tài)和XU架構(gòu)狀態(tài)之間 的直接移動(dòng)。另外,如在下面將變得更顯而易見(jiàn)的,外部AXU246雖然被布置在獨(dú)立的集成 電路裝置或芯片上,但是可以影響(leverage)在IP塊200中布置的功能的大多數(shù)。
[0073] 圖6圖示并入了處理器芯片262的另一個(gè)數(shù)據(jù)處理系統(tǒng)260,該處理器芯片262具 有發(fā)出單元264、定點(diǎn)執(zhí)行單元266、存儲(chǔ)器管理單元268、一個(gè)或多個(gè)級(jí)的高速緩存270、網(wǎng) 絡(luò)接口 272,并且該處理器芯片262耦合到例如通過(guò)外圍總線連接的外部存儲(chǔ)器274和一 個(gè)或多個(gè)I/O裝置276。處理器芯片262還包括外部AXU接口控制器278,該外部AXU接口 控制器278耦合到與本發(fā)明一致的外部AXU接口 280,允許該處理器芯片與使用多個(gè)不同 技術(shù)實(shí)現(xiàn)的AXU相接口,例如FPGA282 (具有AXU284和外部AXU接口 286)、ASIC288 (具有 AXU290和外部AXU接口 292)或堆疊的裸片294 (具有AXU296和外部AXU接口 298)。將認(rèn) 識(shí)到,與本發(fā)明一致的外部AXU接口可以用于與以其他硬件技術(shù)實(shí)現(xiàn)的AXU相接口,并且因 此本發(fā)明不限于在此公開(kāi)的特定硬件技術(shù)。
[0074] 可以以與本發(fā)明一致的多種不同方式來(lái)實(shí)現(xiàn)外部AXU接口。例如,如圖7中所示, 外部AXU接口可以包括經(jīng)由物理接口 304彼此耦合的核心外部AXU接口邏輯300和AXU外 部AXU接口邏輯302。核心邏輯300包括的控制邏輯,例如控制器306,從核心的角度來(lái)看, 該控制邏輯協(xié)調(diào)通過(guò)接口的通信。如上所述,與本發(fā)明一致的外部AXU接口如期望地支持 無(wú)限的或不確定的等待時(shí)間,因而可能需要使用看門狗定時(shí)器308等邏輯來(lái)防止核心在等 待來(lái)自芯片外AXU的響應(yīng)時(shí)中止(hang)。另外,核心邏輯通常包括發(fā)送/接收邏輯310以 處理通過(guò)接口的物理層通信。
[0075] 還如上所述,可能需要外部AXU接口來(lái)翻譯到處理核心的通信和來(lái)自處理核心的 通信,并且因而可以包括促進(jìn)這樣的翻譯的邏輯。例如,在其中外部AXU接口以比核心的操 作頻率低的頻率來(lái)通信的實(shí)施例中,可以提供步升/步降邏輯312。步降邏輯例如可以用于 相對(duì)于處理核心的通信頻率來(lái)降低外部AXU接口的通信頻率。
[0076] 為了支持分組化的接口,可以提供分組器/去分組器314。另外的邏輯、每個(gè)串行 器/解串行器邏輯可以用于在串行和并行協(xié)議之間翻譯。而且,在一些實(shí)施例中,接口可以 支持可變寬度,并且可以被配置為僅使用已經(jīng)架構(gòu)的通信鏈路的一部分來(lái)用于接口。例如, 在一個(gè)示例性實(shí)施例中,外部AXU接口可以支持多達(dá)32字節(jié)寬的數(shù)據(jù)路徑,所選擇的實(shí)現(xiàn) 方式可編程或可配置以僅使用可用的數(shù)據(jù)路徑的一部分。
[0077] 同樣,AXU外部AXU接口邏輯304可以包括與在核心邏輯302中的邏輯互補(bǔ)的具 有看門狗定時(shí)器318的控制器316、發(fā)送/接收邏輯320、步升/步降(step up/step down) 邏輯322和分組器/去分組器邏輯324。在一些實(shí)施例中,控制器316可以是主控制器306 的從屬(slave),而在其他實(shí)施例中,可以省略控制器316。另外,在一些實(shí)施例中可能不要 求看門狗定時(shí)器318。
[0078] 如上所述,通過(guò)外部AXU接口而通信的數(shù)據(jù)的主要分類是包括用于由芯片外AXU 執(zhí)行的指令的指令流。指令阻擋和依賴性通常由依賴性/發(fā)出邏輯228(圖5)管理,并且 在邏輯228向芯片外AXU發(fā)出指令時(shí),可以使用例如在圖8的330處圖示的操作序列。具 體地,響應(yīng)于接收到指令,用于接口的核心邏輯可以例如通過(guò)轉(zhuǎn)換為分組、串行化、降低到 較低的時(shí)鐘頻率等來(lái)將指令轉(zhuǎn)換為用于接口的適當(dāng)?shù)母袷剑▔K332)。接下來(lái),通過(guò)該接口 發(fā)送該指令(塊334),并且開(kāi)始看門狗定時(shí)器(塊336)。核心邏輯然后進(jìn)入用于等待響 應(yīng)的循環(huán),周期地檢查是否已經(jīng)接收到響應(yīng)(塊338)以及看門狗定時(shí)器是否已經(jīng)到期(塊 340)。如果接收到適當(dāng)?shù)捻憫?yīng),則塊338將控制傳遞到塊356以更新處理核心的所架構(gòu)的 狀態(tài)。另一方面,如果在接收到響應(yīng)之前看門狗定時(shí)器到期,則塊340將控制傳遞到塊358 以例如通過(guò)復(fù)位芯片外AXU來(lái)進(jìn)行任何必要的錯(cuò)誤處理。
[0079] 轉(zhuǎn)向該接口的AXU側(cè),由核心邏輯在塊334發(fā)送的指令被AXU邏輯接收(塊342), 并且被轉(zhuǎn)換為用于AXU的適當(dāng)格式(塊344)。指令然后被轉(zhuǎn)發(fā)到AXU用于處理(塊346)。 其后,來(lái)自AXU的完成數(shù)據(jù)、例如對(duì)所架構(gòu)的狀態(tài)的改變、例如對(duì)一個(gè)或多個(gè)寄存器的更新 被AXU接口邏輯接收(塊348),以及要返回到核心的適當(dāng)?shù)捻憫?yīng)、例如成功、失敗、錯(cuò)誤條 件、調(diào)試或狀態(tài)數(shù)據(jù)等被AXU接口邏輯接收(塊350)。該響應(yīng)然后被轉(zhuǎn)換為用于該接口的 適當(dāng)格式(塊352),并且被發(fā)送回核心邏輯(塊354)。
[0080] 將認(rèn)識(shí)到,其他數(shù)據(jù)可以通過(guò)外部AXU接口被傳送。例如,寄存器更新、寄存器/ 存儲(chǔ)器傳送(加載/存儲(chǔ))、狀態(tài)更新、調(diào)試數(shù)據(jù)、性能統(tǒng)計(jì)、指令、分支重定向、存儲(chǔ)器管理 信息等也可以通過(guò)與本發(fā)明一致的外部AXU接口而傳送。還將認(rèn)識(shí)到,這樣的接口的實(shí)現(xiàn) 方式將完全在受益于本公開(kāi)的本領(lǐng)域普通技術(shù)人員的能力內(nèi)。例如,可以使用與可從國(guó)際 商業(yè)機(jī)器獲得的PowerPC A2處理器中支持的芯片外AXU接口所支持的類似的協(xié)議來(lái)實(shí)現(xiàn) 與本發(fā)明一致的外部AXU接口。
[0081] 與本發(fā)明一致的外部AXU接口提供了多個(gè)益處,特別是在專用硬件設(shè)計(jì)的開(kāi)發(fā) 中。通過(guò)在并入了處理核心的可編程芯芯片上提供外部AXU接口,可以設(shè)計(jì)、驗(yàn)證和測(cè)試處 理核心,并且處理核心可以以通常的微處理器時(shí)鐘頻率而操作。該處理核心可以被配置為 用于通用計(jì)算,并且提供了適合于廣泛的各種應(yīng)用的標(biāo)準(zhǔn)功能單元。提供專門的功能的芯 片外AXU可以通過(guò)外部AXU接口與處理核心集成,由此定制用于特定應(yīng)用的處理核心。
[0082] 這樣的配置的一個(gè)益處是不同方可以組合他們各自的知識(shí)產(chǎn)權(quán),而不必向彼此公 開(kāi)這樣的知識(shí)產(chǎn)權(quán)。希望并入例如他們自己的專有加速器功能的一方可以依賴于另一方的 處理核心來(lái)獲得所需功能的剩余部分,由此將它們的定制設(shè)計(jì)、測(cè)試和驗(yàn)證限于AXU,經(jīng)常 節(jié)省與專用硬件設(shè)計(jì)的開(kāi)發(fā)相關(guān)聯(lián)的可觀的成本和精力。另外,如果一方例如因?yàn)槠鋵S?特性或因?yàn)檎C芑蚍诸惖脑O(shè)計(jì)而需要限制對(duì)于他們的保密的知識(shí)產(chǎn)權(quán)的訪問(wèn),則該方 可以這樣做而不必向另一方公開(kāi)這樣的保密信息。
[0083] 而且,通過(guò)為外部AXU接口提供無(wú)限的等待時(shí)間和/或步降邏輯,芯片外AXU不需 要以與處理核心相同的速度運(yùn)行,并且可以例如使用諸如像FPGA那樣的較慢技術(shù)而實(shí)現(xiàn), 由此使得例如能夠使用較不昂貴的技術(shù)來(lái)開(kāi)發(fā)和測(cè)試AXU,然后一旦已經(jīng)使用FPGA驗(yàn)證了 該設(shè)計(jì)則以諸如ASIC的高速技術(shù)來(lái)實(shí)現(xiàn)該芯片外AXU。另外,芯片外AXU的設(shè)計(jì)可以是專 用處理核心的設(shè)計(jì)中的中間步驟,使得能夠在最后集成到專用處理核心設(shè)計(jì)之前驗(yàn)證和改 善AXU設(shè)計(jì)。
[0084] 另外,在此實(shí)現(xiàn)的外部AXU接口避免了將AXU通過(guò)存儲(chǔ)器或共享總線與處理核心 相接口的需要,否則在此情況下可能出現(xiàn)總線和資源競(jìng)爭(zhēng)。而且,在芯片堆疊實(shí)現(xiàn)方式中, 與本發(fā)明一致的外部AXU接口可以用于將在一個(gè)堆疊的裸片上布置的AXU與在另一個(gè)堆疊 的裸片上布置的處理核心相接口。這樣做,可以將一個(gè)堆疊的裸片專用于多個(gè)處理器核心, 而另一個(gè)堆疊的裸片可以專用于多個(gè)AXU,消除了使用相同的設(shè)計(jì)規(guī)則或技術(shù)來(lái)制造 AXU 的需要,并且使得能夠以對(duì)于不同應(yīng)用的不同AXU層來(lái)使用相同的處理器核心層。
[〇〇85] 不脫離本發(fā)明的范圍可以對(duì)于所公開(kāi)的實(shí)施例做出各種修改。因此,本發(fā)明在于 以下所附的權(quán)利要求。
【權(quán)利要求】
1. 一種電路布置,包括: 集成電路芯片; 處理核心,布置在所述芯片上,并且包括發(fā)出單元和定點(diǎn)執(zhí)行單元,其中,所述發(fā)出單 元配置為向所述定點(diǎn)執(zhí)行單元發(fā)出指令以由所述定點(diǎn)執(zhí)行單元執(zhí)行;以及 外部輔助執(zhí)行單元(AXU)接口邏輯,布置在所述集成電路芯片上并且耦合到所述發(fā)出 單元,其中,所述外部AXU接口邏輯配置為接收由所述發(fā)出單元發(fā)出的指令,并且通過(guò)外部 AXU接口向芯片外AXU傳送所述指令以由所述芯片外AXU執(zhí)行。
2. 根據(jù)權(quán)利要求1所述的電路布置,其中,所述集成電路芯片是第一芯片,所述電路布 置進(jìn)一步包括第二芯片,芯片外AXU布置在該第二芯片上。
3. 根據(jù)權(quán)利要求2所述的電路布置,其中,從由以下構(gòu)成的組中選擇所述第二芯片:現(xiàn) 場(chǎng)可編程門陣列(FPGA)、專用集成電路(ASIC)和堆疊的裸片。
4. 根據(jù)權(quán)利要求1所述的電路布置,其中,所述外部AXU接口邏輯包括步降邏輯,該步 降邏輯配置為相對(duì)于所述處理核心的通信頻率降低外部AXU接口的通信頻率。
5. 根據(jù)權(quán)利要求1所述的電路布置,其中,所述外部AXU接口邏輯包括分組器邏輯,該 分組器邏輯配置為經(jīng)由分組傳送從所述發(fā)出單元接收的指令。
6. 根據(jù)權(quán)利要求1所述的電路布置,其中,所述外部AXU接口具有不確定的等待時(shí)間, 并且其中所述外部AXU接口邏輯被配置為響應(yīng)于向所述芯片外AXU發(fā)送指令而等待來(lái)自所 述芯片外AXU的響應(yīng),并且配置為響應(yīng)于未接收到所述響應(yīng)而以信號(hào)通知錯(cuò)誤。
7. -種電路布置,包括: 集成電路芯片; 輔助執(zhí)行單元(AXU),布置在所述集成電路芯片上;以及 外部AXU接口邏輯,布置在所述集成電路芯片上,并且配置為將所述AXU耦合到如權(quán)利 要求1中所述的電路布置,其中,所述外部AXU接口邏輯配置為通過(guò)外部AXU接口接收由所 述發(fā)出單元發(fā)出的指令,并且向所述AXU傳送所述指令以由所述AUX執(zhí)行。
8. 根據(jù)權(quán)利要求7所述的電路布置,其中,從由以下構(gòu)成的組中選擇所述集成電路:現(xiàn) 場(chǎng)可編程門陣列(FPGA);專用集成電路(ASIC);以及堆疊的裸片。
9. 根據(jù)權(quán)利要求1或權(quán)利要求8所述的電路布置,其中,所述外部AXU接口邏輯配置為 響應(yīng)于由所述AXU執(zhí)行指令而更新所述處理核心的所架構(gòu)的狀態(tài)。
10. -種在數(shù)據(jù)處理系統(tǒng)中執(zhí)行指令的方法,所述方法包括: 在集成電路芯片上布置的處理核心中,使用在所述處理核心中布置的發(fā)出單元向在所 述處理核心中布置的定點(diǎn)執(zhí)行單元發(fā)出第一指令,并且利用所述定點(diǎn)執(zhí)行單元來(lái)執(zhí)行所述 第一指令;以及 利用所述發(fā)出單元向芯片外輔助執(zhí)行單元(AXU)發(fā)出第二指令,包括使用在所述集成 電路芯片上布置的外部AXU接口邏輯來(lái)通過(guò)外部AXU接口向所述芯片外AXU發(fā)送所述第二 指令。
11. 根據(jù)權(quán)利要求10所述的方法,其中,所述集成電路芯片是第一芯片,并且其中所述 芯片外AXU布置在第二芯片上。
12. 根據(jù)權(quán)利要求11所述的方法,其中,從由以下構(gòu)成的組中選擇所述第二芯片:現(xiàn)場(chǎng) 可編程門陣列(FPGA)、專用集成電路(ASIC)和堆疊的裸片。
13. 根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括:利用在所述外部AXU接口邏輯中布置 的步降邏輯,相對(duì)于所述處理核心的通信頻率降低所述外部AXU接口的通信頻率。
14. 根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括:利用在所述外部AXU接口邏輯中布置 的分組器邏輯,經(jīng)由分組傳送從所述發(fā)出單元接收的第二指令。
15. 根據(jù)權(quán)利要求10所述的方法,其中,所述外部AXU接口具有不確定的等待時(shí)間, 并且其中所述方法進(jìn)一步包括:響應(yīng)于向所述芯片外AXU發(fā)送指令而等待來(lái)自所述芯片外 AXU的響應(yīng),并且響應(yīng)于未接收到所述響應(yīng)而以信號(hào)通知錯(cuò)誤。
16. 根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括:響應(yīng)于通過(guò)所述外部AXU接口從所述 芯片外AXU接收的數(shù)據(jù),更新所述處理核心的所架構(gòu)的狀態(tài)。
【文檔編號(hào)】G06F17/50GK104094222SQ201280067468
【公開(kāi)日】2014年10月8日 申請(qǐng)日期:2012年12月19日 優(yōu)先權(quán)日:2012年1月18日
【發(fā)明者】E.梅杰德里奇, R.謝勒, P.沙特, C.V.斯文森 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司