Upload
thu-vien
View
32
Download
0
Embed Size (px)
Citation preview
Trng i hc Bch Khoa H Ni Vin in T Vin Thng
111
H Ni, 5-2014
1
Kin trc my tnh
Kin trc MultiProcessors
GVHD: Thy gio Nguyn Tin Dng Vin in t Vin thng H BKHN
Nhm sinh vin:
Tng Thin V Nguyn Vn T
Nguyn Kim Sn Lp KSTN TVT k55
2
Ni dung trnh by
1. Tng quan
2. Multi processors
3. Thit k phn cng 4. Thit k phn mm 5. Nhn xt
3
1. Gii thiu chung
Single processor: h thng my tnh ch c duy nht mt n v x l.
Multiprocessor: h thng my tnh c nhiu n v x l.
Cc n v x l chia s b nh v cc thit b ngoi vi
Multi-core processor: l mt trng hp c bit ca multiprocessor.
Tt c cc processors u nm trong cng mt die duy nht trn motherboard.
4 Kin trc multiprocessor 8/12/2014
1. Gii thiu chung
Kin trc tng qut ca
Single-core
5 Kin trc multiprocessor 8/12/2014
1. Gii thiu chung
Kin trc tng qut ca multi-core processor
6 Kin trc multiprocessor 8/12/2014
2. Multi processor
2.1. Multi-core processor.
2.2. L do la chn multi-core processor?
2.3. Cc m hnh b nh trong multiprocessor
2.4. Cc xung t v cch khc phc.
7 Kin trc multiprocessor 8/12/2014
2.1. Multi-core processors
8 Kin trc multiprocessor 8/12/2014
2.1. Multi-core processors
9 Kin trc multiprocessor 8/12/2014
2.2. Ti sao li la chn multi-core ?
Vi Single Core:
Kh khn trong vic tng tn s xung nhp ln cao.
su pipeline cng ln dn n: Nhit ta ra t b x l rt cao
Kh khn v tn km trong vic thit k v ch to
Nhu cu chy song song nhiu ng dng
Trong mi ng dng li c nhiu cng vic cn c x l ng thi
10 Kin trc multiprocessor 8/12/2014
2.3. Cc m hnh b nh trong multiprocessor
Cc n v x l s dng chung mt b nh.
11 Kin trc multiprocessor 8/12/2014
2.3. Cc m hnh b nh trong multiprocessor
Mi mt n v x l s hu ring mt vng nh v ni dng trong l c lp
12 Kin trc multiprocessor 8/12/2014
2.4. Xung t v cch khc phc
13 Kin trc multiprocessor
2.4.1. Cc vn xung t
2.4.2. Gii php khc phc
8/12/2014
2.4.1. Cc vn xung t
14 Kin trc multiprocessor
H thng private caches
Lm th no d liu trong cc caches nht qun vi nhau?
8/12/2014
2.4.1. Cc vn xung t
15 Kin trc multiprocessor
Core 1 v Core 2 c gi tr x t main memory
8/12/2014
2.4.1. Cc vn xung t
16 Kin trc multiprocessor
Core 1 ghi gi tr x mi vo main memory.
Lc ny x c gi tr 21660 trong main memory
8/12/2014
2.4.1. Cc vn xung t
17 Kin trc multiprocessor
Tuy nhin lc ny, gi tr x trong core 2 vn l 15213
=> D liu khng nht qun trong cc case v main memory
8/12/2014
2.4.2. Gii php khc phc
18 Kin trc multiprocessor
Invalidation:
Khi mt core ghi d liu ln memory, th tt c cc bn sao ca d liu ny trn cc caches khc s b mt hiu lc.
Snooping:
Tt c cc core lin tc theo di, gim st (snoop) ng bus kt ni gia cc core.
8/12/2014
2.4.2. Gii php khc phc
19 Kin trc multiprocessor
Core 1 ghi gi tr mi ca x l 21660, ng thi gi bn tin invalidation ln ng bus
8/12/2014
2.4.2. Gii php khc phc
20 Kin trc multiprocessor
Sau qu trnh invalidation, core1 v main memory c gi tr x mi l 21660, gi tr x trong core 2 b xa.
8/12/2014
2.4.2. Gii php khc phc
21 Kin trc multiprocessor
Phng php thay th invalidation protocol l s dng update protocol
8/12/2014
3. Thit k phn cng
3.1. Gii thiu v FPGA.
3.2. Gii thiu v SOPC.
3.3. Kin trc NIOS II.
3.4. Thit k Multiprocessor.
3.4.1. Processor.
3.4.2. Memory.
3.4.3. Cc Module khc
22
3.1 Gii thiu v FPGA
Cng ngh FPGA (Field Programable Gate Array)
23
1. Cc khi logic
2. Cc lin kt kh trnh
3. Khi giao tip vo ra.
Cu trc bn trong ca mt chip FPGA
3.1 Gii thiu v FPGA
24
KIT DE1 (Development Education) Altera Corporation
3.2. Gii thiu v SOPC.
Mn hnh lm vic ca SOPC Builder 25
Mn hnh lm vic chnh
Component Library
Custom Sytem
Message Box
3.3. Gii thiu v NIOS II
Kin trc NIOS II 26
4.3. Thit k phn cng
NIOS II Processor. CPU1
CPU2
Memory. On Chip Memory
SDRAM Controller
Mutex.
Jtag-uart.
Performance counter
27
Multiprocessor DualProcessor
Shared Resource
4.3. Thit k phn cng
S khi ca h thng 28
Processor 1 Processor 2
Shared Memory
MUTEX Qun l truy nhp
Shared Mem
Performance Counter
Jtag-uart In d liu ra
mn hnh Console
4.3. Thit k phn cng
Cu hnh Nios II Processor
29 MultiProcessr
Chip Nios II/e RISC 32 bit
600-700 logic block
3.3. Thit k phn cng
Onchip Memory
30 MultiProcessr
RAM
4Kbytes Data width
32
3.3. Thit k phn cng
Mutex
Qun l truy nhp Memory Shared
CPU no chim c (LOCK)
Mutex th c ghi vo Memory
Shared
31 MultiProcessr
3.3. Thit k phn cng
Performance Counter Unit
o c thi gian thc hin ca h
thng
Gm nhiu counter ty chnh
ca ngi thit k.
32 MultiProcessr
4. Thit k phn mm
4.1 NIOS 2 IDE
4.2 Cc th vin trong NIOS 2 IDE
4.3 So snh hiu sut 1 nhn vi 2 nhn
4.4 Nhn ma trn
4.5 Bin i DCT
33
4. Thit k phn mm
4.1 NIOS 2 IDE
34
S khi NIOS 2 IDE
4. Thit k phn mm
4.2 Cc th vin trong NIOS 2 IDE
Th vin chung: Math.h, Stdio.h
Cc th vin ring:
Io.h
System.h
Alt_types.h
altera_avalon_performance_counter.h
altera_avalon_mutex.h
35
4. Thit k phn mm
4.2 So snh hiu sut 1 nhn vi 2 nhn
tng c bn l thc hin chng trnh prog_1 trn tng nhn 1 v thc hin song song trn 2 nhn
Chng trnh s o thi gian thc hin trn 1 nhn v thc hin song song trn 2 nhn v a ra kt qu so snh
36
4. Thit k phn mm
4.3 So snh hiu sut 1 nhn vi 2 nhn Prog_1: int prog_1 (int x, int y) { int result = 0; int i; for (i = x; i
4. Thit k phn mm
38
Start
x = 100y = 200
Reset flag = 0
CPU 0
Start
*Cpu0_start = 1
CPU 1
*Cpu1_start?
Start_mesuring*Cpu0_start = 1
*s1 = (x+y)/2+1, *s2 = yR0 = prog_1(x, (x+y)/2)
*Cpu1_done?
*Cpu0_start?
r1 = prog_1((x+y)/2, y)*R1 = r1
*Cpu1_done = 1
EndR = R0 + *R1Stop_mesuring
End
Start
x = 100y = 200
Start_mesuringResult = prog_1(x,y)
Stop_mesuring
End
CPU 0
1 CPU 2 CPU
4. Thit k phn mm
4.3 So snh hiu sut 1 nhn vi 2 nhn true result !!!
--Performance Counter Report--
Total Time: 0.0020119 seconds (100595 clock-cycles)
+---------------+-----+-----------+---------------+-----------+
| Section | % | Time (sec)| Time (clocks)|Occurrences|
+---------------+-----+-----------+---------------+-----------+
|one cpu | 61.5| 0.00124| 61842| 1|
+---------------+-----+-----------+---------------+-----------+
|two cpus | 38.3| 0.00077| 38481| 1|
+---------------+-----+-----------+---------------+-----------+
kt qu so snh hiu sut 1cpu vi 2cpus
39
4. Thit k phn mm
4.4 Nhn ma trn
i vi php nhn ma trn, do cc php tnh gi tr tng s ca ma trn tch l c lp vi nhau
chia i khi lng tnh ton cho 2 cpu thc hin cng 1 lc
40
Start
M1[10][10]M2[10][10]
Reset flag = 0
CPU 0
Start
*Cpu0_start = 1
CPU 1
*Cpu1_start?
Start_mesuring*Cpu0_start = 1
*m1 = M1, *m2 = M2
*Cpu1_done?
*Cpu0_start?
For (i = 5 to 9) For(j = 0 to 9) Tnh R1(i,j)
*r1=R1*Cpu1_done = 1
End
For (i = 5 to 9) For(j = 0 to 9) R(i,j) = *r1(i,j)Stop_mesuring
End
For (i = 0 to 4) For(j = 0 to 9) Tnh R(i,j)
Start
M1[10][10]M2[10][10]
Start_mesuring
CPU 0
For (i = 0 to 9) For(j = 0 to 9) Tnh R(i,j)
Stop_mesuring
End
CPU 0 CPU 1CPU 0
1 CPU 2 CPU
4. Thit k phn mm
4.4 Nhn ma trn True Result !!! --Performance Counter Report-- Total Time: 0.203229 seconds (10161455 clock-cycles) +---------------+-----+-----------+---------------+-----------+ | Section | % | Time (sec)| Time (clocks)|Occurrences| +---------------+-----+-----------+---------------+-----------+ |1cpu | 60.1| 0.12210| 6105144| 1| +---------------+-----+-----------+---------------+-----------+ |2cpus | 39.9| 0.08112| 4056023| 1| +---------------+-----+-----------+---------------+-----------+
kt qu so snh tnh ma trn thut ton song song
41
4. Thit k phn mm
4.4 Bin i Cosine ri rc
42
, =() ()
(, )
( + )
( + )
=
=
4. Thit k phn mm
43
2 CPU lm vic cng gii quyt bi ton DCT
4. Thit k phn mm
44
Qu trnh chy Kt qu
So snh hiu nng
5. Nhn xt
3 Bi ton chy thnh cng: Tnh tng ca mt dy s.
Nhn 2 Ma trn.
Bin i Cosine ri rc DCT cho mt khi d liu 8*8
Hiu nng ci thin ca mi bi ton c trnh by chi tit phn trn.
45
5. Nhn xt
Kt qu Xy dng thnh cng kin trc
Multiprocessor (Harware - Sofware) gm 2 Nios Processor
chy v so snh mi bi ton gia 2 kin trc Single Processor v DualProcessor.
Gii quyt c cc vn lin quan n xung t gia vic chia s ti nguyn.
46
Kt thc
Cm n thy gio v cc bn lng nghe!
Demo trn KIT DE1 Altera
Q&A
47