WO2012091486A1 - 고속의 외부 메모리 인터페이스를 위한 적응적 디지털 phy - Google Patents

고속의 외부 메모리 인터페이스를 위한 적응적 디지털 phy Download PDF

Info

Publication number
WO2012091486A1
WO2012091486A1 PCT/KR2011/010307 KR2011010307W WO2012091486A1 WO 2012091486 A1 WO2012091486 A1 WO 2012091486A1 KR 2011010307 W KR2011010307 W KR 2011010307W WO 2012091486 A1 WO2012091486 A1 WO 2012091486A1
Authority
WO
WIPO (PCT)
Prior art keywords
capture
data
clock
clocks
captured
Prior art date
Application number
PCT/KR2011/010307
Other languages
English (en)
French (fr)
Inventor
김완중
Original Assignee
(주)인디링스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)인디링스 filed Critical (주)인디링스
Publication of WO2012091486A1 publication Critical patent/WO2012091486A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0079Receiver details
    • H04L7/0083Receiver details taking measures against momentary loss of synchronisation, e.g. inhibiting the synchronisation, using idle words or using redundant clocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Definitions

  • One embodiment of the invention is directed to a PHY for an external memory interface.
  • the PHY according to an embodiment of the present invention can be applied to an SRD / DDR DRAM controller and an SSD controller operating at high speed.
  • the external memory interface may be limited in operating at high speed due to the nature of the digital circuit.
  • a complicated calibration process is required, and a device for avoiding Meta Stable in synchronization with an external interface needs to be provided.
  • the calibration value needs to be changed depending on the external environment such as temperature during the operation of the chip.
  • SSD solid state disk
  • One embodiment of the present invention provides a PHY comprised of simple digital circuitry for improving the performance of an external memory interface.
  • a storage system includes a plurality of storage devices having different delay times from a reference clock to capture data stored in at least one of a plurality of solid state disks received through one of the plurality of channels.
  • a capture clock generator for generating the capture clocks of the capture clock generator;
  • a capture clock selector for selecting a preset number of capture clocks from among the plurality of capture clocks; Capture units for capturing the data using the selected capture clocks;
  • a calibration engine for processing the captured data.
  • the calibration engine may include a data generator that generates one data based on the captured data.
  • the data generator may generate the one piece of data based on the captured data using the capture clock closest to the center in terms of a capture time point among the selected capture clocks.
  • the data generator may generate the one data based on the data having the most identical data among the captured data.
  • the calibration engine stores a predefined table for error cases that may occur during a data capture process using the plurality of capture units, and compares the table with the captured data to determine the validity of the captured data. It may include a mismatch detector.
  • the calibration engine may include a clock control signal generator configured to generate a clock control signal so that the capture clock selector may select capture clocks by reflecting the result of the validity determination.
  • the capture clock selector When the clock control signal generator determines that an error occurs in the captured data corresponding to the capture clock having the smallest delay time from the reference clock among the selected capture clocks, the capture clock selector is further selected.
  • a clock control signal can be generated to select capture clocks with a large delay time.
  • the capture clock selector is further determined according to the validity determination.
  • a clock control signal can be generated to select capture clocks with a small delay time.
  • the capture clock generator may generate the plurality of capture clocks having a predetermined interval of delay time from the reference clock.
  • the capture clock selector may select the capture clocks such that the capture time points of the selected capture clocks have a constant interval.
  • a storage system includes a plurality of solid state disks connected to a plurality of channels independent from each other and storing data;
  • a capture clock generator for generating a plurality of capture clocks based on a reference clock to capture data stored in at least one of the plurality of solid state disks received through any one of the plurality of channels;
  • a capture clock selector for selecting a preset number of capture clocks from among the plurality of capture clocks;
  • a calibration engine that processes the captured data using the selected capture clocks.
  • the capture clock generator may generate the plurality of capture clocks having different delay times from the reference clock and having a constant interval of the delay time.
  • the calibration engine may generate one data based on the captured data using the most data of the same data among the captured data or the capture clock having the center of the capture time point among the selected capture clocks.
  • the calibration engine stores a predefined table for error cases that may occur during a data capture process using the plurality of capture clocks, and compares the table with the captured data to determine the validity of the captured data. Can be.
  • the calibration engine generates a clock selection control signal for the capture clock selector such that the capture clock selector resolves the error case in accordance with the validity determination.
  • the PHY captures data stored in the external memory using a plurality of asynchronous capture clocks, thereby reducing the influence of the metastable and more accurately accessing data from the external memory.
  • the PHY may determine the type of error generated by comparing captured data with a table stored in advance regarding an error case using a plurality of capture clocks.
  • the PHY can adaptively solve the error according to the situation by adjusting the delay time of the capture clocks according to the type of the generated error.
  • the PHY according to an embodiment of the present invention can be configured with simple digital circuits to improve the performance of the external memory interface.
  • FIG. 1 illustrates a solid state disk system according to an embodiment of the present invention.
  • FIG 2 illustrates an adaptive digital PHY according to an embodiment of the present invention.
  • FIG 3 is a diagram illustrating a time point at which each capture unit captures data when initial calibration is completed according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating a calibration engine according to an embodiment of the present invention.
  • 5A and 5B illustrate an example in which a timing at which capture units capture data is changed due to an external environment.
  • FIG. 6 is a diagram illustrating error cases that may occur in a data capture process of a plurality of capture units according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating an operation of an adaptive digital PHY according to an embodiment of the present invention.
  • FIG. 1 illustrates a solid state disk system according to an embodiment of the present invention.
  • a solid state disk (SSD) system 120 which is a type of storage system, includes a controller, a plurality of SSDs SSD1 to SSD9, and a plurality of PHYs PHY1 to PHY3. .
  • SSD solid state disk
  • the controller controls a read operation or a write operation for the plurality of SSDs in response to a read or write request of the host 110.
  • a flash memory may be installed in each of the plurality of SSDs, and the plurality of SSDs may include other semiconductor disks such as DRAM.
  • the plurality of SSDs are connected to a plurality of channels (channels 1 to 3) that are independent of each other.
  • the controller may control a read or write operation on the plurality of SSDs through the PHYs PHY1 to PHY3 connected to each of the plurality of channels.
  • the plurality of channels operate independently of each other. Accordingly, the SSD system according to an embodiment of the present invention can perform a read operation or a write operation in parallel by using a plurality of channels operated independently of each other. That is, the controller may independently control a read operation or a write operation on SSD1, SSD2 and SSD3 connected to channel 1, SSD4, SSD5 and SSD6 connected to channel 2, and SSD1, SSD2 and SSD3 connected to channel 3.
  • the controller when the controller interfaces an external memory, improved performance is provided by using a PHY composed of digital circuits, and hardware (HW) can automatically cope with a calibration situation occurring during chip operation.
  • PHY is provided.
  • the HW can automatically update the optimum value for the capture clock based on the IO situation change.
  • the PHY according to an embodiment of the present invention can solve the meta stable problem by using asynchronous capture units having different capture clocks (that is, asynchronous FIFOs).
  • FIG 2 illustrates an adaptive digital PHY according to an embodiment of the present invention.
  • an adaptive digital PHY includes a capture clock generator 210, a capture clock selector 220, a plurality of capture units 230 (capture units A to capture unit E). And a calibration engine 240.
  • An adaptive digital PHY interfaces data (ie, IODQ) of an external memory (ie, SSD) and has an internal control signal.
  • the capture clock generator 210 generates a plurality of capture clocks having different delay times from the reference clock RefClk to capture data stored in at least one of a plurality of SSDs received through a channel corresponding to the corresponding PHY.
  • the capture clock generator 210 may receive the reference clock and generate n capture clocks CapClk_1 to CapClk_n delayed at regular intervals.
  • the capture clock selector 220 selects a preset number m of capture clocks CalbClk_1 to CalbClk_m among a plurality of capture clocks generated by the capture clock generator 210.
  • the plurality of capture units 230 capture the data received through the channel using the capture clocks CalbClk_1 to CalbClk_m selected by the capture clock selector 220. Since each of the plurality of capture units 230 uses a different capture clock, the time points at which data is captured are different from each other, and the data may be captured at regular time intervals.
  • the asynchronous capture units 230 may be used to minimize the influence of the metastable.
  • the calibration engine 240 processes the data captured by the capture units 230.
  • the calibration engine 240 generates one data (Internal IODQ) for the controller of the SSD system based on the data captured by the capture units 230.
  • Control interface of the adaptive digital PHY is composed of a firmware control (Firmware Control) and hardware control (Hardware control).
  • Firmware control is used during initial calibration.
  • the firmware performs a read operation while changing the FW_CALVALUE to find an initial calibration value.
  • the initial calibration value is a value associated with the capture time point to ensure that the data captured by the capture units 230 at the beginning of operation can be captured correctly.
  • Hardware control defines when to apply the Adaptive Calibration Value.
  • the hardware HW may provide information about a point in time when the phase of the capture clock is increased or decreased by 1 Delay Tap, which does not affect the data read.
  • the firmware compares the captured data based on each of the capture clocks CalbClk_0 to CalbClk_m selected by the capture clock selector 220 and adjusts the capture time points so that all of the captured data for each of CalbClk_0 to CalbClk_m are valid. Can be.
  • FIG 3 is a diagram illustrating a time point at which each capture unit captures data when initial calibration is completed according to an embodiment of the present invention.
  • the capture time points of all the capture clocks around the capture clock C corresponding to the capture unit C are in the range 310 in which the IODQ is valid.
  • the capture units can capture the correct IOQD.
  • FIG. 4 is a diagram illustrating a calibration engine according to an embodiment of the present invention.
  • a calibration engine includes a data generator 410, a mismatch detector 420, and a clock control signal generator 430.
  • the data generator 410 compares and analyzes the data captured by the capture units to generate one data.
  • the data generator 410 takes the captured data using the capture clock closest to the center in terms of the capture time point from among the capture clocks selected by the capture clock selector; How to create a single data for the controller. That is, the data generator 410 may select the data captured by the capture unit C. In this case, when abnormal glitches or the like are applied to the capture unit C, data generation may be inaccurate.
  • the second method is to generate one data for the controller by taking the largest amount of data captured by all the capture units for each bit. For example, bit [0] captured by capture unit C is '1' and bit [0] captured by the remaining capture units (capture unit A, capture unit B, capture unit D and capture unit E) In case of '0', the data for the controller for bit [0] (ie Internal IODO [0]) becomes '0' because many capture units have captured '0' for bit [0]. .
  • the second method may have a prophylactic effect against the occurrence of glitches only in capture unit C as compared to the first method.
  • the mismatch detector 420 stores a predefined table for error cases that may occur in a data capture process using a plurality of capture units, and compares the captured data with the table each time the data is captured. The validity can be judged.
  • the clock control signal generator 430 generates a clock control signal so that the capture clock selector can select the capture clocks by reflecting the result of the validity determination. That is, a clock control signal is generated regarding a change in the capture timing of the capture units required to solve an error occurring when the capture timing is changed by the external environment. The capture clock selector can then select new capture clocks based on the clock control signal.
  • error cases may occur when capture points due to initial calibration are no longer valid due to changes in the external environment such as temperature rise when the chip is operated on the SSD system.
  • the PHY recognizes that the capture time of the capture units is different and automatically adjusts the capture time such that the capture time is within the valid range of the IODQ through hardware.
  • the adaptive digital PHY compares the data captured by each of the capture units whenever a read operation occurs.
  • 5A and 5B illustrate an example in which a timing at which capture units capture data is changed due to an external environment.
  • the adaptive digital PHY recognizes that an error occurs in the data captured by the capture unit A, and causes the capture clock selector to select capture clocks having a delay time larger than that of the current capture.
  • the capture clock selector can be controlled to slow down the capture points of the units (move to the right in the figure). This control is called the Right Shift control.
  • the adaptive digital PHY recognizes that an error occurs in the data captured by the capture unit D, and causes the capture clock selector to select capture clocks having a delay time smaller than the present time.
  • the capture clock selector can be controlled to speed up the capture points of the units (move left in the figure). This control is called the Left Shift control. When the Leftt Shift control is completed, the capture time of all the capture units is within the valid range 520 of the IODQ, so the values of the data captured by all the capture units are the same.
  • Various error cases as described above may be arranged in a table as shown in FIG. 6, and the adaptive digital PHY according to an embodiment of the present invention may hold a table as shown in FIG. 6 and compare the captured data with the table.
  • FIG. 6 is a diagram illustrating error cases that may occur in a data capture process of a plurality of capture units according to an embodiment of the present invention.
  • the clock control signal is generated.
  • the unit may generate a clock control signal such that the capture clock selector selects capture clocks having a larger delay time. For example, if the currently selected capture clocks are CapClk_2 to CapClk_6, the clock control signal generator may transmit a clock control signal to the capture clock selector such that the next captured clocks become CapClk_3 to CapClk_7 (Right Shift control).
  • the capture clock The selector can generate a clock control signal to select capture clocks with a smaller delay time. For example, if the currently selected capture clocks are CapClk_2 to CapClk_6, the clock control signal generator may transmit a clock control signal to the capture clock selector such that the next captured clocks are CapClk_1 to CapClk_6 (Left Shift control).
  • the adaptive digital PHY uses an interrupt to clear the error state. You can report it to the firmware.
  • the firmware may redo the initial calibration process when an interrupt caused by a shift error occurs.
  • FIG. 7 is a flowchart illustrating an operation of an adaptive digital PHY according to an embodiment of the present invention.
  • an adaptive digital PHY includes a reference clock for capturing data stored in at least one of a plurality of solid state disks received through any one of a plurality of channels. From 710, a plurality of capture clocks having different delay times are generated.
  • the adaptive digital PHY selects 720 a predetermined number of capture clocks from among the plurality of capture clocks.
  • the adaptive digital PHY captures the data using the selected capture clocks (730).
  • the adaptive digital PHY determines whether an error has occurred in the captured data (740).
  • a table summarizing the error cases may be used to determine the error.
  • the adaptive digital PHY If an error occurs, the adaptive digital PHY generates a clock control signal for error resolution (760). Then return to step 720.
  • the adaptive digital PHY generates one data from the captured data (750).
  • Methods according to embodiments of the present invention may be implemented in the form of program instructions that may be executed by various computer means and may be recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

