计算机的基本构成
一个主机主要由CPU与主存构成,主存也就是我们通常所说的内存。而我们通常所说的硬盘叫辅存。CPU主要与主存进行数据交互。
主存
主存由存储体,存储地址寄存器(Memory Address Register, 简称MAR),存储数据寄存器(Memory Data Register,简称MDR)构成。
存储体,顾名思义,主存的主要功能就是存储,存储体就是存储数据的地方。
MAR和MDR可以举一个例子来理解。把主存比作一个快递点,存储体就是货架,每个货架的每一层都对应一个编号,货架上放着包裹(数据),你想要取包裹就需要有取件码(数据地址),你把取件码告诉店员(把数据地址传入MAR),店员告诉快递小哥取件码,快递小哥通过取件码找到包裹并放到柜台上等你取走(主存根据MAR的地址获取对应地址上的数据并放入MDR)。所以说货架就队形存储体,MAR就对应店员,MDR就对应柜台。
CPU把想要获取数据的时候,就会将数据的地址传入MAR,主存通过MAR里的地址到对应位置获取数据并放入MDR中,CPU就可以取走想要的数据。这是取数据的过程。
不同于快递点的是,我们还可以通过CPU往里写数据,CPU将想要把数据想要写入的地址放入MAR中,并把想要写入的数据放入MDR中,主存就会往存储体写入地址,当然,写和读都还有分别的信号控制写数据还是读数据,我们在这里不做展开。
存储体由一一个个存储单元构成,每一个存储单元存储着一串二进制数,每一串二进制数都一应一个地址。
CPU
CPU由运算器和控制器构成
运算器
运算器负责实现算入运算(加减乘除)和逻辑运算(与或非)。
运算器由算数逻辑单元ALU与ACC,MQ,X(寄存器,在这里先把他们理解为存储运算数和结果的地方),
ALU负责运算。
控制器
CU:控制单元,分析指令,给出控制信号
IR:指令寄存器,存放当前执行的指令
PC:程序计数器,存放下一条指令地址,自动加1.
代码执行过程
int a = 2, b = 3, c = 1, y = 0;
void main() {
y = a * b + c;
}
通过上述代码执行过程,让我们看看CPU与主存是如何协调工作的。
首先代码编译成汇编语言,汇编语言再变成机器码存储在主存中。
上边存储的为指令,下面存储的为数据。指令分为操作码和地址码,操作码代表指令的标识,地址码代表指令操作的地址。
下面我们来看看执行指令的具体步骤。
第一个指令
第二个指令
第三个指令
第四个指令
第五个指令,停机。
总结
计算机组成原理概括来讲就是讲了这些内容,具体的细节分散在了以后每个章节的学习中,包括如何进行算术运算和逻辑运算,如何主存与CPU数据如何交互,指令如何设计,CPU如何工作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。