Method of transferring data by transmitting lower order and upper order memory address bits in separate words with respective op codes and start information
A high speed bus system in which at least one master device, such as a processor and at least one DRAM slave device are coupled to the bus. An innovative packet format and device interface which utilizes a plurality of time and space saving features in order to decrease the die size of the device receiver and decrease the overall latency on the bus is provided. In the preferred embodiment the request packet is transmitted on ten multiplexed transmission lines, identified as BusCtl and BusData [8:0]. The packet is transmitted over six sequential bus cycles, wherein during each bus cycle, a different portion of the packet is transmitted. The lower order address bits are moved ahead of the higher order address bits of the memory request. This enables the receiving device to process the memory request faster as the locality of the memory reference with respect to previous references can be immediately determined and page mode accesses on the DRAM can be initiated as quickly as possible. The type of memory access is arranged over a plurality of clock cycles, placing the more critical bits first. The count of blocks of data requested is arranged to minimize the number of bit positions in the packet used and therefore the number of transmission lines of the bus and the number of bus receiver contacts on the receiving device.
Latest Rambus, Inc. Patents:
This is a continuation of application Ser. No. 08/667,293, filed Jun. 19, 1996, now abandoned, which is a continuation of application Ser. No. 08/484,917, filed Jun. 7, 1995 now abandoned, which is a divisional of application Ser. No. 08/381,015, filed Jan. 30, 1995 now abandoned, which is a continuation of application Ser. No. 07/848,421, filed Mar. 6, 1992 now abandoned.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to the transmission of data between devices coupled to a high speed bus system. More particularly, the present invention relates to the packet format transmitted across a high speed bus system and the processing of the same by devices coupled to the bus.
2. Art Background
A computer bus is utilized for communication of information among master and slave devices coupled to the bus. Generally, a bus comprises a plurality of transmission lines to which the devices are coupled. Address, control, and data information are multiplexed over the transmission lines forming the bus. The information is communicated across the bus in many different formats. One such format is a packet format in which data is bundled in packets for transmission on the bus across multiple clock cycles. An example of a bus which utilizes packets is described in PCT international patent application number PCT/US/91/02590 filed Apr. 16, 1991, published Oct. 31, 1991, and entitled Integrated Circuit I/O Using a High Performance Bus Interface.
An example of a packet issued by a requesting device is illustrated in FIG. 1. Using bus lines BusCtl and BusData [7:0], in the first bus cycle the type of bus access and the master device (i.e., requesting device) is provided. In the second through sixth bus cycles the address of the requested data and the block size are provided.
However, as the speed of transmission of information on the bus increases, the speed required of the receiving devices to process the packet needs to also increase in order to reduce the latency and realize the advantages of the increased speed of transmission across the bus. Furthermore, it is desirable to decrease the die space consumed while maintaining full functionability at the bus interface.
SUMMARY AND OBJECTS OF THE INVENTIONIt is therefore an object of the present invention to provide a packet format which enables the receiving device to decrease the latency when the packet is processed.
It is an object of the present invention to provide a packet format which enables a receiving device to initiate access operations as quickly as possible based upon the address provided in the packet.
It is an object of the present invention to increase the speed for determining packet collisions on the bus and notifying devices of the occurrence of the same.
It is further an object of the present invention to provide a packet format for transmission across a high speed bus in which the block size decoding at the receiving device is simplified thereby increasing the speed at which the receiving device processes the information.
It is an object of the present invention to provide a packet format for transmission on a high speed bus which enables the die space consumed on the device receivers to be reduced.
A high speed bus system in which at least one master device, such as a processor, and at least one DRAM slave device are coupled to the bus. An innovative packet format and device interface which utilizes a plurality of time and space saving features in order to decrease the die size of the device receiver and decrease the overall latency on the bus is provided. In the preferred embodiment the request packet is transmitted on ten multiplexed transmission lines, identified as BusCtl and BusData [8:0]. The packet is transmitted over six sequential bus cycles, wherein during each bus cycle, a different portion of the packet is transmitted. The lower order address bits are moved ahead of the higher order address bits of the memory request. This enables the receiving device to process the memory request faster as the locality of the memory reference with respect to previous references can be immediately determined and page mode accesses on the DRAM can be initiated as quickly as possible. The type of memory access is arranged over a plurality of clock cycles; placing the more critical bits first. The count of blocks of data requested is arranged to minimize the number of bit positions in the packet used and therefore the number of transmission lines of the bus and the number of bus receiver contacts on the receiving device. This helps minimize the amount of die space required on the chip to process the block count information. The number of blocks is encoded in a manner to decrease the die space consumed in the receiver as well as to simplify the decoding by the receiver, thereby increasing the speed along critical paths and decreasing latency during the processing of the request packet.
The objects features and advantages of the present invention will become apparent to one skilled in the art when reading the following detailed description in which:
FIG. 5a and
The request packet format is designed for use on a high speed multiplexed bus for communication between master devices such as processors and slave devices, such as memories and, in particular, dynamic random access memories (DRAMs). The bus carries substantially all address, data and control information needed by the master devices for communication with the slave devices coupled to the bus. The bus architecture includes the following signal transmission lines: BusCtl, BusData [8:0], as well as clock signal lines and power and ground lines. These lines are connected in parallel to each device as illustrated in FIG. 2.
The processors communicate with the DRAMs to read and write data to the memory. The processors form request packets which are communicated to the DRAMs by transmitting the bits on predetermined transmission lines at a predetermined time sequence (i.e., at predetermined clock cycles). The bus interface of the DRAM receiver processes the information received to determine the type of memory request, the address of the memory request and the number of bytes of the transaction. The DRAMs then perform the memory operation indicated by the request packet.
The memory address consists of the row address which is used during the row address strobe (RAS) in the DRAM and the column address which is used during the column address strobe (CAS) in the DRAM. The DRAMs have the capability to operate in normal RAS access mode or in page mode. When operable in page mode, if a subsequent request to access data is directed to the same row, the DRAM does not need to wait for receipt of the row address and to assert RAS, as RAS has been asserted during the previous memory access. Thus, the access time for this data is shortened. For further discussion regarding page mode DRAMs, see Steve L. Gumm, Carl T. Dreher, Unraveling the Intricacies of Dynamic RAM, Electronic Design News, pp. 155-165 (Mar. 30, 1989).
The request packet format further helps to improve the performance of the DRAMs in response to memory requests for page mode access. The DRAMs use the lower order portion of the memory address as the column address bits. This provides a locality of reference such that bytes of memory which are logically contiguous will be physically contiguous in the memory space. The resultant effect is that a greater number of logically contiguous bytes of memory are also physically contiguous and the frequency of page mode accesses is increased.
To further increase the access speed for a memory request, the lower order bits are placed at the beginning of the packet. This is illustrated in
As the lower order bits of the memory address are placed in the first two words of the packet, little room is left at the beginning of the packet for op code bits, op[3:0], which identify the type of memory operation to be performed (e.g., page mode access). However, as the memory operation type needs to be determined in order to perform the memory operation, the op code bits need to be transmitted early in the packet. In the packet format of the present invention, the BusCtl line and the most significant bit of the Data signal line, BusData[8], are utilized to transmit the op code bits. The bits are transmitted within the first 4 words of the packet, coincident with the transmission of the memory address. Preferably the memory operation types are coded in such a manner that the bits transmitted coincident with the lower order bits of the memory address indicate whether a page mode memory operation is to be performed.
At bus cycle zero, the BusCtl line is used to indicate the start of the packet.
When multiple devices are transmitting on a bus, the possibility of packet collisions exists. Many different techniques are employed to avoid the concurrent transmission of multiple packets on a bus. For example, the master devices keep track of all pending transactions, so that each master device knows when it can send a request packet and access the corresponding response. However, the master devices will occasionally transmit independent request packets during the same bus cycle. Those multiple requests will collide as each master device drives the bus simultaneously with different information, resulting in scrambled request information. Prior art techniques for detecting and responding to collision detection generally have been found to be too slow for high speed buses. Thus a mechanism for the detection of packet collisions on high speed buses is needed.
Typically two types of collisions will occur: those which are completely aligned in which two or more master devices start transmission at exactly the same cycle, and those which are unaligned in which two or more master devices start transmission at different cycles which are close enough together to cause overlap of the request packets. In PCT international patent application number PCT/US91/02590 filed Apr. 16, 1991, published Oct. 31, 1991, and entitled Integrated Circuit I/O Using a High Performance Bus Interface, collisions were detected by the master devices and signals indicating the existence of the collision were subsequently sent by the master devices to the slave devices. This technique requires the master devices to process the detection of a collision and drive the bus to notify the slave devices in a very short period of time. To eliminate need for the master device to notify the slave device of the collision, the master devices and the slave devices detect and process the existence of a collision in parallel.
Additional bits of the packet are preallocated to store a code which identifies the master device transmitting the packet. This is illustrated in the packet format shown in FIG. 4. At bus cycles 4 and 5, the processor device code, Master[3:0] is transmitted. If two master devices issue packet requests starting at the same bus cycle, the master device code, Master[3:0], will be logically ORed together resulting in a different code. This is detected in parallel by the master devices and slave devices which are monitoring the bus signal lines. The slave devices immediately respond by discarding the packets received and an arbitration is performed to determine priority of master device access to the bus for retransmission of the request packets.
An unaligned collision condition arises when a first master device issues a request packet a cycle 0 and a second master device issues a later packet starting, for example, at cycle 2 of the first request packet, thereby overlapping the first request packet. This will occur as the bus operates at high speeds, and the logic in the second master device may not be fast enough to detect a request initiated by the first master at cycle 0 and delay its own request. As the collision occurs during the later clock cycles of the first packet, it is critical that the slave device receiving the request know of the collision before completion of transmission of the request packet so that the packet can be discarded before the slave device responds to the request. The high speed of the bus increases the difficulty of the master device timely notifying the slave device of the occurrence of a collision. Therefore a second innovative collision detection mechanism is used for unaligned collisions. The BusCtl signal line is used at the first bus cycle to indicate the start of a packet. Referring to
The BusCtl line is monitored by the slave devices as well as the master devices to detect collisions. The BusCtl line at bus cycles at which a subsequent packet may be initiated are normally driven to a low or off state. In the present embodiment, packets are initiated on even clock cycles; therefore the BusCtl line during clock cycles 2 and 4 are normally driven to a low or off state. When a collision occurs, the BusCtl line at one or both cycles will be driven to an on or one state due to the overlap of the data, specifically the start packet signal of a subsequent packet. Both master devices and slave devices monitor BusCtl for information such as the start of the packet. Upon detecting an on or one state at cycles 2 and/or 4, the slave devices immediately know that a collision has occurred and eliminate the packet being received. Thus there is no requirement for the master device to notify the slave device, no delay in responding to a collision and no possibility that the transmission of the packet is completed before the slave device is notified of the collision.
The master devices also monitor the BusCtl signal line for the occurrence of a packet collision. Upon detection of an on state at cycle 2 and/or 4, the transmitting master devices will arbitrate access to the bus and retransmit the packets to ensure accurate transmission of the packets. Thus, the technique described enables the slave devices to immediately detect the occurrence of a collision and discard the packets before the slave devices respond to the requests.
The encoding and decoding of the number of bytes or “count” for a memory operation also plays a significant role in decreasing the latency of processing the transaction. In the high speed bus which utilizes the packet format of the present invention, a balance is achieved between the number of bits required to encode the byte count for the memory transaction and the complexity of logic at the receiver interface of the memory device and the speed of operating the same. Referring to
To simplify the implementation of the receivers of the memory devices as well as reduce the die size of the receiver and decrease the latency for processing bus transactions, data is accessed in the memory in groups of four bytes, referred to herein as “quadbytes”. Although the discussion below is directed to the transmission of data in quadbytes, it will be obvious to one skilled in the art from reading the following discussion that the concepts can be extended to any multiple byte organization.
The count bits not only identify the number of bytes to be transmitted starting at the identified memory address, but also the location of the bytes in the quadbyte transmitted. For example, the memory address of the request identifies a location within a quadbyte. To eliminate those bytes not requested, the memory device will mask out the unwanted bytes. The mask is also determined from the count value. In the preferred embodiment, the memory device masks out unwanted bytes during write transactions. During read transactions all bytes of the quadbyte are transferred across the bus. The processor then eliminates those bytes of the first and last quadbyte received which were not requested. This is preferred because this simplifies the implementation of the data path inside the memory devices. For example, in the preferred embodiment, this eliminates the need for a space consuming and time consuming data alignment network to insure proper sequencing of individual bytes. The additional logic that would be required to support the masking and other functions, such as the data alignment network, at the memory devices contributes to increasing the complexity of the chip as well as increasing the die size. However, it should be realized that the memory device can be configured to perform masking operations on both read and write transactions in order to eliminate any unwanted bytes of quadbytes prior to transmission across the bus.
A processor wishing to formulate a memory request will have an internal byte address. MasterAddress[35:0] and an internal byte length. MasterCount[7:0] for the data to be transferred pursuant to the request. Using offset-by-one encoding the convention used is as follows: MasterCount [7:0]=00000000 indicates one byte and MasterCount[7:0]=11111111 indicates 256 bytes. The processor converts these internal values into the values for the request packet according to the following:
Address[35:0]=MasterAddress[35:0]
Overflow Count[7:0]=MasterAddress[1:0]+MasterCount[7:0]
The result of adding MasterAddress[1:0] to MasterCount [7:0] serves several purposes. First, the overflow field indicates to the requesting processor device that although the size of its request is less than the maximum number of bytes allowed in a transaction, the quadbyte granularity does not allow this to occur and the request should be separated into two separate transactions. Second, the sum produces a count of the number of quadbytes to be transmitted in Count[7:2], which is the granularity of the basic data transport units of the bus. Third, it provides an index in Count[1:0] to the last byte to be transported during the last quadbyte of the data packet.
Because the processor supplies the index of the last byte to be transported, the memory device does not need to perform any index arithmetic but instead need only perform a table lookup of the mask data plus a simple logic operation. This reduces the critical path by eliminating the carry chain of the addition. Although the operation is performed by the requesting processor, the processor, unlike the memory device, can typically overlap the addition with other operations such that the effect is minimized. A significant implementation advantage is achieved which simplifies the receiver of the memory devices by performing the addition at the processor. Typically there are more memory devices than processor devices. It is therefore advantageous to decrease the die size and logic complexity in each of the memory devices in exchange for modestly increasing the complexity of the processor devices to perform this functionality.
The bits Address[1:0] and Count[1:0] are used to generate the masks for the first and last quadbytes of the memory request. The masks are used to determine which bytes within a quadbyte are to be read or written. Masks of varying values are generated only for the first and last quadbytes because all the bytes of the intervening quadbytes will be part of the transaction and the masks therefore have a value of 1111.
Specifically, by placing count bits 6, 4, 2 at bus cycle 4 of the packet and count bits 7, 5, 3 at bus cycle 5 of the packet and respectively on the same signal lines as count bits 6, 4, 2, the amount of wiring needed to interconnect the bits with the logic which processes the count bits is decreased. This saving is reflected in the decrease of the die size. In particular, a carry function is utilized to process the count bits. This is simply and efficiently implemented at bits 2 and 3, 4 and 5, 6 and 7, are aligned, eliminating the need to wire for the carry operation between the bits 2 and 3, 4 and 5, 6 and 7.
While the invention has been described in conjunction with the preferred embodiment, it is evident that numerous alternatives, modifications, variations and uses will be apparent to those skilled in the art in light of the foregoing description.
Claims
1. A method of transmitting digital information, comprising the steps of:
- (a) transmitting a first word of a packet, comprising the steps of: (1) transmitting start information onto a first bus, wherein the start information indicates a start of the packet; (2) transmitting lower order memory address bits onto a first group of second bus lines of the bus; and (3) transmitting first op code information onto an Nth a first bus line of the second bus lines, wherein N is an integer, and wherein the Nth first bus line is not a bus line within the first group of the second bus lines; and
- (b) transmitting a second word of the packet, comprising the steps of: (1) transmitting second op code information onto the first bus; (2) transmitting higher order memory address bits onto the first group of the second bus lines; and (3) transmitting third op code information onto the Nth first bus line of the second bus lines.
2. The method of claim 1 of transmitting digital information, further comprising the steps of:
- (a) transmitting a third word of a the packet, comprising the steps of: (1) transmitting a master device code for detecting collisions; (2) transmitting count information for determining a count of a number of bytes of a memory transaction.
3. In a digital system comprising a master device and at least one memory device, a process for transmitting memory requests to the memory device comprising the steps of:
- transmitting a first word of a packet, comprising the steps of: transmitting start information onto a first bus line, said start information indicating the start of the packet,; transmitting a first portion of a lower order memory address bits onto a first group of second bus lines of the bus, said lower order memory bits comprising information to perform page mode memory accesses,; and transmitting a first portion of op code information onto a second group at least a first bus line of the second group of bus lines; and
- transmitting a second word of the packet, comprising the steps of: transmitting a second portion of op code information onto the first bus line,; transmitting a third portion of op code information onto the second group at least a first bus line of the second group of bus lines, wherein an op code for page mode accesses can be detected from said first, second and third portions of op code information; and transmitting a second portion of the lower order memory address bits onto the first group of the second bus lines;
- wherein page mode access can be performed after transmission of the second word of the packet.
4. In a computer system comprising a master device and at least one memory device, a bus system for transmitting memory requests to the memory device comprising:
- a plurality of bus lines for transmission of memory requests;
- a packet comprising a memory request for transmission across the plurality of bus lines, said packet comprising: a first word comprising: start information indicating the start of the packet; a first portion of lower order memory address bits comprising information to perform page mode memory accesses; and a first portion of op code information; and a second word comprising: a second and a third portion of op code information, wherein an op code for page mode accesses can be detected from the first, second and third portions of op code information, and a second portion of the lower order memory address bits;
- wherein page mode access can be performed after transmission of the second word of the packet.
5. The bus system as set forth in claim 4 wherein said start information is located at a predetermined location in the first word of the packet, said system further comprising:
- means for monitoring the a predetermined location in each word of the packet during transmission of subsequent the words of the packet that are subsequent to the first and second words for information other than the start of the packet information; and
- means for detecting a collision if information occurs at the predetermined location in subsequent words of the packet that are subsequent to the first and second words, said information occurring due to the start information of a second another packet overlapping the first packet.
6. The bus system as forth in claim 5, wherein said packet further comprises a code identifying the a device transmitting the packet, said means for detecting a collision further comprising means for detecting the code to determine where whether the code is valid, an invalid code resulting from a collision of packets between the packet and another packet.
7. The bus system as set forth in claim 4, wherein said packet further comprises count information indicating the number of bytes of memory data to be transmitted across the bus lines during the memory a transaction requested corresponding to the memory request.
8. The bus system as set forth in claim 7, wherein said data is transmitted in a plurality of multiple byte block format blocks, said system further comprising:
- means for generating a first mask for the data in a first multiple byte block of the data to be transmitted plurality of multiple byte blocks, said first mask indicating the which bytes of the first multiple byte block which are part of the memory operation requested transaction; and
- means for generating a second mask for the data in a last multiple byte block of the plurality of multiple byte blocks, said second mask indicating the which bytes of the last multiple byte block which are part of the memory operation requested transaction.
9. The bus system as set forth in claim 8, wherein data each multiple byte block of the plurality of multiple byte blocks is transmitted in 4 byte blocks, the first mask is generated from the two least significant bits of the lower order memory address bits and the second mask is generated from the two least significant bits of the count information.
10. The bus system as set forth in claim 8, further comprising a first and second look up table each comprising mask patterns, said first and second masks being generated by performing a table lookup of the first and second look up tables respectively using the address bits and the count information.
11. The bus system as set forth in claim 4, further comprising a summing means for summing the two least significant address bits and an internal byte count to produce an overflow value information and count information, said overflow information indicating that although the size an amount of the data of corresponding to the memory request is less than the maximum number of bytes allowed in the a memory operation corresponding to the memory request, the granularity of the a multiple byte block format transmitted acres across the plurality of bus lines prohibits the a transaction, and, the memory request should be is separated into two separate memory requests.
12. A method of operation in a memory device, the memory device having an array of memory cells, the method comprising:
- receiving first operation code information during a first clock cycle of an external clock signal;
- receiving second operation code information successively after receiving the first operation code information;
- receiving a first column address, the first column address representing a column locality of a first storage location within a first row in the array;
- receiving a first row address successively after receiving the first column address, the first row address representing a location of the first row in the array; and
- accessing a first memory cell of the array of memory cells, the first memory cell being located at the first storage location, wherein data stored in the first memory cell is accessed for a memory operation based at least in part on the first and second operation code information.
13. The method of claim 12 further comprising:
- receiving a second column address and page mode control information, the second column address representing a column locality of a second storage location within the first row in the array; and
- accessing a second memory cell of the array of memory cells, the second memory cell being located at the second storage location.
14. The method of claim 13 further comprising receiving a second row address in succession to receiving the second column address, the second row address representing the location of the first row in the array.
15. The method of claim 13 wherein the first column address and the first row address are both included in a first packet, and the second column address and the page mode information are included in a second packet.
16. The method of claim 12 wherein the first column address is received in a first portion of a packet and the first row address is received in a second portion of the packet.
17. The method of claim 16 wherein the packet further includes start information representing the beginning of the packet.
18. The method of claim 12 further comprising receiving block size information, the block size information representing an amount of data to be output by the memory device.
19. The method of claim 12 wherein the first column address is received during the first clock cycle and the first row address is received during a second clock cycle.
20. The method of claim 19 wherein a first portion of the first column address is received during a first bus cycle and a second portion of the first column address is received during a second bus cycle, and wherein both the first and second bus cycles transpire during the first clock cycle.
21. The method of claim 12 further comprising receiving page mode access information.
22. The method of claim 21 wherein the page mode access information is received concurrently with the first column address.
23. The method of claim 21 wherein the page mode access information includes a code wherein:
- in a first state of the code, the memory device is operable in a page mode; and
- in a second state of the code, the memory device is operable in a normal mode.
24. The method of claim 21 wherein the page mode access information includes a first portion and a second portion, wherein the first portion is received concurrently with the first column address, and the second portion is received concurrently with the first row address.
25. The method of claim 24 wherein the first portion of the page mode access information and the first column address are both included in a first portion of a packet, and wherein the second portion of the page mode access information and the first row address are both included in a second portion of the packet.
26. A method of controlling a memory device, the memory device having an array of memory cells, the method comprising:
- issuing first operation code information during a first clock cycle of an external clock signal;
- issuing second operation code information following the issuance of the first operation code information;
- issuing a first column address to the memory device, the first column address representing a column locality of a first storage location within a first row in the array; and
- issuing a first row address following the issuance of the first column address, the first row address representing a location of the first row in the array, wherein data stored in a memory cell located at the location is accessed for a memory operation based at least in part on the first and second operation code information.
27. The method of claim 26 further comprising issuing a second column address and page mode control information, the second column address representing a column locality of a second storage location within the first row in the array.
28. The method of claim 27 further comprising issuing a second row address following the issuance of the second column address, the second row address representing the location of the first row in the array.
29. The method of claim 28 wherein the first column address and the first row address are both included in a first packet, and the second column address and the page mode information are included in a second packet.
30. The method of claim 26 wherein the first column address is issued in a first portion of a packet and the first row address is issued in a second portion of the packet.
31. The method of claim 30 wherein the packet further includes start information representing the beginning of the packet.
32. The method of claim 26 further comprising providing block size information, the block size information representing an amount of data to be output by the memory device.
33. The method of claim 32 wherein the first column address, the first row address and the block size information are included in a packet.
34. The method of claim 33 wherein the first column address, the first row address and the block size information are included in the same packet.
35. The method of claim 26 wherein the first column address is issued during the first clock cycle, and the first row address is issued during a second clock cycle.
36. The method of claim 35 wherein a first portion of the first column address is issued during a first bus cycle and a second portion of the first column address is issued during a second bus cycle, and wherein both the first and second bus cycles transpire during the first clock cycle.
37. The method of claim 26 further comprising providing page mode access information.
38. The method of claim 37 wherein the page mode access information is provided concurrently with the issuance of the first column address.
39. The method of claim 37 wherein the page mode access information includes a code wherein:
- when the code is in a first state, the memory device operates in a page mode; and
- when the code is in a second state, the memory device operates in a normal mode.
40. The method of claim 37 wherein the page mode access information includes a first portion and a second portion, wherein the first portion is provided concurrently with the issuance of the first column address, and the second portion is provided concurrently with the issuance of the first row address.
41. The method of claim 40 wherein the first portion of the page mode access information and the first column address are both included in a first word of a packet, and wherein the second portion of the page mode access information and the first row address are both included in a second word of a packet.
4247817 | January 27, 1981 | Heller |
4481625 | November 6, 1984 | Roberts et al. |
4519034 | May 21, 1985 | Smith et al. |
4523274 | June 11, 1985 | Fukunaga et al. |
4539677 | September 3, 1985 | Lo |
4630264 | December 16, 1986 | Wah et al. |
4658250 | April 14, 1987 | Nering et al. |
4701909 | October 20, 1987 | Kavehrad et al. |
4751701 | June 14, 1988 | Roos et al. |
4785394 | November 15, 1988 | Fischer |
4785396 | November 15, 1988 | Murphy et al. |
4809264 | February 28, 1989 | Abraham et al. |
4811202 | March 7, 1989 | Schabowski |
4845663 | July 4, 1989 | Brown et al. |
4860198 | August 22, 1989 | Takenaka |
4912627 | March 27, 1990 | Ashkin et al. |
4929940 | May 29, 1990 | Franaszek et al. |
4959829 | September 25, 1990 | Griesing |
5012467 | April 30, 1991 | Crane |
5048009 | September 10, 1991 | Conrad |
5063612 | November 1991 | McKeown |
5124982 | June 23, 1992 | Kaku |
5173878 | December 22, 1992 | Sakui et al. |
5243703 | September 7, 1993 | Farmwald et al. |
5272700 | December 21, 1993 | Hansen et al. |
5301303 | April 5, 1994 | Abraham et al. |
5311172 | May 10, 1994 | Sadamori |
5319755 | June 7, 1994 | Farmwald et al. |
5339307 | August 16, 1994 | Curtis |
5383185 | January 17, 1995 | Armbruster et al. |
5408129 | April 18, 1995 | Farmwald et al. |
9102590 | April 1991 | WO |
- Martin, J. “Local Area Networks. Architectures and Implementations”. pp. 33, 84-88, 223-224, USA, Prentice-Hall, (1989).
- Gumm, Steve L. and Carl T. Dreher, “Unraveling the Intricacies of Dynamic RAMS's”. pp. 155-165 Electronic Design News. (Mar. 30, 1989).
- Martin, J. “Local Area Networks: Architectures and Implementations”, pp. 87, 223-224, USA. Prentice-Hall. (1989).
Type: Grant
Filed: Apr 26, 2000
Date of Patent: Oct 9, 2007
Assignee: Rambus, Inc. (Los Altos, CA)
Inventors: Richard M. Barth (Palo Alto, CA), Matthew M. Griffin (Mountain View, CA), Frederick A. Ware (Los Altos Hills, CA), Mark A. Horowitz (Menlo Park, CA)
Primary Examiner: Hiep T. Nguyen
Attorney: Vierra Magen Marcus & DeNiro LLP
Application Number: 09/559,835
International Classification: G06F 12/02 (20060101);