FPGAã®æ©è½ã¨å¿ç¨ã«é¢ããåºæ¬ã¬ã¤ã
ãåæã®è©³ç´°ãèªãã«ã¯ãã¡ããã¯ãªãã¯ãã¦ãã ãããã
Â
FPGAï¼ãã£ã¼ã«ãããã°ã©ããã«ã²ã¼ãã¢ã¬ã¤ï¼ã¯ãé©æ°çãªç¨®é¡ã®éç©åè·¯æè¡ã§ãããã«ã¹ã¿ãã¤ãºã®æ¨©éãã¨ã³ãã¦ã¼ã¶ã¼ã®æã«åºãããã®ã§ãããã®è¨äºã§ã¯ãFPGAã®åä½åçã¨ãã¾ãã¾ãªç£æ¥ã¸ã®å¿ç¨ã«ã¤ãã¦èª¬æãã¾ãã
FPGAã¨ã¯?
FPGAï¼ãã£ã¼ã«ãããã°ã©ããã«ã²ã¼ãã¢ã¬ã¤ï¼ã¯ã製é å¾ã«é¡§å®¢ãè¨è¨è ã«ãã£ã¦ããã°ã©ã å¯è½ãªéç©åè·¯ã®ä¸ç¨®ã§ããFPGAã¯ãä»»æã®è«çæ©è½ãå®è¡ããããã«è£½é å¾ã«ã«ã¹ã¿ãã¤ãºã§ãã¾ããç¹å®ã®è¨è¨ã¿ã¹ã¯ã«ã«ã¹ã¿ã 製é ãããã¢ããªã±ã¼ã·ã§ã³åºæéç©åè·¯ï¼ASICï¼ã¨ã¯ç°ãªããFPGAã¯ã¦ã¼ã¶ã¼ã«ãã£ã¦è¨å®å¯è½ã«è¨è¨ããã¦ããããã®ããããã£ã¼ã«ãããã°ã©ããã«ãã¨ããç¨èªã使ããã¦ãã¾ãã
FPGAã¯ã©ã®ããã«åä½ããã®ã?
-
è¨å®å¯è½ãªè«çãããã¯ï¼CLBï¼: æè»ãªè«çã»ã«ã§æ§æããããã¾ãã¾ãªè«çã¿ã¹ã¯ãå®è¡ã§ãããããã®ãããã¯ã¯ãFPGAã®æ©è½è½åã®ä¸æ ¸ã§ãã
-
ããã°ã©ããã«ç¸äºæ¥ç¶: CLBãæ¥ç¶ããããã®è¨å®å¯è½ãªé ç·ã®ãããã¯ã¼ã¯ã§ãããä¿¡å·ããã©ããã¹ãå®ç¾©ãããã¨ã§è¤éãªåè·¯ã®ä½æãå¯è½ã«ãã¾ãã
-
ããã°ã©ããã«ãªI/Oãããã¯ï¼IOBï¼: ãããã®ãããã¯ã¯ãFPGAã®å é¨ãã¸ãã¯ã¨å¤é¨ããã¤ã¹ã®éã®éä¿¡ã容æã«ãããã¾ãã¾ãªè¦æ ¼ãé»æ°çç¹æ§ããµãã¼ããã¾ãã
-
ãªã³ãããã¡ã¢ãª: FPGAå ã®å°ããªã¡ã¢ãªãããã¯ã¯ãå¤ãã®ãã¸ã¿ã«ããã»ã¹ã«ä¸å¯æ¬ ãªãã¼ã¿ã®ã¹ãã¬ã¼ã¸ãæä¾ãã¾ãã
-
ãã¸ã¿ã«ä¿¡å·å¦çï¼DSPï¼ãããã¯: ç®è¡æ¼ç®ãå¹ççã«å®è¡ããããã®å°ç¨ã¦ãããã§ãããç¹ã«ä¿¡å·å¦çã®ã¿ã¹ã¯ã«ããã¦éè¦ã§ãã
-
ã·ã¹ãã ã¬ãã«ã®ç¸äºæ¥ç¶: FPGAä¸ã®é«å¸¯åå¹ ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãã¡ã¢ãªããããã¯ã¼ã¯æ¥ç¶ãªã©ã®å¤é¨å¨è¾ºæ©å¨ã¨ã®éã®ãã¼ã¿ããã¼ã管çãã¾ãã
FPGAã®å¿ç¨
FPGAï¼ãã£ã¼ã«ãããã°ã©ããã«ã²ã¼ãã¢ã¬ã¤ï¼ã¯ãåæ§ææ§ã¨é«æ§è½ãåããå¤ç®çãªã³ã³ãã¼ãã³ãã§ããããã¾ãã¾ãªå¸å ´ã§ä½¿ç¨ããã¦ãã¾ãã以ä¸ã¯ããã¾ãã¾ãªã»ã¯ã¿ã¼ã§ã®FPGAã®å¿ç¨ã®æ¦è¦ã§ã:
-
1. èªç©ºå®å®ã¨é²è¡: FPGAã¯ãæ¾å°ç·èæ§ã¨ã½ããã¦ã§ã¢å®ç¾©ã©ã¸ãªï¼SDRï¼ã®ãµãã¼ãã«ãããç»åå¦çãå®å ¨ãªéä¿¡ãªã©ãå®å®ãè»äºã¢ããªã±ã¼ã·ã§ã³ã«å¿ è¦ãªèä¹ æ§ãæä¾ãã¾ãã
-
2. ASICãããã¿ã¤ãã³ã°: ã¨ã³ã¸ãã¢ã¯ãFPGAã使ç¨ãã¦ã¢ããªã±ã¼ã·ã§ã³åºæéç©åè·¯ï¼ASICï¼ã®ãããã¿ã¤ãã³ã°ãè¡ããã·ã¹ãã ãªã³ãããï¼SoCï¼ã®è¨è¨ãæ¤è¨¼ããæçµçãªASICã®è£½é åã«çµã¿è¾¼ã¿ã½ããã¦ã§ã¢ãéçºããã³ãã¹ããã¾ãã
-
3. èªåè»: AMDã®FPGAã¯ãé«åº¦ãªé転æ¯æ´ã·ã¹ãã ï¼ADASï¼ãè»è¼æ å ±ã¨ã³ã¿ã¼ãã¤ã¡ã³ããã²ã¼ãã¦ã§ã¤ãªã©ãä¿¡é ¼æ§ã¨é«æ§è½ãªã·ãªã³ã³ã¨IPã½ãªã¥ã¼ã·ã§ã³ãå¿ è¦ãªèªåè»ç£æ¥ã«è²¢ç®ãã¦ãã¾ãã
-
4. æ¾éããã³ããAV: FPGAã®è¿ éãªæ¨æºã®é©å¿è½åã¨è£½åã®å¯¿å½ã延ã°ãè½åã¯ãç¹ã«é«ç´ãªãããã§ãã·ã§ãã«ãªæ¾éã·ã¹ãã ã«ããã¦ãæ¾éæ¥çã«å©çãããããã¦ãã¾ãã
-
5. æ¶è²»è åãé»åæ©å¨: ã³ã¹ãå¹æã®é«ãã½ãªã¥ã¼ã·ã§ã³ãæä¾ããFPGAã¯ãã¹ãã¼ããã©ã³ããã¸ã¿ã«ãã£ã¹ãã¬ã¤ã家åºç¨ãããã¯ã¼ãã³ã°æ©å¨ãã»ãããããããã¯ã¹ãªã©ãæ©è½è±å¯ãªæ¶è²»è åãããã¤ã¹ãå®ç¾ãã¾ãã
-
6. ãã¤ããã©ã¼ãã³ã¹ã³ã³ãã¥ã¼ãã£ã³ã°ã¨ãã¼ã¿ã¹ãã¬ã¼ã¸: FPGAã¯ããããã¯ã¼ã¯ã¢ã¿ãããã¹ãã¬ã¼ã¸ï¼NASï¼ãã¹ãã¬ã¼ã¸ã¨ãªã¢ãããã¯ã¼ã¯ï¼SANï¼ãå«ãã¹ãã¬ã¼ã¸ã½ãªã¥ã¼ã·ã§ã³ãããã³ãã¤ããã©ã¼ãã³ã¹ãµã¼ãã¼ã¨ã¹ãã¬ã¼ã¸ã¢ãã©ã¤ã¢ã³ã¹ã«ããã¦éè¦ãªå½¹å²ãæããã¦ãã¾ãã
-
7. ç£æ¥: ç£æ¥èªååãã¤ã¡ã¼ã¸ã³ã°ãç£è¦ãå»çç»åæ©å¨ãªã©ã®ç£æ¥åéã§ã¯ãFPGAã¯è¨è¨ã®æè»æ§ãå¸å ´æå ¥ã¾ã§ã®æéã®ç縮ãããã³é©å¿æ§ã«ããNREï¼éåçç£è²»ç¨ï¼ã®åæ¸ãæä¾ãã¾ãã
-
8. å»ç: å»çåéã§ã¯ãFPGAããã¼ã¹ã¨ããã½ãªã¥ã¼ã·ã§ã³ãããã¾ãã¾ãªè¨ºæããã³ã¢ãã¿ãªã³ã°æ©å¨ãããã¾ãã¾ãªæ²»çè£ ç½®ã¾ã§ãã«ãã¼ãã¦ãããèããå¦çããã³è¡¨ç¤ºæ©è½ãæä¾ãã¦ãã¾ãã
-
9. ã»ãã¥ãªãã£: AMDã®FPGAã¯ãã¢ã¯ã»ã¹å¶å¾¡ã·ã¹ãã ãé«åº¦ãªç£è¦æè¡ãå«ãã»ãã¥ãªãã£ã¢ããªã±ã¼ã·ã§ã³ã®å¤åããè¦ä»¶ã«å¯¾å¿ãã¦ãã¾ãã
-
10. ãããªããã³ç»åå¦ç: ãããªããã³ç»åå¦çã§ã¯ãFPGAã¯ãã¶ã¤ãã¼ãå¸å ´ã®è¦æ±ã«è¿ éã«å¯¾å¿ããªããã³ã¹ãã管çãããã¨ãå¯è½ã«ãããã¾ãã¾ãªãããªããã³ç»åããã¤ã¹ã«ã¨ã£ã¦éè¦ã§ãã
-
11. æç·éä¿¡: FPGAã¯ããã±ããå¦çããã¬ã¼ã/MACã®å®è£ ãé«éããã¯ãã¼ã³ã®æ¥ç¶ãªã©ãæç·éä¿¡ãããã¯ã¼ã¯ã§éè¦ãªå½¹å²ãæããã¦ãã¾ãã
-
12. ç¡ç·éä¿¡: FPGAã¯ããã¾ãã¾ãªè¦æ ¼ã®ãµãã¼ããéãã¦ç¡ç·ã»ã¯ã¿ã¼ã®ãã¼ãºã«ã対å¿ããRFããã¼ã¹ãã³ãå¦çããæ¥ç¶æ§ããããã¯ã¼ãã³ã°æ©è½ã¾ã§ãç¡ç·ã¤ã³ãã©ã®ãã¾ãã¾ãªå´é¢ãå¯è½ã«ãã¾ãã
-
13. ãã¼ã¿ã»ã³ã¿ã¼: FPGAã¯ããã¼ã¿ã»ã³ã¿ã¼ã«ãããé«å¸¯åå¹ ã¨ä½ã¬ã¤ãã³ã·ã®ãµã¼ãã¼ããããã¯ã¼ãã³ã°ãã¹ãã¬ã¼ã¸ã®ãã¼ãºã«å¿ããã¯ã©ã¦ãã³ã³ãã¥ã¼ãã£ã³ã°ç°å¢ã§ã®ä¾¡å¤ææ¡ãåä¸ããã¾ãã
ãã¼ã¿ã»ã³ã¿ã¼ã«ããã¦ãµã¼ãã¼ã®å¹çããããã¯ã¼ã¯ã®ã¹ã«ã¼ããããããã³ã¹ãã¬ã¼ã¸å®¹éãæ大åããéãFPGA NICï¼ãããã¯ã¼ã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«ã¼ãï¼ã¯ã²ã¼ã ãã§ã³ã¸ã£ã¼ã¨ãªãã¾ãããããã®ã«ã¼ãã¯ãã¯ã©ã¦ããµã¼ãã¹ã®ããã©ã¼ãã³ã¹åä¸ã ãã§ãªããéç¨è²»ç¨ã®å¤§å¹ ãªåæ¸ã«ãéè¦ãªå½¹å²ãæããã¾ãã
FSãæä¾ãã¦ããIntel Agilex 7 FPGA NICã¯ãPCIe 4.0 x16ãã¹ãã¤ã³ã¿ã¼ãã§ã¼ã¹ãåãã¦ãããæ大ãªã³ã¯ã¬ã¼ã16 GT/sãéæããè½åãæã£ã¦ãã¾ããããã«ãããç¾ä»£ã®ãã¼ã¿ã»ã³ã¿ã¼ãè¦æ±ããææ°ã®ãã¼ã¿è»¢éé度ãæä¾ãããã¨ãã§ãã¾ãã
ãã®ã«ã¼ãã®åªããã¹ã«ã¼ãããè½åã«ããã100Gbãã¼ãã«é¢é£ãã大éã®ãã¼ã¿ãå¿«é©ã«å¦çãããã¨ãã§ãã¾ãããã®çµæãFSã®ãã®NICã¯ãæãé«åº¦ãªãã¼ã¿ã»ã³ã¿ã¼ã®éç¨ã®ããã©ã¼ãã³ã¹è¦ä»¶ãæºãããè¶ ãããã¨ãã§ãã¾ããããã«ããããããã¯ã¼ã¯ã¤ã³ãã©ã¹ãã©ã¯ãã£ã¯ãå¢å ãããã¼ã¿æ¶è²»ã¨ã¯ã©ã¦ããã¼ã¹ã®ã¢ããªã±ã¼ã·ã§ã³ããµã¼ãã¹ã«ãããä½ã¬ã¤ãã³ã·ã®è¦æ±ã«é ãããã¨ãªã対å¿ãããã¨ãã§ãã¾ãã
FPGAã¯ããã®åæ§æå¯è½ãªæ§è³ªã¨æ§è½è½åã«ãããæè»æ§ãé度ãããã³ç¹æ®ãªå¦çè½åãå¿ è¦ã¨ãããã¾ãã¾ãªã¢ããªã±ã¼ã·ã§ã³ã®ä¸ã§ãæè¡ã¨ã³ã·ã¹ãã ã®éè¦ãªä¸é¨ã¨ãªã£ã¦ãã¾ãã
çµè«
è¦ç´ããã¨ãFPGAï¼ãã£ã¼ã«ãããã°ã©ããã«ã²ã¼ãã¢ã¬ã¤ï¼ã®å¤ç¨éæ§ã¨é©å¿æ§ã«ãããå¤æ§ãªæè¡ç°å¢ã«ããã¦éè¦ãªã³ã³ãã¼ãã³ãã¨ãã¦ã®å°ä½ã確åºãããã®ã«ãªãã¾ãããèªç©ºå®å®ãããã¼ã¿ã»ã³ã¿ã¼ã«è³ãã¾ã§ãFPGAã¯ãã¾ãã¾ãªæ¥çã§ã¤ããã¼ã·ã§ã³ãæ¨é²ããããã©ã¼ãã³ã¹ãåä¸ãããä¸ã§éè¦ã§ãããã¨ã証æããã¦ãã¾ããçç£å¾ã«åããã°ã©ã ã§ããFPGAã®æ©è½ã¯ãç¾ä»£ã®è¨ç®ã¿ã¹ã¯ãè¤éãªã·ã¹ãã è¨è¨ã®é²åããè¦æ±ãæºããããã«æ¥µãã¦éè¦ãªã¬ãã«ã®æè»æ§ãæä¾ãã¾ããç£æ¥ãé²æ©ãç¶ããã«ã¤ãã¦ãFPGAã®éè¦æ§ã¯ããã«é«ã¾ãå¯è½æ§ããããæè¡ã®é²æ©ã¨å¹çæ§ãå®ç¾ããéè¦ãªè¦ç´ ã¨ãã¦ã®å½¹å²ãå¼·åºã«ãªãã¾ãã