商品详情
书名:SoC底层软件低功耗系统设计与实现
定价:109.0
ISBN:9787111728146
作者:李晓杰 著
版次:1
内容提要:
这是一本系统剖析SoC底层软件低功耗系统设计、实现与定制化的著作,同时它还全面讲解了低功耗的知识点以及各种低功耗问题的定位与优化。
作者在华为海思等半导体企业深耕低功耗领域10余年,本书内容基于作者的实际商用经验撰写而成,读完本书后,我们至少能掌握以下知识:
(1)Linux内核中所有与低功耗相关的17个模块的设计与实现原理,以及这些模块的自定义实现和二次开发,这部分内容能让读者对低功耗相关的问题知其然并知其所以然。
(2)Linux内核中关于低功耗的设计思想,既同时适用于宏内核、微内核和精简内核,又可以给其他的操作系统提供思路和启发。
(3)低功耗的20余个扩展知识点,让读者对低功耗有更全面、更深入地了解。
(4)各种低功耗问题的定位方法和通用优化手段。
目录:
Contents 目 录
前言
第1章 低功耗系统设计思路1
1.1 低功耗系统设计面临的挑战1
1.2 降低功耗的3种主要设计思路2
1.3 低功耗系统的架构设计3
1.4 术语介绍6
1.5 本章小结8
第2章 wakeup source 框架设计与实现9
2.1 Linux wakeup source的设计与实现9
2.1.1 架构设计概览9
2.1.2 模块功能详解9
2.1.3 配置信息解析10
2.1.4 主要数据结构10
2.1.5 主要函数分析12
2.1.6 函数工作时序17
2.2 实现自己的wakeup source 框架18
2.2.1 动手前的思考18
2.2.2 设计与实现19
2.3 本章小结22
第3章 autosleep 框架设计与实现23
3.1 Linux autosleep的设计与实现23
3.1.1 架构设计概览23
3.1.2 模块功能详解23
3.1.3 配置信息解析24
3.1.4 主要函数实现24
3.1.5 函数工作时序27
3.2 实现自己的autosleep 框架28
3.2.1 动手前的思考28
3.2.2 设计与实现29
3.3 本章小结30
第4章 PM Core框架设计与实现31
4.1 Linux PM Core的设计与实现31
4.1.1 架构设计概览31
4.1.2 模块功能详解31
4.1.3 配置信息解析32
4.1.4 主要数据结构32
4.1.5 主要函数实现35
4.1.6 软件处理流程41
4.2 实现自己的PM Core 框架43
4.2.1 动手前的思考43
4.2.2 运行时序设计44
4.2.3 设计与实现44
4.3 本章小结47
第5章 notifier 框架设计与实现48
5.1 Linux notifier的设计与实现48
5.1.1 架构设计概览48
5.1.2 模块功能详解48
5.1.3 配置信息解析49
5.1.4 主要数据结构49
5.1.5 主要接口介绍50
5.1.6 内核使用场景54
5.2 实现自己的notifier 框架57
5.2.1 动手前的思考57
5.2.2 设计与实现57
5.3 本章小结59
第6章 DPM 框架设计与实现60
6.1 Linux DPM的设计与实现60
6.1.1 架构设计概览60
6.1.2 模块功能详解60
6.1.3 配置信息解析61
6.1.4 主要数据结构61
6.1.5 主要函数介绍63
6.1.6 函数工作时序67
6.2 实现自己的DPM框架75
6.2.1 动手前的思考75
6.2.2 设计与实现75
6.3 补充说明79
6.4 本章小结81
第7章 syscore 框架设计与实现82
7.1 Linux syscore的设计与实现82
7.1.1 架构设计概览82
7.1.2 模块功能详解82
7.1.3 配置信息解析82
7.1.4 主要结构体介绍83
7.1.5 主要函数介绍84
7.2 实现自己的syscore 框架87
7.2.1 动手前的思考88
7.2.2 设计与实现88
7.3 本章小结90
第8章 RPM框架设计与实现91
8.1 Linux RPM的设计与实现91
8.1.1 架构设计概览91
8.1.2 模块功能详解91
8.1.3 RPM与system sleep的关系94
8.1.4 No-Callback设备解析95
8.1.5 autosuspend与automatically-
delayed suspends分析95
8.1.6 配置信息解析96
8.1.7 主要结构体介绍96
8.1.8 主要函数介绍99
8.1.9 RPM与PM Core工作时间段
对比108
8.1.10 RPM的函数工作时序108
8.2 实现自己的RPM 框架112
8.2.1 动手前的思考112
8.2.2 设计与实现112
8.2.3 实现进阶第一步114
8.2.4 实现进阶第二步116
8.2.5 实现进阶第三步118
8.3 本章小结120
第9章 thermal框架设计与实现121
9.1 Linux thermal的设计与实现121
9.1.1 架构设计概览121
9.1.2 模块功能详解121
9.1.3 基本术语概念123
9.1.4 配置信息解析123
9.1.5 thermal_core解析123
9.1.6 关于critical事件和非critical
事件的处理流程133
9.1.7 governor实现介绍134
9.2 实现自己的thermal框架135
9.2.1 动手前的思考136
9.2.2 设计与实现136
9.3 本章小结143
第10章 CPU Hotplug框架设计
与实现144
10.1 Linux CPU Hotplug的设计与实现144
10.1.1 架构设计概览144
10.1.2 模块功能详解144
10.1.3 配置信息解析145
10.1.4 主要数据结构介绍146
10.1.5 如何使用CPU Hotplug148
10.1.6 CPU Hotplug?状态机149
10.1.7 CPU online/offline运行流程
示意150
10.1.8 state申请及使用152
10.1.9 CPU Hotplug工作时序153
10.2 实现自己的Hotplug 框架157
10.2.1 动手前的思考157
10.2.2 设计与实现157
10.3 本章小结160
第11章 CPUIdle 框架设计与实现161
11.1 Linux CPUIdle的设计与实现161
11.1.1 架构设计概览161
11.1.2 背景介绍161
11.1.3 配置信息解析162
11.1.4 设计与实现163
11.2 实现自己的CPUIdle 框架170
11.2.1 动手前的思考170
11.2.2 设计与实现171
11.3 本章小结174
第12章 CLK框架设计与实现175
12.1 Linux CLK的设计与实现175
12.1.1 架构设计概览175
12.1.2 背景介绍175
12.1.3 配置信息解析176
12.1.4 主要数据类型177
12.1.5 主要函数实现180
12.2 实现自己的CLK框架187
12.2.1 动手前的思考188
12.2.2 设计与实现188
12.3 本章小结192
第13章 DVFS框架设计与实现193
13.1 Linux cpufreq的设计与实现193
13.1.1 架构设计概览193
13.1.2 模块功能详解193
13.1.3 配置信息解析194
13.1.4 主要数据类型195
13.1.5 主要函数实现199
13.2 实现自己的DVFS框架205
13.2.1 动手前的思考205
13.2.2 设计与实现205
13.3 本章小结208
第14章 regulator框架设计与实现209
14.1 Linux regulator的设计与实现209
14.1.1 架构设计概览209
14.1.2 背景介绍209
14.1.3 配置信息解析210
14.1.4 主要模块功能211
14.1.5 主要函数实现215
14.2 实现自己的regulator框架228
14.2.1 动手前的思考228
14.2.2 设计与实现228
14.3 本章小结231
第15章 AVS框架设计与实现232
15.1 背景及原理233
15.2 AVS设计与实现234
15.2.1 AVS实现234
15.2.2 AVS接口236
15.2.3 AVS使用237
15.3 本章小结238
第16章 PSCI框架设计与实现239
16.1 背景介绍240
16.1.1 空闲管理240
16.1.2 热插拔240
16.2 假设和建议241
16.2.1 PSCI目的241
16.2.2 异常级别、ARMv7权限级别
和最高权限241
16.2.3 基于ARM系统的软件栈242
16.2.4 安全世界软件和电源管理243
16.3 PSCI使用场景及要求244
16.3.1 空闲管理244
16.3.2 电源状态系统拓扑与协作244
16.3.3 CPU热插拔和从核启动246
16.3.4 系统关闭、系统复位和
系统挂起247
16.4 函数功能解析248
16.4.1 PSCI中的参数和返回值248
16.4.2 PSCI_VERSION函数249
16.4.3 CPU_SUSPEND函数249
16.4.4 CPU_OFF函数253
16.4.5 CPU_ON函数255
16.4.6 AFFINITY_INFO函数256
16.4.7 MIGRATE函数258
16.4.8 MIGRATE_INFO_TYPE/MIG-
RATE_INFO_UP_CPU函数259
16.4.9 SYSTEM_OFF函数260
16.4.10 SYSTEM_RESET函数261
16.4.11 PSCI_FEATURES函数261
16.4.12 SYSTEM_SUSPEND函数262
16.5 PSCI调用流程263
16.5.1 CPU_SUSPEND、SYSTEM_
SUSPEND调用流程263
16.5.2 CPU_OFF调用流程264
16.5.3 CPU_ON调用流程265
16.6 核状态的操作系统和实现视图266
16.7 推荐的StateID编码267
16.8 PSCI规范实现选项268
16.9 内核PSCI关系梳理268
16.10 本章小结269
第17章 ATF271
17.1 背景介绍272
17.2 配置信息272
17.3 工作时序272
17.4 本章小结274
第18章 扩展知识点275
18.1 链表275
18.2 信号量278
18.3 自旋锁281
18.4 GIC283
18.5 SMP CALL285
18.6 锁中断287
18.7 看门狗287
18.8 冻结进程288
18.9 定时器290
18.10 volatile292
18.11 WFE、SEV、WFI293
18.12 write through、write back、write
allocate、read allocate294
18.13 mutex、semaphore、spinlock
的区别294
18.14 本章小结295
第19章 低功耗问题定位及
优化思路296
19.1 多子系统配置296
19.2 并行处理298
19.3 增加打点信息299
19.4 增加suspend流程状态检查
返回点300
19.5 设置提前唤醒量302
19.6 减少(合并)唤醒中断次数302
19.7 慎用阻塞型接口305
19.8 踩内存305
19.9 压力测试307
19.9.1 思路梳理307
19.9.2 压力测试框架实现308
19.10 其他优化手段310
19.11 本章小结310
- 机械工业出版社旗舰店 (微信公众号认证)
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...