¹Ø¼ü´Ê£ºRISC£V RV32I ³Ë·¨ÔËËã
ʱ¼ä£º2022-04-18 10:19:38 À´Ô´£ºDigi-Key
¡°RISC-V Ö¸Á¼Ü¹¹ (ISA) ÓÚ 2010 ÄêÔÚ²®¿ËÀûÎÊÊÀ¡£ËäÈ» RISC ´ú±í¾«¼òÖ¸Á¼ÆËã»ú/Äںˣ¬µ«ÖÆÔìÉÌÔÚʹÓà RISC ISA ʱ£¬×Ü»áÈ̲»×¡ÔÚÕâÀïÌí¼ÓÒ»ÌõÖ¸ÁÔÚÄÇÀïÌí¼ÓÒ»ÖÖÐÂѰַģʽ£¬Ìî³ä²Ù×÷ÂëÓ³Éä±í£¬×îºóµ¼Ö¼ܹ¹¸üÏñÊÇ CISC£¨¸´ÔÓÖ¸Á¼ÆËã»ú£©£¬¶ø²»ÊÇ RISC¡£²»¹ý£¬²®¿ËÀûµÄ RISC-V ¿ª·¢ÈËÔ±·Ç³£ÑϸñµØÒªÇóËûÃǵÄÄÚºËÊÇÕæÕýµÄ RISC¡£
¡±×÷ÕߣºBill Giovino
RISC-V Ö¸Á¼Ü¹¹ (ISA) ÓÚ 2010 ÄêÔÚ²®¿ËÀûÎÊÊÀ¡£ËäÈ» RISC ´ú±í¾«¼òÖ¸Á¼ÆËã»ú/Äںˣ¬µ«ÖÆÔìÉÌÔÚʹÓà RISC ISA ʱ£¬×Ü»áÈ̲»×¡ÔÚÕâÀïÌí¼ÓÒ»ÌõÖ¸ÁÔÚÄÇÀïÌí¼ÓÒ»ÖÖÐÂѰַģʽ£¬Ìî³ä²Ù×÷ÂëÓ³Éä±í£¬×îºóµ¼Ö¼ܹ¹¸üÏñÊÇ CISC£¨¸´ÔÓÖ¸Á¼ÆËã»ú£©£¬¶ø²»ÊÇ RISC¡£²»¹ý£¬²®¿ËÀûµÄ RISC-V ¿ª·¢ÈËÔ±·Ç³£ÑϸñµØÒªÇóËûÃǵÄÄÚºËÊÇÕæÕýµÄ RISC¡£RV32I RISC-V ISA ÔÚ×î³õÉè¼ÆÊ±½öÓÐ 47 Ìõ»ù´¡Ö¸ÁÕâ¸öÊý×Ö¶Ô¡¶ÐǼÊÃÔº½¡·µÄ´«Í³Ó°ÃÔÓÐÒ»ÖÖÌØÊâµÄÒâÒ壩£¬11 ÄêÖ®ºó£¬Ö¸ÁîÊý»¹ÊÇÕâô¶à¡£
Ö®ËùÒÔ±£³Ö½ÏÉٵĻù´¡Ö¸ÁîÊý£¬ÆäÔ±¾µÄÀíÄîÊǸ´ÔÓ CISC Ö¸Áî¿ÉÒÔͨ¹ýһϵÁеļòµ¥ RISC Ö¸ÁîʵÏÖ¡£°´ÕÕÎҵľÑ飬ÕâÖÖ×ö·¨ÊÇ·ñÄܹ»Ìá¸ß´úÂëЧÂʺ;«¼ò´úÂ룬Ҫȡ¾öÓÚÓ¦Ó᣹ýÈ¥Ëüȷʵ·¢»Ó¹ýÕâÑùµÄ×÷Óã¬ÒÔÖÁÓÚ Arm ½«ºÜ¶à¸´ÔÓÖ¸ÁîÌí¼Óµ½²Ù×÷ÂëÓ³Éä±í¡£
ËäÈ»¸ü¶àÖ¸ÁîÄܹ»°ïÖú¸Ä½øÐÔÄÜ£¬µ«Èç¹ûÔÚ 32 λÄÚºËÉÏÔËÐÐ 32 λָÁȻºóÄúÏ£ÍûÄܹ»½«Ò»Ð© 32 λָÁîѹËõΪ 16 λָÁîÒÔ½ÚÊ¡¿Õ¼ä£¬ÄÇôÇé¿ö»á±äµÃ¸ü¼Ó¸´ÔÓ¡£È»¶ø£¬ÈôÒªÔö¼Ó 16 λָÁÄں˵IJÙ×÷ÂëÓ³Éä±í±ØÐë¾ßÓиü¶à¿Õ¼äÀ´ÈÝÄÉÕâЩѹËõÖ¸Á¶øÔö¼Ó CISC Ö¸Áî»á¼õÉÙ¿ÉÓòÙ×÷ÂëÊýÁ¿¡£
ÔÚÕâÖÖÇé¿öÏ£¬RISC-V µÄÓÅÊÆÕæÕýµÃÒÔ·¢»Ó¡£Arm ºóÀ´Ôö¼ÓÁË Thumb2 ѹËõÖ¸Áî¸ñʽ£¬Í¨¹ýÌí¼Óµ¥¶ÀµÄ 16 λ ISA£¬½«ÕâЩ 16 λָÁîÕûºÏµ½ÏÖÓÐµÄ ISA ÖС£µ«ÊÇ£¬RISC-V ISA ´ÓÒ»¿ªÊ¼Éè¼ÆÊ±¾ÍÌṩÁËѹËõÖ¸ÁîµÄÑ¡ÏÒò¶ø½öÓÐÒ»¸ö ISA¡£ÕâÑù¿ÉÒÔʹÄں˱£³Ö¼òµ¥¸ßЧ£¬Ò²¿ÉÒÔ¼ò»¯°ëµ¼ÌåÉè¼ÆºÍ²âÊÔ¡£
ÀûÓó˷¨Ö¸ÁîÔöÇ¿ RISC-V RV32I ISA
ÖÆÔìÉÌ¿Éͨ¹ýÌí¼Ó±ê×¼»¯Ö¸ÁîÀ©Õ¹À´À©Õ¹ 47 ÌõÖ¸ÁîµÄ ISA£¨Í¼ 1£©¡£ÓÉÓÚ»ù´¡ ISA ûÓг˷¨»ò³ý·¨Ö¸ÁÒò´Ë M À©Õ¹ÌṩÁËÕâÖÖ¹¦ÄÜ¡£ÀýÈ磬´øÓÐ M À©Õ¹µÄ RV32I »á±»ÃüÃûΪ RV32IM¡£
ͼ 1£ºÍ¨¹ýÌí¼Ó±ê×¼»¯Ö¸ÁîÀ©Õ¹£¨ÓÃÄÚºËÃû³ÆºóµÄ×Öĸºó׺±íʾ£©£¬¿ÉÀ©Õ¹ 47 ÌõÖ¸ÁîµÄ RISC-V »ù´¡ ISA¡££¨Í¼Æ¬À´Ô´£ºRISC-V.org£©
Ò»¸ö´øÓÐ M À©Õ¹µÄÄÚºËʾÀýÊÇ SparkFun Electronics µÄ RED-V Thing Plus£¬Ëü²ÉÓÿªÔ´ 150 MHz Freedom E310 (FE310) 32 λ RISC-V ΢¿ØÖÆÆ÷¡£¸Ã FE310 Äں˱»ÃüÃûΪ RV32IMAC¡£Çë²Î¿¼Í¼ 1£¬³ýÁË»ù´¡ÕûÊý¼ÆËã (I) ÄÜÁ¦Ö®Í⣬Ëü»¹Ö§³ÖÕûÊý³Ë·¨ (M)¡¢Ô×ÓÖ¸Áî (A) ºÍѹËõÖ¸Áî (C)¡£
SparkFun µÄ DEV-15799 RED-V£¨¶Á×÷¡°ºì 5¡±£©ÊÇÒ»¿î RISC-V ÆÀ¹À°å£¨Í¼ 2£©£¬´îÔØ 32 MB µÄ³ÌÐò´æ´¢Æ÷ QSPI ÉÁ´æ£¬´øÓÐ USB-C Á¬½ÓÆ÷£¬¿ÉÁ¬½Óµ½Ö÷»úÒÔ»ñÈ¡µçÔ´²¢½øÐбà³ÌºÍµ÷ÊÔ¡£ÁíÍ⻹ÓÐÒ»¸öÁ¬½ÓÆ÷£¬¿ÉÓÃÓÚͨ¹ýµç³Ø¹©µç¡£
ͼ 2£ºSparkFun DEV-15799 ÆÀ¹À°åÓÃÓÚÆÀ¹À¿ªÔ´ 150 MHz FE310 RV32IMAC RISC-V Äںˡ£Ëüͨ¹ý USB-C ½Ó¿ÚÁ¬½Óµ½Ö÷»ú¡££¨Í¼Æ¬À´Ô´£ºSparkFun Electronics£©
M À©Õ¹Ôö¼ÓÁËÓзûºÅºÍÎÞ·ûºÅ 32/32 ³ý·¨Ö¸Áî DIV ºÍ DIVU£¬ÒÔ¼°ÓзûºÅºÍÎÞ·ûºÅÇóÓàÖ¸Áî REM ºÍ REMU¡£Ëü»¹Ôö¼ÓÁËËÄÌõ³Ë·¨Ö¸Á
¡¤ MUL Ö´ÐÐ 32 x 32 ¼Ä´æÆ÷³Ë·¨£¬½« 64 λ½á¹ûµÄµÍ 32 λ´æ´¢ÔڼĴæÆ÷ÖС£
¡¤ MULH ºÍ MULHU ·Ö±ðÖ´ÐÐÓзûºÅºÍÎÞ·ûºÅ¼Ä´æÆ÷³Ë·¨£¬½« 64 λ½á¹ûµÄ¸ß 32 λ´æ´¢ÔڼĴæÆ÷ÖС£
¡¤ MULSHU Ö´ÐÐÓзûºÅ x ÎÞ·ûºÅ¼Ä´æÆ÷³Ë·¨£¬½« 64 λ½á¹ûµÄ¸ß 32 λ´æ´¢ÔڼĴæÆ÷ÖС£
Òò´Ë£¬¶ÔÓÚ 32 x 32 = 64 ÎÞ·ûºÅ³Ë·¨£¬ÍƼöµÄ´úÂëÐòÁÐΪ£º
ÆäÖмĴæÆ÷ rs1 ºÍ rs2 ·Ö±ðÊDZ»³ËÊýºÍ³ËÊý£¬¼Ä´æÆ÷ rdh ºÍ rdl ·Ö±ðÊÇ¸ß 32 λºÍµÍ 32 λ½á¹û¡£
ͨ¹ý½« 64 λ³Ë·¨½á¹û·ÖΪÁ½¸ö 32 λÔËË㣬ISA ±ã²»ÐèÒªÌí¼Ó¸´Ô 32 x 32 = 64 CISC Ö¸Áî¡£Õâ·ûºÏʹÓüòµ¥Ö¸ÁîÀ´Ö´ÐÐ CISC ÔËËãµÄ RISC ÀíÄî¡£
»ù´¡ RV32I ISA ÖеĴó¶àÊýÖ¸ÁîµÄÖ´ÐнöÐèÒª 1 ¸öÖ¸ÁîʱÖÓÖÜÆÚ£¬µ« RED-V FE310 ÖеÄÕâЩ³Ë·¨Ö¸ÁîÐèÒª 5 ¸öʱÖÓÖÜÆÚ¡£ÕâÑùÍÆË㣬ÉÏÃæµÄÍÆ¼ö´úÂëÐòÁÐÐèÒª 10 ¸öʱÖÓÖÜÆÚ¡£ËäÈ»ÕâÔÚ 150 MHz ƵÂÊÏÂÊÇ¿ÉÒÔ½ÓÊܵ쬵«ÎÒ¼û¹ýһЩ¹¦ºÄ·Ç³£µÍ¡¢Ê±ÖÓËٶȷdz£ÂýµÄ΢¿ØÖÆÆ÷Ó¦Óã¬ÖжÏÔÚÕâЩӦÓÃÖÐÖÁ¹ØÖØÒª£¬ÈôÔÚ 5 MHz µÄƵÂÊÏÂÖ´ÐÐ 10 ¸öʱÖÓÖÜÆÚµÄ³Ë·¨£¬¹Ø¼üÖжÏÊǵȲ»ÆðÕâô³¤Ê±¼äµÄ¡£ÔÚ´ËÀàÇé¿öÏ£¬ÎÒ¿´µ½Ò»Ð©¹Ì¼þ¿ª·¢ÈËԱʹÓÃÔÊÐíÖжϵĸ´ÔÓ»ã±àÓïÑÔ×ÓÀý³ÌÀ´Ö´Ðг˷¨¡£
È»¶ø£¬FE310 ÄÚºËÄܹ»½ÓÊÜÁ¬ÐøÖ¸Á²¢Í¨¹ýºêÈںϣ¬½«ÕâЩָÁîÄÚ²¿ÈÚºÏΪһÌõ¸ü¿ìµÄÖ¸Áî¡£ÄÚºË΢¼Ü¹¹¿É½«Á½ÌõÖ¸ÁîÈÚºÏΪһÌõÄÚ²¿Ö¸ÁÕâÑùÆäÖ´ÐоͲ»ÐèÒª 10 ¸öʱÖÓÖÜÆÚ¡£RISC-V ΢¼Ü¹¹×Ô¶¯¶ÔһЩ´úÂëÐòÁнøÐÐÈںϣ¬ÀýÈç indexed loads¡¢load-pair ºÍ store-pair Ö¸Á´Ó¶øÏÔÖø¼Ó¿ìÖ´ÐÐËÙ¶È¡£¸ü´óµÄºÃ´¦ÊÇ£¬ÓÉÓÚ FE310 Ö§³Ö¡°C¡±À©Õ¹£¬¿ÉÒÔÈÚºÏÁ½Ìõ¼æÈÝµÄ 16 λѹËõÖ¸ÁÒò¶øÔÚ´úÂëºÍÖ´ÐÐËÙ¶È·½Ãæ¶¼¾ß±¸ÓÅÊÆ¡£
Arm ºóÀ´²ÅÔÚËûÃǵļܹ¹ÖÐÔö¼ÓÁ˺êÈںϣ¬¾ÍÏñѹËõÖ¸ÁîÄÇÑù£¬¶ø RISC-V ´ÓÒ»¿ªÊ¼¾ÍÔÚÉè¼ÆÖÐÌṩºêÈںϡ£ÒªÕæÕýÁ˽â´úÂëѹËõµÄÓÅÊÆ£¬ÒÔ¼°ºêÈںϷ¢ÉúµÄʱ»ú£¬×îºÃµÄ·½·¨ÊÇʹÓà SparkFun DEV-15799 µÈÆÀ¹À°åÀ´¹Û²ìÕâЩÐÐΪ¡£Äú¿ÉÔÚµ÷ÊÔÆ÷Öмì²â´úÂ룬Á˽â FE310 ΢¼Ü¹¹ÈçºÎÌáÈ¡ºÍÖ´ÐÐÿÌõÖ¸Áî¡£ÕâÑùÄú¾ÍÄܸüºÃµØÁ˽â»ã±àÓïÑÔµÄÐÐΪ£¬°ïÖúÄúʹÓÃÖ§³Ö´úÂëѹËõºÍºêÈÚºÏµÄ C ±àÒëÆ÷À´±àд¸ßЧµÄ´úÂë¡£
½áÓï
ÈÃÈËÒýÒÔΪ°ÁÊÇ£¬RISC-V ISA ½öÓÐ 47 Ìõ»ù´¡Ö¸ÁÊÇÕæÕýµÄ¾«¼òÖ¸Á¡£Ê¹Óá°M¡±³Ë·¨À©Õ¹µÈ±ê×¼»¯À©Õ¹£¬¿ÉÒÔÔö¼Ó³Ë·¨ºÍ³ý·¨Ö¸Á´Ó¶øÔöÇ¿ÕâÖּܹ¹¡£ºêÈÚºÏÊÇ RISC-V ¼Ü¹¹¹ÌÓеŦÄÜ£¬¿ÉÒÔ¼Ó¿ì¼æÈÝÖ¸ÁîµÄ´úÂëÖ´ÐÐËÙ¶È£¬ÀýÈçÁ¬Ðø³Ë·¨Ö¸Á¶ø¡°C¡±Ñ¹ËõÀ©Õ¹Ôò¿É¾«¼ò´úÂë¡£Ïà±ÈÆäËû¼Ü¹¹£¬Ñ¹ËõÖ¸ÁîºÍºêÈں϶¼ÄÜ´øÀ´ÏÔÖøµÄÐÔÄÜÓÅÊÆ¡£
·ÖÏíµ½£º
²ÂÄãϲ»¶