计算机系统知识

1.数值转换

1)进制基本要素

进制的缩写:二进制是Binary,简写为B。八进制是Octal,简写为O。十进制为Decimal,简写为D。十六进制为Hexadecimal,简写为H。

特点\数制二进制B八进制O十进制D十六进制H
基本数码0,10~70~909,AF
基数(底数)281016
位权 2 n 2^n 2n 8 n 8^n 8n 1 0 n 10^n 10n 1 6 n 16^n 16n

2)R进制 -> 十进制

按权展开法:将R进制数的每一位数值用 R k R^k Rk形式表示,其中R为基数(底数),k为指数。

示例:二/八/十六进制转为十进制(按权展开)

  • 二进制 10100.01 ( B ) = 1 ∗ 2 4 + 0 ∗ 2 3 + 1 ∗ 2 2 + 0 ∗ 2 1 + 0 ∗ 2 + 0 ∗ 2 − 1 + 1 ∗ 2 − 2 10100.01(B)=1 * 2^4 + 0 * 2^3 + 1 * 2^2 + 0 * 2^1 + 0 * 2 + 0 * 2^-1 + 1 * 2^-2 10100.01(B)=124+023+122+021+02+021+122
  • 八进制 256.3 ( O ) = 2 ∗ 8 2 + 5 ∗ 8 1 + 6 ∗ 8 0 + 3 ∗ 8 − 1 256.3(O)=2 * 8^2 + 5 * 8^1 + 6 * 8^0 + 3 * 8^-1 256.3(O)=282+581+680+381
  • 十六进制 6 F 8 A ( H ) = 6 ∗ 1 6 3 + 15 ∗ 1 6 2 + 8 ∗ 1 6 1 + 10 ∗ 1 6 0 6F8A(H)=6 * 16^3 + 15 * 16^2 + 8 * 16^1 + 10 * 16^0 6F8A(H)=6163+15162+8161+10160

3)十进制 -> R进制

整除取余法(短除法):将十进制除以需要转换的进制的基数,得到的余数由下往上写。

  • 十进制100转为二进制: 1100100 ( B ) 1100100(B) 1100100(B)
  • 十进制100转为八进制: 144 ( O ) 144(O) 144(O)
  • 十进制100转为十六进制: 64 ( H ) 64(H) 64(H)

转换

4)二进制 <- -> 八进制、二进制 <- -> 十六进制

  • 二进制的基本数码:1、0
  • 八进制的基本数码:0、1、2、3、4、5、6、7
  • 十六进制的基本数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F

二进制转八进制:根据位权可以得知3位二进制(如111)可以表示一位八进制(7);正数从右边往左边三位分割,不足则前面补0,负数从左往右分三位,不足三位后面补0。

二进制转十六进制:根据位权可以得知4位二进制(如1111)可以表示一位十六进制(F);正数从右边往左边4位分割,不足则前面补0,负数从左往右分4位,不足三位后面补0。

八进制转二进制:每一位数根据整除取余法(短除法)展开。

十六进制转二进制:每一位数根据整除取余法(短除法)展开。

10001110 <- 010 001 110 -> 216(O)
10001110 <- 1000 1110 -> 8E(H)

5)数据的存储单位

在计算机中,数据的最小存储单位为BIT,1比特为1个二进制位。字节(Byte,B),1个字节为8个二进制位。除字节(Byte)外,还有千字节(KB),兆字节(MB),吉字节(GB),太字节(TB)。换算关系如下:

  • 1 B = 8 b i t 1B=8bit 1B=8bit
  • 1 K B = 1024 B = 2 10 B 1KB=1024B=2^{10}B 1KB=1024B=210B
  • 1 M B = 1024 K B = 2 20 B 1MB=1024KB=2^{20}B 1MB=1024KB=220B
  • 1 G B = 1024 M B = 2 30 B 1GB=1024MB=2^{30}B 1GB=1024MB=230B
  • 1 T B = 1024 G B = 2 40 B 1TB=1024GB=2^{40}B 1TB=1024GB=240B

6)二进制的算术运算

加法运算:0+0=0、0+1=1、1+0=1、1+1=0(向上进一位)

减法运算:0-0=0、1-0=1、1-1=0、0-1=1(向上借一位)

