计算机组成原理 1 概论

 主要内容

介绍运算器、控制器、存储器结构、工作原理、设计方法互连构成整机的技术。

主要内容:

◼ 数值表示与运算方法

◼ 运算器的功能、组成和基本运行原理

◼ 存储器及层次存储系统

◼ 指令系统

◼ CPU功能、组成和运行原理

◼ 流水线

◼ 系统总线

◼ 输入输出系

 前置知识

  • C语言程序设计
  • 数值逻辑:组合电路、同步电路概念、寄存器传输、有限状态机
  • 汇编语言程序设计:能看懂指令即可
  • Verilog硬件描述语言:作为实验工具(可选)

冯诺依曼体系结构原理

  • 采用二进制
  • 存储程序:将程序存放在计算机的存储器中
  • 程序控制:指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号,实现对计算的控制,完成指令的功能。
  • ·诺伊曼机体系(延续至今)

计算机组成原理 1 概论_第1张图片

  •         主机:CPU (运算器 + 控制器)、内存
  •         总线:地址线、数据线、控制线 
  •         外设:输入设备、输出设备、外存储器

        运算器

        功能:执行算数运算、逻辑运算。

        基本结构:ALU (Arithmetic Logical Unit) 、寄存器、连接通路

计算机组成原理 1 概论_第2张图片

        控制器 

        功能:产生指令执行过程所需要的所有控制信号(电平信号、 脉冲信号),控制相关功能部件执行相应操作。

        产生信号的依据:指令、状态、 时序

        产生方式:微程序、 硬布线。

计算机组成原理 1 概论_第3张图片

存储器 

        功能:存储原程序、 原数据、运算中间结果。

        工作模式:读/写

        工作原理:按地址访问, 读/写数据。

        容量➡地址线数量

        1K➡10

        1M ➡ 20

        1G ➡ 30

计算机组成原理 1 概论_第4张图片

 输入/输出设备

        输入设备:向计算机输入数据(键盘、鼠标、网卡、扫描仪等)

        输出设备:输出处理结果(显示器、声卡、网卡、打印机等)

软件系统

  • 可运行的思想和内容的数字化
  • 思想:算法、规律、方法---程序表达
  • 内容:图形、图像、数据、声音、文字等被处理的对象
  • 软件的表现形式: 程序和数据(以二进制表示的信息)
  • 软件的核心: 算法

        分类

  1.         系统软件:如操作系统、网络系统和编译系统
  2.         应用软件:字处理软件、游戏软件等
  3.         支持软件:开发工具、界面工具等

        计算机层次结构

计算机组成原理 1 概论_第5张图片

        透明性

                本来存在的事物或属性,从某个角度去看,却好像不存在;

                如硬件的特性对C语言程序设计者而言就具有透明性。

        硬件与软件系统间的关系

                相互依存、 协同发展、 逻辑等效性(某些功能软硬都可实现)

                软硬分界线:分界线即软、硬件的接口,是指令操作硬件的入口;

        固件

        固件(Firmware)是嵌入在计算机硬件设备或电子设备中的一种软件类型。与通常在计算机上运行的操作系统不同,固件是直接存储在硬件设备中的软件,通常用于控制设备的基本功能和操作。

  1. 嵌入式系统控制: 固件通常嵌入在各种设备中,如路由器、打印机、数码相机、硬盘驱动器等。它用于控制设备的基本操作,例如启动、初始化、配置和管理硬件。

  2. 硬件交互: 固件直接与硬件交互,执行特定于设备的控制任务。这些任务可能包括处理输入/输出、管理存储、与其他设备通信等。

  3. 持久性存储: 固件通常存储在设备的非易失性存储器中,如闪存或EEPROM(可擦除可编程只读存储器)。这使得固件在设备断电后仍然保持存储。

  4. 更新可能性: 一些设备允许固件进行升级,以修复错误、增加新功能或提高性能。这种更新通常通过特定的流程完成,以确保固件更新的可靠性和完整性。

  5. 与操作系统的区别: 固件与操作系统不同。操作系统是一个更为通用的软件层,负责管理计算机的资源、提供应用程序接口等。固件则更专注于设备级别的控制和操作

        常见的例子包括计算机的主板上的BIOS(基本输入/输出系统)、网络设备上的固件、打印机或扫描仪上的固件等。这些固件负责确保设备能够正确运行,并为设备提供所需的功能。

