计算机基础及体系结构
1、数据表示:
1)进制转换。
- 带小数的数字转换,从左到右,-1依次递增。[+0.5]=0.1000000
2)原码/反码/补码/移码表示。
- 正数的原码补码反码都相同。0的原码:[+0]=00000000、[-0]=10000000
- 负数的反码符号位不变,取反。0的反码表示有两种:[+0]=00000000、[-0]=11111111。
- 负数的补码为反码的末位加1。在补码中0有唯一编码[+0]=[-0]=00000000
- 移码常用于表示浮点数中的阶码。正负数的移码可以通过补码的最高位取反来获得。移码1表示正,0表示负。0的移码:[+0]=10000000、[-0]=10000000
3)数值表示范围
浮点数表示:
- 浮点表示法:浮点表示法:N=2E+F,E为阶码,F为尾数。数值范围主要由阶码决定,数值的精度则由尾数决定。
- 一般尾数用补码,阶码用移码。
- 可以用多个浮点形式表示同一个数。
- 浮点数运算规则:对阶 > 尾数计算 > 结果格式化(并判溢出>舍入处理>溢出判别)。
(1)对阶时,小数向大数看齐;
(2)对阶是通过较小数的尾数右移实现的。
4)3种形式的IEEE 754浮点格式:单精度浮点数、双精度浮点数、扩充精度浮点数。
被编码的值分为3种不同情况:
- 规格化的值:阶码部分的二进制值不全为0或者1。阶码为指数加偏移量。尾数为1.xxx…xx,包括这个隐含的1,因此不溢出的情况下尾数的值在[1,2)。
十进制转换成单精度浮点数过程:化为二进制并进行规格化处理。求阶码,原来指数加上偏移量127,再转化为二进制。化为单精度浮点数表示。 - 非规格化的值:阶码部分全为0。指数的真值为1-偏移量(对于单精度浮点数为-126),尾数的值就是二进制形式对应的小数,不包括隐含的1。非规格化数可以用来表示数值1,或者表示非常接近0的数。
- 当阶码部分全为1;当尾数全为0表示无穷大。不全为0,则称“NaN”,即“不是一个数”。
5)校验码
-
码距:一个编码系统中任意两个合法编码之间至少由多少个二进制位不同
-
奇偶校验码:可查错,不可以纠错;常用三种:水平奇偶校验码、垂直奇偶校验码、水平垂直奇偶校验码。
-
循环冗余校验码(CRC):可查错,不可以纠错,校验码由信息码产生,校验码位数越多,校验能力越强。
1、计算CRC校验码位数k=生成多项式位数-1。
2、在信息码后面补k个0,再进行模2运算。模2运算时,每一步得出的二进制数将抹掉一位,此时如果它的首位是0,那么除数就商0,如果是1,就商1,得出下一个被除数。 -
海明码: 利用奇偶性来检错和纠错的检验方法。令校验位为k,数据位为n,则有2k-1>=n+k。(懂得求海明码)
2、计算机系统硬件
计算机的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备组成。
-
CPU的组成主要由运算器、控制器、寄存器组和内部总线等部件组成。
-
运算器包括:算术逻辑单元(ALU)、累加寄存器(AC,至少要由一个)、数据缓存就窜起(DR)、状态条件寄存器(PSW)
①算术逻辑单元ALU:数据的算术运算和逻辑运算
②累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
③数据缓冲寄存器DR:写内存时,暂存指令或数据
④状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的) -
控制器包括:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、指令译码器(ID,包括操作码和地址码)、时序部件
①程序计数器PC:存储下一条要执行指令的地址
②指令寄存器IR:存储即将执行的指令
③指令译码器ID:对指令中的操作码字段进行分析解释
④时序部件:提供时序控制信号 -
寄存器组包括:专用寄存器和通用寄存器。运算器控制器中的寄存器是专用寄存器
3、计算机体系结构
1)计算机体系结构的分类:Flynn分类法、冯泽云分类法(根据并行度来分类)、Handler分类法、Kuck分类法。
SIMD和MIMD是典型的并行计算机,SIMD有共享存储器和发布存储器两种形式。并行性包括同时性和并发性。
2)指令系统
- 指令的基本格式:操作码字段 | 地址码字段
- 按暂存机制分类,即根据CPU内部存储操作数的区别,分为:堆栈、累加器、寄存器组。
3)寻址方式
- 立即寻址方式:操作数直接在指令中,速度快、灵活性差。
- 直接寻址方式:指令中存放的是操作数的地址。
- 间接寻址方式:指令中存放了一个地址、这个地址对应的内容是操作数的地址。
- 寄存器寻址方式:寄存器存放着操作数。
- 寄存器间接寻址方式:寄存器存放的是操作数的地址。
4)CISC和RISC
CISC(复杂指令集计算机):目前大多数计算机属于该类型。
特点:指令数量多,指令频率差别大,可变长格式;多寻址,使用微码(微程序技术),强调完善的中断控制。
RISC(精简指令集计算机):特点:指令数量少,使用频率接近,定长格式;操作寄存器,单周期,少寻址,多通用寄存器,硬布线逻辑控制,适用于流水线。
关键技术:重叠寄存器窗口技术、优化编译技术、超流水及超标量技术、硬布线逻辑与微程序相结合的未出微程序技术。
5)流水线
指令的控制方式:
- 顺序方式:各条指令顺序串行执行。速度慢、各部件的利用率低。
- 重叠方式:通常指一次重叠,相邻之间两条指令在重叠解释。速度有所提高,容易出现冲突、转移和相关等问题。
- 流水方式:可以看作“重叠”的延申。
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线技术把重复的顺序处理过程分解为若干个子过程,每个子过程能在专用的独立模块上有限的并行开发。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
流水的相关处理:
- 由于某些指令可能由“先写后读”的要求,造成局部性相关。解决方法:推后法和通路法。
- 由于转移指令,可能造成全局性相关。解决方法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。
RISC中采用的流水技术:
- 超流水线技术:细化流水,增加级数和提高主频。以时间换空间,CPI(每条指令需要的机器周期数)值稍高。
- 超标量技术:通过内装多条流水线来同时执行多个处理。时钟频率与一般流水线接近,由更小的CPI,以空间换时间。
- 超长指令字(VLIW)技术:超标量依靠硬件来实现并行处理的调度,而VLIW充分发挥软件的作用,是硬件简化,性能提高。有更小的CPI,但需要足够高的时钟频率。
流水线相关计算:
- 流水线建立时间:一条指令执行的时间。若n个子过程所用时间一样,均为∆t,则建立时间为n∆t。
- 流水线周期:执行时间最长的一段∆t。
- 流水线执行时间(理论公式):(t1+t2+…+tk)+(n-1)*∆t
- 流水线执行时间(实践公式):k∆t +(n-1)∆t(k为操作步骤数,一般先用理论公式,找不到答案再用实践公式)
- 流水线吞吐率:单位时间内流水线处理机处理的指令条数。
TP=指令条数/流水线执行时间 - 流水线最大吞吐率:TPmax=1/∆t
- 流水线加速比:顺序执行时间/流水线执行时间
4、存储系统
1)存储系统的层次结构:CPU内部通用寄存器、CPU内的Cache、CPU外的Cache、主存储器、主板外的联机磁盘存储器、脱机光盘、磁盘存储器。Cache和主存交互通过硬件实现。主存与辅存之间交互由硬软件结合。
- 存储器按所处位置分类:内存(主存)、外存(辅存)
- 存储器构成材料分类:磁存储器、半导体存储器、光存储器
- 存储器工作方式分类:读/写存储器(RAM)、只读存储器
只读存储器可分为固定只读存储器(ROM)、可编程的只读存储器(一次性写入,不能修改PROM)、可擦除可编程的只读存储器(紫外线照射擦除EPROM)、电擦除可编程的只读存储器(EEPROM)、闪速存储器(FM闪存,可用紫外线或者电信号擦除) - 按寻址方式分类:随机存储器(RAM,访问任何一个存储单元时间系统)、顺序存储器(与位置有关,如磁带)、直接存储器(介于前两种之间,如磁盘)
- 存储器中数据采用的存取方式:顺序存取(存取时间与位置有关)、直接存取(存取时间与位置有关)、随机存取(与访问序列无关)、相联存取(与访问序列无关)
相联存储器是一种按照内容访问的存储器。可用在Cache中,在虚拟存储器中用来作为段表、页表或快表存储器,用在数据库和知识库中。
2)Cache理论依据:局部性原理是指计算机在执行某个程序时,倾向于使用最近使用的数据。局部性原理有两种表现形式:时间局部性和空间局部性。Cache作用:为了解决CPU和主存之间速度不匹配而采用的一项重要技术。局部性原理可以描述为程序再一段时间内访问相对小的一段地址空间。
- 时间局部性是指被引用过的存储器位置上的数据很可能会被再次引用,例如:重复的引用一个变量时则表现出较好的时间局部性
- 空间局部性是指被用过的存储器位置附近的数据很可能将被引用;例如:遍历二维数组时按行序访问数据元素具有较好的空间局部性
3)高速缓存:用来存在当前最活跃的程序和数据。位于CPU与主存之间。速度比主存快5-10倍,由快速半导体存储器构成。其内容是主存局部域的副本。
- 地址映射:CPU工作时,送出的是主存单元的地址,必须应用某种方式,将主存地址转换成Cache存储器的地址。下面是三种方法:
①直接映射:主存的块与Cache块对应关系固定。多个主存块对应一个Cache块。灵活性差,冲突率高。
②全相联映射:允许主存的任一块调入Cache存储器的任何一个块空间中。全部标记,即主存块号由相联存储器记录。冲突率小,Cache利用率高,十分灵活,变化比较复杂,比较器难以设计。
③组相联映射:前两种方式的结合。将Cache块再分成组,主存也一样,通过直接映射来决定组号、全相联映射来决定块号。 - 替换算法:使Cache尽可能高的命中。随机替换算法,先进先出算法,近期最少使用算法,优化替换算法(先执行一次程序,统计Cache的替换情况,通过这些先验信息,第二次执行时,再选用最有效的方式替换。)
- Cache存储器的等效加权平均访问时间:ta=Ht1+(1-H)t2,t1为Cache存取时间,t2为主存的访问时间,H为Cache的命中率。
- 若主存访问和Cache访问同时启动,只有在Cache不命中时才启动主存:ta=t1+(1-H)t2.
- Cache容量越大,命中率越高,不过将会增加Cache的成本和Cache的命中时间。
4)主存-编址与计算
- 1Byte=8位(bit)
- 根据存储器所要求容量和选定的存储芯片的容量,计算芯片的总数,即总片数=总容量/每片的容量。
- 内存单元数计算:最大地址+1-最小地址。
- 内存总容量:按字节编址,内存单元数 * 8bit;按字编址,内存单元数*机器字长。
5)虚拟存储器:对主存的抽象,使用虚拟地址来访问主存,使用专门的MMU(Memory Management Unit,内存管理单元)将虚拟地址转换为物理地址。
6)外存储器:主要由磁表面存储器(如磁盘,磁带)、光盘存储器、固态硬盘构成。
- 磁表面存储器:磁盘容量的两种指标:非格式化容量(指一个磁盘所存储的总位数)和格式化容量(指各扇区中数据区容量的总和)。磁盘的存取速度较快,具有较大的存储容量。
- 光盘存储器:可分为只读型光盘(CD-ROM)、只写一次性光盘(WORM)、和可擦除型光盘。光盘存储器记录密度高,存储容量大,成本低,存取时间长。
- 固态硬盘:固态硬盘的存储介质分为两种:一种是采用闪存(FLASH芯片)作为存储介质,一种是采用DRAM作为存储介质。具有传统机械硬盘不具备的读写快速、质量轻、能耗低以及体积小等特点。价格贵,容量低,一旦损坏,难以修复。
7)磁盘阵列技术:最常见的磁盘阵列:廉价冗余磁盘阵列RAID。
- RAID-0:不具备容错能力,采用N个磁盘存储器组成。
- RAID-1:采用镜像容错改善可靠性的一种磁盘阵列。
- RAID-2:采用海明码镜像错误检测。
- RAID-3:减少用于检验的磁盘存储器,一般只用一个检验盘
- RAID-4:可独立地对组内各磁盘进行读/写。也只有一个检验盘。
- RAID-5:不设置检验盘,同一个磁盘即可检验数据也可记录数据。
- RAID-6:采用两级数据冗余和新的数据编码以解决数据恢复问题。
8)输入/输出技术:
1、微型计算机采用的内存与接口编址方式:
- 内存与接口地址独立编址方式:内存指令与接口指令容易辨认,不过用于接口的指令太少,功能太弱。
- 内存与接口地址统一编址方式:增强了对接口的操作,不过导致内存地址不连续,不容易辨认。
2、直接程序控制:外设数据的输入/输出是用过CPU执行程序控制的,分为两种情况。
- 无条件传送
- 程序查询方式:先通过CPU执行程序查询外设的状态,在进行外设数据的输入/输出操作。
- 缺点包括降低了CPU的效率,对外部的突发事件无法做出实时响应。
3、中断方式:中断方式因CPU无须等待而提高了效率。
- 中断处理方法有:多中断信号线法、中断软件查询法、菊花链法(硬件查询法,I/O模块共享一根中断总线)、总线仲裁法(I/O设备发送请求前需要获得总线控制权)、中断向量法(中断服务程序的入口地址通过中断向量表来查找,中断源的优先级由中断控制器INTC控制)
- 中断优先级控制:优先执行响应优先级高的中断源。
4、直接存储器存取(DMA)方式:数据成块在I/O设备与内存间传输,该过程中不需要CPU参与,实际操作由DMA硬件执行,CPU只需在开始启动和过程结束处理。
- DAM传送数据期间,需要占用系统总线,CPU不能使用总线,且传送过程无须CPU的干预。
5、输入/输出处理机(IOP):DAM方式减轻了CPU对I/O操作的控制,提高了CPU的效率,通道的出现,进一步提高了CPU的效率。
- 通道又称为IOP,一个具有特殊功能的处理器。分担了CPU的一部分功能,实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。
- 外围处理机是通道方式的进一步发展。PPU是专用处理机。
9)总线:指计算机设备与设备之间传输信息的公用数据通道。
总线的分类:
- 数据总线(DB):用来传送数据,是双向的,CPU可以通过DB)与内存或输出设备双向传送数据。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的位数。
- 地址总线(AB):用来传送CPU发出的地址信息,是单向的。地址目的指明与CPU交换信息的内存单元或I/O设备。AB的宽度决定了CPU的最大寻址能力。
- 控制总线(CB):用来传送控制信号、时序信号和状态信号等。每一条线的信息传送方向是单方向且固定,但作为一个整体则是双向的。结构框图中,CB以双向线表示。
10)安全性、可靠性与系统性能评测基础知识
- 计算机系统的三类安全性:技术安全性、管理安全性和政策法律安全性。
- 安全威胁分为两类:故意(如黑客渗透)、偶然(如信息发送错误地址)。
- 加密技术与认证技术(有空游览下)
- 性能评测常用的方法:时钟频率、指令执行速度、等效指令速度法、数据处理速率(PDR值越大,机器性能越好)、核心程序法。
- 基准测试程序:用户一致承认的测试性能的较好方法。分为整数测试程序、浮点测试程序、SPEC基准程序、TCP基准程序。
计算机可靠性: