咋算的??? 计算机 处理能力

sdhok 2001-09-01 05:00:45
问题:

某CPU的主振频率为100兆赫,平均每个机器周期包含4个主振周期。各类指令的平均机器周期数和使用频度如下表所示,则该计算机系统的速度为平均约_A_兆指令/秒。

指令类别 平均机器周期数/指令 使用频度
访内存 2.5 25%
一般算术逻辑运算 1.25 40%
比较与转移等 1.5 25%
乘除 15 5%
其它 5 5%

若某项事务处理工作所要执行的机器指令数是:控制程序(以访内、比较与转移等其它指令为主)220000条指令和业务程序(以包括乘除在内的算术逻辑运算为主)90000条指令,且指令使用频度基本如上表所示,则该计算机系统的事务处理能力约为_B_项/秒

B处应为 33.3 , 怎得来的?
...全文
64 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
leeyoong 2001-09-01
1、每秒包含的机器周期数为: 100,000,000 / 4 = 25,000,000
2、控制程序 220,000 条指令 所占用的机器周期为:
220,000 * [(25/55)*2.5+(25/55)*1.5+(5/55)*5] = 500,000(平均机器周期数)
其中,'55' 为(访内频度25+比较与转移频度25+其它指令频度5)所得,故(25/55)即为控制程序中访内指令的频度,而220,000*(25/55)*2.5则为访内指令所占机器周期数,其余的同理了。
业务程序 90,000 条指令 所占用的机器周期为:
90,000 * [(40/45)*1.25+(5/45)*15] = 250,000(平均机器周期数)
该项事务处理总共占用平均机器周期数为:500,000 + 250,000 = 750,000
3、该计算机系统的事务处理能力B为:25,000,000 /750,000 = 33.3

哈哈!大功告成!
  • 打赏
  • 举报
回复
leeyoong 2001-09-01
有意思,很久没算过这样的题了,待我想想......
  • 打赏
  • 举报
