《穿越计算机的迷雾》读书笔记
条评论1.4 电流是怎样形成的
电压的存在是导致电流产生的原因
通常,衡量一个电源的重要指标是它的电压,也就是它产生电的能力。不同的电源,所提供的电压也不相同。
2.3 二进制数就是比特串
对于单个的二进制数位,它们都只有一个称呼“比特”,每个比特具有两个可能的值:0 或者 1。
3.3 使用全加器来构造加法机
为了表明这个电路的用途,我们在图的中间加了一个符号“∑”。在数学中,这个符号用来表示“加”,它的读音是“西格马”。
4.5 爱迪生大战交流电
与直流电不同,交流电的方向和大小都是不断变化的。要想了解直流电和交流电之间有哪些不同,使用图形可能是最直观的方法,也是工程上常用的方法。
7.2 反馈和振荡器
把一个非门的输出取出一部分来,同时又作为它的输入,这样就形成了一个反馈。
一个非门,再加上反馈之后,就能产生一连串交替变化的输出,使得与之相连的灯泡一亮一灭,很像一把振动的直尺或一个来回游荡的秋千,在两个端点之间来回运动。作为一种类比,像这种东西,在电子技术领域里叫做振荡器。
如果每秒出现 5 个脉冲,那么频率就是 5Hz,周期为 0.2 秒。
7.3 电子管时代
发明振荡器,最早的目的是为了向天空中扬撒电磁波。在 20 世纪之前人们就知道,要想产生电磁波,必须使电流以极高的速度不断变化,而要产生高速变化的电流,振荡器可以做到这一点。
电子三极管的放大效果不是无端地凭空产生的,这个放大后的能量来自于电源,它只是一个转换器。
7.4 记忆力非凡的触发器
我做了一件事,写了一些东西,加上了读者的反馈之后,触发了一连串的事情,产生了完全不同的结果。也正是因为这样,我们刚刚讲的这个电路,称为触发器。
8.1 能保存一个比特的触发器
普通的电路,以及常规的逻辑门都有一个共性,那就是输出直接依赖于输入,当输入消失的时候,输出也跟着不存在了。触发器不同,当它触发的时候,输出会发生变化。但是,当输入撤销之后,输出依然能够维持。
8.3 揭开走马灯之谜
不把振荡器和灯泡算在内,一个走马灯电路通常称为循环移位寄存器。所谓“寄存”的意思是临时存放,就像火车站旁边的物品寄存处。俗话说“铁打的营盘流水的兵”,触发器随时会根据需要而保存新的比特(如果你希望得到一个不变的 0 和 1,干吗还要使用触发器),仿佛这些比特都是临时寄存在触发器里。当若干个触发器组合在一起,可以同时保存许多比特时,就称为寄存器。
9.2 晶体管时代
因为硅和锗是晶体,所以这个具有单向导电性的装置就叫晶体二极管。
在发明晶体二极管没多久,人们就发现如果在半导体中掺入砷、镓等原子,制作出来的晶体二极管就会发光,称为发光二极管(LED)
也就是说,这个新的半导体材料像电子三极管一样,具有放大作用。相应的,它被称为晶体三极管。
10.1 把一大堆数加起来
在逻辑电路里,大家共用的公共线路称为总线。
11.1 咸鸭蛋坛子和存储器
我们这个存储器,你可以随机地、任意地决定访问哪个存储单元,不管访问哪个存储单元,所花的时间都一样,和地址没有关系。正是因为这样,我们通常称之为“随机访问存储器”,或者“自由存取存储器”,用英文来说就是 Random Access Memory,简称 RAM。由于组成它的细胞是触发器,而这种东西就怕断电,不管它记下的是什么,只要一断电就全完蛋了,因此属于易失性存储器。
11.5 全自动计算
计算机要想可靠地工作,指令的正确性至关重要。在存储器里,指令和普通的二进制数没有区别,但它们却有着独特的含义和用途。指令的数量是有限的,所以并非任意一个二进制比特串都代表一条指令。比如,1000100100 可能是某台计算机的一条指令,但 1000011110 则可能不是。如果计算机执行了并非指令的“指令”,指令译码器将不能输出正确的信号给控制器,整个计算机也就瘫痪了。
12.1 更多的计算机指令
从程序员的角度来看,这台机器的内部构造是次要的。在他们眼里,这台机器只有三样东西有价值。第一样,是存储器,因为他们需要在这里编程;第二样,是加法器,因为它是数学计算实际进行的地方,是扑克牌里的皇后。最后一样对程序员来说尤其重要,它就是寄存器 RA。原因很简单,他们可以不知道指令是怎么执行的,但绝对要知道机器把执行的结果放到哪里了。
12.3 现代计算机的大体特征
字长表示一台计算机在一次操作中可以处理的二进制比特数。换句话说,就是每个寄存器可以保存的二进制数是几个比特,或者加法器每次计算的二进制数是几个比特。原则上,对计算机的字长没有任何规定和限制,4 比特、6 比特、20 比特,等等,都是可以的。
任意两个寄存器之间,或者寄存器和存储单元之间,都可以互相装载数据。
现代计算机还会根据一条指令的执行情况产生各种标志,比如我们已经熟悉的进位标志。其他的标志还包括计算结果为 0、结果中 1 的个数为奇数/偶数,等等。这些标志可以用于跳转指令,或者其他想要参考这些标志的指令。
对于任何一种类型的计算机来说,它的指令在种类和数量上都是有限的,但是不管有多少,它所能执行的所有指令,称为这种计算机的指令集。
13.3 流水线和高速缓存技术
为了加以区分,和中央处理器最近的存储器通常称为主存储器,或者内存储器,简称内存。
除了流水线,另一个被用来平衡处理器和内存速度的手段是使用高速缓存技术,字面上的意思是速度很快的缓冲存储器。类似于蓄水池,这种技术基于计算机运行的一个特点——局部性。通俗地说,局部性的意思是,程序在被执行的过程中常常会访问最近刚刚访问过的数据,或者该位置附近的数据。
13.4 掌上游戏机和手机就是计算机
不管任何东西,只要稍微有一点智能的——从录音笔、微波炉调温装置、电冰箱,再到电子表、手机和游戏机,都需要用到微处理器和一小块内存储器,也需要一些编排精巧的指令。你能说,那些大家伙叫计算机,而这些东西就不叫计算机吗?
14.1 计算机同外部的接口
为了在外部设备和计算机核心之间传送数据,需要在这两者之间连线,并构造逻辑电路。在逻辑电路里,有一些寄存器,通常称之为 I/O 端口,或直接称为端口。当中央处理器有话要对外部设备说时,就把它放在端口上,由后者取走;当外部设备也有话要跟中央处理器说时,也照此办理。从形式上看,端口类似于企事业单位门口的传达室。
15.1 打开电源并启动计算机
除了加电自检指令,ROM 中还包含一些访问外部设备的指令,我们可以用这些指令来访问设备而不必亲自编写,因为我们可能不熟悉如何与这些设备打交道。传统上,这就是设备驱动程序。
同时,这些设备驱动程序仅仅提供最基本的功能,以保守的方式使用对应的外部设备。正因为如此,该 ROM 更多地被称为基本输入/输出系统 BIOS(Basic Input/Output System)。
15.4 操作系统的功能
多用户和多任务是依靠处理器和操作系统共同完成的,前者提供像中断这样的硬件支持;后者则在软件上予以配合和扩展。
16.3 图像、音乐和视频
经过 MPEG 压缩后,组成视频的帧不再是传统意义上的静止图像那么简单。事实上,这些帧分为三种。第一种是参考帧,它是独立的,理论上包含完整的画面信息;后面两种类型的帧是不完整的,不能独立存在,要依赖于前面的帧、后面的帧,或者参考帧。最后,MPEG 的压缩比可以达到 150:1。一般来说,能达到 90:1 已经算是不错。