計算機組成複習——概論

 

Computer Organizationjava

introduction算法

case1】 就計算組成而言,在當下的計算機體系中一般採用的是馮諾伊曼體系的計算機——也就是標準的五大組成部分:控制器,存儲器,運算器,Io(輸入設備和輸出設備),在當下的計算機每每都是採用的這種模式進行設計,固然還有其餘的計算機體系結構,例如哈佛體系,這種體系下的計算機的指令存儲器控制存儲器是分開進行裝置的,不像是馮諾伊曼體系中的那樣,存儲器是一個固定的封裝好的元件,設想一下,假如你有一臺採用了哈佛體系的計算機,其中的數據存儲器和指令存儲器是分開進行的,那麼假設你要進行這樣一個操做:1+1=編程

1.  從輸入設備鍵入1,這個時候計算機接收來自鍵盤的外部中斷(保護現場,中斷響應,中斷服務程序,返回斷點),保存當前的執行狀態,而後cpu響應當前中斷,讀入1到存儲器中相似的鍵入1+1服務器

2.  當鍵入=」的時候至關對計算機下達了一條指令(有操做碼),指令的組成在後面進行復習,可是指令是存儲在指令存儲器之中的,要對數據存儲器的數據進行操做,而且返回到數據存儲器的存儲單元當中,要讓cpuALU進行「+」的運算,這就須要總線將(指令)-----CPU-----(數據存儲器)進行鏈接起來,天然而然回顧總線的概念網絡

DEF】總線app

總線是進行計算機各功能部件之間數據傳輸的功能部件,(參考baidu的定義)加入把計算機總體比做是一個城市而言,那麼總線就是在這個城市中的公路,而各個部件之間的數據就至關因而car.socket

天然採用哈佛體系以後的計算機,指令存儲器和功能存儲器還有cpu之間的ALU是經過總線進行鏈接,在這裏強調一下指令的構成,指令的字長取決於指令編碼的不一樣形式,但毫無疑問的是前面都有op(指令操做碼)------侷限於馮諾伊曼體系的討論編程語言

回到上面的討論來:ide

cpu經過總線,將指令和數據都存儲到cpu內部的寄存器的時候,根據OP所暗含的操做(因爲不瞭解哈佛體系指令系統的編碼,可是在指令編碼的過程當中必定會有相似於OP的表明做用的編碼的部分,在這裏假設是OP)進行運算後,而後經過總線又存儲回去數據存儲器中(也就是存2優化

經過輸出設備進行顯示。

以上就討論的計算機體系和計算組成之間的關係,兩者之間微妙的設計,計算機體系決定着計算機硬件層次之間的分佈狀況,而計算機組成硬件之間的限制又反過來決定了你所設計上的計算機體系可否實現的現實問題。

case2

就當下計算機的發展而言,速度愈來愈加快的影響下使得摩爾定理即將失效,這個時候以後考慮量子領域的硬件進行突破,或者從數學的角度設計算法繞過硬件進行突破。(就好比說量子編碼,量子bit.由於這個bit的處理關係不是線性的處理,是進行指數形式的處理,天然而然要速度快於通常的比特)

而考慮總體的計算機環境而言,主要是由兩大部件——硬件和軟件組成的,軟件部分又能夠分爲網絡軟件和非網絡軟件(我的的劃分和教材無關),軟件(app,也叫應用程序,網絡程序在因特網上進行運行,而就因特網的本質而言,因特網是用戶主機和服務器之間還有各個用戶之間的數據收發和共享的網絡,那麼圍繞這個主題,網絡程序就是網絡進程之間的數據溝通(就最簡單的socket套接字之間的溝通),打一個最簡單的比方:

假如你在玩一個GAME,虛擬現實的遊戲,你和全世界的用戶都在一個場景,而這個場景又由服務器傳輸到你的設備顯示在你的視野中,這個傳輸是持續性的(由於你可能在這個遊戲中操做一些動做),那麼一個好的快的傳輸網絡就能夠提供給你更好的遊戲體驗,好比說你的網絡傳輸速度很差的話,那麼你的視野中的人物或許會卡頓,掉幀,這就是由於數據收發沒有及時性的緣故。而牽扯到了傳輸速度的概念,那就不只僅是軟件自己的關係,這就回到了硬件的處理上來,軟件和硬件之間或許存在這樣的關係:

硬件決定了軟件的可運行性(計算機),而一個好的軟件若是在算法層次優化的比較好,那麼也會下降硬件的負擔。

case3】最後討論一下編程語言的關係?(高級語言,彙編語言,機器語言)

先舉出幾個實際的例子:

1.  高級語言:c,C++,Pythonjava.......都是

2.  彙編語言:一羣字母,相似LOAD 這樣的指令,我的以爲有種玩弄邏輯的感受

3.  機器語言:因爲最先期的計算機編碼的問題,人們在設計計算機的時候都是採用的01的數字進行編碼,這樣是很很差的,好比你寫的代碼別人就看不懂,但因爲最底層的這樣的設計,保證了計算機的機械化的實現出錯率會下降。

發展歷程來講就是:機器——彙編——高級的發展過程。\

就概論的複習大概就是這樣。。。。。。。。。

上面關於哈佛體系的討論或許有問題。感謝有大佬指出。

相關文章
相關標籤/搜索