一、H7 的特點(diǎn)
首先看看 M7 內(nèi)核的 GD32H7都具備哪些不一樣的功能,以下只是我個(gè)人關(guān)注的點(diǎn):
主頻高,GD32H7系列MCU采用基于Armv7E-M架構(gòu),主頻高達(dá)600MHz。
6 級(jí)流水線,并且是超標(biāo)量的,并且支持分支預(yù)測(cè)。
內(nèi)置了高級(jí)DSP硬件加速器和雙精度浮點(diǎn)單元(FPU),以及硬件三角函數(shù)加速器(TMU)和濾波算法加速器(FAC)。
內(nèi)置了TFT LCD液晶驅(qū)動(dòng)器和圖形處理加速器IPA (Image Processing Accelerator),支持2D圖像疊加、旋轉(zhuǎn)、縮放及多種顏色格式轉(zhuǎn)換等功能。
主頻越來(lái)越高自然不必說(shuō)了,后面兩個(gè)內(nèi)置硬件過(guò)兩天在學(xué)習(xí)。
今兒先學(xué)習(xí)下 M7 內(nèi)核的功勞,也就是這里的分支預(yù)測(cè)和超標(biāo)量流水線。
二、什么是超標(biāo)量流水線
超標(biāo)量流水線(Superscalar Pipeline)是一種計(jì)算機(jī)處理器架構(gòu),它可以同時(shí)執(zhí)行多條指令,從而提高指令執(zhí)行的效率。這種架構(gòu)允許處理器在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行多個(gè)指令,而不是像傳統(tǒng)的標(biāo)量流水線那樣每個(gè)時(shí)鐘周期執(zhí)行一條指令。
先看傳統(tǒng)的流水線架構(gòu):
在傳統(tǒng)的標(biāo)量流水線架構(gòu)中,我們?nèi)绻胱?CPU 執(zhí)行一條機(jī)器指令,要經(jīng)歷:取址(IF)→ 譯碼(ID)→ 執(zhí)行(EX)→ 訪問(wèn)內(nèi)存(MEM)→寫回內(nèi)存(WB)等五個(gè)步驟,那么在系統(tǒng)時(shí)鐘的驅(qū)動(dòng)下,如果串行處理,那么執(zhí)行一條指令至少要 5 個(gè)時(shí)鐘周期。
CPU 在執(zhí)行每一個(gè)單一步驟的時(shí)候,并不一定會(huì)用到所有的硬件,也就是說(shuō)五個(gè)步驟其實(shí)存在一定的獨(dú)立性,那么我們可以增加一些硬件讓 CPU在一個(gè)時(shí)鐘觸發(fā)下做兩件以上的事情。
這么一來(lái),我們就可以讓多條指令的執(zhí)行看起來(lái)并行執(zhí)行,其實(shí)就是為每條指令的執(zhí)行提前做一些準(zhǔn)備工作,從結(jié)果看,我們幾乎可以做到每個(gè)時(shí)鐘周期執(zhí)行一條指令了。
以上就是標(biāo)量的流水線,就是讓 指令執(zhí)行進(jìn)行一定的硬件分工,然后在一個(gè)時(shí)鐘觸發(fā)下,不同的硬件可以同時(shí)做一些不同的事情,從而保證每個(gè)時(shí)鐘周期內(nèi)都有一個(gè)產(chǎn)出—— 執(zhí)行完一條完整的指令。
OK,如果我想給讓CPU 提高點(diǎn)人效,讓它一個(gè)機(jī)器時(shí)鐘內(nèi)完成多個(gè)指令的執(zhí)行該怎么辦呢?
加人唄,一個(gè)崗位上放倆人,甚至更多
當(dāng)然人多了,容易亂套,這里是因?yàn)槊總€(gè)指令本質(zhì)是上串行的,前后有依賴,所以不能一味的增加人力,結(jié)果肯定是流水線上打起來(lái)。
上圖中,我們?cè)诿恳粋€(gè)流水階段增加了一個(gè)人力,整個(gè)系統(tǒng)看起來(lái)瞬間效率提高了一倍。
以上就是超標(biāo)量流水線的描述,下面我們看看,如何在 程序設(shè)計(jì)上利用這個(gè)超標(biāo)量的流水線。
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229853 -
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351213 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40291 -
加速器
+關(guān)注
關(guān)注
2文章
799瀏覽量
37874
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論