Bài giảng môn Kiến trúc máy tính

doc 141 trang hapham 3081
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Kiến trúc máy tính", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docbai_giang_mon_kien_truc_may_tinh.doc

Nội dung text: Bài giảng môn Kiến trúc máy tính

  1. Bài giảng Kiến trúc máy tính TRƯỜNG ĐẠI HỌC KỸ THUẬT CƠNG NGHIỆP KHOA ĐIỆN TỬ BỘ MƠN KỸ THUẬT MÁY TÍNH BÀI GIẢNG HỌC PHẦN:KIẾN TRÚC MÁY TÍNH Theo chương trình đào tạo 150 TC Số tín chỉ: 03 Thái Nguyên, năm 2011 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 1 Trường ĐH KTCN Thái Nguyên
  2. Bài giảng Kiến trúc máy tính Tên tác giả biên soạn: Tăng Cẩm Nhung BÀI GIẢNG HỌC PHẦN:KIẾN TRÚC MÁY TÍNH Theo chương trình đào tạo 150 TC Số tín chỉ: 03 Thái Nguyên, ngày 26 tháng 6 năm 2011 Trưởng bộ mơn Trưởng khoa (ký và ghi rõ họ tên) (ký và ghi rõ họ tên) Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 2 Trường ĐH KTCN Thái Nguyên
  3. Bài giảng Kiến trúc máy tính MỤC LỤC CHƯƠNG 1MỞ ĐẦU 14 1.1 Những khái niệm và nguyên lý cơ bản 14 1.2 Lịch sử phát triển của máy tính 19 1.2.1 Thế hệ số khơng – máy tính cơ khí 19 1.2.2 Máy tính đèn điện tử - thế hệ thứ nhất 20 1.2.3 Máy tính transistor – thế hệ thứ hai 20 1.2.4 Máy tính IC – thế hệ thứ ba 21 1.2.5 Máy tính cá nhân và VLSI – thế hệ thứ tư 21 1.3 Phân loại máy tính 22 1.4 Các thành phần cơ bản trong hệ thống máy tính 28 1.4.1 CPU 28 1.4.2 Bộ nhớ trong 29 1.4.3 Bộ nhớ ngồi 30 1.4.4 Hệ thống vào ra (Input/Output System) 30 1.4.5 Hệ thống bus 31 1.5 Mơ hình phân cấp của máy tính 31 CHƯƠNG 2 BIỂU DIỄN THƠNG TIN TRONG 34 MÁY TÍNH 34 2.1 Thơng tin và mã hố thơng tin 35 2.1.1 Khái niệm về thơng tin 35 2.1.2 Mã hố dữ liệu 35 2.2 Biểu diễn số 36 2.2.1 Khái niệm hệ đếm 36 2.2.2 Chuyển đổi giữa các hệ đếm 37 2.2.3 Biểu diễn số nguyên 38 2.3 Các phép tốn số học trong hệ nhị phân 39 2.3.1 Phép cộng nhị phân 39 2.3.2 Phép trừ nhị phân 40 2.3.3 Phép nhân nhị phân 41 2.3.4 Phép chia nhị phân 42 2.4 Biểu diễn số dấu chấm động 42 2.4.1 Biểu diễn số thực dấu phẩy tĩnh 42 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 3 Trường ĐH KTCN Thái Nguyên
  4. Bài giảng Kiến trúc máy tính 2.4.2 Biểu diễn số thực dấu phảy động 43 2.5 Biểu diễn ký tự 45 CHƯƠNG 3 MỨC LOGIC SỐ 49 3.1 Giới thiệu về cổng và đại số logic 50 3.1.1 Cổng (Gate) 50 3.1.2Đại số logic 51 3.1.3 Thực hiện các hàm logic 52 3.1.4 Sự tương đương của các mạch 53 3.2 Các mạch logic số cơ bản 54 3.2.1 Mạch tích hợp 54 3.2.2 Mạch tổ hợp 55 3.2.3 Các mạch số học 57 3.3 Tổ chức bộ nhớ 60 3.3.1 Khái quát 60 3.3.2 Phần tử nhớ 1 bit 60 3.3.3 Tổ chức bộ nhớ 64 CHƯƠNG 4 MỨC VI CHƯƠNG TRÌNH 68 4.1 Chức năng và hoạt động của bộ xử lý 69 4.1.1Đơn vị điều khiển (Control Unit - CU) 69 4.1.2Đơn vị xử lý tốn học và logic ( Arithmetic and logical Unit - ALU) 70 4.1.3 Thanh ghi 70 4.1.4 Hệ thống BUS 71 4.2 Cách thức hoạt động của CPU 75 4.3 Vi kiến trúc 76 4.3.1Đường dữ liệu 76 4.3.2 Vi chỉ thị 78 4.3.3Định thời cho vi chỉ thị 80 4.3.4Định trình tự cho các vi chỉ thị 82 CHƯƠNG 5 MỨC MÁY THƠNG THƯỜNG 84 5.1 Khuơn dạng lệnh 85 5.1.1 Lệnh tham chiếu bộ nhớ 85 5.1.2 Lệnh tham chiếu thanh ghi 85 5.1.3 Lệnh tham chiếu vào ra 85 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 4 Trường ĐH KTCN Thái Nguyên
  5. Bài giảng Kiến trúc máy tính 5.2 Mơ hình phân cấp bộ nhớ 86 5.3 Bộ nhớ đệm (Cache) 90 5.3.1 Tổng quan và ý nghĩa của cache 90 5.3.2 Cấu trúc của bộ nhớ cache 93 5.3.3 Các phương pháp ánh xạ cache 94 5.4 Bộ nhớ trong 98 5.4.1 Bộ nhớ ROM 98 5.4.2 Bộ nhớ RAM 100 CHƯƠNG 6 CẤP HỆ ĐIỀU HÀNH 105 6.1 Giới thiệu mức máy hệ điều hành 105 6.2 Bộ nhớ ảo 106 6.2.1 Việc phân trang – Paging 107 6.2.2 Thực hiện việc phân trang 108 Hình 6-4 Ví dụ về địa chỉ ảo 110 6.2.3 Phương pháp cấp trang khi cĩ yêu cầu và Mơ hình tập làm việc 113 6.3 Chỉ thị vào/ra ảo 115 6.3.1 Các chỉ thị vào/ra ảo đối với các file tuần tự 116 6.3.2 Các chỉ thị vào/ra ảo đối với các file truy cập ngẫu nhiên 116 6.3.3 Việc cài đặt các chỉ thị vào/ra ảo 116 CÂU HỎI VÀ BÀI TẬP CHƯƠNG 6 Error! Bookmark not defined. CHƯƠNG 7 CẤP HỢP NGỮ 117 7.1 Vi hợp ngữ 117 7.2 Giới thiệu về hợp ngữ 118 7.2.1 Ngơn ngữ assembly là gì ? 119 7.2.2 Khuơn dạng chỉ thị ngơn ngữ assembly 120 7.2.3 So sánh ngơn ngữ assembly và các ngơn ngữ bậc cao 123 CHƯƠNG 8HỆ THỐNG VÀO RA 125 8.1 Tổng quan về hệ thống vào ra 125 8.2 Các phương pháp điều khiển vào ra 127 8.2.1 Vào ra bằng chương trình – polling 127 8.2.2 Vào ra bằng phương pháp ngắt 128 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 5 Trường ĐH KTCN Thái Nguyên
  6. Bài giảng Kiến trúc máy tính 8.2.3 Vào ra sử dụng DMA 129 8.3 Ghép nối thiết bị ngoại vi 131 8.4 Các cổng vào ra thơng dụng 132 8.4.1 Cổng song song LPT 132 8.4.2 Nối tiếp (Serial) 136 8.4.3 Cổng PC-Game 137 8.4.4 Cổng bàn phím 139 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 6 Trường ĐH KTCN Thái Nguyên
  7. Bài giảng Kiến trúc máy tính DANH MỤC CÁC HÌNH VẼ Hình 1-1 Mơ hình chung của một hệ thống máy tính 28 Hình 1-2. Bộ nhớ đệm Cache 30 Hình 1-3. Mơ hình phân cấp máy tính 32 Hình 2-1 Trạng thái biểu diễn hiệu điện thế 35 Hình 2-2 Qui trình biến đổi tín hiệu 36 Hình 3-1 Cấu tạo Transistor 50 Hình 3-2 Một số cổng logic cơ bản 51 Hình 3-3 Mơ tả hàm logic bằng bản chân lý 52 Hình 3-4 Xây dựng mạch điện bằng hàm logic 53 Hình 3-5 Mạch dồn kênh cho 4 đường dữ liệu vào 56 Hình 3-6 Mạch phân kênh 1 đầu vào 4 đầu ra 56 Hình 3-7 Mạch giải mã 3 đầu vào 57 Hình 3-8 Bộ dịch 8bit 58 Hình 3-9 Bộ cộng 58 Hình 3-10 Bộ 16-bit ripple-carry adder 59 Hình 3-11 - Cấu tạo một ALU 59 Hình 3-12 Cĩ một số dạng kết nối thanh ghi dịch 64 Hình 3-13 Sơ đồ mơ tả cấu trúc một vi mạch nhớ 65 Hình 4-1 Mơ hình kết nối CU 69 Hình 4-2 Mơ hình kết nối ALU 70 Hình 4-3 Dữ liệu được lưu đưa vào CPU 75 Hình 4-4 Cấu trúc đường dữ liệu 78 Hình 4-5 Diễn giải một vi chỉ thị điều khiển đường dữ liệu 80 Hình 4-6 Sơ đồ khối Vi kiến trúc 81 Hình 5-1 Mơ hình phân cấp bộ nhớ 89 Hình 6-1 Mức 2 và 3 được hỗ trợ bởi phần mềm 105 Hình 6-2 Chỉ thị được thơng dịch bởi vi chương trình 106 Hình 6-3 Cách thức chia khơng gian địa chỉ 109 Hình 6-4 Ví dụ về địa chỉ ảo 110 Hình 6-5 Ví dụ về một bảng phân trang 111 Hình 6-6 Cách tạo ra địa chỉ bộ nhớ chính từ địa chỉ ảo 112 Hình 6-7 Ánh xạ từ khơng gian địa chỉ ảo lên khung trang bộ nhớ chính cĩ 8 khung trang 113 Hình 7-1 Tính N = I + J + K 121 Hình 8-1 Sơ đồ cấu trúc tổng quan của thiết bị ngoại vi 126 Hình 8-2 Sơ đồ cấu trúc chung của module vào ra 127 Hình 8-3 Sơ đồ kết nối của DMAC 131 Hình 8-4 Ghép nối song song ra cổng LPT 133 Hình 8-5 Trao đổi dữ liệu qua cổng song song giữa 2 PC 135 Hình 8-6 Cấu trúc của board ghép nối cổng PC-game 137 Hình 8-7 Sơ đồ kết nối cổng bàn phím 139 Hình 8-8 Đầu cắm bàn phím AT 140 Hình 8-9 Đầu cắm bàn phím PS/2 140 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 7 Trường ĐH KTCN Thái Nguyên
  8. Bài giảng Kiến trúc máy tính DANH MỤC CÁC BẢNG BIỂU Bảng 1-1 Trạng thái trong nguyên lý số 18 Bảng 1-2 Đại lượng biến thiên trong nguyên lý tương tự 18 Bảng 2-1 Quy tắc Cộng Nhị phân. 40 Bảng 2-2. Quy tắc Trừ Nhị phân : 41 Bảng 2-3 Bảng mã ASCII chuẩn 47 Bảng 2-4 Bảng mã ASCII mở rộng 48 Bảng 2-5 Bảng mã Unicode 48 Bảng 5-1 Tập chỉ thị của Vi kiến trúc 86 Bảng 7-1 Nội dung thanh ghi vi chỉ thị 118 Bảng 8-1 Bảng định dạng cho các thanh ghi dữ liệu, trạng thái và điều khiển 134 Bảng 8-2 Tín hiệu chân của cổng LPT 135 Bảng 8-3 Tín hiệu chân của cổng nối tiếp 136 Bảng 8-4 Tín hiệu chân của cổng PC-game 138 Bảng 8-5 Byte trạng thái của board game 138 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 8 Trường ĐH KTCN Thái Nguyên
  9. Bài giảng Kiến trúc máy tính ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN: KIẾN TRÚC MÁY TÍNH (Học phần bắt buộc) 1. Tên học phần: TEE Kiến trúc máy tính . 2 . Số tín chỉ: 03; 3. Trình độ cho sinh viên năm thứ: 3 ( KTMT, SPKT Điện, SPKT Tin) hoặc 4 (Cơ điện tử). 4. Phân bổ thời gian - Lên lớp lý thuyết: 3 (tiết/tuần) x 12 (tuần) = 36 tiết. - Thảo luận: 6 (tiết/tuần) x 3 (tuần) = 18 tiết. - Hướng dẫn bài tập lớn (dài): Khơng. - Khác: Khơng. - Tổng số tiết thực dạy: = 54 tiết thực hiện. - Tổng số tiết chuẩn: = 45 tiết chuẩn. 5. Các học phần học trước 6. Học phần thay thế, học phần tương đương 7. Mục tiêu của học phần Sinh viên nắm được cơ sở kiến trúc của một hệ thống máy tính; Nguyên lý hoạt động của các thành phần như: Cơ chế tính tốn của CPU; Giao tiếp giữa các thành phần và vào/ra dữ liệu; Tổ chức và lưu trữ thơng tin của bộ nhớ, 8. Mơ tả vắn tắt nội dung học phần Giới thiệu chung; Cơ sở kiến trúc máy tính; Tính tốn luận lý; Tổ chức và kiến trúc bộ nhớ; Giao tiếp và truyền/nhận dữ liệu; Các hệ thống giao tiếp cấp thấp; Thiết kế hệ thống xử lý; Tổ chức của bộ xử lý trung tâm (CPU); Hiệu năng hệ thống; Đa xử lý. 9. Nhiệm vụ của sinh viên 9.1. Phần lý thuyết 1. Dự lớp 80 % tổng số thời lượng của học phần. 2. Chuẩn bị thảo luận. 3. Bài tập, Bài tập lớn (dài): Khơng 4. Khác: Tham quan, thực hành, : Khơng 9.2. Phần thí nghiệm Sinh viên phải hồn thành các bài thí nghiệm sau: 10. Tài liệu học tập - Sách, giáo trình chính: - Bài giảng “Kiến trúc và tổ chức máy tính”, BM Kỹ thuật máy tính [1]. Nguyễn Đình Việt, Kiến trúc máy tính, NXB Giáo dục, 2000. [2]. Tống Văn On, Cấu trúc máy tính cơ bản, NXB Thống kê, 2001. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 9 Trường ĐH KTCN Thái Nguyên
  10. Bài giảng Kiến trúc máy tính [3]. Tống Văn On, Cấu trúc máy tính nâng cao, NXB Thống kê, 2001. [4]. Trần Quang Vinh, Nguyên lý phần cứng và kỹ thuật ghép nối máy tính, NXB Giáo dục, 2002. [5]. Tống Văn On, Hồng Đức Hải, Giáo trình cấu trúc máy tính, NXB Giáo dục, 2000. [6]. Nguyễn Nam Trung, Cấu trúc máy vi tính và thiết bị ngoại vi, NXB KHKT, 2000. 11. Tiêu chuẩn đánh giá sinh viên và thang điểm 11.1. Các học phần lý thuyết Tiêu chuẩn đánh giá 1. Chuyên cần; 2. Thảo luận, bài tập; 3. Bài tập lớn (dài); 4. Kiểm tra giữa học phần; 5. Thi kết thúc học phần; 6. Khác. Thang điểm - Điểm đánh giá bộ phận chấm theo thang điểm 10 với trọng số như sau: + Chuyên cần: 5 %. + Thảo luận, bài tập: 10 %. + Bài tập lớn (dài): 15 %. + Kiểm tra giữa học phần: 20 %. - Điểm thi kết thúc học phần: 50 %. - Điểm học phần: Là điểm trung bình chung cĩ trọng số của các điểm đánh giá bộ phận và điểm thi kết thúc học phần làm trịn đến một chữ số thập phân. 11.2. Các học phần thí nghiệm Điểm học phần thí nghiệm bằng trung bình chung cĩ trọng số điểm các bài thí nghiệm. 12. Nội dung chi tiết học phần Người biên soạn: ThS. Tăng Cẩm Nhung 13. Lịch trình giảng dạy - Số tuần dạy lý thuyết: 12 tuần - Số tuần thảo luận, bài tập: 3 tuần - Số tuần thực dạy: 15 tuần Tuần Tài liệu học tập, Hình thức Nội dung thứ tham khảo học Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 10 Trường ĐH KTCN Thái Nguyên
  11. Bài giảng Kiến trúc máy tính Chương 1: Mở đầu 1.1 Những khái niệm và nguyên lý cơ bản 1.2 Lịch sử phát triển của máy tính. 1.3 Phân loại máy tính 1.4 Các thành phần cơ bản trong hệ thống máy tính 1.5 Mơ hình phân cấp của máy tính 1 [1] - [2]-[3] Giảng 5.1.1. Mức logic số 5.1.2. Mức vi chương trình 5.1.3. Mức máy tính thơng thường 5.1.4. Mức máy hệ điều hành 5.1.5. Mức ngơn ngữ assembly 5.1.6. Mức ngơn ngữ bậc cao Chương 2. Biểu diễn thơng tin trong máy tính 2.1.Thơng tin và mã hố thơng tin 2 2.2 Biểu diễn số [1] - [2]-[3] Giảng 2.2.1. Khái niệm hệ đếm 2.2.2. Chuyển đổi giữa các hệ đếm 2.2.3. Biểu diễn số nguyên 2.2.4. Biểu diễn số thực 3 2.1. Các phép tốn số học trong hệ nhị phân [1] - [2]-[3] Giảng Chương 3. Mức logic số 3.1. Giới thiệu về các chip logic 3.2.Các mạch tổ hợp 3.2.1. Bộ dồn kênh và bộ phân kênh 3.2.2 Bộ mã hố và giải mã 4 3.2.3. Bộ cộng và bộ trừ [1] - [2]-[3] Giảng 3.3.Bộ tạo xung Clock 3.4.Một số mạch logic cơ bản 3.4.1. Mạch chốt D 3.4.2Mạch lật Flip-Flop 3.4.3. Ứng dụng 3.5. Bộ nhớ 3.5.1. Tổ chức bộ nhớ 5 [1] - [2]-[3]-[4] 3.5.2. Thiết kế modul nhớ Chương 4 Mức vi chương trình 4.1. Cách thức hoạt động của CPU 6 4.2. Chức năng và hoạt động của bộ xử lý [1] - [2]-[3]-[4] 4.2.1. Đơn vị điều khiển 4.2.2. Đơn vị xử lý tốn học và logic Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 11 Trường ĐH KTCN Thái Nguyên
  12. Bài giảng Kiến trúc máy tính 4.2.3. Thanh ghi 4.2.4. Hệ thống BUS 4.3. Vi kiến trúc 4.3.1. Đường dữ liệu 4.3.2. Vi chỉ thị 7 4.3.3. Định thời cho vi chỉ thị [1] - [2]-[3]-[4] 4.3.4. Định trình tự cho các vi chỉ thị 4.4. Ví dụ về kiến trúc trong mức máy thơng thường [1] - [2]-[3]-[4]- 8 Thảo luận Thảo luận [7] Chương 5. Mức máy thơng thường 5.1. Khuơn dạng lệnh 5.1.1. Lệnh tham chiếu bộ nhớ 5.1.2. Lệnh tham chiếu thanh ghi 9 [1] - [2]-[3]-[4] Giảng 5.1.3. Lệnh tham chiếu vào ra 5.2. Các chế độ địa chỉ 5.3. Bộ nhớ chính 5.4. Bộ nhớ đệm (Cache) 5.4.1. Hoạt động của bộ nhớ Cache [1] - [2]-[3]-[4]- 10 5.4.2. Ánh xạ Cache Giảng [7] 5.4.3. Các giải thuật thay thế Chương 6. Mức máy hệ điều hành 6.1. Giới thiệu về mức máy hệ điều hành 6.2. Bộ nhớ ảo [1] - [2]-[3]-[4]- 11 Giảng 6.3. Các chỉ thị vào/ra ảo [7] 6.4. Bộ nhớ Cache Chương 7. Các thiết bị ngoại vi 7.1. Khái quát 7.2. Bàn phím – Keyboard 12 7.3. Màn hình – Monitor 7.4. Đĩa từ và đĩa quang Chương 8. Máy tính IBM-PC 13 Giới thiệu Máy IBM PC nguyên thủy Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 12 Trường ĐH KTCN Thái Nguyên
  13. Bài giảng Kiến trúc máy tính Máy IBM PC/XT, IBM PC/AT Hệ điều hành DOS của máy IBM PC [1] - [2]-[3]-[4]- 14 Thảo luận Thảo luận [7] [1] - [2]-[3]-[4]- 15 Thảo luận Thảo luận [7] 14. Ngày phê duyệt: 15. Cấp phê duyệt: Đề cương chi tiết học phần đã được Hội đồng khối ngành Điện – Điện tử và SPKT Điện – Tin học phê duyệt. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 13 Trường ĐH KTCN Thái Nguyên
  14. Bài giảng Kiến trúc máy tính CHƯƠNG 1MỞ ĐẦU 1.1 Những khái niệm và nguyên lý cơ bản 1.1.1 Khái niệm máy tính Máy tính (computer) là một thiết bị cĩ khả năng thao tác (lưu trữ, xử lý) trên dữ liệu (thơng tin) theo một cách phức tạp và lập trình được. Việc tính tốn của nĩ thực hiện theo một chương trình - một dãy các câu lệnh. Dữ liệu cĩ thể được biểu diễn dưới rất nhiều hình thức của thơng tin như: số, ký tự, hình ảnh, âm thanh, Trước khi phát minh ra máy tính, thuật ngữ computer thường được dùng để ám chỉ một người chuyên làm nhiệm vụ tính tốn (human computer) Xử lý thơng tin theo chương trình được lưu trong bộ nhớ Nhận thơng tin vào Đưa thơng tin ra  Khái niệm chương trình (program): Chương trình là dãy các câu lệnh nằm trong bộ nhớ, nhằm mục đích hướng dẫn máy tính thực hiện một cơng việc cụ thể nào đấy. Máy tính thực hiện theo chương trình.  Khái niệm phần mềm (software): Bao gồm các thuật tốn và các biểu diễn cho máy tính của chúng ta, đĩ chính là các chương trình. Chương trình cĩ thể được biểu diễn (lưu trữ) trên bìa đục lỗ, băng từ, đĩa từ, hay các mơi trường khác, tuy nhiên cái cơ bản nhất của phần mềm chính là tập hợp các câu lệnh (chỉ thị) tạo nên chương trình chứ khơng phải là mơi trường vật lý được sử dụng để ghi (lưu trữ) chương trình.  Phần cứng (Hardware): (Các) Chương trình được viết bằng ngơn ngữ máy ở mức 1 cĩ thể được thi hành trực tiếp bởi các mạch điện mà khơng cần một trình thơng dịch hoặc trình biên dịch trung gian nào (cả). Các mạch điện như vậy cùng với bộ nhớ và các thiết bị ngoại vi (vào/ra) tạo thành phần cứng máy của tính (hardware). Phần cứng bao gốm các đối tượng hữu hình như các vi mạch (IC), các bảng (board) mạch in, cáp nối, Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 14 Trường ĐH KTCN Thái Nguyên
  15. Bài giảng Kiến trúc máy tính nguồn điện, bộ nhớ, máy đọc bìa, máy in, terminal, chứ khơng phải là các ý tưởng, các thuật tốn hay các câu lệnh (chỉ thị).  Phần dẻo (Firmware): Phần sụn (hay cịn gọi là phần nhão) là dạng trung gian giữa phần cứng và phần mềm, nĩ là phần mềm được nhúng vào các mạch điện tử trong quá trình chế tạo ra các mạch điện tử này. Firmware được sử dụng khi các chương trình hiếm khi hoặc khơng bao giờ cần thay đổi. Một ví dụ trực quan cho phần sụn này chính là ROM BIOS chứa các chương trình khởi động, các dịch vụ vào/ra cơ sở, dữ liệu về cấu hình của hệ thống, mà chúng đã tối ưu, hồn chỉnh mà khơng cần phải thay đổi nữa (ít thay đổi). Hay các phần mềm trong đồ chơi hoặc trong các dụng cụ máy mĩc, điện thoại di động, Firmware cũng được sử dụng khi các chương trình khơng được phép mất đi khi mất điện (nguồn nuơi). Trong nhiều máy tính các vi chương trình thuộc Firmware (chẳng hạn như các chương chình con phục vụ ngắt của BIOS). Nĩi chung một thao tác được thực hiện bằng phần mềm thì cũng cĩ thể xây dựng phần cứng để thực hiện trực tiếp thao tác đĩ, ngược lại mọi thao tác (các lệnh – chỉ thị) được thực hiện bằng phần cứng thì cũng cĩ thể mơ phỏng bằng phần mềm. Việc quyết định đưa những chức năng nhất định nào vào phần cứng và các chức năng nào vào phần mềm được dựa trên các yếu tố như giá cả, tốc độ, độ tin cậy và tần xuất của sư thay đổi cĩ thể xảy ra. Khơng cĩ những quy tắc bắt buộc quy định một cách rõ ràng rằng phải đưa thao tác x này vào trong phần cứng, cịn thao tác y kia phải được thực hiện bằng phần mềm (được lập trình). Những người thiết kế máy tính khác nhau, với những mục tiêu khác nhau cĩ thể thường quyết định khác nhau về vấn đề này. Trong những máy tính đầu tiên thì ranh giới (sự tách biệt) giữa phần cứng và phần mềm là rõ rệt. Phần cứng chỉ thực hiện một số ít các chỉ thị đơn giản, chẳng hạn như lệnh cộng (ADD), lệnh so sánh (CMP), lệnh nhảy (JMP) hoặc một vài lệnh khác. Cịn mọi chỉ thị (lệnh) khác được lập trình một cách rõ ràng (chẳng hạn như tính sin, cos, nhân, ). Nếu chương trình cần nhân (hoặc tính sin của một số) 2 số thì người lập trình phải tự mình viết một chương trình con để thực hiện cơng việc đĩ (hoặc lấy nĩ từ thư viện chương trình mẫu, nếu ai đĩ đã lập sẵn và đưa vào thư viện chương trình mẫu). Dần dần theo thời gian, những người thiết kế phần cứng nhận thấy rõ ràng một số thao tác được thực hiện khá thường xuyên, đĩ là những cơng việc đơn giản ( làm nhiều lần thì dễ bị lỗi hay sai sĩt ( nên cần thiết phải xây Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 15 Trường ĐH KTCN Thái Nguyên
  16. Bài giảng Kiến trúc máy tính dựng những mạch điện phần cứng đặc biệt để thực hiện chúng một cách trực tiếp, làm cho nĩ được thực hiện nhanh hơn. Kết quả là cĩ khuynh hướng chuyển các thao tác xuống phần cứng (mức 0). Những cơng việc trước đây được lập trình một cách rõ ràng ở mức máy thơng thường thì nay thấy được ở mức dưới, trong phần cứng. Với sự ra đời của kỷ nguyên vi chương trình và máy tính nhiều mức, một khuynh hướng ngược lại cũng xuất hiện. Trong các máy tính đầu tiên, lệnh cộng (ADD), hoặc trừ (SUB) được thực hiện bằng phần cứng (khơng ai nghi ngờ về điều đĩ). Trong một máy tính được lập vi chương trình, chỉ thị ADD của mức máy thơng thường (hoặc mức ngơn ngữ assembly) thường được thơng dịch bằng vi chương trình chạy ở mức dưới cùng và được thực hiện như một dãy các bước nhỏ hơn (dãy các vi chỉ thị ( (vi) chương trình).  Lấy lệnh (fetch).  Xác định kiểu của lệnh.  Định vị dữ liệu sẽ được cộng.  Lấy dữ liệu (lấy tốn hạng).  Thực hiện cộng (lệnh).  Cất kết quả. Qua đĩ ta thấy nĩ “vận chuyển” theo khuynh hướng từ dưới lên trên, từ mức phần cứng tới mức vi chương trình. Khi xây dựng một máy tính nhiều mức, người thiết kế phải quyết định sẽ đặt những gì tại mỗi mức. Cái gì đặt vào phần cứng, cái gì được thực hiện bằng phần mềm. Trong các máy tính hiện đại ngày nay cĩ rất nhiều chỉ thị được thực hiện bằng phần cứng hoặc bằng vi chương trình, nhưng ban đầu (khởi thuỷ – nguyên văn) chúng được lập trình rất rõ ràng tại mức máy thơng thường. Ví dụ:  Các chỉ thị cho phép nhân và chia số nguyên.  Các chỉ thị đối với số dấu phảy động.  Các chỉ thị số học cĩ độ chính các kép (các phép tính số học trên các con số cĩ số chữ số cĩ nghĩa nhiều gấp hai bình thường).  Các chỉ thị gọi chương trình con và trở về chương trình con từ chương trình chính sau khi thực hiện xong chương trình con.  Các chỉ thị để đếm (cộng 1 vào một biến: inc i i:=i+1). Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 16 Trường ĐH KTCN Thái Nguyên
  17. Bài giảng Kiến trúc máy tính  Các chỉ thị xử lý xâu ký tự. Tĩm lại chúng ta thấy rằng ranh giới giữa phần cứng và phần mềm là tuỳ ý và chúng khơng ngừng thay đổi theo sự phát triển cũng như yêu cầu trong từng lĩnh vực cụ thể (chẳng hạn: đặt hàng một máy tính chuyên dụng nào đĩ ( sự thiết kế sẽ được định hướng theo yêu cầu của lĩnh vực đĩ). Các phần mềm ngày nay cĩ thể là phần cứng trong nay mai hoặc ngược lại. Hơn thế nữa ranh giới giữa các mức khác nhau cũng dễ thay đổi. Theo quan điểm của từng lập trình viên thì việc chọn một chỉ thị (lệnh) thực tế được thi hành như thế nào khơng quan trọng (cĩ thể chỉ quan tâm tới tốc độ thực hiện của chỉ thị đĩ). Một người lập trình ở mức máy (thơng thường) cĩ thể sử dụng chỉ thị nhân của mức này như thể nĩ là một chỉ thị cho phần cứng mà khơng phải quan tâm lo lắng gì cả, thậm chí cũng khơng cần biết nĩ cĩ thực sự là một chỉ thị cho phần cứng hay khơng. Phần cứng của người này cĩ thể gọi là phần mềm của ngeời khác. Thật vậy, một người lập trình viên khơng cần thiết phải hiểu rõ mức mà anh ta đang sử dụng được tạo ra như thế nào dẫn đến ý tưởng về thiết kế máy tính cĩ cấu trúc. Một mức thường được gọi là máy ảo vì người lập trình nghĩ về nĩ như một cái máy vật lý thực sự, mặc dù nĩ khơng thực sự tồn tại. Bằng việc tạo ra cái máy gồm một dãy các mức, người lập trình làm việc ở mức n khơng cần thiết phải hiểu rõ mọi chi tiết phức tạp của các mức nằm bên dưới, nhờ đĩ việc nghiên cứu, thiết kế và chế tạo ra các máy tính phức tạp trở nên đơn giản hơn rất nhiều. 1.1.2 Nguyên lý xây dựng máy tính điện tử Cĩ hai nguyên lý cơ bản để xây dựng máy tính điện tử là: nguyên lý số và nguyên lý tương tự. • Nguyên lý số: sử dụng các trạng thái rời rạc của một đại lượng vật lý để biểu diễn số liệu, nguyên lý này cịn được gọi là nguyên lý đếm. Ví dụ về tình trạng rời rạc của đại lượng vật lý theo nguyên lý số được thể hiện trong bảng 1-1. Linh kiện Đại lượng vật lý Trạng thái 1 Trạng thái 2 Chuyển mạch điện tử Dịng điện Cĩ (nối mạch) Khơng (ngắt mạch) Lõi ferit Trường từ tính Tồn tại Đảo từ (đảo hướng) Điơt/transistor Dịng điện Dẫn điện Khơng dẫn điện Bảng 1-1 Trạng thái trong nguyên lý số Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 17 Trường ĐH KTCN Thái Nguyên
  18. Bài giảng Kiến trúc máy tính • Nguyên lý tương tự (Analog): sử dụng một đại lượng vật lý biến đổi liên tục để biểu diễn số liệu, nguyên lý này cịn cĩ tên gọi là nguyên lý đo. Thí dụ về đại lượng vật lý biến đổi liên tục theo nguyên lý tương tự được thể hiện trong bảng 1-02. Thiết bị Đại lượng vật lý Thước tính Chiều dài Máy tính điện tử tương tự Điện áp Bảng 1-2 Đại lượng biến thiên trong nguyên lý tương tự 1.1.3 Ngơn ngữ máy Lệnh máy: Các mạch điện tử của máy tính cĩ thể hiểu và thực hiện trực tiếp được một tập hợp hữu hạn các lệnh rất đơn giản thường được gọi là chỉ thị (instruction) máy hay lệnh máy, chẳng hạn: Cộng hai số với nhau; Kiểm tra xem một số cĩ bằng khơng hay khơng; Vận chuyển một nhĩm dữ liệu từ vùng này của bộ nhớ sang một vùng khác. Ngơn ngữ máy: Tập các chỉ thị máy tạo nên ngơn ngữ này để giao tiếp với máy tính được gọi là ngơn ngữ máy (machine language). Hầu hết các ngơn ngữ máy rất đơn giản, nên việc sử dụng chúng là khĩ và tẻ nhạt. Khắc phục vấn đề này bằng cách thiết kế một tập chỉ thị mới dễ sử dụng hơn tập chỉ thị máy đã được xây dựng ngay bên trong máy. Tập các chỉ thị này cũng tạo thành một ngơn ngữ mà chúng ta sẽ gọi là ngơn ngữ mức (Level) 2 - L2, cịn tập chỉ thị được xây dựng ngay bên trong máy chúng ta sẽ gọi là ngơn ngữ L1. Chương trình: Một dãy các chỉ thị mơ tả việc thực hiện một nhiệm vụ cụ thể như thế nào được gọi là chương trình (program). Hai cách để máy tính thi hành được các chương trình viết bằng L2: Cách thứ nhất: đầu tiên thay thế mỗi chỉ thị trong chương trình này bằng một dãy tương đương gồm các chỉ thị trong ngơn ngữ L1. Kết quả thu được một chương trình gồm tồn các chỉ thị thuộc ngơn ngữ L1. Sau đĩ máy tính thực hiện chương trình mới bằng ngơn ngữ L1 chứ khơng phải chương trình cũ bằng ngơn ngữ L2. Kỹ thuật này được gọi là dịch hay biên dịch - Compilation (hay translation), cịn chương trình thực hiện việc này được gọi là Trình biên dịch - Compiler. Cách thứ hai: là viết một chương trình bằng ngơn ngữ L1, cĩ nhiệm vụ làm cho máy tính thi hành chương trình bằng ngơn ngữ L2. Nĩ lấy chương trình L2 làm dữ Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 18 Trường ĐH KTCN Thái Nguyên
  19. Bài giảng Kiến trúc máy tính liệu vào, đọc và kiểm tra từng chỉ thị L2 một và thực hiện một dãy tương đương các chỉ thị L1 một cách trực tiếp. Cách này khơng địi hỏi việc trước tiên phải sinh ra một chương trình mới bằng ngơn ngữ L1, nĩ được gọi là thơng dịch - interpretation, cịn chương trình thực hiện việc này cĩ tên gọi là Trình thơng dịch - interpreter. 1.2 Lịch sử phát triển của máy tính 1.2.1 Thế hệ số khơng – máy tính cơ khí. Nhà khoa học Pháp Blase Pascal (1623-1662) là người đầu tiên chế tạo được một chiếc máy tính hoạt động được (1642). Đây Hồn tồn là một chiếc máy tính cơ khí, sử dụng các bánh răng, năng lượng cung cấp cho máy là sức người - quay tay. Máy tính của Pascal chỉ làm được phép tính cộng và trừ. Ba mươi năm sau nhà bác học Đức Baron Gottfried von Leibniz (1646-1716) đã chế tạo thành cơng một chiếc máy tính cơ khí khác, ngồi hai phép tính cộng và trừ nĩ cịn cĩ thể thực hiện phép nhân và chia (sau Blase Pascal 30 năm). Sau đĩ, giáo sư Charles Babbage đã thiết kế và xây dựng máy sai phân (difference engine). Nĩ đuợc thiết kế để chạy một giải thuật đơn: phương pháp sai phân hữu hạn sử dụng các đa thức và cũng chỉ thực hiện các phép tốn cộng và trừ. Nam 1834, Babbage thiết kế và xây dựng máy phân tích (analytical engine). Máy phân tích cĩ 4 thành phần: bộ lưu trữ (bộ nhớ), bộ tính tốn, thành phần nhập (đầu đọc thẻ đục lỗ) và thành phần xuất (in và đục lỗ). Bộ tính tốn cĩ thể nhận các tốn hạng từ bộ lưu trữ, thực hiện phép tốn cộng, trừ, nhân hay chia chúng và trả kết quả về bộ lưu trữ. Phát triển tiếp theo của máy phân tích là máy đa năng. Máy đọc lệnh từ các thẻ đục lỗ và thực thi chúng. Bằng cách đục lỗ một chương trình khác trên thẻ nhập, Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 19 Trường ĐH KTCN Thái Nguyên
  20. Bài giảng Kiến trúc máy tính máy phân tích cĩ khả năng thực hiện các tính tốn khác. Lập trình viên máy tính đầu tiên là Ada Lovelace đã tạo ra phần mềm cho máy phân tích. Vào những năm 1930, Konrad Zuse xây dựng một chuỗi các máy tính tốn tự động bằng cách sử dụng các relay từ. Sau dĩ, John Atanasoff và George Stibbitz đã thiết kế các máy tính (calculator). Máy của Atanasoff sử dụng số nhị phân và cĩ các tụ điện làm cho bộ nhớ đuợc làm tươi theo chu kỳ. Tuy nhiên, máy này bị thất bại do cơng nghệ phần cứng khơng tương xứng với ý tuởng thiết kế. Năm 1944, Aiken hồn tất máy tính Mark 1, cĩ tất cả 72 từ, mỗi từ 23 số thập phân và cĩ thời gian một chu kỳ là 6 giây. Việc nhập và xuất thực hiện bằng các bằng giấy đục lỗ. 1.2.2 Máy tính đèn điện tử - thế hệ thứ nhất Năm 1943, máy tính số điện tử đầu tiên trên thế giới bắt đầu hoạt động, máy Colossus. Colossus do Alan Turing thiết kế nhằm thực hiện giải mã các thơng điệp đã mã hĩa trong chiến tranh thế giới thứ 2. Cung trong năm 1943, Mauchley và Presper Eckert bắt đầu tiến hành xây dựng máy tính ENIAC (Electronic Numerical Integrator And Computer). ENIAC gồm 1800 dèn diện tử và 1500 relay, cân nặng 30 tấn, cơng suất tiêu thụ 140 kWh. Nĩ cĩ tất cả 20 thanh ghi, mỗi thanh ghi cĩ thể lưu trữ một số thập phân 10 chữ số. Sau đĩ, John von Neumann thiết kế máy IAS dựa cơ sở trên máy EDVAC, là một phiên bản nâng cao của ENIAC. Máy von Neumman cĩ 5 phần co bản: bộ nhớ, đơn vị luận lý số học (ALU – Arithmetich Logic Unit), đơn vị điều khiển chương trình, thiết bị nhập và thiết bị xuất. Bộ nhớ cĩ tất cả 4096 từ, mỗi từ lưu trữ 40 bit. Mỗi từ chứa 2 lệnh 20 bit hay một số nguyên cĩ dấu 39 bit. Mỗi lệnh 20 bit gồm cĩ 8 bit xác định loại lệnh và 12 bit xác định 1 trong 4096 từ nhớ Vào cùng thời gian của máy IAS, các nhà nghiên cứu ở MIT cũng đang xây dựng một máy tính, máy Whirlwind 1. Nĩ cĩ từ dài 16 bit và thiết kế để điều khiển thời gian thực. 1.2.3 Máy tính transistor – thế hệ thứ hai Năm 1948, John Bardeen, Walter Brattain và William Shockley phát minh ra transistor đã làm cuộc cách mạng trong lĩnh vực máy tính. Máy tính transistor đầu Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 20 Trường ĐH KTCN Thái Nguyên
  21. Bài giảng Kiến trúc máy tính tiên duợc xây dựng tại MIT, máy TX-0 (Transistorized experimental computer 0), cĩ 16 bit tương tự như Whirlwind 1. Năm 1961, máy tính PDP-1 xuất hiện cĩ 4K từ 18 bit và khoảng thời gian một chu kỳ là 5 µs. Vài năm sau, PDP-8 ra dời cĩ 12 bit nhưng giá thành rẻ hơn PDP-1 rất nhiều (16.000 USD so với 120.000 USD). PDP-8 cĩ một đổi mới đĩ là hình thành một bus đơn gọi là omnibus trong đĩ bus là tập hợp các dây nối song song dùng để kết nối các thành phần của máy tính. Trong khi dĩ, IBM xây dựng một phiên bản của 709 bằng transistor, đĩ là máy tính 7094 cĩ thời gian một chu kỳ là 2 µs và bộ nhớ 32K từ 36 bit. Nam 1964, cơng ty CDC giới thiệu máy 6600 cĩ tốc dộ nhanh hơn 7094 do bên trong CPU cĩ một co chế song song. CPU cĩ vài đơn vị thực hiện phép cộng, các đơn vị khác thực hiện phép nhân, chia và tất cả chúng đều hoạt động song song. Với một cơng việc, máy cĩ khả nang thực thi 10 lệnh dồng thời. 1.2.4 Máy tính IC – thế hệ thứ ba Vi mạch đuợc phát minh cho phép đặt vài chục transistor trong một chip đơn. Việc này giúp cho các máy tính xây dựng trên IC nhỏ hơn, nhanh hơn và rẻ hơn so với các máy tính transistor. Lúc này, IBM giới thiệu một sản phẩm đơn, máy System 360, duợc thiết kế dựa trên các vi mạch. Ðổi mới quan trọng trong 360 là khả năng đa lập trình (multiprogramming), cĩ vài chương trình trong bộ nhớ đồng thời để khi một chương trình đang chờ xuất / nhập dữ liệu thì chương trình khác cĩ thể tính tốn. Một đặc trưng khác của 360 là khơng gian địa chỉ lớn (thời điểm lúc đĩ), với 224 byte nhớ (16 MB). 1.2.5 Máy tính cá nhân và VLSI – thế hệ thứ tư Vào thập niên 80, vi mạch VLSI (Very Large Scale Integrate) cĩ khả năng chứa vài chục ngàn, vài trăm ngàn và vài triệu transistor trên một chip đơn đã đuợc chế tạo. Sự phát triển này dẫn đến việc sản xuất các máy tính nhỏ hơn và nhanh hơn. Do dĩ, giá cả đã giảm xuống đến mức một cá nhân cĩ thể sở hữu một máy tính. Các máy tính cá nhân thuờng dùng cho việc xử lý từ, các bảng tính và các ứng dụng tương hỗ khác. Các máy tính trong thế hệ này cĩ thể chia thành 5 loại: máy tính cá nhân, máy tính mini, mainframe, siêu máy tính. Máy tính mini sử dụng trong các ứng dụng thời gian thực như điều khiển khơng lưu hay tự động hĩa. Siêu máy tính mini dùng trong các hệ thống chia sẻ thời gian, các máy chủ. Mainframe dùng trong các nhĩm cơng việc lớn hay địi hỏi cơ sở Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 21 Trường ĐH KTCN Thái Nguyên
  22. Bài giảng Kiến trúc máy tính dữ liệu lớn, Siêu máy tính duợc thiết kế đặc biệt để cực đại hĩa số các thao tác dấu chấm động trong 1s (FLOP – floating point operations per second). Máy tính nào cĩ tốc độ duới 1 GF/s thì khơng đuợc xem là siêu máy tính. 1.3 Phân loại máy tính Cĩ nhiều phương pháp và cách phân loại khác nhau như: theo nguyên lý xây dựng, theo thế hệ, theo mục tiêu thiết kế v.v. Ở đây ta nêu lên một số phương pháp phân loại máy tính điện tử. a) Phân loại theo phương pháp truyền thống. Máy vi tính ( Microcomputer) Một thiết bị hay hệ thống điện tử cĩ khả năng xử lý dữ liệu, dùng để tính tốn hay kiểm sốt các hoạt động mà cĩ thể biểu diễn dưới dạng số hay quy luật lơgic. Máy tính nhỏ (Minicomputer) Là một dạng máy tính nhỏ cầm tay, với tốc độc trung bình, cĩ khả năng xử lý và thực thi các chương trình cỡ nhỏ và chuyên biệt. Máy tính lớn (Mainframe Computer) Máy tính cỡ lớn, thường là các máy tính chủ trong các hệ thống mạng của cơng ty hoặc nhà máy Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 22 Trường ĐH KTCN Thái Nguyên
  23. Bài giảng Kiến trúc máy tính Siêu máy tính (Super Computer) Một siêu máy tính là một máy tính vượt trội trong khả năng và tốc độ xử lý. Thuật ngữ Siêu Tính Tốn được dùng lần đầu trong báo New York World vào năm 1920 để nĩi đến những bảng tính (tabulators) lớn của IBM làm cho trường Đại học Columbia. Siêu máy tính hiện nay cĩ tốc độ xử lý hàng trăm teraflop (một teraflop tương đương với hiệu suất một Cray-2; máy tính nhanh nhất thế giới trong thời gian 1985–1989. nghìn tỷ phép tính/giây) hay bằng tổng hiệu suất của 6.000 chiếc máy tính hiện đại nhất hiện nay gộp lại (một máy cĩ tốc độ khoảng từ 3-3,8 gigaflop). Cĩ thể hiểu siêu máy tính là hệ thống những máy tính làm việc song song. Siêu máy tính Roadrunner của IBM - 2008 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 23 Trường ĐH KTCN Thái Nguyên
  24. Bài giảng Kiến trúc máy tính Siêu máy tính IBM Blue Gene/L nhanh nhất thế giới - 2006. b) Phân loại theo phương pháp hiện đại Máy tính để bàn (Desktop Computer) Là máy tính cá nhân, hay máy tính đa năng, đáp ứng như cầu mợi người sử dụng chung trong các lĩnh vực Home, office, Máy chủ (Servers) Cĩ nhiều loại máy chủ khác nhau, phục vụ các yêu cầu từ các máy khách trong hệ thống mạng. Như máy chủ WEB, máy chủ dữ liệu, máy chủ tên miền, Máy tính nhúng (Embedded Computer) Máy tính được đặt vào trong một thống lớn, làm nhiệm vụ xử lý thơng tin và điều khiển hoạt động cho một phần hoặc tồn bộ hệ thống. VD: Hệ thống điều khiển điện và điều khiển Oto. c) Phân loại theo nguyên lý xây dựng máy tính Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 24 Trường ĐH KTCN Thái Nguyên
  25. Bài giảng Kiến trúc máy tính Theo phương pháp này máy tính được phân chia thành hai lớp là máy tính tương tự và máy tính số. Mỗi lớp lớn này lại cĩ thể được chia thành các lớp con, ví dụ máy tính đa năng và máy tính chuyên dụng . . . Máy tính số (Digital Computer) Máy tính số là loại máy tính sử dụng các đại lượng vật lý biến thiên rời rạc (dạng số) để biểu diễn các đại lượng cần tính tốn. Những thơng số cơ bản của máy tính số là: tốc độ hoạt động, hệ thống lệnh và số địa chỉ của các lệnh, các thiết bị nhớ và dung lượng tin của chúng, tổ hợp các thiết bị vào/ra số liệu, kích thước, . . . Người ta cĩ thể phân loại máy tính số dựa trên một số cơ sở khác nhau, đĩ là cĩ thể là cách thức thi hành một chương trình, là nhiệm vụ mà người thiết kế định ra cho máy tính, . . . Sau đây là ví dụ về sự phân loại trên. Phân loại máy tính số (MTS) theo cách thức thi hành chương trình MTS tuần tự (liên tiếp): là MTS trong đĩ các chương trình được thi hành từng lệnh một, hết lệnh này đến lệnh khác. MTS song song: là MST cĩ thể thi hành đồng thời nhiều chương trình. MTS song song cần cĩ nhiều trang thiết bị hơn và phức tạp hơn MTS liên tiếp nhưng cĩ tốc độ tác động cao hơn. MTS tuần tự - song song: Là loại MST trung gian giữa hai loại máy tính số nêu trên, trong đĩ các phép tính theo mã của chương trình được liên tiếp đưa vào các bộ phận của máy tính, cịn cĩ các bộ phận thi hành các phép tính một cách song song. Ngày nay, trong tất cả các máy tính, kể cả loại máy tính được gọi là tuần tự, người ta cũng áp dụng các cơ chế thực hiện song song ở các mức độ khác nhau để nâng cao tốc độ hoạt động chung của máy tính điện tử. Phân loại máy tính số theo nhiệm vụ mà người thiết kế định ra cho nĩ MTS chuyên dụng: Là loại MTS được chế tạo ra để giải quyết một loại bài tốn nhất định, nĩ thường đơn giản và rẻ tiền hơn MTS đa năng nhờ việc cĩ thể giảm bớt một số thành phần của máy tính và thậm chí cả việc rút gọn tập lệnh của bộ vi xử lý của máy. Các máy tính chuyên dụng được sử dụng rộng rãi hiện nay:  Các máy tính điều khiển, nằm trong các hệ thống điều khiển những đối tượng và quá trình thực (Robot, điều khiển máy bay, vệ tinh, ). Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 25 Trường ĐH KTCN Thái Nguyên
  26. Bài giảng Kiến trúc máy tính  Các máy tính được thiết kế để giải một loại (dạng) bài tốn nhất định, chẳng hạn tính tổng các tích 2 số trong các bài tốn về dự báo khí tượng, giải hệ phương trình vi phân thường, . . .  Các máy tính tìm thơng tin, dùng để xử lý những lượng lớn các thơng tin chữ và số (tìm kiến thơng tin trên mạng). MTS đa năng: Là loại MTS được chế tạo ra để giải một lớp lớn các bài tốn mà thành phần của lớp bài tốn này cĩ thể cịn chưa được nêu đầy để khi thiết kế máy. Những tính chất cơ bản của MTS đa năng là: Cĩ tập lệnh tương đối lớn, bao gồm nhiều nhĩm, mỗi nhĩm phục vụ cho một loại thao tác nhất định, để cĩ thể thi hành nhiều loại chương trình khác nhau một cách cĩ hiệu quả. Kích thước các thanh ghi trong bộ xử lý và độ lớn của một đơn vị bộ nhớ (word - từ nhớ) phải khơng quá lớn cũng khơng quá nhỏ, thơng thường bằng bội số của 8. Như vậy chúng cĩ thể chứa vừa vặn một số ký tự ASCII 8 bit hoặc chứa được cĩn số đủ lơn cho hầu hết các chương trình ứng dụng chạy trên máy. Các chương trình sạn thảo văn bản, chương trình quản lý, . . . nĩi chung đều cĩ dữ liệu kiểu ký tự. Các thiết bị nhớ cĩ thể nhận vào, lưu trữ và đưa ra các số liệu, các kết quả và các chương trình. Cịn trong MTS chuyên dụng các chương trình, hằng số, . . . thường được cứng hố. Hệ thống trao đổi thơng tin (giao diện) giữa máy và người sử dụng thuận tiện, giảm nhẹ các cơng việc mà con người phải thực hiện trong quá trình máy tính hoạt động. Máy tính tương tự (Analog Computer) Máy tính tương tự (MTTT) là loại máy tính sử dụng các đại lượng vật lý biến thiên liên tục để biểu diễn các đại lượng cần tính tốn. Đại lượng vật lý đĩ thường là điện áp hoặc dịng điện. Mơ hình hố (modelling) là cơ sở cho sự hoạt động của MTTT, trong đĩ một quá trình vật lý thực sự hay các thành phần của nĩ được thay thế bằng một mơ hình điện cĩ các đặc tính tương tự. Nhờ cĩ mơ hình điện mà việc nghiên cứu cĩ thể tiến hành đơn giản, thuận tiện và rẻ tiền hơn. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 26 Trường ĐH KTCN Thái Nguyên
  27. Bài giảng Kiến trúc máy tính Các MTTT vận hành rất thuận tiện, thường đưa ra kết quả dưới dạng đồ thị, đặc biệt với thời gian cực kỳ ngắn (tốc độ thi hành rất cao). MTTT cĩ các nhược điểm chính sau: kết quả cĩ độ chính xác khơng cao lắm, sự hoạt động của nĩ khơng mềm dẻo như MTS, khả năng giải bài tốn phụ thuộc nhiều vào chính phần cứng của máy. Sự khác nhau cơ bản giữa MTTT và MTS là MTS chỉ làm được các phép tính số học cổ điểm như cộng, trừ, nhân, chia; để thực hiện các tổ hợp gồm các phép tính cộng và nhân . . . những cái mà bộ GTE Analog Computer EA22 cộng của MTTT chỉ làm trong nháy mắt thì ở MTS phải cĩ một chương trình đặc biệt để sắp xếp dần dần các phép tính số học chủ yếu thành các tổ hợp cần thiết. Các máy tính ngày nay cĩ khả năng giải được hầu như mọi bài tốn tốn học và các tính tốn logic phức tạp với tốc độ thực hiện, độ chính xác và độ tin cậy ngày càng cao. Chính vì vậy mà MTTT với các nhược điểm trên thì chỉ cịn được sử dụng cho những ứng dụng cĩ tính chất chuyên biệt, khơng phổ biến như MTS. Trước chiến tranh thế giới thứ II, máy tính tương tự điện và cơ khí được coi là một thành tựu vĩ đại và rất nhiều người nghĩ rằng nĩ là tương lai của khoa học tính tốn. Các máy tính tương tự được sử dụng các đại lượng vật lý biến thiên liên tục như dịng điện và điện áp hay tốc độ quay của các trục để biểu diễn các giá trị đang được xử lý. Một ví dụ điển hình đĩ là chiếc máy tích phân bằng nước được xây dựng năm 1936. Khơng giống như các máy tính số hiện đại, máy tính analog khơng quá phức tạp và cần phải thiết lập cấu hình lại (lập trình lại) một cách thủ cơng để chuyển chúng từ cơng việc này sang giải quyết một vấn đề khác. Các máy tính tương tự đã đem lại nhiều lợi ích trong giai đoạn khai sinh của máy tính số do chúng cĩ thể giải quyết nhiều bài tốn phức tạp trong khi khả năng của các máy tính số ban đầu cịn rất giới hạn. Nhưng cùng với sự phát triển của nhanh hơn và sử dụng bộ nhớ lớn hơn của máy tính số, máy tính tương tự dần bị thay thế, đặc biệt là sự phát triển của kỹ thuật lập trình và kỹ thuật mã hố. Máy tính tương tự được ứng dụng mạnh nhất trong các thiết bị ngắm bắn cho vũ khí, ví dụ như máy ngắm ném bom Norden và các máy tính tốn cho pháo binh trên chiến trường. Một số máy tính loại này vẫn cịn được sử dụng vài thập kỷ sau CTTG II. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 27 Trường ĐH KTCN Thái Nguyên
  28. Bài giảng Kiến trúc máy tính Máy tính tương tự dạng lai, được điều khiển bởi các thiết bị điện tử số, vẫn giữ vai trị quan trọng cho tới những năm 1950, 1960, và sau đĩ trong một số ứng dụng đặc biệt. Máy tính lai (Hybrid Computer) Đĩ là loại máy tính kết hợp cả hai nguyên lý số và tương tự, trong hệ thống này cĩ một nửa là số và một nửa là tương tự. Nửa số, về thực chất là một máy tính số hoặc là một tập hợp các phần tử tính tốn số. Nửa tương tự là một máy tính là một máy tính tương tự hoặc là một tập hợp các phần tử tính tốn tương tự. Trong quá trình tính tốn, hai nửa này truyền dữ liệu cho nhau thơng qua các bộ chuyển đổi (convertor). Việc đồng bộ hoạt động của hai nửa cĩ thể do một đơn vị điều khiển riêng hoặc do đơn vị điều khiển của máy tính số đảm nhiệm. 1.4 Các thành phần cơ bản trong hệ thống máy tính Mơ hình chung của một máy tính CPU Memory Bus hƯ thèng Phèi ghÐp vµo ra (I/O) TB TB Vµo Ra Hình 1-1 Mơ hình chung của một hệ thống máy tính 1.4.1 CPU CPU viết tắt của chữ Central Processing Unit (tiếng Anh), tạm dịch là đơn vị xử lí trung tâm. CPU cĩ thể được xem như não bộ, một trong những phần tử cốt lõi nhất của máy vi tính. Nhiệm vụ chính của CPU là xử lý các chương trình vi tính và Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 28 Trường ĐH KTCN Thái Nguyên
  29. Bài giảng Kiến trúc máy tính dữ kiện. CPU cĩ nhiều kiểu dáng khác nhau. Ở hình thức đơn giản nhất, CPU là một con chip với vài chục chân. Phức tạp hơn, CPU được ráp sẵn trong các bộ mạch với hàng trăm con chip khác. CPU là một mạch xử lý dữ liệu theo chương trình được thiết lập trước. Nĩ là một mạch tích hợp phức tạp gồm hàng triệu transistor Cấu trúc cơ bản CPU Đơn vị điều khiển (CU:Control Unit): Điều khiển hoạt động của máy tính theo chương trình đã định sẵn. Đơn vị số học và logic (ALU: Arithmetic And Logic Unit): thực hiện các phép tốn số học và logic trên các dữ liệu cụ thể. Tập thanh ghi (RF: Register File): Lưu trữ các thơng tin tạm thời phục vụ cho hoạt động của CPU. Đơn vị nối ghép BUS(BIU: Bus Interface Unit): kết nối và trao đổi thơng tin giữa Bus bên trong và Bus bên ngồi CPU. 1.4.2 Bộ nhớ trong Là loại bộ nhớ mà CPU cĩ thể truy cập trực tiếp, cĩ tốc độ cao và dung lượng thường nhỏ. Bộ nhớ trong chia làm 2 loại - Bộ nhớ chính (main memmory): ROM và RAM - Bộ nhớ đệm Cache  RAM (Random access memory), hay Bộ nhớ truy cập ngẫu nhiên: Tốc độ truy cập nhanh, lưu trữ giữ liệu tạm thời, dữ liệu sẽ bị mất vĩnh viễn khi khơng cịn nguồn điện cung cấp.  ROM (Read Only Memory), hay Bộ nhớ chỉ đọc: Lưu trữ các chương trình mà khi mất nguồn điện cung cấp sẽ khơng bị (xĩa) mất. Ngày nay cịn cĩ cơng nghệ FlashROM tức bộ nhớ ROM khơng những chỉ đọc mà cịn cĩ thể ghi lại được, nhờ cĩ cơng nghệ này BIOS được cải tiến thành FlashBIOS.  Cache: Cache là tên gọi của bộ nhớ đệm – nơi lưu trữ các dữ liệu nằm chờ các ứng dụng hay phần cứng xử lý. Mục đích của nĩ là để tăng tốc độ xử lý. Cache là một cơ chế lưu trữ tốc độ cao đặc biệt. Nĩ cĩ thể là một vùng lưu trữ của bộ nhớ chính hay một thiết bị lưu trữ tốc độ cao độc lập. Cache cấu tạo bằng bộ nhớ tĩnh (SRAM) cĩ tốc độ cao nhưng đắt tiền thay vì bộ nhớ động (DRAM) cĩ tốc độ thấp hơn và rẻ hơn, được dùng cho bộ nhớ chính. Cơ chế lưu trữ bộ nhớ cache này rất cĩ hiệu quả. Bởi lẽ, hầu hết các chương trình Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 29 Trường ĐH KTCN Thái Nguyên
  30. Bài giảng Kiến trúc máy tính thực tế truy xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh giống nhau. Nhờ lưu trữ các thơng tin này trong SRAM, máy tính sẽ khỏi phải truy xuất vào DRAM vốn chậm chạp hơn. Một số bộ nhớ cache được tích hợp vào trong kiến trúc của các bộ vi xử lý. Chẳng hạn, CPU Intel đời 80486 cĩ bộ nhớ cache 8 KB, trong khi lên đời Pentium là 16 KB. Các bộ nhớ cache nội (internal cache) như thế gọi là Level 1 (L1) Cache (bộ nhớ đệm cấp 1). Các máy tính hiện đại hơn thì cĩ thêm bộ nhớ cache ngoại (external cache) gọi là Level 2 (L2) Cache (bộ nhớ đệm cấp 2). Các cache này nằm giữa CPU và bộ nhớ hệ thống DRAM. Sau này, do nhu cầu xử lý nặng hơn và với tốc độ nhanh hơn, các máy chủ (server), máy trạm (workstation) và mới đây là CPU Pentium 4 Extreme Edition được tăng cường thêm bộ nhớ đệm L3 Cache. Hình 1-2. Bộ nhớ đệm Cache 1.4.3 Bộ nhớ ngồi Cĩ dung lượng lơn, để lưu các chương trình và dữ liệu lâu dài, như HDD, CDROM, Tape, Các loại bộ nhớ dựa trên cơng nghệ FlashROM: Kết hợp với chuẩn giao tiếp máy tính USB (Universal Serial Bus) tạo ra các bộ nhớ máy tính di động thuận tiện và đa năng như: Các thiết bị giao tiếp USB lưu trữ dữ liệu, thiết bị giao tiếp USB chơi nhạc số, chơi video số; khĩa bảo mật qua giao tiếp USB; thẻ nhớ Dung lượng thiết bị lưu trữ FlashROM đã lên tới 32GB (Samsung cơng bố năm 2005), trong tương lai, cĩ thể FlashROM sẽ dần thay thế các ổ đĩa cứng, các loại đĩa CD, DVD 1.4.4 Hệ thống vào ra (Input/Output System) Giúp máy tính trao đổi thơng tin với thế giới bên ngồi, bao gồm hai hoạt động chính là nhận thơng tin Input và gửi thơng tin ra Output. Nhập hay đầu vào (Input): Các bộ phận thu nhập dữ liệu hay mệnh lệnh như là bàn phím, chuột Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 30 Trường ĐH KTCN Thái Nguyên
  31. Bài giảng Kiến trúc máy tính Xuất hay đầu ra (Output): Các bộ phận trả lời, phát tín hiệu, hay thực thi lệnh ra bên ngồi như là màn hình, máy in, loa, Thơng qua hệ thống vào ra máy tính cĩ thể trao đổi thơng tin với thiết bị ngồi vi. Các thiết bị ngoại vi cơ bản: o Thiết bị vào: bàn phím, chuột, o Thiết bị ra: máy in, màn hình, o Thiết bị nhớ: đĩa từ, quang, . o Thiết bị truyền thơng: Modem, 1.4.5 Hệ thống bus Hệ thống bus (Bus system) làm nhiệm vụ vận chuyển thơng tin giữa các phần khác nhau trong máy tính (Hệ thống Bus bao gồm bus dữ liệu dùng để vận chuyển dữ liệu từ bộ nhớ tới CPU hoặc ngược lại. Bus địa chỉ dùng để vận chuyển tín hiệu địa chỉ (ơ nhớ hay cổng vào/ra do CPU phát ra. Bus điều khiển dùng để vận chuyển tín hiệu điều khiển do CPU phát ra để điều khiển các khối trong hệ thống hoặc do thiết bị ngoại vi gửi tới CPU yêu cầu thực hiện một cơng việc nào đĩ). 1.5 Mơ hình phân cấp của máy tính Một máy với n mức cĩ thể được xem như n máy ảo khác nhau, mỗi máy ảo cĩ một ngơn ngữ máy tương ứng. Chúng ta sẽ sử dụng thuật ngữ "mức" và "máy ảo" với cùng một ý nghĩa. Chỉ cĩ các chương trình được viết bằng ngơn ngữ L1 là cĩ thể được thực hiện trực tiếp bằng các mạch điện tử mà khơng cần sự can thiệp trung gian của việc dịch hoặc thơng dịch. Các chương trình được viết bằng L2, L3, , Ln hoặc là phải được thơng dịch bằng một trình thơng dịch chạy ở một mức thấp hơn hoặc là phải được dịch sang một ngơn ngữ khác tương ứng với một mức thấp hơn. Hình 1.03 dưới đây mơ tả các máy tính nhiều mức hiện đại Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 31 Trường ĐH KTCN Thái Nguyên
  32. Bài giảng Kiến trúc máy tính Hình 1-3. Mơ hình phân cấp máy tính Cấp 0 chính là phần cứng của máy tính. Các mạch điện tử của cấp này sẽ thực thi các chương trình ngơn ngữ máy của cấp 1. Trong cấp logic số, đối tượng quan tâm là các cổng logic. Các cổng này được xây dựng từ một nhĩm các transistor. Cấp 1 là cấp ngơn ngữ máy thật sự. Cấp này cĩ một chương trình gọi là vi chương trình (microprogram), vi chương trình cĩ nhiệm vụ thơng dịch các chỉ thị của cấp 2. Hầu hết các lệnh trong cấp này là di chuyển dữ liệu từ phần này đến phần khác của máy hay thực hiện việc một số kiểm tra đơn giản. Mỗi máy cấp 1 cĩ một hay nhiều vi chương trình chạy trên chúng. Mỗi vi chương trình xác định một ngơn ngữ cấp 2. Các máy cấp 2 đều cĩ nhiều điểm chung ngay cả các máy cấp 2 của các hãng sản xuất khác nhau. Các lệnh trên máy cấp 2 được thực thi bằng cách thơng dịch bởi vi chương trình mà khơng phải thực thi trực tiếp bằng phần cứng. Cấp thứ 3 thường là cấp hỗn hợp. Hầu hết các lệnh trong ngơn ngữ của cấp máy này cũng cĩ trong ngơn ngữ cấp 2 và đổng thời cĩ thêm một tập lệnh mới, một tổ chức bộ nhớ khác và khả năng chạy 2 hay nhiều chương trình song song. Các Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 32 Trường ĐH KTCN Thái Nguyên
  33. Bài giảng Kiến trúc máy tính lệnh mới thêm vào sẽ được thực thi bằng một trình thơng dịch chạy trên cấp 2, gọi là hệ điều hành. Nhiều lệnh cấp 3 được thực thi trực tiếp do vi chương trình và một số lệnh khác được thơng dịch bằng hệ điều hành (do đĩ, cấp này là cấp hỗn hợp). Cấp 4 thật sự là dạng tượng trưng cho một trong các ngơn ngữ. Cấp này cung cấp một phương pháp viết chương trình cho các cấp 1, 2, 3 dễ dàng hơn. Các chương trình viết bằng hợp ngữ được dịch sang các ngơn ngữ của cấp 1, 2, 3 và sau đĩ được thơng dịch bằng các máy ảo hay thực tương ứng. Cấp 5 bao gồm các ngơn ngữ được thiết kế cho người lập trình nhằm giải quyết một vấn đề cụ thể. Các ngơn ngữ này được gọi là cấp cao. Một số ngơn ngữ cấp cao như Basic, C, Cobol, Fortran, Lisp, Prolog, Pascal và các ngơn ngữ lập trình hướng đối tượng như C++, J++, Các chương trình viết bằng các ngơn ngữ này thường được dịch sang cấp 3 hay 4 bằng các trình biên dịch (compiler). Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 33 Trường ĐH KTCN Thái Nguyên
  34. Bài giảng Kiến trúc máy tính CHƯƠNG 2 BIỂU DIỄN THƠNG TIN TRONG MÁY TÍNH Mục tiêu: Tĩm tắt chương: Chương được chia ra thành 5 phần Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 34 Trường ĐH KTCN Thái Nguyên
  35. Bài giảng Kiến trúc máy tính 2.1 Thơng tin và mã hố thơng tin 2.1.1 Khái niệm về thơng tin Khái niệm về thơng tin gắn liền với sự hiểu biết một trạng thái cho sẵn trong nhiều trạng thái cĩ thể cĩ vào một thời điểm cho trước. Hình 2-1 Trạng thái biểu diễn hiệu điện thế Trong hình này, chúng ta quy ước cĩ hai trạng thái cĩ ý nghĩa: trạng thái thấp khi hiệu điện thế thấp hơn VL và trạng thái cao khi hiệu điện thế lớn hơn VH. Để cĩ thơng tin, ta phải xác định thời điểm ta nhìn trạng thái của tín hiệu. Thí dụ, tại thời điểm t1 thì tín hiệu ở trạng thái thấp và tại thời điểm t2 thì tín hiệu ở trạng thái cao. 2.1.2 Mã hố dữ liệu Nguyên tắc chung về mã hố dữ liệu Mọi dữ liệu được đưa vào máy tính được mã hố thành số nhị phân.  Các loại dữ liệu: o Dữ liệu nhân tạo: do con người quy ước o Dữ liệu tự nhiên: tồn tại khách quan với con người  Mã hố dữ liệu nhân tạo o Dữ liệu số nguyên: mã hố theo một số chuẩn đã qui ước o Dữ liệu số thực: mã hố bằng số dấu chấm động o Dữ liệu phi số (ký tự): mã hố theo các bộ mã ký tự hiện hành như : ASCII, Unicode, Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 35 Trường ĐH KTCN Thái Nguyên
  36. Bài giảng Kiến trúc máy tính Hình 2-2 Qui trình biến đổi tín hiệu Nguyên tắc lưu trữ dữ liệu trên máy tính Bộ nhớ chính tổ chức lưu trữ dữ liệu theo đơn vị byte. Độ dài từ dữ liệu cĩ thể chiếm từ 1 đến 4 byte. Vì vậy cần phải biết thứ tự chúng lưu trữ trong bộ nhớ chính đối với các dữ liệu nhiều byte. Cĩ hai cách lưu trữ được đưa ra o Little Endian (đầu nhỏ): Byte cĩ ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí cĩ địa chỉ nhỏ hơn. Minh họa : Giả thiết cần lưu một một dịng chữ KY THUAT MAY TINH sử dụng mã ASCII 8 bit. H N I T Y A M T A U H T K Y Byte 0 byte n Bộ nhớ máy tính o o Big Endian (đầu to): Byte cĩ ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí cĩ địa chỉ lớn hơn. K Y T H U A T M A Y T I N H Byte 0 byte n Bộ nhớ máy tính 2.2 Biểu diễn số 2.2.1 Khái niệm hệ đếm Các chữ số cơ bản của một hệ đếm là các chữ số tối thiểu để biểu diễn mọi số trong hệ đếm ấy. Hệ thập phân cĩ các chữ số cơ bản là 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Hệ nhị phân cĩ các chữ số cơ bản là 0, 1. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 36 Trường ĐH KTCN Thái Nguyên
  37. Bài giảng Kiến trúc máy tính Hệ thập lục phân cĩ các chữ số cơ bản được ký hiệu là 0, , 9, A, B, C, D, E, F. Nếu một số cĩ giá trị lớn hơn các số cơ bản thì nĩ sẽ được biểu diễn bằng cách tổ hợp các chữ số cơ bản theo cơng thức sau : n n-1 X = an an-1 a1 a0 = anb + an-1b + + a1b + a0 (*) Với b là cơ số hệ đếm, a0, a1, a2, , an là các chữ số cơ bản X là số ở hệ đếm cơ số b. Ví dụ: Hệ thập phân cho X = 123 thì X = 1 * 102 + 2 * 101 + 3 với b=10 Hệ nhị phân cho X = 110 thì X = 1 * 22 + 1 * 21 + 0 với b=2 2.2.2 Chuyển đổi giữa các hệ đếm Chuyển đổi từ cơ số n sang cơ số 10 (với n = {2, 8, 16, }) theo cơng thức dạng tổng quát ở các phần trên. Các chuyển đổi sơ A từ cơ số 10 sang cơ số n theo thuật tốn chung là : Bước 1: Nếu A < n thì kết quả = A, trái lại đến bước 2 Bước 2: A = A chia nguyên cho n, Bi=A chia dư cho n (i=1,2,3, ) Nếu A = 0 thì đến bước 3 trái lại làm lại bước 2 với i=i+1 Bước 3: Kết quả = BiBi-1Bi-2 B1 Ví dụ : 118 chuyển sang cơ số 2 (n=2) Phép tính Số dư 118 ÷ 2 = 59 0 59 ÷ 2 = 29 1 29 ÷ 2 = 14 1 14 ÷ 2 = 7 0 7 ÷ 2 = 3 1 3 ÷ 2 = 1 1 1 ÷ 2 = 0 1 Lược trình các con số dư theo thứ tự từ dưới lên trên, cho chúng ta một số nhị phân 11101102.  Chuyển đổi từ cơ số 2 sang cơ số 16 và ngược lại Mỗi một ký tự ở cơ số 16 chuyển đổi tương ứng sang 4 bit với cơ số 2 và ngược lại VD : 9FA là số cơ số 16 chuyển sang cơ số 2 và ngược lại: Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 37 Trường ĐH KTCN Thái Nguyên
  38. Bài giảng Kiến trúc máy tính 9FA 1001 1111 1010 2.2.3 Biểu diễn số nguyên a. Số nguyên khơng dấu Nguyên tắc chung: Dùng n chữ số nhị phân thì biểu diễn được 2n số Dải biểu diễn: 0  2n – 1 Ví dụ: n = 8 bit: dải biểu diễn: 0÷28-1, hay từ 0÷255 Cách biểu diễn: Biểu diễn ở dạng nhị phân một cách bình thường b. Số nguyên cĩ dấu Cĩ nhiều cách để biểu diễn một số n bit cĩ dấu. Trong tất cả mọi cách thì bit cao nhất luơn tượng trưng cho dấu. Khi đĩ, bit dấu cĩ giá trị là 0 thì số nguyên dương, bit dấu cĩ giá trị là 1 thì số nguyên âm. Tuy nhiên, cách biểu diễn dấu này khơng đúng trong trường hợp số được biểu diễn bằng số thừa K mà ta sẽ xét ở phần sau trong chương này (bit dấu cĩ giá trị là 1 thì số nguyên dương, bit dấu cĩ giá trị là 0 thì số nguyên âm). dn-1 dn-2 dn-3 • • • • • d2 d1 d0 • • • • • Bit dấu Số nguyên cĩ bit dn-1 là bit dấu và cĩ trị số tượng trưng bởi các bit từ d 0 tới dn-2 . Biểu diễn bằng dấu và giá trị tuyệt đối Trong cách này, bit dn-1 là bit dấu và các bit từ d0 tới dn-2 cho giá trị tuyệt đối. Một số n bit tương ứng với số nguyên thập phân cĩ dấu sau : n 2 d 1 i N ( 1) di 2 i 0 Ví dụ: +2510 = 000110012 -2510 = 100110012 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 38 Trường ĐH KTCN Thái Nguyên
  39. Bài giảng Kiến trúc máy tính - Một Byte (8 bit) cĩ thể biểu diễn các số cĩ dấu từ -127 tới +127. - Cĩ hai cách biểu diễn số khơng là 0000 0000 (+0) và 1000 0000 (-0). Biểu diễn bằng số bù 1 Trong cách biểu diễn này, số âm -N được cĩ bằng cách thay các số nhị phân di của số dương N bằng số bù của nĩ (nghĩa là nếu di = 0 thì người ta đổi nĩ thành 1 và ngược lại). Ví dụ: +2510 = 000110012 -2510 = 111001102 - Một Byte cho phép biểu diễn tất cả các số cĩ dấu từ -127 (1000 00002) đến 127 (0111 11112) - Cĩ hai cách biểu diễn cho 0 là 0000 0000 (+0) và 1111 1111 (-0). Biểu diễn bằng số bù 2 Để cĩ số bù 2 của một số nào đĩ, người ta lấy số bù 1 rồi cộng thêm 1. Vậy một từ n bit (dn-1 d0) cĩ trị thập phân như sau : n 2 n 1 i N dn 1 2 di 2 i 0 Một số n bit cĩ thể biểu diễn các số cĩ dấu từ - 2 n-1 đến 2n-1-1. Chỉ cĩ một cách duy nhất để biểu diễn cho số khơng là tất cả các bit của số đĩ đều bằng khơng. Ví dụ: +2510 = 000110012 -2510 = 111001112 - Dùng 1 Byte (8 bit) để biểu diễn một số cĩ dấu lớn nhất là +127 và số nhỏ nhất là –128. - Chỉ cĩ một giá trị 0: +0 = 000000002, -0 = 000000002 Biểu diễn bằng số thừa K Trong cách này, số dương của một số N cĩ được bằng cách “cộng thêm vào” số thừa K được chọn sao cho tổng của K và một số âm bất kỳ luơn luơn dương. Số âm -N của số N cĩ được bằng cáck lấy K-N (hay lấy bù hai của số vừa xác định). Ví dụ: (số thừa K=128, số “cộng thêm vào” 128 là một số nguyên dương. Số âm là số lấy bù hai số vừa tính, bỏ qua số giữ của bit cao nhất) : +2510 = 100110012 -2510 = 011001112 - Dùng 1 Byte (8 bit) để biểu diễn một số cĩ dấu lớn nhất là +127 và số nhỏ nhất là –128. - Chỉ cĩ một giá trị 0: +0 = 100000002, -0 = 100000002 2.3 Các phép tốn số học trong hệ nhị phân Phần này chúng ta quan tâm đến các phép tính số học trên số nhị phân, với cơ bản các phép tính +,-,*,/ tương tự với cơ số 10 thơng thường 2.3.1 Phép cộng nhị phân Cộng nhị phân được thực hiện theo quy tắc ở Bảng 2.1 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 39 Trường ĐH KTCN Thái Nguyên
  40. Bài giảng Kiến trúc máy tính SỐ HẠNG SỐ HẠNG TỔNG SỐ NHỚ K ẾT QUẢ 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 10 Bảng 2-1 Quy tắc Cộng Nhị phân. Chú ý: Khi cộng, thực hiện từ bit cĩ trọng số thấp đến bit cĩ trọng số cao. Ví dụ: Thực hiện các phép Cộng Nhị phân: 1011 + 1100 = 10111 Trong phép cộng nhị phân được chia thành 2 dạng là : Phép cộng số nguyên khơng dấu Phép cộng số nguyên cĩ dấu a. Phép cộng số nguyên khơng dấu Khi cộng hai số nguyên khơng dấu n bit: Nếu khơng cĩ nhớ ra khỏi bit cao nhất thì tổng luơn đúng (Cout = 0) Nếu cĩ nhớ ra ngồi (Carry out) thì tổng là sai (Cout = 1), ta nĩi rằng phép cộng đã tràn nhớ Tràn nhớ ra ngồi xảy ra khi tổng > 2n - 1 b. Phép cộng số nguyên cĩ dấu Khi cộng hai số nguyên cĩ dấu n bit, khơng quan tâm đến bit nhớ ra ngồi (Cout), kết quả nhận được là n bit: Nếu cộng hai số khác dấu, tổng thu được luơn luơn đúng Cộng hai số cùng dấu, nếu tổng cùng dấu với các số hạng thì tổng đĩ đúng Cộng hai số cùng dấu, nếu tổng ngược dấu với các số hạng thì tổng đĩ sai, ta nĩi tổng bị tràn (Overflow) 2.3.2 Phép trừ nhị phân Phép trừ nhị phân được thực hiện theo quy tắc trình bày ở bảng 2.2 SỐ BỊ TRỪ SỐ TRỪ HIỆU VAY 0 0 0 0 0 1 1 1 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 40 Trường ĐH KTCN Thái Nguyên
  41. Bài giảng Kiến trúc máy tính 1 0 1 0 1 1 0 0 Bảng 2-2. Quy tắc Trừ Nhị phân : Chú ý: Phép tính được thực hiện từ Bit trọng số thấp đến Bit cĩ trọng số thấp đến Bit cĩ trọng số cao. Số vay sẽ được trừ vào Bit cĩ trọng số cao hơn ở liền kề. Ví dụ: Thực hiện các tính Trừ Nhị phân sau: 1011 – 0110 = 0101 Để thực hiện phép trừ được thuận lợi hơn, người ta chuyển đổi phép trừ thành phép cộng với số Bù 2 của nĩ. 2.3.3 Phép nhân nhị phân Phép nhân nhị phân được thực hiện như nhân thập phân. Ví dụ: Cĩ phép tính: 1001 nhân với 1101 Ta thực hiện: 1100 Số bị nhân (12) x 1011 Số nhân (11) 1100 + 1100 0000 1100 100000100 Tích (132) Trong phép cộng nhị phân được chia thành 2 dạng là : Phép nhân số nguyên khơng dấu Phép nhân số nguyên cĩ dấu a. Phép nhân số nguyên khơng dấu Các tích thành phần được tính như sau: Nếu bit tương ứng của số nhân bằng 0 tích thành phần bằng 0 Nếu bit tương ứng của số nhân bằng 1 tích thành phần bằng số bị nhân Tích thành phần tiếp theo được dịch trái 1 bit so với tích trước đĩ Tổng các tích thành phần là Tích cuối cùng Nhân hai số n bit, tích cĩ độ dài 2n bit b. Phép nhân số nguyên cĩ dấu Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 41 Trường ĐH KTCN Thái Nguyên
  42. Bài giảng Kiến trúc máy tính Khơng thực hiện trực tiếp được trong máy tính Chuyển đổi thành số dương nếu cần Thực hiện nhân như đối với số khơng dấu Nếu hai số khác dấu tích là số âm 2.3.4 Phép chia nhị phân Phép chia nhị phân được thực hiện như chia thập phân. 2.4 Biểu diễn số dấu chấm động 2.4.1 Biểu diễn số thực dấu phẩy tĩnh Quy tắc: ta chuyển đổi từng phần nguyên và lẻ theo quy tắc sau: o Phần nguyên: Chia liên tiếp phần nguyên cho 2 giữ lại các số dư, Số nhị phân chuyển đổi sẽ là dãy số dư liên tiếp tính từ lần chia cuối về lần chia đầu tiên. o Phần lẻ: Nhân liên tiếp phần lẻ cho 2, giữ lại các phần nguyên tạo thành. Phần lẻ của số Nhị phân sẽ là dãy liên tiếp phần nguyên sinh ra sau mỗi phép nhân tính từ lần nhân đầu đến lần nhân cuối. Ví dụ: Chuyển sang hệ Nhị phân số: 13,625 Thực hiện: Phần nguyên: 13:2 = 6 dư 1 6:2 = 3 dư 0 3:2 = 1 dư 1 1:2 = 0 dư 1 => Phần nguyên của số Nhị phân là 1101 Phần lẻ: 0,625 x 2 = 1,250 Phần nguyên là 1 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 42 Trường ĐH KTCN Thái Nguyên
  43. Bài giảng Kiến trúc máy tính 0,250 x 2 = 0,500 Phần nguyên là 0 0,500 x 2 = 1,000 Phần nguyên là 1 (dừng ở đây vì phân nguyên cịn lại =0) => Phần lẻ của số Nhị phân là: 0,101 => Ta viết kết quả là: (13,625)10 = (1101,101)2 Chú ý: việc chuyển đổi từ hệ thập phân sang hệ Nhị phân khơng phải luơn được gọn gàng chính xác, trong trường hợp phép tính chuyển đổi kéo dài, thì tùy theo yêu cầu về độ chính xác mà ta cĩ thể dùng phép tính ở mức độ cần thiết thích hợp.  Nhận xét : Các số dấu phẩy tĩnh chỉ dùng trong các bài tốn yêu cầu độ chính xác khơng cao và luơng cố định, ví dụ điểm mơn học trong trường ĐH CN tính chính xác đến 1 số sau dấu phẩy (VD : 4,5). Như vậy các điểm sẽ luơn cĩ độ chính xác trong khoảng đĩ. Trong thực tế cĩ các bài tốn yêu cầu độ chính xác gần như tuyệt đối như các bài tốn trong ngân hàng, trong điều khiển máy bay, vệ tinh, Các bài tốn này khơng thể quy định trước một độ chính xác, người ta phải sử dụng sơ dấu chấm động, khi đĩ số các số sau dấu phẩy là khơng hạn chế về mặt biểu diễn. VD : 12e-101=12*10-101 Vấn đề là biểu diễn các số dấu chấm động như thế trên máy tính với cơ số 2 2.4.2 Biểu diễn số thực dấu phảy động Nguyên tắc chung Một số thực bất kỳ được biểu diễn bằng cơng thức sau: x = M.RE Trong đĩ : M - Phần định trị. R - Cơ số. E - Phần mũ. Với một hệ thống nào đĩ thì R là cố định. Trong máy tính ngày nay thơng thường R=2. Để biểu diễn được với cơ số2 người chuyển về dạng tương đương như sau: X=(-1)s 1.M2E-B Trong đĩ: s: là bit dấu (s=0 phần định trị là dương; s=1 phần định trị là âm) M : là phần định trị. E: là số mũ được dịch chuyển đi B đơn vị. R đã được biết (R=2) máy tính lưu số dấu chấm động bao gồm hai thành phần chính Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 43 Trường ĐH KTCN Thái Nguyên
  44. Bài giảng Kiến trúc máy tính Chuẩn IEEE 754-1985 phân định 3 dạng số dấu chấm động cơ bản (IEEE: Institute of Electrical and Electronics Engineers ) o Số cĩ độ chính xác đơn dài 32 bit (single) o Số cĩ độ chính xác kép dài 64 bit (double) o Số cĩ độ chính xác mở rộng dài 128bit (quadruple)  Chuẩn 32 bit: Xét trường hợp sử dụng 32 bit 23 22 15 7 0 S E’ M 8 bit mũ E’ 23 bit định trị Phần định trị (M) chiếm 23 bit cho phần sau dấu phẩy nhị phân. Phần mũ E’ chiếm 8 bit. X= (-1)s 1,M 2E’-127 (127 = 7F) Ví dụ : Giả sử cĩ một dãy 32 bit như sau: 1 0111 11111 100 0000 0000 0000 0000 0000 bit dấu = 1 ( số âm ) X = (-1)1 1,1 2127-127 = (-1,1) Ví dụ : Chuyển một số thực hệ 10 sang hệ 2 biểu diễn bằng số thực dấu phẩy động: Cho số 13,2 hệ 2 (1101,0011 0011 )2 Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 44 Trường ĐH KTCN Thái Nguyên
  45. Bài giảng Kiến trúc máy tính Di chuyển dấu phẩy về sau số 1 đầu tiên được : ((1,101 0011 0011 ) 23) = (+1,101 0011 0011 ) 23 Phần mũ E = E’ - 127 = E’ - 7F = 3 E’ = E + 127 = 3 + 127 = (130)10 = (1000 0010)2 S E’ M 0 1000 0010 101 0011 0011 Các qui ước: Nếu E’ = 255 và M <> 0 thì x khơng phải là số hợp lệ Nếu E’ = 255 và M = 0 thì x = -∞/+∞ Nếu E’ = 0 và M = 0 thì x = 0  Chuẩn 64 bit: Cũng tương tự như chuẩn 32 bit định dạng chuẩn 64 bit như sau Dấu Phần mũ Phần định trị 1bit 11 bit 52 bit S E = E’ - 1023 M  Chuẩn 80 bit: Dấu Phần mũ Phần định trị 1bit 15 bit 111 bit S E = E’ - 16383 M 2.5 Biểu diễn ký tự Ký tự thường được sử dụng trong các cơng việc hàng ngày trên máy tính, trong thực tế chúng ta thấy hầu hết các bàn phím của các máy tính đều là các ký tự la tinh, những tại sao lại cĩ thể soạn được các ngơn ngữ khác nhau trên thế giới. Cụ thể đối với Việt Nam cĩ các ký tự đặc biệt như “â”, “ậ”, Tại sao máy tính lạ co thể hiểu và vẫn thể hiện được. Sự thực là máy tính sử dụng một lọa bảng mã gọi là bộ Font, cĩ thể xem bảng Font là một bảng gồm hai cột như sau: Mã Ký tự 0 A 1 B 2 C Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 45 Trường ĐH KTCN Thái Nguyên
  46. Bài giảng Kiến trúc máy tính 66 Â 67 Ậ Bằng cách này thì thực ra máy tính khơng hề hiểu các ký tự A, Â, Ậ, Khi ta gõ vào một phím trên bàn phím thì mã số của phím đĩ sẽ được gửi lên máy tính, sau đĩ tùy thuộc mơi trường ta đang sử dụng bộ Font là thì ký tự tương ứng sẽ được vẽ ra. ﻛ Ký tự thể hiện Mã của phím được bấm XX Mã Ký tự ﻛ XX  Bảng mã ASCII: Bảng Font đang dùng Đây là loại bảng mã 8 bit, số ký tự biểu là 256 ký tự, ngày nay loại bảng mã này ít được sử dụng vì số ký tự tể hiện ít, chỉ đủ dùng cho một quốc gia, gây bất tiện khi chuyển văn bản Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 46 Trường ĐH KTCN Thái Nguyên
  47. Bài giảng Kiến trúc máy tính Bảng 2-3 Bảng mã ASCII chuẩn Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 47 Trường ĐH KTCN Thái Nguyên
  48. Bài giảng Kiến trúc máy tính Bảng 2-4 Bảng mã ASCII mở rộng  Bảng mã Unicode Do các hãng máy tính hàng đầu thế giới kết hợp thiết kế. Kích thước bộ mã này là 16 bit cĩ thể xây dựng bộ mã tồn cầu với số ký tự cĩ thể mã là 2 16 ký tự với 128 ký tự đầu cĩ mã trùng mã trong bảng mã ASCII. Ví dụ một đoạn trên bẳng mã Unicode Bảng 2-5 Bảng mã Unicode Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 48 Trường ĐH KTCN Thái Nguyên
  49. Bài giảng Kiến trúc máy tính CHƯƠNG 3 MỨC LOGIC SỐ Mục tiêu: Tĩm tắt chương: Chương được chia ra thành 6 phần: Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 49 Trường ĐH KTCN Thái Nguyên
  50. Bài giảng Kiến trúc máy tính 3.1 Giới thiệu về cổng và đại số logic 3.1.1 Cổng (Gate) Mạch điện tử số là mạch điện trong đĩ chỉ biểu diễn 2 giá trị logic 0, 1. Thí dụ, tín hiệu điện cĩ điện áp: 0V-1V: biểu diễn một giá trị, chẳng hạn 0 (thấp, mức thấp hoặc low) 2V-5V: biểu diễn giá trị kia, chẳng hạn 1 (cao, mức cao hoặc high). Các điện áp nằm ngồi miền này là khơng được phép. Các mạch điện số cĩ thể được xây dựng từ một số ít các phần tử rất đơn giản bằng cách kết hợp chúng theo những cách khơng phải là số. Mục này sẽ mơ tả các phần tử đơn giản nhất, cách kết hợp chúng và cách sử dụng tốn học để phân tích hoạt động của chúng. Khái niệm cổng (Gate): Là những thiết bị điện tử rất nhỏ bé, cĩ một hoặc một số lối vào nhưng chỉ cĩ một lối ra, các giá trị vào hoặc ra chỉ cĩ thể nhận một trong hai giá trị là 1 hoặc 0. Cổng cịn thường được gọi là: – Mạch logic bởi nĩ thực hiện các phép tính đại số logic. – Phần tử ra quyết định (decision making element) Chính các cổng tạo nên cơ sở phần cứng của tất cả các loại máy tính. Chi tiết về sự hoạt động bên trong của các cổng khơng thuộc khuơn khổ của bài giảng này, nĩ thuộc mức thiết bị - device level (dưới mức 0). Tuy nhiên tại mục này chúng ta sẽ Collector nghiên cứu sơ lược để nắm được ý tưởng cơ sở. Tồn bộ logic số hiện đại dựa trên thực tế là một transistor cĩ thể được chế tạo để hoạt động như một Base chuyển mạch nhị phân hoạt động rất nhanh. Transistor này cĩ 3 chân nối với thế giới bên Switch Emitter ngồi: collector (cực gĩp), emitter (cực phát) và base (cực gốc). Hình 3-1 Cấu tạo Transistor Transistor cĩ thể hoạt động theo 2 cơ chế là – Tuyến tính: được sử dụng trong các bộ khuyếch đại – Chuyển mạch nhị phân: được sử dụng trong các mạch logic số Các hình dưới đây mơ tả một số cổng cơ bản Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 50 Trường ĐH KTCN Thái Nguyên
  51. Bài giảng Kiến trúc máy tính Hình 3-2 Một số cổng logic cơ bản Hình a mơ tả cổng đơn giản nhất - cổng NOT (Inverter); Vout cĩ mức là đảo của Vin. Hình b mơ tả cổng NAND, 2 transitor được chồng nối tiếp lên nhau; Vout cĩ mức thấp (0) khi và chỉ khi cả hai giá trị V1 và V2 là cao (1). Hình c mơ tả cổng NOR, 2 transistor được mắc song song; Vout cĩ mức cao (1) khi và chỉ khi cả hai giá trị V1 và V2 là thấp (0). Cổng AND: Nếu tín hiệu ra của cổng NAND lại được đưa tới đầu vào của một cổng NOT, thì chúng ta cĩ một mạch mà đầu ra của nĩ bằng 1 khi và chỉ khi các đầu vào đồng thời bằng 1 - Mạch điện đĩ được gọi là cổng AND. Cổng OR: Tương tự như trên, đầu ra của cổng NOR nếu nối tới đầu vào của một cổng NOT thì tạo thành một mạch điện mà giá trị đầu ra của nĩ sẽ bằng 0 khi và chỉ khi giá trị ở cả hai đầu vào bằng 0, cịn ngược lại thì sẽ bằng 1. NOT, NAND và NOR là các cổng đơn giản nhất: – Các cổng NAND và NOR mỗi cổng chỉ cần sử dụng 2 transistor, trong khi đĩ các cổng AND và OR lại cần đến 3 transistor. Như vậy các cổng NAND và NOR đơn giản hơn các cổng AND và OR. – Chính vì lý do này mà nhiều máy tính được xây dựng dựa trên các cổng NAND và NOR chứ khơng phải là các cổng AND và OR. 3.1.2 Đại số logic Để mơ tả các mạch điện được xây dựng từ các cổng. Hàm logic cĩ một hoặc một số biến vào, nĩ sẽ sinh ra một giá trị kết quả phụ thuộc vào các biến vào này. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 51 Trường ĐH KTCN Thái Nguyên
  52. Bài giảng Kiến trúc máy tính Một hàm ƒ đơn giản cĩ thể được định nghĩa như sau: ƒ(A) bằng 1 nếu A bằng 0 và ƒ (A) bằng 0 nếu A bằng 1. Hàm này chính là hàm NOT. • Mơ tả hàm logic bằng Bảng chân lý (Truth table): – Bởi vì một hàm logic n biến chỉ cĩ 2 n tập cĩ thể các giá trị biến vào, cho nên hồn tồn cĩ thể mơ tả hàm bằng một bảng cĩ 2 n hàng, mỗi hàng cho giá trị của hàm ứng với mỗi tổ hợp khác nhau của các biến vào. Bảng như vậy được gọi là Bảng chân lý (Truth table) – Thí dụ các bảng trên hình vẽ sau (Hình 3-03). Hình 3-3 Mơ tả hàm logic bằng bản chân lý • Mơ tả hàm logic bằng số nhị phân: – Liệt kê các hàng của bảng chân lý theo thứ tự số học (cơ số 2) của tổ hợp biến vào, nghĩa là cho 2 biến theo thứ tự 00, 01, 10 và 11. – Đọc kết quả (giá trị của hàm) từ bảng chân lý theo cột, từ trên xuống dưới. Như vậy NAND sẽ là 1110, NOR là 1000, AND là 0001 và OR là 0111. – Rõ ràng rằng chỉ tồn tại 16 hàm logic cĩ hai biến, tương ứng với 16 dãy kết quả dài 4 bit cĩ thể cĩ. – Trong đại số thơng thường, số hàm 2 biến là vơ hạn, khơng thể mơ tả bằng bảng các giá trị của hàm theo các giá trị cĩ thể cĩ của 2 biến, bởi vì mỗi biến cĩ thể nhận một giá trị trong một miền vơ hạn các giá trị cĩ thể. 3.1.3 Thực hiện các hàm logic Cách xây dựng một mạch điện để thực hiện một hàm logic như sau: 1. Viết bảng chân lý của hàm. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 52 Trường ĐH KTCN Thái Nguyên
  53. Bài giảng Kiến trúc máy tính 2. Sử dụng các cổng NOT để tạo ra các giá trị đảo của từng biến vào. 3. Với mỗi hàng mà hàm bằng 1 ta lấy ra một cổng AND. 4. Nối đầu vào các cổng AND tới các tín hiệu vào phù hợp. 5. Đưa các đầu ra của các cổng AND vào các đầu vào của một cổng OR. Hình 3-4 Xây dựng mạch điện bằng hàm logic • Sử dụng 1 loại cổng NAND hoặc NOR thường thuận lợi hơn: – Cĩ thể sử dụng các cổng AND, OR và NOT để xây dựng mọi hàm logic bất kỳ – Tuy nhiên, nếu giảm được số các loại cổng khác nhau thì tốt hơn: – Chỉ cần sử dụng một loại cổng NAND hoặc NOR, cũng xây dựng được các cổng AND, OR, NOT. Vì cả hai cổng này đều được gọi là đầy đủ (complete) bởi vì mọi hàm logic đều cĩ thể được xây dựng từ một trong hai loại cổng này. Khơng cĩ một cổng nào khác cĩ được tính chất này. Đồng thời, mạch điện của NAND, NOR đơn giản hơn mạch điện AND, OR – Do vậy, người ta thường sử dụng hoặc là cổng NAND hoặc là cổng NOR để xây dựng các hàm logic. 3.1.4 Sự tương đương của các mạch Để làm giảm độ phức tạp của mạch điện, người thiết kế phải tìm những mạch thực hiện được cùng chức năng theo yêu cầu nhưng lại chứa số cổng ít hơn hoặc cĩ các cổng đơn giản hơn, chẳng hạn lấy các cổng cĩ 2 đầu vào thay cho các cổng cĩ 4 đầu vào. Để tìm kiếm được các mạch tương đương, cần sử dụng đại số logic. Ví dụ: sử dụng một loại cổng NAND hoặc NOR. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 53 Trường ĐH KTCN Thái Nguyên
  54. Bài giảng Kiến trúc máy tính Chú ý: • Cùng một cổng logic (cổng vật lý) cĩ thể thể hiện các chức năng logic khác nhau tuỳ theo sự quy ước về các mức điện áp nào thể hiện giá trị logic nào! – Nếu ta quy ước rằng mức điện áp 0v thể hiện mức logic 0 cịn mức điện áp +5v thể hiện mức logic 1 thì ta cĩ logic dương (positive logic). – Nếu ta quy ước rằng mức điện áp 0v thể hiện mức logic 1 cịn mức điện áp +5v thể hiện mức logic 0 thì ta cĩ logic âm (negative logic). • Khi người ta khơng nĩi rõ là sử dụng loại logic nào thì cĩ nghĩa là sử dụng logic dương. Điều đĩ cĩ nghĩa là các thuật ngữ sau là tương đương: – logic 1, true, high – logic 0, false, low 3.2 Các mạch logic số cơ bản 3.2.1 Mạch tích hợp Các cổng được sản xuất ra khơng phải dưới dạng mỗi đơn vị sản phẩm chứa một cổng mà trong một đơn vị cĩ chứa đựng nhiều cổng, người ta gọi những đơn vị này là mạch tích hợp, hay cịn gọi là IC (Integrated Circuits), hay là chip. • Kích thước chip: rộng cỡ (5-15)mm, dài cỡ (20-50)mm. • Số chân của một chip: 14, 16, 18, 20 68 Các chip lớn cĩ chân chìa ra ở cả 4 cạnh. • Thường phân loại chip theo số lượng cổng: Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 54 Trường ĐH KTCN Thái Nguyên
  55. Bài giảng Kiến trúc máy tính Ký hiệu Số cổng/chip SSI (Small Scale Integrated) 1-10 MSI (Medium Scale Integrated) 10-100 LSI (Large Scale Integrated) 100-100.000 VLSI (Very Large Scale Integrated) > 100.000 Các chip hiện nay cĩ thể chứa hàng triệu cổng. Tính ra nếu chip cĩ một triệu cổng cĩ thể cần tới 3,000,002 chân (1 triệu cổng x 3 chân/cổng + 2 chân cho nguồn nuơi), điều này khĩ cĩ thể chấp nhận được. Thực tế, trong các chip cĩ nhiều cổng: – Gồm nhiều đơn vị chức năng, các cổng thuộc mỗi đơn vị chức năng liên hệ với nhau thơng qua các đường dây dẫn ngay bên trong chip; đồng thời, các đơn vị chức năng cũng cĩ thể liên hệ với nhau bằng các đường dây dẫn bên trong chip. Do đĩ, cĩ thể chỉ cần một số ít, thậm chí khơng cần các chân đưa ra ngồi. – Một số chân chip cĩ thể được dùng chung theo kiểu phân chia thời gian. Trong cơng nghệ chế tạo chip người ta phải thiết kế các chip sao cho cĩ tỉ số cổng/chân ra cao. 3.2.2 Mạch tổ hợp Nhiều ứng dụng logic số cần đến các mạch cĩ nhiều đầu vào và nhiều đầu ra trong đĩ các giá trị ra hồn tồn được xác định bởi các giá trị đầu vào ở thời điểm đang xét. Những mạch như vậy được gọi là Mạch tổ hợp (Combinational Circuit), các mạch này thường được thể hiện bởi bảng chân lý. Một số mạch tổ hợp mạch tổ hợp điển hình như: mạch dồn kênh, mạch phân kênh, mạch mã hố, mạch giải mã, mạch so sánh, v.v a. Mạch dồn kênh (Multiplexer) Là một mạch điện với 2n lối vào số liệu, một lối ra số liệu, và n lối vào điều khiển. Một trong số 2n đầu vào số liệu sẽ được chọn để cho đi qua cổng. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 55 Trường ĐH KTCN Thái Nguyên
  56. Bài giảng Kiến trúc máy tính I0 I1 I2 I3 Hình 3-5 Mạch dồn kênh cho 4 đường dữ liệu vào Nhiều ứng dụng logic số cần đến các mạch cĩ nhiều đầu vào và nhiều đầu ra trong đĩ các giá trị ra hồn tồn được xác định bởi các giá trị đầu vào ở thời điểm đang xét. Những mạch như vậy được gọi là Mạch tổ hợp (Combinational Circuit), các mạch này thường được thể hiện bởi bảng chân lý. Một số mạch tổ hợp mạch tổ hợp điển hình như: mạch dồn kênh, mạch phân kênh, mạch mã hố, mạch giải mã, mạch so sánh, v.v b. Mạch phân kênh (Demultiplexe) Ngược lại với mạch dồn kênh: Cĩ một lối vào số liệu, lối ra là 1 trong 2 n lối ra, tuỳ thuộc tín hiệu trên n đầu vào điều khiển O0 O1 I O2 O3 Hình 3-6 Mạch phân kênh 1 đầu vào 4 đầu ra C1 C0 c. Mạch giải mã (decoder) Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 56 Trường ĐH KTCN Thái Nguyên
  57. Bài giảng Kiến trúc máy tính Đĩ là mạch điện nhận con số n-bit đầu vào để chọn (1) cho duy nhất một trong số 2 n đầu ra cĩ mức 1. Ứng dụng của mạch giải mã: – Giải mã bộ nhớ: khi bộ nhớ được tổ chức thành ma trận nhớ, sử dụng bộ giải mã để chọn 1 trong các hàng và 1 trong các cột – Chọn 1 trong nhiều chip nhớ – v.v. Hình 3-7 Mạch giải mã 3 đầu vào d. Mạch so sánh (Comparator) Thực hiện so sánh 2 từ nhị phân đưa vào bằng cách so sánh các cặp bit tương ứng. Thí dụ trên hình là một bộ so sánh 2 tốn hạng nhị phân 4 bit: - A = A3 A2 A1 A0 - B = B3 B2 B1 B0 - Đầu ra A=B sẽ cĩ giá trị 1 nếu 2 từ đưa vào là bằng nhau, ngược lại sẽ cĩ giá trị 0. 3.2.3 Các mạch số học a. Bộ dịch (Shifter) Dịch bit là một thao tác cơ sở trong hoạt động của máy tính. Trên hình 3-8 là bộ dịch bit 8 bit: – 8 đầu vào: D0 D7; 8 đầu ra: S0 S7 – C xác định hướng dịch chuyển của các bit, nếu C=1: dịch phải một vị trí, nếu C=0: dịch trái một vị trí. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 57 Trường ĐH KTCN Thái Nguyên
  58. Bài giảng Kiến trúc máy tính Hình 3-8 Bộ dịch 8bit C xác định hướng dịch chuyển của các bit: • C=1: S0=0, S1=D0, S2=D1, S3=D2, S7=D6: dịch phải một vị trí • C=0: S7=0, S6=D7, S5=D6, S4=D5, S0=D1: dịch trái một vị trí. b. Bộ cộng Bộ cộng là một phần rất căn bản của mọi CPU. Hình 3-9 a là mạch tính tổng 2 bit - Haft_Adder. Bộ cộng này khơng cĩ lối vào cho số nhớ Carry-in cho nên khơng dùng để cộng các bit bậc cao hơn 0. Hình 3-9 b là mạch tính tổng 2 bit vào và bit nhớ C-in, trả lại tổng - sum và số nhớ C-out. Bộ cộng này cĩ lối vào C-in, nĩ được xây dựng từ 2 bộ Haft-Adder. Hình 3-9 Bộ cộng Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 58 Trường ĐH KTCN Thái Nguyên
  59. Bài giảng Kiến trúc máy tính Để xây dựng các bộ cộng với từ dài hơn, chẳng hạn từ 16 bit, cần sử dụng 16 bộ Full_Adder: – Bit nhớ carry-out của một hàng bit được sử dụng làm bit carry-in cho việc cộng 2 bit của hàng cao hơn nĩ một bậc. – Đầu vào carry-in của bit bậc thấp nhất được nối với 0. Một bộ cộng như vậy được gọi là Ripple Carry Adder (ripple- làm gợn sĩng ), việc lan truyền bit nhớ làm chậm phép tính. Người ta cũng xây dựng các bộ cộng khơng cĩ nhược điểm này nhưng chúng phức tạp hơn. Hình dưới đây mơ tả một 16-bit ripple-carry adder Hình 3-10 Bộ 16-bit ripple-carry adder c. Bộ tính tốn số học và logic – ALU (Arithmetic Logical Unit) Hầu hết các bộ vi xử lý đều cĩ mạch riêng (ALU) để thực hiện các phép tính AND, OR và tính tổng của 2 từ máy. Hình 3-11 là một ALU đơn giản, thực hiện 1 trong 4 chức năng sau tuỳ theo tín hiệu điều khiển chọn chức năng F0 và F1: – F0F1=00: A AND B – F0F1=01: A OR B – F0F1=10: NOT B (đảo B) – F0F1=11: A + B Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 59 Trường ĐH KTCN Thái Nguyên
  60. Bài giảng Kiến trúc máy tính Hình 3-11 - Cấu tạo một ALU d. Clock - Bộ tạo tín hiệu thời gian Trong rất nhiều mạch điện số, trật tự xảy ra các sự kiện là hết sức quan trọng. Cần thiết phải sử dụng đồng hồ để cung cấp tín hiệu đồng bộ các quá trình: - Đồng hồ là một mạch điện phát ra chuỗi xung điện cĩ chu kỳ rất ổn định và chính xác. - Tần số xung nằm trong khoảng từ 1 100MHz, tương ứng cĩ chu kỳ 1ms 10ns. - Thường sử dụng máy phát thạch anh (Crystal Oscilator). Chu kỳ con (subcycles): Trong máy tính, nhiều sự kiện cĩ thể xảy ra trong một chu kỳ đồng hồ, nếu chúng delay phải xảy ra theo một trật tự nhất định thì chu kỳ đồng hồ phải được chia ra thành các chu delay kỳ con. Giải pháp đưa ra là cần bổ sung thêm delay một mạch điện, mạch này nối với đường tín hiệu đồng hồ chính qua một bộ phận làm trễ (delay) - như vậy cĩ ngay một tín hiệu đồng hồ thứ hai dịch pha so với tín hiệu đồng hồ chính. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 60 Trường ĐH KTCN Thái Nguyên
  61. Bài giảng Kiến trúc máy tính Các mạch của máy tính được điều khiển bởi một mạch tạo các chuỗi xung tuần hồn gọi là xung Clock. Xung Clock xác định các chu kỳ của máy tính. 3.3 Tổ chức bộ nhớ 3.3.1 Khái quát Là một trong các thành phần quan trọng nhất của máy tính điện tử, được dùng để lưu trữ các lệnh và dữ liệu. Bộ nhớ được xây dựng từ các phần tử nhớ cơ bản: - Mỗi phần tử nhớ cơ bản cĩ thể nhớ được 1 bit thơng tin - Đĩ là các mạch điện cĩ hai trạng thái cân bằng ổn định (mạch lưỡng bền, flip-flop), flip-flop sẽ nằm mãi ở một trong hai trạng thái cân bằng nếu khơng cĩ tín hiệu điện phù hợp kích thích vào làm cho nĩ phải thay đổi trạng thái. 3.3.2 Phần tử nhớ 1 bit Thanh ghi chốt (Latch) là dạng đơn giản của flip-flop, được xây dựng từ 2 cổng NAND hoặc 2 cổng NOR. Sự thay đổi trạng thái của thanh ghi chốt cĩ thể xảy ra trong thời gian kéo dài của xung đồng hồ chứ khơng phải trong thời gian sườn xung đồng hồ, người ta gọi đĩ là sự chuyển mạch theo mức. Các thanh ghi chốt 1 bit cĩ thể được sử dụng làm các phần tử nhớ cơ bản xây dựng nên bộ nhớ của máy tính. a. Thanh ghi chốt RS Thanh ghi chốt RS là một dạng thanh ghi đơn giản nhất và được xây dựng từ các cổng NOR. Trong đĩ, - 2 lối vào: S (Set) - để thiết lập giá trị (cho Q=1) và R (Reset) - để xố nĩ (cho Q=0) - 2 lối ra luơn bù nhau là Q và Q Khác với các mạch logic tổ hợp, giá trị lối ra của thanh ghi chốt RS khơng phải được quyết định duy nhất bởi các giá trị đầu vào hiện thời. - R=S=0: Q sẽ khơng thay đổi. (trạng thái này tồn tại trong phần lớn thời gian hoạt động của thanh ghi) - S=1, R=0, Q=1 khơng phụ thuộc vào trạng thái trước đĩ. - R=1, S=0, Q=0 khơng phụ thuộc vào trạng thái trước đĩ. - Tổ hợp R=S=1 bị cấm. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 61 Trường ĐH KTCN Thái Nguyên
  62. Bài giảng Kiến trúc máy tính Kết luận: Mạch điện nhớ được S hay R vừa cĩ giá trị 1, tức là nhớ được tín hiệu vào (nếu ta đặt S=1, R=0 hoặc R=1, S=0. Sau đĩ nếu chúng ta cho R=S=0 thì giá trị nhớ sẽ khơng thay đổi. b. Mạch Flip-Flop Trong nhiều mạch điện thường cần phải lấy mẫu (sample) giá trị tín hiệu trên một đường dây nào đĩ tại một thời điểm cụ thể và ghi nhớ giá trị đĩ. Flip-flop là một biến thể của thanh ghi chốt D, cĩ khả năng trong khoảng thời gian ứng với xung đồng hồ rất ngắn trên lối vào clock, ghi nhận được giá trị ở lối vào D.Như vậy thời gian kéo dài xung khơng quan trọng, chỉ cần sự chuyển trạng thái xảy ra đủ nhanh Ký hiệu chuẩn của một số thanh ghi chốt và flip-flop. – Hình a) là thanh ghi chốt D, chuyển trạng thái khi tín hiệu CK=1, bình thường CK=0. (chuyển mạch theo mức.) – Hình b) là thanh ghi chốt D, chuyển trạng thái khi tín hiệu CK=0, bình thường CK=1. (chuyển mạch theo mức.) – Hình c) và d) là các Flip-flop, ở lối vào clock của chúng được vẽ ký hiệu đầu mũi tên ‘>‘. • Flip-flop trên hình (c) chuyển trạng thái trong thời gian sườn dương của xung đồng hồ. • Flip-flop trên hình (d) chuyển trạng thái trong thời gian sườn âm của xung đồng hồ. – Hình (e): Nhiều thanh ghi chốt và flip-flop ngồi đầu ra Q cịn cĩ đầu ra và cĩ thêm các đầu vào Set hoặc Preset (để thiết lập Q=1) và Reset hay Clear (để thiết lập Q=0). c. Thanh ghi Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 62 Trường ĐH KTCN Thái Nguyên
  63. Bài giảng Kiến trúc máy tính Thanh ghi là một nhĩm các phần tử nhớ cơ bản cùng hoạt động như một đơn vị. Cĩ các loại thanh ghi thực hiện các nhiệm vụ khác nhau: nhớ, tính tốn số học - dịch trái, dịch phải hoặc các thao tác khác phức tạp hơn nữa. Các thanh ghi làm nhiệm vụ nhớ thường được xây dựng từ các flip-flop, chúng cần cĩ khả năng hoạt động ở tốc độ cao hơn các thanh ghi được sử dụng trong bộ nhớ chính. Do mạch Flip-Flop cĩ thể lưu trữ 1bit và khi cĩ xung kích hoạt ( Ck ) thì bit đĩ mới được truyền tới đầu ra (đảo hoặc khơng đảo). Khi cần nhớ nhiều bit ta chỉ cần mắc nối tiếp nhiều Flip-Flop lại với nhau. Nếu mạch cĩ khả năng ghi lại dữ liệu và dịch chuyển nĩ thì gọi là thanh ghi dịch. Cĩ một số dạng kết nối thanh ghi dịch như sau: SISO ( Serial In Serial Output - vào nối tiếp ra nối tiếp) SIPO ( Serial In Parallel Output - vào nối tiếp ra song song) PISO ( Parallel In Serial Output - vào song song ra nối tiếp) PIPO (Parallel In Parallel Output - vào song song ra song song) Cấu trúc các dạng kết nối được mơ tả trong hình (a), (b), (c), (d) dưới đây: (a) Kết nối dạng SISO: Dữ liệu cần dịch chuyển được đưa vào ngõ D của mạch FF đầu tiên (FF0). Ở mỗi xung kích lên của đồng hồ ck, sẽ cĩ 1 bit được dịch chuyển từ trái sang phải, nối tiếp từ tầng này qua tầng khác và đưa ra ở đầu Q của mạch sau cùng (FF3) Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 63 Trường ĐH KTCN Thái Nguyên
  64. Bài giảng Kiến trúc máy tính (b) Kết nối dạng SIPO: Dữ liệu sẽ được lấy ra ở 4 đầu ra Q của mạch FF, vì chung nhịp đồng hồ nên dữ liệu cũng được lấy ra cùng lúc (c) Kết nối dạng PISO: đầu ra dữ liệu là nối tiếp (tại đầu ra Q hoặc Q ), cịn dữ liệu đầu vào là song song (c) Kết nối dạng PIPO (d) Kết nối dạng PIPO: dữ liệu được đưa vào cùng một lúc và lấy ra cùng một lúc Hình 3-12 Cĩ một số dạng kết nối thanh ghi dịch 3.3.3 Tổ chức bộ nhớ Bộ nhớ thường được tổ chức từ nhiều vi mạch (chip) nhớ ghép lại để cĩ độ rộng bus địa chỉ và dữ liệu cần thiết. Các chip nhớ cĩ đầy đủ chức năng của một bộ nhớ bao gồm: - Ma trận nhớ: gồm các ơ nhớ, mỗi ơ nhớ tương ứng với một bit nhớ. - Mạch giải mã địa chỉ cho bộ nhớ. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 64 Trường ĐH KTCN Thái Nguyên
  65. Bài giảng Kiến trúc máy tính - Mạch logic cho phép đọc. - Mạch logic cho phép ghi. - Các mạch đệm vào, ra. Cách tổ chức đơn giản nhất là tổ chức theo word. Một ma trận nhớ cĩ độ dài của cột bằng số lượng word (W )và độ dài hàng bằng số lượng bit ( B) của một word. Phương pháp này cĩ thời gian truy xuất ngắn nhưng địi hỏi bộ giải mã lớn khi tổng số word lớn. Hình 3-13 Sơ đồ mơ tả cấu trúc một vi mạch nhớ a. Tổ chức chip nhớ Trong một chip bao gồm: - Các đường địa chỉ: A0  An – 1, như vậy chip nhớ cĩ 2n ngăn nhớ. - Các đường dữ liệu: D0  Dm – 1, nhơ vậy độ dài ngăn nhớ là m bit. - Dung lượng chip nhớ: 2n x m bit - Các đường điều khiển: o Tín hiệu chọn chip: CS (Chip Select) o Tín hiệu điều khiển đọc: RD / OE o Tín hiệu điều khiển ghi: WR / WE b. Thiết kế Module nhớ bán dẫn Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 65 Trường ĐH KTCN Thái Nguyên
  66. Bài giảng Kiến trúc máy tính - Đặt vấn đề: Cho chip nhớ 2n x m bit. Yêu cầu sử dụng chip nhớ trên thiết kế module nhớ dung lượng là bội kích thước chip nhớ trên. - Giải quyết vấn đề: Cĩ hai cách o Thiết kế để tăng độ dài ngăn nhớ, số ngăn nhớ khơng thay đổi. o Thiết kế để tăng số lượng ngăn nhớ, độ dài ngăn nhớ khơng thay đổi. o Thiết kế để tăng cả độ dài từ nhớ và số ngăn nhớ. - Thiết kế tăng độ dài ngăn nhớ o Giả thiết: Cho các chip nhớ cĩ dung lượng 2 n x m bit. (n là số đường địa chỉ, m là số bít trong một ơ nhớ) o Yêu cầu: Thiết kế module nhớ cĩ kích thước: 2n x (k.m) bit Giải quyết: Để thiết kế được yêu cầu ta xác định hai thơng số n (số đường địa chỉ)và k(số chip nhớ cần để ghép vào module thiết kế. Ví dụ: Cho các chip nhớ SDRAM dung lượng 4K x 4 bit. Hãy thiết kế module nhớ cĩ kích thước 4K x 8 bit Giải: Dung lượng chip nhớ 4K x 4 bit = 212K x 4 bit, => số đường địa chỉ n = 12, số đường dữ liệu m=4. Nhận thấy với yêu cầu của đề bài thì số đường địa chỉ là 12 đường khơng đổi (số ngăn nhớ khơng thay đổi), số đường dữ liệu là 8 (tức kihcs thước một ơ nhớ đang từ 4 bit tăng lên thành 8bit), vậy số chip sử dụng để thiết kế là 2(k=2). Mạch thiết kế: - Thiết kế tăng số lượng ngăn nhớ o Giả thiết: Cho các chip nhớ cĩ dung lượng 2n x m bit. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 66 Trường ĐH KTCN Thái Nguyên
  67. Bài giảng Kiến trúc máy tính o Yêu cầu: Thiết kế module nhớ cĩ kích thước: 2k.2n x m bit Giải quyết: Để thiết kế được ta xác định hai thơng số n+k (số đường địa chỉ mới để mã hĩa đủ số ơ nhớ cần thiết kế) và 2k (số chip nhớ cần để ghép vào module thiết kế). Ví dụ : Cho các chip nhớ SDRAM dung lượng 4K x 8 bit. Hãy thiết kế module nhớ cĩ kích thước 8K x 8 bit. Giải: Nhận thấy rằng đề yêu cầu tăng số lượng ơ nhớ lên 2 lần tức từ 4K lên 8K, cịn kích thước một ơ nhớ vân là 8 bit. Dung lượng 4K x 8bit = 2 12k x 8 bit, => số đường địa chỉ là n =12 và số đường dữ liệu m=8. Yêu cầu mới là 8K x 8bit = 213K x 8bit = 2 x 212K x 8bit = 2 chíp nhớ 4Kx8bit. Mạch thiết kế: - Tăng cả số lượng và độ dài ngăn nhớ o Giả thiết: Cho chip nhớ 2n x m bit o Yêu cầu: Thiết kế module nhớ cĩ kích thước: 2p+n x (q.m) bit o Giải quyết: Cần ghép nối q.2p chip thành 2p bộ, mỗi bộ q chip và phải Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 67 Trường ĐH KTCN Thái Nguyên
  68. Bài giảng Kiến trúc máy tính CHƯƠNG 4 MỨC VI CHƯƠNG TRÌNH Mục tiêu: Tĩm tắt chương: Chương gồm 4 phần Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 68 Trường ĐH KTCN Thái Nguyên
  69. Bài giảng Kiến trúc máy tính 4.1 Chức năng và hoạt động của bộ xử lý Trong hệ thống máy tính, Đơn vị xử lý trung tâm (CPU – Central Proccesing Unit)đĩng vai trị quan trọng vì đây là đơn vị điều khiển và xử lý dữ liệu. CPU hoạt động theo chương trình nằm trong bộ nhớ chính. Cấu trúc cơ bản của CPU gồm 4 thành phần chính: - Đơn vị điều khiển - Đơn vị xử lý tốn học và logic - Thanh ghi - Hệ thống BUS 4.1.1 Đơn vị điều khiển (Control Unit - CU) Điều khiển hoạt động của máy tính theo chương trình đã định sẵn. Qui trình hoạt động diễn ra như sau - Điều khiển việc nhận lệnh tiếp theo từ bộ nhớ, đưa vào thanh ghi lệnh. - Tăng nội dung của PC để trỏ sang lệnh tiếp theo - Giải mã lệnh nằm trong thanh ghi lệnh để xác định thao tác mà lệnh yêu cầu - Phát ra các tín hiệu điều khiển thực hiện lệnh đĩ - Nhận tín hiệu yêu cầu từ bên ngồi, xử lý các tín hiệu đĩ. Mơ hình kết nối của CU Thanh ghi lệnh Các t/h điều khiển bên trong BXL Các cờ . . . Các t/h điều khiển Khối điều từ bus hệ thống khiển Các t/h điều khiển đến bus hệ thống Nhịp Bus hệ thống Hình 4-1 Mơ hình kết nối CU Các tín hiệu đến khối điều khiển - Clock: tín hiệu xung nhịp từ mạch tạo dao động. - Mã lệnh từ thanh ghi lệnh đưa đến CU giải mã Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 69 Trường ĐH KTCN Thái Nguyên
  70. Bài giảng Kiến trúc máy tính - Các trạng thái cờ đưa đến cho biết trạng thái của CPU cũng như trạng thái thực hiện các phép tốn trong ALU. - Các tín hiệu điều khiển từ BUS điều khiển. - Các tín hiệu điều khiển bên trong CPU: điều khiển thanh ghi, ALU. - Các tín hiệu điều khiển bên ngồi CPU đĩ là Bộ nhớ hay cổng vào ra 4.1.2 Đơn vị xử lý tốn học và logic ( Arithmetic and logical Unit - ALU) Thực hiện phép tốn số học và các phép tốn logic trên các dữ liệu cụ thể. Đĩ là các phép tốn: - Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo, - Logic: AND, OR,XOR, NOT, dịch bit, Mơ hình kết nối của ALU DL vào từ các thanh ghi ALU Dữ liệu ra các thanh ghi T/h điều khiển từ KĐK Thanh ghi cờ Hình 4-2 Mơ hình kết nối ALU 4.1.3 Thanh ghi Chức năng . Thực chất là vùng nhớ được CPU nhận biết qua tên thanh ghi và cĩ tốc độ truy xuất cực nhanh. . Chứa thơng tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU . Số lượng thanh ghi tuỳ thuộc vào bộ vi xử lý cụ thể -> tăng hiệu năng CPU . Thanh ghi chia 2 loại: Loại lập trình được và loại khơng lập trình được Dưới đây là tập các thanh ghi đa năng ở các thế hệ vi xử lý từ 8bit – 64bit: Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 70 Trường ĐH KTCN Thái Nguyên
  71. Bài giảng Kiến trúc máy tính  Phân loại thanh ghi theo chức năng o Thanh ghi địa chỉ: Thanh ghi được sử dụng để quản lý địa chỉ của ngăn nhớ hay cổng vào ra. o Thanh ghi dữ liệu: Thanh ghi dùng để lưu trữ dữ liệu tạm thời o Thanh ghi đa năng: Thanh ghi cĩ thể chứa dữ liệu hoặc địa chỉ đều được. o Thanh ghi điều khiển/trạng thái: Thanh ghi chứa thơng tin về trạng thái CPU. o Thanh ghi lệnh: thanh ghi chứa lệnh đang được thực hiện 4.1.4 Hệ thống BUS a. Định nghĩa Bus là đường truyền dữ liệu điện giữa các thiết bị khác nhau trong một hệ thống máy tính Bus cĩ thể là một hoặc hai chiều. Bus hai chiều cĩ thể truyền dữ liệu đi theo cả hai chiều, nhưng khơng đồng thời. - Bus một chiều thường được sử dụng để nối hai thanh ghi, trong đĩ một thanh ghi luơn luơn là nguồn cịn thanh ghi kia luơn luơn là đích. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 71 Trường ĐH KTCN Thái Nguyên
  72. Bài giảng Kiến trúc máy tính - Bus hai chiều hay được sử dụng khi một thanh ghi bất kỳ trong tập hợp các thanh ghi cĩ thể là nguồn và một thanh ghi bất kỳ khác là đích. Bus 3 trạng thái: - Là bus mà các thiết bị nối với nĩ cĩ khả năng nối và tách chính nĩ ra khỏi bus về mặt điện. - Thời gian nối/tách: ns - Tên gọi 3 trạng thái: mỗi đường dây cĩ thể cĩ giá trị 0 hay 1 hoặc là bị tách ra. - Thường được sử dụng khi cần nối nhiều thiết bị vào bus, mỗi thiết bị này đều cĩ thể đổ thơng tin lên bus. b. Phân loại BUS: Người ta thường phân loại bus theo 3 cách sau: Theo tổ chức phần cứng: - Camac Vật lý hạt nhân. - EISA Một số hệ thống cĩ chip 80386 - IBM PC, PC/AT Máy IBM PC, IBM/PC/AT - Massbus Máy PDP-11 và VAX - Microchannel Máy PS/2 - Multibus I Một số hệ thống cĩ 8086 - Multibus II Một số hệ thống cĩ chip 80386 - Versabus Một số hệ thống cĩ chip vi xử lý của Motorola - VME Một số hệ thống cĩ chip vi xử lý họ 68x0 của Motorola Theo giao thức truyền thơng: - Bus đồng bộ: Mọi hoạt động bus xảy ra trong một số nguyên lần chu kỳ đồng hồ - chu kỳ bus. Trên Hình là giản đồ thời gian của một bus đồng bộ với tần số đồng hồ là 4 MHz (T=250ns) Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 72 Trường ĐH KTCN Thái Nguyên
  73. Bài giảng Kiến trúc máy tính Việc đọc 1 byte từ bộ nhớ chiếm 3 chu kỳ bus (T1, T2 và T3). Vì tất cả các tín hiệu điện thay đổi mức khơng phải là tức thời, nên trên hình vẽ cĩ các sườn xung (giả sử các sườn xung kéo dài 10ns). Wait state: Nếu bộ nhớ khơng cĩ khả năng đáp ứng đủ nhanh, nĩ cần phát tín hiệu địi chờ (wait state) trước sườn xuống của T2, yêu cầu đưa thêm vào một số chu kỳ bus; khi bộ nhớ đã đưa ra tín hiệu ổn định, nĩ sẽ đảo tín hiệu WAIT. Block Transfer: Khi một thao tác đọc khối bắt đầu, master báo cho slave biết cĩ bao nhiêu byte cần được truyền đi, thí dụ truyền đi con số này trong chu kỳ T1, sau đĩ đáng lẽ truyền đi một byte, slave đưa ra trong mỗi chu kỳ một byte cho tới khi đủ số byte được thơng báo. Bus skew: Cĩ thể rút ngắn chu kỳ để làm cho bus truyền dữ liệu nhanh hơn. Trong thí dụ trên mỗi byte được truyền đi trong 750ns, vậy bus cĩ dải thơng là 1.33 Mbytes/sec. Nếu đồng hồ cĩ tần số 8MHz, thời gian một chu kỳ chỉ cịn một nửa, giải thơng sẽ là 2.67MBytes/sec.Tuy vậy việc giảm chu kỳ bus dẫn đến các khĩ khăn về mặt kỹ thuật, dẫn đến một hiệu ứng gọi là bus skew (skew: nghiêng, xiên, ghềnh). Điều quan trọng là thời gian chu kỳ phải dài hơn so với skew để tránh việc những khoảng thời gian được số hố lại trở thành các đại lượng biến thiên liên tục. - Bus khơng đồng bộ: Bên Master cần lần lượt phát ra: Address, MREQ, RD, MSYN (Master SYNchronization) Bên Slave: Đưa dữ liệu ra, Phát tín hiệu SSYN (Slave SYNchronization) tích cực. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 73 Trường ĐH KTCN Thái Nguyên
  74. Bài giảng Kiến trúc máy tính Bên Master: Chốt dữ liệu lại, Đảo MSYN thành khơng tích cực Bên Slave: Ngừng đưa dữ liệu ra, Đảo SSYN thành khơng tích cực Full handshake: Đĩ là tập các tín hiệu phối hợp với nhau, chủ yếu gồm cĩ 4 tín hiệu (4 sự kiện): MSYN được đặt tích cực SSYN được đặt tích cực để đáp lại tín hiệu MSYN tích cực MSYN được đặt tích cực để đáp lại tín hiệu SSYN tích cực SSYN được đảo thành khơng tích cực để đáp lại tín hiệu MSYN đảo thành khơng tích cực Nhận xét: Full handshake là độc lập thời gian, mỗi sự kiện được gây ra bởi một sự kiện trước đĩ chứ khơng phải bởi một xung đồng hồ. Nếu một cặp master- slave nào đĩ hoạt động chậm thì cặp kế tiếp khơng hề bị ảnh hưởng. Tuy ưu điểm của bus khơng đồng bộ rất rõ ràng, nhưng trong thực tế phần lớn các bus đang được sử dụng lại là loại đồng bộ. Lý do căn bản là các hệ thống sử dụng bus đồng bộ dễ thiết kế hơn. MPU chỉ cần chuyển các mức tín hiệu cần thiết sang trạng thái tích cực là các chip nhớ đáp lại ngay, khơng cần tín hiệu phản hồi. Chỉ cần các chip được chọn phù hợp thì mọi hoạt động đều trơi trảy, khơng cần phải “bắt tay” (handshake). Theo loại tín hiệu truyền trên bus: Bus địa chỉ (Address bus): Đường dẫn các thơng tin về tín hiệu địa chỉ. Địa chỉ: gồm vị trí bộ nhớ và thiết bị Bus dữ liệu (Data bus): Đường dẫn các thơng tin dữ liệu.Dữ liệu: gồm nội dung bộ nhớ và số liệu thiết bị Bus điều khiển (Control bus): Đường dẫn các thơng tin tín hiệu điều khiển (xác định các thao tác). c. Tần số bus Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 74 Trường ĐH KTCN Thái Nguyên
  75. Bài giảng Kiến trúc máy tính Cĩ 2 kiểu hoạt động: Bus đồng bộ và Bus bất đồng bộ Máy tính hoạt động theo bus đồng bộ, làm việc theo nhịp Trên mainboard cĩ 1 bộ dao động tạo các xung nhịp tuần hồn cho máy tính (xung đồng hồ) Tần số nhịp đo theo đơn vị Hz Hz = số nhịp / s Khz = 1000Hz Mhz = 1000 Khz Ghz = 1000 Mhz Tần số bus cục bộ, bus hệ thống, CPU, bus mở rộng, bộ nhớ. 4.2 Cách thức hoạt động của CPU Khi kích đúp vào một biểu tượng nào đĩ để chạy chương trình thì những gì sẽ xảy ra là: 1. Chương trình đã lưu bên trong ổ đĩa cứng sẽ được đưa vào bộ nhớ RAM. Ở đây chương trình chính là một loạt các chỉ lệnh đối với CPU. 2. CPU sử dụng mạch phần cứng được gọi là memory controller để tải dữ liệu chương trình từ bộ nhớ RAM. 3. Lúc đĩ dữ liệu bên trong CPU sẽ được xử lý. 4. Những gì diễn ra tiếp theo sẽ phụ thuộc vào chương trình vừa được nạp. CPU cĩ thể tiếp tục tải và thực thi chương trình hoặc cĩ thể thực hiện một cơng việc nào đĩ với dữ liệu đã được xử lý, như việc hiển thị kết quả thực hiện nào đĩ lên màn hình. Hình 4-3 Dữ liệu được lưu đưa vào CPU Trước đây, CPU điều khiển sự truyền tải dữ liệu giữa ổ đĩa cứng và bộ nhớ RAM. Vì ổ đĩa cứng thường cĩ tốc độ truy cập thấp hơn so với bộ nhớ RAM nên nĩ làm chậm chung cho cả hệ thống, chính vì vậy CPU sẽ rất bận cho tới khi dữ liệu đã được truyền tải từ ổ đĩa cứng vào bộ nhớ RAM. Phương pháp này được gọi là PIO, Processor I/O (hay Programmed I/O). Ngày nay, sự truyền tải dữ liệu giữa ổ đĩa cứng và bộ nhớ RAM được thực hiện mà khơng sử dụng đến CPU, như vậy nĩ sẽ Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 75 Trường ĐH KTCN Thái Nguyên
  76. Bài giảng Kiến trúc máy tính làm cho hệ thống hoạt động nhanh hơn. Phương pháp này được gọi là bus mastering hay DMA (Direct Memory Access). Để đơn giản hĩa hơn cho hình vẽ, bài giảng khơng đưa vào chip cầu nối (được gọi là north bridge chip) giữa ổ đĩa cứng và bộ nhớ RAM trên hình 4-3, tuy nhiên là cĩ một chip đĩ tại vị trí nối này. Nhìn chung, tất cả các hoạt động trong máy tính đều trải qua 4 chu kỳ chính đĩ là: Lấy lệnh, Giải mã lệnh, Nhận dữ liệu, Xử lý dữ liệu Lấy lệnh (Fetch Instructions - FI) - Địa chỉ của lệnh cần thực hiện nằm trong bộ đếm chương trình (PC - Program Counter), được đưa qua bộ đệm địa chỉ, qua bus địa chỉ để tìm ra ngăn nhớ chứa lệnh. - Tiếp theo, BXL phát ra tín hiệu đọc ngăn nhớ vừa tìm được - Nội dung của ngăn nhớ được chuyển qua bus dữ liệu và đưa đến thanh ghi lệnh (Instruction Reg.) Giải mã lệnh (Instructions Decode – ID) - Lệnh từ thanh ghi lệnh được đưa đến khối điều khiển - Tại đây, lệnh được giải mã để xác định thao tác mà lệnh yêu cầu - Khi đĩ, khối điều khiển sẽ phát ra tín hiệu điều khiển tương ứng với lệnh đĩ. Nhận dữ liệu (Fetch Data – FD) - BXL phát ra địa chỉ của ngăn nhớ/cổng vào ra chứa dữ liệu cần nhận - BXL phát ra tín hiệu điều khiển đọc ngăn nhớ/cổng vào ra tương ứng - Dữ liệu được chuyển qua bus dữ liệu đưa vào tập thanh ghi bên trong Xử lý dữ liệu ( Process Data – PD) - Dữ liệu được chuyển từ các thanh ghi vào ALU - ALU sẽ thực hiện các phép tốn dưới sự điều khiển của khối điều khiển - Kết quả phép tốn được cất tạm thời vào thanh ghi dữ liệu 4.3 Vi kiến trúc 4.3.1 Đường dữ liệu Đường dữ liệu là một phần của CPU, cĩ chức năng đọc các tốn hạng từ các thanh ghi, thực hiện các phép tính trên tốn hạng đĩ và lưu trữ kết quả vào trong các thanh ghi. Các thành phần trong đường dữ liệu gồm cĩ: - 16 thanh ghi 16 bit giống nhau tạo nên một bộ nhớ tạm chỉ truy cập được ở mức vi chương trình. Tăng Cẩm Nhung, BM Kỹ thuật máy tính - Khoa Điện tử 76 Trường ĐH KTCN Thái Nguyên