CA2028085A1 - Paged memory controller - Google Patents

Paged memory controller

Info

Publication number
CA2028085A1
CA2028085A1 CA002028085A CA2028085A CA2028085A1 CA 2028085 A1 CA2028085 A1 CA 2028085A1 CA 002028085 A CA002028085 A CA 002028085A CA 2028085 A CA2028085 A CA 2028085A CA 2028085 A1 CA2028085 A1 CA 2028085A1
Authority
CA
Canada
Prior art keywords
memory
signal
bus
address
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002028085A
Other languages
French (fr)
Inventor
Dale J. Mayer
Paul R. Culley
Mark Taylor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of CA2028085A1 publication Critical patent/CA2028085A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means

Abstract

IMPROVED PAGED MEMORY CONTROLLER
Abstract of the Disclosure A computer system has a processor coupled to a cache controller, uses page mode memory devices and performs page hit detection on the processor local bus. Column address and data values are latched by a memory controller on memory write operations to allow early completion of the cycle so that the next cycle can partially overlap.
This allows the use of economical memories and yet have zero wait state page hit operation.

Description

3 :;~

..

~ IMPROVED PAGED MEMORY CONTROLLER
~ .

The invention relates to computer systems using :~ dynamic random access memories and more particularly to computer systems using page modle opexation dynamic random access memories.

; Personal computer systems having been getting faster and more powerful at a rapid rate and yet more speed and ; 10 pow~r is always being dema~ded. To this ~nd 32 bit ;~ microprocessors with even higher clock rates have been employed. ~owever, processor speed has readily outstripped the 6peed of economical ~e~ory devices. To run many current processors without wait ~tate~ reguires ~ 15 25 nsec memories. The~ memory devices are pxohibitively :~: expensive to be used as the main sy~tem memory, so two avenues are available.
The ~irst possibility is to use the fas~est, . economically feasible memory devices in the main system me~ory and just bear ~he performance loss, hoping that other considerations are more important. Operating the : memory devices in page mode where only a column addres~
needs to be supplied if the row address is the same as the .,~, ." ', .'': ; : ' ' ' ~ ',, ',; ", ~ ,,, -, 1~ ~ "," , ,. , ~ ",,, `; ", " : ~: :

r~ ~ r~

previous access, ~Rferred to as a page hit, improves the situation, but generally not enough to meet demands. The second avenue available is the use of a cache memory system which uses a small amount of high speed, zero wait 5 state memory which cont~ins a copy of portions of the data stored in the main memory. By properly ~izing and organizing the cache memory, in excess of 90% of the memory accesses can be run out of the cache memory, this percentage being referred to as the hit ratio. The slower main memory is accessed only when the data is not in the cache, which is called a miss operation. The use of a cache memory system allows more economical memory devices ; to be used for main memory because the speed factor is not as critical because of the lower percenta~e of accesses to the main memory.
Even the improvement provided by using cache memory has not been sufficient to meet performance demands. The cache memory systems used in personal computers generally resulted in ~he location o~ the main memory on a bus separated from the processor, which resulted in delays of operation relative to a system not having this additional bus when access had to be made to the main memory in cache miss instances. Page mode main memory device operation has been combined with a cache memory system to improve the performance duriny cache miss cycles, but this still resulted in the inclusion of wait states in accesses to main memory, generally two wait states i~ page hit cases.

,~ .
A computer system incorporating the present invention redures the number of wait states required on cache miss, page hit cycles to increase system performanc2 The address comparisons utilized in determini~g i~ a memory page hit is occurring are based on ~he address ~ignals provided directly by the processor, not ~hose presented on a bus isolated from the processor. This saves one processor clock cycle on page hit write cycles by allowing .... . . .

:.. . :

, .:
. .

-3~ 3 ~

early generation ~of the xeady signal to the cache controller and processor. Additionally, the column addresses and data are stored so that a memory write cycle can be terminated to the processor one processor clock cycle sooner than would be possible if the signals were ~ only buffered. Using appropriate memory devices, which are relatively economical, zero wait state write cycle page hits are performed.
When the computer system includes a write through cache memory system, the system perfo~mance increases markedly because in write through cache memory systems the majority of main memory accesses are write operations.
Thus the reduced number of wait states has a greater than expected impact on system performance based merely on the number of read versus write operations performed by the micxoprocessor and the hit ratio.

A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:
Figures 1 and 2 are schematic block diagrams of a computer 6ystem incorporating the present invention; **
Figures 3-5 are timing diagrams of the present invention;
Fiyure 6 i~ a chematic block diagram of the page hit detector of Fig. l;
Figure 7 is a block diagram of portions of the host memory controller of Fig. 1;
Figure 8 is a state diagram of the ~tate machine of Fig. 7;
Figur~ 9-18 axe schematic diagrams of portions of the cixcuitry of the host memory controller of Fig. 7;
Figure 19 i~ a 6chematic block diagram of the data buffer of Figure 1, as shown with Fi~ure ~; and Figure 20 is a timing diagram of the clocking signals **Comprising Figures lA and lB, and 2A and 2B
*Figure 18 shown with Figure 7 :. : . . ~::. . - : . , ' ,, ', ~: : ~' :
:
: : :. . : .

_4_ ~ ~2 ~

used ~y the circultry o~ ~ig~r~s 9 18, shown with Figur~ 11.

Referring now to Figures 1 and 2, the letter C
designates generally a computer system incorporating the present invention. For clarity, system C is shvwn in two portions, with the interconnections between Figures 1 and 2 designated by reference to the circled numbers one to ten. System C is comprised of a number of block elements interconnected via a plurality of buses. Throughout this specification, signal mnemonics with an asterisk following the signal descriptors indicates the signal is active at a logic low level and is ~he inverse of the ~ig~al descriptor without the asterisk. Signal mnemonics having numbers or ranges between angled brackets refer to those particular bits or positions in a bus.
In Figure 1, a computer system is depicted. A
processing unit P1 comprises a processor 20, a numerical coprocessor 22 and a cache memory controller 24 and associated logic circuits connected to a local processor bus 26. Associated with cache controller 24 is high speed cache data random access memory 28, noncacheable memory address map programming logic circuitry 30, noncacheable ad~ress memory 32, address e~ch~lge latch circuitry 34 and data exchange transcei~er 36. Associated with the ...~ .
processor unit Pl also are local bus ready logic circuit 38, ne~t address en~ble logic circuit 40 and bus request logic circuit 42.
The processor 20 is preferably an Intel 80386 microprocessor. The processor 20 has its control, address and data li~es interfaced to ~he local processor bus 26.
The coprocessor 22 is preferably an Intel 80387 and/or Weitek WTL 3167 numeric ~oprocessor interfacing with the local processor bus 26 and the processor 20 in the conventional manner. The cache ram 28 is preferably s~itable high-speed ~tatic random access memory which interfaces with the address and data elements of bus 26 - ~
:,~, . . ; . - :

. .

-5~

under control of ~he cache controller 24 to caxry out re~uired cache memory operations. The cache controller 24 is preferably an Intel 82385 cache controller configured to operate in two-way set associative master mode. In the preferred e~bodiment ~he components are the 33 MHz versions of the respective units. Address latch circuitry 34 and data transceiver 36 interface the cache controller 24 with the processor 20 and provide a local bus interface between the local processor bus 26 and a host bus 44, according to con~entional practice in an 80386 and 823~5 based system.
Circuit 38 is a logic circuit which provides a bus ready signal to control access to the local bus 26 and indicat~ when the next cycle can begin. The enable 15 circuit 40 is utilized to indicate that the next address of data ox code to be utilized by subsystem elements in pipelined address mode can be placed on the local bus 26.
Noncacheable memory address map programmer 30 cooperates with the processor 20 and the noncacheable address memory 32 to map noncacheable memory locations.
The noncacheable address memory 32 is utilized to designate areas of syste~ memory that are noncacheable to : avoid many types of cache memory incoherency. The bus re~uest logic circuit 42 is uti:Lized by the processor 20 and as~ociated elements to reguest access to the host bus 44 in ~ituations such as when reguested data is not located in the cache memory 28 and access to system memory is reguired. ~ page hit detector 43 is connected to the loc l processor bus 26 to allow the earliest possible determination of whether a ~ache miss cycle will be a memory page hit. The operation of the page hit detector 43 will be explained in more detail.
In the drawings, ~ystem C is configured having the processor bus 26, the host bus 44, an extended industry standard architecture (EISA) bus 46 (Fig. 2) and an X bus 90. The details of ~he portion of the system illustrated in Figure 2, and not di~cussed in detail below are not ' . . : ' . ' ' .:: :' : ~ :

significant to t~e present invention other than to illustrate an exampl e of a fully configured computer system. The EISA specification Version 3.1 is included as Appendix 1 to fully explain reguirements of an EISA
system. The portion of system C illustrated in Fig. 2 is essentially a configured EISA system which includes the necessary EISA bus 46, an EISA bus controller 48, data latches and transceiver~ 50 and address latches and buffers 52 to interface between the EISA bus 46 and the host bus 44. Also illustrated in Figure 2 is an integrated system peripheral 54, which incor~or2tes a number of the elements used in an EISA-based computer system.
The integrated system peripheral (ISP3 54 includes a direct memory access controller 56 for controlling access to main memory 5~ (Fig. 1) or memory contained in EISA
slots and input/output tI/0) locations without the need for access to the processor 20. The main memory array 58 is considered to be local memory and comprise a memory circuit array of size suitable to accommodate the particular requirements of the system. The ISP 54 also includes interrupt controllers 70, nonmaskable interrupt logic 72 and system timers 74 which allow control of interrupt signals and generate necessary timing signals and wait states in a manner according to the EISA
specification and conventional practice. In the preferred embodiment, processor generated interrupt requests are controlled via dual interrupt control circuits emulating and e~tending conventional Intel 8259 interrupt controllers. The ISP 54 also includes bus arbitration logic 75 which, in cooperation with the bus controller 48 and overall arbitration logic 77, controls and a~bitrates amon~ the various requests for the EISA bus 46 by the cache controller 24, ~he DMA controller 56 and bus master devices located on the EISA bus 46.
The main memory array 58 is preferably 80 nsec page mode dynamic random access memory. Memory 58 interfaces : ~ : ,. . .
';
:, . '::

:

-7~ 3 . . .
with the host bus~44 via a data buffer circuit 60, a memory controller circuit 62 and a memory mapping and enable circuitry 68. The bufer 60 performs data transceiYing and parity generating and checking functions.
The memory controller 62 and the memory mapping circuitry 68 interface with the memory 58 via address multiplexer and column address strobe buffers 66 and row address enable logic circuit 64. The memory controller 62 also receives a ~ignal from the page hit detector 43 to control operation~ The memory controller 62 will be described in more detail.
The EISA bus 46 includes ISA and EISA control buses 76 and 78, ISA and EISA data buses 80 and 82 a~d address buses 84, 86 and sa. System peripherals are interfaced via the X bus 90 in combination with the ISA control bus 76 from the EISA bus 46. Control and data/address tran~fer for the X bus 90 are facilitated by X bus control logic 92, data transceivers 94 and address latches 96.
Attached to the X bus 90 are various peripheral devices such as keyboard/mouse controller 98 which interaces the X bus 90 with a suitable ke~board and mouse via connectors 100 and 102, resplectively. Also attached to the X bu~ 90 are read only memory circuits 106 which contain basic operations soft~are for the system C and for system video operations. A ~erial co~munications port 108 is also connected to the system C via the X bus 90. -.
Floppy and fi~ed disk 6upport, a parallel port, a ~econd ~erial port, and video support circuits are provided in block circuit 110.
In the preferred embodiment two similax processor units Pl and P2 can be located on the host ~us 44.
Proces or unit P2 is similar to processor unit P~, with like circuits havi~g the s~me reference number plus 100.
The overall arbitration logic 77 is adapted for u~e with the two processor unit~ Pl and P2 and arbitrat~s between ~he two proce~ior units Pl and P2 to ~hare the CPU
arbitration location provided in th~ EISA ~pecification.

