计算机组成原理个人笔记(一)
CPI(Cycles Per Instruction):表示每條指令周期數,即執行一條質量所需的平均時鐘周期數。計算如下:
CPI=執行某段程序所需的CPU時鐘周期數/程序包含的指令條數
MIPS(Million Instructions Per Second):每秒執行多少百萬條定點指令數,計算如下:
MIPS=指令數/(程序執行的時間*10^6)
FLOPS(Floating-point Operations Per Second):每秒執行浮點操作的次數,用來衡量機器浮點操作的性能,計算如下:
FLOPS=程序中的浮點操作次數/程序執行時間(S)
馮·諾依曼設計思想可以簡要地概括為以下三點:
(1)計算機應包括運算器、存儲器、控制器、輸入和輸出設備五大基本部件。
(2)計算機內部應采用二進制來表示指令和數據。每條指令一般具有一個操作碼和一個地址碼。其中操作碼表示運算性質,地址碼指出操作數在存儲器中的地址。?
(3)將編好的程序送入內存儲器中,然后啟動計算機工作,計算機無需操作人員干預,能自動逐條取出指令和執行指令。
數在計算機中是以二進制形式表示的。?
數分為有符號數和無符號數。?
原碼、反碼、補碼都是有符號定點數的表示方法。?
一個有符號定點數的最高位為符號位,0是正,1是負。?
以下都以8位整數為例,?
原碼就是這個數本身的二進制形式。?
例如
0000 0001 就是+1
1000 0001 就是-1?
正數的反碼和補碼都是和原碼相同。?
負數的反碼是將其原碼除符號位之外的各位求反?
[-3]反=[1000 0011]反=1111 1100?
負數的補碼是將其原碼除符號位之外的各位求反之后在末位再加1。?
[-3]補=[1000 0011]補=11111101?
一個數和它的補碼是可逆的。?
為什么要設立補碼呢??
第一是為了能讓計算機執行減法:?
[a-b]補=a補+(-b)補?
第二個原因是為了統一正0和負0?
正零:0000 0000?
負零:1000 0000?
這兩個數其實都是0,但他們的原碼卻有不同的表示。?
但是他們的補碼是一樣的,都是0000 0000?
這里必須要熟練記下下面的數據,必須像乘法口訣表一樣熟悉。圖如下:
(必須熟練記住,在此處在子網劃分的地方用處極大,二進制轉十進制,十進制轉二進制的地方用處也極大)
下面是補碼運算加法:
判斷溢出:
下面是乘法:
總結
以上是生活随笔為你收集整理的计算机组成原理个人笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java高级语法笔记-内部类
- 下一篇: Qt creator5.7 OpenCV