计算机系统是由硬件和软件构成的,它们共同工作来运行应用程序。虽然系统的实现方式随着时间不断变化,但是系统内在的概念却没有改变。所有计算机系统都具有相似的硬件和软件组件,它们又执行着相似的功能。
典型系统的硬件组成主要有以下几个方面:
总线
贯穿整个系统的是一组晶体管,又称总线。它携带信息字节并在各个部件之间传递。通常总线被设计成传送定长的字节块,也就是字。字中的字节数是一个基本的系统参数,各个系统中都不尽相同。现在大多数机器的字长要么是4个字节,要么是8个字节。对于 64位系统来说,字长是8个字节。
I/O设备
I/O设备是系统与外部世界的联系通道。常见的例如鼠标,键盘,显示器,打印机,磁盘。每个IO设备都通过控制器或者适配器与IO总线相连。
主存
主存是一个临时存储设备,在处理器执行时,用来存放程序和程序处理的数据。从物理上来说,主存是由一组动态随机存储芯片(DRAM)组成,从逻辑上来说,主存是一个线性的字节数组,每个字节都有一个唯一的地址(数组索引)。这些地址是从零开始的。
CPU
中央处理单元,简称处理器。是解释储存在主存中 指令的引擎。处理器的核心是一个大小为一个字的存储设备(寄存器),成为程序计数器(PC)。在任何时刻,PC都指向主存中的某条机器语言指令。从系统通电开始,直到系统断电,处理器一直在不断的执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令,而这条指令并不一定和在内存中刚刚执行的相邻。 这样的简单操作并不多,他们围绕着主存,寄存器文件,和算术、逻辑单元进行。这些硬件组合在一起,构成了计算机系统的硬件
高速缓存
系统花费了大量的时间把信息从一个地方挪到另一个地方。当程序加载时,它们被复制到主存,当处理器运行程序时,指令又从主存复制到存储器。这些复制就是开销,系统设计者的一个主要目标就是使这些复制操作尽快的完成。 根据机械原理,较大的存储设备要比较小的存储设备运行得慢。而快速设备的造价远高于同类的低速设备。比如说,一个典型设备上的磁盘驱动器可能比主存大1000倍,但是对处理器而言,从磁盘驱动器读一个字节的时间开销要比主存中读取的开销大1000倍。一个典型的寄存器存储只存储几百字节的信息,而主存里可存放几十亿字节。然而,处理器从寄存器文件中读数据比从主存中读取几乎要快1000倍。针对这种处理器和主存中间的差异,系统设计者采用了更小更快的设备,称为告诉缓存存储器,cache memory,简称为cache。作为暂时的存储区域,保存处理器近期可能需要的信息。主流的CPU现在都有L1和L2 cache,L1 cache位于处理器芯片上,访问速度和寄存器一样快,容量达数万字节。L2容量通常为数十万到数百万字节,通过一条特殊的总线连接到CPU,CPU访问L2高速缓存的时间要比访问L1慢5倍,但是仍然比访问主存的时间快5-10倍。比较新,处理能力更强大的CPU甚至有三级缓存。L1,L2,L3可以让CPU获得一个很大的存储器,同时速度也很快。原因是利用了高速缓存的局部性原理,即程序具有访问局部区域的程序和代码的趋势。通过让高速缓存里存放可能经常访问的数据,大部分的内存操作都能在快速的高速缓存中完成。
存储设备层次结构
每个计算机系统的存储设备都被组织成了一个层级结构:
在这个存储的层级结构里,从上至下,设备的访问速度越来越慢,容量越来越大,并且每字节的造价也越来越便宜。寄存器在层级结构里位于最顶部。
层次结构的主要思想是上一层的存储器作为下一层存储器的高速缓存。因此,寄存器就是L1的高速缓存,L1就是L2的高速缓存,L2是L3的高速缓存,L3是主存的高速缓存,而主存又是磁盘的高速缓存。
声明:本人尊重原著版权,文章仅记录学习心得,不得进行转载或用于商业用途。
网友评论