- ~

, . . .. ~

8 ~ 3~

To allow interaction between the two processor units Pl and P2, interprocessor communication logic 150 is connected to the hsst bus 44 and to the processor units Pl and P2.
In general in this specification, a signal name having a ~irst letter of P refers to a signal generally on the local bus 26, with a signal having a first letter of H
represents that version of the signal generally on the host bus 44 ~nd a signal having a first letter of M
generally represents the version of that signal relating to the memory interface.
Figs. 3, 4 and 5 illustrate the timing of the present invention under certain conditions, showing that page hit write operations are 2ero wait state operations while page :~ 15 hit read operations are two wait state operations. Page miss write operations are generally either five or six cycles, which corresponds to three or four wait states, and page miss read operations are nine or ten clock ~ycles, corresponding to seven or eight wait states. The various timings illustrated are exemplary and variations based on the responses of partic:ular devices, such as the processor 20, are assumed.
Familiarity with the 80386 and 82385 signals and their timings will be presumed. Reference ~hould be made to the Intel Corporation Microprocessor and Peripheral ~andbook Volume 1 for the ~ als and timing6 relating to the 80386 and 823R5. At time 200, a falling edge of the ChK1 ~ig~al, which i_ the s~nchronized clock si$nal used : by ~he processor 20, the 386ADS* ~ignal goes high indicating the completion of ~he valid presentation of the bus cycle definition and address signals. Also at this time the HADS* signal, which is provided by ~h~ 82385 cache controller 24 to the ho~t bu~ 44 to indicate that valid addresses and bus cycle definition ~ignals are present on the ho~t bus 44, goes low. Thus at this point in time the ~ADDR signal~, which refer to the address values present on ~he host bus 44, are driven onto the bus .: , ~ , ;
, , . , : .: ~ , :

7J tl r~J ~, J .~

by the address exchange latches 34. Thus at ~his time the memory addresses for the appropriate row begin being driven to the memory array devices after any gate delays in the memory controller 62 or buffers 66. Additionally, S from time 200 to time 202, the next ~alling edge of the CLKl signal, the HLOCMEM* signal, which indicates that the addresses presented will be responded to by the main memory array 58, begins going low. At time 202 the HADS*
signal goes high. On the rising edge of the CLKl signal prior to time 202, the data being written by the processor 20 is passed through the data exchange buffers 36 and appears on ~he HDATA lin~s in the host bus 44.
Additionally, starting at time 202, the ~PGHIT* signal goes low in the example, indicating that a memory page hit has been detected, thus indicating that the row addresses need not be driven for ~he next cycle. In this particular case, which is an initial write operation after an I/O
operation or after a bus arbitration cycle has completed, the HPGHIT~ signal is ignored because if a different processor had control of the ho~;t bus 44 the row address in the memory devices may be different from that last used by ~his processor. Finally at. time 202, the 386ADS*
si~nal goes low, indicating that the next set of address and bus cycle de~inition signals are available. This address is latched into the address exchange latches 34 but not presented to the host bus 44 until ~fter the write op~ration has been completed.
At time 204, the next falling edge o~ the CLKl ~ignal, the 3B6ADS* signal goes high, ~h~ HLOCMEM* signal is sampled and the HPGHIT* signal begins going lo~ based on the 386~DS* ~ignal for cycle 3-2 and the presented proeessor addres~es. At tlme 206, the next falling edge of the CLKl signal, the RAS* signal or si~nals go low, indicating to the memory devices in the memory array 58 that a row address has been prop~rly pxe~ented. At time 208, the next falling edge of ~he CLKl si~nal, the HRDY*
signal goes low, indicating to ~he cache controller 24 :,. ;.
.. :. . . .

that ~he memory cycle is completin~ and the next cycle can begin. Also at time 208 the memory controller 62 changes the address values being presented to the memory devices so that now the column addresses for memory cycle 3-1 are presented to the memory devices. At time 208, the HDMDOE*
or hiost data to memory data output enc~ble signal which provides the data to the memory devices through the data buffer 60 and is equivalent to the WE* signal utili~ed on the memory devices, goes low. Thi starts ~he write operation which is utilized by thie memory devices and which is terminated by the inactivation or transfer to a high state of ~he CAS* signal. Finally, the HDATA values are presented to the memory devi~es by passing the HDATA
values onto the MDATA lines through the data buffer 6G.
Proceeding now to time 210, the next falling edge of the CLXl cycle, thie HADS* signal goes low, indicating thiat the next valid set of addresses is on the host ~us 44.
Also at this time the HRDY* signal goes high. At time 210 ~he CAS* signal appropriate for a given byte lane goes low, indicating to the memory devices that the column addresses and data are present, to complete the full addressing of the particular memory cells being utilized and to latch the data in the memoxy device. The memory devices of ~he preferred embodiment latch in the row addresses, column addresses and data on the falling edge~
of ~he particular strobe signals. Proceeding to the next falling edge of ~he CLK1 si~nal at time 212, the 386ADS*
signal goes low to indicate the next write operation addre^qces are being presented on the processor bus 26; ~he HADS* signal goes high and the CAS* signal goes high, thus terminating the memory cycle 3-1. Additionally at time 212, the ~PG~IT* signal is sampled and because it is low this i5 an indication that there is a memory p~ge hit operation occurring in cycle 3-2, thus allowing the HRDY*
signal to go low, inclicating to ~he cache controller 24 that a memory cycle is completing. Therefore only the column addresses for cycle 3~2 need to be presented to the ;. ,.. , . :
:: : ., .

- .

memory devices on~ the memory lines MA<10-0>, which are presented beginning at this time.
At time 214, the next falling edge of the CLKl cycle, the 386ADS* ~ignal goes high and the processor address valutPs are latched into the address exchange latch 34.
The ~RDY* signal goes high and ~he HADS* signal goes low, indicating that the next cycle 3-3 will be beginning. The address values being presented to the host bus 44 are changed. Also at this time the CAS* signal goes low to indicate that the column addresses being presented to the memory dPvices are valid so that the data which was enabled to the memory devices through the data buffer 60 at time 212 and the data exchange transceiver 36 at the rising edge of ~he CLKl signal after time 210 is properly stored in the memory devices. At the rising edge of the CLKl signal after time 214 the data provided by the processor ~0 is transferred through the data exchange transceivers 36 to the host bus 44.
At time 216, the next falling edge of the CLKl cycle, the 386ADS* signal goes low, indicating the commencement of cycle 3 4 on the processor bus 26. The HADS* signal goes high, indicating that the column address values ~hould be latched. Just prior to time 216, the ~DATA
value~ will have been enabled onto ~he bus by the data 2~ exchange bu~fers 36 for presentation to the memory devices. At ti~e 216, the ~PG~IT* signal is sampled to determine if ~hi~ is yet ~nother memory page hit : operation. In thi8 particular case it is and therefore ~he column addre6ces only for the third memory location are presented on the MA<10~0> lines at this time and the HRDY* goes low to indicate that the cycle will complete in the next ChKl ~ignal cycle. At time 216, the CA~* signal goes high ~nd th~ data on the host bu~ 44 i~ presented to ~he ~emory devices.
At time 218, the next falling edge of the CLKl ~ignal, the 386ADS* sign?l goes high and the ~ADS* signal : goes low, thus beginning cycle 3 4 which is a memory page , . ., . . ~ ~ .
;... . . : , . :
, - ,:,. ,: ,. .. ,. ~ : : : . . . .
,~. ,: . ...
: .: ~, ., . : ,,, : :
. .:
.: : .:
3 ~j miss write operati~n following a memory write operation.
Cycles 3~2 and 3-3 were both memory page hit write operations and were performed in two CLKl signal cycles, which equates iIl an 80386 to a zero wait state operation.
Additionally at this time the HRDY* signal goes high, indicatiny that cycle 3-3 is completing. After time 218 the HPG~IT* signal goes high , indicating that the memory addresses presented by the processor at time 216 are a page miss and therefore page memory mode operation cannot be utilized. At time ~18, the CAS* signal goes low, thus providing the final addres~ing of cycle 3-3 to the memory devices and causing ~he data to be properly stored.
At time 220, the next falling edge of the CLKl signal, the ~ADS* signal goes high. Also at this time the 1~ data values presented by the proces-or will have begun properly appearing on the host bus 44. Yet ~gai~.~ at this time the ~PGHIT* signal is samplled to determine if a page hit operation is occurring. In this particular instance it is not bec~use the signal i~, at a high level and therefore both row and column addresses must be presented to the memory device. At time 220 the CAS* signal goes high for cycle 3-3 and the HDMDOE* signal goes high. Thus at this point in time the memory data bus begins to float because the ou~puts are disabled. Additionally at time 220 the host memory controller 62 changes the address values being presented on the MA<10-0~ lines to the row address Yalues for cycle 3~4.
At the next rising edge of the CLKl signal after time 220, the RAS* ignal goes high, thus beginning the RAS
precharge time. Operation continues at the same levels until time 222, the third falling edge of ~he CLK1 signal after time 220. At this time the RAS* signal i~ taken low. Thi~ period of time has allowed sufficient precharge to occur a~ needed for the memory devices. Thus now that the memory ~evices are ready for operation, the cycle can proceed. At time 22~, the next falling edge of the CLK1 signal, the HRDY* ~i~nal goes low, indicating that the . .. , .;, .
.
, , " ;., :` ~ ` ` .`,, ' `; : `

",, memory cycle is completing. At this ti~e the address values which are pres~nted on the MA~10-0> lines are changed to be the column 2ddresses and the ~DMDOE* signal goes low, thus gating the data which has been present on the host data bus since time 220 to the memory data bus and starting the data storage operation of the memory devices.
At time 226, the next falling ~dge of the CLKl signal, the 386ADS* signal goes low, indicating that the addresses for cycle 3-5 are being presented by the processor 20. Also at time 226, the ~RDY* signal go~s high and the CAS* signal goes low, thus strobing the column addresses and the data into the memory devices. At this time, ~he HPG~IT* ~ignal may go low because addresses are being presented by the processor 20 which are being compared by the page hit d~tector 43. At time 228, the ne~t falling edge of the CLK1 signal, the 386~DS* signal goes hish and the HADS* signal go~s low, thus passing the addresses onto the host bus 44. Thus it can be seen that there is always a one CLKl si~l~l cycle delay for the presentation of the addresses by the processor 20 to the host bus 44. Rt time 228, the CAS* signal goes high and the EDMDOE* signal goes high completing the write operation of the memory devices and the column addresses presented on the MA<10-0> lines change temporarily to the read column addresses, ~ot the write column addresæes.
This completes the storage operations o cycle 3-4.
On the rising edge of the CLKl 6i~Ral after time 228, the data is presented onto the host data bus from the processor 26. At time 230, the next falling edge of the CLKl signal, the ~DS* signal goes high. Cycle 3 5 is a page hit write operation and ~herefore when the EPGHIT*
signal is sampled at time 230 it is sampled low, indicating that a paqe hit operation iB occurring, so thak the write column addreOEses ara presented at thi~ time on the MA<10~0> lines ~nd that th~ ERDY* ~ignal can go low because this is a page hit operation and ~hereforP a zero ~ : .. : ;: : --14~ 3,~

