官术网_书友最值得收藏!

  • 計算思維與Python編程
  • (美)瑪麗亞·利特文 加里·利特文
  • 1642字
  • 2020-05-20 09:26:02

1.2 CPU和內存

計算機的核心是中央處理器(CPU)。在個人計算機中,CPU是由微小的硅芯片制成的微處理器。該芯片上刻有數百萬個晶體管。晶體管是一種微型數字開關:它控制信號的兩種狀態,“開”或“關”,即“1”或“0”。微處理器由小于1平方英寸的陶瓷外殼保護,安裝在印制電路板(也稱為主板)上。主板上還有內存芯片,以及用于連接其他設備的端口(見圖1-1)。

圖1-1 樹莓派3B型單板計算機,放在3.5平方英寸×2.25平方英寸的印制電路板上

計算機存儲器是一系列統一的存儲單元,這些單元稱為“字節”。

1字節保存8位信息。

1位是最小的信息存儲單元:“1”或“0”,“真”或“假”,“開”或“關”。

CPU可以按任意順序訪問內存中的字節。這就是計算機內存被稱為“隨機存取存儲器(RAM)”的原因。同樣的內存用于存儲不同類型的信息:數字、字母、聲音、圖像、程序等。這些信息,必須以某種方式編碼為0和1的序列。

2019年生產的典型個人計算機具有8GB(千兆字節)的RAM。

1 K字節(KB)= 1024字節 = 210字節,大約一千字節。
1 M字節(MB,“兆”)= 1024 K字節 = 220字節= 1,048,576字節,大約一百萬字節。
1 G字節(GB,“吉”)= 1024 M字節 = 230字節 = 1,073,741,824字節,大約10億字節。
1 T字節(TB)= 1024 G字節 = 240字節。
1 P字節(PB)= 1024 T字節 = 250字節。

一頁有500~600個單詞的文本,沒有圖片或特殊格式,大約需要3KB的存儲空間;一張高分辨率照片可能需要2~3MB的存儲空間,而1GB存儲空間可以壓縮的MP4格式保存數小時的視頻。

CPU解釋并執行存儲在RAM中的指令。CPU獲取下一條指令,解釋它的操作代碼,并執行適當的操作。有些指令用于算術和邏輯運算,有些用于將字節從一個位置復制到另一個位置,還有一些用于改變指令的執行順序。除非特定指令告訴CPU“跳轉”到程序中的另一個位置,否則指令將按順序執行。“條件分支”指令告訴CPU繼續下一條指令或跳轉到另一個位置,具體情況取決于前一操作的結果。

以上這些操作都以驚人的速度發生。現代CPU以幾GHz的速度運行,每條指令需要一個或幾個時鐘周期。

為了更好地了解CPU指令及其執行方式,讓我們來看看“匯編語言”,這是一種低級計算機語言。它是你所聽過的現代語言的基礎,如C++、Java、JavaScript和Python。

圖1-2展示了一個非常短的匯編語言程序,用于8088微處理器(在20世紀80年代早期用于最初的IBM PC),其中包含相應指令的十六進制代碼(十六進制系統在第6章中解釋)和我們的注釋。匯編語言代碼非常接近實際的機器代碼,但它允許你使用名稱而不是數字,來表示指令和內存位置。

CPU有幾個內置存儲器單元,稱為寄存器。圖1-2中的代碼使用的兩個寄存器,稱為AX和BX。例如,第一條代碼(MOV BX, 0000)將0移入BX寄存器。

圖1-2 一段8088匯編語言代碼

我們將它留給你作為練習(練習題6),請弄清楚這段代碼計算的內容。結果存儲在BX寄存器中。

計算機代碼中的錯誤稱為“缺陷(bug)”,消除程序錯誤的過程稱為“調試(debug)”。

圖1-2中的代碼是在一個名為debug的程序的幫助下生成的,該程序隨MS-DOS操作系統和早期版本的Windows一起提供。調試程序允許程序員以受控方式逐步執行程序,并在每一步檢查內存的內容。在程序未按預期工作時,使用調試程序可以幫助發現錯誤。

1.找到一臺廢棄的臺式計算機,確保已拔下電源線,然后取下機箱蓋(或在網上查找打開機箱的臺式PC的高分辨率圖片)。識別主板、CPU和內存芯片,識別計算機的其他組件:電源、硬盤、CD ROM驅動器。

2.計算機內存稱為RAM,因為: ?

(A)它提供對數據的快速訪問

(B)它安裝在主板上

(C)它以兆字節為單位

(D)它的字節可以按隨機順序尋址

(E)它的芯片安裝在矩形陣列中

3.我的舊PC有512MB的RAM和120GB的硬盤,硬盤存儲空間是RAM的多少倍??

4.可以用2位編碼多少個不同的值?3位呢?1字節呢?

5.ASCII碼表示在典型的美式鍵盤上可以找到的英文字母、數字和其他字符的大寫和小寫字母。每個字符以相同的位數編碼。每個字符1字節是否足以表示所有這些字符?每個字符所需的最小位數是多少? ?

6.◆在執行圖1-2中的程序段后,解釋AX和BX寄存器的內容。這段代碼計算了什么? ?提示:十六進制的15是十進制的21。? ?

主站蜘蛛池模板: 兰州市| 山丹县| 海晏县| 长宁区| 尖扎县| 什邡市| 太湖县| 宁城县| 韶山市| 改则县| 会泽县| 清河县| 乐安县| 成安县| 日土县| 定安县| 罗山县| 桦南县| 班玛县| 郓城县| 金湖县| 杂多县| 麻城市| 文成县| 清水河县| 三穗县| 凌云县| 宽城| 岢岚县| 临武县| 山东| 甘肃省| 孟连| 孝昌县| 永寿县| 永济市| 佛冈县| 伊宁市| 无锡市| 博兴县| 泌阳县|