고속의 외부 메모리 인터페이스를 위한 적응적 디지털 PHY가 개시된다. 적응적 디지털 PHY는 복수개의 캡쳐 클럭들을 이용하여 외부 메모리에 저장된 데이터를 캡쳐한다. 적응적 디지털 PHY는 복수의 캡쳐 클럭들을 이용하여 캡쳐된 데이터들을 에러케이스에 관해 미리 저장된 테이블과 비교함으로써 에러의 유형을 파악할 수 있다. 그리고 적응적 디지털 PHY는 발생된 에러의 유형에 따라 캡쳐 클럭의 지연 시간을 조정할 수 있다.

Description

고속의 외부 메모리 인터페이스를 위한 적응적 디지털 PHY
본 발명의 일 실시예는 외부 메모리 인터페이스를 위한 PHY에 관한 것이다. 본 발명의 일 실시예에 의한 PHY는 고속으로 동작하는 SRD/DDR DRAM 컨트롤러 및 SSD 컨트롤러에 적용될 수 있다.
종래의 DRAM, FLASH와 같은 외부 메모리 인터페이스는 고성능이 요구되는 경우에는 아날로그(Analog) PHY를 사용하였다. 고성능이 요구되지 않는 경우에는 디지털(Digital) 회로 만으로 외부 메모리 인터페이스가 구성되었다. 아날로그 PHY의 사용은 고성능을 확보할 수 있는 반면 비용 및 면적(Area)에서 약점을 가질 수 있다.
아날로그 PHY를 사용하지 않을 경우, 외부 메모리 인터페이스는 디지털 회로의 특성상 고속으로 동작하는 데에 한계가 있을 수 있다. 디지털 회로 만으로 최대 성능을 끌어내기 위해서는 복잡한 Calibration 과정이 필요하며, 외부 인터페이스와의 동기화(Synchronization)에 있어서 Meta Stable을 피하기 위한 장치가 마련될 필요가 있다. 또한 Calibration 값은 칩이 동작하는 동안에 온도 등과 같은 외부 환경에 따라서 달라져야 할 필요가 있다.
특히 고체 상태 디스크(Solid State Disk; SSD) 컨트롤러(Controller)와 같이 하나의 채널(Channel)에 다수의 플래시 메모리(Flash Memory) 칩이 인터페이스 되는 경우에는 신호 무결성(Signal Integrity) 측면에서 메모리 컨트롤러가 캡쳐(Capture)할 수 있는 데이터 윈도우(Data Window)가 상대적으로 취약할 수 있다.
본 발명의 일 실시예는 외부 메모리 인터페이스의 성능을 향상하기 위한 간단한 디지털 회로로 구성된 PHY를 제공한다.
본 발명의 일 실시예에 따른 스토리지 시스템은 복수의 채널들 중 어느 하나의 채널을 통하여 수신되는 복수의 고체 상태 디스크들 중 적어도 하나에 저장된 데이터를 캡쳐하기 위하여 기준 클럭으로부터 서로 다른 지연 시간을 갖는 복수의 캡쳐 클럭들을 생성하는 캡쳐 클럭 생성기; 상기 복수의 캡쳐 클럭들 중 미리 설정된 개수의 캡쳐 클럭들을 선택하는 캡쳐 클럭 선택기; 상기 선택된 캡쳐 클럭들을 이용하여 상기 데이터를 캡쳐하는 캡쳐 유닛들; 및 상기 캡쳐된 데이터들을 처리하는 교정 엔진을 포함한다.
상기 교정 엔진은 상기 캡쳐된 데이터들을 기초로 하나의 데이터를 생성하는 데이터 생성부를 포함할 수 있다.
상기 데이터 생성부는 상기 선택된 캡쳐 클럭들 중에서 캡쳐 시점의 면에서 가운데에서 가장 가까운 캡쳐 클럭을 이용하여 캡쳐된 데이터에 기초하여 상기 하나의 데이터를 생성할 수 있다.
상기 데이터 생성부는 상기 캡쳐된 데이터들 중에서 동일한 데이터가 가장 많은 데이터를 기초로 상기 하나의 데이터를 생성할 수 있다.
상기 교정 엔진은 상기 복수의 캡쳐 유닛들을 이용한 데이터 캡쳐 과정에서 발생할 수 있는 에러 케이스들에 대해 미리 정의된 테이블을 저장하고, 상기 테이블과 상기 캡쳐된 데이터들을 비교하여 상기 캡쳐된 데이터들의 유효성을 판단하는 미스매치 검출기를 포함할 수 있다.
상기 교정 엔진은 상기 캡쳐 클럭 선택기가 상기 유효성 판단 결과를 반영하여 캡쳐 클럭들을 선택할 수 있도록 클럭 제어 신호를 생성하는 클럭 제어 신호 생성부를 포함할 수 있다.
상기 클럭 제어 신호 생성부는 상기 유효성 판단에 따라 상기 선택된 캡쳐 클럭들 중에 상기 기준 클럭으로부터의 지연 시간이 가장 작은 캡쳐 클럭에 대응하는 캡쳐된 데이터에 에러가 발생한 것으로 판단된 경우, 상기 캡쳐 클럭 선택기가 더 큰 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 클럭 제어 신호를 생성할 수 있다.
상기 클럭 제어 신호 생성부는 상기 유효성 판단에 따라 상기 선택된 캡쳐 클럭들 중에 상기 기준 클럭으로부터의 지연 시간이 가장 큰 캡쳐 클럭에 대응하는 캡쳐된 데이터에 에러가 발생한 것으로 판단된 경우, 상기 캡쳐 클럭 선택기가 더 작은 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 클럭 제어 신호를 생성할 수 있다.
상기 캡쳐 클럭 생성기는 상기 기준 클럭으로부터 일정한 간격의 지연 시간을 갖는 상기 복수의 캡쳐 클럭들을 생성할 수 있다.
상기 캡쳐 클럭 선택기는 상기 선택된 캡쳐 클럭들의 캡쳐 시점들이 일정한 간격을 갖도록 상기 캡쳐 클럭들을 선택할 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템은 서로 독립적인 복수의 채널들과 연결되고, 데이터를 저장하는 복수의 고체 상태 디스크들; 상기 복수의 채널들 중 어느 하나의 채널을 통하여 수신되는 상기 복수의 고체 상태 디스크들 중 적어도 하나에 저장된 데이터를 캡쳐하기 위하여 기준 클럭을 기초로 복수의 캡쳐 클럭들을 생성하는 캡쳐 클럭 생성기; 상기 복수의 캡쳐 클럭들 중 미리 설정된 개수의 캡쳐 클럭들을 선택하는 캡쳐 클럭 선택기; 및 상기 선택된 캡쳐 클럭들을 이용하여 캡쳐된 데이터들을 처리하는 교정 엔진을 포함한다.
상기 캡쳐 클럭 생성기는 상기 기준 클럭으로부터 서로 다른 지연 시간을 갖고 상기 지연 시간의 간격이 일정한 상기 복수의 캡쳐 클럭들을 생성할 수 있다.
상기 교정 엔진은 상기 캡쳐된 데이터들 중에서 동일한 데이터가 가장 많은 데이터 또는 상기 선택된 캡쳐 클럭들 중에서 캡쳐 시점이 가장 가운데 있는 캡쳐 클럭을 이용하여 캡쳐된 데이터를 기초로 하나의 데이터를 생성할 수 있다.
상기 교정 엔진은 상기 복수의 캡쳐 클럭들을 이용한 데이터 캡쳐 과정에서 발생할 수 있는 에러 케이스들에 대해 미리 정의된 테이블을 저장하고, 상기 테이블과 상기 캡쳐된 데이터들을 비교하여 상기 캡쳐된 데이터들의 유효성을 판단할 수 있다.
상기 교정 엔진은 상기 유효성 판단에 따라 상기 캡쳐 클럭 선택기가 해당 에러 케이스를 해결하도록 상기 캡쳐 클럭 선택기를 위한 클럭 선택 제어 신호를 생성하는 스토리지 시스템.
본 발명의 일 실시예에 따른 PHY는 복수개의 비동기 캡쳐 클럭들을 이용하여 외부 메모리에 저장된 데이터를 캡쳐함으로써 메타 스테이블에 의한 영향을 줄이고, 보다 정확하게 외부 메모리로부터 데이터를 액세스할 수 있다.
본 발명의 일 실시예에 따른 PHY는 복수의 캡쳐 클럭들을 이용하여 캡쳐된 데이터들을 에러 케이스에 관해 미리 저장된 테이블과 비교함으로써 발생된 에러의 유형을 파악할 수 있다. 그리고 PHY는 발생된 에러의 유형에 따라 캡쳐 클럭들의 지연 시간을 조정함으로써 상황에 따라 적응적으로 에러를 해결할 수 있다.
본 발명의 일 실시예에 따른 PHY는 간단한 디지털 회로들로 구성됨으로써 외부 메모리 인터페이스의 성능을 향상할 수 있다.
도 1은 본 발명의 일 실시예에 따른 고체 상태 디스크 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 적응적 디지털 PHY를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 초기 교정이 완료된 경우에 각각의 캡쳐 유닛들이 데이터를 캡쳐하는 시점에 대하여 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 교정 엔진을 도시한 도면이다.
도 5a 및 도 5b는 외부 환경의 영향으로 캡쳐 유닛들이 데이터를 캡쳐하는 시점이 변경되는 예를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 복수의 캡쳐 유닛들의 데이터쳐 과정에서 발생할 수 있는 에러 케이스들을 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 적응적 디지털 PHY의 동작 흐름도를 도시한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예를 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 고체 상태 디스크 시스템을 도시한 도면이다.
도 1을 참조하면, 스토리지 시스템의 일종인 고체 상태 디스크(Solid State Disk; SSD) 시스템(120)은 컨트롤러, 복수의 SSD들(SSD1 내지 SSD9), 복수의 PHY들(PHY1 내지 PHY3)을 포함한다.
컨트롤러는 호스트(110)의 읽기 또는 쓰기 요청에 응답하여 복수의 SSD들에 대한 읽기 동작 또는 쓰기 동작을 제어한다. 여기서, 복수의 SSD들 각각에는 플래시 메모리가 설치될 수 있으며, 복수의 SSD들은 DRAM 등 다른 반도체 디스크를 포함할 수도 있다. 복수의 SSD들은 서로 독립적인 복수의 채널들(채널1 내지 채널3)과 연결된다. 그리고 컨트롤러는 복수의 채널들 각각에 연결된 PHY들(PHY1 내지 PHY3)을 통해 복수의 SSD들에 대한 읽기 또는 쓰기 동작을 제어할 수 있다.
복수의 채널들은 서로 독립적으로 운용된다. 따라서, 본 발명의 일 실시예에 따른 SSD 시스템은 서로 독립적으로 운용되는 복수의 채널들을 이용함으로써, 병렬적으로 읽기 동작 또는 쓰기 동작을 수행할 수 있다. 즉, 컨트롤러는 채널1과 연결된 SSD1, SSD2 및 SSD3, 채널2와 연결된 SSD4, SSD5 및 SSD6, 채널3과 연결된 SSD1, SSD2 및 SSD3에 대해 독립적으로 읽기 동작 또는 쓰기 동작을 제어할 수 있다.
본 발명의 일 실시예에 따르면 컨트롤러가 외부의 메모리를 인터페이스 할 때 디지털 회로로 구성된 PHY를 이용함으로써 향상된 성능이 제공되고, 칩 동작 중에 발생하는 calibration 상황에 대하여 하드웨어(Hardware; HW)가 자동적으로 대처할 수 있는 PHY가 제공된다. 구체적으로 Factory 또는 초기 Boot Up Sequence에서 calibration을 통해 데이터 캡쳐 클럭에 대한 최적값이 결정되면, HW는 이를 기반으로 IO 상황 변화에 따라 자동적으로 캡쳐 클럭에 대한 최적값을 업데이트할 수 있다. 또한 본 발명의 일 실시예에 따른 PHY는 서로 다른 캡쳐 클럭을 갖는 비동기 캡쳐 유닛(즉, 비동기 FIFO(Asynchronous FIFO))들을 이용하여 Meta stable 문제를 해결할 수 있다.
이하에서, SSD 시스템에 포함되는 본 발명의 일 실시예에 따른 PHY에 대한 구체적인 구성을 도2 및 도 3을 참조하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 적응적 디지털 PHY를 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 적응적 디지털 PHY는 캡쳐 클럭 생성기(210), 캡쳐 클럭 선택기(220), 복수의 캡쳐 유닛들(230)(캡쳐 유닛 A 내지 캡쳐 유닛 E) 및 교정 엔진(240)(Calibration Engine)을 포함한다.
본 발명의 일 실시예에 따른 적응적 디지털 PHY는 외부 메모리(즉, SSD)의 데이터(즉, IODQ)를 인터페이스하며 내부 제어 신호를 갖는다.
캡쳐 클럭 생성기(210)는 해당 PHY에 대응하는 채널을 통하여 수신되는 복수의 SSD들 중 적어도 하나에 저장된 데이터를 캡쳐하기 위하여 기준 클럭(RefClk)으로부터 서로 다른 지연 시간을 갖는 복수의 캡쳐 클럭들을 생성한다. 예를 들어, 캡쳐 클럭 생성기(210)는 기준 클럭을 입력 받아 일정한 간격으로 딜레이(delay)된 n개의 캡쳐 클럭들(CapClk_1 내지 CapClk_n)을 생성할 수 있다.
캡쳐 클럭 선택기(220)는 캡쳐 클럭 생성기(210)가 생성한 복수의 캡쳐 클럭들 중 미리 설정된 개수(m)의 캡쳐 클럭들(CalbClk_1 내지 CalbClk_m)을 선택한다. 이때 캡쳐 클럭 선택기(220)는 캡쳐 시점들이 일정한 간격을 갖도록 캡쳐 클럭들을 선택할 수 있다. 즉, 캡쳐 클럭 선택기(220)는 n개의 캡쳐 클럭들 중 연속된 인덱스를 갖는 m개의 캡쳐 클럭들을 선택할 수 있다. 예를 들어 m=5인 경우, CapClk_2 내지 CapClk_6과 같이 연속된 캡쳐 클럭들이 CalbClk_1 내지 CalbClk_m으로 선택될 수 있다. 이때, 선택된 캡쳐 클럭의 인덱스가 작을수록 기준 클럭으로부터의 지연 시간이 짧은 것(즉, 캡쳐 시점이 빠른 것)으로 한다.
복수의 캡쳐 유닛들(230)(캡쳐유닛 A 내지 캡쳐 유닛 E)은 캡쳐 클럭 선택기(220)가 선택한 캡쳐 클럭들(CalbClk_1 내지 CalbClk_m)을 이용하여 채널을 통해 수신되는 데이터를 캡쳐한다. 복수의 캡쳐 유닛들(230) 각각은 서로 다른 캡쳐 클럭을 이용하므로 데이터가 캡쳐되는 시점이 서로 다르며 일정한 시간적 간격으로 데이터를 캡쳐할 수 있다.
외부 메모리(즉, SSD들)가 비록 동기 인터페이스(Synchronous Interface)를 가진다 하더라도 외부 환경에 의하여 글리치 및 딜레이가 발생할 수 있다. 이는 칩 내부의 동기화와는 달리 비동기 경로(Asynchronous Path)와 유사하게 메타 스테이블(Meta Stable)을 유발하여 칩 동작에 치명적인 영향을 줄 수 있다. 본 발명의 일 실시예에 따른 적응적 디지털 PHY에서는 비동기 캡쳐 유닛들(230)을 이용하여 메타 스테이블에 의한 영향을 최소화할 수 있다.
교정 엔진(240)(Calibration Engine)은 캡쳐 유닛들(230)이 캡쳐한 데이터들을 처리한다. 구체적으로 교정 엔진(240)은 캡쳐 유닛들(230)이 캡쳐한 데이터들을 기초로 SSD 시스템의 컨트롤러 위한 하나의 데이터(Internal IODQ)를 생성한다.
본 발명의 일 실시예에 따른 적응적 디지털 PHY의 컨트롤 인터페이스(Control Interface)는 펌웨어 컨트롤(Firmware Control)과 하드웨어 컨트롤(Hardware control) 로 구성된다. 펌웨어 컨트롤은 초기 교정(Initial Calibration) 과정에서 이용된다.
펌웨어(Firmware; FW)는 FW_CALVALUE를 변경하면서 읽기 동작을 수행하여 초기 교정 값(Initial Calibration value)을 찾는다. 초기 교정 값은 동작 초기에 캡쳐 유닛들(230)이 캡쳐하는 데이터들이 올바르게 캡쳐될 수 있도록 하기 위한 캡쳐 시점과 관련된 값이다. 하드웨어 컨트롤은 적응적 교정 값(Adaptive Calibration Value)을 적용하는 시점을 정의한다. 하드웨어(HW)는 캡쳐 클럭의 phase를 1Delay Tap만큼 증가시키거나 감소시켜도 데이터 읽기에 영향을 미치지 않는 시점에 대한 정보를 제공할 수 있다.
초기 교정 과정에서 펌웨어는 캡쳐 클럭 선택기(220)가 선택한 캡쳐 클럭들(CalbClk_0 내지 CalbClk_m) 각각에 기초하여 캡쳐된 데이터들을 비교 분석하여 CalbClk_0 내지 CalbClk_m 각각에 대해 캡쳐된 데이터들이 모두 유효하도록 캡쳐 시점들을 조정할 수 있다.
도 3은 본 발명의 일 실시예에 따라 초기 교정이 완료된 경우에 각각의 캡쳐 유닛들이 데이터를 캡쳐하는 시점에 대하여 도시한 도면이다.
도 3을 참조하면, 초기 교정이 완료된 경우, 캡쳐 유닛 C에 대응하는 캡쳐 클럭 C를 중심으로 모든 캡쳐 클럭들의 캡쳐 시점들이 IODQ가 유효한 범위(310)에 놓이게 된다. 따라서 초기 교정 이후의 읽기 동작에서 캡쳐 유닛들은 올바른 IOQD를 캡쳐할 수 있다.
도 4는 본 발명의 일 실시예에 따른 교정 엔진을 도시한 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 교정 엔진은 데이터 생성부(410), 미스매치 검출기(420)(Mismatch Finder) 및 클럭 제어 신호 생성부(430)를 포함한다.
데이터 생성부(410)는 캡쳐 유닛들이 캡쳐한 데이터들을 비교 분석하여 하나의 데이터를 생성한다.
구체적으로, 하나의 데이터를 생성하는 i)첫 번째 방법은, 데이터 생성부(410)는 캡쳐 클럭 선택부가 선택한 캡쳐 클럭들 중에서 캡쳐 시점의 면에서 가운데서 가장 가까운 캡쳐 클럭을 이용하여 캡쳐된 데이터를 취하여 컨트롤러를 위한 하나의 데이터를 생성하는 방법이다. 즉, 데이터 생성부(410)는 캡쳐 유닛 C에 의해 캡쳐된 데이터를 선택할 수 있다. 이 경우 캡쳐 유닛 C에 이상 글리치(Glitch) 등이 인가되는 경우 데이터 생성이 부정확할 수 있다.
ii)두 번째 방법은, 각 비트(bit)에 대해 모든 캡쳐 유닛들이 캡쳐한 데이터들 중에서 가장 많은 데이터를 취하여 컨트롤러를 위한 하나의 데이터를 생성하는 방법이다. 예를 들어, 캡쳐 유닛 C가 캡쳐한 [0]번 비트가 '1'이고 나머지 캡쳐 유닛들(캡쳐 유닛 A, 캡쳐 유닛 B, 캡쳐 유닛 D 및 캡쳐 유닛 E)이 캡쳐한 [0]번 비트가 '0'인 경우, [0]번 비트에 대하여 '0'을 캡쳐한 캡쳐 유닛들이 다수이므로 [0]번 비트에 대한 컨트롤러를 위한 데이터(즉, Internal IODO[0])는 '0'이 된다. 두 번째 방법은 첫 번째 방법과 비교할 때 캡쳐 유닛 C에만 글리치가 발생하는 경우에 대한 예방 효과를 가질 수 있다.
미스매치 검출기(420)는 복수의 캡쳐 유닛들을 이용한 데이터 캡쳐 과정에서 발생할 수 있는 에러 케이스들에 대해 미리 정의된 테이블을 저장하고, 데이터가 캡쳐될때마다 테이블과 캡쳐된 데이터들을 비교하여 캡쳐된 데이터들의 유효성을 판단할 수 있다.
클럭 제어 신호 생성부(430)는 캡쳐 클럭 선택기가 유효성 판단 결과를 반영하여 캡쳐 클럭들을 선택할 수 있도록 클럭 제어 신호를 생성한다. 즉, 외부 환경에 의하여 캡쳐 시점이 변경됨에 따라 발생하는 에러를 해결하기 위하여 요구되는 캡쳐 유닛들의 캡쳐 시점의 변동에 관한 클럭 제어 신호를 생성한다. 그러면 캡쳐 클럭 선택기는 클럭 제어 신호를 기초로 새롭게 캡쳐 클럭들을 선택할 수 있다.
에러 케이스들에 대해 구체적으로 설명하면, SSD 시스템 상에서 칩이 동작하는 경우 온도 상승 등과 같은 외부 환경의 변화로 인하여 초기 교정에 의한 캡쳐 시점들이 더 이상 유효하지 않은 경우가 발생할 수 있다. 이를 해결하기 위하여 본 발명의 일 실시예에 따른 PHY는 캡쳐 유닛들의 캡쳐 시점이 달라지는 것을 인식하고 하드웨어를 통해 자동적으로 캡쳐 시점이 IODQ가 유효한 범위에 있도록 캡쳐 시점을 조절할 수 있다.
다시 말해, 초기 교정에 의하여 이미 모든 캡쳐 유닛들의 캡쳐 클럭이 IODQ가 유효한 범위에 있도록 조정되었더라도 외부 환경으로 인하여 캡쳐 유닛 A 또는 캡쳐 유닛 E의 데이터에 에러가 발생할 수 있다. 따라서 본 발명의 일 실시예에 따른 적응적 디지털 PHY는 읽기 동작이 일어날 때마다 캡쳐 유닛들 각각이 캡쳐한 데이터들을 비교한다.
도 5a 및 도 5b는 외부 환경의 영향으로 캡쳐 유닛들이 데이터를 캡쳐하는 시점이 변경되는 예를 도시한 도면이다.
도 5a는 초기 교정 이후에 IODQ의 딜레이가 증가함에 따라 캡쳐 유닛 A에 대응하는 캡쳐 클럭 A의 캡쳐 시점이 IODQ가 유효한 범위(510)를 벗어나서 캡쳐 유닛 A가 캡쳐하는 데이터에 에러가 발생하는 경우를 나타낸다. 이 경우 본 발명의 일 실시예에 따른 적응적 디지털 PHY는 캡쳐 유닛 A가 캡쳐하는 데이터에 에러가 발생함을 인식하고 캡쳐 클럭 선택기가 현재보다 더 큰 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 함으로써 각 캡쳐 유닛들의 캡쳐 시점들이 늦춰지도록(도면에서 오른쪽으로 이동하도록) 캡쳐 클럭 선택기를 제어할 수 있다. 이러한 제어를 Right Shift 제어라고 한다. Right Shift 제어가 완료된 경우, 모든 캡쳐 유닛들의 캡쳐 시점이 IODQ가 유효한 범위(510) 이내에 있게 되므로 모든 캡쳐 유닛들이 캡쳐하는 데이터들의 값은 같게 된다.
도 5b는 초기 교정 이후에 IODQ의 딜레이가 감소함에 따라 캡쳐 유닛 D에 대응하는 캡쳐 클럭 D의 캡쳐 시점이 IODQ가 유효한 범위(520)를 벗어나서 캡쳐 유닛 D가 캡쳐하는 데이터에 에러가 발생하는 경우를 나타낸다. 이 경우 본 발명의 일 실시예에 따른 적응적 디지털 PHY는 캡쳐 유닛 D가 캡쳐하는 데이터에 에러가 발생함을 인식하고 캡쳐 클럭 선택기가 현재보다 더 작은 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 함으로써 각 캡쳐 유닛들의 캡쳐 시점들이 빨라지도록(도면에서 왼쪽으로 이동하도록) 캡쳐 클럭 선택기를 제어할 수 있다. 이러한 제어를 Left Shift 제어라고 한다. Leftt Shift 제어가 완료된 경우, 모든 캡쳐 유닛들의 캡쳐 시점이 IODQ가 유효한 범위(520) 이내에 있게 되므로 모든 캡쳐 유닛들이 캡쳐하는 데이터들의 값은 같게 된다.
위와 같은 각종 에러 케이스들은 도 6과 같은 테이블로 정리될 수 있고, 본 발명의 일 실시예에 따른 적응적 디지털 PHY는 도 6과 같은 테이블을 보유하고, 캡쳐되는 데이터들을 테이블과 비교할 수 있다.
도 6은 본 발명의 일 실시예에 따른 복수의 캡쳐 유닛들의 데이터쳐 과정에서 발생할 수 있는 에러 케이스들을 도시한 도면이다.
도 6을 참조하면, 각 캡쳐 유닛들에 대한 항목에서 각 캡쳐 유닛들이 캡쳐한 데이터가 캡쳐 유닛 C가 캡쳐한 데이터와 일치하지 않는 경우를 1로 표시하였다.
미스매치 검출기의 유효성 판단 결과, 기준 클럭으로부터의 지연 시간이 가장 작은 캡쳐 클럭에 대응하는 캡쳐된 데이터(캡쳐 유닛 A가 캡쳐한 데이터)에 에러가 발생한 것으로 판단된 경우(610), 클럭 제어 신호 생성부는 캡쳐 클럭 선택기가 더 큰 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 클럭 제어 신호를 생성할 수 있다. 예를 들어 현재 선택된 캡쳐 클럭들이 CapClk_2 내지 CapClk_6이라면, 다음에 선택될 캡쳐 클럭들이 CapClk_3 내지 CapClk_7이 되도록 클럭 제어 신호 생성부는 클럭 제어 신호를 캡쳐 클럭 선택부로 전송할 수 있다(Right Shift 제어).
마찬가지로, 미스매치 검출기의 유효성 판단 결과, 기준 클럭으로부터의 지연 시간이 가장 큰 캡쳐 클럭에 대응하는 캡쳐된 데이터(캡쳐 유닛 E가 캡쳐한 데이터)에 에러가 발생한 것으로 판단된 경우(620), 캡쳐 클럭 선택기가 더 작은 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 클럭 제어 신호를 생성할 수 있다. 예를 들어 현재 선택된 캡쳐 클럭들이 CapClk_2 내지 CapClk_6이라면, 다음에 선택될 캡쳐 클럭들이 CapClk_1 내지 CapClk_6이 되도록 클럭 제어 신호 생성부는 클럭 제어 신호를 캡쳐 클럭 선택부로 전송할 수 있다(Left Shift 제어).
양 끝의 캡쳐 유닛들이 아닌 중간의 캡쳐 유닛들(캡쳐 유닛 B 및 캡쳐 유닛 D)에 에러가 발생하는 경우(이를 Shift Error라 한다), 적응적 디지털 PHY는 인터럽트(Interrupt)를 이용하여 에러 상태를 펌웨어에 보고할 수 있다. 펌웨어는 Shift Error에 의한 인터럽트가 발생한 경우 초기 교정 과정을 다시 수행할 수 있다.
도 7은 본 발명의 일 실시예에 따른 적응적 디지털 PHY의 동작 흐름도를 도시한 도면이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 적응적 디지털 PHY는 복수의 채널들 중 어느 하나의 채널을 통하여 수신되는 복수의 고체 상태 디스크들 중 적어도 하나에 저장된 데이터를 캡쳐하기 위하여 기준 클럭으로부터 서로 다른 지연 시간을 갖는 복수의 캡쳐 클럭들을 생성한다(710).
적응적 디지털 PHY는 복수의 캡쳐 클럭들 중 미리 설정된 개수의 캡쳐 클럭들을 선택한다(720).
적응적 디지털 PHY는 선택된 캡쳐 클럭들을 이용하여 상기 데이터를 캡쳐한다(730).
적응적 디지털 PHY는 캡쳐된 데이터들에 에러가 발생하였는지 판단한다(740). 에러 판단에 에러 케이스를 정리한 테이블이 이용될 수 있다.
에러가 발생한 경우, 적응적 디지털 PHY는에러 해결을 위한 클럭 제어 신호를 생성한다(760). 그리고 단계 720으로 돌아간다.
에러가 발생하지 않은 경우, 적응적 디지털 PHY는 캡쳐된 데이터들로부터 하나의 데이터를 생성한다(750).
지금까지 본 발명에 따른 적응적 디지털 PHY의 동작 방법에 대해 설명하였다. 본 적응적 디지털 PHY의 동작 방법에는 앞서 도 1 내지 도 6과 관련하여 다양한 실시예를 통하여 상술한 내용이 그대로 적용될 수 있으므로, 더 이상의 상세한 설명은 생략하도록 한다.
본 발명의 실시예들에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (15)

  1. 복수의 채널들 중 어느 하나의 채널을 통하여 수신되는 복수의 고체 상태 디스크들 중 적어도 하나에 저장된 데이터를 캡쳐하기 위하여 기준 클럭으로부터 서로 다른 지연 시간을 갖는 복수의 캡쳐 클럭들을 생성하는 캡쳐 클럭 생성기;
    상기 복수의 캡쳐 클럭들 중 미리 설정된 개수의 캡쳐 클럭들을 선택하는 캡쳐 클럭 선택기;
    상기 선택된 캡쳐 클럭들을 이용하여 상기 데이터를 캡쳐하는 캡쳐 유닛들; 및
    상기 캡쳐된 데이터들을 처리하는 교정 엔진
    을 포함하는 스토리지 시스템.
  2. 제1항에 있어서,
    상기 교정 엔진은
    상기 캡쳐된 데이터들을 기초로 하나의 데이터를 생성하는 데이터 생성부
    를 포함하는 스토리지 시스템.
  3. 제2항에 있어서,
    상기 데이터 생성부는
    상기 선택된 캡쳐 클럭들 중에서 가운데와 가까운 캡쳐 클럭을 이용하여 캡쳐된 데이터에 기초하여 상기 하나의 데이터를 생성하는 스토리지 시스템.
  4. 제2항에 있어서,
    상기 데이터 생성부는
    상기 캡쳐된 데이터들 중에서 동일한 데이터가 가장 많은 데이터를 기초로 상기 하나의 데이터를 생성하는 스토리지 시스템.
  5. 제1항에 있어서,
    상기 교정 엔진은
    상기 복수의 캡쳐 유닛들을 이용한 데이터 캡쳐 과정에서 발생할 수 있는 에러 케이스들에 대해 미리 정의된 테이블을 저장하고, 상기 테이블과 상기 캡쳐된 데이터들을 비교하여 상기 캡쳐된 데이터들의 유효성을 판단하는 미스매치 검출기
    를 포함하는 스토리지 시스템.
  6. 제5항에 있어서,
    상기 교정 엔진은
    상기 캡쳐 클럭 선택기가 상기 유효성 판단 결과를 반영하여 캡쳐 클럭들을 선택할 수 있도록 클럭 제어 신호를 생성하는 클럭 제어 신호 생성부
    를 포함하는 스토리지 시스템.
  7. 제6항에 있어서,
    상기 클럭 제어 신호 생성부는
    상기 유효성 판단에 따라 상기 선택된 캡쳐 클럭들 중에 상기 기준 클럭으로부터의 지연 시간이 가장 작은 캡쳐 클럭에 대응하는 캡쳐된 데이터에 에러가 발생한 것으로 판단된 경우, 상기 캡쳐 클럭 선택기가 더 큰 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 클럭 제어 신호를 생성하는 스토리지 시스템.
  8. 제6항에 있어서,
    상기 클럭 제어 신호 생성부는
    상기 유효성 판단에 따라 상기 선택된 캡쳐 클럭들 중에 상기 기준 클럭으로부터의 지연 시간이 가장 큰 캡쳐 클럭에 대응하는 캡쳐된 데이터에 에러가 발생한 것으로 판단된 경우, 상기 캡쳐 클럭 선택기가 더 작은 지연 시간을 갖는 캡쳐 클럭들을 선택하도록 클럭 제어 신호를 생성하는 스토리지 시스템.
  9. 제1항에 있어서,
    상기 캡쳐 클럭 생성기는
    상기 기준 클럭으로부터 일정한 간격의 지연 시간을 갖는 상기 복수의 캡쳐 클럭들을 생성하는 스토리지 시스템.
  10. 제1항에 있어서,
    상기 캡쳐 클럭 선택기는
    상기 선택된 캡쳐 클럭들의 캡쳐 시점들이 일정한 간격을 갖도록 상기 캡쳐 클럭들을 선택하는 스토리지 시스템.
  11. 서로 독립적인 복수의 채널들과 연결되고, 데이터를 저장하는 복수의 고체 상태 디스크들;
    상기 복수의 채널들 중 어느 하나의 채널을 통하여 수신되는 상기 복수의 고체 상태 디스크들 중 적어도 하나에 저장된 데이터를 캡쳐하기 위하여 기준 클럭을 기초로 복수의 캡쳐 클럭들을 생성하는 캡쳐 클럭 생성기;
    상기 복수의 캡쳐 클럭들 중 미리 설정된 개수의 캡쳐 클럭들을 선택하는 캡쳐 클럭 선택기; 및
    상기 선택된 캡쳐 클럭들을 이용하여 캡쳐된 데이터들을 처리하는 교정 엔진
    을 포함하는 스토리지 시스템.
  12. 제11항에 있어서,
    상기 캡쳐 클럭 생성기는
    상기 기준 클럭으로부터 서로 다른 지연 시간을 갖고 상기 지연 시간의 간격이 일정한 상기 복수의 캡쳐 클럭들을 생성하는 스토리지 시스템.
  13. 제11항에 있어서,
    상기 교정 엔진은
    상기 캡쳐된 데이터들 중에서 동일한 데이터가 가장 많은 데이터 또는 상기 선택된 캡쳐 클럭들 중에서 캡쳐 시점이 가장 가운데 있는 캡쳐 클럭을 이용하여 캡쳐된 데이터를 기초로 하나의 데이터를 생성하는 스토리지 시스템.
  14. 제11항에 있어서,
    상기 교정 엔진은
    상기 복수의 캡쳐 클럭들을 이용한 데이터 캡쳐 과정에서 발생할 수 있는 에러 케이스들에 대해 미리 정의된 테이블을 저장하고, 상기 테이블과 상기 캡쳐된 데이터들을 비교하여 상기 캡쳐된 데이터들의 유효성을 판단하는 스토리지 시스템.
  15. 제14항에 있어서,
    상기 교정 엔진은
    상기 유효성 판단에 따라 상기 캡쳐 클럭 선택기가 해당 에러 케이스를 해결하도록 상기 캡쳐 클럭 선택기를 위한 클럭 선택 제어 신호를 생성하는 스토리지 시스템.
PCT/KR2011/010307 2010-12-30 2011-12-29 고속의 외부 메모리 인터페이스를 위한 적응적 디지털 phy WO2012091486A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100139231A KR101217937B1 (ko) 2010-12-30 2010-12-30 고속의 외부 메모리 인터페이스를 위한 적응적 디지털 phy
KR10-2010-0139231 2010-12-30

Publications (1)

Publication Number Publication Date
WO2012091486A1 true WO2012091486A1 (ko) 2012-07-05

Family

ID=46383338

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/010307 WO2012091486A1 (ko) 2010-12-30 2011-12-29 고속의 외부 메모리 인터페이스를 위한 적응적 디지털 phy

Country Status (2)

Country Link
KR (1) KR101217937B1 (ko)
WO (1) WO2012091486A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098400B2 (en) 2012-10-31 2015-08-04 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US10552362B2 (en) 2015-06-05 2020-02-04 Samsung Electronics Co., Ltd. Storage device and operating method thereof
US20210126766A1 (en) * 2018-07-10 2021-04-29 Socionext Inc. Phase synchronization circuit, transmission and reception circuit, and integrated circuit

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275386B2 (en) 2014-06-27 2019-04-30 Advanced Micro Devices, Inc. Memory physical layer interface logic for generating dynamic random access memory (DRAM) commands with programmable delays
US9639495B2 (en) * 2014-06-27 2017-05-02 Advanced Micro Devices, Inc. Integrated controller for training memory physical layer interface
KR102251813B1 (ko) 2015-04-07 2021-05-13 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100356076B1 (ko) * 1994-10-25 2002-12-26 오끼 덴끼 고오교 가부시끼가이샤 반도체 기억장치
KR20060057861A (ko) * 2004-11-24 2006-05-29 삼성전자주식회사 디지털 데이터 샘플링 블록 및 샘플링 방법
KR100606244B1 (ko) * 2005-02-11 2006-07-28 삼성전자주식회사 데이터 스트로브 신호에 동기 되어 전송되는 데이터의 캡쳐 방법 및 이를 위한 데이터 캡쳐 회로
KR20090005444A (ko) * 2007-07-09 2009-01-14 주식회사 엑시콘 반도체 테스트 장치의 데이터 캡쳐 회로

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100356076B1 (ko) * 1994-10-25 2002-12-26 오끼 덴끼 고오교 가부시끼가이샤 반도체 기억장치
KR20060057861A (ko) * 2004-11-24 2006-05-29 삼성전자주식회사 디지털 데이터 샘플링 블록 및 샘플링 방법
KR100606244B1 (ko) * 2005-02-11 2006-07-28 삼성전자주식회사 데이터 스트로브 신호에 동기 되어 전송되는 데이터의 캡쳐 방법 및 이를 위한 데이터 캡쳐 회로
KR20090005444A (ko) * 2007-07-09 2009-01-14 주식회사 엑시콘 반도체 테스트 장치의 데이터 캡쳐 회로

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098400B2 (en) 2012-10-31 2015-08-04 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US9244831B2 (en) 2012-10-31 2016-01-26 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US9405677B2 (en) 2012-10-31 2016-08-02 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US10552362B2 (en) 2015-06-05 2020-02-04 Samsung Electronics Co., Ltd. Storage device and operating method thereof
US11182328B2 (en) 2015-06-05 2021-11-23 Samsung Electronics Co., Ltd. Storage device and operating method thereof
US20210126766A1 (en) * 2018-07-10 2021-04-29 Socionext Inc. Phase synchronization circuit, transmission and reception circuit, and integrated circuit
US11777701B2 (en) * 2018-07-10 2023-10-03 Socionext Inc. Phase synchronization circuit, transmission and reception circuit, and integrated circuit