: wait skate operation. Finally at time 230 the HDMDOE*
signal goes low, ~hus enabling the data from the host blls 44 to the memory data bus for storage by the memory devices.
At time 232, the next falling edge of the CLK1 signal, the HRDY* signal goes high to indicate completion of the address portion of cycle 3-5. At this time the CAS* signal goes low, causing ~he memory devices to begin latching in ~he data presented on the memory data lines to the address as presented on the address lines at this time, which correspond to the column addresses of cycle 3-5. At time 234, the next falling edge of the CLK1 signal, ~he 386ADS* signal goes low, indicating the beginning of a new cycle which will be a page miss write cycle after several idle states and therefore the ~PGHIT*
signal may begin going high. Also at time 234, the CAS*
and HDMDOE* signals go high, indicating that the memory operation of cycle 3-5 has been complet~d.
At time 236, the next falling edge of the CLKl 20 signal, the 386ADS* signal goes high and the ~ADS* signal goes low. This begins cycle 3-6 which is a page miss write operation which proceeds with similar timing to that of cycle 3-4. Thus, Fig. 3 has shown a series of write operations eithex ~ollowing page hit or page miss write operations or idle ~tates. It can be seen that the page hit write operations are done in zero wait states while the page miss write operations are done in ~our wait states ~nd ~he initial write operakion is done in ~hree wait states.
Fig. 4 shows ~he read timing for ~he system for initial read operation~, page hit read operations and page miss read operations. The first cycle 4-1 begins.at time 250, a falling edge of the CLKl ~ignal, where ~he 3~6ADS*
: signal goes high and the ~ADS* signal goes low. This presents ~he addresses to the host bus 44 so that the row addresse~ are presented on the MA<10-0> li~es and the HLOCMEM* signal may s$art going low. At time 252, the - 1 5 ~ Jl ", ~ ,?, ~ , ? ^~

next falling edga~of the CLX1 signal, the 386ADS* signal goes low t~ indicate the address and bus cycle definition values for the next read cycle 4~2 are valid and the HADS*
signal goes high.
At time 254, the next falling edge of the CLKl signal, the ~LOCMEM* ignal is sampled. At time 256, the next falling edge of the CLK1 signal, the RAS* signal goes low, thus indicating that the valid row addresses are presented. At time 258, the next falling edge of the CLK1 signal, the host memory controller 62 changes the address values being presented on the MA~10-0> lines to the colu~n addresses for memory cycle 4-1. At time 260, ~he second rising edge of the CLKl signal after time 258, the CAS*
signal goes low to strobe in the column addresses so that the data can be obtained from the memory devices onto the memory data bus. At time 262, the falling edge of the CLKl signal, the MD~DOE* or memory data bus to host data bus output enable sign~l goes low so that the data being presented by the memory devices :in the memory array 58 can pass through the data buffer 60 to the host bus 44. At time 264, the next rising edge of the CLKl signal, ~he HNA* signal goes low, indicating that the memory sub~ystem is ready for the ne~t ad~ress to be developed. This is : provided to the cache controller ~4 so that a read cycle operation can proc~ed in pipelined mode. It is noted that the write operations are not pipelined while the read opexations are pip~lined.
At time 266, the next rising edge of ~he CLK1 signal, : the ~NA* signal goes high. At time 268, the next falling edge of the CLKl signal, the ~ADS* signal go~s low, thus transferring the ~ddress values for cycle 4-2 to the host bus 44. Also at this time ~he ~RDY* signal goe,s low, i~dicating that cycle 4~ completing. B~cause the addresses have been transferred to the host bus 44, the column addresses for cycle 4 2 are presented on the MA<10-0> lines. At time 270, the next rising edge of the ; . ~ : . :
: . . ,, , ,. ,:: ::

-16- ~ f ,~

CLKl signal, the ~AS* signal goes high, thu~ ending the read operation to the memory devices.
At time 272, the falling edge of the CLKl si~nal, the 386ADS* ignal goes high, as does the ~ADS* signal. At this time the data which had been presented on the data portion of the host bus 44 is released because the MDHDOE*
signal goes high, thus stopping the driving of the data.
At time 272, the HPGHIT* signal is s~mpled to determine if this is a read hit operation. In the particular case 10 sho~n it is, and therefore at time 274, the next rising edge of the CLKl signal, the CAS* signal goes low to indicate to the memor~ devices that column addresses are present. At time 276, the next falling edge of the CLK1 signal, the MDHDOE* signal goes low so that the data which is being presented by the memory devices is transferred to the host bus 44. Then at time 278, the next rising edge of the CLKl signal, the HNA* signal goes low, indicating that the cycle is completing and the cache controller 24 can allow operation to proceed. At time 280, the next falling edge of the CLKl signal, khe 386AD~* signal goes low, indicating that the processor 20 is presenting the ns~t address onto the processor bus 26. Thus at this time the HPGHIT* signal may begin going high bec~use in this case there is a page miss read operation occurring in cycle 4-3O
At time 282, the rising edge of the CLKl signal, the ~NA* si~nal goes high. At time 284, the falling edge of the CLXl signal, the HADS* signal goes low, the HRDY*
si~nal goe6 low, and the values being presented on the memory address bus chanqe because of the address values pre~ented on host address bus HADDR. At time 286, the ri~ing edg~ of the CLKl signal, the CAS* line goes high, thu~ latching data into the data buffer 60 driving the ho~t data bus, terminating the read operation and the appearance o~ the memory data. At time 288, the next falling edge of the CLKl signal, the 3B6ADS* and HADS*
signals go high, as well as the HRDY* signal. The MDHDOE*

. .. .. ! . ' , , ,' ' ' "' ' ~ '""','"'`', '~' ~ ''" ' '', --17 ~ r.~

signal goes high, ~hus ending the transfer of the data to the host bus 44. Additionally at time 288 the row address values for cycle 4~3 are presented to the memory address bus. Also at this time, the HPGHIT* signal is sampled to determine if the cycle is a page hit operation. In this case it is not and therefore both row and column addresses must be provided.
Therefore at time 290, the rising edge of ~he CLKl signal, the RAS* signal goes high to allow a precharge time for the row addresses. At time 292, the next falling edge of the CLKl signal, the HLOCMEM* signal is sampled to determine if this will be a cycle run by the host memory .
controller 62 or whether the bus controller 48 will control. In this case it is a local cycle and therefore the host memory controller 62 proceeds and continues to ~perate. The ~ignals stay at this level until time 294, which is the second falling edge of the CLK1 signal, at which time sufficient precharge time has been available so that the RAS* si~nal can be lowe:red.
At time 296, the next falling edge of the CLK1 signal, the row and column addresses are changed so that the column ~ddresses are appearing on the MA<10-0> lines.
At time 298, the second rising edge of the CLK1 signal after time 296, the CAS* signal goes low to indicate that :: 25 column addresses are pre~ent. At time 300, the next ; ~alling ~dge of the CLKl signal, the MDHDOE* signal goes : low so that the data which has been presented by the memory devices ~rom time 298 is then passed to the host ~us 44. At time 302, ~he next rising edge of the CLKl signal, the ~NA* si~nal goes low to indicate to th2 cache controller 24 that the ~ycle is terminating and ~he next addxess can be pipelined. At time 304, the next rising edge of the CLKl ~ignal, the ~NA* signal goes high. At time 3Q6, the next falling e~ge of the CLKl signal, the 386ADS* sig~al goe~ low indicating that the next address i~ being prese~ted by ~he processor 20. Also at this time the ~RDY* signal goes low to indicate to the cache 18 ~;~ 7 ~

controller 24 that~the memory is ready for the next cycle.
Additionally at this time, the ~PGHIT* signal will begin going high because the next addresses presented on the bus by the processor 20 indicate a page miss. At time 308, the rising edge of the CLKl signal, ~he CAS* signal goes high, thus terminating the read operation of the memory devices. At time 310, the next falling edge of the CLKl signal, the 386ADS* signal goes high as well as the HRDY*
signal and the HADS* signal goes low, indicating ~hat new addresses for cycle 4-4 are appearing on the host bus 44.
Also at time 310 the M~HDOE~ signal goes high, indicating that the data should no longer be passed from the memory array 58 to the host bus 44. At time 312, ~he HADS*
signal goes high, commencing a second page miss read operation, in this case after an idle operation, for cycle 4-4. Timing of this operation is similar to the timing of cycl~ 4-3, which has been a page miss xead operation after a read operation.
Fig. 5 shows the interaction between the various read and write cycles in various orders. It is noted that the cycles of Fig. 5 cannot actually be run by the processor unit P1 because of limitations o.f th~ cache controller 24, but are shown for exemplary reasons. Therefore, references to ~he 386ADS* signal will not be made.
Cycle 5-1 is a page hit read op~ration after an idle operation, cycle 5-2 is a page hit write operation following ~he read operation, cycle 5-3 is a page hit read following a write operation, cycle 5-4 is a page miss write operation following a read operation and cycle 5-5 is a page miss read operation following a write operation.
At time 330, a falling edge of the CLK1 signal, the ~AD~* signal goes low, indicating that new addre~ses are pxesent on the host bus 44. At this time the HGPHIT*
signal should be going low because ~his is a page hit operation. Also at this time, the column addresses are being presented o~ the MA<10-0> line. At time 332, the next falling edge of the CLKl signal, the EIADS* signal . " . ., , j, . . .

:' l ' :

- 1 9 ~ J ~ ,~, J

yoes high and the ~PGHIT* signal is sampled. In this case it is low because thi6 iS a page hit operation. Then at time 334, th~ next xising edge of the CLK1 signal, the CAS* signal goes low so that the data begins appearing from the memory devices. At time 336, the next falling edge of ~he CLKl sisnal, the MDHDOE* signal goes low so that the memory data is prese~ted to the data portion of the host bus 44. At tim~ 338, the rising edge of the CLKl si~nal, the ~NA* signal goes low to indicate to the cache controller 24 that the memory cycle is completing and the next address can be presented. At time 340, the next rising edge of the CLKl signal, ~he ENA* signal goes high.
At tim~ 342, the next falling edg~ of the CLKl:signal, the HADS* siqnal goe~ low and the HRDY* signal goes low.
Thus, the ne~t address is being presented on the host bus 44 and the first cycle is indicated as ~eing completed.
At time 344, the next ri~ing edge of the CLKl signal, the CAS* signal goes high, ending the presentation of the data by the memory array 58.
At time 346, the next falling edge of the CLKl signal, the HADS* signal goes high, as does the MDHDOE*
si~nal. Additionally at thi~ t:ime, ~he ~PG~IT* signal is sampled to dete~mine if this is a me~ory page hit. In this cas~ it i~ and therefore only column addres~es n~ed be used and ~ e ~RDY* ~ignal is driven low to indicate the ending of a cycle. In this case, this is cycle 5-2, it is a write operation and ~here~ore the data will ~e provided by the processor 20 and stored in the memory devices.
Ther~fore because this is a page hit write operation, at time 348, th~ ne~t ~alling edge of the CLK~ signal, the H~DY* si~nal goe~ low and ~he column addr~s~es for cycle 5-2 appear on the MA<10-0> li~e~. Additio~ally at ~his time, the ~DMDOE* signal goes low so that the data is transferred from ~he host bus 44 to the memory data bus and the ~emory write e~ble ~ignal i~ lowered. At time 35~, the next falling edge o ~he CLKl signal, the HADS*
signal goes low to indicate that the address~s fox . ... ,. : , ::

