計算機系統組成與基本工作原理

計算機系統知識

關鍵詞:計算機的組成、基本工作原理、體系結構、存儲系統、計算機安全、可靠性與系統性能評測。

重點:

1)計算機的組成:計算機的發展以及硬件、軟件組成。

2)計算機基本工作原理:數制,漢字編碼和CPU結構工作流程

3)計算機體系結構:體系結構的發展和分類、存儲系統、指令系統、輸入輸出技術、流水線、總線、並行處理。

4)計算機系統的可靠性、性能評估

1計算機系統組成與基本工作原理

1.1 計算機系統組成

計算機系統分爲硬件和軟件系統。計算機硬件是計算機系統中的物質基礎,是摸得見看得着的。計算機軟件是程序、數據、相關文檔的集合,包括系統軟件和應用軟件。計算機系統的組成如下:

 

1.2計算機硬件系統

計算機硬件5大組成部分:運算器、控制器、存儲器、輸入設備和輸出設備。

計算機硬件的電線結構包括:單總線結構、雙總線結構和採用通道的大型系統結構。

 

單總線結構:使用一組系統總線將計算機的各個部件連接起來,各部件通過總線交換信息。

一般用在小型或者微型計算機。

優點:易於擴充新I/O設備,I/O設備的寄存器和主存儲器可以統一編址使CPU訪問I/O 加靈活。

缺點:限制了信息傳送的吞吐率。

雙總線結構:常見的就是在內存和CPU之間設置一組專有的高速存儲總線。分爲以CPU爲中心的雙總線和以存儲器爲中心的雙總線。

 

以存儲器爲中心的雙總線結構:

主存儲器通過存儲總線和CPU交換信息,同時可以通過系統總線與I/O設備交換信息。

優點:信息傳輸效率高。

缺點:增加硬件成本。

 

cpu爲中心的雙總線結構:

優點:控制線路簡單,對I/O的總線的要求低。

缺點:CPU效率低。

採用通道的大型系統結構:一臺主機可以連接多個通道,一個通道可以連接一臺或多臺I/O設備,具有較大的擴展性。由通道控制I/O設備,減少了CPU的壓力,提高了系統效率。

1.3  基本工作原理

(1)數制轉換

10進制轉換成其他的都是除以要轉換成的那個數,也就是說轉換成二進制的就除以2,轉換成八進制的就除以8,轉換成十六進制的就除以16,然後倒取餘數。

