408之计算机组成原理计算机系统概述

Posted 楠鹤晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了408之计算机组成原理计算机系统概述相关的知识,希望对你有一定的参考价值。

目录

前言

本文主要包含以下内容:计算机发展历程(四代时期)计算机的系统层次结构(计算机组成原理的划分)(计算机系统的基本组成和计算机硬件的基本组成,计算机硬件和软件的关系,计算机系统的工作原理),和计算机的性能指标

一、计算机的发展历程

1. 计算机发展的四代变化

计算机的发展过程经理四个时代:电子管时代晶体管时代中小规模集成电路时代超大规模集成电路时代

  • 电子管时代逻辑元件采用电子管,使用**机器语言(最底层的语言)**进行编程,存储的容量小,体积大,成本高,运算速度慢。
  • 晶体管时代逻辑元件采用晶体管,运算速度相比于电子管时代的计算机提高一点,此时开始出现高级语言和编译程序,有了操作系统的雏形
  • 中小规模集成电路时代逻辑元件采用中小规模集成电路,高级语言发展迅速,开始有了分时操作系统
  • 超大规模集成电路时代逻辑元件采用大规模集成电路和超大规模集成电路,产生了微处理器(CPU),产生了并行、流水线、高速缓存和虚拟存储器等概念。

2. 计算机元件的更新换代

  1. 摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月就会增加一倍,性能也会提升一倍
  2. 半导体存储器的发展
  3. 微处理器的发展:微处理器从刚开始只能处理8位发展到现在能够处理64位,这里的位指的是机器字长,也就是计算机进行一次整数运算所能处理的二进制数据的位数,例如:像处理一个整数,我们知道一个整数是4个字节,也就是8个比特位,那么如果采用刚开始的处理器,因为那时候的处理器一次只能处理8个比特位,所以那个时候的处理器处理一个整数需要4次,现在的处理器一次能够处理64个比特位,所以现在的处理器来处理一个整数一次就能够处理完毕。

3. 计算机软件的发展

计算机语言从刚开始的机器语言,逐渐发展产生了汇编语言面向对象的高级语言,可见其发展是非常迅速的。

二、计算机系统层次结构

1. 计算机系统的组成

计算机系统是由硬件系统软件系统组成的。

  • 硬件系统(底层):能够实际摸得着的那些东西:比如常见输入输出设备存储器运算器控制器,这五大部件也是后面冯诺依曼体系结构中的重要组成部分。
  • 软件系统(上层):包括常见的使用高级语言编写而形成的软件,其能够让硬件完成对应的工作,这里需要知道,操作系统也是属于软件。

计算机性能的好坏很大程度是取决于软件的,但是软件的运行又离不开硬件,因为软件的本质就是让硬件工作,硬件和软件其实对于实现某一个逻辑具有等效的作用,但是使用硬件和使用软件来完成的成本和效率是不一样的,其中,如果使用软件来完成逻辑运行的话,就是效率低,成本低使用硬件来完成对应的逻辑运算的话就是效率高,成本高。比如:如果我们要完成一个乘法计算,那么对于硬件我们只需要实现一个乘法指令(成本高),让硬件进行计算即可(效率高),但是采用软件的话,就只能进行多次相加,所以显然效率就会比较低,但是成本也低

2. 冯诺依曼体系结构

早期的冯诺依曼体系结构

早期的计算机中的结构是按照上面的结构实现的,数据经过输入设备之后是将数据传送到运算器,然后再由运算器将数据输送到存储器,这个结构是以运算器为中心的,这个过程中效率就会相对比较慢了,所以后期的计算机中的结构做出了修改
后期的冯诺依曼体系结构

后期的计算机中,数据经输入设备之后是直接到达存储器,然后需要运算的时候再将数据传送给运算器进行运算。所以这个结构是以存储器为中心的

  1. 存储程序:将事先编制好的程序原始数据送入主存(内存)后才能执行CPU执行),一旦程序被启动,就无需操作人员干预,计算机会自动逐条执行指令,直到程序运行结束。存储程序相比于原始的计算机所具有的优点:不需要人为进行干预,从而提高了计算机运行的效率
  2. 冯诺依曼体系计算机的特点
  • 采用存储程序的工作方式
  • 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备构成
  • 指令和数据以同等地位存储在存储器中,形式上没有区别,但是计算机能够对它们进行区分
  • 指令和数据均以二进制的形式进行表示。指令是由操作码地址码组成,其中,操作码指出操作的类型,就是告诉CPU这条指令需要执行什么操作,比如:加法操作和减法操作。地址码是指出操作数的地址,就是告诉CPU这个要去哪里找这个指令运算对应的操作数。

