테크노아
> 기획&벤치 > 강좌
ECC 메모리와 레지스터드 메모리
테크노아  |  webmaster@technoa.co.kr
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
승인 2002.07.17  12:10:22
트위터 페이스북 미투데이 요즘 네이버 구글 msn

ECC 메모리와 레지스터드 메모리


각종 메모리 모듈들의 모습

심심찮게 ECC 메모리와 레지스터드 메모리라는 것을 볼 수 있다. 일반적으로 사용되는 메모리는 언버퍼드(unbuffered) 메모리라는 명칭을 가지고 있다. 다만, 이러한 명칭은 잘 사용되지 않고, 레지스터드 메모리나 ECC 메모리는 흔히 '서버용'으로 분류되어 있다. 그래서 심지어 메모리를 전문으로 다루는 곳에서도 ECC와 레지스터드를 동일시하는 경우가 많다. 그러나 메모리 제조사들의 홈페이지를 가 보면 분명히 레지스터드 메모리와 ECC 메모리는 구분되어 있으며, 가격도 다르다.

위 화면은 크루셜 홈페이지에서 볼 수 있는 메모리의 종류와 가격이다. ECC 메모리는 일반 메모리에 비해서 약 10% 정도 비싸며, 거기에 레지스터드까지 적용될 경우 가격은 약 10%가 더 상승한다.(해외에서는 이정도 가격차이를 보이지만, 국내에서의 레지스터드 메모리 가격은 일반 메모리의 거의 두배다. 이유는 알아서들 생각하시라.)

또한 사용자들 역시 ECC와 레지스터드의 의미와 그 역할에 있어서 상당한 혼란을 느끼고 있다. 그래서 이번 강좌에서는 ECC 메모리와 레지스드 메모리의 형태 구분과 그 특징, 구조 등을 알아보고자 한다.

외형적 구분

우선, 일반적으로 사용하는 언버퍼드 메모리와 ECC 메모리, 레지스터드 메모리간의 외형적 차이를 보자.

위 사진은 삼성 PC133 언버퍼드(unbuffered) SDRAM의 사진이다. 흔히 볼 수 있는 메모리인만큼 상당히 익숙하다. 다만, 가운데에 칩이 들어갈 자리 하나가 비어있는 것이 눈에 띈다.

삼성 PC133 ECC(Error Correcting Code) SDRAM의 사진이다. 언버퍼드 메모리와 전체적으로 거의 유사하지만, 가운데에 비어있던 부분이 채워져서 총 9개의 메모리 칩이 장착되어 있는 것을 알 수 있다. 양면 메모리라면 18개의 메모리 칩이 장착된다.

역시 삼성의 PC133 레지스터드(Registered) ECC SDRAM의 사진이다. 언버퍼드나 ECC 메모리보다 메모리 모듈의 높이가 약간 높으며, 그래서 아래쪽에 몇가지 부가적인 칩이 달려 있는 것이 보인다. 이 부분이 바로 레지스터(Register)이며, 레지스터가 달려있기 때문에 레지스터드 메모리라고 불린다.

레지스터드 메모리의 구분은 확실하다. 메모리 칩 외에 잡다한 칩들이 더 달려있으면 레지스터드 메모리라고 보아도 좋다. 높이에 의한 구분은, 예전에는 통했지만 지금은 그다지 통하지 않는다. 아래 사진과 같은 메모리가 종종 나오기 때문이다.


엘피다(Elpida)사의 로우 프로파일 레지스터드(low-profile registered) ECC DDR SDRAM
Copyright(C) by
Elpida

이것은 높이가 낮은 1U 서버 등에서 사용되기 위해서 만들어진 것으로써 레지스터드 ECC의 형식을 가지면서도 높이는 일반 언버퍼드와 동일하다. 그래도 메모리 칩 9개(=ECC)가 장착되어 있고 레지스터(가운데 조그마한 칩 두개)가 붙어 있어서 레지스터드 메모리라는 것을 알 수 있다.

