對(duì)于程序員极颓,那些既陌生又熟悉的計(jì)算機(jī)硬件

程序員一步入中年,不知不覺(jué)便會(huì)被鋪天蓋地的“危機(jī)感”上身群嗤,曾經(jīng)的那個(gè)少年已經(jīng)不在讼昆,時(shí)間就是這樣公平。就算你能發(fā)明c語(yǔ)言,隨著時(shí)間的推移浸赫,你注定還是要成為慢慢變蔫的茄子,緩緩變黑的葡萄赃绊。

看著樂(lè)視退市的消息既峡,周末我趕緊拉著兒子的小手,復(fù)習(xí)起了大學(xué)那曾經(jīng)考試”滿(mǎn)分“的計(jì)算機(jī)基礎(chǔ)碧查,你別說(shuō)运敢,只讀了一小部分我就發(fā)現(xiàn)一個(gè)事實(shí),記憶力果然指數(shù)級(jí)下降忠售,兒子一遍就可以熟記传惠,我卻衰退的就像沒(méi)上過(guò)大學(xué)。

原來(lái)程序員寫(xiě)的程序?qū)嶋H上就是一個(gè)由0和1組成的位序列稻扬,或者說(shuō)是比特序列卦方,8個(gè)比特(bit)被分為一組,稱(chēng)為字節(jié)泰佳。系統(tǒng)中所有的信息盼砍,包括網(wǎng)絡(luò)傳送的數(shù)據(jù),內(nèi)存中的數(shù)據(jù)以及磁盤(pán)文件逝她,程序等浇坐,都是由一串比特(bit)表示的。如果你要問(wèn)為什么非要8個(gè)字節(jié)呢黔宛?難道不會(huì)百度嗎近刘?我又不是計(jì)算機(jī)發(fā)明者_⊥位危可能有一點(diǎn)非常重要觉渴,你可以拿去和面試官吹水:一個(gè)同樣的字節(jié)可能代表一個(gè)整數(shù),浮點(diǎn)數(shù)积仗,甚至字符串疆拘,區(qū)分他們的唯一方法是這些數(shù)據(jù)的上下文信息。

順便提一下寂曹,在計(jì)算機(jī)中數(shù)字的表示方式其實(shí)是對(duì)實(shí)際值的有限近似值哎迄,只不過(guò)一些高級(jí)語(yǔ)言對(duì)這些值處理的很好而已,不得不吐槽隆圆,JavaScript在處理這個(gè)問(wèn)題上做的不是太好漱挚,不信你可以瀏覽器的F12 運(yùn)行一下

0.1+0.2
0.30000000000000004
0.01 + 0.05
0.060000000000000005

言歸正傳,作為一個(gè)有著”代碼改變世界“夢(mèng)想的程序員渺氧,對(duì)自己手藝要精益求精旨涝,就必須了解你的真愛(ài)的物力構(gòu)成。無(wú)論多diao的軟件都運(yùn)行在硬件基礎(chǔ)之上侣背,雖然近幾年硬件的發(fā)展速度比你衰老的速度還要快白华,但是核心內(nèi)容幾乎沒(méi)變慨默,這才是你真愛(ài)的裸妝。

CPU

先擼一下這個(gè)不成熟的百度百科

中央處理器(CPU弧腥,central processing unit)作為計(jì)算機(jī)系統(tǒng)的運(yùn)算和控制核心厦取,是信息處理、程序運(yùn)行的最終執(zhí)行單元

說(shuō)的直白一點(diǎn)管搪,這個(gè)家伙幾乎是軟件運(yùn)行的核心虾攻,是解釋和執(zhí)行指令的引擎。目前主流的cpu的核心是一個(gè)32位或者64位(未來(lái)還可能更大)長(zhǎng)度的存儲(chǔ)設(shè)備或者寄存器更鲁,被稱(chēng)為程序計(jì)數(shù)器(PC霎箍,一個(gè)蛋疼的簡(jiǎn)稱(chēng))。在任何時(shí)刻澡为,程序計(jì)數(shù)器都指向內(nèi)存中某條指令的地址漂坏。