3. 计算机的功能部件

前面我们知道冯诺依曼体系结构中包含五大部件:输入设备,输出设备,存储器,运算器和控制器。下面我们将逐一介绍其中的原理:

1. 输入设备

输入设备的主要作用就是将程序和数据以计算机能够识别的机器语言形式输入给计算机,最常用的输入设备:键盘,鼠标,扫描仪,摄像机

2. 输出设备

输出设备的主要功能就是将计算机处理的结构以人类能够识别的形式输出。最常用的输出设备:显示器、打印机

3. 存储器(重点)

存储器包括两类基本的存储器:主存储器和辅助存储器,我们主要研究主存。

  • 主存储器:指内存,就是CPU能够直接访问的存储器,一般大小为:8GB或者16GB
  • 辅助存储器CPU不能直接访问的存储器,主要的任务是帮助主存储器存储更多信息,因为CPU无法直接访问这里的信息,所以当这些信息需要被执行的时候,需要先将这些信息调入内存才能被执行。常见的辅助存储器:比如电脑中的磁盘,手机的SD卡,U盘之类的存储器。
  • 按地址存取方式:主存储器的工作方式是按照存储单元的地址进行存取的,这里的存储单元,主存储器一般会被划分为很多个小的存储单元,每一个单元从头到尾依次会进行编号,每一个存储单元对应的编号就是这个存储单元对应的地址。

    主存储器中主要包含:存储体、地址寄存器(MAR)和数据寄存器(MDR)
  • 存储体:存储体会被分成很多个存储单元,这个存储单元既可以存储数据,也可以存储指令,数据在存储体中是按照地址进行存取的,存储单元中包含很多个存储元件,每一个存储元件存储一个二进制的1或者0,所以一个存储单元存储的是一串二进制数的序列,我们将这串二进制序列称为存储字(存储单元中存储的信息(数据或者指令)),这串二进制序列的二进制位数(存储元件的数目)称为存储字长
  • 地址寄存器(MAR):存放的是信息(数据或者指令)存储体中的地址,形式为二进制。其中地址寄存器有几位,对应的存储体中就有2的几次方个存储单元(用排列组合的思想进行证明)。如:一个主存储器中的地址寄存器有8位,那么这个主存储器中的存储体就被分成2^8个存储单元。
  • 数据寄存器(MDR):存放的是写入存储体中的信息(数据或者指令)或者即将从存储体中读出的信息(数据或者指令),位长为存储字的长度(一次只能存储一个数据)。

需要注意的是:地址寄存器(MAR)和数据寄存器(MDR)虽然是存储器的一部分,但是在现代计算机中却是存在于CPU中的。

4. 运算器(重点)

运算器是计算机中的执行部件,用于进行算数运算逻辑运算

  • 算数运算:按照算数运算规则进行的运算,如:加、减、乘、除
  • 逻辑运算:按照逻辑进行的运算,如:与、或、非、异或、比较、移位
    运算器中包含很多个寄存器,主要用于暂时存储操作数和中间结果,如:累加器(ACC)乘商寄存器(MQ),**操作数寄存器(X)**等,其中,这三个是运算器中必须具备的寄存器
  1. 累加器(ACC):存放操作数或运算结果
  2. 乘商寄存器(MQ):在乘除时,存放操作数或运算结果
  3. 操作数寄存器(X):存放操作数
  4. 算术逻辑单元(ALU):通过内部实现的复杂的电路来实现算数运算和逻辑运算

5. 控制器(重点)

控制器是计算机的指挥中心,计算机中主要是由控制器指挥各个部件自动协调地工作。控制器主要由控制单元(CU)指令寄存器(IR),**程序计数器(PC)**组成

  1. 控制单元(CU):分析指令,主要是分析指令中的操作码,分析该条指令想要执行什么操作,给出控制信号
  2. 指令寄存器(IR):存放当前执行的指令,指令中包含操作码和地址码,操作码会传给控制单元(CU),地址码会传给地址寄存器(MAR)。
  3. 程序计数器(PC):存放下一条执行指令的地址,刚开始存储第一条指令的地址,接下来会将这个地址传给地址寄存器(MAR),然后自己再存储下一条指令的地址,有自动加1的功能,1是指一条指令的长度,即可以自动形成下一条指令的地址,它和主存中的MAR有一条直接的通路。

