MIMD Shared Memory

17
MIMD Shared Memory Multiprocessors

description

MIMD Shared Memory. Multiprocessors. MIMD -- Shared Memory. Each processor has a full CPU Each processors runs its own code can be the same program as other processors or different All processors access the same memory Same address space for all processors UMA Uniform Memory Access - PowerPoint PPT Presentation

Transcript of MIMD Shared Memory

Page 1: MIMD  Shared Memory

MIMD Shared Memory

Multiprocessors

Page 2: MIMD  Shared Memory

MIMD -- Shared Memory Each processor has a full CPU Each processors runs its own code

– can be the same program as other processors

or different All processors access the same memory

– Same address space for all processors– UMA Uniform Memory Access

» all memory accessible in same time for every processor

– NUMA Non-Uniform Memory Access» memory is localized

» each processor can access some memory faster than other

Page 3: MIMD  Shared Memory

MIMD - SM - UMA

PROCESSORS

MEMORY

MODULES

CONNECTION

Page 4: MIMD  Shared Memory

Options for Connection -- UMA Bus

– Sequential, can be used for one message at a time Switching Network

– Can send many messages at once» depends on connection scheme

– Crossbar» Maximal connections» expensive

– Omega (also called Butterfly, Banyan)» several permutations of proc-mem possible

Page 5: MIMD  Shared Memory

Bus

Needs smart local cache schemes to reduce bus traffic

Works for low number of processors Depending on technology 20-50 processors

overloads bus, performance degrades Common on 4, 8 processor SMP servers

Page 6: MIMD  Shared Memory

Bus

Cache

Processors

Bus

Memory

Page 7: MIMD  Shared Memory

Crossbar switch

Every permutation of processor to memory can work

Expensive N*M switches where

where N = number of processors,

M = Number of memory modules

Page 8: MIMD  Shared Memory

Processors

Memory

Switches

Crossbar switch

Page 9: MIMD  Shared Memory

Omega Network

Every Processor Connects to Every Memory Many, but not all, permutations possible An Extra stage adds redundancy and more

permutations Number of switches = (N/2) log N

» For N processors, N memory modules

Number of stages = log N (determines latency)

Page 10: MIMD  Shared Memory

Omega Network

Processors

Memory

Page 11: MIMD  Shared Memory

Omega Network

000001

010011

100101

110111

000001

010011

100101

110111

Destination = 101

Page 12: MIMD  Shared Memory

Omega Network -- A Permutation

000001

010011

100101

110111

000001

010011

100101

110111

Destination = 101

Page 13: MIMD  Shared Memory

Omega Network with combining

Smart Switches– combine two requests with same destination– make memory accesses equivalent to serial sequence– split return values appropriately

Time trade-off Used in NYU Ultra-computer

– also in IBM RP3 experimental machine Example: Fetch and Increment

Page 14: MIMD  Shared Memory

Omega Network

000001

010011

100101

110111

000001

010011

100101

110111

Destination = 101

Page 15: MIMD  Shared Memory

Options for Connection -- NUMA

Each Processor has a segment of memory closer than others– Could be several different levels of access

All Processors still use same address space Omega network with wrap around

– BBN Butterfly Hierarchy of Rings (or other switches)

– Kendall Square Research KSR-1– SGI Origin series

Page 16: MIMD  Shared Memory

Hierarchical Rings

DirectoryNodes

ComputeNodeTo higher level

ring

Page 17: MIMD  Shared Memory

Issues for MIMD Shared Memory

Memory Access– Can reads be simultaneous?– How to control multiple writes?

Synchronization mechanism needed– semaphores– monitors

Local caches need to be coordinated– cache coherency protocols