Try   HackMD

微算機 Chapter2 Microcontroller Basics

tags: microcontroller

Basic Blocks

  1. CPU

  2. input/output unit

    • 透過I/O ports (一種 registers )來和microcontroller去交換傳遞data, status, and control signals.
  3. memory unit

    • 儲存intructions和data。
    • 包含ROM和RAM。

Basic Buses

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  1. Address Bus:

    • 由CPU單方面的丟address到各處,也被稱為 unidirectional bus
    • address bus 的大小取決於 microcontroller 可取的 memory address。
    • eg. 一個CPU with 16 address bits 可以產生
      216=64536 bytes
      的不同 address,也就是可能在 address bus 上跑的 address。
  2. Data Bus:

    • 除了ROM因為不能寫之外,其他都是雙向可通的,也被稱為 bidirectional bus
  3. Control Bus:

    • 不論是CPU或I/O device都可丟,但RAM和ROM都只能接收。
    • 由數字和訊號組成,用來同步化各個微算機的元件。
    • 包含 clock signals

Microcontroller architectures

​​​​前導知識:
​​​​   - Program memory : 包含 instructions 和 immediate data
​​​​   - Data memory : 包含 data 而他們的 address 會被 instructions 所使用
​​​​兩者的大小可能會不一樣
  • Havard architecture:

    program memory 和 data memory 兩者的 buses 是分開的,所以可以同時執行 instructions 和 access data。這種 architecture 需要 4 個 buses:

    1.data bus for instructions
    2.data bus for data
    3.address bus for addresses of instructions
    4.address bus for addresses of data


CPU

  1. Basic CPU Register:

    • instruction register(IR):用來儲存 instruction。
    • program counter(PC):用來儲存下一個應該要被執行的 instruction,且program memory一個是16bit,所以PC一次就+2。
    • memory address register(MAR):用來儲存 data 的 address。
    • accumulator:用來儲存大部分 ALU 執行完的結果。(即WREG)

    accumulator 使用addressing mode 去拿取資料(使用index register)

    • index register:當使用addressing mode的時候會用到。
    • status register:當中每個bit代表一個flag表示目前的狀態。
    • stack pointer register:在rcall的時候去存原本要執行的下一行。
  2. control unit

    • purpose:去翻譯(decode)instuctions from program memory.
    • 主要就去翻譯instruction然後發出對應的signals去發動正確的ALU logic blocks達到instruction要的目的。
    • two basic operations:
      1. instruction interpretation:先從instruction register去讀instruction,然後去執行適當的functional units。
      2. instruction sequencing:產生下一個要被執行的instruction的地址,然後放入program counter.
  3. arithmetic-logic unit(ALU)

    • size:取決於這個微算機是幾bit的。
    • typical function:
      1. Binary addition and logic operations.
      2. Finding the one's complement of data.
      3. Shifting or rotating the contents of a general-purpose register 1 bit to the left or right through carry.

RISC vs. CISC

RISC CISC
適合嵌入式系統 實作pipeline困難
適合應用於影像處理、機器人技術與儀器技術 執行相同複雜的操作,能使用較少的指令即可完成
因為指令短少,執行速度比CISC快