Tìm hiểu kiến trúc vi xử lý core i7 -990x
Trang 1HỌ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
Trang 2Tìm hiểu kiế n trúc VX L Core i7 -990X
I Lời nói đầu
Có thể nói công nghệ máy tính đã và đang thay đổi hàng giờ trong những năm gần đây Đến thời điểm này
thật đáng kinh ngạc khi định luật tăng theo hàm mũ của mật độ linh kiện trên một chu vi điện tử cũng
đồng nghĩa với khả năng xử lý của máy tính vẫn đúng Cả thế thới đang ở trong một cuộc chạy đua công
nghệ, càng ngày càng xuất hiện nhiều công ty sản xuất linh kiện máy tính Trong số đó không thể không
kể đến Intel - một người khổng lồ trong lĩnh vực sản xuất thiết bị vi tính Công ty này tỏ ra rất nổi trội
trong lĩnh vực sản xuất vi xử lí (CPU) của máy tính, theo thống kê Intel đang chiếm 4/5 thị phần vi xử lí
trên thế giới Được thành lập năm 1968 tại Santa Clara, California, Hoa Kỳ, sau 3 năm Intel đã xuất ra thị
trường dòng vi xử lí đầu tiên: 4004 với tốc độ108KHz với 23.000 bóng bán dẫn Cho đến là Core i7
990X - bộ vi xử lí nhanh nhất hành tinh với 6 nhân, tốc độ 3,46GHz, sử dụng công nghệ 32nm, đa nhân,
siêu phân luồng… Intel đang thử nghiệm và chuẩn bị cho ra thế hệ core i9 trong thời gian không xa…
Chúng ta hãy cùng tìm hiểu về kiến trúc vi xử lý intel core i7-990X qua bài dưới đây
II Giới thiệu chung về VXL core i7 và sự ra đời của VXL core i7-990X
Giới thiệu chung về VXL core i7
-Vào thời điểm ra đời (tháng 11-2008), Core i7 tên mã Bloomfield được mệnh danh là “CPU nhanh nhất
hành tinh”, với nhiều cải tiến và công nghệ vượt trội so với các thế hệ CPU từ Core 2 trở về trước
- Core i7 hiện là đỉnh cao nhất trong dòng bộ vi xử lý hiện hành của Intel, nó gồm có các cache nhớ lớn
nhất, tốc độ clock nhanh nhất và cho mức hiệu suất thực cao nhất, cùng với đó là các công nghệ bộ vi xử lý
tiên tiến nhất, gồm có ảo hóa phần cứng, hỗ trợ 64 -bit, tự động overclock theo yêu cầu, công nghệ 32nm và
45nm…
-Intel Core i7 được sản xuất trên nền kiến trúc siêu vi Nehalem có thiết kế chip giống với thế hệ CPU
Core i5 Lynnfield dùng cho hệ thống máy bàn truyền thống Chính ưu điểm tiết kiệm điện năng nổi bật
của CPU Lynnfield đã được Intel tận dụng trong phát triển vi xử lý Core i7 Tấm silicone Core i7 có diện
tích bề mặt 296 mm2, chứa tới 774 triệu transitor với 4 nhân (core) vật lý, mang những công nghệ đột phá
trong xử lý, như tích hợp sẵn mạch điều khiển bộ nhớ, sử dụng kiến trúc bộ nhớ đệm cache 3 cấp và hỗ trợ
công nghệ xử lý đa luồng Hyper-Threading
Sự ra đời của VXL core i7-990X
-Vào cuối năm 2010 Intel chính thức tung ra phiên bản (gần như là) cuối cùng của dòng CPU Core i7
socket LGA 1366, model Core i7-990X Intel Core i7-990X là 1 phiên bản Extreme Edition với hệ số
Trang 3nhân không khóa, có 6 nhân và được sản xuất trên tiến trình công nghệ 32nm Core i7-990X sẽ thay thế
ngôi vương của Core i7-980X, được hãng xem là bộ xử lý có tốc độ nhanh nhất của má y tí nh đ ể b
àn từ
trước đến nay và lên làm vua của các CPU desktop trong thời điểm hiện tại
-Bộ xử lý Core i7-990X có tốc độ xung nhịp 3,46GHz cao hơn core i7-980x( tốc độ 3.33GHz ), được
thiết kế dành cho các máy tính chơi gamevà các tính năng p xung cho ph p người dùng đẩy tốc độ xung
nhịp cao hơn trong những điều kiện nhất định Tính năng này chủ yếu dành cho các game thủ hay những
chuyên viên đồ họa 3D và hỗ trợ tối ưu
giải trí đa phương tiện Bộ đệm thông minh của chip mới lên đến 12 MB Chip cũng được trang bị tính
năng Turbo
Boost, tự động nâng xung từ 3.46 lên 3.6Ghz tùy vào mức độ tải của công việc và TDP của 990X sẽ
chiếm khoảng
130W trong toàn bộ hệ thống.Theo như trang tin BSN còn cho hay, khả năng p xung của vi xử lý này là
khá cao Chỉ với tản nhiệt khí, người dùng đã có thể nâng lên ngưỡng 4.5Ghz một cách dễ dàng và đạt
5Ghz với hệ thống làm mát bằng chất lỏng
- Bộ vi xử lý mới Core i7-990X được sản xuất dựa trên Gulftown công nghệ 32 nm cải tiến từ kiến trúc
Nehalem 45 nanometer, công nghệ được trình diễn lần đầu tiên cùng với bộ vi xử lý Core i7 nguyên thuỷ
Dù cho công suất tiêu thụ điện năng khá thấp 95 vol và 130 watt nhưng ngay từ lần xuất hiện đầu tiên,
Core i7 sử dụng kiến trúc Nehalem đã trình diễn hết sức thuyết phục trong hầu hết các ph p thử, cho thấy
sức mạnh vượt trội so với tiền bối Core 2 của nó
Kiến trúc Nehalem được xây dựng trên công nghệ 45 nm, cho ph p Intel sản xuất chip từ 2 đến 8 lõi
Tiêu chuẩn kỹ thuật Core i7 được xây dựng trên kiến trúc hoàn toàn mới nên máy tính cũng cần sử dụng
bo mạch chủ mới
Toàn bộ nền tảng sử dụng Socket 1366 thay vì 775 Core i7 tương thích với chuẩn Chipset X58 và bộ nhớ
RAM DDR3
Trang 4Ki ến trúc vi xử lý
Sơ đồ kiến tr úc và thành phầ n c hính c ủa VX L Inte l Core i7 990X
Trang 5-Đặc điểm kiến trúc của vi xử lý :
X t về cơ bản, kiến trúc Gulftown không có gì đặc biệt hơn Bloomfield trên nền kiến trúc Nehalem, chỉ
có số nhân xử lý và L3 cache tăng gấp 1,5 lần, cộng thêm với tập lệnh AES-NI giúp tăng cường khả năng
mã hoá / giải mã thêm cho gia đình Core ix Tiến trình 32nm giúp Gulftown vẫn tương thích tốt với nền
tảng “cũ” Bloomfield và người dùng không phải bận tâm nếu đã sở hữu một hệ thống socket LGA 1366
trong tay
Các thành phần chính bao gồm :
- 6 nhân xử lý
- Mỗi nhân có 32KB L1 instruction cache ( chỉ thị ), 32KB L1 data cache (dữ liệu) và 256KB L2 cache
Ngoài ra còn tăng cường thêm 12MB L3 cache dùng chung trên các nhân
- Một mạch điều khiển bộ nhớ DDR3 Triple-Channel tích hợp ( IMC )
- Mạch điều khiển bus QPI (QuickPath Interconnect)
- Bộ phận quản lí lượng tiêu thụ điện (PCU) và đồng hồ
- Đồ họa tích hợp ( nó nằm cùng bên trong với CPU, nhưng trên một khuôn riêng)
Trang 6Mạch điều khiển bộ nhớ tích hợp ( IMC )
Trong kiến trúc Nehalem, Intel đã tích hợp luôn một chip điều khiển bộ nhớ trong bộ xử lý (BXL) giúp
tăng tốc độ giao tiếp với bộ nhớ, băng thông giao tiếp giữa BXL với các thành phần khác trong hệ thống
Cùng với việc tích hợp thêm chip vào BXL thì số chân giao tiếp giữa BXL và bo mạch chủ (BMC) cũng
nhiều hơn trước đây Chip điều khiển bộ nhớ bên trong các BXL dòng này hỗ trợ đến 3 kênh (triple
channel) thay vì chỉ hai kênh (dual channel) như thông thường giúp nâng băng thông giao tiếp bộ nhớ lên
đến 25,6GB/s và dung lượng RAM tối đa là 24GB DDR3
Nhân thực thi ( Execution Core )
Sử dụng từ “Execution Core“ có vẻ chính xác hơn “Computing Core” vì nó không chỉ làm nhiệm vụ
tính toán mà còn giải mã câu lệnh Ngoài ra, không phải tất cả các lệnh trong mã x58 đều là lệnh tính toán
Trang 7Phần lớn những thay đổi trong Core i7 so với Core 2 có thể được miêu tả như sau: “thêm vào một số, mở
hơn, vì thế không cần phải tiết kiệm Transistor làm gì Còn bây giờ chúng ta sẽ tổng kết lại những thay đổi
có lợi nhất:
Bộ phận mã hóa ( Decoder )
Thay đổi lớn nhất trong bộ phận giải mã có liên quan đến việc cải tiến công nghệ Macrofusion: nó chỉ
hoạt động trong mode 32 bit, nhưng đã hỗ trợ tất cả các mode CPU, trong đó có mode 64-bit Số lượng
cặp lệnh được mã hóa trong mỗi chu kỳ bằng công nghệ này cũng đã tăng lên X t về lý thuyết thì bộ phận
mã hóa Core i7 sẽ đạt hiệu suất (5 câu lệnh mỗi chu kỳ) nhiều lần hơn so với trong Core 2
Xử lý chu kỳ
Loop Stream Detector, được thiết kế để lưu lại chu kỳ ngắn thay vì tải lại các chu kỳ này từ bộ nhớ
Cache L1/L2, lần đầu xuất hiện trong các bộ xử lý Core 2 Trong Nehalem, bộ phận này hoạt động sau bộ
phận giải mã, vì thế nó có được lệnh đã giải mã Ý tưởng này xuât phát từ bộ vi xử lí Pentium 4, Trace
Cache.
Trang 8Dự đoán rẽ nhánh ( Branch Prediction )
Phần nhánh đã được tăng gấp đôi: giờ đây nó được chia làm 2 phần, một trong số đó có tốc độ dự báo
nhánh cao hơn (có thể nó đã copy lại bộ phận dự báo trong Core 2), trong khi phần còn lại thì chậm hơn,
nhưng có khả năng phân tích sâu sắc hơn kèm theo một Bộ đệm đủ lớn để dự đoán những nhánh mà phần
nhanh hơn bỏ qua
Intel cũng hứa hẹn rằng Return Stack Buffer(phụ trách các địa chỉ trả về chức năng) sẽ được mở rộng
lên cả Renamed RSBnhư trong Penryn Có điều trước đây bộ phận này vẫn thỉnh thoảng nhầm lẫn khi
thực hiện những thuật toán phức tạp, nhưng giờ thì không
Thực hiện lệnh ( Instruction Execution )
Những bộ phận phụ trách việc xử lý câu lệnh gần như không có thay đổi gì so với Nehalem Do đó ta có
thể đưa ra một kết luận đơn giản, nhưng không quá hiển nhiên rằng: trong những trường hợp Core 2 phải
đối phó với việc câu lệnh và dữ liệu đã được lấy về trước ( Prefetch ) , giải mã và dự báo nhánh, thì các
cải tiến đã nêu trong Core i7 không còn đem lại lợi thế nữa, và Core i7 sẽ có khả năng xử lý như Core 2
Trang 9Tuy nhiên cũng có một số cải tiến trong việc hỗ trợ Hyper-Threading Ví dụ như Reorder Buffer sắp xếp
lại đã được mở rộng lên 128 vi lệnh, Reservation Station lên 36 lệnh (trước là 32) Và những bộ đệm
dữ liệu: khả năng tải tăng từ 32 lên 48, khả năng lưu trữ từ 20 lên 32 Lý do cũng rất đơn giản: để tăng số
lượng câu lệnh và dữ liệu trong hàng thực thi, do đó tăng khả năng thực thi chúng cùng một lúc
Hệ thống Cache
Cách làm nước đôi này đã quá phổ biến trong Nehalem: các kỹ sư không chỉ tăng gấp đôi Bộ phận nhánh
( Branch Unit )mà còn cả TLB (Translation-Lookaside Buffer)nữa Họ tiến hành cả hai việc theo cùng
một cách: Bộ phận ( Unit ) thừa hưởng từ Core 2 sẽ được giữ nguyên (được mở rộng thêm một chút), còn
cấp độ mới thứ hai được đưa vào trên TLB cũ – thậm chí nó còn lớn hơn (512 entry) và có nhiều chức
năng hơn (TLB L2 có thể dịch địa chỉ trang với bất kỳ kích thước nào ) Còn hỗ trợ những trang có kích
thước bất kì mà hay được sử dụng trên bộ vi xử lý dành cho máy tính để bàn và tính năng này sẽ đi kèm
với những ứng dụng máy chủ nặng Và TLB lớn thì rõ ràng là một bước tiến mới lên SMT
Tuy nhiên, hầu hết các thay đổi đều được giới thiệu trong hệ thống Cache chính, cụ thể là chức năng
tương tác L1-L2 và cache L3 thêm vào Nehalem Đầu tiên, L2 vẫn thuộc về một nhân nhất định chứ
không chia sẻ Còn L3 được chia sẻ giữa tất cả các nhân Thứ hai, Intel đã điều chỉnh một chút đối với
thời gian trễ của L1, còn độ trễ L2 L1 thì cao hơn một chu kỳ so với trong Core 2, còn thời gian trễ của
L2 thì thấp hơn đến 1.5 lần
Nhưng tại đây chúng ta chủ yếu quan tâm đến L3 Cũng như L2 trong Core 2, đây là một Cache chia sẻ
động Hơn nữa, nó cũng mang tính bao quát hơn : 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ý), chúng biểu hiện
việc dữ liệu L1/L2 gốc được chứa trong nhân nào Vì thế không cần phải dò tìm từng nhân
Intel cũng có một ý tưởng tương tự về cấu trúc Cache tối ưu: tốc độ quan trọng hơn dung lượng Việc này
có thể liên quan đến thực tế là họ có rất nhiều lợi thế trong việc thiết kế Cache với dung lượng lớn vì công
nghệ chế tạo Transistor là 32nm Tuy nhiên hơi thất vọng một chút về việc 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
Trang 10Giao thức truy xuất dữ liệu trong cache của các nhân cũng có sự chuyển biến thành giao thức MESIF
(Modified, Exclusive, Shared, Invalid and Forward) giúp giảm bớt tần suất truy cập cache của các nhân để
nâng cao hiệu quả tính toán song song
QPI thay thế cho QPB
Tiêu đề này nghe có vẻ lạ tai nhưng thực ra lại rất phù hợp: QPIchữ viết tắt của Bus bộ vi xử lý mới của
Intel (QuickPath Interconnect)chỉ khác với Bus cũ QPB (Quad Pumped Bus)một chữ cái hay còn
được gọi là FSB
Vậy thì QPI là gì? Về mặt kỹ thuật thì đây là một Bus 20-bit 2 chiều với phương thức truyền dữ liệu từ
điểm-tới-điểm ( Point-to-Point ), mỗi mỗi hướng là mang dữ liệu 16-bit, 4 bit còn lại dùng cho việc sửa
lỗi và giao thức Với khả năng xử lý 6.4 tỉ giao dịch mỗi giây, QPI có tốc độ trao đổi dữ liệu lên
12.8 GB/giây theo mỗi hướng, tổng cộng là 25.6 GB/giây Vì thế đây là Bus xử lý nhanh nhất (1600-MHz
QPB có tổng băng thông là 12.8 GB/giây, AMD HyperTransport 3.0 24 GB/giây) Tuy nhiên, phiên bản
QPI nhanh nhất hiện mới chỉ dành cho Core i7 Extreme Edition Còn các bộ xử lý Core i7 bình thường thì
chậm hơn một chút với băng thông là 4.8 tỉ giao dịch mỗi chu kỳ
Lý do ở đây là: lượng băng thông chỉ dùng như vậy vì trong hầu hết thời gian sử dụng bộ vi xử lý để bàn,
thì Bus QPI chỉ dùng để kết nối với Chipset mà thôi , bởi khi đó mạch điều khiển bộ nhớ đã được tích hợp
vào bộ xử lý (Giải pháp này chỉ hữu ích khi chipset cung cấp thật nhiều đường truyền PCI Express 2.0,
Trang 11Vì thế rõ ràng là QPI được thiết kế dành cho những ứng dụng hoàn toàn khác mà bạn có thể xem trong
hình trên Những bộ xử lý với cấu trúc mới được thiết kế riêng cho máy chủ sẽ chứa một số mạch điều
khiển QPI để kết nối trực tiếp với nhau nhằm thực thi tối ưu cấu trúc bộ nhớ NUMA (Truy cập bộ nhớ
không đồng nhất – Non-Uniform Memory Access ) Cách làm này được áp dụng rộng rãi trong nhiều nền
tảng máy chủ
Do đó, các bản Core i7 dành cho máy chủ cũng tương tự với AMD Opteron về cấu trúc hình học
Topology Điều này cũng tốt thôi, bởi các nhà thiết kế phần mềm máy chủ cuối cùng cũng có được câu trả
lời cho câu hỏi rằng cần phải tối ưu hóa ứng dụng của họ cho cấu trúc bộ nhớ nào Tuy nhiên điều này chỉ
đúng đối với máy chủ 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
Nehalem đã quá chú ý đến việc quản lý điện năng như thể Intel là người đầu tiên nhìn thấy trước cuộc
khủng hoảng kinh tế vậy Cấu trúc này thực hiện việc quản lý điện năng theo cách truyền thống: toàn bộ
cấu trúc quản lý điện được đưa vào một bộ phận riêng gọi là PCU (Bộ phận Quản lý Điện năng – Power
Control Unit ) Nó có vai trò như một bộ xử lý thô sơ bên trong một bộ xử lý
Và bộ xử lý Mini này hỗ trợ một quy trình quản lý phức tạp hơn nhiều so với các bộ xử lý khác của Intel:
xung nhịp và điện áp của mỗi nhân được điều khiển riêng biệt dựa trên thông tin về nhiệt độ và lượng điện
tiêu thụ Do đó mỗi nhân có thể chuyển riêng sang mức tiêu thụ điện thấp Mạch điều khiển bộ nhớ và Bus
QPI sẽ chuyển sang chế độ điện năng thấp khi tất cả các nhân đều nghỉ
Chuẩn mã hóa AES-NI
Cuối cùng, một bổ sung khác đáng chú ý là AES-NI - chuẩn mã hóa nâng cao dựa trên phần cứng của
Intel Xuất hiện trước đây trên các bộ xử lý Clarkdale Core i5 và chưa có được màn trình diễn ấn tượng
cho lắm, nhưng khi tiến lên Core i7-980X, AES-NI đã phần nào khẳng định được giá trị và các tiềm năng
Trang 12Cụ thể AES vốn là một giao thức mã hóa khá phổ biến được sử dụng trong khá nhiều ứng dụng hiện nay
Intel, vốn là luôn là kẻ đi đầu trong việc bổ sung các tập lệnh mới hỗ trợ việc tính toán và mã hóa tốt hơn,
đã bổ sung tập lệnh AES-NI vào các sản phẩm Clarkdale và Gulftown trong lần ra mắt này với 6 chỉ thị
bổ sung Theo mô tả , tốc độ tính toán và mã hóa của các CPU có tập lệnh này sẽ nhanh hơn gấp nhiều
lần, thậm chí là hàng chục lần với các phần mềm hỗ trợ AES hiện nay: n n và giải n n, mã hóa ổ cứng,
thu phát Wi-Fi, trò chuyện VoIP…
Tập lệnh MMX làm việc trên các toán hạng nguyên kiểu byte, word, doubleword (kiểu packed) chứa trong
bộ nhớ, trong các thanh ghi MMX hoặc trong các thanh ghi tổng quát
Trang 13Tập lệnh MMX chỉ có thể được thực thi trên các bộ xử lý Intel 64 hoặc IA-32 có hỗ trợ công nghệ
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ệu có tác dụng di dời các toán hạng Dword và Qword giữa các thanh ghi MMX
với nhau và giữa các thanh 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ển đổi )
Bao gồm các lệnh chuyển đổi bytes, word và Dwords (ở dạng pack và unpack)
- PACKSSWB: Chuyển đổi các words (dạng pack) sang dạng bytes bão hòa có dấu
- PACKSSDW: Chuyển đổi các Dwords (dạng pack) sang dạng words bão hòa có dấu
- Các lệnh khác: PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, PUNPCKLBW,
PUNPCKLWD, PUNPCKLDQ
3 MMX Packed Arithmetic Instructions (Tập lệnh tính toán số học)
Tập lệnh tính toán số học (dạng packed) biểu diễn việc tính toán số nguyên byte, word và Dword (dạng
packed)
- PADDB: Cộng các số nguyên byte (dạng packed)
- PADDW: Cộng các số nguyên word (dạng packed)
- Các lệnh khác: PADDSB, PADDSW, PADDUSB, PADDUSW, PSUBB, PSUBW,
PSUBD, PSUBD, PSUBSW, PSUBUSB, PSUBUSW, PMULHW,
PMULLW, PMADDWD
4 MMX Comparison Instructions (Tập lệnh so sánh)
Tập lệnh so sánh có tác dụng so sánh các bytes, words hoặc Dwords (dạng packed)
- PCMPEQB: So sánh bằng nhau giữa các bytes (dạng packed)
- PCMPEQW: So sánh bằng nhau giữa các words (dạng packed)
- PCMPEQD: So sánh bằng nhau giữa các Dword (dạng packed)
- PCMPGTB: So sánh lớn hơn giữa các số nguyên byte có dấu (dạng packed)
- PCMPGTW: So sánh lớn hơn giữa các số nguyên word có dấu (dạng packed)
- PCMPGTD: So sánh lớn hơn giữa các số nguyên Dword có dấu (dạng packed)
5 MMX Logical Instructions (Tập lệnh logic)
Tập lệnh logic biểu diễn các ph p toán AND, AND NOT, OR and XOR
- PAND: Ph p logic AND theo bit
- PANDN: Ph p logic AND NOT theo bit
- POR: Ph p logic OR theo bit
- PXOR: Ph p logic XOR theo bit
Trang 146 MMX Shift and Rotate Instructions (Tập lệnh dịch và quay)
Tập lệnh dịch và quay có tác dụng dịch và quay các bytes, words hoặc Dwords, hoặc Qword trong các
toán hạng 64-bit
- PSLLW: Ph p dịch trái logic các words (dạng packed)
- PSLLD: Ph p dịch trái logic các Dwords (dạng packed)
- PSLLQ: Ph p dịch trái logic các Qwords (dạng packed)
- PSRLW: Ph p dịch phải logic các words (dạng packed)
- PSRLD: Ph p dịch phải logic các Dwords (dạng packed)
- PSRLQ: Ph p dịch phải logic các Qwords (dạng packed)
- PSRAW: Ph p dịch phải số học các words (dạng packed)
- PSRAD: Ph p dịch phải số học các Dwords (dạng packed)
7 MMX State Management Instructions (Tập lệnh quản lý trạng thái)
Lệnh EMMS có tác dụng xóa sạch trạng thái MMX của thanh ghi MMX
EMMS: Xóa sạch trạng thái MMX
1 SSE Instructions
Tập lệnh SSE chỉ có thể thực thi trên các bộ xử lý Intel 64 và IA-32 có hỗ trợ phần mở rộng SSE
Tập lệnh chuyển dữ liệu của SSE cho ph p di chuyển các toán hạng thực độ chính xác đơn kiểu packed/
vô hướng giữa các thanh ghi XMM hoặc giữa thanh ghi XMM và bộ nhớ
- MOVAPS: Di chuyển bốn giá trị thực độ chính xác đơn (packed) giữa các thanh ghi XMM hoặc giữa
thanh ghi XMM và bộ nhớ
- Các lệnh còn lại: MOVUPS, MOVHPS, MOVHLPS, MOVLPS, MOVLHPS, MOVMSKPS, MOVSS
Các lệnh số học (kiểu packed) của SSE cho ph p biểu diễn các toán tử số học packed/ vô hướng trên các
toán hạng thực độ chính xác đơn packed/ vô hướng
- ADDPS: Cộng các giá trị thực độ chính xác đơn (kiểu packed)
- ADDSS: Cộng các giá trị thực độ chính xác đơn (kiểu vô hướng)
- Các lệnh khác: SUBPS, SUBSS, MULPS, MULSS, DIVPS, DIVSS, RCPPS, RCPSS, SQRTPS, SQRTSS,
RSQRTPS, RSQRTSS, MAXPS, MAXSS, MINPS, MINSS
Các lệnh so sánh của SSE giúp so sánh các toán hạng thực độ chính xác đơn kiểu packed và kiểu vô hướng
với nhau
- CMPPS: So sánh các giá trị thực độ chính xác đơn (kiểu packed)
- CMPSS: So sánh các giá trị thực độ chính xác đơn (kiểu vô hướng)
- Các lệnh khác: COMISS, UCOMISS
Trang 151.1.4 SSE Logical Instructions
Các lệnh logic của SSE biểu diễn được các toán tử AND, AND NOT, OR và XOR x t tương ứng theo từng
bit trên các toán hạng thực độ chính xác đơn (kiểu packed)
- ANDPS: Biểu diễn ph p AND logic theo từng bit của các giá trị thực độ chính xác đơn (kiểu packed)
- Các lệnh khác: ANDNPS, ORPS, XORPS
Các lệnh xáo trộn và tháo gỡ của SSE giúp trộn lẫn hoặc xen các giá trị thực độ chính xác đơn vào các toán
hạng thực độ chính xác đơn (kiểu packed)
- SHUFPS: Xáo trộn giá trị trong các toán hạng thực độ chính xác đơn (kiểu packed)
- Các lệnh khác: UNPCKHPS, UNPCKLPS
Các lệnh chuyển đổi của SSE giúp chuyển đổi các số nguyên dword theo kiểu packed/ individual sang các
giá trị thực độ chính xác đơn kiểu packed/ scalar và vice versa
- CVTPI2PS: Chuyển đổi các giá trị nguyên dword (kiểu packed) sang các giá trị thực độ chính xác đơn
(kiểu packed)
- Các lệnh khác: CVTSI2SS, CVTPS2PI, CVTTPS2PI, CVTSS2SI, CVTTSS2SI
Các lệnh quản lý trạng thái MXCSR cho ph p lưu lại và khôi phục trạng thái của thanh ghi trạng
thái và thanh ghi điều khiển MXCSR
- LDMXCSR: Nạp thanh ghi MXCSR
- STMXCSR: Lưu lại trạng thái của thanh ghi MXCSR
Các lệnh số nguyên SIMD 64-bit của SSE biểu diễn toán tử cộng trên các byte, word, hoặc dword (kiểu
packed) được chứa trong các thanh ghi MMX
- PAVGB: Tính toán giá trị trung bình của các số nguyên byte không dấu (kiểu packed)
- PAVGW: Tính toán giá trị trung bình của các giá trị nguyên word không dâu (kiểu packed)
- Các lệnh khác: PEXTRW, PINSRW, PMAXUB, PMAXSW, PMINUB, PMINSW, PMOVMSKB,
PMULHUW, PSADBW, PSHUFW
Các lệnh điều khiển “cacheability” cung cấp khả năng điều khiển việc lưu trữ dữ liệu không phụ thuộc
thời gian khi lưu trữ dữ liệu từ các thanh ghi MMX và XMM vào bộ nhớ
- MASKMOVQ: Lưu trữ “non- temporal” các byte được chọn từ thanh ghi MMX vào bộ nhớ
- Các lệnh khác: MOVNTQ, MOVNTPS, PREFETCHh, SFENCE
2 SSE2 Instructions
Tập lệnh SSE2 chỉ có thể được thực thi trên các bộ xử lý Intel 64 và IA-32 có hỗ trợ thành phần mở rộng
SSE2
Trang 162.1 SSE2 Packed and Scalar Double-Precision Floating-Point Instructions
Các lệnh thao tác trên số thực độ chính xác k p (kiểu đóng gói và vô hướng) được phân loại thành các nhóm
Các lệnh dịch chuyển dữ liệu giúp di chuyển dữ liệu thực độ chính xác k p giữa các thanh ghi XMM và
giữa các thanh ghi XMM và bộ nhớ
- MOVAPD: Chuyển 2 giá trị thực độ chính xác k p sắp thẳng hàng giữa các thanh ghi XMM hoặc giữa
thanh ghi XMM và bộ nhớ
- MOVUPD: Chuyển 2 giá trị thực độ chính xác k p không sắp thẳng hàng giữa các thanh ghi XMM
hoặc giữa thanh ghi XMM và bộ nhớ
Trang 17- MOVHPD (Chuyển giá trị thực độ chính xác k p ở mức cao): Chuyển toán hạng thực độ chính xác k p
64-bit từ bộ nhớ tới Qword của một thanh ghi XMM hoặc vice versa
- MOVLPD (Chuyển giá trị thực độ chính xác k p ở mức thấp): Chuyển toán hạng thực độ chính xác k p
64-bit từ bộ nhớ tới Qword ở mức thấp của một thanh ghi XMM hoặc vice versa
- MOVMSKPD: Rút bộ lọc dấu từ 2 giá trị thực độ chính xác k p
- MOVSD: Chuyển giá trị vô hướng thực độ chính xác k p giữa các thanh ghi XMM hoặc giữa thanh ghi
XMM và bộ nhớ
Các lệnh số học biểu diễn ph p cộng, trừ, nhân, chia, căn bậc hai, và các toán hạng lớn nhất/ nhỏ nhất trong
các toán hạng thực độ chính xác k p kiểu packed và kiểu vô hướng
- ADDPD: Cộng các giá trị thực độ chính xác k p (kiểu packed)
- ADDSD: Cộng các giá thực độ chính xác k p (kiểu vô hướng)
- SUBPD: Trừ các giá trị thực độ chính xác k p (kiểu packed)
- SUBSD: Trừ các giá trị thực độ chính xác k p (kiểu vô hướng)
- MULPD: Nhân các giá trị thực độ chính xác k p (kiểu packed)
- MULSD: Nhân các giá trị thực độ chính xác k p (kiểu vô hướng)
- DIVPD: Chia các giá trị thực độ chính xác k p (kiểu packed)
- DIVSD: Chia các giá trị thực độc hính xác k p (kiểu vô hướng)
- Tương tự còn một số lệnh nữa: + SQRTPD, SQRTSD
+ MAXPD, MAXSD + MINPD, MINSD
Các lệnh logic của SSE2 biểu diễn các toán tử AND, AND NOT, OR, và XOR trên các giá trị thực độ chính
xác đơn kiểu packed
- ANDPD: Biểu diễn ph p AND theo từng cặp bit đối với các giá trị thực độ chính xác k p kiểu packed
- ANDNPD: Biểu diễn ph p AND NOT theo từng bit đối với các giá trị thực độ chính xác k p kiểu packed
- Tương tự, cũng có những lệnh: ORPD, XORPD
Các lệnh so sánh của SSE2 so sánh các giá trị thực độ chính xác k p kiểu packed và kiểu vô hướng Sau đó,
trả lại kết quả so sánh hoặc về toán hạng đích, hoặc về thanh ghi EFLAGS
- CMPPD: So sánh các giá trị thực độ chính xác k p kiểu packed
- CMPSD: So sánh các giá trị thực độ chính xác k p kiểu vô hướng
- COMISD: Biểu diễn sự so sánh theo thứ tự của các giá trị độ chính xác k p kiểu vô hướng và thiết lập các
cờ trong thanh ghi EFLAGS
- UCOMISD: Biểu diễn sự so sánh không theo thứ tự của các giá trị độ chính xác k p kiểu vô hướng và thiết
lập các cờ trong thanh ghi EFLAGS
Trang 182.1.5 SSE2 Shuffle and Unpack Instructions
Các lệnh xáo trộn và tháo gỡ cho ph p trộn lẫn hoặc xen các giá trị thực độ chính xác k p vào trong các toán
hạng thực độ chính xác k p kiểu packed
- SHUFPD: Trộn lẫn các giá trị trong các toán hạng thực độ chính xác k p kiểu packed
- UNPCKHPD: Tháo gỡ và xen các giá trị mức cao từ hai toán toán hạng thực độ chính xác k p
Các lệnh chuyển đổi của SSE2 cho ph p chuyển đổi các số nguyên Dword kiểu packed/kiểu individual sang
các giá trị thực độ chính xác k p kiểu vô hướng/ packed và ngược lại Chúng cũng chuyển đổi giữa các giá
trị thực độ chính xác k p/ độ chính xác đơn, kiểu packed/ vô hướng
- CVTPD2PI: Chuyển đổi các giá trị thực độ chính xác k p sang số nguyên Dword (packed)
- Tương tự ta có các lệnh chuyển đổi:
(CVTTPD2PI, CVTPI2PD, CVTPD2DQ, CVTTPD2DQ, CVTDQ2PD, CVTPS2PD, CVTPD2PS,
CVTSS2SD, CVTSD2SS, CVTSD2SI, CVTTSD2SI, CVTSI2SD)
Các lệnh giá trị thực độ chính xác đơn (kiểu packed) của SSE2 biểu diễn sự chuyển đổi trên các toán hạng
thực độ chính xác đơn và các toán hạng nguyên
- CVTDQ2PS: Chuyển đổi các giá trị nguyên dword (kiểu packed) thành các giá trị thực độ chính xác đơn
Các lệnh số nguyên SIMD của SEE2 biểu diễn thao tác cộng trên các word, dword, qword (kiểu packed)
chứa trong các thanh ghi XMM và MMX
- MOVDQA: Di chuyển Double Qword được xếp thẳng hàng
- MOVDQU: Di chuyển Double Qword không xếp thẳng hàng
- Còn một số lệnh khác như:
(MOVQ2DQ, MOVDQ2Q, PMULUDQ, PADDQ, PSUBQ, PSHUFLW, PSHUFHW, PSHUFD,
PSLLDQ, PSRLDQ, PUNPCKHQDQ, PUNPCKLQDQ)
Tập lệnh điều khiển “cacheability” cung cấp thêm các thao tác cho sự lưu trữ dữ liệu không phụ thuộc thời
gian khi lưu trữ dữ liệu từ các thanh ghi XMM vào bộ nhớ LFENCE và MFENCE cung cấp thêm sự điều
khiển sắp xếp thứ tự các quá trình lưu trữ
- Các lệnh thành phần: CLFLUSH, LFENCE, MFENCE, PAUSE, MASKMOVDQU, MOVNTPD,
MOVNTDQ, MOVNTI