您的位置:首页 > 理论基础

程序员角度看计算机结构 Chapter0 (2)

2009-02-17 00:38 148 查看
second thema:

处理器是如何读取和运行相应的程序的,

在运行c源程序的时候,首先我们要在计算机中用到另外一个程序,shell,这个是操作系统自带的程序(Unix),

在shell的提示行,下我们敲入命令,计算机执行相关的操作,等此源程序执行完后,shell会回到它的初始状态,输出一个提示,(prompt),等待下一次程序的执行。

(当shell 发现在提示行输入的不是内部命令,则自动认为是一个源程序的名称,然后找到相应源程序进行处理)

计算机是怎样通过自己的结构来执行上文所谓的相关的操作,执行这个源程序的?

下面先介绍计算机基本的结构,

计算机的硬件组成结构

CPU Central Prossesor Unit

USB     Universal  Serial Bus

ALU Arithmetic /Logic Unit

PC   Program Counter

Buses,总线,

贯穿整个系统用来在各个部件中传输数据的通道集(electrical conduits collection),这些数据通常是几个字节的集合,这些集合被称为words,字,

字长在不同的系统中各有不同,平常所有的Inter pentium 平台的字长是4个字节,

I/O devices.

基本组成,键盘,鼠标,硬盘,以及显示器,

每个输入输出设备都是跟输入输出总线相连接的I/O bus,但是连接的方式有两种,一种是通过controller(控制器),一种是通过adaptor(适配器)。

两种连接方式的具体不同点在于他们的包装形式,controller 是在设备本身或者主板线路上的芯片,main printed circuit board, motherboard.

adaptor 是插在主板上的插槽上的卡,(个人认为键盘属于前者,controller装在设备本身,显示器属于后者,显卡插在主板上);

除此,两者的目的都是在I/O设备和总线之间 传输数据。P.S 在系统中,I/O设备和外部网络都被当做文件处理。

Main memory(主存,通常意义所说的内存)

主存是一个短暂的存储装置,存储处理器执行时所需要的数据和程序,

DRAM  Dynamic Random Access Memory,动态随机存取记忆,

从物理 角度说,主存是一个DRAM芯片的集合,逻辑上,内存是一些线性字节数组,这些字节每个都有自己独一无二的地址,而且每个地址都从

零开始。

P.S通常来说,每个组成程序的机器指令都由个数不同的字节组成。这些字节包括数据,变量名,和一些保留字。 但是数据的大小根据其类型改变。

Processor 处理器,

CPU,simply processor,   中央处理器的核心部分是一个几个字节大小的存储设备,叫做 PC,程序计数器,Program counter,任何时候,它都指向主存里的机器指令。

contiguous 靠近, 处理器从通电到断电期间一直读取PC指向的指令,翻译,并且执行相关操作,PC一直指向下一步操作。

这些操作中有两个,他们需要循环指向主存内的命令。 它们是register file 和arithmetic /logic unit(ALU)。

前者是一个小存储设备,由几个字节大小的寄存器组成,每个都有自己的名字,

后者计算出新的数据和地址的值,

几个CPU可能执行的操作,

Load,装载,从主存内复制数据到寄存器,覆盖寄存器中先前的数据。

Store,存储,从寄存器复制一个字节或字给主存中的一个位置,覆盖先前这个位置的数据。

Update, 更新,将两寄存器中的内容赋值给ALU,ALU将两个数据相加并将结构存在寄存器,重写先前寄存器中的内容。

I/O Read,从I/O设备中 读取数据给寄存器。

I/O Wirte,从寄存器中赋值一个字节给I/O设备。

Jump,(跳),从机器指令中抽象出字,将这个字赋值给PC,覆盖PC中原来的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息