软件设计师(一):计算机组成与体系结构(一)

简介: 软件设计师(一):计算机组成与体系结构(一)

1、数据的表示


1.1 进制的转换

R进制转10进制使用按权展开法:具体操作方式为∶将R进制数的每一位数值用Rk形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。


7d261ab56a508c692cdb83118910e82a_b63cdab03e9e8150df169510e5558bcf.png


十进制转R进制使用短除法


f097787846faf5e871f47900679b431f_image-20220827232718893.png


二进制转八进制与十六进制


①二进制转八进制:每三个二进制位对应一个八进制位,对于二进制数10001110,从低位开始三位三位的看,二进制的110对应八进制的6;二进制的001对应八进制的1;而此时只剩下两位10,那么在最前面补0(补满3位即可),也就是010,对应八进制的2,所以该二进制数10 001 110就对应八进制数216。


②二进制转十六进制:每四个二进制位对应一个十六进制位,对于二进制数10001110,从低位开始四位四位的看,二进制的1110对应十六进制的E(14);二进制的1000对应十六进制的8;如果不满四位,与转八进制一样,在最前面补0(补满4位即可)。在十六进制中,A=10,B=11,C=12,D=13,E=14,F=15。


1.2 原码补码移码IEE754浮点数计算


真值与机器数


真值:符合人类习惯的数字 譬如十进制


机器数:数字实际存到机器里的形式,正负号需要被“数字化”


题目:计算机内的整数常用补码表示,假定在一个程序中定义了变量X,Short X;X的机器数是FFF1H,则变量X真值分别是多少?


X (补码)=1111 1111 1111 0001

X (原码)=1000 0000 0000 1111

X( 真值)=-1111B=-15D


原反补码相互转换


85565ccecb3236b3a1544dfe6bed8529_202204301118522.png



babf6b78c50cbef25955181fb82631b1_image-20220602204754731.png


结合C语言中的不同变量+之间的赋值,掌握变量的真值及其机器数值的表示


1685020351567.png


IEEE754标准单精度实型数的真值与机器数的表示,加减运算


浮点数表示


120f0c6e0080ffc75ed1a06e24c0f7ba_image-20220602200354098.png


浮点数的标准IEEE754


32/64位浮点数(Float/Double)

构成:阶码E,尾数M,符号位S

N = (-1)的S次方× M × 2的E-n次方


242533c1f12cbdc0976d297d3bf67d05_image-20220602200908754.png


浮点数转换实例:


假定在一个程序中定义了变量X,Y,其中X是short型(补码表示),Y是float型(用IEEE754单精度标准表示),X的机器数是FFF1H,Y的机器数是4580 1000H,则变量X、Y的真值分别是多少?


709f72b3339eb906469c2e786dab0696_image-20221009155654323.png


b48763247771e59b94ad1c063ecd60b7_image-20220603083038759.png


45cf1c8483b4c0448b415c9906aa0888_image-20220603083933749.png

 

定点数运算与浮点数运算


[A]补 + [B]补= [A+B]补


[A – B]补= [A+(–B )]补= [A]补 + [ – B]补


练习 1:设机器数字长为 8 位(含 1 位符号位),且 A = – 97,B = +41,用补码求 A – B


28d2212bb7de771ba1c3758cee19c666_image-20220603085556727.png


溢出


溢出的原因:运算结果超出数据表示范围


溢出的判断方法Ⅰ:进位


0eb34c05664a8f51a71ddc208140b8d5_image-20220603090037931.png


溢出的判断Ⅱ:变形补码(双符号位)


83469b2d2ecc44fd53dcc35feeef258a_image-20220603090059172.png


表示范围:


原码的表示范围


原码整数:若机器字长为n+1 ,原码整数的表示范围:-(2的n次方-1)到(2的n次方-1)。

真值0有正0与负0

原码小数:若机器字长为n+1 ,原码小数的表示范围:-(1-2的-n次方)到(1-2的-n次方-1)。

补码


正数:[X]补=[X]原

负数:符号除外,各位取反,末位加1

[X]原=11001001 [X]补=10110111

设机器数字长为 8 位(其中一位为符号位)


8位原码整数的表示范围? -127----+127

8位补码整数的表示范围? -128----+127

n位补码整数的表示范围 1000…0-------011…1 —> -2n-1------2n-1-1

n位无符号整数的表示范围 0-------11111111 —> 0-----2n-1

浮点数的取值范围


e8403a4f3100f963aa48c7e0f9315196_image-20220603090700831.png


运算结果的状态标志


数的加减运算除了有结果外,还要考虑一些状态,比如 If (a > b),两个数的大小比较是如何完成的


例:比较无符号数13 与 5


959c5aeeb31ccb9c80dc98e89f2ea8b4_image-20220603091916665.png


运算的常见标志位


13156cd8025d7350b78e1eef240658bb_image-20220603091815161.png


