SCENE RESEARCH STATION  
with my everyday
thinking-and-doctrine

*2008.01.11

Cell::Cell ¥¹¥Ô¡¼¥É¥Á¥ã¥ì¥ó¥¸ 2008

¤¤¤Ä¤Î´Ö¤Ë¤«»Ï¤Þ¤Ã¤Æ¤¿¡ª

º£²ó¤Î²ÝÂê¤Ï¡¢Ï¢Î©°ì¼¡ÊýÄø¼°¤Î²ò¡¢¤Ã¤Æ¤³¤È¤ÇÄêÀÐÄ̤ê
LU ʬ²ò¤Î right-looking ¤Ç¹¶¤á¤ë¿Í¤¬Â¿¿ô¤Ë¤Ê¤ê¤½¤¦¤Êͽ´¶¡£

¤·¤«¤·¡¢Á°¤Ï¥½¡¼¥È¤À¤Ã¤¿¤·¡¢Âç³ØÀ¸¤Î¥¢¥ë¥´¥ê¥º¥à¤Î±é½¬¤ß¤¿¤¤¤Ê¸Ï¤ì¤¿²ÝÂ꤬¿¤¤¤Ç¤¹¤Í¡£
¤È¤Ï¤¤¤¨¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬ÊѤï¤ì¤Ð¡¢¹¶¤áÊý¤âÊѤï¤ë¤È¤¤¤¦¤â¤Î¡£
Á°²ó¤è¤êÀïά¤ËÉý¤¬½Ð¤ä¤¹¤¤ÌäÂê¤Î¤è¤¦¤Êµ¤¤¬¤¹¤ë¤·¡¢Æ°¸þ¤ËÍ×ÃíÌܤǤ¹¡£

*2007.02.01

Cell::Learn and Compete in Programming the PLAYSTATIONR3

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
¤È¤¤¤¦ÁªÂò»è¤â¤¢¤ë¤è¡¢¤È¤¤¤¦ÏäǤ·¤¿¡£

¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£(¼Ò²ñ¿ÍŪ¤ÊÊÊ)

*2006.12.21

Cell::IBM Cell Broadband Engine SDK 2.0

¤¬½Ð¤Æ¤ª¤ê¤Þ¤¹¡£

¤Ã¤ÆºÇ¶áË»¤·¤¯¤Æ¥×¥í¥°¥é¥àÁȤà»þ´Ö¤Ê¤¤¤Ê¤¢¡£
¤è¤Ã¤·¤ã¡¢Í­µë¼è¤ë¤·¤«¤Í¤¨¡¢¤Ã¤Æ̵Íý¤À¤ï¡£
¤È¤¤¤¦¤³¤È¤Ç¡¢Â¾¤Î¿Í¤Ï´èÄ¥¤Ã¤Æ¤¤¤ë¤Î¤À¤í¤¦¤«¤È
¹ñÆâ¤ÎCell´ØÏ¢¥µ¥¤¥È¡¢¥Ö¥í¥°Åù¤ò½¸¤á¤Æ¤ß¤¿¡£

´ë¶È·Ï
cell.fixstars.com/pukiwiki/index.php The Cell Processor PukiWiki @ FixStars
blog.cell.sijam.com/ CELL¥×¥í¥»¥Ã¥µ @ SIJAM

¥Ö¥í¥°·Ï
d.hatena.ne.jp/hagecell/ Cell¤Ç¤¬¤ó¤Ð¤Ã¤Æ¤ß¤¿¥í¥°
rakuto.blogspot.com/ young risk taker
yoffy.dyndns.org/
d.hatena.ne.jp/tueda_wolf/
blog.goo.ne.jp/p3lire

¤½¤Î¾
wiki.cellfan.info/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 Wiki CellFan Info
type-x.ddo.jp/pukiwiki/index.php?PS3Linux ÆÍÁ³¾Ã¼º¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤Wiki
blog.goo.ne.jp/sdpaninf/ ¥°¥ê¥Ã¥É¡õ¥¯¥é¥¹¥¿¤ÇºÇŬ²½

