网页设计网站结构图怎么弄,网站用户 分析,做电商网站前端的技术选型是,百度推广开户费用标准接前一篇文章#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置#xff08;7#xff09; 2.2 HOST主桥
MPC8548处理器的拓扑结构如图2-2所示#xff1a; 2.2.2 存储器域地址空间到PCI总线域地址空间的转换
MPC8548处理器使用ATMU#xff…接前一篇文章《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置7 2.2 HOST主桥
MPC8548处理器的拓扑结构如图2-2所示 2.2.2 存储器域地址空间到PCI总线域地址空间的转换
MPC8548处理器使用ATMUAddress Translation and Mapping Unit寄存器组进行存储器域到PCI总线域、以及PCI总线域到存储器域的地址映射。ATMU寄存器组由两大寄存器组组成分别为Outbound和Inbound寄存器组。其中Outbound寄存器组将存储器域的地址转换为PCI总线域的地址而Inbound寄存器组将PCI总线域的地址转换为存储器域地址。
在MPC8548处理器中只有当CPU读写访问的地址范围在Outbound寄存器组管理的地址空间之内时HOST主桥才能接收CPU的读写访问并将CPU在存储器域上的读写访问转换为PCI总线域上的读写访问然后才能对PCI设备进行读写操作。
如图2-2所示CPU对存储器域的地址访问首先使用CCBCore Complex Bus总线事务。如果所访问的地址在Cache中则从Cache中直接获得数据否则将从存储器域中获取数据。而在绝大多数情况下外部设备使用的地址空间是不可Cache的PCI设备使用的ROM空间可以是“可Cache”的地址空间所以发向PCI设备的CCB总线事务通常不会与Cache进行数据交换。
如果CCB总线事务使用的地址在HOST主桥的Outbound寄存器窗口中命中HOST主桥将接收这个CCB总线事务并将其转换为PCI总线事务之后再发送到PCI总线上。MPC8548处理器的每一个HOST主桥都提供了5个Outbound寄存器窗口来实现存储器域地址到PCI总线域地址的映射其映射过程如图2‑4所示。 在介绍MPC8548处理器如何使用Outbound寄存器组进行存储器域地址空间到PCI总线域地址空间的转换之前本节将首先介绍Outbound寄存器组中的相应寄存器。Outbound寄存器组的地址偏移、属性和复位值如表2‑2所示。
表2‑2 PCI/X ATMU Outbound寄存器组
地址偏移寄存器名属性复位值0x0_8C00/20/40/60/80POTARn可读写0x000000000x0_8C04/24/44/64/84POTEARn可读写0x000000000x0_8C28/48/68/88POWBARn可读写0x000000000x0_8C30/50/70/90POWARn可读写0x00000000
1POTARn和POTEARn寄存器
在PORTARn和PORTEARn寄存器中保存当前Outbound窗口在PCI总线域的64位地址空间的基地址。这两个寄存器的主要字段如下
POTARn寄存器的TEA字段第0~11位保存PCI总线地址空间的43~32位。POTARn寄存器的TA字段第12~31位保存PCI总线地址空间的31~12位。POTEARn寄存器的TEA字段第12~31位保存PCI总线地址空间的63~44位。
2POWBARn和POWARn寄存器
POWBARn寄存器保存当前Outbound窗口在存储器域中的36位地址空间的基地址。其主要字段如下
WBEA字段保存存储器域地址的第0~3位。WBA字段保存存储器域地址的第4~23位WBA字段并没有保存存储器域的第24~35位地址因为Outbound窗口大小至少为4KB的整数倍。注意在PowerPC处理器中第0位是地址的最高位。
POWARn寄存器描述Outbound窗口的属性其主要字段如下
EN位第0位。该位是Outbound窗口的使能位为1表示当前Outbound寄存器组描述的存储器地址空间到PCI总线地址空间的映射关系有效为0表示无效。
RTT字段第12~15位该字段描述当前窗口的读传送类型为0b0100表示存储器读为0b1000表示I/O读。WTT字段第16~19位该字段描述当前窗口的写传送类型为0b0100表示存储器写为0b1000表示I/O写。在PCIe总线控制器中RTT字段和WTT字段还可以支持对配置空间的读写操作。OWS字段第26~31位该字段描述当前窗口的大小Outbound窗口的大小在4KB~64GB之间其值为2OWS1。
3使用Outbound寄存器访问PCI总线地址空间
MPC8548处理器使用Outbound寄存器组访问PCI总线地址空间的步骤如下
1MPC8548处理器需要将程序使用的32位有效EAEffective Address转换为41位的虚拟地址VAVirtual Address。E500 V2内核不能关闭MMUMemory Management Unit因此不能直接访问物理地址。
2MPC8548处理器通过MMU将41位的虚拟地址转换为36位的物理地址。在E500 V2内核中物理地址是36位缺省是32位需要使能。
3检查LAWBAR和LAWAR寄存器判断当前36位的物理地址是否属于PCI总线空间。在MPC8548中定义了一组LAWBAR和LAWAR寄存器对每一对寄存器描述当前物理空间是与PCI总线、PCIe总线、DDR还是RapidIO空间对应该组寄存器的详细说明见MPC8548 PowerQUICC III™ Integrated Host Processor Family Reference Manual。如果CPU访问的空间为PCI总线空间则执行第4步否则处理器将不会访问PCI地址空间。
4判断当前36位物理地址是否在POWBARn寄存器1~4描述的窗口中。如果在则将36位的处理器物理地址通过寄存器POTARn和POTEARn转换为64位的PCI总线地址然后HOST主桥将来自处理器的读写请求发送到PCI总线上如果不在则将POWBAR0寄存器作为缺省窗口接管这个存储器访问并使用寄存器POTAR0和POTEAR0将处理器物理地址转换为PCI总线地址当然在正常设计中很少出现这种情况。
许多系统软件将Outbound窗口两边的寄存器使用“直接相等”的方法进行映射将存储器域的地址与PCI总线地址设为相同的值。但是系统软件程序员务必注意这个存储器地址与PCI总线地址是分属于存储器域和PCI总线域的这两个值虽然相等但是所代表的地址并不相同一个属于存储器域、而另一个属于PCI总线域。 更多内容请看下回。