Slide 1

Slide 1 text

KOBA789 ͍ͭʹੜ࢈͕ऴΘ͚ͬͨͲ ;Ͱ·ͩ·ͩ༡ͼ͍ͨ ,FSOFM7.୳ݕୂ!౦ژ

Slide 2

Slide 2 text

KOBA789 ਫ༵೔·ͰΞϚκϯʹ͍ͯҰࡢ೔ؼ͖ͬͯ·ͨ͠ ‣ ࢓ࣄ ‣ 3VTUͰਓ޻Ӵ੕ͷϑϥΠτιϑτ΢ΣΞΛॻ͍ͨΓ ‣ झຯ ‣ /PEFKTͷຊॻ͍ͨΓʢڞஶʣ ‣ *46$0/࿅शαʔϏεΛ࡞ͬͨΓ ‣ :PV5VCFS׆ಈΛ΍ͬͨΓ΍Βͳ͔ͬͨΓ ‣ NJTTLFZJPͷ࠷దԽΛͪΐͬͱ΍ͬͨΓ IUUQTZPVUVCFDPN!LPCB IUUQTNJTTLFZJP!LPCB ʮISUCONʯ͸ɺLINEϠϑʔגࣜձࣾͷ঎ඪ·ͨ͸ొ࿥঎ඪͰ͢ɻhttps://isucon.net

Slide 3

Slide 3 text

lͥͬͱ͸ͪ·Δz lͥͬͺͪz w ೥ൃചͷCJU$16 w ࠓͰ΋ങ͑Δʢ੡଄தʣ w ͍ͭʹࠓ೥݄ੜ࢈ऴྃ w ઃܭ͸βΠϩάࣾ w ΊͪΌͪ͘ΌചΕܼͨ࡞ w ύοέʔδ͸%*1ϐϯ w ࠓ΋ੲ΋ϚχΞʹਓؾ w ΋͸΍ڭཆ ;ͱ͸

Slide 4

Slide 4 text

౰࣌ͷࣄ৘͸͋Γͭͭ΋؆ܿ w ిݯ͸୯Ұ7 w ৴߸͸ܭຊ w ΫϩοΫೖྗ w ΞυϨεઢຊ σʔλઢຊ w ϝϞϦ੍ޚ৴߸ຊ w $16੍ޚ৴߸ຊ w %."༻৴߸ຊ ΠϯλʔϑΣʔε https://www.zilog.com/docs/z80/um0080.pdf

Slide 5

Slide 5 text

$16͸͍͔ʹͯ͠ಈ͔͘ ͋Δ͍͸ϊΠϚϯܕܭࢉػͷ͘͢͝ద౰ͳઆ໌ w ΞυϨεόεͱσʔλόεΛ༻͍ͯ σʔλΛಡΜͩΓॻ͍ͨΓͰ͖Δ w ໋ྩ΋͜ΕΒͷόεܦ༝Ͱ30.ͱ͔ 3".͔ΒಡΈग़͢ w ֎෦ͱͷೖग़ྗ΋όεܦ༝ w ໋ྩͲ͓ΓʹόεΛಡΈॻ͖͢Δ ͜ͱ͕$16ͷશͯ CPU RAM IO ΞυϨεόε σʔλόε ͦͷଞ ඞཁͳ੍ޚ৴߸ ΩʔϘʔυͱ͔ ը໘ͱ͔ ROM

Slide 6

Slide 6 text

ͭ·Γɺ ܭࢉػͱ͸όε͕͢΂ͯͰ͋Δ ʢաݴʣ

Slide 7

Slide 7 text

;ͷڭՊॻతͳ࢖͍͔ͨ 4*0 1*0 $5$ͱ͍ͬͨपลճ࿏ϑΝϛϦ*$Λ઀ଓ͢Δ Z80 RAM ROM SIO PIO CTC ͦͷଞ ΩʔϘʔυͱ͔ ը໘ͱ͔ γϦΞϧ ௨৴ ύϥϨϧ ௨৴ λΠϚʔ

Slide 8

Slide 8 text

Ͱ΋ɺόε͕͢΂ͯͳͷͰ ʢաݴʣ

Slide 9

Slide 9 text

Ͱ΋ɺόε͕͢΂ͯͳͷͰ Z80 RAM ROM SIO PIO CTC ͦͷଞ ΩʔϘʔυͱ͔ ը໘ͱ͔ γϦΞϧ ௨৴ ύϥϨϧ ௨৴ λΠϚʔ