¤¢¤ó¤Þ¤ê¤Ê¤¤¤Ç¤¹¤Í(¤­¤Ã¤Èõ¤·Êý¤¬°­¤¤)¡£
¤·¤«¤·¡¢½ÅÍפʾðÊó¤ÏÁ´ÉôIBM¤Ë¤¢¤ë¤Î¤Ç¡¢
¾ðÊóŪ¤Ë¤Ï¤½¤³¤À¤±Æɤó¤Ç¤ì¤ÐÂçÂÎOK¤Ç¤¹¡£

12/14¤Ë¿§¡¹¶òÃԤäƤߤޤ·¤¿¤¬¡¢¤³¤ÎÊÕ¤ÎÏäÏÁ´Éô
Maximizing the power of the Cell Broadband Engine processor: 25 tips to optimal application performance
¤Ë½ñ¤¤¤Æ¤¢¤ë¤·¡£

Tip 21¤Î
if (a > b) c += 1;
else d = a+b;

¤ÎºÇŬ²½¤¬ÌÌÇò¤¤¤Í¡£
¼«ÎÏÅ굡¼Â¹Ô¤Ã¤ÆÅÛ¤«¡£

¤·¤«¤·¡¢¶²¤í¤·¤¯¥·¥ó¥×¥ë¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸Î¤Ë
¥½¥Õ¥È¤Î¥Ç¥­¤¬Â®ÅÙ¤Ëľ·ë¤·¤Æ¤¤¤ë¤È¤¤¤¦¤Î¤ÏÌÌÇò¤¯¤â¤¢¤êÉݤ¤¤Í¡£

Cell::Cell¥¹¥Ô¡¼¥É¥Á¥ã¥ì¥ó¥¸2007

¤â¤¦¥Á¥ã¥ì¥ó¥¸²Äǽ¤Ê¤è¤¦¤Ç¤¹¡£

µ¬Äê²ÝÂêÉôÌç¤Ï¥½¡¼¥Æ¥£¥ó¥°¤Ç¤¹¡£
¥Þ¥ë¥Á¥³¥¢¡ÜSIMD¡Ü¶¹¥á¥â¥ê¶õ´Ö¤È¤¤¤¦¡¢
²ÄǽÀ­¤ÈÀ©Ìó¤ËËþ¤Á°î¤ì¤¿¥Á¥Ã¥×¤ÎÃæ¤Ç²¿¤¬ºÇŬ¤Ê¥½¡¼¥È¤Ê¤Î¤«¡¢
¶½Ì£¿¼¤¤¤È¤³¤í¤Ç¤¹¡£

odd-even merge sort ¤ÇµðÂç¤Ê¥½¡¼¥Æ¥£¥ó¥°¥Í¥Ã¥È¥ï¡¼¥¯¤òºî¤ë¤Î¤¬ÌµÆñ¤«¡£
oems¤Ë´Ø¤·¤Æ¤Ï
d.hatena.ne.jp/yupo5656/20060617/p3
¤¬Èó¾ï¤Ë»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£

¤¿¤À¡¢8Í×ÁǤޤǤʤé shufb * 2 + cmpgt + selb * 2 ¤Ç¡¢SIMD¤Î²¸·Ã¤ò´Êñ¤Ë¼õ¤±¤é¤ì¤ë¤±¤É¡¢
Í×ÁÇ¿ô¤¬ËÄÂç¤Ë¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢simdÈæ³ÓÌ¿Îá¤Ë¤«¤±¤ë¤¿¤á¤Î¥Ç¡¼¥¿¤òÍÑ°Õ¤¹¤ë¥³¥¹¥È¤¬Çϼ¯¤Ë¤Ê¤é¤Ê¤¤µ¤¤¬¤¹¤ë¡£
¤¢¤È¡¢¤¿¤À¤ÎʤÓÂؤ¨¤À¤Ã¤¿¤é¤¤¤¤¤±¤É¡¢¥Ç¡¼¥¿·ÏÎó¤ò¥­¡¼¤Ë½¾¤Ã¤ÆʤÓÂؤ¨¤ë¤Î¤â¡¢Ã±½ã¤ÊSIMD²½¤Î˸¤²¤Ë¤Ê¤ê¤½¤¦¡£
¤Ã¤Æ¡¢ÊÂÎ󥽡¼¥È¤ÎËܤȤ«Æɤó¤À¤³¤È¤Ê¤¤¤Î¤Ç¡¢
¶²¤é¤¯¤½¤Î¤¢¤¿¤ê¤Î²ò·èºö¤Ï´û¤Ë¤¢¤ë¡Ä¤È¤¤¤¤¤Ê¡£

