天天看點

ARM [ SoC&CPU CISC&RISC I/O與記憶體的編址 ] 相關概念一、CPU設計方式的發展曆程二、IO 與 記憶體三、SoC 與 CPU

一、CPU設計方式的發展曆程

1. CISC

CPU ( central processing unit,中央處理器 )作為計算機系統的運算和控制核心,是資訊處理、程式運作的最終執行單元。

計算機處理器包含有實作各種功能的指令或微指令,指令集越豐富,為微處理器編寫程式就越容易,但是豐富的微指令集會影響其性能。複雜指令集計算機 (CISC) 體系結構的設計政策是使用大量的指令,包括複雜指令。與其他設計相比,在 CISC 中進行程式設計要比在其他設計中容易,因為每一項簡單或複雜的任務都有一條對應的指令。程式設計者不需要寫一大堆指令去完成一項複雜的任務。但指令集的複雜性使得CPU和控制單元的電路非常複雜。

CISC 包括一個豐富的微指令集,這些微指令簡化了在處理器上運作的程式的建立。指令由彙編語言所組成,把一些原來由軟體實作的常用的功能改用硬體的指令系統實作,程式設計者的工作因而減少許多,在每個指令期同時處理一些低階的操作或運算,以提高計算機的執行速度,這種系統就被稱為複雜指令系統。

在 CISC 指令集的各種指令中,其使用頻率卻相差懸殊,大約有20%的指令會被反複使用,占整個程式代碼的80%。而餘下的80%的指令卻不經常使用,在程式設計中隻占20%。

2. RISC

RISC (精簡指令集計算機) 設計方案,如它的名字所蘊涵的那樣,有一個簡化的指令集,該指令集提高處理器的效率但是需要有更複雜的外部程式。RISC 結構優先選取使用頻最高的簡單指令,避免複雜指令;将指令長度固定,指令格式和尋地方式種類減少;以控制邏輯為主,不用或少用微碼控制等措施來提高運算速度。

RISC 設計方案是根據John Cocke在IBM所做的工作形成的。John Cocke發現大約20%的計算機指令完成大約80%的工作。是以,基于RISC 的系統通常比 CISC 系統速度快。它的80/20規則促進了RISC體系結構的發展。

當然,和 CISC 架構相比較,盡管RISC架構有上述的優點,但不能認為 RISC 架構就可以取代 CISC 架構,事實上,RISC 和 CISC 各有優勢,而且界限并不那麼明顯。現代的CPU往往采用 CISC 的外圍,内部加入了 RISC 的特性,如超長指令集 CPU 就是融合了RISC和CISC的優勢,成為未來的CPU發展方向之一。

簡單地說:

  1. CISC CPU 功能擴充依賴于指令集的擴充,實質是CPU内部組合邏輯電路的擴充。幾乎每一條指令都依靠設計相應的邏輯電路來實作對應的功能。是以, CISC CPU 工藝複雜,成本高,而且不适用于低功耗場景。

CISC 體系的設計理念是用最少的指令來完成任務(譬如計算乘法隻需要一條MU兒指令即可),是以 CISC 的 CPU 本身設計複雜,

工藝複雜,但好處是編譯器好設計。CISC 出現較早,至今Inteli還一直采用 CISC 設計。

  1. RISC CPU 僅提供基礎功能指令(譬如記憶體與寄存器通信指令,基本運算與判斷指令等),功能擴充由使用CPU的人利用基礎架構來靈活實作。是以,RISC CPU 的工藝相對不複雜,成本也低,而且由于不像 RISC 那樣包含大量的複雜組合邏輯電路,是以功耗也很低。

二、IO 與 記憶體

1. 概念

  • 記憶體是程式的運作場所,記憶體和CPU之間通過總線連接配接,CPU通過一定的位址來通路具體記憶體單元。
  • IO (input and output) 是輸入輸出接口,是CPU和其他外部裝置(如序列槽、LCD、觸摸屏、LED等)之間通信的道路。一般的,IO 就是指CPU的各種内部或外部外設。

CPU 通路外設,一般指的就是 CPU 通路 外設裝置的内部寄存器,進而實作 CPU 與 外設的資料互動和通信,而 IO 用來指 CPU 的各種内部或外部的裝置。是以,我們把外設的裝置寄存器,就稱為 IO 空間。

2. IO 的通路方式

CPU 通路各種外設有2種方式:

  • 一種是類似于通路記憶體的方式,即把外設的寄存器當作一個記憶體位址來讀寫,進而以通路記憶體相同的方式來操作外設,叫 IO 與記憶體統一編址方式;
ARM [ SoC&CPU CISC&RISC I/O與記憶體的編址 ] 相關概念一、CPU設計方式的發展曆程二、IO 與 記憶體三、SoC 與 CPU
  • 另一種是使用專用的CPU指令來通路某種特定外設,叫 IO與記憶體獨立編址。

三、SoC 與 CPU

SoC = System on Chip,意思是內建在單一個矽片上的系統。

晶片的發展方向:從 CPU 到 SoC。

現在已經沒有純粹的CPU了,都是SoC。

ARM出賣的核心其實就是CPU(當然還需要總線),各種外設是半導體廠商自己添加的。

ARM [ SoC&CPU CISC&RISC I/O與記憶體的編址 ] 相關概念一、CPU設計方式的發展曆程二、IO 與 記憶體三、SoC 與 CPU

圖解:

1) 如左圖,中間的紅色部分就是 CPU,CPU 隻包含控制邏輯和運算邏輯。如果想要正常工作,還需要連接配接各種外設控制器,如 UART 控制器,LCD 控制器,Nand 控制器; CPU 加上各種外設控制器,全都內建在一塊 PCB 硬體闆子上,CPU 與各種外設控制器的連接配接線是 PCB 走線。

這種形式稱為闆上系統,Systom on board。

2)如右圖,其中的 “主要控制器和 CPU” 與左圖相比,并無差異。隻是這些 CPU 和外設控制器都是內建在一塊晶片上,而且它們的連接配接線屬于晶片内部總線。像這樣 CPU和外設控制器全都內建在一塊晶片上,就是片上系統,Systom on chip。

外設(Peripheral)

  • 外設就是外部裝置
  • SoC中 外設大部分都跑進去 SoC 内部了
  • 網卡、音頻編解碼等個别還經常在 SoC 外面
  • 晶片設計的趨勢是更大內建度,近年甚至将音視訊編解碼、DDR都內建進 SoC 内做成所謂單晶片解決方案。如海思Hi3518E
  • 裸機學習其實就是學習 SoC 的核心(CPU,表現為彙編指令集) 和各種外設(如序列槽)

ARM 是哈佛結構

  • 常見ARM(除ARM7外)都是哈佛結構的
  • 哈佛結構保證了 ARM CPU 運作的穩定性和安全性,是以 ARM 适用于嵌入式領域
  • 哈佛結構也決定了 ARM 裸機程式(使用實位址,即實體位址)的連結比較麻煩,必須使用複雜的連結腳本告知連結器如何組織程式;對于OS之上的應用(工作在虛拟位址之中) 則不需考慮這麼多

注:源自B站朱有鵬老師.