Also Published As

Publication number Publication date
KR20120077315A (ko) 2012-07-10
KR101217937B1 (ko) 2013-01-02

Similar Documents

Publication Publication Date Title
WO2012091486A1 (ko) 고속의 외부 메모리 인터페이스를 위한 적응적 디지털 phy
KR100942978B1 (ko) 반도체 메모리 소자
US7346798B2 (en) Circuit and method for aligning transmitted data by adjusting transmission timing for plurality of lanes
US7093061B2 (en) FIFO module, deskew circuit and rate matching circuit having the same
KR102166908B1 (ko) 고속 데이터 인터페이스 장치 및 상기 장치의 스큐 보정 방법
US6647027B1 (en) Method and apparatus for multi-channel data delay equalization
US8880833B2 (en) System and method for read synchronization of memory modules
KR101004664B1 (ko) 반도체 메모리 장치 및 그 동작방법
JP5121712B2 (ja) ビット・スキュー防止方法およびシステム
KR20070121465A (ko) 병렬 인터페이스의 데이터 신호와 클럭 신호 간의 스큐를보상하는 방법 및 장치
US7546480B1 (en) High speed bus with alignment, re-timing and buffer underflow/overflow detection enhancements
US20110194651A1 (en) Serial data receiver circuit apparatus and serial data receiving method
JP2012507934A (ja) 複数のシリアルレシーバ用の自動データアライナのための方法、装置およびシステム
KR100736675B1 (ko) 반도체 소자 테스트 장치
US4984251A (en) Method and apparatus for the synchronization of a cascaded multi-channel data transmission
US11729030B2 (en) De-skew circuit, de-skew method, and receiver
US20080195774A1 (en) Structure for an asynchronous data interface
KR20130113276A (ko) Pci 익스프레스 디스큐 장치 및 그 방법
JP2008172657A (ja) 受信装置
US7694176B2 (en) Fault-tolerant computer and method of controlling same
US20070079104A1 (en) Dynamic detection of block boundaries on memory reads
US20040186939A1 (en) Method and apparatus for communications interfacing capable of effectively reducing disk drive power consumption
US7966468B1 (en) Apparatus, system, and method for fast read request transfer through clock domains
US7454543B2 (en) Early high speed serializer-deserializer (HSS)internal receive (Rx) interface for data sampling clock signals on parallel bus
US7280419B1 (en) Latency counter having frequency detector and latency counting method thereof

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: 11853055

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC

122 Ep: pct application non-entry in european phase

Ref document number: 11853055

Country of ref document: EP

Kind code of ref document: A1