Tải bản đầy đủ (.doc) (62 trang)

Phân tích bộ VXL công nghệ MMX của INTEL 2019

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, 62 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
*
*
*

BÀI TẬP LỚN MÔN HỌC :

KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI:

PHÂN TÍCH BỘ VXL CÔNG NGHỆ
MMX CỦA INTEL

-------------------Giáo viên hướng dẫn: Ths Nguyễn Tuấn
Nhóm thực hiện:
Nhóm 13
Lớp:
ĐH CNTT4 K13

Hà Nội, Năm 2019




TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
*
*
*


BÀI TIỂU LUẬN MÔN HỌC :

KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI:

PHÂN TÍCH BỘ VXL CÔNG NGHỆ
MMX CỦA INTEL

-------------------Giáo viên hướng dẫn: Ths Nguyễn Tuấn
Sinh viên tham gia: 1. Bùi Thanh Sơn
2. Bùi Tuấn Ngọc
3. Nguyễn Văn Ngọc
Lớp:

ĐH CNTT4 K13

Hà Nội, Năm 2019




MỤC LỤC
Trang
LỜI NÓI ĐẦU............................................................................................................................1
CHƯƠNG 1 : TỔNG QUAN VỀ BỘ VXL CỦA INTEL.........................................................2
1.1. Giới thiệu về VXL...........................................................................................................2
Hình 1. 1: Một vi xử lý........................................................................................................2
Hình 1. 2: Lịch sử ra đời và phát triển của vi xử lý............................................................3
1.2. Chức năng chính, phân loại:............................................................................................3
1.3. Cấu trúc của bộ vi xử lý...................................................................................................4

Hình 1. 3: Sơ đồ khối chung của vi xử lý............................................................................4
1.3.1. Đơn vị xử lý trung tâm (CPU):.................................................................................5
Hình 1. 4: Đơn vị xử lý trung tâm CPU..............................................................................5
1.3.2. Bộ nhớ (Memory):....................................................................................................6
1.3.3. Các cổng vào/ra:.......................................................................................................6
Hình 1. 5: Các cổng vào/ra.................................................................................................6
1.3.4. Bus địa chỉ(Address bus):.........................................................................................6
1.3.5. Bus dữ liệu(Data bus):..............................................................................................7
1.3.6. Bus điều khiển(Control bus):....................................................................................7
Hình 1. 6: Bus điều khiển....................................................................................................7
1.4. Nguyên lý hoạt động của bộ VXL...................................................................................8
Hình 1. 7: Quá trình thi hành lệnh: Lấy lệnh – Giải mã lệnh – Thi hành lệnh..................8
Hình 1. 8: Giao tiếp cơ bản................................................................................................8
Hình 1. 9: Mã địa chỉ và bộ nhớ.........................................................................................9
Hình 1. 10: Quá trình đưa tín hiệu.....................................................................................9
Hình 1. 11: Các chân tín hiệu cơ bản của CPU...............................................................10
Hình 1. 12: Ghép VXL với bộ nhớ....................................................................................11
Hình 1. 13: Định thời ghi bộ nhớ......................................................................................11
Hình 1. 14: Định thời đọc bộ nhớ.....................................................................................12
1.5. Lập trình cho một VXL..................................................................................................12
CHƯƠNG 2 : CÔNG NGHỆ MMX CỦA INTEL..................................................................15
2.1. Giới thiệu về công nghệ MMX của Intel.......................................................................15
Hình 2. 1: Kiến trúc nội bộ của MMX..............................................................................16
Hình 2. 2: Một VXL của Intel dùng công nghệ MMX.......................................................17
2.2. Môi trường lập trình MMX............................................................................................17
2.3.Tập lệnh MMX...............................................................................................................18
2.3.1. Giới thiệu................................................................................................................18
Hình 2. 3: Bốn kiểu dữ liệu của MMX..............................................................................19
Hình 2. 4: Dữ liệu đồ họa điểm ảnh.................................................................................20
Hình 2. 5: Hướng dẫn lưu/khôi phục lại trạng thái..........................................................21

2.3.2. Bộ chỉ dẫn...............................................................................................................21
2.3.3. Điểm chuẩn.............................................................................................................23
Bảng 2.1.Hiệu suất khi dùng công nghệ MMX................................................................23
Bảng 2.2. Intel truyền thông Benchmark..........................................................................26
2.4.Hiệu suất khi dùng công nghệ MMX..............................................................................27
Bảng 2.3. So sánh Pentium bộ xử lý với công nghệ MMX và Pentium II bộ xử lý đối với
các bộ vi xử lý Pentium và bộ vi xử lý Pentium ® Pro Intel Truyền thông Benchmark. .28
2.5. Đa phương tiện mở rộng đệ trình...................................................................................28
CHƯƠNG 3 : BỘ VXL SỬ DỤNG CÔNG NGHỆ MMX CỦA INTEL................................33


