2計(jì)算機(jī)的基本組成

現(xiàn)在的計(jì)算機(jī)都是以二進(jìn)制存儲的程序,這樣的計(jì)算機(jī)都叫馮諾依曼計(jì)算機(jī)。

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

1馮諾依曼計(jì)算機(jī)有5大組成部分,運(yùn)算器,控制器,存儲器,輸入設(shè)備,輸出設(shè)備

2指令和數(shù)據(jù)以同等地位存于存儲器,可以按地址尋訪

3指令和數(shù)據(jù)以二進(jìn)制表示

4指令由操作碼和地址碼組成

5能存儲程序

6以運(yùn)算器為中心

現(xiàn)階段指令和數(shù)據(jù)是可以放在不同的cash中,如運(yùn)算器和控制器整合到CPU中

1

如上,我們的計(jì)算機(jī)硬件框圖可以如上,實(shí)線表示數(shù)據(jù),虛線表示控制指令。

運(yùn)算器,進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算

控制器,提供控制指令控制程序運(yùn)行

輸入設(shè)備,將信息轉(zhuǎn)換成機(jī)器識別形式

輸出設(shè)備,將機(jī)器信息轉(zhuǎn)換成人熟悉的形式

存儲器,存放數(shù)據(jù)和程序

馮諾依曼計(jì)算機(jī)的瓶頸

1以運(yùn)算器為中心,導(dǎo)致運(yùn)算器成為瓶頸

2不具有層次劃分

2

我們創(chuàng)建了以存儲器為中心的計(jì)算機(jī)框圖如上,但是這樣的系統(tǒng)仍然存在層次不夠分明的情況

3

如上,我們進(jìn)行層次劃分,運(yùn)算器ALU,控制器CU,一起構(gòu)成CPU,存儲器分為主存和輔存,又和CPU一起構(gòu)成主機(jī),輸入輸出設(shè)備作為IO設(shè)備,和主機(jī)一起構(gòu)成了硬件

系統(tǒng)復(fù)雜性管理的方法3Y

層次化Hierachy,將被設(shè)計(jì)的系統(tǒng)劃分為多個模塊或子模塊

模塊化Modularity,有明確定義的功能和接口

規(guī)則性regularity,模塊更容易被重用

用程序來理解計(jì)算機(jī)系統(tǒng)模型

比如說我想一個問題來讓計(jì)算機(jī)解決,我們需要先考慮計(jì)算機(jī)能否實(shí)現(xiàn),即可計(jì)算性的問題,是否存在y=f(x)這樣的映射,如果問題就是計(jì)算機(jī)能解決的,我們就可以加工計(jì)算機(jī)程序

1上機(jī)前準(zhǔn)備:

建立數(shù)學(xué)模型,比如我們確定了要計(jì)算y=sinx

確定計(jì)算方法,計(jì)算機(jī)指令集并不包括sin求法,我們可以轉(zhuǎn)為泰勒公式展開計(jì)算

編制解題程序,程序,運(yùn)算的全部步驟,指令,每個步驟

舉個例子計(jì)算y=ax2+bx+c,我們假設(shè)a,b,c已經(jīng)保存到存儲器,將x取到運(yùn)算器,乘x放置運(yùn)算器中,乘a放到運(yùn)算器,把a(bǔ)x2放到存儲器,b放到運(yùn)算器中,乘x放到運(yùn)算器,最后加ax2+c計(jì)算結(jié)果,輸出到輸入設(shè)備。

當(dāng)然我們可以使用因數(shù)提取方法,x提取至運(yùn)算器,乘以a放在運(yùn)算器+b放在運(yùn)算器,乘以x放到運(yùn)算器,最后加c放到運(yùn)算器,可以看到執(zhí)行的步驟會減少

指令格式舉例

操作碼? ? ? ? ? ?地址碼? ? ? ? ? ? ? ? ? ? 實(shí)現(xiàn)操作

000001? ? ?0000001000? ? ? ? ? ? ? a-[ACC]

假設(shè)a的地址8,取數(shù)操作是000001,則指令實(shí)現(xiàn)將a放到累加器中

當(dāng)然還有很多指令

4

如上,我們對計(jì)算多項(xiàng)式結(jié)果的指令程序清單放到上面,上面就是馮諾依曼計(jì)算機(jī)的指定演示。

