Tải bản đầy đủ (.pdf) (36 trang)

báo cáo vi xử lý core i7 - 990x

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.46 MB, 36 trang )


1


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÁO CÁO VI XỬ LÝ



CHỦ ĐỀ :





NHÓM 8 - D09CN1










2


Tìm hiểu kiến trúc VXL Core i7-990X











- 





990X - 



-
-990X.
 Giới thiệu chung về VXL core i7.
--c m nhanh nht
i nhiu ci ti t tri so v h CPU t Core 2 tr v c.
- Core i7 hinh cao nh vi x a  ln
nht, t clock nhanh nhc hiu sut thc cao nh b vi x 
n nht, gn cng, h tr 64 -bit, t  

-c sn xun kit k chip ging vi th h CPU
 thn thm tit kii bt
cc Intel tn dn vi x n

 mt 296 mm2, cha ti 774 triu transitor v 
trong x p sn mu khin b nh, s dng ki nh m cache 3 c tr
 x ng Hyper-Threading.

 Sự ra đời của VXL core i7-990X.
- n (g
socket LGA 1366, model Core i7-990X. Intel Core i7-n Extreme Edition vi h s

3


c sn xu 32nm. Core i7-990X s thay th
a Core i7-980X,  x  nhanh nht ca   t
vua cm hin ti.
---





 
bo
Boost,      


 

-  Core i7-990X 









RAM DDR3.
















4



Kiến trúc vi xử lý
Sơ đồ kiến trúc và thành phần chính của VXL Intel Core i7-990X












5



Đặc điểm kiến trúc của vi xử lý :

Gulftown Nehalem
-
 



trong tay.

Các thành phần chính bao gồm :

- 
- 

- -

- 
-   .
- 


















6









Mạch điều khiển bộ nhớ tích hợp ( IMC )
 


                   


Nhân thực thi ( Execution Core )
Execution CoreComputing Core


7





thêm vào một số, mở
rộng một số khác


Bộ phận mã hóa ( Decoder )

-

 
Xử lý chu kỳ
Loop Stream Detector

Trace

Cache.




8




Dự đoán rẽ nhánh ( Branch Prediction )




Return Stack Buffer
lRenamed RSB

Thực hiện lệnh ( Instruction Execution )












9



-
 Reservation Station 


Hệ thống Cache

( Branch Unit )TLB (Translation-Lookaside Buffer)
 
 




 -             

 


các dữ liệu trong L1/L2 phải xuất hiện trong cả L3.
Mỗi dòng trong Cache L3 chứa các bit hợp lệ trong nhân ( dựa theo số nhân vật lý), 



   Cache L3 trong Core i7
không hoạt động theo tốc độ xung nhịp của bộ vi xử lý, mà theo một tốc độ cố định .



10

F


QPI thay thế cho QPB
QPI 
Intel (QuickPath Interconnect)    QPB (Quad Pumped Bus)    

-
điểm-tới-điểm ( Point-to-Point )-
                       
12.8  -MHz
  24 

 







11




 Non-


                    


Còn với máy tính để bàn thông thường, bạn sẽ khó mà nhận ra lợi thế nào của
QPI.

Quản lý điện năng


PCU (Bộ phận Quản lý Điện năng – Power
Control Unit )





Chuẩn mã hóa AES-NI
-NI - 

-980X, AES-
-

12

 AES 
 
AES-NI Clarkdale Gulftown 

 AES 

th-






Kiến trúc tập lệnh của Core i7-990X

Core i7-
 MMX instruction set
 SSE
 SSE2
 SSE3
 Supplemental SSE3
 SSE4.1
 SSE4.2
 AES instructions

0. MMX Instructions




13

-
MMX.

1. MMX Data Transfer Instructions (Tp lnh dch chuyn d liu)

Tp lnh dch chuyn d ling di d
vanh ghi MMX vi b nh

- MOVD: Dch chuyn Dword
- MOVQ: Dch chuyn Qword

2. MMX Conversion Instructions (Tp lnh chuyi )
Bao gnh chuy d
- PACKSSWB: Chuyng pack) sang dng bytu

- PACKSSDW: Chuyng pack) sang du
- 
PUNPCKLWD, PUNPCKLDQ

