마이크로세미 -로고

DDR 메모리를 사용하는 SmartFusion0618 장치에서 Microsemi DG2 오류 감지 및 수정

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치의 오류 감지 및 수정-제품-이미지

마이크로세미 본사
원 엔터프라이즈, 알리소 비에호,
CA 92656 미국
미국 내: +1 800-713-4113
미국 외 지역: +1 949-380-6100
팩스 : +1 949-215-4996
이메일: sales.support@microsemi.com
www.microsemi.com
© 2017 마이크로세미 코퍼레이션. 판권 소유. Microsemi 및 Microsemi 로고는 Microsemi Corporation의 상표입니다. 기타 모든 상표 및 서비스 마크는 해당 소유자의 자산입니다.

Microsemi는 여기에 포함된 정보 또는 특정 목적에 대한 제품 및 서비스의 적합성에 대해 어떠한 보증, 표현 또는 보장도 하지 않으며, Microsemi는 제품 또는 회로의 적용 또는 사용으로 인해 발생하는 어떠한 책임도 지지 않습니다. 본 계약에 따라 판매되는 제품 및 Microsemi에서 판매하는 기타 모든 제품은 제한된 테스트를 거쳤으며 미션 크리티컬 장비 또는 애플리케이션과 함께 사용해서는 안 됩니다. 모든 성능 사양은 신뢰할 수 있는 것으로 여겨지지만 검증되지 않았으며 구매자는 최종 제품과 함께 또는 최종 제품에 설치된 제품의 모든 성능 및 기타 테스트를 단독으로 수행하고 완료해야 합니다. 구매자는 Microsemi에서 제공하는 데이터 및 성능 사양 또는 매개변수에 의존해서는 안 됩니다. 모든 제품의 적합성을 독립적으로 결정하고 동일한 제품을 테스트 및 확인하는 것은 구매자의 책임입니다. 본 계약에 따라 Microsemi가 제공하는 정보는 모든 결함과 함께 "있는 그대로, 있는 그대로" 제공되며 이러한 정보와 관련된 모든 위험은 전적으로 구매자에게 있습니다. Microsemi는 명시적이든 묵시적이든 해당 정보 자체 또는 해당 정보에 설명된 모든 것과 관련하여 특허권, 라이선스 또는 기타 IP 권리를 당사자에게 부여하지 않습니다. 이 문서에 제공된 정보는 Microsemi의 소유이며 Microsemi는 이 문서의 정보나 제품 및 서비스를 사전 통지 없이 언제든지 변경할 수 있는 권리를 보유합니다.

마이크로세미 소개
Microsemi Corporation(Nasdaq: MSCC)은 항공우주 및 방위, 통신, 데이터 센터 및 산업 시장을 위한 포괄적인 반도체 및 시스템 솔루션 포트폴리오를 제공합니다. 제품에는 고성능 및 내방사선 아날로그 혼합 신호 집적 회로, FPGA, SoC 및 ASIC가 포함됩니다. 전력 관리 제품; 시간에 대한 세계 표준을 설정하는 타이밍 및 동기화 장치와 정확한 시간 솔루션; 음성 처리 장치; RF 솔루션; 이산 부품; 엔터프라이즈 스토리지 및 통신 솔루션, 보안 기술 및 확장 가능한 안티 Tamp어 제품; 이더넷 솔루션; PoE(Power-over-Ethernet) IC 및 미드스팬; 맞춤형 설계 기능 및 서비스를 제공합니다. Microsemi는 캘리포니아주 알리소 비에호에 본사를 두고 있으며 전 세계적으로 약 4,800명의 직원이 근무하고 있습니다. 자세한 내용은 www.microsemi.com.

개정 내역

개정 내역은 문서에서 구현된 변경 사항을 설명합니다. 변경 사항은 최신 출판물부터 시작하여 개정별로 나열됩니다.

  • 개정판 4.0
    Libero v11.8 소프트웨어 릴리스에 대한 문서를 업데이트했습니다.
  • 개정판 3.0
    Libero v11.7 소프트웨어 릴리스에 대한 문서를 업데이트했습니다.
  • 개정판 2.0
    Libero v11.6 소프트웨어 릴리스에 대한 문서를 업데이트했습니다.
  • 개정판 1.0
    Libero SoC v11.5 소프트웨어 릴리스의 초기 릴리스입니다.