., .:;
: .- - :: ;. -, , :.

-20~

cycle 5-3 are being presented on the data bus. Also at this time the CAS* signal goes low so that the column addresses which have been latched by the memory controller 62 are presented and understood by the memory devices. It can be seen that there is a one cycle of the CLK1 signal after the next operation has been allowed to commence that the data is actually being supplied to the memory devices.
Thus this saves one wait state of operation during memory writes. At time 35Z, the next falling edge of the CLRl lQ signal, the HADS* signal goes high, the CAS* signal goes high and the HDMDOE* signal goes high. The CAS* signal goes high to indicate the end of the write operation. The HPGHIT* signal is sampled to determine if this cycle 5-3 is a page hit operation. In this case it is a page hit read operatio~ following the page hit write operation of cycle 5-2. Therefore row address strobe precharge time is not requir~d and only column addressing needs to be used, however an additional CLK1 signal cycle is necessary to meet column address strobe precharge times. Thus at time 354, the second rising edge o l~e CLKl signal, the CAS*
sisnal is lowered, causing the memo~y devices to begin outputting data. At time 356, the next falling edge of th~ CLK1 signal, the MDEDOE* signal goes low so that the memory data is transferred to the host bus 44. At time Z5 358, the next rising edg~ of th~ CLKl signal, the HNA*
sign~l goes low, indicating that the ne~t address can be presented. At time 360, the ne~t rising edge o~ the CLKl signal, the ENA* signal goes high. At time 362, the next alling edge of the CLKl signal, the ~ADS* and ~DY*
signals go low, indicating that ~he next address is available on the host bus 44 and that cycle 5-3 is completing. At time 364, the next risiny edge of~the CLKl 6ignal, the CAS* signal goes high so that the memory devices stop driving data onto the memory data bus. At time 366, the HADS* and ~RDY* signals go high, as well as the MD~DOE* signal, so that data is no long2r being driven . ~ , , , .., .: :
... . . .

onto the bus by the data buffer 60. The E~GHIT* signal is sampled at this time.
The next operation is a page miss write operation following the read so that at time 368, the next rising 5 edge of the CLKl signal, the RAS* signal goes high to allow a precharge time for the next row addresses to be presented to the memory devices. Also at this time the processor 20 presents the data to the host bus 44. The precharge time continues until time 370, the third falling edge of the CLKl signal after time 368, at which time the RAS* signal goes low so that the row addresses are strobed to the memory device. At time 372, the ne~t falling edge of the CLRl signal, the ~RDY* signal goes low to indicate that the cycle is completing. Additionally at this time 15 the E~MDOE* signal goes low so that the data is transferred from the host bus 44 to the memory data bus, where it is stored by the memory devlces . At time 3 74, the next falling edge of the CLK1 signal, the ~DS* signal goes low as does the CAS* signal. Thereore this is an 20 indication that the next address is available on the host bus 44 and an indication to the memory devices to begin storing the data at the column address which is pr~sented by the r~clo-o~ lines.
.~t time 376, the next falling edge o~ the CLKl 25 qignal, the HADS* signal goes high. At this time the EIPGHIT* ~ignal is ~arnpled and found tc~ be high, there~ore indicating that this is a page miss operation. Also at this time the ~AS* and the EDM~OE* signals go high, thus ending the memory write operation of cycle 5-4. At time 378, ~he ne~t ri~ing ed~e of the CLKl signal, ~he RAS*
signal goes high ~o that the row address precharge time ca~ be developed, Then at time 380, the ~hird ~alling edge of the CLKl ~ignal, the RAS* si~nal goes low so that the row addresses are strobed into the memory devices. At time 382, the ne~t falling edge of the CLKl signal, the memory controll~r 62 changes the address~s being presented on the MA<10-0> lines so that now the column addres es of - ,.. .

: :, : :~:, :
.:. .. : , : , :

cycle 5-5 are preeented. Then at time 384, the second rising edge of the CLKl signal, ~he CAS* signal goes low strobing in the column addresses so that the memory data begins appearing on the memory data bus. At time 386, the ne~t falling edge of the CLKl signal, the MDHDOE* siqnal goes low so that the memory data is transferred to the host bus 44. At time 388, the next rising edge of the CLKl signal, the HNA* si~nal goes low to indicate to the cache controller 24 that the cycle is completing and the next addxess can be presented. At time 390, the next rising edge of the CLKl signal, the HNA* signal is raised.
At time 392, the next falling edge of the CLKl signal, the ~DS* and XRDY* signals go low to indicate that the next addresses are available on the host bus 44 and that cycle 5-5 is completing. At time 394, the next rising edge of the CLKl signal, the CAS* signal goes high to terminate the read operation of the memory devices. Then at time 396, the next falling edge of the CLKl signal, the HADS, RRDY* and MDHDOE* signals go high. This thus completes the page miss read operation.
It can be seen that the timing of the computer system is such that a page hit indication is sampled only a very short time ater the addxesses are actually presented on the host bus 44, which, given the propagation delays of co~ventional circuits available today, is one CLK1 signal cycle earlier than if ~he page address determinatlon would have been made based on the host address values, particularly wh~ it is noted that the cycle time of the CLKl ~ignal in the pre~erred embodiment is only 30 nsec and time mu~t be provided for the addresses to settle. By having the pag~ hit detector 43 located on the processor bus 26, thus an entire one full 30 ncec CLK1 si~nal cycle i6 aYailable to do this operation. It can also be seen that duxing write operations the host bus 44 is released 35 to the cache controller 24 one CLK1 signal cycle before nor~ally done if the addre~ses and data were not latched by *he host memory controller 62 and the data buffer 60.

: `' . `. - "" ~ ' ' :
. , ~ .:
., ,~ - , .: ,.. , . ~ .
. ,.. ~ ~ . .

23~ ? ~

The page hit~ detector 43 is shown in block diagram form in Fig. 6. A 24 bit wide D-type flip flop 400 has c:onnected to its D input the PA<31-11> signals, the FA20*
signal and two spares signals, SP1 and SP2. The PA<31-11>
5 signals are the respective address signals from the processor 20, while the FA20* sis~nal is a signal which indicates that the A20 bit is being forced to a 0 for backward compatibility reasons. The clocking input to the flip-flop 400 receives the BACP signal from the cache controller 24, which provides ~ positive edge whenever the processor cycle is to be forwarded to the host bus 44.
Thus the output of the flip-flop 400 matches ~he addresses on the host bus 44. The flip-flop 400 is provided in the preferred ~bodiment because the page hit circuitry 43 is preferably contained in a single integrated device and thus fewer înputs are needed on the device. Additionally, the 24 inputs connected to the flip-flop 400 are connected to the A inputs o~ a 24 bit comparator 402. The noninverted outputs of the flip flop 400 are connected to the D inputs of a 24 bit latch 404. The outputs of the latch 404 are connected to the B input of the 24 bit comparator 402 so ~hat a compari.son is made between the addresses as presented by the processor 20 and as latched by the transpare~t latch 404. The gating si~nal for the latch 404 is provided by the RASA* signal, which is a more specific variation of the ~AS* signal described in the timing diagrams. Thus, this signal latches the previous ~et of row addresses used by the host memory controller 62 ~o that a true previous page vsrsus current desired page : 30 comparison is done by ~he com~arator 402. It is to be noted that the RASA* si~nal stays low at all times except when a page break or miss is detected.
The RASA* ~i~nal is inverted by an inverter 406 whose output i~ connected to one input of a 4 input NAND gate 408. A 6econd input to the NAND gate 408 is connected to ~he equal output o~ ~he comparator 402 to provide for the comparison indic~tion. A ~hird input to the N~ND gate 408 . - .
,: . . . .. . . ~
- ... , .- - . . , . . , .,:
.... ; , ;: . . : ' ' , ' " , . : ~ ~

24 ,L,J ~ lJ !, '..3 is connected to the output of an inverter 410 whose input i connected to the output of a 2 input NOR gate 409. One input of the NOR gate 409 is connected to the output of a 2 input AND gate 407, whose inputs are the PM/IO and PD/C
5 ~ignals, which come from the processor 20. The second input of the ~OR gate 409 is connected to the output of a 2 input AND gate 405, whose inputs are the PM/IO and PW/R*
signals. Thus, the output of the inverter 410 is high if a memory data or write cycle is occurring.
The final input to the NAND gate 408 i5 the output of a D-type flip-flop 412. The D input of the flip-flop 412 is connected to a logic level 1 while the clocking input is connected to the output of ~he inverter 406. The clear input of the flip-flop 412 is coDn~cted to the PHLDA
signal so that whenever the processor 20 is acknowledging that it is in a hold state, the flip-flop 412 has a zero output, thus producing a high level output on NAND gate 408, which indicates that a page hit has not been detected. Thus, by this combination it is guaranteed that 20 the first or initial cycle after the processor 20 regains control of the host bus 44 is treated as a page miss ~ operation as might be the case should processor P2, for : example, have controlled the bus and addressed various memory addresses. Were the page hit detector 43 to not :~ 25 take notice of this condition, then if the alternate bus co~troller had actually changed the pages ~his would not neces~arily be indi ::ated as such and therefore erroneous operation could occur.
The PHLDA signal i6 also one input to a 2 input NAND
gate 414 who~e othex input is the PHOLD signal. The output of NAN~ s~ate 414 goes ts: the tri-state control i~put of a buffer 416 whose input is connected ,t~ ~he output o the N~ND gate 408 a~d whose output i~ the HPGHIT* signal. By using a tri-state buffer 416 as the 35 actual driving device for the HPGHIT* signal, this allows processors Pl and P2 to both utilize page hit operatio~
a~d not require the mPmory controller 62 to have ~eparate - . .. ,- ,- .

' ~, ' ! ,; ~ , , 2 5 f~ }