한편, ECC 메모리는 어떻게 구분해야할까. 의외로 간단하다. 메모리 칩의 수가 8의 배수이면 일반 언버퍼드 메모리, 9의 배수이면 ECC 메모리라고 생각하면 정확하다. 이는 뒤에서도 다시 설명하겠지만 다음과 같은 이유 때문이다. PC용 메모리는 64bit의 버스 폭을 맞추기 위해서 8개의 8bit 버스 칩으로 구성되어 있다. ECC는 메모리 64bit당 8bit의 ECC 코드를 추가하여 데이터를 전송함으로써, 전송중 일어나는 에러를 검출하고 정정할 수 있는 능력을 가진다. 이 기능의 추가를 위해서 동일한 메모리 칩을 1개 더 장착해서 8bit × 9 = 72bit의 메모리 버스를 형성한다. 이 중에서 64bit만이 실질적인 데이터 전송에 사용되며, 8bit는 에러 검출 및 정정을 위한 ECC 코드의 전송에 사용되는 것이다.

결국 그래서 ECC 메모리는 칩의 개수가 9의 배수이다. 단면으로 구성되었을 경우에는 9개, 양면에서는 18개의 칩이 탑재된다. 고용량 메모리의 경우 36개의 칩을 탑재하는 경우도 있다.

테크노아의 다른기사 보기  
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
트위터 페이스북 미투데이 요즘 네이버 구글 msn 뒤로가기 위로가기
이 기사에 대한 댓글 이야기 (29)
자동등록방지용 코드를 입력하세요!   
확인
- 200자까지 쓰실 수 있습니다. (현재 0 byte / 최대 400byte)
- 욕설등 인신공격성 글은 삭제 합니다. [운영원칙]
jinw
개인적인 용도로 밖에 사용하지않아 언버버드램 밖에 쓰지 않지만 가졌으면 좋겠다는 생각... 서버를...
ㅡ_ㅡ

(2003-01-31 11:39:07)
ktw520
내용은 중급자들한테 맞는것 같은데요
물론 초보자들도 알기쉽게 설명해놓은 부분도 있는데 좀더 상세하게 그림또한 보여주었으면 하는 아쉬운감이 있네요
그럼 수고하세요
꾸벅^^

(2002-11-27 10:40:49)
sdk1219
제가 지금 Abit KG7 (AMD 760)을 쓰고 있는데요.
연구용으로 메모리가 많이 필요해서
어제 1G 모듈 네개를 끼웠습니다.
근데 4G로 안나오고 3.5G로 나오더군요...
왜 이런거죠?

머 registered 인 것도 확실한데요...
이상하네요.. ㅡ.ㅡ;;;
4G 풀로 써야 되는데... ㅡ.ㅡ;;;

(2002-10-01 10:01:42)
jumpmach
좋은 글 써주셔서 감사합니다.


고럼...

(2002-07-31 14:16:23)
osm2
이런 기사를 좋아합니다.

원츄~


(2002-12-06 00:31:04)
joonyp
원래 채널코딩이론에서 시작된 ECC 알고리즘은 다양합니다만 크게 나누어서 블럭코딩과 convolution 코딩으로 나눌수 있습니다. 블럭코딩의 기본 알고리즘은 해밍코드로서 n bit 전송시 k bit의 checksum을 붙여서 전송하게 됩니다. k bit을 생성하는 방법은 일종의 다항식을 이용하는 것(결과적으로)인데 설명하기 귀찮으니까 생략하고 위의 게시물중에 설명이 있으니 참조하세요. convolution 코딩은... 더 이해하기 힘든 코딩방법으로 trellis 코딩이라고도 합니다. 이건 블럭코딩이 개개의 블럭마다 체크섬을 계산하고 그 체크섬들은 서로 연관이 없지만 convolution 코드는 과거의 입력값을 누적한다고 할까요, 암튼 코딩된 출력이 과거의 영향을 받지요. 사실 convolution 코드는 만드는 것보다 디코딩하는 것이 더 어렵습니다. 일단 전체 bit stream을 다 받은 다음 뒤에서부터 앞으로 가면서 전체를 디코딩해야 하고 error 발생한 것도 일단 전체 디코딩이 끝나야 알수 있죠(제기억이 맞다면). 물론 이런것을 보완하기 위해서 좀더 효율적인 디코딩 알고리즘이 있겠지만 그래도 무지하게 processing power가 필요합니다. 메모리도 그렇구. 하지만 성능은 거의 이론적 한계치에 근접하기 때문에 특히 error가 치명적인 환경에서는 많이들 쓰지요...

