以前學過處理器的指令集架構主要分為 RISC 跟 CISC,像 ARM 就是RISC 架構,Intel 及 AMD 的 CPU 則為 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)的方式很多,這涉及了速度、耗電、指令本身複雜程度等因素之間的權衡,這些細節對硬體設計者而言很重要,但對多數電腦程式設計者而言,沒這麼重要。
沒有留言:
張貼留言