在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

處理器架構與指令集

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2023-04-26 11:40 ? 次閱讀

大家天天都在使用手機,你知道你的手機使用的什么處理器?處理器又是何種架構呢?今天筆者就來談談處理器的架構和指令集。

我們知道一臺手機最重要的就是處理器,也就是處理器,那么什么是處理器呢?

處理器就是一堆數字電路(架構)以高低電平的各種組合實現了各種基本的運算(指令)。

接下來我們看看要想設計出處理器,需要哪些東西,先看下圖。

C:\\Users\\BruceOu\\Desktop\\v2-f36a60eaefd960510db4e5503186e3aa_720w.png

要想設計出處理器,就需要有指令集,也就是規定處理器的相應操作,通過指令集去控制處理器實現相應功能。但處理器是一堆硬件電路,只能識別二進制數據,所以指令集是由一堆二進制數據組成。處理器通過指令集是給用戶提供的一個接口。指令集架構(Instructuon
Set ArchitectureI, ISA)和處理器架構(Micro architecture)是上下級的關系。

而二進制數據對人類來說讀起來很麻煩。為了方便人類操作指令集,發明了匯編語言來描述指令集。匯編語言類似人類語言,讀起來方便多了。雖然匯編語言讀起來方便了,但也有缺陷。首先匯編語言操作起來還是挺麻煩的。其次匯編語言對應一條條指令集,所以當指令集改變時,就得修改相應匯編語言,導致其可移植性很差,不能跨平臺使用,如ARM架構的匯編語言與Intel
X86架構的就不同。這時人們就想開發一種更方便操作,超越指令集的語言,于是有了C,C++等高級語言。

處理器只能識別二進制碼,那怎么能識別高級語言呢?于是人們開發了編譯器,依照如下順序,將高級語言翻譯成二進制碼:

C:\\Users\\BruceOu\\Desktop\\導圖1.png

至此,人類就可以方便的利用高級語言編寫程序,控制處理器完成相應工作。然后程序員這個職業就此大規模誕生了。哈哈,驚不驚喜!好了,接下來我們談談處理架構和指令集。

1 馮·諾依曼架構與哈佛架構

對于處理器架構,目前已經演變出很多架構,但基本上都是由__馮·諾依曼架構和哈佛架構__演變而來。

C:\\Users\\BruceOu\\Desktop\\main-qimg-b8bb926704ed320c5362245b39e8532d.jpg

1.1 馮·諾伊曼架構

1945 年,約翰·馮·諾依曼 (John von Neumann) 在他的著名《First Draft of a Report on the
EDVAC》提出了電子數字計算機,也就是馮·諾伊曼架構。

馮·諾伊曼架構(Von Neumann
Architecture),也稱普林斯頓結構,是一種將__程序指令存儲器和數據存儲器合并在一起的處理器架構__。

該架構將儲存裝置與中央處理器分開的概念,因此依該架構設計出的計算機又稱__儲存程式型電腦__。

馮諾依曼架構如下圖所示:

C:\\Users\\BruceOu\\Desktop\\basic_structure.png

1.CPU
:CPU是負責執行計算機程序指令的電子電路單元。CPU是處理指令的計算機系統的主要組件。它運行操作系統和應用程序,不斷接收來自用戶或應用程序的輸入。

2.寄存器 :它是一種存儲器,用于快速接收、存儲和傳輸中央處理器立即使用的數據和指令。

3 . ALU : Arithmetic Logic Unit 負責所有所需的計算,如乘法、加法、減法、比較、邏輯運算符和其他算術運算符。

4.控制單元(CU) : CU也是中央處理器(CPU)的一部分。CU 操作系統內的所有處理器控制信號、輸入/輸出設備、數據和指令的移動。

5.總線 :用作指令和數據的信號通信

6.內存單元 :內存單元由隨機存取內存 (RAM) 組成,有時也稱為主內存或主內存。與硬盤(二級內存)不同,這種內存速度快,而且 CPU可以直接訪問。RAM被分成多個分區。它的每個分區都由一個地址及其內容組成。該地址將唯一標識內存中的每個位置。將數據從永久內存(硬盤)加載到更快且可直接訪問的臨時內存 (RAM)中,可使 CPU 工作得更快。