乘法运算:00=0、10=0、01=0、11=1

除法运算:0/0(无意义)、0/1=0、1/1=1、1/0(无意义)

逻辑运算:与、或、非、异或

示例:内存按字节编址从A5000H到DCFFFH的区域其存储容量为224KB。

分析:DCFFFH-A5000H+1=(DCFFFH+1-A5000H)=DD000H-A5000H=38000H;
根据按权展开法转换为十进制, 38000 H = 3 ∗ 1 6 4 + 8 ∗ 1 6 3 = ( 3 ∗ 2 6 + 8 ∗ 2 2 ) ∗ 2 10 = 224 K ∗ 1 B 38000H=3*16^4+8*16^3=(3*2^6+8*2^2)*2^{10}=224K*1B 38000H=3164+8163=(326+822)210=224K1B

7)数据的表示

表示

补码:常用于加减运算,部分计算机数的表示、存储。移码:常用语浮点数的阶码。

  • 定点数:小数点的位置固定不变的数,小数点不需要占用一位二进制定点整数。定点小数
  • 浮点数: N = R e ∗ M N=R^e*M N=ReM其中M称为尾数,e是指数(阶码),R为基数(阶码的底)
  • 计算:对阶(小阶对大阶) -> 尾数计算 -> 结果格式化;阶符、阶码(决定数值表示的范围)、数符、尾数(决定数值表示的精度)

示例:机器字长为n位的二进制数可以用补码来表示 2 n 2^n 2n 个不同的有符号定点小数。

分析:范围为 − 2 n − 1 ~ 2 n − 1 − 1 -2^{n-1}~ 2^{n-1}-1 2n12n11,因此 2 n − 1 − 1 − ( − 2 n − 1 ) = 2 n 2^{n-1}-1-(-2^{n-1})=2^n 2n11(2n1)=2n

示例:如果“2X”的补码是 90H,那么X的真值是 -56。

分析:90H 转换为二进制 1001 0000,第一位是1为负数;补码(1001 0000)的原码是取反加1为原码(1111 0000)=-112,进而X=-56。

示例:某机器字长为n,最高位是符号位,其定点整数的最大值为 2 n − 1 − 1 2^{n-1}-1 2n11

2.计算机基础知识

计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。

运算器、控制器等部件被集成在一起统称为中央处理单元(CentralProcessingUnit, CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成算术运算、逻辑运算及控制功能。

存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于存储运行过程中的程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。

输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。

2.1 中央处理单元(CPU)

CPU的功能有程序控制、操作控制、时间控制和数据处理。主要由运算器、控制器、寄存器组和内部总线等部件组成。

1)运算器

运算器是数据加工处理部件,完成所规定的各种算术和逻辑运算,主要功能:

  1. 执行所有的算术运算。如加、减、乘、除等基本运算及附加运算。
  2. 执行所有的逻辑运算并进行逻辑测试。如与、非、或、零值测试或两个值的比较等。

运算器的组成部分及其功能:

  • 算术逻辑单元(Arithmetic and Logical Unit,ALU)。负责处理数据,实现对数据的算术运算和逻辑运算。
  • 累加寄存器(Accumulator,AC)。也称累加器,通用寄存器,当算术逻辑单元ALU执行运算时,为其提供一个工作区。
  • 数据缓冲寄存器(Data Buffer Register,DR)。写内存时,暂存指令或数据。
  • 状态条件寄存器(Program Status Word)。存状态标志与控制标志。

2)控制器

控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。

控制器的组成部分及其功能:

  • 程序计数器(Program Counter,PC)。存储下一条要执行完整指令的地址。
  • 指令寄存器(Instruction Register,IR)。存储即将执行的指令。
  • 地址寄存器(Address Register,AR)。保存当前CPU所访问的内存单元的地址。
  • 指令译码器(Instruction Decoder,ID)。对指令中的操作码字段进行分析解释,识别该指令规定的操作,然后向操作控制器发出具体的控制信号。
  • 时序部件:提供时序控制信号指令中的操作码字段。

3)寄存器组

寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。

4)总线

