
奚海蛟 諶利編著
本書主要內容分爲兩部分:前一部分爲AAE認證考試大綱所涉及的各知識點介紹,並指出了各知識點所需要參考的本書第二部分的內容索引;第二部分則爲系統知識的主體部分,系統地介紹了ARM Cortex-A系列的架構和處理器、內核模型、彙編指令集、浮點協處理器和NEON技術、中斷模型、ARM系統優化、啓動代碼和系統移植知識、多內核系統架構和對稱系統架構、軟件並行運算、系統功耗設計概念、系統安全、虛擬化、系統調試模塊,以及ARM的bigLITTLE技術等。
本書在春節期間讀完。 全書知識點覆蓋全面,但沒有講得非常詳細,基本點到即止。大部分章節,都可以單獨拿出來寫一小本至少100多頁的書了。 所講內容我將它分爲三大部分: 第一部分是跟指令集和微架構相關——ARM體系結構、處理器、寄存器、模式、指令集、NEON(高級SIMD)、浮點、緩存、內存管理單元、內存訪問排序、異常中斷、虛擬化、安全性、電源管理、big.LITTLE技術、多處理器架構、並行; 第二部分是跟操作系統相關——引導代碼、移植、ABI; 第三部分是跟C語言和彙編語言相關——性能分析、優化代碼、調試。 對於我來說,比較瞭解的內容有:緩存、內存管理單元、內存訪問排序。像內存訪問排序,也就是CHI協議中的Order之前看不懂爲什麼要有這個功能,但結合軟件應用場景、內存類型、多種類型的barrier的彙編代碼之後,才明白Order設計的作用。 這本書讓我印象非常深的地方在第三部分,它讓我明白了軟硬件是有多麼的協同融合。寫軟件代碼的人如果把計算機底層原理搞清楚,直接優化代碼並調試就很快捷。比如量化行業的交易開發,裏面用到的一些低延遲高併發思想和我們在緩存設計上的思想有不少相似之處。作爲一名CPU芯片設計或驗證的工程師,除了掌握數電、計算機體系結構、計算機組成原理等基本知識外,必須得把C、彙編語言基礎打紮實纔行,C++是開拓。
對於快速的對ARMv7有一個全貌的瞭解很有用處,適合初學者