Efficient memory controller with an independent clock
First Claim
1. In a computing device having a central processing unit (CPU) and memory, a control interface for controlling access to said memory by said CPU comprising:
- a) an address decoder for receiving and decoding a memory address from said CPU, said memory address corresponding to a location to be accessed in said memory, said address decoder further includes logic for receiving and decoding a memory cycle status from said CPU, said memory cycle status having a read state indicating that said access to said memory is a read access, said memory cycle status having a write state indicating that said access to said memory is a write access;
b) a storage file for programmably storing said quantity of cycles required to access said location in said memory, said storage file further includes transmission logic for transmitting said quantity of cycles to said CPU, said quantity of cycles being transmitted to said CPU prior to the completion of access to said location in said memory; and
c) a memory timing control unit for completing said access to said memory in a number of cycles corresponding to said quantity of cycles transmitted to said CPU, wherein said address deconder further includes logic for generating a page signal, said page signal indicating a page hit state if said address received corresponds to a location within a currently active row of said memory, said page signal indicating a page miss state if said address received corresponds to a location not within a currently active row of said memory, said page signal indicating a row miss state if said address received corresponds to a location without a currently active row of said memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A means and a method of interfacing a memory controller with a high speed synchronous CPU wherein the CPU clock is independent of the memory controller clock. The CPU clock is connected to both the CPU and a control interface state tracker located externally to the memory controller. The control interface state tracker is then connected to the memory controller. A separate clock independent from the one used with the CPU is coupled to the memory controller and drives the operation of the memory controller. During the operation of the computer system, the CPU makes read or write cycle requests of the memory controller. Such cycles are initiated when the CPU sends a cycle "start" indicator to the state tracker. In response, the state tracker activates a start strobe to the memory controller to start the actual memory cycle. The memory controller receives the CPU address and cycle status and determines the page hit/miss condition of the memory access. Using this information, the appropriate register in the cycle length register file is accessed to obtain a cycle length feedback value indicating the quantity of wait states necessary for the particular memory cycle. This cycle length feedback value is sent to the external control interface state tracker. The state tracker then returns a ready indication to the CPU after the cycle length time has been satisfied as indicated by the cycle length feedback.
70 Citations
24 Claims
-
1. In a computing device having a central processing unit (CPU) and memory, a control interface for controlling access to said memory by said CPU comprising:
-
a) an address decoder for receiving and decoding a memory address from said CPU, said memory address corresponding to a location to be accessed in said memory, said address decoder further includes logic for receiving and decoding a memory cycle status from said CPU, said memory cycle status having a read state indicating that said access to said memory is a read access, said memory cycle status having a write state indicating that said access to said memory is a write access; b) a storage file for programmably storing said quantity of cycles required to access said location in said memory, said storage file further includes transmission logic for transmitting said quantity of cycles to said CPU, said quantity of cycles being transmitted to said CPU prior to the completion of access to said location in said memory; and c) a memory timing control unit for completing said access to said memory in a number of cycles corresponding to said quantity of cycles transmitted to said CPU, wherein said address deconder further includes logic for generating a page signal, said page signal indicating a page hit state if said address received corresponds to a location within a currently active row of said memory, said page signal indicating a page miss state if said address received corresponds to a location not within a currently active row of said memory, said page signal indicating a row miss state if said address received corresponds to a location without a currently active row of said memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer system comprising:
-
a central processing unit (CPU); a memory; and a control interface coupled between said CPU and said memory, said control interface for controlling access to said memory by said CPU and comprising, a) an address decoder for receiving and decoding a memory address from said CPU, said memory address corresponding to a location to be accessed in said memory, said address decoder further includes logic for receiving and decoding a memory cycle status from said CPU, said memory cycle status having a read state indicating that said access to said memory is a read access, said memory cycle status having a write state indicating that said access to said memory is a write access; b) a storage file for programmably storing said quantity of cycles required to access said location in said memory, said storage file further includes transmission logic for transmitting said quantity of cycles to said CPU, said quantity of cycles being transmitted to said CPU prior to the completion of access to said location in said memory; and c) a memory timing control unit for completing said access to said memory in a number of cycles corresponding to said quantity of cycles transmitted to said CPU, wherein said address decoder further includes logic for generating a page signal, said page indicating a page hit state if said address received corresponds to a location within a currently active row of said memory, said page signal indicating a page miss state if said address received corresponds to a location not within a currently active row of said memory, said page signal indicating a row miss state if said address received corresponds to a location without a currently active row of said memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
19. In a computer system having a central processing unit (CPU) and a memory, a process for controlling access to said memory by said CPU comprising the steps of:
-
a) programmably storing a quantity of cycles required to access a location in said memory in a storage file; b) receiving and decoding a memory address from said CPU, said memory address corresponding to a location to be accessed in said memory; c) receiving and decoding a memory cycle status from said CPU, said memory cycle status having a read state indicating that said access to said memory is a read access, said memory cycle status having a write state indicating that said access to said memory is a write access; d) retrieving said quantity of cycles from said storage file; e) transmitting said quantity of cycles to said CPU, said quantity of cycles being transmitted to said CPU prior to the completion of access to said location in said memory; f) completing said access to said memory in a number of cycles corresponding to said quantity of cycles transmitted to said CPU; and g) generating a page signal, said page signal indicating a page hit state if said memory address received corresponds to a location within a currently active row of said memory, said page signal indicating a page miss state if said memory address received corresponds to a location not within a currently active row of said memory, said page signal indicating a row miss state if said memory address received corresponds to a location without a currently active row of said memory. - View Dependent Claims (18, 20, 21, 22, 23, 24)
-
Specification