2017年5月27日 星期六

[公開課閒聊] 計算機概論第四講 Data manipulation - 台大 于天立

Ped隨手摘

  1. 電腦的結構
    1. Registers (暫存器)
      1. 通常用 SRAM
      2. 常見的有
        1. program counter
          1. 程式在記憶體中目前執行到的位置
        2. instruction register
          1. 從記憶體中取出現在正要執行的指令
    2. Bus (連接記憶體和CPU)
    3. Motherboard (主機板)
    4. CPU
    5. Main Memory
  2. CPU
    1. ALU   Arithmetic/logic unit  算數/邏輯運算元
    2. Control unit 
  3. Machine Instructions (機械指令/機械碼)
    1. 利用指令集操作CPU
    2. 組合語言(assembly)和機械指令原則上是一對一的對應
    3. 大概會有的指令
      1. LOAD 從記憶體取出資料
      2. STORE 把資料放回主記憶體
      3. I/O  輸入輸出
      4. 加減乘除
      5. SHIFT
        1. logic shift 移動方向的最後一個bit補零
        2. Arithmetic shift 第一個位(正負數) 永遠不動
      6. ROTATE
        1. 移出去的bit捕到領一個方向
      7. 流程控制
        1. JUMP 類似 goto 分為有無條件的JUMP
        2. HALT (停止流程
    4. 現在的主流是 CISC (complex instruction set computing)
  4. 詳細解釋 Machine Instruction
    1. op-code
      1. 告訴CPU要執行甚麼動作
    2. Operand
      1. 運算元指定對某個記憶體定址執行 op-code 指定要進行的行為
      2. 用以表達記憶體位置的bytes數會影響能使用的主記憶體大小 (ex.32位元最多能插 4G )
    3. 機械碼範例: 356C
      1. 3:store  5:register位置  6C:主記憶體位置
      2. 白話: 把register 位置 5 的資料寫入主記憶體 6C 的位置 
      3. 組合語言會轉成較易表示的格式: ex. STORE 5, 6C
  5. 高階語言 to Machine Instruction流程範例
    1. 寫好的C語言 compile to Object 檔
    2. Object 再和 libary link 成為一個 binary(可執行檔)
    3. compile 的方式會影響到效能因為有各種翻法
  6.  Machine cycle
    1. 組成動作
      1. fetch 從主記憶體中將指令取至register
      2. decode 解碼讓CPU知道指令的意思
      3. execute 
    2. clock  ex.3GHz 就是一秒可以跑 3*1000000000 次 machine cycle 
  7. I/O 與 CPU 間溝通至 bus 前還有一層 controller 會稍微暫存指令以免太頻繁佔據通道流量
  8. 與其他設備通訊
    1. DMA direct memory access
      1. 周邊裝置需要存取主記憶體前只需要通過一次CPU的授權
    2. 握手 Hand shaking
      1. 收到訊息後回傳通知對方已收到
      2. 比較嚴格的會先告知對方我要送訊息, 對方允許後才開始傳送
    3. 平行 / 序列 傳輸
      1. 不一定平行傳輸比較快
    4. 傳輸單位
      1. bps (bit per second) 注意不是 byte

沒有留言:

張貼留言