当前位置:首页 > 工业技术
计算机系统核心开发  高级配置与电源管理最佳实践
计算机系统核心开发  高级配置与电源管理最佳实践

计算机系统核心开发 高级配置与电源管理最佳实践PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:子齐编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:7302424705
  • 页数:471 页
图书介绍:本书分二十三大章节,分别对硬件规范、软件编程模型、电源管理、散热管理、电池管理、设备配置等进行了详细介绍。为了使读者更好地理解这些原理,在单独一大章中使用ASL代码实现了简单机器模型中的相关功能。另外,为了帮助读者更好地了解在操作系统中如何实现这些原理,在书中最后一大章进行了详细介绍。
《计算机系统核心开发 高级配置与电源管理最佳实践》目录

第1章 ACPI简述 1

1.1首要目标 1

1.2电源管理 2

1.3遗留支持 3

1.4 OEM实现策略 3

1.5电源和睡眠按钮 3

1.6 ACPI规范与结构 4

1.7 OS、平台兼容性 5

1.7.1平台实现ACPI定义的接口 5

1.7.2 OSPM实现 5

1.7.3 OS要求 6

第2章 ACPI基本术语及概念 7

2.1通用ACPI术语 7

2.2各种状态定义 12

2.2.1全局系统状态定义 12

2.2.2设备电源状态定义 13

2.2.3睡眠状态定义 14

2.2.4处理器电源状态定义 15

2.2.5设备和处理器性能状态定义 15

2.3电源状态 16

2.3.1平台电源管理特征 17

2.4电源管理标准 18

2.5跨设备依赖 18

2.6硬件编程模型 18

2.6.1固定硬件编程模型 19

2.6.2通用硬件编程模型 19

2.7 ACPI硬件特征 20

2.8 ACPI寄存器模型 21

2.9系统描述表头部 25

第3章 ASL编程语言 28

3.1 ASL语法 28

3.1.1 ASL语法表示法 28

3.2 ASL概念 29

3.2.1 ASL名字 29

3.2.2 ASL字面常量 29

3.2.3 ASL资源模板 30

3.2.4 ASL宏 31

3.2.5 ASL数据类型 31

3.2.6 ACPI名字空间 39

3.2.7定义块 41

3.2.8控制方法执行 43

3.2.9资源描述符类型 46

3.3常用ASL操作符 62

3.3.1 ACPI表管理 62

3.3.2 ASL编译控制 64

3.3.3常量 64

3.3.4混杂命名对象创建 65

3.3.5操作区域和字段 71

3.3.6字节 数组字段 77

3.3.7同步 78

3.3.8对象参考 79

3.3.9整数运算 79

3.3.10逻辑操作符 82

3.3.11方法执行控制 83

3.3.12数据类型转换和处理 87

3.3.13资源描述符宏 93

3.3.14控制方法对象 108

3.4预定义的对象 109

3.4.1 _GL (Global Lock Mutex) 109

3.4.2 _OSI (Operating System Interface) 109

3.4.3 _OS (OS Name Object) 112

3.4.4_REV (Revision Data Object) 112

3.5转化ASL到AML 112

第4章 系统描述表架构 115

4.1概要 115

4.2 ACPI系统描述表 117

4.2.1保留位和字段 117

4.2.2兼容性 118

4.2.3地址格式 118

4.2.4 UUID (Universal Uniform Identifiers) 119

4.2.5 RSDP 119

4.2.6 RSDT 120

4.2.7 XSDT 121

4.2.8 FADT 121

4.2.9 FACS 140

4.2.10 DSDT 143

4.2.11 SSDT 143

4.2.12 MADT 144

4.2.13 SBST 151

4.2.14 ECDT 151

4.2.15 SRAT 153

4.2.16 SLIT 155

4.3其他ACPI表 156

4.3.1 MCFG 156

4.3.2 HPET 157

4.3.3 DMAR 158

4.3.4微软软件授权表 158

4.3.5 SPMI 159

4.3.6 SPCR 160

第5章 ACPI事件编程模型 165

5.1 ACPI事件编程模型组件 165

5.2 ACPI事件类型 166

5.3固定事件处理 166

5.4通用目的事件处理 167

5.4.1针对GPE处理的_Exx、_Lxx和_Qxx方法 170

5.4.2 GPE唤醒事件 171

5.5设备对象通知 173

第6章 设备及系统配置 176

6.1设备标识对象 176

6.1.1_ADR (Address) 177

6.1.2_CID (Compatible ID) 178

6.1.3_CLS (Class Code) 179

6.1.4_DDN (DOS Device Name) 179

6.1.5 _HID (Hardware ID) 179

6.1.6 _HRV (Hardware Revision) 180

6.1.7 _MLS (Multiple Language String) 180

