1990幎代åŸåã®RISCãšCISCã®éã®æŠäºã¯é·ãéæ¶æ» ãã仿¥ã§ã¯RISCãšCISCã®éãã¯ãŸã£ããç¡é¢ä¿ã§ãããšèããããŠããŸããå€ãã®äººããã³ãã³ãã»ããã¯ç¡é¢ä¿ã§ãããšäž»åŒµããŠããŸãã
ãã ããã³ãã³ãã»ããã¯å®éã«ã¯éèŠã§ãããããã¯ããã€ã¯ãããã»ããµã«ç°¡åã«è¿œå ã§ããæé©åã®ã¿ã€ãã«å¶éã課ããŸãã
æè¿ãRISC-Våœä»€ã»ããã¢ãŒããã¯ãã£ïŒISAïŒã詳ãã調ã¹ãŸãããããã«ãRISC-VISAã«ã€ããŠæ¬åœã«æéãåããããã€ãã®åŽé¢ã瀺ããŸãã
- ããã¯å°ãããŠç¿åŸããããRISCã³ãã³ãã»ããã§ãããã€ã¯ãããã»ããµã«ã€ããŠåŠã³ãã人ã«ã¯éåžžã«é©ããŠããŸãã
- , , .
- CPU ISA RISC-V.
- , , RISC-V.
RISC
RISC-Vãããããçè§£ãå§ãããšããRISC-Vã¯ãå€ãã®äººãã³ã³ãã¥ãŒãã£ã³ã°ã®éãå»ã£ãæä»£ã§ãããšä¿¡ããŠãããã®ãžã®æ ¹æ¬çãªåŸ©åž°ã§ããããšã倿ããããšã«æ°ä»ããŸãããèšèšã®èгç¹ãããå€å žçã«ç§»åæéãšåæ§ãã·ã³ã®RISC-V Rã¯æåº I nstruction Sã C omputerïŒRISCã«çãã³ãã³ãã»ããããæã€ã³ã³ãã¥ãŒã¿ïŒ80幎代ããã³90幎代ã
è¿å¹ŽãARMã®ãããªRISCããã»ããµã«éåžžã«å€ãã®åœä»€ã远å ãããŠããããããã®å€ãã¯éåžžã«è€éã§ãããçŸæ®µéã§ã¯çŽç²ãªRISCããã»ããµããããã€ããªããã§ãããããRISCãšCISCãžã®åå²ã¯ãã¯ãæå³ããªããšå€ãã®äººã䞻匵ããŠããŸãã PowerPCãªã©ã®ä»ã®RISCããã»ããµã«ãåæ§ã®èæ ®äºé ãé©çšãããŠããŸãã
äžæ¹ãRISC-Vã¯ãRISCããã»ããµã代衚ããçã®ãããŒãã³ã¢ãã§ããã€ã³ã¿ãŒãããã§RISC-Vã®è°è«ã«ã€ããŠèªããšãRISC-Vã¯æä»£ã«é ããã«ã€ããŠããããšãæåŠããæãªããã®RISCéæ¿æŽŸã«ãã£ãŠéçºããããšäž»åŒµãã人ã ãããŸãã
å ARMãšã³ãžãã¢ã®ErinShepherdã¯ãæ°å¹Žåã«RISC-Vã®è峿·±ãæ¹è©ãæžããŸãã ã
ISA RISC-V . , .. (, , ) , .
ç°¡åã«èª¬æããŸãã ã³ãŒããµã€ãºãå°ãããšãå®è¡å¯èœãªã³ãŒããããã»ããµã®é«éãã£ãã·ã¥å ã«ç°¡åã«ä¿åã§ãããããããã©ãŒãã³ã¹äžã®å©ç¹ããããŸãã
ããã§ã®æ¹å€ã¯ãRISC-Vã®èšèšè ãå°ããªåœä»€ã»ããã®æäŸã«éäžããããŠããããšã§ããçµå±ã®ãšãããããã¯RISCã®åœåã®ç®æšã®1ã€ã§ãã
ãšãªã³ã«ããã°ãããã®çµæãå®éã®ããã°ã©ã ã¯ã¿ã¹ã¯ãå®äºããããã«ããå€ãã®åœä»€ãå¿ èŠãšãããã€ãŸããããå€ãã®ã¡ã¢ãªã¹ããŒã¹ãæ¶è²»ããããšã«ãªããŸãã
äŒçµ±çã«ãäœå¹Žãã®éãRISCããã»ããµãããCISCã«äŒŒããã®ã«ããããã«ãããå€ãã®åœä»€ãRISCããã»ããµã«è¿œå ããå¿ èŠããããšèããããŠããŸãããã¢ã€ãã¢ã¯ãããå°éçãªã³ãã³ããè€æ°ã®äžè¬çãªã³ãã³ãã®äœ¿çšã眮ãæããããšãã§ãããšããããšã§ãã
ã³ãã³ãå§çž®ãšãã¯ãæäœã®èå
ãã ããããã»ããµã¢ãŒããã¯ãã£ã«ã¯ãããè€éãªåœä»€ã远å ãããšãããã®æŠç¥ãããŸããŸãªæ¹æ³ã§åé·ã«ãã2ã€ã®é©æ°ããããŸãã
- å§çž®ãããåœä»€-åœä»€ã¯ã¡ã¢ãªå ã§å§çž®ãããããã»ããµã®æåã®ã¹ããŒãžã§è§£åãããŸãã
- ãã¯ãæäœã®èå-2ã€ä»¥äžã®åçŽãªåœä»€ãããã»ããµã«ãã£ãŠèªã¿åããã1ã€ã®ããè€éãªåœä»€ã«ããŒãžãããŸãã
å®éãARMã¯ãã§ã«ãããã®æŠç¥ã®äž¡æ¹ã䜿çšããŠãããx86ããã»ããµã¯åŸè ã䜿çšããŠãããããRISC-Vã¯ããã§æ°ããããªãã¯ãå®è¡ããŸããã
ãã ããããã«ã¯åŸ®åŠãªç¹ããããŸããRISC-Vã¯ã次ã®2ã€ã®éèŠãªçç±ãããããã2ã€ã®æŠç¥ããã¯ããã«å€ãã®ã¡ãªããã享åã§ããŸãã
- å§çž®ãããã³ãã³ããæåã«è¿œå ãããŸãããARMã®ãããªä»ã®ã¢ãŒããã¯ãã£ã¯ãåŸã§ããã«ã€ããŠèããããªãæ¥ãã§ãããããã蟌ã¿ãŸããã
- ããã¯ãå°æ°ã®ãŠããŒã¯ãªããŒã ã«å¯ŸããRISCã®å·çãæ£åœåããããšããã§ããå§çž®ãããã³ãã³ãã远å ããããã®ã¹ããŒã¹ãæ®ã£ãŠããã ãã§ãã
2çªç®ã®ãã€ã³ãã¯ããã€ãã®èª¬æãå¿ èŠã§ããRISCã¢ãŒããã¯ãã£ã§ã¯ãã³ãã³ãã¯éåžž32ãããå¹ ã§ãããããã®ãããã¯ãããŸããŸãªæ å ±ããšã³ã³ãŒãããããã«äœ¿çšããå¿ èŠããããŸãããã®ãããªã³ãã³ãããããšããŸãããïŒã»ãã³ãã³ã®åŸã«ã³ã¡ã³ãããããŸãïŒïŒ
ADD x1, x4, x8 ; x1 â x4 + x8
ããã¯ãã¬ãžã¹ã¿ã®å 容ã远å
x4
ããŠ
x8
ãçµæãä¿åããŸã
x1
ããã®åœä»€ããšã³ã³ãŒãããããã«å¿ èŠãªãããæ°ã¯ã䜿çšå¯èœãªã¬ãžã¹ã¿ãŒã®æ°ã«ãã£ãŠç°ãªããŸããRISC-VãšARMã«ã¯32åã®ã¬ãžã¹ã¿ããããŸããæ°å€32ã¯5ãããã§è¡šãããšãã§ããŸãã
2âµ= 32
ã³ãã³ãã¯3ã€ã®ç°ãªãã¬ãžã¹ã¿ãæå®ããå¿ èŠãããããããªãã©ã³ãïŒå ç®æäœã®å ¥åããŒã¿ïŒããšã³ã³ãŒãããã«ã¯ãåèš15ãããïŒ3Ã5ïŒãå¿ èŠã§ãã
ãããã£ãŠãåœä»€ã»ããã§ãµããŒãããæ©èœãå€ãã»ã©ã䜿çšå¯èœãª32ãããããããå€ãã®ããããååŸããŸãããã¡ããã64ãããåœä»€ã«ç§»è¡ããããšãã§ããŸãããããã¯ã¡ã¢ãªã倧éã«æ¶è²»ãããããããã©ãŒãã³ã¹ãäœäžããŸãã
åœä»€ã®æ°ãå°ãªãããããã®ç©æ¥µçãªåãçµã¿ã«ãããŠãRISC-Vã¯ãå§çž®ãããåœä»€ã䜿çšããŠããããšã瀺ãããã«ãããã远å ããäœå°ãæ®ããŠããŸããããã»ããµã¯ãã³ãã³ãã«ç¹å®ã®ããããèšå®ãããŠããããšã確èªãããšãå§çž®ãããŠãããšè§£éããå¿ èŠãããããšãçè§£ããŸãã
ããã¯ã1ã€ã®åœä»€ã®32ããããå éšã«è²Œãä»ãã代ããã«ããããã16ãããå¹ ã®2ã€ã®åœä»€ãåããããšãã§ããããšãæå³ããŸããåœç¶ããã¹ãŠã®RISC-Vã³ãã³ãã16ããã圢åŒã§è¡šçŸã§ããããã§ã¯ãããŸããããããã£ãŠã32ãããåœä»€ã®ãµãã»ããã¯ããã®æçšæ§ãšäœ¿çšé »åºŠã«åºã¥ããŠéžæãããŸããéå§çž®åœä»€ã3ã€ã®ãªãã©ã³ãïŒå ¥åããŒã¿ïŒãåãåãããšãã§ããå Žåãå§çž®ãããåœä»€ã¯2ã€ã®ãªãã©ã³ãããåãåãããšãã§ããŸãããã€ãŸããå§çž®ãããã³ãã³ã
ADD
ã¯æ¬¡ã®ããã«ãªããŸãã
C.ADD x4, x8 ; x4 â x4 + x8
RISC-Vã¢ã»ã³ããªã³ãŒãã¯ããã¬ãã£ãã¯ã¹
C.
ã䜿çšã ãŠãã³ãã³ããå§çž®ã³ãã³ãã«ã¢ã»ã³ãã«ããå¿ èŠãããããšã瀺ããŸãã
åºæ¬çã«ãå§çž®ãããåœä»€ã¯ãªãã©ã³ãã®æ°ãæžãããŸãã 3ã€ã®ãªãã©ã³ãã¬ãžã¹ã¿ã¯15ããããåããæäœã瀺ãããã«1ãããã ããæ®ããŸãããããã£ãŠã2ã€ã®ãªãã©ã³ãã䜿çšããŠopcodeïŒå®è¡ããæäœïŒã瀺ãå Žåãæ®ã6ãããã«ãªããŸãã
ããã¯ã3ã€ã®ãªãã©ã³ãã¬ãžã¹ã¿ã䜿çšããã®ã«ååãªããããäºçŽãããŠããªãå Žåã®x86ã¢ã»ã³ãã©ã®åäœã«å®éã«è¿ããã®ã§ãã x86ããã»ããµã¯ããããæµªè²»ããŠãããšãã°ãã³ãã³ãã
ADD
ã¡ã¢ãªãšã¬ãžã¹ã¿ã®äž¡æ¹ããçä¿¡ããŒã¿ãèªã¿åãããšãã§ããããã«ã ãŸãã
ãããã æ¬åœã³ãã³ãå§çž®ãšãã¯ãæäœã®èåãçµã¿åãããããšã§ã¡ãªãããåŸãããŸããããã»ããµã¯ã2ã€ã®å§çž®ããã16ãããåœä»€ãå«ã32ãããã¯ãŒããåä¿¡ãããšããããã1ã€ã®ããè€éãªåœä»€ã«ããŒãžã§ã ãŸãã
ãã³ã»ã³ã¹ã®ããã«èãããŸã-ç§ãã¡ã¯å§ãããšããã«æ»ã£ãŠããŸããïŒ
ããããISA仿§ãäžé£ã®è€éãªåœä»€ïŒã€ãŸããARMãåŸãæŠç¥ïŒã§æºããå¿ èŠæ§ãåé¿ããŠããããã§ãã代ããã«ãæ¬è³ªçã«ãåçŽãªã³ãã³ãã®ããŸããŸãªçµã¿åãããéããŠãè€éãªã³ãã³ãã®ãã¹ãå šäœã鿥çã«è¡šçŸããŠã ãŸãã
éåžžã®ç¶æ³ã§ã¯ããã¯ããã¥ãŒãžã§ã³ã«ãã£ãŠåé¡ãçºçããŸãã2ã€ã®åœä»€ã1ã€ã«çœ®ãæããããŠãã2åã®ã¡ã¢ãªãæ¶è²»ããŸãããã ããã³ãã³ããå§çž®ãããšããäœåãªã¹ããŒã¹ãå æããããšã¯ãããŸãããäž¡æ¹ã®ã¢ãŒããã¯ãã£ãå©çšããŠããŸãã
ãšãªã³ã·ã§ããŒãã«ãã£ãŠäžããããäŸã®1ã€ãèŠãŠã¿ãŸããããISA RISC-Vã«é¢ãã圌女ã®éèŠãªèšäºã§ã圌女ã¯Cã§ç°¡åãªæ©èœã瀺ããŠããŸããæç¢ºã«ããããã«ãç§ã¯ãããèªç±ã«æžãçŽãããšãã§ããŸããã
int get_index(int *array, int i) {
return array[i];
}
x86ã§ã¯ãããã¯æ¬¡ã®ã¢ã»ã³ããªã³ãŒãã«ã³ã³ãã€ã«ãããŸãã
mov eax, [rdi+rsi*4]
ret
颿°ãããã°ã©ãã³ã°èšèªã§åŒã³åºããããšãåŒæ°ã¯éåžžã䜿çšãããåœä»€ã»ããã«äŸåãã確ç«ãããé åºã«åŸã£ãŠãã¬ãžã¹ã¿ãŒå ã®é¢æ°ã«æž¡ãããŸãã x86ã§ã¯ãæåã®åŒæ°ã¯ã¬ãžã¹ã¿
rdi
ã«é 眮ããã2çªç®ã®åŒæ°ã¯ã«é 眮ã ã
rsi
ãŸããæšæºã§ã¯ãæ»ãå€ã¯ã¬ãžã¹ã¿ã«é 眮ããå¿ èŠããããŸã
eax
ã
æåã®ã³ãã³ãã¯ãã³ã³ãã³ã
rsi
ã«4ãæã ãŸã
i
ãããã«ã¯å€æ°ãå«ãŸããŠããŸã ããªã墿®ããã®ã§ããïŒ
array
4ãã€ãã§åºåãããæŽæ°èŠçŽ ã§æ§æãããŠãããã ã§ãããããã£ãŠãé åã®3çªç®ã®èŠçŽ ã¯ãªãã»ãã3Ã4 = 12ãã€ãã«ãããŸãã
次ã«
rdi
ãããŒã¹ã¢ãã¬ã¹ãå«ãããã远å ã ãŸã
array
..ãããã«ããã
i
thèŠçŽ ã®æçµã¢ãã¬ã¹ãåŸãã ãŸã
array
ããã®ã¢ãã¬ã¹ã®ã¡ã¢ãªã»ã«ã®å 容ãèªã¿åãã
eax
ã¿ã¹ã¯å®äºã«ä¿å ããŸãã
ARMã§ã¯ããã¹ãŠãåæ§ã®æ¹æ³ã§çºçããŸãã
LDR r0, [r0, r1, lsl #2]
BX lr ;return
ããã§ã¯ã4ãæããã®ã§ã¯ãªããã¬ãžã¹ã¿ã
r1
2ãããå·Šã«ã·ããããŸã ãããã¯ã4ãæããããšãšåãã§ããããã¯ãx86ã§äœãèµ·ããããããæ£ç¢ºã«èª¬æããŠããå¯èœæ§ããããŸããä¹ç®ã¯ããªãè€éãªæäœã§ãããã·ããã¯å®äŸ¡ã§ç°¡åãªã®ã§ã2ã®åæ°ä»¥å€ã®ãã®ã§ä¹ç®ããããšã¯å¯èœã§ã¯ãªãããšæããŸãã
x86ã®ç§ã®èª¬æãããæ®ãã¯èª°ã®æšæž¬ã§ããããŸããããã§ã¯ãæ¬åœã®æ¥œãã¿ãå§ãŸãRISC-Vã«è¡ããŸãããïŒ ïŒã³ã¡ã³ãã¯ã»ãã³ãã³ã§å§ãŸããŸãïŒ
SLLI a1, a1, 2 ; a1 â a1 << 2
ADD a0, a0, a1 ; a0 â a0 + a1
LW a0, a0, 0 ; a0 â [a0 + 0]
RET
RISC-Vãã¬ãžã¹ã¿äž
a0
ãš
a1
åã«ã®å¥åã§ã
x10
ãš
x11
ããããã¯ã颿°åŒã³åºãã®æåãš2çªç®ã®åŒæ°ãé 眮ãããå Žæã§ãã
RET
ç䌌ã³ãã³ãïŒçç¥åœ¢ïŒã§ãïŒ
JALR x0, 0(ra) ; sp â 0 + ra
; x0 â sp + 4 ignoring result
JALR
ra
æ»ãã¢ãã¬ã¹ãåç §ããã«æ ŒçŽãããŠããã¢ãã¬ã¹ã«ç§»åã ãŸãã
ra
ä»®å
x1
ã§ãã
ãããŠãããã¯ãã¹ãŠçµ¶å¯Ÿã«ã²ã©ãããã«èŠããŸãããïŒããŒãã«ã§ã€ã³ããã¯ã¹ã«ãã¯ã¢ãããå®è¡ããŠçµæãè¿ããªã©ãåçŽã§äžè¬çã«äœ¿çšãããæäœã®2åã®ã³ãã³ãã
æ¬åœã«èŠæ ããæªãã§ããããããErinShepherdãRISC-Véçºè ã«ããèšèšäžã®æ±ºå®ã«éåžžã«æ¹å€çã ã£ãçç±ã§ããåœŒå¥³ã¯æžããŸãïŒ
RISC-VãåçŽåãããšããã³ãŒããŒïŒã€ãŸããããã³ããšã³ãããã»ããµãŒïŒãåçŽã«ãªããŸãããåœä»€ãå¢ãããšããç ç²ã䌎ããŸãããã ãããã€ãã©ã€ã³å¹ ã®ã¹ã±ãŒãªã³ã°ã¯ããªãããŒãªäœæ¥ã§ãããããã€ãã®ïŒãŸãã¯éåžžã«ïŒç°åžžãªåœä»€ã®ãã³ãŒãã¯ååã«ç ç©¶ãããŠããŸãïŒã³ãã³ãã®é·ããæ±ºå®ãããšãã«äž»ãªåé¡ãçºçããŸã-ãã¬ãã£ãã¯ã¹ãç¡éã§ãããããx86ã¯ç¹ã«ç¡èŠãããŸãïŒã
ãã ããã³ãã³ãã®å§çž®ãšãã¯ãæäœã®èåã®ãããã§ãç¶æ³ãããè¯ãå€ããããšãã§ããŸãã
C.SLLI a1, 2 ; a1 â a1 << 2
C.ADD a0, a1 ; a0 â a0 + a1
C.LW a0, a0, 0 ; a0 â [a0 + 0]
C.JR ra
ããã§ãåœä»€ã¯ARMã®äŸãšãŸã£ããåãéã®ã¡ã¢ãªã¹ããŒã¹ãå æããŸãã
ã§ã¯ãMacro-opãã¥ãŒãžã§ã³ãå®è¡ããŸããã ã
RISC-Vãæäœã1ã€ã«ããŒãžã§ããããã«ããããã®æ¡ä»¶ã®1ã€ã¯ã ã¿ãŒã²ããã¬ãžã¹ã¿ã®äžèŽã§ãããã®æ¡ä»¶ã¯ãã³ãã³ã
ADD
ããã³
LW
ïŒããŒãã¯ãŒãããããŒãã¯ãŒããïŒã§æºããããŸã ããããã£ãŠãããã»ããµã¯ãããã1ã€ã®åœä»€ã«å€æã ãŸãã
SLLIã§ãã®æ¡ä»¶ãæºããããå Žåã3ã€ã®ã³ãã³ããã¹ãŠã1ã€ã«ããŒãžã§ã ãŸããã€ãŸããããã»ããµã¯ãããè€éãªARMåœä»€ã«äŒŒããã®ãèªèããŸãã
LDR r0, [r0, r1, lsl #2]
ãããããªããã®è€éãªãã¯ãæäœãã³ãŒãã«çŽæ¥èšè¿°ã§ããªãã®ã§ããããã
ISAã¯ãã®ãããªãã¯ãæäœããµããŒãããŠããªãããã§ãïŒãããæ°ãéãããŠããããšãæãåºããŠãã ãã ãããã§ã¯ãã³ãã³ããé·ãããŸãããïŒããããããã¯ã¡ã¢ãªã倧éã«æ¶è²»ãã貎éãªããã»ããµãã£ãã·ã¥ãããéããªãŒããŒãããŒãããŸãã
ãã ãã代ããã«ããããã®é·ããŠåè€éãªåœä»€ãããã»ããµå ã§çºè¡ããå Žå ãåé¡ã¯çºçããŸãããããã»ããµãåæã«æ°çŸãè¶ ããåœä»€ãæã€ããšã¯ãããŸããããããã£ãŠãåã³ãã³ããããšãã°128ãããã«è²»ããå Žåãããã«ãã£ãŠåé¡ãçºçããããšã¯ãããŸããããã¹ãŠã«ååãªã·ãªã³ã³ããŸã ãããŸãã
ãã³ãŒããŒãéåžžã®ã³ãã³ããåä¿¡ãããšãéåžžããã³ãŒããŒã¯ããã1ã€ä»¥äžã®ãã€ã¯ããªãã¬ãŒã·ã§ã³ã«å€æããŸãããããã®ãã€ã¯ããªãã¬ãŒã·ã§ã³ã¯ãããã»ããµãå®éã«åäœããåœä»€ã§ãããããã¯éåžžã«å¹ åºããå€ãã®è¿œå ã®æçšãªæ å ±ãå«ãããšãã§ããŸããæ¥é èŸãmicroãã¯å¹ ãåºããããç®èã«èãããŸãããã ããå®éã«ã¯ãããã€ã¯ãããšã¯ãã¿ã¹ã¯ã®æ°ãéãããŠããããšãæå³ããŸãã
ãã¯ãæäœã®èåã«ããããã³ãŒããŒãå°ãéããŸã«ãªããŸãã1ã€ã®ã³ãã³ããè€æ°ã®ãã€ã¯ãæäœã«å€æãã 代ããã«ã å€ãã®æäœãå®è¡ããŠ1ã€ã®ãã€ã¯ãæäœã«å€æããŸãã
ã€ãŸããææ°ã®ããã»ããµã§èµ·ãã£ãŠããããšã¯ããªãå¥åŠã«èŠãããããããŸããã
- ãŸããå§çž®ã䜿çšããŠ2ã€ã®ããŒã ã1ã€ã«çµåããŸãã
- 次ã«ãè§£åã䜿çšããŠãããã2ã€ã«åå²ããŸãã
- 次ã«ãmacro-opfusionã䜿çšããŠãããã1ã€ã®æäœã«çµåããŸãã
ä»ã®ã³ãã³ãã¯ãããã€ãã®ãã€ã¯ããªãã¬ãŒã·ã§ã³ã«åå²ã§ããããŒãžããããšã¯ã§ããŸãããäžéšã®ããŒã ãå䜵ããä»ã®ããŒã ãåå²ããã®ã¯ãªãã§ããïŒãã®çæ°ã®äžã«ã·ã¹ãã ã¯ãããŸããïŒ
ãã€ã¯ããªãã¬ãŒã·ã§ã³ãžã®ç§»è¡ã®éèŠãªåŽé¢ã¯ãæãŸããã¬ãã«ã®è€éãã§ãã
- è€éãããªãã§ãã ãããããããªããšãåã³ãã³ãã«å²ãåœãŠãããåºå®æ°ã®ã¯ããã¯ãµã€ã¯ã«ã§å®äºã§ããªããªããŸãã
- åçŽãããŸãããããããªããšãããã»ããµã®ãªãœãŒã¹ãç¡é§ã«ãªãã ãã§ãã2åã®ãã€ã¯ããªãã¬ãŒã·ã§ã³ãå®è¡ãããšã1åã ãå®è¡ããå Žåã®2åã®æéãããããŸãã
ããã¯ãã¹ãŠCISCããã»ããµããå§ãŸããŸãããIntelã¯ãè€éãªCISCåœä»€ããã€ã¯ããªãã¬ãŒã·ã§ã³ã«åé¢ããŠãRISCåœä»€ãªã©ã®ããã»ããµãã€ãã©ã€ã³ã«ç°¡åã«é©åã§ããããã«ããŸããããã ãããã®åŸã®æ§æã§ãéçºè ã¯ãå€ãã®CISCããŒã ã1ã€ã®é©åºŠã«è€éãªããŒã ã«çµ±åã§ããããšã«æ°ä»ããŸãããå®è¡ããã³ãã³ããå°ãªãå Žåãäœæ¥ã¯ããéãå®äºããŸãã
åŸãããã¡ãªãã
å€ãã®è©³çްã«ã€ããŠè°è«ããŠããŸããã®ã§ãä»ã§ã¯ãã®ãã¹ãŠã®äœæ¥ã®æå³ãçè§£ããã®ã¯é£ããã§ãããããã®ãã¹ãŠã®å§çž®ãšããŒãžã¯äœã®ããã«ãããŸããïŒåœŒãã¯å€ãã®äžå¿ èŠãªä»äºãããŠããããã§ãã
ãŸããã³ãã³ãå§çž®ã¯zipå§çž®ãšã¯ãŸã£ããç°ãªããŸããã³ãã³ãã®å³æå§çž®ãŸãã¯è§£åã¯å®å šã«ç°¡åã§ããããããå§çž®ããšããèšèã¯å°ã誀解ãæãå¯èœæ§ããããŸããããã«æéãç¡é§ã«ããããšã¯ãããŸããã
åãããšããã¯ãæäœã®èåã«ãåœãŠã¯ãŸããŸããããã»ã¹ã¯è€éã«èŠãããããããŸããããåæ§ã®ã·ã¹ãã ãææ°ã®ãã€ã¯ãããã»ããµã§ãã§ã«äœ¿çšãããŠããŸãããããã£ãŠããã®ãã¹ãŠã®è€éãã远å ããã³ã¹ãã¯ãã§ã«æ¯æãããŠããŸãã
ãã ããARMãMIPSãããã³x86ã®èšèšè ãšã¯ç°ãªããISAã®èšèšãéå§ãããšããRISC-Vã®äœæè ã¯ã³ãã³ãå§çž®ãšãã¯ãæäœã®èåã«ã€ããŠç¥ã£ãŠããŸãããæåã®æå°åœä»€ã»ããã䜿çšããããŸããŸãªãã¹ããéã㊠ã圌ãã¯2ã€ã®éèŠãªçºèŠãããŸããã
- RISC-Vããã°ã©ã ã¯éåžžãä»ã®ããã»ããµã¢ãŒããã¯ãã£ãšã»ãŒåãããã以äžã®ã¡ã¢ãªã¹ããŒã¹ãå æããŸããISA CISCã§ãããããã¡ã¢ãªãå¹ççã«äœ¿çšããå¿ èŠãããx86ãå«ã¿ãŸãã
- ä»ã®ISAãããå°ãªããã€ã¯ãæäœãå®è¡ããå¿ èŠããããŸãã
å®éãèåã念é ã«çœ®ããŠåºæ¬åœä»€ã»ãããèšèšããããšã«ãããååãªåœä»€ãããŒãžã§ãããããã©ã®ããã°ã©ã ã®ããã»ããµããç«¶åããããã»ããµãããå°ãªããã€ã¯ãæäœãå®è¡ããå¿ èŠããããŸããã
ããã«ãããRISC-VéçºããŒã ã¯ãåºæ¬çãªRISC-VæŠç¥ãšããŠãã¯ãæäœã®èåãå®è£ ããããã®åãçµã¿ãåå ããããã«ãªããŸããã RISC-Vããã¥ã¢ã«ã«ã¯ãããŒãžã§ããæäœã«é¢ããå€ãã®æ³šèšããããŸãããŸããäžè¬çãªãã¿ãŒã³ã§èŠã€ãã£ãã³ãã³ããç°¡åã«ããŒãžã§ããããã«ããããã®ããã€ãã®ä¿®æ£ãå«ãŸããŠããŸãã
å°ããªISAã¯ãåŠçãåŠã³ãããããŸããããã¯ãããã»ããµã¢ãŒããã¯ãã£ã®åŠçã«ãšã£ãŠãRISC-Våœä»€ã§å®è¡ãããç¬èªã®ããã»ããµãèšèšããæ¹ãç°¡åã§ããããšãæå³ããŸããã³ãã³ãå§çž®ãšãã¯ãæäœèåã®äž¡æ¹ããªãã·ã§ã³ã§ããããšãèŠããŠãã䟡å€ããããŸãã
RISC-Vã«ã¯ãå®è£ ããå¿ èŠã®ããå°ããªåºæ¬çãªã³ãã³ãã»ããããããŸãããã ããä»ã®ãã¹ãŠã®ã³ãã³ãã¯æ¡åŒµæ©èœã®äžéšãšããŠå®è£ ãããŸããå§çž®ãããã³ãã³ãã¯ãåãªããªãã·ã§ã³ã®æ¡åŒµæ©èœã§ãã
ãã¯ãæäœã®èåã¯åãªãæé©åã§ããäžè¬ã«åäœã¯å€æŽãããªããããç¬èªã®RISC-Vããã»ããµã«å®è£ ããå¿ èŠã¯ãããŸããã
RISC-VèšèšæŠç¥
RISC-Vã¯ã仿¥ã®ææ°ã®ããã»ããµã«ã€ããŠç§ãã¡ãç¥ã£ãŠãããã¹ãŠã®ãã®ãåãå ¥ãããã®ç¥èã䜿çšããŠISAããã»ããµãèšèšããŸãããããšãã°ã次ã®ããšãããããŸãã
- 仿¥ã®ããã»ããµã³ã¢ã«ã¯ãé«åºŠãªãã©ã³ãäºæž¬ã·ã¹ãã ããããŸãã
- ããã»ããµã³ã¢ã¯ã¹ãŒããŒã¹ã«ã©ãŒã§ããã€ãŸããå€ãã®åœä»€ã䞊è¡ããŠå®è¡ããŸãã
- ã¹ãŒããŒã¹ã«ã©ãŒæ§ã確ä¿ããããã«ãé åºã倿Žãããã³ãã³ãã®å®è¡ïŒã¢ãŠããªããªãŒããŒå®è¡ïŒã䜿çšãããŸãã
- 圌ãã¯ã³ã³ãã€ãŒãæã£ãŠããŸãã
ããã¯ãARMããµããŒãããæ¡ä»¶ä»ãå®è¡ãªã©ã®æ©èœãäžèŠã«ãªã£ãããšãæå³ããŸãããã®é¢æ°ã«å¯ŸããARMã®ãµããŒãã¯ãåœä»€ãã©ãŒããããããããã奪ããŸãã RISC-Vã¯ãããã®ããããä¿åã§ããŸãã
æ¡ä»¶ä»ãå®è¡ã¯ããã€ãã©ã€ã³ã«æªåœ±é¿ãäžãããããå ã ãã©ãŒã¯ãåé¿ããããã«èšèšãããŠããŸãããããã»ããµã®äœæ¥ãé«éåããããã«ãéåžžãæ¬¡ã®ã³ãã³ããäºåã«åä¿¡ããŸããããã«ãããåã®ã³ãã³ããå®è¡ãããçŽåŸã«ãããã»ããµã®æåã®æ®µéã§æ¬¡ã®ã³ãã³ããååŸã§ããŸãã
æ¡ä»¶ä»ãåå²ã§ã¯ããã€ãã©ã€ã³ã®å å¡«ãéå§ãããšãã«æ¬¡ã®ã³ãã³ããã©ãã«ããããäºåã«ç¥ãããšã¯ã§ããŸããããã ããã¹ãŒããŒã¹ã«ã©ãŒããã»ããµã¯ãäž¡æ¹ã®ãã©ã³ãã䞊è¡ããŠå®è¡ããã ãã§ãã
RISV-Cã«ã¯ã³ãã³ãéã®äŸåé¢ä¿ãäœæããããããã¹ããŒã¿ã¹ã¬ãžã¹ã¿ããããŸãããåã³ãã³ãã®ç¬ç«æ§ãé«ãã»ã©ãå¥ã®ã³ãã³ããšäžŠè¡ããŠå®è¡ããã®ã容æã«ãªããŸãã
åºæ¬çã«ãRISC-VæŠç¥ã¯ãISAãå¯èœãªéãåçŽã«ããRISC-Vããã»ããµã®æå°éã®å®è£ ãã髿§èœããã»ããµã®äœæãäžå¯èœã«ããèšèšäžã®æ±ºå®ãå¿ èŠãšããã«å¯èœãªéãåçŽã«ããããšã§ãã
åºå
åœç€Ÿã¯ãIntel CPUãæèŒãããµãŒããŒã ãã§ãªããAMDEPYCããã»ããµãæèŒãããµãŒããŒãæäŸããŠããŸã ãä»ã®ã¿ã€ãã®ãµãŒããŒãšåæ§ã«ãèªåã€ã³ã¹ããŒã«çšã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯è±å¯ã«çšæãããŠãããç¬èªã®ã€ã¡ãŒãžããä»»æã®OSãã€ã³ã¹ããŒã«ã§ããŸããä»è©ŠããŠã¿ãŠïŒ