本文主要是介绍计算机科学(学习笔记二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
内容来源:计算机科学
目录
内容来源:计算机科学
寄存器&内存
CPU(中央处理器)
寄存器&内存
ALU所计算出的结果需要存储以便使用,存储的其实也是01的二进制数据,利用与门或门可达到这个效果
设置可让输出为1(也就是置位)复位让输出为0,也可以让输出和输入一样。
但我们希望只有一条输入线,可以用门锁
可将允许写入线看作钥匙,为1时允许数据输入,然后变为0将数据锁住。等到数据取出后再变为1再次允许数据输入。
一位存储做不了什么事,我们可以并排放8个锁存器,就可以存8位信息了。那么这组锁存器就叫做寄存器。
早期计算器位8位宽的存储,现多为32/64位宽的寄存器。
细想,64个锁存器并排放需要多少根线呢,输入可连成1根,输出和数据线各64根,也有129根了。解决方法是利用矩阵,如存256位(我感觉就像二维数组一样,每个锁存器有自己的地址)
这样只需要35条线就可以 存储256位的数据
所以一个256位的寄存器,他输入一个8位的地址,4位代表行4位代表列足矣。
那么将八个256位寄存器排放(如图,每8位一个字节,则这里有256个字节)
将它抽象一下呢,就变成了我们熟悉的样子
所以我们说RAM是短暂性记忆,只有有电才能保存,他只是寄存器需要锁住才能保存,也就是所说的运行内存
总结:看似复杂的存储,实则底层逻辑很简单,简单的逻辑与非门和矩阵。根本上这些技术都是矩阵层层嵌套来存储大量信息,不过看似的简单都是由精妙的抽象达到的。
CPU(中央处理器)
//看到这里想起了大一所学的计算机导论的知识,对于寄存器取码编译执行的操作。
程序由一个个操作组成,也就是指令,计算机需要指令才能进行运作。
这是一个简单的未连线的CPU模型
模拟一下CPU操作过程:
1.取指令阶段
将0地址放到指令地址寄存器中,将0的data放到指令寄存器中(0010 1110)
2.解码阶段
前四位0010在指令中是LOAD A命令,后四位是要操作的数据的地址,即1110(14),找到1110对应的值即00000011(3)
3.执行阶段
将地址传给RAM找到(3)然后传给A寄存器,关掉所有线路,将指令地址寄存器+1
其他指令如ADD,SORT不做过多解释(注意那根多余的线表示“允许读取”,也就是开锁)
以上的过程是人为进行操作,那么计算机如何自动完成操作呢?其实是‘时钟’在管理CPU的节奏
改变时钟频率可以控制CPU的速度,称作超频,芯片制造商经常给CPU留一点余地以便接受一点超频。(没错就是电技中的cp时钟信号)但当时钟频率过高会让CPU温度过高产生乱码因为信号跟不上时钟。
有时候为了省电,现代处理器可根据需求调整时钟速度,称作“动态调整频率”
这篇关于计算机科学(学习笔记二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!