三、 分析计算机各个部件在执行代码中的过程(重难点)

任何一条执行的执行都要经历三个步骤:取指令,分析指令,执行指令
下面以一个具体的例子来介绍这个过程:

比如:我们要让计算机执行上面的代码,上面的代码逻辑非常简单,就是先执行ab,再执行ab+c,然后讲结果放在y中。其中对应的数据有:a,b,c,y
首先需要将对应的指令和数据存入主存储器的存储体中,存储的过程是按照存储单元的地址进行存储的,存储的形式是二进制(像下面这个例子就是16位),如下:

  1. 执行第一条指令
  • 取指令:刚开始PC寄存器中存储的是第一条指令的地址,此时会将PC中存储的指令地址传给地址寄存器(MAR),然后PC指向下一条指令,此时MAR中对应的值为0,然后再到存储体中取出地址为0的存储单元中的数据(第一条指令),放入数据寄存器(MDR),然后再将数据寄存器中的指令传给指令寄存器(IR),此时IR会将指令分为两个部分:操作码和地址码,**操作码会交给控制单元(CU)**进行分析,地址码会交给地址寄存器(MAR)
  • 分析指令:控制单元经分析得出该指令想要执行的操作是取数操作。
  • 执行指令:通过MAR中存储的地址到存储体相应的位置取出对应的数据放在数据寄存器(MDR)中,所以此时MDR中存放的值为a = 2,再将2的值放入累加寄存器(ACC)
    具体过程如下:
  1. 执行第二条指令
  • 取指令:第一条指令执行结束之后,PC指向的指令是第二条指令,此时将PC中存放的指令地址传给MAR(也就是第二条指令的地址),PC再指向下一条指令,此时MAR存放的是第二条指令的地址,因此到存储体中该地址处找到存储的数据(第二条指令),并将该指令放到MDR中,此时数据寄存器MDR将该指令交给指令寄存器IR
  • 分析指令:IR将该指令分成两个部分:操作码和地址码操作码交给控制单元(CU)地址码交给地址寄存器(MAR),CU经分析得知该指令想要执行乘法操作
  • 执行指令:到存储体中MAR中存储的地址对应的存储单元处找到对应的数据,并将该数据放入数据寄存器(MDR),再将该数据输出到乘商寄存器(MQ)中,此时累加寄存器(ACC)中存放的是a的值,MQ中存放的是b的值,再将累加寄存器中的值放入操作数寄存器(X)中,此时控制单元向算数逻辑单元(ALU)发送信号,执行乘法操作:将X中存储的值和MQ存储的值进行相乘再将数据存到累加寄存器(ACC)中
    具体过程如下:
  1. 执行第三条指令
  • 取指令:第二条指令执行结束之后,PC指向的指令是第三条指令,此时将PC中存放的指令地址传给MAR,PC再指向下一条指令,此时MAR存放的是第三条指令的地址,因此到存储体中该地址处找到存储的数据(第三条指令),并将该指令放到MDR中,此时数据寄存器MDR将该指令交给指令寄存器IR
  • 分析指令:IR将该指令分成两个部分:操作码和地址码,操作码交给控制单元(CU),地址码交给地址寄存器(MAR),CU经分析得知该指令想要执行加法操作
  • 执行指令:到存储体中MAR中存储的地址对应的存储单元处找到对应的数据,并将该数据放入数据寄存器(MDR),再将该数据输出到通用寄存器(X)中,此时累加寄存器(ACC)中存放的是a*b的值,通用寄存器中存储的是c的值,此时控制单元向算数逻辑单元(ALU)发送信号,执行加法操作:将ACC中存储的值和X中存储的值进行相加,再将数据存到累加寄存器(ACC)中。
    具体过程:
  1. 执行第四条指令
  • 取指令:第三条指令执行结束之后,PC指向的指令是第四条指令,此时将PC中存放的指令地址传给MAR,PC再指向下一条指令,此时MAR存放的是第四条指令的地址,因此到存储体中该地址处找到存储的数据(第四条指令),并将该指令放到MDR中,此时数据寄存器MDR将该指令交给指令寄存器IR
  • 分析指令:IR将该指令分成两个部分:操作码和地址码,操作码交给控制单元(CU),地址码交给地址寄存器(MAR),CU经分析得知该指令想要执行存数操作
  • 执行指令:将累加寄存器(ACC)中存储的数据放入数据寄存器(MDR)中,通过数据寄存器MAR中存储的地址找到存储体中对应的存储单元,此时将MDR中存储的数据放入这个存储单元即可。
    具体过程:
  1. 执行第五条指令
  • 取指令:第四条指令执行结束之后,PC指向的指令是第五条指令,此时将PC中存放的指令地址传给MAR,PC再指向下一条指令,此时MAR存放的是第五条指令的地址,因此到存储体中该地址处找到存储的数据(第五条指令),并将该指令放到MDR中,此时数据寄存器MDR将该指令交给指令寄存器IR
  • 分析指令:IR将该指令分成两个部分:操作码和地址码,操作码交给控制单元(CU),地址码交给地址寄存器(MAR),CU经分析得知该指令想要执行停机操作
  • 执行指令:利用操作系统中学习的中断处理机制结束该进程
    具体过程:

