计算机组成原理笔记(1)

发布时间 2023-09-22 18:16:09作者: yxu0528

0 课程概述

1. 什么是计算机组成原理

  • 组成:计算机硬件系统的逻辑实现
  • 原理:“一般的”,不依托任何具体机型

2. 课程内容

  • 基本部件的结构和组织方式
  • 基本运算的操作原理
  • 基本部件和单元的设计思想

3. 教材

  • 《计算机组成原理(第2版)》 唐朔飞
  • 《计算机组织与设计:硬软件接口技术》 A.Patterson John.L.Hennessy (以MIPS为实例)
  • 《数字设计和计算机体系结构》 Morgan Kaufmann

4. 课程体系

image

5. 区别

  • 计算机系统结构:为什么(分析+评测),并行计算机系统入门
  • 计算机组成原理:怎么做

1.1 计算机系统简介

现代计算机的多态性:sensor, Info. appliance, laptop, PC, server, mainframe, HPC(高性能计算机), 物联网(感应器嵌入各种物体,并普遍连接)。

一、 计算机的软硬件概念

硬件:计算机的实体;

软件:具有各类功能的信息(程序)组成。

  1. 系统软件:管理整个计算机系统(语言处理程序、操作系统、服务性程序、数据库管理系统、网络软件);
  2. 应用软件:按任务需要编制的各种软件。

image

二、 计算机的层次结构

1. 计算机系统

系统复杂性管理的方法1:抽象 (隐藏系统中不重要的细节)。

image

本课主要研究逻辑层和微体系结构层。

2. 程序员视角

image

虚拟机器用软件实现,实际机器和微程序机器用硬件实现,之间是软硬件的接口。

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

计算机体系结构:程序员所见到的计算机系统的属性(指令系统、数据类型、寻址技术,I/O机理) “有无乘法指令”

计算机组成:实现具体的指令 “如何实现乘法指令”

1.2 计算机的基本组成

一、 冯·诺依曼计算机的特点

  1. 计算机由五大部件组成;
  2. 指令和数据以同等地位存于存储器,可按地址寻访;
  3. 指令和数据用二进制表示;
  4. 指令由操作码和地址码组成;
  5. 存储程序;
  6. 以运算器为中心。

二、冯·诺依曼计算机硬件框图

image

实线表示数据通路,虚线表示控制线路。

  1. 运算器:数学运算,逻辑运算;
  2. 存储器:存储数据和程序;
  3. 控制器:指挥程序运行;
  4. 输入设备:将信息转化为机器能识别的形式;
  5. 输出设备:将结果转化为人们熟悉的形式。

问题:

  1. 运算器过于繁忙,成为系统的瓶颈;
  2. 框图不具有层次化的特征。

如何改进?

1. 以存储器为核心

image

2. 现代计算机硬件框图

image

系统复杂性管理的方法2:3'Y

  1. 层次化 Hierachy :划分为多个模块或子模块;
  2. 模块化 Modularity :有明确定义的功能和接口;
  3. 规则性 regularity :模块更加容易被重用。

三、 计算机的工作步骤

1. 上机前的准备

  1. 建立数学模型;
  2. 确定计算方法;
  3. 编制解题程序(程序——完整步骤/指令——单个步骤)。

image

ACC 为累加器。

2. 计算机的解题过程

  1. 存储器的基本组成

    1. 存储体image

      存储体(大楼)——存储单元(房间)——存储元件(床位,0/1表示无人/有人)

      存储单元: 存放一串二进制代码;

      存储字: 存储单元中的二进制代码;

      存储字长: 存储字的长度。

      每个存储单元赋予一个地址,存储单元按照地址寻址。

    2. 存储器地址寄存器 MAR:保存存储单元的地址或编号,反映存储单元的个数。

    3. 存储器数据寄存器 MDR:保存要送入送出存储体的数据(比如送入CPU的),反映存储字长。

    e.g. 设MAR=4位,MDR=8位,存储单元个数16个,存储字长8。

  2. 运算器的基本组成及操作过程

    1. 基本组成image

      ALU算逻运算单元是一个组合电路。组合电路如果撤销输入,也会撤销输出,所以必须在ALU的输入端加上寄存器,保存输入数据(ACC和X);ACC也用于保存结果,因为运算结果长度可能增加,增加乘商寄存器MQ保存多出来的部分。

      不同机型对应的运算器结构可能不同。

    2. 操作过程
      image

      操作有顺序,由控制器控制先后或同时进行。

  3. 控制器的功能及基本组成

    1. 功能:解释指令、保障指令的有序执行;

    2. 基本组成image

      取指令:从程序计数器PC中取出当前欲执行指令的地址;
      分析指令:IR存放当前欲执行的指令,控制单元取出操作数进行分析。

运算器、控制器和存储器构成了计算机的主机。

  1. 主机完成一条指令的过程image

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

1. 机器字长

CPU一次能处理数据的位数,与CPU中的寄存器位数有关;

2. 运算速度

主频、核数、每个核支持的线程数……

吉普森法:指令执行速度的加权平均(静态使用频率、动态使用频率) \(T_M=\sum\limits_{i=1}^n f_i t_i\)

CPI:执行一条指令所需时钟周期数

MIPS:每秒执行百万条指令

FLOPS:每秒浮点运算次数(更科学)

3. 存储容量

存放二进制信息的总位数

主存容量表示方式:存储单元个数*存储字长(如MAR=10,MDR=8,容量1K*8位),字节数

辅存容量表示方式:字节数

2.1 计算机的发展史

image

一、 计算机的产生和发展

1946年 美国ENIAC 十进制运算 由大量电子管构成,功耗大,占地面积大 用手工搬动开关进行编程

现代计算机产生的驱动力:

  1. 需求
  2. 技术发展:电子技术、体系结构技术

以硬件技术为计算机划代的标准:电子管——晶体管——中小规模集电——大规模集电——超大规模集电

IAS:以运算器为中心的冯诺依曼结构计算机

IBM System/360大中小型一系列产品:提出了计算机系统结构,给出了软硬件系统的交界面(软硬件设计可以同时进行);相同体系结构允许软件移植,形成了系列机和兼容机(同一公司,相同体系结构:系列机 / 不同公司,相同体系结构:兼容机)。

二、 微型计算机的出现和发展

微型计算机是使用微处理器的,集成度相对高的,面向个人的计算机。微处理器芯片和存储器芯片为微型计算机发展奠定基础。目前,芯片可集成超过30万个晶体管。

Moore(Intel公司创始人)定律:微芯片上集成的晶体管数目每三年翻两番。

三、 软件技术的兴起和发展

1. 各种语言

机器语言——面向机器(每设计一台新机器,都有不同的指令集,程序难以移植;01代码难以编写),汇编语言——面向机器,高级语言——面向问题(FORTRAN 科学与工程计算 PASCAL 结构化编程 C++ JAVA)

2. 系统软件

语言处理程序(汇编程序、编译程序、解释程序),操作系统,服务性程序(装配、调试、诊断、报错),数据库管理系统,网络软件

3. 软件发展的特点

软件是程序+ 文档(开发、使用、维护)

开发周期长,制作成本昂贵,检测软件产品质量的特殊性(很难把作用域完全测试,代码运行成功也不一定正确,程序分支复杂)

2.2 计算机的应用

科学计算和数据处理,工业控制和实时控制,网络技术,虚拟现实,办公自动化和管理信息系统,CAD/CAM/CIMS, 多媒体技术,人工智能

2.3 计算机的展望

替代传统的硅芯片?——光计算机(利用光子取代电子进行运算和存储),DNA生物计算机,量子计算机