SoC ²Õ¬ã¨s¤è¦V
¥»²Õ¬ã¨s¤è¦V¦³¤T¡G
¤@¡B³nµwÅé¨ó¦P³]p¤èªk(Hardware/Software codesign)
¤G¡B¨t²Î¦w¥þ©Ê(Security)ªº¬ã¨s
¤T¡B§C¥\²v(Low Power)ªº¬ã¨s
¤À§O²¤¶¦p¤U
¤@¡B¥H RTOS ¬°¤¤¤ßªº¨t²Î´¹¤ù¤W¤§ SystemC ³nµwÅé¨ó¦P³]p¤èªk
(A RTOS Centered SoC Hardware/Software co-design Methodology based on
SystemC)
²¤¶
¥Ñ©ó²öº¸©w«ß¤´¥¼¹F¨ì¨äª«²z·¥¡A¦]¦¹IC ¤¤ªº¹q´¹Å骺±K«×¤´µM¥H¨C¤Q¤KӤ릨ªø¤@¿ªº³t«×§Ö³t¦¨ªø¡Aªñ¦~¨Óªº¶°¦¨«×¤v¸g¹F¨ì¤@Ó¡u¨t²Î¡vªº³W¼Ò¡A¦]¦¹
SoC (System On Chip) ªº·§©À¹Eº¥¦¨¥D¬y¡A¦Ó¤@Ó¨t²Î¤S¥]§t¤F³nÅé»PµwÅé¡A¦]¦¹¦b¹L¥hªº¤Q¦~·í¤¤¡A³nµwÅé¨ó¦P³]pªº¬ã¨s¦¨ªøªº«D±`¨³³t¡CµM¦Ó¥Ø«e·~¬É¥Dn±Ä¥Îªº³]p¤èªk½×
(Methodology) ¤´µM¦h±Ä¶Ç²Î³nµwÅé¬É½u¤À©úªº³]p¤èªk¡A±q´yz°ÝÃD©Ò¥Îªº»y¨¥´N¥i¨£¤@´³¡F³nÅé´X¥G³£¬O¥H C/C++ ¼¶¼g¡A¦ÓµwÅé´X¥G¤S³£¬O¥H
Verilog / VHDL ¼¶¼g¡C¦bÂù¤è·¾³qªº¬É±¤W¤´¥¼¦³¤@®M¦³®Ä²vªº¨t²Î¤èªk¨Ó²Î¦X³nµwÅé¡C¦]¦¹¥»¬ã¨s±N´£¥X¤@ºØ³nµwÅé¤@³eªº¨t²Î³]p¤èªk¡A©Ò±Ä¨úªº»y¨¥±N¨Ï¥Î¥Ø«e·~¬É¤wº¥¨ü«µøªº
SystemC¡A¨Ó³]p³nÅé»PµwÅé¡C°£¦¹¤§¥~¡A¥Ñ©ó¨t²Îªº½ÆÂøµ{«×³v¦~´£¤É¡A¨t²Î¸ê·½ªººÞ²z¤]³vº¥½ÆÂø¡A¦]¦¹§Y®É§@·~¨t²Î(RTOS: Real Time
Operating System) ¤w¸g³vº¥¦¨¬°¤@Ó´O¤J¦¡¨t²Îªº¥²³Æ¤¸¥ó¡A¦]¦¹§Ṳ́]±N¥H§Y®É§@·~¨t²Î¬°®Ö¤ß¨Óµo®i»P©Ò¦³³nµwÅé³q°T¤¸¥ó¶¡·¾³qªº¼Ð·Ç¤¶±¡C¥»¬ã¨s©Ò±N±Ä¥Îªº¤u¨ã»P³nÅé¡A±NºÉ¥i¯àªº¨Ï¥Î²{¦³¶}©ñ¦¡ì©l½X(Open
Source) ªº³nÅé´¼°]¥H¤Îª¿´¼°]¡A¥H¾¨¥i¯àªºÁYµu¬ãµo®Éµ{¡A¨Ã¥B¤]¤~¤£·|¹ï¬Y¨Ç¯S©w¼t°Óªº³nµwÅé²£«~²£¥Í¨Ì¿à©Ê¡C
³]p¬yµ{
1.Software Engineering
¥H³nÅé¤uµ{¤èªk©w¸q¨t²Î³W®æ(Specification)
2. Software Simulation
¦b¤u§@¯¸©ÎPC¤W«Ø¥ß¯Â³nÅé¹ê§@³W®æ®Ñ¤¤©Ò©w¸q¤§¤º®e
3. RTOS Enabled Software Simulation
¦bµwÅéµo®iªO¤W(¦pAltera Excalibur EPXA10)¥ÎRTOS ¨Ó°õ¦æ¸Ó³nÅé
4.Hardware/Software Partitioning
¬°¥Ø«e¬ã¨s«¤ß¡A±N³]p¦Û°Ê¤Æªº¤u¨ã±NC(++)µ{¦¡ªºt¸ü³Ì«ªº³¡¤ÀÂà´«¦¨ SystemC¡A¥H§Q«áÄò¨BÆJÂà´«¦¨µwÅé
¡@5.Embedded Software Simulation
§Q¥Î¼ÒÀÀªº¤è¦¡°õ¦æÂà´«¹Lªº SystemC ¼Ò²Õ
6.Embedded Hardware Simulation (FPGA)
±NSystemC ¼Ò²Õ¿N¨ì FPGA ¤W¦A§@¾ãÅé¼ÒÀÀ
7.ASIC Realization
±N¿N¿ý¦bFPGA ¤Wªº¼Ò²Õ¹ê§@¦¨IC¡A¦p¦¹¨t²Îªº³nµwÅ鳡¤À§¡¹ê²{
¤G¡B¦w¥þ©Êªº¬ã¨s(Security)
²¤¶
²{¤µ¤£½×¨ºÓ³q°T¨t²Î¡A³£·Q§Q¥ÎµL½uºô¸ôªº³q°T¨Ó¼W¥[¥L̪º¸ê®Æ¶Ç¿é³t²v©M¤è«K©Ê¡C¦ý¬O¨Ï¥Îºô¸ô¨Ó¶Ç°e¸ê®Æ·|¼W¥[¤@¨Ç¦MÀI¡A¯S§O¬O§Q¥ÎµL½u¶Ç¿é¡A§ó¬O¤j¤jªº¼W¥[«OÅ@¸ê®Æªº«n©Ê¡C©Ò¥H§ÚÌ¥²»Ý¦Ò¶q§ó¦hªº±¡ªp¡C²Ä¤@¡A§Q¥Î³nÅé¨Ó¸Ñ¨M¡C¥Ñ©ó¸ê®Æ¶Ç¿é²v¤Ó¤j©Î¬O¸û½ÆÂøªº¦w¥þ¶Ç¿é¨ó©w¡A³o¨Ç»Ýn¤j¶qªº¹Bºâªº±¡ªp¤U¡An¥Î³nÅé¸Ñ¨M´N·|«Ü¨S®Ä²v¡C¦Ó³o¨Ç°ª¶Ç¿é²v©M¤j¶qªº¥æ©ö¡A³£¬O¤@Ó¨t²Î±`±`·|¹J¨ìªº±¡ªp¡C²Ä¤G¡A¯}¸Ñ²{¦³¦w¥þ©Êªº·s§Þ³N¡C¹³¬O¿ù»~¤ÀªR¡A¯à¶q¤ÀªR¡Kµ¥¡A»Ýn¨t²Î¥»¨¦b¹ê§@®É´N¯à³]pªº§ó¤p¤ß¡A¦Ò¼{ªº§ó¶g¸Ô¡A¬Æ¦Ü¦³´c·Nªº¤H±q¹êÅé³]³Æ¤Wªº¯}Ãa¡A¤]n¯à°÷¦Ò¼{¦b¤º¡C²Ä¤T¡A·í¨Ï¥ÎµL½u¸Üµ©³q°T®É¡A¦pªG¬O¥Î¤½¶}ªº¶Ç¿é¤¶±´N«Ü®e©ö³Q¤@¨Ç¦³¤ß¤H¤h±q¤¤ºI¨ú«H¸¹¡CµL½u¦w¥þ¨ó©w¬Û¹ï©ó¦³½u¤è±ªº¨ó©w¯uªº¬O©|¥¼°·¥þ¡A¤]´N¬O¦p¦¹¡A§ÚÌÁÙ¦³«Ü¤j¥h´£¤É®Ä¯àªºªÅ¶¡¡C¦]¦¹¡AµL½×¨ºÓ¦w¥þ¬[ºc³£±N»Ýn´£¨Ñ¤@Ó¦³®Ä²v¥B¦³¼u©Ê¯à°÷¥h³B²z¥ô¦óªº§ïÅܪº¦w¥þ¨ó©w¡C§ÚÌ¥i¥HÅý¨CÓ¿W¥ßªº³]³Æ³£¯à¦³¦U¦Û¿W¥ßªº¦w¥þ¾÷¨î¡A¯à°÷«O½Ã¦U¦Û«nªº¸ê·½¡C¸ò¶Ç²Îªº¦w¥þ¨ó©w¤ñ°_¨Ó¡AY¥[¤W³o¶µ¯S©Ê¡A´N¯à´£¨Ñ¤@ӧ󦳼u©Ê¡A°ÊºAªº¹w¨¾¡B°»´ú¡B¤ÀªRªº¦w¥þÀô¹Ò¡C
¬ã¨s¤è¦V
ªñ¦~¨ÓPHS©M3G¶}©l²±¦æ¡A¦ý¬O¹ï©ó³q°T¦w¥þ¤W¡A«o¨S¦³©ñ¤Ó¦hªº¤ß¤O¦b¤W±¡A©Ò¥H§ÚÌÀ³¸Ó¤£ºÞ¦bµwÅé©Î¬O³nÅé¤W¥[±j¤@¨Ç¦w¥þªº¾÷¨î¡C§ÚÌ´£¥X¤@Ó¦³¼u©ÊªºµwÅ饥xªº³]p¤èªk¡A¯à°÷¤ä´©¦hºØªº¥[±Kºtºâªk¡C´O¤J¦¡¨t²Î³q±`³£¦³¥]§t³\¦hªº±Mªù³B²z¾¹¡A©Ò¥H§Ú̪º¡¨
Reconfigurable Interconnect¡¨·|±N¸ê®Æ¤À´²¨ì¦UÓ±Mªùªº³B²z¾¹¡A¥H¼W¥[¹Bºâ¤Wªº³t«×¡C³oºØ³s±µªº¤è¦¡«ÂI¦b©ó¦³¼u©ÊªºÂI¹ïÂI³s±µ¡A¦³³oºØ¾÷¨î«á¡A´N¥i¥H¤j¤jªº´£¤É¨t²Î¬[ºcªº¼u©Ê©M¥iÅܩʡC
¦]¬°n¨Ï¥Î³oºØ¡¨ Reconfigurable Interconnect¡¨ªº§Þ³N¡A§Ú̱N·|¸ÕµÛ¥h§âAES¡ADES¡ARSA³o¤TºØ¥[±Kºtºâªkªº¤@¨Ç¦@¦Pªº¹Bºâ´£¥X¡AÅý¥¦Ì¦@¥Î¥H¸`¬ÙµwÅéªá¶O¡A©ÎµÛ¬O§â¤TªÌ³£·|¥Î¨ìªº¹Bºâ¥ÎµwÅé¹ê°µ¡A¥H¥[³t«ÂIªº¹Bºâ¡C
§Ṳ́]·|´£¥X¤@Ó¤è«K¨Ï¥Îªº¨Ï¥ÎªÌ¤¶±¡A¤]´N¬O´£¨Ñ¤@Ө禡¡AÅý³]pªÌ¯àÂǥѨ禡ªº©I¥s¡A©M¶ñ¤J¤@¨ÇÅܼơA´N¯à¨Ï¥Î©Ò§Æ±æªº¥[±Kºtºâªk¡C
ªñ´Á¥Ø¼Ð
¦]¬°§ÚÌn¥Hsoftware/hardware codesign¬°¤è¦V¡A©Ò¥H§ÚÌ¿ï¾Ü¤FSystemC³oÓ»y¨¥¡C²{¦bn§âAES©MDESªºSystemCª©¥»ªºCODE¼g¥X¨Ó¡A¥H§Q©ó°µ¾ãÓ¨t²Îªºµû¦ô©M¦ôp¦UÓºtºâªkªº®Ä¯à¡C
¤T¡B§C¥\²v(Low Power)ªº¬ã¨s¤è¦V¡G
¦bLow Powerªº§Þ³N¼h±¤W¡A¤jP¥i¤À¬°system level¡Aarchitecture level¡Acircuit level¤TºØ¶¥¼h¡A¥Ø«e¥i¥H¬Ý¨ìªº¬ã¨s³£°¾«¦bcircuit
level¤W¡A³£¬O¥H¦p¦ó¦b¹êÅé¹q¸ô¤W§@§ï¶i¨Ó¹F¨ìpower reductionªº¥Øªº¡C§Ú̹êÅç«Ç¥Hsystem levelªº§C¥\²v³]p¬°¥Ø¼Ð¡A¬ã¨s¦p¦ó¦b§ó°ªªº¶¥¼h´N§ä¥X¤@®M°§C¥\²vªº¤è¦¡¡A¨Ã¥B¦b§@RTL¹q¸ô³]pªº®ÉÔ´N¯à¹ï¹q¸ô®ø¯Óªº¥\²v¥h§@´ú¶q¤ÀªR¨Ã¥B¹w¥ý§ä¨ì¹ï¥\²v³Ì¨Î¤Æªº¹q¸ô³]p¡C
¥Dnªº¬ã¨s¤è¦V¦³¤U¦C´X¶µ¡G
ƒÜ ¦b¦h³B²z¾¹¡A¦h°O¾ÐÅé¡A©M¦h¶gÃ䪺SOC¤¤¡A¥Ñ©ó¶V¨Ó¶V°ªªºÀW²v©M¦b·sªº²`¦¸·L¦Ì»sµ{ªº§Þ³N¤U¡A¦b³o¨Ç³\¦hªº¤¸¥ó¤¤©¼¦¹ªº·¾³q©M°T®§ªº¶Ç»¼³£¦]¬°§Ö³t¼W¥[ªº¤¬¬ÛÁpôªº©µ¿ð¥H¤Î¶V¨Ó¶V¤jªº´¹¤ùÅé¿n³£¨Ïªº¥¼¨Óªº³q°T¤¸¥ó¤w¸g¤£¤Ó¥i¯à§Q¥Î¤@Ó¥Dnªº®É¯ß(clock)§@¦P¨B¤Æ¡A©Ò¥H§ÚÌ·Qn³]p¤@Ó¥]§t«D¦P¨B¤Æ¬[ºcªº®É¯ßµ¦²¤(clock
scheme)¨Ó¹F¨ì°§C¥\²vªº¥Øªº¡A°ò¥»¤W¥Dnªº®É¯ßµ¦²¤(clock scheme)ªº¿ï¾Ü¬°GALS(Globally-Asynchronous
Locally-Synchronous)¡C
ƒÜ ¦b²{¥N³Ð·sªº³q°T§Þ³N¡A¨ã¦³¥iÄâ©Ê¡BµL½u©M¤pÅé¿nªº³q°T²£«~³£¬O¥Ø«e¥«³õ¤W³Ì¨ü«µøªº®Ö¤ß§Þ³N¡A¦Ón¯à¹ê²{³o¨Ç¯S¼x¡A¹q¤Oªº¨ÑÀ³©ó¬O´NÅ㪺®æ¥~«n¤F¡A¦b³oÃä§Ú̸յۦbSOC´¹¤ù¤W§@ÅÞ¿è¤Á³Î°Ï¤À¦¨¤@¨Ç«D¦P¨Bªº°Ï¶ô¼Ò²Õ¡A¨Ã¥B³]p¤@¨Ç°g§Aªº§C¥\²v¼Ò²Õ¦b¨CӰ϶ô¤¤¡A¨Ó´ú¶q¦ôp³o¨Ç°Ï¶ô©Ò®ø¯Óªº¥\²v¡A¨Ã¥B§Q¥Î¹w´úªº¤è¦¡¨Ó§PÂ_¨CÓ¼Ò²Õ¦ó®É¥i¥H¶i¤J§C¥\²v¼Ò¦¡¤U¡A¦ó®É«h»Ýn³ê¿ô¥¦¨ì¥¿±`¨Ñ¹q¡A¨Ó¹F¨ì°§C®ø¯Ó¥\²vªº³Ì¨Î¤Æ¡A³Ì«á§ÚÌ·|¥H¥i«³]ªºFPGA(Field-Programmable
Gate Array)©Î¬OARM§@¼ÒÀÀ¨Ã¥BÃÒ¹ê§Ú̪º¤èªk©Mµ²ªG¬O¥¿½T¥i¦æªº¡C
ƒÜ ÁÙ¦³¥Ñ©ó²{¦b§Ú̩Ҵ£¨Ñªº¹qÀ£¶V¨Ó¶V§CStatic power(leakage)ªºªí²{¦bSOC¸Ì±©Ò¦ûªº¦Ê¤À¤ñ¶V¨Ó¶V§Ö³tªº¼W¥[¡A¦Ó³o¤S¬OÓµLªkÁ×§Kªº²{¶H¡A¦]¬°¥un¨t²Î³B©ópower
onªºª¬ºA¤U¡Aleakageªº·l¥¢¬O¤@©w¦s¦bªº¡A¦ý¬O§ÚÌÁÙ¬O¥i¥HÂÇ¥Ñpredictªº¤èªk¨Ó¹ï©ó¨t²Î¶¢¸m®É±Npower§@¦³®Äªºturn off©Î¬O°§Cprocessorªº³t«×¨Ó´î¤Öleakageªº²£¥Í¡A·íµM³oºØpredictªº¤èªk¤£¶È¶È¥u¬O´î¤Öleakageªº²{¶H¡A¹ï©ó¾ãÓ¨t²Îªºpower
consumption³£¦³«Ü¤j´T«×ªº°§C¡A¤£¹L¦¹ºØ¤èªk¤@¯ë«]©óRTOSªº¨t²Î¤¤¡A¦]¬°¦pªG¨S¦³©T©wªºpriority¨Ó§@priority scheming¡A·|³y¦¨¹L°ªªºpenalty
(missing their deadline)¦Ó¤£¹ê¥Î¡C
|