《编码的奥秘》笔记
http://blog.sina.com.cn/s/blog_7155b61b0100p8vj.html 转载
第1章 电筒密谈 &第2章 编码与组合 &第3章布莱叶盲文与二元编码
总结:从摩尔斯电码到布莱叶盲文,都是二元编码,即用两个元素(点和划或者凸起和不凸起)经过一定的组合来表示英文字母和标点符号。这三章关键是为了说 明:“实际上任何两种不同的东西经过一定的组合都可以代表所有种类的信息”。换句话说,二元编码可以表示一切离散信息。这是世界可以像今天这样被信息化的 基础原理。
第4章 手电筒剖析 &第5章 绕过拐弯的通信 &第6章电报机与继电器
总结:电-电池(伏特1800发明)-电路-电报机(摩尔斯1836发明-1844在美国开始应用)-继电器,人类的通信能力借助电飞速发展。
继电器是伟大的发明,它是一个能够用电磁铁控制的开关,用以加强因距离太远而减弱的电报信号。换句话讲,它是能够由开关控制的开关,这样,实现复杂的逻辑电路就成为了可能,实现计算机也就成为了可能。
电报机的原理是通过闭合开关产生电流使电磁铁工作,继而拉动电磁铁上边的铁块敲击电磁铁。闭合一次开关,铁块发出一次滴答声,短的滴答声代表摩尔斯电码中 的点,长的代表划。之所以用电磁铁而不用电灯泡一是因为实用灯泡直到1879年才发明出来,再者对电报接收者来说边听边记是最方便的。
第7章 十进制计数法 &第8章 其他进位制计数法 &第9章 二进制数
总结:二进制计数法只有0和1,是最简单的计数法,同时也符合二元编码的定义。因此,二进制数除了可以表示数字外,还可以表示一切离散信息(文本、声音、图片、图像、状态、逻辑等)。
二进制数在1948年由一名美国数学家命名为bit,用以代替binary digit。1bit也代表1位二进制数。
第10章 逻辑与开关 &第11章逻辑门电路
总结:布尔代数和迪摩根定律(同在1847发表),阐述了以集合为操作数的代数计算法则。克劳德·香农在1938的硕士论文中最终将布尔代数和电路联系起 来。逻辑与、逻辑或和逻辑非,分别可以用继电器(现在用晶体管)的并联、串联和反向器电路实现。更复杂的逻辑门电路无非是这三种基本门电路的组合。从此, 电器工程师可以通过布尔代数来设计和简化由逻辑门(与、或、异或门等)组成的电路。
注:布尔代数中的集合操作数可以被代入1(是)或0(否)并得出相应的计算结果(1或0),逻辑门电路中的输入端可以被输入高电压(1)或低电压(0)并 得到电路最后的输出(高电压1或低电压0),并且逻辑门的输入输出结果恰恰与布尔代数的输入输出结果相吻合。发现这两者之间的联系意义巨大,真是天才所 为。
第12章 二进制加法机 &第13章如何实现减法
总结:二进制全加器通过将每一位的“和”(或非门)与“进位”(与门)分别计算的方式来实现二进制加法。
实现二进制减法的原理:A – B = A + (10 – B) – 10,其中10-B就是对B求2的补数,这样减法就变成了加法。(10 – B)在电路中通过对B取反+1来实现;-10则可以由舍掉进位来实现。这种方式的局限性在于A必须>B,计算时才会产生进位。还有另一种方式就是定 义带符号的二进制数,其中负数都是对应正数求2的补数。因此求减法的原理与上一种方式一样,计算减法时正数与负数直接相加即可。
第14章反馈与触发器
总结:将逻辑门的输出重新接回输入就构成了反馈,反馈在计算机中的典型应用是振荡器(反向器输出接输入,输出会在0和1之间变化,构成时钟频率)和触发器(能够记忆上次的输入,也称锁存器,构成内存的电路)。
触发器分电平触发和边沿触发两类。电平触发器的写入功能是靠输入一个高电平来触发,边沿触发器的写入功能则依靠输入一个电平的正跳变来触发。电平触发器的 典型应用是手持计算器的连加功能,边沿触发器的典型应用则是计数器(由一个振荡器与多个边沿触发器串联构成,计数器也可以预置数值,因此可以实现对内存地 址的顺序寻址和随机访问)。
第15章字节与十六进制
总结:一个字节(byte)由八个二进制位(bit)构成,字节的概念由IBM公司在1956年前后提出。字节可以方便的保存文本(大部分语言的字符集都少于256个字符)和黑白图像灰度(人眼能够区分的灰度大约是256个)等。
两个十六进制数能够方便的表示一个字节的数值。通常用四位十六进制数表示十六位的内存地址。
第16章存储器组织
总结:存储器由锁存器通过一定组合构造而成。一个存储器至少包含地址输入、数据输入、写入控制输入和数据输出四个端口。16位地址输入可以寻址64K个内存地址,64K×8 RAM表示该存储器可以存储64K个地址,每个地址可以存储8位(1个字节)信息,同时数据传输的宽度也是8位。
第17章自动操作
总结:通过将操作码和数据写入内存,计算机通过顺序寻址内存中的操作码实现了自动操作。操作码是机器唯一可以识别的语言,故又称机器语言,它的本质是一串逻辑门电路的控制信号,用以控制电路实现相应功能(装载、加、减、写入、停止等)。
条件转移指令(非零转移、零转移、进位转移和非进位转移等)是其中最有意义的指令,它使控制重复或循环成为可能,进而使计算机能够实现更复杂的运算(乘、除、方根、对数和三角函数等)。
汇编语言是用助记符来表示操作码的一种程序设计语言。将汇编语言转换为机器码的过程叫“汇编”。
第18章从算盘到芯片
总结:
时间 |
事件 |
详情 |
1833 |
查尔斯·巴贝芝(英)设计解析机(并未亲自制造出来)。 |
解析机是19世纪最接近计算机的发明。设计中包含一个存储系统和运算器,最精华的部分是可以用卡片编程,并且可以进行条件转移指令。巴贝芝被誉为现代计算机的先驱。 |
1890 |
赫曼·霍勒瑞斯(美)设计制造制卡机。 |
制表机的发明主要是为了方便10年一次的全美人口普查,而发明者霍勒瑞斯本人就是1880年人口普查的统计员。该机器在1890年人口普查中大获成功,1896年他成立制表机公司,该公司1924年改名为国际商用机器公司(IBM)。 |
1935 |
康拉德·楚泽(德)设计制造第一台继电器计算机Z-1。 |
楚泽是公认的机电计算机之父,设计Z-1时他还是一名工程系的学生。Z-1采用的是二进制,可用电影胶片编程。楚泽用一生时间不断的对他的发明进行改进。 |
1943 |
霍华德·艾肯(美)设计制造第一台打制表格的数字计算机Harvard Mark I。 |
霍华德·艾肯当时是哈弗大学的研究生,因需要某种方法进行大量重复计算,所以与IBM合作,开发计算机。 |
1943 |
艾伦·M·图灵(英)等人设计制造真空管计算机Colossus。 |
Colossus用于破译德军密码。真空管很容易被烧毁,但维护的复杂程度要比继电器小的多。虽然真空管(微秒级)的速度要比继电器(毫秒级)快1000倍,但早期计算机并不十分关注运算速度问题,因为速度瓶颈主要集中于从纸带中读取程序的时间。 |
1945 |
摩尔电器工程学校设计制造真空管计算机ENIAC。 |
ENIAC用了18000个真空管,重30吨,是迄今为止最大的计算机。 |
1946 |
冯·诺依曼(匈出生-美国居住)提出存储程序概念。 |
存储程序概念:将指令顺序存放在存储中并用程序计数器来寻址,但同时也应允许条件转移。存储程序概念是一个革命性的思想,今天被称作冯·诺依曼体系结构, 是现代计算机设计基础。但冯·诺依曼体系结构也有缺点,那就是要花大量时间从存储器中取指令到CPU处来准备执行,称冯·诺依曼瓶颈。 |
1948 |
克劳德·香农(美)在贝尔实验室期间提出“位”的概念,并确立了“信息理论”的研究领域。 |
信息理论涉及在噪声(经常阻碍信息传送)存在的情况下传送数字信息以及如何进行信息补偿等问题。 |
1947 |
威廉·邵克雷(美)、约翰·巴顿(美)和沃特·布拉顿(美)在贝尔实验室发明晶体管。 |
晶体管是20世纪最伟大的发明,三人因此获得1956年诺贝尔物理学奖。半导体是指其导电性可由多种方法来控制,它由锗、硅等纯半导体掺杂杂质制成。其作为逻辑开关的原理与继电器、真空管一样,但它的响应速度是纳秒级的,而且其使用寿命也足够的长。 |
1958 |
罗伯特·诺伊斯(美)和杰克·基尔比(美)同时发明集成电路。 |
集成电路(又称芯片、IC)依靠的是一种能在一个硅片上造成许多晶体管、电阻及其他电子组件的方法。 |
1965 |
戈登·E·摩尔(美)发现摩尔定律。 |
摩尔定律:每过18个月(一年半)可以集成到一块芯片上的晶体管数量都翻一番。 |
1971 |
Intel公司研制Intel4004,第一个“芯片上的计算机”(微处理器)。 |
Inter公司由罗伯特·诺伊斯和戈登·E·摩尔建立。前者发明了集成电路,后者发现了摩尔定律。Intel4004奠定了微处理器的三个主要参数,即数据宽度、时钟频率和寻址范围,这三个参数粗略的说明了处理器的运行速度。 |
注:二战后,美国的计算机科技迅速崛起,理论与发明层出不穷。1946年冯·诺依曼体系结构的提出和1947年晶体管的发明一举奠定了美国在现代计算机发 展领域的领先地位。究其原因,一是由于美国当时的民主与法制程度,较当时世界上各国处于领先地位。这在一定程度上保障了学术自由制度的执行,使得很多发明 和创造能够产生于学校和实验室。二是由于美国本土在战争中受到的损失最小,使得在其他各国都忙着战后重建的时候,美国科技可以专心发展,异军突起。三是由 于美苏争霸的冷战局面,极大的刺激了美国计算机科技的发展。
由此可以推断,一个国家如果想迅速崛起,其需要满足三个条件:第一,较先进的社会制度;第二,内部的安定团结;第三,外部的强敌隐患。着眼于当下的中国,则第三条并不缺少,而应于第一和第二条处不断发力,精修内政,方可实现崛起大业。
第19章两种典型的微处理器
总结:1974年产的Intel 8080和Motorola 6800是现代微处理器的雏形。两款处理器的共同之处是都有若干个寄存器来提高运算速度,都采用了堆栈存储技术(LIFO后进先出)来处理中断和子程序的调用,并都用I/O端口来访问外设(将外设作为一个内存地址来访问)。
第20章 ASCII码和字符映射
总结:ASCII码全称美国信息交换标准代码,于1967年公布,用来将英文字母、数字和标点符号在计算机中编码,每一个ASCII码占一个字节(可编码 256个字符)。为能够将世界上所有的语言符号一起编码,1988年几个主要的计算机公司联合发布了Unicode码,一个Unicode码占两个字节 (可编码65536个字符)。
第21章总线连接
总结:总线是供给计算机中每块电路板的数字信号的集合。换句话说,总线是计算机各个部件之间数据传输的通道。另外,总线给各个电路板提供电源。有些总线的 规范是公开的,计算机部件供应商可按照总线规范生产各个部件(内存、键盘等),这种总线称开放式体系结构总线(如Inter的外围部件互联PCI总线), 造就了PC兼容机市场的繁荣。还有些总线规范是不公开的,称封闭体系结构总线(如早期的苹果Macintosh),能够避免被模仿,保持技术的独创性。
显卡(显示适配器)是向显示屏提供信号的部件。图像是由一束连续的射线很快扫过屏幕形成的,扫完一屏叫扫了一场,每秒扫场的次数叫场频(刷新频率,一般为 60Hz),因扫描速度很快,图像不会出现闪烁。扫描时,屏幕被划分为一个个细小的正方形点,称像素,每种分辨率像素的长宽比都是 4:3(640×480、1024×768),这个比例是由1889年爱迪生发明电影摄像机和放映机时确定的。显示时,CPU要向显卡的RAM(显存)中 提前写入每个像素要显示的颜色(访问显存同样占用CPU的寻址空间)。颜色是三原色的混合,因此为显示一个像素显存中要在显存中分别写入三种颜色的强度 值,也就是说,显卡能够显示颜色的多少等于2的每个像素使用的位数次幂。
键盘的工作原理是每个键都对应一个唯一地址(键盘扫描码),每次按键都会输出一个中断信号和该键的地址,CPU会调用键盘处理程序来判断用户输入的是什么字符。
磁盘的工作原理是根据金属丝磁化的不同程度产生不同的电流。磁盘的表面分成很多同心圆称为磁道,每个磁 道又分成若干个扇区,每个扇区存放一定数量的字节,通常为512字节。常用的硬盘驱动器标准有SCSI(小型计算机系统接口)、ESDI(增强的小型设备 接口)和IDE(集成设备电气接口),所有这些接口都支持硬盘与内存之间不通过CPU直接传输数据。
第22章操作系统
总结:操作系统为计算机提供了三大功能。首先,它提供了开机之后的初始化,能够引导计算机执行最初的指令;其次它提供了管理硬件的最基础的命令集 (BDOS基本磁盘操作系统、BIOS基本输入输出系统),能够控制最基本的硬件电路;最后,它为应用程序提供了接口(API应用程序接口),能够使应用 程序忽略硬件的不同。
第23章定点数和浮点数
总结:定点数的小数点固定在特定的位置(如保留两位小数),浮点数的小数点不固定,是一种科学计数法表示的二进制数。前者小数点后的位数是固定的,后者则是可变的。
第24章高级语言和低级语言
总结:低级语言即汇编语言,因为程序针对于特定的处理器编写,而不同处理器一般会有不同的命令集,因此不可移植。
高级语言的优点一是程序员容易读写,二是程序的编写不用考虑硬件,可以在不同机器上移植(是指在编译之前)。缺点一是编译之后的程序要比汇编语言效率低,二是不能最大限度的发挥处理器能力,因为它要可移植,所以它无法使用某种处理器独有的功能。
第25章图形化革命
总结:如题,计算机已经从最初的文本时代跃进到图形化时代。无论是操作系统、应用程序、图片还是电影,都早已图形化,而网络时代的到来,更是加速了革命的步伐。