OpenPower CAPI简析
张冬 Dong.Zhang@
DC Storage Architect
THREADS DON’T CARE TOO MUCH
所有CPU看到单一物理地址空间
CPU CPU
所有Threads看到单一虚拟地址空间
PCIE物理地址空间映射到CPU物理地址空间
CPU物理地址空间也映射到PCIE物理地址空间
CPU CPU
PCIE Device
WHAT YOU CANNOT SEE INSIDE
PCIE Device
CPU3 核0
线程 L1
MC L2 核1
RC L3 L1
L2
128/256 bit L3
CPU2
线程 QPI Ring/Crossbar L3
cc-Agent L3 L2
L1
Filter L2 L1 核2
CPU1
线程 CPU0 核3
线程
数据出了ALU,面对的一张复杂的路由网络,目的地址为内存地址,但是其相对
外部网络的复杂性在于,目标的位置是不固定的,还可能有多份拷贝。 Need
Coherency !硬件透明搞定Cache Coherency。CC不负责多线程并发访问cache
line时的互斥,互斥需要程序显式发出lock,底层硬件会锁住总线访问周期。
HOW PCIE DEVICE INTERACT WITH CPU
Bus Driver将PCIE设备地址空间映射到CPU物理地址空间并将PCIE地址空间写入PCIE设备寄存器。
Host Driver读出PCIE设备寄存器获取该设备对应的PCIE物理地址空间并ioremap()到内核虚拟地
址空间
Host Driver 申请DMA缓存并向PCIE设备映射的虚拟地址空间写入控制字、基地址等,这些信息
便被写入设备寄存器,从而触发PCIE设备根据基地址从主存DMA拿到需要的指令和数据后进行
处理。
PCIE设备对主存DMA时,RC 自动执行Probe操作以保证Cache Coherency
CPU CPU
ccA Probe