计算机系统性能评价

      非时间指标

                机器字长

                        指机器一次能处理的二进制位数

  • 由加法器、寄存器的位数决定;
  • 一般与内部寄存器的位数相等(字长);
  • 字长越长,表示数据的范围就越大,精确度越高;
  • 目前常见的有32位和64位字长。

                总线宽度

                        数据总线一次能并行传送的最大信息的位数 

  • 一般指运算器与存储器之间的数据总线位数。
  • 有些计算机内部与外部数据总线宽度不一致:
  • 8086、80286、80386内外数据总线等宽;
  • 8088、80386SX 外部总线宽度8位内部总线宽度 16位;
  • Pentium外总线64位,内总线32位(两条32位流 水线)

                主存容量与存储带宽 

        主存容量:是指一台计算机主存所包含的存储单元总数。

        存储带宽: 指单位时间内与主存交换的二进制信息量, 常用单位B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)。

        时间指标 

                主频f/时钟周期T , 外频、倍频

  • 主频f:CPU内核工作的时钟频率,即CPU内数字脉冲信号振荡的速率,与CPU实际的运算能力之间不是唯一的、直接关系
  • 时钟周期T:也称节拍周期,是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作
  • f 与T的关系:互为倒数, f 越高,T就越小 (f =100MHz时T=10ns, f =1GHz时 T=1ns)。
  • 外频:CPU(内存)与主板之间同步的时钟频率(系统总线的工作频率);
  • 倍频:CPU主频与外频之间的倍数;
  • 主频 = 外频 × 倍频 比如:Pentium 4 2.4G CPU主频 2400M = 133M (外频) × 18 (倍频)

        CPI (Clock cycles Per Instruction) 

         执行一条指令(平均)需要的时钟周期数(即T周期的个数),有单条指令CPI 、一段程序中所有指令的CPI、指令系统CPI 等

        CPI = 程序中所有指令的时钟周期数之和 / 程序指令总数 = \sum(程序中各类指令的CPI ×程序中该类指令的比例)

        IPC (Instruction per Clock):每个时钟周期内执行的指令条数 (并行)

        实际上频率和IPC在真正影响CPU性能。

        准确的CPU性能判断标准应该是:(由英特尔提出并被业界广泛认可)

                CPU性能=IPC(CPU每一时钟周期内所执行的指令多少)×频率(MHz时钟速度)

        MIPS (Million Instructions Per Second)

每秒钟CPU能执行的指令总条数 (单位:百万条/秒)

        MIPS = 指令条数 / (执行时间×10^6) 

                  = 指令条数 / (所有指令CPU时钟周期数之和 / f × 10^6) 

                  = f  / (CPI × 10^6) 

                CPU时间 

                CPU时间 = 程序中所有指令的时钟周期数之和×T

                                = 程序中所有指令的时钟周期数之和 / f 

                执行一段程序所需的时间:CPU时间+ I/O时间 + 存储访问时间+ 各类排队时延等。

                计算CPU时间:

