随笔分类 - 课程——计算机组成与设计
大二上学习Coursera 北京大学 计算机组成与设计的笔记和心得
摘要:高速缓存的原理 cpu和内存的速度差距越来越大,计算机的性能受到影响,而高速缓存的出现挽救了这一局面。 为什么在cpu和主存直接添加一个容量很小、速度更快的高速缓存能增加计算机的性能呢? 程序的局部性原理 这是一个经验性结论:计算机程序从时间和空间都表现出局部性。 时间局部性(Temporal Lo
阅读全文
摘要:存储层次结构概况 这是我们非常熟悉的冯·诺依曼计算机结构, 那这其中哪些部件和存储功能有关呢? 存储器和外部记录介质肯定具有存储功能,另外还有一个自带存储功能的运算器,为了描述方便,我们把这些部件统称为存储器。那么我们看一下计算机中对存储器有哪些要求 ? 1、首先存储器当中应该保存了将要运行的程序和
阅读全文
摘要:冒险 流水线技术之所以能提高性能 究其本质是利用了时间上的并行性,那它让原本应该先后执行的指令在时间上一定程度的并行起来,然而这也会带来一些冲突和矛盾,进而可能引发错误。 冒险(Hazard):在流水线中我们希望当前每个时钟周期都有一条指令进入流水线可以执行。但在某些情况下,下一条指令无法按照预期开
阅读全文
摘要:流水线的基本原理 指令的主要执行步骤 这个是之前设计的单周期寄存器,它已经能正确的执行MIPS指令。 而MIPS的指令可以分成如下5个阶段: 与示意图结合如下: 单周期与流水线的区别 全在这个图里: 实际上,流水线并不会缩短单条指令的执行时间(甚至会增加时间),而是提高指令的吞吐率(单位时间进多少指
阅读全文
摘要:处理器的设计步骤 具体设计步骤 (一)分析指令系统 MIPS的所有指令是非常多的,我们只实现其简化版,包含如下6种: (二)需求分析 需求分析,需要存放指令地址的32位寄存器(PC),需要存放指令的存储器,可读,数据和指令均为32位(MEM[PC])。还需要一个寄存器堆,用来保存源操作数和目的操作数
阅读全文
摘要:除法的运算过程 与乘法相比,除法的实现较为复杂,运算过程如下: 过程: 被除数和余数:将余数和被除数视为一个,共享一个寄存器,初始值为被除数 除数:可视为不断右移,并和被除数相减 商:每个bit依次生成,可视为不断左移 除法器的工作流程 要注意的是,与手算相比,电路实现总是将余数减除数,所以如果出现
阅读全文
摘要:乘法的运算过程 人们日常习惯的乘法是十进制,但计算机实现起来不方便。首先,需要记录9x9乘法表,每次相乘去表中找结果;其次,将竖式相加也不方便。 但二进制却十分方便,冯·诺伊曼在《关于ENDVAC的报告草案》中说“二进制可以极大简化乘法和除法运算。尤其是对于乘法,不再需要十进制乘法表,也不需要两轮的
阅读全文
摘要:4-bit加法器示例 先看一下上一节得到的加法器实现,可以看出改进的地方。 不难发现整个过程是从右至左依次执行,每一个进位需要等前面的运算全完成,可以在一开始得到所有的进位吗? 行波进位加法器(Ripple-Carry Adder,RCA) 像上面4-bit加法器这样实现的加法器被称作行波进位加法器
阅读全文
摘要:二进制加法 半加器(Half Adder) 半加器的功能是将两个1位二进制数相加。输入端口A、B,输出端口S(输出),C(进位)。 其有一个很明显的缺点:不能将低位的进位参与运算。 全加器(Full Adder) 全加器由两个半加器构成。输入端口A、B、Cin,输出端口S(和)、Cout(进位输出)
阅读全文
摘要:集体管 现在集成电路中常使用MOS集体管:Metal-Oxide-Semiconductor(金属-氧化物-半导体) 晶体管有两种类型:N型和P型,由NMOS和PMOS共同构成的互补型MOS集成电路(CMOS) 它们两者的区别在于:NMOS是高电平有效,PMOS是低电平有效。 例如,对NMOS来说,
阅读全文
摘要:算术运算 计算机结构的简化模型(模型机) 演示实例一 以add $8,$9,$10(格式被Latex强行改变,不知道怎么办555。。。)演示加法运算 1、首先取指令,即得到得到指令的编码 查指令编码表知opcode = 0,function = 0x20,shamt = 0(非移位指令) opcod
阅读全文
摘要:历史 为满足“二战”对计算“火炮射击表”的需要,1943年开始正式设计ENIAC,ENICA是世界上第一台通用电子计算机 冯·诺伊曼对ENIAC进行分析,认为ENIAC的开关定位和插拔线只不过代表一些数字信息,完全可以像受程序管理的数据一样存放在主存储器中(“存储程序”的概念) 冯·诺伊曼写出《关于
阅读全文