GIÁO TRÌNH KIẾN TRÚC máy TÍNH

82 314 0
GIÁO TRÌNH KIẾN TRÚC máy TÍNH

Đ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

GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH CHƯƠNG I GIỚI THIỆU CHUNG VỀ KIẾN TRÚC MÁY TÍNH I Khái niệm kiến trúc máy tính Kiến trúc máy tính (Computer architecture) khái niệm trừu tượng hệ thống tính toán quan điểm người lập trình người viết chương trình dịch Nói cách khác, kiến trúc máy tính xem xét theo khía cạnh mà người lập trình can thiệp vào mức đặc quyền, bao gồm ghi, ô nhớ ngắt thâm nhập thông qua lệnh II Lịch sử phát triển máy tính Chiếc máy tính điện tử ENIAC đời năm 1946, chế tạo từ đèn điện tử, rơle điện tử chuyển mạch khí Lịch sử phát triển máy tính điện tử chia làm bốn hệ sau: - Thế hệ 1: (1945-1955) Máy tính xây dựng sở đèn điện tử mà đèn tượng trưng cho bit nhị phân Do máy có khối lượng lớn, tốc độ chậm tiêu thụ điện lớn Như máy ENIAC có khối lượng 30 tấn, tiêu thụ công suất 140KW - Thế hệ thứ 2: (1955-1965) Máy tính xây dựng sở đèn bán dẫn (transistor), máy tính hệ có tênlà TX-0 (transistorized experimental computer 0) - Thế hệ thứ ba: (1965-1980) Máy tính xây dựng vi mạch cỡ nhỏ (SSI) cỡ vừa (MSI), điển hình hệ máy System/360 IBM Thế hệ máy tính có bước đột phá sau: - Tính tương thích cao: Các máy tính họ có khả chạy chương trình, phần mềm - Đặc tính đa chương trình: Tại thời điểm có vài chương trình nằm nhớ số cho chạy chương trình khác chờ hoàn thành thao tác vào/ra - Không gian địa lớn - Thế hệ thứ tư: (1980- ) Máy tính xây dựng vi mạch cỡ lớn (LSI) cực lớn (VLSI) Đây hệ máy tính số ngày nay, nhờ công nghệ bán dẫn phát triển vượt bậc, mà người ta chế tạo mạch tổ hợp mức độ cực lớn Nhờ máy tính ngày nhỏ hơn, nhẹ hơn, mạnh giá thành rẻ Máy tính cá nhân bắt đầu xuất phát triển thời kỳ Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Dựa vào kích thước vật lý, hiệu suất lĩnh vực sử dụng, người ta thường chia máy tính số hệ thứ tư thành loại chính, loại trùm lên phần: - Microcomputer: Còn gọi PC (personal computer), máy tính nhỏ, có chip vi xử lý số thiết bị ngoại vi Thường dùng cho người, dùng độc lập dùng mạng máy tính - Minicomputer: Là máy tính cỡ trung bình, kích thước thường lớn PC Nó thực ứng dụngmà máy tính cỡ lớn thực Nó có khả hỗ trợ hàng chục đến hàng trăm người làm việc Minicomputer sử dụng rộng rãi ứng dụng thời gian thực, ví dụ điều khiển hàng không, tự động hoá sản xuất - Supermini: Là máy Minicomputer có tốc độ xử lý nhanh họ Mini thời điểm định Supermini thường dùng hệ thống phân chia thời gian, ví dụ máy quản gia mạng - Mainframe: Là máy tính cỡ lớn, có khả hỗ trợ cho hàng trăm đến hàng ngàn người sử dụng Thường sử dụng chế độ công việc xếp theo lô lớn (Large-Batch-Job) xử lý giao dịch (Transaction Processing), ví dụ ngân hàng - Supercomputer: Đây siêu máy tính, thiết kế đặc biệt để đạt tốc độ thực phép tính dấu phẩy động cao Chúng thường có kiến trúc song song, hoạt động hiệu cao số lĩnh vực Dựa vào kiến trúc máy tính người ta phân máy tính loại khác sau: - Kiến trúc SISD (single instruction - single data, đơn dòng lệnh - đơn dòng liệu), sơ đồ hình 1-1 Các tín hiệu điều khiển lệnh Khối điều khiển Khối chấp hành lện h liệu Hệ thống nhớ Hình 1-1: Kiến trúc máy tính SISD - Kiến trúc CIMD (Single Instruction Multiple Data, đơn dòng lệnh- đa liệu), sơ đồ hình 1-2 Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Các tín hiệu điều khiển Khối điều khiển Khối chấp hành Khối chấp hành Khối chấp hành n liệu lện h Hệ thống nhớ Hình 1-2: Kiến trúc SIMD - Kiến trúc MIMD (Multiple Instruction Multiple Data, đa dòng lệnh- đa liệu), sơ đồ hình 1-3 Các tín hiệu điều khiển Khối điều khiển lện h Khối chấp hành Khối điều khiển n liệu Hệ thống nhớ lện h Khối chấp hành n liệu Hình 1-3: Kiến trúc MIMD Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH CHƯƠNG II BIỂU DIỄN THÔNG TIN TRONG MÁY TÍNH I Hệ nhị phân (Binary) I.1 Khái niệm: Hệ nhị phân hay hệ đếm số có hai số Đó hệ đếm dựa theo vị trí Giá trị số tuỳ thuộc vào vị trí Các vị trí có trọng số bậc luỹ thừa số Chấm số gọi chấm nhị phân hệ đếm số Mỗi số nhị phân gọi bit (BInary digiT) Bit bên trái bit có trọng số lớn (MSB, Most Significant Bit) bit bên phải bit có trọng số nhỏ (LSB, Least Significant Bit) đây: 23 22 21 20 2-1 2-2 MSB 1 1 LSB Chấm nhị phân Số nhị phân (1010.11)2 biểu diễn thành: (1010.11)2 = 1*23 + 0*22 + 1*21 + 0*20 + 1*2-1 + 1*2-2 = (10.75)10 Chú ý: dùng dấu ngoặc đơn số để ký hiệu số hệ đếm I.2 Biến đổi từ nhị phân sang thập phân Ví dụ : Biến đổi số nhị phân (11001)2 thành số thập phân: Trọng số vị trí: 24 23 22 21 20 Giá trị vị trí: 16 Số nhị phân: 1 0 Số thập phân: 1*24 + 1*23 + 0*22 + 0*21 + 1*20 = (25)10 I.3 Biến đổi thập phân thành nhị phân Để thực việc đổi từ thập phân sang nhị phân, ta áp dụng phương pháp chia lặp sau: lấy số thập phân chia cho số để thu thương số số dư Số dư ghi lại để làm thành tố số nhị phân Sau đó, số thương lại Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH chia cho số lần để có thương số thứ số dư thứ Số dư thứ hai số nhị phân thứ hai Quá trình tiếp diễn số thương Ví dụ 1: Biến đổi số thập phân (29)10 thành nhị phân: 29/2 = 14 + 1(LSB) 14/2 = + 7/2 = + 3/2 = + 1/2 = + 1(MSB) Vậy (29)10 = (1101)2 Đối với phần lẻ số thập phân, số lẻ nhân với số số nhớ ghi lại làm số nhị phân Trong trình biến đổi, số nhớ đầu bit MSB số nhớ cuối bit LSB Ví dụ 2: Biến đổi số thập phân (0.625)10 thành nhị phân: 0.625*2 = 1.250 Số nhớ 1, bit MSB 0.250*2 = 0.500 Số nhớ 0.500*2 = 1.000 Số nhớ 1, bit LSB Vậy : (0.625)10 = (0.101)2 II Hệ thập lục phân (Hexadecima) II.1 Khái niệm: Các hệ máy tính đại thường dùng hệ đếm khác hệ thập lục phân Hệ thập lục phân hệ đếm dựa vào vị trí với số 16 Hệ dùng số từ đến ký tự từ A đến F bảng sau: Bảng 2.1 Hệ thập lục phân: Thập lục phân A B C D E F Thập phân 10 11 12 13 14 15 Photocopyable Nhị phân 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH II.2.Biến đổi thập lục phân thành thập phân Các số thập lục phân biến đổi thành thập phân cách tính tổng số nhân với giá trị vị trí Ví dụ : Biến đổi số a.(5B)16 b (2AF)16 thành thập phân a Số thập lục phân: B Trọng số vị trí: 161 160 Giá trị vị trí : 16 Số thập phân: 5*16 + B*1 = (91)10 b Số thập lục phân: A F Trọng số vị trí: 162 161 160 Giá trị vị trí : 256 16 Số thập phân: 2*256 + A*16 + F*1 = (687)10 II.3.Biến đổi thập phân thành thập lục phân Để biến đổi số thập phân thành thập lục phân, ta sử dụng phương pháp chia lặp, với số 16 Ví dụ : Biến đổi (1776)10 thành thập lục phân 1776/16 = 111 + (LSB) 111/16 = + 15 F 6/16 = + (MSB) Số thập lục phân: (6F0)16 II.4 Biến đổi thập lục phân thành nhị phân Các số thập lục phân dễ đổi thành nhị phân Thực số thập lục phân cách biểu diễn số nhị phân thuận lợi mà (bảng 2-1) Để đổi số thập lục phân thành nhị phân, cần thay cách đơn giản số thập lục phân bốn bit nhị phân tương đương Ví dụ: Đổi số thập lục (DF6)16 thành nhị phân: D F 1101 1111 0110 (DF6)16 = (110111110110)2 II.5 Biến đổi nhị phân thành thập lục phân Để biến đổi số nhị phân thành số thập lục phân tương đương cần gộp lại thành nhóm gồm bit nhị phân, dấu chấm nhị phân Ví dụ: Biến đổi số nhị phân (1111101000010000)2 thành thập lục phân 1111 1010 0001 0000 Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH F A Số thập lục phân: (FA10)16 III Hệ BCD (Binary Code decimal) Giữa hệ thập phân hệ nhị phân tồn hệ lai: hệ BCD cho số hệ thập phân mã hoá hệ nhị phân, thích hợp cho thiết bị đo có thêm phần hiển thị số đầu dùng loại đèn số khác Ở dùng bốn số hệ nhị phân (bốn bit) để mã hoá số hệ thập phân có giá trị nằm khoảng từ Như ta không dùng hết tổ hợp có bit; tầm quan trọng số BCD nên vi xử lý thường có lệnh thao tác với chúng Ví dụ: (35)10 = (00110101)2 IV Bảng mã ASCII.(American Standard Code for Information Interchange) Người ta xây dựng mã để biểu diễn cho ký tự số Và ký hiệu đặc biệt khác Các mã gọi mã ký tự số Bảng mã ASCII mã bit dùng phổ biến hệ máy tính Với mã bit nên có 27 = 128 tổ hợp mã Mỗi ký tự (chữ hoa chữ thường) số thập phân từ ký hiệu đặc biệt khác biểu diễn mã số bảng 2-2 Việc biến đổi thành ASCII mã ký tự số khác, tốt sử dụng mã tương đương bảng Ví dụ: Đổi ký tự BILL thành mã ASCII: Ký tự B I L L ASCII 1000010 1001001 1001100 1001100 HEXA 42 49 4C 4C Bảng 2-2: Mã ASCII Bits(row) R O W 000 001 Column bits(B7B6B5) 010 011 100 101 110 111 B4 B3 B2 B1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 NUL SOH STX ETX EOT ENQ ACK BEL BS DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN SP ! “ # $ % & ‘ ( @ A B C D E F G H P Q R S T U V W X \ a b c d e f g h p q r s t u v w x Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH A B C D E F 1 1 1 0 1 1 1 0 1 1 1 HT LF VT FF CR SO SI EM SUB ESC FS GS RS US ) * + , / : ; < = > ? I J K L M N O Y Z [ \ ] ^ _ i j k l m n o y z { | } ~ DEL Control characters: NUL = Null; DLE = Data link escape; SOH = Start Of Heading; DC1 = Device control 1; DC2 = Device control 2; DC3 = Device control DC4 = Device control 4; STX = Start of text; ETX = End of text; EOT = End of transmission; ENQ = Enquiry; NAK = Negative acknowlege ACK = Acknowlege; SYN = Synidle; BEL = Bell ETB = End od transmission block; BS = Backspace; CAN = Cancel HT = Horizontal tab; EM = End of medium; LF = Line feed; SUB = Substitute VT = Vertical tab; ESC = Escape; FF = From feed; FS = File separator SO = Shift out; RS = Record separator; SI = Shift in; US = Unit separator V Biểu diễn giá trị số máy tính V.I Biểu diễn số nguyên a Biểu diễn số nguyên không dấu: Tất số mã máy vi tính biểu diễn chữ số nhị phân Để biểu diễn số nguyên không dấu, người ta dùng n bit Tương ứng với độ dài số bit sử dụng, ta có khoảng giá trị xác định sau: Số bit Khoảng giá trị n bit: 2n - bit 255 Byte 16 bit 65535 Word b Biểu diễn số nguyên có dấu: Người ta sử dụng bit cao biểu diễn dấu; bit dấu có giá trị tương ứng với số nguyên dương, bit dấu có giá trị biểu diễn số âm Như khoảng giá trị số biểu diễn tính sau: Số bit Khoảng giá trị: n bit 2n-1-1 bit -128 127 Short integer 16 bit -32768 32767 Integer 32 bit -231 231-1 (-2147483648 2147483647) Long integer V.2 Biểu diễn số thực(số có dấu chấm (phẩy) động) Có hai cách biểu diễn số thực hệ nhị phân: số có dấu chấm cố định (fĩed point number) số có dấu chấm động (floating point number) Cách thứ dùng VXL(micro processor) hay vi điều khiển (micro controller) cũ Cách thứ hay dùng có độ xác cao Đối Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH với cách biểu diễn số thực dấu chấm động có khả hiệu chỉnh theo giá trị số thực Cách biểu diễn chung cho hệ đếm sau: R = m.Be Trong m phần định trị, hệ thập phân giá trị tuyệt đối phải nhỏ Số e phần mũ B số hệ đếm Có hai chuẩn định dạng dấu chấm động quan trọng là: chuẩn MSBIN Microsoft chuẩn IEEE Cả hai chuẩn dùng hệ đếm nhị phân Thường dùng theo tiêu chuẩn biểu diễn số thực IEEE 7541985(Institute of Electric & Electronic Engineers), chuẩn hãng chấp nhận dùng xử lý toán học Intel Bit dấu nằm vị trí cao nhất; kích thước phần mũ khuôn dạng phần định trị thay đổi theo loại số thực Giá trị số thực IEEE tính sau: R = (-1)S*(1+M1*2-1 + +Mn*2-n)*2E E -127 Chú ý: giá trị M0 mặc định - Dùng 32 bit để biểu diễn số thực, số thực ngắn: -3,4.1038 < R < 3,4.1038 31 S 30 23 22 E7 - E0 |Định trị (M1 - M23) - Dùng 64 bit để biểu diễn số thực, số thực dài: -1,7.10308 < R < 1,7.10308 63 S 62 52 51 E10 - E0 Định trị (M1 - M52) Ví dụ tính số thực: 0100 0010 1000 1100 1110 1001 1111 1100 Phần định trị: 2-4+2-5+2-8+2-9+2-10+2-12+2-15+ +2-16+2-17+2-18+2-19+2-20+2-21 = 0,1008906 Giá trị ngầm định là: 1,1008906 Phần mũ: 28+22+20 =133 Giá trị thực (bit cao bit dấu): 133-128=6 Dấu: = số dương Photocopyable GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Giá trị số thực là: R = 1,1008906.26 = 70,457 Phương pháp đổi số thực sang số dấu phẩy động 32 bit: - Đổi số thập phân thành số nhị phân - Biểu diễn số nhị phân dạng ± 1, xxxBy (B: số 2) - Bit cao 31: lấy giá trị với số dương, với số âm - Phần mũ y đổi sang mã excess -127 y, xác định cách: y + (7F)16 - Phần xxx phần định trị, đưa vào từ bit 22 Ví dụ: Biểu diễn số thực (9,75)10 dạng dấu phẩy động Ta đổi sang dạng nhị phân: (9,75)10 = (1001.11)2 = 1,00111B3 Bit dấu: bit 31 = Mã excess - 127 là: 7F + = (82) 16 = 82H = (10000010)2 Được đưa vào bit tiếp theo: từ bit 30 đến bit 23 Bit 22 mặc định Cuối số thực (9,75)10 biểu diễn dướiư dạng dấu phẩy động 32 bit sau: 0100 0001 0001 1100 0000 0000 0000 0000 bit |31|30 23|22 0| CHƯƠNG III CÁC KHỐI CƠ BẢN CỦA MÁY TÍNH I Giới thiệu sơ lược cấu trúc máy vi tính So với từ đời, cấu trúc sở máy vi tính ngày không thay đổi Mọi máy tính số coi hình thành từ sáu phần (như hình 3-1): Hình 3-1: Giới thiệu sơ đồ khối tổng quát máy tính số Data Bus Bộ xử lý trung tâm (CPU) Bộ nhớ (Memory) ROM-RAM Control Bus Bộ nhớ (Mass store Unit) Adrress Bus Photocopyable Phối ghép vào/ra (I/O) Thiết bị vào (Input Unit) Thiết bị (Output Unit) 10 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Trong trường hợp (hình ) Cache hai đường hai Directory A B ứng với hai ENTRY, có thêm 512 cờ Least Recently Used dài bit (LRU bit) Những cờ theo dõi xem BANK A BANK B giữ thông tin lâu không sử dụng Những cờ Controller kiểm tra thuật toán thay thông tin lâu không dùng Thao tác đọc thông tin từ nhớ Cache hai đường giống Cache trực tiếp Biết (ở sơ đồ h ) SET_ADDRESS có bit Đầu tiên địa bit dùng để chọn 512 lối vào SET hai Directory A B Tiếp theo TAG_ADDRESS 18 bit so sánh với TAG lối vào SET, TAG_VALID_BITS kiểm tra, LINE_VALID_BIT tương ứng với mã LINE_SELECT (A2 đến A4) kiểm tra lối vào SET Nếu ba điều kiện kiểm tra thoả mãn hai lối vào SET ta nói trúng Cache thông tin dòng đọc vào VXL từ BANK tương ứng nhớ Cache Mạt khác, xảy trượt Cache không khớp TAG hai VALID_BIT bị xoá, LINE_VALID_BIT không lập lối vào nào, algorithm kiểm tra bit cờ LRU SET chọn địa SET để xác định xem lối vào BANK A hay BANK B lâu không dùng hơn, sau thông tin đọc vào từ nhớ viết vào BANK nhớ lâu không dùng II.9 Làm tươi nhớ DRAM Bộ nhớ DRAM có hàng cần phải làm tươi chu kỳ 2mS Mạch làm tươi chip nhớ phải kiểm tra điện áp ô nhớ, lớn Vcc/2 nạp tới Vcc , bé Vcc/2 xả hết 0V Để đọc từ từ BANK nhớ DRAM, trước hết DRAM Controller mạch khác cấp tín hiệu WE# = Sau gửi nửa thấp địa chỉ, ứng với địa hàng, tín hiệu RAS# = Sau thời gian, controller cấp nửa địa cao, ứng với địa cột, tín hiệu CAS# = Sau thời gian định, từ cần có xuất Output Data nhớ Để viết vào DRAM, tín hiệu tương tự, ngoại trừ sau tín hiệu CAS# = 0, controller cấp WE# = để quy định viết vào RAM Controller làm tươi DRAM cách gửi địa 512 địa hàng cấp RAS# = theo chu kỳ, khoảng 4mS Việc làm tươi tiến hành theo burst mode theo distributed mode Trong burst mode toàn 512 hàng định địa đánh nhịp cách 4mS Còn distributed mode hàng định địa đánh nhịp sau 4/512 mS Hình mạch làm tươi DRAM với controller làm tươi 8208 Photocopyable 68 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Hình Mạch làm tươi nhớ dùng 8028 Những nhiệm vụ việc điều khiển nhớ DRAM máy tính là: - Làm tươi ô nhớ sau khoảng thời gian vài mS - Cấp hai nửa địa tín hiệu RAS#, CAS# thích hợp - Bảo đảm thao tác đọc/viết làm tươi không xảy đồng thời - Cấp tín hiệu đọc/viết để điều khiển chiều số liệu Hình mô tả sơ đồ Controller 8208 làm tươi MByte cho hệ VXL 8086 Bộ nhớ chia thành BANK (mỗi BANK bit) Controller bảo đảm cấp địa hàng địa cột, tín hiệu RAS#, CAS#, tín hiệu READ/WRITE Các chân trạng thái S0 - S3 VXL đấu thẳng tới chân vào 8208 Controller giải mã tín hiệu tín hiệu đọc viết mà VXL yêu cầu Do đó, đa số thòi gian VXLđược dùng để đọc byte/từ RAM mà không cần có chu kỳ chờ Nếu 8208 chu kỳ làm tươi nhớ mà VXL muốn đọc RAM 8208 lưu giữ AACK cao buộc VXL cấp thêm chu kỳ đợi để 8208 kịp hoàn thành chu kỳ làm tươi Để tiết kiệm chân, chân số liệu (để nạp từ điều khiển), chân PDI nối mass cho phép 8208 tự khởi đầu hoạt động đa số ứng dụng Còn trường hợp khác chân PDI điều khiển ghi dịch vào song song - nối tiếp, nhờ từ điều khiển nạp vào 8208 Sau Reset chân WE/PCLK cấp dãy xung đánh nhịp cho từ điều khiển từ ghi dịch nạp vào 8208 Từ điều khiển thực nối lối vào ghi dịch Ta dùng DMAC để làm tươi nhớ Hình ví dụ mạch BANK với dung lượng 256KB nhớ Ở máy tính dùng chế độ đọc DMA ảo Bộ định thời 8253 lập trình để phát xung nhịp 15µS Xung nối vào lối vào xin DMA (DMA Request) DREQ0 8237 DMAC lập trình để đọc từ nhớ viết vào cổng không tồn Khi DMAC nhận xung này, gửi tín hiệu HOLD_REQUEST tới VXL VXL trả lời tín hiệu HLDA đặt chân trạng thái trở kháng cao Khi đó: 8237 chiếm lấy bus, gửi địa nhớ, tín hiệu đọc nhớ tín hiệu chấp nhận DMA kênh (DACK0) Photocopyable 69 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Tám bit địa thấp gửi tới nhớ, DACK0 để cung cấp xung RAS# cho bank DRAM để làm tươi nhớ động Sau thao tác DMA ghi địa hành DMAC tự động tăng/giảm (tuỳ thuộc cách lập trình lúc đầu) để làm tươi hàng (row) nhớ sau Nếu 8237 lập trình để truyền 64 kByte, khỏi đầu địa 0, tăng đếm sau lần DMA, tự khởi động (autoinitialize), dẫy địa gửi làm tươi tất 256 hàng DRAM Mỗi hàng làm tươi 15ns Ví dụ với tần số clock 4.77MHz dùng IBM PC, chu kỳ DMA để làm tươi 820 ns 15 ns, tức 5% thời gian VXL Để kiểm tra Parity bank nhớ có bit, bit để giữ số liệu, bit thứ bit Parity Mỗi mạch 74 LS280 dùng để phát/ kiểm parity cho byte cất vào parity bit byte viết vào nhớ Khi bit đươc đọc ra, parity kiểm tra Nếu parity sai tín hiệu báo lỗi gửi tới cổng 8255 VXL đọc Khi bắt đầu bật máy, trình POST xảy ra, viết mẫu byte vào tất ô nhớ, kiểm tra cách đọc lại chúng với parity bit II.10 Chuyển mảng số liệu DMA Thường xuyên có nhu cầu chuyển mảng số liệu nhớ ngoại vi Lúc ta dùng DMAC Hình mô tả chế hoạt động DMAC với VXL để truyền số liệu nhớ ngoại vi (ổ đĩa thông minh) Khi ta bật máy lúc đầu khoá vị trí đóng từ VXL tới ngoại vi, nhớ Chúng ta lập trình để chạy DMAC, ví dụ để đọc file từ ổ đĩa để viết vào nhớ Photocopyable 70 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Muốn phải gửi loạt lệnh tới controller ổ đĩa yêu cầu đọc block liệu từ đĩa Khi controller có byte đầu tiên, gửi DMA Request(DREQ) cho DMAC, channel DMAC không bị che chắn , DMAC gửi HOLD REQUEST tới chân HOLD VXL, VXL treo bus cao gửi HLDA cho DMAC, DMAC nhận HLDA VXL, cho tín hiệu điều khiển để đặt ba khoá vị trí DMA, cắt VXL ra, sau DMAC cho địa cấp cho nhớ, DMAC gửi DMA-Acknowlege (DACK0) cho ổ đĩa để đưa số liệu, cuối cấp MEMW#=0 IOR#=0 bus điều khiển, nhờ liệu đọc vào từ ngoaị vi viết ô nhớ, truyền số liệu hoàn thành DMAC thu lại tín hiệu HRQ, VXL lấy lại bus lần DMA sau Hình mạch chi tiết sơ đồ hình Trong 8237 DMAC 8272 controller ổ đĩa mềm, 8282 dùng để latch bit địa gửi từ VXL (do ALE 8086 điều khiển ) 8237 (do AEN AD dress STrobe điều khiển) Khi đóng điện DMAC cấp AEN = 0, vi mạch U1, U2, U4 hữu hiệu Và ALE từ VXL dùng để đánh nhịp (STroBe) cho vi mạch Do chúng chốt địa A0-A19 VXL bus địa trường hợp thông thường (không DMA) Photocopyable 71 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Khi DMAC muốn chiếm lấy bus, cấp AEN= 1, dẫn đến: - Khoá không cho U1 làm việc, cắt địa A0 -A7 từ VXL, DMAC trực tiếp cấp địa thấp cho nhớ truyến số liệu, - AEN =1 làm đổi vị trí Multiplex khiến cho việc đánh nhịp cho U2 thực ADSTB DMAC Để tiết kiệm chân, DMAC bit địa cao qua chân số liệu D0-D7, với ADSTB=1 báo địa cao A15- A8 DMAC cấp cho qua nhớ latch U2 -Cũng AEN =1, bit A16- A19 U3 cấp từ bit D10 -D13 ta lập trình cứng -Cuối cùng, tín hiệu điều khiển đổi nối từ output cảu VXL sang output DMAC ( gồn IOR#, IƠ#, MEMƯ#, MEMR#) Các buffer số liệu hai chiều 8286 cho phép truyền bit số liệu tới/từ controller đĩa từ/tới byte cao byte thấp nhớ Bit địa A0 dùng để chọn đường cho hai byte nhớ chẵn/lẻ DMAC có kênh (channel), nhiều ghi để: -Ghi địa nhớ sở(16 bit) -Ghi số đếm từ (word) nhớ sở -Địa nhớ hành -Ghi địa tạm thời -Ghi số đếm tạm thời -Ghi trạng thái -Ghi địa lệch -Ghi tạm thời -Các ghi mode -Ghi chắn DMA -Ghi yêu cầu xin DMA DMAC có chân địa bit vào IOR#, IOW# để điều khiển hoạt động đọc/viết ghi Nó có flip flop để trỏ địa byte cao/byte thấp có chân số liệu Các flip flop tự động lật trạng thái phép cấp 16 bit địa nhờ cổng bit Tất nhiên để điều khiển hoạt động DMAC cần phải lập trình khởi đầu nó, lập trình hoạt động sau DMAC lập trình để truyền 1byte cho request, khối byte cho request, hay truyền nhận tín hiệu dừng từ chân vào/ra EOP# Đại thể phải làm việc sau: - Viết từ điều khiển vào địa 1101 để xoá flip flop - Viết từ điều khiển vào địa 1000 - Viết từ mode cho channel (dùng địa 1011) - Viết địa nhớ tới địa ghi sở cho channel ta cần - Viết số byte ta muốn truyền tới địa ghi đếm số lượng từ sở cho kênh - Viết từ/ từ điều khiển để xoá mặt nạ cho channel/ channel cần dùng Photocopyable 72 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Table a A3 A2 A1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 SIGNALS A0 0 1 0 1 0 1 0 1 IOR IOW 1 1 1 1 1 1 1 1 OPERATION READ STATUS REGISTER WRITE COMMAND REGISTER ILLEGAL WRITE REQUEST REGISTER ILLEGAL WRITE SINGLE MASK REGISTER SET ILLEGAL WRITE MODE REGISTER ILLEGAL CLEAR BYTE POINTER FLIP/ FLOP READ TEMPORARY REGISTER MASTER CLEAR ILLEGAL CLEAR MASK REGISTER ILLEGAL WRITE ALL MASK REGISTER BITS Table b NAME BASE ADDRESS REGISTER BASE WORD COUNT REGISTER CURRENT ADDRESS REGISTER CURRENT WORD COUNT REGISTER TEMPORARY ADDRESS REGISTER TEMPORARY WORD COUNT REGISTER STATUS REGISTER COMMAND REGISTER TEMPORARY REGISTER MODE REGISTER MASK REGISTER REQUEST REGISTER Photocopyable SIZE 16 BITS 16 BITS 16 BITS 16 BITS 16 BITS 16 BITS BITS BITS BITS BITS BITS BITS NUMBER 4 4 1 1 1 73 GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH CHANEL REGISTER OPERATION BASE AND CURRENT ADDRESS WRITE CURRENT ADDRESS READ BASE AND CURRENT WORD COUNT WRITE CURRENT WORD COUNT READ BASE AND CURRENT ADDRESS WRITE CURRENT ADDRESS READ BASE AND CURRENT WORD COUNT WRITE CURRENT WORD COUNT READ BASE AND CURRENT ADDRESS WRITE CURRENT ADDRESS READ BASE AND CURRENT WORD COUNT WRITE CURRENT WORD COUNT READ BASE AND CURRENT ADDRESS WRITE CURRENT ADDRESS READ BASE AND CURRENT WORD COUNT WRITE CURRENT WORD COUNT READ SIGNAL CS IOR Bảng : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 IOW 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 A3 A A1 A0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 INTERNAL FLIP - FLOP DATA BUS DB0 - DB7 1 1 1 1 1 1 1 1 A0 - A7 A8 - A15 A0 - A7 A8 - A15 W0 - W7 W8 - W15 W0 - W7 W8 - W15 A0 - A7 A8 - A15 A0 - A7 A8 - A15 W0 - W7 W8 - W15 W0 - W7 W8 - W15 A0 - A7 A8 - A15 A0 - A7 A8 - A15 W0 - W7 W8 - W15 W0 - W7 W8 - W15 A0 - A7 A8 - A15 A0 - A7 A8 - A15 W0 - W7 W8 - W15 W0 - W7 W8 - W15 Các ghi địa DMAC8237 Photocopyable 74 Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa Trong máy tính AT ta dùng hai DMAC, địa chúng mapping I/O sau: 000 -01F : DMAC 1(8237A) 0C0 -0DF : DMAC (8237) 087, 083, 081, 082, 08B, 089, 08A, 08F: DMA Page Register (cấp địa A16 -A23 cho kênh 0, 1, 2, 3, 5, 6, 7, làm tươi) Bốn kênh DMAC (đánh số từ tới ) dùng để truyền số liệu bit adapter I/O bit với nhớ 16 bit Mỗi kênh giúp truyền 16 MByte số liệu tổ chức thành khối 64 kByte ( Các chân BHE đảo A0) DMAC2 có kênh từ -7 Kênh dùng để nối tầng bốn kênh đến vào VXL Ba kênh 5, 6, dùng truyền số liệu 16 bit adapter I/O16 bit với nhớ 16 bit Các kênh DMA truyền 16 MByte khối 128 kByte Các kênh 5, 6, truyền số liệu byte bắt đầu địa lẻ (các chân A0, BHE = 0) Trong slot ISA máy vi tính AT có chân sau dùng cho hai DMAC: DRQ0, DRQ1, , DRQ2, DRQ3, DRQ4, DRQ5, DRQ6, DRQ7 DACK0 ACK1, DACK2, DACK3, DACK4, DACK5, DACK6, DACK7 Photocopyable 75 Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa CHƯƠNG VII GIAO DIỆN TRONG MÁY VI TÍNH Một hệ thống máy tính điển hình từ cỡ nhỏ đến cỡ trung bình, bao gồm vi xử lý trung tâm, nhớ hệ thống phối ghép vào/ Các thành phần liên hệ với thông qua hệ thống bus Chương nghiên cứu phần cuối hệ thống máy tính, phối ghép vào/ Cụ thể chip phối ghép vào/ ra, máy tính liên hệ với giới bên thông qua chip I Các chip vào/ (I/O chip) Trong giới máy tính, có nhiều loại chip vào/ra chủng loại chip liên tục xuất Trong số chip thông dụng nói đến chip điều khiển truyền thông UART, USART, chip điều khiển hiển thị hình CRTC, chip điều khiển đơn vị ổ đĩa HDC/FDC chip điều khiển vào/ qua cổng song song PIO I.1 Chip nhận - phát không đồng UART Chip UART (Universal Asynchronous Receiver Transmitter), đọc byte liệu từ bus liệu chuyển bit liệu lên đường dây nối tiếp tới thiết bị đầu cuối (terminal) nhận liệu từ terminal Các chip UART thường hoạt động tốc độ từ 50bps tới 19,2 Kbps I.2 Chip nhận - phát đồng bộ/không đồng USART Chip USART(Universal Synchronouns Asynchronous Receiver Transmitter) quản lý việc truyền liệu đồng việc sử dụng nhiều giao thức khác nhau, sử dụng tất chức UART I.3 Các chip vào/ra song song PIO(Parallel I/O) Một chip PIO điển hình chip 8255A, hình 7.1 Nó có 24 cổng vào/ra, ghép nối với thiết bị tương thích TTL, bàn phím, chuyển mạch, máy in Cho phép CPU đọc ghi bit liệu cổng vào/ra, làm cho chip hoạt động linh hoạt Photocopyable 76 Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa CPU định cấu hình cho 8255A cách nạp giá trị cho ghi trạng thái bên vi mạch Vi mạch gồm: a Phần ghép nối với vi xử lý có: - Bộ đệm số liệu để trao đổi liệu hai chiều (vào, ra) vi xử lý vi mạch - Bộ logic điều khiển đọc/ghi, tức giải mã địa lệnh cho ghi đệm ghi điều khiển b Phần ghép nối với thiết bị có: - Trạm A trạm B, trạm gắn với ghi chốt bit, có chức vào tuỳ theo chương trình khởi phát - Trạm C bit, chia thành hai phần, nửa thấp bit nửa cao bit Tuỳ theo chế độ sử dụng xác lập lời điều khiển, trạm C dùng để trao đổi liệu vào (chế độ 0); điều khiển đối thoại với thiết bị vi xử lý trạm A trạm B chế độ cách xác lập xoá bit PCj ; điều khiển đối thoại với thiết bị vi xử lý trạm A B chế đọ Ở chế độ 2, đọc bit trạm C, ta biết trangh thái trạm A B c Phần mạch điều khiển nội bộ: Có khối điều khiển (nhóm A hay nhóm B) trạm A, B C I.1.1 Các lệnh ghi đọc cửa (trạm) ghi điều khiển Với tổ hợp tín hiệu địa (A 0, A1), chọn chip ( CS ), lệnh đọc ( RD ), ghi ( WR ) vi xử lý Photocopyable 77 Gi¸o tr×nh KiÕn tróc m¸y tÝnh Ng« Nh Khoa CHƯƠNG VII VÀO RA DỮ LIỆU VỚI THIẾT BỊ NGOẠI VI I Vai trò nhiệm vụ phối ghép I.1 Vai trò phối ghép Bộ phối ghép nằm trung gian máy vi tính thiết bị ngoài, đóng vai trò trung chuyển liệu (nhận truyền) chúng Khi truyền liệu từ máy vi tính thiết bị ngoài, phối ghép đóng vai trò nhận liệu từ máy tính nguồn cấp liệu cho thiết bị Khi truyền liệu từ thiết bị vào máy vi tính, phối ghép đóng vai trò nhận liệu từ thiết bị nguồn cấp liệu vào cho máy tính I.2 Nhiệm vụ phối ghép Bộ phối ghép làm nhiệm vụ phối hợp trao đổi liệu máy tính thiết bị mức công suất tín hiệu, dạng tín hiệu, tốc độ phương thức trao đổi I.2.1 Phối hợp mức công suất tín hiệu Mức tín hiệu máy vi tính thường mức (0V, 5V) thiết bị ngoài, mức cao (± 15V, ± 48V) thấp (

Ngày đăng: 20/10/2017, 15:48

Từ khóa liên quan

Mục lục

  • 80387DX

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

  • Đang cập nhật ...

Tài liệu liên quan