DDR 메모리를 사용하는 SmartFusion2 장치의 오류 감지 및 수정

소개
SEU(Single Event Upset)에 취약한 환경에서 RAM(Random Access Memory)은 중이온으로 인한 일시적인 오류가 발생하기 쉽습니다.
이 문서는 마이크로컨트롤러 서브시스템(MSS) DDR(MDDR)을 통해 연결된 메모리가 있는 애플리케이션에 사용되는 SoC FPGA의 EDAC 기능에 대해 설명합니다.
SmartFusion2 장치에 구현된 EDAC 컨트롤러는 단일 오류 수정 및 이중 오류 감지(SECDED)를 지원합니다. SmartFusion2 MSS 장치 내의 모든 메모리(향상된 eSRAM(Static Random Access Memory), DDR, 저전력 DDR(LPDDR))는 SECDED로 보호됩니다. DDR SDRAM(동기식 동적 임의 액세스 메모리)은 MDDR 구성 및 하드웨어 ECC 기능에 따라 DDR2, DDR3 또는 LPDDR1이 될 수 있습니다.
SmartFusion2 MDDR 하위 시스템은 최대 4GB의 메모리 밀도를 지원합니다. 이 데모에서는 DDR 주소 공간(1xA0 ~ 0000000xDFFFFFFF)에서 0GB의 메모리 위치를 선택할 수 있습니다.
SECDED가 활성화된 경우:

  • 쓰기 작업은 8비트의 SECDED 코드를 계산하고 추가합니다(64비트의 데이터마다).
  • 읽기 작업은 저장된 SECDED 코드에 대해 데이터를 읽고 확인하여 1비트 오류 수정 및 2비트 오류 감지를 지원합니다.

다음 그림은 DDR SDRAM의 SmartFusion2 EDAC 블록 다이어그램을 설명합니다.

그림 1 • 최상위 블록 다이어그램

DDR의 EDAC 기능은 다음을 지원합니다.

  1.  SECDED 메커니즘
  2. 3비트 오류 또는 1비트 오류 감지 시 ARM Cortex-M2 프로세서 및 FPGA 패브릭에 인터럽트 제공
  3. 오류 카운터 레지스터에 1비트 및 2비트 오류 수를 저장합니다.
  4. 마지막 1비트 또는 2비트 오류에 영향을 받은 메모리 위치의 주소를 저장합니다.
  5. SECDED 레지스터에 1비트 또는 2비트 오류 데이터 저장
  6. FPGA 패브릭에 오류 버스 신호 제공

EDAC에 대한 자세한 내용은 UG0443: SmartFusion2 및 IGLOO2 FPGA 보안 및 신뢰성 사용 설명서 및 UG0446: SmartFusion2 및 IGLOO2 FPGA 고속 DDR 인터페이스 사용 설명서를 참조하십시오.

디자인 요구 사항
다음 표에는 설계 요구 사항이 나열되어 있습니다.

표 1 • 설계 요구 사항

  • 설계 요구 사항 설명
  • 하드웨어 요구 사항
  • SmartFusion2 고급 개발 키트 보드 Rev B 이상
  • FlashPro5 프로그래머 이상
  • USB A-미니 B USB 케이블
  • 전원 어댑터 12V
  • DDR3 도터 보드
  • 운영 체제 모든 64비트 또는 32비트 Windows XP SP2
  • 모든 64비트 또는 32비트 Windows 7
  • 소프트웨어 요구 사항
  • Libero® SoC(시스템 온 칩) v11.8
  • 소프트콘솔 v4.0
  • FlashPro 프로그래밍 소프트웨어 v11.8
  • 호스트 PC 드라이버 USB to UART 드라이버
  • 데모 Microsoft .NET Framework 4 클라이언트를 실행하기 위한 프레임워크

데모 디자인
데모 디자인 files는 Microsemi의 다음 경로에서 다운로드할 수 있습니다. web대지: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
데모 디자인 files에는 다음이 포함됩니다.

  • DDR 구성 File
  • DDR_EDAC
  • 프로그램 작성 files
  • GUI 실행 가능
  • 읽어보세요 file