不同的進位制數轉化爲十進制數:按權展開相加
十進制是權是10;二進制是權是2;十六進制是權是16;八進制是權是8;
例:110011(二進制數)=1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=32+16+2+1=51
1507(八進制數)=1*8^3 + 5*8^2 + 0*8^1 + 7*8^0 = 839 
2AF5(十六進制數=2*16^3 + A*16^2+ F*16^1 + 5*16^0 = 10997

二進制換算八進制 
將二進制數從右到左,三位一組,不夠補0
例:二進制數10110111011換八進制數: 
010 110 111 011 
結果爲:2673 

二進制轉換十六進制 
二進制數轉換爲十六進制數的方法也類似,從右到左,四位一組,不夠補0
如上題: 
0101 1011 1011 
結果爲:5BB

(2)機器數與碼制

各種數據在計算機中表示的形式稱爲機器數,其特點是採用二進制計數制,數的符號用01表示,小數點則隱含表示而不佔位置。機器數對應的實際數值稱爲真值。
       機器數有無符號數和帶符號數之分。無符號數表示正數,在機器數中沒有符號位。對於無符號數,若約定小數點的位置在機器數的最低位之後,則是純整數;若約定小數點的位置在機器數的最高位之前,則是純小數。對於帶符號數,機器數的最高位一晴地正負的符號位,其餘位則表示數值。若約定小數點的位置在機器數的最低數值位之後,則是純整數;若約定小數點的位置 在機器數的最高數值位之前,則是純小數位。
        爲了便於運算,帶符號的機器右數可採用原碼,反碼和補碼等不同的編碼方法,機器數的這些編碼方法稱爲碼制。
1. 原碼錶示法
    數值X的原碼記爲[X]原,最高位是符號位,0表示正號,1表示負號,其餘位表示數值的絕對值。
2.反碼錶示法
     數值X的原碼記爲[X]反,最高位是符號位,0表示正號,1表示負號,正數的反碼和原碼相同,負數的反碼則是其絕對值按位求反。
3.補碼錶示法
     數值X的原碼記爲[X]補,最高位是符號位,0表示正號,1表示負號,正數的補碼與其原碼和反碼相同,負數的補碼則等於其反碼的末尾加1
4.移碼錶示法
     .移碼錶示法是在數X上增加一個偏移量來定義的,常用於表示浮點數中的階碼。如果機器字長爲n,在偏移2的(n-1)次方的情況下,只要將將碼的符號位取反便可獲得相應的移碼錶示。

(3)漢字編碼

區位碼

   爲了使每一個漢字有一個全國統一的代碼,1980年,我國頒佈了第一個漢字編碼的國家準: GB2312-80《信息交換用漢字編碼字符集》基本集,這個字符集是我國中文信息處理技術的發展基礎,也是目前國內所有漢字系統的統一標準。

 所有的國標漢字與符號組成一個94×94的矩陣。在此方陣中,每一行稱爲一個"",每一列稱爲一個"",因此,這個方陣實際上組成了一個有94個區(區號分別爲0 194)、每個區內有94個位(位號分別爲0194)的漢字字符集。一個漢字所在的區號和位號簡單地組合在一起就構成了該漢字的"區位碼"。在漢字的區位碼中,高兩位爲區號,低兩位爲位號。

在區位碼中,01-09區爲682個特殊字符,16~87區爲漢字區,包含6763個漢字 。其中16-55區爲一級漢字(3755個最常用的漢字,按拼音字母的次序排列)56-87區爲二級漢字(3008個漢字,按部首次序排列)

·  需要注意的是:區位碼通常都是用十進制表示的,例如字的區位碼爲1947,也就說它位於19區第47個字符。

國標碼

國家標準代碼,簡稱國標碼,是中華人民共和國的中文常用漢字編碼集。國家標準強制標準冠以“GB”。現時中華人民共和國官方強制使用GB 18030標準,但較舊的計算機仍然使用GB 2312國標碼 =區位碼(16進制化--區碼和位碼分別進行16進制轉化)+2020H

機內碼

計算機只識別由01組成的代碼,ASCII碼是英文信息處理的標準編碼,漢字信息處理也必須有一個統一的標準編碼。 漢字交換碼(國標碼)主要用於漢字信息交換,我國國家標準局於19815月頒佈了《信息交換用漢字編碼字符集——基本集》,代號爲GB2312-80,共對6763個漢字和682個圖形字符進行了編碼。

其編碼原則爲:漢字用兩個字節表示,原則上,兩個字節可以表示 256×256=65536種不同的符號,作爲漢字編碼表示的基礎是可行的。但考慮到漢字編碼與其它國際通用編碼,如ASCII西文字符編碼的關係,我國國家標準局採用了加以修正的兩字節漢字編碼方案,只用了兩個字節的低7位。這個方案可以容納128×128=16384種不同的漢字,但爲了與標準ASCII碼兼容,每個字節中都不能再用32個控制功能碼和碼值爲32的空格以及127的操作碼。所以每個字節只能有94個編碼。這樣,雙七位實際能夠表示的字數是:94×94=8836個。

機內碼 = 國標碼 + 8080H
機內碼 = 區位碼(16進制化--區碼和位碼分別進行16進制轉化) + a0a0H

相互轉換

內碼轉換爲區位碼

         區位碼:  區碼=內碼高字節-0xa0

                       位碼=內碼低字節-0xa0

         例如:內碼爲:0xb9,0xfa

16進製表示的區位碼:0x19,0x5a

                  其區位碼(默認爲10進制):2590

區位碼轉換爲內碼

        內碼:  內碼高字節=區碼+0xa0

                  內碼低字節=位碼+0xa0

         例如:區位碼爲:2603

16進製表示的區位碼:0x1a,0x03

           其內碼(默認爲16進制)0xba,0xa3

字模

  漢字在顯示的時候,是以點陣的形式顯示出來的,常見到的有16*16點陣、24*24點陣、32*32點陣。比如說16*16點陣字模如下,共256Bits,佔用32 Bytes

0x00,0x00,0xf7,0x7e,0x95,0x04,0x95,0x04,0x96,0x74,0x96,0x54,0x95,0x54,0x95,0x54,0x95,0x54,0xf5,0x54,0x97,0x74,0x04,0x04,0x04,0x04,0x05,0x04,0x04,0x14,0x04,0x08

  字模顯示的時候,以兩個字節表示一行像素點,16行就構成了一個完整的字模。屏幕在顯示的時候,1顯示爲亮色,0顯示爲背景色,這樣就能把字體顯示出來。

 

字庫

  字庫,就是所有漢字字模的集合。顯然,在編排這些字模的時候需要一定的順序(規則),而這個規則就是機內碼。根據機內碼的漢字佈局,將對應的漢字字模進行整合,形成字庫文件。在使用的時候,應用程序根據漢字的機內碼,從字庫中找到對應的存儲位置,取出字模,進行顯示。機內碼就是漢字在字庫中的索引。

在區位碼中,01-09區爲682個特殊字符,16~87區爲漢字區,有效漢字6768個。在製作字庫的時候把特殊字符刪除,只使用有效漢字區。也就是說我們從第16區的第1位開始進行字模收集,當第16區收集結束,緊接着收集第17區,直到第87區編排結束。總共收集6768個漢字,佔用空間216576 Bytes

(4)CPU

CPU從邏輯上可以劃分成3個模塊,分別是控制器運算器內部寄存器,這三部分由CPU內部總線連接起來。如下所示:

 

控制器:控制單元是整個CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,對協調整個電腦有序工作極爲重要。它根據用戶預先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)確定應該進行什麼操作,然後通過操作控制器OC,按確定的時序,向相應的部件發出微操作控制信號。操作控制器OC中主要包括節拍脈衝發生器、控制矩陣、時鐘脈衝發生器、復位電路和啓停電路等控制邏輯。