Slide 10

Slide 10 text

Ͱ΋ɺόε͕͢΂ͯͳͷͰ όεʹ઀ଓ͢ΔڊେͳԿ͔Ͱ͢΂ͯΛ୅ସͯ͠΋ߏΘͳ͍ Z80 RAM ROM SIO PIO CTC ڊେͳԿ͔ ΩʔϘʔυͱ͔ ը໘ͱ͔ γϦΞϧ ௨৴ ύϥϨϧ ௨৴ λΠϚʔ

Slide 11

Slide 11 text

·ͨͷ໊Λ3BTQCFSSZ1J1JDP w ࠷ۙྲྀߦͷϚΠίϯϘʔυ w ೥୅ͷٕज़ w 3". 30. *0౳ͷ໾Λԋ͡Δ w ;ͷඦഒ͘Β͍ੑೳ͕͍͍ w ;͸ϩϚϯ୲౰ w ࣗ༝ʹ࢖͑Δϐϯ਺͸ຊ ʮڊେͳԿ͔ʯ https://www.raspberrypi.com/products/raspberry-pi-pico/

Slide 12

Slide 12 text

·ͨͷ໊Λ3BTQCFSSZ1J1JDP w ࠷ۙྲྀߦͷϚΠίϯϘʔυ w ೥୅ͷٕज़ w 3". 30. *0౳ͷ໾Λԋ͡Δ w ;ͷඦഒ͘Β͍ੑೳ͕͍͍ w ;͸ϩϚϯ୲౰ w ࣗ༝ʹ࢖͑Δϐϯ਺͸ຊ ʮڊେͳԿ͔ʯ https://www.raspberrypi.com/products/raspberry-pi-pico/

Slide 13

Slide 13 text

౰࣌ͷࣄ৘͸͋Γͭͭ΋؆ܿ w ిݯ͸୯Ұ7 w ৴߸͸ܭຊ w ΫϩοΫೖྗ w ΞυϨεઢຊ σʔλઢຊ w ϝϞϦ੍ޚ৴߸ຊ w $16੍ޚ৴߸ຊ w %."༻৴߸ຊ ΠϯλʔϑΣʔε https://www.zilog.com/docs/z80/um0080.pdf

Slide 14

Slide 14 text

ຊ଍Βͳ͍

Slide 15

Slide 15 text

அࣺ཭ͷ͓࣌ؒͰ͢

Slide 16

Slide 16 text

ҙ֎ͱෆཁͳ৴߸͸ଟ͍  w */5 /.*ׂΓࠐΈؔ࿈ͷϐϯ ‎ׂΓࠐΈ࢖Θͳ͍ͷͰෆཁ w #64\32 "$,^%."ؔ࿈ͷϐϯ ‎%."͠ͳ͍ͷͰෆཁ w )"-5$16ͷ)"-5Λࣔ͢ϐϯ ‎ؾʹ͠ͳ͍ͷͰෆཁ w *032*0ཁٻΛࣔ͢ϐϯ ‎࢖Θͳ͍ͷͰෆཁ ඞཁͳϐϯΛݫબ https://www.zilog.com/docs/z80/um0080.pdf

Slide 17

Slide 17 text

ҙ֎ͱෆཁͳ৴߸͸ଟ͍  w .ϝϞϦཁٻ໋͕ྩϑΣον ‎۠ผ͠ͳ͍͍ͯ͘ͷͰෆཁ w 83ϝϞϦཁٻ͕ॻ͖ࠐΈ ‎3%Ͱͳ͚Ε͹83ͳͷͰෆཁ ඞཁͳϐϯΛݫબ https://www.zilog.com/docs/z80/um0080.pdf

Slide 18

Slide 18 text

ຊ࡟Εͨ ʢ·ͩຊ଍Βͳ͍ʣ

Slide 19

Slide 19 text

