m32rb b¦b|b b¨bvb~bpb;b1 linux smpbfb·b b¦b1 s-]lc.linux.or.jp/lc2004/slide/cp-09s.pdf · 1. 1m...
Embed Size (px)
TRANSCRIPT
![Page 1: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/1.jpg)
M32RLinux SMP
† ‡ † † † †
†
‡
![Page 2: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/2.jpg)
Linux Conference 2004Linux Conference 20042
•• M32R• Linux/M32R
••
• Linux/M32R
![Page 3: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/3.jpg)
Linux Conference 2004Linux Conference 20043
•––
M32R Linux SMP
• CPU
•
![Page 4: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/4.jpg)
Linux Conference 2004Linux Conference 20044
M32R
• M32R– 32 RISC
–•
– M32R
![Page 5: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/5.jpg)
Linux Conference 2004Linux Conference 20045
M32R• M32700
–CPU : 2• Dual-issue• 7stage pipe
– SRAM: 512KB– :
• 8KB• 8KB
–TLB: • 32• 32 Satoshi Kaneko, et al.: “A 600 MHz single-chip multiprocessor
with 4.8 GB/s internal shared pipelinedbus and 512 kB internal memory,” ISSCC Digest of
Technical Papers, pp. 254–255 (2003).
Shared SRAM(512KB)
CPU0 CPU1Peripherals
PLL
D-CacheData
I-CacheData
Deb
uggi
ng I/
FI-CacheTAG
D-CacheTAG
I-TLBD-TLB
Data pathMAC
M32R CPU Core Chip Photomicrograph
![Page 6: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/6.jpg)
Linux Conference 2004Linux Conference 20046
M32R
• M32R
–•
– CPU IPI: Inter-Processor Interrupt
• CPU
–• CPU
![Page 7: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/7.jpg)
Linux Conference 2004Linux Conference 20047
Linux/M32R SMPSMP•
–•••
• CPU– CPU
•– CPU
![Page 8: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/8.jpg)
Linux Conference 2004Linux Conference 20048
•–
CPU
•==1:<=0:
–
– 1–
LOCK/UNLOCK
==0
-1
Yes
No
Yes
No<=0
![Page 9: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/9.jpg)
Linux Conference 2004Linux Conference 20049
–•• LMbench Local Communication latencies 10%
1 : mvfc r5 , pswclrpsw #0x40 # disable int.lock r4 , @r0 # addi r4 , # 1 # unlock r4 , @r0 # mvtc r5 , pswbnez r4 , 2f
.subsection 1
.text .lock2 : ld r4 , @r0 #
blez r4 , 2b # bra 1b
1 : mvfc r5 , pswclrpsw #0x40 # disable int.lock r4 , @r0 # addi r4 , # 1 # unlock r4 , @r0 # mvtc r5 , pswbeqz r4 , 3f
2 : ld r4 , @r0 #blez r4 , 2b # bra 1b
3 : XXX ##
atomic op.
critical region
busy loop
atomic op.
busy loop
critical region
.previousXXX #
#
![Page 10: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/10.jpg)
Linux Conference 2004Linux Conference 200410
• CPU– CPU
••• TLB
– CPU (IPI)
1. IPI 2.3.
4.
IPI
IPI
IPI
CPU#i CPU#j
![Page 11: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/11.jpg)
Linux Conference 2004Linux Conference 200411
•– CPU
–BSP IPIAP
1.BSPLinux
2.BSP APIPI
3.AP
AP#1 IPI
AP#nIPI
IPI IPI
IPI
Idle loop
CPU#0 (BSP) CPU#1 (AP#1) CPU#n (AP#n)
Idle loop
IPI
BSP: Bootstrap ProcessorAP: Application Processor
![Page 12: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/12.jpg)
Linux Conference 2004Linux Conference 200412
• LMbench–OS
• Bandwidth benchmarks–
• Latency benchmarks–
–• CPU: M32700 (single-chip-multiprocessor)• freq: CPU 200MHz, BUS 100MHz• OS: Linux-2.4.25, Linux-2.6.4 UP/SMP• Benchmark: LMbench 3.0-a3
![Page 13: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/13.jpg)
Linux Conference 2004Linux Conference 200413
- LMbench UP vs. SMP–SMP–UP SMP 10% 20%
Linux-2.4 Linux-2.6
![Page 14: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/14.jpg)
Linux Conference 2004Linux Conference 200414
- LMbench 2.4 vs. 2.6––2.6 2.4
Uni-Processor Multi-Processor
![Page 15: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/15.jpg)
Linux Conference 2004Linux Conference 200415
• NPB: NAS Parallel Benchmark––MPI–
• CPU: M32700 (CPU : 2)• freq: CPU 200MHz, BUS 100MHz• OS: Linux-2.4.19 SMP• MPI: MPICH 1.2.5 ch_shmem• Benchmark: NPB 2.4
–• EP, MG, CG, IS, LU, SP, BT• CLASS=S
![Page 16: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/16.jpg)
Linux Conference 2004Linux Conference 200416
–2 2•
• NPB: NAS Parallel Benchmark
![Page 17: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/17.jpg)
Linux Conference 2004Linux Conference 200417
• Linux/M32R M32R GNU/Linux– Linux/M32R SMP
• SMP• M32R
–• LMbench, NPB• SMP•
![Page 18: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/18.jpg)
![Page 19: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/19.jpg)
Linux Conference 2004Linux Conference 200419
Linux/M32R
![Page 20: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/20.jpg)
Linux Conference 2004Linux Conference 200420
Linux/M32R• Linux/M32R
– M32R GNU/Linux–
• 2000– Linux– GNU (GCC, Binutils, glibc) – M32R ( )
•– Linux Conference 2002– Ottawa Linux Symposium 2003– The 3rd Asia Open Source Software Symposium (2004)
![Page 21: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/21.jpg)
Linux Conference 2004Linux Conference 200421
Linux/M32R - -
•– 2.4 Linux 2.4.26 UP/SMP– 2.6 Linux 2.6.6 UP/SMP
• MMU
– Linux Kernel Mailing List
• GNU– FSF GCC 3.4, binutils 2.15
•– Debian– deb
![Page 22: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/22.jpg)
Linux Conference 2004Linux Conference 200422
(CRT)
(100BASE-TX)
FPGA
Mappi-IIM3A-ZA36)
(Wireless LAN,Wired LAN)
MP
MitsubishiServer
AR Camera
MTD
X server
FrameBuffer
(10BASE-T)
MMU-less
OAKSOAKS32R
(LCD)(CRT/LCD)Display
(100BASE-TX)(10BASE-T)Network (Ethernet)
MP
M3T-M32700UT
USB
CF
MPDevice Driver
MappiPlatform
T-Engine http://www.renesas.com/jpn/products/mpumcu/tools/tengine/tem32r.htmlServer http://www.mitsubishielectric.co.jp/news-data/2003/pdf/1008.pdf
![Page 23: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/23.jpg)
Linux Conference 2004Linux Conference 200423
Linux/M32R• Web
http://www.linux-m32r.org/– Linux/M32R–
•• GNU•etc.
–––
![Page 24: M32RB B¦B|B B¨BvB~BpB;B1 Linux SMPBfB·B B¦B1 s-]lc.linux.or.jp/lc2004/slide/CP-09s.pdf · 1. 1m > ¥b b¨bvb~bpb ipi bu1m > 2. > ¥b b¨bvb~bpb* bm1 bbb " !¢ 3. > ¥b b¨bvb~bpb2](https://reader036.vdocuments.net/reader036/viewer/2022090606/605beae1e182b226e90bcf42/html5/thumbnails/24.jpg)
Linux Conference 2004Linux Conference 200424
•– NPTL (Native POSIX Threading Library)
•––
•