Predicting, Look-ahead Patents (Class 711/204)
  • Patent number: 5953747
    Abstract: A prediction mechanism for improving direct-mapped cache performance is shown to include a direct-mapped cache, partitioned into a plurality of pseudo-banks. Prediction means are employed to provide a prediction index which is appended to the cache index to provide the entire address for addressing the direct mapped cache. One embodiment of the prediction means includes a prediction cache which is advantageously larger than the pseudo-banks of the direct-mapped cache and is used to store the prediction index for each cache location. A second embodiment includes a plurality of partial tag stores, each including a predetermined number of tag bits for the data in each bank. A comparison of the tags generates a match in one of the plurality of tag stores, and is used in turn to generate a prediction index.
    Type: Grant
    Filed: June 26, 1996
    Date of Patent: September 14, 1999
    Assignee: Digital Equipment Corporation
    Inventors: Simon C. Steely, Jr., Joseph Dominic Macri
  • Patent number: 5953512
    Abstract: A load target circuit (56) with a plurality of entries (56.sub.1). Each the plurality of entries in the load target circuit comprises a value (ADDRESS TAG) for corresponding the line to a data fetching instruction. Additionally, each load target circuit line also includes a plurality of pointers (POINTER A, POINTER B, POINTER C). Each of the plurality of pointers is for storing a target data address corresponding to an incident of the data fetching instruction.
    Type: Grant
    Filed: December 29, 1997
    Date of Patent: September 14, 1999
    Assignee: Texas Instruments Incorporated
    Inventors: George Z. N. Cai, Jonathan H. Shiell
  • Patent number: 5940876
    Abstract: A microprocessor is configured to execute a stride instruction. In response to the stride instruction, the microprocessor performs a series of load memory operations. The address corresponding to a particular load memory operation is the sum of a stride operand of the stride instruction and the address corresponding to another load memory operation immediately preceding the particular load memory operation in the series. A base address operand specifies the address of the first load memory operation in the series, and a repetition count operand specifies the number of load memory operations in the series. The cache lines corresponding to the series of load memory operations (i.e. the cache lines storing the bytes addressed by the load memory operations) are fetched into the data cache of the microprocessor in response to the series of load memory operations.
    Type: Grant
    Filed: April 2, 1997
    Date of Patent: August 17, 1999
    Assignee: Advanced Micro Devices, Inc.
    Inventor: James K. Pickett
  • Patent number: 5933852
    Abstract: A computer system includes a memory requester that interfaces with a memory module that includes memory portions. A remapping table that maps each of the defective memory portions to a respective non-defective memory portion in the memory module is created and then stored. Also, a usage table that maps each of a subset of the defective memory portions to a respective non-defective memory portion is created and stored. The defective memory portions of the subset are selected based on which defective memory portions have been most recently used, i.e., requested. In response to receiving from the memory requester a request for access to a requested memory portion of the memory module, a determination is made whether the requested memory portion is one of the defective memory portions mapped in the usage table or remapping table.
    Type: Grant
    Filed: November 7, 1996
    Date of Patent: August 3, 1999
    Assignee: Micron Electronics, Inc.
    Inventor: Joseph Jeddeloh
  • Patent number: 5918246
    Abstract: An apparatus and method for pre-loading a cache memory based on information contained in a compiler generated program map are disclosed. The program map is generated by the compiler at the time source code is compiled into object code. For each application program, the user would have this program map stored with the object file. At the beginning of the program execution cycle, the operating system will determine whether or not a program map exists for the application. If a program map exists, the operating system will load the program map into an area of RAM designated as the program map random access memory (RAM). The program map will be used to pre-load the cache with the appropriate data and instructions for the central processing unit (CPU) to process. The program mapping would be the address location of each jump/branch target that the CPU might encounter during the execution cycle. Each of these locations represent a starting point for a new code sequence.
    Type: Grant
    Filed: January 23, 1997
    Date of Patent: June 29, 1999
    Assignee: International Business Machines Corporation
    Inventors: Kenneth Joseph Goodnow, Clarence Rosser Ogilvie, Wilbur David Pricer, Sebastian Theodore Ventrone
  • Patent number: 5900885
    Abstract: A method for providing a video buffer includes reserving an incremental video buffer in system memory, and controlling the use of a dedicated video buffer and the incremental video buffer to provide a composite video buffer.
    Type: Grant
    Filed: September 3, 1996
    Date of Patent: May 4, 1999
    Assignee: Compaq Computer Corp.
    Inventor: James L. Stortz
  • Patent number: 5895503
    Abstract: An improved address translation method and mechanism for memory management in a computer system is disclosed. A segmentation mechanism employing segment registers maps virtual addresses into a linear address space. A paging mechanism optionally maps linear addresses into physical or real addresses. Independent protection of address spaces is provided at each level. Information about the state of real memory pages is kept in segment registers or a segment register cache potentially enabling real memory access to occur simultaneously with address calculation, thereby increasing performance of the computer system.
    Type: Grant
    Filed: June 2, 1995
    Date of Patent: April 20, 1999
    Inventor: Richard A. Belgard
  • Patent number: 5872955
    Abstract: To reduce read and write times for data in a disk drive, the data of a file is rearranged into continuous recording areas on a disk. A file has a host-specified address and a physical address. The physical address corresponds to the recording area on a disk where the file is stored. The host-specified and physical addresses are stored in a conversion table. The controller receives the host-specified address and a command for reading the file. Based on the host-specified address, the controller determines the physical address from the conversion table. Based on the physical address, the controller reads the data from the disk and sends the data to the host. Thereafter, the controller examines the physical address in the conversion table to determine if the data is recorded on a physically continuous recording area on the disk. If not, the data is moved to a physically continuous recording area, and the physical address in the conversion table is updated.
    Type: Grant
    Filed: November 28, 1995
    Date of Patent: February 16, 1999
    Assignee: International Business Machines Corporation
    Inventor: Hideo Asano
  • Patent number: 5860106
    Abstract: An apparatus and method for dynamically adjusting the power/performance characteristics of a memory subsystem. Since the memory subsystem access requirements are heavily dependent on the application being executed, static methods of enabling or disabling the individual memory system components (as are used in prior art) are less than optimal from a power consumption perspective. By dynamically tracking the behavior of the memory subsystem, the invention predicts the probability that the next event will have certain characteristics, such as whether it will result in a memory cycle that requires the attention of a cache memory, whether that memory cycle will result in a cache memory hit, and whether a DRAM page hit in main memory will occur if the requested data is not in one of the levels of cache memory. Based on these probabilities, the invention dynamically enables or disables components of the subsystem.
    Type: Grant
    Filed: July 13, 1995
    Date of Patent: January 12, 1999
    Assignee: Intel Corporation
    Inventors: Stanley J. Domen, Dileep R. Idate, Stephen H. Gunther, George Thangadurai
  • Patent number: 5860147
    Abstract: Some virtual memory systems allow more that one memory page size. To quickly translate virtual page addresses into physical page addresses, a multi-page size translation look-aside buffer is needed. The multi-page size translation look-aside buffer has a virtual address array and a physical address array. The virtual address array has a set of virtual address entries that are compared to a received virtual address. The virtual address array entries have virtual address tag field, a valid bit, and a page size bit. The page size bit defines the size of the memory page and thus defines the number of bits in the virtual address that must be matched with virtual address tag bits in the virtual address array. The valid bit indicates if the entry is valid or not. When a hit is detected in the virtual address array, a corresponding entry in the physical address array is activated. The physical address array comprises a physical page address and a set of page attributes.
    Type: Grant
    Filed: September 16, 1996
    Date of Patent: January 12, 1999
    Assignee: Intel Corporation
    Inventors: Simcha Gochman, Jacob Doweck
  • Patent number: 5860104
    Abstract: A data cache configured to perform store accesses in a single clock cycle is provided. The data cache speculatively stores data within a predicted way of the cache after capturing the data currently being stored in that predicted way. During a subsequent clock cycle, the cache hit information for the store access validates the way prediction. If the way prediction is correct, then the store is complete. If the way prediction is incorrect, then the captured data is restored to the predicted way. If the store access hits in an unpredicted way, the store data is transferred into the correct storage location within the data cache concurrently with the restoration of data in the predicted storage location. Each store for which the way prediction is correct utilizes a single clock cycle of data cache bandwidth. Additionally, the way prediction structure implemented within the data cache bypasses the tag comparisons of the data cache to select data bytes for the output.
    Type: Grant
    Filed: August 31, 1995
    Date of Patent: January 12, 1999
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, Rajiv M. Hattangadi
  • Patent number: 5835962
    Abstract: A memory management unit (MMU) includes a translation lookaside buffer capable of simultaneously servicing three requests supplied to the MMU by an instruction cache and two data caches, respectively. Also, an arbiter selects one of several pending requests from sources of different priorities for immediate processing by the MMU, using a process which avoids undue delay in servicing requests from sources of lower priority.
    Type: Grant
    Filed: December 24, 1996
    Date of Patent: November 10, 1998
    Assignee: Fujitsu Limited
    Inventors: Chih-Wei David Chang, Kioumars Dawallu, Joel F. Boney, Ming-Ying Li, Jen-Hong Charles Chen
  • Patent number: 5832205
    Abstract: A memory controller for a microprocessor including apparatus to both detect a failure of speculation on the nature of the memory being addressed, and apparatus to recover from such failures.
    Type: Grant
    Filed: August 20, 1996
    Date of Patent: November 3, 1998
    Assignee: Transmeta Corporation
    Inventors: Edmund J. Kelly, Robert F. Cmelik, Malcolm John Wing
  • Patent number: 5829031
    Abstract: A microprocessor is provided which includes a heuristic processing unit configured to detect a predefined group of instructions and to cause the performance of a specific function associated with the group of instructions. The specific function may correspond to the outcome of executing the group of instructions. Alternatively, the specific function may be a set of operations not directly corresponding to the group of instructions, but designed to improve the performance of the sequence of instructions within which the group of instructions is embedded. The heuristic processing unit asserts control signals to dedicated hardware to cause the specific function to be performed. Instruction sequences need not be modified from the instruction set employed by the microprocessor. The microprocessor detects the previously inefficient instruction sequences and performs the corresponding function efficiently.
    Type: Grant
    Filed: February 23, 1996
    Date of Patent: October 27, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Thomas W. Lynch
  • Patent number: 5826074
    Abstract: A processor has 64-bit operand execution pipelines, but a 32-bit branch pipeline. The branch pipeline contains registers to hold the lower 32-bit sub-addresses of 64-bit target and sequential addresses for conditional branches which have been predicted but not yet resolved. A shared register contains the upper 32 address bits for the target and sequential sub-addresses. All 32-bit target and sequential sub-address registers in the branch pipeline share the single 32-bit shared register holding the upper 32 address bits. The branch pipeline can only process instructions with the same upper 32 address bits, which define a 4 Giga-Byte super-page. When an instruction references an address in a different 4 Giga-Byte super-page, then the branch pipeline stalls until all other branch instructions have completed. The new super-page's upper 32 address bits are then loaded into the shared register. A super-page crossing is detected by a carry out of bit 32 in the 32-bit target or sequential address adders.
    Type: Grant
    Filed: November 22, 1996
    Date of Patent: October 20, 1998
    Assignee: S3 Incorporated
    Inventor: James S. Blomgren
  • Patent number: 5813045
    Abstract: An apparatus is provided, including one or more early address generation units which attempt to perform data address generation upon decode of an instruction which includes a memory operand. The early address generation units may be successful at generating the data address if the logical data address is formed from a displacement only. Additionally, the early address generation unit may be successful at generating the data address if the logical data address is formed from the displacement and register operands which are available upon decode of the instruction. Data address generation latency may be shortened. If register operands are employed for forming the address and the register operands are not available, the data address may be generated in a functional unit at the execute stage.
    Type: Grant
    Filed: July 24, 1996
    Date of Patent: September 22, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Rupaka Mahalingaiah, Thang M. Tran, David B. Witt
  • Patent number: 5809560
    Abstract: An adaptive read ahead cache is provided with a real cache and a virtual cache. The real cache has a data buffer, an address buffer, and a status buffer. The virtual cache contains only an address buffer and a status buffer. Upon receiving an address associated with the consumer's request, the cache stores the address in the virtual cache address buffer if the address is not found in the real cache address buffer and the virtual cache address buffer. Further, the cache fills the real cache data buffer with data responsive to the address from said memory if the address is found only in the virtual cache address buffer. The invention thus loads data into the cache only when sequential accesses are occurring and minimizes the overhead of unnecessarily filling the real cache when the host is accessing data in a random access mode.
    Type: Grant
    Filed: October 13, 1995
    Date of Patent: September 15, 1998
    Assignee: Compaq Computer Corporation
    Inventor: Randy D. Schneider
  • Patent number: 5802602
    Abstract: Allocation circuitry for allocating entries within a set-associative cache memory is disclosed. The set-associative cache memory comprises N ways, each way having M entries and corresponding entries in each of the N ways constituting a set of entries. The allocation circuitry has a first circuit which identifies related data units by identifying a probability that the related data units may be successively read from the cache memory. A second circuit within the allocation circuitry allocates the corresponding entries in each of the ways to the related data units, so that related data units are stored in a common set of entries. Accordingly, the related data units will be simultaneously outputted from the set-associative cache memory, and are thus concurrently available for processing. The invention may find application in allocating entries of a common set in a branch prediction table (BPT) to branch prediction information for related branch instructions.
    Type: Grant
    Filed: January 17, 1997
    Date of Patent: September 1, 1998
    Assignee: Intel Corporation
    Inventors: Monis Rahman, Mircea Poplingher, Tse-Yu Yeh, Wenliang Chen
  • Patent number: 5787484
    Abstract: A memory system which includes one or more arrays of memory cells (e.g., flash memory cells) organized into sets of cells, wherein each set of cells is indicative of a set of stored data, and wherein the system also includes circuitry which compares new data (to be written to a set of cells) with stored data (preread from a corresponding set of cells) and prevents a write of the new data to the array if the new data is identical to the stored data, a computer system including such a memory system, and a method implemented by such a computer system. In preferred embodiments, the system includes a controller which includes logic circuitry which performs the comparison. In response to the comparison determining that the new data to be written is identical to the previously stored data, the controller generates a confirmation signal indicating that the new data has been written to the array, rather than actually writing the new data to the array.
    Type: Grant
    Filed: August 8, 1996
    Date of Patent: July 28, 1998
    Assignee: Micron Technology, Inc.
    Inventor: Robert Norman
  • Patent number: 5787493
    Abstract: With the present invention, the page table of the program code non-continuously placed in an external storage device using randomly accessible and rewritable memory is built into an executable sequence in a virtual address space of the CPU according to the execution order. By referring to the address translation tables, including the page table, the system is able to read the program from the external storage device, thereby executing the program. Therefore, the program can be executed without being loaded into main memory. Furthermore, the program and data can be managed without distinction.Further, with the randomly accessible memory according to the present invention, since a sequence of real addresses of the CPU are assigned to the data area, control over the direct execution of the program can be simply achieved. Furthermore, since data and ECC parity can also be read and written sequentially, the system has good compatibility with a hard disk system.
    Type: Grant
    Filed: April 8, 1997
    Date of Patent: July 28, 1998
    Assignee: International Business Machines Corporation
    Inventors: Hideto Niijima, Akashi Satoh
  • Patent number: 5784711
    Abstract: A data prefetching arrangement for use between a computer processor and a main memory. The addresses of data to be prefetched are calculated by decoding instructions which have been prefetched by decoding prefetched instructions, the instructions having been in accordance with an intelligent prefetching scheme. The processor registers have two sections for respective access by the processor and a prefetch controller. The instruction registers may also contain an additional counter field which indicates the number of instruction cycles which must be executed before the register may be reliably utilized for prefetching data.
    Type: Grant
    Filed: June 21, 1993
    Date of Patent: July 21, 1998
    Assignee: Philips Electronics North America Corporation
    Inventor: Chi-Hung Chi
  • Patent number: 5765208
    Abstract: A data processor (10) has a load/store unit (28) that executes store-to-shared-data instructions before it exclusively owns the data designated by the instruction. Later, a bus interface unit (12) performs a snoop transaction to obtain exclusive ownership of the data. If data processor successfully obtains such ownership, then the data processor correctly and quickly executed the instruction with no further action required. If the data processor can not obtain ownership of the data, then data processor re-executes the instruction in the same time as if it had not acted speculatively.
    Type: Grant
    Filed: September 29, 1995
    Date of Patent: June 9, 1998
    Assignee: Motorola, Inc.
    Inventors: Jacqueline S. Nelson, Nicholas G. Samra
  • Patent number: 5752069
    Abstract: A superscalar microprocessor employing a way prediction structure is provided. The way prediction structure predicts a way of an associative cache in which an access will hit, and causes the data bytes from the predicted way to be conveyed as the output of the cache. The typical tag comparisons to the request address are bypassed for data byte selection, causing the access time of the associative cache to be substantially the access time of the direct-mapped way prediction array within the way prediction structure. Also included in the way prediction structure is a way prediction control unit configured to update the way prediction array when an incorrect way prediction is detected. The clock cycle of the superscalar microprocessor including the way prediction structure with its caches may be increased if the cache access time is limiting the clock cycle.
    Type: Grant
    Filed: August 31, 1995
    Date of Patent: May 12, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: James S. Roberts, James K. Pickett