关闭

CPU与存储器

100人阅读 评论(0) 收藏 举报
分类:

上文说到计算机的组成。

计算机诞生初期的功能就是代替人工进行大数据量的运算。人们善于思考,但是不善于复杂重复的计算,因而这些任务就都交给计算机来做。如果一开始就做高级编程语言的开发工作,而对计算机底层的知识了解甚少,那么很容易产生知识盲点,而且当知识进步,编程语言变化的时候,会产生"技术变化的太快,跟不上脚步"的感觉,因此从从业生涯的角度来说,学习计算机基本知识是十分有必要的。

了解计算机是如何处理指令,CPU如何与内存交互,计算机底层的安全操作是怎么进行的,了解了它们,再回过头来看高级编程语言,其实一直都是在围绕着计算机指令的执行来演化的。

CPU是微机的核心,负责逻辑运算与数据处理。CPU处理的数据从哪里来呢?答案是内存。CPU中的数据由内存读取过来,内存中的数据则是通过输入单元传入,CPU执行得到的数据需要传回内存,然后通过输出单元输出给接收者。


CPU与内存通过总线连接。

CPU的组成:CPU是由寄存器,控制器,运算器,时钟组成。

寄存器有通用寄存器和专用寄存器之分。如AX,BX等,这些寄存器如程序计数器,指针寄存器等包含了逻辑运算及程序执行命令控制等功能,具体哪些寄存器有哪些功能,日后再说。

那么CPU是如何与存储器交互的呢?

首先要知道内存中的数据都是有地址的,这也是为什么cpu不能与其他外部存储空间直接交互的原因。存储器被划分为若干个单元,存储单元从零开始编号,这些编号可以被看做内存单元的地址,有了这些地址,cpu指令才知道取得的数据是自己想要的。在cpu内部,可以用基址寄存器和变址寄存器来为内存单元设置内存地址。

CPU进行运算,首先要知道内存中的数据的地址值,就像是找人,首先要知道住在哪一栋,再确定户室,这种地址值寻值的方式确保了获取的内存中的数据的正确性么这是十分重要的。

CPU是通过什么来与内存器交互的呢?计算机是靠电信号控制的,因此能处理和传输的也都是电信号,电信号是靠导线传输的。在计算机中连接各个IC的导线,统称为总线。而总线根据用途又分为:数据总线,控制总线,地址总线。

上图中内存中的值是用16进制表示的。

一般来说cpu与内存交互都需要这三种总线:发送地址信息(地址线),选中存储器(控制线),写入/读出信息(数据线)。

现在我们知道了cpu是如何进行数据读写的,那么如何命令计算机进行读写呢?这就是我们上文所说的高低电平了。

要让一个计算机能够表示数据,就要按照固定的格式来控制电信号,产生高低电平,也就是二进制数据或机器码0101.....

举个栗子:

机器码:101000010000001100000000

含义:从三号单元读取数据送入寄存器AX

CPU处理这段机器码然后进行上述的运算。

看到上述这段机器码是不是感觉无从下手,很难看懂?这也是为什么高级语言这么受欢迎的原因。

机器语言是给机器看的,这是因为机器语言符合计算机的"逻辑",通过电信号来模拟0101进行计算,然而我们人类的思维往往与计算机的思维不一样。因此在很长一段时间,汇编语言大行其道,在如今很多地方依然要用到它,因为它直接操作的是计算机的硬件,性能是那些解释型(需要解释器)的语言无法比拟的。

例如上面的机器码用汇编语言来表示的话是:MOV AX,[3],是不是很简单呢?

在下篇文章我们讲介绍三种总线是如何工作的,敬请期待。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18526次
    • 积分:1236
    • 等级:
    • 排名:千里之外
    • 原创:104篇
    • 转载:32篇
    • 译文:1篇
    • 评论:0条