MIT¤Ç¤ä¤Ã¤Æ¤ëCell¥×¥í¥°¥é¥ß¥ó¥°¤Î¹ÖµÁ¡£
Selected Projects¤ò¸«¤ë¤È¡¢
Global Illumination ¤ä Distributed Realtime Ray Tracer ¡¢Speech Synthesizer Åù¡¢¹ü¤Î¤¢¤ê¤½¤¦¤Ê²ÝÂ꤬ʤó¤Ç¤¤¤Þ¤¹¡£
¤Æ¤«¡¢ÉáÄ̤ËÁȤà¤Î¤Ç¤â·ë¹½ÂçÊѤ¸¤ã¤ó¡¢¤³¤Î²ÝÂê¡£
¤Û¤ó¤È¤Ë1¥ö·î¤Ç¡¢Â¾¤Ë¤â¹ÖµÁ¤È¤«¤¢¤Ã¤ÆË»¤·¤¤¤Ï¤º¤Ê¤Î¤Ë¡¢
Cell¸þ¤±¤Ë¥Þ¥È¥â¤ËºÇŬ²½¤µ¤ì¤¿¤â¤Î¤¬¤Ç¤¤ë¤Î¡©
(ºÇ°PPU¤·¤«»È¤¤¤Þ¤»¤ó¤È¤«¤Ê¤éʬ¤«¤ë¤±¤É)
¤½¤³¤Þ¤ÇMIT¤ÏÍ¥½¨¤Ê¤Î¤«¡ª¡©
¤½¤ì¤È¤â¼ã¤µ¤æ¤¨¤ÎÀª¤¤¤Ê¤Î¤«¡ª¡©
¤¯¤½¤Ã¡¢¼»Åʤ·¤Æ¤·¤Þ¤¦¤¼¡¢ÅÛ¤é¤Î¼ã¤µ¤ÈºÍǽ¤Ë¡£
¤Æ¤³¤È¤Ç¡¢¤½¤í¤½¤í²ÝÂ꤬½ÐÍè¾å¤¬¤Ã¤Æ¡¢web¤Ë¸ø³«¤µ¤ì¤ë¤Î¤«¤â¡£³Ú¤·¤ß¡£
¥ì¥ó¥À¥ê¥ó¥°·Ï¤À¤È¡¢µðÂç¤Ê¥á¥Ã¥·¥å¤ä¥Æ¥¯¥¹¥Á¥ã¤Î°·¤¤¤¬ÌÌÅݤǤ¹¤·¡¢GI¤ò¤ä¤í¤¦¤È¤¹¤ì¤Ð¡¢
¥Æ¥ó¥Ý¥é¥ê¤ÎÎΰè¤âÁêÅö¤ÊÂ礤µ¤¬É¬Íפˤʤë¤Ç¤·¤ç¤¦¡£
¥Ù¥¯¥¿¥é¥¤¥º¤Ê¤ó¤Æº¬À¤¬¤¢¤ì¤Ðï¤Ç¤â¤Ç¤¤Þ¤¹¤¬¡¢
256KB¤Î¶õ´Ö¤ÈDMA¤ò¶î»È¤·¤Æ¥×¥í¥°¥é¥ß¥ó¥°¤¹¤ë¤Î¤Ï¡¢
¤«¤Ê¤ê¤Î¾ãÊɤǤ¹(¤½¤³¤â´·¤ì¤Èº¬À¤Ê¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¤¬)¡£
µðÂç¤Ê¥á¥â¥ê¤Ø¤Î¥é¥ó¥À¥à¥¢¥¯¥»¥¹¤¬¶ì¼ê¤È¤¤¤¦¤Î¤¬¡¢SPU¤ÎºÇÂç¤Î¼åÅÀ¤Ç¤¹¤Í¤¨¡£
¤«¤È¤¤¤Ã¤Æ¡¢LS¤ÎÂå¤ï¤ê¤Ë¥¥ã¥Ã¥·¥å¤òºÜ¤»¤¿¤È¤³¤í¤Ç¡¢¥í¥¸¥Ã¥¯¤ä¥¿¥°¤¬ºÜ¤ë¤Î¤Ç¡¢
128KBÄøÅÙ¤ÎI/Dº®ºÜ¥¥ã¥Ã¥·¥å¤·¤«ºÜ¤é¤Ê¤¤¤È¤¹¤ë¤È¡¢¤É¤¦¹Í¤¨¤Æ¤âÀǽ¤¬½Ð¤Ë¤¯¤¤¤Î¤Ç¡¢
¤ä¤Ã¤Ñ¤êº£¤ÎÀ߷פÇÀµ²ò¤«¡£
¤¤¤ä¡¢6¥³¥¢¤Ç¥¥ã¥Ã¥·¥å256KB¤¬°ìÈÖ(³Ú¤Ç)Îɤ«¤Ã¤¿¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡£¤¦¤ó¡£
(¥Ô¡¼¥¯Àǽ¤ÏÍî¤Á¤Þ¤¹¤¬¤Í)
¤½¤³¤é¤Ø¤ó¤ÎÂçÊѤµ¤Ï¡¢ÅöÁ³IBM¤âʬ¤«¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¡¢
SDK2.0¤ò¤ß¤ë¤È¡¢software managed cache ¤ä spu code overlay ¤È¤¤¤Ã¤¿¡¢
¥×¥í¥°¥é¥Þ¤ÎÉéô¤ò¸º¤é¤·¤Æ¤¯¤ì¤ë¥é¥¤¥Ö¥é¥ê¤¬¿·¤¿¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£
software managed cache¤Ï¡¢
a = cache_rd(name, addr_a);
b = cache_rd(name, addr_b);
cache_wr(name, addr_c, a + b);
¤È¤¤¤Ã¤¿¤è¤¦¤Ë¡¢Æɤߤξì¹ç¡¢¥°¥í¡¼¥Ð¥ë¥¢¥É¥ì¥¹¤òÍ¿¤¨¤ë¤È¡¢
¥¥ã¥Ã¥·¥å¤ËºÜ¤Ã¤Æ¤¤¤ë¤«¤òȽÄꤷ¡¢ºÜ¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤éDMA¤Ç¥í¡¼¥«¥ë¤Ë»ý¤Ã¤Æ¤¯¤ë¡¢
ºÜ¤Ã¤Æ¤¤¤¿¤é¥í¡¼¥«¥ë¤Ë¤¢¤ëÃͤòÊÖ¤¹¡¢¤È¤¤¤¦½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
¥¥ã¥Ã¥·¥å¤ÏWAY¿ô¤äTAG¤ÎÄêµÁ¤ò¥×¥í¥°¥é¥àËè¤ËÊѤ¨¤é¤ì¤Þ¤¹¡£
name ¤òÊѤ¨¤ë¤³¤È¤Ç¡¢Ê£¿ô¤Î¥¥ã¥Ã¥·¥å¤ò»ý¤¿¤»¡¢¸úΨ¤ò¤¢¤²¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤Ã¤Æ¤µ¤¢¡¢½Å¤¤¤è¤Í¡¢ÌÀ¤é¤«¤Ë¡£¥Ò¥Ã¥È¤·¤Æ¤â¥½¥Õ¥ÈŪ¤ÊÉéô¤¬ÁêÅö¤Ë½Å¤¤¡£
¤Ê¤Ë¤»¡¢¥Ï¡¼¥É¤Î¥¥ã¥Ã¥·¥å¤Ï¥¢¥É¥ì¥¹¤ÈÂçÎ̤Υ¿¥°¤È¤ÎÈæ³Ó¤òÊÂÎó½èÍý¤Ç°ì½Ö¤Ç½ª¤ï¤é¤»¤Æ¤ë¤«¤é¡¢
¤½¤ì¤ò¥½¥Õ¥È¤Ç¤ä¤ë¤Î¤Ï¤É¤¦¤·¤Æ¤âÁêÂÐŪ¤Ë¸·¤·¤¤¡£
¤½¤ì¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë¡¢LS¾å¤Î¥¥ã¥Ã¥·¥å¥é¥¤¥ó¤ò¥í¥Ã¥¯¤·¤Æ¡¢
¥é¥¤¥óñ°Ì¤Ç¤·¤«È½Äê½èÍý¤ò¹Ô¤ï¤Ê¤¤¤È¤¤¤¦¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤âÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£
¤½¤ì¤Ê¤é®¤¤¤ó¤À¤±¤É¡¢¥é¥¤¥ó¤Î¥¢¥é¥¤¥ó¤ÎÌäÂê¤â¤¢¤ë¤·¡¢»È¤¤¤Ë¤¯¤µ¤Ï»Ä¤ë¡£
¤É¤Î¤ß¤Á¥Ý¥¤¥ó¥¿¤òé¤ëÍͤʽèÍý¤Ï¤«¤Ê¤êÈÑ»¨¤Ê¼ê³¤¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£
¤Þ¤¿¡¢¥é¥¤¥óñ°Ì¤Î¤è¤¦¤Ë¥¢¥¯¥»¥¹¤ÎγÅÙ¤¬Â礤¤¤³¤È¤¬»Ï¤á¤«¤éʬ¤«¤Ã¤Æ¤¤¤ì¤Ð¡¢
ºÇ½é¤«¤éDMA¤ò»È¤¨¤Ð¤¤¤¤µ¤¤â¤¹¤ë¡£
¤È¤¤¤Ã¤Æ¤â¡¢DMA¤è¤ê°·¤¦¤Î¤Ï³Ú¤Ë¤Ê¤ë¤Î¤Ç¡¢¤½¤¦¤¤¤Ã¤¿°ÕÌ£¤Ç¸ºß²ÁÃͤϤ¢¤ë¤¬¡£
¥¥ã¥Ã¥·¥å¤Ç¤â¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥Ö¥í¥Ã¥¯¤¬Í½Â¬¤Ç¤¤ë¤Ê¤é¡¢
ͽ¤átouch¤·¤Æprefetch¤·¤Æ¤ª¤±¤Ð¡¢
DMA¤Î¥À¥Ö¥ë¥Ð¥Ã¥Õ¥¡¤È¤Û¤ÜƱÅù¤Î¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¤Î¤Ç¡¢
¤ä¤Ã¤ÑLS¤¸¤ã¤Ê¤¯¤Æ¥¥ã¥Ã¥·¥å¤Ç¤âÎɤ«¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¡¢¼ã´³»×¤¦¤ó¤À¤è¤Ê¤¢¡£
¤½¤³¤é¤Ø¤ó¤ÎÀß·×»×ÁÛ¤ÏÆñ¤·¤¤¤Í¡£
code overlay¤Ë´Ø¤·¤Æ¤Ï¡¢
SIJAM¤Îblog¤¬¾Ü¤·¤¤¤Ç¤¹¡£
Íפϡ¢´Ø¿ô¤ò mov ax,xxxxh int 21h ¤Î¤è¤¦¤Ê´¶¤¸¤Ë¡¢ÈÖ¹æ+call¤Ç¸Æ¤Ö¤è¤¦¤Ë¤·¤Þ¤¹¡£
call¤µ¤ì¤¿¤é¡¢ÌÜŪ¤Î´Ø¿ô¤¬LS¤ËºÜ¤Ã¤Æ¤¤¤ë¤«¤òÄ´¤Ù¡¢ºÜ¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤éLS¤ËDMA¤·¤Þ¤¹¡£
¤Þ¤¿¡¢call¤À¤±¤Ç¤Ê¤¯¡¢ret¤¹¤ë»þ¤â¡¢Ìá¤êÀè¤Î´Ø¿ô¤¬LS¤Ëµï¤ë¤«¤ò³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
·ë¹½¤ÊÂçµ»¤Ç¤¹¡£
(¤Û¤ó¤È¤Ï¡¢¤â¤Ã¤È¤¤¤í¤ó¤Ê½èÍý¤·¤Æ¤Þ¤¹¤¬¡¢¾Ü¤·¤¯¤Ï¥ê¥ó¥¯Àè¤Ç)
°Ê¾å¡¢
d-cacheÂå¤ï¤ê¤Ë software managed cache,
i-cacheÂå¤ï¤ê¤Ë code overlay
¤È¤¤¤¦ÁªÂò»è¤â¤¢¤ë¤è¡¢¤È¤¤¤¦ÏäǤ·¤¿¡£
¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£(¼Ò²ñ¿ÍŪ¤ÊÊÊ)