Data processing: structural design – modeling – simulation – and em – Emulation – Of peripheral device
Reexamination Certificate
1998-08-14
2001-08-28
Teska, Kevin J. (Department: 2123)
Data processing: structural design, modeling, simulation, and em
Emulation
Of peripheral device
C710S001000, C711S149000, C365S185110, C365S189020, C365S230020
Reexamination Certificate
active
06282505
ABSTRACT:
TECHNICAL FIELD
The present invention relates to a cache memory to increase the data access speed in a computers and data processors, and in particular, to a cache memory suitable for a super-scalar processor or a very long instruction word processor (to be referred to as a VLIW processor herebelow) capable of executing a plurality of memory access operations during one cycle.
BACKGROUND ART
When a super-scalar processor and/or a VLIW processor is employed in a computer or a data processor, a plurality of memory accesses during one cycle depending on cases. To conduct a plurality of memory access operations during one cycle, it is necessary to use memory ports as many as there are memory accesses during one cycle. A conventional example of a dual-port memory capable of conducting a plurality of memory accesses during one memory cycle has been described in pages 168 to 170 of an article “Power and PowerPC” published from Morgan Kaufmann Publishers, Inc. in 1994.
In accordance with a first method, there is used a memory including memory cells which can be accessed via two ports. For one memory cell in which information of one bit is stored, there are disposed two sets of address decoders, two sets of word lines, two sets of data bit lines, and two sets of sense amplifiers. This leads to a memory which can be accessed via two ports. The first method requires two sets of work lines and data bit lines. When compared with the single-port configuration, the memory cell area is doubled to implement the memory having the same memory capacity.
In a second method, the conventional single-port memory is disposed in a duplicated constitution to implement a memory which can be accessed via two ports. When compared with the dual-port memory of the first embodiment, this memory differs in that the memory cells are also duplicated. Consequently, to write data in the memory, the same data is required to be written in both memory areas at the same address. Since the memory cells are duplicated in the second method, the capacity of the necessary memory cells is two times that of the inherent memory. In other words, only one half of the actual memory cells can be used to store independent data. Namely, for the same memory capacity, the area of memory cells is doubled when compared with the prior art.
Between the first method and the second method, there exists only quite a small difference in the memory cell area. Additionally, in the first method using the memory cells in a shared manner, when the memories are accessed at the same address via two ports, one of the accesses is set to a wait state and hence the access time inevitably becomes doubled.
In a third method, the memory is subdivided into two memory banks in accordance with addresses. In an operation to access two memory banks, the accesses are simultaneously processed. Data at an address exists only in either one of the memory banks. Consequently, when compared with the dual-port memory, there is required a selector for each of an address input section and a data output section to establish a correspondence between the memory ports and the memory banks. In this connection, the lower-most bit of the accessing address is used to indicate the selection for the selector.
Since the memory cells are not duplicated in the third method, the capacity of memory cells indicates the inherent memory capacity. When compared with the second method, the memory capacity is doubled with the same number of memory cells. However, the memory bank to be accessed is determined by one bit of the address in the third method, the total memory access time includes, in addition to the memory access time, the selection time of the selector. In consequence, there is a fear of elongation of the total memory access time when compared with the second method.
In a fourth method, one single-port memory is used in a time-shared fashion. One cycle is subdivided into two sections in which a first-half cycle is used for an access via a first memory port and a second-half cycle is utilized for an access via a second memory port to thereby implement a dual-port memory.
Since the memory cells and the like are not duplicated in the fourth method, the capacity of memory cells directly indicates the inherent memory capacity like in the third method. However, to execute two memory access operations during one cycle, the memory access operation is required to be increased, i.e., the memory cell access time is required to be reduced to half that of the original access time. Conversely, when the memory cell access time is used as the reference (when the access time is kept unchanged), the total cycle time is to be doubled to achieve two memory access operations during one cycle.
The conventional multi-port memory described above is attended with the following problems. When the memory cell area is kept retained, the memory capacity is lowered to half that of memory cells or the memory access time becomes longer. Alternatively, when the memory cell access time is used as the criterion, the total cycle time is to be doubled.
It is therefore an object of the present invention, which solves the problems above, to provide a multi-port memory in which the memory capacity is substantially equal to that of memory cells in the single-port memory and a plurality of memory access operations can be simultaneously executed substantially without elongating the memory access time, without causing a bank access collision, and without increasing the total cycle time.
DISCLOSURE OF INVENTION
In accordance with the present invention, there is provided a multi-port memory subdivided into a plurality of memory banks, each memory banks including means for storing therein data and an address of the data in a pair, determining means for determining whether or not an address corresponding to an address inputted from an external device exists in the memory bank, and means for accessing and outputting data paired with the address to an external device. The memory comprises first means for selecting each of a plurality of addresses inputted from the plural memory ports and inputting the selected address to either one of the plural memory banks and means for outputting data read from each of the memory banks to a data output port corresponding to the memory port from which the address inputted to the memory bank is supplied.
Moreover, In the multi-port memory above, the first means inputs, in a first cycle, a first address supplied from a first memory port of the plural memory ports to a first memory bank of the plural memory ports and a second address supplied from a second memory port of the plural memory ports to a second memory bank of the plural memory ports, the first means inputs, when the determining means of the first memory bank determines absence of data to be paired with the first address, the first address to the second memory bank in a cycle after the first cycle, and the first means inputs, when the determining means of the second memory bank determines absence of data to be paired with the second address, the second address to the first memory bank in a cycle after the first cycle.
Moreover, in the multi-port memory described above, the first means inputs, in a first cycle, a first address supplied from a first memory port of the plural memory ports to all memory banks of the plural memory ports.
Next, there is provided a data processor connected for use to the multi-port memory, the memory being used as a data memory. The processor comprises means for decoding information of a predetermined number of bits arranged in an instruction of accessing the data memory, the instruction being selected from instructions of a control program of the data processor, and means for executing the instruction in accordance with a result of the decoding. The information is information specifying one of the plural memory ports to be accessed.
The multi-port memory operates as follows.
An address from the first memory port is inputted to the first memory bank in the first cycle and then a check is conducted to determ
Hanawa Makoto
Kaneko Kenji
Shimada Kentaro
Yamamoto Kazumichi
Antonelli Terry Stout & Kraus LLP
Hitachi , Ltd.
Phan Thai
Teska Kevin J.
LandOfFree
Multi-port memory and a data processor accessing the same does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Multi-port memory and a data processor accessing the same, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Multi-port memory and a data processor accessing the same will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2498033