3. MMX Packed Arithmetic Instructions (Tp l hc)
Tp l s hc (dng packed) biu din vi ng
packed)
- PADDB: C ng packed)
- PADDW: C ng packed)
- 
PSUBD, PSUBD, PSUBSW, PSUBUSB, PSUBUSW, PMULHW,
PMULLW, PMADDWD

4. MMX Comparison Instructions (Tp l
Tp lc Dwords (dng packed)
- ng nhau ging packed)
- bng nhau ging packed)
- ng nhau ging packed)
-  u (dng packed)
-  u (dng packed)

- n  u (dng packed)

5. MMX Logical Instructions (Tp lnh logic)
Tp lnh logic biu di
- 
- 
- 
- PXOR





14


6. MMX Shift and Rotate Instructions (Tập lệnh dịch và quay)
Tp lnh dng dc Dwords, ho
ng 64-bit
- ng packed)
- ng packed)
- ng packed)
- ch phng packed)
- ch phng packed)
- ch phds (dng packed)

- ch phi s hng packed)
- ch phi s hng packed)

7. MMX State Management Instructions (Tp lnh qu

Lch tra thanh ghi MMX
Ech tr


1. SSE Instructions
Tp lnh SSE ch  th x - tr phn m rng SSE.
1.1. SSE SIMD Single-Precision Floating-Point Instructions
1.1.1. SSE Data Transfer Instructions
Tp lnh chuyn d liu cng th u packed/
ng gic gi nh
- MOVAPS: Di chuyn b th c gia
 nh
- i: MOVUPS, MOVHPS, MOVHLPS, MOVLPS, MOVLHPS, MOVMSKPS, MOVSS

1.1.2. SSE Packed Arithmetic Instructions
nh s hc (kiu packed) cu di s h
ng th ng.
- ADDPS: C th u packed)
- ADDSS: C th ng)
- SUBPS, SUBSS, MULPS, MULSS, DIVPS, DIVSS, RCPPS, RCPSS, SQRTPS, SQRTSS,
RSQRTPS, RSQRTSS, MAXPS, MAXSS, MINPS, MINSS

1.1.3. SSE Comparitsion Instructions
ng th ng
vi nhau.
-  th u packed)
-  thc  ng)
- 




15


1.1.4. SSE Logical Instructions
nh logic ca SSE biu di ng theo tng
ng th u packed)
- ANDPS: Biu ding bit c th u packed)
- ANDNPS, ORPS, XORPS

1.1.5. SSE Shuffle and Unpack Instructions
 cn ln ho th 
hng th u packed)
-  ng th u packed)
- UNPCKHPS, UNPCKLPS

1.1.6. SSE Conversion Instructions
nh chuyi c 
 th 

- CVTPI2PS: Chuy  th 
(kiu packed)
- CVTSI2SS, CVTPS2PI, CVTTPS2PI, CVTSS2SI, CVTTSS2SI

1.2. SSE MXCSR State Management Instructions
nh quc tra thanh ghi trng
u khin MXCSR.
- LDMXCSR: Np thanh ghi MXCSR
- STMXCSR: i tra thanh ghi MXCSR


1.3. SSE 64-Bit SIMD Integer Instructions
nh s -bit ca SSE biu di cc dword (kiu
c ch
-  trung  u (kiu packed)
-   u packed)
-           
PMULHUW, PSADBW, PSHUFW

1.4. SSE Cacheability Control, Prefetch, and Instruction Ordering Instructions
u khip kh u khin vi d li thuc
th d liu t  nh.
-  - tec chn t  nh.
- h, SFENCE


2. SSE2 Instructions
Tp lnh SSE2 ch  c th x - tr n m rng
SSE2

16

2.1. SSE2 Packed and Scalar Double-Precision Floating-Point Instructions
 th 

- nh dch chuyn d liu
-  hc
- 
- nh chuyi
- nh logic
- ng th 






2.1.1. SSE2 Data Movement Instructions
nh dch chuyn d lin d liu th 
gi nh.
- MOVAPD: Chuy th p thc gia
 nh.
- MOVUPD: Chuy th p th
hoc gi nh.

17

- MOVHPD (Chuyn gi th  mc cao): Chuyng th 
64-bit t b nh ti Qword ca mt thanh ghi XMM hoc vice versa.
- MOVLPD (Chuy th  mc thp): Chuyng th 
64-bit t b nh ti Qword  mc thp ca mt thanh ghi XMM hoc vice versa.
-  lc du t  th 
- MOVSD: Chuy ng th c gia thanh ghi
 nh.

