SOFTWARE IMPLEMENTATION OF THE IEEE 802 11A/P PHYSICAL LAYER IEEE 802.11A/P PHYSICAL LAYER
SDR`12 – WInnComm Europe SDR 12 WInnComm Europe 27 29 June, 2012 Brussels, Belgium
- T. Cupaiuolo, D. Lo Iacono, M. Siti and M. Odoni
SOFTWARE IMPLEMENTATION OF THE IEEE 802 11A/P PHYSICAL LAYER IEEE - - PowerPoint PPT Presentation
SOFTWARE IMPLEMENTATION OF THE IEEE 802 11A/P PHYSICAL LAYER IEEE 802.11A/P PHYSICAL LAYER SDR`12 WInnComm Europe SDR 12 WInnComm Europe 27 29 June, 2012 Brussels, Belgium T. Cupaiuolo, D. Lo Iacono, M. Siti and M. Odoni Advanced
2
3
customizable distributed reconfigurable data-path
d‐unit mesh d‐memory
customizable coarse-grain hardware
embedded memory
d‐unit bank routing d memory bank instruction memory d‐instruction scheduler memory management
scheduler and dispatcher
fetch & decoding b‐instruction execution data‐port registers space
dispatcher
system bus interface data port
4
d‐unit mesh d‐memory d‐unit bank routing y bank instruction memory
b-instruction are also used
d‐instruction scheduler memory management
are also used to set the way d-instruction will access the memory bank b-instruction
fetch & decoding b‐instruction execution data‐port registers space
memory bank execution unit
system bus interface data port
register file
5
d‐unit mesh d‐memory
bank of static memories for vector allocation processing units performing parallel and
d‐unit bank routing d memory bank instruction memory
routing mesh pipelined vector processing
d‐instruction scheduler memory management
d instruction routing mesh dynamically configuring unit-memory and unit-unit
fetch & decoding b‐instruction execution data‐port registers space
d-instruction scheduling unit a d u t u t connections
system bus interface data port
6
arith0.mul v0 comm0.ed v7 v1 v3 arith1.mul arith2.sub comm1.qt arith3.mul v8 v9
macro made by t ll l
v2 v4 v5 v6
two parallel branches each performing pipelined i
9 ith3 l( 1 6) arith0.mul comm0 ed
processing among different units parallel and pipelined processing to reduce execution time and memory
v9 = arith3.mul(comm1,v6) comm1.qt(arith2,v5) v8 = arith2.sub(v4,arith1) v7 = comm0.ed(arith0,v3) arith0.mul(v0,v1); arith1.mul i h2 b comm0.ed
y accesses
arith1.mul(v0,v2) arith2.sub comm1.qt arith3.mul
7
v0
macro #0
v2
macro #1
v3
macro #2
v1
macro #0 macro #0 macro #1 macro #2 macro #1 macro #2 conflicts on shared memory access f li memory access inhibit a full pipelined processing use of memory alias (ping-pong mechanism) at intermediate stage of processing
v0
macro #0
r0
macro #1
r1
macro #2
v1
macro #0 macro #1 macro #0 macro #1 macro #0 macro #1
8
macro #2 macro #2 macro #2
macro #0 macro #1 macro #0 macro #1 macro #0 macro #1
function
macro #1 macro #2 macro #1 macro #2 macro #1 macro #2
OFDM symbol #1 OFDM symbol #2 function #1 function #2 function #3 function #1 function #2 function #3
OFDM #1 OFDM #2 OFDM #3 OFDM #4 function #1 function #1 OFDM #1 OFDM #1 OFDM #2 OFDM #2 OFDM #3 OFDM #3 OFDM #4 OFDM #4 function #3 function #3 function #2 function #2
9
encoder puncturer+ interleaver mapper upsampling/ filtering D/A source bits IFFT channel FFT equalizer de‐map de‐int d t Viterbi d di filter decoded b A/D q p de‐punct decoding channel synchronizer bits / discard pilot and virtual sub‐carriers estimation synchronizer 802.11p: data -aided channel estimation
10
channel estimation
11
Time Domain Least Square CE initial CE received sequence (FFT) LTS based
IFFT time‐domain filtering FFT
Data‐aided previous CE
Time Domain Data‐aided
updated CE HDD previous CE Time Domain Least Square CE received sequence (FFT)
FFT equalizer de‐map de‐int de‐punct Viterbi decoding filter channel estimation synchronizer recursive update: processing bottleneck which does not allow estimation
N N 1
11a bottleneck which does not allow to build a pipeline as for 802.11a
N‐1 N N‐2 N+1 N N‐1
symbol processing time
11p
N N N N+1 N+1 N+1 N N+1
13 symbol processing time
FFT equalizer de‐map de‐int de‐punct Viterbi decoding filter channel estimation synchronizer function 11a/g (clock cycles) 11p (clock cycles) filter 162 h i 1536 (l t ) synchronizer 1536 (latency) FFT (iFFT) 200 (radix-4) channel estimation 64 (@LTS) 759 (data-aided, hard-detection) equalizer 64 de-mapper 348 (MCS #7) de-interleaver / de-puncturer 408 (MCS #7) OFDM symbol single-thread (@250MHz) 1432 (5.7s) 2150 (8.6s) OFDM symbol multi-thread (@250MH ) 596 (2.4s) 1490 (5.9s)
14
(@250MHz) ( ) ( )
15