์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ์—ญ์‚ฌ3. ์ƒ์„ธ4. ์ œ์กฐ์—…์ฒด5. ํ™œ์šฉ6. ๊ด€๋ จ ๋ฌธ์„œ

1. ๊ฐœ์š”[ํŽธ์ง‘]

Field-Programmable Gate Array

์ธ๋ฅ˜ ์—ญ์‚ฌ์ƒ ๊ฐ€์žฅ ์‹ ๋ขฐ์„ฑ[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 ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๋Š” ์ œํ’ˆ์ด์—ˆ๋‹ค.

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 ๊ธฐ๋ฐ˜ ์ฝ”์–ด ํƒ‘์žฌ.

์ธ๊ณต์ง€๋Šฅ ๋ถ„์•ผ๊ฐ€ ๋Œ€๋‘๋˜๋ฉด์„œ, ์‹œ์žฅ ์ ์œ ์œจ์€ ์ ์  ์ปค์งˆ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋œ๋‹ค.

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๋ฅผ ํ†ต์งธ๋กœ ๋„ฃ๊ณ  ์ฒ˜๋ฆฌํ•ด๋ฒ„๋ฆฌ๋Š” ์ œํ’ˆ๋“ค์ด ๋งŽ๋‹ค.๊ทธ๋ฆฌ๊ณ  ๋Œ€๋‹ค์ˆ˜์˜ ๊ฒฝ์šฐ ์ด FPGA๊ฐ€ ๋ฐœ์—ด์˜ ์›์ธ์ด๋‹ค.

6. ๊ด€๋ จ ๋ฌธ์„œ[ํŽธ์ง‘]

[1] ํˆญํ•˜๋ฉด ๋ ‰ ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ๋ช‡๋…„ ์“ฐ๋ฉด ์„ฑ๋Šฅ์ด ํ™•๋–จ์–ด์ง€๋Š” ์ผ๋ฐ˜์ ์ธ ์ปดํ“จํ„ฐ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ, ์‰ฝ๊ฒŒ ๊ณ ์žฅ๋‚˜์ง€ ์•Š๊ณ  ์ˆ˜์‹ญ๋…„ ๋Œ๋ ค๋„ ์˜ค๋ฅ˜ ํ•œ๋ฒˆ ๋‚˜์ง€ ์•Š๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋•๋ถ„์— ์‹œ์Šคํ…œ์˜ ์•ˆ์ „์„ฑ๊ณผ ์ƒ์‹œ์„ฑ, ๋ณด์•ˆ๊ณผ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ ๋“ฑ์ด ์š”๊ตฌ๋˜๋ฉฐ, ๋‹จ ํ•œ๋ฒˆ๋„ ์ข…๋ฃŒํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜์˜๊ตฌ์ ์œผ๋กœ ๋™์ž‘ ์‹œ์ผœ์•ผ๋งŒ ํ•˜๋Š” ์ œ์–ด ์ปดํ“จํ„ฐ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ ์ธต๊ฑด๋ฌผ์ด๋‚˜ ๋‹ค๋ฆฌ์— ๊ฐ€ํ•ด์ง€๋Š” ํ•˜์ค‘์„ ๊ณ„์‚ฐํ•ด์„œ ๋ถ•๊ดด์˜ ์œ„ํ—˜์„ ํŒŒ์•…ํ•ด์ฃผ๋Š” ๊ด€๋ฆฌ๊ธฐ, ์ œ์–ด๊ธฐ ๊ฐ™์€ ๋ฌผ๊ฑด๋“ค. ์˜ค๋ฅ˜ ํ„ฐ์ ธ์„œ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ๋ถ€ํŒ… ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์‹œ์Šคํ…œ์ด ์ค‘๋‹จ๋˜๊ธฐ์— ๋งค์šฐ ์œ„ํ—˜ํ•˜๋‹ค.
[2] ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๊ฐ€ KFX์‚ฌ์—…. ์ž์ผ๋ง์Šค์˜ ๋ฒ„ํ…์Šค FPGA๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
[3] ์ด๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋”์”ฉ FPGA ๊ด€๋ จ ์ œํ’ˆ ๊ตฌ๋งค์‹œ "๊ตฐ์‚ฌ์  ์šฉ๋„๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ƒ"์— ๋Œ€ํ•ด์„œ ์งˆ์˜์‘๋‹ต์„ ํ•˜๋Š” ๋ฒค๋”๋“ค ๋˜ํ•œ ์žˆ๋‹ค.