블럭코딩은 BCH, RS 코드가 있고 convolution 코드는 비터비나 turbo 코드가 유명합니다.

(2002-07-24 20:31:43)
silverja

(2002-07-24 16:52:59)
silverja

(2002-07-24 16:51:54)
kimkama
강좌가 알찹니다...

이제 ecc와 언버퍼드를

조금이나마 이해가 가네요..쪼끔..

그전에는 잘 멀랐음 ^^a

(2002-07-23 21:58:14)
s2nlove
저두...강좌를 볼때마다 지식이 뿌적 뿌적 느네요..^^

정말 감사해요...^^

(2002-07-22 15:47:32)
wcabaid
...아마도 이런 방식을 의미할지도...

1 2 3 4 prty bit
1 . . . . o
2 . . . . o
3 . x . . fr
4 . . . . o
P o fc o o
Prty byte
간단하게 4비트 단위로 체크를 한다고 가정할 때 4*4의 메모리 데이터에서 x로 표시된 1비트가 에러일 경우 fr(failed row)과 fc(failed column)에 패리티 에러가 떠서 3행 2열의 비트가 에러비트라는 걸 검출할 수 있게 되고...

두 번째로 두 개의 비트가 에러일 경우,

1 2 3 4 prty bit
1 . . . . o
2 . . . y fr1
3 . x . . fr2
4 . . . . o
P o fc1 o fc2
Prty byte

가 되어가지고 단일 행렬에서의 두 개의 에러 비트도 잡아낼 수 있죠...

세 번째로 두 개의 비트가 동일 행 혹은 열에서 에러일 경우...

1 2 3 4 prty bit
1 . . . . o
2 . . . . o
3 . x . y o
4 . . . . o
P o fc1 o fc2
Prty byte

이런 경우는 최소한 2열과 4열에서 에러가 있다는 것만 알지만 어느 행에서 에러가 발생했는지는 모르기 때문에 에러 검출은 가능하지만 정정은 불가능한 경우겠고요...


솔직히 개인적으로는 단일 패리티 비트로도 웬만한 에러 검출은 충분하다고 보는 입장이고... 단일 패리티가지고 부족할 정도의 환경이면 더 고도의 검출 알고리듬을 도입하는 것 보다는 선로점검이나 노이즈 감소대책부터 세우는 게 순서라고 봅니다만...

버퍼드...라면 말 그대로 74HC04같은 버퍼를 신호선 중간에 넣어서 신호 자체를 명확하게 재생해주고 신호 자체의 드라이브 능력을 증폭해주고... 레지스터드는 그와는 약간 다르게 강의하신대로 쉬프트 레지스터를 중간에 끼워넣어서 신호간의 전달속도를 정렬해 주는것이 주 목적인 걸로 압니다만... 뭐 어차피 쉬프트 레지스터를 한 번 통과하면 버퍼드도 자동으로 되는 셈이니... 큰 차이는 없겠죠...

(2002-07-22 20:06:15)
s2nlove
미스테리님 정말 감사합니다..

정말 대단한 글임니다...

제가 잘못 알고 있는 많은 부분이 수정되었네요...


(2002-07-22 15:46:28)
y2k00
메모리쪽이야 옛날에 한번 읽어봤지만..

다시 읽어보니...

확실히 기억이 되살아나고...

기억공간에 자리를 잡았네요..^^

잘 읽었습니다...

(2002-07-18 17:51:47)
mistery
저도 모르겠습니다. -_-;
좀 무책임한 발언 같지만서도... 이게 좀 복잡한 연산을 필요로 한다더군요.. ECC라는 방법의 종류도 다양하고요.

나중에 자료를 찾게 되면 그때가서 다시 글로 이야기해 보도록 하겠습니다. :)

(2002-07-19 23:31:33)
mistery
760 칩셋의 경우 언버퍼드는 뱅크 4개까지, 그리고 레지스터드는 8개까지 사용할 수 있습니다. 그리고 KT266 계열의 경우 언버퍼드일 경우는 6개의 뱅크까지이지요. 그래서 그러한 모듈 수의 제약이 발생합니다.

만약 레지스터드를 사용하고자 할 경우, 전체를 다 레지스터드로 사용해야 합니다. 레지스터드와 언버퍼드는 동작방식이 약간 틀리니까요..

