+Kỹ Thuật Vi Xử Lý sv cong nghe thuc pham VXL TC

111 154 0
+Kỹ Thuật Vi Xử Lý  sv cong nghe thuc pham VXL TC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Học trình 1.1 Cấu trúc đặc điểm vi xử BỘ VI XỬ 1.1.1 Sự phát triển vi xử 1.1.1.1 Thế hệ (1971 - 1973) Năm 1971, phát triển vi mạch dùng cho máy tính cầm tay, Intel cho đời vi xử 4004 (4 bit liệu, 12 bit địa chỉ) Sau Intel nhà sản xuất khác cho đời vi xử khác 4040 (4 bit) 8008 (8 bit) Intel, PPS - (4 bit) Rockwell International, IPM - 16 (16 bit) National Semiconductor Đặc điểm chung vi xử hệ là: - Độ dài từ thường bit - Công nghệ chế tạo PMOS với đặc điểm mật độ phần tử nhỏ, tốc độ thấp, giá rẻ có khả đưa dòng tải nhỏ - Tốc độ thực lệnh: 10 - 60 µs/lệnh với tần số nhịp fclk = 0,1 - 0,8 MHz - Tập lệnh đơn giản phải cần nhiều vi mạch phụ trợ tạo nên hệ vi xử hoàn chỉnh 1.1.1.2 Thế hệ (1974 - 1977) Các vi xử đại diện hệ vi xử bit 6502 MOS Technology, 6800 6809 Motorola, 8080 8085 Intel đặc biệt vi xử Z80 Zilog Các vi xử có tập lệnh phong phú thường có khả phân biệt địa nhớ với dung lượng đến 64KB Có số vi xử có khả phân biệt 256 địa cho thiết bị ngoại vi (họ Intel Zilog) Chúng sử dụng rộng rãi công nghiệp để tạo máy tính bit tiếng thời Apple II Commodore 64 Tất vi xử thời kỳ sản xuất công nghệ NMOS CMOS cho phép đạt tốc độ từ - µs/lệnh với tần số đồng hồ fclk = - MHz 1.1.1.3 Thế hệ (1978 - 1982) Các vi xử hệ có đại diện vi xử 16 bit 8086/80186/80286 Intel 68000/68010 Motorola Một tiến hẳn so với vi xử bit hệ trước vi xử 16 bit có tập lệnh đa dạng với lệnh nhân, chia lệnh thao tác với chuỗi ký tự Khả phân biệt địa cho nhớ cho thiết bị ngoại vi vi xử hệ lớn (từ 16MB cho nhớ tới 64K địa cho thiết bị ngoại vi họ Intel) Đây vi xử dùng máy IBM PC, PC/XT, PC/AT máy Macintosh Apple Phần lớn vi xử hệ sản xuất công nghệ HMOS cho phép đạt tốc độ từ 0,1 - µs/lệnh với tần số đồng hồ fclk = 10MHz 1.1.1.4 Thế hệ 4(1984 - ?) Các vi xử đại diện hệ vi xử 32 bit 80386/80486 64 bit Pentium Intel, vi xử 32 bit 68020/68030/68040/68060 Motorola Đặc điểm vi xử hệ bus địa 32 bit có khả làm việc với nhớ ảo Ngồi có chế cấu trúc như: chế xử xen kẽ liên tục dòng mã lệnh(pipelining), nhớ cache(bộ nhớ ẩn hay nhớ dự trữ), nhớ ảo Các vi xử có quản nhớ(MMU - Memory Management Unit) nhiều đồng xử toán học bên Phần lớn vi xử hệ sản xuất công nghệ HCMOS Một số thơng số vi xử Intel: Các thông số 8086 Năm sản xuất 06/1978 fclk max 10 MHz MIPS(triệu lệnh/s) 0,33 Số tranzito 29000 Bus số liệu 16 bit Bus địa 20 bit Không gian địa MB Số chân 40 Bộ nhớ Cache Không Bộ nhớ ảo Không Đồng xử toán học 8087 8088 1979 10 MHz 0,33 29000 bit 20 bit MB 40 Không Không 8087 386DX 486DX Pentium 10/1985 04/1989 05/1993 40 MHz 50 MHz 100 MHz 20 112 275000 1,2 triệu 3,1 triệu 32 bit 32 bit 64 bit 32 bit 32 bit 32 bit GB GB GB 132 168 273 Có Có Có Có Có Có 80387DX Bên Bên 1,1.2 Một số đặc điểm cấu trúc vi xử 1.1.2.1 Độ dài từ Độ dài từ số bit liệu mà vi xử có khả xử lúc Mỗi vi xử có độ dài từ định Tuỳ thuộc vào hệ vi xử mức độ phát triển công nghệ vi xử lý, độ dài từ 4bit, 8bit, 16bit, 24bit, 32bit hay 64bit Độ dài từ lớn tạo nhiều khả tính tốn cho vi xử lý: khoảng biểu diễn số rộng hơn, tốc độ tính tốn nhanh Thơng thường, vi xử có độ dài từ bên bên ngồi nhau, nghĩa số bit liệu mà xử số bit liệu mà nhận từ bên ngồi (bộ nhớ, thiết bị ngoại vi) Tuy nhiên, có số vi xử làm việc với độ dài từ ngồi khác dụ VXL 8088 có khả xử với liệu có độ dài 16bit nhận liệu có độ dài 8bit từ bên ngồi 1.1.2.2 Khả đánh địa Các mã lệnh liệu cung cấp cho vi xử hoạt động để nhớ Bộ nhớ cấu trúc liệu bao gồm ô nhớ, ô nhớ gán cho địa để nhận biết Dải đánh địa lớn dung lượng nhớ nhiều Khả đánh địa lớn cho phép tạo mọtt hệ thống vi xử có cấu hình mạnh với nhiều loại thiết bị ngoại vi, nhớ có dung lượng lớn khả xử nhanh Thông qua địa nhớ, vi xử truy cập vào ô nhớ để lấy mã lệnh liệu Số lượng ô nhớ mà vi xử phân biệt gọi khả đánh địa vi xử Khả đánh địa gọi khả địa hố, khơng gian địa hay khơng gian nhớ Để quản địa ô nhớ, vi xử thường sử dụng ghi địa (address register) Độ rộng ghi địa định khả địa hoá vi xử dụ: dùng ghi có độ dài 16bit để quản địa nhớ khả địa hố vi xử 216 = 65535 = 64K ô nhớ Khả đánh địa vi xử biết đến không với nhớ mà thiết bị ngoại vi 1.1.2.3 Tốc độ thực lệnh Tốc độ thực lệnh MIPS (Millions of Instructions Per Second) vi xử thường tính theo cơng thức: MIPS = f*N M+T (triệu lệnh/s) Trong đó: f - tần số làm việc vi xử N - số lượng đơn vị xử số học logic(ALU) không phụ thuộc vào bên vi xử M - số lượng vi lệnh trung bình lệnh vi xử (thường để thực lệnh cần từ ÷ vi lệnh) T - hệ số thời gian truy nhập nhớ Như vậy, muốn tăng tốc độ vi xử ta thực cách tăng f N, giảm M T Để làm điều này, người ta đưa vào cấu trúc vi xử số chế, cấu trúc như: kỹ thuật đường ống, xử song song, đồng xử lý, nhớ dự trữ, 1.1.2.4 Các đặc tính nâng cao tốc độ Để nâng cao tốc độ vi xử lý, hệ có số chế, cấu trúc đưa vào vi xử chế tạo như: - Kỹ thuật đường ống (Pipelining Technicque, gọi chế xử xen kẽ liên tục dòng mã lệnh) - Xử song song (Parallel processing) - Đồng xử (Coprocessing) - Bộ nhớ dự trữ hay nhớ ẩn (Cache memory) ● Kỹ thuật đường ống Các vi xử thực lệnh thường phải trải qua giai đoạn: đọc mã lệnh, giải mã lệnh, thực lệnh Cơ chế Pipelining cho phép vi xử chuyển sang giai đoạn giải mã lệnh lệnh tiếp tục đọc mã lệnh lệnh Với cách hoạt động theo kiểu dây chuyền trên, tất phận vi xử liên tục phải làm việc, tốc độ vi xử tăng lên cách đáng kể ● Xử song song Xử song song có nghĩa hai hay nhiều q trình tính tốn xảy lúc Điều thực cách kết nối hai hay nhiều vi xử khối xử trung tâm CPU, lúc ta nhận hệ đa xử Kỹ thuật xử song song thực vi xử cách thiết kế cho trình xử liệu bên vi xử chia thành phiên khác thực song song nhờ phân chia khối logic điều khiển bên thành hai phần riêng Kiến trúc vi xử kiểu gọi kiến trúc siêu hướng(Superscalar architechture), nghĩa lúc có nhiều hướng xử khác bên vi xử ●Đồng xử Trong hệ vi xử trước đây, để tăng tốc độ xử độ xác hệ thống phép toán số học, đặc biệt phép toán với dấu phẩy động, người ta thường mắc thêm vào đồng xử toán học Bộ đồng xử tốn học có chức thực phép tốn số học, tốc độ xử tính xác cao Các vi xử công nghệ cao nay(thế hệ 4) cấy vào bên cấu trúc đồng xử tốn học làm tăng đáng kể tốc độ xử độ xác phép tốn vi xử ●Bộ nhớ dự trữ Tốc độ vi xử tăng đáng kể thời gian truy cập nhớ giảm tối thiểu Để thực điều này, người ta áp dụng cấu trúc nhớ dự trữ (bộ nhớ ẩn - Cache memory) Bộ nhớ Cache nhớ có tốc độ truy nhập cao, nằm bên vi xử với dung lượng hạn chế (Internal Cache), nằm vi xử kết nối trực tiếp với vi xử với dung lượng đủ lớn (External Cache) Khi hoạt động, trước tiên vi xử tìm kiếm lệnh nhớ Cache, khơng tìm thấy tìm nhớ Điều đồng nghĩa với việc để nhớ Cache lệnh thường xuất hoạt động vi xử làm giảm tối thiểu thời gian truy nhập nhớ 1.1.2.5 Tập lệnh Tập lệnh đặc tính then chốt kiến trúc vi xử Khả xử vi xử thể thông qua tập lệnh Có thể nói, tập lệnh ngơn ngữ dùng để giao tiếp người vi xử Thơng qua tập lệnh, người lập trình hay nhà thiết kế hệ thống điều khiển vi xử hoạt động theo trình tự Tập lệnh thường biểu diễn dạng mã ngữ gợi nhớ tiếng Anh, phân thành nhóm khác theo chức năng: - Các lệnh vận chuyển liệu Đó lệnh thực vận chuyển liệu : + Giữa ghi bên VXL với + Giữa ghi nhớ + Giữa vùng nhớ với + Với thiết bị vào - Các lệnh số học Đó lệnh cộng, trừ, nhân chia - Các lệnh logic Đó lệnh AND, OR, NOT, XOR, - Các lệnh dịch quay vòng Đó lệnh dịch nội dung ghi bên VXL bên phải, bên trái, dịch quay vòng Dịch logic thực dịch nội dung ghi bên trái (SLL) hay bên phải (SLR) số bit, cờ carry phần nội dung cần dịch, giá trị bit đưa vào chiếm chỗ bit cần dịch Các lệnh dịch trái số học (SAL) coi phép nhân dịch phải sos học coi chia - Các lệnh chuyển điều khiển + Các lệnh nhảy hay rẽ nhánh + Các lệnh gọi tới chương trình + Nhảy trở lại từ chương trình - Các lệnh điều khiển vi xử - Các lệnh xử chuỗi - Các lệnh xử bit Đó lệnh thao tác với bit cụ thể trường từ Nhóm lệnh gồm kiểm tra giá trị bit tác động tơid cờ + Xoa bit + Thiết lập bit + Chích bit chuyển đến đích + Chích bit mở rộng dấu - Các lệnh dấu phẩy động 1.2 CẤU TRÚC VÀ HOẠT ĐỘNG CỦA HỆ VI XỬ 1.2.1 Hệ vi xử Bộ vi xử (VXL) vi mạch số mật độ cực lớn (VLSI) làm việc theo chương trình (tức theo nguyên tắc nhận lệnh từ bên thực lệnh) Hệ vi xử (VXL) hệ thống số xây dựng sở VXL Từ định nghĩa hệ VXL ta có nhận xét: - Hệ VXL hệ thống số tín hiệu làm việc tín hiệu số (nhận hai giá trị 0) hoạt động sở hệ thống số, thân hệ khơng giải vấn đề cả, mà toán giải hệ thực tồn chương trình người lập trình đưa vào - Khi xem xét hệ VXL, ta phải nghiên cứu VXL sử dụng hệ, sau xem xét thành phần khác Có thể thấy vi xử thành phần thiếu hệ thống vi xử Tuy nhiên, để tạo nên hệ vi xử hồn chỉnh vi xử phải kết hợp thêm với phận điện tử khác (bộ nhớ, phối ghép vào ) Một hệ vi xử bao gồm khối chức sau (hình 1-1): - Khối xử trung tâm (CPU - Central Processing Unit) - Bộ nhớ bán dẫn (M - Memory) - Khối phối ghép với thiết bị ngoại vi (I/O - Input/Output) - Các bus truyền thông tin Bus liệu Bus điều khiển Thanh Khối xử Thanh Bộ nhớ ghi ghi trung tâm (M) ROM-RAM (CPU) Phối ghép vào/ra (I/O) Thiết bị vào Thiết bị Bus địa Hình 1-1 Hệ thống vi xử 1.2.2 Cấu trúc hoạt động hệ vi xử 1.2.2.1 Khối xử trung tâm - CPU Là trung tâm tính tốn điều hành hệ thống Nó mạch vi điện tử có độ tích hợp cao Khi hoạt động, đọc mã lệnh ghi dạng bit 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 thao tác Để thực cơng việc trên, bên CPU có ghi dùng để chứa địa lệnh thực gọi ghi trỏ lệnh ( IP - Instruction Pointer) đếm chương trình (PC - Program Counter), số ghi đa khác khối số học logíc (ALU - Arithmetic and Logic Unit) để thao tác với liệu Ngồi ra, có hệ thống mạch điện tử phức tạp để giải mã lệnh từ tạo xung điều khiển cho tồn hệ thống 1.2.2.2 Bộ nhớ Còn gọi nhớ - phận quan trọng hệ vi xử - bao gồm nhớ ROM (Read Only Memory) RAM (Random Access Memory) Trong ROM chứa chương trình điều khiển hoạt động toàn hệ thống Khi cấp nguồn cho hệ hoạt động, CPU lấy lệnh từ ROM để khởi động hệ thống Một phần chương trình điều khiển hệ thống, chương trình ứng dụng, liệu kết chương trình thường để RAM 1.2.2.3 Khối phối ghép vào/ra - I/O Tạo khả giao tiếp hệ vi xử với thiết bị điện tử khác bàn phím, chuột, hình, máy in, nhớ Bộ phận phối ghép cụ thể bus hệ thống với thiết bị điện tử thường gọi cổng Như vậy, có cổng vào để lấy thơng tin từ ngồi vào có cổng để đưa thơng tin từ hệ Tuỳ theo yêu cầu cụ thể, mạch cổng xây dựng từ mạch logíc đơn giản từ vi mạch chuyên dụng lập trình 1.2.2.4 Các bus truyền thông tin Các khối chức CPU, M I/O liên hệ với thông qua hệ thống bus truyền thông tin bao gồm: bus địa chỉ, bus liệu bus điều khiển ● Bus địa (Address Bus) Thường có 16, 20, 24 hay 32 đường dây song song chuyển tải thông tin bit địa Số lượng đường dây bus địa phụ thuộc vào khả phân biệt địa CPU (số bit địa CPU) VD: CPU có số bit địa 32, tương ứng với số lượng đường dây bus địa N = 32, khả phân biệt địa CPU 2N = 232 = Giga ô nhớ Khi đọc/ghi nhớ, CPU đưa bus địa ô nhớ liên quan Khi đọc/ghi với cổng vào/ra, CPU đưa bus địa bit địa tương ứng cổng Bus địa có tính chiều, nghĩa có CPU có khả đưa địa bus địa ● Bus liệ u(Data Bus) Thường có 8, 16, 24, 32 hay 64 đường dây tuỳ theo vi xử cụ thể Số lượng đường dây định số bit liệu mà CPU có khả xử lúc Bus liệu có tính chiều, nghĩa liệu truyền từ CPU (dữ liệu ra) truyền đến CPU (dữ liệu vào) Các phần tử có đầu nối thẳng với bus liệu phải trang bị đầu ba trạng thái để ghép vào hoạt động bình thường với bus ● Bus điều khiển (Control Bus) Thường gồm hàng chục đường dây có tín hiệu khác Mỗi tín hiệu điều khiển có chiều định Khi hoạt động, CPU đưa tín hiệu điều khiển đến khối khác hệ, đồng thời nhận tín hiệu điều khiển từ khối để phối hợp hoạt động tồn hệ Bus điều khiển có tính chiều, nhiên tính chiều khơng phải tín hiệu mà nhóm tín hiệu CÂU HỎI ƠN TẬP Trình bày khái niệm độ dài từ? Độ dài từ bên độ dài từ bên ngoài? Khả địa hố vi xử gì? Bộ vi xử quản địa ô nhớ nào? Thế xử song song, kỹ thuật đường ống? Trình bày cấu trúc chức khối hệ vi xử Trình bày điểm khác biệt ROM RAM, từ rõ vai trò chúng hệ thống vi xử lý? Hệ thống Bus bao gồm loại? Trình bày đặc điểm loại? Bộ vi xử Intel 8088 Chương 2.1 CẤU TRÚC CỦA BỘ VI XỬ 8088 2.1.1 Sơ đồ khối Các ghi đa Các ghi trỏ số AX BX CX DX SP BP SI DI Bus địa chỉ(20bit) Σ Các ghi đoạn trỏ lệnh Bus liệu ALU(16bit) Bus liệu (8bit) CS DS SS ES IP Bus CPU 8bit liệu 20bit địa Logic điều khiển Bus BUS Thanh ghi tạm thời ALU Khối điều khiển EU Đệm lệnh (hàng đợi lệnh, byte) Thanh ghi cờ EU BIU EU : khối thực lệnh (Execution Unit) BIU : khối phối ghép bus( Bus Interface Unit) ALU : khối số học logic (Arithmetic and Logic Unit) Hình 2.1 Cấu trúc VXL Intel 8088 2.1.2 BIU VÀ EU Điểm khác biệt cấu trúc vi xử 8088 với vi xử hệ trước việc Intel ứng dụng chế pipelining vào 8088 để nâng cao tốc độ VXL Thông thường hoạt động VXL gồm giai đoạn: đọc mã lệnh, giải mã lệnh, thực lệnh Các VXL hệ trước thực giai đoạn cách thời điểm định, chúng thực ba cơng việc nói tuỳ theo giai đoạn có phận định CPU trạng thái nhàn rỗi (ví dụ giải mã lệnh, thực thao tác khơng liên quan đến Bus Bus khơng sử dụng) Trong đó, việc ứng dụng chế pipelining vào VXL buộc phải chia cấu trúc chức 8088 thành khối có phân chia cơng việc cho khối: BIU thực việc đọc mã lệnh EU đảm nhận việc giải mã lệnh thực lệnh Các khối chức có khả làm việc đồng thời tất phận VXL liên tục phải làm việc, tốc độ VXL tăng lên cách đáng kể Hình 2-2 mô tả tốc độ xử VXL có chưa có chế Pipelining Khơng có pipelining Có pipelining F1D1E1F2D2E2F3D3E3 F1D1E1F2D2E2F3D3E3 (F - Fetch: đọc lệnh; D - Decode: giải mã lệnh; E - Execute: thực lệnh) Hình 2.2 Cơ chế pipelining BIU đưa địa chỉ, đọc mã lệnh từ nhớ, đọc/ghi liệu từ/vào cổng nhớ Nói cách khác, BIU chịu trách nhiệm đưa địa bus trao đổi liệu với bus Trong BIU có nhớ đệm lệnh với dung lượng byte dùng để chứa mã lệnh đọc nằm sẵn để chờ EU xử (còn gọi hàng đợi lệnh - Queue) Bộ đệm lệnh làm việc theo kiểu "vào trước - trước"(FIFO: first in - first out), nghĩa lệnh cất vào đệm lệnh trước lấy xử trước Trong EU có khối điều khiển (CU - Control Unit) Bên CU có mạch giải mã lệnh mạch tạo xung điều khiển Mã lệnh từ đệm lệnh đưa đến đầu vào giải mã, thông tin thu từ đầu giải mã đưa đến mạch tạo xung điều khiển, kết ta thu dãy xung khác (tuỳ theo mã lệnh) để điều khiển hoạt động phận bên bên CPU 10 4.4 PHỐI GHÉP VXL 8088 VỚI THIẾT BỊ NGOẠI VI 4.4.1 Các kiểu phối ghép vào/ra Đối với 8088(hay họ 80x86 nói chung) có hai cách phối ghép CPU với thiết bị ngoại vi: thiết bị ngoại vi có khơng gian địa tách biệt với nhớ thiết bị ngoại vi có khơng gian địa chung với nhớ 4.4.1.1 Thiết bị ngoại vi có khơng gian địa tách biệt Trong cách phối ghép này, nhớ độc quyền dùng không gian 1MB mà CPU dành cho Các thiết bị ngoại vi dành riêng khơng gian 64KB có địa từ 0000H ÷ FFFFH Tín hiệu điều khiển truy nhập thiết bị ngoại vi trường hợp IO / M = Và lệnh trao đổi liệu thực với thiết bị vào/ra IN OUT 4.4.1.2 Thiết bị ngoại vi có khơng gian địa chung với nhớ Trong cách phối ghép này, nhớ thiết bị ngoại vi chia không gian địa 1MB mà CPU 8088 có khả địa hố Các thiết bị ngoại vi chiếm vùng khơng gian 1MB(trừ vùng đầu dành cho RAM vùng cuối dành cho ROM) Tín hiệu điều khiển truy nhập thiết bị ngoại vi trường hợp dùng chung với nhớ, tức IO / M = Và lệnh trao đổi liệu kiểu MOV cho nhớ lẫn thiết bị ngoại vi 4.4.2 Giải mã địa cho thiết bị ngoại vi Giải mã địa cho thiết bị ngoại vi thực chất giải mã địa cho cổng vào/ra Địa cổng bit(A0 - A7) hay 16 bit(A0 - A15) Trong 97 thực tế có hệ vi xử sử dụng hết 256 cổng vào/ra khác nên phần xét đến giải mã bit địa Việc giải mã địa cho cổng dùng phần tử logic bản(mạch NAND) hay dùng giải mã có sẵn 74LS138 Trên hình 4-13 trình bày hai mạch tương tự dùng 74LS138 để giải mã địa cho cổng vào cổng có địa liên tiếp bắt đầu 00h A3 - A A0 A1 A2 A B C Y0 Y1 Y2 Y3 G2A Y4 Y5 G2B Y6 G1 a) Y7 RD IO/M ISP0 A3 - A Cổng vào A0 A1 A2 WR IO/M ISP7 A B C Y0 Y1 Y2 Y3 G2A Y4 Y5 G2B Y6 G1 b) Y7 OSP0 Cổng OSP7 Hình 4-13: Giải mã địa cho cổng vào cổng Trên sở mạch hình 4-13 ta phối hợp hai tín hiệu đọc ghi để tạo tín hiệu chọn vỏ cho việc đọc/ghi cổng vào/ra cụ thể Hình 4-14 minh họa giải mã với cổng vào cổng có địa 7CH - 7FH A0 A1 A Y0 B Y1 7CH ISP Y2 7FH Y 7CH IO/M A2-A6 G2A Y4 G2B OSP Y5 WR 7FH Y6 A7 G1cho cổng Y7 vào cổng Hình 4-14: Giải mã địa RD C 4.4.3 Các mạch cổng đơn giản Quá trình phối ghép thiết bị ngoại vi với CPU việc giải mã địa cho thiết bị ngoại vi việc trao đổi liệu CPU thiết bị ngoại vi phải thông qua mạch cổng để làm cho CPU thiết bị ngoại vi hoạt động tương thích với Trong thực tế có nhiều vi mạch tổ hợp cỡ vừa 98 dùng làm cổng phối ghép với vi xử để vào/ra liệu Các mạch thường cấu tạo nên từ mạch chốt bit có đầu trạng thái(74LS373: kích theo mức, 74LS374: kích theo sườn), mạch khuếch đại đệm bit chiều đầu trạng thái(74LS240: đầu đảo, 74LS244: đầu không đảo) mạch khuếch đại đệm bit hai chiều đầu trạng thái(74LS245) Hình 4-15 hai mạch cổng đơn giản đó: hình 4-15a mạch phối ghép đơn giản dùng 74LS373(lệnh vận chuyển liệu: OUT Port, AL), hình 4-15b mạch phối ghép vào đơn giản dùng 74LS244(lệnh IN AL, Port) D0 Bus D D Q G D7 OSP Q0 Thiết bị '373 G Q7 D0 Q0 '244 Thiết bị vào D7 Q7 ISP OC Bus D OC1 a) OC2 b) Hình 4-15: Các mạch cổng đơn giản 4.4.4 Mạch phối ghép vào/ra lập trình 8255A Ngoài mạch phối ghép đơn giản trên, thực tế có mạch phối ghép lập trình dùng cho cơng việc tổ chức vào/ra liệu phức tạp mà điển hình mạch 8255A Mạch 8255A gọi mạch phối ghép vào/ra lập trình được(PPI Programmable Peripheral Interface), sử dụng phổ biến hệ vi xử Bus nội PA0 - PA7 - 16 bit khả mềm dẻo ứng dụng Nhóm A Cổng A Điều thể Sơ đồ khối chức 8255A hình 4-16 khiển nhóm A D0 - D7 RD WR A0 A1 Reset CS Đệm bus D Logic điều khiển ghi/đọc Điều khiển nhóm B Nhóm A Cổng C (cao) PC4 - PC7 Nhóm B Cổng C (thấp) PC0 - PC3 Nhóm B Cổng B PB0 - PB7 99 Hình 4-16: Sơ đồ khối chức 8255A Chân Reset 8255A phải nối với tín hiệu Reset chung toàn hệ(khi Reset cổng định nghĩa cổng vào) CS nối với mạch tạo xung chọn thiết bị để đặt mạch 8255A vào địa sở Các tín hiệu địa A0, A1 chọn ghi bên 8255A: ghi ứng với cổng PA, PB PC để ghi/đọc liệu, ghi để ghi từ điều khiển cho hoạt động 8255A CWR(Control Word Register) CSA1A0Thanh ghi1xxKhông chọn000PA001PB010PC011CWR Từ bảng thấy địa cho PA địa sở 8255A Hoạt động 8255A xác định thơng qua từ điều khiển Từ điều khiển cho 8255A có loại phân biệt bit cao nhất(MSB): - Từ điều khiển định nghĩa cấu hình cho cổng PA, PB, PC.(MSB = 1) - Từ điều khiển lập/xoá bit đầu PC.(MSB = 0) 1MA1MA0ACAMBBCB Từ điều khiển định nghĩa cấu hình có cấu trúc hình 4-17: Nhóm A Chọn chế độ 00: Mode 01: Mode 1x: Mode PA 1: vào 0: PCH(cao) 1: vào 0: Nhóm B PCL(thấp) 1: vào 0: PB 1: vào 0: Chọn chế độ 0: Mode 1: Mode Hình 4-17: Từ điều khiển định nghĩa cấu hình 8255A 100 Từ điều khiển lập/xoá bit đầu PC có cấu trúc hình 4-18 0xxxS/R Mã hố PCi 1: lập PCi (000: PC0, , 111: PC7) 0: xố PCi Hình 4-18: Từ điều khiển lập/xố bit PCi 8255A Các chế độ(Mode) làm việc 8255A định nghĩa từ điều khiển CW bao gồm: - Vào/ra sở(Mode 0): chế độ cổng PA, Pb, PC H PCL định nghĩa cổng vào cổng - Vào/ra có xung cho phép(Mode 1): gọi vào/ra có đối thoại Trong chế độ cổng PA, PB định nghĩa thành cổng vào cổng với tín hiệu móc nối(handshaking) bit tương ứng cổng PC nhóm đảm nhiệm - Vào/ra chiều(Mode 2): chế độ riêng cổng PA định nghĩa thành cổng vào/ra chiều với tín hiệu móc nối bit cổng PC đảm nhiệm Cổng PB làm việc với Mode Mode - Lập/xố bit PCi 4.4.5 Một số dụ cách lập trình cho 8255A Các dụ giới thiệu phần có tính chất tham khảo để mô tả hoạt động 8255A khơng chạy máy IBM PC dụ 1: Giả thiết mạch 8255A có địa sở 7Ch Hãy lập trình để định nghĩa chế độ cho 8255A với cấu hình cổng sau: PA : Ra ; PB : Vào PCH : Ra ; PCL : Vào 101 Sau đọc giá trị liệu có PB đưa PA từ PCL đưa PCH Giải: Từ yêu cầu toán thấy từ điều khiển định nghĩa cấu hình là: CW = 10000011 = 83H Như vậy, dùng lệnh giả EQU để định nghĩa cho cổng, ghi từ điều khiển cho từ điều khiển sau: PA PB PC CWR CW EQU EQU EQU EQU EQU 7CH 7DH 7EH 7FH 83H Ta có đoạn chương trình sau: MOV AL, CW ; từ điều khiển để AL OUT CWR, AL ; định nghĩa cấu hình cho 8255A IN AL, PB ; đọc cổng PB OUT PA, AL ; đưa liệu đọc cổng PA IN AL, PC ; đọc cổng PCL MOV CL, ; số lần quay AL ROL AL, CL ; chuyển liệu đọc lên bit cao OUT PC, AL ; đưa liệu đọc cổng PCH dụ 2: Có mạch 8255A với địa sở 30H nối với phần tử ngoại vi đơn giản(hình 4-19) Lập trình để có U1 > U2 đọc trạng thái cơng tắc K, K đóng cho đèn LED tắt, K mở cho đèn LED sáng Giải: Từ yêu cầu toán ta thấy cổng PA, PB cổng vào, PC H cổng Khi U1 > U2 ta đọc PB7 = CPU 8255A Bộ so sánh + PB7 LED PC4 1, lúc ta đọc trạng thái cơng tắc PA1 U1 U2 +5V +5V K Hình 4-19 102 K để điều khiển đèn LED Trường hợp K đóng PA = phải đưa PC4 = để tắt LED Từ điều khiển định nghĩa cấu hình: CW = 10010010 = 92H Định nghĩa hằng: PA PB PC CWR CW EQU EQU EQU EQU EQU 30H 31H 32H 33H 92H ; địa sở PA Ta có đoạn chương trình sau: MOV AL, CW ; từ điều khiển để AL OUT CWR, AL ; định nghĩa cấu hình cho 8255A DocPB: IN AL, PB ; đọc cổng PB AND AL, 80H ; PB7 = 1? JZ DocPB ; không! đọc lại IN AL, PA ; đọc cổng PA AND AL, 02H ; K đóng? JZ Tat ; đúng! Tắt đèn MOV AL, 10H ; lập bit AL OUT PC, AL ; cho đèn sáng JMP Ketthuc ; kết thúc điều khiển đèn Tat: OUT PC, AL ; tắt đèn Ketthuc: dụ 3: Lập trình để bit PC7 8255A dụ tạo 100 xung với T = 50ms, độ rỗng 50% Giả thiết có sẵn chương trình trễ 25ms Delay25 Giải: Từ điều khiển lập/xoá bit PC7 là: SPC7 = 00001111 = 0FH RPC7 = 00001110 = 0EH Sử dụng ký hiệu dụ định nghĩa mới: SPC7 RPC7 EQU EQU 0FH 0EH Ta có đoạn chương trình sau: 103 LAP: MOV CLI MOV OUT CALL MOV OUT CALL LOOP STI CX, 100 AL, SPC7 CWR, AL Delay25 AL, RPC7 CWR, AL Delay25 LAP ; số xung phải tạo ; cấm ngắt tạo xung ; từ điều khiển lập bit PC7 để AL ; Lập bit PC7 ; kéo dài 25ms ; từ điều khiển xoá bit PC7 để AL ; xoá bit PC7 ; kéo dài 25ms ; tạo đủ số xung ; cho phép ngắt trở lại Trong dụ lệnh CLI STI cần thiết để bảo đảm số xung tạo có chu kỳ thoả mãn T = 50ms độ rỗng 50% CÂU HỎI ÔN TẬP Thế chu kỳ BUS? Trình bày giai đoạn chu kỳ BUS Bộ nhớ bán dẫn tổ chức nào? Trình bày cấu trúc chung vi mạch nhớ So sánh cách tổ chức nhớ bán dẫn, đệm lệnh ngăn xếp Thế giải mã địa hệ VXL? Có cách để thực việc giải mã địa chỉ? Trình bày cấu trúc hoạt động 8255A Trình bày cấu trúc từ điều khiển 8255A 104 Sử dụng 74LS138 để dành riêng vùng nhớ 32KB có địa 00000h ÷ 07FFFh cho vi mạch SRAM 4KB Sử dụng 74LS138 để phối ghép VXL8088 với vi mạch ROM 2KB chiếm khơng gian địa FC000h ÷ FFFFFh Sử dụng 74LS138 để dành riêng vùng nhớ 16KB có địa bắt đầu 08000h cho vi mạch RAM 2KB 10.Sử dụng 74LS138 để dành riêng vùng nhớ 64KB có địa bắt đầu F0000h cho vi mạch ROM 8KB 11.Sử dụng 74LS138 để dành riêng vùng nhớ 8KB có địa bắt đầu F0000h cho vi mạch EPROM 1KB 12.Thực dành riêng vùng nhớ 32KB địa F8000H cho mạch nhớ EPROM 4KB mạch giải mã có sẵn 74LS138 13.Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trường hợp cổng vào cổng ứng với địa 24H - 27H 14.Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trường hợp cổng vào có địa liên tiếp 10H 15.Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trường hợp cổng có địa liên tiếp 70H 16.Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trường hợp cổng vào cổng ứng với địa 14H - 17H 17.+Viết đoạn chương trình để định nghĩa chế độ cho 8255A có địa sở 50h với cấu hình cổng sau: PA : Vào; PB : Ra; PCH : Ra; PCL : Vào Sau đọc giá trị liệu có PA đưa PB từ PCL đưa PCH 18.Viết đoạn chương trình cho 8255A có địa sở 34h để thực công việc sau: Liên tục lấy mẫu tín hiệu PC5 PC5 = lấy mẫu tín hiệu PB2 Nếu PB2 = đưa ngồi PC1 = 1, PB2 = đưa PC1 = 105 PHỤ LỤC CÁC HỆ ĐẾM DÙNG TRONG MÁY TÍNH I HỆ HAI VÀ HỆ MƯỜI SÁU Trong sống hàng ngày, để biểu diễn số đó, sử dụng hệ số mười(Decimal number system) Hệ số mười sử dụng tổ hợp chữ số để biểu diễn giá trị số, kèm theo tập hợp dùng thêm chữ D cuối để số hệ mười(trong trường hợp khơng có ký hiệu hệ kèm người ta ngầm hiểu số hệ mười) Trong giới máy tính khác, giá trị số biểu diễn hệ số hai gọi hệ nhị phân(Binary number system) Hệ nhị phân sử dụng tổ hợp chữ số để biểu diễn giá trị số(ứng với hai trạng thái có điện khơng có điện mạch điện tử cấu tạo nên máy) giá trị có chữ số hệ hai(Binary digit, viết tắt bit) Một số hệ hai gồm bit thường đánh dấu chữ B kèm cuối để phân biệt với hệ khác ta làm việc lúc với nhiều hệ đếm khác Một cụm bit tạo thành nibble, cụm bit tạo thành byte, cụm 16 bit tạo thành từ(word) cụm 32 bit tạo thành từ kép(Double word) Trong dãy số hệ hai biểu diễn giá trị số, theo thứ tự từ trái sang phải, bit gọi bit có ý nghĩa lớn nhất(Most Significant Bit - MSB), bit cuối gọi bit có ý nghĩa bé nhất(Least Significant Bit - LSB) Có thể thấy rằng, với cụm n bit có tất n tổ hợp giá trị khác n bit Như vậy, dùng n bit để biểu diễn giá trị ngun khơng dấu số nhị phân n bit có giá trị tương ứng từ ÷ 2n - dụ: số nhị phân 16 bit có giá trị nằm khoảng ÷ 65535 (= 216 - 1) Một điều bất tiện thường gặp hệ nhị phân biểu diễn số có giá trị lớn số hệ hai nhận dài dụ để biểu diễn số 65535 ta cần đến 16 bit viết sau: 65535 = 1111 1111 1111 1111 B Trong thực tế, để viết kết biểu diễn số cho gọn lại, người ta nhóm số hệ hai thành số hệ mười sáu(Hexa - decimal number system) Như vậy, chữ số hệ 16 phải có khả nhận giá trị ứng với tất tổ hợp có bit Để làm điều này, người ta sử dụng chữ số sẵn có hệ mười để biểu diễn giá trị số ứng với dùng thêm chữ A, B, C, D, E, F để biểu diễn giá trị lại ứng với 10 15 Một số hệ 16 phân biệt với số hệ khác cách kèm thêm chữ H cuối Và số 65535 viết thành: 65535 = 1111 1111 1111 1111 B = FFFF H 106 II CHUYỂN ĐỔI GIỮA CÁC HỆ ĐẾM người quen tính tốn với hệ mười, phận tính tốn máy tính biết làm việc với số hệ hai, nên để đảm bảo giao tiếp thuận tiện người máy thường xuyên phải có việc chuyển đổi qua lại hai hệ đếm Đổi số hệ hai sang hệ mười Xét số hệ hai A có dạng: an-1an-2 a1a0,a-1a-2 a-m Giá trị A hệ mười tính sau: A = an-1.2n-1 + an-2.2n-2 + + a1.21 + a0.20 + a-1.2-1 + a-2.2-2 + + a-m.2-m = n −1 ∑ a i=0 i i m + ∑a j=1 −j − j = n −1 ∑ a i=− m i i dụ: Đổi số 101101,1101B sang hệ mười 10110,101B = 1.24 + 0.23 + 1.22 + 1.21 + 0.20 + 1.2-1 + 0.2-2 + 1.2-3 = 16 + + + 0,5 + 0,125 = 22,625 Đổi số hệ mười sang hệ hai  Đổi số nguyên hệ mười sang hệ hai Để đổi số nguyên hệ mười sang hệ hai ta lấy số chia cho cất số dư Sau lấy thương chia cho cất số dư, tiếp tục công việc thương dừng lại Lúc xếp số dư theo thứ tự ngược lại nhận số nhị phân tương ứng dụ: Đổi số 19 sang hệ hai ta thực sau: 19219214202201210 Sắp xếp số dư theo chiều mũi tên Kết thu được: 19 = 10011B  Đổi số thập phân sang hệ hai Một số thập phân bao gồm hai phần: phần nguyên(trước dấu phẩy) phần phân(sau dấu phẩy) Việc đổi số thập phân sang hệ hai thực cách đổi riêng rẽ phần sau cộng kết lại Đối với phần nguyên ta thực theo phương pháp nói Đối với phần phân: lấy số cần 107 đổi nhân với hai, tích thu gồm phần nguyên phần phân Cất phần nguyên, lấy phần phân tích thu nhân tiếp với Quá trình tiếp diễn tích thu 1(nghĩa có phần phân 0) dừng lại Lấy phần nguyên cất xếp lại ta nhận chữ số sau dấu phẩy số hệ hai cần tìm dụ: Đổi số 0,8125 sang hệ hai, ta thực sau: Các bước tính tốnCất phần ngun0,8125x2=1,625010,6250x2=1,250010,2500x2=0,500000 ,5000x2=1,00001 Kết nhận được: 0,8125 = 0,1101B Như vậy, đổi số 19,8125 sang hệ hai nhận số 10011,1101B Trong thực tế, hầu hết số thập phân đổi sang hệ hai cho kết số nhị phân có phần sau dấu phẩy dài vô hạn Điều phép nhân phần phân với không cho kết Lúc này, tuỳ theo yêu cầu độ xác bit sau dấu phẩy để thực đổi Chuyển đổi hệ hai hệ mười sáu Việc đổi số hệ hai sang hệ mười sáu thực theo quy tắc sau: Tính từ dấy phẩy hai phía, nhóm cụm bit thay chữ số hệ mười sáu tương ứng Trường hợp nhóm cuối không đủ bit, phần trước dấu phẩy ta thêm vào phía trước bit 0, phần sau dấu phẩy ta thêm vào phía sau bit dụ: Đổi số 110111101,011011B sang hệ mười sáu 0001 1011 1101 , 0110 1100 B D , C Kết thu được: 1BD,6CH Ngược lại, để đổi số hệ mười sáu sang hệ hai ta thay chữ số hệ mười sáu tổ hợp bit tương ứng 108 PHỤ LỤC BẢNG MÃ ASCII American Standard Code for Information Interchange (Tiêu chuẩn) Hex A B C D E F 24 25 10 12 13 14 15 P ` p 32 ! $ % 31 D & 53 38 ' 54 39 ( 55 40 ) 56 41 * 57 : 42 + 58 ; 43 , 59 < 44 - 60 = 45 61 > 46 / 62 ? 47 63 94 } 125 ~ 110 o 95 124 109 n _ 79 108 93 78 123 | m ^ O 107 92 77 122 { l ] N 106 91 76 121 z k \ M 105 90 75 120 y j [ L 104 89 74 119 x i Z K 103 88 73 118 w h Y J 102 87 72 117 v g X I 101 86 71 116 u f W H 100 85 70 115 t e V G 99 84 69 114 s d U F 98 83 68 113 r c T E 97 b S 112 q 82 67 52 37 30 a R C 96 81 66 51 36 Q B 80 65 50 35 29 A # 64 49 34 28 " 27 48 33 26 11 @ 23 22 21 20 19 18 17 16 126 111 127 109 Các hệ thống vi xử nói chung máy tính nói riêng tiếp nhận, truyền xử thông tin dạng bit Mỗi thông tin gán cho tổ hợp số theo cách thức định gọi mã hoá Trên thực tế, người quen biểu diễn thông tin ký tự bao gồm chữ cái, chữ số ký tự khác như: @ , ! , & , % , $ , = , + , Để đảm bảo giao tiếp thuận tiện người máy, người ta đưa bảng mã ASCII(American Standard Code for Information Interchange - Mã tiêu chuẩn Mỹ dùng cho trao đổi thông tin) Bảng mã ASCII sử dụng bit để mã hoá ký tự chia thành hai bảng: bảng mã ASCII tiêu chuẩn bảng mã ASCII mở rộng Bảng mã ASCII tiêu chuẩn bao gồm ký tự thông dụng với mã số từ ÷ 127 Bảng mã ASCII mở rộng bao gồm ký tự đặc biệt với mã số từ 128 ÷ 255 Mỗi ký tự bảng mã ASCII có hai toạ độ: hàng cột Khi xem mã ký tự ta thực theo thứ tự cột - hàng dụ: Mã 'A', '$', '0', (ký tự trống) 41h, 24h, 30h, 20h Nhìn vào bảng mã ASCII tiêu chuẩn thấy: - cột đầu bảng bao gồm mã từ 00h ÷ 1Fh dùng cho ký tự điều khiển Trong có số ký tự thường dùng cho lập trình như: : 07h (Bell - chuông) : 08h (Back space - xoá lùi) ) : 09h (Horizont tap - giãn cách ngang) : 0Ah (Line feed - thêm dòng mới) : 0Dh (Carriage return - đầu dòng) - Các ký tự số '0' ÷ '9' có mã tương ứng 30h ÷ 39h Như vậy, khoảng cách giá trị số mã ASCII số 30h - Các ký tự chữ hoa 'A' ÷ 'Z' có mã tương ứng 41h ÷ 5Ah, ký tự chữ thường 'a' ÷ 'z' có mã tương ứng 61h ÷ 7Ah Như vậy, mã ký tự chữ thường cao mã ký tự chữ hoa tương ứng 20h 110 Tài liệu tham khảo Văn Thế Minh - Kỹ thuật Vi xử - NXB Giáo Dục 1997 Đỗ Xuân Thụ, Hồ Khánh Lâm - Kỹ thuật vi xử máy tính - NXB Giáo Dục 2000 Ytha YU, Charles Marut - Lập trình hợp ngữ máy vi tính IBM PC NXBGD 1998 (Biên dịch: Quách Tuấn Ngọc, Đỗ Tiến Dũng, Nguyễn Quang Khải) 111 ... điểm cấu trúc vi xử lý 1.1.2.1 Độ dài từ Độ dài từ số bit liệu mà vi xử lý có khả xử lý lúc Mỗi vi xử lý có độ dài từ định Tuỳ thuộc vào hệ vi xử lý mức độ phát triển cơng nghệ vi xử lý, độ dài... kết nối hai hay nhiều vi xử lý khối xử lý trung tâm CPU, lúc ta nhận hệ đa xử lý Kỹ thuật xử lý song song thực vi xử lý cách thiết kế cho trình xử lý liệu bên vi xử lý chia thành phiên khác thực... ĐỘNG CỦA HỆ VI XỬ LÝ 1.2.1 Hệ vi xử lý Bộ vi xử lý (VXL) vi mạch số mật độ cực lớn (VLSI) làm vi c theo chương trình (tức theo nguyên tắc nhận lệnh từ bên thực lệnh) Hệ vi xử lý (VXL) hệ thống

Ngày đăng: 21/01/2018, 15:49

Tài liệu cùng người dùng

Tài liệu liên quan