计算机组成原理与汇编语言(2006级)北航计算机学院刘旭东©Tel:82316285Mail:liuxd@buaa.edu.cnliuxd@act.buaa.edu.cn课程介绍课程名称计算机组成原理与汇编语言ComputerOrganizationandAssembleLanguage学时学分课堂教学:68学时总学分:4学分任课教师刘旭东、熊桂喜配套实验计算机组成原理实验(单独开课)汇编语言上机实验(自己掌握)课程介绍--教学内容概述存储系统的组成与基本工作原理内部存储器的组成与工作原理高速缓冲存储器的结构与工作原理辅助存储器的结构与工作原理虚拟存储系统等指令系统与IBM汇编语言指令系统基本要素80X86机器结构80X86指令系统IBMPC汇编语言程序设计一(汇编语言程序结构与基本技巧)指令系统的设计与分析课程介绍--教学内容CPU的内部结构与工作原理ALU与基本运算方法控制单元的结构数据通路与控制信号指令执行过程分析控制单元的设计微程序控制器原理总线、I/O系统与I/O汇编程序设计总线与I/O接口、基本I/O方式BIOS/DOS调用中断、DMA及其汇编程序设计串行通信及汇编程序设计显示、打印汇编程序设计文件操作汇编编程课程介绍目的掌握计算机的基本组成、内部结构和工作原理,培养学生分析和设计计算机或计算机部件的能力。掌握汇编语言编程,从汇编指令级理解和操纵计算机的基本部件。重点与难点主存储器与高速缓冲存储器输入输出汇编语言程序设计CPU的内部结构与工作原理与其他课程的关系先导课程:计算机导论、数字电路与数字逻辑;后续课程:计算机接口与通信、计算机系统结构;课程介绍上课时间及地点1~18周:星期一7/8节,星期四7/8节(一)316教材及参考书教材:《计算机组成原理》(第2版),高等教育出版社,唐朔飞编著《IBMPC汇编语言程序设计》,清华大学出版社,沈美明编著《计算机组成原理实验说明书》(学院教学实验中心编)参考书:《计算机组织与结构(性能设计)》第五版,电子工业出版社《ComputerOrganization&Design-TheHardware/SoftwareInterface》(计算机组织与设计硬件/软件接口,机械工业出版社影印版)考试办法课程考试:期终考试(A、B卷,闭卷)成绩:考试成绩×85%+平时成绩×15%第一部分:概述一.透视计算机:计算机组成与结构总结1.计算机系统的层次结构2.计算机的组成部件简介3.计算机的内部连接二.理解计算机:计算机的基本工作过程1.指令的含义2.程序的执行3.计算机最基本的操作与控制:微操作1.1计算机系统硬件(Hardware)计算机的实体部分,可以实现计算机最基本的操作行为。软件(Software)使计算机实现各种功能的程序集合。包括系统软件、应用软件两大类。1.2计算机系统层次结构计算机的层次结构的演变实际机器M1(机器语言程序)机器语言汇编语言高级语言虚拟机器M3(高级语言程序)虚拟机器M2(汇编语言程序)将高级语言程序先翻译成汇编语言程序或机器语言程序,再在M1或M2上运行将汇编语言程序先翻译成机器语言程序,然后在M1上运行1.2计算机系统层次结构三级层次结构的计算机系统实际机器M1(机器语言程序)虚拟机器M3(高级语言程序)虚拟机器M2(汇编语言程序)第一级第二级第三级机器语言程序直接在M1上运行1.2计算机系统层次结构四级层次结构的计算机系统实际机器M1(机器语言程序)虚拟机器M3(高级语言程序)虚拟机器M2(汇编语言程序)第一级第二级第三级微程序机器M0(微指令系统)第零级机器语言程序直接在M1上运行将汇编语言程序先翻译成机器语言程序,然后在M1上运行将高级语言程序先翻译成汇编语言程序或机器语言程序,再在M1或M2上运行用微程序解释机器指令,由硬件系统直接执行微程序1.3计算机的基本组成计算机的功能DataProcessing(数据处理)DataStorage(数据存储)DataMovement(数据移动,交换)Control(控制)计算机的功能结构1.3计算机的基本组成运算器:实现数据处理的部件完成最基本的算术逻辑运算ALU(ArithmeticandLogicUnit)+Registers运算器与机器字长(字的概念)的关系运算器与机器性能指标:MIPS:MillionsofInstructuionsPerSecond目前更通用的叫法:Datapath简单运算器结构图1.3计算机的基本组成存储器:实现数据存储的部件保存程序和数据(二进制信息)存储单元:bit,Byte,Word地址的概念:每一个字节单元拥有一个唯一的地址(索引)存储器的工作方式:读、写存储器结构简图1.3计算机的基本组成控制器:实现控制功能的部件提供各部件工作所需的控制信号,控制计算机其他部件协同工作指令部件(InstructionRegister,InstructionDecoder)指令顺序控制(ProgramCounter)时序逻辑部件(Clock,Timer,SequencingLogic)控制信号生成部件(ControlSignalGeneratororControlMemory)Datapath+Control=CPU(CentralProcessUnit)orProcessor控制器结构简图1.3计算机的基本组成输入输出:实现数据交换的部件实现计算机内部与外界(其他系统或人类)的信息交换实现数据交换的设备:输入设备、输出设备接口标准与接口部件计算机整体结构简图1.4计算机总线结构总线结构总线:符合一定的标准的一组公共数据通道构成:地址总线、数据总线、控制总线单总线结构多总线结构标准总线ISA---IndustryStandardArchitecture(工业标准结构)EISA----ExtendedISA(扩展工业标准结构)PCI----PeripheralConnectionInterface(周边元件扩充接口)SCSI----SmallComputerSystemInterface(小型计算机系统接口)………1.4计算机总线结构单总线结构1.4计算机总线结构1946年,冯·诺依曼与同事开始研制IAS。该机结构被公认为随后发展起来的通用计算机的原型。1.4计算机总线结构普通PC(PC/XT)的内部结构1.4计算机总线结构普通PC(Pentium)的内部结构(多总线结构)MainmemoryLANIDESCSIPentiumCPU32/64CPULocalBusLocalBustoPCIBusbridgePCIBusAdapterPCItoISAbridgePCISlotsISABusISASlotsISAadapterCache1.4计算机总线结构SunSPARCstation20(RISC)多总线结构Floating-pointUnitIntegerUnitInstCacheRefMMUDataCacheStoreBufferBusInterfaceSuperSPARCL2CacheMBusModuleMBusL64852MBuscontrolM-SAdapterSBusDRAMControllerSBusDMASCSIEthernetSTDIOserialkbdmouseaudioRTCFloppySBusCards机器指令:计算机硬件可以执行的表示一种基本操作的二进制代码。指令格式:操作码+操作数(操作数地址)操作码:指明指令的操作性质操作数(地址):指令操作数的位置(或操作数本身)2.1计算机的工作过程程序:在此特指一段机器指令序列。完成一定的功能,采用某种算法,具备一定的流程;计算机按照程序所规定的流程和指令顺序,一条一条地执行指令,达到完成程序所规定的功能的目的。计算机采用程序计算器(ProgramCounter)来决定指令执行的顺序。操作码操作数地址110101011000010001010001101000002.2指令的执行过程微操作:计算机可以完成的最基本的操作,一条机器指令的执行可以解释为一系列的微操作的执行操作性质:对数据进行某种处理操作对象操作的时间与条件BAANDQQDDQQAB微操作:ABALUANDBQDQACQDQAC+BACADDCtrl微操作:AC+BAC2.2指令的执行过程ALUABGRAC微操作信号发生器IDIRPCMBR存储器MAR微操作控制信号总线AC:累加器ALU:算术逻辑运算单元A,B:缓冲器GR:通用寄存器IR:指令寄存器ID:指令译码器PC:程序计数器MAR:地址寄存器MBR:数据寄存器机器结构简化图2.2指令的执行过程ALUABGRAC微操作信号发生器IDIRPCMBR存储器MAR微操作控制信号总线AC:累加器ALU:算术逻辑运算单元A,B:缓冲器GR:通用寄存器IR:指令寄存器ID:指令译码器PC:程序计数器MAR:地址寄存器MBR:数据寄存器InstructionFetchInstructionDecodeOperandFetchExecuteResultStoreNextInstruction根据PC内容从存储器取指令送IR指令译码器译码(解释指令),形成微操作控制信号在控制信号的作用下取操作数送运算器运算器执行指令功能保存指令结果形成下条指令的地址并送PC1.根据PC内容从存储器取指令送IR;2.指令译码器译码(解释指令),形成微操作控制信号;3.在控制信号的作用下取操作数送运算器;4.运算器运行;5.保存结果;6.形成下一条指令地址送PC。ExampleY=ax2+bx-c假定a,b,c,x均为已知数,且存放在内存中,求y。地址结果y将存放在此值a值b值c值x内存00H02H04H06H08H0AH0CH0EH10H12H14H16H18H假定指令系统:16位指令系统OpcodeAddress88操作码说明00HAC(AC)+Mem(Add)01HACMem(Add)02HAC(AC)—Mem(Add)指令ADDLDSUB03HAC(AC)×Mem(Add)MUL04HMem(Add)(AC)STExampleY=ax2+bx-c假定a,b,c,x均为已知数,且存放在内存中,求y。地址结果y将存放在此值a值b值c值x内存00H02H04H06H08H0AH0CH0EH10H12H14H16H18H操作码说明00HAC(AC)+Mem(Add)01HACMem(Add)02HAC(AC)—Mem(Add)指令ADDLDSUB03HAC(AC)×Mem(Add)MUL04HMem(Add)(AC)ST程序如下代码0112HACa0318HACax0014HACax+b指令LDaMULxADDb0318HACax2+bxMULx0216HACax2+bx-cSUBc0410HMem(AC)STyExample地址0112H0318H0014H0318H0216H0410H结果y值a值b值c值x内存00H02H04H06H08H0AH0CH0EH10H12H14H16H18H程序如下代码0112HACa0318HACax0014HACax+b指令LDaMULxADDb0318HACax2+bxMULx0216HACax2+bx-cSUBc0410HMem(AC)STy00H开始PC02HPC04HPC06HPC08HPC0AHPC???ACaaxax+bax2+bxax2+bx-c0CHPCax2+bx-c计算机系统的层次ApplicationsOSCompilerInstructionSetArchitecture(ISA)InstructionProcessingInput/OutputHardwarelayer