总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道。一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。分类如下:

  • 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或需要存储的数据。是双向的
  • 地址总线(Address Bus):用来指定在 RAM(Random Access Memory)之中存储的数据地址。用于传送CPU发出的地址信息,是单向的
  • 控制总线(Control Bus):将微处理器控制单元(Control UnitUnit)的信号,传送到周边设备。用来传送控制信号、时序信号和状态信息等。

总线的性能指标:带宽(B/S)、位宽(B)、工作频率(f,HZ,1/S);带宽=位宽x工作频率

示例:总线宽度为32bit,时钟频率为200MHZ,若总线上每5个时钟传送一个32bit字,则该总线的带宽为160MB/S。

分析:带宽=位宽x工作频率=(32bit/8bit)/5*1/200=4B/(1/40)=160。

2.2 存储器

按存储器所处的位置,可将其分为内存和外存。

  • 内存。内存也称为主存,设置在主机内(或主机板上),用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快
  • 外存。外存也称为辅存,如磁盘、磁带和光盘等,用来存放当前不参与运行的大量信息,必要时可把需要的信息调入内存。相对于内存,外存的容量大、速度慢

按存储器的构成材料分类:

  • 磁存储器。其是用磁性介质做成的,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
  • 半导体存储器。根据所用元件又可分为双极型和MOS型,根据数据是否需要刷新。又可分为静态(Staticmemory)和动态(Dynamicmemory)两类。
  • 光存储器。如CD-ROM、DVD-ROM等光盘(Optical Disk)存储器。

按存储器的工作方式分类:

  • 读写存储器(Random Access Memory, RAM)。其是既能读取数据也能存入数据的存储器。
  • 只读存储器。根据数据的写入方式,这种存储器又可分为固定只读存储器(Read Only Memory, ROM)、可编程的只读存储器(Programmable Read Only Memory, PROM)、可擦除可编程的只读存储器(Erasable Programmable Read Only Memory, EPROM)和电擦除可编程的只读存储器 (Electrically Erasable Programmable Read Only Memory, EEPROM)等类型。

按访问方式可分为按地址访问的存储器和按内容访问的存储器。

按寻址方式分类:

  • 随机存储器(Random Access Memory, RAM)。这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
  • 顺序存储器(Sequentially Addressed Memory, SAM)。访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
  • 直接存储器(Direct Addressed Memory,DAM)。介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。

外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存后才可访问。外存储器由磁表面存储器(如磁盘、磁带)及光盘存储器构成。

磁盘容量有两种指标:

  • 一种是非格式化容量,它是指一个磁盘所能存储的总位数。非格式化容量=面数X(磁道数/面)X内圆周长X最大位密度
  • 另一种是格式化容量,它是指各扇区中数据区容量总和。格式化容量=面数X(磁道数/面)X(扇区数/道)X(字节数/扇区)

2.3 输入输出设备管理

从硬件角度看,输入/输出(I/O)设备是电子芯片、导线、电源、电子控制设备、电机等组成的物理设备,从软件角度只关注输入/输出设备的编程接口。

程序控制方式:

  1. 无条件传送方式。外设总是准备好的,无条件,随时接收和提供数据。
  2. 程序查询方式。通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。
  3. 中断方式:CPU不等待,也不执行程序去查询外设的状态,而是由外设在准备好以后,向CPU发出中断请求。

以上三种方式都需要CPU的参与。

  1. DMA方式:数据的传输是在主存和外设之间直接进行,不需要CPU的干预,实际操作是由DMA硬件直接执行完成的。
  2. 通道方式和外围处理机方式(IOP):更进一步减轻了CPU对I/0操作的控制,更进一步提高了CPU的工作效率,但是是以增加更多硬件为代价的。

3.计算机体系结构

3.1 CISC 和 RISC

指令集体系结构(Instruction Set Architecture, ISA)是指一个处理器支持的指令和指令的字节级编码。不同的处理器族支持不同的指令集体系结构,因此,一个程序被编译在一种机器上运行,就不能在另一种机器上运行。

CISC(Complex Instruction Set Computer,复杂指令集计算机)的基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大而复杂。微处理器x86的体系结构属于CISC类型。

