小速學編程:計算機系統的組成

2020-10-22 程序猿阿諾

陳小速:一名職業技術學院計算機技術與應用專業的學生,他夢想成為一名程式設計師。

吳進:一所重點大學軟體工程專業大三學生,編程經驗豐富。

關於二人的故事,請參看歷史文章:


問題

陳小速上了一個月的課之後,覺得有好些問題搞不明白,於是專程跑去找吳進求教了。他們在食堂裡邊吃邊聊。

吳進先問著:「小速,第一個月學什麼課了?」

「基礎課程,計算機系統組成原理。」 陳小速一邊嚼著一塊雞肉,一邊回答。

不等吳進繼續問話,陳小速自己把話接上了:「吳大哥,我現在有個疑問啊,計算機不就是由CPU、內存條、主板、硬碟、顯卡、音效卡這些組成的嗎?可我怎麼聽老師講的都是寄存器、計算單元、系統總線、I/O總線,高速緩存,多級存儲啊,這都是些啥玩意啊?」

即使沉穩鎮定如吳進,聞言也忍不住笑出了聲,這下讓陳小速羞了個大紅臉,局促不安地說:「讓吳大哥笑話了啊,我確實不懂。」

「不懂就問明白,這是對的,」吳進先表示了肯定,接著說,「你的理解是從直觀感覺出發,這也沒什麼不對的。一臺計算機不就是這麼攢出來的嘛。不過,既然是講原理的課,那就不能只停留在攢機的程度上嘍。」

「這個吳大哥說的是。」 陳小速放下了筷子,專心地聽著。

計算機最重要的部件

吳進先提了個問題:「小速,你覺得,一臺計算機要是把哪個部件去掉,就不能被稱之為計算機了?」

陳小速認真地想了一會兒,說:「應該是中央處理器CPU,它是負責運算的,這個我知道。」

「對,沒錯,」 吳進點頭表示肯定,「這個CPU就像我們的大腦一樣,大腦停止工作,人也不存在了。」

「哈,我想到了<三體>裡的雲天明!」 平常愛看科幻小說的陳小速,這時候思維也跳躍起來,「他就是去掉了所有肢體和器官,就保留了一個大腦被送到三體人那兒去了。」

「那你知道世界上第一臺PC機Altair嗎?」 吳進繼續提問。

陳小速搖了搖頭,吳進笑著說:「那臺機器就像雲天明的大腦一樣,沒有屏幕,沒有硬碟,沒有音效卡,沒有滑鼠和鍵盤,就是一個箱子。它的前面板上放了幾個開關和一排會閃爍的紅燈,作為輸入輸出設備。對了,這機器是1974年被製造出來的。」

陳小速聽著瞪大了眼睛,張大了嘴巴,問:「那這樣的機器有啥用?不能看電影、打遊戲、聽音樂。」

吳進解釋說:「當時製造它的人也想不到微型計算機以後可以幹什麼,他只是想證明計算機並不是必須像房間一樣高大,被重重保護起來,只是少數人使用的專利。普通人一樣可以在家裡就擁有一臺計算機。」

「Altair最具革命性的意義,就在於它的設計者採用了總線式的結構。」 吳進漸漸進入正題,陳小速也聽得入了神。

計算機系統結構

吳進開始了詳細的解說。

CPU要進行計算,那麼它就需要讀取數據並進行運算,然後再輸出結果。而數據要通過輸入設備傳輸給CPU,就必須要有一條通道。總線就是這樣一條用於數據傳輸的通道。

總線式的結構,就構造了一個開放式的架構。這意味著計算機可以通過擴展插槽的方式,將其他部件集成到機器中。這些插槽上的設備就通過總線與CPU相連,從而可以實現數據的輸入輸出處理了。

而CPU的處理速度是非常快的,要想將它的性能發揮出來,就必須做到儘快地給它提供數據。因此PC使用了分級存儲式的結構。

計算單元是從寄存器取數據的,因此它訪問寄存器的速度是最快的。CPU內部集成有L1,L2,L3三級高速緩存,在外部則是主存,再然後是硬碟。可以認為,越靠近CPU的存儲,它的速度越快。

吳進拿來紙和筆,邊說邊畫了下面這張圖。



看著這幅圖,陳小速先是沉思不語,然後猛地站起來,口中念念有詞地來回走動。接著他兩眼放光,大笑著對吳進說:「吳大哥,我明白了,計算機系統就像工廠生產一樣。原材料通過各種運輸途徑運進來,例如高速公路、鐵路、飛機。然後工廠把這些原材料一通加工,又把產品從各種途徑給送出去,是這意思吧?哈哈!」

吳進讚許地點了點頭,說:「你有聽說過計算機主板上的南橋晶片與北橋晶片吧?現在有了這個知識你就好理解了。北橋晶片是靠近CPU的,系統總線就是由它來管理,負責CPU與高速設備打交道,例如主存、顯示卡。南橋晶片則管理I/O總線,負責CPU與低速設備傳輸數據,例如硬碟、鍵盤和滑鼠等。」

學習的方法

