版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CPU的基本部件CPU
*计算机的基本模型有两个部件
内存
・存储需要处理的数据
.存储处理好的数据.I
♦存储程序内存
CPU
执行存储在内存中的程序,把需要
处理的数据变换成所期望的新格式
或内容(处理好的数据)
结构比内存复杂得多
2012年12月12日MachineStructure
CPU的基本部件
亲CPU究竟需要哪些部件?
CPU的工作:执行程序(program)
程序:一系列的指令(instruction)
•指令:对一个或多个数进行某个操作
让工作的第
②二0CPU
告诉它操作和操作
数的信息
CPU只认识二进制数
操作数操作
(operand)(operator)把指令编码成二进
制数
2012年12月12日MachineStructure3
1,
CPU的基本部件
*指令编码
编码操作
饼常用操作个数:20-30个
用4.5位二进制数即可编码
2012年12月12日MachineStructure4
CPU的基本部件
*指令编码
编码操作数
♦操作数存储在内存中
*内存用地址索引
分用地址编码操作数?.
32位平台,地址一般是32位.
•3操作数指令的话,地址要32*3二96位!
•现代内存相对于现代CPU的速度来说也太慢了
玲把操作数放到快而小的存储空间
玲指令中只编码一个地址
2012年12月12日MachineStructure
CPU的基本部件
*指令编码
编码操作数
标操作数放在哪里?
.比较小,可以用很短的地址编码
•非常快,和CPU的计算速度相当
•要快,就要小!
少寄存器(register)
2012年12月12日MachineStructure6
CPU的基本部件
*指令编码
寄存器(register)
♦CPU中存放操作数的空间
内存
♦小:一般不超过32个
••快:一般一个CPU周期可访问多次(2到10多次)
I编码操作数
♦编码寄存器的地址
•32个寄存器须用5位二进制编码,3个操作数需要
3*5二15位二进制数
2012年12月12日MachineStructure
CPU的基本部件
*指令编码
寄存器中的数从何而来?
数据总是存储在内存中的少数据必须从内存读
内存访问指令:只编码一个地址
•RISC类CPU甚至只编码半个地址,一个32位地址须
由两条指令装载到寄存器并拼接而成
CPU需要内存访问单元(memoryunit)
内存
2012年12月12日MachineStructure8
CPU的基本部件
警指令所指定的操作需要执行
CPU需要有执行部件
不同功能的执行部件有不同的名字
•ALU:算术逻辑单元(执行整数算术逻辑运算)
•FPU:浮点单元(执行浮点运算)
为何ALU/FPU要接到MU上?
CPU
ALU1.CISC类CPU允许指令使
烧用内存操作数
MU2,现代CPU为优化执行速
度而这么设计
2012年12月12日MachineStructure(
CPU的基本部件
*指令也必须从内存中读取
存储程序今取指部件(instructionfetch)
IF要读内存,连上MU?
9较老的CPU是这么设计的
少较新的CPU其MU被分裂
成多个部件以提高速度
2012年12月12日MachineStructure10
CPU的基本部件
弟指令从哪个内存单元取?
IP/PC
InstructionPointer,ProgramCounter
ALU
寄每次取到指令后,IP/PC自动加
FPU
存适当的值指向下一条指令
器
少分支指令怎么办?
2012年12月12日
11
MachineStructure
CPU的基本部件
槃控制器(ControlUnit)
控制指令执行过程,协调各部件工作
CPUALU
寄FPU
存
CPU核心逻辑,
器
最难设计的部分。
IF
CU
PC设计优劣直接影
响CPU的性能。
2012年12月12日MachineStructure12
指令执行过程
警第一步:取指
把IP/PC的值交给MU
CPU
MU读到指令给IF寄
IP/PC增加,指向下一存
器
条指令
▲
2012年12月12日MachineStructure13
指令执行过程
麋第三步:运算
执行指令所指定的运算
42
—r3
2012年12月12日MachineStructure
指令执行过程
・…V.
亲第四步:内存访问
如果是要读写内存的指令:读写内存
如果不是?玲暂停等待一周期,或跳过
Hadd;r1,;r2jr3
2012年12月12日MachineStructure16
指令执行过程
麋第五步:写回
把结果写回寄存器
2012年12月12日MachineStructure17
MlPS的指令执行
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
程序的执行
款程序是多条指令的序列
MachineStructure19
加速程序执行的方法
♦流水线(pipeline)
一流水线是工业化生产的重要概念
・极大地提高了劳动生产率
•也可以提高CPU部件的“劳动生产率”
流水线为什么有效?
指令执行各步骤占用的部件不同
玲如果各步骤串行进行,则大部分部件在大部
分时间都空闲
少各步骤并行,让各部件都忙起来
2012年12月12日MachineStructure20
加速指令执行的方法
*指令执行各步骤部件占用情况
第一步:取指
*IP/PC,MU,IF
>第二步:译码
•寄存器
赧第三步:运算
•ALU/FPU
第四步:内存访问
,MU
第五步:写回
•寄存器
2012年12月12日MachineStructure21
加速指令执行的方法
一条指令执行中占用资源情况
第一条指令开始译码的时候,取指的资源已经空闲
9此时已经可以开始取第二条指令了
ALU
FPU
CU
PC
2012年12月12日MachineStructure22
加速指令执行的方法
*指令流水线
加速指令执行的方法
警周期(cycle)
指令执行一步所需要的时间
要使用流水线技术,各不同步骤的执行时间必须
相同:都是一周期
在同一个周期,有多条指令在流水线中
每条指令在不同的执行步骤,占用不同的部件
2012年12月12日MachineStructure24
加速指令执行的方法
警流水线的性能
例:执行10条指令,每指令5步骤,每步骤
一周期
少不用流水线:5*10=50周期
个5级流水线:10+(5-1)=14周期
加速比:50/14=3.57
•流水线的理论最高加速比二级数
•指令数越多,加速比越高
・无限多条指令分加速比二级数
•一条指令??f加速比为1f不能加速!
2012年12月12日MachineStructure25
加速指令执行的方法
桑流水线的性能
指令的延迟(latency)
事执行一条指令所需时间
*流水线不能减少单条指令的延迟
•流水线可以减少程序的延迟
指令的产出(throughput)
♦单位时间内系统处理的指令数
流水线可以增加指令的产出
2012年12月12日MachineStructure26
加速指令执行的方法
麋流水线问题
结构竞争:同一个周期使用相同的部件
•1.内存访问竞争
1$D$
1$
1$
2012年12月12日MachineStructure27
加速指令执行的方法
寄
*内存访问竞争存ALU
器FPU
在同一个周期,需要
同时读取数据和指令
少用两个不同的内存:
DSP、嵌入式CPU等
玲用两个高速缓存
(cache):通用CPU
L2Cache
CPU控制核心
设计难点rwi
内存
2012年12月12日MachineStructure28
寄
存ALU
亲寄存器访问竞争器
FPU
给寄存器加高速缓存?
,不现实
Load/StoreIF
寄存器非常快PCcu
.单个周期可以完成一次读
和一次写
分前半个周期写,后半个周D-Cachel-Cache
期读
3为何写在前?
•写操作是在前面的指令L2Cache
执行的
♦寄存器很小MU
•可以做多个读端口内存
2012年12月12日MachineStructure30
机器语百与汇编语百
琳CPU只能识别二进制数
把指令编码成二进制数
编码操作、操作数和其它信息
•机器语言
2012年12月12日MachineStructure31
机器语言与汇编语言
警MIPS的机器语言例
32位
655556
opcodersrtrdshamtfunct
opcode:操作码funct:操作码第二部分
rs:SourceRegisterrt:TargetRegister
rd:DestinationRegistershamt:移位位数
2012年12月12日MachineStructure32
机器语百与汇编语百
♦MIPS的机器语言例
add$8,$9,$10
opcode二0(查表)
funct二32(查表)
(操作数1)|
rs二9
rt二10(操作数2)
rd二8(目的操作数)
shamt二0(非移位指令)
2012年12月12日MachineStructure33
机器语言与汇编语言
警MIPS的机器语言例
add$8,$9,$10
十进制表示:
二进制表示:
OOOOOO01001010100100000000100000
机器语言指令
MIPS还有其它格式的指令
2012年12月12日MachineStructure
机器语后与汇编语后
警机器语言适合CPU使用,但不适合程序员
人类对长串的数字不敏感
♦但对符号敏感
玲用符号表示指令的各种信息
♦北二编语言
2012年12月12日MachineStructure35
机器语后与汇编语后
亲汇编语言(assembly)
机器指令与汇编指令一一对应
9在机器语言需要让人看的时候,常常实际使用
汇编语言4
;使用与机器语言相同的概念
)♦操作,操作数,……
*允许使用名字来索引变量
♦比地址方便得多
2012年12月12日MachineStructure36
机器语言与汇编语言
橐MIPS的汇编语言
操作操作数(寄存器)
add$8,$9,$10
II
add$0~$31(32个寄存器)
sub
beq
2012年12月12日MachineStructure37
机器语后与汇编语后
亲汇编语言程序设计
f用汇编语言写程序
*可以有最高的效率(如果程序员合格)
比之机器语言前进了一大步
T,被称为第二代程序设计语言
*问题
♦机器指令相对简单
•程序员希望用较复杂的表达式I
♦与硬件相关
•移植到不同的CPU非常不方便
2012年12月12日MachineStructure38
程序语言
槃什么力是适合程序设计的语言?
接近人类的思维特性
♦看起来象人类语言
♦分学习较容易
机器无关
少同一个程序可以在不同硬件运行
少无需学习机器相关内容
.如果不关注最佳性能的话
程序语言
2012年12月12日MachineStructure39
程序语言
♦计算机如何执行程序语言程序?
解释(interpret)
*逐条读取程序语句并立即执行
橐各种script:.bat,.vbs,.js,.py,
由解释器处理(interpreter)
翻译(translate)
*把程序语言程序翻译成机器程序■
C/C++,FORTRAN,Pascal,..
♦由编译器处理(Compiler)I
•为何一1般不叫translator?
•不仅仅是翻译的工作
2012年12月12日MachineStructure40
程序语后
亲为何解释和编译都存在?
<各有优缺点
解释
无需专门开发工具,易于扩充,灵活性大,升级
解释器就可以改善所有已有程序
♦执行效率低I
编译.JI
♦执行效率IRJ
开发较复杂,不便扩充,编译程序升级后所有现
有程序必须重新编译才能得到更新
2012年12月12日MachineStructure41
程序语言
槃程序语言设计原则
尽可能接近人的思维习惯
*为何不用自然语言?
玲目前的计算机软硬件平台还不能很好地理解自
然语言
少程序语言是机器思维与人类思维之间的折衷
机器思维人类思维
机器语言汇编语言程序语言自然语言
2012年12月12日MachineStructure42
程序语言
槃程序语言设计原则
越接近自然语言
更容易被程序员使用,更容易学习,程序设计效
率高
更远离计算机设计原理,更难以被计算机有效处
卜理,执行效率低
♦越接近机器语言
事更容易被计算机处理,执行效率高
更难使用,程序设计效率低
2012年12月12日MachineStructure43
程序语言
槃早期程序语言
强调执行效率
•一次设计,多次运行
运行时间远多于设计时间
•机器慢、少,任务多
•程序少,一般由专业人员设计
»FORTRAN
•很容易被翻译成高效率的机器程序
•不太容易使用
2012年12月12日MachineStructure44
程序语言
*现代程序语言
有侧重各方面因素的语言
现代计算机已经非常快,对很多任务已经可以不
考虑执行效率■
少程序语言可以考虑其它方面的因素
.设计效率,可移植性,……
■•各种面向对象程序语言,Java,...
♦现代软件技术可以兼顾多个因素
•较大范围内都适用的程序语言及其开发工具
•结合C++的-些开发工具
2012年12月12日MachineStructure45
程序语后
警程序语言对计算机设计思想的影响
程序语言出现后,迅速替代汇编语言成为程
序设计的主要语言
■令计算机必须针对程序语言优化?!
复杂指令集计算机(CISC:ComplexInstruction
SetComputer)
•复杂的指令:尽量向程序语言的语句靠拢,I
•完备的指令:尽量实现程序语言使用的所有语句
•正父指令集
少编译优化技术尚不完善,不能很好优化程序
少主要用硬件设计填补程序语言和硬件间的差异
2012年12月12日MachineStructure46
程序语言
*程序语言对计算机设计思想的影响
精简指令集(RISC:ReducedInstruction
SetComputer)
只实现少数必须的指令,利用编译优化技术生成
优化的程序、
•指令数量少,简单,可以编码成等长格式
•3可以实现得非常快
玲主要用编译器填补程序语言和硬件间的差异
2012年12月12日MachineStructure47
程序语言
♦RISCvs.CISC结果
RISC支持者开发了大量的优化指令执行速度
的技术
高速缓存,深度流水线,分支预测,寄存器重命
名,超标量,乱序执行……
RISC支持者开发了大量的编译优化技术
循环展开,软件流水,相关分析……
CISC支持者把这些技术都用上了
“伪CISC”:不再以指令集为目标
x86依靠“事实上的工业标准”获得了空前成功
2012年12月12日MachineStructure48
程序语言
麋现代计算机开发模式
馨软件和硬件结合考虑
同时设计硬件和编译器,并照顾操作系统的
需要
研Q究热点:指令级并行j|I
程序语言改变了整个计算机产业
।2012年12月12日Structure
程序语言
集程序语言类型
说明型(例:Prolog)
程序员描述程序的问题本身,而不是解决问题的
算法
I•对简单的问题:描述问题本身比算法更麻烦,
•对复杂的问题:现有硬件必须要用特定的算法才能解
决,通用解决算法难以胜任
说明型程序语言只在较窄的范围使用
2012年12月12日MachineStructure50
程序语言要素
♦语句(statement)
r构成程序的原子
声明语句(declarativestatement)
程序的规格说明:数据类型,参数,..
命令语句(imperativestatement)
橐程序的算法说明
注释(comment)
2012年12月12日MachineStructure52
程序语言要素
♦变量(variable)与数据类型(type)
变量:在程序执行过程中可以改变的量
・用于存储各类信息
事是对内存的抽象
用名索引,不必使用地址索引
暴有类型
•不同类型有不同的运算
•不兼容类型之间不能进行运算
•例:float*string
2012年12月12日MachineStructure53
程序语言要素
款基本数据类型(primitivedatatype)
编译器缺省支持的数据类型
intfloatchar...
某些语言还有string
奈数据结构(datastructure)
*由基本数据类型组成的有结构的数据类型
♦数组(array)
结构(structure)
2012年12月12日MachineStructure54
程序语言要素
♦数组(array)
.一系列相同类型的数据
定义
intRooms[10];
引用
Rooms[0101;
MyRoomRooms[5];
名
2012年12月12日MachineStructure55
程序语言要素
♦结构(structure)
馨由不同类型的数据组成的数据类型
一*又叫异构数组(heterogeneousarray)
structTZoomlnfo
intID;合理划分程序的所有
floatw,h;数据为恰当的结构会
极大简化程序设计
TZoomlnfoMyZoom;
MyZoom.lD=110;
2012年12月12日MachineStructure56
程序语言要素
♦字面量(literal)
在程序语言中,其值等于其文字串的本来含
义的量—
•与变量相对:表示变量的文字串是其名字,其值
和名字无关,在程序中还可以改变
例:整数650,字符串〃Smith"
常量(constant)
嫌给字面量的名字
constintRoomNo=517;
2012年12月12日MachineStructure57
程序语言要素
警运算
处理数据所需要的操作
四则运算+-*/
逻辑运算&&|!!■
关系运算==!=><>=<=
♦位运算&
计算机硬件特有的运算,但在很多算法中有很大
的用处,所以很多程序语言都有
2012年12月12日MachineStructure58
程序语言要素
亲运算
赋值运算=
一把一个表达式的值赋给某个变量
注意与相等关系的区别
・•=才是相等关系运算■
事与数学上使用的二有所不同
•某些语言使用不同的符号
•Pascal:=
•APLQ
2012年12月12日MachineStructure
程序语言要素
槃控缶I结构
程序有各种不同的执行顺序
顺序(sequence)
分支(branch)
循环(loop)
必须有不同的控制语句(controlstatement)
if(…)switch(...)for
case1:}
else
case2:
2012年12月12日MachineStructure60
程序语言要素
♦过程(procedure)与函数(function)
人类解决复杂问题的方法:分治(divide&
conquer)
分解成多个较小的问题,然后逐一解决,最后把
小问题的解拼接成大问题的解
少程序语言也必须有类似的功能
•过程与函数,
程序语言中非常重要的概念,极大地方便了程序
设计
2012年12月12日MachineStructure61
程序语言要素
程序过程/函数
警过程与函数
把程序总的任务分解成多个
/[、的部分,然后逐一解决每
个小问题,再把小问题的解
・拼接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年虎年新春七字对联押韵7篇
- 广东省佛山市2024年毕业升学考试模拟卷数学卷含解析
- 最强纸飞机-滑翔机-Paperang折法-详细教程-图文
- 供水合同规定 供水工程合同3篇
- 2024-2030年全球及中国去除凿子行业发展现状及投资潜力研究报告
- 安全生产、文明施工管理体系与措施
- 2024年黑龙江省大庆市祥阁学校中考六月模拟物理试题
- 2023年部编版八年级下册历史第一次月考试卷二
- 史上超难垃圾分类大考验
- 塑胶制品行业特征
- 车辆关系使用证明参考模板范本
- 天然气操作规程
- 土方开挖 技术交底
- (闽教版(三年级起点))小学英语四下 Unit 8单元测试
- 医学统计学形考答案知识点
- DB51∕T 2736-2020 大熊猫国家公园标志技术规范
- 2021-2022学年部编版七年级下册历史全册每课思维导图
- 铁路工程投资控制系统使用教程
- 音乐课件:《春之歌》PPT课件-
- IATF16949SI 更新说明-IATF169492016 解释令
- 酒店资料(完成情况及移交)清单.xls
评论
0/150
提交评论