(1).Chapter01:计算机系统漫游
(2).Chapter02~Chapter12分为三部分
(1).编译系统工作流程
程序编译
详细过程
(2).理解编译系统工作流程意义
计算机硬件系统组成
(1).CPU的结构
程序计数器PC :一个字即4字节(32位系统)或一个字即8字节(64位系统)的存储空间,里面存放的是某一条指令的地址。从系统上电的那一瞬间到系统断电,处理器就不断地在执行PC执向的指令,然后更新PC,使其指向下一条要指向的指令。注意:下一条执行的指令与刚刚执行过的指令不一定是相邻的地址。
寄存器文件 :它是CPU内部的一个存储设备,寄存器文件是由一些单字长的寄存器构成,每个寄存器都有自己唯一的名字。换句话说,寄存器可以理解为一个临时存放数据的空间。
算术逻辑单位ALU :例如,计算两个变量a、b的和,处理器从内存中读取a的值暂存在寄存器X中,读取b的值暂存在寄存器Y中,这个操作会覆盖寄存器中原来的数值。处理器完成加载的操作后,ALU会复制寄存器X和Y中保存的数值,然后进行算术运算,得到的结果会保存在寄存器X或寄存器Y中。此时,寄存器中原来的值会被新的值所覆盖。
(2).主存/内存
处理器在执行程序时,内存主要存放程序指令和数据。从物理上来说,内存就是由随机动态存储芯片组成;从逻辑上来说,内存可以看成是一个从0开始的大数组,每个字节都有相应的地址。
(3).总线
内存和处理器之间通过总线来进行数据传递,总线贯穿了整个计算机系统,它负责将信息从一个部件传递到另一个部件,通常总线被设计成固定长度的字节块即字word。字表示多少个字节,各个系统是不一样的。
(4).输入输出设备
例如:键盘、鼠标、显示器等,每个输入输出设备都通过一个控制器或者适配器与IO总线相连。
(1).键盘输入./hello时,shell程序会将输入的字符逐一读入寄存器,处理器会把这个hello字符串放入内存中;
第1步
(2).当完成输入,按下回车键时shell程序已经知道我们已经完成了命令的输入,然后执行一系列的指令来加载可执行文件hello。这些指令将hello中的数据和代码从磁盘复制到内存。数据就是要在屏幕上显示的“hello worldn”,这个复制的过程将利用DMA技术,数据可以不经过处理器,从磁盘直接到达内存;
第2步
(3).当可执行文件hello中的代码和数据被加载到内存中,处理器就开始执行main函数中的代码。CPU会将“hello worldn”这个字符串从内存复制到寄存器文件,再从寄存器文件复制到显示设备即屏幕上;
第3步
(1).通常情况下,大容量的存储设备存取速度要比小容量的慢;运行更快设备的价格相对于运行速度慢的设备的价格要贵;
寄存器文件Register File 100~1000B
L1 cache 10~100KB
L2 cache 0.1 ~10MB
L3 cache 10~100MB
内存Main Memory 1~100GB
磁盘Disk 1~1000TB
(2).针对处理器和内存之间的读写速度差异,系统设计人员在寄存器文件和内存之间引入了高速缓存cache 。比较新且处理能力比较强的处理器,一般有三级高速缓存:L1 cache、L2 cache、L3 cache。L1 cache的访问速度与访问寄存器文件几乎一样快,L2 cache的访问速度是L1的5倍,L3 cache的容量更大,访问速度与L2 cache相比更慢。
内存层次结构
全部0条评论
快来发表一下你的评论吧 !