- 普林斯頓計算機公開課(原書第2版)
- (美)布萊恩·W.柯尼漢
- 4629字
- 2023-06-28 16:46:14
1.1 邏輯結(jié)構(gòu)
如果我們畫一張簡單的通用計算機的抽象圖,那么無論是PC還是Mac,它的邏輯或功能架構(gòu)圖看起來都會像圖1.2這樣:一個處理器,一些主存儲器,一些二級存儲器,以及各種其他組件。這些組件都由一組叫作總線(bus)的電線連接起來,總線在它們之間傳遞信息。

圖1.2 一個簡單的理想化計算機架構(gòu)圖
如果是為手機或平板電腦畫這幅圖,框架也是類似的,盡管鼠標、鍵盤和顯示器都融合進了一個組件——屏幕。還有許多隱藏的組件,如羅盤、加速度傳感器,以及用來確定你所處地理位置的GPS接收器。
基本結(jié)構(gòu)——也就是處理器、存儲指令及數(shù)據(jù)的內(nèi)存和存儲設(shè)備、輸入和輸出設(shè)備——自從20世紀40年代起就已經(jīng)形成規(guī)范。它通常被稱為馮·諾依曼架構(gòu),以約翰·馮·諾依曼命名,他在1946年發(fā)表的論文里描述了這一架構(gòu),如本章開頭的引文所述。盡管關(guān)于馮·諾依曼獲得的過多贊譽是否有許多是基于他人所做的工作的問題仍然偶爾存在爭議,但這篇論文非常清晰和有見地,即使在今天也值得一讀。例如,本章開頭的引文是該論文的第一句。翻譯成今天的術(shù)語,處理器提供算術(shù)和控制功能,主存儲器和輔助存儲器屬于存儲設(shè)備,鍵盤、鼠標和顯示器則與人類操作員交互。
這里給出術(shù)語說明:處理器歷史上一直被稱為CPU或中央處理單元,但現(xiàn)在通常只指處理器。主存儲器通常被稱為RAM或隨機訪問存儲器,二級存儲器則通常是磁盤或驅(qū)動器,反映了不同的物理實現(xiàn)。我將主要使用“處理器”“內(nèi)存”和“存儲”等詞,但偶爾也會使用較老的術(shù)語。
1.1.1 處理器
處理器就是大腦,如果可以說計算機也有大腦的話。處理器進行算術(shù)運算、移動數(shù)據(jù)并控制其他組件的操作。處理器只能執(zhí)行有限的基本操作,但它的執(zhí)行速度驚人,達到每秒數(shù)十億次。它可以根據(jù)之前的計算結(jié)果決定下一步要做什么操作,因此它在很大程度上獨立于人類用戶。我們將在第3章花更多的時間討論這個組件,因為它非常重要。
如果你去商店或在網(wǎng)上購買電腦,你會發(fā)現(xiàn)上面提到的大多數(shù)組件,而且通常伴隨著神秘的首字母縮寫和同樣神秘的數(shù)字。例如,你可能會看到一個處理器被描述為“2.2GHz、雙核、Intel Core i7”,就像我的一臺計算機一樣。那是什么?英特爾公司制造處理器,而酷睿i7是英特爾公司對其一條范圍很廣的處理器產(chǎn)品線的命名。這種特定的處理器在單一封裝中有兩個處理單元;在這種情況下,小寫core已成為處理器的代名詞。內(nèi)核本身就是一個處理器,但CPU可能有多個內(nèi)核,這些內(nèi)核可以協(xié)同工作或獨立工作以計算得更快。在大多數(shù)情況下,不管該組合中有多少個內(nèi)核,只要把它看作處理器就足夠了。
“2.2GHz”是更有趣的部分。處理器速度是根據(jù)它可以在一秒鐘內(nèi)完成的操作或指令(或其中部分)的數(shù)量來衡量的,至少近似如此。處理器使用內(nèi)部時鐘來一步步地執(zhí)行其基本操作,就像心跳或時鐘滴答一樣。速度的一種衡量標準是每秒這種滴答聲的數(shù)量。每秒的一個節(jié)拍被稱為赫茲(Hz),是以德國工程師海因里希·赫茲(Heinrich Hertz)的名字命名的。1888年,他發(fā)現(xiàn)了如何產(chǎn)生電磁輻射,從而直接導致了無線電和其他無線系統(tǒng)的出現(xiàn)。無線電臺的廣播頻率以兆赫(MHz,百萬赫茲)為單位,比如102.3MHz。當今的計算機通常以十億赫茲或千兆赫茲的頻率運行,我那相當普通的2.2GHz處理器正在以每秒22億次的速度運行著。人類的心跳頻率約為1赫茲,每天約10萬次,每年約3000萬次。所以我的處理器中的每個內(nèi)核在1秒內(nèi)跳動的次數(shù),相當于我的心臟在70年里跳動的次數(shù)。
這是我們第一次遇到兆和吉這兩個單位,它們在計算中很常見。兆是100萬,也就是106;吉是10億,也就是109。我們很快會看到更多的單位,在術(shù)語表中有一個完整的表,匯總了所有的單位。
1.1.2 主存儲器
主存儲器存儲著處理器和計算機的其他部分正在使用的信息,其中的內(nèi)容可以被處理器改變。主存儲器不僅存儲處理器當前處理的數(shù)據(jù),還存儲告訴處理器如何處理這些數(shù)據(jù)的指令。這是非常重要的一點:通過將不同的指令載入內(nèi)存,我們可以讓處理器執(zhí)行不同的計算。這使得存儲程序計算機成為通用設(shè)備,同一臺計算機可以運行文字處理器和電子表格、上網(wǎng)、發(fā)送和接收電子郵件、在Facebook上與朋友保持聯(lián)系、交稅和播放音樂,所有這些都可以通過在內(nèi)存中放置適當?shù)闹噶顏硗瓿伞4鎯Τ绦蜻@一思想的重要性怎么強調(diào)都不為過。
主存儲器在計算機運行時提供了一個存儲信息的地方。它存儲了Word、Photoshop或瀏覽器等當前活動程序的指令。它存儲了這些程序的數(shù)據(jù)——正在編輯的文件,屏幕上的圖片,正在播放的音樂。它還存儲了操作系統(tǒng)如Windows、macOS等的指令,這些后臺操作的指令讓你可以同時運行多個應(yīng)用程序。我們將在第6章討論應(yīng)用程序和操作系統(tǒng)。
主存儲器被稱為隨機存取存儲器(RAM),因為處理器可以快速訪問存儲在其中任意位置的信息,簡單來說就是以隨機順序訪問內(nèi)存位置并不會減緩速度。雖然VCR磁帶在很久以前就已經(jīng)不怎么使用了,但你可能還記得它們,如果你想看電影的最后一幕,需要從頭開始快進到結(jié)尾才行;這被稱為順序訪問。
大多數(shù)RAM是易失性的,也就是說,如果電源關(guān)閉,它的內(nèi)容就會消失,并且所有當前活動的信息都會丟失。這就是為什么要謹慎地經(jīng)常保存你的工作,特別是在臺式機上,在使用臺式機時踢掉電源線可能引起一場真正的災難。
你的計算機有固定數(shù)量的主存儲器。容量以字節(jié)為單位度量,其中字節(jié)是足夠容納W或@這樣的單個字符,或42這樣的小數(shù)字,或更大值的一部分的內(nèi)存量。第2章將展示如何在內(nèi)存和計算機的其他部分表示信息,因為這是計算的基本問題之一。但現(xiàn)在,你可以把內(nèi)存想象成一個由無數(shù)個相同的小盒子組成的大集合,每一個盒子都可以存儲少量的信息。
那么容量是指什么?我現(xiàn)在使用的筆記本電腦有80億字節(jié)(也可以稱之為8千兆字節(jié),或8GB)的主存,可能還是太小了。原因是,更多的內(nèi)存通常意味著更快的計算速度,因為沒有足夠的內(nèi)存來同時容納所有想要使用它的程序,而且要花時間將不活動的程序移出,為新程序騰出空間。如果你想讓電腦運行得更快,購買額外的內(nèi)存可能是最好的策略,至少在內(nèi)存可擴充的情況下是如此的,但也有可能內(nèi)存不方便擴充。
1.1.3 二級存儲器
主存儲器存儲信息的容量很大但有限,并且當電源關(guān)閉時,其內(nèi)容消失。二級存儲器即使在斷電時也能保存信息。二級存儲器主要有兩種:較舊的磁盤稱為硬盤或硬盤驅(qū)動器,較新的形式稱為固態(tài)驅(qū)動器(SSD)。這兩種驅(qū)動器存儲的信息比主存儲器多得多,而且不具有易失性——即使沒有電源,這兩種驅(qū)動器上的信息也會保留。數(shù)據(jù)、指令和其他所有東西都長期存儲在二級存儲器上,只有在需要時才暫時存入主存。
通過設(shè)置旋轉(zhuǎn)著的金屬表面上磁性材料微小區(qū)域的磁化方向,磁盤得以存儲信息。數(shù)據(jù)存儲在同心圓磁道中,由在軌道之間移動的傳感器讀取和寫入。當一臺老式電腦在運行時,你聽到的嗡嗡聲和咔噠聲是磁盤在運行,并將傳感器移動到表面的正確位置。磁盤表面高速旋轉(zhuǎn),至少每分鐘5400轉(zhuǎn)。你可以在圖1.3所示的標準筆記本電腦磁盤圖片中看到其表面和傳感器,盤片的直徑為2.5英寸(6.35厘米)。

