๋ถ๋ฅ:์ ์๊ณตํ
์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
Field-Programmable Gate Array
์ธ๋ฅ ์ญ์ฌ์ ๊ฐ์ฅ ์ ๋ขฐ์ฑ[1]์ด ๋์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ์ง์ ํ๋ก ๋ฐ๋์ฒด. ๋ชจ๋ ์ ํธ๊ฐ ํ๋์จ์ด ๋ ๋ฒจ์์ ์ค์๊ฐ ์ฒ๋ฆฌ๋๋ค. HDL(Hardware Description Language)์ด๋ผ๋ ํน์ํ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด๋ฅผ ํตํด ์ ์์์ค๋๊ณ ์ ๋ก๋๋์ด ํ๋์จ์ด ๋ด๋ถ์ ๋ ผ๋ฆฌ์ฐ์ฐ๊ณผ ๋ฐฐ์ ์ด ์ฌ์กฐ์ ๋๋ค. (์ปดํ์ผ์ด๋ ์ฉ์ด ๋์ Synthesis๋ผ ๋ถ๋ฅธ๋ค.) ํ๋์๋ VHDL๊ณผ Verilog๋ผ๋ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด๋ฅผ ์ฃผ๋ก ์ด๋ค.
์ผ๋ฐ์ ์ธ ํ๋ก์ธ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋ถ๋ฌ์์ CPU์์ ํด๋ ํ์ฌ ์์ ์ ์คํํ์ง๋ง FPGA๋ ์์ ํ๋ก์ธ์ ๋ด๋ถ ํ๋ก๋ฅผ ํ๋ก๊ทธ๋จ์ ๋ง๊ฒ ์ง์ ์ค๊ณํด ๋๊ณ ๊ณง๋ฐ๋ก ๋ณ๋ ฌ์ ์ผ๋ก ์คํ์ํด์ผ๋ก์ CPU๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ ๊ณ์ฐ ์๋๋ฅผ ๋ผ ์ ์๋ค. FPGA ๋ด๋ถ์ ์ง์ ์ปค์คํฐ๋ง์ด์งํ CPU๋ฅผ ๋ฐฐ์นํด์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
์ธ๋ฅ ์ญ์ฌ์ ๊ฐ์ฅ ์ ๋ขฐ์ฑ[1]์ด ๋์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ์ง์ ํ๋ก ๋ฐ๋์ฒด. ๋ชจ๋ ์ ํธ๊ฐ ํ๋์จ์ด ๋ ๋ฒจ์์ ์ค์๊ฐ ์ฒ๋ฆฌ๋๋ค. HDL(Hardware Description Language)์ด๋ผ๋ ํน์ํ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด๋ฅผ ํตํด ์ ์์์ค๋๊ณ ์ ๋ก๋๋์ด ํ๋์จ์ด ๋ด๋ถ์ ๋ ผ๋ฆฌ์ฐ์ฐ๊ณผ ๋ฐฐ์ ์ด ์ฌ์กฐ์ ๋๋ค. (์ปดํ์ผ์ด๋ ์ฉ์ด ๋์ Synthesis๋ผ ๋ถ๋ฅธ๋ค.) ํ๋์๋ VHDL๊ณผ Verilog๋ผ๋ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด๋ฅผ ์ฃผ๋ก ์ด๋ค.
์ผ๋ฐ์ ์ธ ํ๋ก์ธ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋ถ๋ฌ์์ CPU์์ ํด๋ ํ์ฌ ์์ ์ ์คํํ์ง๋ง FPGA๋ ์์ ํ๋ก์ธ์ ๋ด๋ถ ํ๋ก๋ฅผ ํ๋ก๊ทธ๋จ์ ๋ง๊ฒ ์ง์ ์ค๊ณํด ๋๊ณ ๊ณง๋ฐ๋ก ๋ณ๋ ฌ์ ์ผ๋ก ์คํ์ํด์ผ๋ก์ CPU๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ ๊ณ์ฐ ์๋๋ฅผ ๋ผ ์ ์๋ค. FPGA ๋ด๋ถ์ ์ง์ ์ปค์คํฐ๋ง์ด์งํ CPU๋ฅผ ๋ฐฐ์นํด์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
2. ์ญ์ฌ[ํธ์ง]
FPGA๊ฐ ์๊ธฐ ์ ์ 1970๋
๋์ PLA๋ผ๊ณ ํ๋ ์ฌ๋ฌ๊ฐ์ ๋ก์ง ์์๋ฅผ ์ฎ์ด์ ์
์ถ๋ ฅ ๊ตฌ์ฑ์ ์๊ธฐ ๋ง์๋๋ก ๋ฐ๊ฟ์ ์๋ ์์๊ฐ ์์๋ค. ๋ค๋ง ์๊ธฐ๊ฐ ์๊ธฐ์ธ ๋งํผ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅํ ์์ค์ ์๋์๊ณ ์ธ๋ถ ํ๊ณผ ์ฐ๊ฒฐ๋์ด์ ์ ์ดํ๋ ๋ฐฉ์์ด์๋ค. ์์ง ๋ฐ๋์ฒด ๊ณตํ์ด ๋ฐ์ ํ์ง ์์ ์์ ์ด๋ผ ์ด๋์ ์์์๋ ์์ญ๊ฐ ์ ๋์๋๋ฐ FPGA์ ์ญ์ฌ๋ ์ด๊ณณ์์ ์์ํ๋ค๊ณ ๋ณผ ์ ์๋ค.
์ดํ PLA๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํด์ ๊ธฐ๋ฅ์ ๋๋ฆฐ PLD๊ฐ ํ์ํ๊ณ ์ด PLD์ ๊ท๋ชจ๊ฐ ์ปค์ง CPLD(Complex Programmable Logic Device)๊ฐ ๋์ค๊ฒ ๋๊ณ ์ดํ ๋ ๋ฐ์ ํ ๊ฐ๋ ์ธ FPGA๊ฐ ๋์ค๊ฒ ๋๋ค.
field-programmable gate array๋ผ๋ ์ด๋ฆ์ด ๋ถ์ ์ด์ ๋ ๊ฐ๋จํ๋ฐ ๊ธฐ์กด์ PLC, CPLD ์์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ด์ฐฝ๊ธฐ์ ROM์ฒ๋ผ ํจ์ฆ ๋ฐฉ์์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์์ ๊ณต์ฅ์ด ์๋๋ผ๋ฉด ํ๋ก๊ทธ๋๋ฐ์ด ๋ถ๊ฐ๋ฅํ ์ ํ์ด ๋ง์๊ธฐ ๋๋ฌธ์ด๋ค. FPGA์์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํ ์์ ์์ ์ ํตํด์ ๋ ๊ฐ๋จํ๊ฒ ๊ธฐ๋กํ ์ ์๊ฒ ๋์๊ณ ์ด๋๋ถํฐ ์ ์กฐ์ฌ๊ฐ ์๋์ด๋ ๋ ผ๋ฆฌ์์๋ฅผ ํ๋ก๊ทธ๋๋ฐํ ์ ์๊ฒ ๋์๋ค.
์์ฅ์ ๋์จ ์ฒซ FPGA๋ ์ํ ๋ผ์ EP300์ด๋ค. EP300์ ์์ธ์ ์ ์ด์ฉํ EPROM ๊ตฌ์กฐ๋ก ๋์ด์๋ ์ ํ์ด์๋ค.
์ดํ PLA๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํด์ ๊ธฐ๋ฅ์ ๋๋ฆฐ PLD๊ฐ ํ์ํ๊ณ ์ด PLD์ ๊ท๋ชจ๊ฐ ์ปค์ง CPLD(Complex Programmable Logic Device)๊ฐ ๋์ค๊ฒ ๋๊ณ ์ดํ ๋ ๋ฐ์ ํ ๊ฐ๋ ์ธ FPGA๊ฐ ๋์ค๊ฒ ๋๋ค.
field-programmable gate array๋ผ๋ ์ด๋ฆ์ด ๋ถ์ ์ด์ ๋ ๊ฐ๋จํ๋ฐ ๊ธฐ์กด์ PLC, CPLD ์์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ด์ฐฝ๊ธฐ์ ROM์ฒ๋ผ ํจ์ฆ ๋ฐฉ์์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์์ ๊ณต์ฅ์ด ์๋๋ผ๋ฉด ํ๋ก๊ทธ๋๋ฐ์ด ๋ถ๊ฐ๋ฅํ ์ ํ์ด ๋ง์๊ธฐ ๋๋ฌธ์ด๋ค. FPGA์์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํ ์์ ์์ ์ ํตํด์ ๋ ๊ฐ๋จํ๊ฒ ๊ธฐ๋กํ ์ ์๊ฒ ๋์๊ณ ์ด๋๋ถํฐ ์ ์กฐ์ฌ๊ฐ ์๋์ด๋ ๋ ผ๋ฆฌ์์๋ฅผ ํ๋ก๊ทธ๋๋ฐํ ์ ์๊ฒ ๋์๋ค.
์์ฅ์ ๋์จ ์ฒซ FPGA๋ ์ํ ๋ผ์ EP300์ด๋ค. EP300์ ์์ธ์ ์ ์ด์ฉํ EPROM ๊ตฌ์กฐ๋ก ๋์ด์๋ ์ ํ์ด์๋ค.
3. ์์ธ[ํธ์ง]
์นฉ์
๋ด๋ถ์ ๋ก์ง ๊ฒ์ดํธ๋ฅผ ์์ ์์ฌ๋ก ๊ตฌํํ ์ ์๋๋ก ์ง๋ฆฌํ๋ฅผ ์ด์ฉํด ๋ก์ง์ ๋ง๋ค์ด ๋ด๋ RAM๊ณผ ํ๋ฆฝํ๋กญ์ด ๋นฝ๋นฝํ ๋ฐํ์๊ณ ๋ด๋ถ ๊ฒฐ์ ์ ์ง์ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ ์ฉ๋์ ๋ง๊ฒ ์จ๊ฐ ์นฉ์ ์ค๊ณ ๊ฐ๋ฅํ๋ค. ๋จ์ MCU ๋์ฒด ์ฉ๋๋ถํฐ ์์ํด์ DSP๋ ์์ ์๊ธฐ๊ฐ ์ํ๋ ๋ฐฉ์๋๋ก ์๋ก์ด ๋
ผ๋ฆฌ ์์๋ CPU๋ฅผ ๋ง๋๋๊ฒ๋ ๊ฐ๋ฅํ๋ฉฐ ๋์ ์๋๋ ๋์ฌ๋ฒฝ์ด๋ค.(์ผ๋ฐ์ ์ธ MCU ๋์ ์๋๋ 100MHz๋ฅผ ๋๊ธฐ ํ๋ค์ง๋ง FPGA๋ ๊ธฐ๊ฐํค๋ฅด์ธ ๊น์ง ์ด๋ค. (์ฌ์ค FPGA๋ ๋์ ์๋๊ฐ ํฌ๊ฒ ์ค์ํ์ง ์๋ค. ์๋์ ๊ธฐ์ )
์ฃผ์ ์ฑ๋ฅ์ ์งํ๋ก๋ ๋์ ์๋๊ฐ ์๋ ๋ ผ๋ฆฌ ๋ธ๋ก์ ์๋ก ํ๊ฐ๋๋๋ฐ, ์ด๋ ๊ฒ์ดํธ ๊ฐ ๊ฒฐ์ ์ ํตํด ๋์์ ์๋ง์์ ์๋ฐฑ๋ง์ ๋ช ๋ น์ ๋จ ํ ๋ฒ์ ๋ณ๋ ฌ์ ์ผ๋ก ์คํํ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํด๋ญ์ ํธ์ ๋ง์ถ์ด ๋ช ๋ น์ด๋ฅผ ์ฐจ๋ก๋๋ก ์ํํ๋ ํ๋ก์ธ์์๋ ๊ทผ๋ณธ์ ์ผ๋ก ๋์ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค๊ณ ํ ์ ์๋ค.
ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ์ฃผ์ ์ ๋น๊ต๋์์ ํญ์ ASIC์ด๋ค. ASIC์ ํ๋ก๊ทธ๋๋ฐ์ด ๋ถ๊ฐ๋ฅํ ์์ฐํ ์ง์ ํ๋ก์ด๊ณ , ์ฑ๋ฅ, ์ ๋ ฅ์๋ชจ, ์นฉ ๊ฐ๊ฒฉ ๋ชจ๋ ๋ฉด์์ FPGA๋ณด๋ค ๋ฐ์ด๋์ง๋ง, ๊ฐ๋ฐ๋น์ฉ์ด ์ด๋ง๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ์์ ๊ท๋ชจ๊ฐ ํฌ์ง ์์ผ๋ฉด ASIC๋ณด๋ค๋ FPGA๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ผ๋ฐ์ ์ด๋ค. ASIC๊ณผ ๋น๊ตํด์ FPGA๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋น ๊ณต๊ฐ์ ๋ชจ๋ ์ฉ๋๋ก ํ์ฉ ๊ฐ๋ฅํ ๋ก์ง ๋ธ๋ก์ ์ฑ์ฌ๋ฃ์ ํํ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ ์๋ชจ๊ฐ ๋ง์ผ๋ฉฐ ASIC๋ณด๋จ ์ํํ๋ ์ค๊ณ๋ฅผ ํ ์ ์๋ค. ์ต๊ทผ์๋ ๋๋ฆ ์ ์ ๋ ฅ FPGA์นฉ์ด ์์ฉํ๋๊ธฐ๋ ํ๋ค.
ํ์ฌ๋ ๋จ์ ํ๋ก๊ทธ๋๋จธ๋ธ ๋ ผ๋ฆฌ ์์ ๋ง๊ณ ๋ ๋ณ๋์ CPU๋ฅผ ํ์ฌํ ํ์ ์์ด ์์ฒด์ ์ธ CPU๋ฅผ ํ์ฌํ ์ ํ๋ ๋์ค๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด์ ๋ค์ํ ๋ถ์ผ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ค์ด๋ค. ์ค์ ์ฐ์ ํ์ฅ์์ ์ผ๋ฐ์ ์ผ๋ก FPGA ๋จ๋ ์ผ๋ก ์ฐ์ด๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ณดํต์ ํผ์ฝ/๋๋ ธ์ด ๋จ์๋ก ๊ณ ์์ฒ๋ฆฌ๊ฐ ์ค์ํ ๋ถ์ผ๋ง FPGA๋ฅผ ์ ์ฉํ๊ณ ์ด FPGA๋ฅผ ๋ค๋ฅธ CPU๊ฐ ์ ์ดํ๋ ์์ผ๋ก ๋ง์ด ์ฐ์ธ๋ค. ์์ผ๋ง์ค์ ZYNQ, ์ธํ ์ ์ด์ง๋ ์ค SOC ๋ฑ๋ฑ ๋๋ค ARM ์ฝ์ดํ ์ค-A ๊ธฐ๋ฐ ์ฝ์ด ํ์ฌ.
์ธ๊ณต์ง๋ฅ ๋ถ์ผ๊ฐ ๋๋๋๋ฉด์, ์์ฅ ์ ์ ์จ์ ์ ์ ์ปค์ง ๊ฒ์ผ๋ก ์์๋๋ค.
์ฃผ์ ์ฑ๋ฅ์ ์งํ๋ก๋ ๋์ ์๋๊ฐ ์๋ ๋ ผ๋ฆฌ ๋ธ๋ก์ ์๋ก ํ๊ฐ๋๋๋ฐ, ์ด๋ ๊ฒ์ดํธ ๊ฐ ๊ฒฐ์ ์ ํตํด ๋์์ ์๋ง์์ ์๋ฐฑ๋ง์ ๋ช ๋ น์ ๋จ ํ ๋ฒ์ ๋ณ๋ ฌ์ ์ผ๋ก ์คํํ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํด๋ญ์ ํธ์ ๋ง์ถ์ด ๋ช ๋ น์ด๋ฅผ ์ฐจ๋ก๋๋ก ์ํํ๋ ํ๋ก์ธ์์๋ ๊ทผ๋ณธ์ ์ผ๋ก ๋์ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค๊ณ ํ ์ ์๋ค.
ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ์ฃผ์ ์ ๋น๊ต๋์์ ํญ์ ASIC์ด๋ค. ASIC์ ํ๋ก๊ทธ๋๋ฐ์ด ๋ถ๊ฐ๋ฅํ ์์ฐํ ์ง์ ํ๋ก์ด๊ณ , ์ฑ๋ฅ, ์ ๋ ฅ์๋ชจ, ์นฉ ๊ฐ๊ฒฉ ๋ชจ๋ ๋ฉด์์ FPGA๋ณด๋ค ๋ฐ์ด๋์ง๋ง, ๊ฐ๋ฐ๋น์ฉ์ด ์ด๋ง๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ์์ ๊ท๋ชจ๊ฐ ํฌ์ง ์์ผ๋ฉด ASIC๋ณด๋ค๋ FPGA๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ผ๋ฐ์ ์ด๋ค. ASIC๊ณผ ๋น๊ตํด์ FPGA๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋น ๊ณต๊ฐ์ ๋ชจ๋ ์ฉ๋๋ก ํ์ฉ ๊ฐ๋ฅํ ๋ก์ง ๋ธ๋ก์ ์ฑ์ฌ๋ฃ์ ํํ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ ์๋ชจ๊ฐ ๋ง์ผ๋ฉฐ ASIC๋ณด๋จ ์ํํ๋ ์ค๊ณ๋ฅผ ํ ์ ์๋ค. ์ต๊ทผ์๋ ๋๋ฆ ์ ์ ๋ ฅ FPGA์นฉ์ด ์์ฉํ๋๊ธฐ๋ ํ๋ค.
ํ์ฌ๋ ๋จ์ ํ๋ก๊ทธ๋๋จธ๋ธ ๋ ผ๋ฆฌ ์์ ๋ง๊ณ ๋ ๋ณ๋์ CPU๋ฅผ ํ์ฌํ ํ์ ์์ด ์์ฒด์ ์ธ CPU๋ฅผ ํ์ฌํ ์ ํ๋ ๋์ค๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด์ ๋ค์ํ ๋ถ์ผ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ค์ด๋ค. ์ค์ ์ฐ์ ํ์ฅ์์ ์ผ๋ฐ์ ์ผ๋ก FPGA ๋จ๋ ์ผ๋ก ์ฐ์ด๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ณดํต์ ํผ์ฝ/๋๋ ธ์ด ๋จ์๋ก ๊ณ ์์ฒ๋ฆฌ๊ฐ ์ค์ํ ๋ถ์ผ๋ง FPGA๋ฅผ ์ ์ฉํ๊ณ ์ด FPGA๋ฅผ ๋ค๋ฅธ CPU๊ฐ ์ ์ดํ๋ ์์ผ๋ก ๋ง์ด ์ฐ์ธ๋ค. ์์ผ๋ง์ค์ ZYNQ, ์ธํ ์ ์ด์ง๋ ์ค SOC ๋ฑ๋ฑ ๋๋ค ARM ์ฝ์ดํ ์ค-A ๊ธฐ๋ฐ ์ฝ์ด ํ์ฌ.
์ธ๊ณต์ง๋ฅ ๋ถ์ผ๊ฐ ๋๋๋๋ฉด์, ์์ฅ ์ ์ ์จ์ ์ ์ ์ปค์ง ๊ฒ์ผ๋ก ์์๋๋ค.
4. ์ ์กฐ์ ์ฒด[ํธ์ง]
FPGA ์ ์กฐ ์
์ฒด ์์ฒด๋ ๋ง๋ค. ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ๋ก ์ ๋ช
ํ ์
์ฒด๋ ์์ฌ ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ ๋ผ์ธ์
์ FPGA๋ฅผ ๋ผ์๋์ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ ์ฝ์ดํ
์ค-M ์ฝ์ด ์ค์๋ ์์ FPGA ์ฝ์ด๋ ์๋ค. ์์ฅ ์ ์ ์จ์ ์์ผ๋ง์ค๊ฐ 1์, ์ธํ
์ด 2์๋ก ๊ฒฝ์ํ๊ณ ์์ผ๋ฉฐ ์ด๋์ ํฉํ๋ฉด ๊ฑฐ์ 90%์ ๊ฐ๊น์ด ์์ฅ์ ์ ์จ์ ๋ณด์ฌ์ค๋ค.์์ฅ์ ์ ์จ ์๋๋ ์ํ
๋ผ์์ง๋ง ์ธํ
์ด ์ธ์ํ ๋ค ์์ ์ํ
๋ผ ๋ธ๋๋๋ฅผ ์ง์ฐ๊ณ ์ธํ
๋ธ๋๋์ ํธ์
ํ ์ํ๋ค. ํ์ฌ๋ AMD๊ฐ ์์ผ๋ง์ค๋ฅผ ์ธ์ํ๋ฉด์ ์ฌ์ค์ AMD์ ์ธํ
์ ๊ฒฝ์์ด ๋์๋ค. ์ด ๋ ํ์ฌ๋ ๋ช ์๋๋ ๋น
์นฉ FPGA๋ฅผ ์ ์กฐํ๋ ํ์ฌ๋ค์ด๋ฉฐ(๊ฐ๊ฐ ๋ฒํ
์ค, ํจํ
์ค/์คํธ๋ผํฑ์ค) ๋ฐ๋ผ์ ์ข ๊ท๋ชจ๊ฐ ํฐ ์ฅ๋น์ ๋ค์ด๊ฐ๋ FPGA๋ ์ญ์คํ๊ตฌ ์ด ๋ํ์ฌ์ ์ ํ์ด๋ค.[2] ์ฌ์ค์ ๋๋จธ์ง ์๊ท๋ชจ ์
์ฒด๋ค์ ๊ทธ๋ฅ ์ํ FPGA, CPLD ์์ฃผ๋ก ๊ตฌ์๋ง ๊ฐ์ถ ์์ค์ด๋ค.
5. ํ์ฉ[ํธ์ง]
- ํ๋กํ ํ์ -์นฉ ์์ฐ ๋จ๊ณ์์์- ํ ์คํธ
- ๋ก๋ด์ ์ด / ์ธ๊ณต์ง๋ฅ / ์ฑ๊ตด๊ธฐ / ๋ฐ์ดํฐ ์ผํฐ ๋ฑ์ ์ํ ๊ฐ์๊ธฐ ๋๋ ๊ทธ๋ํฝ ๊ฐ์๊ธฐ
- ํต์ ์์คํ ๋ฑ ๋์ ์ฒ๋ฆฌ๋ฅ๋ ฅ๊ณผ ์ ์ฐ์ฑ์ด ๋์์ ์๊ตฌ๋๋ ๋ถ์ผ
- ๊ธฐํ ๊ธฐ์กด ์์คํ ์ ์์นฉํ
๋น ๋ฅด๊ณ ์ ๋ขฐ์ฑ ์๋ ํ๋์จ์ด ํ๋ก๊ทธ๋๋ฐ์ ์๊ตฌ๋ก ํ๋ ํ์ฅ์์ ์ฃผ๋ก ์ฐ์ธ๋ค. ์ผ๋ฐ์ ์ผ๋ก ASIC(์ฃผ๋ฌธํ ๋ฐ๋์ฒด) ์ค๊ณ์ฉ ํ ์คํธ ์ฉ๋๋ DSP ๊ฐ๋ฐ์ฉ์ผ๋ก ์ฐ๊ฑฐ๋ ์ผ๋ถ์์ MCU ์ฉ๋๋ก ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
ํ๋๋ ๋ค๋ฅธ ์ ์ ๋ ฅ MCU๋ค์ ๋ฐ๋ฆฌ๋ค๊ฐ ์ต๊ทผ์ ๋ค์ด์ ๊ฐ์๊ธฐ ์ฉ๋๋ก ํ์ฝํ๋ฉฐ AI ๋ถ์ผ(๋ง์ดํฌ๋ก์ํํธ๋ ์ธํ ์ด ์ด ๋ถ๋ถ์ ์ ๊ทน์ ์ด๋ค.)๋ ์ํธํํ ์ฑ๊ตด ๋ฑ ๋ง๋ํ ์ฐ์ฐ๋ ฅ์ ํ์๋ก ํ๋ ๋ถ์ผ์์ ๋๊ฐ์ ๋๋ฌ๋ด๊ณ ์๋ค. ์ํธํํ ์ฑ๊ตด ๋ถ์ผ์์๋ ์ฌ์ค ASIC์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ๋จ๊ณ์ ํด๋น๋๋ค. ์ฑ๊ตด ๋ก์ง์ ๊ฐ๋ฐํด์ FPGA์ ํ์ฌํด ์ฑ๋ฅ ํ์ธ ํ ๊ทธ๋๋ก ASICํ.
๊ฐ์๊ธฐ ์ฉ๋์์๋ GPGPU์ ๊ฒฝ์์๋. FPGA๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋์จ์ด ๋ ๋ฒจ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ต์ ํ ํ ์ ์๊ธฐ ๋๋ฌธ์ GPGPU๋ณด๋ค ์ฑ๋ฅ์ด๋ ์ ๋ ฅ์๋ชจ ๋ฑ์์ ํจ์ฌ ์ ๋ฆฌํ๋ค. ์ํธํํ ์ฑ๊ตด๊ธฐ ์ฌ๋ก์์ ์ ์ ์๋ฏ์ด ์ ์ค๊ณ๋ ํ๋์จ์ด ๊ฐ์๊ธฐ๋ GPGPU๋ฅผ ์ ์ฑ๋น์์ ๋ฐ์๋ฒ๋ฆด ์ ์๋ค. ๊ทธ๋ฌ๋ ํ๋์จ์ด๋ฅผ ์ค๊ณํด ์ค์ผ ํ๋ FPGA์ ํน์ฑ์ ์ค๊ณ ๋์ด๋๊ฐ ๋งค์ฐ ๋๋ค๋ ํฐ ๋จ์ ์ด ์๋ค.(๊ทธ ์ด๋ ต๋ค๋ GPGPU๋ณด๋ค ํจ์ฌ ๋!) ์๋ฅผ ๋ค์ด ๋ฐ์ฌ ํ์๋ฅผ ๊ฐ์ง ์์ง๋์ด ํ๋ช ์ด 2๋ฌ๋์ ์ด๋ค ๋์์ ์ฒ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ GPGPU๋ก ๊ตฌํํ๋๋ฐ, ๋์ผํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ธฐ๋ฅ์ FPGA๋ก ๊ตฌํํ ๋ ๋ฐ์ฌ ํ์๋ฅผ ๊ฐ์ง ์์ง๋์ด ๋๋ช ์ด 1๋ ๋์ ์์ ํด์ผ ํ๋ค๋ ๋ณด๊ณ ๊ฐ ์๋ค. ๋จ์ ๊ณ์ฐํ๋ฉด ๋์ผํ ๊ธฐ๋ฅ์ ๊ตฌํ์ GPGPU ๋ณด๋ค 12๋ฐฐ์ ๋ ธ๋๋ ฅ์ด ํ์ํ๋ ๊ฒ์ด๋ค. C ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ง๋ฉด HDL๋ก ๋ณํํด์ฃผ๋ HLS(High Level Synthesis)๋ ๋ง์ด ๋ณด๊ธ๋์์ง๋ง, ๊ทธ๊ฒ ํ๋์จ์ด๋ฅผ ๋ชฐ๋ผ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ง๋ฅ๋๊ตฌ๋ผ ์๊ฐํ๋ฉด ๊ณค๋ํ๊ณ , FPGA ์ค๊ณ๋ ํ๋์จ์ด ์ค๊ณ์ ๋ํ ์ง์์ด ์๋ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋จธ์๊ฒ๋ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น์ด ์ง์ ์ฅ๋ฒฝ์ ๊ฐ์ง๊ณ ์๋ค. ์ปดํจํฐ ๊ณตํ๊ณผ์์ ๋ ผ๋ฆฌํ๋ก๋ ์ปดํจํฐ ์ํคํ ์ฒ ๊ณผ๋ชฉ์ ๋ฐฐ์ฐ๊ธด ํ๋, ๊ทธ ์ ๋๋ ๋น์ ํ์๋ฉด ์ํ์์ ๊ตฌ๊ตฌ๋จ ๋ฐฐ์ด ์์ค์ด๊ณ , ์ด์ชฝ์์ ์ผํ๋ ค๋ฉด ๋ณดํต ์ ์๊ณตํ ๋ฑ RTL ์ค๊ณ์ ๊ด๋ จ๋ ์์ฌ ํ์ ์ด์์ด ํ์ํ๋ค. ์ฆ, FPGA๋ฅผ ์ค๊ณํ ์ค ์๋ค๋ ๊ฒ์, ๋จ์ํ ์ํํธ์จ์ด์ ์ธ ์ฝ๋ฉ ์ง์ ๋ฟ ์๋๋ผ ํ๋์จ์ด์ ์ธ ์ง์๊น์ง ์ ์ฒด์ ์ผ๋ก ์๊ณ ์๋ค๋ ์ด์ผ๊ธฐ๊ฐ ๋๋ค.
๋ง์ดํฌ๋ก์ํํธ์์๋ ๋ฐ์ดํฐ์ผํฐ ์๋ฒ์ ์ํ ๋ผ(Altera)์ FPGA๋ฅผ ๋์ ํด์ Bing ๊ฒ์์์ง์ ์ฑ๋ฅ ๋ฐ ์ ๋ ฅ์๋ชจ๋ฅผ ์ ๊ฐํ๋ค๊ณ ํ๋ค.
์ผ๋ฐ์ธ๋ค์ด ์ฒด๊ฐํ ์ ์๋ ์ฌ์ฉ์ฌ๋ก๋ฅผ ๊ผฝ์๋ณด๋ฉด G-SYNC๋ ์นด๋ฉ๋ผ๋ฑ์ด ์๋๋ฐ ์๋น๋์๋ ์์ฌ์ G-SYNC ์ปจํธ๋กค ๋ณด๋์ ์ธํ ์ ARRIA FPGA๋ฅผ ๋ฐ๋ ๋ฌด์ํ๊ธฐ ์ง์ด์๋ ์ง์ ํ๋ค. ์ด์ธ์๋ ์๋น๋์๋ ์ธํ ์ FPGA๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค. Quadro Sync II ์๋ ์ธํ ์ FPGA๊ฐ ๋ค์ด๊ฐ ์์์ ํ์ธํ ์ ์๋ค. ์์ ์บ ์ฝ๋ ๋ถ์ผ์์ ์ด ๊ณ ํด์๋ ์์์ ๋ฌด์ง๋ง์งํ ์ฒ๋ฆฌ๋์ ๊ฐ๋นํ๊ธฐ ์ํด ์์ ๋ํ FPGA๋ฅผ ํต์งธ๋ก ๋ฃ๊ณ ์ฒ๋ฆฌํด๋ฒ๋ฆฌ๋ ์ ํ๋ค์ด ๋ง๋ค.
6. ๊ด๋ จ ๋ฌธ์[ํธ์ง]
[1] ํญํ๋ฉด ๋ ๊ฑธ๋ฆฌ๊ฑฐ๋ ๋ช๋
์ฐ๋ฉด ์ฑ๋ฅ์ด ํ๋จ์ด์ง๋ ์ผ๋ฐ์ ์ธ ์ปดํจํฐ์๋ ๋ค๋ฅด๊ฒ, ์ฝ๊ฒ ๊ณ ์ฅ๋์ง ์๊ณ ์์ญ๋
๋๋ ค๋ ์ค๋ฅ ํ๋ฒ ๋์ง ์๋ ์ฅ์ ์ด ์๋ค. ๋๋ถ์ ์์คํ
์ ์์ ์ฑ๊ณผ ์์์ฑ, ๋ณด์๊ณผ ์์ธก ๊ฐ๋ฅ์ฑ ๋ฑ์ด ์๊ตฌ๋๋ฉฐ, ๋จ ํ๋ฒ๋ ์ข
๋ฃํ์ง ์๊ณ ๋ฐ์๊ตฌ์ ์ผ๋ก ๋์ ์์ผ์ผ๋ง ํ๋ ์ ์ด ์ปดํจํฐ์ ๋ง์ด ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ณ ์ธต๊ฑด๋ฌผ์ด๋ ๋ค๋ฆฌ์ ๊ฐํด์ง๋ ํ์ค์ ๊ณ์ฐํด์ ๋ถ๊ดด์ ์ํ์ ํ์
ํด์ฃผ๋ ๊ด๋ฆฌ๊ธฐ, ์ ์ด๊ธฐ ๊ฐ์ ๋ฌผ๊ฑด๋ค. ์ค๋ฅ ํฐ์ ธ์ ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ
ํด์ผํ๋ ์ํฉ์์๋ ์์คํ
์ด ์ค๋จ๋๊ธฐ์ ๋งค์ฐ ์ํํ๋ค.
[3] ์ด๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ๋์ฉ FPGA ๊ด๋ จ ์ ํ ๊ตฌ๋งค์ "๊ตฐ์ฌ์ ์ฉ๋๋ก ์ฌ์ฉํ ๊ฒ์ด๋"์ ๋ํด์ ์ง์์๋ต์ ํ๋ ๋ฒค๋๋ค ๋ํ ์๋ค.