微处理机原理与应用_第1页
微处理机原理与应用_第2页
微处理机原理与应用_第3页
微处理机原理与应用_第4页
微处理机原理与应用_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微處理機原理與應用

Microprocessor第三章微處理機的指令與程式林學儀老師(DavidLin)

國立勤益技術學院電子工程系九十五學年度第一學期1/12/20231第三章微處理機的指令與程式

3.1指令集3.2 指令的格式3.3 定址模式 3.4 精簡指令集電腦與複雜指令集電腦1/12/20232以使用者的角度描述微處理機本章以使用者的角度對微處理機的組織與架構加以描述除了定義指令集、運算碼與助憶符號等名詞外,同時也介紹可使用的指令格式、從記憶體提取資料的定址模式及常用的一些典型指令計算機中執行大量資料運算的部分是微處理機主要是由控制單元、算術邏輯單元與暫存器等三個主要部分所組成暫存器用來儲存指令執行時所產生的中間資料算術邏輯單元用來完成執行指令時所需的微運算控制單元用來監督暫存器間資料的轉移,並指揮算術邏輯單元進行各項操作1/12/202333.1指令集微處理機依指令類型而執行各種不同的功能,而指令的組合稱為指令集指令集是計算機設計者與程式設計者間的交集處,對於微處理機的設計提供了明確的規格設計微處理機時,必須花費相當大的比例來選擇硬體以實作機器指令就使用機器語言或組合語言的程式設計者而言,必須瞭解暫存器、記憶體結構、指令所支援的資料型態與每個指令執行的功能1/12/20234指令集(續)指令集代表所有微處理機能了解的指令完整的指令可使微處理機以移動或處理的方式來管理資料微處理機指令是由二進位值所組成以指令讀取時,這些二進位值可以告訴微處理機要完成的工作微處理機的指令長度與資料長度相同8位元微處理機的指令長度也是8位元1/12/20235微處理機的提取/執行週期指令在微處理機的提取週期載入指令暫存器,並在執行週期解碼控制邏輯以執行該指令所該完成的動作。1/12/20236指令必須執行的操作

1.指令必須先通知微處理機所要執行的動作,亦即下命令給微處理機例如指令通知微處理機做加法、轉移、清除、移位等動作。