2.1.2. SSE2 Packed Arithmetic Instructions
nh s hc biu ding, trng ln nht/ nh nht trong
ng th ng.


- ADDPD: C th u packed)
- ADDSD: C ng)

- SUBPD: Tr  th u packed)
- SUBSD: Tr  th ng)

-  th u packed)
- MUL th ng)
-  th u packed)
-  thng)
-  t s lnh na: + SQRTPD, SQRTSD
+ MAXPD, MAXSD
+ MINPD, MINSD

2.1.3. SSE2 Logical Instructions
nh logic ca SSE2 biu di  th 
u packed.
- ANDPD: Biu ding ci v th u packed
- ANDNPD: Biu dii v th u packed
- ng lnh: ORPD, XORPD

2.1.4. SSE2 Compare Instructions
 th 
tr li kt qu c v c v thanh ghi EFLAGS.
-  tr th u packed
-  th ng
- COMISD: Biu din s  t c  t l
c trong thanh ghi EFLAGS
- UCOMISD: Biu din s  t c  t
l trong thanh ghi EFLAGS





18


2.1.5. SSE2 Shuffle and Unpack Instructions
 n ln ho th 
hng th u packed.
- SHUFPD: Trn l ng th u packed.
-   mc cao t ng th 

2.1.6. SSE2 Conversion Instructions
nh chuyi c u packed/kiu individual sang
 th c li gi
tr th  king.
- CVTPD2PI: Chuy th  
-  nh chuyi:
(CVTTPD2PI, CVTPI2PD, CVTPD2DQ, CVTTPD2DQ, CVTDQ2PD, CVTPS2PD, CVTPD2PS,
CVTSS2SD, CVTSD2SS, CVTSD2SI, CVTTSD2SI, CVTSI2SD)


2.2. SSE2 Packed Single-Precision Floating-Point Instructions
 th u packed) ca SSE2 biu din s chuyng
th 
- CVTDQ2PS: Chuy tr  th 
(kiu packed)
- CVTPS2DQ: Chuy th 
(packed)
- CVTTPS2DQ: Chuyi vi vic ct ng thi c 
dword (packed).



2.3. SSE2 128-Bit SIMD Integer Instructions
nh s a SEE2 biu diu packed)
ch
- MOVDQA: Di chuyn Double c xp th
- MOVDQU: Di chuyp th
- t s l
(MOVQ2DQ, MOVDQ2Q, PMULUDQ, PADDQ, PSUBQ, PSHUFLW, PSHUFHW, PSHUFD,
PSLLDQ, PSRLDQ, PUNPCKHQDQ, PUNPCKLQDQ)


2.4. SSE2 Cacheability Control and Ordering Instructions
Tp lu khi  d li thuc thi
 d liu t  nh u
khin sp xp th t .
-    n: CLFLUSH, LFENCE, MFENCE, PAUSE, MASKMOVDQU, MOVNTPD,
MOVNTDQ, MOVNTI


19

3. SSE3 Instructions
Tp lnh SS3 ch  c th x -c h tr n m
rng cho SS3.

3.1. SSE3 x87-FP Integer Conversion Instruction
FISTTP: thn gi dt d liu, bt ch
thc ch u khin s thc

3.2. SSE3 Specialized 128-bit Unaligned Data Load Instruction

LDDQU: 128-c bic thit k np th  chia c

3.3. SSE3 SIMD Floating-Point Packed ADD/SUB Instructions
- ADDSUBPS: Biu di p th  4 cn d liu
ng  c hip th nh ba.
- ADDSUBPD: Biu di p th hai c  


3.4. SSE3 SIMD Floating-Point Horizontal ADD/SUB Instructions
- HADDPS: Biu di n d liu k n d
lia kt qu c bn th nh hai cu
n d liu th c bh phn th  ng
n th c b
- phn th nh hai cng th n th c b
phn th  ng th hai
- nh i: HSUBPS, HADDPD, HSUBPD

3.5. SSE3 SIMD Floating-Point LOAD/MOVE/DUPLICATE Instructions
- MOVSHDUP: Np/ di chuyn d liu 32-bit th  
- i: MOVSLDUP, MOVDDUP

3.6. SSE3 Agent Synchronization Instructions
- t pha ch c s d   -
li kt qu)
- Li: MWAIT


4. S-SSE3 Instructions

