計算機組成原理重點總結

數值表示

原碼,補碼,反碼,移碼

  • 原碼:正0 負1 + 機器數 [1111 1111 , 0111 1111]
  • 反碼:正數爲原碼,負數原碼取反(除符號位
  • 補碼:正數爲原碼,負數反碼+1(符號不變,最後一個1右邊不變,左邊取反
  • 移碼:補碼的符號位取反

浮點數轉換算法

  1. 十進制轉浮點數
    1. 轉2進制
    2. 規格化:=x*2^n
    3. 偏置值+階碼真值n=[階碼]移
    4. 浮點數代碼爲:符號位;階碼;尾數
  2. 十六進制浮點數轉十進制
    1. 分離符號位;階碼;尾數。
    2. 階碼真值n=[階碼]移-偏置值
    3. 規格化:=x*2^n
    4. 去規格化,換10進制

十進制數編碼編程

  • 8421碼:NBCD碼,D=8b3+4b2+2b1+1b0,1010~1111非法緩存

  • 2421碼:D=2b3+4b2+2b1+1b0,對9自補碼:取反可獲得對9補碼(2421表示app

  • 餘3碼:8421碼+0011,無權("1"不表示固定十進制數值),對9自補碼性能

  • 格雷碼:無權編碼

    十進制 格雷碼
    0 0000
    1 0001
    2 0011
    3 0010
    4 0110
    5 1110
    6 1010
    7 1011
    8 1001
    9 1000

壓縮十進制數串:設計

​ 8421表示,一個字節存兩個符號在最後,1100正,1101負視頻

-2648表示爲table

0000 0010 0110 0100 1000 1101

數據校驗

碼距:任意兩個碼字之間最少變化而二進制數class

奇偶校驗:檢測一位錯誤,碼距2

  • 偶校驗:1的個數爲偶->0,1的個數爲奇->1,逐位異或(相同=0,不一樣=1)
  • 奇校驗:1的個數爲偶->1,1的個數爲奇->0,逐位異或取反,(不存在全0
  • 交叉奇偶

漢明碼:校驗位數K,信息位N
$$
2^{K-1}\geq N+K+1
$$

  • 校驗碼Pi分配到2^(i-1)上,組成新序列
  • Dii位號ii=∑ [2^(P新的位號-1)],即:被嬌豔的每一位的新位號=2^(校驗他的各個校驗位的位號-1)之和

循環冗餘 CRC:左移N-1位,對產生多項式模2運算,餘數加到原數據末尾

數值機器運算

補碼加減:符號位參加運算

$$
[X+Y]{補}= [X]{補}+[Y]_{補}
$$

$$
[X-Y]{補}= [X]{補}+[-Y]_{補}
$$

溢出檢測:

  1. 一個符號位:Xs=Ys=0,Ss=1正溢出;Xs=Ys=1,Ss=0負溢出
  2. 進位:進位記爲Cs,C1C2...Cn。C1=1,Cs=0正溢出;C1=0,Cs=1負溢出
  3. 變形補碼(雙符號位):Ss1Ss2=00,11無溢出;01正溢;10負溢出

帶符號數移位:

  1. 原碼:符號位不變,正負數均以0補入
  2. 補碼:符號位不變
    1. 正數:以0補入
    2. 負數:左移補0,右移補1(左塞1,右塞0)

定點乘法

原碼一位乘法:3個寄存器:A存部分積高位,B存被乘數,C存乘數
$$
乘積:P=\left | X \right |+\left | Y \right |
$$

$$
符號:P_{s}=X_{s}\oplus Y_{s}
$$

  1. 取絕對值
  2. 乘數最低位=1,+被乘數;=0,+0
  3. 累加後的部分積和乘數右移一位
  4. 重複2,3
  5. 符號異或,右移Ny次爲結果

補碼一位乘法:Booth乘法

  1. 補碼錶示(被乘數和部分積取雙符號位,乘數Y取單符號位)
  2. 乘數末尾增長附加位0
  3. 每求一次部分積右移一次,乘數最低兩位決定操做
判斷位 操做
0 0 部分積+0,右移一位
0 1 部分積+[X]補,右移一位
1 0 部分積+[-X]補,右移一位
1 1 部分積+0,右移一位

補碼兩位乘法:

  • 矯正法:按原碼運算,根據結果矯正

  • Booth法:
    1. 補碼錶示(被乘數和部分積取三符號位)
      1. 乘數Y數值位數爲偶,取2符號位,n/2+1次累加,n/2次移位,最後一次不移位
      2. 乘數Y數值位數爲奇,取1符號位,(n+1)/2次位移累加,最後一次位移1位
      3. 總結:都是最後留下2位
    2. 同1位
判斷位 操做
0 0 0 原部分積+0,右移兩位
0 0 1 原部分積+[X]補,右移兩位
0 1 0 原部分積+[X]補,右移兩位
0 1 1 原部分積+2[X]補,右移兩位
1 0 0 原部分積+2[-X]補,右移兩位
1 0 1 原部分積+[-X]補,右移兩位
1 1 0 原部分積+[-X]補,右移兩位
1 1 1 原部分積+0,右移兩位

定點除法

原碼加減交替法:2符號位,3個寄存器,A存被除數,B存除數,C存商

  1. 求|X|,|Y|,[|Y|]變補;A=|X|,B=|Y|,C=0,CR=0
  2. A=A-B(+[|Y|]變補)
    1. A>=0正:Cn=1,A和C一塊兒左移 1 位,A=A+B
    2. A<0負:Cn=0,A和C一塊兒左移 1 位,A=A-B
  3. CR++
    1. CR != n:回到3
    2. CR == n:
      1. A>=0正:Cn=1
      2. A<0負:Cn=0,A=A+B(+|Y|)

補碼加減交替法:2符號位,同上,如下[]均爲補碼

  1. 求[X]補,[Y]補,[-Y]補;A=[X],B=[Y],C=0,CR=0
    1. AB同號:A=A-B= [X] + [-Y](同號-B,異號+B
    2. AB異號:A=A+B= [X] + [Y]
    1. AB同號:Cn=1,A和C一塊兒左移 1 位,A=A-B(同號-B,異號+B
    2. AB異號:Cn=0,A和C一塊兒左移 1 位,A=A+B
  2. CR++
    1. CR != n:回到3
    2. CR == n:末位置1,Cn=1

考綱

簡答

  1. 尋址方式

    答:寄存器尋址,當即尋址,直接尋址,間接尋址,相對尋址,基礎尋址,變址尋址

    寄存器:位置:指定的寄存器。方法:地址碼部分給出某個通用寄存器的編號,這個指定的寄存器中存放着操做數。

    當即:位置:地址碼字段。方法:只要取出指令就取出了能夠當即使用的操做數。

    直接:位置:主存儲器。方法:指令中地址碼字段給出的地址A就是操做數的有效地址。

    間接:位置:主存儲器。方法:按指令的地址碼字段先從主存中取出操做數的有效地址。

    變址:位置:主存儲器。方法:變址寄存器中的內容與指令中給出的形式地址A相加,造成操做數有效地址。

    基址:位置:主存儲器。方法:基址寄存器的內容與指令中給出的位移量; D相加,造成操做數有效地址。

    相對:位置:主存儲器。方法:由程序計數器PC提供基準地址,指令中的地址碼字段做爲位移量D,二者相加後獲得操做數的有效地址

  2. cache或虛擬存儲器的地址映射方式

    直接映射,全相聯映射,組相聯映射

    1. 直接映射:
      • 特色:主存中每個塊只能被放置到Cache中惟一的一個指定位置,若這個位置已有內容,產生塊衝突,原來的塊將無條件被替換出去。
      • 優勢:成本低,易實現,地址變換速度快
      • 缺點:不夠靈活,Cache的塊衝突機率最高,空間利用率最低
    2. 全相聯映射:
      • 特色:讓主存中任何一個塊都可以裝入到Cache中任何一個塊的位置上。
      • 優勢:方式靈活,Cache的塊衝突機率最低、空間利用率最高
      • 缺點:地址變換速度慢,成本高
    3. 組相聯映射:
      • 特色:將Cache分紅若干組,主存中的塊直接映像裝入Cache中對應組內的任何一塊位置上(組間採起直接映射,組內採起全相聯映射)
      • 優缺點介於全相聯映射和直接映射的優缺點之間。
    4. cache虛擬存儲器異同
      • 同:都須要對地址或標記進行判斷。當Cache或主存已滿都要使用替換算法。
      • 異:Cache的容量小,保存的信息只是主存中最急需執行的若干塊的副本。虛擬存儲器將主存或輔存的地址空間統一編址,造成一個龐大的存儲空間。在這個大空間裏,用戶能夠自由編程。虛擬存儲器是利用輔助硬件找出虛地址和實地址之間的對應關係,並判斷這個虛地址指示的存儲單元內容是否已裝入主存。Cache是用主存地址的塊號字段訪問Cache標記,並將取出的標記和主存地址的標記字段相比較。若相等,說明訪問Cache有效,稱Cache命中,若不相等,說明訪問Cache無效,稱Cache不命中或失效。虛擬存儲器的判斷是若是已在主存中,則經過地址變換,CPU 可直接訪問主存的實際單元;若是不在主存中,則把包含這個字的一頁或一個程序段調入主存後再由CPU訪問。
  3. 漢字國標碼,區位碼,機內碼,字型碼區別與聯繫

    國標碼是一個四位十六進制數,區位碼是一一個四位的十進制數,每一個國標碼或區位碼都對應着一個惟一的漢字或符號,但由於十六進制數不多用到,因此經常使用的是區位碼,漢字或字符在計算機內部的表示就是機內碼

    國標碼是漢字信息交換的標準編碼,但因其先後字節的最高位爲0,與ASCII碼發生衝突,所以不方便在計算機中直接使用。漢字的機內碼採用變形國標碼

    漢字字型碼用於漢字在顯示屏或打印機輸出

計算

  1. 定點數算術運算

  2. 浮點數算術運算

  3. 磁介質存儲器性能參數計算

    • $$
      數據傳輸率=\frac{每一道的容量}{旋轉一圈的時間}(b/s)
      $$

    • $$
      平均存取時間 T_{a}\approx \frac{0+道間移動時間\times (每一面磁道數-1)}{2}
      $$

    • $$
      非格式化容量=最大位密度\times 最內圈磁道周長\times 總磁道數
      $$

    • $$
      格式化容量=每道扇區數\times 扇區容量\times 總磁道數
      $$

  4. 顯示器有關參數計算

    • $$
      視頻帶寬=水平分辨率\times垂直分辨率\times場頻\times1.344
      $$

      1. 字符顯示器:

        1. $$
          字符窗口=(x+x_{字距})\times (y+y_{行距})
          $$

        2. $$
          緩存容量(字節)=行數\times 每行字符數
          $$

      2. CRT顯示器:

        1. $$
          緩存容量=一幀內字符量
          $$

        2. $$
          字符發生器容量(ROM)=可顯示ASCII字符種類數\times 8(B)
          $$

        3. 緩存採用隨機存儲器,存放的是字符的ASCII碼

        4. 緩存地址與屏幕位置:屏幕顯示位置自左至右,從上到下,相應的緩存地址由低到高,每一個地址碼對應一個字符現實位置。屏幕座標(X,Y),則緩存地址=(X*80+Y)

        5. 字符點陣存放在字庫中,根據字符的ASCII碼逐行讀出點陣顯示。

        6. 計數器

          1. 點:橫向間隔+字間間隔
          2. 字:一行x個字符顯示+水平回掃摺合
          3. 行:縱向間隔+排間間隔
          4. 排:y列字符+垂直回掃這和
        7. 圖形顯示器需將Q每一個像素的信息都存放在VRAM 中,而字符顯示器只需將要顯示的ASCII碼存放在VRAM中,字符的點陣來自字符發生器ROM

  5. 總線有關參數計算

    $$
    總線帶寬B=數據總線寬度W\times \frac{總線時鐘頻率F}{完成一次數據傳送所用的時鐘週期數N}
    $$

    $$
    例題考法:B= \frac {總線寬度(位)} {8(位/字節)} \times 工做頻率 = 一個時鐘週期傳送的字節數(字節)\times 頻率
    $$

    • 帶寬的影響因素有:
      1. 總線寬度
      2. 傳送距離
      3. 總線發送和接收電路工做頻率限制
      4. 數據傳送形式

設計

  1. 存儲器設計(選片,字位擴展

    • 位擴展:64k X 1 → 64k X 8
    • 字擴展:16k X 8 → 64k X 8
  2. 微程序 或 微操做序列設計
  3. 中斷優先級設置及響應

相關文章
相關標籤/搜索