科技
类型
可以朗读
语音朗读
149千字
字数
2023-05-01
发行日期
展开全部
主编推荐语
一本系统剖析SoC底层软件低功耗系统设计、实现与定制化的著作。
内容简介
本书全面讲解了低功耗的知识点以及各种低功耗问题的定位与优化。
作者在华为海思等半导体企业深耕低功耗领域10余年,本书内容基于作者的实际商用经验撰写而成,读完本书后,我们至少能掌握以下知识:
(1)Linux内核中所有与低功耗相关的17个模块的设计与实现原理,以及这些模块的自定义实现和二次开发,这部分内容能让读者对低功耗相关的问题知其然并知其所以然。
(2)Linux内核中关于低功耗的设计思想,既同时适用于宏内核、微内核和精简内核,又可以给其他的操作系统提供思路和启发。
(3)低功耗的20余个扩展知识点,让读者对低功耗有更全面、更深入地了解。
(4)各种低功耗问题的定位方法和通用优化手段。
目录
- 版权信息
- 前言
- 第1章 低功耗系统设计思路
- 1.1 低功耗系统设计面临的挑战
- 1.2 降低功耗的3种主要设计思路
- 1.3 低功耗系统的架构设计
- 1.4 术语介绍
- 1.5 本章小结
- 第2章 wakeup source框架设计与实现
- 2.1 Linux wakeup source的设计与实现
- 2.1.1 架构设计概览
- 2.1.2 模块功能详解
- 2.1.3 配置信息解析
- 2.1.4 主要数据结构
- 2.1.5 主要函数分析
- 2.1.6 函数工作时序
- 2.2 实现自己的wakeup source框架
- 2.2.1 动手前的思考
- 2.2.2 设计与实现
- 2.3 本章小结
- 第3章 autosleep框架设计与实现
- 3.1 Linux autosleep的设计与实现
- 3.1.1 架构设计概览
- 3.1.2 模块功能详解
- 3.1.3 配置信息解析
- 3.1.4 主要函数实现
- 3.1.5 函数工作时序
- 3.2 实现自己的autosleep框架
- 3.2.1 动手前的思考
- 3.2.2 设计与实现
- 3.3 本章小结
- 第4章 PM Core框架设计与实现
- 4.1 Linux PM Core的设计与实现
- 4.1.1 架构设计概览
- 4.1.2 模块功能详解
- 4.1.3 配置信息解析
- 4.1.4 主要数据结构
- 4.1.5 主要函数实现
- 4.1.6 软件处理流程
- 4.2 实现自己的PM Core框架
- 4.2.1 动手前的思考
- 4.2.2 运行时序设计
- 4.2.3 设计与实现
- 4.3 本章小结
- 第5章 notifier框架设计与实现
- 5.1 Linux notifier的设计与实现
- 5.1.1 架构设计概览
- 5.1.2 模块功能详解
- 5.1.3 配置信息解析
- 5.1.4 主要数据结构
- 5.1.5 主要接口介绍
- 5.1.6 内核使用场景
- 5.2 实现自己的notifier框架
- 5.2.1 动手前的思考
- 5.2.2 设计与实现
- 5.3 本章小结
- 第6章 DPM框架设计与实现
- 6.1 Linux DPM的设计与实现
- 6.1.1 架构设计概览
- 6.1.2 模块功能详解
- 6.1.3 配置信息解析
- 6.1.4 主要数据结构
- 6.1.5 主要函数介绍
- 6.1.6 函数工作时序
- 6.2 实现自己的DPM框架
- 6.2.1 动手前的思考
- 6.2.2 设计与实现
- 6.3 补充说明
- 6.4 本章小结
- 第7章 syscore框架设计与实现
- 7.1 Linux syscore的设计与实现
- 7.1.1 架构设计概览
- 7.1.2 模块功能详解
- 7.1.3 配置信息解析
- 7.1.4 主要结构体介绍
- 7.1.5 主要函数介绍
- 7.2 实现自己的syscore框架
- 7.2.1 动手前的思考
- 7.2.2 设计与实现
- 7.3 本章小结
- 第8章 RPM框架设计与实现
- 8.1 Linux RPM的设计与实现
- 8.1.1 架构设计概览
- 8.1.2 模块功能详解
- 8.1.3 RPM与system sleep的关系
- 8.1.4 No-Callback设备解析
- 8.1.5 autosuspend与automatically-delayed suspends分析
- 8.1.6 配置信息解析
- 8.1.7 主要结构体介绍
- 8.1.8 主要函数介绍
- 8.1.9 RPM与PM Core工作时间段对比
- 8.1.10 RPM的函数工作时序
- 8.2 实现自己的RPM框架
- 8.2.1 动手前的思考
- 8.2.2 设计与实现
- 8.2.3 实现进阶第一步
- 8.2.4 实现进阶第二步
- 8.2.5 实现进阶第三步
- 8.3 本章小结
- 第9章 thermal框架设计与实现
- 9.1 Linux thermal的设计与实现
- 9.1.1 架构设计概览
- 9.1.2 模块功能详解
- 9.1.3 基本术语概念
- 9.1.4 配置信息解析
- 9.1.5 thermal_core解析
- 9.1.6 关于critical事件和非critical事件的处理流程
- 9.1.7 governor实现介绍
- 9.2 实现自己的thermal框架
- 9.2.1 动手前的思考
- 9.2.2 设计与实现
- 9.3 本章小结
- 第10章 CPU Hotplug框架设计与实现
- 10.1 Linux CPU Hotplug的设计与实现
- 10.1.1 架构设计概览
- 10.1.2 模块功能详解
- 10.1.3 配置信息解析
- 10.1.4 主要数据结构介绍
- 10.1.5 如何使用CPU Hotplug
- 10.1.6 CPU Hotplug状态机
- 10.1.7 CPU online/offline运行流程示意
- 10.1.8 state申请及使用
- 10.1.9 CPU Hotplug工作时序
- 10.2 实现自己的Hotplug框架
- 10.2.1 动手前的思考
- 10.2.2 设计与实现
- 10.3 本章小结
- 第11章 CPUIdle框架设计与实现
- 11.1 Linux CPUIdle的设计与实现
- 11.1.1 架构设计概览
- 11.1.2 背景介绍
- 11.1.3 配置信息解析
- 11.1.4 设计与实现
- 11.2 实现自己的CPUIdle框架
- 11.2.1 动手前的思考
- 11.2.2 设计与实现
- 11.3 本章小结
- 第12章 CLK框架设计与实现
- 12.1 Linux CLK的设计与实现
- 12.1.1 架构设计概览
- 12.1.2 背景介绍
- 12.1.3 配置信息解析
- 12.1.4 主要数据类型
- 12.1.5 主要函数实现
- 12.2 实现自己的CLK框架
- 12.2.1 动手前的思考
- 12.2.2 设计与实现
- 12.3 本章小结
- 第13章 DVFS框架设计与实现
- 13.1 Linux cpufreq的设计与实现
- 13.1.1 架构设计概览
- 13.1.2 模块功能详解
- 13.1.3 配置信息解析
- 13.1.4 主要数据类型
- 13.1.5 主要函数实现
- 13.2 实现自己的DVFS框架
- 13.2.1 动手前的思考
- 13.2.2 设计与实现
- 13.3 本章小结
- 第14章 regulator框架设计与实现
- 14.1 Linux regulator的设计与实现
- 14.1.1 架构设计概览
- 14.1.2 背景介绍
- 14.1.3 配置信息解析
- 14.1.4 主要模块功能
- 14.1.5 主要函数实现
- 14.2 实现自己的regulator框架
- 14.2.1 动手前的思考
- 14.2.2 设计与实现
- 14.3 本章小结
- 第15章 AVS框架设计与实现
- 15.1 背景及原理
- 15.2 AVS设计与实现
- 15.2.1 AVS实现
- 15.2.2 AVS接口
- 15.2.3 AVS使用
- 15.3 本章小结
- 第16章 PSCI框架设计与实现
- 16.1 背景介绍
- 16.1.1 空闲管理
- 16.1.2 热插拔
- 16.2 假设和建议
- 16.2.1 PSCI目的
- 16.2.2 异常级别、ARMv7权限级别和最高权限
- 16.2.3 基于ARM系统的软件栈
- 16.2.4 安全世界软件和电源管理
- 16.3 PSCI使用场景及要求
- 16.3.1 空闲管理
- 16.3.2 电源状态系统拓扑与协作
- 16.3.3 CPU热插拔和从核启动
- 16.3.4 系统关闭、系统复位和系统挂起
- 16.4 函数功能解析
- 16.4.1 PSCI中的参数和返回值
- 16.4.2 PSCI_VERSION函数
- 16.4.3 CPU_SUSPEND函数
- 16.4.4 CPU_OFF函数
- 16.4.5 CPU_ON函数
- 16.4.6 AFFINITY_INFO函数
- 16.4.7 MIGRATE函数
- 16.4.8 MIGRATE_INFO_TYPE/MIGRATE_INFO_UP_CPU函数
- 16.4.9 SYSTEM_OFF函数
- 16.4.10 SYSTEM_RESET函数
- 16.4.11 PSCI_FEATURES函数
- 16.4.12 SYSTEM_SUSPEND函数
- 16.5 PSCI调用流程
- 16.5.1 CPU_SUSPEND、SYSTEM_SUSPEND调用流程
- 16.5.2 CPU_OFF调用流程
- 16.5.3 CPU_ON调用流程
- 16.6 核状态的操作系统和实现视图
- 16.7 推荐的StateID编码
- 16.8 PSCI规范实现选项
- 16.9 内核PSCI关系梳理
- 16.10 本章小结
- 第17章 ATF
- 17.1 背景介绍
- 17.2 配置信息
- 17.3 工作时序
- 17.4 本章小结
- 第18章 扩展知识点
- 18.1 链表
- 18.2 信号量
- 18.3 自旋锁
- 18.4 GIC
- 18.5 SMP CALL
- 18.6 锁中断
- 18.7 看门狗
- 18.8 冻结进程
- 18.9 定时器
- 18.10 volatile
- 18.11 WFE、SEV、WFI
- 18.12 write through、write back、write allocate、read allocate
- 18.13 mutex、semaphore、spinlock的区别
- 18.14 本章小结
- 第19章 低功耗问题定位及优化思路
- 19.1 多子系统配置
- 19.2 并行处理
- 19.3 增加打点信息
- 19.4 增加suspend流程状态检查返回点
- 19.5 设置提前唤醒量
- 19.6 减少(合并)唤醒中断次数
- 19.7 慎用阻塞型接口
- 19.8 踩内存
- 19.9 压力测试
- 19.9.1 思路梳理
- 19.9.2 压力测试框架实现
- 19.10 其他优化手段
- 19.11 本章小结
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。