成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CPU-如何開始在新的CPU上編程

商務辦公
新在哪里?從未接觸過。比如之前一直在x86、ARM上寫程序,C比較多,匯編也調過。MIPS可能零零星星也看過幾篇資料。然后來了個用PowerPC的項目,或者RISC-V的項目,茫茫然無可奈何不知所措。

 新在哪里?從未接觸過。比如之前一直在x86、ARM上寫程序,C比較多,匯編也調過。MIPS可能零零星星也看過幾篇資料。然后來了個用PowerPC的項目,或者RISC-V的項目,茫茫然無可奈何不知所措。

這里介紹CPU相關的概念,需要哪些資料,可以沒有概念上的缺口,踏踏實實的開始為一個于己而言全新的CPU編寫代碼。

[[252410]]

一. CPU

CPU即中央處理器,執行一系列指令,完成處理任務。CPU即是指令執行器,包含了為執行各種指令所需要的模塊,如數學運算單元ALU、指令編譯碼器、寄存器、移位寄存器、計數器等基礎組成部分,還有L1/L2 Cache, MMU等現代CPU而言也算基礎的單元。

二. SoC

System on Chip: 片上系統,為了提升集成度,降低PCB電路板上的芯片器件數量,把相當一部分芯片和CPU封裝到一起,即成為SoC。被封裝的器件成為SoC的模塊,如USB, Eth MAC/PHY, WIFI(802.11), NFC, Bluetooth, GPS模塊, 除了片上內存之外,Flash也可以集成進去,等等。

三. ISA

Instruction Set Architecture:指令集架構。規定了每條指令的格式和作用等。基本上,每個指令集都包含數學運算、移位、跳轉、內存訪問等指令,有一些還包含多媒體處理、壓縮解壓縮等領域能力增強指令。

ISA由以下幾個模型組成:

1.Register Model

指令必然用到寄存器,寄存器有多少、如何組織等,屬于寄存器模型的內容。

2.Intstruction Model

指令的種類、格式、作用等。根據指令格式是否固定,可以分為復雜指令集和精簡指令集,即CISC和RISC。

3.Interrupt Model

如何響應外部世界變化?有主動和被動兩種方式。具體到CPU而言:

a. 主動輪詢是否存在外部事件需要響應;

b. 被外部事件中斷;

細細思量之下,中斷即使在一條指令未執行完成時發生,也無法立即得到響應,而是需要在當前指令執行完畢之后,去查看是否有中斷發生,如果有則進行響應。所以中斷其實也是輪詢,只不過輪詢的周期為每執行一條指令輪詢一次。外因通過內因起作用,也可以理解。

中斷模型定義:

a. 要處理的內部錯誤和外部中斷的種類;

b. 處理方式是否分為常規和快速處理模式;

c. 中斷是否有優先級,是否能夠打斷,是否能夠嵌套等;

與CPU的關系

常見的ISA有x86, ARM, MIPS, PowerPC等,其他早期的有Alpha,新生的有RISC-V等。

一般而言,每種CPU只基于某一種特定的ISA,而ISA可以有很多CPU實現。如i386/i586, Core i3/i5/i7都基于x86,AMD的CPU也基于x86。

當然也有例外,比如龍心Loongson主要基于MIPS,同時也實現了x86指令的譯碼(揣測,未確認)。

四. ABI

Application Binary Interface 應用二進制接口。區別于Application Programming Interface(API),ABI規定了如何使用ISA規定的指令集和寄存器進行編程,如哪一個寄存器用作棧指針,哪一個傳遞函數返回值,哪幾個傳遞函數入參等。

可見,ABI與ISA對應,而非CPU。

五. 開始編程

需要資料如下:

1.SoC文檔:內存地址空間劃分,初始化流程,各個模塊的寄存器定義;

2.CPU文檔:包含哪些模塊以及如何配置使用:MMU如何配置,Cache怎么刷等;

3.ISA文檔:寄存器模型、指令的作用等;

4.ISA對應的ABI規范:使用寄存器時有哪些注意事項;如PPCEABI,System V ABI,System V Application Binary Interface - Intel386 Architecture Processor Supplement,System V Application Binary Interface - PowerPC Processor Supplement。

5.編譯工具鏈資料:匯編器、編譯器、鏈接器。

責任編輯:武曉燕 來源: 故事v歷史
相關推薦

2019-06-03 20:00:09

LinuxCPU溫度GPU溫度

2023-04-12 15:37:31

Linux系統CPU

2023-07-10 13:46:58

PythonLlama.cppLLM

2010-03-18 16:02:09

python 多線程

2021-05-10 08:20:32

CPU 符號整數

2022-09-15 08:38:39

WebCPU數量

2013-12-18 11:04:57

CPU雙核

2019-07-10 05:08:05

CPU內存分頁管理

2021-04-08 09:32:17

鴻蒙HarmonyOS應用

2023-06-06 16:10:11

2018-12-06 12:58:50

CPU內存模塊

2011-03-30 14:49:00

Visual C++CPU

2024-11-20 17:28:00

C#CPU代碼

2012-05-16 11:03:50

微軟IIS

2022-06-20 05:18:29

服務器CPU

2022-05-05 12:01:16

壓力測試Linux

2022-05-05 05:55:44

Linux 系統壓力測試

2010-04-06 09:22:23

CentOS系統

2011-04-15 09:47:10

CentOSCPU
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级欧美三级在线观看 | 久久成人免费 | 国产精品日韩欧美一区二区 | 毛片在线免费 | 欧美日韩中文字幕在线 | 国内在线视频 | 欧一区二区 | 色爱综合网| 国产精品久久a | 国产精品久久久久久52avav | 97成人精品 | 国产日韩一区二区三区 | 在线精品一区二区三区 | 一区二区三区四区免费视频 | 久久久久亚洲 | 亚洲精品一区二三区不卡 | 国产区一区| 91av在线影院 | 日韩在线欧美 | www中文字幕 | 四虎永久在线精品免费一区二 | av毛片| 91麻豆精品国产91久久久久久久久 | 欧美精品tv | 亚洲精品国产精品国自产在线 | 国产精品99久久久久久久久 | 一区二区在线 | 午夜欧美一区二区三区在线播放 | 国产精品久久久久久久久久免费看 | 国产精品视频播放 | 久久午夜精品福利一区二区 | 黄色日批视频 | 亚洲精品视频网站在线观看 | 日韩在线观看中文字幕 | 男女羞羞视频在线免费观看 | 亚洲精品乱码久久久久久9色 | 亚洲精品国产第一综合99久久 | 亚洲成av人影片在线观看 | 狠狠色香婷婷久久亚洲精品 | 99re6在线视频精品免费 | 精品无码三级在线观看视频 |