第6章_仲裁器和总线监控器_mpc83xx中文手册
- 格式:doc
- 大小:288.00 KB
- 文档页数:16
第六章仲裁器和总线监控器本章介绍MPC8349E设备中的仲裁器的工作原理。
此外,还介绍仲裁器的配置、控制和状态寄存器。
6.1概述仲裁器负责提供一致性系统总线(coherent system bus)的仲裁。
它跟踪所有的地址和数据的总线占用,并为主设备和从设备提供仲裁信号。
此外,它还监控总线,报告错误和协议违反情况。
仲裁器具有以下特点:●支持可编程流水线深度(从1到4)●支持4层优先级的总线仲裁●支持重发请求模式:源自同一主设备的可编程连续事务的数量(最多8个事务)●支持数据流操作●支持可编程地址总线驻留(parking)模式:禁用、驻留在最后一个总线所有者、驻留在软件选择的主设备。
●仅要求地址、保留的和非法的事务类型,提出有关报告,且可以提出可屏蔽中断●提供地址占用超时定时器和数据占用超时检测定时器,任何一个定时器超时都可以发出可屏蔽中断●报告传输错误,可以发出可屏蔽中断●可以为每种错误事件发出常规或机器检查中断(可编程)6.1.1一致性系统总线概述一致性系统总线是MPC8349E的核心总线。
设备内从主设备到从设备的所有数据事务都经过该一致性系统总线。
MPC8349E一致性系统总线支持流水事务。
它拥有独立的地址和数据占用(tenure)。
流水深度决定在第一个数据占用完成之前可以开始的地址占用的数量。
基本突发长度等于核的高速缓存线(cache line)的长度,为32字节。
使用重复请求模式,一个主设备可以执行最多8个连续的突发。
连续事务的最大数量可以用可编程仲裁器配置寄存器限制。
详情请参见6.2.1节“仲裁器控制寄存器(ACR)”。
6.2仲裁器内存映射/寄存器定义表6-1展示了仲裁器的配置、控制和状态寄存器的内存映射。
复位值由复位字的核PLL配置确定。
需求参见第四章“复位、时钟定时和初始化”。
2寄存器AEATR和AEADR仅受/PORESET断言(assertion)的影响。
6.2.1仲裁器配置寄存器(ACR Arbiter Configuration Register)仲裁器配置寄存器(ACR)定义仲裁器模式和总线上的驻留(parked)主设备。
图6-1表示了ACR的字段。
1注意,COREDIS和位10-11的复位值根据复位配置字确定(关于复位配置字的更详细信息参见第四章“复位、时钟同步和初始化”)图 6-1 仲裁器配置寄存器(ACR)表6-2描述了ACR的各个字段。
6.2.2仲裁器定时器寄存器(ATR Arbiter Timers Register)仲裁器定时器寄存器(ATR)定义仲裁器地址超时(ATO)和数据超时(DTO)的值。
图6-2列出了ATR的各个字段。
图6-2 仲裁器定时器寄存器(ATR)表6-3说明了ATR的字段。
6.2.3仲裁器事件寄存器(AER Arbiter Event Register)仲裁器使用仲裁器事件寄存器(AER)报告错误事务。
写入全1清除该寄存器。
图6-3列出了AER的字段。
图6-3 仲裁器事件寄存器(AER)表6-4说明了AER的字段。
6.2.4仲裁器中断定义寄存器(AIDR Arbiter Interrupt Defination Register)仲裁器中断定义寄存器(AIDR)定义出现不同错误情况时的中断。
置位某一位将对应的中断定义为MCP中断,清除某一位则将对应的中断定义为常规中断。
图6-4列出了AIDR的字段。
图6-4 仲裁器中断定义寄存器(AIDR)表6-5说明了AIDR的字段。
6.2.5仲裁器屏蔽寄存器(AMR Arbiter Mask Register)仲裁器屏蔽寄存器(AMR)用于屏蔽中断或复位请求。
置位屏蔽位就允许对应的中断或复位请求;清除屏蔽位则屏蔽中断或复位请求。
AMR可以屏蔽常规中断、MCP中断和复位请求。
图6-5显示了AMR的字段。
图6-5 仲裁器屏蔽寄存器(AMR)表6-6说明了AMR的字段。
6.2.6仲裁器事件属性寄存器(AEATR Arbiter Event Attributes Register)仲裁器事件属性寄存器(AEATR)报告引起错误的事务的类型,错误在事件寄存器中指明。
更多信息参见6.2.3“仲裁器事件寄存器(AER)”。
AEATR只在上电复位时清除。
它保存的是第一个错误事件的属性。
注意,这意味着如果不清除AER,AEATR就不会改变它的值。
由于AEATR不受软或硬复位的影响,因此软件可以读取该寄存器,并确定总线故障的原因,即使该故障引起死锁。
更多信息参见6.4.2“错误处理顺序”。
图6-6显示了AEATR的字段。
图6-6 仲裁器事件属性寄存器(AEATR)表6-7说明了AEATR的字段。
表6-7 AEATR字段说明6.2.7仲裁器事件地址寄存器(AEADR Arbiter Event Address Register)仲裁器事件地址寄存器(AEADR)报告引起错误的事务的地址,错误在事件寄存器中指明。
更多信息参见6.2.3“仲裁器事件寄存器(AER)”。
AEADR只在上电复位时清除。
保存的是第一个错误事件的地址。
注意,这意味着如果不清除AER,AEADR就不会改变它的值。
由于AEADR不受软或硬复位的影响,因此软件可以读取该寄存器,并确定总线故障的原因,即使该故障引起死锁。
更多信息参见6.4.2“错误处理顺序”。
图6-7显示了AEADR的字段。
图6-7 仲裁器事件地址寄存器(AEADR)表6-8说明了AEADR的字段。
6.2.8仲裁器事件响应寄存器(AERR Arbiter Event Response Register)仲裁器事件响应寄存器(AERR)确定不同的错误条件是引发中断,还是引发复位请求。
置位某一位定义对应的错误条件引发复位请求;清除某一位则定义对应的错误条件引发中断。
图6-8显示了AERR的字段。
图6-8 仲裁器事件响应寄存器(AERR)表6-9说明了AERR的字段。
6.3功能描述下面几节介绍仲裁器功能:仲裁策略和总线错误检测。
6.3.1仲裁策略仲裁处理涉及主设备和仲裁器。
主设备根据特权做出仲裁,获得地址占用。
对于数据占用,仲裁器使用与地址占用相同的事务处理顺序。
图6-9显示了地址总线仲裁时所涉及的主设备和仲裁器之间的接口信号。
图6-9 地址总线仲裁主设备在开始任何事务处理之前,必须获得地址总线的所有权。
主设备断言它的占用总线请求信号,以及仲裁属性信号/REPEAT和PRIORITY[0:1]。
之后仲裁器根据系统状态和仲裁方案,向请求的主设备断言相应的地址总线准许信号。
有关仲裁方案的详细信息请参见6.3.1.1“带PRIORITY[0:1]的地址总线仲裁”。
当接收到地址总线准许时,主设备可以开始地址占用。
6.3.1.1带PRIORITY[0:1]的地址总线仲裁只要主设备断言它的总线请求,以获得地址总线的所有权,它就可以驱动PRIORITY[0:1]信号,指明请求优先级。
主设备由于有较高的优先级可以尽快得到服务。
仲裁器考虑这个额外信息,以便为更高优先级的请求产生比较低优先级的请求更好的服务。
因此,仲裁器按下列基于优先级的仲裁方案进行操作:1.对于同一优先级,使用公平仲裁方案(简单的循环方案)。
2.对于每个非0优先级,保留一个位置,作为低优先级仲裁环的占位符。
3.每个主设备可以随时改变优先级。
图6-10给出了一个四层的基于优先级的仲裁算法的一个例子。
在该例子中,如果所有的主设备都连续请求总线,则按下列顺序和特定带宽进行总线授权:●M6获得1/2的总线带宽●M4和M5每个获得1/6的总线带宽●M0和M3每个获得1/18的总线带宽●M1和M2每个获得1/36的总线带宽图6-10 基于优先级的仲裁算法的一个例子注意有关优先级设计的更详细的信息,参见每个总线主设备的那一章,或5.3.2.4节“系统优先级和配置寄存器(SPCR)”。
6.3.1.2带/REPEAT的地址总线仲裁当主设备获得了当前地址总线的控制权,并希望执行另一个事务处理时,它可以连同/REPEAT一起断言总线请求,向仲裁器发出重复请求。
这样,如果当前地址占用还未被/ARTRY,仲裁器就向同一主设备断言总线准许。
不论来自其他主设备的总线请求优先级是多少,都这样处理。
换句话说,“重复请求”覆盖优先级方案。
尽管重复请求可以提高页命中率和内存带宽的总体利用率,但它会增加单个主设备的最坏情况等待时间,因此仲裁器有一个可编程计数器,以限制由主设备执行的连续事务的最大数量。
一旦计数器到期,仲裁器就忽略/REPEAT信号,回退到常规仲裁方案。
PCI主设备有一个专用的重复计数器,因为在接受读请求之前,它可能需要更多的重复事务。
PCI定序规则要求,在可以开始任何新的读操作之前,PCI桥必须清空所有排队的写操作。
更多信息参见PCI 局部总线规范 Rev 2.2 的3.2.5节“事务排序和提交(posting)”。
有关ACR[RPTCNT]和ACR[PCI_RPTCNT]编程的更详细信息参见6.2.1节“仲裁器配置寄存器(ACR)”。
6.3.1.3/ARTRY之后的地址总线仲裁/ARTRY协议主要被CPU用于中断命中其D高速缓存中的修改线的事务,这样它就可以通过执行监听复录(snoop copyback)来维护数据的一致性。
当CPU断言/ARTRY时,立即将总线授权给CPU,以执行监听复录。
完成监听复录以后,仲裁器将总线授权回给其事务被/ARTRY了的主设备。
6.3.1.4地址总线驻留仲裁器支持地址总线驻留。
该特性意味着当没有主设备请求总线时(所有的请求都无效),仲裁器可以选择将地址总线(或断言地址总线准许)交给一个主设备。
驻留的主设备可以跳过总线请求,直接认为拥有总线所有权。
这样就减少了驻留主设备的访问等待时间。
有关ACR[APARK]和ACR[PARKM]的更详细信息参见6.2.1“仲裁器配置寄存器(ACR)”。
6.3.1.5数据总线仲裁对于每个被承诺的地址占用都需要一个数据占用,以完成事务处理。
在MPC8349E系统中,仲裁器控制将数据总线授权发送给先前执行地址占用的、参与数据占用的主设备和从设备。
6.3.2总线错误检测仲裁器负责跟踪总线上出现的下列情况:●地址超时●数据超时●传输错误●仅地址事务处理类型●保留的事务处理类型●非法(eciwx/ecows)事务处理类型6.3.2.1地址超时如果地址占用在规定的超时间隔内(由ATR[ATO]规定)未结束,就会出现地址超时。
在这种情况下,仲裁器执行下列操作:1.结束地址占用。
2.开始数据占用,并通过断言传输错误结束数据占用。
3.向AER[ATO]报告该事件。
4.如果AMR[ATO]允许,根据AERR[ATO]和AIDR[ATO]发出复位请求、MCP或常规中断。
5.对第一个错误事件,更新事务属性和AEATR以及AEADR的地址。