1 / 29

독자적인 DSP 코어 설계 방법론

독자적인 DSP 코어 설계 방법론. VLSI System Lab. 남 상준 Tel: 4406 E-mail: sjnam@vslab.kaist.ac.kr. 1) 독자적인 구조의 DSP 설계 FLOW. 스펙 ( 구조와 명령어 ) 결정. ISS 를 통한 성능 예측. RTL Simulation. Synthesis. H/W Emulation. Placement & Route. Fabrication. 응용 시스템 구현. 2) 스펙의 결정. 비호환 DSP 인 경우 올바른 스펙 결정이 가장 중요하다 .

addison
Download Presentation

독자적인 DSP 코어 설계 방법론

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 독자적인 DSP 코어 설계 방법론 VLSI System Lab. 남 상준 Tel: 4406 E-mail: sjnam@vslab.kaist.ac.kr

  2. 1) 독자적인 구조의 DSP 설계 FLOW 스펙(구조와 명령어) 결정 ISS를 통한 성능 예측 RTL Simulation Synthesis H/W Emulation Placement & Route Fabrication 응용 시스템 구현

  3. 2) 스펙의 결정 • 비호환 DSP인 경우 올바른 스펙 결정이 가장 중요하다. • 스펙 결정시 참고할 사항들 • DSP 응용 분야의 알고리즘 분석 • DSP 응용 분야의 시장성과 타당성 조사 • 기존 상용 DSP 프로세서의 스펙 조사 • 상용 DSP 프로세서와의 차별화 • 충분한 자료 조사 • 스펙에 관한 도큐멘트가 구현보다 선행되어야 한다. • 진정한 설계는 구현이 아니라 도규멘트이다.

  4. 테스트를 고려한 독자적인 구조의 고성능 부동소수점 DSP 코어 FLOVA 코어 개발 내용 *FLOVA (FLOating-point VLIW Architecture) 테스트 용이화를 고려한 설계 독자적인 고성능 구조 부동 소수점 지원 - 부동 소수점 연산의 표준안(IEEE754) 지원 - 3차원 그래픽스 중 geometric engine의 핵심 연산인 4x4 행렬 연산 속도를 높이기 위한 부동 소수점 연산기과 lighting 연산 - 동작 주파수 등의 구체적인 spec. - 영상처리, 3차원 그래픽스에 최적화된 구조와 명령어 선정 - 프로그램의 고유한 ILP(Instruction Level Parallelism)을 최대한 이용하기 위한 VLIW(Very Long Instruction Word) 구조 + + - BIST, Boundary Scan 회로의 추가 - Fault coverage를 높이기 위해 디자인 변경

  5. 미디어 프로세서 • 특징 • 멀티미디어 데이터 처리에 높은 성능을 발휘 • 멀티미디어 알고리즘변화에 대처가 가능 • 멀티미디어 처리를 위해 하드웨어 / 소프트웨어를 모두 이용 • 상용 미디어 프로세서 • Texas Instruments : TMS320C62xx / TMS320C8x • Chromatics : Mpact • MicroUnity : MediaProcessor • Philips : Trimedia • 범용 마이크로프로세서 + graphics instructions • Pentium + MMX (2) • AMD K6 + 3D Now! = AMD K6-2

  6. 멀티미디어 데이터의 특징 • 종류 • 영상, 소리, 2D그래픽, 3D 그래픽, 디지털 이미지, 텍스트 • 대용량의 데이터 • 100 KB ~ 10MB • 여러 개의 데이터에 동일한 연산이 필요할 가능성이 높음 • SIMD형태의 프로세서가 적합 • 데이터의 locality에 관련하여 • High spatial locality • 데이터 pre-fetch등이 효과가 있음 • Poor temporal locality • 데이터 캐쉬가 사용되는 경우 hit-ratio가 낮음

  7. 상용 미디어 프로세서들 TMS32C6x TMS320C8x Mpact TriMedia Vendor TI TI Chromatic Philips Instruction width 8 x 32-bit 32-bit/24-bit 2 x 36-bit 5 x 32-bit Internal data width 32-bit 16-bit 36-bit 32-bit Issue rate 8 1+4 2 5 # of functional units 8 - 5 27 Register file size 32 x 32-bit - 4KB SRAM 128x32-bit Architecture VLIW RISC+DSP Vector VLIW Clock speed 200 MHz 50 MHz 62.5 MHz 100 MHz Process 0.25mm 0.5mm 0.5mm 0.35mm Performance 1600 MIPS 5x50 MIPS 1~2BOPS 2~4BOPS

  8. 3) ISS를 통한 성능 예측 • 설계 초기에 응용 프로그램 분석을 통해 명령어 선정 시 사용 • 필요한 시스템 소프트웨어 • 어셈블러와 링커 • ISS (Instruction Set Simulator) • FLOVA의 표준 참조 모델 • 클럭 단위로 칩 내부 연산 과정 시뮬레이션 • 칩 내부의 레지스터와 메모리 내용 dump 기능 • breakpoint를 통한 디버깅 기능 • 수행 프로그램 통계 자료 추출 • 수행 시간 • 하드웨어 사용 빈도 • 명령어의 사용 빈도 • 명령어 스케쥴러

  9. ISS에서의 Edge Detection 수행 • 입력 데이타 : lena 영상 (128 x 128 pixel) • 30 줄의 어셈블리 코드 • 600,000 사이클 수행 (UltraSPARC 1에서 3분 소요) • display overhead도 고려한 시간임. • 3KHz 속도로 수행 원 영상 edge detection된 영상

  10. VLIW 어셈블리 프로그램의 문제점 순차적인 프로그램을 VLIW 프로그램으로 변환(grouping) 하는 과정이 필요 분기 명령어를 넘어선 grouping에는 잘 설계된 명령어 스케쥴러가 필요 명령어 스케쥴러 주어진 순차적인 어셈블리 프로그램을 하드웨어 정보에 맞게 VLIW 프로그램으로 변환 한다. 하드웨어 정보의 변화를 통하여 아키텍쳐 변동에 따른 성능 변화를 알 수 있다. scalar assembly program 하드웨어정보 VLIW assembly program 명령어 스케쥴러 add r1, ... mul r7, ... lw r8, ... ... cmp r3, ... 명령어scheduler • issue slot의갯수 • register port의갯수 • fucntional block의갯수 add r1, nop sub r2, mul r7, lw r8, add r2, cmp r3, nop ...

  11. FLOVA의 성능 예측 • 명령어 스케쥴러의 구현 내용 • Data dependency check • Basic block내에서의 명령어 이동 • 명령어의 변환 • 하드웨어 constraint(quantity, latency)를 고려하여, 4개의 명령어를 하나의 명령어 라인으로 변환시키는 instruction packing • loop unrolling, superblock scheduling 등의 스케쥴링 기법 추가

  12. VLIW 구조 4 issue rate 4단계 / 7단계 파이프라인 부동 소수점 연산 블록 32-bit 데이터 13개의 기능 블록 32-bit, 64-entry 레지스터 파일 영상 처리 / 3D Graphics 용 프로세서 Packed 연산 지원 멀티미디어에 적합 136개의 명령어 집합 4) FLOVA 아키텍쳐 FMUL FALU Register File FREC LDST LDST Register File SHIFT Operand Distributor Result Bus PMUL Instruction Cache Instruction Decoder PALU IMUL IALU IALU IALU BRPC IF ID EX WB EX1 EX2 EX3 EX4

  13. FLOVA의 구성 기능 블록 개수 Latency 내용 IALU 3 1 정수의 산술, 논리 연산 및 메모리 어드레스 연산 IMUL 1 1 정수 곱셈 연산 PALU 1 1 8-bit, 16-bit sub-word 산술 연산(SIMD) PMUL 1 1 8-bit, 16-bit sub-word 곱셈(SIMD) SHIFT 1 1 정수, sub-word에 관한 shift 연산 FALU 1 3/4 부동 소수점 산술, 비교, 변환 연산 FMUL 1 3/4 부동 소수점 곱셈 연산 FREC 1 3 부동 소수점 reciprocal, reciprocal square BRPC 1 3 프로그램 제어 연산 LDST 2 2 메모리 액세스 연산

  14. FLOVA의 data types 31 0 Integer 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0 Packed Byte 63 48 47 31 16 15 0 Packed Word 63 32 31 0 Packed Doubleword 31 30 23 22 0 Single-precision Floating Point sign fraction(23 bits) exponent(8 bits) 63 62 52 51 0 Double-precision Floating Point sign fraction(52 bits) exponent(11 bits)

  15. FLOVA 명령어 집합 • 총 136개 명령어 • Arithmetic and logical instructions ( 50개 ) • ABS,ADD,ADC,SUB,SBC,CMP,MAX,MIN, LHI, MUL, LLI, … • AND, NOT, OR, XOR, ... • Shift instructions ( 18개) • ASL, ASR, LSL, LSR, ROL, ROR, PASL, PASR, PLSL, PLSR, ... • Floating-point instructions ( 24개 ) • FADD, FSUB, FCMP, FCMPU, FF2I, FI2F, FMUL, FREC, FSREC, FABS, ... • FADD2, FSUB2, FCMP2, FCMPU2, FF2I2, FI2F2, FMUL2, FABS2, ... • Packed instructions ( 26개 ) • PADD, PADDS, PADDUS, PSUB, PSUBS, PSUBUS, PCMPE, PCMUPG, ... • PACK, UNPKL, UNPKH, PMULHW, PMULLW, PMADD, PSHFLL, PSHFLH, ... • Program control instructions ( 11개 ) • BREAK, CALL, FOR, TRAP, BL, BR, RTI, RTS, BAND, BOR, PRED • Miscellaneous instructions ( 7개 ) • LD, ST, MVFRS, MVTOS • NOP, IDLE, WAIT

  16. 5) FLOVA의 검증 방법 • RTL 검증 (Self-checking code, IPC) • 실제 프로그램을 통한 packed 명령어의 검증 • H/W emulation • Source-level debugging system 개발

  17. RTL 검증 (1) 명령어 수행 전의 초기 flag • Self-checking code를 이용한 방법 • 각 명령어의 boundary condition 검증 • VEC2S script 개발 • vector assembly program • input (vectors) • 명령어의 입력 operands(S1,S2) • 명령어 수행 결과(RES) • 명령어 수행 전후의 flag 값(BF,AF) • output: 검증용 assembly programs • result와 수행 전후의 flag가 일치해야 성공 • 실제 응용 프로그램을 이용한 방법 • 명령어 간의 의존성에 의해 발생하는 오류 검증 • 어셈블리 프로그램 사용 두개의 operand 수행 결과 S1 S2 BF RES AF 00000000 00000000 0000 00000000 0002 00000001 00000001 0000 00000002 0000 명령어 수행 후의 결과 flag VEC2S LHI s1, 0000_0001 LHI s2, 0000_0001 LHI res, 0000_0002 ADD dest, s1, s2 CMP.ne dest, res B.ne error

  18. RTL 검증 (2) • IPC (Inter-Process Communication) • Generating random code • Compare internal states of two models at every cycle • HDL model vs. ISS • Internal states • general registers and special registers • PC (Program Counter) • pipeline registers • memory values HDL model ISS results results Compare routine next cycle next cycle

  19. alpha x + x (1 - alpha) PMADD 실제 프로그램을 통한 명령어 검증 • PMADD(Packed Multiply and ADD) 명령어 • 벡터합을 효과적으로 지원 • 동작 • Alpha blending source1 A B C D x x x x source2 E F G H + + result (A x E) + (B x F) (C x G) + (D x H)

  20. Alpha Blending(계속) Alpha map Result

  21. Logical packed 명령어 검증에 사용 용도 특정 색을 이용한 영상 합성 일기 예보 등에 사용 Chroma Keying

  22. 하드웨어 에뮬레이션 • 고속의 기능 검증 • 크고 복잡한 프로그램을 실제 칩에 가까운 속도로 실행시킴으로써 시뮬레이션으로는 발견되지 않았던 설계 오류를 수정할 수 있다. • 설계 초기 단계에서 칩의 Prototype 제작 • 칩의 prototype을 이용하여 주변 시스템과 소프트웨어 개발이 가능하다. • 효과적인 H/W,S/W co-design • Time-to-market의 단축

  23. FLOVA의 에뮬레이션 중 functional emulation 단계

  24. FLOVA (QTurn) P C I MEMORY MEMORY Board Controller JTAG Controller CMM QTurn M3000 TIM Source-Level Debugger개발 환경 < EVM Board > PCI Bus: 33 MHz < FLOVA > (Emulation : 1MHz) < Debugger Program >

  25. 6) 응용 시스템 구현 • FLOVA의 일부 디자인으로 DIVA 칩 제작 및 측정 • IDEC MPW 사업을 통해 칩 제작 i) 0.6 m SAMSUNG SOG 공정 ii) 8mm x 8mm 칩 크기 iii) 88, 931 게이트 수 iv) 최대 80 MOPS (Million OPerations Per Second) • Testing and application board 제작 • 여러 가지 영상 프로그램 수행 • FLOVA • 현대 0.35 mm CBIC 공정 예정 i) 10 mm x 10mm 칩 크기 ii) 270,000 게이트 수 iii) 최대 2100 MOPS / 500 MFLOPS @100MHz • 3D graphics geometry accelerator로 사용

  26. SRAM 32K  8bit  8개 ALTERA- MEMORY Interface Logic DIVA-MEMORY Interface Logic DIVA ALTERA Controller DIVA testing and application board

  27. DIVA의 동작 측정 영상 처리 프로그램 작성 프로그램과 이미지를 DIVA에 전송 영상 처리된 결과를 PC를 통해 보여줌 영상 처리 프로그램 Alpha Blending Chroma Keying DIVA의 영상 프로그램 수행 과정 1. Downloading program and image data for DIVA 5. Display result image DIVA 4. Writing result image 2. Fetching program and image data 3. Image processing

  28. 10 mm 10 mm DMEM0 DMEM1 PCACHE PERI. FREC LDST CONTROL JTAG, DBG, .. IALU IMUL FMUL DISTRIBUTOR REGISTER FILE FALU PALU, .. FLOVA의 Floorplan 결과 • 성능 • 2100 MIPS • 500 MFLOPS • 100MHz • 공정 • 현대 0.35m CBIC • 크기 • 10mm X 10mm • 전체 Gate 수 • 27만 gate • Data Memory 크기 • 8KB X 2 • Instruction Cache 크기 • 8KB

  29. 7) 결론 • 독자적인 구조를 갖는 DSP 프로세서의 설계방법론 소개 • 부동소수점 DSP 코어인 FLOVA를 통한 예시 제시 • Hardware emulation • Application 프로그램을 이용한 검증 • 독자적인 구조에서는 특히 • 초기 스펙 결정 • 표준 참조 모델 구현 • 정확한 도큐멘트 등이 중요하다. • Real 3D game과 OpenGL을 이용한 시스템 구현 중.

More Related