è€æ°ã®ããã»ãµãå ±æããŒã¿ãã¢ã¯ã»ã¹ããå Žåã«ã¯æä»å¶åŸ¡ãå¿ èŠãšãªãããäœ¿çšæš©ãåŸãããªãã£ãããã»ãµã¯ãæã¡ã¢ãªããã§ãã¯ããŠäœ¿çšæš©ãç²åŸããã«ãŒãã«å ¥ãããããªããšãäœ¿çšæš©ãç²åŸã§ãããŸã§æå¹ãªåŠçãè¡ããç¡é§ãçããã
ãã®ãããªç¡é§ãæžããã«ã¯ãæä»å¶åŸ¡ãè¡ãè³æºã现ååããŠãããããã«ããã¯ãèšãããšããæ¹æ³ãåããããäŸãã°ãéè¡å£åº§ã®äŸã§ã¯ãã©ãã1ã€ã®ããã»ãµãå£åº§ããŒã¿ããŒã¹ãã¢ã¯ã»ã¹ããŠããå Žåã¯ãä»ã®ããã»ãµã¯å£åº§ããŒã¿ããŒã¹ãã¢ã¯ã»ã¹åºæ¥ãªãããã«ããã¯ããŠããŸãã°æ£ããåŠçãã§ããããäžæã«ã¯1ã€ã®å£åº§ã®æŽæ°ããã§ãããç¡é§ãå€ããããããããããã®å£åº§ããšã«ããã¯ãèšãããšãä»ã®ããã»ãµã¯ä»ã®å£åº§ããŒã¿ã«ã¯ã¢ã¯ã»ã¹ã§ããã®ã§ã倿°ã®ããã»ãµã䞊åã«åäœã§ãå¹çãäžããã
å®éã®äŸã§ã¯äºæ ã¯ããã»ã©ç°¡åã§ã¯ç¡ãã倿°ã®è³æºã確ä¿ããå¿ èŠãããã®ãæ®éã§ãããããã»ãµAãè³æº1ãããã¯ããŠããã®æ¬¡ã«è³æº2ãããã¯ããããšããäžæ¹ãããã»ãµBã¯è³æº2ãããã¯ããŠããããã®æ¬¡ã«è³æº1ã®ç²åŸãèŠæ±ãããšããããšã«ãªããšãããã»ãµAãBãšãã«å¿ èŠãªè³æºã®ç²åŸåŸ ã¡ã§å ã«é²ããªããããããã¯ãçºçããŠããŸããããã¯ã现ååããŠãããšããã®ãããªåé¡ã®çºçã®å¯èœæ§ãå¢å€§ããæ³šææ·±ãããã°ã©ãã³ã°ãå¿ èŠãšãªãããã«ãããã»ãµãå¹ççã«äœ¿ãããã°ã©ãã³ã°ãé£ããäžå ãšãªã£ãŠããã
ãã®åé¡ã®æåãªè§£æ±ºæ³ãšèããããŠããã®ããã©ã³ã¶ã¯ã·ã§ãã«ã¡ã¢ãª(Transactional Memory:TMããããã¯ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªãšãèšã)ãšããæ¹åŒã§ããã1993幎ã«Herlihyæ°ãšMossæ°ããã®ãã©ã³ã¶ã¯ã·ã§ãã«ã¡ã¢ãªãèæ¡ãããããå®çŸããããŒããŠã§ã¢æ©æ§ã«é¢ããè«æãçºè¡šãããããã«å¯ŸããŠãéåžžã®ããã»ãµãåããŠããããã¯æ©æ§ã ãã䜿ã£ãŠãããšã¯ãã¹ãŠãœãããŠã§ã¢ã§ãã©ã³ã¶ã¯ã·ã§ãã«ã¡ã¢ãªãå®çŸããSoftware Transactional Memory(STM)ãShaviæ°ãšTouitouæ°ã1995幎ã«çºè¡šããŠããã
ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã§ã¯ãããã°ã©ã ã®äžã§æä»ã¢ã¯ã»ã¹ãå¿ èŠãšããéšåããã©ã³ã¶ã¯ã·ã§ã³ãšåŒã³ããã©ã³ã¶ã¯ã·ã§ã³ã®æåã§ãã©ã³ã¶ã¯ã·ã§ã³éå§åœä»€ãçµäºæã«ãã©ã³ã¶ã¯ã·ã§ã³çµäºåœä»€ã眮ããããã°ã©ã ã¯æã«æä»å¶åŸ¡ãè¡ãããšãªããã©ã³ã¶ã¯ã·ã§ã³éšåã®ã³ãŒããå®è¡ããã®ã§ããããäœããã®æ¹æ³ã§ã(1)ãã©ã³ã¶ã¯ã·ã§ã³ã§ããŒã¿ãåç §ããã¡ã¢ãªã¢ãã¬ã¹ãç£èŠãã(2)ãã©ã³ã¶ã¯ã·ã§ã³ã®äžã§ã®ããŒã¿ã®æ ŒçŽã¯ãä»ã®ããã»ãµããã¯èŠããªãããŒã«ã«ãªãããã¡é åã«æ ŒçŽããŠããããããŠã(3)ãã©ã³ã¶ã¯ã·ã§ã³ã®çµäºæç¹ã§ã(1)ã§ããŒã¿ãåç §ããã¡ã¢ãªã®å€ã倿ŽãããŠããå Žåã¯ããã©ã³ã¶ã¯ã·ã§ã³ã倱æãããå床ããã©ã³ã¶ã¯ã·ã§ã³ã®éå§ããããçŽããäžæ¹ãããŒã¿ãåç §ãã¡ã¢ãªãæžãæããããŠããªãå Žåã¯ããã©ã³ã¶ã¯ã·ã§ã³ã¯æåã§ããããããã¡ã«æ ŒçŽããŠããããŒã¿ãã¡ã¢ãªã«äžæ¬ããŠã¢ãããã¯ã«æžãæ»ããããã§ãäžæ¬ããŠã¢ãããã¯ã«ãšããã®ãéèŠã§ããã®æžãæ»ãã®éã«ä»ã®ããã»ãµã®ã¡ã¢ãªã¢ã¯ã»ã¹ãæãŸã£ãŠã¯ãããªãã
ããã¯ã«ããæä»å¶åŸ¡ã®å Žåã¯ãäºé²çã«ä»ã®ããã»ãµã®å ±æè³æºãžã®ã¢ã¯ã»ã¹ãå¶éãããããã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã®å Žåã«ã¯ãå ±æè³æºãžã®ã¢ã¯ã»ã¹ã¯èªç±ã«è¡ããã䜿çšããããŒã¿ãæžãæããããŠè€æ°ã®ããã»ãµã®åŠçã®éã§å¹²æžãããå Žåã ããã©ã³ã¶ã¯ã·ã§ã³ã倱æããŠããçŽããšãªããéè¡å£åº§ã®äŸã§èšããšãè€æ°ã®ããã»ãµãå¥ã ã®å£åº§ã®æ®é«ãã¢ã¯ã»ã¹ããŠæŽæ°ããŠããå Žåã«ã¯ãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯æåããŠæå¹ãªäžŠååŠçãã§ããããŸããŸã2ã€ã®ããã»ãµãåãå£åº§æ®é«ã®æŽæ°ãåæã«è¡ã£ãå Žåã ããã©ã³ã¶ã¯ã·ã§ã³ã倱æããŠããçŽãã«ãªãããããŠããã®åŠçãè¡ãã¢ããªã±ãŒã·ã§ã³ããã°ã©ã ã¯æä»å¶åŸ¡ãªã©ã®é£ãã䞊ååŠçãæ°ã«ããå¿ èŠããªãã®ã§ãããã°ã©ã ã®éçºã容æãšãªãã
åè¿°ã®ããã«ããœãããŠã§ã¢ã ãã§ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªãå®çŸããŠããäŸããããã䜿çšããããŒã¿ãæžãæããããŠããªããã©ããã®ãã§ãã¯ããœãããŠã§ã¢ã§è¡ãã®ã¯å€§å€ã§ãããããŒããŠã§ã¢ã«ããã¢ã·ã¹ããè²ã ãšç ç©¶ãããŠããã
Sun Microsystemsã¯ã2008幎ã®ISSCCã«ãããŠãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªããµããŒãããããŒããŠã§ã¢ãåããRockããã»ãµãçºè¡šãããRockããã»ãµã§ã¯ããã©ã³ã¶ã¯ã·ã§ã³éå§åœä»€ä»¥éã«ã¢ã¯ã»ã¹ãããããŒã¿ãã£ãã·ã¥ã®ã©ã€ã³ã«ç¹å¥ãªããŒã¯ãä»ããŠãããä»ã®ããã»ãµããã®æžã蟌ã¿èŠæ±ã®ã¹ããŒãã«ãããããŒã¯ãä»ãããããã£ãã·ã¥ã©ã€ã³ãžã®æžã蟌ã¿ãæ€åºããããšãã©ã³ã¶ã¯ã·ã§ã³ã倱æãããããã®æ©æ§ã¯ãLoad Linked/Store Conditionalã®ãµããŒãããŒããŠã§ã¢ãšé¡äŒŒã§ãããããã¹ãŠã®ãã£ãã·ã¥ã©ã€ã³ã§ã®å€æŽãORããŠãã©ã³ã¶ã¯ã·ã§ã³ã«å€±æãæ€åºããå¿ èŠãããã
ãŸããããŒã¿ã®æ ŒçŽã«ã€ããŠã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®çµäºãŸã§ã¯ã¹ãã¢ãããã¡ãžã®æžã蟌ã¿ã§çããŠããããã£ãã·ã¥ãã¡ã¢ãªãžã®æžã蟌ã¿ã¯è¡ããªãããããŠããã©ã³ã¶ã¯ã·ã§ã³ã®çµäºåœä»€ãå®è¡ããæç¹ã§ããã®ãã©ã³ã¶ã¯ã·ã§ã³ãæåã§ããã°ãä»ã®ããã»ãµã®ã¡ã¢ãªã¢ã¯ã»ã¹ããããã¯ããŠãã¹ãã¢ãããã¡ã«æ ŒçŽãããã¹ãã¢èŠæ±ãäžæ¬ããŠã¡ã¢ãªã«æžãæ»ãã
Rockã®ããŒããŠã§ã¢ã¢ã·ã¹ãã§åŠçã§ãããã©ã³ã¶ã¯ã·ã§ã³ã¯ã32ãšã³ããªã®ã¹ãã¢ãããã¡ã«æ ŒçŽã§ãããµã€ãºã«å¶éãããããJavaãªã©ã®åŠçã§ã¯ãã®ç¯å²ã«åãŸãå°ããªãã©ã³ã¶ã¯ã·ã§ã³ãå€ãã®ã§æå¹ã§ãããšããã
ãã®äŸã®ããã«ãäžè¬ã«ããŒããŠã§ã¢ã§åŠçã§ãããã©ã³ã¶ã¯ã·ã§ã³ã®ãµã€ãºã«ã¯å¶éããããããããå®çšã·ã¹ãã ã§ã¯å€§ããªãã©ã³ã¶ã¯ã·ã§ã³ãåºãŠããå ŽåããããããŒããŠã§ã¢æ©æ§ãã¹ãã¢ãããã¡ã®äžè¶³ãªã©ã§åŠçããããªãå Žåã«ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ãµã€ãºã«å¶éã®ãªããœãããŠã§ã¢ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã«åãæ¿ãããšããã¡ã«ããºã ãå¿ èŠã«ãªã£ãŠããã
ãªããRockããã»ãµã¯ãã¹ã«ãŠãã¹ã¬ãããªã©ããã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªä»¥å€ã«ãå é²çãªæ©æ§ãåãå ¥ããéå¿çãªããã»ãµã§ãã£ãããSunãOracleã«è²·åãããçŽåã«éçºããã£ã³ã»ã«ãããCPUãããã¯å®æããŠãããšèšãããããå®çšåãããªãã§çµãã£ãŠããŸã£ãã