计组-计算机系统概述(王道)

学前疑问:

计算机唯一能识别的数据--二进制 0/1

用低/高电平表示0/1

通过电信号传递数据

计算机通过主板上的印刷电路进行数据交换,通过多条电路可以传递多个二进制数位,每个二进制数位称为1bit(比特)

数字、文字、图像如何用二进制表示?

cpu如何对二进制数进行加减乘除?

如何储存这些二进制数?

如何从内存中取出想要的数据?

cup如何识别和执行我们写的程序?

计算机系统概述

计算机发展历程

计算机系统

  • 硬件

  • 软件

软件

  • 系统软件(操作系统、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理软件等)

  • 应用软件

硬件的发展

第一代:电子管时代(1946-1957)

冯诺依曼项目(计划):第一台电子数学计算机:EDVAC(1946)

逻辑元件->电子管

第二代:晶体管时代(1958-1964)

逻辑元件->晶体管

第三代:中小规模集成电路时代(1964-1971)

逻辑元件->中小规模集成电路

第四代:大规模、超大规模集成电路时代(1972-现在)

逻辑元件-> 大规模、超大规模集成电路

计算机系统层次结构

计算机系统的组成

计算机系统由硬件和软件组成

冯诺伊曼计算机结构

 

特点:

  1. 采用“存储程序”的方式工作,也就是将事先编好的程序和数据存放到内存中

  2. 机器 由输入设备,输出设备(简称I/O设备),存储器,运算器,控制器 五大部件组成

  3. 指令和数据按同等地位存放于存储器,形式上没有区别,但计算机能够区分,通过指令周期区分。

  4. 指令和数据用二进制码表示。指令由操作码和地址码组成,操作码指出操作类型,地址码找到操作数据的地址

  5. 以运算器为中心

现代计算机结构

 

特点:以存储器为中心

 

计算机的功能部件

1.输入设备

键盘、鼠标、摄像机等

2.输出设备

显示器、打印机等

3.存储器

存储器分为主存储器和辅助存储器(也称为外存储器),cpu能够直接访问的是主存储器,辅助存储的信息必须调入主存储器。根据描述不难看出主存储器就是我们的运行内存,比如平常买手机市的8+256G,这里的8就是运行内存,而256就是外存,就是我们平常说的磁盘(硬盘)。

主存储器的基本储存:

主存储器的工作方式是按存储单眼的存储地址进行存取,这种存取方式被称为按地址存取。

存储体存放二进制数据,地址寄存器(MAR)存放数据地址,通过MAR内的地址取到存储体里的数据,再放到数据寄存器(MDR),等待取走数据,上述为读取数据的大致过程。

 

 

地址寄存器:MAR(Memory Address Register),用于寻找地址,反映存储单元的个数,与PC(程序计数器)的长度也相等

数据寄存器:MDR(Memory Data Register),反应存每个储单元可以存储的字长,可以为字节(bit)的整数倍

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

存储字(word):存储单元中二进制代码的组合

存储字长:存储单元中二进制代码的位数

存储元:即存储二进制的电子元件,每个存储原可存1bit

例:

MAR = 4位,则共有2^4个存储单元,MDR = 16位,每个存储单元可以存放16bit,1个字(word)= 16bit/位

易混淆:1个字节(Byte)= 8bit(位),1B=1个字节,1b=1个bit => 1B = 8b

4.运算器(ALU、通用寄存器、标志(状态)寄存器)

运算器是计算机的执行部件,用于进行算数运算和逻辑运算。算数运算包括加、减、乘、除;逻辑运算包括与、或、非、异或、比较、位移等。运算器的核心是(Arithmetic and Logical Unit , ALU),运算器又包含若干通用寄存器。

5.控制器

 

控制器是计算机的指挥中心,由其‘指挥’各部件协调工作。

控制器由程序计数器(PC),指令寄存器(IR),控制单元(UC)组成。

PC用来存放当前指令,可以自动加1以形成下一条指令的地址,它与主存的MAR由一条直接通道,也就是上面为什么说MAR与PC的长度也相等。