四、计算机软件

  1. 系统软件和应用软件
    在计算机中,将软件按照其功能分为两类:系统软件和应用软件
  • 系统软件:保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户。常见的系统软件主要有:操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务型程序。反正就是一些看上去高大上的软件
  • 应用软件用户为解决某个应用领域中的各种问题编写的程序,如各种科学计算类程序、工程设计程序、数据统计与处理程序。
  1. 三个级别的语言
  • 机器语言二进制代码(指令),机器语言是计算机唯一认识的语言,也就是计算机考研直接识别和执行机器语言。
  • 汇编语言:汇编语言是用一些符号或者缩写来代替二进制语言的语言。优点:相比于二进制的机器语言,能够更加方便人们记忆和理解。缺点:计算机不认识汇编语言,所以,当使用汇编编写的程序要上计算机执行的时候,需要先使用一个汇编程序汇编语言转化为计算机能够识别和执行的二进制机器语言,才能够被计算机识别和执行。
  • 高级语言:现代程序员经常使用的语言,如:C、C++、Java等。优点:相比于汇编语言,更加能够被人类所理解和记忆。缺点:与汇编语言类似,计算机不认识高级语言,所以当使用高级语言的程序想要上计算机运行的时候,需要先将高级语言转化为计算机能够识别和执行的二进制机器语言。这里转化的方法有两种:
    • 将高级语言经过编译程序编译形成汇编语言,然后再经过汇编程序形成二进制机器语言
    • 直接将高级语言翻译成二进制机器语言
  1. 翻译程序
    上面我们已经知道,计算机只认识二进制的机器语言,所以汇编语言和高级语言计算机都不认识,但是我们写好的程序是需要上计算机运行的,所以此时需要先将汇编语言或者高级语言转化成计算机能够识别的机器语言才能够上计算机运行,实现这个转化过程的程序就是翻译程序。下面介绍常见的翻译程序:
  • 汇编程序:将汇编语言转化为机器语言的程序
  • 解释程序:将高级语言逐条解释成机器语言的程序(逐条处理)
  • 编译程序:将高级语言翻译成汇编语言或者机器语言的程序(一起处理)
    上面的解释程序和编译程序有一个相似的功能,就是都能够将高级语言转化成机器语言,它们的区别是:解释程序是逐条对高级语言进行翻译,而编译程序是对整个程序中的高级语言进行编译,显然解释程序的效率比较低,编译程序的效率比较高

五、计算机系统的层次结构(计算机组成原理的划分)

计算机系统的层次结构具体如下:

  • 第一层是微程序机器层:这一层主要是硬件层由硬件直接执行一些微指令。那么什么是微指令呢?在前面我们学习计算机执行一条指令的过程中,我们发现会分为很多的小步骤,而这些小步骤就是所谓的微指令。如:

  • 第二层是传统机器语言层:这一层也是实际的机器层,执行的就是前面介绍的二进制机器指令,由微程序解释机器指令系统,就是将二进制的机器指令解释成微指令。如:

  • 第三层是操作系统层:由操作系统程序实现,操作系统程序主要由机器指令和广义指令(系统调用)组成,广义指令就是操作系统中学习的系统调用接口,主要是扩容硬件功能的,方便用户使用系统资源而设置的接口。因为这一层出现了硬件和软件,所以这一层也叫做混合层

  • 第四层是汇编语言层:为用户提供一种符号化的语言(汇编语言),因此支持编译汇编语言程序

  • 第五层是高级语言层:主要面向用户,支持用户使用高级语言编写程序
    上面的每一层之间是紧密联系的,低层是高层的基础,高层是低层的扩展。

  • 裸机:没有配备软件(系统软件和应用软件)的纯硬件机器(上面的第一层和第二层:纯机器)

  • 虚拟机:包含软件实现的机器就是虚拟机(上面的第三层,第四层和第五层:加入了软件)

