计算机组成原理 第一章 计算机系统的概述

第一章 计算机系统的概述

1.1计算机发展历程

1.1.1 计算机硬件的发展

1.需要提前知道的概念
  • 逻辑元件:逻辑元件是处理电信号的最小基本单元,通常用于处理逻辑运算(如与门、或门、非门等)和控制电路,是数字电路和逻辑电路的基本构建块,用于构建数字系统和电子设备。
  • 计算机用高|低电频来区分二进制1|0,传输数据本质上就是传送高|低电频的电信号,每个二进制数位称为1bit.
2.计算机四代的变化
  • 第一代计算机(1946-1957年)— 电子管时代。特点:逻辑元件采用电子管;使用计算机语言编程;主存用延迟线或者磁鼓存储信息,容量小;体积庞大,运算速度低。
  • 第二代计算机(1958-1964年)— 晶体管时代。特点:逻辑元件采用晶体管;主存使用磁芯存储器;出现了高级语言和汇编语言,有了操作系统的雏形。
  • 第三代计算机(1965-1971年)— 中小规模集成电路时代。特点:逻辑元件采用中小规模集成电路;半导体存储器取代磁芯存储器;高级语言发展迅速,操作系统进一步发展,开始有了分时操作系统。
  • 第四代计算机(1972年至今)— 超大规模集成电路时代。特点:逻辑元件采用超大规模集成电路,产生了微处理器;
3.计算机元件的更新换代
  • 摩尔定律:价格不变,集成电路晶体管数目,约每隔18个月便会增加一倍,性能也会提升一倍。
  • 半导体存储器的发展:1970年,仙童半导体公司生产出第一个较大容量的半导体储存器,至今,半导体储存器经历了11代。
  • 微处理器的发展:1971年,Intel公司开发出第一个微处理器Intel4044以来,微处理器经历了Intel8008(8位),到Corei7(64位)。这里的8、64位指的是机器字长,是指计算机进行一次整数运算所能处理的二进制数据的位数。

1.1.2 计算机软件的发展

计算机软件技术的发展,促进计算机系统的发展。

计算机语言的发展经历了面向机器的机器语言和汇编语言面向问题的高级语言。其中高级语言的发展真正促进了软件的发展,它经历了从科学计算和工程计算的 FORTRAN、结构化程序设计的 PASCAL到面向对象的C++和适应网络环境的Java。

同时,直接影响计算机系统性能提升的各种系统软件也有了长足的发展,特别是操作系统,如 Windows、UNIX、 Linux等。

1.1.3 计算机的分类与发展方向

1.分类

计算机可以分为:

  • 电子模拟计算机和电子数字计算机。

数字计算机又可以按照用途分为:

  • 专用计算机和通用计算机

  • 通用计算机又分为:巨型机、大型机、中型机、小型机、微型机和单片机6类。

按照指令和数据流可以分为:

  • 单指令流和单数据流系统(SISD),即传统的冯·诺依曼体系结构。
  • 单指令流和多数据流系统(SIMD),包括阵列处理器和向量处理器系统。
  • 多指令流和单数据流系统(MISD),这种计算机实际上不存在。
  • 多指令流和多数据流系统(MIMD),包括多处理器和计算机系统。
2.发展方向
  • 更微型,多用途——例如Arduino、Intel NUC等等
  • 更巨型,超高速——例如我国的天河计算机(Tianhe)、神威计算机(Sunway)等等

1.2 计算机系统层次结构

1.2.1计算机系统的组成

计算机系统 = 硬件系统 + 软件系统

1.2.2 计算机硬件

1.早期的冯·诺依曼机

冯·诺依曼在研究EDVAC机提出了“存储程序”的概念,以该理念为基础的各类计算机通称为冯·诺依曼机

存储程序:指令以代码的形式事先输入到计算机的主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束,无须人为干预。即按地址访问并顺序执行指令。

2.冯·诺依曼机的特点
  1. 计算机硬件系统由五大部件组成(存储器、运算器、控制器、输出设备、输入设备)
  2. 指令和数据以同等地位存于存储器,可按地址寻访。
  3. 指令和数据用二进制表示。
  4. 指令由操作码和地址码组成,操作码指出操作类型,地址码指出操作数的地址。
  5. 存储程序
  6. 运算器为中心
3.冯·诺依曼机的结构

以运算器为中心,基本工作方式:控制流驱动方式

  • 实线是数据线、虚线是控制线和反馈线
    在这里插入图片描述
4.现代计算机结构

以存储器为中心

  • 实线是数据线、虚线是控制线和反馈线
    在这里插入图片描述

对比冯诺依曼机最大的不同,就是以储存器为中心