문제는 언버퍼드로도 잘 쓰는 분들이 계시다는거지요. moonlunar님 역시 그러한 경우입니다만, 이것은 제조사에서 '보증'하는 부분이 아닙니다. '정석대로라면' 4개의 슬롯을 사용하고자 한다면 레지스터드를 사용해야 하지만, 내부적으로 뭔가 꽁수를 부려놨겠지요.

레지스터드로는 당연히 잘 돌아가며 언버퍼드로도 잘 돌아갈 수 있습니다. 그러나 언버퍼드로는 이러한 동작이 보증되지 않는다는 점이 문제겠지요. 어디까지나 다수의 언버퍼드 메모리 사용은 고속동작시에서 문제를 일으킬 가능성이 있기 때문에 레지스터드를 권장하는 것이니까요.

(2002-07-19 23:30:32)
y2k00
거의 확실하지 않을까.. 뒤에 나온 분들은 더 자세히..

정확히 말해야하니..^^ 대단..^^

(2002-07-18 17:31:18)
moonluna
만약 A7M 266-D에서 단면램 4개를 사용할 수 있나요??
만일 단면램을 사용한다면 4개의 뱅크만 점유하잖습니까???

(2002-07-20 01:41:21)
moonluna
우선 강좌잘봤습니다.^^

dimm 4개를 사용하는 경우는 제가 몇번 경험을 해
봤습니다.

우선 사용해본 메인보드가

AMD761을 탑재한 ASUS A7M266의 경우 정말 메모리모듈이 2개입니다.
PCB상으로는 3개를 장착할 수는 있지만 기술적인 문제로 2개만 장착했죠.
이에 반해 Abit의 KG7(-Raid)...
이건 제가 직접 사용해보지는 않았고 친구가 사용하는 제품입니다. 아직
도 쓰더군요.(자기말에 의하면 최고라고 함..-_-) AMD76X계열의 칩셋은
위의 A7M266의 예를 볼 수 있드시 3개이상의 DIMM을 사용할 때는 반드시
레지스터드 메모리를 사용해야된다고 하죠? 제 친구는 이걸 그냥 무시
했습니다. 그냥 삼성 PC2100 256MB 4개 사다가 끼더군요. 결과는?
잘되더군요.-_- 지금까지 무리없게 쓰고 사용하면서 블루스크린 본 적도
없다고 합니다.

그리고 지금 제가 사용중인 KT333을 탑재한 Abit의 AT7-Max......

이건 매뉴얼상에서도 뭐라고 안나와있더군요. 그냥 양면램 4개를
전부 꼽아서 사용할 수 있다고만 나오더군요. 사실 4번째 DIMM을 레지램
으로 채워야된다는 것은 오늘 Mistery의 님의 강좌를 보고 알았습니다.
저는 512MB양면 4개를 전부 장착해서 사용합니다.^^; 결과는?
아직까지 잘됩니다. 일주일이상 켜놓은 적도 있는데 다운없고 메모리
테스트해봐도 에러없고...

다만 조만간에 A7M266-D으로 컴을 조립할 예정입니다. 메인보드를 아주
싸게 구할 일이 있어서 미리 사놓고 CPU를 구하는 중인데 여의지않다면
그냥 우선 싱글시스템으로 사용할 생각입니다. 과연 이게 언버퍼드4개
를 사용하면 어찌될런지.......제 생각에는 아마도 안될 듯...-_-
저 메인보드가 상당히 메모리를 가린다던데....쩝....

그리고 DIMM을 채우는 것에 대해서 좀 더 설명해줬으면 하는 부분이
있어 아쉽습니다. 우선 메모리는 모듈수도 중요하지만 양면, 단면에 따른
뱅크도 상당히 중요합니다. 만일 KT266계열에서 4개를 다 채운다는
의미가 양면,단면 가릴 것 없이 4개를 채운다는 의미인가? 아니면 뱅크
하나당 2개씩이니까 뱅크8개를 모두 채운다는 의미인지........
그것에 대한 구분이 없군요. 저도 그걸 모르거든요...^^;


(2002-07-19 22:47:21)
daidai
장장 4시간이라..-_-;

인간의 한계를 넘어가신듯...

