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

第一章 计算机系统概述

1.1 计算机发展历程

1.1.1 什么是计算机系统

  • 计算机系统
    • 硬件:如主机,外设
    • 软件:由具有各类特殊功能的程序组成
      • 系统软件:管理整个计算机系统,操作系统,数据库管理系统,标准程序库, 络软件(TCP/IP),语言处理程序(编译程序,把高级语言翻译成机器语言),服务程序
      • 应用软件:按任务需要编制的各种程序,如QQ,微信
  • 计算机性能的好坏取决于硬件和软件功能的总和。
  • 计组是研究硬件在底层是如何协调工作的。

信息化世界

  • 计算机硬件能识别的数据
    • 计算机硬件唯一能识别的数据是 二进制数0和1
  • 计算机硬件是如何识别0和1这两个二进制数的
    • 用两种电信 ,分别是低电平/高电平来表示0/1
  • 什么是低电平/高电平种电信 可以表示为:
    • 低电平表示二进制0
    • 高电平表示二级制1

CPU或者内存的金属针脚,是这些硬件用来发送或者接受数据的。

那么这些数据是如何进行交换的板上面的印刷电路,可以理解是电线,用来导电,释放低电平或者是高电平这种电信 ,也就是0或者1。

第一台电子数字计算机:ENIAC,1946年,第二次世界大战快结束时期,美国军方用来计算武器的射程等,军方提出的。请的顾问是 冯诺依曼,采用电子管作为逻辑元件。什么是逻辑元件算机在进行数字计算时候,本质是处理一些电信 ,所谓逻辑元件就是用来处理这些电信 的最小基本单元,这台计算机就是把很多很多的逻辑元件用线路连接起来,从而实现用电路来运算的功能,每个电子管的体积是比较大的,总共使用了1.8万个电子管

发展阶段 时间 逻辑元件 速度(次/秒) 内存 外存
第一代 1946-1957 电子管 几千-几万 贡延迟线、磁鼓 穿孔卡片、纸带
第二代 1958-1964 晶体管 几万-几十万 磁芯存储器 磁带
第三代 1964-1971 中小规模集成电路 几十万-几百万 半导体存储器 磁带、磁盘
第四代 1972-现在 大规模、超大规模集成电路 上千万-万亿 半导体存储器 磁带、磁盘、光盘、半导体存储器

第一代:电子管时代

贝尔实验室发明了晶体管,晶体管体积比电子管小很多,计算机的体积也变小了,开始出现面向过程的高级语言:FORTRAN。为了让计算机有自我管理的功能,出现了操作系统的雏形。这个阶段制造一台计算机需要几万到几十万个晶体管,那手动把他们焊接到电路板上,那可能就有几百万个焊接点,这个阶段计算机硬件不是很可靠的,如果有一个焊接点出现问题可能导致计算机无法工作。后来就有人发明了集成电路。

第三代:中小规模集成电路时代

随着集成电路制作工艺的提升,进入到这个阶段,芯片技术进步。

英特尔的CPU发展情况:

1.1.3 计算机软件的发展

1.2 计算机硬件的基本组成

1.2.1 早期的冯诺依曼结构

ENIAC这台计算机的问题是每一步的操作需要执行什么指令,每一步都是需要程序员手动去连接线缆告诉计算机,虽然这台计算机的操作速度快,但是程序员每一次都要手动接线告诉计算机怎么做,因此ENIAC的速度就被手动操作耗时给抵消了,所以为了解决这个问题,冯诺依曼第一次提出了存储程序。

ENIAC这台计算机,是程序员说一句,它做一句,而冯诺依曼提出的带存储程序的计算机,把所有要执行的指令一口气告诉计算机,全部放到主存里,然后计算机一条一条执行指令,程序员不需要手动接线。大幅提升计算速度

1.2.2 现代的计算机结构

也是冯诺依曼结构的优化

1.2.3.3 控制器

  • 控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。
  • 控制器由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成。
    • PC用来存放当前欲执行指令的地址,可以自动+1以形成下一条指令的地址,它与主存的MAR之间有一条直接通路。
    • IR用来存放当前的指令,其内容来自主存的MDR,指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列,而地址码Ad(IR)送往MAR来取操作数。
    • 现代计算机一般是将运算器和控制器集成到同个芯片上,合称为中央处理器,简称CPU。CPU和主存储器共同构成主机,而计算机中主机的其他硬件装置(如I/O)统称为外部设备(简称外设)。也就是说,外设主要包括外存和IO设备。

1.2.3.4 计算机执行过程

计算机的工作过程分为以下几个步骤:

  1. 把程序和数据装入到主存储器中。

  2. 从程序的起始地址运行程序。

  3. 用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址。

  4. 用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止:每一条指令都是在取指、译码和执行的循环过程中完成的。

下面以取数指令(即将指令地址码指示的存储单元中的操作数取出后送至运算器的ACC中)为例,其信息流程如下:

  1. 取指令:PC→MAR→M→MDR→IR

  2. 分析指令:OP(IR)→CU

  3. 执行指令:Ad(IR)→MAR→M→MDR→ACC

    此外,每取完一条指令,还必须为取下条指令作准备,形成下一条指令的地址,即(PC)+1。

    注意:PC指程序计数器PC中存放的内容。PC→MAR应理解为(PC)→MAR,即程序计数器中的值经数据通路送到MAR,也即表示数据通路时括 可省略(因为只是表示数据流经的途径,而不强调数据本身的流动)。但是运算时括 不能省略,即(PC)+1→PC不能写为PC+1→PC。

1.3 计算机系统层次结构

1.4 计算机性能指标

1.4.1 存储器的性能指标

CPI:Clook cyclc Per Instruction,执行一条指令所需的时钟周期数。

同一个CPU,执行不同的指令,CPI不同,甚至是相同的指令,同一个CPU执行多次,CPI也会不同。比如CPU 执行取数指令,跟主存的状态也有关,如果主存负荷较大,那取数时间也会变长,也就是需要更多的时钟周期。所以执行一条执行需要花多少个时钟周期,这个问题我们放在微观视角来看,是毫无意义的,因为影响CPU指标的因素太多,我们一般讨论执行一条执行需要花多少个时钟周期的时候,讨论的是平均值,执行一条指令的耗时=CPI * CPU时钟周期

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月13日
下一篇 2021年5月13日

相关推荐