现代计算机以储存器为中心的冯诺依曼体系结构的优点:

  1. 灵活性:储存器可以存储不同的程序和数据,实现计算机的灵活计算和处理能力。
  2. 共享性:程序和数据存储在同一类型的存储器中,方便共享和传递,提高计算效率。
  3. 独立性:处理器和存储器是独立的实体单元,可以独立进行优化和升级,具有较好的扩展性和可维护性。
  4. 程序控制性:计算机按照程序的指令顺序和逻辑进行运行,实现高度灵活的计算能力。
  5. 抽象层次性:储存器作为底层存储单元,屏蔽底层硬件细节,对上层软件提供统一接口,便于设计、开发和维护计算机系统。
5.计算机的功能部件

在这里插入图片描述

**(1)输入设备:**主要功能是将程序和数据以机器所能识别和接收的信息输入计算机。如:键盘、鼠标、摄像机等。

**(2)输出设备:**是将计算机处理的结果以人们所能接收的形式输出。如:显示器,打印机。

输入/输出设备(简称I/O)设备,是计算机与外界联系的桥梁。

(3)储存器:

  • 组成:储存器分为主存储器(内存储器,CPU能直接访问)和辅助存储器(外存储器,如硬盘,辅助存储器的信息需要导入到主存储器中,才可以被CPU访问)

  • 主存储器:主存储器的工作方式是按存储单元的地址进行存取,这种方法称为按地址存取方法。

    主存储器的最基本组成如图所示。

    在这里插入图片描述

    存储体存放二进制信息,地址寄存器(Memory Address Register, MAR)存放访问地址,经过地址译码后找到所选的存储单元。数据寄存器(Memory Data Register, MDR)用于暂存要从存储器中读或写的信息

    存储体由许多存储单元组成,每个存储单元包含若干个存储元件,每个存储元件存储一位二进制0或1,因此一个存储单元可以存储一串二进制码,称这串代码为存储字(word),称这串代码的位数为存储字长,存储字长可以是1B(8bit)或者是字节的偶数倍。

    MAR的位数对应着存储单元的个数(地址码长度);MDR的位数对应着存储字长

    注:在现代计算机中MAR与MDR却是存在于CPU中的

**(4)运算器:**运算器是计算机的执行部分,用于进行算术运算和逻辑运算。

  • 运算器的核心是算术逻辑单元(Arithmetic and Logic Unit,ALU),还包括累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,前三个是必备的。
    在这里插入图片描述
    运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否有溢出、有无产生进位和借位、结果是否为负数。

**(5)控制器:**控制器是计算机的指挥中心,指挥各部件协调地进行工作。控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。

  • PC用来存放当前欲执行指令的地址,它与主存的MAR有一条直接通路。
  • IR用来存放当前的指令,其内容主要来着与主存的MDR,指令中的操作码OP(IR)会被送至CU,用以分析指令发出各种微操作命令序列,而地址码Ad(IR)送往MAR,用以取操作数。

一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU),CPU和主存储器共同构成主机。CPU存取速度:寄存器>Cache>内存。

1.2.3 计算机软件

计算机软件,一般分为系统软件和应用软件。

1.系统软件和应用软件
  • 系统软件包括 操作系统,数据库管理系统,语言处理系统(比如编译器),分布式软件系统,网络软件系统,标准库系统,服务性系统(比如连接程序)。

    注意:数据库管理系统并不是数据库系统,数据库系统是指计算机系统引入数据库后的系统,一般由数据库系统,数据库管理系统,应用系统,数据库管理员构成,其中数据库管理系统才是系统软件。

  • 应用软件包括各种科学计算类程序,工程设计类程序,数据统计与处理程序。

2.三个级别的语言
  • 机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言

  • 汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。

  • 高级语言。高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。

    将高级语言转换成机器语言的软件系统叫做翻译程序,翻译程序有以下三大类:

    1. 汇编程序(汇编器):将汇编语言翻译成机器语言的程序
    2. 解释程序(解释器):将原程序中的语句逐条按顺序翻译成机器指令并且立即执行。多次执行,每次执行的时候都要重新翻译。更灵活,更容易调试。例如 JavaScript、python
    3. 编译程序(编译器):将高级语言翻译成汇编语言或者机器语言程序。生成exe文件,多次执行,只需要翻译一次,效率更高。例如 C、C++

由高级语言转换到汇编语言的过程叫做编译,由汇编语言转换到机器语言的过程叫做汇编,边翻译边执行的叫做解析

1.2.4 计算机系统的工作原理

1. 从源程序到可执行文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mdsig8V7-1681993299714)(C:\Users\29969\Desktop\typora笔记图片\计算机组成原理\源程序到可执行文件.png)]

