'[HARDWARE]/CORE'에 해당되는 글 11건
- 2012.09.12 NAND FLASH의 구조와 특징 11
- 2011.01.06 DDR3 SDRAM의 동작원리 - RESET, 8bit PREFETCH 1
- 2010.12.21 DDR3 SDRAM의 동작원리 - DYNAMIC ODT
2012. 9. 12. 15:00
전자 시스템은 물리적으로 눈에 보이고 만져지는 hardware 부분과 OS 또는 각종 응용 프로그램들인 software의 부분으로 이루어져 있다.
Software는 어떤 형식으로든 hardware에 저장되어야 하는데 일반적인 PC의 경우 LPC ROM에 BIOS
program이 들어가고 HDD에 OS나 응용 프로그램들이 저장되며 스마트폰 같은 경우엔 NOR Flash나
NAND Flash등에 software가 저장된다.
즉 software의 storage로 HDD, ROM이 사용될 수 있으며 ROM의 종류엔 EEPROM, Flash ROM등이 있고
Flash ROM의 종류엔 SPI Flash, NOR Flash, NAND Flash등이 있는데 본 포스트에선 Flash ROM의
한 종류인 NAND Flash에 대해 살펴보고자 한다.
1. NAND FLASH의 종류
NAND Flash는 크게 Single Level Cell이라고 하는 SLC type과 Multi Level Cell이라고 하는
MLC type으로 나눠진다.
SLC와 MLC type NAND Flash간의 가장 큰 차이점은 SLC는 memory cell당 1bit의 data가 저장되는데
반해 MLC는 memory cell당 2bit 이상의 data를 저장할 수 있다는 점이다.
SLC type의 cell에 전압을 인가하고 전류값을 읽었을 때 전류값이 있으면 저장되어 있는 bit가 '1'이라고
판단하고 전류값이 읽혀지지 않으면 저장되어 있는 bit가 '0'이라고 판단하게 되는것이다.
한 종류의 전압 level만 있으면 cell에 있는 data를 판단할 수 있어서 Single Level Cell인 것이다.
MLC type의 cell엔 3종류의 전압 level을 인가시켜서 4종류의 bit value가 얻어질 수 있기 때문에
Multi Level Cell 이라고 한다.
얻어지게 된다.
이상의 원리에 의해 SLC와 MLC의 실리콘 size가 같다면 MLC는 SLC대비 2배의 용량이 가능하기 때문에
가격 이점이 있지만 속도는 3배가 느린 단점이 있게 된다. (전압 레벨을 3번 바꿔가며 판단하므로...)
그래서 아래의 표에서 보듯이 SLC대비 MLC의 가격이 싸다고 표기되어 있지만 ECC 알고리즘은
어렵다고 되어있고 performance도 낮게 매겨지는 것이다.
(좋은 그림들 고마워요 micron !!!)
2. NAND FLASH의 특징
[BAD BLOCK]
① BAD BLOCK IDENTIFICATION
모든 mass storage와 같이 NAND Flash도 메모리 안에 초기의 bad block이 존재한다.
- NAND 제조사는 생산 공정에서 factory test를 거쳐 bad block을 검출
- 검출된 bad block에 marking을 하고 NAND의 특정 영역에 해당 위치들을 표기함
- 해당의 initial bad block을 사용자가 program이나 erase하면 marking 또한 지워지기 때문에 어떠한
용도로도 사용해선 안됨 (정상적인 cell에 영향을 줄 수도 있음)
- 그러므로 NAND를 사용하기 전엔 항상 NAND를 읽고 bad block을 검출하여 bad block table을
만들어서 관리해야 함
② PERMANENT FAILURES
- NAND를 동작시키다가 발생하는 불량
- NAND의 cell에 0이나 1이 들어있지만 program, erase되지 않음
- Permanent failure가 발생하면 해당 block을 bad block table에 추가해서 추후에 사용치 않아야 함
③ TEMPORARY FAILURES
- NAND를 동작시키다가 발생하는 불량
- 적절한 방법을 통하여 복구할 수 있기 때문에 bad block table에 추가시키지 않음
[WEAR LEVELING]
- NAND의 cell은 기대 수명이 있기 때문에 특정 cell을 반복해서 사용하다 보면 해당 block이 wear out
되어 bad block이 될 수 있음
- Wear leveling이란 NAND의 logical memory address를 다른 physical memory address로 변경함으로써
momory의 전체 영역을 골고루 사용하여 cell의 기대 수명을 연장하는 것임
[ECC]
- Digital 신호의 처리에서 error는 항상 발생하는 요소이기 때문에 NAND에서의 bit error에 대해서도
적절한 Error Correction Code 알고리즘이 요구됨
- 저장 할 bit data를 ECC encoder에서 encoding해서 저장하고 저장된 bit data를 읽을 땐 ECC
decoding을 통해서 error를 검출하고... 만일 error가 발생했다면 정정해서 읽게 됨
- ECC encoding을 할 때 redundant bit가 발생하는데 이 부분이 나중에 NAND의 size를 논할 때 매우
중요한 요인이 됨
- Redundant bit란 RS-232통신을 예로들면 7bit의 data '0101000'를 전송할 때 odd parity 방식이라면
data의 끝에 '1'을 붙여서 실제 전송하게되는 신호는 '01010001'이 되는데 정보 data와는
무관하지만 수신측에서 에러 검출용으로 필요하기 때문에 정보 data와 같이 전송하게되는 마지막
bit '1'이 바로 redundant bit 임
- ECC는 다음의 종류들이 있으나 NAND에서 주로 사용하는 ECC는 block code계열인 Hamming code와
BCH임
- 더 많은 error를 정정하기 위해 convolution code나 LDPC를 사용할 수도 있겠지만 가격이 올라가니
trade off가 되지 않음
- 일반적으로 NAND에서의 Error Correction Code는 1 sector인 512byte에서 몇 개의 error를 정정시킬
수 있느냐로 명시함
- 예를 들어 1bit Hamming ECC라고 하면 22bit의 redundant bit를 사용해서 sector당 1bit의 error를
정정시킬 수 있다는 의미임
3. NAND FLASH의 용량
NAND Flash의 구조는 가장 작은 page단위가 모여서 block을 이루고 이 block이 몇개냐에 따라서 전체
용량이 결정된다.
1Gbit 이하의 density가 주로 생산되던 예전엔 block size를 32page로 구성하는 small block 구조였으나
근래엔 NAND의 용량이 커지면서 memory를 좀 더 효율적으로 관리하기 위해 block size를 64pgae로
구성하는 large block 구성이 주를 이루게 된다.
Large block NAND Flash의 장점은 block간의 회로가 줄었기 때문에 chip의 size가 작아지고 program,
read 등의 performance가 향상된다는 것이다.
Page와 block으로 구성되어 있는 이 NAND의 용량은 어떻게 계산되는가?
필자는 처음에 이 부분이 매우 이해하기 어려웠다.
김대리들은 어떤가요? NAND Flash의 datasheet들 보면서 금방 이해 했나요? 같이 알아가 봅시다.
NAND는 모눈종이 같은 page가 여러장 모여서 1 block을 형성하고 이 block을 모두 합치면 전체 NAND의
용량이 결정된다.
1Gbit용량의 large block NAND 구조를 보면서 계산해 보도록 한다.
Page는 cell이 한층으로 종이처럼 구성되어 넓게 퍼져있는 영역이다.
Large block에서 1 page는 2048Byte의 data 영역으로 이루어져 있다.
거기에 ECC에서 설명한 redundant bit로 사용되는 spare영역인 64Byte가 덧붙여져서 1 page는
2KByte + 64Byte가 된다.
(Small block에선 512Byte + 16Byte 구성임)
위 그림에서 초록색은 1 block을 나타내는데 large block에서 1 block은 64page로 구성된다.
여기엔 1 page에서 포함되었던 64Byte의 spare 영역이 64page만큼 들어있게 된다.
그래서 전체 용량은 다음과 같게 된다.
1 page = 2112 Byte
1 block = 1 page * 64
1 device = 1 block * 1024 = 2112 * 64 * 1024 = 138,412,032 Byte = 1056 Mbit ≒ 1 Gbit
어지러운가요?
실제의 NAND datasheet에서 해당 부분을 다시 한번 숙지해 보자.
다음은 T社의 2Gbit SLC 제품의 datasheet이다.
Block size는 1 page의 data 영역인 2048Byte에 64 page를 곱한 128KByte와 1 page의 spare 영역인
64Byte에 64 page를 곱한 4KByte의 합으로 표현되어 있다. (128KByte + 4KByte)
1 page = 2112 Byte
1 block = 1 page * 64 = 128 KByte + 4 KByte
1 device = 1 block * 2048
그러므로 전체 용량은 132 * 2048 = 2Gbit 가 된다.
[참고]
ECC in SLC NAND
- Micron -
Design and Use Considerations for NAND Flash Memory
- Micron -
Small Block vs Large Block NAND Flash Devices
- Micron -
Software는 어떤 형식으로든 hardware에 저장되어야 하는데 일반적인 PC의 경우 LPC ROM에 BIOS
program이 들어가고 HDD에 OS나 응용 프로그램들이 저장되며 스마트폰 같은 경우엔 NOR Flash나
NAND Flash등에 software가 저장된다.
즉 software의 storage로 HDD, ROM이 사용될 수 있으며 ROM의 종류엔 EEPROM, Flash ROM등이 있고
Flash ROM의 종류엔 SPI Flash, NOR Flash, NAND Flash등이 있는데 본 포스트에선 Flash ROM의
한 종류인 NAND Flash에 대해 살펴보고자 한다.
1. NAND FLASH의 종류
NAND Flash는 크게 Single Level Cell이라고 하는 SLC type과 Multi Level Cell이라고 하는
MLC type으로 나눠진다.
SLC와 MLC type NAND Flash간의 가장 큰 차이점은 SLC는 memory cell당 1bit의 data가 저장되는데
반해 MLC는 memory cell당 2bit 이상의 data를 저장할 수 있다는 점이다.
SLC type의 cell에 전압을 인가하고 전류값을 읽었을 때 전류값이 있으면 저장되어 있는 bit가 '1'이라고
판단하고 전류값이 읽혀지지 않으면 저장되어 있는 bit가 '0'이라고 판단하게 되는것이다.
한 종류의 전압 level만 있으면 cell에 있는 data를 판단할 수 있어서 Single Level Cell인 것이다.
MLC type의 cell엔 3종류의 전압 level을 인가시켜서 4종류의 bit value가 얻어질 수 있기 때문에
Multi Level Cell 이라고 한다.
얻어지게 된다.
이상의 원리에 의해 SLC와 MLC의 실리콘 size가 같다면 MLC는 SLC대비 2배의 용량이 가능하기 때문에
가격 이점이 있지만 속도는 3배가 느린 단점이 있게 된다. (전압 레벨을 3번 바꿔가며 판단하므로...)
그래서 아래의 표에서 보듯이 SLC대비 MLC의 가격이 싸다고 표기되어 있지만 ECC 알고리즘은
어렵다고 되어있고 performance도 낮게 매겨지는 것이다.
(좋은 그림들 고마워요 micron !!!)
2. NAND FLASH의 특징
[BAD BLOCK]
① BAD BLOCK IDENTIFICATION
모든 mass storage와 같이 NAND Flash도 메모리 안에 초기의 bad block이 존재한다.
- NAND 제조사는 생산 공정에서 factory test를 거쳐 bad block을 검출
- 검출된 bad block에 marking을 하고 NAND의 특정 영역에 해당 위치들을 표기함
- 해당의 initial bad block을 사용자가 program이나 erase하면 marking 또한 지워지기 때문에 어떠한
용도로도 사용해선 안됨 (정상적인 cell에 영향을 줄 수도 있음)
- 그러므로 NAND를 사용하기 전엔 항상 NAND를 읽고 bad block을 검출하여 bad block table을
만들어서 관리해야 함
② PERMANENT FAILURES
- NAND를 동작시키다가 발생하는 불량
- NAND의 cell에 0이나 1이 들어있지만 program, erase되지 않음
- Permanent failure가 발생하면 해당 block을 bad block table에 추가해서 추후에 사용치 않아야 함
③ TEMPORARY FAILURES
- NAND를 동작시키다가 발생하는 불량
- 적절한 방법을 통하여 복구할 수 있기 때문에 bad block table에 추가시키지 않음
[WEAR LEVELING]
- NAND의 cell은 기대 수명이 있기 때문에 특정 cell을 반복해서 사용하다 보면 해당 block이 wear out
되어 bad block이 될 수 있음
- Wear leveling이란 NAND의 logical memory address를 다른 physical memory address로 변경함으로써
momory의 전체 영역을 골고루 사용하여 cell의 기대 수명을 연장하는 것임
[ECC]
- Digital 신호의 처리에서 error는 항상 발생하는 요소이기 때문에 NAND에서의 bit error에 대해서도
적절한 Error Correction Code 알고리즘이 요구됨
- 저장 할 bit data를 ECC encoder에서 encoding해서 저장하고 저장된 bit data를 읽을 땐 ECC
decoding을 통해서 error를 검출하고... 만일 error가 발생했다면 정정해서 읽게 됨
- ECC encoding을 할 때 redundant bit가 발생하는데 이 부분이 나중에 NAND의 size를 논할 때 매우
중요한 요인이 됨
- Redundant bit란 RS-232통신을 예로들면 7bit의 data '0101000'를 전송할 때 odd parity 방식이라면
data의 끝에 '1'을 붙여서 실제 전송하게되는 신호는 '01010001'이 되는데 정보 data와는
무관하지만 수신측에서 에러 검출용으로 필요하기 때문에 정보 data와 같이 전송하게되는 마지막
bit '1'이 바로 redundant bit 임
- ECC는 다음의 종류들이 있으나 NAND에서 주로 사용하는 ECC는 block code계열인 Hamming code와
BCH임
- 더 많은 error를 정정하기 위해 convolution code나 LDPC를 사용할 수도 있겠지만 가격이 올라가니
trade off가 되지 않음
- 일반적으로 NAND에서의 Error Correction Code는 1 sector인 512byte에서 몇 개의 error를 정정시킬
수 있느냐로 명시함
- 예를 들어 1bit Hamming ECC라고 하면 22bit의 redundant bit를 사용해서 sector당 1bit의 error를
정정시킬 수 있다는 의미임
3. NAND FLASH의 용량
NAND Flash의 구조는 가장 작은 page단위가 모여서 block을 이루고 이 block이 몇개냐에 따라서 전체
용량이 결정된다.
1Gbit 이하의 density가 주로 생산되던 예전엔 block size를 32page로 구성하는 small block 구조였으나
근래엔 NAND의 용량이 커지면서 memory를 좀 더 효율적으로 관리하기 위해 block size를 64pgae로
구성하는 large block 구성이 주를 이루게 된다.
Large block NAND Flash의 장점은 block간의 회로가 줄었기 때문에 chip의 size가 작아지고 program,
read 등의 performance가 향상된다는 것이다.
Page와 block으로 구성되어 있는 이 NAND의 용량은 어떻게 계산되는가?
필자는 처음에 이 부분이 매우 이해하기 어려웠다.
김대리들은 어떤가요? NAND Flash의 datasheet들 보면서 금방 이해 했나요? 같이 알아가 봅시다.
NAND는 모눈종이 같은 page가 여러장 모여서 1 block을 형성하고 이 block을 모두 합치면 전체 NAND의
용량이 결정된다.
1Gbit용량의 large block NAND 구조를 보면서 계산해 보도록 한다.
Page는 cell이 한층으로 종이처럼 구성되어 넓게 퍼져있는 영역이다.
Large block에서 1 page는 2048Byte의 data 영역으로 이루어져 있다.
거기에 ECC에서 설명한 redundant bit로 사용되는 spare영역인 64Byte가 덧붙여져서 1 page는
2KByte + 64Byte가 된다.
(Small block에선 512Byte + 16Byte 구성임)
위 그림에서 초록색은 1 block을 나타내는데 large block에서 1 block은 64page로 구성된다.
여기엔 1 page에서 포함되었던 64Byte의 spare 영역이 64page만큼 들어있게 된다.
그래서 전체 용량은 다음과 같게 된다.
1 page = 2112 Byte
1 block = 1 page * 64
1 device = 1 block * 1024 = 2112 * 64 * 1024 = 138,412,032 Byte = 1056 Mbit ≒ 1 Gbit
어지러운가요?
실제의 NAND datasheet에서 해당 부분을 다시 한번 숙지해 보자.
다음은 T社의 2Gbit SLC 제품의 datasheet이다.
Block size는 1 page의 data 영역인 2048Byte에 64 page를 곱한 128KByte와 1 page의 spare 영역인
64Byte에 64 page를 곱한 4KByte의 합으로 표현되어 있다. (128KByte + 4KByte)
1 page = 2112 Byte
1 block = 1 page * 64 = 128 KByte + 4 KByte
1 device = 1 block * 2048
그러므로 전체 용량은 132 * 2048 = 2Gbit 가 된다.
[참고]
ECC in SLC NAND
- Micron -
Design and Use Considerations for NAND Flash Memory
- Micron -
Small Block vs Large Block NAND Flash Devices
- Micron -
'[HARDWARE] > CORE' 카테고리의 다른 글
DDR3 SDRAM의 동작원리 - RESET, 8bit PREFETCH (1) | 2011.01.06 |
---|---|
DDR3 SDRAM의 동작원리 - DYNAMIC ODT (0) | 2010.12.21 |
DDR3 SDRAM의 동작원리 - ZQ CALIBRATION (0) | 2010.12.17 |
DDR2 SDRAM의 동작원리 - POSTED CAS AND ADDITIVE LATENCY (2) | 2009.10.15 |
2011. 1. 6. 15:51
이제 DDR2의 시대는 무르익다 못해 완숙했으며 바야흐로 DDR3의 시대가 도래했다.
기존의 DDR1, DDR2와 비교하여 DDR3에 새로이 적용되는 기술을 살펴보고 정확히 이해하여 시스템을
설계할 수 있어야겠다.
1. DDR3 SDRAM에 적용된 새로운 기능
가. ZQ CALIBRATION
나. DYNAMIC ODT
다. RESET, 8bit PREFETCH
상기의 function들에 대하여 하나씩 검토하기로 한다.
☞ DDR3 SDRAM의 동작원리 - ZQ CALIBRATION
☞ DDR3 SDRAM의 동작원리 - DYNAMIC ODT
혹시 DDR1, DDR2 SDRAM에 대해서 학습이 필요하신 분은 본 블로그의 다른 포스트들을 먼저
숙지하시고 이 포스트를 접하셨으면 한다.
2. RESET
DDR3 SDRAM에선 device에 external reset이 추가되었다.
[RESET의 역할]
- Power-up동안 device의 pin들을 high-Z상태로 만들고 ODT를 disable한다.
- Device내부의 state machine을 reset하여 start-up하면서 발생할 수있는 에러를 방지한다.
- Reset이 low에 있는 동안 DRAM내부 회로가 initialize된다.
[RESET의 특징]
- Device의 initialize에도 사용되지만 warm boot에도 사용할 수 있다.
- DRAM에 저장되어 있던 data들과 mode register값들이 초기화 된다.
- Reset sequence전에 power supply는 stable되어야 한다.
- Power-up할 때 reset sequence에서 요구되는 period는 최소 200us.
- Warm reset sequence에서 요구되는 period는 최소 100ns.
[이전의 DDR SDRAM들과의 차이점]
- DDR3 이전의 DRAM들은 Initialization이 PRECHARGE나 AUTO REFRESH같은 command가
발생했을 때 이루어짐.
3. 8bit PREFETCH
DDR3 SDRAM은 8bit prefetch 구조를 가지고 있어서 동일한 동작 주파수라는 가정하에 DDR2보다
2배 빠른 속도로 동작한다. (DDR2 SDRAM은 4bit prefetch의 구조이다.)
다음의 그림에서 보면 DDR3 SDRAM의 memory core에서 I/O buffer쪽으로 8bit씩 데이터가 전달됨을
알 수 있다. 화살표의 방향은 read sequence를 나타낸다.
반대로 DRAM에 write할 때는 역 방향으로 동작하게 된다.
[참고]
New Features of DDR3 SDRAM
- ELPIDA -
DDR3 Power-Up, Initialization, and Reset
- MICRON -
기존의 DDR1, DDR2와 비교하여 DDR3에 새로이 적용되는 기술을 살펴보고 정확히 이해하여 시스템을
설계할 수 있어야겠다.
1. DDR3 SDRAM에 적용된 새로운 기능
가. ZQ CALIBRATION
나. DYNAMIC ODT
다. RESET, 8bit PREFETCH
상기의 function들에 대하여 하나씩 검토하기로 한다.
☞ DDR3 SDRAM의 동작원리 - ZQ CALIBRATION
☞ DDR3 SDRAM의 동작원리 - DYNAMIC ODT
혹시 DDR1, DDR2 SDRAM에 대해서 학습이 필요하신 분은 본 블로그의 다른 포스트들을 먼저
숙지하시고 이 포스트를 접하셨으면 한다.
2. RESET
DDR3 SDRAM에선 device에 external reset이 추가되었다.
[RESET의 역할]
- Power-up동안 device의 pin들을 high-Z상태로 만들고 ODT를 disable한다.
- Device내부의 state machine을 reset하여 start-up하면서 발생할 수있는 에러를 방지한다.
- Reset이 low에 있는 동안 DRAM내부 회로가 initialize된다.
[RESET의 특징]
- Device의 initialize에도 사용되지만 warm boot에도 사용할 수 있다.
- DRAM에 저장되어 있던 data들과 mode register값들이 초기화 된다.
- Reset sequence전에 power supply는 stable되어야 한다.
- Power-up할 때 reset sequence에서 요구되는 period는 최소 200us.
- Warm reset sequence에서 요구되는 period는 최소 100ns.
[이전의 DDR SDRAM들과의 차이점]
- DDR3 이전의 DRAM들은 Initialization이 PRECHARGE나 AUTO REFRESH같은 command가
발생했을 때 이루어짐.
3. 8bit PREFETCH
DDR3 SDRAM은 8bit prefetch 구조를 가지고 있어서 동일한 동작 주파수라는 가정하에 DDR2보다
2배 빠른 속도로 동작한다. (DDR2 SDRAM은 4bit prefetch의 구조이다.)
다음의 그림에서 보면 DDR3 SDRAM의 memory core에서 I/O buffer쪽으로 8bit씩 데이터가 전달됨을
알 수 있다. 화살표의 방향은 read sequence를 나타낸다.
반대로 DRAM에 write할 때는 역 방향으로 동작하게 된다.
[참고]
New Features of DDR3 SDRAM
- ELPIDA -
DDR3 Power-Up, Initialization, and Reset
- MICRON -
'[HARDWARE] > CORE' 카테고리의 다른 글
NAND FLASH의 구조와 특징 (11) | 2012.09.12 |
---|---|
DDR3 SDRAM의 동작원리 - DYNAMIC ODT (0) | 2010.12.21 |
DDR3 SDRAM의 동작원리 - ZQ CALIBRATION (0) | 2010.12.17 |
DDR2 SDRAM의 동작원리 - POSTED CAS AND ADDITIVE LATENCY (2) | 2009.10.15 |
2010. 12. 21. 12:24
이제 DDR2의 시대는 무르익다 못해 완숙했으며 바야흐로 DDR3의 시대가 도래했다.
기존의 DDR1, DDR2와 비교하여 DDR3에 새로이 적용되는 기술을 살펴보고 정확히 이해하여 시스템을
설계할 수 있어야겠다.
1. DDR3 SDRAM에 적용된 새로운 기능
가. ZQ CALIBRATION
나. DYNAMIC ODT
다. PREFETCH, /RESET, Reference VOLTAGE and ETC
상기의 function들에 대하여 하나씩 검토하기로 한다.
☞ DDR3 SDRAM의 동작원리 - ZQ CALIBRATION
☞ DDR3 SDRAM의 동작원리 - RESET, 8bit PREFETCH
혹시 DDR1, DDR2 SDRAM에 대해서 학습이 필요하신 분은 본 블로그의 다른 포스트들을 먼저
숙지하시고 이 포스트를 접하셨으면 한다.
2. DYNAMIC ODT의 개요
ODT(On Die Termination)란 무엇인가에 대해선 이전의 DDR2 SDRAM관련 포스팅에서
설명했으므로 그 부분은 생략하기로 한다.
DDR3에서 데이터 버스의 속도는 더 증가했고 그래서 signal integrity는 더더욱 중요하게 되었다.
한 시스템 안에 다수의 DRAM device가 있는경우 device를 READ할 때 보다 WRITE할 때 reflect되는
noise도 더 많이 발생한다.
그래서 DDR3는 DRAM device에 데이터를 WRITE하면서 termination impedance를 제어하는 것에대해
고려하게 되었다.
3. DYNAMIC ODT의 설정
- Mode register(MR1)에 의해 ODT기능이 enable되고 ODT pin이 high가 되면 ODT기능이 활성화 된다.
- 3개의 Rtt에 의해서 termination 저항값이 enable/disable되고 value가 정해진다.
- 다음 그림은 MR1 register이다.
- x16 device의 경우 DQS, DQS#, DM, DQ들이 terminate되고 x8 device의 경우엔 TDQS까지 terminate
된다.
- DDR3에서 ODT는 다음의 2가지 모드가 있다.
① NORMAL MODE
MR1 register의 Rtt_nom에 의해서 세팅되는 일반적인 ODT이다.
Device의 standby상태와 WRITE상태에 적용된다.
② DYNAMIC MODE
MR2 register의 Rtt_wr에 의해서 세팅되는 Dynamic ODT이다.
Device에 writing하는 경우에만 적용된다.
- 다음 그림들은 MR2 register를 보여준다.
4. DYNAMIC ODT의 동작
- Rtt_nom과 Rtt_wr이 활성화 되어 있으면 DDR3 DRAM device가 wirte동작을 수행할 때
termination value가 Rtt_nom의 값에서 Rtt_wr의 값으로 변경이 된다.
- Device의 WRITE 동작이 끝나면 termination value는 Rtt_wr의 값에서 Rtt_nom의 값으로
되돌아간다.
- 이 일련의 동작들은 추가적인 MRS command의 수행없이 이뤄진다.
그래서 data bus가 idle하게 되는 시간을 줄일 수 있고 bus scheduling이 향상되는 이점이있다.
[참고]
DDR3 Dynamic On-Die Termination
- MICRON -
기존의 DDR1, DDR2와 비교하여 DDR3에 새로이 적용되는 기술을 살펴보고 정확히 이해하여 시스템을
설계할 수 있어야겠다.
1. DDR3 SDRAM에 적용된 새로운 기능
가. ZQ CALIBRATION
나. DYNAMIC ODT
다. PREFETCH, /RESET, Reference VOLTAGE and ETC
상기의 function들에 대하여 하나씩 검토하기로 한다.
☞ DDR3 SDRAM의 동작원리 - ZQ CALIBRATION
☞ DDR3 SDRAM의 동작원리 - RESET, 8bit PREFETCH
혹시 DDR1, DDR2 SDRAM에 대해서 학습이 필요하신 분은 본 블로그의 다른 포스트들을 먼저
숙지하시고 이 포스트를 접하셨으면 한다.
2. DYNAMIC ODT의 개요
ODT(On Die Termination)란 무엇인가에 대해선 이전의 DDR2 SDRAM관련 포스팅에서
설명했으므로 그 부분은 생략하기로 한다.
DDR3에서 데이터 버스의 속도는 더 증가했고 그래서 signal integrity는 더더욱 중요하게 되었다.
한 시스템 안에 다수의 DRAM device가 있는경우 device를 READ할 때 보다 WRITE할 때 reflect되는
noise도 더 많이 발생한다.
그래서 DDR3는 DRAM device에 데이터를 WRITE하면서 termination impedance를 제어하는 것에대해
고려하게 되었다.
3. DYNAMIC ODT의 설정
- Mode register(MR1)에 의해 ODT기능이 enable되고 ODT pin이 high가 되면 ODT기능이 활성화 된다.
- 3개의 Rtt에 의해서 termination 저항값이 enable/disable되고 value가 정해진다.
- 다음 그림은 MR1 register이다.
- x16 device의 경우 DQS, DQS#, DM, DQ들이 terminate되고 x8 device의 경우엔 TDQS까지 terminate
된다.
- DDR3에서 ODT는 다음의 2가지 모드가 있다.
① NORMAL MODE
MR1 register의 Rtt_nom에 의해서 세팅되는 일반적인 ODT이다.
Device의 standby상태와 WRITE상태에 적용된다.
② DYNAMIC MODE
MR2 register의 Rtt_wr에 의해서 세팅되는 Dynamic ODT이다.
Device에 writing하는 경우에만 적용된다.
- 다음 그림들은 MR2 register를 보여준다.
4. DYNAMIC ODT의 동작
- Rtt_nom과 Rtt_wr이 활성화 되어 있으면 DDR3 DRAM device가 wirte동작을 수행할 때
termination value가 Rtt_nom의 값에서 Rtt_wr의 값으로 변경이 된다.
- Device의 WRITE 동작이 끝나면 termination value는 Rtt_wr의 값에서 Rtt_nom의 값으로
되돌아간다.
- 이 일련의 동작들은 추가적인 MRS command의 수행없이 이뤄진다.
그래서 data bus가 idle하게 되는 시간을 줄일 수 있고 bus scheduling이 향상되는 이점이있다.
[참고]
DDR3 Dynamic On-Die Termination
- MICRON -
'[HARDWARE] > CORE' 카테고리의 다른 글
NAND FLASH의 구조와 특징 (11) | 2012.09.12 |
---|---|
DDR3 SDRAM의 동작원리 - RESET, 8bit PREFETCH (1) | 2011.01.06 |
DDR3 SDRAM의 동작원리 - ZQ CALIBRATION (0) | 2010.12.17 |
DDR2 SDRAM의 동작원리 - POSTED CAS AND ADDITIVE LATENCY (2) | 2009.10.15 |