求阙新斋分享 http://blog.sciencenet.cn/u/Jacking 用博客记录成长的历程!

博文

计算机学习漫谈(7)——计算机系统简述:从问题描述到电子运转 精选

已有 6028 次阅读 2010-12-7 17:07 |个人分类:计算机漫谈|系统分类:科普集锦| 计算机系统

     

      有位数学大师曾说过:“如果计算机只是用来打打字,聊聊QQ、看看电影、偷偷菜,那就相当于你把华罗庚先生请过来,然后问他1加1等于多少?”没错,计算机的功能远不止我们通常所使用的编辑文字和聊天娱乐而已,它最初的功能,也是最强大的功能就在于计算。作为一台通用计算设备的计算机,从某种程度上,它跟一部简单的计算器没什么区别:都是需要外来数据的输入,然后把计算结果显示出来。当然,计算机跟计算器在本质上还是有区别的,那就是他们拥有的计算能力在本质上是不同的。在计算机科学家看来,任何事情都是可计算的。所以,任何问题到了他们面前就自然变成了应该通过何种方法来计算求解的问题了。不过,他们有胆量这样去思考问题的前提是他们已经拥有了具备强大计算能力的通用计算设备——计算机。


      计算机就像是一支训练有素的部队,而使用者的我们就像一个司令员,我们只需要告诉他“方法”和“任务”,它就能乖乖地按照你给的“方法”将“任务”出色的完成。也就是说,现在通用的计算机(不涉及智能)只是我们解决问题的一项工具而已。那么这台机器是如何帮助我们解决问题的呢?现在就让我们一起来当一回司令员吧。


      (1)任务描述
      当我们要向部队下达一个命令时,我们需要将命令组织成文字或者语言表达出来。同样的,在告诉计算机需要解决什么问题时,我们同样需要把问题用文字组织出来。部队的命令至关重要,所以绝对不容许存在意思含糊的表达。同样的,在个计算机下达命令之前必须保证我们已经把问题描述得清清楚楚、明明白白,没有任何存在“二义性”的词语或句子。


     (2)算法表达
      在部队里,为了保密,信息传达的语言并不是采用我们正常所用的语言,而是通过另一种逻辑表达方式来传达命令。同样的,我们在对计算机下达命令时,必须把我们的命令转换成特定的逻辑表达方式——算法表达。密码是为了让敌方难以破解,而算法表达是为了让计算机能够读懂。算法表达的特点是流程化、步骤清晰,并确保该流程能终止,并且其中每一步的定义描述都需要足够精确,以保证能在计算机上执行。简单的概括就是“确定性”、“可计算性”和“有限性”。从计算机的逻辑思维我们可以看出,它确实是个很笨的家伙。


      (3)程序语言
       当部队接收到我们下达的命令后,他们会根据那种特定的逻辑表达方法将命令组成成他们认识的语言。同样,在给计算机下命令时,我们还必须按照算法表达将命令翻译成程序语言,即计算机能够识别的语言。程序语言是一种有着严格结构,顺序和表达方式的语言,世界上曾经出现过了的程序语言大概有1000多种,不过常用的却不多,并且有些具有特殊用途(如Fortran是科学计算语言,COBOL是商业数据处理语言等待)。就像在人类语言中,英语占据了统治地位一样,计算机中的C语言也同样占有统治地位。不过在计算机语言中还分为高级语言和低级语言。我们之前说到的都属于高级语言。低级语言是和程序执行密切相关,通常一种低级语言只对应一种计算机,我们称之为“某某机器的汇编语言”。

      (4)指令集结构
      当部队通过他们特定的语言读懂了命令之后,必须对命令进行解答,分解为有一些能够指导部队行动的直接命令。同样,在计算机中,当它从程序语言中读到一个语句之后,它同样需要送到一个叫做“编译器”的东西,将这个语句翻译成一种指导他如何做出反应的命令,这种命令成为“指令”。一个计算机所能识别的所有指令集合起来就叫做“指令集”。不同类型的计算机所用的“编译器”是不同的,所以他们所具有的指令集也是不同的。尽管不同的指令集不同,不过他们的任务大体一致,即告诉计算机它要对哪些数据进行哪些操作。这就是计算机执行的命令。


      (5)微结构
      但当部队接到一个命令后,并将命令分解为直接命令之后,下一步就是派出某个连或某个排去具体执行任务。在计算机里,一个命令(一条指令)下达后,它下一步的任务就是用某个具体的结构将这个命令转化为实际行动。命令是看不见的,只是一种信息的传递。而去执行这个命令的载体是看得见的,是实实在在一个客观的物体。在计算机中,这个具体的组织被称为“微结构”,也就是我们所说的“处理器”。处理器并不是什么神秘的东西,它只不过是一块电路板而已。在这块电路板上,各种元件在制造的时候就已经固定好了。但你对这块电路板输入一定的电压信号,它就能按照设计好的方式输出一个相应的电压信号。这个输入信号就是我们所说的命令,即一条指令,而输出信号就是我们需要的运算结果。


      (6)逻辑电路
      一个部队其实就是一堆人,只不过这些人是按照一种特定的方式组织起来,于是就成为了一支具有特定功能的作战队伍。同样的,从某种角度看,一个处理器就是一堆密密麻麻的电子元件。不过,对这些电子元件按照一定的方式加以组织,就可以变成一个具有特定功能的电路,这种电路叫做逻辑电路。最基本的逻辑电路只有几种,不过对这些基本的逻辑电路加以组合,就能实现各种各样的功能。也就是这些逻辑电路将计算机得到的指令加以实现。


      (7)器件
      器件就像部队中的士兵一样,他们是组成逻辑电路的基本单位。在计算机发展过程中,最初的器件是齿轮,截至改用继电器,后来专用电子管,到了现在发展成为了晶体管。这些器件的功能其实很简单,就是实现开关的功能。
 
      任务描述——算法表达——程序语言——指令集结构——微结构——逻辑电路——器件。这是计算解决问题所需要经历的整个过程,我们称这个过程的每个步骤为“转换层次”,其中每一层次都有多种实现选择,每一个层次都是不容跳跃的。从用自然语言对问题进行描述开始,知道器件的实际运转,之间需要经过多层次的转换。如果我们都能说“电子”语言,或者电子能“听懂”我们说的语言,那么我们只要走到计算机面前,直接想电子发布命令即可。然而,我们不会说电子语言,电子也听不懂我们的语言,我们所能做的事,只能是进行一系列的转换。在转换过程中,每一层的实现都存在很多选择方案,面对不同的方案,我们的最终决策和选择就决定了系统实现的性能和成本。

 

https://wap.sciencenet.cn/blog-489092-391289.html

上一篇:计算机学习漫谈(5)——阿坦纳索夫
下一篇:计算机学习漫谈(9)——数字逻辑浅析
收藏 IP: .*| 热度|

5 黄富强 唐常杰 朱新亮 罗汉江 吴晓邃

发表评论 评论 (4 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-1 21:11

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部