*2006.12.14

Cell::SPE¤Î¼åÅÀ

ËèÆü¹¹¿·¤·¤Æ¤ä¤í¤¦¤«¤È¤È»×¤Ã¤¿¤±¤É¡¢¤µ¤¹¤¬¤Ë̵Íý¡£
¤½¤ó¤ÊËèÆüµ¢Â𤷤Ƥ«¤é¡¢¥Í¥¿¤òºî¤ì¤ë¤Û¤É¸µµ¤¤Ê¤¤¤Ã¤¹¡£

ÆÍÁ³¤Ç¤¹¤¬¡¢Cell¤Î¤¤¤¤¤È¤³¤í¤Ï
¥á¥¤¥ó¥á¥â¥ê¢Î¥í¡¼¥«¥ë¥¹¥È¥¢(LS)¡¡¤ò¡¡DMA
¥í¡¼¥«¥ë¥¹¥È¥¢¢Î¥ì¥¸¥¹¥¿¡¡¤ò¡¡´ñ¿ô¥Ñ¥¤¥×
¥ì¥¸¥¹¥¿¢Î±é»»´ï¡¡¤ò¡¡¶ö¿ô¥Ñ¥¤¥×
¤È¡¢ÊÂÎ󲽤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥á¥¤¥ó¥á¥â¥ê¤«¤é±é»»´ï¤Þ¤Ç¤Î´Ö¤Ë¤ª¤¤¤Æ¡¢
DSP¤Ð¤ê¤ËÂÚ¤ê¤Ê¤¯¥Ç¡¼¥¿¤òή¤»¤ë¤³¤È¤Ë¤¢¤ê¤Þ¤¹¡£(¤¿¤Ö¤ó)

¤¸¤ã¤¢¼åÅÀ¤Ï¡©
¤È¤¤¤¦¤È¡¢¤è¤¯¸À¤ï¤ì¤ë¤Î¤¬LS¤¬256KB¤·¤«¤Ê¤¤¡¢¤¢¤¿¤ê¤Ç¤·¤ç¤¦¡£
³Î¤«¤Ë¤³¤ì¤Ï¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ÎÀ©Ìó¤È¤·¤Æ¤Ï¡¢¤«¤Ê¤êÂ礭¤¤¡£
¥Þ¥ë¥Á¥³¥¢¤ÈÊ»¤»¤Æ¡¢¥×¥í¥°¥é¥Þ¤Ø¤ÎÉéô¤Ï¤«¤Ê¤êÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£

¤±¤É¤³¤ÎÊդϺ¬À­¤È¤¤¤¦¤«µ¤¹ç¤È¤¤¤¦¤«¡¢
¥¢¥¤¥Ç¥£¥¢¤Ç¥«¥Ð¡¼¤Ç¤­¤ë¤È¤¹¤ë¤¸¤ã¤Ê¤¤¤Ç¤¹¤«¡£ÌµÍý¤ä¤ê¡£


¤Ç¡¢¤½¤ì¤òº¹¤·°ú¤¤¤Æ¤âÌñ²ð¤À¤Ê¤¢¡¢¤È»×¤¦¤Î¤¬Ì¿Î᥻¥Ã¥È¡£