2.指令必須提供位址資訊給微處理機,亦即告訴微處理機工作資料所在的位置例如指令執行記憶體資料累加到累積器的加法運算,清除累積器,轉移暫存器A的資料到暫存器B等1/12/20237指令中的運算碼與位址部份指令可以分運算碼(Operationcode,OPCode)與位址(Address)兩部份運算碼表示要執行的操作,位址表示何處執行操作多字元組指令中,第一個字元組表示運算碼,第二或第三個字元組表示位址單字元組指令也能包含位址資料,可以直接描述或隱含的方式表示位址資料後面將討論各種定址模式1/12/20238微處理機的指令型態微處理機有比基本指令型態還要多的運算碼功能強的微處理機有好幾百個指令由每個基本指令的型態變化而來運算碼可以不同的定址模式相組合,而這些組合結果使得程式設計者可以有大量的指令可供使用微處理機的定址模式是微處理機辨識資料存放位置的方式使用助憶符號解決指令由二進位數組成而難記憶的問題助憶符號是以簡寫的方式來表示指令的意義,大多數的指令碼經常是以三個字元的縮寫來表示運算碼1/12/202393.2指令的格式導論指令格式的分類四位址指令三位址指令二位址指令單位址指令零位址指令RISC指令指令的執行過程1/12/202310指令中常見的欄位指令中的位元分成數個欄位,常見的欄位運算碼欄﹕指定要執行的運算。位址欄:指定要處理的暫存器或記憶體位址。模式欄:指定要執行的運算元或有效位址。指令會因所含的位址數不同而有不同的長度,而指令格式中的位址欄個數則由暫存器的內部組織而定大多數的計算機都屬於單一累積器組織、通用暫存器組織或堆疊組織等三種1/12/202311指令基本的格式指令最基本的格式分成運算碼與運算元運算碼可用來儲存指令的代碼,不同的指令有不同的運算碼。微處理機中的指令解碼器能將運算碼解碼,使微處理機能執行運算碼所代表的運算。運算元主要是用來儲存執行運算碼時所需資料的位址,亦即處理對象的所在位址。1/12/202312指令基本的格式(續)指令中的運算碼決定要執行的運算此運算使用儲存在暫存器或記憶體中的資料程式執行時,由指令的定址模式決定運算元的讀取方式運算元實際的位置,是由定址模式指定解譯或修改指令位址欄的規則來決定1/12/202313指令格式的分類指令字組依運算元欄位的大小分類,可分四位址指令三位址指令二位址指令單位址指令RISC指令1/12/202314四位址指令指令格式包含運算碼與四個位址欄前兩個位址欄存放運算元的位址第三個位址欄存放結果的位址第四個位址欄則存下個要執行指行指令的位址優點為程式較短,指令不需依序來編寫且不需跳躍指令缺點為指令過長,須要較大的記憶體字長度才能處理,而且大部份的運算都不須要四個位址,因此會造成浪費1/12/202315四位址指令—實例運算式A(W-X)*(Y+Z)的四位址指令為1/12/202316三位址指令三位址指令格式包含運算碼與三個位址欄前兩個位址欄存放運算元的位址第三個位址欄存放結果的位址優點為程式較短,缺點是有些運算不須三個位址欄而造成浪費1/12/202317三位址指令—實例運算式A(W-X)*(Y+Z)的三位址指令為為1/12/202318二位址指令指令格式包含運算碼與兩個位址欄兩個位址欄存放運算元的位址,運算結果則存於其中一個運算元(視機器不同有不同的設定)二位址指令的優點是較短的記憶體長度,卻有程式較長的缺點1/12/202319二位址指令—實例運算式A(W-X)*(Y+Z)的二位址指令為1/12/202320單位址指令指令格式包含運算碼與一個位址欄利用微處理機內的累積器作運算,並將運算結果存回累積器單位址記憶體使用更少的記憶體字組長度,因此更易於設計,卻有使程式更長的缺點1/12/202321單位址指令—實例運算式A(W-X)*(Y+Z)的單位址指令為1/12/202322零位址指令指令格式只包含運算碼例如控制指令STOP,RETURN等不須運算元即可操作堆疊式計算機(StackComputer)中的運算指令並不須要指定運算元,但PUSH與POP兩個指令一般須指定一個運算元零位址指令的優點為處理方式較容易,且機器組織結構較簡單,但有速度較慢的缺點1/12/202323零位址指令—實例運算式A(W-X)*(Y+Z)的零位址指令為(top代表堆疊頂端位址)1/12/202324RISC(精簡指令集計算機)指令典型的RISC指令只使用載入與儲存指令指令集在微處理機與記憶體的溝通方面,只使用載入與儲存指令;其他指令全都由微處理機的暫存器來執行,因此不須存取記憶體RISC類型下,微處理機程式包含使用記憶體與暫存器位址指令STORE與LOAD,以及使用指定三個處理暫存器位址的計算型指令1/12/202325RISC指令—實例運算式A(W-X)*(Y+Z)的RISC指令為1/12/2023263.2.3指令的執行過程指令中的運算碼決定要執行的運算,而此運算則是使用儲存在暫存器或記憶體中的資料程式在執行時,由指令的定址模式決定運算元的讀取方式運算元實際的位置,由定址模式指定解譯或修改指令位址欄的規則來決定1/12/202327指令的基本運算週期微處理機執行指令時的六個步驟從記憶單元提取指令,解碼所提取的指令、計算有效位址、從記憶體提取運算元、執行指令、存放結果其中前半段為提取週期(Fetchcycle),後半段為執行週期(Executioncycle),而完成提取及執行一個指令所需的時間稱為指令週期微處理機必須經過一個完整的指令週期來執行指令1/12/202328以管線技術提升指令執行速度指令執行若是以循序的方式將會非常沒有效率即在提取、解碼、執行完指令後,又回到原來的程序(提取、執行、解碼)來執行下個指令以管線(Pipelining)技術來提升指令執行的速度改善方法是使指令的提取與執行能重疊處理由於指令執行時,只使用算術邏輯單元,而指令的提取則是微處理機對記憶體定址的動作,彼此之間並無關聯,因此能以重疊的方式來處理1/12/2023293.3定址模式定址法依有效位址求法的不同可分成立即定址模式(ImmediateAddressingMode)直接定址模式(DirectAddressingMode)間接定址模式(IndirectAddressingMode)隱含定址模式(ImpliedAddressingMode)暫存器定址模式(RegisterAddressingMode)包含暫存器直接定址模式與暫存器間接定址模式索引定址模式(IndexedAddressingMode)相對定址模式(RelativeAddressingMode)基底暫存器定址模式(BaseAddressingMode)自動遞增或遞減定址模式1/12/202330定址模式概述微處理機指令的基本格式含運算碼與位址其中位址只能指出暫存器、記憶體位置、或輸入/輸出元件三種事物雖然大多數微處理機的指令長度是可變的,但不表示指令字組的位元數是可變的表示資料方式的部份稱為微處理機的定址模式一般的指令格式除了運算碼與位址欄外,還須有負責解釋位址欄內含值的意義與如何使用的部份1/12/202331定址模式概述(續)控制單元從指令中的位址欄取得記憶體中的運算元位址欄的值可能即為運算元的位址,但也可能運算元的位址是計算位址欄的值而獲得若要區別各種不同的定址模式,必須先弄清楚指令的位址部分與指令執行時採用的有效位址有效位址(Effectiveaddress)可從指定的位址模式計算所得到的記憶體位址有效位址在計算型指令中即為運算元的位址,而在分支型指令中則為控制分支的位址1/12/202332定址模式概述(續)定址是各種存取運算元位址的方法目的在減少位址欄長度、增加定址範圍與增加程式設計的彈性定址法依有效位址求法的不同可分成立即定址模式,直接定址模式,間接定址模式,隱含定址模式,暫存器定址模式,索引定址模式,相對定址模式,基底暫存器定址模式,自動遞增或遞減定址模式1/12/2023333.3.1立即定址法指令的第一個位元組是運算碼,後面的運算元欄即為資料資料可能有一個或二個位元組,並由程式設計者所提供於立即定址只需運算碼與所需運算的資料,不需對記憶體位置定址以找尋資料,因此速度最快,但也因而有缺乏彈性的缺點1/12/2023343.3.2直接定址模式指令中的第一個位元組是運算碼,第二或第三個位元組是記憶體位址記憶體位址的值即為工作資料的實際位址(即有效位址),只需一次對應即能找到所需要的值1/12/202335直接定址模式(續)直接定址是最簡單的定址模式,由程式設計者直接給予所需資料的記憶體位址缺點是定址範圍受限於運算元長度使用直接定址會增加微處理機週期微處理機必須先提取指令的運算碼,在指令解碼後必須再提取另外兩個位元組的位址資料這兩個位元組構成資料存放的記憶體位址,而每個提取操作都會增加一個微處理機週期當運算碼與這兩個位址資料位元組都被提取後,微處理機仍然再須一個微處理機週期來執行指令1/12/202336直接定址模式—實例指令“LOAD000DH,A”(將A的值存於位址000DH)1/12/202337直接定址模式—實例(續)程式執行後的暫存器與記憶體值1/12/2023383.3.3隱含定址模式單位元組指令,其運算碼部分已隱含定義了指令的運算若要用單位元組指令來表示資料,就必須使特殊暫存器、暫存器對或暫存器對組成位址指標隱含定址模式指令是速度最快的指令由於微處理機完成一個指令包含指令的提取與執行,而此單位元組的指令執行可在兩個微處理機週期完成,其中包含一個週期的提取動作與一個週期的執行1/12/202339隱含定址模式—實例隱含定址指令MOVA,B

