Patents by Inventor Andy Sung

Andy Sung 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: 12645465
    Abstract: A processing system stores a boot image for a critical domain of a system-on-a-chip (SOC) at a bank of a static random-access memory (SRAM) that is shared by the critical domain and a non-critical domain and that is powered independently from the non-critical domain. The SOC includes a secure processor that loads the boot image to the bank of the SRAM and then blocks subsequent write access to the bank. Because the critical domain is powered independently from the non-critical domain, the bank of the SRAM retains the boot image without regard to the power state of the non-critical domain. In addition, the critical domain implements a boot process that is decoupled from a CPU at the non-critical domain, ensuring that the critical domain can initiate a re-boot sequence even if the non-critical domain is not powered.
    Type: Grant
    Filed: September 29, 2023
    Date of Patent: June 2, 2026
    Assignees: ATI TECHNOLOGIES ULC, ADVANCED MICRO DEVICES, INC.
    Inventors: Andy Sung, Carl Kittredge Wakeland, Gregory B. Shippen, Kaushal Amolak Sanghai, Uma Sankara Rao Balla, Balatripura S. Chavali
  • Publication number: 20250307052
    Abstract: A processing system includes a memory circuit that includes a first portion that stores critical data and a second portion that stores non-critical data. An arbiter circuit transmits first memory requests and corresponding data between a first processing circuit that performs critical processes and the memory circuit. The arbiter circuit also transmits second memory requests and corresponding data between a second processing circuit that performs non-critical processes and the memory circuit. The arbiter circuit prevents unauthorized memory requests between the first and second processing circuits and the memory circuit, establishing freedom from interference between the critical and non-critical processes. The freedom from interference prevents some errors from propagating from the non-critical processes to the critical processes, enabling a critical process to continue functioning after a non-critical process fails.
    Type: Application
    Filed: March 26, 2024
    Publication date: October 2, 2025
    Inventors: Uma Sankara Rao Balla, Carl Kittredge Wakeland, Kaushal Amolak Sanghai, Balatripura S. Chavali, Andy Sung
  • Publication number: 20250199860
    Abstract: Devices and methods for allocating components of a safety critical system are provided. The processing device comprises resources including memory, a host processor and a plurality of processors connected to the resources via a shared pathway of a network and configured to execute an application based on instructions from the host processor. Each of the plurality of processors is assigned to one of a plurality of criticality domain levels and isolated pathways are created, via the shared pathway, between the plurality of processors and the plurality of resources based on which of the processors are assigned to one or more of the plurality of criticality domain levels to access one or more of the plurality of resources. The application is executed using the network. The isolated pathways are, for example, created by disabling one or more switches. Alternatively, the isolated pathways are created via programmable logic.
    Type: Application
    Filed: December 18, 2023
    Publication date: June 19, 2025
    Applicants: Advanced Micro Devices, Inc., ATI Technologies ULC
    Inventors: Kaushal A. Sanghai, Carl K. Wakeland, UmaSankara Rao Balla, Andy Sung, Balatripura S. Chavali
  • Publication number: 20250157561
    Abstract: A system on a chip (SOC) includes a critical domain including components configured to perform critical operations and a non-critical domain including components configured to perform non-critical operations. To help perform such operations, the critical domain and non-critical domain share a static random-access memory (SRAM) that includes a first subset of memory banks assigned to the critical domain and a second subset of memory banks assigned to the non-critical domain. The SOC further includes a memory scrubbing circuitry configured to sequentially check each memory bank of the SRAM for errors. To this end, the memory scrubbing circuitry is configured to check a respective memory bank for errors each time an event trigger occurs by implementing one or more error correction codes.
    Type: Application
    Filed: November 13, 2023
    Publication date: May 15, 2025
    Inventors: Uma Sankara Rao Balla, Carl Kittredge Wakeland, Kaushal Amolak Sanghai, Balatripura S. Chavali, Andy Sung
  • Publication number: 20250110750
    Abstract: A processing system stores a boot image for a critical domain of a system-on-a-chip (SOC) at a bank of a static random-access memory (SRAM) that is shared by the critical domain and a non-critical domain and that is powered independently from the non-critical domain. The SOC includes a secure processor that loads the boot image to the bank of the SRAM and then blocks subsequent write access to the bank. Because the critical domain is powered independently from the non-critical domain, the bank of the SRAM retains the boot image without regard to the power state of the non-critical domain. In addition, the critical domain implements a boot process that is decoupled from a CPU at the non-critical domain, ensuring that the critical domain can initiate a re-boot sequence even if the non-critical domain is not powered.
    Type: Application
    Filed: September 29, 2023
    Publication date: April 3, 2025
    Inventors: Andy Sung, Carl Kittredge Wakeland, Gregory B. Shippen, Kaushal Amolak Sanghai, Uma Sankara Rao Balla, Balatripura S. Chavali
  • Patent number: 12169729
    Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.
    Type: Grant
    Filed: November 2, 2021
    Date of Patent: December 17, 2024
    Assignee: ATI Technologies ULC
    Inventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu
  • Patent number: 11768696
    Abstract: A technique for managing access to a micro engine, the method comprising: determining that a virtual function “VF”) is to be given access to direct communication with a micro engine; in response to the determining, configuring the micro engine to accept direct communication from the VF; monitoring for unpermitted communication; and after a time period has expired, configuring the micro engine to no longer accept direct communication from the VF.
    Type: Grant
    Filed: December 14, 2020
    Date of Patent: September 26, 2023
    Assignee: ATI Technologies ULC
    Inventors: Yinan Jiang, Kamraan Nasim, Dezhi Ming, Ahmed M. Abdelkhalek, Dmytro Chenchykov, Andy Sung
  • Publication number: 20220188139
    Abstract: A technique for managing access to a micro engine, the method comprising: determining that a virtual function “VF”) is to be given access to direct communication with a micro engine; in response to the determining, configuring the micro engine to accept direct communication from the VF; monitoring for unpermitted communication; and after a time period has expired, configuring the micro engine to no longer accept direct communication from the VF.
    Type: Application
    Filed: December 14, 2020
    Publication date: June 16, 2022
    Applicant: ATI Technologies ULC
    Inventors: Yinan Jiang, Kamraan Nasim, Dezhi Ming, Ahmed M. Abdelkhalek, Dmytro Chenchykov, Andy Sung
  • Publication number: 20220159286
    Abstract: Systems, apparatuses, and methods for reducing latency when consuming an encoded video bitstream in real-time are disclosed. A video encoder encodes a video bitstream and writes chunks of the encoded bitstream to a bitstream buffer. Prior to the encoder completing the encoding of an entire frame, or an entire slice of a frame, a consumer module consumes encoded chunks of the bitstream. In one implementation, to enable pipelining of the consumption with the encoding, the encoder updates a buffer write pointer with an indication of the amount of data that has been written to the bitstream buffer. The consumer module retrieves encoded data from the bitstream buffer up to the location indicated by the buffer write pointer. In this way, the consumer module is able to access and consume encoded video data prior to the encoder finishing encoding an entire frame or an entire slice of the frame.
    Type: Application
    Filed: January 28, 2022
    Publication date: May 19, 2022
    Inventors: Ahmed M. Abdelkhalek, Edward A. Harold, Andy Sung, Stephen Ho, Lei Zhang, Ihab Amer, Gabor Sines, Zhiqi Hao, Yang Liu, Baochun Li, Kai Sun
  • Publication number: 20220058048
    Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.
    Type: Application
    Filed: November 2, 2021
    Publication date: February 24, 2022
    Applicant: ATI Technologies ULC
    Inventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu
  • Patent number: 11252429
    Abstract: Systems, apparatuses, and methods for reducing latency when consuming an encoded video bitstream in real-time are disclosed. A video encoder encodes a video bitstream and writes chunks of the encoded bitstream to a bitstream buffer. Prior to the encoder completing the encoding of an entire frame, or an entire slice of a frame, a consumer module consumes encoded chunks of the bitstream. In one implementation, to enable pipelining of the consumption with the encoding, the encoder updates a buffer write pointer with an indication of the amount of data that has been written to the bitstream buffer. The consumer module retrieves encoded data from the bitstream buffer up to the location indicated by the buffer write pointer. In this way, the consumer module is able to access and consume encoded video data prior to the encoder finishing encoding an entire frame or an entire slice of the frame.
    Type: Grant
    Filed: April 27, 2018
    Date of Patent: February 15, 2022
    Assignee: ATI Technologies ULC
    Inventors: Ahmed M. Abdelkhalek, Edward A. Harold, Andy Sung, Stephen Ho, Lei Zhang, Ihab Amer, Gabor Sines, Zhiqi Hao, Yang Liu, Baochun Li, Kai Sun
  • Patent number: 11194614
    Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.
    Type: Grant
    Filed: October 2, 2019
    Date of Patent: December 7, 2021
    Assignee: ATI Technologies ULC
    Inventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu
  • Patent number: 11182186
    Abstract: A technique for recovering from a hang in a virtualized accelerated processing device (“APD”) is provided. In the virtualization scheme, different virtual machines are assigned different “time-slices” in which to use the APD. When a time-slice expires, the APD stops operations for a current VM and starts operations for another VM. To stop operations on the APD, a virtualization scheduler sends a request to idle the APD. The APD responds by completing work and idling. If one or more portions of the APD do not complete this idling process before a timeout expires, then a hang occurs. In response to the hang, the virtualization scheduler informs the hypervisor that a hang has occurred. The hypervisor performs a function level reset on the APD and informs the VM that the hang has occurred. The VM responds by stopping command issue to the APD and re-initializing the APD for the function.
    Type: Grant
    Filed: July 28, 2017
    Date of Patent: November 23, 2021
    Assignees: Advanced Micro Devices, Inc., ATI Technologies ULC
    Inventors: Anthony Asaro, Yinan Jiang, Andy Sung, Ahmed M. Abdelkhalek, Xiaowei Wang, Sidney D. Fortes
  • Publication number: 20200034183
    Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.
    Type: Application
    Filed: October 2, 2019
    Publication date: January 30, 2020
    Applicant: ATI Technologies ULC
    Inventors: Yinan JIANG, Ahmed M. ABDELKHALEK, Guopei QIAO, Andy SUNG, Haibo LIU, Dezhi MING, Zhidong XU
  • Publication number: 20190335189
    Abstract: Systems, apparatuses, and methods for reducing latency when consuming an encoded video bitstream in real-time are disclosed. A video encoder encodes a video bitstream and writes chunks of the encoded bitstream to a bitstream buffer. Prior to the encoder completing the encoding of an entire frame, or an entire slice of a frame, a consumer module consumes encoded chunks of the bitstream. In one implementation, to enable pipelining of the consumption with the encoding, the encoder updates a buffer write pointer with an indication of the amount of data that has been written to the bitstream buffer. The consumer module retrieves encoded data from the bitstream buffer up to the location indicated by the buffer write pointer. In this way, the consumer module is able to access and consume encoded video data prior to the encoder finishing encoding an entire frame or an entire slice of the frame.
    Type: Application
    Filed: April 27, 2018
    Publication date: October 31, 2019
    Inventors: Ahmed M. Abdelkhalek, Edward A. Harold, Andy Sung, Stephen Ho, Lei Zhang, Ihab Amer, Gabor Sines, Zhiqi Hao, Yang Liu, Baochun Li, Kai Sun
  • Patent number: 10459751
    Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.
    Type: Grant
    Filed: June 30, 2017
    Date of Patent: October 29, 2019
    Assignee: ATI TECHNOLOGIES ULC.
    Inventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu
  • Patent number: 10452554
    Abstract: Systems, apparatuses and methods of adaptively controlling a cache operating voltage are provided that comprise receiving indications of a plurality of cache usage amounts. Each cache usage amount corresponds to an amount of data to be accessed in a cache by one of a plurality of portions of a data processing application. The plurality of cache usage amounts are determining based on the received indications of the plurality of cache usage amounts. A voltage level applied to the cache is adaptively controlled based on one or more of the plurality of determined cache usage amounts. Memory access to the cache is controlled to be directed to a non-failing portion of the cache at the applied voltage level.
    Type: Grant
    Filed: April 8, 2016
    Date of Patent: October 22, 2019
    Assignees: ADVANCED MICRO DEVICES, INC., ATI TECHNOLOGIES ULC
    Inventors: Ihab Amer, Khaled Mammou, Haibo Liu, Edward Harold, Fabio Gulino, Samuel Naffziger, Gabor Sines, Lawrence A. Bair, Andy Sung, Lei Zhang
  • Patent number: 10250419
    Abstract: A method and system is provided for allowing signals across electrical domains. The method includes applying a clock signal (of at least 1 GHz) to an electronic element in a location having first electrical properties. Data is output from the first electronic element; and received at a second electronic element located in a location having second electrical properties. The first and second electrical properties are different by either voltage and clock frequency.
    Type: Grant
    Filed: July 17, 2017
    Date of Patent: April 2, 2019
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Andy Sung, Leon Lai, Daniel Wang
  • Publication number: 20190018699
    Abstract: A technique for recovering from a hang in a virtualized accelerated processing device (“APD”) is provided. In the virtualization scheme, different virtual machines are assigned different “time-slices” in which to use the APD. When a time-slice expires, the APD stops operations for a current VM and starts operations for another VM. To stop operations on the APD, a virtualization scheduler sends a request to idle the APD. The APD responds by completing work and idling. If one or more portions of the APD do not complete this idling process before a timeout expires, then a hang occurs. In response to the hang, the virtualization scheduler informs the hypervisor that a hang has occurred. The hypervisor performs a function level reset on the APD and informs the VM that the hang has occurred. The VM responds by stopping command issue to the APD and re-initializing the APD for the function.
    Type: Application
    Filed: July 28, 2017
    Publication date: January 17, 2019
    Applicants: Advanced Micro Devices, Inc., ATI Technologies ULC
    Inventors: Anthony Asaro, Yinan Jiang, Andy Sung, Ahmed M. Abdelkhalek, Xiaowei Wang, Sidney D. Fortes
  • Publication number: 20190004842
    Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.
    Type: Application
    Filed: June 30, 2017
    Publication date: January 3, 2019
    Applicant: ATI Technologies ULC
    Inventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu