1. 程式人生 > >系統架構設計師(1)-計算機組成與體系結構

系統架構設計師(1)-計算機組成與體系結構

一、流水線

將需要處理的工作分為N個階段,最耗時的那一段所消耗的時間。如,使用流水線技術執行100條指令,每條指令取指2ms,分析4ms,執行1ms,那麼,流水線週期是4ms。

流水線執行時間T  =  第一條指令的執行時間 + (N-1)*流水線週期t

(2017)某計算機系統採用5級流水線結構執行指令,設每條指令的執行由取指令(2∆t)、分析指令(1∆t)、取運算元(3∆t)、運算(1∆t)和寫回結果(2∆t)組成,並分別用5個子部完成,該流水線的最大吞吐率為(1);若連續向流水線輸入10條指令,則該流水線的加速比為(2).

(1)A.1/9∆t B.1/3∆t C.1/2∆t D.1/1∆t

(2)A.1:10 B.2:1 C.5:2 D.3:1

【解析】本題考查流水線計算。

(1)流水線週期為:3t。

流水線的吞吐率為:指令條數/流水線執行時間

即:

n/(2t+1t+3t+1t+2t+(n-1)*3t)=n/(6t+3nt)

流水線的最大吞吐率就是上面的式子中,n趨向於無窮大的結果。當n趨向於無窮大時,上式的結果為:1/3t。所以應該選B。

(2)流水線加速比=不用流水線的執行時間/使用流水線的執行時間

10條指令不用流水線的執行時間=(2t+1t+3t+1t+2t)*10=90t。

10條指令使用流水線的執行時間=(2t+1t+3t+1t+2t)+(10-1)*3t=36t。

所以加速比為:90t/36t=5:2

二、儲存

嵌入式系統的儲存結構採用分級的方法來設計,整個儲存系統分為四級,即暫存器組、高速緩衝(Cache)、記憶體(包括flash)和外存,它們在存取速度上依次遞減,而在儲存容量上逐級遞增。

一般系統儲存分三級,高速緩衝(Cache),記憶體(主存),外存(輔助儲存)

越接近CPU的儲存器容量小、速度快、成本高,越離CPU儲存器遠的容量大、速度慢,價格低。所以採用分級儲存體系的目的是解決儲存的容量、價格和速度之間的矛盾。

在計算機系統中,常選用生產與執行成本、儲存容量和讀寫速度各不相同的多種儲存介質,組成一個統一管理的儲存器系統,使每種介質充分發揮各自在速度、容量、成本方面的優勢,從而達到最優效能價格比,滿足使用要求。

快取記憶體Cache用來存放當前最活躍的程式和資料,作為主存區域性域的副本,其特點是:容量一般在幾KB到幾MB之間;速度一般比主存快5到10倍,由快速半導體儲存器構成;其內容是主存區域性域的副本,對程式設計師來說是透明的。

替換演算法的目標就是使Cache獲得最高的命中率。常用演算法有隨機替換演算法、先進先出演算法、近期最少使用演算法和優化替換演算法。

Cache的效能是計算機系統性能的重要方面。命中率是Cache的一個重要指標,但不是最主要的指標。Cache設計的目標是在成本允許的條件下達到較高的命中率,使儲存系統具有最短的平均訪問時間。

Cache的命中率與Cache容量的關係是:Cache容量越大,則命中率越高,隨著Cache容量的增加,其命中率逐漸接近100%。但是增加Cache容量意味著增加Cache的成本和增加Cache的命中時間。

三、指令

計算機執行指令的過程分為如下幾個步驟。
(1) 取指令。控制器首先按程式計數器所指出的指令地址從記憶體中取出一條指令。
(2) 指令譯碼。將指令的操作碼部分送指令譯碼器進行分析,然後根據指令的功能向有關部件發出控制命令。
(3) 按指令操作碼執行。根據指令譯碼器分析指令產生的操作控制命令以及程式狀態字(PSW) 暫存器的狀態,控制微操作形成部件產生一系列CPU內部的控制訊號和輸出到CPU外部控制訊號。在這一系列控制訊號的控制下,實現指令的具體功能。
(4) 形成下一條指令地址。若非轉移類指令,則修改程式計數器的內容;若是直接轉移類指令,則該指令中的轉移地址被送入程式計數器:若是非直接轉移類指令,則根據轉移條件修改程式計數器的內容。

