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

用于多核處理器中的核心間通信的方法、裝置和計(jì)算機(jī)程序產(chǎn)品的制作方法

文檔序號(hào):6533093閱讀:182來(lái)源:國(guó)知局
用于多核處理器中的核心間通信的方法、裝置和計(jì)算機(jī)程序產(chǎn)品的制作方法
【專利摘要】公開了用于在多核處理器集成電路體系結(jié)構(gòu)中的處理器單元之間的高效通信的本發(fā)明的方法、裝置和計(jì)算機(jī)程序產(chǎn)品實(shí)施例。在本發(fā)明的示例實(shí)施例中,一種方法包括:使用多核處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生的第一數(shù)據(jù)存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記存儲(chǔ)器中;以及響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心間通信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的消費(fèi)者處理器核心,以將來(lái)自所述第一標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
【專利說(shuō)明】用于多核處理器中的核心間通信的方法、裝置和計(jì)算機(jī)程 序產(chǎn)品

【技術(shù)領(lǐng)域】
[0001] 實(shí)施例涉及集成電路計(jì)算機(jī)處理器的體系結(jié)構(gòu),以及更具體地涉及在多核處理器 集成電路體系結(jié)構(gòu)中的處理器單元之間的高效通信。

【背景技術(shù)】
[0002] 傳統(tǒng)電話已經(jīng)演進(jìn)到智能電話,該智能電話具有高級(jí)的計(jì)算能力和無(wú)線連通性。 現(xiàn)代智能電話典型地包含:與移動(dòng)電話的傳統(tǒng)功能結(jié)合的高分辨率觸摸屏、網(wǎng)絡(luò)瀏覽器、 GPS導(dǎo)航、語(yǔ)音識(shí)別、聲音合成、視頻相機(jī)、Wi-Fi和移動(dòng)寬帶接入。通過(guò)在高密度、大規(guī)模集 成電路中實(shí)現(xiàn)智能電話的內(nèi)部電子組件已經(jīng)能夠在小的便攜式的封裝中提供非常多的復(fù) 雜技術(shù)。
[0003] 多核處理器是具體化在單個(gè)超大規(guī)模集成半導(dǎo)體芯片上的多處理系統(tǒng)。典型地, 兩個(gè)或更多處理器核心可以被具體化在多核處理器芯片上,由總線(也可以在相同的多核 處理器芯片上形成該總線)進(jìn)行互連。可以有從兩個(gè)處理器核心到許多處理器核心被具體 化在相同的多核處理器芯片上,在處理器核心的數(shù)量中的上限僅由制造能力和性能約束來(lái) 限制。多核處理器可以具有應(yīng)用,該應(yīng)用包含在多媒體和信號(hào)處理算法(諸如,視頻編碼/ 解碼、2D/3D圖形、音頻和語(yǔ)音處理、圖像處理、電話、語(yǔ)音識(shí)別和聲音合成)中執(zhí)行的專門 的算術(shù)和/或邏輯操作。


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

[0004] 公開了用于在多核處理器集成電路體系結(jié)構(gòu)中的處理器單元之間的高效通信的 本發(fā)明的方法、裝置和計(jì)算機(jī)程序產(chǎn)品實(shí)施例。
[0005] 在本發(fā)明的示例實(shí)施例中,一種方法包括:
[0006] 使用多核處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生的第一 數(shù)據(jù)存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記(token)存儲(chǔ)器中;以及
[0007] 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心間通 信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的消費(fèi)者處理器核心,以將來(lái)自所述 第一標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
[0008] 在本發(fā)明的示例實(shí)施例中,所述方法還包括:
[0009] 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第二類型的命令,使用所述共享的核心間通 信單元將位于所述存儲(chǔ)器地址空間的輸入標(biāo)記存儲(chǔ)器地址的輸入標(biāo)記存儲(chǔ)器連接到所述 多核處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第一標(biāo)記存儲(chǔ)器的輸入數(shù)據(jù)加載到所 述生產(chǎn)者處理器核心中;
[0010] 使用所述共享的核心間通信單元存儲(chǔ)由所述生產(chǎn)者處理器核心從所述輸入數(shù)據(jù) 產(chǎn)生的結(jié)果數(shù)據(jù),所述結(jié)果數(shù)據(jù)是被存儲(chǔ)在所述第一標(biāo)記存儲(chǔ)器中的所述第一數(shù)據(jù);以及 [0011] 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的所述第一類型的命令,使用所述共享的核心 間通信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述消費(fèi)者處理器核心,以將 來(lái)自所述第一標(biāo)記存儲(chǔ)器的所述結(jié)果數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
[0012] 在本發(fā)明的示例實(shí)施例中,所述方法還包括:
[0013] 使用所述共享的核心間通信單元將由所述消費(fèi)者處理器核心從所述第一所述結(jié) 果數(shù)據(jù)產(chǎn)生的第二結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第二存儲(chǔ)器地址的第二標(biāo) 記存儲(chǔ)器中。
[0014] 在本發(fā)明的示例實(shí)施例中,所述方法還包括:響應(yīng)于來(lái)自所述消費(fèi)者處理器核心 的命令,使用所述多核處理器的第二共享的核心間通信單元將所述第二標(biāo)記存儲(chǔ)器連接到 所述處理器核心的第三處理器核心,以將來(lái)自所述第二標(biāo)記存儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作 為管線數(shù)據(jù)加載到所述第三處理器核心中。
[0015] 在本發(fā)明的示例實(shí)施例中,所述方法還包括:
[0016] 使用所述第二共享的核心間通信單元將由所述第三處理器核心從所述第二結(jié)果 數(shù)據(jù)產(chǎn)生的第三結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第三存儲(chǔ)器地址的第三標(biāo)記 存儲(chǔ)器中。
[0017] 在本發(fā)明的示例實(shí)施例中,所述方法還包括:
[0018] 響應(yīng)于來(lái)自所述消費(fèi)者處理器核心的命令,使用所述共享的核心間通信單元將所 述第二標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第二標(biāo) 記存儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作為反饋數(shù)據(jù)加載到所述生產(chǎn)者處理器核心中。
[0019] 在本發(fā)明的示例實(shí)施例中,一種裝置包括:
[0020] 至少一個(gè)處理器;
[0021] 包含計(jì)算機(jī)程序代碼的至少一個(gè)存儲(chǔ)器;
[0022] 所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置為使用所述至少一個(gè)處理器 使得所述裝置至少:
[0023] 使用多核處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生的第一 數(shù)據(jù)存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記存儲(chǔ)器中;以及
[0024] 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心間通 信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的消費(fèi)者處理器核心,以將來(lái)自所述 第一標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
[0025] 在本發(fā)明的示例實(shí)施例中,一種計(jì)算機(jī)程序產(chǎn)品包括:記錄在計(jì)算機(jī)可讀的非短 暫性的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的程序代碼,當(dāng)由計(jì)算機(jī)處理器執(zhí)行所述計(jì)算機(jī)可執(zhí)行 的程序代碼時(shí),所述計(jì)算機(jī)可執(zhí)行的程序代碼使得裝置至少執(zhí)行以下 :
[0026] 使用多核處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生的第一 數(shù)據(jù)存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記存儲(chǔ)器中;以及
[0027] 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心間通 信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的消費(fèi)者處理器核心,以將來(lái)自所述 第一標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
[0028] 在這種方式,本發(fā)明的實(shí)施例提供了在多核處理器集成電路體系結(jié)構(gòu)中的處理器 單元之間的高效通信。

【專利附圖】

