systemcfg.h 文件
用途
定义 _system_configuration 结构。
描述
systemcfg.h 文件定义 _system_configuration 结构。 这是标识系统特征的全局结构。 system_configuration 结构在只读系统内存中提供。 _system_configuration 结构中的属性具有以下值:
| 项 | 描述 |
|---|---|
| 体系结构 | 标识处理器体系结构。 版本 4 的有效值为:
|
| 实现 | 标识处理器的特定版本。 为每个实现分配一个唯一位,以允许对实现集进行高效检查。 以下是有效值的示例 (头文件包含更多值):
还定义了两个特殊值: POWER_RS_ALL 和 POWER_PC_ALL。 这些标签定义为其体系结构的所有成员的位 OR。 |
| version | 标识中央处理单元 (CPU) 版本号。 以下是有效值的示例 (头文件包含更多值):
|
| 宽度 | 包含处理器数据字大小。 有效值为 32 或 64。 此值是最大数据字大小,不应与当前执行方式混淆。 |
| ncpus | 标识机器上活动的 CPU 数。 单处理器 (UP) 机器由 1 标识。 大于 1 的值指示多处理器 (MP) 机器。 |
| 缓存属性 | 指定高速缓存属性。 位 31 确定是否存在高速缓存。 如果此位为 1 ,那么表示存在高速缓存。 如果位 31 为 0 ,那么不存在任何高速缓存,并且所有其他高速缓存特征都是 0。 位 30 指示高速缓存的类型。 如果位 30 为 1 ,那么将组合高速缓存。 否则,如果位 30 是 0 ,那么指令和数据高速缓存是分开的。 |
| icache_size | 包含 L1 指令-高速缓存大小 (以字节计)。 对于组合高速缓存,此值是总高速缓存大小。 |
| 缓存大小 | 包含 L1 数据高速缓存大小 (以字节为单位)。 对于组合高速缓存,这是总高速缓存大小。 |
| icache_asc | 包含 L1 指令-高速缓存关联性。 对于组合高速缓存,这是组合高速缓存的关联性。 |
| dcache_asc | 包含 L1 数据高速缓存关联性。 对于组合高速缓存,这是组合高速缓存的关联性。 |
| icache_line | 包含 L1 指令高速缓存的行大小 (以字节计)。 |
| dcache_line | 包含 L1 数据高速缓存的行大小 (以字节计)。 |
| L2_cache_size | 包含 L2 高速缓存的大小 (以字节计)。 值 0 指示不存在 L2 高速缓存。 |
| L2_cache_asc | 标识 L2 高速缓存的关联性。 |
| 列梳 | 标识事务后备缓冲区 (TLB) 属性的类型。 如果存在 TLB ,那么位 31 为 1。 否则,如果位 31 小于 0 ,那么 TLB 不存在,并且所有其他 TLB 特征都是 0。 如果组合了 TLB ,那么位 30 为 1。 如果 TLB 对于指令和数据高速缓存是独立的,那么位 30 是 0。 |
| itlb_size | 指定指令 TLB 中的条目数。 对于组合 TLB ,这是组合 TLB 的大小。 |
| dtlb_size | 指定数据 TLB 中的条目数。 对于组合 TLB ,这是组合 TLB 的大小。 |
| itlb_asc | 包含指令 TLB 的关联性。 如果系统完全关联,那么此属性的值等于 itlb_size 属性。 |
| dtlb_asc | 包含指令 TLB 的关联性。 如果系统完全关联,那么此属性的值等于 dtlb_size 属性的值。 |
| 预留区大小 | 包含 基于 POWER 处理器的 预留颗粒大小。 此字段是 POWER 系列 机器上的 0。 |
| 私有 (priv_ick_cnt) | 包含锁定服务在以管理程序方式阻止 AP 进程/线程之前尝试锁定自旋锁的次数。 这是 UP 机器上的 0。 此参数由系统锁定服务使用。 |
| 概率 (prob_lck_cnt) | 包含锁定服务在阻塞处于问题状态的进程或线程之前尝试锁定自旋锁的次数。 这是 UP 机器上的 0。 此参数由系统锁定服务使用。 |
| virt_alias | 指示虚拟内存别名判别。 如果 1 ,那么硬件可用于虚拟内存别名判别,此功能由系统使用。 虚拟内存别名判别是将一个实际地址映射到多个虚拟地址。 |
| cach_cong | 包含可生成高速缓存同义词的页数索引位。 对于没有高速缓存同义词的机器,此字段为 0。 |