WO2011000082A1 - A bridging device having a frequency configurable clock domain - Google Patents
A bridging device having a frequency configurable clock domain Download PDFInfo
- Publication number
- WO2011000082A1 WO2011000082A1 PCT/CA2010/000948 CA2010000948W WO2011000082A1 WO 2011000082 A1 WO2011000082 A1 WO 2011000082A1 CA 2010000948 W CA2010000948 W CA 2010000948W WO 2011000082 A1 WO2011000082 A1 WO 2011000082A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- clock
- memory
- bridge device
- signal
- signals
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
Definitions
- non-volatile devices such as flash memory devices
- flash memory devices for storage of data.
- demand for flash memory devices has continued to grow significantly because these devices are well suited in various applications that require large amounts of non-volatile storage, while occupying a small physical area.
- flash is widely found in various consumer devices, such as digital cameras, cell phones, universal serial bus (USB) flash drives and portable music players, to store data used by these devices.
- flash devices are used as solid state drives (SSDs) for hard disk drive (HDD) replacement.
- SSDs solid state drives
- HDD hard disk drive
- multimedia and SSD applications require large amounts of memory which can increase the form factor size and weight of their products.
- flash memory may have a higher density per unit area than DRAM or SRAM, its performance is typically limited due to its relatively low I/O bandwidth that negatively impacts its read and write throughput.
- the embodiments of the bridge device embodiments shown in the present application provides a high speed interface between a system and discrete memory devices.
- bridge device for controlling discrete memory devices in response to global command.
- the bridge device includes a first clock domain having first logic circuits and first control circuits, a frequency controller, and a second clock domain having second logic circuit and second control circuits.
- the first logic circuits and the first control circuits operate in synchronization with a memory clock for issuing local commands to the discrete memory devices.
- the frequency controller generates the memory clock as one of at least two dynamically selectable clock divide ratios of a system clock provided to the bridge device.
- the second logic circuit and the second control circuits operate in synchronization with the system clock for converting the global command received synchronously with the system clock into the local command synchronized with the memory clock.
- the bridge device further includes a memory for storing write data received by at least one system data input port to be provided to the discrete memory devices, and for storing read data received from the discrete memory devices to be provided to at least one system data output port.
- the memory can include a first memory input/output path controlled by the first control circuits of the first clock domain for providing the write data stored in a memory array of the memory to the discrete memory devices at a first data rate corresponding to a frequency of the memory clock.
- the memory can receive the read data at the first data rate for writing to the memory array.
- the memory can include a second memory input/output path controlled by the second control circuits of the second clock domain for providing the write data to the memory array at a second data rate corresponding to a frequency of the system clock.
- the memory can provide the read data from the memory array at the second data rate.
- the second clock domain further includes data input path circuits for providing the write data received at the at least one system data input port to the second memory input/output path, and data output path circuits for providing the read data received from the second memory input/output path to the at least one system data output port.
- the data input path circuits and the data output path circuits operate in synchronization with the system clock.
- the second logic circuits and the second control circuits include conversion circuits for converting commands of the global command into the local command compatible with the discrete memory devices synchronously with the system clock.
- the first logic circuits and the first control circuits are configured for providing the local command to the discrete memory devices synchronously with the memory clock.
- the first logic circuits and the first control circuits receive write data from the memory for output to the discrete memory devices synchronously with the memory clock when the local command corresponds to a write operation for a selected discrete memory device.
- the second clock domain further includes an operational code register and a register.
- the operational code register receives and stores a frequency divide op-code for controlling the frequency controller to change a divide ratio of the system clock to a ratio corresponding to a received frequency divide ratio code.
- the register receives and stores the frequency divide ratio code.
- the frequency divide ratio code can include multiple bits corresponding to integer and non- integer divide ratios.
- the frequency controller includes clock dividers and selector.
- the clock dividers are each configured to divide the system clock by different integer and non-integer divide ratios to provide intermediate clock signals.
- the selector passes one of the intermediate clock signals as the memory clock in response to a frequency divide ratio code corresponding to any one of the different integer and non-integer divide ratios.
- the frequency controller includes a path control circuit for selectively passing the system clock to one of the clock dividers in response to the frequency divide ratio code.
- the frequency controller includes a clock divider and clock combining logic.
- the clock divider provides first intermediate clock signals on first edges of the system clock and second intermediate clock signals on second edges of the system clock, where each of the first intermediate clock signals and the second intermediate clock signals have a period set by a ratio selector signal corresponding to the one of at least two dynamically selectable clock divide ratios.
- the clock combining logic logically combines selected first intermediate clock signals and selected second intermediate clock signals to provide the memory clock having a frequency corresponding to the system clock divided by the one of at least two dynamically selectable clock divide ratios.
- each of the first intermediate clock signals is generated one cycle of the system clock after a previous first intermediate clock signal is generated
- each of the second intermediate clock signals is generated one cycle of the system clock after a previous first intermediate clock signal is generated.
- the clock divider can be configured to generate each of the first intermediate clock signals in response to an initial first intermediate clock signal, and to generate each of the second intermediate clock signals in response to an initial second intermediate clock signal, where the initial second intermediate clock signal is generated a predetermined number of cycles of the system clock corresponding to the one of at least two dynamically selectable clock divide ratios after the initial first intermediate clock signal is generated.
- the frequency controller includes a frequency divide ratio decoder for generating ratio selector signals in response to a frequency divide ratio code representing the one of at least two dynamically selectable clock divide ratios.
- the clock divider includes a first configurable logic loop circuit and a second configurable logic loop circuit.
- the first configurable logic loop circuit generates the first intermediate clock signals at the first edges of the system clock, and the first configurable logic loop circuit being initiated in response to a first set signal.
- the second configurable logic loop circuit generates the second intermediate clock signals at the second edges of the system clock, and the second configurable logic loop circuit being initiated in response to a second set signal received after a number of cycles of the system clock predetermined by the one of at least two dynamically selectable clock divide ratios.
- the first configurable logic loop circuit can include cascaded first edge triggered logic elements, and loop adjustment circuits.
- the cascaded first edge triggered logic elements each have an output for providing one of the first intermediate clock signals and an input for latching a previous one of the first intermediate clock signals in response to the first edges of the system clock, the cascaded first edge triggered logic elements including a first initializing logic element configured to receive the first set signal.
- the loop adjustment circuits change a size of the first configurable logic loop circuit by selectively coupling only one of the first intermediate clock signals to the first logic element in response to the ratio selector signals.
- the second configurable logic loop circuit can include cascaded second edge triggered logic elements and loop adjustment circuits.
- the cascaded second edge triggered logic elements each having an output for providing one of the second intermediate clock signals and an input for latching a previous one of the second intermediate clock signals in response to the second edges of the system clock, the cascaded second edge triggered logic elements including a second initializing logic element configured to receive the second set signal.
- the loop adjustment circuits change a size of the second configurable logic loop circuit by selectively coupling only one of the second intermediate clock signals to the second logic element in response to the ratio selector signals.
- the clock combining logic includes logic configuration circuitry and clock generation circuitry.
- the logic configuration circuitry provides control signals in response to the ratio selector signals.
- the clock generation circuitry is configurable by the control signals for enabling a predetermined combination of the selected first intermediate clock signals and the selected second intermediate clock signals to be used for generating the memory clock having a frequency corresponding to the system clock divided by the one of at least two dynamically selectable clock divide ratios.
- the frequency controller includes a clock initialization circuit for providing the first set signal and the second set signal in response to a reset condition.
- the clock initialization circuit includes at least one signal detector, a reset circuit, and a startup synchronizer.
- the at least one signal detector for provides at least one detection signal in response to a transition of at least one received signal.
- the reset circuit resets the first configurable logic loop circuit and the second configurable logic loop circuit in response to the at least one detection signal.
- the startup synchronizer provides the first set signal and the second set signal in response to the at least one detection signal, the second set signal being provided after a number of cycles of the system clock predetermined by the one of at least two dynamically selectable clock divide ratios.
- the at least one signal detector can include a chip enable signal detector and a divide ratio detector.
- the chip enable signal detector provides a first detection signal when a transition of a chip enable signal is detected.
- the divide ratio detector provides a second detection signal when a change in a frequency divide ratio code corresponding to the one of at least two dynamically selectable clock divide ratios is detected, the at least one detection signal including the first detection signal and the second detection signal.
- the reset circuit can include a power up reset circuit for providing a third detection signal when a power supply voltage reaches a predetermined threshold level.
- the reset circuit generates a first reset signal for resetting the first configurable logic loop circuit and a second reset signal for resetting the first configurable logic loop circuit in response to at least one of the first detection signal, the second detection signal and the third detection signal.
- the reset circuit generates the first reset signal at one of the first edges of the system clock after receiving at least one of the first detection signal, the second detection signal and the third detection signal, and generates the second reset signal at one of the second edges of the system clock immediately following the one of the first edges.
- the startup synchronizer can include an initializing logic element, cascaded logic elements and phase adjustment circuit.
- the initializing logic element generates the first set signal in response to the at least one detection signal at one of the second edges of the system clock.
- the cascaded logic elements generate set configuration signals in response to the first set signal at subsequent second edges of the system clock following the one of the second edges.
- the phase adjustment circuit generates the second set signal in response to the ratio selector signal at one of the first edges of the system clock.
- Fig. 1A is a block diagram of an example non-volatile memory system
- Fig. 1 B is a diagram of a discrete flash memory device used in the example memory system of Figure 1 A;
- Fig. 2A is a block diagram of an example serial memory system
- Fig. 2B is a diagram of a discrete serial interface flash memory device used in the example memory system of Figure 2A;
- Fig. 3A is a block diagram of a composite memory device having four discrete memory devices and a bridge device in accordance with an embodiment
- Fig. 3B is an illustration of a global command, according to a present embodiment
- Fig. 4 is a block diagram of a bridge device in accordance with an embodiment
- Fig. 5 is a block diagram of a memory system having a number of composite memory devices connected to a controller in a serial interconnected memory system in accordance with an embodiment
- Fig. 6A is a block diagram of a NAND to high speed serial interface bridge device, according to a present embodiment
- Fig. 6B is a functional block diagram of the bridge device of Figure 6A showing different clock domains
- Fig. 7 is a block diagram of the frequency controller shown in Figure 6, according to a present embodiment
- Fig. 8 is a block diagram of an alternate embodiment of the frequency controller shown in Figure 6A, according to a present embodiment
- Fig. 9A is a circuit schematic of a frequency divide ratio code decoder in the clock divider of Figure 8, according to a present embodiment
- Fig. 9B is a circuit schematic of a configurable clock signal circuit in the path control block of Figure 8, according to a present embodiment
- Fig. 1 OA and 1 OB is a circuit schematic of the clock combining logic shown in Figure 8, according to a present embodiment
- Fig. 1 1 is a block diagram of a clock initialization circuit for the configurable clock signal circuit of Figure 9B, according to a present embodiment
- Fig. 12 is a circuit schematic of the external control signal detector of Figure 1 1 , according to a present embodiment
- Fig. 13 is a circuit schematic of the divide ratio detector of Figure 1 1 , according to a present embodiment
- Fig. 14 is a circuit schematic of the reset circuit of Figure 1 1 , according to a present embodiment
- Fig. 15 is a circuit schematic of the startup synchronizer circuit of Figure 1 1 , according to a present embodiment
- Fig. 16A and 16B are timing diagrams showing a non-integer divide operation
- Fig. 17 is an example timing diagram showing an integer divide operation
- Fig. 18 is an illustration of a frequency configuration command, according to a present embodiment.
- Fig. 19 is a timing diagram illustrating how the clock configuration global command is received by a composite memory device.
- a composite memory device including discrete memory devices and a bridge device for controlling the discrete memory devices in response to global memory control signals having a format or protocol that is incompatible with the memory devices.
- the discrete memory devices can be commercial off-the-shelf memory devices or custom memory devices, which respond to native, or local memory control signals.
- the global and local memory control signals correspond to commands and command signals each having different formats.
- the bridge device is configured to receive write data and to provide read data at a frequency greater than the maximum rated frequency of the discrete memory devices.
- the bridge device includes memory to temporarily store at least a portion of a page of data read from the page buffer of a discrete memory device, or to be written to the page buffer of a discrete memory device.
- the bridge device of the present embodiment has at least two different clock domains.
- a first clock domain includes circuits responsible for providing commands to the discrete memory devices, for providing write data from the memory to the discrete memory devices, and circuits for controlling read data received from the discrete memory devices to be stored in the memory. Accordingly, the operation of the circuits in the first clock domain are synchronized with a memory clock having a first frequency, which corresponds to the operating frequency of the discrete memory devices.
- a second clock domain includes all the remaining circuits responsible for receiving and storing external write data destined for the discrete memory devices into the memory, and for providing the read data from the discrete memory devices stored in the memory.
- the circuits of the second clock domain are synchronized to operate at a frequency at least equal to or greater than the frequency of the discrete memory devices.
- the clock signal provided for the second clock domain can be a system clock provided by a discrete clock generator or a controller, such as a memory controller.
- the composite memory device receives only the system clock. Therefore the memory clock having the first frequency is generated internally by clock control circuitry in the bridge device. While a phase locked loop (PLL) circuit or a delay locked loop (DLL) circuit can be included in such clock control circuitry to generate the memory clock signal having the first frequency, DLL's and PLL's are known to be power inefficient circuits. Therefore they are not suitable for use in portable electronics or devices where a finite power supply, such as a battery, is the only available power source. Furthermore, discrete memory devices of the same batch may have different maximum operating frequencies. However, designing and manufacturing a different bridge device for different discrete memory device operating frequencies is impractical and costly.
- Another dimension of complexity is introduced by fabrication variations within the bridge device itself.
- the circuits of the second clock domain are designed for a specific maximum operating frequency.
- some of the bridge devices may not operate properly at the desired maximum operating frequency.
- environmental conditions can affect the performance of the transistors, such as for example elevated ambient temperature.
- the first and second clock frequencies of the two respective clock domains are sometimes designed for the "worst case" scenario.
- this may result in a bridge device with limited performance characteristics that cannot take advantage of discrete memory devices capable of operating at frequencies greater than the first frequency of the memory clock.
- circuits of the bridge device designed specifically for a conservative system clock frequency or a limited temperature range cannot take full advantage of a robust fabrication process that allows for a more aggressive design. Thus, the potential for better performance is sacrificed.
- a configurable clock controller which receives a system clock and generates the memory clock having a frequency that is a predetermined ratio of the system clock.
- the system clock frequency is dynamically variable between a maximum and a minimum value, and the divide ratio of the memory clock frequency relative to the system clock frequency is set by loading a frequency register with a Frequency Divide Ratio (FDR) code any time during operation of the composite memory device.
- FDR Frequency Divide Ratio
- the configurable clock controller changes the memory clock frequency.
- the system and device in accordance with the techniques described herein are applicable to a memory system having a plurality of devices connected in series.
- the devices are, for example, memory devices, such as dynamic random access memories (DRAMs), static random access memories (SRAMs), flash memories, DiNOR Flash EEPROM memories, Serial Flash EEPROM memories, Ferro RAM memories, Magneto RAM memories, Phase Change RAM memories, and any other suitable type of memory.
- DRAMs dynamic random access memories
- SRAMs static random access memories
- flash memories DiNOR Flash EEPROM memories
- Serial Flash EEPROM memories Serial Flash EEPROM memories
- Ferro RAM memories Magneto RAM memories
- Phase Change RAM memories Phase Change RAM memories
- Figure 1A is a block diagram of a non-volatile memory system 10 integrated with a host system 12.
- the system 10 includes a memory controller 14 in communication with host system 12, and a plurality of non-volatile memory devices 16-1 , 16-2, 16-3 and 16-4.
- the non-volatile memory devices 16-1 - 16-4 can be discrete asynchronous flash memory devices.
- the host system 12 includes a processing device such as a microcontroller, microprocessor, or a computer system.
- the system 10 of Figure 1A is organized to include one channel 18, with the memory devices 16-1 - 16-4 being connected in parallel to channel 18.
- the system 10 can have more or fewer than four memory devices connected to it.
- the memory devices 16-1 - 16-4 are asynchronous and connected in parallel with each other.
- Channel 18 includes a set of common buses, which include data and control lines that are connected to all of its corresponding memory devices. Each memory device is enabled or disabled with respective chip select (enable) signals CE1#, CE2#, CE3# and CE4#, provided by memory controller 14. In this and following examples, the "#" indicates that the signal is an active low logic level signal. In this scheme, one of the chip select signals is typically selected at one time to enable a corresponding one of the non-volatile memory devices 16-1 - 16-4.
- the memory controller 14 is responsible for issuing commands and data, via the channel 18, to a selected memory device in response to the operation of the host system 12. Read data output from the memory devices is transferred via the channel 18 back to the memory controller 14 and host system 12.
- the system 10 is generally said to include a multi-drop bus, in which the memory devices 16-1 - 16-4 are connected in parallel with respect to channel 18.
- FIG. 1 B is a diagram of one of the discrete flash memory devices 16-1 - 16-4 which can be used in the memory system of Figure 1 A.
- This flash memory device includes several input and output ports, which include for example power supply, control ports and data ports.
- the term "ports" refers to a generic input or output terminals into the memory device, which includes package pins, package solder bumps, chip bond pads, and wireless transmitters and receivers for example.
- the power supply ports include VCC and VSS for supplying power to all the circuits of the flash memory device. Additional power supply ports can be provided for supplying only the input and output buffers, as is well known in the art. Table 1 below provides an example listing of the control and data ports, their corresponding descriptions, definitions, and example logic states.
- control and data ports may be functionally equivalent to those shown in Table 1 , but follow protocols specific to that type of memory device. Such protocols may be governed by an established standard, or customized for a particular application by the manufacturer. It is noted that package pins and ball grid arrays are physical examples of a port, which are used for interconnecting signals or voltages of a packaged device to a board.
- the ports can include other types of connections, such as for example, terminals and contacts for embedded and system-in-package (SIP) systems.
- SIP system-in-package
- All the signals noted in Table 1 are generally referred to as the memory control signals for operation of the example flash memory device illustrated in Figure 1 B. It is noted that the last port I/O[i] is considered a memory control signal as it can receive commands which instruct the flash memory device to execute specific operations.
- a command asserted on port I/O[i] is a combination of logic states applied to each individual line making up I/O[i]
- the logic state of each signal of I/O[i] functions in the same manner as one of the other memory control signals, such as WP# for example.
- the main difference being that it is a specific combination of I/O[i] logic states controls the flash memory device to perform a function.
- the commands are received via its I/O ports and the command signals include the remaining control ports.
- operational codes op-codes
- all the other ports are coupled to respective global lines that make up channel 18. Individual chip enable signals are provided to each flash memory device by the memory controller 14.
- Each of the non-volatile memory devices of Figure 1A has one specific data interface for receiving and providing data.
- this is a parallel data interface commonly used in asynchronous flash memory devices, as well as in some synchronous flash memory devices.
- Standard parallel data interfaces providing multiple bits of data in parallel are known to suffer from well known communication degrading effects such as cross-talk, signal skew and signal attenuation, for example, which degrades signal quality, when operated beyond their rated operating frequency.
- 20070153576 entitled “Memory with Output Control”
- U.S. Patent Publication No. 20070076502 entitled “Daisy Chain Cascading Devices” which receives and provides data serially at a frequency, for example, 200 MHz. This is referred to as a serial data interface format.
- the described memory device can be used in a system of memory devices that are serially connected to each other.
- FIG. 2A is a block diagram illustrating the conceptual nature of a serial memory system.
- the serial ring-topology memory system 20 includes a memory controller 22 having a set of output ports Sout and a set of input ports Sin, and memory devices 24-1 , 24-2, 24-3and 24-N that are connected in series.
- the memory devices can be serial interface flash memory devices for example. While not shown in Figure 2A, each memory device has a set of input ports Sin and a set of output ports Sout. These sets of input and output ports includes one or more individual input/output ports, such as physical pins or connections, interfacing the memory device to the system it is a part of.
- the memory devices can be flash memory devices.
- the memory devices can be DRAM, SRAM, DiNOR Flash EEPROM, Serial Flash EEPROM, Ferro RAM, Magneto RAM, Phase Change RAM, or any other suitable type of memory device that has an input/output interface compatible with a specific command structure, for executing commands or for passing commands and data through to the next memory device.
- the current example of Figure 2A includes four memory devices, but alternate configurations can include a single memory device, or any suitable number of memory devices. Accordingly, if memory device 24-1 is the first device of the system 20 as it is connected to Sout, then memory device 24-N is the Nth or last device as it is connected to Sin, where N is an integer number greater than zero.
- Memory devices 24-2, 24-3 and any memory devices between 24-3 and 24-N are then intervening serially connected memory devices between the first and last memory devices.
- the memory devices 24-1 to 24-N are synchronous and connected in series with each other and the memory controller 22.
- FIG. 2B is a diagram of the serial interface flash memory device (24-1 to 24-N for example) which can be used in the memory system of Figure 2A.
- This example serial interface flash memory device includes power supply ports, control ports and data ports.
- the power supply ports include VCC and VSS for supplying power to all the circuits of the flash memory device. Additional power supply ports can be provided for supplying only the input and output buffers, as is well known in the art.
- Table 2 below provides an example listing of the control and data ports, their corresponding descriptions, definitions, and example logic states. It should be noted that different memory devices may have differently named control and data ports which may be functionally equivalent to those shown in Table 1 , but follow protocols specific to that type of memory device. Such protocols may be governed by an established standard, or customized for a particular application by the manufacturer.
- the functional port definitions and sequence, or timing, of sets of signals used for controlling the discrete memory devices is referred to as a protocol or format. Therefore the asynchronous and serial flash memory devices operate in response to different memory control signal formats. This means that the serial interface flash memory device of Figure 2B cannot be used in a multi-drop memory system, and correspondingly, the asynchronous flash memory device of Figure 1 B cannot be used in a serial connected ring topology memory system.
- serial interface flash memory devices as shown in Figure 2A and Figure 2B are desirable for their improved performance over the asynchronous flash memory devices of Figures 1A and 1 B, memory system manufacturers may not wish to introduce another flash product into their high volume flash fabrication facility. Due to their ubiquitous use in the industry, asynchronous flash memory devices are inexpensive because of the economies of scale of high volume manufacturing. Presently, memory system manufacturers do not have a solution for taking advantage of the performance benefits of serially interconnected devices while enjoying the economies of scale of high volume manufacturing.
- At least some example embodiments provide a high performance composite memory device with a high-speed interface chip or a bridge device in conjunction with discrete memory devices, in a multi-chip package (MCP) or system in package (SIP).
- MCP multi-chip package
- SIP system in package
- the bridge device provides an I/O interface with the system it is integrated within, and receives global memory control signals following a global format, and converts the commands into local memory control signals following a native or local format compatible with the discrete memory devices.
- the bridge device thereby allows the use of high volume commodity memory devices, such as asynchronous NAND flash devices, while providing the performance benefits afforded by the I/O interface of the bridge device.
- the bridge device can be embodied as a discrete logic die integrated with the discrete memory device dies in the package.
- the global format is a serial data format compatible with the serial flash memory device of Figures 2A and 2B
- the local format is a parallel data format compatible with the asynchronous flash memory device of Figures 1 A and 2B.
- the embodiments of the present invention are not limited to the above example formats, as any pair of memory control signal formats can be used, depending the type of discrete memory devices used in the composite memory device and the type of memory system the composite memory device is used within.
- the global format of the memory system can follow the Open NAND Flash Interface (ONFi) standard
- the local format can follow the asynchronous flash memory device memory control signal format.
- ONFi 2.0 Open NAND Flash Interface
- the global format can follow the serial data format compatible with the serial flash memory device of Figures 2A and 2B and the local format can follow the ONFi 2.0 Specification format.
- FIG. 3A is a block diagram of a composite memory device, according to a present embodiment.
- composite memory device 100 includes a bridge device 102 connected to four discrete memory devices 104.
- Each of the discrete memory devices 104 can be asynchronous flash memory devices having a memory capacity of 8Gb, for example, but any capacity discrete flash memory device can be used instead of 8Gb devices.
- composite memory device 100 is not limited to having four discrete memory devices. Any suitable number of discrete memory devices can be included, when bridge device 102 is designed to accommodate the maximum number of discrete memory devices in the composite memory device 100.
- Composite memory device 100 has an input port GLBJN for receiving a global command, and an output port GLB-OUT for passing the received global command and read data.
- Figure 3B is a schematic illustrating the hierarchy of a global command, according to a present embodiment.
- the global command 110 includes global memory control signals (GMCS) 112 having a specific format, and an address header (AH) 114. These global memory control signals 112 provide a memory command and command signals, such as the memory control signals for the serial interface flash memory device of Figure 2B.
- the address header 114 includes addressing information used at the system level and the composite memory device level.
- This additional addressing information includes a global device address (GDA) 116 for selecting a composite memory device to execute an op-code in the memory command, and a local device address (LDA) 118 for selecting a particular discrete device within the selected composite memory device to execute the op-code.
- GDA global device address
- LDA local device address
- the global command includes all the memory control signals corresponding to one format, and further addressing information which may be required for selecting or controlling the composite memory device or the discrete memory devices therein.
- bridge device 102 does not execute the op-code or access any memory location with the address information.
- the bridge device 102 uses the global device address 116 to determine if it is selected to convert the received global memory control signals 112.
- bridge device 102 then uses the local device address 118 to determine which of the discrete memory devices the converted global memory control signals 112 is sent to.
- bridge device 102 includes four sets of local I/O ports (not shown), each connected to a corresponding discrete memory device, as will be discussed later. Each set of local I/O ports includes all the signals that the discrete memory device requires for proper operation, and thereby functions as a local device interface.
- Read data is provided by any one flash memory device 104 from composite memory device 100, or from a previous composite memory device.
- the bridge device 102 can be connected to a memory controller of a memory system, or to another bridge device of another composite memory device in a system of serially interconnected devices.
- the input port GLBJN and output port GLB-OUT can be package pins, other physical conductors, or any other circuits for transmitting/receiving the global command signals, read data to the composite memory device 100 and write data from the composite memory device 100, and in particular, to and from bridge device 102.
- the bridge device 102 therefore has corresponding connections to the input port GLBJN and the output port GLB-OUT to enable communication with an external controller, such as memory controller 22 of Figure 2A, or with the bridge devices from other composite memory devices in the system. As will be shown in the example embodiment of Figure 5, many composite memory devices can be connected serially to each other.
- FIG 4 is a block diagram of a bridge device 200 in accordance with an embodiment, which corresponds to the bridge device 102 shown in Figure 3A.
- the bridge device 200 has a bridge device input/output interface 202, a memory device interface 204, and a format converter 206.
- the format converter 206 includes a command format converter 208 for converting global memory control signals, which include global commands and global command signals in a first format to a second format, and a data format converter 210 for converting data between the first format and the second format.
- the command format converter 208 further includes a state machine (not shown) for controlling the discrete memory devices, such as discrete memory devices 104 of Figure 3A in accordance with the second format in response to the global memory control signals in the first format.
- the bridge device input/output interface 202 communicates with external devices, such as for example, with a memory controller or another composite memory device.
- the bridge device input/output interface 202 receives global commands from a memory controller or another composite memory device in the global format, such as for example in a serial command format.
- logic in the input/output interface 202 processes the global device address 116 of the global command 110 to determine if the global command 110 is addressed to the corresponding composite memory device, and processes the local device address 118 in the global command 110 to determine which of the discrete memory devices of the corresponding composite memory device is to receive the converted command, which includes an op-code and optional row and column addresses and optional write data.
- the command format converter 208 in the format converter 206 converts the global memory control signals 112, which provides the op-code and command signals and any row and address information from the global format to the local format, and forwards it to the memory device interface 204.
- the bridge device operates internally with a parallel data format. If write data is provided to bridge device input/output interface 202 in a serial data format for example, then bridge device input/output interface 202 includes serial-to-parallel conversion circuitry for providing bits of data in parallel format. For read operations, bridge device input/output interface 202 includes parallel-to-serial conversion circuitry for providing bits of data in serial format for output through the GLB-OUT output port.
- command format converter 208 can include control logic at least substantially similar to that of a memory controller of a memory system, which is used for controlling the discrete memory devices with memory control signals having a native format.
- command format converter 208 may include the same control logic of memory controller 14 of Figure 1A if the discrete memory devices are asynchronous memory devices, such as memory devices 16-1 to 16-4. This means that the control logic in command format converter 208 provides the timing and sequencing of the memory control signals in the local format native to the discrete memory devices.
- the data format converter 210 in the format converter 206 converts the data from the global format to the local format, and forwards it to the memory device interface 204.
- the bits of read or write data do not require logical conversion, hence data format converter 210 ensures proper mapping of the bit positions of the data between the first data format and the second data format.
- Format converter 206 functions as a data buffer for storing read data from the discrete memory devices or write data received from the bridge device input/output interface 202. Therefore, data width mismatches between the global format and the local format can be accommodated. Furthermore, different data transmission rates between the discrete memory devices and the bridge device 200, and the bridge device 200 and other composite memory devices are accommodated due to the buffering functionality of data format converter 210.
- the memory device interface 204 then forwards or communicates the converted command in the local command format to the discrete memory device selected by the local device address 118 in the global command 110 of Figure 3B.
- the converted command is provided via a command path 212.
- command path 212 includes i sets of dedicated local I/O ports LC-i, or channels, connected between each discrete memory device in the composite memory device and the memory device interface 204.
- the variable i is an integer number corresponding to the number of discrete memory devices in the composite memory device.
- each LC-i channel includes all the ports shown in Figure 1 B and Table 1.
- a global command such as a global read command arriving at the bridge device input/output interface 202 through input port GLBJN.
- This global read command includes the global memory control signals that provide an op-code and row and column information in the global format, for data to be read out from a discrete memory device 104 connected to the bridge device 200.
- the global command is received synchronously with the system clock, such as clock CK previously shown in Table 2.
- the command format converter 208 converts the global read command into the local format compatible with the discrete memory device 104 on which the read data command is to be executed.
- the composite memory device can have an assigned address.
- the local device address 118 of the global read command is forwarded to the memory device interface 204, and the converted read data command is provided to the discrete memory device addressed by the local device address via a corresponding set of local I/O ports of the command path 212.
- the local command is provided synchronously with a memory clock, which can have a frequency less than the system clock.
- some discrete memory devices such as NAND flash memory devices, are asynchronous and do not receive a clock signal.
- the memory control signals provided to such asynchronous memory devices have rising and falling edges generated synchronously to a clock, which in the present embodiments is the memory clock.
- Data referred to as read data is read from the selected discrete memory device 104 and provided to the data format converter 210 via the same local I/O ports of memory device interface 204 in the local format and at the memory clock frequency.
- the data format converter 210 then converts the read data from the local format to the global format and provides the read data from the selected discrete memory device 104 to the memory controller through output port GLB-OUT of bridge device interface 202 at the system clock frequency.
- Bridge device interface 202 includes internal switching circuitry for coupling either the read data from data format converter 210 or the input port GLBJN to the output port GLB-OUT.
- Figure 5 is a memory system having a plurality of composite memory devices connected in series in a ring topology with a memory controller, according to a present embodiment.
- each of the shown composite memory devices has the architecture shown in Figure 3A, which can have the bridge device 200 of Figure 4.
- Memory system 300 of Figure 5 is similar to the serial memory system 20 of Figure 2A.
- Memory system 300 includes a memory controller 302 and composite memory devices 304-1 to 304-j, where j is an integer number.
- the individual composite memory devices 304-1 - 304-j are serially interconnected with the memory controller 302.
- composite memory device 304-1 is the first composite memory device of memory system 300 as it is connected to an ouput port Sout of memory controller 302, and memory device 304-j is the last device as it is connected to an input port Sin of memory controller 302.
- Composite memory devices 304-2 to 304-7 are then intervening serially connected memory devices connected between the first and last composite memory devices.
- the Sout port provides a global command in a global format.
- the Sin port receives read data in the global format, and the global command as it propagates through all the composite memory devices.
- Each of the composite memory devices shown in Figure 5 is similar to the composite memory device 100 shown in Figure 3A.
- Each of the composite memory devices has a bridge device 102 and four discrete memory devices 104.
- each bridge device 102 in each of the composite memory device is connected to respective discrete memory devices 104, and to either the memory controller 302 and/or a previous or subsequent composite memory device in the serial- ring topology or serial interconnection configuration.
- the function of each composite memory device 304-1 to 304-j is the same as previously described for the embodiments of Figure 3A and Figure 4.
- each composite memory device is assigned a unique global device address.
- This unique global device address can be stored in a device address register of the bridge device 102, and more specifically in a register of the input/output interface 202 of the bridge device block diagram shown in Figure 4.
- This address can be assigned automatically during a power up phase of memory system 300 using a device address assignment scheme, as described in commonly owned U.S. Patent Publication No. 20080192649 entitled "Apparatus and Method for Producing Identifiers Regardless of Mixed Device Type in a Serial Interconnection".
- each composite memory device 304 can include a discrete device register for storing information about the number of discrete memory devices in each composite memory device 304.
- the memory controller can query each discrete device register and record the number of discrete memory devices within each composite memory device.
- the memory controller can selectively address individual discrete memory devices 104 in each composite memory device 304 of memory system 300.
- memory system 300 is a serially connected memory system similar to the system shown in Figure 2, and each of the discrete memory devices 104 are assumed to be asynchronous NAND flash memory devices. Therefore the bridge devices 102 in each of the composite memory devices 304-1 to 304-j are designed for receiving global commands in a global format issued by memory controller 302, and converting them into a local format compatible with the NAND flash memory devices. It is further assumed that memory system has powered up and addresses for each composite memory device have been assigned.
- the memory controller 302 issues a global command from its Sout port, which includes a global device address 116 corresponding to composite memory device 304-3.
- the first composite memory device 304-1 receives the global command, and its bridge device 102 compares its assigned global device address to that in the global command. Because the global device addresses mismatch, bridge device 102 for composite memory device ignores the global command and passes the global command to the input port of composite memory device 304-2. The same action occurs in composite memory device 304-2 since its assigned global device address mismatches the one in the global command. Accordingly, the global command is passed to composite memory device 304- 3.
- the bridge device 102 of composite memory device 304-3 determines a match between its assigned global device address and the one in the global command.
- bridge device 102 of composite memory device 304-3 proceeds to convert the local memory control signals into the local format compatible with the NAND flash memory devices.
- the bridge device then sends the converted command to the NAND flash memory device selected by the local device address 118, which is included in the global command.
- the selected NAND flash device then executes the operation corresponding to the local memory control signals it has received.
- bridge device 102 of composite memory device 304-3 While bridge device 102 of composite memory device 304-3 is converting the global command, it passes the global command to the next composite memory device. The remaining composite memory devices ignore the global command, which is eventually received at the Sin port of memory controller 302. If the global command corresponds to a read operation, the selected NAND flash memory device of composite memory device 304-3 provides read data to its corresponding bridge device 102 in the local format. Bridge device 102 then converts the read data into the global format, and passes it through its output port to the next composite memory device. The bridge devices 102 of all the remaining composite memory devices pass the read data to the Sin port of memory controller 302.
- a system clock can be provided to memory controller 302 and each of the composite memory devices in parallel by a discrete clock generator. Alternately, the memory controller can provide the system clock to all the composite memory devices in parallel. In a further alternate embodiment, all the composite memory devices receive and provide the system clock serially, in a source synchronous format. In any of these embodiments, each bridge device 102 receives the system clock for generating a local memory clock.
- the memory clock for each composite memory device can be referred to as a "local" memory clock since different composite memory devices in memory system 300 can be configured to operate with different memory clock frequencies.
- the global command is propagated to all the composite memory devices in memory system 300.
- the bridge devices 102 include additional logic for inhibiting the global command from propagating to further composite memory devices in the memory system 300. More specifically, once the selected composite memory device determines that the global device is addressed to it, its corresponding bridge device 102 drives its output ports to a null value, such as a fixed voltage level of VSS or VDD for example. Therefore, the remaining unselected composite memory devices conserve switching power since they would not execute the global command. Details of such a power saving scheme for a serially connected memory system are described in commonly owned U.S. Patent Publication No. 20080201588 entitled "Apparatus and Method for Producing Identifiers Regardless of Mixed Device Type in a Serial Interconnection", the contents of which are incorporated by reference in their entirety.
- each composite memory device 304-1 to 304-n having the same type of discrete memory devices therein, such as for example asynchronous NAND flash memory devices.
- This is referred to as a homogeneous memory system because all the composite memory devices are the same.
- a heterogeneous memory system is possible, where different composite memory devices have different types of discrete memory devices.
- some composite memory devices include asynchronous NAND flash memory devices while others can include NOR flash memory devices.
- all the composite memory devices follow the same global format, but internally, each composite memory device has its bridge device 200 designed to convert the global format memory control signals to the local format memory control signals corresponding to the NOR flash memory devices or NAND flash memory devices.
- a single composite memory device could have different types of discrete memory devices.
- a single composite memory device could include two asynchronous NAND flash memory devices and two NOR flash memory devices.
- This "mixed" or “heterogeneous” composite memory device can follow the same global format described earlier, but internally, its bridge device can be designed to convert the global format memory control signals to the local format memory control signals corresponding to the NAND flash memory devices and the NOR flash memory devices.
- Such a bridge device can include one dedicated format converter for each of the NAND flash memory device and the NOR flash memory device, which can be selected by previously described address information provided in the global command.
- the address header 114 includes addressing information used at the system level and the composite memory device level.
- This additional addressing information includes a global device address (GDA) 116 for selecting a composite memory device to execute an op-code in the memory command, and a local device address (LDA) 118 for selecting a particular discrete device within the selected composite memory device to execute the op-code.
- GDA global device address
- LDA local device address
- the bridge device can have a selector that uses LDA 118 to determine which of the two format converters the global command should be routed to.
- the bridge device 200 can be designed to receive global memory control signals having one format, for providing local memory control signals having the same format to the discrete memory devices.
- such a composite memory device is configured to receive memory control signals that are used to control the discrete memory devices.
- Such a configuration allows multiple discrete memory devices to each function as a memory bank operating independently of the other discrete memory device in the composite memory device. Therefore, each discrete memory device can receive its commands from the bridge device 200, and proceed to execute operations substantially in parallel with each other. This is also referred to as concurrent operations.
- the design of bridge device 200 is therefore simplified, as no command conversion circuitry is required.
- the previously described embodiments illustrate how discrete memory devices in a composite memory device can respond to a foreign command format. This is achieved through the bridge device that converts the received global command into a native command format compatible with the discrete memory devices.
- a serial command format can be converted into an asynchronous NAND flash format.
- the embodiments are not limited to these two formats, as any pair of command formats can be converted from one to the other.
- an advantage of the composite memory device is that each can be operated at a frequency to provide a data throughput that is significantly higher than that of the discrete memory devices within it.
- each discrete memory device 104 is a conventional asynchronous NAND flash memory device, its maximum data rate per pin is about 40Mbps.
- the bridge device 102 which receives at least one data stream synchronously with a clock, can be configured to operate at a frequency of 166MHz, resulting in a minimum 333Mbps data rate per pin.
- the operating frequency can be 200MHz or higher to realize even higher data rates per pin. Therefore, in a larger system that uses memory system 300 of Figure 5 to store data, high speed operations can be obtained.
- An example application is to use memory system 300 as a mass storage medium in a computing system or other application which demands high performance and large storage capacity.
- bridge device 102 pre-fetches and stores a predetermined amount of read data from a selected discrete memory device 104 during a read operation from the corresponding composite memory device 100.
- the read data is transferred to the bridge device 102 at the maximum allowed data rate for the discrete memory device 104.
- bridge device 102 receives the program data at its maximum data rate and stores it.
- Bridge device 102 then programs the stored data in the selected discrete memory device 104 at the maximum allowed data rate for the discrete memory device 104.
- the maximum allowed data rate for reading data and programming data from or to the discrete memory device may be standardized or outlined in its documented technical specifications.
- FIG. 4 generally outlines the functional blocks of bridge device 200
- Figure 6A shows a more detailed block diagram of bridge device 200 according to a present embodiment.
- Bridge device 400 includes four main functional blocks, which correspond to those shown for bridge device 200 of Figure 4. These are the bridge device system input/output interface 402, the memory device interface 404, the command format converter 406 and the data format converter 408. These blocks have functions which correspond to blocks 202, 204, 208 and 210 of Figure 4 respectively.
- the embodiment of Figure 6A is applied to an example where the composite memory device includes conventional NAND flash memory devices, and the composite memory device itself is configured to have a serial interface corresponding to the serial interface flash memory device of Figure 2B. Following is a detailed description of blocks 402, 404, 406 and 408.
- the bridge device system input/output interface 402 receives global memory control signals having one format, and passes the received global memory control signals and read data from the discrete memory devices, to subsequent composite memory devices.
- these global memory control signals are the same as the identified memory control signals in Figure 2B, which are described in Table 2.
- the global command GLBJN includes global memory control signals CSI, DSI and D[j]
- the passed global command GLB-OUT includes echo versions of the global memory control signals CSI, DSI and D[j] referred to as CSO, DSO and Q[j] respectively.
- the aforementioned global memory control signals CSI, DSI and D[j] are considered a global command since they are required to enable the bridge device 400 to execute operations.
- the bridge device system input/output interface 402 has input and output ports for receiving the signals previously outlined in Table 2.
- This block includes well known input buffer circuits, output buffer circuits, drivers, control logic used for controlling the input and output buffer circuits, and routing of required control signals to the command format converter 406 and routing of different types of data to and from the data format converter 408.
- types of data include, but are not limited to, address data, read data, program or write data and configuration data for example.
- the data received at input ports DO] and provided at output ports QO] can be in either the single data rate (SDR) or double data rate (DDR) formats.
- bridge device system input/output interface 402 includes a control signal flow through path that couples the input ports receiving control signals CSI and DSI to corresponding output ports providing echo signals CSO and DSO.
- a data signal flow through path couples the input ports receiving input data stream(s) DO] to corresponding output ports providing output data stream(s) Q[J].
- the output data stream(s) can be either the input data stream(s) received at D[j], or read data provided from a discrete memory device connected to bridge device 400.
- bridge device 400 receives differential clocks CK and CK# in parallel with other bridge devices in the memory system.
- differential clocks CK and CK# are source synchronous clock signals that are provided from the memory controller, such as memory controller 302 of Figure 5, and passed serially from one composite memory device to another via their respective bridge devices.
- bridge device 400 includes a clock flow through path to couple the differential clocks CK and CK# received at input ports to corresponding output ports (not shown).
- Patent Application Publication Number 20090039927 titled "CLOCK MODE DETERMINATION IN A MEMORY SYSTEM” which is incorporated herein by reference, discloses circuits for enabling a serially connected memory device to operate with parallel or source synchronous clocks. Therefore, the techniques taught in U.S. Patent Application Publication Number 20090039927 can be equally applied to the bridge device 400.
- the memory device interface 404 provides local memory control signals following a native or local format compatible with the discrete memory devices. This format may be different than the format of the global memory control signals.
- memory device interface 404 has sets of local memory control signals for controlling a corresponding number of conventional NAND flash memory devices, where each set of local memory control signals includes the signals previously outlined in Table 1.
- each set of local memory control signals provides a local command to a corresponding NAND flash memory device in the composite memory device through the LC port. Therefore, if there are k NAND flash memory devices in the composite memory device, then there are k sets of local commands.
- the memory device interface 404 has output ports for providing the local memory control signals previously outlined in Table 1 , and bidirectional data ports I/O[i] for providing write data and receiving read data.
- This block includes well known input buffer circuits, output buffer circuits, drivers and control logic used for controlling the input and output buffer circuits, and routing of data to and from the data format converter 408.
- types of data include, but are not limited to, address data, read data, and program or write data for example.
- the command format converter 406 includes at least an op-code register 410, a global device address (GDA) register 412 and a logic and op-code converter block 414.
- the data format converter 408 includes a memory 416, a timing control circuit 418 for memory 416, address registers 420, a frequency controller 422, data input path circuitry 424 and data output path circuitry 426.
- the frequency controller 422 receives the system clock clk_int, and generates a variable clock clk_div, referred to as the memory clock.
- Logic and op-code converter block 414 receives memory clock clk_div, while the remaining circuits receive the system clock clk_int.
- the circuits connected to the bridge device system input/output interface 402, which receive control signals and data, or provide control signals and data, operate at the system clock frequency of clk_int.
- Some of these circuits operate exclusively under the system clock, such as the op-code register 410, the GDA register 412, the address registers 420, the data input path circuits 424 and the data output path circuits 426.
- the logic and op-code converter block 414 controls memory 416 for data access operations where data is transferred between memory 416 and memory device interface 404. These data access and transfer operations are executed under the memory clock clk_div.
- Memory operations between memory 416 and bridge device system input/output interface 402 operate under the system clock clk_int.
- the logic and op-code converter block 414 has logic operating under the system clock frequency of clk_int to properly control memory timing and control circuit 418 and the other aforementioned circuits that receive clk_int.
- the command format converter 406 receives the global memory control signals corresponding to a global command, and performs two primary functions. The first is an op-code conversion function to decode the op-codes of the global command to provide local memory control signals in a local command which represents the same operation specified by the global command. This op-code conversion function is executed by internal conversion logic (not shown).
- the second primary function is a bridge device control function to generate internal control signals for controlling other circuits of bridge device 400, in response to the global command.
- This bridge device control function is provided by an internal state machine (not shown) that is pre-programmed to respond to all the valid global commands.
- the GDA register 412 stores a predetermined and assigned composite memory device address, referred to as a global device address.
- This global device address permits a memory controller to select one composite memory device of the plurality of composite memory devices in the memory system to act on the global command that it issues. In otherwords, the two aforementioned primary functions are executed only when the composite memory device is selected.
- the global command 110 includes a global device address field 116 for selecting a composite memory device for responding to the global memory control signals (GMCS) 112.
- the global command is received as one or more serial bitstreams via data input port D[j], where the global device address is the first part of the global command 110 received by the bridge device 400.
- Comparison circuitry (not shown) in the logic and op-code converter block 414 compares the global device address in global device address field 116 of the global command 110 to the assigned global device address stored in GDA register 412.
- logic and opcode converter block 414 ignores the subsequent global memory control signals received by bridge device system input/output interface 402. Otherwise, logic and op-code converter block 414 latches the op-code in the global command 110 in op-code register 410. Once latched, this op-code is decoded so that the bridge device control function is executed.
- the latched op-code is decoded by decoding circuitry within logic and op-code converter block 414, which then controls routing circuitry within bridge device system input/output interface 402 to direct subsequent bits of the global command 110 to other registers in bridge device 400.
- This is required since the global command 110 may include different types of data depending on the operation that is to be executed.
- the logic and op-code converter block 414 will know based on the decoded op-code, the structure of the global command before the bits have arrived at bridge device system input/output interface 402.
- a read operation includes block, row and column address information which is latched in respective registers.
- An erase operation on the other hand does not require row and column addresses, and only requires a block address. Accordingly, the corresponding op-code instructs the logic and op-code converter block 414 the time at which specific types of address data are to arrive at the bridge device system input/output interface 402 so that they can be routed to their respective registers.
- conversion circuitry generates the local memory control signals, having the required logic states, sequence and timing which would be used to execute the same operation in the NAND flash memory device.
- logic and op-code converter block 414 converts the address data stored in the address registers 420 for issuance as part of the local command through the I/O[i] ports.
- the addresses may access a virtual address space in the NAND flash memory device. This virtual address space is related to the virtual address space in memory 416. Therefore logic and op-code converter block 414 includes configurable logic circuits for converting the addresses into addresses compatible with the NAND flash memory device. The details of how the virtual address space is accessed are not relevant to the present embodiments, and thus are not discussed any further.
- memory 416 is a dual port memory, where each port has a data input port and a data output port.
- Port A has data input port DIN_A and data output port DOUT_A
- Port B has data input port DIN_B and data output port DOUT_B.
- Port A is used for transferring data between memory 416 and the discrete memory devices it is coupled to.
- Port B on the other hand is used for transferring data between memory 416 and the DO] and QO] ports of bridge device system input/output interface 402.
- Port A is operated at the memory clock frequency
- Port B is operated at the system clock frequency.
- Circuits within logic and op-code converter block 414 includes control logic for controlling timing of the application and decoding of addresses, data sensing and data output and input through ports DOUT_A and DIN_A respectively, in synchronization with the memory clock frequency.
- the global command instructs the logic and op-code converter block 414 to select a discrete memory device for which the read or write operations are to be executed on, via a set of local memory control signals (LC-1 to LC-k).
- the local device address (LDA) 118 field of global command 110 is used by logic and op-code converter block 414 to determine which NAND flash memory device is to receive the generated local memory control signals. Therefore, any one set of LC-1 to LC-i are driven with the generated memory control signals in response to a global command 110.
- the global command further instructs logic and op-code converter block 414 to execute the bridge device control function for controlling any required circuits within bridge device 400 that complement the operation. For example, data input path circuitry 424 is controlled during a write operation to load or write the data received at DO] into memory 416, before the local memory control signals are generated.
- the latched op-code can subsequently enable the op-code conversion function for generating the local memory control signals in a local command.
- logic and op-code converter block 414 controls memory timing and control circuit 418, which in turn controls the timing for writing or reading data from a location in memory 416 based on addresses stored in address registers 420. Further details of these circuits is now follows.
- the data format converter 408 temporarily stores write data received from the bridge device system input/output interface 402 to be programmed into the NAND flash memory devices, and temporarily stores read data received from the NAND flash memory devices to be output from bridge device system input/output interface 402.
- Memory 416 is functionally shown as a single block, but can be logically or physically divided into subdivisions such as banks, planes or arrays, where each bank, plane or array is matched to a NAND flash memory device. More specifically, each bank, plane or array is dedicated to receiving read data from a page buffer or providing write data to the page buffer of one NAND flash memory device.
- Memory 416 can be any volatile memory, such as SRAM for example.
- timing control circuit 418 is provided to ensure proper operation of memory 416 based on the design specifications of memory 416. For example, timing of the application and decoding of addresses, data sensing and data output and input are controlled by timing control circuit 418.
- the addresses which can include row and column addresses, can be provided from address registers 420, while write data is provided via data input path circuits 424 and read data is output via data output path circuits 426.
- the data input path circuits 424 receives input data from input ports D[j], and because the data is received in one or more serial bitstreams switching logic is included for routing, or distributing, the bits to the various registers, such as the op-code register 410 and address registers 420.
- Other registers such as data registers or other types of registers, may also receive bits of the input data once the op-code has been decoded for the selected composite memory device.
- data format conversion circuits convert the data which was received in a serial format into a parallel format.
- Write data latched in the data registers are written to memory 416 via port DIN_B for temporary storage under the control of timing control circuit 418, and later output to a NAND flash memory device for programming using the proper command format as determined by logic and op-code converter block 414.
- memory 416 After memory 416 receives read data from a NAND flash memory device from the I/O[i] ports of one set of local memory control signals, this read data is read out from memory 416 via DOUT_B and provided to output ports Q[j] via data output path circuits 426.
- Data output path circuits 426 includes parallel to serial conversion circuitry (not shown) for distributing the bits of data onto one or more serial output bitstreams to be output from output ports QO]. It is noted that data input path circuits 424 includes a data flow through path 428 for providing input data received from the D[j] input ports directly to the data output path circuits 426, for output on output ports Q[J].
- the data flow-through path 428 ensures that every composite memory device 304 receives the global command issued by the memory controller 302. Furthermore, any read data provided by one composite memory device 304 can be passed through any intervening composite memory devices to the memory controller 302.
- timing control circuit 418 includes control logic for controlling timing of the application and decoding of addresses, data sensing and data output and input through ports DOUT_B and DIN_B respectively, in synchronization with the system clock frequency.
- the control logic of timing control circuit 418 can be similar to the control logic within logic and op-code converter block 414 that controls operations of memory 416 at the memory clock frequency. Hence logic and op-code converter block 414 can control memory 416 directly.
- bridge device 400 has two different clock domains, where one clock domain includes circuits which operate at the system clock frequency of clk_int and another clock domain includes circuits which operate at the memory clock frequency of clk_div.
- Figure 6B is a functional block diagram representation of the high speed serial interface bridge device embodiment of Figure 6A, showing the different clock domains within the device. In Figure 6B, there is a first clock domain 450 and a second clock domain 452.
- the first clock domain 450 includes circuits operating with the memory clock of clk_div, for interfacing to the discrete memory devices which either operate at or near the frequency of clk_div, or operate at a data rate that corresponds to clk_div. In otherwords, the circuits of the first clock domain 450 operate in synchronization with the memory clock clk_div.
- the second clock domain 452 includes circuits operating with the system clock clk_int, for interfacing to the memory controller or other controlling device that operates
- the circuits of the second clock domain 452 operate in synchronization with the system clock clk_int.
- FIG. 6B some of the circuit blocks shown in Figure 6A have been merged together into a single functional block, and some arrows are shown to indicate the general directional flow of data or information.
- Data I/O Path block 454 includes circuits 424 and 426 of Figure 6A
- Registers block 456 includes registers 410, 412 and 420.
- Some of the circuit blocks shown in Figure 6A have been illustrated with internal blocks.
- logic and OP code converter 414 is shown to include a first logic block 458 and a second logic block 460.
- First logic block 458 can include logic circuits for issuing the internal control signals to control memory 416, and logic circuits for executing the aforementioned conversion of commands from one format to a format compatible with the discrete memory devices.
- the second logic block 460 can include logic circuits for controlling the other circuits of the bridge device 400 in response to a received command at interface 402.
- the function of logic and OP code converter 414 has been previously described with respect to the other circuits shown in Figure 6A.
- memory 416 is shown to include a first Memory I/O Path block 462 and a second Memory I/O Path block 464.
- memory 416 can be a dual port memory. Therefore, the first Memory I/O Path block 462 operating under the control of first logic block 458 transfers data to and from its memory array at the memory clock frequency of clk_div.
- the second Memory I/O Path block 464 operates under the control of timing control circuit 418. Hence data is transferred to and from its memory array at the system clock frequency of clk_int.
- the first clock domain 450 includes interface 404, first logic block 458 and first Memory I/O Path block 462. The circuits of these blocks operate in synchronization with the memory clock of clk_div.
- the second clock domain 452 includes interface 402,
- Figure 6B is an example embodiment showing specific circuit blocks used in bridge device 400 which are part of either the first or second clock domains. It is noted that any circuit that operates under the memory clock is considered part of the first clock domain 450, while any circuit that operates under the system clock is considered part of the second clock domain 452.
- the timing control circuit 418 is designed to operate at a preset maximum system clock frequency, but may be operated at frequencies lower than the preset maximum frequency due to system constraints. In this case for example, if a fixed frequency divider ratio is used to generate the memory clock for the discrete memory devices, the discrete memory devices would also be operating at frequencies less than their respective maximum clock frequency. In a best case scenario for example, if the bridge chip is capable of data rates of 266Mb/s using a 133MHz clock, and the discrete memory devices are capable of operating at 40MHz, a fixed divide ratio of 3.5 could be employed to produce a 38MHz clock for the discrete memory devices, which in the present example is very close to the maximum allowable speed for the discrete memory devices.
- the time required for completion of a data read command is the sum of the time required for an internal read operation in the discrete memory device plus the time required to transfer the data from the discrete memory device to the bridge chip.
- a typical single-bit-per-cell NAND flash device requires 25 ⁇ s for the internal read and 10O ⁇ s to transfer a 4kB page over an 8-bit interface at 40MHz. Therefore the total read time is 125 ⁇ s.
- the system clock is reduced to 66MHz for example, the fixed divide ratio of 3.5 would produce a 19MHz clock for the discrete memory device.
- the transfer time for a 4kB page would increase to more than 200 ⁇ s and the total read time would be more than 225 ⁇ s, which is well below the full capability of the discrete memory device. Therefore, a configurable frequency divide ratio can be used to ensure that the discrete memory devices are operated closer to the maximum allowable 40MHz frequency, thereby reducing the total read time.
- the circuits of the bridge device can be operated at the maximum system clock frequency that they were designed to operate at.
- the discrete memory devices can be operated at their maximum memory clock frequency that they were designed to operate at. Therefore the frequency controller 422 of Figure 6A generates the memory clock having a frequency that is a ratio of the system clock frequency.
- the ratio between the memory clock frequency and the system clock frequency is configurable to be any one of a preset number of fixed ratios. With each preset ratio, a different set of memory clock frequencies can be generated for each system clock frequency. Table 3 below provides an example illustrating six possible clock divide ratios, and the resulting memory clock frequency clk_div for each clock divide ratio based on a specific system clock frequency clk_int. Different clock divide ratios, and different system clock frequencies other than those shown in Table 3 can be used.
- the system clock frequencies shown in Table 3 are examples of standardized frequencies presently in use in the semiconductor industry, however the embodiments described herein can be applied to any set of frequencies.
- the divide ratio of 3.5 has been selected for this example based on the maximum example system clock frequency of 133MHz, where the known maximum operating frequency of a NAND flash memory device is 40MHz.
- the other clock divide ratios of 1.0, 1.5, 2.0, 2.5 and 3.0 are selected to maximize the memory clock frequency for the listed lower system clock frequencies.
- a programmable frequency allows the data transfer time between discrete memory device and bridge chip to be minimized regardless of system clock frequency.
- system clock frequencies greater than 40MHz can have corresponding memory clock frequencies exceeding 40MHz when certain clock divide ratios are applied to it. These memory clock frequencies are not used for the example NAND flash memory device, and thus noted with “NA” for “not applicable”. Conversely, system clock frequencies below 125MHz can have several different options for a memory clock frequency, depending on the clock divide ratio that is selected. If for example, low power consumption for the NAND flash memory device for a given duration of time is desired, then the lowest possible memory clock frequency is selected, provided such an option is available at the selected system clock frequency. In an alternate application, the maximum memory clock frequency of Table 3 can be set based on the highest maximum operating frequency amongst a group of possible types of discrete memory devices that can be used with the bridge device.
- Table 3 can be implemented as a lookup table in a host system or a memory controller. Therefore, a particular clock divide ratio can be selected when a system clock frequency is known and the desired memory clock frequency is known.
- the frequency controller 422 of Figure 6A for generating 0.5 increment clock divide ratios is a simple logic circuit that minimizes the number of transistors, thereby minimizing silicon area and overall manufacturing cost of the bridge device. While the trade-off in using such a frequency controller circuit appears to be a slight reduction in the memory clock frequency relative to a desired maximum value, the resulting performance impact is minimal.
- FIG. 7 is a block diagram showing the clock path between the differential clock input ports CK and CK# of bridge device system input/output interface 402, and an embodiment of frequency controller 422 of Figure 6A.
- Differential clock signals CK and CK# have the system clock frequency, and are received by respective clock input buffers 500 and 502.
- the buffered clock signals are both provided to an internal clock generator 504, which generates a single internal system clock clk_int having the same system clock frequency as CK and CK#.
- clk_int is a system clock used by the presently described bridge device embodiments.
- Internal clock generator 504 can receive other control signals to disable the generation of clk_int under certain conditions, such as a power savings mode of operation for example.
- System clock clk_int is provided to frequency controller 506, which corresponds to frequency controller 422 of Figure 6A.
- Frequency controller 506 receives and converts the system clock clk_int into a memory clock clk_div, having frequency that is a selected ratio of the system clock frequency.
- frequency controller 506 includes a path control circuit 508, a number of clock dividers 510, and a selector 512.
- the path control circuit 508 receives a frequency divide ratio (FDR) code, which in the present example is a three bit code represented by bits S1 , S2 and S3.
- the FDR code can be any number of bits. This code is provided in a global command received by bridge device system input/output interface 402, as will be described later in further detail.
- the FDR code is stored in a register 514 and held therein until a new FDR code is provided during normal operation, or after a reset event.
- path control circuit 508 functions as a demultiplexer for routing or selectively coupling the received clk_int system clock to one of the clock dividers 510 in response to the FDR code.
- the path control circuit 508 can select up to eight different paths.
- the path control circuit 508 includes well known decoding circuitry for executing this 1 of 8 selection functionality.
- there are a total of six different clock dividers 510 where each clock divider 510 divides the system clock by a different ratio to provide a respective intermediate clock signal.
- each of the six clock dividers 510 provides one of the divide ratios 1.0, 1.5, 2.0, 2.5, 3.0 and 3.5.
- the outputs of each clock divider 510 is provided to selector 512, which selects which clock divider output to pass as clk_div.
- Selector 512 receives the same FDR code as path control circuit 508, and can have the same decoding logic formed therein.
- the frequency controller 506 is scalable, meaning that more than six clock dividers 510 can be included in the circuit, depending on the number of clock divide ratios which are desired. Accordingly, the FDR code can be scaled to include the appropriate number of bits that are required for controlling path control circuit 508 to couple clk_int to one of the clock dividers 510. Alternately, path control circuit 508 can be omitted such that the system clock clk_int is provided in parallel to all clock dividers 510.
- Path control circuit 508 can be implemented with any routing circuitry which selectively couples the received clk_int system clock to one specific output.
- each clock divider 510 can be implemented with any circuit that achieves the desired result of reducing the system clock frequency by a fixed ratio. While the embodiment of Figure 7 is simple to implement, having individual clock dividers 510 and selector 512 may utilize more silicon area than desired. Furthermore, since only one clock divider 510 is ever used for any selected clock divide ratio, the remaining unselected clock dividers 510 are unused, and may contribute to static current leakage. Therefore the occupied area by the unselected clock dividers 510 is not efficiently used.
- FIG 8 is a block diagram showing the clock path between the differential clock input ports CK and CK# of bridge device system input/output interface 402, and an alternate embodiment of frequency controller 422 of Figure 6A.
- Input buffers 500 and 502, and internal clock generator 504 have been previously described in Figure 7.
- frequency controller 600 includes a clock divider 602 and clock combining logic 604. The function of frequency controller 600 is the same as that of frequency controller 506 of Figure 7, which is to provide a memory clock clk_div having a frequency that is a ratio of the system clock clk_int.
- clock divider 602 includes configurable logic loop circuits that generate a first set of intermediate clock signals and a second set of intermediate clock signals.
- the first intermediate set of clock signals are generated in response to a rising edge of system clock clk_int, while the second intermediate set of clock signals are generated in response to a falling edge of system clock clk_int.
- the first intermediate clock signals are rising edge triggered and the second intermediate clock signals are falling edge triggered.
- Both the first and second set of intermediate clock signals are generated by independent configurable logic loop circuits, where the number of logic elements in each loop is configurable in response to the FDR code. By changing the number of logic elements in each loop, the frequency of the intermediate clock signals is adjusted.
- Clock divider 602 receives the FDR code, which in the present example is a three bit code represented by bits S1 , S2 and S3. This code is stored in a frequency register 606.
- decoding logic within clock divider 602 generates one of six different ratio selector signals corresponding to the divide ratios of 1.0, 1.5, 2.0, 2.5, 3.0 and 3.5. These ratio selector signals are used to configure the number of logic elements in each aforementioned configurable logic loop circuit.
- the clock combining logic 604 generates memory clock clk_div by logically combining specific intermediate clock signals from the first and the second sets of intermediate clock signals.
- FIGS 9A and 9B are schematics showing the circuits of clock divider 602 of Figure 8, according to a present embodiment.
- the frequency register 606 is shown receiving FDR code bits S1 , S2 and S3.
- the stored FDR code bits are provided to FDR decoder 608, which corresponds to the previously discussed decoding logic that generates the six ratio selector signals.
- These ratio selector signals are div10, div15, div20, div25, div30 and div35, which correspond respectively to the divide ratios of 1.0, 1.5, 2.0, 2.5, 3.0 and 3.5.
- known logic decoding circuits can be used for generating the ratio selector signals from three bits of data. In particular, with a three bit FDR code, up to 8 different ratio selector signals can be generated.
- An OR logic gate 610 combines the div15 and div30 ratio selector signals to generate the combined div1530 ratio selector signal.
- Figure 9B is a circuit schematic of two configurable logic loop circuits, each for generating first and second intermediate clock signals.
- the first configurable logic loop circuit includes seven cascaded logic elements 612, 614, 616, 618, 620, 622 and 624 serially connected to each other in a ring configuration, and loop adjustment circuits for changing the number of logic elements in the loop.
- Intermediate clock signals Ap, Bp, Cp, Dp, Ep, Fp and Gp may be tapped from the outputs of logic elements 612 to 624
- Intermediate clock signal CNTP is tapped from the input of first logic element 612.
- each logic element is a flip- flop circuit that latches data on its D-input in response to a first edge of clk_int such as a rising edge of clk_int, which collectively form a shift register.
- each of these intermediate clock signals is generated one cycle of the system clock after a previous intermediate clock signal is generated.
- the Q-output of each flip-flop circuit drives the data latched on its D-input.
- Flip-flop circuits 612, 614, 616, 618, 620, 622 and 624 are resettable by an active low logic level signal RESETP, which when set to the low logic level, disables all the flip-flop circuits such that their Q outputs are set to the low logic level.
- Flip-flop circuit 612 is an initializing logic element configured to receive an active low logic level set signal SETP for setting its Q-output to the high logic level on the rising edge of clk_int while SETP is at the low logic level. This initiates the clock generation operation of the first configurable logic loop circuit, which is typically done after all the flip- flop circuits have been cleared by resetting via RESETP.
- any equivalent logic element that performs the same function as a flip-flop circuit can be used in the presently shown configurable logic loop circuit, and the shown configurable logic loop circuits can trigger on opposite edges of clk_int.
- the loop adjustment circuits include transmission gates 626, 628, 630 and 632 which selectively couple the output of different flip-flop circuits to the input of first flip-flop 612.
- Transmission gate 626 couples the output of flip-flop 614 to the input of flip-flop 612 in response to div20 at the high logic level.
- An inverter (not shown) inverts div20 to provide its complement div20_b.
- Transmission gate 628 couples the output of flip-flop 616 to the input of flip-flop 612 in response to div1530 at the high logic level.
- Transmission gate 630 couples the output of flip-flop 620 to the input of flip-flop 612 in response to div25 at the high logic level.
- Transmission gate 632 couples the output of flip- flop 624 to the input of flip-flop 612 in response to div30 at the high logic level.
- Any activated transmission gate connects the output of the flip-flop it is connected to, to the input of flip- flop 612.
- Flip-flops connected after the position of the activated transmission gate are effectively removed from the circuit, because their outputs are restricted or inhibited from returning to flip-flop 612. Therefore the frequency of the intermediate signals is adjustable by changing the number of flip-flops, or shifting stages in the loop.
- the second configurable logic loop circuit includes seven cascaded logic elements 634, 636, 638, 640, 642, 644 and 646 serially connected to each other in a ring configuration, and loop adjustment circuits 648, 650, 652 and 654 for changing the number of logic elements in the loop. Similar to the first configurable logic loop circuit, the logic elements can be flip-flops which collectively form a shift register and the loop adjustment circuits can be transmission gates.
- the second set of intermediate clock signals includes CNTN, An, Bn, Cn, Dn, En, Fn and Gn. Intermediate clock signals An,
- Bn, Cn, Dn, En, Fn and Gn may be tapped off the outputs of flip-flops 634 to 646 respectively.
- Intermediate clock signal CNTN is tapped from the input of first flip-flop 634.
- Different combinations of specific signals from the first set of intermediate clock signals with the second set of intermediate clock signals can be used to generate different resulting clock signals, as will be described later.
- the interconnection of the elements of the second configurable logic loop circuit is virtually identical to those of the first configurable logic loop circuit. For example, the placement of the transmission gates 648, 650, 652 and 654 are the same as transmission gates 626, 628, 630 and 632.
- the main difference of the second configurable logic loop circuit is that flip-flops 634, 636, 638, 640, 642, 644 and 646 latch data on their D-inputs in response to a second edge of clk_int such as a falling edge of clk_int.
- each of these intermediate clock signals is generated one cycle of the system clock after a previous intermediate clock signal is generated.
- Flip-flop circuits 612, 614, 616, 618, 620, 622 and 624 are resettable by an active low logic level signal RESETN, which when set to the low logic level, disables all the flip-flop circuits such that their Q outputs are set to the low logic level.
- Flip-flop circuit 634 is an initializing logic element configured to receive an active low logic level set signal SETN for setting its Q-output to the high logic level on the falling edge of clk_int while SETN is at the low logic level.
- both flip-flops 612 and 634 are configured to respond synchronously to the SETP and SETN signals on respective triggering edges of the clock signal clk_int.
- SETP and SETN are generated in response to power up of the bridge device, toggling of externally received control signals, or to a change in the FDR code during operation. It is noted that SETP and SETN can be low logic level pulses, each generated at different times. Further discussion of the generation of SETP and SETN is discussed later.
- the two configurable logic loop circuits of Figure 9B can be referred to as a dual shift register clock circuit, where the first configurable logic loop circuit is a positive edge triggering shift register where each flip-flop therein latches on a rising edge of the clock signal clk_int.
- the second configurable logic loop circuit is a negative edge triggering shift register where each flip-flop therein latches on a falling edge of the clock signal clk_int.
- the operating principle of the dual shift register clock circuit is now described. In the case of an integer divide ratio, the first configurable logic loop circuit changes the number of its stages in accordance with the selected divide ratio, and generates a positive edge triggering clock signal independently where its period is multiplied by the selected divide ratio.
- the second configurable logic loop circuit changes the number of its stages with the selected divide ratio, and generates a negative edge triggering clock signal having a frequency that is the divide ratio multiplied by the system clock clk_int and is half the ratio divided frequency.
- This negative edge triggering clock signal is later merged or combined by a downstream circuit with a clock signal from the first configurable logic loop circuit which is triggering at positive clock edges and also has half frequency of the ratio-divided frequency.
- the two configurable logic loop circuits form a first stage of the frequency controller 600.
- the second stage of the frequency controller 600 is the clock combining logic 604, which generates the memory clock clk_div in response to the first and second set of intermediate clock signals, and the ratio selector signals div10, div15, div20, div25 and div30.
- the clock combining logic 604 is shown in Figures 1 OA and 1 OB.
- Figure 1 OA is a circuit schematic showing combinational logic used for generating a first intermediate memory clock clk1025 having a frequency that is a divide ratio of either 1.0, 1.5. 2.0 or 2.5.
- Figure 1 OB is a circuit schematic showing combinational logic used for generating a second intermediate memory clock clk3035 having a frequency that is a divide ratio of either 3.0 or 3.5. Additional logic in the circuit of Figure 10B passes one of the first or second intermediate memory clocks as the final memory clock clk_div.
- the logic gates of clock combining logic 604 are functionally grouped as logic configuration circuitry 700-1 , 700-2 and clock generation circuitry 702-1 , 702-2.
- the logic configuration circuitry 700-1 , 700-2 generates control signals which configure the logic functions of clock generation circuitry 702-1 , 702-2, in response to the divide ratio signals.
- the clock generation circuitry 702-1 , 702-2 receives the first and second intermediate sets of clock signals and logically combines them in accordance with the configured logic function dictated by the control signals from the logic configuration circuitry 700-1 , 700-2, and generates the memory clock clk_div.
- the logic configuration circuitry 700-1 , 700-2 enables a predetermined combination of selected intermediate clock signals from the first and second configurable logic loop circuits to be used by clock generation circuitry 702-1 , 702-2 for generating the memory clock clk_div.
- the logic configuration circuitry 700-1 includes NOR gates
- the clock generation circuitry 702-2 includes NAND gates 720, 722, 724 and 726, NOR gates 728, 730 and 732.
- the logic configuration circuitry 700-2 includes NAND gates 734 and 736, inverters 738 and 740, and transmission gates 742 and 744.
- the clock generation circuitry 702-2 includes NOR gates 746, 748, 750 and 752, inverter 754 and 756, and NAND gate 758, and AND gate 760.
- Logic gates 706, 708 and 718 form a circuit for disabling clock generation circuitry 702-1 of Figure 10A when all of ratio selector signals div10, div15, div20 and div25 are at a low logic level (for example a voltage corresponding to a logic '0'). In otherwords, logic gates 706, 708 and 718 disables the clock generation circuitry 702-1 of Figure 10A when one of div30 or div35 are at the high logic level (for example a voltage corresponding to a logic '1 ').
- ENCNTP enable signal
- Logic gates 704 and 716 form a circuit for detecting a divide ratio signal corresponding to an integer divide ratio, and in particular to an integer divide ratio less than 3.0. For example, divide ratios of 1.0 and 2.0 are integer divide ratios, while divide ratios 1.5 and 2.5 are fractional divide ratios.
- the enable signal ENCNTN at the output of AND gate 716 is driven to the low logic level.
- NOR gate 704 is connected to a first input of AND gate 716
- a second input of AND gate 716 receives the output of inverter 712, which in turn receives enable signal ENCNTP. Therefore, enable signal ENCNTN is driven to the high logic level only when divide ratio signals div15 or div25 corresponding to fractional divide ratios 1.5 and 2.5 are at the high logic level.
- Clock generation circuitry 702-1 of Figure 10A includes three clock generation branches.
- the first branch includes logic gates 720 and 728.
- the second branch includes logic gates 722 and 730.
- the third branch includes logic gate 724.
- Logic gates 726 and 732 combine the outputs of the branches together.
- the first branch couples intermediate clock signal CNTN received at an input of NAND gate 720 to the output of NOR gate 728 when ENCNTN is at the high logic level.
- intermediate clock signal CNTN is passed to a first input of NOR gate 732 only for a fractional divide ratio of either 1.5 or 2.5.
- the second branch couples intermediate clock signal CNTP received at an input of NAND gate 722 to the output of NOR gate 730 when ENCNTP is at the low logic level.
- intermediate clock signal CNTP is passed to a second input of NOR gate 732 whenever any one of ratio selector signals div10, div15, div20 or div25 are at the high logic level. Therefore, CNTN and CNTP are both coupled to NOR gate 732 in the case when either fractional divide ratio of 1.5 and 2.5 is selected via divide ratio signals div15 and div25 respectively. For all the integer divide ratios except the divide ratio of 1.0, only CNTP is coupled to NOR gate 732.
- both the first and the second branches are disabled by having the second inputs of NOR gates 728 and 730 receive the div10 divide ratio signal directly.
- both NOR gates 728 and 730 drive their outputs to the low logic level.
- the output of NOR gate 732 is driven to the high logic level.
- NAND gate 724 of the third branch is enabled to pass the system clock clk_int.
- the third branch is disabled and clk1025 is either CNTP or a logical combination of CNTP and CNTN.
- the final memory clock clk_div will be intermediate memory clock clk1025 when a divide ratio between 1.0 and 2.5 is selected.
- the logic configuration circuitry 700-2 of Figure 10B is enabled when enable signal ENCNTP is at the high logic level, or more specifically, when only div30 or div35 are at the high logic level. Because only one ratio selector signal is at the high logic level at any one time, when either div30 or div35 is at the high logic level the remaining ratio selector signals remain at the low logic level. With ENCNTP at the high logic level, NAND gates 734 and 736 are enabled. If div30 is at the high logic level, then transmission gate 742 is turned on to pass the output of inverter 754.
- transmission gate 744 is turned on to pass the output of NAND gate 758. Therefore the logic configuration circuitry 700-2 of Figure 10B functions as a selector for coupling one of the two clock generation branches to AND gate 760.
- the clock generation circuitry 702-2 of Figure 10B includes the two clock generation branches mentioned above, and an intermediate memory clock selector circuit.
- the two clock generation branches of Figure 1 OB are referred to as fourth and fifth clock generation branches since the clock generation circuitry 702-1 of Figure 1 OA includes first to third clock generation branches.
- the fourth clock generation branch includes logic gates 746 and 754, and the fifth clock generation branch includes logic gates 748, 750 and 758.
- NOR gate 746 logically combines intermediate clock signals Cp and An from Figure 9B with each other.
- NOR gate 748 logically combines intermediate clock signals Dn and Gp
- NOR gate 750 logically combines intermediate clock signals Dp and Gn, all of which are provided from the circuits of Figure 9B.
- the intermediate memory clock selector circuit includes logic gates 760, 752 and 756, where AND logic gate 760 is enabled to pass the outputs of either transmission gates 742 or 744 as intermediate memory clock clk3035 when ENCNTP is at the high logic level.
- Intermediate memory clock clk3035 is either the system clock divided with the divide ratio of 3.0 or 3.5.
- NOR gate 752 passes one of the two received intermediate memory clocks clk1025 or clk3035 to inverter 756, which provides the final memory clock clk_div. It should be noted that different logical combinations of signals from first intermediate clock signals and the second intermediate clock signals are possible, depending on the predetermined divide ratios that are designed for the bridge device. For example, these combinations can be selected based on the overlap between logic levels of the different clock signals.
- a pulse width is defined as duration of time between a first rising edge and a subsequent falling edge of a signal (or vice versa).
- the NAND flash memory standard requires that the pulse width of the WE# or RE# signals are at least 12ns at frequencies higher than 83MHz.
- the starting conditions or states of both configurable loop circuits are set before operation begins.
- such starting conditions are set in response to reset events which can include but are not limited to, power up reset of the bridge device, toggling of an external control signal, or a change to the desired divide ratio of the system clock by way of changing the FDR code.
- reset events can include but are not limited to, power up reset of the bridge device, toggling of an external control signal, or a change to the desired divide ratio of the system clock by way of changing the FDR code.
- a clock Initialization circuit for performing this function.
- FIG. 1 is a block diagram of the Clock Initialization Circuit according to a present embodiment.
- Clock initialization circuit 800 is responsible for resetting the first and second configurable logic loop circuits of Figure 9B and setting the starting conditions for clock generation.
- clock initialization circuit 800 includes a reset circuit 802, an external control signal detector 804, a divide ratio change detector 806, and a startup synchronizer 808.
- the external control signal detector 804 is a chip enable detector, connected to the CE# port of the bridge device 400. Chip enable detector 804 is configured to detect a transition of the CE# port from the high to low logic level, which may occur during read, program or block erase operations.
- chip enable detector 804 After CE# drops to the low logic level, chip enable detector 804 generates a low logic level pulse referred to as ce_rst. Any external control signal or internal control signal can be detected in a similar manner, depending on the design and application of the bridge device 400.
- the divide ratio detector 806 detects a change to at least one of the FDR code bits S1 , S2 or S3. In response to a detected change, divide ratio detector 806 generates a low logic level pulse referred to as dr_rst.
- Reset circuit 802 is responsible for clearing all the flip-flops of the clock divider 602. However, because the first and second configurable loop circuits trigger on different edges of the system clock clk_int, separate reset signals RESETP and RESETN are generated. While both RESETP and RESETN are logically the same, they are generated at different times to properly reset their respective flip-flop circuits, as will be discussed in more detail later. Reset circuit 802 generates RESETP and RESETN in response to power up reset of the bridge device 400, in response to toggling of CE# via ce_rst or in response to a change in the FDR code via dr_rst.
- the startup synchronizer 808 generates set signals SETP and SETN in response to either ce_rst or dr_rst.
- Set signals SETP and SETN are low logic level pulses generated at different times, depending on the selected divide ratio. More specifically, three divide ratio signals determine the spacing of the SETP and SETN pulses from each other.
- Signal DIV1520 corresponds to a selection of either the divide by 1.5 or 2.0 ratios
- signal DIV2530 corresponds to a selection of either the divide by 2.5 or 3.0 ratios
- signal DIV3540 corresponds to a selection of either the divide by 3.5 or 4.0 ratios.
- signal DIV1520 is can be a logical OR'ing of signals div15 and div20.
- signal DIV2530 can be a logical OR'ing of signals div25 and div30
- signal DIV3540 can be a logical OR'ing of signals div35 and div40.
- Such logical OR'ing has been previously shown in Figure 9A, where signals div15 and div30 are combined at OR gate 610 to form signal div1530.
- similar OR circuits can be used to generate DIV1520, DIV2530 and DIV3540.
- selector 870 is responsive to the individual ratio selector signals.
- the spacing of SETP and SETN is the same for each aforementioned pairing of divide ratios, but will differ between different pairings of ratios.
- Figure 12 is a circuit schematic of the external control signal detector 804 of Figure 1 1 , according to a present embodiment.
- the circuit includes a first flip-flop circuit 820, a second flip-flop circuit 822, and a pulse generator circuit having an inverter 824 and a NAND gate 826.
- Both flip-flop circuits 820 and 822 are triggered on a falling edge of clk_int to latch its D-input for output on its Q-output.
- the Q-output of flip-flop circuit 820 is provided to the input of inverter 824, while the Q-output of flip-flop circuit 822 is provided to a first input of NAND gate 826.
- the second input of NAND gate 826 receives the output of inverter 824.
- NAND gate 826 The output of NAND gate 826 is ce_rst, which remains at the high logic level while CE# remains at the low logic level and when CE# transitions from the low logic level to the high logic level. While CE# is at the high logic level, NAND gate 826 receives a low logic level output from inverter 824 and a high logic level output from flip-flop circuit 822. When CE# transitions from the high logic level to the low logic level, inverter 824 changes its output to the high logic level after one falling edge of clk_int, thereby causing NAND gate 826 to drive ce_rst to the low logic level since flip- flop circuit 822 currently outputs a high logic level signal.
- flip-flop circuit 822 latches the low logic level output of flip-flop circuit 820 to drive its output to the low logic level.
- NAND gate 826 drives ce_rst back to the high logic level. Hence a low logic ce_rst pulse is generated.
- Figure 13 is a circuit schematic of the divide ratio detector of Figure 1 1 , according to a present embodiment.
- the divide ratio detector 806 includes flip-flop circuits 830, 832, 834, 836, 838 and 840, XOR gates 842, 844 and 846, and a NOR gate 848. All the flip-flop circuits are triggered on the falling edge of system clock clk_int.
- the pair of cascaded flip-flop circuits 830 and 832 having their respective outputs connected to XOR gate 842 forms a single bit change detector for FDR code bit S1.
- cascaded flip-flop circuits 834 and 836 with XOR gate 844 is a single bit change detector for FDR code bit S2
- flip-flop circuits 838 and 840 with XOR gate 846 is a single bit change detector for FDR code bit S3.
- bit S1 by example, when there is no change to its logic state, the output of XOR gates 842 will be at the low logic level as both its inputs will be at the same logic level. However, any change to the logic level of S1 results in a change to the Q-output of flip-flop 830 after a first falling edge of clk_int, thereby causing XOR gate 842 to drive its output to the high logic level because both its inputs are mismatching logic levels.
- each XOR gate 842 generates a high logic level pulse in response to a change to its respective FDR bit.
- the output of each single bit change detector shown as the outputs of XOR gates 842, 844 and 846, is provided to a result combiner, embodied as NOR gate 848.
- any high logic level pulse received from at least one of the single bit change detectors causes NOR gate 848 to generate a complementary low logic level dr_rst pulse.
- the duration of the pulse is one clock cycle or period of clk_int. It is noted that the pulse length can be increased by adding another flip-flop circuit between the input of XOR gate 842 and flip- flop circuit 832.
- FIG 14 is a circuit schematic of reset circuit 802 of Figure 1 1 , according to a present embodiment.
- Reset circuit 802 includes a power up reset circuit 850, a detection combiner circuit including AND logic gates 852 and 854, and cascaded flip-flop circuits 856 and 858.
- Power up reset circuit 850 can include any well known circuits for detecting a predetermined minimum level of the VDD power supply. During power up of bridge device 400, power up reset circuit 850 maintains its output signal pu_rst at the low logic level. When the predetermined minimum level of VDD is reached, pu_rst is driven to the high logic level.
- AND gates 854 and 856 is a combiner circuit for detecting any one of pu_rst, ce_rst and dr_rst at the low logic level. Therefore, when pu_rst is at the low logic level, the output of AND gate 852 will be at the low logic level. When either ce_rst or dr_rst pulse to the low logic level, the output of AND gate 852 will pulse to the low logic level for the same duration of time.
- the output of AND gate 852 is provided to flip-flop circuit 856 and the output of 856 is connected to flip flop circuit 858.
- Flip-flop circuit 856 triggers on the rising edge of system clock clk_int, while flip-flop circuit 858 triggers on the falling edge of system clock clk_int. Therefore, RESETN is driven to the low logic level one half clock cycle after RESETP is driven to the low logic level. Because the pu_rst signal simply transitions from the low to high logic levels as part of the power up process, RESETP and RESETN will simply transition from the low to high logic levels as well. Assuming that the bridge device has been powered up and pu_rst is at the high logic level, a low logic level pulse of ce_rst or dr_rst can be received at AND gate 854.
- RESETP will be a low logic level pulse having the same duration as ce_rst (or dr_rst), while RESETN will be a low logic level pulse having the same duration as ce_rst (or dr_rst), but delayed by one half clock cycle after RESETP.
- the circuits of Figures 12, 13 and 14 contribute to the generation of reset signals RESETP and RESETN for clearing the flip-flop circuits of clock divider 602 in Figure 9B.
- the starting conditions for generation of the clock signals by clock divider 602 can be set by generating set signals SETP and SETN. More specifically, the starting conditions for a selected divide ratio are set in response to the relative timing between the low logic level pulses of SETP and SETN.
- the startup synchronizer 808 is responsible for generating SETP and SETN at specific times in response to the selected divide ratio.
- FIG 15 is a circuit schematic of the startup synchronizer of Figure 1 1 , according to a present embodiment.
- Startup synchronizer 808 includes cascaded logic elements such as flip-flop circuits 860, 862, 864 and 866, AND gate 868, selector 870, and flip-flop circuit 872, where logic element 860 is an initializing logic element that generates an initial signal which cascades through the other logic elements.
- logic element 860 is an initializing logic element that generates an initial signal which cascades through the other logic elements.
- Each of the flip-flop circuits 860, 862, 864 and 866 triggers on the falling edge of the system clock clk_int, but flip-flop circuit 872 triggers on the rising edge of clk_int.
- AND gate 868 detects the low logic level pulses of either ce_rst or dr_rst, and provides a generic reset pulse rst to the first flip-flop circuit 860.
- Selector 870 functions as a 3-to-1 multiplexor that receives the outputs of flip-flop circuits 862, 864 and 866, referred to as set configuration signals SET15, SET25 and SET35 respectively, and passes one to flip-flop circuit 872.
- Selector 870 is configured to have an unselected state where none of the set configuration signals SET15, SET25 and SET35 are passed to flip-flop circuit 872. In this case, the output of flip-flop circuit 872 (SETN) remains at a previously reset state corresponding to the low logic level.
- flip-flop circuit 860 The output of flip-flop circuit 860 is used as set signal SETP, while flip-flop circuit 872 functions as a phase adjustment circuit for providing the pulsed signal from selector 870 that is phase shifted by 180 degrees relative to the received pulsed signal.
- the output of flip-flop circuit 872 is set signal SETN.
- Selector 870 is configured to be responsive to one of 3 selection signals.
- the mapping of the selection signals to the inputs to be passed to flip-flop circuit 872 is as follows. Signal DIV1520 passes SET15, signal DIV2530 passes SET25, and signal DIV3540 passes SET35.
- selector 870 can be configured to receive a 2-bit signal coded to correspond to any one of the three states, or selection signals for achieving the same function.
- a 2-bit signal can be used to represent a total of four different states. Therefore if the selected divide ratio is 1.0, then a fourth state can be entered where selector 870 passes none of the set configuration signals SET15, SET25 and SET35.
- DIV3540 is the active selection signal for passing SET35 to flip-flop circuit 872.
- the generic reset signal rst pulses to the low logic level at the first falling edge of clock cycle 0 of clk_int.
- the ce_rst or dr_rst pulses are one clock cycle in duration.
- the rst pulse then propagates through each of flip-flop circuits 860, 862, 864 and 866 with each successive falling edge of clk_int.
- flip-flop circuit 872 latches SET35 via selector 870, thereby providing SETN.
- SETN is separated or delayed from SETP by a total of 3.5 clock cycles.
- ratio selector signal div35 is active to turn on transmission gates 632 and 654, and flip-flop circuits 612 and 634 receive the SETP and SETN low logic level pulses respectively to initiate operation of the circuits.
- the first and second configurable logic circuits are thus configured as respective 7 stage shift registers. Eventually, the first configurable logic loop generates clock signal CNTP with a 7 system clock period, while the second configurable logic loop generates clock signal CNTN with a 7 system clock period.
- Figure 16B is an extension of the timing diagram of Figure 16A which ends after clock cycle 6.
- the timing diagram of Figure 16B begins at clock cycle 8, and illustrates the relationship between CNTP and CNTN where a divide ratio of 3.5 has been selected, and in response to SETP and SETN generated as shown in Figure 16A. There are no signal transitions between clock cycles 6 and 8.
- Clock signal CNTP rises to the high logic level at the rising edge of clock cycle 8, which is 7 clock cycles from the rising edge of clock cycle 2.
- CNTP and CNTN are reciprocally triggering intermediate clock signals with an interval of their half cycle, which enables non-integer clock dividing. This is due to set signal SETN being generated at 3.5 clock cycles after SETP is generated, thus delaying the initial operation of the second configurable logic loop by 3.5 clock cycles relative to the first configurable logic loop.
- clock signals generated in clock divider 602 are then logically combined in clock combining logic 604, resulting in a final memory clock clk_div.
- the initial operation of the second configurable logic loop can also be delayed relative to the initial operation of the first configurable logic loop by 1.5 or 2.5 clock cycles.
- the clock initialization circuit 800 establishes a clock cycle offset between the intermediate clock signals of the first configurable logic loop and the second configurable logic loop of the clock divider 602.
- the clock combining logic then combines the different intermediate clock signals based on the selected divide ratio to generate the memory clock clk_int.
- signal ENCNTP is at the high logic level and signal clk1025 is at the low logic level in response to the selected divide ratio, therefore the resulting clk_div signal is equivalent to the output of inverter 754.
- the sequence and timing of the generation of set configuration signals SET15, SET25 and SET35 is the same as shown in Figure 16A.
- divide ratio signal DIV2530 is asserted to cause selector 870 to pass SET25 to flip-flop circuit 872. Accordingly, SETN is generated 2.5 clock cycles of clk_int after the generation of SETP as shown in Figure 17.
- the memory clock frequency is dynamically configurable in the present embodiments, meaning that the memory clock can be set and re-set any time after the composite memory device is powered up.
- the logic and op-code converter block 414 is configured to receive a clock configuration global command from a memory controller or other host device that it is connected to.
- Figure 18 is an illustration of a global frequency configuration command, according to a present embodiment.
- the global frequency configuration command follows the same basic structure as global command 110 previously shown in Figure 3B, and includes at least three fields.
- the first field is the GDA field 116 in the address header 114, followed by an FDR op-code field 900, which is followed by an FDR code field 902.
- the FDR op-code field 900 includes an op-code for instructing control logic within logic and op-code converter block 414. This includes latching the FDR code, such as a three bit code as shown in the example embodiments of Figures 7 to 9A that is provided in FDR code field 902.
- the GDA field 116 has the same purpose as first described in Figure 3B. Therefore, each composite memory device can be configured to have a different memory clock.
- GDA field 116 can include a broadcast address that is recognized by all the composite memory devices in the system, so that each composite memory device configures its memory clock with the same FDR code.
- FIG 19 is a timing diagram illustrating how the clock configuration global command is received by a composite memory device, and more specifically by the presently described bridge device embodiments.
- the timing diagram shows signal traces for strobe signal CSI, and the input port D[J]. Starting from the left side of the timing diagram, CSI is driven to the high logic state at the same time the GDA is asserted onto the DO] input port.
- the bridge device Once the bridge device has determined a match between the received GDA and its stored address in its GDA register, such as GDA register 412 of Figure 6A, the FDR op-code is latched.
- the FDR op-code is represented by hexadecimal string FC.
- control logic of the bridge device In response to the FDR op-code the control logic of the bridge device, such as logic and op-code converter block 414 of Figure 6A, controls the routing of the received FDR code to the clock controlling circuitry, such as frequency controller 422 of Figure 6A.
- the FDR code is latched and the memory clock frequency is adjusted.
- the memory clock frequency and the system clock frequency can be automatically adjusted in response to operating conditions, such as temperature or process variation occurring during fabrication.
- the process variation can be determined using well known testing techniques before the bridge device is packaged. Then the package can be labeled with the recommended valid operating frequencies.
- the memory system can include a sensor that monitors the temperature of the system, and the memory controller can include algorithms for determining an increase or decrease in one or both of the system clock frequency or memory clock frequency. Temperature sensors for monitoring temperature of
- a power saving algorithm can be employed to reduce one or both of the system clock and memory clock frequencies, either in response to a user setting or automatic sensing of a voltage level of a battery supply. For example, when the battery voltage falls to a predetermined threshold, the clock frequencies can be reduced.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Logic Circuits (AREA)
- Memory System (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE112010002750T DE112010002750T5 (en) | 2009-06-29 | 2010-06-25 | Bridge device with a clock domain with configurable frequency |
| JP2012516445A JP5709855B2 (en) | 2009-06-29 | 2010-06-25 | BRIDGE DEVICE WITH FREQUENCY CONFIGURABLE CLOCK DOMAIN (BRIDGINGDEVICE) |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US22130909P | 2009-06-29 | 2009-06-29 | |
| US61/221,309 | 2009-06-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011000082A1 true WO2011000082A1 (en) | 2011-01-06 |
Family
ID=43379997
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CA2010/000948 Ceased WO2011000082A1 (en) | 2009-06-29 | 2010-06-25 | A bridging device having a frequency configurable clock domain |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US8504789B2 (en) |
| JP (1) | JP5709855B2 (en) |
| KR (1) | KR20120111951A (en) |
| DE (1) | DE112010002750T5 (en) |
| WO (1) | WO2011000082A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014110058A (en) * | 2012-12-04 | 2014-06-12 | Hgst Netherlands B V | Host read command return reordering based on time estimation of flash read command completion |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20120076793A (en) * | 2010-12-30 | 2012-07-10 | 에스케이하이닉스 주식회사 | Integrated circuit, memory system and operation method of the same |
| US8848731B2 (en) | 2011-01-31 | 2014-09-30 | Qualcomm Incorporated | System and method for facilitating data transfer using a shared non-deterministic bus |
| US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
| US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
| US9195530B1 (en) | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
| US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
| KR20130042373A (en) * | 2011-10-18 | 2013-04-26 | 삼성전자주식회사 | Voltage scaling device of semiconductor memory |
| CN102385556B (en) * | 2011-11-08 | 2014-11-26 | 聚辰半导体(上海)有限公司 | Serial nonvolatile memory and method for cancelling write-protect of memory |
| US9053008B1 (en) | 2012-03-26 | 2015-06-09 | Western Digital Technologies, Inc. | Systems and methods for providing inline parameter service in data storage devices |
| TWI467379B (en) * | 2012-04-23 | 2015-01-01 | Phison Electronics Corp | System operation method, and memory controller and memory storage device using the same |
| US20140122775A1 (en) * | 2012-10-31 | 2014-05-01 | Freescale Semiconductor, Inc. | Memory controller for memory device |
| US8954655B2 (en) | 2013-01-14 | 2015-02-10 | Western Digital Technologies, Inc. | Systems and methods of configuring a mode of operation in a solid-state memory |
| KR101666830B1 (en) * | 2014-09-22 | 2016-10-18 | 주식회사 아이에이 | Spreaded clock generating apparatus and method using digital logic |
| US9542986B2 (en) * | 2015-05-21 | 2017-01-10 | Arm Limited | Low power input gating |
| US20170236566A1 (en) * | 2016-02-17 | 2017-08-17 | Intel Corporation | Data transfer for multi-loaded source synchrous signal groups |
| IT201600073087A1 (en) * | 2016-07-13 | 2018-01-13 | St Microelectronics Srl | RECEIVING CIRCUIT, RELATED INTEGRATED CIRCUIT AND DEVICE |
| CN108573729B (en) * | 2017-03-08 | 2021-01-08 | 北京兆易创新科技股份有限公司 | NAND-FLASH memory write operation method and device |
| US10642759B2 (en) * | 2017-04-12 | 2020-05-05 | Eta Compute, Inc. | Interface from null convention logic to synchronous memory |
| JP7031349B2 (en) * | 2018-02-15 | 2022-03-08 | 日本電気株式会社 | node |
| TWI658700B (en) * | 2018-07-16 | 2019-05-01 | 創意電子股份有限公司 | Integrated circuit, multi-channels transmission apparatus and signal transmission method thereof |
| CN109830252B (en) * | 2018-12-29 | 2024-03-22 | 灿芯半导体(上海)股份有限公司 | Digital circuit for realizing clock cycle and method for realizing quarter clock cycle |
| US10892775B1 (en) * | 2019-12-03 | 2021-01-12 | Samsung Electronics Co., Ltd | Transmitting system, apparatus and method for unifying parallel interfaces |
| CN111510483B (en) * | 2020-04-09 | 2022-10-18 | 眸芯科技(上海)有限公司 | Configuration synchronization system, method and device between different network domains in chip test |
| CN120179172A (en) * | 2020-06-05 | 2025-06-20 | 长鑫存储技术(上海)有限公司 | Read-write conversion circuit and memory |
| KR102865649B1 (en) * | 2020-06-05 | 2025-09-29 | 창신 메모리 테크놀로지즈 아이엔씨 | Read-write conversion circuit and memory |
| JP2022049453A (en) | 2020-09-16 | 2022-03-29 | キオクシア株式会社 | Transmitting and receiving device, bridge chip, semiconductor recording device and method |
| KR102910362B1 (en) | 2020-11-02 | 2026-01-13 | 삼성전자주식회사 | Storage device and operating method of storage device |
| EP3992803B1 (en) * | 2020-11-02 | 2025-05-21 | Samsung Electronics Co., Ltd. | Storage device and operating method of storage device |
| JP2024001693A (en) | 2022-06-22 | 2024-01-10 | キオクシア株式会社 | Bridge chips, semiconductor storage devices, and memory systems |
| JP2024044868A (en) | 2022-09-21 | 2024-04-02 | キオクシア株式会社 | Memory systems, methods, and control circuits |
| US20240311014A1 (en) * | 2023-03-13 | 2024-09-19 | Macronix International Co., Ltd. | Managing Read Timing in Semiconductor Devices |
| US12524367B2 (en) * | 2023-03-16 | 2026-01-13 | Richtek Technology Corp. | Bus configuration system and method thereof |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040193743A1 (en) * | 2003-03-10 | 2004-09-30 | Byers Larry L. | Servo controller interface module for embedded disk controllers |
| JP2004362215A (en) * | 2003-06-04 | 2004-12-24 | Toshiba Corp | Processor and semiconductor integrated circuit |
| US20100091538A1 (en) * | 2008-10-14 | 2010-04-15 | Mosaid Technologies Incorporated | Bridge device architecture for connecting discrete memory devices to a system |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6564286B2 (en) * | 2001-03-07 | 2003-05-13 | Sony Corporation | Non-volatile memory system for instant-on |
| US7107476B2 (en) * | 2001-11-21 | 2006-09-12 | Hynix Semiconductor Inc. | Memory system using non-distributed command/address clock signals |
| WO2004003758A1 (en) * | 2002-07-01 | 2004-01-08 | Hitachi, Ltd. | Directional coupling bus system |
| JP4159415B2 (en) * | 2002-08-23 | 2008-10-01 | エルピーダメモリ株式会社 | Memory module and memory system |
| KR101260632B1 (en) | 2005-09-30 | 2013-05-03 | 모사이드 테크놀로지스 인코퍼레이티드 | Memory with output control |
| US20070076502A1 (en) * | 2005-09-30 | 2007-04-05 | Pyeon Hong B | Daisy chain cascading devices |
| JP5065618B2 (en) * | 2006-05-16 | 2012-11-07 | 株式会社日立製作所 | Memory module |
| US7853727B2 (en) | 2006-12-06 | 2010-12-14 | Mosaid Technologies Incorporated | Apparatus and method for producing identifiers regardless of mixed device type in a serial interconnection |
| CN101617371B (en) | 2007-02-16 | 2014-03-26 | 莫塞德技术公司 | Non-volatile semiconductor memory with multiple external power supplies |
| JP5385156B2 (en) | 2007-02-16 | 2014-01-08 | モサイド・テクノロジーズ・インコーポレーテッド | Method for reducing power consumption in a system having a semiconductor device and a plurality of interconnect devices |
| US20100005214A1 (en) * | 2008-07-01 | 2010-01-07 | International Business Machines Corporation | Enhancing bus efficiency in a memory system |
| US7872936B2 (en) * | 2008-09-17 | 2011-01-18 | Qimonda Ag | System and method for packaged memory |
-
2010
- 2010-06-25 KR KR20117031159A patent/KR20120111951A/en not_active Withdrawn
- 2010-06-25 DE DE112010002750T patent/DE112010002750T5/en not_active Withdrawn
- 2010-06-25 WO PCT/CA2010/000948 patent/WO2011000082A1/en not_active Ceased
- 2010-06-25 US US12/823,472 patent/US8504789B2/en not_active Expired - Fee Related
- 2010-06-25 JP JP2012516445A patent/JP5709855B2/en not_active Expired - Fee Related
-
2013
- 2013-07-31 US US13/955,809 patent/US20130318287A1/en not_active Abandoned
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040193743A1 (en) * | 2003-03-10 | 2004-09-30 | Byers Larry L. | Servo controller interface module for embedded disk controllers |
| JP2004362215A (en) * | 2003-06-04 | 2004-12-24 | Toshiba Corp | Processor and semiconductor integrated circuit |
| US20100091538A1 (en) * | 2008-10-14 | 2010-04-15 | Mosaid Technologies Incorporated | Bridge device architecture for connecting discrete memory devices to a system |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014110058A (en) * | 2012-12-04 | 2014-06-12 | Hgst Netherlands B V | Host read command return reordering based on time estimation of flash read command completion |
| US9032177B2 (en) | 2012-12-04 | 2015-05-12 | HGST Netherlands B.V. | Host read command return reordering based on time estimation of flash read command completion |
| US9354814B2 (en) | 2012-12-04 | 2016-05-31 | HGST Netherlands B.V. | Host read command return reordering based on time estimation of flash read command completion |
| US9652156B2 (en) | 2012-12-04 | 2017-05-16 | Western Digital Technologies, Inc. | Host read command return reordering based on time estimation of flash read command completion |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5709855B2 (en) | 2015-04-30 |
| JP2012531635A (en) | 2012-12-10 |
| US8504789B2 (en) | 2013-08-06 |
| US20100327923A1 (en) | 2010-12-30 |
| KR20120111951A (en) | 2012-10-11 |
| DE112010002750T5 (en) | 2013-01-31 |
| US20130318287A1 (en) | 2013-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8504789B2 (en) | Bridging device having a frequency configurable clock domain | |
| US12321600B2 (en) | Clock mode determination in a memory system | |
| HK1173569B (en) | Clock mode determination in a memory system | |
| HK1173569A (en) | Clock mode determination in a memory system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10793459 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2012516445 Country of ref document: JP |
|
| ENP | Entry into the national phase |
Ref document number: 20117031159 Country of ref document: KR Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1120100027501 Country of ref document: DE Ref document number: 112010002750 Country of ref document: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10793459 Country of ref document: EP Kind code of ref document: A1 |




