1、第1章 微型计算机系统导论 1.4 微型计算机硬件系统微型计算机硬件系统 1.4.1 微型计算机系统的组成 到目前为止,计算机仍沿用1940年由冯冯.诺依曼诺依曼首先提出的体系结构。其基本设计思想为:以二进制形式表示指令和数据。程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令加以执行。由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机系统。第1章 微型计算机系统导论 图1.3 微型计算机硬件系统结构 地址总线地址总线AB定时电路输入设备输入设备输出设备输出设备I/O接口接口ROMRAM数据总线数据总线DB控制总线控制总线CB微微处处理理器器(CPU)第1章
2、 微型计算机系统导论 所谓总线总线,是计算机中各功能部件间传送信息的公共通道,是微型计算机的重要组成部分。它们可以是带状的扁平电缆线,也可以是印刷电路板上的一层极薄的金属连线。所有的信息都通过总线传送。根据所传送信息的内容与作用不同,总线可分为三类:地址总线地址总线AB(Address Bus):在对存储器或I/O端口进行访问时,传送 由CPU提供的要访问存储单元或I/O端口的地址信息,以便选中要访问的存储单元或I/O端口,是单向总线。第1章 微型计算机系统导论 数据总线数据总线DB(Data Bus):从存储器取指令或读写操作数,对I/O端口进行读写操作时,指令码或数据信息通过数据总线送往C
3、PU或由CPU送出,是双向总线。控制总线控制总线CB(Control Bus):各种控制或状态信息通过控制总线由CPU送往有关部件,或者从有关部件送往CPU。CB中每根线的传送方向是一定的,图1.3中CB作为一个整体,用双向表示。第1章 微型计算机系统导论 1.4.2 微处理器 外部DB 微处理器微处理器 (CPU)AARPLAPC标志寄存器IDIRDRRA至外部CB外部AB 4001H E7H 4002H 34H 4003H A5H 4004H 62H 4005H 38H存储器存储器 地址 单元内容ALU内 部 数 据 总 线DB第1章 微型计算机系统导论 1运算器运算器 运算器又称算术逻辑
4、单元ALU(Arithmetic Logic Unit),用来进行算术或逻辑运算以及移位循环等操作。参加运算的两个操作数一个来自累加器A(Accumulator),另一个来自内部数据总线,可以是数据缓冲寄存器DR(Data Register)中的内容,也可以是寄存器阵列RA(Register Array)中某个寄存器的内容。计算结果送回累加器A暂存。第1章 微型计算机系统导论 2.控制器控制器 控制器又称控制单元CU(Control Unit),是全机的指挥控制中心。它负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令,以保证正确完成程序所要求的功能。(1)指令寄存
5、器IR(Instruction Register):用来存放从存储器取出的将要执行的指令码。当执行一条指令时,先把它从内存取到数据缓冲寄存器DR中,然后再传送到指令寄存器IR中。第1章 微型计算机系统导论 (2)指令译码器ID(Instruction Decoder):用来对指令寄存器IR中的指令操作码字段(指令中用来说明指令功能的字段)进行译码,以确定该指令应执行什么操作。(3)可编程逻辑阵列PLA(Programmable Logic Array):用来产生取指令和执行指令所需要的各种微操作控制信号,并经过控制总线CB送往有关部件,从而使计算机完成相应的操作。第1章 微型计算机系统导论 3
6、.内部寄存器阵列内部寄存器阵列 1)程序计数器PC(Program Counter)程序计数器有时也被称为指令指针IP(Instruction Pointer)。它被用来存放下一条要执行指令所在存储单元的地址。在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的存储单元地址送入PC。当执行指令时,CPU将自动修改PC内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令是按顺序执行的,所以修改的办法通常只是简单地对PC加1。但遇到跳转等改变程序执行顺序的指令时,后继指令的地址(即PC的内容)将从指令寄存器IR中的地址字段得到。第1章 微型计算机系统导论 2)地址寄存器AR
7、(Address Register):地址寄存器用来存放正要取出的指令的地址或操作数的地址。由于在内存单元和CPU之间存在着操作速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。在取指令时,PC中存放的指令地址送到AR,根据此地址从存储器中取出指令。在取操作数时,将操作数地址通过内部数据总线送到AR,再根据此地址从存储器中取出操作数;在向存储器存入数据时,也要先将待写入数据的地址送到AR,再根据此地址向存储器写入数据。第1章 微型计算机系统导论 3)数据缓冲寄存器DR(Data Register)数据缓冲寄存器用来暂时存放指令或数据。从存储器读出时,若读出的是指
8、令,经DR暂存的指令经过内部数据总线送到指令寄存器IR;若读出的是数据,则通过内部数据总线送到运算器或有关的寄存器。同样,当向存储器写入数据时,也首先将其存放在数据缓冲寄存器DR中,然后再经数据总线送入存储器。可以看出,数据缓冲寄存器DR是CPU和内存、外部设备之间信息传送的中转站,用来补偿CPU和内存、外围设备之间在操作速度上存在的差异。第1章 微型计算机系统导论 4)指令寄存器IR(Instruction Register)指令寄存器用来保存从存储器取出的将要执行的指令码,以便指令译码器对其操作码字段进行译码,产生执行该指令所需的微操作命令。第1章 微型计算机系统导论 5)累加器A(Acc
9、umulator)累加器是使用最频繁的一个寄存器。在执行算术逻辑运算时,它用来存放一个操作数,而运算结果通常又放回累加器,其中原有信息随即被破坏。所以,顾名思义,累加器是用来暂时存放ALU运算结果的。显然,CPU中至少应有一个累加器。目前CPU中通常有很多个累加器。当使用多个累加器时,就变成了通用寄存器堆结构,其中任何一个既可存放目的操作数,也可以放源操作数。例如本书介绍的80 x86系列CPU就采用了这种累加器结构。第1章 微型计算机系统导论 6)标志寄存器FLAGS(Flag Register)标志寄存器有时也称为程序状态字PSW(Program Status Word)。它用来存放执行算
10、术运算指令、逻辑运算指令或测试指令后建立的各种状态码内容以及对CPU操作进行控制的控制信息。标志位的具体设置及功能随微处理器型号的不同而不同。编写程序时,可以通过测试有关标志位的状态(0或1)来决定程序的流向。第1章 微型计算机系统导论 1.4.3 存储器存储器 这里介绍的存储器是指内存储器(又称为主存或内存)。它是微型计算机的存储和记忆装置,用来存放指令、原始数据、中间结果和最终结果。在计算机内部,程序和数据都以二进制形式表示,8位二进制代码作为一个字节。为了便于对存储器进行访问,存储器通常被划分为许多单元,每个存储单元存放一个字节的二进制信息,每个存储单元分别赋予一个编号,称为地址。如图1
11、.5所示,地址为4005H的存储单元中存放了一个八位二进制信息00111000B。第1章 微型计算机系统导论 E7H34HA5HF2H38H4001H4002H4003H4004H4005H地址指令或数据内容0 0 1 1 1 0 0 0图1.5 内存单元的地址和内容第1章 微型计算机系统导论 有关存储器的基本概念 1位位(Bit):二进制信息的最小单位(0或1)2字节字节(Byte):由8位二进制数组成,可以存放在一个存储单元中。是字的基本组成单位。3字(字(Word):):计算机中作为一个整体来处理和运算的一组二进制数,是字节的整数倍。通常它与计算机内部的寄存器、算术逻辑单元、数据总线宽度
12、相一致。每个字包括的位数称为计算机的字长,是计算机的重要性能指标。目前为了表示方便,常把一个字定义为16位,把一个双字定义为32位。第1章 微型计算机系统导论 4内存容量:内存容量:内存中存储单元的总数。通常以字节为单位,1024(210)字节记作1KB,220字节记作1MB。5内存单元地址:内存单元地址:为了能识别不同的单元,每个单元都赋予一个编号,这个编号称之为内存单元地址。显然,各内存单元的地址与该地址对应的单元中存放的内容是两个完全不同的概念,不可混淆。第1章 微型计算机系统导论 2.内存的操作 CPU对内存的操作有两种:读读或写写。读操作读操作是CPU将内存单元的内容读入CPU内部,
13、而写操作是CPU将其内部信息送到内存单元保存起来。显然,写操作写操作的结果改变了被写内存单元的内容,是破坏性的,而读操作是非破坏性的,即该内存单元的内容在信息被读出之后仍保持原信息不变。第1章 微型计算机系统导论 从内存单元读出信息的操作过程如图1.6(a)所示。假设将地址为90H的单元中的内容10111010B(BAH)读入CPU,其操作过程如下:(1)CPU经地址寄存器AR将要读取单元的地址信息10010000B(90H)送地址总线,经地址译码器选中90H单元。(2)CPU发出“读”控制信号。(3)在读控制信号的作用下,将90H单元中的内容10111010B(BAH)放到数据总线上,然后经
14、数据缓冲寄存器DR送入CPU中的有关部件进行处理。第1章 微型计算机系统导论 地址译码器10101101B00011010B10111010B00100010B内容地址00H01HFFH90HAB10010000B来自CPU的写信号00000000BDB地址译码器10101101B00011010B10111010B00100010B内容地址00H01HFFH90HAB10010000B10111010BDB来自CPU的读信号(a)内存读操作过程示意图(b)内存写操作过程示意图图1.6 内存读写操作过程示意图 第1章 微型计算机系统导论 向内存单元写入信息的操作如图1.6(b)所示。假定要将数
15、据0写入内存中地址为90H的单元,其操作过程如下:(1)写入单元的地址信息90H经地址寄存器AR送到地址总线上。(2)待写入的数据00000000B经数据缓冲寄存器DR放到数据总线上。(3)CPU发出“写”控制信号,在该信号的作用下将数据0写入90H单元。此时,90H单元中原有的内容10111010B就会被00000000B所替代。第1章 微型计算机系统导论 3.内存的分类 按工作方式,内存可分为两大类:随机读写存储器RAM(Random Access Memory)和只读存储器ROM(Read Only Memory)。随机读写存储器可被CPU随机地读写,它用于存放将要被CPU执行的用户程序
16、、数据以及部分系统程序。断电后,其中存放的所有信息将丢失。只读存储器中的信息只能被CPU读取,而不能由CPU任意地写入。断电后,其中的信息不会丢失。它用于存放永久性的程序和数据。如系统引导程序、监控程序、操作系统中的基本输入/输出管理程序(BIOS)等。第1章 微型计算机系统导论 1.4.4 I/O接口与输入输出设备 I/O接口是微型计算机与输入输出设备之间信息交换的桥梁。I/O设备是微型计算机系统的重要组成部分。程序、数据及现场信息要通过输入设备输入给计算机。计算机的处理结果要通过输出设备输出,以便用户使用。常用的输入设备有:键盘、鼠标、数字化仪、扫描仪、A/D转换器等。常用的输出设备有显示
17、器、打印机、绘图仪、D/A转换器等。第1章 微型计算机系统导论 1.5 微型计算机的工作过程 高级语言高级语言是不依赖于具体机型只面向过程的程序设计语言,由它所编写的高级语言程序,需经过编译程序或解释程序的编译或解释生成机器语言程序后才能执行。机器语言程序机器语言程序是计算机能够理解和直接执行的程序,其指令是用二进制代码表示和存储的。汇编语言程序汇编语言程序是用助记符语言表示的程序,计算机不能直接“识别”,需要经过“汇编程序”把它转换为对应的机器语言程序后才能执行。第1章 微型计算机系统导论 1.5 微型计算机的工作过程 不论程序是用什么语言编写,都必须首先不论程序是用什么语言编写,都必须首先
18、将其转换为计算机能直接识别和执行的将其转换为计算机能直接识别和执行的机器语机器语言程序言程序,然后才能由,然后才能由CPU逐条读取并执行。表逐条读取并执行。表1.1为在某模型机上完成为在某模型机上完成“6+5”操作所需的机器操作所需的机器语言程序和汇编语言程序,假设该机器语言程语言程序和汇编语言程序,假设该机器语言程序从内存中地址为序从内存中地址为0000H单元开始存放。单元开始存放。第1章 微型计算机系统导论 内存单元地址机器语言程序 汇编语言程序 指令功能说明0000H0001H1011000100000110MOV A,06H双字节指令。将数字6送累加器A0002H0003H000010
19、0000000101ADD A,05H双字节指令。将数字5与累加器A中的内容相加,结果存放在累加器A中。0004H11111110HLT停机指令表表1.1 完成完成“6+5”操作所需的机器语言程序和汇编语言程序操作所需的机器语言程序和汇编语言程序 1.5 微型计算机的工作过程 第1章 微型计算机系统导论 假定完成“6+5”操作所需的机器语言程序(表1.1所示)已由输入设备存放到内存中,如图1.7所示。下面进一步说明微机内部执行该程序的具体操作过程。开始执行程序时,首先将第一条指令的首地址0000H送程序计数器PC,然后就进入第一条指令的取指阶段,其操作过程如图1.7所示。1.5 微型计算机的工
20、作过程 第1章 微型计算机系统导论 图1.7 取第一条指令的操作过程示意图 0000H0001H0002H0003H0004H1011000100000110000010000000010111111110A0000 00000000 0000PLAID1011000110110001RA微处理器(CPU)内部数据总线DB至外部CB外部DB外部AB存储器地址单元内容ALUPCCPU发出读命令PC1ARDRIR第1章 微型计算机系统导论 把PC内容送地址寄存器AR。PC内容送入AR后,PC自动加1。把地址寄存器AR的内容0000H放在地址总线上,并送至存储器系统的地址译码电路(图中未画出),经地
21、址译码选中相应的0000H单元。CPU发出存储器读命令。在读命令的控制下,把选中的0000H单元的内容即第一条指令的操作码B1H读到数据总线DB上。把读出的内容B1H经数据总线送到数据缓冲寄存器DR 指令译码。因为取出的是指令的操作码,故数据缓冲寄存器DR中的内容被送到指令寄存器IR,然后再送到指令译码器ID,经过译码,CPU“识别”出这个操作码代表的指令,于是经控制器发出执行该指令所需要的各种控制命令。同学们可参看本课程辅助教学网站上的教学CAI课件,通过其动态演示来进一步理解计算机读取和执行指令的过程。第1章 微型计算机系统导论 接着进入第一条指令的执行阶段。经过对操作码B1H的译码,CP
22、U知道这是一条把下一单元中的操作数送累加器A的双字节指令,所以,执行该指令的操作就是从下一个存储单元中取出指令第二个字节中的操作数06H,并送入累加器A。该指令的执行过程如图1.8所示。把PC内容01H送地址寄存器AR。PC内容送入AR后,PC自动加1,即由0001H变为0002H。注意,此时AR的内容0001H并没有变化。第1章 微型计算机系统导论 把地址寄存器AR的内容0001H放到地址总线上,并送至存储器系统的地址译码电路,经地址译码选中相应的0001H单元。CPU发出存储器读命令。在读命令的控制下,把选中的0001H单元的内容06H放到数据总线DB上。把读出的内容06H经数据总线送到数据缓冲寄存器DR。数据缓冲寄存器DR的内容经内部数据总线送到累加器A。于是,第一条指令执行完毕,操作数06H被送到累加器A中。