版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1五、主机接口五、主机接口 功能功能 结构结构2 HPI 542、545和548的器件具有主机接口(HPI)。HPI是8位的并行接口,用于与作为54x器件的主机的通讯。主机和54x之间交换信息时都通过主机接口访问54x的片内存储器来实现的。对主机而言,主机接口作为外设,主机控制HPI方便主机操作。主机通过54x不能直接访问的地址和数据寄存器、HPI控制寄存器和使用外部数据与接口控制信号与HPI通讯(参见图88)。主机和54x度可以访问HPI控制寄存器。 3 54x用8位的方式接收HPI的16位数据,然后合成为16位的数据。当主机传送一个数据给HPI寄存器,HPI的控制逻辑利用54x片内DARA
2、M的一个2K字的存储器块来完成传输(接收数据)。然后54x通过访问它自己的存储器空间得到数据。HPI的RAM也可以用作为通用双操作数据或程序RAM。 4 HPI有两种工作模式:分享模式(SAM)和主机模式(HOM)。分享模式是一种常规的工作模式,54x和主机都可以访问HPI的存储器。主机的非同步的访问在主机接口内同步化,如果主机与54x同时访问HPI存储器产生了冲突,则主机优先访问,54x延时一个周期访问。在主机模式,只有主机能够访问HPI的存储器,而54x处于复位状态,或处于所有内部时钟和外部时钟都停止的省电模式IDLE2。因此,只有主机能访问HPI的存储器而54x处于最低的功耗。 5 HP
3、I支持主机高速顺序的主机访问。在分享模式,HPI可以以每5个CLKOUT周期一个字节的速度,即64M bps与54x通讯,此时54x工作在CLKOUT为40 MHz的时钟频率上。按HPI的设计可以取得最高的带宽,通讯速度为Fdn/5,其中Fd是54x的CLKOUT频率,n是每次外部操作的主机周期数。因此,40 MHz频率工作的54x在n3(或4)时,主机频率可高达32 (或 24) MHz而无需等待状态。在主机模式,主机可支持速度更高的顺序模式,每50 ns一个字节的速度,即160M bps。此时与54x的时钟无关。 6 主机接口的基本功能 外部主机接口由一个8位的数据总线和用于设置和控制接口
4、的控制信号线组成。HPI很容易与各种主机相连,需要很少、甚至不需要外加接口逻辑。 8位的数据总线用于与主机交换信息。由于54x的结构是16位的,所有与主机通讯的数据都是由2个连续的字节组成。由HBIL引脚指示正在传输的数据是否为第一个字节。内部控制寄存器有一位用于确定是把第一个字节还是第二个字节放在16位字的高位。在HPI进行操作时,主机不能从中间打断第一个字节和第二个字节,否则,数据将会丢失,产生不可预计的结果。 7 两个控制信号HCNTL0和HCNTL1用于指示访问哪一个HPI内部寄存器和访问寄存器的类型。这两个信号与控制信号HBIL都是由主机地址总线相应的位来驱动。主机使用HCNTL0和
5、HCNTL1来指定所访问的HPI控制寄存器HPIC或HPI数据寄存器HPID。也可以用地址自动增加的方式访问数据寄存器HPID。 地址自动增加的方式为读取或写入连续的数据块提供了方便。在地址自动增加的方式中,每读取一个数据之后,HPIA后加一;而每写入一个数据之后,HPIA先加一。在写入HPIC时,主机可以中断54x,而54x可以通过的输出去中断主机。主机用写入HPIC的方式来响应54x和清除。 8 两个数据选通信号/HDS1和/HDS2、读/写选通信号HR/W以及地址选通信号/HAS使HPI很容易与工业标准主机接口而只需要很少的外加逻辑、甚至不需要外加接口逻辑。HPI可以通过多种方式与主机接
6、口:多路地址/数据总线,分离的地址和数据总线,一个数据选通和一个读/写选通信号,或两个分离的读写选通信号。 HPI有一个信号引脚叫做HRDY,它是HPI准备好信号,用于主机插入一个等待状态,使操作延时一个周期。如果从54x得到的HRDY信号不能满足主机的定时要求,这个信号可以用外部逻辑重新同步。在54x采用不同的频率,或者主机用比分享模式更快的速度(最高达主机模式的操作速度)操作时,HRDY信号特别有用。在这两种情况中,HRDY引脚可以很方便地自动调整主机访问速度以与适应54x的时钟速度或切换HPI模式。9 作为HPI的基本使能输入,/HDS1和/HDS2信号一起控制HPI的数据传输;然而,如
7、果需要,也可以改变这些信号的功能。由于可以使能HRDY、只要为高电平HRDY就保持高电平,如果用取代和来控制HPI的操作周期,HRDY信号也要受影响。这些信号的等效输入电路如下:HDS1HDS2HCS内部选通信号10 这表明,采样HCNTL0/1、HBIL和HR/(不使用信号时)的内部选通信号是由这三个信号产生的。因此,、和这三个信号最后出现的是实际控制对HCNTL0/1、HBIL和HR/信号的采样。由于和信号是异或关系,它们同时为低电平并不能产生使能信号。 当使用/HAS采样HCNTL0/1、HBIL和HR/W信号时,可以在操作周期中更早地除去这些信号,有更多的时间把总线状态从地址转向数据,
8、有利于多路切换式地址和数据的总线形式。在这类系统中,通常都有ALE信号,可以把ALE接到。11 两个控制信号HCNTL0和HCNTL1用于指示访问哪一个HPI内部寄存器和访问寄存器的类型。这两个引脚的状态用来选择访问HPI的地址寄存器HPIA,或HPI的数据寄存器HPID,或HPI的控制寄存器HPIC。地址寄存器HPIA作为HPI存储器的指针;控制寄存器HPIC包含控制传输的位和传输状态位;数据寄存器HPID的内容为实际传输的数据。此外,也可以用地址自动增加的方式访问数据寄存器HPID。12 在54x器件的片内,HPI存储器是2K16位的DARAM存储器块,地址为从1000h至17FFh,可以
9、在数据存储器空间,也可以在程序存储器空间,取决于OVLY位的状态。 从主机接口方面看,可以从地址0000h至7FFh处访问HPI的2K字的存储器;然而,只要HPIA的低11位为0开始的地址都可以访问到这块存储器。比如,HPI存储器的第一个字,在54x的数据空间的地址为1000h,只要HPIA的值为下列数据之一,主机就可以访问到:0000h, 0800h,1000h,1800h,.F800h。 地址自动增加的方式为访问HPI存储器的连续数据块提供了方便。在地址自动增加的方式中,每读取一个数据之后,HPIA后加一;而每写入一个数据之后,HPIA先加一。因此,如果在地址自动增加的方式中写HPI存储器
10、中的的第一个字,由于HPIA必须先加一,所以HPIA中必须先装入下列值之一:07FFh,0FFFh, 17FFh, . FFFFh。 13(1 1)HPIHPI存储器(存储器(DARAMDARAM)(2 2)HPIHPI地址寄存器(地址寄存器(HPIAHPIA)(3 3)HPIHPI数据锁存器(数据锁存器(PHIDPHID) (4 4)PHIPHI控制寄存器(控制寄存器(HPICHPIC)(5 5)PHIPHI控制逻辑控制逻辑工作过程工作过程CPUCPU存储存储空间访问空间访问主机数据主机数据寄存器寄存器HPIDHPID主机地址主机地址寄存器寄存器HPIAHPIA外部外部主机主机外部控制信号外
11、部控制信号14HPIHPI两种工作方式两种工作方式 (1 1)共用寻址方式()共用寻址方式(SAMSAM)(2 2)仅主机寻址方式()仅主机寻址方式(HOMHOM) HPIHPI存储器存储器 主机主机 CPUCPU HPIHPI存储器存储器 主机主机 CPUCPU 15HPIHPI与主机的连接与主机的连接 16 HPID与与DARAM存储器的关系存储器的关系 HPIA寄存器对寻址的影响寄存器对寻址的影响 HPIC控制寄存器各位设置控制寄存器各位设置 17对对HPI的寻址过程的寻址过程 HPI的中断过程的中断过程主机主机HPI中断中断写写DSPHINTHCNTL0HCNTL100、10、11HP
12、IC182.6 2.6 串行口串行口 标准同步串行口(标准同步串行口(SPSP) 缓冲同步串行口(缓冲同步串行口(BSPBSP) 多路缓冲串口(多路缓冲串口(McBSPMcBSP) 时分多路串行口(时分多路串行口(TDMTDM) 当缓冲串行口和时分多路串行口工作在标当缓冲串行口和时分多路串行口工作在标准方式时,它们的功能与标准串行口相同准方式时,它们的功能与标准串行口相同 串串行行口口分分类类19一、标准串口一、标准串口SPSP 201.1.串行口串行口组成组成 1616位数据接收寄存器(位数据接收寄存器(DRRDRR) 数据发送寄存器(数据发送寄存器(DXRDXR) 接收移位寄存器(接收移位
13、寄存器(RSRRSR) 发送移位寄存器(发送移位寄存器(XSRXSR) 控制电路控制电路21标准串口标准串口SPSP特点特点 可有多个相互独立的标准同步串口可有多个相互独立的标准同步串口 发送和接收是双向缓冲的发送和接收是双向缓冲的 2个存储器映像寄存器用于传送数据个存储器映像寄存器用于传送数据 每个口有时钟、帧同步脉冲以及串行移位寄存器每个口有时钟、帧同步脉冲以及串行移位寄存器 可以按可以按8位字节或位字节或16位字节转换位字节转换 可以产生自己的可屏蔽收发中断可以产生自己的可屏蔽收发中断 可以工作在任意的时钟频率上可以工作在任意的时钟频率上 标准串行口的最高工作频率是标准串行口的最高工作频
14、率是CLKOUT的的1/4。22串行口连接方法串行口连接方法 数据发送工作过程数据发送工作过程 数据接收工作过程数据接收工作过程 232 2串行口控制寄存器串行口控制寄存器 功能功能控制位作用控制位作用 243. 3. 标准串口标准串口SPSP的使用的使用 STM #0038H ,SPC ;串口初始化;串口初始化 STM #00C0H ,IFR ;清除挂起的串口中断;清除挂起的串口中断 AND #00C0H ,IMR ;使能中断;使能中断 RSBX INTM ;使能全局中断;使能全局中断 STM #00F8H ,SPC ;开始串口传输;开始串口传输 STM DATA1,DXR ;写第一个数据到
15、;写第一个数据到DXR 25二、缓冲串行口(二、缓冲串行口(BSPBSP) 特点特点 缓冲串行口缓冲串行口6 6个寄存器个寄存器控制扩展寄存器控制扩展寄存器BSPCEBSPCE数据接收移位寄存器数据接收移位寄存器BRSRBRSR数据发送移位寄存器数据发送移位寄存器BXSRBXSR 数据接收寄存器数据接收寄存器BDRRBDRR数据发送寄存器数据发送寄存器BDXRBDXR控制寄存器控制寄存器BSPCBSPC 261 1串行口的组成串行口的组成 BDRBDRBCLKRBCLKRBFSRBFSRBCLKXBCLKXBFSXBFSXBDXBDXBRINTBRINTBMINTBMINTBXINTBXINT
16、C54xC54x内存界面内存界面自动缓冲单元自动缓冲单元 ABUABU控制控制XRDY RRDY BXINT BMINT BRINTXRDY RRDY BXINT BMINT BRINTBDXRBDXRBSPCEBSPCEBXSRBXSRBRSRBRSR串口控串口控制逻辑制逻辑BSPCBSPCBDRRBDRR中断中断控制控制C54xCPUC54xCPU界界面面中断中断逻辑逻辑1611272 2缓冲串行口的工作模式缓冲串行口的工作模式 (1 1)缓冲串行口的标准模式)缓冲串行口的标准模式 (表表2-16) (2 2)缓冲串行口增强模式)缓冲串行口增强模式 可编程串口时钟选择时钟可编程串口时钟选择
17、时钟帧同步信号的正负极性可选帧同步信号的正负极性可选1010、1212位字长位字长允许忽略同步信号或不忽略。允许忽略同步信号或不忽略。新增新增功能功能 BSPCEBSPCE的的BREBRE控制模式转换控制模式转换283 3自动缓冲单元自动缓冲单元ABUABU可独立于可独立于CPUCPU自动完成控制串口与自动完成控制串口与固定缓冲内存区中的数据交换。固定缓冲内存区中的数据交换。功能功能组成组成地址寄存器地址寄存器AXRAXR块长度发送寄存器块长度发送寄存器BKXBKX地址接收寄存器地址接收寄存器ARRARR块长度接收寄存器块长度接收寄存器BKRBKR串口控制寄存器串口控制寄存器BSPCEBSPC
18、E 特点特点29ABUABU完成对缓冲存储器的存取;工作过完成对缓冲存储器的存取;工作过程中地址寄存器自动增加,直至缓冲区程中地址寄存器自动增加,直至缓冲区的底部。到底部后,地址寄存器内容恢的底部。到底部后,地址寄存器内容恢复到缓冲存储器区顶部;如果数据到了复到缓冲存储器区顶部;如果数据到了缓冲区的一半或底部,就会产生中断,缓冲区的一半或底部,就会产生中断,并刷新并刷新XH/XLXH/XL;如果选择禁止自动缓冲功;如果选择禁止自动缓冲功能,当数据过半或到达缓冲区底部时,能,当数据过半或到达缓冲区底部时,ABUABU会自动停止缓冲功能。会自动停止缓冲功能。工作过程工作过程 30循环寻址原理循环寻
19、址原理 装载装载BKX/RBKX/R确定缓冲区长度,装载确定缓冲区长度,装载ARX/RARX/R给出给出2K2K字字缓冲区基地址和缓冲区数据起始地址实现初始化。缓冲区基地址和缓冲区数据起始地址实现初始化。BKX/RBKX/R从高位至低位方向第一个从高位至低位方向第一个1 1的位置的位置N N位将位将ARX/RARX/R分为分为ARHARH和和ARLARL两部分,缓冲区顶部地址(两部分,缓冲区顶部地址(TBATBA)由)由高位为高位为ARHARH,而低位为,而低位为N+1N+1个个0 0组成的数定义。缓冲组成的数定义。缓冲区底部地址(区底部地址(BBABBA)由)由ARHARH和和BKL-1BK
20、L-1决定。而当前数决定。而当前数据缓冲区的位置由据缓冲区的位置由ARX/RARX/R的内容决定。如图所示。的内容决定。如图所示。ARX/RARX/R的内容会随着每一次访问继续增加直至到下的内容会随着每一次访问继续增加直至到下一个允许的缓冲区开始地址。然后在后续的存取操一个允许的缓冲区开始地址。然后在后续的存取操作中,作为更新的循环缓冲开始地址,新的作中,作为更新的循环缓冲开始地址,新的ARX/RARX/R内容用来进行正确的循环缓冲地址计算。内容用来进行正确的循环缓冲地址计算。 31循环寻址示意图循环寻址示意图 BKX/RBKX/RARX/RARX/RARHARHARLARL0 00 01 1
21、BBABBATBATBA缓冲区当前位置缓冲区当前位置 ARHARHBKLBKLARHARHBKL1BKL1ARHARH0 00 0下半部开始下半部开始 缓冲区顶部缓冲区顶部 上半部分上半部分 缓冲区底部缓冲区底部下半部分下半部分 32三、时分多路串行口(三、时分多路串行口(TDMTDM) 功功能能 非非TDMTDM方式方式 = =标准串口标准串口 TDMTDM方式方式 当当TSPCTSPC的的TDM=1TDM=1 工作工作方式方式相相关关寄寄存存器器TDMTDM数据接收寄存器数据接收寄存器TRCVTRCVTDMTDM数据发送寄存器数据发送寄存器TDXRTDXRTDMTDM串口控制寄存器串口控制
22、寄存器TSPCTSPCTDMTDM通道选择寄存器通道选择寄存器TCSRTCSRTDMTDM发送发送/ /接收地址寄存器接收地址寄存器TRTATRTATDMTDM接收地址寄存器接收地址寄存器TRADTRADTDMTDM数据接收移位寄存器数据接收移位寄存器TRSRTRSRTDMTDM数据发送移位寄存器数据发送移位寄存器TXSRTXSR 33C54xTDX TDR TFSX TFSR TCLKX TCLKR器件器件0 0器件器件1 1器件器件7 7TDMTDM时分多路串口连接时分多路串口连接342.7 2.7 流水线结构流水线结构流水线流水线操作操作在执行多条指令时,将每条指令的在执行多条指令时,将
23、每条指令的预取指、取指、译码、寻址、读取预取指、取指、译码、寻址、读取操作数、执行等阶段,操作数、执行等阶段,相差一个阶相差一个阶段段地地重叠重叠地执行。地执行。流水流水线操线操作作的的优点优点一条一条k k段流水能在段流水能在k k+ +(n n-1-1)个周期内处理)个周期内处理n n条指令。其前条指令。其前k k个周期用于完成第一条指令个周期用于完成第一条指令,其余,其余n n-1-1条指令的执行需要条指令的执行需要n n-1-1个周期。而个周期。而非流水处理器上执行非流水处理器上执行n n条指令则需要条指令则需要nknk 个周个周期。当指令条数期。当指令条数n n较大时,可认为每个周期
24、较大时,可认为每个周期内执行的最大指令个数为内执行的最大指令个数为k k。 35预取指预取指P取指取指F译码译码D寻址寻址A读取操作数读取操作数R执行执行X流水线操作流水线操作 在第一个机在第一个机器周期用器周期用PCPC中的内容加中的内容加载载PABPAB 在第二个机器周在第二个机器周期用读取到的指期用读取到的指令字加载令字加载PBPB。 第三个周期用第三个周期用PBPB的内容加载指令寄存器的内容加载指令寄存器IRIR,对,对IRIR内的指令进行译码,产生执行内的指令进行译码,产生执行指令所需要的一系列控制信号。指令所需要的一系列控制信号。 36预取指预取指P取指取指F译码译码D寻址寻址A读
25、取操作数读取操作数R执行执行X流水线操作流水线操作 用数据用数据1 1读地址加载读地址加载DABDAB,或用数据读地,或用数据读地址加载址加载CABCAB,修正辅助,修正辅助寄存器和堆栈指针。寄存器和堆栈指针。读数据读数据1 1加载加载DBDB,或读数,或读数据据2 2加载加载CBCB;用数据;用数据3 3写写地址加载到地址加载到EABEAB,以便在,以便在流水线的最后一级将数流水线的最后一级将数据送到数据存储空间。据送到数据存储空间。 执行指令,或用执行指令,或用写数据加载写数据加载EBEB。 37加载加载PAB从从PB读读取指(单周期)取指(单周期)执行读但操作数指令执行读但操作数指令例如
26、:例如:LD *AR1,A加载加载DAB从从DB读读预取指P取指F译码D寻址A读数R执行/写数X预取指P取指F译码D寻址A读数R执行/写数X38预取指P取指F译码D寻址A读数R执行/写数X加载加载DAB和和CAB从从DB和和CB读读 执行双操作指令执行双操作指令例如:例如:MAC *AR2+,AR3,A 执行写单操作数指令执行写单操作数指令例如:例如:STH A,*AR1预取指P取指F译码D寻址A读数R执行/写数X加载加载EAB写至写至EB39预取指P取指F译码D寻址A读数R执行/写数X加载加载EAB写至写至EB 执行写双操作数指令执行写双操作数指令例如:例如:DST A,*AR1 执行读单操
27、作数和写单操作数执行读单操作数和写单操作数例如:例如:ST A,*AR2 |LD *AR3,B 预取指P取指F译码D寻址A读数R执行/写数X加载加载DAB从从DB读出读出加载加载EAB写至写至EB预取指P取指F译码D寻址A读数R执行/写数X加载加载EAB写至写至EB40空转浪费周期空转浪费周期1延迟分支转移的流水线图延迟分支转移的流水线图 无延迟流水线分支转移的问题无延迟流水线分支转移的问题地址地址 指令指令a1a1,a2 a2 B b1 B b1 这是一个四周期、二字分支指令这是一个四周期、二字分支指令a3 a3 i3 i3 这是任意的一周期、一字指令这是任意的一周期、一字指令a4 a4 i
28、4 i4 这是任意的一周期、一字指令这是任意的一周期、一字指令. . .b1 j1b1 j1例例3-73-741分支转移指令流水线图分支转移指令流水线图用分支转移用分支转移指令的地址指令的地址a1a1加载加载PABPAB 取得双字分取得双字分支转移指令支转移指令取得双字分取得双字分支转移指令支转移指令42分支转移指令流水线图分支转移指令流水线图i3i3和和i4i4指令取指令取指。由于这两指。由于这两条指令处在分条指令处在分支转移指令的支转移指令的后面,虽然已后面,虽然已经取指,但不经取指,但不能进入译码级,能进入译码级,且最终被丢弃且最终被丢弃 分支转移指令分支转移指令进入译码级进入译码级用新
29、的值用新的值b1b1加载加载PABPAB43分支转移指令流水线图分支转移指令流水线图j1j1指令取指指令取指 双字分支转移双字分支转移指令进入流水指令进入流水线的执行级线的执行级 执行执行j1j1指令指令 双字分支转移双字分支转移指令进入流水指令进入流水线的执行级线的执行级 由于由于i3i3和和i4i4指指令是不允许执令是不允许执行的,所以这行的,所以这两个周期均花两个周期均花在分支转移指在分支转移指令的执行上。令的执行上。44允许跟在延迟分支允许跟在延迟分支转移指令之后的两转移指令之后的两条单字条单字或一条双字或一条双字指令可以被执行指令可以被执行 延迟分支转移延迟分支转移注意注意1.1.延
30、迟操作指令后面只有两个字的空延迟操作指令后面只有两个字的空 隙,因此不能在此空隙中安排任何隙,因此不能在此空隙中安排任何 一类分支转移指令或重复指令;一类分支转移指令或重复指令;2.2.在在CALLDCALLD或或RETDRETD的空隙中还不能安的空隙中还不能安 排排PUSHPUSH和和POPPOP指令。指令。3 3. .延迟操作指令比它们的非延迟型延迟操作指令比它们的非延迟型 指令要快,在调试延迟型指令时,指令要快,在调试延迟型指令时, 直观性稍差一些,因此希望在大多直观性稍差一些,因此希望在大多 数情况下还是采用非延迟型指令。数情况下还是采用非延迟型指令。 45例例3-8 在完成在完成R=
31、R=(x+yx+y)* *z z操作后转至操作后转至nextnext。可以分别编出如下两段程序:可以分别编出如下两段程序:利用普通分支转移指令利用普通分支转移指令B B 利用延迟分支转移指令利用延迟分支转移指令BDBDLD xLD x,A LD xA LD x,A AADD yADD y,A ADD yA ADD y,A ASTL ASTL A, s STL As STL A, ssLD sLD s,T LD sT LD s,T TMPY zMPY z,A BD next A BD next STL ASTL A, r MPY zr MPY z,A A B next STL AB next S
32、TL A, rr(共(共8 8个字,个字,1010个个T T) (共(共8 8个字,个字,8 8个个T T)在空闲的随后两周期中执行下两条指令在空闲的随后两周期中执行下两条指令 46XC nXC n,cndcnd,cndcnd,cndcnd 如果条件满足,则执如果条件满足,则执行下面行下面n n(n=1n=1或或2 2)条指令,)条指令,否则下面否则下面n n条指令改为执行条指令改为执行n n条条NOPNOP指令。指令。 2条件执行指令的流水线图条件执行指令的流水线图 条件执行指令条件执行指令XC 有下列程序:有下列程序:地址地址 指令指令a1 i1a1 i1a2 i2a2 i2a3 i3a3
33、 i3a4 XC 2a4 XC 2, condconda5 i5a5 i5a6 i6 a6 i6 47条件执行指令流水线图条件执行指令流水线图XCXC指令的地址指令的地址a4a4加载到加载到PAB PAB 取取 X CX C 指 令指 令的操作码的操作码 求解求解XCXC指令所规定的条件。如果条件满指令所规定的条件。如果条件满足,则后面指令足,则后面指令i5i5和和i6i6进入译码级并执进入译码级并执行;否则不对行;否则不对i5i5和和i6i6指令译码。指令译码。481. 1. XCXC是一条单字单周期指令,与条件跳是一条单字单周期指令,与条件跳 转指令相比,具有快速选择其后转指令相比,具有快
34、速选择其后1 1或或2 2 条指令是否执行的优点条指令是否执行的优点 ;2. XC2. XC指令在执行前指令在执行前2 2个周期就已经求出个周期就已经求出 条件,如果在这之后到执行前改变条条件,如果在这之后到执行前改变条 件(如发生中断),将会造成无期望件(如发生中断),将会造成无期望 的结果的结果 。3 3. . 要尽力避免在要尽力避免在XCXC指令执行前指令执行前2 2个周期个周期 改变所规定的条件改变所规定的条件 。 4 4. . 并没有规定并没有规定XCXC指令指令后的一条或两条指后的一条或两条指 令必须是单周期指令。令必须是单周期指令。注注意意49CPUCPU在单个周期内两次在单个周
35、期内两次访问双寻址存储器访问双寻址存储器3双寻址存储器的流水线冲突双寻址存储器的流水线冲突 流水线冲突原因流水线冲突原因不会产生流水线冲突的情况不会产生流水线冲突的情况(1 1)在单周期内允许同时访问)在单周期内允许同时访问DARAMDARAM的不同块。的不同块。(2 2)当流水线中的一条指令访问某一存储器块时,)当流水线中的一条指令访问某一存储器块时,允许流水线中处于同一级的另一条指令访问另一允许流水线中处于同一级的另一条指令访问另一个存储器块。个存储器块。(3 3)允许处于流水线不同级上的两条指令同时访)允许处于流水线不同级上的两条指令同时访问同一个存储器块。问同一个存储器块。 50是利用
36、一次访问中对是利用一次访问中对前、后半个周期分时前、后半个周期分时进行访问的缘故。进行访问的缘故。CPU能够在单周期能够在单周期内对内对DARAM进行进行两次访问两次访问而不冲突而不冲突 对对PAB/PBPAB/PB取指取指 利用前半周期利用前半周期对对DAB/DBDAB/DB读取第一个数据读取第一个数据 利用前半周期利用前半周期对对CAB/CBCAB/CB读取第二个数据读取第二个数据 利用后半周期利用后半周期对对EAB/EBEAB/EB将数据写存储器将数据写存储器 利用后半周期利用后半周期51 预取指取指译码寻址读数执行/写数读PB取指令字取指令字预取指取指译码寻址读数执行/写数读DB执行读
37、单操作数指令执行读单操作数指令预取指取指译码寻址读数执行/写数读DB读CB执行读双操作数指令执行读双操作数指令52预取指取指译码寻址读数执行/写数写EB执行写单操作数指令执行写单操作数指令预取指取指译码寻址读数执行/写数写EB执行写双操作数指令执行写双操作数指令预取指取指译码寻址读数执行/写数读DB写EB执行读单操作数和写单操作数指令执行读单操作数和写单操作数指令预取指取指译码寻址读数执行/写数写EB531.1.同时从同一存储器块中取指和取同时从同一存储器块中取指和取操作数(都在前半个周期);操作数(都在前半个周期);2.2.同时对同同时对同一存储器块进行写操作和读(第二个数)一存储器块进行写
38、操作和读(第二个数)操作(都在后半周期)。操作(都在后半周期)。解决解决冲突冲突办法办法人为合理安排指令,人为合理安排指令,错开访问时序错开访问时序 CPUCPU通过写操作延迟一个周通过写操作延迟一个周期,或者通过插入一个空周期,或者通过插入一个空周期的办法,自动地解决期的办法,自动地解决 CPUCPU同时访问同时访问DARAMDARAM的同一存储器块可能的同一存储器块可能会发生时序上的冲突会发生时序上的冲突。54从从DARAMDARAM块中同时取指和取操作数块中同时取指和取操作数冲突冲突延迟一个周期延迟一个周期 554解决流水线冲突的方法解决流水线冲突的方法 (1)可能发生流水线冲突的情况)
39、可能发生流水线冲突的情况 1) 1) 辅助寄存器(辅助寄存器(AR0AR0AR7AR7)。)。2) 2) 重复块长度寄存器(重复块长度寄存器(BKBK)。)。3) 3) 堆栈指针。堆栈指针。4) 4) 暂存器(暂存器(T T)。)。5) 5) 处理器工作方式状态寄存器(处理器工作方式状态寄存器(PMSTPMST)。)。6) 6) 状态寄存器(状态寄存器(ST0ST0和和ST1ST1)。)。7 7)块重复计数器()块重复计数器(BRCBRC)。)。8 8)存储器映象累加器()存储器映象累加器(AGAG、AHAH、ALAL、BGBG、BHBH、BLBL)。)。56流水线冲突情况分析流水线冲突情况分
40、析57发生流水线冲突的发生流水线冲突的例子例子 在流水线的执行在流水线的执行阶段进行写操作阶段进行写操作 在流水线的寻址在流水线的寻址阶段生成地址阶段生成地址 冲突冲突无等待周期问题无等待周期问题 解决解决数据未准备好数据未准备好58发生流水线冲突的发生流水线冲突的例子例子 在 流 水 线 的在 流 水 线 的执 行 阶 段 进执 行 阶 段 进行写操作行写操作 读 数 阶 段读 数 阶 段将 常 数将 常 数 1 01 0写到写到AR1AR1 冲突冲突同时利用同时利用E E总线总线CPUCPU自动地自动地将将STMSTM的写的写操作延迟操作延迟一个周期一个周期 在流水线的寻址在流水线的寻址阶
41、段生成地址阶段生成地址 新冲突新冲突数据未准备好数据未准备好解决解决59发生流水线冲突的发生流水线冲突的例子例子 STLMSTLM指令后指令后面 插 入 一 条面 插 入 一 条NOPNOP指令指令 在流水线的在流水线的执行阶段进执行阶段进行写操作行写操作读 数 阶 段读 数 阶 段将常数将常数1010写到写到AR1AR1在流水线的寻址在流水线的寻址阶段生成地址阶段生成地址 E E总线总线错开错开解决解决数据准备好数据准备好解决解决604解决流水线冲突的方法解决流水线冲突的方法 (2)用等待周期表解决流水线冲突)用等待周期表解决流水线冲突 等待周期表给出了对存储器映象寄存器以及等待周期表给出了
42、对存储器映象寄存器以及ST0ST0、ST1ST1、PMSTPMST的的控制字段进行写操作的各种指令所需插入控制字段进行写操作的各种指令所需插入的等待周期。的等待周期。 对双字或三字指令,都会提供隐含的保护周期。对双字或三字指令,都会提供隐含的保护周期。利用这些指令提供的隐含的保护周期,有时可以不插利用这些指令提供的隐含的保护周期,有时可以不插NOPNOP指令。指令。61控制字段控制字段不插入不插入插入插入1 1个个插入插入2 2个个T TSTM #1kSTM #1k, T TMVDK SmemMVDK Smem,T TLD SmemLD Smem,T TLD SmemLD Smem,TSTTS
43、T所有其它存储指令所有其它存储指令包括包括EXPEXP ASMASMLD #k5LD #k5, ASMASMLD SmemLD Smem,ASMASM所有其它存储指令所有其它存储指令 DPDPCPL=0CPL=0LD #k9LD #k9, DPDPLD SmemLD Smem,DPDP STM # lkSTM # lk,ST0ST0ST # lkST # lk,ST0ST0所有其它存储指令插入所有其它存储指令插入3 3个个SXM C16SXM C16FRCT OVMFRCT OVM 所有存储指令所有存储指令包括包括SSXMSSXM和和RSXMRSXM A A 或或B B 修改累加器然后读修改累
44、加器然后读MMRMMR 在在RPTBDRPTBD前读前读BRCBRCSTM # lkSTM # lk,BRCBRCST # lkST # lk,BRCBRCMVDK SmemMVDK Smem,BRCBRCMVMD MMRMVMD MMR,BRCBRC所有其它存储指令所有其它存储指令 SRCCDSRCCD(在循环中)(在循环中)见说明见说明4 4等待周期表等待周期表1 162例例3-11 利用表利用表3-83-8等待周期表等待周期表1 1选择插入的选择插入的NOPNOP数。数。SSBX SXMSSBX SXMNOPNOPLD xLD x,B B 由于由于LD xLD x,B B是一条单字指令,
45、不提供隐含的是一条单字指令,不提供隐含的保护周期。根据表保护周期。根据表3-83-8的等待周期表的等待周期表1 1,应当在,应当在SSBX SSBX SXM SXM 指令后插入一条指令后插入一条NOPNOP指令。而指令。而SSBX SXMSSBX SXMLD LD * *(x x),),B B由于由于LD LD * *(x x),),B B是一条双字的绝对寻址指令,是一条双字的绝对寻址指令,它隐含一个等待周期,故它隐含一个等待周期,故SSBXSSBX指令就不要再插指令就不要再插NOPNOP指指令了。令了。ST1ST1第第8 8位位SXMSXM0 0禁止符号位扩展禁止符号位扩展SXMSXM1 1
46、允许符号位扩展允许符号位扩展63例例3-12 利用隐含等待周期解决流水线冲突。利用隐含等待周期解决流水线冲突。LD GAIN LD GAIN ,T TSTM #inputSTM #input,AR1AR1MPY MPY * *AR1+AR1+,A A例例3-13利用表利用表3-83-8等待周期表等待周期表3 3插入插入NOPNOP周期解决周期解决流水线冲突。流水线冲突。STLM BSTLM B,AR2AR2NOPNOPSTM #inputSTM #input,AR3AR3MPY AR2+MPY AR2+,* *AR3+AR3+,A ALD LD 中写中写T T和和STMSTM中写中写AR1AR
47、1要用到要用到E E总线,由于总线,由于STMSTM是一条双字指令是一条双字指令,隐含一个等待周期,故对于,隐含一个等待周期,故对于AR1AR1来说,等待周期为来说,等待周期为0 0。STMSTM中写中写AR3AR3要用到要用到E E总线,会总线,会与与STLMSTLM中写中写AR2AR2用用E E总线相冲总线相冲突,查表突,查表3-83-8等待周期表等待周期表3 3的的控制字段为控制字段为AR3AR3,STLMSTLM指令后指令后应插入应插入2 2个个NOPNOP,但由于下条,但由于下条指令指令STMSTM隐含隐含1 1个等待周期,个等待周期,故只需要插入一条故只需要插入一条NOPNOP指令
48、。指令。64第九节第九节 中断处理中断处理 65666768中断序号中断序号 中断名称中断名称 中断地址中断地址 中断优先级中断优先级 功功 能能 0 RS/STIRN00H1复位复位(硬件和软件复位硬件和软件复位) 1 NMI/SINT1604H2不可屏蔽中断不可屏蔽中断 2 SINT1708H软件中断软件中断#17 3 SINT180CH软件中断软件中断#184 SINT1910H软件中断软件中断#195 SINT2014H软件中断软件中断#206 SINT2118H软件中断软件中断#217 SINT221CH软件中断软件中断#2269中断序号中断序号 中断名称中断名称 中断地址中断地址
49、中断优先级中断优先级 功功 能能 8 SINT2320H软件中断软件中断#239 SINT2424H软件中断软件中断#2410 SINT2528H软件中断软件中断#25 11 SINT262CH软件中断软件中断#2612 SINT2730H软件中断软件中断#2713 SINT2834H软件中断软件中断#2814 SINT2938H软件中断软件中断#2915 SINT303CH软件中断软件中断#3070中断序号中断序号 中断名称中断名称 中断地址中断地址 中断优先级中断优先级 功功 能能 16 INT0/SINT040H3外部用户中断外部用户中断#0 17 INT1/SINT144H4外部用户中
50、断外部用户中断#1 18 INT2/SINT248H5外部用户中断外部用户中断#2 19 TINT0/SINT34CH6内部定时器内部定时器0中断中断 20 BRINT0/SINT4 50H7缓冲串口缓冲串口McBSP0McBSP0接收接收中断中断 21 BXINT0/SINT5 54H8缓冲串口缓冲串口McBSP0McBSP0发送发送中断中断 22保留保留(DMAC0)/SINT6 58H9保留保留(默认默认)或或DMADMA通道通道0中断,中断,由由DMPRECDMPREC寄存器选择寄存器选择 71中断序号中断序号 中断名称中断名称 中断地址中断地址 中断优先级中断优先级 功功 能能 23
51、 TINT1(DMAC1)/ SINT7 5CH10内部定时器内部定时器1中断中断(默默认认)或或DMADMA通道通道1中断,中断,由由DMPRECDMPREC寄存器选择寄存器选择 24 INT3 /SINT8 60H11外部用户中断外部用户中断#3 25 HPINT/ SINT9 64H12HPIHPI中断中断 26BRINT1(DMAC2)/SINT10 68H13缓冲串口缓冲串口McBSP1McBSP1接收接收中断中断(默认默认)或或DMADMA通道通道2中断,由中断,由DMPRECDMPREC寄存寄存器选择器选择 27 BXINT1(DMAC3)/SINT11 6CH14缓冲串口缓冲串
52、口McBSP1McBSP1发送发送中断中断(默认默认)或或DMADMA通道通道3中断,由中断,由DMPRECDMPREC寄存寄存器选择器选择 72中断序号中断序号 中断名称中断名称 中断地址中断地址 中断优先级中断优先级 功功 能能 28 DMAC4/SINT12 70H 15DMADMA通道通道4中断中断 29 DMAC5/SINT13 74H16DMADMA通道通道5中断中断 HPINT/ SINT9 78H7FH保留保留 73二、中断标志寄存器(二、中断标志寄存器(IFRIFR)和)和中断屏蔽寄存器(中断屏蔽寄存器(IMRIMR) 中断标志寄存器:功能、设置、清除中断标志寄存器:功能、设
53、置、清除中断屏蔽寄存器:功能、设置、开放中断屏蔽寄存器:功能、设置、开放74三、中断处理过程三、中断处理过程(1 1)接受中断请求)接受中断请求(2 2)响应中断)响应中断 (3 3)执行中断服务程序)执行中断服务程序四、实现中断的相关问题四、实现中断的相关问题(1 1)中断向量地址的计算)中断向量地址的计算 75中断向量地址计算举例中断向量地址计算举例复位后的初始地址计算复位后的初始地址计算(1 1)取)取IPTRIPTR的值的值 (2 2)查表)查表2 22525得中断向量序号得中断向量序号(3 3)将十六进制的中断向量序号左移)将十六进制的中断向量序号左移2 2位位 (4 4)将()将(1 1)与()与(3 3)相加)相加 得中断向量地址得中断向量地址7677IPTR=1 1 1 1 1 1 1 1 1IPTR=1 1 1 1 1 1 1 1 1+ K= 0 0 0 0 0 0 0+ K= 0 0 0 0 0 0 01 1 1 11 1 1 1 1 1 1 11 1 1 1 1 0 0 01 0 0 0 0 0 0 0 0 0 0 0F F 8 0 hF F 8 0 h故硬件复位后的开始地址为故硬件复位后的开始地址为0FF80h0FF80h。IPTR=0 0 0 0 0 0 0 0 1 IPTR=0 0 0 0 0 0 0 0 1 + K
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论