
计算机体系结构
文章平均质量分 51
计算机体系结构
解析Ta
这个作者很懒,什么都没留下…
展开
-
Mit6.004学习记录
Mit6.004学习记录前言一、课程简述二,课程主页三,学习过程[Mit6.004-01-Basics of Information](https://blog.youkuaiyun.com/u013577996/article/details/116648391)[Mit6.004-02-The Digital Abstraction](https://blog.youkuaiyun.com/u013577996/article/details/116781296)Mit6.004-03-CMOS[Mit6.004-04-Com原创 2021-05-11 12:03:14 · 211969 阅读 · 16 评论 -
Mit6.004-01-Basics of Information
1. 什么是信息交换、接收的数据。数据表明了特定事实或环境的不确定性。2. 量化信息3. 数据传达的信息4. 例:信息内容52张扑克中抽取一张为红心N=52 M=13 信息内容=log2(52/13)=2 bits5. 可能性与信息内容更多可能性,更多内容6. 熵每组数据表示信息量的平均情况7. 熵的意义传递信息最恰当的位数8. 编码符号与二进制串的对应关系9. 编码如二叉树所有叶子节点为符号,所有节点间的树枝有标签0/1,从root到叶子节点的路径标签排列转载 2021-05-11 12:02:07 · 207297 阅读 · 0 评论 -
Mit6.004-02-The Digital Abstraction
1. 具体的信息编码古老石碑的文字、DNA,都是一种信息的编码。我们想要有某种物质来存储、读取位的信息,这种物质要足够小、便宜、持久存储。2. 利用电现象电粒子可形成电压、电流、相位、频率,我们利用这些电子现象实现信息存储、传递。本课主要利用电压代表位。3. 电压代表信息通过电压0V-1V,来代表N位信息4. 使用电压对图片编码按从左到右、从上到下的顺序扫描图片,对扫描到的颜色给定一个0-1V内的值,表示颜色深度。横坐标为时间、纵坐标为电压,有波形表示每行扫描结束。5. 信息处转载 2021-05-14 10:22:10 · 205903 阅读 · 0 评论 -
Mit6.004-03-CMOS
1. 组合设备愿望清单设计系统容忍一些错误,有正噪音边距,VTC:增长率>1且非线性便宜、小改变电压消耗能量、不改变电压不消耗能量设备拥有某种功能2. N通道MOSFET:物理视图栅极(gate,由多晶硅线组成)、源极(source,由N型杂质半导体(硅中掺杂磷)构成)、漏极(drain,由N型杂质半导体(硅中掺杂磷)构成)、bulk(P型杂志半导体(硅中掺杂硼)构成的衬底/基质)栅极和衬底之间有一个足够薄的绝缘层(二氧化硅),在删极施加电压,导致衬底中电子靠近栅极,在其附近形成反型转载 2021-05-21 10:24:42 · 206902 阅读 · 0 评论 -
Mit6.004-04-Combinational Logic
1. 功能声明自然语言、真值表、布尔表达式都可以用来描述组合设备功能2. 一个设计方式真值表转换为布尔表达式布尔表达式就像一个乘积之和3. 乘积之和构成块非门、与门、或门4. 直接合成真值表转为布尔表达式、布尔表达式转为电路5. 大于2个输入的与、或门线性提升传播延时方案对数提升传播延时方案不知tpd的情况下,很难说哪个实现方案延迟更小6. 更多构建块NAND、NOR、XORNAND一个CMOS门可以构建,AND要两个CMOS门(NAND+NOT)构建NAND、N转载 2021-06-03 15:54:20 · 198892 阅读 · 0 评论 -
Mit6.004-05-Sequential Logic
1. 某些我们仍无法构建的组合设备:输出仅取决于此时输入灯开,按钮按下后,灯变关灯关,按钮按下后,灯变开输入:按钮,输出:灯,输出取决于设备当前状态以及输入2. 数字状态:我们想要构建的这种组合逻辑和内存组件组成的电路称为时序逻辑本章主要目的是构建内存组件3. 内存:使用电容电压用来编码信息,电容用来存储电压写:bitLine设置为要写入的电平,wordLine设高电平打开FET开关,让电容变为与bitLine一样的电压读:bitLine预先设置为某个电压,wordLine设高电转载 2021-06-09 16:48:20 · 196281 阅读 · 0 评论 -
Mit6.004-06-Finite State Machines
1. 我们的新机器内存组件:祖训动态规则、k位表示2k个状态组合逻辑:无环图、遵循静态规则、m行输入时真值表:2k+m行、k+n列2. 一个简单的时序电路仅当输入为0110时,输出变为unlock3. 有限状态机使用有限状态机来描述时序系统的行为,独立于具体实现来描述输入输出行为输入100位时,要么位数为1,传输100次;要么位数为100,传输1次4. 状态转变图5. 有效状态图某输入仅对应一输出、穷举所有可能moore状态机:输出仅由当前状态决定mealy状态机:输出转载 2021-06-18 17:22:18 · 194558 阅读 · 0 评论 -
Mit6.004-07-Performance Measures
1. 忘记电路,让我们解决一个实际问题2. 一次一件3. 洗N件衣服若衣服先进washer、再进dryer,会出现,衣服进入dryer后,washer空着的情况,可以让它继续处理4. 洗N件衣服,6.004的方式实际用时60N+30,但考虑持续输入时,可以忽略起始的30分钟5. 性能观测哈佛处理衣服的延迟为90min6.004处理衣服的延迟为120min(除第一次装载之外)吞吐量来看,哈佛90min一个,6.004 60min一个6. 回到电路组合电路,必须等有输出后,才能转载 2021-06-29 08:33:42 · 191347 阅读 · 0 评论 -
Mit6.004-08-Design Tradeoffs
1. 优化你的设计同一功能的不同实现,在空间、时间、能量维度,各有一个值,根据系统目的,选择合适方案2. CMOS静态能源消耗门极与基质之间、源极与漏极之间在off时,也会有微弱电流,造成能源消耗3. CMOS动态能源消耗以反相器为例,输出电压0-1、1-0,电容充放电,都会消耗能量4. CMOS动态能源消耗2大概估算现代CPU功率5. 我们如何节省能源ALU运算单元,会执行add、boolean、shift、cmp运算,但只会需要一个结果,另外3个白算了,这是个可以节省能源的点转载 2021-07-01 09:59:22 · 190077 阅读 · 0 评论 -
Mit6.004-09-Designing An Instruction Sets
1. 例子:阶乘C语言实现阶乘2. 例子:阶乘2高级状态机表示C实现的阶乘3. 阶乘的数据路径时序电路实现阶乘4. 阶乘的控制状态机5. 控制状态机硬件6. 单目的硬件根据问题,画状态机,用电路实现它。能否泛化我们的方案,用一组硬件解决一些问题7. 简单的可编程数据通路8. 阶乘的控制状态机9. 新问题->新控制状态机设计状态机的过程,就是在编程10. ENIAC电脑11. ENIAC编程12. 冯诺依曼模型现代计算机大多基于冯诺依曼模型(C转载 2021-07-08 11:31:17 · 187953 阅读 · 0 评论 -
Mit6.004-10-Assembly Language Models Of Computation
1. Beta指令集总结2. 编程语言3. 汇编语言4. UASM源文件例子5. 如何变成汇编汇编器扫描两遍文件,第一遍把所有symbol、label放到符号表,第二表将汇编翻译为机器码。前面的行,可以引用后面行出现的符号6. 寄存器是预定义的符号汇编如何执行,取决于opcode,跟r2和常数写法无关7. 标签和偏移量汇编中,branch指令可以写label,汇编器来计算偏移量。8. 强大的宏指令9. 汇编指令10. 汇编示例11. Beta指令的UASM宏转载 2021-07-16 16:03:24 · 181425 阅读 · 0 评论 -
Mit6.004-11-Compilers
1. 程序语言2. 高级语言3. 解释4. 编译5. 解释vs编译6. 编译器7. 一个简单编译策略8. compile_expr(expr)=>Rx9. 编译表达式10. 编译语句11. 编译语句:条件的12. 编译语句:迭代13. 放到一起:阶乘14. 优化:把值放到寄存器15. 分析现代编译器16. 前端阶段:词法分析词法分析将源码转为tokens list17. 前端阶段:语法分析语法分析将tokens转为语法树18. 前转载 2021-07-19 14:38:09 · 181385 阅读 · 0 评论 -
Mit6.004-12-Procedures And Stack
1. 过程:软件抽象2. 过程实现内联:每个调用的地方拷贝一份过程代码。调用地方越多,代码尺寸大;不支持递归连接:只有一份过程代码,执行时跳转过来。3. 过程调用约定4. 程序连接:首次尝试5. 程序存储需求6. 激活记录7. 领悟:我们需要栈8. 栈实现9. 栈管理宏指令10. 栈有趣的地方11. 解决程序连接问题12. 栈帧作为激活记录13. 栈帧详情14. 参数顺序以及BP使用15. 程序链接:约定16. 程序连接模板17. 放到一起转载 2021-07-21 07:09:36 · 180229 阅读 · 0 评论 -
Mit6.004-13-Building The Beta
1. CPU设计权衡2. 处理器性能3. 提示:Beta指令集4. 方法:提升特性5. 多端口寄存器文件6. 寄存器文件时序7. ALU指令8. 指令获取/解码9. ALU OP 数据路径110. ALU OP 数据路径211. ALU操作(带有常量)112. ALU操作(带有常量)213. load指令114. load指令215. store指令116. store指令217. JMP指令118. JMP指令219. BEQ/BNE转载 2021-07-23 17:43:58 · 179909 阅读 · 0 评论 -
Mit6.004-14-The Memory Hierarchy
1. 我们的内存机器2. 内存技术3. SRAM4. SRAM单元5. SRAM读1、所有bitline电压都设置为12、某个wordline电压设为高电平,让对应cell的两个mos管接通3、cell两边bitline中的某一个肯定会主键降为低电平4、无需等到某个bitline降低到gnd,感应放大器感应到变化即可有相应输出6. SRAM写1、驱动将bitline设置为要写入的电压2、地址解码器选中某一wordline3、bitline中的值覆盖掉cell中的值7.转载 2021-09-07 17:31:50 · 169726 阅读 · 0 评论 -
Mit6.004-15-Pipelining the Beta
1. 回顾:单周期Beta2. 单周期Beta性能3. 流水线实现4. 为什么这不是一节20分钟的课5. 流水线的危害6. 简化未流水线化的Beta数据通道7. 5阶段流水线数据通道8. 流水线控制9. 流水线执行例子10. 例子:周期111. 例子:周期212. 例子:周期313. 例子:周期414. 例子:周期515. 流水线图表16. 数据危害17. 解决危害18. 解决数据危害119. stall逻辑20. 解决数据危害2转载 2022-05-03 11:09:09 · 122971 阅读 · 0 评论 -
Mit6.004-16-Virtual Memory
1. 回顾:一个典型的内存分级2. 回顾:硬件缓存3. 回顾:一个典型的内存分级4. 拓展内存分级5. 巨大的未命中处罚造成的影响6. 虚拟内存7. 虚拟内存实现:分页8. 按需分页9. 简单页映射设计10. 例子:虚拟->物理翻译11. 缺页12. 例子:缺页13. 虚拟内存:CS视角14. 硬件/软件的平衡15. 分页映射计算16. 例子:分页映射计算17. RAM放置页映射18. 旁路翻译缓存(TLB)19. MMU地址翻译转载 2022-05-03 12:24:04 · 122943 阅读 · 0 评论 -
Mit6.004-17-Virtualizing the Processor
1.回顾:虚拟内存2.MMU:地址翻译3.上下文4.构建一个虚拟机5.一个虚拟机,多个进程6.多进程复用CPU7.关键技术:定时器中断8.Beta中断处理9.实例:定时中断处理器10.中断处理器代码11.简单分时共享调度器12.操作系统体系结构:进程13.某次中断14.异常硬件15.异常处理16.有用的宏指令17.非法操作(illop illegal operation)处理器18.访问用户地址19.真正的非法操作(illop)处理器转载 2022-05-09 15:07:41 · 123147 阅读 · 0 评论 -
Mit6.004-18-Devices and Interrupts
1.OS体系结构:I/O设备2.异步I/O处理3.基于中断的异步I/O4.ReadKey SVC(supervisor call):尝试15.ReadKey SVC(supervisor call):尝试26.ReadKey SVC(supervisor call):尝试37.复杂的调度8.ReadKey SVC(supervisor call):尝试49.例子:handler与OS匹配10.哪个handler和OS?#111.哪个handler和OS?#212.转载 2022-05-20 10:18:47 · 122857 阅读 · 0 评论 -
Mit6.004-19-Concurrency And Synchronization
1.进程间通信2.同步通信3.FIFO buffer4.例子:限制的buffer问题5.信号量6.用于优先权的信号量7.资源分配的信号量8.信号量-限制的buffer问题9.流控制问题10.多信号量-限制的buffer问题11.同时进行的事务12.事务交叉执行13.信号量-互斥14.生产/消费原子化问题15.更多信号量-限制的buffer问题16.信号量的能力17.信号量实现18.信号量作为一个SVC(supervisor call)1转载 2022-05-20 17:03:11 · 122905 阅读 · 0 评论 -
Mit6.004-21-Parallel Processing
1.处理器性能2.5阶段流水线处理器3.提升5阶段流水线性能4.流水线深度的限制5.提升5阶段流水线性能6.指令级并行7.超标量流水线8.现代超标量乱序处理器9.单核处理器性能限制10.数据级并行11.矢量代码示例12.数据依赖的矢量操作13.矢量处理实现14.多核处理器15.阿姆达尔定律16.阿姆达尔定律及并行17.线程级并行18.多核缓存19.可能的结果20.单核处理器结果21.串行一致性22.可选的串行一致性23.转载 2022-05-25 21:34:14 · 122940 阅读 · 0 评论 -
Mit6.004-lab01-CMOS Technology
一、 CMOS VTC当VOL=0.3V VOH=2.7V时:VIL的最大值0.9,VIH最小值1.3低噪声边界:0.6,高噪声边界1.4因N型MOS管有更好的导电率,导致VTC不对称,噪声常量为0.6,较小。通过调整P型MOS管的width为38.4,低噪声边界为0.9,高噪声边界为0.9,提高了噪声常量。二、 污染、传播时间TC:输入无效,到输出无效;Tp:输入有效,到输出有效。out1和out2的波形图,10ns处的变化:得出Tc=20.9,Tp=112.920ns处的变化:得出Tc转载 2021-08-02 17:26:19 · 178217 阅读 · 0 评论 -
Mit6.004-lab02-CMOS Adder
一、 CMOS基础A:a;B:a;C:b;D:a二、 能量消耗52/3.32 = 2.30三、 CMOS逻辑门A:4NORB:6AND=NAND+NOTNANDNOTC:10XORD:2E:6四、 三位加法器NAND3faadder3转载 2021-08-03 09:05:58 · 177059 阅读 · 2 评论 -
Mit6.004-lab03-FSMs
一、 FSMsA:128、6;B:32;C:0.7n;D:12.5n二、 状态转换图A:dB:bC:aD:三、 格式正确的括号字符串检查器s1:向右s2:遇到“)”向左s3:遇到末尾"-"向左states s1 s2 s3action s1 ( s1 0 laction s1 0 s1 1 laction s1 - s3 - raction s1 ) s2 0 raction s1 1 s1 1 laction s3 1 s3转载 2021-08-03 15:47:28 · 177088 阅读 · 1 评论 -
Mit6.004-lab04-32-bit ALU
一、 32位算术逻辑单元1、BOOL2、ARITHZNV加法器3、CMP4、SHIFT5、ALU二、 测试ALUA:8B:58494C:要想Cin[N]为0,则A[N-1]=0、B[N-1]=0;要想Cin[N]为1,则A[N-1]=1、B[N-1]=1;D:0x00000005 - 0xDEADBEEF0x12345678 - 0x123456780x80000000 - 0x000000010xDEADBEEF - 0x000000050x转载 2021-08-05 17:26:58 · 176818 阅读 · 1 评论 -
Mit6.004-lab05-Beta Assembly Language
一、 冒泡排序转载 2021-08-06 10:49:48 · 175718 阅读 · 0 评论 -
Mit6.004-lab06-Procedures And Stacks
一、 BETA ISAA:0、1、2、3、0xcB:0x2000、0xEDEDEDED、0xFEDEDEDE、0x2004、110000 00000 11111 0010 0000 0000 0000(0xc01f2000)C:0x87654321、1、0x87654320、0x14、011101 11111 00001 0000 0000 0000 0010(0x77e10002)D:17、0、32、no instructions need to be changedE:4、110000 000转载 2021-08-06 17:11:08 · 175698 阅读 · 0 评论 -
Mit6.004-lab07-Building The Beta
一、BETA Control RomA Swap register contents with memory locationB Move if zeroC Move constant if zero转载 2021-08-30 08:53:50 · 171308 阅读 · 0 评论 -
Mit6.004-lab08-Caches
一、Cache ArchitecturesIdeal Cache BehaviorCollisionsAssociativity’Block size (words/cache line)二、Design Problem: Set-associative Instruction CacheCache memoryCache control logicLRU replacement strategy转载 2021-09-08 15:10:24 · 169307 阅读 · 0 评论 -
Mit6.004-lab09-Emulating Instructions
一、 以软件形式添加LDB/STB.include “beta.uasm”.include “checkoff.uasm”regs:RESERVE(32) // Array used to store register contentsUI:save_all_regs(regs)LD(xp,-4,r0) // illegal instructionextract_field(r0,31,26,r1) // extract opco原创 2022-05-27 12:16:22 · 122507 阅读 · 0 评论 -
Mit6.004-lab10-Tiny Operating System
一、Design Problem: Tiny OS二、Add support for Mouse clicks1、修改中断向量2、增加变量Mouse_State存储CLICK()的返回值3、添加宏指令.macro Mouse() SVC(8)4、修改SVCTbl5、修改SVC_UUO6、新增MouseH7、实现进程2三、Add Signal() and Wait() SVCs1、WaitH与SignalH实现2、设置Semaphores初始值3、修改进程0原创 2022-05-31 09:34:36 · 122586 阅读 · 0 评论