TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘIKHOA: 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 Tú 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 K13Hà Nội, Năm 2019MỤC LỤCTrangLỜI NÓI ĐẦU1CHƯƠNG 1 : TỔNG QUAN VỀ BỘ VXL CỦA INTEL21.1. Giới thiệu về VXL2Hình 1. 1: Một vi xử lý2Hình 1. 2: Lịch sử ra đời và phát triển của vi xử lý31.2. Chức năng chính, phân loại:31.3. Cấu trúc của bộ vi xử lý4Hình 1. 3: Sơ đồ khối chung của vi xử lý41.3.1. Đơn vị xử lý trung tâm (CPU):5Hình 1. 4: Đơn vị xử lý trung tâm CPU51.3.2. Bộ nhớ (Memory):61.3.3. Các cổng vàora:6Hình 1. 5: Các cổng vàora61.3.4. Bus địa chỉ(Address bus):61.3.5. Bus dữ liệu(Data bus):71.3.6. Bus điều khiển(Control bus):7Hình 1. 6: Bus điều khiển71.4. Nguyên lý hoạt động của bộ VXL8Hình 1. 7: Quá trình thi hành lệnh: Lấy lệnh – Giải mã lệnh – Thi hành lệnh8Hình 1. 8: Giao tiếp cơ bản8Hình 1. 9: Mã địa chỉ và bộ nhớ9Hình 1. 10: Quá trình đưa tín hiệu9Hình 1. 11: Các chân tín hiệu cơ bản của CPU10Hình 1. 12: Ghép VXL với bộ nhớ11Hình 1. 13: Định thời ghi bộ nhớ11Hình 1. 14: Định thời đọc bộ nhớ121.5. Lập trình cho một VXL12CHƯƠNG 2 : CÔNG NGHỆ MMX CỦA INTEL152.1. Giới thiệu về công nghệ MMX của Intel15Hình 2. 1: Kiến trúc nội bộ của MMX16Hình 2. 2: Một VXL của Intel dùng công nghệ MMX172.2. Môi trường lập trình MMX172.3.Tập lệnh MMX182.3.1. Giới thiệu18Hình 2. 3: Bốn kiểu dữ liệu của MMX19Hình 2. 4: Dữ liệu đồ họa điểm ảnh20Hình 2. 5: Hướng dẫn lưukhôi phục lại trạng thái212.3.2. Bộ chỉ dẫn212.3.3. Điểm chuẩn23Bảng 2.1.Hiệu suất khi dùng công nghệ MMX23Bảng 2.2. Intel truyền thông Benchmark262.4.Hiệu suất khi dùng công nghệ MMX27Bả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 Benchmark282.5. Đa phương tiện mở rộng đệ trình28CHƯƠNG 3 : BỘ VXL SỬ DỤNG CÔNG NGHỆ MMX CỦA INTEL333.1.Khái quát về tập đoàn Intel33Hình 3. 1: Bộ vi xử lý 400434Hình 3. 2: Bộ vi xử lý 800835Hình 3. 3: Bộ vi xử lý 808035Hình 3. 4: Bộ vi xử lý 8086808835Hình 3. 5: Bộ vi xử lý 286363.2. Intel giới thiệu bộ vi xử lý 11 với Công nghệ MMX ™363.2.1. Desktop Pentium ® Processor with MMX 233 MHz36Hình 3. 6: Pentium ® Processor with MMX 233 MHz36Bảng 3.1: Thông tin kĩ thuật của Pentium ® Processor with MMX 233 MHz37Thông số kỹ thuật373.2.2. Intel Pentium MMX 16639Hình 3. 7: Intel Pentium MMX 16639Bảng 3.2 : Thông tin chung và hiệu suất Intel Pentium MMX 16640Bảng 3.3: Các thông số kiến trúc của Intel Pentium MMX 16642Bảng 3.4: Floating point hiệu suất43MMX SSE SSE2 hiệu suất44Bảng 3.5: Thông tin về CPU ID453.3. Intel Pentium với công nghệ MMX OverDrive47Hình 3. 8: Intel Pentium với công nghệ MMX OverDrive47Bảng 3.6: Các thông số cơ bản của .Intel Pentium với công nghệ MMX OverDrive503.4.Các bộ vi xử lý Pentium ® với công nghệ MMX TM54Hình 3. 9: Pentium ® với công nghệ MMX TM54Bảng 3.7: So sánh Pentium ® với công nghệ MMX TM55Hình 3. 10: Cpu Pentium I with MMX (80586) Socket 756KẾT LUẬN58 LỜI NÓI ĐẦUTập đoàn Intel (Integrated Electronics) thành lập vào ngày 1871968, 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 SemiconductorIntel 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ệnCHƯƠNG 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;
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
- -Giáo viên hướng dẫn: Ths Nguyễn Tuấn Tú
Sinh viên tham gia: 1 Bùi Thanh Sơn
Trang 3MỤ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
Trang 43.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
Trang 6LỜ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ảnxuấ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
Trang 71.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ý
Trang 81.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) choALU 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ý
Trang 9Hì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)
Trang 10Hì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ếtvớ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 thanhghi SFR khác được gọi là thanh ghi trạng thái (Status Register) cho biết trạngthá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ôngbay 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
Trang 11tham 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ớ
Trang 121.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ịphoạ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
Trang 13Hì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
Trang 14Hì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
Trang 15Hì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
Trang 16
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ớ
Trang 17tDH (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ậccao hay ngôn ngữ bậc thấp Ngôn ngữ bậc thấp là ngôn ngữ được thiết kế riêngcho từng loại vi xử lý và thường được gọi là hợp ngữ (Assembly) Ngôn ngữ bậccao 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ớibắ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ôicho 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ạnlậ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
Trang 18chỉ của vi xử lý đó Chế độ địa chỉ chính là cách chỉ ra toán hạng nằm ở đâu Toánhạng là các tham số, các hằng số, các ô nhớ, các thanh ghi, các bit, các cờ…haynó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ộttoán hạng (ví dụ như một thanh ghi) có thể được trỏ đến bằng một vài chế độ địachỉ khác nhau Mỗi chế độ địa chỉ có thế mạnh riêng của nó và tùy từng trườnghợ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 đượctậ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ựchiệ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ệncá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ácchươ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ộtcao 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 địnhviế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ệnhcủ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ếusau 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ộtlư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 đùatrong 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áctì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ìnhhuố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
Trang 19hã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ácphầ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ácfile mã nguồn sang mã máy một cách chính xác
Trang 20CHƯƠ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 choCPU 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 MMXcho 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áchình ảnh 3D (3 Dimension - 3 chiều) trên màn hình
Trang 21Hì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ộtphầ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ệnnhiề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ụnglợ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
Trang 22Hì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ệnhMMX 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ăngchí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ộtchươ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, NetwideAssembler 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ùythuộc vào hướng dẫn mà chúng tôi sử dụng, đăng ký có thể được hiểu là quadword64-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óicá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
Trang 23Ngoạ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ềuquan 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ệnhnày sẽ trả về i386, i486, i586 hoặc i686 Nếu không, hệ thống Linux của bạn chạytrê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ướngdẫ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ý quantrọ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ếukhông, bạn đang làm việc với một CPU niên Xem Ví dụ 1 (dòng 12-29) để tìmhiể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 bit)
16-+ Vòng lặp đi lặp lại cao, nhỏ
+ Nhân thường xuyên và tích lũy
Trang 24+ 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à:
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ặcbyte Với công nghệ MMX, tám trong số các điểm ảnh được đóng gói cùng nhautrong một số lượng 64-bit và chuyển vào một đăng ký MMX, khi một lệnh MMX
Trang 25thự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ừ 8khi 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ềunà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: floating-point 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áiMMX (ví dụ, trong bối cảnh chuyển đổi)
Trang 26Hình 2 5: Hướng dẫn lưu/khôi phục lại trạng thái
Aliasing các nhà nước MMX khi Nước floating-point không ngăn cản cácứng dụng thực hiện cả hai thói quen MMX và thói quen điểm nổi, nhưng các nhàphát triển có thể không tự do đan xen MMX và hướng dẫn điểm nổi, và ông phảichèn 1 EMMS hướng dẫn trước khi chuyển đổi giữa MMX và dấu chấm động mãtrình tự
2.3.2 Bộ chỉ dẫn
Các hướng dẫn MMX bao gồm một số khu vực chức năng bao gồm:
+ Hoạt động số học cơ bản như cộng, trừ, nhân, thay đổi số học và nhân thêm + So sánh hoạt động
+ Hướng dẫn chuyển đổi để chuyển đổi giữa các loại dữ liệu mới: gói dữ liệu vớinhau, và giải nén từ nhỏ đến các loại dữ liệu lớn hơn
+ Hợp lý hoạt động chẳng hạn như AND, và NOT, OR, và XOR
+ Sự thay đổi hoạt động
+ Truyền dữ liệu hướng dẫn MMX đăng ký để đăng ký chuyển nhượng, hoặc
64-bit và 32-64-bit cửa hàng tải / bộ nhớ
+ Quản lý nhà nước hướng dẫn để xử lý MMX để quá trình chuyển đổi dấu
chấm động
Số học, so sánh và thay đổi hướng dẫn được thiết kế để hỗ trợ đóng gói khác nhau loại dữ liệu số nguyên: các hướng dẫn này có một opcode khác nhau cho từng loại dữ liệu được hỗ trợ Kết quả là, các hướng dẫn MMX công nghệ được thực hiện với 57 opcodes
Tất cả các hướng dẫn MMX, ngoại trừ các EMMS hướng dẫn, tài liệu tham khảo
và hoạt động trên hai toán hạng nguồn và toán hạng đích Các toán hạng đầu tiên làđiểm đến và các toán hạng thứ hai là nguồn gốc Hướng dẫn ghi đè các toán hạng đích với kết quả Ví dụ, một hướng dẫn hai toán hạng
HOẠT ĐỘNG ĐÍCH, SRC sẽ được giải mã như:
DEST = ĐÍCH HOẠT ĐỘNG SRC
Một lệnh MMX điển hình có cú pháp này:
+ Tiền tố: P cho đóng gói
+ Hướng dẫn hoạt động: ví dụ ADD, CMP, hoặc XOR
+ Hậu tố:
+ Mỹ cho Saturation Unsigned
+S cho độ bão hòa Ký
Trang 27+ B, W, D, Q cho các loại dữ liệu: byte đóng gói, từ đóng gói, đóng gói
doubleword, hoặc quadword
Ví dụ: PADDSB là một lệnh MMX (P) là khoản tiền (ADD) 8 byte (B) của nguồn và toán hạng đích và bão hòa kết quả (S)
Hướng dẫn có đầu vào khác nhau và các yếu tố dữ liệu đầu ra có hai loại hậu tố dữ liệu: ví dụ, hướng dẫn chuyển đổi chuyển đổi từ một kiểu dữ liệu khác, do đó, nó
có hai hậu tố, một cho các kiểu dữ liệu ban đầu và lần thứ hai cho các loại dữ liệu chuyển đổi
Các trang tiếp theo mô tả trong chiều sâu, tập hợp đầy đủ các hướng dẫn MMX, được nhóm lại theo các khu chức năng Hộp ở phía bên phải representes cú pháp giảng dạy rằng, đây là một danh sách các biểu tượng được sử dụng để đại diện cho các toán hạng trong báo cáo hướng dẫn:
+ imm8: một giá trị byte ngay lập tức, imm8 là một số ký kết giữa -128 và
127 bao gồm
+ r/m32: đăng ký doubleword hoặc toán hạng bộ nhớ được sử dụng để được
hướng dẫn có kích thước toán hạng-thuộc tính là 32 bit
+ mm/m32: chỉ 32 bit thấp nhất của một đăng ký MMX hoặc một vị trí bộ
2.3.3 Điểm chuẩn
Intel MMX Ghi chú ứng dụng cung cấp một cái nhìn tổng quan rộng những lợi ích đạt được bằng cách sử dụng các hướng dẫn MMX Tất cả các dữ liệu hiệu suất đã được chiết xuất từ Ghi chú ứng dụng, và nó thường dùng để chỉ các vi kiến trúc Pentium MMX
Trước khi bắt đầu mã trong lắp ráp cho MMX, bạn nên có một cái nhìn
tại Quexal , môi trường phát triển trực quan cho MMX và ISSE mã hóa sẽ làm chocuộc sống của bạn dễ dàng hơn nhiều!
Dưới đây là danh sách Ghi chú ứng dụng hiện đang có sẵn, được nhóm lại những tranh luận Cột bên phải cho thấy thu được tốc độ di chuyển từ mã vô hướng C để
mã MMX
Bảng 2.1.Hiệu suất khi dùng công nghệ MMX
Trang 28Âm thanh
MPEG1 âm thanh Kernels
Levinson-Durbin Lọc
Schur-Weiner Lọc
Truyền thông
Dải thông Echo Canceller
Baseband Echo Canceller
Vector số học và logic hoạt động 6x
High Precision Multiply
Dữ liệu sắp
Đồ họa (2D)
Trang 30Chuyển động bồi thường
xử lý Pentium với MMX công nghệ, lắp ráp một MMX công nghệ tối ưu hóa phiênbản của mã sử dụng cả hai đường ống dẫn dầu sẽ thực hiện trong chỉ có 12 chu kỳ.Tiếp tục ví dụ trên, giả sử một ma trận 16x16 nhân với một vector 16-yếu tố Hoạtđộng này được xây dựng 16 Vector-Dot-Sản phẩm (VDP) có chiều dài 16 Lặp đilặp lại tập thể dục giống như trước và giả định một hoặc gỡ vòng lặp thực hiện bốnVDPs mỗi lặp đi lặp lại, thường xuyên Pentium bộ xử lý mã sẽ tổng số 4 * (4 * 76+3) = 1228 hướng dẫn Sử dụng MMX công nghệ sẽ yêu cầu 4 * (4 * 19 +3) = 316hướng dẫn Lệnh MMX count là ít hơn 3,9 lần so với khi sử dụng hoạt độngthường xuyên Tốt nhất của mã thực hiện thường xuyên (floating-point tối ưu hóaphiên bản) chỉ dưới 1.200 chu kỳ hoàn thành so với 207 chu kỳ mã MMX phiênbản Intel đã giới thiệu hai gia đình với bộ xử lý MMX công nghệ: xử lý Pentiumvới công nghệ MMX và bộ xử lý Pentium II Hiệu suất của cả hai bộ vi xử lý được
so sánh Benchmark Intel Media (IMB) [5,6], mà các biện pháp thực hiện bộ xử lýchạy thuật toán tìm thấy trong đa phương tiện các ứng dụng IMB kết hợp âmthanh và video phát lại, xử lý hình ảnh, làn sóng mẫu tỷ lệ chuyển đổi, và hình học3D bảng 2 so sánh Pentium bộ xử lý với công nghệ MMX và Pentium II bộ xử lý
Trang 31đối với các bộ vi xử lý Pentium và bộ vi xử lý Pentium ® Pro Intel Truyền thôngBenchmark
Bảng 2.2 Intel truyền thông Benchmark
Bộ VXL Pentium bộ vi xử lý
200MHz
Pentium bộ
vi xử lý 200MHz MMX Công nghệ
Pentium Pro
bộ vi xử lý 200MHz 256KB L2
Pentium II
bộ vi xử lý 233MHz 512KB L2
Pentium II
bộ vi xử lý 266MHz 512KB L2
xử lý cho các ứng dụng phương tiện truyền thông Các thuật toán cốt lõi trong cácứng dụng tính toán- chuyên sâu Những thuật toán này thực hiện các hoạt độngtrên diện rộng số lượng dữ liệu, sử dụng các loại dữ liệu nhỏ, và cung cấp nhiều cơhội cho xử lý song song Các thuật toán này là một tự nhiên phù hợp với choSIMD kiến trúc MMX công nghệ xác định một mục đích chung và dễ dàng đểthực hiện bộ nguyên thủy hoạt động trên dữ liệu đóng gói các loại MMX côngnghệ, trong khi cung cấp hiệu suất tăng phương tiện truyền thông ứng dụng, tươngthích hoàn toàn với hiện tại ứng dụng và hệ điều hành cơ sở MMX công nghệ nóichung là do thiết kế và có thể được áp dụng một loạt các vấn đề phần mềm phươngtiện truyền thông Một số ví dụ giống này đã được mô tả trong bài báo này Tươnglai truyền thông liên quan đến phần mềm công nghệ sử dụng trên mạng Intranet vàInternet nên được hưởng lợi từ công nghệ MMX Bộ vi xử lý Pentium với côngnghệ MMX cung cấp một hiệu suất tăng đáng kể (khoảng 4 lần đối với một số củahạt nhân) cho các phương tiện truyền thông tăng applications.Performance từ côngnghệ này sẽ có quy mô với một tăng bộ vi xử lý hoạt động tần số và tương laimicroarchitectures
2.4.Hiệu suất khi dùng công nghệ MMX