6.1.8 _SUB 181

6.1.9 _STR (String) 181

6.1.10 _UID (Unique ID) 182

6.1.11 _SUN (Slot User Number) 182

6.2设备配置对象 183

6.2.1 _CDM (Clock Domain) 184

6.2.2 _CRS (Current Resource Settings) 184

6.2.3 _DIS (Disable) 185

6.2.4 _DMA(Direct Memory Access) 185

6.2.5 _DSD (Device Specific Data) 187

6.2.6 _FIX (Fixed Register Resource Provider) 187

6.2.7 _GSB (Global System Interrupt Base) 189

6.2.8 _HPP (Hot Plug Parameters) 190

6.2.9 _HPX (Hot Plug Parameters Extensions) 192

6.2.10 _MAT (Multiple APIC Table Entry) 195

6.2.11 _OSC (Operating System Capabilities) 196

6.2.12 _PRS (Possible Resource Setting) 202

6.2.13 _PRT (PCI Routing Table) 202

6.2.14 _PXM (Proximity) 205

6.2.15 _SLI (System Locality Information) 205

6.2.16 _CCA (Cache Coherency Attribute) 207

6.2.17 _SRS (Set Resource Settings) 208

6.3设备插入、移走和状态对象 209

6.3.1 _EDL(Eject Device List) 210

6.3.2 _EJD(Eject Dependent Device) 211

6.3.3 _EJx(Eject) 212

6.3.4 _LCK(Lock) 212

6.3.5 _OST(OSPM Status Indication) 212

6.3.6 _RMV(Remove) 216

6.3.7 _STA (Status) 216

6.4其他对象和控制方法 217

6.4.1 _INI (Init) 218

6.4.2 _REG (Region) 218

6.4.3 _BBN (Base Bus Number) 220

6.4.4 _SEG (Segment) 220

6.4.5 _GLK (Global Lock) 222

6.5系统配置对象 222

6.6 ISA设备配置 222

第7章 电源和性能管理 228

7.1声明电源资源对象 228

7.2为电源资源定义的子对象 228

7.2.1 _OFF 229

7.2.2 _ON 229

7.2.3 _STA (Status) 229

7.3设备电源管理对象 229

7.3.1 _DSW (Device Sleep Wake) 231

7.3.2 _PSx (Power State x) 231

7.3.3 _PSC (Power State Current) 231

7.3.4 _PR0 (Power Resource for D0) 232

7.3.5 _PR1 (Power Resource for D1) 232

7.3.6 _PR2 (Power Resource for D2) 233

7.3.7 _PR3 (Power Resource for D3hot) 233

7.3.8 _PRW (Power Resource for Wake) 233

7.3.9 _PSW (Power State Wake) 234

7.3.10 _IRC (In Rush Current) 235

7.3.11_S1D (S1 Device State) 235

7.3.12_S2D (S2 Device State) 235

7.3.13_S3D (S3 Device State) 236

7.3.14 _S4D (S4 Device State) 236

7.3.15 _S0W (S0 Device Wake State) 237

7.3.16 _S1W (S1 Device Wake State) 237

7.3.17 _S2W (S2 Device Wake State) 237

7.3.18 _S3W (S3 Device Wake State) 238

7.3.19 _S4W (S4 Device Wake State) 238

7.4 OEM提供的系统级别控制方法 238

7.4.1 _PTS 239

7.4.2系统_Sx状态 239

7.4.3 _SWS (System Wake Source) 242

7.4.4 _TTS (Transition To State) 242

7.4.5 _WAK (System Wake) 243

7.5 OSPM使用_PTS、_TTS和_WAK 243

7.6控制设备电源 244

7.6.1获取设备电源能力 244

7.6.2设置设备电源状态 244

7.6.3获取设备电源状态 245

7.6.4唤醒计算机 245

7.6.5调制解调器设备电源管理示例 245

第8章 ACPI嵌入式控制器接口规范 250

8.1嵌入式控制器接口描述 250

8.2嵌入式控制器寄存器描述 251

8.2.1嵌入式控制器状态寄存器 251

8.2.2嵌入式控制器命令寄存器 252

8.2.3嵌入式控制器数据寄存器 252

8.3嵌入式控制器命令集 252

8.3.1读嵌入式控制器 252

8.3.2写嵌入式控制器 252

8.3.3突发使能嵌入式控制器 253

8.3.4突发屏蔽嵌入式控制器 253

8.3.5查询嵌入式控制器 253

8.4中断模型 254

8.4.1事件中断模型 254

8.4.2命令中断模型 254

8.5嵌入式控制器接口算法 255

8.6嵌入式控制器描述信息 255

8.7通过嵌入式控制器实现的SMBus主控制器接口 255

8.7.1寄存器描述 256

8.7.2协议描述 259

