Vào ngày 2 tháng 3năm 2008, Intel thông báora đờivi xử lý mới (tên
mã Silverthorne) để sử dụng trong các Máy tínhcá nhân siêu di động/Thiết
bị Internet di động(MID) sẽ thế chỗ Intel A100.
Và cùng lúc đóIntel cũng ''hé l ộ'' thông tin về một bộ xử lý mới cho
nền tảng di động, dưới tên mã Diamondville, được cho là để cạnh tranh với
bộ xử lý Geode x86 giá rẻ củađối thủ lâu năm AMD. Tuy vậy, bộ xử lý mới
này được Intel (cố tình) bán với thương hiệuAtom.
Silverthorne và Diamondville đều dựa trên vi kiến trúc giống nhau.
Silverthorne sẽ được gọi là các xê-ri Atom Z và Diamondville là Atom N.
Đắt và tiêu thụ điện ít hơn là Silverthorne sẽ được sử dụng trong các thiết bị
MIDcòn Diamondville sẽ được sử dụng trong các máy xách tay và để bàn
giá rẻ.
39 trang |
Chia sẻ: tuandn | Lượt xem: 3301 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Kỹ thuật vi xử lý - Tìm hiểu kiến trúc vi xử lý Intel Atom, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KTVXL– D08CNTT3 – Nhóm 8 Page 1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Khoa công nghệ thông tin
------o0o--------
BÁO CÁO
KỸ THUẬT VI XỬ LÝ
Đề tài:
Tìm hiểu kiến trúc VXL Intel Atom
Nhóm 8:
Nguyễn Thị Trang
Văn Thị Thu Trang
Vũ Hải Trung
Quang Trung
Vũ Xuân Trường
KTVXL– D08CNTT3 – Nhóm 8 Page 2
Tìm hiểu kiến trúc VXL Intel Atom ( Phiên bản Intel® Atom™
Processor N550).
Mục lục:
I. Giới thiệu chung về VXL Intel Atom và phiên bản Intel®
Atom™ Processor N550.
II. Kiến trúc
III. Tập lệnh
IV. Các công nghệ mới tích hợp
V. Kết luận.
VI. Nguồn tài liệu
KTVXL– D08CNTT3 – Nhóm 8 Page 3
Mở đầu.
Vào ngày 2 tháng 3 năm 2008, Intel thông báo ra đời vi xử lý mới (tên
mã Silverthorne) để sử dụng trong các Máy tính cá nhân siêu di động/Thiết
bị Internet di động (MID) sẽ thế chỗ Intel A100.
Và cùng lúc đó Intel cũng ''hé lộ'' thông tin về một bộ xử lý mới cho
nền tảng di động, dưới tên mã Diamondville, được cho là để cạnh tranh với
bộ xử lý Geode x86 giá rẻ của đối thủ lâu năm AMD. Tuy vậy, bộ xử lý mới
này được Intel (cố tình) bán với thương hiệu Atom.
Silverthorne và Diamondville đều dựa trên vi kiến trúc giống nhau.
Silverthorne sẽ được gọi là các xê-ri Atom Z và Diamondville là Atom N.
Đắt và tiêu thụ điện ít hơn là Silverthorne sẽ được sử dụng trong các thiết bị
MID còn Diamondville sẽ được sử dụng trong các máy xách tay và để bàn
giá rẻ.
I. Giới thiệu chung
Intel Atom là tên nhãn hiệu cho dòng CPU x86 của Intel, tên mã
trước đó là bộ xử lý Silverthorne và Diamondville, thiết kế cho một tiến
trình CMOS cỡ 45 nm dự định dùng cho máy tính siêu di động, điện thoại
thông minh và các thiết bị bỏ túi cần tiêu thụ điện năng thấp.
Intel® Atom™ - Bộ vi xử lý tí hon Intel® Atom™ có 47 triệu bóng
bán dẫn dựa trên công nghệ 45nm High-K. Intel® Atom™ có kích thước
cực nhỏ - 25 milimet vuông – 11 bộ vi xử lý tí hon Intel® Atom™ hợp lại
với nhau mới lớn bằng đồng 1 xu USA (vui lòng nhìn hình dưới) - điều đặc
biệt nhất là bộ vi xử lý tí hon Intel® Atom™ này có công suất tiêu thụ điện
KTVXL– D08CNTT3 – Nhóm 8 Page 4
vào khoảng 2.4W – đây là khả năng tiết kiệm điện cực tốt (tiết kiệm hơn
90% lượng điện năng tiêu thụ)
Sự ra đời của Intel® Atom™ Processor N550
Thứ 2 ngày 23/8/2010, Intel đã phát hành chip Atom lõi kép N550 cải
thiện ứng dụng và hiệu năng đồ họa cho netbook đồng thời kéo dài thời gian
làm việc của pin.
BXL Intel Atom N550 dual-core.
Bộ xử lý (BXL) Atom N550 là một nâng cấp lớn từ những BXL trước
đó trong dòng Atom mà chủ yếu bao gồm các chip đơn nhân.
KTVXL– D08CNTT3 – Nhóm 8 Page 5
N550 là mẫu vi xử lý Intel Atom 2 nhân đầu tiên dành cho Netbook.
Nó không chỉ mạnh hơn mà còn hỗ trợ những công nghệ mới, hỗ trợ tốt hơn
cho các ứng dụng multimedia như game, video HD, cũng như công nghệ
Adobe Flash để truy cập một số lượng lớn các trang Web nội dung đa
phương tiện.
Intel Atom N550 có tốc độ 1,5GHz, 2 nhân, 4 luồng (nhờ công nghệ
HT-Hyper Threading), bộ nhớ Cache 1MB, công nghệ xuất nguyên khối
45nm với GPU GMA 3150 tích hợp ngay trên nhân xử lý, có tốc độ xử lý đồ
họa 200MHz. Đây cũng là vi xử lý Atom đầu tiên hỗ trợ bộ nhớ DDR3. Với
mức tiêu thụ điện TDP tối đa chỉ 8,5W, dòng vi xử lý này cho thời gian sử
dụng pin dài không kém là bao so với bộ vi xử lý đơn nhân Intel Atom
N450. Với kiến trúc 2 nhân xử lý, N550 đã được giảm tốc độ từ 1,66MHz
của N450 xuống còn 1,5GHz để giảm mức tiêu thụ điện. Ngoài ra, tuy mức
Max TDP của N550 cao hơn 3W so với N450, nhưng hệ thống được bù lại
với việc sử dụng DDR3 vốn ít hao điện hơn DDR2. N550 hỗ trợ bộ lệnh 64-
bit như của N450.
Tuy nhiên đây không phải là BXL Atom lõi kép đầu tiên. Intel đã phát
hành BXL Atom 330 và được dùng ở một số MTXT. Chip này dựa trên thiết
kế bộ vi xử lý máy tính để bàn.
II. Kiến trúc.
1. Đặc điểm cấu trúc của vi xử lý
- Sản xuất theo công nghệ 45nm.
KTVXL– D08CNTT3 – Nhóm 8 Page 6
- Hỗ trợ NX bit và tập lệnh SSE2, SSE3, SSSE3.(NX bit là không thực
thi, là một công nghệ sử dụng CPU để phân biệt các khu vực bộ nhớ
để lưu trữ lệnh và dữ liệu)
- Kênh dữ liệu nội 128-bit (Digital Media Boost):
o 2 cổng được dùng để phân phối các lệnh SIMD (Single
Information, Multiple Data) tới đơn vị xử lý.
o Một chu kì đơn cho phép dòng lệnh SIMD nhiều nhất 128-bit
integer.
o Một chu kì, cho phép tính toán với những toán hạng có 6 số sau
dấu phẩy động.
- Atom có pipeline 16 bước.
- Có trang bị công nghệ siêu phân luồng HyperThreading :(Intel HT
Technology):
- Công nghệ Enhanced Speed Step : Nhiều mức điện áp và xung nhịp
vận hành mang lại hiệu suất hoạt động tối ưu ở mức tiêu thụ điện năng
thấp nhất, cho phép hiệu suất hoạt động phù hợp nhất với mỗi nhu cầu
ứng dụng.
- Tính năng nạp dữ liệu (Enhanced Data Prefetcher) và quản lý
Enhanced Register Access Manager: Dự đoán những dữ liệu mà bộ vi
xử lý có thể cần đến và lưu trữ các thông tin đó trong bộ nhớ đệm L2
của bộ vi xử lý, giúp nâng cao hiệu suất hoạt động do bộ vi xử lý
không phải chờ lâu khi nạp các dữ liệu.
- Bộ nhớ đệm thông minh - Intel Smart Cache: Bộ nhớ đệm và kênh
truyền hệ thống được thiết kế cho việc chia sẻ dữ liệu hiệu quả, mang
KTVXL– D08CNTT3 – Nhóm 8 Page 7
lại hiệu suất hoạt động, tính nhạy bén, và khả năng tiết kiệm điện năng
tốt hơn.
o Cache L2 là 512KB với 8 cổng liên kết.
o Tối ưu môi trường thực thi cho xử lý đơn luồng và đa luồng.
o 256 bit dữ liệu trong giữa L1 và L2 làm tăng băng thông.
- Hỗ trợ kiến trúc Intel 64 bit.
- Tiêu tốn cực kì ít điện với TDP (Thermal Design Power) chỉ có 8.5W.
- Advanced Micro-Ops Execution:
Một dòng lệnh được thực thi bằng cách giải mã các lệnh, bao
gồm các lệnh chỉ với thanh ghi, nạp và lưu trữ.
Pipeline 16 bước, tối ưu hiệu suất và giảm điện năng tiêu thụ.
2 đường ống(pipelines) được dùng để giải mã, xuất ra, thực
hiện và dừng. Mỗi chu kì có thể thực hiện cùng lúc 2 lệnh.
Nâng cao bộ nhớ stack để thực thi được nhiều hơn các chức
năng vào/ra.
- Efficient Memory Access (Hiệu suất truy cập bộ nhớ).
Thông tin về phần cứng sẽ được nạp trước vào L1 và L2, việc
nạp dữ liệu giống như 1 yêu cầu từ vi xử lý để giảm áp lực cho
cache.
KTVXL– D08CNTT3 – Nhóm 8 Page 8
3. Các khối chính.
Sơ đồ cơ bản của 1 CPU
KTVXL– D08CNTT3 – Nhóm 8 Page 9
Kiến trúc máy tính Atom đã từ 3 chip trước đây (bên trái) giờ
thành 2 chip.
a. ALU:
- Atom được trang bị 2 khối ALU (khối tính toán) và 2 khối FPU
(dùng tính toán các phép tính với dấu phẩy động).
- Khối ALU thứ nhất quản lý các phép dịch và khối thứ 2 quản lý các
phép nhảy (jump). Tất cả các phép tính cộng và nhân được chuyển tới FPU
( ngoại trừ với các số nguyên).
- Khối FPU thứ nhất dùng tính các phép cộng, trong khi khối thứ 2
quản lý các lệnh SIMD và các phép nhân/chia.
KTVXL– D08CNTT3 – Nhóm 8 Page 10
b. Memory Cache:
- Memory Cache là một kiểu bộ nhớ hiệu suất cao, cũng được gọi là
bộ nhớ tĩnh. Kiểu bộ nhớ đã sử dụng trên bộ nhớ RAM chính của máy tính
được gọi là bộ nhớ động. Bộ nhớ tĩnh tiêu tốn nhiều năng lượng điện hơn,
đắt hơn và có kích thước vật lý lớn hơn so với bộ nhớ động, tuy nhiên nó lại
chạy nhanh hơn. Nó có thể làm việc với cùng tốc độ clock của CPU, điều mà
bộ nhớ động không thể thực hiện được.
- Vào “thế giới bên ngoài” để tìm nạp dữ liệu làm cho CPU phải làm
việc ở tốc độ clock thấp hơn do vậy mà kỹ thuật cache nhớ được sử dụng ở
đây để khắc phục nhược điểm này. Khi CPU nạp dữ liệu từ một vị trí nhớ
KTVXL– D08CNTT3 – Nhóm 8 Page 11
nào đó thì mạch có tên gọi là memory cache controller nạp vào cache nhớ
một khối dữ liệu bên dưới vị trí hiện hành mà CPU đã nạp. Vì các chương
trình được thực hiện theo thứ tự nên vị trí nhớ tiếp theo mà CPU sẽ yêu cầu
có thể là vị trí ngay dưới vị trí nhớ mà nó đã nạp. Do memory cache
controller đã nạp rất nhiều dữ liệu dưới vị trí nhớ đầu tiên được đọc bởi CPU
nên dữ liệu kế tiếp sẽ ở bên trong cache nhớ, chính vì vậy CPU không cần
phải thực hiện thao tác lấy dữ liệu bên ngoài: nó đã được nạp vào bên trong
cache nhớ nhúng trong CPU, chính vì nhúng trong CPU mà chúng có thể
truy cập bằng tốc độ clock trong.
- Cache controller luôn luôn quan sát các vị trí nhớ đã và đang được
nạp dữ liệu từ một vài vị trí nhớ sau khi vị trí nhớ vừa được đọc. Một ví dụ
thực tế, nếu một CPU đã nạp dữ liệu được lưu tại địa chỉ 1.000 thì cache
controller sẽ nạp dữ liệu từ “n” địa chỉ sau địa chỉ 1.000. Số “n” được gọi là
trang; nếu một bộ vi xử lý này làm việc với 4KB trang (giá trị điển hình) thì
nó sẽ nạp dữ liệu từ các địa chỉ 4.096 dưới vị trí nhớ hiện hành đang được
nạp (địa chỉ 1.000 trong ví dụ). 1KB bằng 1.024 byte, do đó là 4,096 chứ
không phải 4,000.
Memory cache controller làm việc như thế nào?
KTVXL– D08CNTT3 – Nhóm 8 Page 12
Memory cache càng lớn thì cơ hội cho dữ liệu yêu cầu bởi CPU ở đây
càng cao, chính vì vậy CPU sẽ giảm sự truy cập trực tiếp vào bộ nhớ RAM,
do đó hiệu suất hệ thống tăng (hãy nên nhớ rằng khi CPU cần truy cập trực
tiếp vào bộ nhớ RAM thì nó phải thực hiện ở tốc độ clock thấp hơn nên giảm
hiệu suất của toàn hệ thống).
Chúng ta gọi là “hit” khi CPU nạp một dữ liệu yêu cầu từ cache và
“miss” nếu dữ liệu yêu cầu không có ở đó và CPU cần phải truy cập vào bộ
nhớ RAM của hệ thống.
L1 và L2 tương ứng là “Level 1” và “Level 2”, được đại diện cho
khoảng cách chúng cách lõi CPU (khối thực thi). Một sự ngờ vực hay có ở
đây là tại sao có đến 3 bộ nhớ Cache (L1 data cache, L1 instruction cache và
L2 cache). Hãy chú ý trên hình và bạn sẽ thấy được rằng L1 instruction
cache làm việc như một “input cache”, trong khi đó L1 data cache làm việc
như một “output cache”. L1 instruction cache – thường nhỏ hơn L2 cache –
chỉ hiệu quả khi chương trình bắt đầu lặp lại một phần nhỏ của nó (loop), vì
các chỉ lệnh yêu cầu sẽ gần hơn với khối tìm nạp.
c. Pipeline
- Atom có pipeline 16 bước, dài hơn so với các CPU Core 2 hiện nay.
Điều này được thực hiện với một số lý do:
Thứ nhất, điều này làm giảm điện năng tiêu thụ, làm giảm sự
tỏa nhiệt không cần thiết. Với các bước nhiều hơn, xác suất có
các thành phần nghỉ nhiều hơn so với các CPU có ít bước hơn,
do vậy ta có thể tắt đi một số bước không thực sự cần thiết để
tiết kiệm điện năng.
Một ưu điểm khác trong pipeline dài hơn sẽ làm cho các vi kiến
trúc có thể đạt được tốc độ đồng hồ cao hơn.
KTVXL– D08CNTT3 – Nhóm 8 Page 13
Kết quả kiểm tra bằng CPU-Z
III. Kiến trúc tập lệnh.
Intel Atom N550
Là bộ VXL 2 nhân hỗ trợ kiến trúc Intel 64 và các tập lệnh mở rộng
MMX,SSE,SSE2,SS3,SSSE3
1. Kiến trúc Intel 64:
Hỗ trợ 2 chế độ hoạt động:chế độ tương thích và chế độ 64bits cho
phép HĐH 64-bit chạy các ứng dụng 32bits và 64bits.
a. Các đặc trưng:
KTVXL– D08CNTT3 – Nhóm 8 Page 14
Cơ chế xử lý song song là song song các lệnh mã máy (EPIC) thay vì
các bộ xử lý song song như hệ thống đa bộ xử lý.
Các lệnh dài hay rất dài (LIW hay VLIW).
Các lệnh rẽ nhánh xác định (thay vì đoán các lệnh rẽ nhánh như
trước).
Nạp trước các lệnh.
Có nhiều thanh ghi: số lượng thanh ghi các bộ xử lý kiến trúc IA-64 là
256 thanh ghi. Trong đó, 128 thanh ghi tổng quát (GR) 64 bit cho các
tính toán số nguyên, luận lý; 128 thanh ghi 82 bit (FR) cho các phép
tính dấu chấm động và dữ liệu đồ hoạ; ngoài ra, còn có 64 thanh ghi
thuộc tính (PR)1 bit để chỉ ra các thuộc tính lệnh đang thi hành.
Nhiều bộ thi hành lệnh: một máy tính có thể có tám hay nhiều hơn các
bộ thi hành lệnh song song. Các bộ thi hành lệnh này được chia thành
bốn kiểu:
o Kiểu I (I-Unit): dùng xử lý các lệnh tính toán số nguyên, dịch,
luận lý, so sánh, đa phương tiện.
o Kiểu M (M-Unit): Nạp và lưu trữ giữa thanh ghi và bộ nhớ
thêm vào một vài tác vụ ALU.
o Kiểu B (B-Unit): Thực hiện các lệnh rẽ nhánh.
o Kiểu F (F-Unit): Các lệnh tính toán số dấu chấm động
b. Định dạng lệnh:
Kiến trúc IA-64 định nghĩa một gói (buldle) 128 bit chứa ba lệnh (mỗi
lệnh dài 41 bit) và một trường mẫu (template field) 5 bit. Bộ xử lý có thể lấy
một hay nhiều gói lệnh thi hành cùng lúc. Trường mẫu (template field) này
chứa các thông tin chỉ ra các lệnh có thể thực hiện song song . Các lệnh
trong một bó có thể là các lệnh độc lập nhau. Bộ biên dịch sẽ sắp xếp lại các
lệnh trong các gói lệnh kề nhau theo một thứ tự để các lệnh có thể được thực
hiện song song
KTVXL– D08CNTT3 – Nhóm 8 Page 15
Hình (a) chỉ ra định dạng lệnh trong kiến trúc IA-64. Hình (b) mô tả
dạng tổng quát của một lệnh trong gói lệnh. Trong một lệnh, mã lệnh chỉ có
4 bit chỉ ra 16 khả năng có thể để thi thi hành một lệnh và 6 bit chỉ ra thanh
ghi thuộc tính được dùng với lệnh. Tuy nhiên, các mã tác vụ này còn tuỳ
thuộc vào vị trí của lệnh bên trong gói lệnh, vì vậy khả năng thi hành của
lệnh nhiều hơn số mã tác vụ được chỉ ra. Hình (c) mô tả chi tiết các trường
trong một lệnh (41 bit)
2. Các tập lệnh SIMD(Single Instruction,Multiple Data) hỗ trợ Intel
Atom N550.
a. SSE2 là một cải tiến đáng kể SSE với 144 hướng dẫn mới-hỗ trợ
các lệnh số nguyên với thanh ghi 128 bit. SSE2 thêm hướng dẫn toán học
mới cho độ chính xác kép(64 bit) và dấu chấm động cũng mở rộng MMX
hướng dẫn để hoạt động trên các thanh ghi XMM-128bit.SSE2 cho phép lập
trình để thực hiện các toán SIMD trên bất kỳ loại dữ liệu (từ số nguyên 8-bit
đến 64 bit-float) hoàn toàn với các thanh ghi XMM, mà không cần phải sử
dụng những di sản MMX hoặc FPU. Nhiều người lập trình xem xét SSE2 để
được "tất cả mọi thứ SSE cần phải có được như SSE2” cung cấp một tập hợp
các trực giao của các hướng dẫn xử lý các dữ liệu phổ biến các loại.
KTVXL– D08CNTT3 – Nhóm 8 Page 16
VD:
Số học:
addpd-Thêm 2 64bit tăng gấp đôi.
mulpd - 2 64bit sẽ nhân đôi.
divpd - chia đôi 2 64bit.
Logic:
andnpd-logic không ANDs 2 64bit tăng gấp đôi.
pand - logic ANDs 2 128bit đăng ký.
So sánh:
cmppd -So sánh 2 cặp đôi 64bit.
So sánh Codes:
eq-Bằng.
lt-Ít hơn.
le-Nhỏ hơn hoặc bằng.
ne-Không phải bằng nhau.
nlt-Không ít hơn.
nle-Không ít hơn hoặc bằng.
ord-đặt hàng.
unord-có thứ tự.
Chuyển đổi:
cvtdq2pd-Chuyển đổi 2 vào 2 số nguyên 32bit 64bit tăng
gấp đôi.
Load / Store:
movq - Di chuyển một giá trị 64bit, giải tỏa 64bits đầu
trang của một XMM đăng ký.
Shuffling:
pshufd-Shuffles 32bit giá trị trong một cách phức tạp.
Cache Control:
KTVXL– D08CNTT3 – Nhóm 8 Page 17
clflush-flushes một Line Cache từ tất cả các cấp bộ nhớ
cache.
lfence-Đảm bảo rằng tất cả các bộ nhớ tải ban hành trước
lfence hướng dẫn được hoàn tất trước khi anyloads sau
khi lfence hướng dẫn.
mfence-hướng dẫn được hoàn thành trước khi đọc hoặc
viết sau khi mfence hướng dẫn.
pause-thực hiện tạm dừng cho một khoảng thời gian.
b. SSE3 còn gọi là Prescott New Instruction(PNI), là một nâng cấp của
SSE2 với 13 hướng dẫn mới thêm một số ít các định hướng toán học DSP và
quá trình hướng dẫn một số hướng dẫn quản lý,xử lý các số thực dấu phẩy
động.
VD:
Số học:
addsubpd-Thêm hai đôi trên và trừ đi phía dưới hai.
addsubps-Thêm đĩa đơn đầu và trừ đơn dưới cùng.
haddpd-Top gấp đôi là tổng của đáy, đáy và đỉnh là tổng của hai
toán hạng của trang thứ hai và dưới cùng.
haddps-Ngoài ngang chính xác của các giá trị duy nhất.
hsubpd-ngang trừ chính xác giá trị tăng gấp đôi.
hsubps-ngang trừ chính xác giá trị duy nhất.
Load/Store:
lddqu-128bit unaligned tải một giá trị.
movddup-tải 64bits và bản sao nó ở trên và dưới nửa của một
đăng ký 128bit.
movshdup-Bản sao các cao và thấp đĩa đơn thành đĩa đơn cao.
movsldup-Bản sao các đĩa đơn thành thấp và thấp đĩa đơn cao.
fisttp-Chuyển đổi một giá trị điểm nổi đến một số nguyên bằng
KTVXL– D08CNTT3 – Nhóm 8 Page 18
cách sử dụng cắt ngắn.
Quy trình kiểm soát:
monitor-Bộ lập một khu vực để giám sát cho hoạt động.
mwait-Đợi cho đến khi hoạt động sẽ xảy ra trong một khu vực
xác định bởi monitor
c. SSSE3(Supplemental Streaming SIMD Extensions 3)là một nâng cấp
của SSE3 thêm 16 hướng dẫn mới trong đó bao gồm permuting các byte
trong một từ, nhân 16-bit đểm làm tròn số cố định với độ chính xác cao
VD:
psignd-Cung cấp cho 32bit số nguyên cường độ các dấu hiệu
của các toán hạng thứ 2.
psignw-Cung cấp cho 16bit số nguyên cường độ các dấu hiệu
của các toán hạng thứ 2.
psignb-Cung cấp cho 8 bit số nguyên cường độ các dấu hiệu
của các toán hạng thứ 2.
phaddd-ngang bổ sung các số nguyên unsigned 32bit.
phaddw-ngang bổ sung các số nguyên unsigned 16bit.
phaddsw- Ngoài ngang bão hòa của các số nguyên 16bit.
phsubd-ngang trừ các số nguyên unsigned 32bit.
phsubw-ngang trừ các số nguyên unsigned 16bit.
phsubsw-ngang trừ bão hòa của 16bit từ.
pmaddubsw-Nhân-tích lũy hướng dẫn (cuối cùng).
pabsd - abs():cho số nguyên 32 bit.
pabsw - abs():cho số nguyên 16bit.
pabsb - abs():cho 8 bit số nguyên.
pmulhrsw-16bit số nguyên nhân, các cửa hàng hàng đầu của kết
quả 16bits.
pshufb-Một hướng dẫn shuffle phức tạp.
KTVXL– D08CNTT3 – Nhóm 8 Page 19
palignr-Kết hợp hai giá trị đăng ký, và chất chiết xuất từ một-
chiều rộng giá trị đăng ký từ nó, dựa trên một bù đắp.
Bổ sung:
Kiến trúc Intel64
Các thanh ghi bên trong: 64 bit.
Xử lý các phép toán số nguyên với 64-bit.
Xử lý các phép toán số dấu chấm động.
Không tương thích phần cứng với các bộ xử lý trước đó.
Tương thích phần mềm bằng cách giả lập môi trường.
Không gian địa chỉ
+ 64 bits không gian địa chỉ tuyến tính cho phần mềm
+ 40 bits không gian địa chỉ vật lý
Hỗ trợ 2 chế độ hoạt động:
+ chế độ tương thích: cho phép hệ điều hành 64 bit chạy các
ứng dụng 32 bit
+ chế độ 64 bits: cho phép hệ điều hành 64-bit chạy các ứng
dụng 64 bits
Các lệnh MMX có thể xử lý hiệu quả các mảng hoặc các luồng
số nguyên
Các lệnh SSE có thể xử lý cả số nguyên và số thực. Chúng có
thể được sử dụng hiệu quả trong các ứng dụng 3D hoặc nén và
giải nén hình ảnh
KTVXL– D08CNTT3 – Nhóm 8 Page 20
SSE2 mở rộng khả năng của SSE – hỗ trợ các lệnh số nguyên
với các thanh ghi XMM 128 bits
SSE3, SSE4 cung cấp các lệnh xử lý hiệu quả các số thực dấu
phẩy động
2. KIẾN TRÚC TẬP LỆNH INTEL64
Tài liệu tham khảo:
- Slide KTMT của Th.S Dương Thị Thùy Vân
- Giáo trình KTMT của Đại học Cần Thơ
2.1. Tập lệnh
- Mỗi bộ xử lý có một tập lệnh xác định
- Tập lệnh thường có hàng chục đến hàng trăm lệnh
- Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu được để thực hiện
một thao tác xác định
- Các lệnh được mô tả bằng kí hiệu gợi nhớ gọi là các lệnh của hợp ngữ
* Thực thi lệnh được chia thành các giai đoạn. Tiêu biểu có 4 giai đoạn:
- Nạp lệnh (IF) : lệnh được nạp từ bộ nhớ vào CPU
- Giải mã lệnh (ID) : CPU “đọc lệnh”
- Thực thi lệnh : lệnh được CPU thực thi
- Ghi kết quả (WB) : các kết quả xử lý (nếu có) được ghi lại vào
thanh ghi hoặc bộ nhớ.
* Các thành phần của lệnh máy
Mã lệnh(operation code → opcode) : mã hóa thao tác mà bộ xử lý
phải thực hiện.
Địa chỉ toán hạng : chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác
động.
KTVXL– D08CNTT3 – Nhóm 8 Page 21
– Toán hạng nguồn: dữ liệu vào của thao tác
– Toán hạng đích: dữ liệu ra của thao tác
*Các kiểu thao tác
- Chuyển dữ liệu
- Xử lý số học với số nguyên
- Xử lý logic
- Điều khiển vào-ra
- Chuyển điều khiển (rẽ nhánh)
- Điều khiển hệ thống
- Xử lý số dấu chấm động
- Xử lý các dữ liệu chuyên dụng
2.1.1. Các lệnh chuyển dữ liệu
MOVE : Copy dữ liệu từ nguồn đến đích
LOAD : Nạp dữ liệu từ bộ nhớ đến bộ xử lý
STORE : Cất dữ liệu từ bộ xử lý đến bộ nhớ
EXCHANGE : Trao đổi nội dung của nguồn và đích
CLEAR : Chuyển các bit 0 vào toán hạng đích
SET : Chuyển các bit 1 vào toán hạng đích
PUSH : Cất nội dung toán hạng nguồn vào ngăn xếp
POP : Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng
đích
2.1.2. Các lệnh số học
ADD : Cộng hai toán hạng
SUBTRACT : Trừ hai toán hạng
MULTIPLY : Nhân hai toán