[计算机组成原理(谭志虎 微课版)]第一章 计算机系统概述:从核心概念到考研真题的实战解析
1. 计算机系统概述的核心概念解析计算机组成原理这门课就像学习汽车的构造原理一样虽然我们日常都在使用计算机但真正了解它内部运作机制的人并不多。谭志虎教授的微课版教材用通俗易懂的方式带我们揭开计算机的神秘面纱。先说说摩尔定律这个行业预言。它就像计算机性能增长的天气预报预测集成电路上的晶体管数量每18-24个月就会翻一番。这个定律从1965年提出到现在已经指导了整个半导体行业半个多世纪的发展。不过近年来随着工艺制程接近物理极限这一定律正在面临挑战。CPI和MIPS这对性能指标特别有意思。CPI每条指令的时钟周期数就像做菜的步骤数而MIPS每秒百万条指令则像厨师的做菜速度。想要提高计算机性能要么减少每道菜的步骤降低CPI要么加快做菜节奏提高MIPS。在实际应用中我们经常需要在这两个指标间做权衡。冯·诺依曼结构的五大部件运算器、控制器、存储器、输入设备、输出设备构成了现代计算机的基础框架就像人体的五大系统一样各司其职。这个设计思想至今仍是计算机体系结构的基石虽然具体实现方式已经发生了翻天覆地的变化。2. 考研真题深度解析与解题技巧2018年那道关于二进制编码的考研真题很有意思。题目问为什么计算机采用二进制给出了三个原因运算规则简单、物理器件容易实现、便于逻辑运算。这就像问为什么交通信号灯用红绿灯而不是七色彩虹——简单、可靠、易识别才是硬道理。2019年考察冯·诺依曼结构的题目中错误选项是数据都在指令中直接给出。这其实反映了初学者常见的误解。实际上现代计算机指令中通常只包含数据地址就像快递单上写的是收货地址而不是直接把货物印在单子上一样。2015年那道关于硬件直接执行语言的题目也很典型。只有机器语言能被硬件直接执行汇编语言需要翻译这就像只有母语能直接理解外语需要翻译一样。这个知识点几乎每年都会以不同形式出现在考题中。解题时我总结出一个技巧遇到性能计算题先画个简单的表格把各类指令的占比和CPI列出来这样计算平均CPI时就不容易出错。比如2013年那道主频1.2GHz的MIPS计算题用这个方法就能快速理清思路。3. 关键性能指标的计算方法计算CPI时千万别被各种指令类型搞晕了。我的经验是先列出所有指令类型及其占比然后计算加权平均。比如某程序有A40%、B20%、C15%、D25%四类指令它们的CPI分别是1、2、2、2那么整体CPI就是0.4×1 0.2×2 0.15×2 0.25×2 1.5。MIPS的计算有个简单公式MIPS 主频(MHz) / (CPI × 10⁶)。举个例子如果CPU主频是500MHzCPI是1.5那么MIPS就是500/1.5≈333.33。记住要把主频的GHz转换成MHz哦在比较不同计算机性能时CPU时间是最可靠的指标。它的计算公式是CPU时间 指令数 × CPI / 主频。2017年那道比较M1和M2运行时间的题目用这个公式就能轻松解决。M1虽然主频高但CPI也高最终运行时间反而更长。浮点运算要用MFLOPS来衡量它和MIPS的区别就像专业运动员和全能运动员的差别。MFLOPS专注浮点性能MIPS则衡量整体指令执行速度。2011年那道题就是考察这个区别很多同学容易混淆这两个指标。4. 计算机系统的层次结构计算机系统的六层结构就像一座大楼最底层是逻辑门层相当于地基和砖块微代码层是钢筋骨架指令集架构层是楼体框架操作系统层是物业管理汇编语言层是装修设计高级语言层就是住户的日常活动了。指令集架构层特别关键它是软硬件的分界线。向上对软件提供统一接口向下隐藏硬件细节。这就像手机的操作系统既给APP开发者提供统一API又兼容不同厂商的硬件。操作系统层的作用经常被低估。它不仅要管理硬件资源还要提供各种服务接口。就像优秀的物业既要维护电梯、水电等设施又要处理业主的各种需求而且还要保证公平性和安全性。高级语言层的抽象程度最高完全屏蔽了硬件细节。用高级语言编程就像用母语写作不需要考虑每个字在计算机中是如何存储和处理的。这种抽象极大地提高了开发效率但也可能导致程序员对底层原理的忽视。