圖1.3 硬盤驅(qū)動器內(nèi)部
磁盤存儲空間的價格約為RAM的1/100,但訪問信息的速度更慢。磁盤驅(qū)動器訪問表面上的任何特定磁道大約需要10毫秒,然后以大約每秒100MB的速度傳輸數(shù)據(jù)。
十年前,幾乎所有的筆記本電腦都有磁盤。今天,幾乎所有的設(shè)備都使用SSD,它使用閃存而不是旋轉(zhuǎn)機器。閃存是非易失性的,信息以電荷的形式存儲在電路中,即使在斷電的情況下,這些電荷仍然存在于單個電路元件中。可以讀取存儲的電荷以查看它們的值是多少,并且可以用新值擦除和覆蓋它們。閃存具有速度快、重量輕、可靠性高、掉在地上也不會損壞、耗電少等優(yōu)點,因此也常常用于手機、相機等設(shè)備。SSD的每字節(jié)的價格仍然更貴,但正在下降,其優(yōu)勢是如此顯而易見,幾乎已經(jīng)完全取代了筆記本電腦中的機械磁盤。
一臺典型的筆記本電腦的SSD容量為250~500GB。可插入USB接口的外置硬盤的容量可達TB級別,它們?nèi)匀皇腔谛D(zhuǎn)機械。tera是1萬億,也就是1012,這是你們將經(jīng)常看到的另一個單位。太字節(jié)、千兆字節(jié)又有多大?在最常見的英語文本表示中,一個字節(jié)可以存儲一個字母字符。《傲慢與偏見》大約有250頁,約680000個字符,因此1GB可以容納近1500份該書的拷貝。更有可能的是,我會存儲一份拷貝,然后再放一些音樂。MP3格式的音樂大約每分鐘1MB,所以我最喜歡的CD之一《簡·奧斯汀歌集》的MP3版本大約是60MB,1GB的空間還可以再放15個小時的音樂。1995年,BBC出品的《傲慢與偏見》(Pride and Prejudice)由詹妮弗·艾爾(Jennifer Ehle)和科林·費斯(Colin Firth)主演,DVD只有兩張,容量還不到10GB,所以我可以把它和100部類似的電影存儲在1TB的空間里。
磁盤驅(qū)動器是演示邏輯結(jié)構(gòu)和物理實現(xiàn)之間差異的一個很好的例子。像Windows上的文件資源管理器或macOS上的Finder這樣的程序,將驅(qū)動器的內(nèi)容顯示為文件夾和文件的層次結(jié)構(gòu)。但數(shù)據(jù)可以存儲在旋轉(zhuǎn)機械、沒有移動部件的集成電路,或其他完全不同的東西上。計算機中的具體驅(qū)動器類型并不重要。驅(qū)動器自身的硬件和操作系統(tǒng)中稱為文件系統(tǒng)的軟件共同創(chuàng)建了這種組織結(jié)構(gòu)。我們將在第6章再次探討這個話題。
邏輯組織非常適合人們理解(或者更有可能的是,到現(xiàn)在我們已經(jīng)完全習慣了它),其他設(shè)備提供了相同的組織,即使它們使用完全不同的物理方法來實現(xiàn)。例如,那些讓你可以訪問CD-ROM或DVD中信息的軟件使這些信息看起來也像是存儲在文件層次結(jié)構(gòu)中,而不管它是如何進行物理存儲的。USB設(shè)備、相機和其他使用可移動存儲卡的小工具也是如此。即使是現(xiàn)在已經(jīng)完全過時了的古老的軟盤,在邏輯層面上看起來也是一樣的。這是展示抽象這一概念的一個很好的例子,抽象是計算中的一個基礎(chǔ)概念:物理實現(xiàn)的細節(jié)是隱藏的。在文件系統(tǒng)這一例子中,無論不同的技術(shù)實際是如何工作的,內(nèi)容都以文件和文件夾的層次結(jié)構(gòu)呈現(xiàn)給用戶。
1.1.4 其他
還有其他多種設(shè)備可提供特定的功能。用戶可以利用鼠標、鍵盤、觸摸屏、麥克風、照相機和掃描儀等進行輸入,顯示器、打印機和揚聲器則負責向用戶輸出。網(wǎng)絡(luò)組件如Wi-Fi或是藍牙負責與其他計算機通信。各種輔助技術(shù)幫助人們解決視力、聽力或其他相關(guān)訪問問題。
圖1.2中的架構(gòu)圖顯示了這些組件,就好像它們都是由一組稱為總線的電線連接起來的,總線的稱呼采用了電子工程的術(shù)語。實際上,計算機中有很多與其功能相對應(yīng)的總線——用于連接CPU和RAM的長度短、速度快但昂貴的總線,用于連接耳機的較長、速度較慢且較為便宜的線。一些總線也會出現(xiàn)在機身外部,比如常見的用于將設(shè)備接入計算機的通用串行總線(Universal Serial Bus, USB)的連接線。
我們將在后文中的一些特殊場景下提及這些設(shè)備,不過現(xiàn)在不打算花太多時間來介紹它們,而只是簡單地列舉一些可能會和你的計算機配套或者相連的設(shè)備:鼠標、鍵盤、觸控板和觸摸屏、顯示器、打印機、掃描儀、游戲控制器、耳機、揚聲器、麥克風、照相機、手機、指紋傳感器,以及與其他電腦的連接。這份設(shè)備列表還在不斷增長。所有這些設(shè)備都經(jīng)歷了和處理器、內(nèi)存以及磁盤驅(qū)動器相同的演化過程:物理屬性發(fā)生了快速的變化,通常趨向于更廉價、更小巧、功能更多。
值得注意的是這些設(shè)備是如何結(jié)合在一起的。手機現(xiàn)在可以用作手表、計算器、照相機和攝像機、音樂和電影播放器、游戲機、條形碼閱讀器、導航儀,甚至手電筒。智能手機有著和筆記本電腦相同的抽象架構(gòu),即使因為不同的尺寸和供電約束,兩者的實際外表有著很大不同。手機中沒有如圖1.3所示的硬盤,然而,它們使用閃存存儲信息,這樣在手機關(guān)機的情況下仍然可以存儲通訊錄、圖片和應(yīng)用等。它們也沒有很多外部設(shè)備,雖然很可能有耳機插口以及USB接口。袖珍攝像頭是如此廉價,大多數(shù)手機在兩面都會安裝。iPad及其他品牌的各類平板電腦在計算機可能形態(tài)的空間中占據(jù)了另一個位置,它們也是具有相同通用架構(gòu)和相似組件的計算機。
- 大學計算機:計算與智能
- 普林斯頓計算機公開課(原書第2版)
- 大學計算機基礎(chǔ)實踐教程
- 計算機文化基礎(chǔ)
- 群智能算法在人腦功能劃分中的應(yīng)用
- 計算機應(yīng)用基礎(chǔ)案例教程(第2版)
- 計算思維與算法設(shè)計
- 大學計算機應(yīng)用基礎(chǔ)項目式教程(Windows 7+Office 2010)
- 圖像處理與計算機視覺實踐:基于OpenCV和Python
- 大學計算機基礎(chǔ)標準教程Windows 10+Office 2016(實戰(zhàn)微課版)
- 深入理解計算機視覺:在邊緣端構(gòu)建高效的目標檢測應(yīng)用
- 大學計算機應(yīng)用基礎(chǔ)
- 計算機應(yīng)用基礎(chǔ)立體化教程
- 玩轉(zhuǎn)3D視界:3D機器視覺及其應(yīng)用
- 時空