다음 그림은 디자인의 최상위 구조를 설명합니다. file에스. 자세한 내용은 readme.txt를 참조하십시오. file.

그림 2 • 데모 디자인 최상위 구조

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-2

데모 설계 구현
MDDR 하위 시스템에는 전용 EDAC 컨트롤러가 있습니다. EDAC는 메모리에서 데이터를 읽을 때 1비트 오류 또는 2비트 오류를 ​​감지합니다. EDAC가 1비트 오류를 ​​감지하면 EDAC 컨트롤러는 오류 비트를 수정합니다. 모든 1비트 및 2비트 오류에 대해 EDAC가 활성화되면 시스템 레지스터의 해당 오류 카운터가 증가하고 FPGA 패브릭에 대한 해당 인터럽트 및 오류 버스 신호가 생성됩니다.
이것은 실시간으로 발생합니다. 이 SECDED 기능을 시연하기 위해 수동으로 오류를 도입하고 감지 및 수정을 관찰합니다.
이 데모 설계에는 다음 단계의 구현이 포함됩니다.

  1. EDAC 활성화
  2. DDR에 데이터 쓰기
  3. DDR에서 데이터 읽기
  4. EDAC 비활성화
  5. 손상된 1 또는 2비트
  6. DDR에 데이터 쓰기
  7. EDAC 활성화
  8. 데이터 읽기
  9. 1비트 오류의 경우 EDAC 컨트롤러는 오류를 수정하고 해당 상태 레지스터를 업데이트하며 2단계에서 수행된 읽기 작업에서 8단계에서 작성된 데이터를 제공합니다.
  10. 2비트 오류의 경우 해당 인터럽트가 발생하고 애플리케이션은 데이터를 수정하거나 인터럽트 핸들러에서 적절한 조치를 취해야 합니다. 이 두 가지 방법은 이 데모에서 설명합니다.

이 데모에서는 루프 테스트와 수동 테스트의 두 가지 테스트가 구현되며 1비트 및 2비트 오류 모두에 적용할 수 있습니다.

루프 테스트
루프 테스트는 SmartFusion2 장치가 GUI에서 루프 테스트 명령을 수신하면 실행됩니다. 처음에는 모든 오류 카운터와 EDAC 관련 레지스터가 RESET 상태에 놓입니다.
각 반복에 대해 다음 단계가 실행됩니다.

  1. EDAC 컨트롤러 활성화
  2. 특정 DDR 메모리 위치에 데이터 쓰기
  3. EDAC 컨트롤러 비활성화
  4. 1비트 또는 2비트 오류 유발 데이터를 동일한 DDR 메모리 위치에 쓰기
  5. EDAC 컨트롤러 활성화
  6. 동일한 DDR 메모리 위치에서 데이터 읽기
  7. 1bit 이상 발생시 2bit or 1bit 오류감지 및 1bit 오류정정 데이터를 GUI로 전송

수동 테스트
이 방법을 사용하면 초기화와 함께 DDR 메모리 주소(1xA2 ~ 0xDFFFFFFF)에 대한 0000000비트 오류 감지 및 수정 및 0비트 오류 감지를 수동으로 테스트할 수 있습니다. 선택한 DDR 메모리 주소에 수동으로 1비트/2비트 오류가 발생합니다. 주어진 데이터는 EDAC가 활성화된 상태에서 선택된 DDR 메모리 위치에 기록됩니다. 손상된 1비트 또는 2비트 오류 데이터는 EDAC가 비활성화된 상태에서 동일한 메모리 위치에 기록됩니다. EDAC가 활성화된 상태에서 동일한 메모리 위치에서 데이터를 읽을 때 감지된 1비트 또는 2비트 오류에 대한 정보가 기록됩니다. 고성능 DMA 컨트롤러
(HPDMA)는 DDR 메모리에서 데이터를 읽는 데 사용됩니다. 이중 비트 오류 감지 인터럽트 핸들러는 2비트 오류가 감지되면 적절한 조치를 취하도록 구현됩니다.
다음 그림은 EDAC 데모 작업을 설명합니다.

