MPC8349 第6章 仲裁器和总线监控器文档格式.docx
《MPC8349 第6章 仲裁器和总线监控器文档格式.docx》由会员分享,可在线阅读,更多相关《MPC8349 第6章 仲裁器和总线监控器文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
0x00FF_00FF
6.2.2/6-4
0x0C
仲裁器事件寄存器(AER)
0x0000_0000
6.2.3/6-4
0x10
仲裁器中断定义寄存器(AIDR)
6.2.4/6-4
0x14
仲裁器屏蔽寄存器(AMR)
6.2.5/6-4
0x18
仲裁器事件属性寄存器(AEATR)
R
0x0000_00002
6.2.6/6-4
0x1C
仲裁器事件地址寄存器(AEADR)
6.2.7/6-4
0x20
仲裁器事件响应寄存器(AERR)
6.2.8/6-4
1复位值由复位字的核PLL配置确定。
需求参见第四章“复位、时钟定时和初始化”。
2寄存器AEATR和AEADR仅受/PORESET断言(assertion)的影响。
6.2.1仲裁器配置寄存器(ACRArbiterConfigurationRegister)
仲裁器配置寄存器(ACR)定义仲裁器模式和总线上的驻留(parked)主设备。
图6-1表示了ACR的字段。
1注意,COREDIS和位10-11的复位值根据复位配置字确定(关于复位配置字的更详细信息参见第四章“复位、时钟同步和初始化”)
图6-1仲裁器配置寄存器(ACR)
表6-2描述了ACR的各个字段。
表6-2ACR字段说明
位
名字
说明
0-6
-
写保留,读=0
7
COREDIS
核禁止。
指定是否禁用CPU。
当禁用CPU时,就不能由仲裁器保证总线。
复位后,该位从COREDIS的复位配置位得到它的值,并可以用软件配置该位。
此外,如果启动源为启动定序器,如果需要启用CPU,则在启动时必须将COREDIS置为1,且启动定序器的最后一个事务必须将COREDIS置为0。
0CPU启用。
1CPU禁用。
8-9
10-11
保留。
写应保留复位值。
复位值是核PLL配置的功能,它是复位配置字的一部分。
当把核置为按1:
1或3:
2总线时钟操作时,需要在复位时将这些位置为‘01’,否则置为‘00’。
12
13-15
PIPE_DEP
流水深度(未完成的事务的数量)。
000流水深度1(1个未完成的事务)
001流水深度2(2个未完成的事务)
010流水深度3(3个未完成的事务)
011流水深度4(4个未完成的事务)
1xx保留
16
17-19
PCI_RPTCNT
PCI重复计数。
指定使用/REPEAT请求模式时,PCI主设备可以执行的连续事务的最大数量。
000一个连续事务(禁用/REPEAT请求模式)
001两个连续事务
010三个连续事务
011四个连续事务
100五个连续事务
101六个连续事务
110七个连续事务
111八个连续事务
20
21-23
RPTCNT
重复计数。
指定使用/REPEAT请求模式时,任何主设备(PCI除外)可以执行的连续事务的最大数量。
0001个连续事务(禁用/REPEAT请求模式)
0012个连续事务
0103个连续事务
0114个连续事务
1005个连续事务
1016个连续事务
1107个连续事务
1118个连续事务
注意:
建议不要将该字段编为4个以上的连续事务。
24-25
26-27
APARK
地址驻留。
指定仲裁器总线驻留模式。
00驻留到主设备。
仲裁器将地址总线驻留到主设备,主设备由PARKM字段的数字选择。
01驻留到最后一个所有者。
仲裁器将地址总线驻留到最后一个总线所有者。
10禁用。
如果未出现BR,仲裁器不向任何主设备断言BG。
11保留
28-31
PARKM
驻留主设备。
0000e300核
0001PCI1、PCI2、DMA
0010TSEC1
0011TSEC2
0100USB
0101加密核
0110-1111保留
6.2.2仲裁器定时器寄存器(ATRArbiterTimersRegister)
仲裁器定时器寄存器(ATR)定义仲裁器地址超时(ATO)和数据超时(DTO)的值。
图6-2列出了ATR的各个字段。
图6-2仲裁器定时器寄存器(ATR)
表6-3说明了ATR的字段。
表6-3ATR字段说明
0-7
8-15
DTO
数据超时。
为数据占用指定超时时间长度。
该字段的单位为64个总线时钟。
最大值为16329个一致性总线时钟。
如果在指定的超时时间之前未结束数据占用,就出现数据超时。
当DTO=n时,超时周期为n*64。
0x00保留。
0x0164个时钟周期。
0x10128个时钟周期。
0x11192个时钟周期。
…
0xFF16320个时钟周期。
16-23
24-31
ATO
地址超时。
为地址占用指定超时时间长度。
最大值为16329个统一总线时钟。
如果在指定的超时时间之前未结束地址占用,就出现地址超时。
当ATO=n时,超时周期为n*64。
6.2.3仲裁器事件寄存器(AERArbiterEventRegister)
仲裁器使用仲裁器事件寄存器(AER)报告错误事务。
写入全1清除该寄存器。
图6-3列出了AER的字段。
图6-3仲裁器事件寄存器(AER)
表6-4说明了AER的字段。
表6-4AER字段说明
0-25
26
ETEA
传输错误。
报告某个从设备检测到传输错误。
0从设备未检测到传输错误。
1某个从设备检测到传输错误。
27
RES
保留传输类型。
报告事务使用了保留传输类型。
更多信息参见6.3.2.5“保留事务类型”。
0未出现使用保留传输类型的事务。
1出现了使用保留传输类型的事务。
28
ECW
外部控制字传输类型。
报告事务使用了外部控制字传输类型。
更多信息参见6.3.2.6“非法(ECIWX/ECOWX)事务类型”。
0未出现使用外部控制字传输类型的事务。
1出现了使用外部控制字传输类型的事务。
29
AO
仅地址传输类型。
报告事务使用了仅地址传输类型。
更多信息参见6.3.2.4“仅地址事务类型”。
0未出现使用仅地址传输类型的事务。
1出现了使用仅地址传输类型的事务。
30
报告数据占用超时。
0数据超时定时器未到时。
1数据超时定时器到时。
31
报告地址占用超时。
0地址超时定时器未到时。
1地址超时定时器到时。
6.2.4仲裁器中断定义寄存器(AIDRArbiterInterruptDefinationRegister)
仲裁器中断定义寄存器(AIDR)定义出现不同错误情况时的中断。
置位某一位将对应的中断定义为MCP中断,清除某一位则将对应的中断定义为常规中断。
图6-4列出了AIDR的字段。
图6-4仲裁器中断定义寄存器(AIDR)
表6-5说明了AIDR的字段。
表6-5AIDR字段说明
从设备传输错误检测的中断定义。
0某个从设备的传输错误检测引起常规中断。
1某个从设备的传输错误检测引起MCP中断。
使用保留传输类型事务的中断定义。
0使用保留传输类型的事务引起常规中断。
1使用保留传输类型的事务引起MCP中断。
使用外部控制字传输类型事务的中断定义。
0使用外部控制字传输类型的事务引起常规中断。
1使用外部控制字传输类型的事务引起MCP中断。
使用仅地址传输类型事务的中断定义。
0使用仅地址传输类型的事务引起常规中断。
1使用仅地址传输类型的事务引起MCP中断。
数据占用超时的中断定义。
0数据占用超时引起常规中断。
1数据占用超时引起MCP中断。
地址占用超时的中断定义。
0地址占用超时引起常规中断。
1地址占用超时引起MCP中断。
6.2.5仲裁器屏蔽寄存器(AMRArbiterMaskRegister)
仲裁器屏蔽寄存器(AMR)用于屏蔽中断或复位请求。
置位屏蔽位就允许对应的中断或复位请求;
清除屏蔽位则屏蔽中断或复位请求。
AMR可以屏蔽常规中断、MCP中断和复位请求。
图6-5显示了AMR的字段。
图6-5仲裁器屏蔽寄存器(AMR)
表6-6说明了AMR的字段。
表6-6AMR字段说明
从设备传输错误检测的中断屏蔽位。
0禁止某个从设备的传输错误检测中断。
1允许某个从设备的传输错误检测中断。
使用保留传输类型事务的中断屏蔽位。
0禁止使用保留传输类型的事务中断。
1允许使用保留传输类型的事务中断。
使用外部控制字传输类型事务的中断屏蔽位。
0禁止使用外部控制字传输类型的事务中断。
1允许使用外部控制字传输类型的事务中断。
使用仅地址传输类型事务的中断屏蔽位。
0禁止使用仅地址传输类型的事务中断。
1允许使用仅地址传输类型的事务中断。
数据占用超时的中断屏蔽位。
0禁止数据占用超时中断。
1允许数据占用超时中断。
地址占用超时的中断屏蔽位。
0禁止地址占用超时中断。
1允许地址占用超时中断。
6.2.6仲裁器事件属性寄存器(AEATRArbiterEventAttributesRegister)
仲裁器事件属性寄存器(AEATR)报告引起错误的事务的类型,错误在事件寄存器中指明。
更多信息参见6.2.3“仲裁器事件寄存器(AER)”。
AEATR只在上电复位时清除。
它保存的是第一个错误事件的属性。
注意,这意味着如果不清除AER,AEATR就不会改变它的值。
由于AEATR不受软或硬复位的影响,因此软件可以读取该寄存器,并确定总线故障的原因,即使该故障引起死锁。
更多信息参见6.4.2“错误处理顺序”。
图6-6显示了AEATR的字段。
图6-6仲裁器事件属性寄存器(AEATR)
表6-7说明了AEATR的字段。
表6-7AEATR字段说明
0-4
5-7
EVENT
事件类型。
000地址超时
001数据超时
010仅地址传输模式
011外部控制字传输模式
100保留传输模式
101传输错误
11c保留
8-10
11-15
MASTR_ID
主设备id。
00000e300核数据事务
00001保留
00010e300核指令取
00011保留
00100TSEC1
00101TSEC2
00110USBMPH
00111USBDR
01000加密内核
01001I2C(引导定序器)
01010JTAG
01011保留
01100保留
01101PCI1
01110PCI2
01111DMA
10000-11111保留
主设备id反映事务源,用于调试目的。
16-19
TBST
传输突发。
0传输长度超过8个字节
1传输长度最多8个字节
TSIZE
传输长度。
传输长度编码依赖/TBST的值。
/TBST=1:
0011个字节
0102个字节
0113个字节
1004个字节
1015个字节
1106个字节
1117个字节
0008个字节
/TBST=0:
00016个字节
00124个字节
01032个字节
011-111保留
24-26
27-31
TTYPE
传输类型。
00000仅地址
00001仅地址
00010单拍或突发写
00100仅地址
00101保留
00110突发写
00111保留
0100x仅地址
0101x单拍或突发读
0110x仅地址
01110突发读
01111保留
10000仅地址
1XX01保留
10010单拍写
1XX11保留
10100ecowx——非法单拍写
10110保留
11000仅地址
11010单拍或突发读
11100eclwx——非法单拍读
11110突发读
6.2.7仲裁器事件地址寄存器(AEADRArbiterEventAddressRegister)
仲裁器事件地址寄存器(AEADR)报告引起错误的事务的地址,错误在事件寄存器中指明。
AEADR只在上电复位时清除。
保存的是第一个错误事件的地址。
注意,这意味着如果不清除AER,AEADR就不会改变它的值。
由于AEADR不受软或硬复位的影响,因此软件可以读取该寄存器,并确定总线故障的原因,即使该故障引起死锁。
图6-7显示了AEADR的字段。
图6-7仲裁器事件地址寄存器(AEADR)
表6-8说明了AEADR的字段。
表6-8AEADR字段说明
0-31
ADDR
在AEATR寄存器中报告的事件的地址。
更多信息请参见6.2.6“仲裁器事件属性寄存器(AEATR)”
6.2.8仲裁器事件响应寄存器(AERRArbiterEventResponseRegister)
仲裁器事件响应寄存器(AERR)确定不同的错误条件是引发中断,还是引发复位请求。
置位某一位定义对应的错误条件引发复位请求;
清除某一位则定义对应的错误条件引发中断。
图6-8显示了AERR的字段。
图6-8仲裁器事件响应寄存器(AERR)
表6-9说明了AERR的字段。
表6-9AERR字段说明
从设备传输错误检测事件响应。
0某个从设备的传输错误检测引发中断。
1某个从设备的传输错误检测引发复位请求。
0使用保留传输类型的事务引发中断。
1使用保留传输类型的事务引发复位请求。
0使用外部控制字传输类型的事务引发中断。
1使用外部控制字传输类型的事务引发复位请求。
0使用仅地址传输类型的事务引发中断。
1使用仅地址传输类型的事务引发复位请求。
0数据占用超时引发中断。
1数据占用超时引发复位请求。
0地址占用超时引发中断。
1地址占用超时引发复位请求。
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局部总线规范Rev2.2的3.2.5节“事务排序和提交(posting)”。
有关ACR[RPTCNT]和ACR[PCI_RPTCNT]编程的更详细信息参见6.2.1节“仲裁器配置寄存器(ACR)”。
6.3.1.3/ARTRY之后的地址总线仲裁
/ARTRY协议主要被CPU用于中断命中其D高速缓存中的修改线的事务,这样它就可以通过执行监听复录(snoopcopyback)来维护数据的一致性。
当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的地址。
6.3.2.2数据超时
如果数据占