计算机组成原理 1 概论_第6张图片

                或者由MIPS = 指令条数 / (执行时间×10^6) 得:程序执行时间t = 指令数量 / (MIPS ×10^6

计算机性能测试

        测试的基本原理

  •         计算机系统中配置了大量的传感器和寄存器,系统运行的相关参数保存在对应的寄存器中;
  •         通过图形 / 数据方式显示获取的状态数值;
  •         测试程序通过读取相应寄存器的值得到系统运行的状况;

        CPU测试工具

  •         CPUmark : 综合CPU测试,包括系统存储,浮点运算和逻辑运算;
  •         SysID : 测试CPU电压,运行频率,L1 、L2 Cache等;
  •         Hot CPU Tester :可测试机器稳定性,尤其是超频后的稳定性,找出 CPU 的最高超频点或缺陷,还可检测CPU的详细性能指标并给出量化的分数值。

        显卡测试工具

  •         3DMark :除衡量显卡性能外,已渐渐转变成一款衡量整机性能的软件;
  •         N-Bench2: 重点测试CPU以及系统图形性能;
  •         FurMark:通过皮毛渲染算法来衡量显卡的性能及其稳定性。

        硬盘测试工具 

  •         Hard Disk Speed : 硬盘测速软件;
  •         Disk Benchmark : 通过对不同大小的数据块对磁盘读/写速度的影响, 检测硬盘、U盘、 存储卡及其它可移动磁盘的读/写入速率 ;
  •         iometer : 可被配置为基准测试程序的磁盘和网络I/O的负载,可测试磁盘和网络控制器的性能、总线带宽和时延等参数;
  •         HDD Temperature Pro: 硬盘温度探测软件。 

        内存测试工具 

  •         CTSPD :选择主板厂商及型号后可详细测试内存的信息,包括:CAS latency (列地址选通时延)、RAS to CAS delay(RAS到CAS的相对延迟时间)、RAS precharge Trp (RAS预充电时间)、DIMM内存生产厂商和DIMM编号等信息。
  •         Memory Speed: 通过读写不同大小的块状数据来测试内存的性能;
  •         Memory Transfer Timing Utility :通过对源文件和目标文件进行校正和非校正复制,测试内存的读、写速率; 

一些有用的题 

1. (多选)下列关于计算机字长的描述中正确的是

        A字长一般与通用寄存器的位数相同

        B字长一般与存储器数据位相同

        C字长一般与运算器的数据位相同

        D字长一般与存储器的地址位相同

 答案:AC

2. ‎程序必须存放在哪里才能被CPU访问并执行

答案:内存 

3. (多选)下列计算机系统性能评价的描述中正确的是

        A.主频高的机器性能不一定高

        B.同一程序在不同机器上运行时得到的MIPS值不一定相同

        C.程序的CPI值越低,计算机的性能越高

        D.程序MIPS值越高,计算机的性能越高

答案:AB

解析:  C:程序的CPI也可以通过修程序中的指令而变大和变小,因此不能由此确定CPI值越低,计算机性能就越高  D:可通过修改测试程序在一个相对低性能的机器上运行测试测试程序获得一个高的MIPS值。

4. 某计算机指令集中共有A、B、C、D四类指令,它们占指令系统的比例分别为40% 、20%、20%、20%, 各类指令的CPI分别为 2、3、4、5;该机器的主频为600MHZ,则该机的CPI 为 (保留到小数点后一位)

答案:3.2

解析:CPI =  \sum(程序中各类指令的CPI ×程序中该类指令的比例) = 0.4×2  + 0.2×3 + 0.2×4 + 0.2×5

5. 某计算机指令集中共有A、B、C、D四类指令,它们占指令系统的比例分别为40% 、20%、20%、20%, 各类指令的CPI分别为 2、3、4、5;该机器的主频为600MHZ,则该机的MIPS为 (保留到小数点后一位)

答案:187.5

解析:MIPS =  f  / (CPI × 10^6) ,这里f单位正好是MHZ,分子要乘上10^6,因此直接600 / 上道题算的3.2即可。

6. 若某程序编译后生成的目标代码由A、B、C、D四类指令组成,它们在程序中所占比例分别为20%、40%、20%、20%。已知A、B、C、D四类指令的CPI分别为1、2、2、2。现需要对程序进行编译优化,优化后的程序中A类指令条数减少了一半,而其它指令数量未发生变化。假设运行该程序的计算机CPU主频为500MHZ。优化后程序的MIPS为(保留到小数点后一位)

答案:264.7

你可能感兴趣的:(计算机组成原理,电脑)