KIẾN TRÚC MÁY TÍNH Giảng viên: ThS. Phan Thanh Toàn 1
BÀI 1 KIẾN TRÚC CƠ BẢN CỦA MÁY VI TÍNH Giảng viên: ThS. Phan Thanh Toàn 2
MỤC TIÊU BÀI HỌC Liệt kêđược các thành phần cơ bản của máy vi tính. Liệt kê được các hệ đếm thông dụng. Mô tảđược các phương pháp phát hiện vàsửa lỗi. 3
CÁC KIẾN THỨC CẦN CÓ Để hiểu rõ bài này, yêu cầu học viêncần cócáckiến thức cơ bản liên quan đến cácmônhọc sau: Kỹ thuật điện tử số; Tin học cơ bản. 4
HƯỚNG DẪN HỌC Đọc tài liệu và tóm tắt những nội dung chính của từng bài. Luôn liên hệ và lấy vídụ thực tế khi học đến từng vấn đê và khái niệm. Sử dụng các ngôn ngữ lập trìnhcơ bản như Pascal, C,... Làm bài tập vàluyện thitrắc nghiệm theo yêu cầu từng bài. 5
CẤU TRÚC NỘI DUNG 1.1. 1 Máy tính và các thành phần cơ bản 1.2. Các phép tính số trong máy tính 1.3. Các mạchạ điện tử số trong máy tính 6
1.1. MÁY TÍNH VÀ CÁC THÀNH PHẦN CƠ BẢN 1.1.1. Một số khái niệm cơ bản và phân loại máy tính 1.1.2. Sơ đồ khối và nguyên tắc thông tin tín hiệu trong máy tính 1.1.3. Các thiết bị ngoại vi cơ bản 7
1.1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN VÀPHÂNLOẠI MÁY TÍNH Máy tính: Là mộtộ thiết bịị có khả năng thựcự hiệnệ cácphép p tính và các hoạtạ động g logic. Hầu hết các máy tính đều là máy tính điện tử (MTĐT). Nguyên tắc cơ bản của MTĐT: Hoạt động theo chương trình được lưu trữ trong bộ nhớ của máy tính. Phân loại máy tính điện tử: Máy tính lớn (mainframe); Máy tính cỡ trung bình (minicomputer); Máy vi tính (microcomputer), máy tính cá nhân (Personal computer - PC). 8
1.1.2. SƠ ĐỒKHỐI VÀ NGUYÊN TẮC THÔNG TIN TÍN HIỆU TRONG MÁY TÍNH Sơ đồ khối của máy tính: 1. Màn hình 2. Modem 3. Hệ thống xử lí 4. Chuột 5. Loa 6. Máy in 7. Bàn phím Hình 1: Các thành phần cơ bản của máy tính Một hệ thống máy tính thường có 3 thành phần cơ bản: Bộ vi xử lí + Bộ nhớ +Thiết bị ngoại vi. 9
1.1.2. SƠ ĐỒKHỐI VÀ NGUYÊN TẮC THÔNG TIN TÍN HIỆU TRONG MÁY TÍNH (tiếp theo) Sơ đồ khối tổng thể của hệ thống máy tính Bộ nhớ chính RAM ROM CPU Đồng hồ hệ thống Ghép nối vào/ra Ghép nối vào/ra Nguồn nuôi Thiết bị vào: Bàn phím, chuột, ổ đĩa, Thiết bị ra: Màn hình, máy in, ổ đĩa Hình 2: Sơ đồkhối chức năng của hệ thống máy tính 10
1.1.2. SƠ ĐỒKHỐI VÀ NGUYÊN TẮC THÔNG TIN TÍN HIỆU TRONG MÁY TÍNH (tiếp theo) Bộ xử lí trung tâm CPU (Central Processing Unit) Thu thập dữ liệu, lệnh trong bộ nhớ; Giải mã các lệnh; Thực thicáclệnh; Tạo các xung tín hiệu điều khiển toàn hệ thống; CPU: Bộ vi xử lí (Microprocessor MP). Bộ nhớ (memory) Bộ nhớ trong (bộ nhớ chính); Bộ nhớ ngoài (bộ nhớ phụ, bộ nhớ thứ cấp); Lưu trữ dữ liệu vàchương trình; Bộ nhớ chính: ROM, RAM; Các chương trình muốn thực thiđược phải được lưu trữ trong bộộ nhớ RAM của hệệ thống máy tính. 11
1.1.2. SƠ ĐỒKHỐI VÀ NGUYÊN TẮC THÔNG TIN TÍN HIỆU TRONG MÁY TÍNH (tiếp theo) Thiết bị ngoại vi (input/output devices) Gồm các thiết bị nhập, xuất dữ liệu. Là công cụ tạo môitrường tương tác giữa hệ thốngmáytínhvàngười dùng. Các thiết bị ngoại viđược kết nối vào hệ thống qua các vỉ mạch ghép nối ngoại vi. 12
1.1.2. SƠ ĐỒKHỐI VÀ NGUYÊN TẮC THÔNG TIN TÍN HIỆU TRONG MÁY TÍNH (tiếp theo) Nguyên tắc thông tin tín hiệu giữa CPU và các thành phần trong máy tính CPU trao đổi tín hiệu với các thành phần qua hệ thống BUS. BUS: Là một hệ thống các đường truyền tín hiệu, mỗi đường truyền 1bittínhiệu. Hệ thống máy tính thường có 3 loại BUS: Bus địa chỉ, bus dữ liệu và bus điều khiển. Hình 3: CPU sử dụng bus để trao đổi thông tin với thiết bị 2 13
1.1.2. SƠ ĐỒKHỐI VÀ NGUYÊN TẮC THÔNG TIN TÍN HIỆU TRONG MÁY TÍNH (tiếp theo) Các linh kiện trên bảng mạch chính (mainboard) CPU; RAM; Cache; ROM BIOS (Read Only Memory Basic Input / Output System); RAM CMOS; Bus hệ thống; Các chip bổ trợ. 14
1.1.3. THIẾT BỊ NGOẠI VI CƠ BẢN Các thiết bị tạo môitrường tương tác giữa người sử dụng và hệ thống máy tính. Các thiết bị vào. Các thiết bị ra: Màn hình, bàn phím, con chuột, máy in, máy quét, 15
1.2. CÁC PHÉP TÍNH SỐ TRONG MÁY TÍNH 1.2.1. Các hệ đếm 1.2.2. Mã hóa ký tự 1.2.3. Các mã phát hiện và sửa lỗi 1.2.4. Biểu diễn số nguyên 125 1.2.5. Số có ódấu chấm động 1.2.6. Các phép p tính số học với số nhị phân 16
1.2.1. CÁC HỆ ĐẾM Hệệ đếm10(thập phân) Hệđếm thông dụng của con người; Sử dụng 10 kí hiệu là10consố 0,1,2,,9; Các sốố được biểu diễn theo cách kí hiệu theo vịị tí trí; Số X=a n a n-1 a 1 a 0 a -1 a -2 a -m có giá trị là: n i m x a 10 i i Ví dụ: Số 125.55 = 1*10 2 +2*10 1 + 5*10 0 + 5*10-1 = 100 + 20 + 5 + 0.5 =125.55 17
1.2.1. CÁC HỆ ĐẾM (tiếp theo) Hệệ đếm 2(nhị ị phân) Hệđếm thông dụng của MTĐT; Sử dụng 2 kí hiệu là2consố 0,1; Các sốố được biểu diễn theo cách kí hiệu theo vịị tí trí; Số X=a n a n-1 a 1 a 0 a -1 a -2 a -m có giá trị là: Ví dụ: n a i i m x 2 Số: 0110=0*2 3 +1*2 2 +1*2 1 +0*2 0 =4+2=6 10 i Bit bên trái nhất gọi là bit MSB (Most Significant Bit): Bit có trọng số cao nhất; Bit bên phải nhấ gọi là bit LSB (Least Significant Bit): Bit có trọng số thấp nhất. Hệ hexa (16) Hệ octal (hệ 8) 18
1.2.2. MÃ HÓA KÍ TỰ Tập kí tự: ự Baogồm tập các chữ cái, tập các con số, và mộtộ số các kí hiệuệ đặc biệt. ệ Có 3 bảng mã thông dụng: Baudot, ASCII, EBCDIC. Bảng mã ASCI (Americal Standards Code for Information Interchange): Mã hóa các kí tự; Mỗi kítự mã hóa bởi 8 bit (1 byte); Có 256 kí tự; Mỗi kítự có một mãtừ 0 255 (hệ 10) hoặc từ 00000000 11111111 (hệ 2). 19
1.2.3. CÁC MÃ PHÁT HIỆN VÀ SỬA LỖI Khi truyền tínhiệuệ giữa các thành phần trong hệệ thống có thể tín hiệuệ bịị ảnh hưởng bởi nhiễu, thiết bị, Cần cócácphương pháp phát hiện vàsửa cáclỗi. Phương pháp thông dụng là sử dụng các mã phát hiện và sửa lỗi. Phát hiện lỗi với bitchẵn lẻ (parity) Truyền một dãy bit sẽ thêm một bit gọi là bit chẵn lẻ; Bit parity chẵn (lẻ) là bit thêm vào để làm cho số lượng bit 1 trở thành số chẵn (lẻ). Vídụ: ụ Sử dụngụ parity chẵn Dãy bit cần truyền là: 0110 1000 thì bit cần thêm là 1; Dãy bit cần truyền là: 0110 1001 thì bit cần thêm là 0. Phát hiện lỗi: Bên thu khi nhận được dãy bit sẽẽ dựa vào bit chẵn lẻ để phát hiện lỗi. 20
1.2.3. CÁC MÃ PHÁT HIỆN VÀ SỬA LỖI (tiếp theo) Phát hiệnệ lỗi với bitchẵn lẻ cho khối dữ liệu ệ (parity) Truyền một khối các bit. Sử dụng2loại bitkiểm trachẵn lẻ: bitchẵn lẻ theo chiều dọc (VRC) và bit chẵn lẻ theo chiều ngang (LRC). Ví dụ Bit từ 1 từ 2 từ 3 từ 4 từ 5 từ 6 từ 7 LRC D 0 0 1 1 0 0 0 1 1 D 1 1 0 0 1 0 1 1 0 D 2 1 1 0 1 1 0 1 1 D 3 (VRC) 0 0 1 0 1 1 1 0 Bảng 1: Sử dụng bit chẵn - lẻ chẵn cho khối dữ liệu 21
1.2.3. CÁC MÃ PHÁT HIỆN VÀ SỬA LỖI (tiếp theo) Phát hiệnệ lỗi bằng mã dư thừa CRC (Cyclic Redundancy Check) Sử dụng khi đọc dữ liệu từđĩatừ. Dãy bit sẽ đượcbổ sung mã kiểm soát lỗi CRC trước khi truyền. Nguyên lí mã CRC: Kbitchobản tincần truyền. Bên phát tạo ra chuỗi n bit cho khung kiểm tra FCS (Frame Check Sequence) sao cho frame gửi đi (n+k bit) chia hết cho1số P (n+1 bit) xác định trước. Bên thu chia frame nhận được cho cùng một số Pvànếu không có dư Không có lỗi. 22
1.2.3. CÁC MÃ PHÁT HIỆN VÀ SỬA LỖI (tiếp theo) Mã sửa lỗi Hamming Mã Hamming là sự cải tiến của mã kiểm tra chẵn lẻ; Nếu sử dụng r bit chẵn lẻ thì sẽ kiểm trađược 2 r 1bitdữ liệu; Vị trí các bit cần chèn là các lũy thừa của cơ số 2như: 1,2,4,8,,2 r-1. Tổng số bit truyền đi làr+n. Ví dụ: Cần truyền đi chuỗi bit M = 1101100111 (10 bit) Cần 4 bit chẵn lẻ thêm vào chuỗi bit, gọi c 8, c 4, c 2, c 1 là các bit chẵn lẻ sẽ thêm vào các vị trí8,4,2,1. Dãy bit là: 110110C 8 011C 4 1C 2 C 1. Cộng module 2 tất cảả các vịị tíkhá trí khác không trong dãy vừaừ sinh ra, đó là các vịị tí trí: 14, 13, 11, 10, 6, 5, 3. 23
1.2.3. CÁC MÃ PHÁT HIỆN VÀ SỬA LỖI (tiếp theo) Mã sửa lỗi Hamming 14 = 1110 14 1110 13 = 1101 13 1101 11 = 1011 11 1011 10 = 1010 10 1010 6 = 0110 6 0110 5 = 0101 5 0101 3 = 0011 3 0011 Kết quả là: 0010. Vậy C 8 = 0, C 4 = 0, C 2 =1, C 1 = 0 Dãy bit cần truyền là: 11011000110110 24
1.2.4. BIỂU DIỄN SỐ NGUYÊN KHÔNG DẤU VÀ CÓ DẤU Một số nhị phân n bit sẽ biểu diễn được 2 n số nguyên không dấu cógiátrị 0 2 n -1. Ví dụ: Sử dụng1byte=8bitcóthể biểu diễn được cácsố nguyên từ 0 255. Để biểu diễn số nguyên có dấu tasử dụng bit tận cùng bên trái làm bit dấu: bit = 0 biểu diễn số dương; bit = 1 biểu diễn số âm. Với nbitcóthể biểu diễn cácsố có dấu từ -(2 n-1 ) đến +(2 n-1-1). Số bù 1 Số bù1của một số nhị phân là một số nhị phân mà khi cộng với số nhị phân đã cho thì tất cả các bit đều bằng 1. Tìm số bù 1: số bù 1 của một số được sinh ra bằng cách đảo các bit 0 thành 1 và bit 1 thành 0. Ví dụ: số 1011 có số bù 1 là: 0100 Số bù 2 Số bù2của một số bằng số bù 1 của sốđóvàcộng thêm với 1. Ví dụ: số 1011 có số bù 2 là: 0101 A B=A + (-B): Phép trừ được thựcự hiệnệ thông qua phép p cộng. ộ Để thựcự hiệnệ A- BtalấyAcộng với số bù 2 của B(Vìsố bù2của Blà B). 25
1.2.5. BIỂU DIỄN SỐ CÓ DẤU CHẤM ĐỘNG Mỗi số dấu chấm động g được biểu diễn dạng: ạ m*r e Trong đó: m là phần định trị, rlàcơ số vàelàsố mũ; Thường cơ số rbiết trước; Chỉ cầnầ 2 thông tin để lưu sốố dấu chấm động: m và e; Phần định trị là một số có dấu (số nguyên, phân số); Phần mũ là số nguyên có dấu; Ví dụ: số +6132.789 dạng số khoa học là: 0.6132789E+04 Dấu Dấu 0.6132789 0 04 Phần định trị Phần mũ Số này được lưu trữ trong máy tính dưới dạng số BCD như sau: 0 0110 0001 0011 0010 0111 1000 1001 0 0100 26
1.2.5. BIỂU DIỄN SỐ CÓ DẤU CHẤM ĐỘNG Chuẩn IEEE 754 Có 2 dạng: Chính xác đơn 32 bit và chính xác kép 64 bit; Mỗi số thực Xđược biểu diễn như sau: S E 127 X ( 1) 1.m 2 1 8 23 S E M Các bit của ebằng 0, các bit của mbằng 0 thì X = 0; Các bit của e bằng 1, các bit của m bằng 0 thì X = ; Các bit của ebằng 1, còn m có ít nhất 1bitbằng 1, thì nó không biểu diễn chosố nào cả (NaN not a number). 27
1.2.6. CÁC PHÉP TOÁN TRONG HỆ ĐẾM NHỊ PHÂN Phép cộngộ Cộng 2 bit nhị phân A B A+B 0 0 0 0 1 1 1 0 1 1 1 10 Cộng 2 số nhị phân không dấu Thực hiện cộng từng bit từ phải qua trái. Ví dụ: 11 (3) 11.011 (3.375) 110 (6) 10.110 (2.750) 1001 (9) 110.001 (6.125) 28
1.2.6. CÁC PHÉP TOÁN TRONG HỆ ĐẾM NHỊ PHÂN (tiếp theo) Phép trừ Trừ 2bitnhị phân A B A-B 0 0 0 0 1 1 Nhớ 1 cho bit cao hơn 1 0 1 1 1 0 Trừ 2số nhị phân không dấu Ví dụ: Thực hiện trừ từng bit từ phải qua trái 1011 (11) 0101 (5) 0110 (6) 29
1.2.6. CÁC PHÉP TOÁN TRONG HỆ ĐẾM NHỊ PHÂN (tiếp theo) Phép chia Chia 2 số nhị phân Thực hiện: Chia 2 số nhị phân được thực hiện bìnhthường như chia 2 số thập phân. Ví dụ: 10011111: 1100 30
1.2.6. CÁC PHÉP TOÁN TRONG HỆ ĐẾM NHỊ PHÂN (tiếp theo) Biểu diễn số có dấu: Để biểu diễn số nhịị phân có dấu, ta sử dụngụ mộtộ bitở tậnậ cùng bên trái làm bit dấu, thường qui ước bitdấu =0làsố dương, bit dấu =1làsố âm. Các bit còn lại làbitgiátrị. Ví dụ: 0110100 = +52 1110100 = -52 Bit dấu Bit dấu Cách biểu diễn này dẫn đến có2giátrị 0(Vì+0=-0).Đồng thời cáchbiểu diễn này thường dẫn đến sai sót khi thực hiện phép toán. Ví dụ: 01000 (+8) 01000 (+8) + 01010 (+10) + 10010 (-2) 11010 (-10) 10010 (-2) 31
1.2.6. CÁC PHÉP TOÁN TRONG HỆ ĐẾM NHỊ PHÂN (tiếp theo) Số bù1vàsố bù 2 Số bù 1 củaủ một sốố nhị phân là một sốố nhị phân mà khi cộngộ với sốố nhị phân đã cho thì tất cả các bit đều bằng 1. Tìm số bù1của một số ta đảo tất cả các bit 0 thành 1 và 1 thành 0. Ví dụ: Số nhị phân: 1101 sẽ có số bù 1 là: 0010 Số bù 2: Số bù2của một số nhị phân bằng số bù1của sốđócộng với 1. Ví dụ: Số nhị phân 1101 sẽ có số bù 2 là: 0011 Cộng trừ 2số có dấu dùng số bù 2 A+B:Cộng 2 số nhị phân có dấu tiến hành cộng bình thường như cộng2số nhị phân không dấu, kể cảả bit dấu. Lưu ý bit có trong sốố 2 n bị loại khỏi kết quả. ả Ví dụ 1: 001100 + 001001 Ví dụ 2: 110100 + 1101011 12 001100 9 001001 21 010101-12 110100-9 110111-21 1101011 Bỏ qua bit số ố 6(2 ) 101011 32
1.2.6. CÁC PHÉP TOÁN TRONG HỆ ĐẾM NHỊ PHÂN (tiếp theo) Trừ 2số có dấu dùng số bù 2 A B =A + (-B): Phép trừ được thực hiện thông qua phép cộng. Để thực hiện A-B ta lấyacộng với số bù2của B(Vìsố bù 2 của Blà B). Ví dụ 1: 10 5 = 10 + (-5) 10 = 1010 5 = 0101 10 1010-5 1011 Số bù1của5 là: 1010 5 10101 Số bù2của5 là: 1011 Loại bỏ bit 1 0101 Vậy ta có 10 5 = 1010 + 1011 5 10 33
1.3. CÁC MẠCH ĐIỆN TỬ SỐ TRONG MÁY TÍNH 131 1.3.1. Đại số logic 1.3.2. Các mạch điện tử logic 1.3.3. Mạch tính toán số học và logic 34
1.3.1. ĐẠI SỐ LOGIC Hàm logic là hàm có mộtộ hoặcặ nhiều biến, mỗi biến chỉ nhậnậ mộtộ trong hai giá trịị là 0hoặc 1. A Z Hàm AND (và): Z = A.B 0 1 Hàm OR (hoặc) Z = A + B 1 0 Hàm NOT (phủ định) Z A Hàm NOT A B Z A B Z 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 Hàm AND Hàm OR Hàm NAND: Z A. B Hàm NOR: Z A B Hàm XOR: Z A B 35
1.3.1. ĐẠI SỐ LOGIC (tiếp theo) Mộtộ số hệệ thức cơ bản của đại số logic A+0=A A+1=1 A+A=A A.1=A A.0=0 A.A=A A+ A =1 A. A=0 A+B=B+A A.B=B.A A+A.B=A A.(A+B)=A AB+A B =A (A+B)(A + B )=A A+B+C=(A+B)+C=A+(B+C) A + B A.B.C=A.(B.C)=(A.B).C = A + B A. B = A + B 36
1.3.2. CÁC MẠCH ĐIỆN TỬ LOGIC Các cửalogic cơ bản: A A.B A+B A A B AND OR NOT A.B A A+B A A B A B B B NAND NOR XOR 37
1.3.3. MẠCH SỐ HỌC VÀ LOGIC (ALU) Mạchạ trong máy tính cho phép p thựcự hiệnệ cácphép p tính số học, ọ logic và nhiều thao tác khác trên số nhị phân như dịch, quay, Các mạch ALU thường có cấu tạo gồm các thành phần chính sau: Các đầu vào: A 0, A 1, A 2, A 3 và B 0, B 1, B 2, B 3 Đầu ra:f 0,F 1,F 2,F 3 Chân M quyết định mạch thực hiện các phép số học hay logic. A 2 A 3 A 0 A 0 A1 F0 0 F 1 B 0 F 2 B 1 B 2 F 3 B 3 C N M S3 S2 S1 S0 38
1.3.3. MẠCH SỐ HỌC VÀ LOGIC (ALU) (tiếp theo) Nguyên tắc hoạt động g của mạchalu Chọn: S3 S2 S1 S0 Số liệu có mức tích cực cao M=1 các phép toán M=0 Các phép toán số học logic C N =1 (không nhớ) C N =0 (Có nhớ) 0000 F=A F=A F=A-1 0001 F=A+B F=A+B F=(A+B)+1 0010 F=A.B F=A+B F=(A+B)+1 0011 F=0 F=-1 F=0 0100 F=A.B F=A+A.B F=A+A.B+1 0101 F=B F=(A+B)+A.B F=(A+B)+A.B+1 0110 F=A B F=A-B-1 F=A-B 0111 F=A.B F=A.B-1 F=A.B 39
1.3.3. MẠCH SỐ HỌC VÀ LOGIC (ALU) (tiếp theo) Chọn: S3 S2 S1 S0 Số liệu có mức tích cực cao M=1 các phép toán M=0 Các phép toán số học logic C N =1 1(không nhớ) C N =0 0(Có nhớ) 1000 F=A+B F=A+A.B F=A+A.B+1 1001 F=A B F=A+B F=A+B+1 1010 F=B F=(A+B)+A.B F=(A+B)+A.B+1 1011 F=A.B F=A.B-1 F=A.B 1100 F=1 F=A+A * F=A+B+1 1101 F=A+B F=(A+B)+A F=(A+B)+A+1 1110 F=A+B F=(A+B)+A F=(A+B)+A+1 1111 F=A F=A-1 F=A 40
TÓM LƯỢC CUỐI BÀI Trong bài này chúng ta đã xem xét các nội dung sau: Nguyên tắc hoạt động của máy tính; Mô tả được các thành phần chính của hệ thống máy tính; Các bảng mã cơ bản được sử dụng trong máy tính; Các phương pháp phát hiện và sửa lỗi thông dụng như: Phương pháp chẵn lẻ, CRC, Hamming. 41