專利名稱:基于單一指令集微處理器運算單元的可配置多核/眾核系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路設(shè)計領(lǐng)域,尤其涉及一種基于微處理器核、微處理器運算單
元的單一指令集可配置多核/眾核系統(tǒng)。
背景技術(shù):
隨著信息化的普及、生活水平的提高,消費者需要把更多的功能集成到同一款電 子產(chǎn)品中,使得在許多應(yīng)用中同時具有智能控制和數(shù)字信號處理能力,如數(shù)字電視機頂盒, 既需要能對用戶的操作有正確、快速的反應(yīng),又需要對音、視頻信號進行高效解碼。
微處理器(CPU)能支持操作系統(tǒng),可以運行一般的應(yīng)用程序,并能根據(jù)程序訪問、 處理隨機的指令和數(shù)據(jù),能很好的完成跳轉(zhuǎn)等不規(guī)則操作,但是對音、視頻等流數(shù)據(jù)的處理 能力相對較弱。而數(shù)字信號處理器(DSP)正好與之相反,具有很強的流處理能力。因此,在 同一款芯片中集成CPU核和DSP核,并通過一些互連策略進行交互,可以同時發(fā)揮兩種處理 器的優(yōu)勢。通過兩種核的集成加速個人通信機、智能電話、無線網(wǎng)絡(luò)產(chǎn)品的開發(fā),同時可以 簡化設(shè)計,減小板級系統(tǒng)復(fù)雜度,降低功耗和整個系統(tǒng)的成本。 CPU與DSP的融合能解決既需要智能控制,又需要流處理的需求,然而更高級的用 戶接口和應(yīng)用程序?qū)η度胧较到y(tǒng)提出了更高的并行處理要求。簡單采用增加DSP核的方法 可以進一步提高嵌入式CPU的性能,但這種方法存在一定的局限性。目前的數(shù)字信號處理 算法中依然存在大量必須串行執(zhí)行的程序,無法被很好的分割。當(dāng)DSP核達到一定數(shù)量后, 性能就無法再隨著核數(shù)量的增加而提升了 。此外,隨著半導(dǎo)體制造工藝的不斷提升,芯片內(nèi) 部的工作頻率已大大高于其外部存儲器的工作頻率,多個DSP核同時進行訪問外部存儲器 所導(dǎo)致訪問外部存儲器等待時間過長的問題也已經(jīng)成為制約系統(tǒng)性能的一大瓶頸。
經(jīng)對現(xiàn)有技術(shù)的文獻檢索發(fā)現(xiàn),國外已有成熟的CPU與DSP融合的結(jié)構(gòu),如美國德 州儀器公司(TI)的達芬奇系列處理器,要求有兩種不同的編譯系統(tǒng),分別編譯CPU和DSP 各自的指令集。美國斯坦福大學(xué)的Imagine處理器則采用了兩級編譯方式流級(stream) 編譯和核心級(Kernel)編譯,分別在主CPU和Imagine上運行。無論兩種編譯系統(tǒng)還是兩 級編譯方式,都會大大增加應(yīng)用軟件開發(fā)的復(fù)雜性和軟件調(diào)試的難度。
在多核處理器方面,以美國英特爾公司(Intel)和超威半導(dǎo)體公司(AMD)的多核 處理器最為典型,都是簡單地將兩個或多個復(fù)雜的微處理器內(nèi)核疊加在一起。多核處理器 中每個微處理器核都包含有緩存,為解決不同核內(nèi)緩存數(shù)據(jù)的一致性問題,微處理器核之 間必須頻繁交換數(shù)據(jù),降低了整個多核處理器的效率。盡管多個內(nèi)核之間可以進行并行運 算,但就整體而言,無法實現(xiàn)真正的流水線操作。此外,在軟件方面,對于多核處理器,需要 有并行編程的思想才有可能充分利用資源,然而操作系統(tǒng)對資源的分配和管理并沒有本質(zhì) 的改變,多是以對稱的方式進行平均分配。并且,多數(shù)軟件并沒有充分考慮到雙核乃至多核 的運行情況,導(dǎo)致線程平均分配的時間以及線程之間的交換數(shù)據(jù)的時間都會大大增加,尤 其在線程需要反復(fù)訪問內(nèi)存的時候,效率損失更為嚴重。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的不足,提出了一種基于微處理器核、微處理器運算單元的 單一指令集可配置多核/眾核系統(tǒng),用以解決多核系統(tǒng)中工作負荷分配困難、訪問外部存 儲器效率低及使用不同編譯系統(tǒng)帶來的軟件開發(fā)與調(diào)試的復(fù)雜性問題。
本發(fā)明采用以下技術(shù)方案實現(xiàn) 本發(fā)明所述基于單一指令集微處理器運算單元的的可配置多核/眾核系統(tǒng),包括 微處理器核,處理單元,仲裁器,DMA控制器,輸入分配器和輸出分配器,其中微處理器核, 用于執(zhí)行操作系統(tǒng)以及應(yīng)用程序中非密集運算部分,并且負責(zé)對處理單元的配置;處理單 元,用于執(zhí)行密集運算中的乘法、加/減法、乘加/減、累加、移位、提取、交換操作,每個處理 單元完成一條或多條乘法、加/減法、乘加/減、累加、移位、提取、交換操作;仲裁器,用于仲 裁微處理器核和處理單元對外部存儲器的訪問請求;DMA控制器,用于直接配置處理單元 中的存儲器;輸入分配器,用于將取自仲裁器的數(shù)據(jù)分配給不同處理單元;輸出分配器,用 于從不同處理單元取得數(shù)據(jù)并送往仲裁器。 本發(fā)明所述微處理器核和處理單元包含的指令集均是同一指令集的子集,可由同 一編譯器編譯;完成應(yīng)用程序的編譯后,使用同一個后編譯器進行機器碼分解,確定每個處 理單元的工作內(nèi)容及負荷。 本發(fā)明所述微處理器核包括運算單元、寄存器堆、程序計數(shù)器、中斷/異??刂?器、存儲管理單元和緩存。 本發(fā)明所述處理單元包括運算單元、寄存器堆、本地指令存儲器、本地數(shù)據(jù)存儲器 和程序計數(shù)器。 本發(fā)明所述基于單一指令集微處理器運算單元的的可配置多核/眾核系統(tǒng)中處 理單元的數(shù)目是不固定的,具體數(shù)目可以根據(jù)實際應(yīng)用需求進行擴展。 本發(fā)明所述的基于單一指令集微處理器運算單元的可配置多核/眾核系統(tǒng),其特 征在于所述微處理器核搭配若干處理單元,在執(zhí)行時,首先由微處理器核運行操作系統(tǒng),處 理單元處于關(guān)閉狀態(tài),微處理器核可以根據(jù)應(yīng)用程序要求開啟處理單元、配置處理單元連 接關(guān)系、配置處理單元中本地指令存儲器和本地數(shù)據(jù)存儲器;所術(shù)微處理器核也可以根據(jù) 應(yīng)用程序要求開啟處理單元、配置處理單元連接關(guān)系,配置DMA控制器,由DMA控制器配置 處理單元中本地指令存儲器和本地數(shù)據(jù)存儲器。 本發(fā)明所述處理單元間互連是通過片上網(wǎng)絡(luò)靈活實現(xiàn)的,任意兩個處理單元間均 可構(gòu)成前后級連接關(guān)系。 本發(fā)明所述微處理器核配置處理單元,可以根據(jù)應(yīng)用程序要求將所有處理單元串 行連接成一個串行連接結(jié)構(gòu),處理密集運算;也可以根據(jù)應(yīng)用程序要求將處理單元分組,分 別連接成多個串行連接結(jié)構(gòu),不同串行連接結(jié)構(gòu)可以并行處理不同密集運算,也可以并行 處理相同密集運算;也可以根據(jù)應(yīng)用程序要求將處理單元分組,分別連接成多個串行連接 結(jié)構(gòu),其中部分串行連接結(jié)構(gòu)并行處理不同密集運算,之后再與其他串行連接結(jié)構(gòu)串行連 接處理其他密集運算。本發(fā)明所述處理單元間的連接關(guān)系可以在運行期間任意時刻根據(jù)應(yīng) 用程序的要求進行調(diào)整。 本發(fā)明所述每一個多個處理單元連接而成的結(jié)構(gòu)中,第一個處理單元的輸入數(shù)據(jù)
5通過仲裁器、輸入分配器取自外部存儲器,最后一個處理單元的結(jié)果通過輸出分配器、仲裁
器送回外部存儲器,其余每個處理單元的輸入數(shù)據(jù)取自前一級處理單元,輸出數(shù)據(jù)送往后
一級處理單元,所述前一級處理單元與后一級處理單元之間通過FIFO連接。 本發(fā)明所述基于單一指令集微處理器運算單元的的可配置多核/眾核系統(tǒng)中的
處理單元通過輸入分配器和輸出分配器與仲裁器連接,微處理器核、輸入分配器和輸出分
配器通過仲裁器與外部存儲器連接。 本發(fā)明所述基于單一指令集微處理器運算單元的的可配置多核/眾核系統(tǒng)中的 處理單元的數(shù)目不是固定的,可以根據(jù)應(yīng)用需求確定。 本發(fā)明具有的有益效果是可以根據(jù)密集運算類應(yīng)用程序的特點,由微處理器核 配置處理單元的連接關(guān)系、本地指令存儲器和本地數(shù)據(jù)存儲器,得到適合特定應(yīng)用的多核 結(jié)構(gòu),并在編譯過程中將全部密集運算均衡分配到不同處理單元,減輕每個處理單元的工 作負荷;每個處理單元能執(zhí)行多條指令,緩解了訪問外部存儲器等待時間過長、效率低的問 題;同時,微處理器核、處理單元包含的指令集均是同一指令集的子集,可由同一編譯器編 譯,能減輕軟件開發(fā)的工作量。
圖1為本發(fā)明所提出的基于單一指令集微處理器運算單元的的可配置多核/眾核 系統(tǒng)架構(gòu)。 圖2為本發(fā)明中微處理器核結(jié)構(gòu)圖。 圖3為本發(fā)明中處理單元結(jié)構(gòu)圖。 圖4為本發(fā)明中處理單元間數(shù)據(jù)傳輸結(jié)構(gòu)舉例。 圖5為本發(fā)明中處理單元連接形成的結(jié)構(gòu)舉例一。 圖6為本發(fā)明中處理單元連接形成的結(jié)構(gòu)舉例二。 圖7為本發(fā)明中可配置多核/眾核系統(tǒng)配置、執(zhí)行的流程圖。 圖8為本發(fā)明中微處理器核和處理單元包含指令集的關(guān)系圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明的實施例作詳細說明。本實施例根據(jù)本發(fā)明的技術(shù)方案實 施,但本發(fā)明的保護范圍不限于下述的實施例。 本發(fā)明的技術(shù)思路是對處理單元串行連接形成的結(jié)構(gòu)串行或并行或串并混合連 接,用以處理密集運算。首先由微處理器核運行操作系統(tǒng)和應(yīng)用程序,根據(jù)應(yīng)用程序中的指 令配置處理單元,開啟或關(guān)閉處理單元,確定處理單元間連接關(guān)系,再配置各處理單元的本 地指令存儲器和本地數(shù)據(jù)存儲器,之后通知處理單元開始處理密集運算。完成上述配置后, 微處理器核進入等待狀態(tài)或繼續(xù)進行與處理單元執(zhí)行的密集運算無關(guān)的程序,并隨時根據(jù) 程序要求通知處理單元停止處理密集運算,或重新配置處理單元,進行新的密集運算。
本發(fā)明提出的可配置多核/眾核系統(tǒng)中處理單元的數(shù)目是不固定的,具體數(shù)目可 以根據(jù)實際應(yīng)用需求進行擴展。下面以包含四個處理單元的系統(tǒng)為實施例。該包含四個處 理單元的實施例根據(jù)本發(fā)明的技術(shù)方案實施,但本發(fā)明的保護范圍不限于下述的包含四個 處理單元的實施例。
6
在圖1中,本發(fā)明所述基于單一指令集微處理器運算單元的的可配置多核/眾核 系統(tǒng)包括微處理器核(201),處理單元(301),仲裁器(IOI),DMA控制器(104),輸入分配器 (102)和輸出分配器(103),其中 微處理器核(201),用于執(zhí)行操作系統(tǒng)以及應(yīng)用程序中非密集運算部分,并且負責(zé) 對處理單元的配置。配置包括對處理單元連接關(guān)系的配置、對處理單元內(nèi)本地指令存儲器 內(nèi)數(shù)據(jù)和本地數(shù)據(jù)存儲器內(nèi)數(shù)據(jù)的配置以及通知處理單元開始進行密集運算或結(jié)束密集 運算。 處理單元(301),用于執(zhí)行密集運算中的乘法、加/減法、乘加/減、累加、移位、提 取、交換操作。每個處理單元可以只完成一條乘法、加/減法、乘加/減、累加、移位、提取、 交換操作,但在多數(shù)情況下,每個處理單元完成多條乘法、加/減法、乘加/減、累加、移位、 提取、交換操作。 仲裁器(101),用于仲裁微處理器核和處理單元對外部存儲器的訪問請求。 DMA控制器(104),用于直接配置處理單元中的存儲器。 輸入分配器(102),用于將取自仲裁器的數(shù)據(jù)分配給不同處理單元。 輸出分配器(103),用于從不同處理單元取得數(shù)據(jù)并送往仲裁器。 本發(fā)明提出的可配置多核/眾核系統(tǒng)中采用處理單元只與輸入分配器和輸出分
配器連接,微處理器核(201)、輸入分配器(102)和輸出分配器(103)通過仲裁器(101)與
外部存儲器連接,由仲裁器(101)判決多核對外部存儲器的訪問請求,結(jié)構(gòu)簡單,免去了復(fù)
雜互聯(lián)結(jié)構(gòu),減少了對外引腳的數(shù)目。全部密集運算均衡分配到不同處理單元,減輕每個處
理單元的工作負荷。全部處理單元分為兩組,每組中除第一級處理單元的數(shù)據(jù)輸入和最后
一級處理單元的數(shù)據(jù)輸出分別與輸入分配器(102)和輸出分配器(103)連接外,所有處理
單元均首尾相連,減少了能同時訪問外部存儲器的處理單元的數(shù)目,緩解了多核/眾核結(jié)
構(gòu)中大量核同時訪問外部存儲器帶來的性能瓶頸。每個處理單元執(zhí)行多條操作,則數(shù)據(jù)從
進入處理單元到輸出需要多個周期,兩次取數(shù)之間的周期間隔數(shù)相應(yīng)增加,緩解了芯片內(nèi)
部工作頻率高于外部存儲器工作頻率導(dǎo)致的訪問外部存儲器等待時間過長的問題。 在圖2中,微處理器核(201)包括運算單元、寄存器堆(205)、程序計數(shù)器(206)、 中斷/異??刂破?208)、存儲管理單元(207)和緩存。運算單元由乘除法器(203)和算術(shù) 邏輯運算器(204)組成。緩存由指令緩存(202)和數(shù)據(jù)緩存(209)組成。
在圖2中,微處理器核(201)包括運算單元、寄存器堆(205)、程序計數(shù)器(206)、 中斷/異??刂破?208)、存儲管理單元(207)和緩存。運算單元由乘除法器(203)和算術(shù) 邏輯運算器(204)組成。緩存由指令緩存(202)和數(shù)據(jù)緩存(209)組成。
在圖3中,處理單元(301)包括運算單元(303)、寄存器堆(205)、本地指令存儲器 (302)、本地數(shù)據(jù)存儲器(304)和程序計數(shù)器(206)。運算單元(303)基于微處理器核(201) 的運算單元,有所增強,除微處理器核(201)支持的所有算術(shù)邏輯運算和乘除法運算外,增 加了適合大規(guī)模密集數(shù)據(jù)運算的指令。通過微處理器核(201)或DMA控制器(104)配置, 本地指令存儲器(302)用于存儲處理單元(301)將用到的指令。通過微處理器核(201)或 DMA控制器(104)配置,本地數(shù)據(jù)存儲器(304)用于存儲處理單元(301)將用到的數(shù)據(jù)或 參數(shù)。本地指令存儲器(302)、本地數(shù)據(jù)存儲器(304)與微處理器核(201)中的指令緩存 (202)和數(shù)據(jù)緩存(209)不同,其中內(nèi)容不是外部存儲器內(nèi)容的子集,因此沒有數(shù)據(jù)一致性問題,降低了集成電路設(shè)計的復(fù)雜度。 圖4給出了處理單元間數(shù)據(jù)傳輸結(jié)構(gòu)的一種例子。前一級處理單元(301)的兩路 數(shù)據(jù)通過兩組FIFO (401)傳送到后一級處理單元(301)。每個處理單元(301)都有與其配 套的獨立的FIF0(401)??梢钥闯觯B接到同一個后一級處理單元的前一級處理單元的數(shù)目 可以是任意的,采用這種結(jié)構(gòu)能增加多核/眾核系統(tǒng)配置的靈活性。 本發(fā)明提出的可配置多核/眾核系統(tǒng)中處理單元間互連是通過片上網(wǎng)絡(luò)靈活實 現(xiàn)的,任意兩個處理單元間均可構(gòu)成前后級連接關(guān)系。下面以包含四個處理單元的系統(tǒng)舉 例給出了處理單元間互連的兩種典型結(jié)構(gòu)。這兩種典型結(jié)構(gòu)根據(jù)本發(fā)明的技術(shù)方案實施, 但本發(fā)明的保護范圍不限于下述的兩種典型結(jié)構(gòu)。 圖5給出了處理單元間互連的一種例子。首先,四個處理單元(301)分為第一組 (501)和第二組(502),每組內(nèi)部都配置為串行連接。然后配置第一組(501)的數(shù)據(jù)輸出到 第二組(502)的數(shù)據(jù)輸入,最終構(gòu)成完全串行的多核系統(tǒng)。 圖6給出了處理單元間互連的另一種例子。首先,四個處理單元(301)分為第一 組(601)、第二組(602)和第三組(603)。第一組(601)內(nèi)部配置處理單元(301)為并行連 接,然后配置第一組(601)與第二組(602)串行連接,再配置第二組(602)的數(shù)據(jù)輸出到第 三組(603)的數(shù)據(jù)輸入,最終構(gòu)成完全串、并混合連接的多核系統(tǒng)。 下面給出了一種啟動、檢測、配置流程。該流程根據(jù)本發(fā)明的技術(shù)方案實施,但本 發(fā)明的保護范圍不限于下述的流程。 在圖7中,首先在步驟一 (701)由微處理器核(201)運行操作系統(tǒng)或應(yīng)用程序,并 在步驟二 (702)檢測操作系統(tǒng)或應(yīng)用程序中的是否有特定配置指令。如沒有特定配置指 令,則返回步驟一 (701)繼續(xù)運行操作系統(tǒng)或應(yīng)用程序;如有特定配置指令,則進入步驟三
(703) 根據(jù)配置指令配置處理單元(301)的連接關(guān)系,再進入步驟四(704)依次配置各處理 單元本地指令存儲器和本地數(shù)據(jù)存儲器,并進入步驟五(705)檢測是否所有處理單元的本 地指令存儲器和本地數(shù)據(jù)存儲器均已配置完畢。如未配置完畢,則返回步驟四(704),如配 置完畢,則進入步驟六(706)通知處理單元(301)開始密集運算,之后進入步驟七(707)微 處理器核(201)繼續(xù)執(zhí)行其他與處理單元(301)執(zhí)行的密集運算無關(guān)的程序。其中,步驟四
(704) 和步驟五(705)時可以由微處理器核(201)直接配置和檢測各處理單元本地指令存 儲器和本地數(shù)據(jù)存儲器,也可以由微處理器核(201)配置DMA控制器(104)后,由DMA(104) 控制器直接配置和檢測各處理單元本地指令存儲器和本地數(shù)據(jù)存儲器。 圖8為本發(fā)明所述微處理器核(201)和處理單元(301)包含指令集的關(guān)系圖。其 中,完整指令集(801)包含三部分第一部分(802)、第二部分(803)和第三部分(804)。第 一部分(802)包含與控制相關(guān)的指令,如異常、陷入、配置指令;第二部分(803)包含微處理 器核(201)中乘法器(203)和算術(shù)邏輯運算器(204)支持的所有運算指令;第三部分(804) 包含處理單元(301)中運算單元(303)支持的除第二部分(803)指令外的所有運算指令。 微處理器核(201)支持的指令集子集為第一部分(802)和第二部分(803)的合集;處理單 元(301)支持的指令集子集為第二部分(803)和第三部分(804)的合集。
權(quán)利要求
一種基于單一指令集微處理器運算單元的可配置多核/眾核系統(tǒng),其特征在于包括微處理器核,處理單元,仲裁器,輸入分配器和輸出分配器,其中微處理器核,用于執(zhí)行操作系統(tǒng)以及應(yīng)用程序中非密集運算部分,并且負責(zé)對處理單元的配置;處理單元,用于執(zhí)行密集運算中的乘法、加/減法、乘加/減、累加、移位、提取、交換操作,每個處理單元完成一條或多條乘法、加/減法、乘加/減、累加、移位、提取、交換操作;仲裁器,用于仲裁微處理器核和處理單元對外部存儲器的訪問請求;DMA控制器,用于直接配置處理單元中的存儲器;輸入分配器,用于將取自仲裁器的數(shù)據(jù)分配給不同處理單元;輸出分配器,用于從不同處理單元取得數(shù)據(jù)并送往仲裁器;所述微處理器核和處理單元包含的指令集均是同一指令集的子集,可由同一編譯器編譯;完成應(yīng)用程序的編譯后,使用同一個后編譯器進行機器碼分解,確定每個處理單元的工作內(nèi)容及負荷。
2. 根據(jù)權(quán)利要求1所述的基于單一指令集微處理器運算單元的可配置多核/眾核系 統(tǒng),其特征在于所述微處理器核包括運算單元、寄存器堆、程序計數(shù)器、中斷/異??刂破?、 存儲管理單元和緩存。
3. 根據(jù)權(quán)利要求1所述的基于單一指令集微處理器運算單元的可配置多核/眾核系 統(tǒng),其特征在于所述處理單元包括運算單元、寄存器堆、本地指令存儲器、本地數(shù)據(jù)存儲器 和程序計數(shù)器。
4. 根據(jù)權(quán)利要求l、3所述的基于單一指令集微處理器運算單元的可配置多核/眾核系 統(tǒng),其特征在于所述處理單元的數(shù)目是不固定的,具體數(shù)目可以根據(jù)實際應(yīng)用需求進行擴展。
5. 根據(jù)權(quán)利要求1所述的基于單一指令集微處理器運算單元的可配置多核/眾核系 統(tǒng),其特征在于所述微處理器核搭配若干處理單元,在執(zhí)行時,首先由微處理器核運行操作 系統(tǒng),處理單元處于關(guān)閉狀態(tài),微處理器核可以根據(jù)應(yīng)用程序要求開啟處理單元、配置處理 單元連接關(guān)系、配置處理單元中本地指令存儲器和本地數(shù)據(jù)存儲器。
6. 根據(jù)權(quán)利要求1所述的基于單一指令集微處理器運算單元的可配置多核/眾核系 統(tǒng),其特征在于所述微處理器核搭配若干處理單元,在執(zhí)行時,首先由微處理器核運行操作 系統(tǒng),處理單元處于關(guān)閉狀態(tài),微處理器核可以根據(jù)應(yīng)用程序要求開啟處理單元、配置處理 單元連接關(guān)系,配置DMA控制器,由DMA控制器配置處理單元中本地指令存儲器和本地數(shù)據(jù) 存儲器。
7. 根據(jù)權(quán)利要求l、5、6所述的基于單一指令集微處理器運算單元的可配置多核/眾核 系統(tǒng),其特征在于所述處理單元間互連是通過片上網(wǎng)絡(luò)靈活實現(xiàn)的,任意兩個處理單元間 均可構(gòu)成前后級連接關(guān)系。
8. 根據(jù)權(quán)利要求l、5、6、7所述的基于單一指令集微處理器運算單元的可配置多核/眾 核系統(tǒng),其特征在于由所述微處理器核配置處理單元,可以根據(jù)應(yīng)用程序要求將所有處理 單元串行連接成一個串行連接結(jié)構(gòu),處理密集運算。
9. 根據(jù)權(quán)利要求l、5、6、7所述的基于單一指令集微處理器運算單元的可配置多核/眾 核系統(tǒng),其特征在于由所述微處理器核配置處理單元,可以根據(jù)應(yīng)用程序要求將處理單元分組,分別連接成多個串行連接結(jié)構(gòu),不同串行連接結(jié)構(gòu)可以運行不同的程序段,并行進行 不同的指令、不同數(shù)據(jù)的密集運算,也可以運行相同的程序段、以單指令多數(shù)據(jù)流方式進行 相同指令、不同數(shù)據(jù)的密集運算。
10. 根據(jù)權(quán)利要求1、5、6、7所述的基于單一指令集微處理器運算單元的可配置多核/ 眾核系統(tǒng),其特征在于由所述微處理器核配置處理單元,可以根據(jù)應(yīng)用程序要求將處理單 元分組,分別連接成多個串行連接結(jié)構(gòu),其中部分串行連接結(jié)構(gòu)并行處理不同密集運算,之 后再與其他串行連接結(jié)構(gòu)串行連接處理其他密集運算。
11. 根據(jù)權(quán)利要求1、5、6、7、8、9、10所述的基于單一指令集微處理器運算單元的可配 置多核/眾核系統(tǒng),其特征在于由所述微處理器核配置處理單元,處理單元間的連接關(guān)系 可以在運行期間任意時刻根據(jù)應(yīng)用程序的要求進行調(diào)整。
12. 根據(jù)權(quán)利要求1、5、6、7、8、9、10、11所述的基于單一指令集微處理器運算單元的 可配置多核/眾核系統(tǒng),其特征在于,在每一個所述多個處理單元連接而成的結(jié)構(gòu)中,第一 個處理單元的輸入數(shù)據(jù)通過仲裁器、輸入分配器取自外部存儲器,最后一個處理單元的結(jié) 果通過輸出分配器、仲裁器送回外部存儲器,其余每個處理單元的輸入數(shù)據(jù)取自前一級處 理單元,輸出數(shù)據(jù)送往后一級處理單元,所述前一級處理單元與后一級處理單元之間通過 FIFO連接。
全文摘要
本發(fā)明屬于集成電路設(shè)計領(lǐng)域,具體為一種基于單一指令集微處理器運算單元的可配置多核/眾核系統(tǒng),包括微處理器核,處理單元,仲裁器,DMA控制器、輸入分配器和輸出分配器。其中微處理器核用于執(zhí)行操作系統(tǒng)以及應(yīng)用程序中非密集運算部分,并且負責(zé)對處理單元的配置;處理單元用于執(zhí)行一條或多條密集運算操作;處理單元通過輸入分配器和輸出分配器與仲裁器連接,并由仲裁器仲裁微處理器核和處理單元對外部存儲器的訪問請求。微處理器核和處理單元包含的指令集均是同一指令集的子集,可由同一編譯器編譯。本發(fā)明有效解決多核系統(tǒng)中工作負荷分配困難、訪問外部存儲器效率低及使用不同編譯系統(tǒng)帶來的軟件開發(fā)與調(diào)試的復(fù)雜性問題。
文檔編號G06F9/30GK101751373SQ200810203778
公開日2010年6月23日 申請日期2008年11月28日 優(yōu)先權(quán)日2008年11月28日
發(fā)明者任浩琪, 林正浩, 耿紅喜 申請人:上海芯豪微電子有限公司