我是靠谱客的博主 甜蜜飞机,最近开发中收集的这篇文章主要介绍软考网工笔记基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基础

第一章 计算机硬件基础

1、数据的表示⭐⭐⭐

进制转换

在这里插入图片描述
在这里插入图片描述

计算机中的原码反码补码

在这里插入图片描述

在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.

1、机器数

一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.

比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。

那么,这里的 00000011 和 10000011 就是机器数。

2、真值

因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。

所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

  1. 原码(计算机二进制真实值的表示)

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

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:

[1111 1111 , 0111 1111]==>[-127 , 127]
  1. 反码

反码的表示方法是:

  • 正数的反码是其本身
  • 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反
  1. 补码

补码的表示方法是:

  • 正数的补码就是其本身
  • 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补

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

4.移码

移码表示方法是:

  • 在补码的基础上,符号位取反,表示位不变
[+1] = [00000001]原 = [00000001]反 = [00000001]补 = [10000001]移

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

例题:

在这里插入图片描述

解:十六进制中的F表示15,二进制表示为1111

(FFFF)补 转换二进制为 (1111 1111 1111 1111)补

补码推原码:

首先推出反码:补码到反码符号位不变表示位减一;既(1111 1111 1111 1111)补 = (1111 1111 1111 1110)反

反码推原码:符号位不变其余位取反(1111 1111 1111 1110)反 = (1000 0000 0000 0001)原

(FFFFH)补 = (1111 1111 1111 1111)补 = (1111 1111 1111 1110)反 = (1000 0000 0000 0001)原= -1

则该题答案为B

本段来源

2、逻辑运算⭐⭐⭐

在这里插入图片描述

3、计算机结构⭐⭐⭐

在这里插入图片描述
操作码和地址码都应存入指令寄存器

累加寄存器临时存储算术/逻辑运算结果

4、指令系统⭐⭐⭐

在这里插入图片描述
在这里插入图片描述

采用不同寻址方式的主要目的是扩大寻址空间并提高灵活性

在机器指令的地址字段中,直接指出操作本身的寻址方式是立即寻址

5、CISC与RISC(指令集)⭐⭐

在这里插入图片描述

英特尔、AMD采用复杂指令集

高通、麒麟等手机处理器采用精简指令集

6、Flynn⭐

在这里插入图片描述

7、流水线技术⭐⭐

在这里插入图片描述

流水线技术指标

(N=指令条数、Ts是未采用流水线的执行时间、Tk是采用流水线时间)

吞吐率(Tp):Tp=n/Tk

加速比(S):S=Ts/Tk

效率

8、存储系统结构⭐⭐⭐

存储器是分层次的,离CPU越近的存储器速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限。其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。

寄存器的速度最快,可以在一个时钟周期内访问,其次是高速缓存,可以在几个时钟周期内访问,普通内存可以在几十个或几百个时钟周期内访问。

存储器分级,利用的是局部性原理。我们可以以经典的阅读书籍为例:

  • 我在读的书,捧在手里(寄存器)。
  • 我最近频繁阅读的书,放在书桌上(缓存),随时取来读。
  • 当然书桌上只能放有限几本书。我更多的书在书架上(内存)。
  • 如果书架上没有的书,就去图书馆(磁盘)。

我要读的书如果手里没有,那么去书桌上找,如果书桌上没有,去书架上找,如果书架上没有去图书馆去找。

可以对应寄存器没有,则从缓存中取,缓存中没有,则从内存中取到缓存,如果内存中没有,则先从磁盘读入内存,再读入缓存,再读入寄存器。

在这里插入图片描述
主存:内存

辅存:硬盘等

多级存储共存

存储器的存储方式

在这里插入图片描述

随机存取-内存

相联存取-缓存

直接存取-磁盘

顺序存取-磁带

9、主存储器基础⭐⭐⭐

在这里插入图片描述

1KB=2^10=1024字节

1MB=2^10 KB=1024KB

1GB=2^10 MB=1024MB

1B=8bit

例1解:( 4M / 256k ) * ( 16B / 8bit ) = 16 * 16

​ 4M = 4096k 16B = 128bit

​ 4096 / 256 = 16 128 / 8 = 16

​ 16 * 16=256

例2解:(CBFF-A4000)+1=27FFF + 1 = 28000

​ 即28000H字节,转换为十进制:2 * 16^4 + 8 * 16^3 = 163840b

​ 单位转换:163840 / 1024 = 160kb

10、Cache缓存⭐⭐

CPU正在访问的指令和数据,其可能会被以后多次访问到,或者是该指令和数据附近的内存区域,也可能会被多次访问。因此,第一次访问这一块区域时,将其复制到cache中,以后访问该区域的指令或者数据时,就不用再从主存中取出。

在这里插入图片描述

直接映射
将一个主存块存储到唯一的一个Cache行。

  1. 多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。
    cache的行号i和主存的块号j有如下函数关系:i=j mod m(m为cache中的总行数)
    img
    优点:硬件简单,容易实现
    缺点:命中率低, Cache的存储空间利用率低

全相联映射
可以将一个主存块存储到任意一个Cache行。
主存的一个块直接拷贝到cache中的任意一行上
img
优点:命中率较高,Cache的存储空间利用率高
缺点:线路复杂,成本高,速度低

组相联映射
可以将一个主存块存储到唯一的一个Cache组中任意一个行。
将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:cache总行数m=u×v 组号q=j mod u
img
组间采用直接映射,组内为全相联
硬件较简单,速度较快,命中率较高

————————————

存储部分的一部分笔记内容来源于:

http://blog.chinaunix.net/uid-24774106-id-2777989.html

https://www.cnblogs.com/jokerjason/p/10711022.html

2021.6.29待补充

最后

以上就是甜蜜飞机为你收集整理的软考网工笔记基础的全部内容,希望文章能够帮你解决软考网工笔记基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部