Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Interrupt Affinityについて
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takuya ASADA
June 28, 2014
Technology
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Interrupt Affinityについて
Takuya ASADA
June 28, 2014
More Decks by Takuya ASADA
See All by Takuya ASADA
僕のIntel NUCが起動しないわけがない
syuu1228
3
4.5k
Introduction to bhyve
syuu1228
1
460
OSv on bhyve
syuu1228
3
460
ruby-virtualmachine
syuu1228
0
310
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
syuu1228
2
910
10GbE時代のネットワークI/O高速化
syuu1228
14
8.9k
Play with UEFI
syuu1228
1
400
仮想化環境での利用者公平性
syuu1228
0
220
/proc/irq/<IRQ>/ smp_affinity
syuu1228
0
500
Other Decks in Technology
See All in Technology
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
290
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.6k
AIが実装を自走する時代の認知負債との戦い
lycorptech_jp
PRO
1
310
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
480
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.4k
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
230
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
280
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
1
220
穢れた技術選定について
watany
17
5.6k
Data + AI Summit 2026 イベントレポート: 「AIがビジネスで意思決定するデータ基盤」へ
nek0128
0
280
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
110
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
180
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
Making Projects Easy
brettharned
120
6.7k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
280
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Google's AI Overviews - The New Search
badams
0
1.1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
900
Transcript
Interrupt Affinity ʹ͍ͭͯ @syuu1228
Interrupt Affinity? ࠓ࣌ͷී௨ͷ1$ϚϧνίΞͰ͋Δ σόΠε̍ɿ*32̍ɿ$16͍ͬͺ͍ ͱ͍͏ؔʹͳ͍ͬͯΔ σόΠεͲ͜ʹׂΓࠐΜͰ͍Δͷʁ -JOVYͲͷ$16ʹׂΓࠐ·͍ͤͯΔͷʁ ˠ*OUFSSVQU"⒏OJUZ
Interrupt Affinityͷ ϢʔβΠϯλϑΣʔε
$ cat /proc/interrupts CPU0 CPU1 0: 36843 61973 IO-APIC-edge timer
1: 518 591 IO-APIC-edge i8042 8: 1 0 IO-APIC-edge rtc0 9: 387 321 IO-APIC-fasteoi acpi 12: 11236 79 IO-APIC-edge i8042 16: 0 0 IO-APIC-fasteoi uhci_hcd:usb6 17: 12 11 IO-APIC-fasteoi uhci_hcd:usb7 18: 0 0 IO-APIC-fasteoi uhci_hcd:usb8 19: 6531 235 IO-APIC-fasteoi ehci_hcd:usb2 20: 0 0 IO-APIC-fasteoi uhci_hcd:usb3 21: 85 69 IO-APIC-fasteoi uhci_hcd:usb4 22: 0 0 IO-APIC-fasteoi uhci_hcd:usb5 23: 20 15 IO-APIC-fasteoi ehci_hcd:usb1 40: 0 0 PCI-MSI-edge PCIe PME, pciehp 41: 0 0 PCI-MSI-edge PCIe PME, pciehp 42: 0 0 PCI-MSI-edge PCIe PME, pciehp 43: 33199 31756 PCI-MSI-edge ahci 44: 19 1583 PCI-MSI-edge eth0 45: 10 11 PCI-MSI-edge mei 46: 41104 59303 PCI-MSI-edge i915 47: 170268 708 PCI-MSI-edge iwlwifi 48: 78 77 PCI-MSI-edge snd_hda_intel NMI: 1406 1430 Non-maskable interrupts $16ຖͷׂΓࠐΈ౷ܭΛදࣔ /proc/interrupts
/proc/irq/*/smp_affinity ׂΓࠐΈઌ$16܈ΛϏοτͰࢦఆ͢Δ ͱɺࢦఆ͞Εͨ$16܈ʹϥϯυϩϏ ϯͰׂΓࠐ·ΕΔʢϏοτ͕୯ҰͳΒ ৗʹͦͷ$16ׂΓࠐΈʣ # cat /proc/irq/43/smp_affinity 3 #
echo 1 > /proc/irq/43/smp_affinity ͜ΕΛॻ͖͑ΔͱׂΓࠐΈઌ$16͕มΘΔ
LinuxͰͷσϑΥϧτ શ$16ͷϏοτ͕༗ޮʹͳ͓ͬͯΓɺ ͭͷׂΓࠐΈ͕શ$16ϥϯυϩ Ϗϯ͢Δ ϥϯυϩϏϯׂΓࠐΈʹରԠ͠ͳ͍1$ Ͱ͋Δ$16ݻఆతʹׂΓࠐΉ ʢDQV ʣ
/proc/irq/*/smp_affinity_list ώϡʔϚϯϦʔμϒϧͳTNQ@B⒏OJUZ # echo ff > /proc/irq/43/smp_affinity # cat /proc/irq/43/smp_affinity_list
0-7
/proc/irq/*/smp_affinity_hint σόΠευϥΠό͔ΒϢʔβϥϯυσʔ ϞϯʢJSRCBMBODFʣ͜ͷ*32ʹద ͳ$16NBTLΛ௨
irqbalance ඵ͝ͱʹγεςϜෛՙঢ়گΛνΣο Ϋɺ֤*32ͷTNQ@B⒏OJUZΛॻ͖͑ ͯ$16ෛՙΛެฏʹ͢ΔσʔϞϯ POFTIPUϞʔυͰىಈ࣌ʹదͱࢥ ΘΕΔΛTNQ@B⒏OJUZʹઃఆͯ͠ FYJU
MultiQueue NICͷׂΓࠐΈ $16ຖʹૹड৴ΩϡʔɺΩϡʔຖʹ .4*9ׂΓࠐΈΛ࣋ͭ ਖ਼͍͠TNQ@B⒏OJUZݻఆతʹܾ·ͬ ͍ͯΔ ෳ$16ࢄΒͯ͠ͳΒͳ͍ 47: 7602 0
0 0 0 3 23 0 PCI-MSI-edge p1p1-TxRx-0 48: 0 7602 0 0 0 0 13 12 PCI-MSI-edge p1p1-TxRx-1 49: 12 0 7605 0 0 0 10 0 PCI-MSI-edge p1p1-TxRx-2 50: 0 12 0 7602 3 0 10 0 PCI-MSI-edge p1p1-TxRx-3 51: 0 0 12 0 7602 3 10 0 PCI-MSI-edge p1p1-TxRx-4 52: 0 0 0 20 0 7602 13 0 PCI-MSI-edge p1p1-TxRx-5 53: 0 0 0 0 12 0 7612 3 PCI-MSI-edge p1p1-TxRx-6 54: 3 0 0 0 0 13 10 7602 PCI-MSI-edge p1p1-TxRx-7 55: 0 2 0 0 0 0 2 0 PCI-MSI-edge p1p1
ιʔείʔυ QSPDJOUFSSVQUT GTQSPDJOUFSSVQUTD QSPDJSR LFSOFMJSRQSPDD JSRCBMBODF IUUQTHJUIVCDPNJSRCBMBODF JSRCBMBODF
PCΞʔΩςΫνϟʹ͓͚Δ ׂΓࠐΈϧʔςΟϯά
PC্ͷׂΓࠐΈίϯϙʔωϯτ CPU Local APIC CPU Local APIC CPU Local APIC
ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
Local APIC $16ຖͷׂΓࠐΈίϯτϩʔϥɹׂΓࠐΈΛڐՄɾϚεΫ͠ ͨΓɺ&0*ͨ͠Γ γεςϜશମͰҰҙͳ"1*$*%Λ࣋ͭ ଞͷ-"1*$ׂΓࠐΊΔʢ*1**OUFSQSPDFTTPS*OUFSSVQU CPU Local APIC CPU
Local APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
LAPIC - Interrupt Command Register(ICR) 7FDUPSɿѼઌ-"1*$ͷϕΫλ൪߸ %FMJWFSZ.PEFɿׂΓࠐΈૹϞʔυ %FTUJOBUJPO.PEFɿѼઌϞʔυ %FMJWFS4UBUVTɿલճͷׂΓࠐΈͷૹঢ়گ 5SJHHFS.PEFɿϨϕϧτϦΨʗΤοδτϦΨ
%FTUJOBUJPO4IPSUIBOEɿѼઌͷϚεΫํࣜʢࣗ$16ΛϚεΫɾ ΞϯϚεΫͳͲʣ %FTUJOBUJPO*%ɿѼઌ
ιʔείʔυ *$3 BSDIYJODMVEFBTNJQJI
σʔλγʔτ *OUFMBOE*" "SDIJUFDUVSFT4PGUXBSF %FWFMPQFS.BOVBMT *OUFSSVQU$PNNBOE 3FHJTUFS *$3
ิɿx2APIC -"1*$*%ैདྷCJU͕ͩͬͨɺίΞͷ૿ՃʹΑ ΓϏοτ͕Γͳ͘ͳͬͯ͠·ͬͨͷͰCJU ϏοτΛՃ ͜ΕʹͬͯɺҎ߱Ͱղઆ͢Δ֤ϨδελͰͷׂΓ ࠐΈઌ-"1*$ࢦఆϑΟʔϧυͷΞυϨε෯Ϗοτ Ճ͞Εͨ
σʔλγʔτ *OUFM"SDIJUFDUVSFY"1*$4QFDJpDBUJPO (-044"3:
I/O APIC ݶΒΕͨຊͷཧׂΓࠐΈઢΛ֤1$*σόΠεͰڞ༗ ʢ1$*FʹཧׂΓࠐΈઢແ͘ɺϝοηʔδϯάʹΑͬͯ*0"1*$ܦ༝ׂΓࠐΈΛ ΤϛϡϨʔτʣ ֤*32ΛͲͷ-"1*$సૹ͢Δ͔Λఆٛ͢Δ3FEJSFDUJPO5BCMF ʢ*0"1*$্ͷϨδελ܈ʣΛ࣋ͭ 1$*σόΠε*0"1*$Λ௨ͯ͡-"1*$ׂΓࠐΈϝοηʔδΛૹ৴ CPU Local
APIC CPU Local APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
I/O APIC - REDIR_TBL 7FDUPSɿѼઌ-"1*$ͷϕΫλ൪߸ %FMJWFSZ.PEFɿׂΓࠐΈૹϞʔυ %FTUJOBUJPO.PEFɿѼઌϞʔυ %FMJWFSZ4UBUVTɿલճͷׂΓࠐΈͷૹঢ়گ *OUFSSVQU*OQVU1JO1PMBSJUZɿׂΓࠐΈϐϯͷۃੑ 3FNPUF*33ɿࣗಈతʹ&0*͢Δ͔Ͳ͏͔
5SJHHFS.PEFɿϨϕϧτϦΨʗΤοδτϦΨ .BTLɿׂΓࠐΈϚεΫ %FTUJOBUJPO*%ɿѼઌ
ιʔείʔυ 3&%*3@5#- BSDIYLFSOFMBQJDJP@BQJDD
σʔλγʔτ *OUFM*0$POUSPMMFS)VC *$) 'BNJMZ%BUBTIFFU 3&%*3@5#-3FEJSFDUJPO 5BCMF
ϨΨγσόΠε ϨΨγσόΠε͔ΒͷׂΓࠐΈΛ1$*-1$CSJEHFͰ1$*ม 1$*σόΠεಉ༷ʹ*0"1*$Λ௨ͯ͡-"1*$ׂΓࠐΈϝοηʔ δΛૹ৴ ޓੑͷͨΊ"ʹଓ͞Ε͍ͯΔͱࢥΘΕΔ CPU Local APIC CPU Local
APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
8259A PIC লུʢ·ͩͬͯ·͕͢ɺ͏Θͳ ͍Ͱ͠ΐ͏ʣ
MSI(-X) capable PCI devices ֤σόΠε͕ҙͷͷ*32Λ࣋ͯΔ ֤*32ͷׂΓࠐΈઌ-"1*$1$*σόΠεͷ1$* $POpHVSBUJPO4QBDFʹ࣋ͭ 1$*σόΠε-"1*$ׂΓࠐΈϝοηʔδΛૹ৴ CPU Local
APIC CPU Local APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
MSI Capability on PCI configuration space Device ID Vendor ID
… Reserved Cap. Pointer … Capability x CAP ID(x) Next Pointer … Capability y CAP ID(yy) Next Pointer … MSICTL CAP ID(D0h) Next Pointer MSIAR MSIDR
MSI Capability - MSICTL লུʢ.4*༗ޮɺCJUɺෳׂΓࠐ Έ༗ޮͳͲͷϑΟʔϧυʣ
MSI Capability - MSIAR %FTUJOBUJPO.PEFɿѼઌϞʔυ 3FEJSFDUJPO)JOUɿMPHJDBMNPEFˍ -PX1SJͰͷSFEJSFDUJPOΛ༗ޮԽ %FTUJOBUJPO*%ɿѼઌ
MSI Capability - MSIDR 7FDUPSɿѼઌ-"1*$ͷϕΫλ൪߸ %FMJWFSZ.PEFɿׂΓࠐΈૹϞʔυ %FMJWFSZ4UBUVTɿׂΓࠐΈঢ়گ 5SJHHFS.PEFɿϨϕϧτϦΨʗΤο δτϦΨ
MSI-Xͷ߹ লུʢϑΟʔϧυ͕֦ு͞Εͯࢁׂ ΓࠐΈ͕࣋ͯΔ͕ɺΈಉ͡ʣ
ιʔείʔυ .4* 9 $BQBCJMJUZ BSDIYLFSOFMBQJDJP@BQJDD
σʔλγʔτ *OUFM$IJQTFUBOE*OUFM $IJQTFU .4*$5-.4*$POUSPM 3FHJTUFS .4*"3.4*"EESFTT 3FHJTUFS .4*%3.4*%BUB3FHJTUFS
֤ํࣜͰڞ௨ͳཁૉ ҎԼͷࡾͭͷϑΟʔϧυͰѼઌ͕ࢦఆ ͞ΕΔ %FTUJOBUJPO.PEF %FMJWFSZ.PEF %FTUJOBUJPO*%
ׂΓࠐΈઌͷࢦఆํ๏ 1IZTJDBM%FTUJOBUJPO.PEF %FTUJOBUJPO'JFMEʹ"1*$*%Λࢦఆ ʮৗʹಉ͡$16ׂΓࠐΈʯΛ࣮ݱ -PHJDBM%FTUJOBUJPO.PEF 'MBU.PEFM %FTUJOBUJPO'JFMEͷCJUͰѼઌ-"1*$܈ͷൣғΛදݱ %FMJWFSZ.PEF 'JYFE
ࢦఆൣғͷશͯͷ-"1*$ׂΓࠐΈ -PXFTU1SJPSJUZ ࢦఆൣғͷதͰɺ࠷513ʢ5BTL1SJPSJUZ3FHJTUFSʣͷ͕ ͍$16ׂΓࠐΈ
Logical Destination Mode (Cluster Model) Y"1*$ͷ߹ɺ CJU$MVTUFS*% CJU-PHJDBM*% 'MBU.PEFMʹൺͯଟ͘ͷ$16Λ αϙʔτͰ͖Δ
Lowest Priority Mode ࢦఆൣғͷதͰɺ࠷513ʢ5BTL 1SJPSJUZ3FHJTUFSʣͷ͕͍-"1*$ ׂΓࠐΈ ୠ͠ɺ-JOVYͰಈ࡞தʹ513Λߋ৽͠ͳ ͍ˠશ-"1*$ͷ513શͯಉ͡ ࠷খͷ513Λ࣋ͭ-"1*$͕ෳ͋Δ ߹ϥϯυϩϏϯͰ̍ͭબ
σʔλγʔτ *OUFMBOE*""SDIJUFDUVSFT4PGUXBSF%FWFMPQFS .BOVBMT *OUFSSVQU$PNNBOE3FHJTUFS *$3 1IZTJDBM%FTUJOBUJPO.PEF -PHJDBM%FTUJOBUJPO.PEF -PXFTU1SJPSJUZ%FMJWFSZ.PEF *OUFM"SDIJUFDUVSFY"1*$4QFDJpDBUJPO
-PHJDBM%FTUJOBUJPO3FHJTUFS *OUFM*0$POUSPMMFS)VC *$) 'BNJMZ%BUBTIFFU "VUPNBUJD3PUBUJPO.PEF &RVBM1SJPSJUZ%FWJDFT 4QFDJpD3PUBUJPO.PEF 4QFDJpD1SJPSJUZ
echo 1 > /proc/irq/<IRQ>/ smp_affinityͨ࣌͠ʹԿ͕ى͖Δͷ͔ .4*ͳ1$*FσόΠεͰ͔֬ΊͯΈΔ *OUFM1SP FF 1$*$POpHVSBUJPO4QBDFSPPUͳΒ
TZTCVTQDJ͔ΒಡΊΔ ˠϢʔβϥϯυ͔ΒಡΊΔ ˠ͔ͯ͠͠ɿMTQDJ
# lspci -vvvv -s 00:19.0 00:19.0 Ethernet controller: Intel Corporation
82567LM Gigabit Network Connection (rev 03) Subsystem: Lenovo Device 20ee Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 44 Region 0: Memory at f2600000 (32-bit, non-prefetchable) [size=128K] Region 1: Memory at f2625000 (32-bit, non-prefetchable) [size=4K] Region 2: I/O ports at 1840 [size=32] Capabilities: [c8] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME- Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0300c Data: 41b9 Capabilities: [e0] PCI Advanced Features AFCap: TP+ FLR+ AFCtrl: FLR- AFStatus: TP- Kernel driver in use: e1000e Kernel modules: e1000e ͘ృͬͨॴ͕.4*ͷϑΟʔϧυ͕ͩɺ͜Εͩ ͱಡΊͳ͍ͷͰMTQDJΛGPSLͯ͠.4*ϑΟʔϧ υΛදࣔ͢ΔπʔϧΛ࡞ IUUQTHJTUHJUIVCDPN
# gcc -lpci msireg.c! # ./a.out 00:19.0! Message Signalled Interrupts:
64bit+ Queue=0/0 Enable+! address_hi=0! address_lo=fee0300c dest_mode=logical redirection=lowpri dest_id=3! data=41b9 trigger=edge level=assert delivery_mode=lowpri vector=185 -PHJDBMNPEFͰ-PXQSJɺEFTUJEɺ WFDUPSʹͳ͍ͬͯΔ # echo 1 > /proc/irq/44/smp_affinity! # ./a.out 00:19.0! Message Signalled Interrupts: 64bit+ Queue=0/0 Enable+! address_hi=0! address_lo=fee0100c dest_mode=logical redirection=lowpri dest_id=1! data=41b9 trigger=edge level=assert delivery_mode=lowpri vector=185 EFTU@JE͕ʹॻ͖Θͬͨ
Affinityηοτ࣌ͷΧʔωϧͷڍಈ γεςϜάϩʔόϧͳ%FTUJOBUJPO.PEFͱ %FMJWFSZ.PEFͷઃఆΛอ࣋ ʢBQJDJSR@EFTU@NPEF BQJDJSR@EFMJWFSZ@NPEFʣ "⒏OJUZηοτ࣌ʹ͜ͷΛࢀরɺ%FTUJOBUJPO *%ͱซͤͯॻ͖ࠐΉ OBUJWF@DPNQPTF@NTJ@NTH BSDIYLFSOFMBQJDJP@BQJDD
OSॳظԽ࣌ͷׂΓࠐΈϞʔυઃఆ ڥʹΑͬͯҟͳΔυϥΠόΛ༻ BSDIYLFSOFMBQJDBQJD@qBU@D YBQJD@DMVTUFSD YBQJD@QIZTDʜ BQJD@qBUʢඇYBQJDϞʔυʣ %FMJWFSZ.PEF-PX1SJ %FTUJOBUJPO.PEF-PHJDBM BQJD@QIZTqBUʢඇYBQJDϞʔυ
$164ʣ %FMJWFSZ.PEF'JYFE %FTUJOBUJPO.PEF1IZTJDBM BQJD@YBQJD@QIZTʢYBQJDϞʔυ "$1*Ͱ1IZTJDBMϞʔυࢦఆʣ ಉ্ ϥϯυϩϏϯׂΓࠐΈͰ͖ΔڥҰఆ݅Λຬͨͨ͠߹ͷΈ
*OUFMBOE*""SDIJUFDUVSFT4PGUXBSF %FWFMPQFS.BOVBMT *OUFM*0$POUSPMMFS)VC *$) 'BNJMZ %BUBTIFFU *OUFM"SDIJUFDUVSFY"1*$4QFDJpDBUJPO *OUFM$IJQTFUBOE*OUFM$IJQTFU MJOVY%PDVNFOUBUJPO*32B⒏OJUZUYU 6OEFSTUBOEJOHUIF-JOVY,FSOFM
SE&EJUJPO 1$*-PDBM#VT4QFDJpDBUJPO3FWJTJPO ࢀߟࢿྉ
ࠓ·Ͱʹ·ͱΊͨࢿྉ ࠷ۙͷ1$ΞʔΩςΫνϟʹ͓͚ΔׂΓࠐΈϧʔςΟϯάͷΈ QSPDJSR*32TNQ@B⒏OJUZͷॻ͖͑Ͱ1$*ίϯϑΟάϨʔ γϣϯۭؒͲͷΑ͏ʹॻ͖ΘΔ͔ QSPDJSR*32TNQ@B⒏OJUZ *OUFSSVQUTPOYW ϋΠύʔόΠβͷ࡞ΓํʙͪΌΜͱཧղ͢ΔԾԽٕज़ʙୈ̐ճ* 0ԾԽʮׂΓࠐΈฤɾͦͷ̍ʯ