Patents by Inventor Shantonu Sen

Shantonu Sen has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10931451
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a ROM (read only memory) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Grant
    Filed: November 16, 2018
    Date of Patent: February 23, 2021
    Assignee: Apple Inc.
    Inventors: Dallas Blake De Atley, Joshua De Cesare, Michael Smith, Matthew Reda, Shantonu Sen, John Andrew Wright
  • Patent number: 10437639
    Abstract: In one embodiment, an application programming interface (API) is defined that enables a thread scheduler to communicate thread information to the CPU performance controller when dispatching a thread to a processor or processor core. When dispatching a thread, the scheduler may communicate thread information including thread state information, a general “importance” of the thread as defined by a priority level and/or quality of service (QoS) classification, a measurement of the scheduler dispatch latency for the thread, or architectural information regarding the instructions within the thread, such as whether the thread is contains 64-bit or 32-bit instructions. The performance controller can use the information provided by the scheduler to make performance control decisions for the processor cores within the system.
    Type: Grant
    Filed: October 17, 2017
    Date of Patent: October 8, 2019
    Assignee: Apple Inc.
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, John Dorsey, Bryan Hinch, Cyril De La Cropte De Chanterac, Oliver Cozette
  • Publication number: 20190182043
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a ROM (read only memory) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Application
    Filed: November 16, 2018
    Publication date: June 13, 2019
    Inventors: Dallas Blake DE ATLEY, Joshua DE CESARE, Michael SMITH, Matthew REDA, Shantonu SEN, John Andrew WRIGHT
  • Patent number: 10310891
    Abstract: Disclosed herein are systems, methods, and computer-readable media directed to scheduling threads in a multi-processing environment that can resolve a priority inversion. Each thread has a scheduling state and a context. A scheduling state can include attributes such as a processing priority, classification (background, fixed priority, real-time), a quantum, scheduler decay, and a list of threads that may be waiting on the thread to make progress. A thread context can include registers, stack, other variables, and one or more mutex flags. A first thread can hold a resource with a mutex, the first thread having a low priority. A second thread having a scheduling state with a high priority can be waiting on the resource and may be blocked behind the mutex held by the first process. A scheduler can execute the context of the lower priority thread using the scheduler state of the second, higher priority thread. More than one thread can be waiting on the resource held by the first thread.
    Type: Grant
    Filed: September 30, 2015
    Date of Patent: June 4, 2019
    Assignee: Apple Inc.
    Inventors: Daniel A. Chimene, Daniel A. Steffen, James M Magee, Russell A. Blaine, Shantonu Sen
  • Publication number: 20190155656
    Abstract: Techniques for scheduling threads for execution in a data processing system are described herein. According to one embodiment, in response to a request for executing a thread, a scheduler of an operating system of the data processing system accesses a global run queue to identify a global run entry associated with the highest process priority. The global run queue includes multiple global run entries, each corresponding to one of a plurality of process priorities. A group run queue is identified based on the global run entry, where the group run queue includes multiple threads associated with one of the processes. The scheduler dispatches one of the threads that has the highest thread priority amongst the threads in the group run queue to one of the processor cores of the data processing system for execution.
    Type: Application
    Filed: November 19, 2018
    Publication date: May 23, 2019
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, James M. Magee
  • Patent number: 10140157
    Abstract: Techniques for scheduling threads for execution in a data processing system are described herein. According to one embodiment, in response to a request for executing a thread, a scheduler of an operating system of the data processing system accesses a global run queue to identify a global run entry associated with the highest process priority. The global run queue includes multiple global run entries, each corresponding to one of a plurality of process priorities. A group run queue is identified based on the global run entry, where the group run queue includes multiple threads associated with one of the processes. The scheduler dispatches one of the threads that has the highest thread priority amongst the threads in the group run queue to one of the processor cores of the data processing system for execution.
    Type: Grant
    Filed: May 29, 2014
    Date of Patent: November 27, 2018
    Assignee: Apple Inc.
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, James M. Magee
  • Patent number: 10142104
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a ROM (read only memory) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Grant
    Filed: June 9, 2017
    Date of Patent: November 27, 2018
    Assignee: Apple Inc.
    Inventors: Dallas Blake De Atley, Joshua De Cesare, Michael Smith, Matthew Reda, Shantonu Sen, John Andrew Wright
  • Publication number: 20180088985
    Abstract: In one embodiment, an application programming interface (API) is defined that enables a thread scheduler to communicate thread information to the CPU performance controller when dispatching a thread to a processor or processor core. When dispatching a thread, the scheduler may communicate thread information including thread state information, a general “importance” of the thread as defined by a priority level and/or quality of service (QoS) classification, a measurement of the scheduler dispatch latency for the thread, or architectural information regarding the instructions within the thread, such as whether the thread is contains 64-bit or 32-bit instructions. The performance controller can use the information provided by the scheduler to make performance control decisions for the processor cores within the system.
    Type: Application
    Filed: October 17, 2017
    Publication date: March 29, 2018
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, John Dorsey, Bryan Hinch, Cyril De La Cropte De Chanterac, Oliver Cozette
  • Publication number: 20170346631
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a ROM (read only memory) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Application
    Filed: June 9, 2017
    Publication date: November 30, 2017
    Inventors: Dallas Blake DE ATLEY, Joshua DE CESARE, Michael SMITH, Matthew REDA, Shantonu SEN, John Andrew WRIGHT
  • Patent number: 9830187
    Abstract: In one embodiment, an application programming interface (API) is defined that enables a thread scheduler to communicate thread information to the CPU performance controller when dispatching a thread to a processor or processor core. When dispatching a thread, the scheduler may communicate thread information including thread state information, a general “importance” of the thread as defined by a priority level and/or quality of service (QoS) classification, a measurement of the scheduler dispatch latency for the thread, or architectural information regarding the instructions within the thread, such as whether the thread is contains 64-bit or 32-bit instructions. The performance controller can use the information provided by the scheduler to make performance control decisions for the processor cores within the system.
    Type: Grant
    Filed: June 5, 2015
    Date of Patent: November 28, 2017
    Assignee: Apple Inc.
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, John Dorsey, Bryan Hinch, Cyril De La Cropte De Chanterac, Olivier Cozelle
  • Patent number: 9680648
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a read only memory (ROM) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Grant
    Filed: March 22, 2016
    Date of Patent: June 13, 2017
    Assignee: Apple Inc.
    Inventors: Dallas Blake De Atley, Joshua De Cesare, Michael Smith, Matthew Reda, Shantonu Sen, John Andrew Wright
  • Patent number: 9665398
    Abstract: A method and an apparatus for activity based execution scheduling are described. Activities may be tracked among a plurality of threads belonging to a plurality of processes running in one or more processors. Each thread may be associated with one of the activities. Each activity may be associated with one or more of the threads in one or more of the processes for a data processing task. The activities may be ordered by a priority order. A group of the threads may be identified to be associated with a particular one of the activities with highest priority based on the priority order. A thread may be selected from the identified threads for next scheduled execution in the processors.
    Type: Grant
    Filed: December 19, 2014
    Date of Patent: May 30, 2017
    Assignee: Apple Inc.
    Inventors: James Michael Magee, Russell A. Blaine, Daniel Allen Chimene, Vishal Patel, Shantonu Sen
  • Publication number: 20160357600
    Abstract: Disclosed herein are systems, methods, and computer-readable media directed to scheduling threads in a multi-processing environment that can resolve a priority inversion. Each thread has a scheduling state and a context. A scheduling state can include attributes such as a processing priority, classification (background, fixed priority, real-time), a quantum, scheduler decay, and a list of threads that may be waiting on the thread to make progress. A thread context can include registers, stack, other variables, and one or more mutex flags. A first thread can hold a resource with a mutex, the first thread having a low priority. A second thread having a scheduling state with a high priority can be waiting on the resource and may be blocked behind the mutex held by the first process. A scheduler can execute the context of the lower priority thread using the scheduler state of the second, higher priority thread. More than one thread can be waiting on the resource held by the first thread.
    Type: Application
    Filed: September 30, 2015
    Publication date: December 8, 2016
    Inventors: Daniel A. CHIMENE, Daniel A. STEFFEN, James M. MAGEE, Russell A. BLAINE, Shantonu SEN
  • Publication number: 20160277186
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a read only memory (ROM) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Application
    Filed: March 22, 2016
    Publication date: September 22, 2016
    Inventors: Dallas Blake DE ATLEY, Joshua DE CESARE, Michael SMITH, Matthew REDA, Shantonu SEN, John Andrew WRIGHT
  • Patent number: 9348732
    Abstract: A method and apparatus of a device that captures a stackshot of an executing process is described. In an exemplary embodiment, the device detects an interrupt of the process occurring during the execution of the process, where the process execution can be in a kernel space and user space, and the interrupt occurs during the user space. The device further determines whether to capture a stackshot during the interrupt using a penalty function. If the stackshot is to be captured, the device captures the stackshot and saves the stackshot.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: May 24, 2016
    Assignee: Apple Inc.
    Inventors: Kevin James Van Vechten, Shantonu Sen, Craig M. Federighi, Guy L. Tribble
  • Patent number: 9336394
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a read only memory (ROM) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Grant
    Filed: August 5, 2014
    Date of Patent: May 10, 2016
    Assignee: Apple Inc.
    Inventors: Dallas Blake de Atley, Joshua de Cesare, Michael Smith, Matthew Reda, Shantonu Sen, John Andrew Wright
  • Publication number: 20150347192
    Abstract: Techniques for scheduling threads for execution in a data processing system are described herein. According to one embodiment, in response to a request for executing a thread, a scheduler of an operating system of the data processing system accesses a global run queue to identify a global run entry associated with the highest process priority. The global run queue includes multiple global run entries, each corresponding to one of a plurality of process priorities. A group run queue is identified based on the global run entry, where the group run queue includes multiple threads associated with one of the processes. The scheduler dispatches one of the threads that has the highest thread priority amongst the threads in the group run queue to one of the processor cores of the data processing system for execution.
    Type: Application
    Filed: May 29, 2014
    Publication date: December 3, 2015
    Applicant: Apple Inc.
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, James M. Magee
  • Publication number: 20150347178
    Abstract: A method and an apparatus for activity based execution scheduling are described. Activities may be tracked among a plurality of threads belonging to a plurality of processes running in one or more processors. Each thread may be associated with one of the activities. Each activity may be associated with one or more of the threads in one or more of the processes for a data processing task. The activities may be ordered by a priority order. A group of the threads may be identified to be associated with a particular one of the activities with highest priority based on the priority order. A thread may be selected from the identified threads for next scheduled execution in the processors.
    Type: Application
    Filed: December 19, 2014
    Publication date: December 3, 2015
    Inventors: James Michael Magee, Russell A. Blaine, Daniel Allen Chimene, Vishal Patel, Shantonu Sen
  • Patent number: 9158661
    Abstract: Methods, machine-readable tangible storage media, and data processing systems that enable a debug host device to acquire memory dump information from a debug target device after the target device suffers an unrecoverable system malfunction are disclosed. In one embodiment, data in the volatile memory on a debug target device is accessed via a hardware integrated debug framework, which is also used to access data on a nonvolatile electronically erasable semiconductor memory of a debug target device, and one or more registers of one or more processors on a debug target device, and a core dump is created on the debug host device.
    Type: Grant
    Filed: September 14, 2012
    Date of Patent: October 13, 2015
    Assignee: Apple Inc.
    Inventors: Russell A. Blaine, Matthew Byom, Kevin Rathbun Walker, Daniel S. Heller, Shantonu Sen
  • Publication number: 20150033030
    Abstract: A method and an apparatus for establishing an operating environment by certifying a code image received from a host over a communication link are described. The code image may be digitally signed through a central authority server. Certification of the code image may be determined by a fingerprint embedded within a secure storage area such as a read only memory (ROM) of the portable device based on a public key certification process. A certified code image may be assigned a hash signature to be stored in a storage of the portable device. An operating environment of the portable device may be established after executing the certified code.
    Type: Application
    Filed: August 5, 2014
    Publication date: January 29, 2015
    Inventors: Dallas Blake de ATLEY, Joshua de CESARE, Michael SMITH, Matthew REDA, Shantonu SEN, John Andrew WRIGHT