그림 3 • 설계 흐름

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-3

메모: 2비트 오류의 경우 Cortex-M3 프로세서가 데이터를 읽을 때 수신된 인터럽트가 프로세서 응답에 늦기 때문에 코드 실행이 하드 오류 처리기로 들어갑니다. 인터럽트에 응답할 때 이미 데이터를 전달하고 실수로 명령을 실행했을 수 있습니다. 결과적으로 HRESP는 잘못된 데이터 처리를 중지합니다. 2비트 오류 감지는 HPDMA를 사용하여 DDR 주소 위치에서 데이터를 읽습니다. 이는 데이터를 읽는 프로세서에 2비트 오류가 있고 시스템이 복구를 위해 적절한 조치를 취해야 한다고 지시합니다(ECC 인터럽트 핸들러).

데모 디자인 설정
이 섹션에서는 SmartFusion2 고급 개발 키트 기판 설정, GUI 옵션 및 데모 설계 실행 방법에 대해 설명합니다.
다음 단계에서는 데모를 설정하는 방법을 설명합니다.

  1. USB mini-B 케이블의 한쪽 끝을 SmartFusion33 고급 개발 키트 보드에 제공된 J2 커넥터에 연결합니다. USB 케이블의 다른 쪽 끝을 호스트 PC에 연결합니다. 발광 다이오드(LED) DS27이 켜져야 UART 링크가 설정되었음을 나타냅니다. 다음 그림과 같이 USB to UART 브리지 드라이버가 자동으로 감지되는지 확인합니다(장치 관리자에서 확인할 수 있음).
    그림 4 • USB 대 UART 브리지 드라이버
    Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-4
    USB to UART 브리지 드라이버가 설치되지 않은 경우 다음에서 드라이버를 다운로드하여 설치하십시오. www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. 2페이지의 표 4에 표시된 대로 SmartFusion11 고급 개발 키트 보드에 점퍼를 연결합니다. 점퍼를 연결하는 동안 전원 공급 장치 스위치 SW7을 꺼야 합니다.

그림 5 • SmartFusion2 고급 개발 키트 보드 설정

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-5

 그래픽 사용자 인터페이스
이 섹션에서는 DDR – EDAC 데모 GUI에 대해 설명합니다.

그림 6 • DDR – EDAC 데모 GUI

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-6

GUI는 다음 기능을 지원합니다.

  1. COM 포트 및 전송 속도 선택
  2. 1비트 오류 수정 탭 또는 2비트 오류 감지 선택
  3. 지정된 DDR 주소에서 데이터를 쓰거나 읽기 위한 주소 필드
  4. 지정된 DDR 주소에서 데이터를 쓰거나 읽기 위한 데이터 필드
  5. 응용 프로그램에서 받은 상태 정보를 인쇄하는 직렬 콘솔 섹션
  6. EDAC 활성화/EDAC 비활성화: EDAC를 활성화 또는 비활성화합니다.
  7. 쓰기: 지정된 주소에 데이터를 쓸 수 있습니다.
  8.  읽기: 지정된 주소에서 데이터를 읽을 수 있습니다.
  9. 루프 테스트 ON/OFF: 루프 방식으로 EDAC 메커니즘을 테스트할 수 있습니다.
  10.  초기화: 사전 정의된 메모리 위치를 초기화할 수 있습니다(이 데모에서는 A0000000-A000CFFF).

데모 디자인 실행
다음 단계에서는 설계를 실행하는 방법을 설명합니다.다음 단계에서는 설계를 실행하는 방법을 설명합니다.

  1. 공급 스위치 SW7을 켭니다.
  2. 프로그래밍으로 SmarFusion2 장치 프로그래밍 file 디자인에서 제공 files.(\프로그래밍File\EDAC_DDR3.stp) FlashPro 디자인 소프트웨어를 사용합니다.
    그림 7 • FlashPro 프로그래밍 창
    Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-7
  3. 성공적인 프로그래밍 후 보드를 재설정하려면 SW6 스위치를 누르십시오.
  4. EDAC_DDR 데모 GUI 실행 파일 실행 file 디자인에서 사용 가능 files (\GUI 실행 파일\ EDAC_DDR.exe). 8페이지 그림 9과 같이 GUI 창이 표시됩니다.
  5. 연결을 클릭하면 COM 포트가 선택되고 연결이 설정됩니다. 연결 옵션이 연결 해제로 변경됩니다.
  6. 1비트 오류 수정 탭 또는 2비트 오류 감지를 선택합니다.
  7. 수동 및 루프 테스트를 수행할 수 있습니다.
  8. 수동 및 루프 테스트를 수행하기 위해 DDR 메모리를 초기화하려면 Initialize(초기화)를 클릭하십시오. 8페이지 그림 9과 같이 초기화 완료 메시지가 직렬 콘솔에 표시됩니다.

