IP Library › Granted Patent US 12,307,269
Granted Patent B2
US 12,307,269 · App. 17/527,923 · Granted May 20, 2025

Method and device for process data sharing

Inventors: Ranjit Desai (Cupertino, CA); Michael J. Rockwell (Palo Alto, CA); Venu Madhav Duggineni (San Jose, CA); Robert Seon Wai Lee (San Jose, CA)
Assignee: APPLE INC.
G06F9/451G06F3/011G06F3/013G06F3/038G06F9/4881G06F9/5038G06V40/166G06V40/23
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,307,269
App. No.
17/527,923
Granted
May 20, 2025
Kind
B2
Abstract

In one implementation, a method of accessing shared data among processes is performed by a device including processor(s), non-transitory memory, and an image acquisition interface. The method includes obtaining image data acquired by the image acquisition interface. The method further includes determining pose data based at least in part on inertial measurement unit (IMU) information measured by the image acquisition interface. The method also includes determining a gaze estimation based at least in part on eye tracking information obtained through the image acquisition interface. Based at least in part on characteristics of processes, the method includes determining an arrangement for the image data, the pose data, and the gaze estimation. The method additionally includes determining an access schedule for the processes based at least in part on at least one of: the arrangement, the characteristics of the processes, and hardware timing parameters associated with the device.

Claims (44)

1. A method comprising:

at a device with one or more processors and non-transitory memory:

determining a deterministic access schedule for a plurality of processes to access a data arrangement, including:

determining, for a first process of the plurality of processes, inputs for the first process and a time parameter for obtaining the inputs from at least one of hardware or a second process of the plurality of processes;

calculating a waking time for the first process based at least in part on the time parameter; and

waking up the first process based on the calculated waking time.

2. The method of claim 1 , further comprising, accessing the data arrangement according to the access schedule.

3. The method of claim 2 , wherein accessing the data arrangement according to the access schedule includes:

determining an expected execution time for the first process based on the deterministic access schedule; and

waking up the first process to access the data arrangement at the expected execution time.

4. The method of claim 2 , further comprising:

generating a scene for display based on accessing the data arrangement according to the deterministic access schedule; and

displaying the scene using data obtained from the data arrangement according to the deterministic access schedule, wherein the data includes at least one of image data, pose data, or gaze estimation data.

5. The method of claim 1 , wherein determining the deterministic access schedule for the plurality of processes further includes calculating a waking time for each of the plurality of processes other than the first process.

6. The method of claim 1 , wherein determining the time parameter includes determining a time the inputs are ready to be fetched.

7. The method of claim 6 , wherein determining the time the inputs are ready to be fetched includes determining at least one of a hardware operation duration of the hardware or a process execution time of the second process.

8. The method of claim 6 , wherein determining the time parameter includes adding a reserved communication latency amount of time to the time the inputs are ready to be fetched.

9. The method of claim 1 , wherein determining the deterministic access schedule is based on the data arrangement.

10. The method of claim 1 , further comprising:

obtaining first data from a first sensor and second data from a second sensor; and

determining the data arrangement for the first data and the second data based at least in part of a plurality of characteristics of the plurality of processes.

11. A device comprising:

non-transitory memory; and

one or more processors to determine a deterministic access schedule for a plurality of processes to access a data arrangement by:

determining, for a first process of the plurality of processes, inputs for the first process and a time parameter for obtaining the inputs from at least one of hardware or a second process of the plurality of processes;

calculating a waking time for the first process based at least in part on the time parameter; and

waking up the first process based on the calculated waking time.

12. The device of claim 11 , wherein the one or more processors are further to access the data arrangement according to the deterministic access schedule.

13. The device of claim 12 , wherein the one or more processors are to access the data arrangement according to the deterministic access schedule by:

determining an expected execution time for the first process based on the deterministic access schedule; and

waking up the first process to access the data arrangement at the expected execution time.

14. The device of claim 12 , wherein the one or more processors are further to:

generate a scene for display based on accessing the data arrangement according to the deterministic access schedule; and

display the scene using data obtained from the data arrangement according to the deterministic access schedule, wherein the data includes at least one of image data, pose data, or gaze estimation data.

15. The device of claim 11 , wherein the one or more processors are to determine the deterministic access schedule for the plurality of processes by calculating a waking time for each of the plurality of processes.

16. The device of claim 11 , wherein the one or more processors are to determine the time parameter by determining a time the inputs are ready to be fetched.

17. The device of claim 16 , wherein the one or more processors are to determine the time the inputs are ready to be fetched by determining at least one of a hardware operation duration of the hardware or a process execution time of the second process.

18. The device of claim 16 , wherein the one or more processors are to determine the time parameter by adding a reserved communication latency amount of time to the time the inputs are ready to be fetched.

19. The device of claim 11 , wherein the one or more processors are to determine the deterministic access schedule based on the data arrangement.

20. A non-transitory computer-readable medium having instructions encoded thereon which, when executed by one or more processors of a device cause the device to:

determine a deterministic access schedule for a plurality of processes to access a data arrangement by:

determining, for a first process of the plurality of processes, inputs for the first process and a time parameter for obtaining the inputs from at least one of hardware or a second process of the plurality of processes;

calculating a waking time for the first process based at least in part on the time parameter; and

waking up the first process based on the calculated waking time.

Continuity (3)
Continuation 16548065 · Aug 22, 2019
Provisional Application 62721685 · Aug 23, 2018
Related Publication 20220075633A1 · Mar 10, 2022
References Cited (23)
US 20030217246A1 · Kubota et al. · 2003 [cited by applicant]
US 20060047925A1 · Perry · 2006 [cited by applicant]
US 20120079494A1 · Sandstrom · 2012 [cited by applicant]
US 20150310665A1 · Michail et al. · 2015 [cited by applicant]
US 20150370602A1 · Chandhoke · 2015 [cited by examiner]
US 20160055680A1 · Kim et al. · 2016 [cited by applicant]
US 20170150137A1 · Kosmiskas et al. · 2017 [cited by applicant]
CN 102902807A · 2013 [cited by applicant]
EP 2175375A1 · 2010 [cited by applicant]
JP H07306954A · 1995 [cited by applicant]
JP 2011527788A · 2011 [cited by applicant]
JP 2012208558A · 2012 [cited by applicant]
JP 2015095045A · 2015 [cited by applicant]
WO 2016205145A1 · 2016 [cited by applicant]
WO 2017098644A1 · 2017 [cited by applicant]
WO 2017203778A1 · 2017 [cited by applicant]
WO 2018086295A1 · 2018 [cited by applicant]
First Examination Report for corresponding Indian Application No. 202017057542 dated Nov. 3, 2022. [cited by applicant]
Office Action for corresponding Japanese Application No. 2021-510017 drafted Apr. 1, 2022 (25 pages). [cited by applicant]
Chinese First Office Action dated Jan. 25, 2024, Chinese Patent Application No. 201980054899.6, pp. 1-17. [cited by applicant]
Japanese Office Action dated Feb. 14, 2024, Japanese Patent Application No. 2022-197322, pp. 1-14. [cited by applicant]
Shin Kang G: “Principles of Real-Time Embedded Systems”, Oct. 10, 2008, URL: https://web.archive.org/web/20150701125645if Jhttp:// www.eecs.umich.edu:80/courses/eecs571/lectures/lecture4_schedulel.pdf. 27 pages. [cited by applicant]
Extended European Search Report for corresponding EP Appl. No. 24189824.6 dated Oct. 31, 2024. [cited by applicant]