CROSS-REFERENCE TO RELATED APPLICATIONS This application is a divisional of application Ser. No. 08/984,563, filed Dec. 3, 1997, which is a divisional of application Ser. No. 08/650,719, filed May 20, 1996, which is a Continuation-In-Part of application Ser. No. 08/584,600, filed Jan. 11, 1996, now U.S. Pat. No. 5,966,724.
The below listed applications, as indicated by serial number and filing date, are all assigned to the assignee of the instant application and were or are co-pending with and related to the instant application: Ser. No. 08/370,761, filed Dec. 23, 1994 (now U.S. Pat. No. 5,526,320, issued Jun. 11, 1996); Ser. No. 08/386,894, filed Feb. 10, 1995 (now U.S. Pat. No. 5,610,864, issued Mar. 11, 1997); Ser. No. 08/386,563, filed Feb. 10, 1995 (now U.S. Pat. No. 5,652,724, issued Jul. 29, 1997); Ser. No. 08/457,650, filed Jun. 1, 1995 (now U.S. Pat. No. 6,804,760, issued Oct. 12, 2004); Ser. No. 08/457,651, filed Jun. 1, 1995 (now U.S. Pat. No. 5,675,549, issued Oct. 7, 1997); Ser. No. 08/497,354, filed Jun. 30, 1995 (now U.S. Pat. No. 5,598,376, issued Jan. 28, 1997); Ser. No. 08/505,576, filed Jul. 20, 1995 (now abandoned); Ser. No. 08/553,156, filed Nov. 7, 1995 (now U.S. Pat. No. 5,721,859, issued Feb. 24, 1998); Ser. No. 08/506,438, filed Jul. 24, 1995 (now U.S. Pat. No. 5,729,503, issued Mar. 17, 1998); and Ser. No. 08/630,279, filed Apr. 11, 1996 (now U.S. Pat. No. 5,661,695, issued Aug. 26, 1997).
TECHNICAL FIELD The embodiments disclosed relate to memory device architectures designed to provide high density data storage with high speed read and write access cycles, including dynamic random access memory which is selectable between burst and pipelined modes.
BACKGROUND Dynamic Random Access Memory devices (DRAMS) are among the highest volume and most complex integrated circuits manufactured today. Except for their high volume production, the state of the art manufacturing requirements of these devices would cause them to be exorbitantly priced. Yet, due to efficiencies associated with high volume production, the price per bit of these memory devices is continually declining. The low cost of memory has fueled the growth and development of the personal computer. As personal computers have become more advanced, they in turn have required faster and more dense memory devices, but with the same low cost of the standard DRAM. Fast page mode DRAMS are a popular DRAM today. In fast page mode operation, a row address strobe (/RAS) is used to latch a row address portion of a multiplexed DRAM address. Multiple occurrences of the column address strobe (/CAS) are then used to latch multiple column addresses to access data within the selected row. On the falling edge of /CAS an address is latched, and the DRAM outputs are enabled. When /CAS transitions high the DRAM outputs are placed in a high impedance state (tri-state). With advances in the production of integrated circuits, the internal circuitry of the DRAM operates faster than ever. This high speed circuitry has allowed for faster page mode cycle times. A problem exists in the reading of a DRAM when the device is operated with minimum fast page mode cycle times. /CAS may be low for as little as 15 nanoseconds, and the data access time from /CAS to valid output data (tCAC) may be up to 15 nanoseconds; therefore, in a worst case scenario there is no time to latch the output data external to the memory device. For devices that operate faster than the specifications require, the data may still only be valid for a few nanoseconds. On a heavily loaded microprocessor memory bus, trying to latch an asynchronous signal that is valid for only a few nanoseconds is very difficult. Even providing a new address every 35 nanoseconds requires large address drivers which create significant amounts of electrical noise within the system. To increase the data throughput of a memory system, it has been common practice to place multiple devices on a common bus. For example, two fast page mode DRAMS may be connected to common address and data buses. One DRAM stores data for odd addresses, and the other for even addresses. The /CAS signal for the odd addresses is turned off (high) when the /CAS signal for the even addresses is turned on (low). This interleaved memory system provides data access at twice the rate of either device alone. If the first /CAS is low for 20 nanoseconds and then high for 20 nanoseconds while the second /CAS goes low, data can be accessed every 20 nanoseconds or 50 megahertz. If the access time from /CAS to data valid is fifteen nanoseconds, the data will be valid for only five nanoseconds at the end of each 20 nanosecond period when both devices are operating in fast page mode. As cycle times are shortened, the data valid period goes to zero.
There is a demand for faster, higher density, random access memory integrated circuits which provide a strategy for integration into today's personal computer systems. In an effort to meet this demand, numerous alternatives to the standard DRAM architecture have been proposed. One method of providing a longer period of time when data is valid at the outputs of a DRAM without increasing the fast page mode cycle time is called Extended Data Out (EDO) mode. In an EDO DRAM the data lines are not tri-stated between read cycles in a fast page mode operation. Instead, data is held valid after /CAS goes high until sometime after the next /CAS low pulse occurs, or until /RAS or the output enable (/OE) goes high. Determining when valid data will arrive at the outputs of a fast page mode or EDO DRAM can be a complex function of when the column address inputs are valid, when /CAS falls, the state of /OE and when /CAS rose in the previous cycle. The period during which data is valid with respect to the control line signals (especially /CAS) is determined by the specific implementation of the EDO mode, as adopted by the various DRAM manufacturers.
Methods to shorten memory access cycles tend to require additional circuitry, additional control pins and nonstandard device pinouts. The proposed industry standard synchronous DRAM (SDRAM)for example has an additional pin for receiving a system clock signal. Since the system clock is connected to each device in a memory system, it is highly loaded, and it is always toggling circuitry in every device. SDRAMs also have a clock enable pin, a chip select pin and a data mask pin. Other signals which appear to be similar in name to those found on standard DRAMs have dramatically different functionality on a SDRAM. The addition of several control pins has required a deviation in device pinout from standard DRAMs which further complicates design efforts to utilize these new devices. Significant amounts of additional circuitry are required in the SDRAM devices which in turn result in higher device manufacturing costs.
In order for existing computer systems to use an improved device having a nonstandard pinout, those systems must be extensively modified. Additionally, existing computer system memory architectures are designed such that control and address signals may not be able to switch at the frequencies required to operate the new memory device at high speed due to large capacity loads on the signal lines. The Single In-Line Memory Module (SIMM) provides an example of what has become an industry standard form of packaging memory in a computer system. On a SIMM, all address lines connect to all DRAMs. Further, the row address strobe (/RAS) and the write enable (/WE) are often connected to each DRAM on the SIMM. These lines may have high capacitive loads as a result of the number of device inputs driven by them. SIMM devices also typically ground the output enable (/OE) pin making /OE a less attractive candidate for providing extended functionality to the memory devices.
There is a great degree of resistance to any proposed deviations from the standard SIMM design due to the vast number of computers which use SIMMs. Industry's resistance to radical deviations from the standard, and the inability of current systems to accommodate the new memory devices will delay their widespread acceptance. Therefore only limited quantities of devices with radically different architectures will be manufactured initially. This limited manufacture prevents the reduction in cost which typically can be accomplished through the manufacturing improvements and efficiencies associated with a high volume product.
Additionally, there is a demand for multi-functional random access memory integrated circuits which provide a strategy for integration into systems having differing memory needs. Some applications use random memory access, while other applications use sequential memory access. However, prior asynchronous DRAMS did not have both burst and pipelined modes of operation. Thus, such prior asynchronous DRAMs did not support applications requiring both modes of operation. Consequently, the need arose for an asynchronous DRAM which had both burst and pipelined modes of operation.
BRIEF DESCRIPTION OF THE DRAWINGS The features of the various embodiments of the invention, as well as advantages, will be best understood by reference to the appended claims, detailed description of particular embodiments and accompanying drawings where:
FIG. 1 is an electrical schematic diagram of a memory device in accordance with some embodiments of the invention;
FIG. 2 is a table showing linear versus interleaved addressing formats;
FIG. 3 is a pinout of the memory device ofFIG. 1;
FIG. 4 is a timing diagram for a method of accessing the device ofFIG. 1;
FIG. 5 is a further timing diagram for accessing the device ofFIG. 1;
FIG. 6 is an electrical schematic diagram of a Single In-Line Memory Module in accordance with some embodiments of the invention;
FIG. 7 is a front view of a Single In-Line Memory Module designed in accordance with the teachings of some embodiments of the invention;
FIG. 8 is a table of the pin numbers and signal names of the Single In-Line Memory Module ofFIG. 7;
FIG. 9 is a block diagram of an embodiment of an exemplary memory device in accordance with some embodiments of the invention;
FIG. 10 is a block diagram an embodiment of a portion of the memory device ofFIG. 9;
FIG. 11 is a schematic diagram of a portion of control logic of the memory device ofFIG. 9;
FIG. 12 is a process flow diagram for switching between burst and pipelined modes of operation in accordance with some embodiments of the invention;
FIGS. 13 and 14 are timing diagrams for burst EDO write and read cycles, respectively, for a row-based switching embodiment in accordance with some embodiments of the invention;
FIGS. 15 and 16 are timing diagrams for pipelined EDO write and read cycles, respectively, for the row-based switching embodiment ofFIGS. 13 and 14;
FIG. 17 is a timing diagram for a column-based switching embodiment in accordance with some embodiments of the invention;
FIG. 18 is a top elevation view of a pinout diagram of an exemplary Dynamic Random Access Memory in accordance with some embodiments of the invention;
FIG. 19 is a block diagram of an exemplary Single In-Line Memory Module in accordance with some embodiments of the invention; and
FIG. 20 is a block diagram of an exemplary system in accordance with various embodiments of the invention.
DETAILED DESCRIPTIONFIG. 1 is a schematic representation of a sixteen megabit device designed in accordance with some embodiments of the invention. The device is organized as a 2Meg×8 burst EDO DRAM having an eight bit data input/output path10 providing data storage for 2,097,152 bytes of information in thememory array12. The device ofFIG. 1 has an industry standard pinout for eight bit wide EDO DRAMs. An active-low row address strobe (/RAS) signal14 is used to latch a first portion of a multiplexed memory address, from address inputs A0 throughA1016, inlatch18. The latchedrow address20 is decoded inrow decoder22. The decoded row address is used to select a row of thememory array12. A column address strobe (/CAS) signal24 is used to latch a second portion of a memory address fromaddress inputs16 intocolumn address counter26. The latchedcolumn address28 is decoded incolumn address decoder30. The decoded column address is used to select a column of thememory array12.
In a burst read cycle, data within the memory array located at the row and column address selected by the row and column address decoders is read out of the memory array and sent alongdata path32 to output latches34.Data10 driven from the burst EDO DRAM may be latched external to the device in synchronization with /CAS after a predetermined number of /CAS cycle delays (latency). For a two cycle latency design, the first /CAS falling edge is used to latch the initial address for the burst access. The first burst data from the memory is driven from the memory after the second /CAS falling edge, and remains valid through the third /CAS falling edge. Once the memory device begins to output data in a burst read cycle, theoutput drivers34 will continue to drive the data lines without tri-stating the data outputs during /CAS high intervals dependent on the state of the output enable and write enable (/OE and /WE) control lines, thus allowing additional time for the system to latch the output data. Once a row and a column address are selected, additional transitions of the /CAS signal are used to advance the column address within the column address counter in a predetermined sequence. The time at which data will be valid at the outputs of the burst EDO DRAM is dependent only on the timing of the /CAS signal provided that /OE is maintained low, and /WE remains high. The output data signal levels may be driven in accordance with standard CMOS, TTL, LVTTL, GTL, HSTL, among other output level specifications.
The address may be advanced linearly, or in an interleaved fashion for maximum compatibility with the overall system requirements.FIG. 2 is a table which shows linear and interleaved addressing sequences for burst lengths of 2,4 and 8 cycles. The “V” for starting addresses A1 and A2 in the table represent address values that remain unaltered through the burst sequence. The column address may be advanced with each /CAS transition, each pulse, or multiple of /CAS pulses in the event that more than one data word is read from the array with each column address. When the address is advanced with each transition of the /CAS signal, data is also driven from the part after each transition following the device latency which is then referenced to each edge of the /CAS signal. This allows for a burst access cycle where the highest switching control line (/CAS) toggles only once (high to low or low to high) for each memory cycle. This is in contrast to standard DRAMs which require /CAS to go low and then high for each cycle, and synchronous DRAMs which require a full clock cycle (high and low transitions) for each memory cycle. For maximum compatibility with existing EDO DRAM devices, some embodiments will be further described in reference to a device designed to latch and advance a column address on falling edges of the /CAS signal.
It may be desirable to latch and increment the column address after the first /CAS falling edge in order to apply both the latched and incremented addresses to the array at the earliest opportunity in an access cycle. For example, a device may be designed to access two data words per cycle (prefetch architecture). The memory array for a prefetch architecture device may be split into odd and even array halves. The column address least significant bit is then used to select between odd and even halves while the other column address bits select a column within each of the array halves. In an interleaved access mode withcolumn address1, data fromcolumns0 and1 would be read and the data fromcolumn1 would be output followed by the data fromcolumn0 in accordance with standard interleaved addressing as described in SDRAM specifications. In a linear accessmode column address1 would be applied to the odd array half, and incremented to address2 for accessing the even array half to fulfill the two word access. One method of implementing this type of device architecture is to provide a column address incrementing circuit between the column address counter and the even array half. The incrementing circuit would increment the column address only if the initial column address in a burst access cycle is odd, and the address mode is linear. Otherwise the incrementing circuit would pass the column address unaltered. For a design using a prefetch of two data accesses per cycle, the column address would be advanced once for every two active edges of the /CAS signal. Prefetch architectures where more than two data words are accessed are also possible.
Other memory architectures applicable to embodiments of the invention include a pipelined architecture where memory accesses are performed sequentially, but each access may require more than a single cycle to complete. In a pipelined architecture the overall throughput of the memory will approach one access per cycle, but the data out of the memory may be offset by a number of cycles due to the pipeline length and/or the desired latency from /CAS.
In the burst access memory device, each new column address from the column address counter is decoded and is used to access additional data within the memory array without the requirement of additional column addresses being specified on theaddress inputs16. This burst sequence of data will continue for each /CAS falling edge until a predetermined number of data accesses equal to the burst length has occurred. A /CAS falling edge received after the last burst address has been generated will latch another column address from theaddress inputs16 and a new burst sequence will begin. Read data is latched and output with each falling edge of /CAS after the first /CAS latency.
For a burst write cycle,data10 is latched in input data latches34. Data targeted at the first address specified by the row and column addresses is latched with the /CAS signal when the first column address is latched (write cycle data latency is zero). Other write cycle data latency values are possible; however, for today's memory systems, zero is preferred. Additional input data words for storage at incremented column address locations are latched by /CAS on successive /CAS pulses. Input data from the input latches34 is passed alongdata path32 to the memory array where it is stored at the location selected by the row and column address decoders. As in the burst read cycle previously described, a predetermined number of burst access writes will occur without the requirement of additional column addresses being provided on the address lines16. After the predetermined number of burst writes has occurred, a subsequent /CAS pulse will latch a new beginning column address, and another burst read or write access will begin.
The memory device ofFIG. 1 may include the option of switching between burst EDO and standard EDO modes of operation. In this case, the write enable signal /WE36 may be used at the row address latch time (/RAS falling, /CAS high) to determine whether memory accesses for that row will be burst or page mode cycles. If /WE is low when /RAS falls, burst access cycles are selected. If /WE is high at /RAS falling, standard extended data out (EDO) page mode cycles are selected. Both the burst and EDO page mode cycles allow for increased memory device operating frequencies by not requiring thedata output drivers34 to place the data lines10 in a high impedance state between data read cycles while /RAS is low.DRAM control circuitry38, in addition to performing standard DRAM control functions, controls the I/O circuitry34 and the column address counter/latch26 in accordance with the mode selected by /WE when /RAS falls. In a burst mode only DRAM, or in a device designed with an alternate method of switching between burst and non-burst access cycles, the state of /WE when /RAS falls may be used to switch between other possible modes of operation such as interleaved versus linear addressing modes.
The write enable signal is used in burst access cycles to select read or write burst accesses when the initial column address for a burst cycle is latched by /CAS. /WE low at the column address latch time selects a burst write access. /WE high at the column address latch time selects a burst read access. The level of the /WE signal must remain high for read and low for write burst accesses throughout the burst access. A low to high transition within a burst write access will terminate the burst access, preventing further writes from occurring. A high to low transition on /WE within a burst read access will likewise terminate the burst read access and will place thedata output10 in a high impedance state. Transitions of the /WE signal may be locked out during critical timing periods within an access cycle in order to reduce the possibility of triggering a false write cycle. After the critical timing period the state of /WE will determine whether a burst access continues, is initiated, or is terminated. Termination of a burst access resets the burst length counter and places the DRAM in a state to receive another burst access command. Both /RAS and /CAS going high during a burst access will also terminate the burst access cycle placing the data drivers in a high impedance output state, and resetting the burst length counter. Read data may remain valid at the device outputs if /RAS alone goes high while /CAS is active for compatibility with hidden refresh cycles, otherwise /RAS high alone may be used to terminate a burst access. A minimum write enable pulse width is only required when it is desired to terminate a burst read and then begin another burst read, or terminate a burst write prior to performing another burst write with a minimum delay between burst accesses. In the case of burst reads, /WE will transition from high to low to terminate a first burst read, and then /WE will transition back high prior to the next falling edge of /CAS in order to specify a new burst read cycle. For burst writes, /WE would transition high to terminate a current burst write access, then back low prior to the next falling edge of /CAS to initiate another burst write access.
A basic implementation of the device ofFIG. 1 may include a fixed burst length of 4, a fixed /CAS latency of 2 and a fixed interleaved sequence of burst addresses. This basic implementation requires very little additional circuitry to the standard EDO page mode DRAM, and may be mass produced to provide the functions of both the standard EDO page mode and burst EDO DRAMs. This device also allows for the output enable pin (/OE) to be grounded for compatibility with many SIMM module designs. When not disabled (tied to ground), /OE is an asynchronous control which will prevent data from being driven from the part in a read cycle if it is inactive (high) prior to /CAS falling and remains inactive beyond /CAS rising. If these setup and hold conditions are not met, then the read data may be driven for a portion of the read cycle. It is possible to synchronize the /OE signal with /CAS, however this would typically increase the /CAS to data valid delay time and does not allow for the read data to be disabled prior to /RAS high without an additional /CAS low pulse which would otherwise be unnecessary. In some embodiments, if /OE transitions high at any time during a read cycle the outputs will remain in a high impedance state until the next falling edge of /CAS despite further transitions of the /OE signal.
Programmability of the burst length, /CAS latency and address sequences may be accomplished through the use of amode register40 which latches the state of one or more of the address input signals16 or data signals10 upon receipt of a write-/CAS-before-/RAS (WCBR) programming cycle. In such a device, outputs44 from the mode register control the required circuits on the DRAM. Burst length options of 2, 4, 8 and 20 full page as well as /CAS latencies of 1, 2 and 3 may be provided. Other burst length and latency options may be provided as the operating speeds of the device increase, and computer architectures evolve. The device ofFIG. 1 includes programmability of the address sequence by latching the state of the least significant address bit during a WCBR cycle. The burst length and /CAS latency for this particular embodiment are fixed. Other possible alterations in the feature sets of this DRAM include having a fixed burst mode only, selecting between standard fast page mode (non-EDO) and burst mode, and using the output enable pin (/OE)42 in combination with /RAS to select between modes of operation. Also, a WCBR refresh cycle could be used to select the mode of operation rather than a control signal in combination with /RAS. A more complex memory device may provide additional modes of operation such as switching between fast page mode, EDO page mode, static column mode and burst operation through the use of various combinations of /WE and /OE at /RAS falling time. One mode from a similar set of modes may be selected through the use of a WCBR cycle using multiple address or data lines to encode the desired mode. Alternately, a device with multiple modes of operation may have wire bond locations, or programmable fuses which may be used to program the mode of operation of the device.
A sixteen bit wide burst EDO mode DRAM designed in accordance with the teachings of some embodiments of this invention has two column address strobe input pins /CASH and /CASL. For read cycles only /CASL needs to toggle. /CASH is may be high or may toggle with /CASL during burst read cycles, all sixteen data bits will be driven out of part during a read cycle even if /CASH remains inactive. In a typical system application, a microprocessor will read all data bits on a data bus in each read cycle, but may only write certain bytes of data in a write cycle. Allowing one of the /CAS control signals to remain static during read cycles helps to reduce overall power consumption and noise within the system. For burst write access cycles, each of the /CAS signals (CASH and /CASL) acts as a write enable for an eight bit width of the data. All sixteen data inputs will be latched when the first of the /CAS signals transitions low. If only one /CAS signal transitions low, then the eight bits of data associated with the /CAS that remained high will not be stored in the memory.
Just as fast page mode DRAMs and EDO DRAMs are available in numerous configurations including x1, x4, x8 and x16 data widths, and 1 Megabit, 4 Megabit, 16 Megabit and 64 Megabit densities; the memory device of some embodiments of the invention may take the form of many different memory organizations. It is believed that one who is skilled in the art of integrated circuit memory design can, with the aide of this specification design a variety of memory devices which do not depart from the scope of the various embodiments. It is therefore believed that detailed descriptions of the various memory device organizations applicable to the embodiments are not necessary.
FIG. 3 shows a preferred pinout for the device ofFIG. 1. It should be noted that the pinout for this new burst EDO memory device is identical to the pinout for a standard EDO DRAM. The common pinout allows this new device to be used in existing memory designs with minimum design changes. The common pinout also allows for ease of new designs by those of skill in the art who are familiar with the standard EDO DRAM pinout. Variations of the described embodiments which maintain the standard EDO DRAM pinout include driving the /CAS pin with a system clock signal to synchronize data access of the memory device with the system clock. For this embodiment, it may be desirable to use the first /CAS active edge after /RAS falls to latch the row address, a later edge may be used to latch the first column address of a burst access cycle. After row and column addresses are latched within the device, the address may be incremented internally to provide burst access cycles in synchronization with the system clock. Other pin function alternatives include driving the burst address incrementing signal on the /OE pin since the part does not require a data output disable function on this pin. Other alternate uses of the /OE pin also allow the device to maintain the standard EDO pinout, but provide increased functionality such as burst mode access. The /OE pin may be used to signal the presence of a valid column starting address, or to terminate a burst access. Each of these embodiments provides for a high speed burst access memory device which may be used in current memory systems with a minimum amount of redesign.
FIG. 4 is a timing diagram for performing a burst read followed by a burst write of the device ofFIG. 1. InFIG. 4, a row address is latched by the /RAS signal. /WE is low when /RAS falls for an embodiment of the design where the state of the /WE pin is used to specify a burst access cycle at /RAS time. Next, /CAS is driven low with /WE high to initiate a burst read access, and the column address is latched. The data out signals (DQ's) are not driven in the first /CAS cycle. On the second falling edge of the /CAS signal, the internal address generation circuitry advances the column address and begins another access of the array, and the first data out is driven from the device after a /CAS to data access time (tCAC). Additional burst access cycles continue, for a device with a specified burst length of four, until the fifth falling edge of /CAS which latches a new column address for a new burst read access. /WE falling in the fifth /CAS cycle terminates the burst access, and initializes the device for additional burst accesses. The sixth falling edge of /CAS with /WE low is used to latch a new burst address, latch input data and begin a burst write access of the device. Additional data values are latched on successive /CAS falling edges until /RAS rises to terminate the burst access.
FIG. 5 is a timing diagram depicting burst write access cycles followed by burst read cycles. As inFIG. 4, the /RAS signal is used to latch the row address. The first /CAS falling edge in combination with /WE low begins a burst write access with the first data being latched. Additional data values are latched with successive /CAS falling edges, and the memory address is advanced internal to the device in either an interleaved or sequential manner. On the fifth /CAS falling edge a new column address and associated write data are latched. The burst write access cycles continue until the /WE signal goes high in the sixth /CAS cycle. The transition of the /WE signal terminates the burst write access. The seventh /CAS low transition latches a new column address and begins a burst read access (/WE is high). The burst read continues until /RAS rises terminating the burst cycles.
It should be noted fromFIGS. 3 and 4 that for burst read cycles the data remains valid on the device outputs as long as the /OE pin is low, except for brief periods of data transition. Also, since the /WE pin is low prior to or when /CAS falls, the data input/output lines are not driven from the part during write cycles, and the /OE pin is a “don't care”. Only the /CAS signal and the data signals toggle at relatively high frequency, and no control signals other than /CAS are required to be in an active or inactive state for one /CAS cycle time or less. This is in contrast to SDRAMs which often require row address strobes, column address strobes, data mask, and read/write control signals to be valid for one clock cycle or less for various device functions. Typical DRAMs also allow for the column address to propagate through to the array to begin a data access prior to /CAS falling. This is done to provide fast data access from /CAS falling if the address has been valid for a sufficient period of time prior to /CAS falling for the data to have been accessed from the array. In these designs an address transition detection circuit is used to restart the memory access if the column address changes prior to /CAS falling. This method actually requires additional time for performing a memory access since it must allow for a period of time at the beginning of each memory cycle after the last address transition to prepare for a new column address. Changes in the column address just prior to /CAS falling may increase the access time by approximately five nanoseconds. An embodiment of the invention will not allow the column address to propagate through to the array until after /CAS has fallen. This eliminates the need for address transition detection circuitry, and allows for a fixed array access relative to /CAS. However, it should be understood that the address counter may be advanced early on /CAS in accordance with some embodiments of the invention.
FIG. 6 is a schematic representation of a single in-line memory module (SIMM) designed in accordance with some embodiments of the invention. The SIMM has a standard SIMM module pinout for physical compatibility with existing systems and sockets. Functional compatibility with EDO page mode SIMMs is maintained when each of the 2 Meg×8memory devices10,12,14 and16 are operated in an EDO page mode. Each of the /CAS signals18,20,22 and24 control one byte width of the 32bit data bus26,28,30 and32. A /RAS34 signal is used to latch a row address in each of the memory devices, and is used in combination with /WE36 to select between page mode and burst mode access cycles. Address signals38 provide a multiplexed row and column address to each memory device on the SIMM. In burst mode, only active /CAS control lines are required to toggle at the operating frequency of the device, or at half the frequency if each edge of the /CAS signal is used as described above. The data lines are required to be switchable at half of the frequency of the /CAS lines or at the same frequency, and the other control and address signals switch at lower frequencies than /CAS and the data lines. As shown inFIG. 6, each /CAS signal and each data line is connected to a single memory device allowing for higher frequency switching than the other control and address signals. Each of thememory devices10,12,14 and16 is designed in accordance with embodiments of the invention allowing for a burst mode of operation providing internal address generation for sequential or interleaved data access from multiple memory address locations with timing relative to the /CAS control lines after a first row and column address are latched.
FIG. 7 shows a front view of another SIMM designed in accordance with some embodiments of the invention. Each device on the SIMM is a 4 Megabit DRAM organized as 1 Meg×4. In this configuration, a single /CAS controls two memory devices to provide access to a byte width of the data bus. The eight devices shown form a 4 Megabyte SIMM in a 32 bit width. For an 8 Megabyte SIMM in a 32 bit width, there are eight additional devices on the back side (not shown).
FIG. 8 shows a preferred pinout for a memory module designed in accordance with the device ofFIG. 7. This pinout is compatible with pinouts for Fast Page Mode SIMMs and EDO SIMMs. A presence detect pin is provided for indication of EDO operation onpin66, and in accordance with standard EDO part types, an /OE input is provided onpin46.
Alternate embodiments of the SIMM modules of FIG.'s5,6, and7 include the use of two /RAS signals with each controlling a sixteen bit width of the data bus in accordance with standard SIMM module pinouts. Four more 2 M×8 EDO Burst Mode DRAMs may be added to the device ofFIG. 6 to provide for a 4 M×32 bit SIMM. Sixteen bit wide DRAMs may also be used, these will typically have two /CAS signals each of which controls an eight bit data width. The incorporation of parity bits, or error detection and correction circuitry provide other possible SIMM module configurations. Methods of performing error detection and/or correction are well known to those of skill in the art, and detailed descriptions of such circuits are not provided in this application. Additional SIMM designs using the novel memory device described herein may be designed by one of skill in the art with the aid of this specification. The embodiments have been described with reference to SIMM designs, but is not limited to SIMMs. Embodiments of the invention are equally applicable to other types of memory modules including Dual In-Line Memory Modules (DIMMs) and Multi-Chip Modules (MCMs).
Burst/Pipelined Mode Embodiment
Referring toFIG. 9, there is shown a block diagram of a memory device (memory)100 in accordance with various embodiments.Memory100 in the embodiment illustrative shown is an asynchronous DRAM. By asynchronous it should be understood that operation ofmemory100 need not be synchronized to an external clock signal. In other words, no system clock signal need be applied tomemory100. Consequently,memory100 is smaller, and requires less circuitry and control pins than an SDRAM.
Memory100 receives several signals, including /RAS and /CAS signals112,114, /WE signal117, address (ADDR) signal115, and /OE signal118.ADDR signal115 may be made up of input pins (inputs) A0 through An inclusive (A0-An), where n is an integer greater than zero. Multiplexer/Column-Address Buffer122 is coupled for receivingADDR signal115. Furthermore, in accordance with one embodiment of the invention, an input control signal is provided tomemory100. This signal is pipelined EDO/burst EDO select (P/B) signal120, where the “/” indicates that burst mode is active low. P/B signal120 may be supplied externally to memory100 (e.g., via a control pin of memory100) to controllogic121. Alternatively, P/B signal120 may be omitted for a standard enable signal to generate mode select internal to controllogic121.
Memory100 includesmemory array111. Whilememory array111 is referred to in the singular, it should be understood, as illustratively shown inFIG. 9, thatmemory array111 may be made up of one or more addressable memory arrays.Memory100 may provide an output read frommemory array111 via data (DQ)signal116. Alternatively,memory100 is capable of receiving information to be stored inmemory array111 viaDQ signal116.DQ signal116 is made up of I/O pins DQ1 through DQm inclusive (DQ1-DQm), where m represents an integer greater than or equal to one. Alternatively, separate data input and output paths may be used.
Memory100 also includes many known elements such as row address buffers101,refresh counter102,refresh controller103,column decoder104, data-inbuffer105, data-outbuffer107, I/Ogating sense amplifiers106,row decoder108, andtiming control109.
Referring toFIG. 10, there is shown a block diagram of an embodiment of a portion ofmemory100 ofFIG. 9.ADDR signal115 provides external inputs XA0-XAn. Inputs XA2-XAn are provided directly totemporary storage119.Temporary storage119 may be a latch or other memory device. Input XA1 is provided to multiplexer (MUX)124, and input XA0 is provided toMUX125. After which inputs XA1 and XA0 are provided to respective locations intemporary storage119.
MUXs124,125 also receivenewburst signal110 from control logic121 (shown inFIG. 9).Newburst signal110 is employed as a select signal as applied toMUXs124,125. Thus, if newburst signal110 is active,memory100 is in burst mode. Consequently,count0 and count1signals140,141 are selected over XA0 and XA1 signals as applied toMUXs124,125. Ifnewburst signal110 is not active,memory100 is in pipelined mode. As a result, XA0 and XA1 are selected oversignals140,141 as applied toMUXs124,125.
In burst mode,newburst signal110 is used to control counter149 to load and increment values. Counter149 loads address XA0 and XA1. After a first /CAS signal114 cycle in burst mode which uses the initial external values supplied for addresses XA0 and XA1, counter149 increments those initial values and provides new internally generated addresses A0 and A1 by supplyingcount0signal140 and count1signal141 to respective A0 and A1 locations intemporary storage119 throughMUXs125,124. In this manner, internal addresses may be generated based on an initial external address.
Whilecounter149 is shown as a two (2) bit counter, it will be readily apparent to one with ordinary skill in the art that this is merely representative of one embodiment of the invention. Consequently, it should be understood that other counter sizes may be employed in accordance with various embodiments. Moreover, counter149 may also include burstlength counter143. In such a case, burstlength counter143 may include a latch for temporarily storing a current burst length count and a comparator for ensuring the count does not exceed a maximum length for a burst sequence.
Referring now toFIG. 11, there is shown a schematic diagram ofmode circuitry138 for generatingnewburst signal110 in accordance with various embodiments.Mode circuitry138 is a portion of control logic121 (shown inFIG. 9). As shown, either /OE signal118, /WE signal117, or P/B signal120 maybe used to providenewburst signal110. CYa and CYb signals126,127 are provided by burst length counter143 (shown inFIG. 10).Newburst signal110 is employed to reset CYa and CYb signals126,127 (for example to binary (1, 1)).Signals126,127 are decremented binarily (for example, (1, 1), (1, 0), (0, 1), (0, 0)) such that when an end of a burst length is reached (for example, (0, 0) for a 4-bit burst length),newburst signal110 is enabled.
/CAS signal114 is provided todelays128,129. In this embodiment,delay128 is longer than that ofdelay129.
Flip-flop130 is made up of twoNAND gates131,132. Output fromdelay129 is used to reset and enable flip-flop130.
In the case where burst mode is selected (active low), mode select (/MS) signal142 will be low. /MS signal142 may be any ofsignals117,118,120 or a combination thereof. As /MS signal142 is low, its input to NORgates113,136 will be low (“logic zero”). Flip-flop130 will be set such that output from it to NORgate136 is also low provided that output fromdelay129 is low and that output from NORgate135 is low. Output from NORgate135 will go high when /CAS signal114 rises causing a low pulse out ofNAND gate134, andCYa126 andCYb127 are both low indicating that the current burst sequence is complete. BothCYb127 andCYa126 are set high at the beginning of a burst sequence. Consequently,newburst signal110 will remain low until burst mode is interrupted or completed.
If pipelined mode is selected, /MS signal142 will be high. Thus, inputs to NORgate136 will be high (“logic one”), and thus newburst signal110 will remain high until pipelined mode is interrupted.
With renewed reference toFIGS. 9 and 10, the following two examples of operation ofmemory100 should be considered.
- 1. If mode select is active high (e.g., logic “1”), pipelined EDO mode is selected for operation ofmemory100.Control logic121 in response to receiving mode select pipelined information, providesnewburst signal110 to MUX123 to select external input XA0-XAn. In this manner an external address viaADDR signal115 may be sent throughbuffer122 todecoder104 for each /CAS signal114 cycle for pipelined EDO mode. In other words, a new external column address formemory array111 may be provided for each access tomemory100. Thus, whilememory100 is in pipelined EDO mode,newburst signal110 instructsbuffer122 to select address input only fromADDR signal115.
- 2. Alternatively, if mode select is active low (e.g., logic “0”), burst EDO mode is selected for operation ofmemory100.Control logic121 in response to receiving mode select burst information, providesnewburst signal110 to select input frombuffer122 viatemporary storage119 andcounter149. In this manner, for an access tomemory100, an address sent frombuffer122 todecoder104 is selected, namely the current external address stored inbuffer122. This address is then incremented in accordance with burst EDO mode by operation ofcounter149 and provided todecoder104 throughbuffer122.
It should be readily appreciated that embodiments of the invention provide switching between burst and pipelined EDO modes of operation ofmemory100 for page mode accessing in either mode.
When accessing several different column locations in a row of memory array111 (page mode access), a new external column address for each access tomemory array111 may be provided tomemory100 for pipelined EDO mode of operation. Thus, successive external addresses, one for each /CAS signal114 cycle, may be provided tomemory100. This is particularly useful in applications when column accesses are in a random or a patternless-series of column addresses. By patternless-series, it should be understood to mean a manner of memory addressing which does not have to comport with any predefined scheme.
When accessing several different column locations in a row of memory array111 (again, page mode access), after receipt of an external address for access tomemory array111, a subsequent, new internal column addresses may be generated bymemory100 for each subsequent access tomemory array111 in burst EDO mode of operation. This is particularly useful in applications when column accesses are in a predefined-series or in a sequence. Such predefined-series and sequential operation include interleaved and linear memory addressing schemes. It should be further understood that successive external addresses, one for each set of /CAS signal114 cycles, may be provided tomemory100 in accordance with various embodiments for continued bursting.
With continued reference toFIG. 9 and reference toFIG. 12, which is a process flow diagram for switching between burst and pipelined EDO modes of operation in accordance with various embodiments, one type of switching operation formemory100 is explained. Atstep153,memory100 is initialized. After which, it is determined whether a row address has been received atstep154. If a row address has not been received,memory100 stays in wait mode until a row address is received.
If a row address has been received, atstep159 it is determined whether burst or pipelined EDO mode is desired. If pipelined EDO mode is desired, an external address path is selected atstep158. By path or pathway it should be understood to include one or more signals. Atstep150,memory100 is instructed whether to read (output) or write (input) information. Ifmemory100 is to read information., an external column address is obtained atstep151. Next, atstep152, information is obtained frommemory array111 corresponding to the row address received atstep154 and the external column address obtained atstep151. Atstep153, it is determined whether information should continue to be read frommemory100 in the current pipelined EDO mode. If yes, another external column address is obtained atstep151; however, if no,memory153 must wait for a next instruction.
If atstep150,memory100 was instructed to write information, then an external column address is obtained atstep155. After which, the appropriate information is provided tomemory array111 atstep156 at a location corresponding to the row address received atstep154 and the external column address obtained atstep155. Atstep157, it is determined whethermemory100 is to continue writing information in the current pipelined EDO mode. If yes, then another external column address is obtained atstep155. If no,memory100 waits for a next instruction atstep174.
If atstep159, it was determined thatmemory100 should be in burst EDO mode, then an initial stored external address path is selected atstep160. Atstep161 it is determined whether information is to be read or written tomemory100. If information is to be read frommemory100, then atstep162 an initial external column address is obtained. Atstep163 information is obtained frommemory array111 at the location specified by the row address received atstep154 and the external column address obtained atstep162.
At step164, an internal column address is generated for burst EDO mode and an alternative address path for providing internal addresses to temporary storage119 (shown inFIG. 10) is selected. Atstep165, information is obtained frommemory array111 according to the row address specified atstep154 and the internal column address specified at step164.
Atstep166 it is determined whether to continue generating internal column addresses. If yes, at step164 the next internal column address in the predefined-series is generated. If no, it is determined whether information is to be read frommemory100 in the current mode atstep167. If information is to continue to be read, then another external column address is obtained atstep162. If no,memory100 waits for a next instruction atstep174.
If atstep161memory100 is instructed to write information tomemory array111, then atstep168 an initial external column address is obtained. Next, atstep169, information is provided tomemory array111 at the location specified by the row address received atstep154 and the external column address obtained atstep168.
Atstep170, an internal column address is generated in accordance with a predefined-series. Atstep171, information is provided tomemory array111 at the location specified by the row address received atstep154 and the internal column address generated atstep170.
Atstep172 it is determined whether to continue generating internal column addresses. If internal column addresses are to be continued to be generated, then the next internal column address in the predefined-series is generated atstep170. If no, then atstep173 it is determined whether information is to continue to be written tomemory100 in the burst EDO mode. If yes, then another initial external column address is obtained atstep168. If no,memory100 waits for a next instruction atstep174.
Embodiments of the invention facilitate random/patternless-series column accessing (using externally generated addresses exclusively) and predefined-series/sequential column accessing (using an initial externally generated address followed by one or more internally generated addresses). This is done without the additional above-described undesirable features associated with SDRAMs. The various embodiments provide switching between burst access, and non-burst access or pipelined modes of operation without ceasing (“on-the-fly”). No WCBR cycle is needed with burst/pipelined mode switching during operation. Thus, the ability to increase speed and operating performance is facilitated.
Furthermore, owing to the ability to provide both burst and pipelined EDO modes of operation formemory100, this disclosure facilitates many additional embodiments, some of which are described below.
Referring now toFIG. 13, there is shown a timing diagram illustrative of burst EDO write cycles for a row-based switching embodiment in accordance with various embodiments. For row-based switching, either /OE signal118 or /WE signal117 may be used for mode select. For example, either /OE signal118 or /WE signal117 may be provided to mode circuitry138 (shown inFIG. 11). Mode circuitry138 (shown inFIG. 11) may be set by either /OE signal118 or /WE signal117 when /RAS signal112 is active. Thus, any need for an external mode select control signal is eliminated. Mode circuitry138 (shown inFIG. 11) may be set for the duration of a current row access (page mode access), and /OE signal118 and /WE signal117 retain their functionality for one or more column accesses on the current row.
/RAS signal112 transitions to active low attime175. At which time, /OE signal118 is active low for selecting burst EDO mode, and /OE signal118 is a “don't care” condition for the remainder of /RAS signal112 for the current write cycles. (e.g., /CAS cycles180 through183, inclusive).
Attime175,ADDR signal115 has providedrow address176.Row address176 indicates which row in memory array111 (shown inFIG. 9) is to be accessed. Thus,row address176 is latched by transition of /RAS signal112 from high to low attime175.
Attime177, /CAS signal114 transitions to active low. At which time, /WE signal117 is active low. Consequently, memory100 (shown inFIG. 9) is instructed to write information to memory array111 (also shown inFIG. 9). Also, attime177,ADDR signal115 provides an initial external column address (COL b)178.Address178 indicates a location onrow176 in which writing of information is to begin. Accordingly, data (DIN b)179 fromDQ signal116 is input to memory100 (shown inFIG. 9).
Column address178 is advanced on subsequent /CAS signal114cycles181 through183, inclusive (181-183). Accordingly, data (DIN b+1, DIN b+2, and DIN b+3)184 through186, inclusive, is stored on each cycle181-183, respectively.
After the fourth memory access, a newexternal address187 is applied viaADDR signal115 for further inputting of information to memory100 (shown inFIG. 9) without any /CAS cycle latency.
Referring toFIG. 14, there is shown a timing diagram illustrative of burst EDO read cycles for a row-based switching embodiment in accordance with various embodiments. /RAS signal112 transitions to active low attime190. At which time, /OE signal118 is active low for selecting burst EDO mode, and ADDR signal115 has providedrow address191, namely a row in memory array111 (shown inFIG. 9) to be accessed.Row address191 is latched by transition of /RAS signal112 from high to low attime190.
Attime192, /CAS signal114 transitions to active low, latching column address (COL b)193.Address193 is an externally generated address provided to memory100 (shown inFIG. 9) viaADDR signal115. As /WE signal117 is high (inactive) attime192, memory100 (shown inFIG. 9) is instructed to read information from memory array111 (also shown inFIG. 9). After /CAS cycle194, an additional /CAS cycle takes place, namely /CAS cycle195, for a two /CAS signal114 cycle latency (cycles194 and195). Notably, for continued, successive bursting, only the initial two /CAS cycle latency is incurred.
Bytime200, the beginning of the third /CAS cycle (/CAS cycle196), data (DOUT b)201 fromrow191,column193 is valid. DOUTb is outputted a tCAC (access time from /CAS) from the beginning of thesecond CAS cycle195, and is outputted alongDQ signal116. Aftercycle194, on each following /CAS cycle195 through197, inclusive, an internal address is generated for outputting data (DOUT b+1, b+2, and b+3)202,203, and204, respectively, onDQ signal116. Meanwhile attime205, a newexternal column address206 is latched by transition of /CAS signal114 from high to low.
Referring toFIG. 15, there is shown a timing diagram illustrative of pipelined EDO write cycles for a row-based switching embodiment in accordance with various embodiments. /RAS signal112 transitions to active low attime210, latchingrow address211. As /OE signal118 is high attime210, pipelined mode is selected. As /WE signal117 is low attime216, memory100 (shown inFIG. 9) is instructed to write information to memory array111 (shown inFIG. 9).
Attime216, /CAS114 transitions from high to low to begin /CAS cycle212. This transition causesrow address211 and external column address (COL b)217 to be accessed for writing data (DIN b)221 fromDQ signal116 to memory array111 (shown inFIG. 9). On the next and following /CAS cycles (e.g., /CAS cycles213,214,215, a random or patternless series of external column addresses (e.g., external column addresses218,219,220) may be received for writing data (e.g., DIN e, w, y) fromDQ signal116 to memory100 (shown inFIG. 9). Receiving of external addresses may continue thereafter without any /CAS cycle latency.
Referring now toFIG. 16, there is shown a timing diagram illustrative of pipelined EDO read cycles for a row-based switching embodiment in accordance with various embodiments. Attime225, /RAS signal112 transitions to active low, androw address226 is latched fromADDR signal115. Also, attime225, /OE signal118 is high, and thus pipelined mode is selected. Attime227, /WE signal117 is high, and thus memory100 (shown inFIG. 9) is instructed to read from memory array111 (also shown inFIG. 9).
Attime227, /CAS signal114 begins cycling, and consequently external column address (COL b)234 may be provided to MUX123 (shown inFIG. 9). Moreover, a new external column address (e.g., COL e, w, y, n, d, m) may be provided to MUX123 (shown inFIG. 9) on each subsequent /CAS cycle229 through233, inclusive. However, there is a two /CAS cycle latency, namely /CAS cycles228,229, fromtime227 whenexternal column address234 is received and reading or outputting data (DOUT b)235 associated withaddress234 ontosignal DQ116.
While this row-based switching embodiment has been illustratively shown having four /CAS cycles prior to initiation of receipt of a new external address while in burst EDO mode, it will be appreciated by those of ordinary skill in the art that fewer or more /CAS cycles may be used. Furthermore, while data out was incrementally increased (i.e., b, b+1, etc.) for purposes of illustration of burst EDO write and read operations, it will be appreciated by those of ordinary skill in the art that an interleaved or another patterned, internally generated addressing scheme may be employed. Also, /WE signal117 was not used for mode selection in this example; however, it will be readily appreciated to those of ordinary skill in the art that /WE signal117 may be used instead of /OE signal118 for mode selection.
As mentioned above, embodiments of the invention facilitate many applications in addition to row-based switching. By way of example and not limitation, some other possible embodiments are described herein.
In column-based switching, switching between burst EDO and pipelined EDO modes is accomplished on successive /CAS cycles. Moreover, this type of switching may be accomplished on either read or write cycles, e.g., from a burst EDO read cycle to a pipelined EDO read cycle and vice-versa, or from a burst EDO write cycle to a pipelined EDO write cycle and vice-versa.
For this embodiment, /OE signal118 functionality must be changed, as it is used to disable output drivers, to be used as an input for mode selection (i.e., a signal equivalent to P/B120). For example, referring toFIG. 17, there is shown a timing diagram for column-base switching in accordance with various embodiments. When /OE signal118 is low, memory100 (shown inFIG. 9) operates inburst mode258, and when /OE signal118 is high, memory100 (shown inFIG. 9) operates in pipelinedmode259.
In application-based switching, a WCBR (write /CAS before /RAS) program cycle following a memory100 (shown inFIG. 9) initialization routine may be applied to mode circuitry138 (shown inFIG. 11) to select a desired EDO mode. In such a case, memory100 (shown inFIG. 9) remains in a selected EDO mode until powered down or until another WCBR programming cycle is executed to change the mode. This type of switching may be employed where a user desires to use burst EDO mode for one or more applications and pipelined EDO mode for one or more other applications. Moreover, an additional external pin may be employed for providing /OE signal118 to memory100 (shown inFIG. 9).
In fixed access-based switching, burst address counter149 (shown inFIG. 9) may be employed for read operations, and external addressing may be employed for write operations. In other words, burst EDO mode may be used for read operations, and pipelined EDO mode may be used for write operations. In such a case, /WE signal117 may be applied to mode circuitry138 (shown inFIG. 11) such that when /WE signal117 is logic low,memory100 is in pipelined EDO mode, and when /WE signal117 is logic high,memory100 is in burst EDO mode. This implementation requires no redefinition of control signals.
Other types of switching include combinations of the above examples. By way of example and not limitation, a fixed burst-read/pipelined-write operation could be combined with a WCBR programming cycle (like that described in application-based switching) to allow either fixed access-based switching or row-based switching.
Referring now toFIG. 18, there is shown a top elevation view of a pinout diagram of an memory (DRAM)240 in accordance with various embodiments.DRAM240 has a standard pinout, except for pin241 (i.e., pin number eight).Pin241 has been changed from a NC (no connect) pin, as shown inFIG. 3, to a P/B control signal120 (shown inFIG. 9) pin for selecting between burst EDO and pipelined EDO modes of operation. As mentioned elsewhere herein, an external control signal for mode selection between burst EDO and pipelined EDO need not be present. In such a case, logic internal toDRAM240 is employed for selecting between two modes, and thus the pinout of such a DRAM would be the same as that shown inFIG. 3.
Referring toFIG. 19, there is shown a block diagram of a memory module (SIMM)250 in accordance with various embodiments.SIMM250 is similar to that shownFIG. 6, except that P/B control signal120 is applied to a pin on eachDRAM242 through245, inclusive.DRAMs242 through245 are similar to that ofFIG. 17. Of course, ifDRAMs242 through245 had internal logic for mode selection, no additional providing of P/B signal120 (shown inFIG. 9) would be necessary. In which case,SIMM250 may be like that ofFIG. 6.
Referring toFIG. 20, there is shownsystem255 in accordance with various embodiments. As illustratively shown,microprocessor251 is coupled tomemory100, as well assystem clock253. Notablysystem clock253 is not directly coupled tomemory100, but is coupled throughmicroprocessor251.
In this Detailed Description, reference is made to specific examples by way of drawings and illustrations. These examples are described in sufficient detail to enable those skilled in the art to practice the inventive subject matter, and serve to illustrate how the inventive subject matter may be applied to various purposes or embodiments. Other embodiments are included within the inventive subject matter, as logical, mechanical, electrical, and other changes may be made to the example embodiments described herein. Features or limitations of various embodiments described herein do not limit the inventive subject matter as a whole, and any reference to the invention, its elements, operation, and application are not limiting as a whole, but serve only to define these example embodiments.
Such embodiments of the inventive subject matter may be referred to herein individually or collectively by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept, if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that will allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted to require more features than are expressly recited in each claim. Rather, inventive subject matter may be found in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.