3.1.Khái quát về tập đoàn Intel.............................................................................................33
Hình 3. 1: Bộ vi xử lý 4004...............................................................................................34
Hình 3. 2: Bộ vi xử lý 8008...............................................................................................35
Hình 3. 3: Bộ vi xử lý 8080...............................................................................................35
Hình 3. 4: Bộ vi xử lý 8086-8088......................................................................................35
Hình 3. 5: Bộ vi xử lý 286.................................................................................................36
3.2. Intel giới thiệu bộ vi xử lý 11 với Công nghệ MMX ™................................................36
3.2.1. Desktop Pentium ® Processor with MMX 233 MHz.............................................36
Hình 3. 6: Pentium ® Processor with MMX 233 MHz.....................................................36
Bảng 3.1: Thông tin kĩ thuật của Pentium ® Processor with MMX 233 MHz................37
Thông số kỹ thuật..................................................................................................................37
3.2.2. Intel Pentium MMX 166.........................................................................................39
Hình 3. 7: Intel Pentium MMX 166..................................................................................39
Bảng 3.2 : Thông tin chung và hiệu suất Intel Pentium MMX 166..................................40
Bảng 3.3: Các thông số kiến trúc của Intel Pentium MMX 166.......................................42
Bảng 3.4: Floating point hiệu suất....................................................................................43
MMX / SSE / SSE2 hiệu suất...........................................................................................44
Bảng 3.5: Thông tin về CPU ID........................................................................................45
3.3. Intel Pentium với công nghệ MMX OverDrive.............................................................47

Hình 3. 8: Intel Pentium với công nghệ MMX OverDrive................................................47
Bảng 3.6: Các thông số cơ bản của .Intel Pentium với công nghệ MMX OverDrive......50
3.4.Các bộ vi xử lý Pentium ® với công nghệ MMX TM....................................................54
Hình 3. 9: Pentium ® với công nghệ MMX TM................................................................54
Bảng 3.7: So sánh Pentium ® với công nghệ MMX TM..................................................55
Hình 3. 10: Cpu Pentium I with MMX (80586) Socket 7..................................................56
KẾT LUẬN...............................................................................................................................58


1


LỜI NÓI ĐẦU
Tập đoàn Intel (Integrated Electronics) thành lập vào ngày 18/7/1968, lúc đó
là tập đoàn hợp nhất về thiết bị điện tử, sản xuất ờ Santa Clara, (California, USA)
bởi nhà hoá học kiêm vật lí học Gordon E.Moore và Robert Noyce, sau khi họ đã
rời khỏi công ty Fairchild Semiconductor
Intel có 99.000 nhân viên tại 199 văn phòng và cơ sở sản xuất kinh doanh
trên toàn cầu. Năm 2005 doanh thu của Intel đạt hơn 38 tỷ USD, và Intel xếp thứ
50 trong các công ty lớn nhất thế giới.
Intel sản xuất các sản phẩm như chip vi xử lý cho máy tính, bo mạch chủ, ổ
nhớ flash, card mạng và các thiết bị máy tính khác. Intel Corporation là công ty sản
xuất thiết bị chất bán dẫn lớn nhất thế giới, và là nhà phát minh ra chuỗi vi mạch xử
lý thế hệ x86 mà bộ xử lý tìm thấy ở các máy tính cá nhân. Intel làm ra các sản
phẩm motherboard chipsets (con chip mạch chủ), network cards (Card mạng lưới)
and ICs (mạch tổ hợp), flash memory (bộ nhớ Flash), graphic chips (con chip đồ
họa), embedded processors (bộ ghi xử lý), và các thiết bị khác có liên quan đến tin
học và sự truyền thông.
Bộ VXL MMX ra đời năm 1996 là một bước tiến công nghệ lớn của Hãng
Intel. MMX là viết tắt của cụm từ Multi Media Extensions. CPU Intel MMX được

tăng cường một tập lệnh nhằm gia tăng khả năng của CPU đáp ứng nhu cầu về
multimedia(video, hình ảnh…).

Nhóm 13 thực hiện!

CHƯƠNG 1 : TỔNG QUAN VỀ BỘ VXL CỦA INTEL

