編程是什麼——馮諾依曼結構計算機的出現

2020-12-07 科技貓cat

由於世界第一臺電子計算機ENIAC設計和試運行時出現了各種問題,1945年馮·諾依曼以「關於EDVAC的報告草案」為題,起草了長達101頁的總結報告。報告廣泛而具體地介紹了製造電子計算機和程序設計的新思想。

EDVAC (Electronic Discrete variable Automatic Computer),中文名稱是離散變量自動電子計算機。

EDVAC方案明確奠定了新機器由五個部分組成,包括:運算器、邏輯控制裝置、存儲器、輸入和輸出設備,並描述了這五部分的職能和相互關係。

EDVAC方案設計思想之一是二進位,他根據電子元件雙穩工作的特點,建議在電子計算機中採用二進位。報告提到了二進位的優點,並預言,二進位的採用將大大簡化機器的邏輯線路。

在我們今天的角度來看,馮·諾依曼的方案設計是十分先進的,直到現在我們如今的計算機都是在馮·諾依曼設計的計算機的結構中優化和迭代而來,而計算機的底層仍然還是二進位。

EDVAC的出現

1949年8月EDVAC交付給彈道研究實驗室。它使用了大約6000個真空管和12000個二極體,佔地45.5平方米,重達7850千克,消耗電力56千瓦。

EDVAC計算機

EDVAC是二進位串行計算機,所謂串行即計算機同一時間只能運行一條程序,它的硬體具有加減乘的功能,除法需要通過軟體程序才能進行計算。

EDVAC計算機執行一條加法指令需要約864微秒,執行乘法指令2900微秒(或2.9毫秒)。 它是使用延遲線存儲器(相當於如今計算機的內存),它的容量有1000個44位(bit)的字,按照不嚴謹的換算大概相當於今天的5.5KB。

它的物理硬體上包括:

一個磁帶記錄儀(相當於如今電腦的硬碟)

一個連接示波器的控制單元(勉強算是低級版的顯示器)

一個分發單元,用於從控制器和內存接受指令,並分發到其他單元

一個運算單元(相當於如今的CPU的運算部分功能)

一個定時器(CPU的時鐘,決定CPU的頻率)

使用汞延遲線的存儲器單元(相當於如今計算機的內存)

EDVACD的部分零件展示

到1960年,EDVAC每天運行超過20小時,平均8小時無差錯時間。EDVAC的硬體不斷升級,1953年添加穿孔卡片輸入輸出;1954年添加額外的磁鼓內存;1958年添加浮點運算單元。

可以說EDVAC是第一臺現代意義的通用計算機。和之前的世界上第一臺電子計算機ENIAC不同,EDVAC首次使用二進位而不是十進位。它由五個基本部分組成:(1)運算器CA(2)控制器CC(3)存儲器M(4)輸入裝置I(5)輸出裝置O;

這種體系結構一直延續至今,現在使用的計算機,其基本工作原理仍然是存儲程序和程序控制,所以現在一般計算機被稱為馮諾依曼結構計算機。鑑於馮諾依曼在發明電子計算機中所起到關鍵性作用,他被西方人譽為"計算機之父"。

正是EDVAC計算機的出現,使得程序編寫成為了可能,由於它的功能一部分是由它設計的時候自帶的加減乘,另外一部分功能是通過基礎的機械代碼1和0編寫成的程序,通過打孔卡片載入到計算機的內存當中,在運行的時候進行調用。

但是,由於機械語言就是一堆0和1組成的編碼,由於它們太過反自覺,所以晦澀難懂,使得能夠進行編程的人至少需要有博士的知識水平才能勝任,而且編寫一大堆0和1的機械語言,十分容易出錯,而且在一堆0和1當中尋找到其中的錯誤,也是十分的困難。

最重要的一點,這臺計算機的代碼移植到其他計算機中,是不能使用的,必須要重新編寫,這會導致計算機難以推廣,畢竟同一個功能,換一臺計算機就需要重新編寫,這會耗費太多的人力,而且這個編程還不是一般人能寫出來的。

於是,我們需要一種新的程式語言,它需要有以下特點:1.容易掌握。2.能移植到不同的計算機中使用。

欲知後事如何,請在下回分解,編程是什麼——彙編語言的出現。

