【文档说明】计算机基础知识及性能评价课件.ppt,共(68)页,636.507 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-76527.html
以下为本文档部分文字说明:
第1章计算机基础知识及性能评价本章主要内容•计算机系统概述–计算机系统组成(硬件/软件)–计算机发展简史–计算机指令结构–CISC和RISC–计算机的技术指标(一些基本单位的意义)•计算机的基本结构–RISCCPU的基
本结构–多线程CPU和多核CPU–存储层次和虚拟存储器管理–I/O接口和总线•如何提高计算机的性能–计算机性能评价–踪迹驱动模拟和执行驱动模拟–高性能计算机和互联网络•硬件描述语言数字计算机与模拟计算机•通常所说的计算机实际上
是指电子数字计算机。–“电子”指计算机的基本元件是电子元件。–“数字”指计算机内部电路是数字电路。•计算机内部数据以数字量(二进制数)形式存在。–数字量(离散量)是不连续的,到了最小量后不可再分解。–模拟量是连续的,电子模拟计算机以电压值的大小表
示数值。•数字电路与模拟电路比较,具有如下优点:–电路简单–抗干扰能力强、可靠性高–状态转换快1.1计算机系统概述•1.1.1计算机系统的组成•大家都知道计算机内部有CPU(CentralProcessingUnit),
存储器(Memory)和一些连接键盘、显示器等的I/O接口(Input/OutputInterface)。•包含了以上三种部件的芯片或电路板就称为单片机或计算机(主机)。•光有上面的这些部件,我们还不能直接使用这个计算机。–因为没有I/O设备(Input/OutputDevice)和计算机软件(
Software)。•最基本的软件是操作系统(OS—OperatingSystem)。它负责管理计算机系统的所有资源,为用户使用计算机提供一个界面。–最常用的操作系统是MS-DOS和Linux核(Kernel)。–Windows、Fedo
ra和CentOS等可被认为是在基本操作系统上开发的高级图形界面。•软件是在计算机硬件的基础上,根据一些算法而编制的程序和文档。•算法是指任何有目的、有计划的行为,根据一些基本操作按一定顺序进行操作的序列。–是程序的核心。•计算机系统一般配有一些软件,如:–编辑器(Edit
or),编译器(Complier)和汇编器(Assembler),软件调试器(Debugger)。–常用的实用程序库(Utilities)。–其他的软件可以统称为应用程序(Applications)。•软件的开发过程–选用一种高级语言(或汇编语言),用一个编辑器
来编写程序,并存入硬盘。–用编译器或汇编器把它转换成目标码(CPU可执行的二进制的机器码),仍然存放在硬盘上。–通过操作系统执行它,看是否能工作,得到预期的结果。–若得不到预期的结果,可用调试器来跟踪程序的执行,找出错误所在。•一个成熟的软件要经过成百上千次调试才能趋于完善。•常用的I/O设备
有键盘、鼠标、显示器、硬盘、打印机、扫描仪、摄像头、扬声器、话筒、光驱和U盘。•把计算机(CPU)和I/O设备统称为硬件(Hardware)。•硬件是计算机物理设备的总称,是实实在在的东西。–物理构成
由各种电子器件、印刷线路板等构成的各种计算机插件,机架、电源、散热系统以及各种功能的外部设备等所组成的复杂系统。–逻辑功能由中央处理机、存储器、外部设备和它们之间的信息连线、接口所组成。计算机系统计算机处理器
(CPU)存储器I/O接口I/O设备键盘、鼠标、显示器、硬盘、打印机摄像头、扬声器、话筒、U盘、光驱扫描仪、磁带机软件操作系统、编译器、汇编器、连接器实用程序应用程序电源计算机系统组成•总结:计算机系统由硬件和软件构成。•目前硬件功能简单,软
件功能复杂的原因:–可行性。过于复杂的硬件设计有可能实现不了。–成本。计算机的售价必须控制在市场能够接收的范围之内。–增强适应性。同样的祼机安装不同的软件就变成了功能各异的虚拟机。1.1.2计算机发展简史特征:–采用电子管
作为逻辑元件;–用阴极射线管或声汞延迟线作主存储器;–数据表示主要是定点数表示;–采用机器语言或汇编语言编写程序。–主要是为军事和国防尖端技术而研制计算机。第一代计算机(1946年-1954年)第二代计
算机(1955年-1964年)特征:–用晶体管代替电子管;–用铁淦氧磁芯和磁盘作主存;–引入变址寄存器和浮点运算部件;–利用I/O处理机提高输入输出操作能力等。–引入了高级语言(如Fortran等)进行程序设计;–建立了子程序库和批处理管理程序。–计算机除在军事和国
防尖端技术上应用外,还用于气象、工程设计、数据处理以及其它科学研究等领域。第三代计算机(1965年-1974年)•特征–用中小规模集成电路IC代替了分离晶体管,–用半导体存储器逐渐代替铁淦氧磁芯存储器;–广泛使用微程序技术简化处理机设计、提高了处理机的灵活性;–引进了多道程序、并行处理等新技术。–
在软件方面,操作系统的成熟及其功能的日益强大是第三代计算机的显著特点;–多处理机、虚拟存储器系统以及面向各种用户的应用软件的发展,丰富了计算机的软件资源。•为了充分利用已有的软件资源,解决软件兼容问题而发展了多种系列机。所谓通用化、标准化、系列化已成为计算机设计的
指导思想。–通用化:指令系统丰富,兼顾科学计算、数据处理、实时控制三个方面。–系列化:指各档次的机器采用相同的系统结构,从而保持程序兼容。•即在指令系统、数据格式、字符编码、中断系统、控制方式、输入/输出操作方式等方面保持一致。•程序兼容是指在一种型号上运行的程序可以不加修改地在其它型号计算
机上运行,只是执行时间不同而已。–标准化:采用标准构件,通过积木方式来构造计算机系统。即DIY的思想。•在计算机的另一个发展方向是大量生产低成本的小型计算机。–最典型的例子是DEC公司的PDP-11系列机,由于它的成本低、性能好,适用范围广,在计算机的推广普及方面起了巨大的作用。第四代计算机(
1975年以后)特征:–以大规模集成电路LSI和超大规模集成电路VLSI为计算机主要功能部件;–用集成度高的半导体存储单元作主存储器;–在系统结构方面发展并行处理技术、多机系统、分布式计算机系统和计算机网络以及非冯.诺依曼结构计算机等。–在软件方面发展分布式计
算机操作系统、数据库和知识库、高效可靠的高级语言以及软件工程标准化等,并逐步形成软件产业部门。•第四代计算机另一重要分支是微处理器和微型计算机。–1971年Intel公司研制成功的微处理器4004,之后又研制成8080。目前市场上已有16位、32位和64位微型计算机。–微型计算机体积小、功耗低、
成本低,其性能价格比优于其它类型的计算机。类型时期主要器件重要特征第1代1946-1957电子管机器语言,汇编语言。速度低,体积大,价格昂贵,可靠性差,用于科学计算。速度达几千次到几万次第2代1958-1964晶体管
算法语言,操作系统。体积缩小,可靠性提高。从科学计算到数据处理。每秒几万次到几十万次第3代1965-1973中小规模集成电路体积小,可靠性大大提高,速度达几百万次,软件技术和外设发展迅速应用领域不断扩大。第4代1974-1990大/超大规模集成电路速度提高至几千万次出现微型计算机
(PC)第5代1990-巨大规模集成电路速度提高至几亿次乃至上百亿次。出现单片机•计算机发展促进了人工智能的发展,提出了智能计算机的概念。一般要求智能计算机具有下列功能:–智能接口功能能自动识别自然语言(文字、语音)和图形、图象(
视觉)能力。–理解和推理功能要求能根据计算机内存储的信息(知识)进行推理,具有问题求解和学习功能。–知识库管理功能要求能完成知识获取、知识检索和知识更新等功能。•另一个问题是软件的保护。1.1.3计算机指令结构•CPU能执行
的实际上是它能理解的指令(Instruction)。•不同的CPU有不同的指令系统,它们的格式以及二进制位的表示也是不同的。•指令格式如下:操作码地址码–操作码部分指定该指令要完成什么样的操作。–地址码部分可以是立即数、
寄存器号、存储器地址或者它们的结合。作用是给出如何得到操作数以及把指令的操作结果存到什么地方等信息。–立即数是直接参与运算的数据(常量,运行过程中不允许变化),在指令中给出。•立即数的二进制位数从8—32位不等。•CPU中有多个寄存器,它们能够保存数据(
可以变化—变量),且速度非常快。–一般8—256个不等。•存储器的地址(二进制数)一般是32位。有些CPU直接在指令中给出,有些是通过寄存器的内容与立即数相加得到。–存储器数据也是变量,常量也可以放到存储器中。•C语言语句的
类型–分支语句(if,switch)、循环(for,while,do--while)、顺序(赋值等)。•指令种类–整数算术运算和逻辑运算–寄存器与存储器之间的数据传送–条件与无条件转移–子程序调用与返回–浮点运算–I/O访问–系统维护,
如系统调用和从中断返回等。•下面用C语言编写一个乘法的函数mull16,要求用加法和移位操作实现两个16位无符号数相乘,结果为32位无符号数。下面以4位为例来说明算法。startenda—multiplicandb—mult
iplierc=0—producti=0--counteri<16Yb&1==1Yc=c+aa=a<<1b=b>>1i++Nreturnca=1011b=1101c=0a*b10111101101100001011101110001111c=c+1*aa=a<<1c=c
+0*aa=a<<1c=c+1*aa=a<<1c=c+1*aunsignedintmull16(unsignedintx,unsignedinty){unsignedinta,b,c,i;a=x;b=y;c=0;for(i=0;i<16;i++){if((b&1)==1){c=c+a
;}//LSBofbis1a=a<<1;//shifta1-bitleftb=b>>1;//shifta1-bitright}returnc;}•如果CPU为X86结构,经过VC6.0编译后生成如下的X86程序。–debugruntocursordisassebly。•从程序中的一
条指令addecx,dwordptr[ebp-4]可以看出,X86的指令具有双操作数的结构。其中一个是通用寄存器ecx(源/目的寄存器),另一个是内存地址ptr[ebp-4](源操作数地址)。12:unsignedintmull16(unsignedintx,unsignedinty)13:{00
401090pushebp00401091movebp,esp00401093subesp,50h00401096pushebx00401097pushesi00401098pushedi00401099leaedi,[ebp-50h]0040109Cmovecx,14h004010
A1moveax,0CCCCCCCCh004010A6repstosdwordptr[edi]14:unsignedinta,b,c,i;15:a=x;b=y;c=0;004010A8moveax,dwordptr[ebp+8]004010ABmo
vdwordptr[ebp-4],eax004010AEmovecx,dwordptr[ebp+0Ch]004010B1movdwordptr[ebp-8],ecx004010B4movdwordptr[ebp-0Ch],016:for(i=0;i<16;i++){004010BB
movdwordptr[ebp-10h],0004010C2jmpmull16+3Dh(004010cd)004010C4movedx,dwordptr[ebp-10h]004010C7addedx,1004010CAmovdwordptr[ebp-10h],edx004010CDc
mpdwordptr[ebp-10h],10h004010D1jaemull16+69h(004010f9)17:if((b&1)==1){//LSBofbis1004010D3moveax,dword
ptr[ebp-8]004010D6andeax,1004010D9cmpeax,1004010DCjnemull16+57h(004010e7)18:c=c+a;}004010DEmovecx,dwordptr[ebp-
0Ch]004010E1addecx,dwordptr[ebp-4]004010E4movdwordptr[ebp-0Ch],ecx19:a=a<<1;//shifta1-bitleft004010E7move
dx,dwordptr[ebp-4]004010EAshledx,1004010ECmovdwordptr[ebp-4],edx20:b=b>>1;//shifta1-bitright004010EFmove
ax,dwordptr[ebp-8]004010F2shreax,1004010F4movdwordptr[ebp-8],eax21:}004010F7jmpmull16+34h(004010c4)22:returnc;004010F9moveax,dwordptr[ebp-0Ch]23:}0
04010FCpopedi004010FDpopesi004010FEpopebx004010FFmovesp,ebp00401101popebp00401102ret•编译成MIPS机器的汇编程序,可以看出,该机器的指令具有三个操
作数的结构,其中二个为源操作数,另一个为目的操作数。•还有一个地址的指令,也有0个地址的指令。具体情况在以后介绍。•下表以add指令为例进行总结,其中x,y,z既可以是存储器地址,也可以是寄存器编号。面向通用寄存器或存储器面向累加器面向堆栈三操作数指令二操作数指令一操作数指令零操作数指令
addx,y,zaddx,yaddxadd表以操作数个数对指令进行分类所有的指令均用二进制表示。每条指令所用的二进制位数不等,在此不一一列出。不同机器的指令的复杂程度也不一样。见(P6-7)1.1.4CISC和RISC•随着集成电路制造
工艺的进步,计算机硬件成本不断下降,软件成本不断上升,促使人们在指令系统中增加指令条数和指令的复杂度,给软件提供了更多的支持,这就形成了CISC计算机。•CISC是对那些具有复杂指令系统的CPU的总称。有2层意思:–一条指令能完成复杂的操作,如从存储器取来数据、计算、再把结果存入存
储器中。–指令格式不规范,操作码及整个指令的长度不统一。•CISC指令系统试图提供与某些高级语言的语句相对应的指令,使一条指令能完成尽可能多的操作。如:–计数器减1,如果计数器不为0则跳转。–为提高数组元素计算效率,一条指令可以完成多个操作,如相加,访存,修改等。•CISC指令系统往往会提供丰富的
寻址方式(AddressingModes)。•是不是CISC所有的指令都是复杂指令呢?NO。•编译器能否有效地使用这些复杂的指令呢?NO。•CISC在当时的优点是代码紧凑,使用较少的存储器。缺点是实现复杂的指令需要较多的芯片面积且不利于流水线操作。精简指令系统计算机(RISC)•20世
纪70年代,工程技术人员对CISC计算机进行测试。测试结果表明,仅占指令总数的20%的简单指令在程序中出现的概率高达80%;而功能复杂的指令在程序中出现的概率却很低,实现这些指令的成本却很高。•由此产
生了精简指令计算机的想法。•RISC指令系统的特点:–指令长度固定。它有利于流水线CPU设计。–所谓的Load/Store结构,即一条Load指令把存储器的数据读取到寄存器中,一条Store指令把寄存器的数据写(存)
到存储器中。–运算指令的操作数都在寄存器中。•RISC是否已经取代了CISC呢?NO!–CISC(如X86)有大量的软件资源可以继承,而RISC没有。•RISC和CISC在竞争中相互借鉴、取长补短。CISC和RISC总结•RISC计算机与CISC计算机相比的特点:–减指令总数,优先选用使用
频率高的简单指令。–指令长度固定,指令种类较少。–寻址方式种类少。–只有取数和存数指令需要访问主存,其他指令的操作都在寄存器之间进行,因此大部分指令都可以在一个周期内完成。–处理器中设置大量的通用寄存器。–为提高指令执行速度,采用流水
线技术和硬连线控制逻辑。–采用优化编译技术对高级语言程序进行编译,减少程序的执行时间。•说明:–I代表对于同一个高级语言程序编译后产生的机器指令条数。–T是一个机器周期。–CPI是每条指令实际的机器周期数。1.1.5计算机的主要指标•1、运算速度主频是指CPU的时钟频率。设时钟频率为f,时钟
周期为T,则f=1/T目前CPU的时钟频率在3GHz左右。计算机速度是指在单位时间内执行指令的平均条数或执行的平均操作结果数。单位为MIPS(百万条/秒)。计算机的速度主要受限于电信号传输延迟和门电路延迟时间以及
计算机系统结构等因素。•指令的平均执行时间Tm=∑(每种指令在程序中出现的概率*该指令周期)•平均运算速度Vm=1/Tm•例如:假设某机器系统按指令周期长短分为5种,t1=10ns,t2=12ns,t3=15ns,t4=1
8ns,t5=20ns。这5种指令在程序中出现的概率分别是f1=0.2,f2=0.14,f3=0.4,f4=0.16,f5=0.1,计算出平均运算速度是多少MIPS?–Tm=10*0.2+12*0.14+15*0.4+18*
0.16+20*0.1=14.56ns–Vm=1/Tm=1/14.56=68.68MIPS•2、字长(机器字长)计算机的字长是指CPU能同时处理的二进制数的位数。字长越长计算机处理数据的精度越高,所需的硬件资源越多。目前字长有8、16、32、64位等。•3、存储器•存储器指标分为存储容量
和存取速度。•(1)存储容量存储容量是指计算机能够存储二进制信息的数量,一般以位、字节和字为单位。通常,容量越大,存储的信息越多,运行速度越快。由于性能与价格等多种原因,计算机存储系统也是一个多级层次存储结构,如高速缓存、主存、辅存等。主存由半导体存储元件构成
,其容量受价格限制。辅存由磁盘、磁带机构成,其速度慢、价格低,容量大。•(2)存取速度•主存存取速度是用存储周期来衡量,硬/光盘的存取速度衡量标准之一是转速。–存取周期是指连续启动两次独立的存储器操作所需要的最小间隔时间。存取周期一般为10ns左右。•硬/光盘速度是用
硬盘的转速表示。目前硬盘的转速为4500~15000r/s(转/秒)。•现在来看一下上面提到的CPU频率如3GHz与存储器容量如16GB中G的是否一样?–3GHz中的G=109–16GB中的G=230•下表列出了一些基本单位的意
义。存储器容量时钟频率周期长度Kkilo210Kkilo103mmillo10-3Mmega220Mmega106µmicro10-6Ggiga230Ggiga109nnano10-9Ttera240Ttera1012ppico10-12Ppeta2
50Ppeta1015ffemto10-15Eexa260Eexa1018aatto10-18Zzetta270Zzetta1021zzepto10-21Yyotta280Yyotta1024yyocto10-24计算机特点•运算速度快•运算精度高•记
忆能力强•具有逻辑推理和判断能力•自动化程度高,使用方便•通用性强•兼容性好•可维护性好----平均修复时间•可靠性高----平均无故障时间1.2计算机的基本结构•从第一台计算机问世算起,到现在有六十多年时间,发展速度相当快。•提出电子计算机的原因:战争急需快速而准确地解决弹道计算问题
。•1943年在宾夕伐尼亚大学开始研制,到1946年宣布完成。它重达30吨,用了18000个电子管,耗电100千瓦以上。•同时冯·诺依曼(VonNeumann)领导莫尔小组研制EDVAC计算机,采用了存储程序方案,其后的计算机都采用这种模式,称为冯·诺依曼计算机。•冯·
诺依曼机型的基本特点:–计算机由运算器、控制器、存储器、输入设备、输出设备组成。–采用存储程序的方式,程序和数据存放在同一个存储器中,指令和数据一样可以送到运算器运算(程序可以修改)。–指令和数据用二进制码表示。–指令由操作码和地址码组成。–指令在存储器中按顺序存放
,由指令计数器(即程序计数器PC)指明要执行的指令所在的单元地址,一般按顺序递增,也可按运算结果或外界条件而改变。–机器以运算器为中心,输入输出设备与存储器间的数据传送都通过运算器。•现在的CPU和(微)处理机
(器)也不加以区分,它们基本上是同一个概念。它们集成有Cache(一种小容量高速度的存储器)和TLB(一种用于地址转换的缓冲区)。1.2.1RISCCPU的基本结构•CPU负责执行指令。下图是简化了的单周期的RISCCPU的结构图。存储器数据存储器指令存储器CPUALUPCCLK寄存器堆
CLK多路器多路器多路器简化的单周期的RISCCPU的结构图说明•指令从指令存储器中读出,其地址由程序计数器PC(ProgramCounter)提供。•小三角形处接时钟信号。•寄存器堆(Registe
rFile)里有许多寄存器,存放的是数据。•ALU(ArithmeticLogicUnit)负责计算,2个数据可以全部来自寄存器堆,其中一个也可以来自指令中的立即数。•多路器(Mutiplexer)从多个输入中
选择一个送出。•计算结果存入寄存器堆。•如果是Load指令,则ALU的输出作为地址使用,访问数据存储器,把从数据存储器中读出的数据存入寄存器堆。•如果是Store指令,把寄存器的内容存入数据存储器。–Load/Store指令执行时必须知道存储器地址。•如果是条件转移指令,则
要根据ALU输出的标志位来判断是否转移,转移地址由当前PC和带符号的立即数(偏移量)相加得到。•不转移时,PC要加“1”条指令的长度(单位为字节)。•单周期CPU是指一条指令的所有操作全部完成后,才开始下一条指令的执行。•流水线CPU是把一条的执行过
程分成若干个阶段(级--Stage),使得多条指令能重复执行。如下图所示。数据存储器指令存储器ALUPCEXE寄存器堆IFMEMIDWB简化的流水线RISCCPU的结构图•图中有流水线有5级:–取指令IF(InstructionFetch)级。–指令译码ID(InstructionDecode
)级。–执行EXE(Execution)级。–存储器访问MEM(MemoryAccess)级。–结果写回WB(WriteBack)级。•级与级之间设置有流水线寄存器,用来保存中间结果。•一级占用一个周期。–这样的流水线CPU能同时执行5条指令,每条指令处在不同的级,从而增加指令的呑吐率。•
现在的CPU芯片中都集成有指令Cache和数据Cache,如下图所示。存储器dido主存储器(DRAM)aCPUdido数据CacheaCPU中的指令Cache和数据Cachedido指令CacheadodiCPU的其他部分instd_apc1.2.2多线程CPU和多核CPU•为了提高计算机的性
能,又采用了以下技术。–超标量(Superscalar)CPU试图在一个周期取出多条指令并执行。但由于指令的相关性,即一条指令使用前一条指令的结果,超标量CPU的性能提升了大约20%。为了得到这种性能的提升,需要增加大量的硬件。–多线程(Multithreading)CPU试图并执行多
个线程。•一个线程就是一段能够独立执行的程序,再加上执行所需的环境。一个简化的能够同时执行4个线程的多线程CPU的结构如下图所示。指令CacheRF0简化的多线程CPU的结构示意图PC0PC1PC2PC3
RF1RF2RF3FUs数据CacheRF0RF1RF2RF3•说明–PC—程序计数器–RF—寄存器堆–FU—功能部件,如ALU和FLU。–无名字的是流水线寄存器,用来保存中间运算结果。多线程CPU的特点是所有线程共享功能部件和Cache,这有利
于提高这些部件的使用效率,但增加了硬件设计的复杂度。–多核(Multi-Core)CPU是在一个芯片中集成多个核(Core)。一个核相当于一个普通的CPU。一个简化的4核CPU的结构如下图所示。Cach
eRF0简化的多线程CPU的结构示意图PC0PC1PC2PC3RF1RF2RF3FUsCacheRF0RF1RF2RF3CacheCacheCacheFUsFUsFUsCacheCacheCache•与多线程相比,多核CPU具有设计简单的优点,但功
能部件的利用效率没有多线程高。•多核中的每个核又可以是一个多线程CPU,即多核多线程CPU或多线程多核CPU。•一般地讲,多核CPU中每个核都可以独立工作。这样的CPU可以实现多指令流多数据流MIMD功能。当然还有实现单指令流多数据流SIMD功能的CPU。1.2.3存储层次和虚拟存储器管理•主存是
用来暂时存放正在执行的程序的地方。–程序包含指令和数据。•CPU从存储器读出指令,对数据进行计算(处理)。•由于主存的速度比CPU慢,因此在CPU片内集成有小容量的高速存储器Cache。•片/外内是指在CPU芯片之内/外。寄存器堆第一级
Cache(片内)第二级Cache(片内)第三级Cache(片外)主存硬盘容量速度存储层次的概念分开的指令Cache和数据Cache指令和数据共享Cache寄存器堆速度最快,只存放数据有一个重要的工作:与主存一起,为用户提供一个较大空间的虚拟存储空间(虚
拟存储器)1.2.4I/O接口和总线•CPU通过I/O接口来访问I/O设备的。–一个计算机系统中有很多I/O设备,因此在系统中往往设置有总线(BUS)。所有的I/O设备通过I/O接口连接到总线上,如下图所示。•工作过程–当I/O设备准备好要与CPU通信时,可以通过I/O接口向CPU发出中断请求。
–CPU收到请求后,暂停当前程序的执行,转去执行中断处理程序。–在中断处理程序中,CPU可以使用指令来读写I/O数据,然后返回到被暂停的程序继续执行。USB存储器存储器CPU话筒/扬声器键盘/鼠标I/O接口总线接口和存储器控制器I/O接口I/O接口I/O接口I/O接口I/O接口网络图
像显示器打印机总线接口硬盘CD-ROM磁带总线BUSI/O接口在计算机系统中的位置•读写I/O数据的依CPU的不同而不同。–在使用存储器映像的I/O空间的情况下,CPU可以用和访问存储器相同的Load/Store
指令来读写I/O数据。即存储器与I/O空间合在一起编址,称为统一编址。–如果使用与存储器分开的I/O空间(编址),则必须要有专门的I/O指令。即独立编址。1.3如何提高计算机的性能•1、改进集成电路的工艺,减小线宽,增加晶体管
数量以及提高CPU的频率(贡献大)。•2、改进体系结构,减少一条指令执行所需的平均的时钟周期的数量(还需要努力)。1.3.1计算机性能和性能评价•单从时间角度观察性能,同样一个程序,计算机执行的时间越短,它的性能越好。•计算公式如下T=I*C
PI*TPC–I(Instructions)—是被执行的指令的总数。–CPI(CyclesPerInstructions)—是每条指令执行时所需要的平均的时钟周期数。–TPC(TimerPerCycles)—是时钟周期的时间长度。•人们经常使用Amdahl’sLaw来对某个部件的优化
对整体性能有多大的改进。•假设某个部件优化了n倍,即所需时间是原来的1/n,但执行一个程序时,用到该部件的时间百分比是r,则整体性能的加速比是S=Pn/P0=T0/Tn=T0/(T0*r/n+T0*(1-r))=1/(r/n+(1-r))–Pn/P0分别是优化后/前的整体性能。–T
n/T0分别是优化后/前的程序的执行时间。•当n∞,S1/(1-r)。•1.3.2踪迹驱动模拟和执行驱动模拟•1.3.3高性能计算机和互联网络•略1.4硬件描述语言•硬件描述语言(Hardware
DescriptionLanguage)是设计硬件时使用的语言,比使用逻辑图设计方便多了,尤其是当电路规模大的时候。•最常用的有VerilogHDL和VHDL。•以下是用VerilogHDL实现一个4位计数器电路的代码time_counter_verilog
.v。–文件名任意,文件扩展名(后缀)必须是.V。–模块名必须与文件名一致。需求分析•输入信号–enable—使能信号。当enable=1时该芯片可以工作,当enable=0时该芯片可以禁止工作。–clk—时
钟信号。当enable=1且clk为上升沿时计数器加1。–rst#—复位(清0)信号,当该信号为低电平时,计数器清0。•输出信号–my_counter,4位,reg(寄存器)类型。–C—进位信号。当计数器计到16时,C=1,再计到16时C=0。程序代码modul
etime_counter(enable,clk,my_counter,rst,c);inputenable,clk,rst;output[3:0]my_counter;outputc;reg[3:0]my_c
ounter;regc;always@(posedgeclkornegedgerst)beginif(!rst)beginmy_counter<=1'h0;c=0;endelseif(enable)beginif
(my_counter==15)beginc=!c;my_counter<=0;endelsebeginmy_counter<=my_counter+1'h1;endendendendmodule•always—关键
字,表示总是。•posedge—关键字,表示上升沿。•赋值符号<=也可以用=。•也可以用其他的语言编写计数器电路。运行