iT邦幫忙

2024 iThome 鐵人賽

DAY 2
1

今日的行程:
辦公室:08:50 - 18:00
讀書室:22:00 - 23:30

正片開始

ARM64 體系結構編程與實踐: Ch 1 基礎知識

根據我的理解,簡單的紀錄如下:

  • ARM (Acorn RISC Machine)依使用場景分成三個不同的系列

    • A 系列:Application
    • R 系列:Real time
    • M 系列:eMbedded
  • ARMv8 基本概念

    • PE (Processing Element):可以簡單理解為執行單元 (擁有自己的 register set 和 program counter 的實體,和 RISC-V 的 hart 類似)
    • ES (Execution State):PE 執行的狀態,包含暫存器長度、例外層級
      • AArch64:64 位元的執行狀態,提供 31 個通用暫存器
      • AArch32:32 位元的執行狀態,提供 16 個通用暫存器
      • 有趣的是,可以在 AArch64 執行狀態下,執行 AArch32 的程式 (但有些條件限制,例如: AArch32 的 EL 層級要低於 AArch64 的執行環境)
        • 這個感覺和 RISC-V community 正在嘗試的 rv64ilp32 很類似
        • 附上 為什麼要選用 rv64ilp32 的說明
    • EL (Exception Level)
      • EL0: 使用者權限 (user): RISC-V U-mode
      • EL1: 系統權限 (supervisor): RISC-V S-mode
      • EL2: 虛擬機監控程式 (hypervisor): 類似 RISC-V H extension 所引進的 HS mode
      • EL3: 安全監控程式 (secure monitor): 應該像是 ATF
    • PSTATE (processor state) 暫存器
      • Condition flag
        • N: negative
        • Z: zero
        • C: carry
        • V: overflow
      • Execution state control
        • SS: software single step
        • IL: illegal exception level
        • nRW: current ES
        • EL: exception level
        • SP: stack pointer (不同 EL 有不同 SP)
      • Exception mask
        • D: debug
        • A: mask system error
        • I: mask IRQ
        • F: mask FIQ
      • Access privilege
        • PAN: Privileged Access Never
        • UAO: User Access Override

總結

  1. ARMv8 體系結構處理器包含多少個通用暫存器(general purpose register)?

AArch64: 31
AArch32: 16

  1. AArch64 執行狀態包含多少個例外等級(exception level)?
    他們分別有什麼作用?

EL0-3,權限區分作用,不同的例外等級能夠存取的資源、以及能夠執行的指令應該會有所區別,以防不當的程式行為、操作,會破壞整個系統。

  1. 請簡述 PSTATE 暫存器中 NZCV 標誌位的含意。

N: negative
Z: zero
C: carry
V: overflow

  1. 請簡述 PSTATE 暫存器中 DAIF 異常掩碼標誌位的含意。

D: debug
A: mask system error
I: mask IRQ
F: mask FIQ

這兩本書的第一章基礎知識篇,都是先介紹 ISA 的一些名詞,以及暫存器功能,
並且介紹實際處理器的整體架構,是個滿有效率的切入點,之後才會再來介紹 ISA 定義的指令,以及指令的作用。
(歷史介紹的部分和商業模式的部分也是滿有趣的)


上一篇
[鐵人賽] Day 1 目標
下一篇
[鐵人賽] Day 3 蝸步-1
系列文
上班辦公室,下班讀書室:RISC-V / ARM64 體系結構編程與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言