冯诺依曼结构 

计算机组成原理(1)概述

       值得注意的是我们目前所常用的电脑其实是属于微型计算机范畴,工作站是给更加专业的人使用,而迷你计算机则是我们常说的服务器。很久之前,程序员如果想改变计算机的功能,需要改变计算机的硬件电路才能够实现。而冯诺依曼体系的提出,将程序指令和数据一起存储的计算机设计概念结构,解决这个繁琐复杂的问题。当我们需要重新设计程序和改变功能的时候不需要重新设计电路。无论是个人电脑、服务器、智能手机,还是 Raspberry Pi 这样的微型卡片机,都遵循着同一个“计算机”的抽象概念。就是计算机祖师爷之一冯·诺依曼(John von Neumann)提出的冯·诺依曼体系结构(Von Neumann architecture),也叫存储程序计算机。

      冯诺依曼体系的结构由五部分组成:存储器,控制器,运算器,输入和输出设备。任何一台计算机的任何一个部件都可以归到运算器、控制器、存储器、输入设备和输出设备中,而所有的现代计算机也都是基于这个基础架构来设计开发的。而所有的计算机程序,也都可以抽象为从输入设备读取输入信息,通过运算器和控制器来执行存储在存储器里的程序,最终把结果输出到输出设备中。而我们所有撰写的无论高级还是低级语言的程序,也都是基于这样一个抽象框架来进行运作的。

计算机组成原理(1)概述

从上面的图我们可以看到,cpu包含了控制器和运算器,但是由于“冯诺依曼瓶颈” ,即cpu处理数据的速度远比存储器处理的速度快,造成cpu需要空转来等待存储器完成传输,造成了资源的浪费和速度的制约。所以为了解决这个问题,现代计算机机构在cpu里面加入了更高速的存储器(即内存和缓存),cpu就相当于由运算器+控制器+存储器组成。

计算机层次划分与编程语言

计算机组成原理(1)概述

       高级编程语言翻译成低级编程语言的过程叫做程序翻译,有两种方式,分别是程序编译和程序解释。编译方式是在程序第一次执行前通过编译器生成目标文件,然后每次执行的时候就可以直接执行这个翻译好的目标文件,这样的程序只需要翻译一次,效率明显要高很多。解释方式是每执行一句就通过解释器翻译一句,即边执行边解释。这种方式每次运行程序时都要重新翻译整个程序,效率较低。至于计算机层次的划分并不是固定的,但是基于都是由上层应用层到底层硬件层,有一个大体的了解就可以了。

计算机单位与字符集 

计算机组成原理(1)概述

关于速度单位,最容易混淆的一点是 M/s 与 MB/s, 两者是不一样的单位。前者M/s = Mbps = M bit/s, 后者是 MB /s。它们的换算关系如下,100 Mbps  = (100/8)MB/s = 12.5 MB/s

关于字符集,最早计算机只需要使用英文字符,加上数字和一些特殊符号,然后用 8 位的二进制,就能表示我们日常需要的所有字符了,这个就是我们常常说的 ASCII 码。但是中文这些特殊文化的字符并不能由ascll码去表达,所以发展出了unicode编码。同样的文本,采用不同的编码存储下来。如果另外一个程序,用一种不同的编码方式来进行解码和展示,就会出现乱码。

相关文章: