计算机硬件组成
运算器,控制器(前二者为cpu)存储器,输入设备和输出设备。
CPU是计算机的核心部件,由控制器、运算器、寄存器等组成,具有控制计算机各部件协同工作的功能。
存储器分为内部存储器和外部存储器,前者速度高、容量小,后者容量大、速度慢。
中央处理单元
cpu
1.程序控制
2.操作控制
3.时间控制
4.数据处理
5.其他:cpu还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。
cpu的组成:运算器,控制器,寄存器组和内部总线等部件组成
运算器(执行所有的算数运算,如加减乘数;执行所有的逻辑运算并进行逻辑测试,如与或非比较等)
算数逻辑单元(ALU)(实现对数据的算数和逻辑运算)
累加寄存器(AC)(运算结果或源操作数的存放区)
数据缓冲寄存器(DR)(暂时存放内存的指令或数据)
状态条件寄存器(PSW)(保存指令运行结果的条件码内容,如溢出标志等)
控制器(控制整个cpu的工作,最为重要)
指令寄存器(IR)(暂存cpu的执行指令)
程序计数器(PC)(存放指令执行地址)
地址寄存器(AR)(保存当前cpu所访问的内存地址)
指令编译器(ID)(分析指令操作码)
cpu依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令cpu去取指令或者数据
CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在累加器(AC)中。
执行CPU指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时先要将指令的地址即 程序计数器(PC) 的内容送到地址总线上。
校验码
奇偶校验码:通过判断数据中1的个数是奇数还是偶数来检测错误,但只能检测出奇数位错误,不能纠错。
循环冗余校验码(CRC):通过生成多项式对数据进行校验,收发信息双方需使用相同的生成多项式。这个直接做计算处理的。重点要会计算
主要为除数和被除数的整理和计算
原始串10110,crc生成 多项式为x的4次方+x+1
那么就是阶数为4.就是4个0。原始串就为:101100000
多项式的x为4,1,0.那么2,3没有则为0.那么被除数的是:10011
这就是101100000/10011的计算了。计算出来后,必须保存4位数,不够就补0.这样就是1111
在与原始串拼接:101101111
指令系统
1.计算机指令由操作码和操作数组成,指令执行过程包括取指令、分析指令和执行指令三个步骤。
2.操作码决定要完成的操作,操作数指参加运算的数据以及其所在的单位地址
3.计算机指令执行过程,取指令、分析指令和执行指令,首先将程序计数器pc中的指令地址取出,送人地址总线,cpu依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码,最后执行指令,取出指令执行所需要的源操作数。
4.寻址方式
指令寻址方式包括顺序寻址和跳跃寻址。顺序寻址,就是一条一条的按照顺序进行执行。跳跃寻址,指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。
5.指令操作数的寻址方式
立即寻址方式:指令的地址码字段指出的不是地址,而且操作数本身
直接寻址方式:在指令的地址字段中直接指出操作数的主存地址
间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址
寄存器寻址方式:指令中的地址码是存储器的编号
基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。
变址寻址方式:变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。
6.CISI
CISC(复杂指令系统计算机)指令数量多、使用频率差别大、可变长格式,支持多种寻址方式,采用微程序控制技术,研制周期长。
7.RISI
RISC(精简指令系统计算机)指令数量少、使用频率接近、定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存,增加了通用寄存器,采用硬布线逻辑控制为主,适合采用流水线,优化编译,有效支持高级语言。
8.流水线
原理是将指令分成不同段,由不同部分处理,以产生叠加效果。
流水线技术
1.超流水线技术:它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间。
2.超标量技术:它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间。
3.超长指令字技术:(Very Long Instruction Word, VLIW)VLIW 和超标量都是20世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW则充分发挥软件的作用,而使硬件简化,性能提高。
9.指令系统计算方式
1.流水线周期:指令分成不同执行段,最长的段就是流水线周期
2.流水线执行时间:1条指令的总执行时间+(总指令条数-1)*流水线周期
3.流水线吞吐率计算:指令条数/流水线执行时间
4.流水线的加速比计算:不使用流水线的执行时间/使用流水线的时间
记录下题目解答
流水线的吞吐率是指流水线在单位时间里所完成的任务数或输出的结果数。设某流水线有5段,有1段的时间为2ns,另外4段的每段时间为1ns,利用此流水线完成100个任务的吞吐率约为()个/s。
A.500×10^6 B.490×10^6 C.250×10^6 D.167×10^6
解析: 流水线执行100个任务所需要的时间为: (2+1+1+1+1) +(100-1)*2=204ns。所以每秒吞吐率为: (100/204)*10^9=490*10^6。注意: 1秒=10^9纳秒。
答案: B
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为15us,由缓冲区送至用户区的时间是5us,在用户区内系统对每块数据的处理时间为1us,若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为()us;采用双缓冲区需要花费的时间为 ()us。
A.150 B.151 C.156 D.201
A.150 B.151 C.156 D.201
答案: D C
单缓冲区: 前两段要合并, 是两段流水线, 21+20*(10-1)=201
双缓冲区: 标准三段流水线, 21+15*(10-1)=156
继续: