Patents by Inventor Thomas Sartorius

Thomas Sartorius 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: 20070094475
    Abstract: A processing system may include a memory configured to store data in a plurality of pages, a TLB, and a memory cache including a plurality of cache lines. Each page in the memory may include a plurality of lines of memory. The memory cache may permit, when a virtual address is presented to the cache, a matching cache line to be identified from the plurality of cache lines, the matching cache line having a matching address that matches the virtual address. The memory cache may be configured to permit one or more page attributes of a page located at the matching address to be retrieved from the memory cache and not from the TLB, by further storing in each one of the cache lines a page attribute of the line of data stored in the cache line.
    Type: Application
    Filed: October 20, 2005
    Publication date: April 26, 2007
    Inventors: Jeffrey Bridges, James Dieffenderfer, Thomas Sartorius, Brian Stempel, Rodney Smith
  • Publication number: 20070067574
    Abstract: A method of managing cache partitions provides a first pointer for higher priority writes and a second pointer for lower priority writes, and uses the first pointer to delimit the lower priority writes. For example, locked writes have greater priority than unlocked writes, and a first pointer may be used for locked writes, and a second pointer may be used for unlocked writes. The first pointer is advanced responsive to making locked writes, and its advancement thus defines a locked region and an unlocked region. The second pointer is advanced responsive to making unlocked writes. The second pointer also is advanced (or retreated) as needed to prevent it from pointing to locations already traversed by the first pointer. Thus, the pointer delimits the unlocked region and allows the locked region to grow at the expense of the unlocked region.
    Type: Application
    Filed: September 21, 2005
    Publication date: March 22, 2007
    Inventors: Brian Stempel, James Dieffenderfer, Jeffrey Bridges, Thomas Sartorius, Rodney Smith, Robert Clancy, Victor Augsburg
  • Publication number: 20070050594
    Abstract: A processor includes a hierarchical Translation Lookaside Buffer (TLB) comprising a Level-1 TLB and a small, high-speed Level-0 TLB. Entries in the L0 TLB replicate entries in the L1 TLB. The processor first accesses the L0 TLB in an address translation, and access the L1 TLB if a virtual address misses in the L0 TLB. When the virtual address hits in the L1 TLB, the virtual address, physical address, and page attributes are written to the L0 TLB, replacing an existing entry if the L0 TLB is full. The entry may be locked against replacement in the L0 TLB in response to an L0 Lock (L0L) indicator in the L1 TLB entry. Similarly, in a hardware-managed L1 TLB, entries may be locked against replacement in response to an L1 Lock (L1L) indicator in the corresponding page table entry.
    Type: Application
    Filed: August 23, 2005
    Publication date: March 1, 2007
    Inventors: Victor Augsburg, James Dieffenderfer, Jeffrey Bridges, Thomas Sartorius
  • Publication number: 20070038826
    Abstract: A register file is disclosed. The register file includes a plurality of registers and a decoder. The decoder may be configured to receive an address for any one of the registers, and disable a read operation to the addressed register if data in the addressed register is invalid.
    Type: Application
    Filed: August 10, 2005
    Publication date: February 15, 2007
    Inventors: James Dieffenderfer, Thomas Sartorius, Jeffrey Bridges, Michael McIlvaine, Gregory Burda
  • Publication number: 20070033303
    Abstract: A method and system for messaging between processors and co-processors connected through a bus. The method permits a multi-thread system processor to request the services of a processor or co-processor located on the bus. Message control blocks are stored in a memory which identify the physical address of the target processor, as well as a memory location in the memory dedicated to the thread requesting the service. When the system processor requests service of a processor or co-processor, a DCR command is created pointing to the message control block. A message is built from information contained in the message control block or transferred to the processor or co-processor. The return address for the processor or co-processor message is concatenated with the thread number, so that the processor or co-processor can create a return message specifically identifying memory space dedicated to the requesting thread for storage of the response message.
    Type: Application
    Filed: August 5, 2005
    Publication date: February 8, 2007
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Jeffrey Bridges, Gordon Davis, Thomas Sartorius, Michael Siegel
  • Publication number: 20070028050
    Abstract: A fixed number of variable-length instructions are stored in each line of an instruction cache. The variable-length instructions are aligned along predetermined boundaries. Since the length of each instruction in the line, and hence the span of memory the instructions occupy, is not known, the address of the next following instruction is calculated and stored with the cache line. Ascertaining the instruction boundaries, aligning the instructions, and calculating the next fetch address are performed in a predecoder prior to placing the instructions in the cache.
    Type: Application
    Filed: July 29, 2005
    Publication date: February 1, 2007
    Inventors: Jeffrey Bridges, James Dieffenderfer, Rodney Smith, Thomas Sartorius
  • Publication number: 20070005933
    Abstract: A processor includes a memory configured to store data in a plurality of pages, a TLB, and a TLB controller. The TLB is configured to search, when accessed by an instruction having a virtual address, for address translation information that allows the virtual address to be translated into a physical address of one of the plurality of pages, and to provide the address translation information if the address translation information is found within the TLB. The TLB controller is configured to determine whether a current instruction and a subsequent instruction seek access to a same page within the plurality of pages, and if so, to prevent TLB access by the subsequent instruction, and to utilize the results of the TLB access of a previous instruction for the current instruction.
    Type: Application
    Filed: June 29, 2005
    Publication date: January 4, 2007
    Inventors: Brian Kopec, Victor Augsburg, James Dieffenderfer, Jeffrey Bridges, Thomas Sartorius
  • Publication number: 20060294346
    Abstract: In one or more embodiments, a processor includes a link return stack circuit used for storing branch return addresses, wherein a link return stack controller is configured to determine that one or more entries in the link return stack are invalid as being dependent on a mispredicted branch, and to reset the link return stack to a valid remaining entry, if any. In this manner, branch mispredictions cause dependent entries in the link return stack to be flushed from the link return stack, or otherwise invalidated, while preserving the remaining valid entries, if any, in the link return stack. In at least one embodiment, a branch information queue used for tracking predicted branches is configured to store a marker indicating whether a predicted branch has an associated entry in the link return stack, and it may store an index value identifying the specific, corresponding entry in the link return stack.
    Type: Application
    Filed: June 22, 2005
    Publication date: December 28, 2006
    Inventors: Brian Stempel, James Dieffenderfer, Thomas Sartorius, Rodney Smith
  • Publication number: 20060282829
    Abstract: In one or more embodiments, a processor includes one or more circuits to flush instructions from an instruction pipeline on a selective basis responsive to detecting a branch misprediction, such that those instructions marked as being dependent on the branch instruction associated with the branch misprediction are flushed. Thus, the one or more circuits may be configured to mark instructions fetched into the processor's instruction pipeline(s) to indicate their branch prediction dependencies, directly or indirectly detect incorrect branch predictions, and directly or indirectly flush instructions in the instruction pipeline(s) that are marked as being dependent on an incorrect branch prediction.
    Type: Application
    Filed: June 10, 2005
    Publication date: December 14, 2006
    Inventors: Michael Mcllvaine, James Dieffenderfer, Thomas Sartorius
  • Publication number: 20060277397
    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: Application
    Filed: June 2, 2005
    Publication date: December 7, 2006
    Inventors: Thomas Sartorius, Brian Stempel, Jeffrey Bridges, James Dieffenderfer, Rodney Smith
  • Publication number: 20060265572
    Abstract: A fetch section of a processor comprises an instruction cache and a pipeline of several stages for obtaining instructions. Instructions may cross cache line boundaries. The pipeline stages process two addresses to recover a complete boundary crossing instruction. During such processing, if the second piece of the instruction is not in the cache, the fetch with regard to the first line is invalidated and recycled. On this first pass, processing of the address for the second part of the instruction is treated as a pre-fetch request to load instruction data to the cache from higher level memory, without passing any of that data to the later stages of the processor. When the first line address passes through the fetch stages again, the second line address follows in the normal order, and both pieces of the instruction are can be fetched from the cache and combined in the normal manner.
    Type: Application
    Filed: May 18, 2005
    Publication date: November 23, 2006
    Inventors: Brian Stempel, Jeffrey Bridges, Rodney Smith, Thomas Sartorius
  • Publication number: 20060236078
    Abstract: A conditional instruction architected to receive one or more operands as inputs, to output to a target the result of an operation performed on the operands if a condition is satisfied, and to not provide an output if the condition is not satisfied, is executed so that it unconditionally provides an output to the target. The conditional instruction obtains the prior value of the target (that is, the value produced by the most recent instruction preceding the conditional instruction that updated that target). The condition is evaluated. If the condition is satisfied, an operation is performed and the result of the operation output to the target. If the condition is not satisfied, the prior value is output to the target. Subsequent instructions may rely on the target as an operand source (whether written to a register or forwarded to the instruction), prior to the condition evaluation.
    Type: Application
    Filed: April 14, 2005
    Publication date: October 19, 2006
    Inventors: Thomas Sartorius, James Dieffenderfer, Jeffrey Bridges, Kenneth Dockser, Michael McIlvaine, Rodney Smith
  • Publication number: 20060218354
    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: Application
    Filed: March 23, 2005
    Publication date: September 28, 2006
    Inventors: Thomas Sartorius, Victor Augsburg, James Dieffenderfer
  • Publication number: 20060218335
    Abstract: The disclosure is directed to a weakly-ordered processing system and method for enforcing strongly-ordered memory access requests in a weakly-ordered processing system. The processing system includes a plurality of memory devices and a plurality of processors. A bus interconnect is configured to interface the processors to the memory devices. The bus interconnect is further configured to enforce an ordering constraint for a strongly-ordered memory access request from an originating processor to a target memory device by sending a memory barrier to each of the other memory devices accessible by the originating processor, except for those memory devices that the bus interconnect can confirm have no unexecuted memory access requests from the originating processor.
    Type: Application
    Filed: October 20, 2005
    Publication date: September 28, 2006
    Inventors: Richard Hofmann, James Dieffenderfer, Thomas Sartorius, Thomas Speier, Jaya Subramaniam Ganasan
  • Publication number: 20060218385
    Abstract: A Branch Target Address Cache (BTAC) stores at least two branch target addresses in each cache line. The BTAC is indexed by a truncated branch instruction address. An offset obtained from a branch prediction offset table determines which of the branch target addresses is taken as the predicted branch target address. The offset table may be indexed in several ways, including by a branch history, by a hash of a branch history and part of the branch instruction address, by a gshare value, randomly, in a round-robin order, or other methods.
    Type: Application
    Filed: March 23, 2005
    Publication date: September 28, 2006
    Inventors: Rodney Smith, James Dieffenderfer, Jeffrey Bridges, Thomas Sartorius
  • Publication number: 20060218358
    Abstract: The disclosure is directed to a weakly-ordered processing system and method for enforcing strongly-ordered memory access requests in a weakly-ordered processing system. The processing system includes a plurality of memory devices and a plurality of processors. Each of the processors are configured to generate memory access requests to one or more of the memory devices, with each of the memory access requests having an attribute that can be asserted to indicate a strongly-ordered request. The processing system further includes a bus interconnect configured to interface the processors to the memory devices, the bus interconnect being further configured to enforce ordering constraints on the memory access requests based on the attributes.
    Type: Application
    Filed: October 19, 2005
    Publication date: September 28, 2006
    Inventors: Richard Hofmann, Thomas Sartorius, Thomas Speier, Jaya Subramaniam Ganasan, James Dieffenderfer, James Sullivan
  • Publication number: 20060212675
    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: Application
    Filed: March 17, 2005
    Publication date: September 21, 2006
    Inventors: Thomas Sartorius, Jeffrey Bridges, James Dieffenderfer, Victor Augsburg
  • Publication number: 20060206688
    Abstract: A renaming register file complex for saving power is described. A mapping unit transforms an instruction register number (IRN) to a logical register number (LRN). The renaming register file maps an LRN to a physical register number (PRN), there being a greater number of physical registers than addressable by direct use of the IRN. The renaming register file uses a content addressable memory (CAM) to provide the mapping function. The renaming register file CAM further uses current processor state information to selectively enable tag comparators to minimize power in accessing registers. When a tag comparator is not enabled it remains in a low power state. A processor using a renaming register file with low power features is also described.
    Type: Application
    Filed: March 3, 2005
    Publication date: September 14, 2006
    Inventors: Jeffrey Bridges, James Dieffenderfer, Michael McIlvaine, Thomas Sartorius
  • Publication number: 20060200651
    Abstract: A processor includes a common instruction decode front end, e.g. fetch and decode stages, and a heterogeneous set of processing pipelines. A lower performance pipeline has fewer stages and may utilize lower speed/power circuitry. A higher performance pipeline has more stages and utilizes faster circuitry. The pipelines share other processor resources, such as an instruction cache, a register file stack, a data cache, a memory interface, and other architected registers within the system. In disclosed examples, the processor is controlled such that processes requiring higher performance run in the higher performance pipeline, whereas those requiring lower performance utilize the lower performance pipeline, in at least some instances while the higher performance pipeline is effectively inactive or even shut-off to minimize power consumption. The configuration of the processor at any given time, that is to say the pipeline(s) currently operating, may be controlled via several different techniques.
    Type: Application
    Filed: March 3, 2005
    Publication date: September 7, 2006
    Inventors: Thomas Collopy, Thomas Sartorius
  • Publication number: 20060200654
    Abstract: The delay of non-executing conditional instructions, that would otherwise be imposed while waiting for late operand data, is alleviated based on an early recognition that such instructions will not execute on the current pass through a pipeline processor. At an appropriate point prior to execution, a determination regarding the condition is made. If the condition is such that the instruction will not execute on this pass through the pipeline, the hold with regard to the conditional instruction may be terminated, that is to say skipped or stopped prior to completion of receiving all the associated operand data. Flow of the non-executing instruction through the pipeline, for example, need not wait for an earlier instruction to compute and write source operand data for use by the conditional instruction.
    Type: Application
    Filed: March 4, 2005
    Publication date: September 7, 2006
    Inventors: James Dieffenderfer, Jeffrey Bridges, Michael McIlvaine, Thomas Sartorius