2


1.1. Giới thiệu về VXL

Hình 1. 1: Một vi xử lý

Vi xử lý (VXL) là vi mạch bán dẫn hoạt động như một Ôtômát đặc biệt
chuyên xử lý tự động các số liệu theo những thuật toán tuần tự Von Neumann;
Về chức năng cơ bản, VXL hoạt động theo nhịp đồng hồ (Clock) điều khiển
theo những chu trình (Cycle) nhất định;

Hình 1. 2: Lịch sử ra đời và phát triển của vi xử lý

3


1.2. Chức năng chính, phân loại:
Thường xuyên canh những yêu cầu xin ngắt (interrupt) từ bên trong VXL, từ
thiết bị bên ngoài, hoặc lệnh của chương trình để chuyển sang chạy chương trình
phục vụ ngắt tương ứng
Thường xuyên canh các yêu cầu xin truy cập trực tiếp vào bộ nhớ (Direc
Memory

Access, DMA) từ một VXL khác, hoặc từ một thiết bị ngoại vi để cho phép
DMA bằng cách tự cắt ra khỏi các bus của mình;
Lấy các lệnh từ bộ nhớ, giải mà lệnh. thực hiện lệnh đó lên các biến để cho ra
các kết quả;
Các giao tiếp khác với bên ngoài (tức phát ra, hoặc nhận vào các thông báo
vềtrạng thái)
Bộ vi xử lý chia làm 3 loại như:
+Multi chip: dùng 2 hay nhiều chip LSI cho ALU và control
+Microprocessor: dùng 1 chip LSI/VLSI(Very large scale intergrantation) cho
ALU và control
+Single chip microprocessor: là 1 chip LSI/VLSI chứa toàn bộ các khối.

1.3. Cấu trúc của bộ vi xử lý

4


Hình 1. 3: Sơ đồ khối chung của vi xử lý

1.3.1. Đơn vị xử lý trung tâm (CPU):
- CPU có cấu tạo gồm có đơn vị xử lý số học và lôgic (ALU), các thanh ghi,
các khối lôgic và các mạch giao tiếp. Chức năng của CPU là tiến hành các thao tác
tính toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điều khiển nhằm thực hiện
một nhiệm vụ nào đó do người lập trình đưa ra thông qua các lệnh (Instructions).

5


Hình 1. 4: Đơn vị xử lý trung tâm CPU


- Bộ giải mã lệnh: có nhiệm vụ nhận dạng câu lệnh và điều khiển các mạch
khác theo lệnh đã giải mã. Việc giải mã đươpcj thực hiện nhờ có tập lệnh
“instruction set”. Mỗi họ vi điều khiển thường có các tập lệnh khác nhau.
- Arithmetical Logical Unit (ALU): Thực thi tất cả các thao tác tính toán số
học và logic.
- Thanh ghi tích lũy (Accumulator) : là một thanh ghi SFR liên quan mật thiết
với hoạt động của ALU, lưu trữ tất cả các dữ liệu cho quá trình tính toán và
lưu giá trị kết quả để chuẩn bị cho các tính toán tiếp theo. Một trong các thanh
ghi SFR khác được gọi là thanh ghi trạng thái (Status Register) cho biết trạng
thái của các giá trị lưu trong thanh ghi tích lũy.
1.3.2. Bộ nhớ (Memory):
- Nhìn chung có hai loại bộ nhớ là bộ nhớ chương trình và bộ nhớ dữ liệu. Bộ
nhớ chương trình dùng để chứa mã chương trình hướng dẫn CPU thực hiện một
nhiệm vụ nào đó. Thông thường thì bộ nhớ chương trình là các loại bộ nhớ “không
bay hơi” (non-volatile), nghĩa là không bị mất nội dung chứa bên trong khi ngừng
cung cấp nguồn nuôi. Bộ nhớ dữ liệu là bộ nhớ dùng để chứa dữ liệu (bao gồm các
6


tham số, các biến tạm thời…). Tuỳ thuộc loại dữ liệu mà bộ nhớ loại này có thể là
loại “không bay hơi” hoặc “bay hơi” (mất dữ liệu khi cắt nguồn nuôi).
1.3.3. Các cổng vào/ra:
- Làm nhiệm vụ ghép nối với các thiết bị ngoại vi như bàn phím, chuột, màn
hình, máy in, chuyển đổi ADC, DAC, card mạng…

Hình 1. 5: Các cổng vào/ra

