当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > 计算机的体系结构
计算机的体系结构
时间:2016-12-13作者:华清远见

我们的helloworld是从一个源程序开始的,该源程序由程序员通过编译器创建并保存的文件,文件名就是hello.c。这个hello.c的源程序,实际上是有0和1组成的序列。每一个0和1都成为一位,这些位被组织成8个一组,成为字节。文件组织形式是以ascii标准来表示文本字符,这种方式实际上就是用一个唯一的字节大小的整数值来表示每一个字符。Hello.c就是按照这样的字节序列来保存在文件中。像hello.c这样的只有ASCII字符组成的文件我们成为文本文件,所有其他文件成为二进制文件。

想要了解运行helloworld程序时发生了什么,就必须要了解计算机的体系结构。

计算机的硬件组成:

总线:

贯穿整个系统的一组线。它携带信息字节并负责在各个部件之间专递。通常总线被设计成传送定长的字块,也就是一个字(word)。字中的字节数(字长)是一个基本的系统参数,我们常说的32位系统,64位系统就是这个意思。常用的是32位系统,4字节。总线中就是实际的32根线,一次向CPU传送32个0或者1。因为CPU是32位的,也就说CPU一次能够处理的数据是32个0或者1。

IO设备:

输入输出设备。常见的有鼠标键盘显示器。曾经的软盘,现在的光盘,以及U盘,移动硬盘等等。

主存储器

主存储器是一个临时的存储设备,在处理器执行程序的过程中,它被用来存放程序和程序处理的数据。物理上来说,主存储器是由一组DRAM(动态随机存储器)芯片组成。DDR=Double Data Rate双倍速率同步动态随机存储器。严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。

处理器(CPU)

中央处理单元(CPU)的简称为处理器,是解释或者执行存储在主存中的指令。其中包含了若干寄存器,算术逻辑单元(ALU)。寄存器是很小的存储器,是有特定功能的存储器。例如PC寄存器,专门用来存储指令的地址,因为CPU执行指令的时候,需要知道在哪里取这个指令。

高速缓存机制:

由于机械的原因,我们的存储设备与cpu的读取速率差别巨大。我们不能让CPU执行一秒,等20秒来从磁盘中读取想要的数据。这样CPU的使用效率太低了,浪费资源。于是就有了高速缓存。高速缓存(cache )是位于CPU和主存储器之间,一次性从主存储器中存取整块数据,供CPU使用。提高CPU的运转效率。

存储设备的金字塔:

存储器的层次模型

在这个层次模型中,从上至下,设备变得更慢,更大,并且造价也更便宜。寄存器是在这个层次模型的顶端,运行速率和CPU是一个数量级的。

执行helloworld程序

当shell程序执行它的指令,等待我们输入命令。当我们在键盘上输入字符串:./hello后,shell程序就逐一读取字符到寄存器,再把它存放到存储器中。

当我们在键盘上敲回车时,shell就已经知道我们已经结束了命令输入。然后shell执行一系列指令,这些指令将hello目标文件中的代码和数据从磁盘拷贝到主存,从而加载hello文件。

利用DMA(直接存储器存取)的技术,数据可以不通过处理器而直接从磁盘到达主存。

一旦hello目标文件中的代码和数据被加载到了存储器,处理器就开始执行hello的主程序中的指令,指令将"helloworld"字符串从存储器中拷贝到寄存器文件,再从寄存器文件拷贝到显示设备上,终显示在屏幕上。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)