inputs. The NAND ~ate 414 iæ used to disable a particular processor's page hit detection circuitry 43 whenever it is truly in a held condition and does not have ~ontrsl of the bu~ as indicated by bo~h the P~LDA and PHOLD signals being high.
A high level block diagram of portions of the host memory controller 62 i~ show~ in Fig. 7. A state machine and associated logic block 430 has as its inputs the HPGHIT* signal, a clock ~ignal CLK* and various miscellaneous inputs received from the host bus 44. A
series of outputs are provided by the state machine and logic circuit block 430 to the ~utput register and logic .
circuitry 432. The output register and logic circuitry 432 ha~ a series of inputs and a ~eries of outputs and additionally ha~ the CLK* signal ~s an input for clocking purposes. One output of the output register and logic circuitry 432 is connected to one input of a 2 input AND
gate 434 whose other input is the CLK* signal. The CLK*
signal is generated by a combination of the CLK2 and CLKl signals as 6hown in Fig. 20. The output of the AND gate 434 is connected to the input to an 11 bit wide D~type flip-flop 43~. The AND gate 434 is not actually presen~
in the preferred e~bodiment but i~ shown in Figure 7 for conceptual and illustrative purposes. The actual devices in the pre~rxed embodiment are shown in Fig. 11 and 18.
The inputs to the flip-flop 436 axe the COLUMN RE~D<10-0>
cignals. The flip-flop 436 i~ used to latch the column write addres~es ~o that the ~emory cycle can be terminated earlier ~han otherwise ~ormally pos~i~le because the cache controller 24 would remove the addresses and data too early because of the zero wait state timing of the ~RDY*
si~nal. ~n 11 bit wide 4:1 multiplexer 438 is utllized to couple the four types o addr~sses in ~his case to the MA<10-0> lines. The our inputs to the multiple~er 438 are ~he ~EFRESH<10-0~ signals, the ROWc10-0> signal~, the COLUMN READ<10-0> si~nals and the COLUMN WRITE<10-0>
signal~ which are provided by the output of latch 436.

, :, : . ~ , -, ~

The control of th~ multiplexer 438 is provided by four signals output from the output register and logic circuitry 432. Th~ refresh addresses are used because the main memory array 58 is preferably formed of DRAM's and therefore re~reshing is necessary. These portions of the memory controller 62 will be described in more detail.
A block diagram of the data buffer 60 is shown in Fig. 19. The data buffer 60 provides the parity generation, latching and transceiving functions necessary to transfer data between the memory array 58 and th~ host bus 44. The memory data bus bits <31-0> are connected to ~he D inputs of a 32 bit wide transparent latch 450. The outputs of the latch 450 are connected to a 32 bit wide buffer 452 whose inverted tri-state control input has connected to it the MDHDOE* signal. The output of the buffer 452 is connected to the HD<31 0> lines that form the data bus of the host bus 44. The CAS* signal is connected the inverted gating input of ~he latch 450.
~: Thus when the CAS* signal is low the data is being passed through the latch 450. This provides transfer from the : memory data bus to the host data bus 44. A similar 32 bit transparent latch 454 has connected to its D inputs the :~ HD~31-0> lines from ~he host bu~ 44 and has as its outputs onnected to a 32 bit tri-state buffer 456 whose inverted tri-state control input is connected to tha EDMDOE*
:~ signal. The ou~puts of the buffer 456 are connected to the MD<31-0> lines, thus allowing the 32 bits of data to be transferred from the host bus 44 to the memory data bus. Also connected to æhe ~DC31-0> lines is a parity generator/checker 458 to provide parity information and checking generally utilized wi~h dynamic R~M's. The CAS*
~ignal is connected to the input of an inverter 4~0 whose output is c~nnected to the inverted enable input of the la~ch 454. In ~his manner, the data which i~ present on 35 the host bus 44 i~ transmitted ~hrough the latch 454 whenever ~he CAS* signal is high, so that when the CAS* . :
signal goes low, this data is then latched, thus allowing , ' ` , ~ . , ' . ;,. ,. . . .. .:: ~.
: . :.- .: . ~ .. . .. . ...

-27~ ù ~3 extension of the period of the data available, thus cooperating with the latched addresses as done in the memory controller 62 to allow the one CLK1 cycle extension. Preferably the various latches and buffers are implemented as byte wide devices with CAS* signals being used for each byte lane so that only properly regyested bytes axe latched.
The state machine utilized in th~ host memory controller state machine and logic block 430 is shown in lV diagramatic form in Fig. 8. Upon reset of the computer system C, the state machine is initialized to state PZ.
Control remains in state PZ, the RAS* sig~al high idle state if the processor or processors connected to the host bus 44 are not in control of the host bus as i~dicated by the CPU signal being low or if the ADS signal is not low.
The state machine is clocked ~y the CLK signal (Fig. 20).
The CPU signal is developed by synchronizing the HLDA
signal provided to the bus controller 48 by the arbitration logic 77 with the Cl~Kl signal. If, however, processor P1 or processor P2 is in control of the host bus 44 and the ADS* signal is low, then control proceeds to state PA. The state machine rem~ins in state PA while the ADS* signal is low. If the ~DS* signal goes high and this is a local memory read or data operation as indicated by the MSTART signal bein~ high, a memory start operation, then on ~he next rising edge of the CLK signal control transfers to state PB. If the ADS* ~i~nal is high and this either not a local memory cycle, it is an I/O cycle or it is a memory write c~de cycle, then control transfers 30 to state PZ.
There are two exits from state PB, dep~nding upon whether this is a write or a read cycle. If it is a read cycle, then at t:he next rising edge of the CLK signal the state machine advances to ~tate PC. On the next rising 35 edge the ~tate machine advances to ~tate PD if a signal referred to as HXNHIE~IT* is high or regated. The HINHIBIT~ signal is provided by a write-back cache '. ' .,. ,:, " "' ' ~ :
, ` ; ', "'`' ', ,, ' '~' , '' :
, ~; . , : `

--28-- A~ ~ ?

controller (not sh~wn) to indicate that the cache contains the v~lid ~opy of the data for the p~rticular addressed memory location. In that instance the system must transfer the data from the cache to the main memory. Thus a read cycle is converted to a form of write cycle. On the next rising edge of the CLK signal control transfers from state PD to state PE and then on the next rising edge to state PF. Control remains in state PF if the HPAUSE
signal is high, which indicate~ that insertion of a wait state is desired. While not preferred, wait states can be added using the HPAUSE signal to allow u~e of different memory devices if desired or to allow a cache controller sufficient time to perform certain snooping functions. If the HPAUSE signal is low and the HINHIBIT* signal is high, control proceeds to state PG on the next rising edge of the CLK signal. If ~he HPAUSE signal is high, control remains in state PG, while control proceeds to state PH on the next rising edge of the CLK signal when the HPAUSE
signal is low and the HINHIBIT* si~nal is high. This full path from state PZ is taken in the case of initial read operations.
If in either of states PF or PG the HINHIBIT signal is high, indicating a cache write back situation, and the HPAUSE signal i8 low, control proceeds to ~tate PN.
Control also transfers to state PN from state PC if the ~IN~IBIT signal i~ asserted at that time. Control proceeds from ~tate PN to state PO to state PP on 6uccessive rising edges of the CLK signal. Control remains at state PP if the HPAUSE signal is high. If the HPAUSE ~ignal i~ low, contxol proceeds to state PQ and then to ~tate P~, completing ~he write-back operation.
There are four possible locations where control can proceed from state P~. If the ADS* si~nal is low, ~he ~IT
~ignal is true or high and it is a read operation, control return~ to state PE. Thus, in the case of a page hit read following a read opexation, control txansfers from state P~ to state PE. If, however, it was a page hit write --2 9 ~ Z`~ 3 operation, control transfers from state PH to state PK.
If the ADS* signal is low and it is not a hit operation, then control proceeds to state PI. If the ~DS* signal is highr then control proceeds to state PX.
Control remains or idles in state PX wi~h the RAS*
signal low if a proce~sor is in control of the host bus 44 as indicated by the CPU signal being high and the ADS*
signal remains high. This can be seen in the two idle state operations of Fig. 3 just prior to cycle 3-6. If a processor is not controlling the host bus 44, then control transfers from state PX to state PZ to begin an initial cycle, whether it be a read or write operation. If a processor is controlling th host bus 44, the ADS signal is high, it is a page hit operation and it is a read operation, control transfers from state PX to state PE to do a read page hit operation after an idle state. If a processor is still controlling the host bus 44 as indicated by a high level CPU signal, the ADS signal is high and it is not a hit cycle, then control procee~s to state PI.
State PI has two exits, one to state PZ i it is not a memory start operation, and ~le other to state PJ if there is a memory start operation. The path from state PI
to state PJ to the mandatory transfer to state PB is used to provide the RAS precharge time necessary for memory device~. After control has transferred from state PJ to state PB, control then transfers to state PC for read operations, as previously indicated, or to state PK if a write operation is occurring. Control remains in state PX
if the EPAUSE signal is high and transers to state PL if the HPAUSE signal is low. Control transfers from ~tate PL
to state P~ in all cases.
There are five exits from state PM. If the HADS*
sisnal is high control proceeds to state PX. This is the instance where an idle ~tate is being entered. There are two exits from state PX into this write path and ~hey occur from state PX to state PK if a processor is ,, ~

"

-30~ "

controlling the h~st bus 44, the ADS* signal is low, it is a page hit, a write and the HPAUSE si~nal is high. If the other conditions are met and ~he HPAUSE signal was low, then control transfers to state PL. Transfer is made from state PM to state PK if the ADS* signal is low, the hit si~nal is high, it is a write cycle and the HPAUSE signal is high. If the HPAUSE si~nal were low, then control would transfer to stat~ PL, the case for back to back page hit write operations. If the ADS* signal is low, it is a page hit and it is a read operation, then control transfers from state PM to state PD to commence a page hit read operation following a write operation. The final transfer out of state PM is a transfer to state PI if the ADS* siynal is low and there is not a page hit as indicated by the HIT or HPGHIT signal ~eing low. This txansfer begins the RAS precharge for the DRAM's.
It is noted that the various states of ~he state machine have been indicated on Figs. 3, 4 and 5 so that operation of the state machine in relation to the timing diagrams can easily be tracked.
Logic circuitry is required to develop some switching signals utilized by the state machine. Portions of this logic are shown in Fig. 9. The ADS* signal is developed as the output of a two inpu~ NOR gate 450 whose inputs are ~5 the ~ADS signal and TADS signa1. The HADS signal is the address status signal available on the host bus 44 and the TADS signal is the address status signal produced by logic which cooperates with the cache controller 24 to allow a 64 kbyte cache to ~e implemented. The TADS signal is a signal transparent to the cache controller 24 to allow a second double word to be read during cache miss read situations. For more details of operation of this train logic, please see Canadian application Patent File No. 2,016,683 entitled "Quadruple Word, Multiplexed Paged Mode and Cache Memory", filed May 14, 1990 ~nd assigned to the assignee of this inve~tion, which is hereby in~orporated by reference. The ADS* signal is inverted by , . ,:. .: . : . .
"
:, " ~ :., :, . " :~
.
.:. , , ,, ,.. , , . .. ; ,.
: ::i .

--31~ I~J ~ r;~ J