回复
相关推荐
试题内容: 一、(10分)某RISC处理机各类指令使用频率和理想CPI(指令和数据访问Cache命中率为100%时的CPI)如下表所示。而实际测得的指令访问Cache缺失率(miss rate)为5%,数据访问的Cache缺失率为10%,Cache的缺失损失(miss penalty)为40个时钟周期。 (1) 该机器在无Cache缺失(理想情况)时的CPI是多少?(3分) (2) 该机器在无Cache缺失(理想情况)时的速度比有Cache缺失时快多少倍?(7分) 指令类型 使用频率 CPI ideal ALU操作 43% 1 Loads 21% 2 Stores 12% 2 Branches 24% 2 二、(13分)一台模型机共有7条指令,主频25MHz,各指令的使用频率与CPI如下表所示。该模型机有8位和16位两种指令字长,采用2-4扩展操作码。8位字长指令为寄存器(R-R)二地址类型,16位字长指令为寄存器-存储器(R-M)二地址变址寻址类型(-128<=变址范围<=127)。 指令(字长) 使用频度f CPI I1(8位) 35% 1 I2(8位) 25% 2 I3(8位) 20% 2 I4(16位) 10% 2 I5(16位) 5% 1 I6(16位) 3% 2 I7(16位) 2% 2 (1) 计算该机的MIPS速率。(4分) (2) 计算操作码的平均码长。(3分) (3) 该机允许使用多少个可编址的通用寄存器,多少变址寄存器?(3分) (4) 设计该机的两种指令格式,标出各字段位数并给出操作编码。(3分) 三、(12分)假设在一个采用组织相联映像方式的Cache中,主存有B0~B7共8块组成,Cache有C0~C3共4块,组内块数为2块。每块的大小为32个字节,采用FIFO块替换算法。在一个程序执行过程中依次访问块地址流如下: B1,B4,B6,B3,B0,B4,B6,B2,B4,B5 (1) 写出主存地址的格式,并标出各字段的长度(3分) (2) 写出Cache地址的格式,并标出各字段的长度(3分) (3) 画出主存与Cache之间各个块的映像对应关系(3分) (4) 列出程序执行过程中Cache的块地址流分布情况。并计算Cache的块命中率。(3分) 四、(15分)有4个中断源D1、D2、D3、D4,它们的中断优先级和中断屏蔽码见下表,表中,"1"表示该中断源被屏蔽,"0"表示该中断源开放。假设从处理机响应中断源的中断服务请求到运行中断服务程序中第一次开中断所用的时间为1微秒,其它中断服务时间为10微秒。
     计算总线数据传输速率      总线数据传输速率=时钟频率(Mhz)/每个总线包含的时钟周期数*每个总线周期传送的字节数(b)      计算系统速度      每秒指令数=时钟频率/每个总线包含时钟周期数/指令平均占用总线周期数   平均总线周期数=所有指令类别相加(平均总线周期数*使用频度)   控制程序所包含的总线周期数=(指令数*总线周期数/指令)   指令数=指令条数*使用频度/总指令使用频度   每秒总线周期数=主频/时钟周期   FSB带宽=FSB频率*FSB位宽/8   计算机执行程序所需时间   P=I*CPI*T   执行程序所需时间=编译后产生的机器指令数*指令所需平均周期数*每个机器周期时间      指令码长      定长编码:码长>=log2   变长编码:将每个码长*频度,再累加其和   平均码长=每个码长*频度 流水线计算      流水线周期值等于最慢的那个指令周期   流水线执行时间=首条指令的执行时间+(指令总数-1)*流水线周期值   流水线吞吐率=任务数/完成时间   流水线加速比=不采用流水线的执行时间/采用流水线的执行时间      存储器计算      存储器带宽:每秒能访问的位数单位ns=10-9秒   存储器带宽=1秒/存储器周期(ns)*每周期可访问的字节数   (随机存取)传输率=1/存储器周期   (非随机存取)读写N位所需的平均时间=平均存取时间+N位/数据传输率   内存片数:(W/w)*(B/b)W、B表示要组成的存储器的字数和位数;   w、b表示内存芯片的字数和位数   存储器地址编码=(第二地址–第一地址)+1   {例:[(CFFFFH-90000H)+1]/[(16K*1024)*8bit]}   内存位数:log2(要编址的字或字节数)      Cache计算      平均访存时间:Cache命中率*Cache访问周期时间+Cache失效率*主存访问周期时间   [例:(2%*100ns+98%*10ns)+1/5*(5%*100ns+95%*10ns)=14.7ns]   映射时,主存和Cache会分成容量相同的组   cache组相联映射主存地址计算   主存地址=(主存容量块数*字块大小)log2(主存块和cache块容量一致)   [例:128*4096=219(27*212)]   主存区号=(主存容量块数/cache容量块数)log2   Cache访存命中率=cache存取次数/(cache存取次数+主存存取次数) 磁带相关性能公式   数据传输速率(B/s)=磁带记录密度(B/mm)*带速(mm/s)   数据块长充=B1(记录数据所需长度)+B2(块间间隔)   B1=(字节数/记录)*块因子/记录密度   读N条记录所需时间:T=S(启停时间)+R+D   R(有效时间)=(N*字节数/记录)/传输速度   D(间隔时间)=块间隔总长/带速=[(N/块化因子)*(块间间隔)]/带速   每块容量=记录长度*块化系数   每块长度=容量/(记录密度)   存储记录的块数=磁带总带长/(每块长度+每块容量)   磁带容量=每块容量*块数      磁盘常见技术指标计算公式      双面盘片要*2因为最外面是保护面又-2 N*2-2   非格式化容量=位密度*3.14159*最内圈址径*总磁道数   [例:(250*3.14*10*10*6400)/8/1024/1024=59.89MB]   总磁道数=记录面数*磁道密度*(外直径-内直径)/2   [例:8面*8*(30-10)/2*10=6400]   每面磁道数=((外径-内径)/2)×道密度   每道位密度不同,容易相同   每道信息量=内径周长×位密度   [例:10cm×10×3.14159×250位/mm=78537.5位/道]   格式化容量=每道扇区数*扇区容量*总磁道数   [例:(16*512*6400)/1024/1024=50MB] or   格式化容量=非格式化容量×0.8   平均传输速率=最内圈直径*位密度*盘片转速   [例:[2*3.14*(100/2)]*250*7200/60/8=1178Kb/s]   数据传输率=(外圈速率+内圈速率)/2   外圈速率=外径周长×位密度×转速   [例:(30cm×10×3.14159×250位/mm×120转/秒)/8/1024=3451.4539 KB/s]   内圈速率=内径周长×位密度×转速   [例:(10cm×10×3.14159×250位/mm×120转/秒)/8/1024=1150.4846 KB/s]   数据传输率(3451.4539+1150.4846)/2=2300.9693 KB/s   存取时间=寻道时间+等待时间   处理时间=等待时间+记录处理时间   (记录处理最少等待时间=0,最长等待时间=磁盘旋转周期N ms/周*记录道数)   移动道数(或扇区)=目标磁道(或扇区)-当前磁道(或扇区)   寻道时间=移动道数*每经过一磁道所需时间   等待时间=移动扇区数*每转过一扇区所需时间   读取时间=目标的块数*读一块数据的时间   数据读出时间=等待时间+寻道时间+读取时间   减少等待时间调整读取顺序能加快数据读取时间   平均等待时间=磁盘旋转一周所用时间的一半   (自由选择顺逆时钟时,最长等待时间为半圈,最短为无须旋转)   平均等待时间=(最长时间+最短时间)/2   平均寻道时间=(最大磁道的平均最长寻道时间+最短时间)/2   最大磁道的平均最长寻道时间=(最长外径+圆心)/2      操作系统      虚存地址转换      (((基号)+段号)+页号)*2n+页内偏移 网络流量与差错控制技术 最高链路利用率      a:帧计数长度   a可以是传播延迟/发一帧时间   数据速率*线路长度/传播速度/帧长   数据速率*传播延迟/帧长   停等协议最高链路利用率E=1/(2a+1)   W:窗口大小   滑动窗口协议E=W/(2a+1)   P:帧出错概率   停等ARQ协议E=(1-P)/(2a+1)   选择重发ARQ协议   若W>2a+1则E=1-P   若W<=2a+1则E=W(1-P)/(2a+1)   后退N帧ARQ协议   若W>2a+1则E=(1-P)/(1-P+NP)   若W<=2a+1则E=W(1-P)/(2a+1)(1-P+NP)      CSMA/CD常用计算公式      网络传播延迟=最大段长/信号传播速度   冲突窗口=网络传播延迟的两倍.(宽带为四倍)   最小帧长=2*(网络数据速率*最大段长/信号传播速度)   例:Lmin=2*(1Gb/s*1/200 000)=10 000bit=1250字节      性能分析      吞吐率T(单位时间内实际传送的位数)   T=帧长/(网络段长/传播速度+帧长/网络数据速率) 网络利用率E      E=吞吐率/网络数据速率      以太网冲突时槽      T=2(电波传播时间+4个中继器的延时)+发送端的工作站延时+接收站延时   即T=2*(S/0.7C)+2*4Tr+2Tphy   T=2S/0.7C+2Tphy+8Tr   S=网络跨距   0.7C=电波在铜缆的速度是光波在真空中的0.7倍光速   Tphy=发送站物理层时延   Tr=中继器延时      快速以太网跨距      S=0.35C(Lmin/R–2 Tphy-8Tr)      令牌环网      传输时延=数据传输率*(网段长度/传播速度)   例:4Mb/s*(600米/200米/us)us=12比特时延(1us=10-6秒)   存在环上的位数=传播延迟(5us/km)*发送介质长度*数据速率+中继器延迟      路由选择      包的发送=天数*24小时(86400秒)*每秒包的速率   IP地址及子网掩码计算   可分配的网络数=2网络号位数   网络中最大的主机数=2主机号位数-2例:10位主机号=210-2=1022   IP和网络号位数取子网掩码   例:IP:176.68.160.12网络位数:22   子网:ip->二进制->网络号全1,主机为0->子网前22位1,后为0=255.255.252.0 Vlsm复杂子网计算      Ip/子网编码      1.取网络号.求同一网络上的ip   例:112.10.200.0/21前21位->二进制->取前21位相同者(ip)/(子网)      2.路由汇聚   例:122.21.136.0/24和122.21.143.0/24判断前24位->二进制->取前24位相同者10001000 10001111   系统可靠性:   串联:R=R1*R2*....RX   并联:R=1-(1-R1)*(1-R2)*...(1-RX)      pcm编码      取样:最高频率*2   量化:位数=log2^级数   编码量化后转成二进制   海明码信息位:   k=冗余码   n=信息位   2^k-1>=n+k