六、计算机的性能指标(重点)

1. 存储器性能指标

在这里我们主要研究主存储器的性能指标,前面我们知道了主存储器中的结构:存储体,地址寄存器(MAR),数据寄存器(MDR),如下:

1. 字长

指计算机进行一次整数运算能够处理的二进制的位数,字长一般等于**内部寄存器(数据寄存器(MDR))**的大小,字长越长,数据表示的范围就越广

2. 主存储容量

指主存储器中所能存储信息的最大容量,通常以字节进行衡量,也可以用字数(数据数)*字长来表示存储容量。我们知道:地址寄存器MAR的位数表示存储体中存储单元的个数,数据寄存器MDR表示存储的信息的字长(存储字长),所以MAR的位数表示字数,MDR的位数表示字长。如:MAR为16位,则字数为2^16 = 64K个,MDR的位数为32,则表示字长为32位,故存储的容量为:64K * 32位(bit)

2. CPU性能指标

CPU是以相同的波动幅度(每一次波动幅度执行一条微指令)进行工作的,每一次相同的波动幅度就是一段周期,每一个周期执行指令中的一个步骤(微指令),具体如下:

1. CPU的时钟周期

一次振荡波动(一条微指令)经历的时间间隔

2. CPU主频

CPU内数字脉冲信号震动的频率,是衡量CPU速度重要的参数,对于同一个型号的CPU,其主频越大,说明时钟周期(完成指令的 一个执行步骤:微指令)越小,执行指令的速度越快,计算公式为:1/CPU时钟周期,通常以赫兹为单位,1HZ表示每秒执行一次(一个微指令)

3. CPI

执行一条指令需要的周期数,可以表示一条指令中存在多少条微指令。因此,执行一条指令需要的时间为:CPI*CPU的时钟周期周期用CPU主频的倒数进行计算

4. CPU执行时间

指运行一个程序需要花费的时间,也就是一个程序中所有指令被执行完需要的时间,我们可以理解为CPU将一个程序中所有微指令执行完所需要的时间。所以现在问题就转化为求这个程序中包含的微指令数和CPU的时钟周期,时钟周期可以通过CPU主频进行计算一条指令中包含很多的微指令,每一条微指令执行的时间就是一个CPU时钟周期,CPI表示一条指令执行需要的周期数,所以就能够间接表示一条指令包含的微指令数,CPI指令数 = 总微指令数,CPU时钟周期 = 1/CPU主频,所以**CPU执行时间 = 微指令数CPU时钟周期 = (CPI*指令数)/ CPU主频**。

5. IPS/MIPS

IPS指每秒执行的指令数,单位是条,MIPS的单元是百万条。

6. FLOPS/MFLOPS/GFLOPS/TFLOPS/PFLOPS

指一秒能够执行的浮点数的运算的次数,它们的差别只是单元不同,FLOPS的单元是次数MFLOPS的单元是百万(10^6)次GFLOPS的单元是十亿(10 ^ 9)次TFLOPS的单元是万亿(10 ^ 12)次。这个单元需要和存储容量的单元进行区分,存储单元中的K,M,G,T是2的整数次幂,如:1K = 2 ^ 10,1M = 2 ^ 20, 1G = 2 ^ 30 ,1T = 2 ^ 40

3. 基准程序

基准程序是专门用来性能评价的一组程序(本质就是一些指令组成的程序),能够很好反应机器在运行实际负载时的性能,可以通过在不同机器上运行相同的基准程序来比较不同机器上的运行时间,从而评测其性能,不同的机器上运行相同的基准程序,运行时间越短,说明机器的性能越高,运行的时间越长,说明机器的性能越低。是一种相对的关系。
但是基准程序具有一些缺陷:基准程序的性能可能与某一段短代码密切相关,硬件系统设计人员或者编译器开发人员可能针对这些代码片段进行优化,使得这些代码运行起来比较快,以至于得不到准确的性能评测结果。所以一般情况下,通过基准程序进行评测都会出现机器的性能较高的情况,不符合实际。

七、题目

1.题目一
操作系统属于系统软件,编译程序属于语言处理程序,所以属于系统软件,连接程序属于服务性程序,也属于系统软件,故本题应该选择D,文本处理属于应用软件。
2. 题目二

