摘要: 主存是计算机的一部分,程序和数据就存在那里。虽然术语“storage”越来越多地用来表示硬盘存储,一些计算机科学家(尤其是英国人)更偏向于使用单词store或者storage而不是memory来表示内存。没有了处理器读写信息所需的内存,世界上就没有存储程序的数字计算机了。 内存的基本单元是二进制数字 阅读全文
posted @ 2019-10-16 18:27 夕晖 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 人们对更快计算机的需求是不会停止的。天文学家想要模仿大爆炸后第一微秒发生的事情,经济学家想给世界经济建立模型,孩子们想和他们的虚拟朋友在网上玩3D交互多媒体游戏。CPU变得越来越快,最后它们会以光速解决问题,无论英特尔的工程师有多聪明,都离不开20cm/纳秒铜线或者光纤。更快的芯片也要消耗更多的热量 阅读全文
posted @ 2019-10-15 11:41 夕晖 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 计算机设计师致力于提升他们设计的机器的性能。提升时钟速度是让运行芯片更快的一种方法,但是任何新的设计都不得不受限于当时的历史环境。因此,大部分计算机体系结构在给定时钟速度的情况下,依靠并行(同时处理两件或以上的事务)来获得更多性能。 并行分为指令级并行和处理器级并行两种。前者的并行指的是运用内部独立 阅读全文
posted @ 2019-10-10 12:44 夕晖 阅读(650) 评论(0) 推荐(0) 编辑
摘要: CPU执行每个指令时都有一系列小步骤。粗略地,步骤如下: 1.从内存中读取下个指令,放入指令寄存器2.改变程序计数器,指向下个指令3.决定该指令的类型4.如果指令在内存中用字来存储,决定它的位置5.读取该字,如果需要的话,读取到CPU寄存器6.执行该指令7.回到步骤1,执行下面的指令 这些步骤通常被 阅读全文
posted @ 2019-10-04 14:46 夕晖 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 70年代有过超复杂指令的实验,可能是用解释器做的。设计者尝试缩小“机器能做什么”和“高级语言需要什么”之间的语义鸿沟。几乎没有任何人考虑过设计更简单的机器,就像现在没有太多研究关心如何设计低耗能的电子表格,网络,Web服务器,等等。 有一个团体反抗这种趋势,尝试吸收西摩·克雷在高性能计算机上的理念, 阅读全文
posted @ 2019-10-04 14:33 夕晖 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 自第一台RISC机器诞生后20余载,一些有利于计算机设计,指出了当前硬件技术状态的原则逐渐被接受。如果技术上发生了重大变革(比如,一种可以量产的处理器比当前CPU执行内存循环的速度快10倍),一切都要推倒重来。因此计算机的设计者应该时刻关注技术变化,它们有时会影响计算机各个组成部分之间的平衡。 尽管 阅读全文
posted @ 2019-10-04 14:24 夕晖 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 说明 本文翻译自斯坦福开放课程【编程范式】的系列课件,有删改。 本系列会持续更新,预计一周发布1到2篇。 如有意见/建议或是存在版权问题,欢迎园友指正。 转载无需通知本人,但请注明出处,谢谢! 计算机体系结构 下面这个简明的图片描述了计算机原型的主要特征。CPU是执行所有工作的场所,内存是所有代码和 阅读全文
posted @ 2018-05-31 15:11 夕晖 阅读(377) 评论(2) 推荐(0) 编辑
摘要: 说明 本文翻译自斯坦福开放课程【编程范式】的系列课件,有删改。 本系列会持续更新,预计一周发布1到2篇。 如有意见/建议或是存在版权问题,欢迎园友指正。 转载无需通知本人,但请注明出处,谢谢! 速成课 你可以和Python解释器对话,你输入表达式,它返回计算结果。多做几次就产生了一个清晰的读取-求值 阅读全文
posted @ 2018-05-26 18:30 夕晖 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 说明 本文翻译自斯坦福开放课程【编程范式】的系列课件,有删改。 本系列会持续更新,预计一周发布1到2篇。 如有意见/建议或是存在版权问题,欢迎园友指正。 转载无需通知本人,但请注明出处,谢谢! 函数调用分析 对有递归特性的编程语言来说,区分函数定义和函数调用是十分有必要的。函数定义规定了函数的行为, 阅读全文
posted @ 2018-05-25 18:20 夕晖 阅读(948) 评论(2) 推荐(1) 编辑