概述
基础
第一章 计算机硬件基础
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
- 原码(计算机二进制真实值的表示)
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[1111 1111 , 0111 1111]==>[-127 , 127]
- 反码
反码的表示方法是:
- 正数的反码是其本身
- 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
- 补码
补码的表示方法是:
- 正数的补码就是其本身
- 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+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行。
- 多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。
cache的行号i和主存的块号j有如下函数关系:i=j mod m(m为cache中的总行数)
优点:硬件简单,容易实现
缺点:命中率低, Cache的存储空间利用率低
全相联映射
可以将一个主存块存储到任意一个Cache行。
主存的一个块直接拷贝到cache中的任意一行上
优点:命中率较高,Cache的存储空间利用率高
缺点:线路复杂,成本高,速度低
组相联映射
可以将一个主存块存储到唯一的一个Cache组中任意一个行。
将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:cache总行数m=u×v 组号q=j mod u
组间采用直接映射,组内为全相联
硬件较简单,速度较快,命中率较高
————————————
存储部分的一部分笔记内容来源于:
http://blog.chinaunix.net/uid-24774106-id-2777989.html
https://www.cnblogs.com/jokerjason/p/10711022.html
2021.6.29待补充
最后
以上就是甜蜜飞机为你收集整理的软考网工笔记基础的全部内容,希望文章能够帮你解决软考网工笔记基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复