本题考察编译程序和解释程序的比较,其中编译程序能够直接将整个高级语言程序转化成机器能够识别的可执行程序(二进制指令),翻译程序是边进行编译边执行指令的,其过程是将一条高级语言翻译成二进制之后,就进行执行该指令,所以显然相比之下,翻译程序的速度会稍微比较慢。
3. 题目三

数据库系统是指在计算机引入数据库之后的系统,一般由数据库,数据库管理系统、应用系统、数据管理员构成,其中的数据库管理系统是系统软件,数据库系统不是系统软件。操作系统显然属于系统软件,编译程序属于语言处理程序,所以属于系统软件。故本题选择A。
4. 题目四

相联存储器与传统存储器不同,相联存储器既可以按照地址寻址,又可以按照内容(通常是某些字段)寻址,为了和传统存储器区分,相联存储器又称按内容寻址的存储器。
5. 题目五

数据和指令确实都是以二进制的形式存储在存储体中,但是CPU可以根据指令周期的不同阶段来区分是指令还是数据,我们知道一个指令在执行的过程中需要经历三大过程:取指令,分析指令,执行指令,显然,如果是发生在取指令期间,则取出的信息就是指令,如果发生在执行指令期间,此阶段指令显然已经被取出,所以这个阶段取出的信息就是数据。
指令一般的执行过程,首先将PC存储的地址传给MAR,然后再通过MAR中存储的地址找到对应的存储单元,此时是取指令操作。然后将取出的指令放到MDR中,接着将这个指令传给指令寄存器IR,然后将指令分成两个部分:操作码和地址码。操作码部分传给控制单元CU进行分析,地址码传给MAR方便找到数据的存储单元从而访问或者写入数据,如果是取数据操作,则将该存储单元中存储的值放到MDR中,接下来才会将这个值传给对应的寄存器(累加寄存器ACC,乘商寄存器MQ,操作数寄存器X),然后控制单元CU会向算数逻辑单元ALU发送信号然后ALU执行对应的计算,再将计算结果存入累加寄存器中。
6. 题目六