1J1JDPʹ৐ͬͯΔνοϓ w ຊདྷ(1*0͸ຊ w 1J1JDPͰ͸ຊ͕ෆࣗ༝ w (1*0Ϙʔυ্ͷ-&%ઐ༻ w (1*074:4ిѹܭଌઐ༻ w શ෦ͷϐϯ͕ࣗ༝ͳΒ଍ΓΔʂ 31 https://www.raspberrypi.com/products/raspberry-pi-pico/

Slide 20

Slide 20 text

ळ݄ిࢠ௨঎͕࡞ͬͨϘʔυ w νοϓ͸31 w 1J1JDPͱಉ͡ιϑτ͕ಈ͘ w (1*0͕ຊશ෦ग़ͯΔʂʂʂ "&31 https://akizukidenshi.com/catalog/g/gK-17542/

Slide 21

Slide 21 text

ͱ͜ΖͰɺ ;ͱ31͸௚݁ͯ͠ ͍͍ͷͰ͠ΐ͏͔ʁ

Slide 22

Slide 22 text

Z80 RP2040 ≤7*-≤ ≤7*)≤7$$ ≤70-≤ ≤70)≤ ௚݁0, ≤7*-≤ ≤7*)≤ ී௨ͷೖྗ յΕΔ ී௨ͷग़ྗ ≤7*-≤ 7$$≤7*)≤7$$  ಈ͔ͳ͍ ΫϩοΫೖྗ ≤70-≤ ≤70)≤7$$ ≤70-≤ ≤70)≤ ϨϕϧγϑλΛ ೖΕͯղܾ ͱͯ΋ࠔΔ

Slide 23

Slide 23 text

7ೖΕͯ΋ յΕͳ͍આ ໺൮ͳԾઆʢر๬ʣ

Slide 24

Slide 24 text

https://forums.raspberrypi.com/viewtopic.php?p=2092122#p2091977

Slide 25

Slide 25 text

https://forums.raspberrypi.com/viewtopic.php?p=2092122#p2091977 w ݪଇͱͯ͠ɺσʔλγʔτ௨Γʹઃܭ͢Δͷ͕͓͢͢Ί w σʔλγʔτ֎ͷ࢖͍ํ͸ࣗݾ੹೚Ͱ w ࣮͸΋͏ͪΐͬͱ޿͍ൣғͷిѹΛड͚෇͚ΒΕΔ w "%$ͷ͋Δϐϯ͸ɺ*07%% 7 ·Ͱʢ&4%μΠΦʔυ͕͋ΔͷͰʣ w "%$ͷͳ͍ϐϯ͸ɺ*07%%7ͷͱ͖7·Ͱ w ʮ7τϨϥϯτʯ͸7ʹ଱͑Δ͜ͱΛࢦ͢ͷͰɺ ͜Ε͸ʮ7τϨϥϯτʯͱ͸ݺ͹ͳ͍ w 7ˠ7ͷॱͰిݯ౤ೖ͞ΕΔΑ͋͘Δઃܭͩͱɺ ిݯ౤ೖ࣌ʹμϝʔδ͕ೖΔΑ w ࢓༷ҧ൓Ͱ΋͙͢ʹ͸յΕͳ͍͔΋͠Εͳ͍͕ɺ࣌ؒͱͱ΋ʹμϝʔδೖͬͯ յΕΔ͔΋Α

Slide 26

Slide 26 text

ʢ"%$ͳ͍ϐϯ͸ʣ 7ೖΕͯ ͍͍ͬͯʂ ʢ֦େղऍɾࣗݾ੹೚ɾյΕͯ΋ٽ͔ͳ͍ʣ

Slide 27

Slide 27 text

͜͜·Ͱ͸ংষ

Slide 28

Slide 28 text

࣌ؒͷ֨ಆͰԿΛͨ͠ͷ͔Λ͓࿩͠·͢

Slide 29

Slide 29 text

։ൃϘʔυͷ༷ࢠ όεͷ഑ઢΛ͢΂ͯखϋϯμ

Slide 30

Slide 30 text

1*01SPHSBNNBCMF*OQVU0VUQVU#MPDL 31ʹ౥ࡌ͞Ε͍ͯΔ*0ϓϩηοα w "SN$PSUFY. ͷσϡΞϧίΞ$16ͱ͸ผͷίϓϩηοα w ͱͯ΋੍ݶ͞Ε໋ͨྩηοτ w ໋ྩαΠΫϧʢܾఆ࿦తʣ w λΠϛϯάΫϦςΟΧϧͳॲཧ͕ಘҙ w ϝΠϯͷ$16ͱ͸'*'0Ͱ௨৴

Slide 31

Slide 31 text