cell.scei.co.jp/index_j.html
¤ò¸«¤ë¤Èʬ¤«¤ê¤Þ¤¹¤¬¡¢
SPE¤ÎÌ¿Î᥻¥Ã¥È¤Ã¤Æ¡¢¥ì¥¸¥¹¥¿¤¬128ËܤˤʤäƤëÂå¤ï¤ê¤Ë¡¢
¥ª¥Ú¥³¡¼¥É¤¬ºï¤é¤ì¤Æ¡¢Ì¿Îá¤Î¼ïÎब¤«¤Ê¤ê¸ÂÄêŪ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
±é»»Á´È̤¬ÆÀ°Õ¤Ç¤¢¤Ã¤ÆÍߤ·¤¤¤Î¤Ë¡¢°Õ³°¤È¶ì¼ê¤Ê½èÍý¤¬¤¢¤ë¡£

Î㤨¤Ð¡¢32bitƱ»Î¤Î¾è»»¡£
¤Ç¤­¤Þ¤»¤ó¡£
¤ä¤ë¤Ê¤é¡¢mpyh,mpyh,mpyu¤ÇÉôʬÀѤò3¤Äºî¤Ã¤Æ¤«¤é¡¢
a,a¤Ç­¤·¤³¤ó¤Ç´°À®¡£
(¾å°Ì16bitƱ»Î¤Î¾è»»¤Ï32bit¤Ë¼ý¤Þ¤é¤Ê¤¤¤Î¤Ç·×»»ÉÔÍ×)
ÃÙ±ä¤Ï10clk¤¯¤é¤¤¡£

¤È¤¤¤Ã¤Æ¤â¡¢32bitƱ»Î¤Î³Ý¤±»»¤Ã¤Æ¤½¤ó¤Ê¤ËSPE¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤«¤é¡¢
¤³¤ì¤Ïµö¤»¤ë¡£


¸Ä¿ÍŪ¤Ë¤Þ¤º¤½¤¦¤À¤È»×¤Ã¤¿¤Î¤¬¡¢
vector short¤À¤È8¥¹¥í¥Ã¥È¤¢¤ë¤Î¤Ë¡¢
8¥¹¥í¥Ã¥ÈƱ»þ¤ËÀÑϤ¬¤Ç¤­¤Ê¤¤¤³¤È¡£

¶ö¿ô¥¹¥í¥Ã¥ÈƱ»Î¤Ç³Ý¤±»»¤·¤Ævector int¤ò­¤¹¤³¤È¤Ï¤Ç¤­¤ë¤Î¤Ç¤¹¤¬¡¢
¤³¤ì¤À¤È1Ì¿Îá¤Ç4¥¹¥í¥Ã¥È¤·¤«Æ°¤«¤Ê¤¤¡£
¤½¤ÎÂå¤ï¤ê¡¢32bitÀºÅ٤ʤó¤À¤±¤É¡¢
²èÁü½èÍý¤Ç¤½¤ó¤Ê¤ËÀºÅÙÍפé¤Ê¤¤¤ó¤À¤è¤Í¡£
±é»»ÀºÅÙ¤Ï12bit¤¢¤ì¤Ð½½Ê¬¡£
¥Ñ¥Í¥ë¥É¥é¥¤¥Ð¤¬ºÇ¶á¤è¤¦¤ä¤¯10bit¤Ë¤Ê¤Ã¤Æ¤­¤¿¤¯¤é¤¤¤À¤«¤é¡¢
¤½¤ì°Ê¾å¤¢¤Ã¤Æ¤â½ÐÎϤˤϸ½¾õËؤɴط¸¤Ê¤¯¤Æ¡¢ÌµÂ̤ʤ櫓¤À¡£

