When the access is effected sequentially such as the prefetching of an instruction or the restoration of a register in the stack region, the retrieval is effected simultaneously for the consecutive addresses and the result is stored. When the consecutive addresses are to be accessed, the hit is determined relying upon the result that is stored without effecting the cache memory reference. In the case of mishit, the external memory is readily accessed to shorten the overhead time required for the cache memory reference. Therefore, the access time can be shortened in average.
A cache memory control apparatus for a cache memory having a data memory, includes an address array, a valid bit register, a comparator, and a dual-purpose register. The dual-purpose register stores one of a valid bit and a part of an address tag. The cache memory control apparatus applies to both a standard system with a plurality of blocks-per-line and a subordinate system with one block-per-line.
A TLB which has at least two page frame numbers (PFN) associated with each tag (Virtual Page Number) is provided. Thus, a match will produce two possible physical page frame numbers. The selection between these two is controlled by a bit provided directly from the virtual address, without translation. This bit is preferably the least significant bit of the virtual page number, or the first bit after the physical offset. This structure effectively doubles the capacity of the TLB without doubling the number of tags. Although the virtual space covered by each tag or VPN is necessarily restricted to two contiguous areas, the invention allows these two contiguous areas to be mapped to completely different regions of the physical address space. In addition to limiting the number of tags required, the number of comparators required is also similarly limited, with only the number of physical page frame numbers stored being required to double.
In a multiprocessing machine having several processors which take turns in executing an instruction, processing of two related parameters in one processor takes place at different times so that the parameters are non-coherent for a short time. Program counter addresses have a bit reserved as a flag which is set during non-coherence. When a CPU requests parameter values from the machine, coherency of the parameters is guaranteed by reading the flag as well as the parameters and a CPU software routine determines the coherent values.
In a semiconductor integrated circuit having a register file of a multiport configuration, a first holding circuit 20A is dedicated to a first functional block having one first write port section 21AW and two first read port sections 21AR1 and 21AR2. A second holding circuit 30B is dedicated to a second functional block having one second write port section 31AW and one second read port section 31BR. When it is necessary to read data held in the first holding circuit 20A from the second read port section 31BR, for example, a data interchange operation is performed as follows. After the data of the second holding circuit 30B is latched in a latch circuit 40, the data of the first holding circuit 20A is transferred to the second holding circuit 30B, and then the data of the second holding circuit 30B latched in the latch circuit 40 is transferred to the first holding circuit 20A. Thus, the area necessary to provide a register file is significantly reduced.
A computer system includes a processor having a primary cache, and a secondary cache data store, cache tag store, and memory controlled by a memory controller. The cache tag store, secondary cache data store, and memory share a common address bus. The secondary cache data store and the memory share a common data bus. In addition, some of the bits of the address bus are saved and fed directly to the memory. The memory controller provides for pipelined secondary cache accesses, during which a corresponding tag from the cache tag store is compared in the processor against the required memory address to determine if the data is located in the secondary cache. If the data is not in the secondary cache, the memory controller asserts the appropriate signals to obtain the data from memory. Because some of the address bits are fed directly to the memory, the setup time for memory control signals can be satisfied during the comparison of the cache data tag. In addition, while the memory reference is being performed, the original version of the address bits may be updated to perform page mode addressing of the secondary cache.