【附圖說(shuō)明】
[0029] 圖1說(shuō)明了依照本發(fā)明的示例實(shí)施例的多核處理器的系統(tǒng)體系結(jié)構(gòu)的示例實(shí)施 例,該多核處理器的系統(tǒng)體系結(jié)構(gòu)包含:第一處理器核心、第二處理器核心、多個(gè)標(biāo)記存儲(chǔ) 器以及在共享的核心間通信單元中的標(biāo)記控制功能單元,該標(biāo)記控制功能單元管理標(biāo)記存 儲(chǔ)器與第一處理器核心和第二處理器核心的連通性。
[0030] 圖1A說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了由共享的核心間通信單元管理的存儲(chǔ)器地址空間中的多個(gè)標(biāo)記存儲(chǔ)器。
[0031] 圖1B說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了在多核處理器內(nèi)的標(biāo)記存儲(chǔ)器分區(qū)中的多個(gè)標(biāo)記存儲(chǔ)器,該標(biāo)記存儲(chǔ)器分區(qū)是 由共享的核心間通信單元管理的存儲(chǔ)器地址空間的一部分。
[0032] 圖1C說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了訪問(wèn)圖1的高速緩存器和主存儲(chǔ)器系統(tǒng)的核心處理器的加載和存儲(chǔ)單元的示 例。
[0033] 圖1D說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了當(dāng)處理器訪問(wèn)由共享的核心間通信單元管理的存儲(chǔ)器地址空間中的預(yù)定地址范 圍時(shí),處理器核心的存儲(chǔ)器管理單元選擇性地指導(dǎo)處理器訪問(wèn)共享的通信單元和標(biāo)記存儲(chǔ) 器。
[0034] 圖1E說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了用于計(jì)算內(nèi)核(kernel)的數(shù)據(jù)流的示例,可以并行地在不同的處理器核心中來(lái) 執(zhí)行該計(jì)算內(nèi)核。
[0035] 圖2A說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,在初始狀態(tài)中具有連接到共享的核心間通信單元的空的輸出標(biāo)記存儲(chǔ)器,該圖示出了 斷開連接的輸入標(biāo)記存儲(chǔ)器,但是該輸入標(biāo)記存儲(chǔ)器先前已經(jīng)使用來(lái)自諸如處理器、輸入 設(shè)備或主存儲(chǔ)器系統(tǒng)的源的初始輸入數(shù)據(jù)進(jìn)行填充。例如,輸入設(shè)備可以是RF模塊接口, 其使用DMA以將樣本傳遞給被尋址的標(biāo)記存儲(chǔ)器單元。
[0036] 圖2B說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖2A的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了響應(yīng)于共享的核心間通信單元中的標(biāo)記控制功能單元接收get_data()命令,在 第一處理器核心中接收來(lái)自連接到共享的核心間通信單元的輸入標(biāo)記存儲(chǔ)器的輸入數(shù)據(jù)。
[0037] 圖2C說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖2B的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了第一處理器核心中的功能ALU單元處理輸入數(shù)據(jù)以及產(chǎn)生結(jié)果數(shù)據(jù)給連接到共 享的核心間通信單元的輸出標(biāo)記存儲(chǔ)器。
[0038] 圖2D說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖2C的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了響應(yīng)于共享的核心間通信單元中的標(biāo)記控制功能單元接收send_data()命令, 連接到共享的核心間通信單元的輸出標(biāo)記存儲(chǔ)器發(fā)送結(jié)果數(shù)據(jù)給第二處理器核心中的下 一個(gè)功能處理器。
[0039] 圖2E說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖2D的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,說(shuō)明了第二處理器核心中的功能ALU單元處理新的輸入數(shù)據(jù)以及產(chǎn)生新的結(jié)果數(shù)據(jù)給 連接到共享的核心間通信單元的第二輸出標(biāo)記存儲(chǔ)器。
[0040] 圖3說(shuō)明了依照本發(fā)明的示例實(shí)施例的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,其中 第一處理器核心和第二處理器核心是傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處理器。
[0041] 圖3A說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,在初始狀態(tài)中具有連接到共享的核心間通 信單元的空的輸出標(biāo)記存儲(chǔ)器,該圖示出了斷開連接的輸入標(biāo)記存儲(chǔ)器,但是該輸入標(biāo)記 存儲(chǔ)器先前已經(jīng)用來(lái)自源(諸如處理器、輸入設(shè)備或主存儲(chǔ)器系統(tǒng))的初始輸入數(shù)據(jù)進(jìn)行 填充。
[0042] 圖3B說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3A的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了響應(yīng)于共享的核心間通信單元中的 標(biāo)記控制功能單元接收get_data()命令,在第一處理器核心中接收來(lái)自連接到共享的核 心間通信單元的輸入標(biāo)記存儲(chǔ)器的輸入數(shù)據(jù)。
[0043] 圖3C說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3B的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了第一處理器核心中的功能ALU單元 處理輸入數(shù)據(jù)以及產(chǎn)生結(jié)果數(shù)據(jù)給連接到共享的核心間通信單元的輸出標(biāo)記存儲(chǔ)器。
[0044] 圖3D說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3C的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了響應(yīng)于共享的核心間通信單元中的 標(biāo)記控制功能單元接收send_data()命令,連接到共享的核心間通信單元的輸出標(biāo)記存儲(chǔ) 器發(fā)送結(jié)果數(shù)據(jù)給第二處理器核心中的下一個(gè)功能處理器。
[0045] 圖3E說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3D的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了第二處理器核心中的功能ALU單元 處理新的輸入數(shù)據(jù)以及產(chǎn)生新的結(jié)果數(shù)據(jù)給連接到共享的核心間通信單元的第二輸出標(biāo) 記存儲(chǔ)器。
[0046] 圖4A說(shuō)明了依照本發(fā)明的示例實(shí)施例的用于使用標(biāo)記存儲(chǔ)器的第一(簡(jiǎn)單)API 的操作的示例流程圖,對(duì)應(yīng)于圖2A至圖2E中示出的系統(tǒng)體系結(jié)構(gòu)的操作。
[0047] 圖4B說(shuō)明了依照本發(fā)明的示例實(shí)施例的獲得輸入標(biāo)記存儲(chǔ)器和輸出標(biāo)記存儲(chǔ)器 兩者以及在釋放它們之前同時(shí)使用它們兩者的內(nèi)核的操作的示例流程圖。
[0048] 圖4C說(shuō)明了根據(jù)本發(fā)明的示例實(shí)施例的在獲得輸出標(biāo)記存儲(chǔ)器之前釋放輸入標(biāo) 記存儲(chǔ)器的內(nèi)核的操作的示例流程圖。
[0049] 圖5說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器的操作的示例流程圖。
[0050] 圖6A說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器的系統(tǒng)體 系結(jié)構(gòu)的示例實(shí)施例,其中標(biāo)記存儲(chǔ)器被組織成管線。
[0051] 圖6B說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器的系統(tǒng)體 系結(jié)構(gòu)的示例實(shí)施例,其中超過(guò)兩個(gè)處理器核心被連接到一個(gè)共享的核心間通信單元。
[0052] 圖6C說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器的系統(tǒng)體 系結(jié)構(gòu)的示例實(shí)施例,其中在長(zhǎng)管線中超過(guò)兩個(gè)處理器核心被連接。
[0053] 圖6D說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器的系統(tǒng)體 系結(jié)構(gòu)的示例實(shí)施例,其中在雙管線中超過(guò)兩個(gè)處理器核心被連接。
[0054] 圖6E說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器的系統(tǒng)體 系結(jié)構(gòu)的示例實(shí)施例,其中內(nèi)核啟動(dòng)(firing)的結(jié)果被處理以及被反饋以用于內(nèi)核的下一 次執(zhí)行。
[0055] 圖7說(shuō)明了依照本發(fā)明的至少一個(gè)實(shí)施例的本發(fā)明的示例實(shí)施例,其中示出了基 于磁、電和/或光技術(shù)的可移動(dòng)的存儲(chǔ)介質(zhì)的示例,諸如磁盤、光盤、半導(dǎo)體存儲(chǔ)電路設(shè)備 和微-SD存儲(chǔ)卡(SD指安全數(shù)字標(biāo)準(zhǔn))以用于存儲(chǔ)數(shù)據(jù)和/或如示例計(jì)算機(jī)程序產(chǎn)品的計(jì) 算機(jī)程序代碼。
[0056] 圖8A說(shuō)明了依照本發(fā)明的至少一個(gè)實(shí)施例的本發(fā)明的示例實(shí)施例,其中多核處 理器MP是移動(dòng)電話800A的組件。
[0057] 圖8B說(shuō)明了依照本發(fā)明的至少一個(gè)實(shí)施例的本發(fā)明的示例實(shí)施例,其中多核處 理器MP是智能電話800B的組件。
[0058] 圖8C說(shuō)明了依照本發(fā)明的至少一個(gè)實(shí)施例的本發(fā)明的示例實(shí)施例,其中多核處 理器MP是便攜式計(jì)算機(jī)800C的組件。

