Hardware vs Software

노정훈·2023년 5월 19일
0

CE

목록 보기
18/24
post-custom-banner

Hardware vs Software

  • 일반적인 SW와 HW는 수행해야할 logic이 programming source code로 구현되느냐, 아님 gate들로 구성된 chip으로 만들어지느냐의 차이로 구분됨.
  • SW는 CPU(or MPU)에서 동작하거나 해당 SW를 수행할 수 있는 HW에서 동작하므로 핵심 logic인 program만 변경하면 다른 task를 수행하거나 좀 더 개성된 형태로 동작 가능
  • HW는 제조가 되고 난 후에 설계된 task만 수행할 뿐 변경이 어려움. 하지만, 해당 task를 CPU 대비 빠르게 수행하면서 개별 단가가 낮다는 장점.

Firmware

  • 원래 firmware는 ROM에 저장된 software를 의미.
  • 전원이 나가도 유지가 되어야하는 logic을 programming code를 compile하여 만든 실행코드로 작성하고 이를 ROM에 저장
  • BIOS 등이 대표적인 예시
  • Flash memory가 ROM을 대체하면서 firmware도 제조된 이후 업데이트가 가능해짐.

FPGA(Field Programmable Gate Array)

  • firmware에서 사용하는 ROM 또는 Flash memory는 logic을 저장하고 있을 뿐 logic을 실제 수행하지 않음
  • FPGA는 자체가 logic을 담고 있고, IC처럼 해당 logic을 수행하는 chip
  • Hardware Description Language(HDL)과 같은 programming language로 구현하고 이를 FPGA에서 다운로드 시킴으로서 해당 logic을 수행하는 HW가 됨.
  • FPGA는 IC가 gate들을 조합하여 구성되는 것을 이용하여 기본 component들을 block으로 지정하고 이를 array로 묶은 chip임. 이를 어떻게 연결하느냐에 따라 logic이 구현. 이를 연결하는 것을 programming language로 작성된 code가 결정.
  • FPGA를 만드는 업체는 어떤 logic의 chip이 될 수 있는 일종의 만능칩 제공 후 시스템이나 어플리케이션을 만드는 개발자가 여기에 logic을 구현.
  • 초기 FPGA는 PROM처럼 한번 다운로드하고 나면 수정이 불가능했지만 현재는 전기적으로 자유롭게 수정 가능.
  • FPGA는 firmware보다 한 발 더 나아간 수정 가능한 Hardware라 할 수 있음.

ASIC vs FPGA

  • 반도체로 구현되는 다양한 IC들 대부분이 ASIC(Application-Specific Integrated Circuit) 형태
  • 사용되는 분야에 맞게 전용 logic을 탑재한 IC
  • 해당 task를 수행하는 가장 빠르고 효율적인 IC 제작이 가능하며 high volume production application의 경우 가장 낮은 개별단가가 가능한 방법
  • low volume production application이 주가 되는 산업 분야에서는 개별단가를 낮추기가 어렵다는 단점
  • 한 번 setup이 되고난 후 생산하는 비용은 낮지만 초기 비용이 높고 이를 낮추기가 어려워 prototype application을 만들거나 low volume production application에서 사용하기 쉽지 않다는 단점
  1. AP(Application Processor) :
    • 대표적인 ASIC로 휴대기기 핵심 processor.
    • computer에서 CPU와 같은 역할.
    • 작은 휴대기기 공간에 많은 기능을 높은 집적도로 구현하기 위해 만 들어진 ASIC으로 특정 용도에 최적화된 processor
  2. CPU(Central Processing Unit) :
    • PC에서 주로 MPU(Micro Processor Unit)가 CPU로 사용
    • 매우 높은 성능으로 연산, 제어 담당. 그래픽처리, 통신 등은 처리 하지 않음.
  3. MCU (Micro Controller Unit) :
    • CPU의 기능을 하는 핵심장치(processor core)와 그 주변장치들이 하나의 chip으로 구현된 것
    • MPU와 흡사하지만 연산 능력이 상대적으로 낮고 저렴함
    • MPU에 memory나 i/o 등이 좀 더 추가되어 하나의 IC로 패키징된 경우
  4. Micro-computer :
    • IC 하나에 computer system을 집적시킨 SoC(System on a chip).
    • AP의 조상격으로 MCU에 시스템으로 필요한 기능 등을 추가하여 하나의 IC로 만든 것
    • μcom\mu-com or u-com으로 표기
  • FPGA는 ASIC와는 반대로 design과 manufacture를 위한 초기 비용은 낮지만, setup 이후 생산 개별 단가는 ASIC보다 높음
  • 개별 제품이 고가이고 소량다품종이 요구되는 산업분야에선 ASIC보다 나은 선택

Possibility of FPGA

  • FPGA 개별단가도 기술의 발전으로 낮아지고 있고 의료기기 및 지능형 컴퓨팅 등에서 FPGA의 중요성은 더욱 커질 것으로 보이며 관련 시장 역시 더욱 넓어질 것으로 보임.

Programming Language for FPGA

Verilog and VHDL

  • Verilog(system verilog)과 VHDL은 대표적인 HW description language.
  • FPGA를 설계하는데 사용되며 실제 FPGA에 다운로드하기 전 시뮬레이션 등도 가능
  • 초창기에는 VHDL이 많이 사용되었지만, 현재는 C와 비슷한 Verilog가 현재는 많이 사용됨.

System C

  • 앞선 두 언어와 같이 HW description language 중 하나이나 좀 더 높은 수준의 abstraction을 제공하며 C++에 기본언어로 채택.
  • 개발자가 좀 더 사용하기 쉬움. 이는 반대로 HW보다 사람에 친화적인 언어라고 볼 수 있음.

References:
1) https://dsaint31.me/mkdocs_site/CE

profile
노정훈
post-custom-banner

0개의 댓글