1 上帝关上一扇门,也会为你打开一扇窗
cpu脑容量较小,还有少量的寄存器可以临时记忆一些东西。但是有ALU,这样它的计算速度很快,大概是硬盘的1000万倍,内存的100倍。
就在这较小的脑容量中,cpu的创始者告诉了它三件事:1你的工作是运行指令2你不能保存指令,你的指令全部在内存中3你的第一条指令在内存最顶端0xFFFFFFF0。
2 启动
cpu通过系统总线,经过I/O桥电话局转接,再通过存储总线接通内存。内存发出一条跳转指令,找到BIOS。BIOS给cpu的指令是系统自检,看内存、硬盘、显卡有没问题。期间还形成一个中断向量表。之后BIOS给出 int 0x19,cpu去刚弄好的中断向量表中查第19号,然后找到对应0x19的一大堆指令。这些指令把磁盘的第一扇区(磁盘最开始的512字节)运到内存0X0000:0X7C00处,然后cpu从此处开始执行。
接下来一大堆精巧的指令开始涉及操作系统,将其从硬盘中运输到内存中。(此处省略一万字)
3执行
操作系统一旦进入内存,便成为总指挥。执行一个程序,需要从硬盘上读取程序指令和数据。繁琐的指令,cpu只需要进程配合有寄存器和程序计数器来获取下一跳转指令的目标地址就可以。程序可分为:顺序、分支、循环。三种类型,需执行的指令都是跳转指令。但是程序也有函数的调用,函数调用需要内存的紧密配合。
4缓存和流水线
cpu从硬盘读取数据耗时是因为硬盘是机械式的,一个磁头在一堆告诉旋转的磁片之间定位就很费时,而且还要速取数据,但是相对于内存和CPU来说,硬盘的存储是永久的,不会因为断电丢失数据。虽然内存的速度比硬盘的快,但是相对于cpu的执行速度还是慢的,也就是人间一天,cpu一年,这个形象说法。为解决这个问题,,在cpu上建立缓存和流水线,缓存根据局部性原理,时间局部性和空间局部性建立,流水线是cpu的提取指令、翻译指令、执行指令、回写指令流水线式工作。
网友评论