6、指令跳转:原来if...else就是goto

上一讲,我们讲解了一行代码是怎么变成计算机指令的。你平时写的程序中,肯定不只有int a = 1这样最最简单的代码或者指令。我们总是要用到if…else这样的条件判断语句、while和for这样的循环语句,还有函数或者过程调用。 对应的,C...

深入浅出计算机组成原理

5、计算机指令:让我们试试用纸带编程

你在学写程序的时候,有没有想过,古老年代的计算机程序是怎么写出来的? 上大学的时候,我们系里教C语言程序设计的老师说,他们当年学写程序的时候,不像现在这样,都是用一种古老的物理设备,叫作“打孔卡(Punched Card)”。用这种设备写程序,可没法...

深入浅出计算机组成原理

4、穿越功耗墙,我们该从哪些方面提升“性能”?

上一讲,在讲CPU的性能时,我们提到了这样一个公式: 这么来看,如果要提升计算机的性能,我们可以从指令数、CPI以及CPU主频这三个地方入手。要搞定指令数或者CPI,乍一看都不太容易。于是,研发CPU的硬件工程师们,从80年代开始,就挑上了CPU这个...

深入浅出计算机组成原理

3、通过你的CPU主频,我们来谈谈“性能”究竟是什么?

“性能”这个词,不管是在日常生活还是写程序的时候,都经常被提到。比方说,买新电脑的时候,我们会说“原来的电脑性能跟不上了”;写程序的时候,我们会说,“这个程序性能需要优化一下”。那么,你有没有想过,我们常常挂在嘴边的“性能”到底指的是什么呢?我们能不...

深入浅出计算机组成原理

2、给你一张知识地图,计算机组成原理应该这么学

了解了现代计算机的基本硬件组成和背后最基本的冯·诺依曼体系结构,我们就可以正式进入计算机组成原理的学习了。在学习一个一个零散的知识点之前,我整理了一份学习地图,好让你对将要学习的内容有一个总纲层面的了解。 从这张图可以看出来,整个计算机组成原理,就...

深入浅出计算机组成原理

1、冯·诺依曼体系结构:计算机组成的金字塔

学习计算机组成原理,到底是在学些什么呢?这个事儿,一两句话还真说不清楚。不过没关系,我们先从“装电脑”这个看起来没有什么技术含量的事情说起,来弄清楚计算机到底是由什么组成的。 不知道你有没有自己搞过“装机”这回事儿。在2019年的今天,大部分人用的计...

深入浅出计算机组成原理

0、开篇词 | 为什么你需要学习计算机组成原理?

你好,我是徐文浩,一个正在创业的工程师。目前主要是通过自然语言处理技术,为走向海外的中国企业提供英语的智能客服和社交网络营销服务。 2005年从上海交通大学计算机系毕业之后,我一直以写代码为生。如果从7岁第一次在少年宫写程序开始算起,到今天,我的码龄...

深入浅出计算机组成原理

18、结束语:在我家的后院养长颈鹿

你好,我是卢誉声。 时光流逝,专栏到这里真的就要结束了。就像我在开课时曾说的,动态规划是一种解决问题的高级技巧,这不仅体现在它那高深莫测的命名上,还体现在解决实际的算法问题上。我想这趟学习之旅可能有些“烧脑”,那么作为专栏的最后一课,我们就聊一聊轻松...

动态规划面试宝典

17、买卖股票

你好,我是卢誉声。 上一课我们介绍了动态规划面试问题中求方案总数和求可行性这两大类问题的通用解法,解题模版如下: 根据特征判断是否用动态规划来解; 确定初始化状态和状态参数; 确定状态存储数组(即备忘录); 写出关键的状态转移方程; 编写代码进行求...

动态规划面试宝典

16、课程回顾与总结(下)

你好,我是卢誉声。今天我们来继续课程总结,重点回顾几类经典的动态规划问题,并尝试使用我们的解题框架去解决它们。这几类问题我们前面都详细讲过,再带你巩固一遍。 经典的动态规划问题动态规划的问题主要分为三类: 求最优解(最大值和最小值):从一系列方案中...

动态规划面试宝典