SoC底層軟件低功耗系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
定 價(jià):109 元
- 作者:李曉杰著
- 出版時(shí)間:2023/6/1
- ISBN:9787111728146
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TN402
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
這是一本系統(tǒng)剖析SoC底層軟件低功耗系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)與定制化的著作,同時(shí)它還全面講解了低功耗的知識(shí)點(diǎn)以及各種低功耗問題的定位與優(yōu)化。作者在華為海思等半導(dǎo)體企業(yè)深耕低功耗領(lǐng)域10余年,本書內(nèi)容基于作者的實(shí)際商用經(jīng)驗(yàn)撰寫而成,讀完本書后,我們至少能掌握以下知識(shí):(1)Linux內(nèi)核中所有與低功耗相關(guān)的17個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)原理,以及這些模塊的自定義實(shí)現(xiàn)和二次開發(fā),這部分內(nèi)容能讓讀者對(duì)低功耗相關(guān)的問題知其然并知其所以然。(2)Linux內(nèi)核中關(guān)于低功耗的設(shè)計(jì)思想,既同時(shí)適用于宏內(nèi)核、微內(nèi)核和精簡內(nèi)核,又可以給其他的操作系統(tǒng)提供思路和啟發(fā)。(3)低功耗的20余個(gè)擴(kuò)展知識(shí)點(diǎn),讓讀者對(duì)低功耗有更全面、更深入地了解。(4)各種低功耗問題的定位方法和通用優(yōu)化手段。
(1)作者背景權(quán)威:作者是資深的SoC低功耗專家,曾在華為海思半導(dǎo)體擔(dān)任高級(jí)工程師,現(xiàn)為國內(nèi)某頭部手機(jī)廠商的高級(jí)工程師。(2)作者經(jīng)驗(yàn)豐富:作者在驅(qū)動(dòng)開發(fā)、低功耗、性能優(yōu)化、系統(tǒng)穩(wěn)定性等多個(gè)領(lǐng)域有豐富經(jīng)驗(yàn),相關(guān)工作支撐各類終端產(chǎn)品累計(jì)近十億級(jí)發(fā)貨總量。(3)內(nèi)容實(shí)操性強(qiáng):內(nèi)容聚焦于SoC底層軟件的低功耗問題,既有Linux內(nèi)核的低功耗模塊的設(shè)計(jì)、實(shí)現(xiàn)與定制化,又有各種常見低功耗問題的定位與優(yōu)化。(4)表達(dá)通俗易懂:圖文并茂、抽絲剝繭,對(duì)Linux內(nèi)核中低功耗模塊的源碼進(jìn)行分析和介紹時(shí),繪制了大量的流程圖、時(shí)序圖,層層展開,便于讀者理解。
Preface 前 言
在SoC芯片的整個(gè)交付過程中,低功耗的芯片設(shè)計(jì)、軟件設(shè)計(jì)、功耗優(yōu)化是非常重要的細(xì)分領(lǐng)域,而低功耗軟件領(lǐng)域的書卻相對(duì)匱乏,已有的相關(guān)圖書也更多集中在芯片設(shè)計(jì)領(lǐng)域。一些想要從事低功耗領(lǐng)域相關(guān)工作的研發(fā)人員需要工作很長一段時(shí)間才能對(duì)低功耗軟件框架及其問題分析和優(yōu)化有一個(gè)全局的認(rèn)識(shí)。這是我想要出版這本書的主要原因,此外,我也想讓更多的人熟悉低功耗特性及軟件設(shè)計(jì)。
綜合來說,本書主要講了四點(diǎn):
一是分析Linux 內(nèi)核的實(shí)現(xiàn)機(jī)制和方法,希望能給初次涉足低功耗領(lǐng)域的軟件開發(fā)人員一些幫助。這一內(nèi)容分布在各章中。
二是學(xué)習(xí)優(yōu)秀的設(shè)計(jì)思想,從而以其為參考將我們自己對(duì)應(yīng)的機(jī)制應(yīng)用到其他操作系統(tǒng)中。這一內(nèi)容同樣分布在各章中。
三是對(duì)低功耗領(lǐng)域涉及的一些擴(kuò)展知識(shí)點(diǎn)做了補(bǔ)充說明。這一內(nèi)容主要在第18章中體現(xiàn)。
四是針對(duì)低功耗問題定位和優(yōu)化手段做了一些簡單說明。這一內(nèi)容在第19章中闡述。這一部分與各芯片廠商關(guān)系很大,因此這里只能介紹一些通用的優(yōu)化手段。
特別需要說明的是,本書的第12~15章是在本領(lǐng)域資深專家楊強(qiáng)的指導(dǎo)下完成的,在此特別表示感謝。
內(nèi)核版本
本書基于Linux 內(nèi)核 5.10.111撰寫,并對(duì)基于該版本的相關(guān)實(shí)現(xiàn)進(jìn)行了代碼分析,大家可以到內(nèi)核官方網(wǎng)站(https://kernel.org/)中下載、查閱相關(guān)實(shí)現(xiàn)。不過對(duì)于低功耗機(jī)制來講,不同版本的相關(guān)實(shí)現(xiàn)基本不會(huì)有太大變化。
讀者對(duì)象
本書適合有志于在低功耗領(lǐng)域發(fā)展的開發(fā)者閱讀,包括但不限于BSP工程師、內(nèi)核開發(fā)工程師、RTOS開發(fā)工程師、系統(tǒng)軟件工程師、固件工程師、低功耗測試工程師等。我們會(huì)假定閱讀本書的開發(fā)者都有一定的技術(shù)基礎(chǔ)。
錯(cuò)誤或建議反饋
由于作者水平有限,書中難免會(huì)有不準(zhǔn)確的地方,歡迎大家積極反饋,也歡迎大家提出改進(jìn)建議。讀者可通過郵件與我聯(lián)系:2118216214@qq.com。
Contents 目 錄
前言
第1章 低功耗系統(tǒng)設(shè)計(jì)思路1
1.1 低功耗系統(tǒng)設(shè)計(jì)面臨的挑戰(zhàn)1
1.2 降低功耗的3種主要設(shè)計(jì)思路2
1.3 低功耗系統(tǒng)的架構(gòu)設(shè)計(jì)3
1.4 術(shù)語介紹6
1.5 本章小結(jié)8
第2章 wakeup source 框架設(shè)計(jì)與實(shí)現(xiàn)9
2.1 Linux wakeup source的設(shè)計(jì)與實(shí)現(xiàn)9
2.1.1 架構(gòu)設(shè)計(jì)概覽9
2.1.2 模塊功能詳解9
2.1.3 配置信息解析10
2.1.4 主要數(shù)據(jù)結(jié)構(gòu)10
2.1.5 主要函數(shù)分析12
2.1.6 函數(shù)工作時(shí)序17
2.2 實(shí)現(xiàn)自己的wakeup source 框架18
2.2.1 動(dòng)手前的思考18
2.2.2 設(shè)計(jì)與實(shí)現(xiàn)19
2.3 本章小結(jié)22
第3章 autosleep 框架設(shè)計(jì)與實(shí)現(xiàn)23
3.1 Linux autosleep的設(shè)計(jì)與實(shí)現(xiàn)23
3.1.1 架構(gòu)設(shè)計(jì)概覽23
3.1.2 模塊功能詳解23
3.1.3 配置信息解析24
3.1.4 主要函數(shù)實(shí)現(xiàn)24
3.1.5 函數(shù)工作時(shí)序27
3.2 實(shí)現(xiàn)自己的autosleep 框架28
3.2.1 動(dòng)手前的思考28
3.2.2 設(shè)計(jì)與實(shí)現(xiàn)29
3.3 本章小結(jié)30
第4章 PM Core框架設(shè)計(jì)與實(shí)現(xiàn)31
4.1 Linux PM Core的設(shè)計(jì)與實(shí)現(xiàn)31
4.1.1 架構(gòu)設(shè)計(jì)概覽31
4.1.2 模塊功能詳解31
4.1.3 配置信息解析32
4.1.4 主要數(shù)據(jù)結(jié)構(gòu)32
4.1.5 主要函數(shù)實(shí)現(xiàn)35
4.1.6 軟件處理流程41
4.2 實(shí)現(xiàn)自己的PM Core 框架43
4.2.1 動(dòng)手前的思考43
4.2.2 運(yùn)行時(shí)序設(shè)計(jì)44
4.2.3 設(shè)計(jì)與實(shí)現(xiàn)44
4.3 本章小結(jié)47
第5章 notifier 框架設(shè)計(jì)與實(shí)現(xiàn)48
5.1 Linux notifier的設(shè)計(jì)與實(shí)現(xiàn)48
5.1.1 架構(gòu)設(shè)計(jì)概覽48
5.1.2 模塊功能詳解48
5.1.3 配置信息解析49
5.1.4 主要數(shù)據(jù)結(jié)構(gòu)49
5.1.5 主要接口介紹50
5.1.6 內(nèi)核使用場景54
5.2 實(shí)現(xiàn)自己的notifier 框架57
5.2.1 動(dòng)手前的思考57
5.2.2 設(shè)計(jì)與實(shí)現(xiàn)57
5.3 本章小結(jié)59
第6章 DPM 框架設(shè)計(jì)與實(shí)現(xiàn)60
6.1 Linux DPM的設(shè)計(jì)與實(shí)現(xiàn)60
6.1.1 架構(gòu)設(shè)計(jì)概覽60
6.1.2 模塊功能詳解60
6.1.3 配置信息解析61
6.1.4 主要數(shù)據(jù)結(jié)構(gòu)61
6.1.5 主要函數(shù)介紹63
6.1.6 函數(shù)工作時(shí)序67
6.2 實(shí)現(xiàn)自己的DPM框架75
6.2.1 動(dòng)手前的思考75
6.2.2 設(shè)計(jì)與實(shí)現(xiàn)75
6.3 補(bǔ)充說明79
6.4 本章小結(jié)81
第7章 syscore 框架設(shè)計(jì)與實(shí)現(xiàn)82
7.1 Linux syscore的設(shè)計(jì)與實(shí)現(xiàn)82
7.1.1 架構(gòu)設(shè)計(jì)概覽82
7.1.2 模塊功能詳解82
7.1.3 配置信息解析82
7.1.4 主要結(jié)構(gòu)體介紹83
7.1.5 主要函數(shù)介紹84
7.2 實(shí)現(xiàn)自己的syscore 框架87
7.2.1 動(dòng)手前的思考88
7.2.2 設(shè)計(jì)與實(shí)現(xiàn)88
7.3 本章小結(jié)90
第8章 RPM框架設(shè)計(jì)與實(shí)現(xiàn)91
8.1 Linux RPM的設(shè)計(jì)與實(shí)現(xiàn)91
8.1.1 架構(gòu)設(shè)計(jì)概覽91
8.1.2 模塊功能詳解91
8.1.3 RPM與system sleep的關(guān)系94
8.1.4 No-Callback設(shè)備解析95
8.1.5 autosuspend與automatically-
delayed suspends分析95
8.1.6 配置信息解析96
8.1.7 主要結(jié)構(gòu)體介紹96
8.1.8 主要函數(shù)介紹99
8.1.9 RPM與PM Core工作時(shí)間段
對(duì)比108
8.1.10 RPM的函數(shù)工作時(shí)序108
8.2 實(shí)現(xiàn)自己的RPM 框架112
8.2.1 動(dòng)手前的思考112
8.2.2 設(shè)計(jì)與實(shí)現(xiàn)112
8.2.3 實(shí)現(xiàn)進(jìn)階步114
8.2.4 實(shí)現(xiàn)進(jìn)階第二步116
8.2.5 實(shí)現(xiàn)進(jìn)階第三步118
8.3 本章小結(jié)120
第9章 thermal框架設(shè)計(jì)與實(shí)現(xiàn)121
9.1 Linux thermal的設(shè)計(jì)與實(shí)現(xiàn)121
9.1.1 架構(gòu)設(shè)計(jì)概覽121
9.1.2 模塊功能詳解121
9.1.3 基本術(shù)語概念123
9.1.4 配置信息解析123
9.1.5 thermal_core解析123
9.1.6 關(guān)于critical事件和非critical
事件的處理流程133
9.1.7 governor實(shí)現(xiàn)介紹134
9.2 實(shí)現(xiàn)自己的thermal框架135
9.2.1 動(dòng)手前的思考136
9.2.2 設(shè)計(jì)與實(shí)現(xiàn)136
9.3 本章小結(jié)143
第10章 CPU Hotplug框架設(shè)計(jì)
與實(shí)現(xiàn)144
10.1 Linux CPU Hotplug的設(shè)計(jì)與實(shí)現(xiàn)144
10.1.1 架構(gòu)設(shè)計(jì)概覽144
10.1.2 模塊功能詳解144
10.1.3 配置信息解析145
10.1.4 主要數(shù)據(jù)結(jié)構(gòu)介紹146
10.1.5 如何使用CPU Hotplug148
10.1.6 CPU Hotplug?狀態(tài)機(jī)149
10.1.7 CPU online/offline運(yùn)行流程
示意150
10.1.8 state申請(qǐng)及使用152
10.1.9 CPU Hotplug工作時(shí)序153
10.2 實(shí)現(xiàn)自己的Hotplug 框架157
10.2.1 動(dòng)手前的思考157
10.2.2 設(shè)計(jì)與實(shí)現(xiàn)157
10.3 本章小結(jié)160
第11章 CPUIdle 框架設(shè)計(jì)與實(shí)現(xiàn)161
11.1 Linux CPUIdle的設(shè)計(jì)與實(shí)現(xiàn)161
11.1.1 架構(gòu)設(shè)計(jì)概覽161
11.1.2 背景介紹161
11.1.3 配置信息解析162
11.1.4 設(shè)計(jì)與實(shí)現(xiàn)163
11.2 實(shí)