在Sparc V8架構中,我們有一些N寄存器窗口。通常情況下,在上下文切換過程中,RTOS會壓入和彈出寄存器。是否有可能(或已經完成)將這些寄存器窗口中的每一個用作線程之一。這將切換到下一個線程,就像移動寄存器窗口並推送和彈出PSR一樣好!從而節省上下文切換時間並實現更快的上下文切換頻率Sparc V8 RTOS查詢
0
A
回答
0
也許,這取決於你所說的線程和多少。
寄存器窗口是圍繞函數調用和返回的思想構建的,它在具有明確定義的操作的硬件和軟件陷阱中實現。如果你的線程只是以循環方式被調用的函數等等,那麼是的,它們將以這種方式進行切換,就像從你的「線程」調用的任何其他函數一樣。這就是說,一旦你有更多的功能比登記窗口的數量,他們將開始進入和退出寄存器文件。
從操作系統和用戶代碼的角度來看......當我進入和離開一個註冊窗口時,會發生什麼情況,因爲這是作爲陷阱實現的,因爲我理解它可能在固件中。如果你改變工作方式,你不再運行Sparc,因爲它在Spec中定義了什麼。
寄存器窗口的整個過程一直是快速的上下文切換..但是Sparc硬件的其他方面,例如TLB可能妨礙...在具有平坦地址空間的Sparc MCU的上下文中...那麼是的,它會非常快。
相關問題
- 1. 32位SPARC V8應用程序可以在64位SPARC V9上運行嗎?
- 2. 在Sparc硬件中運行Sparc二進制文件
- 3. 與RTOS
- 4. GNU AS SPARC V8E部分WRPSR
- 5. 查找任務優先級rtos
- 6. RTOS經驗
- 7. Windows免費RTOS
- 8. 一個RTOS
- 9. Cppunit for Nucleus RTOS
- 10. Semaphore.h沒有RTOS
- 11. Integrity RTOS \ Multi Compiler
- 12. Seg Faulting SPARC Assembly
- 13. 在Solaris SPARC
- 14. V8如何將v8 :: Persistent <v8 :: Primitive>轉換爲v8 :: Primitive?
- 15. CC3200 RTOS多線程
- 16. RTOS任務管理
- 17. SPARC彙編語言
- 18. SPARC彙編問題
- 19. SPARC彙編教程
- 20. RTOS和微控制器
- 21. RTOS中的空閒時間
- 22. 開源RTOS代碼鏈接
- 23. STM32F4DIS-BB + RTOS httpserver_socket示例
- 24. RTOS KEIL轉換爲GCC
- 25. VXWORKS RTOS RTP應用程序
- 26. MBed RTOS不響應串口
- 27. RTOS的內存映射
- 28. Sciopta RTOS組件的錯誤
- 29. LWIP + RTOS重新連接
- 30. 在V8
一個實現可能有三個到32個註冊窗口,這會限制可能使用此方法的任務數量。 V8 Arch手冊描述了上下文切換;我希望一個實現可以遵循這一點。 V9 Arch手冊提到了設計上的改進,可以更快地進行上下文切換。 – Clifford
我知道你的觀點。我的問題是,是否有可能。如果它是否允許超快的上下文切換。 – Prakhar
不要忘記相鄰寄存器窗口之間有重疊。一個窗口的輸出寄存器成爲下一個窗口的輸入。所以,即使你爲每個任務分配了一個註冊窗口,你仍然需要在每個上下文開關上保存/恢復輸入寄存器(當然還有全局變量)。 –