Patents by Inventor Yongkang Zhu

Yongkang Zhu 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).

  • Publication number: 20230259371
    Abstract: Dynamically overriding a function based on a capability set. A computer system reads a portion of an executable image file. The portion includes a first memory address corresponding to a first callee function implementation. The first memory address was inserted into the portion by a compiler toolchain. Based on extensible metadata included in the executable image file, and based on a capability set that is specific to the computer system, the computer system determines a second memory address corresponding to a second callee function implementation. Before execution of the portion, the computer system modifies the portion to replace the first memory address with the second memory address.
    Type: Application
    Filed: April 19, 2022
    Publication date: August 17, 2023
    Inventors: Pranav KANT, Joseph Norman BIALEK, Xiang FAN, YongKang ZHU, Gabriel Thomas Kodjo DOS REIS, Russell Bivens KELDORPH, Mehmet IYIGUN, Russell Charles HADLEY, Roy WILLIAMS, Kenneth Dean JOHNSON, Pedro Miguel SEQUEIRA DE JUSTO TEIXEIRA, Yevgeniy BAK
  • Patent number: 11720374
    Abstract: Dynamically overriding a function based on a capability set. A computer system reads a portion of an executable image file. The portion includes a first memory address corresponding to a first callee function implementation. The first memory address was inserted into the portion by a compiler toolchain. Based on extensible metadata included in the executable image file, and based on a capability set that is specific to the computer system, the computer system determines a second memory address corresponding to a second callee function implementation. Before execution of the portion, the computer system modifies the portion to replace the first memory address with the second memory address.
    Type: Grant
    Filed: April 19, 2022
    Date of Patent: August 8, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Pranav Kant, Joseph Norman Bialek, Xiang Fan, YongKang Zhu, Gabriel Thomas Kodjo Dos Reis, Russell Bivens Keldorph, Mehmet Iyigun, Russell Charles Hadley, Roy Williams, Kenneth Dean Johnson, Pedro Miguel Sequeira De Justo Teixeira, Yevgeniy Bak
  • Patent number: 11618168
    Abstract: Provided are dynamic region division and region passage identification methods and a cleaning robot. The dynamic region division method includes: acquiring environment information collected by a robot when working in a first region; determining whether the robot has completed a work task in the first region, when a presence of a passage entering a second region is determined based on the environment information; and complementing a boundary at the passage to block the passage, when the work task is not completed. According to the technical solution provided by the embodiment of the present application, the occurrence probability of repeated sweeping and miss sweeping is reduced, and the cleaning efficiency is high. In addition, the technical solution provided by the embodiment of the present application relies on the environment information collected during the work, rather than relying on historical map data, so that the environmental adaptability is high.
    Type: Grant
    Filed: January 2, 2020
    Date of Patent: April 4, 2023
    Assignee: ECOVACS ROBOTICS CO., LTD.
    Inventors: Qingxiang Song, Kaili Xu, Yongkang Zhu, Da Liu, Yibin Zhang, Junjie Shan, Jinju Tang
  • Patent number: 11403100
    Abstract: Using a common reference address when processing calls among a native ABI and a foreign ABI. Based on caller calling using a reference address, a lookup structure is used to determine whether the reference address is within a memory range storing native code (and that the callee is native) or a memory range not storing native code (and that the callee is foreign). Execution of the callee is initiated based on one of (i) when the caller is native and when the callee is foreign, calling the callee using the reference address within an emulator; (ii) when the caller is foreign and the callee is native, calling an entry thunk; (iii) when the caller is native and the callee is foreign, calling an exit thunk; or (iv) when the caller is native and the callee is native, directly calling the callee using the reference address.
    Type: Grant
    Filed: August 31, 2020
    Date of Patent: August 2, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Darek Josip Mihocka, Clarence Siu Yeen Dang, Pedro Miguel Sequeira De Justo Teixeira, Pavlo Lebedynskiy, James David Cleary, Jon Robert Berry, YongKang Zhu, Tiansheng Tan
  • Patent number: 11379195
    Abstract: During source code compilation to a first processor instruction set architecture (ISA), a compiler encounters a memory ordering constraint specified in the source code. The compiler generates binary emulation metadata that is usable during emulation of emitted machine code instructions of the first ISA, in order to enforce the memory ordering constraint within corresponding machine code instructions of a second ISA. An emulator utilizes this binary emulation metadata during emulation of a resulting executable image at a processor implementing the second ISA. When the emulator encounters a machine code instruction in the image that performs a memory operation, it identifies an instruction memory address corresponding to the instruction. The emulator determines whether the binary emulation metadata identifies the instruction memory address as being associated with a memory ordering constraint.
    Type: Grant
    Filed: December 3, 2020
    Date of Patent: July 5, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Henry Morgan, Ten Tzen, Christopher Martin McKinsey, YongKang Zhu, Terry Mahaffey, Pedro Miguel Sequeira de Justo Teixeira, Arun Upadhyaya Kishan, Youssef M. Barakat
  • Patent number: 11366666
    Abstract: Using a common reference address when processing calls among a native ABI and a foreign ABI. Based on caller calling using a reference address, a lookup structure is used to determine whether the reference address is within a memory range storing native code (and that the callee is native) or a memory range not storing native code (and that the callee is foreign). Execution of the callee is initiated based on one of (i) when the caller is native and when the callee is foreign, calling the callee using the reference address within an emulator; (ii) when the caller is foreign and the callee is native, calling an entry thunk; (iii) when the caller is native and the callee is foreign, calling an exit thunk; or (iv) when the caller is native and the callee is native, directly calling the callee using the reference address.
    Type: Grant
    Filed: August 31, 2020
    Date of Patent: June 21, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Darek Josip Mihocka, Clarence Siu Yeen Dang, Pedro Miguel Sequeira De Justo Teixeira, Pavlo Lebedynskiy, James David Cleary, Jon Robert Berry, YongKang Zhu, Tiansheng Tan
  • Publication number: 20220066780
    Abstract: Using a common reference address when processing calls among a native ABI and a foreign ABI. Based on caller calling using a reference address, a lookup structure is used to determine whether the reference address is within a memory range storing native code (and that the callee is native) or a memory range not storing native code (and that the callee is foreign). Execution of the callee is initiated based on one of (i) when the caller is native and when the callee is foreign, calling the callee using the reference address within an emulator; (ii) when the caller is foreign and the callee is native, calling an entry thunk; (iii) when the caller is native and the callee is foreign, calling an exit thunk; or (iv) when the caller is native and the callee is native, directly calling the callee using the reference address.
    Type: Application
    Filed: August 31, 2020
    Publication date: March 3, 2022
    Inventors: Darek Josip MIHOCKA, Clarence Siu Yeen DANG, Pedro Miguel SEQUEIRA DE JUSTO TEIXEIRA, Pavlo LEBEDYNSKIY, James David CLEARY, Jon Robert BERRY, YongKang ZHU, Tiansheng TAN
  • Patent number: 11042422
    Abstract: A hybrid binary executable under both native processes and compatibility (e.g., emulated) processes. When the hybrid binary is loaded by a native process, the process executes a native code stream contained in the binary directly on a processor. When the hybrid binary is loaded by a compatibility process, the process executes an emulation-compatible (EC) code stream directly on a processor. When executing in a compatibility process, the EC code stream can interact with a foreign code stream that executes in an emulator. The foreign code stream can be included in the hybrid binary itself, or can be external to the hybrid binary. The hybrid binary format supports folding of code between the native code stream and the EC code stream. The hybrid binary comprises a set of memory transformations which are applied to image data obtained from the binary when the hybrid binary executes under the compatibility process.
    Type: Grant
    Filed: August 31, 2020
    Date of Patent: June 22, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Pavlo Lebedynskiy, Pedro Miguel Sequeira De Justo Teixeira, Darek Josip Mihocka, Jon Robert Berry, Clarence Siu Yeen Dang, Tiansheng Tan, James David Cleary, Yongkang Zhu, Theodore Maxwell Thomas, Ben Niu, Russell Charles Hadley
  • Publication number: 20210089282
    Abstract: During source code compilation to a first processor instruction set architecture (ISA), a compiler encounters a memory ordering constraint specified in the source code. The compiler generates binary emulation metadata that is usable during emulation of emitted machine code instructions of the first ISA, in order to enforce the memory ordering constraint within corresponding machine code instructions of a second ISA. An emulator utilizes this binary emulation metadata during emulation of a resulting executable image at a processor implementing the second ISA. When the emulator encounters a machine code instruction in the image that performs a memory operation, it identifies an instruction memory address corresponding to the instruction. The emulator determines whether the binary emulation metadata identifies the instruction memory address as being associated with a memory ordering constraint.
    Type: Application
    Filed: December 3, 2020
    Publication date: March 25, 2021
    Inventors: Henry MORGAN, Ten TZEN, Christopher Martin MCKINSEY, YongKang ZHU, Terry MAHAFFEY, Pedro Miguel Sequeira de Justo TEIXEIRA, Arun Upadhyaya KISHAN, Youssef M. BARAKAT
  • Patent number: 10884720
    Abstract: During source code compilation to a first processor instruction set architecture (ISA), a compiler encounters a memory ordering constraint specified in the source code. The compiler generates binary emulation metadata that is usable during emulation of emitted machine code instructions of the first ISA, in order to enforce the memory ordering constraint within corresponding machine code instructions of a second ISA. An emulator utilizes this binary emulation metadata during emulation of a resulting executable image at a processor implementing the second ISA. When the emulator encounters a machine code instruction in the image that performs a memory operation, it identifies an instruction memory address corresponding to the instruction. The emulator determines whether the binary emulation metadata identifies the instruction memory address as being associated with a memory ordering constraint.
    Type: Grant
    Filed: October 4, 2018
    Date of Patent: January 5, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Henry Morgan, Ten Tzen, Christopher Martin McKinsey, YongKang Zhu, Terry Mahaffey, Pedro Miguel Sequeira de Justo Teixeira, Arun Upadhyaya Kishan, Youssef M. Barakat
  • Patent number: 10785367
    Abstract: The present disclosure relates to audio processing methods and terminal devices. One example method includes determining, by a terminal device, an actual uplink gain based on a position relationship between an acoustic source and a microphone of the terminal device, and processing, by the terminal device, an audio signal from the acoustic source based on the actual uplink gain.
    Type: Grant
    Filed: October 31, 2016
    Date of Patent: September 22, 2020
    Assignee: Huawei Technologies Co., Ltd.
    Inventor: Yongkang Zhu
  • Publication number: 20200215694
    Abstract: Provided are dynamic region division and region passage identification methods and a cleaning robot. The dynamic region division method includes: acquiring environment information collected by a robot when working in a first region; determining whether the robot has completed a work task in the first region, when a presence of a passage entering a second region is determined based on the environment information; and complementing a boundary at the passage to block the passage, when the work task is not completed. According to the technical solution provided by the embodiment of the present application, the occurrence probability of repeated sweeping and miss sweeping is reduced, and the cleaning efficiency is high. In addition, the technical solution provided by the embodiment of the present application relies on the environment information collected during the work, rather than relying on historical map data, so that the environmental adaptability is high.
    Type: Application
    Filed: January 2, 2020
    Publication date: July 9, 2020
    Applicant: ECOVACS ROBOTICS CO., LTD.
    Inventors: Qingxiang SONG, Kaili XU, Yongkang ZHU, Da LIU, Yibin ZHANG, Junjie SHAN, Jinju TANG
  • Publication number: 20200110587
    Abstract: During source code compilation to a first processor instruction set architecture (ISA), a compiler encounters a memory ordering constraint specified in the source code. The compiler generates binary emulation metadata that is usable during emulation of emitted machine code instructions of the first ISA, in order to enforce the memory ordering constraint within corresponding machine code instructions of a second ISA. An emulator utilizes this binary emulation metadata during emulation of a resulting executable image at a processor implementing the second ISA. When the emulator encounters a machine code instruction in the image that performs a memory operation, it identifies an instruction memory address corresponding to the instruction. The emulator determines whether the binary emulation metadata identifies the instruction memory address as being associated with a memory ordering constraint.
    Type: Application
    Filed: October 4, 2018
    Publication date: April 9, 2020
    Inventors: Henry MORGAN, Ten TZEN, Christopher Martin MCKINSEY, YongKang ZHU, Terry MAHAFFEY, Pedro Miguel Sequeira de Justo TEIXEIRA, Arun Upadhyaya KISHAN, Youssef M. BARAKAT
  • Publication number: 20200059549
    Abstract: The present disclosure relates to audio processing methods and terminal devices. One example method includes determining, by a terminal device, an actual uplink gain based on a position relationship between an acoustic source and a microphone of the terminal device, and processing, by the terminal device, an audio signal from the acoustic source based on the actual uplink gain.
    Type: Application
    Filed: October 31, 2016
    Publication date: February 20, 2020
    Inventor: Yongkang ZHU
  • Patent number: 8677322
    Abstract: The present invention extends to methods, systems, and computer program products for debugging in a multiple address space environment. Embodiments of the invention include techniques for recording debug information used for translating between an abstract unified address space and multiple address spaces at a target system (e.g., a co-processor, such as, a GPU or other accelerator). A table is stored in the recorded debug information. The table includes one or more entries mapping compiler assigned IDs to address spaces. During debugging within a symbolic debugger, the recorded debug information can be used for viewing program data across multiple address spaces in a live debugging session.
    Type: Grant
    Filed: June 29, 2011
    Date of Patent: March 18, 2014
    Assignee: Microsoft Corporation
    Inventors: Amit Kumar Agarwal, Weirong Zhu, Yosseff Levanoni, Yongkang Zhu
  • Patent number: 8656377
    Abstract: Embodiments are directed to tracking variable location information in optimized code and efficiently collecting and storing reaching definition information. A computer system receives a portion of source code at a compiler, where the compiler is configured to compile and optimize the source code for execution. The computer system tags selected variables in the source code with a tag, where the tag is configured to provide location information for the variable. The computer system optimizes the received portion of source code including changing at least one of the tagged variables. The computer system also tracks the tagged variables as the variables are changed by the compiler during code optimization and persists the variable location information, so that the persisted variable location information is available to other compiler components.
    Type: Grant
    Filed: June 10, 2010
    Date of Patent: February 18, 2014
    Assignee: Microsoft Corporation
    Inventors: Lin Xu, Weiping Hu, Yongkang Zhu
  • Publication number: 20130007712
    Abstract: The present invention extends to methods, systems, and computer program products for debugging in a multiple address space environment. Embodiments of the invention include techniques for recording debug information used for translating between an abstract unified address space and multiple address spaces at a target system (e.g., a co-processor, such as, a GPU or other accelerator). A table is stored in the recorded debug information. The table includes one or more entries mapping compiler assigned IDs to address spaces. During debugging within a symbolic debugger, the recorded debug information can be used for viewing program data across multiple address spaces in a live debugging session.
    Type: Application
    Filed: June 29, 2011
    Publication date: January 3, 2013
    Applicant: Microsoft Corporation
    Inventors: Amit Kumar Agarwal, Weirong Zhu, Yosseff Levanoni, Yongkang Zhu
  • Publication number: 20110307875
    Abstract: Embodiments are directed to tracking variable location information in optimized code and efficiently collecting and storing reaching definition information. A computer system receives a portion of source code at a compiler, where the compiler is configured to compile and optimize the source code for execution. The computer system tags selected variables in the source code with a tag, where the tag is configured to provide location information for the variable. The computer system optimizes the received portion of source code including changing at least one of the tagged variables. The computer system also tracks the tagged variables as the variables are changed by the compiler during code optimization and persists the variable location information, so that the persisted variable location information is available to other compiler components.
    Type: Application
    Filed: June 10, 2010
    Publication date: December 15, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Lin Xu, Weiping Hu, Yongkang Zhu