¤â¤·¡¢8¥¹¥í¥Ã¥ÈƱ»þ¤ËÆ°¤«¤»¤ì¤Ð¡¢¿§¡¹¤Ê±ÇÁü½èÍý¤Î
ÍýÏÀ¾å¸Â¥¹¥ë¡¼¥×¥Ã¥È¤¬Çܶ᤯¤Ë¤Ê¤ë¤À¤±¤Ë»ÄÇ°¤Ç¤¹¡£


altivec¤À¤È¡¢vmhaddshs¤È¤«¡¢
¤½¤¦¤¤¤¦16bit·¿¤Ç8¥¹¥í¥Ã¥ÈÀÑϤ¬¤Ç¤­¤ëÊØÍø¤ÊÌ¿Î᤬¤¢¤ë¤Î¤Ë¤Í¡£
¤¿¤À¡¢altivec¤Ï32Ëܤ·¤«¥ì¥¸¥¹¥¿¤¬¤Ê¤¤¤Î¤Ç¡¢½½Ê¬¤Êunroll-loop¤¬¤Ç¤­¤Ê¤¤¤«¤é¡¢
¥¹¥È¡¼¥ë¤·¤ä¤¹¤¯·ë¶ÉËÜÍè¤ÎÎϤϽФ»¤Ê¤¤µ¤¤¬¤¹¤ë¤Î¤Ç¡¢
SPE¤ÎÌ¿Îá¤òºï¤Ã¤Æ¥ì¥¸¥¹¥¿¤òÁý¤ä¤¹Àïά¤Ï¡¢
¥È¡¼¥¿¥ë¤Ç¤Ï´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¡£
(¤½¤ì¤Ë¡¢SPE¤Ë¤·¤«¤Ê¤¤Ì¿Îá¤â¤¢¤ë¤·¡¢¤½¤³¤Ï°ì³µ¤ËÈæ³Ó¤Ç¤­¤Ê¤¤)


¤È¤Ê¤ë¤Èµ¤¤Ë¤Ê¤ë¤Î¤¬¡¢
altivec¤Î¥ì¥¸¥¹¥¿¤ò128Ëܤ˳ÈÄ¥¤·¤¿¤È¤¤¤¦ XBOX 360 ¤Î PX ¤«¡£
altivec µ¡Ç½¸ß´¹¤«¤Ä¥Õ¥é¥Ã¥È¤Ë128ËÜ°·¤¦¤¿¤á¤Ë¤Ï¡¢
32bit¸ÇÄêŤÏÄü¤á¤Ê¤¯¤Á¤ã¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢
°ìÅ٤˸«¤¨¤ë¤Î¤Ï32ËܤÊÁë¤È¤«¥Ð¥ó¥¯¤ÇÂбþ¤·¤Æ¤ë¤Î¤«¤Ê¡£
¤½¤ì¤È¤â64bitĹ̿Îá¡©¤¦¡¼¤ó¡¢¤½¤ì¤ÏÈò¤±¤¿¤¤¤Ê¡£

¤Æ¤«¡¢¤½¤¦¤¤¤¦¾ðÊó¤Ã¤Æ¤É¤³¤Ë¤¢¤ë¤ó¤¸¤ã¡¼¡£
¤è¤¯¤ï¤«¤é¤ó¤Î¤Ç¿²¤ë¡£

*2006.12.12

Cell::cell¤Ç¥ì¥¤¥È¥ì

³ØÉô¤Îº¢(¤¨¡¼¤È¡¢5,6ǯÁ°¤Ç¤¹¤«)¡¢²ÝÂê¤Çºî¤Ã¤¿Ä¶¸ÅŵŪraytracer¤ò
º£¤Î´Ä¶­¤Ë¼êľ¤·¤·¤Æ¡¢
cygwin @ Core2Duo E6400 (2.13GHz)
linux(fc5) @ Cell 3.2GHz
¤ÇÆ°¤«¤·¤Æ¤ß¤¿¡£

¥½¡¼¥¹¤ÏÁ´¤¯Æ±¤¸¤Ç¡¢
make»þ¤Î¥ª¥×¥·¥ç¥ó¤â -O3 -funroll-loops ¤ÇƱ¤¸¡£