PC和服務器芯片(譬如Intel AMD那些出的),ARM Cortex-A系列嵌入式芯片(譬如核心是ARM CortexA8的三星S5PV210,譬如華為的麒麟970等手機芯片)等都是馮諾依曼結構。這些系統都需要大量內存,所以工作內存都是DRAM,因為他們更適合使用馮諾依曼系統。

1.2 哈佛架構

哈佛架構(Harvard architecture)是一種__將程序指令儲存和數據儲存分開的存儲器結構__。中央處理器首先到程序指令儲存器中讀取程序指令內容,解碼后得到數據地址,再到相應的數據儲存器中讀取數據,并進行下一步的操作(通常是執行)。

哈佛架構的架構如下:

C:\\Users\\BruceOu\\Desktop\\500px-harvard_architecture-svg.png

1.總線:用作指令和數據的信號通路。在這種架構中,數據和指令都有單獨的總線。有不同類型的總線,它們如下:數據總線、數據地址總線、指令總線、指令地址總線。

2.操作寄存器 :在哈佛架構中,使用了不同類型的寄存器,用于存儲不同類型指令的地址。一些寄存器是內存數據寄存器,內存地址寄存器。

3.程序計數器 :程序計數器具有要執行的下一條指令的位置。程序計數器將下一個地址傳遞給內存地址寄存器。

4. ALU :Arithmetic Logic Unit 負責所有所需的計算,如乘法、加法、減法、比較、邏輯運算符和其他算術運算符。

5.控制單元(CU) :CU也是中央處理器(CPU)的一部分。CU 操作系統內的所有處理器控制信號、輸入/輸出設備、數據和指令的移動。

6.輸入/輸出流:I/P設備用于在中央處理器(CUP)輸入指令的幫助下將數據讀入主存儲器。當輸出通過輸出設備顯示時,它提供來自系統的信息。簡單地說,計算機系統在 O/P
設備的幫助下給出處理(計算)的結果。

在遵循馮諾依曼架構的普通計算機中,指令和數據都存儲在同一內存中。因此使用相同的總線來獲取指令和數據。這意味著 CPU
不能同時做兩件事(讀指令和讀/寫數據)。而哈佛體系結構的計算機將指令和數據分別使用獨立存儲和獨立總線(信號路徑)。它基本上是為了克服馮諾依曼架構的瓶頸而開發的。
指令和數據總線分開的主要優點是 CPU 可以同時訪問指令和讀/寫數據 。這是哈佛架構的主要優勢。

哈佛結構的微處理器通常具有較高的執行效率,因其程序指令和數據指令分開組織和儲存的,執行時可以預先讀取下一條指令。目前使用哈佛結構的中央處理器和微控制器有很多,比如Microchip公司PIC系列芯片,還有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11。MCU也就是單片機中幾乎都是用哈佛結構,譬如廣泛使用的51單片機、典型的STM32單片機(核心是ARM Cortex-M系列的)都是哈佛結構。

與馮.諾曼結構處理器比較,哈佛結構處理器有兩個明顯的特點:

1.使用兩個獨立的存儲器模塊,分別存儲指令和數據,每個存儲模塊都不允許指令和數據并存;

2.使用獨立的兩條總線,分別作為CPU與每個存儲器之間的專用通信路徑,而這兩條總線之間毫無關聯。

1.3 總結

哈佛結構和馮諾依曼結構主要__區別在是否區分指令與數據__。在教科書里這是兩種截然不同的做法。

但實際上在內存里,指令和數據是在一起的。而在CPU內的緩存中,還是會區分指令緩存和數據緩存,最終執行的時候,指令和數據是從兩個不同的地方出來的。你可以理解為在CPU外部,采用的是馮諾依曼模型,而在CPU內部用的是哈佛結構。

哈佛結構設計復雜,但效率高。馮諾依曼結構則比較簡單,但也比較慢。CPU廠商為了提高處理速度,在CPU內增加了高速緩存。也基于同樣的目的,區分了指令緩存和數據緩存。有時為了解決現實問題,究竟是什么主義真的沒那么重要。

實際上,絕大多數現代計算機使用的是所謂的“Modified Harvard Architecture”,指令和數據共享同一個address space,但緩存是分開的。

在現實世界中很少有非常純粹的概念,特別是在實際的應用里。教科書里的大多是理想化的模型,便于掌握某個概念的重點和本質,但實際中很難達到這種理想化的狀態。

