日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

王道考研专业课-计算机组成原理

發(fā)布時(shí)間:2024/3/26 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 王道考研专业课-计算机组成原理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

王道考研專(zhuān)業(yè)課-計(jì)算機(jī)組成原理

  • 發(fā)展歷程
  • 計(jì)算機(jī)組成
    • 早起馮諾依曼機(jī)
    • 現(xiàn)代計(jì)算機(jī)結(jié)構(gòu)
      • 主存儲(chǔ)器的基本組成
      • 運(yùn)算器的基本組成
      • 控制器的組成
      • 計(jì)算機(jī)系統(tǒng)的層次
      • 計(jì)算機(jī)的性能指標(biāo)
        • 主存
        • CPU性能指標(biāo)
        • 系統(tǒng)整體的性能指標(biāo)
        • 基準(zhǔn)程序來(lái)測(cè)試(跑分軟件)
      • 進(jìn)位計(jì)數(shù)制
    • BCD碼
    • 字符和字符串如何在計(jì)算機(jī)中表示
      • ASCII碼
      • GB2312
      • 字符串
    • 數(shù)據(jù)校驗(yàn)
      • 校驗(yàn)原理介紹
      • 奇偶校驗(yàn)碼
        • 計(jì)算機(jī)中如何實(shí)現(xiàn)奇偶校驗(yàn)
      • 海明碼
    • 循環(huán)冗余校驗(yàn)碼(CRC碼)
    • 定點(diǎn)數(shù)和浮點(diǎn)數(shù)
      • 無(wú)符號(hào)數(shù)的表示(int, long)
      • 有符號(hào)數(shù)(定點(diǎn)表示)
        • 原碼
          • 定點(diǎn)整數(shù)
          • 定點(diǎn)小數(shù)
        • 反碼
        • 補(bǔ)碼
        • 移碼
        • 補(bǔ)碼取負(fù)操作
    • 原反補(bǔ)碼的作用
      • 模運(yùn)算的性質(zhì)
      • 補(bǔ)碼的作用
    • 移位運(yùn)算
      • 算數(shù)移位
      • 反碼的算數(shù)移位
      • 補(bǔ)碼的算數(shù)移位
      • 邏輯移位
      • 循環(huán)移位
    • 加減運(yùn)算
      • 原碼的加減運(yùn)算
      • 溢出判斷
      • 溢出問(wèn)題解決
        • 符號(hào)位擴(kuò)展
      • 原碼的乘法運(yùn)算
      • 補(bǔ)碼的乘法運(yùn)算
      • 定點(diǎn)小數(shù)源碼的除法

發(fā)展歷程

