自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

code a better life~

简单点~

  • 博客(64)
  • 问答 (1)
  • 收藏
  • 关注

原创 Mit6.006-lecture09-Breadth-First-Search

图GVEG=(V,E)GVE是一组点V和一组顶点的对E⊆V×VE⊆V×V有向边是有序对,比如,uvuv∈Vuvuv∈V无向边是无序对,比如,uvuv∈Vuvuv∈Vuv和vu(u,v)和(v,u)uv和vu在这个类中,我们假设所有图是简单的:边是去重的,比如(u,v)仅在E(尽管(v,u)可能出现)中出现一次,并且u≠vuv∈Euvuv∈E∣E∣O∣V∣2∣。

2023-05-24 09:17:44 14320

原创 Mit6.006-lecture08-BinaryHeaps

记录一些项目,快速地访问/移除最重要的例:有限带宽的路由器,必须优先某些信息例:操作系统内核中的进程调度例:离散事件模拟(下一件事何时发生)例:图算法(接下来的课程中)通过key有序的项目=优先,因此是集合接口(不是序列接口)对集合特定操作子集进行了优化:build(X),由可迭代的X构建优先队列insert(x),添加项目x到数据结构delete_max(),移除并返回拥有最大key的存储项目find_max(),返回拥有最大key的存储项目通常对最大或最小做出优化,而非全部。

2023-05-23 13:03:02 14691

原创 Mit6.006-problemSession04

下面是一个序列AVL树T。执行操作T.delete_at(8),该操作期间,每次旋转操作执行完后,画出该树。

2023-05-22 20:06:23 14626

原创 Mit6.006-problemSet03

按顺序插入整数keys A=[47, 61, 36, 52, 56, 33, 92]到尺寸为7的哈希表中,使用哈希函数hk10k4mod7。哈希表的每个插槽,存储一个key(哈希到该插槽)的链表,后插入的追加到链表最后。所有key插入完成后,画一个哈希表的图。

2023-05-22 16:55:58 14879

原创 Mit6.006-lecture07-BinaryTrees2AVL

需要降低树的高度,而不改变遍历顺序,因此我们表示相同序列的项目。case3:的倾斜是-1,因此的左子节点存在。case1:的倾斜是0、或case2:的倾斜是1。插入增加的高度,因此是不平衡的case2或case3。删除使子节点的高度降低1,并非,因此仅不平衡。如果左、右子树高度最多相差1,那么节点是高度平衡的。如果它的偏斜为-1、0、1,那么节点是高度平衡的。因为B的倾斜是2,所以的右子树存在。(之后,的高度将等于或小于之前的高度)

2023-04-06 09:23:05 27064

原创 Mit6.006-lecture06-BinaryTrees1

定义节点(位于根节点为的树中)的depth(),为到路径的长度。定义节点的height(),是以为根的子树中,任意节点的最大depth。举例:遍历顺序:(、、、、、)举例:后驱,对应,对应,C对应None。否则,让成为后继节点(不能有左子节点)的左子节点。否则,有右子树,与的后继节点交换项目并递归。如果没有右子节点,让成为的右子节点。

2023-01-29 19:35:46 55002

原创 Mit6.006-problemSet02

得出下面递归的解。解应该包含递归允许的最严格的上界和下界。假设T1Θ1用两种方式解决part (a)、(b)、©,画一个递归树和应用主定理。用替代法解决part (d)(a)Tn4T2n​On递归树深度 i 有4i个顶点,每个最多c2in​次运算,因此深度 i 处最多4ic2in​次运算。

2023-01-18 18:26:32 55555

原创 Mit6.006-problemSession03

使用哈希函数h(k)=(11k+4)mod9,插入整数keys A=[67, 13, 49, 24, 40, 33, 58]到尺寸为9的哈希表。冲突应该通过链来解决,冲突被存储在链的尾部。画一个所有key被插入完后的哈希表图。

2022-12-22 14:33:12 61985

原创 Mit6.006-lecture05-Linear-Sorting

