《计算机组成原理》(唐朔飞)(第2版)第一章学习(1)

计算机的软硬件概念

计算机系统软件硬件两大部分组成。

硬件指组成计算机的实体部分,如主机、外部设备等。

软件指人们所编制的程序

软件的地位和作用已经成为衡量计算机系统性能好坏的重要标志,但软件是依赖于硬件的支撑的,因此,计算机的性能的好坏取决于软、硬件功能的总和

计算机软件又分为两大类系统软件用户软件

系统软件又称系统程序,主要管理整个计算机系统,监视服务,使资源得到合理的分配和调度,高效运行。

用户软件又称为应用程序,它是用户根据任务需要所编制的各种程序。

计算机系统的层次结构

早期的计算机系统只能处理机器语言,人们只能使用二进制编制成机器语言程序,才能交给计算机执行。

由于机器语言程序的编写难度大(只能通过0和1这两种二进制字符编写),操作也容易出错,还要求程序员对机器及其指令十分熟悉。

20世纪50年代,人们发明了符号式的程序设计语言,叫汇编语言,这种语言使用符号来代替加减乘除(ADD/SUB/MUL/DIV),也用符号来表示指令或数据所在存储单元的地址,大大改善了编写难度。

人们可以用汇编语言编写相应程序,经过汇编语言机器翻译成机器语言,再交由机器语言机器执行。

于是有了下图的二层计算机系统结构

然而,汇编语言只是改善了机器语言编写复杂且操作易错的缺点,但依然要求使用它的程序员熟悉相应的计算机硬件及其指令。

再者,汇编语言依赖于实际机器的指令系统,每台机器都需要有对应的汇编语言,没有通用性,不利于计算机的广泛发展和应用。

20世纪60年代,出现了各种面向问题的高级语言,如FORTARN、BASIC、PASCAL、C等。这种语言不仅改善了程序的编写,而且还具有一定通用性,程序员不必了解各机器的机型、内部组成以及指令系统,只需要掌握这种语言其中的语法和语义,就能编写程序。

自然,这种语言也不能直接被机器所识别,因此需要高级语言机器将其翻译成机器语言,或先翻译成汇编语言,再由汇编语言机器翻译成机器语言,程序才能得以执行。

于是有了下图的三层计算机系统结构

由上可看出,由于软件的发展,实际机器M1向上延伸出了虚拟机器,同理,它可向下延伸出M0级机器。

机器M0是将M1的每一条指令翻译成一组微指令,构成一个微程序。

因此可以将M0看作是M1的进一步分解,由于两者都是实际机器,因此为了区别M0和M1,通常将M1称为传统机器,M0称为微程序机器。

于是有了下图的四层计算机系统结构

事实上,在实际机器与虚拟机器之间,还有一级虚拟机器,它是由计算机的操作系统构成的。

操作系统提供了汇编语言和高级语言在使用和实现上的基本操作,还能统一管理计算机系统的软硬件资源,控制程序的执行,为用户提供服务接口,使用户方便、灵活使用计算机,提高了计算机系统的效率。

操作系统的功能是通过其控制语言来实现的。

于是有了下图的多级计算机系统结构

在M4级别还可以继续向上延伸,构成应用语言虚拟机器。这一级的机器所用的语言是各种面向问题的应用语言,如用于人工智能和计算机设计方面的语言,主要是为了满足计算机的各种用途而专门设计的。

应用语言编写的程序一般由应用程序包翻译到虚拟机M4上。

从计算机的多层次结构来看,计算机硬件方面的内容主要研究的便是M0和M1级层次的内容,也就是计算机组成原理这一科目主要研究的内容。计算机软件方面的内容则主要是操作系统级及以上的虚拟机。

当然,随着超大规模集成电路的不断发展,一部分软件功能将会由硬件来实现,例如目前操作系统已经实现了部分固化(把软件永恒地存于只读存储器中),称为固件等。因此,软硬件交界界面并不一定一成不变的,其变化的趋势正沿着上面的多级计算机系统结构图所展示的方向向上发展。

计算机组成和计算机体系结构

计算机体系结构计算机组成是两个不同的概念。

计算机体系结构是指能够被程序员所见的计算机属性,是概念性结构功能特性

通常指使用机器语言编程的程序员(包括使用汇编语言的程序设计者)所能看到的传统机器的属性诸如指令集、数据类型、存储器寻址技术、I/O机理等,大都是抽象的属性。由于计算机系统的多层次结构,因此不同层次级编程人员所看到的计算机属性也是各不相同的。

计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。
例如指令系统体现了机器的属性,属于计算机结构问题,但指令的实现如取指令、分析指令、取操作数、运算、送结果等,属于计算机组成问题。也就是说,一套相同的计算机系统结构,可能有着不同的组成方式。

猜你喜欢

转载自blog.csdn.net/JObjectLeo/article/details/83546951