作者:hankf,Xilinx Employee
修改Xilinx的定時器裸核應用程序(baremetal, standalone)例子xttcps_intr_example.c,可以測量中斷響應延遲。
然后在單板上運行,以及在XEN的虛擬機上運行,可以分別測量這兩種情況下的中斷響應延遲。
單板的中斷延遲
首先看單板上運行的中斷延遲的測試數據,也是沒有無xen的中斷延遲的測試數據。
TTC device id: 1
TTC device BaseAddress: 0xFF110004
TTC device InputClockHz: 0x5F5E100 = 100000000
Global timer frequency: 0x5F5B9F0 = 99990000
Ticker timer Interval: 62500
Ticker timer Prescaler: 3
... ...
No.1 TickHandler, Counter1: 6, Counter2: 7, average first counter value: 6
No.1 TickHandler, Goblal timer1: 114476857, 2: 114476887, 2-1: 30
... ...
No.20 TickHandler, Counter1: 2, Counter2: 4, average first counter value: 2
No.20 TickHandler, Goblal timer1: 139730363, 2: 139730395, 2-1: 32
No.21 TickHandler, Counter1: 2, Counter2: 4, average first counter value: 2
No.21 TickHandler, Goblal timer1: 140974466, 2: 140974497, 2-1: 31
TTC定時器Prescaler是3,代表縮放倍數是16。
第一次中斷響應時TTC的計數器值為6,166=96個TTC時鐘周期,相當于960ns。
后續中斷響應時TTC的計數器值為2,216=32個TTC時鐘周期,相當于320ns。
可以看到,MPSoC的中斷響應延遲非常短。
xen虛擬機中斷延遲
再看xen的虛擬機下,中斷延遲的測試數據。
TTC device id: 1
TTC device BaseAddress: 0xFF110004
TTC device InputClockHz: 0x5F5E100 = 100000000
Global timer frequency: 0x5F5B9F0 = 99990000
Ticker timer Interval: 62500
Ticker timer Prescaler: 3
... ...
No.1 TickHandler, Counter1: 20, Counter2: 22, average first counter value: 20
... ...
No.20 TickHandler, Counter1: 11, Counter2: 13, average first counter value: 12
No.20 TickHandler, Goblal timer1: 11368782108, 2: 11368782109, 2-1: 1
No.21 TickHandler, Counter1: 13, Counter2: 15, average first counter value: 12
No.21 TickHandler, Goblal timer1: 11370077692, 2: 11370077693, 2-1: 1
同樣,Prescaler是3,代表縮放倍數是16。
第一次中斷響應時TTC的計數器值為20,16*20=320個TTC時鐘周期,相當于3200ns。
后續中斷響應時TTC的計數器值為12,12*16=192個TTC時鐘周期,相當于1920ns。
xen虛擬機會最多會造成中斷響應時間增加2240ns。即使這樣,在本次測試中,在xen的虛擬機中,MPSoC的中斷響應時間最大是3200ns,能滿足絕大多數應用的要求。
結論
在xen的虛擬機中,MPSoC的中斷響應時間最大是3200ns,能滿足絕大多數應用的要求。
編輯:hfy
-
Xilinx
+關注
關注
71文章
2168瀏覽量
121660 -
定時器
+關注
關注
23文章
3251瀏覽量
114996
發布評論請先 登錄
相關推薦
評論