Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SMP Implementation on *BSD/MIPS

1,946 views

Published on

Published in: Technology
  • 20ページの「1時キャッシュ」は「一次キャッシュ」の誤りかと…
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

SMP Implementation on *BSD/MIPS

  1. 1. SMP IMPLEMENTATION ON *BSD/MIPS syuu1228
  2. 2. ∧ ∧ ( ω ) ≡ ( ≡ / ) (/ ∪
  3. 3. MIPS • MIPS RISC   •
  4. 4. MIPS • SGI   • DEC NEC   • Windows CE NINTENDO64 PS PS2 PSP   • 1999 RISC 1/3 MIPS   • ARM  
  5. 5. MIPS BSD • BSD MIPS NetBSD Mach   • NetBSD 1.2 1996 DECstation   • IIJ SEIL Juniper JunOS  
  6. 6. MIPS SMP • MIPS SMP SGI SGI Linux/MIPS BSD   • SoC   
  7. 7. MIPS •   • Broadcom SiByte SB-1 Cisco   • Cavium Networks OCTEON   • 2010   • RMI XLR Processor/XLS Processor • SONY PSP PSP CPU R4000×2 IO
  8. 8. BSD/MIPS SMP • SGI BSD SMP • NetBSD Octane2 64bit 64bit BSD OpenBSD OpenBSD • CPU
  9. 9. SMP • SMP SMP •
  10. 10. OCTANE2 • CPU: R12000 400MHz 2MB L2 x 2 • RAM: 1024MB • SCSI HDD • 100BASE-T Ethernet
  11. 11. BSD/MIPS SMP • CPU • MP • • • IPI • • • MP • MP , mutex •
  12. 12. CPU MP • CPU cpu_info • etc.. • MIPS extern struct cpu_info cpu_info_primary; #define curcpu() (&cpu_info_primary) • CPU cpu_info curcpu() MP
  13. 13. • volatile intrmask_t cpl; int splraise(int newcpl) { int oldcpl; __asm__ (" .set noreordern"); oldcpl = cpl; cpl = oldcpl | newcpl; __asm__ (" syncn .set reordern"); return (oldcpl); } • cpl cpu_info →curcpu()->ci_cpl • (><;;
  14. 14. • → • cpu_info • CPU •
  15. 15. MP , MUTEX • • spinlock • atomic MIPS LL/SC • • MUTEX • → • mtx_enter(), mtx_try_enter() •
  16. 16. • Q: extern int cnt; cnt++; • A: r0←cnt r1←r0 r2←r1 + 1 r0 ←r2 • CPU CPU • LL/SC
  17. 17. LL/SC r0←cnt 1: r1←r0 LL r2←r1 + 1 r0 ←r2 SC if (!r0) goto 1
  18. 18. • CPU •
  19. 19. IPI • cpu_unidle, signal, TLB shootdown • IPI: Inter-Processor Interrupt •
  20. 20. • • • • • • MP CPU •
  21. 21. MP • • →CPU TLB • TLB • →TLB Shootdown
  22. 22. '()*+, -./01 !"#$%& !!"#$%&'(&)*+,-. !"#$%&'(&)*+, . !2+345678 !-./019:;<= >?@ABCD7E >?@ABCD7E+ 35FG+'0HI !-./019"J# $AB !K:;<5=>? !"#$ !"#$%& L-./01/M !!"#$%&'(&)*+,-. !!"#$%&'(&)*+, . !"#$%&'/+!-!. 9NOP QRSTUC678V 2+34MY0678 !"#$ WXI Z[OPQRSTU !"#$%& C678VWXI !!"#$%&'(&)*+,-. 2+34V 2+34MY0678 Z[OPQRSTU C678VWXI C 8VWXI 2+345Y0678 !=>?AB@FG+ !=>?AB@FG+ bcde bcde "#$-]^@_9 !K:;<5=>? !K:;<5=>? `a !!"#$%&'(&)*+!,-!0!1 !!"#$%&'(&)*+ ,- 0 1 !!"#$%&'(&)*+!,-!0!1 $ ' )*+ !"#$-]^@_9 !"#$-]^@_9 `a `a fghi )G+j1k0Y^lmno 0.
  23. 23. • • • • • CPU
  24. 24. • • • • • → •
  25. 25. • VM syuu1228 BSD/MIPS SMP, Plan9, KVM, UNIX etc... , http://bit.ly/67BvV • KVM softlab KVM , Intel-VT, AMD SVM, http://bit.ly/lTFlw
  26. 26. • P2PSIP OverlayWeaver, Genkidama, DHT, P2P, , : http://bit.ly/phIp4 • , , ,

×