ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-06-15 22:01:07  阅读:324  来源: 互联网

标签:计算机系统 MAR 计算机 存储器 第一章 PC 指令 概述 CPU


第一章 计算机系统概述

1.1 计算机发展历程

1.1.1 什么是计算机系统

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

信息化世界信息化世界

CPU

内存

硬盘

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

通过电信号传递数据

硬件

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

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

在这里插入图片描述

1.1.2 计算机硬件的发展

在这里插入图片描述

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

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

第一代:电子管时代
电子管时代

以ENIAC为代表的电子管时代,体积超大,耗电量超大,程序员直接使用机器语言编程,在纸带上编程,打孔,有孔的表示二进制0,没有孔的地方表示二进制1,这个阶段如果有只小虫子在纸带上死掉了,会导致纸带机读取二进制0和1出现错误,影响程序的运行,这也是 bug的由来。

第二代:晶体管时代
晶体管时代

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

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

把逻辑元件集成到基片上, 采用集成电路制造工艺,计算机变得小,功耗也降低,可靠性也比焊接电路高得多。这个阶段计算机也没有推向个人生活。

第四代:大规模、超大规模集成电路
大规模集成电路

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

英特尔的CPU发展情况:
微处理器发展

个人使用微型计算机的发展是以微处理器技术为标志,随着微处理器的发展而发展。

  • 1947年,贝尔实验室,发明了晶体管。当时是三个人,其中一个是 威廉肖克利 ,后来肖克利离开了贝尔实验室。

  • 1955年,肖克利在硅谷创建 肖克利实验室股份有限公司,生产晶体管卖钱。吸引力一堆人才,其中八个人:摩尔、罗伯茨、克莱纳、诺伊斯、格里尼克、布兰克、郝尔尼、拉斯特。肖克利虽然很牛,但是对公司的管理并不好,这八个人觉得跟着肖克利干没有前途,这八个人集体辞职,由于背叛了肖克利,这八个人被肖克利称为 八叛徒

  • 1957年,八叛徒(traitorous eight)成立了仙童半导体公司。刚开始也是干老本行,给IBM等生产晶体管。

  • 1959年,仙童半导体发明集成电路,后来仙童半导体被人收购后,这八个人陆续离开公司。

  • 1968年,摩尔等三个人离开仙童,创立了英特尔(intel)公司。

  • 1969年,仙童销售部负责人桑德斯离开仙童,创立了AMD公司。 Intel和AMD又是后来超大规模集成电路的推行者。

  • 摩尔定律:集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将提升一倍,揭示了信息技术进步的速度。

  • 除了处理器的集成度、 运算速度符合摩尔定律,其实存储器-主存的发展也符合摩尔定律

摩尔定律

1.1.3 计算机软件的发展

软件的发展

1.1.4 目前的发展趋势

计算机目前的发展趋势

1.2 计算机硬件的基本组成

1.2.1 早期的冯诺依曼结构

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

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

早期的冯诺依曼结构

冯诺依曼第一台

冯诺依曼早期

冯诺依曼计算机的特点:

  1. 计算机有五大部件组成
  2. 指令和数据以同等地位存放在存储器,可按地址寻访
  3. 指令和数据用二进制表示
  4. 指令由操作码(加、减)和地址码(数据的地址)组成
  5. 存储程序
  6. 已运算器为中心(输入和输出设备与存储器之间的数据传送通过运算器完成)

冯诺依曼早期2

1.2.2 现代的计算机结构

也是冯诺依曼结构的优化

现代计算机结构
现代计算机结构
计算机组成

1.2.3 各个硬件部件的细节

1.2.3.1 主存储器

主存储器

主存储器2Cpu写数据

存储元

存储元2

  • 存储器是计算机的存储部件,用来存放程序和数据。
  • 存储器分为主存储器(简称主存,也称内存储器)和辅助存储器(简称辅存,也称外存储器)。
  • CPU能够直接访问的存储器是主存储器。辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为CPU所访问。
  • 主存储器由许多存储单元组成,每个存储单元包含若干个存储元件,每个元件存储一位二进制代码“0”或“1”。故而存储单元可存储一串二进制代码,称这串代码为存储字,这串代码的位数称为存储字长,存储字长可以是一个字节(8bt)或者是字节的偶数倍。
  • 主存储器的工作方式是按存储单元的地址进行存取的,这种存取方式称为按地址存取方式(相联存储器是按内容访问的)。
  • 存储体:存放二进制数据的,由一系列的存储元件构成,存放二进制0或1。
  • MAR:Memory Address Register(存储地址寄存器),寄存器也是用来存数据的,这个是存放数据的地址,经过地址译码后找到所选的存储单元。MAR的位数反应存储单元的个数,如MAR是4个bit位,4个二进制最多表示的数字是0000-1111,即0-15,则最多有 2^4=16个存储单元。
  • MDR:Memory Data Register(存储数据寄存器),是主存和其他部件的中介机构,用于暂存要从存储器中读或者写的信息,时序控制逻辑用于产生存储器操作所需的各种时序信号。MDR的位数和存储字长相等。一般为字节的二次幂整数倍。
  • 请注意MAR与MDR虽然是存储器的一部分,但在现代CPU中却是存在于CPU中的,另外后文提到的高速缓存( Cache)也是存在于CPU中,也就是说逻辑上MAR与MDR是属于存储器的,但是实现上确是属于CPU的。

存储器2
存储器3

1.2.3.2 运算器

  • 运算器的核心是算术逻辑单元ALU( Arithmetic and Logical Unit)。
  • 运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(Ⅸ)、基址寄存器(BR)等,其中前3个寄存器是必须有的。
  • 运算器内还有程序状态寄存器(PSW),保留各类运算指令或测试指令的结果的各类状态信息,以表征系统运行状态。

运算器1

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

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 存储器的性能指标

存储器的性能指标
n个二进制代表多少状态
进制

1.4.2 CPU性能指标

CPU性能指标

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

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

CPU性能指标2

IPS:Instructions Per Second ,每秒执行多少条指令。
IPS

IPS2

1.4.3 其他性能指标

数据通路带宽

其他指标

动态测试

CPU主频

CPU主频2
CPU主频3

性能指标总结

标签:计算机系统,MAR,计算机,存储器,第一章,PC,指令,概述,CPU
来源: https://blog.csdn.net/java123h/article/details/117933366

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有