1.3.4. Bus địa chỉ(Address bus):
- Gồm các đường dẫn tín hiệu logic (0, 1) một chiều để truyền địa chỉ tham
chiếu tới các vùng bộ nhớ và chỉ ra dữ liệu được lưu giữ ở đâu trong không gian bộ

nhớ
» CPU điều khiển bus địa chỉ để thực hiện truyền dữ liệu giữa bộ nhớ và
CPU (dữ liệu có độ dài 8, 16, 32 bits tùy thuộc cấu trúc VXL, VĐK)
» Chế độ truy nhập địa chỉ trực tiếp: CPU tham chiếu và truy cập bộ nhớ
trong một chu kỳ bus.Nếu vi xử lý có n bit địa chỉ tức là nó có thể đánh địa
chỉ được 2n ô nhớ mà CPU có thể tham chiếu trực tiếp
» Chế độ truy nhập địa chỉ gián tiếp: CPU tham chiếu và truy cập bộ nhớ
qua nhiều chu kỳ bus (bộ nhớ mở rộng)
» Vd: CPU 80286 bus địa chỉ có độ rộng 24 bits sẽ cho phép đánh địa chỉ
trực tiếp cho 224 ô nhớ(16Mbyte). CPU 80386 bus địa chỉ có độ rộng 32
bits cho phép đánh địa chỉ cho 232(4Gbyte) ô nhớ.
7


1.3.5. Bus dữ liệu(Data bus):
Gồm các đường dẫn tín hiệu logic dùng để truyền thông tin theo hai chiều
giữa CPU, bộ nhớ và các thiết bị ngoại vi
» Bus dữ liệu được điều khiển bởi CPU để đọc, ghi dữ liệu hoặc mã lệnh
» Độ rộng của bus dữ liệu xác định lượng thông tin (số bits) truyền trên bus
» Vd: Một bus dữ liệu có khả năng thực hiện một lần truyền trong 1μs, thì
bus dữ liệu có động rộng 8 bits sẽ có băng thông là 1Mbyte/s, bus có độ
rộng 16 bits sẽ có băng thông là 2Mbyte/s và bus có độ rộng 32 bits sẽ có
băng thông là 4Mbyte/s
1.3.6. Bus điều khiển(Control bus):
Gồm các đường dẫn tín hiệu logic (0, 1) để truyền tải các thông tin điều khiển

hoạt động của hệ thống
» Các thông tin điều khiển bao gồm các tín hiệu chu kỳ để đồng bộ các nhịp
hoạt động của hệ thống.
» Bus điều khiển thường được điều khiển bởi CPU để đồng bộ hóa nhịp hoạt

động và dữ liệu trao đổi trên các bus.

Hình 1. 6: Bus điều khiển

1.4. Nguyên lý hoạt động của bộ VXL
Bộ vi xử lý có 2 khối chức năng chính đó là:
+ Khối thực thi( EU-execution unit): đảm bảo việc thi hành lệnh.
+ Khối giao tiếp bus( BIU- bus interface unit): liên lạc giữa EU và bus ngoài.

8


Hình 1. 7: Quá trình thi hành lệnh: Lấy lệnh – Giải mã lệnh – Thi hành lệnh

- Khi chương trình bắt đầu, thanh ghi con trỏ lệnh sẽ ở địa chỉ đầu chương
trình, địa chỉ này sẽ được chuyển qua bộ nhớ thông qua Address bus.

Hình 1. 8: Giao tiếp cơ bản

9


Hình 1. 9: Mã địa chỉ và bộ nhớ

- Khi tín hiệu Read đưa vào Control bus, nội dung bộ nhớ liên quan sẽ đưa
vào bộ giải mã lệnh.

Hình 1. 10: Quá trình đưa tín hiệu

- Bộ giải mã lệnh sẽ khởi động các phép toán cần thiết để thực thi lệnh, quá

trình này đòi hỏi một số chu kỳ máy (machine cycle) tùy theo lệnh.
- Sau khi lệnh đã thực thi, bộ giải mã lệnh sẽ đưa con trỏ lệnh đến địa chỉ của
lệnh kế tiếp.

10


Hình 1. 11: Các chân tín hiệu cơ bản của CPU

+CK: chân nhận tín hiệu xung nhịp
+Reset: chân khởi động lại
+Interrupt: chân tín hiệu ngắt
+Ready/Wait: xác định trạng thái sẵn sàng phục vụ hay phải chờ
+Bus Req: tín hiệu yêu cầu sử dụng bus
+Bus Ack: xác nhận yêu cầu về bus
+Read: điều khiển đọc
+Write: điều khiển ghi
+Address: các chân địa chỉ xác định khi cần giao tiếp với bộ nhớ
+Data: các chân dữ liệu
......

