小白讲故事,每天都精彩。
今天小白给大家带来的是cup和内存的结构,帮助大家理解以后学习算法和分析性能这些。闲话少说直接放大招。
人脑大战CPU+内存
小白最近老是丢三落四的,上一瞬记得要做的事,过一会就忘了。是不是忘了喝六个核桃补补脑了。喷一口老血!
- 短期记忆可以类比成寄存器(暂时存储)
- 人的逻辑推理相当于算术逻辑单元(计算)
- 长期记忆等价于随机存储器(永久存储)

寄存器
一般不同的cup的寄存器个数是不同的。

算术逻辑单元
一般算术逻辑单元可以从两个寄存器取出值计算,之后放回另一个寄存器中。从内存中取出两个数(5000*.2的计算过程)。

随机存储器

随机存储器对应的就是我们的内存。从图上可以看出内存像大的数组一样的结构。然后内存的序数我们称之为内存地址。内存地址是有8位二进制组成也就是一个字节。
问:那为什么称之为随机呢?
答:因为访问每个地址的时间是相等的。
问:那么内存都是存些什么?怎么区分。
答:内存分为两类:数据存储地址和指令存储地址。

指令
指令组成是指令编码,寄存器A,内存地址1000。一一对应关系。

CUP指令集
第一类是不操作内存的,只是简单的做一些计算。
第二类是与内存相关
第三类是就相当于我们平时if..else之类的指针。

(补充一个小点:电脑启动过程:硬盘=>读取内存=>逐渐到CPU核心)
指令空间地址

程序指针PC
一个特殊的寄存器,存储下一条要执行的程序所在的内存地址
指令周期

总结

首先将要执行的程序的内存地址放在pc指针里;
然后放入指令寄存器里执行;
其次读出结果放入寄存器中;
最后将计算结果放入内存中。
今日一题
写一个函数判断一个数字是不是某个整数的平方
is_square (-1) # => false
is_square 0 # => true
is_square 3 # => false
is_square 4 # => true
is_square 25 # => true
is_square 26 # => false