CPU表面上是按照一個(gè)特定的模型去執(zhí)行指令,這個(gè)模型由指令集的架構(gòu)來(lái)決定的(每個(gè)架構(gòu)類(lèi)型都不一樣缀壤,所以才會(huì)有AMD樊拓,Intel)。自系統(tǒng)通電開(kāi)始塘慕,直到系統(tǒng)斷電筋夏,CPU一直都在不斷的執(zhí)行指令。如果沒(méi)有實(shí)際的軟件執(zhí)行指令呢图呢?拿windows來(lái)說(shuō)条篷,軟件層虛擬出來(lái)了一個(gè)“System Idle Process”進(jìn)程,被稱(chēng)為系統(tǒng)空閑進(jìn)程蛤织,這個(gè)進(jìn)程會(huì)告訴cpu掛起(停止工作)赴叹,所以這個(gè)進(jìn)程的cpu使用率和其他進(jìn)程是相反的意思,它的使用率越高說(shuō)明CPU的壓力越小指蚜。

CPU從程序計(jì)數(shù)器指向的內(nèi)存地址讀取指令內(nèi)容乞巧,并解釋該指令執(zhí)行指令的操作,然后更新程序計(jì)數(shù)器摊鸡,使他指向下一條指令绽媒,而這條指令很有可能和上條指令并非相鄰。簡(jiǎn)單來(lái)說(shuō)免猾,cpu可能會(huì)頻繁的執(zhí)行以下操作

  1. 數(shù)據(jù)加載:從主存復(fù)制一段數(shù)據(jù)到寄存器是辕,以覆蓋寄存器中原來(lái)的內(nèi)容。
  2. 數(shù)據(jù)存儲(chǔ):把寄存器中的一段數(shù)據(jù)復(fù)制到主存的一個(gè)位置猎提,以覆蓋主存原來(lái)位置上的內(nèi)容获三。
  3. 指令操作:把兩個(gè)寄存器的內(nèi)容復(fù)制到邏輯計(jì)算單元,邏輯計(jì)算單元會(huì)對(duì)這兩段數(shù)據(jù)做指令運(yùn)算,并將結(jié)果存儲(chǔ)在一個(gè)寄存器中疙教。
  4. 指令跳轉(zhuǎn):從指令本身抽取一段內(nèi)容并復(fù)制到程序計(jì)數(shù)器中棺聊,以覆蓋程序計(jì)數(shù)器中原來(lái)的值。

主存

老規(guī)矩贞谓,沒(méi)有百度不到的知識(shí)躺屁,一個(gè)沒(méi)有百度百科的名詞,說(shuō)明不是很有名

主存儲(chǔ)器(Main memory)经宏,簡(jiǎn)稱(chēng)主存。是計(jì)算機(jī)硬件的一個(gè)重要部件驯击,其作用是存放指令和數(shù)據(jù)烁兰,并能由中央處理器(CPU)直接隨機(jī)存取。現(xiàn)代計(jì)算機(jī)是為了提高性能徊都,又能兼顧合理的造價(jià)沪斟,往往采用多級(jí)存儲(chǔ)體系。即由存儲(chǔ)容量小暇矫,存取速度高的高速緩沖存儲(chǔ)器主之,存儲(chǔ)容量和存取速度適中的主存儲(chǔ)器是必不可少的。主存儲(chǔ)器是按地址存放信息的李根,存取速度一般與地址無(wú)關(guān)槽奕。

主存是一個(gè)臨時(shí)的存儲(chǔ)設(shè)備,在程序被執(zhí)行過(guò)程中用來(lái)臨時(shí)存放程序內(nèi)容和處理結(jié)果房轿。從物理來(lái)講粤攒,主存是由一組動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器芯片組成(你可以想象成一大排二極管),從邏輯上來(lái)講囱持,主存是一個(gè)線(xiàn)性的字節(jié)數(shù)組夯接,每個(gè)字節(jié)都有一個(gè)唯一的地址,這些地址是從0開(kāi)始的纷妆,現(xiàn)在主流的主存在個(gè)人計(jì)算機(jī)上已經(jīng)是16G的大小盔几,讓我這個(gè)還在用4G主存的老人無(wú)言以對(duì)呀。

輸入輸出設(shè)備

