?? 第03章 計算機原理.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://d2school.com/bcyl/bhcpp/newls/ls03.htm -->
<HTML><HEAD><TITLE>第03章 計算機原理</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>P {
MARGIN: 1px 2px; LINE-HEIGHT: 150%
}
.節(jié)標(biāo)題 {
FONT-WEIGHT: bold; FONT-SIZE: 12pt
}
TD {
FONT-SIZE: 9pt
}
.tdtitle {
FONT-SIZE: 20pt
}
.celltopline {
BORDER-TOP: #000000 1px solid
}
.menucell {
FONT-SIZE: 10pt
}
#glowtext {
FONT-SIZE: 10pt; FILTER: glow(color=red,strength=1); WIDTH: 100%
}
A:link {
FONT: 10pt 宋體; COLOR: blue; TEXT-DECORATION: none
}
A:visited {
FONT: 10pt 宋體; COLOR: purple; TEXT-DECORATION: none
}
A:active {
FONT: 10pt 宋體; COLOR: red; TEXT-DECORATION: underline
}
A:hover {
COLOR: blue; TEXT-DECORATION: underline
}
</STYLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=3><!-- 標(biāo)題 --><!--標(biāo)題結(jié)束 --><A name=頁首></A>
<CENTER>
<TABLE height=154 cellSpacing=4 cellPadding=4 width=760 border=0>
<TBODY>
<TR>
<TD
style="FONT-SIZE: 10pt; MARGIN-LEFT: 12px; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; MARGIN-RIGHT: 12px; FONT-FAMILY: 宋體"
width="100%" height=148>
<H2>第三章 計算機原理</H2>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls03.htm#談?wù)勀M信號">3.1
電唱機、電話、電腦——談?wù)勀M信號</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls03.htm#數(shù)字信號">3.2
數(shù)字信號</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls03.htm#3.3">3.3
I/O設(shè)備,存儲器、處理器</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls03.htm#3.4">3.4
內(nèi)存</A></P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls03.htm#3.4.1">3.4.1
內(nèi)存地址</A></P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls03.htm#3.4.2">3.4.2
虛擬內(nèi)存</A></P>
<P> </P>
<P>“原理”一詞,似乎總是代表艱深難度,另外還多少有些“太過理論,脫離實際”的意味。對于計算機,它的原理還偏向于硬件。基于這些,我們需要明白,在真正開始學(xué)習(xí)編程之前,我們有何必要學(xué)習(xí)一些計算機原理呢?</P>
<P>在大學(xué)里,計算機系有專門的一門《計算機原理》課,計算機原理的內(nèi)容并不出現(xiàn)在計算機語言的課中。或許是這個原因,許多面向社會人員(非專業(yè)人士)的計算機編程書籍同樣不講計算機原理。這容易造成學(xué)習(xí)者也許上手很快,但學(xué)到一定程度后就難以有較深入的發(fā)展。我想,這是因為“底氣不足”。</P>
<P>如上面提到的,計算機原理是完整的一門課,我們此處只用一章的時間闡述,所以我們必須講最本質(zhì)的原理。</P>
<H3>3.1 電唱機、電話、電腦——<A name=談?wù)勀M信號>談?wù)勀M信號</A></H3>
<P>要了解電腦的原理,不妨舉一些我們早已熟悉的其它電器的例子,看看它們的原理。</P>
<P>假如你第一次看到一臺會能說會唱的電腦,你可能會感到新奇,但事實上,別忘了,從CD機到帶式的隨機聽,它們都沒有生命卻“記下”然后“說出”聲音。事實上它們運行的原理,在本質(zhì)和電腦完全一致,只不過由于我們太過熟悉,所以就認為它們沒有什么了不起。其實,你能說出電唱機為什么能唱嗎?</P>
<P>原始的電唱機會發(fā)唱的原理:</P>
<P>一張盤,表面涂一層石蠟。取一根針,針尖正好接觸蠟面,針上頂一張薄膜。讓帕瓦羅蒂在不遠處沖著這張膜唱《我的太陽》。另有一人在老帕高歌時均速地旋轉(zhuǎn)蠟盤。于是,歌聲高低不同,薄膜向下壓的幅度也不同,針在蠟上刻的深淺便不同,這樣,就將人的聲音最終以蠟上劃痕的深淺記錄下來。將蠟盤固化,在一套反方向的裝置上:盤轉(zhuǎn),頂針上下高底不同地拉動一張膜,那張膜就會有模有樣地唱《我的太陽》了。</P>
<P>再來看看電話的原理:</P>
<P>話筒內(nèi)有一堆碳粉,碳粉內(nèi)埋一導(dǎo)線,碳粉蓋一張膜。同樣,當(dāng)你對話筒大喊大叫時,膜對碳粉造成忽緊忽松的壓力,碳粉之間時緊時松,引起其電阻的大小變化,最終忽大忽小的電流傳到對話的聽筒。聽筒內(nèi)有一電磁鐵隨電腦大小而磁性不同,它對埋有金屬絲薄膜時吸時放,薄膜便發(fā)出了你的聲音。</P>
<P>你我都已經(jīng)永遠地失去了發(fā)明的電唱機或電話的機會了……偉大的先驅(qū)們是那么的聰明,懂得將一種不便于存儲,不便于傳播的信號轉(zhuǎn)換為另一種便于存儲,便于傳播的信號,從而有了偉大的發(fā)明。</P>
<P>電腦(計算機)要管理各種信息,首先它必須能存儲,傳載這些信息,所以,在這一點上,它的本質(zhì)和電唱機或電話沒有區(qū)別,必須實現(xiàn)各種信息以某種方法,轉(zhuǎn)換為另一種信息。</P>
<P>這就是計算機的第一條本質(zhì)原理:將各類信息以某種信號進行存儲。</P>
<P>好極了,現(xiàn)在,我們已經(jīng)是了解計算機本質(zhì)之一的人,從今天起,當(dāng)我們再聽到有菜鳥在說硬盤時,你大可對其怒喝:“成天就知道‘酷魚大腳西部數(shù)據(jù)’!不管是什么牌子,也不管是硬是軟是光,它們都是計算機將外界信息以磁或者激光信號的形式進行存儲的介質(zhì),懂不?看你真像個中關(guān)村的電腦販子!”(如果對方體積儼然在你的1.5倍以上,最后一句可以不說)</P>
<H3>3.2 <A name=數(shù)字信號>數(shù)字信號</A></H3>
<P>“數(shù)字”——digit。</P>
<P>無論我說中文還是英文的,除了剛巧學(xué)完0~9的小學(xué)低年級學(xué)生外,20和21世紀(jì)內(nèi)出生的人都知道我是在說一個時髦詞。</P>
<P>這個“數(shù)字”所代表的,是“模擬”的反面。</P>
<P>電視,我們要數(shù)字的(盡管據(jù)說在中國并沒有數(shù)字信號的電視節(jié)目);</P>
<P>手機,當(dāng)然是數(shù)字的,前陣子中國電信已徹底地向采用模擬信號的蜂窩說bye-bye;</P>
<P>相機,數(shù)碼的。(數(shù)碼就是數(shù)字)</P>
<P>空調(diào),數(shù)控的(空調(diào)吹不出數(shù)字的風(fēng),但它說,我這風(fēng)是在數(shù)字信號的控制下吹出來的,當(dāng)然就白里透紅與眾不同)。</P>
<P> </P>
<P>“數(shù)字的”就這么好嗎?電腦也是數(shù)字的嗎?</P>
<P>前面我們說唱機,電話的原理時,你可以看到,在一種信號轉(zhuǎn)換為另一種信號時,采用的方法是進行“模擬”。比如用針在蠟上刻的深淺來模擬聲音的高低。盡管新的信號記載原來不空易存儲的信號(聲音),但這種新信號本身也是不穩(wěn)定,不精確,比如針的不同,或蠟的質(zhì)量不同,但會造成雖然同樣是老帕在同一時刻唱的歌,不同的盤最后播出的聲音卻不同。類似的,筆者便常常在電話這頭將丈母娘的聲音聽成是丈母娘女兒的聲音而下不了臺。</P>
<P>和許多偉大發(fā)明一樣,當(dāng)初計算機的發(fā)明的需明恐怕也是為了戰(zhàn)爭。現(xiàn)代計算機更是廣泛用于衛(wèi)星發(fā)射,飛機導(dǎo)航等不允許出錯的領(lǐng)域。其實,就算是僅僅用于讓你給女朋友或男朋友發(fā)一封情義綿綿的e-mail,只怕你也不希望它出什么差錯。</P>
<P>盡管模擬的手段是一種信號轉(zhuǎn)換為另一信號時幾乎是不可避免的最初方法,但我們要求有進一步的轉(zhuǎn)換來或得可以精確復(fù)制,從而更利于存儲,傳播的信號。</P>
<P>當(dāng)你將一首存在磁帶式唱片上歌不停地錄到別的唱片時,歌聲會越來越變調(diào)。同樣操作進行在數(shù)字信號的CD唱片,歌聲卻完全一致。</P>
<P>模擬信號轉(zhuǎn)換成數(shù)字信號和其反方向的轉(zhuǎn)換是如何實現(xiàn),不是一章的文字能說清。也不是我們學(xué)習(xí)的重點。我們只需記住以下內(nèi)容:</P>
<P>1、首先:模擬信號英文為:analog signals 縮寫AS;數(shù)字信號為:digital
signals/DS;因此,前者到后者的轉(zhuǎn)換稱為AD轉(zhuǎn)換,另一方向則稱為DA轉(zhuǎn)換。在各種計算機系統(tǒng)(特別是工業(yè)控制)中,AD轉(zhuǎn)換往往是采集數(shù)據(jù)的初始端,而DA則是播放數(shù)據(jù)的最終端。</P>
<P>2、第二就更簡單。以下是兩張示意圖,分別為模擬和數(shù)字信號的波形圖。你需要能認出二者。</P>
<P><IMG height=100 src="第03章 計算機原理.files/wavsmp.gif" width=406
border=0></P>
<P>像心電圖一樣的鋸齒波是模擬信號典型的波樣,比如我們的聲音。而方形波則為數(shù)字信號。</P>
<P>(筆者用畫筆毛糙地畫成,不像樣之處尚望各位包涵。)</P>
<P> </P>
<P>面對左圖的鋸齒波。我們也就明白了為什么人生和生活會那么復(fù)雜。因為人類的原始的現(xiàn)實的生活中,各種信號幾乎都是模擬的。不僅僅是聲音,不僅僅是我們的心跳的規(guī)律,更包括我們的感情,都是“模擬信號”。你看“情緒化”一詞又總是用來代表不穩(wěn)定的,非理智的……和生活相比,編程世界是那么的簡單。它0就是就0,1就是1,正所謂愛恨分明……似乎有些跑題,不過接來的另一段“面對”倒很重要,請認真看。</P>
<P>面對方形波,回憶第一章我們說過的二進制:二進制數(shù)只用0、1兩個數(shù)字。方形波最適合于二進制表示。凸起的用1表示,凹下的用0表示。所以現(xiàn)在你可明白:在計算機的世界里,所有信息最終都被數(shù)字化為0和1,這是一種最徹底的數(shù)字化。譬如在我們已熟悉的數(shù)據(jù)存儲方面:硬盤和軟盤都為磁盤,它通過有盤上某一點有無磁性來表示1或0;而光盤,它盤面上會有連續(xù)的凸起顆粒,和間隔的平面。當(dāng)激光頭的射線進入前者時,光被散射,這些連續(xù)的點用于表示一個0,當(dāng)光線照在平面區(qū)時,光被反射,則可表示1。(如下圖)</P>
<P><IMG height=63 src="第03章 計算機原理.files/cd01.gif" width=267 border=0></P>
<P>(由于這種數(shù)字化的實現(xiàn)大多數(shù)通過電子電路,所以,一些場合數(shù)字化也被稱為電子化)</P>
<P>至此,讓我們再重復(fù)一遍在第一章我們說是嚴重跑題的那段話:</P>
<P>世界就是這樣奇妙。萬事萬物五彩繽紛,但進了計算機,卻只是個0和1的組合。不由得你會想起道教的古老玄機:“無極生太極,太極生兩儀,兩儀生四象,四象生八卦,八卦生十六爻”。</P>
<H3><A name=3.3>3.3</A> I/O設(shè)備,存儲器、處理器</H3>
<P>計算機系統(tǒng)中,硬盤、軟盤/軟驅(qū)、光盤/光驅(qū)等稱為存儲器。它們用來存儲信息,這些信息在它們的內(nèi)部統(tǒng)統(tǒng)以0和1表示。</P>
<P>如果只有這些,那計算機就只能叫數(shù)據(jù)倉庫了。有了數(shù)據(jù)還需要處理數(shù)據(jù)的能力。</P>
<P>數(shù)據(jù)和處理。依筆者的理論,這是程序的全部,計算機的全部,也是世界的全部。反過來說,正因為整個世界都可以用數(shù)據(jù)和處理來表達,所以最終程序才有可能實現(xiàn)對現(xiàn)實問題的解決。</P>
<P>當(dāng)我們在寫程序時,就是在用程序來表達這個世界。當(dāng)然,由于很多數(shù)據(jù)沒法實現(xiàn)“數(shù)字化”,所以它們永遠無法用程序來表達,比如人類的感情,或許永遠只能是“模擬信號”。(基于此,所有科幻片中關(guān)于有一天計算機會突然具有自已的意識,并開始以人類為敵的設(shè)想,我們可以斷定它也就只能是幻想——永遠都是。)</P>
<P> </P>
<P>計算機系統(tǒng)中,鍵盤,鼠標(biāo),掃描儀,數(shù)碼相機等,可稱為輸入(Input)設(shè)備。</P>
<P>顯示器,打印機,稱為輸出(Output)設(shè)備。</P>
<P>這二者統(tǒng)稱為輸入輸出設(shè)備,也就是計算機英文中常見的那個縮寫:IO或I/O。</P>
<P> </P>
<P>輸入設(shè)備用來做什么?用來向計算機輸入信息,這過程便有非常多的“模擬->數(shù)字”轉(zhuǎn)換器。而輸出設(shè)備,則將<B>處理后</B>的的信息以合適的格式輸出(一般是為了輸出給人看)。下面我們用我們最熟悉不過的鼠標(biāo)來說明。</P>
<P>第一,鼠標(biāo)的輸入端是什么呢?</P>
<P>答:是我們手里握著的那個類似老鼠的東西。</P>
<P> </P>
<P>第二,鼠標(biāo)的輸入端要處理的是什么信息呢(換一種問法是:鼠標(biāo)要輸入什么信息)?</P>
<P>答:是我們胳膊肘的來回挪動(這里暫不說單擊,雙擊等)。可別說胳膊肘的動作不是信息——那樣說可真外行——包括挪動的方向,距離,速度等。</P>
<P> </P>
<P>第三,胳膊肘的動作是“模擬信號”還是“數(shù)字信號”呢?</P>
<P>答:只要你的手是肉長的,那么就只能是模擬信號。</P>
<P> </P>
<P>第四,胳膊肘的動作是如何被采集,又如何傳輸入進電腦,又如何被處理,又如何變成一個光標(biāo)在屏幕上跑來跑去,有時候還會變成一只小手……</P>
<P> </P>
<P>答:@ # ¥ % # ? !</P>
<P>關(guān)于鼠標(biāo)的具體工作過程已經(jīng)不是我能回答的了,也不是我們要學(xué)習(xí)的內(nèi)容。不過如你很窮,和我一樣用的是10來塊的機械式鼠標(biāo),那么恭喜你,你可以親自“解剖”一下鼠標(biāo),觀察鼠標(biāo)里頭的“模數(shù)轉(zhuǎn)換器”。方法是把鼠標(biāo)背過來,揭掉合格證(提醒,揭掉后你的鼠標(biāo)可能無法保修了),擰掉螺絲,打開上蓋,會發(fā)現(xiàn)內(nèi)有滾輪,水平向滾軸,垂直向滾軸,輔助壓輪各一,組成一套采集設(shè)置,看看你就明白它們是如何配合工作,完成采集你胳膊肘的挪動的信息了。</P>
<P>最后在合上蓋時,順便將滾軸上的積泥刮掉,它們嚴重影響數(shù)據(jù)采集的精度。</P>
<P> </P>
<P>說完存儲設(shè)備和I/O設(shè)備,重要人物也要該出場了。它就是電腦的心臟:CPU。</P>
<P> </P>
<P>CPU何許人也?Central Processor
Unit。即:中央處理器。中央并不是說它正好在機箱內(nèi)正中間,而是說它是核心人物,其實你顯卡聲卡等也有芯片在處理一些數(shù)據(jù)。但大都數(shù)數(shù)據(jù),比如鼠標(biāo)采集到信息后,便需要送到CPU中進行復(fù)雜的計算,最終才能輸出。</P>
<P>CPU便是這樣一個人物,它要處理幾乎所有計算系統(tǒng)中的數(shù)據(jù)。它的重要性得就像是大腦之于人體。把它說成是心臟真是個混淆視聽的比喻。</P>
<P>CPU又是如何處理數(shù)據(jù)的呢?大千世界中的數(shù)據(jù)(當(dāng)我們偏向于專業(yè)時,我們就將信息說成是數(shù)據(jù))各類各樣,極其復(fù)雜;同樣的,對種種數(shù)據(jù)的處理也相當(dāng)復(fù)雜。比如給你一個蘋果你的處理是吃掉,而女友把她的手給你時她的意思是要你牽著,如果你把后者等同于前者進行同樣的處理……后果……</P>
<P>Intel或AMD生產(chǎn)的CPU如何先進,終究是個東西,怎能自已決定如何處理各種數(shù)據(jù)呢?</P>
<P>有數(shù)據(jù):鋼板拴著一個螺絲釘,</P>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -