2024-11-01ãã1ã¶æéã®è¨äºä¸è¦§
ãã¤ã¯ãããã»ããµã»ã¢ã¼ããã¯ãã£æç§æ¸ (TECHIã·ãªã¼ãº Vol. 57)ä½è :ä¸æ£® ç« CQåºçAmazon ããã®åçã¯èªåãé«æ ¡çãããã®æããè²·ã£ã¦èªãã§ããã 第2çãåºã¦ã¨ã¦ãããããã åçã¯æ¬å½ã«èªåã®äººçãå¤ããæ¬ã ã¨æãã®ã§ããããèªãã§ä¸çæ¸â¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã IOMMUã®MSIã¢ãã¬ã¹å¤æã«ã¤ãã¦ãMRIFãç解ããå¿ è¦ãçãã¦ããã®ã§ã¡ã¢ã MRIFã®ãã©ã¼ãããã¯ä»¥ä¸ã®ããã«ãªãã以ä¸ã®ã¢ãã¬ã¹ãããã¯â¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã IOMMUã®MSIã¢ãã¬ã¹å¤æã«ã¤ãã¦ãMRIFãç解ããå¿ è¦ãçãã¦ããã®ã§ã¡ã¢ã MRIF(ã¡ã¢ãªå¸¸é§å²ãè¾¼ã¿ãã¡ã¤ã«: Memory Resident Interrupt Fâ¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã ä½åãèªããã¨ãã¦æ«æãã¦ããã®ã§ãããä¸åº¦ã¡ããã¨èªãã§ã¿ããã¨æãã ã¡ã¢ãªå ãã¼ã¿æ§é ã®ãã£ãã·ã¥ ãã¤ã¬ã¯ãã¡ã¢ãªã¢ã¯ã»ã¹(DMA)â¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã ä½åãèªããã¨ãã¦æ«æãã¦ããã®ã§ãããä¸åº¦ã¡ããã¨èªãã§ã¿ããã¨æãã PCIe ATSå¤æãªã¯ã¨ã¹ãå¦ç ATS[2]å¤æè¦æ±ã§æ§æã¨ã©ã¼ãçºçâ¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã ä½åãèªããã¨ãã¦æ«æãã¦ããã®ã§ãããä¸åº¦ã¡ããã¨èªãã§ã¿ããã¨æãã IOMMU ã«ãã PTE ã¢ã¯ã»ã¹ï¼Aï¼ã¨ãã¼ãã£ï¼Dï¼ã®æ´æ° capabiliâ¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com UVMã使ã£ã¦ã2ãã¼ãã®Arbiterãæ¤è¨¼ãããã¨ãèãããã 2ãã¼ãã®Round Robin Arbiterã¯ãç¾å¨ã®Priorityã«å¿ãã¦Acceptãããã¼ããå¤ããArbiterã ã arbiter2_rr.sv always_comb begin w_curr_ptr_next = r_â¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã ä½åãèªããã¨ãã¦æ«æãã¦ããã®ã§ãããä¸åº¦ã¡ããã¨èªãã§ã¿ããã¨æãã ããã¤ã¹ã³ã³ããã¹ãã®å ´æãç¹å®ããããã»ã¹ device_idã使ã£â¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com ååãã©ã³ãã å½ä»¤ãçæããããã®UVMè¨è¿°ãèããã®ã ãããã©ã¤ãã®ã¨ããã«å¶ç´ãæ¸ãã®ã¯è¯ããªãæ°ãããã ããã ã¨ãã¹ãã®ç°å¢ã«å¶ç´ãæ¸ãã¦ãã¾ã£ã¦ãããã¨ã«ãªãã®ã§ãããã¡ãã£ã¨ä¸è¬çãªã¨ãããâ¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com UVMã§è²ã ã³ã³ããã¼ã«ã§ãããã¨ãåãã£ã¦ããã®ã§ãä»åº¦ã¯ã©ã³ãã æ¤è¨¼ã«ä½¿ãããã®è¦ç´ ã«ã¤ãã¦èãã¦ããããã åç´ã«èããããã®ã¯ãRISC-Vã®å½ä»¤ãã©ã³ãã ã«çæããã©ã³ãã ãã¿ã³ã¸ã§ãã¬ã¼ã¿ã ã UVMâ¦
ã¡ã¼ãªã³ã°ãªã¹ãã«åã£ã¦ããä»æ§ã§ããªããå¤ãã£ãä»æ§ããããªã¨æã£ãã®ã§ã¡ã¢ã 64ãããã®ã¡ã¢ãªã¢ã¯ã»ã¹ã®å½ä»¤ã¯ãRV32ã ã¨å½ç¶åå¨ãã¦ããªãã®ã ãããããç¡çããå®ç¾©ããæ¡å¼µãããã Zilsd & Zclsdã¨ããä»æ§ãããã Load/Store pair instrucâ¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com 1ãµã¤ã¯ã«ã®DelayãããRAMãUVMã§æ¤è¨¼ãã¦ããã ã¢ãã¿ã®ã¨ããã§ãã¢ãã¬ã¹ã¨ãã¼ã¿ã1ãµã¤ã¯ã«ãããã®ãå¸åãã¦ããå¿ è¦ãããã ã¨ãããã以ä¸ã®ããã«ãã¦ã1ãµã¤ã¯ã«ã®Delayãprev_read_eqã¨prev_read_adâ¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com ååã¾ã§ã§ä½ã£ã¦ããUVMã®ç°å¢ã§ã¯ãDUTã¯å ¥åãå³æåºåãããããªãã¶ã¤ã³ãªã®ã§ã¤ãã¤ãé¢ç½ããªãã UVMã®ã¹ã³ã¢ãã¼ãã¯ãä¸éçµæãåã£ã¦ããã¦ããã使ã£ã¦æ¯è¼ã§ããã¯ããªã®ã§ãã¡ã¢ãªãªã©ã®è¨æ¶ç´ åãâ¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com ååã¾ã§ã§ä½ã£ã¦ããUVMã®ç°å¢ã§ã¯ãDUTã¯å ¥åãå³æåºåãããããªãã¶ã¤ã³ãªã®ã§ã¤ãã¤ãé¢ç½ããªãã UVMã®ã¹ã³ã¢ãã¼ãã¯ãä¸éçµæãåã£ã¦ããã¦ããã使ã£ã¦æ¯è¼ã§ããã¯ããªã®ã§ãã¡ã¢ãªãªã©ã®è¨æ¶ç´ åãâ¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com ã©ã¦ã³ãã»ããã³ã®Arbiterãã4å ¥åããNå ¥åã«æ¡å¼µãã¦ã¿ããã å®è£ ãç°¡åã«ããããã«ãæåã«åªå ãã¼ãé ã«ä¸¦ã¹æ¿ããã®ããã¤ã³ããã¯ã¹ã大ããã»ã©é«ãåªå 度ã«ãªãããã«ã¡ãã£ã¨å¤æ´ããã for (int i =â¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com 次ã¯ã©ã¦ã³ãããã³åã®4å ¥åArbiterãä½ã£ã¦ãUVMã§æ¤è¨¼ãã¦ã¿ããã¨æãã arbiter4_rr.sv module arbiter4_rr ( input logic i_clk, input logic i_reset_n, input logic i_valid0, input logic [15: 0] i_data0â¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com UVMã«ã¤ãã¦ç解ãæ·±ããããã«ã4å ¥åã®Arbiterãç¨ãããã¶ã¤ã³ã®UVMæ¤è¨¼ãã¿ã³ãä½ã£ã¦ãããã¨æãã arbiter4.sv ãã¶ã¤ã³ã¨ãã¦ã¯é常ã«ã·ã³ãã«ã§åªå 度ãåç´ãªã®ã ããã¨ããããããã§UVMãèµ°ãã¨ããã¾â¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã ä½åãèªããã¨ãã¦æ«æãã¦ããã®ã§ãããä¸åº¦ã¡ããã¨èªãã§ã¿ããã¨æãã IOVAãå¤æããããã»ã¹ã¯ããã¼ãã¦ã§ã¢ID(device_id ã¨processâ¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã ä½åãèªããã¨ãã¦æ«æãã¦ããã®ã§ãããä¸åº¦ã¡ããã¨èªãã§ã¿ããã¨æãã ããã»ã¹ã»ãã£ã¬ã¯ããªã»ãã¼ãã« (PDT) PDTã¯ãprocess_id ã®â¦
ååï¼msyksphinz.hatenablog.com github.com RISC-V IOMMUã®æ§æã«ã¤ãã¦ãæ¦ç¥ããã£ããç解ããããã®ã¡ã¢ã ä½åãèªããã¨ãã¦æ«æãã¦ããã®ã§ãããä¸åº¦ã¡ããã¨èªãã§ã¿ããã¨æãã MSI ãã¼ã¸ãã¼ãã«ãã¤ã³ã¿ (msiptp) .MSIãã¼ã¸ãã¼ãã«ãã¤ã³â¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com UVMã«ã¤ãã¦ç解ãæ·±ããããã«ã4å ¥åã®Arbiterãç¨ãããã¶ã¤ã³ã®UVMæ¤è¨¼ãã¿ã³ãä½ã£ã¦ãããã¨æãã arbiter4.sv ãã¶ã¤ã³ã¨ãã¦ã¯é常ã«ã·ã³ãã«ã§åªå 度ãåç´ãªã®ã ããã¨ããããããã§UVMãèµ°ãã¨ããã¾â¦
ååã¯ãã¡ãï¼msyksphinz.hatenablog.com UVMã®ãããªããã¹ããã³ãã試è¡ããããã«ã以ä¸ã®ã¦ã§ããµã¤ãã®ãµã³ãã«ã試ãã¦ã¿ããã¨ã«ããã www.chipverify.com ååã¯Scoreboardã¾ã§ä½ã£ãã®ã§ãæ®ããçµã¿ç«ã¦ã¦ãããã ãã¹ãã®æ§æ class test extâ¦
RISC-V Summit 2024 North Americaã®çºè¡¨è³æãä¸é¨å ¬éããã¦ããã®ã§ããããçºãã¦ã¿ããã riscvsummit2024.sched.com RISC-V State of the Unionã¯ãKrste Asanovicãæ¯ååºèª¿è¬æ¼çãªæãã§ãç¾å¨ã®RISC-Vã®ææ°ç¶æ³ãä¼ããæ©ä¼ã«ãªã£ã¦ããã https:â¦