1.计算机系统基础知识
1.1计算机系统硬件基础组成
🌱🌱 计算机系统是有硬件和软件组成的,他们协同工作来运行程序,计算机的基本硬件系统由运算器,控制器,存储器,输入设备和输出设备5大部分组成。运算器,控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,Cpu).cpu是硬件系统的核心,用于数据的加工处理,能够完成各种算术,逻辑运算及控制功能。存储器是计算器系统中的记忆设备,分为内部存储器和外部存储器,前者速度高,容量小,一般用于临时存在程序,数据及中间结果。而后者容量大,速度慢,可以长期保存程序和数据。输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
1.22中央处理单元
cpu的组成
🌱cpu主要由运算器,控制器,寄存器组和内部总线等部件组成。
运算器和控制器
运算器负责各种类型的运算任务,它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。
控制器用于整个Cpu的控制工作,它负责依次访问程序指令,进行指令译码,并协调其他设备。
运算器
🍁 算术逻辑单元(ALU):它是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。
🍁 累加寄存器(AC) :通常简称累加器,它是一个通用寄存器,功能是当运算器的算术逻辑单元执行算术或逻辑运算是,为ALU提供一个工作区。
🍁 数据缓冲寄存器(DR): 作为cpu和内存,外设之间数据传送的中转站,作为cpu和内存,外设之间在操作速度上的缓冲。
🍁状态条件寄存器(PSW): 保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容。
控制器
🍀 程序计数器(PC),又称为指令计数器,具有寄存信息和计数两种功能。 用于存放下一条指令的地址。当一条指令被获取后,程序计数器的地址加1,指向下一条指令的地址。
🍀 地址寄存器(AR),用于保存当前cpu所访问的内存单元的地址。
🍀 指令译码器:计算机执行一条指令时,首先分析这条 指令的操作码是什么,以决定操作的性质和方法,然后才能控制计算机其他各部件协同完成指令表达的功能,这个分析工作由指令译码器来完成。
1.3数据表示
引言:各种数值在计算机中表示的形式称为机器数,其特点是采用二进制(binary)计数制,数的符号用0和1表示,小数点则隐含,表示不占位置。机器数对应的实际数值称为数的真值。
进制转换
R进制转十进制
R进制转十进制使用按权展示法,其具体的操作方式为:将R进制数的每一位数值用Rk形式表示,即幂的底数是R,指数为k,k与该位和小数点质检的距离有关,当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加一
例如:二进制10100.01 = 1×24 + 0×23 + 1×22 + 0×21 + 0×20 + 0×2(-1) + 1×2(-2)
十进制转R进制
十进制转R进制采用短除法(对十进制数使用除R取余,最后对余数倒数即可)
二进制,八进制,十进制,十六进制的转换
十进制(decimalism) | 二进制(binary) | 八进制(octal) | 十六进制(hexadecimal) |
---|---|---|---|
0 | 000 | 0 | 0 |
1 | 001 | 1 | 1 |
2 | 010 | 2 | 2 |
3 | 011 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 9 | |
10 | 1010 | A | |
11 | 1011 | B | |
12 | 1100 | C | |
13 | 1101 | D | |
14 | 1110 | E | |
15 | 1111 | F |
原码/反码/补码/移码
为了方便计算,带符号的机器数可采用原码,反码和补码等不同的编码方法,机器数的这些编码方法称为码制
🍂原码:最高位为符号位,其余低位表示数值的绝对值
🍂反码:正数的返码与原码相同,负数的反码是其绝对值按位取反(符号位不变)。
🍂补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)。
🍂移码: 补码的符号位按位取反。
码制的范围(带符号的,即第一位为符号位)
码制 | 定点整数 | 定点小数 | 数码个数 |
---|---|---|---|
原码 | -(2n-1-1) ~ + (2n-1-1) | -(1-2-(n-1)) ~ +(1-2-(n-1)) | 2n-1 |
反码 | -(2n-1-1) ~ + (2n-1-1) | -(1-2-(n-1)) ~ +(1-2-(n-1)) | 2n-1 |
补码 | -2n-1~ +(2n-1-1) | -1~+(1-2-(n-1)) | 2n |
移码 | -2n-1~ +(2n-1-1) | -1~+(1-2-(n-1)) | 2n |
[注]:在原码和反码中有0有+0和负0之分,而在补码中[+0]补=[-0]补 只有一个0。补码中的一种 数码结合 形式,符号位也表示数值位。
浮点数运算
浮点数表示
浮点数是小数点位置不固定的数, ** N=尾数基数指数**(N=MRe其中m称为尾数,e是指数,R为基数) 其中尾数一般为定点小数 ,指数即阶码 为定点整数。
两个浮点数运算
🍀对阶,尾数右移,阶码加1,尾数左移,阶码减1。
🍀尾数计算。
🍀结果格式化。
🤳特点
一般尾数用移码,阶码用补码,在IEEE754标准中,尾数也可以用原码表示。
阶码的位数决定数的表示范围。
尾数的位数决定有效精度,位数越多精度越高。
对阶时,阶码小的向阶码大的看齐。
对阶是通过较小数的尾数右移动实现的
二进制之浮点数与十进制的相互转换
十进制浮点数转换为二进制
🍀 以小数点为界,拆分
🍀整数部分除以基数取余,直到商为零,使用除2取余法。(短除法)
🍀小数部分乘基取整,直到小数部分为零,使用乘2取整法(从上往下)。
浮点数转换为十进制
🍀以小数点为界,按权展开相加:系数X基数的权次方相加
🍀整数部分基数的权是从左往右是0,1,2,3,4…
🍀小数部分基数的权从右往左是-1,-2,-3…
1.4校验码
🌱🌱计算机系统运行时,为了确保数据在传送的过程中无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括差错和纠错。通常使用校验码的方法来检测传送的数据是否出错。其基本的思想是把数据可能出现的编码分为两类:合理编码和错误编码。合理编码用于传送数据,错误编码是不允许数据中心出现编码。合理地设计错误编码以及编码规则,使得数据在传送中出现某种错误会变成错误编码,这样就可以检测出接受到数据是否出错。
🍂码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制数就称为数据校验码的码距。
例如,用4个二进制表示16中状态,则有16种不同的码字此时码距为1,如0000与0001
奇偶校验码
🍀奇偶校验码的编码方式是:由若干有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。
🍀奇校验:整个校验码(有效信息位和校验位)中 “1” 的个数为奇数。
🍀偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
奇偶校验,可检查1位,只能检查奇数位的错误(比如 发00,接受11 则偶校验校验不出来 ),并且奇校验不可纠错。
循环冗余校验码(cyclic Redundancy Check, CRC)
特点: crc校验,可检错,不可纠错。
🍁编码方式:在k位信息码之后拼接r位校验码。,应用CRC码的关键是如何从k位信息位简便地得到r位校验码(编码),以及如何从k+r位信息码判断是否出错。
🍁把接收到的CRC码用约定的生成多项式G(x)去除 (模二除法),如果正确,则余数为0,如果某一位出错,则余数不为0。 不同的位数出错其余数不同,余数和出错位序号之间有唯一的对应关系。
海明码
🌱🌱海明码(Hamming Code) 是一种利用奇偶性来检错和纠错的校验方法,可检错,也可纠错。
原理:在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供依据。
海明校验位的求取 2r≥ m+r+1
三者校验码比较
校验码数 | 校验码位置 | 检错 | 纠错 | 校验方式 | |
---|---|---|---|---|---|
奇偶校验 | 1 | 一般拼接在头部 | 可检奇数位错 | 不可纠错 | 奇校验:最终1的个数是奇数个; 偶校验:最终1的个数是偶数个。 |
CRC循环冗余校验 | 生成多项式最高次幂决定 | 拼接在信息位尾部 | 可检错 | 不可纠错 | 模二除法求余数,拼接作为校验位。 |
海明校验 | 2r≥m+r+1 | 插入在信息位中间 | 可检错 | 可纠错 | 分组奇偶校验 |
2.计算机体系结构
计算机体系结构的发展
指令
🌱🌱一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下:
操作码字段+地址码字段
OPA1A2…
寻址方式
🍀立即寻址方式:操作数直接在指令中,速度快,灵活性差。
🍀直接寻址方式:指令中存放的是操作数的地址
🍀间接寻址方式: 指令中存放了一个地址,这个地址对应的内容是操作数的地址。
🍀寄存器寻址方式:寄存器存放操作数
🍀寄存器间接寻址方式:寄存器内存放的是操作数的地址
CISC和RISC
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC(Complex Instruction Set Computer,复杂指令集计算机) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术 | 研制周期长 |
RISC(Reduced Instruction Set Computer 精简指令集计算机) | 数量少,使用频率接近定长格式,大部分为单周期指令操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器硬部线逻辑控制为主是和采用流水线 | 优化编译,有效支持高级语言。 |
流水线
🌱概念:流水线是指在程序中多条指令重叠进行操作的一种准并行处理实现技术。
🍁流水线周期:为执行时间最长的一段。(取指,分析,执行中最长的时间。
🍁流水线计算公式为:1条指令执行时间+(指令条数-1)*流水线周期
理论公式:(t1+t2+t3+t4+…+tk)+(n-1)*t( t为执行步骤,t为流水线周期, 默认用理论公式)
实践公式k*t+(n-1)*t
理论公式
实践公式
🍅流水线的吞吐率(Though Put rate,TP)是指==单位时间内流水线所完成的任务数量或输出结果数量。==计算流水线吞吐率的最基本公式如下:
🍅流水线最大吞吐率:
存储系统
存储器的层次结构
🌱🌱计算机系统可能包括各种存储器,如cpu内部的通用寄存器组,cpu内的Cache(高速缓存),cpu外部的Cache,主板上的主存储器,主板外的联机(在线)磁盘存储器以及脱机(离线)的磁带存储器和光盘存储器等。不同特点的存储器通过适当的硬件,软件有机地组合在一起形成计算机的存储体系结构。
内存(主存)可分为:随机存储器(RAM)与只读存储器(ROM)
对于Cache而言,它内部的所有内容都来自于内存,它所存储的内容是内存中的一小部分,但是运行速度却比内存快的多。
分类
按存储器所处的位置分类
🍀1,内存:也称为主存,设在主机内或主板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。
🍀2.外存:也称为辅存,如磁盘、磁带、光盘和U盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。
按存储器的构成材料分类
🍁1,磁存储器:用磁介质做成,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
🍁2,半导体存储器:根据所用元件可分为:双极型和MOS型;根据数据是否需要刷新可分为:静态和动态。
🍁3,光存储器:利用光学方法读/写数据的存储器,如光盘。
按存储器的工作方式分类
🍅1,读/写存储器(RAM):既能读取数据也能存入数据的存储器。
🍅2,只读存储器:工作过程中仅能读取的存储器,根据数据的写入方式又可分为:ROM、PROM、EPROM、EEPROM等。
🍅3,固定只读存储器(ROM):这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制。
🍅4,可编程的只读存储器(PROM):其中的内容可以由用户一次性写入,写入后不能再修改。
🍅5,可擦除可编程的只读存储器(EPROM):其中的内容既可以读出,也可以由用户写入,写入后还可以修改。
🍅6,电擦除可编程的只读存储器(EEPROM):与EPROM相似,既可以读出,也可以写入,只不过这种存储器采用电擦除的方式进行数据的改写。
🍅7,闪速存储器(FM):简称闪存,其特性介于EPROM和EEPROM之间,类似于EEPROM。结合了rom和ram的长处,常用作存储boot loader、bios,或者直接当硬盘使用,如SSD、SD card、U盘等。值得注意的是,此处的flash区别于LIDAR中快速大面积扫描硬件(fast large area scan hardware)的定义。与传统硬盘相比,flash质量轻、体积小、能耗低,但有以下局限:
1,需要先擦写后写入:写入时只能将原有的1(default)改写为0,除非擦除整块,否则不能将写入的0改写为1
2,块擦除次数受限:需要擦写均衡、坏块检测
3,读写干扰:通常使用ECC算法校验和校正
4,电荷泄露
按访问方式分类
🍀1,按地址访问的存储器。
🍀2,按内容访问的存储器。
按寻址方式分类
🥕1,随机存储器(RAM):这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
🥕2,顺序存储器(SAM):访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
🥕3,直接存储器(DAM):介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存储器。
局部性原理
🌱🌱 是指计算机在执行某个程序时,倾向于使用最近使用的数据,有两种表现形式:
1,时间局部性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行。
2,空间局限性是指一旦程序访问某个存储单元,则在不久的将来,其附近的存储单位也可能被访问。
Cache
🌱🌱 高速缓存(cache)是位于cpu与主存之间的一种存储器,速度高于主存低于寄存器,cache保存的内容cpu经常访问的数据,当cpu需要再次访问该部分数据时,就不再从主存中读取,节约了cpu的工作时间。
🌱🌱Cache的功能:提高cpu数据输入输出的速率,突破冯·诺依曼瓶颈,即cpu与存储系统间数据传输带宽限制。
🌱🌱在计算机的存储系统中,cache是访问速度最快的层次。
🌱🌱使用Cache改善系统性能的依据是程序的局部性原理。
Cache映像
主存与Cache之间的地址映射由硬件直接完成。
地址映像是将主存和Cache的存储空间划分为若干大小相同的页(或称为快)
🍀1,直接映像:指主存的块与Cache块的对应关系是固定的。优点是地址变换简单,缺点是灵活性差、Cache块冲突率高。
🍀2,全相联映像:允许主存的任一块可以调入Cache存储器的任何一个块的空间中。优点是Cache块冲突率低、灵活性好,缺点是访问速度慢、地址变换较复杂、成本太高。
🍀3,组相联映像:是前两种方式的折衷方案,即组采用直接映像方式、块采用全相联映像方式。
冲突率(高,中,低) | 电路复杂度(复杂,简单,折中) | |
---|---|---|
直接相连映像 | 高 | 简单 |
全相连映像 | 低 | 复杂 |
组相连映像 | 中 | 折中 |
主存 - 编址
🥕位:bit 是计算机中最小的数据单元,使用二进制,只能表示0和1
🥕字节(byte):一个字节由8位组成,从00000000到11111111,转换为十进制为0~255,一共256个数字。
🥕 字:是CPU一次能够处理数据位数的最大值,一个字通常由多个字节组成,和字长密切相关,通常说的64位CPU字是8个字节,32位CPU是4个字节
🥕 字长:字长又称为机器字长,是字的长度,这里的长度是用位来表示,64位CPU的字长就是64位,32位CPU的字长就是32位
🥕存储单元:计算机中的存储是由存储体来完成的每一个存储体相当于一个大箱子,这个大箱子又有许多个小格子,小格子中存储的就是实际存储的数据,这个小格子可以存储不同位数的数据,与MDR有关,存储体中的小格子数量由地址线确定,和MAR相等
🥕存储字:即一个存储单元中存储的一个具体二进制代码组合
🥕存储字长:即一个存储单元可存放的最大二进制位数,位数一般等于MDR大小
🍀存储单元个数=最大地址-最小地址+1
🍀总容量=存储单元个数编址内容
🍀总容量=单位芯片容量总片数
输入/输出技术
直接程序控制
直接程序控制是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。这种方法分为:无条件传送和程序查询方式两种情况。
🍅1,无条件传送:在此情况下,外设总是准备好的,它可以无条件的随时接收CPU发来的输出数据,也能够无条件的随时向CPU提供需要输入的数据。
🍅2,程序查询方式:在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。
中断方式
对于程序控制I/O的方法,其主要的缺点在于CPU必须等待I/O系统完成数据的传输任务,整个系统的性能严重下降。
利用中断方式完成数据的输入/输出过程为:当I/O系统与外设交换数据时,CPU无需等待也不必去查 询I/O的状态,而可以抽身出来处理其他任务。当I/O系统准备好了以后,则发出中断请求信号通知 CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与 I/O系统的数据交换,然后再返回被中断的程序继续执行。与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。
🍅1,多中断信号线法,每个中断源都有属于自己的一根中断请求信号线,向cpu提出中断请求。
🍅2,中断软件查询法。当CPU检测到一个中断请求信号以后,即转入到中断服务程序去 轮询每个中断源以确定是谁发岀了中断请求信号。对各个设备的响应优先级由软件设定。
🍅3,菊花链法软件査询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件査询法。 所有的I/O模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相连。当CPU 检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在I/O模块间传递,直到发 出请求的模块,该模块则把它的ID送往数据线由CPU读取。
🍅4,总线仲裁法一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可由 总线仲裁机制来裁定谁可以发出中断请求信号。当CPU发出中断响应信号后,该设备即把自己 的ID发往数据线。
🍅5,中断向量表法中断向量表用来保存各个中断源的中断服务程序的入口地址。
DMA(直接存储器存取)方式:DMA(Direct Memory Access)方式是为了在主存与外设之间实现高速,批量数据交换而设置的,DMA方式比程序控制方式与中断方式都要高效。(DMAC向总线裁决逻辑提出总线请求;cpu执行当前总线周期即可释放总线控制权,此时DMA响应,通过DMNC通过I/O 接口开始DMA传输)。
🍂DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。它和中断的主要区别在于,DMA只需要CPU在开始和完成传输时进行干预,其他时候不需要CPU干预
总线结构
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线
🍁特点:一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。
🍀1,数据总线(Data Bus),在cpu和RAM之间来回传送需要处理或是需要储存的数据。
🍀2,地址总线(Address Bus),用来指定在RAM(random access memory)之中储存的数据的地址。
🍀3,控制总线(Control Bus),将微处理器控制单元(control unit)的信号,传送到周边设备。
3.安全性,可靠性与系统性能评测基础知识
计算机安全概述
计算机安全是一个涵盖非常广的课题,既包括硬件,软件和技术,又包括安全规划,安全管理和安全监督。计算机安全可包括安全管理,通信与网络安全,密码学,安全体系及模型,容错与容灾,涉及安全的应用程序及系统开发,法律,犯罪及道德规范等领域。
其中安全管理是非常重要的,作为信息管理的管理部门应根据管理原则和该系统处理数据的保密性,指定相应的管理制度和规范。
加密技术和认证技术
加密 用来确定数据的保密性,可阻止被动攻击。
认证 用来确保报文发送者和接收者的真实性以及报文的完整性,可阻止主动攻击,认证技术有两种,一种是身份认证,一种是数字签名。
🍁加密 分为对称加密(私人密钥加密)和非对称加密(公开密钥加密)
🍀 对称加密:数据加密标准算法,三重DES(3DES,或称TDEA).RC-5(Rivest Cher 5) 国际数据加密算法,高级加密标准算法(advanced Encryption Standard, AES)
🍀非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(PublicKey)和私有密钥(Privatekey)包含 RSA 算法。
🍁 认证技术主要解决网络通信中通信双方的身份认可,认证的过程涉及加密和秘钥交换。认证放一般有账户名/口令认证,使用摘要算法认证和基于PKI的认证。
🍀数字签名采用私钥进行签名,公钥进行验证。
🍁信息摘要简要地描述了一份较长的信息或文件,它可以被看作一份长文件的“数字指纹”,信息摘要用于创建数字签名对于特定的文件而言,信息摘要是唯一的。(常见的摘要计算方法有MD5(128位输出)、SHA-1(160位输出)。)
计算机可靠性
🍁串联系统可靠性
🍁并联系统可靠性
计算机系统的性能评价
主频
⚡ 赫兹:频率的单位是赫兹,简称赫,以符号“Hz”表示。常用的频率单位有千赫(KHz)、兆赫(MHz)、吉赫(GHz)等。赫兹(H·Hertz)是德国著名的物理学家。1887年,他通过实验证实了电磁波的存在。后人为纪念他,将“赫兹”设为频率的单位。
KHz,相当于1,000Hz或0.000001GHz;
MHz,相当于1,000,000Hz或0.001GHz。
GHZ,相当1000000000Hz(109)Hz
cpu时钟周期:时钟发生器发出脉冲信号做出周期变化的最短时间称为震荡周期,也称cpu时钟周期。
主频:一秒内,震荡周期的个数称为时钟频率,称为主频,一般来说,主频越高,速度越快。
例如:2.4GHz就是主频,表示我的电脑一秒可以完成2.4x109个时钟周期,就表示计算机一秒可以经历2.4x109个时钟周期。
则,一个时钟周期仅仅需要1秒/2.4x109=4.167x10-10秒(0.0000000004167)