假设在一个32位处理器中,存储器域的0xF000-0000~0xF7FF-FFFF这段物理地址空间与PCI总线的地址空间存在映射关系。图3-1 存储器域与PCI总线域的映射关系当PCI设备使用DMA机制访问存储器域地址空间时,处理器系统同样需要将存储器域的地址空间反向映射到PCI总线地址空间。本章采用图3-1的映射关系,虽然增加了映射复杂度,却便于读者深入理解存储器域到PCI总线域之间的映射关系。......
2023-10-20
MPC8548处理器使用ATMU(Address Translation and Mapping Unit)寄存器组进行存储器域到PCI总线域,以及PCI总线域到存储器域的地址映射。ATMU寄存器组由两大组寄存器组成,分别为Outbound和Inbound寄存器组。其中Outbound寄存器组将存储器域的地址转换为PCI总线域的地址,而Inbound寄存器组将PCI总线域的地址转换为存储器域的地址。
在MPC8548处理器中,只有当CPU读写访问的地址范围在Outbound寄存器组管理的地址空间之内时,HOST主桥才能接收CPU的读写访问,并将CPU在存储器域上的读写访问转换为PCI总线域上的读写访问,然后才能对PCI设备进行读写操作。
如图2-2所示,CPU对存储器域的地址访问,首先使用CCB总线事务,如果所访问的地址在Cache中命中,则从Cache中直接获得数据,否则将从存储器域中获取数据。而在绝大多数情况下,外部设备使用的地址空间是不可Cache[13]的,所以发向PCI设备的CCB总线事务通常不会与Cache进行数据交换。
如果CCB总线事务使用的地址在HOST主桥的Outbound寄存器窗口中命中,HOST主桥将接收这个CCB总线事务,并将其转换为PCI总线事务之后,再发送到PCI总线上。MPC8548处理器的每一个HOST主桥都提供了5个Outbound寄存器窗口来实现存储器域地址到PCI总线域地址的映射,其映射过程如图2-4所示。
图2-4 MPC8548处理器存储器域到PCI域的转换
在介绍MPC8548处理器如何使用Outbound寄存器组进行存储器域地址空间到PCI总线域地址空间的转换之前,本节将首先介绍Outbound寄存器组中的相应寄存器。Outbound寄存器组的地址偏移、属性和复位值如表2-2所示。
表2-2 PCI/X ATMU Outbound寄存器组
1.POTARn和POTEARn寄存器
在POTARn和POTEARn寄存器中保存当前Outbound窗口在PCI总线域中的64位地址空间的基地址。这两个寄存器的主要字段如下。
●POTARn寄存器的TEA字段,第0~11位,保存PCI总线地址空间的43~32位。
●POTARn寄存器的TA字段,第12~31位,保存PCI总线地址空间的31~12位[14]。
●POTEARn寄存器的TEA字段,第12~31位,保存PCI总线地址空间的63~44位。
2.POWBARn寄存器和POWARn寄存器
而POWBARn寄存器保存当前Outbound窗口在存储器域中的36位地址空间的基地址[15],其主要字段如下。(www.chuimin.cn)
●WBEA字段保存存储器域地址的第0~3位。
●WBA字段保存存储器域地址的第4~23[16]位。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之间,其值为2OWS+1。
3.使用Outbound寄存器访问PCI总线地址空间
MPC8548处理器使用Outbound寄存器组访问PCI总线地址空间的步骤如下。
(1)首先MPC8548处理器需要将程序使用的32位有效地址EA(Effective Address)转换为41位的虚拟地址VA(Virtual Address)。E500 V2内核不能关闭MMU(Memory Manage-ment Unit),因此不能直接访问物理地址。
(2)MPC8548处理器通过MMU将41位的虚拟地址转换为36位的物理地址。在E500V2内核中,物理地址是36位(缺省是32位,需要使能)。
(3)检查LAWBAR和LAWAR寄存器,判断当前36位的物理地址是否属于PCI总线空间。在MPC8548中定义了一组LAWBAR和LAWAR寄存器对,每一对寄存器描述当前物理空间是与PCI总线、PCIe总线、DDR还是RapidIO空间对应。该组寄存器的详细说明见MPC8548 PowerQUICC IIITM Integrated Host Processor Family Reference Manual。如果CPU访问的空间为PCI总线空间,则执行第(4)步,否则处理器将不会访问PCI地址空间。
(4)判断当前36位物理地址是否在POWBARn寄存器1~4描述的窗口中,如果在则将36位的处理器物理地址通过寄存器POTARn和POTEARn转换为64位的PCI总线地址,然后HOST主桥将来自处理器的读写请求发送到PCI总线上;如果不在POWBARn寄存器1~4描述的窗口中,POWBAR0寄存器作为缺省窗口,接管这个存储器访问,并使用寄存器PO-TAR0和POTEAR0,将处理器物理地址转换为PCI总线地址,当然在正常设计中很少出现这种情况。
许多系统软件,将Outbound窗口两边的寄存器使用“直接相等”的方法进行映射,将存储器域的地址与PCI总线地址设为相同的值。但是系统软件程序员务必注意这个存储器地址与PCI总线地址是分属于存储器域与PCI总线域的,这两个值虽然相等,但是所代表的地址并不相同,一个属于存储器域,而另一个属于PCI总线域。
有关PCI Express体系结构导读的文章
假设在一个32位处理器中,存储器域的0xF000-0000~0xF7FF-FFFF这段物理地址空间与PCI总线的地址空间存在映射关系。图3-1 存储器域与PCI总线域的映射关系当PCI设备使用DMA机制访问存储器域地址空间时,处理器系统同样需要将存储器域的地址空间反向映射到PCI总线地址空间。本章采用图3-1的映射关系,虽然增加了映射复杂度,却便于读者深入理解存储器域到PCI总线域之间的映射关系。......
2023-10-20
MPC8548处理器使用Inbound寄存器组将PCI总线域地址转换为存储器域的地址。表2-3 PCI/X ATMU Inbound寄存器组值得注意的是,Inbound寄存器组除了可以进行PCI总线地址空间到存储器域地址空间的转换之外,还可以转换分属不同PCI总线域的地址空间,以支持PCI总线的Peer-to-Peer数据传送方式。结合Outbound寄存器组,可以发现PCI总线地址空间与存储器地址空间是有一定联系的。......
2023-10-20
pci_map_single函数的主要作用是通过ptr参数,获得与之对应的dma_addr,即进行存储器域虚拟地址到PCI总线域物理地址的转换。值得注意的是存储器域物理地址与PCI总线域物理地址的区别。起初在x86处理器中,存储器域物理地址到PCI总线域物理地址的转换非常简单,是直接相等的关系。在PowerPC处理器中,存在一组Inbound寄存器,通过该组寄存器可以将PCI总线地址转换为PowePC处理器规定的存储器地址,详见第2.2节。......
2023-10-20
TOLUD~4GB这段PCI总线地址空间主要映射和ICH相连的PCI设备地址空间,此外还包括EPBAR指向的空间,以及MCHBAR和DMIBAR指向的空间等。FSB Interrupts存储器空间与MSI中断机制相关,PCIe设备向这段存储器空间进行写操作时,MCH将这个写操作转换为FSB总线的Interrupt Message总线事务。DMI Interface负向译码空间被分为若干段,用来映射ICH使用的PCI总线地址空间。这些PCI设备的BAR空间被映射到这段空间。由以上说明可以发现与MCH连接的PCIe设备的访问延时小于与ICH连接中的PCIe设备。......
2023-10-20
表11-4 PCI桥使用的数据访问顺序1.Posted存储器写通过PCI桥时需要按序完成Posted存储器写通过PCI桥时需要遵循“先进先出”的原则,否则将会引发数据完整性问题。......
2023-10-20
数学面貌的大变化对数学教育提出了新的要求。改革数学教育的浪潮,席卷了世界所有发达国家。数学教育已经成为一门受到广泛重视的学科。数学教育学的对象是数学教学,而不是数学本身。于是,数学教育学要靠数学提供材料。为了数学教育的需要,对数学成果进行再创造,这已不是数学教育学的任务了。这主要是数学工作者的责任,是数学的任务。......
2023-10-17
在PCIe总线中,一个地址转换关系由8B组成,这也是地址转换请求TLP的Length字段至少为0b10的原因。当TA收到地址转换请求TLP后,将查找ATPT,然后通过存储器读完成TLP,将转换关系发送给PCIe设备。采用这种方式时,PCIe设备将首先向TA发送地址转换请求TLP,并从ATPT中获得地址转换关系后,使用TA等于0b10的存储器读写TLP,即使用Translated Address与主存储器进行数据交换,从而有效避免了上文所述的安全隐患。......
2023-10-20
PCI总线是由Intel公司提出的。PCI总线不是由ANSI通过的标准,但由于它是由厂家自发制定执行的标准,具有众多的优点,拥护者,执行者众多,成了事实上的标准。PCI总线共有100个引脚,如果只作为目标设备,至少需要47条,如作为主设备则需要49条。本设计使用位命令字,其定义如下:3.PCI总线基本协议PCI上的基本总线传输机制是突发成组传输。......
2023-11-22
相关推荐