
计算机组成原理
ailinyingai
DevOps 搬砖人 干饭人
展开
-
计算机组成原理042
cpu 内部和高速缓存通信的本地总线外部i/o设备以及内存通信的前端总线总线存在争夺所有权 总线裁决翻译 2019-08-12 11:16:49 · 119 阅读 · 0 评论 -
计算机组成原理010
动态链接程序的链接 是把对应的不同文件的代码段合并到一起成为最后的可执行文件这个链接的方式 让我们在写代码的时候做到了“复用”同样的功能 只要写一次 然后提供給很多不同的程序进行链接 就可以了链接有点像标准化、模块化生产链接可以分为 动、静,共享运行省内存说起来 最根本的问题 就是内存空间不够用引入新的链接方法叫做动态链接之前的合并代码段的方法 就是静态链接地址无关很重要 ...翻译 2019-08-02 14:07:53 · 158 阅读 · 0 评论 -
计算机组成原理009
程序的装载比尔盖茨曾在80年代说640K 内存对哪个人来说都够用了可执行程序加载后占用内存空间应该是连续的需要同时加载很多个程序,并且不能让程序自己规定在内存中加载的位置在内存里找到一段连续的内存空间,然后分配給装载的程序 然后把这段连续的内存空间地址和整个程序指令里指定的内存地址做一个映射内存地址叫做 虚拟内存地址实际在内存硬件中的空间地址 叫做物理内存地址程序里有指令和各...翻译 2019-08-02 13:47:56 · 143 阅读 · 0 评论 -
计算机组成原理008
程序无法在linux和windows 下同时运行编译-链接-装载拆解程序执行经常会遇到没有执行权限的问题可执行文件目标文件之间的差异理解链接的过程可执行文件的格式不一样linux 下是elf 文件windows 则是pe 文件wine 通过兼容pe 格式的装载器 使得在linux下运行windows 程序...翻译 2019-08-02 11:14:16 · 107 阅读 · 0 评论 -
计算机组成原理030
GPU玩游戏需要好显卡图形处理网景公司创始人之一 netscape多边形建模顶点处理图元处理栅格化片段处理像素操作图形流水线渲染图片 计算量很大 cpu 跑不动 就需要一个额外的来跑...翻译 2019-08-06 15:55:08 · 131 阅读 · 0 评论 -
计算机组成原理029
复杂指令 CISC精简指令 RISC对比 差异 历史纠葛存储程序型计算机的基础架构考虑硬件限制 为了性能考虑 很多功能都直接通过硬件电路来完成80%的时间都是在使用20%的简单指令CPU L0 Cache功耗优先的设计低价设计思想都是通用的 灵活应用能选择最合适的才是关键...翻译 2019-08-06 15:42:36 · 94 阅读 · 0 评论 -
计算机组成原理007
函数调用为什么为出现 栈溢出函数间的相互调用 在计算机指令层面是怎么实现的以及什么情况下会出现为什么需要程序栈?压栈和出栈的操作函数调用的跳转在对应函数的指令执行完了之后 还要再回到函数调用的地方继续执行call 之后的指令在内存里开辟一段空间用栈这个后进先出的数据结构每次程序调用函数之前把调用返回的地址塞入栈中 如果函数执行完了 就出栈栈顶的内存地址是逐渐变小而不是变大通过...翻译 2019-08-02 11:08:53 · 167 阅读 · 0 评论 -
计算机组成原理006
指令的跳转if else 就是 goto条件判断语句 循环语句 函数调用 过程调用写好的代码变成指令之后 是一条一条顺序执行的寄存器就是cpu内部由多个触发器或者锁存器组成的简单电路锁存器和触发器 其实就是两种不同原理的数字电路组成的逻辑门N个触发器或者锁存器 可以组成一个N位的寄存器PC寄存器 存放下一条需要执行的计算机指令的内存地址指令寄存器 存放当前正在执行的指令条...翻译 2019-08-02 09:37:43 · 133 阅读 · 0 评论 -
计算机组成原理028
异常和中断程序都是自动运行且正常运行的那么在出错的情况下 是怎样的呢异常: 硬件 系统、应用的组合拳异常的分类 中断 陷阱 故障和终止异常的处理 上下文切换查表法 解决问题...翻译 2019-08-06 11:36:09 · 166 阅读 · 0 评论 -
计算机组成原理031
GPU不便宜 不能闲置统一着色器架构xbox乱序执行分支预测高速缓存向量计算翻译 2019-08-06 21:33:05 · 119 阅读 · 0 评论 -
计算机组成原理032
FPGA ASIC 计算机体系结构的黄金时代软件是目前二十年的中心硬件却成为了一个黑盒子主频提升困难 硬件进入了新的 快速发展的阶段david patterson 拿到图灵奖现场可编程门阵列用存储换功能实现组合逻辑对于需要实现的时序逻辑电路可以在FPGA 里面直接放上D 触发器 作为寄存器布线 连接各个不同的CLB 实现想要实现的芯片功能ASIC专用集成电路体现“专用...翻译 2019-08-07 09:43:15 · 114 阅读 · 0 评论 -
计算机组成原理033
TPU设计和拆解一块 ASIC 芯片GPU 天生适合进行海量、并行的矩阵数值计算大量用于机器学习 深度学习的模型训练上推断工作更简单 对灵活性的要求更低推断的性能 首先要保障响应时间的指标希望在功耗上尽可能少一些快速上线和向前兼容专用电路和大量缓存...翻译 2019-08-07 09:47:26 · 135 阅读 · 0 评论 -
计算机组成原理041
加速地址转换TLB地址变换高速缓冲ITLBDTLB安全性和内存保护翻译 2019-08-12 10:55:05 · 275 阅读 · 0 评论 -
计算机组成原理040
理解内存 虚拟内存和内存保护是什么?映射的简单页表说起实际应用的多级页表多级页表像是一颗树因为一个进程的内存地址相对集中和连续 页表树 大大节省空间...翻译 2019-08-12 10:32:53 · 595 阅读 · 0 评论 -
计算机组成原理039
mesi 协议 让多核的cpu高速缓存保持一致翻译 2019-08-12 10:18:50 · 177 阅读 · 0 评论 -
计算机组成原理038
高速缓存下确定数据的更新翻译 2019-08-12 09:27:32 · 155 阅读 · 0 评论 -
计算机组成原理037
高速缓存在 c/c++ 层面 有很多缓存的例子翻译 2019-08-09 21:58:11 · 287 阅读 · 0 评论 -
计算机组成原理036
局部性原理 数据库性能跟不上 加个缓存就好了加上redis一定是有效地吗不能既享受cpu cache 的速度 又享受内存硬盘巨大的容量和低廉的价格存储器中数据的局部性原理时间局部性和空间局部性内存只放前1%的热门商品LRU 缓存算法利用局部性原理 使用缓存这个有利的武器 将热点数据加载并保留在更快的存储设备里面这个原理也是计算机各类优化的基石...翻译 2019-08-07 10:23:20 · 112 阅读 · 0 评论 -
计算机组成原理035
存储器层次结构全景内存硬盘静态存储器动态存储器公共图书馆ssd hdd权衡价格和性能翻译 2019-08-07 10:03:59 · 127 阅读 · 0 评论 -
计算机组成原理034
如何来理解虚拟机本质上 是 大型的电商公司 需要许多的硬件设备 来满足大型促销的需求闲的时候计算能力被浪费掉了 所以出租这部分的空闲算力出来分时系统直接出租物理机 意味着进行服务器的“整租”大部分小客户不愿意解释型虚拟机虚拟机的性能提升docker 是新时期的最佳选择...翻译 2019-08-07 09:57:07 · 103 阅读 · 0 评论 -
计算机组成原理027
加速矩阵乘法超长指令字技术超线程 hyper-threading单指令多数据流技术 SIMD超线程 intel 多卖给你的那一倍cpu同时多线程 simultaneous multi threading 技术numpy 直接使用了simd 指令能够并行进行向量的操作单指令单数据多指令多数据intel 通过超线程 使用者有“占到便宜”的感觉指令级并行的加速方案数据并行的...翻译 2019-08-06 11:31:31 · 127 阅读 · 0 评论 -
计算机组成原理026
程序的cpu 执行时间=指令数CPIclock cycle timeCPI的指标 CPI的倒数 叫做IPC也就是一个时钟周期里面能够执行的指令数 代表了cpu的吞吐率最佳情况下 IPC 也只能到1多发射和超标量 同一实践执行的两条指令intel的失败之作 安腾的超长指令字设计超标量 可以让cpu不仅在指令执行阶段是并行的在取指令和指令译码的时候 也是并行的...翻译 2019-08-06 11:18:03 · 773 阅读 · 0 评论 -
计算机组成原理005
软件硬件的接口当中 cpu 帮我们做了什么事情cpu 是执行各种计算机指令的逻辑机器编译到汇编 代码如何变成了机器码解析指令和机器码算术类指令数据传输类指令逻辑类指令条件分支类指令无条件跳转指令python 解释型语言java 虚拟机的语言...翻译 2019-07-31 10:47:25 · 240 阅读 · 0 评论 -
计算机组成原理004
程序的cpu 执行时间 = 指令数 * CPI * clock cycle time如何才能提升性能功耗并行优化(并行来提高性能)提升主频增加更多的cpu核心数量简单堆叠硬件的方式今天已经不能很好满足程序员性能的期待了摩尔定律和并行计算加速大概率事件通过流水线提高性能通过预测提高性能机器指令之旅...翻译 2019-07-31 10:34:30 · 198 阅读 · 0 评论 -
计算机组成原理003
cpu的主频性能 究竟是指什么?一个是响应时间第二个是吞吐率缩短响应时间和提高吞吐率性能=1/响应时间计算机的计时单位 cpu 时钟time 命令real timeuser timesys time一般的执行时间 是user加上sys计算机主频打字速度CPI 相当于熟悉各种快捷键指令数 程序设计得够合理 则同样的程序要写的代码 行数就很少三者皆能实现 则“性能”从外面...翻译 2019-07-31 10:29:24 · 148 阅读 · 0 评论 -
计算机组成原理002
通过示例程序来验证知识点学习总是需要花一些笨功夫的最有效的办法 还是 书读百遍其义自现(见)计算机是如何跑起来的 程序是如何跑起来的北京大学的公开课 计算机组成原理计算机组成与设计:硬件/软件接口深入理解计算机系统计算机组成:结构化方法计算机体系结构:量化研究方法程序员的自我修养:链接装载和库不是短时间的冲刺 而是有节制的坚持积小步而至千里...翻译 2019-07-31 10:14:46 · 255 阅读 · 0 评论 -
计算机组成原理001
每一个计算机相关的书籍 都绕不开 冯诺依曼体系结构三大组件cpu 内存 主板中央处理器内存 撰写的程序、打开的浏览器、运行的游戏、都需要加载到内存中才能运行主板是一个有着各种各样多达上百个插槽的配件芯片组和总线 解决了cpu和内存之间如何通信的问题芯片组控制了数据传输的流转 总线是实际数据传输的高速公路 因此 总线 决定了数据能够传输得多快有了三大组件 只要配上电源供电 计算机就...翻译 2019-07-31 10:08:36 · 162 阅读 · 0 评论 -
计算机组成原理014
乘法器 的实现翻译 2019-08-02 17:00:12 · 136 阅读 · 0 评论 -
计算机组成原理013
加法器 乐高积木翻译 2019-08-02 16:59:34 · 134 阅读 · 0 评论 -
计算机组成原理012
电路是如何设计的 实现的功能翻译 2019-08-02 16:58:48 · 132 阅读 · 0 评论 -
计算机组成原理017
建立数据通路(上)指令+计算指令周期fetchdecodeexecute重复执行1-3的步骤操作元件存储元件cpu在空闲状态时就会停止执行 具体来说就是切断时钟信号瞬间会降为0由于这个时间非常短暂 只会看到下降 不会看到降低为0当cpu从空闲状态恢复的时候 就会接通时钟信号 这样cpu主频就会上升所以在任务管理器中看到cpu的频率起伏变化...翻译 2019-08-05 10:12:45 · 210 阅读 · 0 评论 -
计算机组成原理018
组合逻辑电路时序逻辑电路自动运行的问题存储的问题本质上解决了各个功能按照时序协调的问题晶体振荡器反馈电路引入时序电路将数据存储下来通过反馈电路创建了时钟信号 然后再利用这个时钟信号和门电路组合实现了状态记忆的功能...翻译 2019-08-05 10:17:46 · 117 阅读 · 0 评论 -
计算机组成原理019
PC 寄存器所需要的计数器 不断生成下一条要执行的计算机指令的内存地址读取数据所需要的译码器 从内存中读取出对应的指令写入到D触发器实现的指令寄存器中 再通过一个译码器把它解析成我们需要执行的指令和操作数的地址 这些电路组成了计算机五大组成部分的控制器建立数据通路构造一个最简单的cpu...翻译 2019-08-05 10:22:50 · 192 阅读 · 0 评论 -
计算机组成原理025
冒险和预测(四)结构冒险数据冒险增加资源、流水线停顿、操作数前推、乱序执行 等解决方案所有的流水线停顿操作都要从指令执行阶段开始取指令和指令译码的阶段 是不需要停顿的分支预测今天下雨了 明天还会继续下雨吗缩短分支延迟分支预测进行条件比较进行实际的跳转动态分支预测...翻译 2019-08-06 09:22:01 · 129 阅读 · 0 评论 -
计算机组成原理024
填上空闲的NOP:上菜的顺序不必是点菜的顺序乱序执行 解决流水线阻塞的技术方案cpu 里的线程池翻译 2019-08-05 18:31:38 · 149 阅读 · 0 评论 -
计算机组成原理023
流水线里的接力赛操作数前推NOP操作和指令五级流水线取指令IF指令译码ID指令执行EX内存访问MEM数据写回WBoperand forwarding 或者bypassing前推 旁路名字叫转发 更合适...翻译 2019-08-05 14:10:18 · 237 阅读 · 0 评论 -
计算机组成原理022
冒险和预测流水线设计的三大冒险结构冒险数据冒险控制冒险hazard冒险拿到了一个提升指令吞吐率的机会结构冒险为啥工程师喜欢机械键盘?全键无冲高速缓存分成指令缓存和数据缓存数据冒险三种不同的依赖关系先写后读、先读后写、写后再写数据依赖反依赖输出依赖再等等: 通过流水线停顿解决数据冒险通过增加资源来解决数据冒险可以通过等待插入无效的NOP操作的方式来解决冒险问...翻译 2019-08-05 14:01:46 · 207 阅读 · 0 评论 -
计算机组成原理016
浮点数的二进制转化二进制的科学计数法先对齐 再计算随着累积值得越来越大就会出现大数吃小数的情况kahan summation 的算法来解决原理并不复杂就是在每次的计算过程中 都用一次减法 把当前加法计算中损失的精度记录下来然后在后面的循环当中把这个精度损失放在要加的小数上再做一次运算银行存款或者电商交易 一律使用定点数或者整数类型...翻译 2019-08-05 09:44:56 · 117 阅读 · 0 评论 -
计算机组成原理015
浮点数和定点数(上)浮点数的不精确性用32个比特 能够表示所有实数吗?答案很明显是不能二进制表示十进制的编码方式 叫做BCD编码浮点数 也就是float 类型符号位s 1指数位e 8有效数位f 23小数点的位置是浮动的才被称为浮点数小数点的位置固定 就称为定点数...翻译 2019-08-05 09:36:09 · 119 阅读 · 0 评论 -
计算机组成原理021
intel pentium 4 和 AMD athlon 之间的竞争技术上inel输了但是在商业层面依靠酷睿战胜了amd讲究一个折衷 trade-off一个合理的流水线深度提升cpu执行计算机指令的吞吐率...翻译 2019-08-05 10:46:42 · 131 阅读 · 0 评论