2、计算机结构


CPU

运算器

算术逻辑单元ALU

累加寄存器AC

数据缓冲寄存器DR

状态条件寄存器PSW

控制器

程序计数器PC

指令寄存器IR

指令移码器

时序部件

主存储器

计算机的主机中包含两大部件:CPU和内存(主存储器)。而对于声卡、显卡、鼠标键盘这些都是属于外设。


对于CPU,我们需要了解的就是运算器和控制器,以及这两者中的一些寄存器。


①算术逻辑单元 ALU:它是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。


②累加寄存器 AC:通常简称累加器,它是一个通用寄存器,功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。


③数据缓冲寄存器 DR:作为CPU和内存、外设之间数据传送的中转站,作为CPU和内存、外设之间在操作速度上的缓冲。


④状态条件寄存器 PSW:保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容。


⑤程序计数器 PC:用于存放下一条指令的地址。当一条指令被获取后,程序计数器的地址加1,指向下一条指令的地址。


⑥指令寄存器 IR:用于存放当前从主存储器读出的正在执行的一条指令。


⑦地址寄存器 AR:用于保存当前CPU所访问的内存单元的地址。


⑧指令译码器 ID:计算机执行一条指令时,首先分析这条指令的操作码是什么,以决定操作的性质和方法,然后才能控制计算机其他各部件协同完成指令表达的功能,这个分析工作由指令译码器来完成。


3、Flynn分类法


Flynn分类法(计算机体系结构分类)中主要有两个指标:一个是指令流,一个是数据流。指令流为机器执行的指令序列;数据流是由指令调用的数据序列。无论是指令流还是数据流,它们都分为两种类型:单、多。


821a9412de6027022253370cd37a72ec_image-20221008195734204.png


4、CISC与RISC


73799b95fea85c1f451d33acb157beee_image-20221008200814859.png


5、流水线


5.1 基本概念


8b2a371d3c707bdbd75435858b7507bf_cccec5c37c2268c2bf13dcdb7f0c57fd.png


5.2 流水线计算


05264ee1f57b9b2c116d2465230c37a6_image-20221008204938225.png


流水线周期是指在(取指、分析、执行)三个阶段中时间最长的一段,对应上面的例题,最长的一段时间为2ns,所以流水线周期为2ns。


100条指令全部执行完毕需要的时间为:理论公式:(2+2+1)+(100-1)*2=203ns。


100条指令全部执行完毕需要的时间为:实践公式:(3+100-1)*2=204ns。(公式中的k表示指令被分成了几段)


5.3 流水线吞吐率计算


e5ca9583279f8a77497e14ba0eacfd11_image-20221008210228614.png


指令条数为100,流水线执行时间为203ns,所以流水线的吞吐率TP=100/203,流水线最大吞吐率是一种理想情况,即TPmax=1/2。(Δt=流水线周期=2ns)。


5.4 流水线加速比


1dfbef9f0ddf6a24a16a4167984058fc_image-20221008211357692.png


5.5 流水线的效率


dc527da7075e851a74fb29f6ce2b4a46_image-20221008211721099.png

相关文章
|
6月前
|
存储 编解码 并行计算
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
112 0
|
存储
【软考:软件设计师】 2 计算机组成与体系结构(二)详解指令系统 | 指令流水线
【软考:软件设计师】 2 计算机组成与体系结构(二)详解指令系统 | 指令流水线
262 0
|
3月前
|
存储 算法 安全
【第一章】软件设计师 之 计算机组成与体系结构
这篇文章是软件设计师备考资料的第一章,涵盖了计算机组成与体系结构的基础知识,包括不同进制之间的转换方法、数据表示、计算机结构、流水线概念、存储系统、校验码等内容。
【第一章】软件设计师 之 计算机组成与体系结构
|
存储 缓存 算法
【软考:软件设计师】 3 计算机组成与体系结构(二)详解存储系统 | 输入输出与总线
【软考:软件设计师】 3 计算机组成与体系结构(二)详解存储系统 | 输入输出与总线
455 0
|
6月前
|
存储 测试技术 芯片
【中级软件设计师】—计算机组成与体系结构考点总结篇(一)
【中级软件设计师】—计算机组成与体系结构考点总结篇(一)
【中级软件设计师】—计算机组成与体系结构考点总结篇(一)
|
机器学习/深度学习 存储 负载均衡
计网之体系结构(一)
计网之体系结构(一)
|
5G 网络架构
计网之体系结构(二)
计网之体系结构(二)
|
机器学习/深度学习 数据处理 vr&ar
【软考:软件设计师】1 计算机组成与体系结构(一)计算机系统基础知识
【软考:软件设计师】1 计算机组成与体系结构(一)计算机系统基础知识
285 0
|
存储 缓存 移动开发
软件设计师(一):计算机组成与体系结构(二)
软件设计师(一):计算机组成与体系结构(二)