有一些ARM(Cortex-M系列)是哈佛結構,而另一些ARM(Cortex-A)是馮諾依曼結構(或者更準確說是混合結構),對ARM體系CPU(除ARM7)對外表現為馮.諾伊曼架構,對內則表現為哈佛架構。

C:\\Users\\BruceOu\\Desktop\\QQ截圖20210606233657.png

因此,兩種架構各有優勢,不能一概而論。就目前而言,兩種現代處理器在大規模的處理都是馮諾依曼,在小規模的處理是哈佛。

介紹完了處理器架構,接下來說說指令集。

2 CISC與RISC指令集

__CISC(Complex Instruction Set Computers,復雜指令集計算機)和RISC(Reduced Instruction Set Computers,精減指令集計算機)__是兩大類主流的CPU指令集類型。

2.1 CISC(復雜指令集計算機)

早期的CPU全部是采用CISC,它的設計目的是要用最少的機器語言指令來完成所需的計算任務。

隨著集成電路的發展,特別是VLSI(超大規模集成電路)技術的迅速發展,為了軟件編程方便和提高程序的運行速度,硬件工程師采用的辦法是__不斷增加硬件的復雜性來實現復雜功能的指令和多種靈活的編址方式__,甚至某些指令可支持高級語言語句歸類后的復雜操作,至使硬件越來越復雜,造價也相應提高。為實現復雜操作,微處理器除向程序員提供類似各種寄存器和機器指令功能外,還通過存于只讀存貯器(ROM)中的微程序來實現其極強的功能,處理器在分析每一條指令之后執行一系列初級指令運算來完成所需的功能,以這種指令集設計出來計算機就是CISC(complex
instruction set computer),其中以__CISC__架構設計的處理器有以Intel、AMD的X86為代表。

2.2 RISC(精簡指令集計算機)

采用復雜指令系統的計算機有著較強的處理高級語言的能力,這對提高計算機的性能是有益的。當計算機的設計沿著這條道路發展時,有些人沒有隨波逐流,他們回過頭去看一看過去走過的道路,開始懷疑這種傳統的做法,IBM公司在紐約Yorktown的JhomasI.Wason研究中心于1975年組織力量研究指令系統的合理性問題,因為當時已感到,日趨龐雜的指令系統不但不易實現,而且還可能降低系統性能。

1979年以帕特遜教授為首的一批科學家也開始在美國加冊大學伯克萊分校開展這一研究。結果表明,CISC存在許多缺點。首先,在這種計算機中,各種指令的使用率相差懸殊:一個典型程序的運算過程所使用的80%指令,只占一個處理器指令系統的20%,事實上最頻繁使用的指令是取、存和加這些最簡單的指令。這樣一來,長期致力于復雜指令系統的設計,實際上是在設計一種難得在實踐中用得上的指令系統的處理器。同時,復雜的指令系統必然帶來結構的復雜性。這不但增加了設計的時間與成本還容易造成設計失誤。

此外,盡管VLSI技術現在已達到很高的水平,但也很難把CISC的全部硬件做在一個芯片上,這也妨礙單片計算機的發展。在CISC中,許多復雜指令需要極復雜的操作,這類指令多數是某種高級語言的直接翻版,因而通用性差。由于采用二級的微碼執行方式,它也降低那些被頻繁調用的簡單指令系統的運行速度。

因而,針對CISC的這些弊病。帕特遜等人提出了精簡指令的設想即指令系統應當只包含那些使用頻率很高的少量指令,并提供一些必要的指令以支持操作系統和高級語言。按照這個原則發展而成的計算機被稱為__精簡指令集計算機(Reduced Instruction Set Computer)__,簡稱RISC。RISC以ARM、Apple的Macintosh、IBM Power為代表。開源的RISC-V也是RISC指令集。

RISC的設計初衷針對CISC CPU復雜的弊端,選擇一些可以在單個CPU周期完成的指令,以降低CPU的復雜度,將復雜性交給編譯器。

2.3 CISC和RISC區別

為了說明兩者的區別,先舉一個例子。下圖是實現乘法運算的計算步驟:a = a * b。它需要4個步驟:

A.讀出a的值

B.讀出b的值

C.相乘

