计算机组成与体系结构

分值分布

1. 数据的表示

1.1 进制的转换

1.1.1 R进制–>十进制

按权展开法

1.1.2 十进制–>R进制

对于十进制转R进制,采取的就是对十进制数除R取余,最后对余数取倒序即可.

例:如果将十进制数94转8进制,那么除8取余即可,其他情况均是如此.

1.1.3 二进制–>八进制、十六进制

1.2 原码、反码、补码、移码

原码:最高位符号位,0表+,1表—,不足8位用0填充.(1-1的原码操作为-2≠0)

反码:最高位符号位,0表+,1表—,正数与原码相同,负数最高位不变,其余位按位取反.(1-1反码操作为-0≠0)

补码:最高位符号位,0表+,1表—,正数与原码相同,负数在反码基础上+1.(1-1补码操作为+0=0)

移码:是在特定场合用到,一般用作浮点运算中的阶码,在补码基础上首位取反.

数值表示范围:

例如:-127∽+127 ;反码:-127∽+127;补码:-128∽+127

补码比反码、原码表示的取值范围更大,原因在于0位置,少占一个编码.

原码:[+0]=00000000 [-0]=10000000

反码:[+0]=00000000 [-0]=11111111

补码:[+0]=00000000==[-0]=00000000

1.3浮点数运算

概念:即科学计数法,如1000=1X103; 其中,1为尾数,10为基数,3为指数.

运算:当两个指数不等的浮点数相加时,把低阶对阶为高阶,然后尾数计算,并结果格式化.