그림 8 • 초기화 완료 창

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-8

루프 테스트 수행
루프 테스트 켜기를 클릭합니다. 지속적인 수정 및 오류 감지가 수행되는 루프 모드에서 실행됩니다. SmartFusion2 장치에서 수행되는 모든 작업은 GUI의 직렬 콘솔 섹션에 기록됩니다.

표 2 • 루프 테스트에 사용되는 DDR3 메모리 주소

  • 메모리 DDR3
  • 1비트 오류 수정 0xA0008000
  • 2비트 오류 감지 0xA000C000

수동 테스트 수행
이 방법에서는 GUI를 사용하여 수동으로 오류를 도입합니다. 1비트 오류 수정 또는 2비트 오류 감지를 실행하려면 다음 단계를 사용하십시오.

표 3 • 수동 테스트에 사용되는 DDR3 메모리 주소

주소 및 데이터 필드를 입력합니다(32비트 XNUMX진수 값 사용).

  • 메모리 DDR3
  • 1비트 오류 수정 0xA0000000-0xA0004000
  • 2비트 오류 감지 0xA0004000-0xA0008000
  1. EDAC 활성화를 클릭합니다.
  2. 쓰기를 클릭합니다.
  3. EDAC 비활성화를 클릭합니다.
  4. 데이터 필드에서 1비트(2비트 오류 수정의 경우) 또는 XNUMX비트(XNUMX비트 오류 감지의 경우)를 변경합니다(오류 발생).
  5. 쓰기를 클릭합니다.
  6. EDAC 활성화를 클릭합니다.
  7. 읽기를 클릭합니다.
  8. GUI에서 오류 수 표시 및 데이터 필드를 관찰하십시오. 오류 카운트 값이 1씩 증가합니다.

1비트 오류 루프 수정 창은 다음 그림과 같습니다.

그림 9 • 1비트 오류 루프 감지 창

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-9

2비트 오류 감지 수동 창은 다음 그림과 같습니다.

그림 10 • 2비트 오류 감지 수동 창

Microsemi -DG0618-SmartFusion2-DDR 메모리를 사용하는 장치에서 오류 감지 및 수정-10

결론
이 데모는 MDDR 하위 시스템에 대한 SmartFusion2 SECDED 기능을 보여줍니다.

부록: 점퍼 설정

다음 표는 SmartFusion2 고급 개발 키트에 설정하는 데 필요한 모든 점퍼를 보여줍니다.

표 4 • SmartFusion2 고급 개발 키트 점퍼 설정

점퍼 : 핀(시작) : 핀(끝) : 설명

  • J116, J353, J354, J54 1 2 Advanced의 기본 점퍼 설정입니다.
  • J123 2 3 개발 키트 보드. 이러한 점퍼가 적절하게 설정되었는지 확인하십시오.
  • J124, J121, J32 1 2 JTAG FTDI를 통한 프로그래밍

DG0618 데모 가이드 개정판 4.0

문서 / 리소스

DDR 메모리를 사용하는 SmartFusion0618 장치에서 Microsemi DG2 오류 감지 및 수정 [PDF 파일] 사용자 가이드
DG0618 DDR 메모리를 사용하는 SmartFusion2 장치에 대한 오류 감지 및 수정, DG0618, DDR 메모리를 사용하는 SmartFusion2 장치에 대한 오류 감지 및 수정, DDR 메모리, DDR 메모리를 사용하는 SmartFusion2 장치

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *