计算系统基础(一)

写在开头

   接下来一系列博客将作为一个初学者对整体计算机系统的理解与概括,主要作为个人学习总结归纳使用,若能帮助初学者对计算机有整体了解,自然再好不过。

参考用书:南京大学《计算系统基础》

一、计算机整体结构

“计算机”意味着什么?最直观的理解:它是一个能够做运算的机器,但我们知道,与计算器相比,它又能够做到用数字去进行各种各样的活动,以至影响现实世界。而做到这一点,必须有一个严谨的系统去支持它在一定范围内实现各种各样的可能。

美籍匈牙利数学家冯·诺伊曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存,这种思想被沿用至今,应用在每一台计算机上,也就是著名的冯·诺依曼体系结构

   然而对于我们来说,冯·诺依曼体系结构仍然不足以让初学者对它有清晰的认知,据此,《计算系统基础》一书给出了如下的计算机结构图:

计算系统基础(一)

  1. 基于这张结构图,我们可以从上至下对计算机的工作原理进行大致阐述:人们希望解决某种类型的问题,便设计出相应的程序,类似的“程序”其实我们在高中数学时已经接触过,即程序流程图:
    计算系统基础(一)

  2. 但是,这样的程序无法让机器“读懂”,为了便于我们理解机器“说话”,同时让机器听懂我们“说话”,分别设计出了高级语言与低级语言,同时为了支持机器对语言的读取过程,需要操作系统的支持。值得一提的是,高级语言有C,JAVA等,他们与低级语言的明显区别之一就是接近于人类语言,而低级语言则相对接近于机器预设好的指令格式,契合计算机中被规定好的指令集结构

  3. 为什么要预设定计算机的基础操作?为什么要规定一个指令集结构?因为计算机能听懂的“拼音”只有两种,即1和0。对计算机的基础操作(如加减乘除、高中物理中接触到的或异非)进行规定后,我们就能在此基础上设计程序语言,方便人类逻辑思维对计算机的理解。

  4. 接下来,完成了对计算机操作的设计,我们需要在硬件层面实现它,由于底层电路的复杂,《计算系统基础》选择从最基础的元件逐步过度到微处理器与指令集结构。最基础的元件一般由半导体构成,它们所能实现的功能一般只有两种:输入1(有电压)时通路,或输入0(无电压)时通路。我们不难发现,元件对1与0的运用恰好对应了计算机的“拼音”。在实际操作中,这样设计的原因考虑了实际情况:实际电路中由于不可抗力的种种因素,有可能会出现断路中有零点几伏的电压,因此为了保证计算机底层电路的准确性不会受到各种因素的干扰,在计算机的思路,我们选择将靠近0V视为0,其余情况均视为1。并由此产生以高中物理中接触到的异门或门与门为基础的逻辑电路。逻辑电路组成的微处理器根据特定的设计从物理层面上实现指令集结构所规定的计算方法,并逐步向上,实现程序语言的执行,实现问题的解决。

虽然在我们初学者眼中,这样的计算系统过于繁杂,但它成功地将每个划分的区域完全分隔开。换句话说,我们使用电脑解决问题,并不需要知道程序语言、指令集结构等。而且,在今后对计算机系统的进一步学习中,我们会真正意识到这样一个系统的重要性。

猜你喜欢

转载自blog.51cto.com/14930847/2593512