11


Hình 1. 12: Ghép VXL với bộ nhớ

tdbuf: thời gian trễ ở bộ đệm dữ liệu (data buffer)
tabuf: thời gian trễ ở bộ đệm địa chỉ (address buffer)
tOE: thời gian đáp ứng của bộ nhớ với tín hiệu cho phép ngõ ra (ouput enable)
tCS: thời gian bộ nhớ truy xuất từ Chip Select

tACC: thời gian bộ nhớ truy xuất từ địa chỉ, thông thường tACC = tcs
tdec: thời gian trễ ở bộ giải mã (decoder)

Hình 1. 13: Định thời ghi bộ nhớ

tDS (Data Setup): thời gian thiết lập dữ liệu cung cấp bởi hệ thống bộ nhớ
12


tDH (Data Hold): thời gian giữ dữ liệu cung cấp bởi hệ thống bộ nhớ.

Hình 1. 14: Định thời đọc bộ nhớ

taw: thời gian truy xuất ghi (access write)
twp: độ rộng xung ghi tối thiểu (write pulse)
tAS: thời gian địa chỉ hợp lệ trước khi WR = 0
Thông thường, ta không quan tâm đến địa chỉ cho đến khi xác nhận CS
nên thường tcw = taw
1.5. Lập trình cho một VXL
Sau khi thiết kế xong phần cứng, bạn phải tiến hành lập trình cho vi xử lý để
hoàn thiện sản phẩm của mình. Vi xử lý có thể được lập trình bằng ngôn ngữ bậc
cao hay ngôn ngữ bậc thấp. Ngôn ngữ bậc thấp là ngôn ngữ được thiết kế riêng
cho từng loại vi xử lý và thường được gọi là hợp ngữ (Assembly). Ngôn ngữ bậc
cao là các ngôn ngữ gần với ngôn ngữ của con người và giống nhau cho nhiều loại
vi xử lý. Mỗi loại ngôn ngữ đều có ưu và nhược điểm riêng. Với những người mới
bắt đầu nghiên cứu về kỹ thuật vi xử lý, theo kinh nghiệm của riêng bản thân, tôi
cho rằng nên bắt đầu với ngôn ngữ bậc thấp. Có một số điểm đáng lưu ý khi bạn
lập trình cho một vi xử lý. Đó là: - Trước tiên bạn phải hiểu rõ được các chế độ địa
13



chỉ của vi xử lý đó. Chế độ địa chỉ chính là cách chỉ ra toán hạng nằm ở đâu. Toán
hạng là các tham số, các hằng số, các ô nhớ, các thanh ghi, các bit, các cờ…hay
nói chung là các đối tượng tham gia vào việc thực hiện lệnh. Thông thường thì một
toán hạng (ví dụ như một thanh ghi) có thể được trỏ đến bằng một vài chế độ địa
chỉ khác nhau. Mỗi chế độ địa chỉ có thế mạnh riêng của nó và tùy từng trường
hợp mà ta nên chọn chế độ thích hợp khi lập trình. - Sau đó bạn phải nắm bắt được
tập lệnh (Instruction Set) của vi xử lý đó. Tập lệnh là tất cả những lệnh mà vi xử lý
có thể hiểu được, có thể thực hiện được. Mỗi lệnh đều được mã hóa (hay được quy
ước) bởi một chuỗi các bit 0 và 1. Các vi xử lý khác nhau thì có tập lệnh khác nhau
do nhà sản xuất chip cung cấp. –
Trước khi bắt đầu viết các lệnh cụ thể, bạn nên viết lưu đồ thuật toán thực
hiện các nhiệm vụ cụ thể. Lưu đồ thuật toán là sơ đồ diễn giải trình tự thực hiện
các nhiệm vụ một cách lôgic và liền mạch. Viết lưu đồ thuật toán ngay cả cho các
chương trình hết sức đơn giản là một thói quen rất tốt ngay cả khi bạn đã là một
cao thủ trong lập trình vi xử lý. Chỉ cần mất chút thời gian thực hiện công việc này,
bạn sẽ có được cái nhìn vừa bao quát vừa chi tiết đối với chương trình mình định
viết, nhờ đó mà bạn lập trình nhanh hơn, hiệu quả hơn và dễ dàng phát hiện ra lỗi
về thuật toán xử lý nếu chương trình chạy không như ý muốn. Khi đã tìm ra con
đường đi đúng và hiệu quả, tất cả những gì còn lại phải làm là thể hiện các thao tác
xử lý đó bằng cách lệnh của vi xử lý - một công việc mà bất cứ ai nắm rõ tập lệnh
của vi xử lý đó đều có thể làm tốt. Khi lưu đồ thuật toán bạn lập ra là đúng, nếu
sau khi lập trình mà vi xử lý hoạt động không như mong muốn thì lỗi chỉ có thể là
do bạn chưa thể hiện bằng các dòng lệnh một cách đúng đắn những gì đã lập ra mà
thôi. Dần dần, kinh nghiệm tích lũy được sẽ chỉ cho bạn cách thể hiện đúng một
lưu đồ bất kỳ thậm chí ngay ở lần đầu tiên và theo như cách chúng tôi vẫn nói đùa
trong chuyên môn, trình độ lập trình của bạn đã đạt đến cấp độ “plug and play”! Chương trình sẽ được viết trong một file mã nguồn (thường có đuôi là ASM). Phần mềm trên máy tính có tên là “Trình biên dịch” (Compiler) sẽ dịch file mã
nguồn sang một file có đuôi là OBJ. File này chứa thông tin cần thiết để có thể
chuyển đổi sang file có đuôi HEX hay file có đuôi BIN (là các file chứa mã
chương trình đã được chuyển sang dạng Hexa hay Binary) để có thể nạp vào trong