將暫存器A的值轉移到暫存器B,此單位元組指令包含轉移運算碼與資料來源暫存器A、資料目的暫存器B

1/12/2023403.3.4間接定址模式指令使用記憶體位置存放運算元位址,此時指令的有效位址是運算元所指位址的內含值(間接位址)此間接位址才是運算元的真正位址,所以此定址型態稱為間接定址1/12/202341間接定址模式(續)間接定址模式類似暫存器間接定址模式使用時微處理機必須讀取並求得間接位址,如此才能取得其運算元位址必須額外的主記憶體存取,使得其操作速度較慢可產生類似指標(Pointer)的功能應用上,分支操作有時會使用到間接定址1/12/2023423.3.5暫存器定址模式暫存器定址(RegisterAddressing)模式分成兩種暫存器直接定址法暫存間器間接定址法

1/12/202343暫存器直接定址模式運算元是在微處理機的暫存器中即運算元指定的暫存器內含值即為所需的資料1/12/202344暫存器間接定址模式指令指定微處理機中的一個暫存器,而此暫存的內含值是運算元在記憶體中的位址有效位址是運算元指定暫存器內含值代表的位址1/12/202345暫存器間接定址模式(續)選到的暫存器內容是運算元的位址,而不是運算元本身使用暫存器間接定址指令前,須先確定運算元的記憶位址已先存入要處理的暫存器由於指令本身不含資料對於須經常將資料移出/輸入記憶體而言,使用暫存器間接定址是很方便特別是在資料以串列型式或檔案型式出現的資料在選擇暫存器位址欄所需的位元數時,暫存器間接定址比暫存器直接定址所需的還少1/12/2023463.3.6索引定址模式索引定址方式是將索引暫存器的內容與指令的位址相加以得到有效位址利用一個包含索引值的暫存器(稱為索引暫存器)來索引定址1/12/202347索引定址模式(續)指令的位址欄定義記憶體中的資料陣列起始位址陣列中的每個運算元位在相對於起始位址一段距離的位置,而起始位址與運算元的距離即為索引暫存器中的索引值在索引暫存器加入適當的索引值,就可用同一個指令來存取陣列中的任何運算元1/12/202348索引定址模式(續)以運算元的內含值與索引暫存器相加的結果,當做指向記憶體位址的指標,因而能有效存取陣列的元素可擴大定址範圍,減少定址欄位元數的優點缺點是必須配合索引暫存器使用若索引定址指令在其格式中並無位址欄時,此指令即成為暫存器間接定址模式1/12/2023493.3.7相對定址模式有效位址為指令的運算元與目前程式計數器的內含值相加有效位址於記憶體中的位置與下個指令的位址有關1/12/202350相對定址模式(續)指令運算元通常是有號數(以2補數表示),因此可以是正數或負數相對定址模式與索引定址模式非常類似,但兩者之間仍有些不同指令的偏移值是依不同的定址模式而加上不同的暫存器內含值,而相對定址的偏移值是相對於目前程式計數器的內含值相對定址使用2補數表示,因此可以於偏移值的最高有效位元值為0時向前分支(跳躍),1時向後分支(跳躍)1/12/202351相對定址模式(續)相對定址可以寫出與位置無關的程式碼此與位置無關的程式碼經常稱為可重置碼或相對碼程式碼位址是以程式計數器內含值的相對位址來表示,有效位址隨程式計數器的變動而改變,因此相同的程式碼可以存放於任意的記憶體位址1/12/2023523.3.8基底定址模式有效位址為基底暫存器的內含值與指令的運算元相加1/12/202353基底定址模式(續)此模式的位址以基底暫存器的內含值為主,使用者能調整運算元的內含值以求得相對於基底暫存器內含值的變化基底定址模式與索引定址模式的有效位址相當類似,其差別在所使用的暫存器主要不同點在使用方式而不在計算位址的方式索引暫存器的內含值是相對於指令運算元的索引值;基底暫存器存有基底位址,以指令的位址欄(運算元)做為相對於此基底位址的位移量1/12/202354基底定址模式(續)基底暫存器通常並沒有指令可供使用,但由於索引暫存器存有索引值,因此能經由指令而加以運用基底位址是用來確定程式起始位址的基礎,除非程式全部進行重定位(Relocation)等動作,否則基底位址不能隨便改變1/12/2023553.3.9自動遞增或遞減定址模式除了暫存器值會在記憶體存取前(或後)遞增或遞減之外,與暫存器間接定址模式類似此操作可以使用遞增或遞減指令完成,但因其使用非常頻繁,所以有些計算機在資料存取後,自動遞增或遞減指定暫存器內容來取得有效位址1/12/2023563.3.10定址模式的數值實例指令“載入AC,400”1/12/202357定址模式的數值實例(續)1/12/2023583.4精簡指令集電腦與複雜指令集電腦

