Tải bản đầy đủ (.docx) (65 trang)

Bài tập lớn Kiến Trúc Máy Tính

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.3 MB, 65 trang )

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

BỘ MƠN 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: Th.s Nguyễn
Nhóm thực hiện: Nhóm 13
Lớp:
KTMT - K15

Tuấn Tú

Hà Nội, 2021


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:
Lớp:
Sinh viên tham gia:

Hà Nội, Năm 2021

MỤC LỤC
Trang

LỜI NÓI ĐẦU......................................................................................................1


CHƯƠNG 1...........................................................................................................2
TỔNG QUAN VỀ BỘ VXL CỦA INTEL............................................................2
1.1. Giới thiệu về VXL......................................................................................2
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
1.3.1. Đơ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:...................................................................................7
1.3.4. Bus địa chỉ(Address bus):.....................................................................7
1.3.5. Bus dữ liệu(Data bus):..........................................................................8
1.3.6. Bus điều khiển(Control bus):................................................................8
1.4. Nguyên lý hoạt động của bộ VXL..............................................................9
1.5. Lập trình cho một VXL.............................................................................14
CHƯƠNG 2.........................................................................................................16

CƠNG NGHỆ MMX CỦA INTEL.....................................................................16
2.1. Giới thiệu về cơng nghệ MMX của Intel..................................................16
2.2. Mơi trường lập trình MMX.......................................................................18
2.3.Tập lệnh MMX..........................................................................................19
2.3.1. Giới thiệu............................................................................................19
2.3.2. Bộ chỉ dẫn...........................................................................................22
2.3.3. Điểm chuẩn.........................................................................................24
2.4.Hiệu suất khi dùng công nghệ MMX.........................................................28
2.5. Đa phương tiện mở rộng đệ trình..............................................................30
CHƯƠNG 3: BỘ VXL SỬ DỤNG CƠNG NGHỆ MMX CỦA INTEL............35
3.1.Khái quát về tập đoàn Intel........................................................................35
3.2. Intel giới thiệu bộ vi xử lý 11 với Công nghệ MMX ™...........................38
3.2.1. Desktop Pentium ® Processor with MMX 233 MHz........................38
Thơng số kỹ thuật.............................................................................................40
3.2.2. Intel Pentium MMX 166....................................................................41
Nguyên hiệu suất..........................................................................................43
Floating Point hiệu suất................................................................................47
MMX / SSE / SSE2 hiệu suất.......................................................................47
3.3. 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...............................57
KẾT LUẬN.........................................................................................................62


MỤC LỤC HÌNH ẢNH
Trang

CHƯƠNG 1
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ý..............................................2
Hình 1. 3: Sơ đồ khối chung của vi xử lý..............................................................4

Hình 1. 4: Đơn vị xử lý trung tâm CPU................................................................4
Hình 1. 5: Các cổng vào/ra...................................................................................6
Hình 1. 6: Bus điều khiển......................................................................................7
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....7
Hình 1. 8: Giao tiếp cơ bản..................................................................................8
Hình 1. 9: Mã địa chỉ và bộ nhớ...........................................................................8
Hình 1. 10: Q 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...................................................9
Hình 1. 12: Ghép VXL với bộ nhớ......................................................................10
Hình 1. 13: Định thời ghi bộ nhớ........................................................................11
Hình 1. 14: Định thời đọc bộ nhớ.......................................................................11
CHƯƠNG
Hình 2. 1: Kiến trúc nội bộ của MMX................................................................15
Hình 2. 2: Một VXL của Intel dùng cơng nghệ MMX.........................................15
Hình 2. 3: Bốn kiểu dữ liệu của MMX................................................................18
Hình 2. 4: Dữ liệu đồ họa điểm ảnh...................................................................19
Hình 2. 5: Hướng dẫn lưu/khơi phục lại trạng thái............................................19
CHƯƠNG
Hình 3. 1: Bộ vi xử lý 4004.................................................................................32
Hình 3. 2: Bộ vi xử lý 8008.................................................................................33
Hình 3. 3: Bộ vi xử lý 8080.................................................................................34
Hình 3. 4: Bộ vi xử lý 8086-8088........................................................................34
Hình 3. 5: Bộ vi xử lý 286...................................................................................35
Hình 3. 6: Pentium ® Processor with MMX 233 MHz.......................................35
Hình 3. 7: Intel Pentium MMX 166....................................................................38
Hình 3. 8: Intel Pentium với cơng nghệ MMX OverDrive..................................45
Hình 3. 9: Pentium ® với cơng nghệ MMX TM..................................................50
Hình 3. 10: Cpu Pentium I with MMX (80586) Socket 7....................................52



LỜI NĨI ĐẦU
Tập đồn Intel (Integrated Electronics) thành lập vào ngày 18/7/1968,
lúc đó là tập đồn hợp nhất về thiết bị điện tử, sản xuất ờ Santa Clara,
(California, USA) bởi nhà hố 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…).

CHƯƠNG 1
1


TỔNG QUAN VỀ BỘ VXL CỦA INTEL
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;

2


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

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 ngồ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)

3


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

intergrantation) cho ALU và control

LSI/VLSI(Very

large

scale

+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. Đơ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 tố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
tố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 q
trình tính tốn và lưu giá trị kết quả để chuẩn bị cho các tính tố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.
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à
6


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


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
7


» 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ớ.
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
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

8


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
ngồi.

Hình 1. 7: Q 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.

9


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


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.

10


Hình 1. 10: Q 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,
q 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.

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
11


+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

......

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)

12


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ớ
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)
13


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ý để hồ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 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 tố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 tố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 tố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
14



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 chun 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ó đ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ó đi là OBJ. File này chứa thơng tin cần thiết để có thể chuyển đổi
sang file có đi HEX hay file có đ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 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 tố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
18



Dòng này được hiểu là:
Điểm đến = Điểm đến OP nguồn
Ngoại trừ cho các hướng dẫn chuyển dữ liệu, toán hạng đích ln ln
phải là bất kỳ đăng ký MMX. Các tố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
tốn, nhưng vẫn duy trì khả năng tương thích hồn tồn với hệ điều hành
hiện có và các ứng dụng.

19


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 16-bit)
+ Vòng lặp đi lặp lại cao, nhỏ
+ Nhân thường xuyên và tích lũy
+ Tính tốn, chun sâu các thuật tố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 hướng dẫn mới
+ 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à 32bit 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 sốt vị trí của nó trong mỗi phần tử trong suốt tính tố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 q trình ứng dụng để hồn tồn kiểm số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
20


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 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
21


×