计算机系统结构主要研究计算机系统的基本工作原理,以及在硬件、软件界面划分的权衡策略,建立完整的、系统的计算机软硬件整体概念。
计算机系统结构指的是什么? 是一台计算机的外表? 还是是指一台计算机内部的一块块板卡安放结构? 都不是,那么它是什么? 计算机系统结构就是计算机的的机器语言程序员或编译程序编写者所看到的外特性。所谓外特性,就是计算机的概念性结构和功能特性。用一个不恰当的比喻一,比如动物吧,它的"系统结构"是指什么呢? 它的概念性结构和功能特性,就相当于动物的器官组成及其功能特性,如鸡有胃,胃可以消化食物。至于鸡的胃是什么形状的、鸡的胃部由什么组成就不是"系统结构"研究的问题了。系统结构只管到这一层。关于计算机系统的多层次结构,用"人"这种动物的不恰当的例子列表对比如下:(这种联系很不科学,只是大家轻松一下)。
计算机系统
人
应用语言级
为人民服务级
高级语言级
读书、学习级
汇编语言级
语言、思维级
操作系统级
生理功能级
传统机器级
人体器官级
微程序机器级
细胞组织级
电子线路级
分子级
传统机器级以上的所有机器都称为虚拟机,它们是由软件实现的机器。软硬件的功能在逻辑上是等价的,即绝大多部分硬件的功能都可用软件来实现,反之亦然。
计算机系统结构的外特性,一般应包括以下几个方面(这也就是我们要分章学习的几个章节)把这几个方面弄清了,系统结构也就基本明确了:
(1)指令系统 (2)数据表示 (3)作数的寻址方式 (4)寄存器的构成定义 (5)中断机构和例外条件 (6)存储体系和管理 (7)I/O结构 (8)机器工作状态定义和切换 (9)信息保护。
所以在以后的学习中常回头想想这是系统结构的哪一方面,这对把握全局有好处。
这里提一下计算机系统结构的内部特性,计算机系统结构的内特性就是将那些外特性加以"逻辑实现"的基本属性。所谓"逻辑实现"就是在逻辑上如何实现这种功能,比如"上帝"给鸡设计了一个一定大小的胃,这个胃的功能是消化食物,这就是鸡系统的某一外特性,那怎么消化呢,就要通过鸡喙吃进食物和砂石,再通过胃的蠕动、依靠砂石的研磨来消化食物,这里的吃和蠕动等操作就是内特性。
还有一个就是计算机实现,也就是计算机组成的物理实现。它主要着眼于器件技术和微组装技术。拿上面的例子来说,这个胃由哪些组织组成几条肌肉和神经来促使它运动就是"鸡实现"。
据此我们可以分清计算机系统的外特性、内特性以及物理实现之间的关系。 在所有系统结构的特性中,指令系统的外特性是最关键的。因此,计算机系统结构有时就简称为指令集系统结构。我们这门课注重学习的是计算机的系统结构,传统的讲,就是处在硬件和软件之间介面的描述,也就是外特性。
这些不恰当的比喻只是帮助理解,不可强求对应,不然会有损科学的严密性。
计算机系统结构的分类
按"流"分类的方法,这是Flynn教授提出的按指令流和数据流的多倍性概念进行分类的方法。共有四大类,即:(S-single 单一的 I-instruction 指令 M-multiple 多倍的 D-data 数据)
SISD 单指令流单数据流,传统的单处理机属于SISD计算机。
SIMD 单指令流多数据流,并行处理机是SIMD计算机的典型代表。我国的YH-I型是此类计算机型。
MISD 多指令流单数据流,实际上不存在,但也有学者认为存在。
MIMD 多指令流多数据流,包括了大多数多处理机及多计算机系统。我国的YH-II型计算机是这种类型的计算机。
一般将标量流水机视为SISD类型,把向量流水机视为SIMD类型。
按"并行级"和"流水线"分类:这是在计算机系统中的三个子系统级别上按并行程度及流水线处理程度进行分类的方法。
--------------------------------------------------------------------------------
二、计算机系统的设计准则
1.只加速使用频率高的部件
这是最重要也是最广泛采用的计算机设计准则。因为加快处理频繁出现事件对系统的影响远比加速处理很少出现事件的影响要大。
2.阿姆达尔(Amdahl)定律
这个定律就是一个公式:即
应会运用此公式做一些计算或分析,所以要记住并理解其意义。
3.程序访问的局部性规律
程序访问的局部性主要反映在时间和空间局部性两个方面,时间局部性是指程序中近期被访问的信息项可能马上将被再次访问,空间局部性指那些在访问地址上相邻近的信息项很可能被一起访问。
三、计算机系统结构的发展
冯·诺依曼计算机的主要特点是:存储程序方式;指令串行执行,并由控制器加以集中控制;单元定长的一维线性空间的存储器;使用低级机器语言,数据以二进制表示;单处理机结构,以运算器为中心。
改进后的冯·诺依曼计算机使其从原来的以运算器为中心演变为以存储器为中心。 从系统结构上讲,主要是通过各种并行处理手段高提高计算机系统性能。
软件、应用和器件对系统结构发展的影响
软件应具有可兼容性,即可移植性。为了实现软件的可移植性,可用以下方法:
模拟:用软件方法在一台现有的计算机上实现另一台计算机的指令系统,这种用实际存在的机器语言解释实现软件移植的方法就是模拟。
仿真:用A机(宿主机)中的一段微程序来解释实现B机(目标机)指令系统中每一条指令而实现B机指令系统的方法称仿真,它是有部份硬件参与解释过程的。
一般将两种方法混合作用,对于使用频率高的指令用仿真方法,而对于频率低而且难于仿真实现的指令使用模拟的方法加以实现。
采用系列机的方法,可以这么说,系列机的系统结构都是一致的,如我们使用的INTEL 的80X86微机系列及其兼容机,系统结构都是一致的,当然在发展过程中它的系统结构可以得到了新的扩充,比如原来的586机器不支持MMX多媒体扩展指令集,但是后来的芯片中扩充了这些指令,使指令系统集扩大,但它们仍是同一系列的机器。这种系列机的方法主要是为了软件兼容。如上面的扩展指令,将使得以后针对这些指令优化的软件不能在以前的机子上运行(或不能发挥相应功能)导致向前兼容性不佳。但重要的是保证做到向后兼容,也就是在按某个时期推到市场上的该档机上编制的软件能不加修改地在它之后投入市场的机器上运行。
在系列机上,软件的可称植性是通过各档机器使用相同的高级语言、汇编语言和机器语言,但使用不同的微程序来实现的。
统一标准的高级语言
采用与机器型号无关的高级程序设计语言标准如FORTRAN、COBOL等,这种方法提供了在不同硬件平台、不同操作系统之间的可移植性。
开放系统:是指一种独立于厂商,且遵循有关国际标准而建立的,具有系统可移植性、交互操作性,从而能允许用户自主选择具体实现技术和多厂商产品渠道的系统集成技术的系统。
应用需求对系统结构发展的影响
计算机应用对系统结构不断提出的基本要求是高的运算速度、大的存储容量和大的I/O吞吐率。(我们要更快的主板CPU和内存、我们要更大的硬盘我们要更大的显示器更多的色彩更高的刷新频率...这就是需求)
计算机应用从最初的科学计算向更高级的更复杂的应用发展,经历了从数据处理、信息处理、知识处理以及智能处理这四级逐步上升的阶段。
器件对系统结构发展的影响
由于技术的进步,器件的性能价格比迅速提高,芯片的功能越来越强,从而使系统结构的性能从较高的大型机向小型机乃至微机下移。
综上所述:
软件是促使计算机系统结构发展的最重要的因素(没有软件,机器就不能运行,所以为了能方便地使用现有软件,就必须考虑系统结构的设计。软件最重要)
应用需求是促使计算机系统结构发展的最根本的动力(机器是给人用的,我们追求更快更好,机器就要做得更快更好。所以需求最根本)
器件是促使计算机系统结构发展最活跃的因素(没有器件就产不出电脑,器件的每一次升级就带来计算机系统结构的改进。没看见上半年刚买的机子,下半年就想把它扔进历史的垃圾堆么^_^,所以器件最活跃) 。
温馨提示:内容为网友见解,仅供参考