US 10,891,146 B2
Access control and code scheduling
Milosch Meriac, Cambridge (GB); Hugo John Martin Vincent, Cambridge (GB); and James Crosby, Ely (GB)
Assigned to ARM IP Limited, Cambridge (GB)
Appl. No. 15/304,302
Filed by ARM IP LIMITED, Cambridge (GB)
PCT Filed Apr. 20, 2015, PCT No. PCT/GB2015/051175
§ 371(c)(1), (2) Date Oct. 14, 2016,
PCT Pub. No. WO2015/166211, PCT Pub. Date Nov. 5, 2015.
Claims priority of application No. 1407409.0 (GB), filed on Apr. 28, 2014.
Prior Publication US 2017/0039085 A1, Feb. 9, 2017
Int. Cl. G06F 9/455 (2018.01); G06F 21/74 (2013.01); G06F 12/14 (2006.01); G06F 9/46 (2006.01); G06F 9/54 (2006.01); G06F 21/60 (2013.01)
CPC G06F 9/45558 (2013.01) [G06F 9/468 (2013.01); G06F 9/542 (2013.01); G06F 12/1441 (2013.01); G06F 21/602 (2013.01); G06F 21/74 (2013.01); G06F 2009/45587 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A method of processing data using a data processing apparatus having a plurality of privilege modes including a first privilege mode and a second privilege mode, said first privilege mode giving rights of access that are not available in said second privilege mode, said method comprising the steps of:
executing application code in said second privilege mode to generate a function call to hypervisor code to perform a secure function using said rights of access;
upon generation of said function call, executing hypervisor code in said first privilege mode to at least control execution of said secure function; and
executing scheduling code in said second privilege mode to control scheduling of execution of said application code in said second privilege mode by said data apparatus and executing scheduling code in said second privilege mode to control scheduling of execution of said hypervisor code in said first privilege mode by said data processing apparatus by determining, in the second privilege mode, which of a plurality of sections of said hypervisor code is to execute in the first privilege mode after a scheduling event,
wherein said hypervisor code calls delegated code executing in said second privilege mode as part of servicing said function call.