比较查找下边界:任何有n个节点的比较树,高度≥⌈lg(n+1)⌉−1线性分支因子的操作,使用随机访问更快直接访问数组是快的,但可能使用大量空间(Θ(u))通过映射(hashing)key的空间从u降到m=Θ(n),解决了空间问题哈希表给出了期望O(1)时间的操作,如果是动态操作则为分摊时间期望输入独立:选择从全域哈希族中随机选取哈希函数数据结构概览最终我们实现了更快地查找。我们也能实现更快的排序?

2022-11-29 06:50:49 65099

原创 Mit6.006-problemSet01

每个包含5个函数的集合,对它们进行排序,若序列中fa​出现在fb​之前,那么fa​=O(fb​)。如果fa​=O(fb​),且fb​=O(fa​)fa​和fb​可以出现在任意顺序,表明可以用花括号将fa​和fb​围到一个集合中。f1​=n,f2​=n​,f3​=n+n​(f2​,{f1​,f3​})或(f2​,{f3​。

2022-11-21 19:49:16 65481

原创 Mit6.006-problemSession02

以两种方式推断下列递归的答案:通过递归树、主定理。答案应该包含最贴切的上下边界(递归允许)。假设T1∈θ1(a)Tn2T2n​On​TnΘn(b)Tn8T4n​Onn​TnΘn23​logn(c)TnT3n​T4n​Θn,假设对于所有abTaTbTnΘn。

2022-11-17 19:56:46 66062

原创 Mit6.006-lecture04-Hashing

想要更快的查找以及动态操作。我们能让find(k)比θ(logn)更快?

2022-11-09 10:15:47 67786

原创 Mit6.006-lecture03-Sorting

以任意顺序把项目存到数组中,可以实现一个集合(不是特别有效)按key升序存储项目允许:更快找到最大/最小值(数组开头、结尾)O(logn)但如何构建有效地构建有序数组?

2022-10-26 11:24:19 73207 1

原创 Mit6.006-problemSet00

Aii5​i∈Z且0≤i≤4B3i∣i∈1245}}化简可得。

2022-10-24 10:05:03 72815 1

原创 Mit6.006-lecture02-Data Structures

数据结构是存储数据的一种方式,算法支持数据操作支持的操作集合称为接口(或)接口是声明:支持哪些操作(问题)数据结构是表示():操作如何被支持(解法)本课中,两个主要接口:序列()和集合()

2022-10-20 14:41:00 72926

原创 Mit6.006-problemSession01

对于下面5个函数集合中每一个,对它们进行排序。如果在序列中,fa​出现在fb​之前,那么fa​=O(fb​)。如果fa​=O(fb​)且fb​=O(fa​),意味着fa​和fb​可以任何顺序出现,可以用花括号把fa​和fb​围起来表明这种情况。f1​=n,f2​=n​,f3​=n+n​(f2​,{f1​,f3​})或(f2​,{

2022-10-20 13:59:36 72997

原创 Mit6.006学习记录

算法入门。

2022-06-29 09:57:35 113588 1

原创 Mit6.006-lecture01-Introduction notes

算法,可被推理、证明为是正确的。算法时间复杂度:n、logn、n2、2n、nlogn(logn)k=O(n),O 表示lim logn/n,n->正无穷时,值为0(n i)表示n个数中取i个数,公有多少种组合E(x)表示数学期望值|A-B|表示,集合A中有,集合B中无的元素个数..............................

2022-06-29 09:56:14 113702

原创 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 122492

原创 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 122429

转载 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 122883

转载 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 122856

转载 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 122809

转载 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 123083

转载 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 122887

转载 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 122918

转载 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 169243

转载 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 169495

转载 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 171243

转载 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 175631

转载 Mit6.004-lab05-Beta Assembly Language

一、 冒泡排序

2021-08-06 10:49:48 175657

转载 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 176685 1

转载 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 177027 1

转载 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 176989 2

转载 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 178081

转载 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 179832

转载 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 180163

转载 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 181314

转载 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 181326

转载 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 187878

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除