陳小速點頭如搗蒜,興奮地說:「今天真是太有收穫了,回去我得好好跟同學們講講,他們也都是一頭霧水呢。」

「對,這個很重要,」 吳進強調著,「學習知識,最好的方法就是講解給別人聽。所以我給你講的過程中,也是在幫我複習基礎知識。你自己只有完全弄明白,才能保證讓別人聽懂。那這次給你留個作業吧,就是你回去以後把今天的內容講解給同學聽,能回答他們提出的問題,讓他們明白這個基本原理,可以吧?」

「收到!」 陳小速抬頭挺胸一口答應下來。

「下次過來,我們就討論一下CPU的工作原理,以及電腦程式的初步概念吧。」


相關焦點

  • 小速學編程:什麼是程式語言
    陳小速:一名職業技術學院計算機技術與應用專業的學生,他夢想成為一名程式設計師。吳進:一所重點大學軟體工程專業大三學生,編程經驗豐富。「小速,最近學習什麼新內容了嗎?」 吳進關切地問著。「除了那些基礎課,專業方面的還是講計算機系統導論那些內容。老師說我們的學習能力一般,所以進度放得比較慢。但我自從聽了吳大哥的講解之後,覺得挺好理解的呀。」 陳小速自顧自地說著。
  • 小速學編程:從《三體》裡學習計算機數字系統
    陳小速:一名職業技術學院計算機技術與應用專業的學生,他夢想成為一名程式設計師。吳進:一所重點大學軟體工程專業大三學生,編程經驗豐富。小速你是直接學習的知識本身,那你有想過為什麼是這樣嗎?比方說為什麼要設計出二進位來?」陳小速聽了茫然地搖了搖頭,說:「我只知道二進位只有0和1兩個數字,然後一堆0和1構成的序列可以轉換成十進位、十六進位的數。我們有十進位這種計數方式不就夠了嗎?」
  • 計算機專業丨大學生學編程,系統練習項目應該從哪裡開始?
    首先告訴你的是計算機高級程式語言都是相似相通的,會了一門學習另一門會很快很容易。網頁編程可以從HTMl入手學習,這個非常簡單,你要是不承認這是一門語言的話,可以去學PHP或者ASP.NET。他們功能比較多,也意味著要學很長時間基礎之後,才能做到開發和界面有關係的地方,所以這些語言推薦在入門之後在進行學習。所以話說回來還是從C語言C++或者PHP、HTML等入手吧。等你學的差不多的時候,多看看網上別人寫的原始碼,自己嘗試做一些能做的小項目,比如課後練習,比如一些數學題的運算,求面積、體積等等。
  • 零基礎學編程應該知道的計算機基本知識
    介紹計算機基本知識的書或文章很多,不再一一介紹了,本文手工敲出來的,根據自己所學,簡要介紹一下學編程之前需要了解的基本知識。什麼是計算機?這個你應該知道的,我們天天看到的臺式機電腦,筆記本電腦,專業的伺服器,IPAD,智慧型手機等都應該算是計算機。1、 計算機是由硬體和軟體構成的。硬體就是我能用眼睛看到的組件,比方說鍵盤,顯示器,主機,滑鼠,主機箱裡的主板,電源,硬碟,內存及各種連接線等等,硬體又可以分為輸入設備、輸出設備、運算設備,存儲設備。
  • 第二節 計算機系統組成
    一、計算機系統構成完整的計算機系統是由硬體系統和軟體系統兩部分構成。計算機系統組成如下圖所示。
  • 小速學編程:CPU的結構、指令與程序初探
    陳小速:一名職業技術學院計算機技術與應用專業的學生,他夢想成為一名程式設計師。吳進:一所重點大學軟體工程專業大三學生,編程經驗豐富。閱讀本文之前,可以先溫習一下歷史文章: 引言陳小速如約來找吳進了,一見面他就嚷道:「吳大哥,我回去以後就給同學們講解計算機的系統組成原理了
  • 是否應該先學習編程,然後再學習其他計算機理論知識
    首先,學習計算機相關知識可以直接從程式語言開始學起,一方面程式語言相對比較簡單,另一方面在學習程式語言的過程中,也會逐漸把計算機相關技術給串起來,從而促進相關知識的學習,比如數據結構知識、作業系統知識、計算機網絡知識等等,所以很多人也把程式語言稱為打開計算機技術大門的鑰匙。
  • 跟我學java編程—初步認識計算機體系結構
    前面三節我們了解了什麼是電腦程式、算法和流程圖,對計算機的程序設計和算法有了初步認知,知道了電腦程式就是完成某項任務和解決一個問題而編寫的計算機指令序列。那麼,計算機是如何組成的呢?計算機提供了那些指令序列?程序在計算機是如何運行的,帶著這些問題,本節將和同學們一起初步認識計算機的體系結構。
  • 大學專業丨學編程就是一直敲代碼嗎?計算機專業到底學什麼?
    很多人覺得學計算機就等於學寫代碼,每天就是不停的敲代碼,是這樣嗎?計算機專業都學些什麼?聽筆者給你們一一道來!學計算機==寫代碼,我覺得沒什麼錯誤。計算機系正經的任務就是建模並實現,建模是通過將業務轉化為代碼的思想完成的。實現就是寫代碼,硬體也會涉及一些,但是真正去修改硬體,並不是大部分現代初中級的計算機系人員應該完成的。那屬於強電,在軟體行業已經如此龐大的今天,從各種角度來說,你學計算機,不會寫代碼是幾乎不可能的。不去寫代碼的,也是少數。
  • 計算機專業學編程,ubuntu與deepin和centos相比,哪款系統更合適
    計算機專業學編程,ubuntu與deepin和centos相比,哪款系統更合適目前在桌面作業系統中,微軟的windows在易用性及其生態方面實力最強,不過由於其各方面都非常完善,學編程的話,該系統並不合適,在編程方面,用的較多的當屬linux系統,該系統一是具有良好的開源性,二是很多系統都是基於
  • 為什麼要學計算機編程?
    因為「編程是件很有趣的事兒」酷叮貓老師覺得,編程並不是一個學習的科目,而是一個興趣的萌芽。編程會為大家帶來很多:編程能夠訓練思維。編程體現了一種抽象交互關係、 形式化方法執行的思維模式,稱為「計算思維」。
  • 小板慄學編程1-初識Python
    原創:小板慄大家好,我叫小板慄,我今年9歲了。前段時間,爸爸做了一個外星人入侵地球的遊戲給我玩,我駕駛著一艘宇宙飛船,抵擋外星人入侵地球。我每消滅一批外星人,它們的攻勢就會更加猛烈,直到外星人把我的飛船撞毀,或者我把入侵的外星人都消滅,遊戲才結束。我覺得這個遊戲非常有意思,我還給爸爸提了好多想法,神奇的是,爸爸不一會兒就能把我的想法在遊戲中實現。
  • 少兒編程僅僅是學一種計算機語言嗎?極客晨星告訴你遠不止這些
    少兒編程僅僅是學一種計算機語言嗎?極客晨星告訴你遠不止這些   賈伯斯曾說過:「人人都應該學習一門計算機語言,因為它將教會你如何思考」。
  • 從零開始怎麼學計算機編程?
    從零基礎開始學習編程成為了一種常態,可是,也正是因為我們在編程方面是零基礎,很容易導致我們選錯專業和行業。從零開始學習電腦如何才能保證學好呢?以下為大家做一個簡單的總結,希望我們能在學習時有所參考。首先,要正確認知IT專業,了解三大技術方向。
  • 有點後悔選擇了計算機專業!現在學編程,當程式設計師還有前途嗎?
    有很多同學,當時在高考後填報志願選擇了計算機專業,有些是因為自己喜歡計算機,有些則是因為父母說學計算機以後工資會比較高,工作會比較好找,因此選擇了計算機專業。 但是經過一個學期的學習,逐漸發現自己,好像不太喜歡這個東西,好像C語言有點學不明白,對編程越來越沒有興趣了!
  • 熱門計算機專業學什麼?
    計算機科學是一門包含各種各樣與計算和信息處理相關主題的系統學科,從抽象的算法分析、形式化語法等等,到更具體的主題如程式語言、程序設計、軟體和硬體等。 計算機學什麼 計算機科學領域的程序設計入門課程包括: 數據結構 計算機系統組織 計算機科學數學 自動機與形式語言理論
  • §1-2 計算機系統的組成
    一 、複習:1.計算機的發明者是誰?2.計算機有哪些主要特點? 板書:計算機系統的組成二 、新課:一)、計算機系統的組成原理1、計算機系統的基本組成 2、存儲程序控制的基本概念(1)馮.1、硬體:決定計算機軟體的運行快慢、顯示效果。
  • 大學裡的計算機專業都學什麼?
    大學裡的計算機專業除了正常的英語、高數、思政等公共基礎課外,從大一到大四會從計算機應用基礎學起,還有軟硬體學習,網頁設計、程式語言等等,但是理論學習比較多。如果你想學習軟體編程和動畫特效方面的,可以報班學習,深入了解紮實自己的基礎。
  • 學計算機就是修電腦的?計算機專業都有哪些方向?
    喜歡計算機的同學可以關注一下這些專業:計算機專業方向包括計算機科學與技術、軟體工程、網絡工程、信息安全等七八個專業。「學計算機就是修電腦的?」要注意的是,一般人所說的「會操作計算機」,也就是會使用一些現成的軟體。而計算機專業的學生要遠遠高於一般的使用者。
  • 潘石屹學編程?Python之父:並非人人都需要了解計算機發生了什麼
    學會編程在這個社會似乎已經如此重要,以至於少兒編程都已經成了培訓機構趨之若鶩的新「藍海」。但是四、五歲的小孩真的有必要學編程嗎?或者說你已經工作了大半輩子、年過半百了,還有必要像潘石屹一樣去學python嗎?Python之父Guido van Rossum最近接受了一次訪談,在訪談中他表示:「並非每個人都需要知道(計算機)裡面發生了什麼。」