본문 바로가기

프로젝트 일지

SPD(Serial Presence Detect) 개발 완료 후 뒷정리

728x90

SPD 개발을 완료하면서 몇가지 어려웠던 부분을 정리하고자 한다.

1. 제조회사관리 JEP106 문서에서 ODD PARITY BIT 계산 방법

  -> SK Hynix 값이 80 AD 로 나오는데 그 원인이 확인하는데 시간 많이 걸림

      우선 odd parity bit 계산에 대하여 이해가 필요함. 아래와 같이 계산이 됨

no 2진수 표현 odd parity bit 표현 hex값 (odd parity bit)
0 0000 0000 1000 0000 80
1 0000 0001 0000 0001 01
2 0000 0010 0000 0010 02
3 0000 0011 1000 0011 83
4 0000 0100 0000 0100 04
5 0000 0101 1000 0101 85
6 0000 0110 1000 0110 86
7 0000 0111 0000 0111 07
8 0000 1000 0000 1000 08

이렇게 개념은 금방 이해가 가지만 왜 제조회사 byte 값이 80 AD 인지 이해가 하는데는 문서의 설명이 너무 없었음.

JEP106BA_Standard Manufacturer Identification Code 문서를 확인하여 제조회사의 코드를 확인 해야함.

The manufacturer’s identification code is defined by one or more eight (8) bit fields each consisting of seven (7) 
data bits plus one (1) odd parity bit. It is a single field limiting the possible number of vendors to 126. 
To expand the maximum number of identification codes a continuation scheme has been defined. 
The code 7F as shown in Table 1 indicates that the manufacturer’s code is beyond the limit of this field and 
the next sequential manufacturer’s identification field is used. Multiple continuation fields are permitted and 
when used shall comprise of the identification code.

정리하자면 각 테이블 마다 제조회사의 그룹을 이야기 함. 첫번째 그룹이 0부터 시작하며 그 그룹안에 최대 126개의 제조회사의 코드가 순번으로 고유하게 정리되어 있음.

예를들어 다음과 같이 정리할 수 있다. 아래 표를 보면 이해가 됨

제조회사 BANK 그룹코드 (HEX) 고유 ID HEX
IDT (첫번째 그룹 BANK ONE) 80 B3 80 B3
SK Hynix (첫번째 그룹 BANK ONE) 80 AD 80 AD
Samsung (첫번째 그룹 BANK ONE) 80 CE 80 CE
Tundra Semiconductor (두번째 그룹 BANK TWO) 01 B3 01 B3
Century (두번째 그룹 BANK TWO) 01 AD 01 AD
Unigen Corporation (두번째 그룹 BANK TWO) 01 CE 01 CE

2. DDR4 ConnectConnector to SDRAM Bit Mapping 방법

 -> Nibble Map 과 DQ-MAP 관계를 이해하는데 시간이 걸림

     다행스러운지 모르겠으나 아직은 DDR5에는 이 부분이 아직 정의되지 않음.

DDR4의 ConnectConnector to SDRAM Bit Mapping 관련 부분은 이해하는데 한달 이상 걸렸던것 같음. 좀더 쉽게 설명을 하기 위해서 SPD DDR4에서  60~77 BYTE 영역에 대하여 알아보자. 그런제 DQ ,CE 정도의 용어는 알고 있어야 함.

용어정리

60번 BYTE에는 DQ0, DQ1, DQ2, DQ3 에 대한 매핑정보를 표시한다. 이렇게 77번 BYTE 까지 모듈 핀정보의 DATA INPUT/OUTPUT 구성정보를 표현한다.  총 18개의 BYTE 로 4개 INPUT 4개의 OUT PUT이 되는것 같다. 내가 맞는지 모르겠지만 72 PIN 정보 일 것 같다.

3. SPEED 속성과 관련하여 nibble data swap 관련하여 계산이 복잡하고 매핑설정이 좀 어려웠음.

    그러나 DDR5는 nibble data swap은 없어서 조금 편한것 같음.  (이건 따로 문서를 정리할 예정 임)

 

이 세가지 에 대하여 좀더 개념을 이해하고 구현하는데 많은 시간이 걸렸음. ^^ 

이제 DDR4는 사용되지 잘 사용되지 않지만 DDR5 보다 좀더 어려웠던거 같다. DDR5는 1024 BYTE에 표현하니 DDR4 에서 512 바이트 표현 보다 계산의 복잡도가 높았으며 아직도 NVDIMM 영역은 잘 이해하기 어려운 부분이 존재한다.

 

728x90