IntelMP(Intel Multiple Processor)相关结构

来源:互联网 发布:mac双系统删除win7 编辑:程序博客网 时间:2024/04/30 13:58
一、MP Floating Pointer Structure
1. MP Floating Pointer 结构
2.表中各项的含义

位置

名称

长度(Bytes)

描述

00H

SIGNATURE

32

固定”_MP_”

04H

PHYSICAL_ADDRESS POINTER

32

MP配置表的地址;MP不存在,字段值全为0

08H

LENGTH

8

Floating pointer结构表长度(16Bytes为单位)

09H

SPEC_REV

8

MP规格版本号;

01H : V1.1;  04h : V1.4

0AH

CHECKSUM

8

整个MP结构的校验和

0BH

MP FEATURE(information byte 1)

8

MP系统配置类型;所有bits均为0时,MP配置表存在;存在不为0的位时,表明存在默认配置;

0CH

MP FEATURE(information byte 2)

8

0-6bits:预留;

7th bitIMCRP,该位被置位,表明存在IMCRPPIC模式被实现;否则,支持Virtual Wire Mode

0DH

MP FEATURE(information byte 3-5)

24

预留,必须为0

  • 关键字"_MP_"用于搜索MP结构表;
  • MP Feature information byte 1:指示了MP系统默认配置类型,若非0,和系统某个默认配置项匹配;
  • MP Feature information Byte 2的第七个bit:IMCR位,为1,表明系统支持PIC模式或者Virtual Wire Mode;P
  • PHYSICAL_ADDRESS POINTER:MP配置表的起始地址;若该配置表不存在,该域全为0;
二、 MP Configuration Table Header(MP配置表头)
1. MP Configuration Table(MP配置表)格式

 
2. MP Configuration Table表头内容详细说明

位置
名称
长度 (Bits)
描述
00H
SIGNATURE
32
固定 ”PCMP”
04H
BASE TABLE LENGTH
16
Base configuration table 的长度
06H
SPEC_REV
8
MP 规格版本号
07H
CHECKSUM
8
Base configuration table 的校验和
08H
OEM ID
64
标识硬件生产厂商的字符串
16H
PRODUCT ID
96
标识 product family 的字符串
28H
OEM TABLE POINTER
32
指向 OEM 配置表的指针
32H
OEM TABLE SIZE
16
OEM 配置表大小
34H
ENTRY COUNT
16
基本配置表中的入口数目
36H
ADDRESS OF LOCAL APIC
32
处理器访问本地 APIC 时的基础地址
40H
EXTENDED TABLE LENGTH
16
扩展配置表(位于内存)的大小
42H
EXTENDED TABLE CHECKSUM
8
扩展配置表的校验和
  

三  MP Configuration Table入口
1. 说明
  • 紧接着MP Configuration Table后面,每个entry的第一个字节决定了其类型;
  • 每个Entry的长度固定;
  • Entry存放顺序:按照类型升序顺序排序;
不同类型Entry对应的Type、长度如下表:

Entry 描述
Entry Type
长度 (Bytes)
描述
Processor
0
20
one entry per processor
Bus
1
8
One entry per bus
I/O APIC
2
8
One entry per I/O APIC
I/O Interrupt Assignment
3
8
One entry per bus interrupt source
Local Interrupt Assignment
4
8
One entry per system interrupt source
  

2. Processor Entries
(1)Processor Entries格式

