计算机的奥秘

简妮看世界

计算机让人能够和千里之外的人实时聊天,看到丰富的影音文字产品,还能控制火箭的发射,就像人类的千里眼、顺风耳和超级大脑。它的奥秘就在于用了不同的编码来传递和存储数字、声音、音乐、图像和视频(电影)。实际上它不能直接处理人类世界的编码,因为它不能模拟人类的眼睛、鼻子、嘴和手指来接收信息,只能处理传递信息的电信号。那么这些电信号是怎样传递信息的呢?计算机又是怎样处理这些电信号的呢?

一、将语言转换成代码的尝试

Code,是代码的英文名词,程序员正是通过code,给计算机编程。这种code能够让机器理解程序员的想法。除了它们,人们在相互沟通时使用了各种不同的编码,因为在不同的应用场合,其中的一些较其他的更为方便。例如布莱叶在他1 5岁时,创建了自己的盲文系统,其原理直到今天还在使用。

摩尔斯也成功地将书写语言中的字母转换成代码。摩尔斯代码的规则很简单:将英文字母用点和划表示,例如字母H的摩尔斯代码就是两点。在实际应用中,划的长度等于点长度的三倍;单个的点或划之间用长度与点的长度相等的空格分开;单词内的各个字母之间用长度等于划的长度的空格分隔...

显示全文

计算机让人能够和千里之外的人实时聊天,看到丰富的影音文字产品,还能控制火箭的发射,就像人类的千里眼、顺风耳和超级大脑。它的奥秘就在于用了不同的编码来传递和存储数字、声音、音乐、图像和视频(电影)。实际上它不能直接处理人类世界的编码,因为它不能模拟人类的眼睛、鼻子、嘴和手指来接收信息,只能处理传递信息的电信号。那么这些电信号是怎样传递信息的呢?计算机又是怎样处理这些电信号的呢?

一、将语言转换成代码的尝试

Code,是代码的英文名词,程序员正是通过code,给计算机编程。这种code能够让机器理解程序员的想法。除了它们,人们在相互沟通时使用了各种不同的编码,因为在不同的应用场合,其中的一些较其他的更为方便。例如布莱叶在他1 5岁时,创建了自己的盲文系统,其原理直到今天还在使用。

摩尔斯也成功地将书写语言中的字母转换成代码。摩尔斯代码的规则很简单:将英文字母用点和划表示,例如字母H的摩尔斯代码就是两点。在实际应用中,划的长度等于点长度的三倍;单个的点或划之间用长度与点的长度相等的空格分开;单词内的各个字母之间用长度等于划的长度的空格分隔;各单词之间由长度等于两倍的划长度的空格分开。

两个会使用手电筒的人,就可以通过让手电筒发出长短闪烁的光芒,传递摩尔斯代码。不过手电筒的光信号只能在短距离传播,为了实现更长距离的即时通信,天才的摩尔斯发现电学能够帮助自己实现远距离的即时通信,发明了电报。电报虽说是一个简单易行的设备,但是通过它,整个计算机得以构造。

后来,电磁效应被发现,摩尔斯想到了利用电磁效应,能够大大降低电报的操作难度。你可以通过一个简单的实验认识电磁效应:如果你取一只铁棒,用细导线将它绕几百圈,然后让电流通过导线,铁棒变成了磁铁,这时它就能吸引其他的铁和钢。电报机使用者很快发现只要简单地利用笔跳上跳下的声音他们就能翻译编码。原先电报中笔的装置最终被撤消,代替的是传统电报机的发声装置,称为“发声器”。我们已经发明的这个装置叫重发器或继电器。一个继电器就像一个发声装置,输入的电流形成电磁用以拖动金属杆,金属杆作为开关的一个部分连接到外接的导线上。继电器这种设备是一种很好的发明,足以与电报相提并论。后面还将会用到,且它会变得非常小巧、方便。