當(dāng)年計(jì)算機(jī)第一堂課掩幢,那個(gè)地中海的老師就講過(guò)這個(gè)概念逊拍,雖然具體內(nèi)容現(xiàn)在已經(jīng)和我的秀發(fā)一并褪去,但是每天的工作中還是能偶爾看到IO這個(gè)詞粒蜈。

IO(輸入輸出)是系統(tǒng)與外部世界的連接通道顺献,像我們每天擼王者農(nóng)藥的鼠標(biāo)鍵盤(pán),釋放壓力看小電影的高清顯示器枯怖,存儲(chǔ)蒼老師的磁盤(pán)等等注整,這些都隸屬于輸入輸出設(shè)備。

每個(gè)IO設(shè)備都有一個(gè)控制器或者適配器,它是和系統(tǒng)交互的途徑肿轨,一般都和IO總線(xiàn)連接寿冕。說(shuō)直白一點(diǎn),每個(gè)IO設(shè)備都有它的驅(qū)動(dòng)程序椒袍,要不然系統(tǒng)不可能無(wú)緣無(wú)故就能使用鍵盤(pán)鼠標(biāo)這些設(shè)備的驼唱,即使現(xiàn)在的外設(shè)都是免驅(qū)的。

系統(tǒng)總線(xiàn)

總線(xiàn)是連接整個(gè)系統(tǒng)的橋梁驹暑,物理上是一組電子管道玫恳。他負(fù)責(zé)攜帶信息字節(jié)并在各個(gè)組件之間進(jìn)行傳遞,就像我們軟件系統(tǒng)設(shè)計(jì)SOA中的總線(xiàn)优俘【┌欤總線(xiàn)根據(jù)系統(tǒng)定義的位數(shù)來(lái)傳輸定長(zhǎng)的數(shù)據(jù),每個(gè)系統(tǒng)都不一樣帆焕,不過(guò)現(xiàn)在主流的長(zhǎng)度要么是四個(gè)字節(jié)(32位)惭婿,要么是8個(gè)字節(jié)(64位)。從這里就可以聯(lián)想到叶雹,64位的系統(tǒng)在數(shù)據(jù)傳輸速度上要比32位的系統(tǒng)快一倍财饥,也許將來(lái)很快會(huì)邁入128,256時(shí)代呢

如果非要加一張圖的話(huà),此圖最有代表性


image

更多精彩文章

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末折晦,一起剝皮案震驚了整個(gè)濱河市钥星,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌筋遭,老刑警劉巖打颤,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異漓滔,居然都是意外死亡编饺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)响驴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)透且,“玉大人,你說(shuō)我怎么就攤上這事豁鲤』嗵埽” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵琳骡,是天一觀(guān)的道長(zhǎng)锅论。 經(jīng)常有香客問(wèn)我,道長(zhǎng)楣号,這世上最難降的妖魔是什么最易? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任怒坯,我火速辦了婚禮,結(jié)果婚禮上藻懒,老公的妹妹穿的比我還像新娘剔猿。我一直安慰自己,他們只是感情好嬉荆,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布归敬。 她就那樣靜靜地躺著,像睡著了一般鄙早。 火紅的嫁衣襯著肌膚如雪汪茧。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天限番,我揣著相機(jī)與錄音陆爽,去河邊找鬼。 笑死扳缕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的别威。 我是一名探鬼主播躯舔,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼省古!你這毒婦竟也來(lái)了粥庄?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤豺妓,失蹤者是張志新(化名)和其女友劉穎惜互,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體琳拭,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡训堆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了白嘁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坑鱼。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖絮缅,靈堂內(nèi)的尸體忽然破棺而出鲁沥,到底是詐尸還是另有隱情,我是刑警寧澤耕魄,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布画恰,位于F島的核電站,受9級(jí)特大地震影響吸奴,放射性物質(zhì)發(fā)生泄漏允扇。R本人自食惡果不足惜缠局,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔼两。 院中可真熱鬧甩鳄,春花似錦、人聲如沸额划。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俊戳。三九已至揖赴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抑胎,已是汗流浹背燥滑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阿逃,地道東北人铭拧。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像恃锉,于是被迫代替她去往敵國(guó)和親搀菩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容