D.寫結果到a中

使用CISC提供的乘法指令,只需要一條指令即可完成這4步操作。當然,這一個指令需要多個CPU周期才可以完成。

而RISC不提供“一站式”的乘法指令,需調用四條單CPU周期指令完成兩數相乘:內存a加載到寄存器,內存b加載到寄存器,兩個寄存器中數相乘,寄存器結果存入內存a。

按照此思路,早期的設計出的RISC指令集,指令數是比CISC少些。后來,很多RISC的指令集中指令數反超了CISC。因此,應該根據指令的復雜度而非數量來區分兩種指令集。

當然,CISC也是要通過操作內存、寄存器、運算器來完成復雜指令的。它在實現時,是將復雜指令轉換成了一個微程序,微程序在制造CPU時就已存儲于微服務存儲器。一個微程序包含若干條微指令(也稱微碼),執行復雜指令時,實際上是在執行一個微程序。這也帶來兩種指令集的一個差別,微程序的執行是不可被打斷的,而RISC指令之間可以被打斷,所以理論上RISC可更快響應中斷。

總的來說,區別如下:

1.指令能力:

CISC的指令能力強,單多數指令使用率低卻增加了CPU的復雜度,指令是__可變長格式,__它必須對不等長指令進行分割,因此在執行單一指令的時候需要進行較多的處理工作。

RISC的指令大部分為__單周期指令__,__指令長度固定,__CPU在執行指令的時候速度較快且性能穩定。因此在并行處理方面RISC明顯優于CISC,RISC可同時執行多條指令,它可將一條指令分割成若干個進程或線程,交由多個處理器同時執行。RISC對內存只有load/store操作,數據的運算都是在CPU內部實現。

2.尋址方式:

CISC支持多種尋址方式。

RISC支持的尋址方式少。

3.實現方式:

CISC通過微程序控制技術實現(微碼)。

RISC增加了通用寄存器,硬布線邏輯控制為主,適合采用流水線方式執行。RISC可以優化編譯,有效支持高級語言。

4.研發周期:

CISC的研制周期長。

RISC硬件簡單,因而它的制造工藝簡單且成本低廉。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19286

    瀏覽量

    229817
  • RISC
    +關注

    關注

    6

    文章

    462

    瀏覽量

    83730
  • 指令集
    +關注

    關注

    0

    文章

    224

    瀏覽量

    23384
