電腦有很多種。事實上,計算機壹般是處理信息的工具。根據圖靈機理論,壹臺具備最基本功能的計算機應該可以做其他計算機能做的任何事情。因此,不考慮時間和存儲因素,所有個人數字助理(PDA)和超級計算機應該能夠完成相同的工作。也就是說,即使是設計相同的計算機,也要用於各種任務,從公司工資管理到無人飛船控制,只要做相應的修改。由於科學技術的快速進步,下壹代計算機在性能上總能顯著超越前輩,這有時被稱為“摩爾定律”。
計算機在組成上有不同的形式。早期的計算機有壹所房子那麽大,但是今天壹些嵌入式計算機可能比壹副撲克牌還小。當然,即使在今天,仍然有大量的巨型超級計算機為大型組織服務於特殊的科學計算或事務處理需求。為個人應用而設計的相對較小的計算機叫做微型計算機,或簡稱為微型計算機。當我們在今天的日常生活中使用“計算機”這個詞時,我們通常會提到這壹點。然而,現在計算機最常見的應用形式是嵌入式。嵌入式計算機通常相對簡單,體積小,用於控制其他設備-無論是飛機,工業機器人還是數碼相機。
電子計算機的上述定義包括許多能計算或具有有限功能的專用設備。但說到現代電子計算機,其最重要的特點是,任何電子計算機只要給它正確的指令(只受電子計算機本身的存儲能力和執行速度的限制),就可以模擬任何其他計算機的行為。因此,與早期的電子計算機相比,現代電子計算機也被稱為通用電子計算機。
歷史
ENIAC是計算機發展史上的壹個裏程碑。英文單詞“computer”原指從事數據計算的人。而且他們經常需要使用壹些機械計算設備或者模擬計算機。這些早期計算設備的祖先包括算盤和安提阿-奎特拉機械裝置,它們可以追溯到公元前87年,古希臘人用來計算行星運動。隨著中世紀末期數學和工程學在歐洲的重新繁榮,威廉·席卡德(Wilhelm Schickard)於1623年率先研制出歐洲第壹臺計算設備,這是壹種可以加減六位數以內的數字,並通過鈴聲輸出答案的“計算鐘”。使用旋轉齒輪進行操作。
1642年,法國數學家帕斯卡在威廉·奧特雷德的基礎上改進了計算尺,能夠進行八位計算。它還銷售了許多產品,成為當時的時尚商品。
1801年,Joseph Marie Jacquard改進了織布機的設計,其中他使用了壹系列穿孔紙卡作為程序來編織復雜的圖案。雖然提花織機不被認為是真正的計算機,但它的出現確實是現代計算機發展的重要壹步。
查爾斯。巴比奇是1820年第壹個構思和設計完全可編程計算機的人。然而,由於技術條件、資金限制,以及難以忍受的對設計的不斷修補,這臺計算機在他的有生之年從未問世。到19世紀末,許多被證明對計算機科學有重大意義的技術相繼出現,包括穿孔卡片和真空管。赫爾曼·霍爾瑞斯(Hermann Hollerith)設計了壹臺用於制表的機器,它利用穿孔卡片實現了大規模自動數據處理。
20世紀上半葉,為了滿足科學計算的需要,發展了許多用途單壹、日益復雜的模擬計算機。這些計算機是基於它們所針對的特定問題的機械或電子模型。在20世紀30年代和40年代,計算機的性能變得更強,通用性得到提高,現代計算機的關鍵功能不斷增加。
65438-0937年,克勞德·埃爾伍德·香農發表了他的偉大論文《繼電器和開關電路中的符號分析》,其中首次提到了數字電子技術的應用。他向人們展示了如何使用開關來實現邏輯和數學運算。此後,他通過研究萬尼瓦爾·布什的微分模擬器進壹步鞏固了自己的想法。這是壹個重要的時刻,標誌著二進制電子電路設計和邏輯門應用的開始。作為這些關鍵思想誕生的先驅,應該包括:阿爾蒙·史端喬(Almon Strowger),他為壹種包含邏輯門的裝置申請了專利;尼古拉斯?尼古拉·特斯拉,早在1898就申請了帶邏輯門的電路設備;德·福雷斯特,在1907中,他用真空管代替了繼電器。
80年代Commodore公司生產的Amiga 500計算機,沿著這麽長的路程,要定義所謂的“第壹臺電子計算機”是相當困難的。1941 12年5月,康拉德·楚澤完成了他的機電設備“Z3”,這是第壹臺具有自動二進制數學計算和可行編程功能的計算機,但它不是“電子”計算機。此外,其他值得註意的成就主要包括:阿塔納索夫-貝裏計算機,誕生於1941年夏天,是世界上第壹臺電子計算機,它采用真空管計算器、二進制值和可重復使用的存儲器;1943年在英國展出的神秘巨像計算機,確實告訴人們,使用真空管是可靠的,可以實現電氣化重編程,雖然它的編程能力極其有限。哈佛馬克壹世;哈佛大學的;以及基於二進制的“ENIAC”(ENIAC,1944),這是第壹臺具有通用目的的計算機,但其結構設計不夠靈活,所以每次重新編程都意味著重新連接電氣和物理電路。
開發Eneike的團隊針對其缺陷進壹步改進設計,最終呈現出我們今天所熟悉的馮諾依曼結構(程序存儲架構)。這個系統是今天所有計算機的基礎。40年代中後期,大量基於該系統的計算機開始被開發出來,其中英國是最早的。雖然研制並投入運行的第壹臺機器是“小型實驗機”(SSEM),但真正研制出的實用機器很可能是EDSAC。
在整個20世紀50年代,真空管計算機占主導地位。1958年9月2日,在羅伯特·諾伊斯(英特爾公司創始人)的領導下,集成電路發明了。不久之後,微處理器問世了。在1959和1964之間設計的計算機壹般稱為二代計算機。
20世紀60年代,晶體管電腦取而代之。晶體管更小、更快、更便宜、更可靠,這使得它們可以商業化。從1964到1972的計算機壹般稱為第三代計算機。大量使用集成電路,典型型號為IBM360系列。
70年代,集成電路技術的引入大大降低了電腦的生產成本,電腦開始走向千家萬戶。1972之後的計算機習慣上稱為第四代計算機。基於大規模集成電路以及後來的超大規模集成電路。1972 4月1日,英特爾推出了8008微處理器。1976斯蒂芬·沃茲納克和斯蒂芬·喬布斯創立了蘋果電腦公司。並推出了蘋果I電腦。1977蘋果二代電腦5月發布。1979 6月1日,英特爾發布了壹款8位8088微處理器。
從65438年到0982年,微型計算機開始普及,大量進入學校和家庭。1982 65438+10月Commodore 64電腦發布,售價:595美元。1982 2月80286發布。時鐘頻率提高到20MHz,增加了保護模式,可以訪問16M內存。支持1GB以上虛擬內存。每秒執行270萬條指令,集成134000個晶體管。
1990 165438+10月:第壹代MPC(多媒體個人計算機標準)發布。處理器至少80286/12MHz,後來增加到80386SX/16 MHz,光驅傳輸速率至少150 KB/秒。1994 10 6月10日,英特爾發布了75 MHz奔騰處理器。1995 165438+10月1奔騰Pro發布。主頻可達200 MHz,每秒完成4.4億條指令,集成550萬個晶體管。1997 65438+10月8日英特爾發布奔騰MMX。遊戲和多媒體功能得到了增強。
此後計算機日新月異,1965年發表的摩爾定律被不斷證明,預言在未來10~15年仍然適用。
原則
個人電腦的主要結構:
指示器
主板
中央處理器
主存儲器
擴展卡
電源
光盤驅動器
輔助存儲器(硬盤)
鍵盤
老鼠
雖然自20世紀40年代第壹臺電子通用計算機誕生以來,計算機技術發展迅速,但今天的計算機仍然基本采用存儲程序結構,即馮·諾依曼結構。這種結構實現了實用的通用計算機。
存儲程序結構將計算機描述為四個主要部分:算術邏輯單元(ALU)、控制電路、存儲器和輸入/輸出設備(I/O)。這些元件由壹組扁平電纜(特別是當壹組導線用於不同意圖的數據傳輸時,也稱為總線)連接,並由時鐘驅動(當然,壹些其他事件也可能驅動控制電路)。
從概念上講,計算機的內存可以看作是壹組“細胞”。每個“細胞”都有壹個稱為地址的號碼;而且可以存儲較小的定長信息。這些信息可以是指令(告訴計算機做什麽)或數據(指令的處理對象)。原則上,每個“單元”可以存儲其中任何壹個。
算術邏輯單元(ALU)可以被稱為計算機的大腦。它可以做兩種運算:第壹種是算術運算,比如兩個數的加減。算術運算器在ALU中的作用非常有限。事實上,有些alu根本不支持電路級的乘除運算(因為用戶只能通過編程進行乘除運算)。第二種是比較運算,即給定兩個數,ALU進行比較,確定哪個更大。
輸入輸出系統是計算機接收外界信息並向外界反饋運算結果的手段。對於壹臺標準的個人計算機,輸入設備主要是鍵盤和鼠標,而輸出設備是顯示器、打印機和許多其他可以連接到計算機的I/O設備。
控制系統連接上述計算機的所有部分。它的功能是從內存和輸入/輸出設備中讀取指令和數據,解碼指令,並將符合指令要求的正確輸入傳遞給ALU,告訴ALU如何處理這些數據以及將結果數據返回到哪裏。控制系統中的壹個重要部件是壹個計數器,用來記錄當前指令的地址。通常,該計數器隨著指令的執行而累積,但是有時如果指令指示跳轉,則不遵循該規則。
自20世紀80年代以來,ALU和控制單元(兩者都集成到中央處理器(CPU))逐漸集成到壹個集成電路中,稱為微處理器。這種計算機的工作模式非常直觀:在壹個時鐘周期內,計算機先從存儲器中獲取指令和數據,然後執行指令,存儲數據,再獲取下壹條指令。重復該過程,直到獲得終止指令。
按照控制器的解釋,運算單元執行的指令集是壹組精心定義的簡單指令,數量非常有限。壹般可以分為四類:1)、數據移動(例如將壹個數值從存儲單元A復制到存儲單元B)2)、數與邏輯運算(例如計算存儲單元A和存儲單元B的和並將結果返回到存儲單元C)3)、條件驗證(例如如果存儲單元A中的數值是100,那麽下壹條指令。
指令和數據壹樣,在計算機中用二進制表示。比如10110000就是Intel x86微處理器的壹個復制指令代碼。計算機支持的指令集是計算機的機器語言。因此,使用流行的機器語言將使已建立的軟件更容易在新計算機上運行。所以對於開發商業軟件的人來說,通常只關註壹種或幾種不同的機器語言。
更強大的小型計算機、大型計算機和服務器可能與上述計算機不同。它們通常與不同的CPU共享任務來執行。如今,微處理器和多核個人電腦也在朝這個方向發展。
超級計算機通常具有與基本存儲程序計算機明顯不同的體系結構。他們通常有數千個CPU,但這些設計似乎只對特定的任務有用。在各種計算機中,有壹些微控制器使用哈佛架構來分離程序和數據。
計算機的數字電路實現
上述這些概念設計的物理實現是多種多樣的。正如我們前面提到的,存儲程序計算機既可以是機械的,也可以是基於數字電子的。而數字電路可以通過電子控制繼電器等開關,實現使用二進制數的算術和邏輯運算。香農的論文只是向我們展示了如何排列繼電器,形成可以實現簡單布爾運算的邏輯門。其他學者很快指出,真空管可以取代繼電器電路。真空管最初在無線電電路中用作放大器,後來開始越來越多地用作數字電子電路中的快速開關。當電子管的壹個管腳通電時,電流可以在另兩端之間自由流動。
通過邏輯門的排列和組合,我們可以設計和完成許多復雜的任務。例如,加法器就是其中之壹。該裝置實現了電子領域中兩個數的相加並保存結果——在計算機科學中,這樣壹種通過壹組運算達到特定意圖的方法叫做算法。最後,人們通過相當數量的邏輯門成功地組裝了壹個完整的ALU和控制器。是壹個相當可觀的數字,看看CSIRAC就知道了,它可能是最小的實用電子管計算機。機器包含2000個電子管,其中很多是兩用器件,也就是說總共有2000到4000個邏輯器件。
真空管顯然無法制造大規模門電路。昂貴、不穩定(尤其是大批量)、臃腫、能耗高、速度不夠快——雖然遠超機械開關電路。所有這些導致它們在20世紀60年代被晶體管取代。後者體積更小,操作方便,可靠性高,更節能,成本更低。
集成電路是當今電子計算機的基礎。20世紀60年代後,晶體管開始逐漸被集成電路取代,集成電路將大量晶體管、其他各種電子元件和連接線放在壹塊矽板上。20世紀70年代,ALU和控制器作為CPU的兩個部分,開始集成到壹個芯片上,稱為“微處理器”。沿著集成電路的發展歷史,我們可以看到壹個芯片上集成器件的數量迅速增加。第壹個集成電路只包含幾十個組件,到2006年,壹個英特爾酷睿雙核處理器上的晶體管數量高達1.51億個。
無論是電子管、晶體管還是集成電路,都可以通過使用觸發器設計機制,作為存儲程序架構中的“存儲”組件。事實上,觸發器確實被用作小規模超高速存儲。然而,幾乎沒有計算機設計使用觸發器進行大規模數據存儲。最早的計算機使用威廉姆斯電子管將電子束發送到電視屏幕或幾條水銀延遲線(聲波傳播速度慢到足以被認為是“存儲”在其上),然後讀取它們。當然,這些有效但不優雅的方法最終被磁存儲所取代。比如磁芯存儲器,代表信息的電流可以在鐵材料中產生壹個永久的弱磁場,當這個磁場再次被讀出時,就實現了數據恢復。還發明了動態隨機存取存儲器(DRAM)。它是包含大量電容的集成電路,這些電容器件負責存儲數據電荷——電荷的強度被定義為數據的值。
輸入輸出設備
輸入輸出設備(I/O)是從外界向計算機發送信息的設備和向外界返回處理結果的設備的總稱。這些返回的結果可能是用戶直觀體驗到的,也可能是計算機控制的其他設備的輸入:對於壹個機器人來說,控制計算機的輸出基本上就是機器人本身,比如做出各種行為。
第壹代計算機的輸入和輸出設備的類型非常有限。通常的輸入設備是帶穿孔卡片的讀卡器,用來把指令和數據輸入存儲器;用於存儲結果的輸出設備通常是磁帶。隨著科技的進步,輸入輸出設備的豐富性得到了提高。以個人電腦為例:鍵盤和鼠標是用戶直接向電腦輸入信息的主要工具,而顯示器、打印機、揚聲器和耳機則返回處理結果。此外,還有許多輸入設備可以接受其他不同種類的信息,如可以輸入圖像的數碼相機。在輸入輸出設備中,有兩類值得關註:第壹類是二級存儲設備,如硬盤、光盤或其他速度慢但容量大的設備。二是計算機網絡接入設備,通過這種設備,計算機之間的直接數據傳輸大大提升了計算機的價值。今天,互聯網已經使數千萬臺計算機能夠相互傳輸各種類型的數據。
程序
簡單地說,計算機程序是由計算機執行的壹系列指令。它可以是執行簡單任務的幾條指令,也可以是操作大量數據的復雜指令隊列。許多計算機程序包含數百萬條指令,其中許多可能被重復執行。2005年,壹臺典型的個人電腦每秒可以執行大約30億條指令。計算機通常不會執行壹些復雜的指令來獲得額外的功能,而是按照程序員的安排,在運行那些簡單但數量眾多的短指令。
壹般來說,程序員不會直接用機器語言給計算機寫指令。這樣做的結果只能是耗時、費力、低效和漏洞百出。因此,程序員通常用“高級”語言編寫程序,然後由壹些特殊的計算機程序,如解釋器或編譯器,將其翻譯成機器語言。有些編程語言看起來很像機器語言,比如匯編語言,被認為是低級語言。而其他語言,比如Prolog這種抽象原理,完全忽略了計算機實際運行的操作細節,可謂高級語言。對於壹個具體的任務,要根據它的事務特性、程序員技能、可用工具和客戶需求來選擇相應的語言,其中客戶需求是最重要的(美國和中國的工程項目通常要求使用Ada語言)。
計算機軟件是另壹個不等同於計算機程序的詞。計算機軟件是壹個包容性更強的技術術語,它包括用於完成任務的各種程序和所有相關材料。例如,電子遊戲不僅包含程序本身,還包括圖片、聲音和其他數據內容,以創建虛擬遊戲環境。在零售市場,電腦上的壹個應用,對於大量用戶來說,只是壹個軟件的拷貝。這裏老生常談的例子當然是微軟的office軟件組,它包括壹系列滿足壹般辦公需求的相互關聯的程序。
用那些極其簡單的機器語言指令來實現無數強大的應用軟件,意味著它的編程規模註定很大。Windows XP,壹個操作系統程序,包含4000萬行C++高級語言源代碼。當然,這還不是最大的。如此龐大的軟件規模也說明了管理在開發過程中的重要性。在實際編程中,程序會被細分成每個程序員都能在可接受的時間內完成的規模。
即便如此,軟件開發的過程仍然是緩慢的、不可預測的和充滿疏漏的。隨著時代的要求,軟件工程著眼於如何加快工作進度,提高效率和質量。
庫和操作系統
計算機誕生後不久,人們發現某些任務必須在許多不同的程序中執行,例如計算壹些標準的數學函數。為了提高效率,這些程序的標準版本被收集到壹個“庫”中,供每個程序調用。許多任務經常需要處理各種各樣的輸入和輸出接口。這個時候,用於連接的庫就可以派上用場了。
20世紀60年代,隨著計算機工業化的普及,計算機越來越多地用於處理組織中的不同工作。很快,可以自動安排作業延續和執行的特殊軟件出現了。這些控制硬件並負責作業調度的軟件被稱為“操作系統”。早期操作系統的壹個例子是IBM OS/360。
在不斷改進的過程中,操作系統引入了分時機制——並發。這使得許多不同的用戶能夠使用該機器同時執行他們自己的程序,就好像每個人都有自己的計算機壹樣。為此,操作系統需要為每個用戶提供壹個“虛擬機”來分離不同的程序。由於需要操作系統控制的設備越來越多,其中之壹就是硬盤。因此,操作系統還引入了文件管理和目錄管理(文件夾),大大簡化了這類永久存儲設備的應用。此外,操作系統還負責安全控制,以確保用戶只能訪問那些已被允許的文件。
當然,到目前為止,操作系統發展的最後壹個重要步驟是為程序提供壹個標準的圖形用戶界面(GUI)。雖然沒有技術上的原因說明操作系統必須提供這些接口,但是操作系統廠商總是希望並鼓勵運行在他們系統上的軟件在外觀和行為特征上與操作系統保持壹致或相似。
除了這些核心功能,操作系統還封裝了壹系列其他常用工具。有些對計算機管理意義不大,但對用戶很有用。例如,蘋果的Mac OS X包括壹個視頻編輯應用程序。
壹些小型計算機的操作系統可能不會使用這麽多功能。由於內存和處理能力有限,早期的微型計算機不提供額外的功能,而嵌入式計算機使用專門的操作系統或根本不使用。他們經常通過應用程序直接表現操作系統的壹些功能。
app應用
由計算機控制的機器在工業中很普遍。
很多現代量產的玩具,比如Furby,都離不開廉價的嵌入式處理器。
起初,巨大而昂貴的數字計算機主要用於進行科學計算,尤其是軍事項目。比如ENIAC最早用於計算火炮彈道截面的中子密度,設計氫彈(今天很多超級計算機在模擬核試驗中仍然發揮著巨大的作用)。CSIR Mk I是澳大利亞設計的第壹臺存儲程序計算機,負責評估水力發電項目集水區的降雨情況。其他的用於解密,比如英國的“巨像”可編程計算機。除了這些早期的科學或軍事應用,計算機還廣泛應用於其他領域。
從壹開始,存儲程序計算機就與商業問題的解決密切相關。早在IBM的第壹臺商用計算機誕生之前,英國的J. Lyons等人就為資產管理或迎合其他商業目的設計制造了LEO。由於持續的量和成本控制,計算機開始普及到較小的組織。加上20世紀70年代微處理器的發明,廉價電腦成為現實。上世紀80年代,個人電腦全面普及,電子文檔書寫打印、預算計算等重復性報表操作開始越來越依賴電腦。
隨著電腦越來越便宜,創造性的藝術作品開始使用它們。人們使用合成器、計算機圖形和動畫來創建和修改聲音、圖像和視頻。電子遊戲的工業化也表明計算機在娛樂方面創造了新的歷史。
自從計算機小型化以後,機械設備的控制也開始依賴計算機的支持。事實上,正是建造壹臺小到足以控制阿波羅飛船的嵌入式計算機刺激了集成電路技術的飛躍。今天,找到壹個不受計算機控制的主動機械裝置比找到壹個甚至部分受計算機控制的裝置要困難得多。也許最著名的計算機控制設備是機器人,它有或多或少的人類外表和人類行為的某個子集。在大規模生產中,工業機器人已經變得司空見慣。然而,完全擬人化的機器人仍然只存在於科幻小說或實驗室中。
機器人技術本質上是人工智能領域的壹個物理表達環節。所謂的人工智能是壹個模糊的概念,但可以肯定的是,這門學科試圖讓計算機擁有目前還不具備,但作為人類所固有的能力。多年來,許多新的方法被開發出來,讓計算機做以前被認為只有人類才能做的事情。比如看書下棋。然而,到目前為止,開發具有人類壹般“整體”智能的計算機的進展仍然非常緩慢。
網絡,互聯網
自20世紀50年代以來,計算機壹直被用作協調來自不同地方的信息的工具。美軍的SAGE(賽奇)是該領域第壹個大規模系統。之後也出現了“saber”等壹系列專用商業系統。
20世紀70年代後,美國大學的計算機工程師開始使用電信技術連接他們的計算機。因為這項工作是由ARPA贊助的,所以它的計算機網絡也被稱為ARPANET。此後,ARPA網絡所使用的技術迅速傳播和演進,這個網絡也突破了大學和軍隊的範圍,最終形成了今天的互聯網。網絡的出現導致了計算機屬性和邊界的重新定義。太陽微系統公司的約翰·蓋奇和比爾·喬伊指出,“網絡就是計算機”。計算機操作系統和應用程序正朝著訪問網絡資源(如網絡中的其他計算機)的方向發展。起初,這些網絡設備只供高端科學家使用,但90年代後,隨著電子郵件和萬維網技術的普及,以及以太網和ADSL等網絡連接技術的廉價,互聯網已經無處不在。為什麽今天有幾千萬臺電腦聯網?隨著無線互聯技術的普及,移動計算環境下的互聯網也緊隨其後。比如筆記本電腦廣泛使用的Wi-Fi技術,就是無線上網的代表性應用。
下壹代計算機
自從數字計算機出現以來,速度和能力都有了很大的提高,至今仍有許多題目似乎超出了當前計算機的能力。對於其中的壹些問題,傳統計算機無論如何都不可能實現,因為尋找解決方案的時間趕不上問題規模的擴大。因此,科學家們開始將目光轉向生物計算技術和量子理論來解決這類問題。例如,人們計劃使用生物處理來解決特定的問題(DNA計算)。由於細胞分裂的指數增長,DNA計算系統很可能有能力解決同樣規模的問題。當然,這樣的系統直接受限於DNA的可控總量。
量子計算機,顧名思義,利用了量子物理世界的非凡特性。量子計算機壹旦能造出來,它的速度提升會讓普通計算機難以企及。當然,這種涉及密碼學和量子物理模擬的下壹代計算機還只是在構思階段。
計算機科學
當今世界,幾乎所有的專業都與計算機密切相關。但是,只有某些專業和學科會研究計算機本身的制造、編程和使用技術。計算機科學中用來解釋不同研究領域的學術術語的含義在不斷變化,新的學科層出不窮。
計算機工程是電子工程的壹個分支,主要研究計算機軟件和硬件以及它們之間的關系。
計算機科學是計算機學術研究的傳統名稱。本文主要研究執行特定任務的計算技術和高效算法。這個課題決定了壹個問題能否在計算機領域為我們解決,比如效率如何,如何做出更高效的程序。到目前為止,計算機科學已經出現了許多分支,每個分支都對不同類型的問題進行了深入的研究。
軟件工程關註開發高質量軟件系統的方法論和實踐,並試圖壓縮和預測開發成本和開發周期。
信息系統研究在壹個廣泛的有組織的環境(主要是商業)中的計算機應用。
許多學科與其他學科交織在壹起。例如,地理信息系統專家使用計算機技術來管理地理信息。
世界上致力於計算機科學的大型組織有三個:英國計算機學會(BCS);美國計算機協會(ACM);美國電氣和電子工程師協會(IEEE)。