Patents by Inventor Russell C. Brockmann
Russell C. Brockmann 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: 7356674Abstract: A method of, and apparatus for, interfacing the hardware of a processor capable of processing instructions from more than one type of instruction set. More particularly, an engine responsible for fetching native instructions from a memory subsystem (such as an EM fetch engine) is interfaced with an engine that processes emulated instructions (such as an x86 engine). This is achieved using a handshake protocol, whereby the x86 engine sends an explicit fetch request signal to the EM fetch engine along with a fetch address. The EM fetch engine then accesses the memory subsystem and retrieves a line of instructions for subsequent decode and execution. The EM fetch engine sends this line of instructions to the x86 engine along with an explicit fetch complete signal. The EM fetch engine also includes a fetch address queue capable of holding the fetch addresses before they are processed by the EM fetch engine. The fetch requests are processed such that more than one fetch request may be pending at the same time.Type: GrantFiled: November 21, 2003Date of Patent: April 8, 2008Assignee: Hewlett-Packard Development Company, L.P.Inventors: Anuj Dua, James E McCormick, Jr., Stephen R. Undy, Barry J Arnold, Russell C Brockmann, David Carl Kubicek, James Curtis Stout
-
Patent number: 7343479Abstract: The present invention is a method for implementing two architectures on a single chip. The method uses a fetch engine to retrieve instructions. If the instructions are macroinstructions, then it decodes the macroinstructions into microinstructions, and then bundles those microinstructions using a bundler, within an emulation engine. The bundles are issued in parallel and dispatched to the execution engine and contain pre-decode bits so that the execution engine treats them as microinstructions. Before being transferred to the execution engine, the instructions may be held in a buffer. The method also selects between bundled microinstructions from the emulation engine and native microinstructions coming directly from the fetch engine, by using a multiplexer or other means. Both native microinstructions and bundled microinstructions may be held in the buffer. The method also sends additional information to the execution engine.Type: GrantFiled: June 25, 2003Date of Patent: March 11, 2008Assignee: Hewlett-Packard Development Company, L.P.Inventors: Patrick Knebel, Kevin David Safford, Donald Charles Soltis, Jr., Joel D Lamb, Stephen R. Undy, Russell C Brockmann
-
Patent number: 7139936Abstract: An apparatus verifies the correctness of a behavioral model of a microcode machine, where the microcode machine is operable in a native state and an emulated state. The apparatus includes means for producing the native state, means for producing the emulated state, and means for comparing the native state and the emulated state. Corresponding to the apparatus, a method verifies the correctness of a processor behavioral model, where the processor operates in a native mode state and an emulated mode state. The method includes determining if a macroinstruction to be executed is a native instruction, and, if the macroinstruction is a native instruction, executing the native instruction, the execution producing the native mode state of the processor.Type: GrantFiled: August 22, 2003Date of Patent: November 21, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Jeremy Petsinger, Kevin David Safford, Karl P. Brummel, Russell C. Brockmann, Bruce A. Long, Patrick Knebel
-
Patent number: 6789186Abstract: A method and apparatus are provided for improving the rate at which macroinstructions are transformed into corresponding microinstructions. Encoding is added to a microcode storage device. The encoding indicates that a microinstruction flow will end in a determined number of cycles. The number of cycles is determined by the number of canceled instructions in a processing pipeline that would be introduced if no flow length prediction was used. For flow lengths less than a determined number of cycles, a hint bit is used in an entry point structure. For flow lengths greater than a determined length, a hint bit is encoded at a third line from an end of the microinstruction flow. Using this method, flows of any length can be hinted. Furthermore, flows that do not originate from the entry point structure can also be hinted. The method reduces the number of hint bits that are needed in the entry point structure and provides for better prediction.Type: GrantFiled: February 18, 2000Date of Patent: September 7, 2004Assignee: Hewlett-Packard Development Company, L.P.Inventors: Russell C. Brockmann, Kevin David Safford, Jane Wang, Chris Poirier
-
Publication number: 20040107335Abstract: A method of, and apparatus for, interfacing the hardware of a processor capable of processing instructions from more than one type of instruction set. More particularly, an engine responsible for fetching native instructions from a memory subsystem (such as an EM fetch engine) is interfaced with an engine that processes emulated instructions (such as an x86 engine). This is achieved using a handshake protocol, whereby the x86 engine sends an explicit fetch request signal to the EM fetch engine along with a fetch address. The EM fetch engine then accesses the memory subsystem and retrieves a line of instructions for subsequent decode and execution. The EM fetch engine sends this line of instructions to the x86 engine along with an explicit fetch complete signal. The EM fetch engine also includes a fetch address queue capable of holding the fetch addresses before they are processed by the EM fetch engine. The fetch requests are processed such that more than one fetch request may be pending at the same time.Type: ApplicationFiled: November 21, 2003Publication date: June 3, 2004Inventors: Anuj Dua, James E. McCormick, Stephen R. Undy, Barry J. Arnold, Russell C. Brockmann, David Carl Kubicek, James Curtis Stout
-
Patent number: 6745322Abstract: A method and apparatus that utilizes a simple test and flush mechanism to implement branch instructions of one Instruction Set Architecture (ISA) using instructions of another ISA is described. During the decoding and sequencing of microinstructions to implement a branch instruction, a fix-up address, which represents the remedial branch target in the event of a mispredicted target or branch condition, is determined and stored. A test condition is set to determine if the prediction or the branch condition was correct. When the test condition fails, the instruction execution pipeline is immediately flushed to avoid executing any instruction remaining in the pipeline following the branch instructions. The flushing of the pipeline signals the instruction fetch control mechanism to redirect the instruction flow to the instruction corresponding to the fix-up address.Type: GrantFiled: February 18, 2000Date of Patent: June 1, 2004Assignee: Hewlett-Packard Development Company, LP.Inventors: Russell C Brockmann, Patrick Knebel, Kevin David Safford, Rohit Bhatia
-
Publication number: 20040064267Abstract: An apparatus, and a corresponding method, are used for testing a computer microarchitecture. The apparatus includes means for providing reprogrammed microcode. The means for providing the reprogrammed microcode includes means for reprogramming microcode, and means for storing reprogrammed microcode. The storing means includes microcode related to one or more macroinstructions, and reprogrammed test microcode for testing the computer microarchitecture, where the reprogrammed test microcode includes a sequence of microinstructions executed to test the computer microarchitecture. Finally, the apparatus includes means for sequencing the sequence of microinstructions and producing an address for the reprogrammed test microcode.Type: ApplicationFiled: September 16, 2003Publication date: April 1, 2004Inventors: Kevin David Safford, Patrick Knebel, Russell C. Brockmann, Karl P. Brummel, M. A. Susith Rohana Fernando
-
Publication number: 20040039966Abstract: An apparatus verifies the correctness of a behavioral model of a microcode machine, where the microcode machine is operable in a native state and an emulated state. The apparatus includes means for producing the native state, means for producing the emulated state, and means for comparing the native state and the emulated state. Corresponding to the apparatus, a method verifies the correctness of a processor behavioral model, where the processor operates in a native mode state and an emulated mode state. The method includes determining if a macroinstruction to be executed is a native instruction, and, if the macroinstruction is a native instruction, executing the native instruction, the execution producing the native mode state of the processor.Type: ApplicationFiled: August 22, 2003Publication date: February 26, 2004Inventors: Jeremy Petsinger, Kevin David Safford, Karl P. Brummel, Russell C. Brockmann, Bruce A. Long, Patrick Knebel
-
Publication number: 20040034820Abstract: A rare-event injector for generating events in an integrated circuit has circuitry for generating a pseudorandom sequence of events. This pseudorandom sequence of events is injected into circuitry of the integrated circuit to stimulate error handling and recovery circuitry of the integrated circuit.Type: ApplicationFiled: August 15, 2002Publication date: February 19, 2004Inventors: Donald C. Soltis,, Don Douglas Josephson, Paul K. French, Russell C. Brockmann, Kevin David Safford, Jeremy Petsinger, Karl P. Brummel
-
Publication number: 20040030865Abstract: The present invention is a method for implementing two architectures on a single chip. The method uses a fetch engine to retrieve instructions. If the instructions are macroinstructions, then it decodes the macroinstructions into microinstructions, and then bundles those microinstructions using a bundler, within an emulation engine. The bundles are issued in parallel and dispatched to the execution engine and contain pre-decode bits so that the execution engine treats them as microinstructions. Before being transferred to the execution engine, the instructions may be held in a buffer. The method also selects between bundled microinstructions from the emulation engine and native microinstructions coming directly from the fetch engine, by using a multiplexer or other means. Both native microinstructions and bundled microinstructions may be held in the buffer. The method also sends additional information to the execution engine.Type: ApplicationFiled: June 25, 2003Publication date: February 12, 2004Inventors: Patrick Knebel, Kevin David Safford, Donald Charles Soltis, Joel D Lamb, Stephen R. Undy, Russell C. Brockmann
-
Patent number: 6678817Abstract: A method of, and apparatus for, interfacing the hardware of a processor capable of processing instructions from more than one type of instruction set. More particularly, an engine responsible for fetching native instructions from a memory subsystem (such as an EM fetch engine) is interfaced with an engine that processes emulated instructions (such as an x86 engine). This is achieved using a handshake protocol, whereby the x86 engine sends an explicit fetch request signal to the EM fetch engine along with a fetch address. The EM fetch engine then accesses the memory subsystem and retrieves a line of instructions for subsequent decode and execution. The EM fetch engine sends this line of instructions to the x86 engine along with an explicit fetch complete signal. The EM fetch engine also includes a fetch address queue capable of holding the fetch addresses before they are processed by the EM fetch engine. The fetch requests are processed such that more than one fetch request may be pending at the same time.Type: GrantFiled: February 22, 2000Date of Patent: January 13, 2004Assignee: Hewlett-Packard Development Company, L.P.Inventors: Anuj Dua, James E McCormick, Jr., Stephen R. Undy, Barry J Arnold, Russell C Brockmann, David Carl Kubicek, James Curtis Stout
-
Patent number: 6654849Abstract: An address space of a random access memory (“RAM”) is overlaid over an address space of a read-only memory (“ROM”) minimizing traditional address bits and loading of an address decoder. Word lines in the ROM in the overlap region are constructed without programming FETs. When the overlap region is addressed, the ROM is unable to change a pre-charged level of the ROM because of the lack of programming FETs. The RAM, however, is free to either leave the pre-charged level unchanged or to drive a node, as required. Thus, conflicts between the ROM and the RAM in the overlap region are eliminated and additional address bit are saved, and loading of address decoders is minimized.Type: GrantFiled: February 18, 2000Date of Patent: November 25, 2003Assignee: Hewlett-Packard Development Company, L.P.Inventors: Russell C Brockmann, Kevin Liao
-
Patent number: 6643800Abstract: An apparatus and a method of testing computer microarchitectures has a test writer create a test sequence written directly in microinstructions (both native-mode and emulation-only microinstructions). The microinstruction sequence is then inserted into a reprogrammable microcode storage, replacing the normal sequence of microinstructions for a given macroinstruction. In order to execute the microinstructions, the test writer can issue the macroinstruction. The method may be implemented in a simulation model where one set of microinstructions in the reprogrammable microcode storage can be easily replaced. The method may also be applied to an actual microprocessor implementation.Type: GrantFiled: February 2, 2000Date of Patent: November 4, 2003Assignee: Hewlett-Packard Development Company, L.P.Inventors: Kevin David Safford, Patrick Knebel, Russell C Brockmann, Karl P Brummel, M A Susith Rohana Fernando
-
Patent number: 6625759Abstract: A method and an apparatus checks the fine-grain correctness of a microcode machine central processor unit (CPU) behavioral model. Macroinstructions are decomposed into microinstructions and each microinstruction is executed sequentially. A sequence of microinstructions is determined by an emulated microinstruction sequencer, using dynamic execution information, including information from execution of prior microinstructions in the sequence of microinstructions. At the end of execution of each microinstruction, a reference state is compared to a corresponding state of the behavioral model, and any differences are noted. After execution of all microinstructions in the microinstruction sequence, a reference state is compared to a corresponding state of the behavioral model, and any differences are noted.Type: GrantFiled: February 18, 2000Date of Patent: September 23, 2003Assignee: Hewlett-Packard Development Company, L.P.Inventors: Jeremy Petsinger, Kevin David Safford, Karl P. Brummel, Russell C. Brockmann, Bruce A. Long, Patrick Knebel
-
Patent number: 6622241Abstract: A branch target structure predicts a branch target address for an instruction flow. To conserve space, only a portion of the branch target address is stored. The branch target address is reconstructed assuming that an unspecified portion of a current branch instruction address matches corresponding bits of the branch target address. A comparator determines if the unspecified portion of the current branch instruction address matches corresponding bits of the branch target address. If the unspecified portion of the current branch instruction address does not match the corresponding bits of the branch target address, update of the branch target structure is inhibited. Otherwise update allowed.Type: GrantFiled: February 18, 2000Date of Patent: September 16, 2003Assignee: Hewlett-Packard Development Company, L.P.Inventors: Russell C. Brockmann, Brian M. Kelly, Susith R. Fernando
-
Patent number: 6618801Abstract: The present invention is a method for implementing two architectures on a single chip. The method uses a fetch engine to retrieve instructions. If the instructions are macroinstructions, then it decodes the macroinstructions into microinstructions, and then bundles those microinstructions using a bundler, within an emulation engine. The bundles are issued in parallel and dispatched to the execution engine and contain pre-decode bits so that the execution engine treats them as microinstructions. Before being transferred to the execution engine, the instructions may be held in a buffer. The method also selects between bundled microinstructions from the emulation engine and native microinstructions coming directly from the fetch engine, by using a multiplexor or other means. Both native microinstructions and bundled microinstructions may be held in the buffer. The method also sends additional information to the execution engine.Type: GrantFiled: February 2, 2000Date of Patent: September 9, 2003Assignee: Hewlett-Packard Development Company, L.P.Inventors: Patrick Knebel, Kevin David Safford, Donald Charles Soltis, Jr., Joel D Lamb, Stephen R. Undy, Russell C Brockmann
-
Publication number: 20030163678Abstract: A branch target structure predicts a branch target address for an instruction flow. To conserve space, only a portion of the branch target address is stored. The branch target address is reconstructed assuming that an unspecified portion of a current instruction address matches corresponding bits of the branch target address. A comparator determines if the unspecified portion of the current instruction address matches corresponding bits of the branch target address. If the unspecified portion of the address does not match the corresponding bits of the branch instruction address, update of the branch target structure is inhibited. Otherwise update allowed.Type: ApplicationFiled: February 18, 2000Publication date: August 28, 2003Inventors: Russell C. Brockmann, Brian M. Kelly, Susith R. Fernando
-
Patent number: 5956476Abstract: Method for detecting when first and second signal patterns have occurred on a split-transaction bus having transaction identifying indicia: Signal patterns occurring on the bus are compared with a first stored signal pattern. If a match is detected, the transaction identifying indicia that were associated on the bus with the first signal pattern are stored, and a first detection signal is asserted and held asserted. Signal patterns on the bus are then compared with a second stored signal pattern, and transaction identifying indicia occurring on the bus are compared with the indicia previously stored. A match signal is asserted when the first detection signal is asserted and, simultaneously, matches are detected for both of the second signal pattern comparison and the transaction identifying indicia comparison. Circuitry for implementing the method: First comparison circuitry asserts a first detection signal when a first signal pattern is detected on the bus.Type: GrantFiled: October 31, 1996Date of Patent: September 21, 1999Assignee: Hewlett Packard CompanyInventors: Gregory L. Ranson, Russell C. Brockmann, Robert E. Naas
-
Method for processing information in a microprocessor to facilitate debug and performance monitoring
Patent number: 5956477Abstract: Method of processing information in a microprocessor. At a first time during the life cycle of an instruction, a first set of microprocessor self-monitoring information is generated. The first set of mnicroprocessor self-monitoring information is stored, information necessary to execute the instruction is stored, and the two are associated. At a second time during the life cycle of the instruction, a second set of microprocessor self-monitoring information may be generated. This is also stored and is associated with the information necessary to execute the instruction. If the instruction retires, the first and second information may be retrieved for use in microprocessor testing. The information may also be used as soon as it is generated, for example by communicating the information itself or indicators derived from it to a state machine configured to facilitate microprocessor testing.Type: GrantFiled: November 25, 1996Date of Patent: September 21, 1999Assignee: Hewlett-Packard CompanyInventors: Gregory L Ranson, Gregg B Lesartre, Russell C Brockmann, Douglas B Hunt, Steven T Mangelsdorf -
Patent number: 5887003Abstract: Method for efficiently and flexibly comparing a group of multi-bit binary fields with a multi-bit expected pattern to generate a set of final match results, one final match result for each binary field in the group. Sets of of bit-wise comparator results are generated, one set for each binary field, by comparing each binary field with the expected pattern. Then, sets of bit-wise mask results are generated for each binary field by bit-wise masking each set of bit-wise comparator results with a mask pattern. Then, a set of preliminary match results is generated. Each preliminary match result is equal to the logical AND of all bits making up the bit-wise mask result set for the corresponding binary field. Then, a set of secondary match results is generated by negating all of the preliminary match results if a negate indicator is asserted.Type: GrantFiled: September 10, 1996Date of Patent: March 23, 1999Assignee: Hewlett-Packard CompanyInventors: Gregory L. Ranson, Russell C. Brockmann, Douglas B. Hunt