2014-11-23 73 views
7

beaglebone黑色處理器包括兩個獨立的可編程實時單位(PRU)。業餘愛好者和專業人士對於可能將這些單元用於實時應用感到非常興奮,這一點是可以理解的。但是,如果您可以擁有RTOS(無論是beaglebone還是覆盆子pi),您爲什麼需要PRU?爲什麼您需要一個可編程實時單位(PRU),而您可以擁有一個RTOS?

EDIT- 有關信息,BBB的ARM Cortex A8運行在1 GHz,1.9 DMIPS/MHz。 PRU是以200 MHz運行的簡單RISC。

回答

6

即使使用實時調度程序,Linux也不適用於許多重要的硬實時任務,並且微秒級別的響應需求,另一方面,它提供或啓用了大量用戶界面,連接功能和文件系統支持。這些東西要麼在RTOS中不可用,要麼在高端RTOS中以相當大的成本提供,並且具有更多有限的硬件支持。

因此,如果您有一個系統具有嚴格的實時限制,但需要更多通用計算功能,例如聯網,與商用現貨(COTS)外設等的文件系統連接,則PRU提供對此的解決方案。

手頭上,我不禁想到,這是TI爲了銷售更多芯片而進行的市場營銷活動。使用一個或多個處理器執行時間關鍵型任務(可能運行RTOS)一直是可能的(並且確實很常見),而UI和連接由具有必要硬件和內存資源的單個處理器處理,但沒有真實-時間限制。 PRU器件有兩個32位內核,但XMOS xCORE器件有多達16個內核 - 有16個通信內核,您甚至可能不需要RTOS。

要回答這個問題......

[...]如果你能有一個RTOS [...],你爲什麼會需要的PRU?

...直接;在這種情況下,你可能不需要它們,但是你會放棄Linux - 而你的應用程序可能需要它。它只是使用Linux的實時應用程序的衆多解決方案之一。你支付你的錢,並採取你的選擇。

+0

)讓我們堅持BB案例。所以你的觀點是,PRU上運行時序關鍵任務通常比RTOS更好(就響應時間而言)主處理器這樣做,我是否正確理解了你的問題? – student1 2014-11-23 20:05:50

+1

你對這個問題提出了同樣的問題 - 我的回答是適用的,但要重申,在Linux上,當操作系統接近它時會發生響應 - 它是非確定性的,專用於單個任務的處理器通常會以更快和更確定的方式響應(即每次同一時間)。一個RTOS將使BB可能對大多數任務足夠快速和確定性地作出響應,但是如果你然後鬆動所有Linux帶來的東西,你的應用程序仍然是可行的嗎?如果你不需要Linux,你可能不需要BB。 – Clifford 2014-11-23 20:20:56

+0

我關於不需要BeagleBone的觀點是:它擁有的內存資源非常多,因此它可以運行Linux。如果你不需要Linux,你可以少得多。 – Clifford 2014-11-23 20:23:58

4

BeagleBone或RaspberryPI中的處理器很可能實時太「沉重」 - 畢竟,您可以在您的PC上運行RTOS,但它不會是完全確定性的,即使速度比您的典型的微控制器(我猜這些PRU是某種具有新花式名稱的微控制器)。在這些主板上的高級應用程序處理器中,您幾乎不能直接訪問硬件或中斷,這對於實時執行對時間要求很高的實時應用程序非常重要。

+2

如果你在PC上運行和RTOS,它將有很難實時確定性響應。確保這一點的是RTOS,而不是硬件。事實上,QNX Neutrino之前並不罕見,QNX完全是x86 RTOS。在這些平臺上的Linux *通用*操作系統(GPOS)會阻止實時性能。 – Clifford 2014-11-23 19:42:20

+1

響應將是確定性的,但不一定是短暫的......我想任何MCU在這些問題上的速度都可能比具有巨大緩存,長管道和外部存儲器的應用處理器更快。有些情況下8位芯片比ARM MCU更快地進入中斷處理程序。將其與典型的應用處理器進行比較,您會明白我的意思。 – 2014-11-23 19:44:15

+0

@ Clifford - 以此鏈接爲例 - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.prd29-genc-009492c/ch05s03s03.html。它說,延遲時間是「數百」週期。在Cortex-M3微控制器上,它的數量級要小一些,而且這些芯片在這方面的速度並不是很快(對於MCU)... – 2014-11-23 19:49:59

相關問題