指令系統的優化設計向著兩個方向發展:複雜指令系統計算機(CISC)精簡指令系統計算機(RISC)

CISC (Complex Instruction Set Computer,複雜指令集計算機)的基本思想是進一步增強原有指令的功能,用更為複雜的新指令取代原先由軟體子程式完成的功能,實現軟體功能的硬體化,導致機器的指令系統越來越龐大而複雜。CISC計算機一般所含的指令數目至少300條以上,有的甚至超過500條。

CISC的主要缺點如下:①微程式技術是CISC的重要支柱,每條複雜指令都要通過執行一段解釋性微程式才能完成,這就需要多個CPU週期,從而降低了機器的處理速度;②指令系統過分龐大,從而使高階語言編譯程式選擇目標指令的範圍很大,並使編譯程式本身冗長而複雜,從而難以優化編譯使之生成真正髙效的目的碼:③CISC強調完善的中斷控制,勢必導致動作繁多,設計複雜,研製週期長:④CISC給晶片設計帶來很多困難,使晶片種類增多,出錯機率增大,成本提高而成品率降低。

RISC (Reduced Instruction Set Computer,精簡指令集計算機)的基本思想是通過減少指令總數和簡化指令功能,降低硬體設計的複雜度,使指令能單週期執行,並通過優化編譯,提高指令的執行速度,採用硬線控制邏輯,優化編譯程式。

實現RISC的關鍵技術有:①重疊暫存器視窗(overlapping register windows)技術,首先應用在伯克利的RISC專案中;②優化編譯技術,RISC使用了大量的暫存器,如何合理分配暫存器、提高暫存器的使用效率,減少訪存次數等,都應通過編譯技術的優化來實現;③超流水及超標量技術,這是RISC為了進一步提高流水線速度而採用的新技術;④硬線邏輯與微程式相結合在微程式技術中。

四、嵌入式處理器

嵌入式處理器是嵌入式系統的核心部件,一般可分為嵌入式微處理器(MPU)、微控制器(MCU)、數字訊號處理器(DSP)和片上系統(SOC)

MPU採用增強型通用微處理器,由於嵌入式系統通常應用於環境比較惡劣的環境中,因而MPU在工作溫度、電磁相容性以及可靠性方面的要求較通用的標準微處理器高。但是,MPU在功能方面與標準的微處理器基本上是一樣的。 MCU又稱單片微型計算機(Single Chip Microcomputer)或者微控制器,是指隨著大規模積體電路的出現及其發展,將計算機的CPU、RAM、ROM、定時計數器和多種I/O介面整合在一片晶片上,形成晶片級的計算機,為不同的應用場合做不同組合控制。DSP是一種獨特的微處理器,是以數字訊號來處理大量資訊的器件。實時執行速度可達每秒數以千萬條複雜指令程式,遠遠超過通用微處理器,它的強大資料處理能力和高執行速度,是最值得稱道的兩大特色。SOC稱為系統級晶片,也有稱片上系統,意指它是一個產品,是一個有專用目標的積體電路,其中包含完整系統並有嵌入軟體的全部內容。

五、匯流排

匯流排是一組能夠為多個部件分時共享的公共資訊傳送線路。分時是指同一時間只能允許一個部件向匯流排傳送資訊。然而,同一時間,允許多個部件接收相同的資訊。包括地址匯流排、資料匯流排、控制匯流排。

匯流排是一組能為多個部件分時共享的資訊傳送線,用來連線多個部件併為之提供資訊交換通路。所謂共享,指連線到總線上的所有部件都可通過它傳遞資訊;分時性指某一時刻只允許一個部件將資料傳送到總線上。因此,共享是通過分時實現的。

CPU訪問記憶體通常是同步方式,CPU與I/O介面交換資訊通常是同步方式,CPU與PCI匯流排交換資訊通常是同步方式,I/O介面與印表機交換資訊則通常採用基於快取池的非同步方式。

六、虛擬儲存器

虛擬儲存器是一個容量非常大的儲存器的邏輯模型,不是任何實際的物理儲存器。

它藉助於磁碟等輔助儲存器來擴大主存容量,使之為更大或更多的程式所使用。虛擬儲存器管理方式分為頁式虛擬儲存器、段式虛擬儲存器和段頁式虛擬儲存器。

虛擬儲存器是由硬體和作業系統自動實現儲存資訊排程和管理的。它的工作過程包括6個步驟:

①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組資訊是否存放在主存內。

②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閒區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將需要訪問的資訊調入主存。

