飞腾CPU体系结构(十二)

1. CPU物理地址空间

飞腾CPU支持的物理地址宽度为44位,物理地址空间实际上只有16TB。系统主存(芯片外部内存)和IO外设(例如SoC设备、PCIe设备)都在这个物理地址空间上统一编址。

2. 内存属性

飞腾CPU将系统主存和IO外设看作两种不同的内存类型。

  1. 系统主存的内存属性
  2. IO外设的内存属性

2.1 系统主存属性

针对系统主存的内存属性,飞腾CPU主要为了提升访存性能,因此主要

  1. 支持弱顺序性访存模型,
  2. 支持地址不对齐的访问方式,
  3. 支持写操作合并,
  4. 支持乱序访问机制。

在无缓存模式下

飞腾CPU可以忽略高速缓存直接读/写系统主存,NC和WT两种模式都采用无缓存模式来实现。

在有缓存模式下,即WB模式

飞腾CPU读/写地址单元内容时,如果缓存不命中,就从系统主存中将相应的缓存块内容拷贝到高速缓存中;然后再对高速缓存的缓存块进行相应的操作。

2.2 IO外设属性

针对IO外设的内存属性,为了确保外设操作的正确性,飞腾CPU

  1. 支持强顺序性访存模型,
  2. 支持缓存模式
  3. 支持地址不对齐访问方式。

这种强顺序性访存模型,根据强弱程度有nGnRnE、nGnRE 、nGRE和GRE四种类型。

  1. G表示支持访存合并操作;nG表示不支持访存合并操作;
  2. R表示支持乱序操作;nR表示不支持乱序操作;
  3. E表示写操作的确认不一定来自目标设备;nE表示写操作的确认来自目标设备。

常用的外设内存类型是nGnRE,表示不支持访存合并和乱序操作,写指令完成时,设备内存不保证及时得到更新。

2.3 特别提醒

内存属性,描述了飞腾CPU访问物理地址空间设备的操作特点,但是需要通过虚拟页到物理页帧的映射属性来编程使用。