CISC的主要弊病:

  • 指令集过分庞杂。
  • 需要多个CPU周期,机器的处理速度慢。
  • 指令系统过分庞大,使得目标指令范围大,编译程序本身冗长而复杂,从而难以优化编译使之生成真正高效的目标代码,。
  • CISC强调完善的中断控制,势必导致动作繁多,设计复杂,研制周期长。
  • CISC给芯片设计带来很多困难,使芯片种类增多,出错几率增大,成本提高而成品率降低。

RISC(Reduced Instruction Set Computer,精简指令集计算机)的基本思想是通过減少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序,导致机器的指令系统进一步精炼而简单。ARM处理器属于RISC。

RISC的关键技术:

  • 重叠寄存器窗口技术。
  • 优化编译技术。
  • 超流水线及超标量技术。
  • 硬布线逻辑与微程序相结合在微程序技术中。

3.2 指令、寻址方式

指令:一条指令就是机器语言的一个语句,是一组有意义的二进制代码。包含操作码和地址码:

  • 操作码字段OP:指出来计算机要执行什么性质的操作。
  • 地址码字段A:包含各操作数的地址及操作结果的存放地址等。

寻址方式如下:

  • 立即寻址方式。特点是操作数直接在指令中,速度快,灵活性差。如 MOV R1,#42H
  • 直接寻址方式。特点是指令中存放的是操作数的地址。如 MOV R 40H
  • 间接寻址方式。指令中存放了一个地址,这个地址对应的内容是操作数的地址。如 MOV R1。
  • 寄存器寻址方式。特点是寄存器存放操作数。如 MOV R1,R2。
  • 寄存器间接寻址方式。特点是寄存器内存放的是操作数的地址。

指令系统中采用不同寻址方式的目的是扩大寻址空间并提高编程灵活性。

3.3 流水线技术

流水线技术:多条指令重叠进行操作的一种准并行处理实现技术。

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

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

  • 理论公式: ( t 1 + t 2 + . . . + t k ) + ( n − 1 ) ∗ d t (t_1+t_2+...+t_k)+(n-1)*dt (t1+t2+...+tk)+(n1)dt,dt为流水线周期。
  • 实践公式: k ∗ d t + ( n − 1 ) ∗ d t k*dt+(n-1)*dt kdt+(n1)dt不常用,dt为流水线周期。

流水线的吞吐率(TP)计算的最基本公式为: T P = n / T k TP=n/T_k TP=n/Tk,n为指令数,指令总时间 T k T_k Tk。有时也用流水线周期,即执行时间最长的一段代替 T k T_k Tk

流水线最大吞吐率:流水线周期的倒数

示例:若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns,那么流水线周期是2ns。100条指令全部执行完毕需要的时间就是203ns。

分析:流水线周期=max(2,2,1)=2ns。 ( t 1 + t 2 + . . . + t k ) + ( n − 1 ) ∗ d t (t_1+t_2+...+t_k)+(n-1)*dt (t1+t2+...+tk)+(n1)dt=(2+2+1)+(100-1)*2=203

4.存储结构系统

存储器被组织成金字塔形的层次结构:存储器自上而下,组成6个层次结构,依次变得更慢、访问频率更低、容量更大、每字节的造价更便宜。在存储器层次结构中,越靠近上层,速度越快,容量越小,单位存储容量价格越高。

层次结构

  1. 存储器系统的项层是CPU的寄存器,其速度和CPU速度相当。
  2. 第二\三层是高速缓冲存储器Cache,和CPU速度接近。
  3. 第四层是主存储器,也称内部存储器或者RAM(Random Access Memory)。
  4. 第五层是磁盘。存储器体系最后一层是光盘、磁带等。

1)高速缓存(Cache)

高速缓存(Cache)用来存放当前最活跃的程序和数据。

  • 功能:提供CPU数据输入输出的频率,突破所谓的冯诺伊曼瓶劲。
  • 速度:在计算机的存储系统体系中,Cache是访问速度较快的层次。
  • 原理:使用Cache改善系统性能的依据是程序的局部性原理。
  • 组成:Cache由控制部分和Cache存储器两部分组成。

平均系统周期时间(以读操作为例:使用Cache+主存储器) t 3 = h ∗ t 1 + ( 1 − h ) ∗ t 2 t_3=h*t_1+(1-h)*t_2 t3=ht1+(1h)t2
其中,h代表对Cache的访问命中率, t 1 t_1 t1表示Cache的周期时间, t 2 t_2 t2表示主存储器周期时间,系统的平均周期为 t 3 t_3 t3,(1-h)又称为失效率(未命中率)

