華為云自助建站好不好百度一下你就知道啦
目錄
1 導(dǎo)學(xué)
1.1回顧及導(dǎo)學(xué)
1.2 嵌入式系統(tǒng)分層
1.3 linux底層開發(fā)
2?ARM體系結(jié)構(gòu)與接口技術(shù)課程導(dǎo)學(xué)
3 計算機(jī)基礎(chǔ)
3.1 計算機(jī)的進(jìn)制
3.2 計算機(jī)組成
3.3?總線
4 多級存儲結(jié)構(gòu)與地址空間
4.1 多級存儲概念
4.2 地址空間
5 CPU工作原理
6 練習(xí)
1 導(dǎo)學(xué)
1.1回顧及導(dǎo)學(xué)
先學(xué)習(xí)C語言,包括C高級、shell腳本,數(shù)據(jù)結(jié)構(gòu)等。
再學(xué)習(xí)IO、進(jìn)程、線程、進(jìn)程間通信、網(wǎng)絡(luò)編程、數(shù)據(jù)庫等都是linux為我們寫好的接口函數(shù),稱為應(yīng)用層開發(fā)。
其中用到IO用到read、write、fork、socket等等,底層這些函數(shù)底層是對接硬件,向上提供接口,稱為系統(tǒng)移植、驅(qū)動開發(fā)。
1.2 嵌入式系統(tǒng)分層
應(yīng)用開發(fā) ? ? 即使用系統(tǒng)提供的接口(API),做上層應(yīng)用程序的開發(fā)
底層開發(fā) ? ? 即做操作系統(tǒng)本身的開發(fā)
1.3 linux底層開發(fā)
linux層次結(jié)構(gòu)
Linux子系統(tǒng)?
- 1.進(jìn)程管理:管理進(jìn)程的創(chuàng)建、調(diào)度、銷毀等 ? ?
- 2.內(nèi)存管理:管理內(nèi)存的申請、釋放、映射等 ? ?
- 3.文件系統(tǒng):管理和訪問磁盤中的文件 ? ?
- 4.設(shè)備管理:硬件設(shè)備及驅(qū)動的管理 ? ?
- 5.網(wǎng)絡(luò)協(xié)議:通過網(wǎng)絡(luò)協(xié)議棧(TCP、IP...)進(jìn)行通信
2?ARM體系結(jié)構(gòu)與接口技術(shù)課程導(dǎo)學(xué)
學(xué)習(xí)方法
課程內(nèi)容改變:CPU 接口 硬件
思維方式改變:程序如何執(zhí)行 接口如何配置 硬件如何控制
學(xué)習(xí)方式改變:先宏觀再微觀 重理解輕記憶 善于總結(jié)歸納
3 計算機(jī)基礎(chǔ)
3.1 計算機(jī)的進(jìn)制
邏輯1和0 ? ?
在計算機(jī)中數(shù)據(jù)的存儲、運(yùn)算、傳輸都是以高低電平的方式 ? ?
所以數(shù)字電路中用高、低電平來表示邏輯1和0
3.2 計算機(jī)組成
輸入設(shè)備 ? ?
把其他信號轉(zhuǎn)換成計算機(jī)能識別和處理的信號并送入計算機(jī)中 ? ? 如鍵盤、鼠標(biāo)、攝像頭等 ?
輸出設(shè)備 ? ?
把運(yùn)算結(jié)果以人或其他設(shè)備所能接受的形式送出計算機(jī)外 ? ? 如顯示器、音響、打印機(jī)等 ?
存儲器 ? ?
存儲器是用來存儲程序和數(shù)據(jù)的部件,是實現(xiàn)"存儲程序控制"的基礎(chǔ) ? ? 如內(nèi)存、硬盤等
運(yùn)算器 ? ?
CPU中負(fù)責(zé)進(jìn)行算數(shù)運(yùn)算和邏輯運(yùn)算的部件,其核心是算術(shù)邏輯單元ALU? (運(yùn)算器都是各種各樣的運(yùn)算電路)
控制器 ? ?
控制器是CPU的指揮中心,其控制著整個CPU執(zhí)行程序的邏輯過程
注:運(yùn)算器和控制器共同組成了CPU
3.3?總線
總線
是計算機(jī)中各個部件之間傳送信息的公共通信干線, 在物理上就是一束導(dǎo)線按照其傳遞信息的類型可以分為數(shù)據(jù)總線、地址總線、控制總線(總線意義:上面計算機(jī)的五個組成部分是獨(dú)立的,需要數(shù)據(jù)傳遞,總線是通信橋梁。)
DMA總線
DMA(Direct Memory Access)即直接存儲器訪問,使用DMA總線可以不通過CPU直接在存儲器之間進(jìn)行數(shù)據(jù)傳遞
注:DMA與普通總線的區(qū)別是可以不通過CPU,其他都需要過CPU。DMA可以釋放CPU使用率。
4 多級存儲結(jié)構(gòu)與地址空間
4.1 多級存儲概念
為什么要用這么多種存儲器?使用三級存儲結(jié)構(gòu)是為了兼顧速度、容量、價格
Cache ? ?
速度最快、價格最貴、容量最小、斷電數(shù)據(jù)丟失、cpu可直接訪問 ? ? 存儲當(dāng)前正在執(zhí)行的程序中的活躍部分,以便快速地向CPU提供指令和數(shù)據(jù)(高速緩存,速度最快,容量最小,價格最高)
主存儲器
速度、價格、容量介于Cache與輔存之間、斷電數(shù)據(jù)丟失、cpu可直接訪問 ? ? 存儲當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)(內(nèi)存,速度快,可以按字節(jié)訪問,容量小,斷電丟失)
輔助存儲器 ? ?
速度最慢、價格最低、容量最大、斷電數(shù)據(jù)不丟失、cpu不可直接訪問 ? ? 存儲暫時不運(yùn)行的程序和數(shù)據(jù),需要時再傳送到主存(硬盤,讀寫按塊,每次如512個字節(jié),單變量都是1個字節(jié),所以慢)
工作原理
CPU可以直接讀寫Cache和主存儲器
計算機(jī)打開程序會把硬盤搬到內(nèi)存。如果一部分代碼會經(jīng)常被讀寫,經(jīng)常需要讀寫的代碼會搬到Cache
4.2 地址空間
概念:一個處理器能夠訪問(讀寫)的存儲空間是有限的,我們稱這個空間為它的地址空間(尋址空間),一般來說N位地址總線的處理器的地址空間是2的N次方
如買了一個內(nèi)存4G,實際可能用到的只有3G多一點(diǎn)。因為讀的空間不是無限大的,地址是有限,與地址空間有關(guān)。CPU必須先發(fā)送一個地址,然后才能拿到地址中的內(nèi)容,那總有無法訪問的地址。
5 CPU工作原理
按順序發(fā)送指令計數(shù)器地址到內(nèi)存中?
取指?
譯碼
執(zhí)行?
指令計數(shù)器PC
指令寄存器IR
指令譯碼器
一條指令的執(zhí)行分為三個階段 ? ?
- 1.取址:CPU將PC寄存器中的地址發(fā)送給內(nèi)存,內(nèi)存將其地址中對應(yīng)的指令返回 ?? ?到CPU中的指令寄存器(IR) ? ?
- 2.譯碼:譯碼器對IR中的指令進(jìn)行識別,將指令(機(jī)器碼)解析成具體的運(yùn)算 ? ?
- 3.執(zhí)行:控制器控制運(yùn)算器中對應(yīng)的運(yùn)算單元進(jìn)行運(yùn)算,運(yùn)算結(jié)果寫入寄存器 ?每執(zhí)行一條指令后PC的值會自動增加指向下一條指令
6 練習(xí)
1.簡述為什么地址總線為32bit的處理器的地址空間為4G?
32位處理器的地址總線可以用來尋址 2^32 個不同的內(nèi)存地址,也就是 4,294,967,296 個地址。通常情況下,每個地址對應(yīng)一個字節(jié)的內(nèi)存空間。因此,32位地址總線可以尋址的內(nèi)存空間大小為 4,294,967,296 字節(jié),即4GB。
2.簡述CPU執(zhí)行指令的過程
CPU將PC寄存器中的地址發(fā)送給內(nèi)存,內(nèi)存將其地址中對應(yīng)的指令返回,到CPU中的指令寄存器(IR) ??
譯碼器對IR中的指令進(jìn)行識別,將指令(機(jī)器碼)解析成具體的運(yùn)算
控制器控制運(yùn)算器中對應(yīng)的運(yùn)算單元進(jìn)行運(yùn)算,運(yùn)算結(jié)果寫入寄存器 ?每執(zhí)行一條指令后PC的值會自動增加指向下一條指令,以此往下類推。