ARM芯片的了解
一、芯片的架構(gòu)模式 原文
馮諾依曼架構(gòu)
自己理解,不需要執(zhí)行的程序存儲在硬盤/FLASH中,需要執(zhí)行的程序則讀取到內(nèi)存中(c程序存儲的表),然后cpu進行運算。cpu執(zhí)行程序都是與ram操作,而不需要rom(flash)。
5. 哈佛架構(gòu)
這個架構(gòu)主要是單片機。
cpu和ram、rom之間都要打交道。
這兩種架構(gòu)分別有哪些芯片?
哈佛架構(gòu)主要是單片機(MCU)、馮諾依曼架構(gòu)主要是cortex-a9的三星exynos-4412、麒麟970等芯片,他們往往都有很大的內(nèi)存(DDR)。
兩種混合架構(gòu)
平時執(zhí)行的程序使用馮諾依曼架構(gòu),(進程)也就是執(zhí)行程序的程序存儲放在DDR上,不執(zhí)行時程序放在FLASH中。
另外內(nèi)部有一個很小的ram和rom,用來執(zhí)行啟動程序,上電就執(zhí)行啟動程序。
有了系統(tǒng)后就可以實現(xiàn)進程調(diào)度可以實現(xiàn)多進程、多線程。
二、計算機組成
一、輸入設備
輸入設備的任務是把人們編好的程序和原始數(shù)據(jù)送到計算機中去,并且將它們轉(zhuǎn)換成計算機內(nèi)部所能識別和接受的信息方式。常用的有鍵盤、鼠標、掃描儀等。
二、輸出設備
輸出設備的任務是將計算機的處理結(jié)果以人或其他設備所能接受的形式送出計算機。常用的有顯示器、打印機、繪圖儀等。
三、存儲器、CPU
四、計算機的總線結(jié)構(gòu)
將各個硬件按某種方式連接起來,就構(gòu)成了計算機硬件系統(tǒng)。
總線系統(tǒng)包含三種總線,分別是數(shù)據(jù)總線 DB(data Bus)、地址總線 AD(address Bus)和控制總線 CB(control Bus)。
數(shù)據(jù)總線,專門用來傳輸數(shù)據(jù)的。數(shù)據(jù)總線的位寬是微型計算機的一個很重要的指標,通常與微處理的位數(shù)一致。例如Intel 8086微處理器字長16位,其數(shù)據(jù)總線寬度也是16位。
地址總線,專門用來傳輸?shù)刂返摹K€決定了計算機可尋址的大小。
控制總線,用來傳輸控制信號和時序信號。例如cpu給存儲設備和IO接口的 讀/寫信號、中斷響應信號、片選信號等;還有其他設備反饋給cpu的中斷請求信號、復位信號、總線請求信號、限備就緒信號等。控制總線的具體情況取決于CPU。
三、CPU的工作原理
cpu內(nèi)部主要包括控制器和運算器。
1) 存儲器
存儲器是用來存放程序和數(shù)據(jù)的部件,它是一個記憶裝置,也是計算機能夠?qū)崿F(xiàn)“存儲程序控制”的基礎。
包括:Cache、主存儲器、輔助存儲器。
「高速緩沖存儲器(Cache)」 CPU可以直接訪問,用來存放當前正在執(zhí)行的程序中的活躍部分,以便快速地向CPU提供指令和數(shù)據(jù)。
「主存儲器」 可由CPU直接訪問,用來存放當前正在執(zhí)行的程序和數(shù)據(jù)。
「輔助存儲器」 設置在主機外部,CPU不能直接訪問,用來存放暫時不參與運行的程序和數(shù)據(jù),需要時再傳送到主存。
2) 運算器
運算器的核心是算術邏輯運算部件ALU,還包括若干個寄存器(如累加寄存器、暫存器等)。
ALU可以執(zhí)行算術運算(包括加減乘數(shù)等基本運算及其附加運算)和邏輯運算(包括移位、邏輯測試或兩個值比較)。
相對控制單元而言,運算器接受控制單元的命令而進行動作,即運算單元所進行的全部操作都是由控制單元發(fā)出的控制信號來指揮的,所以它是執(zhí)行部件。
3) 控制器
控制單元是整個CPU的指揮控制中心,由程序計數(shù)器 PC(program counter)、指令寄存器 IR(Instruction Register)、指令譯碼器 ID(Instruction Decoder)、操作控制器 OC (Operation Controller)等組成。
它根據(jù)用戶預先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)確定應該進行什么操作,然后通過操作控制器OC,按確定的時序,向相應的部件發(fā)出微操作控制信號。操作控制器OC中主要包括節(jié)拍脈沖發(fā)生器、控制矩陣、時鐘脈沖發(fā)生器、復位電路和啟停電路等控制邏輯。
4) CPU的運行原理總結(jié)
控制單元在時序脈沖的作用下,將指令計數(shù)器里所指向的指令地址(這個地址是在內(nèi)存里的)送到地址總線上去,然后CPU將這個地址里的指令讀到指令寄存器進行譯碼。
對于執(zhí)行指令過程中所需要用到的數(shù)據(jù),會將數(shù)據(jù)地址也送到地址總線,然后CPU把數(shù)據(jù)讀到CPU的內(nèi)部存儲單元(就是內(nèi)部寄存器)暫存起來,最后命令運算單元對數(shù)據(jù)進行處理加工。
5) 指令執(zhí)行過程
一條指令執(zhí)行的過過程主要分為以下4步:
1、取指令,cpu的控制器根據(jù)指令計數(shù)器中的指令地址,將指令從內(nèi)存中讀取到指令寄存器中。
2、譯指,指令譯碼器分析指令寄存器中的指令,并決定何種操作(就是指令里的操作碼)。
3、執(zhí)行,操作控制器根據(jù)分析后的指令按一定時序執(zhí)行;執(zhí)行分兩個階段,“取操作數(shù)”和“進行運算”。
4、修改指令計數(shù)器,指向下一條指令的地址。
6) ARM技術特征
ARM的成功,一方面得益于它獨特的公司運作模式,另一方面,當然來自于ARM處理器自身的優(yōu)良性能。作為一種先進的RISC處理器,ARM處理器有如下特點。
中間還有arm的發(fā)展史(原文)
7)ARM指令
ARM指令是RISC(Reduced Instruction Set Computing),即精簡執(zhí)令運算集,RISC把著眼點放在如何使計算機的結(jié)構(gòu)更加簡單和如何使計算機的處理速度更加快速上。RISC選取了使用頻率最高的簡單指令,拋棄復雜指令,固定指令長度,減少指令格式和尋址方式,不用或少用微碼控制。這些特點使得RISC非常適合嵌入式處理器。
RISC可以實現(xiàn)以相對少的晶體管設計出極快的微處理器。通過研究發(fā)現(xiàn),只有大約20%的指令是最常用的,把處理器能執(zhí)行的指令數(shù)目減少到最低限度,對它們的執(zhí)行過行優(yōu)化,就可以極大地提高處理的工作速度。
一般來說,RISC處理器比同等的CISC(Complex Instruction Set Computer,復雜指令集計算機)處理器要快50%-75%,同時RISC處理器更容易設計和糾錯。
一般指令的格式如下:
「操作碼:」 操作碼就是匯編語言里的mov,add,jmp等符號碼;
「操作數(shù)地址:」 用于說明該指令需要的操作數(shù)所在的地方,是在內(nèi)存里還是在CPU的內(nèi)部寄存器里。
實際上的機器指令格式遠比這個復雜,下圖是常用的ARM指令格式:
四、SOC
cpu、mpu、mcu、soc之間的區(qū)別
mpu、mcu、dsp
SOC: 系統(tǒng)芯片是一個將計算機或其他電子系統(tǒng)集成單一芯片的集成電路。系統(tǒng)芯片可以處理數(shù)字信號、模擬信號、混合信號甚至更高頻率的信號。
從狹義角度講,它是信息系統(tǒng)核心的芯片集成,是將系統(tǒng)關鍵部件集成在一塊芯片上; 從廣義角度講, SoC是一個微小型系統(tǒng),如果說中央處理器(CPU)是大腦,那么SoC就是包括大腦、心臟、眼睛和手的系統(tǒng)。
1. ARM base Soc
嵌入式系統(tǒng)中常常要使用系統(tǒng)芯片。系統(tǒng)芯片的集成規(guī)模很大,一般達到幾百萬門到幾千萬門。SOC相對比較靈活,它可以將arm架構(gòu)的處理器與一些專用的外圍芯片集成到一起,組成一個系統(tǒng)。
下圖是一個典型的基于ARM架構(gòu)的SOC架構(gòu)圖。
一個典型的基于ARM的Soc架構(gòu)通常包含以下幾個主要部件:
該架構(gòu)是我們理解匯編指令和編寫裸機程序的基石。
當我們拿到一個新的SOC的datasheet,首先就要根據(jù)這個架構(gòu),來查看SOC的**「RAM空間、時鐘頻率、包括哪些外部設備的控制器,各個外設控制器的操作原理,各個外設對GPIO的引腳復用情況、各個控制器的SFR地址、中斷控制器是如何管理眾多中斷源的等等」。**
2. 三星 Exynos 4412 (原文)
總結(jié)
- 上一篇: 用画中画剪辑技巧,给每个视频添加背景图片
- 下一篇: ios13全选手势_苹果手机双指、三指等