運算器:是運算器的核心。可以執行算術運算(包括加減乘數等基本運算及其附加運算)和邏輯運算(包括移位、邏輯測試或兩個值比較)。相對控制單元而言,運算器接受控制單元的命令而進行動作,即運算單元所進行的全部操作都是由控制單元發出的控制信號來指揮的,所以它是執行部件。

內部寄存器:包括CPU片內緩存和寄存器組,是CPU中暫時存放數據的地方,裏面保存着那些等待處理的數據,或已經處理過的數據,CPU訪問寄存器所用的時間要比訪問內存的時間短。採用寄存器,可以減少CPU訪問內存的次數,從而提高了CPU的工作速度。但因爲受到芯片面積和集成度所限,寄存器組的容量不可能很大。寄存器組可分爲專用寄存器和通用寄存器。專用寄存器的作用是固定的,分別寄存相應的數據。而通用寄存器用途廣泛並可由程序員規定其用途,通用寄存器的數目因微處理器而異。這個是我們以後要介紹這個重點,這裏先提一下。

我們將上圖細化一下,可以得出CPU的工作原理概括如下:

 

總的來說,CPU從內存中一條一條地取出指令和相應的數據,按指令操作碼的規定,對數據進行運算處理,直到程序執行完畢爲止。
   上圖中我沒有畫總線,只是用邏輯方式對其進行呈現。原因早期Intel的微處理器,諸如8085,8086/8088CPU,普遍採用了地址總線和數據總線複用技術,即將部分(或全部)地址總線與數據總線共用CPU的一些引腳。例如8086外部地址總線有20根,數據總線複用了地址總線的前16根引腳。複用的數據總線和地址總線雖然可以少CPU的引腳數,但卻引入了控制邏輯及操作序列上的複雜性。所以,自80286開始,Intel的CPU才採用分開的地址總線和數據總線。
   不管是複用還是分開,對我們理解CPU的運行原理沒啥影響,上圖沒畫總線的目的就是怕有些人太過於追求細節,一頭紮下去,浮不起來,不能從宏觀上藐視敵人。
   OK,總結一下,CPU的運行原理就是控制單元在時序脈衝的作用下,將指令計數器裏所指向的指令地址(這個地址是在內存裏的)送到地址總線上去,然後CPU將這個地址裏的指令讀到指令寄存器進行譯碼。對於執行指令過程中所需要用到的數據,會將數據地址也送到地址總線,然後CPU把數據讀到CPU的內部存儲單元(就是內部寄存器)暫存起來,最後命令運算單元對數據進行處理加工。週而復始,一直這樣執行下去,天荒地老,海枯枝爛,直到停電。
   如果你對這段話還是覺得比較暈乎,那麼就看我們老師是怎麼講的:
   1、取指令:CPU的控制器從內存讀取一條指令並放入指令寄存器。指令的格式一般是這個樣子滴:

 

 

        操作碼就是彙編語言裏的mov,add,jmp等符號碼;操作數地址說明該指令需要的操作數所在的地方,是在內存裏還是在CPU的內部寄存器裏。
   2、指令譯碼:指令寄存器中的指令經過譯碼,決定該指令應進行何種操作(就是指令裏的操作碼)、操作數在哪裏(操作數的地址)。
   3、 執行指令,分兩個階段“取操作數”和“進行運算”。
   4、 修改指令計數器,決定下一條指令的地址。

 

                               

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章