计养机概论 从图1.14中我们可以看到,在水平轴上0~1秒的时间被切割成10等份,每一等份刚 好占用0.1秒,在垂直轴上则把音量分成0~7的8种不同音量大小。这样,以数字来描述 这段声音就可用以下的方式表示: 第01秒时 ,发出音量单位为6的音量 第02秒时,发出单位为4的音量 第0.3秒时,发出单位为2的音量。 在时间间隔和音量方面分割得越细,就越接近原音。在上面的例子中,1秒钟内会对声 波取样10次,取样频率就是10Hz。在音量振幅方面有8个等级的精度,而2=8,所以取 样的音质是3个位。 CD唱片所使用的音质水准是每秒钟取样44100次,振幅方面有65536=26阶的变化。 所以每个时间点上面都需要用16个位来记录音量,而16bis-2bys,每一个声道在每衫 钟需要44100*之=88600byts的容量。而CD唱片会记录左右两个声道来做立体声,录制】 小时的CD音乐就需要60*60*88600*2=637920000 bytes=608MB,差不多就是一张CD光 盘的容量。至于图像的数字化方法我们会在第13章的计算机绘图中进行介绍。 除了多媒体影音之外,计算机里面所保存的文本、程序等也都是使用数字以“进制方 式来保存。文本数字化的方法很简单,本书附录B中的ASCⅡ表就是定义英文字母、阿拉 伯数字及-“些图形符号在计算机中所对应的数字。当某一段数字数据被定义为要当成文木 来显示时,就会根据ASCI表来做数字对文本的转换。 ASCI表主要定义的是欧美语系的拼音文本字母,使用256=2个字节就已经足够存放 所有的英文字母、数字及图形符号,所以】个字节就足以记录一个英文字母。中文有上万 个文本,ASCI表中当然没有定义中文文本的数字化代码,吕前经常使用的中文代码表是GB 码,总共有上万个字节,每个字要用2个字节来记录。 计算机本身并不会知道现在它所要处理的二进制数据,原本记录的是什么。以数字65 为例,计算机可以把它当成一个整数来计算,也可以把它当成英文字母“A”来显示(请参 考ASCI表)。二进制数据需要先说明所保存的是什么数据,计算机才会知道该如何去解释 它。 举例米说,如果有一个文件的扩展名是PG,那么操作系统就会知道它里面作放的是以 EG方式压缩的图文件,需要使用绘图软件来打开它:如果个文件的扩展名是TXT,那 么它的原始数据就应该是记录~堆数字化后的文本,经过ASCⅡ或GB表对照后可以转换 为英文或中文显示。 1-3微处理路(Micro Processor) 把一块电路板上的所有C、电阻、电路等都使用半导体方法结合起来而生产出的一小 块硅芯片就是一个微处理器。封装成一块芯片的微处理器不能直接使用按钮来控制,而月 块包含上百万个组件的芯片,其功能也不可能使用几个按钮就能掌握。 微处理器从外观上看,除了一个小小的扁方块之外,其他部分就只有从方块里伸出来
8 第1幸 的金属针脚。控制芯片的方法就是对每一根针脚来做通电或断电的操作。每一根针脚都有 不同的用途,有的负责输入电源让芯片运行,功能类似插头;有的用来读取外界的控制命 令,功能类似开关:而有的则是用来根据所得到的命令进行输出。 如果针对负责输入1:作的那儿只针脚,把控制它们是否通电用来操作芯片的方法以二 进制法来表示,就是这个芯片的命令集。控制芯片操作的一连串命令集,就叫做程序。 命令集也称为机器码(Machine Code)。把每个机器码的二进制数另外取·个字来表示, 就足汇编语言(Assembly)。简单地说,微处理器内为功能太多,无法利用按钮来控制,就 使用命令集的方法来发出操作命令。换句话说,也就是需要编与程序。 编写程序有几种方法,第一种是直接用一进制数来写程序,这是使用机器码的写法 非常不直观。第二种是把每个机器语言用文本来表示,每个机器码都会和一个特定的字相 对成,这就是汇编语言(Assembly)。汇编语言写好后,再经过一个事先写好的编译程序把 文本转换成机器妈。这两种方法都被称为“低级”的写法,低级并不是比较低级的意思, 它指的是比较接近机器原本的表示方法。每种芯片都会有自己的低级语言,不同芯片的低 级语言不能互通。 第三种写法是可以一次把一段机器码用一句文本来代替,这就是高级语言。高级语言 需要经过比较复杂的编译过程才能再把它转换成机器码,Fortran和C都是广泛被人家使用 的高级语言。高级语言的语法在字面上比较容易让人类思考,而且只需要通过编译器的翻 译,同样的程序代码可以被转换到各种不同的芯片上面执行,不像低级语言会被限制住。 高级语言及汇编语言的程序代码,在没有翻译成机器码前,都无法让计算机使用。经 过编译器翻译出来的机器码,就是所谓的执行文件,每种芯片都会有自己的命令集,所以 不同芯片间的执行文件不能互通。高级语宵的程序代码,必须分别经过设计给不同芯片的 编译器翻译过后,才能在不同的芯片上面执行,这就是所谓的跨平台 个人计算机中最重要的微处理器是中央处理器(Central Process Unit),简称为CPU, 现在普遍使用的X86系列CPU总共大约有200个命令可以使用。X86系列的CPU一开始 是由Intel公司所生产,到目前已经有很多种型号,例如286,386、486、Pentium,Pentium II、… Pentium IV等。另外还有AMD公司生产的,兼容于X86命令的Athion(K7)芯片:这- 系列芯片的特色就是新型的芯片都会完全支持已有芯片的命令集,所以在286时代开发的 程序都还可以在Pentium IV上.执行。 1-4 计算机基本结构 般说来,计算机的基本组件可以分成下面儿个部分: 1,输入设备:键盘、鼠标等。 输入设备是指任何可以让用户用来操作计算机,或是传递数据给计算机的工具 2.运算单元:CPU。 CPU是计算机的核心,用来运行事先编写好的程序 3.存储设备:内存、软盘、硬盘、光盘等。 一般分成两种,永久保存设备及暂时保存设备.内存(RAM)就是暂时保存设备,BIOS
计算机概论 9 光盘、硬盘等都足永久保存设备。计算机在运行时,会先把程序及数据从光盘或是硬盘中 取出,放到内存(RAM)中再开始执行。因为CPU直接存取内存会比直接存取硬盘快 4.输出设备:屏幕、打印机、声卡等 可以用图像或是声音等方法来显示程序执行结果的工具,都可以算是输出设备】 简单说明一一下典型的计算机程序运行过程,用户要先把想处理的数据经过输入设备输 入计算机,计算机会通过设置好的程序来处埋这些数据。处理完毕后,再把所得到的结果 经过输出设备来显示。存储设备则问以保存程序运行中所得到或生成的任何数据。 1-5 操作系统 计算机以是一部接受程序命令运行的工具,没有程序就失去任何工作能力。潮打并电 源的个人计算机,第一个步骤会自动去找一个程序来执行。BOS里会存放开机后第一个执 行的程序,这段程序通常会检查计算机本身的硬件状态是否正常,确认内存和硬盘是否正 常地安装在主板上等等:完成检查工作后,BIOS会把硬盘启动扇区中的程序拿出来执行, 通常这个程序就是操作系统。 筒单说,操作系统是帮助配置计算机资源的工具。举例来说,如果没有操作系统提供 的文件功能,·块硬盘对用户来说只是一大块有好几GB空间可以存放数据的硬件,用户要 自己决定硬盘上哪个扇区要存放什么数据,而且还要自已写程序去控制硬盘机的磁头移动, 到赋值的位置读写数据。操作系统所提供的文件系统,可以让用户利用文件或是文件夹的 方式来使用硬盘 操作系统还有另外一个很重要的功用,就是提供比较简单的方法,让程序员及用户来 使用各种硬什。除了上一段提到硬盘的例子之外,还有声卡、D加速卡等各种外围硬件, 硬件厂商只要遵循操作系统制定的规则来编写驱动程序,就可以保证新开发的硬件可以让 消费者使用。例如, 在Windows操作系统下,只要根据DireetX或是OpenGL标准来设计 声卡或3D加速卡的驱动程疗,这些硬件就可以执行市面上所有的PC游戏 有效利用计算机资源的例子,还有操作系统所提供的多任务执行功能。多任务执行的 目的,是要有效地使用CPU,不让CPU大都分的时间都在休息。就以使用文字编辑器Wod 的情况米说,用户大部分的时间可能只是用眼睛浏览文件。就算在打字, 分钟最多也只 能打一百多个字,完全赶不上CPU处理数据的能力。这种情况下,CPU大部分的时候都是 在休息,等待用户输入。操作系统可以把CPU休息的时间,去运行其他不是处于等待状态 的程序,这便是所谓的多任务 每个操作系统使用计算机资源的方法不同,所以就算是针对同一个CPU设计的不同探 作系统,被此间的程序也不一定能共享。例如硬件的驱动程序、程序执行文件等等。每个 操作系统规定的驱动程序写法会有所不同,另外例如执行文件的文件格式以及操作系统所 提供的系统功能调用也会不同
i07 第1幸 1-6 计算机语盒 在13节介绍微处理器时,己经让读者了解计算机语言是用来控制计算机的语言。中国 人之间讲话要用中文,与美国人讲话要用英文,要讲话给计算机听那当然就要用计算机语 。 低级请言(机器语言,汇编语言)使用起来很辛苦,它们的程序代码在字血上看起来 非常不直观。而且科当程序员要改用另·块拥有全新命令集的CPU时,就要重新学习它的 汇编语言。除此之外,已有的程序也要完全改写,才能移植到新的CPU.上米使用(如图1.15 所小)。 高级西言上要就是为」解决这个问题才开发出来的,只要编译器能生成新型CU的机 器码,已有的程序只需要重新编译,或许稍做修改,就可以在新的CPU上使用。现在的) 商推出新CPU时, 一定会想办法提供编译器给程序员使用,不然一定不会有软件厂商以新 的CPU为平台来编写早字 高级语言所造成的另外影响是,由:丁它的编写方法比较直观,可读性较高,所以程序 员可以用比较抽象、与机器无关的方法来解决问题。这也导致硬件制造跟软件研发分成不 同的专业领域。日前,研究软件的编写方法已经是好几门专业的学科。例如,数值计算、 人工智能、计算机视觉、讲音辨识、计算机图形学等等,这些不同的专业领域都有各自的 算法需要学习。在学术方面之外,业界经常会用到的数据库、Windows操作系统、Liux操 作系统、树络通信、驱动程序、游戏等,也都是不同的专业领域。 x 这号称是世界上的第一个计算机程序,它是使用 Mark I命令集的机器语吉 图1.15 学习计算机语言,实际上主要是学习如何去做到上面所提到的几项应用。只要精通其 中一、两项就可以称得上身怀绝技。会使用多少种高级语言并不是很重要的事情,基本上 高级语言之间贝是语法字面的不同,要精通多种语言是非常容易达到的。精通Fortran的程
计算机概论 可 序员,一定可以在很短的时闻内学会使用C、Java等其他高级语言,反之亦然。程序员的价 值并不取决于他会使用儿种语言,而在于他精通哪些专业领域的算法及实现能力。 1-7 今天的计算机 “义地说,以微处理器为核心,并使用程序来控制的机器都可以算是计算机。计算机 并不-定要像PC一样,要有一个屏幕及-套键盘鼠标才叫计算机。电视游戏机PlayStation PS2、任天堂等,实际上也是以另~种形式存在的计算机。其他电视机、洗衣机、其至是移 动电话里面都可能有微处理器,并且也有程序在里面运行。开发这些电子设备的过程中, 程序可以使用个人计算机来编写程序,经过特别的编译器制作出这些电子设备上所使用 的机器码,最后再经过RS232、USB等连接设备把程序传输到这些电子设备上使用。 个人计算机(PC)是设计用来从事股用途使用的计算机,只要配合适当的程序,它 就可以做程序所设置的工作。简单地说,P℃是设计用来从事多功能应用的机器,只要安装 Wod就可以做文字编辑,只要安装游戏程序,就可以变成游戏机。 另外有些计算机则是设计用来专门从事某些特殊用途,像PlayStation2是设计用来玩游 戏的,它就不适合拿来做文字编辑。这种类型的计算机在其所专精的领域中,理所当然会 有比较优异的表现。再举一个例子,~台DVD播放机里面所使用的解压缩芯片,执行速度 可能只有50MHz:然而使用个人计算机播放DVD时,CPU最起码要有S0OMHz以上的速 度才以。因为DVD播放机使用的是专门的译码芯片,而且又配合专门设计的影音硬件, 在播放DVD方面运行效率当然会比使用个人计算机要好。 当然还有很多比个人计算机更复杂的计算机,大型工作站计算机拥有比个人计算机更 好的[作效率,工作站计算机的简单定义就是“用料比较高级”的计算机。它们通常会使 用比较人量而且比较快速的内存,【块以上的CPU,价格当然也会是个人计算机的好几倍。 随着个人计算机能力的增强,工作站计算机和个人计算机间的运行效率差别也在不断 缩短。目前最新的趋势已经不再流行使用一台昂责的大型计算机来执行大程疗,而是使用 多台个人计算机,利用网络或是特殊硬件把它们串连起来,组合成·个大的丛集来做并行 处理,而且这个方法已经在学术界及业内得到广泛应用