找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2280|回复: 0
收起左侧

CPU学习心得续集3

[复制链接]
ID:72519 发表于 2015-1-23 01:10 | 显示全部楼层 |阅读模式
        不说那些外行的话了,很多东西是想当然的,可能不正确。
        CPU内的各种数字电路,在每个脉冲周期都在工作,没有接到指令也在工作,它们在干什么呢?
        我们知道,CPU开发的时候,系统提供了很多指令,如MOV、JMP等等,我们称之为指令集。我猜想这些不同的指令,实质上就是对应着CPU内部不同的数字电路,所有的数字电路都拥有共同的特点,就是都具有输入和输出端,这些输入和输出端是接在总线上的,输入端每时每刻都在监视着总线上电平的变化,输出端每时每刻都在输出给总线相应的电平。
        内存同样也是数字电路,它也在总线上接着,内存的工作相对更简单,就是感知总线上的电平高低,你高了我也高,你低了我也低。但是总这样高高低低的也不行,这就像你拿起笔总在一个方格里写字一样,写了擦,擦了写,文章还是出不来,怎么办?笔要动才行,这里就需要移位电路,每一个周期执行完毕,移位电路就要工作一次, 这就是前面学过的指针的概念。对程序员来说是指针,对硬件开发者来说是移位电路。

        大概的脉络在脑子里基本有点状态了,我们不妨先把庞大的超大规模的CPU系统简化一下,这样更好理解。假设CPU内部只有一个数字电路,内存只有8个字节(8位机同时传输8个字节)。
        现在通电开始工作,脉冲电路发出脉冲, 数字电路的8个输入端在总线上的8条支路上分别感知电平,假设内存的数据为00001111,那么数字电路的8个支路会检测到低低低低高高高高8个电平,然后数字电路马上得出运算结果,假设为10101010,并送到总线上去。请注意,这里数字电路输出数据的前提是00001111这个输入值里面包含自己需要的识别码,就像密码一样,如果不包含,对不起我不输出任何数据,保持原电平不变,假设密码为0000,那么每当它看到这个0000就会立即输出数据,这个识别的密码是唯一的,不能和别的数字电路重复。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表