bmp¤ÇÊݸ¤¹¤ëºÝ¤Ë¡¢Cell¦¤¬BigEndian¤Ê¤Î¤Ç¡¢¥Ð¥¤¥È¥¹¥ï¥Ã¥×¤·¤Æ¤ë¤¯¤é¤¤¡£
SPE¤Ï»È¤ï¤º¡¢PPE¤Î¤ß¤Î»ÈÍÑ¡£

·ë²Ì¤Ï¡¢
0m06s @ Core2Duo , 0m10s @ Cell
0m23s @ Core2Duo , 0m25s @ Cell
0m21s @ Core2Duo , 0m19s @ Cell
2m20s @ Core2Duo , 1m56s @ Cell

PPE¤Ï°Õ³°¤È®¤¤¤Ê¡£
Á´ÉôÇܤ¯¤é¤¤º¹¤¬ÉÕ¤¯¤È»×¤Ã¤¿¤ó¤Ç¤¹¤¬¡¢
ñ½ã¤Ê¥³¡¼¥É¤Ê¤Î¤Ç¡¢½ã¿è¤Ë¥¯¥í¥Ã¥¯¤Î¹â¤µ¤¬·ë²Ì¤Ë½Ð¤Æ¤ë¤Î¤«¤â¡£

spu¤Ç¤â¤ä¤ë¤«¡ª¤È»×¤Ã¤¿¤ó¤Ç¤¹¤±¤É¡¢ÌµÍý¤ä¤êƱ¤¸¥½¡¼¥¹¤òspu-gcc¤Ë¿©¤ï¤»¤¿¤é¡¢
¥ê¥ó¥¯»þ¤Ë relocation truncated to fit : SPU_ADDR16,SPU_REL16 ¤¬ÂçÎÌȯÀ¸¤·¤Æ¼ºÇÔ¡£

¤³¤Î¥¨¥é¡¼¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤ÏÁêÂÐ¥¸¥ã¥ó¥×¤òÁÛÄꤷ¤Æ¤¿¤±¤É¡¢
¤¤¤¶¥ê¥ó¥¯¤·¤è¤¦¤È¤·¤¿¤éÆϤ«¤Ê¤¯¤Ê¤Ã¤Á¤ã¤Ã¤¿¡¢¤´¤á¤ó¡¢
¤È¤¤¤¦¾ì¹ç¤Ë½Ð¤ë¤â¤Î¤È»×¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢
(¤½¤Î¾ì¹ç¤Ï¡¢¥á¥â¥ê¥â¥Ç¥ë¤È¤«¤òÊѤ¨¤¿¤éÂçÄñÄ̤ë¤è¤¦¤Ë¤Ê¤ë)
¤É¤¦¤ä¤éSPU¤Î¾ì¹ç¤Ï¤³¤ì¤¬½Ð¤ë¡á256KB¥ª¡¼¥Ð¡¼¤é¤·¤¤¡£
16bit¤·¤«¥¢¥É¥ì¥¹¶õ´Ö¤Ê¤¤¤Î¤«¡£¤Ê¤ë¤Û¤É¡£

¤¤¤í¤¤¤í¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤Æ¤ë¤·¡¢
̵Ãã¤Ã¤Æ»ö¤Ïʬ¤«¤Ã¤Æ¤¿¤Î¤ÇÎɤ¤¤±¤É¡¢
¤ä¤Ã¤Ñporting¤¹¤ë¤ÎÌÌÅݤÀ¤è¤Ê¤¢¡£
¥ì¥ó¥À¥é¤Î¥³¥¢¤À¤±ÀÚ¤ê½Ð¤»¤Ð¡¢¤È¤ê¤¢¤¨¤ºÆ°¤¯¤è¤¦¤Ë¤Ê¤ë¤È¤Ï»×¤¦¤¬¡¢
ÌÌÅݤÀ¤«¤é¤Þ¤¿º£ÅÙ¡£

