★ 基於樹莓派4B開發板,詳盡介紹ARM64系統結構 ★
☆ 結合QEMU實驗平台,整理各種實戰經驗 ☆
★ 深入淺出地介紹ARMv8和ARMv9系統結構,透過ARM64進行創新實驗 ★
隨著手機晶片和嵌入式晶片領域的發展,ARM64系統結構的處理器占了90%以上的市佔率,與ARM64相關的生態社群也越來越繁榮。但當面對幾千頁的英文原版ARM公司官方技術手冊時,不少開發者往往感到力不從心。
全書共分23章,包含ARMv8/ARMv9系統結構基礎知識以及Cortex-A72處理器。並針對樹莓派4B開發板,用來架設實驗環境。內容涵蓋A64指令集中載入與儲存指令、算術與移位指令、比較與跳躍指令、PC相對位址載入指令、記憶體獨占存取指令、異常處理指示、系統暫存器存取指令、記憶體屏障指令等。
另外GNU組譯器的語法也是本書重點,還有連結器的使用、連結指令稿以及重定位。中間還有說明GCC內嵌組合語言程式碼語法、巨集、系統結構異常處理的觸發與返回、異常向量表、異常現場、同步異常的解析。
在硬體上面,則介紹了系統結構中斷處理的基本概念流程,樹莓派4B上的傳統中斷控制器、保存和恢復中斷現場。GIC部分,則介紹了中斷源分配、中斷路由、樹莓派4B上的GIC-400。
有關記憶體部分,則介紹記憶體管理,頁表、頁表項等。在快取記憶體上,包括了工作原理、映射方式,虛擬快取記憶體與物理快取記憶體,名稱重複與名稱相同、共用屬性、維護指令、一致性相關問題,MESI協定、CCI與CCN快取一致性控制器、快取記憶體錯誤分享。
本書最精華的地方則在於全書後段,介紹記憶體屏障指令基礎知識、原子操作基本概念、原子記憶體存取指令、獨占記憶體存取工作原理、原子記憶體存取操作指令等相關內容。
在作業系統方法,則有64位元程式設計下常見的C語言陷阱、ARM64函式呼叫標準、ARM64堆疊佈局、簡易處理程序排程器、浮點運算以及NEON指令、SVE以及SVE2指令,還結合3個實際案例分析如何使用SVE/SVE2指令來進行最佳化。
本書集結了華文地區優秀的工程師,以社區合作的方式撰寫了本書,結合大專院校課程特色以及實際專案經驗,精心製作了幾十個有趣的實驗,讀者可以透過實驗來深入學習和理解ARM64的系統結構與程式設計,相當推薦給需要使用ARM架構的硬體工程師或有志於此的從業人員。
※ 本書附程式碼,可至深智官網下載:deepmind.com.tw/ |