• 沒有找到結果。

計算機指令及架構

N/A
N/A
Protected

Academic year: 2022

Share "計算機指令及架構"

Copied!
4
0
0

加載中.... (立即查看全文)

全文

(1)

計算機指令及架構

指令集架構,是電腦系統結構的一部分,其與程式設計有關,指令集架構包含對 資料型別,指令,暫存器,addressing mode,memory architecture,中斷以及異 常處理的處理,另外還有 I/O。指令集架構包含一系列的 opcode (機器語言),以 及處理器提出的命令。

指令集架構可以藉微架構來執行工作,微架構存在於電腦的處理器中,指令集架 構藉由微架構來工作,沒有微架構的話,指令集架構就只是一串機器語言,使用 不同微架構的電腦可以共用一個指令集。 例如,Intel 的 Pentium 和 AMD 的 AMD Athlon,這兩者採用同一版本的 x86 指令集架構,即使這兩者的微架構並不同。

一些虛擬機器支援 Smalltalk,Java 虛擬機器,微軟的通用語言執行庫虛擬機器,

他們的指令集架構將 bytecode 翻譯成自然的機器語言並執行,全美達實作了能 編譯 x86 指令的 VLIW 處理器。

機器語言

機器語言是由敘述和指令所組成的。一個指令是由下面幾個部分所組成:

所使用的暫存器的編號。

特定記憶體的位置或是偏移量。

定址模式,找到特定的記憶體位置,以得到數字。

複雜的操作可以藉由將簡單的指令合併而達成,其為連續的執行,也可以藉控制 流程來執行指令。

指令的型態

有效的指令操作須包含:

資料處理與記憶體操作

將暫存器的值(一個值代表中央處理器內一個暫時的位置)設為固定值。

將資料自記憶體移到暫存器,或是反過來。

從硬體內讀取或寫入資料。

算術邏輯

對兩個儲存於暫存器的數字進行 add,subtract,multiply,divide, 將結 果放到一個暫存器內,一個或是更多的旗標可能被設置在 status register 內。

位操作,藉對兩組數字(為兩串的數字,都由零與一構成,分別儲存於 兩個暫存器內)執行邏輯與和 邏輯或,還有對一個暫存器的整串數字執行邏輯

(2)

非。

比較兩筆數字(例如比大小,或是比是否一樣) 控制流程

分支,跳到程式的另一個位置去執行程式。

分支預測,假設某一條件成立,就跳到程式的另一個位置。

間接分支,在跳到另一個位置之前,將現在所執行的指令的下一個指令 的位置儲存起來,作為子程式執行完返回的地方。

複雜指令

一些電腦在他們的指令集架構內包含複雜指令。複雜指令包含:

將許多暫存器存成堆疊的形式。

移動記憶體內大筆的資料。

複雜或是浮點數運算(正弦,餘弦,平方根等等) 執行 test-and-set 指令。

執行數字存在記憶體而非暫存器的運算

有一種複雜指令單指令流多資料流,英文全名是 Single-Instruction Stream

Multiple-Data Stream。或是向量指令,這是一種可以在同一時間對多筆資料進行 相同運算的操作。SIMD 有能力在短時間內將大筆的向量和矩陣計算完成。SIMD 指令使平行計算變得簡單,各種 SIMD 指令集被開發出來,例如 MMX,3DNow!

以及 AltiVec。

指令的組成

一條指令往往有好幾個區塊,這些區塊包含要做的運算(加或減),可能還包含資 料的原始或是目的地位置,以及常數。圖中的 MIPS "Add" 指令允許使用者選擇 哪個暫存器是資料來源以及哪一個暫存器是要存運算後的結果,還有一個常數。

在傳統的架構上,一條指令包含 opcode,表示運算的方式,以及零個或是更多 的運算元,有些像是運算元的數字可能指的是暫存器的編號,還有記憶體位置,

或是文字資料。

在超長指令字 (VLIW)的結構中,包含了許多微指令,藉此將複雜的指令分解為 簡單的指令。

指令的長度

指令長度的範圍可以說是相當廣泛,從微控制機的 4 bit,到 VLIW 系統的數百 bit。

在個人電腦,大型電腦,超級電腦內的處理器,其內部的指令長度介於 8 到 64 bits(在 x86 處理器結構內,最長的指令長達 15 bytes,等於 120 bits)。在一個指