相關焦點

  • 編程是什麼——電晶體計算機的出現
    電晶體出現後,人們發現用一個小巧的、消耗功率低的電子器件,就能代替體積大、功率消耗大的電子管了,這樣使用電晶體製造的計算機能夠大大降低功耗。電晶體計算機人們把1959-1964年出現的電晶體計算機稱為第二代計算機。
  • 編程是什麼——機械計算機的誕生
    編程是什麼?根據百度百科的標準答案。編程,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。機械計算機的誕生說到編程就不得不說計算機了,自從機械計算機誕生以來,編程便隨之一同出現。最早的機械計算機是巴貝奇發明的。
  • 學計算機的小同學看看,《三體》對馮諾依曼計算體系的描述最生動
    -馮諾依曼說他們來到東方,見到秦始皇,利用三千萬人力建設一個人列計算機。不要以為這是小說的誇張,理論上是完全可行的。馮諾依曼用三個士兵依次建設了與門、或門、非門等等,進一步構成了人列計算機。馮·諾伊曼指著下方巨大的人列迴路對秦始皇說:「陛下,我們把這臺計算機命名為『秦一號』。請看,那裡,中心部分,是CPU,是計算機的核心計算元件。
  • 從計算機體系結構分析:二進位真的是最好的選擇嗎?
    巨人肩膀上的巨人:馮諾依曼   1936年,年僅22歲,數字通信的祖師爺、《資訊理論》創作者香農基於英國數學家喬治·布爾的關於邏輯數運算的成果,發表了著名的碩士論文《繼電器與開關電路的符號分析》,首次將電路和數學聯繫起來,計算機史上最偉大的發明——繼電器由此誕生。
  • 清華大學研發類腦計算機 首提新概念突破圖靈與馮諾依曼體系
    清華大學計算機系張悠慧團隊和精儀系施路平團隊與合作者10月14日在《自然》雜誌發表題為《一種類腦計算系統層次結構》的論文,首次提出「類腦計算完備性」以及軟硬體去耦合的類腦計算系統層次結構,填補了這一領域的空白.這是一年多來,清華在類腦計算領域繼「天機芯」和「多陣列憶阻器存算一體系統」之後於《自然》正刊發表的第三篇成果,也是計算機系以第一完成單位發表的首篇《自然》論文
  • 馮諾依曼架構和哈佛架構
    1、馮諾依曼架構,也叫普林斯頓架構,其特點是程序空間和數據空間是一體的,數據和程序採用同一數據總線和地址總線。指令和數據地址指向同一個存儲器的不同物理位置,指令和數據的寬度相同。由於馮諾依曼架構的指令和數據儲存在同一存儲器,而且由同一總線進行讀寫,因而指令和數不能同時進行操作,只能順序執行。
  • 熟悉又陌生的計算機究竟是由什麼組成呢?
    現在的計算機架構幾乎都是建立在馮諾依曼提出的「儲存程序控制」的計算機結構之上,也就是我們熟知的計算機組成:1、計算機硬體由運算器、存儲器、控制器、輸入設備和輸出設備組成;2、計算機內部採用二進位表示指令和數據;3、程序和數據先儲存,在啟動計算機工作。在1951年,英國劍橋大學研製的EDVAC問世,這才是基於馮諾依曼設計思想的第一臺儲存程序計算機。
  • 清華首提「類腦計算完備性」及計算系統層次結構,登Nature
    10 月 14 日,在最新一期《自然》雜誌上,出現了一項類腦計算體系結構的突破性進展。類腦計算與傳統計算機架構不同,後者是圍繞圖靈完備和完善的馮諾依曼結構,前者目前還沒有沒有廣義的系統層次結構,或對類腦性計算的完整性的理解。這會影響類腦計算軟體和硬體之間的兼容性,從而阻礙了大類腦式計算的開發效率。
  • 跟我學java編程—初步認識計算機體系結構
    前面三節我們了解了什麼是電腦程式、算法和流程圖,對計算機的程序設計和算法有了初步認知,知道了電腦程式就是完成某項任務和解決一個問題而編寫的計算機指令序列。那麼,計算機是如何組成的呢?計算機提供了那些指令序列?程序在計算機是如何運行的,帶著這些問題,本節將和同學們一起初步認識計算機的體系結構。
  • 從起點來思考:計算機的誕生和發展
    等到了唐代末期,現在還可見的,經典的算盤就出現了。不過,計算工具後期的發展,主要還是在外國。十七世紀,西方便逐漸出現了計算尺、齒輪式加法器、能進行四則運算的機械式計算機等。等到了近代,開始出現差分機、分析機。直到1946年2月14日,在美國誕生第一臺電子計算機:ENIAC。不過,想像得到,初代產品總是很誇張的。這個初代電子計算機有多誇張呢?
  • 編程是什麼——集成電路(IC)的出現
    那麼集成電路產生之前的問題是什麼呢?我們看一下1946年在美國誕生的世界上第一臺電子計算機,它是一個佔地150平方米、重達30噸的龐然大物,裡面的電路使用了17468隻電子管、7200隻電阻、10000隻電容、50萬條線,耗電量150千瓦 。顯然,佔用面積大、無法移動是它最直觀和突出的問題;如果能把這些電子元件和連線集成在一小塊載體上該有多好!
  • 你知道計算機語言、編程、算法及軟體開發之間有什麼聯繫和區別嗎
    比如我們知道的常用計算機語言有java、c、c++、python、java script等等。這些高級語言也是有著許多共同點及不同點。共同點就是都有著計算機語言的共同特點,比如變量定義、數組、字符串、循環結構、選擇結構、分支結構、函數等等。不同點主要是語法與標準庫的不同,什麼是語法呢?
  • 編程是什麼——彙編語言的出現
    第一代程式語言:機器語言計算機的硬體作為一種電路元件,它的輸出和輸入只能是有電或者沒電,也就是所說的高電平和低電平,所以計算機傳遞的數據是由「0」 和「1」組成的二進位數,所以說二進位的語言是計算機語言的本質。
  • 計算機基礎和結構
    要求程序必須存儲在內存中,這和早期只有數據才存儲在存儲器中的計算機結構完全不同。完成某一任務的程序是通過操作一系列的開關或改變其配線來實現的。現代計算機的存儲單元是用來存儲序及其響應數據。這意味著數據和程序應該具有相同格式,這是因為它們都存儲在存儲器中。實際上它們都是以位模式(0和1序列)存儲在內存中。
  • Python編程完全入門教程:計算機是如何工作的?
    現如今,幾乎所有工作需要用到計算機。在學校,學生用計算機上網搜索、發送郵件;在工作中,人們用計算機製作報告、分析數據並與客戶通信;在家中,人們用計算機玩遊戲,與世界各地的人聊天。當然別忘了還有智慧型手機,比如iPhone,智慧型手機也是計算機!計算機之所以能執行如此多的任務,是因為它們具有編程能力。換句話說,計算機可以執行程序希望它執行的任何任務。
  • 計算機基礎+OS+算法數據結構
    不知道大家在當初是一個什麼都不懂的小白的時候會不會想一些下面這些問題:我不是科班的,轉行的,計算機零基礎,啥也不懂,學計算機可以嗎?計算機基礎什麼的都不知道,像什麼作業系統啊,計算機組成原理啊,還有什麼數據結構和算法,完全懵啊,咋整?
  • 編程是什麼——世界第一臺電子計算機
    70年後,世界上第一臺電子計算機出現了,而世界第一臺電子計算機這個名頭,仍然具有爭議,主要爭論點是兩臺先後出現的計算機:阿塔納索夫-貝瑞計算機(Atanasoff–Berry Computer,通常簡稱ABC計算機)
  • 編程培訓學什麼計算機語言比較好
    網際網路企業在最近這幾年有不錯的發展,網際網路技術不僅僅可以給年輕人帶來高額的薪水,還可以讓年輕人解決很多問題,因此有不少年輕人都想要學習編程。編程培訓也就成為熱門課程了,有很多人都在學習編程技術,而學習編程的話,就必須要學習計算計算機語言,學什麼語言比較好呢?
  • 中文是天然的計算機程式語言
    01計算機的工作原理計算機的基本工作原理是用0 1來表達電信號斷路和通路,繼承疊加而成的龐大計算機語言,其底層最基本的邏輯語言是使用英語編輯,因為計算機的發展之處就是誕生在英語語境的美國,應該說是在美國阿帕奇系統開放的基礎上形成當下的計算機語言基礎結構。
  • 馮諾依曼體系為中國科技實現彎道超車指明了方向
    不能這麼講,奠定計算機基礎架構的馮諾依曼體系,為我們指出了彎道超車的機會在哪裡。範式革命在人類科技進步的漫長歷史中,做出革命性貢獻的巨人寥若晨星,最具代表的大約有下述幾位。天文學家伽利略和克卜勒、化學家拉瓦錫、生物學家達爾文、物理學家牛頓和愛因斯坦、數學家歐拉、技術發明家瓦特和愛迪生、計算機科學家馮諾依曼。做一個不太恰當的比喻,今天世界的頂級科學家,與上述十位巨人比起來,大致相當於科學家是蟻群,巨人是蟻后。