ARM的BUS Matrix的作用
ARM的BUSMatrix就是多主(Core,DMA等),多從(內部RAM,APB,外部匯流排等)的交聯和仲裁。目的是為了提高不同主機訪問不同外設情況下的頻寬,另外一個就是簡化BusMaster的協議設計。
比如,DMA把片內RAM的資料搬運到APB的外設,如序列口。同時Core從外部匯流排,SDRAM取指令。如果單一匯流排,那麼Core和DMA控制器就需要先仲裁匯流排控制權,然後才能訪問對應的外設,此時單一匯流排的頻寬不一定夠。如果用交聯矩陣,那麼Core可以直接訪問SDRAM,同時DMA訪問APB外設。
如果沒有用到多個BUSMaster,典型如DMA,LCD控制器等都沒有用到,具體看晶片,那麼Matrix不會有什麼效能提升;當然,如果用到了多個Slave,可能會有少量的效能損失,切換匯流排節點可能需要比直接仲裁更多的時間;(仲裁完成-傳輸資料vs仲裁完成-切換/保持匯流排節點-傳輸資料)
如果只用了一個Slave,比如Core,DMA,LCD都是隻訪問外部匯流排的SDRAM,實質上就是多主單從結構,效率或許會下降。至少看ATmel的手冊,切換連線節點好像需要一個MCK,單匯流排仲裁,不一定會需要這一個週期。
多主多從的應用才會得到較為明顯的好處。
相關文章
- ARM SMMU中 SteamTable的作用
- Matrix
- confusion_matrix函式的使用函式
- uniapp BusAPP
- Matrix Operations
- Matrix Computations
- Matrix Distance
- 【css基礎】如何理解transform的matrix()用法CSSORM
- gstreamer教程(7)——構建應用之Bus的使用
- 使用libvirt配置pci bus的numa親和性
- 的作用
- iOS arm 64 的瞭解iOS
- ARM常用的22個概念!
- D. Matrix Cascade
- 初探Matrix Android ApkCheckerAndroidAPK
- Leetcode 54 Spiral MatrixLeetCode
- 6.lambda-matrix
- Spiral-matrix-ii
- Set-matrix-zeroes
- numpy 中 array 和 matrix 相乘的結果比較
- js的作用域、作用域鏈JS
- SpringCloud 2020.0.4 系列之 BusSpringGCCloud
- Azure Service Bus(二)在NET Core 控制檯中如何操作 Service Bus Queue
- ContentPresenter 的作用
- #include的作用
- @Deprecated 的作用
- CDN的作用
- condition的作用
- static的作用
- Hashcode的作用
- Symbol 的作用Symbol
- jQuery $ 的作用jQuery
- systemd的作用
- js的作用域和作用域鏈JS
- js的作用域與作用域鏈JS
- OpenGL Matrix Class (C++)C++
- LeetCode 542. 01 MatrixLeetCode
- 59. Spiral Matrix II