2022年12月11日 星期日

今日閱讀: 普林斯頓最熱門的電腦通識課(八) 探索處理器

以前學過處理器的指令集架構主要分為 RISC CISC,像 ARM 就是RISC 架構,Intel AMDCPU 則為 CISC 架構。

但隨著 CPU 的發展,現在 ARM 的指令集也越來越複雜、越來越強大,但在耗電的表現上還是比 Intel AMD 優異,因此移動裝置的 CPU 幾乎都是 ARM 的天下。

現在 RISC 有一個開放指令集的架構 RISC-V 非常有名,也廣泛地在開源社群被討論,以及被實際應用;台灣的「晶心科技」目前就積極切入這塊領域,感覺前景一片光明。

至於為何 ARM 的生態圈這麼成熟還要跑出一個 RISC-V 的指令集架構呢? 

其原因還是在於 ARM 的授權模式及費用過於複雜及昂貴,很多物聯網或工控的裝置可能不需要效能太高的處理器,但授權費就是個基本門檻,也不利於新創公司切入。

因此,當有一個相對成熟的開放指令集架構誕生時,大家就趨之若鶩,希望基於這個架構的生態圈早日建立起來,也嘉惠一下我們這些開發者或使用者。


本章節重點摘要如下:

處理器有一份它能執行的「基本運算指令系統」,它能做算術加減乘除;能從「記憶體」中擷取資料,進行處理後再把結果存回記憶體中;它使用「匯流排」中的訊號來指揮與協調它透過電力連結的所有輸入與輸出,包含滑鼠、鍵盤與顯示器等。

雖然處理器的指令系統不大,也不複雜,但它每秒能執行「數十億個運算」,因此它能做複雜而精細的運算。

處理器的指令表中有一種被稱為分支( branch) 或跳轉 (jump) 的指令,讓它去重複使用指令序列。

為了讓重複執行的指令序列或迴圈 (loop)停下來,需要檢查條件來決定接下來做什麼,這種指令稱為條件分支 (conditional branch) 或 條件跳轉 (conditional jump)。

電腦架構 (computer architecture) 處理有關於處理器的設計,以及處理器和電腦的其他部分的連結,在大學裡,這通常是電腦科技和電機工程這兩個領域的交叉領域。

電腦架構的考量之一是指令集→處理器提供的指令表。

現代的電腦在處理器和記憶體之間使用名為「快取記憶體 (cache)」的高速記憶體來暫存最近使用的指令及資料,比主記憶體快。

處理器可以被設計成交替地擷取與執行 (overlap fetch and execute),各個不同階段有幾條指令在處理中,此稱為指令管線化 (pipelining,或譯為流水線或管線操作)。

現代的發展趨勢明顯朝向單一晶片上有越來越多的處理器,隨著積體電路的特徵尺寸變小,一片晶片上可以擠入更多電晶體,通常被用在更多的核心和更多的快取記憶體。

一台普通的處理器有兩個或三個快取記憶體,依序一個比一個的容量大,但速度更慢,通常稱為一級 (Level 1, L1)、二級 ((Level 2, L2)、三級 (Level 3, L3),容量最大的快取記憶體可能能夠儲存幾 MB 的資料。

使用快取記憶體就是因為最近使用過的資訊可能很快就再度被使用。

手機與平板也是電腦,運轉一套作業系統,提供豐富的運算環境。幾乎所有我們生活中使用的數位設備,都內建了更小的電腦系統。

圖形處理器 (Graphics Processing Unit, GPU) 是一種專門性質的處理器,執行特定的圖形運算的速度遠快於通用型中央處理器。在圖形處理器能夠平行處理大量簡單的算術運算。

在機器學習 (machine learning) 中,圖形處理器特別有幫助。

定義一台機器的「指令集架構 (instruction set architecture)」的方式很多,這涉及了速度、耗電、指令本身複雜程度等因素之間的權衡,這些細節對硬體設計者而言很重要,但對多數電腦程式設計者而言,沒這麼重要。

沒有留言:

張貼留言

第一次去現場聽演唱會

上週末,終於如願以償地去到小巨蛋聽「張學友  60+ 巡迴演唱會」,這是老婆跟我期待以久的活動,也是我們人生第一次參加演唱會。 說來有趣,舞台劇、音樂會以及一些藝術表演,我們反倒不陌生,唯獨演唱會沒去過,之前了不起就參加簽唱會或 Live House 的小型演出。 不是我們沒...