




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一计算机系统体系结构1.1什么是计算机体系结构本章的第一个概念是计算机系统(computersystem)。计算机系统包括读取并执行程序的中央处理单元(CPU,
保存程序和数据的存储器以及将芯片转换为实用系统的其他子系统。
这些子系统会使CPU与显示器、打印机、Internet等外部设备之间的通信变得更加容易。cpu(处理器):计算机实际执行程序的部分微处理器:在单个硅片上实现的CPU微机:围绕微处理器构建的计算机计算机的性能既取决于CPU;也取决于其他子系统。如果不能高效进行数据传输,
仅仅提高CPU的性能是毫无意义的。Figure
SEQFigure\*ARABIC1:信息(程序和数据):保存在存储器中;计算机会使用不同类型的存储器,达到不同的目的。如果不能叫信息保存在正确的存储器,那么CPU的速度再快也将毫无意义Cache:保存常用的数据是高速专用的存储器。主存:存放大量的工作数据,断电消失辅存:指磁盘等,用于存储海量的数据。永久存储组成计算机的各个子系统通过总线连接在一起,
数据通过总线从计算机中的一个位置传递到另一个位置。什么是计算机Figure
SEQFigure\*ARABIC2:输入:指用户交给计算机的信息输出:指计算机返回给用户的信息可编程计算机接收两种类型的输入:它将要处理的数据,
以及准确描述要如何处理输入数据的程序。
程序不过是计算机所执行的完成给定任务的操作序列。Figure
SEQFigure\*ARABIC3:CPU读程序并完成程序指定的操作。内部使用寄存器来保存数据存储器系统保存两类信息:程序,程序处理或产生的数据计算机从存储器中读出指令并执行这些指令(即完成或执行指令定义的动作)。
执行指令时,可能要从存储器中读出数据,对数据进行操作,将数据写回存储器。寄存器是CPU内部用来存放数据的存储单元。时钟提供了脉冲流,
所有内部操作都在时钟脉冲的触发下进行。时钟频率是决定计算机速度的一个因素程序执行过程Figure
SEQFigure\*ARABIC4:CPU先读取一条指令;在CPU分析或解码指令;从存储器中读出这条指令所需的所有数据。LOADX:从存储器中读出变量X的值。并将它暂存到寄存器中LOADY:从存储器中读出变量X的值。并将它暂存到寄存器中Z=X+Y:将两个寄存器中的内容相加,并将结果写在第三个寄存器中STOREZ:将结果写回到存储单元z中###计算机指令尽管计算机能够执行上百种不同指令,但下面的6条基本指令可以将所有计算机指令进行分类:MovA,B:将B的值复制到ALOADA,B:将存储单元B的值复制到寄存器A中STOREA,B:将寄存器B的值复制到存储单元A中ADDA,B:A与B相加,结果保存到A中TESTA:测试A的值是否为oBEQZ:若最后一次测试结果为TRUE,执行地址Z处的代码,否则继续执行1.2体系结构和组成体系结构:描述了一些与计算机组成方式有关的内容;因为不同的用户会从完全不同的角度看待计算机。寄存器用来存放一个单位的数据或字数据的存储单元。使用它保存数据的位数来描述典型的有8位、16位、32位和64位。与存储器中的字存储单元没有本质区别。唯一区别在于寄存器里cpu近,
访问速度远远大于存储器计算机体系结构通常被认为是程序员视角中的计算机程序员看到的是计算机的抽象视图;计算机的实际硬件和实现都被隐藏起来了这个抽象视图现在通常被称作指令集体系结构(ISA)计算机组成表示其体系结构的具体实现机器码汇编语言高级语言计算机上执行的代码表示为二进制1和0组成的串,被称作机器码(machinecode)。
每种计算机都只能执行一种特定的机器码。人类可读的机器码(例如ADDR0,Time)叫作汇编语言。能够在类型完全不同的计算机上运行,与底层计算机体系结构几乎没有关系的代码叫作高级语言
(比如C或Java)。在执行之前,高级语言程序必须首先被编译为计算机的本地机器码。体系结构与组成是不能完全分离的。例如;微处理器内的32位寄存器可以按照
与16位计算机相同的方式实现,如使用16位数据总线,以16位为单位传输数据,
功能单元也是16位的。如果程序员指示计算机将寄存器A中的32位数据复制到寄存器B中,
他将要执行一个32位操作,但16位计算机将执行两个16位操作,
这对程序员来说是完全不可见的。按照这个例子,我们可以说一台计算机的体系结构是32位的,但它的组成却是16位的。指令集体系结构包括:数据类型(每个字的位数以及各个位的含义),
用来保存临时结果的寄存器,指令的类型和格式,以及寻址方式
(表示数据在存储器中存放位置的方法)。不同层次的程序员看到的计算机是不一样的。汇编语言程序员看到的计算机与C或Java
等高级语言程序员看到的有很大的区别。即使都是高级语言程序员,C程序员所看到的也与Prolog或LISP程序员看到的有很大的不同。微代码(Microcode)与微处理器无关。微代码定义了一组基本操作(微指令),
通过执行这些操作可以解释执行机器码。ADDP,Q,R是一条典型的机器指令,
而微指令可能像“将数据从寄存器X移到总线Y上”那么简单。
如何定义微指令是芯片设计者的职责。术语“体系结构(architecture)”代表计算机的抽象指令集体系结构(它的指令集)术语“组成(organization)”代表计算机的实际硬件实现“组成”一词也会被用于描述完整的计算机,包括它的CPU、存储器、
总线以及输入/输出机制。术语“微体系结构(microarchitecture)”代表CPU的实现1.2.1计算机系统和技术Figure
SEQFigure\*ARABIC5:技术:说明了计算机组件的工艺的重要性(例如,芯片制造技术决定了芯片的速度和功耗)。计算机速度是设计计算机首要考虑的问题。摩尔定律:芯片的集成度每18个月翻一番。应用:表示计算机的最终应用。一些计算机被用于汽车的嵌入式控制系统,一些被用于游戏机,还有一些用于家庭或办公室。工具:一些计算机之外的因素也会影响计算机设计最先进的计算机使用了最新的制造技术。Figure
SEQFigure\*ARABIC6:设备技术:决定了计算机的速度及其存储系统的容量,
包括那些用于制造处理器和主存的半导体技术;制造硬盘的磁技术;
用于CD-ROM、DVD和蓝光光碟的光技术;以及网络连接技术。总线技术:结构、组成和控制均对计算机性能有很大影响。外设(如调制解调器、键盘、打印机和显示系统)与应用(如桌上排版、图形和多媒体)等技术,
都会影响计算机系统的设计。1.2.2计算机体系结构在计算机科学中的地位计算机与计算机科学不能被分开计算机体系结构课程会概述计算机是如何工作的,计算机能做什么,并告诉学生们一台典型的存储程序计算机是如何运转的。计算机是计算机科学的心脏——没有计算机,计算机科学只能作为理论数学的一个分支。理解计算机体系结构对从事计算机领域的工作具有重要帮助。计算机体系结构不能完全与软件分离。计算机体系结构支撑了计算机科学课程体系中其他领域的许多重要观点。时钟时钟是用于生成连续的间隔固定的电脉冲流。之所以被称作时钟,是因为可用这些电脉冲来计时或确定计算机内所有事件的顺序时钟可用它的重复速率或频率来定义。时钟也可以用时钟脉冲的宽度或持续时间来定义,即频率的倒数事件由时钟信号触发的数字电路被称作同步的,因为它们由时钟信号来同步。1.3计算机发展计算机的发展历史丰富而复杂,远比许多人想象得久远。1.3.1机械计算机人类是会计算的生物。穴居人发明数学也许不是为了在湿冷的天气里玩数独游戏,而是为了丈量土地、建造房屋和报税。罗马人将鹅卵石放在小托盘上表示数字。后来,他们沿着线滑动鹅卵石辅助进行加法或减法,从而完成计算。中亚的一些商店,那里的人们用算盘快速地进行计算。1642年,法国数学家布莱士·帕斯卡(BlaisePascal)设计了一个原始的机械加减法计算装置,
能够借助发条完成加减法。1694年,德国数学家弗里德·威廉·莱布尼茨GottfriedwilhelmLeibnite)制作了一台
复杂的机械计算器,能够完成加减乘除运算。这些设备都不能称作现代意义上的计算机,因为它们都是不可编程的。可编程这个概念产生于工业革命时期,出于工业化控制的需要。1801年,人们发明了提花织机,能够自动地将预先设计好的图案织在布上
提花织机使用穿孔木制卡片控制织在纺织品上的图案
卡片上的一个位置上有没有洞决定水平方向的线是在垂直方向的线之前还是之后。
每个打了孔的卡片就是一个程序,因为每个孔的图案指定了一个唯一的操作序列。1882年,查尔斯·巴贝奇(CharlesBabbage)在英格兰设计了一台叫作差分机
(differenceengine)的计算装置,能够自动地计算构造数学表所需的多项式的值。
巴贝奇没有完成他的差分机,1855年PerGeorgScheutz在瑞典制造出差分机。1.3.2机电式计算机机电(electromechanical)指那些有活动件但却由电控制的零件。1867年发明的打字机和1879年发明的穿孔制表机(穿孔卡片输入机)
都促进了机电式计算机的发展。机电式计算机是连接机械时代与以真空管、晶体管和集成电路
为代表的电子时代的纽带。20世纪40年代康拉德.楚泽在德国制造出自己设计的计算机,在第二次世界大战期间该计算机用来设计飞机。楚泽的计算机是第一台可编程计算机;而同时代的其他机器都不是软件可编程的,只能算作是自动计算器。
楚泽还设计了世界上第一种程序设计语言,叫作Plankalküil,1.3.3早期电子计算机1937年~1942年,约翰·文森特·阿塔那索夫(JohnV.Atanasoff)制造出第一台电子计算机
(ABC),用于解线性方程。1944年制造的巨像计算机(Colossus)是另一台早期计算机,它安放于布莱切利园,
二战期间用来破译德军的恩格玛密文。巨像计算机使用真空管,是一台真正的电子计算机,
但它不能存储程序,因而只能完成专门的任务。1945年,J.莫奇利(J.Mauchly)和J.埃克特(J.Eckert)设计了ENIAC,
一台能够处理10位10进制数的真空管计算机,但它不能像今天我们编写程序那样编程。埃克特和莫奇利还设计了一台更先进的计算机——EDVAC,具有存储程序的特征。在英格兰,曼彻斯特大学的研究人员于1948年设计出世界上第一台可操作的存储程序计算机
——曼彻斯特宝宝。AT&T贝尔实验室在1948年发明了晶体管,之后发展出了半导体,
它在功能上与真空管等效,但体积更小,功耗更低。晶体管的发明,
使将多个晶体管放在一块硅片上构成一个完整的电路成为可能。到20世纪60年代中期,IBM设计出System/360体系结构,
在从商用的小型机到科学计算的大型机的产品线上实现了兼容和互操作性。
正是IBMSystem/360导致了计算机体系结构这一概念的出现(即指令集体系结构)。1.3.4微机和PC革命到20世纪70年代,Intel公司和摩托罗拉公司都发布了8位微处理器。
第一台可用的微机Altair8800是由MITS公司于1975年推向市场的。基于Intel的技术和微软的操作系统软件,IBM在20世纪80年代推出了个人电脑(PC机)。
由于它的开放式体系结构,PC机在第三方软、硬件开发者中流行起来。
Intel将8080微处理器扩展为包括16位80286(1982年)和32位80386(1985年),
以及含有64位数据总线的Pentium(1990年)。1.3.5摩尔定律和进步的历程“摩尔定律”一词是卡沃·米德(CarverMead)于1975年根据戈登·摩尔(GordonMoore)
所观察到集成电路的集成度每两年翻一番的现象而创造的。摩尔定律当然是一个经验性的观测结果,但在过去的40年里,
技术的进步的确导致芯片内晶体管数量呈指数式增长。这一增长还伴随着集成电路速度的相应提升。
集成电路内晶体管数量的增加还导致体系结构复杂度的急剧增加以及一些极其聪明的性能提升方法的出现。RISC(精简指令集)与CISC(复杂指令集)1.3.6存储技术发展覆盖着电容的旋转的磁鼓阴极射线管铁氧体磁心存储器磁盘光存储器1.3.7普适计算计算是无所不在的。1.3.8多媒体计算机多媒体处理能力是现代计算机(包括普适的和传统的个人计算机)的一个重要特征。多媒体处理(处理和存储音频/视频数据)需要很大的存储容量以及完成大量简单
重复操作的实时处理声音样本和图像像素的能力。1.4存储程序计算机1.4.1问题Figure
SEQFigure\*ARABIC7:求最大游程,即同一个数字连续出现的最大次数1.4.2解决问题如果我们从数串的左边开始逐个检查数字,在任何一个位置,我们都会得到以下两个结果之一:要么这个数与前一个相同,序列还在增长;要么这个数与上一个不同,前一个序列结束,一个新的序列开始。Figure
SEQFigure\*ARABIC8:1.4.3构造一个算法算法的一些符号
算法
1.4.4计算机需要通过什么来解决问题尽管这个问题相对简单,它却含有解决任一问题所需的全部元素有将信息从一个位置传递到另一个的赋值操作有加、减等算术运算还有根据计算结果(如比较)从两个候选动作中选择一个的操作。Figure
SEQFigure\*ARABIC9:1.4.5存储器下图描述了程序怎样找出保存在一个假想存储器中的数串的最大序列长度。
必须强调的是,这个程序是概念上的而不是实际的,因为真正的计算机指令比其更加基础。这幅图叫作存储器映射,它展示了信息在存储器中的存放位置。
它是存储器的一幅快照,因为它表示存储器在某个特定时刻的状态。
存储器映射也包含程序使用的变量和数字串。存储程序计算机会将指令、变量和常量全部保存在同一个存储器内。Figure
SEQFigure\*ARABIC10:寄存器传输语言(RTL):描述性的语言,不能被执行使用文字描述计算机的操作很不方便。使用RTL可以更加容易地定义计算机内发生的操作。RTL符号描述[内存地址]表示存储单元的内容[内存地址]=value在指定地址保存value的值[内存地址1]<--[内存地址2]+1地址2的数据加上1写入到地址1存储系统
描述了存储系统的组成。处理器将一个放在地址总线上的地址以及一个用于选择读操作或写操作
(它们有时也被称作读或写周期)的控制信号发送给存储器。在读周期中,存储器将数据放在数据总线上供CPU读取。在写周期中,放在数据总线上的数据被写入存储器。信息进入或离开存储器的位置(或计算机系统的其他功能部分)叫作端口。尽管上图存储器是简化后的版本,它却准确地描述了将数据和指令连续存放的计算机存储器。
一台真正的计算机会使用存储系统层次(每个层次都有可能采用不同的技术来实现)。
这些层次包括保存频繁被访问数据的速度非常快的Cache、主存,以及速度非常慢的辅存
在这一层次中大量数据会一直保存在磁盘、光盘或DVD中,直到使用时才会被调入主存。1.5存储程序概念存储程序计算机的基本操作
执行指令
在这台机器上执行一条指令需要至少两次访存。第一次访存是读取指令。第二次访存要么从存储器中读出指令需要的数据,
要么将它之前的指令产生的或修改过的数据写回存储器。三地址指令存储程序计算机的一种直观合理的指令格式可以用下面的形式表示operationAddress1,Address2,Address3operation表示要执行的指令的动作Address_i分别是操作数在存储器中的位置。在这条一般性的指令中,操作数为数据的地址,而不是数据本身。RTL:[Address1]<--[Address2]Operation[Address3]Figure
SEQFigure\*ARABIC11:指令的4个字段、cpu、存储器和指令执行方式之间关系:解释执行指令
Figure
SEQFigure\*ARABIC12:两地址指令指令格式如下OperationAddress1,Address2Address2为源操作数,Address1既是源操作数也是目的操作数。RTL语言:[P]<--[P]Operation[Q]实际的计算机中,一般都不允许同一条指令中使用两个存储地址;
大多数计算机规定一个地址是存储器地址,另一个地址是寄存器。单地址指令指令格式如下operationaddress指令中只提供了一个操作数地址指令却需要至少两个地址,处理器不得不使用一个不需要显式地址的第二操作数。
也就是说,第二个操作数来自CPU内一个叫作累加器(accumulator)的寄存器。操作结果将一直保存在寄存器中,直到另一条指令将它送入存储器。Figure
SEQFigure\*ARABIC13:计算机分类存储器–存储器型:一条指令能够从存储器中读出源操作数,对数据完成某个操作,
并将结果保存在存储器中寄存器–存储器型:它们能够处理两个数据,
其中一个位于存储器中,另一个位于寄存器中(结果要么被写回存储器,要么被写回寄存器)。寄存器―寄存器型:计算机只能对寄存器中的内容进行操作;使用LOAD指令将数据读入寄存器使用STORE指令将数据从寄存器送回存储器。1.6计算机系统概览CPU变成计算机系统的存储系统和总线系统。存储器被视作一个巨大的通过地址访问的数组。例如,如果用数组M表示存储器,那么它的第i个元素可以表示为M[i];存储器非常重要,因为它的大小(即存储容量)决定了程序能够存储的数据量,
它的速度(访问时间)决定了程序的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小主持人培训
- 长春市农安县2025年一级建造师市政工程高分冲刺试题含解析
- 固定资产管理的成效与建议计划
- 提升专业技能应对挑战计划
- 年度成果总结与展望计划
- 组织跨学科活动的思路计划
- 安全演习提升保安应变能力计划
- 教学工作计划调整流程详解步骤
- 如何增强急救人员的职业意识计划
- 大班团队学习成果展示计划
- 玉盘二部合唱简谱
- 摄影培训教学课件:摄影用光
- 特殊人群生理特点与营养需要
- 土壤分析技术规范(第二版)
- 大学生个人求职简历封面 (82)应聘投稿找工作履历表封面
- 高速公路工程质量实例分析(306页图文丰富)
- 化学品标识图
- 特种设备使用单位风险评价打分表终附(共19页)
- PMC部门架构、职责与工作流程
- 广东省浅层地下水功能区划图(共22页)
- 太阳能光伏系统支架通用技术要求
评论
0/150
提交评论