Title: ???????(Chip Multi-Processor,CMP)????????????????????,?????????
1????????????
2????
- ??????
- ???
- ????
- ??
- ???
- ???
- ??
3 ???????
4?????????
- ???????(Chip Multi-Processor,CMP)?????????????????
???,????????? - ??????????,CMP????????????
- CPU?????????
- ????Cache????CPU????????????Cache,???????????,???
???????????? - ???????????CPU????????????Cache,??CPU????????????
?????????? - ???????????
5????
- ????,????????????????????????????????????????,????
???,???????????????,?????????????,???????????????,
????????????????,?????????????????????????,??????
??????????????????????????????????????,???????????
??????????????????????
6?????????
- CMOS???????
- ????CMOS?????????????????,????
- ????CMOS???????????????
7- ??????f,??v,??Pow
- f???v v??,f???????????(f ????v???)
8- Pow???f?v,??f???,??v2????
9- ??
- ????????????????????????????(IPC Instruction
Per Clock)??????? - ????? ?? x IPC
- ??????????x ?? x ?? x ??
- ??? ??? ???IPC ??? ??
- ?????????? ??????
- ????? ??? IPC
10- A100MHz?3v???
- B50MHz?1.5v???
- C50MHz?3v????
??,C????CPU????
??50MHz???????,?? ??B?? ??,??CPU???????? ?????????
?? Pow cf3
11Pow cf3--????
- A?PowA c(100M)3
- B? PowB c(50M)3
- ??????
- B?????,?????A???,??
- B????(??X??)?A?25.
- B?????????,??????????????????????????
- ????????
- ??2?B??CPU????, ????A???????,????A?1/4.
12- ??CPU??,???1MHz,??1?
- ??CPU??,?????KMHz,???K3??
- ??CPU??,??????,?????????2??
- ?? ??CPU?????????LMHz???CPU?
13- ?K1.26,??CPU???CPU?????
- ?????????????,??L???1.26, ??CPU???????CPU??
- ??L??????????1.4?
- ????CPU???1.4??1.6,???
14- ??????????????????????????????,??????????????????
??????
15- 1985?,??????80386DX,?????????80387???,????????????
???? - 80486??80386?80387????8KB????????????????????,8048
6???????????????
16- ?????????????????IBM?IBM?2001??????RISC???POWER4,?
???64?PowerPC??????????????,???????????????????UNI
X????,????HP?Sun????2004?2??3??????PA-RISC8800?Ult
raSPARC IV????????
17- ?????????????????,??????Niagara?8??????,Sun???????
???Niagara 2????IBM?Cell???,???1?PowerPC???8??????
??Cell ??????????,????PS3??????????3D?????????????
??
18IA??????????
- ????????????????????,??IA?????????????
- AMD?????64?????,??????????????????????2005?4?,
????????????????D???????840?AMD???????????(Opteron
)???(Athlon) 64 X2????? - 2006?5?,????????????Xeon??????????Dempsey???????6
5??????,?5030?5080??????2.67GHz?3.73GHz????????6??
,???????Woodcrest(Xeon 5100??)???????????D??????,?
???????80,?????20?
19- ???7?23?,???????(Core)???????????2006?11?,????????
??????????????(Xeon)5300??????????????? - ????????????,???????????????40,??????40?
- ????,7?24?,AMD?????????Athlon64 X2?????????
20- ??????????????????????,?????????????????,???????
???????????50???????????????AMD???Barcelona?????
,??????????95?? - ??????????????????????????????????,?????????????
??????????????????????????????????????????????????
???????????????????CD??????????,?????????????????
?????,?????????,??????,??????????????? - ??????????,??????????,????????
21- Intel????????Core???,??Intel???x86???????,????????
???????,?????Core????
22???????????
- ???????(Chip Multi-Processor,CMP)?????????????????
???,????????? - CMP????????????(??????????????)
- ??????,???????????,??Intel?AMD????????,???????????
- ??????,????????????,??????????????????,IBM?????
?????????Cell???????????????
23????????
- ????????
- ????????
- ??????????
- ????????
- ?????????
- ????????
- ??,????????
24?????
- ????????????
- ???????
- ??????
- ????????
25??????
- ????????
- ??CPU??
- ?????
- ??????
- ????????
- ?????????
26?????????
27Pentium?????????
28????????????
29???????????
30Intel??( Core 2 Duo)
31- ???????36bit??????48bit???????,???????????,2?????4
MB?????????????????,???EM64T?SSE4??????,??14??????
,??32KB???????32KB??????,??2?????????????????????
?4???????,???????????????,????????????5?X86??,??7?
???,??????????????3?????,??5?????,??3?64bit??????
?(ALU)?2?128bit???????(FPU)?3?128bit?SSE?????????
????????,???????????,?????????????????????????????
,?????????????,???????????????????
32Core 2 ??????
33?????
- INTEL CORE DUO
- ???????????????
- ???????????????
- ?????????????L1
- 32K ?? and 32K ??
- ???????L2
- 2MB 8-way set associative 64-byte line size
- 10 clock cycles latency Write Back update
policy
- AMD Opteron
- ??1M ?? L2
- CPU0 and CPU1 ?? SPQ ??
- EXE
34????
35????? vs. ??
- ?????
- ?????????????????
- ????????
- ???????
- ??
- ?????????????
- ?????????????
- ?????????
- ??????
36????
37????????
CU
EU
CU
EU
CU
Cache
Cache
????????
????????
CU
EU
CU
EU
CU
EU
CU
CU
EU
CU
Cache
Cache
Cache
Cache
?????
????????
38???????
39?????,??????
40?????????
Processor
Front Side Bus
High-Speed I/O
North Bridge / MCH
(??)
Low-Speed I/O
South Bridge / ICH
(??)
41Pentium D with 975X Chipset
Core 1 L2 Cache (for Core 1)
Core 0 L2 Cache (for Core 0)
1066 / 800 MHz FSB
Inter-Core Bus Interface
DDR2 Memory
Memory Controller Hub
PCI Express x16
or
2 PCI Express x8
DMI (2 GB/s)
I/O Controller Hub
6 USB 2.0
6 PCI
High-Definition Audio
4 Serial ATA Ports
6 PCI Express x1
Intel Matrix Storage
BIOS Support
Intel Pro 1000 LAN
42???????
43????? (Instruction-Level Parallelism, ILP)
- ???????????,??????????????????????????????????????
????? - ????????
- ???????,?????????????????,??????????,
- ????????????????????(????????),???????
- ?????????????????,???????????????
- ?????????????????
44????? (Thread Level Parallelism, TLP)
- ????????????????????????,??????????????????,??????
?????? - TLP?????????????????????????????,????????????????
???????????????????,??????????,????????? - ?????????????????????(web???,??????)
- ??????????????????TLP
- ????????????????TLP
- ??,??????,TLP???????????????????? ?
45???????????????
- ??????????????
- ??????MIMD?????????????(???),??????????(???)
- ??????????????????????????
46?????(Simultaneously Multithreading SMT)
- ???????????????????
- ???????????????
- ?????????????????????,??????????????
47????????
- ????(????)
- ????(?????)
- ??????
- ??????????
48???????????
- ????????????????????
- ??????????????????
- ????????????????
49????????????????????(?)
CPU ??
CPU ??
CPU ??
????
????
????
????
Cache
????
Cache
????
Cache
(b) ??????
(a) ????
CPU ??
CPU ??
CPU ??
CPU ??
????
????
????
????
????
Cache
????
Cache
????
Cache
(c) ?????
(d) ??????
50????????????????????(?)
CPU ??
CPU ??
????
????
????
????
Cache
(e) ??Cache ???????
CPU ??
CPU ??
CPU ??
CPU ??
????
????
????
????
????
Cache
????
Cache
(f) ??????????????
51???????????????
- ????????????????????????,???,????????????????,????
????????????????????,?????????????????????????????
??????????? - ????????????????????????????????????(??),?????????
?????,??,??????????????????
52???????????????
???????????????
53???????????????
- ???????????CPU ??,????????????.
- ??????????????????????,??????????????
54????????????????
- ??????????????????,???????????????????????????????
?????????,????????????????????????? - ???????????????????????????????(memory caching)
??????(thread priority) ??
55???????
- 2005??IBM???????????Cell??? ?
- ???????PS3???X360????,???????????????????Cell?????
1???Power?????(PPE)?8?SIMD???(SPE),??1?????(EIB)??
?? ?
56???????(?)
- PPE??1?64???????????????????,??????4????2???,?????
??????SPESPE??1???????(SPU)?1????????(MFC)???????
?SPU?1???SIMD???256KB??????128?????MFC?1?DMA??MMU
????,????????????????????,???????SPU??PPU????,????
????,?SPU?????,??????????DMA???EIB??PPE?SPE???I/O,
?1??????4?128????????,2????????2??????,??????????3
???????????
57Cell??
58???????(?)
- Cell??????8???????SIMD???SPE,????EIB??????????????
,???????????????????????????????,3.2GHz???????????
???????201GFLOPS,?Intel??????4???????25.6GFLOPS???
???????????????????????????????,??????????????????
????,Cell??????????????????????,PPE?SPE????????,??
?????????????????,?????????????????
59???????????
- ???????????????????????flash????,?????????????????
????????? - ????????????????????,?????????,???????????????????
?,???????????????
60???????????(?)
- BIOS(Basic Input/Output System)
- ?????????????????,???????????????,????????????????
????? - BIOS???CPU????????????,?IBM?????????????????
- ???????????POST(Power On Self Test)????????(???le
gacy ??????)? - ??????BIOS?flash?PROM??EPROM?????????,??????,???,?
?,??,???????????,???????BIOS????????????????,?????
???? - ????EFI(Extensible Firmware Interface,???????)????
?????????
61???????????(?2)
- EFI(???????)
- ??????????????????
- EFI???????????????????????????????
- EFI????????????????,?????????????????
- Framework????????,??EFI?????????,?????????BIOS?
62EFI??????
- ?Framework?????????
- BSP(boot strap processor),??EFI??????,??APIC??,???
????????,??????AP? - AP (application processor),??????????,AP??????????
??,?????BSP??Startup??? - Framework??????????????
- SEC???????????,???????????????????????
- PEI??????????,???????DXE?
- DXE???????????????,?????????????????????
- BDS??????????,??????????????
- ???????????????,EFI?????????????????
63?????????????
64??????
- ??????????????????????????????????????????????????
?? - ???(efficient)????,?????
- (?CPU???????,???????????)
- ???????,??????????????
- ???(convenience)????,????
65??????
- ??????(??)??????
- ??????
- ?????OS?MS-DOS? Windows???OS/2?SCO UNIX? Linux??
- ??????
- Unix?Linux?Windows 2000/2003 server
- ???????
- ???????
66??????????
67????????
- ???????
- ???????????PAD??????????????????????,?????????????
????????????? - ???????
- ?????????????????,?????????
- ??(??)???????
- ?????????????????(MP)?????????????????????????????
(MPP)?????,????????????????????????,??I/O??,??????
???,??????????,??????????? - ?????????????????
- ???????,?????????????,??Client/Server?????????????
???,????????????,???????????
68The First Windows
- In 1983,Microsoft released the Windows 1.0 as
a new user-friendly operation system. - From then on, Windows developed and changed
all the World. - At the same time, Microsoft introduced a
low-cost Mouse, with the price of 195.
69Netscape
- In1993,Silicon Graphics founder Jim Clark
collaborates with Marc Andreessen to create an
Internet browser called Netscape.
70GUI OS Besides Windows
Perq
Star
Alto
Lisa
Visi On
71GUI OS Besides Windows
Macintosh
Windows for IBM PC
GEM icon/desktop
Window System X
Apple II
72GUI OS Besides Windows
Macintosh II
Amiga 100
GEM
Arthur
73GUI OS Besides Windows
OS/2 1.10 Standard Edition
NeXT Computer
GS/OS
PG-GEOS
Amiga Workbench 2 for A3000
74GUI OS Besides Windows
OS/2 version2.0
Amiga Workbench 3
Photon microGUI
BeOS
75GUI OS Besides Windows
OS/2 Warp 4
New Deal Office 2.5
Mac OS X Server(R)
MacOS 8 (L)
76GUI OS Besides Windows
RISC OS 4
Aqua
LindowsLive! 4.5 (L)
CDE based on AIX(R)
77New era of Windows System
Windows 3.0
Windows 3.0
Windows 3.0
Windows 2.0
Windows 2.0
78New era of Windows System
Windows 3.0
Windows 3.1
79New era of Windows System
Windows 3.1
Windows for Workgroups 3.1
80New era of Windows System
Windows 95 uses FAT16 as its File System.
Windows 95
81New era of Windows System
Windows NT 3.1/3.51
Windows NT 4.0
82Windows 98
- In 1998, Microsoft introduces Windows 98 with
universal plug and play capabilities .
Windows98
In Windows 98, Microsoft start to support FAT32
File System, which allow a partition larger than
2GB. Windows 95 and Windows NT 4.0 dont support
FAT32.
83Windows 98
Windows98 without IE
84New Milepost of Windows
- In 2000, Microsoft released Microsoft Windows
2000 - Windows 2000 based on NT architect, version
after Windows NT 4.0, also called Windows NT 5.0. - Windows 2000 support
- both FAT32 and NTFS.
85Windows XP
- In 2001, Microsoft released Windows XP, alias
Windows NT 5.1 - Windows XP is a new operate system that enhanced
users experience a lot. The XP comes from the
word of eXPerience. - Windows XP upgrade from
- Windows 2000
- Professional.
86?????????????
- ?????
- ???????????????????????????????
- ?????????????CMP??????????,?????????????????,?????
??????????????? - ??????????????????,????????,??????????????????????
?,??????????? - ??????
- ?????????
- ?????
- ?????
- ?????
87?????
- ????,??????
- ????,???????????,??????????????????????????????,?
??????????,?????????????????????????,???????????,?
??????FTP???Web????????????,??????????????????????
??????,???????????????????????????????????,???????
??,?????????
88????????
??CPU
89? ? ? ?
- ??????
- ?????????
- ????
- ??????
90 ??????
- ????????????????????????
- ?????????????????????
- ????????????????
- ????????????????,??????????????
- ????????????????????????????????,???????????
91????--?????
- ????(Parallel Computing)
- ????(High-end Parallel Computing)
- ?????(High Performance Computing)
- ????(Super Computing)
- ???????????????????????
- ????????????,??????????,?????????????????,????????
???????????????????,?????????????????,????????????
???,???????????????????
92????????
- ???? ??????????????????????????????????.
- ? ???2000??8??????Mandelbrot???(Mandelbrot???????
?)
93???????
?? 2
?? 1
???????,???? ???????,???? ???????????? ???,?
???????? ??????
???????????? ?????????,? ???????????, ?????CPU????
? (??????)??? ????????????
94?????????????
95?????????????
96?????????--????
97??????????
- ????????????????
- ????????????,?????????????????
- ????????????,??????????????.
98?????????? ---???????
- ?? ???????????????
- ????
- ????
- ????
- ????
- ???????????????
- ?? ???
- ??? ??????(??)
- ??? ??????(310?)
- ???? ??????(??)
- ??? ????
99????????
??????????
GFLOPS
100???????
- ???????????
- ?????????????????
- (????????????)???????????????
101????????? -----????!
102????
- ????????????
- ?????????,??????????(??????????)
- ?????????,????????????,???????????(????)
103?????????
- ????????????
- ??(node)
- ????(interconnect network)
- ?? (memory)
?????????
??????????
104????????
- ???????(memory wall)???????
- ??????cache????cache(L2 cache)?
- ?????????cache????cache(L1 cache)?
- L1 cache??CPU????L2 cache,????L2 cache??????????
105????????(?)
- cache????????????cache??????????????
- ??????(direct mapping strategy)
- ????????????????cache??
- K-???????? (K-way set association mapping
strategy) - Cache????V??,????K?cache???,????????????????,?????
,?????????????cache?? - ??????? (full association mapping strategy)
- ?????????cache??????cache??
106?????????
- UMA(Uniform Memory Access)??
- ????????????
- ?????????????????
- ???????,????????????,?????????
- ????CPU???????????
- ??I/O???????,??????????????
- NUMA(Non-Uniform Memory Access)??
- ????????????,????????????????
- ?????????????,?????????????????????????3???
- ???????,??????????????
- ????CPU??????????? (cache)
- ??I/O???????,???????????
107?????????(?)
- COMA(Cache-Only Memory Access)??
- ???????????????,???????????????
- ???????????D???????????
- COMA?????????????2???????
- ??COMA?,???????????,?????????????????????
- NORMA(No-Remote Memory Access)??
- ??????????
- ????NORMA????????????
- ?DSM?,NORMA?????
108?????????(?2)
109??????
- SIMD????????
- ?????SIMD??(PRAM??)
- ?????SIMD??(SIMD??????)
- MIMD????????
- ??PRAM??
- BSP??
- LogP??
- C3??
110SIMD????????
- SIMD??????(PRAM??)
- PRAM-EREW (Exclusive-Read and Exclusive-Write),???
??????? - PRAM-CREW (Concurrent-Read and Exclusive-Write)
,???????????? - PRAM-CRCW (Concurrent-Read and Concurrent-Write)
,????????? - ??
- ????????????????
- ????,??????????????????????????????????????
- ?????????????????????????
- ????????????????????????
111SIMD??????
- ?????????SIMD??,???SIMD-LC
- ???????SIMD??,???SIMD-MC
- ???????SIMD??,???SIMD-TC
- ???????SIMD??,???SIMD-MT
- ???????SIMD??,???SIMD-CC
- ????????SIMD??,???SIMD-CCC
- ?????????SIMD??,???SIMD-SE
- ???????SIMD??,???SIMD-BF
- ???????????SIMD??,???SIMD-MIN
112MIMD??????PRAM??
- APRAM??
- ???????????????????????
- ????????????????
- ?????,????????????????
- ????????????????????????????(?)?(Synchronization
Barrier) - ???????????????????
- APRAM????????
- ???,?????????????????????
- ????,?????????????,???????????
- ???,???????????????????????
- ??,????????????,??????????????????????????????
113MIMD??????BSP??
- ?????????????????,??????????????????????
- ???/?????(???????)
- ??????????????????
- ???????L?????????
- ??
- ??????????,???????????????,???????????????,???????
???????,????????????????,???????? - ??????????????????????????,??????????????????????,
??????????? - ???BSP??????,????????????????,????????,???????????
?h???(h-relation)
114MIMD??????LogP,C3??
- LogP???????????????????????,??????????????,???????
???????,???????????????????????? - C3(Computation, Communication, Congestion)????????
???????????????,??????????,???????????????????????
??????
115????????
- ????????
- ????????????????????,?????????,??????? (wall
clock time)??????,?????????????CPU?????CPU????????
?????????????? - ??????????
- ?????????????
- ?????????
116????
- ??????????
- ????????
- ????????
- ??????
- ??????
117??????
- ??????????????3???????????????
?? ???? ???? ????
???? MPI, PVM OpenMP HPF
???? ????????? SMP, DSM SMP, DSM, MPP
???? ?????? ?????? ??????
?????? ?? ?? ????
?????? ????? ???? ????
?????? ?? ?? ???
?????? ?? ?? ??
???? ? ?? ??
118????????
- ????
- HPF??????
- HPF????????????????????,????????????????????
- OpenMP????????
119??????????
- ???,??????
- ???,???
- ???,???
- ???,???
- ????????????????,??????????????
120????????
- ????????
- ???????????????,???????????????
- ???????????????,??????????
- ????,?????
- ????????
- ????????????????
- ????????????????????????????
- ???,??????
121????????
- ????(Implicit Parallel)
- ????(Data Parallel)
- ????(Shared Variable)
- ????(Message Passing)
122??
- ???????(P, C, D, S),??P?????,C????????,D??????,S??
??????? - ????
- ????,??????????????,???????????????????I/O????????
????????? - ????,?????????????????,??????(??????????)?????????
???? - ??
- ???????????????????
- ???????????(??,??????????shell??,?????????)??????
? - ????????CPU??????????,?????
- ??????CPU?????????????????,????????????,????????,
????????,?????????????? - ????????????????????
123?????
- ?????????????????,?????????????????????????????
- ??????
- ??????????????????
- ???????????????????????????????,?????????????????
???????????? - ??(???)????????????????????????????,??????,??????
??,???????????????????? - ????
- ????????,???/??????????????????
- ???????????,?????????
124??
- ????????????????????
- ?? (threads)??????????
- ???????????,????????????,??????????????,??,??????
???????????,????????CPU,??????????,???????????????
?
125????(Implicit Parallel)
- ??
- ?????????????(??????????)
- ???????????????????
- ??
- ????
- ?????
- ???,??????????
- ?????
- ????
126????(Data Parallel)
- ??
- SIMD?????
- ???????????
- ??
- ???
- ???????????(??)
- ????
- ??????
- ??????
- ??????
- ????????,???????.
- ??????????????????????????????????.
????????????,????.
127????(Shared Variable)
- ??
- PVP, SMP, DSM?????
- ??
- ???SPMD, MPMD
- ??
- ??????
- ????
- ??????
- ????
128????(Message Passing)
- ??
- MPP, COW?????
- ??
- ???
- ??
- ?????
- ????
- ???????????
- ????
129??????
- ????????
- Fortran90, HPF(1992), Fortran95/2001????????,??DO
??. - ?????(Thread Library)
- Win32 API.
- POSIX threads????.
- ????(Compiler Directives)
- OpenMP portable shared memory parallelism
- ???????(Message Passing Libraries)
- MPI Message Passing Interface
- PVM Parallel Virtual Machine
??????
??????
??????
130????????
- ???????????????
- ????
- HPF, Fortran90
- ??SMP, DSM
- ????
- OpenMP
- ??SMP, DSM
- ????
- MPI, PVM
- ?????????
- ???????
- ???SMP????Cluster??, ????????????,????????????.
131???????
- ???(Phase Parallel)
- ?????(Pipeline Parallel)
- ????(Master-Slave Parallel)
- ????(Divide and Conquer Parallel)
- ?????(Work Pool Parallel)
132??????
- ?????????,??????????????????,?????????????????????
? - ????????????, ??????
- Do step i to j in parallel
- step i
- step i1
-
- step j
- ??? ????????????????,??????
- for all i parallel do
- .
- .
- .
- end for
133??????
- ????????
- ??????,?????BLAS,FFTW?
- ????????????
- ????????
- ?????????,????????????
- ????
- ????????
- ????????????
- ????????????????
- ????????,??CPU????
- ????
- ????????
- ?????????????,???????
134?????
135?????
- ???
- ????
- ?????(Code Vectorization) ???????????????????????
?????? - ?????(Code Parallelization)??????????????????????
??????????,?????????????? - ????
- ??????(Code Generation)???????????????????????????
??????????????????????????????????????????(Postopt
imization)????
136???????
- ????
- ????
- ????
- ????
- ????????????
- ???????????????
137?????????-----????
- ?????????????????
- ???????????
- ???????????????
- ?????????????????I/O????(???),?MPP????????????????
(???) - ???????????????,??????????????????????,?MPP???????
??????? - ??????????
138 ??????
- ???/???
- ???????????????,???,?????
- ????????????(OpenSource)??????
- ????????????????????(Peak Performance)
- ???????
- ????????????????????????????????
- ????,????
- ??????????(???MPP)?
- ????????????????
- ??SMP??????
- ???????????????????.
139?????????
140????????(TOP500)
- Constellations clusters of gt16 P,SMP
- Commodity clusters of uni or lt4 Ps, SMP
141????????(TOP500)
142??BlueGene/L(NO.1 of the TOP 500)
143?????
- ???????????CPU-Z,GPU-Z
- ????????CPU ID?,Cache ??,???,CPU??,??, ??,??,SPD?
GPU????????. - ???Visual C 6.0?????console ??,
???????,????????. - ?????????CPU??????
144CPU-Z
145GPU-Z
146???????
- BIOS???
- ????BIOS???CPU?????,?????BIOS?????????,?????BIO
S??,??CPU Configuration??,??????CPU Core 0?CPU
Core 1???Disabled ??,?????,????????????,??CPU???
??????????
147- Windows?????
- WinXP/2003?,??MSCONFIG??,??BOOT.INI???gt??gt
/numproc(n)?????????CPU?????????Kentfield?????,???
??2?????Conroe?