IR用来存放当前指令,他的内容来自MDR,也就是主存的存储体放到MDR的数据。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作序列;而地址码Ad(IR)送往MAR,用以取操作数。

一般运算器和控制器集成到同一个芯片上,称为中央处理器(CPU),再加上主存储器共同构成主机。其它的例如外存,I/O 设备等统称为外设。

计算机软件

1.系统软件和应用软件

软件按照功能分类非为系统软件和应用软件。

系统软件是为了保证计算机高效、正确运行的基础软件,例如操作系统(OS)、数据库管理系统(DNMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。

应用软件 为了解决用户在某个领域或功能的问题而编制的程序,例如p图的PS,办公用的Office和WPS,看视频的B站等。

2.三个级别的语言

(1)机器语言:二进制语言(0/1),机器能识别和执行的唯一语言,通常使用高低电平表示0和1

(2)汇编语言:使用英文或其缩写代替二进制,使程序员更容易理解和记忆。使用汇编语言编写的程序必须经过 汇编程序 这个 系统软件 将其转化为机器语言

(3)高级语言:如(C、C++、Java等),更加容易编写。通常将高级语言翻译为汇编语言,再将汇编翻译为机器语言;或者直接将该高级语言翻译为机器语言。将高级语言转化为机器语言的软件系统被称为·翻译程序。翻译程序有以下三类:

①汇编程序(汇编器):将汇编语言转化为机器语言。

②解释程序(解释器):按顺序逐行翻译并翻译一句执行一句,如python,JavaStricp,Shell等

③编译程序(编译器):将高级语言翻译成汇编语言或机器语言。

3.软件和硬件的逻辑功能 等价性

硬件实现的往往是最基本的算数和逻辑运算,而一些复杂的功能大多数由软件实现。对某一功能来说,既可以通过硬件实现也能通过软件实现。从用户角度来看,他们在功能上是等价的,这一等价性被称为软、硬件的逻辑功能的等价性。但设计者在研制一台计算机时必须明确哪些功能由硬件实现,哪些功能由软件实现。举个小例子,乘法即可以设计专属的计算器由硬件实现,也可以通过软件转化位加法实现,显然硬件的要快的,但软件实现会降低成本。往往会结合设计目标、性价比、技术水平等综合因素考虑。

计算机系统的层次结构

这个层次结构暂无明确的定论。

第一级:微程序机器层(M0),这是一个实在的硬件层,它由机器硬件直接执行微指令。

第二级:传统机器层(M1).这也是一个硬件层,由微程序解释机器指令系统。

第三级:操作系统层(M2),被称为混合层。

第四级:汇编语言层(M3)

第五级:高级语言层(M4)

在高级语言层上还可以由应用程序层,它用来解决实际问题。

没有配备软件的纯硬件被称为裸机,第3~5层被称为虚拟机,简单来说就是软件实现的机器。

易错知识点:

  • 冯.诺依曼机的基本工作方式为 控制流驱动方式 ,采用“存储方式”工作,工作方式的基本特点为按地址访问并顺序执行指令

  • IR存放与执行指令,PC存放下一条指令(当前预执行指令)的 地址 ,MAR存放当前预访问单元(存储体单元)的地址,MDR存放从存储单元取出来的数据

  • 运算器中包含数据总线,通用寄存器,状态(标志)寄存器、ALU等,不包含地址寄存器。地址寄存器位于CPU中,但并未集成到运算器和控制器中,地址寄存器用来保存当前CPU所访问的内存单元的地址。由于内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写停止操作

  • 一个8位计算机以16位来表示地址。8位为一次可处理长度为8个字/位(bit),也就是MDR的位数,16位为表示地址码的长度,也就是MAR的长度。该计算机系统共有 2^{16}=65536 个地址空间,一次可处理8位。

  • 汇编语言是采用助记符编写的语言

  • 系列机的基本特性是指令系统向后兼容,指的是时间上向后兼容,新机兼容使用以前机器的指令系统

  • 数据库系统不是软件系统,数据系统指的是在计算机系统中引入数据库后的系统。数据库管理系统是系统程序

  • 相联存储器的特点为按内容寻址,实际上相联存储器即可以按地址寻址,也可以按内容寻址。与传统存储器的区别为其可以按内容寻址,因此也被称为按内容寻址的存储器。

  • 冯.诺依曼机中指令和数据均以二进制的形式存储,两者在形式上没有区别,根据指令周期的不同阶段进行区分

  • 指令按地址寻访,数据由指令中的地址码指出

计算机的主要性能指标

  1. 字长:指计算机进行一次整数运算所能处理的二进制数据的位数

  2. 数据通路带宽:指数据总线一次所能并行传送数据的位数,不同于cpu内部的数据总线宽度

  3. 主存容量:指主储存器所能存储信息的最大容量,通常以字节衡量,也可以用字数×字长(512K×16位)表示。举一个例子:MAR为16位,2^{16} = 65536 , 即主存有65536个存储单元,可称为64K,1K = 1024,若MDR为32位,则表示存储容量为64K×32位

  4. 运算速度

  5. 基准程序:基准程序(Benchmarks)是专门用来进行性能评价的一组程序

运行速度:

(1)吞吐量和响应时间

吞吐量指系统在单位时间内处理请求的数量;响应时间指从用户向系统发出请求到系统处理请求并返回请求所需时间(CPU处理时间+I/O响应时间)

(2)主频和CPU时钟周期

  • CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位 ,执行指令的每个动作至少需要一个时钟周期

  • 主频(CPU的时钟频率):机器内部主时钟的频率,是衡量机器速度的重要参数 。对于同一型号的机器或具有相同的指令体系结构(ISA),其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。常用的主频有1.8GHz、2.4GHz、2.8GHz等, 1GHz = 1×10^9 Hz 。

  • 注意: CPU时钟周期 = 1/主频 ,主频通常以Hz(赫兹)为单位,1HZ表示每秒1次

(3)CPI(Clock cycle Per Instruction) 执行一条指令所需要的时钟周期数

不同指令所需的时钟周期数可能不同,因此对于一个程序或者一台机器来说,其CPI指该程序或该机器指令集中所有指令执行所需要的平均时钟周期数,此时CPI是一个平均值。

(4)CPU执行时间  运行一个程序所花费的时间

CPI执行时间=CPU时钟周期数/主频=(指令条数×CPI)/主频

上式表明:CPU性能取决于三个要素:①主频(时钟频率)②每条指令所需要的平均周期数CPI③指令条数

(5)MIPS (Million Instructions Per Second) 即每秒执行多少百万条指令

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

MIPS对不同机器进行性能比较是有缺陷的,因为不同机器的指令集不同,指令的功能也就不同。

(6)MFLOPS、GFLOPS、TFLOPS、PELOPS、EFLOPS、ZFLOPS

分别为每秒执行多少次浮点运算,百万、十亿、万亿等

MFLOPS = 浮点操作次数/(执行时间×10^6) 百万

GFLOPS = 浮点操作次数/(执行时间×10^9) 十亿

TFLOPS = 浮点操作次数/(执行时间×10^{12}) 万亿

PFLOPS = 浮点操作次数/(执行时间×10^{15})

EFLOPS = 浮点操作次数/(执行时间×10^{18})

ZFLOPS = 浮点操作次数/(执行时间×10^{21})

几个专业术语:

  1. 系列机:使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列

  2. 兼容:指软件或硬件的通用性

  3. 软件可移植性:指把使用在某系列计算机上的软件直接或进行很小的修改就能运行在另一个系列机上

  4. 固件:将程序固化在ROM(只读存储器)中组成的部件称为固件。固件是一种具有软件特性的硬件,吸收了软硬件的特点,执行速度快于软件,灵活性优于硬件,是软硬件结合的产物。例如,目前的操作系统已实现了部分固化(把软件永恒存储于ROM中)

 

 

 

(1) 1.25×10^{-4}s

(2) 2.5×10^{-6}s

(3)0.6MIPS

易错知识点

  • 储存字长是指存放在一个存储单元中的二进制代码位数

  • CPU主频指CPU使用的时钟脉冲频率(周期),CPI是指执行一条指令平均使用的CPU时钟数(周期)

  • 机器字长、指令字长和储存字长三者在数值上可以相等也可以不相等;指令字长取决于操作码长度、操作数地址长度和操作地址个数;机器字长指计算机进行一次整数运算(定点整数运算)所能处理的二进制数的位数;存储字长指存储体中一个存储单元所能存储的二进制代码的位数或存储单元包含的存储单位。

  • 数据字长是数据总线一次能并行传送信息的位数,它可以不等于MDR的位数

  • 计算机的位数(字长)也叫做机器字长取决于数据总线的宽度,是计算机一次能够处理的二进制数的长度。

  • CPU位数=CPU中寄存器的位数=CPU能够一次并行处理的数据宽度(位数)=数据总线的宽度

  • CPU为了实现其功能设计了指令集,即是CPU的全部指令,这是机器语言。计算机的所有功能都是基于CPU的指令集。指令集和CPU的位数是有联系的。如Intel 8086 CPU 是16位,其指令集也是16位。如Intel 80386DX CPU 是32位,其指令集也是32位,但它也保持原16位指令集,这是为了向上兼容。有64位CPU上运行32位操作系统、32位CPU上运行16位操作系统的情况,也是为了向上兼容。

  • 操作系统位数 = 其所依赖的指令集位数 <= CPU位数

  • CPU周期≠(CPU)时钟周期/时钟脉冲 ,时钟周期为CPU频率的倒数;CPU周期又称为机器周期,在计算机中为了方便管理,会把一条指令分为若干阶段,每一阶段完成一个基本操作,完成一个基本操作所需要的时间就为机器周期或CPU周期。指令周期由若干个CPU周期组成,由于CPU内部的操作速度快,而CPU访问一次内存所花时间较长,通常用内存中读取一个指令字的最短时间来规定CPU周期。

  • 一条指令周期包括取出指令并执行指令,需要若干个CPU周期(机器周期)完成,而一般情况下,一个CPU周期由若干个时钟周期组成。时钟周期 < CPU周期(机器周期)< 指令周期

  • 主频、主存容量和指令系统(间接影响CPI)并不是综合性能的体现。吞吐率指系统在单位时间内处理请求的数量,是评价计算机系统性能的综合参数

  • 兼容是指计算机软件或硬件的通用性,通常在同一系列的不同机型通用

本章常见问题以及易混淆知识点:

(1)翻译程序、解释程序、汇编程序、编译程序的区别和联系

翻译程序有两种:一种是编译程序,它将高级语言源程序一次性翻译成目标程序;另一种是解释程序,它将源程序的一条语句翻译目标代码并立即执行,翻译一句执行一句。

汇编程序将汇编语言程序翻译为机器语言程序。

区分汇编程序与编译程序的,诸如C、C++、Java这些语言为高级语言,将高级语言源程序翻译为机器语言程序的为编译程序;而将汇编语言源程序翻译为机器语言程序的为汇编程序

(2)位、字、字长、机器字长、字节、存储字长、指令字长、数据总线宽度的区别与联系

存储器中一个存储单元由多个存储单位组成,每一个存储单位存放0/1来表示二进制数,每个这样的存储单位叫做位。字用来表示被处理信息的的单位,用来度量数据类型的宽度,是计算机进行数据存储和数据处理的运算的单位,如×86中将一个字定义位16位或两个字节。但位和字之间没有直接的联系。

字长也称为机器字长,所谓字长即为字的位数,通常是指CPU内部用于整数运算的数据通路的宽度,因此字长等于CPU内部用于整数运算的运算器位数和通用寄存器宽度,它反映了计算机处理信息的能力。

字节与上述其它称呼大都无直接联系,1字节 = 8位(bit),多用于高级语言中度量数据大小,如在我们常用的64位编译器中c语言的int型为4个字节,也就是32位。不同编译器对数据的处理不同,因此同一数据类型在不同位数的编译器中所占的字节数不同。

存储字长是一个存储单元存储的二进制代码的长度。

指令字长是一个指令字中包含的二进制代码的位数。

数据总线宽度就是计算机一次能够传输的最长的二进制数的位数,我们平常所说的32位,64位。

字长 = 机器字长 = 数据总线宽度。

字、字长、机器字长、存储字长、指令字长、数据总线宽度都必须为字长的整数倍,指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要两个访问周期来取一条指令。早期的存储字长一般与指令字长、字长相等,因此访问一次便可以取出一条指令或一个数据。随着计算机的发展,指令字长、字长都可便,表但必须是字节的整数倍。

(3)寄存器是什么?以及常用寄存器

工作原理:寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合,一个触发器可以存储一位二进制代码。

寄存器作用:寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。

寄存器可以大致分为这几类:通用寄存器(如累加器,数据寄存器等)、指针和变址寄存器段寄存器指令指针寄存器IP标志寄存器

(4)周期,各种周期间得关系

这里主要说一下cpu在执行一条指令时遇到的周期,以防时间长了忘记。一条指令周期包括取出指令并执行指令,需要若干个CPU周期(机器周期)完成,而一般情况下,一个CPU周期由若干个时钟周期组成。时钟周期(cpu主频的倒数) < CPU周期(机器周期)< 指令周期

(5)计算机位数和操作系统位数关系

计算机位数也称CPU位数,也就是字长,它用来表示计算机处理数据的能力。及cpu能够并行传输数据的最大位数,如16位cpu一次可以传输16位0/1这样的数据。

在说到操作系统时有一个很重要的概念,那就是“指令集”,什么是指令集,通俗的来讲可以把它比作我们平常使用的英语字典,我们要和外国人交流,我们就去查字典,把我们的中文转化成对应的英文。同样的指令集也是这样的,我们需要和计算机传达取出数据的指令,我们就得查找对应的指令集将其转化为0/1这样的机器语言,这样我们就可以和计算机进行交流了,不同的cpu有不同的指令集,但最终都是将指令转化为机器可以理解的0/1。但这些不需要用户去考虑,它相对于用户来说是透明的,看不到的。

CPU为了实现其设计的功能于是设计了指令集,指令集就是操作系统与硬件之间的接口,操作系统位数的概念是基于cpu位数的,且是依赖于指令集位数的,操作系统指令->指令集->cpu,所以操作系统位数有如下关系:

操作系统位数 = 所依赖的指令集位数 <= CPU位数

(6)指令周期、CPI、MIPS之间的关系

指令周期:完成一条指令(包括取出指令并执行)所需要的时间

CPI:执行一条指令所需要的 平均 时钟周期数,指令包含多种,因此要计算其平均数

MIPS:每秒可以执行多少 百万条 指令

(7)计算机体系结构和计算机组成

计算机体系结构指的是机器语言或汇编语言等那些程序员所能看到的,包括指令集、数据类型、存储器寻址技术等,大多是抽象概念。

计算机组成是指如何实现计算机体系结构所体现的功能,如取出指令、分析指令、取操数据等,它包含许多对程序员透明的硬件细节。

因此当两台机器的指令系统相同时,只能认为他们有相同的体系结构,至于硬件如何去实现这些指令,完全可以不同。

(8)基准程序执行越快说明计算机性能越好吗?

一般情况下基准程序的执行速度可以反映机器性能的好坏,但由于基准程序中的语句存在频度差异,因此运行结果并不能完全说明问题

本章常用专有名词缩写:

MAR:地址寄存器

MDR:数据寄存器

Cache:高速缓存

ALU:运算器的核心,算术逻辑单元

ACC:累加器

MQ:乘商寄存器

X:操作数寄存器

IX:变址寄存器

BR:基址寄存器

PSW:状态(标志)寄存器

PC:程序计数器

IR:指令寄存器

CU:控制单元

OP(IR):操作码

Ad(IR):地址码

CPI、MIPS、MFLOPS、GFLOPS等

                   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值