Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPから見たハードウェア制御 / Hardware control from PHP

PHPから見たハードウェア制御 / Hardware control from PHP

PHP Conference Japan 2021 の資料です。

関連リンク:

hak & tomzoh
https://www.youtube.com/c/haktomzoh

PHPerKaigi 2022
https://phperkaigi.jp/2022/

php-ym2151-player
https://github.com/hasegawa-tomoki/php-ym2151-player

Raspberry Pi 3 + PHP と Rasyberry Pi Pico + C で YM2151 を再生した時の速度比較
https://www.youtube.com/watch?v=iJo0vqBdqzI

tomzoh's hacking studio
https://www.youtube.com/channel/UCWYwP_tA7cXj85enscQj4gQ

概要:

私はこの数ヶ月、趣味プロジェクトとして、1990年代にアーケードゲームやハイエンドパソコンで輝きを放ったYAMAHAのFM音源チップ、YM2151を制御するためのハードウェアとソフトウェアの開発をしています。

こう言うと難しく聞こえるかもしれませんが、実はハードウェアの世界にも私たちソフトウェアエンジニアが「API」や「プロトコル」と呼びそうな決まりがあり、その決まりに従って音源チップに命令を与えることで音を鳴らすことができるのです。

このトークでは私が開発しているYM2151制御ハードウェア・ソフトウェアを題材に、コンピュータシステムの周辺ハードウェアがどの様に制御されるか、そしてその制御をソフトウェア的にどの様にするかを解説します。もちろん制御ソフトウェアはPHPで書いていますのでPHPerのみなさんであればスッと読めると思います。

このトークを通じてコンピュータシステムの動作について興味を持っていただく方が増えることを期待しています!

HASEGAWA Tomoki

October 03, 2021
Tweet

More Decks by HASEGAWA Tomoki

Other Decks in Technology

Transcript

  1. ௕୩઒ஐر ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ  GPSUFFKQ 8FCJ04ΞϓϦ։ൃ  :PV5VCFS  Ϗʔϧ

    ϨτϩήʔϜػ $16 ిࢠ޻࡞  αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ !UPN[PI
  2. $16

  3. ᶃ "Λ͔ʹ͢Δ 
 ʢΞυϨε σʔλʣ ᶄ ᶃ͔Β5"4ඵҎ্଴ͬͯ 
 d$4Λʹ͢Δ ᶅ

    d83Λʹ͢Δ ᶆ %ʙ%ʹΞυϨε͔ 
 σʔλΛग़ྗ͢Δ ᶇ σʔλॻࠐ׬ྃ 
 ʢ5") 5$8 588 5%4  
 5%8Λ֬อͯ͠d$4 d83Λ 
 ʹ͢Δʣ
  4. ϋʔυ΢ΣΞ੍ޚͷ଎౓ײ w 1)1FSͷࣗ෼ɺϋʔυ΢ΣΞͷ੍ޚʹ଎౓͕଍ΓΔ͔ 
 ௚؍తʹΘ͔Βͳ͍ w ݕূͯ͠ΈΔ w ԋ૗σʔλ7(. w

    '.Իݯνοϓͷೖྗʢిؾ৴߸ʣΛαϯϓϦϯάͨ͠΋ͷʢʂʣ w  TBNQMFTTFD w ඵؒʹ ճॻࠐ͕Ͱ͖Ε͹Ի͕໐ΒͤΔ
  5. ͳͥʮϑΝΠϧΛϝϞϦʹϚοϓʯ͢Δͷ͔ w 3BTQCFSSZ1J w $16"3.$PSUFY" w *0͕ϝϞϦۭؒʹϚοϓ͞Ε͍ͯΔ w ϑΝΠϧΛϝϞϦʹϚοϓ͢Ε͹ 


    ϑΝΠϧܦ༝ͰϝϞϦ*0Λ 
 ίϯτϩʔϧͰ͖Δ w ͜͏͍͏ઃܭΛʮϝϞϦϚοϓυ*0ʯͱ͍͏
  6. ͳͥʮϑΝΠϧΛϝϞϦʹϚοϓʯ͢Δͷ͔ w 3BTQCFSSZ1J w $16"3.$PSUFY" w *0͕ϝϞϦۭؒʹϚοϓ͞Ε͍ͯΔ w ϑΝΠϧΛϝϞϦʹϚοϓ͢Ε͹ 


    ϑΝΠϧܦ༝ͰϝϞϦ*0Λ 
 ίϯτϩʔϧͰ͖Δ w ͜͏͍͏ઃܭΛʮϝϞϦϚοϓυ*0ʯͱ͍͏
  7. ʢʣ$ݴޠ w 3BTQCFSSZ1J1JDP $ w $16͕શવҧ͏ͷͰࢀߟ·Ͱʜ 3BTQCFSSZ1J DPSF()[ 3BTQCFSSZ1J1JDP DPSF.)[

    IUUQTXXXZPVUVCFDPNXBUDI WJ+PWR#ER[* :PV5VCFʹಈըΛΞοϓͯ͋͠ΔͷͰڵຯ͋Δํ͸ฉ͍ͯΈ͍ͯͩ͘͞
  8. ʢʣ$ݴޠ w 3BTQCFSSZ1J1JDP $ w $16͕શવҧ͏ͷͰࢀߟ·Ͱʜ 3BTQCFSSZ1J DPSF()[ 3BTQCFSSZ1J1JDP DPSF.)[

    IUUQTXXXZPVUVCFDPNXBUDI WJ+PWR#ER[* :PV5VCFʹಈըΛΞοϓͯ͋͠ΔͷͰڵຯ͋Δํ͸ฉ͍ͯΈ͍ͯͩ͘͞
  9. ʢʣ$ݴޠ w 3BTQCFSSZ1J1JDP $ w $16͕શવҧ͏ͷͰࢀߟ·Ͱʜ 3BTQCFSSZ1J DPSF()[ 3BTQCFSSZ1J1JDP DPSF.)[

    IUUQTXXXZPVUVCFDPNXBUDI WJ+PWR#ER[* :PV5VCFʹಈըΛΞοϓͯ͋͠ΔͷͰڵຯ͋Δํ͸ฉ͍ͯΈ͍ͯͩ͘͞
  10. :.੍ޚʹ͓͚Δॲཧܥͱ଎౓ 3BTQCFSSZ1J WBOJMMB1)1 ࢮ͵΄Ͳ஗͍ 3BTQCFSSZ1J 1)1 FYUNNBQ ͪΐͬͱ஗͍ 3BTQCFSSZ1J1JDP $

    ωΠςΟϒ଎౓ 3BTQCFSSZ1J1JDP 1ZUIPO ΊͪΌΜ͜஗͍ 1)1͕஗͍ͱݴ͏ΑΓεΫϦϓτݴޠ͕஗͍͚͔ͩͳʜ