Predicting, Look-ahead Patents (Class 711/204)
-
Patent number: 5953747Abstract: 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: GrantFiled: June 26, 1996Date of Patent: September 14, 1999Assignee: Digital Equipment CorporationInventors: Simon C. Steely, Jr., Joseph Dominic Macri
-
Patent number: 5953512Abstract: 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: GrantFiled: December 29, 1997Date of Patent: September 14, 1999Assignee: Texas Instruments IncorporatedInventors: George Z. N. Cai, Jonathan H. Shiell
-
Patent number: 5940876Abstract: 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: GrantFiled: April 2, 1997Date of Patent: August 17, 1999Assignee: Advanced Micro Devices, Inc.Inventor: James K. Pickett
-
Patent number: 5933852Abstract: 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: GrantFiled: November 7, 1996Date of Patent: August 3, 1999Assignee: Micron Electronics, Inc.Inventor: Joseph Jeddeloh
-
Patent number: 5918246Abstract: 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: GrantFiled: January 23, 1997Date of Patent: June 29, 1999Assignee: International Business Machines CorporationInventors: Kenneth Joseph Goodnow, Clarence Rosser Ogilvie, Wilbur David Pricer, Sebastian Theodore Ventrone
-
Patent number: 5900885Abstract: 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: GrantFiled: September 3, 1996Date of Patent: May 4, 1999Assignee: Compaq Computer Corp.Inventor: James L. Stortz
-
Patent number: 5895503Abstract: 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: GrantFiled: June 2, 1995Date of Patent: April 20, 1999Inventor: Richard A. Belgard
-
Patent number: 5872955Abstract: 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: GrantFiled: November 28, 1995Date of Patent: February 16, 1999Assignee: International Business Machines CorporationInventor: Hideo Asano
-
Patent number: 5860106Abstract: 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: GrantFiled: July 13, 1995Date of Patent: January 12, 1999Assignee: Intel CorporationInventors: Stanley J. Domen, Dileep R. Idate, Stephen H. Gunther, George Thangadurai
-
Patent number: 5860147Abstract: 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: GrantFiled: September 16, 1996Date of Patent: January 12, 1999Assignee: Intel CorporationInventors: Simcha Gochman, Jacob Doweck
-
Patent number: 5860104Abstract: 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: GrantFiled: August 31, 1995Date of Patent: January 12, 1999Assignee: Advanced Micro Devices, Inc.Inventors: David B. Witt, Rajiv M. Hattangadi
-
Patent number: 5835962Abstract: 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: GrantFiled: December 24, 1996Date of Patent: November 10, 1998Assignee: Fujitsu LimitedInventors: Chih-Wei David Chang, Kioumars Dawallu, Joel F. Boney, Ming-Ying Li, Jen-Hong Charles Chen
-
Patent number: 5832205Abstract: 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: GrantFiled: August 20, 1996Date of Patent: November 3, 1998Assignee: Transmeta CorporationInventors: Edmund J. Kelly, Robert F. Cmelik, Malcolm John Wing
-
Patent number: 5829031Abstract: 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: GrantFiled: February 23, 1996Date of Patent: October 27, 1998Assignee: Advanced Micro Devices, Inc.Inventor: Thomas W. Lynch
-
Patent number: 5826074Abstract: 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: GrantFiled: November 22, 1996Date of Patent: October 20, 1998Assignee: S3 IncorporatedInventor: James S. Blomgren
-
Patent number: 5813045Abstract: 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: GrantFiled: July 24, 1996Date of Patent: September 22, 1998Assignee: Advanced Micro Devices, Inc.Inventors: Rupaka Mahalingaiah, Thang M. Tran, David B. Witt
-
Patent number: 5809560Abstract: 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: GrantFiled: October 13, 1995Date of Patent: September 15, 1998Assignee: Compaq Computer CorporationInventor: Randy D. Schneider
-
Patent number: 5802602Abstract: 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: GrantFiled: January 17, 1997Date of Patent: September 1, 1998Assignee: Intel CorporationInventors: Monis Rahman, Mircea Poplingher, Tse-Yu Yeh, Wenliang Chen
-
Patent number: 5787484Abstract: 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: GrantFiled: August 8, 1996Date of Patent: July 28, 1998Assignee: Micron Technology, Inc.Inventor: Robert Norman
-
Patent number: 5787493Abstract: 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: GrantFiled: April 8, 1997Date of Patent: July 28, 1998Assignee: International Business Machines CorporationInventors: Hideto Niijima, Akashi Satoh
-
Patent number: 5784711Abstract: 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: GrantFiled: June 21, 1993Date of Patent: July 21, 1998Assignee: Philips Electronics North America CorporationInventor: Chi-Hung Chi
-
Patent number: 5765208Abstract: 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: GrantFiled: September 29, 1995Date of Patent: June 9, 1998Assignee: Motorola, Inc.Inventors: Jacqueline S. Nelson, Nicholas G. Samra
-
Patent number: 5752069Abstract: 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: GrantFiled: August 31, 1995Date of Patent: May 12, 1998Assignee: Advanced Micro Devices, Inc.Inventors: James S. Roberts, James K. Pickett