(2)Processor Entries说明
位置( Bytes 
名称
长度 (Bits)
描述
00H
Entry TYPE
8
Entry 类型,0 表示 processor
01H
LOCAL APIC ID
8
Processor 本地APIC ID 
02H
LOCAL APIC VERSION
8
本地 APIC 的版本寄存器
03H:0
CPU FLAGS:EN
1
0 ,处理器不可用;
03H:1
CPU FLAGS:BP
1
表明处理器是否是 bootstrap 处理器(引导处理器)
04H:0
STEPPING
4
CPU STEPPING   (CPU signature)
04H:4
MODEL
4
CPU MODEL  (CPU signature)
05H:0
FAMILY
4
CPU family (CPU signature)
08H
FEATURE FLAGS
32
CPUID 指令返回内容,具体 flags在下表展示
  
  • 系统每个CPU执行CPU识别过程后,Processor Entries会从BIOS中填充到MP Configuration table中;
  • 若处理器不包含CPUID指令,处理器重置后,BIOS必须用处理器EDX寄存器中内容填充FEATURE FLAGS
CPU Signatures:



Feature Flags:
3. BUS Entries
  • Bus Type String字段:标识了系统总线类型;
  • 每条Bus都被分配唯一 一个bus ID;bus ID被操作系统用来联系中断线和特定bus;
(1) BUS entry格式



(2) Bus Entry格式说明
  
位置( Bytes 
名称
长度 (Bits)
描述
00H
Entry TYPE
8
1, 表明entry 类型为 Bus入口
01H
BUS ID
8
BIOS 顺序分配的编号,标识特定总线
02H
BUS TYPE STRING
48
表明总线类型
  
(3) BUS 类型
4. I/O APIC Entries(中断控制器)
(1)I/OAPIC Entries格式


(2) I/O APIC Entires说明
位置( Bytes 
名称
长度 (Bits)
描述
00H
Entry TYPE
8
2, 表明entry 类型为 I/O APIC入口
01H
I/O APIC ID
8
I/O APIC 编号
02H
I/O APIC VERSION
8
I/O APIC 的版本寄存器
03H:0
I/O APIC FLAGS:EN
1
0,I/O APIC 不可用; 系统至少启用一个 I/O APIC
04H
I/O APIC ADDRESS
32
I/O APIC 的基本地址

5. I/O Interrupt Assignment Entries(I/O中断分配)(Loacal Interrupt Assignment Entries,本地中断分配)
  • 记录了I/O中断源和I/O APIC中断输入之间的映射关系;
  • 每个Entry对应一个I/O APIC中断输入源;
(1) I/O 中断入口格式

(2) 本地中断入口格式

(3) I/O中断入口格式说明

位置( Bytes 
名称
长度 (Bits)
描述
00H
Entry TYPE
8
3(4), 表明类型为I/O 中断入口(本地中断入口)
01H
INTERRUPT TYPE
8
中断类型
02H:0
PO
2
APIC I/O(APIC本地输入信号) 输入信号的极性:
  1. 00 :特定 Bus的型号(如 EISA
  2. 01 Active high
  3. 10 Reserved
  4. 11 Active low
使用 82489DX时,必须使用 00
02H:2
EL
2
APIC I/O (APIC本地)输入型号的触发模式:
  1. 00 :特定 BUS使用
  2. 01 Edge-triggered
  3. 10 Reserved
  4. 11 Level-Triggered
04H
SOURCE BUS ID
8
中断信号来源 bus的编号
05H
SOURCE BUS IRQ
8
标识了中断信号,映射到 source bus signals 
如: 0表示 ISA Bus IRQ0
06H
DESTINATION I/O API (APIC LOCAL) ID
8
标识了中断信号连接的 I/O APIC ID 0ffh时,信号和所有的 I/O APIC(APIC Local)连接
07H
DESTINATION I/O APIC (APIC LOCAL ) INT#
8
标识了中断信号连接的 INTINn引脚
  
(3)系统中断类型
中断类型
描述
说明
0
INT
中断向量, APIC重定向表映射了中断号到中断入口间的映射
1
NMI
不可屏蔽的中断
2
SMI
管理系统的中断( system management interrupt 
3
ExtINT
中断向量;向量由外部 PIC提供;
  

四. 扩展的MP配置表入口(Extended MP Configuration Table Entry)
1. 说明
  • 位于内存,在MP Configuration table前面几个部分之后,每个entry主要有三个元素域:Entry type, entry length和Data;
  • OS发现unknown entry type时,仅仅忽略该entry,继续读取并分析下一个entry;
    Extended MP Configuration Table的Entry type如下表:
  
Entry 描述
Entry type
长度( Bytes 
说明
SYSTEM ADDRESS SPACE MAPPING
128
20
描述系统可见内存或 I/O空间
BUS HIERARCHY DESCRIPTOR
129
8
描述 I/O总线互联方式
COMPATIBILITY BUS ADDRESS SPACE MODIFIER
130
8
为支持 ISA兼容,描述预先定义的内存地址范围和 I/O空间
  

2.系统地址映射入口:SYSTEM Address Space Mapping Entries
  • 定义了特定bus可见的系统地址空间;
  • Base Table中定义的bus可以有任意多个SYSTEM Address Space Mapping Entries;
  • OS可根据该入口,通过给定bus访问连续地址空间;
(1)  入口格式


(2) 格式说明
位置( Bytes 
名称
长度 (Bits)
描述
00H
Entry TYPE
8
128, 表明是System Address Space Mapping Entry
01H
Entry LENGTH
8
Entry 长度
02H
BUS ID
8
可访问该系统地址的 BUS ID
03H
ADDRESS TYPE
8
系统地址类型,用来访问 bus addresses:
① 0 I/O address
② 1 memory address
③ 2 prefetch address
其他所有 numbers预留
04H
ADDRESS BASE
64
开始地址
12H
LENGTH
64
 bus可见的地址大小
  
  • 若内存地址被映射到软件可见的bus,如PCI,必须明确定义其对应的System Address Space Mapping Entry;
  • bus直接连到system bus时,必须提供system address space records和对应的compatibility base address modifiers描述映射到该bus的地址空间;
  • 通常,MP配置表必须提供 系统地址空间到所有I/O总线的system address space mapping,除了两种情况:
      ① 通过PCI-to-PCI-specification-compliant bridges连接的总线:这些bus的system address space mapping不在MP配置表中;操作系统通过直接查询PCI-to-PCI-specification-compliant bridges获取其对应的地址空间映射;
       ② 通过parent I/O 总线连接的buses:subtractive decode bit is set
  • 最简化描述系统资源到PCI buses的映射关系,仅仅需要为PCI BUS 0和其他peer PCI buses设置System Address Space Mapping Entries即可;

3. Bus Hierarchy Descriptor Entry
  • 描述了I/O buses连接的层次结构;
(1)格式

(2)说明
  
位置( Bytes 
名称
长度 (Bits)
描述
00H
Entry TYPE
8
129, 表明是Bus Hierarchy Descriptor Entry
01H
Entry Length
8
Entry 长度(字节为单位)
02H
BUS ID
8
 Bus的编号
03H:0
Bus Information:SD
1
Subtractive Decode Bus; 置位后,该bus 可以访问所有对 parent bus可见的地址空间
04H
Parent BUS
8
 bus parent bus
  

4. Compatibility Bus Address Space Modifier Entry
  • 用于保证ISA兼容:ThCompatibility Bus Address Space Modifier defines a set of predefined address ranges that should either be added or removed from the supported address map ranges for a given bus. This entry type is used in combination with System Address Space Mapping entries to complete the description of memory and I/O ranges that are visible on a bus that incorporates support for ISA device compatibility
(1)格式

(2)说明
位置( Bytes 
名称
长度 (Bits)
描述
00H
Entry TYPE
8
130, 表明是Compatibility Bus Address Space Modifier Entry
01H
Entry Length
8
Entry 大小(字节为单位)
02H
BUS ID
8
被更新映射到的地址空间大小的 BUS编号
03H:0
ADDRESS Modifier:PR
1
1 Range List 表示的地址范围将从 BUS ID映射到的地址空间中除去;
0 Range List 表示的地址范围被加到 BUS ID的地址空间中;
04H
Predefined Range List
32
用于更新 BUS地址空间的地址列表
  
Range List可能的值:

五、 MP默认配置(简化BIOS设计)

说明:操作包含了默认的MP Configuration Table;MP Feature Information Byte 1定义了默认的系统配置类型;系统使用默认系统配置时,MP floating Pointer结构的物理地址指针置为0;
1. 使用默认MP配置,系统必须符合的条件
  • 支持双处理器;
  • 两个处理器都可以执行Intel架构指令集;
  • 本地APICs内存基址为: 0FEE0_0000h
  • 本地APIC的ID由硬件从0开始分配;
  • I/O APIC内存基址为: 0FEC0_0000h
  • Either PIC Mode or Virtual Wire Mode is implemented as the power-on default interrupt mode;
2. 系统默认配置表
 
0 0
原创粉丝点击