1.
前面说过
配置空间从原来的256B扩展到了4K
2.
由于原先的IO方式,必须是由两步构成
先是写ADDRESS PORT,再是DATA PORT的读或写
在单CPU,单线程的情况下,没有问题
但在多CPU,多线程的情况下,就会产生访问的同步问题
3.
ENHANCED方式,就是将配置空间,映射到MEMORY空间
MEMORY访问,是单步的,不存在IO的两步操作造成的同步问题
4.
使用MEMORY MAP的问题就是
如果所有的FUNCTIONS都需要这样一块空间,则256MB的空间就被占了
256*32*8*4K
每一个FUNCTION的配置空间,在256MB当中,是4KB ALIGN的
地址空间:
63:28: 256MB配置空间地址的首地址,由FIRMWARE分配,之后提供给OS
27:20: BUS
19:15: DEVICE
14: 12: FUNCTION
11:2: OFFSET INSIDE OF 4KB
1:0: BYTE ENABLE SETTING