壓縮微指令長度方法

壓縮微指令長度

1. 改直接表示爲編碼表示(壓縮互斥性微指令)


  • 互斥性微命令
    • 輸出信號不能同時爲 1 XXX(out)
    • 運算器的 +1, ADD, SUB 信號也不能同時給出
  • 7 個out型命令有7 個狀態 --> 3:8譯碼器
    • 所有輸出裏面一定有一個爲高電平,所以 000 不用
    • 預留的一個狀態表示什麼信號也不給
  • 加法類的運算器信號 --> 2:4譯碼器
    • +1,ADD, SUB
    • 無信號
  • 縮短了微指令長度,增加了硬件開銷(3:8譯碼器,2:4譯碼器),硬件被所有微程序共享,所以開銷可忽略

2. 去掉下址字段,採用 μPC = μPC + 1 的方式生成微指令地址


  • 每一條指令都有一個下址字段,對控存的浪費是巨大的

在這裏插入圖片描述

  • 增加了一個運算器,減少了下址字段,節約了控存空間

3. 改水平型微指令爲垂直型微指令(犧牲並行性)

  • 水平性微指令如下

在這裏插入圖片描述

  • 一條微指令中一般只有兩個信號,最多4個信號爲1
  • 數據通路分類
    • 寄存器傳輸 MOV reg1,reg2 MOV AR,PC(將PC送到AR)

        例如:
        (PC)->AR, (PC)->X
        (Z)->PC
        (DR)->IR
        (IR)->AR, (PC)->X
        (DR)->R0
      
      • MOV 源寄存器 目的寄存器
      • 單總線架構中,只存在 R0、R1、R2、IR、AR、X、Z等,一共只有八個寄存器,所以只需要三位就可以描述一個寄存器,指令需要兩個操作,即需要六位
    • 運算類型 ALU_OP reg INC、ADD R1

        例如:
        (X) + 1 -> Z
        (X) + (R1) -> Z
      
      • 單總線架構中運算器的輸入一定來自於X,輸出一定到Z,指令中 X和Z 的值在指令中不需要給出,只需要給出另外一個輸入端來自於哪個寄存器
      • INC 無操作數
      • ADD 源寄存器號(3位)
    • 訪存指令 Men LOAD、STORE

        例如:
        Read Mem
        Mem[AR] -> DR
      
      • Mem Read/Write
    • 順序控制 Branch Branch P1

      • Branch 判斷條件
  • 併發水平微指令變爲垂直後可能需要多個時鐘週期完成

在這裏插入圖片描述

  • LOAD指令微程序容量
    • 直接表示法 + 下址字段
      • 28位 * 8 = 224位
    • 編碼表示法 + μPC
      • 19位 * 8 = 152位
    • 垂直微指令
      • 8位 * 14 = 112位
  • 容量小,速度慢,指令執行需譯碼電路
  • 隨着控存價格的降低,垂直型微指令已經被淘汰
  1. 水平型與垂直型微指令
  • 水平型微指令
    • 並行操作能力強,效率高,靈活性強
    • 微指令字較長,微程序短,控存容量大,性能佳
  • 垂直型微指令
    • 子長短,微程序長,控存容量小,性能差
    • 垂直型與指令相似,易於掌握
    • 基本被淘汰
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章