(2002-07-18 15:02:40)
parkyt75
제조회사
Infineon
marking이 비슷하군요...^^

module
RDRAM 16bit 모듈 : RIMM1600/2100/2400 1개
DDR SDRAM : 레지스터드(Registered) ECC 2개
SDRAM : 로우 프로파일 레지스터드(Registered) ECC 2개
SDRAM : ECC(Error Correcting Code) SDRAM 1개
DDR SDRAM : 언버퍼드(unbuffered) DDR SDRAM 1개
SDRAM : 144pin SODIMM 3개

(2002-07-17 17:33:22)
rene1112
알고싶은점을 이렇게 강좌를 통해 자세히 배우니
좋네요~~

앞으로도 좋은 강좌 부탁드립니다.

(2002-07-18 19:04:25)
pepcast
메모리 모듈의 갯수는 10개 이지만 메모리 모듈의 종류는 8가지 입니다.

제조사 : Infineon

종류 :

Unbuffered DIMMs ------------------

[SDRAM Module]
⑤ 168-Pin Unbuffered SDRAM DIMM Modules(ECC), PC100, PC133

[DDR SDRAM Module]
④ 184-pin Unbuffered DDR-I SDRAM Modules, PC1600, PC2100, PC2700

Registered DIMMs ------------------

[SDRAM Module]
⑥ Low Profile 168-pin PC133 Registered SDRAM Modules for 1U Server Applications (Low Profile PC133 Registered SDRAM-Modules), Raw Card F

⑦ Low Profile 168-pin PC133 Registered SDRAM Modules for 1U Server Applications (Low Profile PC133 Registered SDRAM-Modules), Raw Card G

[DDR SDRAM Module]
⑧=⑨ 184-pin Registered DDR-I SDRAM Modules, PC1600, PC2100

SO-DIMMs ------------------

[SDRAM Module]
① 144-pin SO-DIMM SDRAM Modules, PC100, PC133

②/③ 144-pin SO-DIMM SDRAM Modules, PC100, PC133 BOC(Board-on-Chip) / heat spreader

Rambus RIMMs ------------------

⑩ 184-pin RDRAM(R) Modules


위에서 1~10까지의 숫자는 모듈 위치에 따라 맨 윗것 부터 1~10까지 가상의 번호를 부여하여 그 번호에 해당하는 메모리 모듈을 나타낸것 입니다.
( 번호 매긴 그림의 링크 : http://home.megapass.co.kr/~pepcast/images/memory_modules.jpg )

메모리 모듈의 순서데로 말씀드리면..(맨 위부터..)

① SO-DIMM SDRAM Modules
② SO-DIMM SDRAM Modules BOC(Board-on-Chip) - heat spreader 가 있는 그림
③ SO-DIMM SDRAM Modules BOC(Board-on-Chip) - heat spreader 가 없는 그림
④ Unbuffered DDR-I SDRAM Modules
⑤ Unbuffered SDRAM DIMM Modules (ECC)
⑥ Low Profile PC133 Registered SDRAM-Modules, Raw Card F ( F 패키지 타잎 )
⑦ Low Profile PC133 Registered SDRAM-Modules, Raw Card G ( G 패키지 타잎 )
⑧ Registered DDR-I SDRAM Modules ( 이것은 확실하지가 않군요. PLL 과 Register 의 크기가가 ⑨ 와 약간 다른 것 같은데 도저히 알 수 없었습니다.)
⑨ Registered DDR-I SDRAM Modules
⑩ RDRAM(R) Modules

간단히 요약하면...

Unbuffered SDRAM DIMM Modules (ECC) 1개

Unbuffered DDR-I SDRAM Modules 1개

Low Profile PC133 Registered SDRAM-Modules 2개(F,G 패키지)

Registered DDR-I SDRAM Modules 2개

SO-DIMM SDRAM Modules 1개

SO-DIMM SDRAM Modules BOC(Board-on-Chip) 2개(heat spreader 있는것과 없는 것)

RDRAM(R) Modules 1개


이거 찾느라고 인피니언 사이트에서 데이터시트를 모조리 다운 받아서 하나하나 비교해 봤습니다. 장장 4시간에 걸쳐서... ㅡ,.ㅡ;;



(2002-07-18 01:41:31)
syoh96
제조회사는 인피니언이 맞네요. 홈피보니 같은

마킹있는 메모리 사진이 있군요.

앞에서부터 램버스 - 레지스터 ECC DDR(2개)

- 레지스터 ECC SDR(2개) - ECC SDR - DDR - 마이크

로 DIMM(노프북용) 3개

반정도 정답일려나. 쩝..

글구 위에게 6개인건 중복된게 있다고 적은건데.


(2002-07-17 13:36:04)
enigmak
메모리는 인피니온꺼 같구여...(확실히는 몰겠네용...)

맨 아래부터...
16bit 모듈 RDRAM
스택형 레지스터드 ECC DDR SDRAM
레지스터드 ECC DDR SDRAM
스택형 레지스터드 SDRAM
레지스터드 SDRAM
스택형 ECC SDRAM
ECC SDRAM
노트북용 DDR SDRAM
노트북용 RDRAM
노트북용 SDRAM

걍 때려맞춰봤는데... ㅋㅋㅋ
흠.. 어렵군요..^^;;

(2002-07-17 17:14:19)
mistery
메모리 모듈은 10개죠?

그럼 답도 열개가.. 핫핫.. :)

