版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
CPU的基本部件CPU
*計算機(jī)的基本模型有兩個部件
內(nèi)存
?存儲需要處理的數(shù)據(jù)
.存儲處理好的數(shù)據(jù).I
?存儲程序內(nèi)存
CPU
執(zhí)行存儲在內(nèi)存中的程序,把需要
處理的數(shù)據(jù)變換成所期望的新格式
或內(nèi)容(處理好的數(shù)據(jù))
結(jié)構(gòu)比內(nèi)存復(fù)雜得多
2012年12月12日MachineStructure
CPU的基本部件
親CPU究竟需要哪些部件?
CPU的工作:執(zhí)行程序(program)
程序:一系列的指令(instruction)
?指令:對一個或多個數(shù)進(jìn)行某個操作
讓工作的第
②二0CPU
告訴它操作和操作
數(shù)的信息
CPU只認(rèn)識二進(jìn)制數(shù)
操作數(shù)操作
(operand)(operator)把指令編碼成二進(jìn)
制數(shù)
2012年12月12日MachineStructure3
1,
CPU的基本部件
*指令編碼
編碼操作
餅常用操作個數(shù):20-30個
用4.5位二進(jìn)制數(shù)即可編碼
2012年12月12日MachineStructure4
CPU的基本部件
*指令編碼
編碼操作數(shù)
?操作數(shù)存儲在內(nèi)存中
*內(nèi)存用地址索引
分用地址編碼操作數(shù)?.
32位平臺,地址一般是32位.
?3操作數(shù)指令的話,地址要32*3二96位!
?現(xiàn)代內(nèi)存相對于現(xiàn)代CPU的速度來說也太慢了
玲把操作數(shù)放到快而小的存儲空間
玲指令中只編碼一個地址
2012年12月12日MachineStructure
CPU的基本部件
*指令編碼
編碼操作數(shù)
標(biāo)操作數(shù)放在哪里?
.比較小,可以用很短的地址編碼
?非???,和CPU的計算速度相當(dāng)
?要快,就要??!
少寄存器(register)
2012年12月12日MachineStructure6
CPU的基本部件
*指令編碼
寄存器(register)
?CPU中存放操作數(shù)的空間
內(nèi)存
?小:一般不超過32個
??快:一般一個CPU周期可訪問多次(2到10多次)
I編碼操作數(shù)
?編碼寄存器的地址
?32個寄存器須用5位二進(jìn)制編碼,3個操作數(shù)需要
3*5二15位二進(jìn)制數(shù)
2012年12月12日MachineStructure
CPU的基本部件
*指令編碼
寄存器中的數(shù)從何而來?
數(shù)據(jù)總是存儲在內(nèi)存中的少數(shù)據(jù)必須從內(nèi)存讀
內(nèi)存訪問指令:只編碼一個地址
?RISC類CPU甚至只編碼半個地址,一個32位地址須
由兩條指令裝載到寄存器并拼接而成
CPU需要內(nèi)存訪問單元(memoryunit)
內(nèi)存
2012年12月12日MachineStructure8
CPU的基本部件
警指令所指定的操作需要執(zhí)行
CPU需要有執(zhí)行部件
不同功能的執(zhí)行部件有不同的名字
?ALU:算術(shù)邏輯單元(執(zhí)行整數(shù)算術(shù)邏輯運算)
?FPU:浮點單元(執(zhí)行浮點運算)
為何ALU/FPU要接到MU上?
CPU
ALU1.CISC類CPU允許指令使
燒用內(nèi)存操作數(shù)
MU2,現(xiàn)代CPU為優(yōu)化執(zhí)行速
度而這么設(shè)計
2012年12月12日MachineStructure(
CPU的基本部件
*指令也必須從內(nèi)存中讀取
存儲程序今取指部件(instructionfetch)
IF要讀內(nèi)存,連上MU?
9較老的CPU是這么設(shè)計的
少較新的CPU其MU被分裂
成多個部件以提高速度
2012年12月12日MachineStructure10
CPU的基本部件
弟指令從哪個內(nèi)存單元取?
IP/PC
InstructionPointer,ProgramCounter
ALU
寄每次取到指令后,IP/PC自動加
FPU
存適當(dāng)?shù)闹抵赶蛳乱粭l指令
器
少分支指令怎么辦?
2012年12月12日
11
MachineStructure
CPU的基本部件
槃控制器(ControlUnit)
控制指令執(zhí)行過程,協(xié)調(diào)各部件工作
CPUALU
寄FPU
存
CPU核心邏輯,
器
最難設(shè)計的部分。
IF
CU
PC設(shè)計優(yōu)劣直接影
響CPU的性能。
2012年12月12日MachineStructure12
指令執(zhí)行過程
警第一步:取指
把IP/PC的值交給MU
CPU
MU讀到指令給IF寄
IP/PC增加,指向下一存
器
條指令
▲
2012年12月12日MachineStructure13
指令執(zhí)行過程
麋第三步:運算
執(zhí)行指令所指定的運算
42
—r3
2012年12月12日MachineStructure
指令執(zhí)行過程
?…V.
親第四步:內(nèi)存訪問
如果是要讀寫內(nèi)存的指令:讀寫內(nèi)存
如果不是?玲暫停等待一周期,或跳過
Hadd;r1,;r2jr3
2012年12月12日MachineStructure16
指令執(zhí)行過程
麋第五步:寫回
把結(jié)果寫回寄存器
2012年12月12日MachineStructure17
MlPS的指令執(zhí)行
uS」
oA
-」SA
ooJ
l_
D,trs6sO
uuEI
l①U
sL(a
uUCD
-DL
」U
+4
..:?
警簡化表示IlFtchlDcd|Exec|Mem|WB
1$
2012年12月12日MachineStructure18
程序的執(zhí)行
款程序是多條指令的序列
MachineStructure19
加速程序執(zhí)行的方法
?流水線(pipeline)
一流水線是工業(yè)化生產(chǎn)的重要概念
?極大地提高了勞動生產(chǎn)率
?也可以提高CPU部件的“勞動生產(chǎn)率”
流水線為什么有效?
指令執(zhí)行各步驟占用的部件不同
玲如果各步驟串行進(jìn)行,則大部分部件在大部
分時間都空閑
少各步驟并行,讓各部件都忙起來
2012年12月12日MachineStructure20
加速指令執(zhí)行的方法
*指令執(zhí)行各步驟部件占用情況
第一步:取指
*IP/PC,MU,IF
>第二步:譯碼
?寄存器
赧第三步:運算
?ALU/FPU
第四步:內(nèi)存訪問
,MU
第五步:寫回
?寄存器
2012年12月12日MachineStructure21
加速指令執(zhí)行的方法
一條指令執(zhí)行中占用資源情況
第一條指令開始譯碼的時候,取指的資源已經(jīng)空閑
9此時已經(jīng)可以開始取第二條指令了
ALU
FPU
CU
PC
2012年12月12日MachineStructure22
加速指令執(zhí)行的方法
*指令流水線
加速指令執(zhí)行的方法
警周期(cycle)
指令執(zhí)行一步所需要的時間
要使用流水線技術(shù),各不同步驟的執(zhí)行時間必須
相同:都是一周期
在同一個周期,有多條指令在流水線中
每條指令在不同的執(zhí)行步驟,占用不同的部件
2012年12月12日MachineStructure24
加速指令執(zhí)行的方法
警流水線的性能
例:執(zhí)行10條指令,每指令5步驟,每步驟
一周期
少不用流水線:5*10=50周期
個5級流水線:10+(5-1)=14周期
加速比:50/14=3.57
?流水線的理論最高加速比二級數(shù)
?指令數(shù)越多,加速比越高
?無限多條指令分加速比二級數(shù)
?一條指令??f加速比為1f不能加速!
2012年12月12日MachineStructure25
加速指令執(zhí)行的方法
桑流水線的性能
指令的延遲(latency)
事執(zhí)行一條指令所需時間
*流水線不能減少單條指令的延遲
?流水線可以減少程序的延遲
指令的產(chǎn)出(throughput)
?單位時間內(nèi)系統(tǒng)處理的指令數(shù)
流水線可以增加指令的產(chǎn)出
2012年12月12日MachineStructure26
加速指令執(zhí)行的方法
麋流水線問題
結(jié)構(gòu)競爭:同一個周期使用相同的部件
?1.內(nèi)存訪問競爭
1$D$
1$
1$
2012年12月12日MachineStructure27
加速指令執(zhí)行的方法
寄
*內(nèi)存訪問競爭存ALU
器FPU
在同一個周期,需要
同時讀取數(shù)據(jù)和指令
少用兩個不同的內(nèi)存:
DSP、嵌入式CPU等
玲用兩個高速緩存
(cache):通用CPU
L2Cache
CPU控制核心
設(shè)計難點rwi
內(nèi)存
2012年12月12日MachineStructure28
寄
存ALU
親寄存器訪問競爭器
FPU
給寄存器加高速緩存?
,不現(xiàn)實
Load/StoreIF
寄存器非常快PCcu
.單個周期可以完成一次讀
和一次寫
分前半個周期寫,后半個周D-Cachel-Cache
期讀
3為何寫在前?
?寫操作是在前面的指令L2Cache
執(zhí)行的
?寄存器很小MU
?可以做多個讀端口內(nèi)存
2012年12月12日MachineStructure30
機(jī)器語百與匯編語百
琳CPU只能識別二進(jìn)制數(shù)
把指令編碼成二進(jìn)制數(shù)
編碼操作、操作數(shù)和其它信息
?機(jī)器語言
2012年12月12日MachineStructure31
機(jī)器語言與匯編語言
警MIPS的機(jī)器語言例
32位
655556
opcodersrtrdshamtfunct
opcode:操作碼funct:操作碼第二部分
rs:SourceRegisterrt:TargetRegister
rd:DestinationRegistershamt:移位位數(shù)
2012年12月12日MachineStructure32
機(jī)器語百與匯編語百
?MIPS的機(jī)器語言例
add$8,$9,$10
opcode二0(查表)
funct二32(查表)
(操作數(shù)1)|
rs二9
rt二10(操作數(shù)2)
rd二8(目的操作數(shù))
shamt二0(非移位指令)
2012年12月12日MachineStructure33
機(jī)器語言與匯編語言
警MIPS的機(jī)器語言例
add$8,$9,$10
十進(jìn)制表示:
二進(jìn)制表示:
OOOOOO01001010100100000000100000
機(jī)器語言指令
MIPS還有其它格式的指令
2012年12月12日MachineStructure
機(jī)器語后與匯編語后
警機(jī)器語言適合CPU使用,但不適合程序員
人類對長串的數(shù)字不敏感
?但對符號敏感
玲用符號表示指令的各種信息
?北二編語言
2012年12月12日MachineStructure35
機(jī)器語后與匯編語后
親匯編語言(assembly)
機(jī)器指令與匯編指令一一對應(yīng)
9在機(jī)器語言需要讓人看的時候,常常實際使用
匯編語言4
;使用與機(jī)器語言相同的概念
)?操作,操作數(shù),……
*允許使用名字來索引變量
?比地址方便得多
2012年12月12日MachineStructure36
機(jī)器語言與匯編語言
橐MIPS的匯編語言
操作操作數(shù)(寄存器)
add$8,$9,$10
II
add$0~$31(32個寄存器)
sub
beq
2012年12月12日MachineStructure37
機(jī)器語后與匯編語后
親匯編語言程序設(shè)計
f用匯編語言寫程序
*可以有最高的效率(如果程序員合格)
比之機(jī)器語言前進(jìn)了一大步
T,被稱為第二代程序設(shè)計語言
*問題
?機(jī)器指令相對簡單
?程序員希望用較復(fù)雜的表達(dá)式I
?與硬件相關(guān)
?移植到不同的CPU非常不方便
2012年12月12日MachineStructure38
程序語言
槃什么力是適合程序設(shè)計的語言?
接近人類的思維特性
?看起來象人類語言
?分學(xué)習(xí)較容易
機(jī)器無關(guān)
少同一個程序可以在不同硬件運行
少無需學(xué)習(xí)機(jī)器相關(guān)內(nèi)容
.如果不關(guān)注最佳性能的話
程序語言
2012年12月12日MachineStructure39
程序語言
?計算機(jī)如何執(zhí)行程序語言程序?
解釋(interpret)
*逐條讀取程序語句并立即執(zhí)行
橐各種script:.bat,.vbs,.js,.py,
由解釋器處理(interpreter)
翻譯(translate)
*把程序語言程序翻譯成機(jī)器程序■
C/C++,FORTRAN,Pascal,..
?由編譯器處理(Compiler)I
?為何一1般不叫translator?
?不僅僅是翻譯的工作
2012年12月12日MachineStructure40
程序語后
親為何解釋和編譯都存在?
<各有優(yōu)缺點
解釋
無需專門開發(fā)工具,易于擴(kuò)充,靈活性大,升級
解釋器就可以改善所有已有程序
?執(zhí)行效率低I
編譯.JI
?執(zhí)行效率IRJ
開發(fā)較復(fù)雜,不便擴(kuò)充,編譯程序升級后所有現(xiàn)
有程序必須重新編譯才能得到更新
2012年12月12日MachineStructure41
程序語言
槃程序語言設(shè)計原則
盡可能接近人的思維習(xí)慣
*為何不用自然語言?
玲目前的計算機(jī)軟硬件平臺還不能很好地理解自
然語言
少程序語言是機(jī)器思維與人類思維之間的折衷
機(jī)器思維人類思維
機(jī)器語言匯編語言程序語言自然語言
2012年12月12日MachineStructure42
程序語言
槃程序語言設(shè)計原則
越接近自然語言
更容易被程序員使用,更容易學(xué)習(xí),程序設(shè)計效
率高
更遠(yuǎn)離計算機(jī)設(shè)計原理,更難以被計算機(jī)有效處
卜理,執(zhí)行效率低
?越接近機(jī)器語言
事更容易被計算機(jī)處理,執(zhí)行效率高
更難使用,程序設(shè)計效率低
2012年12月12日MachineStructure43
程序語言
槃早期程序語言
強(qiáng)調(diào)執(zhí)行效率
?一次設(shè)計,多次運行
運行時間遠(yuǎn)多于設(shè)計時間
?機(jī)器慢、少,任務(wù)多
?程序少,一般由專業(yè)人員設(shè)計
?FORTRAN
?很容易被翻譯成高效率的機(jī)器程序
?不太容易使用
2012年12月12日MachineStructure44
程序語言
*現(xiàn)代程序語言
有側(cè)重各方面因素的語言
現(xiàn)代計算機(jī)已經(jīng)非???,對很多任務(wù)已經(jīng)可以不
考慮執(zhí)行效率■
少程序語言可以考慮其它方面的因素
.設(shè)計效率,可移植性,……
■?各種面向?qū)ο蟪绦蛘Z言,Java,...
?現(xiàn)代軟件技術(shù)可以兼顧多個因素
?較大范圍內(nèi)都適用的程序語言及其開發(fā)工具
?結(jié)合C++的-些開發(fā)工具
2012年12月12日MachineStructure45
程序語后
警程序語言對計算機(jī)設(shè)計思想的影響
程序語言出現(xiàn)后,迅速替代匯編語言成為程
序設(shè)計的主要語言
■令計算機(jī)必須針對程序語言優(yōu)化?!
復(fù)雜指令集計算機(jī)(CISC:ComplexInstruction
SetComputer)
?復(fù)雜的指令:盡量向程序語言的語句靠攏,I
?完備的指令:盡量實現(xiàn)程序語言使用的所有語句
?正父指令集
少編譯優(yōu)化技術(shù)尚不完善,不能很好優(yōu)化程序
少主要用硬件設(shè)計填補(bǔ)程序語言和硬件間的差異
2012年12月12日MachineStructure46
程序語言
*程序語言對計算機(jī)設(shè)計思想的影響
精簡指令集(RISC:ReducedInstruction
SetComputer)
只實現(xiàn)少數(shù)必須的指令,利用編譯優(yōu)化技術(shù)生成
優(yōu)化的程序、
?指令數(shù)量少,簡單,可以編碼成等長格式
?3可以實現(xiàn)得非???/p>
玲主要用編譯器填補(bǔ)程序語言和硬件間的差異
2012年12月12日MachineStructure47
程序語言
?RISCvs.CISC結(jié)果
RISC支持者開發(fā)了大量的優(yōu)化指令執(zhí)行速度
的技術(shù)
高速緩存,深度流水線,分支預(yù)測,寄存器重命
名,超標(biāo)量,亂序執(zhí)行……
RISC支持者開發(fā)了大量的編譯優(yōu)化技術(shù)
循環(huán)展開,軟件流水,相關(guān)分析……
CISC支持者把這些技術(shù)都用上了
“偽CISC”:不再以指令集為目標(biāo)
x86依靠“事實上的工業(yè)標(biāo)準(zhǔn)”獲得了空前成功
2012年12月12日MachineStructure48
程序語言
麋現(xiàn)代計算機(jī)開發(fā)模式
馨軟件和硬件結(jié)合考慮
同時設(shè)計硬件和編譯器,并照顧操作系統(tǒng)的
需要
研Q究熱點:指令級并行j|I
程序語言改變了整個計算機(jī)產(chǎn)業(yè)
?2012年12月12日Structure
程序語言
集程序語言類型
說明型(例:Prolog)
程序員描述程序的問題本身,而不是解決問題的
算法
I?對簡單的問題:描述問題本身比算法更麻煩,
?對復(fù)雜的問題:現(xiàn)有硬件必須要用特定的算法才能解
決,通用解決算法難以勝任
說明型程序語言只在較窄的范圍使用
2012年12月12日MachineStructure50
程序語言要素
?語句(statement)
r構(gòu)成程序的原子
聲明語句(declarativestatement)
程序的規(guī)格說明:數(shù)據(jù)類型,參數(shù),..
命令語句(imperativestatement)
橐程序的算法說明
注釋(comment)
2012年12月12日MachineStructure52
程序語言要素
?變量(variable)與數(shù)據(jù)類型(type)
變量:在程序執(zhí)行過程中可以改變的量
?用于存儲各類信息
事是對內(nèi)存的抽象
用名索引,不必使用地址索引
暴有類型
?不同類型有不同的運算
?不兼容類型之間不能進(jìn)行運算
?例:float*string
2012年12月12日MachineStructure53
程序語言要素
款基本數(shù)據(jù)類型(primitivedatatype)
編譯器缺省支持的數(shù)據(jù)類型
intfloatchar...
某些語言還有string
奈數(shù)據(jù)結(jié)構(gòu)(datastructure)
*由基本數(shù)據(jù)類型組成的有結(jié)構(gòu)的數(shù)據(jù)類型
?數(shù)組(array)
結(jié)構(gòu)(structure)
2012年12月12日MachineStructure54
程序語言要素
?數(shù)組(array)
.一系列相同類型的數(shù)據(jù)
定義
intRooms[10];
引用
Rooms[0101;
MyRoomRooms[5];
名
2012年12月12日MachineStructure55
程序語言要素
?結(jié)構(gòu)(structure)
馨由不同類型的數(shù)據(jù)組成的數(shù)據(jù)類型
一*又叫異構(gòu)數(shù)組(heterogeneousarray)
structTZoomlnfo
intID;合理劃分程序的所有
floatw,h;數(shù)據(jù)為恰當(dāng)?shù)慕Y(jié)構(gòu)會
極大簡化程序設(shè)計
TZoomlnfoMyZoom;
MyZoom.lD=110;
2012年12月12日MachineStructure56
程序語言要素
?字面量(literal)
在程序語言中,其值等于其文字串的本來含
義的量—
?與變量相對:表示變量的文字串是其名字,其值
和名字無關(guān),在程序中還可以改變
例:整數(shù)650,字符串〃Smith"
常量(constant)
嫌給字面量的名字
constintRoomNo=517;
2012年12月12日MachineStructure57
程序語言要素
警運算
處理數(shù)據(jù)所需要的操作
四則運算+-*/
邏輯運算&&|!!■
關(guān)系運算==!=><>=<=
?位運算&
計算機(jī)硬件特有的運算,但在很多算法中有很大
的用處,所以很多程序語言都有
2012年12月12日MachineStructure58
程序語言要素
親運算
賦值運算=
一把一個表達(dá)式的值賦給某個變量
注意與相等關(guān)系的區(qū)別
??=才是相等關(guān)系運算■
事與數(shù)學(xué)上使用的二有所不同
?某些語言使用不同的符號
?Pascal:=
?APLQ
2012年12月12日MachineStructure
程序語言要素
槃控缶I結(jié)構(gòu)
程序有各種不同的執(zhí)行順序
順序(sequence)
分支(branch)
循環(huán)(loop)
必須有不同的控制語句(controlstatement)
if(…)switch(...)for
case1:}
else
case2:
2012年12月12日MachineStructure60
程序語言要素
?過程(procedure)與函數(shù)(function)
人類解決復(fù)雜問題的方法:分治(divide&
conquer)
分解成多個較小的問題,然后逐一解決,最后把
小問題的解拼接成大問題的解
少程序語言也必須有類似的功能
?過程與函數(shù),
程序語言中非常重要的概念,極大地方便了程序
設(shè)計
2012年12月12日MachineStructure61
程序語言要素
程序過程/函數(shù)
警過程與函數(shù)
把程序總的任務(wù)分解成多個
/[、的部分,然后逐一解決每
個小問題,再把小問題的解
?拼接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶大學(xué)課程設(shè)計仿真圖
- 二零二五年度橘子種植基地承包與農(nóng)產(chǎn)品出口協(xié)議3篇
- 二零二五年度美發(fā)店設(shè)備更新?lián)Q代及技術(shù)升級合同4篇
- 2025年度新型節(jié)能門窗安裝承攬合同范本3篇
- 2025年項目咨詢管理合作協(xié)議范本詳解3篇
- 二零二五年度酒店客房門鎖更換與升級服務(wù)合同4篇
- 2025年校車照管員崗位責(zé)任與風(fēng)險防控合同2篇
- 二零二五年度民用航空運輸合同服務(wù)質(zhì)量提升方案4篇
- 二零二五年度模板木枋行業(yè)創(chuàng)新發(fā)展基金合作合同4篇
- 2025年度高校教學(xué)樓租賃合同及智能化教學(xué)系統(tǒng)建設(shè)3篇
- 軌道工程-第三章-有砟軌道
- 泌尿:膀胱腫瘤病人的護(hù)理查房王雪-課件
- 標(biāo)點符號的研究報告
- 服務(wù)器報價表
- 2025年高考化學(xué)試題分析及復(fù)習(xí)策略講座
- 2024-2029年中國制漿系統(tǒng)行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 大門封條模板
- ppr管件注塑工藝
- 液化氣站其他危險和有害因素辨識及分析
- 高中語文教學(xué)課例《勸學(xué)》課程思政核心素養(yǎng)教學(xué)設(shè)計及總結(jié)反思
- 中國農(nóng)業(yè)銀行小微企業(yè)信貸業(yè)務(wù)貸后管理辦法規(guī)定
評論
0/150
提交評論