Patents by Inventor Gary N. Hammond

Gary N. Hammond 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: 6128706
    Abstract: Apparatus and method for efficiently sharing data in support of hardware he coherency and coordinated in software with semaphore instructions. Accordingly, a new instruction called "Load-Bias" which, in addition to normal load operations, requests a private copy of the data, and hints to the hardware cache to try to maintain ownership until the next memory reference from that processor. When used with the Cmpxchg instruction semaphore operation, the Load-Bias instruction will reduce coherency traffic, and minimize the possibility of coherency ping-ponging or system deadlock that causes the condition in which no processor is getting useful work done.
    Type: Grant
    Filed: February 3, 1998
    Date of Patent: October 3, 2000
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: William R. Bryg, Stephen G. Burger, Gary N. Hammond, Michael L. Ziegler
  • Patent number: 6088780
    Abstract: A method and apparatus for implementing a page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address. According to one aspect of the invention, an apparatus for use in a computer system is provided that includes a page size storage area and a page table walker. The page size storage area is used to store a number of page sizes each selected for translating a different set of virtual addresses. The page table walker includes a selection unit coupled to the page size storage area, as well as a page entry address generator coupled to the selection unit. For each of the virtual address received, the selection unit positions a field in that virtual address based on the page size selected for translating the set of virtual addresses to which that virtual address belongs.
    Type: Grant
    Filed: March 31, 1997
    Date of Patent: July 11, 2000
    Assignee: Institute for the Development of Emerging Architecture, L.L.C.
    Inventors: Koichi Yamada, Gary N. Hammond, Jim Hays, Jonathan Kent Ross, Stephen Burger, William R. Bryg
  • Patent number: 6065115
    Abstract: A microprocessor for efficient processing of instructions in a program flow including a conditional program flow control instruction, such as a branch instruction. The conditional program flow control instruction targets a first code section to be processed if the condition is resolved to be met, and a second code section to be processed if the condition is resolved to be not met. A fetch unit fetches instructions to be processed and branch prediction logic coupled to the fetch unit predicts the resolution of the condition. The branch prediction logic of the invention also determines whether resolution of the condition is unlikely to be predicted accurately. Stream management logic responsive to the branch prediction logic directs speculative processing of instructions from both the first and second code sections prior to resolution of the condition if resolution of the condition is unlikely to be predicted accurately.
    Type: Grant
    Filed: April 10, 1998
    Date of Patent: May 16, 2000
    Assignee: Intel Corporation
    Inventors: Harshvardhan P. Sharangpani, Gary N. Hammond, Hans J. Mulder, Judge K. Arora
  • Patent number: 6055652
    Abstract: A new method and apparatus are used to check for segment limit violations during memory access. When a segment descriptor is retrieved during the initialization of a segment, the segment limit from the segment descriptor is used to create five limits. The five limits are the last possible address within the segment for each size of memory access. During a subsequent memory access, the limit corresponding to the segment being accessed and the length of memory access is selected. The selected limit is compared against the address of the memory access to determine if a limit violation has occurred. If a limit violation has occurred, a flag is set that, when read, will cause an exception.
    Type: Grant
    Filed: May 19, 1999
    Date of Patent: April 25, 2000
    Assignee: Intel Corporation
    Inventors: Nazar A. Zaidi, Kenneth D. Shoemaker, Gary N. Hammond
  • Patent number: 6052801
    Abstract: A method and apparatus for providing breakpoints on a selectable address range. The apparatus generally includes a processor including a first storage area, a second storage area, a circuit and an execution unit. The first storage area has stored therein a first address, while the second storage area has stored therein a mask. The first address and the mask define an address range. In response to receiving a second address, the circuit accesses the first address stored in the first storage area and the mask stored in the second storage area. The circuit transmits a signal to cause a debug event if the second address is within the address range defined by the first address and the mask.
    Type: Grant
    Filed: May 10, 1995
    Date of Patent: April 18, 2000
    Assignee: Intel Corporation
    Inventors: Gary N. Hammond, Donald Alpert
  • Patent number: 6049897
    Abstract: A new method and apparatus are used to check for segment limit violations during memory access. When a segment descriptor is retrieved during the initialization of a segment, the segment limit from the segment descriptor is used to create five limits. The five limits are the last possible address within the segment for each size of memory access. During a subsequent memory access, the limit corresponding to the segment being accessed and the length of memory access is selected. The selected limit is compared against the address of the memory access to determine if a limit violation has occurred. If a limit violation has occurred, a flag is set that, when read, will cause an exception.
    Type: Grant
    Filed: January 7, 1997
    Date of Patent: April 11, 2000
    Assignee: Intel Corporation
    Inventors: Nazar A. Zaidi, Kenneth D. Shoemaker, Gary N. Hammond
  • Patent number: 6012132
    Abstract: A method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table. According to one aspect of the invention, an apparatus for use in a computer system is provided that includes a page size storage area and a page table walker. The page size storage area is used to store a number of page sizes selected for translating a number of virtual addresses. The page table walker includes a selection unit coupled to the page size storage area, as well as a page entry address generator coupled to the selection unit. For each virtual address received by the selection unit, the selection unit positions a field in that virtual address based on the page size selected for translating that virtual address. In response to receiving the bits in the field identified for each of the virtual addresses, the page entry address generator identifies an entry in a page table based on those bits.
    Type: Grant
    Filed: March 31, 1997
    Date of Patent: January 4, 2000
    Assignee: Intel Corporation
    Inventors: Koichi Yamada, Gary N. Hammond
  • Patent number: 6006325
    Abstract: A new instruction that ensures that the effects of a control register write will be observed at a well defined time is introduced. Specifically, the present invention introduces the concept of a serialization fence instruction. The serialization fence instruction ensures that after a control register in a computer has been modified, all subsequent instructions will observe the effects of the control register modification. Two different serialization fence instructions are illustrated: a data memory reference serialization fence instruction (SRLZ.d) and an instruction fetch serialization fence instruction (SRLZ.i). The data memory reference serialization fence instruction ensures that subsequent instruction executions and data memory references will observe the effects of the control register write. The instruction fetch serialization fence instruction ensures that the entire machine pipeline, starting at the initial instruction fetch stage, will observe the effects of the control register write.
    Type: Grant
    Filed: December 19, 1996
    Date of Patent: December 21, 1999
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Stephen Burger, Gary N. Hammond, William R. Bryg
  • Patent number: 5940872
    Abstract: A translation lookaside buffer (TLB) is provided including a first storage location in the TLB for storing at least a portion of a first virtual to physical memory translation. The first storage location in the TLB is both hardware-managed and software-managed. The TLB also includes a second storage location in the TLB for storing at least a portion of a second virtual to physical memory translation. The second storage location in the TLB is only software-managed.
    Type: Grant
    Filed: November 1, 1996
    Date of Patent: August 17, 1999
    Assignee: Intel Corporation
    Inventors: Gary N. Hammond, Koichi Yamada, Stephen G. Burger, James O. Hays, Jonathan K. Ross, William R. Bryg
  • Patent number: 5918250
    Abstract: A method and apparatus for installing translations in a translation look-aside buffer. According to the method, each translation contains either a first attribute or a second attribute. Either the first attribute or the second attribute is selected as a default attribute to be preloaded into a translation installation storage area. When it is determined that a translation for translating a virtual address into its corresponding translated address is not stored in the translation look-aside buffer, the attribute area of the translation installation storage area is loaded with the selected default attribute (This translation installation storage area also contains a virtual address area and a translated address area). Then, the translation for the virtual address is determined. The data stored in the translation installation storage area is altered as necessary, to represent the determined translation.
    Type: Grant
    Filed: May 5, 1995
    Date of Patent: June 29, 1999
    Assignee: Intel Corporation
    Inventor: Gary N. Hammond
  • Patent number: 5918251
    Abstract: A method and apparatus for streamlining the installation of virtual to physical address translations into a translation unit. According to one aspect of the invention, an apparatus for use in a computer system is provided that generally includes a translation unit, a default attribute storage area, and a preload unit. The translation unit stores translations for translating virtual addresses into physical addresses, and each of these translations includes an attribute field. The default translation attribute storage area stores a number of default translation attributes. The preload unit is coupled to the default translation unit and the translation unit. In response to receiving a signal from the translation unit indicating a translation for a virtual address is not stored in the translation unit, the preload unit transmits the appropriate default translation attribute to the translation unit.
    Type: Grant
    Filed: December 23, 1996
    Date of Patent: June 29, 1999
    Assignee: Intel Corporation
    Inventors: Koichi Yamada, Gary N. Hammond
  • Patent number: 5915117
    Abstract: The inventive system and method allows for software control of hardware drral of exceptions in speculative operations, and comprises three components. The first component is processor stored information which reflects the code generation strategy of applications and is used by hardware and the operating system to control exception deferral. The second component is processor stored information set by the operating system to specify to hardware which type of faults should be automatically deferred. The third component is further processor stored information which indicates to the hardware to defer certain exception causing aspects of the speculative operation, while performing other non excepting aspects of the speculative operation. The stored information is set after the operating system exception handler has unsuccessfully attempted fault resolution.
    Type: Grant
    Filed: October 13, 1997
    Date of Patent: June 22, 1999
    Assignee: Institute For The Development of Emerging Architectures, L.L.C.
    Inventors: Jonathan K. Ross, Jack D. Mills, James O. Hays, Stephen G. Burger, Dale C. Morris, Carol L. Thompson, Rajiv Gupta, Stefan M. Freudenberger, Gary N. Hammond, Ralph M. Kling
  • Patent number: 5895489
    Abstract: A memory management system for a computer, where cache coherency between a descriptor cache and data cache is preserved through an inclusion bit mechanism. In one embodiment, an inclusion bit is set for a descriptor cached in a data cache corresponding to a descriptor cached in a descriptor cache such that the association between the descriptors is indicated. Whenever a descriptor in the data cache with a set inclusion bit is altered, the entire descriptor cache is flushed by virtue of the set inclusion bit. Furthermore, in the same embodiment, a valid bit is set for a descriptor in the data cache which is cached from the descriptor table. Whenever a descriptor in the descriptor table, which has a valid bit set in the data cache, is modified, the valid bit is reset. And if the same descriptor with its valid bit reset has a set inclusion bit, then the entire descriptor cache is flushed.
    Type: Grant
    Filed: October 16, 1991
    Date of Patent: April 20, 1999
    Assignee: Intel Corporation
    Inventors: Gary N. Hammond, Pradeep Dubey, Mustafiz R. Choudhury
  • Patent number: 5860017
    Abstract: A microprocessor for efficient processing of instructions in a program flow including a conditional program flow control instruction, such as a branch instruction. The conditional program flow control instruction targets a first code section to be processed if the condition is resolved to be met, and a second code section to be processed if the condition is resolved to be not met. A fetch unit fetches instructions to be processed and branch prediction logic coupled to the fetch unit predicts the resolution of the condition. The branch prediction logic of the invention also determines whether resolution of the condition is unlikely to be predicted accurately. Stream management logic responsive to the branch prediction logic directs speculative processing of instructions from both the first and second code sections prior to resolution of the condition if resolution of the condition is unlikely to be predicted accurately.
    Type: Grant
    Filed: June 28, 1996
    Date of Patent: January 12, 1999
    Assignee: Intel Corporation
    Inventors: Harshvardhan P. Sharangpani, Gary N. Hammond, Hans J. Mulder, Judge K. Arora
  • Patent number: 5832260
    Abstract: A processor microarchitecture for efficient processing of instructions in a program including a program flow control instruction. The program flow control instruction specifies a target instruction and includes one or more candidate instructions between the target instruction and the program flow control instruction. A fetch unit fetches instructions in the program from the memory. Control logic stores one or more candidate instructions in the buffer prior to resolution of the conditional program flow control instruction in response to the fetch unit fetching a program flow control instruction specifying a target instruction within a predetermined number of instructions from the conditional program flow control instruction. In another embodiment, the candidate instructions are stored only if the conditional branch instruction is considered to be difficult to predict.
    Type: Grant
    Filed: December 29, 1995
    Date of Patent: November 3, 1998
    Assignee: Intel Corporation
    Inventors: Judge K. Arora, Gary N. Hammond, Harshvardhan P. Sharangpani
  • Patent number: 5659679
    Abstract: According to one aspect of the invention, an apparatus for providing the source address of an instruction which causes a branch to be taken (e.g., instructs the processor to transfer the flow of execution) is described. In one embodiment, a processor includes a circuit coupled to a source address storage area. In response to the processor executing an instruction which instructs the processor to transfer the flow of execution to another instruction, the circuit stores in the source address storage area the address of the instruction which is causing the transfer in flow of execution.According to another aspect of the invention, a method for profiling is provided. According to this method, a starting address for execution is stored. Then for the instruction currently being executed, it is determined if that instruction will cause a branch from a source address to a destination address.
    Type: Grant
    Filed: May 30, 1995
    Date of Patent: August 19, 1997
    Assignee: Intel Corporation
    Inventors: Donald Alpert, Gary N. Hammond
  • Patent number: 5638525
    Abstract: A data processor is described. The data processor is capable of decoding and executing the first instruction of a first instruction set and the second instruction of a second instruction set wherein the first instruction and the second instruction originate from a single computer program. Alternatively, the data processor can also execute a first instruction of a first instruction set in a first instruction set mode, receive a first interruption indication in the first instruction set mode, service the first interruption indication in a second instruction set mode, return to the first instruction set mode, receive a second interruption indication in the first instruction set mode, and service the second interruption indication in the first instruction set mode.
    Type: Grant
    Filed: February 10, 1995
    Date of Patent: June 10, 1997
    Assignee: Intel Corporation
    Inventors: Gary N. Hammond, Kevin C. Kahn, Donald B. Alpert
  • Patent number: 5283874
    Abstract: Apparatus and methods for expediting the completion of microprocessor instructions using a microprocessor pipelining system. Two or more dependent instructions processed through two or more microprocessor pipelines are simultaneously completed. This simultaneous completion of the two or more dependent instructions is achieved by the use of an Advanced Cross Coupler which operates as a link between a number of pipelines.
    Type: Grant
    Filed: October 21, 1991
    Date of Patent: February 1, 1994
    Assignee: Intel Corporation
    Inventor: Gary N. Hammond
  • Patent number: 4920536
    Abstract: In a data processing system in which a processor has a cache receiving data staged from at least two main memories. Performance is enhanced by providing an indicator identifying the main memory from which data is staged. When data in the cache is destaged, the indicator is used to direct the destaged data to the proper main memory. If an error occur in the indicator, the data will be destaged to each main memory where a check is made on the address of the data to determine whether the main memory is the source of the destaged data. The data is stored in a main memory only if the memory is the source thereof.
    Type: Grant
    Filed: October 14, 1988
    Date of Patent: April 24, 1990
    Assignee: Amdahl Corporation
    Inventors: Gary N. Hammond, Michael D. Taylor, Nongnuch Taylor