
1. 比特
1.1. 表示数字信息的最基本的方法是用比特
-
1.1.1. 单词“bit”是二进制数字“binary digit”的缩写,由统计学家约翰·图基(John Tukey)在20世纪40年代中期创造
-
1.1.2. 比特是一个二进制数位,也就是说,这个数字取1或0
-
1.1.3. 如果有N个比特,就有2^N个可能的值,所以知道2的某个值的幂是很方便的
1.2. 计算机是数字处理器
-
1.2.1. 计算机采用比特(bit,又叫位)来表示信息
-
1.2.2. 计算机内部的所有东西都是以比特而不是人们熟悉的十进制数字来表示的
-
1.2.3. 可能是因为重量、长度等的加倍或减半对人们来说是一种很自然的操作,二进制也出现在与计算无关的现实环境中
1.3. 较大的信息以比特组表示
- 1.3.1. 数字、字母、单词、名字、声音、图片、电影以及处理它们的程序中的指令,所有这些都是以比特组的形式表示的
1.4. 字节
- 1.4.1. 在所有现代计算机中,处理和存储组织的基本单位是作为一个单位来处理的8个比特
1.5. 一个程序的指令有时是另一个程序的数据
-
1.5.1. 当你下载程序或手机应用时,它只是数据:一些被盲目复制的比特
-
1.5.2. 当你运行这些程序时,处理器在处理时它们的比特就被当作指令处理
2. 模拟和数字
2.1. analog(模拟)和analogue(类比)来自同一个词根,意思是随着其他事物的变化,数值也会随之平滑变化
-
2.1.1. 存储和处理离散的信息块,采用离散的值
-
2.1.2. 模拟信息意味着平滑变化的值
2.2. 我们在真实世界中应对的事物往往是模拟的
- 2.2.1. 我们的世界是模拟的,而像手表和速度表这样的模拟设备更容易让人一目了然
2.3. 数字系统处理的是离散值,所以只有固定数目的可能值:转向信号在一个方向或另一个方向上,要么关闭要么打开
- 2.3.1. 很多现代技术都是数字化的
2.4. 数字系统与模拟系统相比还有另一个优势:它们更容易被扩展
2.5. 模拟系统有时也具有优势:像泥板、石刻、羊皮纸、纸张和摄影胶片等旧媒体都以数字形式可能无法做到的方式经受住了时间的考验
3. 模数转换
3.1. 图像的数字化
-
3.1.1. 模拟相机通过将化学涂层塑料薄膜的感光区域暴露在被拍摄物体发出的光线下来创建图像
-
3.1.2. 不同的区域接收不同数量不同颜色的光,这会影响胶片中的染料
-
3.1.3. 胶片通过一系列复杂的化学过程显影并印在纸上,不同数量的有色染料显示出不同的颜色
-
3.1.4. 在数码相机中
-
3.1.4.1. 镜头将图像聚焦到红色、绿色和蓝色滤光片后面由微小光敏探测器组成的矩形阵列上
-
3.1.4.2. 每个探测器存储的电荷量与照射到它的光的量成正比
-
3.1.4.3. 这些电荷被转换成数值,结果数字序列可以表示光的强度,从而构成了图像的数字表示
-
3.1.4.4. 如果探测器数量更多,电荷测量将更精确,那么数字化图像将更准确地捕捉原始图像
-
3.1.4.5. 传感器阵列的每个元素都是一个三合一检测器,用于测量红、绿和蓝光的
-
3.1.4.6. 对于图片元素,每组称为一个像素
-
3.1.5. 对于图像而言,最常见的压缩技术被称为JPEG,这是以联合图像专家组(Joint Photographic Experts Group)的名字命名的,该组织定义了JPEG,它能将图像缩小为原来的1/10或更小
3.2. 声音的数字化
-
3.2.1. 留声机
-
3.2.1.1. 在19世纪70年代,托马斯·爱迪生(Thomas Edison)制造了一种他称之为留声机的设备,它将波动转换成蜡制圆柱体中的凹槽图案,这些图案可以在以后用来重现气压波动
-
3.2.1.2. 将声音转换为凹槽图案就是录音
-
3.2.1.3. 从图案转换为气压波动就是回放
-
3.2.2. 模数转换的第二个例子是声音,尤其是音乐
-
3.2.2.1. 声源通过振动或其他快速运动产生气压波动,我们的耳朵将这个气压变化转化为一种神经活动,从而大脑解释为声音
-
3.2.2.2. LP唱片是带有长螺旋槽的黑胶唱片,它可以编码随时间变化的声压
-
3.2.2.3. 通过绘制气压随时间的变化,可以很容易地将声音可视化
-
3.2.3. 数字音乐是很好的例子,因为这是数字信息属性开始产生重大社会、经济和法律影响的首个领域之一
-
3.2.3.1. 与黑胶唱片或磁带不同,数字音乐可以在任何家用计算机上免费地进行任意次数的复制,并且可以通过互联网将完美的副本无误地传送到世界任何地方,这同样是免费的
-
3.2.4. 从波形到数字的转换是模数转换,转换设备称为A/D转换器
-
3.2.4.1. 另一个方向当然是数模转换,或称为D/A
-
3.2.5. 音频光盘或CD出现在1982年左右,它是第一个消费数字声音的例子
-
3.2.5.1. 与LP唱片的模拟槽不同,CD在磁盘一侧的长螺旋轨道上记录数值
-
3.2.5.2. 沿着轨道的每一点的表面要么是光滑的,要么有一个小凹点
-
3.2.5.3. 所具有的更小的凹点和更短波长的激光允许它们能存储近5GB数据,相比之下,一张CD存储的数据约700MB
-
3.2.5.4. 不会磨损,因为它没有和激光进行物理接触,也不会受到灰尘或划痕的干扰
-
3.2.5.5. CD的第二大用途是存储和分发软件和数据,但这一功能已被DVD取代,而DVD在很大程度上又被互联网存储和下载所取代
3.3. 电影的数字化
-
3.3.1. 如今,电影是以每秒24帧的速度显示图像
-
3.3.2. 电视则以每秒25~30帧的速度显示图像
-
3.3.3. 这已经快到足以让人眼把这个序列看作连续的运动
-
3.3.4. 电子游戏通常是每秒60帧
-
3.3.5. 老电影每秒只有十几帧,所以有明显的闪烁(flicker)
-
3.3.6. 电影和电视节目是画面和声音的结合,其商业节目的制作成本比音乐节目高得多
-
3.3.6.1. 制作完美的数字拷贝并免费发送到世界各地也很容易
3.4. 文本的数字化
-
3.4.1. 最低要求是:数字表示可以表示所有这些类型的信息,甚至任何可以转换为数值的信息
-
3.4.2. ASCII
-
3.4.2.1. 1963年发布的标准
-
3.4.2.2. 美国信息交换标准代码(American Standard Code for Information Interchange)
-
3.4.3. Unicode
-
3.4.3.1. Unicode为每种语言中的每个字符指定了一个唯一的数值
-
3.4.3.2. Unicode有超过140000个字符,而且这个数字还在稳步上升
4. 图灵
4.1. 图灵是计算机领域最重要的人物之一,他对人类理解计算做出了重大贡献
4.2. 计算机科学领域的诺贝尔奖—图灵奖,就以图灵的名字命名以对其致敬
4.3. 1950年,图灵发表了一篇名为“计算机器与智能”(Computing Machinery and Intelligence)的论文,其中提出一个测试(即今天所谓的图灵测试),人们可以通过该测试来评估计算机是否能表现出人类的智能
4.4. 缩写词CAPTCHA(验证码)中包含图灵的名字
-
4.4.1. 这个缩写词代表“Completely Automated Public Turing test to tell Computers and Humans Apart”(用以区分计算机和人的完全自动化的公共图灵测试)
-
4.4.2. 广泛用于验证网站的用户是人而非程序
-
4.4.3. 是一个反向图灵测试的示例,因为它利用了人比计算机更擅长识别文字这一事实,来达到区分人和计算机的目的
5. 处理器
5.1. 处理器有一个小型指令系统,包含它能够执行的基本操作
-
5.1.1. 可以做算术—对数字进行加、减、乘、除,就像计算器一样
-
5.1.2. 可以从内存中提取数据进行操作,并且可以将结果存回内存中,与很多计算器中的存储操作一样
-
5.1.3. 控制着计算机的其他部分,它使用总线上的信号来控制和协调任何与它连接的输入和输出,包括鼠标、键盘、显示器和其他任何组件
5.2. 由于处理器能根据其所处理的数据决定下一步做什么,因此它就能独立运行整个系统
-
5.2.1. 处理器反复执行取指令、译码、执行的周期
-
5.2.2. 它从内存中取得下一条指令,该指令正常情况下保存在内存的下一个位置
5.3. 计算机体系结构考量的一个问题是指令集,也就是处理器配备的指令表
5.4. 大部分的手机都使用称为“ARM”的处理器设计,这是专为低功耗设计的
- 5.4.1. ARM处理器的设计是由英国的Arm Holding公司授权的
5.5. 基于通用处理器,可以通过编程完成无穷无尽类型的任务
-
5.5.1. 每个处理器都有一个有限的简单指令表,能够完成算术运算、比较数据、基于前置计算结果选择下一条指令
-
5.5.2. 同时让多台处理器同时执行
5.6. 现代计算机的芯片上几乎都有多个内核,也可能有多个处理器芯片,并且在集成电路上有大量的缓存,以使内存访问更有效
5.7. GPU
-
5.7.1. 图形处理单元(Graphics Processing Unit, GPU)是一种特殊的处理器,它执行某些图形计算的速度要比通用CPU快得多
-
5.7.2. GPU最初是为游戏所需的高速图形计算而开发的,也用于手机中的语音和信号处理
-
5.7.3. GPU还可以帮助普通处理器加速处理某些类型的工作负载
-
5.7.4. GPU可以并行处理大量的简单计算,因此,如果计算任务的某些部分涉及可以并行完成的操作,并且可以交给GPU,那么整个计算可以更快地进行
6. 缓存
6.1. 缓存却是很通用的思想,只要你现在用到的东西不久还会用到,或者可能会用到与之邻近的东西,那缓存思维就会很有帮助
- 6.1.1. 是一个超越计算领域的广泛适用的思想
6.2. 在处理器中,缓存是一种容量小但速度快的存储器,用于存储最近使用的信息,以避免访问容量大但是慢很多的主存
6.3. 典型的处理器有两到三个缓存,容量依次增大,但速度递减,一般称为一级缓存(L1)、二级缓(L2)和三级缓存(L3)
- 6.3.1. 最大的缓存能存储以兆字节计的数据
6.4. 缓存之所以很有用,是因为最近使用过的信息很可能很快被用到—而把它们存储在缓存里就意味着减少对内存的等待时间
6.5. 缓存通常会一次性加载一组信息块,比如当只请求一个字节时,也会加载内存中一段连续的地址
6.6. 因为相邻的信息也可能很快被用到,这样需要它们的时候就已经在缓存里了
-
6.6.1. 换句话说,对邻近信息的引用也不需要等待
-
6.6.2. 内存也可以视为磁盘的缓存,而内存和磁盘又都可以视为网络数据的缓存
-
6.6.3. 计算机网络经常会利用缓存加速访问来自远程服务器的信息流,而服务器本身也有缓存
7. 其他类型的计算机
7.1. 手机和平板电脑也是计算机,它们运行操作系统并支持更加丰富的计算环境
7.2. 更小的系统嵌入到日常生活里能见到的几乎所有数字设备里,包括数码相机、电子书阅读器、健身追踪器、摄像机、家电、游戏机
7.3. 所谓的“物联网”—联网恒温器、安全摄像头、智能灯、语音识别器等—也依赖于这种处理器
7.4. 超级计算机往往有很多数目的处理器和大量的内存,这些处理器本身可能带有一些特殊指令,在处理某种数据时比通用的处理器速度更快
7.5. 分布式计算是指很多更加独立的计算机
-
7.5.1. 不共享内存
-
7.5.2. 在地理上更加分散,甚至位于世界的不同地方
