預售商品須知
預售商品請單獨下單,到貨後將盡快安排為您發出。
若您將預售商品與其他商品一並購買,則該訂單默認在預售商品到貨後發出,拍下即視為認可,謝謝您的支持。
作 者:周文嘉 劉 盼 王鈺達 等 著
定 價:109.8
出 版 社:人民郵電出版社
出版日期:2022年08月01日
頁 數:358
裝 幀:平裝
ISBN:9787115592880
*彙聚大量芯片開發人員的經驗總結;*涵蓋處理器芯片架構、核心繫統軟件的設計與開發;*兼顧計算機繫統硬件和軟件開發。本書知識結構:通用處理器的架構;彙編和編譯技術;Linux 內核中的內存管理;Linux 內核中的進程管理;Linux 繫統中的一些開發和調試工具;人工智能技術和 OpenCL 編程技術;一些基礎軟件開源項目;硬件架構。
●目nbsp;nbsp;nbsp;nbsp;錄第章通用處理器架構簡介綜述2AArch64寄存器堆22通用寄存器222特殊寄存器223繫統控制寄存器224處理器狀態325函數調用標準43流水線53CortexA77微架構532微架構與代碼優化74AArch64異常級別85內存模式95內存對齊952檢查內存模式問題的工具96原子操作06指令介紹062原子指令使用示例7處理器緩存28繫統安全增強28屏障指令282PAN383MTE49虛擬化49ARMv7a虛擬化擴展492ARMKVMwork593ARMVHE594虛擬化的其他特性50更多處理器架構特性60獲取處理器特性602運行時問題的深入討論603處理器架構檢測804ARMv8架構主要特性20主流編譯器和模擬器對ARMv8架構的支持2GCC對ARMv8架構的支持22QEMU模擬器對ARMv8架構的支持22第2章彙編與編譯技術入門232通過CC++學習彙編語言232位運算通用優化技巧2322利用ARM的ubfiz等指令優化位操作2323指令與數據保序2422ARM64NEON技術2422NEON寄存器25222調試環境27223NEON編程28224不同NEON開發方式的比較37225SIMD優化技巧38226實際案例3823RISCV彙編介紹3823RISCV彙編指令說明40232RISCV啟動代碼的分析424玩具編譯器mini_c的實現4524詞法分析45242語法分析46243mini_c的源代碼4825LLVM簡介4925LLVM的代碼表示49252LLVM優化5026LLVM實驗代碼527LLVM源代碼5227LLVM60源代碼編譯52272LLVM20源代碼編譯53第3章Linux內存管理543從CPU角度看內存5432內核初始化內存5832early_fixmap_init函數58322setup_machine_fdt函數59323arm64_memblock_init函數60324paging_init函數6325bootmem_init函數6333分區頁幀分配器6733伙伴算法77332水位控制84333內存回收88334碎片頁面規整934slab分配器及kmalloc的實現9634走進slab分配器96342數據結構98343流程分析00344kmalloc的實現035vmalloc的原理和實現0335數據結構03352vmalloc的實現0536mallocmmap的原理和實現0736認識VMA07362malloc的實現2363認識mmbrk2364mmap的實現437缺頁異常處理537匿名頁面缺頁中斷20372文件映射缺頁中斷22373頁被交換到交換分區23374寫時復制25第4章Linu程管理284Linux對進程的描述284通過task_struct描述進程2842task_structthread_info和內核棧的關繫2943如何獲取當前進程342用戶態進程線程的創建342fork函數32422vfork函數34423pthread_create函數35424fork函數vfork函數和pthread_create函數的關繫3643do_fork函數的實現3743copy_process函數38432wake_up_new_task函數4444進程調度4644進程的分類46442與調度相關的數據結構47443調度時刻50444調度算法54445CFS56446選擇下一個進程58447進程上下文切換6245多核繫統的負載均衡6445多核架構64452CPU拓撲65453調度域和調度組69454CPU拓撲中調度域的初始化72455何時做負載均衡73456負載均衡的基本過程74第5章Linux繫統開發工具775GDB調試工具775程序調試方法7752代碼斷點7753數據斷點8254多線程調試8455捕獲當前位置8756GDB的原理957coredump文件的使用958通過網絡進行GDB遠程調試9752trace工具9852ltrace98522strace200523ftrace202524kprobe20653eBPF20953prog注入流程209532eBPF寄存器20533eBPFprog的加載流程2054SystemTap2454底層軟件工程師的困境24542SystemTap的出現和發展歷史24543關於SystemTap的兩個例子242544基本原理243545深入了解原理247第6章人工智能技術2506視頻編解碼主流技術及軟件框架2506FFmpegVAAPI框架介紹25062Gstreamer框架介紹2563OpenCV框架介紹25362NVIDIA計算平臺CUDA25562CUDA並行化的編程模型255622線程層次結構256623CUDA的線程索引計算257624CUDA的內存模型258625CUDA用例25963基礎技術介紹2663GEMM算法26632Resnet263633KCF算法265634PyTorchLibTorch深度學習框架270第7章OpenCL的編程技術2737GPU計算與OpenCL介紹2737什麼是OpenCL27372OpenCL類圖27572OpenCL架構27672平臺模型277722執行模型277723內存模型282724編程模型283725OpenCL總結28473關於OpenCL的例子28574平臺上下文設備29574OpenCL平臺295742設備296743OpenCL上下文29875程序對像和內核對像30075程序對像30752內核對像30376緩衝區30576創建內存對像305762查詢緩衝區信息306763讀寫和復制緩衝區306764映射緩衝區3477關於OpenCL的案例研究3577圖像顏色模型轉換35772圖像縮放37773高斯模糊320第8章一些開源項目3238ISAL開源項目優化技巧3238memory32482crc32483igzip32584isal_crypto32682OOPSRTOS32682基於硬件板的OOPSRTOS實踐326822基於虛擬機的OOPSRTOS實踐3383基於Linux內核的BiscuitOS實踐33283構建基於ARM64Linux的BiscuitOS332832基於BiscuitOS的內核源代碼實踐333833基於BiscuitOS的內核模塊開發335834基於BiscuitOS的應用程序開發337835BiscuitOS高級實踐338第9章硬件架構3399概述33992開源硬件soDLA33992FIFO模塊34922RDMA和WDMA模塊34923Retiming模塊和pipe模塊342924CSC和CMAC模塊342925DMA類型的選擇34493Intel神經網絡異構加速芯片34493SpringHill硬件架構345932推理計算引擎ICE346933DL計算網絡347934矢量處理器348935內存架構349936負載靈活及可擴展性349937神經網絡推理計算優化349938通用神經網絡優化350939與硬件相關的神經網絡優化3594SystemC框架3594SystemC的用途352942SystemC環境搭建353943一個簡單的SystemC例子354
本書首先介紹通用處理器的架構以及彙編和編譯的技術然後講解Linux內存管理Linu程管理以及GDBtraceeBPFSystemTap等Linux繫統開發工具接著通過視頻編解碼主流技術和NVIDIA計算平臺CUDA等討論人工智能技術在音視頻領域與自然語言處理領域的應用最後講解標準計算平臺OpenCL的原理開源硬件soDLAIntel神經網絡異構加速芯片SystemC框架本書適合從事企業繫統開發及優化的技術人員閱讀也可供計算機相關專業的師生參考
周文嘉 劉 盼 王鈺達 等 著
周文嘉,目前就職於某國產 AI GPU 芯片公司,曾服務於 ARM、阿裡巴巴、HTC 等公司,擁有 10 年以上工作經驗,主要從事繫統軟件開發,涵蓋繫統庫開發、指令集優化、Linux 內核開發等,為某些開源社貢獻過一定數量的補丁,擔任 Free time team 創始人,致力於免費教育事業。劉盼,目前就職於某國際芯片公司,曾服務於三星電子研究所、某自動駕駛科技公司,具有手機、汽車和芯片行業的工作經驗,創辦 4 萬多人的極客社區—“人人都是極客”,擔任某科技公司合伙人,是谷歌開發者社區優秀講師。王鈺達,加州大學伯克利分校和伊利諾伊理工學院雙碩士,目前專注於 RISC-V 工具鏈、NVDLA等