bộ nhớ chương trình của vi xử lý. - Trong khi lập trình, hãy đặc biệt lưu ý đến các
tình huống rẽ nhánh của chương trình. Các tình huống đó bao gồm các lệnh nhảy
vô điều kiện, các lệnh nhảy có điều kiện, các lệnh gọi chương trình con, các tình
huống xảy ra ngắt và đương nhiên phải chú ý đến các phần cứng liên quan như
ngăn xếp hay các cờ trạng thái. - Với mỗi loại vi xử lý/vi điều khiển lại có nhiều
14


hãng cung cấp các phần mềm trên máy tính dùng để soạn thảo và biên dịch. Các
phần mềm này có các từ khóa khác nhau mà người lập trình phải tuân thủ khi sử
dụng. Từ khóa là các ký hiệu được thể hiện bằng các ký tự, được viết trong file mã
nguồn nhưng nó không phải là lệnh của vi xử lý, đương nhiên không được dịch ra
mã máy, đó chỉ là các chỉ dẫn cho phần mềm trên máy tính thực hiện biên dịch các
file mã nguồn sang mã máy một cách chính xác.

15


CHƯƠNG 2 : CÔNG NGHỆ MMX CỦA INTEL

2.1. Giới thiệu về công nghệ MMX của Intel
MMX - MultiMedia eXtensions
Là một tập hợp mở rộng gồm 57 lệnh hỗ trợ đồ họa được xây dựng dành riêng cho
CPU Intel Pentium nhằm mục đích giúp hệ thống xử lý các tác vụ đa phương tiện
(multimedia operation) như âm thanh, phim, hình ảnh và modem (truyền nhận dữ
liệu). MMX được thiết kế sẵn trong các dòng CPU Pentium MMX và Pentium II
(các CPU Intel Pentium và Pentium Pro không có hỗ trợ MMX). Tập lệnh MMX
cho phép các tác vụ được thực hiện đồng thời trên nhiều đơn vị dữ liệu khác nhau.
Các đối thủ cạnh của Intel (như AMD, Cyrix, Centaur) cũng phát triển các bộ xử lý
tương thích MMX của họ (MMX-compliant chips) với các bộ lệnh riêng chuyên

xử lý các tác vụ tính tóan hình học và dấu chấm động cần thiết khi di chuyển các
hình ảnh 3D (3 Dimension - 3 chiều) trên màn hình.

16


Hình 2. 1: Kiến trúc nội bộ của MMX

Thương mại giới thiệu vào tháng Giêng năm 1997, công nghệ MMX là một
phần mở rộng của kiến trúc Intel có sử dụng một mô hình hướng dẫn, thực hiện
nhiều dữ liệu cho phép một số yếu tố dữ liệu được xử lý đồng thời. Các ứng dụng
lợi ích từ công nghệ MMX là những tính toán parallelizable nhiều bằng cách sử
dụng số lượng nhỏ số nguyên. Ví dụ về các loại của các ứng dụng đồ họa 2D/3D,
xử lý hình ảnh, thực tế ảo, tổng hợp âm thanh và nén dữ liệu.