ϝϞϦΛιϑτ΢ΣΞͰ࣮૷͢Δ 8"*5Λଈ࠲ʹΞαʔτ͢Δͷ͕େࣄ w ϝϞϦΞΫηεͷͱ͖ʹ͸.3&2৴߸͕Ξαʔτ͞ΕΔ w αΠΫϧ OT Ͱσʔλόεʹ͓ฦࣄͤͶ͹ͳΒͳ͍ w ιϑτ΢ΣΞ࣮૷Ͱؒʹ߹͏Θ͚ͳ͍ w ؒʹ߹Θͳ͍ͱ͖͸8"*5৴߸ΛΞαʔτͯ͠଴ͬͯ΋Β͏ w 8"*5৴߸΋αΠΫϧҎ಺ w ϝΠϯ$16Ͱ΍Δͱؒʹ߹Θͳ͍ͷͰ1*0Ͱ൓ࣹతʹΞαʔτ͢Δ wait 0 gpio 25 // MREQ(25)ͷཱͪԼ͕ΓΛ଴ͭ in pins, 27 side 0 // ΞυϨε౳ΛಡΈͭͭWAITΛΞαʔτ

Slide 32

Slide 32 text

ϝϞϦΞΫηεΛ͢΂ͯQSJOU͢Δ ͜Ε͸଍͠ࢉͷ݁Ռ͕ϝϞϦʹॻ͖໭༷ͤͨࢠ

Slide 33

Slide 33 text

Ͳ͏΍ͬͯ;༻ͷίʔυΛॻ͖ࠐΉ͔ RP2040 Z80 όε host ʁ

Slide 34

Slide 34 text

Ͳ͏΍ͬͯ;༻ͷίʔυΛॻ͖ࠐΉ͔ RP2040༻ͷۭؒ Z80༻ͷۭؒ Z80 όε host Arm༻σόοΨ (rust-dap) 48% $.4*4%"1 "SN༻σόοΨͰΞλονͯ͠ϝϞϦΛಡΈॻ͖͢Δ

Slide 35

Slide 35 text

γϦΞϧೖग़ྗΛͭ͘Δ ΍ͬͺΓ୺຤͸΄͍ͨ͠Ί w 31ʹ༨͍ͬͯΔϐϯ͸ͳ͍ w 6"35͸ు͚ͳ͍ w ࠔΓ·ͨ͠Ͷ

Slide 36

Slide 36 text

ʮ༨͍ͬͯΔϐϯ͸ͳ͍ʯ

Slide 37

Slide 37 text

ຊ౰ʁ

Slide 38

Slide 38 text

ळ݄ిࢠ௨঎͕࡞ͬͨϘʔυ w νοϓ͸31 w 1J1JDPͱಉ͡ιϑτ͕ಈ͘ w (1*0͕ຊશ෦ग़ͯΔʂʂʂ "&31 https://akizukidenshi.com/catalog/g/gK-17542/

Slide 39

Slide 39 text

ळ݄ిࢠ௨঎͕࡞ͬͨϘʔυ w νοϓ͸31 w 1J1JDPͱಉ͡ιϑτ͕ಈ͘ w (1*0͕ຊશ෦ग़ͯΔʂʂʂ "&31 https://akizukidenshi.com/catalog/g/gK-17542/ ·ͩ64#͕͋Δ

Slide 40

Slide 40 text

༨͍ͬͯΔίΞΛ64#୲౰ʹ೚໋ ϝϞϦΞΫηεΛअຐͤͣʹԾ૝γϦΞϧϙʔτΛ࣮ݱ Z80 Z80༻ ϝϞϦ RP2040 Core #1 RP2040 Core #0 PIO ίΞؒ '*'0 όε 64# 64# ୲౰ ϝϞϦ ୲౰ hello

Slide 41

Slide 41 text

ૉ๿ͳ.FNPSZNBQQFE*0ͷ࣮૷ 59Ϩδελ΁ͷॻ͖ࠐΈͩͬͨΒ'*'0ʹૹΔ if addr == REG_TX { fifo.write_blocking(data as u32); } else { ram[addr] = data; }

Slide 42

Slide 42 text

Ϛϯσϧϒϩू߹Λඳ͘͘Β͍͸Ͱ͖Δ (SBOUT#"4*$ͷ্Ͱ"4$**"35#"4Λ࣮ߦ

Slide 43

Slide 43 text

ͯ͞

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

ͱ͸ʁ

Slide 46

Slide 46 text

3VTUͷίʔυΛ ;޲͚ʹ ίϯύΠϧ͢Δͧʂ

Slide 47

Slide 47 text

3VTU͕αϙʔτ͢ΔϓϥοτϑΥʔϜ͸ଟ͍ --7.ͷύϫʔ͕ૉ੖Β͍͠ͱ΋͍͏ https://doc.rust-lang.org/nightly/rustc/platform-support.html

Slide 48

Slide 48 text

3VTU͕αϙʔτ͢ΔϓϥοτϑΥʔϜ͸ଟ͍ --7.ͷύϫʔ͕ૉ੖Β͍͠ͱ΋͍͏ https://doc.rust-lang.org/nightly/rustc/platform-support.html Ͱ΋;͸ͳ͍

Slide 49

Slide 49 text

ίϯύΠϥ࡞Γ·͠ΐ͏ ʢ࣌ؒͰʣ

Slide 50

Slide 50 text

࡞ઓ8"4.Λதؒݴޠʹͯ͠ίϯύΠϧ --7.ʹखΛಥͬࠐΉͷ͸ແཧա͗ΔͷͰ Rust WASM Z80 ASM SVTUD ͜ΕΛ ࡞Δ

Slide 51

Slide 51 text

8"4. 8FC"TTFNCMZ ͱ͸ ଟগͰ΋஌ͬͯΔਓ✋

Slide 52

Slide 52 text

8"4. 8FC"TTFNCMZ ͱ͸ ଟগͰ΋஌ͬͯΔਓ✋ ΈΜͳ஌ͬͯΔͩΖ͏ͱࢥͬͯ ͜͜͸ॻ͍ͯͳ͍ ࠓ೔͸8"4.ͷ࿩͢Δਓ͍ͳ͍Μ͚ͩͬʁ

Slide 53

Slide 53 text

8"4.͸ελοΫϚγϯͳͷͰૉ๿ʹ ͜ΕͳΒॻ͚ͦ͏

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

8"4.͸ελοΫϚγϯͳͷͰૉ๿ʹ

Slide 56

Slide 56 text

͕͢͞ʹ ࣌ؒͰ͸ Ͱ͖ͳ͔ͬͨ )FMMP 8PSME͘Β͍͸ಈ͘

Slide 57

Slide 57 text

https://github.com/channel789/wasm2z80 ଓ͖͸(JU)VCͰʢύον׻ܴʣ

Slide 58

Slide 58 text

Έͳ͞Μ΋ ίϯύΠϥ։ൃ͍ͨ͠Ͱ͢Ͷʁ

Slide 59

Slide 59 text

ྑ͍χϡʔεͱ ѱ͍χϡʔε͕͋Δ

Slide 60

Slide 60 text

ྑ͍χϡʔε

Slide 61

Slide 61 text

։ൃ༻ϘʔυΛ࡞Γ·ͨ͠ ਺ຕ͋ΔͷͰ͋ͱͰ൦෍͠·͢ʢഥखʣ

Slide 62

Slide 62 text

ѱ͍χϡʔε

Slide 63

Slide 63 text

࡞ͬͨϘʔυ͕ඍົʹಈ͔ͳ͍ શ͘ಈ͔ͳ͍Θ͚Ͱ͸ͳ͍͠ɺݸମ͝ͱʹ঱ঢ়͕ҧ͏ w Ϙʔυ"Ծ૝γϦΞϧ͕͔ͳΓසൟʹࢮ͵ w Ϙʔυ#Ծ૝γϦΞϧ͕كʹࢮ͵ɻ'MBTIʹॻ͍ͨίʔυ͕ӬଓԽ͞Εͳ͍ w Ϙʔυ$Ծ૝γϦΞϧ͕ͨ·ʹࢮ͵ɻσʔλ͕Խ͚ͯΔʢޙड़ʣ w Ϙʔυ%&·ͩՐΛೖΕͯͳ͍

Slide 64

Slide 64 text

ظ଴͞ΕΔڍಈ

Slide 65

Slide 65 text

ݱ࣮

Slide 66

Slide 66 text

͜ΕͰ΋΄͍͠ํ͸ ͓੠͕͚͍ͩ͘͞ ࠓ೔ͷ಺༰ΛϦΞϧλΠϜͰ։ൃ͍ͯͨ͠ɹɹɹ ༷ࢠͷΞʔΧΠϒ͸ͪ͜Βˠ :PV5VCF<;3VTU><ݕࡧ>