收藏 人收藏

    評論

    相關推薦

    一文了解STM32啟動過程

    每一款芯片的啟動文件都值得去研究,因為它可是你的程序跑的最初一段路,不可以不知道。通過了解啟動文件,我們可以體會到處理器架構指令集、中斷向量安排等內容,是非常值得玩味的。
    發表于 05-08 09:44 ?3255次閱讀
    一文了解STM32啟動過程

    現代處理器的主要指令集架構

    ? ?現代處理器的主要指令集架構(ISA)包括:x86指令集架構、RISC指令集
    的頭像 發表于 12-11 09:55 ?4548次閱讀
    現代<b class='flag-5'>處理器</b>的主要<b class='flag-5'>指令集</b><b class='flag-5'>架構</b>

    嵌入式系統軟硬件基礎知識大全

    、成本和功耗方面具有獨特的優勢。在理解嵌入式系統之前,我們需要對其硬件基礎知識有一個全面的了解。在嵌入式系統中,處理器是其核心組成部分,它負責執行各種計算任務。處理器架構指令集是嵌
    發表于 05-09 14:12

    對ARM架構的芯片講解其相關的指令集

    匯編和處理器架構指令集有什么關系呢?ARM架構的芯片有哪些相關的指令集呢?
    發表于 11-29 06:28

    精簡指令集架構RISC與復雜指令集架構CISC有何區別

    精簡指令集架構RISC是什么?復雜指令集架構CISC又是什么?精簡指令集架構RISC與復雜
    發表于 12-23 10:02

    處理器指令集設計

    處理器指令集設計垂直指令格式指令類型及其使用頻度CISC指令集特點 RISC指令集特點
    發表于 10-29 17:13 ?64次下載
    微<b class='flag-5'>處理器</b><b class='flag-5'>指令集</b>設計

    Cortex-M系列處理器指令集_指令集特性比較總結

    本文主要介紹Cortex-M系列處理器指令集指令集特性比較總結,具體的跟隨小編一起來了解一下。
    發表于 04-18 16:59 ?7966次閱讀
    Cortex-M系列<b class='flag-5'>處理器</b><b class='flag-5'>指令集</b>_<b class='flag-5'>指令集</b>特性比較總結

    STM32啟動過程--啟動文件--分析

    STM32啟動過程--啟動文件--分析一、概述1、說明  每一款芯片的啟動文件都值得去研究,因為它可是你的程序跑的最初一段路,不可以不知道。通過了解啟動文件,我們可以體會到處理器架構指令集
    發表于 11-30 13:21 ?4次下載
    STM32啟動過程--啟動文件--分析

    了解STM32啟動過程,好優化程序

    每一款芯片的啟動文件都值得去研究,因為它可是你的程序跑的最初一段路,不可以不知道。通過了解啟動文件,我們可以體會到處理器架構指令集、中斷向量安排等內容,是非常值得玩味的。
    發表于 02-08 15:17 ?0次下載
    了解STM32啟動過程,好優化程序

    一文詳解STM32單片機的啟動文件

    每一款芯片的啟動文件都值得去研究,因為它可是你的程序跑的最初一段路,不可以不知道。通過了解啟動文件,我們可以體會到處理器架構指令集、中斷向量安排等內容,是非常值得玩味的。
    的頭像 發表于 04-26 14:32 ?4510次閱讀

    瑞薩推出首款基于RISC-V指令集架構處理器內核

    嵌入式硬件專家瑞薩電子宣布推出首款基于免費開放的 RISC-V 指令集架構 (ISA) 的完全自主研發的處理器內核。
    的頭像 發表于 12-01 17:28 ?1536次閱讀
    瑞薩推出首款基于RISC-V<b class='flag-5'>指令集</b><b class='flag-5'>架構</b>的<b class='flag-5'>處理器</b>內核

    嵌入式微處理器的基礎是什么

    要求的硬件和軟件技術。 在嵌入式微處理器的基礎上,我們可以考慮以下幾個方面進行詳細討論: 處理器架構指令集:嵌入式微處理器通常在特定的
    的頭像 發表于 04-21 14:34 ?1109次閱讀

    處理器指令集架構介紹

    處理器指令集架構(Instruction Set Architecture,ISA)是計算機體系結構中至關重要的部分,它定義了微處理器能夠執行的操作和
    的頭像 發表于 08-22 10:53 ?1181次閱讀

    處理器指令集有哪些

    處理器指令集是微處理器設計和功能實現的基礎,它決定了微處理器能夠執行哪些操作以及這些操作如何被組織和執行。隨著計算機技術的不斷發展,微處理器
    的頭像 發表于 10-05 14:58 ?299次閱讀

    簡述微處理器指令集架構

    處理器指令集架構(Instruction Set Architecture,ISA)是計算機體系結構中的核心組成部分,它定義了計算機能夠執行的指令集合、數據類型、寄存
    的頭像 發表于 10-05 14:59 ?460次閱讀
    主站蜘蛛池模板: 中国一级特黄真人毛片免费看 | 一区二区中文字幕亚洲精品| 综合伊人久久| 男女爱爱免费| 天堂网www在线资源网| 亚洲欧美视频二区| 久久精品国产亚洲aa| 日本亚洲视频| 欧美日韩在线成人免费| 视频福利网| 国产a三级三级三级| 精品一区 二区三区免费毛片| 天天爱天天射| 国内一区二区三区精品视频| 久久综合97色综合网| 国产真实野战在线视频| 一级全免费视频播放| 国产精品久久新婚兰兰| a看片| 四虎影视国产精品| 午夜在线观看网站| tom影院亚洲国产| 泰剧天堂| 精品啪啪| aa在线视频| 色妞色综合久久夜夜| 五月花亚洲| 正在播放国产乱子伦视频| 国产色婷婷精品综合在线| 亚洲最色网| 欧美特黄一区二区三区| 久久影视免费观看网址| 午夜情趣视频| 天天曰天天干| 亚洲三级在线看| 亚洲乱亚洲乱妇13p| 韩国理伦片在线观看2828| 丁香婷婷亚洲| 婷婷在线观看网站| 国产美女精品三级在线观看| h视频免费观看|