第一章 计算机系统概述 复习题: 1.1、 列出并简要地定义计算机的四个主要组成部分。 答:主存储器,存储数据和程序;算术逻辑单元,能处理二进制数据;控制单元,解读存储器中的指令并且使他们得到执行;输入/输出设备,由控制单元管理。 1.2、 定义处理器寄存器的两种主要类别。 答:用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次数。对高级语言而言,由优化编译器负责决定把哪些变量应该分配给主存储器。一些高级语言,如C语言,允许程序言建议编译器把哪些变量保存在寄存器中。 控制和状态寄存器:用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。 1.3、 一般而言,一条机器指令能指定的四种不同操作是什么? 答:这些动作分为四类:处理器-寄存器:数据可以从处理器传送到存储器,或者从存储器传送到处理器。处理器-I/O:通过处理器和I/O模块间的数据传送,数据可以输出到外部设备,或者从外部设备输入数据。数据处理处理器可以执行很多关于数据的算术操作或逻辑操作。控制:某些指令可以改变执行顺序。 1.4、 什么是中断? 答:中断:其他模块(I/O,存储器)中断处理器正常处理过程的机制。 1.5、 多中断的处理方式是什么? 答:处理多中断有两种方法。第一种方法是当正在处理一个中断时,禁止再发生中断。第二种方法是定义中断优先级,允许高优先级的中断打断低优先级的中断处理器的运行。 1.6、 内存层次的各个元素间的特征是什么? 答:存储器的三个重要特性是:价格,容量和访问时间。 1.7、 什么是高速缓冲存储器? 答:高速缓冲存储器是比主存小而快的存储器,用以协调主存跟处理器,作为最近储存地址的缓冲区。 1.8、 列出并简要地定义I/O操作的三种技术。 答:可编程I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令(用以执行这个指令);在进一步的动作之前,处理器处于繁忙的等待中,直到该操作已经完成。中断驱动I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令,并继续执行后续指令,直到后者完成,它将被I/O模块中断。如果它对于进程等待I/O的完成来说是不必要的,可能是由于后续指令处于相同的进程中。否则,此进程在中断之前将被挂起,其他工作将被执行。直接存储访问:DMA模块控制主存与I/O模块间的数据交换。处理器向DMA模块发送一个传送数据块的请求,(处理器)只有当整个数据块传送完毕后才会被中断。 1.9、 空间局部性和临时局部性间的区别是什么? 答:空间局部性是指最近被访问的元素的周围的元素在不久的将来可能会被访问。临时局部性(即时间局部性)是指最近被访问的元素在不久的将来可能会被再次访问。 1.10、 开发空间局部性和时间局部性的策略是什么? 答:空间局部性的开发是利用更大的缓冲块并且在存储器控制逻辑中加入预处理机制。时间局部性的开发是利用在高速缓冲存储器中保留最近使用的指令及数据,并且定义缓冲存储的优先级。 习题: 1.1、图1.3中的理想机器还有两条I/O指令: 0011 = 从I/O中载入AC 0111 = 把AC保存到I/O中 在这种情况下,12位地址标识一个特殊的外部设备。请给出以下程序的执行过程(按照图1.4的格式): 1. 从设备5中载入AC。 2. 加上存储器单元940的内容。 3. 把AC保存到设备6中。 假设从设备5中取到的下一个值为3940单元中的值为2。 答案:存储器(16进制内容):300:3005;301:5940;302:7006 步骤1:3005->IR;步骤2:3->AC 步骤3:5940->IR;步骤4:3+2=5->AC 步骤5:7006->IR:步骤6:AC->设备 6 1.2、本章中用6步来描述图1.4中的程序执行情况,请使用MAR和MBR扩充这个描述。 答案:1. a. PC中包含第一条指令的地址300,该指令的内容被送入MAR中。 b. 地址为300的指令的内容(值为十六进制数1940)被送入MBR,并且PC增1。这两个步骤是并行完成的。 c. MBR中的值被送入指令寄存器IR中。 2. a. 指令寄存器IR中的地址部分(940)被送入MAR中。 b. 地址940中的值被送入MBR中。 c. MBR中的值被送入AC中。 3. a. PC中的值(301)被送入MAR中。 b. 地址为301的指令的内容(值为十六进制数5941)被送入MBR,并且PC增1。 c. MBR中的值被送入指令寄存器IR中。 4. a. 指令寄存器IR中的地址部分(941)被送入MAR中。 b. 地址941中的值被送入MBR中。 c. AC中以前的内容和地址为941的存储单元中的内容相加,结果保存到AC中。 5. a. PC中的值(302)被送入MAR中。 b. 地址为302的指令的内容(值为十六进制数2941)被送入MBR,并且PC增1。 c. MBR中的值被送入指令寄存器IR中。 6. a. 指令寄存器IR中的地址部分(941)被送入MAR中。 b. AC中的值被送入MBR中。 c. MBR中的值被存储到地址为941的存储单元之中。 1.4、假设有一个微处理器产生一个16位的地址(例如,假设程序计数器和地址寄存器都是16位)并且具有一个16位的数据总线。 a.如果连接到一个16位存储器上,处理器能够直接访问的最大存储器地址空间为多少? b.如果连接到一个8位存储器上,处理器能够直接访问的最大存储器地址空间为多少? c.处理访问一个独立的I/O空间需要哪些结构特征? d.如果输入指令和输出指令可以表示8位I/O端口号,这个微处理器可以支持多少8位I/O端口? 答案:对于(a)和(b)两种情况,微处理器可以直接访问的最大存储器地址空间为216 = 64K bytes;唯一的区别是8位存储器每次访问传输1个字节,而16位存储器每次访问可以传输一个字节或者一个16位的字。对于(c)情况,特殊的输入和输出指令是必要的,这些指令的执行体会产生特殊的“I/O信号”(有别于“存储器信号”,这些信号由存储器类型指令的执行体产生);在最小状态下,一个附加的输出针脚将用来传输新的信号。对于(d)情况,它支持28 = 256个输入和28 = 256个输出字节端口和相同数目的16位I/O端口;在任一情况, 一个输入和一个输出端口之间的区别是通过被执行的输入输出指令所产生的不同信号来定义的。 1.5、考虑一个32位微处理器,它有一个16位外部数据总线,并由一个8MHz的输入时钟驱动。假设这个微处理器有一个总线周期,其最大持续时间等于4个输入时钟周期。请问该微处理器可以支持的最大数据传送速度为多少?外部数据总线增加到21位,或者外部时钟频率加倍,哪种措施可以更好地提高处理器性能?请叙述你的设想并解释原因。 答案:时钟周期=1/(8MHZ)=125ns 总线周期=4×125ns=500ns 每500ns传输2比特;因此传输速度=4MB/s 加倍频率可能意味着采用了新的芯片制造技术(假设每个指令都有相同的时钟周期数);加倍外部数据总线,在芯片数据总线驱动/锁存、总线控制逻辑的修改等方面手段广泛(或许更新)。在第一种方案中,内存芯片的速度要提高一倍(大约),而不能降低微处理器的速度;第二种方案中,内存的字长必须加倍,以便能发送/接受32位数量。 1.6、考虑一个计算机系统,它包含一个I/O模块,用以控制一台简单的键盘/打印机电传打字设备。CPU中包含下列寄存器,这些寄存器直接连接到系统总线上: INPR:输入寄存器,8位 OUTR:输出寄存器,8位 FGI:输入标记,1位 FGO:输出标记,1位 IEN:中断允许,1位 I/O模块控制从打字机中输入击键,并输出到打印机中去。打字机可以把一个字母数字符号编码成一个8位字,也可以把一个8位字解码成一个字母数字符号。当8位字从打字机进入输入寄存器时,输入标记被置位;当打印一个字时,输出标记被置位。 a. 描述CPU如何使用这4个寄存器实现与打字机间的输入/输出。 b. 描述通过使用IEN,如何提高执行效率? 答案:a.来源于打字机的输入储存在INPR中。只有当FGI=0时,INPR才会接收来自打字机的数据。当数据接收后,被储存在INPR里面,同时FGI置为1。CPU定期检查FGI。如果FGI=1,CPU将把INPR里面的内容传送至AC,并把FGI置为0。 当CPU需要传送数据到打字机时,它会检查FGO。如果FGO=0,CPU处于等待。如果FGO=1,CPU将把AC的内容传送至OUTER并把FGO置为0。当数字符号打印后,打字机将把FGI置为1。 b.(A)描述的过程非常浪费。速度远高于打字机的CPU必须反复不断的检查FGI和FGO。如果中断被使用,当打字机准备接收或者发送数据时,可以向CPU发出一个中断请求。IEN计数器可以由CPU设置(在程序员的控制下)。 1.7、实际上在所有包括DMA模块的系统中,DMA访问主存储器的优先级总是高于处理器访问主存储器的优先级。这是为什么? 答案:如果一个处理器在尝试着读或者写存储器时被挂起, 通常除了一点轻微的时间损耗之外没有任何危害。但是,DMA可能从或者向设备(例如磁盘或磁带)以数据流的方式接收或者传输数据并且这是不能被打断的。否则,如果DMA设备被挂起(拒绝继续访问主存),数据可能会丢失。 1.9、一台计算机包括一个CPU和一台I/O设备D,通过一条共享总线连接到主存储器M,数据总线的宽度为1个字。CPU每秒最多可执行106条指令,平均每条指令需要5个机器周期,其中3个周期需要使用存储器总线。存储器读/写操作使用1个机器周期。假设CPU正在连续不断地执行后台程序,并且需要保证95%的指令执行速度,但没有任何I/O指令。假设1个处理器周期等于1个总线周期,现在要在M和D之间传送大块数据。 a.若使用程序控制I/O,I/O每传送1个字需要CPU执行两条指令。请估计通过D的I/O数据传送的最大可能速度。 b.如果使用DMA传送,请估计传送速度。 答案:a.处理器只能分配5%的时间给I/O.所以最大的I/O指令传送速度是10e6×0.05=50000条指令/秒。因此I/O的传送速率是25000字/秒。 b.使用DMA控制时,可用的机器周期下的数量是 10e6(0.05×5+0.95×2)=2.15×10e6 如果我们假设DMA模块可以使用所有这些周期,并且忽略任何设置和状态检查时间,那么这个值就是最大的I/O传输速率。 1.10、考虑以下代码: for ( i = 0;i < 20;i++) for (j = 0;j < 10;j++) a[i] = a[i]*j a. 请举例说明代码中的空间局部性。 b. 请举例说明代码中的时间局部性。 答案:a.读取第二条指令是紧跟着读取第一条指令的。 b.在很短的间歇时间内, a[i]在循环内部被访问了十次。 1.11、请将附录1A中的式(1.1)和式(1.2)推广到n级存储器层次中。 答案:定义: Ci = 存储器层次i上每一位的存储单元平均花销 Si = 存储器层次i的规模大小 Ti = 存储器层次i上访问一个字所需时间 Hi = 一个字在不高于层次i的存储器上的概率 Bi = 把一个数据块从层次i+1的存储器上传输到层次i的存储器上所需时间 高速缓冲存储器作为是存储器层次1;主存为存储器层次2;针对所有的N层存储器层以此类推。有: Ts的引用更复杂,我们从概率论入手:所期望的值 ,由此我们可以写出: 我们需要清楚如果一个字在M1(缓存)中,那么对它的读取非常快。如果这个字在M2而不在M1中,那么数据块需要从M2传输到M1中,然后才能读取。因此,T2 = B1+T1 进一步,T3 = B2+T2 = B1+B2+T1 以此类推: 所以, 但是, 最后, 1.12、考虑一个存储器系统,它具有以下参数: Tc = 100 ns Cc = 0.01 分/位 Tm = 1200 ns Cm = 0.001 分/位 a.1MB的主存储器价格为多少? b.使用高速缓冲存储器技术,1MB的主存储器价格为多少? c.如果有效存取时间比高速缓冲存储器存取时间多10% ,命中率H为多少? 答案:a.价格 = Cm×8×106 = 8×103 ¢ = $80 b.价格 = Cc×8×106 = 8×104 ¢ = $800 c.由等式1.1知:1.1×T1 = T1+(1-H)T2 (0.1)(100) = (1-H)(1200) H=1190/1200 1.13、一台计算机包括包括高速缓冲存储器、主存储器和一个用做虚拟存储器的磁盘。如果要存取的字在高速缓冲存储器中,存取它需要20ns;如果该字在主存储器中而不在高速缓冲存储器中,把它载入高速缓冲存储器需要60ns(包括最初检查高速缓冲存储器的时间),然后再重新开始存取;如果该字不在主存储器中,从磁盘中取到内存需要12ms,接着复制到高速缓冲存储器中还需要60ns,再重新开始存取。高速缓冲存储器的命中率为0.9,主存储器的命中率为0.6,则该系统中存取一个字的平均存取时间是多少(单位为ns)? 答案:有三种情况需要考虑: 字所在的位置 概率 访问所需时间(ns) 在缓存中 0.9 20 不在缓存,在主存中 (0.1)(0.6)= 0.06 60+20 = 80 不在缓存也不在主存中 (0.1)(0.4)= 0.04 12ms+60+20 = 12,000,080 所以平均访问时间是: Avg = (0.9)(20) + (0.06)(80) + (0.04)(12000080) = 480026 ns 1.14、假设处理器使用一个栈来管理过程调用和返回。请问可以取消程序计数器而用栈指针代替吗? 答案:如果栈只用于保存返回地址。或者如果栈也用于传递参数,这种方案只有当栈作为传递参数的控制单元而非机器指令时才成立。这两种情况下可以取消程序计数器而用栈指针代替。在后者情况中,处理器同时需要一个参数和指向栈顶部的程序计数器。
很好很详细的资料,看了考试应该没问题的,大家快来下吧!单片机原理复习资料(一)  填空题: 1.MCS—51单片机引脚信号中,信号名称带上划线的表示该信号 或 有效。 2.通过堆栈操作实现子程序调用,首先要把 的内容入栈,以进行断点保护。调用返回时再进行出栈操作,把保护的断点送回 。 3.某程序初始化时使(SP)=40H,则此堆栈地址范围为 ,若使(SP)=50H,则此堆栈深度为 。 4.在相对寻址方式中,“相对”两字是指相对于 ,寻址得到的结果是 。在寄存器寻址方式中,指令中指定寄存器的内容就是 。在变址寻址方式中,以 作变址寄存器,以 或 作基址寄存器。 5.假定累加器(A)=49H,执行指令: 201AH: MOVC A,@A+PC 后,送入A的是程序存储器 单元的内容。 6.若(DPTR)=5306H,(A)=49H,执行下列指令: MOVC A,@A+DPTR 后,送入A的是程序存储器 单元的内容。 7.假定(SP)=45H,(ACC)=46H,(B)=47H,执行下列指令: PUSH ACC PUSH B 后,(SP)= ,(46H)= ,(47H)= 。 8.假定(SP)=47H,(46H)=46H,(47H)=47H。执行下列指令: POP DPH POP DPL 后,(DPTR)= ,(SP)= 。 9.若(A)=56H,(R0)=56H,(56H)=56H。执行指令: ADD A,@R0 后,(A)= ,(CY)= ,(AC)= ,(OV)= 。 10.若(A)=0FFH,(R0)=46H,(46H)=0FFH,(CY)=1。 执行指令: ADDC A,@R0 后,(A)= ,(CY)= ,(AC)= ,(OV)= 。 11.假定(A)=45H,(B)=67H。执行指令: MUL AB 后,寄存器(B)= ,累加器(A)= ,(CY)= ,(OV)= 。 12.假定(A)=0FCH,(B)=35H。执行指令: DIV AB 后,累加器(A)= ,寄存器(B)= ,(CY)= ,(OV)= 。 13.执行如下指令序列: MOV C,P1.0 ANL C,P1.1 OR C,/P1.2 MOV P1.3,C 后,所实现的逻辑运算式为 。 14.假定addr11=00100011001B,标号MN的地址为2099H。执行指令: MN:AJMP addr11 后,程序转移到地址 去执行。 15.假定标号MN的地址为2000H,标号XY值为2022H。应执行指令: MN:SJMP XY 该指令的相对偏移量为 。 16.累加器A中存放着一个其值小于63的8位无符号数,CY清“0”后执行指令: RLC A RLC A 则A中数变为原来的 倍。 17.在MCS—51单片机系统中,采用的编址方式是 。MCS—51可提供 和 两种存储器,其编址方式为 ,扩展后其最大存储空间分别为 和 。对80C51而言,片内ROM和片外ROM的编址方式为 ,片外ROM的地址从 开始;片内RAM和片外RAM的编址方式为 ,片外RAM的地址从 开始。 18.为实现内外程序存储器的衔接,应使用 信号进行控制,对8031, EA= ,CPU对 进行寻址;对80C51, EA=1,CPU对 寻址。 19.访问内部RAM使用 指令,访问外部RAM使用 指令,访问内部ROM使用 指令,访问外部ROM使用 指令。 20.当计数器产生记数溢出时,定时器/记数器的TF0(TF1)位= 。对记数溢出的处理,在中断方式时,该位作为 位使用;在查询方式时,该位作为 位使用。 21.在定时器工作方式0下,计数器的宽度为 位,其记数范围为 ,如果系统晶振频率为6MHZ,则最大定时时间为 。 22.利用定时器/计数器产生中断时,应把定时器/计数器设置成 工作状态,当计数器设置成方式0时,记数初值应为 ;设置成方式1时,记数初值应为 ;设置成方式2或方式3时,记数初值应为 。 23.对单片机而言,连接到数据总线上的输出口应具有 功能,连接到数据总线上的输入口应具有 功能。 24.在多位LED显示器接口电路的控制信号中,必不可少的是 控信号和 控信号。 25.与8255比较,8155的功能有所增强,主要表现在8155具有 单元的 和一个 位的 。 26.单片机实现数据通讯时,其数据传送方式有 和 两种。串行数据传送方式分为 和 两种。 27.专用寄存器“串行发送数据缓冲寄存器”,实际上是 寄存器和 寄存器的总称。 28.在串行通讯中,若发送方的波特率为1200bps,则接收方的波特率为 。 29.D/A转换电路之前必须设置数据锁存器,这是因为 。 30.对于由8031构成的单片机应用系统,EA脚应接 ,中断响应并自动生成长调用指令LCALL后,应转向 去执行中断服务程序。 单选题: 1.80C51与8031的区别在于 内部ROM的容量不同 内部RAM的容量不同 内部ROM的类型不同 80C51使用EEPROM,而8031使用EPROM 2.PC的值是 A.当前指令前一条指令的地址 B.当前正在执行指令的地址 C.下一条指令的地址 D.控制器中指令寄存器的地址 3.假定(SP)=37H,在进行子程序调用时把累加器A和断点地址进栈保护后,SP的值为 A.3AH B.38H C.39H D.40H 4.在80C51中,可使用的堆栈最大深度为 A.80个单元 B.32个单元 C.128个单元 D.8个单元 5.在相对寻址方式中,寻址的结果体现在 A.PC中 B.累加器A中 C.DPTR中 D.某个存储单元中 6.在寄存器间接寻址方式中,指定寄存器中存放的是 A.操作数 B.操作数地址 C.转移地址 D.地址偏移量 7.执行返回指令时,返回的断点是 A.调用指令的首地址 B.调用指令的末地址 C.返回指令的末地址 D.调用指令下一条指令的首地址 8.可以为访问程序存储器提供或构成地址的有 A.只有程序计数器PC B.只有PC和累加器A C.只有PC、A和数据指针DPTR D.PC、A、DPTR和堆栈指针SP 9.若原来工作寄存器0组为当前寄存器组,现要改2组为当前寄存器组,不能使用指令 A.SETB PSW.3 B.SETB D0H.4 C.MOV D0H,#10H D.CPL PSW.4 10.执行以下程序段 MOV SP,#40H MOV B,#30H MOV A,#20H PUSH B PUSH ACC POP B POP ACC 后,B和A的内容分别为 A.20H,30H B.30H,20H C.40H,30H D.40H,20H 11.执行以下程序段 MOV R0,#70H MOV A,R0 RL A MOV R1,A RL A RL A ADD A,R1 MOV @R0,A 后,实现的功能是 A.把立即数70H循环左移3次 B.把立即数70H×10 C.把70H单元的内容循环左移3次 D.把70H单元的内容×10 12.下列叙述中,不属于单片机存储器系统特点的是 A.扩展程序存储器与片内程序存储器存储空间重叠 B.扩展数据存储器与片内数据存储器存储空间重叠 C.程序和数据两种类型的存储器同时存在 D.芯片内外存储器同时存在 13.如在系统中只扩展两片Intel2764,其地址范围分别为0000H~1FFFH、8000H~9FFFH,除应使用P0口的8条口线外,至少还应使用P2口的口线 A.6条 B.7条 C.5条 D.8条 14.下列有关MCS—51中断优先级控制的叙述中,错误的是 A.低优先级不能中断高优先级,但高优先级能中断低优先级 B.同级中断不能嵌套 C.同级中断请求按时间的先后顺序响应 D.同级中断按CPU查询次序响应中断请求 15.执行中断返回指令,要从堆栈弹出断点地址,以便去执行被中断了的主程序。从堆栈弹出的断点地址送给 A.A B.CY C.PC D.DPTR 16.中断查询确认后,在下列各种单片机运行情况中,能立即进行响应的是 A.当前指令是ORL A,Rn指令 B.当前正在执行RETI指令 C.当前指令是MUL指令,且正处于取指令机器周期 D.当前正在进行1优先级中断处理 下列功能中不是由I/O接口实现的是 A.数据缓冲和锁存 B.数据暂存 C.速度协调 D.数据转换 18.为给扫描法工作的键盘提供接口电路,在接口电路中需要 A.一个输入口 B.一个输出口 C.一个输入口和一个输出口 D.两个输入口 19.下列理由中,能说明MCS—51的I/O编址是统一编址方式而非独立编址方式的理由是 用存储器指令进行I/O操作 有专用的I/O指令 有区分存储器和I/O的控制信号 I/O和存储器的地址可以重叠 20.把8155的A2、A1、A0分别与80C51的P0.2、P0.1、P0.0连接,则8155的PA、PB、PC口的地址可能是 A.××00H~××03H B.00××H~03××H C.××01H~××03H D.××00H~××02H 21.调制解调器(MODEM)的功能是 A.串行数据与并行数据的转换 B.数字信号与模拟信号的转换 C.电平信号与频率信号的转换 D.基带传送方式与频带传送方式的转换 22.通过串行口发送数据时,在程序中应使用 A.MOVX SBUF,A B.MOVC SUBF,A C.MOV SUBF,A D.MOV A,SUBF 23.通过串行口接收数据时,在程序中应使用 A.MOVX A,SBUF B.MOVC A,SUBF C.MOV SUBF,A D.MOV A,SUBF 24.在多机通讯中,有关第9数据位的说明中,正确的是 A.接收到的第9数据位送SCON寄存器的TB8中保存 B.帧发送时使用指令把TB8位的状态送入移位寄存器的第9位 C.发送的第9数据位内容在SCON寄存器的RB8中预先准备好 D.帧发送时使用指令把TB8位的状态送入发送SBUF中 25.在使用多片DAC0832进行D/A转换,并分时输入数据的应用中,它的两级数据锁存结构可以 A.提高D/A转换速度 B.保证各模拟电压能同时输出 C.提高D/A转换精度 D.增加可靠性 26.8279芯片与80C51接口电路时,其内部时钟信号是由外部输入的时钟信号经过分频产生的。如80C51的fosc=6MHz,8279为取得100KHz的内部时钟信号,则其定时值为 A.20D B.10D C.20H D.10H 分析程序后,回答问题。 若(A)=80H,R0=17H,(17H)=34H,执行下段程序后,(A)=? ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 写出程序执行后有关寄存器和RAM中有关单元的内容: MOV 30H,#A4H MOV A,#0D6H MOV R0,#30H MOV R2,#47H ANL A,R2 ORL A,R0 SWAP A CPL A XRL A,#0FFH ORL 30H,A 下列程序执行后,(SP)=? (A)=? (B)=? ORG 2000H MOV SP,#40H MOV A,#30H LCALL 2500H ADD A,#10H MOV B,A SJMP $ ORG 2500H MOV DPTR,#200AH PUSH DPL PUSH DPH RET 在程序存储器中,数据表格为: 1010H:02H 1011H:04H 1012H:06H 1013H:08H 执行程序 1000H:MOV A,#0DH 1002H:MOVC A,@A+PC 1003H:MOV R0,A 问结果:(A)=? (R0)=? (PC)=? 在程序存储器中,数据表格为: 7010H:02H 7011H:04H 7012H:06H 7013H:08H 执行程序 1004H:MOV A,#10H 1006H:MOV DPTR,#7000H 1009H:MOVC A,@A+DPTR 问结果:(A)=? (PC)=? 程序如下: CLR RS1 CLR RS0 MOV A,#38H MOV R0,A MOV 29H,R0 SETB RS0 MOV C,RS0 MOV R1,A MOV 26H,A MOV 28H,C ADDC A,26H 试问:(1)区分哪些是位操作指令?哪些是字节操作指令? (2)写出程序执行后有关寄存器和RAM中有关单元的内容。 设单片机采用6MHz晶振,计算如下一段程序的执行时间,并说明这段程序的作用。 MOV R0,#20H MOV R3,#05H MOV A,@ R0 CPL A ADD A,#01H MOV @ R0,A NEXT: INC R0, MOV A,@ R0 CPL A ADDC A,#00H MOV @ R0,A DJNZ R3,NEXT SJMP $ 用80C51单片机的P1端口作输出,经驱动电路接8只发光二极管,如图,输出位是“1”时,发光二极管点亮,输出“0”时为暗。试分析下述程序执行过程及发光二极管点亮的工作规律。 LP:MOV P1,#81H LCALL DELAY MOV P1,#42H LCALL DELAY MOV P1,#24H LCALL DELAY MOV P1,#18H LCALL DELAY MOV P1,#24H LCALL DELAY MOV P1,#42H LCALL DELAY SJMP LP 子程序: DELAY:MOV R2,#0FAH L1:MOV R3,#0FAH L2:DJNZ R3,L2 DJNZ R2,L1 RET 改错题: 把在R4和R5中的两字节数取补(高位在R4中): CLR C MOV A,R5 CPL A INC A MOV R5,A MOV A,R4 CPL A ADDC A,#00H MOV R4,A SJMP $ 问答题 单片机MCS—51系列产品80C51/87C51/80C31三种单片机的区别是什么?如何选用? 试说明MCS—51单片机内部程序存储器中6个特殊功能单元(5个中断源和1个复位)的作用及在程序编制中如何使用? 内部RAM低128单元划分为哪3个主要部分?说明各部分的使用特点。 堆栈有哪些功能?堆栈指示器(SP)的作用是什么?在程序设计时,为什么还要对SP重新赋值?如果CPU在操作中要使用两组工作寄存器,你认为SP的初值应为多大? 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组? MCS—51单片机运行出错或程序进入死循环,如何摆脱困境? 在MCS—51单片机系统中,外接程序存储器和数据存储器共用16位地址线和8位数据线,为什么不会发生冲突? 一个定时器的定时时间有限,如何实现两个定时器的串行定时,以满足较长定时时间的要求? 使用一个定时器,如何通过软硬件结合的方法,实现较长时间的定时? 10.MCS—51单片机属哪一种I/O编址方式?有哪些特点可以证明。 11.多片D/A转换器为什么必须采用双缓冲接口方式? 12.说明利用MCS-51单片机的串行口进行多机通信的原理,应特别指出第9数据位在串行通信中的作用及在多机通信时必须采用主从式的原因。 单片机的fosc=12MHZ,要求用T0定时150μs,分别计算采用定时方式0、定时方式1和定时方式2时的定时初值。 单片机的fosc=6MHZ,问定时器处于不同工作方式时,最大定时范围分别是多少? 编程题: 程序实现c=a2+b2。设a、b均小于10,a存在31H单元,b存在32H单元,把c存入33H单元。 软件延时方法实现变调振荡报警:用P1.0端口输出1KHz和2KHz的变调音频,每隔1s交替变换一次。 使用定时器中断方法设计一个秒闪电路,让LED显示器每秒钟有400ms点亮。假定晶振频率为6MHz,画接口图并编写程序。 以80C51串行口按工作方式1进行串行数据通信。假定波特率为1200bps,以中断方式传送数据,请编写全双工通信程序。 以80C51串行口按工作方式3进行串行数据通信。假定波特率为1200bps,以中断方式传送数据,请编写全双工通信程序。 甲乙两台单片机利用串行口方式1通讯,并用RS—232C电平传送,时钟为6MHz,波特率为1.2K,编制两机各自的程序,实现把甲机内部RAM50H~5FH的内容传送到乙机的相应片内RAM单元。 设计一个80C51单片机的双机通信系统,并编写程序将甲机片外RAM3400H~3500H的数据块通过串行口传送到乙机的片外RAM4400H~4500H单元中去。 求8个数的平均值,这8个数以表格形式存放在从table开始的单元中。 在外部RAM首地址为table的数据表中,有10个字节的数据。编程将每个字节的最高位无条件地置“1”。 单片机用内部定时方法产生频率为100KHz等宽矩形波,假定单片机的晶振频率为12MHz,请编写程序。 假定单片机晶振频率为6MHz,要求每隔100ms,从外部RAM以data开始的数据区传送一个数据到P1口输出,共传送100个数据。要求以两个定时器串行定时方法实现。 用定时器T1定时,使P1.2端电平每隔1min变反一次,晶振为12MHz。 设定时器/计数器T0为定时工作方式,并工作在方式1,通过P1.0引脚输出一周期为2ms的方波,已知晶振频率为6MHZ,试编制程序。 若80C51单片机的fosc=6MHZ,请利用定时器T0定时中断的方法,使P1.0输出如图所示的矩形脉冲。 80C51单片机P1端口上,经驱动器接有8只发光二极管,若晶振频率为6MHZ,试编写程序,使这8只发光管每隔2s由P1.0~P1.7输出高电平循环发光。 从片外RAM2000H地址单元开始,连续存有200D个补码数。编写程序,将各数取出处理,若为负数则求补,若为正数则不予处理,结果存入原数据单元。 80C51单片机接口DAC0832D/A变换器,试设计电路并编制程序,使输出如图所示的波形。 PC/XT的D/A接口使用DAC0832。其有关信号接线如图所示,其输出电压V0和输入数字量DI7-DI0之间呈线性且如表所示。现要求V0从零开始按图示波形周期变化(周期可自定)。试用汇编语言编写其控制部分程序。 七、画接口电路图: 1.以两片Intel2716给80C51单片机扩展一个4KB的外部程序存储器,要求地址空间与80C51的内部ROM相衔接,请画出接口图。 2.微型机PC的RS-232接口与MCS-51单片机程序通信接口的电路原理图。 3.MCS-51单片机系统中外部扩展程序存储器和数据存储器共用16位地址线和8位数据线,如何处理不会发生冲突?试画出MCS-51单片机外扩展ROM(2732EPROM)和RAM(6116)的系统接线原理图,并说明其工作过程。 一片6116芯片(2K×8)和一片27128芯片(16K×8)构成存储器系统,要求存储器的起始地址为0000H,且两存储器芯片的地址号连续,试画出连线原理图,并说明每一芯片的地址范围。 用74LS138设计一个译码电路,利用80C51单片机的P0口和P2口译出地址为2000H ~ 3FFFH的片选信号CS 。 用一片74LS138译出两片存储器的片选信号,地址空间分别为1000H~1FFFH,3000H~3FFFH。试画出译码器的接线图。 80C31单片机要扩展4K字节外部RAM,要求地址范围为1000H~1FFFH,请画出完整的电路图。
马潮老师编写的avr教材。 书中以m16为例举了实际应用的例子。 很不错。 书中片断 2.2 ATmega16单片机的组成 ATMEL公司的AVR单片机是一种基于增强RISC结构的、低功耗、CMOS技术、8位微控制器(Enhanced RISC Microcontroller),目前有Tiny、Mega两个系列50多种型号。它们的功能和外部的引脚各有不同,小到8-12个引脚,多到100个引脚,但它们内核的基本结构是一样的,指令系统相容。本书将以性能适中的ATmega16为主线,介绍和讲述AVR单片机的组成,以及如何应用在嵌入式系统中。在正式的产品开发与设计时,设计者可根据系统的实际需要选择合适型号的AVR单片机。 2.2.1 AV R单片机的内核结构 图 2-2 AVR单片机的内核结构示意图 华东师范大学 电子科学技术系 马潮 2-4 基于 AVR 的单片嵌入式系统原理与实践应用 尽管AVR单片机系列有几十种的型号,但它们有着相同的内核结构,指令兼容。图2-2为典型的AVR单片机的内核结构图。 为了提高MCU并行处理的运行效率,AVR单片机采用了程序存储器和数据存储器使用不同的存储空间和存取总线的Harvard结构。算术逻辑单元(ALU)使用单级流水线操作方式对程序存储器进行访问,在执行当前一条指令的同时,也完成了从程序存储器中取出下一条将要执行指令的操作,因此执行一条指令仅需要一个时钟周期。 在AVR的内核中,由32个访问操作只需要一个时钟周期的8位通用工作寄存器组成了“快速访问寄存器组”。“快速访问”意味着在一个时钟周期内执行一个完整的ALU操作。这个ALU操作中包含三个过程:从寄存器组中取出两个操作数,操作数被执行,将执行结果写回目的寄存器中。这三个过程是在一个时钟周期内完成的,构成一个完整的ALU操作。 在32个通用工作寄存器中,有6个寄存器可以合并成为3个16位的,用于对数据存储器空间进行间接寻址的间接地址寄存器(存放地址指针),以实现高效的地址计算。这3个16位的间接地址寄存器称为:X寄存器,Y寄存器和Z寄存器。其中Z寄存器还能作为间接寻址程序存储器空间的地址寄存器,用于在Flash程序存储器空间进行查表等操作。 AVR的算术逻辑单元(ALU)支持寄存器之间,立即数与寄存器之间的算术与逻辑运算功能,以及单一寄存器操作。每一次运算操作的结果将影响和改变状态寄存器(SREG)的值。 使用条件转移、无条件转移和调用指令,可以直接访问全部Flash程序存储器空间以及控制程序的执行顺序。大部分AVR指令为单一16位格式,只有少数指令为32位格式。因此,AVR的程序存储器单元为16位,即每个程序地址(两字节地址)单元存放一条单一的16位指令字。而一条32位的指令字,则要占据2个程序存储器单元。 ATmega16单片机的Flash程序存储器空间可以分成两段:引导程序段(Boot program section)和应用程序段(Application program section)。两个段的读写保护可以分别通过设置对应的锁定位(Lock bits)来实现。在引导程序段内驻留的引导程序中,可以使用SPM指令,实现对应用程序段的写操作(实现在应用自编程IAP功能,使系统能够自己更新系统程序)。 在响应中断服务和子程序调用过程时,程序计数器PC中的返回地址将被存储于堆栈之中。堆栈空间将占用数据存储器(SRAM)中一段连续的地址。因此,堆栈空间的大小仅受到系统总的数据存储器(SRAM)的大小以及系统程序对SRAM的使用量的限制。用户程序应在系统上电复位后,对一个16位的堆栈指针寄存器SP进行初始化设置(或在子程序和中断程序被执行之前)。 在AVR中,所有的存储器空间都是线性的。数据存储器(SRAM)可以通过5种不同的寻址方式进行访问。 AVR的中断控制由I/O寄存器空间的中断控制寄存器和状态寄存器中的全局中断允许位组成。每个中断都分别对应一个中断向量(中断入口地址)。所有的中断向量构成了中断向量表,该中断向量表位于Flash程序存储器空间的最前面。中断的中断向量地址越小,其中断的优先级越高。 I/O空间为连续的64个I/O寄存器空间,它们分别对应MCU各个外围功能的控制和数据寄存器地址,如控制寄存器、定时器/计数器、A/D转换器及其他的I/O功能等。I/O寄存器空间可使用I/O寄存器访问指令直接访问,也可将其映射为通用工作寄存器组后的数据存储器空间,使用数据存储器访问指令进行操作。I/O寄存器空间在数据存储器空间的映射地址为 $020~$05F。 AVR单片机的性能非常强大,所以它的内部结构相对8031结构的单片机要复杂。对于刚开始接触和学习单片机的人员,以及了解8051结构单片机的人来讲,在这里尽管不会马上理解AVR内核的全部特点,但通过以后的逐步学习,应逐渐深入的体会和掌握它的原理, 华东师范大学 电子科学技术系 马潮 2-5 第 2 章 AVR 单片机的基本结构 这对于熟练的应用AVR设计开发产品,以及将来学习使用更新的单片机都会有很大的帮助。技术是在不断的发展的。 2.2.2 典型 AVR芯片ATmega16特点 AVR系列单片机中比较典型的芯片是ATmega16。这款芯片具备了AVR系列单片机的主要的特点和功能,不仅适合应用于产品设计,同时也方便初学入门。其主要特点有: (1)采用先进RISC结构的AVR内核 131条机器指令,且大多数指令的执行时间为单个系统时钟周期; 32个8位通用工作寄存器; 工作在16MHz时具有16MIPS的性能。 配备只需要2个时钟周期的硬件乘法器 (2)片内含有较大容量的非易失性的程序和数据存储器 16K字节在线可编程(ISP)Flash程序存储器(擦除次数>1万次),采用Boot Load技术支持IAP功能; 1K字节的片内SRAM数据存储器,可实现3级锁定的程序加密; 512个字节片内在线可编程EEPROM数据存储器(寿命>10万次); (3)片内含JTAG接口 支持符合JTAG标准的边界扫描功能用于芯片检测; 支持扩展的片内在线调试功能 可通过JTAG口对片内的Flash、EEPROM、配置熔丝位和锁定加密位实施下载编程; (4)外围接口 2个带有分别独立、可设置预分频器的8位定时器/计数器; 1个带有可设置预分频器、具有比较、捕捉功能的16位定时器/计数器; 片内含独立振荡器的实时时钟RTC; 4路PWM通道; 8路10位ADC 面向字节的两线接口TWI(兼容I2C硬件接口); 1个可编程的增强型全双工的,支持同步/异步通信的串行接口USART; 1个可工作于主机/从机模式的SPI串行接口(支持ISP程序下载); 片内模拟比较器; 内含可编程的,具有独立片内振荡器的看门狗定时器WDT; (5)其它的特点 片内含上电复位电路以及可编程的掉电检测复位电路BOD; 片内含有1M/2M/4M/8M,经过标定的、可校正的RC振荡器,可作为系统时钟使用; 多达21个各种类型的内外部中断源; 有6种休眠模式支持省电方式工作; (6)宽电压、高速度、低功耗 工作电压范围宽:ATmega16L 2.7—5.5v,ATmega16 4.5—5.5v; 运行速度:ATmega16L 0—8M,ATmega16 0—16M; 低功耗:ATmega16L工作在1MHz、3v、25度时的典型功耗为,正常工作模式 1.1mA,空闲工作模式 0.35mA,掉电工作模式 <1uA; (7)芯片引脚和封装形式 ATmega16共有32个可编程的I/O口(脚),芯片封装形式有40引脚的PDIP、44引脚的TQFP和44引脚的MLF封装。 华东师范大学 电子科学技术系 马潮 2-6 基于 AVR 的单片嵌入式系统原理与实践应用 2.2.3 外部引 脚与封装 ATmega16单片机有三种形式的封装:40脚双列直插PDIP、44脚方形的TQFP和MLF形式(贴片形式)。其外部引脚封装如图2-3所示。 图2-3 ATmage16 外部引脚与封装示意图 其中,各个引脚的功能如下: (1)电源、系统晶振、芯片复位引脚 Vcc: 芯片供电(片内数字电路电源)输入引脚,使用时连接到电源正极。 AVcc:为端口A和片内ADC模拟电路电源输入引脚。不使用ADC时,直接连接到电源正极;使用ADC时,应通过一个低通电源滤波器与Vcc连接。 AREF:使用ADC时,可作为外部ADC参考源的输入引脚。 GND: 芯片接地引脚,使用时接地。 XTAL2:片内反相振荡放大器的输出端。 XTAL1:片内反相振荡放大器和内部时钟操作电路的输入端。 RESET:RESET为芯片复位输入引脚。在该引脚上施加(拉低)一个最小脉冲宽度为1.5us的低电平,将引起芯片的硬件复位(外部复位)。 (2)32根 I/O引脚,分成PA、PB、PC和PD四个8位端口,他们全部是可编程控制的双(多)功能复用的I/O引脚(口)。 四个端口的第一功能是通用的双向数字输入/输出(I/O)口,其中每一位都可以由指令设置为独立的输入口,或输出口。当I/O设置为输入时,引脚内部还配置有上拉电阻,这个内部的上拉电阻可通过编程设置为上拉有效或上拉无效。 如果AVR的I/O口设置为输出方式工作,当其输出高电平时,能够输出20mA的电流,而当其输出低电平时,可以吸收40mA的电流。因此AVR的I/O口驱动能力非常强,能够直接驱动LED发光二极管、数码管等。而早期单片机I/O口的驱动能力只有5mA,驱动LED时,还需要增加外部的驱动电路和器件。 芯片Reset复位后,所有I/O口的缺省状态为输入方式,上拉电阻无效,即I/O为输入高阻的三态状态。 以上我们简单介绍了ATmega16单片机的主要特性以及引脚封装。可以看出,小小的一 华东师范大学 电子科学技术系 马潮 2-7 第 2 章 AVR 单片机的基本结构 块芯片,其内部的组成结构却是相当复杂的。也正式这种复杂,加上多样的程序,才使得单片机在实际应用中变化无穷。 下面,我们从ATmega16的内部结构出发,逐步的介绍它的工作原理和使用方法。 2.3 ATmega16内部结构 图2-4 ATmage16 的结构框图 华东师范大学 电子科学技术系 马潮 2-8 基于 AVR 的单片嵌入式系统原理与实践应用 图2-4是ATmage16 的结构框图。它是在AVR内核(图2-3)的基础上,具体化的一个实例。从图中可以看出,ATmega16内部的主要构成部分有:
发帖
研发管理

1246

社区成员

软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
帖子事件
创建了帖子
2001-09-01 05:00
社区公告
暂无公告