计算机组成原理自学笔记

计算机组成原理自学笔记

本笔记参考书籍是唐朔飞的《计算机组成原理》第三版

第一章 计算机系统概论

1.1 计算机软硬件的概念

计算机由硬件和软件构成

硬件:是由人们事先编制的具有各类特殊功能的程序组成,通常存放在计算机的主存或辅存中,包括 RAM、ROM、磁带、光盘、纸带等

软件:分为系统软件应用软件

  • 系统软件称为系统程序,用来管理整个计算机系统,监视服务,使资源能够合理使用。他包括:标准数据库、语言处理程序、数据库管理系统、网络软件等
  • 应用软件又称应用程序,根据用户需求编制的软件

1.2 计算机系统的层次结构

用户编写的高级程序会经过计算机将其翻译成及识别的机器语言程序,计算机运行后输出结果

请添加图片描述

实际机器的概念:直接执行机器语言的机器称为实际机器M1

请添加图片描述

两级层结构的计算机系统:具有翻译汇编语言功能的计算机看做一台机器M2,那么可以认为M2在实际机器M1之上,用户可以利用M2的翻译功能直接向M2输入汇编语言程序,经过M1翻译后输入给M1,M1将执行后的结果输出。这种具有翻译功能的机器M2,也被称作 虚拟机

请添加图片描述

三级层次结构的计算机系统:随着高级语言的出现,在进入机器M1运行之前,必须先将高级语言翻译成汇编语言程序,在将其翻译成机器语言程序(也可以直接将高级语言程序翻译为机器语言程序),这些工作是由虚拟机器M3来完成的

请添加图片描述

翻译程序:

将高级语言翻译成机器语言的软件。通常分为两类:

  • 编译程序:将用户编写的高级程序一次性全部翻译成机器语言,然后再执行。例如FORTRAN、Pascal等
  • 解释程序:将源程序逐句翻译,逐句执行。如此重复直到源程序完成全部翻译任务。例如Python
微程序:

机器M1内部可以向下延伸而形成下一级的微程序机器M0,机器M0是直接将机器M1中的每一条机器指令翻译成一组微指令,即构成一个微程序。机器M0每执行完对应于一条机器指令的一个微程序后,便由机器M1中的下一条机器指令使机器M0进入相对应的另一个微程序的执行。由此可见,微程序机器M0可以看做是对实际机器M1的分解

请添加图片描述

多级层次结构的计算机系统:

实际上在实际机器M1和虚拟机器M2之间还有一级虚拟机器,它是由操作系统软件构成的。操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些基本操作,还起到控制并管理计算机系统全部硬件和软件资源的作用

请添加图片描述

虚拟机器M4还可向上延伸,构成应用语言虚拟机。这一级是为使计算机满足某种用途而专门设计的,该级所用的语言是各种面向问题的应用语言,如用于人工智能和计算机设计等方面的语言。应用语言编写的程序一般由应用程序包翻译到虚拟机器M4上

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

概念区分:
  • 计算机体系结构是指能够被程序员看到的计算机系统的属性,即概念性的结构与功能特性。其中计算机系统属性是指用机器语言编程的程序员所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等,是很抽象的属性。
  • 计算机组成是指如何实现计算机体系结构所体现的属性,包含的是对程序员来说透明的细节。指令系统体现了机器的属性,属于计算机结构问题,但是这些指令是如何实现的,属于计算机组成问题。再比如,一台机器是否有乘法指令,这是计算机结构问题,但是乘法指令的实现方式是计算机组成问题

计算机的基本组成

冯·诺依曼计算机的特点
  • 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成
  • 指令和数据以同等地位存放在存储器内,并可按地址寻访
  • 指令和数据均用二进制表示
  • 指令由操作码地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
  • 指令在存储器内按顺序存放。通常是按顺序执行的
  • 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器来完成

请添加图片描述

现代的计算器已转变为以存储器为中心

请添加图片描述

各部件功能
  • 运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内
  • 存储器用来存放数据和程序
  • 控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果
  • 输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等
  • 输出设备可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等

由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,在大规模集成电路上往往集成在同一芯片上,所以通常将他们两个合称为 中央处理器

输入设备和输出设备简称为 I/O设备

这样的话计算机组成就可分为三个部分:中央处理器(CPU)、存储器和I/O设备

