計算機體系結構 和 計算機組成的區別
P7
1. 計算機體系結構
計算機體系結構 是那些能夠被 程序員所見到的 計算機系統的屬性, 即 概念性的結構與功能特性.
計算機系統的屬性通常是指用機器語言編程的 程序員(也包括 匯編語言程序設計者 和 匯編程序設計者)所看到的 傳統機器的屬性,
包括 指令集, 數據類型, 存儲器尋址技術, I/O機理等, 大都屬於抽象的屬性.
由於計算機系統具有多級層次結構, 因此, 站在不同層次上 編程的程序員 所看到的 計算機屬性 也是各不相同的.
例如, 用 高級語言 編程的程序員可以把 IBM PC 與 RS6000 兩種機器看成是 同一屬性的機器.
可是, 對使用 匯編語言 編程的程序員來說, IBM PC 與 RS6000 是 兩種不同的機器.
因為 程序員所看到的 這兩種機器的 屬性, 如 指令集, 數據類型, 尋址技術等, 都完全不同,
因此, 認為這兩種機器的結構是 各不相同的.
2. 計算機組成
計算機組成 是指 如何實現計算機體系結構所體現的屬性, 它包含了許多對程序員來說是透明的硬件細節.
例如, 指令系統體現了 機器的屬性, 這是屬於 計算機結構的問題.
但指令的實現, 即如何取指令, 分析指令, 取操作數, 運算, 送結果等, 這些都屬於計算機組成的問題.
因此, 當兩台機器指令系統相同是, 只能認為它們具有相同的結構.
至於這兩台機器如何實現其指令的功能, 完全可以不同, 則它們的組成方式是不同的.
例如, 一台機器是否具備乘法指令的功能, 這是一個結構問題, 可是, 實現乘法指令采用什么方式, 則是一個組成問題.
實現乘法指令可以采用一個專門的乘法電路, 也可以采用 連續相加 的 加法電路來實現, 這兩者的區別就是計算機組成的區別.
究竟應該采用哪種方式來組成計算機, 要考慮到各種因素, 如 乘法指令使用的 頻度, 兩種方法的運行速度, 兩種電路的 體積, 價格, 可靠性等.
3. 總結
不論是過去還是現在, 區分 計算機結構 和 計算機組成 這兩個概念都是十分重要的.
例如, 許多計算機制造商向用戶提供一系列體系結構相同的計算機, 而它們的組成卻又相當大的差別,
即使是同一系列不同型號的機器, 其價格和性能也是有 極大差異的.
因此, 只知其結構, 不知其組成, 就選不好性能價格比最合適的機器.
此外, 一種機器的體系結構可能維持許多年, 但機器的組成卻會隨着計算機技術的發展而不斷變化,
例如, 1970年首次推出的額 IBM System/370結構, 它包含了很多機型.
一般需求的用戶可以買價格便宜的低速機型; 對需求高的用戶, 可以買一台升級的價格稍貴的機型, 而不必拋棄原來已開發的軟件.
許多年來, 不斷推出性能更高, 價格更低的機型, 新機型總歸保留着原來機器的結構, 使用戶的軟件投資不致浪費.
本書 主要研究 計算機的組成, 有關 計算機體系結構 的內容 將在 "計算機體系結構" 課程中講述
參考文獻
[1] 唐朔飛. 計算機組成原理[M]. 3版. 北京: 高等教育出版社,2020.