存儲器的基本組成

存儲體由若干存儲單元組成,存儲單元又有多個存儲元件組成,存儲單元存放一串二進(jìn)制代碼,存儲單元存放二進(jìn)制代碼的組合稱為存儲字存儲字長-存儲單元二進(jìn)制碼

5

我們可以看到存儲體包含MAR,MDR,其中MAR是存儲器地址寄存器,反映存儲單元的個數(shù),MDR存儲器的數(shù)據(jù)寄存器,反映存儲字長

我們假設(shè)MAR是4位,MDR8位,則存儲字長8,設(shè)存儲單元16,則可按下圖的長方體理解

6

上面我們就知道了存儲器的基本結(jié)構(gòu)和工作過程

運(yùn)算器的基本功能

運(yùn)算器的功能:完成算數(shù)邏輯運(yùn)算,ALU

我們需要累加器ACC,還有數(shù)據(jù)存儲器存儲數(shù)據(jù),如果我們做乘法或還需要考慮MQ來實(shí)現(xiàn)處理多出來的位數(shù)

7

如上x就是放在數(shù)據(jù)寄存器

8

如上,我們計(jì)算加法,那X就是放在數(shù)據(jù)寄存器,被加數(shù)是放在ACC中,計(jì)算結(jié)果也是在ACC中,如果是減法,類似。乘法呢,由于可能會出現(xiàn)越界,把結(jié)果放到ACC和MQ分高低位存儲,使用累加和移位實(shí)現(xiàn)乘法計(jì)算。除法則商放到MQ,余數(shù)放到ACC

加法操作過程

9

如上加法過程:我們首先有指令? 加M(M為X的地址),然后ACC就存儲被加數(shù),數(shù)據(jù)存儲器(內(nèi)存單元)就存放X,我們把X提取,和ACC中的數(shù)值相加存儲到ACC中(注意,我們所有的操作都默認(rèn)是被操作數(shù)已經(jīng)被讀取到相應(yīng)的單元)

減法操作過程

10

如上,和加法類似,也是指令為減M,然后ACC存儲被減數(shù),M為存放X的地址,取值后放到ACC中減法操作

乘法操作過程

11

乘法過程如上,稍微復(fù)雜點(diǎn)。獲得指令后,把乘數(shù)放到MQ中,把ACC的內(nèi)容即被乘數(shù)放到x中,這是ACC要進(jìn)行清零,然后將X,MQ的乘積結(jié)果高、低位分別放到ACC和MQ中,我們的4條過程是有一定順序的,但是前兩條先后順序不限,是可以同時(shí)進(jìn)行的,這部分的順序控制就是控制器CU進(jìn)行

除法操作過程

12

上面也沒什么說的,就是ACC讀取被除數(shù),M地址獲得X除數(shù),將余數(shù)放到ACC中,將商放到MQ中,所以我們看到MQ乘除法都有放結(jié)果,也叫乘商寄存器

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1 計(jì)算機(jī)基本概念 計(jì)算機(jī)按照指令和數(shù)據(jù)流的分類: (1)單指令單數(shù)據(jù)流:SISD,傳統(tǒng)馮諾依曼體系 (2)單...
    麗江后生閱讀 891評論 0 6
  • 一、計(jì)算機(jī)系統(tǒng)的基本組成及層次結(jié)構(gòu) 完整的計(jì)算機(jī)系統(tǒng)由硬件和軟件兩大部分組成。 硬件系統(tǒng)是計(jì)算機(jī)系統(tǒng)中看得見、摸得...
    Levi_moon閱讀 1,250評論 1 1
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,814評論 28 54
  • 人工智能是什么?什么是人工智能?人工智能是未來發(fā)展的必然趨勢嗎?以后人工智能技術(shù)真的能達(dá)到電影里機(jī)器人的智能水平嗎...
    ZLLZ閱讀 4,085評論 0 5
  • 首先介紹下自己的背景: 我11年左右入市到現(xiàn)在,也差不多有4年時(shí)間,看過一些關(guān)于股票投資的書籍,對于巴菲特等股神的...
    瞎投資閱讀 5,916評論 3 8

友情鏈接更多精彩內(nèi)容