【具體實(shí)施方式】
[0059] 多核處理器是具體化在單個(gè)大規(guī)模集成半導(dǎo)體芯片上的多處理系統(tǒng)。典型地,兩 個(gè)或更多處理器核心可以被具體化在多核處理器芯片上,由總線(也可以在相同的多核處 理器芯片上形成該總線)進(jìn)行互連??梢杂袕膬蓚€(gè)處理器核心到許多處理器核心被具體化 在相同的多核處理器芯片上,在處理器核心的數(shù)量中的上限僅由制造能力和性能約束來(lái)限 制。多核處理器可以具有應(yīng)用,該應(yīng)用包含在多媒體和信號(hào)處理算法(諸如,視頻編碼/解 碼、2D/3D圖形、音頻和語(yǔ)音處理、圖像處理、電話、語(yǔ)音識(shí)別和聲音合成)中執(zhí)行的專門的 算術(shù)和/或邏輯操作。
[0060] 軟件定義的無(wú)線電基帶應(yīng)用常常要求在計(jì)算內(nèi)核的不同實(shí)例之間傳遞大數(shù)據(jù)塊 或數(shù)據(jù)標(biāo)記。大數(shù)據(jù)塊或數(shù)據(jù)標(biāo)記的示例包含:基于在單個(gè)內(nèi)核啟動(dòng)期間(諸如在快速傅 里葉變換操作期間)典型地需要的數(shù)據(jù)的數(shù)量,典型地在大小上從一個(gè)分組到更大的塊的 范圍中的接收的樣本流的同相/正交相位α/Q)樣本。其它示例可以包含:在長(zhǎng)期演進(jìn) (LTE)混合自動(dòng)重傳請(qǐng)求(HARQ)緩沖器中加載或卸載的數(shù)據(jù)。如果內(nèi)核產(chǎn)生的標(biāo)記在不同 于該內(nèi)核正在消耗的處理器核心的處理器核心上來(lái)執(zhí)行,則必須應(yīng)用一些形式的核心間通 信。高效的核心間通信應(yīng)當(dāng)具有可以預(yù)測(cè)的存儲(chǔ)器存取時(shí)延以使得能夠?qū)崟r(shí)地分析以及確 保最后期限,以及還應(yīng)當(dāng)具有低的時(shí)延和低的能量消耗。
[0061] 公開了用于在多核處理器集成電路體系結(jié)構(gòu)中的處理器單元之間的高效通信的 本發(fā)明的方法、裝置和計(jì)算機(jī)程序產(chǎn)品實(shí)施例。
[0062] 圖1說(shuō)明了本發(fā)明的示例實(shí)施例,示出了多核處理器MP的示例系統(tǒng)體系結(jié)構(gòu)。依 照本發(fā)明的示例實(shí)施例,多核處理器MP可以包含:第一處理器核心X、第二處理器核心Y、多 個(gè)標(biāo)記存儲(chǔ)器15A、15B、15C、1?和15E以及在共享的核心間通信單元3中的標(biāo)記控制功能 單元FU-CTL,該標(biāo)記控制功能單元FU-CTL管理標(biāo)記存儲(chǔ)器與第一處理器核心和第二處理 器核心的連通性。復(fù)用器50由核心間通信單元3中的標(biāo)記控制功能單元(⑶-CTL)來(lái)控制 以使標(biāo)記存儲(chǔ)器15A、15B、15C、1?和15E與第一處理器核心X和第二處理器核心Y互連。
[0063] 在本發(fā)明的示例實(shí)施例中,核心X可以包含:存儲(chǔ)器管理單元5X、加載和存儲(chǔ)單 元功能單元FU-1 (其執(zhí)行指令I(lǐng)NST-1)、算術(shù)/邏輯(ALU)功能單元FU-2(其執(zhí)行指令 INST-2)以及定制功能單元FU-3 (其執(zhí)行指令I(lǐng)NST-3)。指令總線12X提供指令給指令單 元40X,指令單元40X進(jìn)而依照系統(tǒng)定時(shí)器20將指令應(yīng)用于處理器核心X。
[0064] 類似地,在本發(fā)明的示例實(shí)施例中,核心Y可以包含:存儲(chǔ)器管理單元5Y、加載和 存儲(chǔ)單元功能單元FU-7 (其執(zhí)行指令I(lǐng)NST-7)、算術(shù)/邏輯(ALU)功能單元FU-8 (其執(zhí)行指 令I(lǐng)NST-8)以及定制功能單元FU-9 (其執(zhí)行指令I(lǐng)NST-9)。指令總線12Υ提供指令給指令 單元40Υ,指令單元40Υ進(jìn)而依照系統(tǒng)定時(shí)器20將指令應(yīng)用于處理器核心Υ。
[0065] 在本發(fā)明的示例實(shí)施例中,處理器核心X和處理器核心Υ可以由共享的核心間通 信單元3來(lái)互連??偩€14Α將處理器核心X與共享核心間通信單元3中的標(biāo)記加載和存儲(chǔ) 功能單元FU-4互連??偩€14Β將處理器核心Υ與共享核心間通信單元3中的標(biāo)記加載和 存儲(chǔ)功能單元FU-6互連。標(biāo)記控制單元FU-CTL分別經(jīng)由總線14Α和總線14Β連接到處理 器核心X和處理器核心Υ兩者。標(biāo)記控制單元FU-CTL可以包含在圖1Α中示出的地址空間 100中的標(biāo)記存儲(chǔ)器15A、15B、15C、1?和15Ε的地址的存儲(chǔ)器地址映射。復(fù)用器50由標(biāo) 記控制單元FU_CTL控制以將標(biāo)記存儲(chǔ)器15A、15B、15C、1?和15E與處理器核心X和處理 器核心Y互連。共享的核心間通信單元3可以接收來(lái)自處理器核心X和處理器核心Y的命 令,諸如get_data()或send_data(),該命令對(duì)應(yīng)于存儲(chǔ)器地址空間100中的標(biāo)記存儲(chǔ)器 15A、15B、15C、iro和15E的預(yù)定的地址范圍。get_data()或send_data()指令可以是在處 理器核心X和處理器核心Y中執(zhí)行的指令流的一部分。最可能的是,get_data()或send_ data ()指令可以來(lái)源于與核心X的FU-2功能處理器相關(guān)聯(lián)的指令解碼器18X或與核心Y 的FU-8功能處理器相關(guān)聯(lián)的指令解碼器18Y。但是,因?yàn)镕U-2可以是處理器核心X的一部 分以及FU-8可以是處理器核心Y的一部分,所以還可能的是一些其它的個(gè)體功能處理器單 元是這些指令的源。在標(biāo)記控制單元FU-CTL中的存儲(chǔ)器地址映射與物理地址空間和在功 能單元FU-2或FU-8中執(zhí)行的指令代碼中使用的一組符號(hào)地址名有關(guān)。
[0066] 在本發(fā)明的示例實(shí)施例中,可以有從兩個(gè)處理器核心到許多處理器核心被具體化 在相同的多核處理器MP芯片上,在處理器核心的數(shù)量中的上限僅由制造能力和性能約束 來(lái)限制。在本發(fā)明的示例實(shí)施例中,處理器核心X和處理器核心Y可以是相同的核心。在 本發(fā)明的示例實(shí)施例中,處理器核心X和處理器核心Y可以是不相的。在本文中,交換地使 用術(shù)語(yǔ)功能單元、功能處理器和功能處理器單元。
[0067] 圖1A說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,圖1的多核處 理器體系結(jié)構(gòu)可以包含由共享的核心間通信單元3管理的存儲(chǔ)地址空間100中的多個(gè)標(biāo)記 存儲(chǔ)器15A、15B、15C、1?和15E。每個(gè)標(biāo)記LSU單元位于該標(biāo)記LSU單元連接到的處理器 核心的本地存儲(chǔ)器地址空間中的預(yù)定的地址范圍。例如,標(biāo)記LSU單元FU-4位于處理器核 心X的本地地址空間90X中的預(yù)定的地址范圍中,以及標(biāo)記LSU單元FU-6位于處理器核心 Y的本地地址空間90Y中的預(yù)定的地址范圍中。處理器核心X和處理器核心Y的本地地址 空間90X和90Y可以彼此獨(dú)立以及獨(dú)立于地址空間100。
[0068] 每個(gè)標(biāo)記存儲(chǔ)器位于存儲(chǔ)器地址空間100的預(yù)定的地址范圍中,在由處理器核心 X處理的指令流中可以由標(biāo)記LSU單元FU-4來(lái)識(shí)別該預(yù)定的地址范圍,以及類似地,在由處 理器核心Y處理的指令流中可以由標(biāo)記LSU單元FU-6來(lái)識(shí)別該預(yù)定的地址范圍。標(biāo)記存 儲(chǔ)器15A在地址范圍A中。標(biāo)記存儲(chǔ)器15B在地址范圍B中。標(biāo)記存儲(chǔ)器15C在地址范圍 C中。標(biāo)記存儲(chǔ)器在地址范圍D中。標(biāo)記存儲(chǔ)器15E在地址范圍E中。
[0069] 在本發(fā)明的示例實(shí)施例中,當(dāng)處理器核心X中的指令解碼單元18X或一些其它功 能單元識(shí)別了由處理器核心X中的功能處理器處理的指令流中的預(yù)定的標(biāo)記存儲(chǔ)器地址 時(shí),可以通過(guò)總線14A將該地址或相關(guān)的命令發(fā)送給標(biāo)記控制單元FU-CTL。標(biāo)記控制單元 FU-CTL將在存儲(chǔ)器地址映射中查詢正在被尋址的標(biāo)記存儲(chǔ)器的物理地址(或虛擬地址), 以及將使得加載和存儲(chǔ)單元FU-1將這個(gè)信息發(fā)送給復(fù)用器50以使得復(fù)用器50將正在被 尋址的標(biāo)記存儲(chǔ)器連接到處理器核心X中的功能處理器。
[0070] 在本發(fā)明的示例實(shí)施例中,當(dāng)處理器核心Y中的指令解碼單元18Y或一些其它功 能單元識(shí)別了由處理器核心Y中的功能處理器處理的指令流中的預(yù)定的標(biāo)記存儲(chǔ)器地址 時(shí),可以通過(guò)總線14B將該地址或相關(guān)的命令發(fā)送給標(biāo)記控制單元FU-CTL。標(biāo)記控制單元 FU-CTL將在存儲(chǔ)器地址映射中查詢正在被尋址的標(biāo)記存儲(chǔ)器的物理地址(或虛擬地址), 以及將使得加載和存儲(chǔ)單元FU-7將這個(gè)信息發(fā)送給復(fù)用器50以使得復(fù)用器50將被尋址 的標(biāo)記存儲(chǔ)器連接到處理器核心Y中的功能處理器。
[0071] 圖1B說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,圖1A的多核處 理器體系結(jié)構(gòu)可以包含在多核心處理器MP內(nèi)形成的在標(biāo)記存儲(chǔ)器分區(qū)100'中的多個(gè)標(biāo)記 存儲(chǔ)器15A、15B、15C、1?和15E,該標(biāo)記存儲(chǔ)器分區(qū)100'是由共享的核心間通信單元3管 理的存儲(chǔ)地址空間100的一部分。
[0072] 圖1C說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,圖1的多核處 理器體系結(jié)構(gòu)可以包含:訪問(wèn)圖1的主存儲(chǔ)器系統(tǒng)的L1高速緩存器、L2高速緩存器48、L3 高速緩存器186和/或主存儲(chǔ)器184的存儲(chǔ)器核心X中的加載和存儲(chǔ)單元FU-1和存儲(chǔ)器 核心Y中的加載和存儲(chǔ)單元FU-7的示例。在本發(fā)明的示例實(shí)施例中,主存儲(chǔ)器總線12可 以連接到在相同的半導(dǎo)體芯片上的或分離的半導(dǎo)體芯片的2級(jí)(L2)高速緩存器186。L2 高速緩存器可以連接到數(shù)據(jù)和/或程序指令的片外L3高速緩存器186和主存儲(chǔ)器184和 /或其它形式的大容量存儲(chǔ)介質(zhì)。在本發(fā)明的示例實(shí)施例中,當(dāng)處理器核心Y中的存儲(chǔ)器 管理單元5Y識(shí)別了在由處理器核心Y中的功能處理器處理的指令流中的主存儲(chǔ)器系統(tǒng)的 預(yù)定的存儲(chǔ)器地址時(shí),由核心Y中的加載和存儲(chǔ)單元FU-7來(lái)處理該地址。類似地,當(dāng)處理 器核心X中的存儲(chǔ)器管理單元5X識(shí)別了在由處理器核心X中的功能處理器處理的指令流 中的主存儲(chǔ)器系統(tǒng)的預(yù)定的存儲(chǔ)器地址時(shí),由核心X中的加載和存儲(chǔ)單元FU-1來(lái)處理該地 址。
[0073] 圖1D說(shuō)明了本發(fā)明的示例實(shí)施例,示出了用于通用處理器的示例實(shí)現(xiàn)方式。依 照本發(fā)明的示例實(shí)施例,圖1的多核處理器體系結(jié)構(gòu)可以包含處理器核心X的存儲(chǔ)器管理 單元5X和處理器核心Y的存儲(chǔ)器管理單元5Y,當(dāng)在處理器中處理的指令訪問(wèn)由共享的核 心間通信單元3所管理的存儲(chǔ)器地址空間100中的標(biāo)記存儲(chǔ)器的預(yù)定的地址范圍時(shí),存儲(chǔ) 器管理單元有選擇地指導(dǎo)處理器訪問(wèn)共享的通信單元3和標(biāo)記存儲(chǔ)器15A、15B、15C、1?和 15E。在本發(fā)明的示例實(shí)施例中,處理器核心X中的存儲(chǔ)器管理單元5X將預(yù)定的地址范圍 0X00FF-0X2FFF分配給主存儲(chǔ)器系統(tǒng)中的存儲(chǔ)器地址,以及正在被處理的訪問(wèn)該范圍內(nèi)的 存儲(chǔ)器位置的指令將由核心X中的加載和存儲(chǔ)單元FU-1來(lái)處理。在本發(fā)明的示例實(shí)施例 中,在處理器核心X中的存儲(chǔ)器管理單元5X將預(yù)定的地址范圍0X3000-0X3FFF分配給標(biāo)記 存儲(chǔ)器地址空間100中的存儲(chǔ)器地址,該地址或有關(guān)的命令由存儲(chǔ)器管理單元5X通過(guò)總線 14A發(fā)送給標(biāo)記控制單元FU-CTL以用于由共享通信單元3中的加載和存儲(chǔ)單元FU-4來(lái)處 理。類似地,在本發(fā)明的示例實(shí)施例中,在處理器核心Y中的存儲(chǔ)器管理單元5Y將預(yù)定的 地址范圍0X4000-0X4FFF分配給標(biāo)記存儲(chǔ)器地址空間100中的存儲(chǔ)器地址,該地址或有關(guān) 的命令由存儲(chǔ)器管理單元5Y通過(guò)總線14B發(fā)送給標(biāo)記控制單元FU-CTL以用于由共享通信 單元3中的加載和存儲(chǔ)單元FU-6來(lái)處理。
[0074] 在這點(diǎn)上具有的指導(dǎo)意義是,將圖1D中示出的用于通用處理器的示例實(shí)施例與 在圖3和圖3A至圖3E中示出的示例傳輸觸發(fā)體系結(jié)構(gòu)(TTA)進(jìn)行比較。在TTA處理器核 心中,可能未必存在應(yīng)付所有的存儲(chǔ)器地址轉(zhuǎn)換的任何單個(gè)存儲(chǔ)器管理單元。例如,如果有 多個(gè)LSU,則每個(gè)LSU可以連接到不同的邏輯和/或物理存儲(chǔ)器地址空間和存儲(chǔ)器分級(jí)體 系。因此,實(shí)現(xiàn)用于標(biāo)記存儲(chǔ)器的存儲(chǔ)器空間的實(shí)際物理存儲(chǔ)器設(shè)備可以是公共存儲(chǔ)器系 統(tǒng)的一部分,或可替代地,它可以是分離的物理存儲(chǔ)器。
[0075] 在本發(fā)明的示例實(shí)施例中,處理器核心X和核心Y可以被具體化在兩個(gè)或更多的 分離的半導(dǎo)體芯片上,該分離的半導(dǎo)體芯片由共享的核心間通信單元3互連以及被封裝在 多芯片模塊中。使處理器核心X與共享的核心間通信單元3互連的總線14A和使處理器核 心Y與共享的核心間通信單元3互連的總線14B可以被具體化成兩種線路,時(shí)鐘線以及數(shù) 據(jù)線,該數(shù)據(jù)線使用不歸零信號(hào)來(lái)表示二進(jìn)制值。在本發(fā)明的示例實(shí)施例中,存儲(chǔ)器總線12 可以連接到圖7中示出的基于磁、電和/或光技術(shù)的可移動(dòng)存儲(chǔ)介質(zhì)126,諸如磁盤、光盤、 半導(dǎo)體存儲(chǔ)電路設(shè)備和微-SD半導(dǎo)體存儲(chǔ)卡(SD指安全數(shù)字標(biāo)準(zhǔn)),其可以例如用于程序代 碼和/或數(shù)據(jù)輸入/輸出構(gòu)件。
[0076] 參照?qǐng)D1,在本發(fā)明的示例實(shí)施例中,存儲(chǔ)器總線12可以連接到主機(jī)設(shè)備180,諸 如網(wǎng)絡(luò)元素、直接存儲(chǔ)器存?。―MA)控制器、微控制器、數(shù)字信號(hào)處理器或存儲(chǔ)器控制器。 如本文中使用的術(shù)語(yǔ)"主機(jī)設(shè)備"可以包含可以發(fā)起訪問(wèn)從屬設(shè)備的任何設(shè)備,以及不應(yīng)當(dāng) 限于網(wǎng)絡(luò)元素、直接存儲(chǔ)器存?。―MA)控制器、微控制器、數(shù)字信號(hào)處理器或存儲(chǔ)器控制器 的給定示例。在本發(fā)明的示例實(shí)施例中,存儲(chǔ)器總線10可以連接到任何種類的外圍接口 182,諸如相機(jī)、顯示器、音頻、鍵盤或串行接口。依照本發(fā)明的至少一個(gè)實(shí)施例,如本文中使 用的術(shù)語(yǔ)"外圍接口"可以包含能夠由處理器或主機(jī)設(shè)備訪問(wèn)的任何設(shè)備,以及不應(yīng)當(dāng)限制 于相機(jī)、顯示器、音頻、鍵盤或串行接口的給定示例。
[0077] 在本發(fā)明的示例實(shí)施例中,處理器核心X和處理器核心Y可以實(shí)現(xiàn)專門的體系結(jié) 構(gòu),諸如超標(biāo)量、超長(zhǎng)指令字(VLIW)、向量處理、單指令/多數(shù)據(jù)(SMD)、專用指令集(ASIP) 處理或多線程。在本發(fā)明的示例實(shí)施例中,在多核處理器MP中的功能處理器FU-2、FU-3、 FU-8和FU-9可以具有應(yīng)用,該應(yīng)用包含在多媒體和信號(hào)處理算法(諸如,視頻編碼/解碼、 2D/3D圖形、音頻和語(yǔ)音處理、圖像處理、電話、語(yǔ)音識(shí)別和聲音合成)中執(zhí)行的專門的算術(shù) 和/或邏輯操作。
[0078] 圖1E說(shuō)明了在圖1的多核處理器體系結(jié)構(gòu)中的示例數(shù)據(jù)流的本發(fā)明的示例實(shí)施 例。依照本發(fā)明的示例實(shí)施例,該圖說(shuō)明了用于計(jì)算內(nèi)核I、J、K和計(jì)算內(nèi)核L的數(shù)據(jù)流的 示例,可以并行地在不同的處理器核心中來(lái)執(zhí)行該計(jì)算內(nèi)核。在該圖中,圖頂點(diǎn)I、J、K和L 表示可以并行地在不同的核心中執(zhí)行的計(jì)算內(nèi)核。在數(shù)據(jù)流圖中的邊表示用于從一個(gè)內(nèi)核 向另一個(gè)內(nèi)核運(yùn)送數(shù)據(jù)的內(nèi)核和隊(duì)列存儲(chǔ)器之間的通信。當(dāng)啟動(dòng)內(nèi)核時(shí),它消耗來(lái)自它的 輸入隊(duì)列的一些數(shù)量的數(shù)據(jù)標(biāo)記,執(zhí)行計(jì)算,以及將一個(gè)或多個(gè)結(jié)果標(biāo)記寫到一個(gè)或多個(gè) 輸出隊(duì)列。如果當(dāng)啟動(dòng)每個(gè)內(nèi)核時(shí)標(biāo)記消耗和產(chǎn)生的數(shù)量是不變的,則數(shù)據(jù)流模型被稱為 靜態(tài)數(shù)據(jù)流,以及在編譯時(shí)間期間可以分析一些屬性(諸如啟動(dòng)調(diào)度、無(wú)死鎖保證、最后期 限保證和需要的標(biāo)記存儲(chǔ)器的大?。?。如果在執(zhí)行期間消耗的標(biāo)記的數(shù)量變化,諸如在依 賴于數(shù)據(jù)執(zhí)行中,則在一般情況下,不能分析那些屬性,以及該數(shù)據(jù)流模型被稱為動(dòng)態(tài)數(shù)據(jù) 流。本發(fā)明的實(shí)施例可以應(yīng)用于靜態(tài)數(shù)據(jù)流和動(dòng)態(tài)數(shù)據(jù)流兩者。
[0079] 圖2A說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器體系結(jié)構(gòu)的示例實(shí)施 例,在初始狀態(tài)中具有由復(fù)用器50連接到共享的核心間通信單元3的空的輸出標(biāo)記存儲(chǔ)器 15B,該圖示出了斷開連接的輸入標(biāo)記存儲(chǔ)器15A,但是該輸入標(biāo)記存儲(chǔ)器15A先前已經(jīng)用 來(lái)自諸如處理器或主存儲(chǔ)器系統(tǒng)的源的初始輸入數(shù)據(jù)進(jìn)行填充。例如,輸入設(shè)備可以是RF 模塊接口,其使用DMA以將樣本傳遞給被尋址的標(biāo)記存儲(chǔ)器單元。
[0080] 圖2B說(shuō)明了本發(fā)明的示例實(shí)施例,其中圖2A的多核處理器體系結(jié)構(gòu)可以包含由 處理器核心X中的功能處理器ALU FU-2來(lái)處理指令流。該指令流可以具有指令,該指令用 于訪問(wèn)地址范圍A內(nèi)的標(biāo)記存儲(chǔ)器15A,該標(biāo)記存儲(chǔ)器15A被映射到核心X的本地地址空間 90X內(nèi)的標(biāo)記LSU FU-4,通過(guò)使用復(fù)用器50將FU-4連接到標(biāo)記存儲(chǔ)器,該標(biāo)記存儲(chǔ)器15A 進(jìn)一步被映射到存儲(chǔ)器地址空間100。處理器X向標(biāo)記控制單元LSU-CTL發(fā)送get_data(A) 命令。響應(yīng)于get_data (A)命令,標(biāo)記控制單元FU-CTL配置復(fù)用器50,以便針對(duì)標(biāo)記存儲(chǔ) 器15A執(zhí)行至關(guān)聯(lián)于標(biāo)記LSU FU-4的本地地址空間范圍90X的核心X的存儲(chǔ)器操作。在 這個(gè)示例中,在指令流中的指令將來(lái)自標(biāo)記存儲(chǔ)器15A的數(shù)據(jù)加載到功能處理器ALU FU-2 的寄存器文件中。FU-CTL可以在它的存儲(chǔ)器地址映射中查詢被尋址的標(biāo)記存儲(chǔ)器15A的物 理地址(或虛擬地址),使用它的仲裁器來(lái)檢查沖突訪問(wèn)或預(yù)留,以及然后使得拒絕或延時(shí) 復(fù)用器50的配置直到結(jié)束沖突訪問(wèn)或預(yù)留。
[0081] 圖2C說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,圖2B的多核處 理器體系結(jié)構(gòu)可以包含在處理器核心X中的功能處理器ALU FU-2,功能處理器ALU FU-2處 理來(lái)自標(biāo)記存儲(chǔ)器15A的輸入數(shù)據(jù)以及產(chǎn)生將被寫到連接到共享核心間通信單元3的輸出 標(biāo)記存儲(chǔ)器15B的結(jié)果數(shù)據(jù)。指令流可以具有指令,該指令用于訪問(wèn)本地地址范圍B內(nèi)的標(biāo) 記存儲(chǔ)器15B,該本地地址范圍B被映射到核心X的本地地址空間90X內(nèi)的標(biāo)記LSU FU-4, 通過(guò)使用復(fù)用器50將FU-4連接到標(biāo)記存儲(chǔ)器,該本地地址范圍B進(jìn)一步被映射到存儲(chǔ)器 地址空間100。處理器X向標(biāo)記控制單元LSU-CTL發(fā)送acquire_output(A)命令。響應(yīng)于 acquire_output (A)命令,標(biāo)記控制單元FU-CTL配置復(fù)用器50,以便針對(duì)標(biāo)記存儲(chǔ)器15B 執(zhí)行至關(guān)聯(lián)于標(biāo)記LSU FU-4的本地地址空間范圍B的核心X的存儲(chǔ)器操作。由處理器核 心X中的功能處理器ALU FU-2處理的指令流具有指令,該指令用于將結(jié)果數(shù)據(jù)寫到核心X 的本地存儲(chǔ)器地址空間90X內(nèi)的地址范圍B內(nèi)的標(biāo)記存儲(chǔ)器15B。標(biāo)記LSU單元FU-4識(shí)別 到這是至本地地址范圍B的訪問(wèn),以及將" Write_data(B) "命令轉(zhuǎn)發(fā)給由復(fù)用器50連接到 標(biāo)記LSU FU-4的標(biāo)記存儲(chǔ)器15B。
[0082] 圖2D說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,圖2C的多核處 理器體系結(jié)構(gòu)可以包含連接到共享的核心間通信單元3的輸出標(biāo)記存儲(chǔ)器15B,輸出標(biāo)記 存儲(chǔ)器15B響應(yīng)于共享核心間通信單元3中的標(biāo)記控制功能單元FU-CTL接收send_data () 命令,將結(jié)果數(shù)據(jù)提供給第二處理器核心Y中的下一個(gè)功能單元FU-8。由處理器核心X處 理的指令流具有指令,該指令用于將輸出標(biāo)記存儲(chǔ)器15B中的結(jié)果數(shù)據(jù)發(fā)送給第二處理器 核心Y。標(biāo)記存儲(chǔ)器15B在存儲(chǔ)器地址空間100內(nèi)的地址范圍內(nèi)。標(biāo)記LSU FU-4在核心X 的本地地址空間90X內(nèi)的地址范圍內(nèi),通過(guò)復(fù)用器50將標(biāo)記LSU FU-4連接到標(biāo)記存儲(chǔ)器 15B,該地址范圍被連接到地址空間100中的地址范圍B。處理器核心X將send_data (B)命 令發(fā)送給標(biāo)記控制單元FU-CTL,標(biāo)記控制單元FU-CTL配置復(fù)用器50以使標(biāo)記存儲(chǔ)器15B 與標(biāo)記LSU FU-4分開,以及在此之后將標(biāo)記存儲(chǔ)器15B連接到標(biāo)記LSU FU-6。FU-CTL可 以在它的存儲(chǔ)器地址映射中查詢被尋址的標(biāo)記存儲(chǔ)器15B的物理地址(或虛擬地址),使 用它的仲裁器來(lái)檢查沖突訪問(wèn)或預(yù)留,以及然后使得拒絕或延時(shí)復(fù)用器50的配置直到結(jié) 束沖突訪問(wèn)或預(yù)留。這可能是當(dāng)核心Y忙于處理一些先前數(shù)據(jù)以及標(biāo)記LSU FU-6連接到 一些其它標(biāo)記存儲(chǔ)器的情況,這將被認(rèn)為是預(yù)留沖突。可以通過(guò)觀察核心Y向FU-CTL發(fā)送 get_data()或acquire_input ()消息,這將指示核心Y準(zhǔn)備好開始處理下一個(gè)數(shù)據(jù),來(lái)安 全地檢測(cè)此類預(yù)留沖突的結(jié)束。在處理器核心X和處理器核心Y中操作可以由系統(tǒng)定時(shí)器 20來(lái)同步。
[0083] 圖2E說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,圖2D的多核處 理器體系結(jié)構(gòu)可以包含第二處理器核心Y中的功能處理器ALU FU-8,功能處理器ALU FU-8 處理來(lái)自標(biāo)記存儲(chǔ)器B的新的輸入數(shù)據(jù)以及產(chǎn)生新的結(jié)果數(shù)據(jù)給連接到共享的核心間通 信單元3的第二輸出標(biāo)記存儲(chǔ)器15C。由處理器核心Y處理的指令流具有指令,該指令用 于將第二結(jié)果數(shù)據(jù)寫到映射到標(biāo)記LSU FU-6的本地處理器核心Y的地址空間范圍90Y中, 標(biāo)記LSU FU-6由復(fù)用器50連接到存儲(chǔ)器地址空間100內(nèi)的地址范圍C內(nèi)的標(biāo)記存儲(chǔ)器 15C。作為對(duì)由處理器核心Y向共享的通信單元3中的標(biāo)記控制單元FU-CTL發(fā)送的send_ data(C)命令的響應(yīng),由標(biāo)記控制單元FU-CTL將該連接配置到復(fù)用器50。共享的通信單 元3中的標(biāo)記LSU單元FU-6識(shí)別到這是訪問(wèn)處理器核心Y的本地地址空間中的地址范圍 90Y,通過(guò)復(fù)用器50將標(biāo)記LSU FU-6連接到標(biāo)記存儲(chǔ)器15C,該地址范圍90Y被連接到地址 空間100中的地址范圍C。
[0084] 圖3說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,圖1的多核處 理器體系結(jié)構(gòu)可以包含:第一處理器核心X和第二處理器核心Y,該第一處理器核心X和第 二處理器核心Y是傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處理器。在本發(fā)明的不例實(shí)施例中,傳輸觸發(fā) 體系結(jié)構(gòu)(TTA)使得應(yīng)用程序能夠直接控制處理器核心的內(nèi)部總線以及在功能單元(FUs) FU-2、FU-8,它們的寄存器文件(RFs),存儲(chǔ)器加載/存儲(chǔ)單元(LSUs)FU-l、FU-7,以及其它 的處理器構(gòu)造塊之間的數(shù)據(jù)傳遞。可以是靜態(tài)進(jìn)行指令調(diào)度(在編譯時(shí)間),以及可以通過(guò) 使用超長(zhǎng)指令字(VLIW)體系結(jié)構(gòu)和多總線以并行地執(zhí)行數(shù)據(jù)傳遞來(lái)利用指令級(jí)并行化。 TTA體系結(jié)構(gòu)很好地適用于高性能計(jì)算,諸如無(wú)線電基帶處理。可以容易地針對(duì)應(yīng)用特定的 需要來(lái)添加定制功能單元FU-3、FU-9,因?yàn)橹噶钍菙?shù)據(jù)傳遞以及不需要添加新的指令以訪 問(wèn)定制的功能單元。TTA體系結(jié)構(gòu)的優(yōu)點(diǎn)是可以將結(jié)果直接地從生產(chǎn)FU轉(zhuǎn)發(fā)給消費(fèi)FU,從 而避免將中間結(jié)果存儲(chǔ)到寄存器。這可以允許更小的寄存器文件,更好的性能以及更低的 能量消耗。通過(guò)允許直接數(shù)據(jù)轉(zhuǎn)發(fā)可以避免瓶頸。所有這些益處可以使得TTA成為用于在 軟件定義的無(wú)線電(SDR)中的基帶處理器的好的選擇。
[0085] 在TTA處理器核心中,可以不必有應(yīng)付所有的存儲(chǔ)器地址轉(zhuǎn)換的任何單個(gè)存儲(chǔ)器 管理單元。例如,如果有多個(gè)LSU,則每個(gè)LSU可以連接到不同的邏輯和/或物理存儲(chǔ)器地 址空間和存儲(chǔ)器分級(jí)體系。因此,實(shí)現(xiàn)用于標(biāo)記存儲(chǔ)器的存儲(chǔ)器空間的實(shí)際物理存儲(chǔ)器設(shè) 備可以是公共存儲(chǔ)器系統(tǒng)的一部分,或可替代地,它可以是分離的物理存儲(chǔ)器。
[0086] 在本發(fā)明的示例實(shí)施例中,在使用具有兩種阻塞調(diào)用的簡(jiǎn)單應(yīng)用編程接口(API) 的TTA處理器核心中運(yùn)行的一個(gè)內(nèi)核中的示例處理可以包含以下:
[0087] 1.通過(guò)調(diào)用get_data(),接收來(lái)自TTA核心X中的生產(chǎn)者處理器FU-2的輸入數(shù) 據(jù)??梢詫⑦@個(gè)調(diào)用實(shí)現(xiàn)成至標(biāo)記控制單元FU-CTL的命令傳遞,標(biāo)記控制單元FU-CTL使 得復(fù)用器50將含有進(jìn)入數(shù)據(jù)標(biāo)記15A的存儲(chǔ)器空間100連接到TTA核心X。
[0088] 2.處理輸入數(shù)據(jù)以及產(chǎn)生結(jié)果給輸出標(biāo)記存儲(chǔ)器15B。在處理期間,輸入標(biāo)記存 儲(chǔ)器15A和輸出標(biāo)記存儲(chǔ)器15B兩者可以用作工作空間,因?yàn)樗鼈儗S糜赥TA處理器核心 X只要該處理在存儲(chǔ)器核心X中發(fā)生。
[0089] 3.通過(guò)調(diào)用Send_data〇將結(jié)果發(fā)送給下一個(gè)TTA處理器核心Y??梢詫⒃撜{(diào)用 實(shí)現(xiàn)成命令,該命令釋放輸出標(biāo)記存儲(chǔ)器15B (其將被用作TTA處理器核心Y的輸入標(biāo)記存 儲(chǔ)器),以及將輸出標(biāo)記存儲(chǔ)器15B連接到TTA處理器核心Y。
[0090] 在本發(fā)明的示例實(shí)施例中,API調(diào)用可以使得命令被傳遞到標(biāo)記控制單元FU-CTL 中,該標(biāo)記控制單元FU-CTL應(yīng)付當(dāng)消費(fèi)TTA處理器核心Y準(zhǔn)備好處理數(shù)據(jù)時(shí),將滿的標(biāo)記 存儲(chǔ)器15B重新連接到消費(fèi)TTA處理器核心Y。在處理器核心X如完成了先前的啟動(dòng)后,標(biāo) 記控制單元FU-CTL可以將空的標(biāo)記存儲(chǔ)器15A重新連接到生產(chǎn)者處理器核心X。
[0091] 在本發(fā)明的示例實(shí)施例中,圖3的示例多核TTA處理器MP被示出為具有動(dòng)態(tài)連接 的標(biāo)記存儲(chǔ)器15A和15B。該圖在功能處理器單元中使用小方形符號(hào)以表示端口。帶交叉線 的方形符號(hào)表示發(fā)起功能處理器單元的操作的端口(當(dāng)被訪問(wèn)時(shí))。在本發(fā)明的示例實(shí)施 例中,標(biāo)記控制FU-CTL將標(biāo)記存儲(chǔ)器15A和15B連接到加載存儲(chǔ)單元(LSU)FU-4和FU-6, 以及與其斷開連接。在本發(fā)明的示例實(shí)施例中,標(biāo)記存儲(chǔ)器15A和15B的數(shù)量可以大于兩 個(gè),這可以允許生產(chǎn)者TTA處理器核心在標(biāo)記存儲(chǔ)器被消耗前產(chǎn)生若干輸出數(shù)據(jù)標(biāo)記。在 本發(fā)明的示例實(shí)施例中,多個(gè)標(biāo)記存儲(chǔ)器可以使得它們能夠被串行化訪問(wèn)。
[0092] 在本發(fā)明的示例實(shí)施例中,可以引入優(yōu)化的API以更高效地使用標(biāo)記存儲(chǔ)器。優(yōu) 化的API可以包含以下指令:
[0093] Acquire_input()-獲取輸入標(biāo)記數(shù)據(jù)存儲(chǔ)器
[0094] ReleasejnputO -完成輸入處理,以及標(biāo)記數(shù)據(jù)存儲(chǔ)器可以由一些其它處理器 核心來(lái)使用
[0095] Acquire_output()-獲得空的輸出標(biāo)記數(shù)據(jù)存儲(chǔ)器
[0096] Release_output()-輸出標(biāo)記被斷開連接以及可以由下一個(gè)處理器核心來(lái)處理。
[0097] 在本發(fā)明的示例實(shí)施例中,Acquire_input()和Acquire_output()調(diào)用是阻塞性 的,即當(dāng)連接標(biāo)記存儲(chǔ)器時(shí),程序執(zhí)行繼續(xù)。這種優(yōu)化的API可以允許編程者在較短的時(shí)間 間隔內(nèi)預(yù)留標(biāo)記存儲(chǔ)器。與內(nèi)核執(zhí)行的持續(xù)時(shí)間相比當(dāng)對(duì)輸出標(biāo)記存儲(chǔ)器和/或輸入標(biāo)記 存儲(chǔ)器需要的連接的持續(xù)時(shí)間是短的時(shí),這可以是一種改進(jìn)。
[0098] 圖3A說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,在初始狀態(tài)中具有連接到共享的核心間通 信單元的空的輸出標(biāo)記存儲(chǔ)器,該圖示出了斷開連接的輸入標(biāo)記存儲(chǔ)器,但是該輸入標(biāo)記 存儲(chǔ)器先前已經(jīng)用來(lái)自源(諸如處理器、輸入設(shè)備或主存儲(chǔ)器系統(tǒng))的初始輸入數(shù)據(jù)進(jìn)行 填充。
[0099] 圖3B說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3A的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了響應(yīng)于共享的核心間通信單元中的 標(biāo)記控制功能單元接收get_data()命令,在第一處理器核心中接收來(lái)自連接到共享的核 心間通信單元的輸入標(biāo)記存儲(chǔ)器的輸入數(shù)據(jù)。
[0100] 圖3C說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3B的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了第一處理器核心中的功能ALU單元 處理輸入數(shù)據(jù)以及產(chǎn)生結(jié)果數(shù)據(jù)給連接到共享的核心間通信單元的輸出標(biāo)記存儲(chǔ)器。
[0101] 圖3D說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3C的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了響應(yīng)于共享的核心間通信單元中的 標(biāo)記控制功能單元接收send_data()命令,連接到共享的核心間通信單元的輸出標(biāo)記存儲(chǔ) 器發(fā)送結(jié)果數(shù)據(jù)給第二處理器核心中的下一個(gè)功能處理器。
[0102] 圖3E說(shuō)明了依照本發(fā)明的示例實(shí)施例的具有圖3D的傳輸觸發(fā)體系結(jié)構(gòu)(TTA)處 理器核心的多核處理器體系結(jié)構(gòu)的示例實(shí)施例,說(shuō)明了第二處理器核心中的功能ALU單元 處理新的輸入數(shù)據(jù)以及產(chǎn)生新的結(jié)果數(shù)據(jù)給連接到共享的核心間通信單元的第二輸出標(biāo) 記存儲(chǔ)器。
[0103] 圖4A說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,示例流程圖 200示出了用于使用標(biāo)記存儲(chǔ)器的第一 API的操作,對(duì)應(yīng)于圖2A至圖2E中示出的系統(tǒng)體系 結(jié)構(gòu)的操作。該圖說(shuō)明了由裝置(例如就地執(zhí)行存儲(chǔ)在該裝置的存儲(chǔ)器中的程序代碼的多 核處理器MP)執(zhí)行的過(guò)程的示例??梢詫⒃摿鞒虉D的過(guò)程具體化成以程序指令的序列的形 式存儲(chǔ)在該裝置的存儲(chǔ)器中的程序邏輯,當(dāng)在該裝置的邏輯中執(zhí)行該程序指令的序列時(shí), 該程序指令的序列實(shí)現(xiàn)示例性公開的實(shí)施例的功能??梢砸圆煌谑境龅钠渌樞騺?lái)實(shí)現(xiàn) 該過(guò)程,以及個(gè)體過(guò)程可以被組合或分離成組件過(guò)程??梢詫⒘硗獾倪^(guò)程插入到這個(gè)序列 中。該過(guò)程如下:
[0104] 202 :初始狀態(tài)(連接空的輸出標(biāo)記存儲(chǔ)器,斷開連接輸入標(biāo)記存儲(chǔ)器)
[0105] 204 :get_data()
[0106] 206 :執(zhí)行計(jì)算(輸入標(biāo)記存儲(chǔ)器、輸出標(biāo)記存儲(chǔ)器和本地存儲(chǔ)器可以用于計(jì)算)
[0107] 208 :send_data()
[0108] 然后,過(guò)程208環(huán)回到過(guò)程204。
[0109] 圖4B說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,示例流程圖 400示出了內(nèi)核的操作,該內(nèi)核的操作獲取輸入標(biāo)記存儲(chǔ)器和輸出標(biāo)記存儲(chǔ)器兩者以及在 釋放它們之前同時(shí)使用它們兩者。該圖說(shuō)明了由裝置(例如就地執(zhí)行存儲(chǔ)在該裝置的存儲(chǔ) 器中的程序代碼的多核處理器MP)實(shí)現(xiàn)的過(guò)程的示例??梢詫⒃摿鞒虉D的過(guò)程具體化成以 程序指令的序列的形式存儲(chǔ)在該裝置的存儲(chǔ)器中的程序邏輯,當(dāng)在該裝置的邏輯中執(zhí)行該 程序指令的序列時(shí),該程序指令的序列實(shí)現(xiàn)示例性公開的實(shí)施例的功能??梢砸圆煌谑?出的其它順序來(lái)執(zhí)行該過(guò)程,以及個(gè)體過(guò)程可以被組合或分離成組件過(guò)程。可以將另外的 過(guò)程插入到這個(gè)序列中。該過(guò)程如下:
[0110] 402 :初始狀態(tài)(斷開連接輸出標(biāo)記存儲(chǔ)器和輸入標(biāo)記存儲(chǔ)器)
[0111] 404 :acquire_input ()
[0112] 406 :執(zhí)行計(jì)算(輸入標(biāo)記存儲(chǔ)器和本地存儲(chǔ)器可以用于計(jì)算)
[0113] 408: acquire_output ()
[0114] 410 :執(zhí)行計(jì)算(輸入標(biāo)記存儲(chǔ)器、輸出標(biāo)記存儲(chǔ)器和本地存儲(chǔ)器可以用于計(jì)算)
[0115] 412:release_input ()
[0116] 414 :執(zhí)行計(jì)算(輸出標(biāo)記存儲(chǔ)器和本地存儲(chǔ)器可以用于計(jì)算)
[0117] 416: release_output ()
[0118] 然后,過(guò)程416環(huán)回到過(guò)程404。
[0119] release_output ()信號(hào)指示標(biāo)記準(zhǔn)備好,以及消費(fèi)者核心的acquire_input () 可以將標(biāo)記存儲(chǔ)器連接到消費(fèi)者核心。在消費(fèi)者核心已經(jīng)在生產(chǎn)者核心調(diào)用release outputO之前調(diào)用acquire_input()的情況下,可以有來(lái)自阻塞acquire_input()調(diào)用的 返回。
[0120] 圖4C說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的示例實(shí)施例,示例流程圖 450示出了內(nèi)核的操作,該內(nèi)核的操作在獲取輸出標(biāo)記存儲(chǔ)器之前釋放輸入標(biāo)記存儲(chǔ)器。該 圖說(shuō)明了由裝置(例如就地執(zhí)行存儲(chǔ)在該裝置的存儲(chǔ)器中的程序代碼的多核處理器MP)實(shí) 現(xiàn)的過(guò)程的示例??梢詫⒃摿鞒虉D的過(guò)程具體化成以程序指令的序列的形式存儲(chǔ)在該裝置 的存儲(chǔ)器中的程序邏輯,當(dāng)在該裝置的邏輯中執(zhí)行該程序指令的序列時(shí),該程序指令的序 列實(shí)現(xiàn)示例性公開的實(shí)施例的功能??梢砸圆煌谑境龅钠渌樞騺?lái)執(zhí)行該過(guò)程,以及個(gè) 體過(guò)程可以被組合或分離成組件過(guò)程??梢詫⒘硗獾倪^(guò)程插入到這個(gè)序列中。該過(guò)程如 下:
[0121] 452 :初始狀態(tài)(斷開連接輸出標(biāo)記存儲(chǔ)器和輸入標(biāo)記存儲(chǔ)器)
[0122] 454 :acquire_input ()
[0123] 456 :執(zhí)行計(jì)算(輸入標(biāo)記存儲(chǔ)器和本地存儲(chǔ)器可以用于計(jì)算)
[0124] 458: release_input ()
[0125] 460: acquire_output ()
[0126] 460 :執(zhí)行計(jì)算(輸出標(biāo)記存儲(chǔ)器和本地存儲(chǔ)器可以用于計(jì)算)
[0127] 464: release_output ()
[0128] 然后,過(guò)程416環(huán)回到過(guò)程404。
[0129] 圖5說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1的多核處理器的操作的示例流程圖 500。該圖說(shuō)明了由裝置(例如就地執(zhí)行存儲(chǔ)在該裝置的存儲(chǔ)器中的程序代碼的多核處理 器MP)實(shí)現(xiàn)的過(guò)程的示例??梢詫⒃摿鞒虉D的過(guò)程具體化成以程序指令的序列的形式存儲(chǔ) 在該裝置的存儲(chǔ)器中的程序邏輯,當(dāng)在該裝置的邏輯中執(zhí)行該程序指令的序列時(shí),該程序 指令的序列實(shí)現(xiàn)示例性公開的實(shí)施例的功能??梢砸圆煌谑境龅钠渌樞騺?lái)執(zhí)行該過(guò) 程,以及個(gè)體過(guò)程可以被組合或分離成組件過(guò)程??梢詫⒘硗獾倪^(guò)程插入到這個(gè)序列中。該 過(guò)程如下:
[0130] 502:使用多核心處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生 的第一數(shù)據(jù)存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記存儲(chǔ)器中;以及
[0131] 504:響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心 間通信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核心處理器的消費(fèi)者處理器核心,以將來(lái) 自所述第一標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
[0132] 圖6A說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器的系統(tǒng)體 系結(jié)構(gòu)的示例實(shí)施例,其中標(biāo)記存儲(chǔ)器被組織成管線多核處理器MP。圖6A的管線多核處理 器MP可以執(zhí)行以下過(guò)程:
[0133] 響應(yīng)于來(lái)自第一處理器核心X的第一命令"get_data(A)",使用共享的核心間通 信單元3將位于存儲(chǔ)器地址空間100的第一存儲(chǔ)器地址A的第一標(biāo)記存儲(chǔ)器15A連接到多 核處理器MP的第一處理器核心X,以將來(lái)自第一標(biāo)記存儲(chǔ)器15A的輸入數(shù)據(jù)加載到第一處 理器核心X。
[0134] 使用共享的核心間通信單元3將由第一處理器核心X從輸入數(shù)據(jù)產(chǎn)生的結(jié)果數(shù)據(jù) 存儲(chǔ)在位于存儲(chǔ)器地址空間100的第二存儲(chǔ)器地址B的第二標(biāo)記存儲(chǔ)器15B中。
[0135] 響應(yīng)于來(lái)自第一處理器核心X的第二命令"send_data(B) ",使用共享的核心間通 信單元3將位于存儲(chǔ)器地址空間100的第二存儲(chǔ)器地址B的第二標(biāo)記存儲(chǔ)器15B連接到多 核處理器MP的第二處理器核心Y,以將來(lái)自第二標(biāo)記存儲(chǔ)器15B的結(jié)果數(shù)據(jù)加載到第二處 理器核心Y。
[0136] 使用共享的核心間通信單元3將由第二處理器核心Y從第一所述結(jié)果數(shù)據(jù)產(chǎn)生的 第二結(jié)果數(shù)據(jù)存儲(chǔ)在位于存儲(chǔ)器地址空間1〇〇的第三存儲(chǔ)器地址C的第三標(biāo)記存儲(chǔ)器15C 中。
[0137] 響應(yīng)于來(lái)自第二處理器核心Y的第三命令"get_data(C)",使用共享的核心間通 信單元3'將位于存儲(chǔ)器地址空間100的第三存儲(chǔ)器地址C的第三標(biāo)記存儲(chǔ)器15C連接到 多核處理器MP的第三處理器核心Z,以將來(lái)自第三標(biāo)記存儲(chǔ)器15C的第二結(jié)果數(shù)據(jù)作為管 線數(shù)據(jù)加載到第三處理器核心Z。
[0138] 使用共享的核心間通信單元3'將由第三處理器核心Z從第二結(jié)果數(shù)據(jù)產(chǎn)生的第 三結(jié)果數(shù)據(jù)存儲(chǔ)在位于存儲(chǔ)器地址空間100的第四存儲(chǔ)器地址F的第四標(biāo)記存儲(chǔ)器15F 中。
[0139] 圖6B說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器MP的系統(tǒng) 體系結(jié)構(gòu)的示例實(shí)施例,其中超過(guò)兩個(gè)處理器核心X,X',Y,和Y'被連接到一個(gè)共享的核心 間通信單元3。
[0140] 圖6C說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器MP的系統(tǒng) 體系結(jié)構(gòu)的示例實(shí)施例,其中在長(zhǎng)管線中超過(guò)兩個(gè)處理器核心x,Y,z,z',Y'和X'被連接。
[0141] 圖6D說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器的系統(tǒng)體 系結(jié)構(gòu)的示例實(shí)施例,其中在雙管線中超過(guò)兩個(gè)處理器核心(在第一管線中的Χ,γ,ζ,以及 在第二管線中的X',Υ',Ζ')被連接。
[0142] 圖6Ε說(shuō)明了依照本發(fā)明的示例實(shí)施例的圖1和圖3的示例多核處理器ΜΡ的系統(tǒng) 體系結(jié)構(gòu)的示例實(shí)施例,其中內(nèi)核啟動(dòng)的結(jié)果被處理以及被反饋以用于該內(nèi)核的下一次執(zhí) 行。圖6Ε的管線多核處理器ΜΡ可以執(zhí)行以下過(guò)程:響應(yīng)于來(lái)自第二處理器核心Υ'的第三 命令"feedba Ck_data(C) ",使用共享的核心間通信單元3'將位于存儲(chǔ)器地址空間100的第 三存儲(chǔ)器地址C的第三標(biāo)記存儲(chǔ)器15C連接到多核處理器MP的第一處理器核心X,以將來(lái) 自第三標(biāo)記存儲(chǔ)器15C的第二結(jié)果數(shù)據(jù)作為反饋數(shù)據(jù)加載到第一處理器核心X中。
[0143] 圖7說(shuō)明了本發(fā)明的示例實(shí)施例,其中依照本發(fā)明的至少一個(gè)實(shí)施例的,示出了 基于磁、電和/或光技術(shù)的可移動(dòng)的存儲(chǔ)介質(zhì)126的示例,諸如磁盤、光盤、半導(dǎo)體存儲(chǔ)電路 設(shè)備和微-SD存儲(chǔ)卡(SD指安全數(shù)字標(biāo)準(zhǔn))以用于存儲(chǔ)數(shù)據(jù)和/或如示例計(jì)算機(jī)程序產(chǎn)品 的計(jì)算機(jī)程序代碼。
[0144] 依照本發(fā)明的示例實(shí)施例,在本發(fā)明的示例實(shí)施例中,多核處理器MP是電子設(shè)備 的組件,諸如例如圖8A中示出的移動(dòng)電話800A、圖8B中示出的智能電話800B或圖8C中示 出的便攜式計(jì)算機(jī)800C。
[0145] 使用本文中提供的描述,可以通過(guò)使用標(biāo)準(zhǔn)的編程和/或工程技術(shù)將實(shí)施例實(shí)現(xiàn) 成機(jī)器、過(guò)程或制造品以產(chǎn)生編程軟件、固件、硬件或其任何組合。
[0146] 可以將任何生成的程序(多個(gè))(具有計(jì)算機(jī)可讀程序代碼)具體化在一個(gè)或多 個(gè)計(jì)算機(jī)可使用的介質(zhì)上,諸如駐留存儲(chǔ)設(shè)備、智能卡或其它可移動(dòng)存儲(chǔ)設(shè)備,或傳送設(shè) 備,從而根據(jù)實(shí)施例來(lái)制作計(jì)算機(jī)程序產(chǎn)品和制造品。照此,如本文中使用的術(shù)語(yǔ)"制造品" 和"計(jì)算機(jī)程序產(chǎn)品"旨在涵蓋永久性地或臨時(shí)性地存在在任何計(jì)算機(jī)可以使用的非短暫 性的介質(zhì)上的計(jì)算機(jī)程序。
[0147] 如上所指出的,存儲(chǔ)器/存儲(chǔ)設(shè)備包含但不限制于磁盤、光盤、可移動(dòng)存儲(chǔ)設(shè)備 (諸如智能卡、訂戶身份模塊(SIM)、無(wú)線標(biāo)識(shí)模塊(WIM))、半導(dǎo)體存儲(chǔ)器(諸如隨機(jī)存取存 儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可編程只讀存儲(chǔ)器(PR0M))等。傳送介質(zhì)包含但不限于經(jīng) 由無(wú)線通信網(wǎng)絡(luò)、互聯(lián)網(wǎng)、內(nèi)部網(wǎng)、基于電話/調(diào)制解調(diào)器的網(wǎng)絡(luò)通信、硬連線/電纜通信網(wǎng) 絡(luò)、衛(wèi)星通信以及其它固定或移動(dòng)網(wǎng)絡(luò)系統(tǒng)/通信鏈路的傳輸。
[0148] 雖然已經(jīng)公開了特定的示例實(shí)施例,但是本領(lǐng)域的技術(shù)人員將理解的是,在不背 離本發(fā)明的精神和范圍的情況下,能夠?qū)μ囟ㄊ纠龑?shí)施例進(jìn)行改變。
【權(quán)利要求】
1. 一種方法,包括: 使用多核處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生的第一數(shù)據(jù) 存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記存儲(chǔ)器中;以及 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心間通信單 元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的消費(fèi)者處理器核心,以將來(lái)自所述第一 標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
2. 根據(jù)權(quán)利要求1所述的方法,所述方法還包括: 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第二類型的命令,使用所述共享的核心間通信單 元將位于所述存儲(chǔ)器地址空間的輸入標(biāo)記存儲(chǔ)器地址的輸入標(biāo)記存儲(chǔ)器連接到所述多核 處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第一標(biāo)記存儲(chǔ)器的輸入數(shù)據(jù)加載到所述生 產(chǎn)者處理器核心中; 使用所述共享的核心間通信單元存儲(chǔ)由所述生產(chǎn)者處理器核心從所述輸入數(shù)據(jù)產(chǎn)生 的結(jié)果數(shù)據(jù),所述結(jié)果數(shù)據(jù)是被存儲(chǔ)在所述第一標(biāo)記存儲(chǔ)器中的所述第一數(shù)據(jù);以及 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的所述第一類型的命令,使用所述共享的核心間通 信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述消費(fèi)者處理器核心,以將來(lái)自 所述第一標(biāo)記存儲(chǔ)器的所述結(jié)果數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
3. 根據(jù)權(quán)利要求2所述的方法,所述方法還包括: 使用所述共享的核心間通信單元將由所述消費(fèi)者處理器核心從所述第一所述結(jié)果數(shù) 據(jù)產(chǎn)生的第二結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第二存儲(chǔ)器地址的第二標(biāo)記存 儲(chǔ)器中。
4. 根據(jù)權(quán)利要求3所述的方法,所述方法還包括: 響應(yīng)于來(lái)自所述消費(fèi)者處理器核心的命令,使用所述多核處理器的第二共享的核心間 通信單元將所述第二標(biāo)記存儲(chǔ)器連接到所述處理器核心的第三處理器核心,以將來(lái)自所述 第二標(biāo)記存儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作為管線數(shù)據(jù)加載到所述第三處理器核心中。
5. 根據(jù)權(quán)利要求4所述的方法,所述方法還包括: 使用所述第二共享的核心間通信單元將由所述第三處理器核心從所述第二結(jié)果數(shù)據(jù) 產(chǎn)生的第三結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第三存儲(chǔ)器地址的第三標(biāo)記存儲(chǔ) 器中。
6. 根據(jù)權(quán)利要求3所述的方法,所述方法還包括: 響應(yīng)于來(lái)自所述消費(fèi)者處理器核心的命令,使用所述共享的核心間通信單元將所述第 二標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第二標(biāo)記存 儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作為反饋數(shù)據(jù)加載到所述生產(chǎn)者處理器核心中。
7. -種裝置,包括: 至少一個(gè)處理器; 包含計(jì)算機(jī)程序代碼的至少一個(gè)存儲(chǔ)器; 所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置為使用所述至少一個(gè)處理器使得 所述裝置至少: 使用多核處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生的第一數(shù)據(jù) 存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記存儲(chǔ)器中;以及 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心間通信單 元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的消費(fèi)者處理器核心,以將來(lái)自所述第一 標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
8. 根據(jù)權(quán)利要求7所述的裝置,所述裝置還包括: 所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置為使用所述至少一個(gè)處理器使得 所述裝置至少: 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第二類型的命令,使用所述共享的核心間通信單 元將位于所述存儲(chǔ)器地址空間的輸入標(biāo)記存儲(chǔ)器地址的輸入標(biāo)記存儲(chǔ)器連接到所述多核 處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第一標(biāo)記存儲(chǔ)器的輸入數(shù)據(jù)加載到所述生 產(chǎn)者處理器核心中; 使用所述共享的核心間通信單元存儲(chǔ)由所述生產(chǎn)者處理器核心從所述輸入數(shù)據(jù)產(chǎn)生 的結(jié)果數(shù)據(jù),所述結(jié)果數(shù)據(jù)是被存儲(chǔ)在所述第一標(biāo)記存儲(chǔ)器中的所述第一數(shù)據(jù);以及 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的所述第一類型的命令,使用所述共享的核心間通 信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述消費(fèi)者處理器核心,以將來(lái)自 所述第一標(biāo)記存儲(chǔ)器的所述結(jié)果數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
9. 根據(jù)權(quán)利要求8所述的裝置,所述裝置還包括: 所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置為使用所述至少一個(gè)處理器使得 所述裝置至少: 使用所述共享的核心間通信單元將由所述消費(fèi)者處理器核心從所述第一所述結(jié)果數(shù) 據(jù)產(chǎn)生的第二結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第二存儲(chǔ)器地址的第二標(biāo)記存 儲(chǔ)器中。
10. 根據(jù)權(quán)利要求9所述的裝置,所述裝置還包括: 所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置為使用所述至少一個(gè)處理器使得 所述裝置至少: 響應(yīng)于來(lái)自所述消費(fèi)者處理器核心的命令,使用所述多核處理器的第二共享的核心間 通信單元將所述第二標(biāo)記存儲(chǔ)器連接到所述處理器核心的第三處理器核心,以將來(lái)自所述 第二標(biāo)記存儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作為管線數(shù)據(jù)加載到所述第三處理器核心中。
11. 根據(jù)權(quán)利要求10所述的裝置,所述裝置還包括: 所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置為使用所述至少一個(gè)處理器使得 所述裝置至少: 使用所述第二共享的核心間通信單元將由所述第三處理器核心從所述第二結(jié)果數(shù)據(jù) 產(chǎn)生的第三結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第三存儲(chǔ)器地址的第三標(biāo)記存儲(chǔ) 器中。
12. 根據(jù)權(quán)利要求9所述的裝置,所述裝置還包括: 所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置為使用所述至少一個(gè)處理器使得 所述裝置至少: 響應(yīng)于來(lái)自所述消費(fèi)者處理器核心的命令,使用所述共享的核心間通信單元將所述第 二標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第二標(biāo)記存 儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作為反饋數(shù)據(jù)加載到所述生產(chǎn)者處理器核心中。
13. -種計(jì)算機(jī)程序產(chǎn)品,所述的計(jì)算機(jī)程序產(chǎn)品包括:記錄在計(jì)算機(jī)可讀的非短暫 性的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的程序代碼,當(dāng)由計(jì)算機(jī)處理器執(zhí)行所述計(jì)算機(jī)可執(zhí)行的 程序代碼時(shí),所述計(jì)算機(jī)可執(zhí)行的程序代碼使得裝置至少執(zhí)行以下 : 使用多核處理器中的共享的核心間通信單元將由生產(chǎn)者處理器核心產(chǎn)生的第一數(shù)據(jù) 存儲(chǔ)在位于存儲(chǔ)器地址空間的第一存儲(chǔ)器地址的第一標(biāo)記存儲(chǔ)器中;以及 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第一類型的命令,使用所述共享的核心間通信單 元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的消費(fèi)者處理器核心,以將來(lái)自所述第一 標(biāo)記存儲(chǔ)器的所述第一數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
14. 根據(jù)權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括:記錄在計(jì)算 機(jī)可讀的非短暫性的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的程序代碼,當(dāng)由計(jì)算機(jī)處理器執(zhí)行所述 計(jì)算機(jī)可執(zhí)行的程序代碼時(shí),所述計(jì)算機(jī)可執(zhí)行的程序代碼使得裝置至少執(zhí)行以下: 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的第二類型的命令,使用所述共享的核心間通信單 元將位于所述存儲(chǔ)器地址空間的輸入標(biāo)記存儲(chǔ)器地址的輸入標(biāo)記存儲(chǔ)器連接到所述多核 處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第一標(biāo)記存儲(chǔ)器的輸入數(shù)據(jù)加載到所述生 產(chǎn)者處理器核心中; 使用所述共享的核心間通信單元存儲(chǔ)由所述生產(chǎn)者處理器核心從所述輸入數(shù)據(jù)產(chǎn)生 的結(jié)果數(shù)據(jù),所述結(jié)果數(shù)據(jù)是被存儲(chǔ)在所述第一標(biāo)記存儲(chǔ)器中的所述第一數(shù)據(jù);以及 響應(yīng)于來(lái)自所述生產(chǎn)者處理器核心的所述第一類型的命令,使用所述共享的核心間通 信單元將所述第一標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述消費(fèi)者處理器核心,以將來(lái)自 所述第一標(biāo)記存儲(chǔ)器的所述結(jié)果數(shù)據(jù)加載到所述消費(fèi)者處理器核心中。
15. 根據(jù)權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括:記錄在計(jì)算 機(jī)可讀的非短暫性的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的程序代碼,當(dāng)由計(jì)算機(jī)處理器執(zhí)行所述 計(jì)算機(jī)可執(zhí)行的程序代碼時(shí),所述計(jì)算機(jī)可執(zhí)行的程序代碼使得裝置至少執(zhí)行以下: 使用所述共享的核心間通信單元將由所述消費(fèi)者處理器核心從所述第一所述結(jié)果數(shù) 據(jù)產(chǎn)生的第二結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第二存儲(chǔ)器地址的第二標(biāo)記存 儲(chǔ)器中。
16. 根據(jù)權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括:記錄在計(jì)算 機(jī)可讀的非短暫性的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的程序代碼,當(dāng)由計(jì)算機(jī)處理器執(zhí)行所述 計(jì)算機(jī)可執(zhí)行的程序代碼時(shí),所述計(jì)算機(jī)可執(zhí)行的程序代碼使得裝置至少執(zhí)行以下: 響應(yīng)于來(lái)自所述消費(fèi)者處理器核心的命令,使用所述多核處理器的第二共享的核心間 通信單元將所述第二標(biāo)記存儲(chǔ)器連接到所述處理器核心的第三處理器核心,以將來(lái)自所述 第二標(biāo)記存儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作為管線數(shù)據(jù)加載到所述第三處理器核心中。
17. 根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括:記錄在計(jì)算 機(jī)可讀的非短暫性的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的程序代碼,當(dāng)由計(jì)算機(jī)處理器執(zhí)行所述 計(jì)算機(jī)可執(zhí)行的程序代碼時(shí),所述計(jì)算機(jī)可執(zhí)行的程序代碼使得裝置至少執(zhí)行以下: 使用所述第二共享的核心間通信單元將由所述第三處理器核心從所述第二結(jié)果數(shù)據(jù) 產(chǎn)生的第三結(jié)果數(shù)據(jù)存儲(chǔ)在位于所述存儲(chǔ)器地址空間的第三存儲(chǔ)器地址的第三標(biāo)記存儲(chǔ) 器中。
18. 根據(jù)權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括:記錄在計(jì)算 機(jī)可讀的非短暫性的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行的程序代碼,當(dāng)由計(jì)算機(jī)處理器執(zhí)行所述 計(jì)算機(jī)可執(zhí)行的程序代碼時(shí),所述計(jì)算機(jī)可執(zhí)行的程序代碼使得裝置至少執(zhí)行以下: 響應(yīng)于來(lái)自所述消費(fèi)者處理器核心的命令,使用所述共享的核心間通信單元將所述第 二標(biāo)記存儲(chǔ)器連接到所述多核處理器的所述生產(chǎn)者處理器核心,以將來(lái)自所述第二標(biāo)記存 儲(chǔ)器的所述第二結(jié)果數(shù)據(jù)作為反饋數(shù)據(jù)加載到所述生產(chǎn)者處理器核心中。
【文檔編號(hào)】G06F9/38GK104126179SQ201380009921
【公開日】2014年10月29日 申請(qǐng)日期:2013年1月28日 優(yōu)先權(quán)日:2012年2月17日
【發(fā)明者】T·J·塞特曼, K·A·賴斯基拉, H·希爾沃拉 申請(qǐng)人:諾基亞公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1