MPC8349 第6章 仲裁器和总线监控器.docx
- 文档编号:9380345
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:28
- 大小:111.39KB
MPC8349 第6章 仲裁器和总线监控器.docx
《MPC8349 第6章 仲裁器和总线监控器.docx》由会员分享,可在线阅读,更多相关《MPC8349 第6章 仲裁器和总线监控器.docx(28页珍藏版)》请在冰豆网上搜索。
MPC8349第6章仲裁器和总线监控器
第六章仲裁器和总线监控器
本章介绍MPC8349E设备中的仲裁器的工作原理。
此外,还介绍仲裁器的配置、控制和状态寄存器。
6.1概述
仲裁器负责提供一致性系统总线(coherentsystembus)的仲裁。
它跟踪所有的地址和数据的总线占用,并为主设备和从设备提供仲裁信号。
此外,它还监控总线,报告错误和协议违反情况。
仲裁器具有以下特点:
●支持可编程流水线深度(从1到4)
●支持4层优先级的总线仲裁
●支持重发请求模式:
源自同一主设备的可编程连续事务的数量(最多8个事务)
●支持数据流操作
●支持可编程地址总线驻留(parking)模式:
禁用、驻留在最后一个总线所有者、驻留在软件选择的主设备。
●仅要求地址、保留的和非法的事务类型,提出有关报告,且可以提出可屏蔽中断
●提供地址占用超时定时器和数据占用超时检测定时器,任何一个定时器超时都可以发出可屏蔽中断
●报告传输错误,可以发出可屏蔽中断
●可以为每种错误事件发出常规或机器检查中断(可编程)
6.1.1一致性系统总线概述
一致性系统总线是MPC8349E的核心总线。
设备内从主设备到从设备的所有数据事务都经过该一致性系统总线。
MPC8349E一致性系统总线支持流水事务。
它拥有独立的地址和数据占用(tenure)。
流水深度决定在第一个数据占用完成之前可以开始的地址占用的数量。
基本突发长度等于核的高速缓存线(cacheline)的长度,为32字节。
使用重复请求模式,一个主设备可以执行最多8个连续的突发。
连续事务的最大数量可以用可编程仲裁器配置寄存器限制。
详情请参见6.2.1节“仲裁器控制寄存器(ACR)”。
6.2仲裁器内存映射/寄存器定义
表6-1展示了仲裁器的配置、控制和状态寄存器的内存映射。
表6-1仲裁器寄存器映射
内存偏移
(16进制)
寄存器
访问
复位
节/页
(需要调整)
0x00
仲裁器配置寄存器(ACR)
R/W
0x0000_0000/
0x0010_00001
6.2.1/6-2
0x04
仲裁器定时器寄存器(ATR)
R/W
0x00FF_00FF
6.2.2/6-4
0x0C
仲裁器事件寄存器(AER)
R/W
0x0000_0000
6.2.3/6-4
0x10
仲裁器中断定义寄存器(AIDR)
R/W
0x0000_0000
6.2.4/6-4
0x14
仲裁器屏蔽寄存器(AMR)
R/W
0x0000_0000
6.2.5/6-4
0x18
仲裁器事件属性寄存器(AEATR)
R
0x0000_00002
6.2.6/6-4
0x1C
仲裁器事件地址寄存器(AEADR)
R
0x0000_00002
6.2.7/6-4
0x20
仲裁器事件响应寄存器(AERR)
R/W
0x0000_0000
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
-
写保留,读=0
10-11
-
保留。
写应保留复位值。
复位值是核PLL配置的功能,它是复位配置字的一部分。
当把核置为按1:
1或3:
2总线时钟操作时,需要在复位时将这些位置为‘01’,否则置为‘00’。
12
-
写保留,读=0
13-15
PIPE_DEP
流水深度(未完成的事务的数量)。
000流水深度1(1个未完成的事务)
001流水深度2(2个未完成的事务)
010流水深度3(3个未完成的事务)
011流水深度4(4个未完成的事务)
1xx保留
16
-
写保留,读=0
17-19
PCI_RPTCNT
PCI重复计数。
指定使用/REPEAT请求模式时,PCI主设备可以执行的连续事务的最大数量。
000一个连续事务(禁用/REPEAT请求模式)
001两个连续事务
010三个连续事务
011四个连续事务
100五个连续事务
101六个连续事务
110七个连续事务
111八个连续事务
20
-
写保留,读=0
21-23
RPTCNT
重复计数。
指定使用/REPEAT请求模式时,任何主设备(PCI除外)可以执行的连续事务的最大数量。
0001个连续事务(禁用/REPEAT请求模式)
0012个连续事务
0103个连续事务
0114个连续事务
1005个连续事务
1016个连续事务
1107个连续事务
1118个连续事务
注意:
建议不要将该字段编为4个以上的连续事务。
24-25
-
写保留,读=0
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
-
写保留,读=0
8-15
DTO
数据超时。
为数据占用指定超时时间长度。
该字段的单位为64个总线时钟。
最大值为16329个一致性总线时钟。
如果在指定的超时时间之前未结束数据占用,就出现数据超时。
当DTO=n时,超时周期为n*64。
0x00保留。
0x0164个时钟周期。
0x10128个时钟周期。
0x11192个时钟周期。
…
0xFF16320个时钟周期。
16-23
-
写保留,读=0
24-31
ATO
地址超时。
为地址占用指定超时时间长度。
该字段的单位为64个总线时钟。
最大值为16329个统一总线时钟。
如果在指定的超时时间之前未结束地址占用,就出现地址超时。
当ATO=n时,超时周期为n*64。
0x00保留。
0x0164个时钟周期。
0x10128个时钟周期。
0x11192个时钟周期。
…
0xFF16320个时钟周期。
6.2.3仲裁器事件寄存器(AERArbiterEventRegister)
仲裁器使用仲裁器事件寄存器(AER)报告错误事务。
写入全1清除该寄存器。
图6-3列出了AER的字段。
图6-3仲裁器事件寄存器(AER)
表6-4说明了AER的字段。
表6-4AER字段说明
位
名字
说明
0-25
-
写保留,读=0
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
DTO
数据超时。
报告数据占用超时。
0数据超时定时器未到时。
1数据超时定时器到时。
31
ATO
地址超时。
报告地址占用超时。
0地址超时定时器未到时。
1地址超时定时器到时。
6.2.4仲裁器中断定义寄存器(AIDRArbiterInterruptDefinationRegister)
仲裁器中断定义寄存器(AIDR)定义出现不同错误情况时的中断。
置位某一位将对应的中断定义为MCP中断,清除某一位则将对应的中断定义为常规中断。
图6-4列出了AIDR的字段。
图6-4仲裁器中断定义寄存器(AIDR)
表6-5说明了AIDR的字段。
表6-5AIDR字段说明
位
名字
说明
0-25
-
写保留,读=0
26
ETEA
传输错误。
从设备传输错误检测的中断定义。
0某个从设备的传输错误检测引起常规中断。
1某个从设备的传输错误检测引起MCP中断。
27
RES
保留传输类型。
使用保留传输类型事务的中断定义。
0使用保留传输类型的事务引起常规中断。
1使用保留传输类型的事务引起MCP中断。
28
ECW
外部控制字传输类型。
使用外部控制字传输类型事务的中断定义。
0使用外部控制字传输类型的事务引起常规中断。
1使用外部控制字传输类型的事务引起MCP中断。
29
AO
仅地址传输类型。
使用仅地址传输类型事务的中断定义。
0使用仅地址传输类型的事务引起常规中断。
1使用仅地址传输类型的事务引起MCP中断。
30
DTO
数据超时。
数据占用超时的中断定义。
0数据占用超时引起常规中断。
1数据占用超时引起MCP中断。
31
ATO
地址超时。
地址占用超时的中断定义。
0地址占用超时引起常规中断。
1地址占用超时引起MCP中断。
6.2.5仲裁器屏蔽寄存器(AMRArbiterMaskRegister)
仲裁器屏蔽寄存器(AMR)用于屏蔽中断或复位请求。
置位屏蔽位就允许对应的中断或复位请求;清除屏蔽位则屏蔽中断或复位请求。
AMR可以屏蔽常规中断、MCP中断和复位请求。
图6-5显示了AMR的字段。
图6-5仲裁器屏蔽寄存器(AMR)
表6-6说明了AMR的字段。
表6-6AMR字段说明
位
名字
说明
0-25
-
写保留,读=0
26
ETEA
传输错误。
从设备传输错误检测的中断屏蔽位。
0禁止某个从设备的传输错误检测中断。
1允许某个从设备的传输错误检测中断。
27
RES
保留传输类型。
使用保留传输类型事务的中断屏蔽位。
0禁止使用保留传输类型的事务中断。
1允许使用保留传输类型的事务中断。
28
ECW
外部控制字传输类型。
使用外部控制字传输类型事务的中断屏蔽位。
0禁止使用外部控制字传输类型的事务中断。
1允许使用外部控制字传输类型的事务中断。
29
AO
仅地址传输类型。
使用仅地址传输类型事务的中断屏蔽位。
0禁止使用仅地址传输类型的事务中断。
1允许使用仅地址传输类型的事务中断。
30
DTO
数据超时。
数据占用超时的中断屏蔽位。
0禁止数据占用超时中断。
1允许数据占用超时中断。
31
ATO
地址超时。
地址占用超时的中断屏蔽位。
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
-
写保留,读=0
5-7
EVENT
事件类型。
000地址超时
001数据超时
010仅地址传输模式
011外部控制字传输模式
100保留传输模式
101传输错误
11c保留
8-10
-
写保留,读=0
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
-
写保留,读=0
20
TBST
传输突发。
0传输长度超过8个字节
1传输长度最多8个字节
21-23
TSIZE
传输长度。
传输长度编码依赖/TBST的值。
/TBST=1:
0011个字节
0102个字节
0113个字节
1004个字节
1015个字节
1106个字节
1117个字节
0008个字节
/TBST=0:
00016个字节
00124个字节
01032个字节
011-111保留
24-26
-
写保留,读=0
27-31
TTYPE
传输类型。
00000仅地址
00001仅地址
00010单拍或突发写
00011保留
00100仅地址
00101保留
00110突发写
00111保留
0100x仅地址
0101x单拍或突发读
0110x仅地址
01110突发读
01111保留
10000仅地址
1XX01保留
10010单拍写
1XX11保留
10100ecowx——非法单拍写
10110保留
11000仅地址
11010单拍或突发读
11100eclwx——非法单拍读
11110突发读
6.2.7仲裁器事件地址寄存器(AEADRArbiterEventAddressRegister)
仲裁器事件地址寄存器(AEADR)报告引起错误的事务的地址,错误在事件寄存器中指明。
更多信息参见6.2.3“仲裁器事件寄存器(AER)”。
AEADR只在上电复位时清除。
保存的是第一个错误事件的地址。
注意,这意味着如果不清除AER,AEADR就不会改变它的值。
由于AEADR不受软或硬复位的影响,因此软件可以读取该寄存器,并确定总线故障的原因,即使该故障引起死锁。
更多信息参见6.4.2“错误处理顺序”。
图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-25
-
写保留,读=0
26
ETEA
传输错误。
从设备传输错误检测事件响应。
0某个从设备的传输错误检测引发中断。
1某个从设备的传输错误检测引发复位请求。
27
RES
保留传输类型。
使用保留传输类型事务的中断定义。
0使用保留传输类型的事务引发中断。
1使用保留传输类型的事务引发复位请求。
28
ECW
外部控制字传输类型。
使用外部控制字传输类型事务的中断定义。
0使用外部控制字传输类型的事务引发中断。
1使用外部控制字传输类型的事务引发复位请求。
29
AO
仅地址传输类型。
使用仅地址传输类型事务的中断定义。
0使用仅地址传输类型的事务引发中断。
1使用仅地址传输类型的事务引发复位请求。
30
DTO
数据超时。
数据占用超时的中断定义。
0数据占用超时引发中断。
1数据占用超时引发复位请求。
31
ATO
地址超时。
地址占用超时的中断定义。
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数据超时
如果数据占
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MPC8349 第6章 仲裁器和总线监控器 仲裁 总线 监控器
![提示](https://static.bdocx.com/images/bang_tan.gif)