從技術(shù)角度分析,計(jì)算機(jī)硬件的發(fā)展階段

  • 電子管階段
  • 晶體管階段
  • 中小規(guī)模集成電路階段
  • 大規(guī)模、超大規(guī)模集成電路階段
  • 計(jì)算機(jī)目前朝著微型多功能和巨型超級(jí)計(jì)算的方向發(fā)展

    計(jì)算機(jī)組成

    早起馮諾依曼機(jī)

    馮·諾依曼計(jì)算機(jī)特點(diǎn):

  • 指令和數(shù)據(jù)無(wú)差別的存儲(chǔ)到主存中,均可按址尋數(shù)據(jù)
  • 指令和數(shù)據(jù)以二進(jìn)制方式存儲(chǔ)在主存中
  • 指令由地址碼和操作碼組成,也可能包含多個(gè)地址
  • 程序在運(yùn)行之前會(huì)提前存儲(chǔ)到主存中,即存儲(chǔ)程序
  • 5部分構(gòu)成
  • 以運(yùn)算器為中心(現(xiàn)代計(jì)算器以存儲(chǔ)器為中心)
  • 數(shù)據(jù)的輸入和輸出都需要經(jīng)過(guò)運(yùn)算器,會(huì)造成效率的降低

    現(xiàn)代計(jì)算機(jī)結(jié)構(gòu)

    概念含義
    主機(jī)cpu(控制器和運(yùn)算器),主存(內(nèi)存)
    存儲(chǔ)主存(內(nèi)存)和輔存(機(jī)械硬盤(pán),固態(tài)硬盤(pán))
    IO設(shè)備包括機(jī)械硬盤(pán),固態(tài)硬盤(pán),輸入輸出設(shè)備
    輸入設(shè)備將輸入信息裝換為計(jì)算機(jī)能識(shí)別的形式
    輸出設(shè)備將計(jì)算結(jié)果轉(zhuǎn)為人們熟悉的形式
    主存儲(chǔ)器存放數(shù)據(jù)和程序
    運(yùn)算器算數(shù)運(yùn)算和邏輯運(yùn)算
    控制器調(diào)度各部件使程序運(yùn)行

    主存儲(chǔ)器的基本組成

    包括,地址存儲(chǔ)器(MAR),數(shù)據(jù)寄存器(MDR),存儲(chǔ)體
    讀取數(shù)據(jù)過(guò)程
    將要讀取的數(shù)據(jù)的地址輸入到地址存儲(chǔ)器,主存器根據(jù)地址將數(shù)據(jù)取出后放在數(shù)據(jù)寄存器
    寫(xiě)入數(shù)據(jù)過(guò)程
    將要輸入到主存的數(shù)據(jù)放在數(shù)據(jù)寄存器,將要存放的位置寫(xiě)到位置寄存器
    存儲(chǔ)體
    存儲(chǔ)體中的數(shù)據(jù)是按照地址進(jìn)行存儲(chǔ)的,每個(gè)地址對(duì)應(yīng)一個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元存放一串二進(jìn)制代碼,每串二進(jìn)制代碼代表一個(gè)存儲(chǔ)字(word)
    每個(gè)存儲(chǔ)字所存儲(chǔ)的二進(jìn)制的長(zhǎng)度叫做存儲(chǔ)字長(zhǎng)一般都是8bit的整數(shù)倍
    每個(gè)電子存儲(chǔ)元可以存儲(chǔ)一個(gè)bit
    易混點(diǎn)
    1Byte/B = 8bit/b ,即 1字節(jié) = 8比特

    運(yùn)算器的基本組成

    組成含義
    ACC累加器,用于存放操作數(shù)和運(yùn)算結(jié)果
    MQ乘商寄存器,在乘除寄存器時(shí)用于存放操作數(shù)和運(yùn)算結(jié)果
    X通用操作數(shù)寄存器,用于存放操作數(shù)
    ALU算數(shù)邏輯單元,通過(guò)內(nèi)部復(fù)雜的電路實(shí)現(xiàn),算數(shù)計(jì)算和邏輯計(jì)算

    控制器的組成

    組成含義
    CU控制單元,分析指令,給出控制信號(hào)
    IR指令寄存器,存放當(dāng)前執(zhí)行的指令
    PC程序計(jì)數(shù)器,存放下一條指令地址,有自動(dòng)加1的功能

    完成一條指令的過(guò)程,通過(guò)PC中存儲(chǔ)的指令地質(zhì)取指令,將指令存放在指令控制器中,CU通過(guò)指令控制器來(lái)分析指令,進(jìn)而給出控制信號(hào)

    在一個(gè)運(yùn)算程序中,運(yùn)算器、控制器和存儲(chǔ)器是如何協(xié)調(diào)工作的?
    取指令
    根據(jù)PC存儲(chǔ)地址,取指令,同時(shí)PC+1
    分析指令
    放入IR進(jìn)行指令分析,拆分指令內(nèi)容中的操作碼和地址碼,
    執(zhí)行操作
    操作碼給CU進(jìn)行對(duì)應(yīng)操作,地址碼進(jìn)行對(duì)應(yīng)數(shù)據(jù)的獲取并交給CU進(jìn)行計(jì)算

    計(jì)算機(jī)系統(tǒng)的層次

    高級(jí)語(yǔ)言–>匯編語(yǔ)言–>操作系統(tǒng)–>機(jī)器語(yǔ)言–>微指令程序
    將操作系統(tǒng)及之上的稱(chēng)為軟件,之下的稱(chēng)為硬件;
    匯編語(yǔ)言和機(jī)器語(yǔ)言是一一對(duì)應(yīng)的

    計(jì)算機(jī)的性能指標(biāo)

    主存

  • MAR(地址寄存器)的位數(shù),反映了主存的最大存儲(chǔ)量;
  • MDR(數(shù)據(jù)寄存器)的位數(shù),反映了每個(gè)存儲(chǔ)地址存儲(chǔ)數(shù)據(jù)的大小(word)
    主存的容量 = MAR * MDR
    1K = 210 Bytes 1Byets = 8bits
  • CPU性能指標(biāo)

    CPU主頻,cpu脈沖的指令
    cpu的一個(gè)震蕩周期被稱(chēng)為cpu的一個(gè)時(shí)鐘周期
    每條指令最少跨越一個(gè)時(shí)鐘周期
    CPI執(zhí)行一條指令所需要的平均時(shí)鐘周期數(shù)
    IPS每秒鐘可以執(zhí)行多少條指令,主頻/時(shí)鐘周期
    flops每秒鐘執(zhí)行多少次浮點(diǎn)運(yùn)算
    在描述計(jì)算頻率時(shí),K=103 M=106 G=109 T=1012;每次相差103;
    存儲(chǔ)容量,K=210 M=220

    系統(tǒng)整體的性能指標(biāo)

    數(shù)據(jù)通路帶寬:數(shù)據(jù)總線(cpu和主存之間的通路)一次所能并行傳送信息的位數(shù);
    吞吐量:系統(tǒng)在單位時(shí)間內(nèi)處理請(qǐng)求的數(shù)量
    響應(yīng)時(shí)間: 用戶(hù)向計(jì)算機(jī)發(fā)送請(qǐng)求到系統(tǒng)對(duì)該指令做出響應(yīng)并獲取結(jié)果的等待時(shí)間;
    基準(zhǔn)程序有時(shí)候會(huì)有一定偏見(jiàn)(比如顯卡程序過(guò)多等等)

    基準(zhǔn)程序來(lái)測(cè)試(跑分軟件)

    tips
    衡量計(jì)算機(jī)性能需要從 主頻,CPI,指令系統(tǒng)來(lái)衡量;

    進(jìn)位計(jì)數(shù)制

    位權(quán)重
    不同進(jìn)制數(shù)據(jù)的轉(zhuǎn)化
    二進(jìn)制轉(zhuǎn)為 8進(jìn)制、16進(jìn)制;三位為一組,4位位一組
    8進(jìn)制轉(zhuǎn)為2進(jìn)制;每一位拆分為3位
    16進(jìn)制轉(zhuǎn)為2進(jìn)制;沒(méi)一位轉(zhuǎn)為4位
    書(shū)寫(xiě)方式:1. 數(shù)字角標(biāo)來(lái)表示;2. 16進(jìn)制 h打頭,10進(jìn)制d打頭;
    10進(jìn)制轉(zhuǎn)其他進(jìn)制,整數(shù)部分使用除基取余法,先得到小數(shù)部分;小數(shù)部分乘2取整數(shù),最先得到高位;拼湊法

    真值:符合人類(lèi)習(xí)慣的數(shù)字
    機(jī)器數(shù):數(shù)字實(shí)際存到機(jī)器里的形式;正負(fù)號(hào)需要被“數(shù)字化”,放在首位

    BCD碼

    解決十進(jìn)制數(shù)字如何在計(jì)算機(jī)中表示
    8421碼
    4個(gè)二進(jìn)制碼 對(duì)應(yīng)一個(gè)十進(jìn)制位
    8421碼的運(yùn)算,如果使用二進(jìn)制的加法運(yùn)算之后,結(jié)果落在1010~1111(10-15)之間,就沒(méi)有意義,需要對(duì)結(jié)果 + 0110(+6),這樣結(jié)果就會(huì)往高位進(jìn)1,得到高位對(duì)應(yīng)的10進(jìn)制的值。考試時(shí)候可以通過(guò)先轉(zhuǎn)為10進(jìn)制,運(yùn)算之后轉(zhuǎn)為2進(jìn)制的方法;
    余3碼:8421碼 + (0011);無(wú)權(quán)嗎
    2421碼:2421分別對(duì)應(yīng)每一位的權(quán)值,和8421碼都是有權(quán)碼;為了規(guī)避一對(duì)多的情況,表示0-4時(shí)最高位為0,表示5-9時(shí)z最高位為1

    字符和字符串如何在計(jì)算機(jī)中表示

    ASCII碼

    鍵盤(pán)上的數(shù)字字母和符號(hào)一共128個(gè),所以使用7位二進(jìn)制編碼就可以表示一個(gè)字符或數(shù)字,通常會(huì)在高位拼一個(gè)0湊夠一個(gè)字節(jié);

    ASCII碼就是128個(gè)字符
    其中32-126是可印刷字符,其余用于控制和通信;
    48-57用來(lái)表示阿拉伯?dāng)?shù)字0-9;即使用0011 0000-0011 1001;其前4位固定為0011,后四位是8421碼;
    大寫(xiě)字母:65(0100 0001)-90(01011010)前3位都是相同的,僅從后面5位看 依次為 1-26
    小寫(xiě)字母:97(0110 0001)-90(01111010)前3位都是相同的,僅從后面5位看 依次為 1-26

    GB2312

    漢字+符號(hào)共7445個(gè)

  • 區(qū)位碼:94個(gè),每區(qū)94個(gè)位置;通過(guò)區(qū)位碼來(lái)表示對(duì)應(yīng)的字符;
  • 區(qū)碼和位碼都從32(20H)開(kāi)始,可以避免計(jì)算機(jī)誤以為接收到了控制或通信指令;此時(shí)得到國(guó)標(biāo)碼;此時(shí)可以用來(lái)數(shù)據(jù)傳輸
  • 在之前的基礎(chǔ)上 +32(80H),避免了和ASCII碼的沖突;得到漢子內(nèi)碼此時(shí)就可以存儲(chǔ)在計(jì)算機(jī);
  • 漢子字形碼,不同像素位置對(duì)應(yīng)一個(gè)像素表示;
  • 字符串

    一個(gè)字節(jié)對(duì)應(yīng)一個(gè)字符串,從左往右一次存儲(chǔ);很多語(yǔ)言中,通過(guò)‘\0’表示字符串的結(jié)束
    一個(gè)中文字符對(duì)應(yīng)兩個(gè)字節(jié);這兩個(gè)字節(jié)有兩種存儲(chǔ)方式,大端模式(將數(shù)據(jù)的最高有效字節(jié)存放在地地址單元)和小段模式;

    數(shù)據(jù)校驗(yàn)

    校驗(yàn)原理介紹

    概念:由若干位代碼組成的一個(gè)字叫做碼子
    將兩個(gè)碼子逐位進(jìn)行對(duì)比,具有不同的位的個(gè)數(shù)稱(chēng)為兩個(gè)碼字間的距離
    一種編碼方案由若干種合法的碼字組成,各合法碼字間的最小距離稱(chēng)為碼距,碼距越小越傳輸越不可靠

    奇偶校驗(yàn)碼

    奇校驗(yàn):整個(gè)校驗(yàn)碼(有效為+校驗(yàn)位)中 ‘1’的個(gè)數(shù)為奇數(shù)個(gè)
    奇校驗(yàn):整個(gè)校驗(yàn)碼(有效為+校驗(yàn)位)中 ‘1’的個(gè)數(shù)為偶數(shù)個(gè)
    偶數(shù)個(gè)數(shù)據(jù)發(fā)生錯(cuò)誤,奇偶校驗(yàn)碼會(huì)檢測(cè)不出來(lái)

    計(jì)算機(jī)中如何實(shí)現(xiàn)奇偶校驗(yàn)

    使用異或(摸2加)來(lái)計(jì)算;
    獲取位偶校驗(yàn)位:將所有位進(jìn)行異或運(yùn)算之后得到的結(jié)果
    校驗(yàn)偶校驗(yàn)碼:將所有位(包括校驗(yàn)位)進(jìn)行異或運(yùn)算之后得到的結(jié)果為0;

    海明碼

    設(shè)計(jì)思想:基于奇偶校驗(yàn)的問(wèn)題,只能夠校驗(yàn)出奇數(shù)位出現(xiàn)問(wèn)題,并且不知道哪一位出現(xiàn)問(wèn)題;如果一種校驗(yàn)碼既可以更多的校驗(yàn)出問(wèn)題,并且可以校驗(yàn)出編碼出問(wèn)題的地方,就更好了;海明碼,采用分而治之的方法,將數(shù)據(jù)分為多組,分別對(duì)應(yīng)一個(gè)校驗(yàn)碼。

    特點(diǎn)及使用場(chǎng)景:1位糾正2位檢錯(cuò),2位錯(cuò)誤以上的情況沒(méi)有考慮,所以它也僅用于通信特性較好的環(huán)境中

    校驗(yàn)位數(shù)量: 理想情況下海明碼想要校驗(yàn)出任何一個(gè)數(shù)據(jù)位是否出錯(cuò),所以需要分組的數(shù)量為 信息位數(shù)(n)校驗(yàn)位數(shù)(k),那么校驗(yàn)位的所有可能為2k個(gè),那么 2k ≥ K + N + 1;(最后的1表示任何一位都是正確的狀態(tài))

    校驗(yàn)位的分布: 校驗(yàn)位Pi放在海明位號(hào)為2i-1的位置上,信息位按照順序放到其余位置;

    信息數(shù)據(jù)如何分組:每個(gè)校驗(yàn)位都會(huì)對(duì)應(yīng)一個(gè)權(quán)值;將數(shù)據(jù)位的位置用二進(jìn)制的方式表示,數(shù)據(jù)位位置(二進(jìn)制)對(duì)應(yīng)校驗(yàn)位權(quán)值為1的數(shù)據(jù)分為一組;(同一個(gè)數(shù)據(jù)位被同時(shí)分到多個(gè)組中)

    求校驗(yàn)位的值: 將同一分組的數(shù)據(jù)求異或,得到該分組的校驗(yàn)位的值

    糾錯(cuò)
    校驗(yàn)方程:將不同分組的數(shù)據(jù)及校驗(yàn)碼一次求異或,校驗(yàn)結(jié)果Sn…,S2,S1都為0,那么數(shù)據(jù)為真;如果其中一個(gè)不為零,那么將Sn…,S2,S1組成的二進(jìn)制結(jié)果的位置就是數(shù)據(jù)出錯(cuò)的位置

    全校驗(yàn)位:海明碼只能糾正一位錯(cuò)誤的情況,為了檢查是一位錯(cuò)誤還是兩位,添加全校驗(yàn)位(奇偶校驗(yàn)法);2位以上的錯(cuò)誤情況很少發(fā)生沒(méi)有考慮;

    循環(huán)冗余校驗(yàn)碼(CRC碼)

    算法思想:傳輸?shù)臅r(shí)候規(guī)定一個(gè)除數(shù),數(shù)據(jù)輾轉(zhuǎn)相除得到最后的余數(shù)作為校驗(yàn)碼傳給接收方,接收方接受到數(shù)據(jù)之后將數(shù)據(jù)+校驗(yàn)碼進(jìn)行輾轉(zhuǎn)相除,余數(shù)是否為0,如果不為0說(shuō)明數(shù)據(jù)有誤,可以重傳或單字節(jié)的糾錯(cuò);
    通常該校驗(yàn)碼只用來(lái)檢錯(cuò),不用來(lái)糾錯(cuò)

    校驗(yàn)碼的確定:一般被除數(shù)是傳輸端和接收端通過(guò)協(xié)商來(lái)確定的,題目中一般通過(guò)一個(gè)多項(xiàng)式的權(quán)重來(lái)表示,如下
    將信息數(shù)據(jù)往左移動(dòng)多項(xiàng)式的最高次冪個(gè)位置,將這個(gè)結(jié)果對(duì)生成二進(jìn)制碼進(jìn)行模2除法,得到的余數(shù)就是校驗(yàn)碼;

    模2除法:和輾轉(zhuǎn)相除法類(lèi)似,先做除法,這里的除法只需要保證最高位都為1就可以,減法操作和摩爾加法操作一樣,每一位都遵循異或算法。
    校驗(yàn):對(duì)接受到的數(shù)據(jù)進(jìn)行模2除,得到的結(jié)果為0,表示數(shù)據(jù)正確;
    余數(shù)和出錯(cuò)位置的關(guān)系:余數(shù)為0表示沒(méi)有出錯(cuò);余數(shù)為1,表示第一位或者第 余數(shù)最大值*n+1位的數(shù)據(jù)出錯(cuò)(所以該校驗(yàn)方式被稱(chēng)為循環(huán)冗余校驗(yàn))但是數(shù)據(jù)的位數(shù)沒(méi)有超過(guò)余數(shù)的可能位數(shù),余數(shù)就對(duì)應(yīng)錯(cuò)誤校驗(yàn)位的位置。即,若2R ≥ K+R+1,則CRC碼可糾正單比特錯(cuò)誤
    檢錯(cuò)糾錯(cuò)能力
    檢測(cè)所有奇數(shù)個(gè)錯(cuò)誤
    所有雙比特錯(cuò)誤
    檢測(cè)所有小于校驗(yàn)位長(zhǎng)度的連續(xù)錯(cuò)誤

    定點(diǎn)數(shù)和浮點(diǎn)數(shù)

    定點(diǎn)數(shù):小數(shù)點(diǎn)的位置固定
    浮點(diǎn)數(shù):小數(shù)點(diǎn)的位置不固定。科學(xué)計(jì)數(shù)法

    無(wú)符號(hào)數(shù)的表示(int, long)

    n位無(wú)符號(hào)數(shù)表示范圍: 0 ~ 2n - 1

    有符號(hào)數(shù)(定點(diǎn)表示)

    原碼

    用尾數(shù)表示真值的絕對(duì)值,符號(hào)位“0/1”對(duì)應(yīng)“正/負(fù)”,一般位于第一位。若機(jī)器字長(zhǎng)為n+1位,則尾數(shù)占n位。

    定點(diǎn)整數(shù)

    原碼所能表示的數(shù)的數(shù)量為 2n+1-1個(gè),因?yàn)檎?fù)0僅僅對(duì)應(yīng)一個(gè)真值數(shù) 0;原碼整數(shù)的表示范圍:-(2n-1) ≤ x ≤ 2n-1

    定點(diǎn)小數(shù)

    若機(jī)器字長(zhǎng)n+1位,原碼小數(shù)的表示范圍:-(1-2-n)≤ x ≤ 1-2-n;

    反碼

    若符號(hào)位為0,即正數(shù),原碼和反碼一致
    若符號(hào)位位1,即負(fù)數(shù),反碼是原碼的數(shù)值全部取反
    反碼僅僅是原碼轉(zhuǎn)為補(bǔ)碼的一種中間狀態(tài),實(shí)際中并沒(méi)有用

    補(bǔ)碼

    正數(shù)的補(bǔ)碼 = 原碼
    負(fù)數(shù)的補(bǔ)碼 = 反碼末位 + 1(考慮進(jìn)位)
    補(bǔ)碼中僅有一種狀態(tài)對(duì)應(yīng)真值0;
    定點(diǎn)整數(shù)補(bǔ)碼[x]補(bǔ) = 1,0000000表示 -27所以補(bǔ)碼的范圍為 -2n ≤ x ≤ -2n-1;定點(diǎn)小數(shù)補(bǔ)碼同樣存在這個(gè)問(wèn)題,多表示一個(gè)-1
    補(bǔ)碼轉(zhuǎn)換為原碼,是同樣的操作,補(bǔ)碼取反,之后+1;
    負(fù)數(shù)的補(bǔ)碼,從右數(shù)第一個(gè)為1的位置及其右邊都和原碼保持一致,左邊都和原碼相反。(小數(shù)和整數(shù)都一樣)

    移碼

    補(bǔ)碼的基礎(chǔ)上將符號(hào)位取反。注意:移碼只能表示整數(shù)
    移碼可以方便計(jì)算機(jī)對(duì)比其所代表的真值的大小(遍歷權(quán)值位依次對(duì)比直到產(chǎn)生結(jié)果)

    補(bǔ)碼取負(fù)操作

    將所有位取反,末位 +1

    原反補(bǔ)碼的作用

  • 糾正有符號(hào)數(shù)的加法運(yùn)算
  • 使用加法的硬件 + 軟件 實(shí)現(xiàn)減法操作
  • 模運(yùn)算的性質(zhì)

    mod(12) 相當(dāng)于把所有的數(shù)據(jù)分為12份(組)
    設(shè)x,m∈Z,m > 0,則存在唯一決定的整數(shù)q和r,使得 x = qm + r, 0≤ r <m;m即mod值,r為數(shù)論中余數(shù);如果x1、x2求得的r相同,那么兩者等價(jià);如果二者絕對(duì)值之和 = 模,那么二者互為補(bǔ)數(shù)。
    那么就可以將減a操作轉(zhuǎn)換為,加上(模-a)得到的結(jié)果再取模是等價(jià)的。

    補(bǔ)碼的作用

    而計(jì)算機(jī)的mod28;而進(jìn)行28 - a操作相當(dāng)于對(duì)a取補(bǔ)碼

    移位運(yùn)算

    算數(shù)移位

    右移N位相當(dāng)于 將原值 / 基數(shù)N,低位舍棄,高位補(bǔ)0;如果舍棄位=0,則相當(dāng)于除以2,若舍棄的位≠0,則丟失精度。
    左移N位相當(dāng)于 將原值 * 基數(shù)N,低位補(bǔ)0,高位舍棄,如果舍棄位=0,則相當(dāng)于乘基數(shù),若舍棄的位≠0,則嚴(yán)重丟失精度。

    反碼的算數(shù)移位

    負(fù)數(shù)反碼的補(bǔ)位,補(bǔ)1,而不是補(bǔ)0

    補(bǔ)碼的算數(shù)移位

    由于補(bǔ)碼計(jì)算過(guò)程的原因,低位知道第一個(gè)1的位置和原碼相同,其余和反碼相同。所以在移位時(shí),低位補(bǔ)0,高位補(bǔ)1。

    算數(shù)移位的應(yīng)用:
    -20 x 7 等價(jià)于 -20 x (2 2 + 21 + 2 0);即相當(dāng)于 -20 左移1位 + (-20 左移2位) + (-20 左移0位)

    邏輯移位

    邏輯右移:高位補(bǔ)0,低位舍棄
    邏輯左移:低位補(bǔ)0,高位舍棄

    循環(huán)移位

    二進(jìn)制位循環(huán);
    帶進(jìn)位位的循環(huán)左移,單獨(dú)一個(gè)位置,存放在進(jìn)位位
    實(shí)現(xiàn)大端存儲(chǔ)和小端存儲(chǔ)的轉(zhuǎn)換

    加減運(yùn)算

    原碼的加減運(yùn)算

    原碼的加法運(yùn)算太復(fù)雜,計(jì)算機(jī)中通常是通過(guò)補(bǔ)碼來(lái)進(jìn)行加法運(yùn)算的;
    [A + B]補(bǔ) = [A]補(bǔ) + [B]補(bǔ)
    [A - B]補(bǔ) = [A]補(bǔ) + [-B]補(bǔ)

    溢出判斷

    設(shè)機(jī)器字長(zhǎng)為8位(含一個(gè)符號(hào)位),所以該字長(zhǎng)的補(bǔ)碼 能表示 -128到127的數(shù)字;但是如果兩個(gè)正數(shù)相加超過(guò)127,或者兩個(gè)負(fù)數(shù)相減小于-128,那么該運(yùn)算為溢出運(yùn)算;
    兩個(gè)正數(shù)相加得到負(fù)數(shù),
    兩個(gè)負(fù)數(shù)相加得到正數(shù)
    即用符號(hào)表示為:
    判斷方法1: 加數(shù)的符號(hào)位As,被加數(shù)的符號(hào)位Bs,運(yùn)算結(jié)果的符號(hào)位Ss
    V = AsBs[-Ss] + [-As] [-Bs]Ss
    判斷方法2: 符號(hào)位的進(jìn)位s,和最高數(shù)值位的進(jìn)位i;s和i不同時(shí)有溢出;用硬件中的異或來(lái)判斷是否溢出;
    判斷方法3: 雙符號(hào)位來(lái)判斷是否溢出,和方法2類(lèi)似;計(jì)算機(jī)存儲(chǔ)的還是單符號(hào),只是運(yùn)算的時(shí)候復(fù)制了一份;模4補(bǔ)碼,有兩個(gè)符號(hào)位的補(bǔ)碼運(yùn)算
    模2補(bǔ)碼:只有一個(gè)符號(hào)位的補(bǔ)碼

    溢出問(wèn)題解決

    符號(hào)位擴(kuò)展

    定點(diǎn)整數(shù)的擴(kuò)展,負(fù)整數(shù),原碼左邊補(bǔ)8個(gè)0,反碼左邊補(bǔ)8個(gè)1,補(bǔ)碼左邊補(bǔ)8個(gè)1
    定點(diǎn)小數(shù)的擴(kuò)展,負(fù)小數(shù):原碼右邊補(bǔ)8個(gè)0,反碼右邊補(bǔ)8個(gè)1,補(bǔ)碼右邊補(bǔ)8個(gè)0(和原碼保持一致)

    原碼的乘法運(yùn)算

    原碼的一位乘法: 每次參與運(yùn)算的只有乘數(shù)的一個(gè)位;進(jìn)行n輪的加法和移位運(yùn)算
    乘法結(jié)果的高位在ACC中,乘法結(jié)果的低位在MQ中

    補(bǔ)碼的乘法運(yùn)算

    補(bǔ)碼的乘法運(yùn)算中,除了進(jìn)行n輪加法運(yùn)算之后還會(huì)再多來(lái)一次加法運(yùn)算;最終得到包含符號(hào)位的結(jié)果的補(bǔ)碼;

    定點(diǎn)小數(shù)源碼的除法

    只能進(jìn)行定點(diǎn)小數(shù)的運(yùn)算,但是如果除數(shù)比被除數(shù)小,那么電路檢測(cè)到之后就會(huì)直接停止;
    余數(shù)恢復(fù)法
    加減交替法 / 不恢復(fù)余數(shù)法(是對(duì)余數(shù)恢復(fù)的優(yōu)化)
    最后一位如果為0,兩個(gè)算法都需要進(jìn)行余數(shù)的恢復(fù)
    余數(shù)和商的符號(hào)是相同的

    總結(jié)

    以上是生活随笔為你收集整理的王道考研专业课-计算机组成原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。