1. 摩尔定律1.1. 1965年摩尔提出一个集成电路可容纳的晶体管数目大约每年增加一倍1.2. 1975年摩尔将每年修订为每24个月1.3. 产业界又将其修订为每18个月翻一番1.4. 摩尔定律的持续正确极大促进了集成电路的进步为冯·诺依曼体系插上翅膀此后计算机技术迅猛发展1.4.1. 计算机的核心处理器愈发强大愈发廉价逐步进入千家万户2. 计算世界2.1. 集成电路领域主要包括三大应用计算、通信与存储2.1.1. 计算相关的半导体领域包罗万象PC、智能手机处理器基于ARM架构的各类嵌入式处理器人工智能相关的GPU与可编程逻辑器件都属于这个领域2.1.2. 半导体产业以计算为中心电子信息世界也以计算为中心2.1.3. 通信与存储系统是电子信息产业基础设施重要的组成部分其主要任务是搭建舞台而真正上台表演的是计算2.1.4. 集成电路的发展重心由通信与存储领域逐步转移到计算领域并持续至今2.2. 1937年开始设计的ABC(Atanasoff-Berry Computer)计算设备揭开了计算时代的序幕2.3. 二战之后伴随晶体管与集成电路的出现计算领域出现了三次浪潮分别是大型机时代、PC时代与智能手机时代2.4. 在三次浪潮中计算世界围绕算法与体系结构展开算法与体系结构的世界围绕阿兰·麦席森·图灵与约翰·冯·诺依曼展开2.4.1. 图灵与冯·诺依曼的光辉岁月均出现于二战前后他们在计算领域的贡献一直等到集成电路产业突飞猛进之后才充分展现2.4.2. 图灵的贡献是清晰定义了什么是计算并设计了图灵机证明了计算模型之间的等价以及计算模型的极限2.4.3. 冯·诺依曼的成就在于提出搭建通用计算机体系的有效方法3. 哥廷根大学3.1. 哥廷根大学是世界上最著名的学府在此就读的学生与工作的学者这样描述这所院校​“哥廷根之外没有生活。即便有生活亦非这般的生活”​3.2. 1929年哥廷根数学研究所成立组成了一个星光灿烂的阵容包括分别将相对论与群论引入量子力学的保罗·狄拉克和赫尔曼·外尔对薛定谔方程进行几率解释的马克斯·玻恩原子弹之父罗伯特·奥本海默以及被称为“数学世界亚历山大”的希尔伯特等人4. 图灵4.1. 1912年6月23日图灵生于英国伦敦4.2. 1926年图灵被英国公立学校舍伯恩录取4.3. 1931年图灵考入剑桥大学4.4. 1936年4月图灵提交了一篇对后世影响深远的文章《论可计算数及其在判定问题上的应用》4.5. 1936年9月图灵开始在Church教授的指导下攻读博士学位4.6. 1938年6月图灵获得博士学位4.7. 图灵最终选择回到剑桥从事与可计算理论相关的研究4.8. 图灵机可以解决所有可以用状态机描述的问题4.8.1. 如果一个问题无法用图灵机来完成意味着没有任何算法能够解决这个问题也意味着凡是能用算法求解的问题就一定可以使用图灵机完成4.9. 图灵在逻辑学、代数学与数论等领域迅速展现出惊人的才华4.9.1. 逻辑学、数论与可计算理论是密码破译最重要的数学基础4.10. 在密码破译的背后比拼的是交战国之间计算能力的高下4.10.1. 这个计算能力由人与机器组成4.10.2. 在英国图灵是那个人机器是图灵设计的机器4.11. 他是密码破译行业的天选之子4.11.1. 基于图灵机模型能够设计出强大的计算设备加速密码破译进程4.12. 德军设计了一种名为Enigma的密码机4.12.1. Enigma密码机被认为是世界上最先进的密码机4.12.2. 按照Enigma密码机设计者的思路这台增强后的设备能够产生10^20量级的加密组合4.13. 1939年图灵设计了一台巨大的机器后世将之称为“图灵Bombe”密码破译机取名Bombe主要是为了纪念波兰人的Bomba密码破译机4.14. 在所有人的努力下第一台改进后的Bombe破译机于1940年8月搭建完成并迅速投入使用4.14.1. 目前世界上公认的第一台电子计算设备是ABC但我们更应该称呼Bombe破译机是人类历史上的第一台电子计算机4.14.2. ABC计算设备的原型设计于1939年11月直到1942年才搭建出完整机型4.15. Bombe破译机传入美国后许多公司开始复制这一产品其中一家从事制表机和穿孔卡片机的公司也开始生产这种机器这个公司就是号称“蓝色巨人”的IBM(International Business Machines)4.15.1. 在北非战场蒙哥马利凭借破译带来的信息优势击败了“沙漠之狐”隆美尔4.15.2. 又在大西洋海战中帮助皇家海军击溃德国潜艇编队4.16. 1941年起德军研制出与Enigma密码机完全不同的更加先进的电传打字机加密系统即Lorenz密码用于加密希特勒在内的德军高级将领之间的通信4.17. 密码破译在战争时期的成就使其在战后跃上神坛4.17.1. 算法之外密码破译需要比拼计算能力4.17.2. 计算能力决定了密码破译的效率被视为一个国家军力的象征4.17.3. 从这时起各国军方围绕计算展开了一场旷日持久的竞赛4.17.4. 这场军备竞赛为晶体管的诞生提供了肥沃的土壤揭开了现代计算机发展的帷幕4.18. 1950年图灵发表了另外一篇对后世影响深远的论文《计算机与智能》4.19. 1954年6月8日图灵在他42岁的时候却使用一个毒苹果离开了这个世界4.20. 图灵的一生注定是孤独的4.21. 为了纪念图灵计算机科学界以他的名字命名这个领域的最高奖项4.21.1. 图灵机、Bombe破译机和人工智能是图灵留给后世的重大贡献5. 冯·诺依曼5.1. 1903年冯·诺依曼出生于匈牙利的一个犹太家庭5.2. 15岁时匈牙利著名数学家Gábor Szegő为他讲解高等微积分课程时竟被这个男孩异乎常人的天分震惊得痛哭流涕5.3. 19岁时这个男孩已在顶级数学刊物上发表了两篇文章5.4. 在数学领域冯·诺依曼展现出惊天的才华非常轻松地拿到数学博士学位于1926年进入哥廷根大学跟随希尔伯特从事数学研究5.5. 从1927年开始发表了一系列与量子力学有关的文章其中包括一本专著《量子力学的数学基础》5.6. 1929年冯·诺依曼在一篇著作中将希尔伯特提出的一种空间命名为“希尔伯特空间”5.6.1. 冯·诺依曼最早认识到希尔伯特空间的重要性并借助这个空间对量子力学进行了一系列基础且极具创造性的研究工作5.7. 在量子力学发展史中重要的研究工具一是薛定谔方程二则是希尔伯特空间与算符理论5.7.1. 量子力学领域的果实大多已被哥本哈根学派摘取5.7.2. 冯·诺依曼在数学层面的查漏补缺没有使他在数学界或者物理界获得足够声望5.8. 年轻的冯·诺依曼在星光灿烂且按部就班的欧洲大陆甚至无法谋得一个副教授职位5.9. 1929年美国的普林斯顿大学需要开设与量子力学相关的数学基础课程冯·诺依曼收到邀请后欣然前往5.10. 1931年27岁的冯·诺依曼成为普林斯顿大学的教授5.11. 普林斯顿大学成立高等研究院5.11.1. 在这个研究院中第一批终身教授有6名其中一名是爱因斯坦最年轻的是年仅30岁的冯·诺依曼5.12. 宾夕法尼亚大学此时正在研制一台计算机即ENIAC(Electronic Numerical Integrator And Computer)用于测算导弹的运行轨迹5.12.1. 见识了ENIAC的威力之后冯·诺依曼决定作为顾问参与研制下一代机型EDVAC(Electronic Discrete Variable Automatic Computer)5.12.2. 数学家的冯·诺依曼从事“计算科学”的出发点是进行导弹轨迹计算、核弹模拟这些高端应用5.13. 1945年6月30日冯·诺依曼的一份关于如何搭建EDVAC的手写草稿即“First Draft of a Report on the EDVAC”正式发表简称为“First Draft”5.14. 1946年冯·诺依曼与其他人一道完善并总结了“First Draft”​发表了一篇名为“Preliminary discussion of the logical design of an electronic computing instrument”的论文5.15. 1949年交付并于1951年投入使用的EDVAC5.15.1. 这台计算机运行新的程序不需要重构计算机硬件仅需提供不同的程序代码即可5.15.2. EDVAC因此被称为人类历史上第一台通用电子计算机5.15.2.1. 只有EDVAC作为第一台通用电子计算机没有丝毫争议因为这台计算机所基于的冯·诺依曼体系与二进制运算是毫无疑问的通用电子计算机的标志5.15.2.2. 这台计算机的设计基石—冯·诺依曼体系重构了其后的计算世界5.15.2.3. 采用这种方法实现新的算法时只需要更换计算机所运行的程序而无须重新搭建电路5.16. 直到1973年美国联邦地方法院判决撤销ENIAC的专利认为ENIAC发明者从ABC计算设备中获得了设计构想5.16.1. 至此ABC被裁定为世界上第一台计算机5.16.2. ENIAC是第一台可编程、图灵完备的计算机5.16.3. ABC、Bombe和Colossus计算机类似仅能执行固定任务依然是一种专用计算设备5.17. 冯·诺依曼体系5.17.1. 确定了在计算机体系结构中的五大基本组成部件包括控制单元(Control Unit)、算术逻辑单元(Arithmetic Logic UnitALU)、寄存器(Processor Registers)、内存单元(Memory Unit)与输入/输出设备(Input/Output Device)5.17.2. 其中控制单元、算术逻辑单元与寄存器合称为中央处理器(Central Processing UnitCPU)5.17.3. 此后直到今天所有计算机从大型机、PC到手机处理器全部基于这种架构实现5.17.4. 冯·诺依曼体系极大化简了在计算机设计中存在的冗余将绝大多数应用场景规约于一个统一模型奠定了现代计算机体系结构的基础5.17.5. 在现代处理器中寄存器与内存之间设置了非常复杂的缓冲结构这种缓冲结构也被称为Cache层次结构5.17.6. 引入Cache层次结构的目的是缓解冯·诺依曼瓶颈但是瓶颈依然存在