1. 程式人生 > >兆芯(9月19)

兆芯(9月19)

BIOS:基本輸入輸出系統,儲存著計算機最重要的基本輸入輸出程式,開機後自檢程式和系統自啟動程式

主要業務和目標是研發基於國產X86架構的CPU、GPU和晶片的

X86架構:微處理器執行的計算機語言指令集

BootLoader:嵌入式系統上電後執行的第一段程式碼,在嵌入式系統中,通常沒有像BIOS那樣的韌體程式,因此bootloader是在作業系統核心執行之前執行,可以初始化硬體裝置、建立記憶體空間對映,就是把系統的軟硬體環境帶到一個合適的狀態,為最終呼叫作業系統核心準備好正確的環境

記憶體管理

  • mmu(記憶體管理單元):管理虛擬儲存器,物理儲存器的控制線路,虛擬地址對映為實體地址,以及提供硬體機制的記憶體訪問授權

  • 虛擬儲存,只把當前執行程序的頁表駐留在記憶體中,其它程序頁表不必駐留在記憶體中,在需要時進行頁的置換

  • 為每個程序提供了一致的地址空間,簡化了儲存器管理
  • 虛擬儲存器都是使用分頁,記憶體被分成大小固定相等的稱為頁的塊,且塊相對比較小,每個程序也被分同同樣大小的小塊,稱為頁框,程序中的頁就可以指定到記憶體中的頁框;減少記憶體碎片
  • 分段:可以把程式和其相關的資料分到幾個段中,段的大小可以不等,類似於動態分割槽,不要求連續

  • 虛擬定址,CPU生成一個虛擬地址來訪問主存,虛擬地址需要經過mmu地址翻譯為實體地址

  • 頁表:將虛擬頁對映到物理頁,mmu將虛擬地址轉換成實體地址時都會讀取頁表,作業系統為系統中的每個程序都維護一個獨立
    的頁表
  • 虛擬地址由虛擬頁號和虛擬頁偏移量組成,虛擬頁號作為到頁表的索引,將頁表中的物理頁號和虛擬頁偏移量加起來就得到了實體地址

檔案系統:作業系統中負責管理和儲存檔案的軟體結構,為應用程式和使用者訪問檔案的功能介面,也是唯一方式

程序管理:

使用者模式,快速中斷模式,外部中斷模式,特權模式

37個32位暫存器,31個通用暫存器,6個狀態暫存器

暫存器R13是做堆疊指標,
暫存器R14(lr):用作連線暫存器,用於儲存函式的返回地址
暫存器R15是程式計數器,存放下一條要執行指令的地址

通過R0~R3來傳遞引數,R4~R11用來儲存區域性變數,

(R16)CPSR:當前程式狀態暫存器
SPSR:備份程式狀態暫存器

ARM異常型別:復位異常,軟體中斷,IRQ,FIQ

FIQ省去了中斷過程的一條跳轉指令,FIQ的向量地址緊接中斷向量表存放,中斷向量表後就是程式程式碼

SPI IIC

  • SPI是四訊號線協議,SCK(時鐘線),MOSI和MISO(資料線),從裝置片選訊號線;
  • 高速全雙工同步通訊匯流排,
  • SPI是單主裝置通訊協議,當SPI主裝置向讀/寫從裝置時,它首先拉低從裝置的SS線,然後將讀/寫訊號發到MISO(實現讀)和MOSI(實現寫)
  • 外設的讀和寫是同步進行的
  • CPOL(時鐘極性)=0,序列時鐘空閒狀態為0
  • CPHA(時鐘相位)=0,序列時鐘的第一個跳變沿資料被取樣
  • SPI不規定最大傳輸速率,沒規定通訊應答機制,沒有規定流控制規則

  • IIC是多主裝置的匯流排,高速同步半雙工通訊匯流排,兩線式序列匯流排

  • 每個IIC裝置都有一個地址;資料幀大小為8位的位元組,資料幀中某些資料位用於控制通訊的開始、停止和應答
  • 主裝置發一個開始訊號,主裝置傳送一個7位從裝置地址加一位讀寫操作的資料幀;當從裝置收到資料後,比對地址是否為目標裝置,如果比對相符,裝置會發送一個應答訊號給主裝置;主裝置收到應答便開始傳輸資料;資料傳送完畢,主裝置傳送一個stop訊號,釋放匯流排
  • START:SCl為高,SDA由高電平變為低電平;
  • STOP:SCL為高,SDA由低電平變為高電平

對比

  • IIC兩根訊號線,SPI四根訊號線,多個從裝置訊號線需要更多,IIC構建系統匯流排的唯一問題是有限的7位地址空間,新標準使用10位地址
  • SPI高速資料傳輸,甚至到10Mbps

程序通訊

  • 管道
  • 訊號
  • 訊號量
  • 共享記憶體
  • 訊息佇列

執行緒同步:

  • 臨界區(關鍵程式碼段):單個程序中執行緒間的同步
  • 事件:
  • 互斥物件
  • 訊號量

程序:具有一定獨立功能的程式載入到記憶體執行得到一個實體,程序是作業系統資源分配的基本單元;
執行緒:執行緒是程序的一個實體,是CPU排程的基本單元;執行緒自己基本上不擁有系統資源,只擁有一點執行必不可少的資源(棧,程式計數器),但是它和同屬一個程序的其他執行緒共享程序的全部資源。一個執行緒可以建立和撤銷另一個執行緒