¤³¤ì¡¢¥¢¥ë¥´¥ê¥º¥à¤ò¸­¤¯¤·¤Æ¼ã´³¥Õ¥§¥¤¥¯´ó¤ê¤Ë¤¹¤ì¤Ð¡¢
¿ʬ10Çܤ¯¤é¤¤Â®¤¯¤Ê¤ë¤·¡¢
¤Á¤ã¤ó¤È¥Ù¥¯¥¿¥é¥¤¥º¤·¤ÆSPE*6»È¤¤ÀÚ¤ì¤Ð¡¢
¤µ¤é¤Ë10Çܤ¯¤é¤¤Â®¤¯¤Ê¤ë¤À¤í¤¦¤«¤é¡¢·×100Çܤ¯¤é¤¤¹â®¤Ë¡Ä
¤Ê¤Ã¤¿¤ê¤·¤Ê¤¤¤«¤Ê¤¢¡£


»È¤Ã¤¿¥½¡¼¥¹
kmkz.jp/mtm/lab/raytrace/raytrace-20061212.tar.gz

*2006.12.10

Cell::PS3 Linux¤Î¥¤¥ó¥¹¥È¡¼¥ë

ÃÙ¤ì¤Ð¤»¤Ê¤¬¤é¡¢PS3¤ËFC5¤òÆþ¤ì¤Æ¤ß¤¿¡£

¤Þ¤¤¤Ë¤Á¤¤¤Ã¤·¤ç¤Î¥»¡¼¥Ö¥Ç¡¼¥¿¤¬²¿¸Î¤«¥³¥Ô¡¼¤Ç¤­¤º¡¢
¥Õ¥©¡¼¥Þ¥Ã¥È¤È¤È¤â¤Ë»¶¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤¬¸í»»¤Ç¤·¤¿¤¬¡¢
¤È¤ê¤¢¤¨¤º¥¤¥ó¥¹¥È¡¼¥ë¤Ï»ê¶Ë´Êñ¡£
¤½¤·¤Æ¡¢²Ä¤âÉԲĤâ¤Ê¤¤¡¢»ê¶ËÉáÄ̤ÎFedora¤¬Æþ¤ê¤Þ¤¹¡£

¤ª¤µ¤é¤¤¤ò¤·¤Þ¤¹¤È¡¢
- FC5 on PS3 µÚ¤Ó PPU/SPU ¤Î³«È¯´Ä¶­¤Ï̵ÎÁ¤Ç¼ê¤ËÆþ¤ë
- OS ¤ÏÁ´¤Æ hypervisor ¾å¤ÇÆ°¤¯
- hypervisor ¤Ë¤è¤Ã¤Æ¥Ç¥Ð¥¤¥¹¤Ï²¾ÁÛ²½¤µ¤ì¤Æ¤¤¤ë¡¢¤é¤·¤¤
- RSX ¤â hypervisor ¤Ç±£Ê䵤ì¤Æ¤ª¤ê¡¢Ä¾ÀÜᤱ¤Ê¤¤
- ¸½ºß RSX ¤Ï»È¤¦ÊýË¡¤Ï̤¸ø³«


¤¦¡¼¤ó¡¢ºÇ½é¤«¤éxgl¤È¤«¤¬Æ°¤¤¤Æ¤ì¤Ð¡¢
¥Ç¥¹¥¯¥È¥Ã¥×´Ä¶­¤È¤·¤Æ¤â¡¢¤«¤Ê¤ê¥¤¥ó¥Ñ¥¯¥È¤Î¤¢¤ë¥·¥¹¥Æ¥à¤Ë¤Ê¤Ã¤¿¤È»×¤¦¤Î¤À¤±¤É¤Ê¤¢

¤È¤¤¤Ã¤Æ¤â¡¢¥ê¥â¡¼¥È¤Ç CELL ¤ÇÍ·¤Ù¤ì¤Ð¡¢º£¤Î¤È¤³¤í¤Ï½½Ê¬¤À¤«¤é¡¢
µ¤¤Ë¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£


