计算机存储体系介绍

大体分为四层:

一.内存

容量远远高于外存,速度远远高于外存,稳定性不高(断电内容消失)

有关RAM和ROM:

通常我们所说的内存,主存,仅指RAM。

ROM是“固化的软件设备”,其固化的软件包括自检程序,基本输入输出程序,自举程序;

计算机加电启动的基本过程:CPU从ROM中取并执行自检程序,自检成功,根据自举程序从指定的系统盘(外存),提取并执行OS的启动过程,然后,将计算机控制器移交OS。

二.外存

容量最大,速度最慢,稳定性最高

三.高速缓存

虽然内存是由电路组成的,其速度远高于外存,但是,比CPU速度而言,内存速度依然很慢,若CPU所执行的指令和数据,每每都需要从内存取得,或者。CPU计算结果每每都需要存储到内存,则,CPU速度再快都没用,因为,最后速度取决于内存速度,通常情况下,内存速度比CPU慢将近一个数量级,为了解决这个问题,在计算机中增加一种造价比内存昂贵,但容量远小于内存的“高速缓存器件”。

高速缓存的工作原理概述:当CPU需要从内存中获取指令数据时,将同时在高速缓存和内存中进行。

查询:一旦在高速缓存中找到目标数据,则,停止在内存中访问。

在上述工作原理的的情况下,若所查找的数据能在相当大的概率下在高速缓存中成功找到,则。大大提高了CPU的利用率,这个概率称为高速缓存的一个重要性能指标:命中率!

四.寄存器

1.寄存器分类:分为通用寄存器组,段寄存器组,辅助寄存器组,两个特殊寄存器。

(1)通用寄存器组:EAX(AX),EBX(BX),ECX(CX),EDX(DX).

两种数值都可以决定CPU字长:总线(根)宽度,寄存器位数。

AX(add)通常于计算机计算(+,-,*,/,&,~,^)

函数返回值就是通过AX完成的。这是在编译级别实现的。

BX(base):除了可以计算(与AX功能类似外),通常用于表示数组下标这样的“偏移量”。

CX(count):除了可以计算外,系统在硬件层面,通常将CX作为LOOP(循环)的“计数器”。

DX(Date):通常辅助AX进行拓展位运算。

(2)辅助寄存器中SP和BP:

通常BP表示系统堆栈的栈底位置(地址);SP表示系统堆栈的栈顶位置(地址)。

(3)IP指令指针(指令寄存器)

IP是用来存储“下一步”要执行的某个进程(线程)的代码的地址的。

IP具有“自动增一”的功能,(1指一条指令长度字节,增一过程无需CPU的参与),即,与CPU真正同步执行;这可以完成程序的顺序执行。

IP的值可以通过类似:JMP,JE,JG,CALL等特殊执行进行修改,从而实现程序的跳转(循环)执行,MOV,IP,xxx是非法汇编命令。

可见。IP是非常重要的运行时的状态信息,是保护现场信息时,首要要被保存的对象。

(4)标志位寄存器:flag

j简单的说,通过flag计算机才真的可以做逻辑判断,那么,这个寄存器的值,在保护现场时,也必须保存,否则会“断片”。

关于c源程序与上述寄存器之间的关系

所有的c源程序代码都要进行编译,从而生成最终的机器指令代码和文件(可执行文件)

那么,上述的内容最终是由编译软件完成的,也就是说,编译软件将我们ASCALL码形式的源程序,根据自己的原则,使用上述寄存器完成源代码的任务,反过来说,如果在编程中需要特殊处理,就需要给编译器一定的指导,才能达到我们的目的。

猜你喜欢

转载自blog.csdn.net/chengtutu/article/details/81165720