Patents by Inventor Juan Carlos Arevalo Baeza
Juan Carlos Arevalo Baeza 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: 10481999Abstract: Techniques for processing recorded program data are described. In implementations, a trace module in a computing device processes instructions of a recorded program and generates a trace file for program optimization. In implementations, the trace module records a subset of a received program for inclusion in the trace file. The computing device can also or instead be implemented to gather and initiate analysis of application data proactively and without user initiation.Type: GrantFiled: December 5, 2016Date of Patent: November 19, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Jordi Mola, Juan Carlos Arevalo Baeza, Darek Josip Mihocka
-
Publication number: 20190332520Abstract: Described technologies support selectively tracing a process's execution, with some extra tracing done beyond the code the developer wanted traced, but with significantly reduced computational cost, by reducing the number of trace enablement and disablement operations. A trace controller uses a tracing disablement distance variable whose values indicate the computational distance from trace disablement. A distance variable modifier automatically moves the distance variable closer to a stop-tracing value as the process executes. A create task function is modified to include the setting of an indicator that a newly created task is to be traced if a current task or thread is being traced. An execute task function is modified to request the tracing of the newly created task when it is executed based on the indicator, thereby enabling selective tracing that operates across process boundaries and traces asynchronous code execution.Type: ApplicationFiled: October 29, 2018Publication date: October 31, 2019Inventors: Del MYERS, Thomas LAI, Patrick NELSON, Jordi MOLA, Juan Carlos AREVALO BAEZA, Stephen Harris TOUB
-
Publication number: 20190332519Abstract: Expressly turning tracing on and off at each juncture between code that a developer wants to have traced and other code may reduce trace file size but adds computational cost. Described technologies support selectively tracing a process's execution, with some extra tracing done beyond the code the developer wanted traced, but with significantly reduced computational cost, by reducing the number of trace enablement and disablement operations. A trace controller uses a tracing disablement distance variable whose values indicate the computational distance from trace disablement. A distance variable modifier automatically moves the distance variable closer to a stop-tracing value as the process executes. The amount of extra tracing is balanced against the reduction in trace enablement/disablement operations by tuning thresholds, based on information about routine size and computational cost.Type: ApplicationFiled: April 27, 2018Publication date: October 31, 2019Inventors: Del MYERS, Jackson DAVIS, Thomas LAI, Patrick NELSON, Jordi MOLA, Juan Carlos AREVALO BAEZA
-
Publication number: 20190325980Abstract: Described technologies extend the information available from an execution trace of a program by providing heuristically-derived values for memory contents when the trace does not include data expressly showing the value of a memory cell at a particular execution time. Various heuristics are described. The heuristics may use information about the memory cell at other times to produce the derived value. Some heuristics use other trace data, such as whether the memory cell is in a stack, whether there are gaps in the trace, or whether garbage collection or compilation occurred near the time in question. Grounds for the derived value are reported along with the derived value. A time-travel debugger or other program analysis tool can then present the derived values to users, or make other use of the derived values and grounds to assist debugging and other efforts to improve the functioning of a computing system.Type: ApplicationFiled: April 23, 2018Publication date: October 24, 2019Inventors: Patrick NELSON, Jackson DAVIS, Del MYERS, Thomas LAI, Deborah CHEN, Jordi MOLA, Juan Carlos AREVALO BAEZA
-
Publication number: 20190324891Abstract: Presenting historical state of a code element of a prior execution of an entity. An embodiment includes presenting historical state of the code element based on replaying segment(s) of the prior execution from trace data. Presenting the historical state includes presenting a first state of the code element, in connection with a first execution time point. The first state is based on a first memory access for the code element at the first execution time point. Presenting the historical state also includes presenting the first state of the code element along with an indication that the first state is a last known state (in connection with a subsequent execution time point) or a next known state (in connection with a prior execution time point).Type: ApplicationFiled: April 23, 2018Publication date: October 24, 2019Inventors: Jordi MOLA, Henry GABRYJELSKI, Jackson Michael DAVIS, Deborah Liang CHEN, Del MYERS, Thomas LAI, Patrick Lothian NELSON, Juan Carlos AREVALO BAEZA, Kenneth Walter SYKES
-
Patent number: 10235273Abstract: Creating key frames during indexing of a trace for responsive trace replay. A method includes identifying responsiveness goal(s) for trace replay, including identifying a target trace section replay time. A portion of execution of executable entit(ies) is replayed based on trace data stream(s). While replaying execution of the executable entit(ies), and based on the identified target trace section replay time, points of interest in execution of the executable entit(ies) are identified. At least one key frame is created for each of the identified plurality of points of interest. Each key frame enables replay of at least one of the one or more executable entities beginning at the key frame.Type: GrantFiled: March 9, 2018Date of Patent: March 19, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Jordi Mola, Juan Carlos Arevalo Baeza
-
Patent number: 10198341Abstract: Embodiments herein are directed to parallel replay of code execution. An embodiment parses trace data comprising a plurality of trace data streams that each represents execution of a corresponding one of a plurality of executable entities, and identifies a plurality of trace sections that each represents one or more events executed by one of the executable entities over a period of time. The embodiment defines an ordering among the trace sections, identifies a point of interest in at least one of the executable entities, and identifies a subset of the trace sections that, when replayed linearly according to the ordering, would encounter the point of interest. The embodiment queues the subset of trace sections in an execution pool for replay by one or more processors. Then, based on the trace data, the embodiment uses the processor(s) to replay two or more of the subset of trace sections in parallel.Type: GrantFiled: December 21, 2016Date of Patent: February 5, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Jordi Mola, Juan Carlos Arevalo Baeza, Darek Josip Mihocka, Ivette Carreras
-
Publication number: 20180260299Abstract: Creating key frames during indexing of a trace for responsive trace replay. A method includes identifying responsiveness goal(s) for trace replay, including identifying a target trace section replay time. A portion of execution of executable entit(ies) is replayed based on trace data stream(s). While replaying execution of the executable entit(ies), and based on the identified target trace section replay time, points of interest in execution of the executable entit(ies) are identified. At least one key frame is created for each of the identified plurality of points of interest. Each key frame enables replay of at least one of the one or more executable entities beginning at the key frame.Type: ApplicationFiled: March 9, 2018Publication date: September 13, 2018Inventors: Jordi Mola, Juan Carlos Arevalo Baeza
-
Publication number: 20180173611Abstract: Embodiments herein are directed to parallel replay of code execution. An embodiment parses trace data comprising a plurality of trace data streams that each represents execution of a corresponding one of a plurality of executable entities, and identifies a plurality of trace sections that each represents one or more events executed by one of the executable entities over a period of time. The embodiment defines an ordering among the trace sections, identifies a point of interest in at least one of the executable entities, and identifies a subset of the trace sections that, when replayed linearly according to the ordering, would encounter the point of interest. The embodiment queues the subset of trace sections in an execution pool for replay by one or more processors. Then, based on the trace data, the embodiment uses the processor(s) to replay two or more of the subset of trace sections in parallel.Type: ApplicationFiled: December 21, 2016Publication date: June 21, 2018Inventors: Jordi Mola, Juan Carlos Arevalo Baeza, Darek Josip Mihocka, Ivette Carreras
-
Publication number: 20180157576Abstract: Techniques for processing recorded program data are described. In implementations, a trace module in a computing device processes instructions of a recorded program and generates a trace file for program optimization. In implementations, the trace module records a subset of a received program for inclusion in the trace file. The computing device can also or instead be implemented to gather and initiate analysis of application data proactively and without user initiation.Type: ApplicationFiled: December 5, 2016Publication date: June 7, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Jordi Mola, Juan Carlos Arevalo Baeza, Darek Josip Mihocka
-
Patent number: 9934127Abstract: Inserting key frames during indexing of a trace for responsive trace replay. A method includes identifying responsiveness goal(s) for trace replay, including identifying a target trace section replay time. A portion of execution of executable entit(ies) is replayed based on first trace data stream(s). While replaying execution of the executable entit(ies), and based on the identified target trace section replay time, points of interest in execution of the executable entit(ies) are identified. Second trace data stream(s) are recorded, which includes inserting a key frame into the second trace data stream(s) at, or near, each of the identified points of interest, to create a plurality of trace sections. Each key frame enables replay of at least one of the executable entities beginning at the key frame.Type: GrantFiled: March 8, 2017Date of Patent: April 3, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Jordi Mola, Juan Carlos Arevalo Baeza
-
Patent number: 9934126Abstract: Augmenting a trace with at least one reverse lookup data structure during indexing of the trace. A method includes receiving trace data observed during execution of executable entit(ies), and replaying a plurality of different sections of the trace data. The replay includes, for each trace section, executing a plurality of code instructions of the executable entit(ies) based on the section's portion of the trace data, and recording attribute(s) observed during the execution of the code instructions along with an identity of the trace section. At least one reverse lookup data structure is created. It associates each of at least a subset of the attributes observed during the replay of the plurality of trace sections with the identity of each trace section in which it was observed. This reverse lookup data structure is stored as part of one or more trace data streams.Type: GrantFiled: May 10, 2017Date of Patent: April 3, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Jordi Mola, Juan Carlos Arevalo Baeza, Darek Josip Mihocka
-
Patent number: 9819970Abstract: Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.Type: GrantFiled: December 9, 2013Date of Patent: November 14, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Yegnaswamy Sermadevi, Weidong Zhao, Eric S. Christoffersen, Yongjun Wu, Juan Carlos Arevalo Baeza, Sean Callahan
-
Publication number: 20170155907Abstract: Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.Type: ApplicationFiled: November 7, 2016Publication date: June 1, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Juan Carlos Arevalo Baeza, Eric S. Christoffersen, Sean M. Callahan, Daniel Dinu, Barry Friemel, Weidong Zhao, Yongjun Wu, William Chen
-
Patent number: 9648325Abstract: Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.Type: GrantFiled: June 30, 2007Date of Patent: May 9, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Juan Carlos Arevalo Baeza, Eric S. Christoffersen, Sean M. Callahan, Daniel Dinu, Barry Friemel, William Chen, Weidong Zhao, Yongjun Wu
-
Patent number: 9582919Abstract: In one embodiment, a texture identification method and system are disclosed that uniquely identifies textures as they are used by the application and associates collected, inferred, or user-specified data with objects not owned by the library. In various embodiments, textures may be identified in various scenarios such as when textures are loaded, deleted, relocated, reloaded, and the like. In a further embodiment, APIs are provided that the application can call to provide useful information to the system that can improve the quality of the data in some situations.Type: GrantFiled: October 9, 2009Date of Patent: February 28, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Jason Matthew Gould, Juan Carlos Arevalo Baeza
-
Publication number: 20140098887Abstract: Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.Type: ApplicationFiled: December 9, 2013Publication date: April 10, 2014Applicant: MICROSOFT CORPORATIONInventors: Yegnaswamy Sermadevi, Weidong Zhao, Eric S. Christoffersen, Yongjun Wu, Juan Carlos Arevalo Baeza, Sean Callahan
-
Publication number: 20130287114Abstract: Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.Type: ApplicationFiled: June 27, 2013Publication date: October 31, 2013Inventors: Juan Carlos Arevalo Baeza, Daniel Dinu, William Chen, Yongjun Wu
-
Patent number: 8219975Abstract: A method for analyzing the performance of a video game uses a diagnostic tool that is associated with application code of the video game. The diagnostic tool is activated when the video game is in operation, and real-time performance data is captured and displayed. A warning is generated when a performance metric violates a pre-set condition. The warning may be displayed on a display screen that is used to provide information for rectifying the violation.Type: GrantFiled: October 26, 2007Date of Patent: July 10, 2012Assignee: Microsoft CorporationInventors: Andrew Goossen, Parham Mohadjer, Matthew Kimball, John Howard Palevich, Juan Carlos Arevalo Baeza, Jason Matthew Gould, Matthew Lee, Michael Burrows, Karen Elaine Stevens, David Aronson
-
Publication number: 20110084965Abstract: In one embodiment, a texture identification method and system are disclosed that uniquely identifies textures as they are used by the application and associates collected, inferred, or user-specified data with objects not owned by the library. In various embodiments, textures may be identified in various scenarios such as when textures are loaded, deleted, relocated, reloaded, and the like.Type: ApplicationFiled: October 9, 2009Publication date: April 14, 2011Applicant: Microsoft CorporationInventors: Jason Matthew Gould, Juan Carlos Arevalo Baeza