8.8 SMBus设备 261

8.8.1 SMBus设备访问限制 262

8.8.2 SMBus设备命令访问限制 262

8.9在ACPI名字空间中定义一个嵌入式控制器设备 262

8.10在ACPI名字空间中定义一个EC SMBus主控制器 266

第9章 ACPI系统管理总线接口规范 268

9.1 SMBus概要 268

9.1.1 SMBus从地址 268

9.1.2 SMBus协议 269

9.1.3 SMBus状态码 269

9.1.4 SMBus命令值 269

9.2 ASL代码访问SMBus 270

9.2.1声明SMBus主控制器对象 270

9.2.2声明SMBus设备 271

9.2.3声明SMBus操作区域 271

9.2.4声明SMBus字段 272

9.2.5声明和使用SMBus数据缓冲区 274

9.3使用SMBus协议 275

9.3.1快速读/写(SMBQuick) 275

9.3.2发送/接收字节 (SMBSendReceive ) 276

9.3.3读/写字节 (SMBByte) 277

9.3.4读/写双字节 (SMBWord) 278

9.3.5读/写块(SMBBlock) 278

9.3.6双字节 过程调用(SMBProcessCall ) 279

9.3.7块过程调用(SMBBlockProcessCall ) 280

第10章 处理器配置和控制 282

10.1处理器电源状态 282

10.1.1处理器电源状态C0 283

10.1.2处理器电源状态C1 285

10.1.3处理器电源状态C2 285

10.1.4处理器电源状态C3 285

10.1.5额外处理器电源状态 286

10.2刷新缓存 287

10.3声明处理器 287

10.3.1_PDC (Processor Driver Capabilities) 288

10.3.2处理器电源状态控制 289

10.3.3处理器风门控制 292

10.3.4处理器性能控制 297

10.4处理器聚合设备 302

10.4.1逻辑处理器空载 302

10.4.2_PUR (Processor Utilization Request) 302

第11章 ACPI定义的设备和设备特定对象 304

11.1_SI系统指示标记 304

11.1.1 _SST (System Status) 305

11.1.2 _MSG (Message) 305

11.1.3 _BLT (Battery Level Threshold) 305

11.1.4 ASL代码示例 305

11.2电池设备 306

11.3控制型外盖设备 306

11.3.1 _LID 307

11.3.2实现示例 307

11.4控制型电源和睡眠按钮设备 310

11.5嵌入式控制器设备 312

11.6通用容器设备 313

11.7 ATA控制器设备 313

11.7.1 _GTF (Get Task File) 313

11.7.2 IDE控制器设备 314

11.7.3 SATA控制器设备 317

11.8 GPE块设备 318

11.9模块设备 319

11.10内存设备 322

11.10.1地址解码 323

11.10.2内存设备的OSC定义 323

11.11 _UPC (USB Port Capabilities) 324

11.12 USB 2.0主控制器和_UPC、 _PLD 326

11.13设备对象名冲突 327

11.13.1 _DSM (Device Specific Method) 327

11.14 PC/AT RTC/CMOS设备 327

11.14.1 PC/AT兼容RTC/CMOS设备(PNP0B00) 327

11.14.2 Intel PIIX4兼容RTC/CMOS设备(PNP0B01) 328

11.14.3 Dallas Semiconductor兼容RTC/CMOS设备(PNP0B02) 329

11.15 I/O APIC设备 329

第12章 电源和电表设备 330

12.1电池管理 330

12.1.1电池通讯 331

12.1.2电池容量 331

12.1.3电池容量规格 331

12.1.4低电量容量级别 332

12.1.5电池校准 333

12.2智能电池子系统 334

12.2.1 ACPI智能电池状态改变通知要求 335

12.2.2智能电池对象 336

12.2.3 _SBS(Smart Battery Subsystem) 336

12.3控制型电池 338

12.3.1电池事件 339

12.3.2电池控制方法 339

12.3.3 ASL代码示例 347

12.4 AC适配器和电源对象 348

12.4.1 _PSR(Power Source) 349

12.4.2 _PCL(Power Consume List) 349

12.4.3 _PIF(Power Source Information) 350

12.4.4 _PRL(Power Source Redundancy List) 350

12.5电表 350

12.5.1 _PMC(Power Meter Capabilities) 351

12.5.2 _PTP(Power Trip Points) 352

12.5.3 _PMM(Power Meter Measurement) 352

12.5.4 _PAI(Power Averaging Interval) 352

12.5.5 _GAI(Get Averaging Interval) 353

12.5.6 _SHL(Set Hardware Limit) 353

12.5.7 _GHL(Get Hardware Limit) 353

12.5.8 _PMD(Power Metered Devices) 353

12.6电源和电表名字空间示例 353

第13章 散热管理 355

