1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu kiến trúc vi xử lý core i7 -990x

36 980 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 1,53 MB

Nội dung

Tìm hiểu kiến trúc vi xử lý core i7 -990x

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

Trang 2

Tì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 3

nhâ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 4

Ki ế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 6

Mạ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 7

Phầ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 8

Dự đ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 9

Tuy 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 10

Giao 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 11

Vì 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 12

Cụ 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 13

Tậ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 14

6 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 15

1.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 16

2.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 18

2.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

Ngày đăng: 25/03/2017, 10:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w