ComputerOrganizationComputerSystemsAProgrammer'sPerspectiveRandalE.Bryant,DavidO'Hallaron2C语言参考:《C语言程序设计:现代方法》(美)King,K.N.著,吕秀锋译人民邮电出版社2007.11计算机组成原理参考:《编程卓越之道第一卷:深入理解计算机》RandallHyde著电子工业出版社2007年3月《计算机组成原理(第2版)》唐朔飞著高等教育出版社2008年1月Referenceopen-src3CourseOutline计算机系统漫游信息的表示和处理程序的机器级表示处理器体系结构存储器层次结构链接异常控制流虚拟存储器系统级I/Oopen-src4CourseRoleopen-srcTransitionfromAbstracttoConcrete!From:high-levellanguagemodelTo:underlyingimplementationFundamentalStructurescomputersystemOperatingSystemsCompilersProcessesMem.MgmtMachineCodeOptimizationDataStructuresApplicationsProgrammingNetworksNetworkProtocolsArchitectureEmbeddedSystemsExec.ModelMemorySystemCProgramming目前为止的课程主要强调了计算机的抽象;但其缺陷是,程序出现bug和性能问题时,需要理解底层的实现,所以要还原真实。5先期基础:Linux操作技能、C语言编程基础、数字逻辑设计基础。课程目标:到课程结束,能理解所有计算机系统的本质概念:从程序员的角度,建立一个层次型的计算机系统概念模型,从底层的数据内存表示,到指令的构成、虚拟存储器、编译系统、动态链接库、直到最上层的用户应用程序。深入理解计算机系统影响C程序性能的各个方面,提高学生编写高效C程序的能力。CourseObjectiveopen-src6学习动力:为什么学?核心课;解决问题;兴趣;喜爱...学习方法:课前预习,注重概念的理解,有疑问作标记,也可google。用心听讲,要求以理解为主,有感悟的地方先用草稿纸快速记下,要求高度集中精力(请晚上10点入睡,保证)。课后结合笔记整理讲义,多做练习题,强烈建议独立完成课后上机作业,不要有困难就放弃。上机课要求事先思考实验题目,勾勒初步解决方案并记在纸上,然后上机解决。建议成立三人学习小组。HowToStudyopen-src7平时考核:中期考试30%平时实验成绩20%期末考核:笔试50%。(暂定)AboutTheExamopen-srcCH00PreparationforCSAPP体系结构、组织和实现☆VonNeumann结构★2010_Spring_csapp@pe.cqnu9现代计算机的层次结构结构、组织和实现机器:能存储和执行相应语言程序的算法和数据结构的集合体。各级机器的实现主要靠翻译和解释。10Architecture结构、组织和实现.体系结构体系结构:对计算机系统中各机器级之间Interface的划分和定义,是各机器级对程序员可见的属性。类似于编程语言的函数库的调用接口。在计算机层次结构中,各级都有它自己的体系结构。透明:本来存在的事物或属性,从某个角度上看不到,称对它是透明的。体系结构设计研究的就是对某级,哪些应当透明,哪些应当不透明。正确合理地进行透明性分析和取舍是非常重要的。一般所称的计算机体系结构指的是传统机器级Interface的体系结构,研究的是软硬件之间的功能分配,提供其上级的机器语言、汇编语言程序员或者编译程序设计者可见的计算机属性。至于下级的机器级内部的数据流和控制流的组成,逻辑设计和器件设计等对体系结构设计是透明的,属于计算机组织的内容。11ArchitectureDesign结构、组织和实现.体系结构体系结构需要设计的计算机属性一般包括:1.数据表示:硬件能直接识别和处理的数据类型和格式等;2.寻址方式:最小可寻址单位、寻址种类、地址计算等;3.寄存器组织:通用/专用寄存器的设置、数量、字长、使用约定等;4.指令系统:二进制或汇编级指令的操作类型、格式、排序方式、控制机构等;5.存储组织:内存编址方式、容量、最大可编址空间等;6.中断机构:中断的分类与分级、中断处理程序功能及入口地址等;7.系统机器级的核心态和用户态的定义和切换;8.机器级I/O结构:输入输出设备的连接、使用方式、流量、操作结束、出错指示等;9.系统各部分的信息保护方式和保护机构。12Hardware/SoftwareInterface结构、组织和实现.体系结构13Organization结构、组织和实现.组织计算机组织:计算机体系结构的逻辑实现,包括机器级内的数据流和控制流的组成以及逻辑设计等,它包含了许多对程序员来说透明的硬件细节。它着眼于机器级内各事件的排序方式与控制机构、各部件的功能及各部件间的联系。计算机组成设计要解决的问题是在所希望达到的性能和价格下,怎样最佳、最合理地把各种设备和部件组织成计算机,以实现所确定的体系结构。近40年里,计算机组成设计主要是围绕提高速度,着重从提高操作的并行度、重叠度,以及分散功能和设置专用功能部件来进行的。14OrganizationDesign结构、组织和实现.组织计算机组织设计是对计算机属性的逻辑实现:1.数据通路宽度:在数据总线上一次并行传送的信息位数多少;2.专用部件的设置:设置哪些专用部件,如乘除法专用部件、浮点运算部件、字符处理部件、地址运算部件等,每种专用部件设置的数量,这些都与机器所需达到的速度、专用部件的使用频度高低及允许的价格等有关;3.各种操作对部件的共享程度;4.功能部件的并行度:功能部件的控制和处理方式是采用顺序串行,还是采用重叠、流水或分布处理;15OrganizationDesign(cont.)结构、组织和实现.组织计算机组织设计是对计算机属性的逻辑实现:5.控制机构的组成方式:事件、操作的排序机构采用硬联控制还是用微程序控制,采用单机处理还是用多机处理或分布处理;6.缓冲和排队技术:在不同部件之间怎样设置及设置多大容量的缓冲器来弥补它们的速度差异;是采用随机方式,还是先进先出、先进后出、优先级或循环方式来安排等待处理事件的先后顺序;7.预估、预判技术:为优化性能和优化处理,采用什么原则来预测未来的行为;8.可靠性技术:采用什么样的冗余技术和容错技术来提高可靠性;16Implementation结构、组织和实现.实现计算机实现指的是计算机属性的物理实现。包括处理器、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,微组装技术等等。17结构、组织和实现的关系结构、组织和实现指令系统的确定属于计算机体系结构;指令的逻辑实现:如取指令、指令操作码译码、计算操作数地址、取数、运算、送结果等的操作安排和排序属于计算机组成;实现这些指令功能的具体电路、器件的设计及装配技术属于计算机实现。确定指令系统中是否要设乘法指令属于计算机体系结构;乘法指令是用专门的高速乘法器实现,还是靠用加法器和移位器经一连串时序信号控制其相加和右移来实现属于计算机组成;乘法器、加法移位器的物理实现:如器件的类型、集成度、数量、价格,微组装技术的确定和选择属于计算机实现。主存容量与编址方式(按位、按字节还是按字访问等)的确定属于计算机体系结构;为达到性能价格要求,主存速度应该为多少,逻辑结构是否采用多体交叉属于计算机组成;主存器件的选定、逻辑设计、微组装技术的使用属于计算机实现。18结构、组织与CSAPP结构、组织和实现计算机体系结构和计算机组成是密切相关的,具有相同体系结构的计算机可以因为速度等因素的不同而采用不同的组织;计算机组织也会影响体系结构。二者往往是在一门课程中讲授。本门课程不同于传统的计算机结构与组织的课程,它不仅从计算机结构和组织相结合的角度介绍计算机系统,并且更着眼于讨论那些影响C语言程序的话题。CH00PreparationforCSAPP体系结构、组织和实现☆VonNeumann结构★2010_Spring_csapp@pe.cqnu20VonNeumann结构的设计VonNeumann结构从最上层的角度来分析现有的计算机体系结构,都属于控制流驱动的VonNeumann结构,其要点是:计算机采用二进制数制表示数据和指令采用存储程序方式由运算器,控制器,存储器,输入装置和输出装置组成一般体系结构的设计者是从功能和结构从发进行设计的:结构:部件相互关联的方式。功能:作为相关结构组成部分的每个部件的操作。21计算机的基本功能VonNeumann结构DataprocessingDatastorageDatamovementControlDataMovementApparatusControlMechanismDataStorageFacilityDataProcessingFacilityOPERATINGENVIROMENTSourceandDestinationofData计算机的通用性是根本的,所有功能的专门化均发生在编程阶段,而不是在设计阶段。22VonNeumann结构VonNeumann结构ComputerMainMemoryInputOutputSystemsInterconnectionPeripheralsCommunicationlinesCentralProcessingUnitComputer23CPUVonNeumann结构CPU是计算机中最有趣、最复杂的部分。ComputerArithmeticandLoginUnitControlUnitInternalCPUInterconnectionRegistersCPUI/OMemorySystemBusCPU24控制器VonNeumann结构CPUControlMemoryControlUnitRegistersandDecodersSequencingLogicControlUnitALURegistersInternalBusControlUnit控制器普遍采用微程序的实现方法。25某个VonNeumann结构VonNeumann结构123567894CU控制单元主存储器MDRMAR存储体CPUPC控制器IR…运算器MQACCALUXI/O指令=操作码+操作数26计算机的性能指标VonNeumann结构1.机器字长:CPU一次能处理数据的位数。与CPU中的寄存器位数有关。2.运算速度ni=1fitiTM∑吉普森法主频每秒执行百万条指令MIPS执行一条指令所需时钟周期数CPI每秒浮点运算次数FLOPS27''IhearandIforget;IseeandIremember;IdoandIunderstand.''---AChineseProverbLet'sbeginnow...open-src