电报的发明真正标志着现代通信的开始。人类首次能够在眼、耳的范围之外以快于马奔跑的速度通信。发明中使用的二元码是其精华所在,但在后来的电子和无线电通信中,包括电话、收音机和电视,二元码都没有用到,只到最近二元码才出现在计算机、C D盘、D V D盘、数字卫星电视广播和高清晰电视中。

二、二元码搭建起物理世界和计算机的桥梁

数学,从某种意义上来说是不是可以称得上是一种世界语言呢?大多数人使用的数字系统是基于1 0(有时候是5)的,这种情况并不奇怪。最初人们是用手指来数数的。这样看来,人类选择使用以1 0为基础的记数方法(或称为十进制记数法)完全是任意的。不过和欧洲数学体系不同,印度-阿拉伯数字系统是和位置相关的,也就是说,一个数字依据位置的不同代表不同的数量。数字的位置和数字的大小一样,都是很重要的。与位置相关的记数系统的优点不在于它多么好用,而在于当它用在不是十进制的系统中时,也一样的好用。

在二进制中,1后面的数字是1 0。这是令人惊讶的,但也并不奇怪。无论使用哪种数字系统,当单个位的数字用完时,第一个两位数字都是1 0。在二进制系统中,可以这样来数数:人的手指的数目是1 0T E N或1010TWO;一年中的月份数是1 2T E N或1 100TWO;两个星期所包含的天数是1 4T E N或1110TWO。

二进制数字系统架起了算术与电之间的桥梁。“b i t (比特)”这个词被创造出来代表“binary digit”,它的确是新造的和计算机相关的最可爱的词之一。比特已经被看作是组成信息块的基本单位。例如灯塔上的每一盏提灯都代表一个比特。亮着的灯表示比持值为1,未亮的灯表示比特值为0。也就是说,任何可以转换成两种或多种可能的信息都可以用比特来表示。不用说,人类使用的很多信息都无法用离散的可能性来表示,但这些信息对我们人类的生存又是至关重要的。

也许最常见的二进制数的表现形式是无处不在的U P C(universal product code,通用产品代码),即日常所购买的几乎所有商品包装上的条形码。条形码已经成为计算机在日常生活中应用的一种标志。

可将条形码形象地看成是细条和黑条,窄间隙和宽间隙的排列形式,事实上,这是观察条形码的一种方式。黑色条有四种不同的宽度,较宽的条的宽度是最细条的宽度的两倍、三倍或者四倍。同样,各条之间的间隙中较宽的间隙是最窄间隙的两倍、三倍或者四倍。但是,看待U P C的另一种方式是将它看作是一系列的比特。记住,整个条形码与条形码扫描仪在结算台“看”到的并不完全一样。

比特还在哲学和数学的奇怪混合物—逻辑—中发挥作用。逻辑最基本的目标是证明某个语句是否正确,正确与否也可以用1和0来表示。对于古希腊人而言,逻辑是追寻真理的过程中用于分析语言的一种手段,因此它被认为是一种哲学。两千多年来,数学家们对亚里士多德的逻辑理论苦苦思索,试图用数学符号和操作符来表现它。1 9世纪中期的几位数学家在逻辑理论的数学定义上做了一些工作(最著名的是迪摩根),但只有布尔可能真正找到了解决办法。布尔发明了一种和传统代数看起来、用起来都十分相似的代数,也就是集合数学。

布尔也许没有意识到他已经实现一个关键概念上的突破。你要做的是一些试验,这些试验把布尔代数和电路结合在一起,从而使使用二进制数字工作的计算机的设计和制造成为可能。可惜1 9世纪没有人把布尔代数中的与、或和串联、并联一些简单的开关联系起来。数学家没有、电工没有、电报操作员也没有,没有人想到过这种联系,甚至连计算机革命的创始人查尔斯·巴贝芝(1 7 9 2—1 8 7 1)也没有。他曾和布尔联系过,并了解过他的工作,他一生中大部分时间致力于设计第一台差分机及接下来的解析机。一个世纪之后,这些机器被认为是现代计算机的雏型。我们现在知道,帮助巴贝芝的是他认识到计算机应产生于电报继电器中,而非那些齿轮和控制杆。尽管这个电路包含的全是1 9世纪发明的东西,但那时却没有人意识到布尔代数可以直接由电路实现。