最终可执行文件被保存在磁盘上面

可执行文件通常包括了程序的代码和数据,以及必要的元数据和链接信息。当用户双击该文件或通过命令行运行该文件时,操作系统会将其加载到内存中,并开始执行其中的机器指令,而无需再进行编译或解释。这样,程序就可以在计算机上运行。

2.指令的执行过程
IR存放当下欲执行的指令;PC存放下一条指令的地址;

MAR存放欲访问的存储单元地址;MDR存放从存储单元取来的数据!

地址译码器是主存的构成部分,不属于CPU;地址寄存器虽然一般属于主存,但是现代计算机中绝大多数CPU内集成了地址寄存器!

关于CPU存取速度的比较:寄存器(CPU内部)> Cache(高速的SRAM) > 内存 (SDRAM)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 计算机性能指标

1.3.1 计算机的主要性能指标

  1. 字长

    计算机的位数(机器字长),表示计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数。计算机字长通常选定为字节(8位)的整数倍,通常是2,4,8倍。不同的计算机,字节可能不同

    注意:机器字长、指令字长、存储字长的区别和联系是什么?

    机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。
    指令字长:一个指令字中包含的二进制代码的位数。
    存储字长:一个存储单元存储的二进制代码的长度。等于MDR的位数, 它们都必须是字节的整数倍。
    数据字长:数据总线一次能传送信息的位数,它可以不等于MDR的位数。
    
    指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的2倍;若指令字长等于存储字长,则取指周期等于机器周期。
    
    早期的计算机存储字长一般和机器的指令字长与数据字长相等,因此访问一次主存便可取出一条指令或一个数据。随着计算机的发展,指令字长可变,数据字长也可变,但它们必须都是字节的整数倍。
    
    请注意64位操作系统是指特别为64位架构的计算机而设计的操作系统,它能够利用64位处理器的优势。但64位机器既可以使用64位操作系统,又可以使用32位操作系统。而32位处理器是无法使用64位操作系统的。
    
  2. 数据通路带宽
    数据总线一次所能传送信息的位数。

  3. 主存容量
    主存储器所能存储的最大容量,通常以字节来衡量,MAR的位数反映存储单元的个数,如MAR为16位,表示存储单元为 2 16 2^{16} 216 = 65536个 ;若MDR为32位,则存储容量为:存储单元个数x存储字长( 2 16 2^{16} 216x32位(bit)或 2 16 2^{16} 216x32 /8(Byte))

    补充:计算机的存储单位

    计算机存储单位一般用 bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB来表示,我们经常将Byte简称为B,将KB简称问K。
    1、计算机存储信息的最小单位:  
    位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。
    2、计算机存储容量基本单位是字节
       字节 byte:8个二进制位(bit)为一个字节(B),最常用的单位。 (我也常说一个字节占8位)
        一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。
        英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节大小。
    	1B(Byte 字节)=8bit,
       1KB (Kilobyte 千字节)=1024B,
       1MB (Megabyte 兆字节 简称“兆”)=1024KB,
       1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,
       1TB (Trillionbyte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方),
    
     
    

在这里插入图片描述

  1. 运算速度

    (1)吞吐量和响应时间

    • 吞吐量:指系统在单位时间内处理请求的数量 ;从用户观点看,它是评价计算机系统性能的综合参数
    • 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结构的等待时间

    (2)主频和CPU时钟周期

    • CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要1个时钟周期。(一个脉冲信号要多少秒)

    • 主频(CPU时钟频率)。机器内部主时钟的频率,是衡量机器速度的重要参数。常用的CPU的主频有1.8GHz、2.4GHz、2.8GHz

      1Hz表示每秒一次。(每秒多少个脉冲信号)
      在这里插入图片描述
      (3)CPI(Clock cycle Per Instruction)

    • 即执行一条指令所需的时钟周期数

    (4)==CPU执行时间 === CPU时钟周期(多少个时钟周期)/主频 = (指令条数xCPI)/主频

    (5)IPS(Instructions Per Second) =主频/平均CPI:每秒执行多少条指令;MIPS:每秒执行多少百万条指令
    (6)MFLOPS(Mega Floating-point Operations Per Second)=浮点操作次数/(执行时间x106),即每秒执行多少百万次浮点运算。

    (7)GFLOPS(Giga Floating-point Operations Per Second)=浮点操作次数/(执行时间x109),即每秒执行多少十亿次浮点运算。

    (8)TFLOPS(Tera Floating-point Operations Per Second)=浮点操作次数/(执行时间x1012),即每秒执行多少万亿次浮点运算。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值