(2002-07-17 15:43:23)
forthleaf
음... 궁금한게 있습니다.

우선 강좌 잘봤구요.

작업하시느라 시간 많이 투자하신거 같습니다...

감사의 말씀..~!

참 궁금한것은요.. ECC에서 에러 교정 방법에서...

데이타와 교정비트를 비교한다는 것은 알겠는데..

내부적으로는 어떤식으로 비교를 하는건지 알수 있을까요?

그 위에 있는 패리티 방식은 간단하게 더해서... 홀짝 구분만 하는 거잖아요.

근데. 1에러 교정 2에러 검출 하려면..
에러난 곳의 어드레스까지도 가지고 있어야 한다는 결론인데...

어떤방식으로 이루어지는지는 본문만으로는 알수 없네요..
(간단하게 이론만 어떻게 안될까요?^^)


그리고 레지스터드메모리에서 레지스터는 그냥 신호정렬 기능만 하는 건가요?

저는 메모리 데이터 입출력이 레지스터 통해서 이루어지는줄 알고 병목현상등이 일어나지 않을까.. 생각했었는데.

메모리를 보니.. 칩과 아래 핀이 다이렉트로 연결이 되어있어서요..

그냥 신호 정렬만 하는것 같군요.

좋은 강좌 감사합니다.

(2002-07-18 05:25:39)
hope21th
잘봤습니다..^^
차기 강좌가 궁금하네요...제가 신청한 강좌도 예정에 있는지 궁금하네요

(2002-07-17 18:00:40)
sunrise
제조사 : Infineon

PC100, PC133, DDR,

RIMM, DIMM,

SO-DIMM


후후후

보시니까 뭔가 떠오르지 않습니까?

아직 앞의 분은 제조사를 적지 않으셨으니

본인이 정답 1호!

(2002-07-17 17:08:29)
hope2003
어느분이 운좋게 ECC 가 와서 기뻐 하시던데..

값 차이는 나겠지만....오버는 되는지?

(2002-12-03 10:03:04)
이 기사에 대한 댓글 이야기 (29)
e피플
[e피플] 나이가 대수? 공조냉동기계기능사 필기시험 100점 맞은 NCS교육생
[e피플] 나이가 대수? 공조냉동기계기능사 필기시험 100점 맞은 NCS교육생
나이가 들면 들수록 공부하기가 어렵다는 말이 있다. 더군다나 실업인 상태에서 공부하는 것이라면 부담이 더 클 수 밖에 없다.하지만 이를 비웃듯이 극복하고, 올해 2월 공조냉동기능사...

제호 : 테크노아  |  발행인 : 김필규  |  편집인 : 김필규  |  청소년보호책임자 : 박상규
서울지사 : 서울특별시 구로구 디지털로32가길 18, 7F | 제보 : it@technoa.co.kr
발행소 : 전라북도 전주시 완산구 전룡6길 6 3F | 등록번호 : 전라북도 아00057
등록일자 : 2008년 1월 14일  |  대표전화 : 070-8755-6291  |  FAX : 02-6280-9562
Copyright © 1999-2017 테크노아. All rights reserved. mail to technoa@technoa.co.kr