Google Inc - New York City since Jun 2005
Software Engineer
Intel Corporation - Greater Boston Area 2001 - 2005
Software Engineer
Compaq - Greater Boston Area 1999 - 2001
Software Engineer
Education:
University of Arizona 1994 - 1999
Doctor of Philosophy (Ph.D.), Computer Science
Johann Wolfgang Goethe-Universität Frankfurt am Main 1989 - 1994
Diplom, Informatics
Skills:
C++ Linux C Java Unix Javascript Python Arm Android
Harish G. Patil - Shrewsbury MA, US Robert Muth - Brookline MA, US Geoff Lowney - Concord MA, US
Assignee:
Intel Corporation - Santa Clara CA
International Classification:
G06F 9/45 G06F 9/44
US Classification:
717158, 717131, 717151
Abstract:
Analyzing a first binary version of a program and unwind information associated with the first binary version of the program, performing optimization on the first binary version of the program to produce a second binary version of the program based at least in part on the results of the analysis, and generating new unwind information for the second binary version of the program based at least in part on the results of the analysis and at least in part on the optimization performed.
Harish G. Patil - Shrewsbury MA, US Robert Muth - Brookline MA, US Geoff Lowney - Concord MA, US
Assignee:
Intel Corporation - Santa Clara CA
International Classification:
G06F 9/45
US Classification:
717154, 717151, 717158
Abstract:
Analyzing a first binary version of a program and unwind information associated with the first binary version of the program, performing optimization on the first binary version of the program to produce a second binary version of the program based at least in part on the results of the analysis, and generating new unwind information for the second binary version of the program based at least in part on the results of the analysis and at least in part on the optimization performed.
Native Code Module Security For Arm Instruction Set Architectures
Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that constrain store instructions in the native code module. The SFI mechanisms also maintain control flow integrity for the native code module by dividing a code region associated with the native code module into equally sized code blocks and data blocks and starting each of the data blocks with an illegal instruction.
Chi-Keung Luk - Shrewsbury MA, US Harish Patil - Shrewsbury MA, US Robert Muth - Brookline MA, US Paul Lowney - Concord MA, US Robert Cohn - Salem NH, US Richard Weiss - Montague MA, US
International Classification:
G06F009/45
US Classification:
717/158000
Abstract:
Executable code is modified to include prefetch instructions for certain loads. The targeted loads preferably include those loads for which a compiler cannot compute a stride (which represents the difference in memory addresses used in consecutive executions of a given load). Whether prefetch instructions should be included for such loads is determined preferably by running the code with a training data set which determines the frequency of strides for each subsequent execution of a load. If a stride occurs more than once for a load, then that load is prefetched by inserting a prefetch instruction into the executable code for that load. Further, a stride value is associated with the inserted prefetch. Preferably, the stride value is the most frequently occurring stride, which can be determined based on the results of the training data set. Alternatively, the stride can be computed during run-time by the code itself.
- Mountain View CA, US J. Bradley Chen - Los Gatos CA, US Bennet S. Yee - Mountain View CA, US Robert Muth - New York NY, US Jan Voung - Oakland CA, US Derek L. Schuff - Sunnyvale CA, US
International Classification:
H04L 29/06
Abstract:
Methods, systems, and computer program products are provided for machine-specific instruction set translation. One example method includes identifying computing devices, each device having a respective software component installed, the software component including a translator component for translating a program in a portable format to a machine-specific instruction set, and a sandbox component for executing programs translated to the machine-specific instruction set on the computing device using software-based fault isolation; identifying computing devices having a given hardware configuration; and transmitting another translator component and another sandbox component to each of the identified computing devices. Each of the identified computing devices having the given hardware configuration is configured to receive the components and to configure its software component to use the received components in lieu of the corresponding components.
Security-Enhanced Web Application Module Translation
J. Bradley Chen - Los Gatos CA, US Alan A. Donovan - Brooklyn NY, US Robert Muth - New York NY, US David C. Sehr - Cupertino CA, US Bennet Yee - Mountain View CA, US Matthew Papakipos - Palo Alto CA, US Stephen White - Laval, CA
International Classification:
G06F 9/45 G06F 21/60
Abstract:
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for preserving code safety of application code that is received in a portable, instruction-set-neutral format. One aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a portable code file that is implemented in an instruction-set-neutral and source code independent format; translating the portable code file into native object code for execution on a particular instruction set architecture; generating a native executable for the particular instruction set architecture using the native object code; and validation the native executable using a trusted validator prior to execution of the native executable.
David C. Sehr - Cupertino CA, US J. Bradley Chen - Los Gatos CA, US Bennet S. Yee - Mountain View CA, US Robert Muth - New York NY, US Jan Voung - Oakland CA, US Derek L. Schuff - Sunnyvale CA, US
International Classification:
H04L 29/06
Abstract:
Methods, systems, and computer program products are provided for machine-specific instruction set translation. One example method includes identifying computing devices, each device having a respective software component installed, the software component including a translator component for translating a program in a portable format to a machine-specific instruction set, and a sandbox component for executing programs translated to the machine-specific instruction set on the computing device using software-based fault isolation; identifying computing devices having a given hardware configuration; and transmitting another translator component and another sandbox component to each of the identified computing devices. Each of the identified computing devices having the given hardware configuration is configured to receive the components and to configure its software component to use the received components in lieu of the corresponding components.