③從輔存讀出所要的組,並送到主存空閒區,然後將那個空閒的物理組號a和邏輯組號a登入在地址變換表中。

④從地址變換表讀出與邏輯組號a對應的物理組號a。

⑤從物理組號a和組內位元組地址b得到實體地址。

⑥根據實體地址從主存中存取必要的資訊。

頁式排程是將邏輯和實體地址空間都分成固定大小的頁。主存按頁順序編號,而每個獨立編址的程式空間有自己的頁號順序,通過排程,輔存中程式的各頁可以離散裝入主存中不同的頁面位置,並可據頁表一一對應檢索。

七、記憶體地址位元組演算法

記憶體按位元組編址,地址從A4000H到CBFFFH,共有 (1) 個位元組。若用儲存容量為32K×8bit的儲存晶片構成該記憶體,至少需要 (2) 片。
(1)A.80K B.96K C.160K D.192K
(2)A.2 B.5 C.8 D.10
試題解析:CBFFFH - A4000H + 1 = 28000H = 160K。160K / 32K = 5。答案:(1)C (2)B

A4000H和CBFFFH都是表示十六進位制的資料,H表示的就是十六進位制,所以A4000H到CBFFFH共有的位元組數為:CBFFFH(835583)-A4000H(671744)+1=28000H(163840),些等式中尾數為H的表示十六進位制數,而括號中的數是其相應的十進位制數,所以它們中間共有163840個位元組,而163840/1024=160,從而得出A4000H到CBFFFH中共有160*1024個位元組。

用儲存容量為32K X 8位元的儲存器晶片構成地址編號A0000H 至DFFFFH 的記憶體空間,
至少需要多少片
A .4 B. 6 C . 8 D.10

試題解析

記憶體空間是DFFFFH-A0000H+1 = 40000H 
=4*16^4 
= 2^18 = 2^10*256=256kb

256kb/32 = 8片

解決方案二:

地址編號A0000H到DFFFFH的記憶體空間為DFFFFH-A0000H+1=40000H個若記憶體按位元組編址,即每個空間儲存一個位元組則地址編號A0000H到DFFFFH的記憶體空間的儲存容量為40000H*8位元。
用儲存容量為32K*8位元的儲存晶片構成地址編號A0000H到DFFFFH的記憶體空間,則至少需要40000H*8位元/32K*8位元=40000H/8000H=5片

注:十進位制的32K是2的15次方,轉換成十六進位制為8000H。

八、磁碟訪問

某磁碟磁頭從一個磁軌移至另一個磁軌需要10ms。檔案在磁碟上非連續存放,邏輯上相鄰資料塊的平均移動距離為10個磁軌,每塊的旋轉延遲時間及傳輸時間分別為100ms和2ms,則讀取一個100塊的檔案需要(11) ms的時間。   

2010年(11)

A.10200         

B.11000

C.11200

D.20200

【答案】D 【解析】

根據題目描述,讀取一個連續資料需要的時間包括移動時間、旋轉延遲時間和傳輸時間三個部分,總時間花為(10*10)+100+2=202ms。一次讀取一個100塊的檔案需要的時間為202*100=20200ms.

九、緩衝時間計算

某計算機系統輸入/輸出採用雙緩衝工作方式,其工作過程如下圖所示,假設磁碟塊與緩衝區大小相同,每個盤塊讀入緩衝區的時間T為10μs,緩衝區送使用者區的時間M為6μs,系統對每個磁碟塊資料的處理時間C2μs。若使用者需要將大小為10個磁碟塊的Docl檔案逐塊從磁碟讀入緩衝區,並送使用者區進行處理,那麼採用雙緩衝需要花費的時間為(5)μs,比使用單緩衝節約了(6)μs時間。

2016年(5)

A.100            

B.108

C.162

D.180

2016年(6)

A.0          

B.8

C.54

D.62

【答案】B C

【解析】 單緩衝區執行時間:(10+6+2)+(10-1)*(10+6)=162μs雙緩衝區執行時間:(10+6+2)+(10-1)*10=108μs 雙緩衝比單緩衝節省162-108=54μs。

把磁碟資料送到緩衝區,花費的時間為Ts,緩衝區的資料送到使用者區,花費的時間為Tm,使用者程序對這批資料進行計算,花費的時間為Tc

單緩衝下總時間T=max(Ts+Tc)+Tm

雙緩衝時間為max(Tc,Ts)