计算机组成原理
计算机基础知识
计算机系统的硬件资源
中央处理机(CPU)、存储器(主存与外存)、输入\输出设备
进程
进程是资源分配和独立运行的基本单位。
进程:程序、数据、进程控制块
分类:系统进程和用户进程;父进程和子进程。
状态:就绪、运行、阻塞;
程序与进程的区别:程序是静态的指令系列,进程是执行程序的线程而保留的资源集。
进制转化
R进制转十进制使用按权展开法:
将R进制数的每一位数值用Rk形式表示,即:幂的底数数R,指数是K,K与该位和小数点之间的距离有关。以小数点为分界线,向左或向右,K值为该位与小数点之间的数字的个数(向左时K=个数-1;向右时k=个数乘以-1)
P = ∑ k = 1 n a k R t for P 是 二 进 制 数 , a k 是 P 的 第 k 位 的 数 , t 是 { k ∗ − 1 , k 位 于 小 数 点 右 侧 k − 1 , k 位 于 小 数 点 左 侧 . \displaystyle \sum_{k=1}^n a_k R^t\ \quad\quad \text{for } P是二进制数,a_k是P的第k位的数,t是 \{_\relax{k * -1,k位于小数点右侧} ^\relax{k -1,k位于小数点左侧} . k=1∑nakRt for P是二进制数,ak是P的第k位的数,t是{k∗−1,k位于小数点右侧k−1,k位于小数点左侧.
十进制转R进制使用短除法,将余数倒过来书写。
编码
编码 | 1 | -1 | -1+1 |
---|---|---|---|
原码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
移码 | 1000 0001 | 0111 1111 | 1000 0000 |
注:最高位为符号位,0表示正,1表示负。一个字节是8byte;
正数的补码与原码相同,负数的反码符号位不变,其他位取反;
正数的补码与原码相同,负数的补码是在反码的基础上加1;
移码是特定场景,用作浮点运算的阶码,补码的符号位取反,在笛卡尔坐标中,正数位于负数的右边。
数值表示范围
整数 | |
---|---|
原码 | − ( 2 n − 1 − 1 ) 至 2 n − 1 − 1 \displaystyle-\left( 2^\relax{n-1} - 1 \right) \quad\text{至}\quad 2^\relax{n-1} -1 −(2n−1−1)至2n−1−1 |
反码 | − ( 2 n − 1 − 1 ) 至 2 n − 1 − 1 \displaystyle-\left( 2^\relax{n-1} -1 \right) \quad\text{至}\quad 2^\relax{n-1} -1 −(2n−1−1)至2n−1−1 |
补码 | − 2 n − 1 至 2 n − 1 − 1 \displaystyle- 2^\relax{n-1} \quad\text{至}\quad 2^\relax{n-1} -1 −2n−1至2n−1−1 |
原码和补码+0和-0的二进制数是不一样的,而补码+0和-0的二进制数是一样的,在负数这边就多空了一个数
浮点数运算
计算机结构
算术逻辑单元:运算器->运算操作
累加寄存器:运算过程中,存储一些值;
数据缓存寄存器:读写过程中,用来暂存数据
状态条件寄存器:用来存储运算过程中的标志位的,如溢出、进位、中断等
程序计数器:运行程序,指令地址的存储
指令:指令操作
时序:时间相关
层次化存储结构
从上到下 速度由快到慢,容量由小到大(性价比)
Cache不是必须的,按内容存储的,单位K或M
CPU是可以直接与主存交互的,很慢
主存 容量大
外存:U盘,硬盘、光盘等
Cache
Cache的功能:提高CPU数据输入输出的速率,突破冯.诺伊曼瓶颈。即CPU与存储系统间数据传送带宽限制。
在计算机的存储系统中(寄存器容量太小,这里不算),Cache是访问速度最快的层次;
使用Cache改善系统性能的依据是程序的局部性原理。
t 3 = h ∗ t 1 + ( 1 − h ) ∗ t 2 . \displaystyle t_3 = h * t_1 + \left(1-h \right)*t_2. t3=h∗t1+(1−h)∗t2. 。h表示对Cache的访问命中率,(1-h)称失效率(未命中率),t1表示Cache的周期时间,t2表示主存储器周期时间,t3表示Cache+主存储器系统的平均周期。
串联系统与并联系统
可靠度: R = R 1 ∗ R 2 ∗ . . . ∗ R n . \displaystyle R = R_1 * R_2* ... *R_n. R=R1∗R2∗...∗Rn.
失效率: λ = ∑ i = 1 n λ i . \displaystyle λ = \sum_{i=1}^n λ_i. λ=i=1∑nλi.;大概的计算
失效率: λ = 1 − R . \displaystyle λ = 1-R. λ=1−R.;
可靠度: R = 1 − ( 1 − R 1 ) ∗ ( 1 − R 2 ) ∗ . . . ∗ ( 1 − R 2 ) . \displaystyle R = 1 - \left(1 - R_1\right) * \left(1 - R_2\right)* ... * \left(1 - R_2\right). R=1−(1−R1)∗(1−R2)∗...∗(1−R2).