4.1. Horizontal Addition/ Subtraction (Cộng/ trừ theo phương ngang)

- PHADDW: Cng hai s  16-u, lin k  ng ngu
ht qu 16-
- PHADDSW: Cng hai s -u, lin k  ng ngu
h kt qu 16-


20


- PHADDD: Cng hai s -u, lin k t ng ngu
kt qu 32-
- PHSUBW: Biu th  mi cp lin k  -u b
tr u nht t t ca mi cng ngung
t qu 16-c gc ng ngun.
- PHSUBSW: Biu th  mi cp lin k  -u bng thao
 u nht t t ca mi cng ngu
ht qu 16-c g


- PHSUBD: Biu th  mi cp lin k  -bit b
u nht t t ca mi cng ngu 
t qu 32-c g

4.2. Packed Absolute Values (Tính toán giá trị tuyệt đối)
-  tuyi ca mn d liu.
-  tuyi ca mn d liu 16-u.
-  tuyi ca mn d liu 32-u.
4.3. Multiply and Add Packed Signed and Unsigned Bytes
(Nhân/ Cộng các byte có dấu và không dấu kiểu packed)
-  bytu v   trung

 u 16-bit. Mi cp lin k  u 16-c c
kt qu 16-

4.4. Packed Multiply High with Round and Scale
- u dc mi s -u t i mt s -
ng ngu  -u. Mi
s -bit trung gian b ct b c biu din bng
vi t trong 18 bit kt qu. Kt qu c ba

21


chi ct trong mi kt qu 18-bit trung gian. Kt qu


4.5. Packed Shuffle Bytes (Xáo trộn các byte – kiểu packed)
-  mi byte theo b lu khin trn. Ba hoc bu
khin trn ca b lu khin s t cht ch mc trn. B lc tr b ng. Nu
t (bit 7) cu khin trc thit lng s 0 s t
qu.

4.6. Packed Sign (Đổi dấu giá trị nguyên - packed)
- PSIGNB / W / D: Ph nh mn s u cu du cn
d ling ngun nh 

4.7. Packed Align Right (Sắp thẳng hàng các giá trị - packed)
- ng nguc gt l  p 2
l ng. Kt qu   
la ch 128 bit hoc sp thi c c ch nh bi
 trung gian.



5. SSE4.1 Instructions
SSE4.1 gm 47 tp li thin hin truy 
 i thi s
h tr   th ca
SSE4.1

5.1. Dword Multiply Instructions (Các lệnh nhân Dword)
- PMULLD: Tr li b 32-bit mc thp t t qu 64-bit c -bit
u.
- PMULDQ: Tr li hai kt qu u 64-bit c -u.
 t v vi 

32 bit Integer Operation
Unsigned x unsigned
Signed x signed
Result
Low 32-bit
(not availbale)
PMULLD
Hight 32-bit
(not availbale)
(not available)
64-bit
PMULUDQ*
PMULDQ

NOTE:  i vi SSE4.1





22



5.2. Floating-Point Dot Product Instructions
( Các lệnh xử lý giá trị thực)
- DPPD: Biu din  thc v  d 
- DPPS: Biu di   thc v         d  
(broadcast)

5.3. Streaming Load Hint Instruction
(Lệnh điều khiển nạp theo tiến trình dòng chảy)
Trong lch sc d liu c-Combining memory) vng chm
 so vi truy c

  lic kt h tm
thi trong mt b m (buffer)  the write combine buffer (WCB). R lic gi
ng bit hoc t.

c g cung cp li g
thuc thy 16-byte lin k trong phm vi 64-byte sp thc kiu b nh WC
 n li trong mt khu vc nh c m tm th
p tc np ti-
 p v i thing ca CPU.

5.4. Packed Blending Instructions (Các lệnh trộn kiểu packed)
-     nh s d    n d liu (BLENDPS, BLENDPD, BLENDVPS,

BLENDVPD, PBLENDVB, PBLENDW)
- u kin d ling ngu
phn gip l trn cho hu h
ng d liu. Mt l thay th cho mt chui 2 ti 4
ng s d 
- c trn (Blend control):
u khin byte trc tip)
+ XMM0 (s dng b lc m implied mask)













23


Instructions
Packed
Double
FP
Packed
Single

FP
Packed
QWord
Packed
DWord
Packed
Word
Packed
Byte
Blend
Control
BLENDPS