(3)

令集架構內,不同的指令可能會有不同長度。在一些結構,特別是大部分的精簡 指令集 (RISC),指令是固定的長度,長度對應到結構內一個 字的大小。在其他 結構,長度則是 byte 的整數被或是一個 halfword。

設計

對微處理器而有兩種指令集。第一種是複雜指令集(Complex Instruction Set Computer),擁有許多不同的指令。在 1970 年代,許多機構,像是 IBM,發現有 許多指令是不需要的。結果就產生了精簡指令集(Reduced Instruction Set

Computer),它所包含的指令就比較少。精簡的指令集可以提供比較高的速度,

使處理器的尺寸縮小,以及較少的電力損耗。 然而,比較複雜的指令集較容易 使工作更完善,記憶體及快取的效率較高, 以及較為簡單的程式碼。

一些指令集保留了一個或多個的 opcode,以執行系統調用或軟體中斷。

指令集的使用

在設計處理器內的微架構時,工程師使用藉電路連接的區塊來架構,區塊用來表 示加法器,乘法器,計數器,暫存器,算術邏輯單元等等,暫存器轉移語言通常 被用來描述被解碼的指令,指令是藉由微架構來執行指令。 有兩種基本的方法 來建構控制單元,藉控制單元,以微架構作為通路來執行指令:

早期的電腦和採用精簡指令集的電腦藉將電路接線(像是微架構剩下的部 分)。

其他的裝置使用微程序來達成 — 像是電晶體 ROM 或 PLA (即使 RAM 已使 用很久)。

電腦微處理器的指令集架構(Instruction Set Architecture)常見的有三種:

複雜指令集運算(Complex Instruction Set Computing,CISC)

目前 x86 架構微處理器如 Intel 的 Pentium/Celeron/Xeon 與 AMD 的

Athlon/Duron/Sempron;以及其 64 位擴展系統的 x86-64 架構的 Intel 64 的 Intel Core/Core2/Pentium/Xeon 與 AMD64 的 Phenom II/Phenom/Athlon 64/Opteron 都 屬於 CISC 系列。主要針對的作業系統是微軟的 Windows。另外 Linux,一些 UNIX 等,都可以運行在 x86(CISC)架構的微處理器。

精簡指令集運算(Reduced Instruction Set Computing,RISC)

(4)

RISC 這種指令集運算包括 HP 的 PA-RISC,IBM 的 PowerPC,Compaq(被併 入 HP)的 Alpha,MIPS 公司的 MIPS,SUN 公司的 SPARC 等。目前只有 UNIX,Linux,

MacOS 等作業系統運行在 RISC 處理器上。

顯式並行指令集運算(Explicitly Parallel Instruction Computing,EPIC)

EPIC乃先進的全新指令集運算,只有 Intel 的 IA-64 架構的純 64 位微處理器 的 Itanium/Itanium 2。EPIC 指令集運算的 IA-64 架構主要針對的作業系統是微軟 64 位安騰版的 Windows XP 以及 64 位安騰版的 Windows Server 2003。另外一些 64 位的 Linux,一些 64 位的 UNIX 也可以運行 IA-64(EPIC)架構。

超長指令字指令集運算(VLIW)

通過將多條指令放入一個指令字,有效的提高了 CPU 各個計算功能部件的 利用效率,提高了程序的性能

參考文獻

相關文件

現今的架構主要是一發電源配上一變流器的架構,都為一比一的架 構。而本論文為一比多的架構;在一般架構下,一太陽能電池配對一

„ Complex Instruction Set Computers (CISC). „ complicated

[r]

內線參數區 參數儲存於 CALL 指令後,副

[r]

之意,此指依照命令動作的意義。所謂伺服 系統,就是依照指示命令動作所構成的控制

在教學上,鷹架是師生互動的方式與策略,目的在引 發學生發展或建造新的能力。透過鷹架的支持,教師 可引發學生參與,減輕學生學習負擔、幫助學生管理

前面介紹的幾個集合的運算 (交集, 聯集和差集) 在作用後所得的集合仍在宇集中, 接著 要介紹的這兩種運算在作用後所得的集合很可能會不在原先的宇集中 (當然此時要擴大我