Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 143 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
143
Dung lượng
4,6 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG ***** PHẠM HOÀNG DUY HOÀNG XUÂN DẬU BÀI GIẢNG KỸ THUẬT VI XỬ LÝ HÀ NỘI 2013 LỜI NÓI ĐẦU Các vi xử lý ngày sử dụng phổ biến công nghiệp đời sống hàng này, hệ thống tính tốn, hệ thống thơng tin liên lạc hệ thống điều khiển Bài giảng môn học Kỹ thuật vi xử lý tập trung giới thiệu vi xử lý Intel 8086 ghép nối tiêu biểu để tạo nên hệ vi xử lý Hệ vi xử lý dựa vi xử lý Intel 8086 tương đối đơn giản, dễ hiểu bổ ích cho việc tìm hiểu phát triển hệ vi xử lý phức tạp Bài giảng cấu trúc thành chương, với nội dung sau: Chương giới thiệu khái niệm tổng quan vi xử lý, hệ vi xử lý phận cấu thành hệ vi xử lý nói chung Chương tóm tắt q trình phát triển phân loại vi xử lý đến Chương trình bày chi tiết vi xử lý Intel 8086 bao gồm sơ đồ khối cách tổ chức nhớ Ngoài ra, chương giới thiệu tập lệnh x86 trình thực lệnh Chương cung cấp kiến thức để lập trình với vi xử lý 8086 cách giới thiệu cấu trúc chương trình cấu trúc rẽ nhánh lặp tiêu biểu kết hợp với ví dụ Chương tập trung giới thiệu phương pháp ghép nối vi xử lý 8086 với thiết bị khác để tạo thành hệ vi xử lý Chương trình bày chu trình đọc/ghi vi xử lý 8086 Đây sở để tiến hành ghép nối liệu với thiết bị khác nhớ hay thiết bị vào/ra khác Chương giới thiệu chế truyền thông nối tiếp phương pháp ghép nối với vi xử lý 8086 Chương cung cấp kiến thức phương pháp trao đổi liệu với thiết bị ghép nối với hệ vi xử lý nói chung bao gồm vào/ra thăm dị (lập trình), vào/ra sử dụng ngắt vào/ra trực tiếp nhớ Trong ba phương pháp, vào/ra trực tiếp nhớ cho phép trao đổi khối lượng liệu lớn với tốc độ cao cần có vi mạch hỗ trợ đặc biệt Chương giới thiệu vi mạch trợ giúp cho phương pháp vào vi mạch điều khiển ngắt, vi mạch điều khiển vào trực tiếp nhớ Chương trình bày sơ khái niệm hệ vi điều khiển (hay hệ vi xử lý vi mạch) Chương cịn cung cấp thơng tin hệ vi điều khiển Intel 8051 số ứng dụng Chương 7, chương cuối cùng, giới thiệu số vi xử lý tiên tiến Sun Microsystems Intel dựa kiến trúc IA-32 IA-64, số công nghệ giới thiệu vi xử lý tiên tiến Tài liệu biên soạn dựa “Kỹ thuật Vi xử lý” tác giả Văn Thế Minh, tài liệu tham khảo khác, dựa trao đổi kinh nghiệm giảng dạy với đồng nghiệp phản hồi sinh viên Học viện Cơng nghệ Bưu Viễn thơng Tài liệu dùng làm tài liệu học tập cho sinh viên đại học, cao đẳng ngành cơng nghệ thơng tin Trong q trình biên soạn, dù có nhiều cố gắng song khơng tránh khỏi thiếu sót, nhóm tác giả mong nhận góp ý cho thiếu sót ý kiến cập nhật hoàn thiện nội dung tài liệu Hà nội, 2013 Nhóm tác giả MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC Chương TỔNG QUAN VỀ VI XỬ LÝ VÀ HỆ VI XỬ LÝ GIỚI THIỆU VỀ VI XỬ LÍ HỆ VI XỬ LÍ CÁC ĐẶC ĐIỂM CẤU TRÚC CỦA VI XỬ LÍ 10 3.1 Cấu trúc 10 3.1.1 3.1.2 3.1.3 3.1.4 Các ghi 10 Đơn vị xử lý số học lơ-gíc ALU 11 Đơn vị điều khiển CU 11 Kiến trúc RISC CISC 12 LỊCH SỬ PHÁT TRIỂN VÀ PHÂN LOẠI CÁC BỘ VI XỬ LÍ 13 4.1 Giai đoạn 1971-1973 13 4.2 Giai đoạn 1974-1977 14 4.3 Giai đoạn 1978-1982 14 4.4 Giai đoạn 1983-1999 14 4.5 Giai đoạn 2000-2006 15 4.6 Giai đoạn 2007-nay 16 Chương BỘ XỬ LÝ INTEL 8086 17 CẤU TRÚC BÊN TRONG CỦA 8086 17 1.1 Sơ đồ khối 17 1.1.1 Đơn vị giao tiếp bus BIU đơn vị thực thi EU 17 1.1.2 Các ghi 18 1.2 Phân đoạn nhớ 8086 20 BỘ ĐỒNG XỬ LÍ TỐN HỌC 8087 22 TẬP LỆNH CỦA 8086 23 3.1 Khái niệm lệnh, mã hố lệnh q trình thực lệnh 23 3.2 Các chế độ địa 8086 24 3.2.1 Chế độ địa ghi 25 3.2.2 Chế độ địa tức 25 MỤC LỤC 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 Chế độ địa trực tiếp 25 Chế độ gián tiếp qua ghi 25 Chế độ địa tương đối sở 26 Chế độ địa tương đối số 26 Chế độ địa tương đối số sở 27 Phương pháp bỏ ngầm định ghi đoạn 27 3.3 Tập lệnh 8086 27 3.3.1 3.3.2 3.3.3 3.3.4 Các lệnh trao đổi liệu 28 Các lệnh tính tốn số học lơ gíc 29 Điều khiển, rẽ nhánh lặp 33 Điều khiển vi xử lý 34 NGẮT VÀ XỬ LÍ NGẮT TRONG 8086 34 4.1 Sự cần thiết phải ngắt CPU 34 4.2 Các loại ngắt hệ 8086 35 4.3 Đáp ứng CPU có yêu cầu ngắt 36 4.4 Xử lý ưu tiên ngắt 37 Chương LẬP TRÌNH HỢP NGỮ VỚI 8086 39 GIỚI THIỆU KHUNG CỦA CHƯƠNG TRÌNH HỢP NGỮ 39 1.1 Cú pháp chương trình hợp ngữ 39 1.2 Dữ liệu cho chương trình 40 1.2.1 Biến 40 1.2.2 Khung chương trình hợp ngữ 43 CÁCH TẠO VÀ CHẠY CHƯƠNG TRÌNH HỢP NGỮ 50 CÁC CẤU TRÚC LẬP TRÌNH CƠ BẢN 51 3.1 Cấu trúc 52 3.2 Cấu trúc IF - THEN 52 3.3 Cấu trúc IF - THEN - ELSE 53 3.4 Cấu trúc CASE 53 3.5 Cấu trúc lặp FOR - DO 54 3.6 Cấu trúc lặp WHILE - DO 55 3.7 Cấu trúc lặp REPEAT - UNTIL 56 MỘT SỐ VÍ DỤ 57 4.1 Ví dụ 58 4.2 Ví dụ 59 MỤC LỤC 4.3 Ví dụ 60 4.4 Ví dụ 62 4.5 Ví dụ 63 Chương PHỐI GHÉP VI XỬ LÍ VỚI BỘ NHỚ VÀ CÁC THIẾT BỊ VÀO/RA 64 CÁC TÍN HIỆU CỦA VI XỬ LÍ VÀ CÁC MẠCH PHỤ TRỢ 64 1.1 Các tín hiệu 8086 64 1.2 Phân kênh để tách thông tin việc đệm cho bus 68 1.3 Mạch tạo xung nhịp 8284 69 1.4 Mạch điều khiển bus 8288 71 1.5 Biểu đồ thời gian lệnh ghi/đọc 72 PHỐI GHÉP VI XỬ LÍ VỚI BỘ NHỚ 74 2.1 Giới thiệu nhớ 74 2.2 Giải mã địa cho nhớ 76 2.2.1 2.2.2 2.2.3 2.2.4 Giới thiệu 76 Thực mạch giải mã mạch lơ-gíc đơn giản 77 Thực giải mã dùng mạch giải mã tích hợp 78 Thực giải mã dùng PROM 80 PHỐI GHÉP VI XỬ LÍ VỚI THIẾT BỊ VÀO RA 81 3.1 Giới thiệu thiết bị vào/ra 81 3.2 Giải mã địa thiết bị vào 82 3.2.1 Giới thiệu 82 3.2.2 Các mạch cổng đơn giản 83 GIỚI THIỆU MỘT SỐ VI MẠCH HỖ TRỢ VÀO RA 85 4.1 Ghép nối song song dùng 8255A 85 4.1.1 Giới thiệu 85 4.1.2 Lập trình 8255A 89 4.2 Truyền thông nối tiếp 90 4.2.1 Mạch USART 8251A 92 Chương CÁC PHƯƠNG PHÁP VÀO RA DỮ LIỆU 98 GIỚI THIỆU 98 VÀO/RA BẰNG PHƯƠNG PHÁP THĂM DÒ 99 VÀO/RA BẰNG NGẮT 100 3.1 Giới thiệu 100 MỤC LỤC 3.2 Bộ xử lý ngắt ưu tiên PIC 8259A 100 3.2.1 Các khối chức 8259A 100 3.2.2 Các tín hiệu 8259A 101 3.2.3 Lập trình cho PIC 8259A 102 VÀO/RA BẰNG TRUY NHẬP TRỰC TIẾP BỘ NHỚ 110 4.1 Khái niệm phương pháp truy nhập trực tiếp vào nhớ 110 4.2 Các phương pháp trao đổi liệu 112 4.2.1 Trao đổi mảng liệu 112 4.2.2 Treo CPU để trao đổi byte 113 4.2.3 Tận dụng thời gian CPU không dùng bus để trao đổi liệu 113 4.3 Bộ điều khiển truy nhập trực tiếp nhớ Intel 8237A 113 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 Giới thiệu 113 Các tín hiệu 8237A 114 Các ghi bên DMAC 8237A 116 Các lệnh đặc biệt cho DMAC 8237A 120 Lập trình cho ghi địa ghi số đếm 121 Chương CÁC BỘ VI ĐIỀU KHIỂN 124 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN VÀ CÁC HỆ NHÚNG 124 1.1 Giới thiệu 124 1.2 Các kiểu vi điều khiển 124 HỌ VI ĐIỀU KHIỂN Intel 8051 125 2.1 Sơ đồ khối 126 2.2 Các ghi 128 2.3 Tập lệnh 129 GIỚI THIỆU MỘT SỐ ỨNG DỤNG TIÊU BIỂU CỦA VI ĐIỀU KHIỂN 129 3.1 Chuyển đổi số tương tự (D/A) 129 3.2 Chuyến đổi tương tự số (A/D) 131 Chương GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 133 CÁC VI XỬ LÍ TIÊN TIẾN DỰA TRÊN KIẾN TRÚC INTEL IA-32 133 1.1 Giới thiệu IA-32 133 1.2 Các vi xử lý hỗ trợ IA-32 135 CÁC VI XỬ LÍ TIÊN TIẾN DỰA TRÊN KIẾN TRÚC INTEL IA-64 136 CÁC VI XỬ LÍ TIÊN TIẾN CỦA SUN MICROSYSTEMS 138 TÀI LIỆU THAM KHẢO 141 CHƯƠNG TỔNG QUAN VỀ VI XỬ LÍ VÀ HỆ VI XỬ LÍ Chương TỔNG QUAN VỀ VI XỬ LÝ VÀ HỆ VI XỬ LÝ GIỚI THIỆU VỀ VI XỬ LÍ Một máy tính thơng thường bao gồm khối chức bản, khối xử lí trung tâm (CPU - Central Processing Unit), nhớ khối phối ghép với thiết bị ngoại vi (I/O - Input/Output) Tuỳ theo quy mô, độ phức tạp hiệu khối chức kể mà người ta chia máy tính điện tử sử dụng thành loại sau: Máy tính lớn (Mainframe) loại máy tính thiết kế để giải toán lớn với tốc độ cao Máy tính thường làm việc với số liệu từ 64 bít lớn trang bị nhiều xử lý tốc độ cao nhớ lớn Chính máy tính lớn kích thước vật lý Chúng thường dùng để tính tốn điều khiển hệ thống thiết bị dùng quân chương trình nghiên cứu vũ trụ, để xử lý thông tin ngành ngân hàng, ngành khí tượng, cơng ty tài chính, chứng khốn, bảo hiểm Máy tính (Minicomputer) dạng thu nhỏ kích thước tính máy tính lớn Nó đời nhằm thoả mãn nhu cầu sử dụng máy tính cho ứng dụng vừa phải mà dùng máy tính lớn vào gây lãng phí Máy tính thường dùng cho tính tốn khoa học kỹ thuật, gia công liệu quy mô nhỏ hay để điều khiển quy trình cơng nghệ Máy vi tính (Microcomputer) loại máy tính thơng dụng Một máy vi tính vi điều khiển (Microcontroller), máy tính vi mạch (one-chip microcomputer), hệ vi xử lí có khả làm việc với số liệu có độ dài bít, bít, bít, 16 bít lớn Hiện nay, số loại máy vi tính có lực xử lý tương đương với máy tính con, làm việc với số liệu có độ dài từ 32 bít 64 bít Ranh giới để phân chia máy vi tính máy tính ngày không rõ nét Các vi xử lý có tên thị trường thường xếp theo họ phụ thuộc vào nhà sản xuất chúng đa dạng chủng loại Các nhà sản xuất vi xử lý tiếng kể tới hãng Intel với vi xử lý họ x86, Core, Core i; Motorola với vi xử lý họ 680xx; Sun Microsystems với họ vi xử lý SPARC AMD với vi xử lý Althlon Phenom Tính đến thời điểm chương trình viết cho tập lệnh x86 tương thích Intel chiếm tỷ lệ áp đảo mơi trường máy vi tính HỆ VI XỬ LÍ Bộ vi xử lý thành phần bản, không thiếu để tạo nên máy vi tính Tuy nhiên, thực tế vi xử lý cịn phải kết hợp thêm với phận điện tử khác nhớ phối ghép vào/ra để tạo nên hệ vi xử lý (Microprocessing system) hoàn chỉnh Cần lưu ý rằng, để hệ thống có cấu trúc trên, thuật ngữ “hệ vi xử lý” mang CHƯƠNG TỔNG QUAN VỀ VI XỬ LÍ VÀ HỆ VI XỬ LÍ ý nghĩa tổng quát so với thuật ngữ “máy vi tính”, máy vi tính dạng cụ thể hệ vi xử lý Hình 1-1 giới thiệu sơ đồ khối tổng quát hệ vi xử lý Bus liệu Bus điều khiển Bộ xử lý trung tâm Bộ nhớ (ROM-RAM) (CPU) Phối ghép vào/ra (I/O) Thiết bị vào Thiết bị Thanh ghi Thanh ghi Thanh ghi Bus địa Hình 1-1 Sơ đồ khối hệ vi xử lý Trong sơ đồ Hình 1-1, ta thấy rõ khối chức hệ vi xử lý gồm: Khối xử lý trung tâm (CPU); Bộ nhớ bán dẫn (ROM-RAM); Khối phối ghép với thiết bị ngoại vi (I/O Interface); Các bus truyền thông tin địa chỉ, liệu điều khiển Ba khối chức CPU, Bộ nhớ Khối phối ghép liên hệ với thông qua tập đường dây để truyền tín hiệu gọi chung Bus hệ thống (System bus) Bus hệ thống bao gồm bus thành phần bus địa chỉ, bus liệu bus điều khiển tương ứng để truyền dẫn tín hiệu địa chỉ, liệu điều khiển CPU đóng vai trị chủ đạo hệ vi xử lý Đây mạch vi điện tử có mật độ tích hợp cao có khả lập trình Khi hoạt động, CPU đọc mã lệnh ghi dạng bít bít từ nhớ, sau giải mã lệnh thành dãy xung điều khiển ứng với thao tác lệnh để điều khiển khối khác thực bước CHƯƠNG CÁC BỘ VI ĐIỀU KHIỂN Hình 6-2 Sơ đồ chân tín hiệu 8051 8051 hỗ trợ cổng vào/ra số biến thể cổng hoạt động hai chế độ vào Cổng truyền thông nối tiếp thường xử lý liệu bít cho phép gửi nhận song song Cổng nối tiếp có chế độ hoạt động Chế độ 0, chân TxD sử dụng tín hiệu xung nhịp cố định mức 1/12 xung nhịp vi điều khiển chân RxD dùng để thu phát Chế độ chế độ giao tiếp UART với bít stop Chế độ giống chế độ thêm bít chẵn lẻ Chế độ giống chế độ cho phép lập trình tốc độ tín hiệu Bộ nhớ ROM vi mạch loại EPROM lập trình điện Bộ nhớ ngồi truy nhập thơng qua tín hiệu truy nhập EA=0 Việc truy nhập ROM ngồi thực thơng qua tín hiệu PSEN mức thấp để kích hoạt vi mạch nhớ ROM Bảng 6-3 Ý nghĩa tín hiệu 8051 Ý nghĩa Tín hiệu P0 0-P0 Tín hiệu liệu cổng P0 P1 0-P1 Tín hiệu liệu cổng P1 P2 0-P2 Tín hiệu liệu cổng P2 P3 0-P3 Tín hiệu liệu cổng P3 A8-A15 Tín hiệu địa Xtal1-2 Tín hiệu xung nhịp RxD Tín hiệu thu truyền thơng nối tiếp TxD Tín hiệu phát truyền thông nối tiếp 127 CHƯƠNG CÁC BỘ VI ĐIỀU KHIỂN INT0-1 Tín hiệu ngắt 0-1 (mức thấp) RD Đọc liệu nhớ ngồi WR Tín hiệu ghi liệu nhớ ngồi EA Tín hiệu truy nhập nhớ chương trình ngồi EA=0 dùng ROM ngồi EA=1 dùng ROM ALE Tín hiệu chốt địa P0 ALE=1 Trên nhóm cổng P0 tín hiệu địa ALE=0 Trên nhóm cổng P0 tín hiệu liệu PSEN Tín hiệu cho phép lưu chương trình dùng đọc nhớ chương trình bên ngồi RST Khởi động lại Các tín hiệu ngắt 8051 chia thành loại bên bên khởi xướng Khi ngắt diễn ra, chương trình chạy bị dừng chương trình phục vụ ngắt kích hoạt Khi kết thúc, vi điều khiển quay trở lại chương trình bị dừng chưa có xảy Ngắt xảy đồng thời xử lý theo độ ưu tiên Bộ định thời hay đếm chuỗi mạch lật thay đổi trạng thái theo tín hiệu vào/ra Hai đếm T0, T1 lập trình chia 256, 8192 hay 65536 sinh tín hiệu ngắt kết thúc Tín hiệu phát thơng qua phần mềm 2.2 Các ghi Thanh ghi đếm chương trình (PC) trỏ liệu (DPTR) ghi 16 bít cho phép xác định vị trí nhớ Bộ nhớ chương trình nằm dải 0000-FFFFh 00000FFFh khơng gian nhớ chương trình bên vi điều khiển Con trỏ liệu chia thành hai phần thấp (8 bít) cao (8 bít) Thanh ghi A B ghi dùng chung dùng cho thao tác tính tốn đơn vị xử lý 8051 Thanh ghi A ghi tích lũy (accumulator) dùng thao tác số học lơ-gíc Thanh ghi dùng để trao đổi liệu với nhớ Thanh ghi B thường dùng kèm với ghi A thao tác nhân chia Ngồi ra, 8051 cịn 32 ghi khác nằm nhớ RAM chia thành bốn băng, B0-B3, băng gồm ghi R0-R7 Thanh ghi Cờ ghi mã bít cho biết trạng thái số lệnh gộp vào ghi từ trạng thái chương trình (Program Status Word - PSW) 8051 có cờ: cờ 128 CHƯƠNG CÁC BỘ VI ĐIỀU KHIỂN nhớ C, nhớ phụ AC, tràn OV chẵn lẻ P Các cờ người dùng F0 GF0-1 Các cờ người dùng tùy biến theo yêu cầu người viết chương trình lưu kiện Con trỏ ngăn xếp SP ghi bít lưu vị trí đỉnh ngăn xếp nhớ RAM 8051 Các ghi chức đặc biệt nằm nhớ RAM từ địa 00-7Fh Các ghi đặt tên riêng mã lệnh tham chiếu qua địa Ví dụ ghi A cịn tham chiếu qua địa 0E0h 2.3 Tập lệnh 8051 hỗ trợ chế độ địa sau: Chế độ địa trực tiếp: liệu dành cho lệnh phần mã lệnh Từ gợi nhớ cho chế độ dấu # Ví dụ MOV A, #100 Chế độ địa ghi: ghi lưu giá trị liệu Chế độ địa trực tiếp: địa ô nhớ phần câu lệnh Chế độ địa gián tiếp: giá trị ghi cho biết địa liệu Từ gợi nhớ @ Ví dụ MOV A, @R0 ; Nạp liệu nhớ có giá trị R0 vào ghi A Tập lệnh 8051 hỗ trợ thao tác di chuyển liệu, thao tác lơ-gíc, phép toán số học câu lệnh nhảy gọi hàm Ví dụ 6-1 Đoạn chương trình 8051 Nhan: INC 3Ch MOV A, #2Ah XRL A, 3Ch JNZ Nhan NOP ; Tăng giá trị ô nhớ 3Ch lên ; A=2Ah ; XOR A với giá trị ô nhớ 3Ch ; Nhảy tới Nhan kết XOR khác ;khơng làm GIỚI THIỆU MỘT SỐ ỨNG DỤNG TIÊU BIỂU CỦA VI ĐIỀU KHIỂN Việc chuyển đối tín hiệu tương tự sang số ngược lại thường gặp ta muốn kết nối máy tính với giới tương tự Trong phần giới thiệu sử dụng vi điều khiển kết nối với chuyển đổi tương tự số (A/D) ngược lại (D/A) Thông thường chuyển đổi cho phép kết nối thơng qua kênh liệu bít, ba trạng thái cho phép điều khiển thơngqua tín hiệu đọc/ghi, chọn chíp 3.1 Chuyển đổi số tương tự (D/A) Hình 6-3 giới thiệu kết nối vi điều khiển 8051 chuyển đổi D/A khái quát Bộ chuyển đổi D/A có đặc điểm sau: Vout = -Vref×(byte đầu vào/100H) Vref = 10V 129 CHƯƠNG CÁC BỘ VI ĐIỀU KHIỂN Thời gian chuyển đổi 5s Trình tự điều khiển ~CS ~WR Cổng nối với tín hiệu liệu chuyển đổi cịn cổng dùng để điều khiển Trong ví dụ này, thiết bị tạo sóng hình sin với chu kỳ 1000Hz thay đổi theo chương trình Vref đặt -10V dạng tín hiệu đầu thay đổi từ 0V tới +9, 96V Chương trình dùng bảng tra cứu để sinh biên độ sóng sin Chu kỳ thiết lập vào khoảng thời gian truyền liệu cho chuyển đổi Với S điểm lấy mẫu, chu kỳ ngắt Tmin= 5×S s tần số tối đa fmax = 200 000/S Hình 6-3 Ghép nối chuyển đổi D/A với 8051 Với sóng có tần số 1000Hz, cần số lượng mẫu 200 Tuy nhiên thực tế chạy chương trình cho thấy thời gian để tạo mẫu cần 6s thời gian để chuyển sang mẫu 2s Như thực tế cho phép số lượng mẫu 166 Ví dụ 6-2 Chương trình chuyển đổi D/A org 0000h daconv: clr p3, ; Chọn chíp mov dptr, #bang : lấy địa sở bảng repeat: mov r1, #0A6h ; Khởi tạo R1 = 166 next: mov a, r1 ; Lấy địa offset bảng movc a, @a+dptr ;Lấy giá trị mẫu mov p1, a ; Gửi mẫu cổng clr p3, setb p3, djnz r1, next sjmp repeat 130 CHƯƠNG CÁC BỘ VI ĐIỀU KHIỂN ; Bảng chuyển đổi sử dụng hàm cosin để tính giá trị biên tín hiệu đầu 83 giá ;trị đầu thể biên độ từ cực đại tới nhỏ 0, 83 giá trị lại từ tới cực đại Với 83 ; mẫu cho nửa chu kỳ giá trị góc hàm cosin thay đổi 2, 17 độ cho mẫu bang: db 00H ; db ffH ; s1:FF×cos(0) db feH ; s2:7FH+FF×cos(2, 17) db feH ; s3:7FH+FF×cos(2, 17×2) db 81H ; s42:7FH+FF×cos(88, 9) db 00H ; s84:7FH+FF×cos(180) db feH 3.2 ; s166:7FH+FF×cos(2, 17) Chuyến đổi tương tự số (A/D) Hình 6-4 sử dụng chuyển đổi tương tự số bít có đặc tính sau: Tín hiệu lấy mẫu: Vin = Vref-, liệu =00h ; Vin=Vref+, liệu = FFh Thời gian lấy mẫu: s Trình tự điều khiển: CS, WR RD (ở mức tích cực thấp) Trong hình vẽ, cổng 8051 nối với kênh liệu chuyển đổi cổng nối với tín hiệu điều khiển Hình 6-4 Ghép nối 8051 chuyển đổi A/D Ví dụ 6-3 Chương trình chuyển đổi A/D 131 CHƯƠNG CÁC BỘ VI ĐIỀU KHIỂN Đoạn chương trình sau số hóa tín Vref với chu kỳ 100s lưu kết vào nhớ RAM 4000H:43E7H equ begin, 4000H ;Địa bắt đầu adconv: next: equ delay, 74H ;trễ 87s equ end1, 43H ;Địa kết thúc byte cao equ end2, e8H ;Địa kết thúc byte thấp mov dptr, #begin clr p3, ; Gửi ~CS tới A/D clr p3, ; Tạo xung ~WR tới A/D setb p3, ; clr p3, ;Tạo xung ~RD mov a, p1 ;Đọc liệu từ A/D setb p3, ;Kết thúc đọc mov @dptr, a ;Lưu vào RAM inc dptr ;Tăng trỏ RAM lên mov a, dph ;Kiểm tra kết thúc cjne a, #end1, wait mov a, dpl cjne a, #end2, wait sjmp done ; Kết thúc tới vị trí cuối wait: mov r1, #delay ;Trễ 87s here: djnz r1, here sjmp next done: sjmp done end 132 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN Chương GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 1.1 CÁC VI XỬ LÍ TIÊN TIẾN DỰA TRÊN KIẾN TRÚC INTEL IA-32 Giới thiệu IA-32 IA-32 kiến trúc 32 bít hãng Intel phát triển lần giới thiệu vi xử lý Intel 80386 Kiến trúc IA-32 hỗ trợ ba chế độ hoạt động: chế độ bảo vệ (protected mode), chế độ thực (real mode) chế độ quản lý hệ thống SMM (System Management Mode) Các chế độ hoạt động định lệnh chức mà chương trình truy nhập: Chế độ bảo vệ: chế độ xử lý Chế độ cho phép chạy phần mềm 8086 môi trường đa nhiệm bảo vệ Chế độ gọi chế độ 8086 ảo Chế độ địa thực: Ché độ cung cấp mơi trường lập trình 8086 với số tính mở rộng chuyển sang chế độ bảo vệ Để xử lý hoạt động chế độ thông thường phải khởi động lại xử lý Chế độ quản lý hệ thống - SMM: Chế độ cung cấp cho hệ điều hành chế suốt phục vụ nhiệm vụ cụ thể quản lý lượng hay bảo mật hệ thống Chế độ kích hoạt thơng qua tín hiệu SMM tín hiệu nhận từ điều khiển ngắt tiên tiến Trong chế độ quản lý hệ thống xử lý chuyển qua lại không gian địa riêng biệt chương trình lưu lại ngữ cảnh chương trình chạy Các đoạn mã SMM thực hồn tồn suốt Ngay quay trở lại từ chế độ SMM, xử lý khôi phục lại trạng thái giống trước ngắt SMM xảy Bất kỳ chương trình chạy xử lý IA-32 cung cấp tài nguyên để thực lệnh, lưu đoạn mã, liệu thông tin trạng thái Các tài nguyên tạo lập nên môi trường thực thi cho chương trình: Khơng gian địa chỉ: chương trình đánh địa khơng gian nhớ tuyến tính tới 232 byte hay 4GB khơng gian địa vật lý lên tới 236 sử dụng cách đánh địa mở rộng Các ghi thực thi bản: bao gồm ghi dùng chung, sáu ghi đoạn, ghi cờ trỏ lệnh EIP Các ghi đấu phẩy động x87FPU: bao gồm ghi liệu, ghi điều khiển, ghi trạng thái, ghi lệnh, ghi trỏ toán hạng, thẻ mã lệnh Các ghi cho phép thực phép tốn với độ xác kép mở rộng hay với số nguyên byte 133 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN Các ghi MMX: bao gồm ghi hỗ trợ chế thực lệnh nhiều liệu với thao tác số nguyên (1 byte, byte hay byte) xếp vào gói 64 bít Các ghi XMM: hỗ trợ thao tác số nguyên số thực xếp vào gói 128 bít Các vi xử lý hệ sau hỗ trợ IA-32 áp dụng tính thực thi lệnh tiên tiến cho phép thực nhiều lệnh chu trình lệnh kỹ thuật đường ống, siêu vô hướng, hay siêu phân luồng Các hệ Pentium sử dụng vi kiến trúc siêu vô hướng cho phép thực lệnh chu kỳ xung nhịp với siêu đường ống 12 đoạn chế thực thi không theo trật tự vô hướng (out-of-order execution) Vi kiến trúc Netburst vi kiến trúc điển hình minh họa Hình 7-1 Vi kiến trúc Netburst tăng cường tính kiến trúc Pentium việc tăng cường lực đơn vị xử lý, cao hiệu đệm tích hợp, mở rộng giao tiếp bus Các vi xử lý IA-32 hệ hỗ trợ chế đa nhân (multi-core) bên cạnh kiến trúc siêu phân luồng cho phép chạy nhiều ứng dụng đồng thời Việc kết hợp hai kiến trúc làm cho chương trình ứng dụng sử dụng vi xử lý lơ-gíc bơ vi xử lý vật lý Bên cạnh đó, xử lý hệ hỗ trợ cơng nghệ ảo hóa cho phép nhiều hệ điều hành ứng dụng chạy máy ảo khác chia sẻ hệ thống phần cứng Hình 7-1 Vi kiến trúc Netburst 134 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN Kiến trúc IA-32 cung cấp chức hỗ trợ hệ điều hành hay phần mềm hệ thống Với thao tác vào/ra chế độ bảo vệ, thao tác bị hạn chế thông qua: Cờ đặc quyền IOPL (I/O privilege level) trạng thái quyền vào/ra phân đoạn trạng thái chương trình TSS (Task state segment) Cơ chế bảo vệ đoạn trang nhớ Về mơ hình nhớ, chương trình khơng truy nhập trực tiếp vào nhớ vật lý Thay vào đó, chương trình sử dụng mơ hình truy nhập: Tuyến tính: Chương trình coi nhớ chuỗi liên tiếp byte Đoạn mã, liệu ngăn xếp nằm không gian địa Phân đoạn: Bộ nhớ chia thành không gian khác gọi đoạn Thông thường liệu, đoạn mã, ngăn xếp sử dụng đoạn khác Bộ xử lý hỗ trợ IA-32 cung cấp 16383 đoạn với kích cỡ khác nhau, kích cỡ lớn đoạn 4GB Địa thực: mơ hình nhớ 8086 Phân trang nhớ ảo: nhớ chương trình chia thành trang ánh xạ vào nhớ ảo Sau đó, nhớ ảo ánh xạ vào nhớ thực Nếu hệ điều hành sử dụng phân trang, chế ánh xạ hoàn toàn suốt chương trình ứng dụng 1.2 Các vi xử lý hỗ trợ IA-32 Với ưu công nghệ thiết kế vi kiến trúc mới, hệ vi xử lý IA-32 vượt ngưỡng tốc độ (tần số hoạt động) lực thực vi xử lý hệ trước Bảng liệt kê vi xử lý IA-32 hệ đầu khơng có đệm tích hợp vi xử lý (GP-thanh ghi dùng chung; FPU-thanh ghi dấu phẩy động) Bảng 7-1 Vi xử lý hỗ trợ IA-32 hệ đầu Vi xử lý Năm sản xuất Tần số (MHz) Số ghi Bus liệu mở rộng Bộ nhớ tối đa Bộ đệm 80386DX 1985 20 32GP 32 4GB Intel 486DX 1989 25 32GP 80 FPU 32 4GB 8KB L1 Pentium 1993 60 32GP 80 FPU 64 4GB 16KB L1 200 32GP 80 FPU 64GB 16KB L1 256-512KB L2 266 32GP 80 FPU 64 MMX 64GB 32KB L1 256-512KB L2 Pentium Pro Pentium II 1995 1997 64 64 135 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN Pentium III 1999 32GP 80 FPU 64 MMX 128 XMM 500 64 64GB 32KB L1 512KB L2 Bảng 7-2 Vi xử lý IA-32 hệ sau Năm Vi xử lý sản xuất Pentium Vi kiến trúc Tần số (GHz) 2000 Netburst 1, Pentium 2002 Netburst, Siêu phân 3, 06 luồng Pentium M 2003 Pentium M 1, Pentium 2005 Extreme Netburst, Siêu phân 3, 73 luồng Core Duo 2006 Pentium M, Lõi 2, 16 kép Atom Z5xx 2008 Atom, Ảo 1, 86 hóa Số ghi 32 GP 80 FPU 64 MMX 128 XMM 32 GP 80 FPU 64 MMX 128 XMM 32 GP 80 FPU 64 MMX 128 XMM 32 GP 80 FPU 64 MMX 128 XMM 32 GP 80 FPU 64 MMX 128 XMM 32 GP 80 FPU 64 MMX 128 XMM Băng thông bus hệ thống Bộ nhớ tối đa 3, 2GB/s 64GB 4, 2GB/s 64GB 3, 2GB/s 64GB 8, 5GB/s 64GB 5, GB/s 4GB 4, 2GB/s 4GB Bộ đệm 8KB L1 256KB L2 8KB L1 256KB L2 64KB L1 1MB L2 16KB L1 2MB L2 64KB L1 2MB L2 56KB L1 512KB L2 CÁC VI XỬ LÍ TIÊN TIẾN DỰA TRÊN KIẾN TRÚC INTEL IA-64 Kiến trúc Intel IA-64 bổ sung khơng gian địa chương trình 64 bít hỗ trợ khơng gian nhớ vật lý tới 40 bít chế độ IA-32e so với kiến trúc IA-32 trước Kiến trúc IA-64 đảm bảo tính tương thích ngược cho phép chạy chương trình viết cho kiến trúc IA-32 Các chế độ IA-64 bao gồm: Chế độ tương thích: cho phép chạy ứng dụng 16 32 bít mà khơng phải biên dịch lại Chế độ tương tự chế độ bảo vệ IA-32 Các ứng dụng truy nhập 4GB đầu khơng gian nhớ tuyến tính Tuy nhiên, ứng dụng sử dụng khơng gian nhớ lớn với chế độ mở rộng địa vật lý 136 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN Chế độ 64 bít Cho phép chương trình truy nhập khơng gian nhớ tuyến tính 64 bít Chế độ mở rộng số lượng ghi dùng chung ghi XMM từ lên 16 Các ghi dùng chung có kích cỡ 64 bít Chế độ 64 kích hoạt sở đoạn mã Kích cỡ mặc định cho địa 64 bít cịn tốn hạng 32 bít Kích cỡ tốn hạng thay đổi theo lệnh sử dụng tiền tố REX Điều giúp cho câu lệnh cũ chuyển sang chế độ 64 bít ghi địa Bảng 7-3 Vi xử lý hỗ trợ IA-64 Vi xử lý Năm sản xuất Vi kiến trúc Tần số (GHz) 2004 Netburst, Siêu phân luồng, IA-64 2005 Netburst, Siêu phân luồng, IA-64 3, 03 Pentium 2005 Extreme Netburst, Siêu phân luồng, IA-64 3, 73 Xeon Xeon DualCore Xeon 2005 Pentium 2005 672 Core Extreme 2006 X6800 Xeon 7140 2006 Netburst, Siêu phân luồng, Đa nhân, IA-64 Netburst, Siêu phân luồng, IA-64, Ảo hóa, Đa nhân Netburst, Siêu phân luồng, IA-64, Ảo hóa, Đa nhân Netburst, Siêu phân 3, Số ghi 32, 64 GP 80 FPU 64 MMX 128 XMM 32, 64 GP 80 FPU 64 MMX 128 XMM 32 GP 80 FPU 64 MMX 128 XMM 32, 64 GP 80 FPU 64 MMX 128 XMM Băng thông bus hệ thống Bộ nhớ tối đa Bộ đệm 16KB L1 1MB L2 6, 4GB/s 64GB 5, 3GB/s 16KB L1 1024GB 1MB L2 8MB L3 8, 5GB/s 64GB 16KB L1 2MB L2 6, 4GB/s 64GB 16KB L1 2MB L2 (Tổng 4MB) 3, 32, 64 GP 80 FPU 64 MMX 128 XMM 6, 4GB/s 64GB 16KB L1 2MB L2 2, 93 32, 64 GP 80 FPU 64 MMX 128 XMM 8, 5GB/s 64GB 64KB L1 4MB L2 3, 40 32, 64 GP 80 FPU 12, GB/s 64GB 64KB L1 1MB L2 137 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN Xeon 5472 Atom Core i7 2007 2008 2008 luồng, IA-64, Ảo hóa, Đa nhân Netburst, Siêu phân luồng, IA-64, 3, 00 Ảo hóa, Đa nhân (4 nhân) Atom, IA-64, Ảo hóa, Đa 1, 60 nhân (4 nhân) Netburst, Siêu phân luồng, IA-64, 3, 20 Ảo hóa, Đa nhân (4 nhân) 64 MMX 128 XMM (tổng 2MB) 16MB L3 32, 64 GP 80 FPU 64 MMX 128 XMM 256GB 64KB L1 6MB L2 (Tổng 12MB) 64GB 56KB L1 512KB L2 (Tổng 1MB) 64GB 64KB L1 256KB L2 8MB L3 32, 64 GP 80 FPU 64 MMX 128 XMM 32, 64 GP 80 FPU 64 MMX 128 XMM 12, GB/s 12, GB/s 6, GT/s CÁC VI XỬ LÍ TIÊN TIẾN CỦA SUN MICROSYSTEMS Sun Microsystems hỗ trợ thiết kế xử lý mở rộng SPARC (Scalable Processor Architecture) Kiến trúc chịu ảnh hưởng máy tính Berkeley RISC I Tập lệnh tổ chức ghi xử lý SPARC giống với Berkeley RISC SPARC cho phép triển khai từ ứng dụng nhúng máy chủ lớn, tất dùng chung tập lệnh Hiện nay, xử lý SPARC thường sử dụng rộng rãi môi trường máy chủ, trạm làm việc sử dụng hệ điều hành SUN, Unix Linux Bộ xử lý SPARC thường có tới 128 ghi dùng chung Tại thời điểm nào, phần mềm sử dụng tức 32 ghi bao gồm ghi toàn cục, 24 ghi ngăn xếp Các ghi ngăn xếp tạo thành cửa sổ ghi (register window) tối đa 32 cửa sổ cho phép tối ưu thao tác gọi hàm trở Mỗi cửa sổ có ghi cục dùng chung ghi với cửa sổ kề Các ghi chia sẻ dùng để truyền tham số giá trị trả cho hàm ghi cục dùng để lưu giá trị cục lời gọi hàm Hầu hết lệnh xử lý SPARC sử dụng toán hạng ghi Các lệnh nạp lưu chuyên dùng để trao đổi liệu ghi nhớ Ngoài chế dộ địa ghi, SPARC sử dụng chế độ địa dịch chuyển Trong chế độ này, địa hiệu dụng toán hạng dịch chuyển đoạn tương ứng với giá trị ghi Để thực câu lệnh nạp ghi, trình thực lệnh cần thêm giai đoạn để tính địa nhớ 138 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN Vi xử lý hỗ trợ SPARC 32 bít phiên cho phép sử dụng 16 ghi dấu phẩy động với độ xác kép, 32 ghi với độ xác đơn Các cặp chẵn-lẻ ghi độ xác kép kết hợp với để nâng độ xác lên gấp đơi mức SPARC 64 bít phiên 9, xuất vào năm 1993, có thêm 16 ghi độ xác kép ghi không tách thành ghi có độ xác đơn Bảng liệt kê số tính vi xử lý sử dụng SPARC Bảng 7-4 Tính số vi xử lý SPARC Tên Tần số MHz Năm sản xuất Số Số chân luồng x tín hiệu Số nhân Đệm liệu L1 (k) Đệm lệnh L1 (k) Đệm L2 (k) UltraSPARC IIs (Blackbird) 250–400 1997 1×1 521 16 16 1024 – 4096 UltraSPARC IIs (Sapphire-Black) 360–480 1999 1×1 521 16 16 1024– 8192 UltraSPARC IIi (Sabre) 270–360 1997 1×1 587 16 16 256– 2048 UltraSPARC IIi (Sapphire-Red) 333–480 1998 1×1 587 16 16 2048 UltraSPARC IIe (Hummingbird) 400–500 1999 1×1 370 16 16 256 UltraSPARC IIi (IIe+) (Phantom) 550–650 2000 1×1 370 16 16 512 UltraSPARC III (Cheetah) 600 2001 1×1 1368 64 32 8192 UltraSPARC III Cu (Cheetah+) 1002– 1200 2001 1×1 1368 64 32 8192 UltraSPARC IIIi (Jalapo) 1064– 1593 2003 1×1 959 64 32 1024 UltraSPARC IV (Jaguar) 1050– 1350 2004 1×2 1368 64 32 16384 UltraSPARC IV+ (Panther) 1500– 2100 2005 1×2 1368 64 64 2048 139 CHƯƠNG GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN UltraSPARC T1 (Niagara) 1000– 1400 2005 4×8 1933 16 3072 UltraSPARC T2 (Niagara 2) 1000– 1600 2007 8×8 1831 16 4096 UltraSPARC T2 Plus (Victoria Falls) 1200– 1600 2008 8×8 1831 16 4096 140 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Crisp J Introduction to microprocessors and microcontrollers, Newnes 2004 David Calcutt, Fred Cowan,Hassan Parchizadeh, 8051 Microcontrollers An Applications-Based Introduction, Newnes, 2004 Douglas V Hall Microprocessor and Interfacing- programming and hardware, 2nd edition McGraw Hill 1997 Hari BalaKrishnan & Samel Madden The lecture notes on Computer Systems Engineering, Open Courses Ware Massachusets Institute of Technology Hồ Khánh Lâm, Kỹ thuật vi xử lý, NXB Bưu điện, 2005 Intel Corp Intel® 64 and IA-32 Architectures Software Developer’s Manual Rafiquzzaman M Microprocessor theory and applications with 68000/68020 and Pentium, John Wiley&Sons 2008 Văn Thế Minh Kỹ thuật vi xử lý NXB Giáo dục 1999 141 ... CẤU TRÚC CỦA VI XỬ LÍ 3.1 Cấu trúc Như trình bày phần trên, vi xử lý đơn vị xử lý trung tâm CPU máy vi tính Như sức mạnh xử lý máy vi tính định lực vi xử lý Trên nguyên tắc, vi xử lý chia thành... thiệu khái niệm tổng quan vi xử lý, hệ vi xử lý phận cấu thành hệ vi xử lý nói chung Chương tóm tắt q trình phát triển phân loại vi xử lý đến Chương trình bày chi tiết vi xử lý Intel 8086 bao gồm... sử dụng vi mã Tất lệnh RISC có định dạng cố định vi? ??c sử dụng vi mã không cần thiết Vi xử lý RISC xử lý hầu hết lệnh chu kỳ 12 CHƯƠNG TỔNG QUAN VỀ VI XỬ LÍ VÀ HỆ VI XỬ LÍ Tập lệnh vi xử lý RISC