不过真正实现计算机进行逻辑运算的,是逻辑门的出现。逻辑门,英文名称是logic gates,后面的单词来源于微软的创立者比尔盖茨的姓gates。逻辑门包括与门、或门、非门、与非门。例如与门可以用来计算两个1位进制数位相加得到的进位。利用逻辑门可集成加法器、选择器、译码器、触发器和计数器。人们习惯于说小规模集成电路,即S S I(small-scale integration),指那些少于1 0个逻辑门的芯片;中规模集成电路,即M S I(1 0~1 0 0个门);大规模集成电路,即L S I(1 0 0~5 0 0 0个门)。随后的术语为超大规模集成电路,即V L S I(5 000~50 000个门);极大规模集成电路,即S L S I(5 0 0 0 0~100 000个门);特大规模集成电路,即超过100 000个门。

三、计算机的计算能力发展史

艾伦·M·图灵( 1 9 1 2—1 9 5 4 ),他当时由于写了两篇很有影响的论文而闻名于世。第一篇论文发表于1 9 3 7年,其中首先提出了“计算能力”的概念,用以分析计算机可以做到和不能做到的事。现代人工智能的专家认为,影响人工智能的三大因素是机器学习、计算能力和数据库。让机器按照极快的速度处理大量的数据,就是人工智能的关键。

建于2 0世纪3 0年代初的第一批数字计算机使用继电器,后来又用了真空管。现代计算机用晶体管。逻辑门是由继电器还是由真空管来制造的并不重要。当用在计算机中时,晶体管和继电器的功能差不多,但是晶体管速度更快,体积更小,更安静,更省电,而且还便宜不少。构造一个8位加法器仍然需要1 4 4个晶体管(如果采用先行进位,则需要更多),但整体电路的体积却小多了。直到1 9 4 5年,晶体管制成。正如继电器机器称为机电式计算机,真空管则是第一台电子计算机的基础。

但1945年的电子计算机,仍然需要人们通过接通电缆、按下开关来进行编程。一台比人脑的计算速还慢的计算机,是毫无用处的。计算机处理器很笨拙地做着简单的事情—从存储器中取一个字节到寄存器,把一个字节同另一个字节相加,再把结果存回存储器。为了让计算机能做大量事情,唯一的解决办法就是让这些操作能迅速执行。引用Robert Noyce的话:“当你理解了纳秒之后,在概念上计算机操作就相当简单了。”

影响计算机运行速度的包括四大因素:第一,最大时钟频率是影响处理器总体速度的一个显著因素,时钟频率决定了每一条指令的执行速度;第二,处理器的数据宽度也影响其执行速度。虽然一个4位处理器可进行3 2位数的加法运算,但它的执行速度不可能与3 2位处理器一样。第三,令人迷惑的是,处理器可寻址的最大存储器容量也是影响速度的一个因素。第四,许多计算机程序在同一时刻要用到几个数据,如果所有这些数据都存储在微处理器的寄存器中而非存储器中,执行程序将会更快,因为程序访问存储器的次数越少,那么它的运行速度也就越快。计算机的生产商和相关从业人员正在不断努力降低计算机运行成本,提高计算机运行速度。

从第一台电报到电子计算机,从传递10个字左右的短讯,到10分钟内创作一首歌曲,机器终究会通过深度学习,彻底的融入甚至颠覆人类世界。这本书站在当下回首机器发展之路,从三个方面来探寻计算机的奥秘:第一,将语言转换成代码的尝试;第二,二元码搭建起物理世界和计算机之间的桥梁;第三,计算机的计算能力发展史。

0
0

查看更多豆瓣高分好书

回应(0)

添加回应

编码的奥秘的更多书评

推荐编码的奥秘的豆列

了解更多图书信息

值得一读

    豆瓣
    我们的精神角落
    免费下载 iOS / Android 版客户端
    App 内打开