17


Hình 2. 2: Một VXL của Intel dùng công nghệ MMX

Nếu hệ thống Linux của bạn có một Pentium II, Pentium với công nghệ
MMX, bạn có thể xây dựng các chương trình tận dụng lợi thế của các tập lệnh
MMX sử dụng gcc và một chút của ngôn ngữ lắp ráp. giới thiệu các tính năng
chính của công nghệ MMX, giải thích làm thế nào để phát hiện xem một bộ vi xử
lý x86 đã được xây dựng trong khả năng MMX và hiển thị như thế nào để một
chương trình ứng dụng xử lý hình ảnh đơn giản.
Mã ngôn ngữ lắp ráp được trình bày ở đây sử dụng NASM, Netwide
Assembler. NASM sử dụng cú pháp tiêu chuẩn của Intel thay vì cú pháp AT & T
sử dụng trên nhiều UNIX lắp ráp phổ biến, chẳng hạn như GAS.
2.2. Môi trường lập trình MMX

Công nghệ MMX mở rộng kiến trúc Intel bằng cách thêm 8 thanh ghi 64-bit
và 57 hướng dẫn. Sổ đăng ký mới được đặt tên MM0 để MM7 (xem hình 1). Tùy
thuộc vào hướng dẫn mà chúng tôi sử dụng, đăng ký có thể được hiểu là quadword
64-bit một, hai đóng gói từ 32-bit đôi, bốn đóng gói từ 16-bit, hoặc tám đóng gói
các byte 8-bit (xem
Các tập lệnh MMX bao gồm một số chuyên mục hướng dẫn, bao gồm cả
những người cho các hoạt động chuyển giao số học, hợp lý, so sánh, chuyển đổi và
dữ liệu.
Cú pháp để được hướng dẫn MMX là tương tự như hướng dẫn khác x86:
Điểm đến OP, Source
Dòng này được hiểu là:
Điểm đến = Điểm đến OP nguồn
18


Ngoại trừ cho các hướng dẫn chuyển dữ liệu, toán hạng đích luôn luôn phải là
bất kỳ đăng ký MMX. Các toán hạng nguồn có thể là mốc đo lường được lưu trữ
trong một vị trí bộ nhớ hoặc trong một đăng ký MMX. Một hướng dẫn cụ thể
MMX vài sẽ được thảo luận thêm về.
Trước khi chạy một chương trình mà sử dụng các hướng dẫn MMX, điều
quan trọng là để đảm bảo rằng bộ vi xử lý của bạn thực sự có hỗ trợ MMX. Hệ
thống Linux của bạn nên là một x86 của Intel hoặc bộ vi xử lý tương thích (386,
486, Pentium, Pentium Pro, Pentium II, hoặc bất kỳ của Cyrix hoặc AMD dòng vô
tính). Điều này có thể dễ dàng kiểm tra bằng cách thực hiện lệnh uname-m . Lệnh
này sẽ trả về i386, i486, i586 hoặc i686. Nếu không, hệ thống Linux của bạn chạy
trên một kiến trúc x86 không.
Để xác định nếu CPU của bạn hỗ trợ công nghệ MMX, sử dụng những hướng
dẫn lắp ráp CPUID ngôn ngữ. Hướng dẫn này cho thấy thông tin bộ vi xử lý quan
trọng, chẳng hạn như mô hình, nhà cung cấp của nó, gia đình và thông tin bộ nhớ
cache. Thật không may, hướng dẫn CPUID là hiện nay chỉ vào khoảng 80.486 bộ

vi xử lý cuối và ở trên. Vì vậy, làm thế nào để bạn biết nếu CPUID là có sẵn trên
hệ thống của bạn? Intel tài liệu các thủ thuật sau đây: nếu chương trình của bạn có
thể thay đổi bit 21 của đăng ký EFLAGS, sau đó hướng dẫn CPUID có sẵn, nếu
không, bạn đang làm việc với một CPU niên. Xem Ví dụ 1 (dòng 12-29) để tìm
hiểu làm thế nào điều này có thể được thực hiện.
2.3.Tập lệnh MMX
2.3.1. Giới thiệu
Công nghệ MMX được thiết kế để tăng tốc các ứng dụng đa phương tiện và
thông tin liên lạc bằng cách bao gồm hướng dẫn mới và các kiểu dữ liệu cho phép
các ứng dụng để đạt được một cấp độ mới về hiệu suất. Nó khai thác song song
vốn có trong đa phương tiện và thông tin liên lạc thuật toán, nhưng vẫn duy trì khả
năng tương thích hoàn toàn với hệ điều hành hiện có và các ứng dụng.
Một loạt các ứng dụng phần mềm, bao gồm cả đồ họa, MPEG video , âm nhạc
tổng hợp, bài phát biểu công nhận và nén, xử lý hình ảnh , trò chơi, hội nghị video
và nhiều hơn nữa, cho thấy nhiều điểm chung, đặc điểm cơ bản:
+ Kiểu dữ liệu số nguyên nhỏ (ví dụ: 8-bit điểm ảnh, mẫu âm thanh 16bit)
+ Vòng lặp đi lặp lại cao, nhỏ
+ Nhân thường xuyên và tích lũy
19


+ Tính toán, chuyên sâu các thuật toán
+ Hoạt động cao song song
Các công nghệ MMX được thiết kế như một tập hợp các hướng dẫn số
nguyên chung mục đích có thể được áp dụng cho các nhu cầu đa dạng của các ứng
dụng đa phương tiện và thông tin liên lạc. Các điểm nổi bật của công nghệ này là:
+ Hướng dẫn duy nhất, nhiều dữ liệu ( SIMD ) kỹ thuật
+ 57 mới hướng dẫn
+ 8 64-bit MMX đăng ký, đặt tên là mm0 đến mm7
+ 4 kiểu dữ liệu mới

MMX công nghệ giới thiệu bốn loại dữ liệu mới: ba đóng gói các loại dữ liệu
(byte, từ và doublewords, tương ứng là 8, 16 và 32 bit rộng cho mỗi phần tử dữ
liệu) và một thực thể 64-bit mới. Mỗi phần tử trong các loại dữ liệu đóng gói là
một điểm cố định độc lập số nguyên. Kiến trúc không xác định vị trí của các điểm
cố định trong các yếu tố, bởi vì nó là nhà phát triển kiểm soát vị trí của nó trong
mỗi phần tử trong suốt tính toán. Điều này thêm một gánh nặng cho nhà phát triển,
nhưng nó cũng để
lại một số lượng lớn linh hoạt để lựa chọn và thay đổi độ chính xác của số
điểm cố định trong quá trình ứng dụng để hoàn toàn kiểm soát phạm vi năng động
của các giá trị.
MMX công nghệ bốn kiểu dữ liệu là:
o

Đóng gói byte 8 byte đóng gói vào một số lượng 64-bit

o

Đóng gói từ 4 16-bit từ đóng gói vào một số lượng 64-bit

o

Đóng gói doubleword 2 32-bit từ đôi đóng gói vào một số lượng

64-bit

o

Quadword - một số lượng 64-bit
Hình 2. 3: Bốn kiểu dữ liệu của MMX


Ví dụ, dữ liệu đồ họa điểm ảnh được đại diện trong số nguyên 8-bit hoặc
byte. Với công nghệ MMX, tám trong số các điểm ảnh được đóng gói cùng nhau
trong một số lượng 64-bit và chuyển vào một đăng ký MMX, khi một lệnh MMX
20


thực hiện, nó có tất cả tám trong số các giá trị điểm ảnh cùng một lúc đăng ký
MMX, thực hiện các phép tính số học hoặc logic hoạt động trên tất cả tám yếu tố
song song, và ghi kết quả vào một đăng ký MMX. Mức độ song song có thể đạt
được với công nghệ MMX phụ thuộc vào kích thước của dữ liệu, khác nhau, từ 8
khi sử dụng 8-bit dữ liệu 1, tức là không có song song, khi sử dụng 64-bit dữ liệu.

Hình 2. 4: Dữ liệu đồ họa điểm ảnh

Công nghệ MMX được tích hợp vào kiến trúc x86 của Intel trong một cách
mà duy trì khả năng tương thích đầy đủ với các hệ thống điều hành hiện có. Điều
này thu được bằng cách đăng ký MMX răng cưa và nhà nước khi nổi điểm đăng ký
x86 và nhà nước. Vì vậy, không có đăng ký hoặc tiểu bang mới được thêm vào để
hỗ trợ công nghệ MMX, để hệ thống điều hành sử dụng các cơ chế tiêu chuẩn để
tương tác với trạng thái dấu chấm động lưu và khôi phục lại mã MMX: floatingpoint hướng dẫn lưu / khôi phục lại trạng thái nổi điểm cũng xử lý các trạng thái
MMX (ví dụ, trong bối cảnh chuyển đổi).

21


×