请添加图片描述

  • 主存储器是存储器子系统中的一类,用来存放程序和数据,可以直接与 CPU 交换信息。另一类称为辅助存储器,简称辅存,又称外存
  • 算术逻辑单元 (Arithmetic Logic Unit, ALU) 简称算逻部件,用来完成算术逻辑运算。控制单元(Control Unit, CU) 用来解释存储器中的指令,并发出各种操作命令来执行指令。 ALU 和 CU 是 CPU 的核心部件
  • I/O 设备也受 CU 控制,用来完成相应的输入、输出操作

1.4 计算机的工作步骤

计算机解决一个实际问题通常包含两大步骤:上机前的准备和上机运行

上机前的准备:

建立数学模型 ⇒ \Rightarrow 确定计算方法 ⇒ \Rightarrow 编制解题程序

例子:计算 a ∗ x 2 + b ∗ x + c a*x^{2}+b*x+c ax2+bx+c

请添加图片描述

将上述运算步骤写成某计算机一一对应的机器指令,就完成了运算程序的编写

设某机的指令字长为 16 位,其中操作码占 位,地址码占10位:

请添加图片描述

操作码表示机器所执行的各种操作,地址码表示参加运算的数在存储器内的位置。

请添加图片描述

此例中所用到的数a、b、c、x ,事先需存入存储器的相应单元内

请添加图片描述

计算机的工作过程:

请添加图片描述

主存储器(主存/内存) :包括存储体M,各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码 “0” “1” 。可见,一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。存储字长可以是8位、 16 位或 32 位等。把存储体比作旅馆的大楼,那么每个房间就是一个存储单元,每个床位是一个存储元,上面可以坐着0或者1。

每个存储单元都有自己的地址号,主存的工作方式就是按照存储单元的地址号来实现对存储字各位的存取,这种存取方式称为按地址存取方式。为了能实现按地址访问的方式,主存中还必须配置两个寄存器 MARMDR

