Patents by Inventor Mauricio Breternitz, Jr.
Mauricio Breternitz, Jr. 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: 8099587Abstract: An arrangement is provided for compressing microcode ROM (“uROM”) in a processor and for efficiently accessing a compressed “uROM”. A clustering-based approach may be used to effectively compress a uROM. The approach groups similar columns of microcode into different clusters and identifies unique patterns within each cluster. Only unique patterns identified in each cluster are stored in a pattern storage. Indices, which help map an address of a microcode word (“uOP”) to be fetched from a uROM to unique patterns required for the uOP, may be stored in an index storage. Typically it takes a longer time to fetch a uOP from a compressed uROM than from an uncompressed uROM. The compressed uROM may be so designed that the process of fetching a uOP (or uOPs) from a compressed uROM may be fully-pipelined to reduce the access latency.Type: GrantFiled: July 20, 2005Date of Patent: January 17, 2012Assignee: Intel CorporationInventors: Youfeng Wu, Sangwook Kim, Mauricio Breternitz, Jr., Herbert Hum
-
Publication number: 20110320766Abstract: An apparatus and method is described herein for coupling a processor core of a first type with a co-designed core of a second type. Execution of program code on the first core is monitored and hot sections of the program code are identified. Those hot sections are optimize for execution on the co-designed core, such that upon subsequently encountering those hot sections, the optimized hot sections are executed on the co-designed core. When the co-designed core is executing optimized hot code, the first processor core may be in a low-power state to save power or executing other code in parallel. Furthermore, multiple threads of cold code may be pipelined on the first core, while multiple threads of hot code are pipeline on the co-designed core to achieve maximum performance.Type: ApplicationFiled: June 29, 2010Publication date: December 29, 2011Inventors: Youfeng Wu, Shiliang Hu, Edson Borin, Cheng C. Wang, Mauricio Breternitz, JR., Wei Liu
-
Publication number: 20110320775Abstract: Methods and apparatus relating to accelerating execution of compressed code are described. In one embodiment, a two-level embedded code decompression scheme is utilized which eliminates bubbles, which may increase speed and/or reduce power consumption. Other embodiments are also described and claimed.Type: ApplicationFiled: June 27, 2010Publication date: December 29, 2011Inventors: Edson Borin, Mauricio Breternitz, JR., Nir Bone, Shlomo Avni
-
Patent number: 7840953Abstract: In a method for reducing code size a replaceable subset of instructions at a first location within a set of instructions and a matching target subset of instructions at a second location within the set of instructions are identified. A base offset and a relative offset are determined. The base offset and the relative offset indicate an absolute offset from the first location to the second location. An instruction to cause a base offset storage element to be loaded with the base offset is inserted prior to the first location. The replaceable subset of instructions is replaced with a second instruction to cause a program counter to be modified based on the relative offset and a value in the base offset register so that the modified program counter indicates the second location.Type: GrantFiled: December 22, 2004Date of Patent: November 23, 2010Assignee: Intel CorporationInventors: Youfeng Wu, Mauricio Breternitz, Jr.
-
Patent number: 7757221Abstract: A method and apparatus for dynamic binary translator to support precise exceptions with minimal optimization constraints. In one embodiment, the method includes the translation of a source binary application generated for a source instruction set architecture (ISA) into a sequential, intermediate representation (IR) of the source binary application. In one embodiment, the sequential IR is modified to incorporate exception recovery information for each of the exception instructions identified from the source binary application to enable a dynamic binary translator (DBT) to represent exception recovery values as regular values used by IR instructions. In one embodiment, the sequential IR may be optimized with a constraint on movement of an exception instruction downward past an irreversible instruction to form a non-sequential IR. In one embodiment, the non-sequential IR is optimized to form a translated binary application for a target ISA. Other embodiments are described and claimed.Type: GrantFiled: September 30, 2005Date of Patent: July 13, 2010Assignee: Intel CorporationInventors: Bixia Zheng, Cheng C. Wang, Ho-seop Kim, Mauricio Breternitz, Jr., Youfeng Wu
-
Patent number: 7725887Abstract: In a method for reducing code size, replaceable subsets of instructions at first locations in areas of infrequently executed instructions in a set of instructions and target subsets of instructions at second locations in the set of instructions are identified, wherein each replaceable subset matches at least one target subset. If multiple target subsets of instructions match one replaceable subset of instructions, one of the multiple matching target subsets is chosen as the matching target subset for the one replaceable subset based on whether the multiple target subsets are located in regions of frequently executed code. For each of at least some of the replaceable subsets of instructions, the replaceable subset of instructions is replaced with an instruction to cause the matching target subset of instructions at the second location to be executed.Type: GrantFiled: December 22, 2004Date of Patent: May 25, 2010Assignee: Intel CorporationInventors: Youfeng Wu, Mauricio Breternitz, Jr.
-
Patent number: 7694281Abstract: A first potential hot trace of a program is determined. A second potential hot trace of the program is determined. A common path from the first potential hot trace and the second potential hot trace is selected as the selected hot trace of the program.Type: GrantFiled: September 30, 2005Date of Patent: April 6, 2010Assignee: Intel CorporationInventors: Cheng Wang, Bixia Zheng, Ho-seop Kim, Mauricio Breternitz, Jr., Youfeng Wu
-
Patent number: 7620781Abstract: Implementation of a Bloom filter using multiple single-ported memory slices. A control value is combined with a hashed address value such that the resultant address value has the property that one, and only one, of the k memories or slices is selected for a given input value, a, for each bank. Collisions are thereby avoided and the multiple hash accesses for a given input value, a, may be performed concurrently. Other embodiments are also described and claimed.Type: GrantFiled: December 19, 2006Date of Patent: November 17, 2009Assignee: Intel CorporationInventors: Mauricio Breternitz, Jr., Youfeng Wu, Peter G. Sassone, Jeffrey P. Rupley, II, Wesley Attrot, Bryan Black
-
Publication number: 20090172713Abstract: Methods and apparatuses enable on-demand instruction emulation via user-level exception handling. A non-supported instruction triggers an exception during runtime of a program. In response to the exception, a user-level or application-level exception handler is launched, instead of a kernel-level handler. Then the exception handler can execute at the application layer instead of the kernel level. The handler identifies the instruction and emulates the instruction, where emulation of the instruction is supported by the handler. Emulating the instructions enables the program to continue execution. Repeated instruction emulation is amortized via dynamic binary translation of hot code.Type: ApplicationFiled: December 31, 2007Publication date: July 2, 2009Inventors: Ho-Seop Kim, Mauricio Breternitz, JR., Youfeng Wu
-
Patent number: 7451121Abstract: A method to compress microcode utilizing a genetic algorithm includes generating a population of chromosomes, each chromosome including one or more elements that indicate a cluster to which a portion of microcode memory belongs. The method further includes determining a fitness value of each chromosome and modifying the population of chromosomes based on the fitness values of the chromosomes to generate a new population of chromosomes. In addition, the method includes compressing the microcode memory using a cluster-based compression technique, wherein clusters are selected according to a chromosome from the new population with the best fitness value. Other embodiments are also disclosed.Type: GrantFiled: September 27, 2005Date of Patent: November 11, 2008Assignee: Intel CorporationInventors: Youfeng Wu, Mauricio Breternitz, Jr.
-
Patent number: 7430574Abstract: Methods are disclosed to implement bit scan operations using properties of two's complement arithmetic and compute zero index instructions. A data value may be provided and the most-significant or least-significant bit may be determined using the methods set forth herein.Type: GrantFiled: June 24, 2004Date of Patent: September 30, 2008Assignee: Intel CorporationInventors: Mauricio Breternitz, Jr., Youfeng Wu, Tal Abir
-
Patent number: 7428731Abstract: A method, machine readable medium, and system are disclosed. In one embodiment the method comprises collecting a loop trip count continuously during runtime of a region of code being executed that contains a loop, categorizing the trip count to identify one or more code modification techniques applicable to the loop, and dynamically applying the one or more applicable code modification techniques to alter the code that relates to the loop.Type: GrantFiled: March 31, 2004Date of Patent: September 23, 2008Assignee: Intel CorporationInventors: Youfeng Wu, Mauricio Breternitz, Jr.
-
Patent number: 7095342Abstract: In one embodiment, the present invention includes a method to compress data stored in a memory to reduce size and power consumption. The method includes segmenting each word of a code portion into multiple fields, forming tables having unique entries for each of the fields, and assigning a pointer to each of the unique entries in each of the tables. Other embodiments are described and claimed.Type: GrantFiled: March 31, 2005Date of Patent: August 22, 2006Assignee: Intel CorporationInventors: Herbert Hum, Mauricio Breternitz, Jr., Youfeng Wu, Sangwook Kim
-
Patent number: 6823070Abstract: Method of monitoring a secure encrypted communication, where the encryption key(s) is recovered by an escrow center having a master and multiple agents and the master receives the key encrypted using a mask scheme. Independent random masks are generated, which are then used to create dependent masks for each agent. The agents receive the mask information but no key information. The agents decide whether to allow the interception of an encrypted message. In response to the agents' decisions, the master is either enabled to recover the key or prevented from recovering the key. Encrypted key information is only available to the master. Multiple combinations of agents will provide sufficient information to the master to recover the key, avoiding the hold-out problems of the prior art. In one embodiment, multiple masters provide back-up protection when a master is unavailable.Type: GrantFiled: March 28, 2000Date of Patent: November 23, 2004Assignee: Freescale Semiconductor, Inc.Inventors: Roger A. Smith, Mauricio Breternitz, Jr.
-
Patent number: 6523095Abstract: A cache line of a cache (230) contains a modifiable instruction. The modifiable instruction is decoded by a central processor unit (210) (CPU) which performs the function associated with the modifiable instruction. After the modifiable instruction has been executed, the CPU (210) sets an instruction modified bit associated with the cache (200) based on the execution results of the modifiable instruction. During a subsequent process of the modifiable instruction location, the CPU Decode Unit (212) substitutes a modified instruction for the modifiable instruction based on the instruction modify indicator.Type: GrantFiled: July 22, 1996Date of Patent: February 18, 2003Assignee: Motorola, Inc.Inventor: Mauricio Breternitz, Jr.
-
Patent number: 6484228Abstract: During a compressing portion, memory (20) is divided into cache line blocks (500). Each cache line block is compressed and modified by replacing address destinations of address indirection instructions with compressed address destinations. Each cache line block is modified to have a flow indirection instruction as the last instruction in each cache line. The compressed cache line blocks (500) are stored in a memory (858). During a decompression portion, a cache line (500) is accessed based on an instruction pointer (902) value. The cache line is decompressed and stored in cache. The cache tag is determined based on the instruction pointer (902) value.Type: GrantFiled: November 5, 2001Date of Patent: November 19, 2002Assignee: Motorola, Inc.Inventors: Mauricio Breternitz, Jr., Roger A. Smith
-
Patent number: 6381739Abstract: A compiler (142) constructs (FIGS. 14-32) a Reduced Flowgraph (RFG) from computer source code (144). The RFG is used to instrument (FIG. 36) code (142). An object module is created (146) and executed (148). Resulting path frequency counts are written to a counts file (154). A compiler (158) uses the source code (144) and the generated counts to identify runtime correlations between successive path edges and Superedges. An object module (159) is generated containing reordered (156) code generated to optimize performance based on the runtime correlations. If cloning is enabled (152), high frequency path edges are cloned (154) or duplicated to minimize cross edge branching.Type: GrantFiled: May 15, 1996Date of Patent: April 30, 2002Assignee: Motorola Inc.Inventors: Mauricio Breternitz, Jr., Roger A. Smith
-
Patent number: 6343354Abstract: During a compressing portion, memory (20) is divided into cache line blocks (500). Each cache line block is compressed and modified by replacing address destinations of address indirection instructions with compressed address destinations. Each cache line block is modified to have a flow indirection instruction as the last instruction in each cache line. The compressed cache line blocks (500) are stored in a memory (858). During a decompression portion, a cache line (500) is accessed based on an instruction pointer (902) value. The cache line is decompressed and stored in cache. The cache tag is determined based on the instruction pointer (902) value.Type: GrantFiled: April 19, 2000Date of Patent: January 29, 2002Assignee: Motorola Inc.Inventors: Mauricio Breternitz, Jr., Roger A. Smith
-
Patent number: 6216213Abstract: During a compressing portion, memory (20) is divided into cache line blocks (500). Each cache line block is compressed and modified by replacing address destinations of address indirection instructions with compressed address destinations. Each cache line block is modified to have a flow indirection instruction as the last instruction in each cache line. The compressed cache line blocks (500) are stored in a memory (858). During a decompression portion, a cache line (500) is accessed based on an instruction pointer (902) value. The cache line is decompressed and stored in cache. The cache tag is determined based on the instruction pointer (902) value.Type: GrantFiled: June 7, 1996Date of Patent: April 10, 2001Assignee: Motorola, Inc.Inventors: Mauricio Breternitz, Jr., Roger A. Smith
-
Patent number: 6044220Abstract: An instruction set interpreter and translator provides dynamic idiom recognition by use of a programmable hash table. Idioms are sequences of consecutive instructions that occur frequently during execution. Interpretive execution of such idioms is optimized to attain high performance. Idioms are recognized dynamically during interpretive execution. A programmable hash table is extended with entries corresponding to newly recognized idioms as their frequency of occurrence exceeds a threshold.Type: GrantFiled: February 25, 1997Date of Patent: March 28, 2000Assignee: Motorola, Inc.Inventor: Mauricio Breternitz, Jr.