x86 筆記 ep1.

CPU(Centrual Processing Unit)

  • 中央處理器

    • 暫存器(register)
      • 儲存運算/待運算的數值/位址
    • Clock
      • 同步訊號
    • 控制單元CU (Control Unit)
      • 控制操作順序
    • ALU (Arithmetic Logic Unit) 算術邏輯單元
      • 做數學運算(+, -)/邏輯運算(and, or, not)
  • CPU與Memory跟I/O裝置之間以 Bus(匯流排) 連接著

    • Data Bus (資料bus)
      • 「CPU跟Memory」之間傳輸資料的路徑
    • I/O Bus
      • 「CPU跟I/O裝置」之間傳輸資料的路徑
    • Control Bus
      • 控制memory, I/O裝置
    • Address Bus
      • 指定寫入/讀取的位址(對memory, I/O裝置)
  • Clock

    • Clock cycle (時脈週期)
      • 一次電子脈衝所需的時間
    • 每個指令至少需要一個以上的cycle( $\ge{1}$),有些長、有些短。
    • Wait State (等待狀態)
      • 一個cycle沒做事,就只是等待浪費電
  • 指令執行週期

    • CPU在執行程式之前,先把當前要執行的指令存到instruction queue中,然後把IP指向下個指令,才開始執行。
    • 分成三個基本步驟:
      1. Fetch (擷取)
        • instruction queue中拿指令,並改變IP
      2. Decode (解碼)
        • CUdecode送進來的指令,接著把指令的操作對象送到ALU中,並且告訴ALU要執行的運算。
        • Fetch operands (擷取運算元)
          • 如果指令要操作的對象在memory中,則要等待讀取,會放到一個看不見的register中。
      3. Execute (執行)
        • ALU執行運算,把結果放到Named register(有名字的暫存器)中。
        • 並更新EFLAGS
        • Store Output operands (儲存輸出運算元)
          • 如果輸出要放在memory中,則要等待寫入。

Cache 快取記憶體

一般的記憶體太慢,CPU會使用較快的記憶體:cache,儲存最近用的的資料及指令。
如果程式要讀相同資料,則會去cache找:

  • Cache Hit (快取命中)
    • 資料在cache中找到
  • Cache Miss (快取未中)
    • 找不到,必須去讀RAM(較慢)

如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

推薦文章