❶ 微服務優點
微服務是一種軟體架構風格,它是以專注於單一責任與功能的小型功能區塊為基礎,利用模組化的方式組合出復雜的大型應用程序,各功能區塊使用與語言無關的 API(例如 REST)集相互通訊,且每個服務可以被單獨部署,在微服務軟體架構風格概念被提出來的初期,它具備以下三個核心特點:
1. 微服務為大型系統而生。 通常我們在系統架構設計上面臨的問題都與系統的大小相關,隨著業務的快速增長,會帶來系統流量壓力和復雜度的上升,系統的可維護性和可擴展性成為架構設計的主要考慮因素,微服務架構設計理念通過小而美的業務拆分,通過分而自治來實現復雜系統的優雅設計實現。
2. 微服務架構是面向結果的。 微服務架構設計風格的產生並非是出於學術或為標准而標準的設計,而是在軟體架構設計領域不斷演進過程中,面對實際工業界所遇到問題,而出現的面向解決實際問題的架構設計風格。
3. 專注於服務的可替代性來設計。 微服務架構設計風格核心要解決的問題之一便是如何便利地在大型系統中進行系統組件的維護和替換,且不影響整體系統穩定性。微服務帶來的好處
獨立的可擴展性,每個微服務都可以獨立進行橫向或縱向擴展,根據業務實際增長情況來進行快速擴展;
獨立的可升級性,每個微服務都可以獨立進行服務升級、更新,不用依賴於其它服務,結合持續集成工具可以進行持續發布,開發人員就可以獨立快速完成服務升級發布流程;
易維護性,每個微服務的代碼均只專注於完成該單個業務范疇的事情,因此微服務項目代碼數量將減少至IDE可以快速載入的大小,這樣可以提高了代碼的可讀性,進而可以提高研發人員的生產效率;
語言無關性,研發人員可以選用自己最為熟悉的語言和框架來完成他們的微服務項目(當然,一般根據每個公司的實際技術棧需要來了),這樣在面對新技術或新框架的選用時,微服務能夠更好地進行快速響應;
故障和資源的隔離性,在系統中出現不好的資源操作行為時,例如內存泄露、資料庫連接未關閉等情況,將僅僅只會影響單個微服務;
優化跨團隊溝通,如果要完全實踐微服務架構設計風格,研發團隊勢必會按照新的原則來進行劃分,由之前的按照技能、職能劃分的方式變為按照業務(單個微服務)來進行劃分,如此這般團隊里將有各個方向技能的研發人員,溝通效率上來說要優於之前按照技能進行劃分的組織架構;
原生基於「雲」的系統架構設計,基於微服務架構設計風格,我們能構建出來原生對於「雲」具備超高友好度的系統,與常用容器工具如Docker能夠很方便地結合,構建持續發布系統與IaaS、PaaS平台對接,使其能夠方便的部署於各類「雲」上,如公用雲、私有雲以及混合雲。
❷ 微程序控制器如何產生微操作控制信號這種控制器有何優缺點
第二個問題,問這種控制器有何特點倒是好說。
簡單講,相比於 硬連線控制器(也就是組合邏輯控制器),微程序控制器是採用存儲微程序的方式實現控制信號的輸出的(而硬連線控制器是採用的物理布線方式)。這一點讓它更容易擴充指令,調試等。(硬連線控制器則不然,因為其內部結構已定,不便於再改變)。
但它的缺點是運算速度不及硬連線控制器。
至於說具體如何產生控制信號,教材我看了兩遍,還是覺得講的雲里霧里的不是太明白。
❸ 微程序微命令微指令概念區別
區別如下:
1、概念不同。
微程序(microprogram)是實現程序的一種手段,具體就是將一條機器指令編寫成一段微程序。在有微程序的系統中,當CPU執行機器指令時,會在控制存儲器里尋找與該機器指令對應的微程序,取出相應的微指令來控制執行各個微操作,從而完成該程序語句的功能。
微指令是指在微程序控制的計算機中,同時發出的控制信號所執行的一組微操作。
微命令即控制部件通過控制線向執行部件發出各種控制命令。在微指令的控制欄位中,每一位代表一個微命令。
2、包含內容不同。
每一個微程序包含若干條微指令,在微指令的控制欄位中,每一位代表一個微命令。
3、功能不同。
微程序用於實現機器指令的功能。微指令用於完成一個功能相對完整的操作。微命令一般用於控制數據通路上門的打開/關閉,或者功能選擇。
❹ 影響多處理器計算性能的因素主要有哪些 大數據
CPU的性能和速度取決於時鍾頻率(一般以赫茲或千兆赫茲計算,即與Ghz)和每周期可處理的指令(IPC),兩者合並起來就是每秒可處理的指令(IPS)。
IPS值代表了CPU在幾種人工指令序列下「高峰期」的運行率,指示和應用。而現實中CPU組成的混合指令和應用,可能需要比IPS值顯示的,用更長的時間來完成。而內存層次結構的性能也大大影響中央處理器的性能。
通常工程師便用各種已標准化的測試去測試CPU的性能,已標准化的測試通常被稱為「基準」(Benchmarks)。如SPECint,此軟仵試圖模擬現實中的環境。測量各常用的應用程序,試圖得出現實中CPU的績效。
提高電腦的處理性能,亦使用多核心處理器。原理基本上是一個集成電路插入兩個以上的個別處理器(意義上稱為核心)。在理想的情況下,雙核心處理器性能將是宏內核處理器的兩倍。
然而,在現實中,因不完善的軟體演算法,多核心處理器性能增益遠遠低於理論,增益只有50%左右。但增加核心數量的處理器,依然可增加一台計算機可以處理的工作量。
這意味著該處理器可以處理大量的不同步的指令和事件,可分擔第一核心不堪重負的工作。有時,第二核心將和相鄰核心同時處理相同的任務,以防止崩潰。
(4)微程序為什麼容易變更擴展閱讀:
中央處理器工作原理
CPU的主要工作原理,不管它的外觀如何,都是執行存儲在一個叫做程序的程序中的一系列指令。這里討論的設備遵循常用的vonNeumannarchitecture。程序以一系列數字的形式存儲在計算機內存中。幾乎所有馮·諾伊曼的cpu都要分四個階段工作:提取、解碼、執行和回寫。
在第一階段,從程序存儲器中提取和檢索指令(用於一個數字或一系列數字)。程序內存的位置由一個程序計數器指定,該程序計數器保存一個標識當前程序位置的數值。
換句話說,程序計數器在當前程序中跟蹤CPU。指令被提取後,PC機根據指令的長度增加存儲單元。指令提取常常需要從相對較慢的內存中查找,這導致CPU等待指令被發送進來。這個問題主要在現代處理器的緩存和流水線架構中得到解決(見下文)。
CPU根據從內存中提取的指令來決定它的執行行為。在解碼階段,指令被分解成有意義的片段。根據CPU的指令集架構(ISA)的定義將數值解釋為指令。
指令值的一部分是指示要執行哪些操作的操作數。其他值通常為指令提供必要的信息,比如加法操作的目標。這種操作的目標可以提供一個常數值(即一個立即值),或者一個空間的可定址值:一個寄存器或一個內存地址,由定址模式決定。
在舊的設計中,CPU的指令解碼部分是一個不可變的硬體設備。然而,在許多抽象而復雜的cpu和ISAs中,一個微程序經常被用來幫助將指令轉換成各種形式的信號。這些微程序通常可以在已完成的CPU中重寫,以便更容易地更改解碼指令。
在提取和解碼階段之後,接下來是執行階段。在此階段,您將連接到能夠執行所需計算的各種CPU部件。例如,如果需要一個加法操作,算術邏輯單元將連接到一組輸入和一組輸出。輸入提供要添加的值,輸出將包含和結果。
ALU包含一個電路系統,在輸出端執行簡單的通用和邏輯操作(如加法和位操作)。如果加法操作產生的結果太大,CPU無法處理,則可以在標志寄存器中設置溢出標志(請參閱下面的數值精度討論)。
最後一個階段,寫回,只是以一種格式寫回執行階段的結果。結果通常被寫入到CPU內的寄存器中,以便後續指令快速訪問。在其他情況下,結果可能寫得更慢,比如在更大更便宜的主存中。某些類型的指令操作程序計數器而不直接產生結果數據。
這些通常被稱為「跳轉」,並帶來循環行為、條件執行(通過跳過條件)和函數[跳轉]到您的程序。許多指令也改變標志寄存器的狀態位。這些標志可以用來影響程序行為,因為它們通常顯示各種結果。
例如,使用「比較」指令確定兩個值的大小,並根據比較結果在標志寄存器中設置一個值。這個標志可以被隨後的跳轉指令用來確定程序的方向。
在執行指令並寫回結果數據後,程序計數器的值將遞增,重復整個過程,下一個指令周期將正常提取下一條順序指令。
如果跳轉指令完成,程序計數器被修改為跳轉指令的地址,程序繼續正常執行。許多復雜的cpu可以同時提取多條指令,對其進行解碼並同時執行。本節通常指的是「經典RISC管道」,它實際上在使用簡單cpu(通常稱為微控制器)的許多電子設備中迅速流行起來。
❺ 微程序運行的依據是什麼
微程序(microprogram)是英國劍橋大學教授M.V.Wilkes在1951年首先提出的,它是實現程序的一種手段,具體就是將一條機器指令編寫成一段微程序。每一個微程序包含若干條微指令,每一條微指令對應一條或多條微操作。在有微程序的系統中,CPU內部有一個控制存儲器,用於存放各種機器指令對應的微程序段。當CPU執行機器指令時,會在控制存儲器里尋找與該機器指令對應的微程序,取出相應的微指令來控制執行各個微操作,從而完成該程序語句的功能。微程序設計技術,指的是利用軟體技術來實現硬體設計的一門技術。
微程序控制方法由於規整性好,靈活方便,通用性強,因此在包括計算機在內的各種復雜數字系統控制器的設計中得到了廣泛應用,成為控制器的主流設計方法之一。
程序控制的基本思想,就是仿照通常的解題程序的方法,把所有的控制命令信號匯集在一起編碼成所謂的微指令,存放在一個EPROM里。系統運行時,一條又一條地讀出這些微指令,從而產生執行部件所需要的各種控制信號,以控制各邏輯部件執行所規定的操作。
一個數字系統基本上可以劃分成兩大部分——控制部件和執行部件,如圖6.26所示。控制器就是控制部件。而ALU、寄存器組、存儲器RAM等,相對控制器來講,就是執行部件。那麼兩者之間是如何進行聯系的呢?
控制部件與執行部件的聯系之一,是通過控制線。控制部件通過控制線向執行部件發出各種控制命令,我們把這種控制命令稱為微命令,而執行部件接受微命令所執行的操作叫作微操作。
控制部件與執行部件之間的另一聯系是反饋信息。例如由於運算處理中正在處理的數據因其結果特徵(正、負、進位、溢出等)而影響下一個操作的執行,因此就需要規定條件測試或狀態測試。執行部件通過反饋線向控制部件反映當前操作的結果情況,以便使控制部件根據執行部件的「狀態」標志下達新的微命令。
在系統的一個基本周期(又稱機器周期,一般由幾個時鍾周期組成)中,一組實現一定操作功能的微命令的組合,構成一條微指令。
這里要強調兩點:
第一,一條微指令的有效持續時間為一個系統基本周期,它表示從R0M中讀出微指令與執行這條微指令的時間總和。當從ROM中讀出下一條微指令後,當前的這條微指令即失效。
第二,一條微指令中包含若干個微命令,它們分頭並行地控制執行部件進行相應的微操作。
微指令除給出微命令信息外,還應給出測試判別信息。一旦出現此信息,執行這條微指令時要對系統的有關「狀態標志」進行測試,從而實現控制演算法流程圖的條件分支。微指令中還包含一個下址欄位,該欄位將指明ROM中下一條微指令的地址。
圖6.27 微指令的典型結構
圖6.27示出了微指令的典型結構,長條框內的符號X表示一個二進制位(bit)。其中微命令欄位給出執行部件的控制信號:X編碼為1,表示有微命令,X編碼為0表示無微命令。測試判別欄位和下一地址欄位一起實現順序控制:當測試判別欄位無效時(X編碼為0),下址欄位信息即是下條微指令的地址;當判別測試欄位有效時(其中一個X編碼為1),根據執行部件反饋線上的標志信息對下址欄位信息進行修改,修改好的地址即為下條微指令的地址。
微程序是由若干條微指令組成的序列。在計算機中,一條機器指令的功能可由若干條微指令組成的序列來解釋和執行,因此機器執行一條指令的過程,也就是執行一個相應的微程序的過程。就一般數字系統而言,按照我們在第6.5節中使用的概念,微程序實質上就是將控制演算法流程圖用EPROM等來實現。
微程序概念的引入使大型復雜數字系統控制器的設計發生了革命性的變化。因為微程序技術可代替硬體布線的控制技術,即由門電路和觸發器等組成的硬體網路可被存有控制代碼的EPROM存儲器所取代[1]
。
❻ 電腦知識
中央處理器(英文Central Processing Unit,CPU)是一台計算機的運算核心和控制核心。CPU、內部存儲器和輸入/輸出設備是電子計算機三大核心部件。其功能主要是解釋計算機指令以及處理計算機軟體中的數據。CPU由運算器、控制器和寄存器及實現它們之間聯系的數據、控制及狀態的匯流排構成。差不多所有的CPU的運作原理可分為四個階段:提取(Fetch)、解碼(Decode)、執行(Execute)和寫回(Writeback)。 CPU從存儲器或高速緩沖存儲器中取出指令,放入指令寄存器,並對指令解碼,並執行指令。所謂的計算機的可編程性主要是指對CPU的編程。
工作原理
CPU從存儲器或高速緩沖存儲器中取出指令,放入指令寄存器,並對指令解碼。它把指令分解成一系列的微操作,然後發出各種控制命令,執行微操作系列,從而完成一條指令的執行。 指令是計算機規定執行操作的類型和操作數的基本命令。指令是由一個位元組或者多個位元組組成,其中包括操作碼欄位、一個或多個有關操作數地址的欄位以及一些表徵機器狀態的狀態字以及特徵碼。有的指令中也直接包含操作數本身。
提取
第一階段,提取,從存儲器或高速緩沖存儲器中檢索指令(為數值或一系列數值)。由程序計數器(Program Counter)指定存儲器的位置,程序計數器保存供識別目前程序位置的數值。換言之,程序計數器記錄了CPU在目前程序里的蹤跡。 提取指令之後,程序計數器根據指令長度增加存儲器單元。指令的提取必須常常從相對較慢的存儲器尋找,因此導致CPU等候指令的送入。這個問題主要被論及在現代處理器的快取和管線化架構。
解碼
CPU根據存儲器提取到的指令來決定其執行行為。在解碼階段,指令被拆解為有意義的片斷。根據CPU的指令集架構(ISA)定義將數值解譯為指令。 一部分的指令數值為運算碼(Opcode),其指示要進行哪些運算。其它的數值通常供給指令必要的信息,諸如一個加法(Addition)運算的運算目標。這樣的運算目標也許提供一個常數值(即立即值),或是一個空間的定址值:暫存器或存儲器位址,以定址模式決定。 在舊的設計中,CPU里的指令解碼部分是無法改變的硬體設備。不過在眾多抽象且復雜的CPU和指令集架構中,一個微程序時常用來幫助轉換指令為各種形態的訊號。這些微程序在已成品的CPU中往往可以重寫,方便變更解碼指令。
執行
在提取和解碼階段之後,接著進入執行階段。該階段中,連接到各種能夠進行所需運算的CPU部件。 例如,要求一個加法運算,算數邏輯單元(ALU,Arithmetic Logic Unit)將會連接到一組輸入和一組輸出。輸入提供了要相加的數值,而輸出將含有總和的結果。ALU內含電路系統,易於輸出端完成簡單的普通運算和邏輯運算(比如加法和位元運算)。如果加法運算產生一個對該CPU處理而言過大的結果,在標志暫存器里,運算溢出(Arithmetic Overflow)標志可能會被設置。
寫回
最終階段,寫回,以一定格式將執行階段的結果簡單的寫回。運算結果經常被寫進CPU內部的暫存器,以供隨後指令快速存取。在其它案例中,運算結果可能寫進速度較慢,但容量較大且較便宜的主記憶體中。某些類型的指令會操作程序計數器,而不直接產生結果。這些一般稱作「跳轉」(Jumps),並在程式中帶來循環行為、條件性執行(透過條件跳轉)和函式。 許多指令也會改變標志暫存器的狀態位元。這些標志可用來影響程式行為,緣由於它們時常顯出各種運算結果。 例如,以一個「比較」指令判斷兩個值的大小,根據比較結果在標志暫存器上設置一個數值。這個標志可藉由隨後的跳轉指令來決定程式動向。 在執行指令並寫回結果之後,程序計數器的值會遞增,反覆整個過程,下一個指令周期正常的提取下一個順序指令。如果完成的是跳轉指令,程序計數器將會修改成跳轉到的指令位址,且程序繼續正常執行。許多復雜的CPU可以一次提取多個指令、解碼,並且同時執行。這個部分一般涉及「經典RISC管線」,那些實際上是在眾多使用簡單CPU的電子裝置中快速普及(常稱為微控制(Microcontrollers))。
編輯本段基本結構
CPU包括運算邏輯部件、寄存器部件和控制部件等。
運算邏輯部件
運算邏輯部件,可以執行定點或浮點的算術運算操作、移位操作以及邏輯操作,也可執行地址的運算和轉換。
寄存器部件
寄存器部件,包括通用寄存器、專用寄存器和控制寄存器。 32位CPU的寄存器
通用寄存器又可分定點數和浮點數兩類,它們用來保存指令中的寄存器操作數和操作結果。 通用寄存器是中央處理器的重要組成部分,大多數指令都要訪問到通用寄存器。通用寄存器的寬度決定計算機內部的數據通路寬度,其埠數目往往可影響內部操作的並行性。 專用寄存器是為了執行一些特殊操作所需用的寄存器。 控制寄存器通常用來指示機器執行的狀態,或者保持某些指針,有處理狀態寄存器、地址轉換目錄的基地址寄存器、特權狀態寄存器、條件碼寄存器、處理異常事故寄存器以及檢錯寄存器等。 有的時候,中央處理器中還有一些緩存,用來暫時存放一些數據指令,緩存越大,說明CPU的運算速度越快,目前市場上的中高端中央處理器都有2M左右的二級緩存,高端中央處理器有4M左右的二級緩存。
控制部件
控制部件,主要負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的控制信號。 其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。 微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構成微程序。中央處理器在對指令解碼以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。 簡單指令是由(3~5)個微操作組成,復雜指令則要由幾十個微操作甚至幾百個微操作組成。 邏輯硬布線控制器則完全是由隨機邏輯組成。指令解碼後,控制器通過不同的邏輯門的組合,發出不同序列的控制時序信號,直接去執行一條指令中的各個操作。
❼ 程序與微程序的區別
程序是一系列機器指令的有序集合,用於解決實際問題,有子程序、分支、循環等結構,存放在主存中,可以更新修改;
微程序是一系列微指令的有序集合,微程序設計是將傳統的程序設計方法運用到控制邏輯的設計中,因此在微程序中也可以有微子程序、分支、循環等結構;微程序存儲在控制存儲器CM中,只能讀出,不能更改,CM中的所有微程序解釋執行整個指令系統中的所有機器指令;
❽ 微服務的主要優勢有哪些
1.將復雜的業務拆分成多個小的業務,每個業務拆分成一個服務,將復雜的問題簡單化。利於分工,降低新人的學習成本。
2.微服務應用的一個最大的優點是,它們往往比傳統的應用程序更有效地利用計算資源。這是因為它們通過擴展組件來處理功能瓶頸問題。這樣一來,開發人員只需要為額外的組件部署計算資源,而不需要部署一個完整的應用程序的全新迭代。最終的結果是有更多的資源可以提供給其它任務。
3.微服務應用程序的另一個好處是,它們更快且更容易更新。當開發者對一個傳統的單體應用程序進行變更時,他們必須做詳細的QA測試,以確保變更不會影響其他特性或功能。但有了微服務,開發者可以更新應用程序的單個組件,而不會影響其他的部分。測試微服務應用程序仍然是必需的,但它更容易識別和隔離問題,從而加快開發速度並支持DevOps和持續應用程序開發。
4.微服務架構有助於新興的雲服務,如事件驅動計算。類似AWS Lambda這樣的功能讓開發人員能夠編寫代碼處於休眠狀態,直到應用程序事件觸發。事件處理時才需要使用計算資源,而企業只需要為每次事件,而不是固定數目的計算實例支付。
缺點1.整體復雜度更高,微服務根本上說是一個分布式系統。開發者需要選擇和實現基於消息或者 RPC 的進程間通信機制。雖然這個有很多框架可供選擇,並不需要從頭實現。但是整體上的代碼復雜度是提高了。
2.微服務架構上每個業務有自己的資料庫。以前在單體應用中很好解決的事務問題,現在變得很困難。在基於微服務的應用程序中,需要更新不同服務所用的資料庫,通常不會選擇分布式事務,不僅僅是因為 CAP 定理。他們根本不支持如今高度可擴展的 NoSQL 資料庫和消息代理,最後不得不使用基於最終一致性的方法,這對於開發人員來說更具挑戰性。
3.測試微服務應用程序也很復雜。例如,使用 Spring Boot,我只需要編寫一個測試類來啟動一個單體 web 應用程序並測試其 REST API。相比之下,一個類似的測試類對於微服務來說需要啟動該服務及其所依賴的所有服務,或者至少要做服務mock,雖然這不是一件高深的事情,但不要低估了這多出來的工作量和復雜度。
❾ 微程序設計的基本原理是什麼
在微指令的控制欄位中,每一位代表一個微命令,在設計微指令時,是否發出某個微命令,只要將控制欄位中相應位置成"1"或"0",這樣就可打開或關閉某個控制門,這就是直接控製法.
在6.3節中所講的就是這種方法.但在某些復雜的計算機中,微命令甚至可多達三四百個,這使微指令字長達到難以接受的地步,並要求機器有大容量控制存儲器,為了改進設計出現了以下各種編譯法.
6.4.1 微指令的編譯法(編碼解碼方法)(2)
2.欄位直接編譯法
在計算機中的各個控制門,在任一微周期內,不可能同時被打開,而且大部分是關閉的(相應的控制位為"0").所謂微周期,指的是一條微指令所需的執行時間.如果有若干個(一組)微命令,在每次選擇使用它們的微周期內,只有一個微命令起作用,那麼這若干個微命令是互斥的.
例如,向主存儲器發出的讀命令和寫命令是互斥的;又如在ALU部件中,送往ALU兩個輸入端的數據來源往往不是唯一的,而每個輸入端在任一微周期中只能輸入一個數據,因此控制該輸人門的微命令是互斥的.
選出互斥的微命令,並將這些微命令編成一組,成為微指令字的一個欄位,用二進制編碼來表示, 就是欄位直接編譯法.
6.4.1 微指令的編譯法(編碼解碼方法)(3)
例如,將7個互斥的微命令編成一組,用三位二進制碼分別表示每個微命令,那麼在微指令中,該欄位就從7位減成3位,縮短了微指令長度.而在微指令寄存器的輸出端,為該欄位增加一個解碼器,該解碼器的輸出即為原來的微命令.
6.4.1 微指令的編譯法(編碼解碼方法)(4)
欄位長度與所能表示的微命令數的關系如下:
欄位長度 微命令數
2位 2~3
3位 4~7
4位 8~15
一般每個欄位要留出一個代碼,表示本段不發出任何微命令,因此當欄位長度為3位時,最多隻能表示7個互斥的微命令,通常代碼000表示不發微命令.
6.4.1 微指令的編譯法(編碼解碼方法)(5)
3.欄位間接編譯法
欄位間接編譯法是在欄位直接編譯法的基礎上,進一步縮短微指令字長的一種編譯法.
如果在欄位直接編譯法中,還規定一個欄位的某些微命令,要兼由另一欄位中的某些微命令來解釋,稱為欄位間接編譯法.
本方法進一步減少了指令長度,但很可能會削弱微指令的並行控制能力,因此通常只作為直接編譯法的一種輔助手段.
6.4.1 微指令的編譯法(編碼解碼方法)(6)
欄位A(3位)的微命令還受欄位B控制,當欄位B發出b1微命令時,欄位A發出a1,1,a1,2,…,a1,7中的一個微命令;而當欄位B發出b2微命令時,欄位A發出a2,1,a2,2,…,a2,7中的一個微命令,僅當A為000時例外,此時什麼控制命令都不產生.
6.4.1 微指令的編譯法(編碼解碼方法)(7)
4.常數源欄位E
在微指令中,一般設有一個常數源欄位E就如指令中的直接操作數一樣.E欄位一般僅有幾位,用來給某些部件發送常數,故有時稱為發射欄位.
該常數有時作為操作數送入ALU運算;有時作為計算器初值,用來控制微程序的循環次數等.
6.4.2 微程序流的控制 (1)
當前正在執行的微指令,稱為現行微指令,現行微指令所在的控制存儲器單元的地址稱現行微地址,現行微指令執行完畢後,下一條要執行的微指令稱為後繼微指令,後繼微指令所在的控存單元地址稱為後繼微地址.
所謂微程序流的控制是指當前微指令執行完畢後,怎樣控制產生後繼微指令的微地址.
與程序設計相似,在微程序設計中除了順序執行微程序外還存在轉移功能和微循環程和微子程序等,這將影響下址的形成.
下面介紹幾種常見的產生後繼微指令地址的方法.
6.4.2 微程序流的控制 (2)
(1)以增量方式產生後繼微地址.
在順序執行微指令時,後繼微地址由現行微地址加上一個增量(通常為1)形成的;而在非順序執行時則要產生一個轉移微地址.
機器加電後執行的第一條微指令地址(微程序入口)來自專門的硬體電路,控制實現取令操作,然後由指令操作碼產生後繼微地址.接下去,若順序執行微指令,則將現行微地址主微程序計數器( PC中)+1產生後繼微地址;若遇到轉移類微指令,則由 PC與形成轉移微地址的邏輯電路組合成後繼微地址.
6.4.2 微程序流的控制 (3)
6.4.2 微程序流的控制 (4)
(2)增量與下址欄位結合產生後繼微地址
將微指令的下址欄位分成兩部分:轉移控制欄位BCF和轉移地址欄位BAF,當微程序實現轉移時,將BAF送 PC,否則順序執行下一條微指令( PC+1).
執行微程序條件轉移時,決定轉移與否的硬體條件有好幾種.例如,"運算結果為零","溢出","已完成指定的循環次數"等.
我們假設有八種轉移情況,定義了八個微命令(BCF取3位),在圖中設置計數器CT用來控制循環次數.如在執行乘(或除)法指令時,經常採用循環執行"加,移位"(或減,移位)的方法,指令開始執行時,在CT中置循環次數)每執行一次循環,計數器減1,當計數器為零時結束循環.又考慮到執行微子程序時,要保留返回微地址,因此圖中設置了一個返回寄存器RR.
❿ 微程序控制器通常運用於什麼場合 為什麼
復雜指令集CPU內部為將較復雜的指令解碼,也就是指令較長,分成幾個微指令去執行,正是如此開發程序比較容易(指令多的緣故),但是由於指令復雜,執行工作效率較差,處理數據速度較慢,PC 中 Pentium的結構都為CISC CPU。
RISC是精簡指令集CPU,指令位數較短,內部還有快速處理指令的電路,使得指令的解碼與數據的處理較快,所以執行效率比CISC高,不過,必須經過編譯程序的處理,才能發揮它的效率,我所知道的IBM的 Power PC為RISC CPU的結構,CISCO 的CPU也是RISC的結構。
咱們經常見到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6實際上是改進了的CISC,也可以說是結合了CISC和RISC的部分優點。
RISC與CISC的主要特徵對比
比較內容 CISC RISC
指令系統 復雜,龐大 簡單,精簡
指令數目 一般大於200 一般小於100
指令格式 一般大於4 一般小於4
定址方式 一般大於4 一般小於4
指令字長 不固定 等長
可訪存指令 不加限制 只有LOAD/STORE指令
各種指令使用頻率 相差很大 相差不大
各種指令執行時間 相差很大 絕大多數在一個周期內完成
優化編譯實現 很難 較容易
程序源代碼長度 較短 較長
控制器實現方式 絕大多數為微程序控制 絕大多數為硬布線控制
軟體系統開發時間 較短 較長