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...

24
M32R Linux SMP

Upload: others

Post on 18-Oct-2020

2 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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

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

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

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

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

Linux Conference 2004Linux Conference 200424

•– NPTL (Native POSIX Threading Library)

•––