¤È¤«¤¤¤¤¤Ä¤Ä¡¢¤¤¤Ä¤â¤ÎÊÊ¤Ç apache ¤È samba ¤ÎÀßÄê¤ò¤·¤Æ¡¢
̵Â̤˥µ¡¼¥Ð¤ËÀ®¤ê²Ì¤Æ¤¿¤è¡¢¤¦¤Á¤ÎPS3¤Ï¡£

apache/2.2.0 on PlayStation3 !
www.cygx.mydns.jp:8080/~mnishibe/

¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤»þ¤Ï¡¢
Ëͤ¬Î¶¤¬Ç¡¤¯¤ò¤ä¤Ã¤Æ¤ë¤«¡¢
¥ì¥¸¥¹¥¿¥ó¥¹¤ò¤ä¤Ã¤Æ¤ë¤«¡¢
¤Î¤É¤Á¤é¤«¤Ç¤¹¡£

¤Ä¤«¡¢¥µ¡¼¥ÐÍѤˤ⤦1ÂæPS3Ç㤪¤¦¤«¤Ê¡£

Cell::libspe¥×¥í¥°¥é¥ß¥ó¥°´Ä¶­¹½ÃÛ

addon disc ¤Î
/doc/ApplicationProgrammingEnvironment.html
¤ò¸«¤ë¤È¤ä¤êÊý¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¤¬¡¢
ÆüËܸì¤À¤È¡¢ fixstars ¤µ¤ó¤Î wiki ¤Ë¾Ü¤·¤¤ÀâÌÀ¤¬¤¢¤ê¤Þ¤¹(ɽÂê)¡£

¤È¤¤¤Ã¤Æ¤â¡¢»ØÄê¤Î rpm ¤òÁߤ­½¸¤á¤Æ rpm -ivh *.rpm ¤¹¤ë¤À¤±¤Ç¤¹¡£
¤¹¤ë¤È¡¢spu-gcc ¤ä libspe ¤¬Æþ¤ë¤Î¤Ç¡¢°ìÄ̤ê¤Î»ö¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

ºÇ½é¤Ï¡¢PS3¤ÇHello,World¥×¥í¥°¥é¥ß¥ó¥°¤Ç¡¢Æ°ºî¥Æ¥¹¥È¤ò¤¹¤ë¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡£

¤È¤¤¤¦¤«¡¢¤³¤ó¤Ê¥Ú¡¼¥¸½ñ¤«¤Ê¤¯¤Æ¤â fixstars ¤µ¤ó¤Î¤È¤³¤í¤ÇÁ´¤ÆºÑ¤ß¤Þ¤¹¤Ê¡£

¤·¤«¤·¡¢addon disc ¤ËÆþ¤Ã¤Æ¤ë 20061107ÈÇ libspe2 ¤Î spe_context_run() ¤Ç
argp ¤È envp ¤¬ÅϤµ¤ì¤Ê¤¤¥Ð¥°¤¬¤¢¤Ã¤¿¤Ã¤Æ¡¢À¨¤¤¤Ê¡£
¹ë²÷¤¹¤®¤ë¤ó¤Ç¤¹¤¬¡£

ozlabs.org/pipermail/cbe-oss-dev/2006-December/000682.html
¢¬¤¢¤¿¤ê¤Î¿·¤·ÌܤÎlispe2-2.0.1¤òÆþ¤ì¤¿Êý¤¬Îɤ¤¤«¤â¡£

¤È»×¤Ã¤¿¤é¿·¤·¤¤ add on disc ½Ð¤Æ¤ë¤¸¤ã¤ó¡£
ftp.uk.linux.org/pub/linux/Sony-PS3/

oldlog 99-00 00-01 01 01-02 02
newlog 2002 2003 2004 2005 2006 2007
category scene | 2ch | Ëã¿ý

Copyright (C) 2003-2004 mitsuman(mnishibe at ertl.jp) All Rights Reserved.

750k+