Chapter1.12020年8月20日星期四计算机体系结构主讲:余金森联系QQ:184611704Chapter1.22020年8月20日星期四本课程主要介绍计算机组成与系统结构所涉及的相关概念、理论和技术内容。通过本课程的教学,使学生了解计算机系统的组织结构。掌握计算机软硬件交界面的相互配合与相互弥补思想。了解计算机体系结构中的主要技术和方法。教学目的和要求:成绩计算:平时成绩(30%)+期末考试(70%)。Chapter1.32020年8月20日星期四第一讲计算机系统概述°计算机发展简史•IAS通用计算机模型机:冯.诺依曼结构•IBM360系列机:引入兼容性(系列机)概念•DECPDP-8:引入总线结构°计算机系统的组成•计算机硬件:CPU+MM+I/O•计算机软件:系统软件+应用软件°计算机层次结构•计算机硬件和软件的接口:指令系统•计算机软件如何在硬件上执行Chapter1.42020年8月20日星期四°什么是计算机?•计算机是一种能对数字化信息进行自动、高速运算的通用处理装置。°计算机的功能:•数据运算、数据存储、数据传送、控制°计算机的特点:•高速:高速元器件和“存储程序”工作方式带来高速性•通用:体现在处理对象和应用领域没有限制•准确:精度足够的算术运算带来准确性•智能:逻辑推理能力带智能性计算机的功能和特点Chapter1.52020年8月20日星期四冯·诺依曼结构的主要思想1.计算机应由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。2.各基本部件的功能是:存储器不仅能存放数据,而且也能存放指令,形式上两者没有区别,但计算机应能区分数据还是指令;控制器应能自动执行指令;运算器应能进行加/减/乘/除四种基本算术运算,并且也能进行一些逻辑运算和附加运算;操作人员可以通过输入设备、输出设备和主机进行通信。3.内部以二进制表示指令和数据。每条指令由操作码和地址码两部分组成。操作码指出操作类型,地址码指出操作数的地址。由一串指令组成程序。4.采用“存储程序”工作方式。有的书上1,2是在一条内的。所以一般称为三大内容Chapter1.62020年8月20日星期四PC主板CPU插座内存条PCI总线插槽Chapter1.72020年8月20日星期四解剖计算机个人计算机由主机和外设组成主机中包含多个电路板每个电路板中有十几个集成电路每个集成电路中有十几个模块每个模块中有上千万个单元每个单元中有十几个门电路每个门电路实现基本的逻辑运算所有信息都用二进制编码表示Chapter1.82020年8月20日星期四Hardware/SoftwareInterface…,EXTop=1,ALUSelA=1,ALUSelB=11,ALUop=add,IorD=1,Read,MemtoReg=1,RegWr=1,......temp=v[k];v[k]=v[k+1];v[k+1]=temp;lw$15,0($2)lw$16,4($2)sw$16,0($2)sw$15,4($2)10001100010011110000000000000000100011000101000000000000000001001010110001010000000000000000000010101100010011110000000000000100Chapter1.92020年8月20日星期四Hardware/SoftwareInterface(界面)机器语言由指令代码构成,能被硬件直接执行。软件和硬件的界面:ISA(InstructionSetArchitecture)指令集体系结构软件硬件Chapter1.102020年8月20日星期四Software°Systemsoftware(系统软件)-简化编程过程,使硬件资源被有效利用•操作系统(OperatingSystem):硬件资源管理,用户接口•语言处理系统:翻译程序+Linker,Debug,Loader,etc…-翻译程序(Translator)有三类:汇编程序(Assembler):将汇编语言源程序翻译为机器语言目标程序文件。编译程序(Complier):将高级语言源程序翻译为汇编语言或机器语言目标程序文件。解释程序(Interpreter):将高级语言语句逐条翻译成机器指令并立即执行。不生成目标文件。•其他实用程序:如:磁盘碎片整理程序、备份程序等°Applicationsoftware(应用软件)-解决具体应用问题/完成具体应用任务•各类媒体处理程序:Word/Image/Graphics/…•管理信息系统(MIS)•Game,…Chapter1.112020年8月20日星期四ComputerHierarchy(计算机系统层次)I/OCPUCompilerOperatingSystemApplicationDigitalDesignCircuitDesign°上图给出的是计算机系统的层次结构指令系统(即ISA)是软/硬件的交界面InstructionSetArchitecture°不同用户工作在不同层次,所看到的计算机不一样最终用户EndUser应用程序员ApplicationProgrammer系统管理员SystemAdministrator系统程序员SystemProgrammerMMAssembler°中间阴影部分就是本课程主要内容,处于最核心的部分!Chapter1.122020年8月20日星期四一个典型系统的硬件组成PC:程序计数器;ALU:算术/逻辑单元;USB:通用串行总线CPUMMInput/OutputChapter1.132020年8月20日星期四一个典型程序的转换处理过程1#includestdio.h23intmain()4{5printf(hello,world\n);6}经典的“hello.c”C-源程序#includespstdio.3510511099108117100101326011511610010511146h\n\nintspmain()\n{1046210101051101163210997105110404110123\nspspspspprintf(hel10323232321121141051101161024034104101108lo,spworld\n);\n}10811144321191111141081009211034415910125hello.c的ASCII文本表示程序的功能是:输出“hello,world”Chapter1.142020年8月20日星期四计算机能够直接识别hello.c源程序吗?不能,需要转换为机器语言代码!即:编译Chapter1.152020年8月20日星期四Hello程序的数据流动过程“hello”Hello可执行文件Red:shell命令行处理Blue:可执行文件加载Cyan:hello程序执行过程“hello”“hello,world/n”“hello,world/n”所有过程都是在CPU执行指令所产生的控制信号的作用下进行的。数据经常在各存储部件间传送。故现代计算机大多采用“缓存”技术!unix./hellohello,worldunix[Enter]Chapter1.162020年8月20日星期四该课程的主要学习内容信息(指令和数据)在计算机中如何表示?指令系统如何设计?如何设计高性能CPU?如何设计存储器系统?如何设计I/O?如何设计总线BUS?Chapter1.172020年8月20日星期四CourseOutline°性能评价(Performancemeasurement)°计算机算术(ArithmeticforComputer)•数据的表示和运算°存储器层次结构(MemoryHierarchies)°指令集体系结构(InstructionSetArchitecture)°CPU设计•数据通路(Datapath)和控制器(ControlUnit)°流水线技术(Pipelining)°系统总线(SystemBuses)°输入/输出系统(Input/Outputsystem)Chapter1.182020年8月20日星期四计算机性能评价°制造成本(manufacturingcost)°衡量计算机性能的基本指标•响应时间(responsetime)-执行时间(executionTime)、等待时间(latency)•throughput(吞吐量)-带宽(bandwidth)°计算机性能测量°指令执行速度(MIPS、MFLOPS)°基准程序(Benchmark)Chapter1.192020年8月20日星期四计算机性能的基本评价指标XisntimesfasterthanYmeansExTime(Y)Performance(X)=ExTime(X)Performance(Y)相对性能用执行时间的倒数来表示!°计算机有两种不同的性能°Timetodothetask–响应时间(responsetime)–执行时间(executiontime)–等待时间或时延(latency)°Tasksperday,hour,sec,ns...–吞吐率(throughput)–带宽(bandwidth)°基本的性能评价标准是:CPU的执行时间不同应用场合用户关心的性能不同:要求吞吐率高的场合,例如:多媒体应用(音/视频播放要流畅)要求响应时间短的场合:例如:事务处理系统(存/取款的速度要快)要求吞吐率高且响应时间短的场合:ATM、文件服务器、Web服务器等Chapter1.202020年8月20日星期四计算机性能的测量°比较计算机的性能时,用执行时间来衡量•完成同样工作量所需时间最短的那台计算机就是性能最好的•处理器时间往往被多个程序共享使用,因此,用户感觉到的程序执行时间并不是程序真正的执行时间(从hello程序执行过程可知)•通常把用户感觉到的响应时间分成:-CPU时间:指CPU真正花在程序执行上的时间。又包括两部分:用户CPU时间:用来运行用户代码的时间系统CPU时间:为了执行用户程序而需要运行操作系统程序的时间-其他时间:指等待I/O操作完成或CPU花在其他用户程序的时间•系统性能和CPU性能不等价,有一定的区别-系统性能(Systemperformance):系统响应时间,与CPU外的其他部分也都有关系-CPU性能(CPUperformance):用户CPU时间•本章主要讨论CPU性能,即:CPU真正用在用户程序执行上的时间问题:用户CPU时间与系统响应时间哪个更长?Chapter1.212020年8月20日星期四CPU执行时间的计算CPU执行时间=CPU时钟周期数/程序X时钟周期=CPU时钟周期数/程序÷时钟频率=指令条数/程序XCPIX时钟周期CPU时钟周期数/程序=指令条数/程序XCPICPI=CPU时钟周期数/程序÷指令条数/程序CPI用来衡量以下各方面的综合结果•InstructionSetArchitecture(ISA)•Implementationofthatarchitecture•programCPI:CyclesPerInstructionChapter1.222020年8月20日星期四Architecture=InstructionSetArch.+OrganizationComputerDesignComputerHardwareDesign°MachineImplementation°LogicDesigner'sView°ProcessorArchitecture°ComputerOrganizationConstructionEngineerInstructionSetDesign°MachineLanguage°CompilerView°ComputerArchitecture°InstructionSetProcessorBuildingArchitect“建筑设计师”功能定义与设计“建造工程师