Cortex-M3的整体风景
一、流水線
? 1、Cortex-CM3處理器使用一個3級流水線,流水線的3級分別是:取指,解碼和執行:
? 2、當運行的指令大多數是16位時,處理器會每隔一個周期做一次取指。當執行到跳轉指令時需要清洗流水線,處理器會不得不跳轉目的地重新取指。為了改善這種情
??????? 況,Cortex-CM3支持一定數量的v7M指令可以避免很多短程跳轉。
? 3、由于流水線的存在,以及出于對Thumb代碼兼容的考慮,讀取PC會返回當前指令地址+4的值。
? 4、在處理器內核的預取單元中也有一個指令緩沖區,它允許后續的指令在執行前現在里面排隊,也能在執行未對齊的32位指令時,避免流水線斷流。
二、詳細框圖
? 1、Cortex-CM3處理器里面除了處理核心外,還有其他好多組件,以用于系統管理和調試支持:
?? 1)、MPUI和ETM是可選組件,不一定會包含在每一個Cortex-CM3的MCU中。
?? 2)、方框圖中的縮寫及定義
? 2、Cortex-CM3處理器是以一個處理器子系統呈現的,其CPU內核本身與NVIC和一系列調試塊都緊密耦合:
?? 1)、CM3core:Cortex-CM3處理器的中央處理核心。
?? 2)、嵌套向量中斷控制器NVIC:NVIC是一個在Cortex-CM3中內建的中斷控制器。
?? 3)、SysTick定時器:系統滴答定時器是一個非常基本的到時器定時器,用于在每隔一定的時間產生一個中斷,即使是系統在睡眠模式下也能工作。
?? 4)、存儲器保護單元:MPU是一個選配的單元,有些Cortex-CM3可能沒有配置此組件。如果有,則它可以把存儲器分成一些regions,并分別給予保護。
?? 5)、BusMatrix:BusMatrix是Cortex-CM3內部總線系統的核心。
?? 6)、AHB to APB:它是一個總線橋,用于把若干個APB設備鏈接到Cortex-CM3處理器的私有外設總線上。
?? 7)、圖框中其他的組件都用于調試,通常不會再應用程序中使用它們。
? 3、其他調試組件
?? 1)、SW-DP/SWJ-DP:串行線調試端口(SW-DP)/串口線JTAG調試端口(SWJ-DP)都與AHB訪問端口(AHB-PB)協同工作,以使外部調試器可以發起AHB上的數據傳
???????????? 送,從而執行調試活動。
?? 2)、AHB-AP:AHB訪問端口通過少量的寄存器,提供了對全部Cortex-CM3存儲器的訪問機能。
?? 3)、嵌入式跟蹤單元ETM:ETM用于實現實時指令跟蹤,但它是一個選配件,所以不是所有的Cortex-CM3產品都具有實時指令跟蹤能力。
?? 4)、數據觀察點及跟蹤單元:通過DWT,可以設置數據觀察點。
?? 5)、指令跟蹤單元ITM:軟件可以通過該模塊直接把消息送給TPIU;還可以讓DWT匹配命中事件通過ITM產生數據跟蹤包,并把它輸出到一個數據跟蹤流中。
?? 6)、跟蹤端口的接口單元TPIU:TPIU用于跟外部的跟蹤硬件交互。
?? 7)、FPB:FPB提供flash地址重載和斷點功能。
?? 8)、ROM表:只是一個簡單的查找表,提供了存儲器映射信息,這些信息包括多種系統設備和調試組件。
三、Cortex-CM3的總線接口
? 1、I-Code總線
?? 1)、I-Code總線是一條基于AHB-lite總線的32位總線,負責在0x0000_0000-0x1FFF_FFFF之間取指操作。
?? 2)、取指以字的長度執行,即使是對于16位指令也是如此.因此CPU內核可以一次取出兩條16位指令。
? 2、D-Code總線
?? 1)、D-Code總線是一條基于AHB-lite總線的32位總線,負責在0x0000_0000-0x1FFF_FFFF之間取指操作。
?? 2)、鏈接到D-Code總線上的任何設備都只需支持AHB-Lite的對齊訪問,不需要支持非對齊訪問。
? 3、系統總線
? 1)、系統總線是一條基于AHB-lite總線的32位總線,負責在0x2000_0000-0xDFFF-FFFF和0xE010_0000-0xFFFF_FFFF之間的所有數據傳送。取指和數據訪問都有。
?? 2)、所有的數據傳輸都是對齊的。
? 4、外部私有外設總線
?? 1)、基于APBzing總線協議的32位總線。此總線負責0xE004_0000-0xE00F_FFFF之間的私有外設訪問。
?? 2)、但是APB的一部分空間已經被TPIU、ETM以及ROM表用掉了,就只留下0xE004_2000-0xE00F_F000這個區間用于附加的(私有)外設。
? 5、調試訪問端口總線
?? 1)、調試訪問端口總線接口是一條基于”增強型APB規格“的32位總線,它專用于掛接調試接口。
四、Cortex-CM3的其他接口
? 1、除了總線接口之外,Cortex-CM3還有幾個用于其它目的的接口,這些接口的信號都不大可能會引出到引腳上,而只用于連接SoC不同的部分,或者干脆就沒有使用。
? 2、雜項接口信號
五、外部私有外設總線
? 1、Cortex-CM3處理器有一個外部私有外設總線(PPB)接口。外部PPB接口是基于高級外設總線(APB)協議構造的。用于非共享的系統設備。
? 2、為了支持CoreSight設備,該接口又包含了稱為“PADDR31”的信號,給出傳送的發源地:
?? 1)、若該信號為0,則表示是運行在Cortex-CM3內部的軟件產生的傳送操作。
?? 2)、若為1,則表示是調試軟件產生了傳送操作。
? 3、外部私有外設總線是專用的,不服務于普通的外設,這惡鬼規矩只能靠芯片設計者自覺遵守。
? 4、外部PPB不支持非對齊訪問。
六、典型的連接方式
? 1、總線接口與其他設備和存儲器的典型連接
? 2、代碼存儲區既可以被指令總線(I-CODE)訪問,也可以被數據總線(D-CODE)訪問,此時需要在中間插入一個總線開關,稱為總線矩陣或者使用一個AHB總線復用器。
?? 1)、如果使用了總線矩陣,則閃存和附加的SRAM可以被both I-CODE和D-CODE訪問。
?? 2)、當數據訪問和指令訪問同時嘗試訪問同一個區域時,可以賦予數據訪問更高的優先級以提高性能。
?? 3)、通過AHB總線矩陣把取指和數據訪問分開后,如果指令總線和數據總線在同一時刻訪問不同的存儲器設備,則兩者可以并行不勃。但是若只使用了總線復用器則數據傳
???????????? 送就不能同時發生。
? 3、有些引腳比較多的接口會帶外部總線接口(EMI)。在此情況下,需要一個外部存儲器控制器。其他的AHB設備則可以簡單的鏈接到系統總線上,而不需要額外的總線矩
??????? 陣。
七、復位信號
? 1、Cortex-CM3中各種復位信號
? 2、典型的Cortex-CM3芯片內部復位信號和其作用范圍示意圖
總結
以上是生活随笔為你收集整理的Cortex-M3的整体风景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子科大计算机学院毕业照,电子科大毕业照
- 下一篇: 宣战抖音!腾讯与头条之战的新局面与猜想