an inverter 452 whose output is connected to one input of a 2 input NAND gate 454. The other input to the NAND gate 454 is the HPG~IT signal, which i~ also referred to as the HIT signal. The output of NAND gate 454 is the ~IT.ADS*
signal, which is an indication, if it is low, that there has ~een a page hit in combination with ~he ADS signal going high.
The MSTART signal utilized by the state machine is produced as the output of a two input AND sate 456, one of whose inputs is the HLOCMEM signal and whos~ other input is the output of a two input ~ND gate 458. The output of the AND gate 458 and the ~LOC~EM signal are also the two inputs to a 2 input NAND gate 460 whose output is thus the MSTART* signal. Ths two inputs to the AND gate 458 are the HM-IO signal and the output of a 2 inp~lt NAND gate 462. One input to the NAND gate 462 is the HW-R signal and the other input is connected to ~he output of an inverter 464. The input to the inv~rter 464 is the HD-C
signal. Thus the MSTART signal indicat~s a local memory, :~ 20 data or read op~ration.
Clocking signals are utilized to advance the state machine and perform various functions in the memory controller 62 as indicated by the timing diagrams. The CLK2* signal is provided to the inverted clocking input of a D-type flip-flop 470 (Fig. 10~. The noninverted output o~ the .~lip-flop 470 is connected to the inverted D input so that a divide by two toggle configuration develops.
The noninverted output is considered to be ~he CLKl signal so that the inverting output of the flip-flop 470 is the CLKl* signal. The RESET* signal, which goes low to indicate computer system C reset, i~ provided to ~he reset input of the flip-flop 470 to allow ~ynchronization with the computer 6ystem C. The CLXl* fiignal is provided as one input to a 2 input NAND g te 472, whose other input i~
the CLR~* signal. The output of ~his gate 472 is called the CLKNEG ~ignal and is u~ed in clocking certain portions of the RAS signals. The CLK1 signal is connected as o~e ...

.,: ,' ': : , :

-32- ~.$~

input to a 2 inpu~ NA~D gate 474, whose other input is connected to the CLK2* signal. The output of this NAND
gate 474 is the CLK signal, which is used to advance the state machine and to latch numerous signals in the memory controller 62. The resulting wavefoxms are shown in Fig. 20.
Because the memory controller 62 is based on a synchronous state machine, combinations of the various states are used to produce the necessary signals as shown in the timing diagrams. The logic utilizing that will now be described.
Signals indicating that the state machine is in state PP, state PO or state PL are combined by an OR gate 480 (Fig. 9) whose output is connected to the input of a 2 input NOR gate 482. The second input of the NOR gate 482 receives a signal which indicates that tha next state of the machine will be state PL. l'he output of the NOR gate 482 is the HDMDOE D* signal, wh:ich is provided to the D
input of a D-type flip-10p 484, whose clocking input is connected to the CLK signal ancl whose reset input is connected to the RESET signal. The noninverted output of the flip~flop 484 is the EIDMDOE* sign~l, which is presented to the memory devices ~o act as the memory write strobe and to the data buffer 60 as the output enable signal.
A ~ignal indicating that the state machine is in state PH is provided to an inverted input of a 2 input AND
gate 49a (Fig. 10). The second input to ~he AND gate 490 is the output of a 2 input NAND gate 492, one of whose inputs i~ conn~cted to the output of an inverter 494 whose input is connected to the next state PF or NS PF signal.
The second input to the N~ND gate 492 is the MMlDOE*
signal, which is provided at an inverted output of a 4 bit true and in~erted output D ~type flip-flop 496 and it 35 utilized by the data buffer 60. The flip-flop 49fi is clocked by the CLK signal and the reset input is connected to the RESET signal. The output of the AND gate 490 is ' ..

, ~ , ~ ., , , , ,. ~

connected to the~ D input of the flip-flop 496 corresponding to the MDHDOE* signal output.
A signal indicating that the state machin~ is not in state PE (SPE*~ is conn~cted ko one input of a two input NAND gate 505, whose other input receives the not state PO
(SPo*) signal. The output of the NAND gate 505 is provided to one input of a 2 input AND gat~ 506. The other input of the AND gate 506 is inverted and has connected to it the HPAUSE sis~nal. The output of the AND
gate 506 is connected to a D input of the flip-flop 496 with the noninverted output associated with that particular D input being connected to the D input of a D-type flip-flop 508. The clocking siynal for flip-flop 508 is the CLKNEG signal and the inverted output of flip-flop 508 is the HNA* signal, which is supplied to the host bus 44. By using the CLKNEG signal the HNA* signal is produced on the rising edge of the CLKl signal, not the falling edges as done with most of the other signals.
The HRDY signal is developed by the noninverted ~0 output of a D-type flip-flop 516 (Fig. 11 ) whose clock input is connected to the CLK signal. The inverted D
input is connected to the output of a 3 input NOR gate 518 whose inputs are signals repre~entiny that the next state of the machine is state PH, that the next state of the state machine is state PL or that the bus controller 48 is ready. The use of th~ next state PL signal allows the generation o khe ~RDY ~ignal on the state after entry into a page hit write operation, wi~h ~he HIT signal being sampled upon entry to state PL. If the sampling had been delayed one CLKl signal cycle the ~RDY signal could not have been generated adequately to allow for proper ~RDY
signal timiny without incurring a wait 6tate. T~e output of NOR gate 518 is also connected to the inverting Dl input o a multiplexed input flip flop 518. The i~verted -DO input i5 connected to a high level logic signal. The select input, the level of which controls whether the DO
or Dl input is to be used based on a low or high level, ' 34~ J t I

respectively, is ~onnected to the BRDYDIS* signal, which is active or low on ~he first double word read of a train or quadruple word cache miss fill operation. This connection keeps one of the read operations invisible to the cache controller 24. The flip-flop 518 is clocked by the CLK signal and produces the BRDY signal at its noninverting output. A signal indicating that the next state of the state machine is state PG is connected to one input of a two i~put NOR gate 222, whose other input is connected to a signal which indicat~s that the next state of the s tate machine is state PQ and whose output is connected to the inv~rting input of a D-type flip~flop 524. The clock signal of the flip-flop 524 is connected to ~he CLK signal. The noninverted output of the ~lip-flop 524 is the TRDY signal which is used with the train logic discussed above.
The LHWP or latched host bus write protect sign~l, which indicates that this memory location is write protected, is provided to the D input of a D-type flip-flop 530 (Fig. 12), whose clocking input receives the BELAT signal. The LHWP signal is a version of the host bus write protect signal which is latched when ~he RASA*
signal is low and transparent when the RASA* signal is high. This latching insures that the LHWP ~ignal does not change during page hit operations. The BELAT signal is used to properly latch the byte enable signal~ rec~ive~
and present on the host bus 44 and also has appropriate timing to latch in the LHWP signal. The inverted output of the flip-flop 530 is connected to one input of a 2 input NAND gate 532, whose other input is a signal provi~e~ as the output of a two input OR gate 531, whose inputs are ~ignals indicating that the state ~achine is in ~tate PL or the ne~t ~tate is state PQ. The output of the ~AND gate 532, which goe~ low during appropriate periods of non-protected write cycles, is connected to the inverted Dl input of a multiplexed input flip-flop 535. ..
The D0 inverted input i8 connected to a high logic level.

~ . : :, .. : , . , -35~ ;J ~ ~

The clocking signal to the flip-flop 535 is provided by the CLK signal. The multiplexer select input is connected to the output of a 2 input NOR gate 536 whose inputs are the REFRESX si~nal and the latched version of the HLOCMEM*
5 signal. The REFRES~ si~nal indicates that a refresh operation i~ in process for the dynamic RAM's. The output of flip-flop 534, which yoes high during non-protected, local, non-refr~sh memory write cycles, is connected to one input of a series of four 2 input OR gates 538, 540, 10 542 and 544.
The other input to the OR gates 538, 540, 542 and 544 is connected to the CASR signal, which is one output of a 4 bit flip-flop 546 (Fig. 14). The flip-flop 546 is res~t by the RESET signal and is clocked by the CLKNEG signal.
The respective D input is connected to the output of a 2 input OR gate 548. The two inputs to the OR gate 548 are connected to two outputs of a 4 bit flip~flop 550 whose reset input is connected to the RESET signal and whose clocking input is connected to the CLK signal. The two respective D inputs to the flip--flop 550 are the CASR_D0 and CASR Dl signals. The CASR D1 siynal is effectively a signal which indicates that the next state of the state machine is state PE (Fig. 12), while the CASR D0 signal is the output of a 2 input OR gate 552, whose inputs are, respectively, ~he next state PG or next state PF signals.
Thus the CASR ~ignal goes hish during appropriate periods of read cycles based on ~he CLKNEG signal.
The ou~put~ of the OR gate 538, 540, 542 and 544 are connected, respectively, to one input of four 2 input NAND
gates 554, 556, 558 and 560. The other input to each of these NAND gates is respectively one of the LBE<0>, LB ~1>, LBEc2~ or LBE<3> signals, which represent latched versions of the byte enable signals present on the host bus 44. The outputs of the foux NAND gates 554, 556, 558 and 560 are the CAS<3-0~* signals, which are used to enable the particular byte la~e of both the buffer 60 and the memory array 58.

"
"

.

The row address strobe enable or RAS circuitry is basically developed as follows. The RASA* signal is produced as the output of a 2 input NAND gate 570 ~Fig. 13) whose two inputs are the RASAX and RASAY
S signals. The RASAY signal, and its complement, the RASAY*
sig~al, are provid~d by the output of the flip-flop 546 ( Fig . 14 ), with the respective D input being the RASAY_D
signal. The RASAX signal and its complementary RASAX*
slgnal are produced as outputs of the flip-flop 550 based 10 on a respective input of the RASAX D signal. The RASAX_D
signal is the output of a 2 input AND gate 572. One input to the A~ gate 572 is connected to the output of a 2 input NAND gate 574, one of whose inputs is the RASAX*
signal and whose other input is the RASA J* signal, which 15 corresponds to the state machine not being in state PB.
The second input to the AND gate 572 is inverted and is provided by the output of a 3 input NAND gate 576. One of the inputs to the NAND gate 576 is a signal indicating that the state machine is not i.n state PI. The second 20 input to the NAND gate 576 is the output of a 2 input NAND
gate 578, whose inputs are the CPU and state PZ signals.
The third input to the NAND gate 576 is provided by the output of a 2 input NAND gate 580, whose effective inputs are the CPU* signal and an indication that the state 25 machine is in ~tate PX. The output of NAND gate 576 is also prov~idad to an inverted input to a 2 input AND gate 582 whose output is the RASAY D signal. The second input to the ~ND gate 582 is connected to the output of a 2 input N~ND gate 584 whose inputs are the RAS~ J* si~nal and the RASAY* signal. Thus it can be seen that this combination of logic is such that the YAS~* signal will go low on a falling edge of the CLKl signal and will go high on a rising ~dge o~ ~he CLKl signal because of the use of the two latche6 546 and 550. Identical circuitry is used to produ~e the RAS~* signal, which is developed because of timing considerations.

: : . ,. .. : ;., :, -37~

The construct~on of the multiplexer 438 is shown in Fig. 18. It is noted that the block shown in Fig. 18 is represented as a single bit but it is noted that eleven like circuits are present, the diference being the bit position of the appropriate busses connected to each cixc~it. The MA<10-0> signals are produced as the output of a ~ input OR gate 600. One input to the OR gate 600 is connected to the output of a 2 i~put NOR gate S02, one of whose inputs receives the MXCADR* signal, which is a signal that causes the multiplexer to s~lect the signals received at ~he other input to the NOR gate ~02, which is the CADR<10-0>* signals. These signals are effectively the 22nd, 20th and tenth to second bit positions of the address signals presented to the memory controller 62.
These are the colu~n addresses appropriate for the particular memory device, with bits 20 and 22 being provided to allow for co~nection of various memory device~, such as 256kb x 1, 256kb x 4, lMb x 1, 4Mb x 1 or lMb x 4, with their differing n~mbers of address inputs.
The other input to the OR ~ate ~00 is inverted and is connected to the output of a NOR gate 604 which has three inputs. The first input is connected to the output of an AND gate ~06, whose inputs are the MXREF signal, which is the refresh signal from the host bus 44 and indicates that a refresh cycle is occurring and ther~fore the refresh addresses should be supplied, a~d the REFAD<10~0> signals which correspond to the bits 2-12 of th~ incomin~ address bus and are ~he refresh addresses. The ~econd input of ~he NOR gate 604 is co~nected to the output o a 2 input AND gate 608 whose inputs are the MXRAD signal, which ~:: indicates that the multiplexer ~hould be supplying ~he row addresses, and the R~D<10-0> or xow address si~nals, which corxespond to the bit positions 23, 21 and 19 11 of the i~coming ad~res~ bus. The final input to the NOR gate 604 is connected to ~he output of an AND gate 610 which has as its inputs the MXCADW signal, which indicates that ~his is ;: a write operation column address to provided, and the ,; .

, , ,; , . . ~ : ~ -- -: . . .
.~, . ... . . . .
. . .
~ . .

~3~ r r~ S~ f) ~

