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