本题考察机器字长,指令字长,存储字长的相关概念。
机器字长:也是机器的位数,是指计算机进行一次计算能够处理的最高二进制位的长度。比如:一个计算机的机器字长是64位,就表示这个计算机一次性能够处理64位的二进制计算。
存储字长:一个存储单元的二进制位的长度,通常也是MDR的位数
数据字长:是指数据总线一次性能够传送的二进制的长度
I和II 这三者可以相等,可以不相等,具体以计算机的实现为准
III存储字长就是放在一个存储单元中的二进制代码的位数,故正确
IV 数据字长是数据总线一次传送的二进制的长度,和MDR没有关系,故错误

  1. 题目七

    首先要理解什么是透明的,其实就是不可见的意思。程序计数器(PC)存储的是下一条指令的地址,指令寄存器(IR)存储的是当前执行指令的地址,状态寄存器(PSW)存储的是CPU当前的状态(内核态or用户态),通用寄存器存储的是一些操作数或者中间结果,在使用汇编语言进行编程的时候,汇编程序员可以使用JMR指令来设置PC的值,故程序计数器对程序员是可见的,故A错误。指令寄存器(IR),地址寄存器(MAR),数据寄存器(MDR)属于CPU内部的工作寄存器,程序员并不需要关心,状态寄存器和通用寄存器是程序员可以知道的,我们经常看到的汇编代码中都有将一个变量的值mov到某一个寄存器中,这些寄存器就是通用寄存器。

  2. 题目八

    CPI表示的是一条指令执行的时钟周期数,而时钟周期数和微指令的数目有关系,一条指令有多少条微指令,就需要多少个周期,所以和时钟频率没有关系。但是时钟频率能够改变指令执行的速度。

  3. 题目九

    I 会计电算化属于数据处理的应用,不属于科学计算的应用
    II 决定计算机精度的主要技术是计算机的字长,计算机的字长越大,代表的数据范围越大,计算机处理的精度越高
    III 计算机的运算速度指标的含义是每秒能够执行的二进制指令的数目
    IV利用大规模集成电路技术把计算机的运算器和控制器组装在一块集成的电路芯片是CPU,不是单片机

  4. 题目十

    I 提高CPU始终频率显然能够提高CPU执行指令的速度,所以能够缩短执行程序时间
    II 优化数据通路结构中能够提高数据字长,从而使每次传输数据的二进制的位数变长,传递的次数就会减少,显然也能够提高指令的执行效率,从而缩短指令的执行时间
    III 对程序进行编译优化能够得到优质的二进制指令,从而使执行程序的效率变高

  5. 题目十一


    其中CPU执行90s,所以IO执行10s,假设CPU执行的指令数为1,则CPU执行的速度为1/90,现在CPU的速度提高50%,所以现在的CPU速度是1/90*(1+1/2) = 1/60,所以现在的CPU执行原来的指令需要的时间为:1/(1//60) = 60s,再加上IO执行的10s不变,所以一共是70秒。故选择D

  6. 题目十二

    本题考察MIPS的计算,首先需要知道MIPS的计算公式:CPU主频/(CPI*10^6)
    CPI = 2 * 0.5+4 * 0.1+3 * 0.2+5 * 0.2 = 3,所以MIPS = 1.2 * 10 ^ 9/(3 * 10 ^ 6) = 400

  7. 题目十三

机器字长是指CPU内部用于整数运算的数据通路的宽度。CPU内部数据通路是指CPU内部的数据流经的路径或者路径上的部件,主要是CPU内部进行数据运算、存储和传送的部件,这些部件的宽度基本上要一致才能够匹配。所以,机器字长等于CPU内部用于整数运算的运算器位数和通用寄存器的宽度

计算机组成原理——系统概述

计算机组成原理

 

第一章   系统概述

 

计算机系统:

 

硬件:组成计算机的各种实体。

软件:泛指各种程序和文件。

 

(运算器、控制器)=>中央处理单元CPU

存储器、输入设备、输出设备

这五大设备通过总线和接口连接起来,成为一台计算机。

 

1.运算器

技术分享图片

一次能算多少位

若32位,则寄存器可存的位数是32位。

若32位算64位数就要算两次。一次是高32位,一次是低32位。

 

2.存储器

存储器存储的是信息(指令和数据)。

存储器存储的都是0或1表示的二进制代码。

目前用半导体器件触发器来作为存储器,一个半导体器件可以记忆一个二进制代码。

一个数假定用16位二进制代码来表示,那么需要有16个触发器来保存这些代码。

 

存储元(一个触发器):保存一位二进制数。

存储单元:若干个存储元构成一个存储单元。

地址:存储器是由许多存储单元构成,每个存储单元的编号称为地址。

存储容量:存储器所有存储单元的总数。

 

通常单位kb,mb,gb….

        K表示的是2^10 m表示的是2^20…

 

64kb 则由64k个存储单元。64*2^10个..

B byte 8个存储元——一个存储单元

 技术分享图片

3.控制器

作用:执行程序

1.取一条指令->分析指令->执行指令

2.保证程序按规定的序列来执行

3.对各种异常情况进行响应和处理

 

(1)计算程序

运算器只能完成加减乘除四则运算,及一些其他辅助操作,对于比较复杂的算题,计算机在运算前必须化为多步简单的加减乘除等基本操作来做。

技术分享图片

上面为算法。

取数(9)=>算盘 这里括号代表地址9

技术分享图片

存储器 上图中带有指令的二进制数

 

(2)指令的形式

指令的内容由两部分组成,即操作的性质和操作的地址。前者称为操作码,后者称为地址码。

 

操作码:指出指令所进行的操作,如加减乘除取余、存数等。

地址码:表示参加运算的数据应从存储器哪个单元取出来,运算结果应存到哪个单元。

技术分享图片

指令的操作码是二进制代码。

地址码部分和数据也是二进制数。

那么整个存储器的内容全部变成了二进制的代码或数据。

 

将指令放到存储器中叫存储程序。

存储器的任何位置既可以存数据也可以存指令,但是一般将指令和数据分开存。

控制器依靠存储的程序来控制全集协调地完成计算任务叫做程序控制。

存储程序并按地址执行就是冯诺依曼型计算机的设计思想,也是机器自动化工作的关系。

 

(3)控制器的基本任务

计算机进行计算时,指令必须按一定的顺序一条接一条的执行。

控制器的基本任务就是按照计算程序所排的指令序列,先从存储器中去出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。

接着从存储器中取出第二条指令,再执行第二条指令。

通常把取指令的一段时间叫做取指周期,而把执行指令的一段时间叫做执行周期。

因此 控制器反复交替地处在取指周期与执行周期之中,每取出一条指令,控制器中指令计数器就加1,从而为取下一条指令做好准备,这也就是指令为什么在存储中顺序存放的原因。

技术分享图片

4.适配器与输入输出设备

 

 输入设备把人们所熟悉的某种信息形式变换为机器内部所能接受的二进制信息形式

 输出设备把计算机处理的结果变换为人或其他机器所能接收和识别的信息形式。

 

计算机的输入/输出设备通常称为外围设备(外设)。

由于种类繁多且速度各异,因而他们不是直接地同高速工作的主机相连接,而是通过适配器部件与主机相连接。

 

显示器通过适配器(显卡)

网络通过适配器(网卡)

 

冯诺依曼思想的基本要点:

(1)   采用二进制形式表示数据和指令

(2)   由输入设备输出设备运算器存储器和控制器五大部件组成。

(3)   采用存储程序方式

存储程序方式是冯诺依曼思想的核心。

(4)   指令和数据以同等地位存于存储器,可按地址寻访,程序和数据统一存储。

(5)   指令以操作码和地址码组成

(6)   以运算器为中心

 

1.2.2 计算机的软件

 

 1.目的(目标)程序 (机器程序)

计算机能唯一识别的,都是由二进制组成。

用机器语言

 

2.汇编语言

为了编写程序方便和提高效率,人们用一些约定的文字符号和数字按规定的格式来表示各种不同的指令。

  例如:001=>add

 

3.源程序

  算法语言比较接近数学语言,直观通用,与具体机器无关,便于学习,便于推广使用计算机。

 

高级语言的处理过程

高级语言 (编译)=>    汇编语言 (汇编)=>    机器语言

 这个过程比较复杂    这个过程比较简单因为一般都有一一对应关系

技术分享图片

1.3 计算机的性能指标

 

机器自长 指处理机运算器中一次能够完成二进制数运算的位数。当前处理机的字长有8位、16位、32位、64位。字长越长,表示计算的精度越高,与CPU中的寄存器位数有关。

 

吞吐量 表征一台计算机再某一时间间隔内能够处理的信息量,单位是字节/秒(B/S)。

 响应时间 表征从输入有效到系统产生响应之间的事件度量。用单位时间来度量,例如微妙(10^-6)、纳秒(10^-9)。

 

利用率 表示在给定的时间间隔内,系统被实际使用的时间所占的比率,一般用百分比表示。

(在给定的时间间隔内,比如在1s内,有0.5s运算器在运算,这里它的利用率是50%)

 

总线宽度 一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数。

 如果计算机是16位的(运算器是16位的),总线只有8位,速度会受影响。

 

存储器容量

存储器带宽

存储器的速度指标,单位时间内的…

主频/时钟周期

技术分享图片

Khz mhz ghz 2^10(10^3)   2^20(10^6)  2^30(10^9)...

 

奔腾 60Mhz

 

每秒钟有60*10^6个时钟周期,每个时钟周期所占的时间是1/60*10^6 秒。

 

CPU执行时间

 

表示CPU执行一段程序所占用的CPU时间,可用下式计算:

CPU执行时间= CPU时钟周期数* CPU时钟周期长

 

*CPI(Clock cycle Per Instruction) 

技术分享图片

表示每条指令周期数,即执行一条指令所需的平均时钟周期(clock cycle)数,用下式计算:

CPI = 执行某段程序所需的CPU时钟周期数/该程序所含的指令条数

 

*MIPS

(Million Instructions Per Second)

 表示每秒百万条指令数,用下式计算:

MIPS是1,每秒能执行一百万条指令数。

MIPS是8,每秒能执行八百万条指令数。

技术分享图片

MIPS = 指令条数/程序执行时间*10^6

 

 

MFLOPS(Million Floating-point Operations per Second)

表示每秒百万次浮点操作次数,用下式计算:

技术分享图片

MFLOPS  程序中的浮点操作次数/程序执行时间*10^6

表示存储的Gb中G是2的30次方,

表示速度的Ghz中G是10的9次方

 

以上是关于408之计算机组成原理计算机系统概述的主要内容,如果未能解决你的问题,请参考以下文章

向题看齐408之计算机组成原理概念记忆总结

向题看齐408之计算机组成原理概念记忆总结

(王道408考研操作系统)第一章计算机系统概述-第一节4:中断和异常

专栏必读(计算机组成原理题目题型总结)计理期末考试&408统考算机组成原必考题型总结

408计算机组成原理—计算机基础

专栏必读王道考研408计算机组成原理万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图