指令集的設計有複雜指令集(ComplexInstructionSetComputer,CISC)與精簡指令集(ReducedInstructionSetComputerRISC)兩種3.4.1CISC與RISC的比較3.4.2電腦系統效能評估1/12/2023593.4.1CISC與RISC的比較大多數電腦系統採用微程式型記憶體原因指令集設計者可以很容易完成複雜的指令微程式價格遠比傳統控制單元低廉很容易增加或改善指令(增加指令效能或更正錯誤)。複雜的作業如開機載入,錯誤更正等都需要微程式1/12/202360微程式控制單元通常是使用小且高速的記憶體來存放微程式,因此控制單元在存取這些微程式(控制碼)時,速度會比存取記憶體還快由此可推論得知,以微碼(Microcode)構成的複雜指令,將比相同功能但由一連串較簡單機器碼構成的指令有更高的執行速度1/12/202361CISC結構主要目的是為高階語言的每個敘述都提供個別的機器指令CISC結構的主要特色有大量的指令,通常有100到250個指令。有些指令可用來執行特殊的工作,但並不常用到。有多種定址模式,通常有5到20種不同模式。有不相同長度的指令格武。有直接操作記憶體運算元的指令1/12/202362CISC結構(續)雖然CISC微處理機也具有只使用暫存器的指令,但其它的運算模式則是朝使高階語言編譯簡化的方向來設計當指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论