X




Imm8
BLENDPD
X





Imm8
BLENDVPS

X


X (1)


XMM0
BLENDVPD
X

X (1)



XMM0
PBLENDVB


(2)
(2)
(2)
X
XMM0
PBLENDW


X
X
X

Imm8


TABLE1. Blend Field Size and Control Modes Supported by SSE4.1

NOTE:
1. Vic s dnh du chu d li s phu s bt li v
mt hi
2. Vic trn ln bin s  s dc lnh dng li
(hoc sp xp lu khin trn

5.5. Packed Integer MIN/MAX Instructions
(Các lệnh MIN/MAX với nhóm số nguyên)
-  PMINUW, PMINUD, PMINSB, PMINSD;
PMAXUW, PMAXUD, PMAXSB, PMAXSD)
- Bn lu. Hai lnh hong 
u.


Integer Width
Byte
Word
Dword
Integer
Format
Unsigned
PMINUB*
PMAXUB*
PMINUW
PMAXUW
PMINUD
PMAXUD
Signed

PMINSB
PMAXSB
PMINSW*
PMAXSW*
PMINSD
PMAXSD

TABLE2.Enhanced SIMD Integer MIN/MAX Instructions
Supported bySSE4.1

NOTE:
*  

24

5.6. Floating-Point Round Instructions with Selectable Rounding Mode
(Các lệnh làm tròn số thực với cách thức làm tròn tùy chọn)
-  th   li c thc

-  th   l thc

-  th  mc th  li 
th
-  th  mc th  l
th

5.7. Insertion and Extractions from XMM Registers
(Chèn và rút từ các thanh ghi XMM)
-  m th  khoc ch nh trong thanh ghi
t qu  nh ho

-  th  v  nh 32-bit hoc t c ch
nh trong mc ch 
n d li dng mt
b lc.
-  t thanh ghi hoc b nh t thanh ghi XMM.
-  Dword t thanh ghi 32-bit hoc b nh 
-  Qword t thanh ghi 64-bit hoc b nh 
- t byte t  ng qc b nh.
- t Word t  c b nh.

5.8. Packed Integer Format Conversions
(Quá trình chuyển đổi định dạng số nguyên – kiểu packed)
- Kiu dng chung c   i bc zero hoc
sign-extension t  i d liu r
- i t dng s c nh ng s 
c l  PMOVSXBW, PMOVZXBW, PMOVSXBD, PMOVZXBD, PMOVSXWD,
PMOVZXWD, PMOVSXBQ,
PMOVZXBQ, PMOVSXWQ, PMOVZXWQ, PMOVSXDQ, PMOVZXDQ).
-  ngun ly t thanh ghi XMM hoc b nh m trong thanh ghi XMM.













25



Source Type
Byte
Word
Dword
Destination Type
Sign Word
Unsign Word
PMOVSXBW
PMOVZXBW


Sign Dword
Unsign Dword
PMOVSXBD
PMOVZXBD
PMOVSXWD
PMOVZXWD

Sign Qword
Unsign Qword
PMOVSXBQ
PMOVZXBQ
PMOVSXWQ
PMOVZXWQ
PMOVSXDQ

PMOVZXDQ

TABLE 3. New SIMD Integer conversions supported by SSE4.1


5.9. Improve Sums of Absolute Differences (SAD) for 4-Byte Block
(Cải tiến khả năng tính tổng giá trị tuyệt đối hiệu cho mỗi khối 4-byte)
t lu di-byte chiu rng) trong mi
  kt qui PSADBW, MPSADBW hoi d liu
nh -i 8-


5.10. Horizontal Search (Tìm kiếm theo phương ngang)
 mt l   
 mu xp ngang. Kt qu -  m
vi ngun) -  mc thp c

5.11. Packed Test (Kiểm tra dữ liệu – kiểu packed)
L-  tha ti 128-bit ca lnh TEST. Vi s nguc s dng
t b lc theo bit.

5.12. Packed Qword Equality Comparisons
(So sánh đẳng thức Qword - packed)
SSE4   -bit ki  ng thc Qword. Lnh m   ng nht vi
nh mc v tr Dword.

5.13. Dword Packing With Unsigned Saturation
(Nén Dword với sự bão hòa không dấu)
t lnh m t tp l  trong h 
rng ca l i s u.

Xem b tp l  (small intergers)



×