KR100920179B1 - Memory controller - Google Patents
Memory controller Download PDFInfo
- Publication number
- KR100920179B1 KR100920179B1 KR1020080033598A KR20080033598A KR100920179B1 KR 100920179 B1 KR100920179 B1 KR 100920179B1 KR 1020080033598 A KR1020080033598 A KR 1020080033598A KR 20080033598 A KR20080033598 A KR 20080033598A KR 100920179 B1 KR100920179 B1 KR 100920179B1
- Authority
- KR
- South Korea
- Prior art keywords
- clock
- signal
- write
- sdram
- sek
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
-
- 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
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
Description
본 발명은 반도체 메모리 장치에 관한 것으로, 특히 외부메모리와 메모리 콘트롤러(MCU; Memory Controller unit) 사이의 스큐(skew)를 자동으로 조절하는 메모리 콘트롤러에 관한 것이다.BACKGROUND OF THE
컴퓨터의 램(RAM)과 CPU 사이의 통로 등을 지칭하는 시스템 버스(system bus)의 속도가 100MHz 이상으로 높아짐에 따라 외부메모리와 메모리 콘트롤러(Memory Controller Unit) 사이의 클럭 스큐(Clock Skew)를 조절하여 안정적으로 동작할 필요가 생기게 되었다. As the speed of the system bus, which refers to the passage between the RAM and the CPU of the computer, increases to over 100 MHz, the clock skew between the external memory and the memory controller unit is controlled. It is necessary to operate stably.
도 1은 종래기술의 메모리 컨트롤러를 도시한 도이다. 도 1에는, SRAM Controller(100)와 SDRAM(200)이 표현되어 있는데, 클럭신호(CLK)는 데이터 경로와는 별도로 만들어져서 제공된다. 메모리 콘트롤러(100)와 SDRAM(200) 사이에 데이터를 쓰기(WRITE)와 읽기(READ)를 함에 있어서 HCLK 클럭이 사용된다.1 is a diagram illustrating a memory controller of the related art. In FIG. 1, the
도 1에 도시된 SDRAM 제어신호 생성블록(SDRAM CONTROL SIGNAL BLOCK)(110) 은 SDRAM 동작에 사용되는 신호를 생성하는데, SDRAM의 CAS, RAS, WE, ADDR 등의 신호를 생성한다. 이 신호들은 메모리 콘트롤러 외부포트(미도시)를 지나서 외부 SDRAM 메모리(미도시)로 전달되는 OUTPUT 신호이며, HCLK 클럭신호가 지연신호 생성 블록(DELAY GENERATION 블록)(130)을 거쳐서 만들어진 SDRAM 클럭신호 CLK(HCLK_D)에 의해서 동기화된다.The SDRAM CONTROL
그리고, 도 1에 도시된 쓰기/읽기 데이터 생성 블록(WRITE/READ DATA GENERATION BLOCK)(120)은 쓰기선택신호(WRITE)에서 의해서 쓰기데이터(WDATA)를 SDRAM 데이터 신호 DQ(220)로 보내거나, SDRAM 데이터 신호 DQ(220)로부터 받은 읽기 신호(DQ_D)를 읽기데이터(RDATA)로 만드는데 사용되는 블록이다.The write / read
여기서, 쓰기데이터(WDATA)는 SDRAM 데이터 신호 DQ(220)에 전달되고, SDRAM 클럭신호 CLK(230)에 의해서 동기화되며, 읽기데이터(RDATE)는 상기 읽기신호(DQ_D)가 지연신호 생성 블록(130)에 의해 지연된 HCLK 클럭신호(HCLK_D)에 의해서 동기화되어 만들어진다.Here, the write data WDATA is transmitted to the SDRAM
결국 SDRAM 컨트롤 신호, 쓰기데이터, 읽기데이터가 모두 클럭신호 HCLK에 의해 제어되는 구조이다. 100MHz이상의 고성능 메모리 콘트롤러에서 하나의 클럭에 의한 쓰기, 읽기 작업을 동시에 수행하는 것은 대단히 어려우며, 경우에 따라 불가능할 수 있다.As a result, the SDRAM control signal, the write data, and the read data are all controlled by the clock signal HCLK. In a high performance memory controller above 100MHz, it is very difficult to write and read by one clock at the same time, which can be impossible in some cases.
도 2는 도 1의 메모리 컨트롤러에 의한 SDRAM READ 타이밍 다이어그램이다.FIG. 2 is an SDRAM READ timing diagram by the memory controller of FIG. 1.
도 2의 A에서 보듯이 클럭신호 HCLK의 타이밍 지연으로 만들어진 SDRAM 클럭 신호 CLK에 의해서 SDRAM 읽기데이터 DQ가 발생한다. 일반적인 SDRAM의 경우, CLK 상승에지(CLK에서 화살표로 표시된 부분)에서 DQ 데이터까지의 시간은 5~7ns정도이며, 읽기데이터 DQ는 wire 시간지연을 거쳐서 DQ_D 데이터를 만든다.As shown in Fig. 2A, the SDRAM read data DQ is generated by the SDRAM clock signal CLK made by the timing delay of the clock signal HCLK. In general SDRAM, the time from CLK rising edge (marked by arrow in CLK) to DQ data is about 5 ~ 7ns, and read data DQ makes DQ_D data through wire time delay.
다시 도 1을 참조하면, 데이터 DQ와 클럭 HCLK_D가 쓰기/읽기 데이터 생성 블록(120)의 플립플롭(F/F)을 거쳐서 읽기데이터 RDATA를 생성하게 된다. 그런데, 타이밍지연을 정확히 예측하는 모델을 만들 수 없을 뿐만 아니라, 공정에 따라 편차가 크게 발생할 수 있어서, 도 2의 B와 같이 데이터 셋업 마진(Data Setup Margin)을 확보하는 HCLK_D를 만들기는 대단히 어렵다.Referring back to FIG. 1, the data DQ and the clock HCLK_D generate the read data RDATA through the flip-flop F / F of the write / read
공정 등 예측하지 못하는 변수에 의해서 클럭 HCLK_D의 타이밍이 일치하지 않을 경우를 대비하여, 도 1의 지연신호 생성 블록(130)에서 보듯이 METAL OPTION을 설정한다. Metal Revision을 통해서 정확한 타이밍을 확보하기 위한 방법이지만, Metal Revision에 의한 TTM(Time To Market)이 길어지게 되고, 추가 공정비용이 소요된다.In case the timing of the clock HCLK_D does not match due to an unexpected parameter such as a process, the METAL OPTION is set as shown in the delay
뿐만 아니라 읽기 클럭과 쓰기 클럭이 동일하기 때문에, 위와 같은 방법에 의한 SDRAM 읽기 타이밍 조절로 인해서 쓰기 클럭도 변형되게 된다. 이로 인하여 SDRAM 데이터 쓰기 동작에 문제가 발생한다.In addition, since the read clock and the write clock are the same, the write clock is modified due to the SDRAM read timing adjustment by the above method. This causes a problem in the SDRAM data write operation.
따라서, SDRAM등 Synchronous 메모리와 메모리 콘트롤러 사이의 스큐를 조절할 수 있는 특별한 장치가 요구된다.Therefore, a special device that can control the skew between the synchronous memory and the memory controller such as SDRAM is required.
상기한 바와 같은 문제를 해결하기 위해, 본 발명은 종래의 메모리 콘트롤러가 가지고 있던 SDRAM 쓰기/읽기 클럭의 조절을 재공정없이 할 수 있는 장치를 개발하여, 메탈 옵션 등을 이용한 재공정을 없애고, 칩 생산에 있어서의 손실을 줄일 수 있는 외부 메모리와 메모리 콘트롤러 사이의 스큐를 자동 조절하는 장치를 제공하는 데 있다. 또한, 외부메모리와 메모리 콘트롤러 사이의 스큐를 자동 조절하여 주파수 166MHz까지 안정적으로 동작하는 메모리 콘트롤러를 제공하는 데 있다.In order to solve the above problems, the present invention has developed a device that can control the SDRAM write / read clocks of the conventional memory controller without reprocessing, eliminating the reprocessing using metal options, and chip It is to provide a device that automatically adjusts the skew between the external memory and the memory controller to reduce the loss in production. In addition, the present invention provides a memory controller that stably operates up to a frequency of 166 MHz by automatically adjusting the skew between the external memory and the memory controller.
상기와 같은 과제를 해결하기 위한 본 발명에 따른 메모리 콘트롤러는,Memory controller according to the present invention for solving the above problems,
SDRAM 메모리 콘트롤러의 동작모드를 설정하는 모드 레지스터 블록; 상기 모드 레지스터 블록의 설정에 따라 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 생성하는 주파수 & 클럭 스큐 생성 블록; 클럭 신호(HCLK)와 상기 클럭 주파수(Sek_C_M)를 수신하여 제1 클럭 신호(HCLK_1), 제2 클럭 신호(HCLK_2)를 생성하는 클럭 주파수 생성 블록; 상기 제1 클럭 신호(HCLK_1)와 읽기 클럭 스큐(Sek_C_R)를 수신하여 읽기 클럭 신호(HCLK_R)를 생성하는 읽기 클럭 신호 생성 블록; 상기 제2 클럭 신호(HCLK_2)와 쓰기 클럭 스큐(Sek_C_W)를 수신하여 쓰기 클럭 신호(HCLK_W)를 생성하는 쓰기 클럭 신호 생성 블록; 쓰기선택신호(WRITE)에 의해 쓰기 데이터를 생성하거나, 상기 읽기 클럭 신 호(HCLK_R)를 수신하여 읽기 데이터를 생성하는 데이터 생성 블록; 상기 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 수신하여 쓰기 데이터, 테스트 SDRAM 신호, 그리고 비교 종료 신호(Compare Done)를 생성하는 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록; 및, SDRAM 신호, 테스트 SDRAM 신호, 그리고 비교 종료 신호를 수신하여 최종 SDRAM 신호를 선택하는 SDRAM 신호 선택 블록을 포함하며, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록에서 생성된 비교 종료 신호(Compare Done)에 의해 주파수 & 클럭 스큐 생성 블록에서 생성되는 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 바꾸어가면서 SDRAM을 테스트하여 적합한 클럭을 찾아내는 것을 특징으로 한다.A mode register block for setting an operation mode of the SDRAM memory controller; A frequency & clock skew generation block for generating a clock frequency Sek_C_M, a read clock skew Sek_C_R, and a write clock skew Sek_C_W according to the setting of the mode register block; A clock frequency generation block receiving a clock signal HCLK and the clock frequency Sek_C_M to generate a first clock signal HCLK_1 and a second clock signal HCLK_2; A read clock signal generation block configured to receive the first clock signal HCLK_1 and a read clock skew Sek_C_R to generate a read clock signal HCLK_R; A write clock signal generation block configured to receive the second clock signal HCLK_2 and a write clock skew Sek_C_W to generate a write clock signal HCLK_W; A data generation block generating write data by a write select signal WRITE, or generating read data by receiving the read clock signal HCLK_R; Test SDRAM signal generation & write read data receiving the clock frequency Sek_C_M, read clock skew Sek_C_R, and write clock skew Sek_C_W to generate write data, a test SDRAM signal, and a compare end signal. Comparison block; And an SDRAM signal selection block receiving the SDRAM signal, the test SDRAM signal, and the comparison end signal to select the final SDRAM signal, wherein the comparison end signal generated in the test SDRAM signal generation & write read data comparison block By changing the clock frequency (Sek_C_M), read clock skew (Sek_C_R), and write clock skew (Sek_C_W) generated in the frequency & clock skew generation block, the SDRAM is tested to find a suitable clock.
여기서, 상기 모드 레지스터 블록에서 모드는 제1 내지 제4 모드(00, 01, 10, 11)로 분류되고, 상기 제1 모드는 위상 고정 루프 클럭 생성기(PLL)를 사용하며, 상기 제2 모드는 프리스케일러(prescaler) 클럭 분주기를 사용하고, 상기 제3 모드는 클럭 주파수를 외부 클럭주파수 그대로 사용하고 클럭 스큐만 자동조절하며, 상기 제4 모드는 사용자가 지정하는 클럭 주파수 및 클럭 스큐를 사용하는 것을 특징으로 한다.Here, in the mode register block, modes are classified into first to fourth modes (00, 01, 10, and 11), the first mode uses a phase locked loop clock generator (PLL), and the second mode is A prescaler clock divider is used, and the third mode uses the clock frequency as an external clock frequency and automatically adjusts only the clock skew, and the fourth mode uses a clock frequency and a clock skew specified by the user. It features.
또한, 상기 주파수 & 클럭 스큐 생성 블록은,In addition, the frequency & clock skew generation block,
상기 비교 종료 신호에 의해 상기 클럭 주파수, 쓰기 클럭 스큐, 읽기 클럭 스큐를 순차적으로 바꾸는 선택 생성 블록(Selection Generation Block)과, 상기 선택 생성 블록에서 출력된 신호, 최종 SDRAM 신호, 그리고 사용자기 지정하는 클럭 주파수 및 클럭 스큐를 수신하여 적합한 클럭 주파수, 읽기 클럭 스큐, 그리고 쓰기 클럭 스큐를 선택하는 멀티플랙서를 포함하는 것을 특징으로 한다.A selection generation block for sequentially changing the clock frequency, write clock skew, and read clock skew by the comparison end signal; a signal output from the selection generation block, a final SDRAM signal, and a user-specified clock; And a multiplexer that receives the frequency and clock skew to select the appropriate clock frequency, read clock skew, and write clock skew.
또한, 상기 클럭 주파수 생성 블록은,In addition, the clock frequency generation block,
클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 위상 고정 루프 클럭 생성기(PLL)와, 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 프리스케일러(prescaler) 클럭 분주기와, 상기 위상 고정 루프 클럭 생성기(PLL)와 프리스케일러(prescaler) 클럭 분주기에서 출력된 신호를 수신하여 클럭 주파수를 생성하는 멀티플랙서를 포함하는 것을 특징으로 한다.A phase locked loop clock generator PLL that receives a clock frequency Sek_C_M and a clock signal HCLK, a prescaler clock divider that receives a clock frequency Sek_C_M and a clock signal HCLK, and the phase locked And a multiplexer configured to receive a signal output from a loop clock generator (PLL) and a prescaler clock divider to generate a clock frequency.
또한, 상기 데이터 생성 블록은,In addition, the data generation block,
쓰기선택신호(WRITE)에서 의해서 쓰기데이터(WDATA)를 생성하여 외부의 SDRAM 데이터 신호 DQ으로 전송하는 버퍼와, 읽기 클럭 신호(HCLK_R)와 상기 SDRAM 데이터 신호 DQ로부터 받은 신호(DQ_D)를 수신하여 읽기 데이터를 생성하는 플립플롭(F/F)을 포함하는 것을 특징으로 한다.A buffer for generating write data WDATA by the write select signal WRITE and transmitting it to an external SDRAM data signal DQ, and receiving and reading a read clock signal HCLK_R and a signal DQ_D received from the SDRAM data signal DQ. And flip-flops (F / F) for generating data.
또한, 상기 읽기 클럭 신호 생성 블록은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀과, 읽기 클럭 스큐(Sek_C_R)와, 상기 딜레이 셀에 의해 딜레이 된 제1 클럭 신호(HCLK_1)들을 수신한 후, 적합한 제1 클럭 신호를 선택하여 읽기 클럭 신호(HCLK_R)를 생성하는 멀티플랙서를 포함하는 것을 특징하는 것을 특징으로 한다.The read clock signal generation block may further include a delay cell for artificially generating a delayed clock skew, a read clock skew Sek_C_R, and first clock signals HCLK_1 delayed by the delay cell. And a multiplexer for selecting a suitable first clock signal to generate a read clock signal HCLK_R.
또한, 상기 쓰기 클럭 신호 생성 블록은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀과, 쓰기 클럭 스큐(Sek_C_W)와, 상기 딜레이 셀에 의해 딜레이된 제2 클럭 신호(HCLK_2)들을 수신한 후, 적합한 제2 클럭 신호를 선택하여 쓰기 클럭 신호(HCLK_W)를 생성하는 멀티플랙서를 포함하는 것을 특징으로 한다.The write clock signal generation block may further include a delay cell for artificially generating a delayed clock skew, a write clock skew Sek_C_W, and second clock signals HCLK_2 delayed by the delay cell. And a multiplexer for selecting a suitable second clock signal to generate the write clock signal HCLK_W.
또한, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록은,In addition, the test SDRAM signal generation & write read data comparison block,
클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 저장하는 테스트 결과 저장 메모리와, 쓰기 데이터 및 테스트 SDRAM 신호를 SDRAM으로 전송하는 SDRAM 신호 생성 블록과, 읽기 데이터와 상기 쓰기 데이터를 비교하여 비교 종료 신호(Compare Done)를 상기 SDRAM 신호 생성 블록과 상기 주파수 & 클럭 스큐 생성 블록으로 전송하는 쓰기 읽기 데이터 비교 블록 및, 최종적으로 적합한 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 결정하는 주파수 및 클럭 스큐 결정 블록을 포함하는 것을 특징으로 한다.A test result storage memory for storing the clock frequency Sek_C_M, the read clock skew Sek_C_R, and the write clock skew Sek_C_W, an SDRAM signal generation block for transferring write data and a test SDRAM signal to the SDRAM, read data and the Write read data comparison block that compares write data and transmits a compare end signal to the SDRAM signal generation block and the frequency & clock skew generation block, and finally a suitable clock frequency (Sek_C_M) and read clock skew (Sek_C_R). And a frequency and clock skew determination block for determining the write clock skew Sek_C_W.
상기한 바와 같은 본 발명에 따른 메모리 콘트롤러는, 칩 외부에 SDRAM등 싱크로너스 메모리를 지원하는 메모리 컨트롤러를 설계할 때, 메모리 콘트롤러 칩과 외부 싱크로너스 메모리 사이의 클럭 스큐를 조절하기 위해 사용될 수 있다. The memory controller according to the present invention as described above may be used to adjust the clock skew between the memory controller chip and the external synchronous memory when designing a memory controller that supports synchronous memory such as SDRAM outside the chip.
종래의 경우, 클럭 스큐가 맞지 않을 때, 메탈 옵션 등을 이용하여 재 공정을 통해 원하는 칩을 생산할 수 있으나, 본 발명에 따른 메모리 콘트롤러에 의하면, 재공정없이 레지스터 셋팅으로 클럭 스큐의 셋 업 마진을 확보할 수 있는 효과가 있고, 또한 이를 통하여, SDRAM 최대주파수 166MHz까지 안정적으로 동작하는 것이 가능하다는 효과가 있다.In the conventional case, when the clock skew is not correct, a desired chip may be produced through a reprocessing process using a metal option, etc. However, according to the memory controller according to the present invention, the setup margin of the clock skew is set by register setting without reprocessing. There is an effect that can be secured, and through this, it is possible to operate stably up to a maximum frequency of 166MHz SDRAM.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 우선, 도면들 중 동일한 구성요소 또는 부품들은 가능한 한 동일한 참조부호를 나타내고 있음에 유의해야 한다. 본 발명을 설명함에 있어서 관련된 공지기능 혹은 구성에 대한 구체적인 설명은 본 발명의 요지를 모호하게 하지 않기 위해 생략한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention; First, it should be noted that the same components or parts in the drawings represent the same reference numerals as much as possible. In describing the present invention, detailed descriptions of related well-known functions or configurations are omitted in order not to obscure the gist of the present invention.
도 3은 본 발명에 따른 메모리 콘트롤러가 도시된 도, 도 4는 본 발명에 따른 메모리 콘트롤러의 모드 레지스터 블록에서의 모드에 대한 도, 도 5는 본 발명에 따른 메모리 콘트롤러의 주파수 & 클럭 스큐 생성 블록이도시된 도, 도 6은 본 발명에 따른 메모리 콘트롤러의 클럭 주파수 생성 블록이 도시된 도, 도 7은 본 발명에 따른 메모리 콘트롤러의 데이터 생성 블록이 도시된 도, 도 8은 본 발명에 따 른 메모리 콘트롤러의 읽기 클럭 신호 생성 블록이 도시된 도, 도 9는 본 발명에 따른 메모리 콘트롤러의 쓰기 클럭 신호 생성 블록이 도시된 도, 도 10은 본 발명에 따른 메모리 콘트롤러의 SDRAM 신호 선택 블록이 도시된 도, 도 11은 본 발명에 따른 메모리 콘트롤러의 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록이 도시된 도, 도 12는 주파수 및 클럭 스큐 결정 블록에서 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 최종 결정하는 과정이 도시된 도, 도 13은 본 발명에 따른 메모리 콘트롤러의 쓰기 타이밍 다이어그램이 도시된 도, 도 14는 본 발명에 따른 메모리 콘트롤러의 읽기 타이밍 다이어그램이 도시된 도이다.3 is a diagram illustrating a memory controller according to the present invention, FIG. 4 is a diagram illustrating a mode in a mode register block of a memory controller according to the present invention, and FIG. 5 is a frequency & clock skew generation block of a memory controller according to the present invention. 6 shows a clock frequency generation block of the memory controller according to the present invention, FIG. 7 shows a data generation block of the memory controller according to the present invention, and FIG. 9 is a block diagram illustrating a read clock signal generation block of a memory controller. FIG. 9 is a diagram illustrating a write clock signal generation block of a memory controller according to the present invention. FIG. 10 is a block diagram illustrating an SDRAM signal selection block of a memory controller according to the present invention. FIG. 11 illustrates a test SDRAM signal generation & write read data comparison block of a memory controller according to the present invention. FIG. 12 illustrates a frequency and a clock. FIG. 13 is a diagram illustrating a process of finally determining a read clock skew Sek_C_R and a write clock skew Sek_C_W in a queue determination block. FIG. 13 is a diagram illustrating a write timing diagram of a memory controller according to the present invention. A read timing diagram of a memory controller according to the invention is shown.
외부메모리와 메모리 콘트롤러 사이의 클럭 스큐를 정확하게 맞추는 것을 대단히 어렵다. 읽기 데이터와 쓰기 데이터를 모두 만족시키는 클럭을 찾아야 하며, 주파수에 따라 스큐가 바뀌기 때문에 이 부분도 고려해야 한다.It is very difficult to accurately match the clock skew between the external memory and the memory controller. You need to find a clock that satisfies both the read and write data, and this must be taken into account as the skew varies with frequency.
도 3을 참조하면, 본 발명에서는 메모리의 읽기 클럭과 쓰기 클럭을 읽기 클럭 신호(HCLK_R), 쓰기 클럭 신호(HCLK_W)의 신호로 분리하여 쓰기와 읽기 클럭을 독립적으로 동작가능하게 하였다. 그리고, 주파수 조절을 위해서 클럭 주파수 생성 블록(Clock Frequency Generation Block)(30)을 이용하였다.Referring to FIG. 3, the read and write clocks of the memory are divided into signals of the read clock signal HCLK_R and the write clock signal HCLK_W to enable the write and read clocks to operate independently. In addition, a clock
동작의 개요를 살펴보면, 모드 레지스터 블록(Mode Register)(10)에서 동작모드를 정상 모드(Normal Mode)로 설정하게 되면, 주파수 & 클럭 스큐 생성 블록(Frequency & Clock Skew Declaration Block)(20)에서는 자체 알고리즘에 의해서 클럭 주파수(Sek_C_M), 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 신호를 만든다.Looking at the overview of the operation, when the operation mode is set to the normal mode in the mode register block (10), the frequency & clock skew generation block (Frequency & Clock Skew Declaration Block) 20 The algorithm generates a clock frequency Sek_C_M, a write clock skew Sek_C_W, and a read clock skew Sek_C_R.
클럭 주파수 생성 블록(30)은 클럭 신호(HCLK)와 클럭 주파수(Sek_C_M) 신호를 받아서 주파수를 저주파수에서 고주파수까지 조절시킬 수 있다. 여기서, 저주파수는 통상적으로 1 ~ 10 MHz 범위를 뜻하고, 고주파수는 일반 SDRAM의 고주파수로 133MHz, 또는 166MHz를 뜻한다. 이하에서도 동일하다.The clock
클럭 주파수 생성 블록(30)에서 만들어진 클럭 신호는 읽기 클럭 신호 생성 블록(Read Clock Generation Block)(50)과 쓰기 클럭 신호 생성 블록(Write Clock Generation Block)(60)으로 제1 클럭 신호(HCLK_1), 제2 클럭 신호(HCLK_2) 형태로 각각 들어간다.The clock signal generated by the clock
쓰기 클럭 신호 생성 블록(60)은 제2 클럭 신호(HCLK_2)와 쓰기 클럭 스큐(Sek_C_W) 신호를 받아 클럭 스큐가 조절된 쓰기 클럭 신호(HCLK_W)를 만들어 주며, 최종적으로 쓰기 클럭 신호(HCLK_W)가 메모리의 쓰기 클럭으로 사용된다.The write clock
읽기 클럭 신호 생성 블록(50)은 제1 클럭 신호(HCLK_1)와 읽기 클럭 스큐(Sek_C_R) 신호를 받아 클럭 스큐가 조절된 읽기 클럭 신호(HCLK_R)를 만들어 주며, 최종적으로 읽기 클럭 신호(HCLK_R)가 메모리의 읽기 클럭으로 사용된다. The read clock
결국, 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(Test SDRAM Signal Generation & WDATA, RDATA Comparison)(80)의 비교 종료 신호(Compare Done)를 보고 주파수 & 클럭 스큐 생성 블록(20)에 의해 만들어진 클럭 주파수(Sek_C_M), 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 신호를 바꾸어 가면서, SDRAM을 테스트해서, 최적의 클럭을 찾아내는 방식이다.Eventually, the compare end signal (Compare Done) of the test SDRAM signal generation & write read data comparison block (Test SDRAM Signal Generation & WDATA, RDATA Comparison) 80 is used to view the clock frequency generated by the frequency & clock
도 4는 도 3의 메모리 콘트롤러의 모드 레지스터 블록이 도시되어 있다.4 illustrates a mode register block of the memory controller of FIG. 3.
모드 레지스터 블록(Mode Register Block)(10)에서 모드는 제1 내지 제4 모드(00, 01, 10, 11모드)로 분류되고, 상기 제1 모드(00모드)(이하 '00')는 위상 고정 루프 클럭 생성기(PLL)를 사용하며, 상기 제2 모드(01모드)(이하 '01')는 프리스케일러(prescaler) 클럭 분주기를 사용하고, 상기 제3 모드(10모드)(이하 '10')는 클럭 주파수를 외부 클럭주파수 그대로 사용하고 클럭 스큐만 자동조절하며, 상기 제4 모드(11모드)(이하 '11')는 사용자가 지정하는 클럭 주파수 및 클럭 스큐를 사용한다.In the
모드 레지스터 블록(10)는 작동 모드를 '00' 또는 '01'으로 설정하여, SDRAM 컨트롤러에서 설정할 수 있는 값으로 자동적으로 계산할 수 있다. '00'과 '01'의 차이점은 클럭주파수를 PLL을 사용하는가 아니면, 프리스케일러(Prescaler)를 사용하는 가이다. PLL은 현재 클럭을 고주파수로 변화시켜주는 블록이며, Prescaler는 현재의 클럭을 저주파수로 변화시켜주는 블록이다.The
SDRAM 컨트롤러에 공급되는 클럭이 고주파수이면 Prescaler를 사용하여 저주파수로 변환시키면서 클럭 스큐를 찾을 수 있으며, 만약 클럭이 저주파수이면 PLL을 사용하여 고주파수로 변환시키면서 클럭 스큐를 찾을 수 있다. 모드를 '10'로 설정하면 클럭 주파수는 외부 클럭 주파수를 그대로 사용하고, 클럭 스큐만 자동조절하는 방법을 사용할지 결정한다. 마지막으로 모드를 '11'로 설정하면 사용자가 클럭 주파수와 클럭 스큐를 설정할 수 있으며, 사용자 지정 입력 신호(User Defined Selection) 에 따라 클럭 주파수와 클럭 스큐가 결정된다.If the clock supplied to the SDRAM controller is high frequency, the clock skew can be found by converting to low frequency using the Prescaler. If the clock is low frequency, the clock skew can be found by converting to high frequency using the PLL. When the mode is set to '10', the clock frequency uses the external clock frequency as it is and decides whether to use automatic clock skew adjustment. Finally, if the mode is set to '11', the user can set the clock frequency and clock skew, and the clock frequency and clock skew are determined by the user defined input signal.
도 5에는 도 3의 주파수 & 클럭 스큐 생성 블록의 세부 내용이 도시되어 있다.FIG. 5 shows details of the frequency & clock skew generation block of FIG. 3.
상기 주파수 & 클럭 스큐 생성 블록(20)은 비교 종료 신호(Compare Done)에 의해 클럭 주파수, 쓰기 클럭 스큐, 읽기 클럭 스큐를 순차적으로 바꾸는 선택 생성 블록(Selection Generation Block)(21)과, 상기 선택 생성 블록(21)에서 출력된 신호(Test Selection), 최종 SDRAM 신호(Final Selection), 그리고 사용자가 지정하는 입력 신호(User Defined Selection)를 수신하여 적합한 클럭 주파수, 읽기 클럭 스큐, 그리고 쓰기 클럭 스큐를 선택하는 멀티플랙서(23)를 포함하여 구성된다.The frequency & clock
모드 레지스터 블록(10)은 SDRAM 컨트롤러에서 설정할 수 있는 값으로 자동적으로 계산하지 않고 사용자가 클럭 주파수와 클럭 스큐를 설정할 수 있는 사용자 지정 입력 신호(User Defined Selection) 를 설정할 것인지, 아니면 자동테스트에 의한 클럭 스큐를 설정할지 결정하는 레지스터이다. 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80)에서 만들어진 비교 종료 신호(Compare Done)는 SDRAM을 통한 데이터 쓰기, 읽기 테스트 완료를 나타내는 신호로서 테스트가 완료되어 비교 종료 신호(Compare Done)가 "High"일 때, Sek_C_M, Sek_C_W, Sek_C_R 신호가 선택 생성 블록(21)에 의해서 바뀌게 된다. "Final Selection" 신호는 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80)에서 만들어진 신호로서, 모 든 검증이 끝나고 최종적은 결정된 Sek_C_M, Sek_C_W, Sek_C_R 신호를 의미한다.The
사용자 지정 입력 신호(User Defined Selection)는 SDRAM 컨트롤러의 입력 신호로서 사용자가 클럭 주파수와 클럭 스큐를 임의로 설정할 수 있으며, 테스트를 위해 저주파수로 설정하거나, 디버깅(debugging)용으로 사용될 수 있다.User Defined Selection is an input signal from the SDRAM controller that allows the user to set the clock frequency and clock skew arbitrarily, set it to a low frequency for testing, or use it for debugging.
도 6에는 클럭 주파수 생성 블록이 상세히 도시되어 있다.6 illustrates the clock frequency generation block in detail.
도 6에 도시된 바와 같이, 상기 클럭 주파수 생성 블록(30)은 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 위상 고정 루프 클럭 생성기(PLL)(31)와, 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 프리스케일러(prescaler) 클럭 분주기(32)와, 상기 위상 고정 루프 클럭 생성기(PLL)와 프리스케일러(prescaler) 클럭 분주기에서 출력된 신호를 수신하여 클럭 주파수를 생성하는 멀티플랙서(33)를 포함하여 구성된다.As shown in FIG. 6, the clock
주파수 & 클럭 스큐 생성 블록(20)에 의해 만들어진 클럭 주파수 신호(Sek_C_M)가 위상 고정 루프 클럭 생성기(PLL)(31)와 프리스케일러(prescaler) 클럭 분주기(32)에 들어가서 클럭 주파수를 바꾸어주게 된다. 만약 위상 고정 루프 클럭 생성기(PLL)(31)와 프리스케일러(prescaler) 클럭 분주기(32)가 내장되어 있지 않거나, 주파수를 HCLK 그대로 사용할 경우, 모드 레지스터(10)의 신호를 '10' 또는 '11'로 설정하여 멀티플랙서(33)를 클럭 신호(HCLK)를 통과(bypass)시킬 수 있다.The clock frequency signal Sek_C_M generated by the frequency & clock
여기서, 위상 고정 루프 클럭 생성기(PLL)는 현재 클럭을 고주파수로 변화시 켜주며, 프리스케일러(prescaler) 클럭 분주기(32)는 현재의 클럭을 저주파수로 변화시켜준다.Here, the phase locked loop clock generator (PLL) changes the current clock to a high frequency, and the
도 7에는 데이터 생성 블록이 상세히 도시되어 있다.7 shows the data generation block in detail.
도 7에 도시된 바와 같이, 상기 데이터 생성 블록(40)은 쓰기선택신호(WRITE)에서 의해서 쓰기데이터(WDATA)를 생성하여 외부의 SDRAM 데이터 신호 DQ으로 전송하는 버퍼(41)와, 읽기 클럭 신호(HCLK_R)와 상기 SDRAM 데이터 신호 DQ로부터 받은 신호(DQ_D)를 수신하여 읽기 데이터를 생성하는 플립플롭(F/F)(42)을 포함하여 구성된다.As shown in FIG. 7, the
즉, 데이터 생성 블록(40)에서는 WDATA, WRITE 신호에 의해서 SDRAM 쓰기 데이터 WDATA_buf 신호가 만들어져서, DQ 신호로 외부 SDRAM로 들어가게 된다. 그리고, SDRAM 읽기 데이터 DQ_D와 HCLK_R 신호에 의해 RDATA신호가 만들어진다. 결국, SDRAM 데이터 신호 DQ를 읽기, 쓰기 모두 사용하기 위해 도 7과 같은 데이터 생성 블록이 구성된다.That is, in the
도 8에는 읽기 클럭 신호 생성 블록이 상세히 도시되어 있다.8 shows a read clock signal generation block in detail.
도 8에 도시된 바와 같이, 상기 읽기 클럭 신호 생성 블록(50)은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀(51)과, 읽기 클럭 스큐(Sek_C_R)와, 상기 딜레이 셀(51)에 의해 딜레이된 제1 클럭 신호(HCLK_1)들을 수신한 후, 적합한 제1 클럭 신호를 선택하여 읽기 클럭 신호(HCLK_R)를 생성하는 멀티플랙서(52) 를 포함하여 구성된다.As shown in FIG. 8, the read clock
상기 딜레이 셀(51)을 이용한 멀티플랙서(52) 입력을 사용자의 정확도 요구에 맞추어서 증감시킬 수 있게 된다.The
도 9에는 쓰기 클럭 신호 생성 블록이 상세히 도시되어 있다.9 shows a write clock signal generation block in detail.
도 9에 도시된 바와 같이, 상기 쓰기 클럭 신호 생성 블록(60)은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀(61)과, 쓰기 클럭 스큐(Sek_C_W)와, 상기 딜레이 셀(61)에 의해 딜레이된 제2 클럭 신호(HCLK_2)들을 수신한 후, 적합한 제2 클럭 신호를 선택하여 쓰기 클럭 신호(HCLK_W)를 생성하는 멀티플랙서(62)를 포함하여 구성된다. 상기 읽기 클럭 신호 생성 블록과 마찬가지로 상기 딜레이 셀(61)을 이용한 멀티플랙서(62) 입력을 사용자의 정확도 요구에 맞추어서 증감시킬 수 있게 된다.As illustrated in FIG. 9, the write clock
도 10에는 SDRAM 신호 선택 블록이 상세히 도시되어 있다.10 shows the SDRAM signal selection block in detail.
상기 SDRAM 신호 선택 블록(SDRAM Signal Selection Block)(70)은 SDRAM 신호(SDRAM Signal)를 선택하는 블록이다. SDRAM 신호는 CAS, RAS, WE, ADDR 등의 신호가 있으며, 도 10에서 SDRAM 신호는 실제 동작을 위한 신호이고, 테스트 SDRAM 신호(Test SDRAM Signal)는 클럭 스큐를 조절하기 위해 테스트 시 사용하는 신호이다. 만약 클럭 스큐를 찾기 위해 시험 테스트를 하는 경우, 최종 선택 신호(Final Selection)에 의해 테스트 SDRAM 신호가 최종 신호로 출력되고, 클럭 스큐 테스트 가 끝난 경우는 SDRAM 신호가 최종 신호로 출력된다.The SDRAM
도 11에는 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록이 상세히 도시되어 있다.11 illustrates a test SDRAM signal generation & write read data comparison block in detail.
도 11에 도시된 바와 같이, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80)은, 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 저장하는 테스트 결과 저장 메모리(81)와, 쓰기 데이터 및 테스트 SDRAM 신호를 SDRAM으로 전송하는 SDRAM 신호 생성 블록(82)과, 읽기 데이터와 상기 쓰기 데이터를 비교하여 비교 종료 신호(Compare Done)를 상기 SDRAM 신호 생성 블록과 상기 주파수 & 클럭 스큐 생성 블록으로 전송하는 쓰기 읽기 데이터 비교 블록(83)과, 최종적으로 적합한 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 결정하는 주파수 및 클럭 스큐 결정 블록(84)을 포함하여 구성된다.As illustrated in FIG. 11, the test SDRAM signal generation & write read
Mode Register, Sek_C_M, Sek_C_W, Sek_C_R 신호를 받아 테스트 결과 저장 메모리(Memory For Test Result)(81)에 저장시킨다. 이 후, SDRAM 신호 생성 블록(SDRAM Signal Generation Block)(82)에서 쓰기 데이터(Write Data), 테스트 SDRAM 신호를 SDRAM에 보낸다. 다음으로 SDRAM 신호 생성 블록(82)에서 SDRAM 쓰기 요청 신호를 보내어, 읽기 데이터(Read Data)를 쓰기 읽기 데이터 비교 블록(WDATA RDATA Comparision Block)(83)에서 받아, 쓰기 데이터와 비교하여 값이 맞는지 틀 린 지를 비교한 후, 비교 종료 신호(Compare Done), 비교 결과 신호(Compare Result)를 SDRAM 신호 생성 블록(82)에 보낸다. 이 결과는 테스트 결과 저장 메모리(81)에 전달되어 저장된다. 그리고, 쓰기 읽기 데이터 비교 블록(83)에서 비교 종료 신호(Compare Done)를 주파수 & 클럭 스큐 생성 블록(20)에 보내서 새로운Sek_C_M, Sek_C_W, Sek_C_R 신호를 만들게 한다. 여기서, SDRAM 신호 생성 블록(82)에서 만드는 쓰기 데이터는 랜덤(Random) 데이터 생성부를 이용하여 같은 값이 반복되지 않도록 할 수 있다.The Mode Register, Sek_C_M, Sek_C_W, and Sek_C_R signals are received and stored in the test result storage memory (Memory For Test Result) 81. Thereafter, the SDRAM
위와 값은 과정이 반복되어 주파수 및 클럭 스큐 결정 블록(Final Decision of Frequency & Clock Skew)(84)에서 최종적으로 Sek_C_M, Sek_C_W, Sek_C_R 신호를 결정한다.The above values are repeated to finally determine the Sek_C_M, Sek_C_W, and Sek_C_R signals in the frequency and clock
도 12는 주파수 및 클럭 스큐 결정 블록에서 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 최종 결정하는 과정이 도시된 도로써, 도 11의 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80) 중에 주파수 및 클럭 스큐 결정 블록(Final Decision of Frequency & Clock Skew)(84)에서 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 값을 찾는 방법이 나타나 있다.FIG. 12 illustrates a process of finally determining read clock skew (Sek_C_R) and write clock skew (Sek_C_W) in the frequency and clock skew determination block. The test SDRAM signal generation & write read data comparison block of FIG. The method of finding the write clock skew (Sek_C_W) and the read clock skew (Sek_C_R) in the frequency and clock
첫째로, 클럭 주파수 신호(Sek_C_M)에 의해서 1MHz에서 166MHz까지 바꾸고, 각각의 클럭 주파수 신호(Sek_C_M)에 맞게 쓰기 클럭 스큐(Sek_C_W) 신호를 0, 1, 2, … 변경한다. 그리고, 각각의 경우에 모두 읽기 클럭 스큐(Sek_C_R)를 바꾸어 간다. 최종적으로 모든 주파수에서 SDRAM 쓰기 읽기 테스트가 성공한 경우의 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 신호값 중 중간값을 채택하여 Setup, Hold 마진이 최적인 곳을 결정하게 된다.First, the clock frequency signal Sek_C_M is changed from 1 MHz to 166 MHz, and the write clock skew Sek_C_W signal is changed to 0, 1, 2,... According to each clock frequency signal Sek_C_M. Change it. In each case, the read clock skew Sek_C_R is changed. Finally, the intermediate values of the write clock skew (Sek_C_W) and the read clock skew (Sek_C_R) signals when the SDRAM write read test is successful at all frequencies are used to determine the optimal setup and hold margins.
도 13은 본 발명에 따른 메모리 콘트롤러의 쓰기 타이밍 다이어그램이 도시된 도이다.13 is a diagram illustrating a write timing diagram of a memory controller according to the present invention.
종래 메모리 콘트롤러의 타이밍 다이어그램(도 2 참조)과 비교하여 다른 점은 클럭 생성 블록의 선택 가능한 출력 클럭 신호가 HCLK_W1, HCLK_W2, HCLK_W3, HCLK_W4의 4종류가 만들어지며, 이 중 DQ DATA를 샘플링할 수 있는 정확한 신호를 딜레이 셀을 이용하여 선택할 수 있게 하는 것이 가능하다는 점이다. 만약 더욱 정교하게 클럭 타이밍을 제어하고자 한다면, 출력 클럭 신호를 4개 이상으로 늘리는 것 또한 가능하며 각각의 클럭 간격을 자유롭게 조정할 수 있다. Compared to the timing diagram of the conventional memory controller (see FIG. 2), the difference is that four types of selectable output clock signals of the clock generation block are produced, HCLK_W1, HCLK_W2, HCLK_W3, and HCLK_W4, among which DQ DATA can be sampled. It is possible to select the correct signal using a delay cell. If you want to control clock timing more precisely, it is also possible to increase the output clock signal to four or more and freely adjust each clock interval.
도 14는 본 발명에 따른 메모리 콘트롤러의 읽기 타이밍 다이어그램이 도시된 도이다.14 is a diagram illustrating a read timing diagram of a memory controller according to the present invention.
종래 메모리 콘트롤러의 타이밍 다이어그램(도 2 참조)과 비교하여 다른 점은 클럭 생성 블록의 선택 가능한 출력 클럭 신호가 HCLK_1, HCLK_2, HCLK_3, HCLK_4의 4종류가 만들어지며, 이 중 DQ_D DATA를 샘플링할 수 있는 정확한 신호를 멀티플렉서를 이용하여 선택하게 하는 것이 가능하다는 점이다. 만약 더욱 정교하게 클럭 타이밍을 제어하고자 한다면, 출력 클럭 신호를 4개 이상으로 늘리는 것 또한 가능하며 각각의 클럭 간격을 자유롭게 조정할 수 있다.Compared with the timing diagram of the conventional memory controller (see FIG. 2), the difference is that four types of selectable output clock signals of the clock generation block are made, HCLK_1, HCLK_2, HCLK_3, and HCLK_4, among which DQ_D DATA can be sampled. It is possible to select the correct signal using a multiplexer. If you want to control clock timing more precisely, it is also possible to increase the output clock signal to four or more and freely adjust each clock interval.
이상과 같이 본 발명에 따른 메모리 콘트롤러를 예시한 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명이 한정되는 것은 아니며, 본 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.As described above with reference to the drawings illustrating a memory controller according to the present invention, the present invention is not limited by the embodiments and drawings disclosed herein, it is various within the technical scope of the present invention by those skilled in the art Of course, modifications can be made.
도 1은 종래 기술에 따른 메모리 콘트롤러가 도시된 도,1 is a view showing a memory controller according to the prior art;
도 2는 도 1의 메모리 콘트롤러의 타이밍 다이어그램이 도시된 도,FIG. 2 is a timing diagram of the memory controller of FIG. 1;
도 3은 본 발명에 따른 메모리 콘트롤러가 도시된 도,3 is a view showing a memory controller according to the present invention;
도 4는 본 발명에 따른 메모리 콘트롤러의 모드 레지스터 블록에서의 모드에 대한 도,4 is a diagram of modes in a mode register block of a memory controller in accordance with the present invention;
도 5는 본 발명에 따른 메모리 콘트롤러의 주파수 & 클럭 스큐 생성 블록이도시된 도,5 illustrates a frequency & clock skew generation block of a memory controller according to the present invention;
도 6은 본 발명에 따른 메모리 콘트롤러의 클럭 주파수 생성 블록이 도시된 도,6 is a diagram illustrating a clock frequency generation block of a memory controller according to the present invention;
도 7은 본 발명에 따른 메모리 콘트롤러의 데이터 생성 블록이 도시된 도,7 is a diagram illustrating a data generation block of a memory controller according to the present invention;
도 8은 본 발명에 따른 메모리 콘트롤러의 읽기 클럭 신호 생성 블록이 도시된 도,8 is a block diagram illustrating a read clock signal generation block of the memory controller according to the present invention;
도 9는 본 발명에 따른 메모리 콘트롤러의 쓰기 클럭 신호 생성 블록이 도시된 도,9 is a block diagram illustrating a write clock signal generation block of the memory controller according to the present invention;
도 10은 본 발명에 따른 메모리 콘트롤러의 SDRAM 신호 선택 블록이 도시된 도,10 is a block diagram illustrating an SDRAM signal selection block of a memory controller according to the present invention;
도 11은 본 발명에 따른 메모리 콘트롤러의 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록이 도시된 도,11 is a block diagram illustrating a test SDRAM signal generation & write read data comparison block of a memory controller according to the present invention;
도 12는 주파수 및 클럭 스큐 결정 블록에서 읽기 클럭 스큐(Sek_C_R), 그리 고 쓰기 클럭 스큐(Sek_C_W)를 최종 결정하는 과정이 도시된 도,FIG. 12 illustrates a process of finally determining a read clock skew Sek_C_R and a write clock skew Sek_C_W in a frequency and clock skew determination block.
도 13은 본 발명에 따른 메모리 콘트롤러의 쓰기 타이밍 다이어그램이 도시된 도,13 is a diagram illustrating a write timing diagram of a memory controller according to the present invention;
도 14는 본 발명에 따른 메모리 콘트롤러의 읽기 타이밍 다이어그램이 도시된 도이다.14 is a diagram illustrating a read timing diagram of a memory controller according to the present invention.
<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>
10 : 모드 레지스터 블록(Mode Register)10: Mode register block
20 : 주파수 & 클럭 스큐 생성 블록(Frequency & Clock Skew Declaration Block)20: Frequency & Clock Skew Declaration Block
30 : 클럭 주파수 생성 블록(Clock Frequency Generation Block)30: Clock Frequency Generation Block
40 : 데이터 생성 블록(Data Generation Block)40: Data Generation Block
50 : 읽기 클럭 신호 생성 블록(Read Clock Generation Block)50: Read Clock Generation Block
60 : 쓰기 클럭 신호 생성 블록(Write Clock Generation Block)60: Write Clock Generation Block
70 : SDRAM 신호 선택 블록(SDRAM Signal Selection Block)70: SDRAM Signal Selection Block
80 : 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(Test SDRAM Signal Generation & WDATA, RDATA Comparison)80: Test SDRAM Signal Generation & Write Data Comparison Block (Test SDRAM Signal Generation & WDATA, RDATA Comparison)
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080033598A KR100920179B1 (en) | 2008-04-11 | 2008-04-11 | Memory controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080033598A KR100920179B1 (en) | 2008-04-11 | 2008-04-11 | Memory controller |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100920179B1 true KR100920179B1 (en) | 2009-10-06 |
Family
ID=41572017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080033598A KR100920179B1 (en) | 2008-04-11 | 2008-04-11 | Memory controller |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100920179B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622785A (en) * | 2016-07-15 | 2018-01-23 | 展讯通信(上海)有限公司 | Measure the method and system of in-line memory data read time |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131149A (en) * | 1997-06-04 | 2000-10-10 | Oak Technology, Inc. | Apparatus and method for reading data from synchronous memory with skewed clock pulses |
JP2001306391A (en) * | 2000-04-26 | 2001-11-02 | Nec Microsystems Ltd | Memory control circuit |
KR20050075226A (en) * | 2004-01-16 | 2005-07-20 | 삼성전자주식회사 | Apparatus of controlling memory |
KR20090041461A (en) * | 2007-10-24 | 2009-04-29 | 삼성전자주식회사 | Semiconductor memory device having input circuit for improving high speed operation |
-
2008
- 2008-04-11 KR KR1020080033598A patent/KR100920179B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131149A (en) * | 1997-06-04 | 2000-10-10 | Oak Technology, Inc. | Apparatus and method for reading data from synchronous memory with skewed clock pulses |
JP2001306391A (en) * | 2000-04-26 | 2001-11-02 | Nec Microsystems Ltd | Memory control circuit |
KR20050075226A (en) * | 2004-01-16 | 2005-07-20 | 삼성전자주식회사 | Apparatus of controlling memory |
KR20090041461A (en) * | 2007-10-24 | 2009-04-29 | 삼성전자주식회사 | Semiconductor memory device having input circuit for improving high speed operation |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622785A (en) * | 2016-07-15 | 2018-01-23 | 展讯通信(上海)有限公司 | Measure the method and system of in-line memory data read time |
CN107622785B (en) * | 2016-07-15 | 2020-04-14 | 展讯通信(上海)有限公司 | Method and system for measuring data reading time of embedded memory |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9000817B2 (en) | Apparatuses and methods for altering a forward path delay of a signal path | |
US9001594B2 (en) | Apparatuses and methods for adjusting a path delay of a command path | |
US7672191B2 (en) | Data output control circuit | |
US7259595B2 (en) | Circuit and method for detecting frequency of clock signal and latency signal generation circuit of semiconductor memory device with the circuit | |
US9601170B1 (en) | Apparatuses and methods for adjusting a delay of a command signal path | |
KR100873624B1 (en) | Power down mode control apparatus and dll circuit with the same | |
US7644324B2 (en) | Semiconductor memory tester | |
KR100988809B1 (en) | Semiconductor memory device and output enable signal generating method | |
KR100930401B1 (en) | Semiconductor memory device | |
KR101897050B1 (en) | Semiconductor Apparatus | |
KR101194380B1 (en) | Delay control circuit and semiconductor memory device including the same | |
KR20140080382A (en) | Semiconductor memory device and semiconductor memory system for conducting a parameter test | |
US8144530B2 (en) | Semiconductor memory device and method for generating output enable signal | |
US11348633B2 (en) | Selectively controlling clock transmission to a data (DQ) system | |
KR102016532B1 (en) | Semiconductor device and method of driving the same | |
KR20110080406A (en) | Delay-locked-loop circuit, semiconductor device and memory system having the delay-locked-loop circuit | |
US9419628B2 (en) | Measurement initialization circuitry | |
KR101062856B1 (en) | Skew Detection Circuit and Semiconductor Memory Device Using the Same | |
US8754656B2 (en) | High speed test circuit and method | |
KR101180405B1 (en) | Semiconductor Memory Apparatus And Test Method thereof | |
US8395946B2 (en) | Data access apparatus and associated method for accessing data using internally generated clocks | |
US9653186B2 (en) | Memory-testing device and memory-testing method | |
KR100920179B1 (en) | Memory controller | |
KR20120119441A (en) | Latency control circuit, semiconductor memory device including the same and latency control method | |
CN110364220B (en) | Circuit system and chip for measuring data reading time of embedded memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130527 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140612 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150626 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |