计算机组成原理与体系结构

简介: 计算机组成原理与体系结构

计算机组成原理与体系结构


一、数据的表示

进制转换


1. R进制转十进制使用按权展开法

(幂的指数与该位和小数点的距离有关,小数点左边为正数的值,反之为负数,以小数点左边的第一位记为0)


例:二进制 10100.01=1*2^4+1 *2^2+1 *2^-2

     七进制 604.01=6 *7^2 +4 * 7^0 +1 * 7^-2


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

(用十进制数除R取余,直到余数为零,最后将余数从下到上排列)


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

(1)二进制转八进制:从小数点开始,向左或向右每3位为一组用一位八进制数的数字表示,不足3位的要用0补足3位,就得到一个八进制数。

(2)二进制转十六进制:从小数点位置开始,向左或向右每四位二进制划分一组(不足四位数可补0),然后写出每一组二进制数所对应的十六进制数码。

10001110转化为八进制是216 转化为十六进制是8E


原码、反码、补码、移码


原码:就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:


      [+1]原 = 0000 0001

      [-1]原 = 1000 0001


反码:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。


      [+1] = [00000001]原 = [00000001]反

      [-1] = [10000001]原 = [11111110]反


补码:正数的补码就是其本身,负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后加一。


      [+1] = [00000001]原 = [00000001]反 = [00000001]补

      [-1] = [10000001]原 = [11111110]反 = [11111111]补


移码:只需要将它的补码的符号位取反。


浮点数运算


浮点数运算即科学计数法,表示方法为:N=M*R^e(其中,M称为尾数,e是指数,R为基数)。


二、计算机结构

image.png


三、计算机体系结构分类——Flynn

image.png


四、CISC与RISC

image.png


五、流水线

1.概念:

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

2.指令执行的流程:

——>取指——>分析——>执行——>

3.流水线计算

      流水线周期为执行时间最长的一段

      流水线计算公式:1条指令执行时间+(指令条数-1)*流水线周期

理论公式:(t1+t2+……+tk)+(n-1)*△t

实践公式: (k+n-1)*△t


4.流水线的吞吐率计算

流水线的吞吐率是指在单位时间内流水线所完成的任务数量或输出的结果数量。

计算公式:TP=指令条数/流水线执行时间

流水线最大吞吐率:TPmax=1/△t


5.流水线的加速比计算

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。


计算公式:S=不使用流水线执行时间/使用流水线执行时间


6.流水线的效率

流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比。


计算公式:E=n个任务占用的时空区/k个流水段总的时空区


六、Cache

1.功能:提高CPU数据输入输出的速率,突破冯·诺伊曼瓶颈,即CPU与存储系统间数据传送带宽限制。

2.在计算机的存储系统体系中,cache是访问速度最快的层次。

3.在使用cache改善系统性能的依据是程序的局部性原理。


相关文章
|
数据可视化
ShapeNet数据集及dataset代码分析
ShapeNet数据集及dataset代码分析
1291 0
|
Kubernetes 容灾 测试技术
ChaosBlade详细介绍
ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,包含混沌工程实验工具 chaosblade 和混沌工程平台 chaosblade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。【2月更文挑战第11天】
1954 12
|
12月前
|
自然语言处理 IDE 测试技术
通义灵码史上最全使用教程:秀一秀AI编程新肌肉
通义灵码是阿里云推出的一款智能编码辅助工具,基于通义大模型,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等功能。它支持 Visual Studio Code 和 JetBrains IDEs,适配多 IDE 原生设计,帮助开发者高效、流畅地编码。官方提供了详细的下载和安装指南,以及丰富的功能介绍和使用指南。
3027 4
|
12月前
|
SQL Java 数据库连接
mybatis使用二:springboot 整合 mybatis,创建开发环境
这篇文章介绍了如何在SpringBoot项目中整合Mybatis和MybatisGenerator,包括添加依赖、配置数据源、修改启动主类、编写Java代码,以及使用Postman进行接口测试。
229 0
mybatis使用二:springboot 整合 mybatis,创建开发环境
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
XML Java Maven
深入探讨Maven打包:打造精致的Zip包
本文介绍了如何使用Maven将Spring Boot项目打包并部署。首先,利用Maven Assembly Plugin创建包含JAR的ZIP文件,以便于部署和修改配置文件。该插件允许自定义打包内容和格式。在`package.xml`中定义了打包格式、依赖、脚本和资源文件的规则。接着,在POM.xml中配置插件,排除配置文件和静态资源以保持外部。最后,执行`mvn package`命令生成分发包,简化了项目的部署流程。
811 2
|
iOS开发 MacOS Python
完美解决 Python library not found: libpython3.10m.dylib, Python3, .Python, libpython3....
完美解决 Python library not found: libpython3.10m.dylib, Python3, .Python, libpython3....
338 0
|
Ubuntu Linux 开发工具
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(二)
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(二)
370 0