(※ 많은 사이트를 보고 공부해나가며 직접 정리한 것으로 올바르지 않은 내용이 있을 수 있습니다.)
💾 PCB vs Chip
SOC를 이해하기 전 알아야할 칩, 회로 기판 등의 개념에 대해서 조사하였다.
회로 기판 (Board) | 칩 (Chip) | |
정의 | 구리 등의 전도성 금속 회로판에 여러 칩, 부품, 연결망을 연결한 것 |
실리콘 판에 여러 반도체 소자를 집적한 것 |
주요 구성 | 전자 부품, 연결자, 전원 공급 장치 등 | 반도체 소자 (CPU, 메모리, 입출력 등) |
크기 | 다양한 형태가 있으나 상대적으로 큼 | 실리콘 웨이퍼의 크기에 따라 다르나 보통 작음 |
용도 | 전자 회로를 구성하여 여러 기능도 수행 가능 (e.g. CPU 보드: PC에 연결 가능) |
모든 기능이 아닌 특정 기능을 주로 수행 (e.g. CPU 칩: 데이터 처리 기능, PC에 바로 연결은 불가능) |
제조 방식 | PCB 제조 및 부품 삽입/솔더링 (smt 공정) | 웨이퍼 공정 및 패키징 |
장점 | 다양한 기능 구현 가능, 개발 및 수정 용이 | 하나의 칩에 모든 소자가 단거리에 연결되어 있어 높은 성능, 낮은 소비 전력, 작은 크기 |
단점 | 크기카 크고 무거우며 가격이 비쌈 | 개발 및 수정이 어려움, 버스 병목현상(Propagation delay) |
칩은 기본적으로 전기가 흐르는 보드와는 다르게 전기 전도도가 낮고 두께가 얇고 강도가 강한 실리콘 웨이퍼에
구역별로 불순물(붕소, 인 등) 을 추가하여 성질을 부여해 사용한다는 점에서 제작 방식에 대한 차이가 있으며
정리하면 CPU 소자를 보드에 올리면 CPU PCB가 되고, 웨이퍼에 올리면 CPU 칩이 되는 것이다.
💾 SOC 란?
SOC는 PCB 처럼 여러 칩을 올려 사용할 수 있게 하는 것은 동일하며
하나의 Chip에 여러가지 반도체 소자를 사용해 특정 기능이 아닌 다기정을 수행할 수 있는 다목적 칩을 만드는 과정이다.
즉 하나의 Chip에 CPU, 메모리, 디스크 반도체를 추가해 하나의 칩만 있으면 노트북을 만들 수 있게 된다.
예를 들어 기존 우리가 사용하는 Non SOC PC는 메인보드 슬롯에 메모리 PCB, 디스크 PCB 등을 추가할 수 있다.
최근에 나온 SOC PC(Mac Book) 같은 경우에는 웨이퍼에 메모리 칩을 반도체 공정을 통해 추가해야 하니 사실상 추가가 불가하다.
아래는 학부 시절에 많이 사용하였었던 MCU인 ATMEL 상의 AT91SAM9261 Block Diagram 이다.
프로세서, 메모리, 통신, 데이터 변환, 타이머 관련 여러 소자들이 올라가 있음을 확인할 수 있으며
이 소자들을 통해 컴퓨터 기능을 하는 하나의 SOC 칩을 통해 MCU로써 사용할 수 있게 된다.
💾 프로세서 & 집적 회로
위 AT91SAM9261와 같이 데이터 처리, 연산 등의 동작을 위해 프로세서 또는 집적 회로가 필요하다.
칩 제작 시 아래 프로세서 또는 집적 회로를 사용하여 개발이 가능하고 목적, 기능에 맞게 선택할 수 있으며
선택한 것에 따라 개발 방법이 나뉜다.
CPU - 프로세서 | GPU - 프로세서 | FPGA - 집적 회로 | ASIC - 직접 회로 | |
설계 방식 | 명령어 기반 | 데이터 병렬 | 논리 설계 | 하드웨어 설계 |
제조 방식 | 일반 목적 트랜지스터 | 전문화된 트랜지스터 | 논리 게이트 배열 | 논리 게이트 배열, 마스크 롬 등을 사용 |
성능 | 일반적인 모든 작업 적합 | 그래픽 처리, 병렬 연산에 강점 | 유연한 성능 조절 가능 | 특정 작업에 최적화 |
비용 | 중 | 상 | 소량 생산에 적합 | 대량 생산에 적합 |
유연성 | 최상 | 상 | 중 | 하 |
개발 시간 | 짧음 | 길음 | 짧음 | 길음 |
전력 효율 | 높음 | 낮음 | 낮음 | 높음 |
적용 분야 | 컴퓨터, 스마트폰 등 | 게임, 영상 편집, 딥러닝 등 | 프로토타입 제작, 소량 생산 제품 |
고성능 칩, 대량 생산 제품 |
CPU로 갈수록 유연성이 높은 대신 대량 생산에 있어 효율성이 떨어지며
ASIC으로 갈수록 유연성이 낮은 대신 대량 생산에 있어 효율성이 올라간다.
FPGA (Field Programmable Gate Array)
FPGA(Field Programmable Gate Array)를 사용하여 개발 시 논리 게이트 배열을 사용하여 개발이 이루어지며
개발자는 Verilog 언어로 코딩하여 여러 동작 및 결과값을 확인할 수 있다.
학부 때 디지털 회로 설계 수업 및 각종 프로젝트 진행 시 7 Segmant, LCD, LED 제어 등의 개발을
하는데 사용한 것이 FPGA 개발용 Kit 이다.
FPGA는 CLB, SM, IOB로 구성되며 세부 내용은 아래와 같다.
1. CLB
FPGA 내에서 가장 기본적인 논리 블록이며 각 CLB에는 여러 개의 LUT(Look-Up Table)과 MUX(Multiplexer)가 포함되어 있다.
LUT를 사용하여 논리 함수를 정의하고, MUX를 사용하여 여러 값 중 필요한 값을 출력으로 전달한다.
2. SM
SM은 CLB 사이를 연결하는 전환 매트릭스이다. 매트릭스는 CLB 간의 연결을 제어하여 필요한 신호가 각 블록 사이를 효율적으로 전달할 수 있도록 한다.
3. IOB
IOB는 FPGA의 입력 및 출력 신호를 처리하는 블록이며 외부 신호를 FPGA 내부로 가져오거나, FPGA에서 외부로 신호를 보내는 역할을 담당한다.
4. 특징
플립플롭에 의해 불필요한 면적을 많이 사용할 수 있으며, 이는 설계의 복잡성을 증가시킬 수 있다.
또한, MUX로 인해 신호가 전환되는 과정에서 Propagation delay가 발생할 수 있어 성능에 영향을 줄 수 있다.
ASIC (Application-Specific Intergrated Circuit)
ASIC은 특정 기능에 최적화된 맞춤형 반도체이다.
예를들어 위에서 본 FPGA는 많은 Logic Block들이 있으나 보통 일부만 사용하기 때문에 크기가 크며 비효율적이다.
반면 ASIC은 맞춤형 이기 때문에 아래와 같은 여러 방법의 통해 최적화가 가능하다.
[최적화 에시]
1. Logic Block에 맞게 설계
Look-Up Table (LUT)과 Flip-Flop으로 구성된 논리 블록(CLB)을 개발 제품에 맞게 구성
2. Fixed Logic Module 사용
FPGA 회사에서 제공하는 로직 모듈을 개발 제품에 맞게 수정하여 복잡한 기능을 비교적 간편하게 구현한다.
3, Embedded Memory, DSP 사용
외장 모듈 외에 내장된 메모리와 DSP(Digital Signal Processor) 모듈을 사용하여 각종 신호 처리 및 작업을 수행하여
외부 장치를 줄여 최적화 한다.
4. 기타
각각 따로 사용하는 Clock 선을 통일하거나, 불필요한 Bus를 제거하는 방식으로 기타 여러 최적화를 수행한다.
따라서 위 그림과 같이 FPGA와는 다르게 ASIC은 typical한 구조는 존재하지 않으나 논리 블록, 메모리, 주변 회로, 입출력 블록 등으로 구성됨은 FPGA와 동일하다.
CPU (Central Processing Unit)
작성중
GPU (Graphics Processing Unit)
작성중
💾 펌웨어 사용
FPGA, ASIC을 사용하는 방법 외에 MCU를 사용하여 펌웨어 개발을 하는 경우는 직접적인 하드웨어 조작에 있어
작성중
참조
https://www.napatech.com/age-of-fpga/
https://www.pcbaaa.com/fpga-what-is-it-and-how-does-it-work/
https://www.researchgate.net/figure/Typical-FPGA-architecture_fig2_309115833
'embedded' 카테고리의 다른 글
CAN 네트워크 매니지먼트(NM) 정리 (0) | 2024.03.21 |
---|---|
Flash Reprogramming 정리 (0) | 2024.03.21 |
AutoSAR 정리 (0) | 2024.01.16 |
Simulink 정리 (0) | 2024.01.11 |
MATLAB 정리 (0) | 2024.01.08 |