13.1散热控制 355

13.1.1主动和被动冷却模型 356

13.1.2性能和节 省电量 356

13.1.3噪声 357

13.1.4多个散热区 357

13.1.5主动、被动和临界策略 357

13.1.6动态地改变冷却温度触发点 358

13.1.7识别温度改变 359

13.1.8主动冷却 360

13.1.9被动冷却 361

13.1.10临界关机 362

13.2冷却首选项 362

13.2.1评估散热设备列表 364

13.2.2评估设备散热关系信息 364

13.2.3风扇设备通知 364

13.3风扇设备 364

13.3.1 _FIF(Fan Information) 365

13.3.2 _FPS(Fan Performance States) 366

13.3.3 _FSL(Fan Set Level) 366

13.3.4 _FST(Fan Status) 366

13.4散热对象 367

13.4.1 _ACx(Active Cooling) 367

13.4.2 _ALx(Active List) 368

13.4.3 _ART(Active Cooling Relationship Table) 368

13.4.4 _CRT(Critical Temperature) 370

13.4.5 _DTI(Device Temperature Indication) 370

13.4.6 _HOT(Hot Temperature) 370

13.4.7 _NTT(Notification Temperature Threshold) 370

13.4.8 _PSL(Passive List) 370

13.4.9 _PSV(Passive) 371

13.4.10 _RTV(Relative Temperature Values) 371

13.4.11 _SCP(Set Cooling Policy) 371

13.4.12 _TC1(Thermal Constant 1) 374

13.4.13 _TC2(Thermal Constant 2) 374

13.4.14 _TMP(Temperature) 374

13.4.15 _TPT(Trip Point Temperature) 375

13.4.16 _TRT(Thermal Relationship Table) 375

13.4.17 _TSP(Thermal Sampling Period) 375

13.4.18 _TST(Temperature Sensor Threshold) 375

13.4.19 _TZD(Thermal Zone Devices) 376

13.4.20 _TZM(Thermal Zone Member) 376

13.4.21 _TZP(Thermal Zone Polling) 376

13.5 OS设备驱动散热接口 376

13.6散热区接口要求 377

13.7散热区示例 377

13.7.1基础散热区 378

13.7.2多速率风扇 379

13.7.3具有多个设备的散热区 381

第14章 系统地址映射接口 387

14.1 INT 15h, E820h——查询系统地址映射 387

14.2 E820假设和限制 389

14.3 UEFI启动服务功能 389

14.4 UEFI假设和限制 390

14.5地址映射示例 390

14.6操作系统调用示例 391

第15章 唤醒和睡眠 393

15.1睡眠状态 393

15.1.1 S1睡眠状态 395

15.1.2 S2睡眠状态 396

15.1.3 S3睡眠状态 396

15.1.4 S4睡眠状态 397

15.1.5 S5软关机状态 398

15.1.6从工作状态转换到睡眠状态 398

15.1.7从工作状态转换到软关机状态 399

15.2刷新缓存 399

15.3初始化 400

15.3.1将系统置于ACPI模式 401

15.3.2 BIOS对内存进行初始化 402

15.3.3加载OS 404

15.3.4退出ACPI模式 405

第16章 NUMA架构平台 406

16.1 NUMA节 点 406

16.2系统位置 407

16.2.1 SRAT定义 407

16.2.2系统资源关联更新 407

16.3系统位置距离信息 407

16.3.1在线插拔 408

16.3.2对已存在位置的影响 408

第17章 ACPI平台错误接口(APEI) 409

17.1硬件错误和错误源 409

17.2 OSPM和系统固件之间的关系 410

17.3错误源发现 410

17.3.1启动错误源 410

17.3.2 ACPI错误源 411

17.4固件首先处理错误 420

17.5错误序列化 421

17.5.1序列化动作表 421

17.5.2操作 425

17.6错误注入 429

17.6.1 EINJ 429

17.6.2注入指令项 430

17.6.3注入指令 431

17.6.4触发动作表 433

17.6.5错误注入操作 433

第18章 ACPI功能实现 436

18.1架构概要 436

18.1.1 ACPICA系统概要 436

18.1.2 ACPICA子系统架构 438

18.1.3 OS服务层架构 440

18.2设计细节 441

18.2.1 ACPI名字空间基本原理 441

18.2.2执行模型 443

18.2.3原理和理论 449

18.3实现细节 450

18.3.1主机OS初始化顺序要求 450

18.3.2 ACPICA初始化顺序要求 451

18.3.3多线程支持 456

18.3.4通用目的事件支持 461

18.3.5混杂ACPICA行为 463

18.4 ACPICA部署向导 464

18.4.1使用ACPICA子系统接口 464

18.4.2实现OS服务层 469

相关图书
作者其它书籍
返回顶部