2)地址映像

  • 通常由SRAM(Static Random Access Memory静态存储器)组成。其访问速度远高于主存,接近CPU。
  • 其功能是提高CPU数据输入输出的速率。其理论依据是程序的局部性原理。实现基础是将主存和Cache划分成大小相同的块/页。
  • 装入缓存时将主存块与Cache块的映射关系存入相联存储表(硬件实现)中。
  • CPU通过主存地址访存时先访问Cache(命中可提升速度,所以其关键性能指标是命中率),依据主存地址关联相联存储表转换为Cache地址。如果在Cache没有,才需要访问主存(Cache页置换,置换算法会影响命中率)。

3)直接映像

直接映像

  • 主存储器中一块只能映像到cache的一个特定的块中。
  • 主存与缓存分成相同大小的数据块。
  • 主存空间按缓存容量分成区,每一区的块数与缓存的总块数相等。
  • 主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。

特点:

  • 地址变换电路简单,访问速度快
  • 空间利用率低,冲突概率高
  • 对页面置换算法依赖度较高,且Cache空间利用率较低,命中率较低

4)全相联地址映像

  • 主存的任意一块可以映像到cache中的任意一块的位置上。
  • 主存与缓存分成相同大小的数据块。
  • 主存的某一数据块可以装入缓存的任意一块空间中。

特点:空间利用率高,命中率较高。冲突概率低。实现复杂,速度慢,适合小容量cache。

5)组相联地址映像

全相联地址映像

  • 主存和cache按同样大小分块;
  • cache分为若干组,如两块一组,主存按cache组数分区。
  • 每个组采用直接映射方式。
  • 组内的块则采用全相联映像方式。

特点是以上两种方式的折中。实现难度和造价要比直接映像方式高。

5.可靠性、校验码

1)中断的概念

中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程。

根据中断源产生的条件,可以把中断分为外中断和内中断:

  • 外中断:是指来自处理机和内存外部的中断。包括1/0设备发出的I/0中断、外部信号中断、各种定时器引起的时钟中断。以及程序调试中设置的断点等”的调试中断等。外中断在狭义上一般被称为中断。
  • 内中断:主要是指在处理机和内存内部产生的中断。内中断一般称为P异常,包括程序运算引起的各种错误,如算术操作溢出、数据格式非法、零等。

2)可靠性

  • 串联系统的可靠性: R = R 1 ∗ R 2 ∗ R 3 ∗ . . . ∗ R N R=R_1 * R_2 * R_3 *...* R_N R=R1R2R3...RN
  • 并联系统的可靠性: R = 1 − ( 1 − R 1 ) ∗ ( 1 − R 2 ) ∗ ( 1 − R 3 ) ∗ . . . ∗ ( 1 − R N ) R=1 - (1-R_1) * (1-R_2) * (1-R_3) *...* (1-R_N) R=1(1R1)(1R2)(1R3)...(1RN)
  • 混合系统的可靠性:由串联和并联混合使用。

3)校验码

一个编码系统的码距就是整个编码系统中任意(所有)两个码字(合法编码)的最小距离
例:

  • 若用1位长度的二进制编码。若A=1,B=0。这样A,B之间的最小码距为1。
  • 若用2位长度的二进制编码,若以A=11,B=00为例,A、B之间的最小码距为2。
  • 若用3位长度的二进制编码,可选用111,000作为合法编码。A,B之间的最小码距为3。

常见的检验码:

  • 奇偶校验码:仅可检错,可检测1(奇数)位错。通过在编码中增加一位校验位来使编码中的1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。
  • CRC(循环冗余码):仅可检错,可检测多位错。利用生成多项式为K个数据位产生r个校验位来进行编码,K位之后,其编码长度为 K+r
  • 海明码:可检错,且可纠1位错。在数据位之间插入K个校验位,通过扩大码距来实现检查和纠错。设数据位是n位,校验位是k位,则n和k必须满足 2 k − 1 ≥ n + k 2^k-1\geq n+k 2k1n+k
  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有请小发菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值