Patents by Inventor James Norris Dieffenderfer

James Norris Dieffenderfer 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).

  • Publication number: 20080189506
    Abstract: Address translation performance within a processor is improved by identifying an address that causes a boundary crossing between different pages in memory and linking address translation information associated with both memory pages. According to one embodiment of a processor, the processor comprises circuitry configured to recognize an access to a memory region crossing a page boundary between first and second memory pages. The circuitry is also configured to link address translation information associated with the first and second memory pages. Thus, responsive to a subsequent access the same memory region, the address translation information associated with the first and second memory pages is retrievable based on a single address translation.
    Type: Application
    Filed: February 7, 2007
    Publication date: August 7, 2008
    Inventors: Brian Joseph Kopec, Victor Roberts Augsburg, James Norris Dieffenderfer, Thomas Andrew Sartorius
  • Publication number: 20080183967
    Abstract: Techniques and methods are used to reduce allocations to a higher level cache of cache lines displaced from a lower level cache. When it is determined that displaced lines have already been allocated in a higher level, the allocations of the displaced cache lines are prevented in the next level cache, thus, reducing castouts. To such ends, a line is selected to be displaced in a lower level cache. Information associated with the selected line is identified which indicates that the selected line is present in a higher level cache. An allocation of the selected line in the higher level cache is prevented based on the identified information. Preventing an allocation of the selected line saves power that would be associated with the allocation.
    Type: Application
    Filed: January 31, 2007
    Publication date: July 31, 2008
    Inventors: Thomas Philip Speier, James Norris Dieffenderfer, Thomas Andrew Sartorius
  • Publication number: 20080183972
    Abstract: A snoop request cache maintains records of previously issued snoop requests. Upon writing shared data, a snooping entity performs a lookup in the cache. If the lookup hits (and, in some embodiments, includes an identification of a target processor) the snooping entity suppresses the snoop request. If the lookup misses (or hits but the hitting entry lacks an identification of the target processor) the snooping entity allocates an entry in the cache (or sets an identification of the target processor) and directs a snoop request such to the target processor, to change the state of a corresponding line in the processor's L1 cache. When the processor reads shared data, it performs a snoop cache request lookup, and invalidates a hitting entry in the event of a hit (or clears it processor identification from the hitting entry), so that other snooping entities will not suppress snoop requests to it.
    Type: Application
    Filed: January 26, 2007
    Publication date: July 31, 2008
    Inventor: James Norris Dieffenderfer
  • Patent number: 7406613
    Abstract: In a pipelined processor, a pre-decoder in advance of an instruction cache calculates the branch target address (BTA) of PC-relative and absolute address branch instructions. The pre-decoder compares the BTA with the branch instruction address (BIA) to determine whether the target and instruction are in the same memory page. A branch target same page (BTSP) bit indicating this is written to the cache and associated with the instruction. When the branch is executed and evaluated as taken, a TLB access to check permission attributes for the BTA is suppressed if the BTA is in the same page as the BIA, as indicated by the BTSP bit. This reduces power consumption as the TLB access is suppressed and the BTA/BIA comparison is only performed once, when the branch instruction is first fetched. Additionally, the pre-decoder removes the BTA/BIA comparison from the BTA generation and selection critical path.
    Type: Grant
    Filed: December 2, 2004
    Date of Patent: July 29, 2008
    Assignee: QUALCOMM Incorporated
    Inventors: James Norris Dieffenderfer, Thomas Andrew Sartorius, Rodney Wayne Smith, Brian Michael Stempel
  • Publication number: 20080177909
    Abstract: A Content-Terminated Direct Memory Access (CT-DMA) circuit autonomously transfers data of an unknown length from a source to a destination, terminating the transfer based on the content of the data. Filter criteria are provided to the CT-DMA prior to the data transfer. The filter criteria include pattern data that are compared to transfer data, and transfer termination rules for interpreting the comparison results. Data are written to the destination until the filter criteria are met. Representative filter criteria may include that one or more units of transfer data match pattern data; that one or more units of transfer data fail to match pattern data; or that one or more units of transfer data match pattern data a predetermined number of times.
    Type: Application
    Filed: January 24, 2007
    Publication date: July 24, 2008
    Inventors: Kevin Allen Sapp, James Norris Dieffenderfer
  • Publication number: 20080177992
    Abstract: A processor pipeline is segmented into an upper portion—prior to instructions going out of program order—and one or more lower portions beyond the upper portion. The upper pipeline is flushed upon detecting that a branch instruction was mispredicted, minimizing the delay in fetching of instructions from the correct branch target address. The lower pipelines may continue execution until the mispredicted branch instruction confirms, at which time all uncommitted instructions are flushed from the lower pipelines. Existing exception pipeline flushing mechanisms may be utilized, by adding a mispredicted branch identifier, reducing the complexity and hardware cost of flushing the lower pipelines.
    Type: Application
    Filed: January 24, 2007
    Publication date: July 24, 2008
    Inventors: Rodney Wayne Smith, James Norris Dieffenderfer, Michael Scott McIlvaine, Thomas Andrew Sartorius
  • Publication number: 20080177987
    Abstract: Intermediate results are passed between constituent instructions of an expanded instruction using register renaming resources and control logic. A first constituent instruction generates intermediate results and is assigned a PRN in a constituent instruction rename table, and writes intermediate results to the identified physical register. A second constituent instruction performs a look up in the constituent instruction rename table and reads the intermediate results from the physical register. Constituent instruction rename logic tracks the constituent instructions through the pipeline, and delete the constituent instruction rename table entry and returns the PRN to a free list when the second constituent instruction has read the intermediate results.
    Type: Application
    Filed: January 24, 2007
    Publication date: July 24, 2008
    Inventors: Michael Scott McIlvaine, James Norris Dieffenderfer, Nathan Samuel Nunamaker, Thomas Andrew Sartorius, Rodney Wayne Smith
  • Publication number: 20080140996
    Abstract: When misses occur in an instruction cache, prefetching techniques are used that minimize miss rates, memory access bandwidth, and power use. One of the prefetching techniques operates when a miss occurs. A notification that a fetch address missed in an instruction cache is received. The fetch address that caused the miss is analyzed to determine an attribute of the fetch address and based on the attribute a line of instructions is prefetched. The attribute may indicate that the fetch address is a target address of a non-sequential operation. Another attribute may indicate that the fetch address is a target address of a non-sequential operation and the target address is more than X % into a cache line. A further attribute may indicate that the fetch address is an even address in the instruction cache. Such attributes may be combined to determine whether to prefetch.
    Type: Application
    Filed: December 8, 2006
    Publication date: June 12, 2008
    Inventors: Michael William Morrow, James Norris Dieffenderfer
  • Patent number: 7376815
    Abstract: Techniques for ensuring a synchronized predecoding of an instruction string are disclosed. The instruction string contains instructions from a variable length instruction set and embedded data. One technique includes defining a granule to be equal to the smallest length instruction in the instruction set and defining the number of granules that compose the longest length instruction in the instruction set to be MAX. The technique further includes determining the end of an embedded data segment, when a program is compiled or assembled into the instruction string and inserting a padding of length, MAX?1, into the instruction string to the end of the embedded data. Upon predecoding of the padded instruction string, a predecoder maintains synchronization with the instructions in the padded instruction string even if embedded data is coincidentally encoded to resemble an existing instruction in the variable length instruction set.
    Type: Grant
    Filed: February 25, 2005
    Date of Patent: May 20, 2008
    Assignee: QUALCOMM Incorporated
    Inventors: Rodney Wayne Smith, James Norris Dieffenderfer, Jeffrey Todd Bridges, Thomas Andrew Sartorius
  • Publication number: 20080115026
    Abstract: The content and order of a predetermined sequence of hard-coded and/or quasi-programmable test patterns may be altered during a Built-In Self-Test (BIST) routine. As such, knowledge gained post design completion may be reflected in the selection and arrangement of available tests to be executed during a BIST routine. In one embodiment, a sequence of hard-coded and/or quasi-programmable tests is executed during a BIST routine by receiving test ordering information for the sequence of tests and executing the sequence of tests in an order indicated by the test ordering information. A corresponding BIST circuit comprises a storage element and a state machine. The storage element is configured to store test ordering information for the sequence of tests. The state machine is configured to execute the sequence of tests in an order indicated by the test ordering information.
    Type: Application
    Filed: October 27, 2006
    Publication date: May 15, 2008
    Inventors: James Norris Dieffenderfer, Anand Krishnamurthy, Clint Wayne Mumford, Jason Lawrence Panavich, Ketan Vitthal Patel, Ravi Rajagopalan, Thomas Philip Speier
  • Publication number: 20080109644
    Abstract: A method of processing branch history information is disclosed. The method retrieves branch instructions from an instruction cache and executes the branch instructions in a plurality of pipeline stages. The method verifies that a branch instruction has been identified. The method further receives branch history information during a first pipeline stage and loads the branch history information into a first register, wherein the first register. The method further loads the branch history information into the second register during the second pipeline stage.
    Type: Application
    Filed: November 3, 2006
    Publication date: May 8, 2008
    Inventors: Brian Michael Stempel, James Norris Dieffenderfer, Thomas Andrew Sartorius, Rodney Wayne Smith
  • Publication number: 20080109691
    Abstract: During a Built-In Self-Test (BIST) routine, execution of a sequence of tests is re-initiated after a corrective action is taken starting with the test having the highest re-ordered priority. The test having the highest re-ordered priority corresponds to a test in a sequence of tests that detected the error corresponding to the corrective action taken or a related test in the case where the test that detected the error is dependent upon results generated by the related test. According to one embodiment, a BIST routine is executed by initiating execution of a sequence of tests configured to detect errors and, after a corrective action is taken in response to one or more of the errors being detected, re-initiating execution of the sequence of tests starting with the test that detected the error corresponding to the corrective action most recently taken.
    Type: Application
    Filed: October 27, 2006
    Publication date: May 8, 2008
    Inventors: James Norris Dieffenderfer, Anand Krishnamurthy, Clint Wayne Mumford, Thomas Philip Speier
  • Patent number: 7366869
    Abstract: A system for optimizing translation lookaside buffer entries is provided. The system includes a translation lookaside buffer configured to store a number of entries, each entry having a size attribute, each entry referencing a corresponding page, and control logic configured to modify the size attribute of an existing entry in the translation lookaside buffer if a new page is contiguous with an existing page referenced by the existing entry. The existing entry after having had its size attribute modified references a consolidated page comprising the existing page and the new page.
    Type: Grant
    Filed: March 17, 2005
    Date of Patent: April 29, 2008
    Assignee: Qualcomm Incorporated
    Inventors: Thomas Andrew Sartorius, Jeffrey Todd Bridges, James Norris Dieffenderfer, Victor Roberts Augsburg
  • Patent number: 7353319
    Abstract: In a multiprocessor system, accesses to a given processor's banked cache are controlled such that shared data accesses are directed to one or more banks designated for holding shared data and/or non-shared data accesses are directed to one or more banks designated for holding non-shared data. A non-shared data bank may be designated exclusively for holding non-shared data, so that shared data accesses do not interfere with non-shared accesses to that bank. Also, a shared data bank may be designated exclusively for holding shared data, and one or more banks may be designated for holding both shared and non-shared data. An access control circuit directs shared and non-shared accesses to respective banks based on receiving a shared indication signal in association with the accesses. Further, in one or more embodiments, the access control circuit reconfigures one or more bank designations responsive to a bank configuration signal.
    Type: Grant
    Filed: June 2, 2005
    Date of Patent: April 1, 2008
    Assignee: QUALCOMM Incorporated
    Inventors: Thomas Philip Speier, James Norris Dieffenderfer
  • Publication number: 20080077781
    Abstract: A method of resolving simultaneous branch predictions prior to validation of the predicted branch instruction is disclosed. The method includes processing two or more predicted branch instructions, with each predicted branch instruction having a predicted state and a corrected state. The method further includes selecting one of the corrected states. Should one of the predicted branch instructions be mispredicted, the selected corrected state is used to direct future instruction fetches.
    Type: Application
    Filed: September 27, 2006
    Publication date: March 27, 2008
    Inventors: Rodney Wayne Smith, Brian Michael Stempel, James Norris Dieffenderfer, Thomas Andrew Sartorius
  • Publication number: 20080059780
    Abstract: An apparatus for emulating the branch prediction behavior of an explicit subroutine call is disclosed. The apparatus includes a first input which is configured to receive an instruction address and a second input. The second input is configured to receive predecode information which describes the instruction address as being related to an implicit subroutine call to a subroutine. In response to the predecode information, the apparatus also includes an adder configured to add a constant to the instruction address defining a return address, causing the return address to be stored to an explicit subroutine resource, thus, facilitating subsequent branch prediction of a return call instruction.
    Type: Application
    Filed: August 31, 2006
    Publication date: March 6, 2008
    Inventors: Brian Michael Stempel, James Norris Dieffenderfer, Thomas Andrew Sartorius, Rodney Wayne Smith
  • Patent number: 7330941
    Abstract: A processor includes a cache memory having at least one entry managed according to a copy-back algorithm. A global modified indicator (GMI) indicates whether any copy-back entry in the cache contains modified data. On a cache miss, if the GMI indicates that no copy-back entry in the cache contains modified data, data fetched from memory are written to the selected entry without first reading the entry. In a banked cache, two or more bank-GMIs may be associated with two or more banks. In an n-way set associative cache, n set-GMIs may be associated with the n sets. Suppressing the read to determine if the copy-back cache entry contains modified data improves processor performance and reduces power consumption.
    Type: Grant
    Filed: March 23, 2005
    Date of Patent: February 12, 2008
    Assignee: QUALCOMM Incorporated
    Inventors: Thomas Andrew Sartorius, Victor Roberts Augsburg, James Norris Dieffenderfer
  • Publication number: 20070283134
    Abstract: A sliding-window, block-based Branch Target Address Cache (BTAC) comprises a plurality of entries, each entry associated with a block of instructions containing at least one branch instruction having been evaluated taken, and having a tag associated with the address of the first instruction in the block. The blocks each correspond to a group of instructions fetched from memory, such as an I-cache. Where a branch instruction is included in two or more fetch groups, it is also included in two or more instruction blocks associated with BTAC entries. The sliding-window, block-based BTAC allows for storing the Branch Target Address (BTA) of two or more taken branch instructions that fall in the same instruction block, without providing for multiple BTA storage space in each BTAC entry, by storing BTAC entries associated with different instruction blocks, each containing at least one of the taken branch instructions.
    Type: Application
    Filed: June 5, 2006
    Publication date: December 6, 2007
    Inventors: Rodney Wayne Smith, James Norris Dieffenderfer, Thomas Andrew Sartorius, Brian Michael Stempel
  • Patent number: 7296175
    Abstract: A method of designing a system on a chip (SoC) to operate with varying latencies and frequencies. A layout of the chip is designed with specific placement of devices, including a bus controller, initiator, and target devices. The time for a signal to propagate from a source device to a destination device is determined relative to a default propagation time. A pipeline stage is then inserted into a bus path between said source device and destination device for each additional time the signal takes to propagate. Each device (i.e., initiators, targets, and bus controller) is designed with logic to control a protocol that functions with a variety of response latencies. With the additional logic, the devices do not need to be changed when pipeline stages are inserted in the various paths. Registers are utilized as the pipeline stages that are inserted within the paths.
    Type: Grant
    Filed: October 22, 2004
    Date of Patent: November 13, 2007
    Assignee: International Business Machines Corporation
    Inventors: Victor Roberts Augsburg, James Norris Dieffenderfer, Bernard Charles Drerup, Richard Gerard Hofmann, Thomas Andrew Sartorius, Barry Joe Wolford
  • Patent number: 7278012
    Abstract: A microprocessor includes two branch history tables, and is configured to use a first one of the branch history tables for predicting branch instructions that are hits in a branch target cache, and to use a second one of the branch history tables for predicting branch instructions that are misses in the branch target cache. As such, the first branch history table is configured to have an access speed matched to that of the branch target cache, so that its prediction information is timely available relative to branch target cache hit detection, which may happen early in the microprocessor's instruction pipeline. The second branch history table thus need only be as fast as is required for providing timely prediction information in association with recognizing branch target cache misses as branch instructions, such as at the instruction decode stage(s) of the instruction pipeline.
    Type: Grant
    Filed: June 2, 2005
    Date of Patent: October 2, 2007
    Assignee: QUALCOMM Incorporated
    Inventors: Thomas Andrew Sartorius, Brian Michael Stempel, Jeffrey Todd Bridges, James Norris Dieffenderfer, Rodney Wayne Smith