例如:1.0×103+1.19×102,将1.19×102 转化为0.119×103 ,相加得1.119×103,然后结果格式化.(小数点左边必须为非零的一位数,若结果为0.1119×103 则化为1.119×102

2. 计算机结构

运算器

ALU:负责处理数据,实现对数据的算术运算和逻辑运算.

AC:是一个通用寄存器,功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区.

DR:在对内存储器进行读写操作时,用DR暂时存放由内存储器读写的一条指令或一个数据字,并将不同时间段内读写的数据隔离开.

PSW:PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条码内容.(存标志位)

控制器

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

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

AR:用于保存当前CPU所访问的内存单元的地址.

ID:指令分为操作码和地址码两部分,为了执行指令,必须对操作码进行分析。ID可以对之指令中的操作码字段进行分析和解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,从而完成所需的功能.

3. Flynn分类法

4. CISC与RISC

指令系统类型 指令 寻址方式 实现方式 其他
CISC(复杂) 数量多,使用频率差别大,可变长格式 支持多种 微程序控制技术(微码) 研制周期长
RISC(精简) 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 支持方式少 增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线 优化编译,有效支持高级语言

5. 流水线技术

5.1基本概念

未使用流水线有大量部件的时间片处于空闲状态.

5.2流水线计算

流水线周期:2ns(取指、分析、执行中最长的一段)

理论公式:(2+2+1)+(100-1)×2=203

实践公式:(3+(100-1))×2=204(k表示指令被分为几段)

5.3流水线吞吐量计算

上一问中:TP=100/203

最大吞吐率(理想情况):TPmax=1/2(Δt=流水线周期=2ns)

5.4 流水线加速比计算

上例中

不使用流水线时间:(2+2+1)×100=500ns

使用流水线时间:(2+2+1)+(100-1)×2=203ns

流水线的加速比:S=500/203

流水线效率:(Δt+Δt+Δt+3Δt)X4/15ΔtX4

6. 存储系统

6.1 层次结构

CPU中有运算器和控制器,而在运算器和控制器中,就会存在相应的寄存器。而寄存器的容量是极小的,但是速度非常快.

Cache中所有内容都来自于主存,Cache存主存中的很小一部分内容。Cache不是必须的,相对于内存来说极小,但不加可能慢上百倍.

原因:(局部性原理)程序运行过程中,刚执行完一条指令,很可能再次执行该条指令,会频繁不断执行相同指令(例:循环语句).

Cache按内容存取:存信息时,会考虑信息的内容,不同内容存到不同区域;读内容时,通过内容计算,便知道存到了哪个区域。又叫相联存储器,速度效率远高于按地址存储的方式.

6.2 Cache概念

命中率:读取数据时,能够获取到需要数据的概率.

t1=1ns ;t2=1ms=1000ns ;h=95%

t3=1×95%+(1-95%)×1000=50.95ns

局部性原理:主要是讲计算机在处理相关的数据和程序的时候,一般都会有某个时段,集中访问某些指令.

时间局部性:指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行.

空间局部性:指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问.(处理数组时,操作的是邻近的一个一个的空间,当程序访问了一个空间,立即又访问它临近的空间)

6.3 主存

6.3.1 主存—分类

随机存取存储器(RAM):例如内存,特点:一旦断电,内存当中的所有数据都将被清除掉.

只读存储器(ROM):在断电后,仍然能够存储相应的信息.

6.3.2 主存—编址

编址:把芯片组成相应的存储器.

分析问题:什么规格的芯片、多少块,能够组成按什么方式编址的存储空间.

例如:8*4位的存储器;8:有8个地址空间;4:每个地址空间存储了4bit的地址信息.

例题中

地址单元个数:C7FFFH-AC000H+1=1C000=1C000/2^10=112K

总容量:112(K)×16(bit)=28(片)×16(K)× y(bit),求得y=4

所以每个存储单元存4bit

7. 磁盘结构与参数



旋转周期33ms—>转一圈33ms,有11个记录,即平均每个记录用3ms,意味着读取一个记录需要消耗3ms时间,因为磁盘对应需要读取的区域从磁头经过,磁头会将相应的数据读取出来;所以说起点即R0开始的位置,经过3ms把数据读取出来。单缓存区:只有一个缓存区,把记录读出来之后就把数据放到了缓存区当中,之后就要对记录进行处理,处理需要3ms。单缓存区意在表达:R0读取到缓存区之后,磁头到达了R1的开始位置,不能直接读取R1到缓存区,因为现在缓存区中存了R0,需要3ms的处理时间,没处理完新的记录进不来,磁盘就会继续往前转动,磁盘处理起来不会停,会一直匀速运动,等到R0处理完,磁头已经到了R2的开头,但现在想处理的是R1,所以磁盘会继续转动,直到转到R1的开始位置,往后同理.

总结:把R0处理完,并且把磁头转到开始下一条记录读取的位置,总共花转了一圈+1条记录=33+6=36ms(R0的读取、处理、并将磁头定位到了下一条要处理的R1开始的位置)

以此类推,R0~R9=36×10ms,R10=3+3=6ms,处理时间:360+6=366ms

优化分布:

(3+3)×11=66ms

8. 总线系统


9. 可靠性

串联系统

所有的子系统必须正常运行整个系统正常

可靠度=R1×R2×…Rn,相乘:要在R1可靠的基础上同时R2…Rn可靠所以累成起来.

失效率=λ1+λ2…+λn,只是近似公式

并联系统

多个子系统并联在一起,多个子系统中有一个能够正常运行,则整个系统都能够正常运行,只有当所有系统都失效的时候,整个系统才失效.

例如:假设每个子系统可靠度=0.9,整个子系统(3个)可靠度R=1-(1-0.9)^3,失效率μ=1-R

n模冗余模型

混合系统

10. 校验码

10.1 CRC

可以检错不能纠错,原理:尾部加校验信息,让编码后的数据与生成多项式的余数为0,除法是模二除法,进行异或操作,相同为0不同为1.

例子:

1、把多项式转成二进制—>11011

2、在原始报文后加生成多项式-1个0—>加4个0

3、进行模二除法

4、余数替换加的0的位数—>0011替换0000

5、验证—>110010101010011与11011进行模二运算余数为0

10.2 海明校验码

1、校验位和信息位的关系:

2R>=X+R+1,X:信息位的个数,R:校验位的个数

2、校验位的计算:

上例中

7=22+21+20,6=22+21,5=22+20,3=21+20

所以R2=I4⊕I3⊕I5(7,6,5所对应的信息位),R1,R0同理

纠错:

收到信息后产生一次校验位,与收到的校验位进行异或运算,得到的结果就是出错的位置

软件工程师——计算机组成原理相关推荐

  1. 软件考试—计算机组成原理—奇偶校验码、海明码、循环冗余校验码

    目录 1,奇偶校验码 2,海明码 3,循环冗余校验码 码距:是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同. 利用奇偶校验码来查错的编码系统的合法编码之间的最小码距为2. 奇偶校验码: ...

  2. java软件工程师简历

         java软件工程师简历一    姓名:陶** 性别:男 电话:136-3231**** 学历:本科 邮箱:tll-wuhu@163.com 地址:广州市天河区 求职意向 java软件工程师 ...

  3. 计算机组成原理课内实验,【计算机基础论文】计算机组成原理课程实验教学改革(共2885字)...

    摘要:目前<计算机组成原理>的实验内容存在与课程定位目标相悖的问题,一味追求实验内容的复杂性,而忽视了计算机组成原理实验教学的完整性和概念性.针对上述问题,本文对<计算机组成原理&g ...

  4. 工程计算软件_软件工程师的计算机基础理论知识体系

    想要成为一名合格的软件工程师,需要学习的计算机方面的很多知识和理论,这里给大家通俗的说下需要知道的基础理论知识体系有哪些. 以某大学的计算机相关专业的四年课程举例: Java语言.C语言.Python ...

  5. 作为一名软件工程师,计算机基础学科到底要不要学?

    [图:欧几里得,希腊化时代的数学家,被称为"几何学之父".] 作为一名软件工程师,计算机基础学科到底要不要学?最近蛮有感触的一个问题.我这里说的计算机基础学科主要指的是计算机操作系 ...

  6. 汇编程序设计与计算机体系结构软件工程师教程笔记:内联汇编与宏

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  7. 汇编程序设计与计算机体系结构软件工程师教程笔记:函数、字符串、浮点运算

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  8. 汇编程序设计与计算机体系结构软件工程师教程笔记:指令

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  9. 汇编程序设计与计算机体系结构软件工程师教程笔记:处理器、寄存器简介

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

最新文章

  1. 字符串分割split
  2. python详细安装教程3.7.0-Python 3.7.0安装教程(附安装包) | 我爱分享网
  3. 三星手机Android9和10的区别,三星Galaxy S10+ VS 小米9 拍照深度对比评测:神仙打架...
  4. 信号分析中一些特征量
  5. servlet基础总结
  6. DataView.RowFilter的使用(包括in,like等SQL中的操作符)
  7. 直接上手!不容错过的 Visual Studio Code 十大扩展组件
  8. uiuc工程学院计算机,UIUC的ECE「伊利诺伊大学香槟分校电气与计算机工程系」
  9. 网络异步编程(C#)团购课
  10. 使用ffmpeg推流拉流
  11. win7如何配置java环境变量_Windows 7系统如何配置Java环境变量?
  12. 新手如何在CSDN上写博客
  13. java语言程序设计郎波_Java语言程序设计(第3版) 郎波 清华大学出版社
  14. ubuntu 测试硬盘读写速度
  15. 高项_第一章信息化和信息系统
  16. html设置ie9兼容性视图,ie9兼容性视图设置方法
  17. 任务一:实现图形计算功能 1 关键算法(30 分)输入一个正方体的边长(a)计算正方体的体积。要求:结果保留两位小数,使用带参数的方法实现
  18. 运用Doolitle分解法解线性方程组
  19. pygame:超级玛丽
  20. 教育消费分期系统介绍

热门文章

  1. 更改C盘用户目录下的用户名(真实有效)
  2. HyperLynx(十四)高级分析技术
  3. net-java-php-python-伊犁旅游网站计算机毕业设计程序
  4. 电子表格软件能解决什么问题?
  5. android 图片气泡,关于实现微信聊天气泡里显示图片解决方案
  6. R语言使用psych包进行主成分分析PCA和探索性因子分析EFA的常用函数介绍:principal、fa、fa.parallel、factor.plot、fa.diagram、scree
  7. 【Python】列表 - 集大成篇
  8. linux Ubuntu 报错:No command ‘setenv‘ found
  9. 微信小程序/校园社区论坛/微信云开发/云函数
  10. 数据结构与算法-普利姆算法(Prim) | 尚硅谷韩顺平