CADW<10-0> signal~, which are an intermittently latched version of the CADR<10-0>* signals. This intermitten~
latching, in combination with the latching of the data by ~he data buffer 60, is provided so that ~he control of the host bus 44 can be released in zero wait states, the cycle ter~inating earlier than otherwise possible. The CADW<10-0> signals are produced by the noninverted output of a series of eleven multiple~ed flip~flops 612. The clocking signal is thS~ CLK signal, while the inverted output of the flip flop 612 is connected to the inverted D1 input. The inverted D0 input is connected to the CADR<10-0>* signals to provide the column addressing lines.
necessary. The select input to the multiplexed fllp flop 612 is provided by the CADWDIS or column address write :L5 disable signal, which enables a latching effect at the state of intereæt duxing write cycles. For that one particular state of interest the latching effect applies and the CADR~10-0>* signals are not passed through the flip-flop 612.
The CADWDIS signal is produced as the noninverting output of a D-type flip-flop 620 (Fig. 11~. The inverted æet input to the flip-flop 620 is co~nected to the RESET*
signal and the clocking input is connected to the CLX
signal. The inverted input to the flip-flop 620 is connected to the output of a 2 input NAND gate 622, one of whose inputs is connected to the output of a 3 input OR
gate 624. One i~put to the OR gate 624 is the CADWDIS
signal while the other inputs indicate that the next state of the state machine will be state PL or state PN. The second input of the NAND gate 622 is provided by the :~ output of a two input NOR gate ~26 whose inputs indicate that the state of the state machine is state PL or state PQ. Thus the CADWDIS signal is high only during states PL
or PQ, with the addresses then bein~ latched during states 3 5 PM or PN .
The row hddresE; multiple~ing selection ~ignal MXRAD
is produced as the noninverting output o~ a D-type .
. ' :
- , . - .
.

t~ J :::?
flip-flop 650 (Fi~. 15). The clocking input to the flip-flop 650 is provided by the ChK signal. The inverted D input of the flip-flop 650 is co~nected to ~he MXRAD D*
signal whlch i~ produced by the output of a 2 input NAND
gate 652. One input to the NAND gate 652 is connected to the output of a 3 input OR gate 654, one of whose inputs is the MXRAD signal. The second input to the OR gate 654 is a signal indicating that the next state of the state machine is state PI, while a third input to the OR gate 10 654 is the output of a 2 input OR gate 656. One input to the O~ gate 656 is the ~ESET signal, while th~ other input is con~ected to the output of a 2 i~put AND gate 658 whose inputs are the CPU signal and a signal indicating that the next state of the state machine is state PZ. The second input to the NAND gate 652 is the output of a 3 input NOR
gate 660, whose input signals indicate that the state machine is in state PC or state PK or that a refresh cycle is present. Thus the M~RAD signal is high during reset to set up for an initial cycle or during states PI, PJ, PB, PC and PK for page miss cycles.
The MXCADR* signal is produced as the inverting output of a D-type flip-flop 664 whose clocking signal is eonnected to the CLK signal. The inverted D input to the ~lip-flop 6~4 is c:onne~ted to thc output of a 2 input I~
gate 666. One of t:he inputs to the NAND gate 666 is connected to the output of a 2 input OR gate 668, one of : whose inputs is a signal th~t indicates that the next state of ~he ~tate ma~hine is state ~D. The second input o the 01~ gate 668 is connected to the output of a 3 input ~ 30 OR gate 670, whose inputs ~re connected to the MXCAD~
~ignal and to signals indicating tha the next state of the ~tate machine is state PX or that the state is state : PQ. The second input of the N~ND gate 666 i~ connected to the output to a 4 input NOR gate 672. One input of the NOR gate 672 is connect~d to the ~ESET ~ignal. The second input to the NOR gate 672 is the output of an inverter 676 whose input is ~onnected to ~he output of the NAND gate .
, .. . . :
, ; , .

.., t~s ., .~ J

580. The third input to the NOR gate 672 is a signal indicating that the state machine is in state PN. The fourth input to the NOR gate 672 is connected to the output of a 2 input AND gate 678. One input to the AND
gate 678 is connected to the output of a 2 input NAND gat~
680, whose inputs are the HIT signal and the HW R* signal.
The second input to the AND gate 678 is inverted and is connected to the output of a 2 input NAND gate 682. One of the inputs to the N~ND gate 682 is the ADS ~ignal, while the other input is connected to the output of a 3 input OR gate 684. The three inputs to thP OR gate 684 are si~nals indicating that the state machine is in state PX or state PM and the output of NAND gate 578. Thus the MXCADR* signal is low during states PD, PE, PF, PG and PH
and during PX idle states after read operations.
The ~XCADW signal is produced as the noninverting output of a D-type flip-flop 690 whose clocking input is connected to the CLK signal. The inverted input of the flip-flop 690 is connected to the outpl~t of a 2 input NA~D
gate 692. One input to the N~ND gate 692 is connected to the output of a 3 input OR gate 694, one o whose inputs is connected to a æignal that :indicates that the next state o~ the state machine is state PL. The second input of the OR gate ~94 is connected to the MXCADW signal. The third i~put of the OR gate 694 is connected to a signal which indicates that the state machine is in state PN.
The oth~r i~put of ~he N~ND gate 692 is connected to the output of a 4 input NOR gate 698. One input to NOR gate 698 is connected to RES~T ~ignal. The second input of ~he NOR g~te 698 is connected to a signal which indicates that the state machine i8 in state PQ. The third input of the NOR gate 69B is connected to the output of a 2 input AND
~: gate 70~ whose inputs are signals indicating that the ~tate machine is in state PM and the ~IT.ADS* signal. ~he fourt input of the NOR gate 698 is connected to the output of a 2 input AND gate 706, whose inputs are signals representing that ~he state machine is in ~tate PM and the ~, ,` ' !
'' ' `: ',' : ,, : :
'. ~' '. ; :

~W-R* si~nal. Th~s the MXCADW signal is high during states PL, PM, PO, PP, PQ and state PK following a state PM.
The foregoing disclosure and description of the S invention are illustrative and explanatoxy thereof, and vari~us changes in the siæe, shape, mat~rials, components, circuitry, wiring connPctions and contacts, as well as in ~he details of ~he illustrated circuitry and construction and method of operation may be made without departing from the spirit of the invention.

- , ' ' " '~ , ' ', ~ " :

Claims (24)

1. A computer system, comprising:
a processor having address, data and control input and output signals and using a clock cycle;
a cache controller having address and control input and output signals;
a first bus formed of some of said address, data and control signals of said processor connecting said processor and said cache controller;
a second bus having address, data and control signals;
means controlled by signals from said cache controller for coupling said first and said second buses wherein said address and control signals are provided to said second bus from said first bus at least one clock cycle after being provided by said processor;
page mode dynamic random access memory;
a memory controller coupled to said second bus and said memory for controlling operation of said memory and providing an indication of memory operation completion to said second bus; and means coupled to some of said address signals in said first bus for detecting a memory page hit and providing a signal to said memory controller.
2. The computer system of claim 1, wherein said detection means includes a storage means for storing address values of a memory cycle, and comparator means for comparing said stored address values and current address values.
3. The computer system of claim 2, wherein said storage means is at least partially enabled by a signal provided by said memory controller for control of said memory.
4. The computer system of claim 3, wherein said storage means is at least partially enabled by a signal from said cache controller used for controlling said coupling means.
5. The computer system of claim 1, further comprising:
a second processor having address, data and control input and output signals and using a clock cycle;
a second cache controller having address and control input and output signals;
a third bus formed of some of said address, data and control signals of said second processor connecting said second processor and said second cache controller;
means controlled by signals from said second cache controller for coupling said third and said second buses wherein said address and control signals are provided to said second bus from said third bus at least one clock cycle after being provided by said second processor; and second means coupled to some of said address and control signals in said third bus for detecting a memory page hit and providing a signal to said memory controller, and wherein said detection means and said second detection means provide said signal to the same input of said memory controller.
6. The computer system of claim 5, wherein both of said detection means and said second detection means include means for disabling providing said signal when said respective processor does not have access to said second bus.
7. The computer system of claim 1, wherein said memory controller includes means for disabling utilization of said signal from said detection means during certain cycles.
8. The computer system of claim 7, wherein said disabling means is operative the first cycle after said processor can access said memory via said second bus.
9. A computer system, comprising:
a bus having address, data and control signals which define a memory cycle;
page mode dynamic random access memory; and a memory controller coupled to said bus and to said memory for controlling operation of said memory, wherein said memory controller includes:
means for providing row address values to said memory;
means for providing column address values to said memory, wherein said column addresses are latched during memory write cycles; and means for coupling data from said bus to said memory, wherein said data is latched during memory write cycles.
10. The computer system of claim 9, wherein said memory controller further includes.
means for indicating completion of a memory write cycle wherein said indication is given at a time such that the addresses and data on said bus will be removed from said bus before a time to allow completion of the memory cycle by said memory, and wherein said column address means and said data coupling means latch said column addresses and said data before they are removed from said bus.
11. The computer system of claim 10, wherein said memory controller further includes:
means for providing refresh address values to said memory.
12. The computer system of claim 10, wherein said memory controller provides only column addresses to said memory when said memory cycle utilizes the same row addresses as the previous memory cycle.
13. A computer system, comprising:
a processor having address, data and control input and output signals and using a clock cycle;
a cache controller having address and control input and output signals;
a first bus formed of some of said address, data and control signals of said processor connecting said processor and said cache controller;
a second bus having address, data and control signals;
means controlled by signals from said cache controller for coupling said first and said second buses wherein said address and control signals are provided to said second bus from said first bus at least one clock cycle after being provided by said processor;
page mode dynamic random access memory;
a memory controller coupled to said bus and to said memory for controlling operation of said memory wherein said memory controller includes:
means for providing row address values to said memory;
means for providing column address values to said memory, wherein said column addresses are latched during memory write cycles; and means for coupling data from said bus to said memory, wherein said data is latched during memory write cycles; and means coupled to some of said address signals in said first bus for detecting a memory page hit and providing a signal to said memory controller.
14. The computer system of claim 13, wherein said detection means includes a storage means for storing address values of a memory cycle, and comparator means for comparing said stored address values and current address values.
15. The computer system of claim 14, wherein said storage means is at least partially enabled by a signal provided by said memory controller for control of said memory.
16. The computer system of claim 15, wherein said storage means is at least partially enabled by a signal from said cache controller used for controlling said coupling means.
17. The computer system of claim 13, a second processor having address, data and control input and output signals and using a clock cycle;
a second cache controller having address and control input and output signals;
a third bus formed of some of said address, data and control signals of said second processor connecting said second processor and said second cache controller;
means controlled by signals from said second cache controller for coupling said third and said second buses wherein said address and control signals are provided to said second bus from said third bus at least one clock cycle after being provided by said second processor; and second means coupled to some of said address and control signals in said third bus for detecting a memory page hit and providing a signal to said memory controller, and wherein said detection means and said second detection means provide said signal to the same input of said memory controller.
18. The computer system of claim 17, wherein both of said detection means and said second detection means include means for disabling providing said signal when said respective processor does not have access to said second bus.
19. The computer system of claim 13, wherein said memory controller includes means for disabling utilization of said signal from said detection means during certain cycles.
20. The computer system of claim 19, wherein said disabling means is operative the first cycle after said processor can access said memory via said second bus.
21. The computer system of claim 13, wherein said memory controller further includes:
means for indicating completion of a memory write cycle wherein said indication is given at a time such that the addresses and data on said bus will be removed from said bus before a time to allow completion of the memory cycle by said memory, and wherein said column address means and said data coupling means latch said column addresses and said data before they are removed from said bus.
22. The computer system of claim 21, wherein said memory controller further includes:
means for providing refresh address values to said memory.
23. The computer system of claim 21, wherein said memory controller provides only column addresses to said memory when said memory cycle utilizes the same row addresses as the previous memory cycle.
24. A computer system, comprising:
a processor which provides address, data and control signals and which operates based on a clock cycle, with memory access operations occurring in two clock cycles without wait states;
page mode dynamic random access memory having an access time greater than two clock cycles of said processor; and means for controlling presentation of said address, data and control signals to said memory so that memory write cycles are performed without developing wait states in the cycle.
CA002028085A 1989-11-03 1990-10-19 Paged memory controller Abandoned CA2028085A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43167089A 1989-11-03 1989-11-03
US431,670 1989-11-03

Publications (1)

Publication Number Publication Date
CA2028085A1 true CA2028085A1 (en) 1991-05-04

Family

ID=23712939

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002028085A Abandoned CA2028085A1 (en) 1989-11-03 1990-10-19 Paged memory controller

Country Status (4)

Country Link
US (1) US5303364A (en)
EP (1) EP0427425B1 (en)
CA (1) CA2028085A1 (en)
DE (1) DE69032655T2 (en)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2242294B (en) * 1990-03-19 1993-12-22 Apple Computer Memory architecture using page mode writes and single level write buffering
JPH04270440A (en) * 1991-02-26 1992-09-25 Fujitsu Ltd Access system and access processing device
CA2065992A1 (en) * 1991-06-07 1992-12-08 Jorge Eduardo Lenta Personal computer with enhanced memory access and method
JP3259969B2 (en) * 1991-07-09 2002-02-25 株式会社東芝 Cache memory controller
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5390308A (en) * 1992-04-15 1995-02-14 Rambus, Inc. Method and apparatus for address mapping of dynamic random access memory
US5537553A (en) * 1992-11-13 1996-07-16 Matsushita Electric Industrial Co., Ltd. Method of and apparatus for bus control and data processor
CA2118662C (en) * 1993-03-22 1999-07-13 Paul A. Santeler Memory controller having all dram address and control signals provided synchronously from a single device
US5651130A (en) * 1993-03-22 1997-07-22 Compaq Computer Corporation Memory controller that dynamically predicts page misses
US5640527A (en) * 1993-07-14 1997-06-17 Dell Usa, L.P. Apparatus and method for address pipelining of dynamic random access memory utilizing transparent page address latches to reduce wait states
US6003120A (en) * 1993-12-30 1999-12-14 Intel Corporation Method and apparatus for performing variable length processor write cycles
US5717894A (en) * 1994-03-07 1998-02-10 Dell Usa, L.P. Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
JPH07248963A (en) * 1994-03-08 1995-09-26 Nec Corp Dram controller
US5603007A (en) * 1994-03-14 1997-02-11 Apple Computer, Inc. Methods and apparatus for controlling back-to-back burst reads in a cache system
US5535360A (en) * 1994-08-31 1996-07-09 Vlsi Technology, Inc. Digital computer system having an improved direct-mapped cache controller (with flag modification) for a CPU with address pipelining and method therefor
AU703750B2 (en) * 1994-10-14 1999-04-01 Compaq Computer Corporation Easily programmable memory controller which can access different speed memory devices on different cycles
US5634112A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation Memory controller having precharge prediction based on processor and PCI bus cycles
US5701433A (en) * 1994-10-14 1997-12-23 Compaq Computer Corporation Computer system having a memory controller which performs readahead operations which can be aborted prior to completion
US5862389A (en) * 1995-02-27 1999-01-19 Intel Corporation Method and apparatus for selectively invoking a particular interrupt service routine for a particular interrupt request
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
US5737572A (en) * 1995-06-06 1998-04-07 Apple Computer, Inc. Bank selection logic for memory controllers
US5619471A (en) * 1995-06-06 1997-04-08 Apple Computer, Inc. Memory controller for both interleaved and non-interleaved memory
US5765203A (en) * 1995-12-19 1998-06-09 Seagate Technology, Inc. Storage and addressing method for a buffer memory control system for accessing user and error imformation
WO1997035316A1 (en) * 1996-03-21 1997-09-25 Hitachi, Ltd. Data processor with built-in dram
US6504548B2 (en) 1998-09-18 2003-01-07 Hitachi, Ltd. Data processing apparatus having DRAM incorporated therein
US6014759A (en) 1997-06-13 2000-01-11 Micron Technology, Inc. Method and apparatus for transferring test data from a memory array
US6044429A (en) * 1997-07-10 2000-03-28 Micron Technology, Inc. Method and apparatus for collision-free data transfers in a memory device with selectable data or address paths
US6070227A (en) * 1997-10-31 2000-05-30 Hewlett-Packard Company Main memory bank indexing scheme that optimizes consecutive page hits by linking main memory bank address organization to cache memory address organization
US6052756A (en) * 1998-01-23 2000-04-18 Oki Electric Industry Co., Ltd. Memory page management
US6405280B1 (en) 1998-06-05 2002-06-11 Micron Technology, Inc. Packet-oriented synchronous DRAM interface supporting a plurality of orderings for data block transfers within a burst sequence
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
KR100518576B1 (en) * 2003-05-24 2005-10-04 삼성전자주식회사 Bus arbiter and bus arbitrating method
US8027218B2 (en) 2006-10-13 2011-09-27 Marvell World Trade Ltd. Processor instruction cache with dual-read modes
US7787324B2 (en) 2006-10-13 2010-08-31 Marvell World Trade Ltd. Processor instruction cache with dual-read modes
US8675442B2 (en) * 2011-10-04 2014-03-18 Qualcomm Incorporated Energy efficient memory with reconfigurable decoding
WO2014193412A1 (en) 2013-05-31 2014-12-04 Hewlett-Packard Development Company, L.P. Memory error determination

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4954951A (en) * 1970-12-28 1990-09-04 Hyatt Gilbert P System and method for increasing memory performance
GB2112256B (en) * 1981-11-18 1985-11-06 Texas Instruments Ltd Memory apparatus
US4484308A (en) * 1982-09-23 1984-11-20 Motorola, Inc. Serial data mode circuit for a memory
US4621320A (en) * 1983-10-24 1986-11-04 Sperry Corporation Multi-user read-ahead memory
US4683555A (en) * 1985-01-22 1987-07-28 Texas Instruments Incorporated Serial accessed semiconductor memory with reconfigureable shift registers
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US5005118A (en) * 1987-04-10 1991-04-02 Tandem Computers Incorporated Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
IT1215539B (en) * 1987-06-03 1990-02-14 Honeywell Inf Systems TRANSPARENT BUFFER MEMORY.
JPH0194592A (en) * 1987-10-06 1989-04-13 Fujitsu Ltd Semiconductor memory
US4984209A (en) * 1987-10-30 1991-01-08 Zenith Data Systems Corporation Burst refresh of dynamic random access memory for personal computers
US4943944A (en) * 1987-11-25 1990-07-24 Kabushiki Kaisha Toshiba Semiconductor memory using dynamic ram cells
JPH01146187A (en) * 1987-12-02 1989-06-08 Mitsubishi Electric Corp Semiconductor memory device built-in cache memory
GB8807849D0 (en) * 1988-04-05 1988-05-05 Int Computers Ltd Data processing apparatus with page mode memory
US5034917A (en) * 1988-05-26 1991-07-23 Bland Patrick M Computer system including a page mode memory with decreased access time and method of operation thereof
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US4933910A (en) * 1988-07-06 1990-06-12 Zenith Data Systems Corporation Method for improving the page hit ratio of a page mode main memory system
US5019965A (en) * 1989-02-03 1991-05-28 Digital Equipment Corporation Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US5065312A (en) * 1989-08-01 1991-11-12 Digital Equipment Corporation Method of converting unique data to system data

Also Published As

Publication number Publication date
EP0427425A3 (en) 1992-05-27
DE69032655D1 (en) 1998-10-22
EP0427425A2 (en) 1991-05-15
DE69032655T2 (en) 1999-02-11
EP0427425B1 (en) 1998-09-16
US5303364A (en) 1994-04-12

Similar Documents

Publication Publication Date Title
CA2028085A1 (en) Paged memory controller
CA2027947A1 (en) Combined synchronous and asynchronous memory controller
US5353423A (en) Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses
US5287481A (en) Automatic cache flush with readable and writable cache tag memory
CA2118662C (en) Memory controller having all dram address and control signals provided synchronously from a single device
KR920006767B1 (en) Personal computer having normal and high speed execution modes
EP0468786B1 (en) Processor which performs memory access in parallel with cache access and method employed thereby
EP0664030B1 (en) Double buffering operations between the memory bus and the expansion bus of a computer system
KR920010950B1 (en) Device and method of accessing information
US5761695A (en) Cache memory control method and apparatus, and method and apparatus for controlling memory capable of interleave control
US5873114A (en) Integrated processor and memory control unit including refresh queue logic for refreshing DRAM during idle cycles
US6052756A (en) Memory page management
KR20010080682A (en) Queue based memory controller
JPS6113618B2 (en)
US5544344A (en) Apparatus for caching smram in an intel processor based computer system employing system management mode
US5625847A (en) High-speed ISA bus control system for changing command cycle execution speed by selectively using ISA bus controller and high-speed bus controller
US5151979A (en) Data processing system with information transfer bus and wait signal
EP0398189B1 (en) Noncacheable address random access memory
US5809549A (en) Burst SRAMs for use with a high speed clock
US5175826A (en) Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385
US5860113A (en) System for using a dirty bit with a cache memory
US5893917A (en) Memory controller and method of closing a page of system memory
US5890216A (en) Apparatus and method for decreasing the access time to non-cacheable address space in a computer system
US5901298A (en) Method for utilizing a single multiplex address bus between DRAM, SRAM and ROM
KR920008456B1 (en) Multi-bus microcomputer system

Legal Events

Date Code Title Description
FZDE Discontinued