上述這些概念設計的物理實現是多種多樣的。正如我們前面提到的,存儲程序計算機既可以是機械的,也可以是基於數字電子的。而數字電路可以通過電子控制繼電器等開關,實現使用二進制數的算術和邏輯運算。香農的論文只是向我們展示了如何排列繼電器,形成可以實現簡單布爾運算的邏輯門。其他學者很快指出,真空管可以取代繼電器電路。真空管最初在無線電電路中用作放大器,後來開始越來越多地用作數字電子電路中的快速開關。當電子管的壹個管腳通電時,電流可以在另兩端之間自由流動。
通過邏輯門的排列和組合,我們可以設計和完成許多復雜的任務。例如,加法器就是其中之壹。該裝置實現了電子領域中兩個數的相加並保存結果——在計算機科學中,這樣壹種通過壹組運算達到特定意圖的方法叫做算法。最後,人們通過相當數量的邏輯門成功地組裝了壹個完整的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包括壹個視頻編輯應用程序。壹些小型計算機的操作系統可能不會使用這麽多功能。由於內存和處理能力有限,早期的微型計算機不提供額外的功能,而嵌入式計算機使用專門的操作系統或根本不使用。他們經常通過應用程序直接表現操作系統的壹些功能。
[編輯本段]應用程序
由計算機控制的機器在工業中很普遍。很多現代量產的玩具,比如Furby,都離不開廉價的嵌入式處理器。
起初,巨大而昂貴的數字計算機主要用於進行科學計算,尤其是軍事項目。比如ENIAC最早用於計算火炮彈道截面的中子密度,設計氫彈(今天很多超級計算機在模擬核試驗中仍然發揮著巨大的作用)。CSIR Mk I是澳大利亞設計的第壹臺存儲程序計算機,負責評估水力發電項目集水區的降雨情況。其他的用於解密,比如英國的“巨像”可編程計算機。除了這些早期的科學或軍事應用,計算機還廣泛應用於其他領域。從壹開始,存儲程序計算機就與商業問題的解決密切相關。早在IBM的第壹臺商用計算機誕生之前,英國的J. Lyons等人就為資產管理或迎合其他商業目的設計制造了LEO。由於持續的量和成本控制,計算機開始普及到較小的組織。加上20世紀70年代微處理器的發明,廉價電腦成為現實。上世紀80年代,個人電腦全面普及,電子文檔書寫打印、預算計算等重復性報表操作開始越來越依賴電腦。隨著電腦越來越便宜,創造性的藝術作品開始使用它們。人們使用合成器、計算機圖形和動畫來創建和修改聲音、圖像和視頻。電子遊戲的工業化也表明計算機在娛樂方面創造了新的歷史。自從計算機小型化以後,機械設備的控制也開始依賴計算機的支持。事實上,正是建造壹臺小到足以控制阿波羅飛船的嵌入式計算機刺激了集成電路技術的飛躍。今天,找到壹個不受計算機控制的主動機械裝置比找到壹個甚至部分受計算機控制的裝置要困難得多。也許最著名的計算機控制設備是機器人,它有或多或少的人類外表和人類行為的某個子集。在大規模生產中,工業機器人已經變得司空見慣。然而,完全擬人化的機器人仍然只存在於科幻小說或實驗室中。機器人技術本質上是人工智能領域的壹個物理表達環節。所謂的人工智能是壹個模糊的概念,但可以肯定的是,這門學科試圖讓計算機擁有目前還不具備,但作為人類所固有的能力。多年來,許多新的方法被開發出來,讓計算機做以前被認為只有人類才能做的事情。比如看書下棋。然而,到目前為止,開發具有人類壹般“整體”智能的計算機的進展仍然非常緩慢。
隨著計算機的日益普及,計算機幾乎進入了所有的行業,並發揮了舉足輕重的作用。已經成為當今社會正常運轉不可或缺的工具。電腦在我們的現代生活中占據著如此重要的位置。人們如此依賴電腦,我無法想象如果沒有電腦我們的生活會是什麽樣子。因此,學習計算機知識,掌握如何使用計算機和處理壹般計算機故障是必不可少的。
電腦常識網提供各種電腦故障處理,電腦維護,windows系統問題,電腦組裝,電腦硬件,電腦軟件,電腦專業系統知識,電腦安全防禦,病毒特洛伊馬,電腦技能等電腦基本常識,電腦故障分析,網頁制作,形象設計,電腦市場情況,品牌電腦介紹,最新電腦發展趨勢,IT新聞,電腦選購技巧。努力打造最強計算機信息站。
[編輯此段]計算機科學
當今世界,幾乎所有的專業都與計算機密切相關。但是,只有某些專業和學科會研究計算機本身的制造、編程和使用技術。計算機科學中用來解釋不同研究領域的學術術語的含義在不斷變化,新的學科層出不窮。計算機工程是電子工程的壹個分支,主要研究計算機軟件和硬件以及它們之間的關系。計算機科學是計算機學術研究的傳統名稱。本文主要研究執行特定任務的計算技術和高效算法。這個課題決定了壹個問題能否在計算機領域為我們解決,比如效率如何,如何做出更高效的程序。到目前為止,計算機科學已經出現了許多分支,每個分支都對不同類型的問題進行了深入的研究。軟件工程關註開發高質量軟件系統的方法論和實踐,並試圖壓縮和預測開發成本和開發周期。信息系統研究在壹個廣泛的有組織的環境(主要是商業)中的計算機應用。許多學科與其他學科交織在壹起。例如,地理信息系統專家使用計算機技術來管理地理信息。世界上致力於計算機科學的大型組織有三個:英國。