MAR(Memory Address Register)是存储器地址寄存器,用来存放预访问的存储单元的地址,其位数对应存储单元的个数(例如MAR为10位,则有 2^(10) 个存储单元。

MDR(Memory Data Register)是存储器数据寄存器,用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字长相等。

早期计算机的存储字长一般和机器的指令字长与数据字长相等,故访问一次主存便可取一条指令或一个数据。随着计算机应用范围的不断扩大,解题精度的不断提高,往往要求指令字长是可变的,数据字长也要求可变。为了适应指令和数据字长的可变性,其长度不由存储字长来确定,而由字节的个数来表示。 1个字节 (Byte) 被定义为由 8位 (bit) 二进制代码组成。例如,4字节数据就是 32 位二进制代码; 2字节构成的指令字长是 16 位二进制代码。当然,此时存储字长、指令字长、数据字长三者可各不相同,但它们必须是字节的整数倍。

运算器 运算器最少包括3个寄存器和一个算术逻辑单元(ALU)。其中ACC为累加器,MQ为商乘寄存器,X为操作数寄存器。这3个寄存器在完成不同运算时,所存放的操作数类别也各不相同。

请添加图片描述

设: M表示存储器的任一地址号,[M]表示对应 地址号单元中的内容; X表示X寄存器,[X] 表示X寄存器中的内容; ACC 表示累加器,[ACC] 表示累加器中的内容; MQ 表示乘商寄存器,[MQ] 表示乘商寄存器中的内容。

假设 ACC 中已存有前一时刻的运算结果,并作为下述运算中的一个操作数,则:
请添加图片描述

请添加图片描述

请添加图片描述

乘法结果高位保留在ACC中,低位保留在MQ中

请添加图片描述

控制器 控制器是计算机的神经中枢

首先控制器要命令存储器读出一条指令,称为取指过程,然后控制器要对这条指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,称为分析过程,最后根据操作数所在的地址以及指令的操作码完成某种操作,成为执行过程。

控制器由程序计数器 (Program Counter, PC) 、指令寄存器 (Instruction Register, IR) 以及控制单元 (CU) 组成。

  • PC 用来存放当前欲执行指令的地址,它与主存的 MAR 之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址。
  • IR 用来存放当前的指令, IR的内容来自主存的MDR。IR 中的操作码 (OP (IR) )送至 CU ,记作 OP(IR) -> CU ,用来分析指令;其地址码 (Ad(IR)) 作为操作数的地址送至存储器的 MAR ,记作 Ad(IR) -> MAR
  • CU 用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。

I/O

I/O 子系统包括各种 I/O 设备及其相应的接口。每一种 I/0 设备都由 I/O 接口与主机联系,它接收 CU 发出的各种控制命令,并完成相应的操作。例如,键盘(输入设备)由键盘接口电路与主机联系;打印机(输出设备)由打印机接口电路与主机联系。


1.5 计算机硬件的主要技术指标

机器字长

机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。字长越长,数的表示范围越大,精度也越高。机器的字长也会影响机器的运算速度。倘若 CPU 字长较短,又要运算位数较多的数据,那么需要经过两次或多次的运算才能完成,这样势必影响机器的运算速度。

存储容量

存储器的容量包括主存容量和辅存容量

主存容量是指主存中存放二进制代码的总位数。即
存储容量=存储单元个数 ∗ 存储字长 存储容量 = 存储单元个数 * 存储字长 存储容量=存储单元个数存储字长

运算速度

吉普森法:考虑每条指令的执行时间以及它们在全部操作中所占的百分比,即:

请添加图片描述

现在机器的运算速度普遍采用单位时间内执行指令的平均条数来衡量,并用 MIPS (Million Instruction Per Second ,百万条指令每秒)作为计量单位。例如,某机每秒能执行 200 万条指令,则记作
2 MIPS 。也可以用 CPI(Cycle Per Instruction) 即执行一条指令所需的时钟周期(机器主频的倒数)数,或用 FLOPS(Floating Point Operation Per Second ,浮点运算次数每秒)来衡量运算速度。


第二章 计算机的发展及应用

2.1 计算机的产生和发展

第一代电子管计算机ENIAC → \rightarrow 第二代晶体管计算机 → \rightarrow 第三代集成电路计算机

请添加图片描述

2.2 微型计算机的出现和发展

集成电路技术把计算机的控制单元和算逻单元集成到一个芯片上,制成了微处理器芯片。芯片集成度不断提高,从在一个芯片上集成成百上于个晶体管的中、小规模集成电路,逐渐发展到能集成成千上万个晶体管的大规模集成电路 (LSI) 和能容纳百万个以上晶体管的超大规模集成电路 (VLSI) 。与此同时,半导体存储器的研制也正在进行。微处理器芯片和存储器芯片出现后,微型计算机也随之问世。从 20 世纪 70 年代初至今,微型计算机的发展在很大程度上取决微处理器的发展,而微处理器的发展又依赖于 芯片集成度和处理器主频的提高

从21 世纪初来看,当前通用微处理器的发展重点将在以下几方面:

  • 进一步提高复杂度来提高处理器性能
  • 通过线程/进程级并行性的开发提高处理器的性能,即通过开发线程级并行性 (ThreadLevel Parallelism, TLP) 或进程级并行性(Process-Level Parallelism, PLP) 来提高性能,简化硬件设计
  • 将存储器集成到处理器芯片内来提高处理器性能
  • 发展嵌入式处理器:目前嵌入式处理器的高性能和低成本技术发展趋势是—体系结构需要在新技术与产品、市场和应用需求之间取得平衡;设计方法趋向于走专用、定制和自动化的道路。

2.3 软件技术的兴起和发展

随着各种语言的出现,汇编程序、编译程序、解释程序的产生,逐渐形成了软件系统

随着计算机应用领域的不断扩大,外部设备的增多,为了使计算机资源让更多用户共享,又出现了操作系统。

操作系统能协调管理计算机中各种软件、硬件及其他信息资源,并能调度用户的作业程序,使多个用户能有效地共用一套计算机系统。。操作系统的出现使计算机的使用效率成倍地提高,并且为用户提供了方便的使用手段和令人满意的服务质量。例如, DOS UNIXWindows 等。

随着计算机在信息处理、情报检索及各种管理系统中应用的发展,要求大量处理某些数据,建立和检索大量的表格。这些数据和表格按一定的规律组织起来,使用户使用更方便,千是出现了数据库。

软件发展的特点:

  • 开发周期长
  • 制作成本昂贵
  • 检测软件产品质量的特殊性:一种软件在刚开始推出时,主要实现其面向领域所需的核心功能,之后逐步集成大量的附加功能。也就是说,要完善一个软件产品,必须在应用过程中不断加以修改、补充。只有使用了一定时间后,才能对软件产品质量进行确定

计算机的应用

  1. 科学计算:科学计算一直是计算机的重要应用领域之一。其特点是计算量大和数值变化范围大。在天文学、量子化学、空气动力学和核物理学等领域都要依靠计算机进行复杂的运算。

  2. 数据处理:数据处理也是计算机的重要应用领域之一

  3. 工业控制和实时控制:通过各种传感器获得的各种物理信号经转换为可测可控的数字信号后,再经计算机运算,根据偏差,驱动执行机构来调整,便可达到控制的目的

  4. 网络技术的应用

    (1) 电子商务:电子商务的含义是任何一个组织机构可利用 Internet 来改变他们与客户、供应商、业务伙伴和内部员工的交流,也可以认为是消费者、销售者和结算部门之间利用 Internet 完成商品采购和支付的过程

    (2) 网络教育:通过教育网络,学生受教可以不受时间、空间和地域的限制,通过网络伸展到全球的每个角落,建立真正意义上的开放式的虚拟学校,每个学生可以在任意时间、任意地点通过网络自由地学习

    (3) 敏捷制造:敏捷制造由两部分组成:敏捷制造的基础结构和敏捷制造的虚拟企业。前者为形成虚拟企业提供环境和条件,后者对市场不可预期的变化做出迅速响应。

    当出现某种市场机遇时,由敏捷制造基础结构所形成的虚拟企业通过网上联络若干个具有核心资格的组织者,他们以各自的资金、技术、厂房、设备等优势,通过国家的法律和彼此的合同,组建成一个虚拟企业。该企业不必有集中的办公场地和固定的组织机构,完全通过网络实现产品的技术设计、制造、网上销售和网上服务,充分发挥各自的优势,以最优化的组合、最低的成本获取最大的利润。这种虚拟企业是在敏捷制造基础结构环境下形成的独立的、实体性的、社会性的团体,同时又是一个动态的联盟,他们可以根据市场的变化和要求,解散原来的虚拟企业,而与新的伙伴组成新的虚拟企业。可见,网络技术的发展对社会原来的固定企业结构形式构成了严峻的挑战。

  5. 虚拟现实

  6. 办公自动化和管理信息系统

  7. CAD(计算机辅助设计)/CAM(计算机辅助制造)/CIMS(计算机集成制造系统)

  8. 多媒体技术

  9. 人工智能

第三章 系统总线

3.1 总线的基本概念

总线是连接多个部件的信息传输线,是各部件共享的传输介质。当多个部件与总线相连时,如果出现两个或两个以上部件同时向总线发送信息,势必导致信号冲突,传输无效。因此,在某一时刻,只允许有一个部件向总线发送信息 ,而多个部件可以同时从总线上接收相同的信息。

总线实际上是由许多传输线或通路组成,每条线可一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。若干条传输线可以同时传输若干位二进制代码,例如, 16条传输线组成的总线可同时传输 16 位二进制代码。

以 CPU 为中心的双总线结构

请添加图片描述

将 CPU 、主存和 I/O 设备(通过 I/O 接口)都挂到一组总线上,便形成单总线结构的计算机:

请添加图片描述

双总线结构和单总线结构相比,最明显的特点是当 I/O 设备与主存交换信息时,原则上不影响 CPU工作,CPU 仍可继续处理不访问主存或 I/O 设备的操作,这就使 CPU 工作效率有所提高

还有一种以存储器为中心的双总线结构

请添加图片描述

它是在单总线基础上又开辟出的一条 CPU 与主存之间的总线,称为存储总线。这组总线速度高,只供主存与 CPU 之间传输信息。这样既提高了传输效率,又减轻了系统总线的负担,还保留了 I/0 设备与存储器交换信息时不经过 CPU 的特点

3.2 总线的分类

  1. 片内总线

    片内总线是指芯片内部的总线,如在 CPU 芯片内部,寄存器与寄存器之间、寄存器与算逻单元ALU 之间都由片内总线连接。

  2. 系统总线

    系统总线是指CPU、主存、I/O设备各大部分之间的信息传输线,又叫版级总线或版间总线

    按系统传输信息的不同,又可以分为三类:数据总线、地址总线和控制总线

         数据总线:数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为 8 位、 16 位或 32 位。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数
         地址总线:地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址。例如,欲从存储器读出一个数据,则 CPU 要将此数据所在存储单元的地址送到地址线上。又如,欲将某数据经 I/O 设备输出,则 CPU 除了需将数据送到数据总线外,还需将该输出设备的地址(通常都经 1/0 接口)送到地址总线上。可见,地址总线上的代码是用来指明 CPU 欲访问的存储单元或 I/O 端口的地址,由 CPU 输出,单向传输。地址线的位数与存储单元的个数有关,如地址线为 20 根,则对应的存储单元个数为2^(20)
         控制总线:由于数据总线、地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻占有总线使用权,需依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。通常对任一控制线而言,它的传输是单向的。例如,存储器读/写命令或 I/0 设备读/写命令都是由CPU 发出的。但对于控制总线总体来说,又可认为是双向的。例如,当某设备准备就绪时,便向CPU 发中断请求;当某部件(如 DMA 接口)需获得总线使用权时,也向 CPU 发出总线请求。此外,控制总线还起到监视各部件状态的作用。例如,查询该设备是处于"忙”还是"闲",是否出错等。因此对 CPU 而言,控制信号既有输出,又有输入
    

    常见的控制线号:

    • 时钟:用来同步各种操作
    • 复位:初始化所有部件
    • 总线请求:表示某部件需要获得总线使用权
    • 总线允许:表示需要获得总线使用权的部件已获得了控制权
    • 中断请求:表示某部件提出中断请求
    • 中断响应:表示中断请求已被使用
    • 存储器写:将数据总线上的数据写至存储器的指定地址单元内
    • 存储器读:将指定存储单元中的数据读到数据总线上
    • I/0 读:从指定的 I/0 端口将数据读到数据总线上
    • I/0 写:将数据总线上的数据输出到指定的 I/0 端口内
    • 传输响应:表示数据已被接收,或已将数据送至数据总线上
  3. 通信总线

通信总线用千计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。

按传输方式可分为两种:串行通信和并行通信

  • 串行通信是指数据在单条 位宽的传输线上,一位一位地按顺序分时传送。如 1 字节的数据,在串行传送中, 1字节的数据要通过一条传输线分8次由低位到高位按顺序逐位传送
  • 并行通信是指数据在多条并行 位宽的传输线上,同时由源传送到目的地。如 1字节的数据,在并行传送中,要通过 8条并行传输线同时由源传送到目的地

近距离传输选并行通信,远距离传输选串行通信

3.3 总线的特性

从物理角度来看,总线由许多导线直接印制在电路板上,延伸到各个部件

请添加图片描述

总线特性包括以下几项:

  • 机械特性:机械特性是指总线在机械连接方式上的一些性能,如插头与插座使用的标准,它们的几何尺寸、形状、引脚的个数以及排列的顺序,接头处的可靠接触等
  • 电气特性:电气特性是指总线的每一根传输线上信号的传递方向和有效的电平范围。通常规定由CPU 发出的信号称为输出信号,送入 CPU 的信号称为输入信号
  • 功能特性:功能特性是指总线中每根传输线的功能,例如地址总线用来指出地址码;数据总线用来传递数据;控制总线发出控制信号
  • 时间特性:时间特性是指总线中的任一根线在什么时间内有效。每条总线上的各种信号互相存在一种有效时序的关系,因此,时间特性一般可用信号时序图来描述

3.4 总线性能指标

  1. 总线宽度

通常是指数据总线的根数,用bit(位)来表示,如8位,16位,32位,64位(8根,16根,32根,64根)

  1. 总线带宽

总线宽带是总线的数据传输效率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用 MBps (兆字节每秒)表示

  1. 时钟同步/异步:总线上的数据与时钟同步工作的总线叫同步总线,与时钟不同步工作的总线叫异步总线

  2. 总线复用:一条信号线上分时传送两种信号

  3. 信号线数:地址总线、数据总线和控制总线三种总线数的总和

  4. 总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等

  5. 其他指标:如负载能力、电源电压(是采用 5V 还是 3.3 V) 、总线宽度能否扩展等

总线的负载能力即驱动能力,是指当总线接上负载后,总线输入输出的逻辑电平是否能保持在正常的额定范围内。

请添加图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值